diff --git a/JetStreamDriver.js b/JetStreamDriver.js index 0ef099ba..86ee6c07 100644 --- a/JetStreamDriver.js +++ b/JetStreamDriver.js @@ -1815,7 +1815,7 @@ let BENCHMARKS = [ tags: ["Default", "Octane"], }), new DefaultBenchmark({ - name: "typescript", + name: "typescript-octane", files: [ "./Octane/typescript-compiler.js", "./Octane/typescript-input.js", @@ -1824,7 +1824,7 @@ let BENCHMARKS = [ iterations: 15, worstCaseCount: 2, deterministicRandom: true, - tags: ["Default", "Octane"], + tags: ["Default", "Octane", "typescript"], }), // RexBench new DefaultBenchmark({ @@ -2041,6 +2041,24 @@ let BENCHMARKS = [ ], tags: ["Default", "ClassFields"], }), + new AsyncBenchmark({ + name: "typescript-lib", + files: [ + "./TypeScript/src/mock/sys.js", + "./TypeScript/dist/bundle.js", + "./TypeScript/benchmark.js", + ], + preload: { + // Large test project: + // "tsconfig": "./TypeScript/src/gen/zod-medium/tsconfig.json", + // "files": "./TypeScript/src/gen/zod-medium/files.json", + "tsconfig": "./TypeScript/src/gen/immer-tiny/tsconfig.json", + "files": "./TypeScript/src/gen/immer-tiny/files.json", + }, + iterations: 3, + worstCaseCount: 2, + tags: ["Default", "typescript"], + }), // Generators new AsyncBenchmark({ name: "async-fs", diff --git a/TypeScript/.gitignore b/TypeScript/.gitignore new file mode 100644 index 00000000..7ea7d434 --- /dev/null +++ b/TypeScript/.gitignore @@ -0,0 +1,2 @@ +node_modules +build/*.git \ No newline at end of file diff --git a/TypeScript/README.md b/TypeScript/README.md new file mode 100644 index 00000000..7ca2d416 --- /dev/null +++ b/TypeScript/README.md @@ -0,0 +1,17 @@ +# TypeSCript test for JetStream + +Measures the performance of running typescript on several framwork sources. + +The build steps bundles sources from different frameworks: +- [jestjs](https://github.com/jestjs/jest.git) +- [zod](https://github.com/colinhacks/zod.git) +- [immer](https://github.com/immerjs/immer.git) + +## Build Instructions + +```bash +# install required node packages. +npm ci +# build the workload, output is ./dist +npm run build +``` \ No newline at end of file diff --git a/TypeScript/benchmark.js b/TypeScript/benchmark.js new file mode 100644 index 00000000..919ae76f --- /dev/null +++ b/TypeScript/benchmark.js @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Prevent typescript logging output. +console.log = () => {}; + +class Benchmark { + tsConfig; + fileData; + + async init() { + this.tsConfig = JSON.parse(await JetStream.getString(JetStream.preload.tsconfig)); + this.fileData = JSON.parse(await JetStream.getString(JetStream.preload.files)); + } + + runIteration() { + TypeScriptCompileTest.compileTest(this.tsConfig, this.fileData); + } +} \ No newline at end of file diff --git a/TypeScript/build/import-src-project.mjs b/TypeScript/build/import-src-project.mjs new file mode 100644 index 00000000..6ad554f4 --- /dev/null +++ b/TypeScript/build/import-src-project.mjs @@ -0,0 +1,198 @@ +import fs from "fs"; +import path from "path"; +import { spawnSync } from "child_process"; +import { globSync } from "glob"; +import assert from 'assert/strict'; +import { fileURLToPath } from "url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + + +class Importer { + constructor({ projectName, size, repoUrl, srcFolder, extraFiles, extraDirs }) { + this.projectName = projectName; + assert(projectName.endsWith(`-${size}`), "missing size annotation in projectName"); + this.repoUrl = repoUrl; + this.baseDir = path.resolve(__dirname); + let repoName = path.basename(this.repoUrl); + if (!repoName.endsWith(".git")) { + repoName = `${repoName}.git`; + } + this.repoDir = path.resolve(__dirname, repoName); + this.srcFolder = srcFolder; + this.outputDir = path.resolve(__dirname, `../src/gen/${this.projectName}`); + fs.mkdirSync(this.outputDir, { recursive: true }); + this.srcFileData = Object.create(null); + this.extraFiles = extraFiles; + this.extraDirs = extraDirs; + } + run() { + this.cloneRepo(); + this.readSrcFileData(); + this.addExtraFilesFromDirs(); + this.addSpecificFiles(); + this.writeTsConfig(); + this.writeSrcFileData(); + } + + cloneRepo() { + if (fs.existsSync(this.repoDir)) return; + console.info(`Cloning src data repository to ${this.repoDir}`); + spawnSync("git", ["clone", this.repoUrl, this.repoDir]); + } + + readSrcFileData() { + const patterns = [`${this.srcFolder}/**/*.ts`, `${this.srcFolder}/**/*.d.ts`, `${this.srcFolder}/*.d.ts`]; + patterns.forEach(pattern => { + const files = globSync(pattern, { cwd: this.repoDir, nodir: true }); + files.forEach(file => { + const filePath = path.join(this.repoDir, file); + const relativePath = path.relative(this.repoDir, filePath).toLowerCase(); + const fileContents = fs.readFileSync(filePath, "utf8"); + this.addFileContents(relativePath, fileContents); + }); + }); + } + + addExtraFilesFromDirs() { + this.extraDirs.forEach(({ dir, nameOnly = false }) => { + const absoluteSourceDir = path.resolve(__dirname, dir); + let allFiles = globSync("**/*.d.ts", { cwd: absoluteSourceDir, nodir: true }); + allFiles = allFiles.concat(globSync("**/*.d.mts", { cwd: absoluteSourceDir, nodir: true })); + + allFiles.forEach(file => { + const filePath = path.join(absoluteSourceDir, file); + let relativePath = path.join(dir, path.relative(absoluteSourceDir, filePath)); + if (nameOnly) { + relativePath = path.basename(relativePath); + } + this.addFileContents(relativePath, fs.readFileSync(filePath, "utf8")) + }); + }); + } + + addFileContents(relativePath, fileContents) { + if (relativePath in this.srcFileData) { + if (this.srcFileData[relativePath] !== fileContents) { + throw new Error(`${relativePath} was previously added with different contents.`); + } + } else { + this.srcFileData[relativePath] = fileContents; + } + } + + addSpecificFiles() { + this.extraFiles.forEach(file => { + const filePath = path.join(this.baseDir, file); + this.srcFileData[file] = fs.readFileSync(filePath, "utf8"); + }); + } + + writeSrcFileData() { + const filesDataPath = path.join(this.outputDir, "files.json"); + fs.writeFileSync( + filesDataPath, + JSON.stringify(this.srcFileData, null, 2) + ); + const stats = fs.statSync(filesDataPath); + const fileSizeInKiB = (stats.size / 1024) | 0; + console.info(`Exported ${this.projectName}`); + console.info(` File Contents: ${path.relative(process.cwd(), filesDataPath)}`); + console.info(` Total Size: ${fileSizeInKiB} KiB`); + } + + writeTsConfig() { + const tsconfigInputPath = path.join(this.repoDir, "tsconfig.json"); + const mergedTsconfig = this.loadAndMergeTsconfig(tsconfigInputPath); + const tsconfigOutputPath = path.join(this.outputDir, "tsconfig.json"); + fs.writeFileSync( + tsconfigOutputPath, + JSON.stringify(mergedTsconfig, null, 2) + ); + } + + loadAndMergeTsconfig(configPath) { + const tsconfigContent = fs.readFileSync(configPath, "utf8"); + const tsconfigContentWithoutComments = tsconfigContent.replace(/(?:^|\s)\/\/.*$|\/\*[\s\S]*?\*\//gm, ""); + const tsconfig = JSON.parse(tsconfigContentWithoutComments); + let baseConfigPath = tsconfig.extends; + if (!baseConfigPath) return tsconfig; + if (!baseConfigPath.startsWith('./') && !baseConfigPath.startsWith('../')) return tsconfig; + + baseConfigPath = path.resolve(path.dirname(configPath), baseConfigPath); + const baseConfig = this.loadAndMergeTsconfig(baseConfigPath); + + const mergedConfig = { ...baseConfig, ...tsconfig }; + if (baseConfig.compilerOptions && tsconfig.compilerOptions) { + mergedConfig.compilerOptions = { ...baseConfig.compilerOptions, ...tsconfig.compilerOptions }; + } + delete mergedConfig.extends; + return mergedConfig; + } +} + +const jest = new Importer({ + projectName: "jestjs-large", + size: "large", + repoUrl: "https://github.com/jestjs/jest.git", + srcFolder: "packages", + extraFiles: [ + "../../node_modules/@babel/types/lib/index.d.ts", + "../../node_modules/callsites/index.d.ts", + "../../node_modules/camelcase/index.d.ts", + "../../node_modules/chalk/types/index.d.ts", + "../../node_modules/execa/index.d.ts", + "../../node_modules/fast-json-stable-stringify/index.d.ts", + "../../node_modules/get-stream/index.d.ts", + "../../node_modules/strip-json-comments/index.d.ts", + "../../node_modules/tempy/index.d.ts", + "../../node_modules/tempy/node_modules/type-fest/index.d.ts", + "../node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts", + "../node_modules/@types/eslint/index.d.ts", + "../node_modules/ansi-regex/index.d.ts", + "../node_modules/ansi-styles/index.d.ts", + "../node_modules/glob/dist/esm/index.d.ts", + "../node_modules/jest-worker/build/index.d.ts", + "../node_modules/lru-cache/dist/esm/index.d.ts", + "../node_modules/minipass/dist/esm/index.d.ts", + "../node_modules/p-limit/index.d.ts", + "../node_modules/path-scurry/dist/esm/index.d.ts", + "../node_modules/typescript/lib/lib.dom.d.ts", + ], + extraDirs: [ + { dir: "../node_modules/@types/" }, + { dir: "../node_modules/typescript/lib/", nameOnly: true }, + { dir: "../node_modules/jest-worker/build/" }, + { dir: "../node_modules/@jridgewell/trace-mapping/types/" }, + { dir: "../node_modules/minimatch/dist/esm/" }, + { dir: "../node_modules/glob/dist/esm/" }, + { dir: "../../node_modules/tempy/node_modules/type-fest/source/" } + ], +}); + +const zod = new Importer({ + projectName: "zod-medium", + size: "medium", + repoUrl: "https://github.com/colinhacks/zod.git", + srcFolder: "packages", + extraFiles: [], + extraDirs: [ + { dir: "../node_modules/typescript/lib/", nameOnly: true }, + ], +}); + +const immer =new Importer({ + projectName: "immer-tiny", + size: "tiny", + repoUrl: "https://github.com/immerjs/immer.git", + srcFolder: "src", + extraFiles: [], + extraDirs: [ + { dir: "../node_modules/typescript/lib/", nameOnly: true }, + ], +}); + +// Skip jest since it produces a hugh in-memory FS. +// jest.run(); +zod.run(); +immer.run(); diff --git a/TypeScript/dist/bundle.js b/TypeScript/dist/bundle.js new file mode 100644 index 00000000..42a38f4d --- /dev/null +++ b/TypeScript/dist/bundle.js @@ -0,0 +1,7 @@ +(()=>{var e={21:()=>{},202:()=>{},247:()=>{},387:e=>{function webpackEmptyContext(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}webpackEmptyContext.keys=()=>[],webpackEmptyContext.resolve=webpackEmptyContext,webpackEmptyContext.id=387,e.exports=webpackEmptyContext},615:()=>{},641:()=>{},664:()=>{},732:()=>{},843:(e,t,n)=>{var r="/index.js",i={};(e=>{"use strict";var t=Object.defineProperty,i=(Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.prototype.hasOwnProperty,(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})}),o={};i(o,{ANONYMOUS:()=>Xs,AccessFlags:()=>Ae,AssertionLevel:()=>_,AssignmentDeclarationKind:()=>Ue,AssignmentKind:()=>Sn,Associativity:()=>vn,BreakpointResolver:()=>Ql,BuilderFileEmit:()=>Ka,BuilderProgramKind:()=>Ga,BuilderState:()=>qa,CallHierarchy:()=>Xl,CharacterCodes:()=>rt,CheckFlags:()=>Ee,CheckMode:()=>na,ClassificationType:()=>zs,ClassificationTypeNames:()=>Us,CommentDirectiveType:()=>ae,Comparison:()=>c,CompletionInfoFlags:()=>Ls,CompletionTriggerKind:()=>Fs,Completions:()=>sm,ContainerFlags:()=>jo,ContextFlags:()=>ge,Debug:()=>h,DiagnosticCategory:()=>ze,Diagnostics:()=>Ot,DocumentHighlights:()=>tc,ElementFlags:()=>Ie,EmitFlags:()=>st,EmitHint:()=>pt,EmitOnly:()=>de,EndOfLineState:()=>Bs,ExitStatus:()=>ue,ExportKind:()=>ec,Extension:()=>it,ExternalEmitHelpers:()=>dt,FileIncludeKind:()=>ce,FilePreprocessingDiagnosticsKind:()=>le,FileSystemEntryKind:()=>Nt,FileWatcherEventKind:()=>ht,FindAllReferences:()=>vm,FlattenLevel:()=>fa,FlowFlags:()=>oe,ForegroundColorEscapeSequences:()=>Aa,FunctionFlags:()=>xn,GeneratedIdentifierFlags:()=>ne,GetLiteralTextFlags:()=>mn,GoToDefinition:()=>Pm,HighlightSpanKind:()=>Ds,IdentifierNameMap:()=>ma,ImportKind:()=>Zs,ImportsNotUsedAsValues:()=>Xe,IndentStyle:()=>Is,IndexFlags:()=>Oe,IndexKind:()=>Re,InferenceFlags:()=>Je,InferencePriority:()=>je,InlayHintKind:()=>Ps,InlayHints:()=>Im,InternalEmitFlags:()=>ct,InternalNodeBuilderFlags:()=>he,InternalSymbolName:()=>Ne,IntersectionFlags:()=>fe,InvalidatedProjectKind:()=>ts,JSDocParsingMode:()=>yt,JsDoc:()=>Am,JsTyping:()=>ss,JsxEmit:()=>Qe,JsxFlags:()=>Z,JsxReferenceKind:()=>we,LanguageFeatureMinimumTarget:()=>lt,LanguageServiceMode:()=>Cs,LanguageVariant:()=>tt,LexicalEnvironmentFlags:()=>mt,ListFormat:()=>_t,LogLevel:()=>T,MapCode:()=>Rm,MemberOverrideStatus:()=>me,ModifierFlags:()=>Y,ModuleDetectionKind:()=>qe,ModuleInstanceState:()=>Bo,ModuleKind:()=>$e,ModuleResolutionKind:()=>Ve,ModuleSpecifierEnding:()=>br,NavigateTo:()=>pc,NavigationBar:()=>uc,NewLineKind:()=>Ye,NodeBuilderFlags:()=>ye,NodeCheckFlags:()=>ke,NodeFactoryFlags:()=>Mr,NodeFlags:()=>X,NodeResolutionFeatures:()=>Lo,ObjectFlags:()=>Pe,OperationCanceledException:()=>se,OperatorPrecedence:()=>bn,OrganizeImports:()=>Bm,OrganizeImportsMode:()=>ks,OuterExpressionKinds:()=>ut,OutliningElementsCollector:()=>jm,OutliningSpanKind:()=>Ms,OutputFileType:()=>Rs,PackageJsonAutoImportPreference:()=>bs,PackageJsonDependencyGroup:()=>vs,PatternMatchKind:()=>rc,PollingInterval:()=>Tt,PollingWatchKind:()=>Ge,PragmaKindFlags:()=>ft,PredicateSemantics:()=>te,PreparePasteEdits:()=>x_,PrivateIdentifierKind:()=>Ur,ProcessLevel:()=>ga,ProgramUpdateLevel:()=>Da,QuotePreference:()=>Gs,RegularExpressionFlags:()=>re,RelationComparisonResult:()=>ee,Rename:()=>Wm,ScriptElementKind:()=>Js,ScriptElementKindModifier:()=>Ws,ScriptKind:()=>Ze,ScriptSnapshot:()=>Ts,ScriptTarget:()=>et,SemanticClassificationFormat:()=>Ns,SemanticMeaning:()=>qs,SemicolonPreference:()=>As,SignatureCheckMode:()=>ra,SignatureFlags:()=>Me,SignatureHelp:()=>Um,SignatureInfo:()=>Ha,SignatureKind:()=>Le,SmartSelectionRange:()=>qm,SnippetKind:()=>at,StatisticType:()=>ns,StructureIsReused:()=>pe,SymbolAccessibility:()=>xe,SymbolDisplay:()=>Km,SymbolDisplayPartKind:()=>ws,SymbolFlags:()=>Ce,SymbolFormatFlags:()=>Se,SyntaxKind:()=>Q,Ternary:()=>We,ThrottledCancellationToken:()=>Kl,TokenClass:()=>js,TokenFlags:()=>ie,TransformFlags:()=>ot,TypeFacts:()=>ea,TypeFlags:()=>Fe,TypeFormatFlags:()=>Te,TypeMapKind:()=>Be,TypePredicateKind:()=>ve,TypeReferenceSerializationKind:()=>be,UnionReduction:()=>_e,UpToDateStatusType:()=>Za,VarianceFlags:()=>De,Version:()=>k,VersionRange:()=>F,WatchDirectoryFlags:()=>nt,WatchDirectoryKind:()=>Ke,WatchFileKind:()=>He,WatchLogLevel:()=>Ia,WatchType:()=>Ya,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:()=>Si,affectsDeclarationPathOptionDeclarations:()=>Zi,affectsEmitOptionDeclarations:()=>Yi,allKeysStartWithDot:()=>allKeysStartWithDot,altDirectorySeparator:()=>Pt,and:()=>and,append:()=>append,appendIfUnique:()=>appendIfUnique,arrayFrom:()=>arrayFrom,arrayIsEqualTo:()=>arrayIsEqualTo,arrayIsHomogeneous:()=>arrayIsHomogeneous,arrayOf:()=>arrayOf,arrayReverseIterator:()=>arrayReverseIterator,arrayToMap:()=>arrayToMap,arrayToMultiMap:()=>arrayToMultiMap,arrayToNumericMap:()=>arrayToNumericMap,assertType:()=>assertType,assign:()=>assign,asyncSuperHelper:()=>Ti,attachFileToDiagnostics:()=>attachFileToDiagnostics,base64decode:()=>base64decode,base64encode:()=>base64encode,binarySearch:()=>binarySearch,binarySearchKey:()=>binarySearchKey,bindSourceFile:()=>bindSourceFile,breakIntoCharacterSpans:()=>breakIntoCharacterSpans,breakIntoWordSpans:()=>breakIntoWordSpans,buildLinkParts:()=>buildLinkParts,buildOpts:()=>po,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,canHaveModuleSpecifier:()=>canHaveModuleSpecifier,canHaveSymbol:()=>canHaveSymbol,canIncludeBindAndCheckDiagnostics:()=>canIncludeBindAndCheckDiagnostics,canJsonReportNoInputFiles:()=>canJsonReportNoInputFiles,canProduceDiagnostics:()=>canProduceDiagnostics,canUsePropertyAccess:()=>canUsePropertyAccess,canWatchAffectingLocation:()=>canWatchAffectingLocation,canWatchAtTypes:()=>canWatchAtTypes,canWatchDirectoryOrFile:()=>canWatchDirectoryOrFile,canWatchDirectoryOrFilePath:()=>canWatchDirectoryOrFilePath,cartesianProduct:()=>cartesianProduct,cast:()=>cast,chainBundle:()=>chainBundle,chainDiagnosticMessages:()=>chainDiagnosticMessages,changeAnyExtension:()=>changeAnyExtension,changeCompilerHostLikeToUseCache:()=>changeCompilerHostLikeToUseCache,changeExtension:()=>changeExtension,changeFullExtension:()=>changeFullExtension,changesAffectModuleResolution:()=>changesAffectModuleResolution,changesAffectingProgramStructure:()=>changesAffectingProgramStructure,characterCodeToRegularExpressionFlag:()=>characterCodeToRegularExpressionFlag,childIsDecorated:()=>childIsDecorated,classElementOrClassElementParameterIsDecorated:()=>classElementOrClassElementParameterIsDecorated,classHasClassThisAssignment:()=>classHasClassThisAssignment,classHasDeclaredOrExplicitlyAssignedName:()=>classHasDeclaredOrExplicitlyAssignedName,classHasExplicitlyAssignedName:()=>classHasExplicitlyAssignedName,classOrConstructorParameterIsDecorated:()=>classOrConstructorParameterIsDecorated,classicNameResolver:()=>classicNameResolver,classifier:()=>Yl,cleanExtendedConfigCache:()=>cleanExtendedConfigCache,clear:()=>clear,clearMap:()=>clearMap,clearSharedExtendedConfigFileWatcher:()=>clearSharedExtendedConfigFileWatcher,climbPastPropertyAccess:()=>climbPastPropertyAccess,clone:()=>clone,cloneCompilerOptions:()=>cloneCompilerOptions,closeFileWatcher:()=>closeFileWatcher,closeFileWatcherOf:()=>closeFileWatcherOf,codefix:()=>ed,collapseTextChangeRangesAcrossMultipleVersions:()=>collapseTextChangeRangesAcrossMultipleVersions,collectExternalModuleInfo:()=>collectExternalModuleInfo,combine:()=>combine,combinePaths:()=>combinePaths,commandLineOptionOfCustomType:()=>ao,commentPragmas:()=>gt,commonOptionsWithBuild:()=>Hi,compact:()=>compact,compareBooleans:()=>compareBooleans,compareDataObjects:()=>compareDataObjects,compareDiagnostics:()=>compareDiagnostics,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,compilerOptionsAffectDeclarationPath:()=>compilerOptionsAffectDeclarationPath,compilerOptionsAffectEmit:()=>compilerOptionsAffectEmit,compilerOptionsAffectSemanticDiagnostics:()=>compilerOptionsAffectSemanticDiagnostics,compilerOptionsDidYouMeanDiagnostics:()=>go,compilerOptionsIndicateEsModules:()=>compilerOptionsIndicateEsModules,computeCommonSourceDirectoryOfFilenames:()=>computeCommonSourceDirectoryOfFilenames,computeLineAndCharacterOfPosition:()=>computeLineAndCharacterOfPosition,computeLineOfPosition:()=>computeLineOfPosition,computeLineStarts:()=>computeLineStarts,computePositionOfLineAndCharacter:()=>computePositionOfLineAndCharacter,computeSignatureWithDiagnostics:()=>computeSignatureWithDiagnostics,computeSuggestionDiagnostics:()=>computeSuggestionDiagnostics,computedOptions:()=>Wn,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,createBuilderProgram:()=>createBuilderProgram,createBuilderProgramUsingIncrementalBuildInfo:()=>createBuilderProgramUsingIncrementalBuildInfo,createBuilderStatusReporter:()=>createBuilderStatusReporter,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,createEvaluator:()=>createEvaluator,createExpressionForJsxElement:()=>createExpressionForJsxElement,createExpressionForJsxFragment:()=>createExpressionForJsxFragment,createExpressionForObjectLiteralElementLike:()=>createExpressionForObjectLiteralElementLike,createExpressionForPropertyName:()=>createExpressionForPropertyName,createExpressionFromEntityName:()=>createExpressionFromEntityName,createExternalHelpersImportDeclarationIfNeeded:()=>createExternalHelpersImportDeclarationIfNeeded,createFileDiagnostic:()=>createFileDiagnostic,createFileDiagnosticFromMessageChain:()=>createFileDiagnosticFromMessageChain,createFlowNode:()=>createFlowNode,createForOfBindingStatement:()=>createForOfBindingStatement,createFutureSourceFile:()=>createFutureSourceFile,createGetCanonicalFileName:()=>createGetCanonicalFileName,createGetIsolatedDeclarationErrors:()=>createGetIsolatedDeclarationErrors,createGetSourceFile:()=>createGetSourceFile,createGetSymbolAccessibilityDiagnosticForNode:()=>createGetSymbolAccessibilityDiagnosticForNode,createGetSymbolAccessibilityDiagnosticForNodeName:()=>createGetSymbolAccessibilityDiagnosticForNodeName,createGetSymbolWalker:()=>createGetSymbolWalker,createIncrementalCompilerHost:()=>createIncrementalCompilerHost,createIncrementalProgram:()=>createIncrementalProgram,createJsxFactoryExpression:()=>createJsxFactoryExpression,createLanguageService:()=>createLanguageService,createLanguageServiceSourceFile:()=>createLanguageServiceSourceFile,createMemberAccessForPropertyName:()=>createMemberAccessForPropertyName,createModeAwareCache:()=>createModeAwareCache,createModeAwareCacheKey:()=>createModeAwareCacheKey,createModeMismatchDetails:()=>createModeMismatchDetails,createModuleNotFoundChain:()=>createModuleNotFoundChain,createModuleResolutionCache:()=>createModuleResolutionCache,createModuleResolutionLoader:()=>createModuleResolutionLoader,createModuleResolutionLoaderUsingGlobalCache:()=>createModuleResolutionLoaderUsingGlobalCache,createModuleSpecifierResolutionHost:()=>createModuleSpecifierResolutionHost,createMultiMap:()=>createMultiMap,createNameResolver:()=>createNameResolver,createNodeConverters:()=>createNodeConverters,createNodeFactory:()=>createNodeFactory,createOptionNameMap:()=>createOptionNameMap,createOverload:()=>createOverload,createPackageJsonImportFilter:()=>createPackageJsonImportFilter,createPackageJsonInfo:()=>createPackageJsonInfo,createParenthesizerRules:()=>createParenthesizerRules,createPatternMatcher:()=>createPatternMatcher,createPrinter:()=>createPrinter,createPrinterWithDefaults:()=>Na,createPrinterWithRemoveComments:()=>ka,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>Fa,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>Pa,createProgram:()=>createProgram,createProgramDiagnostics:()=>createProgramDiagnostics,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,createSyntacticTypeNodeBuilder:()=>createSyntacticTypeNodeBuilder,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,createWatchCompilerHost:()=>createWatchCompilerHost2,createWatchCompilerHostOfConfigFile:()=>createWatchCompilerHostOfConfigFile,createWatchCompilerHostOfFilesAndCompilerOptions:()=>createWatchCompilerHostOfFilesAndCompilerOptions,createWatchFactory:()=>createWatchFactory,createWatchHost:()=>createWatchHost,createWatchProgram:()=>createWatchProgram,createWatchStatusReporter:()=>createWatchStatusReporter,createWriteFileMeasuringIO:()=>createWriteFileMeasuringIO,declarationNameToString:()=>declarationNameToString,decodeMappings:()=>decodeMappings,decodedTextSpanIntersectsWith:()=>decodedTextSpanIntersectsWith,deduplicate:()=>deduplicate,defaultHoverMaximumTruncationLength:()=>dn,defaultInitCompilerOptions:()=>_o,defaultMaximumTruncationLength:()=>cn,diagnosticCategoryName:()=>diagnosticCategoryName,diagnosticToString:()=>diagnosticToString,diagnosticsEqualityComparer:()=>diagnosticsEqualityComparer,directoryProbablyExists:()=>directoryProbablyExists,directorySeparator:()=>Ft,displayPart:()=>displayPart,displayPartsToString:()=>displayPartsToString,disposeEmitNodes:()=>disposeEmitNodes,documentSpansEqual:()=>documentSpansEqual,dumpTracingLegend:()=>$,elementAt:()=>p,elideNodes:()=>elideNodes,emitDetachedComments:()=>emitDetachedComments,emitFiles:()=>emitFiles,emitFilesAndReportErrors:()=>emitFilesAndReportErrors,emitFilesAndReportErrorsAndGetExitStatus:()=>emitFilesAndReportErrorsAndGetExitStatus,emitModuleKindIsNonNodeESM:()=>emitModuleKindIsNonNodeESM,emitNewLineBeforeLeadingCommentOfPosition:()=>emitNewLineBeforeLeadingCommentOfPosition,emitResolverSkipsTypeChecking:()=>emitResolverSkipsTypeChecking,emitSkippedWithNoDiagnostics:()=>Va,emptyArray:()=>l,emptyFileSystemEntries:()=>Nr,emptyMap:()=>d,emptyOptions:()=>Es,endsWith:()=>endsWith,ensurePathIsNonModuleName:()=>ensurePathIsNonModuleName,ensureScriptKind:()=>ensureScriptKind,ensureTrailingDirectorySeparator:()=>ensureTrailingDirectorySeparator,entityNameToString:()=>entityNameToString,enumerateInsertsAndDeletes:()=>enumerateInsertsAndDeletes,equalOwnProperties:()=>equalOwnProperties,equateStringsCaseInsensitive:()=>equateStringsCaseInsensitive,equateStringsCaseSensitive:()=>equateStringsCaseSensitive,equateValues:()=>equateValues,escapeJsxAttributeString:()=>escapeJsxAttributeString,escapeLeadingUnderscores:()=>escapeLeadingUnderscores,escapeNonAsciiString:()=>escapeNonAsciiString,escapeSnippetText:()=>escapeSnippetText,escapeString:()=>escapeString,escapeTemplateSubstitution:()=>escapeTemplateSubstitution,evaluatorResult:()=>evaluatorResult,every:()=>every,exclusivelyPrefixedNodeCoreModules:()=>Dr,executeCommandLine:()=>executeCommandLine,expandPreOrPostfixIncrementOrDecrementExpression:()=>expandPreOrPostfixIncrementOrDecrementExpression,explainFiles:()=>explainFiles,explainIfFileIsRedirectAndImpliedFormat:()=>explainIfFileIsRedirectAndImpliedFormat,exportAssignmentIsAlias:()=>exportAssignmentIsAlias,expressionResultIsUnused:()=>expressionResultIsUnused,extend:()=>extend,extensionFromPath:()=>extensionFromPath,extensionIsTS:()=>extensionIsTS,extensionsNotSupportingExtensionlessResolution:()=>vr,externalHelpersModuleNameText:()=>sn,factory:()=>Wr,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,findConstructorDeclaration:()=>findConstructorDeclaration,findContainingList:()=>findContainingList,findDiagnosticForNode:()=>findDiagnosticForNode,findFirstNonJsxWhitespaceToken:()=>findFirstNonJsxWhitespaceToken,findIndex:()=>findIndex,findLast:()=>findLast,findLastIndex:()=>findLastIndex,findListItemInfo:()=>findListItemInfo,findModifier:()=>findModifier,findNextToken:()=>findNextToken,findPackageJson:()=>findPackageJson,findPackageJsons:()=>findPackageJsons,findPrecedingMatchingToken:()=>findPrecedingMatchingToken,findPrecedingToken:()=>findPrecedingToken,findSuperStatementIndexPath:()=>findSuperStatementIndexPath,findTokenOnLeftOfPosition:()=>findTokenOnLeftOfPosition,findUseStrictPrologue:()=>findUseStrictPrologue,first:()=>first,firstDefined:()=>firstDefined,firstDefinedIterator:()=>firstDefinedIterator,firstIterator:()=>firstIterator,firstOrOnly:()=>firstOrOnly,firstOrUndefined:()=>firstOrUndefined,firstOrUndefinedIterator:()=>firstOrUndefinedIterator,fixupCompilerOptions:()=>fixupCompilerOptions,flatMap:()=>flatMap,flatMapIterator:()=>flatMapIterator,flatMapToMutable:()=>flatMapToMutable,flatten:()=>flatten,flattenCommaList:()=>flattenCommaList,flattenDestructuringAssignment:()=>flattenDestructuringAssignment,flattenDestructuringBinding:()=>flattenDestructuringBinding,flattenDiagnosticMessageText:()=>flattenDiagnosticMessageText,forEach:()=>forEach,forEachAncestor:()=>forEachAncestor,forEachAncestorDirectory:()=>forEachAncestorDirectory,forEachAncestorDirectoryStoppingAtGlobalCache:()=>forEachAncestorDirectoryStoppingAtGlobalCache,forEachChild:()=>forEachChild,forEachChildRecursively:()=>forEachChildRecursively,forEachDynamicImportOrRequireCall:()=>forEachDynamicImportOrRequireCall,forEachEmittedFile:()=>forEachEmittedFile,forEachEnclosingBlockScopeContainer:()=>forEachEnclosingBlockScopeContainer,forEachEntry:()=>forEachEntry,forEachExternalModuleToImportFrom:()=>forEachExternalModuleToImportFrom,forEachImportClauseDeclaration:()=>forEachImportClauseDeclaration,forEachKey:()=>forEachKey,forEachLeadingCommentRange:()=>forEachLeadingCommentRange,forEachNameInAccessChainWalkingLeft:()=>forEachNameInAccessChainWalkingLeft,forEachNameOfDefaultExport:()=>forEachNameOfDefaultExport,forEachOptionsSyntaxByName:()=>forEachOptionsSyntaxByName,forEachProjectReference:()=>forEachProjectReference,forEachPropertyAssignment:()=>forEachPropertyAssignment,forEachResolvedProjectReference:()=>forEachResolvedProjectReference,forEachReturnStatement:()=>forEachReturnStatement,forEachRight:()=>forEachRight,forEachTrailingCommentRange:()=>forEachTrailingCommentRange,forEachTsConfigPropArray:()=>forEachTsConfigPropArray,forEachUnique:()=>forEachUnique,forEachYieldExpression:()=>forEachYieldExpression,formatColorAndReset:()=>formatColorAndReset,formatDiagnostic:()=>formatDiagnostic,formatDiagnostics:()=>formatDiagnostics,formatDiagnosticsWithColorAndContext:()=>formatDiagnosticsWithColorAndContext,formatGeneratedName:()=>formatGeneratedName,formatGeneratedNamePart:()=>formatGeneratedNamePart,formatLocation:()=>formatLocation,formatMessage:()=>formatMessage,formatStringFromArgs:()=>formatStringFromArgs,formatting:()=>r_,generateDjb2Hash:()=>generateDjb2Hash,generateTSConfig:()=>generateTSConfig,getAdjustedReferenceLocation:()=>getAdjustedReferenceLocation,getAdjustedRenameLocation:()=>getAdjustedRenameLocation,getAliasDeclarationFromName:()=>getAliasDeclarationFromName,getAllAccessorDeclarations:()=>getAllAccessorDeclarations,getAllDecoratorsOfClass:()=>getAllDecoratorsOfClass,getAllDecoratorsOfClassElement:()=>getAllDecoratorsOfClassElement,getAllJSDocTags:()=>getAllJSDocTags,getAllJSDocTagsOfKind:()=>getAllJSDocTagsOfKind,getAllKeys:()=>getAllKeys,getAllProjectOutputs:()=>getAllProjectOutputs,getAllSuperTypeNodes:()=>getAllSuperTypeNodes,getAllowImportingTsExtensions:()=>Un,getAllowJSCompilerOption:()=>rr,getAllowSyntheticDefaultImports:()=>$n,getAncestor:()=>getAncestor,getAnyExtensionFromPath:()=>getAnyExtensionFromPath,getAreDeclarationMapsEnabled:()=>nr,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,getCanonicalDiagnostic:()=>getCanonicalDiagnostic,getCheckFlags:()=>getCheckFlags,getClassExtendsHeritageElement:()=>getClassExtendsHeritageElement,getClassLikeDeclarationOfSymbol:()=>getClassLikeDeclarationOfSymbol,getCombinedLocalAndExportSymbolFlags:()=>getCombinedLocalAndExportSymbolFlags,getCombinedModifierFlags:()=>getCombinedModifierFlags,getCombinedNodeFlags:()=>getCombinedNodeFlags,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>getCombinedNodeFlagsAlwaysIncludeJSDoc,getCommentRange:()=>getCommentRange,getCommonSourceDirectory:()=>getCommonSourceDirectory,getCommonSourceDirectoryOfConfig:()=>getCommonSourceDirectoryOfConfig,getCompilerOptionValue:()=>getCompilerOptionValue,getConditions:()=>getConditions,getConfigFileParsingDiagnostics:()=>getConfigFileParsingDiagnostics,getConstantValue:()=>getConstantValue,getContainerFlags:()=>getContainerFlags,getContainerNode:()=>getContainerNode,getContainingClass:()=>getContainingClass,getContainingClassExcludingClassDecorators:()=>getContainingClassExcludingClassDecorators,getContainingClassStaticBlock:()=>getContainingClassStaticBlock,getContainingFunction:()=>getContainingFunction,getContainingFunctionDeclaration:()=>getContainingFunctionDeclaration,getContainingFunctionOrClassStaticBlock:()=>getContainingFunctionOrClassStaticBlock,getContainingNodeArray:()=>getContainingNodeArray,getContainingObjectLiteralElement:()=>getContainingObjectLiteralElement,getContextualTypeFromParent:()=>getContextualTypeFromParent,getContextualTypeFromParentOrAncestorTypeNode:()=>getContextualTypeFromParentOrAncestorTypeNode,getDeclarationDiagnostics:()=>getDeclarationDiagnostics,getDeclarationEmitExtensionForPath:()=>getDeclarationEmitExtensionForPath,getDeclarationEmitOutputFilePath:()=>getDeclarationEmitOutputFilePath,getDeclarationEmitOutputFilePathWorker:()=>getDeclarationEmitOutputFilePathWorker,getDeclarationFileExtension:()=>getDeclarationFileExtension,getDeclarationFromName:()=>getDeclarationFromName,getDeclarationModifierFlagsFromSymbol:()=>getDeclarationModifierFlagsFromSymbol,getDeclarationOfKind:()=>getDeclarationOfKind,getDeclarationsOfKind:()=>getDeclarationsOfKind,getDeclaredExpandoInitializer:()=>getDeclaredExpandoInitializer,getDecorators:()=>getDecorators,getDefaultCompilerOptions:()=>getDefaultCompilerOptions2,getDefaultFormatCodeSettings:()=>getDefaultFormatCodeSettings,getDefaultLibFileName:()=>getDefaultLibFileName,getDefaultLibFilePath:()=>getDefaultLibFilePath,getDefaultLikeExportInfo:()=>getDefaultLikeExportInfo,getDefaultLikeExportNameFromDeclaration:()=>getDefaultLikeExportNameFromDeclaration,getDefaultResolutionModeForFileWorker:()=>getDefaultResolutionModeForFileWorker,getDiagnosticText:()=>getDiagnosticText,getDiagnosticsWithinSpan:()=>getDiagnosticsWithinSpan,getDirectoryPath:()=>getDirectoryPath,getDirectoryToWatchFailedLookupLocation:()=>getDirectoryToWatchFailedLookupLocation,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>getDirectoryToWatchFailedLookupLocationFromTypeRoot,getDocumentPositionMapper:()=>getDocumentPositionMapper,getDocumentSpansEqualityComparer:()=>getDocumentSpansEqualityComparer,getESModuleInterop:()=>Gn,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:()=>Zn,getEmitFlags:()=>getEmitFlags,getEmitHelpers:()=>getEmitHelpers,getEmitModuleDetectionKind:()=>Hn,getEmitModuleFormatOfFileWorker:()=>getEmitModuleFormatOfFileWorker,getEmitModuleKind:()=>Vn,getEmitModuleResolutionKind:()=>qn,getEmitScriptTarget:()=>zn,getEmitStandardClassFields:()=>getEmitStandardClassFields,getEnclosingBlockScopeContainer:()=>getEnclosingBlockScopeContainer,getEnclosingContainer:()=>getEnclosingContainer,getEncodedSemanticClassifications:()=>getEncodedSemanticClassifications,getEncodedSyntacticClassifications:()=>getEncodedSyntacticClassifications,getEndLinePosition:()=>getEndLinePosition,getEntityNameFromTypeNode:()=>getEntityNameFromTypeNode,getEntrypointsFromPackageJsonInfo:()=>getEntrypointsFromPackageJsonInfo,getErrorCountForSummary:()=>getErrorCountForSummary,getErrorSpanForNode:()=>getErrorSpanForNode,getErrorSummaryText:()=>getErrorSummaryText,getEscapedTextOfIdentifierOrLiteral:()=>getEscapedTextOfIdentifierOrLiteral,getEscapedTextOfJsxAttributeName:()=>getEscapedTextOfJsxAttributeName,getEscapedTextOfJsxNamespacedName:()=>getEscapedTextOfJsxNamespacedName,getExpandoInitializer:()=>getExpandoInitializer,getExportAssignmentExpression:()=>getExportAssignmentExpression,getExportInfoMap:()=>getExportInfoMap,getExportNeedsImportStarHelper:()=>getExportNeedsImportStarHelper,getExpressionAssociativity:()=>getExpressionAssociativity,getExpressionPrecedence:()=>getExpressionPrecedence,getExternalHelpersModuleName:()=>getExternalHelpersModuleName,getExternalModuleImportEqualsDeclarationExpression:()=>getExternalModuleImportEqualsDeclarationExpression,getExternalModuleName:()=>getExternalModuleName,getExternalModuleNameFromDeclaration:()=>getExternalModuleNameFromDeclaration,getExternalModuleNameFromPath:()=>getExternalModuleNameFromPath,getExternalModuleNameLiteral:()=>getExternalModuleNameLiteral,getExternalModuleRequireArgument:()=>getExternalModuleRequireArgument,getFallbackOptions:()=>getFallbackOptions,getFileEmitOutput:()=>getFileEmitOutput,getFileMatcherPatterns:()=>getFileMatcherPatterns,getFileNamesFromConfigSpecs:()=>getFileNamesFromConfigSpecs,getFileWatcherEventKind:()=>getFileWatcherEventKind,getFilesInErrorForSummary:()=>getFilesInErrorForSummary,getFirstConstructorWithBody:()=>getFirstConstructorWithBody,getFirstIdentifier:()=>getFirstIdentifier,getFirstNonSpaceCharacterPosition:()=>getFirstNonSpaceCharacterPosition,getFirstProjectOutput:()=>getFirstProjectOutput,getFixableErrorSpanExpression:()=>getFixableErrorSpanExpression,getFormatCodeSettingsForWriting:()=>getFormatCodeSettingsForWriting,getFullWidth:()=>getFullWidth,getFunctionFlags:()=>getFunctionFlags,getHeritageClause:()=>getHeritageClause,getHostSignatureFromJSDoc:()=>getHostSignatureFromJSDoc,getIdentifierAutoGenerate:()=>getIdentifierAutoGenerate,getIdentifierGeneratedImportReference:()=>getIdentifierGeneratedImportReference,getIdentifierTypeArguments:()=>getIdentifierTypeArguments,getImmediatelyInvokedFunctionExpression:()=>getImmediatelyInvokedFunctionExpression,getImpliedNodeFormatForEmitWorker:()=>getImpliedNodeFormatForEmitWorker,getImpliedNodeFormatForFile:()=>getImpliedNodeFormatForFile,getImpliedNodeFormatForFileWorker:()=>getImpliedNodeFormatForFileWorker,getImportNeedsImportDefaultHelper:()=>getImportNeedsImportDefaultHelper,getImportNeedsImportStarHelper:()=>getImportNeedsImportStarHelper,getIndentString:()=>getIndentString,getInferredLibraryNameResolveFrom:()=>getInferredLibraryNameResolveFrom,getInitializedVariables:()=>getInitializedVariables,getInitializerOfBinaryExpression:()=>getInitializerOfBinaryExpression,getInitializerOfBindingOrAssignmentElement:()=>getInitializerOfBindingOrAssignmentElement,getInterfaceBaseTypeNodes:()=>getInterfaceBaseTypeNodes,getInternalEmitFlags:()=>getInternalEmitFlags,getInvokedExpression:()=>getInvokedExpression,getIsFileExcluded:()=>getIsFileExcluded,getIsolatedModules:()=>Kn,getJSDocAugmentsTag:()=>getJSDocAugmentsTag,getJSDocClassTag:()=>getJSDocClassTag,getJSDocCommentRanges:()=>getJSDocCommentRanges,getJSDocCommentsAndTags:()=>getJSDocCommentsAndTags,getJSDocDeprecatedTag:()=>getJSDocDeprecatedTag,getJSDocDeprecatedTagNoCache:()=>getJSDocDeprecatedTagNoCache,getJSDocEnumTag:()=>getJSDocEnumTag,getJSDocHost:()=>getJSDocHost,getJSDocImplementsTags:()=>getJSDocImplementsTags,getJSDocOverloadTags:()=>getJSDocOverloadTags,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,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,getLibFileNameFromLibReference:()=>getLibFileNameFromLibReference,getLibNameFromLibReference:()=>getLibNameFromLibReference,getLibraryNameFromLibFileName:()=>getLibraryNameFromLibFileName,getLineAndCharacterOfPosition:()=>getLineAndCharacterOfPosition,getLineInfo:()=>getLineInfo,getLineOfLocalPosition:()=>getLineOfLocalPosition,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,getNameFromImportAttribute:()=>getNameFromImportAttribute,getNameFromIndexInfo:()=>getNameFromIndexInfo,getNameFromPropertyName:()=>getNameFromPropertyName,getNameOfAccessExpression:()=>getNameOfAccessExpression,getNameOfCompilerOptionValue:()=>getNameOfCompilerOptionValue,getNameOfDeclaration:()=>getNameOfDeclaration,getNameOfExpando:()=>getNameOfExpando,getNameOfJSDocTypedef:()=>getNameOfJSDocTypedef,getNameOfScriptTarget:()=>getNameOfScriptTarget,getNameOrArgument:()=>getNameOrArgument,getNameTable:()=>getNameTable,getNamespaceDeclarationNode:()=>getNamespaceDeclarationNode,getNewLineCharacter:()=>getNewLineCharacter,getNewLineKind:()=>getNewLineKind,getNewLineOrDefaultFromHost:()=>getNewLineOrDefaultFromHost,getNewTargetContainer:()=>getNewTargetContainer,getNextJSDocCommentLocation:()=>getNextJSDocCommentLocation,getNodeChildren:()=>getNodeChildren,getNodeForGeneratedName:()=>getNodeForGeneratedName,getNodeId:()=>getNodeId,getNodeKind:()=>getNodeKind,getNodeModifiers:()=>getNodeModifiers,getNodeModulePathParts:()=>getNodeModulePathParts,getNonAssignedNameOfDeclaration:()=>getNonAssignedNameOfDeclaration,getNonAssignmentOperatorForCompoundAssignment:()=>getNonAssignmentOperatorForCompoundAssignment,getNonAugmentationDeclaration:()=>getNonAugmentationDeclaration,getNonDecoratorTokenPosOfNode:()=>getNonDecoratorTokenPosOfNode,getNonIncrementalBuildInfoRoots:()=>getNonIncrementalBuildInfoRoots,getNonModifierTokenPosOfNode:()=>getNonModifierTokenPosOfNode,getNormalizedAbsolutePath:()=>getNormalizedAbsolutePath,getNormalizedAbsolutePathWithoutRoot:()=>getNormalizedAbsolutePathWithoutRoot,getNormalizedPathComponents:()=>getNormalizedPathComponents,getObjectFlags:()=>getObjectFlags,getOperatorAssociativity:()=>getOperatorAssociativity,getOperatorPrecedence:()=>getOperatorPrecedence,getOptionFromName:()=>getOptionFromName,getOptionsForLibraryResolution:()=>getOptionsForLibraryResolution,getOptionsNameMap:()=>getOptionsNameMap,getOptionsSyntaxByArrayElementValue:()=>getOptionsSyntaxByArrayElementValue,getOptionsSyntaxByValue:()=>getOptionsSyntaxByValue,getOrCreateEmitNode:()=>getOrCreateEmitNode,getOrUpdate:()=>getOrUpdate,getOriginalNode:()=>getOriginalNode,getOriginalNodeId:()=>getOriginalNodeId,getOutputDeclarationFileName:()=>getOutputDeclarationFileName,getOutputDeclarationFileNameWorker:()=>getOutputDeclarationFileNameWorker,getOutputExtension:()=>getOutputExtension,getOutputFileNames:()=>getOutputFileNames,getOutputJSFileNameWorker:()=>getOutputJSFileNameWorker,getOutputPathsFor:()=>getOutputPathsFor,getOwnEmitOutputFilePath:()=>getOwnEmitOutputFilePath,getOwnKeys:()=>getOwnKeys,getOwnValues:()=>getOwnValues,getPackageJsonTypesVersionsPaths:()=>getPackageJsonTypesVersionsPaths,getPackageNameFromTypesPackageName:()=>getPackageNameFromTypesPackageName,getPackageScopeForPath:()=>getPackageScopeForPath,getParameterSymbolFromJSDoc:()=>getParameterSymbolFromJSDoc,getParentNodeInSpan:()=>getParentNodeInSpan,getParseTreeNode:()=>getParseTreeNode,getParsedCommandLineOfConfigFile:()=>getParsedCommandLineOfConfigFile,getPathComponents:()=>getPathComponents,getPathFromPathComponents:()=>getPathFromPathComponents,getPathUpdater:()=>getPathUpdater,getPathsBasePath:()=>getPathsBasePath,getPatternFromSpec:()=>getPatternFromSpec,getPendingEmitKindWithSeen:()=>getPendingEmitKindWithSeen,getPositionOfLineAndCharacter:()=>getPositionOfLineAndCharacter,getPossibleGenericSignatures:()=>getPossibleGenericSignatures,getPossibleOriginalInputExtensionForExtension:()=>getPossibleOriginalInputExtensionForExtension,getPossibleOriginalInputPathWithoutChangingExt:()=>getPossibleOriginalInputPathWithoutChangingExt,getPossibleTypeArgumentsInfo:()=>getPossibleTypeArgumentsInfo,getPreEmitDiagnostics:()=>getPreEmitDiagnostics,getPrecedingNonSpaceCharacterPosition:()=>getPrecedingNonSpaceCharacterPosition,getPrivateIdentifier:()=>getPrivateIdentifier,getProperties:()=>getProperties,getProperty:()=>getProperty,getPropertyAssignmentAliasLikeExpression:()=>getPropertyAssignmentAliasLikeExpression,getPropertyNameForPropertyNameNode:()=>getPropertyNameForPropertyNameNode,getPropertyNameFromType:()=>getPropertyNameFromType,getPropertyNameOfBindingOrAssignmentElement:()=>getPropertyNameOfBindingOrAssignmentElement,getPropertySymbolFromBindingElement:()=>getPropertySymbolFromBindingElement,getPropertySymbolsFromContextualType:()=>getPropertySymbolsFromContextualType,getQuoteFromPreference:()=>getQuoteFromPreference,getQuotePreference:()=>getQuotePreference,getRangesWhere:()=>getRangesWhere,getRefactorContextSpan:()=>getRefactorContextSpan,getReferencedFileLocation:()=>getReferencedFileLocation,getRegexFromPattern:()=>getRegexFromPattern,getRegularExpressionForWildcard:()=>getRegularExpressionForWildcard,getRegularExpressionsForWildcards:()=>getRegularExpressionsForWildcards,getRelativePathFromDirectory:()=>getRelativePathFromDirectory,getRelativePathFromFile:()=>getRelativePathFromFile,getRelativePathToDirectoryOrUrl:()=>getRelativePathToDirectoryOrUrl,getRenameLocation:()=>getRenameLocation,getReplacementSpanForContextToken:()=>getReplacementSpanForContextToken,getResolutionDiagnostic:()=>getResolutionDiagnostic,getResolutionModeOverride:()=>getResolutionModeOverride,getResolveJsonModule:()=>Yn,getResolvePackageJsonExports:()=>Qn,getResolvePackageJsonImports:()=>Xn,getResolvedExternalModuleName:()=>getResolvedExternalModuleName,getResolvedModuleFromResolution:()=>getResolvedModuleFromResolution,getResolvedTypeReferenceDirectiveFromResolution:()=>getResolvedTypeReferenceDirectiveFromResolution,getRestIndicatorOfBindingOrAssignmentElement:()=>getRestIndicatorOfBindingOrAssignmentElement,getRestParameterElementType:()=>getRestParameterElementType,getRightMostAssignedExpression:()=>getRightMostAssignedExpression,getRootDeclaration:()=>getRootDeclaration,getRootDirectoryOfResolutionCache:()=>getRootDirectoryOfResolutionCache,getRootLength:()=>getRootLength,getScriptKind:()=>getScriptKind,getScriptKindFromFileName:()=>getScriptKindFromFileName,getScriptTargetFeatures:()=>un,getSelectedEffectiveModifierFlags:()=>getSelectedEffectiveModifierFlags,getSelectedSyntacticModifierFlags:()=>getSelectedSyntacticModifierFlags,getSemanticClassifications:()=>getSemanticClassifications,getSemanticJsxChildren:()=>getSemanticJsxChildren,getSetAccessorTypeAnnotationNode:()=>getSetAccessorTypeAnnotationNode,getSetAccessorValueParameter:()=>getSetAccessorValueParameter,getSetExternalModuleIndicator:()=>getSetExternalModuleIndicator,getShebang:()=>getShebang,getSingleVariableOfVariableStatement:()=>getSingleVariableOfVariableStatement,getSnapshotText:()=>getSnapshotText,getSnippetElement:()=>getSnippetElement,getSourceFileOfModule:()=>getSourceFileOfModule,getSourceFileOfNode:()=>getSourceFileOfNode,getSourceFilePathInNewDir:()=>getSourceFilePathInNewDir,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,getSubPatternFromSpec:()=>getSubPatternFromSpec,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,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:()=>ir,getWatchErrorSummaryDiagnosticMessage:()=>getWatchErrorSummaryDiagnosticMessage,getWatchFactory:()=>getWatchFactory,group:()=>group,groupBy:()=>groupBy,guessIndentation:()=>guessIndentation,handleNoEmitOptions:()=>handleNoEmitOptions,handleWatchOptionsConfigDirTemplateSubstitution:()=>handleWatchOptionsConfigDirTemplateSubstitution,hasAbstractModifier:()=>hasAbstractModifier,hasAccessorModifier:()=>hasAccessorModifier,hasAmbientModifier:()=>hasAmbientModifier,hasChangesInResolutions:()=>hasChangesInResolutions,hasContextSensitiveParameters:()=>hasContextSensitiveParameters,hasDecorators:()=>hasDecorators,hasDocComment:()=>hasDocComment,hasDynamicName:()=>hasDynamicName,hasEffectiveModifier:()=>hasEffectiveModifier,hasEffectiveModifiers:()=>hasEffectiveModifiers,hasEffectiveReadonlyModifier:()=>hasEffectiveReadonlyModifier,hasExtension:()=>hasExtension,hasImplementationTSFileExtension:()=>hasImplementationTSFileExtension,hasIndexSignature:()=>hasIndexSignature,hasInferredType:()=>hasInferredType,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,hasResolutionModeOverride:()=>hasResolutionModeOverride,hasRestParameter:()=>hasRestParameter,hasScopeMarker:()=>hasScopeMarker,hasStaticModifier:()=>hasStaticModifier,hasSyntacticModifier:()=>hasSyntacticModifier,hasSyntacticModifiers:()=>hasSyntacticModifiers,hasTSFileExtension:()=>hasTSFileExtension,hasTabstop:()=>hasTabstop,hasTrailingDirectorySeparator:()=>hasTrailingDirectorySeparator,hasType:()=>hasType,hasTypeArguments:()=>hasTypeArguments,hasZeroOrOneAsteriskCharacter:()=>hasZeroOrOneAsteriskCharacter,hostGetCanonicalFileName:()=>hostGetCanonicalFileName,hostUsesCaseSensitiveFileNames:()=>hostUsesCaseSensitiveFileNames,idText:()=>idText,identifierIsThisKeyword:()=>identifierIsThisKeyword,identifierToKeywordKind:()=>identifierToKeywordKind,identity:()=>identity,identitySourceMapConsumer:()=>ua,ignoreSourceNewlines:()=>ignoreSourceNewlines,ignoredPaths:()=>Ct,importFromModuleSpecifier:()=>importFromModuleSpecifier,importSyntaxAffectsModuleResolution:()=>importSyntaxAffectsModuleResolution,indexOfAnyCharCode:()=>indexOfAnyCharCode,indexOfNode:()=>indexOfNode,indicesOf:()=>indicesOf,inferredTypesContainingFile:()=>Ua,injectClassNamedEvaluationHelperBlockIfMissing:()=>injectClassNamedEvaluationHelperBlockIfMissing,injectClassThisAssignmentIfMissing:()=>injectClassThisAssignmentIfMissing,insertImports:()=>insertImports,insertSorted:()=>insertSorted,insertStatementAfterCustomPrologue:()=>insertStatementAfterCustomPrologue,insertStatementAfterStandardPrologue:()=>insertStatementAfterStandardPrologue,insertStatementsAfterCustomPrologue:()=>insertStatementsAfterCustomPrologue,insertStatementsAfterStandardPrologue:()=>insertStatementsAfterStandardPrologue,intersperse:()=>intersperse,intrinsicTagNameToString:()=>intrinsicTagNameToString,introducesArgumentsExoticObject:()=>introducesArgumentsExoticObject,inverseJsxOptionMap:()=>Wi,isAbstractConstructorSymbol:()=>isAbstractConstructorSymbol,isAbstractModifier:()=>isAbstractModifier,isAccessExpression:()=>isAccessExpression,isAccessibilityModifier:()=>isAccessibilityModifier,isAccessor:()=>isAccessor,isAccessorModifier:()=>isAccessorModifier,isAliasableExpression:()=>isAliasableExpression,isAmbientModule:()=>isAmbientModule,isAmbientPropertyDeclaration:()=>isAmbientPropertyDeclaration,isAnyDirectorySeparator:()=>isAnyDirectorySeparator,isAnyImportOrBareOrAccessedRequire:()=>isAnyImportOrBareOrAccessedRequire,isAnyImportOrReExport:()=>isAnyImportOrReExport,isAnyImportOrRequireStatement:()=>isAnyImportOrRequireStatement,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,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,isBinaryLogicalOperator:()=>isBinaryLogicalOperator,isBinaryOperatorToken:()=>isBinaryOperatorToken,isBindableObjectDefinePropertyCall:()=>isBindableObjectDefinePropertyCall,isBindableStaticAccessExpression:()=>isBindableStaticAccessExpression,isBindableStaticElementAccessExpression:()=>isBindableStaticElementAccessExpression,isBindableStaticNameExpression:()=>isBindableStaticNameExpression,isBindingElement:()=>isBindingElement,isBindingElementOfBareOrAccessedRequire:()=>isBindingElementOfBareOrAccessedRequire,isBindingName:()=>isBindingName,isBindingOrAssignmentElement:()=>isBindingOrAssignmentElement,isBindingOrAssignmentPattern:()=>isBindingOrAssignmentPattern,isBindingPattern:()=>isBindingPattern,isBlock:()=>isBlock,isBlockLike:()=>isBlockLike,isBlockOrCatchScoped:()=>isBlockOrCatchScoped,isBlockScope:()=>isBlockScope,isBlockScopedContainerTopLevel:()=>isBlockScopedContainerTopLevel,isBooleanLiteral:()=>isBooleanLiteral,isBreakOrContinueStatement:()=>isBreakOrContinueStatement,isBreakStatement:()=>isBreakStatement,isBuildCommand:()=>isBuildCommand,isBuildInfoFile:()=>isBuildInfoFile,isBuilderProgram:()=>isBuilderProgram,isBundle:()=>isBundle,isCallChain:()=>isCallChain,isCallExpression:()=>isCallExpression,isCallExpressionTarget:()=>isCallExpressionTarget,isCallLikeExpression:()=>isCallLikeExpression,isCallLikeOrFunctionLikeExpression:()=>isCallLikeOrFunctionLikeExpression,isCallOrNewExpression:()=>isCallOrNewExpression,isCallOrNewExpressionTarget:()=>isCallOrNewExpressionTarget,isCallSignatureDeclaration:()=>isCallSignatureDeclaration,isCallToHelper:()=>isCallToHelper,isCaseBlock:()=>isCaseBlock,isCaseClause:()=>isCaseClause,isCaseKeyword:()=>isCaseKeyword,isCaseOrDefaultClause:()=>isCaseOrDefaultClause,isCatchClause:()=>isCatchClause,isCatchClauseVariableDeclaration:()=>isCatchClauseVariableDeclaration,isCatchClauseVariableDeclarationOrBindingElement:()=>isCatchClauseVariableDeclarationOrBindingElement,isCheckJsEnabledForFile:()=>isCheckJsEnabledForFile,isCircularBuildOrder:()=>isCircularBuildOrder,isClassDeclaration:()=>isClassDeclaration,isClassElement:()=>isClassElement,isClassExpression:()=>isClassExpression,isClassInstanceProperty:()=>isClassInstanceProperty,isClassLike:()=>isClassLike,isClassMemberModifier:()=>isClassMemberModifier,isClassNamedEvaluationHelperBlock:()=>isClassNamedEvaluationHelperBlock,isClassOrTypeElement:()=>isClassOrTypeElement,isClassStaticBlockDeclaration:()=>isClassStaticBlockDeclaration,isClassThisAssignmentBlock:()=>isClassThisAssignmentBlock,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,isConstAssertion:()=>isConstAssertion,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,isDiskPathRoot:()=>isDiskPathRoot,isDoStatement:()=>isDoStatement,isDocumentRegistryEntry:()=>isDocumentRegistryEntry,isDotDotDotToken:()=>isDotDotDotToken,isDottedName:()=>isDottedName,isDynamicName:()=>isDynamicName,isEffectiveExternalModule:()=>isEffectiveExternalModule,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,isExpandoPropertyDeclaration:()=>isExpandoPropertyDeclaration,isExportAssignment:()=>isExportAssignment,isExportDeclaration:()=>isExportDeclaration,isExportModifier:()=>isExportModifier,isExportName:()=>isExportName,isExportNamespaceAsDefaultDeclaration:()=>isExportNamespaceAsDefaultDeclaration,isExportOrDefaultModifier:()=>isExportOrDefaultModifier,isExportSpecifier:()=>isExportSpecifier,isExportsIdentifier:()=>isExportsIdentifier,isExportsOrModuleExportsOrAlias:()=>isExportsOrModuleExportsOrAlias,isExpression:()=>isExpression,isExpressionNode:()=>isExpressionNode,isExpressionOfExternalModuleImportEqualsDeclaration:()=>isExpressionOfExternalModuleImportEqualsDeclaration,isExpressionOfOptionalChainRoot:()=>isExpressionOfOptionalChainRoot,isExpressionStatement:()=>isExpressionStatement,isExpressionWithTypeArguments:()=>isExpressionWithTypeArguments,isExpressionWithTypeArgumentsInClassExtendsClause:()=>isExpressionWithTypeArgumentsInClassExtendsClause,isExternalModule:()=>isExternalModule,isExternalModuleAugmentation:()=>isExternalModuleAugmentation,isExternalModuleImportEqualsDeclaration:()=>isExternalModuleImportEqualsDeclaration,isExternalModuleIndicator:()=>isExternalModuleIndicator,isExternalModuleNameRelative:()=>isExternalModuleNameRelative,isExternalModuleReference:()=>isExternalModuleReference,isExternalModuleSymbol:()=>isExternalModuleSymbol,isExternalOrCommonJsModule:()=>isExternalOrCommonJsModule,isFileLevelReservedGeneratedIdentifier:()=>isFileLevelReservedGeneratedIdentifier,isFileLevelUniqueName:()=>isFileLevelUniqueName,isFileProbablyExternalModule:()=>isFileProbablyExternalModule,isFirstDeclarationOfSymbolParameter:()=>isFirstDeclarationOfSymbolParameter,isFixablePromiseHandler:()=>isFixablePromiseHandler,isForInOrOfStatement:()=>isForInOrOfStatement,isForInStatement:()=>isForInStatement,isForInitializer:()=>isForInitializer,isForOfStatement:()=>isForOfStatement,isForStatement:()=>isForStatement,isFullSourceFile:()=>isFullSourceFile,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,isGeneratedIdentifier:()=>isGeneratedIdentifier,isGeneratedPrivateIdentifier:()=>isGeneratedPrivateIdentifier,isGetAccessor:()=>isGetAccessor,isGetAccessorDeclaration:()=>isGetAccessorDeclaration,isGetOrSetAccessorDeclaration:()=>isGetOrSetAccessorDeclaration,isGlobalScopeAugmentation:()=>isGlobalScopeAugmentation,isGlobalSourceFile:()=>isGlobalSourceFile,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,isImportAttribute:()=>isImportAttribute,isImportAttributeName:()=>isImportAttributeName,isImportAttributes:()=>isImportAttributes,isImportCall:()=>isImportCall,isImportClause:()=>isImportClause,isImportDeclaration:()=>isImportDeclaration,isImportEqualsDeclaration:()=>isImportEqualsDeclaration,isImportKeyword:()=>isImportKeyword,isImportMeta:()=>isImportMeta,isImportOrExportSpecifier:()=>isImportOrExportSpecifier,isImportOrExportSpecifierName:()=>isImportOrExportSpecifierName,isImportSpecifier:()=>isImportSpecifier,isImportTypeAssertionContainer:()=>isImportTypeAssertionContainer,isImportTypeNode:()=>isImportTypeNode,isImportable:()=>isImportable,isInComment:()=>isInComment,isInCompoundLikeAssignment:()=>isInCompoundLikeAssignment,isInExpressionContext:()=>isInExpressionContext,isInJSDoc:()=>isInJSDoc,isInJSFile:()=>isInJSFile,isInJSXText:()=>isInJSXText,isInJsonFile:()=>isInJsonFile,isInNonReferenceComment:()=>isInNonReferenceComment,isInReferenceComment:()=>isInReferenceComment,isInRightSideOfInternalImportEqualsDeclaration:()=>isInRightSideOfInternalImportEqualsDeclaration,isInString:()=>isInString,isInTemplateString:()=>isInTemplateString,isInTopLevelContext:()=>isInTopLevelContext,isInTypeQuery:()=>isInTypeQuery,isIncrementalBuildInfo:()=>isIncrementalBuildInfo,isIncrementalBundleEmitBuildInfo:()=>isIncrementalBundleEmitBuildInfo,isIncrementalCompilation:()=>tr,isIndexSignatureDeclaration:()=>isIndexSignatureDeclaration,isIndexedAccessTypeNode:()=>isIndexedAccessTypeNode,isInferTypeNode:()=>isInferTypeNode,isInfinityOrNaNString:()=>isInfinityOrNaNString,isInitializedProperty:()=>isInitializedProperty,isInitializedVariable:()=>isInitializedVariable,isInsideJsxElement:()=>isInsideJsxElement,isInsideJsxElementOrAttribute:()=>isInsideJsxElementOrAttribute,isInsideNodeModules:()=>isInsideNodeModules,isInsideTemplateLiteral:()=>isInsideTemplateLiteral,isInstanceOfExpression:()=>isInstanceOfExpression,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,isJSDocImportTag:()=>isJSDocImportTag,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,isJsxCallLike:()=>isJsxCallLike,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,isLet:()=>isLet,isLineBreak:()=>isLineBreak,isLiteralComputedPropertyDeclarationName:()=>isLiteralComputedPropertyDeclarationName,isLiteralExpression:()=>isLiteralExpression,isLiteralExpressionOfObject:()=>isLiteralExpressionOfObject,isLiteralImportTypeNode:()=>isLiteralImportTypeNode,isLiteralKind:()=>isLiteralKind,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>isLiteralNameOfPropertyDeclarationOrIndexAccess,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,isMissingPackageJsonInfo:()=>isMissingPackageJsonInfo,isModifier:()=>isModifier,isModifierKind:()=>isModifierKind,isModifierLike:()=>isModifierLike,isModuleAugmentationExternal:()=>isModuleAugmentationExternal,isModuleBlock:()=>isModuleBlock,isModuleBody:()=>isModuleBody,isModuleDeclaration:()=>isModuleDeclaration,isModuleExportName:()=>isModuleExportName,isModuleExportsAccessExpression:()=>isModuleExportsAccessExpression,isModuleIdentifier:()=>isModuleIdentifier,isModuleName:()=>isModuleName,isModuleOrEnumDeclaration:()=>isModuleOrEnumDeclaration,isModuleReference:()=>isModuleReference,isModuleSpecifierLike:()=>isModuleSpecifierLike,isModuleWithStringLiteralName:()=>isModuleWithStringLiteralName,isNameOfFunctionDeclaration:()=>isNameOfFunctionDeclaration,isNameOfModuleDeclaration:()=>isNameOfModuleDeclaration,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,isNewScopeNode:()=>isNewScopeNode,isNoSubstitutionTemplateLiteral:()=>isNoSubstitutionTemplateLiteral,isNodeArray:()=>isNodeArray,isNodeArrayMultiLine:()=>isNodeArrayMultiLine,isNodeDescendantOf:()=>isNodeDescendantOf,isNodeKind:()=>isNodeKind,isNodeLikeSystem:()=>isNodeLikeSystem,isNodeModulesDirectory:()=>isNodeModulesDirectory,isNodeWithPossibleHoistedDeclaration:()=>isNodeWithPossibleHoistedDeclaration,isNonContextualKeyword:()=>isNonContextualKeyword,isNonGlobalAmbientModule:()=>isNonGlobalAmbientModule,isNonNullAccess:()=>isNonNullAccess,isNonNullChain:()=>isNonNullChain,isNonNullExpression:()=>isNonNullExpression,isNonStaticMethodOrAccessorWithPrivateName:()=>isNonStaticMethodOrAccessorWithPrivateName,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,isOmittedExpression:()=>isOmittedExpression,isOptionalChain:()=>isOptionalChain,isOptionalChainRoot:()=>isOptionalChainRoot,isOptionalDeclaration:()=>isOptionalDeclaration,isOptionalJSDocPropertyLikeTag:()=>isOptionalJSDocPropertyLikeTag,isOptionalTypeNode:()=>isOptionalTypeNode,isOuterExpression:()=>isOuterExpression,isOutermostOptionalChain:()=>isOutermostOptionalChain,isOverrideModifier:()=>isOverrideModifier,isPackageJsonInfo:()=>isPackageJsonInfo,isPackedArrayLiteral:()=>isPackedArrayLiteral,isParameter:()=>isParameter,isParameterPropertyDeclaration:()=>isParameterPropertyDeclaration,isParameterPropertyModifier:()=>isParameterPropertyModifier,isParenthesizedExpression:()=>isParenthesizedExpression,isParenthesizedTypeNode:()=>isParenthesizedTypeNode,isParseTreeNode:()=>isParseTreeNode,isPartOfParameterDeclaration:()=>isPartOfParameterDeclaration,isPartOfTypeNode:()=>isPartOfTypeNode,isPartOfTypeOnlyImportOrExportDeclaration:()=>isPartOfTypeOnlyImportOrExportDeclaration,isPartOfTypeQuery:()=>isPartOfTypeQuery,isPartiallyEmittedExpression:()=>isPartiallyEmittedExpression,isPatternMatch:()=>isPatternMatch,isPinnedComment:()=>isPinnedComment,isPlainJsFile:()=>isPlainJsFile,isPlusToken:()=>isPlusToken,isPossiblyTypeArgumentPosition:()=>isPossiblyTypeArgumentPosition,isPostfixUnaryExpression:()=>isPostfixUnaryExpression,isPrefixUnaryExpression:()=>isPrefixUnaryExpression,isPrimitiveLiteralValue:()=>isPrimitiveLiteralValue,isPrivateIdentifier:()=>isPrivateIdentifier,isPrivateIdentifierClassElementDeclaration:()=>isPrivateIdentifierClassElementDeclaration,isPrivateIdentifierPropertyAccessExpression:()=>isPrivateIdentifierPropertyAccessExpression,isPrivateIdentifierSymbol:()=>isPrivateIdentifierSymbol,isProgramUptoDate:()=>isProgramUptoDate,isPrologueDirective:()=>isPrologueDirective,isPropertyAccessChain:()=>isPropertyAccessChain,isPropertyAccessEntityNameExpression:()=>isPropertyAccessEntityNameExpression,isPropertyAccessExpression:()=>isPropertyAccessExpression,isPropertyAccessOrQualifiedName:()=>isPropertyAccessOrQualifiedName,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>isPropertyAccessOrQualifiedNameOrImportTypeNode,isPropertyAssignment:()=>isPropertyAssignment,isPropertyDeclaration:()=>isPropertyDeclaration,isPropertyName:()=>isPropertyName,isPropertyNameLiteral:()=>isPropertyNameLiteral,isPropertySignature:()=>isPropertySignature,isPrototypeAccess:()=>isPrototypeAccess,isPrototypePropertyAssignment:()=>isPrototypePropertyAssignment,isPunctuation:()=>isPunctuation,isPushOrUnshiftIdentifier:()=>isPushOrUnshiftIdentifier,isQualifiedName:()=>isQualifiedName,isQuestionDotToken:()=>isQuestionDotToken,isQuestionOrExclamationToken:()=>isQuestionOrExclamationToken,isQuestionOrPlusOrMinusToken:()=>isQuestionOrPlusOrMinusToken,isQuestionToken:()=>isQuestionToken,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,isRightSideOfInstanceofExpression:()=>isRightSideOfInstanceofExpression,isRightSideOfPropertyAccess:()=>isRightSideOfPropertyAccess,isRightSideOfQualifiedName:()=>isRightSideOfQualifiedName,isRightSideOfQualifiedNameOrPropertyAccess:()=>isRightSideOfQualifiedNameOrPropertyAccess,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,isRootedDiskPath:()=>isRootedDiskPath,isSameEntityName:()=>isSameEntityName,isSatisfiesExpression:()=>isSatisfiesExpression,isSemicolonClassElement:()=>isSemicolonClassElement,isSetAccessor:()=>isSetAccessor,isSetAccessorDeclaration:()=>isSetAccessorDeclaration,isShiftOperatorOrHigher:()=>isShiftOperatorOrHigher,isShorthandAmbientModuleSymbol:()=>isShorthandAmbientModuleSymbol,isShorthandPropertyAssignment:()=>isShorthandPropertyAssignment,isSideEffectImport:()=>isSideEffectImport,isSignedNumericLiteral:()=>isSignedNumericLiteral,isSimpleCopiableExpression:()=>isSimpleCopiableExpression,isSimpleInlineableExpression:()=>isSimpleInlineableExpression,isSimpleParameterList:()=>isSimpleParameterList,isSingleOrDoubleQuote:()=>isSingleOrDoubleQuote,isSolutionConfig:()=>isSolutionConfig,isSourceElement:()=>isSourceElement,isSourceFile:()=>isSourceFile,isSourceFileFromLibrary:()=>isSourceFileFromLibrary,isSourceFileJS:()=>isSourceFileJS,isSourceFileNotJson:()=>isSourceFileNotJson,isSourceMapping:()=>isSourceMapping,isSpecialPropertyDeclaration:()=>isSpecialPropertyDeclaration,isSpreadAssignment:()=>isSpreadAssignment,isSpreadElement:()=>isSpreadElement,isStatement:()=>isStatement,isStatementButNotDeclaration:()=>isStatementButNotDeclaration,isStatementOrBlock:()=>isStatementOrBlock,isStatementWithLocals:()=>isStatementWithLocals,isStatic:()=>isStatic,isStaticModifier:()=>isStaticModifier,isString:()=>isString,isStringANonContextualKeyword:()=>isStringANonContextualKeyword,isStringAndEmptyAnonymousObjectIntersection:()=>isStringAndEmptyAnonymousObjectIntersection,isStringDoubleQuoted:()=>isStringDoubleQuoted,isStringLiteral:()=>isStringLiteral,isStringLiteralLike:()=>isStringLiteralLike,isStringLiteralOrJsxExpression:()=>isStringLiteralOrJsxExpression,isStringLiteralOrTemplate:()=>isStringLiteralOrTemplate,isStringOrNumericLiteralLike:()=>isStringOrNumericLiteralLike,isStringOrRegularExpressionOrTemplateLiteral:()=>isStringOrRegularExpressionOrTemplateLiteral,isStringTextContainingNode:()=>isStringTextContainingNode,isSuperCall:()=>isSuperCall,isSuperKeyword:()=>isSuperKeyword,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,isTypeKeywordTokenOrIdentifier:()=>isTypeKeywordTokenOrIdentifier,isTypeLiteralNode:()=>isTypeLiteralNode,isTypeNode:()=>isTypeNode,isTypeNodeKind:()=>isTypeNodeKind,isTypeOfExpression:()=>isTypeOfExpression,isTypeOnlyExportDeclaration:()=>isTypeOnlyExportDeclaration,isTypeOnlyImportDeclaration:()=>isTypeOnlyImportDeclaration,isTypeOnlyImportOrExportDeclaration:()=>isTypeOnlyImportOrExportDeclaration,isTypeOperatorNode:()=>isTypeOperatorNode,isTypeParameterDeclaration:()=>isTypeParameterDeclaration,isTypePredicateNode:()=>isTypePredicateNode,isTypeQueryNode:()=>isTypeQueryNode,isTypeReferenceNode:()=>isTypeReferenceNode,isTypeReferenceType:()=>isTypeReferenceType,isTypeUsableAsPropertyName:()=>isTypeUsableAsPropertyName,isUMDExportSymbol:()=>isUMDExportSymbol,isUnaryExpression:()=>isUnaryExpression,isUnaryExpressionWithWrite:()=>isUnaryExpressionWithWrite,isUnicodeIdentifierStart:()=>isUnicodeIdentifierStart,isUnionTypeNode:()=>isUnionTypeNode,isUrl:()=>isUrl,isValidBigIntString:()=>isValidBigIntString,isValidESSymbolDeclaration:()=>isValidESSymbolDeclaration,isValidTypeOnlyAliasUseSite:()=>isValidTypeOnlyAliasUseSite,isValueSignatureDeclaration:()=>isValueSignatureDeclaration,isVarAwaitUsing:()=>isVarAwaitUsing,isVarConst:()=>isVarConst,isVarConstLike:()=>isVarConstLike,isVarUsing:()=>isVarUsing,isVariableDeclaration:()=>isVariableDeclaration,isVariableDeclarationInVariableStatement:()=>isVariableDeclarationInVariableStatement,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>isVariableDeclarationInitializedToBareOrAccessedRequire,isVariableDeclarationInitializedToRequire:()=>isVariableDeclarationInitializedToRequire,isVariableDeclarationList:()=>isVariableDeclarationList,isVariableLike:()=>isVariableLike,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:()=>Vi,libs:()=>zi,lineBreakPart:()=>lineBreakPart,loadModuleFromGlobalCache:()=>loadModuleFromGlobalCache,loadWithModeAwareCache:()=>loadWithModeAwareCache,makeIdentifierFromModuleName:()=>makeIdentifierFromModuleName,makeImport:()=>makeImport,makeStringLiteral:()=>makeStringLiteral,mangleScopedPackageName:()=>mangleScopedPackageName,map:()=>map,mapAllOrFail:()=>mapAllOrFail,mapDefined:()=>mapDefined,mapDefinedIterator:()=>mapDefinedIterator,mapEntries:()=>mapEntries,mapIterator:()=>mapIterator,mapOneOrMany:()=>mapOneOrMany,mapToDisplayParts:()=>mapToDisplayParts,matchFiles:()=>matchFiles,matchPatternOrExact:()=>matchPatternOrExact,matchedText:()=>matchedText,matchesExclude:()=>matchesExclude,matchesExcludeWorker:()=>matchesExcludeWorker,maxBy:()=>maxBy,maybeBind:()=>maybeBind,maybeSetLocalizedDiagnosticMessages:()=>maybeSetLocalizedDiagnosticMessages,memoize:()=>memoize,memoizeOne:()=>memoizeOne,min:()=>min,minAndMax:()=>minAndMax,missingFileModifiedTime:()=>St,modifierToFlag:()=>modifierToFlag,modifiersToFlags:()=>modifiersToFlags,moduleExportNameIsDefault:()=>moduleExportNameIsDefault,moduleExportNameTextEscaped:()=>moduleExportNameTextEscaped,moduleExportNameTextUnescaped:()=>moduleExportNameTextUnescaped,moduleOptionDeclaration:()=>Gi,moduleResolutionIsEqualTo:()=>moduleResolutionIsEqualTo,moduleResolutionNameAndModeGetter:()=>Ja,moduleResolutionOptionDeclarations:()=>eo,moduleResolutionSupportsPackageJsonExportsAndImports:()=>moduleResolutionSupportsPackageJsonExportsAndImports,moduleResolutionUsesNodeModules:()=>moduleResolutionUsesNodeModules,moduleSpecifierToValidIdentifier:()=>moduleSpecifierToValidIdentifier,moduleSpecifiers:()=>Wo,moduleSupportsImportAttributes:()=>moduleSupportsImportAttributes,moduleSymbolToValidIdentifier:()=>moduleSymbolToValidIdentifier,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:()=>va,noTruncationMaximumTruncationLength:()=>ln,nodeCanBeDecorated:()=>nodeCanBeDecorated,nodeCoreModules:()=>Ir,nodeHasName:()=>nodeHasName,nodeIsDecorated:()=>nodeIsDecorated,nodeIsMissing:()=>nodeIsMissing,nodeIsPresent:()=>nodeIsPresent,nodeIsSynthesized:()=>nodeIsSynthesized,nodeModuleNameResolver:()=>nodeModuleNameResolver,nodeModulesPathPart:()=>Mo,nodeNextJsonConfigResolver:()=>nodeNextJsonConfigResolver,nodeOrChildIsDecorated:()=>nodeOrChildIsDecorated,nodeOverlapsWithStartEnd:()=>nodeOverlapsWithStartEnd,nodePosToString:()=>nodePosToString,nodeSeenTracker:()=>nodeSeenTracker,nodeStartsNewLexicalEnvironment:()=>nodeStartsNewLexicalEnvironment,noop:()=>noop,noopFileWatcher:()=>Xa,normalizePath:()=>normalizePath,normalizeSlashes:()=>normalizeSlashes,normalizeSpans:()=>normalizeSpans,not:()=>not,notImplemented:()=>notImplemented,notImplementedResolver:()=>Ea,nullNodeConverters:()=>wr,nullParenthesizerRules:()=>Ar,nullTransformationContext:()=>ba,objectAllocator:()=>Bn,operatorPart:()=>operatorPart,optionDeclarations:()=>Qi,optionMapToObject:()=>optionMapToObject,optionsAffectingProgramStructure:()=>no,optionsForBuild:()=>lo,optionsForWatch:()=>qi,optionsHaveChanges:()=>optionsHaveChanges,or:()=>or,orderedRemoveItem:()=>orderedRemoveItem,orderedRemoveItemAt:()=>orderedRemoveItemAt,packageIdToPackageName:()=>packageIdToPackageName,packageIdToString:()=>packageIdToString,parameterIsThisKeyword:()=>parameterIsThisKeyword,parameterNamePart:()=>parameterNamePart,parseBaseNodeFactory:()=>Pi,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:()=>Di,parseNodeModuleFromPath:()=>parseNodeModuleFromPath,parsePackageName:()=>parsePackageName,parsePseudoBigInt:()=>parsePseudoBigInt,parseValidBigInt:()=>parseValidBigInt,pasteEdits:()=>v_,patchWriteFileEnsuringDirectory:()=>patchWriteFileEnsuringDirectory,pathContainsNodeModules:()=>pathContainsNodeModules,pathIsAbsolute:()=>pathIsAbsolute,pathIsBareSpecifier:()=>pathIsBareSpecifier,pathIsRelative:()=>pathIsRelative,patternText:()=>patternText,performIncrementalCompilation:()=>performIncrementalCompilation,performance:()=>j,positionBelongsToNode:()=>positionBelongsToNode,positionIsASICandidate:()=>positionIsASICandidate,positionIsSynthesized:()=>positionIsSynthesized,positionsAreOnSameLine:()=>positionsAreOnSameLine,preProcessFile:()=>preProcessFile,probablyUsesSemicolons:()=>probablyUsesSemicolons,processCommentPragmas:()=>processCommentPragmas,processPragmasIntoFields:()=>processPragmasIntoFields,processTaggedTemplateExpression:()=>processTaggedTemplateExpression,programContainsEsModules:()=>programContainsEsModules,programContainsModules:()=>programContainsModules,projectReferenceIsEqualTo:()=>projectReferenceIsEqualTo,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,readJson:()=>readJson,readJsonConfigFile:()=>readJsonConfigFile,readJsonOrUndefined:()=>readJsonOrUndefined,reduceEachLeadingCommentRange:()=>reduceEachLeadingCommentRange,reduceEachTrailingCommentRange:()=>reduceEachTrailingCommentRange,reduceLeft:()=>reduceLeft,reduceLeftIterator:()=>reduceLeftIterator,reducePathComponents:()=>reducePathComponents,refactor:()=>bc,regExpEscape:()=>regExpEscape,regularExpressionFlagToCharacterCode:()=>regularExpressionFlagToCharacterCode,relativeComplement:()=>relativeComplement,removeAllComments:()=>removeAllComments,removeEmitHelper:()=>removeEmitHelper,removeExtension:()=>removeExtension,removeFileExtension:()=>removeFileExtension,removeIgnoredPath:()=>removeIgnoredPath,removeMinAndVersionNumbers:()=>removeMinAndVersionNumbers,removePrefix:()=>removePrefix,removeSuffix:()=>removeSuffix,removeTrailingDirectorySeparator:()=>removeTrailingDirectorySeparator,repeatString:()=>repeatString,replaceElement:()=>replaceElement,replaceFirstStar:()=>replaceFirstStar,resolutionExtensionIsTSOrJson:()=>resolutionExtensionIsTSOrJson,resolveConfigFileProjectName:()=>resolveConfigFileProjectName,resolveJSModule:()=>resolveJSModule,resolveLibrary:()=>resolveLibrary,resolveModuleName:()=>resolveModuleName,resolveModuleNameFromCache:()=>resolveModuleNameFromCache,resolvePackageNameToPackageJson:()=>resolvePackageNameToPackageJson,resolvePath:()=>resolvePath,resolveProjectReferencePath:()=>resolveProjectReferencePath,resolveTripleslashReference:()=>resolveTripleslashReference,resolveTypeReferenceDirective:()=>resolveTypeReferenceDirective,resolvingEmptyArray:()=>an,returnFalse:()=>returnFalse,returnNoopFileWatcher:()=>returnNoopFileWatcher,returnTrue:()=>returnTrue,returnUndefined:()=>returnUndefined,returnsPromise:()=>returnsPromise,rewriteModuleSpecifier:()=>rewriteModuleSpecifier,sameFlatMap:()=>sameFlatMap,sameMap:()=>sameMap,sameMapping:()=>sameMapping,scanTokenAtPosition:()=>scanTokenAtPosition,scanner:()=>Vs,semanticDiagnosticsOptionDeclarations:()=>Xi,serializeCompilerOptions:()=>serializeCompilerOptions,server:()=>Gf,servicesVersion:()=>Ol,setCommentRange:()=>setCommentRange,setConfigFileInOptions:()=>setConfigFileInOptions,setConstantValue:()=>setConstantValue,setEmitFlags:()=>setEmitFlags,setGetSourceFileAsHashVersioned:()=>setGetSourceFileAsHashVersioned,setIdentifierAutoGenerate:()=>setIdentifierAutoGenerate,setIdentifierGeneratedImportReference:()=>setIdentifierGeneratedImportReference,setIdentifierTypeArguments:()=>setIdentifierTypeArguments,setInternalEmitFlags:()=>setInternalEmitFlags,setLocalizedDiagnosticMessages:()=>setLocalizedDiagnosticMessages,setNodeChildren:()=>setNodeChildren,setNodeFlags:()=>setNodeFlags,setObjectAllocator:()=>setObjectAllocator,setOriginalNode:()=>setOriginalNode,setParent:()=>setParent,setParentRecursive:()=>setParentRecursive,setPrivateIdentifier:()=>setPrivateIdentifier,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:()=>er,shouldRewriteModuleSpecifier:()=>shouldRewriteModuleSpecifier,shouldUseUriStyleNodeCoreModules:()=>shouldUseUriStyleNodeCoreModules,showModuleSpecifier:()=>showModuleSpecifier,signatureHasRestParameter:()=>signatureHasRestParameter,signatureToDisplayParts:()=>signatureToDisplayParts,single:()=>single,singleElementArray:()=>singleElementArray,singleIterator:()=>singleIterator,singleOrMany:()=>singleOrMany,singleOrUndefined:()=>singleOrUndefined,skipAlias:()=>skipAlias,skipConstraint:()=>skipConstraint,skipOuterExpressions:()=>skipOuterExpressions,skipParentheses:()=>skipParentheses,skipPartiallyEmittedExpressions:()=>skipPartiallyEmittedExpressions,skipTrivia:()=>skipTrivia,skipTypeChecking:()=>skipTypeChecking,skipTypeCheckingIgnoringNoCheck:()=>skipTypeCheckingIgnoringNoCheck,skipTypeParentheses:()=>skipTypeParentheses,skipWhile:()=>skipWhile,sliceAfter:()=>sliceAfter,some:()=>some,sortAndDeduplicate:()=>sortAndDeduplicate,sortAndDeduplicateDiagnostics:()=>sortAndDeduplicateDiagnostics,sourceFileAffectingCompilerOptions:()=>to,sourceFileMayBeEmitted:()=>sourceFileMayBeEmitted,sourceMapCommentRegExp:()=>da,sourceMapCommentRegExpDontCareLineStart:()=>la,spacePart:()=>spacePart,spanMap:()=>spanMap,startEndContainsRange:()=>startEndContainsRange,startEndOverlapsWithStartEnd:()=>startEndOverlapsWithStartEnd,startOnNewLine:()=>startOnNewLine,startTracing:()=>G,startsWith:()=>startsWith,startsWithDirectory:()=>startsWithDirectory,startsWithUnderscore:()=>startsWithUnderscore,startsWithUseStrict:()=>startsWithUseStrict,stringContainsAt:()=>stringContainsAt,stringToToken:()=>stringToToken,stripQuotes:()=>stripQuotes,supportedDeclarationExtensions:()=>Sr,supportedJSExtensionsFlat:()=>yr,supportedLocaleDirectories:()=>rn,supportedTSExtensionsFlat:()=>_r,supportedTSImplementationExtensions:()=>xr,suppressLeadingAndTrailingTrivia:()=>suppressLeadingAndTrailingTrivia,suppressLeadingTrivia:()=>suppressLeadingTrivia,suppressTrailingTrivia:()=>suppressTrailingTrivia,symbolEscapedNameNoDefault:()=>symbolEscapedNameNoDefault,symbolName:()=>symbolName,symbolNameNoDefault:()=>symbolNameNoDefault,symbolToDisplayParts:()=>symbolToDisplayParts,sys:()=>kt,sysLog:()=>sysLog,tagNamesAreEquivalent:()=>tagNamesAreEquivalent,takeWhile:()=>takeWhile,targetOptionDeclaration:()=>Ki,targetToLibMap:()=>tn,testFormatSettings:()=>Os,textChangeRangeIsUnchanged:()=>textChangeRangeIsUnchanged,textChangeRangeNewSpan:()=>textChangeRangeNewSpan,textChanges:()=>$m,textOrKeywordPart:()=>textOrKeywordPart,textPart:()=>textPart,textRangeContainsPositionInclusive:()=>textRangeContainsPositionInclusive,textRangeContainsTextSpan:()=>textRangeContainsTextSpan,textRangeIntersectsWithTextSpan:()=>textRangeIntersectsWithTextSpan,textSpanContainsPosition:()=>textSpanContainsPosition,textSpanContainsTextRange:()=>textSpanContainsTextRange,textSpanContainsTextSpan:()=>textSpanContainsTextSpan,textSpanEnd:()=>textSpanEnd,textSpanIntersection:()=>textSpanIntersection,textSpanIntersectsWith:()=>textSpanIntersectsWith,textSpanIntersectsWithPosition:()=>textSpanIntersectsWithPosition,textSpanIntersectsWithTextSpan:()=>textSpanIntersectsWithTextSpan,textSpanIsEmpty:()=>textSpanIsEmpty,textSpanOverlap:()=>textSpanOverlap,textSpanOverlapsWith:()=>textSpanOverlapsWith,textSpansEqual:()=>textSpansEqual,textToKeywordObj:()=>wt,timestamp:()=>B,toArray:()=>toArray,toBuilderFileEmit:()=>toBuilderFileEmit,toBuilderStateFileInfoForMultiEmit:()=>toBuilderStateFileInfoForMultiEmit,toEditorSettings:()=>toEditorSettings,toFileNameLowerCase:()=>toFileNameLowerCase,toPath:()=>toPath,toProgramEmitPending:()=>toProgramEmitPending,toSorted:()=>toSorted,tokenIsIdentifierOrKeyword:()=>tokenIsIdentifierOrKeyword,tokenIsIdentifierOrKeywordOrGreaterThan:()=>tokenIsIdentifierOrKeywordOrGreaterThan,tokenToString:()=>tokenToString,trace:()=>trace,tracing:()=>J,tracingEnabled:()=>W,transferSourceFileChildren:()=>transferSourceFileChildren,transform:()=>transform,transformClassFields:()=>transformClassFields,transformDeclarations:()=>transformDeclarations,transformECMAScriptModule:()=>transformECMAScriptModule,transformES2015:()=>transformES2015,transformES2016:()=>transformES2016,transformES2017:()=>transformES2017,transformES2018:()=>transformES2018,transformES2019:()=>transformES2019,transformES2020:()=>transformES2020,transformES2021:()=>transformES2021,transformESDecorators:()=>transformESDecorators,transformESNext:()=>transformESNext,transformGenerators:()=>transformGenerators,transformImpliedNodeFormatDependentModule:()=>transformImpliedNodeFormatDependentModule,transformJsx:()=>transformJsx,transformLegacyDecorators:()=>transformLegacyDecorators,transformModule:()=>transformModule,transformNamedEvaluation:()=>transformNamedEvaluation,transformNodes:()=>transformNodes,transformSystemModule:()=>transformSystemModule,transformTypeScript:()=>transformTypeScript,transpile:()=>transpile,transpileDeclaration:()=>transpileDeclaration,transpileModule:()=>transpileModule,transpileOptionValueCompilerOptions:()=>ro,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,tryParseJson:()=>tryParseJson,tryParsePattern:()=>tryParsePattern,tryParsePatterns:()=>tryParsePatterns,tryParseRawSourceMap:()=>tryParseRawSourceMap,tryReadDirectory:()=>tryReadDirectory,tryReadFile:()=>tryReadFile,tryRemoveDirectoryPrefix:()=>tryRemoveDirectoryPrefix,tryRemoveExtension:()=>tryRemoveExtension,tryRemovePrefix:()=>tryRemovePrefix,tryRemoveSuffix:()=>tryRemoveSuffix,tscBuildOption:()=>co,typeAcquisitionDeclarations:()=>uo,typeAliasNamePart:()=>typeAliasNamePart,typeDirectiveIsEqualTo:()=>typeDirectiveIsEqualTo,typeKeywords:()=>Ks,typeParameterNamePart:()=>typeParameterNamePart,typeToDisplayParts:()=>typeToDisplayParts,unchangedPollThresholds:()=>bt,unchangedTextChangeRange:()=>nn,unescapeLeadingUnderscores:()=>unescapeLeadingUnderscores,unmangleScopedPackageName:()=>unmangleScopedPackageName,unorderedRemoveItem:()=>unorderedRemoveItem,unprefixedNodeCoreModules:()=>Pr,unreachableCodeIsError:()=>unreachableCodeIsError,unsetNodeChildren:()=>unsetNodeChildren,unusedLabelIsError:()=>unusedLabelIsError,unwrapInnermostStatementOfLabel:()=>unwrapInnermostStatementOfLabel,unwrapParenthesizedExpression:()=>unwrapParenthesizedExpression,updateErrorForNoInputFiles:()=>updateErrorForNoInputFiles,updateLanguageServiceSourceFile:()=>updateLanguageServiceSourceFile,updateMissingFilePathsWatch:()=>updateMissingFilePathsWatch,updateResolutionField:()=>updateResolutionField,updateSharedExtendedConfigFileWatcher:()=>updateSharedExtendedConfigFileWatcher,updateSourceFile:()=>updateSourceFile,updateWatchingWildcardDirectories:()=>updateWatchingWildcardDirectories,usingSingleLineStringWriter:()=>usingSingleLineStringWriter,utf16EncodeAsString:()=>utf16EncodeAsString,validateLocaleAndSetLanguage:()=>validateLocaleAndSetLanguage,version:()=>s,versionMajorMinor:()=>a,visitArray:()=>visitArray,visitCommaListElements:()=>visitCommaListElements,visitEachChild:()=>visitEachChild,visitFunctionBody:()=>visitFunctionBody,visitIterationBody:()=>visitIterationBody,visitLexicalEnvironment:()=>visitLexicalEnvironment,visitNode:()=>visitNode,visitNodes:()=>visitNodes2,visitParameterList:()=>visitParameterList,walkUpBindingElementsAndPatterns:()=>walkUpBindingElementsAndPatterns,walkUpOuterExpressions:()=>walkUpOuterExpressions,walkUpParenthesizedExpressions:()=>walkUpParenthesizedExpressions,walkUpParenthesizedTypes:()=>walkUpParenthesizedTypes,walkUpParenthesizedTypesAndGetParentAndChild:()=>walkUpParenthesizedTypesAndGetParentAndChild,whitespaceOrMapCommentRegExp:()=>pa,writeCommentRange:()=>writeCommentRange,writeFile:()=>writeFile,writeFileEnsuringDirectories:()=>writeFileEnsuringDirectories,zipWith:()=>zipWith}),e.exports=o;var a="5.9",s="5.9.2",c=(e=>(e[e.LessThan=-1]="LessThan",e[e.EqualTo=0]="EqualTo",e[e.GreaterThan=1]="GreaterThan",e))(c||{}),l=[],d=new Map;function length(e){return void 0!==e?e.length:0}function forEach(e,t){if(void 0!==e)for(let n=0;n=0;n--){const r=t(e[n],n);if(r)return r}}function firstDefined(e,t){if(void 0!==e)for(let n=0;n=0;r--){const n=e[r];if(t(n,r))return n}}function findIndex(e,t,n){if(void 0===e)return-1;for(let r=n??0;r=0;r--)if(t(e[r],r))return r;return-1}function contains(e,t,n=equateValues){if(void 0!==e)for(let r=0;r{const[i,o]=t(r,e);n.set(i,o)}),n}function some(e,t){if(void 0!==e){if(void 0===t)return e.length>0;for(let n=0;nn(e[t],e[r])||compareValues(t,r))}(e,r,n);let i=e[r[0]];const o=[r[0]];for(let n=1;ne[t])}function deduplicate(e,t,n){return 0===e.length?[]:1===e.length?e.slice():n?deduplicateRelational(e,t,n):function deduplicateEquality(e,t){const n=[];for(let r=0;r0&&r(t,e[n-1]))return!1;if(n0&&h.assertGreaterThanOrEqual(n(t[o],t[o-1]),0);t:for(const a=i;ia&&h.assertGreaterThanOrEqual(n(e[i],e[i-1]),0),n(t[o],e[i])){case-1:r.push(t[o]);continue e;case 0:continue e;case 1:continue t}}return r}function append(e,t){return void 0===t?e:void 0===e?[t]:(e.push(t),e)}function combine(e,t){return void 0===e?t:void 0===t?e:isArray(e)?isArray(t)?concatenate(e,t):append(e,t):isArray(t)?append(t,e):[e,t]}function toOffset(e,t){return t<0?e.length+t:t}function addRange(e,t,n,r){if(void 0===t||0===t.length)return e;if(void 0===e)return t.slice(n,r);n=void 0===n?0:toOffset(t,n),r=void 0===r?t.length:toOffset(t,r);for(let i=n;i=0;t--)yield e[t]}function rangeEquals(e,t,n,r){for(;nnull==e?void 0:e.at(t):(e,t)=>{if(void 0!==e&&(t=toOffset(e,t))>1);switch(r(n(e[i],i),t)){case-1:o=i+1;break;case 0:return i;case 1:a=i-1}}return~o}function reduceLeft(e,t,n,r,i){if(e&&e.length>0){const o=e.length;if(o>0){let a=void 0===r||r<0?0:r;const s=void 0===i||a+i>o-1?o-1:a+i;let c;for(arguments.length<=2?(c=e[a],a++):c=n;a<=s;)c=t(c,e[a],a),a++;return c}}return n}var u=Object.prototype.hasOwnProperty;function hasProperty(e,t){return u.call(e,t)}function getProperty(e,t){return u.call(e,t)?e[t]:void 0}function getOwnKeys(e){const t=[];for(const n in e)u.call(e,n)&&t.push(n);return t}function getAllKeys(e){const t=[];do{const n=Object.getOwnPropertyNames(e);for(const e of n)pushIfUnique(t,e)}while(e=Object.getPrototypeOf(e));return t}function getOwnValues(e){const t=[];for(const n in e)u.call(e,n)&&t.push(e[n]);return t}function arrayOf(e,t){const n=new Array(e);for(let r=0;r100&&n>t.length>>1){const e=t.length-n;t.copyWithin(0,n),t.length=e,n=0}return e},isEmpty}}function createSet(e,t){const n=new Map;let r=0;function*getElementIterator(){for(const e of n.values())isArray(e)?yield*e:yield e}const i={has(r){const i=e(r);if(!n.has(i))return!1;const o=n.get(i);return isArray(o)?contains(o,r,t):t(o,r)},add(i){const o=e(i);if(n.has(o)){const e=n.get(o);if(isArray(e))contains(e,i,t)||(e.push(i),r++);else{const a=e;t(a,i)||(n.set(o,[a,i]),r++)}}else n.set(o,i),r++;return this},delete(i){const o=e(i);if(!n.has(o))return!1;const a=n.get(o);if(isArray(a)){for(let e=0;egetElementIterator(),values:()=>getElementIterator(),*entries(){for(const e of getElementIterator())yield[e,e]},[Symbol.iterator]:()=>getElementIterator(),[Symbol.toStringTag]:n[Symbol.toStringTag]};return i}function isArray(e){return Array.isArray(e)}function toArray(e){return isArray(e)?e:[e]}function isString(e){return"string"==typeof e}function isNumber(e){return"number"==typeof e}function tryCast(e,t){return void 0!==e&&t(e)?e:void 0}function cast(e,t){return void 0!==e&&t(e)?e:h.fail(`Invalid cast. The supplied value ${e} did not pass the test '${h.getFunctionName(t)}'.`)}function noop(e){}function returnFalse(){return!1}function returnTrue(){return!0}function returnUndefined(){}function identity(e){return e}function toLowerCase(e){return e.toLowerCase()}var m=/[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g;function toFileNameLowerCase(e){return m.test(e)?e.replace(m,toLowerCase):e}function notImplemented(){throw new Error("Not implemented")}function memoize(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function memoizeOne(e){const t=new Map;return n=>{const r=`${typeof n}:${n}`;let i=t.get(r);return void 0!==i||t.has(r)||(i=e(n),t.set(r,i)),i}}var _=(e=>(e[e.None=0]="None",e[e.Normal=1]="Normal",e[e.Aggressive=2]="Aggressive",e[e.VeryAggressive=3]="VeryAggressive",e))(_||{});function equateValues(e,t){return e===t}function equateStringsCaseInsensitive(e,t){return e===t||void 0!==e&&void 0!==t&&e.toUpperCase()===t.toUpperCase()}function equateStringsCaseSensitive(e,t){return equateValues(e,t)}function compareComparableValues(e,t){return e===t?0:void 0===e?-1:void 0===t?1:e-1===t(e,n)?e:n)}function compareStringsCaseInsensitive(e,t){return e===t?0:void 0===e?-1:void 0===t?1:(e=e.toUpperCase())<(t=t.toUpperCase())?-1:e>t?1:0}function compareStringsCaseInsensitiveEslintCompatible(e,t){return e===t?0:void 0===e?-1:void 0===t?1:(e=e.toLowerCase())<(t=t.toLowerCase())?-1:e>t?1:0}function compareStringsCaseSensitive(e,t){return compareComparableValues(e,t)}function getStringComparer(e){return e?compareStringsCaseInsensitive:compareStringsCaseSensitive}var f,g,y=(()=>function createIntlCollatorStringComparer(e){const t=new Intl.Collator(e,{usage:"sort",sensitivity:"variant",numeric:!0}).compare;return(e,n)=>function compareWithCallback(e,t,n){if(e===t)return 0;if(void 0===e)return-1;if(void 0===t)return 1;const r=n(e,t);return r<0?-1:r>0?1:0}(e,n,t)})();function getUILocale(){return g}function setUILocale(e){g!==e&&(g=e,f=void 0)}function compareStringsCaseSensitiveUI(e,t){return f??(f=y(g)),f(e,t)}function compareProperties(e,t,n,r){return e===t?0:void 0===e?-1:void 0===t?1:r(e[n],t[n])}function compareBooleans(e,t){return compareValues(e?1:0,t?1:0)}function getSpellingSuggestion(e,t,n){const r=Math.max(2,Math.floor(.34*e.length));let i,o=Math.floor(.4*e.length)+1;for(const a of t){const t=n(a);if(void 0!==t&&Math.abs(t.length-e.length)<=r){if(t===e)continue;if(t.length<3&&t.toLowerCase()!==e.toLowerCase())continue;const n=levenshteinWithMax(e,t,o-.1);if(void 0===n)continue;h.assert(nn?a-n:1),l=Math.floor(t.length>n+a?n+a:t.length);i[0]=a;let d=a;for(let e=1;en)return;const p=r;r=i,i=p}const a=r[t.length];return a>n?void 0:a}function endsWith(e,t,n){const r=e.length-t.length;return r>=0&&(n?equateStringsCaseInsensitive(e.slice(r),t):e.indexOf(t,r)===r)}function removeSuffix(e,t){return endsWith(e,t)?e.slice(0,e.length-t.length):e}function tryRemoveSuffix(e,t){return endsWith(e,t)?e.slice(0,e.length-t.length):void 0}function removeMinAndVersionNumbers(e){let t=e.length;for(let n=t-1;n>0;n--){let r=e.charCodeAt(n);if(r>=48&&r<=57)do{--n,r=e.charCodeAt(n)}while(n>0&&r>=48&&r<=57);else{if(!(n>4)||110!==r&&78!==r)break;if(--n,r=e.charCodeAt(n),105!==r&&73!==r)break;if(--n,r=e.charCodeAt(n),109!==r&&77!==r)break;--n,r=e.charCodeAt(n)}if(45!==r&&46!==r)break;t=n}return t===e.length?e:e.slice(0,t)}function orderedRemoveItem(e,t){for(let n=0;ne===t)}function createGetCanonicalFileName(e){return e?identity:toFileNameLowerCase}function patternText({prefix:e,suffix:t}){return`${e}*${t}`}function matchedText(e,t){return h.assert(isPatternMatch(e,t)),t.substring(e.prefix.length,t.length-e.suffix.length)}function findBestPatternMatch(e,t,n){let r,i=-1;for(let o=0;oi&&isPatternMatch(s,n)&&(i=s.prefix.length,r=a)}return r}function startsWith(e,t,n){return n?equateStringsCaseInsensitive(e.slice(0,t.length),t):0===e.lastIndexOf(t,0)}function removePrefix(e,t){return startsWith(e,t)?e.substr(t.length):e}function tryRemovePrefix(e,t,n=identity){return startsWith(n(e),n(t))?e.substring(t.length):void 0}function isPatternMatch({prefix:e,suffix:t},n){return n.length>=e.length+t.length&&startsWith(n,e)&&endsWith(n,t)}function and(e,t){return n=>e(n)&&t(n)}function or(...e){return(...t)=>{let n;for(const r of e)if(n=r(...t),n)return n;return n}}function not(e){return(...t)=>!e(...t)}function assertType(e){}function singleElementArray(e){return void 0===e?void 0:[e]}function enumerateInsertsAndDeletes(e,t,n,r,i,o){o??(o=noop);let a=0,s=0;const c=e.length,l=t.length;let d=!1;for(;a(e[e.Off=0]="Off",e[e.Error=1]="Error",e[e.Warning=2]="Warning",e[e.Info=3]="Info",e[e.Verbose=4]="Verbose",e))(T||{});(e=>{let t=0;function shouldLog(t){return e.currentLogLevel<=t}function logMessage(t,n){e.loggingHost&&shouldLog(t)&&e.loggingHost.log(t,n)}function log(e){logMessage(3,e)}var n;e.currentLogLevel=2,e.isDebugging=!1,e.shouldLog=shouldLog,e.log=log,(n=log=e.log||(e.log={})).error=function error2(e){logMessage(1,e)},n.warn=function warn(e){logMessage(2,e)},n.log=function log2(e){logMessage(3,e)},n.trace=function trace2(e){logMessage(4,e)};const r={};function shouldAssert(e){return t>=e}function shouldAssertFunction(t,n){return!!shouldAssert(t)||(r[n]={level:t,assertion:e[n]},e[n]=noop,!1)}function fail(e,t){const n=new Error(e?`Debug Failure. ${e}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(n,t||fail),n}function assert(e,t,n,r){e||(t=t?`False expression: ${t}`:"False expression.",n&&(t+="\r\nVerbose Debug Information: "+("string"==typeof n?n:n())),fail(t,r||assert))}function assertIsDefined(e,t,n){null==e&&fail(t,n||assertIsDefined)}function assertEachIsDefined(e,t,n){for(const r of e)assertIsDefined(r,t,n||assertEachIsDefined)}function assertNever(e,t="Illegal value:",n){return fail(`${t} ${"object"==typeof e&&hasProperty(e,"kind")&&hasProperty(e,"pos")?"SyntaxKind: "+formatSyntaxKind(e.kind):JSON.stringify(e)}`,n||assertNever)}function type(e){}function getFunctionName(e){if("function"!=typeof e)return"";if(hasProperty(e,"name"))return e.name;{const t=Function.prototype.toString.call(e),n=/^function\s+([\w$]+)\s*\(/.exec(t);return n?n[1]:""}}function formatEnum(e=0,t,n){const r=function getEnumMembers(e){const t=i.get(e);if(t)return t;const n=[];for(const t in e){const r=e[t];"number"==typeof r&&n.push([r,t])}const r=toSorted(n,(e,t)=>compareValues(e[0],t[0]));return i.set(e,r),r}(t);if(0===e)return r.length>0&&0===r[0][0]?r[0][1]:"0";if(n){const t=[];let n=e;for(const[i,o]of r){if(i>e)break;0!==i&&i&e&&(t.push(o),n&=~i)}if(0===n)return t.join("|")}else for(const[t,n]of r)if(t===e)return n;return e.toString()}e.getAssertionLevel=function getAssertionLevel(){return t},e.setAssertionLevel=function setAssertionLevel(n){const i=t;if(t=n,n>i)for(const t of getOwnKeys(r)){const i=r[t];void 0!==i&&e[t]!==i.assertion&&n>=i.level&&(e[t]=i,r[t]=void 0)}},e.shouldAssert=shouldAssert,e.fail=fail,e.failBadSyntaxKind=function failBadSyntaxKind(e,t,n){return fail(`${t||"Unexpected node."}\r\nNode ${formatSyntaxKind(e.kind)} was unexpected.`,n||failBadSyntaxKind)},e.assert=assert,e.assertEqual=function assertEqual(e,t,n,r,i){if(e!==t){fail(`Expected ${e} === ${t}. ${n?r?`${n} ${r}`:n:""}`,i||assertEqual)}},e.assertLessThan=function assertLessThan(e,t,n,r){e>=t&&fail(`Expected ${e} < ${t}. ${n||""}`,r||assertLessThan)},e.assertLessThanOrEqual=function assertLessThanOrEqual(e,t,n){e>t&&fail(`Expected ${e} <= ${t}`,n||assertLessThanOrEqual)},e.assertGreaterThanOrEqual=function assertGreaterThanOrEqual(e,t,n){e= ${t}`,n||assertGreaterThanOrEqual)},e.assertIsDefined=assertIsDefined,e.checkDefined=function checkDefined(e,t,n){return assertIsDefined(e,t,n||checkDefined),e},e.assertEachIsDefined=assertEachIsDefined,e.checkEachDefined=function checkEachDefined(e,t,n){return assertEachIsDefined(e,t,n||checkEachDefined),e},e.assertNever=assertNever,e.assertEachNode=function assertEachNode(e,t,n,r){shouldAssertFunction(1,"assertEachNode")&&assert(void 0===t||every(e,t),n||"Unexpected node.",()=>`Node array did not pass test '${getFunctionName(t)}'.`,r||assertEachNode)},e.assertNode=function assertNode(e,t,n,r){shouldAssertFunction(1,"assertNode")&&assert(void 0!==e&&(void 0===t||t(e)),n||"Unexpected node.",()=>`Node ${formatSyntaxKind(null==e?void 0:e.kind)} did not pass test '${getFunctionName(t)}'.`,r||assertNode)},e.assertNotNode=function assertNotNode(e,t,n,r){shouldAssertFunction(1,"assertNotNode")&&assert(void 0===e||void 0===t||!t(e),n||"Unexpected node.",()=>`Node ${formatSyntaxKind(e.kind)} should not have passed test '${getFunctionName(t)}'.`,r||assertNotNode)},e.assertOptionalNode=function assertOptionalNode(e,t,n,r){shouldAssertFunction(1,"assertOptionalNode")&&assert(void 0===t||void 0===e||t(e),n||"Unexpected node.",()=>`Node ${formatSyntaxKind(null==e?void 0:e.kind)} did not pass test '${getFunctionName(t)}'.`,r||assertOptionalNode)},e.assertOptionalToken=function assertOptionalToken(e,t,n,r){shouldAssertFunction(1,"assertOptionalToken")&&assert(void 0===t||void 0===e||e.kind===t,n||"Unexpected node.",()=>`Node ${formatSyntaxKind(null==e?void 0:e.kind)} was not a '${formatSyntaxKind(t)}' token.`,r||assertOptionalToken)},e.assertMissingNode=function assertMissingNode(e,t,n){shouldAssertFunction(1,"assertMissingNode")&&assert(void 0===e,t||"Unexpected node.",()=>`Node ${formatSyntaxKind(e.kind)} was unexpected'.`,n||assertMissingNode)},e.type=type,e.getFunctionName=getFunctionName,e.formatSymbol=function formatSymbol(e){return`{ name: ${unescapeLeadingUnderscores(e.escapedName)}; flags: ${formatSymbolFlags(e.flags)}; declarations: ${map(e.declarations,e=>formatSyntaxKind(e.kind))} }`},e.formatEnum=formatEnum;const i=new Map;function formatSyntaxKind(e){return formatEnum(e,Q,!1)}function formatNodeFlags(e){return formatEnum(e,X,!0)}function formatModifierFlags(e){return formatEnum(e,Y,!0)}function formatTransformFlags(e){return formatEnum(e,ot,!0)}function formatEmitFlags(e){return formatEnum(e,st,!0)}function formatSymbolFlags(e){return formatEnum(e,Ce,!0)}function formatTypeFlags(e){return formatEnum(e,Fe,!0)}function formatSignatureFlags(e){return formatEnum(e,Me,!0)}function formatObjectFlags(e){return formatEnum(e,Pe,!0)}function formatFlowFlags(e){return formatEnum(e,oe,!0)}e.formatSyntaxKind=formatSyntaxKind,e.formatSnippetKind=function formatSnippetKind(e){return formatEnum(e,at,!1)},e.formatScriptKind=function formatScriptKind(e){return formatEnum(e,Ze,!1)},e.formatNodeFlags=formatNodeFlags,e.formatNodeCheckFlags=function formatNodeCheckFlags(e){return formatEnum(e,ke,!0)},e.formatModifierFlags=formatModifierFlags,e.formatTransformFlags=formatTransformFlags,e.formatEmitFlags=formatEmitFlags,e.formatSymbolFlags=formatSymbolFlags,e.formatTypeFlags=formatTypeFlags,e.formatSignatureFlags=formatSignatureFlags,e.formatObjectFlags=formatObjectFlags,e.formatFlowFlags=formatFlowFlags,e.formatRelationComparisonResult=function formatRelationComparisonResult(e){return formatEnum(e,ee,!0)},e.formatCheckMode=function formatCheckMode(e){return formatEnum(e,na,!0)},e.formatSignatureCheckMode=function formatSignatureCheckMode(e){return formatEnum(e,ra,!0)},e.formatTypeFacts=function formatTypeFacts(e){return formatEnum(e,ea,!0)};let o,a,s=!1;function attachFlowNodeDebugInfoWorker(e){"__debugFlowFlags"in e||Object.defineProperties(e,{__tsDebuggerDisplay:{value(){const e=2&this.flags?"FlowStart":4&this.flags?"FlowBranchLabel":8&this.flags?"FlowLoopLabel":16&this.flags?"FlowAssignment":32&this.flags?"FlowTrueCondition":64&this.flags?"FlowFalseCondition":128&this.flags?"FlowSwitchClause":256&this.flags?"FlowArrayMutation":512&this.flags?"FlowCall":1024&this.flags?"FlowReduceLabel":1&this.flags?"FlowUnreachable":"UnknownFlow",t=-2048&this.flags;return`${e}${t?` (${formatFlowFlags(t)})`:""}`}},__debugFlowFlags:{get(){return formatEnum(this.flags,oe,!0)}},__debugToString:{value(){return formatControlFlowGraph(this)}}})}function attachNodeArrayDebugInfoWorker(e){"__tsDebuggerDisplay"in e||Object.defineProperties(e,{__tsDebuggerDisplay:{value:e=>`NodeArray ${e=String(e).replace(/(?:,[\s\w]+:[^,]+)+\]$/,"]")}`}})}e.attachFlowNodeDebugInfo=function attachFlowNodeDebugInfo(e){return s&&("function"==typeof Object.setPrototypeOf?(o||(o=Object.create(Object.prototype),attachFlowNodeDebugInfoWorker(o)),Object.setPrototypeOf(e,o)):attachFlowNodeDebugInfoWorker(e)),e},e.attachNodeArrayDebugInfo=function attachNodeArrayDebugInfo(e){s&&("function"==typeof Object.setPrototypeOf?(a||(a=Object.create(Array.prototype),attachNodeArrayDebugInfoWorker(a)),Object.setPrototypeOf(e,a)):attachNodeArrayDebugInfoWorker(e))},e.enableDebugInfo=function enableDebugInfo(){if(s)return;const e=new WeakMap,t=new WeakMap;Object.defineProperties(Bn.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){const e=33554432&this.flags?"TransientSymbol":"Symbol",t=-33554433&this.flags;return`${e} '${symbolName(this)}'${t?` (${formatSymbolFlags(t)})`:""}`}},__debugFlags:{get(){return formatSymbolFlags(this.flags)}}}),Object.defineProperties(Bn.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){const e=67359327&this.flags?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:""}`:98304&this.flags?"NullableType":384&this.flags?`LiteralType ${JSON.stringify(this.value)}`:2048&this.flags?`LiteralType ${this.value.negative?"-":""}${this.value.base10Value}n`:8192&this.flags?"UniqueESSymbolType":32&this.flags?"EnumType":1048576&this.flags?"UnionType":2097152&this.flags?"IntersectionType":4194304&this.flags?"IndexType":8388608&this.flags?"IndexedAccessType":16777216&this.flags?"ConditionalType":33554432&this.flags?"SubstitutionType":262144&this.flags?"TypeParameter":524288&this.flags?3&this.objectFlags?"InterfaceType":4&this.objectFlags?"TypeReference":8&this.objectFlags?"TupleType":16&this.objectFlags?"AnonymousType":32&this.objectFlags?"MappedType":1024&this.objectFlags?"ReverseMappedType":256&this.objectFlags?"EvolvingArrayType":"ObjectType":"Type",t=524288&this.flags?-1344&this.objectFlags:0;return`${e}${this.symbol?` '${symbolName(this.symbol)}'`:""}${t?` (${formatObjectFlags(t)})`:""}`}},__debugFlags:{get(){return formatTypeFlags(this.flags)}},__debugObjectFlags:{get(){return 524288&this.flags?formatObjectFlags(this.objectFlags):""}},__debugTypeToString:{value(){let t=e.get(this);return void 0===t&&(t=this.checker.typeToString(this),e.set(this,t)),t}}}),Object.defineProperties(Bn.getSignatureConstructor().prototype,{__debugFlags:{get(){return formatSignatureFlags(this.flags)}},__debugSignatureToString:{value(){var e;return null==(e=this.checker)?void 0:e.signatureToString(this)}}});const n=[Bn.getNodeConstructor(),Bn.getIdentifierConstructor(),Bn.getTokenConstructor(),Bn.getSourceFileConstructor()];for(const e of n)hasProperty(e.prototype,"__debugKind")||Object.defineProperties(e.prototype,{__tsDebuggerDisplay:{value(){return`${isGeneratedIdentifier(this)?"GeneratedIdentifier":isIdentifier(this)?`Identifier '${idText(this)}'`:isPrivateIdentifier(this)?`PrivateIdentifier '${idText(this)}'`:isStringLiteral(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+"...")}`:isNumericLiteral(this)?`NumericLiteral ${this.text}`:isBigIntLiteral(this)?`BigIntLiteral ${this.text}n`:isTypeParameterDeclaration(this)?"TypeParameterDeclaration":isParameter(this)?"ParameterDeclaration":isConstructorDeclaration(this)?"ConstructorDeclaration":isGetAccessorDeclaration(this)?"GetAccessorDeclaration":isSetAccessorDeclaration(this)?"SetAccessorDeclaration":isCallSignatureDeclaration(this)?"CallSignatureDeclaration":isConstructSignatureDeclaration(this)?"ConstructSignatureDeclaration":isIndexSignatureDeclaration(this)?"IndexSignatureDeclaration":isTypePredicateNode(this)?"TypePredicateNode":isTypeReferenceNode(this)?"TypeReferenceNode":isFunctionTypeNode(this)?"FunctionTypeNode":isConstructorTypeNode(this)?"ConstructorTypeNode":isTypeQueryNode(this)?"TypeQueryNode":isTypeLiteralNode(this)?"TypeLiteralNode":isArrayTypeNode(this)?"ArrayTypeNode":isTupleTypeNode(this)?"TupleTypeNode":isOptionalTypeNode(this)?"OptionalTypeNode":isRestTypeNode(this)?"RestTypeNode":isUnionTypeNode(this)?"UnionTypeNode":isIntersectionTypeNode(this)?"IntersectionTypeNode":isConditionalTypeNode(this)?"ConditionalTypeNode":isInferTypeNode(this)?"InferTypeNode":isParenthesizedTypeNode(this)?"ParenthesizedTypeNode":isThisTypeNode(this)?"ThisTypeNode":isTypeOperatorNode(this)?"TypeOperatorNode":isIndexedAccessTypeNode(this)?"IndexedAccessTypeNode":isMappedTypeNode(this)?"MappedTypeNode":isLiteralTypeNode(this)?"LiteralTypeNode":isNamedTupleMember(this)?"NamedTupleMember":isImportTypeNode(this)?"ImportTypeNode":formatSyntaxKind(this.kind)}${this.flags?` (${formatNodeFlags(this.flags)})`:""}`}},__debugKind:{get(){return formatSyntaxKind(this.kind)}},__debugNodeFlags:{get(){return formatNodeFlags(this.flags)}},__debugModifierFlags:{get(){return formatModifierFlags(getEffectiveModifierFlagsNoCache(this))}},__debugTransformFlags:{get(){return formatTransformFlags(this.transformFlags)}},__debugIsParseTreeNode:{get(){return isParseTreeNode(this)}},__debugEmitFlags:{get(){return formatEmitFlags(getEmitFlags(this))}},__debugGetText:{value(e){if(nodeIsSynthesized(this))return"";let n=t.get(this);if(void 0===n){const r=getParseTreeNode(this),i=r&&getSourceFileOfNode(r);n=i?getSourceTextOfNodeFromSourceFile(i,r,e):"",t.set(this,n)}return n}}});s=!0},e.formatVariance=function formatVariance(e){const t=7&e;let n=0===t?"in out":3===t?"[bivariant]":2===t?"in":1===t?"out":4===t?"[independent]":"";return 8&e?n+=" (unmeasurable)":16&e&&(n+=" (unreliable)"),n};class DebugTypeMapper{__debugToString(){var e;switch(this.kind){case 3:return(null==(e=this.debugInfo)?void 0:e.call(this))||"(function mapper)";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return zipWith(this.sources,this.targets||map(this.sources,()=>"any"),(e,t)=>`${e.__debugTypeToString()} -> ${"string"==typeof t?t:t.__debugTypeToString()}`).join(", ");case 2:return zipWith(this.sources,this.targets,(e,t)=>`${e.__debugTypeToString()} -> ${t().__debugTypeToString()}`).join(", ");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split("\n").join("\n ")}\nm2: ${this.mapper2.__debugToString().split("\n").join("\n ")}`;default:return assertNever(this)}}}function formatControlFlowGraph(e){let t,n=-1;function getDebugFlowNodeId(e){return e.id||(e.id=n,n--),e.id}var r;let i;var o;(r=t||(t={})).lr="\u2500",r.ud="\u2502",r.dr="\u256d",r.dl="\u256e",r.ul="\u256f",r.ur="\u2570",r.udr="\u251c",r.udl="\u2524",r.dlr="\u252c",r.ulr="\u2534",r.udlr="\u256b",(o=i||(i={}))[o.None=0]="None",o[o.Up=1]="Up",o[o.Down=2]="Down",o[o.Left=4]="Left",o[o.Right=8]="Right",o[o.UpDown=3]="UpDown",o[o.LeftRight=12]="LeftRight",o[o.UpLeft=5]="UpLeft",o[o.UpRight=9]="UpRight",o[o.DownLeft=6]="DownLeft",o[o.DownRight=10]="DownRight",o[o.UpDownLeft=7]="UpDownLeft",o[o.UpDownRight=11]="UpDownRight",o[o.UpLeftRight=13]="UpLeftRight",o[o.DownLeftRight=14]="DownLeftRight",o[o.UpDownLeftRight=15]="UpDownLeftRight",o[o.NoChildren=16]="NoChildren";const a=Object.create(null),s=[],c=[],l=buildGraphNode(e,new Set);for(const e of s)e.text=renderFlowNode(e.flowNode,e.circular),computeLevel(e);const d=function computeHeight(e){let t=0;for(const n of getChildren(e))t=Math.max(t,computeHeight(n));return t+1}(l),p=function computeColumnWidths(e){const t=fill(Array(e),0);for(const e of s)t[e.level]=Math.max(t[e.level],e.text.length);return t}(d);return function computeLanes(e,t){if(-1===e.lane){e.lane=t,e.endLane=t;const n=getChildren(e);for(let r=0;r0&&t++;const i=n[r];computeLanes(i,t),i.endLane>e.endLane&&(t=i.endLane)}e.endLane=t}}(l,0),function renderGraph(){const e=p.length,t=maxBy(s,0,e=>e.lane)+1,n=fill(Array(t),""),r=p.map(()=>Array(t)),i=p.map(()=>fill(Array(t),0));for(const e of s){r[e.level][e.lane]=e;const t=getChildren(e);for(let n=0;n0&&(o|=1),n0&&(o|=1),t0?i[n-1][e]:0,r=e>0?i[n][e-1]:0;let o=i[n][e];o||(8&t&&(o|=12),2&r&&(o|=3),i[n][e]=o)}for(let t=0;t0?e.repeat(t):"";let n="";for(;n.length=0,"Invalid argument: major"),h.assert(t>=0,"Invalid argument: minor"),h.assert(n>=0,"Invalid argument: patch");const o=r?isArray(r)?r:r.split("."):l,a=i?isArray(i)?i:i.split("."):l;h.assert(every(o,e=>v.test(e)),"Invalid argument: prerelease"),h.assert(every(a,e=>C.test(e)),"Invalid argument: build"),this.major=e,this.minor=t,this.patch=n,this.prerelease=o,this.build=a}static tryParse(e){const t=tryParseComponents(e);if(!t)return;const{major:n,minor:r,patch:i,prerelease:o,build:a}=t;return new _Version(n,r,i,o,a)}compareTo(e){return this===e?0:void 0===e?1:compareValues(this.major,e.major)||compareValues(this.minor,e.minor)||compareValues(this.patch,e.patch)||function comparePrereleaseIdentifiers(e,t){if(e===t)return 0;if(0===e.length)return 0===t.length?0:1;if(0===t.length)return-1;const n=Math.min(e.length,t.length);for(let r=0;r=]|<=|>=)?\s*([a-z0-9-+.*]+)$/i;function parseRange(e){const t=[];for(let n of e.trim().split(P)){if(!n)continue;const e=[];n=n.trim();const r=A.exec(n);if(r){if(!parseHyphen(r[1],r[2],e))return}else for(const t of n.split(D)){const n=O.exec(t.trim());if(!n||!parseComparator(n[1],n[2],e))return}t.push(e)}return t}function parsePartial(e){const t=I.exec(e);if(!t)return;const[,n,r="*",i="*",o,a]=t;return{version:new k(isWildcard(n)?0:parseInt(n,10),isWildcard(n)||isWildcard(r)?0:parseInt(r,10),isWildcard(n)||isWildcard(r)||isWildcard(i)?0:parseInt(i,10),o,a),major:n,minor:r,patch:i}}function parseHyphen(e,t,n){const r=parsePartial(e);if(!r)return!1;const i=parsePartial(t);return!!i&&(isWildcard(r.major)||n.push(createComparator(">=",r.version)),isWildcard(i.major)||n.push(isWildcard(i.minor)?createComparator("<",i.version.increment("major")):isWildcard(i.patch)?createComparator("<",i.version.increment("minor")):createComparator("<=",i.version)),!0)}function parseComparator(e,t,n){const r=parsePartial(t);if(!r)return!1;const{version:i,major:o,minor:a,patch:s}=r;if(isWildcard(o))"<"!==e&&">"!==e||n.push(createComparator("<",k.zero));else switch(e){case"~":n.push(createComparator(">=",i)),n.push(createComparator("<",i.increment(isWildcard(a)?"major":"minor")));break;case"^":n.push(createComparator(">=",i)),n.push(createComparator("<",i.increment(i.major>0||isWildcard(a)?"major":i.minor>0||isWildcard(s)?"minor":"patch")));break;case"<":case">=":n.push(isWildcard(a)||isWildcard(s)?createComparator(e,i.with({prerelease:"0"})):createComparator(e,i));break;case"<=":case">":n.push(isWildcard(a)?createComparator("<="===e?"<":">=",i.increment("major").with({prerelease:"0"})):isWildcard(s)?createComparator("<="===e?"<":">=",i.increment("minor").with({prerelease:"0"})):createComparator(e,i));break;case"=":case void 0:isWildcard(a)||isWildcard(s)?(n.push(createComparator(">=",i.with({prerelease:"0"}))),n.push(createComparator("<",i.increment(isWildcard(a)?"major":"minor").with({prerelease:"0"})))):n.push(createComparator("=",i));break;default:return!1}return!0}function isWildcard(e){return"*"===e||"x"===e||"X"===e}function createComparator(e,t){return{operator:e,operand:t}}function testAlternative(e,t){for(const n of t)if(!testComparator(e,n.operator,n.operand))return!1;return!0}function testComparator(e,t,n){const r=e.compareTo(n);switch(t){case"<":return r<0;case"<=":return r<=0;case">":return r>0;case">=":return r>=0;case"=":return 0===r;default:return h.assertNever(t)}}function formatAlternative(e){return map(e,formatComparator).join(" ")}function formatComparator(e){return`${e.operator}${e.operand}`}var w=function tryGetPerformanceHooks(){const e=function tryGetPerformance(){if(isNodeLikeSystem())try{const{performance:e}=n(732);if(e)return{shouldWriteNativeEvents:!1,performance:e}}catch{}if("object"==typeof performance)return{shouldWriteNativeEvents:!0,performance}}();if(!e)return;const{shouldWriteNativeEvents:t,performance:r}=e,i={shouldWriteNativeEvents:t,performance:void 0,performanceTime:void 0};return"number"==typeof r.timeOrigin&&"function"==typeof r.now&&(i.performanceTime=r),i.performanceTime&&"function"==typeof r.mark&&"function"==typeof r.measure&&"function"==typeof r.clearMarks&&"function"==typeof r.clearMeasures&&(i.performance=r),i}(),L=null==w?void 0:w.performanceTime;function tryGetNativePerformanceHooks(){return w}var M,R,B=L?()=>L.now():Date.now,j={};function createTimerIf(e,t,n,r){return e?createTimer(t,n,r):U}function createTimer(e,t,n){let r=0;return{enter:function enter(){1===++r&&mark(t)},exit:function exit(){0===--r?(mark(n),measure(e,t,n)):r<0&&h.fail("enter/exit count does not match.")}}}i(j,{clearMarks:()=>clearMarks,clearMeasures:()=>clearMeasures,createTimer:()=>createTimer,createTimerIf:()=>createTimerIf,disable:()=>disable,enable:()=>enable,forEachMark:()=>forEachMark,forEachMeasure:()=>forEachMeasure,getCount:()=>getCount,getDuration:()=>getDuration,isEnabled:()=>isEnabled,mark:()=>mark,measure:()=>measure,nullTimer:()=>U});var J,W,U={enter:noop,exit:noop},z=!1,V=B(),q=new Map,H=new Map,K=new Map;function mark(e){if(z){const t=H.get(e)??0;H.set(e,t+1),q.set(e,B()),null==R||R.mark(e),"function"==typeof onProfilerEvent&&onProfilerEvent(e)}}function measure(e,t,n){if(z){const r=(void 0!==n?q.get(n):void 0)??B(),i=(void 0!==t?q.get(t):void 0)??V,o=K.get(e)||0;K.set(e,o+(r-i)),null==R||R.measure(e,t,n)}}function getCount(e){return H.get(e)||0}function getDuration(e){return K.get(e)||0}function forEachMeasure(e){K.forEach((t,n)=>e(n,t))}function forEachMark(e){q.forEach((t,n)=>e(n))}function clearMeasures(e){void 0!==e?K.delete(e):K.clear(),null==R||R.clearMeasures(e)}function clearMarks(e){void 0!==e?(H.delete(e),q.delete(e)):(H.clear(),q.clear()),null==R||R.clearMarks(e)}function isEnabled(){return z}function enable(e=kt){var t;return z||(z=!0,M||(M=tryGetNativePerformanceHooks()),(null==M?void 0:M.performance)&&(V=M.performance.timeOrigin,(M.shouldWriteNativeEvents||(null==(t=null==e?void 0:e.cpuProfilingEnabled)?void 0:t.call(e))||(null==e?void 0:e.debugMode))&&(R=M.performance))),!0}function disable(){z&&(q.clear(),H.clear(),K.clear(),R=void 0,z=!1)}(e=>{let t,r,i=0,o=0;const a=[];let s;const c=[];let l;var d;e.startTracing=function startTracing2(l,d,p){if(h.assert(!J,"Tracing already started"),void 0===t)try{t=n(21)}catch(e){throw new Error(`tracing requires having fs\n(original error: ${e.message||e})`)}r=l,a.length=0,void 0===s&&(s=combinePaths(d,"legend.json")),t.existsSync(d)||t.mkdirSync(d,{recursive:!0});const u="build"===r?`.${process.pid}-${++i}`:"server"===r?`.${process.pid}`:"",m=combinePaths(d,`trace${u}.json`),_=combinePaths(d,`types${u}.json`);c.push({configFilePath:p,tracePath:m,typesPath:_}),o=t.openSync(m,"w"),J=e;const f={cat:"__metadata",ph:"M",ts:1e3*B(),pid:1,tid:1};t.writeSync(o,"[\n"+[{name:"process_name",args:{name:"tsc"},...f},{name:"thread_name",args:{name:"Main"},...f},{name:"TracingStartedInBrowser",...f,cat:"disabled-by-default-devtools.timeline"}].map(e=>JSON.stringify(e)).join(",\n"))},e.stopTracing=function stopTracing(){h.assert(J,"Tracing is not in progress"),h.assert(!!a.length==("server"!==r)),t.writeSync(o,"\n]\n"),t.closeSync(o),J=void 0,a.length?function dumpTypes(e){var n,r,i,o,a,s,l,d,p,u,m,_,f,g,y,T,S,x,v;mark("beginDumpTypes");const b=c[c.length-1].typesPath,C=t.openSync(b,"w"),E=new Map;t.writeSync(C,"[");const N=e.length;for(let c=0;ce.id),referenceLocation:getLocation(e.node)}}let A={};if(16777216&b.flags){const e=b;A={conditionalCheckType:null==(s=e.checkType)?void 0:s.id,conditionalExtendsType:null==(l=e.extendsType)?void 0:l.id,conditionalTrueType:(null==(d=e.resolvedTrueType)?void 0:d.id)??-1,conditionalFalseType:(null==(p=e.resolvedFalseType)?void 0:p.id)??-1}}let O={};if(33554432&b.flags){const e=b;O={substitutionBaseType:null==(u=e.baseType)?void 0:u.id,constraintType:null==(m=e.constraint)?void 0:m.id}}let w={};if(1024&k){const e=b;w={reverseMappedSourceType:null==(_=e.source)?void 0:_.id,reverseMappedMappedType:null==(f=e.mappedType)?void 0:f.id,reverseMappedConstraintType:null==(g=e.constraintType)?void 0:g.id}}let L,M={};if(256&k){const e=b;M={evolvingArrayElementType:e.elementType.id,evolvingArrayFinalType:null==(y=e.finalArrayType)?void 0:y.id}}const R=b.checker.getRecursionIdentity(b);R&&(L=E.get(R),L||(L=E.size,E.set(R,L)));const B={id:b.id,intrinsicName:b.intrinsicName,symbolName:(null==F?void 0:F.escapedName)&&unescapeLeadingUnderscores(F.escapedName),recursionId:L,isTuple:!!(8&k)||void 0,unionTypes:1048576&b.flags?null==(T=b.types)?void 0:T.map(e=>e.id):void 0,intersectionTypes:2097152&b.flags?b.types.map(e=>e.id):void 0,aliasTypeArguments:null==(S=b.aliasTypeArguments)?void 0:S.map(e=>e.id),keyofType:4194304&b.flags?null==(x=b.type)?void 0:x.id:void 0,...D,...I,...A,...O,...w,...M,destructuringPattern:getLocation(b.pattern),firstDeclaration:getLocation(null==(v=null==F?void 0:F.declarations)?void 0:v[0]),flags:h.formatTypeFlags(b.flags).split("|"),display:P};t.writeSync(C,JSON.stringify(B)),c0),writeStackEvent(p.length-1,1e3*B(),e),p.length--},e.popAll=function popAll(){const e=1e3*B();for(let t=p.length-1;t>=0;t--)writeStackEvent(t,e);p.length=0};const u=1e4;function writeStackEvent(e,t,n){const{phase:r,name:i,args:o,time:a,separateBeginAndEnd:s}=p[e];s?(h.assert(!n,"`results` are not supported for events with `separateBeginAndEnd`"),writeEvent("E",r,i,o,void 0,t)):u-a%u<=t-a&&writeEvent("X",r,i,{...o,results:n},'"dur":'+(t-a),a)}function writeEvent(e,n,i,a,s,c=1e3*B()){"server"===r&&"checkTypes"===n||(mark("beginTracing"),t.writeSync(o,`,\n{"pid":1,"tid":1,"ph":"${e}","cat":"${n}","ts":${c},"name":"${i}"`),s&&t.writeSync(o,`,${s}`),a&&t.writeSync(o,`,"args":${JSON.stringify(a)}`),t.writeSync(o,"}"),mark("endTracing"),measure("Tracing","beginTracing","endTracing"))}function getLocation(e){const t=getSourceFileOfNode(e);return t?{path:t.path,start:indexFromOne(getLineAndCharacterOfPosition(t,e.pos)),end:indexFromOne(getLineAndCharacterOfPosition(t,e.end))}:void 0;function indexFromOne(e){return{line:e.line+1,character:e.character+1}}}e.dumpLegend=function dumpLegend(){s&&t.writeFileSync(s,JSON.stringify(c))}})(W||(W={}));var G=W.startTracing,$=W.dumpLegend,Q=(e=>(e[e.Unknown=0]="Unknown",e[e.EndOfFileToken=1]="EndOfFileToken",e[e.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",e[e.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",e[e.NewLineTrivia=4]="NewLineTrivia",e[e.WhitespaceTrivia=5]="WhitespaceTrivia",e[e.ShebangTrivia=6]="ShebangTrivia",e[e.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",e[e.NonTextFileMarkerTrivia=8]="NonTextFileMarkerTrivia",e[e.NumericLiteral=9]="NumericLiteral",e[e.BigIntLiteral=10]="BigIntLiteral",e[e.StringLiteral=11]="StringLiteral",e[e.JsxText=12]="JsxText",e[e.JsxTextAllWhiteSpaces=13]="JsxTextAllWhiteSpaces",e[e.RegularExpressionLiteral=14]="RegularExpressionLiteral",e[e.NoSubstitutionTemplateLiteral=15]="NoSubstitutionTemplateLiteral",e[e.TemplateHead=16]="TemplateHead",e[e.TemplateMiddle=17]="TemplateMiddle",e[e.TemplateTail=18]="TemplateTail",e[e.OpenBraceToken=19]="OpenBraceToken",e[e.CloseBraceToken=20]="CloseBraceToken",e[e.OpenParenToken=21]="OpenParenToken",e[e.CloseParenToken=22]="CloseParenToken",e[e.OpenBracketToken=23]="OpenBracketToken",e[e.CloseBracketToken=24]="CloseBracketToken",e[e.DotToken=25]="DotToken",e[e.DotDotDotToken=26]="DotDotDotToken",e[e.SemicolonToken=27]="SemicolonToken",e[e.CommaToken=28]="CommaToken",e[e.QuestionDotToken=29]="QuestionDotToken",e[e.LessThanToken=30]="LessThanToken",e[e.LessThanSlashToken=31]="LessThanSlashToken",e[e.GreaterThanToken=32]="GreaterThanToken",e[e.LessThanEqualsToken=33]="LessThanEqualsToken",e[e.GreaterThanEqualsToken=34]="GreaterThanEqualsToken",e[e.EqualsEqualsToken=35]="EqualsEqualsToken",e[e.ExclamationEqualsToken=36]="ExclamationEqualsToken",e[e.EqualsEqualsEqualsToken=37]="EqualsEqualsEqualsToken",e[e.ExclamationEqualsEqualsToken=38]="ExclamationEqualsEqualsToken",e[e.EqualsGreaterThanToken=39]="EqualsGreaterThanToken",e[e.PlusToken=40]="PlusToken",e[e.MinusToken=41]="MinusToken",e[e.AsteriskToken=42]="AsteriskToken",e[e.AsteriskAsteriskToken=43]="AsteriskAsteriskToken",e[e.SlashToken=44]="SlashToken",e[e.PercentToken=45]="PercentToken",e[e.PlusPlusToken=46]="PlusPlusToken",e[e.MinusMinusToken=47]="MinusMinusToken",e[e.LessThanLessThanToken=48]="LessThanLessThanToken",e[e.GreaterThanGreaterThanToken=49]="GreaterThanGreaterThanToken",e[e.GreaterThanGreaterThanGreaterThanToken=50]="GreaterThanGreaterThanGreaterThanToken",e[e.AmpersandToken=51]="AmpersandToken",e[e.BarToken=52]="BarToken",e[e.CaretToken=53]="CaretToken",e[e.ExclamationToken=54]="ExclamationToken",e[e.TildeToken=55]="TildeToken",e[e.AmpersandAmpersandToken=56]="AmpersandAmpersandToken",e[e.BarBarToken=57]="BarBarToken",e[e.QuestionToken=58]="QuestionToken",e[e.ColonToken=59]="ColonToken",e[e.AtToken=60]="AtToken",e[e.QuestionQuestionToken=61]="QuestionQuestionToken",e[e.BacktickToken=62]="BacktickToken",e[e.HashToken=63]="HashToken",e[e.EqualsToken=64]="EqualsToken",e[e.PlusEqualsToken=65]="PlusEqualsToken",e[e.MinusEqualsToken=66]="MinusEqualsToken",e[e.AsteriskEqualsToken=67]="AsteriskEqualsToken",e[e.AsteriskAsteriskEqualsToken=68]="AsteriskAsteriskEqualsToken",e[e.SlashEqualsToken=69]="SlashEqualsToken",e[e.PercentEqualsToken=70]="PercentEqualsToken",e[e.LessThanLessThanEqualsToken=71]="LessThanLessThanEqualsToken",e[e.GreaterThanGreaterThanEqualsToken=72]="GreaterThanGreaterThanEqualsToken",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]="GreaterThanGreaterThanGreaterThanEqualsToken",e[e.AmpersandEqualsToken=74]="AmpersandEqualsToken",e[e.BarEqualsToken=75]="BarEqualsToken",e[e.BarBarEqualsToken=76]="BarBarEqualsToken",e[e.AmpersandAmpersandEqualsToken=77]="AmpersandAmpersandEqualsToken",e[e.QuestionQuestionEqualsToken=78]="QuestionQuestionEqualsToken",e[e.CaretEqualsToken=79]="CaretEqualsToken",e[e.Identifier=80]="Identifier",e[e.PrivateIdentifier=81]="PrivateIdentifier",e[e.JSDocCommentTextToken=82]="JSDocCommentTextToken",e[e.BreakKeyword=83]="BreakKeyword",e[e.CaseKeyword=84]="CaseKeyword",e[e.CatchKeyword=85]="CatchKeyword",e[e.ClassKeyword=86]="ClassKeyword",e[e.ConstKeyword=87]="ConstKeyword",e[e.ContinueKeyword=88]="ContinueKeyword",e[e.DebuggerKeyword=89]="DebuggerKeyword",e[e.DefaultKeyword=90]="DefaultKeyword",e[e.DeleteKeyword=91]="DeleteKeyword",e[e.DoKeyword=92]="DoKeyword",e[e.ElseKeyword=93]="ElseKeyword",e[e.EnumKeyword=94]="EnumKeyword",e[e.ExportKeyword=95]="ExportKeyword",e[e.ExtendsKeyword=96]="ExtendsKeyword",e[e.FalseKeyword=97]="FalseKeyword",e[e.FinallyKeyword=98]="FinallyKeyword",e[e.ForKeyword=99]="ForKeyword",e[e.FunctionKeyword=100]="FunctionKeyword",e[e.IfKeyword=101]="IfKeyword",e[e.ImportKeyword=102]="ImportKeyword",e[e.InKeyword=103]="InKeyword",e[e.InstanceOfKeyword=104]="InstanceOfKeyword",e[e.NewKeyword=105]="NewKeyword",e[e.NullKeyword=106]="NullKeyword",e[e.ReturnKeyword=107]="ReturnKeyword",e[e.SuperKeyword=108]="SuperKeyword",e[e.SwitchKeyword=109]="SwitchKeyword",e[e.ThisKeyword=110]="ThisKeyword",e[e.ThrowKeyword=111]="ThrowKeyword",e[e.TrueKeyword=112]="TrueKeyword",e[e.TryKeyword=113]="TryKeyword",e[e.TypeOfKeyword=114]="TypeOfKeyword",e[e.VarKeyword=115]="VarKeyword",e[e.VoidKeyword=116]="VoidKeyword",e[e.WhileKeyword=117]="WhileKeyword",e[e.WithKeyword=118]="WithKeyword",e[e.ImplementsKeyword=119]="ImplementsKeyword",e[e.InterfaceKeyword=120]="InterfaceKeyword",e[e.LetKeyword=121]="LetKeyword",e[e.PackageKeyword=122]="PackageKeyword",e[e.PrivateKeyword=123]="PrivateKeyword",e[e.ProtectedKeyword=124]="ProtectedKeyword",e[e.PublicKeyword=125]="PublicKeyword",e[e.StaticKeyword=126]="StaticKeyword",e[e.YieldKeyword=127]="YieldKeyword",e[e.AbstractKeyword=128]="AbstractKeyword",e[e.AccessorKeyword=129]="AccessorKeyword",e[e.AsKeyword=130]="AsKeyword",e[e.AssertsKeyword=131]="AssertsKeyword",e[e.AssertKeyword=132]="AssertKeyword",e[e.AnyKeyword=133]="AnyKeyword",e[e.AsyncKeyword=134]="AsyncKeyword",e[e.AwaitKeyword=135]="AwaitKeyword",e[e.BooleanKeyword=136]="BooleanKeyword",e[e.ConstructorKeyword=137]="ConstructorKeyword",e[e.DeclareKeyword=138]="DeclareKeyword",e[e.GetKeyword=139]="GetKeyword",e[e.InferKeyword=140]="InferKeyword",e[e.IntrinsicKeyword=141]="IntrinsicKeyword",e[e.IsKeyword=142]="IsKeyword",e[e.KeyOfKeyword=143]="KeyOfKeyword",e[e.ModuleKeyword=144]="ModuleKeyword",e[e.NamespaceKeyword=145]="NamespaceKeyword",e[e.NeverKeyword=146]="NeverKeyword",e[e.OutKeyword=147]="OutKeyword",e[e.ReadonlyKeyword=148]="ReadonlyKeyword",e[e.RequireKeyword=149]="RequireKeyword",e[e.NumberKeyword=150]="NumberKeyword",e[e.ObjectKeyword=151]="ObjectKeyword",e[e.SatisfiesKeyword=152]="SatisfiesKeyword",e[e.SetKeyword=153]="SetKeyword",e[e.StringKeyword=154]="StringKeyword",e[e.SymbolKeyword=155]="SymbolKeyword",e[e.TypeKeyword=156]="TypeKeyword",e[e.UndefinedKeyword=157]="UndefinedKeyword",e[e.UniqueKeyword=158]="UniqueKeyword",e[e.UnknownKeyword=159]="UnknownKeyword",e[e.UsingKeyword=160]="UsingKeyword",e[e.FromKeyword=161]="FromKeyword",e[e.GlobalKeyword=162]="GlobalKeyword",e[e.BigIntKeyword=163]="BigIntKeyword",e[e.OverrideKeyword=164]="OverrideKeyword",e[e.OfKeyword=165]="OfKeyword",e[e.DeferKeyword=166]="DeferKeyword",e[e.QualifiedName=167]="QualifiedName",e[e.ComputedPropertyName=168]="ComputedPropertyName",e[e.TypeParameter=169]="TypeParameter",e[e.Parameter=170]="Parameter",e[e.Decorator=171]="Decorator",e[e.PropertySignature=172]="PropertySignature",e[e.PropertyDeclaration=173]="PropertyDeclaration",e[e.MethodSignature=174]="MethodSignature",e[e.MethodDeclaration=175]="MethodDeclaration",e[e.ClassStaticBlockDeclaration=176]="ClassStaticBlockDeclaration",e[e.Constructor=177]="Constructor",e[e.GetAccessor=178]="GetAccessor",e[e.SetAccessor=179]="SetAccessor",e[e.CallSignature=180]="CallSignature",e[e.ConstructSignature=181]="ConstructSignature",e[e.IndexSignature=182]="IndexSignature",e[e.TypePredicate=183]="TypePredicate",e[e.TypeReference=184]="TypeReference",e[e.FunctionType=185]="FunctionType",e[e.ConstructorType=186]="ConstructorType",e[e.TypeQuery=187]="TypeQuery",e[e.TypeLiteral=188]="TypeLiteral",e[e.ArrayType=189]="ArrayType",e[e.TupleType=190]="TupleType",e[e.OptionalType=191]="OptionalType",e[e.RestType=192]="RestType",e[e.UnionType=193]="UnionType",e[e.IntersectionType=194]="IntersectionType",e[e.ConditionalType=195]="ConditionalType",e[e.InferType=196]="InferType",e[e.ParenthesizedType=197]="ParenthesizedType",e[e.ThisType=198]="ThisType",e[e.TypeOperator=199]="TypeOperator",e[e.IndexedAccessType=200]="IndexedAccessType",e[e.MappedType=201]="MappedType",e[e.LiteralType=202]="LiteralType",e[e.NamedTupleMember=203]="NamedTupleMember",e[e.TemplateLiteralType=204]="TemplateLiteralType",e[e.TemplateLiteralTypeSpan=205]="TemplateLiteralTypeSpan",e[e.ImportType=206]="ImportType",e[e.ObjectBindingPattern=207]="ObjectBindingPattern",e[e.ArrayBindingPattern=208]="ArrayBindingPattern",e[e.BindingElement=209]="BindingElement",e[e.ArrayLiteralExpression=210]="ArrayLiteralExpression",e[e.ObjectLiteralExpression=211]="ObjectLiteralExpression",e[e.PropertyAccessExpression=212]="PropertyAccessExpression",e[e.ElementAccessExpression=213]="ElementAccessExpression",e[e.CallExpression=214]="CallExpression",e[e.NewExpression=215]="NewExpression",e[e.TaggedTemplateExpression=216]="TaggedTemplateExpression",e[e.TypeAssertionExpression=217]="TypeAssertionExpression",e[e.ParenthesizedExpression=218]="ParenthesizedExpression",e[e.FunctionExpression=219]="FunctionExpression",e[e.ArrowFunction=220]="ArrowFunction",e[e.DeleteExpression=221]="DeleteExpression",e[e.TypeOfExpression=222]="TypeOfExpression",e[e.VoidExpression=223]="VoidExpression",e[e.AwaitExpression=224]="AwaitExpression",e[e.PrefixUnaryExpression=225]="PrefixUnaryExpression",e[e.PostfixUnaryExpression=226]="PostfixUnaryExpression",e[e.BinaryExpression=227]="BinaryExpression",e[e.ConditionalExpression=228]="ConditionalExpression",e[e.TemplateExpression=229]="TemplateExpression",e[e.YieldExpression=230]="YieldExpression",e[e.SpreadElement=231]="SpreadElement",e[e.ClassExpression=232]="ClassExpression",e[e.OmittedExpression=233]="OmittedExpression",e[e.ExpressionWithTypeArguments=234]="ExpressionWithTypeArguments",e[e.AsExpression=235]="AsExpression",e[e.NonNullExpression=236]="NonNullExpression",e[e.MetaProperty=237]="MetaProperty",e[e.SyntheticExpression=238]="SyntheticExpression",e[e.SatisfiesExpression=239]="SatisfiesExpression",e[e.TemplateSpan=240]="TemplateSpan",e[e.SemicolonClassElement=241]="SemicolonClassElement",e[e.Block=242]="Block",e[e.EmptyStatement=243]="EmptyStatement",e[e.VariableStatement=244]="VariableStatement",e[e.ExpressionStatement=245]="ExpressionStatement",e[e.IfStatement=246]="IfStatement",e[e.DoStatement=247]="DoStatement",e[e.WhileStatement=248]="WhileStatement",e[e.ForStatement=249]="ForStatement",e[e.ForInStatement=250]="ForInStatement",e[e.ForOfStatement=251]="ForOfStatement",e[e.ContinueStatement=252]="ContinueStatement",e[e.BreakStatement=253]="BreakStatement",e[e.ReturnStatement=254]="ReturnStatement",e[e.WithStatement=255]="WithStatement",e[e.SwitchStatement=256]="SwitchStatement",e[e.LabeledStatement=257]="LabeledStatement",e[e.ThrowStatement=258]="ThrowStatement",e[e.TryStatement=259]="TryStatement",e[e.DebuggerStatement=260]="DebuggerStatement",e[e.VariableDeclaration=261]="VariableDeclaration",e[e.VariableDeclarationList=262]="VariableDeclarationList",e[e.FunctionDeclaration=263]="FunctionDeclaration",e[e.ClassDeclaration=264]="ClassDeclaration",e[e.InterfaceDeclaration=265]="InterfaceDeclaration",e[e.TypeAliasDeclaration=266]="TypeAliasDeclaration",e[e.EnumDeclaration=267]="EnumDeclaration",e[e.ModuleDeclaration=268]="ModuleDeclaration",e[e.ModuleBlock=269]="ModuleBlock",e[e.CaseBlock=270]="CaseBlock",e[e.NamespaceExportDeclaration=271]="NamespaceExportDeclaration",e[e.ImportEqualsDeclaration=272]="ImportEqualsDeclaration",e[e.ImportDeclaration=273]="ImportDeclaration",e[e.ImportClause=274]="ImportClause",e[e.NamespaceImport=275]="NamespaceImport",e[e.NamedImports=276]="NamedImports",e[e.ImportSpecifier=277]="ImportSpecifier",e[e.ExportAssignment=278]="ExportAssignment",e[e.ExportDeclaration=279]="ExportDeclaration",e[e.NamedExports=280]="NamedExports",e[e.NamespaceExport=281]="NamespaceExport",e[e.ExportSpecifier=282]="ExportSpecifier",e[e.MissingDeclaration=283]="MissingDeclaration",e[e.ExternalModuleReference=284]="ExternalModuleReference",e[e.JsxElement=285]="JsxElement",e[e.JsxSelfClosingElement=286]="JsxSelfClosingElement",e[e.JsxOpeningElement=287]="JsxOpeningElement",e[e.JsxClosingElement=288]="JsxClosingElement",e[e.JsxFragment=289]="JsxFragment",e[e.JsxOpeningFragment=290]="JsxOpeningFragment",e[e.JsxClosingFragment=291]="JsxClosingFragment",e[e.JsxAttribute=292]="JsxAttribute",e[e.JsxAttributes=293]="JsxAttributes",e[e.JsxSpreadAttribute=294]="JsxSpreadAttribute",e[e.JsxExpression=295]="JsxExpression",e[e.JsxNamespacedName=296]="JsxNamespacedName",e[e.CaseClause=297]="CaseClause",e[e.DefaultClause=298]="DefaultClause",e[e.HeritageClause=299]="HeritageClause",e[e.CatchClause=300]="CatchClause",e[e.ImportAttributes=301]="ImportAttributes",e[e.ImportAttribute=302]="ImportAttribute",e[e.AssertClause=301]="AssertClause",e[e.AssertEntry=302]="AssertEntry",e[e.ImportTypeAssertionContainer=303]="ImportTypeAssertionContainer",e[e.PropertyAssignment=304]="PropertyAssignment",e[e.ShorthandPropertyAssignment=305]="ShorthandPropertyAssignment",e[e.SpreadAssignment=306]="SpreadAssignment",e[e.EnumMember=307]="EnumMember",e[e.SourceFile=308]="SourceFile",e[e.Bundle=309]="Bundle",e[e.JSDocTypeExpression=310]="JSDocTypeExpression",e[e.JSDocNameReference=311]="JSDocNameReference",e[e.JSDocMemberName=312]="JSDocMemberName",e[e.JSDocAllType=313]="JSDocAllType",e[e.JSDocUnknownType=314]="JSDocUnknownType",e[e.JSDocNullableType=315]="JSDocNullableType",e[e.JSDocNonNullableType=316]="JSDocNonNullableType",e[e.JSDocOptionalType=317]="JSDocOptionalType",e[e.JSDocFunctionType=318]="JSDocFunctionType",e[e.JSDocVariadicType=319]="JSDocVariadicType",e[e.JSDocNamepathType=320]="JSDocNamepathType",e[e.JSDoc=321]="JSDoc",e[e.JSDocComment=321]="JSDocComment",e[e.JSDocText=322]="JSDocText",e[e.JSDocTypeLiteral=323]="JSDocTypeLiteral",e[e.JSDocSignature=324]="JSDocSignature",e[e.JSDocLink=325]="JSDocLink",e[e.JSDocLinkCode=326]="JSDocLinkCode",e[e.JSDocLinkPlain=327]="JSDocLinkPlain",e[e.JSDocTag=328]="JSDocTag",e[e.JSDocAugmentsTag=329]="JSDocAugmentsTag",e[e.JSDocImplementsTag=330]="JSDocImplementsTag",e[e.JSDocAuthorTag=331]="JSDocAuthorTag",e[e.JSDocDeprecatedTag=332]="JSDocDeprecatedTag",e[e.JSDocClassTag=333]="JSDocClassTag",e[e.JSDocPublicTag=334]="JSDocPublicTag",e[e.JSDocPrivateTag=335]="JSDocPrivateTag",e[e.JSDocProtectedTag=336]="JSDocProtectedTag",e[e.JSDocReadonlyTag=337]="JSDocReadonlyTag",e[e.JSDocOverrideTag=338]="JSDocOverrideTag",e[e.JSDocCallbackTag=339]="JSDocCallbackTag",e[e.JSDocOverloadTag=340]="JSDocOverloadTag",e[e.JSDocEnumTag=341]="JSDocEnumTag",e[e.JSDocParameterTag=342]="JSDocParameterTag",e[e.JSDocReturnTag=343]="JSDocReturnTag",e[e.JSDocThisTag=344]="JSDocThisTag",e[e.JSDocTypeTag=345]="JSDocTypeTag",e[e.JSDocTemplateTag=346]="JSDocTemplateTag",e[e.JSDocTypedefTag=347]="JSDocTypedefTag",e[e.JSDocSeeTag=348]="JSDocSeeTag",e[e.JSDocPropertyTag=349]="JSDocPropertyTag",e[e.JSDocThrowsTag=350]="JSDocThrowsTag",e[e.JSDocSatisfiesTag=351]="JSDocSatisfiesTag",e[e.JSDocImportTag=352]="JSDocImportTag",e[e.SyntaxList=353]="SyntaxList",e[e.NotEmittedStatement=354]="NotEmittedStatement",e[e.NotEmittedTypeElement=355]="NotEmittedTypeElement",e[e.PartiallyEmittedExpression=356]="PartiallyEmittedExpression",e[e.CommaListExpression=357]="CommaListExpression",e[e.SyntheticReferenceExpression=358]="SyntheticReferenceExpression",e[e.Count=359]="Count",e[e.FirstAssignment=64]="FirstAssignment",e[e.LastAssignment=79]="LastAssignment",e[e.FirstCompoundAssignment=65]="FirstCompoundAssignment",e[e.LastCompoundAssignment=79]="LastCompoundAssignment",e[e.FirstReservedWord=83]="FirstReservedWord",e[e.LastReservedWord=118]="LastReservedWord",e[e.FirstKeyword=83]="FirstKeyword",e[e.LastKeyword=166]="LastKeyword",e[e.FirstFutureReservedWord=119]="FirstFutureReservedWord",e[e.LastFutureReservedWord=127]="LastFutureReservedWord",e[e.FirstTypeNode=183]="FirstTypeNode",e[e.LastTypeNode=206]="LastTypeNode",e[e.FirstPunctuation=19]="FirstPunctuation",e[e.LastPunctuation=79]="LastPunctuation",e[e.FirstToken=0]="FirstToken",e[e.LastToken=166]="LastToken",e[e.FirstTriviaToken=2]="FirstTriviaToken",e[e.LastTriviaToken=7]="LastTriviaToken",e[e.FirstLiteralToken=9]="FirstLiteralToken",e[e.LastLiteralToken=15]="LastLiteralToken",e[e.FirstTemplateToken=15]="FirstTemplateToken",e[e.LastTemplateToken=18]="LastTemplateToken",e[e.FirstBinaryOperator=30]="FirstBinaryOperator",e[e.LastBinaryOperator=79]="LastBinaryOperator",e[e.FirstStatement=244]="FirstStatement",e[e.LastStatement=260]="LastStatement",e[e.FirstNode=167]="FirstNode",e[e.FirstJSDocNode=310]="FirstJSDocNode",e[e.LastJSDocNode=352]="LastJSDocNode",e[e.FirstJSDocTagNode=328]="FirstJSDocTagNode",e[e.LastJSDocTagNode=352]="LastJSDocTagNode",e[e.FirstContextualKeyword=128]="FirstContextualKeyword",e[e.LastContextualKeyword=166]="LastContextualKeyword",e))(Q||{}),X=(e=>(e[e.None=0]="None",e[e.Let=1]="Let",e[e.Const=2]="Const",e[e.Using=4]="Using",e[e.AwaitUsing=6]="AwaitUsing",e[e.NestedNamespace=8]="NestedNamespace",e[e.Synthesized=16]="Synthesized",e[e.Namespace=32]="Namespace",e[e.OptionalChain=64]="OptionalChain",e[e.ExportContext=128]="ExportContext",e[e.ContainsThis=256]="ContainsThis",e[e.HasImplicitReturn=512]="HasImplicitReturn",e[e.HasExplicitReturn=1024]="HasExplicitReturn",e[e.GlobalAugmentation=2048]="GlobalAugmentation",e[e.HasAsyncFunctions=4096]="HasAsyncFunctions",e[e.DisallowInContext=8192]="DisallowInContext",e[e.YieldContext=16384]="YieldContext",e[e.DecoratorContext=32768]="DecoratorContext",e[e.AwaitContext=65536]="AwaitContext",e[e.DisallowConditionalTypesContext=131072]="DisallowConditionalTypesContext",e[e.ThisNodeHasError=262144]="ThisNodeHasError",e[e.JavaScriptFile=524288]="JavaScriptFile",e[e.ThisNodeOrAnySubNodesHasError=1048576]="ThisNodeOrAnySubNodesHasError",e[e.HasAggregatedChildData=2097152]="HasAggregatedChildData",e[e.PossiblyContainsDynamicImport=4194304]="PossiblyContainsDynamicImport",e[e.PossiblyContainsImportMeta=8388608]="PossiblyContainsImportMeta",e[e.JSDoc=16777216]="JSDoc",e[e.Ambient=33554432]="Ambient",e[e.InWithStatement=67108864]="InWithStatement",e[e.JsonFile=134217728]="JsonFile",e[e.TypeCached=268435456]="TypeCached",e[e.Deprecated=536870912]="Deprecated",e[e.BlockScoped=7]="BlockScoped",e[e.Constant=6]="Constant",e[e.ReachabilityCheckFlags=1536]="ReachabilityCheckFlags",e[e.ReachabilityAndEmitFlags=5632]="ReachabilityAndEmitFlags",e[e.ContextFlags=101441536]="ContextFlags",e[e.TypeExcludesFlags=81920]="TypeExcludesFlags",e[e.PermanentlySetIncrementalFlags=12582912]="PermanentlySetIncrementalFlags",e[e.IdentifierHasExtendedUnicodeEscape=256]="IdentifierHasExtendedUnicodeEscape",e[e.IdentifierIsInJSDocNamespace=4096]="IdentifierIsInJSDocNamespace",e))(X||{}),Y=(e=>(e[e.None=0]="None",e[e.Public=1]="Public",e[e.Private=2]="Private",e[e.Protected=4]="Protected",e[e.Readonly=8]="Readonly",e[e.Override=16]="Override",e[e.Export=32]="Export",e[e.Abstract=64]="Abstract",e[e.Ambient=128]="Ambient",e[e.Static=256]="Static",e[e.Accessor=512]="Accessor",e[e.Async=1024]="Async",e[e.Default=2048]="Default",e[e.Const=4096]="Const",e[e.In=8192]="In",e[e.Out=16384]="Out",e[e.Decorator=32768]="Decorator",e[e.Deprecated=65536]="Deprecated",e[e.JSDocPublic=8388608]="JSDocPublic",e[e.JSDocPrivate=16777216]="JSDocPrivate",e[e.JSDocProtected=33554432]="JSDocProtected",e[e.JSDocReadonly=67108864]="JSDocReadonly",e[e.JSDocOverride=134217728]="JSDocOverride",e[e.SyntacticOrJSDocModifiers=31]="SyntacticOrJSDocModifiers",e[e.SyntacticOnlyModifiers=65504]="SyntacticOnlyModifiers",e[e.SyntacticModifiers=65535]="SyntacticModifiers",e[e.JSDocCacheOnlyModifiers=260046848]="JSDocCacheOnlyModifiers",e[e.JSDocOnlyModifiers=65536]="JSDocOnlyModifiers",e[e.NonCacheOnlyModifiers=131071]="NonCacheOnlyModifiers",e[e.HasComputedJSDocModifiers=268435456]="HasComputedJSDocModifiers",e[e.HasComputedFlags=536870912]="HasComputedFlags",e[e.AccessibilityModifier=7]="AccessibilityModifier",e[e.ParameterPropertyModifier=31]="ParameterPropertyModifier",e[e.NonPublicAccessibilityModifier=6]="NonPublicAccessibilityModifier",e[e.TypeScriptModifier=28895]="TypeScriptModifier",e[e.ExportDefault=2080]="ExportDefault",e[e.All=131071]="All",e[e.Modifier=98303]="Modifier",e))(Y||{}),Z=(e=>(e[e.None=0]="None",e[e.IntrinsicNamedElement=1]="IntrinsicNamedElement",e[e.IntrinsicIndexedElement=2]="IntrinsicIndexedElement",e[e.IntrinsicElement=3]="IntrinsicElement",e))(Z||{}),ee=(e=>(e[e.None=0]="None",e[e.Succeeded=1]="Succeeded",e[e.Failed=2]="Failed",e[e.ReportsUnmeasurable=8]="ReportsUnmeasurable",e[e.ReportsUnreliable=16]="ReportsUnreliable",e[e.ReportsMask=24]="ReportsMask",e[e.ComplexityOverflow=32]="ComplexityOverflow",e[e.StackDepthOverflow=64]="StackDepthOverflow",e[e.Overflow=96]="Overflow",e))(ee||{}),te=(e=>(e[e.None=0]="None",e[e.Always=1]="Always",e[e.Never=2]="Never",e[e.Sometimes=3]="Sometimes",e))(te||{}),ne=(e=>(e[e.None=0]="None",e[e.Auto=1]="Auto",e[e.Loop=2]="Loop",e[e.Unique=3]="Unique",e[e.Node=4]="Node",e[e.KindMask=7]="KindMask",e[e.ReservedInNestedScopes=8]="ReservedInNestedScopes",e[e.Optimistic=16]="Optimistic",e[e.FileLevel=32]="FileLevel",e[e.AllowNameSubstitution=64]="AllowNameSubstitution",e))(ne||{}),re=(e=>(e[e.None=0]="None",e[e.HasIndices=1]="HasIndices",e[e.Global=2]="Global",e[e.IgnoreCase=4]="IgnoreCase",e[e.Multiline=8]="Multiline",e[e.DotAll=16]="DotAll",e[e.Unicode=32]="Unicode",e[e.UnicodeSets=64]="UnicodeSets",e[e.Sticky=128]="Sticky",e[e.AnyUnicodeMode=96]="AnyUnicodeMode",e[e.Modifiers=28]="Modifiers",e))(re||{}),ie=(e=>(e[e.None=0]="None",e[e.PrecedingLineBreak=1]="PrecedingLineBreak",e[e.PrecedingJSDocComment=2]="PrecedingJSDocComment",e[e.Unterminated=4]="Unterminated",e[e.ExtendedUnicodeEscape=8]="ExtendedUnicodeEscape",e[e.Scientific=16]="Scientific",e[e.Octal=32]="Octal",e[e.HexSpecifier=64]="HexSpecifier",e[e.BinarySpecifier=128]="BinarySpecifier",e[e.OctalSpecifier=256]="OctalSpecifier",e[e.ContainsSeparator=512]="ContainsSeparator",e[e.UnicodeEscape=1024]="UnicodeEscape",e[e.ContainsInvalidEscape=2048]="ContainsInvalidEscape",e[e.HexEscape=4096]="HexEscape",e[e.ContainsLeadingZero=8192]="ContainsLeadingZero",e[e.ContainsInvalidSeparator=16384]="ContainsInvalidSeparator",e[e.PrecedingJSDocLeadingAsterisks=32768]="PrecedingJSDocLeadingAsterisks",e[e.BinaryOrOctalSpecifier=384]="BinaryOrOctalSpecifier",e[e.WithSpecifier=448]="WithSpecifier",e[e.StringLiteralFlags=7176]="StringLiteralFlags",e[e.NumericLiteralFlags=25584]="NumericLiteralFlags",e[e.TemplateLiteralLikeFlags=7176]="TemplateLiteralLikeFlags",e[e.IsInvalid=26656]="IsInvalid",e))(ie||{}),oe=(e=>(e[e.Unreachable=1]="Unreachable",e[e.Start=2]="Start",e[e.BranchLabel=4]="BranchLabel",e[e.LoopLabel=8]="LoopLabel",e[e.Assignment=16]="Assignment",e[e.TrueCondition=32]="TrueCondition",e[e.FalseCondition=64]="FalseCondition",e[e.SwitchClause=128]="SwitchClause",e[e.ArrayMutation=256]="ArrayMutation",e[e.Call=512]="Call",e[e.ReduceLabel=1024]="ReduceLabel",e[e.Referenced=2048]="Referenced",e[e.Shared=4096]="Shared",e[e.Label=12]="Label",e[e.Condition=96]="Condition",e))(oe||{}),ae=(e=>(e[e.ExpectError=0]="ExpectError",e[e.Ignore=1]="Ignore",e))(ae||{}),se=class{},ce=(e=>(e[e.RootFile=0]="RootFile",e[e.SourceFromProjectReference=1]="SourceFromProjectReference",e[e.OutputFromProjectReference=2]="OutputFromProjectReference",e[e.Import=3]="Import",e[e.ReferenceFile=4]="ReferenceFile",e[e.TypeReferenceDirective=5]="TypeReferenceDirective",e[e.LibFile=6]="LibFile",e[e.LibReferenceDirective=7]="LibReferenceDirective",e[e.AutomaticTypeDirectiveFile=8]="AutomaticTypeDirectiveFile",e))(ce||{}),le=(e=>(e[e.FilePreprocessingLibReferenceDiagnostic=0]="FilePreprocessingLibReferenceDiagnostic",e[e.FilePreprocessingFileExplainingDiagnostic=1]="FilePreprocessingFileExplainingDiagnostic",e[e.ResolutionDiagnostics=2]="ResolutionDiagnostics",e))(le||{}),de=(e=>(e[e.Js=0]="Js",e[e.Dts=1]="Dts",e[e.BuilderSignature=2]="BuilderSignature",e))(de||{}),pe=(e=>(e[e.Not=0]="Not",e[e.SafeModules=1]="SafeModules",e[e.Completely=2]="Completely",e))(pe||{}),ue=(e=>(e[e.Success=0]="Success",e[e.DiagnosticsPresent_OutputsSkipped=1]="DiagnosticsPresent_OutputsSkipped",e[e.DiagnosticsPresent_OutputsGenerated=2]="DiagnosticsPresent_OutputsGenerated",e[e.InvalidProject_OutputsSkipped=3]="InvalidProject_OutputsSkipped",e[e.ProjectReferenceCycle_OutputsSkipped=4]="ProjectReferenceCycle_OutputsSkipped",e))(ue||{}),me=(e=>(e[e.Ok=0]="Ok",e[e.NeedsOverride=1]="NeedsOverride",e[e.HasInvalidOverride=2]="HasInvalidOverride",e))(me||{}),_e=(e=>(e[e.None=0]="None",e[e.Literal=1]="Literal",e[e.Subtype=2]="Subtype",e))(_e||{}),fe=(e=>(e[e.None=0]="None",e[e.NoSupertypeReduction=1]="NoSupertypeReduction",e[e.NoConstraintReduction=2]="NoConstraintReduction",e))(fe||{}),ge=(e=>(e[e.None=0]="None",e[e.Signature=1]="Signature",e[e.NoConstraints=2]="NoConstraints",e[e.Completions=4]="Completions",e[e.SkipBindingPatterns=8]="SkipBindingPatterns",e))(ge||{}),ye=(e=>(e[e.None=0]="None",e[e.NoTruncation=1]="NoTruncation",e[e.WriteArrayAsGenericType=2]="WriteArrayAsGenericType",e[e.GenerateNamesForShadowedTypeParams=4]="GenerateNamesForShadowedTypeParams",e[e.UseStructuralFallback=8]="UseStructuralFallback",e[e.ForbidIndexedAccessSymbolReferences=16]="ForbidIndexedAccessSymbolReferences",e[e.WriteTypeArgumentsOfSignature=32]="WriteTypeArgumentsOfSignature",e[e.UseFullyQualifiedType=64]="UseFullyQualifiedType",e[e.UseOnlyExternalAliasing=128]="UseOnlyExternalAliasing",e[e.SuppressAnyReturnType=256]="SuppressAnyReturnType",e[e.WriteTypeParametersInQualifiedName=512]="WriteTypeParametersInQualifiedName",e[e.MultilineObjectLiterals=1024]="MultilineObjectLiterals",e[e.WriteClassExpressionAsTypeLiteral=2048]="WriteClassExpressionAsTypeLiteral",e[e.UseTypeOfFunction=4096]="UseTypeOfFunction",e[e.OmitParameterModifiers=8192]="OmitParameterModifiers",e[e.UseAliasDefinedOutsideCurrentScope=16384]="UseAliasDefinedOutsideCurrentScope",e[e.UseSingleQuotesForStringLiteralType=268435456]="UseSingleQuotesForStringLiteralType",e[e.NoTypeReduction=536870912]="NoTypeReduction",e[e.OmitThisParameter=33554432]="OmitThisParameter",e[e.AllowThisInObjectLiteral=32768]="AllowThisInObjectLiteral",e[e.AllowQualifiedNameInPlaceOfIdentifier=65536]="AllowQualifiedNameInPlaceOfIdentifier",e[e.AllowAnonymousIdentifier=131072]="AllowAnonymousIdentifier",e[e.AllowEmptyUnionOrIntersection=262144]="AllowEmptyUnionOrIntersection",e[e.AllowEmptyTuple=524288]="AllowEmptyTuple",e[e.AllowUniqueESSymbolType=1048576]="AllowUniqueESSymbolType",e[e.AllowEmptyIndexInfoType=2097152]="AllowEmptyIndexInfoType",e[e.AllowNodeModulesRelativePaths=67108864]="AllowNodeModulesRelativePaths",e[e.IgnoreErrors=70221824]="IgnoreErrors",e[e.InObjectTypeLiteral=4194304]="InObjectTypeLiteral",e[e.InTypeAlias=8388608]="InTypeAlias",e[e.InInitialEntityName=16777216]="InInitialEntityName",e))(ye||{}),he=(e=>(e[e.None=0]="None",e[e.WriteComputedProps=1]="WriteComputedProps",e[e.NoSyntacticPrinter=2]="NoSyntacticPrinter",e[e.DoNotIncludeSymbolChain=4]="DoNotIncludeSymbolChain",e[e.AllowUnresolvedNames=8]="AllowUnresolvedNames",e))(he||{}),Te=(e=>(e[e.None=0]="None",e[e.NoTruncation=1]="NoTruncation",e[e.WriteArrayAsGenericType=2]="WriteArrayAsGenericType",e[e.GenerateNamesForShadowedTypeParams=4]="GenerateNamesForShadowedTypeParams",e[e.UseStructuralFallback=8]="UseStructuralFallback",e[e.WriteTypeArgumentsOfSignature=32]="WriteTypeArgumentsOfSignature",e[e.UseFullyQualifiedType=64]="UseFullyQualifiedType",e[e.SuppressAnyReturnType=256]="SuppressAnyReturnType",e[e.MultilineObjectLiterals=1024]="MultilineObjectLiterals",e[e.WriteClassExpressionAsTypeLiteral=2048]="WriteClassExpressionAsTypeLiteral",e[e.UseTypeOfFunction=4096]="UseTypeOfFunction",e[e.OmitParameterModifiers=8192]="OmitParameterModifiers",e[e.UseAliasDefinedOutsideCurrentScope=16384]="UseAliasDefinedOutsideCurrentScope",e[e.UseSingleQuotesForStringLiteralType=268435456]="UseSingleQuotesForStringLiteralType",e[e.NoTypeReduction=536870912]="NoTypeReduction",e[e.OmitThisParameter=33554432]="OmitThisParameter",e[e.AllowUniqueESSymbolType=1048576]="AllowUniqueESSymbolType",e[e.AddUndefined=131072]="AddUndefined",e[e.WriteArrowStyleSignature=262144]="WriteArrowStyleSignature",e[e.InArrayType=524288]="InArrayType",e[e.InElementType=2097152]="InElementType",e[e.InFirstTypeArgument=4194304]="InFirstTypeArgument",e[e.InTypeAlias=8388608]="InTypeAlias",e[e.NodeBuilderFlagsMask=848330095]="NodeBuilderFlagsMask",e))(Te||{}),Se=(e=>(e[e.None=0]="None",e[e.WriteTypeParametersOrArguments=1]="WriteTypeParametersOrArguments",e[e.UseOnlyExternalAliasing=2]="UseOnlyExternalAliasing",e[e.AllowAnyNodeKind=4]="AllowAnyNodeKind",e[e.UseAliasDefinedOutsideCurrentScope=8]="UseAliasDefinedOutsideCurrentScope",e[e.WriteComputedProps=16]="WriteComputedProps",e[e.DoNotIncludeSymbolChain=32]="DoNotIncludeSymbolChain",e))(Se||{}),xe=(e=>(e[e.Accessible=0]="Accessible",e[e.NotAccessible=1]="NotAccessible",e[e.CannotBeNamed=2]="CannotBeNamed",e[e.NotResolved=3]="NotResolved",e))(xe||{}),ve=(e=>(e[e.This=0]="This",e[e.Identifier=1]="Identifier",e[e.AssertsThis=2]="AssertsThis",e[e.AssertsIdentifier=3]="AssertsIdentifier",e))(ve||{}),be=(e=>(e[e.Unknown=0]="Unknown",e[e.TypeWithConstructSignatureAndValue=1]="TypeWithConstructSignatureAndValue",e[e.VoidNullableOrNeverType=2]="VoidNullableOrNeverType",e[e.NumberLikeType=3]="NumberLikeType",e[e.BigIntLikeType=4]="BigIntLikeType",e[e.StringLikeType=5]="StringLikeType",e[e.BooleanType=6]="BooleanType",e[e.ArrayLikeType=7]="ArrayLikeType",e[e.ESSymbolType=8]="ESSymbolType",e[e.Promise=9]="Promise",e[e.TypeWithCallSignature=10]="TypeWithCallSignature",e[e.ObjectType=11]="ObjectType",e))(be||{}),Ce=(e=>(e[e.None=0]="None",e[e.FunctionScopedVariable=1]="FunctionScopedVariable",e[e.BlockScopedVariable=2]="BlockScopedVariable",e[e.Property=4]="Property",e[e.EnumMember=8]="EnumMember",e[e.Function=16]="Function",e[e.Class=32]="Class",e[e.Interface=64]="Interface",e[e.ConstEnum=128]="ConstEnum",e[e.RegularEnum=256]="RegularEnum",e[e.ValueModule=512]="ValueModule",e[e.NamespaceModule=1024]="NamespaceModule",e[e.TypeLiteral=2048]="TypeLiteral",e[e.ObjectLiteral=4096]="ObjectLiteral",e[e.Method=8192]="Method",e[e.Constructor=16384]="Constructor",e[e.GetAccessor=32768]="GetAccessor",e[e.SetAccessor=65536]="SetAccessor",e[e.Signature=131072]="Signature",e[e.TypeParameter=262144]="TypeParameter",e[e.TypeAlias=524288]="TypeAlias",e[e.ExportValue=1048576]="ExportValue",e[e.Alias=2097152]="Alias",e[e.Prototype=4194304]="Prototype",e[e.ExportStar=8388608]="ExportStar",e[e.Optional=16777216]="Optional",e[e.Transient=33554432]="Transient",e[e.Assignment=67108864]="Assignment",e[e.ModuleExports=134217728]="ModuleExports",e[e.All=-1]="All",e[e.Enum=384]="Enum",e[e.Variable=3]="Variable",e[e.Value=111551]="Value",e[e.Type=788968]="Type",e[e.Namespace=1920]="Namespace",e[e.Module=1536]="Module",e[e.Accessor=98304]="Accessor",e[e.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",e[e.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",e[e.ParameterExcludes=111551]="ParameterExcludes",e[e.PropertyExcludes=0]="PropertyExcludes",e[e.EnumMemberExcludes=900095]="EnumMemberExcludes",e[e.FunctionExcludes=110991]="FunctionExcludes",e[e.ClassExcludes=899503]="ClassExcludes",e[e.InterfaceExcludes=788872]="InterfaceExcludes",e[e.RegularEnumExcludes=899327]="RegularEnumExcludes",e[e.ConstEnumExcludes=899967]="ConstEnumExcludes",e[e.ValueModuleExcludes=110735]="ValueModuleExcludes",e[e.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",e[e.MethodExcludes=103359]="MethodExcludes",e[e.GetAccessorExcludes=46015]="GetAccessorExcludes",e[e.SetAccessorExcludes=78783]="SetAccessorExcludes",e[e.AccessorExcludes=13247]="AccessorExcludes",e[e.TypeParameterExcludes=526824]="TypeParameterExcludes",e[e.TypeAliasExcludes=788968]="TypeAliasExcludes",e[e.AliasExcludes=2097152]="AliasExcludes",e[e.ModuleMember=2623475]="ModuleMember",e[e.ExportHasLocal=944]="ExportHasLocal",e[e.BlockScoped=418]="BlockScoped",e[e.PropertyOrAccessor=98308]="PropertyOrAccessor",e[e.ClassMember=106500]="ClassMember",e[e.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",e[e.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",e[e.Classifiable=2885600]="Classifiable",e[e.LateBindingContainer=6256]="LateBindingContainer",e))(Ce||{}),Ee=(e=>(e[e.None=0]="None",e[e.Instantiated=1]="Instantiated",e[e.SyntheticProperty=2]="SyntheticProperty",e[e.SyntheticMethod=4]="SyntheticMethod",e[e.Readonly=8]="Readonly",e[e.ReadPartial=16]="ReadPartial",e[e.WritePartial=32]="WritePartial",e[e.HasNonUniformType=64]="HasNonUniformType",e[e.HasLiteralType=128]="HasLiteralType",e[e.ContainsPublic=256]="ContainsPublic",e[e.ContainsProtected=512]="ContainsProtected",e[e.ContainsPrivate=1024]="ContainsPrivate",e[e.ContainsStatic=2048]="ContainsStatic",e[e.Late=4096]="Late",e[e.ReverseMapped=8192]="ReverseMapped",e[e.OptionalParameter=16384]="OptionalParameter",e[e.RestParameter=32768]="RestParameter",e[e.DeferredType=65536]="DeferredType",e[e.HasNeverType=131072]="HasNeverType",e[e.Mapped=262144]="Mapped",e[e.StripOptional=524288]="StripOptional",e[e.Unresolved=1048576]="Unresolved",e[e.Synthetic=6]="Synthetic",e[e.Discriminant=192]="Discriminant",e[e.Partial=48]="Partial",e))(Ee||{}),Ne=(e=>(e.Call="__call",e.Constructor="__constructor",e.New="__new",e.Index="__index",e.ExportStar="__export",e.Global="__global",e.Missing="__missing",e.Type="__type",e.Object="__object",e.JSXAttributes="__jsxAttributes",e.Class="__class",e.Function="__function",e.Computed="__computed",e.Resolving="__resolving__",e.ExportEquals="export=",e.Default="default",e.This="this",e.InstantiationExpression="__instantiationExpression",e.ImportAttributes="__importAttributes",e))(Ne||{}),ke=(e=>(e[e.None=0]="None",e[e.TypeChecked=1]="TypeChecked",e[e.LexicalThis=2]="LexicalThis",e[e.CaptureThis=4]="CaptureThis",e[e.CaptureNewTarget=8]="CaptureNewTarget",e[e.SuperInstance=16]="SuperInstance",e[e.SuperStatic=32]="SuperStatic",e[e.ContextChecked=64]="ContextChecked",e[e.MethodWithSuperPropertyAccessInAsync=128]="MethodWithSuperPropertyAccessInAsync",e[e.MethodWithSuperPropertyAssignmentInAsync=256]="MethodWithSuperPropertyAssignmentInAsync",e[e.CaptureArguments=512]="CaptureArguments",e[e.EnumValuesComputed=1024]="EnumValuesComputed",e[e.LexicalModuleMergesWithClass=2048]="LexicalModuleMergesWithClass",e[e.LoopWithCapturedBlockScopedBinding=4096]="LoopWithCapturedBlockScopedBinding",e[e.ContainsCapturedBlockScopeBinding=8192]="ContainsCapturedBlockScopeBinding",e[e.CapturedBlockScopedBinding=16384]="CapturedBlockScopedBinding",e[e.BlockScopedBindingInLoop=32768]="BlockScopedBindingInLoop",e[e.NeedsLoopOutParameter=65536]="NeedsLoopOutParameter",e[e.AssignmentsMarked=131072]="AssignmentsMarked",e[e.ContainsConstructorReference=262144]="ContainsConstructorReference",e[e.ConstructorReference=536870912]="ConstructorReference",e[e.ContainsClassWithPrivateIdentifiers=1048576]="ContainsClassWithPrivateIdentifiers",e[e.ContainsSuperPropertyInStaticInitializer=2097152]="ContainsSuperPropertyInStaticInitializer",e[e.InCheckIdentifier=4194304]="InCheckIdentifier",e[e.PartiallyTypeChecked=8388608]="PartiallyTypeChecked",e[e.LazyFlags=539358128]="LazyFlags",e))(ke||{}),Fe=(e=>(e[e.Any=1]="Any",e[e.Unknown=2]="Unknown",e[e.String=4]="String",e[e.Number=8]="Number",e[e.Boolean=16]="Boolean",e[e.Enum=32]="Enum",e[e.BigInt=64]="BigInt",e[e.StringLiteral=128]="StringLiteral",e[e.NumberLiteral=256]="NumberLiteral",e[e.BooleanLiteral=512]="BooleanLiteral",e[e.EnumLiteral=1024]="EnumLiteral",e[e.BigIntLiteral=2048]="BigIntLiteral",e[e.ESSymbol=4096]="ESSymbol",e[e.UniqueESSymbol=8192]="UniqueESSymbol",e[e.Void=16384]="Void",e[e.Undefined=32768]="Undefined",e[e.Null=65536]="Null",e[e.Never=131072]="Never",e[e.TypeParameter=262144]="TypeParameter",e[e.Object=524288]="Object",e[e.Union=1048576]="Union",e[e.Intersection=2097152]="Intersection",e[e.Index=4194304]="Index",e[e.IndexedAccess=8388608]="IndexedAccess",e[e.Conditional=16777216]="Conditional",e[e.Substitution=33554432]="Substitution",e[e.NonPrimitive=67108864]="NonPrimitive",e[e.TemplateLiteral=134217728]="TemplateLiteral",e[e.StringMapping=268435456]="StringMapping",e[e.Reserved1=536870912]="Reserved1",e[e.Reserved2=1073741824]="Reserved2",e[e.AnyOrUnknown=3]="AnyOrUnknown",e[e.Nullable=98304]="Nullable",e[e.Literal=2944]="Literal",e[e.Unit=109472]="Unit",e[e.Freshable=2976]="Freshable",e[e.StringOrNumberLiteral=384]="StringOrNumberLiteral",e[e.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",e[e.DefinitelyFalsy=117632]="DefinitelyFalsy",e[e.PossiblyFalsy=117724]="PossiblyFalsy",e[e.Intrinsic=67359327]="Intrinsic",e[e.StringLike=402653316]="StringLike",e[e.NumberLike=296]="NumberLike",e[e.BigIntLike=2112]="BigIntLike",e[e.BooleanLike=528]="BooleanLike",e[e.EnumLike=1056]="EnumLike",e[e.ESSymbolLike=12288]="ESSymbolLike",e[e.VoidLike=49152]="VoidLike",e[e.Primitive=402784252]="Primitive",e[e.DefinitelyNonNullable=470302716]="DefinitelyNonNullable",e[e.DisjointDomains=469892092]="DisjointDomains",e[e.UnionOrIntersection=3145728]="UnionOrIntersection",e[e.StructuredType=3670016]="StructuredType",e[e.TypeVariable=8650752]="TypeVariable",e[e.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",e[e.InstantiablePrimitive=406847488]="InstantiablePrimitive",e[e.Instantiable=465829888]="Instantiable",e[e.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",e[e.ObjectFlagsType=3899393]="ObjectFlagsType",e[e.Simplifiable=25165824]="Simplifiable",e[e.Singleton=67358815]="Singleton",e[e.Narrowable=536624127]="Narrowable",e[e.IncludesMask=473694207]="IncludesMask",e[e.IncludesMissingType=262144]="IncludesMissingType",e[e.IncludesNonWideningType=4194304]="IncludesNonWideningType",e[e.IncludesWildcard=8388608]="IncludesWildcard",e[e.IncludesEmptyObject=16777216]="IncludesEmptyObject",e[e.IncludesInstantiable=33554432]="IncludesInstantiable",e[e.IncludesConstrainedTypeVariable=536870912]="IncludesConstrainedTypeVariable",e[e.IncludesError=1073741824]="IncludesError",e[e.NotPrimitiveUnion=36323331]="NotPrimitiveUnion",e))(Fe||{}),Pe=(e=>(e[e.None=0]="None",e[e.Class=1]="Class",e[e.Interface=2]="Interface",e[e.Reference=4]="Reference",e[e.Tuple=8]="Tuple",e[e.Anonymous=16]="Anonymous",e[e.Mapped=32]="Mapped",e[e.Instantiated=64]="Instantiated",e[e.ObjectLiteral=128]="ObjectLiteral",e[e.EvolvingArray=256]="EvolvingArray",e[e.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",e[e.ReverseMapped=1024]="ReverseMapped",e[e.JsxAttributes=2048]="JsxAttributes",e[e.JSLiteral=4096]="JSLiteral",e[e.FreshLiteral=8192]="FreshLiteral",e[e.ArrayLiteral=16384]="ArrayLiteral",e[e.PrimitiveUnion=32768]="PrimitiveUnion",e[e.ContainsWideningType=65536]="ContainsWideningType",e[e.ContainsObjectOrArrayLiteral=131072]="ContainsObjectOrArrayLiteral",e[e.NonInferrableType=262144]="NonInferrableType",e[e.CouldContainTypeVariablesComputed=524288]="CouldContainTypeVariablesComputed",e[e.CouldContainTypeVariables=1048576]="CouldContainTypeVariables",e[e.SingleSignatureType=134217728]="SingleSignatureType",e[e.ClassOrInterface=3]="ClassOrInterface",e[e.RequiresWidening=196608]="RequiresWidening",e[e.PropagatingFlags=458752]="PropagatingFlags",e[e.InstantiatedMapped=96]="InstantiatedMapped",e[e.ObjectTypeKindMask=1343]="ObjectTypeKindMask",e[e.ContainsSpread=2097152]="ContainsSpread",e[e.ObjectRestType=4194304]="ObjectRestType",e[e.InstantiationExpressionType=8388608]="InstantiationExpressionType",e[e.IsClassInstanceClone=16777216]="IsClassInstanceClone",e[e.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",e[e.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",e[e.IsGenericTypeComputed=2097152]="IsGenericTypeComputed",e[e.IsGenericObjectType=4194304]="IsGenericObjectType",e[e.IsGenericIndexType=8388608]="IsGenericIndexType",e[e.IsGenericType=12582912]="IsGenericType",e[e.ContainsIntersections=16777216]="ContainsIntersections",e[e.IsUnknownLikeUnionComputed=33554432]="IsUnknownLikeUnionComputed",e[e.IsUnknownLikeUnion=67108864]="IsUnknownLikeUnion",e[e.IsNeverIntersectionComputed=16777216]="IsNeverIntersectionComputed",e[e.IsNeverIntersection=33554432]="IsNeverIntersection",e[e.IsConstrainedTypeVariable=67108864]="IsConstrainedTypeVariable",e))(Pe||{}),De=(e=>(e[e.Invariant=0]="Invariant",e[e.Covariant=1]="Covariant",e[e.Contravariant=2]="Contravariant",e[e.Bivariant=3]="Bivariant",e[e.Independent=4]="Independent",e[e.VarianceMask=7]="VarianceMask",e[e.Unmeasurable=8]="Unmeasurable",e[e.Unreliable=16]="Unreliable",e[e.AllowsStructuralFallback=24]="AllowsStructuralFallback",e))(De||{}),Ie=(e=>(e[e.Required=1]="Required",e[e.Optional=2]="Optional",e[e.Rest=4]="Rest",e[e.Variadic=8]="Variadic",e[e.Fixed=3]="Fixed",e[e.Variable=12]="Variable",e[e.NonRequired=14]="NonRequired",e[e.NonRest=11]="NonRest",e))(Ie||{}),Ae=(e=>(e[e.None=0]="None",e[e.IncludeUndefined=1]="IncludeUndefined",e[e.NoIndexSignatures=2]="NoIndexSignatures",e[e.Writing=4]="Writing",e[e.CacheSymbol=8]="CacheSymbol",e[e.AllowMissing=16]="AllowMissing",e[e.ExpressionPosition=32]="ExpressionPosition",e[e.ReportDeprecated=64]="ReportDeprecated",e[e.SuppressNoImplicitAnyError=128]="SuppressNoImplicitAnyError",e[e.Contextual=256]="Contextual",e[e.Persistent=1]="Persistent",e))(Ae||{}),Oe=(e=>(e[e.None=0]="None",e[e.StringsOnly=1]="StringsOnly",e[e.NoIndexSignatures=2]="NoIndexSignatures",e[e.NoReducibleCheck=4]="NoReducibleCheck",e))(Oe||{}),we=(e=>(e[e.Component=0]="Component",e[e.Function=1]="Function",e[e.Mixed=2]="Mixed",e))(we||{}),Le=(e=>(e[e.Call=0]="Call",e[e.Construct=1]="Construct",e))(Le||{}),Me=(e=>(e[e.None=0]="None",e[e.HasRestParameter=1]="HasRestParameter",e[e.HasLiteralTypes=2]="HasLiteralTypes",e[e.Abstract=4]="Abstract",e[e.IsInnerCallChain=8]="IsInnerCallChain",e[e.IsOuterCallChain=16]="IsOuterCallChain",e[e.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",e[e.IsNonInferrable=64]="IsNonInferrable",e[e.IsSignatureCandidateForOverloadFailure=128]="IsSignatureCandidateForOverloadFailure",e[e.PropagatingFlags=167]="PropagatingFlags",e[e.CallChainFlags=24]="CallChainFlags",e))(Me||{}),Re=(e=>(e[e.String=0]="String",e[e.Number=1]="Number",e))(Re||{}),Be=(e=>(e[e.Simple=0]="Simple",e[e.Array=1]="Array",e[e.Deferred=2]="Deferred",e[e.Function=3]="Function",e[e.Composite=4]="Composite",e[e.Merged=5]="Merged",e))(Be||{}),je=(e=>(e[e.None=0]="None",e[e.NakedTypeVariable=1]="NakedTypeVariable",e[e.SpeculativeTuple=2]="SpeculativeTuple",e[e.SubstituteSource=4]="SubstituteSource",e[e.HomomorphicMappedType=8]="HomomorphicMappedType",e[e.PartialHomomorphicMappedType=16]="PartialHomomorphicMappedType",e[e.MappedTypeConstraint=32]="MappedTypeConstraint",e[e.ContravariantConditional=64]="ContravariantConditional",e[e.ReturnType=128]="ReturnType",e[e.LiteralKeyof=256]="LiteralKeyof",e[e.NoConstraints=512]="NoConstraints",e[e.AlwaysStrict=1024]="AlwaysStrict",e[e.MaxValue=2048]="MaxValue",e[e.PriorityImpliesCombination=416]="PriorityImpliesCombination",e[e.Circularity=-1]="Circularity",e))(je||{}),Je=(e=>(e[e.None=0]="None",e[e.NoDefault=1]="NoDefault",e[e.AnyDefault=2]="AnyDefault",e[e.SkippedGenericFunction=4]="SkippedGenericFunction",e))(Je||{}),We=(e=>(e[e.False=0]="False",e[e.Unknown=1]="Unknown",e[e.Maybe=3]="Maybe",e[e.True=-1]="True",e))(We||{}),Ue=(e=>(e[e.None=0]="None",e[e.ExportsProperty=1]="ExportsProperty",e[e.ModuleExports=2]="ModuleExports",e[e.PrototypeProperty=3]="PrototypeProperty",e[e.ThisProperty=4]="ThisProperty",e[e.Property=5]="Property",e[e.Prototype=6]="Prototype",e[e.ObjectDefinePropertyValue=7]="ObjectDefinePropertyValue",e[e.ObjectDefinePropertyExports=8]="ObjectDefinePropertyExports",e[e.ObjectDefinePrototypeProperty=9]="ObjectDefinePrototypeProperty",e))(Ue||{}),ze=(e=>(e[e.Warning=0]="Warning",e[e.Error=1]="Error",e[e.Suggestion=2]="Suggestion",e[e.Message=3]="Message",e))(ze||{});function diagnosticCategoryName(e,t=!0){const n=ze[e.category];return t?n.toLowerCase():n}var Ve=(e=>(e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs",e[e.Node10=2]="Node10",e[e.Node16=3]="Node16",e[e.NodeNext=99]="NodeNext",e[e.Bundler=100]="Bundler",e))(Ve||{}),qe=(e=>(e[e.Legacy=1]="Legacy",e[e.Auto=2]="Auto",e[e.Force=3]="Force",e))(qe||{}),He=(e=>(e[e.FixedPollingInterval=0]="FixedPollingInterval",e[e.PriorityPollingInterval=1]="PriorityPollingInterval",e[e.DynamicPriorityPolling=2]="DynamicPriorityPolling",e[e.FixedChunkSizePolling=3]="FixedChunkSizePolling",e[e.UseFsEvents=4]="UseFsEvents",e[e.UseFsEventsOnParentDirectory=5]="UseFsEventsOnParentDirectory",e))(He||{}),Ke=(e=>(e[e.UseFsEvents=0]="UseFsEvents",e[e.FixedPollingInterval=1]="FixedPollingInterval",e[e.DynamicPriorityPolling=2]="DynamicPriorityPolling",e[e.FixedChunkSizePolling=3]="FixedChunkSizePolling",e))(Ke||{}),Ge=(e=>(e[e.FixedInterval=0]="FixedInterval",e[e.PriorityInterval=1]="PriorityInterval",e[e.DynamicPriority=2]="DynamicPriority",e[e.FixedChunkSize=3]="FixedChunkSize",e))(Ge||{}),$e=(e=>(e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ES2020=6]="ES2020",e[e.ES2022=7]="ES2022",e[e.ESNext=99]="ESNext",e[e.Node16=100]="Node16",e[e.Node18=101]="Node18",e[e.Node20=102]="Node20",e[e.NodeNext=199]="NodeNext",e[e.Preserve=200]="Preserve",e))($e||{}),Qe=(e=>(e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev",e))(Qe||{}),Xe=(e=>(e[e.Remove=0]="Remove",e[e.Preserve=1]="Preserve",e[e.Error=2]="Error",e))(Xe||{}),Ye=(e=>(e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed",e))(Ye||{}),Ze=(e=>(e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX",e[e.External=5]="External",e[e.JSON=6]="JSON",e[e.Deferred=7]="Deferred",e))(Ze||{}),et=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ES2021=8]="ES2021",e[e.ES2022=9]="ES2022",e[e.ES2023=10]="ES2023",e[e.ES2024=11]="ES2024",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(et||{}),tt=(e=>(e[e.Standard=0]="Standard",e[e.JSX=1]="JSX",e))(tt||{}),nt=(e=>(e[e.None=0]="None",e[e.Recursive=1]="Recursive",e))(nt||{}),rt=(e=>(e[e.EOF=-1]="EOF",e[e.nullCharacter=0]="nullCharacter",e[e.maxAsciiCharacter=127]="maxAsciiCharacter",e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.lineSeparator=8232]="lineSeparator",e[e.paragraphSeparator=8233]="paragraphSeparator",e[e.nextLine=133]="nextLine",e[e.space=32]="space",e[e.nonBreakingSpace=160]="nonBreakingSpace",e[e.enQuad=8192]="enQuad",e[e.emQuad=8193]="emQuad",e[e.enSpace=8194]="enSpace",e[e.emSpace=8195]="emSpace",e[e.threePerEmSpace=8196]="threePerEmSpace",e[e.fourPerEmSpace=8197]="fourPerEmSpace",e[e.sixPerEmSpace=8198]="sixPerEmSpace",e[e.figureSpace=8199]="figureSpace",e[e.punctuationSpace=8200]="punctuationSpace",e[e.thinSpace=8201]="thinSpace",e[e.hairSpace=8202]="hairSpace",e[e.zeroWidthSpace=8203]="zeroWidthSpace",e[e.narrowNoBreakSpace=8239]="narrowNoBreakSpace",e[e.ideographicSpace=12288]="ideographicSpace",e[e.mathematicalSpace=8287]="mathematicalSpace",e[e.ogham=5760]="ogham",e[e.replacementCharacter=65533]="replacementCharacter",e[e._=95]="_",e[e.$=36]="$",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.ampersand=38]="ampersand",e[e.asterisk=42]="asterisk",e[e.at=64]="at",e[e.backslash=92]="backslash",e[e.backtick=96]="backtick",e[e.bar=124]="bar",e[e.caret=94]="caret",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.closeParen=41]="closeParen",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.equals=61]="equals",e[e.exclamation=33]="exclamation",e[e.greaterThan=62]="greaterThan",e[e.hash=35]="hash",e[e.lessThan=60]="lessThan",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.openParen=40]="openParen",e[e.percent=37]="percent",e[e.plus=43]="plus",e[e.question=63]="question",e[e.semicolon=59]="semicolon",e[e.singleQuote=39]="singleQuote",e[e.slash=47]="slash",e[e.tilde=126]="tilde",e[e.backspace=8]="backspace",e[e.formFeed=12]="formFeed",e[e.byteOrderMark=65279]="byteOrderMark",e[e.tab=9]="tab",e[e.verticalTab=11]="verticalTab",e))(rt||{}),it=(e=>(e.Ts=".ts",e.Tsx=".tsx",e.Dts=".d.ts",e.Js=".js",e.Jsx=".jsx",e.Json=".json",e.TsBuildInfo=".tsbuildinfo",e.Mjs=".mjs",e.Mts=".mts",e.Dmts=".d.mts",e.Cjs=".cjs",e.Cts=".cts",e.Dcts=".d.cts",e))(it||{}),ot=(e=>(e[e.None=0]="None",e[e.ContainsTypeScript=1]="ContainsTypeScript",e[e.ContainsJsx=2]="ContainsJsx",e[e.ContainsESNext=4]="ContainsESNext",e[e.ContainsES2022=8]="ContainsES2022",e[e.ContainsES2021=16]="ContainsES2021",e[e.ContainsES2020=32]="ContainsES2020",e[e.ContainsES2019=64]="ContainsES2019",e[e.ContainsES2018=128]="ContainsES2018",e[e.ContainsES2017=256]="ContainsES2017",e[e.ContainsES2016=512]="ContainsES2016",e[e.ContainsES2015=1024]="ContainsES2015",e[e.ContainsGenerator=2048]="ContainsGenerator",e[e.ContainsDestructuringAssignment=4096]="ContainsDestructuringAssignment",e[e.ContainsTypeScriptClassSyntax=8192]="ContainsTypeScriptClassSyntax",e[e.ContainsLexicalThis=16384]="ContainsLexicalThis",e[e.ContainsRestOrSpread=32768]="ContainsRestOrSpread",e[e.ContainsObjectRestOrSpread=65536]="ContainsObjectRestOrSpread",e[e.ContainsComputedPropertyName=131072]="ContainsComputedPropertyName",e[e.ContainsBlockScopedBinding=262144]="ContainsBlockScopedBinding",e[e.ContainsBindingPattern=524288]="ContainsBindingPattern",e[e.ContainsYield=1048576]="ContainsYield",e[e.ContainsAwait=2097152]="ContainsAwait",e[e.ContainsHoistedDeclarationOrCompletion=4194304]="ContainsHoistedDeclarationOrCompletion",e[e.ContainsDynamicImport=8388608]="ContainsDynamicImport",e[e.ContainsClassFields=16777216]="ContainsClassFields",e[e.ContainsDecorators=33554432]="ContainsDecorators",e[e.ContainsPossibleTopLevelAwait=67108864]="ContainsPossibleTopLevelAwait",e[e.ContainsLexicalSuper=134217728]="ContainsLexicalSuper",e[e.ContainsUpdateExpressionForIdentifier=268435456]="ContainsUpdateExpressionForIdentifier",e[e.ContainsPrivateIdentifierInExpression=536870912]="ContainsPrivateIdentifierInExpression",e[e.HasComputedFlags=-2147483648]="HasComputedFlags",e[e.AssertTypeScript=1]="AssertTypeScript",e[e.AssertJsx=2]="AssertJsx",e[e.AssertESNext=4]="AssertESNext",e[e.AssertES2022=8]="AssertES2022",e[e.AssertES2021=16]="AssertES2021",e[e.AssertES2020=32]="AssertES2020",e[e.AssertES2019=64]="AssertES2019",e[e.AssertES2018=128]="AssertES2018",e[e.AssertES2017=256]="AssertES2017",e[e.AssertES2016=512]="AssertES2016",e[e.AssertES2015=1024]="AssertES2015",e[e.AssertGenerator=2048]="AssertGenerator",e[e.AssertDestructuringAssignment=4096]="AssertDestructuringAssignment",e[e.OuterExpressionExcludes=-2147483648]="OuterExpressionExcludes",e[e.PropertyAccessExcludes=-2147483648]="PropertyAccessExcludes",e[e.NodeExcludes=-2147483648]="NodeExcludes",e[e.ArrowFunctionExcludes=-2072174592]="ArrowFunctionExcludes",e[e.FunctionExcludes=-1937940480]="FunctionExcludes",e[e.ConstructorExcludes=-1937948672]="ConstructorExcludes",e[e.MethodOrAccessorExcludes=-2005057536]="MethodOrAccessorExcludes",e[e.PropertyExcludes=-2013249536]="PropertyExcludes",e[e.ClassExcludes=-2147344384]="ClassExcludes",e[e.ModuleExcludes=-1941676032]="ModuleExcludes",e[e.TypeExcludes=-2]="TypeExcludes",e[e.ObjectLiteralExcludes=-2147278848]="ObjectLiteralExcludes",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]="ArrayLiteralOrCallOrNewExcludes",e[e.VariableDeclarationListExcludes=-2146893824]="VariableDeclarationListExcludes",e[e.ParameterExcludes=-2147483648]="ParameterExcludes",e[e.CatchClauseExcludes=-2147418112]="CatchClauseExcludes",e[e.BindingPatternExcludes=-2147450880]="BindingPatternExcludes",e[e.ContainsLexicalThisOrSuper=134234112]="ContainsLexicalThisOrSuper",e[e.PropertyNamePropagatingFlags=134234112]="PropertyNamePropagatingFlags",e))(ot||{}),at=(e=>(e[e.TabStop=0]="TabStop",e[e.Placeholder=1]="Placeholder",e[e.Choice=2]="Choice",e[e.Variable=3]="Variable",e))(at||{}),st=(e=>(e[e.None=0]="None",e[e.SingleLine=1]="SingleLine",e[e.MultiLine=2]="MultiLine",e[e.AdviseOnEmitNode=4]="AdviseOnEmitNode",e[e.NoSubstitution=8]="NoSubstitution",e[e.CapturesThis=16]="CapturesThis",e[e.NoLeadingSourceMap=32]="NoLeadingSourceMap",e[e.NoTrailingSourceMap=64]="NoTrailingSourceMap",e[e.NoSourceMap=96]="NoSourceMap",e[e.NoNestedSourceMaps=128]="NoNestedSourceMaps",e[e.NoTokenLeadingSourceMaps=256]="NoTokenLeadingSourceMaps",e[e.NoTokenTrailingSourceMaps=512]="NoTokenTrailingSourceMaps",e[e.NoTokenSourceMaps=768]="NoTokenSourceMaps",e[e.NoLeadingComments=1024]="NoLeadingComments",e[e.NoTrailingComments=2048]="NoTrailingComments",e[e.NoComments=3072]="NoComments",e[e.NoNestedComments=4096]="NoNestedComments",e[e.HelperName=8192]="HelperName",e[e.ExportName=16384]="ExportName",e[e.LocalName=32768]="LocalName",e[e.InternalName=65536]="InternalName",e[e.Indented=131072]="Indented",e[e.NoIndentation=262144]="NoIndentation",e[e.AsyncFunctionBody=524288]="AsyncFunctionBody",e[e.ReuseTempVariableScope=1048576]="ReuseTempVariableScope",e[e.CustomPrologue=2097152]="CustomPrologue",e[e.NoHoisting=4194304]="NoHoisting",e[e.Iterator=8388608]="Iterator",e[e.NoAsciiEscaping=16777216]="NoAsciiEscaping",e))(st||{}),ct=(e=>(e[e.None=0]="None",e[e.TypeScriptClassWrapper=1]="TypeScriptClassWrapper",e[e.NeverApplyImportHelper=2]="NeverApplyImportHelper",e[e.IgnoreSourceNewlines=4]="IgnoreSourceNewlines",e[e.Immutable=8]="Immutable",e[e.IndirectCall=16]="IndirectCall",e[e.TransformPrivateStaticElements=32]="TransformPrivateStaticElements",e))(ct||{}),lt={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99},dt=(e=>(e[e.Extends=1]="Extends",e[e.Assign=2]="Assign",e[e.Rest=4]="Rest",e[e.Decorate=8]="Decorate",e[e.ESDecorateAndRunInitializers=8]="ESDecorateAndRunInitializers",e[e.Metadata=16]="Metadata",e[e.Param=32]="Param",e[e.Awaiter=64]="Awaiter",e[e.Generator=128]="Generator",e[e.Values=256]="Values",e[e.Read=512]="Read",e[e.SpreadArray=1024]="SpreadArray",e[e.Await=2048]="Await",e[e.AsyncGenerator=4096]="AsyncGenerator",e[e.AsyncDelegator=8192]="AsyncDelegator",e[e.AsyncValues=16384]="AsyncValues",e[e.ExportStar=32768]="ExportStar",e[e.ImportStar=65536]="ImportStar",e[e.ImportDefault=131072]="ImportDefault",e[e.MakeTemplateObject=262144]="MakeTemplateObject",e[e.ClassPrivateFieldGet=524288]="ClassPrivateFieldGet",e[e.ClassPrivateFieldSet=1048576]="ClassPrivateFieldSet",e[e.ClassPrivateFieldIn=2097152]="ClassPrivateFieldIn",e[e.SetFunctionName=4194304]="SetFunctionName",e[e.PropKey=8388608]="PropKey",e[e.AddDisposableResourceAndDisposeResources=16777216]="AddDisposableResourceAndDisposeResources",e[e.RewriteRelativeImportExtension=33554432]="RewriteRelativeImportExtension",e[e.FirstEmitHelper=1]="FirstEmitHelper",e[e.LastEmitHelper=16777216]="LastEmitHelper",e[e.ForOfIncludes=256]="ForOfIncludes",e[e.ForAwaitOfIncludes=16384]="ForAwaitOfIncludes",e[e.AsyncGeneratorIncludes=6144]="AsyncGeneratorIncludes",e[e.AsyncDelegatorIncludes=26624]="AsyncDelegatorIncludes",e[e.SpreadIncludes=1536]="SpreadIncludes",e))(dt||{}),pt=(e=>(e[e.SourceFile=0]="SourceFile",e[e.Expression=1]="Expression",e[e.IdentifierName=2]="IdentifierName",e[e.MappedTypeParameter=3]="MappedTypeParameter",e[e.Unspecified=4]="Unspecified",e[e.EmbeddedStatement=5]="EmbeddedStatement",e[e.JsxAttributeValue=6]="JsxAttributeValue",e[e.ImportTypeNodeAttributes=7]="ImportTypeNodeAttributes",e))(pt||{}),ut=(e=>(e[e.Parentheses=1]="Parentheses",e[e.TypeAssertions=2]="TypeAssertions",e[e.NonNullAssertions=4]="NonNullAssertions",e[e.PartiallyEmittedExpressions=8]="PartiallyEmittedExpressions",e[e.ExpressionsWithTypeArguments=16]="ExpressionsWithTypeArguments",e[e.Satisfies=32]="Satisfies",e[e.Assertions=38]="Assertions",e[e.All=63]="All",e[e.ExcludeJSDocTypeAssertion=-2147483648]="ExcludeJSDocTypeAssertion",e))(ut||{}),mt=(e=>(e[e.None=0]="None",e[e.InParameters=1]="InParameters",e[e.VariablesHoistedInParameters=2]="VariablesHoistedInParameters",e))(mt||{}),_t=(e=>(e[e.None=0]="None",e[e.SingleLine=0]="SingleLine",e[e.MultiLine=1]="MultiLine",e[e.PreserveLines=2]="PreserveLines",e[e.LinesMask=3]="LinesMask",e[e.NotDelimited=0]="NotDelimited",e[e.BarDelimited=4]="BarDelimited",e[e.AmpersandDelimited=8]="AmpersandDelimited",e[e.CommaDelimited=16]="CommaDelimited",e[e.AsteriskDelimited=32]="AsteriskDelimited",e[e.DelimitersMask=60]="DelimitersMask",e[e.AllowTrailingComma=64]="AllowTrailingComma",e[e.Indented=128]="Indented",e[e.SpaceBetweenBraces=256]="SpaceBetweenBraces",e[e.SpaceBetweenSiblings=512]="SpaceBetweenSiblings",e[e.Braces=1024]="Braces",e[e.Parenthesis=2048]="Parenthesis",e[e.AngleBrackets=4096]="AngleBrackets",e[e.SquareBrackets=8192]="SquareBrackets",e[e.BracketsMask=15360]="BracketsMask",e[e.OptionalIfUndefined=16384]="OptionalIfUndefined",e[e.OptionalIfEmpty=32768]="OptionalIfEmpty",e[e.Optional=49152]="Optional",e[e.PreferNewLine=65536]="PreferNewLine",e[e.NoTrailingNewLine=131072]="NoTrailingNewLine",e[e.NoInterveningComments=262144]="NoInterveningComments",e[e.NoSpaceIfEmpty=524288]="NoSpaceIfEmpty",e[e.SingleElement=1048576]="SingleElement",e[e.SpaceAfterList=2097152]="SpaceAfterList",e[e.Modifiers=2359808]="Modifiers",e[e.HeritageClauses=512]="HeritageClauses",e[e.SingleLineTypeLiteralMembers=768]="SingleLineTypeLiteralMembers",e[e.MultiLineTypeLiteralMembers=32897]="MultiLineTypeLiteralMembers",e[e.SingleLineTupleTypeElements=528]="SingleLineTupleTypeElements",e[e.MultiLineTupleTypeElements=657]="MultiLineTupleTypeElements",e[e.UnionTypeConstituents=516]="UnionTypeConstituents",e[e.IntersectionTypeConstituents=520]="IntersectionTypeConstituents",e[e.ObjectBindingPatternElements=525136]="ObjectBindingPatternElements",e[e.ArrayBindingPatternElements=524880]="ArrayBindingPatternElements",e[e.ObjectLiteralExpressionProperties=526226]="ObjectLiteralExpressionProperties",e[e.ImportAttributes=526226]="ImportAttributes",e[e.ImportClauseEntries=526226]="ImportClauseEntries",e[e.ArrayLiteralExpressionElements=8914]="ArrayLiteralExpressionElements",e[e.CommaListElements=528]="CommaListElements",e[e.CallExpressionArguments=2576]="CallExpressionArguments",e[e.NewExpressionArguments=18960]="NewExpressionArguments",e[e.TemplateExpressionSpans=262144]="TemplateExpressionSpans",e[e.SingleLineBlockStatements=768]="SingleLineBlockStatements",e[e.MultiLineBlockStatements=129]="MultiLineBlockStatements",e[e.VariableDeclarationList=528]="VariableDeclarationList",e[e.SingleLineFunctionBodyStatements=768]="SingleLineFunctionBodyStatements",e[e.MultiLineFunctionBodyStatements=1]="MultiLineFunctionBodyStatements",e[e.ClassHeritageClauses=0]="ClassHeritageClauses",e[e.ClassMembers=129]="ClassMembers",e[e.InterfaceMembers=129]="InterfaceMembers",e[e.EnumMembers=145]="EnumMembers",e[e.CaseBlockClauses=129]="CaseBlockClauses",e[e.NamedImportsOrExportsElements=525136]="NamedImportsOrExportsElements",e[e.JsxElementOrFragmentChildren=262144]="JsxElementOrFragmentChildren",e[e.JsxElementAttributes=262656]="JsxElementAttributes",e[e.CaseOrDefaultClauseStatements=163969]="CaseOrDefaultClauseStatements",e[e.HeritageClauseTypes=528]="HeritageClauseTypes",e[e.SourceFileStatements=131073]="SourceFileStatements",e[e.Decorators=2146305]="Decorators",e[e.TypeArguments=53776]="TypeArguments",e[e.TypeParameters=53776]="TypeParameters",e[e.Parameters=2576]="Parameters",e[e.IndexSignatureParameters=8848]="IndexSignatureParameters",e[e.JSDocComment=33]="JSDocComment",e))(_t||{}),ft=(e=>(e[e.None=0]="None",e[e.TripleSlashXML=1]="TripleSlashXML",e[e.SingleLine=2]="SingleLine",e[e.MultiLine=4]="MultiLine",e[e.All=7]="All",e[e.Default=7]="Default",e))(ft||{}),gt={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0},{name:"resolution-mode",optional:!0},{name:"preserve",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}},yt=(e=>(e[e.ParseAll=0]="ParseAll",e[e.ParseNone=1]="ParseNone",e[e.ParseForTypeErrors=2]="ParseForTypeErrors",e[e.ParseForTypeInfo=3]="ParseForTypeInfo",e))(yt||{});function generateDjb2Hash(e){let t=5381;for(let n=0;n(e[e.Created=0]="Created",e[e.Changed=1]="Changed",e[e.Deleted=2]="Deleted",e))(ht||{}),Tt=(e=>(e[e.High=2e3]="High",e[e.Medium=500]="Medium",e[e.Low=250]="Low",e))(Tt||{}),St=new Date(0);function getModifiedTime(e,t){return e.getModifiedTime(t)||St}function createPollingIntervalBasedLevels(e){return{250:e.Low,500:e.Medium,2e3:e.High}}var xt={Low:32,Medium:64,High:256},vt=createPollingIntervalBasedLevels(xt),bt=createPollingIntervalBasedLevels(xt);function pollWatchedFileQueue(e,t,n,r,i){let o=n;for(let a=t.length;r&&a;nextPollIndex(),a--){const a=t[n];if(!a)continue;if(a.isClosed){t[n]=void 0;continue}r--;const s=onWatchedFileStat(a,getModifiedTime(e,a.fileName));a.isClosed?t[n]=void 0:(null==i||i(a,n,s),t[n]&&(o{o.isClosed=!0,unorderedRemoveItem(t,o)}}};function createPollingIntervalQueue(e){const t=[];return t.pollingInterval=e,t.pollIndex=0,t.pollScheduled=!1,t}function pollPollingIntervalQueue(e,t){t.pollIndex=pollQueue(t,t.pollingInterval,t.pollIndex,vt[t.pollingInterval]),t.length?scheduleNextPoll(t.pollingInterval):(h.assert(0===t.pollIndex),t.pollScheduled=!1)}function pollLowPollingIntervalQueue(e,t){pollQueue(n,250,0,n.length),pollPollingIntervalQueue(0,t),!t.pollScheduled&&n.length&&scheduleNextPoll(250)}function pollQueue(t,r,i,o){return pollWatchedFileQueue(e,t,i,o,function onWatchFileStat(e,i,o){o?(e.unchangedPolls=0,t!==n&&(t[i]=void 0,function addChangedFileToLowPollingIntervalQueue(e){n.push(e),scheduleNextPollIfNotAlreadyScheduled(250)}(e))):e.unchangedPolls!==bt[r]?e.unchangedPolls++:t===n?(e.unchangedPolls=1,t[i]=void 0,addToPollingIntervalQueue(e,250)):2e3!==r&&(e.unchangedPolls++,t[i]=void 0,addToPollingIntervalQueue(e,250===r?500:2e3))})}function pollingIntervalQueue(e){switch(e){case 250:return r;case 500:return i;case 2e3:return o}}function addToPollingIntervalQueue(e,t){pollingIntervalQueue(t).push(e),scheduleNextPollIfNotAlreadyScheduled(t)}function scheduleNextPollIfNotAlreadyScheduled(e){pollingIntervalQueue(e).pollScheduled||scheduleNextPoll(e)}function scheduleNextPoll(t){pollingIntervalQueue(t).pollScheduled=e.setTimeout(250===t?pollLowPollingIntervalQueue:pollPollingIntervalQueue,t,250===t?"pollLowPollingIntervalQueue":"pollPollingIntervalQueue",pollingIntervalQueue(t))}}function createUseFsEventsOnParentDirectoryWatchFile(e,t,n,r){const i=createMultiMap(),o=r?new Map:void 0,a=new Map,s=createGetCanonicalFileName(t);return function nonPollingWatchFile(t,r,c,l){const d=s(t);1===i.add(d,r).length&&o&&o.set(d,n(t)||St);const p=getDirectoryPath(d)||".",u=a.get(p)||function createDirectoryWatcher(t,r,c){const l=e(t,1,(e,r)=>{if(!isString(r))return;const a=getNormalizedAbsolutePath(r,t),c=s(a),l=a&&i.get(c);if(l){let t,r=1;if(o){const i=o.get(c);if("change"===e&&(t=n(a)||St,t.getTime()===i.getTime()))return;t||(t=n(a)||St),o.set(c,t),i===St?r=0:t===St&&(r=2)}for(const e of l)e(a,r,t)}},!1,500,c);return l.referenceCount=0,a.set(r,l),l}(getDirectoryPath(t)||".",p,l);return u.referenceCount++,{close:()=>{1===u.referenceCount?(u.close(),a.delete(p)):u.referenceCount--,i.remove(d,r)}}}}function createSingleWatcherPerName(e,t,n,r,i){const o=createGetCanonicalFileName(t)(n),a=e.get(o);return a?a.callbacks.push(r):e.set(o,{watcher:i((t,n,r)=>{var i;return null==(i=e.get(o))?void 0:i.callbacks.slice().forEach(e=>e(t,n,r))}),callbacks:[r]}),{close:()=>{const t=e.get(o);t&&orderedRemoveItem(t.callbacks,r)&&!t.callbacks.length&&(e.delete(o),closeFileWatcherOf(t))}}}function onWatchedFileStat(e,t){const n=e.mtime.getTime(),r=t.getTime();return n!==r&&(e.mtime=t,e.callback(e.fileName,getFileWatcherEventKind(n,r),t),!0)}function getFileWatcherEventKind(e,t){return 0===e?0:0===t?2:1}var Ct=["/node_modules/.","/.git","/.#"],Et=noop;function sysLog(e){return Et(e)}function setSysLog(e){Et=e}function createDirectoryWatcherSupportingRecursive({watchDirectory:e,useCaseSensitiveFileNames:t,getCurrentDirectory:n,getAccessibleSortedChildDirectories:r,fileSystemEntryExists:i,realpath:o,setTimeout:a,clearTimeout:s}){const c=new Map,d=createMultiMap(),p=new Map;let u;const m=getStringComparer(!t),_=createGetCanonicalFileName(t);return(t,n,r,i)=>r?createDirectoryWatcher(t,i,n):e(t,n,r,i);function createDirectoryWatcher(t,n,r,o){const m=_(t);let f=c.get(m);f?f.refCount++:(f={watcher:e(t,e=>{var r;isIgnoredPath(e,n)||((null==n?void 0:n.synchronousWatchDirectory)?((null==(r=c.get(m))?void 0:r.targetWatcher)||invokeCallbacks(t,m,e),updateChildWatches(t,m,n)):function nonSyncUpdateChildWatches(e,t,n,r){const o=c.get(t);if(o&&i(e,1))return void function scheduleUpdateChildWatches(e,t,n,r){const i=p.get(t);i?i.fileNames.push(n):p.set(t,{dirName:e,options:r,fileNames:[n]});u&&(s(u),u=void 0);u=a(onTimerToUpdateChildWatches,1e3,"timerToUpdateChildWatches")}(e,t,n,r);invokeCallbacks(e,t,n),closeTargetWatcher(o),removeChildWatches(o)}(t,m,e,n))},!1,n),refCount:1,childWatches:l,targetWatcher:void 0,links:void 0},c.set(m,f),updateChildWatches(t,m,n)),o&&(f.links??(f.links=new Set)).add(o);const g=r&&{dirName:t,callback:r};return g&&d.add(m,g),{dirName:t,close:()=>{var e;const t=h.checkDefined(c.get(m));g&&d.remove(m,g),o&&(null==(e=t.links)||e.delete(o)),t.refCount--,t.refCount||(c.delete(m),t.links=void 0,closeFileWatcherOf(t),closeTargetWatcher(t),t.childWatches.forEach(closeFileWatcher))}}}function invokeCallbacks(e,t,n,r){var i,o;let a,s;isString(n)?a=n:s=n,d.forEach((e,n)=>{if((!s||!0!==s.get(n))&&(n===t||startsWith(t,n)&&t[n.length]===Ft))if(s)if(r){const e=s.get(n);e?e.push(...r):s.set(n,r.slice())}else s.set(n,!0);else e.forEach(({callback:e})=>e(a))}),null==(o=null==(i=c.get(t))?void 0:i.links)||o.forEach(t=>{const toPathInLink=n=>combinePaths(t,getRelativePathFromDirectory(e,n,_));s?invokeCallbacks(t,_(t),s,null==r?void 0:r.map(toPathInLink)):invokeCallbacks(t,_(t),toPathInLink(a))})}function onTimerToUpdateChildWatches(){var e;u=void 0,sysLog(`sysLog:: onTimerToUpdateChildWatches:: ${p.size}`);const t=B(),n=new Map;for(;!u&&p.size;){const t=p.entries().next();h.assert(!t.done);const{value:[r,{dirName:i,options:o,fileNames:a}]}=t;p.delete(r);const s=updateChildWatches(i,r,o);(null==(e=c.get(r))?void 0:e.targetWatcher)||invokeCallbacks(i,r,n,s?void 0:a)}sysLog(`sysLog:: invokingWatchers:: Elapsed:: ${B()-t}ms:: ${p.size}`),d.forEach((e,t)=>{const r=n.get(t);r&&e.forEach(({callback:e,dirName:t})=>{isArray(r)?r.forEach(e):e(t)})});sysLog(`sysLog:: Elapsed:: ${B()-t}ms:: onTimerToUpdateChildWatches:: ${p.size} ${u}`)}function removeChildWatches(e){if(!e)return;const t=e.childWatches;e.childWatches=l;for(const e of t)e.close(),removeChildWatches(c.get(_(e.dirName)))}function closeTargetWatcher(e){(null==e?void 0:e.targetWatcher)&&(e.targetWatcher.close(),e.targetWatcher=void 0)}function updateChildWatches(e,t,n){const a=c.get(t);if(!a)return!1;const s=normalizePath(o(e));let d,p;return 0===m(s,e)?d=enumerateInsertsAndDeletes(i(e,1)?mapDefined(r(e),t=>{const r=getNormalizedAbsolutePath(t,e);return isIgnoredPath(r,n)||0!==m(r,normalizePath(o(r)))?void 0:r}):l,a.childWatches,(e,t)=>m(e,t.dirName),function createAndAddChildDirectoryWatcher(e){addChildDirectoryWatcher(createDirectoryWatcher(e,n))},closeFileWatcher,addChildDirectoryWatcher):a.targetWatcher&&0===m(s,a.targetWatcher.dirName)?(d=!1,h.assert(a.childWatches===l)):(closeTargetWatcher(a),a.targetWatcher=createDirectoryWatcher(s,n,void 0,e),a.childWatches.forEach(closeFileWatcher),d=!0),a.childWatches=p||l,d;function addChildDirectoryWatcher(e){(p||(p=[])).push(e)}}function isIgnoredPath(e,r){return some(Ct,n=>function isInPath(e,n){return!!e.includes(n)||!t&&_(e).includes(n)}(e,n))||isIgnoredByWatchOptions(e,r,t,n)}}var Nt=(e=>(e[e.File=0]="File",e[e.Directory=1]="Directory",e))(Nt||{});function isIgnoredByWatchOptions(e,t,n,r){return((null==t?void 0:t.excludeDirectories)||(null==t?void 0:t.excludeFiles))&&(matchesExclude(e,null==t?void 0:t.excludeFiles,n,r())||matchesExclude(e,null==t?void 0:t.excludeDirectories,n,r()))}function createFsWatchCallbackForDirectoryWatcherCallback(e,t,n,r,i){return(o,a)=>{if("rename"===o){const o=a?normalizePath(combinePaths(e,a)):e;a&&isIgnoredByWatchOptions(o,n,r,i)||t(o)}}}function createSystemWatchFunctions({pollingWatchFileWorker:e,getModifiedTime:t,setTimeout:n,clearTimeout:r,fsWatchWorker:i,fileSystemEntryExists:o,useCaseSensitiveFileNames:a,getCurrentDirectory:s,fsSupportsRecursiveFsWatch:c,getAccessibleSortedChildDirectories:l,realpath:d,tscWatchFile:p,useNonPollingWatchers:u,tscWatchDirectory:m,inodeWatching:_,fsWatchWithTimestamp:f,sysLog:g}){const y=new Map,T=new Map,S=new Map;let x,v,b,C,E=!1;return{watchFile:watchFile2,watchDirectory:function watchDirectory(e,t,i,p){if(c)return fsWatch(e,1,createFsWatchCallbackForDirectoryWatcherCallback(e,t,p,a,s),i,500,getFallbackOptions(p));C||(C=createDirectoryWatcherSupportingRecursive({useCaseSensitiveFileNames:a,getCurrentDirectory:s,fileSystemEntryExists:o,getAccessibleSortedChildDirectories:l,watchDirectory:nonRecursiveWatchDirectory,realpath:d,setTimeout:n,clearTimeout:r}));return C(e,t,i,p)}};function watchFile2(e,n,r,i){i=function updateOptionsForWatchFile(e,t){if(e&&void 0!==e.watchFile)return e;switch(p){case"PriorityPollingInterval":return{watchFile:1};case"DynamicPriorityPolling":return{watchFile:2};case"UseFsEvents":return generateWatchFileOptions(4,1,e);case"UseFsEventsWithFallbackDynamicPolling":return generateWatchFileOptions(4,2,e);case"UseFsEventsOnParentDirectory":t=!0;default:return t?generateWatchFileOptions(5,1,e):{watchFile:4}}}(i,u);const o=h.checkDefined(i.watchFile);switch(o){case 0:return pollingWatchFile(e,n,250,void 0);case 1:return pollingWatchFile(e,n,r,void 0);case 2:return ensureDynamicPollingWatchFile()(e,n,r,void 0);case 3:return ensureFixedChunkSizePollingWatchFile()(e,n,void 0,void 0);case 4:return fsWatch(e,0,function createFsWatchCallbackForFileWatcherCallback(e,t,n){return(r,i,o)=>{"rename"===r?(o||(o=n(e)||St),t(e,o!==St?0:2,o)):t(e,1,o)}}(e,n,t),!1,r,getFallbackOptions(i));case 5:return b||(b=createUseFsEventsOnParentDirectoryWatchFile(fsWatch,a,t,f)),b(e,n,r,getFallbackOptions(i));default:h.assertNever(o)}}function ensureDynamicPollingWatchFile(){return x||(x=createDynamicPriorityPollingWatchFile({getModifiedTime:t,setTimeout:n}))}function ensureFixedChunkSizePollingWatchFile(){return v||(v=function createFixedChunkSizePollingWatchFile(e){const t=[];let n,r=0;return function watchFile2(n,r){const i={fileName:n,callback:r,mtime:getModifiedTime(e,n)};return t.push(i),scheduleNextPoll(),{close:()=>{i.isClosed=!0,unorderedRemoveItem(t,i)}}};function pollQueue(){n=void 0,r=pollWatchedFileQueue(e,t,r,vt[250]),scheduleNextPoll()}function scheduleNextPoll(){t.length&&!n&&(n=e.setTimeout(pollQueue,2e3,"pollQueue"))}}({getModifiedTime:t,setTimeout:n}))}function generateWatchFileOptions(e,t,n){const r=null==n?void 0:n.fallbackPolling;return{watchFile:e,fallbackPolling:void 0===r?t:r}}function nonRecursiveWatchDirectory(e,t,n,r){h.assert(!n);const i=function updateOptionsForWatchDirectory(e){if(e&&void 0!==e.watchDirectory)return e;switch(m){case"RecursiveDirectoryUsingFsWatchFile":return{watchDirectory:1};case"RecursiveDirectoryUsingDynamicPriorityPolling":return{watchDirectory:2};default:const t=null==e?void 0:e.fallbackPolling;return{watchDirectory:0,fallbackPolling:void 0!==t?t:void 0}}}(r),o=h.checkDefined(i.watchDirectory);switch(o){case 1:return pollingWatchFile(e,()=>t(e),500,void 0);case 2:return ensureDynamicPollingWatchFile()(e,()=>t(e),500,void 0);case 3:return ensureFixedChunkSizePollingWatchFile()(e,()=>t(e),void 0,void 0);case 0:return fsWatch(e,1,createFsWatchCallbackForDirectoryWatcherCallback(e,t,r,a,s),n,500,getFallbackOptions(i));default:h.assertNever(o)}}function pollingWatchFile(t,n,r,i){return createSingleWatcherPerName(y,a,t,n,n=>e(t,n,r,i))}function fsWatch(e,n,r,s,c,l){return createSingleWatcherPerName(s?S:T,a,e,r,r=>function fsWatchHandlingExistenceOnHost(e,n,r,a,s,c){let l,d;_&&(l=e.substring(e.lastIndexOf(Ft)),d=l.slice(Ft.length));let p=o(e,n)?watchPresentFileSystemEntry():watchMissingFileSystemEntry();return{close:()=>{p&&(p.close(),p=void 0)}};function updateWatcher(t){p&&(g(`sysLog:: ${e}:: Changing watcher to ${t===watchPresentFileSystemEntry?"Present":"Missing"}FileSystemEntryWatcher`),p.close(),p=t())}function watchPresentFileSystemEntry(){if(E)return g(`sysLog:: ${e}:: Defaulting to watchFile`),watchPresentFileSystemEntryWithFsWatchFile();try{const t=(1!==n&&f?fsWatchWorkerHandlingTimestamp:i)(e,a,_?callbackChangingToMissingFileSystemEntry:r);return t.on("error",()=>{r("rename",""),updateWatcher(watchMissingFileSystemEntry)}),t}catch(t){return E||(E="ENOSPC"===t.code),g(`sysLog:: ${e}:: Changing to watchFile`),watchPresentFileSystemEntryWithFsWatchFile()}}function callbackChangingToMissingFileSystemEntry(n,i){let o;if(i&&endsWith(i,"~")&&(o=i,i=i.slice(0,i.length-1)),"rename"!==n||i&&i!==d&&!endsWith(i,l))o&&r(n,o),r(n,i);else{const a=t(e)||St;o&&r(n,o,a),r(n,i,a),_?updateWatcher(a===St?watchMissingFileSystemEntry:watchPresentFileSystemEntry):a===St&&updateWatcher(watchMissingFileSystemEntry)}}function watchPresentFileSystemEntryWithFsWatchFile(){return watchFile2(e,function createFileWatcherCallback(e){return(t,n,r)=>e(1===n?"change":"rename","",r)}(r),s,c)}function watchMissingFileSystemEntry(){return watchFile2(e,(n,i,o)=>{0===i&&(o||(o=t(e)||St),o!==St&&(r("rename","",o),updateWatcher(watchPresentFileSystemEntry)))},s,c)}}(e,n,r,s,c,l))}function fsWatchWorkerHandlingTimestamp(e,n,r){let o=t(e)||St;return i(e,n,(n,i,a)=>{"change"===n&&(a||(a=t(e)||St),a.getTime()===o.getTime())||(o=a||t(e)||St,r(n,i,o))})}}function patchWriteFileEnsuringDirectory(e){const t=e.writeFile;e.writeFile=(n,r,i)=>writeFileEnsuringDirectories(n,r,!!i,(n,r,i)=>t.call(e,n,r,i),t=>e.createDirectory(t),t=>e.directoryExists(t))}var kt=(()=>{let e;return isNodeLikeSystem()&&(e=function getNodeSystem(){const e=/^native |^\([^)]+\)$|^(?:internal[\\/]|[\w\s]+(?:\.js)?$)/,t=n(21),i=n(641),o=n(202);let a,s;try{a=n(615)}catch{a=void 0}let c="./profile.cpuprofile";const l="darwin"===process.platform,d="linux"===process.platform||l,p={throwIfNoEntry:!1},u=o.platform(),m=function isFileSystemCaseSensitive(){return"win32"!==u&&"win64"!==u&&!fileExists(function swapCase(e){return e.replace(/\w/g,e=>{const t=e.toUpperCase();return e===t?e.toLowerCase():t})}(r))}(),_=t.realpathSync.native?"win32"===process.platform?function fsRealPathHandlingLongPath(e){return e.length<260?t.realpathSync.native(e):t.realpathSync(e)}:t.realpathSync.native:t.realpathSync,f=r.endsWith("sys.js")?i.join(i.dirname("/"),"__fake__.js"):r,g="win32"===process.platform||l,y=memoize(()=>process.cwd()),{watchFile:h,watchDirectory:T}=createSystemWatchFunctions({pollingWatchFileWorker:function fsWatchFileWorker(e,n,r){let i;return t.watchFile(e,{persistent:!0,interval:r},fileChanged),{close:()=>t.unwatchFile(e,fileChanged)};function fileChanged(t,r){const o=0===+r.mtime||2===i;if(0===+t.mtime){if(o)return;i=2}else if(o)i=0;else{if(+t.mtime===+r.mtime)return;i=1}n(e,i,t.mtime)}},getModifiedTime:getModifiedTime3,setTimeout,clearTimeout,fsWatchWorker:function fsWatchWorker(e,n,r){return t.watch(e,g?{persistent:!0,recursive:!!n}:{persistent:!0},r)},useCaseSensitiveFileNames:m,getCurrentDirectory:y,fileSystemEntryExists,fsSupportsRecursiveFsWatch:g,getAccessibleSortedChildDirectories:e=>getAccessibleFileSystemEntries(e).directories,realpath,tscWatchFile:process.env.TSC_WATCHFILE,useNonPollingWatchers:!!process.env.TSC_NONPOLLING_WATCHER,tscWatchDirectory:process.env.TSC_WATCHDIRECTORY,inodeWatching:d,fsWatchWithTimestamp:l,sysLog}),S={args:process.argv.slice(2),newLine:o.EOL,useCaseSensitiveFileNames:m,write(e){process.stdout.write(e)},getWidthOfTerminal:()=>process.stdout.columns,writeOutputIsTTY:()=>process.stdout.isTTY,readFile:function readFile(e,n){let r;try{r=t.readFileSync(e)}catch{return}let i=r.length;if(i>=2&&254===r[0]&&255===r[1]){i&=-2;for(let e=0;e=2&&255===r[0]&&254===r[1]?r.toString("utf16le",2):i>=3&&239===r[0]&&187===r[1]&&191===r[2]?r.toString("utf8",3):r.toString("utf8")},writeFile:function writeFile2(e,n,r){let i;r&&(n="\ufeff"+n);try{i=t.openSync(e,"w"),t.writeSync(i,n,void 0,"utf8")}finally{void 0!==i&&t.closeSync(i)}},watchFile:h,watchDirectory:T,preferNonRecursiveWatch:!g,resolvePath:e=>i.resolve(e),fileExists,directoryExists:function directoryExists(e){return fileSystemEntryExists(e,1)},getAccessibleFileSystemEntries,createDirectory(e){if(!S.directoryExists(e))try{t.mkdirSync(e)}catch(e){if("EEXIST"!==e.code)throw e}},getExecutingFilePath:()=>f,getCurrentDirectory:y,getDirectories:function getDirectories(e){return getAccessibleFileSystemEntries(e).directories.slice()},getEnvironmentVariable:e=>process.env[e]||"",readDirectory:function readDirectory(e,t,n,r,i){return matchFiles(e,t,n,r,m,process.cwd(),i,getAccessibleFileSystemEntries,realpath)},getModifiedTime:getModifiedTime3,setModifiedTime:function setModifiedTime(e,n){try{t.utimesSync(e,n,n)}catch{return}},deleteFile:function deleteFile(e){try{return t.unlinkSync(e)}catch{return}},createHash:a?createSHA256Hash:generateDjb2Hash,createSHA256Hash:a?createSHA256Hash:void 0,getMemoryUsage:()=>(n.g.gc&&n.g.gc(),process.memoryUsage().heapUsed),getFileSize(e){const t=statSync(e);return(null==t?void 0:t.isFile())?t.size:0},exit(e){disableCPUProfiler(()=>process.exit(e))},enableCPUProfiler:function enableCPUProfiler(e,t){if(s)return t(),!1;const r=n(247);if(!r||!r.Session)return t(),!1;const i=new r.Session;return i.connect(),i.post("Profiler.enable",()=>{i.post("Profiler.start",()=>{s=i,c=e,t()})}),!0},disableCPUProfiler,cpuProfilingEnabled:()=>!!s||contains(process.execArgv,"--cpu-prof")||contains(process.execArgv,"--prof"),realpath,debugMode:!!process.env.NODE_INSPECTOR_IPC||!!process.env.VSCODE_INSPECTOR_OPTIONS||some(process.execArgv,e=>/^--(?:inspect|debug)(?:-brk)?(?:=\d+)?$/i.test(e))||!!process.recordreplay,tryEnableSourceMapsForHost(){try{n(664).install()}catch{}},setTimeout,clearTimeout,clearScreen:()=>{process.stdout.write("")},setBlocking:()=>{var e;const t=null==(e=process.stdout)?void 0:e._handle;t&&t.setBlocking&&t.setBlocking(!0)},base64decode:e=>Buffer.from(e,"base64").toString("utf8"),base64encode:e=>Buffer.from(e).toString("base64"),require:(e,t)=>{try{const r=resolveJSModule(t,e,S);return{module:n(387)(r),modulePath:r,error:void 0}}catch(e){return{module:void 0,modulePath:void 0,error:e}}}};return S;function statSync(e){try{return t.statSync(e,p)}catch{return}}function disableCPUProfiler(n){if(s&&"stopping"!==s){const r=s;return s.post("Profiler.stop",(o,{profile:a})=>{var l;if(!o){(null==(l=statSync(c))?void 0:l.isDirectory())&&(c=i.join(c,`${(new Date).toISOString().replace(/:/g,"-")}+P${process.pid}.cpuprofile`));try{t.mkdirSync(i.dirname(c),{recursive:!0})}catch{}t.writeFileSync(c,JSON.stringify(function cleanupPaths(t){let n=0;const r=new Map,o=normalizeSlashes(i.dirname(f)),a=`file://${1===getRootLength(o)?"":"/"}${o}`;for(const i of t.nodes)if(i.callFrame.url){const t=normalizeSlashes(i.callFrame.url);containsPath(a,t,m)?i.callFrame.url=getRelativePathToDirectoryOrUrl(a,t,a,createGetCanonicalFileName(m),!0):e.test(t)||(i.callFrame.url=(r.has(t)?r:r.set(t,`external${n}.js`)).get(t),n++)}return t}(a)))}s=void 0,r.disconnect(),n()}),s="stopping",!0}return n(),!1}function getAccessibleFileSystemEntries(e){try{const n=t.readdirSync(e||".",{withFileTypes:!0}),r=[],i=[];for(const t of n){const n="string"==typeof t?t:t.name;if("."===n||".."===n)continue;let o;if("string"==typeof t||t.isSymbolicLink()){if(o=statSync(combinePaths(e,n)),!o)continue}else o=t;o.isFile()?r.push(n):o.isDirectory()&&i.push(n)}return r.sort(),i.sort(),{files:r,directories:i}}catch{return Nr}}function fileSystemEntryExists(e,t){const n=statSync(e);if(!n)return!1;switch(t){case 0:return n.isFile();case 1:return n.isDirectory();default:return!1}}function fileExists(e){return fileSystemEntryExists(e,0)}function realpath(e){try{return _(e)}catch{return e}}function getModifiedTime3(e){var t;return null==(t=statSync(e))?void 0:t.mtime}function createSHA256Hash(e){const t=a.createHash("sha256");return t.update(e),t.digest("hex")}}()),e&&patchWriteFileEnsuringDirectory(e),e})();function setSys(e){kt=e}kt&&kt.getEnvironmentVariable&&(!function setCustomPollingValues(e){if(!e.getEnvironmentVariable)return;const t=function setCustomLevels(e,t){const n=getCustomLevels(e);return!!n&&(setLevel("Low"),setLevel("Medium"),setLevel("High"),!0);function setLevel(e){t[e]=n[e]||t[e]}}("TSC_WATCH_POLLINGINTERVAL",Tt);function getCustomLevels(t){let n;return setCustomLevel("Low"),setCustomLevel("Medium"),setCustomLevel("High"),n;function setCustomLevel(r){const i=function getLevel(t,n){return e.getEnvironmentVariable(`${t}_${n.toUpperCase()}`)}(t,r);i&&((n||(n={}))[r]=Number(i))}}function getCustomPollingBasedLevels(e,n){const r=getCustomLevels(e);return(t||r)&&createPollingIntervalBasedLevels(r?{...n,...r}:n)}vt=getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE",xt)||vt,bt=getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS",xt)||bt}(kt),h.setAssertionLevel(/^development$/i.test(kt.getEnvironmentVariable("NODE_ENV"))?1:0)),kt&&kt.debugMode&&(h.isDebugging=!0);var Ft="/",Pt="\\",Dt="://",It=/\\/g;function isAnyDirectorySeparator(e){return 47===e||92===e}function isUrl(e){return getEncodedRootLength(e)<0}function isRootedDiskPath(e){return getEncodedRootLength(e)>0}function isDiskPathRoot(e){const t=getEncodedRootLength(e);return t>0&&t===e.length}function pathIsAbsolute(e){return 0!==getEncodedRootLength(e)}function pathIsRelative(e){return/^\.\.?(?:$|[\\/])/.test(e)}function pathIsBareSpecifier(e){return!pathIsAbsolute(e)&&!pathIsRelative(e)}function hasExtension(e){return getBaseFileName(e).includes(".")}function fileExtensionIs(e,t){return e.length>t.length&&endsWith(e,t)}function fileExtensionIsOneOf(e,t){for(const n of t)if(fileExtensionIs(e,n))return!0;return!1}function hasTrailingDirectorySeparator(e){return e.length>0&&isAnyDirectorySeparator(e.charCodeAt(e.length-1))}function isVolumeCharacter(e){return e>=97&&e<=122||e>=65&&e<=90}function getEncodedRootLength(e){if(!e)return 0;const t=e.charCodeAt(0);if(47===t||92===t){if(e.charCodeAt(1)!==t)return 1;const n=e.indexOf(47===t?Ft:Pt,2);return n<0?e.length:n+1}if(isVolumeCharacter(t)&&58===e.charCodeAt(1)){const t=e.charCodeAt(2);if(47===t||92===t)return 3;if(2===e.length)return 2}const n=e.indexOf(Dt);if(-1!==n){const t=n+Dt.length,r=e.indexOf(Ft,t);if(-1!==r){const i=e.slice(0,n),o=e.slice(t,r);if("file"===i&&(""===o||"localhost"===o)&&isVolumeCharacter(e.charCodeAt(r+1))){const t=function getFileUrlVolumeSeparatorEnd(e,t){const n=e.charCodeAt(t);if(58===n)return t+1;if(37===n&&51===e.charCodeAt(t+1)){const n=e.charCodeAt(t+2);if(97===n||65===n)return t+3}return-1}(e,r+2);if(-1!==t){if(47===e.charCodeAt(t))return~(t+1);if(t===e.length)return~t}}return~(r+1)}return~e.length}return 0}function getRootLength(e){const t=getEncodedRootLength(e);return t<0?~t:t}function getDirectoryPath(e){const t=getRootLength(e=normalizeSlashes(e));return t===e.length?e:(e=removeTrailingDirectorySeparator(e)).slice(0,Math.max(t,e.lastIndexOf(Ft)))}function getBaseFileName(e,t,n){if(getRootLength(e=normalizeSlashes(e))===e.length)return"";const r=(e=removeTrailingDirectorySeparator(e)).slice(Math.max(getRootLength(e),e.lastIndexOf(Ft)+1)),i=void 0!==t&&void 0!==n?getAnyExtensionFromPath(r,t,n):void 0;return i?r.slice(0,r.length-i.length):r}function tryGetExtensionFromPath(e,t,n){if(startsWith(t,".")||(t="."+t),e.length>=t.length&&46===e.charCodeAt(e.length-t.length)){const r=e.slice(e.length-t.length);if(n(r,t))return r}}function getAnyExtensionFromPath(e,t,n){if(t)return function getAnyExtensionFromPathWorker(e,t,n){if("string"==typeof t)return tryGetExtensionFromPath(e,t,n)||"";for(const r of t){const t=tryGetExtensionFromPath(e,r,n);if(t)return t}return""}(removeTrailingDirectorySeparator(e),t,n?equateStringsCaseInsensitive:equateStringsCaseSensitive);const r=getBaseFileName(e),i=r.lastIndexOf(".");return i>=0?r.substring(i):""}function getPathComponents(e,t=""){return function pathComponents(e,t){const n=e.substring(0,t),r=e.substring(t).split(Ft);return r.length&&!lastOrUndefined(r)&&r.pop(),[n,...r]}(e=combinePaths(t,e),getRootLength(e))}function getPathFromPathComponents(e,t){if(0===e.length)return"";return(e[0]&&ensureTrailingDirectorySeparator(e[0]))+e.slice(1,t).join(Ft)}function normalizeSlashes(e){return e.includes("\\")?e.replace(It,Ft):e}function reducePathComponents(e){if(!some(e))return[];const t=[e[0]];for(let n=1;n1){if(".."!==t[t.length-1]){t.pop();continue}}else if(t[0])continue;t.push(r)}}return t}function combinePaths(e,...t){e&&(e=normalizeSlashes(e));for(let n of t)n&&(n=normalizeSlashes(n),e=e&&0===getRootLength(n)?ensureTrailingDirectorySeparator(e)+n:n);return e}function resolvePath(e,...t){return normalizePath(some(t)?combinePaths(e,...t):normalizeSlashes(e))}function getNormalizedPathComponents(e,t){return reducePathComponents(getPathComponents(e,t))}function getNormalizedAbsolutePath(e,t){let n=getRootLength(e);0===n&&t?n=getRootLength(e=combinePaths(t,e)):e=normalizeSlashes(e);const r=simpleNormalizePath(e);if(void 0!==r)return r.length>n?removeTrailingDirectorySeparator(r):r;const i=e.length,o=e.substring(0,n);let a,s=n,c=s,l=s,d=0!==n;for(;sc&&(a??(a=e.substring(0,c-1)),c=s);let r=e.indexOf(Ft,s+1);-1===r&&(r=i);const p=r-c;if(1===p&&46===e.charCodeAt(s))a??(a=e.substring(0,l));else if(2===p&&46===e.charCodeAt(s)&&46===e.charCodeAt(s+1))if(d)if(void 0===a)a=l-2>=0?e.substring(0,Math.max(n,e.lastIndexOf(Ft,l-2))):e.substring(0,l);else{const e=a.lastIndexOf(Ft);a=-1!==e?a.substring(0,Math.max(n,e)):o,a.length===n&&(d=0!==n)}else void 0!==a?a+=a.length===n?"..":"/..":l=s+2;else void 0!==a?(a.length!==n&&(a+=Ft),d=!0,a+=e.substring(c,r)):(d=!0,l=r);s=r+1}return a??(i>n?removeTrailingDirectorySeparator(e):e)}function normalizePath(e){let t=simpleNormalizePath(e=normalizeSlashes(e));return void 0!==t?t:(t=getNormalizedAbsolutePath(e,""),t&&hasTrailingDirectorySeparator(e)?ensureTrailingDirectorySeparator(t):t)}function simpleNormalizePath(e){if(!At.test(e))return e;let t=e.replace(/\/\.\//g,"/");return t.startsWith("./")&&(t=t.slice(2)),t===e||(e=t,At.test(e))?void 0:e}function getNormalizedAbsolutePathWithoutRoot(e,t){return function getPathWithoutRoot(e){return 0===e.length?"":e.slice(1).join(Ft)}(getNormalizedPathComponents(e,t))}function toPath(e,t,n){return n(isRootedDiskPath(e)?normalizePath(e):getNormalizedAbsolutePath(e,t))}function removeTrailingDirectorySeparator(e){return hasTrailingDirectorySeparator(e)?e.substr(0,e.length-1):e}function ensureTrailingDirectorySeparator(e){return hasTrailingDirectorySeparator(e)?e:e+Ft}function ensurePathIsNonModuleName(e){return pathIsAbsolute(e)||pathIsRelative(e)?e:"./"+e}function changeAnyExtension(e,t,n,r){const i=void 0!==n&&void 0!==r?getAnyExtensionFromPath(e,n,r):getAnyExtensionFromPath(e);return i?e.slice(0,e.length-i.length)+(startsWith(t,".")?t:"."+t):e}function changeFullExtension(e,t){const n=getDeclarationFileExtension(e);return n?e.slice(0,e.length-n.length)+(startsWith(t,".")?t:"."+t):changeAnyExtension(e,t)}var At=/\/\/|(?:^|\/)\.\.?(?:$|\/)/;function comparePathsWorker(e,t,n){if(e===t)return 0;if(void 0===e)return-1;if(void 0===t)return 1;const r=e.substring(0,getRootLength(e)),i=t.substring(0,getRootLength(t)),o=compareStringsCaseInsensitive(r,i);if(0!==o)return o;const a=e.substring(r.length),s=t.substring(i.length);if(!At.test(a)&&!At.test(s))return n(a,s);const c=reducePathComponents(getPathComponents(e)),l=reducePathComponents(getPathComponents(t)),d=Math.min(c.length,l.length);for(let e=1;e0==getRootLength(t)>0,"Paths must either both be absolute or both be relative");return getPathFromPathComponents(getPathComponentsRelativeTo(e,t,"boolean"==typeof n&&n?equateStringsCaseInsensitive:equateStringsCaseSensitive,"function"==typeof n?n:identity))}function convertToRelativePath(e,t,n){return isRootedDiskPath(e)?getRelativePathToDirectoryOrUrl(t,e,t,n,!1):e}function getRelativePathFromFile(e,t,n){return ensurePathIsNonModuleName(getRelativePathFromDirectory(getDirectoryPath(e),t,n))}function getRelativePathToDirectoryOrUrl(e,t,n,r,i){const o=getPathComponentsRelativeTo(resolvePath(n,e),resolvePath(n,t),equateStringsCaseSensitive,r),a=o[0];if(i&&isRootedDiskPath(a)){const e=a.charAt(0)===Ft?"file://":"file:///";o[0]=e+a}return getPathFromPathComponents(o)}function forEachAncestorDirectory(e,t){for(;;){const n=t(e);if(void 0!==n)return n;const r=getDirectoryPath(e);if(r===e)return;e=r}}function isNodeModulesDirectory(e){return endsWith(e,"/node_modules")}function diag(e,t,n,r,i,o,a){return{code:e,category:t,key:n,message:r,reportsUnnecessary:i,elidedInCompatabilityPyramid:o,reportsDeprecated:a}}var Ot={Unterminated_string_literal:diag(1002,1,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:diag(1003,1,"Identifier_expected_1003","Identifier expected."),_0_expected:diag(1005,1,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:diag(1006,1,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:diag(1007,1,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:diag(1009,1,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:diag(1010,1,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:diag(1011,1,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:diag(1012,1,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:diag(1013,1,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:diag(1014,1,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:diag(1015,1,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:diag(1016,1,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:diag(1017,1,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:diag(1018,1,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:diag(1019,1,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:diag(1020,1,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:diag(1021,1,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:diag(1022,1,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:diag(1024,1,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:diag(1025,1,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:diag(1028,1,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:diag(1029,1,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:diag(1030,1,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:diag(1031,1,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:diag(1034,1,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:diag(1035,1,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:diag(1036,1,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:diag(1038,1,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:diag(1039,1,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:diag(1040,1,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:diag(1042,1,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:diag(1044,1,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:diag(1046,1,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:diag(1047,1,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:diag(1048,1,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:diag(1049,1,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:diag(1051,1,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:diag(1052,1,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:diag(1053,1,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:diag(1054,1,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:diag(1055,1,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055","Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:diag(1056,1,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:diag(1058,1,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:diag(1059,1,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:diag(1060,1,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:diag(1061,1,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:diag(1062,1,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:diag(1063,1,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:diag(1064,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:diag(1065,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065","The return type of an async function or method must be the global Promise type."),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:diag(1066,1,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:diag(1068,1,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:diag(1069,1,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:diag(1070,1,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:diag(1071,1,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:diag(1079,1,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:diag(1084,1,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),_0_modifier_cannot_appear_on_a_constructor_declaration:diag(1089,1,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:diag(1090,1,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:diag(1091,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:diag(1092,1,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:diag(1093,1,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:diag(1094,1,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:diag(1095,1,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:diag(1096,1,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:diag(1097,1,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:diag(1098,1,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:diag(1099,1,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:diag(1100,1,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:diag(1101,1,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:diag(1102,1,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:diag(1103,1,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:diag(1104,1,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:diag(1105,1,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:diag(1106,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:diag(1107,1,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:diag(1108,1,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:diag(1109,1,"Expression_expected_1109","Expression expected."),Type_expected:diag(1110,1,"Type_expected_1110","Type expected."),Private_field_0_must_be_declared_in_an_enclosing_class:diag(1111,1,"Private_field_0_must_be_declared_in_an_enclosing_class_1111","Private field '{0}' must be declared in an enclosing class."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:diag(1113,1,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:diag(1114,1,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:diag(1115,1,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:diag(1116,1,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name:diag(1117,1,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:diag(1118,1,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:diag(1119,1,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:diag(1120,1,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_Use_the_syntax_0:diag(1121,1,"Octal_literals_are_not_allowed_Use_the_syntax_0_1121","Octal literals are not allowed. Use the syntax '{0}'."),Variable_declaration_list_cannot_be_empty:diag(1123,1,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:diag(1124,1,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:diag(1125,1,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:diag(1126,1,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:diag(1127,1,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:diag(1128,1,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:diag(1129,1,"Statement_expected_1129","Statement expected."),case_or_default_expected:diag(1130,1,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:diag(1131,1,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:diag(1132,1,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:diag(1134,1,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:diag(1135,1,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:diag(1136,1,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:diag(1137,1,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:diag(1138,1,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:diag(1139,1,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:diag(1140,1,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:diag(1141,1,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:diag(1142,1,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:diag(1144,1,"or_expected_1144","'{' or ';' expected."),or_JSX_element_expected:diag(1145,1,"or_JSX_element_expected_1145","'{' or JSX element expected."),Declaration_expected:diag(1146,1,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:diag(1147,1,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:diag(1148,1,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:diag(1149,1,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),_0_declarations_must_be_initialized:diag(1155,1,"_0_declarations_must_be_initialized_1155","'{0}' declarations must be initialized."),_0_declarations_can_only_be_declared_inside_a_block:diag(1156,1,"_0_declarations_can_only_be_declared_inside_a_block_1156","'{0}' declarations can only be declared inside a block."),Unterminated_template_literal:diag(1160,1,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:diag(1161,1,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:diag(1162,1,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:diag(1163,1,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:diag(1164,1,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:diag(1165,1,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:diag(1166,1,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:diag(1168,1,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:diag(1169,1,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:diag(1170,1,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:diag(1171,1,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:diag(1172,1,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:diag(1173,1,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:diag(1174,1,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:diag(1175,1,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:diag(1176,1,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:diag(1177,1,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:diag(1178,1,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:diag(1179,1,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:diag(1180,1,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:diag(1181,1,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:diag(1182,1,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:diag(1183,1,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:diag(1184,1,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:diag(1185,1,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:diag(1186,1,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:diag(1187,1,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:diag(1188,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:diag(1189,1,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:diag(1190,1,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:diag(1191,1,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:diag(1192,1,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:diag(1193,1,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:diag(1194,1,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:diag(1195,1,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:diag(1196,1,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:diag(1197,1,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:diag(1198,1,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:diag(1199,1,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:diag(1200,1,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:diag(1202,1,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202","Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead."),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:diag(1203,1,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:diag(1205,1,"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205","Re-exporting a type when '{0}' is enabled requires using 'export type'."),Decorators_are_not_valid_here:diag(1206,1,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:diag(1207,1,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:diag(1209,1,"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209","Invalid optional chain from new expression. Did you mean to call '{0}()'?"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:diag(1210,1,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:diag(1211,1,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:diag(1212,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:diag(1213,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:diag(1214,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:diag(1215,1,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:diag(1216,1,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:diag(1218,1,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Generators_are_not_allowed_in_an_ambient_context:diag(1221,1,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:diag(1222,1,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:diag(1223,1,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:diag(1224,1,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:diag(1225,1,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:diag(1226,1,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:diag(1227,1,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:diag(1228,1,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:diag(1229,1,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:diag(1230,1,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:diag(1231,1,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:diag(1232,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:diag(1233,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:diag(1234,1,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:diag(1235,1,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:diag(1236,1,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:diag(1237,1,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:diag(1238,1,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:diag(1239,1,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:diag(1240,1,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:diag(1241,1,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:diag(1242,1,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:diag(1243,1,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:diag(1244,1,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:diag(1245,1,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:diag(1246,1,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:diag(1247,1,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:diag(1248,1,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:diag(1249,1,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:diag(1250,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:diag(1251,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:diag(1252,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode."),Abstract_properties_can_only_appear_within_an_abstract_class:diag(1253,1,"Abstract_properties_can_only_appear_within_an_abstract_class_1253","Abstract properties can only appear within an abstract class."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:diag(1254,1,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:diag(1255,1,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:diag(1257,1,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:diag(1258,1,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:diag(1259,1,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:diag(1260,1,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:diag(1261,1,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:diag(1262,1,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:diag(1263,1,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:diag(1264,1,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:diag(1265,1,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:diag(1266,1,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:diag(1267,1,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:diag(1268,1,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:diag(1269,1,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269","Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),Decorator_function_return_type_0_is_not_assignable_to_type_1:diag(1270,1,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:diag(1271,1,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:diag(1272,1,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:diag(1273,1,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:diag(1274,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),accessor_modifier_can_only_appear_on_a_property_declaration:diag(1275,1,"accessor_modifier_can_only_appear_on_a_property_declaration_1275","'accessor' modifier can only appear on a property declaration."),An_accessor_property_cannot_be_declared_optional:diag(1276,1,"An_accessor_property_cannot_be_declared_optional_1276","An 'accessor' property cannot be declared optional."),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:diag(1277,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277","'{0}' modifier can only appear on a type parameter of a function, method or class"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:diag(1278,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278","The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:diag(1279,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279","The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:diag(1280,1,"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280","Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:diag(1281,1,"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281","Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:diag(1282,1,"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282","An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:diag(1283,1,"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283","An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:diag(1284,1,"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284","An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:diag(1285,1,"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285","An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax:diag(1286,1,"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_1286","ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'."),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:diag(1287,1,"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287","A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:diag(1288,1,"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288","An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:diag(1289,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:diag(1290,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:diag(1291,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:diag(1292,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:diag(1293,1,"ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293","ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'."),This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled:diag(1294,1,"This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled_1294","This syntax is not allowed when 'erasableSyntaxOnly' is enabled."),ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript:diag(1295,1,"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjus_1295","ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript."),with_statements_are_not_allowed_in_an_async_function_block:diag(1300,1,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:diag(1308,1,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:diag(1309,1,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:diag(1312,1,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:diag(1313,1,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:diag(1314,1,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:diag(1315,1,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:diag(1316,1,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:diag(1317,1,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:diag(1318,1,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:diag(1319,1,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:diag(1320,1,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:diag(1321,1,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:diag(1322,1,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext:diag(1323,1,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve:diag(1324,1,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'."),Argument_of_dynamic_import_cannot_be_spread_element:diag(1325,1,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:diag(1326,1,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),String_literal_with_double_quotes_expected:diag(1327,1,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:diag(1328,1,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:diag(1329,1,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:diag(1330,1,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:diag(1331,1,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:diag(1332,1,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:diag(1333,1,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:diag(1334,1,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:diag(1335,1,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:diag(1337,1,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:diag(1338,1,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:diag(1339,1,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:diag(1340,1,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Class_constructor_may_not_be_an_accessor:diag(1341,1,"Class_constructor_may_not_be_an_accessor_1341","Class constructor may not be an accessor."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext:diag(1343,1,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'."),A_label_is_not_allowed_here:diag(1344,1,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:diag(1345,1,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:diag(1346,1,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:diag(1347,1,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:diag(1348,1,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:diag(1349,1,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:diag(1350,3,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:diag(1351,1,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:diag(1352,1,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:diag(1353,1,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:diag(1354,1,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:diag(1355,1,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:diag(1356,1,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:diag(1357,1,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:diag(1358,1,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:diag(1359,1,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Type_0_does_not_satisfy_the_expected_type_1:diag(1360,1,"Type_0_does_not_satisfy_the_expected_type_1_1360","Type '{0}' does not satisfy the expected type '{1}'."),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:diag(1361,1,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:diag(1362,1,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:diag(1363,1,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:diag(1364,3,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:diag(1365,3,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:diag(1366,3,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:diag(1367,3,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Class_constructor_may_not_be_a_generator:diag(1368,1,"Class_constructor_may_not_be_a_generator_1368","Class constructor may not be a generator."),Did_you_mean_0:diag(1369,3,"Did_you_mean_0_1369","Did you mean '{0}'?"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:diag(1375,1,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:diag(1376,3,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:diag(1377,3,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:diag(1378,1,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:diag(1379,1,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:diag(1380,1,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:diag(1381,1,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:diag(1382,1,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:diag(1385,1,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:diag(1386,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:diag(1387,1,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:diag(1388,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:diag(1389,1,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),_0_is_not_allowed_as_a_parameter_name:diag(1390,1,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),An_import_alias_cannot_use_import_type:diag(1392,1,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:diag(1393,3,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:diag(1394,3,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:diag(1395,3,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:diag(1396,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:diag(1397,3,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:diag(1398,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:diag(1399,3,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:diag(1400,3,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:diag(1401,3,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:diag(1402,3,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:diag(1403,3,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:diag(1404,3,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:diag(1405,3,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:diag(1406,3,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:diag(1407,3,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:diag(1408,3,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:diag(1409,3,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:diag(1410,3,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:diag(1411,3,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:diag(1412,3,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:diag(1413,3,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:diag(1414,3,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:diag(1415,3,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:diag(1416,3,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:diag(1417,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:diag(1418,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:diag(1419,3,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:diag(1420,3,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:diag(1421,3,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:diag(1422,3,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:diag(1423,3,"File_is_library_specified_here_1423","File is library specified here."),Default_library:diag(1424,3,"Default_library_1424","Default library"),Default_library_for_target_0:diag(1425,3,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:diag(1426,3,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:diag(1427,3,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:diag(1428,3,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:diag(1429,3,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:diag(1430,3,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:diag(1431,1,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:diag(1432,1,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:diag(1433,1,"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433","Neither decorators nor modifiers may be applied to 'this' parameters."),Unexpected_keyword_or_identifier:diag(1434,1,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:diag(1435,1,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:diag(1436,1,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:diag(1437,1,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:diag(1438,1,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:diag(1439,1,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:diag(1440,1,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:diag(1441,1,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:diag(1442,1,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:diag(1443,1,"Module_declaration_names_may_only_use_or_quoted_strings_1443","Module declaration names may only use ' or \" quoted strings."),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:diag(1448,1,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:diag(1449,3,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:diag(1450,3,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional set of attributes as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:diag(1451,1,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),resolution_mode_should_be_either_require_or_import:diag(1453,1,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:diag(1454,1,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:diag(1455,1,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:diag(1456,1,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:diag(1457,3,"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457","Matched by default include pattern '**/*'"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:diag(1458,3,"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458",'File is ECMAScript module because \'{0}\' has field "type" with value "module"'),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:diag(1459,3,"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459",'File is CommonJS module because \'{0}\' has field "type" whose value is not "module"'),File_is_CommonJS_module_because_0_does_not_have_field_type:diag(1460,3,"File_is_CommonJS_module_because_0_does_not_have_field_type_1460","File is CommonJS module because '{0}' does not have field \"type\""),File_is_CommonJS_module_because_package_json_was_not_found:diag(1461,3,"File_is_CommonJS_module_because_package_json_was_not_found_1461","File is CommonJS module because 'package.json' was not found"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:diag(1463,1,"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463","'resolution-mode' is the only valid key for type import attributes."),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:diag(1464,1,"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464","Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:diag(1470,1,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:diag(1471,1,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),catch_or_finally_expected:diag(1472,1,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:diag(1473,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:diag(1474,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:diag(1475,3,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:diag(1476,3,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:diag(1477,1,"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477","An instantiation expression cannot be followed by a property access."),Identifier_or_string_literal_expected:diag(1478,1,"Identifier_or_string_literal_expected_1478","Identifier or string literal expected."),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:diag(1479,1,"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479","The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead."),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:diag(1480,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480",'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:diag(1481,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481","To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field `\"type\": \"module\"` to '{1}'."),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:diag(1482,3,"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482",'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:diag(1483,3,"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483",'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:diag(1484,1,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484","'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:diag(1485,1,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),Decorator_used_before_export_here:diag(1486,1,"Decorator_used_before_export_here_1486","Decorator used before 'export' here."),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:diag(1487,1,"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487","Octal escape sequences are not allowed. Use the syntax '{0}'."),Escape_sequence_0_is_not_allowed:diag(1488,1,"Escape_sequence_0_is_not_allowed_1488","Escape sequence '{0}' is not allowed."),Decimals_with_leading_zeros_are_not_allowed:diag(1489,1,"Decimals_with_leading_zeros_are_not_allowed_1489","Decimals with leading zeros are not allowed."),File_appears_to_be_binary:diag(1490,1,"File_appears_to_be_binary_1490","File appears to be binary."),_0_modifier_cannot_appear_on_a_using_declaration:diag(1491,1,"_0_modifier_cannot_appear_on_a_using_declaration_1491","'{0}' modifier cannot appear on a 'using' declaration."),_0_declarations_may_not_have_binding_patterns:diag(1492,1,"_0_declarations_may_not_have_binding_patterns_1492","'{0}' declarations may not have binding patterns."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:diag(1493,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493","The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:diag(1494,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494","The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),_0_modifier_cannot_appear_on_an_await_using_declaration:diag(1495,1,"_0_modifier_cannot_appear_on_an_await_using_declaration_1495","'{0}' modifier cannot appear on an 'await using' declaration."),Identifier_string_literal_or_number_literal_expected:diag(1496,1,"Identifier_string_literal_or_number_literal_expected_1496","Identifier, string literal, or number literal expected."),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:diag(1497,1,"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497","Expression must be enclosed in parentheses to be used as a decorator."),Invalid_syntax_in_decorator:diag(1498,1,"Invalid_syntax_in_decorator_1498","Invalid syntax in decorator."),Unknown_regular_expression_flag:diag(1499,1,"Unknown_regular_expression_flag_1499","Unknown regular expression flag."),Duplicate_regular_expression_flag:diag(1500,1,"Duplicate_regular_expression_flag_1500","Duplicate regular expression flag."),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:diag(1501,1,"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501","This regular expression flag is only available when targeting '{0}' or later."),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:diag(1502,1,"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502","The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:diag(1503,1,"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503","Named capturing groups are only available when targeting 'ES2018' or later."),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:diag(1504,1,"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504","Subpattern flags must be present when there is a minus sign."),Incomplete_quantifier_Digit_expected:diag(1505,1,"Incomplete_quantifier_Digit_expected_1505","Incomplete quantifier. Digit expected."),Numbers_out_of_order_in_quantifier:diag(1506,1,"Numbers_out_of_order_in_quantifier_1506","Numbers out of order in quantifier."),There_is_nothing_available_for_repetition:diag(1507,1,"There_is_nothing_available_for_repetition_1507","There is nothing available for repetition."),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:diag(1508,1,"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508","Unexpected '{0}'. Did you mean to escape it with backslash?"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:diag(1509,1,"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509","This regular expression flag cannot be toggled within a subpattern."),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:diag(1510,1,"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510","'\\k' must be followed by a capturing group name enclosed in angle brackets."),q_is_only_available_inside_character_class:diag(1511,1,"q_is_only_available_inside_character_class_1511","'\\q' is only available inside character class."),c_must_be_followed_by_an_ASCII_letter:diag(1512,1,"c_must_be_followed_by_an_ASCII_letter_1512","'\\c' must be followed by an ASCII letter."),Undetermined_character_escape:diag(1513,1,"Undetermined_character_escape_1513","Undetermined character escape."),Expected_a_capturing_group_name:diag(1514,1,"Expected_a_capturing_group_name_1514","Expected a capturing group name."),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:diag(1515,1,"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515","Named capturing groups with the same name must be mutually exclusive to each other."),A_character_class_range_must_not_be_bounded_by_another_character_class:diag(1516,1,"A_character_class_range_must_not_be_bounded_by_another_character_class_1516","A character class range must not be bounded by another character class."),Range_out_of_order_in_character_class:diag(1517,1,"Range_out_of_order_in_character_class_1517","Range out of order in character class."),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:diag(1518,1,"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518","Anything that would possibly match more than a single character is invalid inside a negated character class."),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:diag(1519,1,"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519","Operators must not be mixed within a character class. Wrap it in a nested class instead."),Expected_a_class_set_operand:diag(1520,1,"Expected_a_class_set_operand_1520","Expected a class set operand."),q_must_be_followed_by_string_alternatives_enclosed_in_braces:diag(1521,1,"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521","'\\q' must be followed by string alternatives enclosed in braces."),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:diag(1522,1,"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522","A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),Expected_a_Unicode_property_name:diag(1523,1,"Expected_a_Unicode_property_name_1523","Expected a Unicode property name."),Unknown_Unicode_property_name:diag(1524,1,"Unknown_Unicode_property_name_1524","Unknown Unicode property name."),Expected_a_Unicode_property_value:diag(1525,1,"Expected_a_Unicode_property_value_1525","Expected a Unicode property value."),Unknown_Unicode_property_value:diag(1526,1,"Unknown_Unicode_property_value_1526","Unknown Unicode property value."),Expected_a_Unicode_property_name_or_value:diag(1527,1,"Expected_a_Unicode_property_name_or_value_1527","Expected a Unicode property name or value."),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:diag(1528,1,"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528","Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),Unknown_Unicode_property_name_or_value:diag(1529,1,"Unknown_Unicode_property_name_or_value_1529","Unknown Unicode property name or value."),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:diag(1530,1,"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530","Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:diag(1531,1,"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531","'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),There_is_no_capturing_group_named_0_in_this_regular_expression:diag(1532,1,"There_is_no_capturing_group_named_0_in_this_regular_expression_1532","There is no capturing group named '{0}' in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:diag(1533,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533","This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:diag(1534,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534","This backreference refers to a group that does not exist. There are no capturing groups in this regular expression."),This_character_cannot_be_escaped_in_a_regular_expression:diag(1535,1,"This_character_cannot_be_escaped_in_a_regular_expression_1535","This character cannot be escaped in a regular expression."),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:diag(1536,1,"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536","Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead."),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:diag(1537,1,"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537","Decimal escape sequences and backreferences are not allowed in a character class."),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:diag(1538,1,"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538","Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),A_bigint_literal_cannot_be_used_as_a_property_name:diag(1539,1,"A_bigint_literal_cannot_be_used_as_a_property_name_1539","A 'bigint' literal cannot be used as a property name."),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:diag(1540,2,"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540","A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:diag(1541,1,"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541","Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:diag(1542,1,"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542","Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:diag(1543,1,"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543","Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'."),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:diag(1544,1,"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544","Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),using_declarations_are_not_allowed_in_ambient_contexts:diag(1545,1,"using_declarations_are_not_allowed_in_ambient_contexts_1545","'using' declarations are not allowed in ambient contexts."),await_using_declarations_are_not_allowed_in_ambient_contexts:diag(1546,1,"await_using_declarations_are_not_allowed_in_ambient_contexts_1546","'await using' declarations are not allowed in ambient contexts."),The_types_of_0_are_incompatible_between_these_types:diag(2200,1,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:diag(2201,1,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:diag(2202,1,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:diag(2203,1,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:diag(2204,1,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:diag(2205,1,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:diag(2206,1,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:diag(2207,1,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),This_type_parameter_might_need_an_extends_0_constraint:diag(2208,1,"This_type_parameter_might_need_an_extends_0_constraint_2208","This type parameter might need an `extends {0}` constraint."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:diag(2209,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:diag(2210,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),Add_extends_constraint:diag(2211,3,"Add_extends_constraint_2211","Add `extends` constraint."),Add_extends_constraint_to_all_type_parameters:diag(2212,3,"Add_extends_constraint_to_all_type_parameters_2212","Add `extends` constraint to all type parameters"),Duplicate_identifier_0:diag(2300,1,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:diag(2301,1,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:diag(2302,1,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:diag(2303,1,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:diag(2304,1,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:diag(2305,1,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:diag(2306,1,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:diag(2307,1,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:diag(2308,1,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:diag(2309,1,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:diag(2310,1,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:diag(2311,1,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:diag(2312,1,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:diag(2313,1,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:diag(2314,1,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:diag(2315,1,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:diag(2316,1,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:diag(2317,1,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:diag(2318,1,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:diag(2319,1,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:diag(2320,1,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:diag(2321,1,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:diag(2322,1,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:diag(2323,1,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:diag(2324,1,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:diag(2325,1,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:diag(2326,1,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:diag(2327,1,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:diag(2328,1,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:diag(2329,1,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:diag(2330,1,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:diag(2331,1,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:diag(2332,1,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_a_static_property_initializer:diag(2334,1,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:diag(2335,1,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:diag(2336,1,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:diag(2337,1,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:diag(2338,1,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:diag(2339,1,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:diag(2340,1,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:diag(2341,1,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:diag(2343,1,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:diag(2344,1,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:diag(2345,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Call_target_does_not_contain_any_signatures:diag(2346,1,"Call_target_does_not_contain_any_signatures_2346","Call target does not contain any signatures."),Untyped_function_calls_may_not_accept_type_arguments:diag(2347,1,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:diag(2348,1,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:diag(2349,1,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:diag(2350,1,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:diag(2351,1,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:diag(2352,1,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:diag(2353,1,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:diag(2354,1,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:diag(2355,1,"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:diag(2356,1,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:diag(2357,1,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:diag(2358,1,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:diag(2359,1,"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359","The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:diag(2362,1,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:diag(2363,1,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:diag(2364,1,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:diag(2365,1,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:diag(2366,1,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:diag(2367,1,"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367","This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),Type_parameter_name_cannot_be_0:diag(2368,1,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:diag(2369,1,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:diag(2370,1,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:diag(2371,1,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:diag(2372,1,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:diag(2373,1,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:diag(2374,1,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:diag(2375,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:diag(2376,1,"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:diag(2377,1,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:diag(2378,1,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:diag(2379,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),Overload_signatures_must_all_be_exported_or_non_exported:diag(2383,1,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:diag(2384,1,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:diag(2385,1,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:diag(2386,1,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:diag(2387,1,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:diag(2388,1,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:diag(2389,1,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:diag(2390,1,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:diag(2391,1,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:diag(2392,1,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:diag(2393,1,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:diag(2394,1,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:diag(2395,1,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:diag(2396,1,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:diag(2397,1,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:diag(2398,1,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:diag(2399,1,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:diag(2400,1,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:diag(2401,1,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:diag(2402,1,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:diag(2403,1,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:diag(2404,1,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:diag(2405,1,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:diag(2406,1,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:diag(2407,1,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:diag(2408,1,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:diag(2409,1,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:diag(2410,1,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:diag(2412,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:diag(2411,1,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:diag(2413,1,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:diag(2414,1,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:diag(2415,1,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:diag(2416,1,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:diag(2417,1,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:diag(2418,1,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:diag(2419,1,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:diag(2420,1,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:diag(2422,1,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:diag(2423,1,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:diag(2425,1,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:diag(2426,1,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:diag(2427,1,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:diag(2428,1,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:diag(2430,1,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:diag(2431,1,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:diag(2432,1,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:diag(2433,1,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:diag(2434,1,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:diag(2435,1,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:diag(2436,1,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:diag(2437,1,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:diag(2438,1,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:diag(2439,1,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:diag(2440,1,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:diag(2441,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:diag(2442,1,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:diag(2443,1,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:diag(2444,1,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:diag(2445,1,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:diag(2446,1,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:diag(2447,1,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:diag(2448,1,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:diag(2449,1,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:diag(2450,1,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:diag(2451,1,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:diag(2452,1,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),Variable_0_is_used_before_being_assigned:diag(2454,1,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_alias_0_circularly_references_itself:diag(2456,1,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:diag(2457,1,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:diag(2458,1,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:diag(2459,1,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:diag(2460,1,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:diag(2461,1,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:diag(2462,1,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:diag(2463,1,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:diag(2464,1,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:diag(2465,1,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:diag(2466,1,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:diag(2467,1,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:diag(2468,1,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:diag(2469,1,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:diag(2472,1,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:diag(2473,1,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_must_be_constant_expressions:diag(2474,1,"const_enum_member_initializers_must_be_constant_expressions_2474","const enum member initializers must be constant expressions."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:diag(2475,1,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:diag(2476,1,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:diag(2477,1,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:diag(2478,1,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:diag(2480,1,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:diag(2481,1,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:diag(2483,1,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:diag(2484,1,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:diag(2487,1,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:diag(2488,1,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:diag(2489,1,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:diag(2490,1,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:diag(2491,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:diag(2492,1,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:diag(2493,1,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:diag(2494,1,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:diag(2495,1,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:diag(2496,1,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496","The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:diag(2497,1,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:diag(2498,1,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:diag(2499,1,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:diag(2500,1,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:diag(2501,1,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:diag(2502,1,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:diag(2503,1,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:diag(2504,1,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:diag(2505,1,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:diag(2506,1,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:diag(2507,1,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:diag(2508,1,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:diag(2509,1,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:diag(2510,1,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:diag(2511,1,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:diag(2512,1,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:diag(2513,1,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),A_tuple_type_cannot_be_indexed_with_a_negative_value:diag(2514,1,"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514","A tuple type cannot be indexed with a negative value."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:diag(2515,1,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:diag(2516,1,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:diag(2517,1,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:diag(2518,1,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:diag(2519,1,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:diag(2520,1,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:diag(2522,1,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522","The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:diag(2523,1,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:diag(2524,1,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:diag(2526,1,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:diag(2527,1,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:diag(2528,1,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:diag(2529,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:diag(2530,1,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:diag(2531,1,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:diag(2532,1,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:diag(2533,1,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:diag(2534,1,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Type_0_cannot_be_used_to_index_type_1:diag(2536,1,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:diag(2537,1,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:diag(2538,1,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:diag(2539,1,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:diag(2540,1,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),Index_signature_in_type_0_only_permits_reading:diag(2542,1,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:diag(2543,1,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:diag(2544,1,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:diag(2545,1,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:diag(2547,1,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:diag(2548,1,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:diag(2549,1,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:diag(2550,1,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:diag(2551,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:diag(2552,1,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:diag(2553,1,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:diag(2554,1,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:diag(2555,1,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:diag(2556,1,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:diag(2558,1,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:diag(2559,1,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:diag(2560,1,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:diag(2561,1,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:diag(2562,1,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:diag(2563,1,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:diag(2564,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:diag(2565,1,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:diag(2566,1,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:diag(2567,1,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:diag(2568,1,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Could_not_find_name_0_Did_you_mean_1:diag(2570,1,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:diag(2571,1,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),A_rest_element_type_must_be_an_array_type:diag(2574,1,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:diag(2575,1,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:diag(2576,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:diag(2577,1,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:diag(2578,1,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:diag(2580,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:diag(2581,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:diag(2582,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:diag(2583,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:diag(2584,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:diag(2585,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Cannot_assign_to_0_because_it_is_a_constant:diag(2588,1,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:diag(2589,1,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:diag(2590,1,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:diag(2591,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:diag(2592,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:diag(2593,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:diag(2594,1,"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594","This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:diag(2595,1,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:diag(2596,1,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:diag(2597,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:diag(2598,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:diag(2602,1,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:diag(2603,1,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:diag(2604,1,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:diag(2606,1,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:diag(2607,1,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:diag(2608,1,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:diag(2609,1,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:diag(2610,1,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:diag(2611,1,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:diag(2612,1,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:diag(2613,1,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:diag(2614,1,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:diag(2615,1,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:diag(2616,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:diag(2617,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:diag(2618,1,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:diag(2619,1,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:diag(2620,1,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:diag(2621,1,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:diag(2623,1,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:diag(2624,1,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:diag(2625,1,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:diag(2626,1,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:diag(2627,1,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:diag(2628,1,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:diag(2629,1,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:diag(2630,1,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:diag(2631,1,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:diag(2632,1,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:diag(2633,1,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:diag(2634,1,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:diag(2635,1,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:diag(2636,1,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:diag(2637,1,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:diag(2638,1,"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638","Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),React_components_cannot_include_JSX_namespace_names:diag(2639,1,"React_components_cannot_include_JSX_namespace_names_2639","React components cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:diag(2649,1,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:diag(2650,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650","Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:diag(2651,1,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:diag(2652,1,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:diag(2653,1,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:diag(2654,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:diag(2655,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:diag(2656,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656","Non-abstract class expression is missing implementations for the following members of '{0}': {1}."),JSX_expressions_must_have_one_parent_element:diag(2657,1,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:diag(2658,1,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:diag(2659,1,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:diag(2660,1,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:diag(2661,1,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:diag(2662,1,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:diag(2663,1,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:diag(2664,1,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:diag(2665,1,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:diag(2666,1,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:diag(2667,1,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:diag(2668,1,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:diag(2669,1,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:diag(2670,1,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:diag(2671,1,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:diag(2672,1,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:diag(2673,1,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:diag(2674,1,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:diag(2675,1,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:diag(2676,1,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:diag(2677,1,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:diag(2678,1,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:diag(2679,1,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:diag(2680,1,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:diag(2681,1,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:diag(2683,1,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:diag(2684,1,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:diag(2685,1,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:diag(2686,1,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:diag(2687,1,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:diag(2688,1,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:diag(2689,1,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:diag(2690,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:diag(2692,1,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:diag(2693,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:diag(2694,1,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:diag(2695,1,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:diag(2696,1,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:diag(2697,1,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:diag(2698,1,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:diag(2699,1,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:diag(2700,1,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:diag(2701,1,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:diag(2702,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:diag(2703,1,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:diag(2704,1,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:diag(2705,1,"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705","An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:diag(2706,1,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:diag(2707,1,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:diag(2708,1,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:diag(2709,1,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:diag(2710,1,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:diag(2711,1,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:diag(2712,1,"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712","A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:diag(2713,1,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713","Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?"),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:diag(2714,1,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:diag(2715,1,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:diag(2716,1,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:diag(2717,1,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:diag(2718,1,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:diag(2719,1,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:diag(2720,1,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:diag(2721,1,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:diag(2722,1,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:diag(2723,1,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:diag(2724,1,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0:diag(2725,1,"Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 and above with module {0}."),Cannot_find_lib_definition_for_0:diag(2726,1,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:diag(2727,1,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:diag(2728,3,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:diag(2729,1,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:diag(2730,1,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:diag(2731,1,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:diag(2732,1,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:diag(2733,1,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:diag(2734,1,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:diag(2735,1,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:diag(2736,1,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:diag(2737,1,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:diag(2738,3,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:diag(2739,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:diag(2740,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:diag(2741,1,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:diag(2742,1,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:diag(2743,1,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:diag(2744,1,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:diag(2745,1,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:diag(2746,1,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:diag(2747,1,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_0_is_enabled:diag(2748,1,"Cannot_access_ambient_const_enums_when_0_is_enabled_2748","Cannot access ambient const enums when '{0}' is enabled."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:diag(2749,1,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:diag(2750,1,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:diag(2751,1,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:diag(2752,1,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:diag(2753,1,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:diag(2754,1,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:diag(2755,1,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:diag(2756,1,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:diag(2757,1,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:diag(2758,1,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:diag(2759,1,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:diag(2760,1,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:diag(2761,1,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:diag(2762,1,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:diag(2763,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:diag(2764,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:diag(2765,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:diag(2766,1,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:diag(2767,1,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:diag(2768,1,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:diag(2769,1,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:diag(2770,1,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:diag(2771,1,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:diag(2772,1,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:diag(2773,1,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:diag(2774,1,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:diag(2775,1,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:diag(2776,1,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:diag(2777,1,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:diag(2778,1,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:diag(2779,1,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:diag(2780,1,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:diag(2781,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:diag(2782,3,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:diag(2783,1,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:diag(2784,1,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:diag(2785,1,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:diag(2786,1,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:diag(2787,1,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:diag(2788,1,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:diag(2789,1,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:diag(2790,1,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:diag(2791,1,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:diag(2792,1,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:diag(2793,1,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:diag(2794,1,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:diag(2795,1,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:diag(2796,1,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:diag(2797,1,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:diag(2798,1,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:diag(2799,1,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:diag(2800,1,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:diag(2801,1,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:diag(2802,1,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:diag(2803,1,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:diag(2804,1,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Private_accessor_was_defined_without_a_getter:diag(2806,1,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:diag(2807,1,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:diag(2808,1,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:diag(2809,1,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:diag(2810,1,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),Initializer_for_property_0:diag(2811,1,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:diag(2812,1,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:diag(2813,1,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:diag(2814,1,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks:diag(2815,1,"arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks_2815","'arguments' cannot be referenced in property initializers or class static initialization blocks."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:diag(2816,1,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:diag(2817,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:diag(2818,1,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:diag(2819,1,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:diag(2820,1,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve:diag(2821,1,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2821","Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:diag(2822,1,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve:diag(2823,1,"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2823","Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'."),Cannot_find_namespace_0_Did_you_mean_1:diag(2833,1,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:diag(2834,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:diag(2835,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:diag(2836,1,"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836","Import assertions are not allowed on statements that compile to CommonJS 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:diag(2837,1,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:diag(2838,1,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:diag(2839,1,"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839","This condition will always return '{0}' since JavaScript compares objects by reference, not value."),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:diag(2840,1,"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840","An interface cannot extend a primitive type like '{0}'. It can only extend other named object types."),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:diag(2842,1,"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842","'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:diag(2843,1,"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843","We can only write a type for '{0}' by adding a type for the entire parameter here."),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:diag(2844,1,"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844","Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),This_condition_will_always_return_0:diag(2845,1,"This_condition_will_always_return_0_2845","This condition will always return '{0}'."),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:diag(2846,1,"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846","A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:diag(2848,1,"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848","The right-hand side of an 'instanceof' expression must not be an instantiation expression."),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:diag(2849,1,"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849","Target signature provides too few arguments. Expected {0} or more, but got {1}."),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:diag(2850,1,"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850","The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:diag(2851,1,"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851","The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:diag(2852,1,"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852","'await using' statements are only allowed within async functions and at the top levels of modules."),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:diag(2853,1,"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853","'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:diag(2854,1,"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854","Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:diag(2855,1,"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855","Class field '{0}' defined by the parent class is not accessible in the child class via super."),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:diag(2856,1,"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856","Import attributes are not allowed on statements that compile to CommonJS 'require' calls."),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:diag(2857,1,"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857","Import attributes cannot be used with type-only imports or exports."),Import_attribute_values_must_be_string_literal_expressions:diag(2858,1,"Import_attribute_values_must_be_string_literal_expressions_2858","Import attribute values must be string literal expressions."),Excessive_complexity_comparing_types_0_and_1:diag(2859,1,"Excessive_complexity_comparing_types_0_and_1_2859","Excessive complexity comparing types '{0}' and '{1}'."),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:diag(2860,1,"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860","The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:diag(2861,1,"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861","An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),Type_0_is_generic_and_can_only_be_indexed_for_reading:diag(2862,1,"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862","Type '{0}' is generic and can only be indexed for reading."),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:diag(2863,1,"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863","A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:diag(2864,1,"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864","A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:diag(2865,1,"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865","Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:diag(2866,1,"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866","Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:diag(2867,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:diag(2868,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig."),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:diag(2869,1,"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869","Right operand of ?? is unreachable because the left operand is never nullish."),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:diag(2870,1,"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870","This binary expression is never nullish. Are you missing parentheses?"),This_expression_is_always_nullish:diag(2871,1,"This_expression_is_always_nullish_2871","This expression is always nullish."),This_kind_of_expression_is_always_truthy:diag(2872,1,"This_kind_of_expression_is_always_truthy_2872","This kind of expression is always truthy."),This_kind_of_expression_is_always_falsy:diag(2873,1,"This_kind_of_expression_is_always_falsy_2873","This kind of expression is always falsy."),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:diag(2874,1,"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874","This JSX tag requires '{0}' to be in scope, but it could not be found."),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:diag(2875,1,"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875","This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed."),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:diag(2876,1,"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to "{0}".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:diag(2877,1,"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877","This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path."),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:diag(2878,1,"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878","This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files."),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:diag(2879,1,"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879","Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert:diag(2880,1,"Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert_2880","Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'."),This_expression_is_never_nullish:diag(2881,1,"This_expression_is_never_nullish_2881","This expression is never nullish."),Import_declaration_0_is_using_private_name_1:diag(4e3,1,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:diag(4002,1,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:diag(4004,1,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:diag(4006,1,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:diag(4008,1,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:diag(4010,1,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:diag(4012,1,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:diag(4014,1,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:diag(4016,1,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:diag(4019,1,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:diag(4020,1,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:diag(4021,1,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:diag(4022,1,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4023,1,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:diag(4024,1,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:diag(4025,1,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4026,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4027,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:diag(4028,1,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4029,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4030,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:diag(4031,1,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4032,1,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:diag(4033,1,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4034,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:diag(4035,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4036,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:diag(4037,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4038,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4039,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:diag(4040,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4041,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4042,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:diag(4043,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:diag(4044,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:diag(4045,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:diag(4046,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:diag(4047,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:diag(4048,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:diag(4049,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:diag(4050,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:diag(4051,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:diag(4052,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:diag(4053,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:diag(4054,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:diag(4055,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:diag(4056,1,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:diag(4057,1,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:diag(4058,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:diag(4059,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:diag(4060,1,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4061,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4062,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:diag(4063,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4064,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:diag(4065,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4066,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:diag(4067,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4068,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4069,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:diag(4070,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4071,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4072,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:diag(4073,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4074,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:diag(4075,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4076,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:diag(4077,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:diag(4078,1,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:diag(4081,1,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:diag(4082,1,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:diag(4083,1,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:diag(4084,1,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:diag(4085,1,"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085","Extends clause for inferred type '{0}' has or is using private name '{1}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4091,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:diag(4092,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:diag(4094,1,"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094","Property '{0}' of exported anonymous class type may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4095,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4096,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:diag(4097,1,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4098,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:diag(4099,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:diag(4100,1,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:diag(4101,1,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:diag(4102,1,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:diag(4103,1,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:diag(4104,1,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:diag(4105,1,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:diag(4106,1,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:diag(4107,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:diag(4108,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:diag(4109,1,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:diag(4110,1,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:diag(4111,1,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:diag(4112,1,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:diag(4113,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:diag(4114,1,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:diag(4115,1,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:diag(4116,1,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:diag(4117,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:diag(4118,1,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:diag(4119,1,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:diag(4120,1,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:diag(4121,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:diag(4122,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:diag(4123,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:diag(4124,1,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:diag(4125,1,"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125","Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given."),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:diag(4126,1,"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126","One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value."),This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic:diag(4127,1,"This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic_4127","This member cannot have an 'override' modifier because its name is dynamic."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic:diag(4128,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic_4128","This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic."),The_current_host_does_not_support_the_0_option:diag(5001,1,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:diag(5009,1,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:diag(5010,1,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:diag(5012,1,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Unknown_compiler_option_0:diag(5023,1,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:diag(5024,1,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:diag(5025,1,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:diag(5033,1,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:diag(5042,1,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:diag(5047,1,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:diag(5051,1,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:diag(5052,1,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:diag(5053,1,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:diag(5054,1,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:diag(5055,1,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:diag(5056,1,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:diag(5057,1,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:diag(5058,1,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:diag(5059,1,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:diag(5061,1,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:diag(5062,1,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:diag(5063,1,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:diag(5064,1,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:diag(5065,1,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:diag(5066,1,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:diag(5067,1,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:diag(5068,1,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:diag(5069,1,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:diag(5070,1,"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070","Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:diag(5071,1,"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071","Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'."),Unknown_build_option_0:diag(5072,1,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:diag(5073,1,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:diag(5074,1,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:diag(5075,1,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:diag(5076,1,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:diag(5077,1,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:diag(5078,1,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:diag(5079,1,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:diag(5080,1,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:diag(5081,1,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:diag(5082,1,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:diag(5083,1,"Cannot_read_file_0_5083","Cannot read file '{0}'."),A_tuple_member_cannot_be_both_optional_and_rest:diag(5085,1,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:diag(5086,1,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:diag(5087,1,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:diag(5088,1,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:diag(5089,1,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:diag(5090,1,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:diag(5091,1,"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),The_root_value_of_a_0_file_must_be_an_object:diag(5092,1,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:diag(5093,1,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:diag(5094,1,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:diag(5095,1,"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095","Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:diag(5096,1,"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096","Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:diag(5097,1,"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097","An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:diag(5098,1,"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098","Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:diag(5101,1,"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101","Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error."),Option_0_has_been_removed_Please_remove_it_from_your_configuration:diag(5102,1,"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102","Option '{0}' has been removed. Please remove it from your configuration."),Invalid_value_for_ignoreDeprecations:diag(5103,1,"Invalid_value_for_ignoreDeprecations_5103","Invalid value for '--ignoreDeprecations'."),Option_0_is_redundant_and_cannot_be_specified_with_option_1:diag(5104,1,"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104","Option '{0}' is redundant and cannot be specified with option '{1}'."),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:diag(5105,1,"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105","Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),Use_0_instead:diag(5106,3,"Use_0_instead_5106","Use '{0}' instead."),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:diag(5107,1,"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107","Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error."),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:diag(5108,1,"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108","Option '{0}={1}' has been removed. Please remove it from your configuration."),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:diag(5109,1,"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109","Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:diag(5110,1,"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110","Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:diag(6e3,3,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:diag(6001,3,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:diag(6002,3,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:diag(6004,3,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:diag(6005,3,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:diag(6006,3,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:diag(6007,3,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:diag(6008,3,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:diag(6009,3,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:diag(6010,3,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:diag(6011,3,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:diag(6012,3,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:diag(6013,3,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:diag(6014,3,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:diag(6015,3,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:diag(6016,3,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:diag(6017,3,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:diag(6019,3,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:diag(6020,3,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:diag(6023,3,"Syntax_Colon_0_6023","Syntax: {0}"),options:diag(6024,3,"options_6024","options"),file:diag(6025,3,"file_6025","file"),Examples_Colon_0:diag(6026,3,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:diag(6027,3,"Options_Colon_6027","Options:"),Version_0:diag(6029,3,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:diag(6030,3,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:diag(6031,3,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:diag(6032,3,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:diag(6034,3,"KIND_6034","KIND"),FILE:diag(6035,3,"FILE_6035","FILE"),VERSION:diag(6036,3,"VERSION_6036","VERSION"),LOCATION:diag(6037,3,"LOCATION_6037","LOCATION"),DIRECTORY:diag(6038,3,"DIRECTORY_6038","DIRECTORY"),STRATEGY:diag(6039,3,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:diag(6040,3,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Errors_Files:diag(6041,3,"Errors_Files_6041","Errors Files"),Generates_corresponding_map_file:diag(6043,3,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:diag(6044,1,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:diag(6045,1,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:diag(6046,1,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:diag(6048,1,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unable_to_open_file_0:diag(6050,1,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:diag(6051,1,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:diag(6052,3,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:diag(6053,1,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:diag(6054,1,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:diag(6055,3,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:diag(6056,3,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:diag(6058,3,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:diag(6059,1,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:diag(6060,3,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:diag(6061,3,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:diag(6064,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:diag(6065,3,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:diag(6066,3,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:diag(6070,3,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:diag(6071,3,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:diag(6072,3,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:diag(6073,3,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:diag(6074,3,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:diag(6075,3,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:diag(6076,3,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:diag(6077,3,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:diag(6078,3,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:diag(6079,3,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:diag(6080,3,"Specify_JSX_code_generation_6080","Specify JSX code generation."),Only_amd_and_system_modules_are_supported_alongside_0:diag(6082,1,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:diag(6083,3,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:diag(6084,3,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:diag(6085,3,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:diag(6086,3,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:diag(6087,3,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:diag(6088,3,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:diag(6089,3,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:diag(6090,3,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:diag(6091,3,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:diag(6092,3,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:diag(6093,3,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:diag(6094,3,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:diag(6095,3,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095","Loading module as file / folder, candidate module location '{0}', target file types: {1}."),File_0_does_not_exist:diag(6096,3,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exists_use_it_as_a_name_resolution_result:diag(6097,3,"File_0_exists_use_it_as_a_name_resolution_result_6097","File '{0}' exists - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:diag(6098,3,"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098","Loading module '{0}' from 'node_modules' folder, target file types: {1}."),Found_package_json_at_0:diag(6099,3,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:diag(6100,3,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:diag(6101,3,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:diag(6102,3,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:diag(6104,3,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:diag(6105,3,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:diag(6106,3,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:diag(6107,3,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:diag(6108,3,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:diag(6109,3,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:diag(6110,3,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:diag(6111,3,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:diag(6112,3,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:diag(6113,3,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:diag(6114,1,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:diag(6115,3,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:diag(6116,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:diag(6119,3,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:diag(6120,3,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:diag(6121,3,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:diag(6122,3,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:diag(6123,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:diag(6124,3,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:diag(6125,3,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:diag(6126,3,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:diag(6127,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:diag(6128,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:diag(6130,3,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:diag(6131,1,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:diag(6132,3,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:diag(6133,1,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:diag(6134,3,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:diag(6135,3,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:diag(6136,3,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:diag(6137,1,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:diag(6138,1,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:diag(6139,3,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:diag(6140,1,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:diag(6141,3,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:diag(6142,1,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:diag(6144,3,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:diag(6146,3,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:diag(6147,3,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:diag(6148,3,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:diag(6149,3,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:diag(6150,3,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:diag(6151,3,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:diag(6152,3,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:diag(6153,3,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:diag(6154,3,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:diag(6155,3,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:diag(6156,3,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:diag(6157,3,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:diag(6158,3,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:diag(6159,3,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:diag(6160,3,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:diag(6161,3,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:diag(6162,3,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:diag(6163,3,"The_character_set_of_the_input_files_6163","The character set of the input files."),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:diag(6164,3,"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164","Skipping module '{0}' that looks like an absolute URI, target file types: {1}."),Do_not_truncate_error_messages:diag(6165,3,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:diag(6166,3,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:diag(6167,3,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:diag(6168,3,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:diag(6169,3,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:diag(6170,3,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:diag(6171,3,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:diag(6179,3,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'."),Enable_all_strict_type_checking_options:diag(6180,3,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),Scoped_package_detected_looking_in_0:diag(6182,3,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:diag(6183,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:diag(6184,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:diag(6186,3,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:diag(6187,3,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:diag(6188,1,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:diag(6189,1,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:diag(6191,3,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:diag(6192,1,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:diag(6193,3,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:diag(6194,3,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:diag(6195,3,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:diag(6196,1,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:diag(6197,3,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:diag(6198,1,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:diag(6199,1,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:diag(6200,1,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:diag(6201,3,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:diag(6202,1,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:diag(6203,3,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:diag(6204,3,"and_here_6204","and here."),All_type_parameters_are_unused:diag(6205,1,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:diag(6206,3,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:diag(6207,3,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:diag(6208,3,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:diag(6209,3,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:diag(6210,3,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:diag(6211,3,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:diag(6212,3,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:diag(6213,3,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:diag(6214,3,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:diag(6215,3,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:diag(6216,3,"Found_1_error_6216","Found 1 error."),Found_0_errors:diag(6217,3,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:diag(6218,3,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:diag(6219,3,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:diag(6220,3,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:diag(6221,3,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:diag(6222,3,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:diag(6223,3,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:diag(6224,3,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:diag(6225,3,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:diag(6226,3,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:diag(6227,3,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:diag(6229,1,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:diag(6230,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:diag(6231,1,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:diag(6232,1,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:diag(6233,1,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:diag(6234,1,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:diag(6235,3,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:diag(6236,1,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:diag(6237,3,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:diag(6238,1,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:diag(6239,3,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:diag(6240,3,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:diag(6241,3,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:diag(6242,3,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:diag(6243,3,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:diag(6244,3,"Modules_6244","Modules"),File_Management:diag(6245,3,"File_Management_6245","File Management"),Emit:diag(6246,3,"Emit_6246","Emit"),JavaScript_Support:diag(6247,3,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:diag(6248,3,"Type_Checking_6248","Type Checking"),Editor_Support:diag(6249,3,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:diag(6250,3,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:diag(6251,3,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:diag(6252,3,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:diag(6253,3,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:diag(6254,3,"Language_and_Environment_6254","Language and Environment"),Projects:diag(6255,3,"Projects_6255","Projects"),Output_Formatting:diag(6256,3,"Output_Formatting_6256","Output Formatting"),Completeness:diag(6257,3,"Completeness_6257","Completeness"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:diag(6258,1,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_0:diag(6259,3,"Found_1_error_in_0_6259","Found 1 error in {0}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:diag(6260,3,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:diag(6261,3,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),File_name_0_has_a_1_extension_looking_up_2_instead:diag(6262,3,"File_name_0_has_a_1_extension_looking_up_2_instead_6262","File name '{0}' has a '{1}' extension - looking up '{2}' instead."),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:diag(6263,1,"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263","Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:diag(6264,3,"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264","Enable importing files with any extension, provided a declaration file is present."),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:diag(6265,3,"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265","Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."),Option_0_can_only_be_specified_on_command_line:diag(6266,1,"Option_0_can_only_be_specified_on_command_line_6266","Option '{0}' can only be specified on command line."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:diag(6270,3,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:diag(6271,3,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:diag(6272,3,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:diag(6273,3,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:diag(6274,3,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:diag(6275,3,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:diag(6276,3,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:diag(6277,3,"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277","Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:diag(6278,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278","There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings."),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:diag(6279,3,"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279","Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:diag(6280,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280","There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),package_json_has_a_peerDependencies_field:diag(6281,3,"package_json_has_a_peerDependencies_field_6281","'package.json' has a 'peerDependencies' field."),Found_peerDependency_0_with_1_version:diag(6282,3,"Found_peerDependency_0_with_1_version_6282","Found peerDependency '{0}' with '{1}' version."),Failed_to_find_peerDependency_0:diag(6283,3,"Failed_to_find_peerDependency_0_6283","Failed to find peerDependency '{0}'."),File_Layout:diag(6284,3,"File_Layout_6284","File Layout"),Environment_Settings:diag(6285,3,"Environment_Settings_6285","Environment Settings"),See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule:diag(6286,3,"See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule_6286","See also https://aka.ms/tsconfig/module"),For_nodejs_Colon:diag(6287,3,"For_nodejs_Colon_6287","For nodejs:"),and_npm_install_D_types_Slashnode:diag(6290,3,"and_npm_install_D_types_Slashnode_6290","and npm install -D @types/node"),Other_Outputs:diag(6291,3,"Other_Outputs_6291","Other Outputs"),Stricter_Typechecking_Options:diag(6292,3,"Stricter_Typechecking_Options_6292","Stricter Typechecking Options"),Style_Options:diag(6293,3,"Style_Options_6293","Style Options"),Recommended_Options:diag(6294,3,"Recommended_Options_6294","Recommended Options"),Enable_project_compilation:diag(6302,3,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:diag(6304,1,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:diag(6305,1,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:diag(6306,1,"Referenced_project_0_must_have_setting_composite_Colon_true_6306","Referenced project '{0}' must have setting \"composite\": true."),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:diag(6307,1,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Referenced_project_0_may_not_disable_emit:diag(6310,1,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:diag(6350,3,"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350","Project '{0}' is out of date because output '{1}' is older than input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:diag(6351,3,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:diag(6352,3,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:diag(6353,3,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:diag(6354,3,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:diag(6355,3,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:diag(6356,3,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:diag(6357,3,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:diag(6358,3,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:diag(6359,3,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),Project_0_is_up_to_date:diag(6361,3,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:diag(6362,3,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:diag(6363,3,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:diag(6364,3,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:diag(6365,3,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects."),Show_what_would_be_built_or_deleted_if_specified_with_clean:diag(6367,3,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:diag(6369,1,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:diag(6370,1,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:diag(6371,3,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:diag(6374,3,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:diag(6377,1,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Composite_projects_may_not_disable_incremental_compilation:diag(6379,1,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:diag(6380,3,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:diag(6381,3,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:diag(6382,3,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:diag(6383,3,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:diag(6384,3,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:diag(6385,2,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:diag(6386,3,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:diag(6387,2,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:diag(6388,3,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:diag(6389,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:diag(6390,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:diag(6391,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:diag(6392,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:diag(6393,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:diag(6394,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:diag(6395,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:diag(6396,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:diag(6397,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:diag(6398,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:diag(6399,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399","Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:diag(6400,3,"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400","Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:diag(6401,3,"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401","Project '{0}' is out of date because there was error reading file '{1}'"),Resolving_in_0_mode_with_conditions_1:diag(6402,3,"Resolving_in_0_mode_with_conditions_1_6402","Resolving in {0} mode with conditions {1}."),Matched_0_condition_1:diag(6403,3,"Matched_0_condition_1_6403","Matched '{0}' condition '{1}'."),Using_0_subpath_1_with_target_2:diag(6404,3,"Using_0_subpath_1_with_target_2_6404","Using '{0}' subpath '{1}' with target '{2}'."),Saw_non_matching_condition_0:diag(6405,3,"Saw_non_matching_condition_0_6405","Saw non-matching condition '{0}'."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:diag(6406,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406","Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:diag(6407,3,"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407","Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),Use_the_package_json_exports_field_when_resolving_package_imports:diag(6408,3,"Use_the_package_json_exports_field_when_resolving_package_imports_6408","Use the package.json 'exports' field when resolving package imports."),Use_the_package_json_imports_field_when_resolving_imports:diag(6409,3,"Use_the_package_json_imports_field_when_resolving_imports_6409","Use the package.json 'imports' field when resolving imports."),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:diag(6410,3,"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410","Conditions to set in addition to the resolver-specific defaults when resolving imports."),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:diag(6411,3,"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411","`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:diag(6412,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412","Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),Entering_conditional_exports:diag(6413,3,"Entering_conditional_exports_6413","Entering conditional exports."),Resolved_under_condition_0:diag(6414,3,"Resolved_under_condition_0_6414","Resolved under condition '{0}'."),Failed_to_resolve_under_condition_0:diag(6415,3,"Failed_to_resolve_under_condition_0_6415","Failed to resolve under condition '{0}'."),Exiting_conditional_exports:diag(6416,3,"Exiting_conditional_exports_6416","Exiting conditional exports."),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:diag(6417,3,"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417","Searching all ancestor node_modules directories for preferred extensions: {0}."),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:diag(6418,3,"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418","Searching all ancestor node_modules directories for fallback extensions: {0}."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:diag(6419,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419","Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors."),Project_0_is_out_of_date_because_1:diag(6420,3,"Project_0_is_out_of_date_because_1_6420","Project '{0}' is out of date because {1}."),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:diag(6421,3,"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421","Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:diag(6500,3,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:diag(6501,3,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:diag(6502,3,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:diag(6503,3,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:diag(6504,1,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:diag(6505,3,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:diag(6506,3,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files:diag(6600,3,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:diag(6601,3,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:diag(6602,3,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:diag(6603,3,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:diag(6604,3,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:diag(6605,3,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:diag(6606,3,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:diag(6607,3,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:diag(6608,3,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:diag(6609,3,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:diag(6611,3,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:diag(6612,3,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:diag(6613,3,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:diag(6614,3,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:diag(6615,3,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:diag(6616,3,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:diag(6617,3,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:diag(6618,3,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:diag(6619,3,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:diag(6620,3,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects."),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:diag(6621,3,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:diag(6622,3,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Only_output_d_ts_files_and_not_JavaScript_files:diag(6623,3,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:diag(6624,3,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:diag(6625,3,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:diag(6626,3,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),Filters_results_from_the_include_option:diag(6627,3,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:diag(6628,3,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:diag(6629,3,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_legacy_experimental_decorators:diag(6630,3,"Enable_experimental_support_for_legacy_experimental_decorators_6630","Enable experimental support for legacy experimental decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:diag(6631,3,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:diag(6632,3,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:diag(6633,3,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:diag(6634,3,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:diag(6635,3,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:diag(6636,3,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date."),Ensure_that_casing_is_correct_in_imports:diag(6637,3,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:diag(6638,3,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:diag(6639,3,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Skip_building_downstream_projects_on_error_in_upstream_project:diag(6640,3,"Skip_building_downstream_projects_on_error_in_upstream_project_6640","Skip building downstream projects on error in upstream project."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:diag(6641,3,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:diag(6642,3,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:diag(6643,3,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:diag(6644,3,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:diag(6645,3,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:diag(6646,3,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:diag(6647,3,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:diag(6648,3,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:diag(6649,3,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:diag(6650,3,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:diag(6651,3,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:diag(6652,3,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:diag(6653,3,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:diag(6654,3,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:diag(6655,3,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:diag(6656,3,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),Specify_what_module_code_is_generated:diag(6657,3,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:diag(6658,3,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:diag(6659,3,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:diag(6660,3,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:diag(6661,3,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like '__extends' in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:diag(6662,3,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:diag(6663,3,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:diag(6664,3,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:diag(6665,3,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied 'any' type."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:diag(6666,3,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:diag(6667,3,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:diag(6668,3,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when 'this' is given the type 'any'."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:diag(6669,3,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:diag(6670,3,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:diag(6671,3,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type."),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:diag(6672,3,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:diag(6673,3,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:diag(6674,3,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add 'undefined' to a type when accessed using an index."),Enable_error_reporting_when_local_variables_aren_t_read:diag(6675,3,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:diag(6676,3,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read."),Deprecated_setting_Use_outFile_instead:diag(6677,3,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use 'outFile' instead."),Specify_an_output_folder_for_all_emitted_files:diag(6678,3,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:diag(6679,3,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:diag(6680,3,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:diag(6681,3,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:diag(6682,3,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing 'const enum' declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:diag(6683,3,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:diag(6684,3,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode."),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:diag(6685,3,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read."),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:diag(6686,3,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:diag(6687,3,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:diag(6688,3,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:diag(6689,3,"Enable_importing_json_files_6689","Enable importing .json files."),Specify_the_root_folder_within_your_source_files:diag(6690,3,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:diag(6691,3,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:diag(6692,3,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:diag(6693,3,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:diag(6694,3,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:diag(6695,3,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:diag(6697,3,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:diag(6698,3,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:diag(6699,3,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account 'null' and 'undefined'."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:diag(6700,3,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:diag(6701,3,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have '@internal' in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:diag(6702,3,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:diag(6703,3,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:diag(6704,3,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:diag(6705,3,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:diag(6706,3,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the 'moduleResolution' process."),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:diag(6707,3,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),Specify_options_for_automatic_acquisition_of_declaration_files:diag(6709,3,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:diag(6710,3,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like './node_modules/@types'."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:diag(6711,3,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:diag(6712,3,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:diag(6713,3,"Enable_verbose_logging_6713","Enable verbose logging."),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:diag(6714,3,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:diag(6715,3,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:diag(6717,3,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:diag(6718,3,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types."),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:diag(6719,3,"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719","Require sufficient annotation on exports so other tools can trivially generate declaration files."),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:diag(6720,3,"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720","Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'."),Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript:diag(6721,3,"Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript_6721","Do not allow runtime constructs that are not part of ECMAScript."),Default_catch_clause_variables_as_unknown_instead_of_any:diag(6803,3,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default catch clause variables as 'unknown' instead of 'any'."),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:diag(6804,3,"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804","Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:diag(6805,3,"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805","Disable full type checking (only critical parse and emit errors will be reported)."),Check_side_effect_imports:diag(6806,3,"Check_side_effect_imports_6806","Check side effect imports."),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:diag(6807,1,"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807","This operation can be simplified. This shift is identical to `{0} {1} {2}`."),Enable_lib_replacement:diag(6808,3,"Enable_lib_replacement_6808","Enable lib replacement."),one_of_Colon:diag(6900,3,"one_of_Colon_6900","one of:"),one_or_more_Colon:diag(6901,3,"one_or_more_Colon_6901","one or more:"),type_Colon:diag(6902,3,"type_Colon_6902","type:"),default_Colon:diag(6903,3,"default_Colon_6903","default:"),module_system_or_esModuleInterop:diag(6904,3,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:diag(6905,3,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:diag(6906,3,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:diag(6907,3,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:diag(6908,3,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:diag(6909,3,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:diag(69010,3,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:diag(6911,3,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:diag(6912,3,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:diag(6913,3,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:diag(6914,3,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:diag(6915,3,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:diag(6916,3,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:diag(6917,3,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:diag(6918,3,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:diag(6919,3,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:diag(6920,3,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:diag(6921,3,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:diag(6922,3,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:diag(6923,3,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:diag(6924,3,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:diag(6925,3,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:diag(6926,3,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:diag(6927,3,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:diag(6928,3,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:diag(6929,3,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),true_for_ES2022_and_above_including_ESNext:diag(6930,3,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:diag(6931,1,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),Variable_0_implicitly_has_an_1_type:diag(7005,1,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:diag(7006,1,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:diag(7008,1,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:diag(7009,1,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:diag(7010,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:diag(7011,1,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:diag(7012,1,"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012","This overload implicitly returns the type '{0}' because it lacks a return type annotation."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:diag(7013,1,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:diag(7014,1,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:diag(7015,1,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:diag(7016,1,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:diag(7017,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:diag(7018,1,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:diag(7019,1,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:diag(7020,1,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:diag(7022,1,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:diag(7023,1,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:diag(7024,1,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:diag(7025,1,"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025","Generator implicitly has yield type '{0}'. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:diag(7026,1,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:diag(7027,1,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:diag(7028,1,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:diag(7029,1,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:diag(7030,1,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:diag(7031,1,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:diag(7032,1,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:diag(7033,1,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:diag(7034,1,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:diag(7035,1,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:diag(7036,1,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:diag(7037,3,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:diag(7038,3,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:diag(7039,1,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:diag(7040,1,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:diag(7041,1,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:diag(7042,1,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:diag(7043,2,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:diag(7044,2,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:diag(7045,2,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:diag(7046,2,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:diag(7047,2,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:diag(7048,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:diag(7049,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:diag(7050,2,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:diag(7051,1,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:diag(7052,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:diag(7053,1,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:diag(7054,1,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:diag(7055,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:diag(7056,1,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:diag(7057,1,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:diag(7058,1,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:diag(7059,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:diag(7060,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:diag(7061,1,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),You_cannot_rename_this_element:diag(8e3,1,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:diag(8001,1,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:diag(8002,1,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:diag(8003,1,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:diag(8004,1,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:diag(8005,1,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:diag(8006,1,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:diag(8008,1,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:diag(8009,1,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:diag(8010,1,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:diag(8011,1,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:diag(8012,1,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:diag(8013,1,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:diag(8016,1,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Signature_declarations_can_only_be_used_in_TypeScript_files:diag(8017,1,"Signature_declarations_can_only_be_used_in_TypeScript_files_8017","Signature declarations can only be used in TypeScript files."),Report_errors_in_js_files:diag(8019,3,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:diag(8020,1,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:diag(8021,1,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:diag(8022,1,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:diag(8023,1,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:diag(8024,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:diag(8025,1,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:diag(8026,1,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:diag(8027,1,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:diag(8028,1,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:diag(8029,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:diag(8030,1,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:diag(8031,1,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:diag(8032,1,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:diag(8033,1,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:diag(8034,1,"The_tag_was_first_specified_here_8034","The tag was first specified here."),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:diag(8035,1,"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035","You cannot rename elements that are defined in a 'node_modules' folder."),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:diag(8036,1,"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036","You cannot rename elements that are defined in another 'node_modules' folder."),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:diag(8037,1,"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037","Type satisfaction expressions can only be used in TypeScript files."),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:diag(8038,1,"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038","Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:diag(8039,1,"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039","A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:diag(9005,1,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:diag(9006,1,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:diag(9007,1,"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007","Function must have an explicit return type annotation with --isolatedDeclarations."),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:diag(9008,1,"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008","Method must have an explicit return type annotation with --isolatedDeclarations."),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:diag(9009,1,"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009","At least one accessor must have an explicit type annotation with --isolatedDeclarations."),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:diag(9010,1,"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010","Variable must have an explicit type annotation with --isolatedDeclarations."),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:diag(9011,1,"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011","Parameter must have an explicit type annotation with --isolatedDeclarations."),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:diag(9012,1,"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012","Property must have an explicit type annotation with --isolatedDeclarations."),Expression_type_can_t_be_inferred_with_isolatedDeclarations:diag(9013,1,"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013","Expression type can't be inferred with --isolatedDeclarations."),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:diag(9014,1,"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014","Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:diag(9015,1,"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015","Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:diag(9016,1,"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016","Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:diag(9017,1,"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017","Only const arrays can be inferred with --isolatedDeclarations."),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:diag(9018,1,"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018","Arrays with spread elements can't inferred with --isolatedDeclarations."),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:diag(9019,1,"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019","Binding elements can't be exported directly with --isolatedDeclarations."),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:diag(9020,1,"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020","Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:diag(9021,1,"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021","Extends clause can't contain an expression with --isolatedDeclarations."),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:diag(9022,1,"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022","Inference from class expressions is not supported with --isolatedDeclarations."),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:diag(9023,1,"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023","Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:diag(9025,1,"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025","Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations."),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:diag(9026,1,"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026","Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),Add_a_type_annotation_to_the_variable_0:diag(9027,1,"Add_a_type_annotation_to_the_variable_0_9027","Add a type annotation to the variable {0}."),Add_a_type_annotation_to_the_parameter_0:diag(9028,1,"Add_a_type_annotation_to_the_parameter_0_9028","Add a type annotation to the parameter {0}."),Add_a_type_annotation_to_the_property_0:diag(9029,1,"Add_a_type_annotation_to_the_property_0_9029","Add a type annotation to the property {0}."),Add_a_return_type_to_the_function_expression:diag(9030,1,"Add_a_return_type_to_the_function_expression_9030","Add a return type to the function expression."),Add_a_return_type_to_the_function_declaration:diag(9031,1,"Add_a_return_type_to_the_function_declaration_9031","Add a return type to the function declaration."),Add_a_return_type_to_the_get_accessor_declaration:diag(9032,1,"Add_a_return_type_to_the_get_accessor_declaration_9032","Add a return type to the get accessor declaration."),Add_a_type_to_parameter_of_the_set_accessor_declaration:diag(9033,1,"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033","Add a type to parameter of the set accessor declaration."),Add_a_return_type_to_the_method:diag(9034,1,"Add_a_return_type_to_the_method_9034","Add a return type to the method"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:diag(9035,1,"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035","Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:diag(9036,1,"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036","Move the expression in default export to a variable and add a type annotation to it."),Default_exports_can_t_be_inferred_with_isolatedDeclarations:diag(9037,1,"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037","Default exports can't be inferred with --isolatedDeclarations."),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:diag(9038,1,"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038","Computed property names on class or object literals cannot be inferred with --isolatedDeclarations."),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:diag(9039,1,"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039","Type containing private name '{0}' can't be used with --isolatedDeclarations."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:diag(17e3,1,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:diag(17001,1,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:diag(17002,1,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:diag(17004,1,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:diag(17005,1,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:diag(17006,1,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:diag(17007,1,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:diag(17008,1,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:diag(17009,1,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:diag(17010,1,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:diag(17011,1,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:diag(17012,1,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:diag(17013,1,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:diag(17014,1,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:diag(17015,1,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:diag(17016,1,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:diag(17017,1,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:diag(17018,1,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:diag(17019,1,"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019","'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:diag(17020,1,"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020","'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),Unicode_escape_sequence_cannot_appear_here:diag(17021,1,"Unicode_escape_sequence_cannot_appear_here_17021","Unicode escape sequence cannot appear here."),Circularity_detected_while_resolving_configuration_Colon_0:diag(18e3,1,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),The_files_list_in_config_file_0_is_empty:diag(18002,1,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:diag(18003,1,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:diag(80001,2,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES module."),This_constructor_function_may_be_converted_to_a_class_declaration:diag(80002,2,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:diag(80003,2,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:diag(80004,2,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:diag(80005,2,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:diag(80006,2,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:diag(80007,2,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:diag(80008,2,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),JSDoc_typedef_may_be_converted_to_TypeScript_type:diag(80009,2,"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009","JSDoc typedef may be converted to TypeScript type."),JSDoc_typedefs_may_be_converted_to_TypeScript_types:diag(80010,2,"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010","JSDoc typedefs may be converted to TypeScript types."),Add_missing_super_call:diag(90001,3,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:diag(90002,3,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:diag(90003,3,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:diag(90004,3,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:diag(90005,3,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:diag(90006,3,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:diag(90007,3,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:diag(90008,3,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:diag(90010,3,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:diag(90011,3,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:diag(90012,3,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_1:diag(90013,3,"Import_0_from_1_90013","Import '{0}' from \"{1}\""),Change_0_to_1:diag(90014,3,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Declare_property_0:diag(90016,3,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:diag(90017,3,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:diag(90018,3,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:diag(90019,3,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:diag(90020,3,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:diag(90021,3,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:diag(90022,3,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:diag(90023,3,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:diag(90024,3,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:diag(90025,3,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:diag(90026,3,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:diag(90027,3,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:diag(90028,3,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:diag(90029,3,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:diag(90030,3,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:diag(90031,3,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Add_parameter_name:diag(90034,3,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:diag(90035,3,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:diag(90036,3,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:diag(90037,3,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:diag(90038,3,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:diag(90039,3,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:diag(90041,3,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:diag(90053,3,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Includes_imports_of_types_referenced_by_0:diag(90054,3,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:diag(90055,3,"Remove_type_from_import_declaration_from_0_90055","Remove 'type' from import declaration from \"{0}\""),Remove_type_from_import_of_0_from_1:diag(90056,3,"Remove_type_from_import_of_0_from_1_90056","Remove 'type' from import of '{0}' from \"{1}\""),Add_import_from_0:diag(90057,3,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:diag(90058,3,"Update_import_from_0_90058",'Update import from "{0}"'),Export_0_from_module_1:diag(90059,3,"Export_0_from_module_1_90059","Export '{0}' from module '{1}'"),Export_all_referenced_locals:diag(90060,3,"Export_all_referenced_locals_90060","Export all referenced locals"),Update_modifiers_of_0:diag(90061,3,"Update_modifiers_of_0_90061","Update modifiers of '{0}'"),Add_annotation_of_type_0:diag(90062,3,"Add_annotation_of_type_0_90062","Add annotation of type '{0}'"),Add_return_type_0:diag(90063,3,"Add_return_type_0_90063","Add return type '{0}'"),Extract_base_class_to_variable:diag(90064,3,"Extract_base_class_to_variable_90064","Extract base class to variable"),Extract_default_export_to_variable:diag(90065,3,"Extract_default_export_to_variable_90065","Extract default export to variable"),Extract_binding_expressions_to_variable:diag(90066,3,"Extract_binding_expressions_to_variable_90066","Extract binding expressions to variable"),Add_all_missing_type_annotations:diag(90067,3,"Add_all_missing_type_annotations_90067","Add all missing type annotations"),Add_satisfies_and_an_inline_type_assertion_with_0:diag(90068,3,"Add_satisfies_and_an_inline_type_assertion_with_0_90068","Add satisfies and an inline type assertion with '{0}'"),Extract_to_variable_and_replace_with_0_as_typeof_0:diag(90069,3,"Extract_to_variable_and_replace_with_0_as_typeof_0_90069","Extract to variable and replace with '{0} as typeof {0}'"),Mark_array_literal_as_const:diag(90070,3,"Mark_array_literal_as_const_90070","Mark array literal as const"),Annotate_types_of_properties_expando_function_in_a_namespace:diag(90071,3,"Annotate_types_of_properties_expando_function_in_a_namespace_90071","Annotate types of properties expando function in a namespace"),Convert_function_to_an_ES2015_class:diag(95001,3,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_0_to_1_in_0:diag(95003,3,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:diag(95004,3,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:diag(95005,3,"Extract_function_95005","Extract function"),Extract_constant:diag(95006,3,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:diag(95007,3,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:diag(95008,3,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:diag(95009,3,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Infer_type_of_0_from_usage:diag(95011,3,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:diag(95012,3,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:diag(95013,3,"Convert_to_default_import_95013","Convert to default import"),Install_0:diag(95014,3,"Install_0_95014","Install '{0}'"),Replace_import_with_0:diag(95015,3,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:diag(95016,3,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES_module:diag(95017,3,"Convert_to_ES_module_95017","Convert to ES module"),Add_undefined_type_to_property_0:diag(95018,3,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:diag(95019,3,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:diag(95020,3,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:diag(95021,3,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:diag(95022,3,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:diag(95023,3,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:diag(95024,3,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:diag(95025,3,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:diag(95026,3,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:diag(95027,3,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:diag(95028,3,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:diag(95029,3,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:diag(95030,3,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:diag(95031,3,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:diag(95032,3,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:diag(95033,3,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:diag(95034,3,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:diag(95035,3,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:diag(95036,3,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:diag(95037,3,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:diag(95038,3,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:diag(95039,3,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:diag(95040,3,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:diag(95041,3,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:diag(95042,3,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:diag(95043,3,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:diag(95044,3,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:diag(95045,3,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:diag(95046,3,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:diag(95047,3,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:diag(95048,3,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:diag(95049,3,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:diag(95050,3,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:diag(95051,3,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:diag(95052,3,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:diag(95053,3,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:diag(95054,3,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:diag(95055,3,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:diag(95056,3,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:diag(95057,3,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:diag(95058,3,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:diag(95059,3,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:diag(95060,3,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:diag(95061,3,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:diag(95062,3,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:diag(95063,3,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:diag(95064,3,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:diag(95065,3,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:diag(95066,3,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:diag(95067,3,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:diag(95068,3,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:diag(95069,3,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:diag(95070,3,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:diag(95071,3,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:diag(95072,3,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:diag(95073,3,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:diag(95074,3,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:diag(95075,3,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:diag(95077,3,"Extract_type_95077","Extract type"),Extract_to_type_alias:diag(95078,3,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:diag(95079,3,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:diag(95080,3,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:diag(95081,3,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:diag(95082,3,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:diag(95083,3,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:diag(95084,3,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:diag(95085,3,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:diag(95086,3,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:diag(95087,3,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:diag(95088,3,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:diag(95089,3,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:diag(95090,3,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:diag(95091,3,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:diag(95092,3,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:diag(95093,3,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:diag(95094,3,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:diag(95095,3,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:diag(95096,3,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:diag(95097,3,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:diag(95098,3,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:diag(95099,3,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:diag(95100,3,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:diag(95101,3,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Convert_all_const_to_let:diag(95102,3,"Convert_all_const_to_let_95102","Convert all 'const' to 'let'"),Convert_function_expression_0_to_arrow_function:diag(95105,3,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:diag(95106,3,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:diag(95107,3,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:diag(95108,3,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:diag(95109,3,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:diag(95110,3,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig to read more about this file"),Add_a_return_statement:diag(95111,3,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:diag(95112,3,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:diag(95113,3,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:diag(95114,3,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:diag(95115,3,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:diag(95116,3,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:diag(95117,3,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:diag(95118,3,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:diag(95119,3,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:diag(95120,3,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:diag(95121,3,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:diag(95122,3,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:diag(95123,3,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:diag(95124,3,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:diag(95125,3,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:diag(95126,3,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:diag(95127,3,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:diag(95128,3,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:diag(95129,3,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:diag(95130,3,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:diag(95131,3,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:diag(95132,3,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:diag(95133,3,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:diag(95134,3,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:diag(95135,3,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:diag(95136,3,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:diag(95137,3,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:diag(95138,3,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:diag(95139,3,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:diag(95140,3,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:diag(95141,3,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:diag(95142,3,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:diag(95143,3,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:diag(95144,3,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:diag(95145,3,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:diag(95146,3,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:diag(95147,3,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:diag(95148,3,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:diag(95149,3,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:diag(95150,3,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:diag(95151,3,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:diag(95152,3,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:diag(95153,3,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenations_and_string_literals:diag(95154,3,"Can_only_convert_string_concatenations_and_string_literals_95154","Can only convert string concatenations and string literals"),Selection_is_not_a_valid_statement_or_statements:diag(95155,3,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:diag(95156,3,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:diag(95157,3,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:diag(95158,3,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:diag(95159,3,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:diag(95160,3,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:diag(95161,3,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:diag(95162,3,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:diag(95163,3,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:diag(95164,3,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:diag(95165,3,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:diag(95166,3,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:diag(95167,3,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:diag(95168,3,"Add_all_missing_attributes_95168","Add all missing attributes"),Add_undefined_to_optional_property_type:diag(95169,3,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:diag(95170,3,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:diag(95171,3,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:diag(95172,3,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:diag(95173,3,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),Use_0:diag(95174,3,"Use_0_95174","Use `{0}`."),Use_Number_isNaN_in_all_conditions:diag(95175,3,"Use_Number_isNaN_in_all_conditions_95175","Use `Number.isNaN` in all conditions."),Convert_typedef_to_TypeScript_type:diag(95176,3,"Convert_typedef_to_TypeScript_type_95176","Convert typedef to TypeScript type."),Convert_all_typedef_to_TypeScript_types:diag(95177,3,"Convert_all_typedef_to_TypeScript_types_95177","Convert all typedef to TypeScript types."),Move_to_file:diag(95178,3,"Move_to_file_95178","Move to file"),Cannot_move_to_file_selected_file_is_invalid:diag(95179,3,"Cannot_move_to_file_selected_file_is_invalid_95179","Cannot move to file, selected file is invalid"),Use_import_type:diag(95180,3,"Use_import_type_95180","Use 'import type'"),Use_type_0:diag(95181,3,"Use_type_0_95181","Use 'type {0}'"),Fix_all_with_type_only_imports:diag(95182,3,"Fix_all_with_type_only_imports_95182","Fix all with type-only imports"),Cannot_move_statements_to_the_selected_file:diag(95183,3,"Cannot_move_statements_to_the_selected_file_95183","Cannot move statements to the selected file"),Inline_variable:diag(95184,3,"Inline_variable_95184","Inline variable"),Could_not_find_variable_to_inline:diag(95185,3,"Could_not_find_variable_to_inline_95185","Could not find variable to inline."),Variables_with_multiple_declarations_cannot_be_inlined:diag(95186,3,"Variables_with_multiple_declarations_cannot_be_inlined_95186","Variables with multiple declarations cannot be inlined."),Add_missing_comma_for_object_member_completion_0:diag(95187,3,"Add_missing_comma_for_object_member_completion_0_95187","Add missing comma for object member completion '{0}'."),Add_missing_parameter_to_0:diag(95188,3,"Add_missing_parameter_to_0_95188","Add missing parameter to '{0}'"),Add_missing_parameters_to_0:diag(95189,3,"Add_missing_parameters_to_0_95189","Add missing parameters to '{0}'"),Add_all_missing_parameters:diag(95190,3,"Add_all_missing_parameters_95190","Add all missing parameters"),Add_optional_parameter_to_0:diag(95191,3,"Add_optional_parameter_to_0_95191","Add optional parameter to '{0}'"),Add_optional_parameters_to_0:diag(95192,3,"Add_optional_parameters_to_0_95192","Add optional parameters to '{0}'"),Add_all_optional_parameters:diag(95193,3,"Add_all_optional_parameters_95193","Add all optional parameters"),Wrap_in_parentheses:diag(95194,3,"Wrap_in_parentheses_95194","Wrap in parentheses"),Wrap_all_invalid_decorator_expressions_in_parentheses:diag(95195,3,"Wrap_all_invalid_decorator_expressions_in_parentheses_95195","Wrap all invalid decorator expressions in parentheses"),Add_resolution_mode_import_attribute:diag(95196,3,"Add_resolution_mode_import_attribute_95196","Add 'resolution-mode' import attribute"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:diag(95197,3,"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197","Add 'resolution-mode' import attribute to all type-only imports that need it"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:diag(18004,1,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:diag(18006,1,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:diag(18007,1,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:diag(18009,1,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:diag(18010,1,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:diag(18011,1,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:diag(18012,1,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:diag(18013,1,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:diag(18014,1,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:diag(18015,1,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:diag(18016,1,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:diag(18017,1,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:diag(18018,1,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:diag(18019,1,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:diag(18024,1,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:diag(18026,1,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:diag(18027,1,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:diag(18028,1,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:diag(18029,1,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:diag(18030,1,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:diag(18031,1,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:diag(18032,1,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:diag(18033,1,"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033","Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:diag(18034,3,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:diag(18035,1,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:diag(18036,1,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),await_expression_cannot_be_used_inside_a_class_static_block:diag(18037,1,"await_expression_cannot_be_used_inside_a_class_static_block_18037","'await' expression cannot be used inside a class static block."),for_await_loops_cannot_be_used_inside_a_class_static_block:diag(18038,1,"for_await_loops_cannot_be_used_inside_a_class_static_block_18038","'for await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:diag(18039,1,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:diag(18041,1,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block."),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:diag(18042,1,"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042","'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),Types_cannot_appear_in_export_declarations_in_JavaScript_files:diag(18043,1,"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043","Types cannot appear in export declarations in JavaScript files."),_0_is_automatically_exported_here:diag(18044,3,"_0_is_automatically_exported_here_18044","'{0}' is automatically exported here."),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:diag(18045,1,"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045","Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),_0_is_of_type_unknown:diag(18046,1,"_0_is_of_type_unknown_18046","'{0}' is of type 'unknown'."),_0_is_possibly_null:diag(18047,1,"_0_is_possibly_null_18047","'{0}' is possibly 'null'."),_0_is_possibly_undefined:diag(18048,1,"_0_is_possibly_undefined_18048","'{0}' is possibly 'undefined'."),_0_is_possibly_null_or_undefined:diag(18049,1,"_0_is_possibly_null_or_undefined_18049","'{0}' is possibly 'null' or 'undefined'."),The_value_0_cannot_be_used_here:diag(18050,1,"The_value_0_cannot_be_used_here_18050","The value '{0}' cannot be used here."),Compiler_option_0_cannot_be_given_an_empty_string:diag(18051,1,"Compiler_option_0_cannot_be_given_an_empty_string_18051","Compiler option '{0}' cannot be given an empty string."),Its_type_0_is_not_a_valid_JSX_element_type:diag(18053,1,"Its_type_0_is_not_a_valid_JSX_element_type_18053","Its type '{0}' is not a valid JSX element type."),await_using_statements_cannot_be_used_inside_a_class_static_block:diag(18054,1,"await_using_statements_cannot_be_used_inside_a_class_static_block_18054","'await using' statements cannot be used inside a class static block."),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:diag(18055,1,"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055","'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled."),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:diag(18056,1,"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056","Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled."),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:diag(18057,1,"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057","String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'."),Default_imports_are_not_allowed_in_a_deferred_import:diag(18058,1,"Default_imports_are_not_allowed_in_a_deferred_import_18058","Default imports are not allowed in a deferred import."),Named_imports_are_not_allowed_in_a_deferred_import:diag(18059,1,"Named_imports_are_not_allowed_in_a_deferred_import_18059","Named imports are not allowed in a deferred import."),Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve:diag(18060,1,"Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve_18060","Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'."),_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer:diag(18061,1,"_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer_18061","'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?")};function tokenIsIdentifierOrKeyword(e){return e>=80}function tokenIsIdentifierOrKeywordOrGreaterThan(e){return 32===e||tokenIsIdentifierOrKeyword(e)}var wt={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,defer:166,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},Lt=new Map(Object.entries(wt)),Mt=new Map(Object.entries({...wt,"{":19,"}":20,"(":21,")":22,"[":23,"]":24,".":25,"...":26,";":27,",":28,"<":30,">":32,"<=":33,">=":34,"==":35,"!=":36,"===":37,"!==":38,"=>":39,"+":40,"-":41,"**":43,"*":42,"/":44,"%":45,"++":46,"--":47,"<<":48,">":49,">>>":50,"&":51,"|":52,"^":53,"!":54,"~":55,"&&":56,"||":57,"?":58,"??":61,"?.":29,":":59,"=":64,"+=":65,"-=":66,"*=":67,"**=":68,"/=":69,"%=":70,"<<=":71,">>=":72,">>>=":73,"&=":74,"|=":75,"^=":79,"||=":76,"&&=":77,"??=":78,"@":60,"#":63,"`":62})),Rt=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),Bt=new Map([[1,lt.RegularExpressionFlagsHasIndices],[16,lt.RegularExpressionFlagsDotAll],[32,lt.RegularExpressionFlagsUnicode],[64,lt.RegularExpressionFlagsUnicodeSets],[128,lt.RegularExpressionFlagsSticky]]),jt=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],Jt=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],Wt=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],Ut=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],zt=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,Vt=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/,qt=/@(?:see|link)/i;function lookupInUnicodeMap(e,t){if(e=2?Wt:jt)}function makeReverseMap(e){const t=[];return e.forEach((e,n)=>{t[e]=n}),t}var Ht=makeReverseMap(Mt);function tokenToString(e){return Ht[e]}function stringToToken(e){return Mt.get(e)}var Kt=makeReverseMap(Rt);function regularExpressionFlagToCharacterCode(e){return Kt[e]}function characterCodeToRegularExpressionFlag(e){return Rt.get(e)}function computeLineStarts(e){const t=[];let n=0,r=0;for(;n127&&isLineBreak(i)&&(t.push(r),r=n)}}return t.push(r),t}function getPositionOfLineAndCharacter(e,t,n,r){return e.getPositionOfLineAndCharacter?e.getPositionOfLineAndCharacter(t,n,r):computePositionOfLineAndCharacter(getLineStarts(e),t,n,e.text,r)}function computePositionOfLineAndCharacter(e,t,n,r,i){(t<0||t>=e.length)&&(i?t=t<0?0:t>=e.length?e.length-1:t:h.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${void 0!==r?arrayIsEqualTo(e,computeLineStarts(r)):"unknown"}`));const o=e[t]+n;return i?o>e[t+1]?e[t+1]:"string"==typeof r&&o>r.length?r.length:o:(t=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function isLineBreak(e){return 10===e||13===e||8232===e||8233===e}function isDigit(e){return e>=48&&e<=57}function isHexDigit(e){return isDigit(e)||e>=65&&e<=70||e>=97&&e<=102}function isASCIILetter(e){return e>=65&&e<=90||e>=97&&e<=122}function isWordCharacter(e){return isASCIILetter(e)||isDigit(e)||95===e}function isOctalDigit(e){return e>=48&&e<=55}function couldStartTrivia(e,t){const n=e.charCodeAt(t);switch(n){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return 0===t;default:return n>127}}function skipTrivia(e,t,n,r,i){if(positionIsSynthesized(t))return t;let o=!1;for(;;){const a=e.charCodeAt(t);switch(a){case 13:10===e.charCodeAt(t+1)&&t++;case 10:if(t++,n)return t;o=!!i;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(r)break;if(47===e.charCodeAt(t+1)){for(t+=2;t127&&isWhiteSpaceLike(a)){t++;continue}}return t}}var Gt=7;function isConflictMarkerTrivia(e,t){if(h.assert(t>=0),0===t||isLineBreak(e.charCodeAt(t-1))){const n=e.charCodeAt(t);if(t+Gt=0&&n127&&isWhiteSpaceLike(a)){p&&isLineBreak(a)&&(d=!0),n++;continue}break e}}return p&&(m=i(s,c,l,d,o,m)),m}function forEachLeadingCommentRange(e,t,n,r){return iterateCommentRanges(!1,e,t,!1,n,r)}function forEachTrailingCommentRange(e,t,n,r){return iterateCommentRanges(!1,e,t,!0,n,r)}function reduceEachLeadingCommentRange(e,t,n,r,i){return iterateCommentRanges(!0,e,t,!1,n,r,i)}function reduceEachTrailingCommentRange(e,t,n,r,i){return iterateCommentRanges(!0,e,t,!0,n,r,i)}function appendCommentRange(e,t,n,r,i,o=[]){return o.push({kind:n,pos:e,end:t,hasTrailingNewLine:r}),o}function getLeadingCommentRanges(e,t){return reduceEachLeadingCommentRange(e,t,appendCommentRange,void 0,void 0)}function getTrailingCommentRanges(e,t){return reduceEachTrailingCommentRange(e,t,appendCommentRange,void 0,void 0)}function getShebang(e){const t=$t.exec(e);if(t)return t[0]}function isIdentifierStart(e,t){return isASCIILetter(e)||36===e||95===e||e>127&&isUnicodeIdentifierStart(e,t)}function isIdentifierPart(e,t,n){return isWordCharacter(e)||36===e||1===n&&(45===e||58===e)||e>127&&function isUnicodeIdentifierPart(e,t){return lookupInUnicodeMap(e,t>=2?Ut:Jt)}(e,t)}function isIdentifierText(e,t,n){let r=codePointAt(e,0);if(!isIdentifierStart(r,t))return!1;for(let i=charSize(r);il,getStartPos:()=>l,getTokenEnd:()=>s,getTextPos:()=>s,getToken:()=>p,getTokenStart:()=>d,getTokenPos:()=>d,getTokenText:()=>f.substring(d,s),getTokenValue:()=>u,hasUnicodeEscape:()=>!!(1024&m),hasExtendedUnicodeEscape:()=>!!(8&m),hasPrecedingLineBreak:()=>!!(1&m),hasPrecedingJSDocComment:()=>!!(2&m),hasPrecedingJSDocLeadingAsterisks:()=>!!(32768&m),isIdentifier:()=>80===p||p>118,isReservedWord:()=>p>=83&&p<=118,isUnterminated:()=>!!(4&m),getCommentDirectives:()=>_,getNumericLiteralFlags:()=>25584&m,getTokenFlags:()=>m,reScanGreaterToken:function reScanGreaterToken(){if(32===p){if(62===charCodeUnchecked(s))return 62===charCodeUnchecked(s+1)?61===charCodeUnchecked(s+2)?(s+=3,p=73):(s+=2,p=50):61===charCodeUnchecked(s+1)?(s+=2,p=72):(s++,p=49);if(61===charCodeUnchecked(s))return s++,p=34}return p},reScanAsteriskEqualsToken:function reScanAsteriskEqualsToken(){return h.assert(67===p,"'reScanAsteriskEqualsToken' should only be called on a '*='"),s=d+1,p=64},reScanSlashToken:function reScanSlashToken(t){if(44===p||69===p){const n=d+1;s=n;let r=!1,i=!1,a=!1;for(;;){const e=charCodeChecked(s);if(-1===e||isLineBreak(e)){m|=4;break}if(r)r=!1;else{if(47===e&&!a)break;91===e?a=!0:92===e?r=!0:93===e?a=!1:a||40!==e||63!==charCodeChecked(s+1)||60!==charCodeChecked(s+2)||61===charCodeChecked(s+3)||33===charCodeChecked(s+3)||(i=!0)}s++}const l=s;if(4&m){s=n,r=!1;let e=0,t=!1,i=0;for(;s{!function scanRegularExpressionWorker(t,n,r){var i,a,l,p,m=!!(64&t),_=!!(96&t),g=_||!n,y=!1,T=0,S=[];function scanDisjunction(e){for(;;){if(S.push(p),p=void 0,scanAlternative(e),p=S.pop(),124!==charCodeChecked(s))return;s++}}function scanAlternative(t){let n=!1;for(;;){const r=s,i=charCodeChecked(s);switch(i){case-1:return;case 94:case 36:s++,n=!1;break;case 92:switch(charCodeChecked(++s)){case 98:case 66:s++,n=!1;break;default:scanAtomEscape(),n=!0}break;case 40:if(63===charCodeChecked(++s))switch(charCodeChecked(++s)){case 61:case 33:s++,n=!g;break;case 60:const t=s;switch(charCodeChecked(++s)){case 61:case 33:s++,n=!1;break;default:scanGroupName(!1),scanExpectedChar(62),e<5&&error2(Ot.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later,t,s-t),T++,n=!0}break;default:const r=s,i=scanPatternModifiers(0);45===charCodeChecked(s)&&(s++,scanPatternModifiers(i),s===r+1&&error2(Ot.Subpattern_flags_must_be_present_when_there_is_a_minus_sign,r,s-r)),scanExpectedChar(58),n=!0}else T++,n=!0;scanDisjunction(!0),scanExpectedChar(41);break;case 123:const o=++s;scanDigits();const a=u;if(!g&&!a){n=!0;break}if(44===charCodeChecked(s)){s++,scanDigits();const e=u;if(a)e&&Number.parseInt(a)>Number.parseInt(e)&&(g||125===charCodeChecked(s))&&error2(Ot.Numbers_out_of_order_in_quantifier,o,s-o);else{if(!e&&125!==charCodeChecked(s)){error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,r,1,String.fromCharCode(i)),n=!0;break}error2(Ot.Incomplete_quantifier_Digit_expected,o,0)}}else if(!a){g&&error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,r,1,String.fromCharCode(i)),n=!0;break}if(125!==charCodeChecked(s)){if(!g){n=!0;break}error2(Ot._0_expected,s,0,String.fromCharCode(125)),s--}case 42:case 43:case 63:63===charCodeChecked(++s)&&s++,n||error2(Ot.There_is_nothing_available_for_repetition,r,s-r),n=!1;break;case 46:s++,n=!0;break;case 91:s++,m?scanClassSetExpression():scanClassRanges(),scanExpectedChar(93),n=!0;break;case 41:if(t)return;case 93:case 125:(g||41===i)&&error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s,1,String.fromCharCode(i)),s++,n=!0;break;case 47:case 124:return;default:scanSourceCharacter(),n=!0}}}function scanPatternModifiers(t){for(;;){const n=codePointChecked(s);if(-1===n||!isIdentifierPart(n,e))break;const r=charSize(n),i=characterCodeToRegularExpressionFlag(n);void 0===i?error2(Ot.Unknown_regular_expression_flag,s,r):t&i?error2(Ot.Duplicate_regular_expression_flag,s,r):28&i?(t|=i,checkRegularExpressionFlagAvailability(i,r)):error2(Ot.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern,s,r),s+=r}return t}function scanAtomEscape(){switch(h.assertEqual(charCodeUnchecked(s-1),92),charCodeChecked(s)){case 107:60===charCodeChecked(++s)?(s++,scanGroupName(!0),scanExpectedChar(62)):(g||r)&&error2(Ot.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets,s-2,2);break;case 113:if(m){s++,error2(Ot.q_is_only_available_inside_character_class,s-2,2);break}default:h.assert(scanCharacterClassEscape()||scanDecimalEscape()||scanCharacterEscape(!0))}}function scanDecimalEscape(){h.assertEqual(charCodeUnchecked(s-1),92);const e=charCodeChecked(s);if(e>=49&&e<=57){const e=s;return scanDigits(),l=append(l,{pos:e,end:s,value:+u}),!0}return!1}function scanCharacterEscape(e){h.assertEqual(charCodeUnchecked(s-1),92);let t=charCodeChecked(s);switch(t){case-1:return error2(Ot.Undetermined_character_escape,s-1,1),"\\";case 99:if(t=charCodeChecked(++s),isASCIILetter(t))return s++,String.fromCharCode(31&t);if(g)error2(Ot.c_must_be_followed_by_an_ASCII_letter,s-2,2);else if(e)return s--,"\\";return String.fromCharCode(t);case 94:case 36:case 47:case 92:case 46:case 42:case 43:case 63:case 40:case 41:case 91:case 93:case 123:case 125:case 124:return s++,String.fromCharCode(t);default:return s--,scanEscapeSequence(4|(n?8:0)|(_?16:0)|(e?32:0))}}function scanGroupName(t){h.assertEqual(charCodeUnchecked(s-1),60),d=s,scanIdentifier(codePointChecked(s),e),s===d?error2(Ot.Expected_a_capturing_group_name):t?a=append(a,{pos:d,end:s,name:u}):(null==p?void 0:p.has(u))||S.some(e=>null==e?void 0:e.has(u))?error2(Ot.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other,d,s-d):(p??(p=new Set),p.add(u),i??(i=new Set),i.add(u))}function isClassContentExit(e){return 93===e||-1===e||s>=c}function scanClassRanges(){for(h.assertEqual(charCodeUnchecked(s-1),91),94===charCodeChecked(s)&&s++;;){if(isClassContentExit(charCodeChecked(s)))return;const e=s,t=scanClassAtom();if(45===charCodeChecked(s)){if(isClassContentExit(charCodeChecked(++s)))return;!t&&g&&error2(Ot.A_character_class_range_must_not_be_bounded_by_another_character_class,e,s-1-e);const n=s,r=scanClassAtom();if(!r&&g){error2(Ot.A_character_class_range_must_not_be_bounded_by_another_character_class,n,s-n);continue}if(!t)continue;const i=codePointAt(t,0),o=codePointAt(r,0);t.length===charSize(i)&&r.length===charSize(o)&&i>o&&error2(Ot.Range_out_of_order_in_character_class,e,s-e)}}}function scanClassSetExpression(){h.assertEqual(charCodeUnchecked(s-1),91);let e=!1;94===charCodeChecked(s)&&(s++,e=!0);let t=!1,n=charCodeChecked(s);if(isClassContentExit(n))return;let r,i=s;switch(f.slice(s,s+2)){case"--":case"&&":error2(Ot.Expected_a_class_set_operand),y=!1;break;default:r=scanClassSetOperand()}switch(charCodeChecked(s)){case 45:if(45===charCodeChecked(s+1))return e&&y&&error2(Ot.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,i,s-i),t=y,scanClassSetSubExpression(3),void(y=!e&&t);break;case 38:if(38===charCodeChecked(s+1))return scanClassSetSubExpression(2),e&&y&&error2(Ot.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,i,s-i),t=y,void(y=!e&&t);error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s,1,String.fromCharCode(n));break;default:e&&y&&error2(Ot.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,i,s-i),t=y}for(;n=charCodeChecked(s),-1!==n;){switch(n){case 45:if(n=charCodeChecked(++s),isClassContentExit(n))return void(y=!e&&t);if(45===n){s++,error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s-2,2),i=s-2,r=f.slice(i,s);continue}{r||error2(Ot.A_character_class_range_must_not_be_bounded_by_another_character_class,i,s-1-i);const n=s,o=scanClassSetOperand();if(e&&y&&error2(Ot.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,n,s-n),t||(t=y),!o){error2(Ot.A_character_class_range_must_not_be_bounded_by_another_character_class,n,s-n);break}if(!r)break;const a=codePointAt(r,0),c=codePointAt(o,0);r.length===charSize(a)&&o.length===charSize(c)&&a>c&&error2(Ot.Range_out_of_order_in_character_class,i,s-i)}break;case 38:i=s,38===charCodeChecked(++s)?(s++,error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s-2,2),38===charCodeChecked(s)&&(error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s,1,String.fromCharCode(n)),s++)):error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s-1,1,String.fromCharCode(n)),r=f.slice(i,s);continue}if(isClassContentExit(charCodeChecked(s)))break;switch(i=s,f.slice(s,s+2)){case"--":case"&&":error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s,2),s+=2,r=f.slice(i,s);break;default:r=scanClassSetOperand()}}y=!e&&t}function scanClassSetSubExpression(e){let t=y;for(;;){let n=charCodeChecked(s);if(isClassContentExit(n))break;switch(n){case 45:45===charCodeChecked(++s)?(s++,3!==e&&error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s-2,2)):error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s-1,1);break;case 38:38===charCodeChecked(++s)?(s++,2!==e&&error2(Ot.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,s-2,2),38===charCodeChecked(s)&&(error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s,1,String.fromCharCode(n)),s++)):error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s-1,1,String.fromCharCode(n));break;default:switch(e){case 3:error2(Ot._0_expected,s,0,"--");break;case 2:error2(Ot._0_expected,s,0,"&&")}}if(n=charCodeChecked(s),isClassContentExit(n)){error2(Ot.Expected_a_class_set_operand);break}scanClassSetOperand(),t&&(t=y)}y=t}function scanClassSetOperand(){switch(y=!1,charCodeChecked(s)){case-1:return"";case 91:return s++,scanClassSetExpression(),scanExpectedChar(93),"";case 92:if(s++,scanCharacterClassEscape())return"";if(113===charCodeChecked(s))return 123===charCodeChecked(++s)?(s++,scanClassStringDisjunctionContents(),scanExpectedChar(125),""):(error2(Ot.q_must_be_followed_by_string_alternatives_enclosed_in_braces,s-2,2),"q");s--;default:return scanClassSetCharacter()}}function scanClassStringDisjunctionContents(){h.assertEqual(charCodeUnchecked(s-1),123);let e=0;for(;;){switch(charCodeChecked(s)){case-1:return;case 125:return void(1!==e&&(y=!0));case 124:1!==e&&(y=!0),s++,o=s,e=0;break;default:scanClassSetCharacter(),e++}}}function scanClassSetCharacter(){const e=charCodeChecked(s);if(-1===e)return"";if(92===e){const e=charCodeChecked(++s);switch(e){case 98:return s++,"\b";case 38:case 45:case 33:case 35:case 37:case 44:case 58:case 59:case 60:case 61:case 62:case 64:case 96:case 126:return s++,String.fromCharCode(e);default:return scanCharacterEscape(!1)}}else if(e===charCodeChecked(s+1))switch(e){case 38:case 33:case 35:case 37:case 42:case 43:case 44:case 46:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 96:case 126:return error2(Ot.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash,s,2),s+=2,f.substring(s-2,s)}switch(e){case 47:case 40:case 41:case 91:case 93:case 123:case 125:case 45:case 124:return error2(Ot.Unexpected_0_Did_you_mean_to_escape_it_with_backslash,s,1,String.fromCharCode(e)),s++,String.fromCharCode(e)}return scanSourceCharacter()}function scanClassAtom(){if(92!==charCodeChecked(s))return scanSourceCharacter();{const e=charCodeChecked(++s);switch(e){case 98:return s++,"\b";case 45:return s++,String.fromCharCode(e);default:return scanCharacterClassEscape()?"":scanCharacterEscape(!1)}}}function scanCharacterClassEscape(){h.assertEqual(charCodeUnchecked(s-1),92);let e=!1;const t=s-1,n=charCodeChecked(s);switch(n){case 100:case 68:case 115:case 83:case 119:case 87:return s++,!0;case 80:e=!0;case 112:if(123===charCodeChecked(++s)){const n=++s,r=scanWordCharacters();if(61===charCodeChecked(s)){const e=Xt.get(r);if(s===n)error2(Ot.Expected_a_Unicode_property_name);else if(void 0===e){error2(Ot.Unknown_Unicode_property_name,n,s-n);const e=getSpellingSuggestion(r,Xt.keys(),identity);e&&error2(Ot.Did_you_mean_0,n,s-n,e)}const t=++s,i=scanWordCharacters();if(s===t)error2(Ot.Expected_a_Unicode_property_value);else if(void 0!==e&&!en[e].has(i)){error2(Ot.Unknown_Unicode_property_value,t,s-t);const n=getSpellingSuggestion(i,en[e],identity);n&&error2(Ot.Did_you_mean_0,t,s-t,n)}}else if(s===n)error2(Ot.Expected_a_Unicode_property_name_or_value);else if(Zt.has(r))m?e?error2(Ot.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,n,s-n):y=!0:error2(Ot.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set,n,s-n);else if(!en.General_Category.has(r)&&!Yt.has(r)){error2(Ot.Unknown_Unicode_property_name_or_value,n,s-n);const e=getSpellingSuggestion(r,[...en.General_Category,...Yt,...Zt],identity);e&&error2(Ot.Did_you_mean_0,n,s-n,e)}scanExpectedChar(125),_||error2(Ot.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set,t,s-t)}else{if(!g)return s--,!1;error2(Ot._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces,s-2,2,String.fromCharCode(n))}return!0}return!1}function scanWordCharacters(){let e="";for(;;){const t=charCodeChecked(s);if(-1===t||!isWordCharacter(t))break;e+=String.fromCharCode(t),s++}return e}function scanSourceCharacter(){const e=_?charSize(codePointChecked(s)):1;return s+=e,e>0?f.substring(s-e,s):""}function scanExpectedChar(e){charCodeChecked(s)===e?s++:error2(Ot._0_expected,s,0,String.fromCharCode(e))}scanDisjunction(!1),forEach(a,e=>{if(!(null==i?void 0:i.has(e.name))&&(error2(Ot.There_is_no_capturing_group_named_0_in_this_regular_expression,e.pos,e.end-e.pos,e.name),i)){const t=getSpellingSuggestion(e.name,i,identity);t&&error2(Ot.Did_you_mean_0,e.pos,e.end-e.pos,t)}}),forEach(l,e=>{e.value>T&&(T?error2(Ot.This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression,e.pos,e.end-e.pos,T):error2(Ot.This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression,e.pos,e.end-e.pos))})}(r,!0,i)})}u=f.substring(d,s),p=14}return p},reScanTemplateToken:function reScanTemplateToken(e){return s=d,p=scanTemplateAndSetTokenValue(!e)},reScanTemplateHeadOrNoSubstitutionTemplate:function reScanTemplateHeadOrNoSubstitutionTemplate(){return s=d,p=scanTemplateAndSetTokenValue(!0)},scanJsxIdentifier:function scanJsxIdentifier(){if(tokenIsIdentifierOrKeyword(p)){for(;s=c)return p=1;for(let t=charCodeUnchecked(s);s=0&&isWhiteSpaceSingleLine(charCodeUnchecked(s-1))&&!(s+1{const e=S.getText();return e.slice(0,S.getTokenFullStart())+"\u2551"+e.slice(S.getTokenFullStart())}}),S;function codePointUnchecked(e){return codePointAt(f,e)}function codePointChecked(e){return e>=0&&e=0&&e=65&&e<=70)e+=32;else if(!(e>=48&&e<=57||e>=97&&e<=102))break;r.push(e),s++,o=!1}}return r.length=c){n+=f.substring(r,s),m|=4,error2(Ot.Unterminated_string_literal);break}const i=charCodeUnchecked(s);if(i===t){n+=f.substring(r,s),s++;break}if(92!==i||e){if((10===i||13===i)&&!e){n+=f.substring(r,s),m|=4,error2(Ot.Unterminated_string_literal);break}s++}else n+=f.substring(r,s),n+=scanEscapeSequence(3),r=s}return n}function scanTemplateAndSetTokenValue(e){const t=96===charCodeUnchecked(s);let n,r=++s,i="";for(;;){if(s>=c){i+=f.substring(r,s),m|=4,error2(Ot.Unterminated_template_literal),n=t?15:18;break}const o=charCodeUnchecked(s);if(96===o){i+=f.substring(r,s),s++,n=t?15:18;break}if(36===o&&s+1=c)return error2(Ot.Unexpected_end_of_text),"";const r=charCodeUnchecked(s);switch(s++,r){case 48:if(s>=c||!isDigit(charCodeUnchecked(s)))return"\0";case 49:case 50:case 51:s=55296&&i<=56319&&s+6=56320&&n<=57343)return s=t,o+String.fromCharCode(n)}return o;case 120:for(;s1114111&&(e&&error2(Ot.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,n,s-n),o=!0),s>=c?(e&&error2(Ot.Unexpected_end_of_text),o=!0):125===charCodeUnchecked(s)?s++:(e&&error2(Ot.Unterminated_Unicode_escape_sequence),o=!0),o?(m|=2048,f.substring(t,s)):(m|=8,utf16EncodeAsString(i))}function peekUnicodeEscape(){if(s+5=0&&isIdentifierPart(r,e)){t+=scanExtendedUnicodeEscape(!0),n=s;continue}if(r=peekUnicodeEscape(),!(r>=0&&isIdentifierPart(r,e)))break;m|=1024,t+=f.substring(n,s),t+=utf16EncodeAsString(r),n=s+=6}}return t+=f.substring(n,s),t}function getIdentifierToken(){const e=u.length;if(e>=2&&e<=12){const e=u.charCodeAt(0);if(e>=97&&e<=122){const e=Lt.get(u);if(void 0!==e)return p=e}}return p=80}function scanBinaryOrOctalDigits(e){let t="",n=!1,r=!1;for(;;){const i=charCodeUnchecked(s);if(95!==i){if(n=!0,!isDigit(i)||i-48>=e)break;t+=f[s],s++,r=!1}else m|=512,n?(n=!1,r=!0):error2(r?Ot.Multiple_consecutive_numeric_separators_are_not_permitted:Ot.Numeric_separators_are_not_allowed_here,s,1),s++}return 95===charCodeUnchecked(s-1)&&error2(Ot.Numeric_separators_are_not_allowed_here,s-1,1),t}function checkBigIntSuffix(){if(110===charCodeUnchecked(s))return u+="n",384&m&&(u=parsePseudoBigInt(u)+"n"),s++,10;{const e=128&m?parseInt(u.slice(2),2):256&m?parseInt(u.slice(2),8):+u;return u=""+e,9}}function scan(){for(l=s,m=0;;){if(d=s,s>=c)return p=1;const r=codePointUnchecked(s);if(0===s&&35===r&&isShebangTrivia(f,s)){if(s=scanShebangTrivia(f,s),t)continue;return p=6}switch(r){case 10:case 13:if(m|=1,t){s++;continue}return 13===r&&s+1=0&&isIdentifierStart(i,e))return u=scanExtendedUnicodeEscape(!0)+scanIdentifierParts(),p=getIdentifierToken();const o=peekUnicodeEscape();return o>=0&&isIdentifierStart(o,e)?(s+=6,m|=1024,u=String.fromCharCode(o)+scanIdentifierParts(),p=getIdentifierToken()):(error2(Ot.Invalid_character),s++,p=0);case 35:if(0!==s&&"!"===f[s+1])return error2(Ot.can_only_be_used_at_the_start_of_a_file,s,2),s++,p=0;const a=codePointUnchecked(s+1);if(92===a){s++;const t=peekExtendedUnicodeEscape();if(t>=0&&isIdentifierStart(t,e))return u="#"+scanExtendedUnicodeEscape(!0)+scanIdentifierParts(),p=81;const n=peekUnicodeEscape();if(n>=0&&isIdentifierStart(n,e))return s+=6,m|=1024,u="#"+String.fromCharCode(n)+scanIdentifierParts(),p=81;s--}return isIdentifierStart(a,e)?(s++,scanIdentifier(a,e)):(u="#",error2(Ot.Invalid_character,s++,charSize(r))),p=81;case 65533:return error2(Ot.File_appears_to_be_binary,0,0),s=c,p=8;default:const l=scanIdentifier(r,e);if(l)return p=l;if(isWhiteSpaceSingleLine(r)){s+=charSize(r);continue}if(isLineBreak(r)){m|=1,s+=charSize(r);continue}const y=charSize(r);return error2(Ot.Invalid_character,s,y),s+=y,p=0}}}function shouldParseJSDoc(){switch(T){case 0:return!0;case 1:return!1}return 3!==y&&4!==y||3!==T&&qt.test(f.slice(l,s))}function scanIdentifier(e,t){let n=e;if(isIdentifierStart(n,t)){for(s+=charSize(n);s=c)return p=1;let t=charCodeUnchecked(s);if(60===t)return 47===charCodeUnchecked(s+1)?(s+=2,p=31):(s++,p=30);if(123===t)return s++,p=19;let n=0;for(;s0)break;isWhiteSpaceLike(t)||(n=s)}s++}return u=f.substring(l,s),-1===n?13:12}function scanJsxAttributeValue(){switch(l=s,charCodeUnchecked(s)){case 34:case 39:return u=scanString(!0),p=11;default:return scan()}}function scanJsDocToken(){if(l=d=s,m=0,s>=c)return p=1;const t=codePointUnchecked(s);switch(s+=charSize(t),t){case 9:case 11:case 12:case 32:for(;s=0&&isIdentifierStart(t,e))return u=scanExtendedUnicodeEscape(!0)+scanIdentifierParts(),p=getIdentifierToken();const n=peekUnicodeEscape();return n>=0&&isIdentifierStart(n,e)?(s+=6,m|=1024,u=String.fromCharCode(n)+scanIdentifierParts(),p=getIdentifierToken()):(s++,p=0)}if(isIdentifierStart(t,e)){let n=t;for(;s=0),s=e,l=e,d=e,p=0,u=void 0,m=0}}function codePointAt(e,t){return e.codePointAt(t)}function charSize(e){return e>=65536?2:-1===e?0:1}var Qt=String.fromCodePoint?e=>String.fromCodePoint(e):function utf16EncodeAsStringFallback(e){if(h.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);const t=Math.floor((e-65536)/1024)+55296,n=(e-65536)%1024+56320;return String.fromCharCode(t,n)};function utf16EncodeAsString(e){return Qt(e)}var Xt=new Map(Object.entries({General_Category:"General_Category",gc:"General_Category",Script:"Script",sc:"Script",Script_Extensions:"Script_Extensions",scx:"Script_Extensions"})),Yt=new Set(["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","EComp","Emoji_Modifier","EMod","Emoji_Modifier_Base","EBase","Emoji_Presentation","EPres","Extended_Pictographic","ExtPict","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"]),Zt=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"]),en={General_Category:new Set(["C","Other","Cc","Control","cntrl","Cf","Format","Cn","Unassigned","Co","Private_Use","Cs","Surrogate","L","Letter","LC","Cased_Letter","Ll","Lowercase_Letter","Lm","Modifier_Letter","Lo","Other_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter","M","Mark","Combining_Mark","Mc","Spacing_Mark","Me","Enclosing_Mark","Mn","Nonspacing_Mark","N","Number","Nd","Decimal_Number","digit","Nl","Letter_Number","No","Other_Number","P","Punctuation","punct","Pc","Connector_Punctuation","Pd","Dash_Punctuation","Pe","Close_Punctuation","Pf","Final_Punctuation","Pi","Initial_Punctuation","Po","Other_Punctuation","Ps","Open_Punctuation","S","Symbol","Sc","Currency_Symbol","Sk","Modifier_Symbol","Sm","Math_Symbol","So","Other_Symbol","Z","Separator","Zl","Line_Separator","Zp","Paragraph_Separator","Zs","Space_Separator"]),Script:new Set(["Adlm","Adlam","Aghb","Caucasian_Albanian","Ahom","Arab","Arabic","Armi","Imperial_Aramaic","Armn","Armenian","Avst","Avestan","Bali","Balinese","Bamu","Bamum","Bass","Bassa_Vah","Batk","Batak","Beng","Bengali","Bhks","Bhaiksuki","Bopo","Bopomofo","Brah","Brahmi","Brai","Braille","Bugi","Buginese","Buhd","Buhid","Cakm","Chakma","Cans","Canadian_Aboriginal","Cari","Carian","Cham","Cher","Cherokee","Chrs","Chorasmian","Copt","Coptic","Qaac","Cpmn","Cypro_Minoan","Cprt","Cypriot","Cyrl","Cyrillic","Deva","Devanagari","Diak","Dives_Akuru","Dogr","Dogra","Dsrt","Deseret","Dupl","Duployan","Egyp","Egyptian_Hieroglyphs","Elba","Elbasan","Elym","Elymaic","Ethi","Ethiopic","Geor","Georgian","Glag","Glagolitic","Gong","Gunjala_Gondi","Gonm","Masaram_Gondi","Goth","Gothic","Gran","Grantha","Grek","Greek","Gujr","Gujarati","Guru","Gurmukhi","Hang","Hangul","Hani","Han","Hano","Hanunoo","Hatr","Hatran","Hebr","Hebrew","Hira","Hiragana","Hluw","Anatolian_Hieroglyphs","Hmng","Pahawh_Hmong","Hmnp","Nyiakeng_Puachue_Hmong","Hrkt","Katakana_Or_Hiragana","Hung","Old_Hungarian","Ital","Old_Italic","Java","Javanese","Kali","Kayah_Li","Kana","Katakana","Kawi","Khar","Kharoshthi","Khmr","Khmer","Khoj","Khojki","Kits","Khitan_Small_Script","Knda","Kannada","Kthi","Kaithi","Lana","Tai_Tham","Laoo","Lao","Latn","Latin","Lepc","Lepcha","Limb","Limbu","Lina","Linear_A","Linb","Linear_B","Lisu","Lyci","Lycian","Lydi","Lydian","Mahj","Mahajani","Maka","Makasar","Mand","Mandaic","Mani","Manichaean","Marc","Marchen","Medf","Medefaidrin","Mend","Mende_Kikakui","Merc","Meroitic_Cursive","Mero","Meroitic_Hieroglyphs","Mlym","Malayalam","Modi","Mong","Mongolian","Mroo","Mro","Mtei","Meetei_Mayek","Mult","Multani","Mymr","Myanmar","Nagm","Nag_Mundari","Nand","Nandinagari","Narb","Old_North_Arabian","Nbat","Nabataean","Newa","Nkoo","Nko","Nshu","Nushu","Ogam","Ogham","Olck","Ol_Chiki","Orkh","Old_Turkic","Orya","Oriya","Osge","Osage","Osma","Osmanya","Ougr","Old_Uyghur","Palm","Palmyrene","Pauc","Pau_Cin_Hau","Perm","Old_Permic","Phag","Phags_Pa","Phli","Inscriptional_Pahlavi","Phlp","Psalter_Pahlavi","Phnx","Phoenician","Plrd","Miao","Prti","Inscriptional_Parthian","Rjng","Rejang","Rohg","Hanifi_Rohingya","Runr","Runic","Samr","Samaritan","Sarb","Old_South_Arabian","Saur","Saurashtra","Sgnw","SignWriting","Shaw","Shavian","Shrd","Sharada","Sidd","Siddham","Sind","Khudawadi","Sinh","Sinhala","Sogd","Sogdian","Sogo","Old_Sogdian","Sora","Sora_Sompeng","Soyo","Soyombo","Sund","Sundanese","Sylo","Syloti_Nagri","Syrc","Syriac","Tagb","Tagbanwa","Takr","Takri","Tale","Tai_Le","Talu","New_Tai_Lue","Taml","Tamil","Tang","Tangut","Tavt","Tai_Viet","Telu","Telugu","Tfng","Tifinagh","Tglg","Tagalog","Thaa","Thaana","Thai","Tibt","Tibetan","Tirh","Tirhuta","Tnsa","Tangsa","Toto","Ugar","Ugaritic","Vaii","Vai","Vith","Vithkuqi","Wara","Warang_Citi","Wcho","Wancho","Xpeo","Old_Persian","Xsux","Cuneiform","Yezi","Yezidi","Yiii","Yi","Zanb","Zanabazar_Square","Zinh","Inherited","Qaai","Zyyy","Common","Zzzz","Unknown"]),Script_Extensions:void 0};function isExternalModuleNameRelative(e){return pathIsRelative(e)||isRootedDiskPath(e)}function sortAndDeduplicateDiagnostics(e){return sortAndDeduplicate(e,compareDiagnostics,diagnosticsEqualityComparer)}en.Script_Extensions=en.Script;var tn=new Map([[99,"lib.esnext.full.d.ts"],[11,"lib.es2024.full.d.ts"],[10,"lib.es2023.full.d.ts"],[9,"lib.es2022.full.d.ts"],[8,"lib.es2021.full.d.ts"],[7,"lib.es2020.full.d.ts"],[6,"lib.es2019.full.d.ts"],[5,"lib.es2018.full.d.ts"],[4,"lib.es2017.full.d.ts"],[3,"lib.es2016.full.d.ts"],[2,"lib.es6.d.ts"]]);function getDefaultLibFileName(e){const t=zn(e);switch(t){case 99:case 11:case 10:case 9:case 8:case 7:case 6:case 5:case 4:case 3:case 2:return tn.get(t);default:return"lib.d.ts"}}function textSpanEnd(e){return e.start+e.length}function textSpanIsEmpty(e){return 0===e.length}function textSpanContainsPosition(e,t){return t>=e.start&&t=e.pos&&t<=e.end}function textSpanContainsTextSpan(e,t){return t.start>=e.start&&textSpanEnd(t)<=textSpanEnd(e)}function textSpanContainsTextRange(e,t){return t.pos>=e.start&&t.end<=textSpanEnd(e)}function textRangeContainsTextSpan(e,t){return t.start>=e.pos&&textSpanEnd(t)<=e.end}function textSpanOverlapsWith(e,t){return void 0!==textSpanOverlap(e,t)}function textSpanOverlap(e,t){const n=textSpanIntersection(e,t);return n&&0===n.length?void 0:n}function textSpanIntersectsWithTextSpan(e,t){return decodedTextSpanIntersectsWith(e.start,e.length,t.start,t.length)}function textSpanIntersectsWith(e,t,n){return decodedTextSpanIntersectsWith(e.start,e.length,t,n)}function decodedTextSpanIntersectsWith(e,t,n,r){return n<=e+t&&n+r>=e}function textSpanIntersectsWithPosition(e,t){return t<=textSpanEnd(e)&&t>=e.start}function textRangeIntersectsWithTextSpan(e,t){return textSpanIntersectsWith(t,e.pos,e.end-e.pos)}function textSpanIntersection(e,t){const n=Math.max(e.start,t.start),r=Math.min(textSpanEnd(e),textSpanEnd(t));return n<=r?createTextSpanFromBounds(n,r):void 0}function normalizeSpans(e){e=e.filter(e=>e.length>0).sort((e,t)=>e.start!==t.start?e.start-t.start:e.length-t.length);const t=[];let n=0;for(;n=2&&95===e.charCodeAt(0)&&95===e.charCodeAt(1)?"_"+e:e}function unescapeLeadingUnderscores(e){const t=e;return t.length>=3&&95===t.charCodeAt(0)&&95===t.charCodeAt(1)&&95===t.charCodeAt(2)?t.substr(1):t}function idText(e){return unescapeLeadingUnderscores(e.escapedText)}function identifierToKeywordKind(e){const t=stringToToken(e.escapedText);return t?tryCast(t,isKeyword):void 0}function symbolName(e){return e.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(e.valueDeclaration)?idText(e.valueDeclaration.name):unescapeLeadingUnderscores(e.escapedName)}function nameForNamelessJSDocTypedef(e){const t=e.parent.parent;if(t){if(isDeclaration(t))return getDeclarationIdentifier(t);switch(t.kind){case 244:if(t.declarationList&&t.declarationList.declarations[0])return getDeclarationIdentifier(t.declarationList.declarations[0]);break;case 245:let e=t.expression;switch(227===e.kind&&64===e.operatorToken.kind&&(e=e.left),e.kind){case 212:return e.name;case 213:const t=e.argumentExpression;if(isIdentifier(t))return t}break;case 218:return getDeclarationIdentifier(t.expression);case 257:if(isDeclaration(t.statement)||isExpression(t.statement))return getDeclarationIdentifier(t.statement)}}}function getDeclarationIdentifier(e){const t=getNameOfDeclaration(e);return t&&isIdentifier(t)?t:void 0}function nodeHasName(e,t){return!(!isNamedDeclaration(e)||!isIdentifier(e.name)||idText(e.name)!==idText(t))||!(!isVariableStatement(e)||!some(e.declarationList.declarations,e=>nodeHasName(e,t)))}function getNameOfJSDocTypedef(e){return e.name||nameForNamelessJSDocTypedef(e)}function isNamedDeclaration(e){return!!e.name}function getNonAssignedNameOfDeclaration(e){switch(e.kind){case 80:return e;case 349:case 342:{const{name:t}=e;if(167===t.kind)return t.right;break}case 214:case 227:{const t=e;switch(getAssignmentDeclarationKind(t)){case 1:case 4:case 5:case 3:return getElementOrPropertyAccessArgumentExpressionOrName(t.left);case 7:case 8:case 9:return t.arguments[1];default:return}}case 347:return getNameOfJSDocTypedef(e);case 341:return nameForNamelessJSDocTypedef(e);case 278:{const{expression:t}=e;return isIdentifier(t)?t:void 0}case 213:const t=e;if(isBindableStaticElementAccessExpression(t))return t.argumentExpression}return e.name}function getNameOfDeclaration(e){if(void 0!==e)return getNonAssignedNameOfDeclaration(e)||(isFunctionExpression(e)||isArrowFunction(e)||isClassExpression(e)?getAssignedName(e):void 0)}function getAssignedName(e){if(e.parent){if(isPropertyAssignment(e.parent)||isBindingElement(e.parent))return e.parent.name;if(isBinaryExpression(e.parent)&&e===e.parent.right){if(isIdentifier(e.parent.left))return e.parent.left;if(isAccessExpression(e.parent.left))return getElementOrPropertyAccessArgumentExpressionOrName(e.parent.left)}else if(isVariableDeclaration(e.parent)&&isIdentifier(e.parent.name))return e.parent.name}}function getDecorators(e){if(hasDecorators(e))return filter(e.modifiers,isDecorator)}function getModifiers(e){if(hasSyntacticModifier(e,98303))return filter(e.modifiers,isModifier)}function getJSDocParameterTagsWorker(e,t){if(e.name){if(isIdentifier(e.name)){const n=e.name.escapedText;return getJSDocTagsWorker(e.parent,t).filter(e=>isJSDocParameterTag(e)&&isIdentifier(e.name)&&e.name.escapedText===n)}{const n=e.parent.parameters.indexOf(e);h.assert(n>-1,"Parameters should always be in their parents' parameter list");const r=getJSDocTagsWorker(e.parent,t).filter(isJSDocParameterTag);if(nisJSDocTemplateTag(e)&&e.typeParameters.some(e=>e.name.escapedText===n))}function getJSDocTypeParameterTags(e){return getJSDocTypeParameterTagsWorker(e,!1)}function getJSDocTypeParameterTagsNoCache(e){return getJSDocTypeParameterTagsWorker(e,!0)}function hasJSDocParameterTags(e){return!!getFirstJSDocTag(e,isJSDocParameterTag)}function getJSDocAugmentsTag(e){return getFirstJSDocTag(e,isJSDocAugmentsTag)}function getJSDocImplementsTags(e){return getAllJSDocTags(e,isJSDocImplementsTag)}function getJSDocClassTag(e){return getFirstJSDocTag(e,isJSDocClassTag)}function getJSDocPublicTag(e){return getFirstJSDocTag(e,isJSDocPublicTag)}function getJSDocPublicTagNoCache(e){return getFirstJSDocTag(e,isJSDocPublicTag,!0)}function getJSDocPrivateTag(e){return getFirstJSDocTag(e,isJSDocPrivateTag)}function getJSDocPrivateTagNoCache(e){return getFirstJSDocTag(e,isJSDocPrivateTag,!0)}function getJSDocProtectedTag(e){return getFirstJSDocTag(e,isJSDocProtectedTag)}function getJSDocProtectedTagNoCache(e){return getFirstJSDocTag(e,isJSDocProtectedTag,!0)}function getJSDocReadonlyTag(e){return getFirstJSDocTag(e,isJSDocReadonlyTag)}function getJSDocReadonlyTagNoCache(e){return getFirstJSDocTag(e,isJSDocReadonlyTag,!0)}function getJSDocOverrideTagNoCache(e){return getFirstJSDocTag(e,isJSDocOverrideTag,!0)}function getJSDocDeprecatedTag(e){return getFirstJSDocTag(e,isJSDocDeprecatedTag)}function getJSDocDeprecatedTagNoCache(e){return getFirstJSDocTag(e,isJSDocDeprecatedTag,!0)}function getJSDocEnumTag(e){return getFirstJSDocTag(e,isJSDocEnumTag)}function getJSDocThisTag(e){return getFirstJSDocTag(e,isJSDocThisTag)}function getJSDocReturnTag(e){return getFirstJSDocTag(e,isJSDocReturnTag)}function getJSDocTemplateTag(e){return getFirstJSDocTag(e,isJSDocTemplateTag)}function getJSDocSatisfiesTag(e){return getFirstJSDocTag(e,isJSDocSatisfiesTag)}function getJSDocTypeTag(e){const t=getFirstJSDocTag(e,isJSDocTypeTag);if(t&&t.typeExpression&&t.typeExpression.type)return t}function getJSDocType(e){let t=getFirstJSDocTag(e,isJSDocTypeTag);return!t&&isParameter(e)&&(t=find(getJSDocParameterTags(e),e=>!!e.typeExpression)),t&&t.typeExpression&&t.typeExpression.type}function getJSDocReturnType(e){const t=getJSDocReturnTag(e);if(t&&t.typeExpression)return t.typeExpression.type;const n=getJSDocTypeTag(e);if(n&&n.typeExpression){const e=n.typeExpression.type;if(isTypeLiteralNode(e)){const t=find(e.members,isCallSignatureDeclaration);return t&&t.type}if(isFunctionTypeNode(e)||isJSDocFunctionType(e))return e.type}}function getJSDocTagsWorker(e,t){var n;if(!canHaveJSDoc(e))return l;let r=null==(n=e.jsDoc)?void 0:n.jsDocCache;if(void 0===r||t){const n=getJSDocCommentsAndTags(e,t);h.assert(n.length<2||n[0]!==n[1]),r=flatMap(n,e=>isJSDoc(e)?e.tags:e),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=r)}return r}function getJSDocTags(e){return getJSDocTagsWorker(e,!1)}function getFirstJSDocTag(e,t,n){return find(getJSDocTagsWorker(e,n),t)}function getAllJSDocTags(e,t){return getJSDocTags(e).filter(t)}function getAllJSDocTagsOfKind(e,t){return getJSDocTags(e).filter(e=>e.kind===t)}function getTextOfJSDocComment(e){return"string"==typeof e?e:null==e?void 0:e.map(e=>322===e.kind?e.text:function formatJSDocLink(e){const t=325===e.kind?"link":326===e.kind?"linkcode":"linkplain",n=e.name?entityNameToString(e.name):"",r=e.name&&(""===e.text||e.text.startsWith("://"))?"":" ";return`{@${t} ${n}${r}${e.text}}`}(e)).join("")}function getEffectiveTypeParameterDeclarations(e){if(isJSDocSignature(e)){if(isJSDocOverloadTag(e.parent)){const t=getJSDocRoot(e.parent);if(t&&length(t.tags))return flatMap(t.tags,e=>isJSDocTemplateTag(e)?e.typeParameters:void 0)}return l}if(isJSDocTypeAlias(e))return h.assert(321===e.parent.kind),flatMap(e.parent.tags,e=>isJSDocTemplateTag(e)?e.typeParameters:void 0);if(e.typeParameters)return e.typeParameters;if(canHaveIllegalTypeParameters(e)&&e.typeParameters)return e.typeParameters;if(isInJSFile(e)){const t=getJSDocTypeParameterDeclarations(e);if(t.length)return t;const n=getJSDocType(e);if(n&&isFunctionTypeNode(n)&&n.typeParameters)return n.typeParameters}return l}function getEffectiveConstraintOfTypeParameter(e){return e.constraint?e.constraint:isJSDocTemplateTag(e.parent)&&e===e.parent.typeParameters[0]?e.parent.constraint:void 0}function isMemberName(e){return 80===e.kind||81===e.kind}function isGetOrSetAccessorDeclaration(e){return 179===e.kind||178===e.kind}function isPropertyAccessChain(e){return isPropertyAccessExpression(e)&&!!(64&e.flags)}function isElementAccessChain(e){return isElementAccessExpression(e)&&!!(64&e.flags)}function isCallChain(e){return isCallExpression(e)&&!!(64&e.flags)}function isOptionalChain(e){const t=e.kind;return!!(64&e.flags)&&(212===t||213===t||214===t||236===t)}function isOptionalChainRoot(e){return isOptionalChain(e)&&!isNonNullExpression(e)&&!!e.questionDotToken}function isExpressionOfOptionalChainRoot(e){return isOptionalChainRoot(e.parent)&&e.parent.expression===e}function isOutermostOptionalChain(e){return!isOptionalChain(e.parent)||isOptionalChainRoot(e.parent)||e!==e.parent.expression}function isNullishCoalesce(e){return 227===e.kind&&61===e.operatorToken.kind}function isConstTypeReference(e){return isTypeReferenceNode(e)&&isIdentifier(e.typeName)&&"const"===e.typeName.escapedText&&!e.typeArguments}function skipPartiallyEmittedExpressions(e){return skipOuterExpressions(e,8)}function isNonNullChain(e){return isNonNullExpression(e)&&!!(64&e.flags)}function isBreakOrContinueStatement(e){return 253===e.kind||252===e.kind}function isNamedExportBindings(e){return 281===e.kind||280===e.kind}function isJSDocPropertyLikeTag(e){return 349===e.kind||342===e.kind}function isNodeKind(e){return e>=167}function isTokenKind(e){return e>=0&&e<=166}function isToken(e){return isTokenKind(e.kind)}function isNodeArray(e){return hasProperty(e,"pos")&&hasProperty(e,"end")}function isLiteralKind(e){return 9<=e&&e<=15}function isLiteralExpression(e){return isLiteralKind(e.kind)}function isLiteralExpressionOfObject(e){switch(e.kind){case 211:case 210:case 14:case 219:case 232:return!0}return!1}function isTemplateLiteralKind(e){return 15<=e&&e<=18}function isTemplateLiteralToken(e){return isTemplateLiteralKind(e.kind)}function isTemplateMiddleOrTemplateTail(e){const t=e.kind;return 17===t||18===t}function isImportOrExportSpecifier(e){return isImportSpecifier(e)||isExportSpecifier(e)}function isTypeOnlyImportDeclaration(e){switch(e.kind){case 277:return e.isTypeOnly||156===e.parent.parent.phaseModifier;case 275:return 156===e.parent.phaseModifier;case 274:return 156===e.phaseModifier;case 272:return e.isTypeOnly}return!1}function isTypeOnlyExportDeclaration(e){switch(e.kind){case 282:return e.isTypeOnly||e.parent.parent.isTypeOnly;case 279:return e.isTypeOnly&&!!e.moduleSpecifier&&!e.exportClause;case 281:return e.parent.isTypeOnly}return!1}function isTypeOnlyImportOrExportDeclaration(e){return isTypeOnlyImportDeclaration(e)||isTypeOnlyExportDeclaration(e)}function isPartOfTypeOnlyImportOrExportDeclaration(e){return void 0!==findAncestor(e,isTypeOnlyImportOrExportDeclaration)}function isStringTextContainingNode(e){return 11===e.kind||isTemplateLiteralKind(e.kind)}function isImportAttributeName(e){return isStringLiteral(e)||isIdentifier(e)}function isGeneratedIdentifier(e){var t;return isIdentifier(e)&&void 0!==(null==(t=e.emitNode)?void 0:t.autoGenerate)}function isGeneratedPrivateIdentifier(e){var t;return isPrivateIdentifier(e)&&void 0!==(null==(t=e.emitNode)?void 0:t.autoGenerate)}function isFileLevelReservedGeneratedIdentifier(e){const t=e.emitNode.autoGenerate.flags;return!!(32&t)&&!!(16&t)&&!!(8&t)}function isPrivateIdentifierClassElementDeclaration(e){return(isPropertyDeclaration(e)||isMethodOrAccessor(e))&&isPrivateIdentifier(e.name)}function isPrivateIdentifierPropertyAccessExpression(e){return isPropertyAccessExpression(e)&&isPrivateIdentifier(e.name)}function isModifierKind(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function isParameterPropertyModifier(e){return!!(31&modifierToFlag(e))}function isClassMemberModifier(e){return isParameterPropertyModifier(e)||126===e||164===e||129===e}function isModifier(e){return isModifierKind(e.kind)}function isEntityName(e){const t=e.kind;return 167===t||80===t}function isPropertyName(e){const t=e.kind;return 80===t||81===t||11===t||9===t||168===t}function isBindingName(e){const t=e.kind;return 80===t||207===t||208===t}function isFunctionLike(e){return!!e&&isFunctionLikeKind(e.kind)}function isFunctionLikeOrClassStaticBlockDeclaration(e){return!!e&&(isFunctionLikeKind(e.kind)||isClassStaticBlockDeclaration(e))}function isFunctionLikeDeclaration(e){return e&&isFunctionLikeDeclarationKind(e.kind)}function isBooleanLiteral(e){return 112===e.kind||97===e.kind}function isFunctionLikeDeclarationKind(e){switch(e){case 263:case 175:case 177:case 178:case 179:case 219:case 220:return!0;default:return!1}}function isFunctionLikeKind(e){switch(e){case 174:case 180:case 324:case 181:case 182:case 185:case 318:case 186:return!0;default:return isFunctionLikeDeclarationKind(e)}}function isFunctionOrModuleBlock(e){return isSourceFile(e)||isModuleBlock(e)||isBlock(e)&&isFunctionLike(e.parent)}function isClassElement(e){const t=e.kind;return 177===t||173===t||175===t||178===t||179===t||182===t||176===t||241===t}function isClassLike(e){return e&&(264===e.kind||232===e.kind)}function isAccessor(e){return e&&(178===e.kind||179===e.kind)}function isAutoAccessorPropertyDeclaration(e){return isPropertyDeclaration(e)&&hasAccessorModifier(e)}function isClassInstanceProperty(e){return isInJSFile(e)&&isExpandoPropertyDeclaration(e)?!(isBindableStaticAccessExpression(e)&&isPrototypeAccess(e.expression)||isBindableStaticNameExpression(e,!0)):e.parent&&isClassLike(e.parent)&&isPropertyDeclaration(e)&&!hasAccessorModifier(e)}function isMethodOrAccessor(e){switch(e.kind){case 175:case 178:case 179:return!0;default:return!1}}function isModifierLike(e){return isModifier(e)||isDecorator(e)}function isTypeElement(e){const t=e.kind;return 181===t||180===t||172===t||174===t||182===t||178===t||179===t||355===t}function isClassOrTypeElement(e){return isTypeElement(e)||isClassElement(e)}function isObjectLiteralElementLike(e){const t=e.kind;return 304===t||305===t||306===t||175===t||178===t||179===t}function isTypeNode(e){return isTypeNodeKind(e.kind)}function isFunctionOrConstructorTypeNode(e){switch(e.kind){case 185:case 186:return!0}return!1}function isBindingPattern(e){if(e){const t=e.kind;return 208===t||207===t}return!1}function isAssignmentPattern(e){const t=e.kind;return 210===t||211===t}function isArrayBindingElement(e){const t=e.kind;return 209===t||233===t}function isDeclarationBindingElement(e){switch(e.kind){case 261:case 170:case 209:return!0}return!1}function isBindingOrAssignmentElement(e){return isVariableDeclaration(e)||isParameter(e)||isObjectBindingOrAssignmentElement(e)||isArrayBindingOrAssignmentElement(e)}function isBindingOrAssignmentPattern(e){return isObjectBindingOrAssignmentPattern(e)||isArrayBindingOrAssignmentPattern(e)}function isObjectBindingOrAssignmentPattern(e){switch(e.kind){case 207:case 211:return!0}return!1}function isObjectBindingOrAssignmentElement(e){switch(e.kind){case 209:case 304:case 305:case 306:return!0}return!1}function isArrayBindingOrAssignmentPattern(e){switch(e.kind){case 208:case 210:return!0}return!1}function isArrayBindingOrAssignmentElement(e){switch(e.kind){case 209:case 233:case 231:case 210:case 211:case 80:case 212:case 213:return!0}return isAssignmentExpression(e,!0)}function isPropertyAccessOrQualifiedNameOrImportTypeNode(e){const t=e.kind;return 212===t||167===t||206===t}function isPropertyAccessOrQualifiedName(e){const t=e.kind;return 212===t||167===t}function isCallLikeOrFunctionLikeExpression(e){return isCallLikeExpression(e)||isFunctionExpressionOrArrowFunction(e)}function isCallLikeExpression(e){switch(e.kind){case 214:case 215:case 216:case 171:case 287:case 286:case 290:return!0;case 227:return 104===e.operatorToken.kind;default:return!1}}function isCallOrNewExpression(e){return 214===e.kind||215===e.kind}function isTemplateLiteral(e){const t=e.kind;return 229===t||15===t}function isLeftHandSideExpression(e){return isLeftHandSideExpressionKind(skipPartiallyEmittedExpressions(e).kind)}function isLeftHandSideExpressionKind(e){switch(e){case 212:case 213:case 215:case 214:case 285:case 286:case 289:case 216:case 210:case 218:case 211:case 232:case 219:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 229:case 97:case 106:case 110:case 112:case 108:case 236:case 234:case 237:case 102:case 283:return!0;default:return!1}}function isUnaryExpression(e){return isUnaryExpressionKind(skipPartiallyEmittedExpressions(e).kind)}function isUnaryExpressionKind(e){switch(e){case 225:case 226:case 221:case 222:case 223:case 224:case 217:return!0;default:return isLeftHandSideExpressionKind(e)}}function isUnaryExpressionWithWrite(e){switch(e.kind){case 226:return!0;case 225:return 46===e.operator||47===e.operator;default:return!1}}function isLiteralTypeLiteral(e){switch(e.kind){case 106:case 112:case 97:case 225:return!0;default:return isLiteralExpression(e)}}function isExpression(e){return function isExpressionKind(e){switch(e){case 228:case 230:case 220:case 227:case 231:case 235:case 233:case 357:case 356:case 239:return!0;default:return isUnaryExpressionKind(e)}}(skipPartiallyEmittedExpressions(e).kind)}function isAssertionExpression(e){const t=e.kind;return 217===t||235===t}function isIterationStatement(e,t){switch(e.kind){case 249:case 250:case 251:case 247:case 248:return!0;case 257:return t&&isIterationStatement(e.statement,t)}return!1}function isScopeMarker(e){return isExportAssignment(e)||isExportDeclaration(e)}function hasScopeMarker(e){return some(e,isScopeMarker)}function needsScopeMarker(e){return!(isAnyImportOrReExport(e)||isExportAssignment(e)||hasSyntacticModifier(e,32)||isAmbientModule(e))}function isExternalModuleIndicator(e){return isAnyImportOrReExport(e)||isExportAssignment(e)||hasSyntacticModifier(e,32)}function isForInOrOfStatement(e){return 250===e.kind||251===e.kind}function isConciseBody(e){return isBlock(e)||isExpression(e)}function isFunctionBody(e){return isBlock(e)}function isForInitializer(e){return isVariableDeclarationList(e)||isExpression(e)}function isModuleBody(e){const t=e.kind;return 269===t||268===t||80===t}function isNamespaceBody(e){const t=e.kind;return 269===t||268===t}function isJSDocNamespaceBody(e){const t=e.kind;return 80===t||268===t}function isNamedImportBindings(e){const t=e.kind;return 276===t||275===t}function isModuleOrEnumDeclaration(e){return 268===e.kind||267===e.kind}function canHaveSymbol(e){switch(e.kind){case 220:case 227:case 209:case 214:case 180:case 264:case 232:case 176:case 177:case 186:case 181:case 213:case 267:case 307:case 278:case 279:case 282:case 263:case 219:case 185:case 178:case 80:case 274:case 272:case 277:case 182:case 265:case 339:case 341:case 318:case 342:case 349:case 324:case 347:case 323:case 292:case 293:case 294:case 201:case 175:case 174:case 268:case 203:case 281:case 271:case 275:case 215:case 15:case 9:case 211:case 170:case 212:case 304:case 173:case 172:case 179:case 305:case 308:case 306:case 11:case 266:case 188:case 169:case 261:return!0;default:return!1}}function canHaveLocals(e){switch(e.kind){case 220:case 242:case 180:case 270:case 300:case 176:case 195:case 177:case 186:case 181:case 249:case 250:case 251:case 263:case 219:case 185:case 178:case 182:case 339:case 341:case 318:case 324:case 347:case 201:case 175:case 174:case 268:case 179:case 308:case 266:return!0;default:return!1}}function isDeclarationStatementKind(e){return 263===e||283===e||264===e||265===e||266===e||267===e||268===e||273===e||272===e||279===e||278===e||271===e}function isStatementKindButNotDeclarationKind(e){return 253===e||252===e||260===e||247===e||245===e||243===e||250===e||251===e||249===e||246===e||257===e||254===e||256===e||258===e||259===e||244===e||248===e||255===e||354===e}function isDeclaration(e){return 169===e.kind?e.parent&&346!==e.parent.kind||isInJSFile(e):function isDeclarationKind(e){return 220===e||209===e||264===e||232===e||176===e||177===e||267===e||307===e||282===e||263===e||219===e||178===e||274===e||272===e||277===e||265===e||292===e||175===e||174===e||268===e||271===e||275===e||281===e||170===e||304===e||173===e||172===e||179===e||305===e||266===e||169===e||261===e||347===e||339===e||349===e||203===e}(e.kind)}function isDeclarationStatement(e){return isDeclarationStatementKind(e.kind)}function isStatementButNotDeclaration(e){return isStatementKindButNotDeclarationKind(e.kind)}function isStatement(e){const t=e.kind;return isStatementKindButNotDeclarationKind(t)||isDeclarationStatementKind(t)||function isBlockStatement(e){if(242!==e.kind)return!1;if(void 0!==e.parent&&(259===e.parent.kind||300===e.parent.kind))return!1;return!isFunctionBlock(e)}(e)}function isStatementOrBlock(e){const t=e.kind;return isStatementKindButNotDeclarationKind(t)||isDeclarationStatementKind(t)||242===t}function isModuleReference(e){const t=e.kind;return 284===t||167===t||80===t}function isJsxTagNameExpression(e){const t=e.kind;return 110===t||80===t||212===t||296===t}function isJsxChild(e){const t=e.kind;return 285===t||295===t||286===t||12===t||289===t}function isJsxAttributeLike(e){const t=e.kind;return 292===t||294===t}function isStringLiteralOrJsxExpression(e){const t=e.kind;return 11===t||295===t}function isJsxOpeningLikeElement(e){const t=e.kind;return 287===t||286===t}function isJsxCallLike(e){const t=e.kind;return 287===t||286===t||290===t}function isCaseOrDefaultClause(e){const t=e.kind;return 297===t||298===t}function isJSDocNode(e){return e.kind>=310&&e.kind<=352}function isJSDocCommentContainingNode(e){return 321===e.kind||320===e.kind||322===e.kind||isJSDocLinkLike(e)||isJSDocTag(e)||isJSDocTypeLiteral(e)||isJSDocSignature(e)}function isJSDocTag(e){return e.kind>=328&&e.kind<=352}function isSetAccessor(e){return 179===e.kind}function isGetAccessor(e){return 178===e.kind}function hasJSDocNodes(e){if(!canHaveJSDoc(e))return!1;const{jsDoc:t}=e;return!!t&&t.length>0}function hasType(e){return!!e.type}function hasInitializer(e){return!!e.initializer}function hasOnlyExpressionInitializer(e){switch(e.kind){case 261:case 170:case 209:case 173:case 304:case 307:return!0;default:return!1}}function isObjectLiteralElement(e){return 292===e.kind||294===e.kind||isObjectLiteralElementLike(e)}function isTypeReferenceType(e){return 184===e.kind||234===e.kind}var on=1073741823;function guessIndentation(e){let t=on;for(const n of e){if(!n.length)continue;let e=0;for(;e0?n.parent.parameters[r-1]:void 0,o=t.text,a=i?concatenate(getTrailingCommentRanges(o,skipTrivia(o,i.end+1,!1,!0)),getLeadingCommentRanges(o,e.pos)):getTrailingCommentRanges(o,skipTrivia(o,e.pos,!1,!0));return some(a)&&hasInternalAnnotation(last(a),t)}return!!forEach(n&&getLeadingCommentRangesOfNode(n,t),e=>hasInternalAnnotation(e,t))}var an=[],sn="tslib",cn=160,ln=1e6,dn=500;function getDeclarationOfKind(e,t){const n=e.declarations;if(n)for(const e of n)if(e.kind===t)return e}function getDeclarationsOfKind(e,t){return filter(e.declarations||l,e=>e.kind===t)}function createSymbolTable(e){const t=new Map;if(e)for(const n of e)t.set(n.escapedName,n);return t}function isTransientSymbol(e){return!!(33554432&e.flags)}function isExternalModuleSymbol(e){return!!(1536&e.flags)&&34===e.escapedName.charCodeAt(0)}var pn=function createSingleLineStringWriter(){var e="";const writeText=t=>e+=t;return{getText:()=>e,write:writeText,rawWrite:writeText,writeKeyword:writeText,writeOperator:writeText,writePunctuation:writeText,writeSpace:writeText,writeStringLiteral:writeText,writeLiteral:writeText,writeParameter:writeText,writeProperty:writeText,writeSymbol:(e,t)=>writeText(e),writeTrailingSemicolon:writeText,writeComment:writeText,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&isWhiteSpaceLike(e.charCodeAt(e.length-1)),writeLine:()=>e+=" ",increaseIndent:noop,decreaseIndent:noop,clear:()=>e=""}}();function changesAffectModuleResolution(e,t){return e.configFilePath!==t.configFilePath||function optionsHaveModuleResolutionChanges(e,t){return optionsHaveChanges(e,t,eo)}(e,t)}function changesAffectingProgramStructure(e,t){return optionsHaveChanges(e,t,no)}function optionsHaveChanges(e,t,n){return e!==t&&n.some(n=>!isJsonEqual(getCompilerOptionValue(e,n),getCompilerOptionValue(t,n)))}function forEachAncestor(e,t){for(;;){const n=t(e);if("quit"===n)return;if(void 0!==n)return n;if(isSourceFile(e))return;e=e.parent}}function forEachEntry(e,t){const n=e.entries();for(const[e,r]of n){const n=t(r,e);if(n)return n}}function forEachKey(e,t){const n=e.keys();for(const e of n){const n=t(e);if(n)return n}}function copyEntries(e,t){e.forEach((e,n)=>{t.set(n,e)})}function usingSingleLineStringWriter(e){const t=pn.getText();try{return e(pn),pn.getText()}finally{pn.clear(),pn.writeKeyword(t)}}function getFullWidth(e){return e.end-e.pos}function projectReferenceIsEqualTo(e,t){return e.path===t.path&&!e.prepend==!t.prepend&&!e.circular==!t.circular}function moduleResolutionIsEqualTo(e,t){return e===t||e.resolvedModule===t.resolvedModule||!!e.resolvedModule&&!!t.resolvedModule&&e.resolvedModule.isExternalLibraryImport===t.resolvedModule.isExternalLibraryImport&&e.resolvedModule.extension===t.resolvedModule.extension&&e.resolvedModule.resolvedFileName===t.resolvedModule.resolvedFileName&&e.resolvedModule.originalPath===t.resolvedModule.originalPath&&function packageIdIsEqual(e,t){return e===t||!!e&&!!t&&e.name===t.name&&e.subModuleName===t.subModuleName&&e.version===t.version&&e.peerDependencies===t.peerDependencies}(e.resolvedModule.packageId,t.resolvedModule.packageId)&&e.alternateResult===t.alternateResult}function getResolvedModuleFromResolution(e){return e.resolvedModule}function getResolvedTypeReferenceDirectiveFromResolution(e){return e.resolvedTypeReferenceDirective}function createModuleNotFoundChain(e,t,n,r,i){var o;const a=null==(o=t.getResolvedModule(e,n,r))?void 0:o.alternateResult,s=a&&(2===qn(t.getCompilerOptions())?[Ot.There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler,[a]]:[Ot.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings,[a,a.includes(Mo+"@types/")?`@types/${mangleScopedPackageName(i)}`:i]]),c=s?chainDiagnosticMessages(void 0,s[0],...s[1]):t.typesPackageExists(i)?chainDiagnosticMessages(void 0,Ot.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,i,mangleScopedPackageName(i)):t.packageBundlesTypes(i)?chainDiagnosticMessages(void 0,Ot.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,i,n):chainDiagnosticMessages(void 0,Ot.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,n,mangleScopedPackageName(i));return c&&(c.repopulateInfo=()=>({moduleReference:n,mode:r,packageName:i===n?void 0:i})),c}function createModeMismatchDetails(e){const t=tryGetExtensionFromPath2(e.fileName),n=e.packageJsonScope,r=".ts"===t?".mts":".js"===t?".mjs":void 0,i=n&&!n.contents.packageJsonContent.type?r?chainDiagnosticMessages(void 0,Ot.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1,r,combinePaths(n.packageDirectory,"package.json")):chainDiagnosticMessages(void 0,Ot.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0,combinePaths(n.packageDirectory,"package.json")):r?chainDiagnosticMessages(void 0,Ot.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module,r):chainDiagnosticMessages(void 0,Ot.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module);return i.repopulateInfo=()=>!0,i}function packageIdToPackageName({name:e,subModuleName:t}){return t?`${e}/${t}`:e}function packageIdToString(e){return`${packageIdToPackageName(e)}@${e.version}${e.peerDependencies??""}`}function typeDirectiveIsEqualTo(e,t){return e===t||e.resolvedTypeReferenceDirective===t.resolvedTypeReferenceDirective||!!e.resolvedTypeReferenceDirective&&!!t.resolvedTypeReferenceDirective&&e.resolvedTypeReferenceDirective.resolvedFileName===t.resolvedTypeReferenceDirective.resolvedFileName&&!!e.resolvedTypeReferenceDirective.primary==!!t.resolvedTypeReferenceDirective.primary&&e.resolvedTypeReferenceDirective.originalPath===t.resolvedTypeReferenceDirective.originalPath}function hasChangesInResolutions(e,t,n,r){h.assert(e.length===t.length);for(let i=0;i=0),getLineStarts(t)[e]}function nodePosToString(e){const t=getSourceFileOfNode(e),n=getLineAndCharacterOfPosition(t,e.pos);return`${t.fileName}(${n.line+1},${n.character+1})`}function getEndLinePosition(e,t){h.assert(e>=0);const n=getLineStarts(t),r=e,i=t.text;if(r+1===n.length)return i.length-1;{const e=n[r];let t=n[r+1]-1;for(h.assert(isLineBreak(i.charCodeAt(t)));e<=t&&isLineBreak(i.charCodeAt(t));)t--;return t}}function isFileLevelUniqueName(e,t,n){return!(n&&n(t)||e.identifiers.has(t))}function nodeIsMissing(e){return void 0===e||e.pos===e.end&&e.pos>=0&&1!==e.kind}function nodeIsPresent(e){return!nodeIsMissing(e)}function isGrammarError(e,t){return isTypeParameterDeclaration(e)?t===e.expression:isClassStaticBlockDeclaration(e)?t===e.modifiers:isPropertySignature(e)?t===e.initializer:isPropertyDeclaration(e)?t===e.questionToken&&isAutoAccessorPropertyDeclaration(e):isPropertyAssignment(e)?t===e.modifiers||t===e.questionToken||t===e.exclamationToken||isGrammarErrorElement(e.modifiers,t,isModifierLike):isShorthandPropertyAssignment(e)?t===e.equalsToken||t===e.modifiers||t===e.questionToken||t===e.exclamationToken||isGrammarErrorElement(e.modifiers,t,isModifierLike):isMethodDeclaration(e)?t===e.exclamationToken:isConstructorDeclaration(e)?t===e.typeParameters||t===e.type||isGrammarErrorElement(e.typeParameters,t,isTypeParameterDeclaration):isGetAccessorDeclaration(e)?t===e.typeParameters||isGrammarErrorElement(e.typeParameters,t,isTypeParameterDeclaration):isSetAccessorDeclaration(e)?t===e.typeParameters||t===e.type||isGrammarErrorElement(e.typeParameters,t,isTypeParameterDeclaration):!!isNamespaceExportDeclaration(e)&&(t===e.modifiers||isGrammarErrorElement(e.modifiers,t,isModifierLike))}function isGrammarErrorElement(e,t,n){return!(!e||isArray(t)||!n(t))&&contains(e,t)}function insertStatementsAfterPrologue(e,t,n){if(void 0===t||0===t.length)return e;let r=0;for(;r[`${getLineAndCharacterOfPosition(e,t.range.end).line}`,t])),r=new Map;return{getUnusedExpectations:function getUnusedExpectations(){return arrayFrom(n.entries()).filter(([e,t])=>0===t.type&&!r.get(e)).map(([e,t])=>t)},markUsed:function markUsed(e){if(!n.has(`${e}`))return!1;return r.set(`${e}`,!0),!0}}}function getTokenPosOfNode(e,t,n){if(nodeIsMissing(e))return e.pos;if(isJSDocNode(e)||12===e.kind)return skipTrivia((t??getSourceFileOfNode(e)).text,e.pos,!1,!0);if(n&&hasJSDocNodes(e))return getTokenPosOfNode(e.jsDoc[0],t);if(353===e.kind){t??(t=getSourceFileOfNode(e));const r=firstOrUndefined(getNodeChildren(e,t));if(r)return getTokenPosOfNode(r,t,n)}return skipTrivia((t??getSourceFileOfNode(e)).text,e.pos,!1,!1,isInJSDoc(e))}function getNonDecoratorTokenPosOfNode(e,t){const n=!nodeIsMissing(e)&&canHaveModifiers(e)?findLast(e.modifiers,isDecorator):void 0;return n?skipTrivia((t||getSourceFileOfNode(e)).text,n.end):getTokenPosOfNode(e,t)}function getNonModifierTokenPosOfNode(e,t){const n=!nodeIsMissing(e)&&canHaveModifiers(e)&&e.modifiers?last(e.modifiers):void 0;return n?skipTrivia((t||getSourceFileOfNode(e)).text,n.end):getTokenPosOfNode(e,t)}function getSourceTextOfNodeFromSourceFile(e,t,n=!1){return getTextOfNodeFromSourceText(e.text,t,n)}function isExportNamespaceAsDefaultDeclaration(e){return!!(isExportDeclaration(e)&&e.exportClause&&isNamespaceExport(e.exportClause)&&moduleExportNameIsDefault(e.exportClause.name))}function moduleExportNameTextUnescaped(e){return 11===e.kind?e.text:unescapeLeadingUnderscores(e.escapedText)}function moduleExportNameTextEscaped(e){return 11===e.kind?escapeLeadingUnderscores(e.text):e.escapedText}function moduleExportNameIsDefault(e){return"default"===(11===e.kind?e.text:e.escapedText)}function getTextOfNodeFromSourceText(e,t,n=!1){if(nodeIsMissing(t))return"";let r=e.substring(n?t.pos:skipTrivia(e,t.pos),t.end);return function isJSDocTypeExpressionOrChild(e){return!!findAncestor(e,isJSDocTypeExpression)}(t)&&(r=r.split(/\r\n|\n|\r/).map(e=>e.replace(/^\s*\*/,"").trimStart()).join("\n")),r}function getTextOfNode(e,t=!1){return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(e),e,t)}function getPos(e){return e.pos}function indexOfNode(e,t){return binarySearch(e,t,getPos,compareValues)}function getEmitFlags(e){const t=e.emitNode;return t&&t.flags||0}function getInternalEmitFlags(e){const t=e.emitNode;return t&&t.internalFlags||0}var un=memoize(()=>new Map(Object.entries({Array:new Map(Object.entries({es2015:["find","findIndex","fill","copyWithin","entries","keys","values"],es2016:["includes"],es2019:["flat","flatMap"],es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Iterator:new Map(Object.entries({es2015:l})),AsyncIterator:new Map(Object.entries({es2015:l})),ArrayBuffer:new Map(Object.entries({es2024:["maxByteLength","resizable","resize","detached","transfer","transferToFixedLength"]})),Atomics:new Map(Object.entries({es2017:["add","and","compareExchange","exchange","isLockFree","load","or","store","sub","wait","notify","xor"],es2024:["waitAsync"],esnext:["pause"]})),SharedArrayBuffer:new Map(Object.entries({es2017:["byteLength","slice"],es2024:["growable","maxByteLength","grow"]})),AsyncIterable:new Map(Object.entries({es2018:l})),AsyncIterableIterator:new Map(Object.entries({es2018:l})),AsyncGenerator:new Map(Object.entries({es2018:l})),AsyncGeneratorFunction:new Map(Object.entries({es2018:l})),RegExp:new Map(Object.entries({es2015:["flags","sticky","unicode"],es2018:["dotAll"],es2024:["unicodeSets"]})),Reflect:new Map(Object.entries({es2015:["apply","construct","defineProperty","deleteProperty","get","getOwnPropertyDescriptor","getPrototypeOf","has","isExtensible","ownKeys","preventExtensions","set","setPrototypeOf"]})),ArrayConstructor:new Map(Object.entries({es2015:["from","of"],esnext:["fromAsync"]})),ObjectConstructor:new Map(Object.entries({es2015:["assign","getOwnPropertySymbols","keys","is","setPrototypeOf"],es2017:["values","entries","getOwnPropertyDescriptors"],es2019:["fromEntries"],es2022:["hasOwn"],es2024:["groupBy"]})),NumberConstructor:new Map(Object.entries({es2015:["isFinite","isInteger","isNaN","isSafeInteger","parseFloat","parseInt"]})),Math:new Map(Object.entries({es2015:["clz32","imul","sign","log10","log2","log1p","expm1","cosh","sinh","tanh","acosh","asinh","atanh","hypot","trunc","fround","cbrt"],esnext:["f16round"]})),Map:new Map(Object.entries({es2015:["entries","keys","values"]})),MapConstructor:new Map(Object.entries({es2024:["groupBy"]})),Set:new Map(Object.entries({es2015:["entries","keys","values"],esnext:["union","intersection","difference","symmetricDifference","isSubsetOf","isSupersetOf","isDisjointFrom"]})),PromiseConstructor:new Map(Object.entries({es2015:["all","race","reject","resolve"],es2020:["allSettled"],es2021:["any"],es2024:["withResolvers"]})),Symbol:new Map(Object.entries({es2015:["for","keyFor"],es2019:["description"]})),WeakMap:new Map(Object.entries({es2015:["entries","keys","values"]})),WeakSet:new Map(Object.entries({es2015:["entries","keys","values"]})),String:new Map(Object.entries({es2015:["codePointAt","includes","endsWith","normalize","repeat","startsWith","anchor","big","blink","bold","fixed","fontcolor","fontsize","italics","link","small","strike","sub","sup"],es2017:["padStart","padEnd"],es2019:["trimStart","trimEnd","trimLeft","trimRight"],es2020:["matchAll"],es2021:["replaceAll"],es2022:["at"],es2024:["isWellFormed","toWellFormed"]})),StringConstructor:new Map(Object.entries({es2015:["fromCodePoint","raw"]})),DateTimeFormat:new Map(Object.entries({es2017:["formatToParts"]})),Promise:new Map(Object.entries({es2015:l,es2018:["finally"]})),RegExpMatchArray:new Map(Object.entries({es2018:["groups"]})),RegExpExecArray:new Map(Object.entries({es2018:["groups"]})),Intl:new Map(Object.entries({es2018:["PluralRules"]})),NumberFormat:new Map(Object.entries({es2018:["formatToParts"]})),SymbolConstructor:new Map(Object.entries({es2020:["matchAll"],esnext:["metadata","dispose","asyncDispose"]})),DataView:new Map(Object.entries({es2020:["setBigInt64","setBigUint64","getBigInt64","getBigUint64"],esnext:["setFloat16","getFloat16"]})),BigInt:new Map(Object.entries({es2020:l})),RelativeTimeFormat:new Map(Object.entries({es2020:["format","formatToParts","resolvedOptions"]})),Int8Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Uint8Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Uint8ClampedArray:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Int16Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Uint16Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Int32Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Uint32Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Float16Array:new Map(Object.entries({esnext:l})),Float32Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Float64Array:new Map(Object.entries({es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),BigInt64Array:new Map(Object.entries({es2020:l,es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),BigUint64Array:new Map(Object.entries({es2020:l,es2022:["at"],es2023:["findLastIndex","findLast","toReversed","toSorted","toSpliced","with"]})),Error:new Map(Object.entries({es2022:["cause"]}))}))),mn=(e=>(e[e.None=0]="None",e[e.NeverAsciiEscape=1]="NeverAsciiEscape",e[e.JsxAttributeEscape=2]="JsxAttributeEscape",e[e.TerminateUnterminatedLiterals=4]="TerminateUnterminatedLiterals",e[e.AllowNumericSeparator=8]="AllowNumericSeparator",e))(mn||{});function getLiteralText(e,t,n){if(t&&function canUseOriginalText(e,t){if(nodeIsSynthesized(e)||!e.parent||4&t&&e.isUnterminated)return!1;if(isNumericLiteral(e)){if(26656&e.numericLiteralFlags)return!1;if(512&e.numericLiteralFlags)return!!(8&t)}return!isBigIntLiteral(e)}(e,n))return getSourceTextOfNodeFromSourceFile(t,e);switch(e.kind){case 11:{const t=2&n?escapeJsxAttributeString:1&n||16777216&getEmitFlags(e)?escapeString:escapeNonAsciiString;return e.singleQuote?"'"+t(e.text,39)+"'":'"'+t(e.text,34)+'"'}case 15:case 16:case 17:case 18:{const t=1&n||16777216&getEmitFlags(e)?escapeString:escapeNonAsciiString,r=e.rawText??escapeTemplateSubstitution(t(e.text,96));switch(e.kind){case 15:return"`"+r+"`";case 16:return"`"+r+"${";case 17:return"}"+r+"${";case 18:return"}"+r+"`"}break}case 9:case 10:return e.text;case 14:return 4&n&&e.isUnterminated?e.text+(92===e.text.charCodeAt(e.text.length-1)?" /":"/"):e.text}return h.fail(`Literal kind '${e.kind}' not accounted for.`)}function getTextOfConstantValue(e){return isString(e)?`"${escapeString(e)}"`:""+e}function makeIdentifierFromModuleName(e){return getBaseFileName(e).replace(/^(\d)/,"_$1").replace(/\W/g,"_")}function isBlockOrCatchScoped(e){return!!(7&getCombinedNodeFlags(e))||isCatchClauseVariableDeclarationOrBindingElement(e)}function isCatchClauseVariableDeclarationOrBindingElement(e){const t=getRootDeclaration(e);return 261===t.kind&&300===t.parent.kind}function isAmbientModule(e){return isModuleDeclaration(e)&&(11===e.name.kind||isGlobalScopeAugmentation(e))}function isModuleWithStringLiteralName(e){return isModuleDeclaration(e)&&11===e.name.kind}function isNonGlobalAmbientModule(e){return isModuleDeclaration(e)&&isStringLiteral(e.name)}function isShorthandAmbientModuleSymbol(e){return function isShorthandAmbientModule(e){return!!e&&268===e.kind&&!e.body}(e.valueDeclaration)}function isBlockScopedContainerTopLevel(e){return 308===e.kind||268===e.kind||isFunctionLikeOrClassStaticBlockDeclaration(e)}function isGlobalScopeAugmentation(e){return!!(2048&e.flags)}function isExternalModuleAugmentation(e){return isAmbientModule(e)&&isModuleAugmentationExternal(e)}function isModuleAugmentationExternal(e){switch(e.parent.kind){case 308:return isExternalModule(e.parent);case 269:return isAmbientModule(e.parent.parent)&&isSourceFile(e.parent.parent.parent)&&!isExternalModule(e.parent.parent.parent)}return!1}function getNonAugmentationDeclaration(e){var t;return null==(t=e.declarations)?void 0:t.find(e=>!(isExternalModuleAugmentation(e)||isModuleDeclaration(e)&&isGlobalScopeAugmentation(e)))}function isEffectiveExternalModule(e,t){return isExternalModule(e)||function isCommonJSContainingModuleKind(e){return 1===e||100<=e&&e<=199}(Vn(t))&&!!e.commonJsModuleIndicator}function isEffectiveStrictModeSourceFile(e,t){switch(e.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return!e.isDeclarationFile&&(!!getStrictOptionValue(t,"alwaysStrict")||(!!startsWithUseStrict(e.statements)||!(!isExternalModule(e)&&!Kn(t))))}function isAmbientPropertyDeclaration(e){return!!(33554432&e.flags)||hasSyntacticModifier(e,128)}function isBlockScope(e,t){switch(e.kind){case 308:case 270:case 300:case 268:case 249:case 250:case 251:case 177:case 175:case 178:case 179:case 263:case 219:case 220:case 173:case 176:return!0;case 242:return!isFunctionLikeOrClassStaticBlockDeclaration(t)}return!1}function isDeclarationWithTypeParameters(e){switch(h.type(e),e.kind){case 339:case 347:case 324:return!0;default:return isDeclarationWithTypeParameterChildren(e)}}function isDeclarationWithTypeParameterChildren(e){switch(h.type(e),e.kind){case 180:case 181:case 174:case 182:case 185:case 186:case 318:case 264:case 232:case 265:case 266:case 346:case 263:case 175:case 177:case 178:case 179:case 219:case 220:return!0;default:return!1}}function isAnyImportSyntax(e){switch(e.kind){case 273:case 272:return!0;default:return!1}}function isAnyImportOrBareOrAccessedRequire(e){return isAnyImportSyntax(e)||isVariableDeclarationInitializedToBareOrAccessedRequire(e)}function isAnyImportOrRequireStatement(e){return isAnyImportSyntax(e)||isRequireVariableStatement(e)}function isLateVisibilityPaintedStatement(e){switch(e.kind){case 273:case 272:case 244:case 264:case 263:case 268:case 266:case 265:case 267:return!0;default:return!1}}function hasPossibleExternalModuleReference(e){return isAnyImportOrReExport(e)||isModuleDeclaration(e)||isImportTypeNode(e)||isImportCall(e)}function isAnyImportOrReExport(e){return isAnyImportSyntax(e)||isExportDeclaration(e)}function getEnclosingContainer(e){return findAncestor(e.parent,e=>!!(1&getContainerFlags(e)))}function getEnclosingBlockScopeContainer(e){return findAncestor(e.parent,e=>isBlockScope(e,e.parent))}function forEachEnclosingBlockScopeContainer(e,t){let n=getEnclosingBlockScopeContainer(e);for(;n;)t(n),n=getEnclosingBlockScopeContainer(n)}function declarationNameToString(e){return e&&0!==getFullWidth(e)?getTextOfNode(e):"(Missing)"}function getNameFromIndexInfo(e){return e.declaration?declarationNameToString(e.declaration.parameters[0].name):void 0}function isComputedNonLiteralName(e){return 168===e.kind&&!isStringOrNumericLiteralLike(e.expression)}function tryGetTextOfPropertyName(e){var t;switch(e.kind){case 80:case 81:return(null==(t=e.emitNode)?void 0:t.autoGenerate)?void 0:e.escapedText;case 11:case 9:case 10:case 15:return escapeLeadingUnderscores(e.text);case 168:return isStringOrNumericLiteralLike(e.expression)?escapeLeadingUnderscores(e.expression.text):void 0;case 296:return getEscapedTextOfJsxNamespacedName(e);default:return h.assertNever(e)}}function getTextOfPropertyName(e){return h.checkDefined(tryGetTextOfPropertyName(e))}function entityNameToString(e){switch(e.kind){case 110:return"this";case 81:case 80:return 0===getFullWidth(e)?idText(e):getTextOfNode(e);case 167:return entityNameToString(e.left)+"."+entityNameToString(e.right);case 212:return isIdentifier(e.name)||isPrivateIdentifier(e.name)?entityNameToString(e.expression)+"."+entityNameToString(e.name):h.assertNever(e.name);case 312:return entityNameToString(e.left)+"#"+entityNameToString(e.right);case 296:return entityNameToString(e.namespace)+":"+entityNameToString(e.name);default:return h.assertNever(e)}}function createDiagnosticForNode(e,t,...n){return createDiagnosticForNodeInSourceFile(getSourceFileOfNode(e),e,t,...n)}function createDiagnosticForNodeArray(e,t,n,...r){const i=skipTrivia(e.text,t.pos);return createFileDiagnostic(e,i,t.end-i,n,...r)}function createDiagnosticForNodeInSourceFile(e,t,n,...r){const i=getErrorSpanForNode(e,t);return createFileDiagnostic(e,i.start,i.length,n,...r)}function createDiagnosticForNodeFromMessageChain(e,t,n,r){const i=getErrorSpanForNode(e,t);return createFileDiagnosticFromMessageChain(e,i.start,i.length,n,r)}function createDiagnosticForNodeArrayFromMessageChain(e,t,n,r){const i=skipTrivia(e.text,t.pos);return createFileDiagnosticFromMessageChain(e,i,t.end-i,n,r)}function assertDiagnosticLocation(e,t,n){h.assertGreaterThanOrEqual(t,0),h.assertGreaterThanOrEqual(n,0),h.assertLessThanOrEqual(t,e.length),h.assertLessThanOrEqual(t+n,e.length)}function createFileDiagnosticFromMessageChain(e,t,n,r,i){return assertDiagnosticLocation(e.text,t,n),{file:e,start:t,length:n,code:r.code,category:r.category,messageText:r.next?r:r.messageText,relatedInformation:i,canonicalHead:r.canonicalHead}}function createDiagnosticForFileFromMessageChain(e,t,n){return{file:e,start:0,length:0,code:t.code,category:t.category,messageText:t.next?t:t.messageText,relatedInformation:n}}function createDiagnosticMessageChainFromDiagnostic(e){return"string"==typeof e.messageText?{code:e.code,category:e.category,messageText:e.messageText,next:e.next}:e.messageText}function createDiagnosticForRange(e,t,n){return{file:e,start:t.pos,length:t.end-t.pos,code:n.code,category:n.category,messageText:n.message}}function getCanonicalDiagnostic(e,...t){return{code:e.code,messageText:formatMessage(e,...t)}}function getSpanOfTokenAtPosition(e,t){const n=createScanner(e.languageVersion,!0,e.languageVariant,e.text,void 0,t);n.scan();return createTextSpanFromBounds(n.getTokenStart(),n.getTokenEnd())}function scanTokenAtPosition(e,t){const n=createScanner(e.languageVersion,!0,e.languageVariant,e.text,void 0,t);return n.scan(),n.getToken()}function getErrorSpanForNode(e,t){let n=t;switch(t.kind){case 308:{const t=skipTrivia(e.text,0,!1);return t===e.text.length?createTextSpan(0,0):getSpanOfTokenAtPosition(e,t)}case 261:case 209:case 264:case 232:case 265:case 268:case 267:case 307:case 263:case 219:case 175:case 178:case 179:case 266:case 173:case 172:case 275:n=t.name;break;case 220:return function getErrorSpanForArrowFunction(e,t){const n=skipTrivia(e.text,t.pos);if(t.body&&242===t.body.kind){const{line:r}=getLineAndCharacterOfPosition(e,t.body.pos),{line:i}=getLineAndCharacterOfPosition(e,t.body.end);if(r0?t.statements[0].pos:t.end);case 254:case 230:return getSpanOfTokenAtPosition(e,skipTrivia(e.text,t.pos));case 239:return getSpanOfTokenAtPosition(e,skipTrivia(e.text,t.expression.end));case 351:return getSpanOfTokenAtPosition(e,skipTrivia(e.text,t.tagName.pos));case 177:{const n=t,r=skipTrivia(e.text,n.pos),i=createScanner(e.languageVersion,!0,e.languageVariant,e.text,void 0,r);let o=i.scan();for(;137!==o&&1!==o;)o=i.scan();return createTextSpanFromBounds(r,i.getTokenEnd())}}if(void 0===n)return getSpanOfTokenAtPosition(e,t.pos);h.assert(!isJSDoc(n));const r=nodeIsMissing(n),i=r||isJsxText(t)?n.pos:skipTrivia(e.text,n.pos);return r?(h.assert(i===n.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),h.assert(i===n.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")):(h.assert(i>=n.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),h.assert(i<=n.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")),createTextSpanFromBounds(i,n.end)}function isGlobalSourceFile(e){return 308===e.kind&&!isExternalOrCommonJsModule(e)}function isExternalOrCommonJsModule(e){return void 0!==(e.externalModuleIndicator||e.commonJsModuleIndicator)}function isJsonSourceFile(e){return 6===e.scriptKind}function isEnumConst(e){return!!(4096&getCombinedModifierFlags(e))}function isDeclarationReadonly(e){return!(!(8&getCombinedModifierFlags(e))||isParameterPropertyDeclaration(e,e.parent))}function isVarAwaitUsing(e){return 6==(7&getCombinedNodeFlags(e))}function isVarUsing(e){return 4==(7&getCombinedNodeFlags(e))}function isVarConst(e){return 2==(7&getCombinedNodeFlags(e))}function isVarConstLike(e){const t=7&getCombinedNodeFlags(e);return 2===t||4===t||6===t}function isLet(e){return 1==(7&getCombinedNodeFlags(e))}function isSuperCall(e){return 214===e.kind&&108===e.expression.kind}function isImportCall(e){if(214!==e.kind)return!1;const t=e.expression;return 102===t.kind||isMetaProperty(t)&&102===t.keywordToken&&"defer"===t.name.escapedText}function isImportMeta(e){return isMetaProperty(e)&&102===e.keywordToken&&"meta"===e.name.escapedText}function isLiteralImportTypeNode(e){return isImportTypeNode(e)&&isLiteralTypeNode(e.argument)&&isStringLiteral(e.argument.literal)}function isPrologueDirective(e){return 245===e.kind&&11===e.expression.kind}function isCustomPrologue(e){return!!(2097152&getEmitFlags(e))}function isHoistedFunction(e){return isCustomPrologue(e)&&isFunctionDeclaration(e)}function isHoistedVariable(e){return isIdentifier(e.name)&&!e.initializer}function isHoistedVariableStatement(e){return isCustomPrologue(e)&&isVariableStatement(e)&&every(e.declarationList.declarations,isHoistedVariable)}function getLeadingCommentRangesOfNode(e,t){return 12!==e.kind?getLeadingCommentRanges(t.text,e.pos):void 0}function getJSDocCommentRanges(e,t){return filter(170===e.kind||169===e.kind||219===e.kind||220===e.kind||218===e.kind||261===e.kind||282===e.kind?concatenate(getTrailingCommentRanges(t,e.pos),getLeadingCommentRanges(t,e.pos)):getLeadingCommentRanges(t,e.pos),n=>n.end<=e.end&&42===t.charCodeAt(n.pos+1)&&42===t.charCodeAt(n.pos+2)&&47!==t.charCodeAt(n.pos+3))}var _n=/^\/\/\/\s*/,fn=/^\/\/\/\s*/,gn=/^\/\/\/\s*/,yn=/^\/\/\/\s*/,hn=/^\/\/\/\s*/,Tn=/^\/\/\/\s*/;function isPartOfTypeNode(e){if(183<=e.kind&&e.kind<=206)return!0;switch(e.kind){case 133:case 159:case 150:case 163:case 154:case 136:case 155:case 151:case 157:case 106:case 146:return!0;case 116:return 223!==e.parent.kind;case 234:return isPartOfTypeExpressionWithTypeArguments(e);case 169:return 201===e.parent.kind||196===e.parent.kind;case 80:(167===e.parent.kind&&e.parent.right===e||212===e.parent.kind&&e.parent.name===e)&&(e=e.parent),h.assert(80===e.kind||167===e.kind||212===e.kind,"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");case 167:case 212:case 110:{const{parent:t}=e;if(187===t.kind)return!1;if(206===t.kind)return!t.isTypeOf;if(183<=t.kind&&t.kind<=206)return!0;switch(t.kind){case 234:return isPartOfTypeExpressionWithTypeArguments(t);case 169:case 346:return e===t.constraint;case 173:case 172:case 170:case 261:case 263:case 219:case 220:case 177:case 175:case 174:case 178:case 179:case 180:case 181:case 182:case 217:return e===t.type;case 214:case 215:case 216:return contains(t.typeArguments,e)}}}return!1}function isPartOfTypeExpressionWithTypeArguments(e){return isJSDocImplementsTag(e.parent)||isJSDocAugmentsTag(e.parent)||isHeritageClause(e.parent)&&!isExpressionWithTypeArgumentsInClassExtendsClause(e)}function forEachReturnStatement(e,t){return function traverse(e){switch(e.kind){case 254:return t(e);case 270:case 242:case 246:case 247:case 248:case 249:case 250:case 251:case 255:case 256:case 297:case 298:case 257:case 259:case 300:return forEachChild(e,traverse)}}(e)}function forEachYieldExpression(e,t){return function traverse(e){switch(e.kind){case 230:t(e);const n=e.expression;return void(n&&traverse(n));case 267:case 265:case 268:case 266:return;default:if(isFunctionLike(e)){if(e.name&&168===e.name.kind)return void traverse(e.name.expression)}else isPartOfTypeNode(e)||forEachChild(e,traverse)}}(e)}function getRestParameterElementType(e){return e&&189===e.kind?e.elementType:e&&184===e.kind?singleOrUndefined(e.typeArguments):void 0}function getMembersOfDeclaration(e){switch(e.kind){case 265:case 264:case 232:case 188:return e.members;case 211:return e.properties}}function isVariableLike(e){if(e)switch(e.kind){case 209:case 307:case 170:case 304:case 173:case 172:case 305:case 261:return!0}return!1}function isVariableDeclarationInVariableStatement(e){return 262===e.parent.kind&&244===e.parent.parent.kind}function isCommonJsExportedExpression(e){return!!isInJSFile(e)&&(isObjectLiteralExpression(e.parent)&&isBinaryExpression(e.parent.parent)&&2===getAssignmentDeclarationKind(e.parent.parent)||isCommonJsExportPropertyAssignment(e.parent))}function isCommonJsExportPropertyAssignment(e){return!!isInJSFile(e)&&(isBinaryExpression(e)&&1===getAssignmentDeclarationKind(e))}function isValidESSymbolDeclaration(e){return(isVariableDeclaration(e)?isVarConst(e)&&isIdentifier(e.name)&&isVariableDeclarationInVariableStatement(e):isPropertyDeclaration(e)?hasEffectiveReadonlyModifier(e)&&hasStaticModifier(e):isPropertySignature(e)&&hasEffectiveReadonlyModifier(e))||isCommonJsExportPropertyAssignment(e)}function introducesArgumentsExoticObject(e){switch(e.kind){case 175:case 174:case 177:case 178:case 179:case 263:case 219:return!0}return!1}function unwrapInnermostStatementOfLabel(e,t){for(;;){if(t&&t(e),257!==e.statement.kind)return e.statement;e=e.statement}}function isFunctionBlock(e){return e&&242===e.kind&&isFunctionLike(e.parent)}function isObjectLiteralMethod(e){return e&&175===e.kind&&211===e.parent.kind}function isObjectLiteralOrClassExpressionMethodOrAccessor(e){return!(175!==e.kind&&178!==e.kind&&179!==e.kind||211!==e.parent.kind&&232!==e.parent.kind)}function isIdentifierTypePredicate(e){return e&&1===e.kind}function isThisTypePredicate(e){return e&&0===e.kind}function forEachPropertyAssignment(e,t,n,r){return forEach(null==e?void 0:e.properties,e=>{if(!isPropertyAssignment(e))return;const i=tryGetTextOfPropertyName(e.name);return t===i||r&&r===i?n(e):void 0})}function getTsConfigObjectLiteralExpression(e){if(e&&e.statements.length){return tryCast(e.statements[0].expression,isObjectLiteralExpression)}}function getTsConfigPropArrayElementValue(e,t,n){return forEachTsConfigPropArray(e,t,e=>isArrayLiteralExpression(e.initializer)?find(e.initializer.elements,e=>isStringLiteral(e)&&e.text===n):void 0)}function forEachTsConfigPropArray(e,t,n){return forEachPropertyAssignment(getTsConfigObjectLiteralExpression(e),t,n)}function getContainingFunction(e){return findAncestor(e.parent,isFunctionLike)}function getContainingFunctionDeclaration(e){return findAncestor(e.parent,isFunctionLikeDeclaration)}function getContainingClass(e){return findAncestor(e.parent,isClassLike)}function getContainingClassStaticBlock(e){return findAncestor(e.parent,e=>isClassLike(e)||isFunctionLike(e)?"quit":isClassStaticBlockDeclaration(e))}function getContainingFunctionOrClassStaticBlock(e){return findAncestor(e.parent,isFunctionLikeOrClassStaticBlockDeclaration)}function getContainingClassExcludingClassDecorators(e){const t=findAncestor(e.parent,e=>isClassLike(e)?"quit":isDecorator(e));return t&&isClassLike(t.parent)?getContainingClass(t.parent):getContainingClass(t??e)}function getThisContainer(e,t,n){for(h.assert(308!==e.kind);;){if(!(e=e.parent))return h.fail();switch(e.kind){case 168:if(n&&isClassLike(e.parent.parent))return e;e=e.parent.parent;break;case 171:170===e.parent.kind&&isClassElement(e.parent.parent)?e=e.parent.parent:isClassElement(e.parent)&&(e=e.parent);break;case 220:if(!t)continue;case 263:case 219:case 268:case 176:case 173:case 172:case 175:case 174:case 177:case 178:case 179:case 180:case 181:case 182:case 267:case 308:return e}}}function isThisContainerOrFunctionBlock(e){switch(e.kind){case 220:case 263:case 219:case 173:return!0;case 242:switch(e.parent.kind){case 177:case 175:case 178:case 179:return!0;default:return!1}default:return!1}}function isInTopLevelContext(e){isIdentifier(e)&&(isClassDeclaration(e.parent)||isFunctionDeclaration(e.parent))&&e.parent.name===e&&(e=e.parent);return isSourceFile(getThisContainer(e,!0,!1))}function getNewTargetContainer(e){const t=getThisContainer(e,!1,!1);if(t)switch(t.kind){case 177:case 263:case 219:return t}}function getSuperContainer(e,t){for(;;){if(!(e=e.parent))return;switch(e.kind){case 168:e=e.parent;break;case 263:case 219:case 220:if(!t)continue;case 173:case 172:case 175:case 174:case 177:case 178:case 179:case 176:return e;case 171:170===e.parent.kind&&isClassElement(e.parent.parent)?e=e.parent.parent:isClassElement(e.parent)&&(e=e.parent)}}}function getImmediatelyInvokedFunctionExpression(e){if(219===e.kind||220===e.kind){let t=e,n=e.parent;for(;218===n.kind;)t=n,n=n.parent;if(214===n.kind&&n.expression===t)return n}}function isSuperProperty(e){const t=e.kind;return(212===t||213===t)&&108===e.expression.kind}function isThisProperty(e){const t=e.kind;return(212===t||213===t)&&110===e.expression.kind}function isThisInitializedDeclaration(e){var t;return!!e&&isVariableDeclaration(e)&&110===(null==(t=e.initializer)?void 0:t.kind)}function isThisInitializedObjectBindingExpression(e){return!!e&&(isShorthandPropertyAssignment(e)||isPropertyAssignment(e))&&isBinaryExpression(e.parent.parent)&&64===e.parent.parent.operatorToken.kind&&110===e.parent.parent.right.kind}function getEntityNameFromTypeNode(e){switch(e.kind){case 184:return e.typeName;case 234:return isEntityNameExpression(e.expression)?e.expression:void 0;case 80:case 167:return e}}function getInvokedExpression(e){switch(e.kind){case 216:return e.tag;case 287:case 286:return e.tagName;case 227:return e.right;case 290:return e;default:return e.expression}}function nodeCanBeDecorated(e,t,n,r){if(e&&isNamedDeclaration(t)&&isPrivateIdentifier(t.name))return!1;switch(t.kind){case 264:return!0;case 232:return!e;case 173:return void 0!==n&&(e?isClassDeclaration(n):isClassLike(n)&&!hasAbstractModifier(t)&&!hasAmbientModifier(t));case 178:case 179:case 175:return void 0!==t.body&&void 0!==n&&(e?isClassDeclaration(n):isClassLike(n));case 170:return!!e&&(void 0!==n&&void 0!==n.body&&(177===n.kind||175===n.kind||179===n.kind)&&getThisParameter(n)!==t&&void 0!==r&&264===r.kind)}return!1}function nodeIsDecorated(e,t,n,r){return hasDecorators(t)&&nodeCanBeDecorated(e,t,n,r)}function nodeOrChildIsDecorated(e,t,n,r){return nodeIsDecorated(e,t,n,r)||childIsDecorated(e,t,n)}function childIsDecorated(e,t,n){switch(t.kind){case 264:return some(t.members,r=>nodeOrChildIsDecorated(e,r,t,n));case 232:return!e&&some(t.members,r=>nodeOrChildIsDecorated(e,r,t,n));case 175:case 179:case 177:return some(t.parameters,r=>nodeIsDecorated(e,r,t,n));default:return!1}}function classOrConstructorParameterIsDecorated(e,t){if(nodeIsDecorated(e,t))return!0;const n=getFirstConstructorWithBody(t);return!!n&&childIsDecorated(e,n,t)}function classElementOrClassElementParameterIsDecorated(e,t,n){let r;if(isAccessor(t)){const{firstAccessor:e,secondAccessor:i,setAccessor:o}=getAllAccessorDeclarations(n.members,t),a=hasDecorators(e)?e:i&&hasDecorators(i)?i:void 0;if(!a||t!==a)return!1;r=null==o?void 0:o.parameters}else isMethodDeclaration(t)&&(r=t.parameters);if(nodeIsDecorated(e,t,n))return!0;if(r)for(const i of r)if(!parameterIsThisKeyword(i)&&nodeIsDecorated(e,i,t,n))return!0;return!1}function isEmptyStringLiteral(e){if(e.textSourceNode){switch(e.textSourceNode.kind){case 11:return isEmptyStringLiteral(e.textSourceNode);case 15:return""===e.text}return!1}return""===e.text}function isJSXTagName(e){const{parent:t}=e;return(287===t.kind||286===t.kind||288===t.kind)&&t.tagName===e}function isExpressionNode(e){switch(e.kind){case 108:case 106:case 112:case 97:case 14:case 210:case 211:case 212:case 213:case 214:case 215:case 216:case 235:case 217:case 239:case 236:case 218:case 219:case 232:case 220:case 223:case 221:case 222:case 225:case 226:case 227:case 228:case 231:case 229:case 233:case 285:case 286:case 289:case 230:case 224:return!0;case 237:return!isImportCall(e.parent)||e.parent.expression!==e;case 234:return!isHeritageClause(e.parent)&&!isJSDocAugmentsTag(e.parent);case 167:for(;167===e.parent.kind;)e=e.parent;return 187===e.parent.kind||isJSDocLinkLike(e.parent)||isJSDocNameReference(e.parent)||isJSDocMemberName(e.parent)||isJSXTagName(e);case 312:for(;isJSDocMemberName(e.parent);)e=e.parent;return 187===e.parent.kind||isJSDocLinkLike(e.parent)||isJSDocNameReference(e.parent)||isJSDocMemberName(e.parent)||isJSXTagName(e);case 81:return isBinaryExpression(e.parent)&&e.parent.left===e&&103===e.parent.operatorToken.kind;case 80:if(187===e.parent.kind||isJSDocLinkLike(e.parent)||isJSDocNameReference(e.parent)||isJSDocMemberName(e.parent)||isJSXTagName(e))return!0;case 9:case 10:case 11:case 15:case 110:return isInExpressionContext(e);default:return!1}}function isInExpressionContext(e){const{parent:t}=e;switch(t.kind){case 261:case 170:case 173:case 172:case 307:case 304:case 209:return t.initializer===e;case 245:case 246:case 247:case 248:case 254:case 255:case 256:case 297:case 258:return t.expression===e;case 249:const n=t;return n.initializer===e&&262!==n.initializer.kind||n.condition===e||n.incrementor===e;case 250:case 251:const r=t;return r.initializer===e&&262!==r.initializer.kind||r.expression===e;case 217:case 235:case 240:case 168:case 239:return e===t.expression;case 171:case 295:case 294:case 306:return!0;case 234:return t.expression===e&&!isPartOfTypeNode(t);case 305:return t.objectAssignmentInitializer===e;default:return isExpressionNode(t)}}function isPartOfTypeQuery(e){for(;167===e.kind||80===e.kind;)e=e.parent;return 187===e.kind}function isNamespaceReexportDeclaration(e){return isNamespaceExport(e)&&!!e.parent.moduleSpecifier}function isExternalModuleImportEqualsDeclaration(e){return 272===e.kind&&284===e.moduleReference.kind}function getExternalModuleImportEqualsDeclarationExpression(e){return h.assert(isExternalModuleImportEqualsDeclaration(e)),e.moduleReference.expression}function getExternalModuleRequireArgument(e){return isVariableDeclarationInitializedToBareOrAccessedRequire(e)&&getLeftmostAccessExpression(e.initializer).arguments[0]}function isInternalModuleImportEqualsDeclaration(e){return 272===e.kind&&284!==e.moduleReference.kind}function isFullSourceFile(e){return 308===(null==e?void 0:e.kind)}function isSourceFileJS(e){return isInJSFile(e)}function isInJSFile(e){return!!e&&!!(524288&e.flags)}function isInJsonFile(e){return!!e&&!!(134217728&e.flags)}function isSourceFileNotJson(e){return!isJsonSourceFile(e)}function isInJSDoc(e){return!!e&&!!(16777216&e.flags)}function isJSDocIndexSignature(e){return isTypeReferenceNode(e)&&isIdentifier(e.typeName)&&"Object"===e.typeName.escapedText&&e.typeArguments&&2===e.typeArguments.length&&(154===e.typeArguments[0].kind||150===e.typeArguments[0].kind)}function isRequireCall(e,t){if(214!==e.kind)return!1;const{expression:n,arguments:r}=e;if(80!==n.kind||"require"!==n.escapedText)return!1;if(1!==r.length)return!1;const i=r[0];return!t||isStringLiteralLike(i)}function isVariableDeclarationInitializedToRequire(e){return isVariableDeclarationInitializedWithRequireHelper(e,!1)}function isVariableDeclarationInitializedToBareOrAccessedRequire(e){return isVariableDeclarationInitializedWithRequireHelper(e,!0)}function isBindingElementOfBareOrAccessedRequire(e){return isBindingElement(e)&&isVariableDeclarationInitializedToBareOrAccessedRequire(e.parent.parent)}function isVariableDeclarationInitializedWithRequireHelper(e,t){return isVariableDeclaration(e)&&!!e.initializer&&isRequireCall(t?getLeftmostAccessExpression(e.initializer):e.initializer,!0)}function isRequireVariableStatement(e){return isVariableStatement(e)&&e.declarationList.declarations.length>0&&every(e.declarationList.declarations,e=>isVariableDeclarationInitializedToRequire(e))}function isSingleOrDoubleQuote(e){return 39===e||34===e}function isStringDoubleQuoted(e,t){return 34===getSourceTextOfNodeFromSourceFile(t,e).charCodeAt(0)}function isAssignmentDeclaration(e){return isBinaryExpression(e)||isAccessExpression(e)||isIdentifier(e)||isCallExpression(e)}function getEffectiveInitializer(e){return isInJSFile(e)&&e.initializer&&isBinaryExpression(e.initializer)&&(57===e.initializer.operatorToken.kind||61===e.initializer.operatorToken.kind)&&e.name&&isEntityNameExpression(e.name)&&isSameEntityName(e.name,e.initializer.left)?e.initializer.right:e.initializer}function getDeclaredExpandoInitializer(e){const t=getEffectiveInitializer(e);return t&&getExpandoInitializer(t,isPrototypeAccess(e.name))}function getAssignedExpandoInitializer(e){if(e&&e.parent&&isBinaryExpression(e.parent)&&64===e.parent.operatorToken.kind){const t=isPrototypeAccess(e.parent.left);return getExpandoInitializer(e.parent.right,t)||function getDefaultedExpandoInitializer(e,t,n){const r=isBinaryExpression(t)&&(57===t.operatorToken.kind||61===t.operatorToken.kind)&&getExpandoInitializer(t.right,n);if(r&&isSameEntityName(e,t.left))return r}(e.parent.left,e.parent.right,t)}if(e&&isCallExpression(e)&&isBindableObjectDefinePropertyCall(e)){const t=function hasExpandoValueProperty(e,t){return forEach(e.properties,e=>isPropertyAssignment(e)&&isIdentifier(e.name)&&"value"===e.name.escapedText&&e.initializer&&getExpandoInitializer(e.initializer,t))}(e.arguments[2],"prototype"===e.arguments[1].text);if(t)return t}}function getExpandoInitializer(e,t){if(isCallExpression(e)){const t=skipParentheses(e.expression);return 219===t.kind||220===t.kind?e:void 0}return 219===e.kind||232===e.kind||220===e.kind||isObjectLiteralExpression(e)&&(0===e.properties.length||t)?e:void 0}function isDefaultedExpandoInitializer(e){const t=isVariableDeclaration(e.parent)?e.parent.name:isBinaryExpression(e.parent)&&64===e.parent.operatorToken.kind?e.parent.left:void 0;return t&&getExpandoInitializer(e.right,isPrototypeAccess(t))&&isEntityNameExpression(t)&&isSameEntityName(t,e.left)}function getNameOfExpando(e){if(isBinaryExpression(e.parent)){const t=57!==e.parent.operatorToken.kind&&61!==e.parent.operatorToken.kind||!isBinaryExpression(e.parent.parent)?e.parent:e.parent.parent;if(64===t.operatorToken.kind&&isIdentifier(t.left))return t.left}else if(isVariableDeclaration(e.parent))return e.parent.name}function isSameEntityName(e,t){return isPropertyNameLiteral(e)&&isPropertyNameLiteral(t)?getTextOfIdentifierOrLiteral(e)===getTextOfIdentifierOrLiteral(t):isMemberName(e)&&isLiteralLikeAccess(t)&&(110===t.expression.kind||isIdentifier(t.expression)&&("window"===t.expression.escapedText||"self"===t.expression.escapedText||"global"===t.expression.escapedText))?isSameEntityName(e,getNameOrArgument(t)):!(!isLiteralLikeAccess(e)||!isLiteralLikeAccess(t))&&(getElementOrPropertyAccessName(e)===getElementOrPropertyAccessName(t)&&isSameEntityName(e.expression,t.expression))}function getRightMostAssignedExpression(e){for(;isAssignmentExpression(e,!0);)e=e.right;return e}function isExportsIdentifier(e){return isIdentifier(e)&&"exports"===e.escapedText}function isModuleIdentifier(e){return isIdentifier(e)&&"module"===e.escapedText}function isModuleExportsAccessExpression(e){return(isPropertyAccessExpression(e)||isLiteralLikeElementAccess(e))&&isModuleIdentifier(e.expression)&&"exports"===getElementOrPropertyAccessName(e)}function getAssignmentDeclarationKind(e){const t=function getAssignmentDeclarationKindWorker(e){if(isCallExpression(e)){if(!isBindableObjectDefinePropertyCall(e))return 0;const t=e.arguments[0];return isExportsIdentifier(t)||isModuleExportsAccessExpression(t)?8:isBindableStaticAccessExpression(t)&&"prototype"===getElementOrPropertyAccessName(t)?9:7}if(64!==e.operatorToken.kind||!isAccessExpression(e.left)||function isVoidZero(e){return isVoidExpression(e)&&isNumericLiteral(e.expression)&&"0"===e.expression.text}(getRightMostAssignedExpression(e)))return 0;if(isBindableStaticNameExpression(e.left.expression,!0)&&"prototype"===getElementOrPropertyAccessName(e.left)&&isObjectLiteralExpression(getInitializerOfBinaryExpression(e)))return 6;return getAssignmentDeclarationPropertyAccessKind(e.left)}(e);return 5===t||isInJSFile(e)?t:0}function isBindableObjectDefinePropertyCall(e){return 3===length(e.arguments)&&isPropertyAccessExpression(e.expression)&&isIdentifier(e.expression.expression)&&"Object"===idText(e.expression.expression)&&"defineProperty"===idText(e.expression.name)&&isStringOrNumericLiteralLike(e.arguments[1])&&isBindableStaticNameExpression(e.arguments[0],!0)}function isLiteralLikeAccess(e){return isPropertyAccessExpression(e)||isLiteralLikeElementAccess(e)}function isLiteralLikeElementAccess(e){return isElementAccessExpression(e)&&isStringOrNumericLiteralLike(e.argumentExpression)}function isBindableStaticAccessExpression(e,t){return isPropertyAccessExpression(e)&&(!t&&110===e.expression.kind||isIdentifier(e.name)&&isBindableStaticNameExpression(e.expression,!0))||isBindableStaticElementAccessExpression(e,t)}function isBindableStaticElementAccessExpression(e,t){return isLiteralLikeElementAccess(e)&&(!t&&110===e.expression.kind||isEntityNameExpression(e.expression)||isBindableStaticAccessExpression(e.expression,!0))}function isBindableStaticNameExpression(e,t){return isEntityNameExpression(e)||isBindableStaticAccessExpression(e,t)}function getNameOrArgument(e){return isPropertyAccessExpression(e)?e.name:e.argumentExpression}function getElementOrPropertyAccessArgumentExpressionOrName(e){if(isPropertyAccessExpression(e))return e.name;const t=skipParentheses(e.argumentExpression);return isNumericLiteral(t)||isStringLiteralLike(t)?t:e}function getElementOrPropertyAccessName(e){const t=getElementOrPropertyAccessArgumentExpressionOrName(e);if(t){if(isIdentifier(t))return t.escapedText;if(isStringLiteralLike(t)||isNumericLiteral(t))return escapeLeadingUnderscores(t.text)}}function getAssignmentDeclarationPropertyAccessKind(e){if(110===e.expression.kind)return 4;if(isModuleExportsAccessExpression(e))return 2;if(isBindableStaticNameExpression(e.expression,!0)){if(isPrototypeAccess(e.expression))return 3;let t=e;for(;!isIdentifier(t.expression);)t=t.expression;const n=t.expression;if(("exports"===n.escapedText||"module"===n.escapedText&&"exports"===getElementOrPropertyAccessName(t))&&isBindableStaticAccessExpression(e))return 1;if(isBindableStaticNameExpression(e,!0)||isElementAccessExpression(e)&&isDynamicName(e))return 5}return 0}function getInitializerOfBinaryExpression(e){for(;isBinaryExpression(e.right);)e=e.right;return e.right}function isPrototypePropertyAssignment(e){return isBinaryExpression(e)&&3===getAssignmentDeclarationKind(e)}function isSpecialPropertyDeclaration(e){return isInJSFile(e)&&e.parent&&245===e.parent.kind&&(!isElementAccessExpression(e)||isLiteralLikeElementAccess(e))&&!!getJSDocTypeTag(e.parent)}function setValueDeclaration(e,t){const{valueDeclaration:n}=e;(!n||(!(33554432&t.flags)||isInJSFile(t)||33554432&n.flags)&&isAssignmentDeclaration(n)&&!isAssignmentDeclaration(t)||n.kind!==t.kind&&function isEffectiveModuleDeclaration(e){return isModuleDeclaration(e)||isIdentifier(e)}(n))&&(e.valueDeclaration=t)}function isFunctionSymbol(e){if(!e||!e.valueDeclaration)return!1;const t=e.valueDeclaration;return 263===t.kind||isVariableDeclaration(t)&&t.initializer&&isFunctionLike(t.initializer)}function canHaveModuleSpecifier(e){switch(null==e?void 0:e.kind){case 261:case 209:case 273:case 279:case 272:case 274:case 281:case 275:case 282:case 277:case 206:return!0}return!1}function tryGetModuleSpecifierFromDeclaration(e){var t,n;switch(e.kind){case 261:case 209:return null==(t=findAncestor(e.initializer,e=>isRequireCall(e,!0)))?void 0:t.arguments[0];case 273:case 279:case 352:return tryCast(e.moduleSpecifier,isStringLiteralLike);case 272:return tryCast(null==(n=tryCast(e.moduleReference,isExternalModuleReference))?void 0:n.expression,isStringLiteralLike);case 274:case 281:return tryCast(e.parent.moduleSpecifier,isStringLiteralLike);case 275:case 282:return tryCast(e.parent.parent.moduleSpecifier,isStringLiteralLike);case 277:return tryCast(e.parent.parent.parent.moduleSpecifier,isStringLiteralLike);case 206:return isLiteralImportTypeNode(e)?e.argument.literal:void 0;default:h.assertNever(e)}}function importFromModuleSpecifier(e){return tryGetImportFromModuleSpecifier(e)||h.failBadSyntaxKind(e.parent)}function tryGetImportFromModuleSpecifier(e){switch(e.parent.kind){case 273:case 279:case 352:return e.parent;case 284:return e.parent.parent;case 214:return isImportCall(e.parent)||isRequireCall(e.parent,!1)?e.parent:void 0;case 202:if(!isStringLiteral(e))break;return tryCast(e.parent.parent,isImportTypeNode);default:return}}function shouldRewriteModuleSpecifier(e,t){return!!t.rewriteRelativeImportExtensions&&pathIsRelative(e)&&!isDeclarationFileName(e)&&hasTSFileExtension(e)}function getExternalModuleName(e){switch(e.kind){case 273:case 279:case 352:return e.moduleSpecifier;case 272:return 284===e.moduleReference.kind?e.moduleReference.expression:void 0;case 206:return isLiteralImportTypeNode(e)?e.argument.literal:void 0;case 214:return e.arguments[0];case 268:return 11===e.name.kind?e.name:void 0;default:return h.assertNever(e)}}function getNamespaceDeclarationNode(e){switch(e.kind){case 273:return e.importClause&&tryCast(e.importClause.namedBindings,isNamespaceImport);case 272:return e;case 279:return e.exportClause&&tryCast(e.exportClause,isNamespaceExport);default:return h.assertNever(e)}}function isDefaultImport(e){return!(273!==e.kind&&352!==e.kind||!e.importClause||!e.importClause.name)}function forEachImportClauseDeclaration(e,t){if(e.name){const n=t(e);if(n)return n}if(e.namedBindings){const n=isNamespaceImport(e.namedBindings)?t(e.namedBindings):forEach(e.namedBindings.elements,t);if(n)return n}}function hasQuestionToken(e){switch(e.kind){case 170:case 175:case 174:case 305:case 304:case 173:case 172:return void 0!==e.questionToken}return!1}function isJSDocConstructSignature(e){const t=isJSDocFunctionType(e)?firstOrUndefined(e.parameters):void 0,n=tryCast(t&&t.name,isIdentifier);return!!n&&"new"===n.escapedText}function isJSDocTypeAlias(e){return 347===e.kind||339===e.kind||341===e.kind}function isTypeAlias(e){return isJSDocTypeAlias(e)||isTypeAliasDeclaration(e)}function getSourceOfDefaultedAssignment(e){return isExpressionStatement(e)&&isBinaryExpression(e.expression)&&0!==getAssignmentDeclarationKind(e.expression)&&isBinaryExpression(e.expression.right)&&(57===e.expression.right.operatorToken.kind||61===e.expression.right.operatorToken.kind)?e.expression.right.right:void 0}function getSingleInitializerOfVariableStatementOrPropertyDeclaration(e){switch(e.kind){case 244:const t=getSingleVariableOfVariableStatement(e);return t&&t.initializer;case 173:case 304:return e.initializer}}function getSingleVariableOfVariableStatement(e){return isVariableStatement(e)?firstOrUndefined(e.declarationList.declarations):void 0}function getNestedModuleDeclaration(e){return isModuleDeclaration(e)&&e.body&&268===e.body.kind?e.body:void 0}function canHaveFlowNode(e){if(e.kind>=244&&e.kind<=260)return!0;switch(e.kind){case 80:case 110:case 108:case 167:case 237:case 213:case 212:case 209:case 219:case 220:case 175:case 178:case 179:return!0;default:return!1}}function canHaveJSDoc(e){switch(e.kind){case 220:case 227:case 242:case 253:case 180:case 297:case 264:case 232:case 176:case 177:case 186:case 181:case 252:case 260:case 247:case 213:case 243:case 1:case 267:case 307:case 278:case 279:case 282:case 245:case 250:case 251:case 249:case 263:case 219:case 185:case 178:case 80:case 246:case 273:case 272:case 182:case 265:case 318:case 324:case 257:case 175:case 174:case 268:case 203:case 271:case 211:case 170:case 218:case 212:case 304:case 173:case 172:case 254:case 241:case 179:case 305:case 306:case 256:case 258:case 259:case 266:case 169:case 261:case 244:case 248:case 255:return!0;default:return!1}}function getJSDocCommentsAndTags(e,t){let n;isVariableLike(e)&&hasInitializer(e)&&hasJSDocNodes(e.initializer)&&(n=addRange(n,filterOwnedJSDocTags(e,e.initializer.jsDoc)));let r=e;for(;r&&r.parent;){if(hasJSDocNodes(r)&&(n=addRange(n,filterOwnedJSDocTags(e,r.jsDoc))),170===r.kind){n=addRange(n,(t?getJSDocParameterTagsNoCache:getJSDocParameterTags)(r));break}if(169===r.kind){n=addRange(n,(t?getJSDocTypeParameterTagsNoCache:getJSDocTypeParameterTags)(r));break}r=getNextJSDocCommentLocation(r)}return n||l}function filterOwnedJSDocTags(e,t){const n=last(t);return flatMap(t,t=>{if(t===n){const n=filter(t.tags,t=>function ownsJSDocTag(e,t){return!((isJSDocTypeTag(t)||isJSDocSatisfiesTag(t))&&t.parent&&isJSDoc(t.parent)&&isParenthesizedExpression(t.parent.parent)&&t.parent.parent!==e)}(e,t));return t.tags===n?[t]:n}return filter(t.tags,isJSDocOverloadTag)})}function getNextJSDocCommentLocation(e){const t=e.parent;return 304===t.kind||278===t.kind||173===t.kind||245===t.kind&&212===e.kind||254===t.kind||getNestedModuleDeclaration(t)||isAssignmentExpression(e)?t:t.parent&&(getSingleVariableOfVariableStatement(t.parent)===e||isAssignmentExpression(t))?t.parent:t.parent&&t.parent.parent&&(getSingleVariableOfVariableStatement(t.parent.parent)||getSingleInitializerOfVariableStatementOrPropertyDeclaration(t.parent.parent)===e||getSourceOfDefaultedAssignment(t.parent.parent))?t.parent.parent:void 0}function getParameterSymbolFromJSDoc(e){if(e.symbol)return e.symbol;if(!isIdentifier(e.name))return;const t=e.name.escapedText,n=getHostSignatureFromJSDoc(e);if(!n)return;const r=find(n.parameters,e=>80===e.name.kind&&e.name.escapedText===t);return r&&r.symbol}function getEffectiveContainerForJSDocTemplateTag(e){if(isJSDoc(e.parent)&&e.parent.tags){const t=find(e.parent.tags,isJSDocTypeAlias);if(t)return t}return getHostSignatureFromJSDoc(e)}function getJSDocOverloadTags(e){return getAllJSDocTags(e,isJSDocOverloadTag)}function getHostSignatureFromJSDoc(e){const t=getEffectiveJSDocHost(e);if(t)return isPropertySignature(t)&&t.type&&isFunctionLike(t.type)?t.type:isFunctionLike(t)?t:void 0}function getEffectiveJSDocHost(e){const t=getJSDocHost(e);if(t)return getSourceOfDefaultedAssignment(t)||function getSourceOfAssignment(e){return isExpressionStatement(e)&&isBinaryExpression(e.expression)&&64===e.expression.operatorToken.kind?getRightMostAssignedExpression(e.expression):void 0}(t)||getSingleInitializerOfVariableStatementOrPropertyDeclaration(t)||getSingleVariableOfVariableStatement(t)||getNestedModuleDeclaration(t)||t}function getJSDocHost(e){const t=getJSDocRoot(e);if(!t)return;const n=t.parent;return n&&n.jsDoc&&t===lastOrUndefined(n.jsDoc)?n:void 0}function getJSDocRoot(e){return findAncestor(e.parent,isJSDoc)}function getTypeParameterFromJsDoc(e){const t=e.name.escapedText,{typeParameters:n}=e.parent.parent.parent;return n&&find(n,e=>e.name.escapedText===t)}function hasTypeArguments(e){return!!e.typeArguments}var Sn=(e=>(e[e.None=0]="None",e[e.Definite=1]="Definite",e[e.Compound=2]="Compound",e))(Sn||{});function getAssignmentTarget(e){let t=e.parent;for(;;){switch(t.kind){case 227:const n=t;return isAssignmentOperator(n.operatorToken.kind)&&n.left===e?n:void 0;case 225:case 226:const r=t,i=r.operator;return 46===i||47===i?r:void 0;case 250:case 251:const o=t;return o.initializer===e?o:void 0;case 218:case 210:case 231:case 236:e=t;break;case 306:e=t.parent;break;case 305:if(t.name!==e)return;e=t.parent;break;case 304:if(t.name===e)return;e=t.parent;break;default:return}t=e.parent}}function getAssignmentTargetKind(e){const t=getAssignmentTarget(e);if(!t)return 0;switch(t.kind){case 227:const e=t.operatorToken.kind;return 64===e||isLogicalOrCoalescingAssignmentOperator(e)?1:2;case 225:case 226:return 2;case 250:case 251:return 1}}function isAssignmentTarget(e){return!!getAssignmentTarget(e)}function isInCompoundLikeAssignment(e){const t=getAssignmentTarget(e);return!!t&&isAssignmentExpression(t,!0)&&function isCompoundLikeAssignment(e){const t=skipParentheses(e.right);return 227===t.kind&&isShiftOperatorOrHigher(t.operatorToken.kind)}(t)}function isNodeWithPossibleHoistedDeclaration(e){switch(e.kind){case 242:case 244:case 255:case 246:case 256:case 270:case 297:case 298:case 257:case 249:case 250:case 251:case 247:case 248:case 259:case 300:return!0}return!1}function isValueSignatureDeclaration(e){return isFunctionExpression(e)||isArrowFunction(e)||isMethodOrAccessor(e)||isFunctionDeclaration(e)||isConstructorDeclaration(e)}function walkUp(e,t){for(;e&&e.kind===t;)e=e.parent;return e}function walkUpParenthesizedTypes(e){return walkUp(e,197)}function walkUpParenthesizedExpressions(e){return walkUp(e,218)}function walkUpParenthesizedTypesAndGetParentAndChild(e){let t;for(;e&&197===e.kind;)t=e,e=e.parent;return[t,e]}function skipTypeParentheses(e){for(;isParenthesizedTypeNode(e);)e=e.type;return e}function skipParentheses(e,t){return skipOuterExpressions(e,t?-2147483647:1)}function isDeleteTarget(e){return(212===e.kind||213===e.kind)&&((e=walkUpParenthesizedExpressions(e.parent))&&221===e.kind)}function isNodeDescendantOf(e,t){for(;e;){if(e===t)return!0;e=e.parent}return!1}function isDeclarationName(e){return!isSourceFile(e)&&!isBindingPattern(e)&&isDeclaration(e.parent)&&e.parent.name===e}function getDeclarationFromName(e){const t=e.parent;switch(e.kind){case 11:case 15:case 9:if(isComputedPropertyName(t))return t.parent;case 80:if(isDeclaration(t))return t.name===e?t:void 0;if(isQualifiedName(t)){const e=t.parent;return isJSDocParameterTag(e)&&e.name===t?e:void 0}{const n=t.parent;return isBinaryExpression(n)&&0!==getAssignmentDeclarationKind(n)&&(n.left.symbol||n.symbol)&&getNameOfDeclaration(n)===e?n:void 0}case 81:return isDeclaration(t)&&t.name===e?t:void 0;default:return}}function isLiteralComputedPropertyDeclarationName(e){return isStringOrNumericLiteralLike(e)&&168===e.parent.kind&&isDeclaration(e.parent.parent)}function isIdentifierName(e){const t=e.parent;switch(t.kind){case 173:case 172:case 175:case 174:case 178:case 179:case 307:case 304:case 212:return t.name===e;case 167:return t.right===e;case 209:case 277:return t.propertyName===e;case 282:case 292:case 286:case 287:case 288:return!0}return!1}function getAliasDeclarationFromName(e){switch(e.parent.kind){case 274:case 277:case 275:case 282:case 278:case 272:case 281:return e.parent;case 167:do{e=e.parent}while(167===e.parent.kind);return getAliasDeclarationFromName(e)}}function isAliasableExpression(e){return isEntityNameExpression(e)||isClassExpression(e)}function exportAssignmentIsAlias(e){return isAliasableExpression(getExportAssignmentExpression(e))}function getExportAssignmentExpression(e){return isExportAssignment(e)?e.expression:e.right}function getPropertyAssignmentAliasLikeExpression(e){return 305===e.kind?e.name:304===e.kind?e.initializer:e.parent.right}function getEffectiveBaseTypeNode(e){const t=getClassExtendsHeritageElement(e);if(t&&isInJSFile(e)){const t=getJSDocAugmentsTag(e);if(t)return t.class}return t}function getClassExtendsHeritageElement(e){const t=getHeritageClause(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function getEffectiveImplementsTypeNodes(e){if(isInJSFile(e))return getJSDocImplementsTags(e).map(e=>e.class);{const t=getHeritageClause(e.heritageClauses,119);return null==t?void 0:t.types}}function getAllSuperTypeNodes(e){return isInterfaceDeclaration(e)?getInterfaceBaseTypeNodes(e)||l:isClassLike(e)&&concatenate(singleElementArray(getEffectiveBaseTypeNode(e)),getEffectiveImplementsTypeNodes(e))||l}function getInterfaceBaseTypeNodes(e){const t=getHeritageClause(e.heritageClauses,96);return t?t.types:void 0}function getHeritageClause(e,t){if(e)for(const n of e)if(n.token===t)return n}function getAncestor(e,t){for(;e;){if(e.kind===t)return e;e=e.parent}}function isKeyword(e){return 83<=e&&e<=166}function isPunctuation(e){return 19<=e&&e<=79}function isKeywordOrPunctuation(e){return isKeyword(e)||isPunctuation(e)}function isContextualKeyword(e){return 128<=e&&e<=166}function isNonContextualKeyword(e){return isKeyword(e)&&!isContextualKeyword(e)}function isStringANonContextualKeyword(e){const t=stringToToken(e);return void 0!==t&&isNonContextualKeyword(t)}function isIdentifierANonContextualKeyword(e){const t=identifierToKeywordKind(e);return!!t&&!isContextualKeyword(t)}function isTrivia(e){return 2<=e&&e<=7}var xn=(e=>(e[e.Normal=0]="Normal",e[e.Generator=1]="Generator",e[e.Async=2]="Async",e[e.Invalid=4]="Invalid",e[e.AsyncGenerator=3]="AsyncGenerator",e))(xn||{});function getFunctionFlags(e){if(!e)return 4;let t=0;switch(e.kind){case 263:case 219:case 175:e.asteriskToken&&(t|=1);case 220:hasSyntacticModifier(e,1024)&&(t|=2)}return e.body||(t|=4),t}function isAsyncFunction(e){switch(e.kind){case 263:case 219:case 220:case 175:return void 0!==e.body&&void 0===e.asteriskToken&&hasSyntacticModifier(e,1024)}return!1}function isStringOrNumericLiteralLike(e){return isStringLiteralLike(e)||isNumericLiteral(e)}function isSignedNumericLiteral(e){return isPrefixUnaryExpression(e)&&(40===e.operator||41===e.operator)&&isNumericLiteral(e.operand)}function hasDynamicName(e){const t=getNameOfDeclaration(e);return!!t&&isDynamicName(t)}function isDynamicName(e){if(168!==e.kind&&213!==e.kind)return!1;const t=isElementAccessExpression(e)?skipParentheses(e.argumentExpression):e.expression;return!isStringOrNumericLiteralLike(t)&&!isSignedNumericLiteral(t)}function getPropertyNameForPropertyNameNode(e){switch(e.kind){case 80:case 81:return e.escapedText;case 11:case 15:case 9:case 10:return escapeLeadingUnderscores(e.text);case 168:const t=e.expression;return isStringOrNumericLiteralLike(t)?escapeLeadingUnderscores(t.text):isSignedNumericLiteral(t)?41===t.operator?tokenToString(t.operator)+t.operand.text:t.operand.text:void 0;case 296:return getEscapedTextOfJsxNamespacedName(e);default:return h.assertNever(e)}}function isPropertyNameLiteral(e){switch(e.kind){case 80:case 11:case 15:case 9:return!0;default:return!1}}function getTextOfIdentifierOrLiteral(e){return isMemberName(e)?idText(e):isJsxNamespacedName(e)?getTextOfJsxNamespacedName(e):e.text}function getEscapedTextOfIdentifierOrLiteral(e){return isMemberName(e)?e.escapedText:isJsxNamespacedName(e)?getEscapedTextOfJsxNamespacedName(e):escapeLeadingUnderscores(e.text)}function getSymbolNameForPrivateIdentifier(e,t){return`__#${getSymbolId(e)}@${t}`}function isKnownSymbol(e){return startsWith(e.escapedName,"__@")}function isPrivateIdentifierSymbol(e){return startsWith(e.escapedName,"__#")}function isAnonymousFunctionDefinition(e,t){switch((e=skipOuterExpressions(e)).kind){case 232:if(classHasDeclaredOrExplicitlyAssignedName(e))return!1;break;case 219:if(e.name)return!1;break;case 220:break;default:return!1}return"function"!=typeof t||t(e)}function isNamedEvaluationSource(e){switch(e.kind){case 304:return!function isProtoSetter(e){return isIdentifier(e)?"__proto__"===idText(e):isStringLiteral(e)&&"__proto__"===e.text}(e.name);case 305:return!!e.objectAssignmentInitializer;case 261:return isIdentifier(e.name)&&!!e.initializer;case 170:case 209:return isIdentifier(e.name)&&!!e.initializer&&!e.dotDotDotToken;case 173:return!!e.initializer;case 227:switch(e.operatorToken.kind){case 64:case 77:case 76:case 78:return isIdentifier(e.left)}break;case 278:return!0}return!1}function isNamedEvaluation(e,t){if(!isNamedEvaluationSource(e))return!1;switch(e.kind){case 304:case 261:case 170:case 209:case 173:return isAnonymousFunctionDefinition(e.initializer,t);case 305:return isAnonymousFunctionDefinition(e.objectAssignmentInitializer,t);case 227:return isAnonymousFunctionDefinition(e.right,t);case 278:return isAnonymousFunctionDefinition(e.expression,t)}}function isPushOrUnshiftIdentifier(e){return"push"===e.escapedText||"unshift"===e.escapedText}function isPartOfParameterDeclaration(e){return 170===getRootDeclaration(e).kind}function getRootDeclaration(e){for(;209===e.kind;)e=e.parent.parent;return e}function nodeStartsNewLexicalEnvironment(e){const t=e.kind;return 177===t||219===t||263===t||220===t||175===t||178===t||179===t||268===t||308===t}function nodeIsSynthesized(e){return positionIsSynthesized(e.pos)||positionIsSynthesized(e.end)}var vn=(e=>(e[e.Left=0]="Left",e[e.Right=1]="Right",e))(vn||{});function getExpressionAssociativity(e){const t=getOperator(e),n=215===e.kind&&void 0!==e.arguments;return getOperatorAssociativity(e.kind,t,n)}function getOperatorAssociativity(e,t,n){switch(e){case 215:return n?0:1;case 225:case 222:case 223:case 221:case 224:case 228:case 230:return 1;case 227:switch(t){case 43:case 64:case 65:case 66:case 68:case 67:case 69:case 70:case 71:case 72:case 73:case 74:case 79:case 75:case 76:case 77:case 78:return 1}}return 0}function getExpressionPrecedence(e){const t=getOperator(e),n=215===e.kind&&void 0!==e.arguments;return getOperatorPrecedence(e.kind,t,n)}function getOperator(e){return 227===e.kind?e.operatorToken.kind:225===e.kind||226===e.kind?e.operator:e.kind}var bn=(e=>(e[e.Comma=0]="Comma",e[e.Spread=1]="Spread",e[e.Yield=2]="Yield",e[e.Assignment=3]="Assignment",e[e.Conditional=4]="Conditional",e[e.LogicalOR=5]="LogicalOR",e[e.Coalesce=5]="Coalesce",e[e.LogicalAND=6]="LogicalAND",e[e.BitwiseOR=7]="BitwiseOR",e[e.BitwiseXOR=8]="BitwiseXOR",e[e.BitwiseAND=9]="BitwiseAND",e[e.Equality=10]="Equality",e[e.Relational=11]="Relational",e[e.Shift=12]="Shift",e[e.Additive=13]="Additive",e[e.Multiplicative=14]="Multiplicative",e[e.Exponentiation=15]="Exponentiation",e[e.Unary=16]="Unary",e[e.Update=17]="Update",e[e.LeftHandSide=18]="LeftHandSide",e[e.Member=19]="Member",e[e.Primary=20]="Primary",e[e.Highest=20]="Highest",e[e.Lowest=0]="Lowest",e[e.Invalid=-1]="Invalid",e))(bn||{});function getOperatorPrecedence(e,t,n){switch(e){case 357:return 0;case 231:return 1;case 230:return 2;case 228:return 4;case 227:switch(t){case 28:return 0;case 64:case 65:case 66:case 68:case 67:case 69:case 70:case 71:case 72:case 73:case 74:case 79:case 75:case 76:case 77:case 78:return 3;default:return getBinaryOperatorPrecedence(t)}case 217:case 236:case 225:case 222:case 223:case 221:case 224:return 16;case 226:return 17;case 214:return 18;case 215:return n?19:18;case 216:case 212:case 213:case 237:return 19;case 235:case 239:return 11;case 110:case 108:case 80:case 81:case 106:case 112:case 97:case 9:case 10:case 11:case 210:case 211:case 219:case 220:case 232:case 14:case 15:case 229:case 218:case 233:case 285:case 286:case 289:return 20;default:return-1}}function getBinaryOperatorPrecedence(e){switch(e){case 61:case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function getSemanticJsxChildren(e){return filter(e,e=>{switch(e.kind){case 295:return!!e.expression;case 12:return!e.containsOnlyTriviaWhiteSpaces;default:return!0}})}function createDiagnosticCollection(){let e=[];const t=[],n=new Map;let r=!1;return{add:function add(i){let o;i.file?(o=n.get(i.file.fileName),o||(o=[],n.set(i.file.fileName,o),insertSorted(t,i.file.fileName,compareStringsCaseSensitive))):(r&&(r=!1,e=e.slice()),o=e);insertSorted(o,i,compareDiagnosticsSkipRelatedInformation,diagnosticsEqualityComparer)},lookup:function lookup(t){let r;r=t.file?n.get(t.file.fileName):e;if(!r)return;const i=binarySearch(r,t,identity,compareDiagnosticsSkipRelatedInformation);if(i>=0)return r[i];if(~i>0&&diagnosticsEqualityComparer(t,r[~i-1]))return r[~i-1];return},getGlobalDiagnostics:function getGlobalDiagnostics(){return r=!0,e},getDiagnostics:function getDiagnostics2(r){if(r)return n.get(r)||[];const i=flatMapToMutable(t,e=>n.get(e));if(!e.length)return i;return i.unshift(...e),i}}}var Cn=/\$\{/g;function escapeTemplateSubstitution(e){return e.replace(Cn,"\\${")}function containsInvalidEscapeFlag(e){return!!(2048&(e.templateFlags||0))}function hasInvalidEscape(e){return e&&!!(isNoSubstitutionTemplateLiteral(e)?containsInvalidEscapeFlag(e):containsInvalidEscapeFlag(e.head)||some(e.templateSpans,e=>containsInvalidEscapeFlag(e.literal)))}var En=/[\\"\u0000-\u001f\u2028\u2029\u0085]/g,Nn=/[\\'\u0000-\u001f\u2028\u2029\u0085]/g,kn=/\r\n|[\\`\u0000-\u0009\u000b-\u001f\u2028\u2029\u0085]/g,Fn=new Map(Object.entries({"\t":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\u0085":"\\u0085","\r\n":"\\r\\n"}));function encodeUtf16EscapeSequence(e){return"\\u"+("0000"+e.toString(16).toUpperCase()).slice(-4)}function getReplacement(e,t,n){if(0===e.charCodeAt(0)){const r=n.charCodeAt(t+e.length);return r>=48&&r<=57?"\\x00":"\\0"}return Fn.get(e)||encodeUtf16EscapeSequence(e.charCodeAt(0))}function escapeString(e,t){const n=96===t?kn:39===t?Nn:En;return e.replace(n,getReplacement)}var Pn=/[^\u0000-\u007F]/g;function escapeNonAsciiString(e,t){return e=escapeString(e,t),Pn.test(e)?e.replace(Pn,e=>encodeUtf16EscapeSequence(e.charCodeAt(0))):e}var Dn=/["\u0000-\u001f\u2028\u2029\u0085]/g,In=/['\u0000-\u001f\u2028\u2029\u0085]/g,An=new Map(Object.entries({'"':""","'":"'"}));function getJsxAttributeStringReplacement(e){return 0===e.charCodeAt(0)?"�":An.get(e)||function encodeJsxCharacterEntity(e){return"&#x"+e.toString(16).toUpperCase()+";"}(e.charCodeAt(0))}function escapeJsxAttributeString(e,t){const n=39===t?In:Dn;return e.replace(n,getJsxAttributeStringReplacement)}function stripQuotes(e){const t=e.length;return t>=2&&e.charCodeAt(0)===e.charCodeAt(t-1)&&function isQuoteOrBacktick(e){return 39===e||34===e||96===e}(e.charCodeAt(0))?e.substring(1,t-1):e}function isIntrinsicJsxName(e){const t=e.charCodeAt(0);return t>=97&&t<=122||e.includes("-")}var On=[""," "];function getIndentString(e){const t=On[1];for(let n=On.length;n<=e;n++)On.push(On[n-1]+t);return On[e]}function getIndentSize(){return On[1].length}function createTextWriter(e){var t,n,r,i,o,a=!1;function updateLineCountAndPosFor(e){const n=computeLineStarts(e);n.length>1?(i=i+n.length-1,o=t.length-e.length+last(n),r=o-t.length===0):r=!1}function writeText(e){e&&e.length&&(r&&(e=getIndentString(n)+e,r=!1),t+=e,updateLineCountAndPosFor(e))}function write(e){e&&(a=!1),writeText(e)}function reset2(){t="",n=0,r=!0,i=0,o=0,a=!1}return reset2(),{write,rawWrite:function rawWrite(e){void 0!==e&&(t+=e,updateLineCountAndPosFor(e),a=!1)},writeLiteral:function writeLiteral(e){e&&e.length&&write(e)},writeLine:function writeLine(n){r&&!n||(i++,o=(t+=e).length,r=!0,a=!1)},increaseIndent:()=>{n++},decreaseIndent:()=>{n--},getIndent:()=>n,getTextPos:()=>t.length,getLine:()=>i,getColumn:()=>r?n*getIndentSize():t.length-o,getText:()=>t,isAtStartOfLine:()=>r,hasTrailingComment:()=>a,hasTrailingWhitespace:()=>!!t.length&&isWhiteSpaceLike(t.charCodeAt(t.length-1)),clear:reset2,writeKeyword:write,writeOperator:write,writeParameter:write,writeProperty:write,writePunctuation:write,writeSpace:write,writeStringLiteral:write,writeSymbol:(e,t)=>write(e),writeTrailingSemicolon:write,writeComment:function writeComment(e){e&&(a=!0),writeText(e)}}}function getTrailingSemicolonDeferringWriter(e){let t=!1;function commitPendingTrailingSemicolon(){t&&(e.writeTrailingSemicolon(";"),t=!1)}return{...e,writeTrailingSemicolon(){t=!0},writeLiteral(t){commitPendingTrailingSemicolon(),e.writeLiteral(t)},writeStringLiteral(t){commitPendingTrailingSemicolon(),e.writeStringLiteral(t)},writeSymbol(t,n){commitPendingTrailingSemicolon(),e.writeSymbol(t,n)},writePunctuation(t){commitPendingTrailingSemicolon(),e.writePunctuation(t)},writeKeyword(t){commitPendingTrailingSemicolon(),e.writeKeyword(t)},writeOperator(t){commitPendingTrailingSemicolon(),e.writeOperator(t)},writeParameter(t){commitPendingTrailingSemicolon(),e.writeParameter(t)},writeSpace(t){commitPendingTrailingSemicolon(),e.writeSpace(t)},writeProperty(t){commitPendingTrailingSemicolon(),e.writeProperty(t)},writeComment(t){commitPendingTrailingSemicolon(),e.writeComment(t)},writeLine(){commitPendingTrailingSemicolon(),e.writeLine()},increaseIndent(){commitPendingTrailingSemicolon(),e.increaseIndent()},decreaseIndent(){commitPendingTrailingSemicolon(),e.decreaseIndent()}}}function hostUsesCaseSensitiveFileNames(e){return!!e.useCaseSensitiveFileNames&&e.useCaseSensitiveFileNames()}function hostGetCanonicalFileName(e){return createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(e))}function getResolvedExternalModuleName(e,t,n){return t.moduleName||getExternalModuleNameFromPath(e,t.fileName,n&&n.fileName)}function getCanonicalAbsolutePath(e,t){return e.getCanonicalFileName(getNormalizedAbsolutePath(t,e.getCurrentDirectory()))}function getExternalModuleNameFromDeclaration(e,t,n){const r=t.getExternalModuleFileFromDeclaration(n);if(!r||r.isDeclarationFile)return;const i=getExternalModuleName(n);return!i||!isStringLiteralLike(i)||pathIsRelative(i.text)||getCanonicalAbsolutePath(e,r.path).includes(getCanonicalAbsolutePath(e,ensureTrailingDirectorySeparator(e.getCommonSourceDirectory())))?getResolvedExternalModuleName(e,r):void 0}function getExternalModuleNameFromPath(e,t,n){const getCanonicalFileName=t=>e.getCanonicalFileName(t),r=toPath(n?getDirectoryPath(n):e.getCommonSourceDirectory(),e.getCurrentDirectory(),getCanonicalFileName),i=removeFileExtension(getRelativePathToDirectoryOrUrl(r,getNormalizedAbsolutePath(t,e.getCurrentDirectory()),r,getCanonicalFileName,!1));return n?ensurePathIsNonModuleName(i):i}function getOwnEmitOutputFilePath(e,t,n){const r=t.getCompilerOptions();let i;return i=r.outDir?removeFileExtension(getSourceFilePathInNewDir(e,t,r.outDir)):removeFileExtension(e),i+n}function getDeclarationEmitOutputFilePath(e,t){return getDeclarationEmitOutputFilePathWorker(e,t.getCompilerOptions(),t)}function getDeclarationEmitOutputFilePathWorker(e,t,n){const r=t.declarationDir||t.outDir,i=r?getSourceFilePathInNewDirWorker(e,r,n.getCurrentDirectory(),n.getCommonSourceDirectory(),e=>n.getCanonicalFileName(e)):e,o=getDeclarationEmitExtensionForPath(i);return removeFileExtension(i)+o}function getDeclarationEmitExtensionForPath(e){return fileExtensionIsOneOf(e,[".mjs",".mts"])?".d.mts":fileExtensionIsOneOf(e,[".cjs",".cts"])?".d.cts":fileExtensionIsOneOf(e,[".json"])?".d.json.ts":".d.ts"}function getPossibleOriginalInputExtensionForExtension(e){return fileExtensionIsOneOf(e,[".d.mts",".mjs",".mts"])?[".mts",".mjs"]:fileExtensionIsOneOf(e,[".d.cts",".cjs",".cts"])?[".cts",".cjs"]:fileExtensionIsOneOf(e,[".d.json.ts"])?[".json"]:[".tsx",".ts",".jsx",".js"]}function getPossibleOriginalInputPathWithoutChangingExt(e,t,n,r){return n?resolvePath(r(),getRelativePathFromDirectory(n,e,t)):e}function getPathsBasePath(e,t){var n;if(e.paths)return e.baseUrl??h.checkDefined(e.pathsBasePath||(null==(n=t.getCurrentDirectory)?void 0:n.call(t)),"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.")}function getSourceFilesToEmit(e,t,n){const r=e.getCompilerOptions();if(r.outFile){const t=Vn(r),i=r.emitDeclarationOnly||2===t||4===t;return filter(e.getSourceFiles(),t=>(i||!isExternalModule(t))&&sourceFileMayBeEmitted(t,e,n))}return filter(void 0===t?e.getSourceFiles():[t],t=>sourceFileMayBeEmitted(t,e,n))}function sourceFileMayBeEmitted(e,t,n){const r=t.getCompilerOptions();if(r.noEmitForJsFiles&&isSourceFileJS(e))return!1;if(e.isDeclarationFile)return!1;if(t.isSourceFileFromExternalLibrary(e))return!1;if(n)return!0;if(t.isSourceOfProjectReferenceRedirect(e.fileName))return!1;if(!isJsonSourceFile(e))return!0;if(t.getRedirectFromSourceFile(e.fileName))return!1;if(r.outFile)return!0;if(!r.outDir)return!1;if(r.rootDir||r.composite&&r.configFilePath){const n=getNormalizedAbsolutePath(getCommonSourceDirectory(r,()=>[],t.getCurrentDirectory(),t.getCanonicalFileName),t.getCurrentDirectory()),i=getSourceFilePathInNewDirWorker(e.fileName,r.outDir,t.getCurrentDirectory(),n,t.getCanonicalFileName);if(0===comparePaths(e.fileName,i,t.getCurrentDirectory(),!t.useCaseSensitiveFileNames()))return!1}return!0}function getSourceFilePathInNewDir(e,t,n){return getSourceFilePathInNewDirWorker(e,n,t.getCurrentDirectory(),t.getCommonSourceDirectory(),e=>t.getCanonicalFileName(e))}function getSourceFilePathInNewDirWorker(e,t,n,r,i){let o=getNormalizedAbsolutePath(e,n);return o=0===i(o).indexOf(i(r))?o.substring(r.length):o,combinePaths(t,o)}function writeFile(e,t,n,r,i,o,a){e.writeFile(n,r,i,e=>{t.add(createCompilerDiagnostic(Ot.Could_not_write_file_0_Colon_1,n,e))},o,a)}function ensureDirectoriesExist(e,t,n){if(e.length>getRootLength(e)&&!n(e)){ensureDirectoriesExist(getDirectoryPath(e),t,n),t(e)}}function writeFileEnsuringDirectories(e,t,n,r,i,o){try{r(e,t,n)}catch{ensureDirectoriesExist(getDirectoryPath(normalizePath(e)),i,o),r(e,t,n)}}function getLineOfLocalPosition(e,t){return computeLineOfPosition(getLineStarts(e),t)}function getLineOfLocalPositionFromLineMap(e,t){return computeLineOfPosition(e,t)}function getFirstConstructorWithBody(e){return find(e.members,e=>isConstructorDeclaration(e)&&nodeIsPresent(e.body))}function getSetAccessorValueParameter(e){if(e&&e.parameters.length>0){const t=2===e.parameters.length&¶meterIsThisKeyword(e.parameters[0]);return e.parameters[t?1:0]}}function getSetAccessorTypeAnnotationNode(e){const t=getSetAccessorValueParameter(e);return t&&t.type}function getThisParameter(e){if(e.parameters.length&&!isJSDocSignature(e)){const t=e.parameters[0];if(parameterIsThisKeyword(t))return t}}function parameterIsThisKeyword(e){return isThisIdentifier(e.name)}function isThisIdentifier(e){return!!e&&80===e.kind&&identifierIsThisKeyword(e)}function isInTypeQuery(e){return!!findAncestor(e,e=>187===e.kind||80!==e.kind&&167!==e.kind&&"quit")}function isThisInTypeQuery(e){if(!isThisIdentifier(e))return!1;for(;isQualifiedName(e.parent)&&e.parent.left===e;)e=e.parent;return 187===e.parent.kind}function identifierIsThisKeyword(e){return"this"===e.escapedText}function getAllAccessorDeclarations(e,t){let n,r,i,o;return hasDynamicName(t)?(n=t,178===t.kind?i=t:179===t.kind?o=t:h.fail("Accessor has wrong kind")):forEach(e,e=>{if(isAccessor(e)&&isStatic(e)===isStatic(t)){getPropertyNameForPropertyNameNode(e.name)===getPropertyNameForPropertyNameNode(t.name)&&(n?r||(r=e):n=e,178!==e.kind||i||(i=e),179!==e.kind||o||(o=e))}}),{firstAccessor:n,secondAccessor:r,getAccessor:i,setAccessor:o}}function getEffectiveTypeAnnotationNode(e){if(!isInJSFile(e)&&isFunctionDeclaration(e))return;if(isTypeAliasDeclaration(e))return;const t=e.type;return t||!isInJSFile(e)?t:isJSDocPropertyLikeTag(e)?e.typeExpression&&e.typeExpression.type:getJSDocType(e)}function getTypeAnnotationNode(e){return e.type}function getEffectiveReturnTypeNode(e){return isJSDocSignature(e)?e.type&&e.type.typeExpression&&e.type.typeExpression.type:e.type||(isInJSFile(e)?getJSDocReturnType(e):void 0)}function getJSDocTypeParameterDeclarations(e){return flatMap(getJSDocTags(e),e=>function isNonTypeAliasTemplate(e){return isJSDocTemplateTag(e)&&!(321===e.parent.kind&&(e.parent.tags.some(isJSDocTypeAlias)||e.parent.tags.some(isJSDocOverloadTag)))}(e)?e.typeParameters:void 0)}function getEffectiveSetAccessorTypeAnnotationNode(e){const t=getSetAccessorValueParameter(e);return t&&getEffectiveTypeAnnotationNode(t)}function emitNewLineBeforeLeadingComments(e,t,n,r){!function emitNewLineBeforeLeadingCommentsOfPosition(e,t,n,r){r&&r.length&&n!==r[0].pos&&getLineOfLocalPositionFromLineMap(e,n)!==getLineOfLocalPositionFromLineMap(e,r[0].pos)&&t.writeLine()}(e,t,n.pos,r)}function emitNewLineBeforeLeadingCommentOfPosition(e,t,n,r){n!==r&&getLineOfLocalPositionFromLineMap(e,n)!==getLineOfLocalPositionFromLineMap(e,r)&&t.writeLine()}function emitDetachedComments(e,t,n,r,i,o,a){let s,c;if(a?0===i.pos&&(s=filter(getLeadingCommentRanges(e,i.pos),function isPinnedCommentLocal(t){return isPinnedComment(e,t.pos)})):s=getLeadingCommentRanges(e,i.pos),s){const a=[];let l;for(const e of s){if(l){const n=getLineOfLocalPositionFromLineMap(t,l.end);if(getLineOfLocalPositionFromLineMap(t,e.pos)>=n+2)break}a.push(e),l=e}if(a.length){const l=getLineOfLocalPositionFromLineMap(t,last(a).end);getLineOfLocalPositionFromLineMap(t,skipTrivia(e,i.pos))>=l+2&&(emitNewLineBeforeLeadingComments(t,n,i,s),function emitComments(e,t,n,r,i,o,a,s){if(r&&r.length>0){i&&n.writeSpace(" ");let c=!1;for(const i of r)c&&(n.writeSpace(" "),c=!1),s(e,t,n,i.pos,i.end,a),i.hasTrailingNewLine?n.writeLine():c=!0;c&&o&&n.writeSpace(" ")}}(e,t,n,a,!1,!0,o,r),c={nodePos:i.pos,detachedCommentEndPos:last(a).end})}}return c}function writeCommentRange(e,t,n,r,i,o){if(42===e.charCodeAt(r+1)){const a=computeLineAndCharacterOfPosition(t,r),s=t.length;let c;for(let l=r,d=a.line;l0){let e=i%getIndentSize();const t=getIndentString((i-e)/getIndentSize());for(n.rawWrite(t);e;)n.rawWrite(" "),e--}else n.rawWrite("")}writeTrimmedCurrentLine(e,i,n,o,l,p),l=p}}else n.writeComment(e.substring(r,i))}function writeTrimmedCurrentLine(e,t,n,r,i,o){const a=Math.min(t,o-1),s=e.substring(i,a).trim();s?(n.writeComment(s),a!==t&&n.writeLine()):n.rawWrite(r)}function calculateIndent(e,t,n){let r=0;for(;t=0&&e.kind<=166?0:(536870912&e.modifierFlagsCache||(e.modifierFlagsCache=536870912|getSyntacticModifierFlagsNoCache(e)),n||t&&isInJSFile(e)?(268435456&e.modifierFlagsCache||!e.parent||(e.modifierFlagsCache|=268435456|getRawJSDocModifierFlagsNoCache(e)),selectEffectiveModifierFlags(e.modifierFlagsCache)):function selectSyntacticModifierFlags(e){return 65535&e}(e.modifierFlagsCache))}function getEffectiveModifierFlags(e){return getModifierFlagsWorker(e,!0)}function getEffectiveModifierFlagsAlwaysIncludeJSDoc(e){return getModifierFlagsWorker(e,!0,!0)}function getSyntacticModifierFlags(e){return getModifierFlagsWorker(e,!1)}function getRawJSDocModifierFlagsNoCache(e){let t=0;return e.parent&&!isParameter(e)&&(isInJSFile(e)&&(getJSDocPublicTagNoCache(e)&&(t|=8388608),getJSDocPrivateTagNoCache(e)&&(t|=16777216),getJSDocProtectedTagNoCache(e)&&(t|=33554432),getJSDocReadonlyTagNoCache(e)&&(t|=67108864),getJSDocOverrideTagNoCache(e)&&(t|=134217728)),getJSDocDeprecatedTagNoCache(e)&&(t|=65536)),t}function selectEffectiveModifierFlags(e){return 131071&e|(260046848&e)>>>23}function getEffectiveModifierFlagsNoCache(e){return getSyntacticModifierFlagsNoCache(e)|function getJSDocModifierFlagsNoCache(e){return selectEffectiveModifierFlags(getRawJSDocModifierFlagsNoCache(e))}(e)}function getSyntacticModifierFlagsNoCache(e){let t=canHaveModifiers(e)?modifiersToFlags(e.modifiers):0;return(8&e.flags||80===e.kind&&4096&e.flags)&&(t|=32),t}function modifiersToFlags(e){let t=0;if(e)for(const n of e)t|=modifierToFlag(n.kind);return t}function modifierToFlag(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 171:return 32768}return 0}function isBinaryLogicalOperator(e){return 57===e||56===e}function isLogicalOperator(e){return isBinaryLogicalOperator(e)||54===e}function isLogicalOrCoalescingAssignmentOperator(e){return 76===e||77===e||78===e}function isLogicalOrCoalescingAssignmentExpression(e){return isBinaryExpression(e)&&isLogicalOrCoalescingAssignmentOperator(e.operatorToken.kind)}function isLogicalOrCoalescingBinaryOperator(e){return isBinaryLogicalOperator(e)||61===e}function isLogicalOrCoalescingBinaryExpression(e){return isBinaryExpression(e)&&isLogicalOrCoalescingBinaryOperator(e.operatorToken.kind)}function isAssignmentOperator(e){return e>=64&&e<=79}function tryGetClassExtendingExpressionWithTypeArguments(e){const t=tryGetClassImplementingOrExtendingExpressionWithTypeArguments(e);return t&&!t.isImplements?t.class:void 0}function tryGetClassImplementingOrExtendingExpressionWithTypeArguments(e){if(isExpressionWithTypeArguments(e)){if(isHeritageClause(e.parent)&&isClassLike(e.parent.parent))return{class:e.parent.parent,isImplements:119===e.parent.token};if(isJSDocAugmentsTag(e.parent)){const t=getEffectiveJSDocHost(e.parent);if(t&&isClassLike(t))return{class:t,isImplements:!1}}}}function isAssignmentExpression(e,t){return isBinaryExpression(e)&&(t?64===e.operatorToken.kind:isAssignmentOperator(e.operatorToken.kind))&&isLeftHandSideExpression(e.left)}function isDestructuringAssignment(e){if(isAssignmentExpression(e,!0)){const t=e.left.kind;return 211===t||210===t}return!1}function isExpressionWithTypeArgumentsInClassExtendsClause(e){return void 0!==tryGetClassExtendingExpressionWithTypeArguments(e)}function isEntityNameExpression(e){return 80===e.kind||isPropertyAccessEntityNameExpression(e)}function getFirstIdentifier(e){switch(e.kind){case 80:return e;case 167:do{e=e.left}while(80!==e.kind);return e;case 212:do{e=e.expression}while(80!==e.kind);return e}}function isDottedName(e){return 80===e.kind||110===e.kind||108===e.kind||237===e.kind||212===e.kind&&isDottedName(e.expression)||218===e.kind&&isDottedName(e.expression)}function isPropertyAccessEntityNameExpression(e){return isPropertyAccessExpression(e)&&isIdentifier(e.name)&&isEntityNameExpression(e.expression)}function tryGetPropertyAccessOrIdentifierToString(e){if(isPropertyAccessExpression(e)){const t=tryGetPropertyAccessOrIdentifierToString(e.expression);if(void 0!==t)return t+"."+entityNameToString(e.name)}else if(isElementAccessExpression(e)){const t=tryGetPropertyAccessOrIdentifierToString(e.expression);if(void 0!==t&&isPropertyName(e.argumentExpression))return t+"."+getPropertyNameForPropertyNameNode(e.argumentExpression)}else{if(isIdentifier(e))return unescapeLeadingUnderscores(e.escapedText);if(isJsxNamespacedName(e))return getTextOfJsxNamespacedName(e)}}function isPrototypeAccess(e){return isBindableStaticAccessExpression(e)&&"prototype"===getElementOrPropertyAccessName(e)}function isRightSideOfQualifiedNameOrPropertyAccess(e){return 167===e.parent.kind&&e.parent.right===e||212===e.parent.kind&&e.parent.name===e||237===e.parent.kind&&e.parent.name===e}function isRightSideOfAccessExpression(e){return!!e.parent&&(isPropertyAccessExpression(e.parent)&&e.parent.name===e||isElementAccessExpression(e.parent)&&e.parent.argumentExpression===e)}function isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(e){return isQualifiedName(e.parent)&&e.parent.right===e||isPropertyAccessExpression(e.parent)&&e.parent.name===e||isJSDocMemberName(e.parent)&&e.parent.right===e}function isInstanceOfExpression(e){return isBinaryExpression(e)&&104===e.operatorToken.kind}function isRightSideOfInstanceofExpression(e){return isInstanceOfExpression(e.parent)&&e===e.parent.right}function isEmptyObjectLiteral(e){return 211===e.kind&&0===e.properties.length}function isEmptyArrayLiteral(e){return 210===e.kind&&0===e.elements.length}function getLocalSymbolForExportDefault(e){if(function isExportDefaultSymbol(e){return e&&length(e.declarations)>0&&hasSyntacticModifier(e.declarations[0],2048)}(e)&&e.declarations)for(const t of e.declarations)if(t.localSymbol)return t.localSymbol}function tryExtractTSExtension(e){return find(gr,t=>fileExtensionIs(e,t))}var wn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function convertToBase64(e){let t="";const n=function getExpandedCharCodes(e){const t=[],n=e.length;for(let r=0;r>6|192),t.push(63&n|128)):n<65536?(t.push(n>>12|224),t.push(n>>6&63|128),t.push(63&n|128)):n<131072?(t.push(n>>18|240),t.push(n>>12&63|128),t.push(n>>6&63|128),t.push(63&n|128)):h.assert(!1,"Unexpected code point")}return t}(e);let r=0;const i=n.length;let o,a,s,c;for(;r>2,a=(3&n[r])<<4|n[r+1]>>4,s=(15&n[r+1])<<2|n[r+2]>>6,c=63&n[r+2],r+1>=i?s=c=64:r+2>=i&&(c=64),t+=wn.charAt(o)+wn.charAt(a)+wn.charAt(s)+wn.charAt(c),r+=3;return t}function base64encode(e,t){return e&&e.base64encode?e.base64encode(t):convertToBase64(t)}function base64decode(e,t){if(e&&e.base64decode)return e.base64decode(t);const n=t.length,r=[];let i=0;for(;i>4&3,c=(15&n)<<4|o>>2&15,l=(3&o)<<6|63&a;0===c&&0!==o?r.push(s):0===l&&0!==a?r.push(s,c):r.push(s,c,l),i+=4}return function getStringFromExpandedCharCodes(e){let t="",n=0;const r=e.length;for(;n=e||-1===t),{pos:e,end:t}}function moveRangeEnd(e,t){return createRange(e.pos,t)}function moveRangePos(e,t){return createRange(t,e.end)}function moveRangePastDecorators(e){const t=canHaveModifiers(e)?findLast(e.modifiers,isDecorator):void 0;return t&&!positionIsSynthesized(t.end)?moveRangePos(e,t.end):e}function moveRangePastModifiers(e){if(isPropertyDeclaration(e)||isMethodDeclaration(e))return moveRangePos(e,e.name.pos);const t=canHaveModifiers(e)?lastOrUndefined(e.modifiers):void 0;return t&&!positionIsSynthesized(t.end)?moveRangePos(e,t.end):moveRangePastDecorators(e)}function createTokenRange(e,t){return createRange(e,e+tokenToString(t).length)}function rangeIsOnSingleLine(e,t){return rangeStartIsOnSameLineAsRangeEnd(e,e,t)}function rangeStartPositionsAreOnSameLine(e,t,n){return positionsAreOnSameLine(getStartPositionOfRange(e,n,!1),getStartPositionOfRange(t,n,!1),n)}function rangeEndPositionsAreOnSameLine(e,t,n){return positionsAreOnSameLine(e.end,t.end,n)}function rangeStartIsOnSameLineAsRangeEnd(e,t,n){return positionsAreOnSameLine(getStartPositionOfRange(e,n,!1),t.end,n)}function rangeEndIsOnSameLineAsRangeStart(e,t,n){return positionsAreOnSameLine(e.end,getStartPositionOfRange(t,n,!1),n)}function getLinesBetweenRangeEndAndRangeStart(e,t,n,r){const i=getStartPositionOfRange(t,n,r);return getLinesBetweenPositions(n,e.end,i)}function getLinesBetweenRangeEndPositions(e,t,n){return getLinesBetweenPositions(n,e.end,t.end)}function isNodeArrayMultiLine(e,t){return!positionsAreOnSameLine(e.pos,e.end,t)}function positionsAreOnSameLine(e,t,n){return 0===getLinesBetweenPositions(n,e,t)}function getStartPositionOfRange(e,t,n){return positionIsSynthesized(e.pos)?-1:skipTrivia(t.text,e.pos,!1,n)}function getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(e,t,n,r){const i=skipTrivia(n.text,e,!1,r),o=function getPreviousNonWhitespacePosition(e,t=0,n){for(;e-- >t;)if(!isWhiteSpaceLike(n.text.charCodeAt(e)))return e}(i,t,n);return getLinesBetweenPositions(n,o??t,i)}function getLinesBetweenPositionAndNextNonWhitespaceCharacter(e,t,n,r){const i=skipTrivia(n.text,e,!1,r);return getLinesBetweenPositions(n,e,Math.min(t,i))}function rangeContainsRange(e,t){return startEndContainsRange(e.pos,e.end,t)}function startEndContainsRange(e,t,n){return e<=n.pos&&t>=n.end}function isDeclarationNameOfEnumOrNamespace(e){const t=getParseTreeNode(e);if(t)switch(t.parent.kind){case 267:case 268:return t===t.parent.name}return!1}function getInitializedVariables(e){return filter(e.declarations,isInitializedVariable)}function isInitializedVariable(e){return isVariableDeclaration(e)&&void 0!==e.initializer}function isWatchSet(e){return e.watch&&hasProperty(e,"watch")}function closeFileWatcher(e){e.close()}function getCheckFlags(e){return 33554432&e.flags?e.links.checkFlags:0}function getDeclarationModifierFlagsFromSymbol(e,t=!1){if(e.valueDeclaration){const n=getCombinedModifierFlags(t&&e.declarations&&find(e.declarations,isSetAccessorDeclaration)||32768&e.flags&&find(e.declarations,isGetAccessorDeclaration)||e.valueDeclaration);return e.parent&&32&e.parent.flags?n:-8&n}if(6&getCheckFlags(e)){const t=e.links.checkFlags;return(1024&t?2:256&t?1:4)|(2048&t?256:0)}return 4194304&e.flags?257:0}function skipAlias(e,t){return 2097152&e.flags?t.getAliasedSymbol(e):e}function getCombinedLocalAndExportSymbolFlags(e){return e.exportSymbol?e.exportSymbol.flags|e.flags:e.flags}function isWriteOnlyAccess(e){return 1===accessKind(e)}function isWriteAccess(e){return 0!==accessKind(e)}function accessKind(e){const{parent:t}=e;switch(null==t?void 0:t.kind){case 218:case 210:return accessKind(t);case 226:case 225:const{operator:n}=t;return 46===n||47===n?2:0;case 227:const{left:r,operatorToken:i}=t;return r===e&&isAssignmentOperator(i.kind)?64===i.kind?1:2:0;case 212:return t.name!==e?0:accessKind(t);case 304:{const n=accessKind(t.parent);return e===t.name?function reverseAccessKind(e){switch(e){case 0:return 1;case 1:return 0;case 2:return 2;default:return h.assertNever(e)}}(n):n}case 305:return e===t.objectAssignmentInitializer?0:accessKind(t.parent);case 250:case 251:return e===t.initializer?1:0;default:return 0}}function compareDataObjects(e,t){if(!e||!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if("object"==typeof e[n]){if(!compareDataObjects(e[n],t[n]))return!1}else if("function"!=typeof e[n]&&e[n]!==t[n])return!1;return!0}function clearMap(e,t){e.forEach(t),e.clear()}function mutateMapSkippingNewValues(e,t,n){const{onDeleteValue:r,onExistingValue:i}=n;e.forEach((n,o)=>{var a;(null==t?void 0:t.has(o))?i&&i(n,null==(a=t.get)?void 0:a.call(t,o),o):(e.delete(o),r(n,o))})}function mutateMap(e,t,n){mutateMapSkippingNewValues(e,t,n);const{createNewValue:r}=n;null==t||t.forEach((t,n)=>{e.has(n)||e.set(n,r(n,t))})}function isAbstractConstructorSymbol(e){if(32&e.flags){const t=getClassLikeDeclarationOfSymbol(e);return!!t&&hasSyntacticModifier(t,64)}return!1}function getClassLikeDeclarationOfSymbol(e){var t;return null==(t=e.declarations)?void 0:t.find(isClassLike)}function getObjectFlags(e){return 3899393&e.flags?e.objectFlags:0}function isUMDExportSymbol(e){return!!e&&!!e.declarations&&!!e.declarations[0]&&isNamespaceExportDeclaration(e.declarations[0])}function showModuleSpecifier({moduleSpecifier:e}){return isStringLiteral(e)?e.text:getTextOfNode(e)}function getLastChild(e){let t;return forEachChild(e,e=>{nodeIsPresent(e)&&(t=e)},e=>{for(let n=e.length-1;n>=0;n--)if(nodeIsPresent(e[n])){t=e[n];break}}),t}function addToSeen(e,t){return!e.has(t)&&(e.add(t),!0)}function isObjectTypeDeclaration(e){return isClassLike(e)||isInterfaceDeclaration(e)||isTypeLiteralNode(e)}function isTypeNodeKind(e){return e>=183&&e<=206||133===e||159===e||150===e||163===e||151===e||136===e||154===e||155===e||116===e||157===e||146===e||141===e||234===e||313===e||314===e||315===e||316===e||317===e||318===e||319===e}function isAccessExpression(e){return 212===e.kind||213===e.kind}function getNameOfAccessExpression(e){return 212===e.kind?e.name:(h.assert(213===e.kind),e.argumentExpression)}function isNamedImportsOrExports(e){return 276===e.kind||280===e.kind}function getLeftmostAccessExpression(e){for(;isAccessExpression(e);)e=e.expression;return e}function forEachNameInAccessChainWalkingLeft(e,t){if(isAccessExpression(e.parent)&&isRightSideOfAccessExpression(e))return function walkAccessExpression(e){if(212===e.kind){const n=t(e.name);if(void 0!==n)return n}else if(213===e.kind){if(!isIdentifier(e.argumentExpression)&&!isStringLiteralLike(e.argumentExpression))return;{const n=t(e.argumentExpression);if(void 0!==n)return n}}if(isAccessExpression(e.expression))return walkAccessExpression(e.expression);if(isIdentifier(e.expression))return t(e.expression);return}(e.parent)}function getLeftmostExpression(e,t){for(;;){switch(e.kind){case 226:e=e.operand;continue;case 227:e=e.left;continue;case 228:e=e.condition;continue;case 216:e=e.tag;continue;case 214:if(t)return e;case 235:case 213:case 212:case 236:case 356:case 239:e=e.expression;continue}return e}}function Symbol4(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function Type3(e,t){this.flags=t,(h.isDebugging||J)&&(this.checker=e)}function Signature2(e,t){this.flags=t,h.isDebugging&&(this.checker=e)}function Node4(e,t,n){this.pos=t,this.end=n,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Token(e,t,n){this.pos=t,this.end=n,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function Identifier2(e,t,n){this.pos=t,this.end=n,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function SourceMapSource(e,t,n){this.fileName=e,this.text=t,this.skipTrivia=n||(e=>e)}var Rn,Bn={getNodeConstructor:()=>Node4,getTokenConstructor:()=>Token,getIdentifierConstructor:()=>Identifier2,getPrivateIdentifierConstructor:()=>Node4,getSourceFileConstructor:()=>Node4,getSymbolConstructor:()=>Symbol4,getTypeConstructor:()=>Type3,getSignatureConstructor:()=>Signature2,getSourceMapSourceConstructor:()=>SourceMapSource},jn=[];function addObjectAllocatorPatcher(e){jn.push(e),e(Bn)}function setObjectAllocator(e){Object.assign(Bn,e),forEach(jn,e=>e(Bn))}function formatStringFromArgs(e,t){return e.replace(/\{(\d+)\}/g,(e,n)=>""+h.checkDefined(t[+n]))}function setLocalizedDiagnosticMessages(e){Rn=e}function maybeSetLocalizedDiagnosticMessages(e){!Rn&&e&&(Rn=e())}function getLocaleSpecificMessage(e){return Rn&&Rn[e.key]||e.message}function createDetachedDiagnostic(e,t,n,r,i,...o){n+r>t.length&&(r=t.length-n),assertDiagnosticLocation(t,n,r);let a=getLocaleSpecificMessage(i);return some(o)&&(a=formatStringFromArgs(a,o)),{file:void 0,start:n,length:r,messageText:a,category:i.category,code:i.code,reportsUnnecessary:i.reportsUnnecessary,fileName:e}}function isDiagnosticWithDetachedLocation(e){return void 0===e.file&&void 0!==e.start&&void 0!==e.length&&"string"==typeof e.fileName}function attachFileToDiagnostic(e,t){const n=t.fileName||"",r=t.text.length;h.assertEqual(e.fileName,n),h.assertLessThanOrEqual(e.start,r),h.assertLessThanOrEqual(e.start+e.length,r);const i={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){i.relatedInformation=[];for(const o of e.relatedInformation)isDiagnosticWithDetachedLocation(o)&&o.fileName===n?(h.assertLessThanOrEqual(o.start,r),h.assertLessThanOrEqual(o.start+o.length,r),i.relatedInformation.push(attachFileToDiagnostic(o,t))):i.relatedInformation.push(o)}return i}function attachFileToDiagnostics(e,t){const n=[];for(const r of e)n.push(attachFileToDiagnostic(r,t));return n}function createFileDiagnostic(e,t,n,r,...i){assertDiagnosticLocation(e.text,t,n);let o=getLocaleSpecificMessage(r);return some(i)&&(o=formatStringFromArgs(o,i)),{file:e,start:t,length:n,messageText:o,category:r.category,code:r.code,reportsUnnecessary:r.reportsUnnecessary,reportsDeprecated:r.reportsDeprecated}}function formatMessage(e,...t){let n=getLocaleSpecificMessage(e);return some(t)&&(n=formatStringFromArgs(n,t)),n}function createCompilerDiagnostic(e,...t){let n=getLocaleSpecificMessage(e);return some(t)&&(n=formatStringFromArgs(n,t)),{file:void 0,start:void 0,length:void 0,messageText:n,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated}}function createCompilerDiagnosticFromMessageChain(e,t){return{file:void 0,start:void 0,length:void 0,code:e.code,category:e.category,messageText:e.next?e:e.messageText,relatedInformation:t}}function chainDiagnosticMessages(e,t,...n){let r=getLocaleSpecificMessage(t);return some(n)&&(r=formatStringFromArgs(r,n)),{messageText:r,category:t.category,code:t.code,next:void 0===e||Array.isArray(e)?e:[e]}}function concatenateDiagnosticMessageChains(e,t){let n=e;for(;n.next;)n=n.next[0];n.next=[t]}function getDiagnosticFilePath(e){return e.file?e.file.path:void 0}function compareDiagnostics(e,t){return compareDiagnosticsSkipRelatedInformation(e,t)||function compareRelatedInformation(e,t){if(!e.relatedInformation&&!t.relatedInformation)return 0;if(e.relatedInformation&&t.relatedInformation)return compareValues(t.relatedInformation.length,e.relatedInformation.length)||forEach(e.relatedInformation,(e,n)=>compareDiagnostics(e,t.relatedInformation[n]))||0;return e.relatedInformation?-1:1}(e,t)||0}function compareDiagnosticsSkipRelatedInformation(e,t){const n=getDiagnosticCode(e),r=getDiagnosticCode(t);return compareStringsCaseSensitive(getDiagnosticFilePath(e),getDiagnosticFilePath(t))||compareValues(e.start,t.start)||compareValues(e.length,t.length)||compareValues(n,r)||function compareMessageText(e,t){let n=getDiagnosticMessage(e),r=getDiagnosticMessage(t);"string"!=typeof n&&(n=n.messageText);"string"!=typeof r&&(r=r.messageText);const i="string"!=typeof e.messageText?e.messageText.next:void 0,o="string"!=typeof t.messageText?t.messageText.next:void 0;let a=compareStringsCaseSensitive(n,r);if(a)return a;if(a=function compareMessageChain(e,t){if(void 0===e&&void 0===t)return 0;if(void 0===e)return 1;if(void 0===t)return-1;return compareMessageChainSize(e,t)||compareMessageChainContent(e,t)}(i,o),a)return a;if(e.canonicalHead&&!t.canonicalHead)return-1;if(t.canonicalHead&&!e.canonicalHead)return 1;return 0}(e,t)||0}function compareMessageChainSize(e,t){if(void 0===e&&void 0===t)return 0;if(void 0===e)return 1;if(void 0===t)return-1;let n=compareValues(t.length,e.length);if(n)return n;for(let r=0;r{e.externalModuleIndicator=isFileProbablyExternalModule(e)||!e.isDeclarationFile||void 0};case 1:return e=>{e.externalModuleIndicator=isFileProbablyExternalModule(e)};case 2:const t=[isFileProbablyExternalModule];4!==e.jsx&&5!==e.jsx||t.push(isFileModuleFromUsingJSXTag),t.push(isFileForcedToBeModuleByFormat);const n=or(...t);return t=>{t.externalModuleIndicator=n(t,e)}}}function importSyntaxAffectsModuleResolution(e){const t=qn(e);return 3<=t&&t<=99||Qn(e)||Xn(e)}var Jn={allowImportingTsExtensions:{dependencies:["rewriteRelativeImportExtensions"],computeValue:e=>!(!e.allowImportingTsExtensions&&!e.rewriteRelativeImportExtensions)},target:{dependencies:["module"],computeValue:e=>(0===e.target?void 0:e.target)??((100===e.module||101===e.module?9:102===e.module&&10)||199===e.module&&99||1)},module:{dependencies:["target"],computeValue:e=>"number"==typeof e.module?e.module:Jn.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:["module","target"],computeValue:e=>{let t=e.moduleResolution;if(void 0===t)switch(Jn.module.computeValue(e)){case 1:t=2;break;case 100:case 101:case 102:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1}return t}},moduleDetection:{dependencies:["module","target"],computeValue:e=>{if(void 0!==e.moduleDetection)return e.moduleDetection;const t=Jn.module.computeValue(e);return 100<=t&&t<=199?3:2}},isolatedModules:{dependencies:["verbatimModuleSyntax"],computeValue:e=>!(!e.isolatedModules&&!e.verbatimModuleSyntax)},esModuleInterop:{dependencies:["module","target"],computeValue:e=>{if(void 0!==e.esModuleInterop)return e.esModuleInterop;switch(Jn.module.computeValue(e)){case 100:case 101:case 102:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:["module","target","moduleResolution"],computeValue:e=>void 0!==e.allowSyntheticDefaultImports?e.allowSyntheticDefaultImports:Jn.esModuleInterop.computeValue(e)||4===Jn.module.computeValue(e)||100===Jn.moduleResolution.computeValue(e)},resolvePackageJsonExports:{dependencies:["moduleResolution"],computeValue:e=>{const t=Jn.moduleResolution.computeValue(e);if(!moduleResolutionSupportsPackageJsonExportsAndImports(t))return!1;if(void 0!==e.resolvePackageJsonExports)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:["moduleResolution","resolvePackageJsonExports"],computeValue:e=>{const t=Jn.moduleResolution.computeValue(e);if(!moduleResolutionSupportsPackageJsonExportsAndImports(t))return!1;if(void 0!==e.resolvePackageJsonImports)return e.resolvePackageJsonImports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:["moduleResolution","module","target"],computeValue:e=>{if(void 0!==e.resolveJsonModule)return e.resolveJsonModule;switch(Jn.module.computeValue(e)){case 102:case 199:return!0}return 100===Jn.moduleResolution.computeValue(e)}},declaration:{dependencies:["composite"],computeValue:e=>!(!e.declaration&&!e.composite)},preserveConstEnums:{dependencies:["isolatedModules","verbatimModuleSyntax"],computeValue:e=>!(!e.preserveConstEnums&&!Jn.isolatedModules.computeValue(e))},incremental:{dependencies:["composite"],computeValue:e=>!(!e.incremental&&!e.composite)},declarationMap:{dependencies:["declaration","composite"],computeValue:e=>!(!e.declarationMap||!Jn.declaration.computeValue(e))},allowJs:{dependencies:["checkJs"],computeValue:e=>void 0===e.allowJs?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:["target","module"],computeValue:e=>void 0===e.useDefineForClassFields?Jn.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"noImplicitAny")},noImplicitThis:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"noImplicitThis")},strictNullChecks:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"strictNullChecks")},strictFunctionTypes:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"strictFunctionTypes")},strictBindCallApply:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"strictBindCallApply")},strictPropertyInitialization:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"strictPropertyInitialization")},strictBuiltinIteratorReturn:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"strictBuiltinIteratorReturn")},alwaysStrict:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"alwaysStrict")},useUnknownInCatchVariables:{dependencies:["strict"],computeValue:e=>getStrictOptionValue(e,"useUnknownInCatchVariables")}},Wn=Jn,Un=Jn.allowImportingTsExtensions.computeValue,zn=Jn.target.computeValue,Vn=Jn.module.computeValue,qn=Jn.moduleResolution.computeValue,Hn=Jn.moduleDetection.computeValue,Kn=Jn.isolatedModules.computeValue,Gn=Jn.esModuleInterop.computeValue,$n=Jn.allowSyntheticDefaultImports.computeValue,Qn=Jn.resolvePackageJsonExports.computeValue,Xn=Jn.resolvePackageJsonImports.computeValue,Yn=Jn.resolveJsonModule.computeValue,Zn=Jn.declaration.computeValue,er=Jn.preserveConstEnums.computeValue,tr=Jn.incremental.computeValue,nr=Jn.declarationMap.computeValue,rr=Jn.allowJs.computeValue,ir=Jn.useDefineForClassFields.computeValue;function emitModuleKindIsNonNodeESM(e){return e>=5&&e<=99}function hasJsonModuleEmitEnabled(e){switch(Vn(e)){case 0:case 4:case 3:return!1}return!0}function unreachableCodeIsError(e){return!1===e.allowUnreachableCode}function unusedLabelIsError(e){return!1===e.allowUnusedLabels}function moduleResolutionSupportsPackageJsonExportsAndImports(e){return e>=3&&e<=99||100===e}function moduleSupportsImportAttributes(e){return 101<=e&&e<=199||200===e||99===e}function getStrictOptionValue(e,t){return void 0===e[t]?!!e.strict:!!e[t]}function getNameOfScriptTarget(e){return forEachEntry(Ki.type,(t,n)=>t===e?n:void 0)}function getEmitStandardClassFields(e){return!1!==e.useDefineForClassFields&&zn(e)>=9}function compilerOptionsAffectSemanticDiagnostics(e,t){return optionsHaveChanges(t,e,Xi)}function compilerOptionsAffectEmit(e,t){return optionsHaveChanges(t,e,Yi)}function compilerOptionsAffectDeclarationPath(e,t){return optionsHaveChanges(t,e,Zi)}function getCompilerOptionValue(e,t){return t.strictFlag?getStrictOptionValue(e,t.name):t.allowJsFlag?rr(e):e[t.name]}function getJSXTransformEnabled(e){const t=e.jsx;return 2===t||4===t||5===t}function getJSXImplicitImportBase(e,t){const n=null==t?void 0:t.pragmas.get("jsximportsource"),r=isArray(n)?n[n.length-1]:n,i=null==t?void 0:t.pragmas.get("jsxruntime"),o=isArray(i)?i[i.length-1]:i;if("classic"!==(null==o?void 0:o.arguments.factory))return 4===e.jsx||5===e.jsx||e.jsxImportSource||r||"automatic"===(null==o?void 0:o.arguments.factory)?(null==r?void 0:r.arguments.factory)||e.jsxImportSource||"react":void 0}function getJSXRuntimeImport(e,t){return e?`${e}/${5===t.jsx?"jsx-dev-runtime":"jsx-runtime"}`:void 0}function hasZeroOrOneAsteriskCharacter(e){let t=!1;for(let n=0;ni,getSymlinkedDirectories:()=>n,getSymlinkedDirectoriesByRealpath:()=>r,setSymlinkedFile:(e,t)=>(i||(i=new Map)).set(e,t),setSymlinkedDirectory:(i,o)=>{let a=toPath(i,e,t);containsIgnoredPath(a)||(a=ensureTrailingDirectorySeparator(a),!1===o||(null==n?void 0:n.has(a))||(r||(r=createMultiMap())).add(o.realPath,i),(n||(n=new Map)).set(a,o))},setSymlinksFromResolutions(e,t,n){h.assert(!o),o=!0,e(e=>processResolution(this,e.resolvedModule)),t(e=>processResolution(this,e.resolvedTypeReferenceDirective)),n.forEach(e=>processResolution(this,e.resolvedTypeReferenceDirective))},hasProcessedResolutions:()=>o,setSymlinksFromResolution(e){processResolution(this,e)},hasAnySymlinks:function hasAnySymlinks(){return!!(null==i?void 0:i.size)||!!n&&!!forEachEntry(n,e=>!!e)}};function processResolution(n,r){if(!r||!r.originalPath||!r.resolvedFileName)return;const{resolvedFileName:i,originalPath:o}=r;n.setSymlinkedFile(toPath(o,e,t),i);const[a,s]=function guessDirectorySymlink(e,t,n,r){const i=getPathComponents(getNormalizedAbsolutePath(e,n)),o=getPathComponents(getNormalizedAbsolutePath(t,n));let a=!1;for(;i.length>=2&&o.length>=2&&!isNodeModulesOrScopedPackageDirectory(i[i.length-2],r)&&!isNodeModulesOrScopedPackageDirectory(o[o.length-2],r)&&r(i[i.length-1])===r(o[o.length-1]);)i.pop(),o.pop(),a=!0;return a?[getPathFromPathComponents(i),getPathFromPathComponents(o)]:void 0}(i,o,e,t)||l;a&&s&&n.setSymlinkedDirectory(s,{real:ensureTrailingDirectorySeparator(a),realPath:ensureTrailingDirectorySeparator(toPath(a,e,t))})}}function isNodeModulesOrScopedPackageDirectory(e,t){return void 0!==e&&("node_modules"===t(e)||startsWith(e,"@"))}function tryRemoveDirectoryPrefix(e,t,n){const r=tryRemovePrefix(e,t,n);return void 0===r?void 0:function stripLeadingDirectorySeparator(e){return isAnyDirectorySeparator(e.charCodeAt(0))?e.slice(1):void 0}(r)}var ar=/[^\w\s/]/g;function regExpEscape(e){return e.replace(ar,escapeRegExpCharacter)}function escapeRegExpCharacter(e){return"\\"+e}var sr=[42,63],cr=`(?!(?:${["node_modules","bower_components","jspm_packages"].join("|")})(?:/|$))`,lr={singleAsteriskRegexFragment:"(?:[^./]|(?:\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:`(?:/${cr}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>replaceWildcardCharacter(e,lr.singleAsteriskRegexFragment)},dr={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:`(?:/${cr}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>replaceWildcardCharacter(e,dr.singleAsteriskRegexFragment)},pr={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:"(?:/.+?)?",replaceWildcardCharacter:e=>replaceWildcardCharacter(e,pr.singleAsteriskRegexFragment)},ur={files:lr,directories:dr,exclude:pr};function getRegularExpressionForWildcard(e,t,n){const r=getRegularExpressionsForWildcards(e,t,n);if(!r||!r.length)return;return`^(?:${r.map(e=>`(?:${e})`).join("|")})${"exclude"===n?"(?:$|/)":"$"}`}function getRegularExpressionsForWildcards(e,t,n){if(void 0!==e&&0!==e.length)return flatMap(e,e=>e&&getSubPatternFromSpec(e,t,n,ur[n]))}function isImplicitGlob(e){return!/[.*?]/.test(e)}function getPatternFromSpec(e,t,n){const r=e&&getSubPatternFromSpec(e,t,n,ur[n]);return r&&`^(?:${r})${"exclude"===n?"(?:$|/)":"$"}`}function getSubPatternFromSpec(e,t,n,{singleAsteriskRegexFragment:r,doubleAsteriskRegexFragment:i,replaceWildcardCharacter:o}=ur[n]){let a="",s=!1;const c=getNormalizedPathComponents(e,t),l=last(c);if("exclude"!==n&&"**"===l)return;c[0]=removeTrailingDirectorySeparator(c[0]),isImplicitGlob(l)&&c.push("**","*");let d=0;for(let e of c){if("**"===e)a+=i;else if("directories"===n&&(a+="(?:",d++),s&&(a+=Ft),"exclude"!==n){let t="";42===e.charCodeAt(0)?(t+="(?:[^./]"+r+")?",e=e.substr(1)):63===e.charCodeAt(0)&&(t+="[^./]",e=e.substr(1)),t+=e.replace(ar,o),t!==e&&(a+=cr),a+=t}else a+=e.replace(ar,o);s=!0}for(;d>0;)a+=")?",d--;return a}function replaceWildcardCharacter(e,t){return"*"===e?t:"?"===e?"[^/]":"\\"+e}function getFileMatcherPatterns(e,t,n,r,i){e=normalizePath(e);const o=combinePaths(i=normalizePath(i),e);return{includeFilePatterns:map(getRegularExpressionsForWildcards(n,o,"files"),e=>`^${e}$`),includeFilePattern:getRegularExpressionForWildcard(n,o,"files"),includeDirectoryPattern:getRegularExpressionForWildcard(n,o,"directories"),excludePattern:getRegularExpressionForWildcard(t,o,"exclude"),basePaths:getBasePaths(e,n,r)}}function getRegexFromPattern(e,t){return new RegExp(e,t?"":"i")}function matchFiles(e,t,n,r,i,o,a,s,c){e=normalizePath(e),o=normalizePath(o);const l=getFileMatcherPatterns(e,n,r,i,o),d=l.includeFilePatterns&&l.includeFilePatterns.map(e=>getRegexFromPattern(e,i)),p=l.includeDirectoryPattern&&getRegexFromPattern(l.includeDirectoryPattern,i),u=l.excludePattern&&getRegexFromPattern(l.excludePattern,i),m=d?d.map(()=>[]):[[]],_=new Map,f=createGetCanonicalFileName(i);for(const e of l.basePaths)visitDirectory(e,combinePaths(o,e),a);return flatten(m);function visitDirectory(e,n,r){const i=f(c(n));if(_.has(i))return;_.set(i,!0);const{files:o,directories:a}=s(e);for(const r of toSorted(o,compareStringsCaseSensitive)){const i=combinePaths(e,r),o=combinePaths(n,r);if((!t||fileExtensionIsOneOf(i,t))&&(!u||!u.test(o)))if(d){const e=findIndex(d,e=>e.test(o));-1!==e&&m[e].push(i)}else m[0].push(i)}if(void 0===r||0!==--r)for(const t of toSorted(a,compareStringsCaseSensitive)){const i=combinePaths(e,t),o=combinePaths(n,t);p&&!p.test(o)||u&&u.test(o)||visitDirectory(i,o,r)}}}function getBasePaths(e,t,n){const r=[e];if(t){const i=[];for(const n of t){const t=isRootedDiskPath(n)?n:normalizePath(combinePaths(e,n));i.push(getIncludeBasePath(t))}i.sort(getStringComparer(!n));for(const t of i)every(r,r=>!containsPath(r,t,e,!n))&&r.push(t)}return r}function getIncludeBasePath(e){const t=indexOfAnyCharCode(e,sr);return t<0?hasExtension(e)?removeTrailingDirectorySeparator(getDirectoryPath(e)):e:e.substring(0,e.lastIndexOf(Ft,t))}function ensureScriptKind(e,t){return t||getScriptKindFromFileName(e)||3}function getScriptKindFromFileName(e){switch(e.substr(e.lastIndexOf(".")).toLowerCase()){case".js":case".cjs":case".mjs":return 1;case".jsx":return 2;case".ts":case".cts":case".mts":return 3;case".tsx":return 4;case".json":return 6;default:return 0}}var mr=[[".ts",".tsx",".d.ts"],[".cts",".d.cts"],[".mts",".d.mts"]],_r=flatten(mr),fr=[...mr,[".json"]],gr=[".d.ts",".d.cts",".d.mts",".cts",".mts",".ts",".tsx"],yr=flatten([[".js",".jsx"],[".mjs"],[".cjs"]]),hr=[[".ts",".tsx",".d.ts",".js",".jsx"],[".cts",".d.cts",".cjs"],[".mts",".d.mts",".mjs"]],Tr=[...hr,[".json"]],Sr=[".d.ts",".d.cts",".d.mts"],xr=[".ts",".cts",".mts",".tsx"],vr=[".mts",".d.mts",".mjs",".cts",".d.cts",".cjs"];function getSupportedExtensions(e,t){const n=e&&rr(e);if(!t||0===t.length)return n?hr:mr;const r=n?hr:mr,i=flatten(r);return[...r,...mapDefined(t,e=>7===e.scriptKind||n&&function isJSLike(e){return 1===e||2===e}(e.scriptKind)&&!i.includes(e.extension)?[e.extension]:void 0)]}function getSupportedExtensionsWithJsonIfResolveJsonModule(e,t){return e&&Yn(e)?t===hr?Tr:t===mr?fr:[...t,[".json"]]:t}function hasJSFileExtension(e){return some(yr,t=>fileExtensionIs(e,t))}function hasTSFileExtension(e){return some(_r,t=>fileExtensionIs(e,t))}function hasImplementationTSFileExtension(e){return some(xr,t=>fileExtensionIs(e,t))&&!isDeclarationFileName(e)}var br=(e=>(e[e.Minimal=0]="Minimal",e[e.Index=1]="Index",e[e.JsExtension=2]="JsExtension",e[e.TsExtension=3]="TsExtension",e))(br||{});function getModuleSpecifierEndingPreference(e,t,n,r){const i=qn(n),o=3<=i&&i<=99;return"js"===e||99===t&&o?shouldAllowImportingTsExtension(n)&&2!==inferPreference()?3:2:"minimal"===e?0:"index"===e?1:shouldAllowImportingTsExtension(n)?inferPreference():r&&function usesExtensionsOnImports({imports:e},t=or(hasJSFileExtension,hasTSFileExtension)){return firstDefined(e,({text:e})=>pathIsRelative(e)&&!fileExtensionIsOneOf(e,vr)?t(e):void 0)||!1}(r)?2:0;function inferPreference(){let e=!1;const i=(null==r?void 0:r.imports.length)?r.imports:r&&isSourceFileJS(r)?function getRequiresAtTopOfFile(e){let t,n=0;for(const r of e.statements){if(n>3)break;isRequireVariableStatement(r)?t=concatenate(t,r.declarationList.declarations.map(e=>e.initializer)):isExpressionStatement(r)&&isRequireCall(r.expression,!0)?t=append(t,r.expression):n++}return t||l}(r).map(e=>e.arguments[0]):l;for(const a of i)if(pathIsRelative(a.text)){if(o&&1===t&&99===getModeForUsageLocation(r,a,n))continue;if(fileExtensionIsOneOf(a.text,vr))continue;if(hasTSFileExtension(a.text))return 3;hasJSFileExtension(a.text)&&(e=!0)}return e?2:0}}function isSupportedSourceFileName(e,t,n){if(!e)return!1;const r=getSupportedExtensions(t,n);for(const n of flatten(getSupportedExtensionsWithJsonIfResolveJsonModule(t,r)))if(fileExtensionIs(e,n))return!0;return!1}function numberOfDirectorySeparators(e){const t=e.match(/\//g);return t?t.length:0}function compareNumberOfDirectorySeparators(e,t){return compareValues(numberOfDirectorySeparators(e),numberOfDirectorySeparators(t))}var Cr=[".d.ts",".d.mts",".d.cts",".mjs",".mts",".cjs",".cts",".ts",".js",".tsx",".jsx",".json"];function removeFileExtension(e){for(const t of Cr){const n=tryRemoveExtension(e,t);if(void 0!==n)return n}return e}function tryRemoveExtension(e,t){return fileExtensionIs(e,t)?removeExtension(e,t):void 0}function removeExtension(e,t){return e.substring(0,e.length-t.length)}function changeExtension(e,t){return changeAnyExtension(e,t,Cr,!1)}function tryParsePattern(e){const t=e.indexOf("*");return-1===t?e:-1!==e.indexOf("*",t+1)?void 0:{prefix:e.substr(0,t),suffix:e.substr(t+1)}}var Er=new WeakMap;function tryParsePatterns(e){let t,n,r=Er.get(e);if(void 0!==r)return r;const i=getOwnKeys(e);for(const e of i){const r=tryParsePattern(e);void 0!==r&&("string"==typeof r?(t??(t=new Set)).add(r):(n??(n=[])).push(r))}return Er.set(e,r={matchableStringSet:t,patterns:n}),r}function positionIsSynthesized(e){return!(e>=0)}function extensionIsTS(e){return".ts"===e||".tsx"===e||".d.ts"===e||".cts"===e||".mts"===e||".d.mts"===e||".d.cts"===e||startsWith(e,".d.")&&endsWith(e,".ts")}function resolutionExtensionIsTSOrJson(e){return extensionIsTS(e)||".json"===e}function extensionFromPath(e){const t=tryGetExtensionFromPath2(e);return void 0!==t?t:h.fail(`File ${e} has unknown extension.`)}function isAnySupportedFileExtension(e){return void 0!==tryGetExtensionFromPath2(e)}function tryGetExtensionFromPath2(e){return find(Cr,t=>fileExtensionIs(e,t))}function isCheckJsEnabledForFile(e,t){return e.checkJsDirective?e.checkJsDirective.enabled:t.checkJs}var Nr={files:l,directories:l};function matchPatternOrExact(e,t){const{matchableStringSet:n,patterns:r}=e;return(null==n?void 0:n.has(t))?t:void 0!==r&&0!==r.length?findBestPatternMatch(r,e=>e,t):void 0}function sliceAfter(e,t){const n=e.indexOf(t);return h.assert(-1!==n),e.slice(n)}function addRelatedInfo(e,...t){return t.length?(e.relatedInformation||(e.relatedInformation=[]),h.assert(e.relatedInformation!==l,"Diagnostic had empty array singleton for related info, but is still being constructed!"),e.relatedInformation.push(...t),e):e}function minAndMax(e,t){h.assert(0!==e.length);let n=t(e[0]),r=n;for(let i=1;ir&&(r=o)}return{min:n,max:r}}function rangeOfNode(e){return{pos:getTokenPosOfNode(e),end:e.end}}function rangeOfTypeParameters(e,t){return{pos:t.pos-1,end:Math.min(e.text.length,skipTrivia(e.text,t.end)+1)}}function skipTypeChecking(e,t,n){return skipTypeCheckingWorker(e,t,n,!1)}function skipTypeCheckingIgnoringNoCheck(e,t,n){return skipTypeCheckingWorker(e,t,n,!0)}function skipTypeCheckingWorker(e,t,n,r){return t.skipLibCheck&&e.isDeclarationFile||t.skipDefaultLibCheck&&e.hasNoDefaultLib||!r&&t.noCheck||n.isSourceOfProjectReferenceRedirect(e.fileName)||!canIncludeBindAndCheckDiagnostics(e,t)}function canIncludeBindAndCheckDiagnostics(e,t){if(e.checkJsDirective&&!1===e.checkJsDirective.enabled)return!1;if(3===e.scriptKind||4===e.scriptKind||5===e.scriptKind)return!0;const n=(1===e.scriptKind||2===e.scriptKind)&&isCheckJsEnabledForFile(e,t);return isPlainJsFile(e,t.checkJs)||n||7===e.scriptKind}function isJsonEqual(e,t){return e===t||"object"==typeof e&&null!==e&&"object"==typeof t&&null!==t&&equalOwnProperties(e,t,isJsonEqual)}function parsePseudoBigInt(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:const n=e.length-1;let r=0;for(;48===e.charCodeAt(r);)r++;return e.slice(r,n)||"0"}const n=e.length-1,r=(n-2)*t,i=new Uint16Array((r>>>4)+(15&r?1:0));for(let r=n-1,o=0;r>=2;r--,o+=t){const t=o>>>4,n=e.charCodeAt(r),a=(n<=57?n-48:10+n-(n<=70?65:97))<<(15&o);i[t]|=a;const s=a>>>16;s&&(i[t+1]|=s)}let o="",a=i.length-1,s=!0;for(;s;){let e=0;s=!1;for(let t=a;t>=0;t--){const n=e<<16|i[t],r=n/10|0;i[t]=r,e=n-10*r,r&&!s&&(a=t,s=!0)}o=e+o}return o}function pseudoBigIntToString({negative:e,base10Value:t}){return(e&&"0"!==t?"-":"")+t}function parseBigInt(e){if(isValidBigIntString(e,!1))return parseValidBigInt(e)}function parseValidBigInt(e){const t=e.startsWith("-");return{negative:t,base10Value:parsePseudoBigInt(`${t?e.slice(1):e}n`)}}function isValidBigIntString(e,t){if(""===e)return!1;const n=createScanner(99,!1);let r=!0;n.setOnError(()=>r=!1),n.setText(e+"n");let i=n.scan();const o=41===i;o&&(i=n.scan());const a=n.getTokenFlags();return r&&10===i&&n.getTokenEnd()===e.length+1&&!(512&a)&&(!t||e===pseudoBigIntToString({negative:o,base10Value:parsePseudoBigInt(n.getTokenValue())}))}function isValidTypeOnlyAliasUseSite(e){return!!(33554432&e.flags)||isInJSDoc(e)||isPartOfTypeQuery(e)||function isIdentifierInNonEmittingHeritageClause(e){if(80!==e.kind)return!1;const t=findAncestor(e.parent,e=>{switch(e.kind){case 299:return!0;case 212:case 234:return!1;default:return"quit"}});return 119===(null==t?void 0:t.token)||265===(null==t?void 0:t.parent.kind)}(e)||function isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(e){for(;80===e.kind||212===e.kind;)e=e.parent;if(168!==e.kind)return!1;if(hasSyntacticModifier(e.parent,64))return!0;const t=e.parent.parent.kind;return 265===t||188===t}(e)||!(isExpressionNode(e)||function isShorthandPropertyNameUseSite(e){return isIdentifier(e)&&isShorthandPropertyAssignment(e.parent)&&e.parent.name===e}(e))}function isIdentifierTypeReference(e){return isTypeReferenceNode(e)&&isIdentifier(e.typeName)}function arrayIsHomogeneous(e,t=equateValues){if(e.length<2)return!0;const n=e[0];for(let r=1,i=e.length;re.includes(t))}function getContainingNodeArray(e){if(!e.parent)return;switch(e.kind){case 169:const{parent:t}=e;return 196===t.kind?void 0:t.typeParameters;case 170:return e.parent.parameters;case 205:case 240:return e.parent.templateSpans;case 171:{const{parent:t}=e;return canHaveDecorators(t)?t.modifiers:void 0}case 299:return e.parent.heritageClauses}const{parent:t}=e;if(isJSDocTag(e))return isJSDocTypeLiteral(e.parent)?void 0:e.parent.tags;switch(t.kind){case 188:case 265:return isTypeElement(e)?t.members:void 0;case 193:case 194:return t.types;case 190:case 210:case 357:case 276:case 280:return t.elements;case 211:case 293:return t.properties;case 214:case 215:return isTypeNode(e)?t.typeArguments:t.expression===e?void 0:t.arguments;case 285:case 289:return isJsxChild(e)?t.children:void 0;case 287:case 286:return isTypeNode(e)?t.typeArguments:void 0;case 242:case 297:case 298:case 269:case 308:return t.statements;case 270:return t.clauses;case 264:case 232:return isClassElement(e)?t.members:void 0;case 267:return isEnumMember(e)?t.members:void 0}}function hasContextSensitiveParameters(e){if(!e.typeParameters){if(some(e.parameters,e=>!getEffectiveTypeAnnotationNode(e)))return!0;if(220!==e.kind){const t=firstOrUndefined(e.parameters);if(!t||!parameterIsThisKeyword(t))return!0}}return!1}function isInfinityOrNaNString(e){return"Infinity"===e||"-Infinity"===e||"NaN"===e}function isCatchClauseVariableDeclaration(e){return 261===e.kind&&300===e.parent.kind}function isFunctionExpressionOrArrowFunction(e){return 219===e.kind||220===e.kind}function escapeSnippetText(e){return e.replace(/\$/g,()=>"\\$")}function isNumericLiteralName(e){return(+e).toString()===e}function createPropertyNameNodeForIdentifierOrLiteral(e,t,n,r,i){const o=i&&"new"===e;return!o&&isIdentifierText(e,t)?Wr.createIdentifier(e):!r&&!o&&isNumericLiteralName(e)&&+e>=0?Wr.createNumericLiteral(+e):Wr.createStringLiteral(e,!!n)}function isThisTypeParameter(e){return!!(262144&e.flags&&e.isThisType)}function getNodeModulePathParts(e){let t,n=0,r=0,i=0,o=0;var a;(a=t||(t={}))[a.BeforeNodeModules=0]="BeforeNodeModules",a[a.NodeModules=1]="NodeModules",a[a.Scope=2]="Scope",a[a.PackageContent=3]="PackageContent";let s=0,c=0,l=0;for(;c>=0;)switch(s=c,c=e.indexOf("/",s+1),l){case 0:e.indexOf(Mo,s)===s&&(n=s,r=c,l=1);break;case 1:case 2:1===l&&"@"===e.charAt(s+1)?l=2:(i=c,l=3);break;case 3:l=e.indexOf(Mo,s)===s?1:3}return o=s,l>1?{topLevelNodeModulesIndex:n,topLevelPackageNameIndex:r,packageRootIndex:i,fileNameIndex:o}:void 0}function isTypeDeclaration(e){switch(e.kind){case 169:case 264:case 265:case 266:case 267:case 347:case 339:case 341:return!0;case 274:return 156===e.phaseModifier;case 277:return 156===e.parent.parent.phaseModifier;case 282:return e.parent.parent.isTypeOnly;default:return!1}}function canHaveExportModifier(e){return isEnumDeclaration(e)||isVariableStatement(e)||isFunctionDeclaration(e)||isClassDeclaration(e)||isInterfaceDeclaration(e)||isTypeDeclaration(e)||isModuleDeclaration(e)&&!isExternalModuleAugmentation(e)&&!isGlobalScopeAugmentation(e)}function isOptionalJSDocPropertyLikeTag(e){if(!isJSDocPropertyLikeTag(e))return!1;const{isBracketed:t,typeExpression:n}=e;return t||!!n&&317===n.type.kind}function canUsePropertyAccess(e,t){if(0===e.length)return!1;const n=e.charCodeAt(0);return 35===n?e.length>1&&isIdentifierStart(e.charCodeAt(1),t):isIdentifierStart(n,t)}function hasTabstop(e){var t;return 0===(null==(t=getSnippetElement(e))?void 0:t.kind)}function isJSDocOptionalParameter(e){return isInJSFile(e)&&(e.type&&317===e.type.kind||getJSDocParameterTags(e).some(isOptionalJSDocPropertyLikeTag))}function isOptionalDeclaration(e){switch(e.kind){case 173:case 172:return!!e.questionToken;case 170:return!!e.questionToken||isJSDocOptionalParameter(e);case 349:case 342:return isOptionalJSDocPropertyLikeTag(e);default:return!1}}function isNonNullAccess(e){const t=e.kind;return(212===t||213===t)&&isNonNullExpression(e.expression)}function isJSDocSatisfiesExpression(e){return isInJSFile(e)&&isParenthesizedExpression(e)&&hasJSDocNodes(e)&&!!getJSDocSatisfiesTag(e)}function getJSDocSatisfiesExpressionType(e){return h.checkDefined(tryGetJSDocSatisfiesTypeNode(e))}function tryGetJSDocSatisfiesTypeNode(e){const t=getJSDocSatisfiesTag(e);return t&&t.typeExpression&&t.typeExpression.type}function getEscapedTextOfJsxAttributeName(e){return isIdentifier(e)?e.escapedText:getEscapedTextOfJsxNamespacedName(e)}function getTextOfJsxAttributeName(e){return isIdentifier(e)?idText(e):getTextOfJsxNamespacedName(e)}function isJsxAttributeName(e){const t=e.kind;return 80===t||296===t}function getEscapedTextOfJsxNamespacedName(e){return`${e.namespace.escapedText}:${idText(e.name)}`}function getTextOfJsxNamespacedName(e){return`${idText(e.namespace)}:${idText(e.name)}`}function intrinsicTagNameToString(e){return isIdentifier(e)?idText(e):getTextOfJsxNamespacedName(e)}function isTypeUsableAsPropertyName(e){return!!(8576&e.flags)}function getPropertyNameFromType(e){return 8192&e.flags?e.escapedName:384&e.flags?escapeLeadingUnderscores(""+e.value):h.fail()}function isExpandoPropertyDeclaration(e){return!!e&&(isPropertyAccessExpression(e)||isElementAccessExpression(e)||isBinaryExpression(e))}function hasResolutionModeOverride(e){return void 0!==e&&!!getResolutionModeOverride(e.attributes)}var kr=String.prototype.replace;function replaceFirstStar(e,t){return kr.call(e,"*",t)}function getNameFromImportAttribute(e){return isIdentifier(e.name)?e.name.escapedText:escapeLeadingUnderscores(e.name.text)}function isSourceElement(e){switch(e.kind){case 169:case 170:case 173:case 172:case 186:case 185:case 180:case 181:case 182:case 175:case 174:case 176:case 177:case 178:case 179:case 184:case 183:case 187:case 188:case 189:case 190:case 193:case 194:case 197:case 191:case 192:case 198:case 199:case 195:case 196:case 204:case 206:case 203:case 329:case 330:case 347:case 339:case 341:case 346:case 345:case 325:case 326:case 327:case 342:case 349:case 318:case 316:case 315:case 313:case 314:case 323:case 319:case 310:case 334:case 336:case 335:case 351:case 344:case 200:case 201:case 263:case 242:case 269:case 244:case 245:case 246:case 247:case 248:case 249:case 250:case 251:case 252:case 253:case 254:case 255:case 256:case 257:case 258:case 259:case 261:case 209:case 264:case 265:case 266:case 267:case 268:case 273:case 272:case 279:case 278:case 243:case 260:case 283:return!0}return!1}function evaluatorResult(e,t=!1,n=!1,r=!1){return{value:e,isSyntacticallyString:t,resolvedOtherFiles:n,hasExternalReferences:r}}function createEvaluator({evaluateElementAccessExpression:e,evaluateEntityNameExpression:t}){function evaluate(n,r){let i=!1,o=!1,a=!1;switch((n=skipParentheses(n)).kind){case 225:const s=evaluate(n.operand,r);if(o=s.resolvedOtherFiles,a=s.hasExternalReferences,"number"==typeof s.value)switch(n.operator){case 40:return evaluatorResult(s.value,i,o,a);case 41:return evaluatorResult(-s.value,i,o,a);case 55:return evaluatorResult(~s.value,i,o,a)}break;case 227:{const e=evaluate(n.left,r),t=evaluate(n.right,r);if(i=(e.isSyntacticallyString||t.isSyntacticallyString)&&40===n.operatorToken.kind,o=e.resolvedOtherFiles||t.resolvedOtherFiles,a=e.hasExternalReferences||t.hasExternalReferences,"number"==typeof e.value&&"number"==typeof t.value)switch(n.operatorToken.kind){case 52:return evaluatorResult(e.value|t.value,i,o,a);case 51:return evaluatorResult(e.value&t.value,i,o,a);case 49:return evaluatorResult(e.value>>t.value,i,o,a);case 50:return evaluatorResult(e.value>>>t.value,i,o,a);case 48:return evaluatorResult(e.value<=2)break;case 175:case 177:case 178:case 179:case 263:if(3&m&&"arguments"===D){b=n;break e}break;case 219:if(3&m&&"arguments"===D){b=n;break e}if(16&m){const e=s.name;if(e&&D===e.escapedText){b=s.symbol;break e}}break;case 171:s.parent&&170===s.parent.kind&&(s=s.parent),s.parent&&(isClassElement(s.parent)||264===s.parent.kind)&&(s=s.parent);break;case 347:case 339:case 341:case 352:const o=getJSDocRoot(s);o&&(s=o.parent);break;case 170:C&&(C===s.initializer||C===s.name&&isBindingPattern(C))&&(k||(k=s));break;case 209:C&&(C===s.initializer||C===s.name&&isBindingPattern(C))&&isPartOfParameterDeclaration(s)&&!k&&(k=s);break;case 196:if(262144&m){const e=s.typeParameter.name;if(e&&D===e.escapedText){b=s.typeParameter.symbol;break e}}break;case 282:C&&C===s.propertyName&&s.parent.parent.moduleSpecifier&&(s=s.parent.parent.parent)}isSelfReferenceLocation(s,C)&&(E=s),C=s,s=isJSDocTemplateTag(s)?getEffectiveContainerForJSDocTemplateTag(s)||s.parent:(isJSDocParameterTag(s)||isJSDocReturnTag(s))&&getHostSignatureFromJSDoc(s)||s.parent}!g||!b||E&&b===E.symbol||(b.isReferenced|=m);if(!b){if(C&&(h.assertNode(C,isSourceFile),C.commonJsModuleIndicator&&"exports"===D&&m&C.symbol.flags))return C.symbol;y||(b=a(o,D,m))}if(!b&&v&&isInJSFile(v)&&v.parent&&isRequireCall(v.parent,!1))return t;if(f){if(N&&l(v,D,N,b))return;b?p(v,b,m,C,k,P):d(v,c,m,f)}return b};function useOuterVariableScopeInParameter(t,n,r){const i=zn(e),o=n;if(isParameter(r)&&o.body&&t.valueDeclaration&&t.valueDeclaration.pos>=o.body.pos&&t.valueDeclaration.end<=o.body.end&&i>=2){let e=c(o);return void 0===e&&(e=forEach(o.parameters,function requiresScopeChange(e){return requiresScopeChangeWorker(e.name)||!!e.initializer&&requiresScopeChangeWorker(e.initializer)})||!1,s(o,e)),!e}return!1;function requiresScopeChangeWorker(e){switch(e.kind){case 220:case 219:case 263:case 177:return!1;case 175:case 178:case 179:case 304:return requiresScopeChangeWorker(e.name);case 173:return hasStaticModifier(e)?!m:requiresScopeChangeWorker(e.name);default:return isNullishCoalesce(e)||isOptionalChain(e)?i<7:isBindingElement(e)&&e.dotDotDotToken&&isObjectBindingPattern(e.parent)?i<4:!isTypeNode(e)&&(forEachChild(e,requiresScopeChangeWorker)||!1)}}}function getIsDeferredContext(e,t){return 220!==e.kind&&219!==e.kind?isTypeQueryNode(e)||(isFunctionLikeDeclaration(e)||173===e.kind&&!isStatic(e))&&(!t||t!==e.name):(!t||t!==e.name)&&(!(!e.asteriskToken&&!hasSyntacticModifier(e,1024))||!getImmediatelyInvokedFunctionExpression(e))}function isSelfReferenceLocation(e,t){switch(e.kind){case 170:return!!t&&t===e.name;case 263:case 264:case 265:case 267:case 266:case 268:return!0;default:return!1}}function isTypeParameterSymbolDeclaredInContainer(e,t){if(e.declarations)for(const n of e.declarations)if(169===n.kind){if((isJSDocTemplateTag(n.parent)?getJSDocHost(n.parent):n.parent)===t)return!(isJSDocTemplateTag(n.parent)&&find(n.parent.parent.tags,isJSDocTypeAlias))}return!1}}function isPrimitiveLiteralValue(e,t=!0){switch(h.type(e),e.kind){case 112:case 97:case 9:case 11:case 15:return!0;case 10:return t;case 225:return 41===e.operator?isNumericLiteral(e.operand)||t&&isBigIntLiteral(e.operand):40===e.operator&&isNumericLiteral(e.operand);default:return!1}}function unwrapParenthesizedExpression(e){for(;218===e.kind;)e=e.expression;return e}function hasInferredType(e){switch(h.type(e),e.kind){case 170:case 172:case 173:case 209:case 212:case 213:case 227:case 261:case 278:case 304:case 305:case 342:case 349:return!0;default:return!1}}function isSideEffectImport(e){const t=findAncestor(e,isImportDeclaration);return!!t&&!t.importClause}var Fr=["assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","inspector/promises","module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","test/mock_loader","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"],Pr=new Set(Fr),Dr=new Set(["node:sea","node:sqlite","node:test","node:test/reporters"]),Ir=new Set([...Fr,...Fr.map(e=>`node:${e}`),...Dr]);function forEachDynamicImportOrRequireCall(e,t,n,r){const i=isInJSFile(e),o=/import|require/g;for(;null!==o.exec(e.text);){const a=getNodeAtPosition(e,o.lastIndex,t);if(i&&isRequireCall(a,n))r(a,a.arguments[0]);else if(isImportCall(a)&&a.arguments.length>=1&&(!n||isStringLiteralLike(a.arguments[0])))r(a,a.arguments[0]);else if(t&&isLiteralImportTypeNode(a))r(a,a.argument.literal);else if(t&&isJSDocImportTag(a)){const e=getExternalModuleName(a);e&&isStringLiteral(e)&&e.text&&r(a,e)}}}function getNodeAtPosition(e,t,n){const r=isInJSFile(e);let i=e;const getContainingChild=e=>{if(e.pos<=t&&(te&&t(e))}function forEachProjectReference(e,t,n,r){let i;return function worker(e,t,o){if(r){const t=r(e,o);if(t)return t}let a;return forEach(t,(e,t)=>{if(e&&(null==i?void 0:i.has(e.sourceFile.path)))return void(a??(a=new Set)).add(e);const r=n(e,o,t);if(r||!e)return r;(i||(i=new Set)).add(e.sourceFile.path)})||forEach(t,e=>e&&!(null==a?void 0:a.has(e))?worker(e.commandLine.projectReferences,e.references,e):void 0)}(e,t,void 0)}function getOptionsSyntaxByArrayElementValue(e,t,n){return e&&function getPropertyArrayElementValue(e,t,n){return forEachPropertyAssignment(e,t,e=>isArrayLiteralExpression(e.initializer)?find(e.initializer.elements,e=>isStringLiteral(e)&&e.text===n):void 0)}(e,t,n)}function getOptionsSyntaxByValue(e,t,n){return forEachOptionsSyntaxByName(e,t,e=>isStringLiteral(e.initializer)&&e.initializer.text===n?e.initializer:void 0)}function forEachOptionsSyntaxByName(e,t,n){return forEachPropertyAssignment(e,t,n)}function getSynthesizedDeepClone(e,t=!0){const n=e&&getSynthesizedDeepCloneWorker(e);return n&&!t&&suppressLeadingAndTrailingTrivia(n),setParentRecursive(n,!1)}function getSynthesizedDeepCloneWithReplacements(e,t,n){let r=n(e);return r?setOriginalNode(r,e):r=getSynthesizedDeepCloneWorker(e,n),r&&!t&&suppressLeadingAndTrailingTrivia(r),r}function getSynthesizedDeepCloneWorker(e,t){const n=t?e=>getSynthesizedDeepCloneWithReplacements(e,!0,t):getSynthesizedDeepClone,r=visitEachChild(e,n,void 0,t?e=>e&&getSynthesizedDeepClonesWithReplacements(e,!0,t):e=>e&&getSynthesizedDeepClones(e),n);if(r===e){return setTextRange(isStringLiteral(e)?setOriginalNode(Wr.createStringLiteralFromNode(e),e):isNumericLiteral(e)?setOriginalNode(Wr.createNumericLiteral(e.text,e.numericLiteralFlags),e):Wr.cloneNode(e),e)}return r.parent=void 0,r}function getSynthesizedDeepClones(e,t=!0){if(e){const n=Wr.createNodeArray(e.map(e=>getSynthesizedDeepClone(e,t)),e.hasTrailingComma);return setTextRange(n,e),n}return e}function getSynthesizedDeepClonesWithReplacements(e,t,n){return Wr.createNodeArray(e.map(e=>getSynthesizedDeepCloneWithReplacements(e,t,n)),e.hasTrailingComma)}function suppressLeadingAndTrailingTrivia(e){suppressLeadingTrivia(e),suppressTrailingTrivia(e)}function suppressLeadingTrivia(e){addEmitFlagsRecursively(e,1024,getFirstChild)}function suppressTrailingTrivia(e){addEmitFlagsRecursively(e,2048,getLastChild)}function addEmitFlagsRecursively(e,t,n){addEmitFlags(e,t);const r=n(e);r&&addEmitFlagsRecursively(r,t,n)}function getFirstChild(e){return forEachChild(e,e=>e)}function createBaseNodeFactory(){let e,t,n,r,i;return{createBaseSourceFileNode:function createBaseSourceFileNode(e){return new(i||(i=Bn.getSourceFileConstructor()))(e,-1,-1)},createBaseIdentifierNode:function createBaseIdentifierNode(e){return new(n||(n=Bn.getIdentifierConstructor()))(e,-1,-1)},createBasePrivateIdentifierNode:function createBasePrivateIdentifierNode(e){return new(r||(r=Bn.getPrivateIdentifierConstructor()))(e,-1,-1)},createBaseTokenNode:function createBaseTokenNode(e){return new(t||(t=Bn.getTokenConstructor()))(e,-1,-1)},createBaseNode:function createBaseNode(t){return new(e||(e=Bn.getNodeConstructor()))(t,-1,-1)}}}function createParenthesizerRules(e){let t,n;return{getParenthesizeLeftSideOfBinaryForOperator:function getParenthesizeLeftSideOfBinaryForOperator(e){t||(t=new Map);let n=t.get(e);n||(n=t=>parenthesizeLeftSideOfBinary(e,t),t.set(e,n));return n},getParenthesizeRightSideOfBinaryForOperator:function getParenthesizeRightSideOfBinaryForOperator(e){n||(n=new Map);let t=n.get(e);t||(t=t=>parenthesizeRightSideOfBinary(e,void 0,t),n.set(e,t));return t},parenthesizeLeftSideOfBinary,parenthesizeRightSideOfBinary,parenthesizeExpressionOfComputedPropertyName:function parenthesizeExpressionOfComputedPropertyName(t){return isCommaSequence(t)?e.createParenthesizedExpression(t):t},parenthesizeConditionOfConditionalExpression:function parenthesizeConditionOfConditionalExpression(t){const n=getOperatorPrecedence(228,58),r=skipPartiallyEmittedExpressions(t);if(1!==compareValues(getExpressionPrecedence(r),n))return e.createParenthesizedExpression(t);return t},parenthesizeBranchOfConditionalExpression:function parenthesizeBranchOfConditionalExpression(t){return isCommaSequence(skipPartiallyEmittedExpressions(t))?e.createParenthesizedExpression(t):t},parenthesizeExpressionOfExportDefault:function parenthesizeExpressionOfExportDefault(t){const n=skipPartiallyEmittedExpressions(t);let r=isCommaSequence(n);if(!r)switch(getLeftmostExpression(n,!1).kind){case 232:case 219:r=!0}return r?e.createParenthesizedExpression(t):t},parenthesizeExpressionOfNew:function parenthesizeExpressionOfNew(t){const n=getLeftmostExpression(t,!0);switch(n.kind){case 214:return e.createParenthesizedExpression(t);case 215:return n.arguments?t:e.createParenthesizedExpression(t)}return parenthesizeLeftSideOfAccess(t)},parenthesizeLeftSideOfAccess,parenthesizeOperandOfPostfixUnary:function parenthesizeOperandOfPostfixUnary(t){return isLeftHandSideExpression(t)?t:setTextRange(e.createParenthesizedExpression(t),t)},parenthesizeOperandOfPrefixUnary:function parenthesizeOperandOfPrefixUnary(t){return isUnaryExpression(t)?t:setTextRange(e.createParenthesizedExpression(t),t)},parenthesizeExpressionsOfCommaDelimitedList:function parenthesizeExpressionsOfCommaDelimitedList(t){const n=sameMap(t,parenthesizeExpressionForDisallowedComma);return setTextRange(e.createNodeArray(n,t.hasTrailingComma),t)},parenthesizeExpressionForDisallowedComma,parenthesizeExpressionOfExpressionStatement:function parenthesizeExpressionOfExpressionStatement(t){const n=skipPartiallyEmittedExpressions(t);if(isCallExpression(n)){const r=n.expression,i=skipPartiallyEmittedExpressions(r).kind;if(219===i||220===i){const i=e.updateCallExpression(n,setTextRange(e.createParenthesizedExpression(r),r),n.typeArguments,n.arguments);return e.restoreOuterExpressions(t,i,8)}}const r=getLeftmostExpression(n,!1).kind;if(211===r||219===r)return setTextRange(e.createParenthesizedExpression(t),t);return t},parenthesizeConciseBodyOfArrowFunction:function parenthesizeConciseBodyOfArrowFunction(t){if(!isBlock(t)&&(isCommaSequence(t)||211===getLeftmostExpression(t,!1).kind))return setTextRange(e.createParenthesizedExpression(t),t);return t},parenthesizeCheckTypeOfConditionalType,parenthesizeExtendsTypeOfConditionalType:function parenthesizeExtendsTypeOfConditionalType(t){if(195===t.kind)return e.createParenthesizedType(t);return t},parenthesizeConstituentTypesOfUnionType:function parenthesizeConstituentTypesOfUnionType(t){return e.createNodeArray(sameMap(t,parenthesizeConstituentTypeOfUnionType))},parenthesizeConstituentTypeOfUnionType,parenthesizeConstituentTypesOfIntersectionType:function parenthesizeConstituentTypesOfIntersectionType(t){return e.createNodeArray(sameMap(t,parenthesizeConstituentTypeOfIntersectionType))},parenthesizeConstituentTypeOfIntersectionType,parenthesizeOperandOfTypeOperator,parenthesizeOperandOfReadonlyTypeOperator:function parenthesizeOperandOfReadonlyTypeOperator(t){if(199===t.kind)return e.createParenthesizedType(t);return parenthesizeOperandOfTypeOperator(t)},parenthesizeNonArrayTypeOfPostfixType,parenthesizeElementTypesOfTupleType:function parenthesizeElementTypesOfTupleType(t){return e.createNodeArray(sameMap(t,parenthesizeElementTypeOfTupleType))},parenthesizeElementTypeOfTupleType,parenthesizeTypeOfOptionalType:function parenthesizeTypeOfOptionalType(t){return hasJSDocPostfixQuestion(t)?e.createParenthesizedType(t):parenthesizeNonArrayTypeOfPostfixType(t)},parenthesizeTypeArguments:function parenthesizeTypeArguments(t){if(some(t))return e.createNodeArray(sameMap(t,parenthesizeOrdinalTypeArgument))},parenthesizeLeadingTypeArgument};function getLiteralKindOfBinaryPlusOperand(e){if(isLiteralKind((e=skipPartiallyEmittedExpressions(e)).kind))return e.kind;if(227===e.kind&&40===e.operatorToken.kind){if(void 0!==e.cachedLiteralKind)return e.cachedLiteralKind;const t=getLiteralKindOfBinaryPlusOperand(e.left),n=isLiteralKind(t)&&t===getLiteralKindOfBinaryPlusOperand(e.right)?t:0;return e.cachedLiteralKind=n,n}return 0}function parenthesizeBinaryOperand(t,n,r,i){return 218===skipPartiallyEmittedExpressions(n).kind?n:function binaryOperandNeedsParentheses(e,t,n,r){const i=getOperatorPrecedence(227,e),o=getOperatorAssociativity(227,e),a=skipPartiallyEmittedExpressions(t);if(!n&&220===t.kind&&i>3)return!0;switch(compareValues(getExpressionPrecedence(a),i)){case-1:return!(!n&&1===o&&230===t.kind);case 1:return!1;case 0:if(n)return 1===o;if(isBinaryExpression(a)&&a.operatorToken.kind===e){if(function operatorHasAssociativeProperty(e){return 42===e||52===e||51===e||53===e||28===e}(e))return!1;if(40===e){const e=r?getLiteralKindOfBinaryPlusOperand(r):0;if(isLiteralKind(e)&&e===getLiteralKindOfBinaryPlusOperand(a))return!1}}return 0===getExpressionAssociativity(a)}}(t,n,r,i)?e.createParenthesizedExpression(n):n}function parenthesizeLeftSideOfBinary(e,t){return parenthesizeBinaryOperand(e,t,!0)}function parenthesizeRightSideOfBinary(e,t,n){return parenthesizeBinaryOperand(e,n,!1,t)}function parenthesizeLeftSideOfAccess(t,n){const r=skipPartiallyEmittedExpressions(t);return!isLeftHandSideExpression(r)||215===r.kind&&!r.arguments||!n&&isOptionalChain(r)?setTextRange(e.createParenthesizedExpression(t),t):t}function parenthesizeExpressionForDisallowedComma(t){return getExpressionPrecedence(skipPartiallyEmittedExpressions(t))>getOperatorPrecedence(227,28)?t:setTextRange(e.createParenthesizedExpression(t),t)}function parenthesizeCheckTypeOfConditionalType(t){switch(t.kind){case 185:case 186:case 195:return e.createParenthesizedType(t)}return t}function parenthesizeConstituentTypeOfUnionType(t){switch(t.kind){case 193:case 194:return e.createParenthesizedType(t)}return parenthesizeCheckTypeOfConditionalType(t)}function parenthesizeConstituentTypeOfIntersectionType(t){switch(t.kind){case 193:case 194:return e.createParenthesizedType(t)}return parenthesizeConstituentTypeOfUnionType(t)}function parenthesizeOperandOfTypeOperator(t){return 194===t.kind?e.createParenthesizedType(t):parenthesizeConstituentTypeOfIntersectionType(t)}function parenthesizeNonArrayTypeOfPostfixType(t){switch(t.kind){case 196:case 199:case 187:return e.createParenthesizedType(t)}return parenthesizeOperandOfTypeOperator(t)}function parenthesizeElementTypeOfTupleType(t){return hasJSDocPostfixQuestion(t)?e.createParenthesizedType(t):t}function hasJSDocPostfixQuestion(e){return isJSDocNullableType(e)?e.postfix:isNamedTupleMember(e)||isFunctionTypeNode(e)||isConstructorTypeNode(e)||isTypeOperatorNode(e)?hasJSDocPostfixQuestion(e.type):isConditionalTypeNode(e)?hasJSDocPostfixQuestion(e.falseType):isUnionTypeNode(e)||isIntersectionTypeNode(e)?hasJSDocPostfixQuestion(last(e.types)):!!isInferTypeNode(e)&&(!!e.typeParameter.constraint&&hasJSDocPostfixQuestion(e.typeParameter.constraint))}function parenthesizeLeadingTypeArgument(t){return isFunctionOrConstructorTypeNode(t)&&t.typeParameters?e.createParenthesizedType(t):t}function parenthesizeOrdinalTypeArgument(e,t){return 0===t?parenthesizeLeadingTypeArgument(e):e}}var Ar={getParenthesizeLeftSideOfBinaryForOperator:e=>identity,getParenthesizeRightSideOfBinaryForOperator:e=>identity,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,n)=>n,parenthesizeExpressionOfComputedPropertyName:identity,parenthesizeConditionOfConditionalExpression:identity,parenthesizeBranchOfConditionalExpression:identity,parenthesizeExpressionOfExportDefault:identity,parenthesizeExpressionOfNew:e=>cast(e,isLeftHandSideExpression),parenthesizeLeftSideOfAccess:e=>cast(e,isLeftHandSideExpression),parenthesizeOperandOfPostfixUnary:e=>cast(e,isLeftHandSideExpression),parenthesizeOperandOfPrefixUnary:e=>cast(e,isUnaryExpression),parenthesizeExpressionsOfCommaDelimitedList:e=>cast(e,isNodeArray),parenthesizeExpressionForDisallowedComma:identity,parenthesizeExpressionOfExpressionStatement:identity,parenthesizeConciseBodyOfArrowFunction:identity,parenthesizeCheckTypeOfConditionalType:identity,parenthesizeExtendsTypeOfConditionalType:identity,parenthesizeConstituentTypesOfUnionType:e=>cast(e,isNodeArray),parenthesizeConstituentTypeOfUnionType:identity,parenthesizeConstituentTypesOfIntersectionType:e=>cast(e,isNodeArray),parenthesizeConstituentTypeOfIntersectionType:identity,parenthesizeOperandOfTypeOperator:identity,parenthesizeOperandOfReadonlyTypeOperator:identity,parenthesizeNonArrayTypeOfPostfixType:identity,parenthesizeElementTypesOfTupleType:e=>cast(e,isNodeArray),parenthesizeElementTypeOfTupleType:identity,parenthesizeTypeOfOptionalType:identity,parenthesizeTypeArguments:e=>e&&cast(e,isNodeArray),parenthesizeLeadingTypeArgument:identity};function createNodeConverters(e){return{convertToFunctionBlock:function convertToFunctionBlock(t,n){if(isBlock(t))return t;const r=e.createReturnStatement(t);setTextRange(r,t);const i=e.createBlock([r],n);return setTextRange(i,t),i},convertToFunctionExpression:function convertToFunctionExpression(t){var n;if(!t.body)return h.fail("Cannot convert a FunctionDeclaration without a body");const r=e.createFunctionExpression(null==(n=getModifiers(t))?void 0:n.filter(e=>!isExportModifier(e)&&!isDefaultModifier(e)),t.asteriskToken,t.name,t.typeParameters,t.parameters,t.type,t.body);setOriginalNode(r,t),setTextRange(r,t),getStartsOnNewLine(t)&&setStartsOnNewLine(r,!0);return r},convertToClassExpression:function convertToClassExpression(t){var n;const r=e.createClassExpression(null==(n=t.modifiers)?void 0:n.filter(e=>!isExportModifier(e)&&!isDefaultModifier(e)),t.name,t.typeParameters,t.heritageClauses,t.members);setOriginalNode(r,t),setTextRange(r,t),getStartsOnNewLine(t)&&setStartsOnNewLine(r,!0);return r},convertToArrayAssignmentElement,convertToObjectAssignmentElement,convertToAssignmentPattern,convertToObjectAssignmentPattern,convertToArrayAssignmentPattern,convertToAssignmentElementTarget};function convertToArrayAssignmentElement(t){if(isBindingElement(t)){if(t.dotDotDotToken)return h.assertNode(t.name,isIdentifier),setOriginalNode(setTextRange(e.createSpreadElement(t.name),t),t);const n=convertToAssignmentElementTarget(t.name);return t.initializer?setOriginalNode(setTextRange(e.createAssignment(n,t.initializer),t),t):n}return cast(t,isExpression)}function convertToObjectAssignmentElement(t){if(isBindingElement(t)){if(t.dotDotDotToken)return h.assertNode(t.name,isIdentifier),setOriginalNode(setTextRange(e.createSpreadAssignment(t.name),t),t);if(t.propertyName){const n=convertToAssignmentElementTarget(t.name);return setOriginalNode(setTextRange(e.createPropertyAssignment(t.propertyName,t.initializer?e.createAssignment(n,t.initializer):n),t),t)}return h.assertNode(t.name,isIdentifier),setOriginalNode(setTextRange(e.createShorthandPropertyAssignment(t.name,t.initializer),t),t)}return cast(t,isObjectLiteralElementLike)}function convertToAssignmentPattern(e){switch(e.kind){case 208:case 210:return convertToArrayAssignmentPattern(e);case 207:case 211:return convertToObjectAssignmentPattern(e)}}function convertToObjectAssignmentPattern(t){return isObjectBindingPattern(t)?setOriginalNode(setTextRange(e.createObjectLiteralExpression(map(t.elements,convertToObjectAssignmentElement)),t),t):cast(t,isObjectLiteralExpression)}function convertToArrayAssignmentPattern(t){return isArrayBindingPattern(t)?setOriginalNode(setTextRange(e.createArrayLiteralExpression(map(t.elements,convertToArrayAssignmentElement)),t),t):cast(t,isArrayLiteralExpression)}function convertToAssignmentElementTarget(e){return isBindingPattern(e)?convertToAssignmentPattern(e):cast(e,isExpression)}}var Or,wr={convertToFunctionBlock:notImplemented,convertToFunctionExpression:notImplemented,convertToClassExpression:notImplemented,convertToArrayAssignmentElement:notImplemented,convertToObjectAssignmentElement:notImplemented,convertToAssignmentPattern:notImplemented,convertToObjectAssignmentPattern:notImplemented,convertToArrayAssignmentPattern:notImplemented,convertToAssignmentElementTarget:notImplemented},Lr=0,Mr=(e=>(e[e.None=0]="None",e[e.NoParenthesizerRules=1]="NoParenthesizerRules",e[e.NoNodeConverters=2]="NoNodeConverters",e[e.NoIndentationOnFreshPropertyAccess=4]="NoIndentationOnFreshPropertyAccess",e[e.NoOriginalNode=8]="NoOriginalNode",e))(Mr||{}),Rr=[];function addNodeFactoryPatcher(e){Rr.push(e)}function createNodeFactory(e,t){const n=8&e?identity:setOriginalNode,r=memoize(()=>1&e?Ar:createParenthesizerRules(T)),i=memoize(()=>2&e?wr:createNodeConverters(T)),o=memoizeOne(e=>(t,n)=>createBinaryExpression(t,e,n)),a=memoizeOne(e=>t=>createPrefixUnaryExpression(e,t)),s=memoizeOne(e=>t=>createPostfixUnaryExpression(t,e)),c=memoizeOne(e=>()=>function createJSDocPrimaryTypeWorker(e){return createBaseNode(e)}(e)),d=memoizeOne(e=>t=>createJSDocUnaryTypeWorker(e,t)),p=memoizeOne(e=>(t,n)=>function updateJSDocUnaryTypeWorker(e,t,n){return t.type!==n?update(createJSDocUnaryTypeWorker(e,n),t):t}(e,t,n)),u=memoizeOne(e=>(t,n)=>createJSDocPrePostfixUnaryTypeWorker(e,t,n)),m=memoizeOne(e=>(t,n)=>function updateJSDocPrePostfixUnaryTypeWorker(e,t,n){return t.type!==n?update(createJSDocPrePostfixUnaryTypeWorker(e,n,t.postfix),t):t}(e,t,n)),_=memoizeOne(e=>(t,n)=>createJSDocSimpleTagWorker(e,t,n)),f=memoizeOne(e=>(t,n,r)=>function updateJSDocSimpleTagWorker(e,t,n=getDefaultTagName(t),r){return t.tagName!==n||t.comment!==r?update(createJSDocSimpleTagWorker(e,n,r),t):t}(e,t,n,r)),g=memoizeOne(e=>(t,n,r)=>createJSDocTypeLikeTagWorker(e,t,n,r)),y=memoizeOne(e=>(t,n,r,i)=>function updateJSDocTypeLikeTagWorker(e,t,n=getDefaultTagName(t),r,i){return t.tagName!==n||t.typeExpression!==r||t.comment!==i?update(createJSDocTypeLikeTagWorker(e,n,r,i),t):t}(e,t,n,r,i)),T={get parenthesizer(){return r()},get converters(){return i()},baseFactory:t,flags:e,createNodeArray,createNumericLiteral,createBigIntLiteral,createStringLiteral,createStringLiteralFromNode:function createStringLiteralFromNode(e){const t=createBaseStringLiteral(getTextOfIdentifierOrLiteral(e),void 0);return t.textSourceNode=e,t},createRegularExpressionLiteral,createLiteralLikeNode:function createLiteralLikeNode(e,t){switch(e){case 9:return createNumericLiteral(t,0);case 10:return createBigIntLiteral(t);case 11:return createStringLiteral(t,void 0);case 12:return createJsxText(t,!1);case 13:return createJsxText(t,!0);case 14:return createRegularExpressionLiteral(t);case 15:return createTemplateLiteralLikeNode(e,t,void 0,0)}},createIdentifier,createTempVariable,createLoopVariable:function createLoopVariable(e){let t=2;e&&(t|=8);return createBaseGeneratedIdentifier("",t,void 0,void 0)},createUniqueName:function createUniqueName(e,t=0,n,r){return h.assert(!(7&t),"Argument out of range: flags"),h.assert(32!=(48&t),"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),createBaseGeneratedIdentifier(e,3|t,n,r)},getGeneratedNameForNode,createPrivateIdentifier:function createPrivateIdentifier(e){startsWith(e,"#")||h.fail("First character of private identifier must be #: "+e);return createBasePrivateIdentifier(escapeLeadingUnderscores(e))},createUniquePrivateName:function createUniquePrivateName(e,t,n){e&&!startsWith(e,"#")&&h.fail("First character of private identifier must be #: "+e);return createBaseGeneratedPrivateIdentifier(e??"",8|(e?3:1),t,n)},getGeneratedPrivateNameForNode:function getGeneratedPrivateNameForNode(e,t,n){const r=isMemberName(e)?formatGeneratedName(!0,t,e,n,idText):`#generated@${getNodeId(e)}`,i=createBaseGeneratedPrivateIdentifier(r,4|(t||n?16:0),t,n);return i.original=e,i},createToken,createSuper:function createSuper(){return createToken(108)},createThis,createNull,createTrue,createFalse,createModifier,createModifiersFromModifierFlags,createQualifiedName,updateQualifiedName:function updateQualifiedName(e,t,n){return e.left!==t||e.right!==n?update(createQualifiedName(t,n),e):e},createComputedPropertyName,updateComputedPropertyName:function updateComputedPropertyName(e,t){return e.expression!==t?update(createComputedPropertyName(t),e):e},createTypeParameterDeclaration,updateTypeParameterDeclaration,createParameterDeclaration,updateParameterDeclaration,createDecorator,updateDecorator:function updateDecorator(e,t){return e.expression!==t?update(createDecorator(t),e):e},createPropertySignature,updatePropertySignature,createPropertyDeclaration,updatePropertyDeclaration:updatePropertyDeclaration2,createMethodSignature,updateMethodSignature,createMethodDeclaration,updateMethodDeclaration,createConstructorDeclaration,updateConstructorDeclaration,createGetAccessorDeclaration,updateGetAccessorDeclaration,createSetAccessorDeclaration,updateSetAccessorDeclaration,createCallSignature,updateCallSignature:function updateCallSignature(e,t,n,r){return e.typeParameters!==t||e.parameters!==n||e.type!==r?finishUpdateBaseSignatureDeclaration(createCallSignature(t,n,r),e):e},createConstructSignature,updateConstructSignature:function updateConstructSignature(e,t,n,r){return e.typeParameters!==t||e.parameters!==n||e.type!==r?finishUpdateBaseSignatureDeclaration(createConstructSignature(t,n,r),e):e},createIndexSignature,updateIndexSignature,createClassStaticBlockDeclaration,updateClassStaticBlockDeclaration:function updateClassStaticBlockDeclaration(e,t){return e.body!==t?function finishUpdateClassStaticBlockDeclaration(e,t){e!==t&&(e.modifiers=t.modifiers);return update(e,t)}(createClassStaticBlockDeclaration(t),e):e},createTemplateLiteralTypeSpan,updateTemplateLiteralTypeSpan:function updateTemplateLiteralTypeSpan(e,t,n){return e.type!==t||e.literal!==n?update(createTemplateLiteralTypeSpan(t,n),e):e},createKeywordTypeNode:function createKeywordTypeNode(e){return createToken(e)},createTypePredicateNode,updateTypePredicateNode:function updateTypePredicateNode(e,t,n,r){return e.assertsModifier!==t||e.parameterName!==n||e.type!==r?update(createTypePredicateNode(t,n,r),e):e},createTypeReferenceNode,updateTypeReferenceNode:function updateTypeReferenceNode(e,t,n){return e.typeName!==t||e.typeArguments!==n?update(createTypeReferenceNode(t,n),e):e},createFunctionTypeNode,updateFunctionTypeNode:function updateFunctionTypeNode(e,t,n,r){return e.typeParameters!==t||e.parameters!==n||e.type!==r?function finishUpdateFunctionTypeNode(e,t){e!==t&&(e.modifiers=t.modifiers);return finishUpdateBaseSignatureDeclaration(e,t)}(createFunctionTypeNode(t,n,r),e):e},createConstructorTypeNode,updateConstructorTypeNode:function updateConstructorTypeNode(...e){return 5===e.length?updateConstructorTypeNode1(...e):4===e.length?function updateConstructorTypeNode2(e,t,n,r){return updateConstructorTypeNode1(e,e.modifiers,t,n,r)}(...e):h.fail("Incorrect number of arguments specified.")},createTypeQueryNode,updateTypeQueryNode:function updateTypeQueryNode(e,t,n){return e.exprName!==t||e.typeArguments!==n?update(createTypeQueryNode(t,n),e):e},createTypeLiteralNode,updateTypeLiteralNode:function updateTypeLiteralNode(e,t){return e.members!==t?update(createTypeLiteralNode(t),e):e},createArrayTypeNode,updateArrayTypeNode:function updateArrayTypeNode(e,t){return e.elementType!==t?update(createArrayTypeNode(t),e):e},createTupleTypeNode,updateTupleTypeNode:function updateTupleTypeNode(e,t){return e.elements!==t?update(createTupleTypeNode(t),e):e},createNamedTupleMember,updateNamedTupleMember:function updateNamedTupleMember(e,t,n,r,i){return e.dotDotDotToken!==t||e.name!==n||e.questionToken!==r||e.type!==i?update(createNamedTupleMember(t,n,r,i),e):e},createOptionalTypeNode,updateOptionalTypeNode:function updateOptionalTypeNode(e,t){return e.type!==t?update(createOptionalTypeNode(t),e):e},createRestTypeNode,updateRestTypeNode:function updateRestTypeNode(e,t){return e.type!==t?update(createRestTypeNode(t),e):e},createUnionTypeNode:function createUnionTypeNode(e){return createUnionOrIntersectionTypeNode(193,e,r().parenthesizeConstituentTypesOfUnionType)},updateUnionTypeNode:function updateUnionTypeNode(e,t){return updateUnionOrIntersectionTypeNode(e,t,r().parenthesizeConstituentTypesOfUnionType)},createIntersectionTypeNode:function createIntersectionTypeNode(e){return createUnionOrIntersectionTypeNode(194,e,r().parenthesizeConstituentTypesOfIntersectionType)},updateIntersectionTypeNode:function updateIntersectionTypeNode(e,t){return updateUnionOrIntersectionTypeNode(e,t,r().parenthesizeConstituentTypesOfIntersectionType)},createConditionalTypeNode,updateConditionalTypeNode:function updateConditionalTypeNode(e,t,n,r,i){return e.checkType!==t||e.extendsType!==n||e.trueType!==r||e.falseType!==i?update(createConditionalTypeNode(t,n,r,i),e):e},createInferTypeNode,updateInferTypeNode:function updateInferTypeNode(e,t){return e.typeParameter!==t?update(createInferTypeNode(t),e):e},createImportTypeNode,updateImportTypeNode:function updateImportTypeNode(e,t,n,r,i,o=e.isTypeOf){return e.argument!==t||e.attributes!==n||e.qualifier!==r||e.typeArguments!==i||e.isTypeOf!==o?update(createImportTypeNode(t,n,r,i,o),e):e},createParenthesizedType,updateParenthesizedType:function updateParenthesizedType(e,t){return e.type!==t?update(createParenthesizedType(t),e):e},createThisTypeNode:function createThisTypeNode(){const e=createBaseNode(198);return e.transformFlags=1,e},createTypeOperatorNode,updateTypeOperatorNode:function updateTypeOperatorNode(e,t){return e.type!==t?update(createTypeOperatorNode(e.operator,t),e):e},createIndexedAccessTypeNode,updateIndexedAccessTypeNode:function updateIndexedAccessTypeNode(e,t,n){return e.objectType!==t||e.indexType!==n?update(createIndexedAccessTypeNode(t,n),e):e},createMappedTypeNode,updateMappedTypeNode:function updateMappedTypeNode(e,t,n,r,i,o,a){return e.readonlyToken!==t||e.typeParameter!==n||e.nameType!==r||e.questionToken!==i||e.type!==o||e.members!==a?update(createMappedTypeNode(t,n,r,i,o,a),e):e},createLiteralTypeNode,updateLiteralTypeNode:function updateLiteralTypeNode(e,t){return e.literal!==t?update(createLiteralTypeNode(t),e):e},createTemplateLiteralType,updateTemplateLiteralType:function updateTemplateLiteralType(e,t,n){return e.head!==t||e.templateSpans!==n?update(createTemplateLiteralType(t,n),e):e},createObjectBindingPattern,updateObjectBindingPattern:function updateObjectBindingPattern(e,t){return e.elements!==t?update(createObjectBindingPattern(t),e):e},createArrayBindingPattern,updateArrayBindingPattern:function updateArrayBindingPattern(e,t){return e.elements!==t?update(createArrayBindingPattern(t),e):e},createBindingElement,updateBindingElement:function updateBindingElement(e,t,n,r,i){return e.propertyName!==n||e.dotDotDotToken!==t||e.name!==r||e.initializer!==i?update(createBindingElement(t,n,r,i),e):e},createArrayLiteralExpression,updateArrayLiteralExpression:function updateArrayLiteralExpression(e,t){return e.elements!==t?update(createArrayLiteralExpression(t,e.multiLine),e):e},createObjectLiteralExpression,updateObjectLiteralExpression:function updateObjectLiteralExpression(e,t){return e.properties!==t?update(createObjectLiteralExpression(t,e.multiLine),e):e},createPropertyAccessExpression:4&e?(e,t)=>setEmitFlags(createPropertyAccessExpression(e,t),262144):createPropertyAccessExpression,updatePropertyAccessExpression:function updatePropertyAccessExpression(e,t,n){if(isPropertyAccessChain(e))return updatePropertyAccessChain(e,t,e.questionDotToken,cast(n,isIdentifier));return e.expression!==t||e.name!==n?update(createPropertyAccessExpression(t,n),e):e},createPropertyAccessChain:4&e?(e,t,n)=>setEmitFlags(createPropertyAccessChain(e,t,n),262144):createPropertyAccessChain,updatePropertyAccessChain,createElementAccessExpression,updateElementAccessExpression:function updateElementAccessExpression(e,t,n){if(isElementAccessChain(e))return updateElementAccessChain(e,t,e.questionDotToken,n);return e.expression!==t||e.argumentExpression!==n?update(createElementAccessExpression(t,n),e):e},createElementAccessChain,updateElementAccessChain,createCallExpression,updateCallExpression:function updateCallExpression(e,t,n,r){if(isCallChain(e))return updateCallChain(e,t,e.questionDotToken,n,r);return e.expression!==t||e.typeArguments!==n||e.arguments!==r?update(createCallExpression(t,n,r),e):e},createCallChain,updateCallChain,createNewExpression,updateNewExpression:function updateNewExpression(e,t,n,r){return e.expression!==t||e.typeArguments!==n||e.arguments!==r?update(createNewExpression(t,n,r),e):e},createTaggedTemplateExpression,updateTaggedTemplateExpression:function updateTaggedTemplateExpression(e,t,n,r){return e.tag!==t||e.typeArguments!==n||e.template!==r?update(createTaggedTemplateExpression(t,n,r),e):e},createTypeAssertion,updateTypeAssertion,createParenthesizedExpression,updateParenthesizedExpression,createFunctionExpression,updateFunctionExpression,createArrowFunction,updateArrowFunction,createDeleteExpression,updateDeleteExpression:function updateDeleteExpression(e,t){return e.expression!==t?update(createDeleteExpression(t),e):e},createTypeOfExpression,updateTypeOfExpression:function updateTypeOfExpression(e,t){return e.expression!==t?update(createTypeOfExpression(t),e):e},createVoidExpression,updateVoidExpression:function updateVoidExpression(e,t){return e.expression!==t?update(createVoidExpression(t),e):e},createAwaitExpression,updateAwaitExpression:function updateAwaitExpression(e,t){return e.expression!==t?update(createAwaitExpression(t),e):e},createPrefixUnaryExpression,updatePrefixUnaryExpression:function updatePrefixUnaryExpression(e,t){return e.operand!==t?update(createPrefixUnaryExpression(e.operator,t),e):e},createPostfixUnaryExpression,updatePostfixUnaryExpression:function updatePostfixUnaryExpression(e,t){return e.operand!==t?update(createPostfixUnaryExpression(t,e.operator),e):e},createBinaryExpression,updateBinaryExpression:function updateBinaryExpression(e,t,n,r){return e.left!==t||e.operatorToken!==n||e.right!==r?update(createBinaryExpression(t,n,r),e):e},createConditionalExpression,updateConditionalExpression:function updateConditionalExpression(e,t,n,r,i,o){return e.condition!==t||e.questionToken!==n||e.whenTrue!==r||e.colonToken!==i||e.whenFalse!==o?update(createConditionalExpression(t,n,r,i,o),e):e},createTemplateExpression,updateTemplateExpression:function updateTemplateExpression(e,t,n){return e.head!==t||e.templateSpans!==n?update(createTemplateExpression(t,n),e):e},createTemplateHead:function createTemplateHead(e,t,n){return createTemplateLiteralLikeNode(16,e=checkTemplateLiteralLikeNode(16,e,t,n),t,n)},createTemplateMiddle:function createTemplateMiddle(e,t,n){return createTemplateLiteralLikeNode(17,e=checkTemplateLiteralLikeNode(16,e,t,n),t,n)},createTemplateTail:function createTemplateTail(e,t,n){return createTemplateLiteralLikeNode(18,e=checkTemplateLiteralLikeNode(16,e,t,n),t,n)},createNoSubstitutionTemplateLiteral:function createNoSubstitutionTemplateLiteral(e,t,n){return createTemplateLiteralLikeDeclaration(15,e=checkTemplateLiteralLikeNode(16,e,t,n),t,n)},createTemplateLiteralLikeNode,createYieldExpression,updateYieldExpression:function updateYieldExpression(e,t,n){return e.expression!==n||e.asteriskToken!==t?update(createYieldExpression(t,n),e):e},createSpreadElement,updateSpreadElement:function updateSpreadElement(e,t){return e.expression!==t?update(createSpreadElement(t),e):e},createClassExpression,updateClassExpression,createOmittedExpression:function createOmittedExpression(){return createBaseNode(233)},createExpressionWithTypeArguments,updateExpressionWithTypeArguments,createAsExpression,updateAsExpression,createNonNullExpression,updateNonNullExpression,createSatisfiesExpression,updateSatisfiesExpression,createNonNullChain,updateNonNullChain,createMetaProperty,updateMetaProperty:function updateMetaProperty(e,t){return e.name!==t?update(createMetaProperty(e.keywordToken,t),e):e},createTemplateSpan,updateTemplateSpan:function updateTemplateSpan(e,t,n){return e.expression!==t||e.literal!==n?update(createTemplateSpan(t,n),e):e},createSemicolonClassElement:function createSemicolonClassElement(){const e=createBaseNode(241);return e.transformFlags|=1024,e},createBlock,updateBlock:function updateBlock(e,t){return e.statements!==t?update(createBlock(t,e.multiLine),e):e},createVariableStatement,updateVariableStatement,createEmptyStatement,createExpressionStatement,updateExpressionStatement:function updateExpressionStatement(e,t){return e.expression!==t?update(createExpressionStatement(t),e):e},createIfStatement,updateIfStatement:function updateIfStatement(e,t,n,r){return e.expression!==t||e.thenStatement!==n||e.elseStatement!==r?update(createIfStatement(t,n,r),e):e},createDoStatement,updateDoStatement:function updateDoStatement(e,t,n){return e.statement!==t||e.expression!==n?update(createDoStatement(t,n),e):e},createWhileStatement,updateWhileStatement:function updateWhileStatement(e,t,n){return e.expression!==t||e.statement!==n?update(createWhileStatement(t,n),e):e},createForStatement,updateForStatement:function updateForStatement(e,t,n,r,i){return e.initializer!==t||e.condition!==n||e.incrementor!==r||e.statement!==i?update(createForStatement(t,n,r,i),e):e},createForInStatement,updateForInStatement:function updateForInStatement(e,t,n,r){return e.initializer!==t||e.expression!==n||e.statement!==r?update(createForInStatement(t,n,r),e):e},createForOfStatement,updateForOfStatement:function updateForOfStatement(e,t,n,r,i){return e.awaitModifier!==t||e.initializer!==n||e.expression!==r||e.statement!==i?update(createForOfStatement(t,n,r,i),e):e},createContinueStatement,updateContinueStatement:function updateContinueStatement(e,t){return e.label!==t?update(createContinueStatement(t),e):e},createBreakStatement,updateBreakStatement:function updateBreakStatement(e,t){return e.label!==t?update(createBreakStatement(t),e):e},createReturnStatement,updateReturnStatement:function updateReturnStatement(e,t){return e.expression!==t?update(createReturnStatement(t),e):e},createWithStatement,updateWithStatement:function updateWithStatement(e,t,n){return e.expression!==t||e.statement!==n?update(createWithStatement(t,n),e):e},createSwitchStatement,updateSwitchStatement:function updateSwitchStatement(e,t,n){return e.expression!==t||e.caseBlock!==n?update(createSwitchStatement(t,n),e):e},createLabeledStatement,updateLabeledStatement,createThrowStatement,updateThrowStatement:function updateThrowStatement(e,t){return e.expression!==t?update(createThrowStatement(t),e):e},createTryStatement,updateTryStatement:function updateTryStatement(e,t,n,r){return e.tryBlock!==t||e.catchClause!==n||e.finallyBlock!==r?update(createTryStatement(t,n,r),e):e},createDebuggerStatement:function createDebuggerStatement(){const e=createBaseNode(260);return e.jsDoc=void 0,e.flowNode=void 0,e},createVariableDeclaration,updateVariableDeclaration:function updateVariableDeclaration(e,t,n,r,i){return e.name!==t||e.type!==r||e.exclamationToken!==n||e.initializer!==i?update(createVariableDeclaration(t,n,r,i),e):e},createVariableDeclarationList,updateVariableDeclarationList:function updateVariableDeclarationList(e,t){return e.declarations!==t?update(createVariableDeclarationList(t,e.flags),e):e},createFunctionDeclaration,updateFunctionDeclaration,createClassDeclaration,updateClassDeclaration,createInterfaceDeclaration,updateInterfaceDeclaration,createTypeAliasDeclaration,updateTypeAliasDeclaration,createEnumDeclaration,updateEnumDeclaration,createModuleDeclaration,updateModuleDeclaration,createModuleBlock,updateModuleBlock:function updateModuleBlock(e,t){return e.statements!==t?update(createModuleBlock(t),e):e},createCaseBlock,updateCaseBlock:function updateCaseBlock(e,t){return e.clauses!==t?update(createCaseBlock(t),e):e},createNamespaceExportDeclaration,updateNamespaceExportDeclaration:function updateNamespaceExportDeclaration(e,t){return e.name!==t?function finishUpdateNamespaceExportDeclaration(e,t){e!==t&&(e.modifiers=t.modifiers);return update(e,t)}(createNamespaceExportDeclaration(t),e):e},createImportEqualsDeclaration,updateImportEqualsDeclaration,createImportDeclaration,updateImportDeclaration,createImportClause:createImportClause2,updateImportClause:function updateImportClause(e,t,n,r){"boolean"==typeof t&&(t=t?156:void 0);return e.phaseModifier!==t||e.name!==n||e.namedBindings!==r?update(createImportClause2(t,n,r),e):e},createAssertClause,updateAssertClause:function updateAssertClause(e,t,n){return e.elements!==t||e.multiLine!==n?update(createAssertClause(t,n),e):e},createAssertEntry,updateAssertEntry:function updateAssertEntry(e,t,n){return e.name!==t||e.value!==n?update(createAssertEntry(t,n),e):e},createImportTypeAssertionContainer,updateImportTypeAssertionContainer:function updateImportTypeAssertionContainer(e,t,n){return e.assertClause!==t||e.multiLine!==n?update(createImportTypeAssertionContainer(t,n),e):e},createImportAttributes,updateImportAttributes:function updateImportAttributes(e,t,n){return e.elements!==t||e.multiLine!==n?update(createImportAttributes(t,n,e.token),e):e},createImportAttribute,updateImportAttribute:function updateImportAttribute(e,t,n){return e.name!==t||e.value!==n?update(createImportAttribute(t,n),e):e},createNamespaceImport,updateNamespaceImport:function updateNamespaceImport(e,t){return e.name!==t?update(createNamespaceImport(t),e):e},createNamespaceExport,updateNamespaceExport:function updateNamespaceExport(e,t){return e.name!==t?update(createNamespaceExport(t),e):e},createNamedImports,updateNamedImports:function updateNamedImports(e,t){return e.elements!==t?update(createNamedImports(t),e):e},createImportSpecifier,updateImportSpecifier:function updateImportSpecifier(e,t,n,r){return e.isTypeOnly!==t||e.propertyName!==n||e.name!==r?update(createImportSpecifier(t,n,r),e):e},createExportAssignment:createExportAssignment2,updateExportAssignment,createExportDeclaration,updateExportDeclaration,createNamedExports,updateNamedExports:function updateNamedExports(e,t){return e.elements!==t?update(createNamedExports(t),e):e},createExportSpecifier,updateExportSpecifier:function updateExportSpecifier(e,t,n,r){return e.isTypeOnly!==t||e.propertyName!==n||e.name!==r?update(createExportSpecifier(t,n,r),e):e},createMissingDeclaration:function createMissingDeclaration(){const e=createBaseDeclaration(283);return e.jsDoc=void 0,e},createExternalModuleReference,updateExternalModuleReference:function updateExternalModuleReference(e,t){return e.expression!==t?update(createExternalModuleReference(t),e):e},get createJSDocAllType(){return c(313)},get createJSDocUnknownType(){return c(314)},get createJSDocNonNullableType(){return u(316)},get updateJSDocNonNullableType(){return m(316)},get createJSDocNullableType(){return u(315)},get updateJSDocNullableType(){return m(315)},get createJSDocOptionalType(){return d(317)},get updateJSDocOptionalType(){return p(317)},get createJSDocVariadicType(){return d(319)},get updateJSDocVariadicType(){return p(319)},get createJSDocNamepathType(){return d(320)},get updateJSDocNamepathType(){return p(320)},createJSDocFunctionType,updateJSDocFunctionType:function updateJSDocFunctionType(e,t,n){return e.parameters!==t||e.type!==n?update(createJSDocFunctionType(t,n),e):e},createJSDocTypeLiteral,updateJSDocTypeLiteral:function updateJSDocTypeLiteral(e,t,n){return e.jsDocPropertyTags!==t||e.isArrayType!==n?update(createJSDocTypeLiteral(t,n),e):e},createJSDocTypeExpression,updateJSDocTypeExpression:function updateJSDocTypeExpression(e,t){return e.type!==t?update(createJSDocTypeExpression(t),e):e},createJSDocSignature,updateJSDocSignature:function updateJSDocSignature(e,t,n,r){return e.typeParameters!==t||e.parameters!==n||e.type!==r?update(createJSDocSignature(t,n,r),e):e},createJSDocTemplateTag,updateJSDocTemplateTag:function updateJSDocTemplateTag(e,t=getDefaultTagName(e),n,r,i){return e.tagName!==t||e.constraint!==n||e.typeParameters!==r||e.comment!==i?update(createJSDocTemplateTag(t,n,r,i),e):e},createJSDocTypedefTag,updateJSDocTypedefTag:function updateJSDocTypedefTag(e,t=getDefaultTagName(e),n,r,i){return e.tagName!==t||e.typeExpression!==n||e.fullName!==r||e.comment!==i?update(createJSDocTypedefTag(t,n,r,i),e):e},createJSDocParameterTag,updateJSDocParameterTag:function updateJSDocParameterTag(e,t=getDefaultTagName(e),n,r,i,o,a){return e.tagName!==t||e.name!==n||e.isBracketed!==r||e.typeExpression!==i||e.isNameFirst!==o||e.comment!==a?update(createJSDocParameterTag(t,n,r,i,o,a),e):e},createJSDocPropertyTag,updateJSDocPropertyTag:function updateJSDocPropertyTag(e,t=getDefaultTagName(e),n,r,i,o,a){return e.tagName!==t||e.name!==n||e.isBracketed!==r||e.typeExpression!==i||e.isNameFirst!==o||e.comment!==a?update(createJSDocPropertyTag(t,n,r,i,o,a),e):e},createJSDocCallbackTag,updateJSDocCallbackTag:function updateJSDocCallbackTag(e,t=getDefaultTagName(e),n,r,i){return e.tagName!==t||e.typeExpression!==n||e.fullName!==r||e.comment!==i?update(createJSDocCallbackTag(t,n,r,i),e):e},createJSDocOverloadTag,updateJSDocOverloadTag:function updateJSDocOverloadTag(e,t=getDefaultTagName(e),n,r){return e.tagName!==t||e.typeExpression!==n||e.comment!==r?update(createJSDocOverloadTag(t,n,r),e):e},createJSDocAugmentsTag,updateJSDocAugmentsTag:function updateJSDocAugmentsTag(e,t=getDefaultTagName(e),n,r){return e.tagName!==t||e.class!==n||e.comment!==r?update(createJSDocAugmentsTag(t,n,r),e):e},createJSDocImplementsTag,updateJSDocImplementsTag:function updateJSDocImplementsTag(e,t=getDefaultTagName(e),n,r){return e.tagName!==t||e.class!==n||e.comment!==r?update(createJSDocImplementsTag(t,n,r),e):e},createJSDocSeeTag,updateJSDocSeeTag:function updateJSDocSeeTag(e,t,n,r){return e.tagName!==t||e.name!==n||e.comment!==r?update(createJSDocSeeTag(t,n,r),e):e},createJSDocImportTag,updateJSDocImportTag:function updateJSDocImportTag(e,t,n,r,i,o){return e.tagName!==t||e.comment!==o||e.importClause!==n||e.moduleSpecifier!==r||e.attributes!==i?update(createJSDocImportTag(t,n,r,i,o),e):e},createJSDocNameReference,updateJSDocNameReference:function updateJSDocNameReference(e,t){return e.name!==t?update(createJSDocNameReference(t),e):e},createJSDocMemberName,updateJSDocMemberName:function updateJSDocMemberName(e,t,n){return e.left!==t||e.right!==n?update(createJSDocMemberName(t,n),e):e},createJSDocLink,updateJSDocLink:function updateJSDocLink(e,t,n){return e.name!==t?update(createJSDocLink(t,n),e):e},createJSDocLinkCode,updateJSDocLinkCode:function updateJSDocLinkCode(e,t,n){return e.name!==t?update(createJSDocLinkCode(t,n),e):e},createJSDocLinkPlain,updateJSDocLinkPlain:function updateJSDocLinkPlain(e,t,n){return e.name!==t?update(createJSDocLinkPlain(t,n),e):e},get createJSDocTypeTag(){return g(345)},get updateJSDocTypeTag(){return y(345)},get createJSDocReturnTag(){return g(343)},get updateJSDocReturnTag(){return y(343)},get createJSDocThisTag(){return g(344)},get updateJSDocThisTag(){return y(344)},get createJSDocAuthorTag(){return _(331)},get updateJSDocAuthorTag(){return f(331)},get createJSDocClassTag(){return _(333)},get updateJSDocClassTag(){return f(333)},get createJSDocPublicTag(){return _(334)},get updateJSDocPublicTag(){return f(334)},get createJSDocPrivateTag(){return _(335)},get updateJSDocPrivateTag(){return f(335)},get createJSDocProtectedTag(){return _(336)},get updateJSDocProtectedTag(){return f(336)},get createJSDocReadonlyTag(){return _(337)},get updateJSDocReadonlyTag(){return f(337)},get createJSDocOverrideTag(){return _(338)},get updateJSDocOverrideTag(){return f(338)},get createJSDocDeprecatedTag(){return _(332)},get updateJSDocDeprecatedTag(){return f(332)},get createJSDocThrowsTag(){return g(350)},get updateJSDocThrowsTag(){return y(350)},get createJSDocSatisfiesTag(){return g(351)},get updateJSDocSatisfiesTag(){return y(351)},createJSDocEnumTag,updateJSDocEnumTag:function updateJSDocEnumTag(e,t=getDefaultTagName(e),n,r){return e.tagName!==t||e.typeExpression!==n||e.comment!==r?update(createJSDocEnumTag(t,n,r),e):e},createJSDocUnknownTag,updateJSDocUnknownTag:function updateJSDocUnknownTag(e,t,n){return e.tagName!==t||e.comment!==n?update(createJSDocUnknownTag(t,n),e):e},createJSDocText,updateJSDocText:function updateJSDocText(e,t){return e.text!==t?update(createJSDocText(t),e):e},createJSDocComment,updateJSDocComment:function updateJSDocComment(e,t,n){return e.comment!==t||e.tags!==n?update(createJSDocComment(t,n),e):e},createJsxElement,updateJsxElement:function updateJsxElement(e,t,n,r){return e.openingElement!==t||e.children!==n||e.closingElement!==r?update(createJsxElement(t,n,r),e):e},createJsxSelfClosingElement,updateJsxSelfClosingElement:function updateJsxSelfClosingElement(e,t,n,r){return e.tagName!==t||e.typeArguments!==n||e.attributes!==r?update(createJsxSelfClosingElement(t,n,r),e):e},createJsxOpeningElement,updateJsxOpeningElement:function updateJsxOpeningElement(e,t,n,r){return e.tagName!==t||e.typeArguments!==n||e.attributes!==r?update(createJsxOpeningElement(t,n,r),e):e},createJsxClosingElement,updateJsxClosingElement:function updateJsxClosingElement(e,t){return e.tagName!==t?update(createJsxClosingElement(t),e):e},createJsxFragment,createJsxText,updateJsxText:function updateJsxText(e,t,n){return e.text!==t||e.containsOnlyTriviaWhiteSpaces!==n?update(createJsxText(t,n),e):e},createJsxOpeningFragment:function createJsxOpeningFragment(){const e=createBaseNode(290);return e.transformFlags|=2,e},createJsxJsxClosingFragment:function createJsxJsxClosingFragment(){const e=createBaseNode(291);return e.transformFlags|=2,e},updateJsxFragment:function updateJsxFragment(e,t,n,r){return e.openingFragment!==t||e.children!==n||e.closingFragment!==r?update(createJsxFragment(t,n,r),e):e},createJsxAttribute,updateJsxAttribute:function updateJsxAttribute(e,t,n){return e.name!==t||e.initializer!==n?update(createJsxAttribute(t,n),e):e},createJsxAttributes,updateJsxAttributes:function updateJsxAttributes(e,t){return e.properties!==t?update(createJsxAttributes(t),e):e},createJsxSpreadAttribute,updateJsxSpreadAttribute:function updateJsxSpreadAttribute(e,t){return e.expression!==t?update(createJsxSpreadAttribute(t),e):e},createJsxExpression,updateJsxExpression:function updateJsxExpression(e,t){return e.expression!==t?update(createJsxExpression(e.dotDotDotToken,t),e):e},createJsxNamespacedName,updateJsxNamespacedName:function updateJsxNamespacedName(e,t,n){return e.namespace!==t||e.name!==n?update(createJsxNamespacedName(t,n),e):e},createCaseClause,updateCaseClause:function updateCaseClause(e,t,n){return e.expression!==t||e.statements!==n?update(createCaseClause(t,n),e):e},createDefaultClause,updateDefaultClause:function updateDefaultClause(e,t){return e.statements!==t?update(createDefaultClause(t),e):e},createHeritageClause,updateHeritageClause:function updateHeritageClause(e,t){return e.types!==t?update(createHeritageClause(e.token,t),e):e},createCatchClause,updateCatchClause:function updateCatchClause(e,t,n){return e.variableDeclaration!==t||e.block!==n?update(createCatchClause(t,n),e):e},createPropertyAssignment,updatePropertyAssignment,createShorthandPropertyAssignment,updateShorthandPropertyAssignment:function updateShorthandPropertyAssignment(e,t,n){return e.name!==t||e.objectAssignmentInitializer!==n?function finishUpdateShorthandPropertyAssignment(e,t){e!==t&&(e.modifiers=t.modifiers,e.questionToken=t.questionToken,e.exclamationToken=t.exclamationToken,e.equalsToken=t.equalsToken);return update(e,t)}(createShorthandPropertyAssignment(t,n),e):e},createSpreadAssignment,updateSpreadAssignment:function updateSpreadAssignment(e,t){return e.expression!==t?update(createSpreadAssignment(t),e):e},createEnumMember,updateEnumMember:function updateEnumMember(e,t,n){return e.name!==t||e.initializer!==n?update(createEnumMember(t,n),e):e},createSourceFile:function createSourceFile2(e,n,r){const i=t.createBaseSourceFileNode(308);return i.statements=createNodeArray(e),i.endOfFileToken=n,i.flags|=r,i.text="",i.fileName="",i.path="",i.resolvedPath="",i.originalFileName="",i.languageVersion=1,i.languageVariant=0,i.scriptKind=0,i.isDeclarationFile=!1,i.hasNoDefaultLib=!1,i.transformFlags|=propagateChildrenFlags(i.statements)|propagateChildFlags(i.endOfFileToken),i.locals=void 0,i.nextContainer=void 0,i.endFlowNode=void 0,i.nodeCount=0,i.identifierCount=0,i.symbolCount=0,i.parseDiagnostics=void 0,i.bindDiagnostics=void 0,i.bindSuggestionDiagnostics=void 0,i.lineMap=void 0,i.externalModuleIndicator=void 0,i.setExternalModuleIndicator=void 0,i.pragmas=void 0,i.checkJsDirective=void 0,i.referencedFiles=void 0,i.typeReferenceDirectives=void 0,i.libReferenceDirectives=void 0,i.amdDependencies=void 0,i.commentDirectives=void 0,i.identifiers=void 0,i.packageJsonLocations=void 0,i.packageJsonScope=void 0,i.imports=void 0,i.moduleAugmentations=void 0,i.ambientModuleNames=void 0,i.classifiableNames=void 0,i.impliedNodeFormat=void 0,i},updateSourceFile:function updateSourceFile2(e,t,n=e.isDeclarationFile,r=e.referencedFiles,i=e.typeReferenceDirectives,o=e.hasNoDefaultLib,a=e.libReferenceDirectives){return e.statements!==t||e.isDeclarationFile!==n||e.referencedFiles!==r||e.typeReferenceDirectives!==i||e.hasNoDefaultLib!==o||e.libReferenceDirectives!==a?update(function cloneSourceFileWithChanges(e,t,n,r,i,o,a){const s=cloneSourceFile(e);return s.statements=createNodeArray(t),s.isDeclarationFile=n,s.referencedFiles=r,s.typeReferenceDirectives=i,s.hasNoDefaultLib=o,s.libReferenceDirectives=a,s.transformFlags=propagateChildrenFlags(s.statements)|propagateChildFlags(s.endOfFileToken),s}(e,t,n,r,i,o,a),e):e},createRedirectedSourceFile,createBundle,updateBundle:function updateBundle(e,t){return e.sourceFiles!==t?update(createBundle(t),e):e},createSyntheticExpression:function createSyntheticExpression(e,t=!1,n){const r=createBaseNode(238);return r.type=e,r.isSpread=t,r.tupleNameSource=n,r},createSyntaxList:function createSyntaxList3(e){const t=createBaseNode(353);return t._children=e,t},createNotEmittedStatement:function createNotEmittedStatement(e){const t=createBaseNode(354);return t.original=e,setTextRange(t,e),t},createNotEmittedTypeElement:function createNotEmittedTypeElement(){return createBaseNode(355)},createPartiallyEmittedExpression,updatePartiallyEmittedExpression,createCommaListExpression,updateCommaListExpression:function updateCommaListExpression(e,t){return e.elements!==t?update(createCommaListExpression(t),e):e},createSyntheticReferenceExpression,updateSyntheticReferenceExpression:function updateSyntheticReferenceExpression(e,t,n){return e.expression!==t||e.thisArg!==n?update(createSyntheticReferenceExpression(t,n),e):e},cloneNode,get createComma(){return o(28)},get createAssignment(){return o(64)},get createLogicalOr(){return o(57)},get createLogicalAnd(){return o(56)},get createBitwiseOr(){return o(52)},get createBitwiseXor(){return o(53)},get createBitwiseAnd(){return o(51)},get createStrictEquality(){return o(37)},get createStrictInequality(){return o(38)},get createEquality(){return o(35)},get createInequality(){return o(36)},get createLessThan(){return o(30)},get createLessThanEquals(){return o(33)},get createGreaterThan(){return o(32)},get createGreaterThanEquals(){return o(34)},get createLeftShift(){return o(48)},get createRightShift(){return o(49)},get createUnsignedRightShift(){return o(50)},get createAdd(){return o(40)},get createSubtract(){return o(41)},get createMultiply(){return o(42)},get createDivide(){return o(44)},get createModulo(){return o(45)},get createExponent(){return o(43)},get createPrefixPlus(){return a(40)},get createPrefixMinus(){return a(41)},get createPrefixIncrement(){return a(46)},get createPrefixDecrement(){return a(47)},get createBitwiseNot(){return a(55)},get createLogicalNot(){return a(54)},get createPostfixIncrement(){return s(46)},get createPostfixDecrement(){return s(47)},createImmediatelyInvokedFunctionExpression:function createImmediatelyInvokedFunctionExpression(e,t,n){return createCallExpression(createFunctionExpression(void 0,void 0,void 0,void 0,t?[t]:[],void 0,createBlock(e,!0)),void 0,n?[n]:[])},createImmediatelyInvokedArrowFunction:function createImmediatelyInvokedArrowFunction(e,t,n){return createCallExpression(createArrowFunction(void 0,void 0,t?[t]:[],void 0,void 0,createBlock(e,!0)),void 0,n?[n]:[])},createVoidZero,createExportDefault:function createExportDefault(e){return createExportAssignment2(void 0,!1,e)},createExternalModuleExport:function createExternalModuleExport(e){return createExportDeclaration(void 0,!1,createNamedExports([createExportSpecifier(!1,void 0,e)]))},createTypeCheck:function createTypeCheck(e,t){return"null"===t?T.createStrictEquality(e,createNull()):"undefined"===t?T.createStrictEquality(e,createVoidZero()):T.createStrictEquality(createTypeOfExpression(e),createStringLiteral(t))},createIsNotTypeCheck:function createIsNotTypeCheck(e,t){return"null"===t?T.createStrictInequality(e,createNull()):"undefined"===t?T.createStrictInequality(e,createVoidZero()):T.createStrictInequality(createTypeOfExpression(e),createStringLiteral(t))},createMethodCall,createGlobalMethodCall,createFunctionBindCall:function createFunctionBindCall(e,t,n){return createMethodCall(e,"bind",[t,...n])},createFunctionCallCall:function createFunctionCallCall(e,t,n){return createMethodCall(e,"call",[t,...n])},createFunctionApplyCall:function createFunctionApplyCall(e,t,n){return createMethodCall(e,"apply",[t,n])},createArraySliceCall:function createArraySliceCall(e,t){return createMethodCall(e,"slice",void 0===t?[]:[asExpression(t)])},createArrayConcatCall:function createArrayConcatCall(e,t){return createMethodCall(e,"concat",t)},createObjectDefinePropertyCall:function createObjectDefinePropertyCall(e,t,n){return createGlobalMethodCall("Object","defineProperty",[e,asExpression(t),n])},createObjectGetOwnPropertyDescriptorCall:function createObjectGetOwnPropertyDescriptorCall(e,t){return createGlobalMethodCall("Object","getOwnPropertyDescriptor",[e,asExpression(t)])},createReflectGetCall:function createReflectGetCall(e,t,n){return createGlobalMethodCall("Reflect","get",n?[e,t,n]:[e,t])},createReflectSetCall:function createReflectSetCall(e,t,n,r){return createGlobalMethodCall("Reflect","set",r?[e,t,n,r]:[e,t,n])},createPropertyDescriptor:function createPropertyDescriptor(e,t){const n=[];tryAddPropertyAssignment(n,"enumerable",asExpression(e.enumerable)),tryAddPropertyAssignment(n,"configurable",asExpression(e.configurable));let r=tryAddPropertyAssignment(n,"writable",asExpression(e.writable));r=tryAddPropertyAssignment(n,"value",e.value)||r;let i=tryAddPropertyAssignment(n,"get",e.get);return i=tryAddPropertyAssignment(n,"set",e.set)||i,h.assert(!(r&&i),"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."),createObjectLiteralExpression(n,!t)},createCallBinding:function createCallBinding(e,t,n,i=!1){const o=skipOuterExpressions(e,63);let a,s;isSuperProperty(o)?(a=createThis(),s=o):isSuperKeyword(o)?(a=createThis(),s=void 0!==n&&n<2?setTextRange(createIdentifier("_super"),o):o):8192&getEmitFlags(o)?(a=createVoidZero(),s=r().parenthesizeLeftSideOfAccess(o,!1)):isPropertyAccessExpression(o)?shouldBeCapturedInTempVariable(o.expression,i)?(a=createTempVariable(t),s=createPropertyAccessExpression(setTextRange(T.createAssignment(a,o.expression),o.expression),o.name),setTextRange(s,o)):(a=o.expression,s=o):isElementAccessExpression(o)?shouldBeCapturedInTempVariable(o.expression,i)?(a=createTempVariable(t),s=createElementAccessExpression(setTextRange(T.createAssignment(a,o.expression),o.expression),o.argumentExpression),setTextRange(s,o)):(a=o.expression,s=o):(a=createVoidZero(),s=r().parenthesizeLeftSideOfAccess(e,!1));return{target:s,thisArg:a}},createAssignmentTargetWrapper:function createAssignmentTargetWrapper(e,t){return createPropertyAccessExpression(createParenthesizedExpression(createObjectLiteralExpression([createSetAccessorDeclaration(void 0,"value",[createParameterDeclaration(void 0,void 0,e,void 0,void 0,void 0)],createBlock([createExpressionStatement(t)]))])),"value")},inlineExpressions:function inlineExpressions(e){return e.length>10?createCommaListExpression(e):reduceLeft(e,T.createComma)},getInternalName:function getInternalName(e,t,n){return getName(e,t,n,98304)},getLocalName:function getLocalName(e,t,n,r){return getName(e,t,n,32768,r)},getExportName,getDeclarationName:function getDeclarationName(e,t,n){return getName(e,t,n)},getNamespaceMemberName,getExternalModuleOrNamespaceExportName:function getExternalModuleOrNamespaceExportName(e,t,n,r){if(e&&hasSyntacticModifier(t,32))return getNamespaceMemberName(e,getName(t),n,r);return getExportName(t,n,r)},restoreOuterExpressions:function restoreOuterExpressions(e,t,n=63){if(e&&isOuterExpression(e,n)&&!function isIgnorableParen(e){return isParenthesizedExpression(e)&&nodeIsSynthesized(e)&&nodeIsSynthesized(getSourceMapRange(e))&&nodeIsSynthesized(getCommentRange(e))&&!some(getSyntheticLeadingComments(e))&&!some(getSyntheticTrailingComments(e))}(e))return function updateOuterExpression(e,t){switch(e.kind){case 218:return updateParenthesizedExpression(e,t);case 217:return updateTypeAssertion(e,e.type,t);case 235:return updateAsExpression(e,t,e.type);case 239:return updateSatisfiesExpression(e,t,e.type);case 236:return updateNonNullExpression(e,t);case 234:return updateExpressionWithTypeArguments(e,t,e.typeArguments);case 356:return updatePartiallyEmittedExpression(e,t)}}(e,restoreOuterExpressions(e.expression,t));return t},restoreEnclosingLabel:function restoreEnclosingLabel(e,t,n){if(!t)return e;const r=updateLabeledStatement(t,t.label,isLabeledStatement(t.statement)?restoreEnclosingLabel(e,t.statement):e);n&&n(t);return r},createUseStrictPrologue,copyPrologue:function copyPrologue(e,t,n,r){const i=copyStandardPrologue(e,t,0,n);return copyCustomPrologue(e,t,i,r)},copyStandardPrologue,copyCustomPrologue,ensureUseStrict:function ensureUseStrict(e){if(!findUseStrictPrologue(e))return setTextRange(createNodeArray([createUseStrictPrologue(),...e]),e);return e},liftToBlock:function liftToBlock(e){return h.assert(every(e,isStatementOrBlock),"Cannot lift nodes to a Block."),singleOrUndefined(e)||createBlock(e)},mergeLexicalEnvironment:function mergeLexicalEnvironment(e,t){if(!some(t))return e;const n=findSpanEnd(e,isPrologueDirective,0),r=findSpanEnd(e,isHoistedFunction,n),i=findSpanEnd(e,isHoistedVariableStatement,r),o=findSpanEnd(t,isPrologueDirective,0),a=findSpanEnd(t,isHoistedFunction,o),s=findSpanEnd(t,isHoistedVariableStatement,a),c=findSpanEnd(t,isCustomPrologue,s);h.assert(c===t.length,"Expected declarations to be valid standard or custom prologues");const l=isNodeArray(e)?e.slice():e;c>s&&l.splice(i,0,...t.slice(s,c));s>a&&l.splice(r,0,...t.slice(a,s));a>o&&l.splice(n,0,...t.slice(o,a));if(o>0)if(0===n)l.splice(0,0,...t.slice(0,o));else{const r=new Map;for(let t=0;t=0;e--){const n=t[e];r.has(n.expression.text)||l.unshift(n)}}if(isNodeArray(e))return setTextRange(createNodeArray(l,e.hasTrailingComma),e);return e},replaceModifiers:function replaceModifiers(e,t){let n;n="number"==typeof t?createModifiersFromModifierFlags(t):t;return isTypeParameterDeclaration(e)?updateTypeParameterDeclaration(e,n,e.name,e.constraint,e.default):isParameter(e)?updateParameterDeclaration(e,n,e.dotDotDotToken,e.name,e.questionToken,e.type,e.initializer):isConstructorTypeNode(e)?updateConstructorTypeNode1(e,n,e.typeParameters,e.parameters,e.type):isPropertySignature(e)?updatePropertySignature(e,n,e.name,e.questionToken,e.type):isPropertyDeclaration(e)?updatePropertyDeclaration2(e,n,e.name,e.questionToken??e.exclamationToken,e.type,e.initializer):isMethodSignature(e)?updateMethodSignature(e,n,e.name,e.questionToken,e.typeParameters,e.parameters,e.type):isMethodDeclaration(e)?updateMethodDeclaration(e,n,e.asteriskToken,e.name,e.questionToken,e.typeParameters,e.parameters,e.type,e.body):isConstructorDeclaration(e)?updateConstructorDeclaration(e,n,e.parameters,e.body):isGetAccessorDeclaration(e)?updateGetAccessorDeclaration(e,n,e.name,e.parameters,e.type,e.body):isSetAccessorDeclaration(e)?updateSetAccessorDeclaration(e,n,e.name,e.parameters,e.body):isIndexSignatureDeclaration(e)?updateIndexSignature(e,n,e.parameters,e.type):isFunctionExpression(e)?updateFunctionExpression(e,n,e.asteriskToken,e.name,e.typeParameters,e.parameters,e.type,e.body):isArrowFunction(e)?updateArrowFunction(e,n,e.typeParameters,e.parameters,e.type,e.equalsGreaterThanToken,e.body):isClassExpression(e)?updateClassExpression(e,n,e.name,e.typeParameters,e.heritageClauses,e.members):isVariableStatement(e)?updateVariableStatement(e,n,e.declarationList):isFunctionDeclaration(e)?updateFunctionDeclaration(e,n,e.asteriskToken,e.name,e.typeParameters,e.parameters,e.type,e.body):isClassDeclaration(e)?updateClassDeclaration(e,n,e.name,e.typeParameters,e.heritageClauses,e.members):isInterfaceDeclaration(e)?updateInterfaceDeclaration(e,n,e.name,e.typeParameters,e.heritageClauses,e.members):isTypeAliasDeclaration(e)?updateTypeAliasDeclaration(e,n,e.name,e.typeParameters,e.type):isEnumDeclaration(e)?updateEnumDeclaration(e,n,e.name,e.members):isModuleDeclaration(e)?updateModuleDeclaration(e,n,e.name,e.body):isImportEqualsDeclaration(e)?updateImportEqualsDeclaration(e,n,e.isTypeOnly,e.name,e.moduleReference):isImportDeclaration(e)?updateImportDeclaration(e,n,e.importClause,e.moduleSpecifier,e.attributes):isExportAssignment(e)?updateExportAssignment(e,n,e.expression):isExportDeclaration(e)?updateExportDeclaration(e,n,e.isTypeOnly,e.exportClause,e.moduleSpecifier,e.attributes):h.assertNever(e)},replaceDecoratorsAndModifiers:function replaceDecoratorsAndModifiers(e,t){return isParameter(e)?updateParameterDeclaration(e,t,e.dotDotDotToken,e.name,e.questionToken,e.type,e.initializer):isPropertyDeclaration(e)?updatePropertyDeclaration2(e,t,e.name,e.questionToken??e.exclamationToken,e.type,e.initializer):isMethodDeclaration(e)?updateMethodDeclaration(e,t,e.asteriskToken,e.name,e.questionToken,e.typeParameters,e.parameters,e.type,e.body):isGetAccessorDeclaration(e)?updateGetAccessorDeclaration(e,t,e.name,e.parameters,e.type,e.body):isSetAccessorDeclaration(e)?updateSetAccessorDeclaration(e,t,e.name,e.parameters,e.body):isClassExpression(e)?updateClassExpression(e,t,e.name,e.typeParameters,e.heritageClauses,e.members):isClassDeclaration(e)?updateClassDeclaration(e,t,e.name,e.typeParameters,e.heritageClauses,e.members):h.assertNever(e)},replacePropertyName:function replacePropertyName(e,t){switch(e.kind){case 178:return updateGetAccessorDeclaration(e,e.modifiers,t,e.parameters,e.type,e.body);case 179:return updateSetAccessorDeclaration(e,e.modifiers,t,e.parameters,e.body);case 175:return updateMethodDeclaration(e,e.modifiers,e.asteriskToken,t,e.questionToken,e.typeParameters,e.parameters,e.type,e.body);case 174:return updateMethodSignature(e,e.modifiers,t,e.questionToken,e.typeParameters,e.parameters,e.type);case 173:return updatePropertyDeclaration2(e,e.modifiers,t,e.questionToken??e.exclamationToken,e.type,e.initializer);case 172:return updatePropertySignature(e,e.modifiers,t,e.questionToken,e.type);case 304:return updatePropertyAssignment(e,t,e.initializer)}}};return forEach(Rr,e=>e(T)),T;function createNodeArray(e,t){if(void 0===e||e===l)e=[];else if(isNodeArray(e)){if(void 0===t||e.hasTrailingComma===t)return void 0===e.transformFlags&&aggregateChildrenFlags(e),h.attachNodeArrayDebugInfo(e),e;const n=e.slice();return n.pos=e.pos,n.end=e.end,n.hasTrailingComma=t,n.transformFlags=e.transformFlags,h.attachNodeArrayDebugInfo(n),n}const n=e.length,r=n>=1&&n<=4?e.slice():e;return r.pos=-1,r.end=-1,r.hasTrailingComma=!!t,r.transformFlags=0,aggregateChildrenFlags(r),h.attachNodeArrayDebugInfo(r),r}function createBaseNode(e){return t.createBaseNode(e)}function createBaseDeclaration(e){const t=createBaseNode(e);return t.symbol=void 0,t.localSymbol=void 0,t}function finishUpdateBaseSignatureDeclaration(e,t){return e!==t&&(e.typeArguments=t.typeArguments),update(e,t)}function createNumericLiteral(e,t=0){const n="number"==typeof e?e+"":e;h.assert(45!==n.charCodeAt(0),"Negative numbers should be created in combination with createPrefixUnaryExpression");const r=createBaseDeclaration(9);return r.text=n,r.numericLiteralFlags=t,384&t&&(r.transformFlags|=1024),r}function createBigIntLiteral(e){const t=createBaseToken(10);return t.text="string"==typeof e?e:pseudoBigIntToString(e)+"n",t.transformFlags|=32,t}function createBaseStringLiteral(e,t){const n=createBaseDeclaration(11);return n.text=e,n.singleQuote=t,n}function createStringLiteral(e,t,n){const r=createBaseStringLiteral(e,t);return r.hasExtendedUnicodeEscape=n,n&&(r.transformFlags|=1024),r}function createRegularExpressionLiteral(e){const t=createBaseToken(14);return t.text=e,t}function createBaseIdentifier(e){const n=t.createBaseIdentifierNode(80);return n.escapedText=e,n.jsDoc=void 0,n.flowNode=void 0,n.symbol=void 0,n}function createBaseGeneratedIdentifier(e,t,n,r){const i=createBaseIdentifier(escapeLeadingUnderscores(e));return setIdentifierAutoGenerate(i,{flags:t,id:Lr,prefix:n,suffix:r}),Lr++,i}function createIdentifier(e,t,n){void 0===t&&e&&(t=stringToToken(e)),80===t&&(t=void 0);const r=createBaseIdentifier(escapeLeadingUnderscores(e));return n&&(r.flags|=256),"await"===r.escapedText&&(r.transformFlags|=67108864),256&r.flags&&(r.transformFlags|=1024),r}function createTempVariable(e,t,n,r){let i=1;t&&(i|=8);const o=createBaseGeneratedIdentifier("",i,n,r);return e&&e(o),o}function getGeneratedNameForNode(e,t=0,n,r){h.assert(!(7&t),"Argument out of range: flags");(n||r)&&(t|=16);const i=createBaseGeneratedIdentifier(e?isMemberName(e)?formatGeneratedName(!1,n,e,r,idText):`generated@${getNodeId(e)}`:"",4|t,n,r);return i.original=e,i}function createBasePrivateIdentifier(e){const n=t.createBasePrivateIdentifierNode(81);return n.escapedText=e,n.transformFlags|=16777216,n}function createBaseGeneratedPrivateIdentifier(e,t,n,r){const i=createBasePrivateIdentifier(escapeLeadingUnderscores(e));return setIdentifierAutoGenerate(i,{flags:t,id:Lr,prefix:n,suffix:r}),Lr++,i}function createBaseToken(e){return t.createBaseTokenNode(e)}function createToken(e){h.assert(e>=0&&e<=166,"Invalid token"),h.assert(e<=15||e>=18,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),h.assert(e<=9||e>=15,"Invalid token. Use 'createLiteralLikeNode' to create literals."),h.assert(80!==e,"Invalid token. Use 'createIdentifier' to create identifiers");const t=createBaseToken(e);let n=0;switch(e){case 134:n=384;break;case 160:n=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:n=1;break;case 108:n=134218752,t.flowNode=void 0;break;case 126:n=1024;break;case 129:n=16777216;break;case 110:n=16384,t.flowNode=void 0}return n&&(t.transformFlags|=n),t}function createThis(){return createToken(110)}function createNull(){return createToken(106)}function createTrue(){return createToken(112)}function createFalse(){return createToken(97)}function createModifier(e){return createToken(e)}function createModifiersFromModifierFlags(e){const t=[];return 32&e&&t.push(createModifier(95)),128&e&&t.push(createModifier(138)),2048&e&&t.push(createModifier(90)),4096&e&&t.push(createModifier(87)),1&e&&t.push(createModifier(125)),2&e&&t.push(createModifier(123)),4&e&&t.push(createModifier(124)),64&e&&t.push(createModifier(128)),256&e&&t.push(createModifier(126)),16&e&&t.push(createModifier(164)),8&e&&t.push(createModifier(148)),512&e&&t.push(createModifier(129)),1024&e&&t.push(createModifier(134)),8192&e&&t.push(createModifier(103)),16384&e&&t.push(createModifier(147)),t.length?t:void 0}function createQualifiedName(e,t){const n=createBaseNode(167);return n.left=e,n.right=asName(t),n.transformFlags|=propagateChildFlags(n.left)|propagateIdentifierNameFlags(n.right),n.flowNode=void 0,n}function createComputedPropertyName(e){const t=createBaseNode(168);return t.expression=r().parenthesizeExpressionOfComputedPropertyName(e),t.transformFlags|=132096|propagateChildFlags(t.expression),t}function createTypeParameterDeclaration(e,t,n,r){const i=createBaseDeclaration(169);return i.modifiers=asNodeArray(e),i.name=asName(t),i.constraint=n,i.default=r,i.transformFlags=1,i.expression=void 0,i.jsDoc=void 0,i}function updateTypeParameterDeclaration(e,t,n,r,i){return e.modifiers!==t||e.name!==n||e.constraint!==r||e.default!==i?update(createTypeParameterDeclaration(t,n,r,i),e):e}function createParameterDeclaration(e,t,n,r,i,o){const a=createBaseDeclaration(170);return a.modifiers=asNodeArray(e),a.dotDotDotToken=t,a.name=asName(n),a.questionToken=r,a.type=i,a.initializer=asInitializer(o),isThisIdentifier(a.name)?a.transformFlags=1:a.transformFlags=propagateChildrenFlags(a.modifiers)|propagateChildFlags(a.dotDotDotToken)|propagateNameFlags(a.name)|propagateChildFlags(a.questionToken)|propagateChildFlags(a.initializer)|(a.questionToken??a.type?1:0)|(a.dotDotDotToken??a.initializer?1024:0)|(31&modifiersToFlags(a.modifiers)?8192:0),a.jsDoc=void 0,a}function updateParameterDeclaration(e,t,n,r,i,o,a){return e.modifiers!==t||e.dotDotDotToken!==n||e.name!==r||e.questionToken!==i||e.type!==o||e.initializer!==a?update(createParameterDeclaration(t,n,r,i,o,a),e):e}function createDecorator(e){const t=createBaseNode(171);return t.expression=r().parenthesizeLeftSideOfAccess(e,!1),t.transformFlags|=33562625|propagateChildFlags(t.expression),t}function createPropertySignature(e,t,n,r){const i=createBaseDeclaration(172);return i.modifiers=asNodeArray(e),i.name=asName(t),i.type=r,i.questionToken=n,i.transformFlags=1,i.initializer=void 0,i.jsDoc=void 0,i}function updatePropertySignature(e,t,n,r,i){return e.modifiers!==t||e.name!==n||e.questionToken!==r||e.type!==i?function finishUpdatePropertySignature(e,t){e!==t&&(e.initializer=t.initializer);return update(e,t)}(createPropertySignature(t,n,r,i),e):e}function createPropertyDeclaration(e,t,n,r,i){const o=createBaseDeclaration(173);o.modifiers=asNodeArray(e),o.name=asName(t),o.questionToken=n&&isQuestionToken(n)?n:void 0,o.exclamationToken=n&&isExclamationToken(n)?n:void 0,o.type=r,o.initializer=asInitializer(i);const a=33554432&o.flags||128&modifiersToFlags(o.modifiers);return o.transformFlags=propagateChildrenFlags(o.modifiers)|propagateNameFlags(o.name)|propagateChildFlags(o.initializer)|(a||o.questionToken||o.exclamationToken||o.type?1:0)|(isComputedPropertyName(o.name)||256&modifiersToFlags(o.modifiers)&&o.initializer?8192:0)|16777216,o.jsDoc=void 0,o}function updatePropertyDeclaration2(e,t,n,r,i,o){return e.modifiers!==t||e.name!==n||e.questionToken!==(void 0!==r&&isQuestionToken(r)?r:void 0)||e.exclamationToken!==(void 0!==r&&isExclamationToken(r)?r:void 0)||e.type!==i||e.initializer!==o?update(createPropertyDeclaration(t,n,r,i,o),e):e}function createMethodSignature(e,t,n,r,i,o){const a=createBaseDeclaration(174);return a.modifiers=asNodeArray(e),a.name=asName(t),a.questionToken=n,a.typeParameters=asNodeArray(r),a.parameters=asNodeArray(i),a.type=o,a.transformFlags=1,a.jsDoc=void 0,a.locals=void 0,a.nextContainer=void 0,a.typeArguments=void 0,a}function updateMethodSignature(e,t,n,r,i,o,a){return e.modifiers!==t||e.name!==n||e.questionToken!==r||e.typeParameters!==i||e.parameters!==o||e.type!==a?finishUpdateBaseSignatureDeclaration(createMethodSignature(t,n,r,i,o,a),e):e}function createMethodDeclaration(e,t,n,r,i,o,a,s){const c=createBaseDeclaration(175);if(c.modifiers=asNodeArray(e),c.asteriskToken=t,c.name=asName(n),c.questionToken=r,c.exclamationToken=void 0,c.typeParameters=asNodeArray(i),c.parameters=createNodeArray(o),c.type=a,c.body=s,c.body){const e=1024&modifiersToFlags(c.modifiers),t=!!c.asteriskToken,n=e&&t;c.transformFlags=propagateChildrenFlags(c.modifiers)|propagateChildFlags(c.asteriskToken)|propagateNameFlags(c.name)|propagateChildFlags(c.questionToken)|propagateChildrenFlags(c.typeParameters)|propagateChildrenFlags(c.parameters)|propagateChildFlags(c.type)|-67108865&propagateChildFlags(c.body)|(n?128:e?256:t?2048:0)|(c.questionToken||c.typeParameters||c.type?1:0)|1024}else c.transformFlags=1;return c.typeArguments=void 0,c.jsDoc=void 0,c.locals=void 0,c.nextContainer=void 0,c.flowNode=void 0,c.endFlowNode=void 0,c.returnFlowNode=void 0,c}function updateMethodDeclaration(e,t,n,r,i,o,a,s,c){return e.modifiers!==t||e.asteriskToken!==n||e.name!==r||e.questionToken!==i||e.typeParameters!==o||e.parameters!==a||e.type!==s||e.body!==c?function finishUpdateMethodDeclaration(e,t){e!==t&&(e.exclamationToken=t.exclamationToken);return update(e,t)}(createMethodDeclaration(t,n,r,i,o,a,s,c),e):e}function createClassStaticBlockDeclaration(e){const t=createBaseDeclaration(176);return t.body=e,t.transformFlags=16777216|propagateChildFlags(e),t.modifiers=void 0,t.jsDoc=void 0,t.locals=void 0,t.nextContainer=void 0,t.endFlowNode=void 0,t.returnFlowNode=void 0,t}function createConstructorDeclaration(e,t,n){const r=createBaseDeclaration(177);return r.modifiers=asNodeArray(e),r.parameters=createNodeArray(t),r.body=n,r.body?r.transformFlags=propagateChildrenFlags(r.modifiers)|propagateChildrenFlags(r.parameters)|-67108865&propagateChildFlags(r.body)|1024:r.transformFlags=1,r.typeParameters=void 0,r.type=void 0,r.typeArguments=void 0,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.endFlowNode=void 0,r.returnFlowNode=void 0,r}function updateConstructorDeclaration(e,t,n,r){return e.modifiers!==t||e.parameters!==n||e.body!==r?function finishUpdateConstructorDeclaration(e,t){e!==t&&(e.typeParameters=t.typeParameters,e.type=t.type);return finishUpdateBaseSignatureDeclaration(e,t)}(createConstructorDeclaration(t,n,r),e):e}function createGetAccessorDeclaration(e,t,n,r,i){const o=createBaseDeclaration(178);return o.modifiers=asNodeArray(e),o.name=asName(t),o.parameters=createNodeArray(n),o.type=r,o.body=i,o.body?o.transformFlags=propagateChildrenFlags(o.modifiers)|propagateNameFlags(o.name)|propagateChildrenFlags(o.parameters)|propagateChildFlags(o.type)|-67108865&propagateChildFlags(o.body)|(o.type?1:0):o.transformFlags=1,o.typeArguments=void 0,o.typeParameters=void 0,o.jsDoc=void 0,o.locals=void 0,o.nextContainer=void 0,o.flowNode=void 0,o.endFlowNode=void 0,o.returnFlowNode=void 0,o}function updateGetAccessorDeclaration(e,t,n,r,i,o){return e.modifiers!==t||e.name!==n||e.parameters!==r||e.type!==i||e.body!==o?function finishUpdateGetAccessorDeclaration(e,t){e!==t&&(e.typeParameters=t.typeParameters);return finishUpdateBaseSignatureDeclaration(e,t)}(createGetAccessorDeclaration(t,n,r,i,o),e):e}function createSetAccessorDeclaration(e,t,n,r){const i=createBaseDeclaration(179);return i.modifiers=asNodeArray(e),i.name=asName(t),i.parameters=createNodeArray(n),i.body=r,i.body?i.transformFlags=propagateChildrenFlags(i.modifiers)|propagateNameFlags(i.name)|propagateChildrenFlags(i.parameters)|-67108865&propagateChildFlags(i.body)|(i.type?1:0):i.transformFlags=1,i.typeArguments=void 0,i.typeParameters=void 0,i.type=void 0,i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i.flowNode=void 0,i.endFlowNode=void 0,i.returnFlowNode=void 0,i}function updateSetAccessorDeclaration(e,t,n,r,i){return e.modifiers!==t||e.name!==n||e.parameters!==r||e.body!==i?function finishUpdateSetAccessorDeclaration(e,t){e!==t&&(e.typeParameters=t.typeParameters,e.type=t.type);return finishUpdateBaseSignatureDeclaration(e,t)}(createSetAccessorDeclaration(t,n,r,i),e):e}function createCallSignature(e,t,n){const r=createBaseDeclaration(180);return r.typeParameters=asNodeArray(e),r.parameters=asNodeArray(t),r.type=n,r.transformFlags=1,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.typeArguments=void 0,r}function createConstructSignature(e,t,n){const r=createBaseDeclaration(181);return r.typeParameters=asNodeArray(e),r.parameters=asNodeArray(t),r.type=n,r.transformFlags=1,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.typeArguments=void 0,r}function createIndexSignature(e,t,n){const r=createBaseDeclaration(182);return r.modifiers=asNodeArray(e),r.parameters=asNodeArray(t),r.type=n,r.transformFlags=1,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.typeArguments=void 0,r}function updateIndexSignature(e,t,n,r){return e.parameters!==n||e.type!==r||e.modifiers!==t?finishUpdateBaseSignatureDeclaration(createIndexSignature(t,n,r),e):e}function createTemplateLiteralTypeSpan(e,t){const n=createBaseNode(205);return n.type=e,n.literal=t,n.transformFlags=1,n}function createTypePredicateNode(e,t,n){const r=createBaseNode(183);return r.assertsModifier=e,r.parameterName=asName(t),r.type=n,r.transformFlags=1,r}function createTypeReferenceNode(e,t){const n=createBaseNode(184);return n.typeName=asName(e),n.typeArguments=t&&r().parenthesizeTypeArguments(createNodeArray(t)),n.transformFlags=1,n}function createFunctionTypeNode(e,t,n){const r=createBaseDeclaration(185);return r.typeParameters=asNodeArray(e),r.parameters=asNodeArray(t),r.type=n,r.transformFlags=1,r.modifiers=void 0,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.typeArguments=void 0,r}function createConstructorTypeNode(...e){return 4===e.length?createConstructorTypeNode1(...e):3===e.length?function createConstructorTypeNode2(e,t,n){return createConstructorTypeNode1(void 0,e,t,n)}(...e):h.fail("Incorrect number of arguments specified.")}function createConstructorTypeNode1(e,t,n,r){const i=createBaseDeclaration(186);return i.modifiers=asNodeArray(e),i.typeParameters=asNodeArray(t),i.parameters=asNodeArray(n),i.type=r,i.transformFlags=1,i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i.typeArguments=void 0,i}function updateConstructorTypeNode1(e,t,n,r,i){return e.modifiers!==t||e.typeParameters!==n||e.parameters!==r||e.type!==i?finishUpdateBaseSignatureDeclaration(createConstructorTypeNode(t,n,r,i),e):e}function createTypeQueryNode(e,t){const n=createBaseNode(187);return n.exprName=e,n.typeArguments=t&&r().parenthesizeTypeArguments(t),n.transformFlags=1,n}function createTypeLiteralNode(e){const t=createBaseDeclaration(188);return t.members=createNodeArray(e),t.transformFlags=1,t}function createArrayTypeNode(e){const t=createBaseNode(189);return t.elementType=r().parenthesizeNonArrayTypeOfPostfixType(e),t.transformFlags=1,t}function createTupleTypeNode(e){const t=createBaseNode(190);return t.elements=createNodeArray(r().parenthesizeElementTypesOfTupleType(e)),t.transformFlags=1,t}function createNamedTupleMember(e,t,n,r){const i=createBaseDeclaration(203);return i.dotDotDotToken=e,i.name=t,i.questionToken=n,i.type=r,i.transformFlags=1,i.jsDoc=void 0,i}function createOptionalTypeNode(e){const t=createBaseNode(191);return t.type=r().parenthesizeTypeOfOptionalType(e),t.transformFlags=1,t}function createRestTypeNode(e){const t=createBaseNode(192);return t.type=e,t.transformFlags=1,t}function createUnionOrIntersectionTypeNode(e,t,n){const r=createBaseNode(e);return r.types=T.createNodeArray(n(t)),r.transformFlags=1,r}function updateUnionOrIntersectionTypeNode(e,t,n){return e.types!==t?update(createUnionOrIntersectionTypeNode(e.kind,t,n),e):e}function createConditionalTypeNode(e,t,n,i){const o=createBaseNode(195);return o.checkType=r().parenthesizeCheckTypeOfConditionalType(e),o.extendsType=r().parenthesizeExtendsTypeOfConditionalType(t),o.trueType=n,o.falseType=i,o.transformFlags=1,o.locals=void 0,o.nextContainer=void 0,o}function createInferTypeNode(e){const t=createBaseNode(196);return t.typeParameter=e,t.transformFlags=1,t}function createTemplateLiteralType(e,t){const n=createBaseNode(204);return n.head=e,n.templateSpans=createNodeArray(t),n.transformFlags=1,n}function createImportTypeNode(e,t,n,i,o=!1){const a=createBaseNode(206);return a.argument=e,a.attributes=t,a.assertions&&a.assertions.assertClause&&a.attributes&&(a.assertions.assertClause=a.attributes),a.qualifier=n,a.typeArguments=i&&r().parenthesizeTypeArguments(i),a.isTypeOf=o,a.transformFlags=1,a}function createParenthesizedType(e){const t=createBaseNode(197);return t.type=e,t.transformFlags=1,t}function createTypeOperatorNode(e,t){const n=createBaseNode(199);return n.operator=e,n.type=148===e?r().parenthesizeOperandOfReadonlyTypeOperator(t):r().parenthesizeOperandOfTypeOperator(t),n.transformFlags=1,n}function createIndexedAccessTypeNode(e,t){const n=createBaseNode(200);return n.objectType=r().parenthesizeNonArrayTypeOfPostfixType(e),n.indexType=t,n.transformFlags=1,n}function createMappedTypeNode(e,t,n,r,i,o){const a=createBaseDeclaration(201);return a.readonlyToken=e,a.typeParameter=t,a.nameType=n,a.questionToken=r,a.type=i,a.members=o&&createNodeArray(o),a.transformFlags=1,a.locals=void 0,a.nextContainer=void 0,a}function createLiteralTypeNode(e){const t=createBaseNode(202);return t.literal=e,t.transformFlags=1,t}function createObjectBindingPattern(e){const t=createBaseNode(207);return t.elements=createNodeArray(e),t.transformFlags|=525312|propagateChildrenFlags(t.elements),32768&t.transformFlags&&(t.transformFlags|=65664),t}function createArrayBindingPattern(e){const t=createBaseNode(208);return t.elements=createNodeArray(e),t.transformFlags|=525312|propagateChildrenFlags(t.elements),t}function createBindingElement(e,t,n,r){const i=createBaseDeclaration(209);return i.dotDotDotToken=e,i.propertyName=asName(t),i.name=asName(n),i.initializer=asInitializer(r),i.transformFlags|=propagateChildFlags(i.dotDotDotToken)|propagateNameFlags(i.propertyName)|propagateNameFlags(i.name)|propagateChildFlags(i.initializer)|(i.dotDotDotToken?32768:0)|1024,i.flowNode=void 0,i}function createArrayLiteralExpression(e,t){const n=createBaseNode(210),i=e&&lastOrUndefined(e),o=createNodeArray(e,!(!i||!isOmittedExpression(i))||void 0);return n.elements=r().parenthesizeExpressionsOfCommaDelimitedList(o),n.multiLine=t,n.transformFlags|=propagateChildrenFlags(n.elements),n}function createObjectLiteralExpression(e,t){const n=createBaseDeclaration(211);return n.properties=createNodeArray(e),n.multiLine=t,n.transformFlags|=propagateChildrenFlags(n.properties),n.jsDoc=void 0,n}function createBasePropertyAccessExpression(e,t,n){const r=createBaseDeclaration(212);return r.expression=e,r.questionDotToken=t,r.name=n,r.transformFlags=propagateChildFlags(r.expression)|propagateChildFlags(r.questionDotToken)|(isIdentifier(r.name)?propagateIdentifierNameFlags(r.name):536870912|propagateChildFlags(r.name)),r.jsDoc=void 0,r.flowNode=void 0,r}function createPropertyAccessExpression(e,t){const n=createBasePropertyAccessExpression(r().parenthesizeLeftSideOfAccess(e,!1),void 0,asName(t));return isSuperKeyword(e)&&(n.transformFlags|=384),n}function createPropertyAccessChain(e,t,n){const i=createBasePropertyAccessExpression(r().parenthesizeLeftSideOfAccess(e,!0),t,asName(n));return i.flags|=64,i.transformFlags|=32,i}function updatePropertyAccessChain(e,t,n,r){return h.assert(!!(64&e.flags),"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."),e.expression!==t||e.questionDotToken!==n||e.name!==r?update(createPropertyAccessChain(t,n,r),e):e}function createBaseElementAccessExpression(e,t,n){const r=createBaseDeclaration(213);return r.expression=e,r.questionDotToken=t,r.argumentExpression=n,r.transformFlags|=propagateChildFlags(r.expression)|propagateChildFlags(r.questionDotToken)|propagateChildFlags(r.argumentExpression),r.jsDoc=void 0,r.flowNode=void 0,r}function createElementAccessExpression(e,t){const n=createBaseElementAccessExpression(r().parenthesizeLeftSideOfAccess(e,!1),void 0,asExpression(t));return isSuperKeyword(e)&&(n.transformFlags|=384),n}function createElementAccessChain(e,t,n){const i=createBaseElementAccessExpression(r().parenthesizeLeftSideOfAccess(e,!0),t,asExpression(n));return i.flags|=64,i.transformFlags|=32,i}function updateElementAccessChain(e,t,n,r){return h.assert(!!(64&e.flags),"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."),e.expression!==t||e.questionDotToken!==n||e.argumentExpression!==r?update(createElementAccessChain(t,n,r),e):e}function createBaseCallExpression(e,t,n,r){const i=createBaseDeclaration(214);return i.expression=e,i.questionDotToken=t,i.typeArguments=n,i.arguments=r,i.transformFlags|=propagateChildFlags(i.expression)|propagateChildFlags(i.questionDotToken)|propagateChildrenFlags(i.typeArguments)|propagateChildrenFlags(i.arguments),i.typeArguments&&(i.transformFlags|=1),isSuperProperty(i.expression)&&(i.transformFlags|=16384),i}function createCallExpression(e,t,n){const i=createBaseCallExpression(r().parenthesizeLeftSideOfAccess(e,!1),void 0,asNodeArray(t),r().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(n)));return isImportKeyword(i.expression)&&(i.transformFlags|=8388608),i}function createCallChain(e,t,n,i){const o=createBaseCallExpression(r().parenthesizeLeftSideOfAccess(e,!0),t,asNodeArray(n),r().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(i)));return o.flags|=64,o.transformFlags|=32,o}function updateCallChain(e,t,n,r,i){return h.assert(!!(64&e.flags),"Cannot update a CallExpression using updateCallChain. Use updateCall instead."),e.expression!==t||e.questionDotToken!==n||e.typeArguments!==r||e.arguments!==i?update(createCallChain(t,n,r,i),e):e}function createNewExpression(e,t,n){const i=createBaseDeclaration(215);return i.expression=r().parenthesizeExpressionOfNew(e),i.typeArguments=asNodeArray(t),i.arguments=n?r().parenthesizeExpressionsOfCommaDelimitedList(n):void 0,i.transformFlags|=propagateChildFlags(i.expression)|propagateChildrenFlags(i.typeArguments)|propagateChildrenFlags(i.arguments)|32,i.typeArguments&&(i.transformFlags|=1),i}function createTaggedTemplateExpression(e,t,n){const i=createBaseNode(216);return i.tag=r().parenthesizeLeftSideOfAccess(e,!1),i.typeArguments=asNodeArray(t),i.template=n,i.transformFlags|=propagateChildFlags(i.tag)|propagateChildrenFlags(i.typeArguments)|propagateChildFlags(i.template)|1024,i.typeArguments&&(i.transformFlags|=1),hasInvalidEscape(i.template)&&(i.transformFlags|=128),i}function createTypeAssertion(e,t){const n=createBaseNode(217);return n.expression=r().parenthesizeOperandOfPrefixUnary(t),n.type=e,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.type)|1,n}function updateTypeAssertion(e,t,n){return e.type!==t||e.expression!==n?update(createTypeAssertion(t,n),e):e}function createParenthesizedExpression(e){const t=createBaseNode(218);return t.expression=e,t.transformFlags=propagateChildFlags(t.expression),t.jsDoc=void 0,t}function updateParenthesizedExpression(e,t){return e.expression!==t?update(createParenthesizedExpression(t),e):e}function createFunctionExpression(e,t,n,r,i,o,a){const s=createBaseDeclaration(219);s.modifiers=asNodeArray(e),s.asteriskToken=t,s.name=asName(n),s.typeParameters=asNodeArray(r),s.parameters=createNodeArray(i),s.type=o,s.body=a;const c=1024&modifiersToFlags(s.modifiers),l=!!s.asteriskToken,d=c&&l;return s.transformFlags=propagateChildrenFlags(s.modifiers)|propagateChildFlags(s.asteriskToken)|propagateNameFlags(s.name)|propagateChildrenFlags(s.typeParameters)|propagateChildrenFlags(s.parameters)|propagateChildFlags(s.type)|-67108865&propagateChildFlags(s.body)|(d?128:c?256:l?2048:0)|(s.typeParameters||s.type?1:0)|4194304,s.typeArguments=void 0,s.jsDoc=void 0,s.locals=void 0,s.nextContainer=void 0,s.flowNode=void 0,s.endFlowNode=void 0,s.returnFlowNode=void 0,s}function updateFunctionExpression(e,t,n,r,i,o,a,s){return e.name!==r||e.modifiers!==t||e.asteriskToken!==n||e.typeParameters!==i||e.parameters!==o||e.type!==a||e.body!==s?finishUpdateBaseSignatureDeclaration(createFunctionExpression(t,n,r,i,o,a,s),e):e}function createArrowFunction(e,t,n,i,o,a){const s=createBaseDeclaration(220);s.modifiers=asNodeArray(e),s.typeParameters=asNodeArray(t),s.parameters=createNodeArray(n),s.type=i,s.equalsGreaterThanToken=o??createToken(39),s.body=r().parenthesizeConciseBodyOfArrowFunction(a);const c=1024&modifiersToFlags(s.modifiers);return s.transformFlags=propagateChildrenFlags(s.modifiers)|propagateChildrenFlags(s.typeParameters)|propagateChildrenFlags(s.parameters)|propagateChildFlags(s.type)|propagateChildFlags(s.equalsGreaterThanToken)|-67108865&propagateChildFlags(s.body)|(s.typeParameters||s.type?1:0)|(c?16640:0)|1024,s.typeArguments=void 0,s.jsDoc=void 0,s.locals=void 0,s.nextContainer=void 0,s.flowNode=void 0,s.endFlowNode=void 0,s.returnFlowNode=void 0,s}function updateArrowFunction(e,t,n,r,i,o,a){return e.modifiers!==t||e.typeParameters!==n||e.parameters!==r||e.type!==i||e.equalsGreaterThanToken!==o||e.body!==a?finishUpdateBaseSignatureDeclaration(createArrowFunction(t,n,r,i,o,a),e):e}function createDeleteExpression(e){const t=createBaseNode(221);return t.expression=r().parenthesizeOperandOfPrefixUnary(e),t.transformFlags|=propagateChildFlags(t.expression),t}function createTypeOfExpression(e){const t=createBaseNode(222);return t.expression=r().parenthesizeOperandOfPrefixUnary(e),t.transformFlags|=propagateChildFlags(t.expression),t}function createVoidExpression(e){const t=createBaseNode(223);return t.expression=r().parenthesizeOperandOfPrefixUnary(e),t.transformFlags|=propagateChildFlags(t.expression),t}function createAwaitExpression(e){const t=createBaseNode(224);return t.expression=r().parenthesizeOperandOfPrefixUnary(e),t.transformFlags|=2097536|propagateChildFlags(t.expression),t}function createPrefixUnaryExpression(e,t){const n=createBaseNode(225);return n.operator=e,n.operand=r().parenthesizeOperandOfPrefixUnary(t),n.transformFlags|=propagateChildFlags(n.operand),46!==e&&47!==e||!isIdentifier(n.operand)||isGeneratedIdentifier(n.operand)||isLocalName(n.operand)||(n.transformFlags|=268435456),n}function createPostfixUnaryExpression(e,t){const n=createBaseNode(226);return n.operator=t,n.operand=r().parenthesizeOperandOfPostfixUnary(e),n.transformFlags|=propagateChildFlags(n.operand),!isIdentifier(n.operand)||isGeneratedIdentifier(n.operand)||isLocalName(n.operand)||(n.transformFlags|=268435456),n}function createBinaryExpression(e,t,n){const i=createBaseDeclaration(227),o=function asToken(e){return"number"==typeof e?createToken(e):e}(t),a=o.kind;return i.left=r().parenthesizeLeftSideOfBinary(a,e),i.operatorToken=o,i.right=r().parenthesizeRightSideOfBinary(a,i.left,n),i.transformFlags|=propagateChildFlags(i.left)|propagateChildFlags(i.operatorToken)|propagateChildFlags(i.right),61===a?i.transformFlags|=32:64===a?isObjectLiteralExpression(i.left)?i.transformFlags|=5248|propagateAssignmentPatternFlags(i.left):isArrayLiteralExpression(i.left)&&(i.transformFlags|=5120|propagateAssignmentPatternFlags(i.left)):43===a||68===a?i.transformFlags|=512:isLogicalOrCoalescingAssignmentOperator(a)&&(i.transformFlags|=16),103===a&&isPrivateIdentifier(i.left)&&(i.transformFlags|=536870912),i.jsDoc=void 0,i}function propagateAssignmentPatternFlags(e){return containsObjectRestOrSpread(e)?65536:0}function createConditionalExpression(e,t,n,i,o){const a=createBaseNode(228);return a.condition=r().parenthesizeConditionOfConditionalExpression(e),a.questionToken=t??createToken(58),a.whenTrue=r().parenthesizeBranchOfConditionalExpression(n),a.colonToken=i??createToken(59),a.whenFalse=r().parenthesizeBranchOfConditionalExpression(o),a.transformFlags|=propagateChildFlags(a.condition)|propagateChildFlags(a.questionToken)|propagateChildFlags(a.whenTrue)|propagateChildFlags(a.colonToken)|propagateChildFlags(a.whenFalse),a.flowNodeWhenFalse=void 0,a.flowNodeWhenTrue=void 0,a}function createTemplateExpression(e,t){const n=createBaseNode(229);return n.head=e,n.templateSpans=createNodeArray(t),n.transformFlags|=propagateChildFlags(n.head)|propagateChildrenFlags(n.templateSpans)|1024,n}function checkTemplateLiteralLikeNode(e,t,n,r=0){let i;if(h.assert(!(-7177&r),"Unsupported template flags."),void 0!==n&&n!==t&&(i=function getCookedText(e,t){Or||(Or=createScanner(99,!1,0));switch(e){case 15:Or.setText("`"+t+"`");break;case 16:Or.setText("`"+t+"${");break;case 17:Or.setText("}"+t+"${");break;case 18:Or.setText("}"+t+"`")}let n,r=Or.scan();20===r&&(r=Or.reScanTemplateToken(!1));if(Or.isUnterminated())return Or.setText(void 0),Br;switch(r){case 15:case 16:case 17:case 18:n=Or.getTokenValue()}if(void 0===n||1!==Or.scan())return Or.setText(void 0),Br;return Or.setText(void 0),n}(e,n),"object"==typeof i))return h.fail("Invalid raw text");if(void 0===t){if(void 0===i)return h.fail("Arguments 'text' and 'rawText' may not both be undefined.");t=i}else void 0!==i&&h.assert(t===i,"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");return t}function getTransformFlagsOfTemplateLiteralLike(e){let t=1024;return e&&(t|=128),t}function createTemplateLiteralLikeDeclaration(e,t,n,r){const i=createBaseDeclaration(e);return i.text=t,i.rawText=n,i.templateFlags=7176&r,i.transformFlags=getTransformFlagsOfTemplateLiteralLike(i.templateFlags),i}function createTemplateLiteralLikeNode(e,t,n,r){return 15===e?createTemplateLiteralLikeDeclaration(e,t,n,r):function createTemplateLiteralLikeToken(e,t,n,r){const i=createBaseToken(e);return i.text=t,i.rawText=n,i.templateFlags=7176&r,i.transformFlags=getTransformFlagsOfTemplateLiteralLike(i.templateFlags),i}(e,t,n,r)}function createYieldExpression(e,t){h.assert(!e||!!t,"A `YieldExpression` with an asteriskToken must have an expression.");const n=createBaseNode(230);return n.expression=t&&r().parenthesizeExpressionForDisallowedComma(t),n.asteriskToken=e,n.transformFlags|=1049728|(propagateChildFlags(n.expression)|propagateChildFlags(n.asteriskToken)),n}function createSpreadElement(e){const t=createBaseNode(231);return t.expression=r().parenthesizeExpressionForDisallowedComma(e),t.transformFlags|=33792|propagateChildFlags(t.expression),t}function createClassExpression(e,t,n,r,i){const o=createBaseDeclaration(232);return o.modifiers=asNodeArray(e),o.name=asName(t),o.typeParameters=asNodeArray(n),o.heritageClauses=asNodeArray(r),o.members=createNodeArray(i),o.transformFlags|=propagateChildrenFlags(o.modifiers)|propagateNameFlags(o.name)|propagateChildrenFlags(o.typeParameters)|propagateChildrenFlags(o.heritageClauses)|propagateChildrenFlags(o.members)|(o.typeParameters?1:0)|1024,o.jsDoc=void 0,o}function updateClassExpression(e,t,n,r,i,o){return e.modifiers!==t||e.name!==n||e.typeParameters!==r||e.heritageClauses!==i||e.members!==o?update(createClassExpression(t,n,r,i,o),e):e}function createExpressionWithTypeArguments(e,t){const n=createBaseNode(234);return n.expression=r().parenthesizeLeftSideOfAccess(e,!1),n.typeArguments=t&&r().parenthesizeTypeArguments(t),n.transformFlags|=propagateChildFlags(n.expression)|propagateChildrenFlags(n.typeArguments)|1024,n}function updateExpressionWithTypeArguments(e,t,n){return e.expression!==t||e.typeArguments!==n?update(createExpressionWithTypeArguments(t,n),e):e}function createAsExpression(e,t){const n=createBaseNode(235);return n.expression=e,n.type=t,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.type)|1,n}function updateAsExpression(e,t,n){return e.expression!==t||e.type!==n?update(createAsExpression(t,n),e):e}function createNonNullExpression(e){const t=createBaseNode(236);return t.expression=r().parenthesizeLeftSideOfAccess(e,!1),t.transformFlags|=1|propagateChildFlags(t.expression),t}function updateNonNullExpression(e,t){return isNonNullChain(e)?updateNonNullChain(e,t):e.expression!==t?update(createNonNullExpression(t),e):e}function createSatisfiesExpression(e,t){const n=createBaseNode(239);return n.expression=e,n.type=t,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.type)|1,n}function updateSatisfiesExpression(e,t,n){return e.expression!==t||e.type!==n?update(createSatisfiesExpression(t,n),e):e}function createNonNullChain(e){const t=createBaseNode(236);return t.flags|=64,t.expression=r().parenthesizeLeftSideOfAccess(e,!0),t.transformFlags|=1|propagateChildFlags(t.expression),t}function updateNonNullChain(e,t){return h.assert(!!(64&e.flags),"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."),e.expression!==t?update(createNonNullChain(t),e):e}function createMetaProperty(e,t){const n=createBaseNode(237);switch(n.keywordToken=e,n.name=t,n.transformFlags|=propagateChildFlags(n.name),e){case 105:n.transformFlags|=1024;break;case 102:n.transformFlags|=32;break;default:return h.assertNever(e)}return n.flowNode=void 0,n}function createTemplateSpan(e,t){const n=createBaseNode(240);return n.expression=e,n.literal=t,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.literal)|1024,n}function createBlock(e,t){const n=createBaseNode(242);return n.statements=createNodeArray(e),n.multiLine=t,n.transformFlags|=propagateChildrenFlags(n.statements),n.jsDoc=void 0,n.locals=void 0,n.nextContainer=void 0,n}function createVariableStatement(e,t){const n=createBaseNode(244);return n.modifiers=asNodeArray(e),n.declarationList=isArray(t)?createVariableDeclarationList(t):t,n.transformFlags|=propagateChildrenFlags(n.modifiers)|propagateChildFlags(n.declarationList),128&modifiersToFlags(n.modifiers)&&(n.transformFlags=1),n.jsDoc=void 0,n.flowNode=void 0,n}function updateVariableStatement(e,t,n){return e.modifiers!==t||e.declarationList!==n?update(createVariableStatement(t,n),e):e}function createEmptyStatement(){const e=createBaseNode(243);return e.jsDoc=void 0,e}function createExpressionStatement(e){const t=createBaseNode(245);return t.expression=r().parenthesizeExpressionOfExpressionStatement(e),t.transformFlags|=propagateChildFlags(t.expression),t.jsDoc=void 0,t.flowNode=void 0,t}function createIfStatement(e,t,n){const r=createBaseNode(246);return r.expression=e,r.thenStatement=asEmbeddedStatement(t),r.elseStatement=asEmbeddedStatement(n),r.transformFlags|=propagateChildFlags(r.expression)|propagateChildFlags(r.thenStatement)|propagateChildFlags(r.elseStatement),r.jsDoc=void 0,r.flowNode=void 0,r}function createDoStatement(e,t){const n=createBaseNode(247);return n.statement=asEmbeddedStatement(e),n.expression=t,n.transformFlags|=propagateChildFlags(n.statement)|propagateChildFlags(n.expression),n.jsDoc=void 0,n.flowNode=void 0,n}function createWhileStatement(e,t){const n=createBaseNode(248);return n.expression=e,n.statement=asEmbeddedStatement(t),n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.statement),n.jsDoc=void 0,n.flowNode=void 0,n}function createForStatement(e,t,n,r){const i=createBaseNode(249);return i.initializer=e,i.condition=t,i.incrementor=n,i.statement=asEmbeddedStatement(r),i.transformFlags|=propagateChildFlags(i.initializer)|propagateChildFlags(i.condition)|propagateChildFlags(i.incrementor)|propagateChildFlags(i.statement),i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i.flowNode=void 0,i}function createForInStatement(e,t,n){const r=createBaseNode(250);return r.initializer=e,r.expression=t,r.statement=asEmbeddedStatement(n),r.transformFlags|=propagateChildFlags(r.initializer)|propagateChildFlags(r.expression)|propagateChildFlags(r.statement),r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r.flowNode=void 0,r}function createForOfStatement(e,t,n,i){const o=createBaseNode(251);return o.awaitModifier=e,o.initializer=t,o.expression=r().parenthesizeExpressionForDisallowedComma(n),o.statement=asEmbeddedStatement(i),o.transformFlags|=propagateChildFlags(o.awaitModifier)|propagateChildFlags(o.initializer)|propagateChildFlags(o.expression)|propagateChildFlags(o.statement)|1024,e&&(o.transformFlags|=128),o.jsDoc=void 0,o.locals=void 0,o.nextContainer=void 0,o.flowNode=void 0,o}function createContinueStatement(e){const t=createBaseNode(252);return t.label=asName(e),t.transformFlags|=4194304|propagateChildFlags(t.label),t.jsDoc=void 0,t.flowNode=void 0,t}function createBreakStatement(e){const t=createBaseNode(253);return t.label=asName(e),t.transformFlags|=4194304|propagateChildFlags(t.label),t.jsDoc=void 0,t.flowNode=void 0,t}function createReturnStatement(e){const t=createBaseNode(254);return t.expression=e,t.transformFlags|=4194432|propagateChildFlags(t.expression),t.jsDoc=void 0,t.flowNode=void 0,t}function createWithStatement(e,t){const n=createBaseNode(255);return n.expression=e,n.statement=asEmbeddedStatement(t),n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.statement),n.jsDoc=void 0,n.flowNode=void 0,n}function createSwitchStatement(e,t){const n=createBaseNode(256);return n.expression=r().parenthesizeExpressionForDisallowedComma(e),n.caseBlock=t,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.caseBlock),n.jsDoc=void 0,n.flowNode=void 0,n.possiblyExhaustive=!1,n}function createLabeledStatement(e,t){const n=createBaseNode(257);return n.label=asName(e),n.statement=asEmbeddedStatement(t),n.transformFlags|=propagateChildFlags(n.label)|propagateChildFlags(n.statement),n.jsDoc=void 0,n.flowNode=void 0,n}function updateLabeledStatement(e,t,n){return e.label!==t||e.statement!==n?update(createLabeledStatement(t,n),e):e}function createThrowStatement(e){const t=createBaseNode(258);return t.expression=e,t.transformFlags|=propagateChildFlags(t.expression),t.jsDoc=void 0,t.flowNode=void 0,t}function createTryStatement(e,t,n){const r=createBaseNode(259);return r.tryBlock=e,r.catchClause=t,r.finallyBlock=n,r.transformFlags|=propagateChildFlags(r.tryBlock)|propagateChildFlags(r.catchClause)|propagateChildFlags(r.finallyBlock),r.jsDoc=void 0,r.flowNode=void 0,r}function createVariableDeclaration(e,t,n,r){const i=createBaseDeclaration(261);return i.name=asName(e),i.exclamationToken=t,i.type=n,i.initializer=asInitializer(r),i.transformFlags|=propagateNameFlags(i.name)|propagateChildFlags(i.initializer)|(i.exclamationToken??i.type?1:0),i.jsDoc=void 0,i}function createVariableDeclarationList(e,t=0){const n=createBaseNode(262);return n.flags|=7&t,n.declarations=createNodeArray(e),n.transformFlags|=4194304|propagateChildrenFlags(n.declarations),7&t&&(n.transformFlags|=263168),4&t&&(n.transformFlags|=4),n}function createFunctionDeclaration(e,t,n,r,i,o,a){const s=createBaseDeclaration(263);if(s.modifiers=asNodeArray(e),s.asteriskToken=t,s.name=asName(n),s.typeParameters=asNodeArray(r),s.parameters=createNodeArray(i),s.type=o,s.body=a,!s.body||128&modifiersToFlags(s.modifiers))s.transformFlags=1;else{const e=1024&modifiersToFlags(s.modifiers),t=!!s.asteriskToken,n=e&&t;s.transformFlags=propagateChildrenFlags(s.modifiers)|propagateChildFlags(s.asteriskToken)|propagateNameFlags(s.name)|propagateChildrenFlags(s.typeParameters)|propagateChildrenFlags(s.parameters)|propagateChildFlags(s.type)|-67108865&propagateChildFlags(s.body)|(n?128:e?256:t?2048:0)|(s.typeParameters||s.type?1:0)|4194304}return s.typeArguments=void 0,s.jsDoc=void 0,s.locals=void 0,s.nextContainer=void 0,s.endFlowNode=void 0,s.returnFlowNode=void 0,s}function updateFunctionDeclaration(e,t,n,r,i,o,a,s){return e.modifiers!==t||e.asteriskToken!==n||e.name!==r||e.typeParameters!==i||e.parameters!==o||e.type!==a||e.body!==s?function finishUpdateFunctionDeclaration(e,t){e!==t&&e.modifiers===t.modifiers&&(e.modifiers=t.modifiers);return finishUpdateBaseSignatureDeclaration(e,t)}(createFunctionDeclaration(t,n,r,i,o,a,s),e):e}function createClassDeclaration(e,t,n,r,i){const o=createBaseDeclaration(264);return o.modifiers=asNodeArray(e),o.name=asName(t),o.typeParameters=asNodeArray(n),o.heritageClauses=asNodeArray(r),o.members=createNodeArray(i),128&modifiersToFlags(o.modifiers)?o.transformFlags=1:(o.transformFlags|=propagateChildrenFlags(o.modifiers)|propagateNameFlags(o.name)|propagateChildrenFlags(o.typeParameters)|propagateChildrenFlags(o.heritageClauses)|propagateChildrenFlags(o.members)|(o.typeParameters?1:0)|1024,8192&o.transformFlags&&(o.transformFlags|=1)),o.jsDoc=void 0,o}function updateClassDeclaration(e,t,n,r,i,o){return e.modifiers!==t||e.name!==n||e.typeParameters!==r||e.heritageClauses!==i||e.members!==o?update(createClassDeclaration(t,n,r,i,o),e):e}function createInterfaceDeclaration(e,t,n,r,i){const o=createBaseDeclaration(265);return o.modifiers=asNodeArray(e),o.name=asName(t),o.typeParameters=asNodeArray(n),o.heritageClauses=asNodeArray(r),o.members=createNodeArray(i),o.transformFlags=1,o.jsDoc=void 0,o}function updateInterfaceDeclaration(e,t,n,r,i,o){return e.modifiers!==t||e.name!==n||e.typeParameters!==r||e.heritageClauses!==i||e.members!==o?update(createInterfaceDeclaration(t,n,r,i,o),e):e}function createTypeAliasDeclaration(e,t,n,r){const i=createBaseDeclaration(266);return i.modifiers=asNodeArray(e),i.name=asName(t),i.typeParameters=asNodeArray(n),i.type=r,i.transformFlags=1,i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i}function updateTypeAliasDeclaration(e,t,n,r,i){return e.modifiers!==t||e.name!==n||e.typeParameters!==r||e.type!==i?update(createTypeAliasDeclaration(t,n,r,i),e):e}function createEnumDeclaration(e,t,n){const r=createBaseDeclaration(267);return r.modifiers=asNodeArray(e),r.name=asName(t),r.members=createNodeArray(n),r.transformFlags|=propagateChildrenFlags(r.modifiers)|propagateChildFlags(r.name)|propagateChildrenFlags(r.members)|1,r.transformFlags&=-67108865,r.jsDoc=void 0,r}function updateEnumDeclaration(e,t,n,r){return e.modifiers!==t||e.name!==n||e.members!==r?update(createEnumDeclaration(t,n,r),e):e}function createModuleDeclaration(e,t,n,r=0){const i=createBaseDeclaration(268);return i.modifiers=asNodeArray(e),i.flags|=2088&r,i.name=t,i.body=n,128&modifiersToFlags(i.modifiers)?i.transformFlags=1:i.transformFlags|=propagateChildrenFlags(i.modifiers)|propagateChildFlags(i.name)|propagateChildFlags(i.body)|1,i.transformFlags&=-67108865,i.jsDoc=void 0,i.locals=void 0,i.nextContainer=void 0,i}function updateModuleDeclaration(e,t,n,r){return e.modifiers!==t||e.name!==n||e.body!==r?update(createModuleDeclaration(t,n,r,e.flags),e):e}function createModuleBlock(e){const t=createBaseNode(269);return t.statements=createNodeArray(e),t.transformFlags|=propagateChildrenFlags(t.statements),t.jsDoc=void 0,t}function createCaseBlock(e){const t=createBaseNode(270);return t.clauses=createNodeArray(e),t.transformFlags|=propagateChildrenFlags(t.clauses),t.locals=void 0,t.nextContainer=void 0,t}function createNamespaceExportDeclaration(e){const t=createBaseDeclaration(271);return t.name=asName(e),t.transformFlags|=1|propagateIdentifierNameFlags(t.name),t.modifiers=void 0,t.jsDoc=void 0,t}function createImportEqualsDeclaration(e,t,n,r){const i=createBaseDeclaration(272);return i.modifiers=asNodeArray(e),i.name=asName(n),i.isTypeOnly=t,i.moduleReference=r,i.transformFlags|=propagateChildrenFlags(i.modifiers)|propagateIdentifierNameFlags(i.name)|propagateChildFlags(i.moduleReference),isExternalModuleReference(i.moduleReference)||(i.transformFlags|=1),i.transformFlags&=-67108865,i.jsDoc=void 0,i}function updateImportEqualsDeclaration(e,t,n,r,i){return e.modifiers!==t||e.isTypeOnly!==n||e.name!==r||e.moduleReference!==i?update(createImportEqualsDeclaration(t,n,r,i),e):e}function createImportDeclaration(e,t,n,r){const i=createBaseNode(273);return i.modifiers=asNodeArray(e),i.importClause=t,i.moduleSpecifier=n,i.attributes=i.assertClause=r,i.transformFlags|=propagateChildFlags(i.importClause)|propagateChildFlags(i.moduleSpecifier),i.transformFlags&=-67108865,i.jsDoc=void 0,i}function updateImportDeclaration(e,t,n,r,i){return e.modifiers!==t||e.importClause!==n||e.moduleSpecifier!==r||e.attributes!==i?update(createImportDeclaration(t,n,r,i),e):e}function createImportClause2(e,t,n){const r=createBaseDeclaration(274);return"boolean"==typeof e&&(e=e?156:void 0),r.isTypeOnly=156===e,r.phaseModifier=e,r.name=t,r.namedBindings=n,r.transformFlags|=propagateChildFlags(r.name)|propagateChildFlags(r.namedBindings),156===e&&(r.transformFlags|=1),r.transformFlags&=-67108865,r}function createAssertClause(e,t){const n=createBaseNode(301);return n.elements=createNodeArray(e),n.multiLine=t,n.token=132,n.transformFlags|=4,n}function createAssertEntry(e,t){const n=createBaseNode(302);return n.name=e,n.value=t,n.transformFlags|=4,n}function createImportTypeAssertionContainer(e,t){const n=createBaseNode(303);return n.assertClause=e,n.multiLine=t,n}function createImportAttributes(e,t,n){const r=createBaseNode(301);return r.token=n??118,r.elements=createNodeArray(e),r.multiLine=t,r.transformFlags|=4,r}function createImportAttribute(e,t){const n=createBaseNode(302);return n.name=e,n.value=t,n.transformFlags|=4,n}function createNamespaceImport(e){const t=createBaseDeclaration(275);return t.name=e,t.transformFlags|=propagateChildFlags(t.name),t.transformFlags&=-67108865,t}function createNamespaceExport(e){const t=createBaseDeclaration(281);return t.name=e,t.transformFlags|=32|propagateChildFlags(t.name),t.transformFlags&=-67108865,t}function createNamedImports(e){const t=createBaseNode(276);return t.elements=createNodeArray(e),t.transformFlags|=propagateChildrenFlags(t.elements),t.transformFlags&=-67108865,t}function createImportSpecifier(e,t,n){const r=createBaseDeclaration(277);return r.isTypeOnly=e,r.propertyName=t,r.name=n,r.transformFlags|=propagateChildFlags(r.propertyName)|propagateChildFlags(r.name),r.transformFlags&=-67108865,r}function createExportAssignment2(e,t,n){const i=createBaseDeclaration(278);return i.modifiers=asNodeArray(e),i.isExportEquals=t,i.expression=t?r().parenthesizeRightSideOfBinary(64,void 0,n):r().parenthesizeExpressionOfExportDefault(n),i.transformFlags|=propagateChildrenFlags(i.modifiers)|propagateChildFlags(i.expression),i.transformFlags&=-67108865,i.jsDoc=void 0,i}function updateExportAssignment(e,t,n){return e.modifiers!==t||e.expression!==n?update(createExportAssignment2(t,e.isExportEquals,n),e):e}function createExportDeclaration(e,t,n,r,i){const o=createBaseDeclaration(279);return o.modifiers=asNodeArray(e),o.isTypeOnly=t,o.exportClause=n,o.moduleSpecifier=r,o.attributes=o.assertClause=i,o.transformFlags|=propagateChildrenFlags(o.modifiers)|propagateChildFlags(o.exportClause)|propagateChildFlags(o.moduleSpecifier),o.transformFlags&=-67108865,o.jsDoc=void 0,o}function updateExportDeclaration(e,t,n,r,i,o){return e.modifiers!==t||e.isTypeOnly!==n||e.exportClause!==r||e.moduleSpecifier!==i||e.attributes!==o?function finishUpdateExportDeclaration(e,t){e!==t&&e.modifiers===t.modifiers&&(e.modifiers=t.modifiers);return update(e,t)}(createExportDeclaration(t,n,r,i,o),e):e}function createNamedExports(e){const t=createBaseNode(280);return t.elements=createNodeArray(e),t.transformFlags|=propagateChildrenFlags(t.elements),t.transformFlags&=-67108865,t}function createExportSpecifier(e,t,n){const r=createBaseNode(282);return r.isTypeOnly=e,r.propertyName=asName(t),r.name=asName(n),r.transformFlags|=propagateChildFlags(r.propertyName)|propagateChildFlags(r.name),r.transformFlags&=-67108865,r.jsDoc=void 0,r}function createExternalModuleReference(e){const t=createBaseNode(284);return t.expression=e,t.transformFlags|=propagateChildFlags(t.expression),t.transformFlags&=-67108865,t}function createJSDocPrePostfixUnaryTypeWorker(e,t,n=!1){const i=createJSDocUnaryTypeWorker(e,n?t&&r().parenthesizeNonArrayTypeOfPostfixType(t):t);return i.postfix=n,i}function createJSDocUnaryTypeWorker(e,t){const n=createBaseNode(e);return n.type=t,n}function createJSDocFunctionType(e,t){const n=createBaseDeclaration(318);return n.parameters=asNodeArray(e),n.type=t,n.transformFlags=propagateChildrenFlags(n.parameters)|(n.type?1:0),n.jsDoc=void 0,n.locals=void 0,n.nextContainer=void 0,n.typeArguments=void 0,n}function createJSDocTypeLiteral(e,t=!1){const n=createBaseDeclaration(323);return n.jsDocPropertyTags=asNodeArray(e),n.isArrayType=t,n}function createJSDocTypeExpression(e){const t=createBaseNode(310);return t.type=e,t}function createJSDocSignature(e,t,n){const r=createBaseDeclaration(324);return r.typeParameters=asNodeArray(e),r.parameters=createNodeArray(t),r.type=n,r.jsDoc=void 0,r.locals=void 0,r.nextContainer=void 0,r}function getDefaultTagName(e){const t=getDefaultTagNameForKind(e.kind);return e.tagName.escapedText===escapeLeadingUnderscores(t)?e.tagName:createIdentifier(t)}function createBaseJSDocTag(e,t,n){const r=createBaseNode(e);return r.tagName=t,r.comment=n,r}function createBaseJSDocTagDeclaration(e,t,n){const r=createBaseDeclaration(e);return r.tagName=t,r.comment=n,r}function createJSDocTemplateTag(e,t,n,r){const i=createBaseJSDocTag(346,e??createIdentifier("template"),r);return i.constraint=t,i.typeParameters=createNodeArray(n),i}function createJSDocTypedefTag(e,t,n,r){const i=createBaseJSDocTagDeclaration(347,e??createIdentifier("typedef"),r);return i.typeExpression=t,i.fullName=n,i.name=getJSDocTypeAliasName(n),i.locals=void 0,i.nextContainer=void 0,i}function createJSDocParameterTag(e,t,n,r,i,o){const a=createBaseJSDocTagDeclaration(342,e??createIdentifier("param"),o);return a.typeExpression=r,a.name=t,a.isNameFirst=!!i,a.isBracketed=n,a}function createJSDocPropertyTag(e,t,n,r,i,o){const a=createBaseJSDocTagDeclaration(349,e??createIdentifier("prop"),o);return a.typeExpression=r,a.name=t,a.isNameFirst=!!i,a.isBracketed=n,a}function createJSDocCallbackTag(e,t,n,r){const i=createBaseJSDocTagDeclaration(339,e??createIdentifier("callback"),r);return i.typeExpression=t,i.fullName=n,i.name=getJSDocTypeAliasName(n),i.locals=void 0,i.nextContainer=void 0,i}function createJSDocOverloadTag(e,t,n){const r=createBaseJSDocTag(340,e??createIdentifier("overload"),n);return r.typeExpression=t,r}function createJSDocAugmentsTag(e,t,n){const r=createBaseJSDocTag(329,e??createIdentifier("augments"),n);return r.class=t,r}function createJSDocImplementsTag(e,t,n){const r=createBaseJSDocTag(330,e??createIdentifier("implements"),n);return r.class=t,r}function createJSDocSeeTag(e,t,n){const r=createBaseJSDocTag(348,e??createIdentifier("see"),n);return r.name=t,r}function createJSDocNameReference(e){const t=createBaseNode(311);return t.name=e,t}function createJSDocMemberName(e,t){const n=createBaseNode(312);return n.left=e,n.right=t,n.transformFlags|=propagateChildFlags(n.left)|propagateChildFlags(n.right),n}function createJSDocLink(e,t){const n=createBaseNode(325);return n.name=e,n.text=t,n}function createJSDocLinkCode(e,t){const n=createBaseNode(326);return n.name=e,n.text=t,n}function createJSDocLinkPlain(e,t){const n=createBaseNode(327);return n.name=e,n.text=t,n}function createJSDocSimpleTagWorker(e,t,n){return createBaseJSDocTag(e,t??createIdentifier(getDefaultTagNameForKind(e)),n)}function createJSDocTypeLikeTagWorker(e,t,n,r){const i=createBaseJSDocTag(e,t??createIdentifier(getDefaultTagNameForKind(e)),r);return i.typeExpression=n,i}function createJSDocUnknownTag(e,t){return createBaseJSDocTag(328,e,t)}function createJSDocEnumTag(e,t,n){const r=createBaseJSDocTagDeclaration(341,e??createIdentifier(getDefaultTagNameForKind(341)),n);return r.typeExpression=t,r.locals=void 0,r.nextContainer=void 0,r}function createJSDocImportTag(e,t,n,r,i){const o=createBaseJSDocTag(352,e??createIdentifier("import"),i);return o.importClause=t,o.moduleSpecifier=n,o.attributes=r,o.comment=i,o}function createJSDocText(e){const t=createBaseNode(322);return t.text=e,t}function createJSDocComment(e,t){const n=createBaseNode(321);return n.comment=e,n.tags=asNodeArray(t),n}function createJsxElement(e,t,n){const r=createBaseNode(285);return r.openingElement=e,r.children=createNodeArray(t),r.closingElement=n,r.transformFlags|=propagateChildFlags(r.openingElement)|propagateChildrenFlags(r.children)|propagateChildFlags(r.closingElement)|2,r}function createJsxSelfClosingElement(e,t,n){const r=createBaseNode(286);return r.tagName=e,r.typeArguments=asNodeArray(t),r.attributes=n,r.transformFlags|=propagateChildFlags(r.tagName)|propagateChildrenFlags(r.typeArguments)|propagateChildFlags(r.attributes)|2,r.typeArguments&&(r.transformFlags|=1),r}function createJsxOpeningElement(e,t,n){const r=createBaseNode(287);return r.tagName=e,r.typeArguments=asNodeArray(t),r.attributes=n,r.transformFlags|=propagateChildFlags(r.tagName)|propagateChildrenFlags(r.typeArguments)|propagateChildFlags(r.attributes)|2,t&&(r.transformFlags|=1),r}function createJsxClosingElement(e){const t=createBaseNode(288);return t.tagName=e,t.transformFlags|=2|propagateChildFlags(t.tagName),t}function createJsxFragment(e,t,n){const r=createBaseNode(289);return r.openingFragment=e,r.children=createNodeArray(t),r.closingFragment=n,r.transformFlags|=propagateChildFlags(r.openingFragment)|propagateChildrenFlags(r.children)|propagateChildFlags(r.closingFragment)|2,r}function createJsxText(e,t){const n=createBaseNode(12);return n.text=e,n.containsOnlyTriviaWhiteSpaces=!!t,n.transformFlags|=2,n}function createJsxAttribute(e,t){const n=createBaseDeclaration(292);return n.name=e,n.initializer=t,n.transformFlags|=propagateChildFlags(n.name)|propagateChildFlags(n.initializer)|2,n}function createJsxAttributes(e){const t=createBaseDeclaration(293);return t.properties=createNodeArray(e),t.transformFlags|=2|propagateChildrenFlags(t.properties),t}function createJsxSpreadAttribute(e){const t=createBaseNode(294);return t.expression=e,t.transformFlags|=2|propagateChildFlags(t.expression),t}function createJsxExpression(e,t){const n=createBaseNode(295);return n.dotDotDotToken=e,n.expression=t,n.transformFlags|=propagateChildFlags(n.dotDotDotToken)|propagateChildFlags(n.expression)|2,n}function createJsxNamespacedName(e,t){const n=createBaseNode(296);return n.namespace=e,n.name=t,n.transformFlags|=propagateChildFlags(n.namespace)|propagateChildFlags(n.name)|2,n}function createCaseClause(e,t){const n=createBaseNode(297);return n.expression=r().parenthesizeExpressionForDisallowedComma(e),n.statements=createNodeArray(t),n.transformFlags|=propagateChildFlags(n.expression)|propagateChildrenFlags(n.statements),n.jsDoc=void 0,n}function createDefaultClause(e){const t=createBaseNode(298);return t.statements=createNodeArray(e),t.transformFlags=propagateChildrenFlags(t.statements),t}function createHeritageClause(e,t){const n=createBaseNode(299);switch(n.token=e,n.types=createNodeArray(t),n.transformFlags|=propagateChildrenFlags(n.types),e){case 96:n.transformFlags|=1024;break;case 119:n.transformFlags|=1;break;default:return h.assertNever(e)}return n}function createCatchClause(e,t){const n=createBaseNode(300);return n.variableDeclaration=function asVariableDeclaration(e){if("string"==typeof e||e&&!isVariableDeclaration(e))return createVariableDeclaration(e,void 0,void 0,void 0);return e}(e),n.block=t,n.transformFlags|=propagateChildFlags(n.variableDeclaration)|propagateChildFlags(n.block)|(e?0:64),n.locals=void 0,n.nextContainer=void 0,n}function createPropertyAssignment(e,t){const n=createBaseDeclaration(304);return n.name=asName(e),n.initializer=r().parenthesizeExpressionForDisallowedComma(t),n.transformFlags|=propagateNameFlags(n.name)|propagateChildFlags(n.initializer),n.modifiers=void 0,n.questionToken=void 0,n.exclamationToken=void 0,n.jsDoc=void 0,n}function updatePropertyAssignment(e,t,n){return e.name!==t||e.initializer!==n?function finishUpdatePropertyAssignment(e,t){e!==t&&(e.modifiers=t.modifiers,e.questionToken=t.questionToken,e.exclamationToken=t.exclamationToken);return update(e,t)}(createPropertyAssignment(t,n),e):e}function createShorthandPropertyAssignment(e,t){const n=createBaseDeclaration(305);return n.name=asName(e),n.objectAssignmentInitializer=t&&r().parenthesizeExpressionForDisallowedComma(t),n.transformFlags|=propagateIdentifierNameFlags(n.name)|propagateChildFlags(n.objectAssignmentInitializer)|1024,n.equalsToken=void 0,n.modifiers=void 0,n.questionToken=void 0,n.exclamationToken=void 0,n.jsDoc=void 0,n}function createSpreadAssignment(e){const t=createBaseDeclaration(306);return t.expression=r().parenthesizeExpressionForDisallowedComma(e),t.transformFlags|=65664|propagateChildFlags(t.expression),t.jsDoc=void 0,t}function createEnumMember(e,t){const n=createBaseDeclaration(307);return n.name=asName(e),n.initializer=t&&r().parenthesizeExpressionForDisallowedComma(t),n.transformFlags|=propagateChildFlags(n.name)|propagateChildFlags(n.initializer)|1,n.jsDoc=void 0,n}function createRedirectedSourceFile(e){const t=Object.create(e.redirectTarget);return Object.defineProperties(t,{id:{get(){return this.redirectInfo.redirectTarget.id},set(e){this.redirectInfo.redirectTarget.id=e}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(e){this.redirectInfo.redirectTarget.symbol=e}}}),t.redirectInfo=e,t}function cloneSourceFile(e){const r=e.redirectInfo?function cloneRedirectedSourceFile(e){const t=createRedirectedSourceFile(e.redirectInfo);return t.flags|=-17&e.flags,t.fileName=e.fileName,t.path=e.path,t.resolvedPath=e.resolvedPath,t.originalFileName=e.originalFileName,t.packageJsonLocations=e.packageJsonLocations,t.packageJsonScope=e.packageJsonScope,t.emitNode=void 0,t}(e):function cloneSourceFileWorker(e){const n=t.createBaseSourceFileNode(308);n.flags|=-17&e.flags;for(const t in e)!hasProperty(n,t)&&hasProperty(e,t)&&("emitNode"!==t?n[t]=e[t]:n.emitNode=void 0);return n}(e);return n(r,e),r}function createBundle(e){const t=createBaseNode(309);return t.sourceFiles=e,t.syntheticFileReferences=void 0,t.syntheticTypeReferences=void 0,t.syntheticLibReferences=void 0,t.hasNoDefaultLib=void 0,t}function createPartiallyEmittedExpression(e,t){const n=createBaseNode(356);return n.expression=e,n.original=t,n.transformFlags|=1|propagateChildFlags(n.expression),setTextRange(n,t),n}function updatePartiallyEmittedExpression(e,t){return e.expression!==t?update(createPartiallyEmittedExpression(t,e.original),e):e}function flattenCommaElements(e){if(nodeIsSynthesized(e)&&!isParseTreeNode(e)&&!e.original&&!e.emitNode&&!e.id){if(isCommaListExpression(e))return e.elements;if(isBinaryExpression(e)&&isCommaToken(e.operatorToken))return[e.left,e.right]}return e}function createCommaListExpression(e){const t=createBaseNode(357);return t.elements=createNodeArray(sameFlatMap(e,flattenCommaElements)),t.transformFlags|=propagateChildrenFlags(t.elements),t}function createSyntheticReferenceExpression(e,t){const n=createBaseNode(358);return n.expression=e,n.thisArg=t,n.transformFlags|=propagateChildFlags(n.expression)|propagateChildFlags(n.thisArg),n}function cloneNode(e){if(void 0===e)return e;if(isSourceFile(e))return cloneSourceFile(e);if(isGeneratedIdentifier(e))return function cloneGeneratedIdentifier(e){const t=createBaseIdentifier(e.escapedText);return t.flags|=-17&e.flags,t.transformFlags=e.transformFlags,n(t,e),setIdentifierAutoGenerate(t,{...e.emitNode.autoGenerate}),t}(e);if(isIdentifier(e))return function cloneIdentifier(e){const t=createBaseIdentifier(e.escapedText);t.flags|=-17&e.flags,t.jsDoc=e.jsDoc,t.flowNode=e.flowNode,t.symbol=e.symbol,t.transformFlags=e.transformFlags,n(t,e);const r=getIdentifierTypeArguments(e);return r&&setIdentifierTypeArguments(t,r),t}(e);if(isGeneratedPrivateIdentifier(e))return function cloneGeneratedPrivateIdentifier(e){const t=createBasePrivateIdentifier(e.escapedText);return t.flags|=-17&e.flags,t.transformFlags=e.transformFlags,n(t,e),setIdentifierAutoGenerate(t,{...e.emitNode.autoGenerate}),t}(e);if(isPrivateIdentifier(e))return function clonePrivateIdentifier(e){const t=createBasePrivateIdentifier(e.escapedText);return t.flags|=-17&e.flags,t.transformFlags=e.transformFlags,n(t,e),t}(e);const r=isNodeKind(e.kind)?t.createBaseNode(e.kind):t.createBaseTokenNode(e.kind);r.flags|=-17&e.flags,r.transformFlags=e.transformFlags,n(r,e);for(const t in e)!hasProperty(r,t)&&hasProperty(e,t)&&(r[t]=e[t]);return r}function createVoidZero(){return createVoidExpression(createNumericLiteral("0"))}function createMethodCall(e,t,n){return isCallChain(e)?createCallChain(createPropertyAccessChain(e,void 0,t),void 0,void 0,n):createCallExpression(createPropertyAccessExpression(e,t),void 0,n)}function createGlobalMethodCall(e,t,n){return createMethodCall(createIdentifier(e),t,n)}function tryAddPropertyAssignment(e,t,n){return!!n&&(e.push(createPropertyAssignment(t,n)),!0)}function shouldBeCapturedInTempVariable(e,t){const n=skipParentheses(e);switch(n.kind){case 80:return t;case 110:case 9:case 10:case 11:return!1;case 210:return 0!==n.elements.length;case 211:return n.properties.length>0;default:return!0}}function getName(e,t,n,r=0,i){const o=i?e&&getNonAssignedNameOfDeclaration(e):getNameOfDeclaration(e);if(o&&isIdentifier(o)&&!isGeneratedIdentifier(o)){const e=setParent(setTextRange(cloneNode(o),o),o.parent);return r|=getEmitFlags(o),n||(r|=96),t||(r|=3072),r&&setEmitFlags(e,r),e}return getGeneratedNameForNode(e)}function getExportName(e,t,n){return getName(e,t,n,16384)}function getNamespaceMemberName(e,t,n,r){const i=createPropertyAccessExpression(e,nodeIsSynthesized(t)?t:cloneNode(t));setTextRange(i,t);let o=0;return r||(o|=96),n||(o|=3072),o&&setEmitFlags(i,o),i}function isUseStrictPrologue2(e){return isStringLiteral(e.expression)&&"use strict"===e.expression.text}function createUseStrictPrologue(){return startOnNewLine(createExpressionStatement(createStringLiteral("use strict")))}function copyStandardPrologue(e,t,n=0,r){h.assert(0===t.length,"Prologue directives should be at the first statement in the target statements array");let i=!1;const o=e.length;for(;n=183&&e<=206)return-2;switch(e){case 214:case 215:case 210:case 207:case 208:return-2147450880;case 268:return-1941676032;case 170:case 217:case 239:case 235:case 356:case 218:case 108:case 212:case 213:default:return-2147483648;case 220:return-2072174592;case 219:case 263:return-1937940480;case 262:return-2146893824;case 264:case 232:return-2147344384;case 177:return-1937948672;case 173:return-2013249536;case 175:case 178:case 179:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 169:case 172:case 174:case 180:case 181:case 182:case 265:case 266:return-2;case 211:return-2147278848;case 300:return-2147418112}}(e.kind);return isNamedDeclaration(e)&&isPropertyName(e.name)?function propagatePropertyNameFlagsOfChild(e,t){return t|134234112&e.transformFlags}(e.name,t):t}function propagateChildrenFlags(e){return e?e.transformFlags:0}function aggregateChildrenFlags(e){let t=0;for(const n of e)t|=propagateChildFlags(n);e.transformFlags=t}var jr=createBaseNodeFactory();function makeSynthetic(e){return e.flags|=16,e}var Jr,Wr=createNodeFactory(4,{createBaseSourceFileNode:e=>makeSynthetic(jr.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>makeSynthetic(jr.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>makeSynthetic(jr.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>makeSynthetic(jr.createBaseTokenNode(e)),createBaseNode:e=>makeSynthetic(jr.createBaseNode(e))});function createSourceMapSource(e,t,n){return new(Jr||(Jr=Bn.getSourceMapSourceConstructor()))(e,t,n)}function setOriginalNode(e,t){if(e.original!==t&&(e.original=t,t)){const n=t.emitNode;n&&(e.emitNode=function mergeEmitNode(e,t){const{flags:n,internalFlags:r,leadingComments:i,trailingComments:o,commentRange:a,sourceMapRange:s,tokenSourceMapRanges:c,constantValue:l,helpers:d,startsOnNewLine:p,snippetElement:u,classThis:m,assignedName:_}=e;t||(t={});n&&(t.flags=n);r&&(t.internalFlags=-9&r);i&&(t.leadingComments=addRange(i.slice(),t.leadingComments));o&&(t.trailingComments=addRange(o.slice(),t.trailingComments));a&&(t.commentRange=a);s&&(t.sourceMapRange=s);c&&(t.tokenSourceMapRanges=function mergeTokenSourceMapRanges(e,t){t||(t=[]);for(const n in e)t[n]=e[n];return t}(c,t.tokenSourceMapRanges));void 0!==l&&(t.constantValue=l);if(d)for(const e of d)t.helpers=appendIfUnique(t.helpers,e);void 0!==p&&(t.startsOnNewLine=p);void 0!==u&&(t.snippetElement=u);m&&(t.classThis=m);_&&(t.assignedName=_);return t}(n,e.emitNode))}return e}function getOrCreateEmitNode(e){if(e.emitNode)h.assert(!(8&e.emitNode.internalFlags),"Invalid attempt to mutate an immutable node.");else{if(isParseTreeNode(e)){if(308===e.kind)return e.emitNode={annotatedNodes:[e]};getOrCreateEmitNode(getSourceFileOfNode(getParseTreeNode(getSourceFileOfNode(e)))??h.fail("Could not determine parsed source file.")).annotatedNodes.push(e)}e.emitNode={}}return e.emitNode}function disposeEmitNodes(e){var t,n;const r=null==(n=null==(t=getSourceFileOfNode(getParseTreeNode(e)))?void 0:t.emitNode)?void 0:n.annotatedNodes;if(r)for(const e of r)e.emitNode=void 0}function removeAllComments(e){const t=getOrCreateEmitNode(e);return t.flags|=3072,t.leadingComments=void 0,t.trailingComments=void 0,e}function setEmitFlags(e,t){return getOrCreateEmitNode(e).flags=t,e}function addEmitFlags(e,t){const n=getOrCreateEmitNode(e);return n.flags=n.flags|t,e}function setInternalEmitFlags(e,t){return getOrCreateEmitNode(e).internalFlags=t,e}function addInternalEmitFlags(e,t){const n=getOrCreateEmitNode(e);return n.internalFlags=n.internalFlags|t,e}function getSourceMapRange(e){var t;return(null==(t=e.emitNode)?void 0:t.sourceMapRange)??e}function setSourceMapRange(e,t){return getOrCreateEmitNode(e).sourceMapRange=t,e}function getTokenSourceMapRange(e,t){var n,r;return null==(r=null==(n=e.emitNode)?void 0:n.tokenSourceMapRanges)?void 0:r[t]}function setTokenSourceMapRange(e,t,n){const r=getOrCreateEmitNode(e);return(r.tokenSourceMapRanges??(r.tokenSourceMapRanges=[]))[t]=n,e}function getStartsOnNewLine(e){var t;return null==(t=e.emitNode)?void 0:t.startsOnNewLine}function setStartsOnNewLine(e,t){return getOrCreateEmitNode(e).startsOnNewLine=t,e}function getCommentRange(e){var t;return(null==(t=e.emitNode)?void 0:t.commentRange)??e}function setCommentRange(e,t){return getOrCreateEmitNode(e).commentRange=t,e}function getSyntheticLeadingComments(e){var t;return null==(t=e.emitNode)?void 0:t.leadingComments}function setSyntheticLeadingComments(e,t){return getOrCreateEmitNode(e).leadingComments=t,e}function addSyntheticLeadingComment(e,t,n,r){return setSyntheticLeadingComments(e,append(getSyntheticLeadingComments(e),{kind:t,pos:-1,end:-1,hasTrailingNewLine:r,text:n}))}function getSyntheticTrailingComments(e){var t;return null==(t=e.emitNode)?void 0:t.trailingComments}function setSyntheticTrailingComments(e,t){return getOrCreateEmitNode(e).trailingComments=t,e}function addSyntheticTrailingComment(e,t,n,r){return setSyntheticTrailingComments(e,append(getSyntheticTrailingComments(e),{kind:t,pos:-1,end:-1,hasTrailingNewLine:r,text:n}))}function moveSyntheticComments(e,t){setSyntheticLeadingComments(e,getSyntheticLeadingComments(t)),setSyntheticTrailingComments(e,getSyntheticTrailingComments(t));const n=getOrCreateEmitNode(t);return n.leadingComments=void 0,n.trailingComments=void 0,e}function getConstantValue(e){var t;return null==(t=e.emitNode)?void 0:t.constantValue}function setConstantValue(e,t){return getOrCreateEmitNode(e).constantValue=t,e}function addEmitHelper(e,t){const n=getOrCreateEmitNode(e);return n.helpers=append(n.helpers,t),e}function addEmitHelpers(e,t){if(some(t)){const n=getOrCreateEmitNode(e);for(const e of t)n.helpers=appendIfUnique(n.helpers,e)}return e}function removeEmitHelper(e,t){var n;const r=null==(n=e.emitNode)?void 0:n.helpers;return!!r&&orderedRemoveItem(r,t)}function getEmitHelpers(e){var t;return null==(t=e.emitNode)?void 0:t.helpers}function moveEmitHelpers(e,t,n){const r=e.emitNode,i=r&&r.helpers;if(!some(i))return;const o=getOrCreateEmitNode(t);let a=0;for(let e=0;e0&&(i[e-a]=t)}a>0&&(i.length-=a)}function getSnippetElement(e){var t;return null==(t=e.emitNode)?void 0:t.snippetElement}function setSnippetElement(e,t){return getOrCreateEmitNode(e).snippetElement=t,e}function ignoreSourceNewlines(e){return getOrCreateEmitNode(e).internalFlags|=4,e}function setTypeNode(e,t){return getOrCreateEmitNode(e).typeNode=t,e}function getTypeNode(e){var t;return null==(t=e.emitNode)?void 0:t.typeNode}function setIdentifierTypeArguments(e,t){return getOrCreateEmitNode(e).identifierTypeArguments=t,e}function getIdentifierTypeArguments(e){var t;return null==(t=e.emitNode)?void 0:t.identifierTypeArguments}function setIdentifierAutoGenerate(e,t){return getOrCreateEmitNode(e).autoGenerate=t,e}function getIdentifierAutoGenerate(e){var t;return null==(t=e.emitNode)?void 0:t.autoGenerate}function setIdentifierGeneratedImportReference(e,t){return getOrCreateEmitNode(e).generatedImportReference=t,e}function getIdentifierGeneratedImportReference(e){var t;return null==(t=e.emitNode)?void 0:t.generatedImportReference}var Ur=(e=>(e.Field="f",e.Method="m",e.Accessor="a",e))(Ur||{});function createEmitHelperFactory(e){const t=e.factory,n=memoize(()=>setInternalEmitFlags(t.createTrue(),8)),r=memoize(()=>setInternalEmitFlags(t.createFalse(),8));return{getUnscopedHelperName,createDecorateHelper:function createDecorateHelper(n,r,i,o){e.requestEmitHelper(zr);const a=[];a.push(t.createArrayLiteralExpression(n,!0)),a.push(r),i&&(a.push(i),o&&a.push(o));return t.createCallExpression(getUnscopedHelperName("__decorate"),void 0,a)},createMetadataHelper:function createMetadataHelper(n,r){return e.requestEmitHelper(Vr),t.createCallExpression(getUnscopedHelperName("__metadata"),void 0,[t.createStringLiteral(n),r])},createParamHelper:function createParamHelper(n,r,i){return e.requestEmitHelper(qr),setTextRange(t.createCallExpression(getUnscopedHelperName("__param"),void 0,[t.createNumericLiteral(r+""),n]),i)},createESDecorateHelper:function createESDecorateHelper(n,r,i,o,a,s){return e.requestEmitHelper(Hr),t.createCallExpression(getUnscopedHelperName("__esDecorate"),void 0,[n??t.createNull(),r??t.createNull(),i,createESDecorateContextObject(o),a,s])},createRunInitializersHelper:function createRunInitializersHelper(n,r,i){return e.requestEmitHelper(Kr),t.createCallExpression(getUnscopedHelperName("__runInitializers"),void 0,i?[n,r,i]:[n,r])},createAssignHelper:function createAssignHelper(n){if(zn(e.getCompilerOptions())>=2)return t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"assign"),void 0,n);return e.requestEmitHelper(Gr),t.createCallExpression(getUnscopedHelperName("__assign"),void 0,n)},createAwaitHelper:function createAwaitHelper(n){return e.requestEmitHelper($r),t.createCallExpression(getUnscopedHelperName("__await"),void 0,[n])},createAsyncGeneratorHelper:function createAsyncGeneratorHelper(n,r){return e.requestEmitHelper($r),e.requestEmitHelper(Qr),(n.emitNode||(n.emitNode={})).flags|=1572864,t.createCallExpression(getUnscopedHelperName("__asyncGenerator"),void 0,[r?t.createThis():t.createVoidZero(),t.createIdentifier("arguments"),n])},createAsyncDelegatorHelper:function createAsyncDelegatorHelper(n){return e.requestEmitHelper($r),e.requestEmitHelper(Xr),t.createCallExpression(getUnscopedHelperName("__asyncDelegator"),void 0,[n])},createAsyncValuesHelper:function createAsyncValuesHelper(n){return e.requestEmitHelper(Yr),t.createCallExpression(getUnscopedHelperName("__asyncValues"),void 0,[n])},createRestHelper:function createRestHelper(n,r,i,o){e.requestEmitHelper(Zr);const a=[];let s=0;for(let e=0;e{let r="";for(let i=0;i= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };'},Vr={name:"typescript:metadata",importName:"__metadata",scoped:!1,priority:3,text:'\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);\n };'},qr={name:"typescript:param",importName:"__param",scoped:!1,priority:4,text:"\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };"},Hr={name:"typescript:esDecorate",importName:"__esDecorate",scoped:!1,priority:2,text:'\n var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }\n var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";\n var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === "accessor") {\n if (result === void 0) continue;\n if (result === null || typeof result !== "object") throw new TypeError("Object expected");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === "field") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n };'},Kr={name:"typescript:runInitializers",importName:"__runInitializers",scoped:!1,priority:2,text:"\n var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n };"},Gr={name:"typescript:assign",importName:"__assign",scoped:!1,priority:1,text:"\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };"},$r={name:"typescript:await",importName:"__await",scoped:!1,text:"\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }"},Qr={name:"typescript:asyncGenerator",importName:"__asyncGenerator",scoped:!1,dependencies:[$r],text:'\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume("next", value); }\n function reject(value) { resume("throw", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };'},Xr={name:"typescript:asyncDelegator",importName:"__asyncDelegator",scoped:!1,dependencies:[$r],text:'\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n };'},Yr={name:"typescript:asyncValues",importName:"__asyncValues",scoped:!1,text:'\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };'},Zr={name:"typescript:rest",importName:"__rest",scoped:!1,text:'\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === "function")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };'},ei={name:"typescript:awaiter",importName:"__awaiter",scoped:!1,priority:5,text:'\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };'},ti={name:"typescript:extends",importName:"__extends",scoped:!1,priority:0,text:'\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== "function" && b !== null)\n throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();'},ni={name:"typescript:makeTemplateObject",importName:"__makeTemplateObject",scoped:!1,priority:0,text:'\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };'},ri={name:"typescript:read",importName:"__read",scoped:!1,text:'\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === "function" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i["return"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };'},ii={name:"typescript:spreadArray",importName:"__spreadArray",scoped:!1,text:"\n var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };"},oi={name:"typescript:propKey",importName:"__propKey",scoped:!1,text:'\n var __propKey = (this && this.__propKey) || function (x) {\n return typeof x === "symbol" ? x : "".concat(x);\n };'},ai={name:"typescript:setFunctionName",importName:"__setFunctionName",scoped:!1,text:'\n var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";\n return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });\n };'},si={name:"typescript:values",importName:"__values",scoped:!1,text:'\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === "number") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");\n };'},ci={name:"typescript:generator",importName:"__generator",scoped:!1,priority:6,text:'\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);\n return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError("Generator is already executing.");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };'},li={name:"typescript:commonjscreatebinding",importName:"__createBinding",scoped:!1,priority:1,text:'\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));'},di={name:"typescript:commonjsimportstar",importName:"__importStar",scoped:!1,dependencies:[li,{name:"typescript:commonjscreatevalue",importName:"__setModuleDefault",scoped:!1,priority:1,text:'\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, "default", { enumerable: true, value: v });\n }) : function(o, v) {\n o["default"] = v;\n });'}],priority:2,text:'\n var __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n })();'},pi={name:"typescript:commonjsimportdefault",importName:"__importDefault",scoped:!1,text:'\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n };'},ui={name:"typescript:export-star",importName:"__exportStar",scoped:!1,dependencies:[li],priority:2,text:'\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };'},mi={name:"typescript:classPrivateFieldGet",importName:"__classPrivateFieldGet",scoped:!1,text:'\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");\n return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };'},_i={name:"typescript:classPrivateFieldSet",importName:"__classPrivateFieldSet",scoped:!1,text:'\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === "m") throw new TypeError("Private method is not writable");\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");\n return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };'},fi={name:"typescript:classPrivateFieldIn",importName:"__classPrivateFieldIn",scoped:!1,text:'\n var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use \'in\' operator on non-object");\n return typeof state === "function" ? receiver === state : state.has(receiver);\n };'},gi={name:"typescript:addDisposableResource",importName:"__addDisposableResource",scoped:!1,text:'\n var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== "function") throw new TypeError("Object not disposable.");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n };'},yi={name:"typescript:disposeResources",importName:"__disposeResources",scoped:!1,text:'\n var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;\n });'},hi={name:"typescript:rewriteRelativeImportExtensions",importName:"__rewriteRelativeImportExtension",scoped:!1,text:'\n var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === "string" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");\n });\n }\n return path;\n };'},Ti={name:"typescript:async-super",scoped:!0,text:helperString` + const ${"_superIndex"} = name => super[name];`},Si={name:"typescript:advanced-async-super",scoped:!0,text:helperString` + const ${"_superIndex"} = (function (geti, seti) { + const cache = Object.create(null); + return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } }); + })(name => super[name], (name, value) => super[name] = value);`};function isCallToHelper(e,t){return isCallExpression(e)&&isIdentifier(e.expression)&&!!(8192&getEmitFlags(e.expression))&&e.expression.escapedText===t}function isNumericLiteral(e){return 9===e.kind}function isBigIntLiteral(e){return 10===e.kind}function isStringLiteral(e){return 11===e.kind}function isJsxText(e){return 12===e.kind}function isRegularExpressionLiteral(e){return 14===e.kind}function isNoSubstitutionTemplateLiteral(e){return 15===e.kind}function isTemplateHead(e){return 16===e.kind}function isTemplateMiddle(e){return 17===e.kind}function isTemplateTail(e){return 18===e.kind}function isDotDotDotToken(e){return 26===e.kind}function isCommaToken(e){return 28===e.kind}function isPlusToken(e){return 40===e.kind}function isMinusToken(e){return 41===e.kind}function isAsteriskToken(e){return 42===e.kind}function isExclamationToken(e){return 54===e.kind}function isQuestionToken(e){return 58===e.kind}function isColonToken(e){return 59===e.kind}function isQuestionDotToken(e){return 29===e.kind}function isEqualsGreaterThanToken(e){return 39===e.kind}function isIdentifier(e){return 80===e.kind}function isPrivateIdentifier(e){return 81===e.kind}function isExportModifier(e){return 95===e.kind}function isDefaultModifier(e){return 90===e.kind}function isAsyncModifier(e){return 134===e.kind}function isAssertsKeyword(e){return 131===e.kind}function isAwaitKeyword(e){return 135===e.kind}function isReadonlyKeyword(e){return 148===e.kind}function isStaticModifier(e){return 126===e.kind}function isAbstractModifier(e){return 128===e.kind}function isOverrideModifier(e){return 164===e.kind}function isAccessorModifier(e){return 129===e.kind}function isSuperKeyword(e){return 108===e.kind}function isImportKeyword(e){return 102===e.kind}function isCaseKeyword(e){return 84===e.kind}function isQualifiedName(e){return 167===e.kind}function isComputedPropertyName(e){return 168===e.kind}function isTypeParameterDeclaration(e){return 169===e.kind}function isParameter(e){return 170===e.kind}function isDecorator(e){return 171===e.kind}function isPropertySignature(e){return 172===e.kind}function isPropertyDeclaration(e){return 173===e.kind}function isMethodSignature(e){return 174===e.kind}function isMethodDeclaration(e){return 175===e.kind}function isClassStaticBlockDeclaration(e){return 176===e.kind}function isConstructorDeclaration(e){return 177===e.kind}function isGetAccessorDeclaration(e){return 178===e.kind}function isSetAccessorDeclaration(e){return 179===e.kind}function isCallSignatureDeclaration(e){return 180===e.kind}function isConstructSignatureDeclaration(e){return 181===e.kind}function isIndexSignatureDeclaration(e){return 182===e.kind}function isTypePredicateNode(e){return 183===e.kind}function isTypeReferenceNode(e){return 184===e.kind}function isFunctionTypeNode(e){return 185===e.kind}function isConstructorTypeNode(e){return 186===e.kind}function isTypeQueryNode(e){return 187===e.kind}function isTypeLiteralNode(e){return 188===e.kind}function isArrayTypeNode(e){return 189===e.kind}function isTupleTypeNode(e){return 190===e.kind}function isNamedTupleMember(e){return 203===e.kind}function isOptionalTypeNode(e){return 191===e.kind}function isRestTypeNode(e){return 192===e.kind}function isUnionTypeNode(e){return 193===e.kind}function isIntersectionTypeNode(e){return 194===e.kind}function isConditionalTypeNode(e){return 195===e.kind}function isInferTypeNode(e){return 196===e.kind}function isParenthesizedTypeNode(e){return 197===e.kind}function isThisTypeNode(e){return 198===e.kind}function isTypeOperatorNode(e){return 199===e.kind}function isIndexedAccessTypeNode(e){return 200===e.kind}function isMappedTypeNode(e){return 201===e.kind}function isLiteralTypeNode(e){return 202===e.kind}function isImportTypeNode(e){return 206===e.kind}function isTemplateLiteralTypeSpan(e){return 205===e.kind}function isTemplateLiteralTypeNode(e){return 204===e.kind}function isObjectBindingPattern(e){return 207===e.kind}function isArrayBindingPattern(e){return 208===e.kind}function isBindingElement(e){return 209===e.kind}function isArrayLiteralExpression(e){return 210===e.kind}function isObjectLiteralExpression(e){return 211===e.kind}function isPropertyAccessExpression(e){return 212===e.kind}function isElementAccessExpression(e){return 213===e.kind}function isCallExpression(e){return 214===e.kind}function isNewExpression(e){return 215===e.kind}function isTaggedTemplateExpression(e){return 216===e.kind}function isTypeAssertionExpression(e){return 217===e.kind}function isParenthesizedExpression(e){return 218===e.kind}function isFunctionExpression(e){return 219===e.kind}function isArrowFunction(e){return 220===e.kind}function isDeleteExpression(e){return 221===e.kind}function isTypeOfExpression(e){return 222===e.kind}function isVoidExpression(e){return 223===e.kind}function isAwaitExpression(e){return 224===e.kind}function isPrefixUnaryExpression(e){return 225===e.kind}function isPostfixUnaryExpression(e){return 226===e.kind}function isBinaryExpression(e){return 227===e.kind}function isConditionalExpression(e){return 228===e.kind}function isTemplateExpression(e){return 229===e.kind}function isYieldExpression(e){return 230===e.kind}function isSpreadElement(e){return 231===e.kind}function isClassExpression(e){return 232===e.kind}function isOmittedExpression(e){return 233===e.kind}function isExpressionWithTypeArguments(e){return 234===e.kind}function isAsExpression(e){return 235===e.kind}function isSatisfiesExpression(e){return 239===e.kind}function isNonNullExpression(e){return 236===e.kind}function isMetaProperty(e){return 237===e.kind}function isSyntheticExpression(e){return 238===e.kind}function isPartiallyEmittedExpression(e){return 356===e.kind}function isCommaListExpression(e){return 357===e.kind}function isTemplateSpan(e){return 240===e.kind}function isSemicolonClassElement(e){return 241===e.kind}function isBlock(e){return 242===e.kind}function isVariableStatement(e){return 244===e.kind}function isEmptyStatement(e){return 243===e.kind}function isExpressionStatement(e){return 245===e.kind}function isIfStatement(e){return 246===e.kind}function isDoStatement(e){return 247===e.kind}function isWhileStatement(e){return 248===e.kind}function isForStatement(e){return 249===e.kind}function isForInStatement(e){return 250===e.kind}function isForOfStatement(e){return 251===e.kind}function isContinueStatement(e){return 252===e.kind}function isBreakStatement(e){return 253===e.kind}function isReturnStatement(e){return 254===e.kind}function isWithStatement(e){return 255===e.kind}function isSwitchStatement(e){return 256===e.kind}function isLabeledStatement(e){return 257===e.kind}function isThrowStatement(e){return 258===e.kind}function isTryStatement(e){return 259===e.kind}function isDebuggerStatement(e){return 260===e.kind}function isVariableDeclaration(e){return 261===e.kind}function isVariableDeclarationList(e){return 262===e.kind}function isFunctionDeclaration(e){return 263===e.kind}function isClassDeclaration(e){return 264===e.kind}function isInterfaceDeclaration(e){return 265===e.kind}function isTypeAliasDeclaration(e){return 266===e.kind}function isEnumDeclaration(e){return 267===e.kind}function isModuleDeclaration(e){return 268===e.kind}function isModuleBlock(e){return 269===e.kind}function isCaseBlock(e){return 270===e.kind}function isNamespaceExportDeclaration(e){return 271===e.kind}function isImportEqualsDeclaration(e){return 272===e.kind}function isImportDeclaration(e){return 273===e.kind}function isImportClause(e){return 274===e.kind}function isImportTypeAssertionContainer(e){return 303===e.kind}function isAssertClause(e){return 301===e.kind}function isAssertEntry(e){return 302===e.kind}function isImportAttributes(e){return 301===e.kind}function isImportAttribute(e){return 302===e.kind}function isNamespaceImport(e){return 275===e.kind}function isNamespaceExport(e){return 281===e.kind}function isNamedImports(e){return 276===e.kind}function isImportSpecifier(e){return 277===e.kind}function isExportAssignment(e){return 278===e.kind}function isExportDeclaration(e){return 279===e.kind}function isNamedExports(e){return 280===e.kind}function isExportSpecifier(e){return 282===e.kind}function isModuleExportName(e){return 80===e.kind||11===e.kind}function isMissingDeclaration(e){return 283===e.kind}function isNotEmittedStatement(e){return 354===e.kind}function isSyntheticReference(e){return 358===e.kind}function isExternalModuleReference(e){return 284===e.kind}function isJsxElement(e){return 285===e.kind}function isJsxSelfClosingElement(e){return 286===e.kind}function isJsxOpeningElement(e){return 287===e.kind}function isJsxClosingElement(e){return 288===e.kind}function isJsxFragment(e){return 289===e.kind}function isJsxOpeningFragment(e){return 290===e.kind}function isJsxClosingFragment(e){return 291===e.kind}function isJsxAttribute(e){return 292===e.kind}function isJsxAttributes(e){return 293===e.kind}function isJsxSpreadAttribute(e){return 294===e.kind}function isJsxExpression(e){return 295===e.kind}function isJsxNamespacedName(e){return 296===e.kind}function isCaseClause(e){return 297===e.kind}function isDefaultClause(e){return 298===e.kind}function isHeritageClause(e){return 299===e.kind}function isCatchClause(e){return 300===e.kind}function isPropertyAssignment(e){return 304===e.kind}function isShorthandPropertyAssignment(e){return 305===e.kind}function isSpreadAssignment(e){return 306===e.kind}function isEnumMember(e){return 307===e.kind}function isSourceFile(e){return 308===e.kind}function isBundle(e){return 309===e.kind}function isJSDocTypeExpression(e){return 310===e.kind}function isJSDocNameReference(e){return 311===e.kind}function isJSDocMemberName(e){return 312===e.kind}function isJSDocLink(e){return 325===e.kind}function isJSDocLinkCode(e){return 326===e.kind}function isJSDocLinkPlain(e){return 327===e.kind}function isJSDocAllType(e){return 313===e.kind}function isJSDocUnknownType(e){return 314===e.kind}function isJSDocNullableType(e){return 315===e.kind}function isJSDocNonNullableType(e){return 316===e.kind}function isJSDocOptionalType(e){return 317===e.kind}function isJSDocFunctionType(e){return 318===e.kind}function isJSDocVariadicType(e){return 319===e.kind}function isJSDocNamepathType(e){return 320===e.kind}function isJSDoc(e){return 321===e.kind}function isJSDocTypeLiteral(e){return 323===e.kind}function isJSDocSignature(e){return 324===e.kind}function isJSDocAugmentsTag(e){return 329===e.kind}function isJSDocAuthorTag(e){return 331===e.kind}function isJSDocClassTag(e){return 333===e.kind}function isJSDocCallbackTag(e){return 339===e.kind}function isJSDocPublicTag(e){return 334===e.kind}function isJSDocPrivateTag(e){return 335===e.kind}function isJSDocProtectedTag(e){return 336===e.kind}function isJSDocReadonlyTag(e){return 337===e.kind}function isJSDocOverrideTag(e){return 338===e.kind}function isJSDocOverloadTag(e){return 340===e.kind}function isJSDocDeprecatedTag(e){return 332===e.kind}function isJSDocSeeTag(e){return 348===e.kind}function isJSDocEnumTag(e){return 341===e.kind}function isJSDocParameterTag(e){return 342===e.kind}function isJSDocReturnTag(e){return 343===e.kind}function isJSDocThisTag(e){return 344===e.kind}function isJSDocTypeTag(e){return 345===e.kind}function isJSDocTemplateTag(e){return 346===e.kind}function isJSDocTypedefTag(e){return 347===e.kind}function isJSDocUnknownTag(e){return 328===e.kind}function isJSDocPropertyTag(e){return 349===e.kind}function isJSDocImplementsTag(e){return 330===e.kind}function isJSDocSatisfiesTag(e){return 351===e.kind}function isJSDocThrowsTag(e){return 350===e.kind}function isJSDocImportTag(e){return 352===e.kind}function isSyntaxList(e){return 353===e.kind}var xi,vi=new WeakMap;function getNodeChildren(e,t){var n;const r=e.kind;return isNodeKind(r)?353===r?e._children:null==(n=vi.get(t))?void 0:n.get(e):l}function setNodeChildren(e,t,n){353===e.kind&&h.fail("Should not need to re-set the children of a SyntaxList.");let r=vi.get(t);return void 0===r&&(r=new WeakMap,vi.set(t,r)),r.set(e,n),n}function unsetNodeChildren(e,t){var n;353===e.kind&&h.fail("Did not expect to unset the children of a SyntaxList."),null==(n=vi.get(t))||n.delete(e)}function transferSourceFileChildren(e,t){const n=vi.get(e);void 0!==n&&(vi.delete(e),vi.set(t,n))}function createEmptyExports(e){return e.createExportDeclaration(void 0,!1,e.createNamedExports([]),void 0)}function createMemberAccessForPropertyName(e,t,n,r){if(isComputedPropertyName(n))return setTextRange(e.createElementAccessExpression(t,n.expression),r);{const r=setTextRange(isMemberName(n)?e.createPropertyAccessExpression(t,n):e.createElementAccessExpression(t,n),n);return addEmitFlags(r,128),r}}function createReactNamespace(e,t){const n=Di.createIdentifier(e||"React");return setParent(n,getParseTreeNode(t)),n}function createJsxFactoryExpressionFromEntityName(e,t,n){if(isQualifiedName(t)){const r=createJsxFactoryExpressionFromEntityName(e,t.left,n),i=e.createIdentifier(idText(t.right));return i.escapedText=t.right.escapedText,e.createPropertyAccessExpression(r,i)}return createReactNamespace(idText(t),n)}function createJsxFactoryExpression(e,t,n,r){return t?createJsxFactoryExpressionFromEntityName(e,t,r):e.createPropertyAccessExpression(createReactNamespace(n,r),"createElement")}function createExpressionForJsxElement(e,t,n,r,i,o){const a=[n];if(r&&a.push(r),i&&i.length>0)if(r||a.push(e.createNull()),i.length>1)for(const e of i)startOnNewLine(e),a.push(e);else a.push(i[0]);return setTextRange(e.createCallExpression(t,void 0,a),o)}function createExpressionForJsxFragment(e,t,n,r,i,o,a){const s=function createJsxFragmentFactoryExpression(e,t,n,r){return t?createJsxFactoryExpressionFromEntityName(e,t,r):e.createPropertyAccessExpression(createReactNamespace(n,r),"Fragment")}(e,n,r,o),c=[s,e.createNull()];if(i&&i.length>0)if(i.length>1)for(const e of i)startOnNewLine(e),c.push(e);else c.push(i[0]);return setTextRange(e.createCallExpression(createJsxFactoryExpression(e,t,r,o),void 0,c),a)}function createForOfBindingStatement(e,t,n){if(isVariableDeclarationList(t)){const r=first(t.declarations),i=e.updateVariableDeclaration(r,r.name,void 0,void 0,n);return setTextRange(e.createVariableStatement(void 0,e.updateVariableDeclarationList(t,[i])),t)}{const r=setTextRange(e.createAssignment(t,n),t);return setTextRange(e.createExpressionStatement(r),t)}}function createExpressionFromEntityName(e,t){if(isQualifiedName(t)){const n=createExpressionFromEntityName(e,t.left),r=setParent(setTextRange(e.cloneNode(t.right),t.right),t.right.parent);return setTextRange(e.createPropertyAccessExpression(n,r),t)}return setParent(setTextRange(e.cloneNode(t),t),t.parent)}function createExpressionForPropertyName(e,t){return isIdentifier(t)?e.createStringLiteralFromNode(t):isComputedPropertyName(t)?setParent(setTextRange(e.cloneNode(t.expression),t.expression),t.expression.parent):setParent(setTextRange(e.cloneNode(t),t),t.parent)}function createExpressionForObjectLiteralElementLike(e,t,n,r){switch(n.name&&isPrivateIdentifier(n.name)&&h.failBadSyntaxKind(n.name,"Private identifiers are not allowed in object literals."),n.kind){case 178:case 179:return function createExpressionForAccessorDeclaration(e,t,n,r,i){const{firstAccessor:o,getAccessor:a,setAccessor:s}=getAllAccessorDeclarations(t,n);if(n===o)return setTextRange(e.createObjectDefinePropertyCall(r,createExpressionForPropertyName(e,n.name),e.createPropertyDescriptor({enumerable:e.createFalse(),configurable:!0,get:a&&setTextRange(setOriginalNode(e.createFunctionExpression(getModifiers(a),void 0,void 0,void 0,a.parameters,void 0,a.body),a),a),set:s&&setTextRange(setOriginalNode(e.createFunctionExpression(getModifiers(s),void 0,void 0,void 0,s.parameters,void 0,s.body),s),s)},!i)),o)}(e,t.properties,n,r,!!t.multiLine);case 304:return function createExpressionForPropertyAssignment(e,t,n){return setOriginalNode(setTextRange(e.createAssignment(createMemberAccessForPropertyName(e,n,t.name,t.name),t.initializer),t),t)}(e,n,r);case 305:return function createExpressionForShorthandPropertyAssignment(e,t,n){return setOriginalNode(setTextRange(e.createAssignment(createMemberAccessForPropertyName(e,n,t.name,t.name),e.cloneNode(t.name)),t),t)}(e,n,r);case 175:return function createExpressionForMethodDeclaration(e,t,n){return setOriginalNode(setTextRange(e.createAssignment(createMemberAccessForPropertyName(e,n,t.name,t.name),setOriginalNode(setTextRange(e.createFunctionExpression(getModifiers(t),t.asteriskToken,void 0,void 0,t.parameters,void 0,t.body),t),t)),t),t)}(e,n,r)}}function expandPreOrPostfixIncrementOrDecrementExpression(e,t,n,r,i){const o=t.operator;h.assert(46===o||47===o,"Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression");const a=e.createTempVariable(r);setTextRange(n=e.createAssignment(a,n),t.operand);let s=isPrefixUnaryExpression(t)?e.createPrefixUnaryExpression(o,a):e.createPostfixUnaryExpression(a,o);return setTextRange(s,t),i&&(s=e.createAssignment(i,s),setTextRange(s,t)),setTextRange(n=e.createComma(n,s),t),isPostfixUnaryExpression(t)&&setTextRange(n=e.createComma(n,a),t),n}function isInternalName(e){return!!(65536&getEmitFlags(e))}function isLocalName(e){return!!(32768&getEmitFlags(e))}function isExportName(e){return!!(16384&getEmitFlags(e))}function isUseStrictPrologue(e){return isStringLiteral(e.expression)&&"use strict"===e.expression.text}function findUseStrictPrologue(e){for(const t of e){if(!isPrologueDirective(t))break;if(isUseStrictPrologue(t))return t}}function startsWithUseStrict(e){const t=firstOrUndefined(e);return void 0!==t&&isPrologueDirective(t)&&isUseStrictPrologue(t)}function isCommaExpression(e){return 227===e.kind&&28===e.operatorToken.kind}function isCommaSequence(e){return isCommaExpression(e)||isCommaListExpression(e)}function isJSDocTypeAssertion(e){return isParenthesizedExpression(e)&&isInJSFile(e)&&!!getJSDocTypeTag(e)}function getJSDocTypeAssertionType(e){const t=getJSDocType(e);return h.assertIsDefined(t),t}function isOuterExpression(e,t=63){switch(e.kind){case 218:return!(-2147483648&t&&isJSDocTypeAssertion(e))&&!!(1&t);case 217:case 235:return!!(2&t);case 239:return!!(34&t);case 234:return!!(16&t);case 236:return!!(4&t);case 356:return!!(8&t)}return!1}function skipOuterExpressions(e,t=63){for(;isOuterExpression(e,t);)e=e.expression;return e}function walkUpOuterExpressions(e,t=63){let n=e.parent;for(;isOuterExpression(n,t);)n=n.parent,h.assert(n);return n}function startOnNewLine(e){return setStartsOnNewLine(e,!0)}function getExternalHelpersModuleName(e){const t=getOriginalNode(e,isSourceFile),n=t&&t.emitNode;return n&&n.externalHelpersModuleName}function hasRecordedExternalHelpers(e){const t=getOriginalNode(e,isSourceFile),n=t&&t.emitNode;return!(!n||!n.externalHelpersModuleName&&!n.externalHelpers)}function createExternalHelpersImportDeclarationIfNeeded(e,t,n,r,i,o,a){if(r.importHelpers&&isEffectiveExternalModule(n,r)){const s=Vn(r),c=getImpliedNodeFormatForEmitWorker(n,r),l=function getImportedHelpers(e){return filter(getEmitHelpers(e),e=>!e.scoped)}(n);if(1!==c&&(s>=5&&s<=99||99===c||void 0===c&&200===s)){if(l){const r=[];for(const e of l){const t=e.importName;t&&pushIfUnique(r,t)}if(some(r)){r.sort(compareStringsCaseSensitive);const i=e.createNamedImports(map(r,r=>isFileLevelUniqueName(n,r)?e.createImportSpecifier(!1,void 0,e.createIdentifier(r)):e.createImportSpecifier(!1,e.createIdentifier(r),t.getUnscopedHelperName(r))));getOrCreateEmitNode(getOriginalNode(n,isSourceFile)).externalHelpers=!0;const o=e.createImportDeclaration(void 0,e.createImportClause(void 0,void 0,i),e.createStringLiteral(sn),void 0);return addInternalEmitFlags(o,2),o}}}else{const t=function getOrCreateExternalHelpersModuleNameIfNeeded(e,t,n,r,i,o){const a=getExternalHelpersModuleName(t);if(a)return a;const s=some(r)||(i||Gn(n)&&o)&&getEmitModuleFormatOfFileWorker(t,n)<4;if(s){const n=getOrCreateEmitNode(getOriginalNode(t,isSourceFile));return n.externalHelpersModuleName||(n.externalHelpersModuleName=e.createUniqueName(sn))}}(e,n,r,l,i,o||a);if(t){const n=e.createImportEqualsDeclaration(void 0,!1,t,e.createExternalModuleReference(e.createStringLiteral(sn)));return addInternalEmitFlags(n,2),n}}}}function getLocalNameForExternalImport(e,t,n){const r=getNamespaceDeclarationNode(t);if(r&&!isDefaultImport(t)&&!isExportNamespaceAsDefaultDeclaration(t)){const i=r.name;return 11===i.kind?e.getGeneratedNameForNode(t):isGeneratedIdentifier(i)?i:e.createIdentifier(getSourceTextOfNodeFromSourceFile(n,i)||idText(i))}return 273===t.kind&&t.importClause||279===t.kind&&t.moduleSpecifier?e.getGeneratedNameForNode(t):void 0}function getExternalModuleNameLiteral(e,t,n,r,i,o){const a=getExternalModuleName(t);if(a&&isStringLiteral(a))return function tryGetModuleNameFromDeclaration(e,t,n,r,i){return tryGetModuleNameFromFile(n,r.getExternalModuleFileFromDeclaration(e),t,i)}(t,r,e,i,o)||function tryRenameExternalModule(e,t,n){const r=n.renamedDependencies&&n.renamedDependencies.get(t.text);return r?e.createStringLiteral(r):void 0}(e,a,n)||e.cloneNode(a)}function tryGetModuleNameFromFile(e,t,n,r){if(t)return t.moduleName?e.createStringLiteral(t.moduleName):!t.isDeclarationFile&&r.outFile?e.createStringLiteral(getExternalModuleNameFromPath(n,t.fileName)):void 0}function getInitializerOfBindingOrAssignmentElement(e){if(isDeclarationBindingElement(e))return e.initializer;if(isPropertyAssignment(e)){const t=e.initializer;return isAssignmentExpression(t,!0)?t.right:void 0}return isShorthandPropertyAssignment(e)?e.objectAssignmentInitializer:isAssignmentExpression(e,!0)?e.right:isSpreadElement(e)?getInitializerOfBindingOrAssignmentElement(e.expression):void 0}function getTargetOfBindingOrAssignmentElement(e){if(isDeclarationBindingElement(e))return e.name;if(!isObjectLiteralElementLike(e))return isAssignmentExpression(e,!0)?getTargetOfBindingOrAssignmentElement(e.left):isSpreadElement(e)?getTargetOfBindingOrAssignmentElement(e.expression):e;switch(e.kind){case 304:return getTargetOfBindingOrAssignmentElement(e.initializer);case 305:return e.name;case 306:return getTargetOfBindingOrAssignmentElement(e.expression)}}function getRestIndicatorOfBindingOrAssignmentElement(e){switch(e.kind){case 170:case 209:return e.dotDotDotToken;case 231:case 306:return e}}function getPropertyNameOfBindingOrAssignmentElement(e){const t=tryGetPropertyNameOfBindingOrAssignmentElement(e);return h.assert(!!t||isSpreadAssignment(e),"Invalid property name for binding element."),t}function tryGetPropertyNameOfBindingOrAssignmentElement(e){switch(e.kind){case 209:if(e.propertyName){const t=e.propertyName;return isPrivateIdentifier(t)?h.failBadSyntaxKind(t):isComputedPropertyName(t)&&isStringOrNumericLiteral(t.expression)?t.expression:t}break;case 304:if(e.name){const t=e.name;return isPrivateIdentifier(t)?h.failBadSyntaxKind(t):isComputedPropertyName(t)&&isStringOrNumericLiteral(t.expression)?t.expression:t}break;case 306:return e.name&&isPrivateIdentifier(e.name)?h.failBadSyntaxKind(e.name):e.name}const t=getTargetOfBindingOrAssignmentElement(e);if(t&&isPropertyName(t))return t}function isStringOrNumericLiteral(e){const t=e.kind;return 11===t||9===t}function getElementsOfBindingOrAssignmentPattern(e){switch(e.kind){case 207:case 208:case 210:return e.elements;case 211:return e.properties}}function getJSDocTypeAliasName(e){if(e){let t=e;for(;;){if(isIdentifier(t)||!t.body)return isIdentifier(t)?t:t.name;t=t.body}}}function canHaveIllegalType(e){const t=e.kind;return 177===t||179===t}function canHaveIllegalTypeParameters(e){const t=e.kind;return 177===t||178===t||179===t}function canHaveIllegalDecorators(e){const t=e.kind;return 304===t||305===t||263===t||177===t||182===t||176===t||283===t||244===t||265===t||266===t||267===t||268===t||272===t||273===t||271===t||279===t||278===t}function canHaveIllegalModifiers(e){const t=e.kind;return 176===t||304===t||305===t||283===t||271===t}function isQuestionOrExclamationToken(e){return isQuestionToken(e)||isExclamationToken(e)}function isIdentifierOrThisTypeNode(e){return isIdentifier(e)||isThisTypeNode(e)}function isReadonlyKeywordOrPlusOrMinusToken(e){return isReadonlyKeyword(e)||isPlusToken(e)||isMinusToken(e)}function isQuestionOrPlusOrMinusToken(e){return isQuestionToken(e)||isPlusToken(e)||isMinusToken(e)}function isModuleName(e){return isIdentifier(e)||isStringLiteral(e)}function isShiftOperatorOrHigher(e){return function isShiftOperator(e){return 48===e||49===e||50===e}(e)||function isAdditiveOperatorOrHigher(e){return function isAdditiveOperator(e){return 40===e||41===e}(e)||function isMultiplicativeOperatorOrHigher(e){return function isExponentiationOperator(e){return 43===e}(e)||function isMultiplicativeOperator(e){return 42===e||44===e||45===e}(e)}(e)}(e)}function isEqualityOperatorOrHigher(e){return function isEqualityOperator(e){return 35===e||37===e||36===e||38===e}(e)||function isRelationalOperatorOrHigher(e){return function isRelationalOperator(e){return 30===e||33===e||32===e||34===e||104===e||103===e}(e)||isShiftOperatorOrHigher(e)}(e)}function isLogicalOperatorOrHigher(e){return function isLogicalOperator2(e){return 56===e||57===e}(e)||function isBitwiseOperatorOrHigher(e){return function isBitwiseOperator(e){return 51===e||52===e||53===e}(e)||isEqualityOperatorOrHigher(e)}(e)}function isBinaryOperator(e){return function isAssignmentOperatorOrHigher(e){return 61===e||isLogicalOperatorOrHigher(e)||isAssignmentOperator(e)}(e)||28===e}function isBinaryOperatorToken(e){return isBinaryOperator(e.kind)}(e=>{function enter(e,t,n,r,i,o,a){const s=t>0?i[t-1]:void 0;return h.assertEqual(n[t],enter),i[t]=e.onEnter(r[t],s,a),n[t]=nextState(e,enter),t}function left(e,t,n,r,i,o,a){h.assertEqual(n[t],left),h.assertIsDefined(e.onLeft),n[t]=nextState(e,left);const s=e.onLeft(r[t].left,i[t],r[t]);return s?(checkCircularity(t,r,s),pushStack(t,n,r,i,s)):t}function operator(e,t,n,r,i,o,a){return h.assertEqual(n[t],operator),h.assertIsDefined(e.onOperator),n[t]=nextState(e,operator),e.onOperator(r[t].operatorToken,i[t],r[t]),t}function right(e,t,n,r,i,o,a){h.assertEqual(n[t],right),h.assertIsDefined(e.onRight),n[t]=nextState(e,right);const s=e.onRight(r[t].right,i[t],r[t]);return s?(checkCircularity(t,r,s),pushStack(t,n,r,i,s)):t}function exit(e,t,n,r,i,o,a){h.assertEqual(n[t],exit),n[t]=nextState(e,exit);const s=e.onExit(r[t],i[t]);if(t>0){if(t--,e.foldState){const r=n[t]===exit?"right":"left";i[t]=e.foldState(i[t],s,r)}}else o.value=s;return t}function done(e,t,n,r,i,o,a){return h.assertEqual(n[t],done),t}function nextState(e,t){switch(t){case enter:if(e.onLeft)return left;case left:if(e.onOperator)return operator;case operator:if(e.onRight)return right;case right:return exit;case exit:case done:return done;default:h.fail("Invalid state")}}function pushStack(e,t,n,r,i){return t[++e]=enter,n[e]=i,r[e]=void 0,e}function checkCircularity(e,t,n){if(h.shouldAssert(2))for(;e>=0;)h.assert(t[e]!==n,"Circular traversal detected."),e--}e.enter=enter,e.left=left,e.operator=operator,e.right=right,e.exit=exit,e.done=done,e.nextState=nextState})(xi||(xi={}));var bi,Ci,Ei,Ni,ki,Fi=class{constructor(e,t,n,r,i,o){this.onEnter=e,this.onLeft=t,this.onOperator=n,this.onRight=r,this.onExit=i,this.foldState=o}};function createBinaryExpressionTrampoline(e,t,n,r,i,o){const a=new Fi(e,t,n,r,i,o);return function trampoline(e,t){const n={value:void 0},r=[xi.enter],i=[e],o=[void 0];let s=0;for(;r[s]!==xi.done;)s=r[s](a,s,r,i,o,n,t);return h.assertEqual(s,0),n.value}}function isExportOrDefaultModifier(e){return function isExportOrDefaultKeywordKind(e){return 95===e||90===e}(e.kind)}function elideNodes(e,t){if(void 0!==t)return 0===t.length?t:setTextRange(e.createNodeArray([],t.hasTrailingComma),t)}function getNodeForGeneratedName(e){var t;const n=e.emitNode.autoGenerate;if(4&n.flags){const r=n.id;let i=e,o=i.original;for(;o;){i=o;const e=null==(t=i.emitNode)?void 0:t.autoGenerate;if(isMemberName(i)&&(void 0===e||4&e.flags&&e.id!==r))break;o=i.original}return i}return e}function formatGeneratedNamePart(e,t){return"object"==typeof e?formatGeneratedName(!1,e.prefix,e.node,e.suffix,t):"string"==typeof e?e.length>0&&35===e.charCodeAt(0)?e.slice(1):e:""}function formatIdentifier(e,t){return"string"==typeof e?e:function formatIdentifierWorker(e,t){return isGeneratedPrivateIdentifier(e)?t(e).slice(1):isGeneratedIdentifier(e)?t(e):isPrivateIdentifier(e)?e.escapedText.slice(1):idText(e)}(e,h.checkDefined(t))}function formatGeneratedName(e,t,n,r,i){return t=formatGeneratedNamePart(t,i),r=formatGeneratedNamePart(r,i),`${e?"#":""}${t}${n=formatIdentifier(n,i)}${r}`}function createAccessorPropertyBackingField(e,t,n,r){return e.updatePropertyDeclaration(t,n,e.getGeneratedPrivateNameForNode(t.name,void 0,"_accessor_storage"),void 0,void 0,r)}function createAccessorPropertyGetRedirector(e,t,n,r,i=e.createThis()){return e.createGetAccessorDeclaration(n,r,[],void 0,e.createBlock([e.createReturnStatement(e.createPropertyAccessExpression(i,e.getGeneratedPrivateNameForNode(t.name,void 0,"_accessor_storage")))]))}function createAccessorPropertySetRedirector(e,t,n,r,i=e.createThis()){return e.createSetAccessorDeclaration(n,r,[e.createParameterDeclaration(void 0,void 0,"value")],e.createBlock([e.createExpressionStatement(e.createAssignment(e.createPropertyAccessExpression(i,e.getGeneratedPrivateNameForNode(t.name,void 0,"_accessor_storage")),e.createIdentifier("value")))]))}function findComputedPropertyNameCacheAssignment(e){let t=e.expression;for(;;)if(t=skipOuterExpressions(t),isCommaListExpression(t))t=last(t.elements);else{if(!isCommaExpression(t)){if(isAssignmentExpression(t,!0)&&isGeneratedIdentifier(t.left))return t;break}t=t.right}}function flattenCommaListWorker(e,t){if(function isSyntheticParenthesizedExpression(e){return isParenthesizedExpression(e)&&nodeIsSynthesized(e)&&!e.emitNode}(e))flattenCommaListWorker(e.expression,t);else if(isCommaExpression(e))flattenCommaListWorker(e.left,t),flattenCommaListWorker(e.right,t);else if(isCommaListExpression(e))for(const n of e.elements)flattenCommaListWorker(n,t);else t.push(e)}function flattenCommaList(e){const t=[];return flattenCommaListWorker(e,t),t}function containsObjectRestOrSpread(e){if(65536&e.transformFlags)return!0;if(128&e.transformFlags)for(const t of getElementsOfBindingOrAssignmentPattern(e)){const e=getTargetOfBindingOrAssignmentElement(t);if(e&&isAssignmentPattern(e)){if(65536&e.transformFlags)return!0;if(128&e.transformFlags&&containsObjectRestOrSpread(e))return!0}}return!1}function setTextRange(e,t){return t?setTextRangePosEnd(e,t.pos,t.end):e}function canHaveModifiers(e){const t=e.kind;return 169===t||170===t||172===t||173===t||174===t||175===t||177===t||178===t||179===t||182===t||186===t||219===t||220===t||232===t||244===t||263===t||264===t||265===t||266===t||267===t||268===t||272===t||273===t||278===t||279===t}function canHaveDecorators(e){const t=e.kind;return 170===t||173===t||175===t||178===t||179===t||232===t||264===t}var Pi={createBaseSourceFileNode:e=>new(ki||(ki=Bn.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(Ei||(Ei=Bn.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(Ni||(Ni=Bn.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(Ci||(Ci=Bn.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(bi||(bi=Bn.getNodeConstructor()))(e,-1,-1)},Di=createNodeFactory(1,Pi);function visitNode2(e,t){return t&&e(t)}function visitNodes(e,t,n){if(n){if(t)return t(n);for(const t of n){const n=e(t);if(n)return n}}}function isJSDocLikeText(e,t){return 42===e.charCodeAt(t+1)&&42===e.charCodeAt(t+2)&&47!==e.charCodeAt(t+3)}function isFileProbablyExternalModule(e){return forEach(e.statements,isAnExternalModuleIndicatorNode)||function getImportMetaIfNecessary(e){return 8388608&e.flags?walkTreeForImportMeta(e):void 0}(e)}function isAnExternalModuleIndicatorNode(e){return canHaveModifiers(e)&&function hasModifierOfKind(e,t){return some(e.modifiers,e=>e.kind===t)}(e,95)||isImportEqualsDeclaration(e)&&isExternalModuleReference(e.moduleReference)||isImportDeclaration(e)||isExportAssignment(e)||isExportDeclaration(e)?e:void 0}function walkTreeForImportMeta(e){return function isImportMeta2(e){return isMetaProperty(e)&&102===e.keywordToken&&"meta"===e.name.escapedText}(e)?e:forEachChild(e,walkTreeForImportMeta)}var Ii,Ai={167:function forEachChildInQualifiedName(e,t,n){return visitNode2(t,e.left)||visitNode2(t,e.right)},169:function forEachChildInTypeParameter(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.constraint)||visitNode2(t,e.default)||visitNode2(t,e.expression)},305:function forEachChildInShorthandPropertyAssignment(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.exclamationToken)||visitNode2(t,e.equalsToken)||visitNode2(t,e.objectAssignmentInitializer)},306:function forEachChildInSpreadAssignment(e,t,n){return visitNode2(t,e.expression)},170:function forEachChildInParameter(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.dotDotDotToken)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.type)||visitNode2(t,e.initializer)},173:function forEachChildInPropertyDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.exclamationToken)||visitNode2(t,e.type)||visitNode2(t,e.initializer)},172:function forEachChildInPropertySignature(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.type)||visitNode2(t,e.initializer)},304:function forEachChildInPropertyAssignment(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.exclamationToken)||visitNode2(t,e.initializer)},261:function forEachChildInVariableDeclaration(e,t,n){return visitNode2(t,e.name)||visitNode2(t,e.exclamationToken)||visitNode2(t,e.type)||visitNode2(t,e.initializer)},209:function forEachChildInBindingElement(e,t,n){return visitNode2(t,e.dotDotDotToken)||visitNode2(t,e.propertyName)||visitNode2(t,e.name)||visitNode2(t,e.initializer)},182:function forEachChildInIndexSignature(e,t,n){return visitNodes(t,n,e.modifiers)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)},186:function forEachChildInConstructorType(e,t,n){return visitNodes(t,n,e.modifiers)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)},185:function forEachChildInFunctionType(e,t,n){return visitNodes(t,n,e.modifiers)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)},180:forEachChildInCallOrConstructSignature,181:forEachChildInCallOrConstructSignature,175:function forEachChildInMethodDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.asteriskToken)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.exclamationToken)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},174:function forEachChildInMethodSignature(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)},177:function forEachChildInConstructor(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},178:function forEachChildInGetAccessor(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},179:function forEachChildInSetAccessor(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},263:function forEachChildInFunctionDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.asteriskToken)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},219:function forEachChildInFunctionExpression(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.asteriskToken)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.body)},220:function forEachChildInArrowFunction(e,t,n){return visitNodes(t,n,e.modifiers)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)||visitNode2(t,e.equalsGreaterThanToken)||visitNode2(t,e.body)},176:function forEachChildInClassStaticBlockDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.body)},184:function forEachChildInTypeReference(e,t,n){return visitNode2(t,e.typeName)||visitNodes(t,n,e.typeArguments)},183:function forEachChildInTypePredicate(e,t,n){return visitNode2(t,e.assertsModifier)||visitNode2(t,e.parameterName)||visitNode2(t,e.type)},187:function forEachChildInTypeQuery(e,t,n){return visitNode2(t,e.exprName)||visitNodes(t,n,e.typeArguments)},188:function forEachChildInTypeLiteral(e,t,n){return visitNodes(t,n,e.members)},189:function forEachChildInArrayType(e,t,n){return visitNode2(t,e.elementType)},190:function forEachChildInTupleType(e,t,n){return visitNodes(t,n,e.elements)},193:forEachChildInUnionOrIntersectionType,194:forEachChildInUnionOrIntersectionType,195:function forEachChildInConditionalType(e,t,n){return visitNode2(t,e.checkType)||visitNode2(t,e.extendsType)||visitNode2(t,e.trueType)||visitNode2(t,e.falseType)},196:function forEachChildInInferType(e,t,n){return visitNode2(t,e.typeParameter)},206:function forEachChildInImportType(e,t,n){return visitNode2(t,e.argument)||visitNode2(t,e.attributes)||visitNode2(t,e.qualifier)||visitNodes(t,n,e.typeArguments)},303:function forEachChildInImportTypeAssertionContainer(e,t,n){return visitNode2(t,e.assertClause)},197:forEachChildInParenthesizedTypeOrTypeOperator,199:forEachChildInParenthesizedTypeOrTypeOperator,200:function forEachChildInIndexedAccessType(e,t,n){return visitNode2(t,e.objectType)||visitNode2(t,e.indexType)},201:function forEachChildInMappedType(e,t,n){return visitNode2(t,e.readonlyToken)||visitNode2(t,e.typeParameter)||visitNode2(t,e.nameType)||visitNode2(t,e.questionToken)||visitNode2(t,e.type)||visitNodes(t,n,e.members)},202:function forEachChildInLiteralType(e,t,n){return visitNode2(t,e.literal)},203:function forEachChildInNamedTupleMember(e,t,n){return visitNode2(t,e.dotDotDotToken)||visitNode2(t,e.name)||visitNode2(t,e.questionToken)||visitNode2(t,e.type)},207:forEachChildInObjectOrArrayBindingPattern,208:forEachChildInObjectOrArrayBindingPattern,210:function forEachChildInArrayLiteralExpression(e,t,n){return visitNodes(t,n,e.elements)},211:function forEachChildInObjectLiteralExpression(e,t,n){return visitNodes(t,n,e.properties)},212:function forEachChildInPropertyAccessExpression(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.questionDotToken)||visitNode2(t,e.name)},213:function forEachChildInElementAccessExpression(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.questionDotToken)||visitNode2(t,e.argumentExpression)},214:forEachChildInCallOrNewExpression,215:forEachChildInCallOrNewExpression,216:function forEachChildInTaggedTemplateExpression(e,t,n){return visitNode2(t,e.tag)||visitNode2(t,e.questionDotToken)||visitNodes(t,n,e.typeArguments)||visitNode2(t,e.template)},217:function forEachChildInTypeAssertionExpression(e,t,n){return visitNode2(t,e.type)||visitNode2(t,e.expression)},218:function forEachChildInParenthesizedExpression(e,t,n){return visitNode2(t,e.expression)},221:function forEachChildInDeleteExpression(e,t,n){return visitNode2(t,e.expression)},222:function forEachChildInTypeOfExpression(e,t,n){return visitNode2(t,e.expression)},223:function forEachChildInVoidExpression(e,t,n){return visitNode2(t,e.expression)},225:function forEachChildInPrefixUnaryExpression(e,t,n){return visitNode2(t,e.operand)},230:function forEachChildInYieldExpression(e,t,n){return visitNode2(t,e.asteriskToken)||visitNode2(t,e.expression)},224:function forEachChildInAwaitExpression(e,t,n){return visitNode2(t,e.expression)},226:function forEachChildInPostfixUnaryExpression(e,t,n){return visitNode2(t,e.operand)},227:function forEachChildInBinaryExpression(e,t,n){return visitNode2(t,e.left)||visitNode2(t,e.operatorToken)||visitNode2(t,e.right)},235:function forEachChildInAsExpression(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.type)},236:function forEachChildInNonNullExpression(e,t,n){return visitNode2(t,e.expression)},239:function forEachChildInSatisfiesExpression(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.type)},237:function forEachChildInMetaProperty(e,t,n){return visitNode2(t,e.name)},228:function forEachChildInConditionalExpression(e,t,n){return visitNode2(t,e.condition)||visitNode2(t,e.questionToken)||visitNode2(t,e.whenTrue)||visitNode2(t,e.colonToken)||visitNode2(t,e.whenFalse)},231:function forEachChildInSpreadElement(e,t,n){return visitNode2(t,e.expression)},242:forEachChildInBlock,269:forEachChildInBlock,308:function forEachChildInSourceFile(e,t,n){return visitNodes(t,n,e.statements)||visitNode2(t,e.endOfFileToken)},244:function forEachChildInVariableStatement(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.declarationList)},262:function forEachChildInVariableDeclarationList(e,t,n){return visitNodes(t,n,e.declarations)},245:function forEachChildInExpressionStatement(e,t,n){return visitNode2(t,e.expression)},246:function forEachChildInIfStatement(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.thenStatement)||visitNode2(t,e.elseStatement)},247:function forEachChildInDoStatement(e,t,n){return visitNode2(t,e.statement)||visitNode2(t,e.expression)},248:function forEachChildInWhileStatement(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.statement)},249:function forEachChildInForStatement(e,t,n){return visitNode2(t,e.initializer)||visitNode2(t,e.condition)||visitNode2(t,e.incrementor)||visitNode2(t,e.statement)},250:function forEachChildInForInStatement(e,t,n){return visitNode2(t,e.initializer)||visitNode2(t,e.expression)||visitNode2(t,e.statement)},251:function forEachChildInForOfStatement(e,t,n){return visitNode2(t,e.awaitModifier)||visitNode2(t,e.initializer)||visitNode2(t,e.expression)||visitNode2(t,e.statement)},252:forEachChildInContinueOrBreakStatement,253:forEachChildInContinueOrBreakStatement,254:function forEachChildInReturnStatement(e,t,n){return visitNode2(t,e.expression)},255:function forEachChildInWithStatement(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.statement)},256:function forEachChildInSwitchStatement(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.caseBlock)},270:function forEachChildInCaseBlock(e,t,n){return visitNodes(t,n,e.clauses)},297:function forEachChildInCaseClause(e,t,n){return visitNode2(t,e.expression)||visitNodes(t,n,e.statements)},298:function forEachChildInDefaultClause(e,t,n){return visitNodes(t,n,e.statements)},257:function forEachChildInLabeledStatement(e,t,n){return visitNode2(t,e.label)||visitNode2(t,e.statement)},258:function forEachChildInThrowStatement(e,t,n){return visitNode2(t,e.expression)},259:function forEachChildInTryStatement(e,t,n){return visitNode2(t,e.tryBlock)||visitNode2(t,e.catchClause)||visitNode2(t,e.finallyBlock)},300:function forEachChildInCatchClause(e,t,n){return visitNode2(t,e.variableDeclaration)||visitNode2(t,e.block)},171:function forEachChildInDecorator(e,t,n){return visitNode2(t,e.expression)},264:forEachChildInClassDeclarationOrExpression,232:forEachChildInClassDeclarationOrExpression,265:function forEachChildInInterfaceDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.heritageClauses)||visitNodes(t,n,e.members)},266:function forEachChildInTypeAliasDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNode2(t,e.type)},267:function forEachChildInEnumDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.members)},307:function forEachChildInEnumMember(e,t,n){return visitNode2(t,e.name)||visitNode2(t,e.initializer)},268:function forEachChildInModuleDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.body)},272:function forEachChildInImportEqualsDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNode2(t,e.moduleReference)},273:function forEachChildInImportDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.importClause)||visitNode2(t,e.moduleSpecifier)||visitNode2(t,e.attributes)},274:function forEachChildInImportClause(e,t,n){return visitNode2(t,e.name)||visitNode2(t,e.namedBindings)},301:function forEachChildInImportAttributes(e,t,n){return visitNodes(t,n,e.elements)},302:function forEachChildInImportAttribute(e,t,n){return visitNode2(t,e.name)||visitNode2(t,e.value)},271:function forEachChildInNamespaceExportDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)},275:function forEachChildInNamespaceImport(e,t,n){return visitNode2(t,e.name)},281:function forEachChildInNamespaceExport(e,t,n){return visitNode2(t,e.name)},276:forEachChildInNamedImportsOrExports,280:forEachChildInNamedImportsOrExports,279:function forEachChildInExportDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.exportClause)||visitNode2(t,e.moduleSpecifier)||visitNode2(t,e.attributes)},277:forEachChildInImportOrExportSpecifier,282:forEachChildInImportOrExportSpecifier,278:function forEachChildInExportAssignment(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.expression)},229:function forEachChildInTemplateExpression(e,t,n){return visitNode2(t,e.head)||visitNodes(t,n,e.templateSpans)},240:function forEachChildInTemplateSpan(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.literal)},204:function forEachChildInTemplateLiteralType(e,t,n){return visitNode2(t,e.head)||visitNodes(t,n,e.templateSpans)},205:function forEachChildInTemplateLiteralTypeSpan(e,t,n){return visitNode2(t,e.type)||visitNode2(t,e.literal)},168:function forEachChildInComputedPropertyName(e,t,n){return visitNode2(t,e.expression)},299:function forEachChildInHeritageClause(e,t,n){return visitNodes(t,n,e.types)},234:function forEachChildInExpressionWithTypeArguments(e,t,n){return visitNode2(t,e.expression)||visitNodes(t,n,e.typeArguments)},284:function forEachChildInExternalModuleReference(e,t,n){return visitNode2(t,e.expression)},283:function forEachChildInMissingDeclaration(e,t,n){return visitNodes(t,n,e.modifiers)},357:function forEachChildInCommaListExpression(e,t,n){return visitNodes(t,n,e.elements)},285:function forEachChildInJsxElement(e,t,n){return visitNode2(t,e.openingElement)||visitNodes(t,n,e.children)||visitNode2(t,e.closingElement)},289:function forEachChildInJsxFragment(e,t,n){return visitNode2(t,e.openingFragment)||visitNodes(t,n,e.children)||visitNode2(t,e.closingFragment)},286:forEachChildInJsxOpeningOrSelfClosingElement,287:forEachChildInJsxOpeningOrSelfClosingElement,293:function forEachChildInJsxAttributes(e,t,n){return visitNodes(t,n,e.properties)},292:function forEachChildInJsxAttribute(e,t,n){return visitNode2(t,e.name)||visitNode2(t,e.initializer)},294:function forEachChildInJsxSpreadAttribute(e,t,n){return visitNode2(t,e.expression)},295:function forEachChildInJsxExpression(e,t,n){return visitNode2(t,e.dotDotDotToken)||visitNode2(t,e.expression)},288:function forEachChildInJsxClosingElement(e,t,n){return visitNode2(t,e.tagName)},296:function forEachChildInJsxNamespacedName(e,t,n){return visitNode2(t,e.namespace)||visitNode2(t,e.name)},191:forEachChildInOptionalRestOrJSDocParameterModifier,192:forEachChildInOptionalRestOrJSDocParameterModifier,310:forEachChildInOptionalRestOrJSDocParameterModifier,316:forEachChildInOptionalRestOrJSDocParameterModifier,315:forEachChildInOptionalRestOrJSDocParameterModifier,317:forEachChildInOptionalRestOrJSDocParameterModifier,319:forEachChildInOptionalRestOrJSDocParameterModifier,318:function forEachChildInJSDocFunctionType(e,t,n){return visitNodes(t,n,e.parameters)||visitNode2(t,e.type)},321:function forEachChildInJSDoc(e,t,n){return("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))||visitNodes(t,n,e.tags)},348:function forEachChildInJSDocSeeTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.name)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},311:function forEachChildInJSDocNameReference(e,t,n){return visitNode2(t,e.name)},312:function forEachChildInJSDocMemberName(e,t,n){return visitNode2(t,e.left)||visitNode2(t,e.right)},342:forEachChildInJSDocParameterOrPropertyTag,349:forEachChildInJSDocParameterOrPropertyTag,331:function forEachChildInJSDocAuthorTag(e,t,n){return visitNode2(t,e.tagName)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},330:function forEachChildInJSDocImplementsTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.class)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},329:function forEachChildInJSDocAugmentsTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.class)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},346:function forEachChildInJSDocTemplateTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.constraint)||visitNodes(t,n,e.typeParameters)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},347:function forEachChildInJSDocTypedefTag(e,t,n){return visitNode2(t,e.tagName)||(e.typeExpression&&310===e.typeExpression.kind?visitNode2(t,e.typeExpression)||visitNode2(t,e.fullName)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment)):visitNode2(t,e.fullName)||visitNode2(t,e.typeExpression)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment)))},339:function forEachChildInJSDocCallbackTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.fullName)||visitNode2(t,e.typeExpression)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},343:forEachChildInJSDocTypeLikeTag,345:forEachChildInJSDocTypeLikeTag,344:forEachChildInJSDocTypeLikeTag,341:forEachChildInJSDocTypeLikeTag,351:forEachChildInJSDocTypeLikeTag,350:forEachChildInJSDocTypeLikeTag,340:forEachChildInJSDocTypeLikeTag,324:function forEachChildInJSDocSignature(e,t,n){return forEach(e.typeParameters,t)||forEach(e.parameters,t)||visitNode2(t,e.type)},325:forEachChildInJSDocLinkCodeOrPlain,326:forEachChildInJSDocLinkCodeOrPlain,327:forEachChildInJSDocLinkCodeOrPlain,323:function forEachChildInJSDocTypeLiteral(e,t,n){return forEach(e.jsDocPropertyTags,t)},328:forEachChildInJSDocTag,333:forEachChildInJSDocTag,334:forEachChildInJSDocTag,335:forEachChildInJSDocTag,336:forEachChildInJSDocTag,337:forEachChildInJSDocTag,332:forEachChildInJSDocTag,338:forEachChildInJSDocTag,352:function forEachChildInJSDocImportTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.importClause)||visitNode2(t,e.moduleSpecifier)||visitNode2(t,e.attributes)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))},356:function forEachChildInPartiallyEmittedExpression(e,t,n){return visitNode2(t,e.expression)}};function forEachChildInCallOrConstructSignature(e,t,n){return visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.parameters)||visitNode2(t,e.type)}function forEachChildInUnionOrIntersectionType(e,t,n){return visitNodes(t,n,e.types)}function forEachChildInParenthesizedTypeOrTypeOperator(e,t,n){return visitNode2(t,e.type)}function forEachChildInObjectOrArrayBindingPattern(e,t,n){return visitNodes(t,n,e.elements)}function forEachChildInCallOrNewExpression(e,t,n){return visitNode2(t,e.expression)||visitNode2(t,e.questionDotToken)||visitNodes(t,n,e.typeArguments)||visitNodes(t,n,e.arguments)}function forEachChildInBlock(e,t,n){return visitNodes(t,n,e.statements)}function forEachChildInContinueOrBreakStatement(e,t,n){return visitNode2(t,e.label)}function forEachChildInClassDeclarationOrExpression(e,t,n){return visitNodes(t,n,e.modifiers)||visitNode2(t,e.name)||visitNodes(t,n,e.typeParameters)||visitNodes(t,n,e.heritageClauses)||visitNodes(t,n,e.members)}function forEachChildInNamedImportsOrExports(e,t,n){return visitNodes(t,n,e.elements)}function forEachChildInImportOrExportSpecifier(e,t,n){return visitNode2(t,e.propertyName)||visitNode2(t,e.name)}function forEachChildInJsxOpeningOrSelfClosingElement(e,t,n){return visitNode2(t,e.tagName)||visitNodes(t,n,e.typeArguments)||visitNode2(t,e.attributes)}function forEachChildInOptionalRestOrJSDocParameterModifier(e,t,n){return visitNode2(t,e.type)}function forEachChildInJSDocParameterOrPropertyTag(e,t,n){return visitNode2(t,e.tagName)||(e.isNameFirst?visitNode2(t,e.name)||visitNode2(t,e.typeExpression):visitNode2(t,e.typeExpression)||visitNode2(t,e.name))||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))}function forEachChildInJSDocTypeLikeTag(e,t,n){return visitNode2(t,e.tagName)||visitNode2(t,e.typeExpression)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))}function forEachChildInJSDocLinkCodeOrPlain(e,t,n){return visitNode2(t,e.name)}function forEachChildInJSDocTag(e,t,n){return visitNode2(t,e.tagName)||("string"==typeof e.comment?void 0:visitNodes(t,n,e.comment))}function forEachChild(e,t,n){if(void 0===e||e.kind<=166)return;const r=Ai[e.kind];return void 0===r?void 0:r(e,t,n)}function forEachChildRecursively(e,t,n){const r=gatherPossibleChildren(e),i=[];for(;i.length=0;--t)r.push(e[t]),i.push(o)}else{const n=t(e,o);if(n){if("skip"===n)continue;return n}if(e.kind>=167)for(const t of gatherPossibleChildren(e))r.push(t),i.push(e)}}}function gatherPossibleChildren(e){const t=[];return forEachChild(e,addWorkItem,addWorkItem),t;function addWorkItem(e){t.unshift(e)}}function setExternalModuleIndicator(e){e.externalModuleIndicator=isFileProbablyExternalModule(e)}function createSourceFile(e,t,n,r=!1,i){var o,a;let s;null==(o=J)||o.push(J.Phase.Parse,"createSourceFile",{path:e},!0),mark("beforeParse");const{languageVersion:c,setExternalModuleIndicator:l,impliedNodeFormat:d,jsDocParsingMode:p}="object"==typeof n?n:{languageVersion:n};if(100===c)s=Ii.parseSourceFile(e,t,c,void 0,r,6,noop,p);else{const n=void 0===d?l:e=>(e.impliedNodeFormat=d,(l||setExternalModuleIndicator)(e));s=Ii.parseSourceFile(e,t,c,void 0,r,i,n,p)}return mark("afterParse"),measure("Parse","beforeParse","afterParse"),null==(a=J)||a.pop(),s}function parseIsolatedEntityName(e,t){return Ii.parseIsolatedEntityName(e,t)}function parseJsonText(e,t){return Ii.parseJsonText(e,t)}function isExternalModule(e){return void 0!==e.externalModuleIndicator}function updateSourceFile(e,t,n,r=!1){const i=wi.updateSourceFile(e,t,n,r);return i.flags|=12582912&e.flags,i}function parseIsolatedJSDocComment(e,t,n){const r=Ii.JSDocParser.parseIsolatedJSDocComment(e,t,n);return r&&r.jsDoc&&Ii.fixupParentReferences(r.jsDoc),r}function parseJSDocTypeExpressionForTests(e,t,n){return Ii.JSDocParser.parseJSDocTypeExpressionForTests(e,t,n)}(e=>{var t,n,r,i,o,a=createScanner(99,!0),s=40960;function countNode(e){return x++,e}var c,p,u,m,_,f,g,y,T,S,x,v,b,C,E,N,k=createNodeFactory(11,{createBaseSourceFileNode:e=>countNode(new o(e,0,0)),createBaseIdentifierNode:e=>countNode(new r(e,0,0)),createBasePrivateIdentifierNode:e=>countNode(new i(e,0,0)),createBaseTokenNode:e=>countNode(new n(e,0,0)),createBaseNode:e=>countNode(new t(e,0,0))}),{createNodeArray:F,createNumericLiteral:P,createStringLiteral:D,createLiteralLikeNode:I,createIdentifier:A,createPrivateIdentifier:O,createToken:w,createArrayLiteralExpression:L,createObjectLiteralExpression:M,createPropertyAccessExpression:R,createPropertyAccessChain:B,createElementAccessExpression:j,createElementAccessChain:J,createCallExpression:W,createCallChain:U,createNewExpression:z,createParenthesizedExpression:V,createBlock:q,createVariableStatement:H,createExpressionStatement:K,createIfStatement:G,createWhileStatement:$,createForStatement:Q,createForOfStatement:X,createVariableDeclaration:Y,createVariableDeclarationList:Z}=k,ee=!0,te=!1;function parseJsonText2(e,t,n=2,r,i=!1){initializeState(e,t,n,r,6,0),p=N,nextToken();const o=getNodePos();let a,s;if(1===token())a=createNodeArray([],o,o),s=parseTokenNode();else{let e;for(;1!==token();){let t;switch(token()){case 23:t=parseArrayLiteralExpression();break;case 112:case 97:case 106:t=parseTokenNode();break;case 41:t=lookAhead(()=>9===nextToken()&&59!==nextToken())?parsePrefixUnaryExpression():parseObjectLiteralExpression();break;case 9:case 11:if(lookAhead(()=>59!==nextToken())){t=parseLiteralNode();break}default:t=parseObjectLiteralExpression()}e&&isArray(e)?e.push(t):e?e=[e,t]:(e=t,1!==token()&&parseErrorAtCurrentToken(Ot.Unexpected_token))}const t=isArray(e)?finishNode(L(e),o):h.checkDefined(e),n=K(t);finishNode(n,o),a=createNodeArray([n],o),s=parseExpectedToken(1,Ot.Unexpected_token)}const c=createSourceFile2(e,2,6,!1,a,s,p,noop);i&&fixupParentReferences(c),c.nodeCount=x,c.identifierCount=b,c.identifiers=v,c.parseDiagnostics=attachFileToDiagnostics(g,c),y&&(c.jsDocDiagnostics=attachFileToDiagnostics(y,c));const l=c;return clearState(),l}function initializeState(e,s,l,d,y,h){switch(t=Bn.getNodeConstructor(),n=Bn.getTokenConstructor(),r=Bn.getIdentifierConstructor(),i=Bn.getPrivateIdentifierConstructor(),o=Bn.getSourceFileConstructor(),c=normalizePath(e),u=s,m=l,T=d,_=y,f=getLanguageVariant(y),g=[],C=0,v=new Map,b=0,x=0,p=0,ee=!0,_){case 1:case 2:N=524288;break;case 6:N=134742016;break;default:N=0}te=!1,a.setText(u),a.setOnError(scanError),a.setScriptTarget(m),a.setLanguageVariant(f),a.setScriptKind(_),a.setJSDocParsingMode(h)}function clearState(){a.clearCommentDirectives(),a.setText(""),a.setOnError(void 0),a.setScriptKind(0),a.setJSDocParsingMode(0),u=void 0,m=void 0,T=void 0,_=void 0,f=void 0,p=0,g=void 0,y=void 0,C=0,v=void 0,E=void 0,ee=!0}e.parseSourceFile=function parseSourceFile(e,t,n,r,i=!1,o,s,m=0){var _;if(6===(o=ensureScriptKind(e,o))){const o=parseJsonText2(e,t,n,r,i);return convertToJson(o,null==(_=o.statements[0])?void 0:_.expression,o.parseDiagnostics,!1,void 0),o.referencedFiles=l,o.typeReferenceDirectives=l,o.libReferenceDirectives=l,o.amdDependencies=l,o.hasNoDefaultLib=!1,o.pragmas=d,o}initializeState(e,t,n,r,o,m);const f=function parseSourceFileWorker(e,t,n,r,i){const o=isDeclarationFileName(c);o&&(N|=33554432);p=N,nextToken();const s=parseList(0,parseStatement);h.assert(1===token());const l=hasPrecedingJSDocComment(),d=withJSDoc(parseTokenNode(),l),m=createSourceFile2(c,e,n,o,s,d,p,r);processCommentPragmas(m,u),processPragmasIntoFields(m,reportPragmaDiagnostic),m.commentDirectives=a.getCommentDirectives(),m.nodeCount=x,m.identifierCount=b,m.identifiers=v,m.parseDiagnostics=attachFileToDiagnostics(g,m),m.jsDocParsingMode=i,y&&(m.jsDocDiagnostics=attachFileToDiagnostics(y,m));t&&fixupParentReferences(m);return m;function reportPragmaDiagnostic(e,t,n){g.push(createDetachedDiagnostic(c,u,e,t,n))}}(n,i,o,s||setExternalModuleIndicator,m);return clearState(),f},e.parseIsolatedEntityName=function parseIsolatedEntityName2(e,t){initializeState("",e,t,void 0,1,0),nextToken();const n=parseEntityName(!0),r=1===token()&&!g.length;return clearState(),r?n:void 0},e.parseJsonText=parseJsonText2;let ne=!1;function withJSDoc(e,t){if(!t)return e;h.assert(!e.jsDoc);const n=mapDefined(getJSDocCommentRanges(e,u),t=>ce.parseJSDocComment(e,t.pos,t.end-t.pos));return n.length&&(e.jsDoc=n),ne&&(ne=!1,e.flags|=536870912),e}function fixupParentReferences(e){setParentRecursive(e,!0)}function createSourceFile2(e,t,n,r,i,o,s,c){let l=k.createSourceFile(i,o,s);if(setTextRangePosWidth(l,0,u.length),setFields(l),!r&&isExternalModule(l)&&67108864&l.transformFlags){const e=l;l=function reparseTopLevelAwait(e){const t=T,n=wi.createSyntaxCursor(e);T={currentNode:function currentNode2(e){const t=n.currentNode(e);return ee&&t&&containsPossibleTopLevelAwait(t)&&markAsIntersectingIncrementalChange(t),t}};const r=[],i=g;g=[];let o=0,s=findNextStatementWithAwait(e.statements,0);for(;-1!==s;){const t=e.statements[o],n=e.statements[s];addRange(r,e.statements,o,s),o=findNextStatementWithoutAwait(e.statements,s);const c=findIndex(i,e=>e.start>=t.pos),l=c>=0?findIndex(i,e=>e.start>=n.pos,c):-1;c>=0&&addRange(g,i,c,l>=0?l:void 0),speculationHelper(()=>{const t=N;for(N|=65536,a.resetTokenState(n.pos),nextToken();1!==token();){const t=a.getTokenFullStart(),n=parseListElement(0,parseStatement);if(r.push(n),t===a.getTokenFullStart()&&nextToken(),o>=0){const t=e.statements[o];if(n.end===t.pos)break;n.end>t.pos&&(o=findNextStatementWithoutAwait(e.statements,o+1))}}N=t},2),s=o>=0?findNextStatementWithAwait(e.statements,o):-1}if(o>=0){const t=e.statements[o];addRange(r,e.statements,o);const n=findIndex(i,e=>e.start>=t.pos);n>=0&&addRange(g,i,n)}return T=t,k.updateSourceFile(e,setTextRange(F(r),e.statements));function containsPossibleTopLevelAwait(e){return!(65536&e.flags||!(67108864&e.transformFlags))}function findNextStatementWithAwait(e,t){for(let n=t;n118}function isIdentifier2(){return 80===token()||(127!==token()||!inYieldContext())&&((135!==token()||!inAwaitContext())&&token()>118)}function parseExpected(e,t,n=!0){return token()===e?(n&&nextToken(),!0):(t?parseErrorAtCurrentToken(t):parseErrorAtCurrentToken(Ot._0_expected,tokenToString(e)),!1)}e.fixupParentReferences=fixupParentReferences;const re=Object.keys(wt).filter(e=>e.length>2);function parseErrorForMissingSemicolonAfter(e){if(isTaggedTemplateExpression(e))return void parseErrorAt(skipTrivia(u,e.template.pos),e.template.end,Ot.Module_declaration_names_may_only_use_or_quoted_strings);const t=isIdentifier(e)?idText(e):void 0;if(!t||!isIdentifierText(t,m))return void parseErrorAtCurrentToken(Ot._0_expected,tokenToString(27));const n=skipTrivia(u,e.pos);switch(t){case"const":case"let":case"var":return void parseErrorAt(n,e.end,Ot.Variable_declaration_not_allowed_at_this_location);case"declare":return;case"interface":return void parseErrorForInvalidName(Ot.Interface_name_cannot_be_0,Ot.Interface_must_be_given_a_name,19);case"is":return void parseErrorAt(n,a.getTokenStart(),Ot.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);case"module":case"namespace":return void parseErrorForInvalidName(Ot.Namespace_name_cannot_be_0,Ot.Namespace_must_be_given_a_name,19);case"type":return void parseErrorForInvalidName(Ot.Type_alias_name_cannot_be_0,Ot.Type_alias_must_be_given_a_name,64)}const r=getSpellingSuggestion(t,re,identity)??function getSpaceSuggestion(e){for(const t of re)if(e.length>t.length+2&&startsWith(e,t))return`${t} ${e.slice(t.length)}`;return}(t);r?parseErrorAt(n,e.end,Ot.Unknown_keyword_or_identifier_Did_you_mean_0,r):0!==token()&&parseErrorAt(n,e.end,Ot.Unexpected_keyword_or_identifier)}function parseErrorForInvalidName(e,t,n){token()===n?parseErrorAtCurrentToken(t):parseErrorAtCurrentToken(e,a.getTokenValue())}function parseExpectedJSDoc(e){return token()===e?(nextTokenJSDoc(),!0):(h.assert(isKeywordOrPunctuation(e)),parseErrorAtCurrentToken(Ot._0_expected,tokenToString(e)),!1)}function parseExpectedMatchingBrackets(e,t,n,r){if(token()===t)return void nextToken();const i=parseErrorAtCurrentToken(Ot._0_expected,tokenToString(t));n&&i&&addRelatedInfo(i,createDetachedDiagnostic(c,u,r,1,Ot.The_parser_expected_to_find_a_1_to_match_the_0_token_here,tokenToString(e),tokenToString(t)))}function parseOptional(e){return token()===e&&(nextToken(),!0)}function parseOptionalToken(e){if(token()===e)return parseTokenNode()}function parseOptionalTokenJSDoc(e){if(token()===e)return function parseTokenNodeJSDoc(){const e=getNodePos(),t=token();return nextTokenJSDoc(),finishNode(w(t),e)}()}function parseExpectedToken(e,t,n){return parseOptionalToken(e)||createMissingNode(e,!1,t||Ot._0_expected,n||tokenToString(e))}function parseTokenNode(){const e=getNodePos(),t=token();return nextToken(),finishNode(w(t),e)}function canParseSemicolon(){return 27===token()||(20===token()||1===token()||a.hasPrecedingLineBreak())}function tryParseSemicolon(){return!!canParseSemicolon()&&(27===token()&&nextToken(),!0)}function parseSemicolon(){return tryParseSemicolon()||parseExpected(27)}function createNodeArray(e,t,n,r){const i=F(e,r);return setTextRangePosEnd(i,t,n??a.getTokenFullStart()),i}function finishNode(e,t,n){return setTextRangePosEnd(e,t,n??a.getTokenFullStart()),N&&(e.flags|=N),te&&(te=!1,e.flags|=262144),e}function createMissingNode(e,t,n,...r){t?parseErrorAtPosition(a.getTokenFullStart(),0,n,...r):n&&parseErrorAtCurrentToken(n,...r);const i=getNodePos();return finishNode(80===e?A("",void 0):isTemplateLiteralKind(e)?k.createTemplateLiteralLikeNode(e,"","",void 0):9===e?P("",void 0):11===e?D("",void 0):283===e?k.createMissingDeclaration():w(e),i)}function internIdentifier(e){let t=v.get(e);return void 0===t&&v.set(e,t=e),t}function createIdentifier(e,t,n){if(e){b++;const e=a.hasPrecedingJSDocLeadingAsterisks()?a.getTokenStart():getNodePos(),t=token(),n=internIdentifier(a.getTokenValue()),r=a.hasExtendedUnicodeEscape();return nextTokenWithoutCheck(),finishNode(A(n,t,r),e)}if(81===token())return parseErrorAtCurrentToken(n||Ot.Private_identifiers_are_not_allowed_outside_class_bodies),createIdentifier(!0);if(0===token()&&a.tryScan(()=>80===a.reScanInvalidIdentifier()))return createIdentifier(!0);b++;const r=1===token(),i=a.isReservedWord(),o=a.getTokenText(),s=i?Ot.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:Ot.Identifier_expected;return createMissingNode(80,r,t||s,o)}function parseBindingIdentifier(e){return createIdentifier(isBindingIdentifier(),void 0,e)}function parseIdentifier(e,t){return createIdentifier(isIdentifier2(),e,t)}function parseIdentifierName(e){return createIdentifier(tokenIsIdentifierOrKeyword(token()),e)}function parseIdentifierNameErrorOnUnicodeEscapeSequence(){return(a.hasUnicodeEscape()||a.hasExtendedUnicodeEscape())&&parseErrorAtCurrentToken(Ot.Unicode_escape_sequence_cannot_appear_here),createIdentifier(tokenIsIdentifierOrKeyword(token()))}function isLiteralPropertyName(){return tokenIsIdentifierOrKeyword(token())||11===token()||9===token()||10===token()}function parsePropertyNameWorker(e){if(11===token()||9===token()||10===token()){const e=parseLiteralNode();return e.text=internIdentifier(e.text),e}return e&&23===token()?function parseComputedPropertyName(){const e=getNodePos();parseExpected(23);const t=allowInAnd(parseExpression);return parseExpected(24),finishNode(k.createComputedPropertyName(t),e)}():81===token()?parsePrivateIdentifier():parseIdentifierName()}function parsePropertyName(){return parsePropertyNameWorker(!0)}function parsePrivateIdentifier(){const e=getNodePos(),t=O(internIdentifier(a.getTokenValue()));return nextToken(),finishNode(t,e)}function parseContextualModifier(e){return token()===e&&tryParse(nextTokenCanFollowModifier)}function nextTokenIsOnSameLineAndCanFollowModifier(){return nextToken(),!a.hasPrecedingLineBreak()&&canFollowModifier()}function nextTokenCanFollowModifier(){switch(token()){case 87:return 94===nextToken();case 95:return nextToken(),90===token()?lookAhead(nextTokenCanFollowDefaultKeyword):156===token()?lookAhead(nextTokenCanFollowExportModifier):canFollowExportModifier();case 90:return nextTokenCanFollowDefaultKeyword();case 126:return nextToken(),canFollowModifier();case 139:case 153:return nextToken(),function canFollowGetOrSetKeyword(){return 23===token()||isLiteralPropertyName()}();default:return nextTokenIsOnSameLineAndCanFollowModifier()}}function canFollowExportModifier(){return 60===token()||42!==token()&&130!==token()&&19!==token()&&canFollowModifier()}function nextTokenCanFollowExportModifier(){return nextToken(),canFollowExportModifier()}function canFollowModifier(){return 23===token()||19===token()||42===token()||26===token()||isLiteralPropertyName()}function nextTokenCanFollowDefaultKeyword(){return nextToken(),86===token()||100===token()||120===token()||60===token()||128===token()&&lookAhead(nextTokenIsClassKeywordOnSameLine)||134===token()&&lookAhead(nextTokenIsFunctionKeywordOnSameLine)}function isListElement2(e,t){if(currentNode(e))return!0;switch(e){case 0:case 1:case 3:return!(27===token()&&t)&&isStartOfStatement();case 2:return 84===token()||90===token();case 4:return lookAhead(isTypeMemberStart);case 5:return lookAhead(isClassMemberStart)||27===token()&&!t;case 6:return 23===token()||isLiteralPropertyName();case 12:switch(token()){case 23:case 42:case 26:case 25:return!0;default:return isLiteralPropertyName()}case 18:return isLiteralPropertyName();case 9:return 23===token()||26===token()||isLiteralPropertyName();case 24:return function isImportAttributeName2(){return tokenIsIdentifierOrKeyword(token())||11===token()}();case 7:return 19===token()?lookAhead(isValidHeritageClauseObjectLiteral):t?isIdentifier2()&&!isHeritageClauseExtendsOrImplementsKeyword():isStartOfLeftHandSideExpression()&&!isHeritageClauseExtendsOrImplementsKeyword();case 8:return isBindingIdentifierOrPrivateIdentifierOrPattern();case 10:return 28===token()||26===token()||isBindingIdentifierOrPrivateIdentifierOrPattern();case 19:return 103===token()||87===token()||isIdentifier2();case 15:switch(token()){case 28:case 25:return!0}case 11:return 26===token()||isStartOfExpression();case 16:return isStartOfParameter(!1);case 17:return isStartOfParameter(!0);case 20:case 21:return 28===token()||isStartOfType();case 22:return isHeritageClause2();case 23:return(161!==token()||!lookAhead(nextTokenIsStringLiteral))&&(11===token()||tokenIsIdentifierOrKeyword(token()));case 13:return tokenIsIdentifierOrKeyword(token())||19===token();case 14:case 25:return!0;case 26:return h.fail("ParsingContext.Count used as a context");default:h.assertNever(e,"Non-exhaustive case in 'isListElement'.")}}function isValidHeritageClauseObjectLiteral(){if(h.assert(19===token()),20===nextToken()){const e=nextToken();return 28===e||19===e||96===e||119===e}return!0}function nextTokenIsIdentifier(){return nextToken(),isIdentifier2()}function nextTokenIsIdentifierOrKeyword(){return nextToken(),tokenIsIdentifierOrKeyword(token())}function nextTokenIsIdentifierOrKeywordOrGreaterThan(){return nextToken(),tokenIsIdentifierOrKeywordOrGreaterThan(token())}function isHeritageClauseExtendsOrImplementsKeyword(){return(119===token()||96===token())&&lookAhead(nextTokenIsStartOfExpression)}function nextTokenIsStartOfExpression(){return nextToken(),isStartOfExpression()}function nextTokenIsStartOfType(){return nextToken(),isStartOfType()}function isListTerminator(e){if(1===token())return!0;switch(e){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return 20===token();case 3:return 20===token()||84===token()||90===token();case 7:return 19===token()||96===token()||119===token();case 8:return function isVariableDeclaratorListTerminator(){if(canParseSemicolon())return!0;if(isInOrOfKeyword(token()))return!0;if(39===token())return!0;return!1}();case 19:return 32===token()||21===token()||19===token()||96===token()||119===token();case 11:return 22===token()||27===token();case 15:case 21:case 10:return 24===token();case 17:case 16:case 18:return 22===token()||24===token();case 20:return 28!==token();case 22:return 19===token()||20===token();case 13:return 32===token()||44===token();case 14:return 30===token()&&lookAhead(nextTokenIsSlash);default:return!1}}function parseList(e,t){const n=C;C|=1<=0)}function getExpectedCommaDiagnostic(e){return 6===e?Ot.An_enum_member_name_must_be_followed_by_a_or:void 0}function createMissingList(){const e=createNodeArray([],getNodePos());return e.isMissingList=!0,e}function parseBracketedList(e,t,n,r){if(parseExpected(n)){const n=parseDelimitedList(e,t);return parseExpected(r),n}return createMissingList()}function parseEntityName(e,t){const n=getNodePos();let r=e?parseIdentifierName(t):parseIdentifier(t);for(;parseOptional(25)&&30!==token();)r=finishNode(k.createQualifiedName(r,parseRightSideOfDot(e,!1,!0)),n);return r}function createQualifiedName(e,t){return finishNode(k.createQualifiedName(e,t),e.pos)}function parseRightSideOfDot(e,t,n){if(a.hasPrecedingLineBreak()&&tokenIsIdentifierOrKeyword(token())){if(lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine))return createMissingNode(80,!0,Ot.Identifier_expected)}if(81===token()){const e=parsePrivateIdentifier();return t?e:createMissingNode(80,!0,Ot.Identifier_expected)}return e?n?parseIdentifierName():parseIdentifierNameErrorOnUnicodeEscapeSequence():parseIdentifier()}function parseTemplateExpression(e){const t=getNodePos();return finishNode(k.createTemplateExpression(parseTemplateHead(e),function parseTemplateSpans(e){const t=getNodePos(),n=[];let r;do{r=parseTemplateSpan(e),n.push(r)}while(17===r.literal.kind);return createNodeArray(n,t)}(e)),t)}function parseTemplateType(){const e=getNodePos();return finishNode(k.createTemplateLiteralType(parseTemplateHead(!1),function parseTemplateTypeSpans(){const e=getNodePos(),t=[];let n;do{n=parseTemplateTypeSpan(),t.push(n)}while(17===n.literal.kind);return createNodeArray(t,e)}()),e)}function parseTemplateTypeSpan(){const e=getNodePos();return finishNode(k.createTemplateLiteralTypeSpan(parseType(),parseLiteralOfTemplateSpan(!1)),e)}function parseLiteralOfTemplateSpan(e){return 20===token()?(reScanTemplateToken(e),function parseTemplateMiddleOrTemplateTail(){const e=parseLiteralLikeNode(token());return h.assert(17===e.kind||18===e.kind,"Template fragment has wrong token kind"),e}()):parseExpectedToken(18,Ot._0_expected,tokenToString(20))}function parseTemplateSpan(e){const t=getNodePos();return finishNode(k.createTemplateSpan(allowInAnd(parseExpression),parseLiteralOfTemplateSpan(e)),t)}function parseLiteralNode(){return parseLiteralLikeNode(token())}function parseTemplateHead(e){!e&&26656&a.getTokenFlags()&&reScanTemplateToken(!1);const t=parseLiteralLikeNode(token());return h.assert(16===t.kind,"Template head has wrong token kind"),t}function parseLiteralLikeNode(e){const t=getNodePos(),n=isTemplateLiteralKind(e)?k.createTemplateLiteralLikeNode(e,a.getTokenValue(),function getTemplateLiteralRawText(e){const t=15===e||18===e,n=a.getTokenText();return n.substring(1,n.length-(a.isUnterminated()?0:t?1:2))}(e),7176&a.getTokenFlags()):9===e?P(a.getTokenValue(),a.getNumericLiteralFlags()):11===e?D(a.getTokenValue(),void 0,a.hasExtendedUnicodeEscape()):isLiteralKind(e)?I(e,a.getTokenValue()):h.fail();return a.hasExtendedUnicodeEscape()&&(n.hasExtendedUnicodeEscape=!0),a.isUnterminated()&&(n.isUnterminated=!0),nextToken(),finishNode(n,t)}function parseEntityNameOfTypeReference(){return parseEntityName(!0,Ot.Type_expected)}function parseTypeArgumentsOfTypeReference(){if(!a.hasPrecedingLineBreak()&&30===reScanLessThanToken())return parseBracketedList(20,parseType,30,32)}function parseTypeReference(){const e=getNodePos();return finishNode(k.createTypeReferenceNode(parseEntityNameOfTypeReference(),parseTypeArgumentsOfTypeReference()),e)}function typeHasArrowFunctionBlockingParseError(e){switch(e.kind){case 184:return nodeIsMissing(e.typeName);case 185:case 186:{const{parameters:t,type:n}=e;return function isMissingList(e){return!!e.isMissingList}(t)||typeHasArrowFunctionBlockingParseError(n)}case 197:return typeHasArrowFunctionBlockingParseError(e.type);default:return!1}}function parseThisTypeNode(){const e=getNodePos();return nextToken(),finishNode(k.createThisTypeNode(),e)}function parseJSDocParameter(){const e=getNodePos();let t;return 110!==token()&&105!==token()||(t=parseIdentifierName(),parseExpected(59)),finishNode(k.createParameterDeclaration(void 0,void 0,t,void 0,parseJSDocType(),void 0),e)}function parseJSDocType(){a.setSkipJsDocLeadingAsterisks(!0);const e=getNodePos();if(parseOptional(144)){const t=k.createJSDocNamepathType(void 0);e:for(;;)switch(token()){case 20:case 1:case 28:case 5:break e;default:nextTokenJSDoc()}return a.setSkipJsDocLeadingAsterisks(!1),finishNode(t,e)}const t=parseOptional(26);let n=parseTypeOrTypePredicate();return a.setSkipJsDocLeadingAsterisks(!1),t&&(n=finishNode(k.createJSDocVariadicType(n),e)),64===token()?(nextToken(),finishNode(k.createJSDocOptionalType(n),e)):n}function parseTypeParameter(){const e=getNodePos(),t=parseModifiers(!1,!0),n=parseIdentifier();let r,i;parseOptional(96)&&(isStartOfType()||!isStartOfExpression()?r=parseType():i=parseUnaryExpressionOrHigher());const o=parseOptional(64)?parseType():void 0,a=k.createTypeParameterDeclaration(t,n,r,o);return a.expression=i,finishNode(a,e)}function parseTypeParameters(){if(30===token())return parseBracketedList(19,parseTypeParameter,30,32)}function isStartOfParameter(e){return 26===token()||isBindingIdentifierOrPrivateIdentifierOrPattern()||isModifierKind(token())||60===token()||isStartOfType(!e)}function parseParameter(e){return parseParameterWorker(e)}function parseParameterWorker(e,t=!0){const n=getNodePos(),r=hasPrecedingJSDocComment(),i=e?doInAwaitContext(()=>parseModifiers(!0)):doOutsideOfAwaitContext(()=>parseModifiers(!0));if(110===token()){const e=k.createParameterDeclaration(i,void 0,createIdentifier(!0),void 0,parseTypeAnnotation(),void 0),t=firstOrUndefined(i);return t&&parseErrorAtRange(t,Ot.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),withJSDoc(finishNode(e,n),r)}const o=ee;ee=!1;const a=parseOptionalToken(26);if(!t&&!function isParameterNameStart(){return isBindingIdentifier()||23===token()||19===token()}())return;const s=withJSDoc(finishNode(k.createParameterDeclaration(i,a,function parseNameOfParameter(e){const t=parseIdentifierOrPattern(Ot.Private_identifiers_cannot_be_used_as_parameters);return 0===getFullWidth(t)&&!some(e)&&isModifierKind(token())&&nextToken(),t}(i),parseOptionalToken(58),parseTypeAnnotation(),parseInitializer()),n),r);return ee=o,s}function parseReturnType(e,t){if(function shouldParseReturnType(e,t){if(39===e)return parseExpected(e),!0;if(parseOptional(59))return!0;if(t&&39===token())return parseErrorAtCurrentToken(Ot._0_expected,tokenToString(59)),nextToken(),!0;return!1}(e,t))return allowConditionalTypesAnd(parseTypeOrTypePredicate)}function parseParametersWorker(e,t){const n=inYieldContext(),r=inAwaitContext();setYieldContext(!!(1&e)),setAwaitContext(!!(2&e));const i=32&e?parseDelimitedList(17,parseJSDocParameter):parseDelimitedList(16,()=>t?parseParameter(r):function parseParameterForSpeculation(e){return parseParameterWorker(e,!1)}(r));return setYieldContext(n),setAwaitContext(r),i}function parseParameters(e){if(!parseExpected(21))return createMissingList();const t=parseParametersWorker(e,!0);return parseExpected(22),t}function parseTypeMemberSemicolon(){parseOptional(28)||parseSemicolon()}function parseSignatureMember(e){const t=getNodePos(),n=hasPrecedingJSDocComment();181===e&&parseExpected(105);const r=parseTypeParameters(),i=parseParameters(4),o=parseReturnType(59,!0);parseTypeMemberSemicolon();return withJSDoc(finishNode(180===e?k.createCallSignature(r,i,o):k.createConstructSignature(r,i,o),t),n)}function isIndexSignature(){return 23===token()&&lookAhead(isUnambiguouslyIndexSignature)}function isUnambiguouslyIndexSignature(){if(nextToken(),26===token()||24===token())return!0;if(isModifierKind(token())){if(nextToken(),isIdentifier2())return!0}else{if(!isIdentifier2())return!1;nextToken()}return 59===token()||28===token()||58===token()&&(nextToken(),59===token()||28===token()||24===token())}function parseIndexSignatureDeclaration(e,t,n){const r=parseBracketedList(16,()=>parseParameter(!1),23,24),i=parseTypeAnnotation();parseTypeMemberSemicolon();return withJSDoc(finishNode(k.createIndexSignature(n,r,i),e),t)}function isTypeMemberStart(){if(21===token()||30===token()||139===token()||153===token())return!0;let e=!1;for(;isModifierKind(token());)e=!0,nextToken();return 23===token()||(isLiteralPropertyName()&&(e=!0,nextToken()),!!e&&(21===token()||30===token()||58===token()||59===token()||28===token()||canParseSemicolon()))}function parseTypeMember(){if(21===token()||30===token())return parseSignatureMember(180);if(105===token()&&lookAhead(nextTokenIsOpenParenOrLessThan))return parseSignatureMember(181);const e=getNodePos(),t=hasPrecedingJSDocComment(),n=parseModifiers(!1);return parseContextualModifier(139)?parseAccessorDeclaration(e,t,n,178,4):parseContextualModifier(153)?parseAccessorDeclaration(e,t,n,179,4):isIndexSignature()?parseIndexSignatureDeclaration(e,t,n):function parsePropertyOrMethodSignature(e,t,n){const r=parsePropertyName(),i=parseOptionalToken(58);let o;if(21===token()||30===token()){const e=parseTypeParameters(),t=parseParameters(4),a=parseReturnType(59,!0);o=k.createMethodSignature(n,r,i,e,t,a)}else{const e=parseTypeAnnotation();o=k.createPropertySignature(n,r,i,e),64===token()&&(o.initializer=parseInitializer())}return parseTypeMemberSemicolon(),withJSDoc(finishNode(o,e),t)}(e,t,n)}function nextTokenIsOpenParenOrLessThan(){return nextToken(),21===token()||30===token()}function nextTokenIsDot(){return 25===nextToken()}function nextTokenIsOpenParenOrLessThanOrDot(){switch(nextToken()){case 21:case 30:case 25:return!0}return!1}function parseObjectTypeMembers(){let e;return parseExpected(19)?(e=parseList(4,parseTypeMember),parseExpected(20)):e=createMissingList(),e}function isStartOfMappedType(){return nextToken(),40===token()||41===token()?148===nextToken():(148===token()&&nextToken(),23===token()&&nextTokenIsIdentifier()&&103===nextToken())}function parseMappedType(){const e=getNodePos();let t;parseExpected(19),148!==token()&&40!==token()&&41!==token()||(t=parseTokenNode(),148!==t.kind&&parseExpected(148)),parseExpected(23);const n=function parseMappedTypeParameter(){const e=getNodePos(),t=parseIdentifierName();parseExpected(103);const n=parseType();return finishNode(k.createTypeParameterDeclaration(void 0,t,n,void 0),e)}(),r=parseOptional(130)?parseType():void 0;let i;parseExpected(24),58!==token()&&40!==token()&&41!==token()||(i=parseTokenNode(),58!==i.kind&&parseExpected(58));const o=parseTypeAnnotation();parseSemicolon();const a=parseList(4,parseTypeMember);return parseExpected(20),finishNode(k.createMappedTypeNode(t,n,r,i,o,a),e)}function parseTupleElementType(){const e=getNodePos();if(parseOptional(26))return finishNode(k.createRestTypeNode(parseType()),e);const t=parseType();if(isJSDocNullableType(t)&&t.pos===t.type.pos){const e=k.createOptionalTypeNode(t.type);return setTextRange(e,t),e.flags=t.flags,e}return t}function isNextTokenColonOrQuestionColon(){return 59===nextToken()||58===token()&&59===nextToken()}function isTupleElementName(){return 26===token()?tokenIsIdentifierOrKeyword(nextToken())&&isNextTokenColonOrQuestionColon():tokenIsIdentifierOrKeyword(token())&&isNextTokenColonOrQuestionColon()}function parseTupleElementNameOrTupleElementType(){if(lookAhead(isTupleElementName)){const e=getNodePos(),t=hasPrecedingJSDocComment(),n=parseOptionalToken(26),r=parseIdentifierName(),i=parseOptionalToken(58);parseExpected(59);const o=parseTupleElementType();return withJSDoc(finishNode(k.createNamedTupleMember(n,r,i,o),e),t)}return parseTupleElementType()}function parseFunctionOrConstructorType(){const e=getNodePos(),t=hasPrecedingJSDocComment(),n=function parseModifiersForConstructorType(){let e;if(128===token()){const t=getNodePos();nextToken(),e=createNodeArray([finishNode(w(128),t)],t)}return e}(),r=parseOptional(105);h.assert(!n||r,"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");const i=parseTypeParameters(),o=parseParameters(4),a=parseReturnType(39,!1);return withJSDoc(finishNode(r?k.createConstructorTypeNode(n,i,o,a):k.createFunctionTypeNode(i,o,a),e),t)}function parseKeywordAndNoDot(){const e=parseTokenNode();return 25===token()?void 0:e}function parseLiteralTypeNode(e){const t=getNodePos();e&&nextToken();let n=112===token()||97===token()||106===token()?parseTokenNode():parseLiteralLikeNode(token());return e&&(n=finishNode(k.createPrefixUnaryExpression(41,n),t)),finishNode(k.createLiteralTypeNode(n),t)}function isStartOfTypeOfImportType(){return nextToken(),102===token()}function parseImportType(){p|=4194304;const e=getNodePos(),t=parseOptional(114);parseExpected(102),parseExpected(21);const n=parseType();let r;if(parseOptional(28)){const e=a.getTokenStart();parseExpected(19);const t=token();if(118===t||132===t?nextToken():parseErrorAtCurrentToken(Ot._0_expected,tokenToString(118)),parseExpected(59),r=parseImportAttributes(t,!0),parseOptional(28),!parseExpected(20)){const t=lastOrUndefined(g);t&&t.code===Ot._0_expected.code&&addRelatedInfo(t,createDetachedDiagnostic(c,u,e,1,Ot.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}}parseExpected(22);const i=parseOptional(25)?parseEntityNameOfTypeReference():void 0,o=parseTypeArgumentsOfTypeReference();return finishNode(k.createImportTypeNode(n,r,i,o,t),e)}function nextTokenIsNumericOrBigIntLiteral(){return nextToken(),9===token()||10===token()}function parseNonArrayType(){switch(token()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return tryParse(parseKeywordAndNoDot)||parseTypeReference();case 67:a.reScanAsteriskEqualsToken();case 42:return function parseJSDocAllType(){const e=getNodePos();return nextToken(),finishNode(k.createJSDocAllType(),e)}();case 61:a.reScanQuestionToken();case 58:return function parseJSDocUnknownOrNullableType(){const e=getNodePos();return nextToken(),28===token()||20===token()||22===token()||32===token()||64===token()||52===token()?finishNode(k.createJSDocUnknownType(),e):finishNode(k.createJSDocNullableType(parseType(),!1),e)}();case 100:return function parseJSDocFunctionType(){const e=getNodePos(),t=hasPrecedingJSDocComment();if(tryParse(nextTokenIsOpenParen)){const n=parseParameters(36),r=parseReturnType(59,!1);return withJSDoc(finishNode(k.createJSDocFunctionType(n,r),e),t)}return finishNode(k.createTypeReferenceNode(parseIdentifierName(),void 0),e)}();case 54:return function parseJSDocNonNullableType(){const e=getNodePos();return nextToken(),finishNode(k.createJSDocNonNullableType(parseNonArrayType(),!1),e)}();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return parseLiteralTypeNode();case 41:return lookAhead(nextTokenIsNumericOrBigIntLiteral)?parseLiteralTypeNode(!0):parseTypeReference();case 116:return parseTokenNode();case 110:{const e=parseThisTypeNode();return 142!==token()||a.hasPrecedingLineBreak()?e:function parseThisTypePredicate(e){return nextToken(),finishNode(k.createTypePredicateNode(void 0,e,parseType()),e.pos)}(e)}case 114:return lookAhead(isStartOfTypeOfImportType)?parseImportType():function parseTypeQuery(){const e=getNodePos();parseExpected(114);const t=parseEntityName(!0),n=a.hasPrecedingLineBreak()?void 0:tryParseTypeArguments();return finishNode(k.createTypeQueryNode(t,n),e)}();case 19:return lookAhead(isStartOfMappedType)?parseMappedType():function parseTypeLiteral(){const e=getNodePos();return finishNode(k.createTypeLiteralNode(parseObjectTypeMembers()),e)}();case 23:return function parseTupleType(){const e=getNodePos();return finishNode(k.createTupleTypeNode(parseBracketedList(21,parseTupleElementNameOrTupleElementType,23,24)),e)}();case 21:return function parseParenthesizedType(){const e=getNodePos();parseExpected(21);const t=parseType();return parseExpected(22),finishNode(k.createParenthesizedType(t),e)}();case 102:return parseImportType();case 131:return lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)?function parseAssertsTypePredicate(){const e=getNodePos(),t=parseExpectedToken(131),n=110===token()?parseThisTypeNode():parseIdentifier(),r=parseOptional(142)?parseType():void 0;return finishNode(k.createTypePredicateNode(t,n,r),e)}():parseTypeReference();case 16:return parseTemplateType();default:return parseTypeReference()}}function isStartOfType(e){switch(token()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!e;case 41:return!e&&lookAhead(nextTokenIsNumericOrBigIntLiteral);case 21:return!e&&lookAhead(isStartOfParenthesizedOrFunctionType);default:return isIdentifier2()}}function isStartOfParenthesizedOrFunctionType(){return nextToken(),22===token()||isStartOfParameter(!1)||isStartOfType()}function parsePostfixTypeOrHigher(){const e=getNodePos();let t=parseNonArrayType();for(;!a.hasPrecedingLineBreak();)switch(token()){case 54:nextToken(),t=finishNode(k.createJSDocNonNullableType(t,!0),e);break;case 58:if(lookAhead(nextTokenIsStartOfType))return t;nextToken(),t=finishNode(k.createJSDocNullableType(t,!0),e);break;case 23:if(parseExpected(23),isStartOfType()){const n=parseType();parseExpected(24),t=finishNode(k.createIndexedAccessTypeNode(t,n),e)}else parseExpected(24),t=finishNode(k.createArrayTypeNode(t),e);break;default:return t}return t}function tryParseConstraintOfInferType(){if(parseOptional(96)){const e=disallowConditionalTypesAnd(parseType);if(inDisallowConditionalTypesContext()||58!==token())return e}}function parseInferType(){const e=getNodePos();return parseExpected(140),finishNode(k.createInferTypeNode(function parseTypeParameterOfInferType(){const e=getNodePos(),t=parseIdentifier(),n=tryParse(tryParseConstraintOfInferType);return finishNode(k.createTypeParameterDeclaration(void 0,t,n),e)}()),e)}function parseTypeOperatorOrHigher(){const e=token();switch(e){case 143:case 158:case 148:return function parseTypeOperator(e){const t=getNodePos();return parseExpected(e),finishNode(k.createTypeOperatorNode(e,parseTypeOperatorOrHigher()),t)}(e);case 140:return parseInferType()}return allowConditionalTypesAnd(parsePostfixTypeOrHigher)}function parseFunctionOrConstructorTypeToError(e){if(isStartOfFunctionTypeOrConstructorType()){const t=parseFunctionOrConstructorType();let n;return n=isFunctionTypeNode(t)?e?Ot.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:Ot.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:e?Ot.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:Ot.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,parseErrorAtRange(t,n),t}}function parseUnionOrIntersectionType(e,t,n){const r=getNodePos(),i=52===e,o=parseOptional(e);let a=o&&parseFunctionOrConstructorTypeToError(i)||t();if(token()===e||o){const o=[a];for(;parseOptional(e);)o.push(parseFunctionOrConstructorTypeToError(i)||t());a=finishNode(n(createNodeArray(o,r)),r)}return a}function parseIntersectionTypeOrHigher(){return parseUnionOrIntersectionType(51,parseTypeOperatorOrHigher,k.createIntersectionTypeNode)}function nextTokenIsNewKeyword(){return nextToken(),105===token()}function isStartOfFunctionTypeOrConstructorType(){return 30===token()||(!(21!==token()||!lookAhead(isUnambiguouslyStartOfFunctionType))||(105===token()||128===token()&&lookAhead(nextTokenIsNewKeyword)))}function isUnambiguouslyStartOfFunctionType(){if(nextToken(),22===token()||26===token())return!0;if(function skipParameterStart(){if(isModifierKind(token())&&parseModifiers(!1),isIdentifier2()||110===token())return nextToken(),!0;if(23===token()||19===token()){const e=g.length;return parseIdentifierOrPattern(),e===g.length}return!1}()){if(59===token()||28===token()||58===token()||64===token())return!0;if(22===token()&&(nextToken(),39===token()))return!0}return!1}function parseTypeOrTypePredicate(){const e=getNodePos(),t=isIdentifier2()&&tryParse(parseTypePredicatePrefix),n=parseType();return t?finishNode(k.createTypePredicateNode(void 0,t,n),e):n}function parseTypePredicatePrefix(){const e=parseIdentifier();if(142===token()&&!a.hasPrecedingLineBreak())return nextToken(),e}function parseType(){if(81920&N)return doOutsideOfContext(81920,parseType);if(isStartOfFunctionTypeOrConstructorType())return parseFunctionOrConstructorType();const e=getNodePos(),t=function parseUnionTypeOrHigher(){return parseUnionOrIntersectionType(52,parseIntersectionTypeOrHigher,k.createUnionTypeNode)}();if(!inDisallowConditionalTypesContext()&&!a.hasPrecedingLineBreak()&&parseOptional(96)){const n=disallowConditionalTypesAnd(parseType);parseExpected(58);const r=allowConditionalTypesAnd(parseType);parseExpected(59);const i=allowConditionalTypesAnd(parseType);return finishNode(k.createConditionalTypeNode(t,n,r,i),e)}return t}function parseTypeAnnotation(){return parseOptional(59)?parseType():void 0}function isStartOfLeftHandSideExpression(){switch(token()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return lookAhead(nextTokenIsOpenParenOrLessThanOrDot);default:return isIdentifier2()}}function isStartOfExpression(){if(isStartOfLeftHandSideExpression())return!0;switch(token()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return!!isBinaryOperator2()||isIdentifier2()}}function parseExpression(){const e=inDecoratorContext();e&&setDecoratorContext(!1);const t=getNodePos();let n,r=parseAssignmentExpressionOrHigher(!0);for(;n=parseOptionalToken(28);)r=makeBinaryExpression(r,n,parseAssignmentExpressionOrHigher(!0),t);return e&&setDecoratorContext(!0),r}function parseInitializer(){return parseOptional(64)?parseAssignmentExpressionOrHigher(!0):void 0}function parseAssignmentExpressionOrHigher(e){if(function isYieldExpression2(){if(127===token())return!!inYieldContext()||lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine);return!1}())return function parseYieldExpression(){const e=getNodePos();return nextToken(),a.hasPrecedingLineBreak()||42!==token()&&!isStartOfExpression()?finishNode(k.createYieldExpression(void 0,void 0),e):finishNode(k.createYieldExpression(parseOptionalToken(42),parseAssignmentExpressionOrHigher(!0)),e)}();const t=function tryParseParenthesizedArrowFunctionExpression(e){const t=function isParenthesizedArrowFunctionExpression(){if(21===token()||30===token()||134===token())return lookAhead(isParenthesizedArrowFunctionExpressionWorker);if(39===token())return 1;return 0}();if(0===t)return;return 1===t?parseParenthesizedArrowFunctionExpression(!0,!0):tryParse(()=>function parsePossibleParenthesizedArrowFunctionExpression(e){const t=a.getTokenStart();if(null==E?void 0:E.has(t))return;const n=parseParenthesizedArrowFunctionExpression(!1,e);n||(E||(E=new Set)).add(t);return n}(e))}(e)||function tryParseAsyncSimpleArrowFunctionExpression(e){if(134===token()&&1===lookAhead(isUnParenthesizedAsyncArrowFunctionWorker)){const t=getNodePos(),n=hasPrecedingJSDocComment(),r=parseModifiersForArrowFunction();return parseSimpleArrowFunctionExpression(t,parseBinaryExpressionOrHigher(0),e,n,r)}return}(e);if(t)return t;const n=getNodePos(),r=hasPrecedingJSDocComment(),i=parseBinaryExpressionOrHigher(0);return 80===i.kind&&39===token()?parseSimpleArrowFunctionExpression(n,i,e,r,void 0):isLeftHandSideExpression(i)&&isAssignmentOperator(reScanGreaterToken())?makeBinaryExpression(i,parseTokenNode(),parseAssignmentExpressionOrHigher(e),n):function parseConditionalExpressionRest(e,t,n){const r=parseOptionalToken(58);if(!r)return e;let i;return finishNode(k.createConditionalExpression(e,r,doOutsideOfContext(s,()=>parseAssignmentExpressionOrHigher(!1)),i=parseExpectedToken(59),nodeIsPresent(i)?parseAssignmentExpressionOrHigher(n):createMissingNode(80,!1,Ot._0_expected,tokenToString(59))),t)}(i,n,e)}function nextTokenIsIdentifierOnSameLine(){return nextToken(),!a.hasPrecedingLineBreak()&&isIdentifier2()}function parseSimpleArrowFunctionExpression(e,t,n,r,i){h.assert(39===token(),"parseSimpleArrowFunctionExpression should only have been called if we had a =>");const o=k.createParameterDeclaration(void 0,void 0,t,void 0,void 0,void 0);finishNode(o,t.pos);const a=createNodeArray([o],o.pos,o.end),s=parseExpectedToken(39),c=parseArrowFunctionExpressionBody(!!i,n);return withJSDoc(finishNode(k.createArrowFunction(i,void 0,a,void 0,s,c),e),r)}function isParenthesizedArrowFunctionExpressionWorker(){if(134===token()){if(nextToken(),a.hasPrecedingLineBreak())return 0;if(21!==token()&&30!==token())return 0}const e=token(),t=nextToken();if(21===e){if(22===t){switch(nextToken()){case 39:case 59:case 19:return 1;default:return 0}}if(23===t||19===t)return 2;if(26===t)return 1;if(isModifierKind(t)&&134!==t&&lookAhead(nextTokenIsIdentifier))return 130===nextToken()?0:1;if(!isIdentifier2()&&110!==t)return 0;switch(nextToken()){case 59:return 1;case 58:return nextToken(),59===token()||28===token()||64===token()||22===token()?1:0;case 28:case 64:case 22:return 2}return 0}if(h.assert(30===e),!isIdentifier2()&&87!==token())return 0;if(1===f){return lookAhead(()=>{parseOptional(87);const e=nextToken();if(96===e){switch(nextToken()){case 64:case 32:case 44:return!1;default:return!0}}else if(28===e||64===e)return!0;return!1})?1:0}return 2}function isUnParenthesizedAsyncArrowFunctionWorker(){if(134===token()){if(nextToken(),a.hasPrecedingLineBreak()||39===token())return 0;const e=parseBinaryExpressionOrHigher(0);if(!a.hasPrecedingLineBreak()&&80===e.kind&&39===token())return 1}return 0}function parseParenthesizedArrowFunctionExpression(e,t){const n=getNodePos(),r=hasPrecedingJSDocComment(),i=parseModifiersForArrowFunction(),o=some(i,isAsyncModifier)?2:0,a=parseTypeParameters();let s;if(parseExpected(21)){if(e)s=parseParametersWorker(o,e);else{const t=parseParametersWorker(o,e);if(!t)return;s=t}if(!parseExpected(22)&&!e)return}else{if(!e)return;s=createMissingList()}const c=59===token(),l=parseReturnType(59,!1);if(l&&!e&&typeHasArrowFunctionBlockingParseError(l))return;let d=l;for(;197===(null==d?void 0:d.kind);)d=d.type;const p=d&&isJSDocFunctionType(d);if(!e&&39!==token()&&(p||19!==token()))return;const u=token(),m=parseExpectedToken(39),_=39===u||19===u?parseArrowFunctionExpressionBody(some(i,isAsyncModifier),t):parseIdentifier();if(!t&&c&&59!==token())return;return withJSDoc(finishNode(k.createArrowFunction(i,a,s,l,m,_),n),r)}function parseArrowFunctionExpressionBody(e,t){if(19===token())return parseFunctionBlock(e?2:0);if(27!==token()&&100!==token()&&86!==token()&&isStartOfStatement()&&!function isStartOfExpressionStatement(){return 19!==token()&&100!==token()&&86!==token()&&60!==token()&&isStartOfExpression()}())return parseFunctionBlock(16|(e?2:0));const n=inYieldContext();setYieldContext(!1);const r=ee;ee=!1;const i=e?doInAwaitContext(()=>parseAssignmentExpressionOrHigher(t)):doOutsideOfAwaitContext(()=>parseAssignmentExpressionOrHigher(t));return ee=r,setYieldContext(n),i}function parseBinaryExpressionOrHigher(e){const t=getNodePos();return parseBinaryExpressionRest(e,parseUnaryExpressionOrHigher(),t)}function isInOrOfKeyword(e){return 103===e||165===e}function parseBinaryExpressionRest(e,t,n){for(;;){reScanGreaterToken();const r=getBinaryOperatorPrecedence(token());if(!(43===token()?r>=e:r>e))break;if(103===token()&&inDisallowInContext())break;if(130===token()||152===token()){if(a.hasPrecedingLineBreak())break;{const e=token();nextToken(),t=152===e?makeSatisfiesExpression(t,parseType()):makeAsExpression(t,parseType())}}else t=makeBinaryExpression(t,parseTokenNode(),parseBinaryExpressionOrHigher(r),n)}return t}function isBinaryOperator2(){return(!inDisallowInContext()||103!==token())&&getBinaryOperatorPrecedence(token())>0}function makeSatisfiesExpression(e,t){return finishNode(k.createSatisfiesExpression(e,t),e.pos)}function makeBinaryExpression(e,t,n,r){return finishNode(k.createBinaryExpression(e,t,n),r)}function makeAsExpression(e,t){return finishNode(k.createAsExpression(e,t),e.pos)}function parsePrefixUnaryExpression(){const e=getNodePos();return finishNode(k.createPrefixUnaryExpression(token(),nextTokenAnd(parseSimpleUnaryExpression)),e)}function parseUnaryExpressionOrHigher(){if(function isUpdateExpression(){switch(token()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(1!==f)return!1;default:return!0}}()){const e=getNodePos(),t=parseUpdateExpression();return 43===token()?parseBinaryExpressionRest(getBinaryOperatorPrecedence(token()),t,e):t}const e=token(),t=parseSimpleUnaryExpression();if(43===token()){const n=skipTrivia(u,t.pos),{end:r}=t;217===t.kind?parseErrorAt(n,r,Ot.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(h.assert(isKeywordOrPunctuation(e)),parseErrorAt(n,r,Ot.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,tokenToString(e)))}return t}function parseSimpleUnaryExpression(){switch(token()){case 40:case 41:case 55:case 54:return parsePrefixUnaryExpression();case 91:return function parseDeleteExpression(){const e=getNodePos();return finishNode(k.createDeleteExpression(nextTokenAnd(parseSimpleUnaryExpression)),e)}();case 114:return function parseTypeOfExpression(){const e=getNodePos();return finishNode(k.createTypeOfExpression(nextTokenAnd(parseSimpleUnaryExpression)),e)}();case 116:return function parseVoidExpression(){const e=getNodePos();return finishNode(k.createVoidExpression(nextTokenAnd(parseSimpleUnaryExpression)),e)}();case 30:return 1===f?parseJsxElementOrSelfClosingElementOrFragment(!0,void 0,void 0,!0):function parseTypeAssertion(){h.assert(1!==f,"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");const e=getNodePos();parseExpected(30);const t=parseType();parseExpected(32);const n=parseSimpleUnaryExpression();return finishNode(k.createTypeAssertion(t,n),e)}();case 135:if(function isAwaitExpression2(){return 135===token()&&(!!inAwaitContext()||lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine))}())return function parseAwaitExpression(){const e=getNodePos();return finishNode(k.createAwaitExpression(nextTokenAnd(parseSimpleUnaryExpression)),e)}();default:return parseUpdateExpression()}}function parseUpdateExpression(){if(46===token()||47===token()){const e=getNodePos();return finishNode(k.createPrefixUnaryExpression(token(),nextTokenAnd(parseLeftHandSideExpressionOrHigher)),e)}if(1===f&&30===token()&&lookAhead(nextTokenIsIdentifierOrKeywordOrGreaterThan))return parseJsxElementOrSelfClosingElementOrFragment(!0);const e=parseLeftHandSideExpressionOrHigher();if(h.assert(isLeftHandSideExpression(e)),(46===token()||47===token())&&!a.hasPrecedingLineBreak()){const t=token();return nextToken(),finishNode(k.createPostfixUnaryExpression(e,t),e.pos)}return e}function parseLeftHandSideExpressionOrHigher(){const e=getNodePos();let t;return 102===token()?lookAhead(nextTokenIsOpenParenOrLessThan)?(p|=4194304,t=parseTokenNode()):lookAhead(nextTokenIsDot)?(nextToken(),nextToken(),t=finishNode(k.createMetaProperty(102,parseIdentifierName()),e),"defer"===t.name.escapedText?21!==token()&&30!==token()||(p|=4194304):p|=8388608):t=parseMemberExpressionOrHigher():t=108===token()?function parseSuperExpression(){const e=getNodePos();let t=parseTokenNode();if(30===token()){const e=getNodePos(),n=tryParse(parseTypeArgumentsInExpression);void 0!==n&&(parseErrorAt(e,getNodePos(),Ot.super_may_not_use_type_arguments),isTemplateStartOfTaggedTemplate()||(t=k.createExpressionWithTypeArguments(t,n)))}if(21===token()||25===token()||23===token())return t;return parseExpectedToken(25,Ot.super_must_be_followed_by_an_argument_list_or_member_access),finishNode(R(t,parseRightSideOfDot(!0,!0,!0)),e)}():parseMemberExpressionOrHigher(),parseCallExpressionRest(e,t)}function parseMemberExpressionOrHigher(){return parseMemberExpressionRest(getNodePos(),parsePrimaryExpression(),!0)}function parseJsxElementOrSelfClosingElementOrFragment(e,t,n,r=!1){const i=getNodePos(),o=function parseJsxOpeningOrSelfClosingElementOrOpeningFragment(e){const t=getNodePos();if(parseExpected(30),32===token())return scanJsxText(),finishNode(k.createJsxOpeningFragment(),t);const n=parseJsxElementName(),r=524288&N?void 0:tryParseTypeArguments(),i=function parseJsxAttributes(){const e=getNodePos();return finishNode(k.createJsxAttributes(parseList(13,parseJsxAttribute)),e)}();let o;32===token()?(scanJsxText(),o=k.createJsxOpeningElement(n,r,i)):(parseExpected(44),parseExpected(32,void 0,!1)&&(e?nextToken():scanJsxText()),o=k.createJsxSelfClosingElement(n,r,i));return finishNode(o,t)}(e);let a;if(287===o.kind){let t,r=parseJsxChildren(o);const s=r[r.length-1];if(285===(null==s?void 0:s.kind)&&!tagNamesAreEquivalent(s.openingElement.tagName,s.closingElement.tagName)&&tagNamesAreEquivalent(o.tagName,s.closingElement.tagName)){const e=s.children.end,n=finishNode(k.createJsxElement(s.openingElement,s.children,finishNode(k.createJsxClosingElement(finishNode(A(""),e,e)),e,e)),s.openingElement.pos,e);r=createNodeArray([...r.slice(0,r.length-1),n],r.pos,e),t=s.closingElement}else t=function parseJsxClosingElement(e,t){const n=getNodePos();parseExpected(31);const r=parseJsxElementName();parseExpected(32,void 0,!1)&&(t||!tagNamesAreEquivalent(e.tagName,r)?nextToken():scanJsxText());return finishNode(k.createJsxClosingElement(r),n)}(o,e),tagNamesAreEquivalent(o.tagName,t.tagName)||(n&&isJsxOpeningElement(n)&&tagNamesAreEquivalent(t.tagName,n.tagName)?parseErrorAtRange(o.tagName,Ot.JSX_element_0_has_no_corresponding_closing_tag,getTextOfNodeFromSourceText(u,o.tagName)):parseErrorAtRange(t.tagName,Ot.Expected_corresponding_JSX_closing_tag_for_0,getTextOfNodeFromSourceText(u,o.tagName)));a=finishNode(k.createJsxElement(o,r,t),i)}else 290===o.kind?a=finishNode(k.createJsxFragment(o,parseJsxChildren(o),function parseJsxClosingFragment(e){const t=getNodePos();parseExpected(31),parseExpected(32,Ot.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(e?nextToken():scanJsxText());return finishNode(k.createJsxJsxClosingFragment(),t)}(e)),i):(h.assert(286===o.kind),a=o);if(!r&&e&&30===token()){const e=void 0===t?a.pos:t,n=tryParse(()=>parseJsxElementOrSelfClosingElementOrFragment(!0,e));if(n){const t=createMissingNode(28,!1);return setTextRangePosWidth(t,n.pos,0),parseErrorAt(skipTrivia(u,e),n.end,Ot.JSX_expressions_must_have_one_parent_element),finishNode(k.createBinaryExpression(a,t,n),i)}}return a}function parseJsxChild(e,t){switch(t){case 1:if(isJsxOpeningFragment(e))parseErrorAtRange(e,Ot.JSX_fragment_has_no_corresponding_closing_tag);else{const t=e.tagName;parseErrorAt(Math.min(skipTrivia(u,t.pos),t.end),t.end,Ot.JSX_element_0_has_no_corresponding_closing_tag,getTextOfNodeFromSourceText(u,e.tagName))}return;case 31:case 7:return;case 12:case 13:return function parseJsxText(){const e=getNodePos(),t=k.createJsxText(a.getTokenValue(),13===S);return S=a.scanJsxToken(),finishNode(t,e)}();case 19:return parseJsxExpression(!1);case 30:return parseJsxElementOrSelfClosingElementOrFragment(!1,void 0,e);default:return h.assertNever(t)}}function parseJsxChildren(e){const t=[],n=getNodePos(),r=C;for(C|=16384;;){const n=parseJsxChild(e,S=a.reScanJsxToken());if(!n)break;if(t.push(n),isJsxOpeningElement(e)&&285===(null==n?void 0:n.kind)&&!tagNamesAreEquivalent(n.openingElement.tagName,n.closingElement.tagName)&&tagNamesAreEquivalent(e.tagName,n.closingElement.tagName))break}return C=r,createNodeArray(t,n)}function parseJsxElementName(){const e=getNodePos(),t=function parseJsxTagName(){const e=getNodePos();scanJsxIdentifier();const t=110===token(),n=parseIdentifierNameErrorOnUnicodeEscapeSequence();if(parseOptional(59))return scanJsxIdentifier(),finishNode(k.createJsxNamespacedName(n,parseIdentifierNameErrorOnUnicodeEscapeSequence()),e);return t?finishNode(k.createToken(110),e):n}();if(isJsxNamespacedName(t))return t;let n=t;for(;parseOptional(25);)n=finishNode(R(n,parseRightSideOfDot(!0,!1,!1)),e);return n}function parseJsxExpression(e){const t=getNodePos();if(!parseExpected(19))return;let n,r;return 20!==token()&&(e||(n=parseOptionalToken(26)),r=parseExpression()),e?parseExpected(20):parseExpected(20,void 0,!1)&&scanJsxText(),finishNode(k.createJsxExpression(n,r),t)}function parseJsxAttribute(){if(19===token())return function parseJsxSpreadAttribute(){const e=getNodePos();parseExpected(19),parseExpected(26);const t=parseExpression();return parseExpected(20),finishNode(k.createJsxSpreadAttribute(t),e)}();const e=getNodePos();return finishNode(k.createJsxAttribute(function parseJsxAttributeName(){const e=getNodePos();scanJsxIdentifier();const t=parseIdentifierNameErrorOnUnicodeEscapeSequence();if(parseOptional(59))return scanJsxIdentifier(),finishNode(k.createJsxNamespacedName(t,parseIdentifierNameErrorOnUnicodeEscapeSequence()),e);return t}(),function parseJsxAttributeValue(){if(64===token()){if(11===function scanJsxAttributeValue(){return S=a.scanJsxAttributeValue()}())return parseLiteralNode();if(19===token())return parseJsxExpression(!0);if(30===token())return parseJsxElementOrSelfClosingElementOrFragment(!0);parseErrorAtCurrentToken(Ot.or_JSX_element_expected)}return}()),e)}function nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate(){return nextToken(),tokenIsIdentifierOrKeyword(token())||23===token()||isTemplateStartOfTaggedTemplate()}function isStartOfOptionalPropertyOrElementAccessChain(){return 29===token()&&lookAhead(nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate)}function tryReparseOptionalChain(e){if(64&e.flags)return!0;if(isNonNullExpression(e)){let t=e.expression;for(;isNonNullExpression(t)&&!(64&t.flags);)t=t.expression;if(64&t.flags){for(;isNonNullExpression(e);)e.flags|=64,e=e.expression;return!0}}return!1}function parsePropertyAccessExpressionRest(e,t,n){const r=parseRightSideOfDot(!0,!0,!0),i=n||tryReparseOptionalChain(t),o=i?B(t,n,r):R(t,r);if(i&&isPrivateIdentifier(o.name)&&parseErrorAtRange(o.name,Ot.An_optional_chain_cannot_contain_private_identifiers),isExpressionWithTypeArguments(t)&&t.typeArguments){parseErrorAt(t.typeArguments.pos-1,skipTrivia(u,t.typeArguments.end)+1,Ot.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return finishNode(o,e)}function parseElementAccessExpressionRest(e,t,n){let r;if(24===token())r=createMissingNode(80,!0,Ot.An_element_access_expression_should_take_an_argument);else{const e=allowInAnd(parseExpression);isStringOrNumericLiteralLike(e)&&(e.text=internIdentifier(e.text)),r=e}parseExpected(24);return finishNode(n||tryReparseOptionalChain(t)?J(t,n,r):j(t,r),e)}function parseMemberExpressionRest(e,t,n){for(;;){let r,i=!1;if(n&&isStartOfOptionalPropertyOrElementAccessChain()?(r=parseExpectedToken(29),i=tokenIsIdentifierOrKeyword(token())):i=parseOptional(25),i)t=parsePropertyAccessExpressionRest(e,t,r);else if(!r&&inDecoratorContext()||!parseOptional(23)){if(!isTemplateStartOfTaggedTemplate()){if(!r){if(54===token()&&!a.hasPrecedingLineBreak()){nextToken(),t=finishNode(k.createNonNullExpression(t),e);continue}const n=tryParse(parseTypeArgumentsInExpression);if(n){t=finishNode(k.createExpressionWithTypeArguments(t,n),e);continue}}return t}t=r||234!==t.kind?parseTaggedTemplateRest(e,t,r,void 0):parseTaggedTemplateRest(e,t.expression,r,t.typeArguments)}else t=parseElementAccessExpressionRest(e,t,r)}}function isTemplateStartOfTaggedTemplate(){return 15===token()||16===token()}function parseTaggedTemplateRest(e,t,n,r){const i=k.createTaggedTemplateExpression(t,r,15===token()?(reScanTemplateToken(!0),parseLiteralNode()):parseTemplateExpression(!0));return(n||64&t.flags)&&(i.flags|=64),i.questionDotToken=n,finishNode(i,e)}function parseCallExpressionRest(e,t){for(;;){let n;t=parseMemberExpressionRest(e,t,!0);const r=parseOptionalToken(29);if(!r||(n=tryParse(parseTypeArgumentsInExpression),!isTemplateStartOfTaggedTemplate())){if(n||21===token()){r||234!==t.kind||(n=t.typeArguments,t=t.expression);const i=parseArgumentList();t=finishNode(r||tryReparseOptionalChain(t)?U(t,r,n,i):W(t,n,i),e);continue}if(r){const n=createMissingNode(80,!1,Ot.Identifier_expected);t=finishNode(B(t,r,n),e)}break}t=parseTaggedTemplateRest(e,t,r,n)}return t}function parseArgumentList(){parseExpected(21);const e=parseDelimitedList(11,parseArgumentExpression);return parseExpected(22),e}function parseTypeArgumentsInExpression(){if(524288&N)return;if(30!==reScanLessThanToken())return;nextToken();const e=parseDelimitedList(20,parseType);return 32===reScanGreaterToken()?(nextToken(),e&&function canFollowTypeArgumentsInExpression(){switch(token()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return a.hasPrecedingLineBreak()||isBinaryOperator2()||!isStartOfExpression()}()?e:void 0):void 0}function parsePrimaryExpression(){switch(token()){case 15:26656&a.getTokenFlags()&&reScanTemplateToken(!1);case 9:case 10:case 11:return parseLiteralNode();case 110:case 108:case 106:case 112:case 97:return parseTokenNode();case 21:return function parseParenthesizedExpression(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(21);const n=allowInAnd(parseExpression);return parseExpected(22),withJSDoc(finishNode(V(n),e),t)}();case 23:return parseArrayLiteralExpression();case 19:return parseObjectLiteralExpression();case 134:if(!lookAhead(nextTokenIsFunctionKeywordOnSameLine))break;return parseFunctionExpression();case 60:return function parseDecoratedExpression(){const e=getNodePos(),t=hasPrecedingJSDocComment(),n=parseModifiers(!0);if(86===token())return parseClassDeclarationOrExpression(e,t,n,232);const r=createMissingNode(283,!0,Ot.Expression_expected);return setTextRangePos(r,e),r.modifiers=n,r}();case 86:return function parseClassExpression(){return parseClassDeclarationOrExpression(getNodePos(),hasPrecedingJSDocComment(),void 0,232)}();case 100:return parseFunctionExpression();case 105:return function parseNewExpressionOrNewDotTarget(){const e=getNodePos();if(parseExpected(105),parseOptional(25)){const t=parseIdentifierName();return finishNode(k.createMetaProperty(105,t),e)}let t,n=parseMemberExpressionRest(getNodePos(),parsePrimaryExpression(),!1);234===n.kind&&(t=n.typeArguments,n=n.expression);29===token()&&parseErrorAtCurrentToken(Ot.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,getTextOfNodeFromSourceText(u,n));const r=21===token()?parseArgumentList():void 0;return finishNode(z(n,t,r),e)}();case 44:case 69:if(14===function reScanSlashToken(){return S=a.reScanSlashToken()}())return parseLiteralNode();break;case 16:return parseTemplateExpression(!1);case 81:return parsePrivateIdentifier()}return parseIdentifier(Ot.Expression_expected)}function parseArgumentOrArrayLiteralElement(){return 26===token()?function parseSpreadElement(){const e=getNodePos();parseExpected(26);const t=parseAssignmentExpressionOrHigher(!0);return finishNode(k.createSpreadElement(t),e)}():28===token()?finishNode(k.createOmittedExpression(),getNodePos()):parseAssignmentExpressionOrHigher(!0)}function parseArgumentExpression(){return doOutsideOfContext(s,parseArgumentOrArrayLiteralElement)}function parseArrayLiteralExpression(){const e=getNodePos(),t=a.getTokenStart(),n=parseExpected(23),r=a.hasPrecedingLineBreak(),i=parseDelimitedList(15,parseArgumentOrArrayLiteralElement);return parseExpectedMatchingBrackets(23,24,n,t),finishNode(L(i,r),e)}function parseObjectLiteralElement(){const e=getNodePos(),t=hasPrecedingJSDocComment();if(parseOptionalToken(26)){const n=parseAssignmentExpressionOrHigher(!0);return withJSDoc(finishNode(k.createSpreadAssignment(n),e),t)}const n=parseModifiers(!0);if(parseContextualModifier(139))return parseAccessorDeclaration(e,t,n,178,0);if(parseContextualModifier(153))return parseAccessorDeclaration(e,t,n,179,0);const r=parseOptionalToken(42),i=isIdentifier2(),o=parsePropertyName(),a=parseOptionalToken(58),s=parseOptionalToken(54);if(r||21===token()||30===token())return parseMethodDeclaration(e,t,n,r,o,a,s);let c;if(i&&59!==token()){const e=parseOptionalToken(64),t=e?allowInAnd(()=>parseAssignmentExpressionOrHigher(!0)):void 0;c=k.createShorthandPropertyAssignment(o,t),c.equalsToken=e}else{parseExpected(59);const e=allowInAnd(()=>parseAssignmentExpressionOrHigher(!0));c=k.createPropertyAssignment(o,e)}return c.modifiers=n,c.questionToken=a,c.exclamationToken=s,withJSDoc(finishNode(c,e),t)}function parseObjectLiteralExpression(){const e=getNodePos(),t=a.getTokenStart(),n=parseExpected(19),r=a.hasPrecedingLineBreak(),i=parseDelimitedList(12,parseObjectLiteralElement,!0);return parseExpectedMatchingBrackets(19,20,n,t),finishNode(M(i,r),e)}function parseFunctionExpression(){const e=inDecoratorContext();setDecoratorContext(!1);const t=getNodePos(),n=hasPrecedingJSDocComment(),r=parseModifiers(!1);parseExpected(100);const i=parseOptionalToken(42),o=i?1:0,a=some(r,isAsyncModifier)?2:0,s=o&&a?function doInYieldAndAwaitContext(e){return doInsideOfContext(81920,e)}(parseOptionalBindingIdentifier):o?function doInYieldContext(e){return doInsideOfContext(16384,e)}(parseOptionalBindingIdentifier):a?doInAwaitContext(parseOptionalBindingIdentifier):parseOptionalBindingIdentifier(),c=parseTypeParameters(),l=parseParameters(o|a),d=parseReturnType(59,!1),p=parseFunctionBlock(o|a);setDecoratorContext(e);return withJSDoc(finishNode(k.createFunctionExpression(r,i,s,c,l,d,p),t),n)}function parseOptionalBindingIdentifier(){return isBindingIdentifier()?parseBindingIdentifier():void 0}function parseBlock(e,t){const n=getNodePos(),r=hasPrecedingJSDocComment(),i=a.getTokenStart(),o=parseExpected(19,t);if(o||e){const e=a.hasPrecedingLineBreak(),t=parseList(1,parseStatement);parseExpectedMatchingBrackets(19,20,o,i);const s=withJSDoc(finishNode(q(t,e),n),r);return 64===token()&&(parseErrorAtCurrentToken(Ot.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),nextToken()),s}{const e=createMissingList();return withJSDoc(finishNode(q(e,void 0),n),r)}}function parseFunctionBlock(e,t){const n=inYieldContext();setYieldContext(!!(1&e));const r=inAwaitContext();setAwaitContext(!!(2&e));const i=ee;ee=!1;const o=inDecoratorContext();o&&setDecoratorContext(!1);const a=parseBlock(!!(16&e),t);return o&&setDecoratorContext(!0),ee=i,setYieldContext(n),setAwaitContext(r),a}function parseForOrForInOrForOfStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(99);const n=parseOptionalToken(135);let r,i;if(parseExpected(21),27!==token()&&(r=115===token()||121===token()||87===token()||160===token()&&lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf)||135===token()&&lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine)?parseVariableDeclarationList(!0):function disallowInAnd(e){return doInsideOfContext(8192,e)}(parseExpression)),n?parseExpected(165):parseOptional(165)){const e=allowInAnd(()=>parseAssignmentExpressionOrHigher(!0));parseExpected(22),i=X(n,r,e,parseStatement())}else if(parseOptional(103)){const e=allowInAnd(parseExpression);parseExpected(22),i=k.createForInStatement(r,e,parseStatement())}else{parseExpected(27);const e=27!==token()&&22!==token()?allowInAnd(parseExpression):void 0;parseExpected(27);const t=22!==token()?allowInAnd(parseExpression):void 0;parseExpected(22),i=Q(r,e,t,parseStatement())}return withJSDoc(finishNode(i,e),t)}function parseBreakOrContinueStatement(e){const t=getNodePos(),n=hasPrecedingJSDocComment();parseExpected(253===e?83:88);const r=canParseSemicolon()?void 0:parseIdentifier();parseSemicolon();return withJSDoc(finishNode(253===e?k.createBreakStatement(r):k.createContinueStatement(r),t),n)}function parseCaseOrDefaultClause(){return 84===token()?function parseCaseClause(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(84);const n=allowInAnd(parseExpression);parseExpected(59);const r=parseList(3,parseStatement);return withJSDoc(finishNode(k.createCaseClause(n,r),e),t)}():function parseDefaultClause(){const e=getNodePos();parseExpected(90),parseExpected(59);const t=parseList(3,parseStatement);return finishNode(k.createDefaultClause(t),e)}()}function parseSwitchStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(109),parseExpected(21);const n=allowInAnd(parseExpression);parseExpected(22);const r=function parseCaseBlock(){const e=getNodePos();parseExpected(19);const t=parseList(2,parseCaseOrDefaultClause);return parseExpected(20),finishNode(k.createCaseBlock(t),e)}();return withJSDoc(finishNode(k.createSwitchStatement(n,r),e),t)}function parseTryStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(113);const n=parseBlock(!1),r=85===token()?function parseCatchClause(){const e=getNodePos();let t;parseExpected(85),parseOptional(21)?(t=parseVariableDeclaration(),parseExpected(22)):t=void 0;const n=parseBlock(!1);return finishNode(k.createCatchClause(t,n),e)}():void 0;let i;return r&&98!==token()||(parseExpected(98,Ot.catch_or_finally_expected),i=parseBlock(!1)),withJSDoc(finishNode(k.createTryStatement(n,r,i),e),t)}function nextTokenIsIdentifierOrKeywordOnSameLine(){return nextToken(),tokenIsIdentifierOrKeyword(token())&&!a.hasPrecedingLineBreak()}function nextTokenIsClassKeywordOnSameLine(){return nextToken(),86===token()&&!a.hasPrecedingLineBreak()}function nextTokenIsFunctionKeywordOnSameLine(){return nextToken(),100===token()&&!a.hasPrecedingLineBreak()}function nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine(){return nextToken(),(tokenIsIdentifierOrKeyword(token())||9===token()||10===token()||11===token())&&!a.hasPrecedingLineBreak()}function isDeclaration2(){for(;;)switch(token()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return isUsingDeclaration();case 135:return isAwaitUsingDeclaration();case 120:case 156:case 166:return nextTokenIsIdentifierOnSameLine();case 144:case 145:return nextTokenIsIdentifierOrStringLiteralOnSameLine();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:const e=token();if(nextToken(),a.hasPrecedingLineBreak())return!1;if(138===e&&156===token())return!0;continue;case 162:return nextToken(),19===token()||80===token()||95===token();case 102:return nextToken(),166===token()||11===token()||42===token()||19===token()||tokenIsIdentifierOrKeyword(token());case 95:let t=nextToken();if(156===t&&(t=lookAhead(nextToken)),64===t||42===t||19===t||90===t||130===t||60===t)return!0;continue;case 126:nextToken();continue;default:return!1}}function isStartOfDeclaration(){return lookAhead(isDeclaration2)}function isStartOfStatement(){switch(token()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:case 134:case 138:case 120:case 144:case 145:case 156:case 162:case 166:return!0;case 102:return isStartOfDeclaration()||lookAhead(nextTokenIsOpenParenOrLessThanOrDot);case 87:case 95:return isStartOfDeclaration();case 129:case 125:case 123:case 124:case 126:case 148:return isStartOfDeclaration()||!lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);default:return isStartOfExpression()}}function nextTokenIsBindingIdentifierOrStartOfDestructuring(){return nextToken(),isBindingIdentifier()||19===token()||23===token()}function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf(){return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(!0)}function nextTokenIsEqualsOrSemicolonOrColonToken(){return nextToken(),64===token()||27===token()||59===token()}function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(e){return nextToken(),e&&165===token()?lookAhead(nextTokenIsEqualsOrSemicolonOrColonToken):(isBindingIdentifier()||19===token())&&!a.hasPrecedingLineBreak()}function isUsingDeclaration(){return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine)}function nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine(e){return 160===nextToken()&&nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(e)}function isAwaitUsingDeclaration(){return lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine)}function parseStatement(){switch(token()){case 27:return function parseEmptyStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();return parseExpected(27),withJSDoc(finishNode(k.createEmptyStatement(),e),t)}();case 19:return parseBlock(!1);case 115:return parseVariableStatement(getNodePos(),hasPrecedingJSDocComment(),void 0);case 121:if(function isLetDeclaration(){return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuring)}())return parseVariableStatement(getNodePos(),hasPrecedingJSDocComment(),void 0);break;case 135:if(isAwaitUsingDeclaration())return parseVariableStatement(getNodePos(),hasPrecedingJSDocComment(),void 0);break;case 160:if(isUsingDeclaration())return parseVariableStatement(getNodePos(),hasPrecedingJSDocComment(),void 0);break;case 100:return parseFunctionDeclaration(getNodePos(),hasPrecedingJSDocComment(),void 0);case 86:return parseClassDeclaration(getNodePos(),hasPrecedingJSDocComment(),void 0);case 101:return function parseIfStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(101);const n=a.getTokenStart(),r=parseExpected(21),i=allowInAnd(parseExpression);parseExpectedMatchingBrackets(21,22,r,n);const o=parseStatement(),s=parseOptional(93)?parseStatement():void 0;return withJSDoc(finishNode(G(i,o,s),e),t)}();case 92:return function parseDoStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(92);const n=parseStatement();parseExpected(117);const r=a.getTokenStart(),i=parseExpected(21),o=allowInAnd(parseExpression);return parseExpectedMatchingBrackets(21,22,i,r),parseOptional(27),withJSDoc(finishNode(k.createDoStatement(n,o),e),t)}();case 117:return function parseWhileStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(117);const n=a.getTokenStart(),r=parseExpected(21),i=allowInAnd(parseExpression);parseExpectedMatchingBrackets(21,22,r,n);const o=parseStatement();return withJSDoc(finishNode($(i,o),e),t)}();case 99:return parseForOrForInOrForOfStatement();case 88:return parseBreakOrContinueStatement(252);case 83:return parseBreakOrContinueStatement(253);case 107:return function parseReturnStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(107);const n=canParseSemicolon()?void 0:allowInAnd(parseExpression);return parseSemicolon(),withJSDoc(finishNode(k.createReturnStatement(n),e),t)}();case 118:return function parseWithStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(118);const n=a.getTokenStart(),r=parseExpected(21),i=allowInAnd(parseExpression);parseExpectedMatchingBrackets(21,22,r,n);const o=doInsideOfContext(67108864,parseStatement);return withJSDoc(finishNode(k.createWithStatement(i,o),e),t)}();case 109:return parseSwitchStatement();case 111:return function parseThrowStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();parseExpected(111);let n=a.hasPrecedingLineBreak()?void 0:allowInAnd(parseExpression);return void 0===n&&(b++,n=finishNode(A(""),getNodePos())),tryParseSemicolon()||parseErrorForMissingSemicolonAfter(n),withJSDoc(finishNode(k.createThrowStatement(n),e),t)}();case 113:case 85:case 98:return parseTryStatement();case 89:return function parseDebuggerStatement(){const e=getNodePos(),t=hasPrecedingJSDocComment();return parseExpected(89),parseSemicolon(),withJSDoc(finishNode(k.createDebuggerStatement(),e),t)}();case 60:return parseDeclaration();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(isStartOfDeclaration())return parseDeclaration()}return function parseExpressionOrLabeledStatement(){const e=getNodePos();let t,n=hasPrecedingJSDocComment();const r=21===token(),i=allowInAnd(parseExpression);return isIdentifier(i)&&parseOptional(59)?t=k.createLabeledStatement(i,parseStatement()):(tryParseSemicolon()||parseErrorForMissingSemicolonAfter(i),t=K(i),r&&(n=!1)),withJSDoc(finishNode(t,e),n)}()}function isDeclareModifier(e){return 138===e.kind}function parseDeclaration(){const e=getNodePos(),t=hasPrecedingJSDocComment(),n=parseModifiers(!0);if(some(n,isDeclareModifier)){const r=function tryReuseAmbientDeclaration(e){return doInsideOfContext(33554432,()=>{const t=currentNode(C,e);if(t)return consumeNode(t)})}(e);if(r)return r;for(const e of n)e.flags|=33554432;return doInsideOfContext(33554432,()=>parseDeclarationWorker(e,t,n))}return parseDeclarationWorker(e,t,n)}function parseDeclarationWorker(e,t,n){switch(token()){case 115:case 121:case 87:case 160:case 135:return parseVariableStatement(e,t,n);case 100:return parseFunctionDeclaration(e,t,n);case 86:return parseClassDeclaration(e,t,n);case 120:return function parseInterfaceDeclaration(e,t,n){parseExpected(120);const r=parseIdentifier(),i=parseTypeParameters(),o=parseHeritageClauses(),a=parseObjectTypeMembers();return withJSDoc(finishNode(k.createInterfaceDeclaration(n,r,i,o,a),e),t)}(e,t,n);case 156:return function parseTypeAliasDeclaration(e,t,n){parseExpected(156),a.hasPrecedingLineBreak()&&parseErrorAtCurrentToken(Ot.Line_break_not_permitted_here);const r=parseIdentifier(),i=parseTypeParameters();parseExpected(64);const o=141===token()&&tryParse(parseKeywordAndNoDot)||parseType();parseSemicolon();return withJSDoc(finishNode(k.createTypeAliasDeclaration(n,r,i,o),e),t)}(e,t,n);case 94:return function parseEnumDeclaration(e,t,n){parseExpected(94);const r=parseIdentifier();let i;parseExpected(19)?(i=function doOutsideOfYieldAndAwaitContext(e){return doOutsideOfContext(81920,e)}(()=>parseDelimitedList(6,parseEnumMember)),parseExpected(20)):i=createMissingList();return withJSDoc(finishNode(k.createEnumDeclaration(n,r,i),e),t)}(e,t,n);case 162:case 144:case 145:return function parseModuleDeclaration(e,t,n){let r=0;if(162===token())return parseAmbientExternalModuleDeclaration(e,t,n);if(parseOptional(145))r|=32;else if(parseExpected(144),11===token())return parseAmbientExternalModuleDeclaration(e,t,n);return parseModuleOrNamespaceDeclaration(e,t,n,r)}(e,t,n);case 102:return function parseImportDeclarationOrImportEqualsDeclaration(e,t,n){parseExpected(102);const r=a.getTokenFullStart();let i,o;isIdentifier2()&&(i=parseIdentifier());"type"===(null==i?void 0:i.escapedText)&&(161!==token()||isIdentifier2()&&lookAhead(nextTokenIsFromKeywordOrEqualsToken))&&(isIdentifier2()||function tokenAfterImportDefinitelyProducesImportDeclaration(){return 42===token()||19===token()}())?(o=156,i=isIdentifier2()?parseIdentifier():void 0):"defer"!==(null==i?void 0:i.escapedText)||(161===token()?lookAhead(nextTokenIsStringLiteral):28===token()||64===token())||(o=166,i=isIdentifier2()?parseIdentifier():void 0);if(i&&!function tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration(){return 28===token()||161===token()}()&&166!==o)return function parseImportEqualsDeclaration(e,t,n,r,i){parseExpected(64);const o=function parseModuleReference(){return function isExternalModuleReference2(){return 149===token()&&lookAhead(nextTokenIsOpenParen)}()?function parseExternalModuleReference(){const e=getNodePos();parseExpected(149),parseExpected(21);const t=parseModuleSpecifier();return parseExpected(22),finishNode(k.createExternalModuleReference(t),e)}():parseEntityName(!1)}();parseSemicolon();const a=k.createImportEqualsDeclaration(n,i,r,o),s=withJSDoc(finishNode(a,e),t);return s}(e,t,n,i,156===o);const s=tryParseImportClause(i,r,o,void 0),c=parseModuleSpecifier(),l=tryParseImportAttributes();parseSemicolon();return withJSDoc(finishNode(k.createImportDeclaration(n,s,c,l),e),t)}(e,t,n);case 95:switch(nextToken(),token()){case 90:case 64:return function parseExportAssignment(e,t,n){const r=inAwaitContext();let i;setAwaitContext(!0),parseOptional(64)?i=!0:parseExpected(90);const o=parseAssignmentExpressionOrHigher(!0);parseSemicolon(),setAwaitContext(r);return withJSDoc(finishNode(k.createExportAssignment(n,i,o),e),t)}(e,t,n);case 130:return function parseNamespaceExportDeclaration(e,t,n){parseExpected(130),parseExpected(145);const r=parseIdentifier();parseSemicolon();const i=k.createNamespaceExportDeclaration(r);return i.modifiers=n,withJSDoc(finishNode(i,e),t)}(e,t,n);default:return function parseExportDeclaration(e,t,n){const r=inAwaitContext();let i,o,s;setAwaitContext(!0);const c=parseOptional(156),l=getNodePos();parseOptional(42)?(parseOptional(130)&&(i=function parseNamespaceExport(e){return finishNode(k.createNamespaceExport(parseModuleExportName(parseIdentifierName)),e)}(l)),parseExpected(161),o=parseModuleSpecifier()):(i=parseNamedImportsOrExports(280),(161===token()||11===token()&&!a.hasPrecedingLineBreak())&&(parseExpected(161),o=parseModuleSpecifier()));const d=token();!o||118!==d&&132!==d||a.hasPrecedingLineBreak()||(s=parseImportAttributes(d));parseSemicolon(),setAwaitContext(r);return withJSDoc(finishNode(k.createExportDeclaration(n,c,i,o,s),e),t)}(e,t,n)}default:if(n){const t=createMissingNode(283,!0,Ot.Declaration_expected);return setTextRangePos(t,e),t.modifiers=n,t}return}}function nextTokenIsStringLiteral(){return 11===nextToken()}function nextTokenIsFromKeywordOrEqualsToken(){return nextToken(),161===token()||64===token()}function nextTokenIsIdentifierOrStringLiteralOnSameLine(){return nextToken(),!a.hasPrecedingLineBreak()&&(isIdentifier2()||11===token())}function parseFunctionBlockOrSemicolon(e,t){if(19!==token()){if(4&e)return void parseTypeMemberSemicolon();if(canParseSemicolon())return void parseSemicolon()}return parseFunctionBlock(e,t)}function parseArrayBindingElement(){const e=getNodePos();if(28===token())return finishNode(k.createOmittedExpression(),e);const t=parseOptionalToken(26),n=parseIdentifierOrPattern(),r=parseInitializer();return finishNode(k.createBindingElement(t,void 0,n,r),e)}function parseObjectBindingElement(){const e=getNodePos(),t=parseOptionalToken(26),n=isBindingIdentifier();let r,i=parsePropertyName();n&&59!==token()?(r=i,i=void 0):(parseExpected(59),r=parseIdentifierOrPattern());const o=parseInitializer();return finishNode(k.createBindingElement(t,i,r,o),e)}function isBindingIdentifierOrPrivateIdentifierOrPattern(){return 19===token()||23===token()||81===token()||isBindingIdentifier()}function parseIdentifierOrPattern(e){return 23===token()?function parseArrayBindingPattern(){const e=getNodePos();parseExpected(23);const t=allowInAnd(()=>parseDelimitedList(10,parseArrayBindingElement));return parseExpected(24),finishNode(k.createArrayBindingPattern(t),e)}():19===token()?function parseObjectBindingPattern(){const e=getNodePos();parseExpected(19);const t=allowInAnd(()=>parseDelimitedList(9,parseObjectBindingElement));return parseExpected(20),finishNode(k.createObjectBindingPattern(t),e)}():parseBindingIdentifier(e)}function parseVariableDeclarationAllowExclamation(){return parseVariableDeclaration(!0)}function parseVariableDeclaration(e){const t=getNodePos(),n=hasPrecedingJSDocComment(),r=parseIdentifierOrPattern(Ot.Private_identifiers_are_not_allowed_in_variable_declarations);let i;e&&80===r.kind&&54===token()&&!a.hasPrecedingLineBreak()&&(i=parseTokenNode());const o=parseTypeAnnotation(),s=isInOrOfKeyword(token())?void 0:parseInitializer();return withJSDoc(finishNode(Y(r,i,o,s),t),n)}function parseVariableDeclarationList(e){const t=getNodePos();let n,r=0;switch(token()){case 115:break;case 121:r|=1;break;case 87:r|=2;break;case 160:r|=4;break;case 135:h.assert(isAwaitUsingDeclaration()),r|=6,nextToken();break;default:h.fail()}if(nextToken(),165===token()&&lookAhead(canFollowContextualOfKeyword))n=createMissingList();else{const t=inDisallowInContext();setDisallowInContext(e),n=parseDelimitedList(8,e?parseVariableDeclaration:parseVariableDeclarationAllowExclamation),setDisallowInContext(t)}return finishNode(Z(n,r),t)}function canFollowContextualOfKeyword(){return nextTokenIsIdentifier()&&22===nextToken()}function parseVariableStatement(e,t,n){const r=parseVariableDeclarationList(!1);parseSemicolon();return withJSDoc(finishNode(H(n,r),e),t)}function parseFunctionDeclaration(e,t,n){const r=inAwaitContext(),i=modifiersToFlags(n);parseExpected(100);const o=parseOptionalToken(42),a=2048&i?parseOptionalBindingIdentifier():parseBindingIdentifier(),s=o?1:0,c=1024&i?2:0,l=parseTypeParameters();32&i&&setAwaitContext(!0);const d=parseParameters(s|c),p=parseReturnType(59,!1),u=parseFunctionBlockOrSemicolon(s|c,Ot.or_expected);setAwaitContext(r);return withJSDoc(finishNode(k.createFunctionDeclaration(n,o,a,l,d,p,u),e),t)}function tryParseConstructorDeclaration(e,t,n){return tryParse(()=>{if(function parseConstructorName(){return 137===token()?parseExpected(137):11===token()&&21===lookAhead(nextToken)?tryParse(()=>{const e=parseLiteralNode();return"constructor"===e.text?e:void 0}):void 0}()){const r=parseTypeParameters(),i=parseParameters(0),o=parseReturnType(59,!1),a=parseFunctionBlockOrSemicolon(0,Ot.or_expected),s=k.createConstructorDeclaration(n,i,a);return s.typeParameters=r,s.type=o,withJSDoc(finishNode(s,e),t)}})}function parseMethodDeclaration(e,t,n,r,i,o,a,s){const c=r?1:0,l=some(n,isAsyncModifier)?2:0,d=parseTypeParameters(),p=parseParameters(c|l),u=parseReturnType(59,!1),m=parseFunctionBlockOrSemicolon(c|l,s),_=k.createMethodDeclaration(n,r,i,o,d,p,u,m);return _.exclamationToken=a,withJSDoc(finishNode(_,e),t)}function parsePropertyDeclaration(e,t,n,r,i){const o=i||a.hasPrecedingLineBreak()?void 0:parseOptionalToken(54),s=parseTypeAnnotation(),c=doOutsideOfContext(90112,parseInitializer);!function parseSemicolonAfterPropertyName(e,t,n){if(60!==token()||a.hasPrecedingLineBreak())return 21===token()?(parseErrorAtCurrentToken(Ot.Cannot_start_a_function_call_in_a_type_annotation),void nextToken()):void(!t||canParseSemicolon()?tryParseSemicolon()||(n?parseErrorAtCurrentToken(Ot._0_expected,tokenToString(27)):parseErrorForMissingSemicolonAfter(e)):n?parseErrorAtCurrentToken(Ot._0_expected,tokenToString(27)):parseErrorAtCurrentToken(Ot.Expected_for_property_initializer));parseErrorAtCurrentToken(Ot.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations)}(r,s,c);return withJSDoc(finishNode(k.createPropertyDeclaration(n,r,i||o,s,c),e),t)}function parsePropertyOrMethodDeclaration(e,t,n){const r=parseOptionalToken(42),i=parsePropertyName(),o=parseOptionalToken(58);return r||21===token()||30===token()?parseMethodDeclaration(e,t,n,r,i,o,void 0,Ot.or_expected):parsePropertyDeclaration(e,t,n,i,o)}function parseAccessorDeclaration(e,t,n,r,i){const o=parsePropertyName(),a=parseTypeParameters(),s=parseParameters(0),c=parseReturnType(59,!1),l=parseFunctionBlockOrSemicolon(i),d=178===r?k.createGetAccessorDeclaration(n,o,s,c,l):k.createSetAccessorDeclaration(n,o,s,l);return d.typeParameters=a,isSetAccessorDeclaration(d)&&(d.type=c),withJSDoc(finishNode(d,e),t)}function isClassMemberStart(){let e;if(60===token())return!0;for(;isModifierKind(token());){if(e=token(),isClassMemberModifier(e))return!0;nextToken()}if(42===token())return!0;if(isLiteralPropertyName()&&(e=token(),nextToken()),23===token())return!0;if(void 0!==e){if(!isKeyword(e)||153===e||139===e)return!0;switch(token()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return canParseSemicolon()}}return!1}function parseClassStaticBlockDeclaration(e,t,n){parseExpectedToken(126);const r=function parseClassStaticBlockBody(){const e=inYieldContext(),t=inAwaitContext();setYieldContext(!1),setAwaitContext(!0);const n=parseBlock(!1);return setYieldContext(e),setAwaitContext(t),n}(),i=withJSDoc(finishNode(k.createClassStaticBlockDeclaration(r),e),t);return i.modifiers=n,i}function parseDecoratorExpression(){if(inAwaitContext()&&135===token()){const e=getNodePos(),t=parseIdentifier(Ot.Expression_expected);nextToken();return parseCallExpressionRest(e,parseMemberExpressionRest(e,t,!0))}return parseLeftHandSideExpressionOrHigher()}function tryParseDecorator(){const e=getNodePos();if(!parseOptional(60))return;const t=function doInDecoratorContext(e){return doInsideOfContext(32768,e)}(parseDecoratorExpression);return finishNode(k.createDecorator(t),e)}function tryParseModifier(e,t,n){const r=getNodePos(),i=token();if(87===token()&&t){if(!tryParse(nextTokenIsOnSameLineAndCanFollowModifier))return}else{if(n&&126===token()&&lookAhead(nextTokenIsOpenBrace))return;if(e&&126===token())return;if(!function parseAnyContextualModifier(){return isModifierKind(token())&&tryParse(nextTokenCanFollowModifier)}())return}return finishNode(w(i),r)}function parseModifiers(e,t,n){const r=getNodePos();let i,o,a,s=!1,c=!1,l=!1;if(e&&60===token())for(;o=tryParseDecorator();)i=append(i,o);for(;a=tryParseModifier(s,t,n);)126===a.kind&&(s=!0),i=append(i,a),c=!0;if(c&&e&&60===token())for(;o=tryParseDecorator();)i=append(i,o),l=!0;if(l)for(;a=tryParseModifier(s,t,n);)126===a.kind&&(s=!0),i=append(i,a);return i&&createNodeArray(i,r)}function parseModifiersForArrowFunction(){let e;if(134===token()){const t=getNodePos();nextToken();e=createNodeArray([finishNode(w(134),t)],t)}return e}function parseClassElement(){const e=getNodePos(),t=hasPrecedingJSDocComment();if(27===token())return nextToken(),withJSDoc(finishNode(k.createSemicolonClassElement(),e),t);const n=parseModifiers(!0,!0,!0);if(126===token()&&lookAhead(nextTokenIsOpenBrace))return parseClassStaticBlockDeclaration(e,t,n);if(parseContextualModifier(139))return parseAccessorDeclaration(e,t,n,178,0);if(parseContextualModifier(153))return parseAccessorDeclaration(e,t,n,179,0);if(137===token()||11===token()){const r=tryParseConstructorDeclaration(e,t,n);if(r)return r}if(isIndexSignature())return parseIndexSignatureDeclaration(e,t,n);if(tokenIsIdentifierOrKeyword(token())||11===token()||9===token()||10===token()||42===token()||23===token()){if(some(n,isDeclareModifier)){for(const e of n)e.flags|=33554432;return doInsideOfContext(33554432,()=>parsePropertyOrMethodDeclaration(e,t,n))}return parsePropertyOrMethodDeclaration(e,t,n)}if(n){const r=createMissingNode(80,!0,Ot.Declaration_expected);return parsePropertyDeclaration(e,t,n,r,void 0)}return h.fail("Should not have attempted to parse class member declaration.")}function parseClassDeclaration(e,t,n){return parseClassDeclarationOrExpression(e,t,n,264)}function parseClassDeclarationOrExpression(e,t,n,r){const i=inAwaitContext();parseExpected(86);const o=function parseNameOfClassDeclarationOrExpression(){return isBindingIdentifier()&&!function isImplementsClause(){return 119===token()&&lookAhead(nextTokenIsIdentifierOrKeyword)}()?createIdentifier(isBindingIdentifier()):void 0}(),a=parseTypeParameters();some(n,isExportModifier)&&setAwaitContext(!0);const s=parseHeritageClauses();let c;parseExpected(19)?(c=function parseClassMembers(){return parseList(5,parseClassElement)}(),parseExpected(20)):c=createMissingList(),setAwaitContext(i);return withJSDoc(finishNode(264===r?k.createClassDeclaration(n,o,a,s,c):k.createClassExpression(n,o,a,s,c),e),t)}function parseHeritageClauses(){if(isHeritageClause2())return parseList(22,parseHeritageClause)}function parseHeritageClause(){const e=getNodePos(),t=token();h.assert(96===t||119===t),nextToken();const n=parseDelimitedList(7,parseExpressionWithTypeArguments);return finishNode(k.createHeritageClause(t,n),e)}function parseExpressionWithTypeArguments(){const e=getNodePos(),t=parseLeftHandSideExpressionOrHigher();if(234===t.kind)return t;const n=tryParseTypeArguments();return finishNode(k.createExpressionWithTypeArguments(t,n),e)}function tryParseTypeArguments(){return 30===token()?parseBracketedList(20,parseType,30,32):void 0}function isHeritageClause2(){return 96===token()||119===token()}function parseEnumMember(){const e=getNodePos(),t=hasPrecedingJSDocComment(),n=parsePropertyName(),r=allowInAnd(parseInitializer);return withJSDoc(finishNode(k.createEnumMember(n,r),e),t)}function parseModuleBlock(){const e=getNodePos();let t;return parseExpected(19)?(t=parseList(1,parseStatement),parseExpected(20)):t=createMissingList(),finishNode(k.createModuleBlock(t),e)}function parseModuleOrNamespaceDeclaration(e,t,n,r){const i=32&r,o=8&r?parseIdentifierName():parseIdentifier(),a=parseOptional(25)?parseModuleOrNamespaceDeclaration(getNodePos(),!1,void 0,8|i):parseModuleBlock();return withJSDoc(finishNode(k.createModuleDeclaration(n,o,a,r),e),t)}function parseAmbientExternalModuleDeclaration(e,t,n){let r,i,o=0;162===token()?(r=parseIdentifier(),o|=2048):(r=parseLiteralNode(),r.text=internIdentifier(r.text)),19===token()?i=parseModuleBlock():parseSemicolon();return withJSDoc(finishNode(k.createModuleDeclaration(n,r,i,o),e),t)}function nextTokenIsOpenParen(){return 21===nextToken()}function nextTokenIsOpenBrace(){return 19===nextToken()}function nextTokenIsSlash(){return 44===nextToken()}function tryParseImportClause(e,t,n,r=!1){let i;return(e||42===token()||19===token())&&(i=function parseImportClause(e,t,n,r){let i;e&&!parseOptional(28)||(r&&a.setSkipJsDocLeadingAsterisks(!0),i=42===token()?function parseNamespaceImport(){const e=getNodePos();parseExpected(42),parseExpected(130);const t=parseIdentifier();return finishNode(k.createNamespaceImport(t),e)}():parseNamedImportsOrExports(276),r&&a.setSkipJsDocLeadingAsterisks(!1));return finishNode(k.createImportClause(n,e,i),t)}(e,t,n,r),parseExpected(161)),i}function tryParseImportAttributes(){const e=token();if((118===e||132===e)&&!a.hasPrecedingLineBreak())return parseImportAttributes(e)}function parseImportAttribute(){const e=getNodePos(),t=tokenIsIdentifierOrKeyword(token())?parseIdentifierName():parseLiteralLikeNode(11);parseExpected(59);const n=parseAssignmentExpressionOrHigher(!0);return finishNode(k.createImportAttribute(t,n),e)}function parseImportAttributes(e,t){const n=getNodePos();t||parseExpected(e);const r=a.getTokenStart();if(parseExpected(19)){const t=a.hasPrecedingLineBreak(),i=parseDelimitedList(24,parseImportAttribute,!0);if(!parseExpected(20)){const e=lastOrUndefined(g);e&&e.code===Ot._0_expected.code&&addRelatedInfo(e,createDetachedDiagnostic(c,u,r,1,Ot.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return finishNode(k.createImportAttributes(i,t,e),n)}{const t=createNodeArray([],getNodePos(),void 0,!1);return finishNode(k.createImportAttributes(t,!1,e),n)}}function parseModuleSpecifier(){if(11===token()){const e=parseLiteralNode();return e.text=internIdentifier(e.text),e}return parseExpression()}function canParseModuleExportName(){return tokenIsIdentifierOrKeyword(token())||11===token()}function parseModuleExportName(e){return 11===token()?parseLiteralNode():e()}function parseNamedImportsOrExports(e){const t=getNodePos();return finishNode(276===e?k.createNamedImports(parseBracketedList(23,parseImportSpecifier,19,20)):k.createNamedExports(parseBracketedList(23,parseExportSpecifier,19,20)),t)}function parseExportSpecifier(){const e=hasPrecedingJSDocComment();return withJSDoc(parseImportOrExportSpecifier(282),e)}function parseImportSpecifier(){return parseImportOrExportSpecifier(277)}function parseImportOrExportSpecifier(e){const t=getNodePos();let n,r=isKeyword(token())&&!isIdentifier2(),i=a.getTokenStart(),o=a.getTokenEnd(),s=!1,c=!0,l=parseModuleExportName(parseIdentifierName);if(80===l.kind&&"type"===l.escapedText)if(130===token()){const e=parseIdentifierName();if(130===token()){const t=parseIdentifierName();canParseModuleExportName()?(s=!0,n=e,l=parseModuleExportName(parseNameWithKeywordCheck),c=!1):(n=l,l=t,c=!1)}else canParseModuleExportName()?(n=l,c=!1,l=parseModuleExportName(parseNameWithKeywordCheck)):(s=!0,l=e)}else canParseModuleExportName()&&(s=!0,l=parseModuleExportName(parseNameWithKeywordCheck));c&&130===token()&&(n=l,parseExpected(130),l=parseModuleExportName(parseNameWithKeywordCheck)),277===e&&(80!==l.kind?(parseErrorAt(skipTrivia(u,l.pos),l.end,Ot.Identifier_expected),l=setTextRangePosEnd(createMissingNode(80,!1),l.pos,l.pos)):r&&parseErrorAt(i,o,Ot.Identifier_expected));return finishNode(277===e?k.createImportSpecifier(s,n,l):k.createExportSpecifier(s,n,l),t);function parseNameWithKeywordCheck(){return r=isKeyword(token())&&!isIdentifier2(),i=a.getTokenStart(),o=a.getTokenEnd(),parseIdentifierName()}}let ie;var oe;let ae;var se;let ce;(oe=ie||(ie={}))[oe.SourceElements=0]="SourceElements",oe[oe.BlockStatements=1]="BlockStatements",oe[oe.SwitchClauses=2]="SwitchClauses",oe[oe.SwitchClauseStatements=3]="SwitchClauseStatements",oe[oe.TypeMembers=4]="TypeMembers",oe[oe.ClassMembers=5]="ClassMembers",oe[oe.EnumMembers=6]="EnumMembers",oe[oe.HeritageClauseElement=7]="HeritageClauseElement",oe[oe.VariableDeclarations=8]="VariableDeclarations",oe[oe.ObjectBindingElements=9]="ObjectBindingElements",oe[oe.ArrayBindingElements=10]="ArrayBindingElements",oe[oe.ArgumentExpressions=11]="ArgumentExpressions",oe[oe.ObjectLiteralMembers=12]="ObjectLiteralMembers",oe[oe.JsxAttributes=13]="JsxAttributes",oe[oe.JsxChildren=14]="JsxChildren",oe[oe.ArrayLiteralMembers=15]="ArrayLiteralMembers",oe[oe.Parameters=16]="Parameters",oe[oe.JSDocParameters=17]="JSDocParameters",oe[oe.RestProperties=18]="RestProperties",oe[oe.TypeParameters=19]="TypeParameters",oe[oe.TypeArguments=20]="TypeArguments",oe[oe.TupleElementTypes=21]="TupleElementTypes",oe[oe.HeritageClauses=22]="HeritageClauses",oe[oe.ImportOrExportSpecifiers=23]="ImportOrExportSpecifiers",oe[oe.ImportAttributes=24]="ImportAttributes",oe[oe.JSDocComment=25]="JSDocComment",oe[oe.Count=26]="Count",(se=ae||(ae={}))[se.False=0]="False",se[se.True=1]="True",se[se.Unknown=2]="Unknown",(e=>{function parseJSDocTypeExpression(e){const t=getNodePos(),n=(e?parseOptional:parseExpected)(19),r=doInsideOfContext(16777216,parseJSDocType);e&&!n||parseExpectedJSDoc(20);const i=k.createJSDocTypeExpression(r);return fixupParentReferences(i),finishNode(i,t)}function parseJSDocNameReference(){const e=getNodePos(),t=parseOptional(19),n=getNodePos();let r=parseEntityName(!1);for(;81===token();)reScanHashToken(),nextTokenJSDoc(),r=finishNode(k.createJSDocMemberName(r,parseIdentifier()),n);t&&parseExpectedJSDoc(20);const i=k.createJSDocNameReference(r);return fixupParentReferences(i),finishNode(i,e)}let t;var n;let r;var i;function parseJSDocCommentWorker(e=0,t){const n=u,r=void 0===t?n.length:e+t;if(t=r-e,h.assert(e>=0),h.assert(e<=r),h.assert(r<=n.length),!isJSDocLikeText(n,e))return;let i,o,s,l,d,p=[];const m=[],_=C;C|=1<<25;const f=a.scanRange(e+3,t-5,function doJSDocScan(){let t,c=1,u=e-(n.lastIndexOf("\n",e)+1)+4;function pushComment(e){t||(t=u),p.push(e),u+=e.length}nextTokenJSDoc();for(;parseOptionalJsdoc(5););parseOptionalJsdoc(4)&&(c=0,u=0);e:for(;;){switch(token()){case 60:removeTrailingWhitespace(p),d||(d=getNodePos()),addTag(parseTag(u)),c=0,t=void 0;break;case 4:p.push(a.getTokenText()),c=0,u=0;break;case 42:const n=a.getTokenText();1===c?(c=2,pushComment(n)):(h.assert(0===c),c=1,u+=n.length);break;case 5:h.assert(2!==c,"whitespace shouldn't come from the scanner while saving top-level comment text");const r=a.getTokenText();void 0!==t&&u+r.length>t&&p.push(r.slice(t-u)),u+=r.length;break;case 1:break e;case 82:c=2,pushComment(a.getTokenValue());break;case 19:c=2;const i=a.getTokenFullStart(),o=parseJSDocLink(a.getTokenEnd()-1);if(o){l||removeLeadingNewlines(p),m.push(finishNode(k.createJSDocText(p.join("")),l??e,i)),m.push(o),p=[],l=a.getTokenEnd();break}default:c=2,pushComment(a.getTokenText())}2===c?nextJSDocCommentTextToken(!1):nextTokenJSDoc()}const _=p.join("").trimEnd();m.length&&_.length&&m.push(finishNode(k.createJSDocText(_),l??e,d));m.length&&i&&h.assertIsDefined(d,"having parsed tags implies that the end of the comment span should be set");const f=i&&createNodeArray(i,o,s);return finishNode(k.createJSDocComment(m.length?createNodeArray(m,e,d):_.length?_:void 0,f),e,r)});return C=_,f;function removeLeadingNewlines(e){for(;e.length&&("\n"===e[0]||"\r"===e[0]);)e.shift()}function removeTrailingWhitespace(e){for(;e.length;){const t=e[e.length-1].trimEnd();if(""!==t){if(t.lengthparseChildPropertyTag(n)))&&346!==t.kind;)if(s=!0,345===t.kind){if(r){const e=parseErrorAtCurrentToken(Ot.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);e&&addRelatedInfo(e,createDetachedDiagnostic(c,u,0,0,Ot.The_tag_was_first_specified_here));break}r=t}else o=append(o,t);if(s){const t=i&&189===i.type.kind,n=k.createJSDocTypeLiteral(o,t);i=r&&r.typeExpression&&!isObjectOrObjectArrayTypeReference(r.typeExpression.type)?r.typeExpression:finishNode(n,e),a=i.end}}a=a||void 0!==s?getNodePos():(o??i??t).end,s||(s=parseTrailingTagComments(e,a,n,r));const l=k.createJSDocTypedefTag(t,i,o,s);return finishNode(l,e,a)}(t,n,e,r);break;case"callback":o=function parseCallbackTag(e,t,n,r){const i=parseJSDocTypeNameWithNamespace();skipWhitespace();let o=parseTagComments(n);const a=parseJSDocSignature(e,n);o||(o=parseTrailingTagComments(e,getNodePos(),n,r));const s=void 0!==o?getNodePos():a.end;return finishNode(k.createJSDocCallbackTag(t,a,i,o),e,s)}(t,n,e,r);break;case"overload":o=function parseOverloadTag(e,t,n,r){skipWhitespace();let i=parseTagComments(n);const o=parseJSDocSignature(e,n);i||(i=parseTrailingTagComments(e,getNodePos(),n,r));const a=void 0!==i?getNodePos():o.end;return finishNode(k.createJSDocOverloadTag(t,o,i),e,a)}(t,n,e,r);break;case"satisfies":o=function parseSatisfiesTag(e,t,n,r){const i=parseJSDocTypeExpression(!1),o=void 0!==n&&void 0!==r?parseTrailingTagComments(e,getNodePos(),n,r):void 0;return finishNode(k.createJSDocSatisfiesTag(t,i,o),e)}(t,n,e,r);break;case"see":o=function parseSeeTag(e,t,n,r){const i=23===token()||lookAhead(()=>60===nextTokenJSDoc()&&tokenIsIdentifierOrKeyword(nextTokenJSDoc())&&isJSDocLinkTag(a.getTokenValue()))?void 0:parseJSDocNameReference(),o=void 0!==n&&void 0!==r?parseTrailingTagComments(e,getNodePos(),n,r):void 0;return finishNode(k.createJSDocSeeTag(t,i,o),e)}(t,n,e,r);break;case"exception":case"throws":o=function parseThrowsTag(e,t,n,r){const i=tryParseTypeExpression(),o=parseTrailingTagComments(e,getNodePos(),n,r);return finishNode(k.createJSDocThrowsTag(t,i,o),e)}(t,n,e,r);break;case"import":o=function parseImportTag(e,t,n,r){const i=a.getTokenFullStart();let o;isIdentifier2()&&(o=parseIdentifier());const s=tryParseImportClause(o,i,156,!0),c=parseModuleSpecifier(),l=tryParseImportAttributes(),d=void 0!==n&&void 0!==r?parseTrailingTagComments(e,getNodePos(),n,r):void 0;return finishNode(k.createJSDocImportTag(t,s,c,l,d),e)}(t,n,e,r);break;default:o=function parseUnknownTag(e,t,n,r){return finishNode(k.createJSDocUnknownTag(t,parseTrailingTagComments(e,getNodePos(),n,r)),e)}(t,n,e,r)}return o}function parseTrailingTagComments(e,t,n,r){return r||(n+=t-e),parseTagComments(n,r.slice(n))}function parseTagComments(e,t){const n=getNodePos();let r=[];const i=[];let o,s,c=0;function pushComment(t){s||(s=e),r.push(t),e+=t.length}void 0!==t&&(""!==t&&pushComment(t),c=1);let l=token();e:for(;;){switch(l){case 4:c=0,r.push(a.getTokenText()),e=0;break;case 60:a.resetTokenState(a.getTokenEnd()-1);break e;case 1:break e;case 5:h.assert(2!==c&&3!==c,"whitespace shouldn't come from the scanner while saving comment text");const t=a.getTokenText();void 0!==s&&e+t.length>s&&(r.push(t.slice(s-e)),c=2),e+=t.length;break;case 19:c=2;const l=a.getTokenFullStart(),d=parseJSDocLink(a.getTokenEnd()-1);d?(i.push(finishNode(k.createJSDocText(r.join("")),o??n,l)),i.push(d),r=[],o=a.getTokenEnd()):pushComment(a.getTokenText());break;case 62:c=3===c?2:3,pushComment(a.getTokenText());break;case 82:3!==c&&(c=2),pushComment(a.getTokenValue());break;case 42:if(0===c){c=1,e+=1;break}default:3!==c&&(c=2),pushComment(a.getTokenText())}l=2===c||3===c?nextJSDocCommentTextToken(3===c):nextTokenJSDoc()}removeLeadingNewlines(r);const d=r.join("").trimEnd();return i.length?(d.length&&i.push(finishNode(k.createJSDocText(d),o??n)),createNodeArray(i,n,a.getTokenEnd())):d.length?d:void 0}function parseJSDocLink(e){const t=tryParse(parseJSDocLinkPrefix);if(!t)return;nextTokenJSDoc(),skipWhitespace();const n=function parseJSDocLinkName(){if(tokenIsIdentifierOrKeyword(token())){const e=getNodePos();let t=parseIdentifierName();for(;parseOptional(25);)t=finishNode(k.createQualifiedName(t,81===token()?createMissingNode(80,!1):parseIdentifierName()),e);for(;81===token();)reScanHashToken(),nextTokenJSDoc(),t=finishNode(k.createJSDocMemberName(t,parseIdentifier()),e);return t}return}(),r=[];for(;20!==token()&&4!==token()&&1!==token();)r.push(a.getTokenText()),nextTokenJSDoc();return finishNode(("link"===t?k.createJSDocLink:"linkcode"===t?k.createJSDocLinkCode:k.createJSDocLinkPlain)(n,r.join("")),e,a.getTokenEnd())}function parseJSDocLinkPrefix(){if(skipWhitespaceOrAsterisk(),19===token()&&60===nextTokenJSDoc()&&tokenIsIdentifierOrKeyword(nextTokenJSDoc())){const e=a.getTokenValue();if(isJSDocLinkTag(e))return e}}function isJSDocLinkTag(e){return"link"===e||"linkcode"===e||"linkplain"===e}function addTag(e){e&&(i?i.push(e):(i=[e],o=e.pos),s=e.end)}function tryParseTypeExpression(){return skipWhitespaceOrAsterisk(),19===token()?parseJSDocTypeExpression():void 0}function parseBracketNameInPropertyAndParamTag(){const e=parseOptionalJsdoc(23);e&&skipWhitespace();const t=parseOptionalJsdoc(62),n=function parseJSDocEntityName(){let e=parseJSDocIdentifierName();parseOptional(23)&&parseExpected(24);for(;parseOptional(25);){const t=parseJSDocIdentifierName();parseOptional(23)&&parseExpected(24),e=createQualifiedName(e,t)}return e}();return t&&function parseExpectedTokenJSDoc(e){return parseOptionalTokenJSDoc(e)||(h.assert(isKeywordOrPunctuation(e)),createMissingNode(e,!1,Ot._0_expected,tokenToString(e)))}(62),e&&(skipWhitespace(),parseOptionalToken(64)&&parseExpression(),parseExpected(24)),{name:n,isBracketed:e}}function isObjectOrObjectArrayTypeReference(e){switch(e.kind){case 151:return!0;case 189:return isObjectOrObjectArrayTypeReference(e.elementType);default:return isTypeReferenceNode(e)&&isIdentifier(e.typeName)&&"Object"===e.typeName.escapedText&&!e.typeArguments}}function parseParameterOrPropertyTag(e,t,n,r){let i=tryParseTypeExpression(),o=!i;skipWhitespaceOrAsterisk();const{name:a,isBracketed:s}=parseBracketNameInPropertyAndParamTag(),c=skipWhitespaceOrAsterisk();o&&!lookAhead(parseJSDocLinkPrefix)&&(i=tryParseTypeExpression());const l=parseTrailingTagComments(e,getNodePos(),r,c),d=function parseNestedTypeLiteral(e,t,n,r){if(e&&isObjectOrObjectArrayTypeReference(e.type)){const i=getNodePos();let o,a;for(;o=tryParse(()=>parseChildParameterOrPropertyTag(n,r,t));)342===o.kind||349===o.kind?a=append(a,o):346===o.kind&&parseErrorAtRange(o.tagName,Ot.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);if(a){const t=finishNode(k.createJSDocTypeLiteral(a,189===e.type.kind),i);return finishNode(k.createJSDocTypeExpression(t),i)}}}(i,a,n,r);d&&(i=d,o=!0);return finishNode(1===n?k.createJSDocPropertyTag(t,a,s,i,o,l):k.createJSDocParameterTag(t,a,s,i,o,l),e)}function parseTypeTag(e,t,n,r){some(i,isJSDocTypeTag)&&parseErrorAt(t.pos,a.getTokenStart(),Ot._0_tag_already_specified,unescapeLeadingUnderscores(t.escapedText));const o=parseJSDocTypeExpression(!0),s=void 0!==n&&void 0!==r?parseTrailingTagComments(e,getNodePos(),n,r):void 0;return finishNode(k.createJSDocTypeTag(t,o,s),e)}function parseExpressionWithTypeArgumentsForAugments(){const e=parseOptional(19),t=getNodePos(),n=function parsePropertyAccessEntityNameExpression(){const e=getNodePos();let t=parseJSDocIdentifierName();for(;parseOptional(25);){const n=parseJSDocIdentifierName();t=finishNode(R(t,n),e)}return t}();a.setSkipJsDocLeadingAsterisks(!0);const r=tryParseTypeArguments();a.setSkipJsDocLeadingAsterisks(!1);const i=finishNode(k.createExpressionWithTypeArguments(n,r),t);return e&&(skipWhitespace(),parseExpected(20)),i}function parseSimpleTag(e,t,n,r,i){return finishNode(t(n,parseTrailingTagComments(e,getNodePos(),r,i)),e)}function parseThisTag(e,t,n,r){const i=parseJSDocTypeExpression(!0);return skipWhitespace(),finishNode(k.createJSDocThisTag(t,i,parseTrailingTagComments(e,getNodePos(),n,r)),e)}function parseJSDocTypeNameWithNamespace(e){const t=a.getTokenStart();if(!tokenIsIdentifierOrKeyword(token()))return;const n=parseJSDocIdentifierName();if(parseOptional(25)){const r=parseJSDocTypeNameWithNamespace(!0);return finishNode(k.createModuleDeclaration(void 0,n,r,e?8:void 0),t)}return e&&(n.flags|=4096),n}function parseJSDocSignature(e,t){const n=function parseCallbackTagParameters(e){const t=getNodePos();let n,r;for(;n=tryParse(()=>parseChildParameterOrPropertyTag(4,e));){if(346===n.kind){parseErrorAtRange(n.tagName,Ot.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);break}r=append(r,n)}return createNodeArray(r||[],t)}(t),r=tryParse(()=>{if(parseOptionalJsdoc(60)){const e=parseTag(t);if(e&&343===e.kind)return e}});return finishNode(k.createJSDocSignature(void 0,n,r),e)}function escapedTextsEqual(e,t){for(;!isIdentifier(e)||!isIdentifier(t);){if(isIdentifier(e)||isIdentifier(t)||e.right.escapedText!==t.right.escapedText)return!1;e=e.left,t=t.left}return e.escapedText===t.escapedText}function parseChildPropertyTag(e){return parseChildParameterOrPropertyTag(1,e)}function parseChildParameterOrPropertyTag(e,t,n){let r=!0,i=!1;for(;;)switch(nextTokenJSDoc()){case 60:if(r){const r=tryParseChildTag(e,t);return!(r&&(342===r.kind||349===r.kind)&&n&&(isIdentifier(r.name)||!escapedTextsEqual(n,r.name.left)))&&r}i=!1;break;case 4:r=!0,i=!1;break;case 42:i&&(r=!1),i=!0;break;case 80:r=!1;break;case 1:return!1}}function tryParseChildTag(e,t){h.assert(60===token());const n=a.getTokenFullStart();nextTokenJSDoc();const r=parseJSDocIdentifierName(),i=skipWhitespaceOrAsterisk();let o;switch(r.escapedText){case"type":return 1===e&&parseTypeTag(n,r);case"prop":case"property":o=1;break;case"arg":case"argument":case"param":o=6;break;case"template":return parseTemplateTag(n,r,t,i);case"this":return parseThisTag(n,r,t,i);default:return!1}return!!(e&o)&&parseParameterOrPropertyTag(n,r,e,t)}function parseTemplateTagTypeParameter(){const e=getNodePos(),t=parseOptionalJsdoc(23);t&&skipWhitespace();const n=parseModifiers(!1,!0),r=parseJSDocIdentifierName(Ot.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);let i;if(t&&(skipWhitespace(),parseExpected(64),i=doInsideOfContext(16777216,parseJSDocType),parseExpected(24)),!nodeIsMissing(r))return finishNode(k.createTypeParameterDeclaration(n,r,void 0,i),e)}function parseTemplateTag(e,t,n,r){const i=19===token()?parseJSDocTypeExpression():void 0,o=function parseTemplateTagTypeParameters(){const e=getNodePos(),t=[];do{skipWhitespace();const e=parseTemplateTagTypeParameter();void 0!==e&&t.push(e),skipWhitespaceOrAsterisk()}while(parseOptionalJsdoc(28));return createNodeArray(t,e)}();return finishNode(k.createJSDocTemplateTag(t,i,o,parseTrailingTagComments(e,getNodePos(),n,r)),e)}function parseOptionalJsdoc(e){return token()===e&&(nextTokenJSDoc(),!0)}function parseJSDocIdentifierName(e){if(!tokenIsIdentifierOrKeyword(token()))return createMissingNode(80,!e,e||Ot.Identifier_expected);b++;const t=a.getTokenStart(),n=a.getTokenEnd(),r=token(),i=internIdentifier(a.getTokenValue()),o=finishNode(A(i,r),t,n);return nextTokenJSDoc(),o}}e.parseJSDocTypeExpressionForTests=function parseJSDocTypeExpressionForTests2(e,t,n){initializeState("file.js",e,99,void 0,1,0),a.setText(e,t,n),S=a.scan();const r=parseJSDocTypeExpression(),i=createSourceFile2("file.js",99,1,!1,[],w(1),0,noop),o=attachFileToDiagnostics(g,i);return y&&(i.jsDocDiagnostics=attachFileToDiagnostics(y,i)),clearState(),r?{jsDocTypeExpression:r,diagnostics:o}:void 0},e.parseJSDocTypeExpression=parseJSDocTypeExpression,e.parseJSDocNameReference=parseJSDocNameReference,e.parseIsolatedJSDocComment=function parseIsolatedJSDocComment2(e,t,n){initializeState("",e,99,void 0,1,0);const r=doInsideOfContext(16777216,()=>parseJSDocCommentWorker(t,n)),i=attachFileToDiagnostics(g,{languageVariant:0,text:e});return clearState(),r?{jsDoc:r,diagnostics:i}:void 0},e.parseJSDocComment=function parseJSDocComment(e,t,n){const r=S,i=g.length,o=te,a=doInsideOfContext(16777216,()=>parseJSDocCommentWorker(t,n));return setParent(a,e),524288&N&&(y||(y=[]),addRange(y,g,i)),S=r,g.length=i,te=o,a},(n=t||(t={}))[n.BeginningOfLine=0]="BeginningOfLine",n[n.SawAsterisk=1]="SawAsterisk",n[n.SavingComments=2]="SavingComments",n[n.SavingBackticks=3]="SavingBackticks",(i=r||(r={}))[i.Property=1]="Property",i[i.Parameter=2]="Parameter",i[i.CallbackParameter=4]="CallbackParameter"})(ce=e.JSDocParser||(e.JSDocParser={}))})(Ii||(Ii={}));var Oi=new WeakSet;var wi,Li=new WeakSet;function markAsIntersectingIncrementalChange(e){Li.add(e)}function isDeclarationFileName(e){return void 0!==getDeclarationFileExtension(e)}function getDeclarationFileExtension(e){const t=getAnyExtensionFromPath(e,Sr,!1);if(t)return t;if(fileExtensionIs(e,".ts")){const t=getBaseFileName(e),n=t.lastIndexOf(".d.");if(n>=0)return t.substring(n)}}function processCommentPragmas(e,t){const n=[];for(const e of getLeadingCommentRanges(t,0)||l){extractPragmas(n,e,t.substring(e.pos,e.end))}e.pragmas=new Map;for(const t of n){if(e.pragmas.has(t.name)){const n=e.pragmas.get(t.name);n instanceof Array?n.push(t.args):e.pragmas.set(t.name,[n,t.args]);continue}e.pragmas.set(t.name,t.args)}}function processPragmasIntoFields(e,t){e.checkJsDirective=void 0,e.referencedFiles=[],e.typeReferenceDirectives=[],e.libReferenceDirectives=[],e.amdDependencies=[],e.hasNoDefaultLib=!1,e.pragmas.forEach((n,r)=>{switch(r){case"reference":{const r=e.referencedFiles,i=e.typeReferenceDirectives,o=e.libReferenceDirectives;forEach(toArray(n),n=>{const{types:a,lib:s,path:c,"resolution-mode":l,preserve:d}=n.arguments,p="true"===d||void 0;if("true"===n.arguments["no-default-lib"])e.hasNoDefaultLib=!0;else if(a){const e=function parseResolutionMode(e,t,n,r){if(e)return"import"===e?99:"require"===e?1:void r(t,n-t,Ot.resolution_mode_should_be_either_require_or_import)}(l,a.pos,a.end,t);i.push({pos:a.pos,end:a.end,fileName:a.value,...e?{resolutionMode:e}:{},...p?{preserve:p}:{}})}else s?o.push({pos:s.pos,end:s.end,fileName:s.value,...p?{preserve:p}:{}}):c?r.push({pos:c.pos,end:c.end,fileName:c.value,...p?{preserve:p}:{}}):t(n.range.pos,n.range.end-n.range.pos,Ot.Invalid_reference_directive_syntax)});break}case"amd-dependency":e.amdDependencies=map(toArray(n),e=>({name:e.arguments.name,path:e.arguments.path}));break;case"amd-module":if(n instanceof Array)for(const r of n)e.moduleName&&t(r.range.pos,r.range.end-r.range.pos,Ot.An_AMD_module_cannot_have_multiple_name_assignments),e.moduleName=r.arguments.name;else e.moduleName=n.arguments.name;break;case"ts-nocheck":case"ts-check":forEach(toArray(n),t=>{(!e.checkJsDirective||t.range.pos>e.checkJsDirective.pos)&&(e.checkJsDirective={enabled:"ts-check"===r,end:t.range.end,pos:t.range.pos})});break;case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:h.fail("Unhandled pragma kind")}})}(e=>{function moveElementEntirelyPastChangeRange(e,t,n,r,i,o,a){return void(n?visitArray2(e):visitNode3(e));function visitNode3(e){let n="";if(a&&shouldCheckNode(e)&&(n=i.substring(e.pos,e.end)),unsetNodeChildren(e,t),setTextRangePosEnd(e,e.pos+r,e.end+r),a&&shouldCheckNode(e)&&h.assert(n===o.substring(e.pos,e.end)),forEachChild(e,visitNode3,visitArray2),hasJSDocNodes(e))for(const t of e.jsDoc)visitNode3(t);checkNodePositions(e,a)}function visitArray2(e){setTextRangePosEnd(e,e.pos+r,e.end+r);for(const t of e)visitNode3(t)}}function shouldCheckNode(e){switch(e.kind){case 11:case 9:case 80:return!0}return!1}function adjustIntersectingElement(e,t,n,r,i){h.assert(e.end>=t,"Adjusting an element that was entirely before the change range"),h.assert(e.pos<=n,"Adjusting an element that was entirely after the change range"),h.assert(e.pos<=e.end);const o=Math.min(e.pos,r),a=e.end>=n?e.end+i:Math.min(e.end,r);if(h.assert(o<=a),e.parent){const t=e.parent;h.assertGreaterThanOrEqual(o,t.pos),h.assertLessThanOrEqual(a,t.end)}setTextRangePosEnd(e,o,a)}function checkNodePositions(e,t){if(t){let t=e.pos;const visitNode3=e=>{h.assert(e.pos>=t),t=e.end};if(hasJSDocNodes(e))for(const t of e.jsDoc)visitNode3(t);forEachChild(e,visitNode3),h.assert(t<=e.end)}}function findNearestNodeStartingBeforeOrAtPosition(e,t){let n,r=e;if(forEachChild(e,function visit(e){if(nodeIsMissing(e))return;if(!(e.pos<=t))return h.assert(e.pos>t),!0;if(e.pos>=r.pos&&(r=e),tr.pos&&(r=e)}return r}function checkChangeRange(e,t,n,r){const i=e.text;if(n&&(h.assert(i.length-n.span.length+n.newLength===t.length),r||h.shouldAssert(3))){const e=i.substr(0,n.span.start),r=t.substr(0,n.span.start);h.assert(e===r);const o=i.substring(textSpanEnd(n.span),i.length),a=t.substring(textSpanEnd(textChangeRangeNewSpan(n)),t.length);h.assert(o===a)}}function createSyntaxCursor(e){let t=e.statements,n=0;h.assert(n(o!==i&&(r&&r.end===o&&n=e.pos&&i=e.pos&&i0&&t<=n;t++){const t=findNearestNodeStartingBeforeOrAtPosition(e,r);h.assert(t.pos<=r);const n=t.pos;r=Math.max(0,n-1)}const i=createTextSpanFromBounds(r,textSpanEnd(t.span)),o=t.newLength+(t.span.start-r);return createTextChangeRange(i,o)}(e,n);checkChangeRange(e,t,a,r),h.assert(a.span.start<=n.span.start),h.assert(textSpanEnd(a.span)===textSpanEnd(n.span)),h.assert(textSpanEnd(textChangeRangeNewSpan(a))===textSpanEnd(textChangeRangeNewSpan(n)));const s=textChangeRangeNewSpan(a).length-a.span.length;!function updateTokenPositionsAndMarkElements(e,t,n,r,i,o,a,s){return void visitNode3(e);function visitNode3(c){if(h.assert(c.pos<=c.end),c.pos>n)return void moveElementEntirelyPastChangeRange(c,e,!1,i,o,a,s);const l=c.end;if(l>=t){if(markAsIntersectingIncrementalChange(c),unsetNodeChildren(c,e),adjustIntersectingElement(c,t,n,r,i),forEachChild(c,visitNode3,visitArray2),hasJSDocNodes(c))for(const e of c.jsDoc)visitNode3(e);checkNodePositions(c,s)}else h.assert(ln)return void moveElementEntirelyPastChangeRange(c,e,!0,i,o,a,s);const l=c.end;if(l>=t){markAsIntersectingIncrementalChange(c),adjustIntersectingElement(c,t,n,r,i);for(const e of c)visitNode3(e)}else h.assert(lr){addNewlyScannedDirectives();const t={range:{pos:e.pos+i,end:e.end+i},type:l};c=append(c,t),s&&h.assert(o.substring(e.pos,e.end)===a.substring(t.range.pos,t.range.end))}}return addNewlyScannedDirectives(),c;function addNewlyScannedDirectives(){l||(l=!0,c?t&&c.push(...t):c=t)}}(e.commentDirectives,c.commentDirectives,a.span.start,textSpanEnd(a.span),s,i,t,r),c.impliedNodeFormat=e.impliedNodeFormat,transferSourceFileChildren(e,c),c},e.createSyntaxCursor=createSyntaxCursor,(n=t||(t={}))[n.Value=-1]="Value"})(wi||(wi={}));var Mi=new Map;function getNamedArgRegEx(e){if(Mi.has(e))return Mi.get(e);const t=new RegExp(`(\\s${e}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`,"im");return Mi.set(e,t),t}var Ri=/^\/\/\/\s*<(\S+)\s.*?\/>/m,Bi=/^\/\/\/?\s*@([^\s:]+)((?:[^\S\r\n]|:).*)?$/m;function extractPragmas(e,t,n){const r=2===t.kind&&Ri.exec(n);if(r){const i=r[1].toLowerCase(),o=gt[i];if(!(o&&1&o.kind))return;if(o.args){const r={};for(const e of o.args){const i=getNamedArgRegEx(e.name).exec(n);if(!i&&!e.optional)return;if(i){const n=i[2]||i[3];if(e.captureSpan){const o=t.pos+i.index+i[1].length+1;r[e.name]={value:n,pos:o,end:o+n.length}}else r[e.name]=n}}e.push({name:i,args:{arguments:r,range:t}})}else e.push({name:i,args:{arguments:{},range:t}});return}const i=2===t.kind&&Bi.exec(n);if(i)return addPragmaForMatch(e,t,2,i);if(3===t.kind){const r=/@(\S+)(\s+(?:\S.*)?)?$/gm;let i;for(;i=r.exec(n);)addPragmaForMatch(e,t,4,i)}}function addPragmaForMatch(e,t,n,r){if(!r)return;const i=r[1].toLowerCase(),o=gt[i];if(!(o&&o.kind&n))return;const a=function getNamedPragmaArguments(e,t){if(!t)return{};if(!e.args)return{};const n=t.trim().split(/\s+/),r={};for(let t=0;t[""+t,e])),Ui=[["es5","lib.es5.d.ts"],["es6","lib.es2015.d.ts"],["es2015","lib.es2015.d.ts"],["es7","lib.es2016.d.ts"],["es2016","lib.es2016.d.ts"],["es2017","lib.es2017.d.ts"],["es2018","lib.es2018.d.ts"],["es2019","lib.es2019.d.ts"],["es2020","lib.es2020.d.ts"],["es2021","lib.es2021.d.ts"],["es2022","lib.es2022.d.ts"],["es2023","lib.es2023.d.ts"],["es2024","lib.es2024.d.ts"],["esnext","lib.esnext.d.ts"],["dom","lib.dom.d.ts"],["dom.iterable","lib.dom.iterable.d.ts"],["dom.asynciterable","lib.dom.asynciterable.d.ts"],["webworker","lib.webworker.d.ts"],["webworker.importscripts","lib.webworker.importscripts.d.ts"],["webworker.iterable","lib.webworker.iterable.d.ts"],["webworker.asynciterable","lib.webworker.asynciterable.d.ts"],["scripthost","lib.scripthost.d.ts"],["es2015.core","lib.es2015.core.d.ts"],["es2015.collection","lib.es2015.collection.d.ts"],["es2015.generator","lib.es2015.generator.d.ts"],["es2015.iterable","lib.es2015.iterable.d.ts"],["es2015.promise","lib.es2015.promise.d.ts"],["es2015.proxy","lib.es2015.proxy.d.ts"],["es2015.reflect","lib.es2015.reflect.d.ts"],["es2015.symbol","lib.es2015.symbol.d.ts"],["es2015.symbol.wellknown","lib.es2015.symbol.wellknown.d.ts"],["es2016.array.include","lib.es2016.array.include.d.ts"],["es2016.intl","lib.es2016.intl.d.ts"],["es2017.arraybuffer","lib.es2017.arraybuffer.d.ts"],["es2017.date","lib.es2017.date.d.ts"],["es2017.object","lib.es2017.object.d.ts"],["es2017.sharedmemory","lib.es2017.sharedmemory.d.ts"],["es2017.string","lib.es2017.string.d.ts"],["es2017.intl","lib.es2017.intl.d.ts"],["es2017.typedarrays","lib.es2017.typedarrays.d.ts"],["es2018.asyncgenerator","lib.es2018.asyncgenerator.d.ts"],["es2018.asynciterable","lib.es2018.asynciterable.d.ts"],["es2018.intl","lib.es2018.intl.d.ts"],["es2018.promise","lib.es2018.promise.d.ts"],["es2018.regexp","lib.es2018.regexp.d.ts"],["es2019.array","lib.es2019.array.d.ts"],["es2019.object","lib.es2019.object.d.ts"],["es2019.string","lib.es2019.string.d.ts"],["es2019.symbol","lib.es2019.symbol.d.ts"],["es2019.intl","lib.es2019.intl.d.ts"],["es2020.bigint","lib.es2020.bigint.d.ts"],["es2020.date","lib.es2020.date.d.ts"],["es2020.promise","lib.es2020.promise.d.ts"],["es2020.sharedmemory","lib.es2020.sharedmemory.d.ts"],["es2020.string","lib.es2020.string.d.ts"],["es2020.symbol.wellknown","lib.es2020.symbol.wellknown.d.ts"],["es2020.intl","lib.es2020.intl.d.ts"],["es2020.number","lib.es2020.number.d.ts"],["es2021.promise","lib.es2021.promise.d.ts"],["es2021.string","lib.es2021.string.d.ts"],["es2021.weakref","lib.es2021.weakref.d.ts"],["es2021.intl","lib.es2021.intl.d.ts"],["es2022.array","lib.es2022.array.d.ts"],["es2022.error","lib.es2022.error.d.ts"],["es2022.intl","lib.es2022.intl.d.ts"],["es2022.object","lib.es2022.object.d.ts"],["es2022.string","lib.es2022.string.d.ts"],["es2022.regexp","lib.es2022.regexp.d.ts"],["es2023.array","lib.es2023.array.d.ts"],["es2023.collection","lib.es2023.collection.d.ts"],["es2023.intl","lib.es2023.intl.d.ts"],["es2024.arraybuffer","lib.es2024.arraybuffer.d.ts"],["es2024.collection","lib.es2024.collection.d.ts"],["es2024.object","lib.es2024.object.d.ts"],["es2024.promise","lib.es2024.promise.d.ts"],["es2024.regexp","lib.es2024.regexp.d.ts"],["es2024.sharedmemory","lib.es2024.sharedmemory.d.ts"],["es2024.string","lib.es2024.string.d.ts"],["esnext.array","lib.es2023.array.d.ts"],["esnext.collection","lib.esnext.collection.d.ts"],["esnext.symbol","lib.es2019.symbol.d.ts"],["esnext.asynciterable","lib.es2018.asynciterable.d.ts"],["esnext.intl","lib.esnext.intl.d.ts"],["esnext.disposable","lib.esnext.disposable.d.ts"],["esnext.bigint","lib.es2020.bigint.d.ts"],["esnext.string","lib.es2022.string.d.ts"],["esnext.promise","lib.es2024.promise.d.ts"],["esnext.weakref","lib.es2021.weakref.d.ts"],["esnext.decorators","lib.esnext.decorators.d.ts"],["esnext.object","lib.es2024.object.d.ts"],["esnext.array","lib.esnext.array.d.ts"],["esnext.regexp","lib.es2024.regexp.d.ts"],["esnext.string","lib.es2024.string.d.ts"],["esnext.iterator","lib.esnext.iterator.d.ts"],["esnext.promise","lib.esnext.promise.d.ts"],["esnext.float16","lib.esnext.float16.d.ts"],["esnext.error","lib.esnext.error.d.ts"],["esnext.sharedmemory","lib.esnext.sharedmemory.d.ts"],["decorators","lib.decorators.d.ts"],["decorators.legacy","lib.decorators.legacy.d.ts"]],zi=Ui.map(e=>e[0]),Vi=new Map(Ui),qi=[{name:"watchFile",type:new Map(Object.entries({fixedpollinginterval:0,prioritypollinginterval:1,dynamicprioritypolling:2,fixedchunksizepolling:3,usefsevents:4,usefseventsonparentdirectory:5})),category:Ot.Watch_and_Build_Modes,description:Ot.Specify_how_the_TypeScript_watch_mode_works,defaultValueDescription:4},{name:"watchDirectory",type:new Map(Object.entries({usefsevents:0,fixedpollinginterval:1,dynamicprioritypolling:2,fixedchunksizepolling:3})),category:Ot.Watch_and_Build_Modes,description:Ot.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality,defaultValueDescription:0},{name:"fallbackPolling",type:new Map(Object.entries({fixedinterval:0,priorityinterval:1,dynamicpriority:2,fixedchunksize:3})),category:Ot.Watch_and_Build_Modes,description:Ot.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers,defaultValueDescription:1},{name:"synchronousWatchDirectory",type:"boolean",category:Ot.Watch_and_Build_Modes,description:Ot.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,defaultValueDescription:!1},{name:"excludeDirectories",type:"list",element:{name:"excludeDirectory",type:"string",isFilePath:!0,extraValidation:specToDiagnostic},allowConfigDirTemplateSubstitution:!0,category:Ot.Watch_and_Build_Modes,description:Ot.Remove_a_list_of_directories_from_the_watch_process},{name:"excludeFiles",type:"list",element:{name:"excludeFile",type:"string",isFilePath:!0,extraValidation:specToDiagnostic},allowConfigDirTemplateSubstitution:!0,category:Ot.Watch_and_Build_Modes,description:Ot.Remove_a_list_of_files_from_the_watch_mode_s_processing}],Hi=[{name:"help",shortName:"h",type:"boolean",showInSimplifiedHelpView:!0,isCommandLineOnly:!0,category:Ot.Command_line_Options,description:Ot.Print_this_message,defaultValueDescription:!1},{name:"help",shortName:"?",type:"boolean",isCommandLineOnly:!0,category:Ot.Command_line_Options,defaultValueDescription:!1},{name:"watch",shortName:"w",type:"boolean",showInSimplifiedHelpView:!0,isCommandLineOnly:!0,category:Ot.Command_line_Options,description:Ot.Watch_input_files,defaultValueDescription:!1},{name:"preserveWatchOutput",type:"boolean",showInSimplifiedHelpView:!1,category:Ot.Output_Formatting,description:Ot.Disable_wiping_the_console_in_watch_mode,defaultValueDescription:!1},{name:"listFiles",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Print_all_of_the_files_read_during_the_compilation,defaultValueDescription:!1},{name:"explainFiles",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Print_files_read_during_the_compilation_including_why_it_was_included,defaultValueDescription:!1},{name:"listEmittedFiles",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Print_the_names_of_emitted_files_after_a_compilation,defaultValueDescription:!1},{name:"pretty",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Output_Formatting,description:Ot.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,defaultValueDescription:!0},{name:"traceResolution",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Log_paths_used_during_the_moduleResolution_process,defaultValueDescription:!1},{name:"diagnostics",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Output_compiler_performance_information_after_building,defaultValueDescription:!1},{name:"extendedDiagnostics",type:"boolean",category:Ot.Compiler_Diagnostics,description:Ot.Output_more_detailed_compiler_performance_information_after_building,defaultValueDescription:!1},{name:"generateCpuProfile",type:"string",isFilePath:!0,paramType:Ot.FILE_OR_DIRECTORY,category:Ot.Compiler_Diagnostics,description:Ot.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging,defaultValueDescription:"profile.cpuprofile"},{name:"generateTrace",type:"string",isFilePath:!0,paramType:Ot.DIRECTORY,category:Ot.Compiler_Diagnostics,description:Ot.Generates_an_event_trace_and_a_list_of_types},{name:"incremental",shortName:"i",type:"boolean",category:Ot.Projects,description:Ot.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects,transpileOptionValue:void 0,defaultValueDescription:Ot.false_unless_composite_is_set},{name:"declaration",shortName:"d",type:"boolean",affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Emit,transpileOptionValue:void 0,description:Ot.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,defaultValueDescription:Ot.false_unless_composite_is_set},{name:"declarationMap",type:"boolean",affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Emit,defaultValueDescription:!1,description:Ot.Create_sourcemaps_for_d_ts_files},{name:"emitDeclarationOnly",type:"boolean",affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Emit,description:Ot.Only_output_d_ts_files_and_not_JavaScript_files,transpileOptionValue:void 0,defaultValueDescription:!1},{name:"sourceMap",type:"boolean",affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Emit,defaultValueDescription:!1,description:Ot.Create_source_map_files_for_emitted_JavaScript_files},{name:"inlineSourceMap",type:"boolean",affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Include_sourcemap_files_inside_the_emitted_JavaScript,defaultValueDescription:!1},{name:"noCheck",type:"boolean",showInSimplifiedHelpView:!1,category:Ot.Compiler_Diagnostics,description:Ot.Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported,transpileOptionValue:!0,defaultValueDescription:!1},{name:"noEmit",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Emit,description:Ot.Disable_emitting_files_from_a_compilation,transpileOptionValue:void 0,defaultValueDescription:!1},{name:"assumeChangesOnlyAffectDirectDependencies",type:"boolean",affectsSemanticDiagnostics:!0,affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Watch_and_Build_Modes,description:Ot.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,defaultValueDescription:!1},{name:"locale",type:"string",category:Ot.Command_line_Options,isCommandLineOnly:!0,description:Ot.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,defaultValueDescription:Ot.Platform_specific}],Ki={name:"target",shortName:"t",type:new Map(Object.entries({es3:0,es5:1,es6:2,es2015:2,es2016:3,es2017:4,es2018:5,es2019:6,es2020:7,es2021:8,es2022:9,es2023:10,es2024:11,esnext:99})),affectsSourceFile:!0,affectsModuleResolution:!0,affectsEmit:!0,affectsBuildInfo:!0,deprecatedKeys:new Set(["es3"]),paramType:Ot.VERSION,showInSimplifiedHelpView:!0,category:Ot.Language_and_Environment,description:Ot.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,defaultValueDescription:1},Gi={name:"module",shortName:"m",type:new Map(Object.entries({none:0,commonjs:1,amd:2,system:4,umd:3,es6:5,es2015:5,es2020:6,es2022:7,esnext:99,node16:100,node18:101,node20:102,nodenext:199,preserve:200})),affectsSourceFile:!0,affectsModuleResolution:!0,affectsEmit:!0,affectsBuildInfo:!0,paramType:Ot.KIND,showInSimplifiedHelpView:!0,category:Ot.Modules,description:Ot.Specify_what_module_code_is_generated,defaultValueDescription:void 0},$i=[{name:"all",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,description:Ot.Show_all_compiler_options,defaultValueDescription:!1},{name:"version",shortName:"v",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,description:Ot.Print_the_compiler_s_version,defaultValueDescription:!1},{name:"init",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,description:Ot.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,defaultValueDescription:!1},{name:"project",shortName:"p",type:"string",isFilePath:!0,showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,paramType:Ot.FILE_OR_DIRECTORY,description:Ot.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json},{name:"showConfig",type:"boolean",showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,isCommandLineOnly:!0,description:Ot.Print_the_final_configuration_instead_of_building,defaultValueDescription:!1},{name:"listFilesOnly",type:"boolean",category:Ot.Command_line_Options,isCommandLineOnly:!0,description:Ot.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,defaultValueDescription:!1},Ki,Gi,{name:"lib",type:"list",element:{name:"lib",type:Vi,defaultValueDescription:void 0},affectsProgramStructure:!0,showInSimplifiedHelpView:!0,category:Ot.Language_and_Environment,description:Ot.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment,transpileOptionValue:void 0},{name:"allowJs",type:"boolean",allowJsFlag:!0,affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.JavaScript_Support,description:Ot.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files,defaultValueDescription:!1},{name:"checkJs",type:"boolean",affectsModuleResolution:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.JavaScript_Support,description:Ot.Enable_error_reporting_in_type_checked_JavaScript_files,defaultValueDescription:!1},{name:"jsx",type:Ji,affectsSourceFile:!0,affectsEmit:!0,affectsBuildInfo:!0,affectsModuleResolution:!0,affectsSemanticDiagnostics:!0,paramType:Ot.KIND,showInSimplifiedHelpView:!0,category:Ot.Language_and_Environment,description:Ot.Specify_what_JSX_code_is_generated,defaultValueDescription:void 0},{name:"outFile",type:"string",affectsEmit:!0,affectsBuildInfo:!0,affectsDeclarationPath:!0,isFilePath:!0,paramType:Ot.FILE,showInSimplifiedHelpView:!0,category:Ot.Emit,description:Ot.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,transpileOptionValue:void 0},{name:"outDir",type:"string",affectsEmit:!0,affectsBuildInfo:!0,affectsDeclarationPath:!0,isFilePath:!0,paramType:Ot.DIRECTORY,showInSimplifiedHelpView:!0,category:Ot.Emit,description:Ot.Specify_an_output_folder_for_all_emitted_files},{name:"rootDir",type:"string",affectsEmit:!0,affectsBuildInfo:!0,affectsDeclarationPath:!0,isFilePath:!0,paramType:Ot.LOCATION,category:Ot.Modules,description:Ot.Specify_the_root_folder_within_your_source_files,defaultValueDescription:Ot.Computed_from_the_list_of_input_files},{name:"composite",type:"boolean",affectsBuildInfo:!0,isTSConfigOnly:!0,category:Ot.Projects,transpileOptionValue:void 0,defaultValueDescription:!1,description:Ot.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references},{name:"tsBuildInfoFile",type:"string",affectsEmit:!0,affectsBuildInfo:!0,isFilePath:!0,paramType:Ot.FILE,category:Ot.Projects,transpileOptionValue:void 0,defaultValueDescription:".tsbuildinfo",description:Ot.Specify_the_path_to_tsbuildinfo_incremental_compilation_file},{name:"removeComments",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Emit,defaultValueDescription:!1,description:Ot.Disable_emitting_comments},{name:"importHelpers",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,affectsSourceFile:!0,category:Ot.Emit,description:Ot.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,defaultValueDescription:!1},{name:"importsNotUsedAsValues",type:new Map(Object.entries({remove:0,preserve:1,error:2})),affectsEmit:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,defaultValueDescription:0},{name:"downlevelIteration",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,defaultValueDescription:!1},{name:"isolatedModules",type:"boolean",category:Ot.Interop_Constraints,description:Ot.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,transpileOptionValue:!0,defaultValueDescription:!1},{name:"verbatimModuleSyntax",type:"boolean",affectsEmit:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Interop_Constraints,description:Ot.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,defaultValueDescription:!1},{name:"isolatedDeclarations",type:"boolean",category:Ot.Interop_Constraints,description:Ot.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,defaultValueDescription:!1,affectsBuildInfo:!0,affectsSemanticDiagnostics:!0},{name:"erasableSyntaxOnly",type:"boolean",category:Ot.Interop_Constraints,description:Ot.Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript,defaultValueDescription:!1,affectsBuildInfo:!0,affectsSemanticDiagnostics:!0},{name:"libReplacement",type:"boolean",affectsProgramStructure:!0,category:Ot.Language_and_Environment,description:Ot.Enable_lib_replacement,defaultValueDescription:!0},{name:"strict",type:"boolean",affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Type_Checking,description:Ot.Enable_all_strict_type_checking_options,defaultValueDescription:!1},{name:"noImplicitAny",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"strictNullChecks",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.When_type_checking_take_into_account_null_and_undefined,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"strictFunctionTypes",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"strictBindCallApply",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"strictPropertyInitialization",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"strictBuiltinIteratorReturn",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"noImplicitThis",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Enable_error_reporting_when_this_is_given_the_type_any,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"useUnknownInCatchVariables",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Default_catch_clause_variables_as_unknown_instead_of_any,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"alwaysStrict",type:"boolean",affectsSourceFile:!0,affectsEmit:!0,affectsBuildInfo:!0,strictFlag:!0,category:Ot.Type_Checking,description:Ot.Ensure_use_strict_is_always_emitted,defaultValueDescription:Ot.false_unless_strict_is_set},{name:"noUnusedLocals",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Enable_error_reporting_when_local_variables_aren_t_read,defaultValueDescription:!1},{name:"noUnusedParameters",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Raise_an_error_when_a_function_parameter_isn_t_read,defaultValueDescription:!1},{name:"exactOptionalPropertyTypes",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Interpret_optional_property_types_as_written_rather_than_adding_undefined,defaultValueDescription:!1},{name:"noImplicitReturns",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,defaultValueDescription:!1},{name:"noFallthroughCasesInSwitch",type:"boolean",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,defaultValueDescription:!1},{name:"noUncheckedIndexedAccess",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Add_undefined_to_a_type_when_accessed_using_an_index,defaultValueDescription:!1},{name:"noImplicitOverride",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,defaultValueDescription:!1},{name:"noPropertyAccessFromIndexSignature",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,showInSimplifiedHelpView:!1,category:Ot.Type_Checking,description:Ot.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,defaultValueDescription:!1},{name:"moduleResolution",type:new Map(Object.entries({node10:2,node:2,classic:1,node16:3,nodenext:99,bundler:100})),deprecatedKeys:new Set(["node"]),affectsSourceFile:!0,affectsModuleResolution:!0,paramType:Ot.STRATEGY,category:Ot.Modules,description:Ot.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,defaultValueDescription:Ot.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node},{name:"baseUrl",type:"string",affectsModuleResolution:!0,isFilePath:!0,category:Ot.Modules,description:Ot.Specify_the_base_directory_to_resolve_non_relative_module_names},{name:"paths",type:"object",affectsModuleResolution:!0,allowConfigDirTemplateSubstitution:!0,isTSConfigOnly:!0,category:Ot.Modules,description:Ot.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations,transpileOptionValue:void 0},{name:"rootDirs",type:"list",isTSConfigOnly:!0,element:{name:"rootDirs",type:"string",isFilePath:!0},affectsModuleResolution:!0,allowConfigDirTemplateSubstitution:!0,category:Ot.Modules,description:Ot.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules,transpileOptionValue:void 0,defaultValueDescription:Ot.Computed_from_the_list_of_input_files},{name:"typeRoots",type:"list",element:{name:"typeRoots",type:"string",isFilePath:!0},affectsModuleResolution:!0,allowConfigDirTemplateSubstitution:!0,category:Ot.Modules,description:Ot.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types},{name:"types",type:"list",element:{name:"types",type:"string"},affectsProgramStructure:!0,showInSimplifiedHelpView:!0,category:Ot.Modules,description:Ot.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file,transpileOptionValue:void 0},{name:"allowSyntheticDefaultImports",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Interop_Constraints,description:Ot.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,defaultValueDescription:Ot.module_system_or_esModuleInterop},{name:"esModuleInterop",type:"boolean",affectsSemanticDiagnostics:!0,affectsEmit:!0,affectsBuildInfo:!0,showInSimplifiedHelpView:!0,category:Ot.Interop_Constraints,description:Ot.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,defaultValueDescription:!1},{name:"preserveSymlinks",type:"boolean",category:Ot.Interop_Constraints,description:Ot.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,defaultValueDescription:!1},{name:"allowUmdGlobalAccess",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Modules,description:Ot.Allow_accessing_UMD_globals_from_modules,defaultValueDescription:!1},{name:"moduleSuffixes",type:"list",element:{name:"suffix",type:"string"},listPreserveFalsyValues:!0,affectsModuleResolution:!0,category:Ot.Modules,description:Ot.List_of_file_name_suffixes_to_search_when_resolving_a_module},{name:"allowImportingTsExtensions",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Modules,description:Ot.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,defaultValueDescription:!1,transpileOptionValue:void 0},{name:"rewriteRelativeImportExtensions",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Modules,description:Ot.Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files,defaultValueDescription:!1},{name:"resolvePackageJsonExports",type:"boolean",affectsModuleResolution:!0,category:Ot.Modules,description:Ot.Use_the_package_json_exports_field_when_resolving_package_imports,defaultValueDescription:Ot.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false},{name:"resolvePackageJsonImports",type:"boolean",affectsModuleResolution:!0,category:Ot.Modules,description:Ot.Use_the_package_json_imports_field_when_resolving_imports,defaultValueDescription:Ot.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false},{name:"customConditions",type:"list",element:{name:"condition",type:"string"},affectsModuleResolution:!0,category:Ot.Modules,description:Ot.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports},{name:"noUncheckedSideEffectImports",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Modules,description:Ot.Check_side_effect_imports,defaultValueDescription:!1},{name:"sourceRoot",type:"string",affectsEmit:!0,affectsBuildInfo:!0,paramType:Ot.LOCATION,category:Ot.Emit,description:Ot.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code},{name:"mapRoot",type:"string",affectsEmit:!0,affectsBuildInfo:!0,paramType:Ot.LOCATION,category:Ot.Emit,description:Ot.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations},{name:"inlineSources",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,defaultValueDescription:!1},{name:"experimentalDecorators",type:"boolean",affectsEmit:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Language_and_Environment,description:Ot.Enable_experimental_support_for_legacy_experimental_decorators,defaultValueDescription:!1},{name:"emitDecoratorMetadata",type:"boolean",affectsSemanticDiagnostics:!0,affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Language_and_Environment,description:Ot.Emit_design_type_metadata_for_decorated_declarations_in_source_files,defaultValueDescription:!1},{name:"jsxFactory",type:"string",category:Ot.Language_and_Environment,description:Ot.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h,defaultValueDescription:"`React.createElement`"},{name:"jsxFragmentFactory",type:"string",category:Ot.Language_and_Environment,description:Ot.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment,defaultValueDescription:"React.Fragment"},{name:"jsxImportSource",type:"string",affectsSemanticDiagnostics:!0,affectsEmit:!0,affectsBuildInfo:!0,affectsModuleResolution:!0,affectsSourceFile:!0,category:Ot.Language_and_Environment,description:Ot.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,defaultValueDescription:"react"},{name:"resolveJsonModule",type:"boolean",affectsModuleResolution:!0,category:Ot.Modules,description:Ot.Enable_importing_json_files,defaultValueDescription:!1},{name:"allowArbitraryExtensions",type:"boolean",affectsProgramStructure:!0,category:Ot.Modules,description:Ot.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,defaultValueDescription:!1},{name:"out",type:"string",affectsEmit:!0,affectsBuildInfo:!0,affectsDeclarationPath:!0,isFilePath:!1,category:Ot.Backwards_Compatibility,paramType:Ot.FILE,transpileOptionValue:void 0,description:Ot.Deprecated_setting_Use_outFile_instead},{name:"reactNamespace",type:"string",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Language_and_Environment,description:Ot.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,defaultValueDescription:"`React`"},{name:"skipDefaultLibCheck",type:"boolean",affectsBuildInfo:!0,category:Ot.Completeness,description:Ot.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,defaultValueDescription:!1},{name:"charset",type:"string",category:Ot.Backwards_Compatibility,description:Ot.No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files,defaultValueDescription:"utf8"},{name:"emitBOM",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,defaultValueDescription:!1},{name:"newLine",type:new Map(Object.entries({crlf:0,lf:1})),affectsEmit:!0,affectsBuildInfo:!0,paramType:Ot.NEWLINE,category:Ot.Emit,description:Ot.Set_the_newline_character_for_emitting_files,defaultValueDescription:"lf"},{name:"noErrorTruncation",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Output_Formatting,description:Ot.Disable_truncating_types_in_error_messages,defaultValueDescription:!1},{name:"noLib",type:"boolean",category:Ot.Language_and_Environment,affectsProgramStructure:!0,description:Ot.Disable_including_any_library_files_including_the_default_lib_d_ts,transpileOptionValue:!0,defaultValueDescription:!1},{name:"noResolve",type:"boolean",affectsModuleResolution:!0,category:Ot.Modules,description:Ot.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project,transpileOptionValue:!0,defaultValueDescription:!1},{name:"stripInternal",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,defaultValueDescription:!1},{name:"disableSizeLimit",type:"boolean",affectsProgramStructure:!0,category:Ot.Editor_Support,description:Ot.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,defaultValueDescription:!1},{name:"disableSourceOfProjectReferenceRedirect",type:"boolean",isTSConfigOnly:!0,category:Ot.Projects,description:Ot.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,defaultValueDescription:!1},{name:"disableSolutionSearching",type:"boolean",isTSConfigOnly:!0,category:Ot.Projects,description:Ot.Opt_a_project_out_of_multi_project_reference_checking_when_editing,defaultValueDescription:!1},{name:"disableReferencedProjectLoad",type:"boolean",isTSConfigOnly:!0,category:Ot.Projects,description:Ot.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,defaultValueDescription:!1},{name:"noImplicitUseStrict",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,defaultValueDescription:!1},{name:"noEmitHelpers",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,defaultValueDescription:!1},{name:"noEmitOnError",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,transpileOptionValue:void 0,description:Ot.Disable_emitting_files_if_any_type_checking_errors_are_reported,defaultValueDescription:!1},{name:"preserveConstEnums",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Emit,description:Ot.Disable_erasing_const_enum_declarations_in_generated_code,defaultValueDescription:!1},{name:"declarationDir",type:"string",affectsEmit:!0,affectsBuildInfo:!0,affectsDeclarationPath:!0,isFilePath:!0,paramType:Ot.DIRECTORY,category:Ot.Emit,transpileOptionValue:void 0,description:Ot.Specify_the_output_directory_for_generated_declaration_files},{name:"skipLibCheck",type:"boolean",affectsBuildInfo:!0,category:Ot.Completeness,description:Ot.Skip_type_checking_all_d_ts_files,defaultValueDescription:!1},{name:"allowUnusedLabels",type:"boolean",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Disable_error_reporting_for_unused_labels,defaultValueDescription:void 0},{name:"allowUnreachableCode",type:"boolean",affectsBindDiagnostics:!0,affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Type_Checking,description:Ot.Disable_error_reporting_for_unreachable_code,defaultValueDescription:void 0},{name:"suppressExcessPropertyErrors",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,defaultValueDescription:!1},{name:"suppressImplicitAnyIndexErrors",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,defaultValueDescription:!1},{name:"forceConsistentCasingInFileNames",type:"boolean",affectsModuleResolution:!0,category:Ot.Interop_Constraints,description:Ot.Ensure_that_casing_is_correct_in_imports,defaultValueDescription:!0},{name:"maxNodeModuleJsDepth",type:"number",affectsModuleResolution:!0,category:Ot.JavaScript_Support,description:Ot.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,defaultValueDescription:0},{name:"noStrictGenericChecks",type:"boolean",affectsSemanticDiagnostics:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Disable_strict_checking_of_generic_signatures_in_function_types,defaultValueDescription:!1},{name:"useDefineForClassFields",type:"boolean",affectsSemanticDiagnostics:!0,affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Language_and_Environment,description:Ot.Emit_ECMAScript_standard_compliant_class_fields,defaultValueDescription:Ot.true_for_ES2022_and_above_including_ESNext},{name:"preserveValueImports",type:"boolean",affectsEmit:!0,affectsBuildInfo:!0,category:Ot.Backwards_Compatibility,description:Ot.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,defaultValueDescription:!1},{name:"keyofStringsOnly",type:"boolean",category:Ot.Backwards_Compatibility,description:Ot.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option,defaultValueDescription:!1},{name:"plugins",type:"list",isTSConfigOnly:!0,element:{name:"plugin",type:"object"},description:Ot.Specify_a_list_of_language_service_plugins_to_include,category:Ot.Editor_Support},{name:"moduleDetection",type:new Map(Object.entries({auto:2,legacy:1,force:3})),affectsSourceFile:!0,affectsModuleResolution:!0,description:Ot.Control_what_method_is_used_to_detect_module_format_JS_files,category:Ot.Language_and_Environment,defaultValueDescription:Ot.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules},{name:"ignoreDeprecations",type:"string",defaultValueDescription:void 0}],Qi=[...Hi,...$i],Xi=Qi.filter(e=>!!e.affectsSemanticDiagnostics),Yi=Qi.filter(e=>!!e.affectsEmit),Zi=Qi.filter(e=>!!e.affectsDeclarationPath),eo=Qi.filter(e=>!!e.affectsModuleResolution),to=Qi.filter(e=>!!e.affectsSourceFile||!!e.affectsBindDiagnostics),no=Qi.filter(e=>!!e.affectsProgramStructure),ro=Qi.filter(e=>hasProperty(e,"transpileOptionValue")),io=Qi.filter(e=>e.allowConfigDirTemplateSubstitution||!e.isCommandLineOnly&&e.isFilePath),oo=qi.filter(e=>e.allowConfigDirTemplateSubstitution||!e.isCommandLineOnly&&e.isFilePath),ao=Qi.filter(function isCommandLineOptionOfCustomType(e){return!isString(e.type)});var so,co={name:"build",type:"boolean",shortName:"b",showInSimplifiedHelpView:!0,category:Ot.Command_line_Options,description:Ot.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,defaultValueDescription:!1},lo=[co,{name:"verbose",shortName:"v",category:Ot.Command_line_Options,description:Ot.Enable_verbose_logging,type:"boolean",defaultValueDescription:!1},{name:"dry",shortName:"d",category:Ot.Command_line_Options,description:Ot.Show_what_would_be_built_or_deleted_if_specified_with_clean,type:"boolean",defaultValueDescription:!1},{name:"force",shortName:"f",category:Ot.Command_line_Options,description:Ot.Build_all_projects_including_those_that_appear_to_be_up_to_date,type:"boolean",defaultValueDescription:!1},{name:"clean",category:Ot.Command_line_Options,description:Ot.Delete_the_outputs_of_all_projects,type:"boolean",defaultValueDescription:!1},{name:"stopBuildOnErrors",category:Ot.Command_line_Options,description:Ot.Skip_building_downstream_projects_on_error_in_upstream_project,type:"boolean",defaultValueDescription:!1}],po=[...Hi,...lo],uo=[{name:"enable",type:"boolean",defaultValueDescription:!1},{name:"include",type:"list",element:{name:"include",type:"string"}},{name:"exclude",type:"list",element:{name:"exclude",type:"string"}},{name:"disableFilenameBasedTypeAcquisition",type:"boolean",defaultValueDescription:!1}];function createOptionNameMap(e){const t=new Map,n=new Map;return forEach(e,e=>{t.set(e.name.toLowerCase(),e),e.shortName&&n.set(e.shortName,e.name)}),{optionsNameMap:t,shortOptionNames:n}}function getOptionsNameMap(){return so||(so=createOptionNameMap(Qi))}var mo={diagnostic:Ot.Compiler_option_0_may_only_be_used_with_build,getOptionsNameMap:getBuildOptionsNameMap},_o={module:1,target:3,strict:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,skipLibCheck:!0};function createCompilerDiagnosticForInvalidCustomType(e){return createDiagnosticForInvalidCustomType(e,createCompilerDiagnostic)}function createDiagnosticForInvalidCustomType(e,t){const n=arrayFrom(e.type.keys()),r=(e.deprecatedKeys?n.filter(t=>!e.deprecatedKeys.has(t)):n).map(e=>`'${e}'`).join(", ");return t(Ot.Argument_for_0_option_must_be_Colon_1,`--${e.name}`,r)}function parseCustomTypeOption(e,t,n){return convertJsonOptionOfCustomType(e,(t??"").trim(),n)}function parseListTypeOption(e,t="",n){if(startsWith(t=t.trim(),"-"))return;if("listOrElement"===e.type&&!t.includes(","))return validateJsonOptionValue(e,t,n);if(""===t)return[];const r=t.split(",");switch(e.element.type){case"number":return mapDefined(r,t=>validateJsonOptionValue(e.element,parseInt(t),n));case"string":return mapDefined(r,t=>validateJsonOptionValue(e.element,t||"",n));case"boolean":case"object":return h.fail(`List of ${e.element.type} is not yet supported.`);default:return mapDefined(r,t=>parseCustomTypeOption(e.element,t,n))}}function getOptionName(e){return e.name}function createUnknownOptionError(e,t,n,r,i){var o;const a=null==(o=t.alternateMode)?void 0:o.getOptionsNameMap().optionsNameMap.get(e.toLowerCase());if(a)return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(i,r,a!==co?t.alternateMode.diagnostic:Ot.Option_build_must_be_the_first_command_line_argument,e);const s=getSpellingSuggestion(e,t.optionDeclarations,getOptionName);return s?createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(i,r,t.unknownDidYouMeanDiagnostic,n||e,s.name):createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(i,r,t.unknownOptionDiagnostic,n||e)}function parseCommandLineWorker(e,t,n){const r={};let i;const o=[],a=[];return parseStrings(t),{options:r,watchOptions:i,fileNames:o,errors:a};function parseStrings(t){let n=0;for(;nkt.readFile(e)));if(!isString(t))return void a.push(t);const r=[];let i=0;for(;;){for(;i=t.length)break;const n=i;if(34===t.charCodeAt(n)){for(i++;i32;)i++;r.push(t.substring(n,i))}}parseStrings(r)}}function parseOptionValue(e,t,n,r,i,o){if(r.isTSConfigOnly){const n=e[t];"null"===n?(i[r.name]=void 0,t++):"boolean"===r.type?"false"===n?(i[r.name]=validateJsonOptionValue(r,!1,o),t++):("true"===n&&t++,o.push(createCompilerDiagnostic(Ot.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,r.name))):(o.push(createCompilerDiagnostic(Ot.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,r.name)),n&&!startsWith(n,"-")&&t++)}else if(e[t]||"boolean"===r.type||o.push(createCompilerDiagnostic(n.optionTypeMismatchDiagnostic,r.name,getCompilerOptionValueTypeString(r))),"null"!==e[t])switch(r.type){case"number":i[r.name]=validateJsonOptionValue(r,parseInt(e[t]),o),t++;break;case"boolean":const n=e[t];i[r.name]=validateJsonOptionValue(r,"false"!==n,o),"false"!==n&&"true"!==n||t++;break;case"string":i[r.name]=validateJsonOptionValue(r,e[t]||"",o),t++;break;case"list":const a=parseListTypeOption(r,e[t],o);i[r.name]=a||[],a&&t++;break;case"listOrElement":h.fail("listOrElement not supported here");break;default:i[r.name]=parseCustomTypeOption(r,e[t],o),t++}else i[r.name]=void 0,t++;return t}var fo,go={alternateMode:mo,getOptionsNameMap,optionDeclarations:Qi,unknownOptionDiagnostic:Ot.Unknown_compiler_option_0,unknownDidYouMeanDiagnostic:Ot.Unknown_compiler_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:Ot.Compiler_option_0_expects_an_argument};function parseCommandLine(e,t){return parseCommandLineWorker(go,e,t)}function getOptionFromName(e,t){return getOptionDeclarationFromName(getOptionsNameMap,e,t)}function getOptionDeclarationFromName(e,t,n=!1){t=t.toLowerCase();const{optionsNameMap:r,shortOptionNames:i}=e();if(n){const e=i.get(t);void 0!==e&&(t=e)}return r.get(t)}function getBuildOptionsNameMap(){return fo||(fo=createOptionNameMap(po))}var yo={alternateMode:{diagnostic:Ot.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap},getOptionsNameMap:getBuildOptionsNameMap,optionDeclarations:po,unknownOptionDiagnostic:Ot.Unknown_build_option_0,unknownDidYouMeanDiagnostic:Ot.Unknown_build_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:Ot.Build_option_0_requires_a_value_of_type_1};function parseBuildCommand(e){const{options:t,watchOptions:n,fileNames:r,errors:i}=parseCommandLineWorker(yo,e),o=t;return 0===r.length&&r.push("."),o.clean&&o.force&&i.push(createCompilerDiagnostic(Ot.Options_0_and_1_cannot_be_combined,"clean","force")),o.clean&&o.verbose&&i.push(createCompilerDiagnostic(Ot.Options_0_and_1_cannot_be_combined,"clean","verbose")),o.clean&&o.watch&&i.push(createCompilerDiagnostic(Ot.Options_0_and_1_cannot_be_combined,"clean","watch")),o.watch&&o.dry&&i.push(createCompilerDiagnostic(Ot.Options_0_and_1_cannot_be_combined,"watch","dry")),{buildOptions:o,watchOptions:n,projects:r,errors:i}}function getDiagnosticText(e,...t){return cast(createCompilerDiagnostic(e,...t).messageText,isString)}function getParsedCommandLineOfConfigFile(e,t,n,r,i,o){const a=tryReadFile(e,e=>n.readFile(e));if(!isString(a))return void n.onUnRecoverableConfigFileDiagnostic(a);const s=parseJsonText(e,a),c=n.getCurrentDirectory();return s.path=toPath(e,c,createGetCanonicalFileName(n.useCaseSensitiveFileNames)),s.resolvedPath=s.path,s.originalFileName=s.fileName,parseJsonSourceFileConfigFileContent(s,n,getNormalizedAbsolutePath(getDirectoryPath(e),c),t,getNormalizedAbsolutePath(e,c),void 0,o,r,i)}function readConfigFile(e,t){const n=tryReadFile(e,t);return isString(n)?parseConfigFileTextToJson(e,n):{config:{},error:n}}function parseConfigFileTextToJson(e,t){const n=parseJsonText(e,t);return{config:convertConfigFileToObject(n,n.parseDiagnostics,void 0),error:n.parseDiagnostics.length?n.parseDiagnostics[0]:void 0}}function readJsonConfigFile(e,t){const n=tryReadFile(e,t);return isString(n)?parseJsonText(e,n):{fileName:e,parseDiagnostics:[n]}}function tryReadFile(e,t){let n;try{n=t(e)}catch(t){return createCompilerDiagnostic(Ot.Cannot_read_file_0_Colon_1,e,t.message)}return void 0===n?createCompilerDiagnostic(Ot.Cannot_read_file_0,e):n}function commandLineOptionsToMap(e){return arrayToMap(e,getOptionName)}var ho,To={optionDeclarations:uo,unknownOptionDiagnostic:Ot.Unknown_type_acquisition_option_0,unknownDidYouMeanDiagnostic:Ot.Unknown_type_acquisition_option_0_Did_you_mean_1};function getWatchOptionsNameMap(){return ho||(ho=createOptionNameMap(qi))}var So,xo,vo,bo={getOptionsNameMap:getWatchOptionsNameMap,optionDeclarations:qi,unknownOptionDiagnostic:Ot.Unknown_watch_option_0,unknownDidYouMeanDiagnostic:Ot.Unknown_watch_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:Ot.Watch_option_0_requires_a_value_of_type_1};function getCommandLineCompilerOptionsMap(){return So||(So=commandLineOptionsToMap(Qi))}function getCommandLineWatchOptionsMap(){return xo||(xo=commandLineOptionsToMap(qi))}function getCommandLineTypeAcquisitionMap(){return vo||(vo=commandLineOptionsToMap(uo))}var Co,Eo={name:"extends",type:"listOrElement",element:{name:"extends",type:"string"},category:Ot.File_Management,disallowNullOrUndefined:!0},No={name:"compilerOptions",type:"object",elementOptions:getCommandLineCompilerOptionsMap(),extraKeyDiagnostics:go},ko={name:"watchOptions",type:"object",elementOptions:getCommandLineWatchOptionsMap(),extraKeyDiagnostics:bo},Fo={name:"typeAcquisition",type:"object",elementOptions:getCommandLineTypeAcquisitionMap(),extraKeyDiagnostics:To};function convertConfigFileToObject(e,t,n){var r;const i=null==(r=e.statements[0])?void 0:r.expression;if(i&&211!==i.kind){if(t.push(createDiagnosticForNodeInSourceFile(e,i,Ot.The_root_value_of_a_0_file_must_be_an_object,"jsconfig.json"===getBaseFileName(e.fileName)?"jsconfig.json":"tsconfig.json")),isArrayLiteralExpression(i)){const r=find(i.elements,isObjectLiteralExpression);if(r)return convertToJson(e,r,t,!0,n)}return{}}return convertToJson(e,i,t,!0,n)}function convertToObject(e,t){var n;return convertToJson(e,null==(n=e.statements[0])?void 0:n.expression,t,!0,void 0)}function convertToJson(e,t,n,r,i){return t?convertPropertyValueToJson(t,null==i?void 0:i.rootOptions):r?{}:void 0;function convertPropertyValueToJson(t,o){switch(t.kind){case 112:return!0;case 97:return!1;case 106:return null;case 11:return isDoubleQuotedString(t)||n.push(createDiagnosticForNodeInSourceFile(e,t,Ot.String_literal_with_double_quotes_expected)),t.text;case 9:return Number(t.text);case 225:if(41!==t.operator||9!==t.operand.kind)break;return-Number(t.operand.text);case 211:return function convertObjectLiteralExpressionToJson(t,o){var a;const s=r?{}:void 0;for(const c of t.properties){if(304!==c.kind){n.push(createDiagnosticForNodeInSourceFile(e,c,Ot.Property_assignment_expected));continue}c.questionToken&&n.push(createDiagnosticForNodeInSourceFile(e,c.questionToken,Ot.The_0_modifier_can_only_be_used_in_TypeScript_files,"?")),isDoubleQuotedString(c.name)||n.push(createDiagnosticForNodeInSourceFile(e,c.name,Ot.String_literal_with_double_quotes_expected));const t=isComputedNonLiteralName(c.name)?void 0:getTextOfPropertyName(c.name),l=t&&unescapeLeadingUnderscores(t),d=l?null==(a=null==o?void 0:o.elementOptions)?void 0:a.get(l):void 0,p=convertPropertyValueToJson(c.initializer,d);void 0!==l&&(r&&(s[l]=p),null==i||i.onPropertySet(l,p,c,o,d))}return s}(t,o);case 210:return function convertArrayLiteralExpressionToJson(e,t){if(r)return filter(e.map(e=>convertPropertyValueToJson(e,t)),e=>void 0!==e);e.forEach(e=>convertPropertyValueToJson(e,t))}(t.elements,o&&o.element)}o?n.push(createDiagnosticForNodeInSourceFile(e,t,Ot.Compiler_option_0_requires_a_value_of_type_1,o.name,getCompilerOptionValueTypeString(o))):n.push(createDiagnosticForNodeInSourceFile(e,t,Ot.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal))}function isDoubleQuotedString(t){return isStringLiteral(t)&&isStringDoubleQuoted(t,e)}}function getCompilerOptionValueTypeString(e){return"listOrElement"===e.type?`${getCompilerOptionValueTypeString(e.element)} or Array`:"list"===e.type?"Array":isString(e.type)?e.type:"string"}function isCompilerOptionsValue(e,t){if(e){if(isNullOrUndefined(t))return!e.disallowNullOrUndefined;if("list"===e.type)return isArray(t);if("listOrElement"===e.type)return isArray(t)||isCompilerOptionsValue(e.element,t);return typeof t===(isString(e.type)?e.type:"string")}return!1}function convertToTSConfig(e,t,n){var r,i,o;const a=createGetCanonicalFileName(n.useCaseSensitiveFileNames),s=map(filter(e.fileNames,(null==(i=null==(r=e.options.configFile)?void 0:r.configFileSpecs)?void 0:i.validatedIncludeSpecs)?function matchesSpecs(e,t,n,r){if(!t)return returnTrue;const i=getFileMatcherPatterns(e,n,t,r.useCaseSensitiveFileNames,r.getCurrentDirectory()),o=i.excludePattern&&getRegexFromPattern(i.excludePattern,r.useCaseSensitiveFileNames),a=i.includeFilePattern&&getRegexFromPattern(i.includeFilePattern,r.useCaseSensitiveFileNames);if(a)return o?e=>!(a.test(e)&&!o.test(e)):e=>!a.test(e);if(o)return e=>o.test(e);return returnTrue}(t,e.options.configFile.configFileSpecs.validatedIncludeSpecs,e.options.configFile.configFileSpecs.validatedExcludeSpecs,n):returnTrue),e=>getRelativePathFromFile(getNormalizedAbsolutePath(t,n.getCurrentDirectory()),getNormalizedAbsolutePath(e,n.getCurrentDirectory()),a)),c={configFilePath:getNormalizedAbsolutePath(t,n.getCurrentDirectory()),useCaseSensitiveFileNames:n.useCaseSensitiveFileNames},l=serializeCompilerOptions(e.options,c),d=e.watchOptions&&function serializeWatchOptions(e){return serializeOptionBaseObject(e,getWatchOptionsNameMap())}(e.watchOptions),p={compilerOptions:{...optionMapToObject(l),showConfig:void 0,configFile:void 0,configFilePath:void 0,help:void 0,init:void 0,listFiles:void 0,listEmittedFiles:void 0,project:void 0,build:void 0,version:void 0},watchOptions:d&&optionMapToObject(d),references:map(e.projectReferences,e=>({...e,path:e.originalPath?e.originalPath:"",originalPath:void 0})),files:length(s)?s:void 0,...(null==(o=e.options.configFile)?void 0:o.configFileSpecs)?{include:filterSameAsDefaultInclude(e.options.configFile.configFileSpecs.validatedIncludeSpecs),exclude:e.options.configFile.configFileSpecs.validatedExcludeSpecs}:{},compileOnSave:!!e.compileOnSave||void 0},u=new Set(l.keys()),m={};for(const t in Wn)if(!u.has(t)&&optionDependsOn(t,u)){Wn[t].computeValue(e.options)!==Wn[t].computeValue({})&&(m[t]=Wn[t].computeValue(e.options))}return assign(p.compilerOptions,optionMapToObject(serializeCompilerOptions(m,c))),p}function optionDependsOn(e,t){const n=new Set;return function optionDependsOnRecursive(e){var r;if(addToSeen(n,e))return some(null==(r=Wn[e])?void 0:r.dependencies,e=>t.has(e)||optionDependsOnRecursive(e));return!1}(e)}function optionMapToObject(e){return Object.fromEntries(e)}function filterSameAsDefaultInclude(e){if(length(e)){if(1!==length(e))return e;if(e[0]!==Po)return e}}function getCustomTypeMapOfCommandLineOption(e){switch(e.type){case"string":case"number":case"boolean":case"object":return;case"list":case"listOrElement":return getCustomTypeMapOfCommandLineOption(e.element);default:return e.type}}function getNameOfCompilerOptionValue(e,t){return forEachEntry(t,(t,n)=>{if(t===e)return n})}function serializeCompilerOptions(e,t){return serializeOptionBaseObject(e,getOptionsNameMap(),t)}function serializeOptionBaseObject(e,{optionsNameMap:t},n){const r=new Map,i=n&&createGetCanonicalFileName(n.useCaseSensitiveFileNames);for(const o in e)if(hasProperty(e,o)){if(t.has(o)&&(t.get(o).category===Ot.Command_line_Options||t.get(o).category===Ot.Output_Formatting))continue;const a=e[o],s=t.get(o.toLowerCase());if(s){h.assert("listOrElement"!==s.type);const e=getCustomTypeMapOfCommandLineOption(s);e?"list"===s.type?r.set(o,a.map(t=>getNameOfCompilerOptionValue(t,e))):r.set(o,getNameOfCompilerOptionValue(a,e)):n&&s.isFilePath?r.set(o,getRelativePathFromFile(n.configFilePath,getNormalizedAbsolutePath(a,getDirectoryPath(n.configFilePath)),i)):n&&"list"===s.type&&s.element.isFilePath?r.set(o,a.map(e=>getRelativePathFromFile(n.configFilePath,getNormalizedAbsolutePath(e,getDirectoryPath(n.configFilePath)),i))):r.set(o,a)}}return r}function generateTSConfig(e,t){const n=" ",r=[],i=Object.keys(e).filter(e=>"init"!==e&&"help"!==e&&"watch"!==e);if(r.push("{"),r.push(`${n}// ${getLocaleSpecificMessage(Ot.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)}`),r.push(`${n}"compilerOptions": {`),emitHeader(Ot.File_Layout),emitOption("rootDir","./src","optional"),emitOption("outDir","./dist","optional"),newline(),emitHeader(Ot.Environment_Settings),emitHeader(Ot.See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule),emitOption("module",199),emitOption("target",99),emitOption("types",[]),e.lib&&emitOption("lib",e.lib),emitHeader(Ot.For_nodejs_Colon),r.push(`${n}${n}// "lib": ["esnext"],`),r.push(`${n}${n}// "types": ["node"],`),emitHeader(Ot.and_npm_install_D_types_Slashnode),newline(),emitHeader(Ot.Other_Outputs),emitOption("sourceMap",!0),emitOption("declaration",!0),emitOption("declarationMap",!0),newline(),emitHeader(Ot.Stricter_Typechecking_Options),emitOption("noUncheckedIndexedAccess",!0),emitOption("exactOptionalPropertyTypes",!0),newline(),emitHeader(Ot.Style_Options),emitOption("noImplicitReturns",!0,"optional"),emitOption("noImplicitOverride",!0,"optional"),emitOption("noUnusedLocals",!0,"optional"),emitOption("noUnusedParameters",!0,"optional"),emitOption("noFallthroughCasesInSwitch",!0,"optional"),emitOption("noPropertyAccessFromIndexSignature",!0,"optional"),newline(),emitHeader(Ot.Recommended_Options),emitOption("strict",!0),emitOption("jsx",4),emitOption("verbatimModuleSyntax",!0),emitOption("isolatedModules",!0),emitOption("noUncheckedSideEffectImports",!0),emitOption("moduleDetection",3),emitOption("skipLibCheck",!0),i.length>0)for(newline();i.length>0;)emitOption(i[0],e[i[0]]);function newline(){r.push("")}function emitHeader(e){r.push(`${n}${n}// ${getLocaleSpecificMessage(e)}`)}function emitOption(t,o,a="never"){const s=i.indexOf(t);let c;s>=0&&i.splice(s,1),c="always"===a||"never"!==a&&!hasProperty(e,t);const l=e[t]??o;c?r.push(`${n}${n}// "${t}": ${formatValueOrArray(t,l)},`):r.push(`${n}${n}"${t}": ${formatValueOrArray(t,l)},`)}function formatValueOrArray(e,t){const n=Qi.filter(t=>t.name===e)[0];n||h.fail(`No option named ${e}?`);const r=n.type instanceof Map?n.type:void 0;if(isArray(t)){const e="element"in n&&n.element.type instanceof Map?n.element.type:void 0;return`[${t.map(t=>formatSingleValue(t,e)).join(", ")}]`}return formatSingleValue(t,r)}function formatSingleValue(e,t){return t&&(e=getNameOfCompilerOptionValue(e,t)??h.fail(`No matching value of ${e}`)),JSON.stringify(e)}return r.push(`${n}}`),r.push("}"),r.push(""),r.join(t)}function convertToOptionsWithAbsolutePaths(e,t){const n={},r=getOptionsNameMap().optionsNameMap;for(const i in e)hasProperty(e,i)&&(n[i]=convertToOptionValueWithAbsolutePaths(r.get(i.toLowerCase()),e[i],t));return n.configFilePath&&(n.configFilePath=t(n.configFilePath)),n}function convertToOptionValueWithAbsolutePaths(e,t,n){if(e&&!isNullOrUndefined(t)){if("list"===e.type){const r=t;if(e.element.isFilePath&&r.length)return r.map(n)}else if(e.isFilePath)return n(t);h.assert("listOrElement"!==e.type)}return t}function parseJsonConfigFileContent(e,t,n,r,i,o,a,s,c){return parseJsonConfigFileContentWorker(e,void 0,t,n,r,c,i,o,a,s)}function parseJsonSourceFileConfigFileContent(e,t,n,r,i,o,a,s,c){var l,d;null==(l=J)||l.push(J.Phase.Parse,"parseJsonSourceFileConfigFileContent",{path:e.fileName});const p=parseJsonConfigFileContentWorker(void 0,e,t,n,r,c,i,o,a,s);return null==(d=J)||d.pop(),p}function setConfigFileInOptions(e,t){t&&Object.defineProperty(e,"configFile",{enumerable:!1,writable:!1,value:t})}function isNullOrUndefined(e){return null==e}function directoryOfCombinedPath(e,t){return getDirectoryPath(getNormalizedAbsolutePath(e,t))}var Po="**/*";function parseJsonConfigFileContentWorker(e,t,n,r,i={},o,a,s=[],c=[],l){h.assert(void 0===e&&void 0!==t||void 0!==e&&void 0===t);const d=[],p=parseConfig(e,t,n,r,a,s,d,l),{raw:u}=p,m=handleOptionConfigDirTemplateSubstitution(extend(i,p.options||{}),io,r),_=handleWatchOptionsConfigDirTemplateSubstitution(o&&p.watchOptions?extend(o,p.watchOptions):p.watchOptions||o,r);m.configFilePath=a&&normalizeSlashes(a);const f=normalizePath(a?directoryOfCombinedPath(a,r):r),g=function getConfigFileSpecs(){const e=getPropFromRaw("references",e=>"object"==typeof e,"object"),n=toPropValue(getSpecsFromRaw("files"));if(n){const r="no-prop"===e||isArray(e)&&0===e.length,i=hasProperty(u,"extends");if(0===n.length&&r&&!i)if(t){const e=a||"tsconfig.json",n=Ot.The_files_list_in_config_file_0_is_empty,r=forEachTsConfigPropArray(t,"files",e=>e.initializer),i=createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(t,r,n,e);d.push(i)}else createCompilerDiagnosticOnlyIfJson(Ot.The_files_list_in_config_file_0_is_empty,a||"tsconfig.json")}let r=toPropValue(getSpecsFromRaw("include"));const i=getSpecsFromRaw("exclude");let o,s,c,l,p=!1,_=toPropValue(i);if("no-prop"===i){const e=m.outDir,t=m.declarationDir;(e||t)&&(_=filter([e,t],e=>!!e))}void 0===n&&void 0===r&&(r=[Po],p=!0);r&&(o=validateSpecs(r,d,!0,t,"include"),c=getSubstitutedStringArrayWithConfigDirTemplate(o,f)||o);_&&(s=validateSpecs(_,d,!1,t,"exclude"),l=getSubstitutedStringArrayWithConfigDirTemplate(s,f)||s);const g=filter(n,isString),y=getSubstitutedStringArrayWithConfigDirTemplate(g,f)||g;return{filesSpecs:n,includeSpecs:r,excludeSpecs:_,validatedFilesSpec:y,validatedIncludeSpecs:c,validatedExcludeSpecs:l,validatedFilesSpecBeforeSubstitution:g,validatedIncludeSpecsBeforeSubstitution:o,validatedExcludeSpecsBeforeSubstitution:s,isDefaultIncludeSpec:p}}();return t&&(t.configFileSpecs=g),setConfigFileInOptions(m,t),{options:m,watchOptions:_,fileNames:function getFileNames(e){const t=getFileNamesFromConfigSpecs(g,e,m,n,c);shouldReportNoInputFiles(t,canJsonReportNoInputFiles(u),s)&&d.push(getErrorForNoInputFiles(g,a));return t}(f),projectReferences:function getProjectReferences(e){let t;const n=getPropFromRaw("references",e=>"object"==typeof e,"object");if(isArray(n))for(const r of n)"string"!=typeof r.path?createCompilerDiagnosticOnlyIfJson(Ot.Compiler_option_0_requires_a_value_of_type_1,"reference.path","string"):(t||(t=[])).push({path:getNormalizedAbsolutePath(r.path,e),originalPath:r.path,prepend:r.prepend,circular:r.circular});return t}(f),typeAcquisition:p.typeAcquisition||getDefaultTypeAcquisition(),raw:u,errors:d,wildcardDirectories:getWildcardDirectories(g,f,n.useCaseSensitiveFileNames),compileOnSave:!!u.compileOnSave};function toPropValue(e){return isArray(e)?e:void 0}function getSpecsFromRaw(e){return getPropFromRaw(e,isString,"string")}function getPropFromRaw(e,n,r){if(hasProperty(u,e)&&!isNullOrUndefined(u[e])){if(isArray(u[e])){const i=u[e];return t||every(i,n)||d.push(createCompilerDiagnostic(Ot.Compiler_option_0_requires_a_value_of_type_1,e,r)),i}return createCompilerDiagnosticOnlyIfJson(Ot.Compiler_option_0_requires_a_value_of_type_1,e,"Array"),"not-array"}return"no-prop"}function createCompilerDiagnosticOnlyIfJson(e,...n){t||d.push(createCompilerDiagnostic(e,...n))}}function handleWatchOptionsConfigDirTemplateSubstitution(e,t){return handleOptionConfigDirTemplateSubstitution(e,oo,t)}function handleOptionConfigDirTemplateSubstitution(e,t,n){if(!e)return e;let r;for(const r of t)if(void 0!==e[r.name]){const t=e[r.name];switch(r.type){case"string":h.assert(r.isFilePath),startsWithConfigDirTemplate(t)&&setOptionValue(r,getSubstitutedPathWithConfigDirTemplate(t,n));break;case"list":h.assert(r.element.isFilePath);const e=getSubstitutedStringArrayWithConfigDirTemplate(t,n);e&&setOptionValue(r,e);break;case"object":h.assert("paths"===r.name);const i=getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(t,n);i&&setOptionValue(r,i);break;default:h.fail("option type not supported")}}return r||e;function setOptionValue(t,n){(r??(r=assign({},e)))[t.name]=n}}var Do="${configDir}";function startsWithConfigDirTemplate(e){return isString(e)&&startsWith(e,Do,!0)}function getSubstitutedPathWithConfigDirTemplate(e,t){return getNormalizedAbsolutePath(e.replace(Do,"./"),t)}function getSubstitutedStringArrayWithConfigDirTemplate(e,t){if(!e)return e;let n;return e.forEach((r,i)=>{startsWithConfigDirTemplate(r)&&((n??(n=e.slice()))[i]=getSubstitutedPathWithConfigDirTemplate(r,t))}),n}function getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(e,t){let n;return getOwnKeys(e).forEach(r=>{if(!isArray(e[r]))return;const i=getSubstitutedStringArrayWithConfigDirTemplate(e[r],t);i&&((n??(n=assign({},e)))[r]=i)}),n}function getErrorForNoInputFiles({includeSpecs:e,excludeSpecs:t},n){return createCompilerDiagnostic(Ot.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2,n||"tsconfig.json",JSON.stringify(e||[]),JSON.stringify(t||[]))}function shouldReportNoInputFiles(e,t,n){return 0===e.length&&t&&(!n||0===n.length)}function isSolutionConfig(e){return!e.fileNames.length&&hasProperty(e.raw,"references")}function canJsonReportNoInputFiles(e){return!hasProperty(e,"files")&&!hasProperty(e,"references")}function updateErrorForNoInputFiles(e,t,n,r,i){const o=r.length;return shouldReportNoInputFiles(e,i)?r.push(getErrorForNoInputFiles(n,t)):filterMutate(r,e=>!function isErrorNoInputFiles(e){return e.code===Ot.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code}(e)),o!==r.length}function parseConfig(e,t,n,r,i,o,a,s){var c;const l=getNormalizedAbsolutePath(i||"",r=normalizeSlashes(r));if(o.includes(l))return a.push(createCompilerDiagnostic(Ot.Circularity_detected_while_resolving_configuration_Colon_0,[...o,l].join(" -> "))),{raw:e||convertToObject(t,a)};const d=e?function parseOwnConfigOfJson(e,t,n,r,i){hasProperty(e,"excludes")&&i.push(createCompilerDiagnostic(Ot.Unknown_option_excludes_Did_you_mean_exclude));const o=convertCompilerOptionsFromJsonWorker(e.compilerOptions,n,i,r),a=convertTypeAcquisitionFromJsonWorker(e.typeAcquisition,n,i,r),s=function convertWatchOptionsFromJsonWorker(e,t,n){return convertOptionsFromJson(getCommandLineWatchOptionsMap(),e,t,void 0,bo,n)}(e.watchOptions,n,i);e.compileOnSave=function convertCompileOnSaveOptionFromJson(e,t,n){if(!hasProperty(e,ji.name))return!1;const r=convertJsonOption(ji,e.compileOnSave,t,n);return"boolean"==typeof r&&r}(e,n,i);const c=e.extends||""===e.extends?getExtendsConfigPathOrArray(e.extends,t,n,r,i):void 0;return{raw:e,options:o,watchOptions:s,typeAcquisition:a,extendedConfigPath:c}}(e,n,r,i,a):function parseOwnConfigOfJsonSourceFile(e,t,n,r,i){const o=getDefaultCompilerOptions(r);let a,s,c,l;const d=function getTsconfigRootOptionsMap(){return void 0===Co&&(Co={name:void 0,type:"object",elementOptions:commandLineOptionsToMap([No,ko,Fo,Eo,{name:"references",type:"list",element:{name:"references",type:"object"},category:Ot.Projects},{name:"files",type:"list",element:{name:"files",type:"string"},category:Ot.File_Management},{name:"include",type:"list",element:{name:"include",type:"string"},category:Ot.File_Management,defaultValueDescription:Ot.if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk},{name:"exclude",type:"list",element:{name:"exclude",type:"string"},category:Ot.File_Management,defaultValueDescription:Ot.node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified},ji])}),Co}(),p=convertConfigFileToObject(e,i,{rootOptions:d,onPropertySet});a||(a=getDefaultTypeAcquisition(r));l&&p&&void 0===p.compilerOptions&&i.push(createDiagnosticForNodeInSourceFile(e,l[0],Ot._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file,getTextOfPropertyName(l[0])));return{raw:p,options:o,watchOptions:s,typeAcquisition:a,extendedConfigPath:c};function onPropertySet(p,u,m,_,f){if(f&&f!==Eo&&(u=convertJsonOption(f,u,n,i,m,m.initializer,e)),null==_?void 0:_.name)if(f){let e;_===No?e=o:_===ko?e=s??(s={}):_===Fo?e=a??(a=getDefaultTypeAcquisition(r)):h.fail("Unknown option"),e[f.name]=u}else p&&(null==_?void 0:_.extraKeyDiagnostics)&&(_.elementOptions?i.push(createUnknownOptionError(p,_.extraKeyDiagnostics,void 0,m.name,e)):i.push(createDiagnosticForNodeInSourceFile(e,m.name,_.extraKeyDiagnostics.unknownOptionDiagnostic,p)));else _===d&&(f===Eo?c=getExtendsConfigPathOrArray(u,t,n,r,i,m,m.initializer,e):f||("excludes"===p&&i.push(createDiagnosticForNodeInSourceFile(e,m.name,Ot.Unknown_option_excludes_Did_you_mean_exclude)),find($i,e=>e.name===p)&&(l=append(l,m.name))))}}(t,n,r,i,a);if((null==(c=d.options)?void 0:c.paths)&&(d.options.pathsBasePath=r),d.extendedConfigPath){o=o.concat([l]);const e={options:{}};isString(d.extendedConfigPath)?applyExtendedConfig(e,d.extendedConfigPath):d.extendedConfigPath.forEach(t=>applyExtendedConfig(e,t)),e.include&&(d.raw.include=e.include),e.exclude&&(d.raw.exclude=e.exclude),e.files&&(d.raw.files=e.files),void 0===d.raw.compileOnSave&&e.compileOnSave&&(d.raw.compileOnSave=e.compileOnSave),t&&e.extendedSourceFiles&&(t.extendedSourceFiles=arrayFrom(e.extendedSourceFiles.keys())),d.options=assign(e.options,d.options),d.watchOptions=d.watchOptions&&e.watchOptions?assignWatchOptions(e,d.watchOptions):d.watchOptions||e.watchOptions}return d;function applyExtendedConfig(e,i){const c=function getExtendedConfig(e,t,n,r,i,o,a){const s=n.useCaseSensitiveFileNames?t:toFileNameLowerCase(t);let c,l,d;o&&(c=o.get(s))?({extendedResult:l,extendedConfig:d}=c):(l=readJsonConfigFile(t,e=>n.readFile(e)),l.parseDiagnostics.length||(d=parseConfig(void 0,l,n,getDirectoryPath(t),getBaseFileName(t),r,i,o)),o&&o.set(s,{extendedResult:l,extendedConfig:d}));if(e&&((a.extendedSourceFiles??(a.extendedSourceFiles=new Set)).add(l.fileName),l.extendedSourceFiles))for(const e of l.extendedSourceFiles)a.extendedSourceFiles.add(e);if(l.parseDiagnostics.length)return void i.push(...l.parseDiagnostics);return d}(t,i,n,o,a,s,e);if(c&&function isSuccessfulParsedTsconfig(e){return!!e.options}(c)){const t=c.raw;let o;const setPropertyInResultIfNotUndefined=a=>{d.raw[a]||t[a]&&(e[a]=map(t[a],e=>startsWithConfigDirTemplate(e)||isRootedDiskPath(e)?e:combinePaths(o||(o=convertToRelativePath(getDirectoryPath(i),r,createGetCanonicalFileName(n.useCaseSensitiveFileNames))),e)))};setPropertyInResultIfNotUndefined("include"),setPropertyInResultIfNotUndefined("exclude"),setPropertyInResultIfNotUndefined("files"),void 0!==t.compileOnSave&&(e.compileOnSave=t.compileOnSave),assign(e.options,c.options),e.watchOptions=e.watchOptions&&c.watchOptions?assignWatchOptions(e,c.watchOptions):e.watchOptions||c.watchOptions}}function assignWatchOptions(e,t){return e.watchOptionsCopied?assign(e.watchOptions,t):(e.watchOptionsCopied=!0,assign({},e.watchOptions,t))}}function getExtendsConfigPathOrArray(e,t,n,r,i,o,a,s){let c;const l=r?directoryOfCombinedPath(r,n):n;if(isString(e))c=getExtendsConfigPath(e,t,l,i,a,s);else if(isArray(e)){c=[];for(let r=0;rcreateDiagnosticForNodeInSourceFileOrCompilerDiagnostic(i,r,e,...t)))}function convertJsonOptionOfListType(e,t,n,r,i,o,a){return filter(map(t,(t,s)=>convertJsonOption(e.element,t,n,r,i,null==o?void 0:o.elements[s],a)),t=>!!e.listPreserveFalsyValues||!!t)}var Io,Ao=/(?:^|\/)\*\*\/?$/,Oo=/^[^*?]*(?=\/[^/]*[*?])/;function getFileNamesFromConfigSpecs(e,t,n,r,i=l){t=normalizePath(t);const o=createGetCanonicalFileName(r.useCaseSensitiveFileNames),a=new Map,s=new Map,c=new Map,{validatedFilesSpec:d,validatedIncludeSpecs:p,validatedExcludeSpecs:u}=e,m=getSupportedExtensions(n,i),_=getSupportedExtensionsWithJsonIfResolveJsonModule(n,m);if(d)for(const e of d){const n=getNormalizedAbsolutePath(e,t);a.set(o(n),n)}let f;if(p&&p.length>0)for(const e of r.readDirectory(t,flatten(_),u,p,void 0)){if(fileExtensionIs(e,".json")){if(!f){const e=map(getRegularExpressionsForWildcards(p.filter(e=>endsWith(e,".json")),t,"files"),e=>`^${e}$`);f=e?e.map(e=>getRegexFromPattern(e,r.useCaseSensitiveFileNames)):l}if(-1!==findIndex(f,t=>t.test(e))){const t=o(e);a.has(t)||c.has(t)||c.set(t,e)}continue}if(hasFileWithHigherPriorityExtension(e,a,s,m,o))continue;removeWildcardFilesWithLowerPriorityExtension(e,s,m,o);const n=o(e);a.has(n)||s.has(n)||s.set(n,e)}const g=arrayFrom(a.values()),y=arrayFrom(s.values());return g.concat(y,arrayFrom(c.values()))}function isExcludedFile(e,t,n,r,i){const{validatedFilesSpec:o,validatedIncludeSpecs:a,validatedExcludeSpecs:s}=t;if(!length(a)||!length(s))return!1;n=normalizePath(n);const c=createGetCanonicalFileName(r);if(o)for(const t of o)if(c(getNormalizedAbsolutePath(t,n))===e)return!1;return matchesExcludeWorker(e,s,r,i,n)}function invalidDotDotAfterRecursiveWildcard(e){const t=startsWith(e,"**/")?0:e.indexOf("/**/");if(-1===t)return!1;return(endsWith(e,"/..")?e.length:e.lastIndexOf("/../"))>t}function matchesExclude(e,t,n,r){return matchesExcludeWorker(e,filter(t,e=>!invalidDotDotAfterRecursiveWildcard(e)),n,r)}function matchesExcludeWorker(e,t,n,r,i){const o=getRegularExpressionForWildcard(t,combinePaths(normalizePath(r),i),"exclude"),a=o&&getRegexFromPattern(o,n);return!!a&&(!!a.test(e)||!hasExtension(e)&&a.test(ensureTrailingDirectorySeparator(e)))}function validateSpecs(e,t,n,r,i){return e.filter(e=>{if(!isString(e))return!1;const o=specToDiagnostic(e,n);return void 0!==o&&t.push(function createDiagnostic(e,t){const n=getTsConfigPropArrayElementValue(r,i,t);return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(r,n,e,t)}(...o)),void 0===o})}function specToDiagnostic(e,t){return h.assert("string"==typeof e),t&&Ao.test(e)?[Ot.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,e]:invalidDotDotAfterRecursiveWildcard(e)?[Ot.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,e]:void 0}function getWildcardDirectories({validatedIncludeSpecs:e,validatedExcludeSpecs:t},n,r){const i=getRegularExpressionForWildcard(t,n,"exclude"),o=i&&new RegExp(i,r?"":"i"),a={},s=new Map;if(void 0!==e){const t=[];for(const i of e){const e=normalizePath(combinePaths(n,i));if(o&&o.test(e))continue;const c=getWildcardDirectoryFromSpec(e,r);if(c){const{key:e,path:n,flags:r}=c,i=s.get(e),o=void 0!==i?a[i]:void 0;(void 0===o||ofileExtensionIsOneOf(e,t)?t:void 0);if(!o)return!1;for(const r of o){if(fileExtensionIs(e,r)&&(".ts"!==r||!fileExtensionIs(e,".d.ts")))return!1;const o=i(changeExtension(e,r));if(t.has(o)||n.has(o)){if(".d.ts"===r&&(fileExtensionIs(e,".js")||fileExtensionIs(e,".jsx")))continue;return!0}}return!1}function removeWildcardFilesWithLowerPriorityExtension(e,t,n,r){const i=forEach(n,t=>fileExtensionIsOneOf(e,t)?t:void 0);if(i)for(let n=i.length-1;n>=0;n--){const o=i[n];if(fileExtensionIs(e,o))return;const a=r(changeExtension(e,o));t.delete(a)}}function convertCompilerOptionsForTelemetry(e){const t={};for(const n in e)if(hasProperty(e,n)){const r=getOptionFromName(n);void 0!==r&&(t[n]=getOptionValueWithEmptyStrings(e[n],r))}return t}function getOptionValueWithEmptyStrings(e,t){if(void 0===e)return e;switch(t.type){case"object":case"string":return"";case"number":return"number"==typeof e?e:"";case"boolean":return"boolean"==typeof e?e:"";case"listOrElement":if(!isArray(e))return getOptionValueWithEmptyStrings(e,t.element);case"list":const n=t.element;return isArray(e)?mapDefined(e,e=>getOptionValueWithEmptyStrings(e,n)):"";default:return forEachEntry(t.type,(t,n)=>{if(t===e)return n})}}function trace(e,t,...n){e.trace(formatMessage(t,...n))}function isTraceEnabled(e,t){return!!e.traceResolution&&void 0!==t.trace}function withPackageId(e,t,n){let r;if(t&&e){const i=e.contents.packageJsonContent;"string"==typeof i.name&&"string"==typeof i.version&&(r={name:i.name,subModuleName:t.path.slice(e.packageDirectory.length+Ft.length),version:i.version,peerDependencies:getPeerDependenciesOfPackageJsonInfo(e,n)})}return t&&{path:t.path,extension:t.ext,packageId:r,resolvedUsingTsExtension:t.resolvedUsingTsExtension}}function noPackageId(e){return withPackageId(void 0,e,void 0)}function removeIgnoredPackageId(e){if(e)return h.assert(void 0===e.packageId),{path:e.path,ext:e.extension,resolvedUsingTsExtension:e.resolvedUsingTsExtension}}function formatExtensions(e){const t=[];return 1&e&&t.push("TypeScript"),2&e&&t.push("JavaScript"),4&e&&t.push("Declaration"),8&e&&t.push("JSON"),t.join(", ")}function resolvedTypeScriptOnly(e){if(e)return h.assert(extensionIsTS(e.extension)),{fileName:e.path,packageId:e.packageId}}function createResolvedModuleWithFailedLookupLocationsHandlingSymlink(e,t,n,r,i,o,a,s,c){if(!a.resultFromCache&&!a.compilerOptions.preserveSymlinks&&t&&n&&!t.originalPath&&!isExternalModuleNameRelative(e)){const{resolvedFileName:e,originalPath:n}=getOriginalAndResolvedFileName(t.path,a.host,a.traceEnabled);n&&(t={...t,path:e,originalPath:n})}return createResolvedModuleWithFailedLookupLocations(t,n,r,i,o,a.resultFromCache,s,c)}function createResolvedModuleWithFailedLookupLocations(e,t,n,r,i,o,a,s){return o?(null==a?void 0:a.isReadonly)?{...o,failedLookupLocations:initializeResolutionFieldForReadonlyCache(o.failedLookupLocations,n),affectingLocations:initializeResolutionFieldForReadonlyCache(o.affectingLocations,r),resolutionDiagnostics:initializeResolutionFieldForReadonlyCache(o.resolutionDiagnostics,i)}:(o.failedLookupLocations=updateResolutionField(o.failedLookupLocations,n),o.affectingLocations=updateResolutionField(o.affectingLocations,r),o.resolutionDiagnostics=updateResolutionField(o.resolutionDiagnostics,i),o):{resolvedModule:e&&{resolvedFileName:e.path,originalPath:!0===e.originalPath?void 0:e.originalPath,extension:e.extension,isExternalLibraryImport:t,packageId:e.packageId,resolvedUsingTsExtension:!!e.resolvedUsingTsExtension},failedLookupLocations:initializeResolutionField(n),affectingLocations:initializeResolutionField(r),resolutionDiagnostics:initializeResolutionField(i),alternateResult:s}}function initializeResolutionField(e){return e.length?e:void 0}function updateResolutionField(e,t){return(null==t?void 0:t.length)?(null==e?void 0:e.length)?(e.push(...t),e):t:e}function initializeResolutionFieldForReadonlyCache(e,t){return(null==e?void 0:e.length)?t.length?[...e,...t]:e.slice():initializeResolutionField(t)}function readPackageJsonField(e,t,n,r){if(!hasProperty(e,t))return void(r.traceEnabled&&trace(r.host,Ot.package_json_does_not_have_a_0_field,t));const i=e[t];if(typeof i===n&&null!==i)return i;r.traceEnabled&&trace(r.host,Ot.Expected_type_of_0_field_in_package_json_to_be_1_got_2,t,n,null===i?"null":typeof i)}function readPackageJsonPathField(e,t,n,r){const i=readPackageJsonField(e,t,"string",r);if(void 0===i)return;if(!i)return void(r.traceEnabled&&trace(r.host,Ot.package_json_had_a_falsy_0_field,t));const o=normalizePath(combinePaths(n,i));return r.traceEnabled&&trace(r.host,Ot.package_json_has_0_field_1_that_references_2,t,i,o),o}function readPackageJsonTypesVersionPaths(e,t){const n=function readPackageJsonTypesVersionsField(e,t){const n=readPackageJsonField(e,"typesVersions","object",t);if(void 0!==n)return t.traceEnabled&&trace(t.host,Ot.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),n}(e,t);if(void 0===n)return;if(t.traceEnabled)for(const e in n)hasProperty(n,e)&&!F.tryParse(e)&&trace(t.host,Ot.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,e);const r=getPackageJsonTypesVersionsPaths(n);if(!r)return void(t.traceEnabled&&trace(t.host,Ot.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,a));const{version:i,paths:o}=r;if("object"==typeof o)return r;t.traceEnabled&&trace(t.host,Ot.Expected_type_of_0_field_in_package_json_to_be_1_got_2,`typesVersions['${i}']`,"object",typeof o)}function getPackageJsonTypesVersionsPaths(e){Io||(Io=new k(s));for(const t in e){if(!hasProperty(e,t))continue;const n=F.tryParse(t);if(void 0!==n&&n.test(Io))return{version:t,paths:e[t]}}}function getEffectiveTypeRoots(e,t){if(e.typeRoots)return e.typeRoots;let n;return e.configFilePath?n=getDirectoryPath(e.configFilePath):t.getCurrentDirectory&&(n=t.getCurrentDirectory()),void 0!==n?function getDefaultTypeRoots(e){let t;return forEachAncestorDirectory(normalizePath(e),e=>{const n=combinePaths(e,wo);(t??(t=[])).push(n)}),t}(n):void 0}var wo=combinePaths("node_modules","@types");function arePathsEqual(e,t,n){return 0===comparePaths(e,t,!("function"==typeof n.useCaseSensitiveFileNames?n.useCaseSensitiveFileNames():n.useCaseSensitiveFileNames))}function getOriginalAndResolvedFileName(e,t,n){const r=realPath(e,t,n),i=arePathsEqual(e,r,t);return{resolvedFileName:i?e:r,originalPath:i?void 0:e}}function getCandidateFromTypeRoot(e,t,n){return combinePaths(e,endsWith(e,"/node_modules/@types")||endsWith(e,"/node_modules/@types/")?mangleScopedPackageNameWithTrace(t,n):t)}function resolveTypeReferenceDirective(e,t,n,r,i,o,a){h.assert("string"==typeof e,"Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.");const s=isTraceEnabled(n,r);i&&(n=i.commandLine.options);const c=t?getDirectoryPath(t):void 0;let l=c?null==o?void 0:o.getFromDirectoryCache(e,a,c,i):void 0;if(l||!c||isExternalModuleNameRelative(e)||(l=null==o?void 0:o.getFromNonRelativeNameCache(e,a,c,i)),l)return s&&(trace(r,Ot.Resolving_type_reference_directive_0_containing_file_1,e,t),i&&trace(r,Ot.Using_compiler_options_of_project_reference_redirect_0,i.sourceFile.fileName),trace(r,Ot.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1,e,c),traceResult(l)),l;const d=getEffectiveTypeRoots(n,r);s&&(void 0===t?void 0===d?trace(r,Ot.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,e):trace(r,Ot.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,e,d):void 0===d?trace(r,Ot.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,e,t):trace(r,Ot.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,e,t,d),i&&trace(r,Ot.Using_compiler_options_of_project_reference_redirect_0,i.sourceFile.fileName));const p=[],u=[];let m=getNodeResolutionFeatures(n);void 0!==a&&(m|=30);const _=qn(n);99===a&&3<=_&&_<=99&&(m|=32);const f=8&m?getConditions(n,a):[],g=[],y={compilerOptions:n,host:r,traceEnabled:s,failedLookupLocations:p,affectingLocations:u,packageJsonInfoCache:o,features:m,conditions:f,requestContainingDirectory:c,reportDiagnostic:e=>{g.push(e)},isConfigLookup:!1,candidateIsFromPackageJsonField:!1,resolvedPackageDirectory:!1};let T,S=function primaryLookup(){if(d&&d.length)return s&&trace(r,Ot.Resolving_with_primary_search_path_0,d.join(", ")),firstDefined(d,t=>{const i=getCandidateFromTypeRoot(t,e,y),o=directoryProbablyExists(t,r);if(!o&&s&&trace(r,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,t),n.typeRoots){const e=loadModuleFromFile(4,i,!o,y);if(e){const t=parseNodeModuleFromPath(e.path);return resolvedTypeScriptOnly(withPackageId(t?getPackageJsonInfo(t,!1,y):void 0,e,y))}}return resolvedTypeScriptOnly(loadNodeModuleFromDirectory(4,i,!o,y))});s&&trace(r,Ot.Root_directory_cannot_be_determined_skipping_primary_search_paths)}(),x=!0;if(S||(S=function secondaryLookup(){const i=t&&getDirectoryPath(t);if(void 0!==i){let o;if(n.typeRoots&&endsWith(t,Ua))s&&trace(r,Ot.Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder);else if(s&&trace(r,Ot.Looking_up_in_node_modules_folder_initial_location_0,i),isExternalModuleNameRelative(e)){const{path:t}=normalizePathForCJSResolution(i,e);o=nodeLoadModuleByRelativeName(4,t,!1,y,!0)}else{const t=loadModuleFromNearestNodeModulesDirectory(4,e,i,y,void 0,void 0);o=t&&t.value}return resolvedTypeScriptOnly(o)}s&&trace(r,Ot.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}(),x=!1),S){const{fileName:e,packageId:t}=S;let i,o=e;n.preserveSymlinks||({resolvedFileName:o,originalPath:i}=getOriginalAndResolvedFileName(e,r,s)),T={primary:x,resolvedFileName:o,originalPath:i,packageId:t,isExternalLibraryImport:pathContainsNodeModules(e)}}return l={resolvedTypeReferenceDirective:T,failedLookupLocations:initializeResolutionField(p),affectingLocations:initializeResolutionField(u),resolutionDiagnostics:initializeResolutionField(g)},c&&o&&!o.isReadonly&&(o.getOrCreateCacheForDirectory(c,i).set(e,a,l),isExternalModuleNameRelative(e)||o.getOrCreateCacheForNonRelativeName(e,a,i).set(c,l)),s&&traceResult(l),l;function traceResult(t){var n;(null==(n=t.resolvedTypeReferenceDirective)?void 0:n.resolvedFileName)?t.resolvedTypeReferenceDirective.packageId?trace(r,Ot.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,e,t.resolvedTypeReferenceDirective.resolvedFileName,packageIdToString(t.resolvedTypeReferenceDirective.packageId),t.resolvedTypeReferenceDirective.primary):trace(r,Ot.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,e,t.resolvedTypeReferenceDirective.resolvedFileName,t.resolvedTypeReferenceDirective.primary):trace(r,Ot.Type_reference_directive_0_was_not_resolved,e)}}function getNodeResolutionFeatures(e){let t=0;switch(qn(e)){case 3:case 99:case 100:t=30}return e.resolvePackageJsonExports?t|=8:!1===e.resolvePackageJsonExports&&(t&=-9),e.resolvePackageJsonImports?t|=2:!1===e.resolvePackageJsonImports&&(t&=-3),t}function getConditions(e,t){const n=qn(e);if(void 0===t)if(100===n)t=99;else if(2===n)return[];const r=99===t?["import"]:["require"];return e.noDtsResolution||r.push("types"),100!==n&&r.push("node"),concatenate(r,e.customConditions)}function resolvePackageNameToPackageJson(e,t,n,r,i){const o=getTemporaryModuleResolutionState(null==i?void 0:i.getPackageJsonInfoCache(),r,n);return forEachAncestorDirectoryStoppingAtGlobalCache(r,t,t=>{if("node_modules"!==getBaseFileName(t)){const n=combinePaths(t,"node_modules");return getPackageJsonInfo(combinePaths(n,e),!1,o)}})}function getAutomaticTypeDirectiveNames(e,t){if(e.types)return e.types;const n=[];if(t.directoryExists&&t.getDirectories){const r=getEffectiveTypeRoots(e,t);if(r)for(const e of r)if(t.directoryExists(e))for(const r of t.getDirectories(e)){const i=normalizePath(r),o=combinePaths(e,i,"package.json");if(!(t.fileExists(o)&&null===readJson(o,t).typings)){const e=getBaseFileName(i);46!==e.charCodeAt(0)&&n.push(e)}}}return n}function isPackageJsonInfo(e){return!!(null==e?void 0:e.contents)}function isMissingPackageJsonInfo(e){return!!e&&!e.contents}function compilerOptionValueToString(e){var t;if(null===e||"object"!=typeof e)return""+e;if(isArray(e))return`[${null==(t=e.map(e=>compilerOptionValueToString(e)))?void 0:t.join(",")}]`;let n="{";for(const t in e)hasProperty(e,t)&&(n+=`${t}: ${compilerOptionValueToString(e[t])}`);return n+"}"}function getKeyForCompilerOptions(e,t){return t.map(t=>compilerOptionValueToString(getCompilerOptionValue(e,t))).join("|")+`|${e.pathsBasePath}`}function createCacheWithRedirects(e,t){const n=new Map,r=new Map;let i=new Map;return e&&n.set(e,i),{getMapOfCacheRedirects:function getMapOfCacheRedirects(e){return e?getOrCreateMap(e.commandLine.options,!1):i},getOrCreateMapOfCacheRedirects:function getOrCreateMapOfCacheRedirects(e){return e?getOrCreateMap(e.commandLine.options,!0):i},update:function update(t){e!==t&&(e?i=getOrCreateMap(t,!0):n.set(t,i),e=t)},clear:function clear2(){const o=e&&t.get(e);i.clear(),n.clear(),t.clear(),r.clear(),e&&(o&&t.set(e,o),n.set(e,i))},getOwnMap:()=>i};function getOrCreateMap(t,o){let a=n.get(t);if(a)return a;const s=getRedirectsCacheKey(t);if(a=r.get(s),!a){if(e){const t=getRedirectsCacheKey(e);t===s?a=i:r.has(t)||r.set(t,i)}o&&(a??(a=new Map)),a&&r.set(s,a)}return a&&n.set(t,a),a}function getRedirectsCacheKey(e){let n=t.get(e);return n||t.set(e,n=getKeyForCompilerOptions(e,eo)),n}}function getOrCreateCache(e,t,n,r){const i=e.getOrCreateMapOfCacheRedirects(t);let o=i.get(n);return o||(o=r(),i.set(n,o)),o}function createModeAwareCacheKey(e,t){return void 0===t?e:`${t}|${e}`}function createModeAwareCache(){const e=new Map,t=new Map,n={get:(t,n)=>e.get(getUnderlyingCacheKey(t,n)),set:(t,r,i)=>(e.set(getUnderlyingCacheKey(t,r),i),n),delete:(t,r)=>(e.delete(getUnderlyingCacheKey(t,r)),n),has:(t,n)=>e.has(getUnderlyingCacheKey(t,n)),forEach:n=>e.forEach((e,r)=>{const[i,o]=t.get(r);return n(e,i,o)}),size:()=>e.size};return n;function getUnderlyingCacheKey(e,n){const r=createModeAwareCacheKey(e,n);return t.set(r,[e,n]),r}}function getOriginalOrResolvedModuleFileName(e){return e.resolvedModule&&(e.resolvedModule.originalPath||e.resolvedModule.resolvedFileName)}function getOriginalOrResolvedTypeReferenceFileName(e){return e.resolvedTypeReferenceDirective&&(e.resolvedTypeReferenceDirective.originalPath||e.resolvedTypeReferenceDirective.resolvedFileName)}function createNonRelativeNameResolutionCache(e,t,n,r,i){const o=createCacheWithRedirects(n,i);return{getFromNonRelativeNameCache:function getFromNonRelativeNameCache(e,t,n,r){var i,a;return h.assert(!isExternalModuleNameRelative(e)),null==(a=null==(i=o.getMapOfCacheRedirects(r))?void 0:i.get(createModeAwareCacheKey(e,t)))?void 0:a.get(n)},getOrCreateCacheForNonRelativeName:function getOrCreateCacheForNonRelativeName(e,t,n){return h.assert(!isExternalModuleNameRelative(e)),getOrCreateCache(o,n,createModeAwareCacheKey(e,t),createPerModuleNameCache)},clear:function clear2(){o.clear()},update:function update(e){o.update(e)}};function createPerModuleNameCache(){const n=new Map;return{get:function get(r){return n.get(toPath(r,e,t))},set:function set(i,o){const a=toPath(i,e,t);if(n.has(a))return;n.set(a,o);const s=r(o),c=s&&function getCommonPrefix(n,r){const i=toPath(getDirectoryPath(r),e,t);let o=0;const a=Math.min(n.length,i.length);for(;ocreateModeAwareCache())},clear:function clear2(){i.clear()},update:function update(e){i.update(e)},directoryToModuleNameMap:i}}(e,t,n,o),s=createNonRelativeNameResolutionCache(e,t,n,i,o);return r??(r=function createPackageJsonInfoCache(e,t){let n;return{getPackageJsonInfo:function getPackageJsonInfo2(r){return null==n?void 0:n.get(toPath(r,e,t))},setPackageJsonInfo:function setPackageJsonInfo(r,i){(n||(n=new Map)).set(toPath(r,e,t),i)},clear:function clear2(){n=void 0},getInternalMap:function getInternalMap(){return n}}}(e,t)),{...r,...a,...s,clear:function clear2(){clearAllExceptPackageJsonInfoCache(),r.clear()},update:function update(e){a.update(e),s.update(e)},getPackageJsonInfoCache:()=>r,clearAllExceptPackageJsonInfoCache,optionsToRedirectsKey:o};function clearAllExceptPackageJsonInfoCache(){a.clear(),s.clear()}}function createModuleResolutionCache(e,t,n,r,i){const o=createModuleOrTypeReferenceResolutionCache(e,t,n,r,getOriginalOrResolvedModuleFileName,i);return o.getOrCreateCacheForModuleName=(e,t,n)=>o.getOrCreateCacheForNonRelativeName(e,t,n),o}function createTypeReferenceDirectiveResolutionCache(e,t,n,r,i){return createModuleOrTypeReferenceResolutionCache(e,t,n,r,getOriginalOrResolvedTypeReferenceFileName,i)}function getOptionsForLibraryResolution(e){return{moduleResolution:2,traceResolution:e.traceResolution}}function resolveLibrary(e,t,n,r,i){return resolveModuleName(e,t,getOptionsForLibraryResolution(n),r,i)}function resolveModuleNameFromCache(e,t,n,r){const i=getDirectoryPath(t);return n.getFromDirectoryCache(e,r,i,void 0)}function resolveModuleName(e,t,n,r,i,o,a){const s=isTraceEnabled(n,r);o&&(n=o.commandLine.options),s&&(trace(r,Ot.Resolving_module_0_from_1,e,t),o&&trace(r,Ot.Using_compiler_options_of_project_reference_redirect_0,o.sourceFile.fileName));const c=getDirectoryPath(t);let l=null==i?void 0:i.getFromDirectoryCache(e,a,c,o);if(l)s&&trace(r,Ot.Resolution_for_module_0_was_found_in_cache_from_location_1,e,c);else{let d=n.moduleResolution;switch(void 0===d?(d=qn(n),s&&trace(r,Ot.Module_resolution_kind_is_not_specified_using_0,Ve[d])):s&&trace(r,Ot.Explicitly_specified_module_resolution_kind_Colon_0,Ve[d]),d){case 3:l=function node16ModuleNameResolver(e,t,n,r,i,o,a){return nodeNextModuleNameResolverWorker(30,e,t,n,r,i,o,a)}(e,t,n,r,i,o,a);break;case 99:l=function nodeNextModuleNameResolver(e,t,n,r,i,o,a){return nodeNextModuleNameResolverWorker(30,e,t,n,r,i,o,a)}(e,t,n,r,i,o,a);break;case 2:l=nodeModuleNameResolver(e,t,n,r,i,o,a?getConditions(n,a):void 0);break;case 1:l=classicNameResolver(e,t,n,r,i,o);break;case 100:l=bundlerModuleNameResolver(e,t,n,r,i,o,a?getConditions(n,a):void 0);break;default:return h.fail(`Unexpected moduleResolution: ${d}`)}i&&!i.isReadonly&&(i.getOrCreateCacheForDirectory(c,o).set(e,a,l),isExternalModuleNameRelative(e)||i.getOrCreateCacheForNonRelativeName(e,a,o).set(c,l))}return s&&(l.resolvedModule?l.resolvedModule.packageId?trace(r,Ot.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2,e,l.resolvedModule.resolvedFileName,packageIdToString(l.resolvedModule.packageId)):trace(r,Ot.Module_name_0_was_successfully_resolved_to_1,e,l.resolvedModule.resolvedFileName):trace(r,Ot.Module_name_0_was_not_resolved,e)),l}function tryLoadModuleUsingOptionalResolutionSettings(e,t,n,r,i){const o=function tryLoadModuleUsingPathsIfEligible(e,t,n,r){const{baseUrl:i,paths:o}=r.compilerOptions;if(o&&!pathIsRelative(t)){r.traceEnabled&&(i&&trace(r.host,Ot.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,i,t),trace(r.host,Ot.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0,t));return tryLoadModuleUsingPaths(e,t,getPathsBasePath(r.compilerOptions,r.host),o,tryParsePatterns(o),n,!1,r)}}(e,t,r,i);return o?o.value:isExternalModuleNameRelative(t)?function tryLoadModuleUsingRootDirs(e,t,n,r,i){if(!i.compilerOptions.rootDirs)return;i.traceEnabled&&trace(i.host,Ot.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0,t);const o=normalizePath(combinePaths(n,t));let a,s;for(const e of i.compilerOptions.rootDirs){let t=normalizePath(e);endsWith(t,Ft)||(t+=Ft);const n=startsWith(o,t)&&(void 0===s||s.length(e[e.None=0]="None",e[e.Imports=2]="Imports",e[e.SelfName=4]="SelfName",e[e.Exports=8]="Exports",e[e.ExportsPatternTrailers=16]="ExportsPatternTrailers",e[e.AllFeatures=30]="AllFeatures",e[e.Node16Default=30]="Node16Default",e[e.NodeNextDefault=30]="NodeNextDefault",e[e.BundlerDefault=30]="BundlerDefault",e[e.EsmMode=32]="EsmMode",e))(Lo||{});function nodeNextModuleNameResolverWorker(e,t,n,r,i,o,a,s,c){const l=getDirectoryPath(n),d=99===s?32:0;let p=r.noDtsResolution?3:7;return Yn(r)&&(p|=8),nodeModuleNameResolverWorker(e|d,t,l,r,i,o,p,!1,a,c)}function bundlerModuleNameResolver(e,t,n,r,i,o,a){const s=getDirectoryPath(t);let c=n.noDtsResolution?3:7;return Yn(n)&&(c|=8),nodeModuleNameResolverWorker(getNodeResolutionFeatures(n),e,s,n,r,i,c,!1,o,a)}function nodeModuleNameResolver(e,t,n,r,i,o,a,s){let c;return s?c=8:n.noDtsResolution?(c=3,Yn(n)&&(c|=8)):c=Yn(n)?15:7,nodeModuleNameResolverWorker(a?30:0,e,getDirectoryPath(t),n,r,i,c,!!s,o,a)}function nodeNextJsonConfigResolver(e,t,n){return nodeModuleNameResolverWorker(30,e,getDirectoryPath(t),{moduleResolution:99},n,void 0,8,!0,void 0,void 0)}function nodeModuleNameResolverWorker(e,t,n,r,i,o,a,s,c,d){var p,u,m,_,f;const g=isTraceEnabled(r,i),y=[],h=[],T=qn(r);d??(d=getConditions(r,100===T||2===T?void 0:32&e?99:1));const S=[],x={compilerOptions:r,host:i,traceEnabled:g,failedLookupLocations:y,affectingLocations:h,packageJsonInfoCache:o,features:e,conditions:d??l,requestContainingDirectory:n,reportDiagnostic:e=>{S.push(e)},isConfigLookup:s,candidateIsFromPackageJsonField:!1,resolvedPackageDirectory:!1};let v,b;if(g&&moduleResolutionSupportsPackageJsonExportsAndImports(T)&&trace(i,Ot.Resolving_in_0_mode_with_conditions_1,32&e?"ESM":"CJS",x.conditions.map(e=>`'${e}'`).join(", ")),2===T){const e=5&a,t=-6&a;v=e&&tryResolve(e,x)||t&&tryResolve(t,x)||void 0}else v=tryResolve(a,x);if(x.resolvedPackageDirectory&&!s&&!isExternalModuleNameRelative(t)){const t=(null==v?void 0:v.value)&&5&a&&!extensionIsOk(5,v.value.resolved.extension);if((null==(p=null==v?void 0:v.value)?void 0:p.isExternalLibraryImport)&&t&&8&e&&(null==d?void 0:d.includes("import"))){traceIfEnabled(x,Ot.Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update);const e=tryResolve(5&a,{...x,features:-9&x.features,reportDiagnostic:noop});(null==(u=null==e?void 0:e.value)?void 0:u.isExternalLibraryImport)&&(b=e.value.resolved.path)}else if((!(null==v?void 0:v.value)||t)&&2===T){traceIfEnabled(x,Ot.Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update);const e={...x.compilerOptions,moduleResolution:100},t=tryResolve(5&a,{...x,compilerOptions:e,features:30,conditions:getConditions(e),reportDiagnostic:noop});(null==(m=null==t?void 0:t.value)?void 0:m.isExternalLibraryImport)&&(b=t.value.resolved.path)}}return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(t,null==(_=null==v?void 0:v.value)?void 0:_.resolved,null==(f=null==v?void 0:v.value)?void 0:f.isExternalLibraryImport,y,h,S,x,o,b);function tryResolve(r,a){const s=tryLoadModuleUsingOptionalResolutionSettings(r,t,n,(e,t,n,r)=>nodeLoadModuleByRelativeName(e,t,n,r,!0),a);if(s)return toSearchResult({resolved:s,isExternalLibraryImport:pathContainsNodeModules(s.path)});if(isExternalModuleNameRelative(t)){const{path:e,parts:i}=normalizePathForCJSResolution(n,t),o=nodeLoadModuleByRelativeName(r,e,!1,a,!0);return o&&toSearchResult({resolved:o,isExternalLibraryImport:contains(i,"node_modules")})}{if(2&e&&startsWith(t,"#")){const e=function loadModuleFromImports(e,t,n,r,i,o){var a,s;if("#"===t||startsWith(t,"#/"))return r.traceEnabled&&trace(r.host,Ot.Invalid_import_specifier_0_has_no_possible_resolutions,t),toSearchResult(void 0);const c=getNormalizedAbsolutePath(n,null==(s=(a=r.host).getCurrentDirectory)?void 0:s.call(a)),l=getPackageScopeForPath(c,r);if(!l)return r.traceEnabled&&trace(r.host,Ot.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve,c),toSearchResult(void 0);if(!l.contents.packageJsonContent.imports)return r.traceEnabled&&trace(r.host,Ot.package_json_scope_0_has_no_imports_defined,l.packageDirectory),toSearchResult(void 0);const d=loadModuleFromExportsOrImports(e,r,i,o,t,l.contents.packageJsonContent.imports,l,!0);if(d)return d;r.traceEnabled&&trace(r.host,Ot.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1,t,l.packageDirectory);return toSearchResult(void 0)}(r,t,n,a,o,c);if(e)return e.value&&{value:{resolved:e.value,isExternalLibraryImport:!1}}}if(4&e){const e=function loadModuleFromSelfNameReference(e,t,n,r,i,o){var a,s;const c=getNormalizedAbsolutePath(n,null==(s=(a=r.host).getCurrentDirectory)?void 0:s.call(a)),l=getPackageScopeForPath(c,r);if(!l||!l.contents.packageJsonContent.exports)return;if("string"!=typeof l.contents.packageJsonContent.name)return;const d=getPathComponents(t),p=getPathComponents(l.contents.packageJsonContent.name);if(!every(p,(e,t)=>d[t]===e))return;const u=d.slice(p.length),m=length(u)?`.${Ft}${u.join(Ft)}`:".";if(rr(r.compilerOptions)&&!pathContainsNodeModules(n))return loadModuleFromExports(l,e,m,r,i,o);const _=5&e,f=-6&e;return loadModuleFromExports(l,_,m,r,i,o)||loadModuleFromExports(l,f,m,r,i,o)}(r,t,n,a,o,c);if(e)return e.value&&{value:{resolved:e.value,isExternalLibraryImport:!1}}}if(t.includes(":"))return void(g&&trace(i,Ot.Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1,t,formatExtensions(r)));g&&trace(i,Ot.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1,t,formatExtensions(r));let s=loadModuleFromNearestNodeModulesDirectory(r,t,n,a,o,c);return 4&r&&(s??(s=resolveFromTypeRoot(t,a))),s&&{value:s.value&&{resolved:s.value,isExternalLibraryImport:!0}}}}}function normalizePathForCJSResolution(e,t){const n=combinePaths(e,t),r=getPathComponents(n),i=lastOrUndefined(r);return{path:"."===i||".."===i?ensureTrailingDirectorySeparator(normalizePath(n)):normalizePath(n),parts:r}}function realPath(e,t,n){if(!t.realpath)return e;const r=normalizePath(t.realpath(e));return n&&trace(t,Ot.Resolving_real_path_for_0_result_1,e,r),r}function nodeLoadModuleByRelativeName(e,t,n,r,i){if(r.traceEnabled&&trace(r.host,Ot.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1,t,formatExtensions(e)),!hasTrailingDirectorySeparator(t)){if(!n){const e=getDirectoryPath(t);directoryProbablyExists(e,r.host)||(r.traceEnabled&&trace(r.host,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,e),n=!0)}const o=loadModuleFromFile(e,t,n,r);if(o){const e=i?parseNodeModuleFromPath(o.path):void 0;return withPackageId(e?getPackageJsonInfo(e,!1,r):void 0,o,r)}}if(!n){directoryProbablyExists(t,r.host)||(r.traceEnabled&&trace(r.host,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,t),n=!0)}if(!(32&r.features))return loadNodeModuleFromDirectory(e,t,n,r,i)}var Mo="/node_modules/";function pathContainsNodeModules(e){return e.includes(Mo)}function parseNodeModuleFromPath(e,t){const n=normalizePath(e),r=n.lastIndexOf(Mo);if(-1===r)return;const i=r+Mo.length;let o=moveToNextDirectorySeparatorIfAvailable(n,i,t);return 64===n.charCodeAt(i)&&(o=moveToNextDirectorySeparatorIfAvailable(n,o,t)),n.slice(0,o)}function moveToNextDirectorySeparatorIfAvailable(e,t,n){const r=e.indexOf(Ft,t+1);return-1===r?n?e.length:t:r}function loadModuleFromFileNoPackageId(e,t,n,r){return noPackageId(loadModuleFromFile(e,t,n,r))}function loadModuleFromFile(e,t,n,r){const i=loadModuleFromFileNoImplicitExtensions(e,t,n,r);if(i)return i;if(!(32&r.features)){const i=tryAddingExtensions(t,e,"",n,r);if(i)return i}}function loadModuleFromFileNoImplicitExtensions(e,t,n,r){if(!getBaseFileName(t).includes("."))return;let i=removeFileExtension(t);i===t&&(i=t.substring(0,t.lastIndexOf(".")));const o=t.substring(i.length);return r.traceEnabled&&trace(r.host,Ot.File_name_0_has_a_1_extension_stripping_it,t,o),tryAddingExtensions(i,e,o,n,r)}function loadFileNameFromPackageJsonField(e,t,n,r,i){if(1&e&&fileExtensionIsOneOf(t,xr)||4&e&&fileExtensionIsOneOf(t,Sr)){const e=tryFile(t,r,i),o=tryExtractTSExtension(t);return void 0!==e?{path:t,ext:o,resolvedUsingTsExtension:n?!endsWith(n,o):void 0}:void 0}if(i.isConfigLookup&&8===e&&fileExtensionIs(t,".json")){return void 0!==tryFile(t,r,i)?{path:t,ext:".json",resolvedUsingTsExtension:void 0}:void 0}return loadModuleFromFileNoImplicitExtensions(e,t,r,i)}function tryAddingExtensions(e,t,n,r,i){if(!r){const t=getDirectoryPath(e);t&&(r=!directoryProbablyExists(t,i.host))}switch(n){case".mjs":case".mts":case".d.mts":return 1&t&&tryExtension(".mts",".mts"===n||".d.mts"===n)||4&t&&tryExtension(".d.mts",".mts"===n||".d.mts"===n)||2&t&&tryExtension(".mjs")||void 0;case".cjs":case".cts":case".d.cts":return 1&t&&tryExtension(".cts",".cts"===n||".d.cts"===n)||4&t&&tryExtension(".d.cts",".cts"===n||".d.cts"===n)||2&t&&tryExtension(".cjs")||void 0;case".json":return 4&t&&tryExtension(".d.json.ts")||8&t&&tryExtension(".json")||void 0;case".tsx":case".jsx":return 1&t&&(tryExtension(".tsx",".tsx"===n)||tryExtension(".ts",".tsx"===n))||4&t&&tryExtension(".d.ts",".tsx"===n)||2&t&&(tryExtension(".jsx")||tryExtension(".js"))||void 0;case".ts":case".d.ts":case".js":case"":return 1&t&&(tryExtension(".ts",".ts"===n||".d.ts"===n)||tryExtension(".tsx",".ts"===n||".d.ts"===n))||4&t&&tryExtension(".d.ts",".ts"===n||".d.ts"===n)||2&t&&(tryExtension(".js")||tryExtension(".jsx"))||i.isConfigLookup&&tryExtension(".json")||void 0;default:return 4&t&&!isDeclarationFileName(e+n)&&tryExtension(`.d${n}.ts`)||void 0}function tryExtension(t,n){const o=tryFile(e+t,r,i);return void 0===o?void 0:{path:o,ext:t,resolvedUsingTsExtension:!i.candidateIsFromPackageJsonField&&n}}}function tryFile(e,t,n){var r;if(!(null==(r=n.compilerOptions.moduleSuffixes)?void 0:r.length))return tryFileLookup(e,t,n);const i=tryGetExtensionFromPath2(e)??"",o=i?removeExtension(e,i):e;return forEach(n.compilerOptions.moduleSuffixes,e=>tryFileLookup(o+e+i,t,n))}function tryFileLookup(e,t,n){var r;if(!t){if(n.host.fileExists(e))return n.traceEnabled&&trace(n.host,Ot.File_0_exists_use_it_as_a_name_resolution_result,e),e;n.traceEnabled&&trace(n.host,Ot.File_0_does_not_exist,e)}null==(r=n.failedLookupLocations)||r.push(e)}function loadNodeModuleFromDirectory(e,t,n,r,i=!0){const o=i?getPackageJsonInfo(t,n,r):void 0;return withPackageId(o,loadNodeModuleFromDirectoryWorker(e,t,n,r,o),r)}function getEntrypointsFromPackageJsonInfo(e,t,n,r,i){if(!i&&void 0!==e.contents.resolvedEntrypoints)return e.contents.resolvedEntrypoints;let o;const a=5|(i?2:0),s=getNodeResolutionFeatures(t),c=getTemporaryModuleResolutionState(null==r?void 0:r.getPackageJsonInfoCache(),n,t);c.conditions=getConditions(t),c.requestContainingDirectory=e.packageDirectory;const l=loadNodeModuleFromDirectoryWorker(a,e.packageDirectory,!1,c,e);if(o=append(o,null==l?void 0:l.path),8&s&&e.contents.packageJsonContent.exports){const r=deduplicate([getConditions(t,99),getConditions(t,1)],arrayIsEqualTo);for(const t of r){const r={...c,failedLookupLocations:[],conditions:t,host:n},i=loadEntrypointsFromExportMap(e,e.contents.packageJsonContent.exports,r,a);if(i)for(const e of i)o=appendIfUnique(o,e.path)}}return e.contents.resolvedEntrypoints=o||!1}function loadEntrypointsFromExportMap(e,t,n,r){let i;if(isArray(t))for(const e of t)loadEntrypointsFromTargetExports(e);else if("object"==typeof t&&null!==t&&allKeysStartWithDot(t))for(const e in t)loadEntrypointsFromTargetExports(t[e]);else loadEntrypointsFromTargetExports(t);return i;function loadEntrypointsFromTargetExports(t){var o,a;if("string"==typeof t&&startsWith(t,"./"))if(t.includes("*")&&n.host.readDirectory){if(t.indexOf("*")!==t.lastIndexOf("*"))return!1;n.host.readDirectory(e.packageDirectory,function extensionsToExtensionsArray(e){const t=[];return 1&e&&t.push(...xr),2&e&&t.push(...yr),4&e&&t.push(...Sr),8&e&&t.push(".json"),t}(r),void 0,[changeFullExtension(replaceFirstStar(t,"**/*"),".*")]).forEach(e=>{i=appendIfUnique(i,{path:e,ext:getAnyExtensionFromPath(e),resolvedUsingTsExtension:void 0})})}else{const s=getPathComponents(t).slice(2);if(s.includes("..")||s.includes(".")||s.includes("node_modules"))return!1;const c=getNormalizedAbsolutePath(combinePaths(e.packageDirectory,t),null==(a=(o=n.host).getCurrentDirectory)?void 0:a.call(o)),l=loadFileNameFromPackageJsonField(r,c,t,!1,n);if(l)return i=appendIfUnique(i,l,(e,t)=>e.path===t.path),!0}else if(Array.isArray(t))for(const e of t){if(loadEntrypointsFromTargetExports(e))return!0}else if("object"==typeof t&&null!==t)return forEach(getOwnKeys(t),e=>{if("default"===e||contains(n.conditions,e)||isApplicableVersionedTypesKey(n.conditions,e))return loadEntrypointsFromTargetExports(t[e]),!0})}}function getTemporaryModuleResolutionState(e,t,n){return{host:t,compilerOptions:n,traceEnabled:isTraceEnabled(n,t),failedLookupLocations:void 0,affectingLocations:void 0,packageJsonInfoCache:e,features:0,conditions:l,requestContainingDirectory:void 0,reportDiagnostic:noop,isConfigLookup:!1,candidateIsFromPackageJsonField:!1,resolvedPackageDirectory:!1}}function getPackageScopeForPath(e,t){return forEachAncestorDirectoryStoppingAtGlobalCache(t.host,e,e=>getPackageJsonInfo(e,!1,t))}function getVersionPathsOfPackageJsonInfo(e,t){return void 0===e.contents.versionPaths&&(e.contents.versionPaths=readPackageJsonTypesVersionPaths(e.contents.packageJsonContent,t)||!1),e.contents.versionPaths||void 0}function getPeerDependenciesOfPackageJsonInfo(e,t){return void 0===e.contents.peerDependencies&&(e.contents.peerDependencies=function readPackageJsonPeerDependencies(e,t){const n=readPackageJsonField(e.contents.packageJsonContent,"peerDependencies","object",t);if(void 0===n)return;t.traceEnabled&&trace(t.host,Ot.package_json_has_a_peerDependencies_field);const r=realPath(e.packageDirectory,t.host,t.traceEnabled),i=r.substring(0,r.lastIndexOf("node_modules")+12)+Ft;let o="";for(const e in n)if(hasProperty(n,e)){const n=getPackageJsonInfo(i+e,!1,t);if(n){const r=n.contents.packageJsonContent.version;o+=`+${e}@${r}`,t.traceEnabled&&trace(t.host,Ot.Found_peerDependency_0_with_1_version,e,r)}else t.traceEnabled&&trace(t.host,Ot.Failed_to_find_peerDependency_0,e)}return o}(e,t)||!1),e.contents.peerDependencies||void 0}function getPackageJsonInfo(e,t,n){var r,i,o,a,s,c;const{host:l,traceEnabled:d}=n,p=combinePaths(e,"package.json");if(t)return void(null==(r=n.failedLookupLocations)||r.push(p));const u=null==(i=n.packageJsonInfoCache)?void 0:i.getPackageJsonInfo(p);if(void 0!==u)return isPackageJsonInfo(u)?(d&&trace(l,Ot.File_0_exists_according_to_earlier_cached_lookups,p),null==(o=n.affectingLocations)||o.push(p),u.packageDirectory===e?u:{packageDirectory:e,contents:u.contents}):(u.directoryExists&&d&&trace(l,Ot.File_0_does_not_exist_according_to_earlier_cached_lookups,p),void(null==(a=n.failedLookupLocations)||a.push(p)));const m=directoryProbablyExists(e,l);if(m&&l.fileExists(p)){const t=readJson(p,l);d&&trace(l,Ot.Found_package_json_at_0,p);const r={packageDirectory:e,contents:{packageJsonContent:t,versionPaths:void 0,resolvedEntrypoints:void 0,peerDependencies:void 0}};return n.packageJsonInfoCache&&!n.packageJsonInfoCache.isReadonly&&n.packageJsonInfoCache.setPackageJsonInfo(p,r),null==(s=n.affectingLocations)||s.push(p),r}m&&d&&trace(l,Ot.File_0_does_not_exist,p),n.packageJsonInfoCache&&!n.packageJsonInfoCache.isReadonly&&n.packageJsonInfoCache.setPackageJsonInfo(p,{packageDirectory:e,directoryExists:m}),null==(c=n.failedLookupLocations)||c.push(p)}function loadNodeModuleFromDirectoryWorker(e,t,n,r,i){const o=i&&getVersionPathsOfPackageJsonInfo(i,r);let a;i&&arePathsEqual(null==i?void 0:i.packageDirectory,t,r.host)&&(a=r.isConfigLookup?function readPackageJsonTSConfigField(e,t,n){return readPackageJsonPathField(e,"tsconfig",t,n)}(i.contents.packageJsonContent,i.packageDirectory,r):4&e&&function readPackageJsonTypesFields(e,t,n){return readPackageJsonPathField(e,"typings",t,n)||readPackageJsonPathField(e,"types",t,n)}(i.contents.packageJsonContent,i.packageDirectory,r)||7&e&&function readPackageJsonMainField(e,t,n){return readPackageJsonPathField(e,"main",t,n)}(i.contents.packageJsonContent,i.packageDirectory,r)||void 0);const loader=(e,t,n,r)=>{const o=loadFileNameFromPackageJsonField(e,t,void 0,n,r);if(o)return noPackageId(o);const a=4===e?5:e,s=r.features,c=r.candidateIsFromPackageJsonField;r.candidateIsFromPackageJsonField=!0,"module"!==(null==i?void 0:i.contents.packageJsonContent.type)&&(r.features&=-33);const l=nodeLoadModuleByRelativeName(a,t,n,r,!1);return r.features=s,r.candidateIsFromPackageJsonField=c,l},c=a?!directoryProbablyExists(getDirectoryPath(a),r.host):void 0,l=n||!directoryProbablyExists(t,r.host),d=combinePaths(t,r.isConfigLookup?"tsconfig":"index");if(o&&(!a||containsPath(t,a))){const n=getRelativePathFromDirectory(t,a||d,!1);r.traceEnabled&&trace(r.host,Ot.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,o.version,s,n);const i=tryParsePatterns(o.paths),p=tryLoadModuleUsingPaths(e,n,t,o.paths,i,loader,c||l,r);if(p)return removeIgnoredPackageId(p.value)}const p=a&&removeIgnoredPackageId(loader(e,a,c,r));return p||(32&r.features?void 0:loadModuleFromFile(e,d,l,r))}function extensionIsOk(e,t){return 2&e&&(".js"===t||".jsx"===t||".mjs"===t||".cjs"===t)||1&e&&(".ts"===t||".tsx"===t||".mts"===t||".cts"===t)||4&e&&(".d.ts"===t||".d.mts"===t||".d.cts"===t)||8&e&&".json"===t||!1}function parsePackageName(e){let t=e.indexOf(Ft);return"@"===e[0]&&(t=e.indexOf(Ft,t+1)),-1===t?{packageName:e,rest:""}:{packageName:e.slice(0,t),rest:e.slice(t+1)}}function allKeysStartWithDot(e){return every(getOwnKeys(e),e=>startsWith(e,"."))}function loadModuleFromExports(e,t,n,r,i,o){if(e.contents.packageJsonContent.exports){if("."===n){let a;if("string"==typeof e.contents.packageJsonContent.exports||Array.isArray(e.contents.packageJsonContent.exports)||"object"==typeof e.contents.packageJsonContent.exports&&function noKeyStartsWithDot(e){return!some(getOwnKeys(e),e=>startsWith(e,"."))}(e.contents.packageJsonContent.exports)?a=e.contents.packageJsonContent.exports:hasProperty(e.contents.packageJsonContent.exports,".")&&(a=e.contents.packageJsonContent.exports["."]),a){return getLoadModuleFromTargetExportOrImport(t,r,i,o,n,e,!1)(a,"",!1,".")}}else if(allKeysStartWithDot(e.contents.packageJsonContent.exports)){if("object"!=typeof e.contents.packageJsonContent.exports)return r.traceEnabled&&trace(r.host,Ot.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,n,e.packageDirectory),toSearchResult(void 0);const a=loadModuleFromExportsOrImports(t,r,i,o,n,e.contents.packageJsonContent.exports,e,!1);if(a)return a}return r.traceEnabled&&trace(r.host,Ot.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,n,e.packageDirectory),toSearchResult(void 0)}}function comparePatternKeys(e,t){const n=e.indexOf("*"),r=t.indexOf("*"),i=-1===n?e.length:n+1,o=-1===r?t.length:r+1;return i>o?-1:o>i||-1===n?1:-1===r||e.length>t.length?-1:t.length>e.length?1:0}function loadModuleFromExportsOrImports(e,t,n,r,i,o,a,s){const c=getLoadModuleFromTargetExportOrImport(e,t,n,r,i,a,s);if(!endsWith(i,Ft)&&!i.includes("*")&&hasProperty(o,i)){return c(o[i],"",!1,i)}const l=toSorted(filter(getOwnKeys(o),e=>function hasOneAsterisk(e){const t=e.indexOf("*");return-1!==t&&t===e.lastIndexOf("*")}(e)||endsWith(e,"/")),comparePatternKeys);for(const e of l){if(16&t.features&&matchesPatternWithTrailer(e,i)){const t=o[e],n=e.indexOf("*");return c(t,i.substring(e.substring(0,n).length,i.length-(e.length-1-n)),!0,e)}if(endsWith(e,"*")&&startsWith(i,e.substring(0,e.length-1))){return c(o[e],i.substring(e.length-1),!0,e)}if(startsWith(i,e)){return c(o[e],i.substring(e.length),!1,e)}}function matchesPatternWithTrailer(e,t){if(endsWith(e,"*"))return!1;const n=e.indexOf("*");return-1!==n&&(startsWith(t,e.substring(0,n))&&endsWith(t,e.substring(n+1)))}}function getLoadModuleFromTargetExportOrImport(e,t,n,r,i,o,a){return function loadModuleFromTargetExportOrImport(s,c,d,p){var u,m;if("string"==typeof s){if(!d&&c.length>0&&!endsWith(s,"/"))return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i),toSearchResult(void 0);if(!startsWith(s,"./")){if(a&&!startsWith(s,"../")&&!startsWith(s,"/")&&!isRootedDiskPath(s)){const i=d?s.replace(/\*/g,c):s+c;traceIfEnabled(t,Ot.Using_0_subpath_1_with_target_2,"imports",p,i),traceIfEnabled(t,Ot.Resolving_module_0_from_1,i,o.packageDirectory+"/");const a=nodeModuleNameResolverWorker(t.features,i,o.packageDirectory+"/",t.compilerOptions,t.host,n,e,!1,r,t.conditions);return null==(u=t.failedLookupLocations)||u.push(...a.failedLookupLocations??l),null==(m=t.affectingLocations)||m.push(...a.affectingLocations??l),toSearchResult(a.resolvedModule?{path:a.resolvedModule.resolvedFileName,extension:a.resolvedModule.extension,packageId:a.resolvedModule.packageId,originalPath:a.resolvedModule.originalPath,resolvedUsingTsExtension:a.resolvedModule.resolvedUsingTsExtension}:void 0)}return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i),toSearchResult(void 0)}const _=(pathIsRelative(s)?getPathComponents(s).slice(1):getPathComponents(s)).slice(1);if(_.includes("..")||_.includes(".")||_.includes("node_modules"))return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i),toSearchResult(void 0);const f=combinePaths(o.packageDirectory,s),g=getPathComponents(c);if(g.includes("..")||g.includes(".")||g.includes("node_modules"))return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i),toSearchResult(void 0);t.traceEnabled&&trace(t.host,Ot.Using_0_subpath_1_with_target_2,a?"imports":"exports",p,d?s.replace(/\*/g,c):s+c);const y=toAbsolutePath(d?f.replace(/\*/g,c):f+c),h=function tryLoadInputFileForPath(n,r,i,a){var s,c,l,d;if(!t.isConfigLookup&&(t.compilerOptions.declarationDir||t.compilerOptions.outDir)&&!n.includes("/node_modules/")&&(!t.compilerOptions.configFile||containsPath(o.packageDirectory,toAbsolutePath(t.compilerOptions.configFile.fileName),!useCaseSensitiveFileNames(t)))){const p=hostGetCanonicalFileName({useCaseSensitiveFileNames:()=>useCaseSensitiveFileNames(t)}),u=[];if(t.compilerOptions.rootDir||t.compilerOptions.composite&&t.compilerOptions.configFilePath){const e=toAbsolutePath(getCommonSourceDirectory(t.compilerOptions,()=>[],(null==(c=(s=t.host).getCurrentDirectory)?void 0:c.call(s))||"",p));u.push(e)}else if(t.requestContainingDirectory){const e=toAbsolutePath(combinePaths(t.requestContainingDirectory,"index.ts")),n=toAbsolutePath(getCommonSourceDirectory(t.compilerOptions,()=>[e,toAbsolutePath(i)],(null==(d=(l=t.host).getCurrentDirectory)?void 0:d.call(l))||"",p));u.push(n);let r=ensureTrailingDirectorySeparator(n);for(;r&&r.length>1;){const e=getPathComponents(r);e.pop();const t=getPathFromPathComponents(e);u.unshift(t),r=ensureTrailingDirectorySeparator(t)}}u.length>1&&t.reportDiagnostic(createCompilerDiagnostic(a?Ot.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:Ot.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,""===r?".":r,i));for(const r of u){const i=getOutputDirectoriesForBaseDirectory(r);for(const a of i)if(containsPath(a,n,!useCaseSensitiveFileNames(t))){const i=combinePaths(r,n.slice(a.length+1)),s=[".mjs",".cjs",".js",".json",".d.mts",".d.cts",".d.ts"];for(const n of s)if(fileExtensionIs(i,n)){const r=getPossibleOriginalInputExtensionForExtension(i);for(const a of r){if(!extensionIsOk(e,a))continue;const r=changeAnyExtension(i,a,n,!useCaseSensitiveFileNames(t));if(t.host.fileExists(r))return toSearchResult(withPackageId(o,loadFileNameFromPackageJsonField(e,r,void 0,!1,t),t))}}}}}return;function getOutputDirectoriesForBaseDirectory(e){var n,r;const i=t.compilerOptions.configFile?(null==(r=(n=t.host).getCurrentDirectory)?void 0:r.call(n))||"":e,o=[];return t.compilerOptions.declarationDir&&o.push(toAbsolutePath(combineDirectoryPath(i,t.compilerOptions.declarationDir))),t.compilerOptions.outDir&&t.compilerOptions.outDir!==t.compilerOptions.declarationDir&&o.push(toAbsolutePath(combineDirectoryPath(i,t.compilerOptions.outDir))),o}}(y,c,combinePaths(o.packageDirectory,"package.json"),a);return h||toSearchResult(withPackageId(o,loadFileNameFromPackageJsonField(e,y,s,!1,t),t))}if("object"==typeof s&&null!==s){if(!Array.isArray(s)){traceIfEnabled(t,Ot.Entering_conditional_exports);for(const e of getOwnKeys(s))if("default"===e||t.conditions.includes(e)||isApplicableVersionedTypesKey(t.conditions,e)){traceIfEnabled(t,Ot.Matched_0_condition_1,a?"imports":"exports",e);const n=s[e],r=loadModuleFromTargetExportOrImport(n,c,d,p);if(r)return traceIfEnabled(t,Ot.Resolved_under_condition_0,e),traceIfEnabled(t,Ot.Exiting_conditional_exports),r;traceIfEnabled(t,Ot.Failed_to_resolve_under_condition_0,e)}else traceIfEnabled(t,Ot.Saw_non_matching_condition_0,e);return void traceIfEnabled(t,Ot.Exiting_conditional_exports)}if(!length(s))return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i),toSearchResult(void 0);for(const e of s){const t=loadModuleFromTargetExportOrImport(e,c,d,p);if(t)return t}}else if(null===s)return t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_explicitly_maps_specifier_1_to_null,o.packageDirectory,i),toSearchResult(void 0);t.traceEnabled&&trace(t.host,Ot.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,o.packageDirectory,i);return toSearchResult(void 0);function toAbsolutePath(e){var n,r;return void 0===e?e:getNormalizedAbsolutePath(e,null==(r=(n=t.host).getCurrentDirectory)?void 0:r.call(n))}function combineDirectoryPath(e,t){return ensureTrailingDirectorySeparator(combinePaths(e,t))}}}function isApplicableVersionedTypesKey(e,t){if(!e.includes("types"))return!1;if(!startsWith(t,"types@"))return!1;const n=F.tryParse(t.substring(6));return!!n&&n.test(s)}function loadModuleFromNearestNodeModulesDirectory(e,t,n,r,i,o){return loadModuleFromNearestNodeModulesDirectoryWorker(e,t,n,r,!1,i,o)}function loadModuleFromNearestNodeModulesDirectoryWorker(e,t,n,r,i,o,a){const s=0===r.features?void 0:32&r.features||r.conditions.includes("import")?99:1,c=5&e,l=-6&e;if(c){traceIfEnabled(r,Ot.Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0,formatExtensions(c));const e=lookup(c);if(e)return e}if(l&&!i)return traceIfEnabled(r,Ot.Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0,formatExtensions(l)),lookup(l);function lookup(e){return forEachAncestorDirectoryStoppingAtGlobalCache(r.host,normalizeSlashes(n),n=>{if("node_modules"!==getBaseFileName(n)){const c=tryFindNonRelativeModuleNameInCache(o,t,s,n,a,r);return c||toSearchResult(loadModuleFromImmediateNodeModulesDirectory(e,t,n,r,i,o,a))}})}}function forEachAncestorDirectoryStoppingAtGlobalCache(e,t,n){var r;const i=null==(r=null==e?void 0:e.getGlobalTypingsCacheLocation)?void 0:r.call(e);return forEachAncestorDirectory(t,e=>{const t=n(e);return void 0!==t?t:e!==i&&void 0})||void 0}function loadModuleFromImmediateNodeModulesDirectory(e,t,n,r,i,o,a){const s=combinePaths(n,"node_modules"),c=directoryProbablyExists(s,r.host);if(!c&&r.traceEnabled&&trace(r.host,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,s),!i){const n=loadModuleFromSpecificNodeModulesDirectory(e,t,s,c,r,o,a);if(n)return n}if(4&e){const e=combinePaths(s,"@types");let n=c;return c&&!directoryProbablyExists(e,r.host)&&(r.traceEnabled&&trace(r.host,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,e),n=!1),loadModuleFromSpecificNodeModulesDirectory(4,mangleScopedPackageNameWithTrace(t,r),e,n,r,o,a)}}function loadModuleFromSpecificNodeModulesDirectory(e,t,n,r,i,o,a){var c,d;const p=normalizePath(combinePaths(n,t)),{packageName:u,rest:m}=parsePackageName(t),_=combinePaths(n,u);let f,g=getPackageJsonInfo(p,!r,i);if(""!==m&&g&&(!(8&i.features)||!hasProperty((null==(c=f=getPackageJsonInfo(_,!r,i))?void 0:c.contents.packageJsonContent)??l,"exports"))){const t=loadModuleFromFile(e,p,!r,i);if(t)return noPackageId(t);const n=loadNodeModuleFromDirectoryWorker(e,p,!r,i,g);return withPackageId(g,n,i)}const loader=(e,t,n,r)=>{let i=(m||!(32&r.features))&&loadModuleFromFile(e,t,n,r)||loadNodeModuleFromDirectoryWorker(e,t,n,r,g);return!i&&!m&&g&&(void 0===g.contents.packageJsonContent.exports||null===g.contents.packageJsonContent.exports)&&32&r.features&&(i=loadModuleFromFile(e,combinePaths(t,"index.js"),n,r)),withPackageId(g,i,r)};if(""!==m&&(g=f??getPackageJsonInfo(_,!r,i)),g&&(i.resolvedPackageDirectory=!0),g&&g.contents.packageJsonContent.exports&&8&i.features)return null==(d=loadModuleFromExports(g,e,combinePaths(".",m),i,o,a))?void 0:d.value;const y=""!==m&&g?getVersionPathsOfPackageJsonInfo(g,i):void 0;if(y){i.traceEnabled&&trace(i.host,Ot.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,y.version,s,m);const t=r&&directoryProbablyExists(_,i.host),n=tryParsePatterns(y.paths),o=tryLoadModuleUsingPaths(e,m,_,y.paths,n,loader,!t,i);if(o)return o.value}return loader(e,p,!r,i)}function tryLoadModuleUsingPaths(e,t,n,r,i,o,a,s){const c=matchPatternOrExact(i,t);if(c){const i=isString(c)?void 0:matchedText(c,t),l=isString(c)?c:patternText(c);s.traceEnabled&&trace(s.host,Ot.Module_name_0_matched_pattern_1,t,l);return{value:forEach(r[l],t=>{const r=i?replaceFirstStar(t,i):t,c=normalizePath(combinePaths(n,r));s.traceEnabled&&trace(s.host,Ot.Trying_substitution_0_candidate_module_location_Colon_1,t,r);const l=tryGetExtensionFromPath2(t);if(void 0!==l){const e=tryFile(c,a,s);if(void 0!==e)return noPackageId({path:e,ext:l,resolvedUsingTsExtension:void 0})}return o(e,c,a||!directoryProbablyExists(getDirectoryPath(c),s.host),s)})}}}var Ro="__";function mangleScopedPackageNameWithTrace(e,t){const n=mangleScopedPackageName(e);return t.traceEnabled&&n!==e&&trace(t.host,Ot.Scoped_package_detected_looking_in_0,n),n}function getTypesPackageName(e){return`@types/${mangleScopedPackageName(e)}`}function mangleScopedPackageName(e){if(startsWith(e,"@")){const t=e.replace(Ft,Ro);if(t!==e)return t.slice(1)}return e}function getPackageNameFromTypesPackageName(e){const t=removePrefix(e,"@types/");return t!==e?unmangleScopedPackageName(t):e}function unmangleScopedPackageName(e){return e.includes(Ro)?"@"+e.replace(Ro,Ft):e}function tryFindNonRelativeModuleNameInCache(e,t,n,r,i,o){const a=e&&e.getFromNonRelativeNameCache(t,n,r,i);if(a)return o.traceEnabled&&trace(o.host,Ot.Resolution_for_module_0_was_found_in_cache_from_location_1,t,r),o.resultFromCache=a,{value:a.resolvedModule&&{path:a.resolvedModule.resolvedFileName,originalPath:a.resolvedModule.originalPath||!0,extension:a.resolvedModule.extension,packageId:a.resolvedModule.packageId,resolvedUsingTsExtension:a.resolvedModule.resolvedUsingTsExtension}}}function classicNameResolver(e,t,n,r,i,o){const a=isTraceEnabled(n,r),s=[],c=[],l=getDirectoryPath(t),d=[],p={compilerOptions:n,host:r,traceEnabled:a,failedLookupLocations:s,affectingLocations:c,packageJsonInfoCache:i,features:0,conditions:[],requestContainingDirectory:l,reportDiagnostic:e=>{d.push(e)},isConfigLookup:!1,candidateIsFromPackageJsonField:!1,resolvedPackageDirectory:!1},u=tryResolve(5)||tryResolve(2|(n.resolveJsonModule?8:0));return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(e,u&&u.value,(null==u?void 0:u.value)&&pathContainsNodeModules(u.value.path),s,c,d,p,i);function tryResolve(t){const n=tryLoadModuleUsingOptionalResolutionSettings(t,e,l,loadModuleFromFileNoPackageId,p);if(n)return{value:n};if(isExternalModuleNameRelative(e)){const n=normalizePath(combinePaths(l,e));return toSearchResult(loadModuleFromFileNoPackageId(t,n,!1,p))}{const n=forEachAncestorDirectoryStoppingAtGlobalCache(p.host,l,n=>{const r=tryFindNonRelativeModuleNameInCache(i,e,void 0,n,o,p);if(r)return r;const a=normalizePath(combinePaths(n,e));return toSearchResult(loadModuleFromFileNoPackageId(t,a,!1,p))});if(n)return n;if(5&t){let n=function loadModuleFromNearestNodeModulesDirectoryTypesScope(e,t,n){return loadModuleFromNearestNodeModulesDirectoryWorker(4,e,t,n,!0,void 0,void 0)}(e,l,p);return 4&t&&(n??(n=resolveFromTypeRoot(e,p))),n}}}}function resolveFromTypeRoot(e,t){if(t.compilerOptions.typeRoots)for(const n of t.compilerOptions.typeRoots){const r=getCandidateFromTypeRoot(n,e,t),i=directoryProbablyExists(n,t.host);!i&&t.traceEnabled&&trace(t.host,Ot.Directory_0_does_not_exist_skipping_all_lookups_in_it,n);const o=loadModuleFromFile(4,r,!i,t);if(o){const e=parseNodeModuleFromPath(o.path);return toSearchResult(withPackageId(e?getPackageJsonInfo(e,!1,t):void 0,o,t))}const a=loadNodeModuleFromDirectory(4,r,!i,t);if(a)return toSearchResult(a)}}function shouldAllowImportingTsExtension(e,t){return Un(e)||!!t&&isDeclarationFileName(t)}function loadModuleFromGlobalCache(e,t,n,r,i,o){const a=isTraceEnabled(n,r);a&&trace(r,Ot.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2,t,e,i);const s=[],c=[],l=[],d={compilerOptions:n,host:r,traceEnabled:a,failedLookupLocations:s,affectingLocations:c,packageJsonInfoCache:o,features:0,conditions:[],requestContainingDirectory:void 0,reportDiagnostic:e=>{l.push(e)},isConfigLookup:!1,candidateIsFromPackageJsonField:!1,resolvedPackageDirectory:!1};return createResolvedModuleWithFailedLookupLocations(loadModuleFromImmediateNodeModulesDirectory(4,e,i,d,!1,void 0,void 0),!0,s,c,l,d.resultFromCache,void 0)}function toSearchResult(e){return void 0!==e?{value:e}:void 0}function traceIfEnabled(e,t,...n){e.traceEnabled&&trace(e.host,t,...n)}function useCaseSensitiveFileNames(e){return!e.host.useCaseSensitiveFileNames||("boolean"==typeof e.host.useCaseSensitiveFileNames?e.host.useCaseSensitiveFileNames:e.host.useCaseSensitiveFileNames())}var Bo=(e=>(e[e.NonInstantiated=0]="NonInstantiated",e[e.Instantiated=1]="Instantiated",e[e.ConstEnumOnly=2]="ConstEnumOnly",e))(Bo||{});function getModuleInstanceState(e,t){return e.body&&!e.body.parent&&(setParent(e.body,e),setParentRecursive(e.body,!1)),e.body?getModuleInstanceStateCached(e.body,t):1}function getModuleInstanceStateCached(e,t=new Map){const n=getNodeId(e);if(t.has(n))return t.get(n)||0;t.set(n,void 0);const r=function getModuleInstanceStateWorker(e,t){switch(e.kind){case 265:case 266:return 0;case 267:if(isEnumConst(e))return 2;break;case 273:case 272:if(!hasSyntacticModifier(e,32))return 0;break;case 279:const n=e;if(!n.moduleSpecifier&&n.exportClause&&280===n.exportClause.kind){let e=0;for(const r of n.exportClause.elements){const n=getModuleInstanceStateForAliasTarget(r,t);if(n>e&&(e=n),1===e)return e}return e}break;case 269:{let n=0;return forEachChild(e,e=>{const r=getModuleInstanceStateCached(e,t);switch(r){case 0:return;case 2:return void(n=2);case 1:return n=1,!0;default:h.assertNever(r)}}),n}case 268:return getModuleInstanceState(e,t);case 80:if(4096&e.flags)return 0}return 1}(e,t);return t.set(n,r),r}function getModuleInstanceStateForAliasTarget(e,t){const n=e.propertyName||e.name;if(80!==n.kind)return 1;let r=e.parent;for(;r;){if(isBlock(r)||isModuleBlock(r)||isSourceFile(r)){const e=r.statements;let i;for(const o of e)if(nodeHasName(o,n)){o.parent||(setParent(o,r),setParentRecursive(o,!1));const e=getModuleInstanceStateCached(o,t);if((void 0===i||e>i)&&(i=e),1===i)return i;272===o.kind&&(i=1)}if(void 0!==i)return i}r=r.parent}return 1}var jo=(e=>(e[e.None=0]="None",e[e.IsContainer=1]="IsContainer",e[e.IsBlockScopedContainer=2]="IsBlockScopedContainer",e[e.IsControlFlowContainer=4]="IsControlFlowContainer",e[e.IsFunctionLike=8]="IsFunctionLike",e[e.IsFunctionExpression=16]="IsFunctionExpression",e[e.HasLocals=32]="HasLocals",e[e.IsInterface=64]="IsInterface",e[e.IsObjectLiteralOrClassExpressionMethodOrAccessor=128]="IsObjectLiteralOrClassExpressionMethodOrAccessor",e))(jo||{});function createFlowNode(e,t,n){return h.attachFlowNodeDebugInfo({flags:e,id:0,node:t,antecedent:n})}var Jo=createBinder();function bindSourceFile(e,t){mark("beforeBind"),Jo(e,t),mark("afterBind"),measure("Bind","beforeBind","afterBind")}function createBinder(){var e,t,n,r,i,o,a,s,c,l,d,p,u,m,_,f,g,y,T,S,x,v,b,C,E,N,k,F=!1,P=0,D=createFlowNode(1,void 0,void 0),I=createFlowNode(1,void 0,void 0),A=function createBindBinaryExpressionFlow(){return createBinaryExpressionTrampoline(function onEnter(e,t){if(t){t.stackIndex++,setParent(e,r);const n=E;bindWorker(e);const i=r;r=e,t.skip=!1,t.inStrictModeStack[t.stackIndex]=n,t.parentStack[t.stackIndex]=i}else t={stackIndex:0,skip:!1,inStrictModeStack:[void 0],parentStack:[void 0]};const n=e.operatorToken.kind;if(isLogicalOrCoalescingBinaryOperator(n)||isLogicalOrCoalescingAssignmentOperator(n)){if(isTopLevelLogicalExpression(e)){const t=createBranchLabel(),n=p,r=b;b=!1,bindLogicalLikeExpression(e,t,t),p=b?finishFlowLabel(t):n,b||(b=r)}else bindLogicalLikeExpression(e,f,g);t.skip=!0}return t},function onLeft(e,t,n){if(!t.skip){const t=maybeBind2(e);return 28===n.operatorToken.kind&&maybeBindExpressionFlowIfCall(e),t}},function onOperator(e,t,n){t.skip||bind(e)},function onRight(e,t,n){if(!t.skip){const t=maybeBind2(e);return 28===n.operatorToken.kind&&maybeBindExpressionFlowIfCall(e),t}},function onExit(e,t){if(!t.skip){const t=e.operatorToken.kind;if(isAssignmentOperator(t)&&!isAssignmentTarget(e)&&(bindAssignmentTargetFlow(e.left),64===t&&213===e.left.kind)){isNarrowableOperand(e.left.expression)&&(p=createFlowMutation(256,p,e))}}const n=t.inStrictModeStack[t.stackIndex],i=t.parentStack[t.stackIndex];void 0!==n&&(E=n);void 0!==i&&(r=i);t.skip=!1,t.stackIndex--},void 0);function maybeBind2(e){if(e&&isBinaryExpression(e)&&!isDestructuringAssignment(e))return e;bind(e)}}();return function bindSourceFile2(T,A){var O,w;e=T,n=zn(t=A),E=function bindInStrictMode(e,t){return!(!getStrictOptionValue(t,"alwaysStrict")||e.isDeclarationFile)||!!e.externalModuleIndicator}(e,A),k=new Set,P=0,N=Bn.getSymbolConstructor(),h.attachFlowNodeDebugInfo(D),h.attachFlowNodeDebugInfo(I),e.locals||(null==(O=J)||O.push(J.Phase.Bind,"bindSourceFile",{path:e.path},!0),bind(e),null==(w=J)||w.pop(),e.symbolCount=P,e.classifiableNames=k,function delayedBindJSDocTypedefTag(){if(!c)return;const t=i,n=s,o=a,l=r,d=p;for(const t of c){const n=t.parent.parent;i=getEnclosingContainer(n)||e,a=getEnclosingBlockScopeContainer(n)||e,p=createFlowNode(2,void 0,void 0),r=t,bind(t.typeExpression);const o=getNameOfDeclaration(t);if((isJSDocEnumTag(t)||!t.fullName)&&o&&isPropertyAccessEntityNameExpression(o.parent)){const n=isTopLevelNamespaceAssignment(o.parent);if(n){bindPotentiallyMissingNamespaces(e.symbol,o.parent,n,!!findAncestor(o,e=>isPropertyAccessExpression(e)&&"prototype"===e.name.escapedText),!1);const r=i;switch(getAssignmentDeclarationPropertyAccessKind(o.parent)){case 1:case 2:i=isExternalOrCommonJsModule(e)?e:void 0;break;case 4:i=o.parent.expression;break;case 3:i=o.parent.expression.name;break;case 5:i=isExportsOrModuleExportsOrAlias(e,o.parent.expression)?e:isPropertyAccessExpression(o.parent.expression)?o.parent.expression.name:o.parent.expression;break;case 0:return h.fail("Shouldn't have detected typedef or enum on non-assignment declaration")}i&&declareModuleMember(t,524288,788968),i=r}}else isJSDocEnumTag(t)||!t.fullName||80===t.fullName.kind?(r=t.parent,bindBlockScopedDeclaration(t,524288,788968)):bind(t.fullName)}i=t,s=n,a=o,r=l,p=d}(),function bindJSDocImports(){if(void 0===d)return;const t=i,n=s,o=a,c=r,l=p;for(const t of d){const n=getJSDocHost(t),o=n?getEnclosingContainer(n):void 0,s=n?getEnclosingBlockScopeContainer(n):void 0;i=o||e,a=s||e,p=createFlowNode(2,void 0,void 0),r=t,bind(t.importClause)}i=t,s=n,a=o,r=c,p=l}());e=void 0,t=void 0,n=void 0,r=void 0,i=void 0,o=void 0,a=void 0,s=void 0,c=void 0,d=void 0,l=!1,p=void 0,u=void 0,m=void 0,_=void 0,f=void 0,g=void 0,y=void 0,S=void 0,x=!1,v=!1,b=!1,F=!1,C=0};function createDiagnosticForNode2(t,n,...r){return createDiagnosticForNodeInSourceFile(getSourceFileOfNode(t)||e,t,n,...r)}function createSymbol(e,t){return P++,new N(e,t)}function addDeclarationToSymbol(e,t,n){e.flags|=n,t.symbol=e,e.declarations=appendIfUnique(e.declarations,t),1955&n&&!e.exports&&(e.exports=createSymbolTable()),6240&n&&!e.members&&(e.members=createSymbolTable()),e.constEnumOnlyModule&&304&e.flags&&(e.constEnumOnlyModule=!1),111551&n&&setValueDeclaration(e,t)}function getDeclarationName(e){if(278===e.kind)return e.isExportEquals?"export=":"default";const t=getNameOfDeclaration(e);if(t){if(isAmbientModule(e)){const n=getTextOfIdentifierOrLiteral(t);return isGlobalScopeAugmentation(e)?"__global":`"${n}"`}if(168===t.kind){const e=t.expression;if(isStringOrNumericLiteralLike(e))return escapeLeadingUnderscores(e.text);if(isSignedNumericLiteral(e))return tokenToString(e.operator)+e.operand.text;h.fail("Only computed properties with literal names have declaration names")}if(isPrivateIdentifier(t)){const n=getContainingClass(e);if(!n)return;return getSymbolNameForPrivateIdentifier(n.symbol,t.escapedText)}return isJsxNamespacedName(t)?getEscapedTextOfJsxNamespacedName(t):isPropertyNameLiteral(t)?getEscapedTextOfIdentifierOrLiteral(t):void 0}switch(e.kind){case 177:return"__constructor";case 185:case 180:case 324:return"__call";case 186:case 181:return"__new";case 182:return"__index";case 279:return"__export";case 308:return"export=";case 227:if(2===getAssignmentDeclarationKind(e))return"export=";h.fail("Unknown binary declaration kind");break;case 318:return isJSDocConstructSignature(e)?"__new":"__call";case 170:h.assert(318===e.parent.kind,"Impossible parameter parent kind",()=>`parent is: ${h.formatSyntaxKind(e.parent.kind)}, expected JSDocFunctionType`);return"arg"+e.parent.parameters.indexOf(e)}}function getDisplayName(e){return isNamedDeclaration(e)?declarationNameToString(e.name):unescapeLeadingUnderscores(h.checkDefined(getDeclarationName(e)))}function declareSymbol(t,n,r,i,o,a,s){h.assert(s||!hasDynamicName(r));const c=hasSyntacticModifier(r,2048)||isExportSpecifier(r)&&moduleExportNameIsDefault(r.name),l=s?"__computed":c&&n?"default":getDeclarationName(r);let d;if(void 0===l)d=createSymbol(0,"__missing");else if(d=t.get(l),2885600&i&&k.add(l),d){if(a&&!d.isReplaceableByMethod)return d;if(d.flags&o)if(d.isReplaceableByMethod)t.set(l,d=createSymbol(0,l));else if(!(3&i&&67108864&d.flags)){isNamedDeclaration(r)&&setParent(r.name,r);let t=2&d.flags?Ot.Cannot_redeclare_block_scoped_variable_0:Ot.Duplicate_identifier_0,n=!0;(384&d.flags||384&i)&&(t=Ot.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,n=!1);let o=!1;length(d.declarations)&&(c||d.declarations&&d.declarations.length&&278===r.kind&&!r.isExportEquals)&&(t=Ot.A_module_cannot_have_multiple_default_exports,n=!1,o=!0);const a=[];isTypeAliasDeclaration(r)&&nodeIsMissing(r.type)&&hasSyntacticModifier(r,32)&&2887656&d.flags&&a.push(createDiagnosticForNode2(r,Ot.Did_you_mean_0,`export type { ${unescapeLeadingUnderscores(r.name.escapedText)} }`));const s=getNameOfDeclaration(r)||r;forEach(d.declarations,(r,i)=>{const c=getNameOfDeclaration(r)||r,l=n?createDiagnosticForNode2(c,t,getDisplayName(r)):createDiagnosticForNode2(c,t);e.bindDiagnostics.push(o?addRelatedInfo(l,createDiagnosticForNode2(s,0===i?Ot.Another_export_default_is_here:Ot.and_here)):l),o&&a.push(createDiagnosticForNode2(c,Ot.The_first_export_default_is_here))});const p=n?createDiagnosticForNode2(s,t,getDisplayName(r)):createDiagnosticForNode2(s,t);e.bindDiagnostics.push(addRelatedInfo(p,...a)),d=createSymbol(0,l)}}else t.set(l,d=createSymbol(0,l)),a&&(d.isReplaceableByMethod=!0);return addDeclarationToSymbol(d,r,i),d.parent?h.assert(d.parent===n,"Existing symbol parent should match new one"):d.parent=n,d}function declareModuleMember(e,t,n){const r=!!(32&getCombinedModifierFlags(e))||function jsdocTreatAsExported(e){e.parent&&isModuleDeclaration(e)&&(e=e.parent);if(!isJSDocTypeAlias(e))return!1;if(!isJSDocEnumTag(e)&&e.fullName)return!0;const t=getNameOfDeclaration(e);return!!t&&(!(!isPropertyAccessEntityNameExpression(t.parent)||!isTopLevelNamespaceAssignment(t.parent))||!!(isDeclaration(t.parent)&&32&getCombinedModifierFlags(t.parent)))}(e);if(2097152&t)return 282===e.kind||272===e.kind&&r?declareSymbol(i.symbol.exports,i.symbol,e,t,n):(h.assertNode(i,canHaveLocals),declareSymbol(i.locals,void 0,e,t,n));if(isJSDocTypeAlias(e)&&h.assert(isInJSFile(e)),!isAmbientModule(e)&&(r||128&i.flags)){if(!canHaveLocals(i)||!i.locals||hasSyntacticModifier(e,2048)&&!getDeclarationName(e))return declareSymbol(i.symbol.exports,i.symbol,e,t,n);const r=111551&t?1048576:0,o=declareSymbol(i.locals,void 0,e,r,n);return o.exportSymbol=declareSymbol(i.symbol.exports,i.symbol,e,t,n),e.localSymbol=o,o}return h.assertNode(i,canHaveLocals),declareSymbol(i.locals,void 0,e,t,n)}function bindEachFunctionsFirst(e){bindEach(e,e=>263===e.kind?bind(e):void 0),bindEach(e,e=>263!==e.kind?bind(e):void 0)}function bindEach(e,t=bind){void 0!==e&&forEach(e,t)}function bindEachChild(e){forEachChild(e,bind,bindEach)}function bindChildren(e){const n=F;if(F=!1,function checkUnreachable(e){if(!(1&p.flags))return!1;if(p===D){const n=isStatementButNotDeclaration(e)&&243!==e.kind||264===e.kind||isEnumDeclarationWithPreservedEmit(e,t)||268===e.kind&&function shouldReportErrorOnModuleDeclaration(e){const n=getModuleInstanceState(e);return 1===n||2===n&&er(t)}(e);if(n&&(p=I,!t.allowUnreachableCode)){const n=unreachableCodeIsError(t)&&!(33554432&e.flags)&&(!isVariableStatement(e)||!!(7&getCombinedNodeFlags(e.declarationList))||e.declarationList.declarations.some(e=>!!e.initializer));!function eachUnreachableRange(e,t,n){if(isStatement(e)&&isExecutableStatement(e)&&isBlock(e.parent)){const{statements:t}=e.parent,r=sliceAfter(t,e);getRangesWhere(r,isExecutableStatement,(e,t)=>n(r[e],r[t-1]))}else n(e,e);function isExecutableStatement(e){return!(isFunctionDeclaration(e)||isPurelyTypeDeclaration(e)||isVariableStatement(e)&&!(7&getCombinedNodeFlags(e))&&e.declarationList.declarations.some(e=>!e.initializer))}function isPurelyTypeDeclaration(e){switch(e.kind){case 265:case 266:return!0;case 268:return 1!==getModuleInstanceState(e);case 267:return!isEnumDeclarationWithPreservedEmit(e,t);default:return!1}}}(e,t,(e,t)=>errorOrSuggestionOnRange(n,e,t,Ot.Unreachable_code_detected))}}return!0}(e))return canHaveFlowNode(e)&&e.flowNode&&(e.flowNode=void 0),bindEachChild(e),bindJSDoc(e),void(F=n);switch(e.kind>=244&&e.kind<=260&&(!t.allowUnreachableCode||254===e.kind)&&(e.flowNode=p),e.kind){case 248:!function bindWhileStatement(e){const t=setContinueTarget(e,createLoopLabel()),n=createBranchLabel(),r=createBranchLabel();addAntecedent(t,p),p=t,bindCondition(e.expression,n,r),p=finishFlowLabel(n),bindIterativeStatement(e.statement,r,t),addAntecedent(t,p),p=finishFlowLabel(r)}(e);break;case 247:!function bindDoStatement(e){const t=createLoopLabel(),n=setContinueTarget(e,createBranchLabel()),r=createBranchLabel();addAntecedent(t,p),p=t,bindIterativeStatement(e.statement,r,n),addAntecedent(n,p),p=finishFlowLabel(n),bindCondition(e.expression,t,r),p=finishFlowLabel(r)}(e);break;case 249:!function bindForStatement(e){const t=setContinueTarget(e,createLoopLabel()),n=createBranchLabel(),r=createBranchLabel(),i=createBranchLabel();bind(e.initializer),addAntecedent(t,p),p=t,bindCondition(e.condition,n,i),p=finishFlowLabel(n),bindIterativeStatement(e.statement,i,r),addAntecedent(r,p),p=finishFlowLabel(r),bind(e.incrementor),addAntecedent(t,p),p=finishFlowLabel(i)}(e);break;case 250:case 251:!function bindForInOrForOfStatement(e){const t=setContinueTarget(e,createLoopLabel()),n=createBranchLabel();bind(e.expression),addAntecedent(t,p),p=t,251===e.kind&&bind(e.awaitModifier);addAntecedent(n,p),bind(e.initializer),262!==e.initializer.kind&&bindAssignmentTargetFlow(e.initializer);bindIterativeStatement(e.statement,n,t),addAntecedent(t,p),p=finishFlowLabel(n)}(e);break;case 246:!function bindIfStatement(e){const t=createBranchLabel(),n=createBranchLabel(),r=createBranchLabel();bindCondition(e.expression,t,n),p=finishFlowLabel(t),bind(e.thenStatement),addAntecedent(r,p),p=finishFlowLabel(n),bind(e.elseStatement),addAntecedent(r,p),p=finishFlowLabel(r)}(e);break;case 254:case 258:!function bindReturnOrThrow(e){const t=v;v=!0,bind(e.expression),v=t,254===e.kind&&(x=!0,_&&addAntecedent(_,p));p=D,b=!0}(e);break;case 253:case 252:!function bindBreakOrContinueStatement(e){if(bind(e.label),e.label){const t=function findActiveLabel(e){for(let t=S;t;t=t.next)if(t.name===e)return t;return}(e.label.escapedText);t&&(t.referenced=!0,bindBreakOrContinueFlow(e,t.breakTarget,t.continueTarget))}else bindBreakOrContinueFlow(e,u,m)}(e);break;case 259:!function bindTryStatement(e){const t=_,n=y,r=createBranchLabel(),i=createBranchLabel();let o=createBranchLabel();e.finallyBlock&&(_=i);addAntecedent(o,p),y=o,bind(e.tryBlock),addAntecedent(r,p),e.catchClause&&(p=finishFlowLabel(o),o=createBranchLabel(),addAntecedent(o,p),y=o,bind(e.catchClause),addAntecedent(r,p));if(_=t,y=n,e.finallyBlock){const t=createBranchLabel();t.antecedent=concatenate(concatenate(r.antecedent,o.antecedent),i.antecedent),p=t,bind(e.finallyBlock),1&p.flags?p=D:(_&&i.antecedent&&addAntecedent(_,createReduceLabel(t,i.antecedent,p)),y&&o.antecedent&&addAntecedent(y,createReduceLabel(t,o.antecedent,p)),p=r.antecedent?createReduceLabel(t,r.antecedent,p):D)}else p=finishFlowLabel(r)}(e);break;case 256:!function bindSwitchStatement(e){const t=createBranchLabel();bind(e.expression);const n=u,r=T;u=t,T=p,bind(e.caseBlock),addAntecedent(t,p);const i=forEach(e.caseBlock.clauses,e=>298===e.kind);e.possiblyExhaustive=!i&&!t.antecedent,i||addAntecedent(t,createFlowSwitchClause(T,e,0,0));u=n,T=r,p=finishFlowLabel(t)}(e);break;case 270:!function bindCaseBlock(e){const n=e.clauses,r=112===e.parent.expression.kind||isNarrowingExpression(e.parent.expression);let i=D;for(let o=0;oisExportDeclaration(e)||isExportAssignment(e))}(e)?e.flags|=128:e.flags&=-129}function declareModuleSymbol(e){const t=getModuleInstanceState(e),n=0!==t;return declareSymbolAndAddToSymbolTable(e,n?512:1024,n?110735:0),t}function bindAnonymousDeclaration(e,t,n){const r=createSymbol(t,n);return 106508&t&&(r.parent=i.symbol),addDeclarationToSymbol(r,e,t),r}function bindBlockScopedDeclaration(e,t,n){switch(a.kind){case 268:declareModuleMember(e,t,n);break;case 308:if(isExternalOrCommonJsModule(i)){declareModuleMember(e,t,n);break}default:h.assertNode(a,canHaveLocals),a.locals||(a.locals=createSymbolTable(),addToContainerChain(a)),declareSymbol(a.locals,void 0,e,t,n)}}function checkContextualIdentifier(t){if(!(e.parseDiagnostics.length||33554432&t.flags||16777216&t.flags||isIdentifierName(t))){const n=identifierToKeywordKind(t);if(void 0===n)return;E&&n>=119&&n<=127?e.bindDiagnostics.push(createDiagnosticForNode2(t,function getStrictModeIdentifierMessage(t){if(getContainingClass(t))return Ot.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;if(e.externalModuleIndicator)return Ot.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;return Ot.Identifier_expected_0_is_a_reserved_word_in_strict_mode}(t),declarationNameToString(t))):135===n?isExternalModule(e)&&isInTopLevelContext(t)?e.bindDiagnostics.push(createDiagnosticForNode2(t,Ot.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,declarationNameToString(t))):65536&t.flags&&e.bindDiagnostics.push(createDiagnosticForNode2(t,Ot.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,declarationNameToString(t))):127===n&&16384&t.flags&&e.bindDiagnostics.push(createDiagnosticForNode2(t,Ot.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,declarationNameToString(t)))}}function checkStrictModeEvalOrArguments(t,n){if(n&&80===n.kind){const r=n;if(function isEvalOrArgumentsIdentifier(e){return isIdentifier(e)&&("eval"===e.escapedText||"arguments"===e.escapedText)}(r)){const i=getErrorSpanForNode(e,n);e.bindDiagnostics.push(createFileDiagnostic(e,i.start,i.length,function getStrictModeEvalOrArgumentsMessage(t){if(getContainingClass(t))return Ot.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode;if(e.externalModuleIndicator)return Ot.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;return Ot.Invalid_use_of_0_in_strict_mode}(t),idText(r)))}}}function checkStrictModeFunctionName(e){!E||33554432&e.flags||checkStrictModeEvalOrArguments(e,e.name)}function checkStrictModeFunctionDeclaration(t){if(n<2&&308!==a.kind&&268!==a.kind&&!isFunctionLikeOrClassStaticBlockDeclaration(a)){const n=getErrorSpanForNode(e,t);e.bindDiagnostics.push(createFileDiagnostic(e,n.start,n.length,function getStrictModeBlockScopeFunctionDeclarationMessage(t){return getContainingClass(t)?Ot.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:e.externalModuleIndicator?Ot.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:Ot.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5}(t)))}}function errorOnFirstToken(t,n,...r){const i=getSpanOfTokenAtPosition(e,t.pos);e.bindDiagnostics.push(createFileDiagnostic(e,i.start,i.length,n,...r))}function errorOrSuggestionOnRange(t,n,r,i){!function addErrorOrSuggestionDiagnostic(t,n,r){const i=createFileDiagnostic(e,n.pos,n.end-n.pos,r);t?e.bindDiagnostics.push(i):e.bindSuggestionDiagnostics=append(e.bindSuggestionDiagnostics,{...i,category:2})}(t,{pos:getTokenPosOfNode(n,e),end:r.end},i)}function bind(t){if(!t)return;setParent(t,r),J&&(t.tracingPath=e.path);const n=E;if(bindWorker(t),t.kind>166){const e=r;r=t;const n=getContainerFlags(t);0===n?bindChildren(t):function bindContainer(e,t){const n=i,r=o,s=a,c=v;if(220===e.kind&&242!==e.body.kind&&(v=!0),1&t?(220!==e.kind&&(o=i),i=a=e,32&t&&(i.locals=createSymbolTable(),addToContainerChain(i))):2&t&&(a=e,32&t&&(a.locals=void 0)),4&t){const n=p,r=u,i=m,o=_,a=y,s=S,c=x,l=16&t&&!hasSyntacticModifier(e,1024)&&!e.asteriskToken&&!!getImmediatelyInvokedFunctionExpression(e)||176===e.kind;l||(p=createFlowNode(2,void 0,void 0),144&t&&(p.node=e)),_=l||177===e.kind||isInJSFile(e)&&(263===e.kind||219===e.kind)?createBranchLabel():void 0,y=void 0,u=void 0,m=void 0,S=void 0,x=!1,bindChildren(e),e.flags&=-5633,!(1&p.flags)&&8&t&&nodeIsPresent(e.body)&&(e.flags|=512,x&&(e.flags|=1024),e.endFlowNode=p),308===e.kind&&(e.flags|=C,e.endFlowNode=p),_&&(addAntecedent(_,p),p=finishFlowLabel(_),(177===e.kind||176===e.kind||isInJSFile(e)&&(263===e.kind||219===e.kind))&&(e.returnFlowNode=p)),l||(p=n),u=r,m=i,_=o,y=a,S=s,x=c}else 64&t?(l=!1,bindChildren(e),h.assertNotNode(e,isIdentifier),e.flags=l?256|e.flags:-257&e.flags):bindChildren(e);v=c,i=n,o=r,a=s}(t,n),r=e}else{const e=r;1===t.kind&&(r=t),bindJSDoc(t),r=e}E=n}function bindJSDoc(e){if(hasJSDocNodes(e))if(isInJSFile(e))for(const t of e.jsDoc)bind(t);else for(const t of e.jsDoc)setParent(t,e),setParentRecursive(t,!1)}function updateStrictModeStatementList(e){if(!E)for(const t of e){if(!isPrologueDirective(t))return;if(isUseStrictPrologueDirective(t))return void(E=!0)}}function isUseStrictPrologueDirective(t){const n=getSourceTextOfNodeFromSourceFile(e,t.expression);return'"use strict"'===n||"'use strict'"===n}function bindWorker(n){switch(n.kind){case 80:if(4096&n.flags){let e=n.parent;for(;e&&!isJSDocTypeAlias(e);)e=e.parent;bindBlockScopedDeclaration(e,524288,788968);break}case 110:return p&&(isExpression(n)||305===r.kind)&&(n.flowNode=p),checkContextualIdentifier(n);case 167:p&&isPartOfTypeQuery(n)&&(n.flowNode=p);break;case 237:case 108:n.flowNode=p;break;case 81:return function checkPrivateIdentifier(t){"#constructor"===t.escapedText&&(e.parseDiagnostics.length||e.bindDiagnostics.push(createDiagnosticForNode2(t,Ot.constructor_is_a_reserved_word,declarationNameToString(t))))}(n);case 212:case 213:const o=n;p&&isNarrowableReference(o)&&(o.flowNode=p),isSpecialPropertyDeclaration(o)&&function bindSpecialPropertyDeclaration(e){110===e.expression.kind?bindThisPropertyAssignment(e):isBindableStaticAccessExpression(e)&&308===e.parent.parent.kind&&(isPrototypeAccess(e.expression)?bindPrototypePropertyAssignment(e,e.parent):bindStaticPropertyAssignment(e))}(o),isInJSFile(o)&&e.commonJsModuleIndicator&&isModuleExportsAccessExpression(o)&&!lookupSymbolForName(a,"module")&&declareSymbol(e.locals,void 0,o.expression,134217729,111550);break;case 227:switch(getAssignmentDeclarationKind(n)){case 1:bindExportsPropertyAssignment(n);break;case 2:!function bindModuleExportsAssignment(t){if(!setCommonJsModuleIndicator(t))return;const n=getRightMostAssignedExpression(t.right);if(isEmptyObjectLiteral(n)||i===e&&isExportsOrModuleExportsOrAlias(e,n))return;if(isObjectLiteralExpression(n)&&every(n.properties,isShorthandPropertyAssignment))return void forEach(n.properties,bindExportAssignedObjectMemberAlias);const r=exportAssignmentIsAlias(t)?2097152:1049092,o=declareSymbol(e.symbol.exports,e.symbol,t,67108864|r,0);setValueDeclaration(o,t)}(n);break;case 3:bindPrototypePropertyAssignment(n.left,n);break;case 6:!function bindPrototypeAssignment(e){setParent(e.left,e),setParent(e.right,e),bindPropertyAssignment(e.left.expression,e.left,!1,!0)}(n);break;case 4:bindThisPropertyAssignment(n);break;case 5:const t=n.left.expression;if(isInJSFile(n)&&isIdentifier(t)){const e=lookupSymbolForName(a,t.escapedText);if(isThisInitializedDeclaration(null==e?void 0:e.valueDeclaration)){bindThisPropertyAssignment(n);break}}!function bindSpecialPropertyAssignment(t){var n;const r=lookupSymbolForPropertyAccess(t.left.expression,a)||lookupSymbolForPropertyAccess(t.left.expression,i);if(!isInJSFile(t)&&!isFunctionSymbol(r))return;const o=getLeftmostAccessExpression(t.left);if(isIdentifier(o)&&2097152&(null==(n=lookupSymbolForName(i,o.escapedText))?void 0:n.flags))return;if(setParent(t.left,t),setParent(t.right,t),isIdentifier(t.left.expression)&&i===e&&isExportsOrModuleExportsOrAlias(e,t.left.expression))bindExportsPropertyAssignment(t);else if(hasDynamicName(t)){bindAnonymousDeclaration(t,67108868,"__computed");addLateBoundAssignmentDeclarationToSymbol(t,bindPotentiallyMissingNamespaces(r,t.left.expression,isTopLevelNamespaceAssignment(t.left),!1,!1))}else bindStaticPropertyAssignment(cast(t.left,isBindableStaticNameExpression))}(n);break;case 0:break;default:h.fail("Unknown binary expression special property assignment kind")}return function checkStrictModeBinaryExpression(e){E&&isLeftHandSideExpression(e.left)&&isAssignmentOperator(e.operatorToken.kind)&&checkStrictModeEvalOrArguments(e,e.left)}(n);case 300:return function checkStrictModeCatchClause(e){E&&e.variableDeclaration&&checkStrictModeEvalOrArguments(e,e.variableDeclaration.name)}(n);case 221:return function checkStrictModeDeleteExpression(t){if(E&&80===t.expression.kind){const n=getErrorSpanForNode(e,t.expression);e.bindDiagnostics.push(createFileDiagnostic(e,n.start,n.length,Ot.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}(n);case 226:return function checkStrictModePostfixUnaryExpression(e){E&&checkStrictModeEvalOrArguments(e,e.operand)}(n);case 225:return function checkStrictModePrefixUnaryExpression(e){E&&(46!==e.operator&&47!==e.operator||checkStrictModeEvalOrArguments(e,e.operand))}(n);case 255:return function checkStrictModeWithStatement(e){E&&errorOnFirstToken(e,Ot.with_statements_are_not_allowed_in_strict_mode)}(n);case 257:return function checkStrictModeLabeledStatement(e){E&&zn(t)>=2&&(isDeclarationStatement(e.statement)||isVariableStatement(e.statement))&&errorOnFirstToken(e.label,Ot.A_label_is_not_allowed_here)}(n);case 198:return void(l=!0);case 183:break;case 169:return function bindTypeParameter(e){if(isJSDocTemplateTag(e.parent)){const t=getEffectiveContainerForJSDocTemplateTag(e.parent);t?(h.assertNode(t,canHaveLocals),t.locals??(t.locals=createSymbolTable()),declareSymbol(t.locals,void 0,e,262144,526824)):declareSymbolAndAddToSymbolTable(e,262144,526824)}else if(196===e.parent.kind){const t=function getInferTypeContainer(e){const t=findAncestor(e,e=>e.parent&&isConditionalTypeNode(e.parent)&&e.parent.extendsType===e);return t&&t.parent}(e.parent);t?(h.assertNode(t,canHaveLocals),t.locals??(t.locals=createSymbolTable()),declareSymbol(t.locals,void 0,e,262144,526824)):bindAnonymousDeclaration(e,262144,getDeclarationName(e))}else declareSymbolAndAddToSymbolTable(e,262144,526824)}(n);case 170:return bindParameter(n);case 261:return bindVariableDeclarationOrBindingElement(n);case 209:return n.flowNode=p,bindVariableDeclarationOrBindingElement(n);case 173:case 172:return function bindPropertyWorker(e){const t=isAutoAccessorPropertyDeclaration(e),n=t?13247:0;return bindPropertyOrMethodOrAccessor(e,(t?98304:4)|(e.questionToken?16777216:0),n)}(n);case 304:case 305:return bindPropertyOrMethodOrAccessor(n,4,0);case 307:return bindPropertyOrMethodOrAccessor(n,8,900095);case 180:case 181:case 182:return declareSymbolAndAddToSymbolTable(n,131072,0);case 175:case 174:return bindPropertyOrMethodOrAccessor(n,8192|(n.questionToken?16777216:0),isObjectLiteralMethod(n)?0:103359);case 263:return function bindFunctionDeclaration(t){e.isDeclarationFile||33554432&t.flags||isAsyncFunction(t)&&(C|=4096);checkStrictModeFunctionName(t),E?(checkStrictModeFunctionDeclaration(t),bindBlockScopedDeclaration(t,16,110991)):declareSymbolAndAddToSymbolTable(t,16,110991)}(n);case 177:return declareSymbolAndAddToSymbolTable(n,16384,0);case 178:return bindPropertyOrMethodOrAccessor(n,32768,46015);case 179:return bindPropertyOrMethodOrAccessor(n,65536,78783);case 185:case 318:case 324:case 186:return function bindFunctionOrConstructorType(e){const t=createSymbol(131072,getDeclarationName(e));addDeclarationToSymbol(t,e,131072);const n=createSymbol(2048,"__type");addDeclarationToSymbol(n,e,2048),n.members=createSymbolTable(),n.members.set(t.escapedName,t)}(n);case 188:case 323:case 201:return function bindAnonymousTypeWorker(e){return bindAnonymousDeclaration(e,2048,"__type")}(n);case 333:return function bindJSDocClassTag(e){bindEachChild(e);const t=getHostSignatureFromJSDoc(e);t&&175!==t.kind&&addDeclarationToSymbol(t.symbol,t,32)}(n);case 211:return function bindObjectLiteralExpression(e){return bindAnonymousDeclaration(e,4096,"__object")}(n);case 219:case 220:return function bindFunctionExpression(t){e.isDeclarationFile||33554432&t.flags||isAsyncFunction(t)&&(C|=4096);p&&(t.flowNode=p);checkStrictModeFunctionName(t);const n=t.name?t.name.escapedText:"__function";return bindAnonymousDeclaration(t,16,n)}(n);case 214:switch(getAssignmentDeclarationKind(n)){case 7:return function bindObjectDefinePropertyAssignment(e){let t=lookupSymbolForPropertyAccess(e.arguments[0]);const n=308===e.parent.parent.kind;t=bindPotentiallyMissingNamespaces(t,e.arguments[0],n,!1,!1),bindPotentiallyNewExpandoMemberToNamespace(e,t,!1)}(n);case 8:return function bindObjectDefinePropertyExport(e){if(!setCommonJsModuleIndicator(e))return;const t=forEachIdentifierInEntityName(e.arguments[0],void 0,(e,t)=>(t&&addDeclarationToSymbol(t,e,67110400),t));if(t){const n=1048580;declareSymbol(t.exports,t,e,n,0)}}(n);case 9:return function bindObjectDefinePrototypeProperty(e){const t=lookupSymbolForPropertyAccess(e.arguments[0].expression);t&&t.valueDeclaration&&addDeclarationToSymbol(t,t.valueDeclaration,32);bindPotentiallyNewExpandoMemberToNamespace(e,t,!0)}(n);case 0:break;default:return h.fail("Unknown call expression assignment declaration kind")}isInJSFile(n)&&function bindCallExpression(t){!e.commonJsModuleIndicator&&isRequireCall(t,!1)&&setCommonJsModuleIndicator(t)}(n);break;case 232:case 264:return E=!0,function bindClassLikeDeclaration(t){if(264===t.kind)bindBlockScopedDeclaration(t,32,899503);else{bindAnonymousDeclaration(t,32,t.name?t.name.escapedText:"__class"),t.name&&k.add(t.name.escapedText)}const{symbol:n}=t,r=createSymbol(4194308,"prototype"),i=n.exports.get(r.escapedName);i&&(t.name&&setParent(t.name,t),e.bindDiagnostics.push(createDiagnosticForNode2(i.declarations[0],Ot.Duplicate_identifier_0,symbolName(r))));n.exports.set(r.escapedName,r),r.parent=n}(n);case 265:return bindBlockScopedDeclaration(n,64,788872);case 266:return bindBlockScopedDeclaration(n,524288,788968);case 267:return function bindEnumDeclaration(e){return isEnumConst(e)?bindBlockScopedDeclaration(e,128,899967):bindBlockScopedDeclaration(e,256,899327)}(n);case 268:return function bindModuleDeclaration(t){if(setExportContextFlag(t),isAmbientModule(t))if(hasSyntacticModifier(t,32)&&errorOnFirstToken(t,Ot.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible),isModuleAugmentationExternal(t))declareModuleSymbol(t);else{let n;if(11===t.name.kind){const{text:e}=t.name;n=tryParsePattern(e),void 0===n&&errorOnFirstToken(t.name,Ot.Pattern_0_can_have_at_most_one_Asterisk_character,e)}const r=declareSymbolAndAddToSymbolTable(t,512,110735);e.patternAmbientModules=append(e.patternAmbientModules,n&&!isString(n)?{pattern:n,symbol:r}:void 0)}else{const e=declareModuleSymbol(t);if(0!==e){const{symbol:n}=t;n.constEnumOnlyModule=!(304&n.flags)&&2===e&&!1!==n.constEnumOnlyModule}}}(n);case 293:return function bindJsxAttributes(e){return bindAnonymousDeclaration(e,4096,"__jsxAttributes")}(n);case 292:return function bindJsxAttribute(e,t,n){return declareSymbolAndAddToSymbolTable(e,t,n)}(n,4,0);case 272:case 275:case 277:case 282:return declareSymbolAndAddToSymbolTable(n,2097152,2097152);case 271:return function bindNamespaceExportDeclaration(t){some(t.modifiers)&&e.bindDiagnostics.push(createDiagnosticForNode2(t,Ot.Modifiers_cannot_appear_here));const n=isSourceFile(t.parent)?isExternalModule(t.parent)?t.parent.isDeclarationFile?void 0:Ot.Global_module_exports_may_only_appear_in_declaration_files:Ot.Global_module_exports_may_only_appear_in_module_files:Ot.Global_module_exports_may_only_appear_at_top_level;n?e.bindDiagnostics.push(createDiagnosticForNode2(t,n)):(e.symbol.globalExports=e.symbol.globalExports||createSymbolTable(),declareSymbol(e.symbol.globalExports,e.symbol,t,2097152,2097152))}(n);case 274:return function bindImportClause(e){e.name&&declareSymbolAndAddToSymbolTable(e,2097152,2097152)}(n);case 279:return function bindExportDeclaration(e){i.symbol&&i.symbol.exports?e.exportClause?isNamespaceExport(e.exportClause)&&(setParent(e.exportClause,e),declareSymbol(i.symbol.exports,i.symbol,e.exportClause,2097152,2097152)):declareSymbol(i.symbol.exports,i.symbol,e,8388608,0):bindAnonymousDeclaration(e,8388608,getDeclarationName(e))}(n);case 278:return function bindExportAssignment(e){if(i.symbol&&i.symbol.exports){const t=exportAssignmentIsAlias(e)?2097152:4,n=declareSymbol(i.symbol.exports,i.symbol,e,t,-1);e.isExportEquals&&setValueDeclaration(n,e)}else bindAnonymousDeclaration(e,111551,getDeclarationName(e))}(n);case 308:return updateStrictModeStatementList(n.statements),function bindSourceFileIfExternalModule(){if(setExportContextFlag(e),isExternalModule(e))bindSourceFileAsExternalModule();else if(isJsonSourceFile(e)){bindSourceFileAsExternalModule();const t=e.symbol;declareSymbol(e.symbol.exports,e.symbol,e,4,-1),e.symbol=t}}();case 242:if(!isFunctionLikeOrClassStaticBlockDeclaration(n.parent))return;case 269:return updateStrictModeStatementList(n.statements);case 342:if(324===n.parent.kind)return bindParameter(n);if(323!==n.parent.kind)break;case 349:const s=n;return declareSymbolAndAddToSymbolTable(s,s.isBracketed||s.typeExpression&&317===s.typeExpression.type.kind?16777220:4,0);case 347:case 339:case 341:return(c||(c=[])).push(n);case 340:return bind(n.typeExpression);case 352:return(d||(d=[])).push(n)}}function bindSourceFileAsExternalModule(){bindAnonymousDeclaration(e,512,`"${removeFileExtension(e.fileName)}"`)}function setCommonJsModuleIndicator(t){return(!e.externalModuleIndicator||!0===e.externalModuleIndicator)&&(e.commonJsModuleIndicator||(e.commonJsModuleIndicator=t,e.externalModuleIndicator||bindSourceFileAsExternalModule()),!0)}function bindExportsPropertyAssignment(e){if(!setCommonJsModuleIndicator(e))return;const t=forEachIdentifierInEntityName(e.left.expression,void 0,(e,t)=>(t&&addDeclarationToSymbol(t,e,67110400),t));if(t){const n=isAliasableExpression(e.right)&&(isExportsIdentifier(e.left.expression)||isModuleExportsAccessExpression(e.left.expression))?2097152:1048580;setParent(e.left,e),declareSymbol(t.exports,t,e.left,n,0)}}function bindExportAssignedObjectMemberAlias(t){declareSymbol(e.symbol.exports,e.symbol,t,69206016,0)}function bindThisPropertyAssignment(e){h.assert(isInJSFile(e));if(isBinaryExpression(e)&&isPropertyAccessExpression(e.left)&&isPrivateIdentifier(e.left.name)||isPropertyAccessExpression(e)&&isPrivateIdentifier(e.name))return;const t=getThisContainer(e,!1,!1);switch(t.kind){case 263:case 219:let n=t.symbol;if(isBinaryExpression(t.parent)&&64===t.parent.operatorToken.kind){const e=t.parent.left;isBindableStaticAccessExpression(e)&&isPrototypeAccess(e.expression)&&(n=lookupSymbolForPropertyAccess(e.expression.expression,o))}n&&n.valueDeclaration&&(n.members=n.members||createSymbolTable(),hasDynamicName(e)?bindDynamicallyNamedThisPropertyAssignment(e,n,n.members):declareSymbol(n.members,n,e,67108868,0),addDeclarationToSymbol(n,n.valueDeclaration,32));break;case 177:case 173:case 175:case 178:case 179:case 176:const r=t.parent,i=isStatic(t)?r.symbol.exports:r.symbol.members;hasDynamicName(e)?bindDynamicallyNamedThisPropertyAssignment(e,r.symbol,i):declareSymbol(i,r.symbol,e,67108868,0,!0);break;case 308:if(hasDynamicName(e))break;t.commonJsModuleIndicator?declareSymbol(t.symbol.exports,t.symbol,e,1048580,0):declareSymbolAndAddToSymbolTable(e,1,111550);break;case 268:break;default:h.failBadSyntaxKind(t)}}function bindDynamicallyNamedThisPropertyAssignment(e,t,n){declareSymbol(n,t,e,4,0,!0,!0),addLateBoundAssignmentDeclarationToSymbol(e,t)}function addLateBoundAssignmentDeclarationToSymbol(e,t){t&&(t.assignmentDeclarationMembers||(t.assignmentDeclarationMembers=new Map)).set(getNodeId(e),e)}function bindPrototypePropertyAssignment(e,t){const n=e.expression,r=n.expression;setParent(r,n),setParent(n,e),setParent(e,t),bindPropertyAssignment(r,e,!0,!0)}function bindStaticPropertyAssignment(e){h.assert(!isIdentifier(e)),setParent(e.expression,e),bindPropertyAssignment(e.expression,e,!1,!1)}function bindPotentiallyMissingNamespaces(t,n,r,i,o){if(2097152&(null==t?void 0:t.flags))return t;if(r&&!i){const r=67110400,i=110735;t=forEachIdentifierInEntityName(n,t,(t,n,o)=>{if(n)return addDeclarationToSymbol(n,t,r),n;return declareSymbol(o?o.exports:e.jsGlobalAugmentations||(e.jsGlobalAugmentations=createSymbolTable()),o,t,r,i)})}return o&&t&&t.valueDeclaration&&addDeclarationToSymbol(t,t.valueDeclaration,32),t}function bindPotentiallyNewExpandoMemberToNamespace(e,t,n){if(!t||!function isExpandoSymbol(e){if(1072&e.flags)return!0;const t=e.valueDeclaration;if(t&&isCallExpression(t))return!!getAssignedExpandoInitializer(t);let n=t?isVariableDeclaration(t)?t.initializer:isBinaryExpression(t)?t.right:isPropertyAccessExpression(t)&&isBinaryExpression(t.parent)?t.parent.right:void 0:void 0;if(n=n&&getRightMostAssignedExpression(n),n){const e=isPrototypeAccess(isVariableDeclaration(t)?t.name:isBinaryExpression(t)?t.left:t);return!!getExpandoInitializer(!isBinaryExpression(n)||57!==n.operatorToken.kind&&61!==n.operatorToken.kind?n:n.right,e)}return!1}(t))return;const r=n?t.members||(t.members=createSymbolTable()):t.exports||(t.exports=createSymbolTable());let i=0,o=0;isFunctionLikeDeclaration(getAssignedExpandoInitializer(e))?(i=8192,o=103359):isCallExpression(e)&&isBindableObjectDefinePropertyCall(e)&&(some(e.arguments[2].properties,e=>{const t=getNameOfDeclaration(e);return!!t&&isIdentifier(t)&&"set"===idText(t)})&&(i|=65540,o|=78783),some(e.arguments[2].properties,e=>{const t=getNameOfDeclaration(e);return!!t&&isIdentifier(t)&&"get"===idText(t)})&&(i|=32772,o|=46015)),0===i&&(i=4,o=0),declareSymbol(r,t,e,67108864|i,-67108865&o)}function isTopLevelNamespaceAssignment(e){return isBinaryExpression(e.parent)?308===function getParentOfBinaryExpression(e){for(;isBinaryExpression(e.parent);)e=e.parent;return e.parent}(e.parent).parent.kind:308===e.parent.parent.kind}function bindPropertyAssignment(e,t,n,r){let o=lookupSymbolForPropertyAccess(e,a)||lookupSymbolForPropertyAccess(e,i);const s=isTopLevelNamespaceAssignment(t);o=bindPotentiallyMissingNamespaces(o,t.expression,s,n,r),bindPotentiallyNewExpandoMemberToNamespace(t,o,n)}function lookupSymbolForPropertyAccess(e,t=i){if(isIdentifier(e))return lookupSymbolForName(t,e.escapedText);{const t=lookupSymbolForPropertyAccess(e.expression);return t&&t.exports&&t.exports.get(getElementOrPropertyAccessName(e))}}function forEachIdentifierInEntityName(t,n,r){if(isExportsOrModuleExportsOrAlias(e,t))return e.symbol;if(isIdentifier(t))return r(t,lookupSymbolForPropertyAccess(t),n);{const e=forEachIdentifierInEntityName(t.expression,n,r),i=getNameOrArgument(t);return isPrivateIdentifier(i)&&h.fail("unexpected PrivateIdentifier"),r(i,e&&e.exports&&e.exports.get(getElementOrPropertyAccessName(t)),e)}}function bindVariableDeclarationOrBindingElement(e){if(E&&checkStrictModeEvalOrArguments(e,e.name),!isBindingPattern(e.name)){const t=261===e.kind?e:e.parent.parent;!isInJSFile(e)||!isVariableDeclarationInitializedToBareOrAccessedRequire(t)||getJSDocTypeTag(e)||32&getCombinedModifierFlags(e)?isBlockOrCatchScoped(e)?bindBlockScopedDeclaration(e,2,111551):isPartOfParameterDeclaration(e)?declareSymbolAndAddToSymbolTable(e,1,111551):declareSymbolAndAddToSymbolTable(e,1,111550):declareSymbolAndAddToSymbolTable(e,2097152,2097152)}}function bindParameter(e){if((342!==e.kind||324===i.kind)&&(!E||33554432&e.flags||checkStrictModeEvalOrArguments(e,e.name),isBindingPattern(e.name)?bindAnonymousDeclaration(e,1,"__"+e.parent.parameters.indexOf(e)):declareSymbolAndAddToSymbolTable(e,1,111551),isParameterPropertyDeclaration(e,e.parent))){const t=e.parent.parent;declareSymbol(t.symbol.members,t.symbol,e,4|(e.questionToken?16777216:0),0)}}function bindPropertyOrMethodOrAccessor(t,n,r){return e.isDeclarationFile||33554432&t.flags||!isAsyncFunction(t)||(C|=4096),p&&isObjectLiteralOrClassExpressionMethodOrAccessor(t)&&(t.flowNode=p),hasDynamicName(t)?bindAnonymousDeclaration(t,n,"__computed"):declareSymbolAndAddToSymbolTable(t,n,r)}}function isEnumDeclarationWithPreservedEmit(e,t){return 267===e.kind&&(!isEnumConst(e)||er(t))}function isExportsOrModuleExportsOrAlias(e,t){let n=0;const r=createQueue();for(r.enqueue(t);!r.isEmpty()&&n<100;){if(n++,isExportsIdentifier(t=r.dequeue())||isModuleExportsAccessExpression(t))return!0;if(isIdentifier(t)){const n=lookupSymbolForName(e,t.escapedText);if(n&&n.valueDeclaration&&isVariableDeclaration(n.valueDeclaration)&&n.valueDeclaration.initializer){const e=n.valueDeclaration.initializer;r.enqueue(e),isAssignmentExpression(e,!0)&&(r.enqueue(e.left),r.enqueue(e.right))}}}return!1}function getContainerFlags(e){switch(e.kind){case 232:case 264:case 267:case 211:case 188:case 323:case 293:return 1;case 265:return 65;case 268:case 266:case 201:case 182:return 33;case 308:return 37;case 178:case 179:case 175:if(isObjectLiteralOrClassExpressionMethodOrAccessor(e))return 173;case 177:case 263:case 174:case 180:case 324:case 318:case 185:case 181:case 186:case 176:return 45;case 352:return 37;case 219:case 220:return 61;case 269:return 4;case 173:return e.initializer?4:0;case 300:case 249:case 250:case 251:case 270:return 34;case 242:return isFunctionLike(e.parent)||isClassStaticBlockDeclaration(e.parent)?0:34}return 0}function lookupSymbolForName(e,t){var n,r,i,o;const a=null==(r=null==(n=tryCast(e,canHaveLocals))?void 0:n.locals)?void 0:r.get(t);return a?a.exportSymbol??a:isSourceFile(e)&&e.jsGlobalAugmentations&&e.jsGlobalAugmentations.has(t)?e.jsGlobalAugmentations.get(t):canHaveSymbol(e)?null==(o=null==(i=e.symbol)?void 0:i.exports)?void 0:o.get(t):void 0}function createGetSymbolWalker(e,t,n,r,i,o,a,s,c,l){return function getSymbolWalker(d=()=>!0){const p=[],u=[];return{walkType:e=>{try{return visitType(e),{visitedTypes:getOwnValues(p),visitedSymbols:getOwnValues(u)}}finally{clear(p),clear(u)}},walkSymbol:e=>{try{return visitSymbol(e),{visitedTypes:getOwnValues(p),visitedSymbols:getOwnValues(u)}}finally{clear(p),clear(u)}}};function visitType(e){if(!e)return;if(p[e.id])return;p[e.id]=e;if(!visitSymbol(e.symbol)){if(524288&e.flags){const t=e,n=t.objectFlags;4&n&&function visitTypeReference(e){visitType(e.target),forEach(l(e),visitType)}(e),32&n&&function visitMappedType(e){visitType(e.typeParameter),visitType(e.constraintType),visitType(e.templateType),visitType(e.modifiersType)}(e),3&n&&function visitInterfaceType(e){visitObjectType(e),forEach(e.typeParameters,visitType),forEach(r(e),visitType),visitType(e.thisType)}(e),24&n&&visitObjectType(t)}262144&e.flags&&function visitTypeParameter(e){visitType(s(e))}(e),3145728&e.flags&&function visitUnionOrIntersectionType(e){forEach(e.types,visitType)}(e),4194304&e.flags&&function visitIndexType(e){visitType(e.type)}(e),8388608&e.flags&&function visitIndexedAccessType(e){visitType(e.objectType),visitType(e.indexType),visitType(e.constraint)}(e)}}function visitSignature(r){const i=t(r);i&&visitType(i.type),forEach(r.typeParameters,visitType);for(const e of r.parameters)visitSymbol(e);visitType(e(r)),visitType(n(r))}function visitObjectType(e){const t=i(e);for(const e of t.indexInfos)visitType(e.keyType),visitType(e.type);for(const e of t.callSignatures)visitSignature(e);for(const e of t.constructSignatures)visitSignature(e);for(const e of t.properties)visitSymbol(e)}function visitSymbol(e){if(!e)return!1;const t=getSymbolId(e);if(u[t])return!1;if(u[t]=e,!d(e))return!0;return visitType(o(e)),e.exports&&e.exports.forEach(visitSymbol),forEach(e.declarations,e=>{if(e.type&&187===e.type.kind){const t=e.type;visitSymbol(a(c(t.exprName)))}}),!1}}}var Wo={};i(Wo,{RelativePreference:()=>zo,countPathComponents:()=>countPathComponents,forEachFileNameOfModule:()=>forEachFileNameOfModule,getLocalModuleSpecifierBetweenFileNames:()=>getLocalModuleSpecifierBetweenFileNames,getModuleSpecifier:()=>getModuleSpecifier,getModuleSpecifierPreferences:()=>getModuleSpecifierPreferences,getModuleSpecifiers:()=>getModuleSpecifiers,getModuleSpecifiersWithCacheInfo:()=>getModuleSpecifiersWithCacheInfo,getNodeModulesPackageName:()=>getNodeModulesPackageName,tryGetJSExtensionForFile:()=>tryGetJSExtensionForFile,tryGetModuleSpecifiersFromCache:()=>tryGetModuleSpecifiersFromCache,tryGetRealFileNameForNonJsDeclarationFileName:()=>tryGetRealFileNameForNonJsDeclarationFileName,updateModuleSpecifier:()=>updateModuleSpecifier});var Uo=memoizeOne(e=>{try{let t=e.indexOf("/");if(0!==t)return new RegExp(e);const n=e.lastIndexOf("/");if(t===n)return new RegExp(e);for(;(t=e.indexOf("/",t+1))!==n;)if("\\"!==e[t-1])return new RegExp(e);const r=e.substring(n+1).replace(/[^iu]/g,"");return e=e.substring(1,n),new RegExp(e,r)}catch{return}}),zo=(e=>(e[e.Relative=0]="Relative",e[e.NonRelative=1]="NonRelative",e[e.Shortest=2]="Shortest",e[e.ExternalNonRelative=3]="ExternalNonRelative",e))(zo||{});function getModuleSpecifierPreferences({importModuleSpecifierPreference:e,importModuleSpecifierEnding:t,autoImportSpecifierExcludeRegexes:n},r,i,o,a){const s=getPreferredEnding();return{excludeRegexes:n,relativePreference:void 0!==a?isExternalModuleNameRelative(a)?0:1:"relative"===e?0:"non-relative"===e?1:"project-relative"===e?3:2,getAllowedEndingsInPreferredOrder:e=>{const t=getDefaultResolutionModeForFile(o,r,i),n=e!==t?getPreferredEnding(e):s,a=qn(i);if(99===(e??t)&&3<=a&&a<=99)return shouldAllowImportingTsExtension(i,o.fileName)?[3,2]:[2];if(1===qn(i))return 2===n?[2,1]:[1,2];const c=shouldAllowImportingTsExtension(i,o.fileName);switch(n){case 2:return c?[2,3,0,1]:[2,0,1];case 3:return[3,0,2,1];case 1:return c?[1,0,3,2]:[1,0,2];case 0:return c?[0,1,3,2]:[0,1,2];default:h.assertNever(n)}}};function getPreferredEnding(e){if(void 0!==a){if(hasJSFileExtension(a))return 2;if(endsWith(a,"/index"))return 1}return getModuleSpecifierEndingPreference(t,e??getDefaultResolutionModeForFile(o,r,i),i,isFullSourceFile(o)?o:void 0)}}function updateModuleSpecifier(e,t,n,r,i,o,a={}){const s=getModuleSpecifierWorker(e,t,n,r,i,getModuleSpecifierPreferences({},i,e,t,o),{},a);if(s!==o)return s}function getModuleSpecifier(e,t,n,r,i,o={}){return getModuleSpecifierWorker(e,t,n,r,i,getModuleSpecifierPreferences({},i,e,t),{},o)}function getNodeModulesPackageName(e,t,n,r,i,o={}){const a=getInfo(t.fileName,r);return firstDefined(getAllModulePaths(a,n,r,i,e,o),n=>tryGetModuleNameAsNodeModule(n,a,t,r,e,i,!0,o.overrideImportMode))}function getModuleSpecifierWorker(e,t,n,r,i,o,a,s={}){const c=getInfo(n,i);return firstDefined(getAllModulePaths(c,r,i,a,e,s),n=>tryGetModuleNameAsNodeModule(n,c,t,i,e,a,void 0,s.overrideImportMode))||getLocalModuleSpecifier(r,c,e,i,s.overrideImportMode||getDefaultResolutionModeForFile(t,i,e),o)}function tryGetModuleSpecifiersFromCache(e,t,n,r,i={}){const o=tryGetModuleSpecifiersFromCacheWorker(e,t,n,r,i);return o[1]&&{kind:o[0],moduleSpecifiers:o[1],computedWithoutCache:!1}}function tryGetModuleSpecifiersFromCacheWorker(e,t,n,r,i={}){var o;const a=getSourceFileOfModule(e);if(!a)return l;const s=null==(o=n.getModuleSpecifierCache)?void 0:o.call(n),c=null==s?void 0:s.get(t.path,a.path,r,i);return[null==c?void 0:c.kind,null==c?void 0:c.moduleSpecifiers,a,null==c?void 0:c.modulePaths,s]}function getModuleSpecifiers(e,t,n,r,i,o,a={}){return getModuleSpecifiersWithCacheInfo(e,t,n,r,i,o,a,!1).moduleSpecifiers}function getModuleSpecifiersWithCacheInfo(e,t,n,r,i,o,a={},s){let c=!1;const d=function tryGetModuleNameFromAmbientModule(e,t){var n;const r=null==(n=e.declarations)?void 0:n.find(e=>isNonGlobalAmbientModule(e)&&(!isExternalModuleAugmentation(e)||!isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(e.name))));if(r)return r.name.text;const i=mapDefined(e.declarations,e=>{var n,r,i,o;if(!isModuleDeclaration(e))return;const a=getTopNamespace(e);if(!((null==(n=null==a?void 0:a.parent)?void 0:n.parent)&&isModuleBlock(a.parent)&&isAmbientModule(a.parent.parent)&&isSourceFile(a.parent.parent.parent)))return;const s=null==(o=null==(i=null==(r=a.parent.parent.symbol.exports)?void 0:r.get("export="))?void 0:i.valueDeclaration)?void 0:o.expression;if(!s)return;const c=t.getSymbolAtLocation(s);if(!c)return;if((2097152&(null==c?void 0:c.flags)?t.getAliasedSymbol(c):c)===e.symbol)return a.parent.parent;function getTopNamespace(e){for(;8&e.flags;)e=e.parent;return e}}),o=i[0];if(o)return o.name.text}(e,t);if(d)return{kind:"ambient",moduleSpecifiers:s&&isExcludedByRegex(d,o.autoImportSpecifierExcludeRegexes)?l:[d],computedWithoutCache:c};let[p,u,m,_,f]=tryGetModuleSpecifiersFromCacheWorker(e,r,i,o,a);if(u)return{kind:p,moduleSpecifiers:u,computedWithoutCache:c};if(!m)return{kind:void 0,moduleSpecifiers:l,computedWithoutCache:c};c=!0,_||(_=getAllModulePathsWorker(getInfo(r.fileName,i),m.originalFileName,i,n,a));const g=function computeModuleSpecifiers(e,t,n,r,i,o={},a){const s=getInfo(n.fileName,r),c=getModuleSpecifierPreferences(i,r,t,n),d=isFullSourceFile(n)&&forEach(e,e=>forEach(r.getFileIncludeReasons().get(toPath(e.path,r.getCurrentDirectory(),s.getCanonicalFileName)),e=>{if(3!==e.kind||e.file!==n.path)return;const t=r.getModeForResolutionAtIndex(n,e.index),i=o.overrideImportMode??r.getDefaultResolutionModeForFile(n);if(t!==i&&void 0!==t&&void 0!==i)return;const a=getModuleNameStringLiteralAt(n,e.index).text;return 1===c.relativePreference&&pathIsRelative(a)?void 0:a}));if(d)return{kind:void 0,moduleSpecifiers:[d],computedWithoutCache:!0};const p=some(e,e=>e.isInNodeModules);let u,m,_,f;for(const l of e){const e=l.isInNodeModules?tryGetModuleNameAsNodeModule(l,s,n,r,t,i,void 0,o.overrideImportMode):void 0;if(e&&(!a||!isExcludedByRegex(e,c.excludeRegexes))&&(u=append(u,e),l.isRedirect))return{kind:"node_modules",moduleSpecifiers:u,computedWithoutCache:!0};const d=getLocalModuleSpecifier(l.path,s,t,r,o.overrideImportMode||n.impliedNodeFormat,c,l.isRedirect||!!e);!d||a&&isExcludedByRegex(d,c.excludeRegexes)||(l.isRedirect?_=append(_,d):pathIsBareSpecifier(d)?pathContainsNodeModules(d)?f=append(f,d):m=append(m,d):(a||!p||l.isInNodeModules)&&(f=append(f,d)))}return(null==m?void 0:m.length)?{kind:"paths",moduleSpecifiers:m,computedWithoutCache:!0}:(null==_?void 0:_.length)?{kind:"redirect",moduleSpecifiers:_,computedWithoutCache:!0}:(null==u?void 0:u.length)?{kind:"node_modules",moduleSpecifiers:u,computedWithoutCache:!0}:{kind:"relative",moduleSpecifiers:f??l,computedWithoutCache:!0}}(_,n,r,i,o,a,s);return null==f||f.set(r.path,m.path,o,a,g.kind,_,g.moduleSpecifiers),g}function getLocalModuleSpecifierBetweenFileNames(e,t,n,r,i,o={}){return getLocalModuleSpecifier(t,getInfo(e.fileName,r),n,r,o.overrideImportMode??e.impliedNodeFormat,getModuleSpecifierPreferences(i,r,n,e))}function isExcludedByRegex(e,t){return some(t,t=>{var n;return!!(null==(n=Uo(t))?void 0:n.test(e))})}function getInfo(e,t){e=getNormalizedAbsolutePath(e,t.getCurrentDirectory());const n=createGetCanonicalFileName(!t.useCaseSensitiveFileNames||t.useCaseSensitiveFileNames()),r=getDirectoryPath(e);return{getCanonicalFileName:n,importingSourceFileName:e,sourceDirectory:r,canonicalSourceDirectory:n(r)}}function getLocalModuleSpecifier(e,t,n,r,i,{getAllowedEndingsInPreferredOrder:o,relativePreference:a,excludeRegexes:s},c){const{baseUrl:l,paths:d,rootDirs:p}=n;if(c&&!d)return;const{sourceDirectory:u,canonicalSourceDirectory:m,getCanonicalFileName:_}=t,f=o(i),g=p&&function tryGetModuleNameFromRootDirs(e,t,n,r,i,o){const a=getPathsRelativeToRootDirs(t,e,r);if(void 0===a)return;const s=getPathsRelativeToRootDirs(n,e,r),c=flatMap(s,e=>map(a,t=>ensurePathIsNonModuleName(getRelativePathFromDirectory(e,t,r)))),l=min(c,compareNumberOfDirectorySeparators);if(!l)return;return processEnding(l,i,o)}(p,e,u,_,f,n)||processEnding(ensurePathIsNonModuleName(getRelativePathFromDirectory(u,e,_)),f,n);if(!l&&!d&&!Xn(n)||0===a)return c?void 0:g;const y=getNormalizedAbsolutePath(getPathsBasePath(n,r)||l,r.getCurrentDirectory()),h=getRelativePathIfInSameVolume(e,y,_);if(!h)return c?void 0:g;const T=c?void 0:function tryGetModuleNameFromPackageJsonImports(e,t,n,r,i,o){var a,s,c;if(!r.readFile||!Xn(n))return;const l=getNearestAncestorDirectoryWithPackageJson(r,t);if(!l)return;const d=combinePaths(l,"package.json"),p=null==(s=null==(a=r.getPackageJsonInfoCache)?void 0:a.call(r))?void 0:s.getPackageJsonInfo(d);if(isMissingPackageJsonInfo(p)||!r.fileExists(d))return;const u=(null==p?void 0:p.contents.packageJsonContent)||tryParseJson(r.readFile(d)),m=null==u?void 0:u.imports;if(!m)return;const _=getConditions(n,i);return null==(c=forEach(getOwnKeys(m),t=>{if(!startsWith(t,"#")||"#"===t||startsWith(t,"#/"))return;const i=endsWith(t,"/")?1:t.includes("*")?2:0;return tryGetModuleNameFromExportsOrImports(n,r,e,l,t,m[t],_,i,!0,o)}))?void 0:c.moduleFileToTry}(e,u,n,r,i,function prefersTsExtension(e){const t=e.indexOf(3);return t>-1&&te.fileExists(combinePaths(t,"package.json"))?t:void 0)}function forEachFileNameOfModule(e,t,n,r,i){var o,a;const s=hostGetCanonicalFileName(n),c=n.getCurrentDirectory(),d=n.isSourceOfProjectReferenceRedirect(t)?null==(o=n.getRedirectFromSourceFile(t))?void 0:o.outputDts:void 0,p=toPath(t,c,s),u=n.redirectTargetsMap.get(p)||l,m=[...d?[d]:l,t,...u].map(e=>getNormalizedAbsolutePath(e,c));let _=!every(m,containsIgnoredPath);if(!r){const e=forEach(m,e=>!(_&&containsIgnoredPath(e))&&i(e,d===e));if(e)return e}const f=null==(a=n.getSymlinkCache)?void 0:a.call(n).getSymlinkedDirectoriesByRealpath(),g=getNormalizedAbsolutePath(t,c);return f&&forEachAncestorDirectoryStoppingAtGlobalCache(n,getDirectoryPath(g),t=>{const n=f.get(ensureTrailingDirectorySeparator(toPath(t,c,s)));if(n)return!startsWithDirectory(e,t,s)&&forEach(m,e=>{if(!startsWithDirectory(e,t,s))return;const r=getRelativePathFromDirectory(t,e,s);for(const t of n){const n=resolvePath(t,r),o=i(n,e===d);if(_=!0,o)return o}})})||(r?forEach(m,e=>_&&containsIgnoredPath(e)?void 0:i(e,e===d)):void 0)}function getAllModulePaths(e,t,n,r,i,o={}){var a;const s=toPath(e.importingSourceFileName,n.getCurrentDirectory(),hostGetCanonicalFileName(n)),c=toPath(t,n.getCurrentDirectory(),hostGetCanonicalFileName(n)),l=null==(a=n.getModuleSpecifierCache)?void 0:a.call(n);if(l){const e=l.get(s,c,r,o);if(null==e?void 0:e.modulePaths)return e.modulePaths}const d=getAllModulePathsWorker(e,t,n,i,o);return l&&l.setModulePaths(s,c,r,o,d),d}var Vo=["dependencies","peerDependencies","optionalDependencies"];function getAllModulePathsWorker(e,t,n,r,i){var o,a;const s=null==(o=n.getModuleResolutionCache)?void 0:o.call(n),c=null==(a=n.getSymlinkCache)?void 0:a.call(n);if(s&&c&&n.readFile&&!pathContainsNodeModules(e.importingSourceFileName)){h.type(n);const t=getTemporaryModuleResolutionState(s.getPackageJsonInfoCache(),n,{}),o=getPackageScopeForPath(getDirectoryPath(e.importingSourceFileName),t);if(o){const e=function getAllRuntimeDependencies(e){let t;for(const n of Vo){const r=e[n];r&&"object"==typeof r&&(t=concatenate(t,getOwnKeys(r)))}return t}(o.contents.packageJsonContent);for(const t of e||l){const e=resolveModuleName(t,combinePaths(o.packageDirectory,"package.json"),r,n,s,void 0,i.overrideImportMode);c.setSymlinksFromResolution(e.resolvedModule)}}}const d=new Map;let p=!1;forEachFileNameOfModule(e.importingSourceFileName,t,n,!0,(t,n)=>{const r=pathContainsNodeModules(t);d.set(t,{path:e.getCanonicalFileName(t),isRedirect:n,isInNodeModules:r}),p=p||r});const u=[];for(let t=e.canonicalSourceDirectory;0!==d.size;){const e=ensureTrailingDirectorySeparator(t);let n;d.forEach(({path:t,isRedirect:r,isInNodeModules:i},o)=>{startsWith(t,e)&&((n||(n=[])).push({path:o,isRedirect:r,isInNodeModules:i}),d.delete(o))}),n&&(n.length>1&&n.sort(comparePathsByRedirectAndNumberOfDirectorySeparators),u.push(...n));const r=getDirectoryPath(t);if(r===t)break;t=r}if(d.size){const e=arrayFrom(d.entries(),([e,{isRedirect:t,isInNodeModules:n}])=>({path:e,isRedirect:t,isInNodeModules:n}));e.length>1&&e.sort(comparePathsByRedirectAndNumberOfDirectorySeparators),u.push(...e)}return u}function tryGetModuleNameFromPaths(e,t,n,r,i,o,a){for(const o in t)for(const s of t[o]){const t=normalizePath(s),c=getRelativePathIfInSameVolume(t,r,i)??t,l=c.indexOf("*"),d=n.map(t=>({ending:t,value:processEnding(e,[t],a)}));if(tryGetExtensionFromPath2(c)&&d.push({ending:void 0,value:e}),-1!==l){const e=c.substring(0,l),t=c.substring(l+1);for(const{ending:n,value:r}of d)if(r.length>=e.length+t.length&&startsWith(r,e)&&endsWith(r,t)&&validateEnding({ending:n,value:r})){const n=r.substring(e.length,r.length-t.length);if(!pathIsRelative(n))return replaceFirstStar(o,n)}}else if(some(d,e=>0!==e.ending&&c===e.value)||some(d,e=>0===e.ending&&c===e.value&&validateEnding(e)))return o}function validateEnding({ending:t,value:n}){return 0!==t||n===processEnding(e,[t],a,o)}}function tryGetModuleNameFromExportsOrImports(e,t,n,r,i,o,a,s,c,l){if("string"==typeof o){const a=!hostUsesCaseSensitiveFileNames(t),getCommonSourceDirectory2=()=>t.getCommonSourceDirectory(),d=c&&getOutputJSFileNameWorker(n,e,a,getCommonSourceDirectory2),p=c&&getOutputDeclarationFileNameWorker(n,e,a,getCommonSourceDirectory2),u=getNormalizedAbsolutePath(combinePaths(r,o),void 0),m=hasTSFileExtension(n)?removeFileExtension(n)+tryGetJSExtensionForFile(n,e):void 0,_=l&&hasImplementationTSFileExtension(n);switch(s){case 0:if(m&&0===comparePaths(m,u,a)||0===comparePaths(n,u,a)||d&&0===comparePaths(d,u,a)||p&&0===comparePaths(p,u,a))return{moduleFileToTry:i};break;case 1:if(_&&containsPath(n,u,a)){const e=getRelativePathFromDirectory(u,n,!1);return{moduleFileToTry:getNormalizedAbsolutePath(combinePaths(combinePaths(i,o),e),void 0)}}if(m&&containsPath(u,m,a)){const e=getRelativePathFromDirectory(u,m,!1);return{moduleFileToTry:getNormalizedAbsolutePath(combinePaths(combinePaths(i,o),e),void 0)}}if(!_&&containsPath(u,n,a)){const e=getRelativePathFromDirectory(u,n,!1);return{moduleFileToTry:getNormalizedAbsolutePath(combinePaths(combinePaths(i,o),e),void 0)}}if(d&&containsPath(u,d,a)){const e=getRelativePathFromDirectory(u,d,!1);return{moduleFileToTry:combinePaths(i,e)}}if(p&&containsPath(u,p,a)){const t=changeFullExtension(getRelativePathFromDirectory(u,p,!1),getJSExtensionForFile(p,e));return{moduleFileToTry:combinePaths(i,t)}}break;case 2:const t=u.indexOf("*"),r=u.slice(0,t),s=u.slice(t+1);if(_&&startsWith(n,r,a)&&endsWith(n,s,a)){const e=n.slice(r.length,n.length-s.length);return{moduleFileToTry:replaceFirstStar(i,e)}}if(m&&startsWith(m,r,a)&&endsWith(m,s,a)){const e=m.slice(r.length,m.length-s.length);return{moduleFileToTry:replaceFirstStar(i,e)}}if(!_&&startsWith(n,r,a)&&endsWith(n,s,a)){const e=n.slice(r.length,n.length-s.length);return{moduleFileToTry:replaceFirstStar(i,e)}}if(d&&startsWith(d,r,a)&&endsWith(d,s,a)){const e=d.slice(r.length,d.length-s.length);return{moduleFileToTry:replaceFirstStar(i,e)}}if(p&&startsWith(p,r,a)&&endsWith(p,s,a)){const t=p.slice(r.length,p.length-s.length),n=replaceFirstStar(i,t),o=tryGetJSExtensionForFile(p,e);return o?{moduleFileToTry:changeFullExtension(n,o)}:void 0}}}else{if(Array.isArray(o))return forEach(o,o=>tryGetModuleNameFromExportsOrImports(e,t,n,r,i,o,a,s,c,l));if("object"==typeof o&&null!==o)for(const d of getOwnKeys(o))if("default"===d||a.indexOf(d)>=0||isApplicableVersionedTypesKey(a,d)){const p=o[d],u=tryGetModuleNameFromExportsOrImports(e,t,n,r,i,p,a,s,c,l);if(u)return u}}}function tryGetModuleNameAsNodeModule({path:e,isRedirect:t},{getCanonicalFileName:n,canonicalSourceDirectory:r},i,o,a,s,c,l){if(!o.fileExists||!o.readFile)return;const d=getNodeModulePathParts(e);if(!d)return;const p=getModuleSpecifierPreferences(s,o,a,i).getAllowedEndingsInPreferredOrder();let u=e,m=!1;if(!c){let t,n=d.packageRootIndex;for(;;){const{moduleFileToTry:r,packageRootPath:i,blockedByExports:s,verbatimFromExports:c}=tryDirectoryWithPackageJson(n);if(1!==qn(a)){if(s)return;if(c)return r}if(i){u=i,m=!0;break}if(t||(t=r),n=e.indexOf(Ft,n+1),-1===n){u=processEnding(t,p,a,o);break}}}if(t&&!m)return;const _=o.getGlobalTypingsCacheLocation&&o.getGlobalTypingsCacheLocation(),f=n(u.substring(0,d.topLevelNodeModulesIndex));if(!(startsWith(r,f)||_&&startsWith(n(_),f)))return;const g=u.substring(d.topLevelPackageNameIndex+1),y=getPackageNameFromTypesPackageName(g);return 1===qn(a)&&y===g?void 0:y;function tryDirectoryWithPackageJson(t){var r,s;const c=e.substring(0,t),u=combinePaths(c,"package.json");let m=e,_=!1;const f=null==(s=null==(r=o.getPackageJsonInfoCache)?void 0:r.call(o))?void 0:s.getPackageJsonInfo(u);if(isPackageJsonInfo(f)||void 0===f&&o.fileExists(u)){const t=(null==f?void 0:f.contents.packageJsonContent)||tryParseJson(o.readFile(u)),r=l||getDefaultResolutionModeForFile(i,o,a);if(Qn(a)){const n=getPackageNameFromTypesPackageName(c.substring(d.topLevelPackageNameIndex+1)),i=getConditions(a,r),s=(null==t?void 0:t.exports)?function tryGetModuleNameFromExports(e,t,n,r,i,o,a){return"object"==typeof o&&null!==o&&!Array.isArray(o)&&allKeysStartWithDot(o)?forEach(getOwnKeys(o),s=>{const c=getNormalizedAbsolutePath(combinePaths(i,s),void 0),l=endsWith(s,"/")?1:s.includes("*")?2:0;return tryGetModuleNameFromExportsOrImports(e,t,n,r,c,o[s],a,l,!1,!1)}):tryGetModuleNameFromExportsOrImports(e,t,n,r,i,o,a,0,!1,!1)}(a,o,e,c,n,t.exports,i):void 0;if(s)return{...s,verbatimFromExports:!0};if(null==t?void 0:t.exports)return{moduleFileToTry:e,blockedByExports:!0}}const s=(null==t?void 0:t.typesVersions)?getPackageJsonTypesVersionsPaths(t.typesVersions):void 0;if(s){const t=tryGetModuleNameFromPaths(e.slice(c.length+1),s.paths,p,c,n,o,a);void 0===t?_=!0:m=combinePaths(c,t)}const g=(null==t?void 0:t.typings)||(null==t?void 0:t.types)||(null==t?void 0:t.main)||"index.js";if(isString(g)&&(!_||!matchPatternOrExact(tryParsePatterns(s.paths),g))){const e=toPath(g,c,n),r=n(m);if(removeFileExtension(e)===removeFileExtension(r))return{packageRootPath:c,moduleFileToTry:m};if("module"!==(null==t?void 0:t.type)&&!fileExtensionIsOneOf(r,vr)&&startsWith(r,e)&&getDirectoryPath(r)===removeTrailingDirectorySeparator(e)&&"index"===removeFileExtension(getBaseFileName(r)))return{packageRootPath:c,moduleFileToTry:m}}}else{const e=n(m.substring(d.packageRootIndex+1));if("index.d.ts"===e||"index.js"===e||"index.ts"===e||"index.tsx"===e)return{moduleFileToTry:m,packageRootPath:c}}return{moduleFileToTry:m}}}function getPathsRelativeToRootDirs(e,t,n){return mapDefined(t,t=>{const r=getRelativePathIfInSameVolume(e,t,n);return void 0!==r&&isPathRelativeToParent(r)?void 0:r})}function processEnding(e,t,n,r){if(fileExtensionIsOneOf(e,[".json",".mjs",".cjs"]))return e;const i=removeFileExtension(e);if(e===i)return e;const o=t.indexOf(2),a=t.indexOf(3);if(fileExtensionIsOneOf(e,[".mts",".cts"])&&-1!==a&&a0===e||1===e);return-1!==r&&r(e[e.None=0]="None",e[e.TypeofEQString=1]="TypeofEQString",e[e.TypeofEQNumber=2]="TypeofEQNumber",e[e.TypeofEQBigInt=4]="TypeofEQBigInt",e[e.TypeofEQBoolean=8]="TypeofEQBoolean",e[e.TypeofEQSymbol=16]="TypeofEQSymbol",e[e.TypeofEQObject=32]="TypeofEQObject",e[e.TypeofEQFunction=64]="TypeofEQFunction",e[e.TypeofEQHostObject=128]="TypeofEQHostObject",e[e.TypeofNEString=256]="TypeofNEString",e[e.TypeofNENumber=512]="TypeofNENumber",e[e.TypeofNEBigInt=1024]="TypeofNEBigInt",e[e.TypeofNEBoolean=2048]="TypeofNEBoolean",e[e.TypeofNESymbol=4096]="TypeofNESymbol",e[e.TypeofNEObject=8192]="TypeofNEObject",e[e.TypeofNEFunction=16384]="TypeofNEFunction",e[e.TypeofNEHostObject=32768]="TypeofNEHostObject",e[e.EQUndefined=65536]="EQUndefined",e[e.EQNull=131072]="EQNull",e[e.EQUndefinedOrNull=262144]="EQUndefinedOrNull",e[e.NEUndefined=524288]="NEUndefined",e[e.NENull=1048576]="NENull",e[e.NEUndefinedOrNull=2097152]="NEUndefinedOrNull",e[e.Truthy=4194304]="Truthy",e[e.Falsy=8388608]="Falsy",e[e.IsUndefined=16777216]="IsUndefined",e[e.IsNull=33554432]="IsNull",e[e.IsUndefinedOrNull=50331648]="IsUndefinedOrNull",e[e.All=134217727]="All",e[e.BaseStringStrictFacts=3735041]="BaseStringStrictFacts",e[e.BaseStringFacts=12582401]="BaseStringFacts",e[e.StringStrictFacts=16317953]="StringStrictFacts",e[e.StringFacts=16776705]="StringFacts",e[e.EmptyStringStrictFacts=12123649]="EmptyStringStrictFacts",e[e.EmptyStringFacts=12582401]="EmptyStringFacts",e[e.NonEmptyStringStrictFacts=7929345]="NonEmptyStringStrictFacts",e[e.NonEmptyStringFacts=16776705]="NonEmptyStringFacts",e[e.BaseNumberStrictFacts=3734786]="BaseNumberStrictFacts",e[e.BaseNumberFacts=12582146]="BaseNumberFacts",e[e.NumberStrictFacts=16317698]="NumberStrictFacts",e[e.NumberFacts=16776450]="NumberFacts",e[e.ZeroNumberStrictFacts=12123394]="ZeroNumberStrictFacts",e[e.ZeroNumberFacts=12582146]="ZeroNumberFacts",e[e.NonZeroNumberStrictFacts=7929090]="NonZeroNumberStrictFacts",e[e.NonZeroNumberFacts=16776450]="NonZeroNumberFacts",e[e.BaseBigIntStrictFacts=3734276]="BaseBigIntStrictFacts",e[e.BaseBigIntFacts=12581636]="BaseBigIntFacts",e[e.BigIntStrictFacts=16317188]="BigIntStrictFacts",e[e.BigIntFacts=16775940]="BigIntFacts",e[e.ZeroBigIntStrictFacts=12122884]="ZeroBigIntStrictFacts",e[e.ZeroBigIntFacts=12581636]="ZeroBigIntFacts",e[e.NonZeroBigIntStrictFacts=7928580]="NonZeroBigIntStrictFacts",e[e.NonZeroBigIntFacts=16775940]="NonZeroBigIntFacts",e[e.BaseBooleanStrictFacts=3733256]="BaseBooleanStrictFacts",e[e.BaseBooleanFacts=12580616]="BaseBooleanFacts",e[e.BooleanStrictFacts=16316168]="BooleanStrictFacts",e[e.BooleanFacts=16774920]="BooleanFacts",e[e.FalseStrictFacts=12121864]="FalseStrictFacts",e[e.FalseFacts=12580616]="FalseFacts",e[e.TrueStrictFacts=7927560]="TrueStrictFacts",e[e.TrueFacts=16774920]="TrueFacts",e[e.SymbolStrictFacts=7925520]="SymbolStrictFacts",e[e.SymbolFacts=16772880]="SymbolFacts",e[e.ObjectStrictFacts=7888800]="ObjectStrictFacts",e[e.ObjectFacts=16736160]="ObjectFacts",e[e.FunctionStrictFacts=7880640]="FunctionStrictFacts",e[e.FunctionFacts=16728e3]="FunctionFacts",e[e.VoidFacts=9830144]="VoidFacts",e[e.UndefinedFacts=26607360]="UndefinedFacts",e[e.NullFacts=42917664]="NullFacts",e[e.EmptyObjectStrictFacts=83427327]="EmptyObjectStrictFacts",e[e.EmptyObjectFacts=83886079]="EmptyObjectFacts",e[e.UnknownFacts=83886079]="UnknownFacts",e[e.AllTypeofNE=556800]="AllTypeofNE",e[e.OrFactsMask=8256]="OrFactsMask",e[e.AndFactsMask=134209471]="AndFactsMask",e))(ea||{}),ta=new Map(Object.entries({string:256,number:512,bigint:1024,boolean:2048,symbol:4096,undefined:524288,object:8192,function:16384})),na=(e=>(e[e.Normal=0]="Normal",e[e.Contextual=1]="Contextual",e[e.Inferential=2]="Inferential",e[e.SkipContextSensitive=4]="SkipContextSensitive",e[e.SkipGenericFunctions=8]="SkipGenericFunctions",e[e.IsForSignatureHelp=16]="IsForSignatureHelp",e[e.RestBindingElement=32]="RestBindingElement",e[e.TypeOnly=64]="TypeOnly",e))(na||{}),ra=(e=>(e[e.None=0]="None",e[e.BivariantCallback=1]="BivariantCallback",e[e.StrictCallback=2]="StrictCallback",e[e.IgnoreReturnTypes=4]="IgnoreReturnTypes",e[e.StrictArity=8]="StrictArity",e[e.StrictTopSignature=16]="StrictTopSignature",e[e.Callback=3]="Callback",e))(ra||{}),ia=and(isNotOverload,function isNotAccessor(e){return!isAccessor(e)}),oa=new Map(Object.entries({Uppercase:0,Lowercase:1,Capitalize:2,Uncapitalize:3,NoInfer:4})),aa=class{};function NodeLinks(){this.flags=0}function getNodeId(e){return e.id||(e.id=Xo,Xo++),e.id}function getSymbolId(e){return e.id||(e.id=Qo,Qo++),e.id}function isInstantiatedModule(e,t){const n=getModuleInstanceState(e);return 1===n||t&&2===n}function createTypeChecker(e){var t,n,r,i,o=[],addLazyDiagnostic=e=>{o.push(e)},a=Bn.getSymbolConstructor(),s=Bn.getTypeConstructor(),c=Bn.getSignatureConstructor(),d=0,p=0,u=0,m=0,_=0,f=0,g=!1,y=createSymbolTable(),T=[1],S=e.getCompilerOptions(),x=zn(S),v=Vn(S),b=!!S.experimentalDecorators,C=ir(S),E=getEmitStandardClassFields(S),N=$n(S),k=getStrictOptionValue(S,"strictNullChecks"),F=getStrictOptionValue(S,"strictFunctionTypes"),P=getStrictOptionValue(S,"strictBindCallApply"),D=getStrictOptionValue(S,"strictPropertyInitialization"),I=getStrictOptionValue(S,"strictBuiltinIteratorReturn"),A=getStrictOptionValue(S,"noImplicitAny"),O=getStrictOptionValue(S,"noImplicitThis"),w=getStrictOptionValue(S,"useUnknownInCatchVariables"),L=S.exactOptionalPropertyTypes,M=!!S.noUncheckedSideEffectImports,R=function createCheckBinaryExpression(){const e=createBinaryExpressionTrampoline(function onEnter(e,t,n){t?(t.stackIndex++,t.skip=!1,setLeftType(t,void 0),setLastResult(t,void 0)):t={checkMode:n,skip:!1,stackIndex:0,typeStack:[void 0,void 0]};if(isInJSFile(e)&&getAssignedExpandoInitializer(e))return t.skip=!0,setLastResult(t,checkExpression(e.right,n)),t;!function checkNullishCoalesceOperands(e){if(61!==e.operatorToken.kind)return;if(isBinaryExpression(e.parent)){const{left:t,operatorToken:n}=e.parent;isBinaryExpression(t)&&57===n.kind&&grammarErrorOnNode(t,Ot._0_and_1_operations_cannot_be_mixed_without_parentheses,tokenToString(61),tokenToString(n.kind))}else if(isBinaryExpression(e.left)){const{operatorToken:t}=e.left;57!==t.kind&&56!==t.kind||grammarErrorOnNode(e.left,Ot._0_and_1_operations_cannot_be_mixed_without_parentheses,tokenToString(t.kind),tokenToString(61))}else if(isBinaryExpression(e.right)){const{operatorToken:t}=e.right;56===t.kind&&grammarErrorOnNode(e.right,Ot._0_and_1_operations_cannot_be_mixed_without_parentheses,tokenToString(61),tokenToString(t.kind))}(function checkNullishCoalesceOperandLeft(e){const t=skipOuterExpressions(e.left,63),n=getSyntacticNullishnessSemantics(t);3!==n&&error2(t,1===n?Ot.This_expression_is_always_nullish:Ot.Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish)})(e),function checkNullishCoalesceOperandRight(e){const t=skipOuterExpressions(e.right,63),n=getSyntacticNullishnessSemantics(t);if(function isNotWithinNullishCoalesceExpression(e){return!isBinaryExpression(e.parent)||61!==e.parent.operatorToken.kind}(e))return;1===n?error2(t,Ot.This_expression_is_always_nullish):2===n&&error2(t,Ot.This_expression_is_never_nullish)}(e)}(e);if(64===e.operatorToken.kind&&(211===e.left.kind||210===e.left.kind))return t.skip=!0,setLastResult(t,checkDestructuringAssignment(e.left,checkExpression(e.right,n),n,110===e.right.kind)),t;return t},function onLeft(e,t,n){if(!t.skip)return maybeCheckExpression(t,e)},function onOperator(e,t,n){if(!t.skip){const r=getLastResult(t);h.assertIsDefined(r),setLeftType(t,r),setLastResult(t,void 0);const i=e.kind;if(isLogicalOrCoalescingBinaryOperator(i)){let e=n.parent;for(;218===e.kind||isLogicalOrCoalescingBinaryExpression(e);)e=e.parent;(56===i||isIfStatement(e))&&checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(n.left,r,isIfStatement(e)?e.thenStatement:void 0),isBinaryLogicalOperator(i)&&checkTruthinessOfType(r,n.left)}}},function onRight(e,t,n){if(!t.skip)return maybeCheckExpression(t,e)},function onExit(e,t){let n;if(t.skip)n=getLastResult(t);else{const r=function getLeftType(e){return e.typeStack[e.stackIndex]}(t);h.assertIsDefined(r);const i=getLastResult(t);h.assertIsDefined(i),n=checkBinaryLikeExpressionWorker(e.left,e.operatorToken,e.right,r,i,t.checkMode,e)}return t.skip=!1,setLeftType(t,void 0),setLastResult(t,void 0),t.stackIndex--,n},function foldState(e,t,n){return setLastResult(e,t),e});return(t,n)=>{const r=e(t,n);return h.assertIsDefined(r),r};function maybeCheckExpression(e,t){if(isBinaryExpression(t))return t;setLastResult(e,checkExpression(t,e.checkMode))}function setLeftType(e,t){e.typeStack[e.stackIndex]=t}function getLastResult(e){return e.typeStack[e.stackIndex+1]}function setLastResult(e,t){e.typeStack[e.stackIndex+1]=t}}(),B=function createResolver(){return{getReferencedExportContainer,getReferencedImportDeclaration,getReferencedDeclarationWithCollidingName,isDeclarationWithCollidingName,isValueAliasDeclaration:e=>{const t=getParseTreeNode(e);return!t||!Y||isValueAliasDeclaration(t)},hasGlobalName,isReferencedAliasDeclaration:(e,t)=>{const n=getParseTreeNode(e);return!n||!Y||isReferencedAliasDeclaration(n,t)},hasNodeCheckFlag:(e,t)=>{const n=getParseTreeNode(e);return!!n&&hasNodeCheckFlag(n,t)},isTopLevelValueImportEqualsWithEntityName,isDeclarationVisible,isImplementationOfOverload,requiresAddingImplicitUndefined,isExpandoFunctionDeclaration,getPropertiesOfContainerFunction,createTypeOfDeclaration,createReturnTypeOfSignatureDeclaration,createTypeOfExpression,createLiteralConstValue,isSymbolAccessible,isEntityNameVisible,getConstantValue:e=>{const t=getParseTreeNode(e,canHaveConstantValue);return t?getConstantValue2(t):void 0},getEnumMemberValue:e=>{const t=getParseTreeNode(e,isEnumMember);return t?getEnumMemberValue(t):void 0},collectLinkedAliases,markLinkedReferences:e=>{const t=getParseTreeNode(e);return t&&markLinkedReferences(t,0)},getReferencedValueDeclaration,getReferencedValueDeclarations,getTypeReferenceSerializationKind,isOptionalParameter,isArgumentsLocalBinding,getExternalModuleFileFromDeclaration:e=>{const t=getParseTreeNode(e,hasPossibleExternalModuleReference);return t&&getExternalModuleFileFromDeclaration(t)},isLiteralConstDeclaration,isLateBound:e=>{const t=getParseTreeNode(e,isDeclaration),n=t&&getSymbolOfDeclaration(t);return!!(n&&4096&getCheckFlags(n))},getJsxFactoryEntity,getJsxFragmentFactoryEntity,isBindingCapturedByNode:(e,t)=>{const n=getParseTreeNode(e),r=getParseTreeNode(t);return!!n&&!!r&&(isVariableDeclaration(r)||isBindingElement(r))&&function isBindingCapturedByNode(e,t){const n=getNodeLinks(e);return!!n&&contains(n.capturedBlockScopeBindings,getSymbolOfDeclaration(t))}(n,r)},getDeclarationStatementsForSourceFile:(e,t,n,r)=>{const i=getParseTreeNode(e);h.assert(i&&308===i.kind,"Non-sourcefile node passed into getDeclarationsForSourceFile");const o=getSymbolOfDeclaration(e);return o?(resolveExternalModuleSymbol(o),o.exports?j.symbolTableToDeclarationStatements(o.exports,e,t,n,r):[]):e.locals?j.symbolTableToDeclarationStatements(e.locals,e,t,n,r):[]},isImportRequiredByAugmentation:function isImportRequiredByAugmentation(e){const t=getSourceFileOfNode(e);if(!t.symbol)return!1;const n=getExternalModuleFileFromDeclaration(e);if(!n)return!1;if(n===t)return!1;const r=getExportsOfModule(t.symbol);for(const e of arrayFrom(r.values()))if(e.mergeId){const t=getMergedSymbol(e);if(t.declarations)for(const e of t.declarations){if(getSourceFileOfNode(e)===n)return!0}}return!1},isDefinitelyReferenceToGlobalSymbolObject,createLateBoundIndexSignatures:(e,t,n,r,i)=>{const o=e.symbol,a=getIndexInfosOfType(getTypeOfSymbol(o)),s=getIndexSymbol(o),c=s&&getIndexInfosOfIndexSymbol(s,arrayFrom(getMembersOfSymbol(o).values()));let l;for(const e of[a,c])if(length(e)){l||(l=[]);for(const o of e){if(o.declaration)continue;if(o===Tr)continue;if(o.components){if(every(o.components,e=>{var n;return!!(e.name&&isComputedPropertyName(e.name)&&isEntityNameExpression(e.name.expression)&&t&&0===(null==(n=isEntityNameVisible(e.name.expression,t,!1))?void 0:n.accessibility))})){const s=filter(o.components,e=>!hasLateBindableName(e));l.push(...map(s,s=>{trackComputedName(s.name.expression);const c=e===a?[Wr.createModifier(126)]:void 0;return Wr.createPropertyDeclaration(append(c,o.isReadonly?Wr.createModifier(148):void 0),s.name,(isPropertySignature(s)||isPropertyDeclaration(s)||isMethodSignature(s)||isMethodDeclaration(s)||isGetAccessor(s)||isSetAccessor(s))&&s.questionToken?Wr.createToken(58):void 0,j.typeToTypeNode(getTypeOfSymbol(s.symbol),t,n,r,i),void 0)}));continue}}const s=j.indexInfoToIndexSignatureDeclaration(o,t,n,r,i);s&&e===a&&(s.modifiers||(s.modifiers=Wr.createNodeArray())).unshift(Wr.createModifier(126)),s&&l.push(s)}}return l;function trackComputedName(e){if(!i.trackSymbol)return;const n=getFirstIdentifier(e),r=te(n,n.escapedText,1160127,void 0,!0);r&&i.trackSymbol(r,t,111551)}},symbolToDeclarations:(e,t,n,r,i,o)=>j.symbolToDeclarations(e,t,n,r,i,o)}}(),j=function createNodeBuilder(){return{syntacticBuilderResolver:{evaluateEntityNameExpression,isExpandoFunctionDeclaration,hasLateBindableName,shouldRemoveDeclaration:(e,t)=>!(8&e.internalFlags&&isEntityNameExpression(t.name.expression)&&1&checkComputedPropertyName(t.name).flags),createRecoveryBoundary:e=>function createRecoveryBoundary(e){t&&t.throwIfCancellationRequested&&t.throwIfCancellationRequested();let n,r,i=!1;const o=e.tracker,a=e.trackedSymbols;e.trackedSymbols=void 0;const s=e.encounteredError;return e.tracker=new sa(e,{...o.inner,reportCyclicStructureError(){markError(()=>o.reportCyclicStructureError())},reportInaccessibleThisError(){markError(()=>o.reportInaccessibleThisError())},reportInaccessibleUniqueSymbolError(){markError(()=>o.reportInaccessibleUniqueSymbolError())},reportLikelyUnsafeImportRequiredError(e){markError(()=>o.reportLikelyUnsafeImportRequiredError(e))},reportNonSerializableProperty(e){markError(()=>o.reportNonSerializableProperty(e))},reportPrivateInBaseOfClassExpression(e){markError(()=>o.reportPrivateInBaseOfClassExpression(e))},trackSymbol:(e,t,r)=>((n??(n=[])).push([e,t,r]),!1),moduleResolverHost:e.tracker.moduleResolverHost},e.tracker.moduleResolverHost),{startRecoveryScope,finalizeBoundary,markError,hadError:()=>i};function markError(e){i=!0,e&&(r??(r=[])).push(e)}function startRecoveryScope(){const e=(null==n?void 0:n.length)??0,t=(null==r?void 0:r.length)??0;return()=>{i=!1,n&&(n.length=e),r&&(r.length=t)}}function finalizeBoundary(){return e.tracker=o,e.trackedSymbols=a,e.encounteredError=s,null==r||r.forEach(e=>e()),!i&&(null==n||n.forEach(([t,n,r])=>e.tracker.trackSymbol(t,n,r)),!0)}}(e),isDefinitelyReferenceToGlobalSymbolObject,getAllAccessorDeclarations:getAllAccessorDeclarationsForDeclaration,requiresAddingImplicitUndefined(e,t,n){var r;switch(e.kind){case 173:case 172:case 349:t??(t=getSymbolOfDeclaration(e));const i=getTypeOfSymbol(t);return!!(4&t.flags&&16777216&t.flags&&isOptionalDeclaration(e)&&(null==(r=t.links)?void 0:r.mappedType)&&function containsNonMissingUndefinedType(e){const t=1048576&e.flags?e.types[0]:e;return!!(32768&t.flags)&&t!==Be}(i));case 170:case 342:return requiresAddingImplicitUndefined(e,n);default:h.assertNever(e)}},isOptionalParameter,isUndefinedIdentifierExpression:e=>getSymbolAtLocation(e)===V,isEntityNameVisible:(e,t,n)=>isEntityNameVisible(t,e.enclosingDeclaration,n),serializeExistingTypeNode:(e,t,n)=>function serializeExistingTypeNode(e,t,n){const r=getTypeFromTypeNode2(e,t);if(n&&!someType(r,e=>!!(32768&e.flags))&&canReuseTypeNode(e,t)){const n=W.tryReuseExistingTypeNode(e,t);if(n)return Wr.createUnionTypeNode([n,Wr.createKeywordTypeNode(157)])}return typeToTypeNodeHelper(r,e)}(e,t,!!n),serializeReturnTypeForSignature(e,t,n){const r=e,i=getSignatureFromDeclaration(t);n??(n=getSymbolOfDeclaration(t));const o=r.enclosingSymbolTypes.get(getSymbolId(n))??instantiateType(getReturnTypeOfSignature(i),r.mapper);return serializeInferredReturnTypeForSignature(r,i,o)},serializeTypeOfExpression(e,t){const n=e;return typeToTypeNodeHelper(instantiateType(getWidenedType(getRegularTypeOfExpression(t)),n.mapper),n)},serializeTypeOfDeclaration(e,t,n){var r;const i=e;n??(n=getSymbolOfDeclaration(t));let o=null==(r=i.enclosingSymbolTypes)?void 0:r.get(getSymbolId(n));void 0===o&&(o=98304&n.flags&&179===t.kind?instantiateType(getWriteTypeOfSymbol(n),i.mapper):!n||133120&n.flags?Ie:instantiateType(getWidenedLiteralType(getTypeOfSymbol(n)),i.mapper));return t&&(isParameter(t)||isJSDocParameterTag(t))&&requiresAddingImplicitUndefined(t,i.enclosingDeclaration)&&(o=getOptionalType(o)),serializeInferredTypeForDeclaration(n,i,o)},serializeNameOfParameter:(e,t)=>parameterToParameterDeclarationName(getSymbolOfDeclaration(t),t,e),serializeEntityName(e,t){const n=e,r=getSymbolAtLocation(t,!0);if(r&&isValueSymbolAccessible(r,n.enclosingDeclaration))return symbolToExpression(r,n,1160127)},serializeTypeName:(e,t,n,r)=>function serializeTypeName(e,t,n,r){const i=n?111551:788968,o=resolveEntityName(t,i,!0);if(!o)return;const a=2097152&o.flags?resolveAlias(o):o;return 0!==isSymbolAccessible(o,e.enclosingDeclaration,i,!1).accessibility?void 0:symbolToTypeNode(a,e,i,r)}(e,t,n,r),getJsDocPropertyOverride(e,t,n){const r=e,i=isIdentifier(n.name)?n.name:n.name.right,o=getTypeOfPropertyOfType(getTypeFromTypeNode2(r,t),i.escapedText);return o&&n.typeExpression&&getTypeFromTypeNode2(r,n.typeExpression.type)!==o?typeToTypeNodeHelper(o,r):void 0},enterNewScope(e,t){if(isFunctionLike(t)||isJSDocSignature(t)){const n=getSignatureFromDeclaration(t);return enterNewScope(e,t,n.parameters,n.typeParameters)}return enterNewScope(e,t,void 0,isConditionalTypeNode(t)?getInferTypeParameters(t):[getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(t.typeParameter))])},markNodeReuse:(e,t,n)=>setTextRange2(e,t,n),trackExistingEntityName:(e,t)=>trackExistingEntityName(t,e),trackComputedName(e,t){trackComputedName(t,e.enclosingDeclaration,e)},getModuleSpecifierOverride(e,t,n){const r=e;if(r.bundled||r.enclosingFile!==getSourceFileOfNode(n)){let e=n.text;const i=e,o=getNodeLinks(t).resolvedSymbol,a=t.isTypeOf?111551:788968,s=o&&0===isSymbolAccessible(o,r.enclosingDeclaration,a,!1).accessibility&&lookupSymbolChain(o,r,a,!0)[0];if(s&&isExternalModuleSymbol(s))e=getSpecifierForModuleSymbol(s,r);else{const n=getExternalModuleFileFromDeclaration(t);n&&(e=getSpecifierForModuleSymbol(n.symbol,r))}if(e.includes("/node_modules/")&&(r.encounteredError=!0,r.tracker.reportLikelyUnsafeImportRequiredError&&r.tracker.reportLikelyUnsafeImportRequiredError(e)),e!==i)return e}},canReuseTypeNode:(e,t)=>canReuseTypeNode(e,t),canReuseTypeNodeAnnotation(e,t,n,r,i){var o;const a=e;if(void 0===a.enclosingDeclaration)return!1;r??(r=getSymbolOfDeclaration(t));let s=null==(o=a.enclosingSymbolTypes)?void 0:o.get(getSymbolId(r));void 0===s&&(s=98304&r.flags?179===t.kind?getWriteTypeOfSymbol(r):getTypeOfAccessors(r):isValueSignatureDeclaration(t)?getReturnTypeOfSignature(getSignatureFromDeclaration(t)):getTypeOfSymbol(r));let c=getTypeFromTypeNodeWithoutContext(n);return!!isErrorType(c)||(i&&c&&(c=addOptionality(c,!isParameter(t))),!!c&&function typeNodeIsEquivalentToType(e,t,n){if(n===t)return!0;if(!e)return!1;if((isPropertySignature(e)||isPropertyDeclaration(e))&&e.questionToken)return getTypeWithFacts(t,524288)===n;if(isParameter(e)&&hasEffectiveQuestionToken(e))return getTypeWithFacts(t,524288)===n;return!1}(t,s,c)&&existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(n,s))}},typeToTypeNode:(e,t,n,r,i,o,a,s)=>withContext2(t,n,r,i,o,a,t=>typeToTypeNodeHelper(e,t),s),typePredicateToTypePredicateNode:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>typePredicateToTypePredicateNodeHelper(e,t)),serializeTypeForDeclaration:(e,t,n,r,i,o)=>withContext2(n,r,i,o,void 0,void 0,n=>W.serializeTypeOfDeclaration(e,t,n)),serializeReturnTypeForSignature:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>W.serializeReturnTypeForSignature(e,getSymbolOfDeclaration(e),t)),serializeTypeForExpression:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>W.serializeTypeOfExpression(e,t)),indexInfoToIndexSignatureDeclaration:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>indexInfoToIndexSignatureDeclarationHelper(e,t,void 0)),signatureToSignatureDeclaration:(e,t,n,r,i,o,a,s,c)=>withContext2(n,r,i,o,a,s,n=>signatureToSignatureDeclarationHelper(e,t,n),c),symbolToEntityName:(e,t,n,r,i,o)=>withContext2(n,r,i,o,void 0,void 0,n=>symbolToName(e,n,t,!1)),symbolToExpression:(e,t,n,r,i,o)=>withContext2(n,r,i,o,void 0,void 0,n=>symbolToExpression(e,n,t)),symbolToTypeParameterDeclarations:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>typeParametersToTypeParameterDeclarations(e,t)),symbolToParameterDeclaration:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>symbolToParameterDeclaration(e,t)),typeParameterToDeclaration:(e,t,n,r,i,o,a,s)=>withContext2(t,n,r,i,o,a,t=>typeParameterToDeclaration(e,t),s),symbolTableToDeclarationStatements:(e,t,n,r,i)=>withContext2(t,n,r,i,void 0,void 0,t=>symbolTableToDeclarationStatements(e,t)),symbolToNode:(e,t,n,r,i,o)=>withContext2(n,r,i,o,void 0,void 0,n=>symbolToNode(e,n,t)),symbolToDeclarations:function symbolToDeclarations(e,t,n,r,i,o){return mapDefined(withContext2(void 0,n,void 0,void 0,r,i,t=>function symbolToDeclarationsWorker(e,t){const n=getDeclaredTypeOfSymbol(e);t.typeStack.push(n.id),t.typeStack.push(-1);const r=createSymbolTable([e]),i=symbolTableToDeclarationStatements(r,t);return t.typeStack.pop(),t.typeStack.pop(),i}(e,t),o),n=>{switch(n.kind){case 264:return function simplifyClassDeclaration(e,t){const n=filter(t.declarations,isClassLike),r=n&&n.length>0?n[0]:e,i=-161&getEffectiveModifierFlags(r);isClassExpression(r)&&(e=Wr.updateClassDeclaration(e,e.modifiers,void 0,e.typeParameters,e.heritageClauses,e.members));return Wr.replaceModifiers(e,i)}(n,e);case 267:return simplifyModifiers(n,isEnumDeclaration,e);case 265:return function simplifyInterfaceDeclaration(e,t,n){if(!(64&n))return;return simplifyModifiers(e,isInterfaceDeclaration,t)}(n,e,t);case 268:return simplifyModifiers(n,isModuleDeclaration,e);default:return}})}};function getTypeFromTypeNode2(e,t,n){const r=getTypeFromTypeNodeWithoutContext(t);if(!e.mapper)return r;const i=instantiateType(r,e.mapper);return n&&i!==r?void 0:i}function setTextRange2(e,t,n){if(nodeIsSynthesized(t)&&16&t.flags&&e.enclosingFile&&e.enclosingFile===getSourceFileOfNode(getOriginalNode(t))||(t=Wr.cloneNode(t)),t===n)return t;if(!n)return t;let r=t.original;for(;r&&r!==n;)r=r.original;return r||setOriginalNode(t,n),e.enclosingFile&&e.enclosingFile===getSourceFileOfNode(getOriginalNode(n))?setTextRange(t,n):t}function symbolToNode(e,t,n){if(1&t.internalFlags){if(e.valueDeclaration){const t=getNameOfDeclaration(e.valueDeclaration);if(t&&isComputedPropertyName(t))return t}const r=getSymbolLinks(e).nameType;if(r&&9216&r.flags)return t.enclosingDeclaration=r.symbol.valueDeclaration,Wr.createComputedPropertyName(symbolToExpression(r.symbol,t,n))}return symbolToExpression(e,t,n)}function simplifyModifiers(e,t,n){const r=filter(n.declarations,t),i=-161&getEffectiveModifierFlags(r&&r.length>0?r[0]:e);return Wr.replaceModifiers(e,i)}function withContext2(t,n,r,i,o,a,s,c){const l=(null==i?void 0:i.trackSymbol)?i.moduleResolverHost:4&(r||0)?function createBasicNodeBuilderModuleSpecifierResolutionHost(e){return{getCommonSourceDirectory:e.getCommonSourceDirectory?()=>e.getCommonSourceDirectory():()=>"",getCurrentDirectory:()=>e.getCurrentDirectory(),getSymlinkCache:maybeBind(e,e.getSymlinkCache),getPackageJsonInfoCache:()=>{var t;return null==(t=e.getPackageJsonInfoCache)?void 0:t.call(e)},useCaseSensitiveFileNames:()=>e.useCaseSensitiveFileNames(),redirectTargetsMap:e.redirectTargetsMap,getRedirectFromSourceFile:t=>e.getRedirectFromSourceFile(t),isSourceOfProjectReferenceRedirect:t=>e.isSourceOfProjectReferenceRedirect(t),fileExists:t=>e.fileExists(t),getFileIncludeReasons:()=>e.getFileIncludeReasons(),readFile:e.readFile?t=>e.readFile(t):void 0,getDefaultResolutionModeForFile:t=>e.getDefaultResolutionModeForFile(t),getModeForResolutionAtIndex:(t,n)=>e.getModeForResolutionAtIndex(t,n),getGlobalTypingsCacheLocation:maybeBind(e,e.getGlobalTypingsCacheLocation)}}(e):void 0;n=n||0;const d=o||(1&n?ln:cn),p={enclosingDeclaration:t,enclosingFile:t&&getSourceFileOfNode(t),flags:n,internalFlags:r||0,tracker:void 0,maxTruncationLength:d,maxExpansionDepth:a??-1,encounteredError:!1,suppressReportInferenceFallback:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0,trackedSymbols:void 0,bundled:!!S.outFile&&!!t&&isExternalOrCommonJsModule(getSourceFileOfNode(t)),truncating:!1,usedSymbolNames:void 0,remappedSymbolNames:void 0,remappedSymbolReferences:void 0,reverseMappedStack:void 0,mustCreateTypeParameterSymbolList:!0,typeParameterSymbolList:void 0,mustCreateTypeParametersNamesLookups:!0,typeParameterNames:void 0,typeParameterNamesByText:void 0,typeParameterNamesByTextNextNameCount:void 0,enclosingSymbolTypes:new Map,mapper:void 0,depth:0,typeStack:[],out:{canIncreaseExpansionDepth:!1,truncated:!1}};p.tracker=new sa(p,i,l);const u=s(p);return p.truncating&&1&p.flags&&p.tracker.reportTruncationError(),c&&(c.canIncreaseExpansionDepth=p.out.canIncreaseExpansionDepth,c.truncated=p.out.truncated),p.encounteredError?void 0:u}function addSymbolTypeToContext(e,t,n){const r=getSymbolId(t),i=e.enclosingSymbolTypes.get(r);return e.enclosingSymbolTypes.set(r,n),function restore(){i?e.enclosingSymbolTypes.set(r,i):e.enclosingSymbolTypes.delete(r)}}function saveRestoreFlags(e){const t=e.flags,n=e.internalFlags,r=e.depth;return function restore(){e.flags=t,e.internalFlags=n,e.depth=r}}function checkTruncationLengthIfExpanding(e){return e.maxExpansionDepth>=0&&checkTruncationLength(e)}function checkTruncationLength(e){return e.truncating?e.truncating:e.truncating=e.approximateLength>e.maxTruncationLength}function canPossiblyExpandType(e,t){for(let n=0;n0?1048576&e.flags?Wr.createUnionTypeNode(r):Wr.createIntersectionTypeNode(r):void(n.encounteredError||262144&n.flags||(n.encounteredError=!0))}if(48&c)return h.assert(!!(524288&e.flags)),createAnonymousTypeNode(e);if(4194304&e.flags){const t=e.type;n.approximateLength+=6;const r=typeToTypeNodeHelper(t,n);return Wr.createTypeOperatorNode(143,r)}if(134217728&e.flags){const t=e.texts,r=e.types,i=Wr.createTemplateHead(t[0]),o=Wr.createNodeArray(map(r,(e,i)=>Wr.createTemplateLiteralTypeSpan(typeToTypeNodeHelper(e,n),(iconditionalTypeToTypeNode(e));if(33554432&e.flags){const t=typeToTypeNodeHelper(e.baseType,n),r=isNoInferType(e)&&getGlobalTypeSymbol("NoInfer",!1);return r?symbolToTypeNode(r,n,788968,[t]):t}return h.fail("Should be unreachable.");function conditionalTypeToTypeNode(e){const t=typeToTypeNodeHelper(e.checkType,n);if(n.approximateLength+=15,4&n.flags&&e.root.isDistributive&&!(262144&e.checkType.flags)){const r=createTypeParameter(createSymbol(262144,"T")),i=typeParameterToName(r,n),o=Wr.createTypeReferenceNode(i);n.approximateLength+=37;const a=prependTypeMapping(e.root.checkType,r,e.mapper),s=n.inferTypeParameters;n.inferTypeParameters=e.root.inferTypeParameters;const c=typeToTypeNodeHelper(instantiateType(e.root.extendsType,a),n);n.inferTypeParameters=s;const l=typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(n,e.root.node.trueType),a)),d=typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(n,e.root.node.falseType),a));return Wr.createConditionalTypeNode(t,Wr.createInferTypeNode(Wr.createTypeParameterDeclaration(void 0,Wr.cloneNode(o.typeName))),Wr.createConditionalTypeNode(Wr.createTypeReferenceNode(Wr.cloneNode(i)),typeToTypeNodeHelper(e.checkType,n),Wr.createConditionalTypeNode(o,c,l,d),Wr.createKeywordTypeNode(146)),Wr.createKeywordTypeNode(146))}const r=n.inferTypeParameters;n.inferTypeParameters=e.root.inferTypeParameters;const i=typeToTypeNodeHelper(e.extendsType,n);n.inferTypeParameters=r;const o=typeToTypeNodeOrCircularityElision(getTrueTypeFromConditionalType(e)),a=typeToTypeNodeOrCircularityElision(getFalseTypeFromConditionalType(e));return Wr.createConditionalTypeNode(t,i,o,a)}function typeToTypeNodeOrCircularityElision(e){var t,r,i;return 1048576&e.flags?(null==(t=n.visitedTypes)?void 0:t.has(getTypeId(e)))?(131072&n.flags||(n.encounteredError=!0,null==(i=null==(r=n.tracker)?void 0:r.reportCyclicStructureError)||i.call(r)),createElidedInformationPlaceholder(n)):visitAndTransformType(e,e=>typeToTypeNodeHelper(e,n)):typeToTypeNodeHelper(e,n)}function isMappedTypeHomomorphic(e){return!!getHomomorphicTypeVariable(e)}function isHomomorphicMappedTypeWithNonHomomorphicInstantiation(e){return!!e.target&&isMappedTypeHomomorphic(e.target)&&!isMappedTypeHomomorphic(e)}function createMappedTypeNodeFromType(e){var t;h.assert(!!(524288&e.flags));const r=e.declaration.readonlyToken?Wr.createToken(e.declaration.readonlyToken.kind):void 0,i=e.declaration.questionToken?Wr.createToken(e.declaration.questionToken.kind):void 0;let o,a,s=getTemplateTypeFromMappedType(e);const c=getTypeParameterFromMappedType(e),l=!isMappedTypeWithKeyofConstraintDeclaration(e)&&!(2&getModifiersTypeFromMappedType(e).flags)&&4&n.flags&&!(262144&getConstraintTypeFromMappedType(e).flags&&4194304&(null==(t=getConstraintOfTypeParameter(getConstraintTypeFromMappedType(e)))?void 0:t.flags));if(isMappedTypeWithKeyofConstraintDeclaration(e)){if(isHomomorphicMappedTypeWithNonHomomorphicInstantiation(e)&&4&n.flags){const t=createTypeParameter(createSymbol(262144,"T")),r=typeParameterToName(t,n),i=e.target;a=Wr.createTypeReferenceNode(r),s=instantiateType(getTemplateTypeFromMappedType(i),makeArrayTypeMapper([getTypeParameterFromMappedType(i),getModifiersTypeFromMappedType(i)],[c,t]))}o=Wr.createTypeOperatorNode(143,a||typeToTypeNodeHelper(getModifiersTypeFromMappedType(e),n))}else if(l){const e=typeParameterToName(createTypeParameter(createSymbol(262144,"T")),n);a=Wr.createTypeReferenceNode(e),o=a}else o=typeToTypeNodeHelper(getConstraintTypeFromMappedType(e),n);const d=typeParameterToDeclarationWithConstraint(c,n,o),p=enterNewScope(n,e.declaration,void 0,[getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e.declaration.typeParameter))]),u=e.declaration.nameType?typeToTypeNodeHelper(getNameTypeFromMappedType(e),n):void 0,m=typeToTypeNodeHelper(removeMissingType(s,!!(4&getMappedTypeModifiers(e))),n);p();const _=Wr.createMappedTypeNode(r,d,u,i,m,void 0);n.approximateLength+=10;const f=setEmitFlags(_,1);if(isHomomorphicMappedTypeWithNonHomomorphicInstantiation(e)&&4&n.flags){const t=instantiateType(getConstraintOfTypeParameter(getTypeFromTypeNode2(n,e.declaration.typeParameter.constraint.type))||Le,e.mapper);return Wr.createConditionalTypeNode(typeToTypeNodeHelper(getModifiersTypeFromMappedType(e),n),Wr.createInferTypeNode(Wr.createTypeParameterDeclaration(void 0,Wr.cloneNode(a.typeName),2&t.flags?void 0:typeToTypeNodeHelper(t,n))),f,Wr.createKeywordTypeNode(146))}return l?Wr.createConditionalTypeNode(typeToTypeNodeHelper(getConstraintTypeFromMappedType(e),n),Wr.createInferTypeNode(Wr.createTypeParameterDeclaration(void 0,Wr.cloneNode(a.typeName),Wr.createTypeOperatorNode(143,typeToTypeNodeHelper(getModifiersTypeFromMappedType(e),n)))),f,Wr.createKeywordTypeNode(146)):f}function createAnonymousTypeNode(e,t=!1,r=!1){var i,o;const a=e.id,s=e.symbol;if(s){if(!!(8388608&getObjectFlags(e))){const t=e.node;if(isTypeQueryNode(t)&&getTypeFromTypeNode2(n,t)===e){const e=W.tryReuseExistingTypeNode(n,t);if(e)return e}return(null==(i=n.visitedTypes)?void 0:i.has(a))?createElidedInformationPlaceholder(n):visitAndTransformType(e,createTypeNodeFromObjectType)}const c=isClassInstanceSide(e)?788968:111551;if(isJSConstructor(s.valueDeclaration))return symbolToTypeNode(s,n,c);if(!r&&(32&s.flags&&!t&&!getBaseTypeVariableOfClass(s)&&(!(s.valueDeclaration&&isClassLike(s.valueDeclaration)&&2048&n.flags)||isClassDeclaration(s.valueDeclaration)&&0===isSymbolAccessible(s,n.enclosingDeclaration,c,!1).accessibility)||896&s.flags||shouldWriteTypeOfFunctionSymbol())){if(!shouldExpandType(e,n))return symbolToTypeNode(s,n,c);n.depth+=1}if(null==(o=n.visitedTypes)?void 0:o.has(a)){const t=function getTypeAliasForTypeLiteral(e){if(e.symbol&&2048&e.symbol.flags&&e.symbol.declarations){const t=walkUpParenthesizedTypes(e.symbol.declarations[0].parent);if(isTypeAliasDeclaration(t))return getSymbolOfDeclaration(t)}return}(e);return t?symbolToTypeNode(t,n,788968):createElidedInformationPlaceholder(n)}return visitAndTransformType(e,createTypeNodeFromObjectType)}return createTypeNodeFromObjectType(e);function shouldWriteTypeOfFunctionSymbol(){var e;const t=!!(8192&s.flags)&&some(s.declarations,e=>isStatic(e)&&!isLateBindableIndexSignature(getNameOfDeclaration(e))),r=!!(16&s.flags)&&(s.parent||forEach(s.declarations,e=>308===e.parent.kind||269===e.parent.kind));if(t||r)return(!!(4096&n.flags)||(null==(e=n.visitedTypes)?void 0:e.has(a)))&&(!(8&n.flags)||isValueSymbolAccessible(s,n.enclosingDeclaration))}}function visitAndTransformType(e,t){var r,i,o;const a=e.id,s=16&getObjectFlags(e)&&e.symbol&&32&e.symbol.flags,c=4&getObjectFlags(e)&&e.node?"N"+getNodeId(e.node):16777216&e.flags?"N"+getNodeId(e.root.node):e.symbol?(s?"+":"")+getSymbolId(e.symbol):void 0;n.visitedTypes||(n.visitedTypes=new Set),c&&!n.symbolDepth&&(n.symbolDepth=new Map);const l=n.maxExpansionDepth>=0?void 0:n.enclosingDeclaration&&getNodeLinks(n.enclosingDeclaration),d=`${getTypeId(e)}|${n.flags}|${n.internalFlags}`;l&&(l.serializedTypes||(l.serializedTypes=new Map));const p=null==(r=null==l?void 0:l.serializedTypes)?void 0:r.get(d);if(p)return null==(i=p.trackedSymbols)||i.forEach(([e,t,r])=>n.tracker.trackSymbol(e,t,r)),p.truncating&&(n.truncating=!0),n.approximateLength+=p.addedLength,deepCloneOrReuseNode(p.node);let u;if(c){if(u=n.symbolDepth.get(c)||0,u>10)return createElidedInformationPlaceholder(n);n.symbolDepth.set(c,u+1)}n.visitedTypes.add(a);const m=n.trackedSymbols;n.trackedSymbols=void 0;const _=n.approximateLength,f=t(e),g=n.approximateLength-_;return n.reportedDiagnostic||n.encounteredError||null==(o=null==l?void 0:l.serializedTypes)||o.set(d,{node:f,truncating:n.truncating,addedLength:g,trackedSymbols:n.trackedSymbols}),n.visitedTypes.delete(a),c&&n.symbolDepth.set(c,u),n.trackedSymbols=m,f;function deepCloneOrReuseNode(e){return nodeIsSynthesized(e)||getParseTreeNode(e)!==e?setTextRange2(n,Wr.cloneNode(visitEachChild(e,deepCloneOrReuseNode,void 0,deepCloneOrReuseNodes,deepCloneOrReuseNode)),e):e}function deepCloneOrReuseNodes(e,t,n,r,i){return e&&0===e.length?setTextRange(Wr.createNodeArray(void 0,e.hasTrailingComma),e):visitNodes2(e,t,n,r,i)}}function createTypeNodeFromObjectType(e){if(isGenericMappedType(e)||e.containsError)return createMappedTypeNodeFromType(e);const t=resolveStructuredTypeMembers(e);if(!t.properties.length&&!t.indexInfos.length){if(!t.callSignatures.length&&!t.constructSignatures.length)return n.approximateLength+=2,setEmitFlags(Wr.createTypeLiteralNode(void 0),1);if(1===t.callSignatures.length&&!t.constructSignatures.length){return signatureToSignatureDeclarationHelper(t.callSignatures[0],185,n)}if(1===t.constructSignatures.length&&!t.callSignatures.length){return signatureToSignatureDeclarationHelper(t.constructSignatures[0],186,n)}}const r=filter(t.constructSignatures,e=>!!(4&e.flags));if(some(r)){const e=map(r,getOrCreateTypeFromSignature);return t.callSignatures.length+(t.constructSignatures.length-r.length)+t.indexInfos.length+(2048&n.flags?countWhere(t.properties,e=>!(4194304&e.flags)):length(t.properties))&&e.push(function getResolvedTypeWithoutAbstractConstructSignatures(e){if(0===e.constructSignatures.length)return e;if(e.objectTypeWithoutAbstractConstructSignatures)return e.objectTypeWithoutAbstractConstructSignatures;const t=filter(e.constructSignatures,e=>!(4&e.flags));if(e.constructSignatures===t)return e;const n=createAnonymousType(e.symbol,e.members,e.callSignatures,some(t)?t:l,e.indexInfos);return e.objectTypeWithoutAbstractConstructSignatures=n,n.objectTypeWithoutAbstractConstructSignatures=n,n}(t)),typeToTypeNodeHelper(getIntersectionType(e),n)}const i=saveRestoreFlags(n);n.flags|=4194304;const o=createTypeNodesFromResolvedType(t);i();const a=Wr.createTypeLiteralNode(o);return n.approximateLength+=2,setEmitFlags(a,1024&n.flags?0:1),a}function typeReferenceToTypeNode(e){let t=getTypeArguments(e);if(e.target===Vt||e.target===qt){if(2&n.flags){const r=typeToTypeNodeHelper(t[0],n);return Wr.createTypeReferenceNode(e.target===Vt?"Array":"ReadonlyArray",[r])}const r=typeToTypeNodeHelper(t[0],n),i=Wr.createArrayTypeNode(r);return e.target===Vt?i:Wr.createTypeOperatorNode(148,i)}if(!(8&e.target.objectFlags)){if(2048&n.flags&&e.symbol.valueDeclaration&&isClassLike(e.symbol.valueDeclaration)&&!isValueSymbolAccessible(e.symbol,n.enclosingDeclaration))return createAnonymousTypeNode(e);{const r=e.target.outerTypeParameters;let i,o,a=0;if(r){const e=r.length;for(;a0){let r=0;if(e.target.typeParameters&&(r=Math.min(e.target.typeParameters.length,t.length),(isReferenceToType2(e,getGlobalIterableType(!1))||isReferenceToType2(e,getGlobalIterableIteratorType(!1))||isReferenceToType2(e,getGlobalAsyncIterableType(!1))||isReferenceToType2(e,getGlobalAsyncIterableIteratorType(!1)))&&(!e.node||!isTypeReferenceNode(e.node)||!e.node.typeArguments||e.node.typeArguments.length0;){const n=t[r-1],i=getDefaultFromTypeParameter(e.target.typeParameters[r-1]);if(!i||!isTypeIdenticalTo(n,i))break;r--}o=mapToTypeNodes(t.slice(a,r),n)}const s=saveRestoreFlags(n);n.flags|=16;const c=symbolToTypeNode(e.symbol,n,788968,o);return s(),i?appendReferenceToType(i,c):c}}if(t=sameMap(t,(t,n)=>removeMissingType(t,!!(2&e.target.elementFlags[n]))),t.length>0){const r=getTypeReferenceArity(e),i=mapToTypeNodes(t.slice(0,r),n);if(i){const{labeledElementDeclarations:t}=e.target;for(let n=0;n{var n;return!!(e.name&&isComputedPropertyName(e.name)&&isEntityNameExpression(e.name.expression)&&t.enclosingDeclaration&&0===(null==(n=isEntityNameVisible(e.name.expression,t.enclosingDeclaration,!1))?void 0:n.accessibility))})){return map(filter(e.components,e=>!hasLateBindableName(e)),r=>(trackComputedName(r.name.expression,t.enclosingDeclaration,t),setTextRange2(t,Wr.createPropertySignature(e.isReadonly?[Wr.createModifier(148)]:void 0,r.name,(isPropertySignature(r)||isPropertyDeclaration(r)||isMethodSignature(r)||isMethodDeclaration(r)||isGetAccessor(r)||isSetAccessor(r))&&r.questionToken?Wr.createToken(58):void 0,n||typeToTypeNodeHelper(getTypeOfSymbol(r.symbol),t)),r)))}}return[indexInfoToIndexSignatureDeclarationHelper(e,t,n)]}function createTypeNodesFromResolvedType(e){if(checkTruncationLength(n))return n.out.truncated=!0,1&n.flags?[addSyntheticTrailingComment(Wr.createNotEmittedTypeElement(),3,"elided")]:[Wr.createPropertySignature(void 0,"...",void 0,void 0)];n.typeStack.push(-1);const t=[];for(const r of e.callSignatures)t.push(signatureToSignatureDeclarationHelper(r,180,n));for(const r of e.constructSignatures)4&r.flags||t.push(signatureToSignatureDeclarationHelper(r,181,n));for(const r of e.indexInfos)t.push(...indexInfoToObjectComputedNamesOrSignatureDeclaration(r,n,1024&e.objectFlags?createElidedInformationPlaceholder(n):void 0));const r=e.properties;if(!r)return n.typeStack.pop(),t;let i=0;for(const e of r)if(!(isExpanding(n)&&4194304&e.flags)){if(i++,2048&n.flags){if(4194304&e.flags)continue;6&getDeclarationModifierFlagsFromSymbol(e)&&n.tracker.reportPrivateInBaseOfClassExpression&&n.tracker.reportPrivateInBaseOfClassExpression(unescapeLeadingUnderscores(e.escapedName))}if(checkTruncationLength(n)&&i+2!(32768&e.flags)),0);for(const i of r){const r=signatureToSignatureDeclarationHelper(i,174,t,{name:s,questionToken:c});n.push(preserveCommentsOn(r,i.declaration||e.valueDeclaration))}if(r.length||!c)return}let d;shouldUsePlaceholderForProperty(e,t)?d=createElidedInformationPlaceholder(t):(i&&(t.reverseMappedStack||(t.reverseMappedStack=[]),t.reverseMappedStack.push(e)),d=o?serializeTypeForDeclaration(t,void 0,o,e):Wr.createKeywordTypeNode(133),i&&t.reverseMappedStack.pop());const p=isReadonlySymbol(e)?[Wr.createToken(148)]:void 0;p&&(t.approximateLength+=9);const u=Wr.createPropertySignature(p,s,c,d);function preserveCommentsOn(n,r){var i;const o=null==(i=e.declarations)?void 0:i.find(e=>349===e.kind);if(o){const e=getTextOfJSDocComment(o.comment);e&&setSyntheticLeadingComments(n,[{kind:3,text:"*\n * "+e.replace(/\n/g,"\n * ")+"\n ",pos:-1,end:-1,hasTrailingNewLine:!0}])}else r&&setCommentRange2(t,n,r);return n}n.push(preserveCommentsOn(u,e.valueDeclaration))}function setCommentRange2(e,t,n){return e.enclosingFile&&e.enclosingFile===getSourceFileOfNode(n)?setCommentRange(t,n):t}function mapToTypeNodes(e,t,n){if(some(e)){if(checkTruncationLength(t)){if(t.out.truncated=!0,!n)return[1&t.flags?addSyntheticLeadingComment(Wr.createKeywordTypeNode(133),3,"elided"):Wr.createTypeReferenceNode("...",void 0)];if(e.length>2)return[typeToTypeNodeHelper(e[0],t),1&t.flags?addSyntheticLeadingComment(Wr.createKeywordTypeNode(133),3,`... ${e.length-2} more elided ...`):Wr.createTypeReferenceNode(`... ${e.length-2} more ...`,void 0),typeToTypeNodeHelper(e[e.length-1],t)]}const r=!(64&t.flags)?createMultiMap():void 0,i=[];let o=0;for(const n of e){if(o++,checkTruncationLength(t)&&o+2{if(!arrayIsHomogeneous(e,([e],[t])=>function typesAreSameReference(e,t){return e===t||!!e.symbol&&e.symbol===t.symbol||!!e.aliasSymbol&&e.aliasSymbol===t.aliasSymbol}(e,t)))for(const[n,r]of e)i[r]=typeToTypeNodeHelper(n,t)}),e()}return i}}function indexInfoToIndexSignatureDeclarationHelper(e,t,n){const r=getNameFromIndexInfo(e)||"x",i=typeToTypeNodeHelper(e.keyType,t),o=Wr.createParameterDeclaration(void 0,void 0,r,void 0,i,void 0);return n||(n=typeToTypeNodeHelper(e.type||ke,t)),e.type||2097152&t.flags||(t.encounteredError=!0),t.approximateLength+=r.length+4,Wr.createIndexSignature(e.isReadonly?[Wr.createToken(148)]:void 0,[o],n)}function signatureToSignatureDeclarationHelper(e,t,n,r){var i;let o,a;const s=getExpandedParameters(e,!0)[0],c=enterNewScope(n,e.declaration,s,e.typeParameters,e.parameters,e.mapper);n.approximateLength+=3,32&n.flags&&e.target&&e.mapper&&e.target.typeParameters?a=e.target.typeParameters.map(t=>typeToTypeNodeHelper(instantiateType(t,e.mapper),n)):o=e.typeParameters&&e.typeParameters.map(e=>typeParameterToDeclaration(e,n));const l=saveRestoreFlags(n);n.flags&=-257;const d=(some(s,e=>e!==s[s.length-1]&&!!(32768&getCheckFlags(e)))?e.parameters:s).map(e=>symbolToParameterDeclaration(e,n,177===t)),p=33554432&n.flags?void 0:function tryGetThisParameterDeclaration(e,t){if(e.thisParameter)return symbolToParameterDeclaration(e.thisParameter,t);if(e.declaration&&isInJSFile(e.declaration)){const n=getJSDocThisTag(e.declaration);if(n&&n.typeExpression)return Wr.createParameterDeclaration(void 0,void 0,"this",void 0,typeToTypeNodeHelper(getTypeFromTypeNode2(t,n.typeExpression),t))}}(e,n);p&&d.unshift(p),l();const u=function serializeReturnTypeForSignature(e,t){const n=256&e.flags,r=saveRestoreFlags(e);n&&(e.flags&=-257);let i;const o=getReturnTypeOfSignature(t);if(!n||!isTypeAny(o)){if(t.declaration&&!nodeIsSynthesized(t.declaration)&&!canPossiblyExpandType(o,e)){const n=getSymbolOfDeclaration(t.declaration),r=addSymbolTypeToContext(e,n,o);i=W.serializeReturnTypeForSignature(t.declaration,n,e),r()}i||(i=serializeInferredReturnTypeForSignature(e,t,o))}i||n||(i=Wr.createKeywordTypeNode(133));return r(),i}(n,e);let m=null==r?void 0:r.modifiers;if(186===t&&4&e.flags){const e=modifiersToFlags(m);m=Wr.createModifiersFromModifierFlags(64|e)}const _=180===t?Wr.createCallSignature(o,d,u):181===t?Wr.createConstructSignature(o,d,u):174===t?Wr.createMethodSignature(m,(null==r?void 0:r.name)??Wr.createIdentifier(""),null==r?void 0:r.questionToken,o,d,u):175===t?Wr.createMethodDeclaration(m,void 0,(null==r?void 0:r.name)??Wr.createIdentifier(""),void 0,o,d,u,void 0):177===t?Wr.createConstructorDeclaration(m,d,void 0):178===t?Wr.createGetAccessorDeclaration(m,(null==r?void 0:r.name)??Wr.createIdentifier(""),d,u,void 0):179===t?Wr.createSetAccessorDeclaration(m,(null==r?void 0:r.name)??Wr.createIdentifier(""),d,void 0):182===t?Wr.createIndexSignature(m,d,u):318===t?Wr.createJSDocFunctionType(d,u):185===t?Wr.createFunctionTypeNode(o,d,u??Wr.createTypeReferenceNode(Wr.createIdentifier(""))):186===t?Wr.createConstructorTypeNode(m,o,d,u??Wr.createTypeReferenceNode(Wr.createIdentifier(""))):263===t?Wr.createFunctionDeclaration(m,void 0,(null==r?void 0:r.name)?cast(r.name,isIdentifier):Wr.createIdentifier(""),o,d,u,void 0):219===t?Wr.createFunctionExpression(m,void 0,(null==r?void 0:r.name)?cast(r.name,isIdentifier):Wr.createIdentifier(""),o,d,u,Wr.createBlock([])):220===t?Wr.createArrowFunction(m,o,d,u,void 0,Wr.createBlock([])):h.assertNever(t);if(a&&(_.typeArguments=Wr.createNodeArray(a)),324===(null==(i=e.declaration)?void 0:i.kind)&&340===e.declaration.parent.kind){addSyntheticLeadingComment(_,3,getTextOfNode(e.declaration.parent.parent,!0).slice(2,-2).split(/\r\n|\n|\r/).map(e=>e.replace(/^\s+/," ")).join("\n"),!0)}return null==c||c(),_}function enterNewScope(e,t,n,r,i,o){const a=cloneNodeBuilderContext(e);let s,c;const d=e.enclosingDeclaration,p=e.mapper;if(o&&(e.mapper=o),e.enclosingDeclaration&&t){let pushFakeScope2=function(t,n){let r;h.assert(e.enclosingDeclaration),getNodeLinks(e.enclosingDeclaration).fakeScopeForSignatureDeclaration===t?r=e.enclosingDeclaration:e.enclosingDeclaration.parent&&getNodeLinks(e.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration===t&&(r=e.enclosingDeclaration.parent),h.assertOptionalNode(r,isBlock);const i=(null==r?void 0:r.locals)??createSymbolTable();let o,a;if(n((e,t)=>{if(r){const t=i.get(e);t?a=append(a,{name:e,oldSymbol:t}):o=append(o,e)}i.set(e,t)}),r)return function undo(){forEach(o,e=>i.delete(e)),forEach(a,e=>i.set(e.name,e.oldSymbol))};{const n=Wr.createBlock(l);getNodeLinks(n).fakeScopeForSignatureDeclaration=t,n.locals=i,setParent(n,e.enclosingDeclaration),e.enclosingDeclaration=n}};s=some(n)?pushFakeScope2("params",e=>{if(n)for(let t=0;t{return isParameter(t)&&isBindingPattern(t.name)?(bindPattern(t.name),!0):void 0;function bindPattern(t){forEach(t.elements,t=>{switch(t.kind){case 233:return;case 209:return function bindElement(t){if(isBindingPattern(t.name))return bindPattern(t.name);const n=getSymbolOfDeclaration(t);e(n.escapedName,n)}(t);default:return h.assertNever(t)}})}})||e(r.escapedName,r)}}):void 0,4&e.flags&&some(r)&&(c=pushFakeScope2("typeParams",t=>{for(const n of r??l){t(typeParameterToName(n,e).escapedText,n.symbol)}}))}return()=>{null==s||s(),null==c||c(),a(),e.enclosingDeclaration=d,e.mapper=p}}function typeParameterToDeclarationWithConstraint(e,t,n){const r=saveRestoreFlags(t);t.flags&=-513;const i=Wr.createModifiersFromModifierFlags(getTypeParameterModifiers(e)),o=typeParameterToName(e,t),a=getDefaultFromTypeParameter(e),s=a&&typeToTypeNodeHelper(a,t);return r(),Wr.createTypeParameterDeclaration(i,o,n,s)}function typeParameterToDeclaration(e,t,n=getConstraintOfTypeParameter(e)){const r=n&&function typeToTypeNodeHelperWithPossibleReusableTypeNode(e,t,n){return!canPossiblyExpandType(e,n)&&t&&getTypeFromTypeNode2(n,t)===e&&W.tryReuseExistingTypeNode(n,t)||typeToTypeNodeHelper(e,n)}(n,getConstraintDeclaration(e),t);return typeParameterToDeclarationWithConstraint(e,t,r)}function typePredicateToTypePredicateNodeHelper(e,t){const n=2===e.kind||3===e.kind?Wr.createToken(131):void 0,r=1===e.kind||3===e.kind?setEmitFlags(Wr.createIdentifier(e.parameterName),16777216):Wr.createThisTypeNode(),i=e.type&&typeToTypeNodeHelper(e.type,t);return Wr.createTypePredicateNode(n,r,i)}function getEffectiveParameterDeclaration(e){const t=getDeclarationOfKind(e,170);return t||(isTransientSymbol(e)?void 0:getDeclarationOfKind(e,342))}function symbolToParameterDeclaration(e,t,n){const r=getEffectiveParameterDeclaration(e),i=serializeTypeForDeclaration(t,r,getTypeOfSymbol(e),e),o=!(8192&t.flags)&&n&&r&&canHaveModifiers(r)?map(getModifiers(r),Wr.cloneNode):void 0,a=r&&isRestParameter(r)||32768&getCheckFlags(e)?Wr.createToken(26):void 0,s=parameterToParameterDeclarationName(e,r,t),c=r&&isOptionalParameter(r)||16384&getCheckFlags(e)?Wr.createToken(58):void 0,l=Wr.createParameterDeclaration(o,a,s,c,i,void 0);return t.approximateLength+=symbolName(e).length+3,l}function parameterToParameterDeclarationName(e,t,n){return t&&t.name?80===t.name.kind?setEmitFlags(Wr.cloneNode(t.name),16777216):167===t.name.kind?setEmitFlags(Wr.cloneNode(t.name.right),16777216):function cloneBindingName(e){return function elideInitializerAndSetEmitFlags(e){n.tracker.canTrackSymbol&&isComputedPropertyName(e)&&isLateBindableName(e)&&trackComputedName(e.expression,n.enclosingDeclaration,n);let t=visitEachChild(e,elideInitializerAndSetEmitFlags,void 0,void 0,elideInitializerAndSetEmitFlags);isBindingElement(t)&&(t=Wr.updateBindingElement(t,t.dotDotDotToken,t.propertyName,t.name,void 0));nodeIsSynthesized(t)||(t=Wr.cloneNode(t));return setEmitFlags(t,16777217)}(e)}(t.name):symbolName(e)}function trackComputedName(e,t,n){if(!n.tracker.canTrackSymbol)return;const r=getFirstIdentifier(e),i=te(t,r.escapedText,1160127,void 0,!0);if(i)n.tracker.trackSymbol(i,t,111551);else{const e=te(r,r.escapedText,1160127,void 0,!0);e&&n.tracker.trackSymbol(e,t,111551)}}function lookupSymbolChain(e,t,n,r){return t.tracker.trackSymbol(e,t.enclosingDeclaration,n),lookupSymbolChainWorker(e,t,n,r)}function lookupSymbolChainWorker(e,t,n,r){let i;return 262144&e.flags||!(t.enclosingDeclaration||64&t.flags)||4&t.internalFlags?i=[e]:(i=h.checkDefined(function getSymbolChain(e,n,i){let o,a=getAccessibleSymbolChain(e,t.enclosingDeclaration,n,!!(128&t.flags));if(!a||needsQualification(a[0],t.enclosingDeclaration,1===a.length?n:getQualifiedLeftMeaning(n))){const r=getContainersOfSymbol(a?a[0]:e,t.enclosingDeclaration,n);if(length(r)){o=r.map(e=>some(e.declarations,hasNonGlobalAugmentationExternalModuleSymbol)?getSpecifierForModuleSymbol(e,t):void 0);const i=r.map((e,t)=>t);i.sort(sortByBestName);const s=i.map(e=>r[e]);for(const t of s){const r=getSymbolChain(t,getQualifiedLeftMeaning(n),!1);if(r){if(t.exports&&t.exports.get("export=")&&getSymbolIfSameReference(t.exports.get("export="),e)){a=r;break}a=r.concat(a||[getAliasForSymbolInContainer(t,e)||e]);break}}}}if(a)return a;if(i||!(6144&e.flags)){if(!i&&!r&&forEach(e.declarations,hasNonGlobalAugmentationExternalModuleSymbol))return;return[e]}function sortByBestName(e,t){const n=o[e],r=o[t];if(n&&r){const e=pathIsRelative(r);return pathIsRelative(n)===e?countPathComponents(n)-countPathComponents(r):e?-1:1}return 0}}(e,n,!0)),h.assert(i&&i.length>0)),i}function typeParametersToTypeParameterDeclarations(e,t){let n;return 524384&getTargetSymbol(e).flags&&(n=Wr.createNodeArray(map(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e),e=>typeParameterToDeclaration(e,t)))),n}function lookupTypeParameterNodes(e,t,n){var r;h.assert(e&&0<=t&&tgetMappedType(e,o.links.mapper)),n)}else a=typeParametersToTypeParameterDeclarations(i,n)}return a}function getTopmostIndexedAccessType(e){return isIndexedAccessTypeNode(e.objectType)?getTopmostIndexedAccessType(e.objectType):e}function getSpecifierForModuleSymbol(t,n,r){let i=getDeclarationOfKind(t,308);if(!i){const e=firstDefined(t.declarations,e=>getFileSymbolIfFileSymbolExportEqualsContainer(e,t));e&&(i=getDeclarationOfKind(e,308))}if(i&&void 0!==i.moduleName)return i.moduleName;if(!i&&Go.test(t.escapedName))return t.escapedName.substring(1,t.escapedName.length-1);if(!n.enclosingFile||!n.tracker.moduleResolverHost)return Go.test(t.escapedName)?t.escapedName.substring(1,t.escapedName.length-1):getSourceFileOfNode(getNonAugmentationDeclaration(t)).fileName;const o=getOriginalNode(n.enclosingDeclaration),a=canHaveModuleSpecifier(o)?tryGetModuleSpecifierFromDeclaration(o):void 0,s=n.enclosingFile,c=r||a&&e.getModeForUsageLocation(s,a)||s&&e.getDefaultResolutionModeForFile(s),l=createModeAwareCacheKey(s.path,c),d=getSymbolLinks(t);let p=d.specifierCache&&d.specifierCache.get(l);if(!p){const e=!!S.outFile,{moduleResolverHost:i}=n.tracker,o=e?{...S,baseUrl:i.getCommonSourceDirectory()}:S;p=first(getModuleSpecifiers(t,re,o,s,i,{importModuleSpecifierPreference:e?"non-relative":"project-relative",importModuleSpecifierEnding:e?"minimal":99===c?"js":void 0},{overrideImportMode:r})),d.specifierCache??(d.specifierCache=new Map),d.specifierCache.set(l,p)}return p}function symbolToEntityNameNode(e){const t=Wr.createIdentifier(unescapeLeadingUnderscores(e.escapedName));return e.parent?Wr.createQualifiedName(symbolToEntityNameNode(e.parent),t):t}function symbolToTypeNode(e,t,n,r){const i=lookupSymbolChain(e,t,n,!(16384&t.flags)),o=111551===n;if(some(i[0].declarations,hasNonGlobalAugmentationExternalModuleSymbol)){const e=i.length>1?createAccessFromSymbolChain(i,i.length-1,1):void 0,n=r||lookupTypeParameterNodes(i,0,t),a=getSourceFileOfNode(getOriginalNode(t.enclosingDeclaration)),s=getSourceFileOfModule(i[0]);let c,l;if(3!==qn(S)&&99!==qn(S)||99===(null==s?void 0:s.impliedNodeFormat)&&s.impliedNodeFormat!==(null==a?void 0:a.impliedNodeFormat)&&(c=getSpecifierForModuleSymbol(i[0],t,99),l=Wr.createImportAttributes(Wr.createNodeArray([Wr.createImportAttribute(Wr.createStringLiteral("resolution-mode"),Wr.createStringLiteral("import"))]))),c||(c=getSpecifierForModuleSymbol(i[0],t)),!(67108864&t.flags)&&1!==qn(S)&&c.includes("/node_modules/")){const e=c;if(3===qn(S)||99===qn(S)){const n=99===(null==a?void 0:a.impliedNodeFormat)?1:99;c=getSpecifierForModuleSymbol(i[0],t,n),c.includes("/node_modules/")?c=e:l=Wr.createImportAttributes(Wr.createNodeArray([Wr.createImportAttribute(Wr.createStringLiteral("resolution-mode"),Wr.createStringLiteral(99===n?"import":"require"))]))}l||(t.encounteredError=!0,t.tracker.reportLikelyUnsafeImportRequiredError&&t.tracker.reportLikelyUnsafeImportRequiredError(e))}const d=Wr.createLiteralTypeNode(Wr.createStringLiteral(c));if(t.approximateLength+=c.length+10,!e||isEntityName(e)){if(e){setIdentifierTypeArguments(isIdentifier(e)?e:e.right,void 0)}return Wr.createImportTypeNode(d,l,e,n,o)}{const t=getTopmostIndexedAccessType(e),r=t.objectType.typeName;return Wr.createIndexedAccessTypeNode(Wr.createImportTypeNode(d,l,r,n,o),t.indexType)}}const a=createAccessFromSymbolChain(i,i.length-1,0);if(isIndexedAccessTypeNode(a))return a;if(o)return Wr.createTypeQueryNode(a);{const e=isIdentifier(a)?a:a.right,t=getIdentifierTypeArguments(e);return setIdentifierTypeArguments(e,void 0),Wr.createTypeReferenceNode(a,t)}function createAccessFromSymbolChain(e,n,i){const o=n===e.length-1?r:lookupTypeParameterNodes(e,n,t),a=e[n],s=e[n-1];let c;if(0===n)t.flags|=16777216,c=getNameOfSymbolAsWritten(a,t),t.approximateLength+=(c?c.length:0)+1,t.flags^=16777216;else if(s&&getExportsOfSymbol(s)){forEachEntry(getExportsOfSymbol(s),(e,t)=>{if(getSymbolIfSameReference(e,a)&&!isLateBoundName(t)&&"export="!==t)return c=unescapeLeadingUnderscores(t),!0})}if(void 0===c){const r=firstDefined(a.declarations,getNameOfDeclaration);if(r&&isComputedPropertyName(r)&&isEntityName(r.expression)){const t=createAccessFromSymbolChain(e,n-1,i);return isEntityName(t)?Wr.createIndexedAccessTypeNode(Wr.createParenthesizedType(Wr.createTypeQueryNode(t)),Wr.createTypeQueryNode(r.expression)):t}c=getNameOfSymbolAsWritten(a,t)}if(t.approximateLength+=c.length+1,!(16&t.flags)&&s&&getMembersOfSymbol(s)&&getMembersOfSymbol(s).get(a.escapedName)&&getSymbolIfSameReference(getMembersOfSymbol(s).get(a.escapedName),a)){const t=createAccessFromSymbolChain(e,n-1,i);return isIndexedAccessTypeNode(t)?Wr.createIndexedAccessTypeNode(t,Wr.createLiteralTypeNode(Wr.createStringLiteral(c))):Wr.createIndexedAccessTypeNode(Wr.createTypeReferenceNode(t,o),Wr.createLiteralTypeNode(Wr.createStringLiteral(c)))}const l=setEmitFlags(Wr.createIdentifier(c),16777216);if(o&&setIdentifierTypeArguments(l,Wr.createNodeArray(o)),l.symbol=a,n>i){const t=createAccessFromSymbolChain(e,n-1,i);return isEntityName(t)?Wr.createQualifiedName(t,l):h.fail("Impossible construct - an export of an indexed access cannot be reachable")}return l}}function typeParameterShadowsOtherTypeParameterInScope(e,t,n){const r=te(t.enclosingDeclaration,e,788968,void 0,!1);return!!(r&&262144&r.flags)&&r!==n.symbol}function typeParameterToName(e,t){var n,r,i,o;if(4&t.flags&&t.typeParameterNames){const n=t.typeParameterNames.get(getTypeId(e));if(n)return n}let a=symbolToName(e.symbol,t,788968,!0);if(!(80&a.kind))return Wr.createIdentifier("(Missing type parameter)");const s=null==(r=null==(n=e.symbol)?void 0:n.declarations)?void 0:r[0];if(s&&isTypeParameterDeclaration(s)&&(a=setTextRange2(t,a,s.name)),4&t.flags){const n=a.escapedText;let r=(null==(i=t.typeParameterNamesByTextNextNameCount)?void 0:i.get(n))||0,s=n;for(;(null==(o=t.typeParameterNamesByText)?void 0:o.has(s))||typeParameterShadowsOtherTypeParameterInScope(s,t,e);)r++,s=`${n}_${r}`;if(s!==n){const e=getIdentifierTypeArguments(a);a=Wr.createIdentifier(s),setIdentifierTypeArguments(a,e)}t.mustCreateTypeParametersNamesLookups&&(t.mustCreateTypeParametersNamesLookups=!1,t.typeParameterNames=new Map(t.typeParameterNames),t.typeParameterNamesByTextNextNameCount=new Map(t.typeParameterNamesByTextNextNameCount),t.typeParameterNamesByText=new Set(t.typeParameterNamesByText)),t.typeParameterNamesByTextNextNameCount.set(n,r),t.typeParameterNames.set(getTypeId(e),a),t.typeParameterNamesByText.add(s)}return a}function symbolToName(e,t,n,r){const i=lookupSymbolChain(e,t,n);return!r||1===i.length||t.encounteredError||65536&t.flags||(t.encounteredError=!0),function createEntityNameFromSymbolChain(e,n){const r=lookupTypeParameterNodes(e,n,t),i=e[n];0===n&&(t.flags|=16777216);const o=getNameOfSymbolAsWritten(i,t);0===n&&(t.flags^=16777216);const a=setEmitFlags(Wr.createIdentifier(o),16777216);r&&setIdentifierTypeArguments(a,Wr.createNodeArray(r));return a.symbol=i,n>0?Wr.createQualifiedName(createEntityNameFromSymbolChain(e,n-1),a):a}(i,i.length-1)}function symbolToExpression(e,t,n){const r=lookupSymbolChain(e,t,n);return function createExpressionFromSymbolChain(e,n){const r=lookupTypeParameterNodes(e,n,t),i=e[n];0===n&&(t.flags|=16777216);let o=getNameOfSymbolAsWritten(i,t);0===n&&(t.flags^=16777216);let a=o.charCodeAt(0);if(isSingleOrDoubleQuote(a)&&some(i.declarations,hasNonGlobalAugmentationExternalModuleSymbol)){const e=getSpecifierForModuleSymbol(i,t);return t.approximateLength+=2+e.length,Wr.createStringLiteral(e)}if(0===n||canUsePropertyAccess(o,x)){const a=setEmitFlags(Wr.createIdentifier(o),16777216);return r&&setIdentifierTypeArguments(a,Wr.createNodeArray(r)),a.symbol=i,t.approximateLength+=1+o.length,n>0?Wr.createPropertyAccessExpression(createExpressionFromSymbolChain(e,n-1),a):a}{let s;if(91===a&&(o=o.substring(1,o.length-1),a=o.charCodeAt(0)),!isSingleOrDoubleQuote(a)||8&i.flags)""+ +o===o&&(t.approximateLength+=o.length,s=Wr.createNumericLiteral(+o));else{const e=stripQuotes(o).replace(/\\./g,e=>e.substring(1));t.approximateLength+=e.length+2,s=Wr.createStringLiteral(e,39===a)}if(!s){const e=setEmitFlags(Wr.createIdentifier(o),16777216);r&&setIdentifierTypeArguments(e,Wr.createNodeArray(r)),e.symbol=i,t.approximateLength+=o.length,s=e}return t.approximateLength+=2,Wr.createElementAccessExpression(createExpressionFromSymbolChain(e,n-1),s)}}(r,r.length-1)}function isStringNamed(e){const t=getNameOfDeclaration(e);if(!t)return!1;if(isComputedPropertyName(t)){return!!(402653316&checkExpression(t.expression).flags)}if(isElementAccessExpression(t)){return!!(402653316&checkExpression(t.argumentExpression).flags)}return isStringLiteral(t)}function isSingleQuotedStringNamed(e){const t=getNameOfDeclaration(e);return!!(t&&isStringLiteral(t)&&(t.singleQuote||!nodeIsSynthesized(t)&&startsWith(getTextOfNode(t,!1),"'")))}function getPropertyNameNodeForSymbol(e,t){const n=function getClonedHashPrivateName(e){if(e.valueDeclaration&&isNamedDeclaration(e.valueDeclaration)&&isPrivateIdentifier(e.valueDeclaration.name))return Wr.cloneNode(e.valueDeclaration.name);return}(e);if(n)return n;const r=!!length(e.declarations)&&every(e.declarations,isStringNamed),i=!!length(e.declarations)&&every(e.declarations,isSingleQuotedStringNamed),o=!!(8192&e.flags),a=function getPropertyNameNodeForSymbolFromNameType(e,t,n,r,i){const o=getSymbolLinks(e).nameType;if(o){if(384&o.flags){const e=""+o.value;return isIdentifierText(e,zn(S))||!r&&isNumericLiteralName(e)?isNumericLiteralName(e)&&startsWith(e,"-")?Wr.createComputedPropertyName(Wr.createPrefixUnaryExpression(41,Wr.createNumericLiteral(-e))):createPropertyNameNodeForIdentifierOrLiteral(e,zn(S),n,r,i):Wr.createStringLiteral(e,!!n)}if(8192&o.flags)return Wr.createComputedPropertyName(symbolToExpression(o.symbol,t,111551))}}(e,t,i,r,o);if(a)return a;return createPropertyNameNodeForIdentifierOrLiteral(unescapeLeadingUnderscores(e.escapedName),zn(S),i,r,o)}function cloneNodeBuilderContext(e){const t=e.mustCreateTypeParameterSymbolList,n=e.mustCreateTypeParametersNamesLookups;e.mustCreateTypeParameterSymbolList=!0,e.mustCreateTypeParametersNamesLookups=!0;const r=e.typeParameterNames,i=e.typeParameterNamesByText,o=e.typeParameterNamesByTextNextNameCount,a=e.typeParameterSymbolList;return()=>{e.typeParameterNames=r,e.typeParameterNamesByText=i,e.typeParameterNamesByTextNextNameCount=o,e.typeParameterSymbolList=a,e.mustCreateTypeParameterSymbolList=t,e.mustCreateTypeParametersNamesLookups=n}}function getDeclarationWithTypeAnnotation(e,t){return e.declarations&&find(e.declarations,e=>!(!getNonlocalEffectiveTypeAnnotationNode(e)||t&&!findAncestor(e,e=>e===t)))}function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(e,t){if(!(4&getObjectFlags(t)))return!0;if(!isTypeReferenceNode(e))return!0;getTypeFromTypeReference(e);const n=getNodeLinks(e).resolvedSymbol,r=n&&getDeclaredTypeOfSymbol(n);return!r||r!==t.target||length(e.typeArguments)>=getMinTypeArgumentCount(t.target.typeParameters)}function serializeInferredTypeForDeclaration(e,t,n){8192&n.flags&&n.symbol===e&&(!t.enclosingDeclaration||some(e.declarations,e=>getSourceFileOfNode(e)===t.enclosingFile))&&(t.flags|=1048576);return typeToTypeNodeHelper(n,t)}function serializeTypeForDeclaration(e,t,n,r){var i;let o;const a=t&&(isParameter(t)||isJSDocParameterTag(t))&&requiresAddingImplicitUndefined(t,e.enclosingDeclaration),s=t??r.valueDeclaration??getDeclarationWithTypeAnnotation(r)??(null==(i=r.declarations)?void 0:i[0]);if(!canPossiblyExpandType(n,e)&&s){const t=addSymbolTypeToContext(e,r,n);isAccessor(s)?o=W.serializeTypeOfAccessor(s,r,e):!hasInferredType(s)||nodeIsSynthesized(s)||196608&getObjectFlags(n)||(o=W.serializeTypeOfDeclaration(s,r,e)),t()}return o||(a&&(n=getOptionalType(n)),o=serializeInferredTypeForDeclaration(r,e,n)),o??Wr.createKeywordTypeNode(133)}function serializeInferredReturnTypeForSignature(e,t,n){const r=e.suppressReportInferenceFallback;e.suppressReportInferenceFallback=!0;const i=getTypePredicateOfSignature(t),o=i?typePredicateToTypePredicateNodeHelper(e.mapper?instantiateTypePredicate(i,e.mapper):i,e):typeToTypeNodeHelper(n,e);return e.suppressReportInferenceFallback=r,o}function trackExistingEntityName(e,t,n=t.enclosingDeclaration){let r=!1;const i=getFirstIdentifier(e);if(isInJSFile(e)&&(isExportsIdentifier(i)||isModuleExportsAccessExpression(i.parent)||isQualifiedName(i.parent)&&isModuleIdentifier(i.parent.left)&&isExportsIdentifier(i.parent.right)))return r=!0,{introducesError:r,node:e};const o=getMeaningOfEntityNameReference(e);let a;if(isThisIdentifier(i))return a=getSymbolOfDeclaration(getThisContainer(i,!1,!1)),0!==isSymbolAccessible(a,i,o,!1).accessibility&&(r=!0,t.tracker.reportInaccessibleThisError()),{introducesError:r,node:attachSymbolToLeftmostIdentifier(e)};if(a=resolveEntityName(i,o,!0,!0),t.enclosingDeclaration&&!(a&&262144&a.flags)){a=getExportSymbolOfValueSymbolIfExported(a);const n=resolveEntityName(i,o,!0,!0,t.enclosingDeclaration);if(n===ve||void 0===n&&void 0!==a||n&&a&&!getSymbolIfSameReference(getExportSymbolOfValueSymbolIfExported(n),a))return n!==ve&&t.tracker.reportInferenceFallback(e),r=!0,{introducesError:r,node:e,sym:a};a=n}return a?(1&a.flags&&a.valueDeclaration&&(isPartOfParameterDeclaration(a.valueDeclaration)||isJSDocParameterTag(a.valueDeclaration))||(262144&a.flags||isDeclarationName(e)||0===isSymbolAccessible(a,n,o,!1).accessibility?t.tracker.trackSymbol(a,n,o):(t.tracker.reportInferenceFallback(e),r=!0)),{introducesError:r,node:attachSymbolToLeftmostIdentifier(e)}):{introducesError:r,node:e};function attachSymbolToLeftmostIdentifier(e){if(e===i){const n=getDeclaredTypeOfSymbol(a),r=262144&a.flags?typeParameterToName(n,t):Wr.cloneNode(e);return r.symbol=a,setTextRange2(t,setEmitFlags(r,16777216),e)}const n=visitEachChild(e,e=>attachSymbolToLeftmostIdentifier(e),void 0);return setTextRange2(t,n,e)}}function canReuseTypeNode(e,t){const n=getTypeFromTypeNode2(e,t,!0);if(!n)return!1;if(isInJSFile(t)&&isLiteralImportTypeNode(t)){getTypeFromImportTypeNode(t);const e=getNodeLinks(t).resolvedSymbol;return!e||!!((t.isTypeOf||788968&e.flags)&&length(t.typeArguments)>=getMinTypeArgumentCount(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e)))}if(isTypeReferenceNode(t)){if(isConstTypeReference(t))return!1;const r=getNodeLinks(t).resolvedSymbol;if(!r)return!1;if(262144&r.flags){const t=getDeclaredTypeOfSymbol(r);return!(e.mapper&&getMappedType(t,e.mapper)!==t)}if(isInJSDoc(t))return existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(t,n)&&!getIntendedTypeFromJSDocTypeReference(t)&&!!(788968&r.flags)}if(isTypeOperatorNode(t)&&158===t.operator&&155===t.type.kind){const n=e.enclosingDeclaration&&function getEnclosingDeclarationIgnoringFakeScope(e){for(;getNodeLinks(e).fakeScopeForSignatureDeclaration;)e=e.parent;return e}(e.enclosingDeclaration);return!!findAncestor(t,e=>e===n)}return!0}function symbolTableToDeclarationStatements(e,t){var n;const r=makeSerializePropertySymbol(Wr.createPropertyDeclaration,175,!0),i=makeSerializePropertySymbol((e,t,n,r)=>Wr.createPropertySignature(e,t,n,r),174,!1),o=t.enclosingDeclaration;let a=[];const s=new Set,c=[],d=t;t={...d,usedSymbolNames:new Set(d.usedSymbolNames),remappedSymbolNames:new Map,remappedSymbolReferences:new Map(null==(n=d.remappedSymbolReferences)?void 0:n.entries()),tracker:void 0};const p={...d.tracker.inner,trackSymbol:(e,n,r)=>{var i,o;if(null==(i=t.remappedSymbolNames)?void 0:i.has(getSymbolId(e)))return!1;if(0===isSymbolAccessible(e,n,r,!1).accessibility){const n=lookupSymbolChainWorker(e,t,r);if(!(4&e.flags)){const e=n[0],t=getSourceFileOfNode(d.enclosingDeclaration);some(e.declarations,e=>getSourceFileOfNode(e)===t)&&includePrivateSymbol(e)}}else if(null==(o=d.tracker.inner)?void 0:o.trackSymbol)return d.tracker.inner.trackSymbol(e,n,r);return!1}};t.tracker=new sa(t,p,d.tracker.moduleResolverHost),forEachEntry(e,(e,t)=>{getInternalSymbolName(e,unescapeLeadingUnderscores(t))});let u=!t.bundled;const m=e.get("export=");return m&&e.size>1&&2098688&m.flags&&(e=createSymbolTable()).set("export=",m),visitSymbolTable(e),function mergeRedundantStatements(e){e=function inlineExportModifiers(e){const t=findIndex(e,e=>isExportDeclaration(e)&&!e.moduleSpecifier&&!e.attributes&&!!e.exportClause&&isNamedExports(e.exportClause));if(t>=0){const n=e[t],r=mapDefined(n.exportClause.elements,t=>{if(!t.propertyName&&11!==t.name.kind){const n=t.name,r=filter(indicesOf(e),t=>nodeHasName(e[t],n));if(length(r)&&every(r,t=>canHaveExportModifier(e[t]))){for(const t of r)e[t]=addExportModifier(e[t]);return}}return t});length(r)?e[t]=Wr.updateExportDeclaration(n,n.modifiers,n.isTypeOnly,Wr.updateNamedExports(n.exportClause,r),n.moduleSpecifier,n.attributes):orderedRemoveItemAt(e,t)}return e}(e=function mergeExportDeclarations(e){const t=filter(e,e=>isExportDeclaration(e)&&!e.moduleSpecifier&&!!e.exportClause&&isNamedExports(e.exportClause));if(length(t)>1){e=[...filter(e,e=>!isExportDeclaration(e)||!!e.moduleSpecifier||!e.exportClause),Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports(flatMap(t,e=>cast(e.exportClause,isNamedExports).elements)),void 0)]}const n=filter(e,e=>isExportDeclaration(e)&&!!e.moduleSpecifier&&!!e.exportClause&&isNamedExports(e.exportClause));if(length(n)>1){const t=group(n,e=>isStringLiteral(e.moduleSpecifier)?">"+e.moduleSpecifier.text:">");if(t.length!==n.length)for(const n of t)n.length>1&&(e=[...filter(e,e=>!n.includes(e)),Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports(flatMap(n,e=>cast(e.exportClause,isNamedExports).elements)),n[0].moduleSpecifier)])}return e}(e=function flattenExportAssignedNamespace(e){const t=find(e,isExportAssignment),n=findIndex(e,isModuleDeclaration);let r=-1!==n?e[n]:void 0;if(r&&t&&t.isExportEquals&&isIdentifier(t.expression)&&isIdentifier(r.name)&&idText(r.name)===idText(t.expression)&&r.body&&isModuleBlock(r.body)){const i=filter(e,e=>!!(32&getEffectiveModifierFlags(e))),o=r.name;let s=r.body;if(length(i)&&(r=Wr.updateModuleDeclaration(r,r.modifiers,r.name,s=Wr.updateModuleBlock(s,Wr.createNodeArray([...r.body.statements,Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports(map(flatMap(i,e=>function getNamesOfDeclaration(e){if(isVariableStatement(e))return filter(map(e.declarationList.declarations,getNameOfDeclaration),isIdentifierAndNotUndefined);return filter([getNameOfDeclaration(e)],isIdentifierAndNotUndefined)}(e)),e=>Wr.createExportSpecifier(!1,void 0,e))),void 0)]))),e=[...e.slice(0,n),r,...e.slice(n+1)]),!find(e,e=>e!==r&&nodeHasName(e,o))){a=[];const n=!some(s.statements,e=>hasSyntacticModifier(e,32)||isExportAssignment(e)||isExportDeclaration(e));forEach(s.statements,e=>{addResult(e,n?32:0)}),e=[...filter(e,e=>e!==r&&e!==t),...a]}}return e}(e))),o&&(isSourceFile(o)&&isExternalOrCommonJsModule(o)||isModuleDeclaration(o))&&(!some(e,isExternalModuleIndicator)||!hasScopeMarker(e)&&some(e,needsScopeMarker))&&e.push(createEmptyExports(Wr));return e}(a);function isIdentifierAndNotUndefined(e){return!!e&&80===e.kind}function addExportModifier(e){const t=-129&getEffectiveModifierFlags(e)|32;return Wr.replaceModifiers(e,t)}function removeExportModifier(e){const t=-33&getEffectiveModifierFlags(e);return Wr.replaceModifiers(e,t)}function visitSymbolTable(e,n,r){n||c.push(new Map);let i=0;const o=Array.from(e.values());for(const n of o){if(i++,checkTruncationLengthIfExpanding(t)&&i+2{serializeSymbol(e,!0,!!r)}),c.pop())}function serializeSymbol(e,n,r){getPropertiesOfType(getTypeOfSymbol(e));const i=getMergedSymbol(e);if(s.has(getSymbolId(i)))return;s.add(getSymbolId(i));if(!n||length(e.declarations)&&some(e.declarations,e=>!!findAncestor(e,e=>e===o))){const i=cloneNodeBuilderContext(t);t.tracker.pushErrorFallbackNode(find(e.declarations,e=>getSourceFileOfNode(e)===t.enclosingFile)),serializeSymbolWorker(e,n,r),t.tracker.popErrorFallbackNode(),i()}}function serializeSymbolWorker(e,n,r,i=e.escapedName){var o,a,s,c,d,p,u;const m=unescapeLeadingUnderscores(i),_="default"===i;if(n&&!(131072&t.flags)&&isStringANonContextualKeyword(m)&&!_)return void(t.encounteredError=!0);let f=_&&!!(-113&e.flags||16&e.flags&&length(getPropertiesOfType(getTypeOfSymbol(e))))&&!(2097152&e.flags),g=!f&&!n&&isStringANonContextualKeyword(m)&&!_;(f||g)&&(n=!0);const y=(n?0:32)|(_&&!f?2048:0),h=1536&e.flags&&7&e.flags&&"export="!==i,T=h&&isTypeRepresentableAsFunctionNamespaceMerge(getTypeOfSymbol(e),e);if((8208&e.flags||T)&&serializeAsFunctionNamespaceMerge(getTypeOfSymbol(e),e,getInternalSymbolName(e,m),y),524288&e.flags&&function serializeTypeAlias(e,n,r){var i;const o=getDeclaredTypeOfTypeAlias(e),a=getSymbolLinks(e).typeParameters,s=map(a,e=>typeParameterToDeclaration(e,t)),c=null==(i=e.declarations)?void 0:i.find(isJSDocTypeAlias),l=getTextOfJSDocComment(c?c.comment||c.parent.comment:void 0),d=saveRestoreFlags(t);t.flags|=8388608;const p=t.enclosingDeclaration;t.enclosingDeclaration=c;const u=c&&c.typeExpression&&isJSDocTypeExpression(c.typeExpression)&&W.tryReuseExistingTypeNode(t,c.typeExpression.type)||typeToTypeNodeHelper(o,t),m=getInternalSymbolName(e,n);t.approximateLength+=8+((null==l?void 0:l.length)??0)+m.length,addResult(setSyntheticLeadingComments(Wr.createTypeAliasDeclaration(void 0,m,s,u),l?[{kind:3,text:"*\n * "+l.replace(/\n/g,"\n * ")+"\n ",pos:-1,end:-1,hasTrailingNewLine:!0}]:[]),r),d(),t.enclosingDeclaration=p}(e,m,y),98311&e.flags&&"export="!==i&&!(4194304&e.flags)&&!(32&e.flags)&&!(8192&e.flags)&&!T)if(r){serializeMaybeAliasAssignment(e)&&(g=!1,f=!1)}else{const l=getTypeOfSymbol(e),_=getInternalSymbolName(e,m);if(l.symbol&&l.symbol!==e&&16&l.symbol.flags&&some(l.symbol.declarations,isFunctionExpressionOrArrowFunction)&&((null==(o=l.symbol.members)?void 0:o.size)||(null==(a=l.symbol.exports)?void 0:a.size)))t.remappedSymbolReferences||(t.remappedSymbolReferences=new Map),t.remappedSymbolReferences.set(getSymbolId(l.symbol),e),serializeSymbolWorker(l.symbol,n,r,i),t.remappedSymbolReferences.delete(getSymbolId(l.symbol));else if(16&e.flags||!isTypeRepresentableAsFunctionNamespaceMerge(l,e)){const r=2&e.flags?isConstantVariable(e)?2:1:(null==(s=e.parent)?void 0:s.valueDeclaration)&&isSourceFile(null==(c=e.parent)?void 0:c.valueDeclaration)?2:void 0,i=!f&&4&e.flags?getUnusedName(_,e):_;let o=e.declarations&&find(e.declarations,e=>isVariableDeclaration(e));o&&isVariableDeclarationList(o.parent)&&1===o.parent.declarations.length&&(o=o.parent.parent);const a=null==(d=e.declarations)?void 0:d.find(isPropertyAccessExpression);if(a&&isBinaryExpression(a.parent)&&isIdentifier(a.parent.right)&&(null==(p=l.symbol)?void 0:p.valueDeclaration)&&isSourceFile(l.symbol.valueDeclaration)){const e=_===a.parent.right.escapedText?void 0:a.parent.right;t.approximateLength+=12+((null==(u=null==e?void 0:e.escapedText)?void 0:u.length)??0),addResult(Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([Wr.createExportSpecifier(!1,e,_)])),0),t.tracker.trackSymbol(l.symbol,t.enclosingDeclaration,111551)}else{const a=setTextRange2(t,Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(i,void 0,serializeTypeForDeclaration(t,void 0,l,e))],r)),o);t.approximateLength+=7+i.length,addResult(a,i!==_?-33&y:y),i===_||n||(t.approximateLength+=16+i.length+_.length,addResult(Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([Wr.createExportSpecifier(!1,i,_)])),0),g=!1,f=!1)}}else serializeAsFunctionNamespaceMerge(l,e,_,y)}if(384&e.flags&&function serializeEnum(e,n,r){const i=getInternalSymbolName(e,n);t.approximateLength+=9+i.length;const o=[],a=filter(getPropertiesOfType(getTypeOfSymbol(e)),e=>!!(8&e.flags));let s=0;for(const e of a){if(s++,checkTruncationLengthIfExpanding(t)&&s+2typeParameterToDeclaration(e,t));forEach(c,e=>t.approximateLength+=symbolName(e.symbol).length);const p=getTypeWithThisArgument(getDeclaredTypeOfClassOrInterface(e)),u=getBaseTypes(p),m=a&&getEffectiveImplementsTypeNodes(a),_=m&&function sanitizeJSDocImplements(e){const n=mapDefined(e,e=>{const n=t.enclosingDeclaration;t.enclosingDeclaration=e;let r=e.expression;if(isEntityNameExpression(r)){if(isIdentifier(r)&&""===idText(r))return cleanup(void 0);let e;if(({introducesError:e,node:r}=trackExistingEntityName(r,t)),e)return cleanup(void 0)}return cleanup(Wr.createExpressionWithTypeArguments(r,map(e.typeArguments,e=>W.tryReuseExistingTypeNode(t,e)||typeToTypeNodeHelper(getTypeFromTypeNode2(t,e),t))));function cleanup(e){return t.enclosingDeclaration=n,e}});if(n.length===e.length)return n;return}(m)||mapDefined(function getImplementsTypes(e){let t=l;if(e.symbol.declarations)for(const n of e.symbol.declarations){const e=getEffectiveImplementsTypeNodes(n);if(e)for(const n of e){const e=getTypeFromTypeNode(n);isErrorType(e)||(t===l?t=[e]:t.push(e))}}return t}(p),serializeImplementedType),f=getTypeOfSymbol(e),g=!!(null==(o=f.symbol)?void 0:o.valueDeclaration)&&isClassLike(f.symbol.valueDeclaration),y=g?getBaseConstructorTypeOfClass(f):ke;t.approximateLength+=(length(u)?8:0)+(length(_)?11:0);const h=[...length(u)?[Wr.createHeritageClause(96,map(u,e=>function serializeBaseType(e,n,r){const i=trySerializeAsTypeReference(e,111551);if(i)return i;const o=getUnusedName(`${r}_base`),a=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(o,void 0,typeToTypeNodeHelper(n,t))],2));return addResult(a,0),Wr.createExpressionWithTypeArguments(Wr.createIdentifier(o),void 0)}(e,y,n)))]:[],...length(_)?[Wr.createHeritageClause(119,_)]:[]],T=function getNonInheritedProperties(e,t,n){if(!length(t))return n;const r=new Map;forEach(n,e=>{r.set(e.escapedName,e)});for(const n of t){const t=getPropertiesOfType(getTypeWithThisArgument(n,e.thisType));for(const e of t){const t=r.get(e.escapedName);t&&e.parent===t.parent&&r.delete(e.escapedName)}}return arrayFrom(r.values())}(p,u,getPropertiesOfType(p)),S=filter(T,e=>!isHashPrivate(e)),x=some(T,isHashPrivate),v=x?isExpanding(t)?serializePropertySymbolsForClassOrInterface(filter(T,isHashPrivate),!0,u[0],!1):[Wr.createPropertyDeclaration(void 0,Wr.createPrivateIdentifier("#private"),void 0,void 0,void 0)]:l;x&&!isExpanding(t)&&(t.approximateLength+=9);const b=serializePropertySymbolsForClassOrInterface(S,!0,u[0],!1),C=serializePropertySymbolsForClassOrInterface(filter(getPropertiesOfType(f),e=>!(4194304&e.flags||"prototype"===e.escapedName||isNamespaceMember(e))),!0,y,!0),E=!g&&!!e.valueDeclaration&&isInJSFile(e.valueDeclaration)&&!some(getSignaturesOfType(f,1));E&&(t.approximateLength+=21);const N=E?[Wr.createConstructorDeclaration(Wr.createModifiersFromModifierFlags(2),[],void 0)]:serializeSignatures(1,f,y,177),k=serializeIndexSignatures(p,u[0]);t.enclosingDeclaration=s,addResult(setTextRange2(t,Wr.createClassDeclaration(void 0,n,d,h,[...k,...C,...N,...b,...v]),e.declarations&&filter(e.declarations,e=>isClassDeclaration(e)||isClassExpression(e))[0]),r)}(e,getInternalSymbolName(e,m),y)),(1536&e.flags&&(!h||function isTypeOnlyNamespace(e){return every(getNamespaceMembersForSerialization(e),e=>!(111551&getSymbolFlags(resolveSymbol(e))))}(e))||T)&&function serializeModule(e,n,r){const i=getNamespaceMembersForSerialization(e),o=isExpanding(t),a=arrayToMultiMap(i,t=>t.parent&&t.parent===e||o?"real":"merged"),s=a.get("real")||l,c=a.get("merged")||l;if(length(s)||o){let i;if(o){const n=t.flags;t.flags|=514,i=symbolToNode(e,t,-1),t.flags=n}else{const r=getInternalSymbolName(e,n);i=Wr.createIdentifier(r),t.approximateLength+=r.length}serializeAsNamespaceDeclaration(s,i,r,!!(67108880&e.flags))}if(length(c)){const r=getSourceFileOfNode(t.enclosingDeclaration),i=getInternalSymbolName(e,n),o=Wr.createModuleBlock([Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports(mapDefined(filter(c,e=>"export="!==e.escapedName),n=>{var i,o;const a=unescapeLeadingUnderscores(n.escapedName),s=getInternalSymbolName(n,a),c=n.declarations&&getDeclarationOfAliasSymbol(n);if(r&&(c?r!==getSourceFileOfNode(c):!some(n.declarations,e=>getSourceFileOfNode(e)===r)))return void(null==(o=null==(i=t.tracker)?void 0:i.reportNonlocalAugmentation)||o.call(i,r,e,n));const l=c&&getTargetOfAliasDeclaration(c,!0);includePrivateSymbol(l||n);const d=l?getInternalSymbolName(l,unescapeLeadingUnderscores(l.escapedName)):s;return Wr.createExportSpecifier(!1,a===d?void 0:d,a)})))]);addResult(Wr.createModuleDeclaration(void 0,Wr.createIdentifier(i),o,32),0)}}(e,m,y),64&e.flags&&!(32&e.flags)&&function serializeInterface(e,n,r){const i=getInternalSymbolName(e,n);t.approximateLength+=14+i.length;const o=getDeclaredTypeOfClassOrInterface(e),a=getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e),s=map(a,e=>typeParameterToDeclaration(e,t)),c=getBaseTypes(o),l=length(c)?getIntersectionType(c):void 0,d=serializePropertySymbolsForClassOrInterface(getPropertiesOfType(o),!1,l),p=serializeSignatures(0,o,l,180),u=serializeSignatures(1,o,l,181),m=serializeIndexSignatures(o,l),_=length(c)?[Wr.createHeritageClause(96,mapDefined(c,e=>trySerializeAsTypeReference(e,111551)))]:void 0;addResult(Wr.createInterfaceDeclaration(void 0,i,s,_,[...m,...u,...p,...d]),r)}(e,m,y),2097152&e.flags&&serializeAsAlias(e,getInternalSymbolName(e,m),y),4&e.flags&&"export="===e.escapedName&&serializeMaybeAliasAssignment(e),8388608&e.flags&&e.declarations)for(const n of e.declarations){const e=resolveExternalModuleName(n,n.moduleSpecifier);if(!e)continue;const r=n.isTypeOnly,i=getSpecifierForModuleSymbol(e,t);t.approximateLength+=17+i.length,addResult(Wr.createExportDeclaration(void 0,r,void 0,Wr.createStringLiteral(i)),0)}if(f){const n=getInternalSymbolName(e,m);t.approximateLength+=16+n.length,addResult(Wr.createExportAssignment(void 0,!1,Wr.createIdentifier(n)),0)}else if(g){const n=getInternalSymbolName(e,m);t.approximateLength+=22+m.length+n.length,addResult(Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([Wr.createExportSpecifier(!1,n,m)])),0)}}function includePrivateSymbol(e){if(some(e.declarations,isPartOfParameterDeclaration))return;h.assertIsDefined(c[c.length-1]),getUnusedName(unescapeLeadingUnderscores(e.escapedName),e);const t=!!(2097152&e.flags)&&!some(e.declarations,e=>!!findAncestor(e,isExportDeclaration)||isNamespaceExport(e)||isImportEqualsDeclaration(e)&&!isExternalModuleReference(e.moduleReference));c[t?0:c.length-1].set(getSymbolId(e),e)}function addResult(e,n){if(canHaveModifiers(e)){const r=getEffectiveModifierFlags(e);let i=0;const o=t.enclosingDeclaration&&(isJSDocTypeAlias(t.enclosingDeclaration)?getSourceFileOfNode(t.enclosingDeclaration):t.enclosingDeclaration);32&n&&o&&(function isExportingScope(e){return isSourceFile(e)&&(isExternalOrCommonJsModule(e)||isJsonSourceFile(e))||isAmbientModule(e)&&!isGlobalScopeAugmentation(e)}(o)||isModuleDeclaration(o))&&canHaveExportModifier(e)&&(i|=32),!u||32&i||o&&33554432&o.flags||!(isEnumDeclaration(e)||isVariableStatement(e)||isFunctionDeclaration(e)||isClassDeclaration(e)||isModuleDeclaration(e))||(i|=128),2048&n&&(isClassDeclaration(e)||isInterfaceDeclaration(e)||isFunctionDeclaration(e))&&(i|=2048),i&&(e=Wr.replaceModifiers(e,i|r)),t.approximateLength+=modifiersLength(i|r)}a.push(e)}function serializePropertySymbolsForClassOrInterface(e,n,i,o){const a=[];let s=0;for(const c of e){if(s++,checkTruncationLengthIfExpanding(t)&&s+2isNamespaceMember(e)&&isIdentifierText(e.escapedName,99))}function serializeAsFunctionNamespaceMerge(e,n,r,i){const o=getSignaturesOfType(e,0);for(const e of o){t.approximateLength+=1;const n=signatureToSignatureDeclarationHelper(e,263,t,{name:Wr.createIdentifier(r)});addResult(setTextRange2(t,n,getSignatureTextRangeLocation(e)),i)}if(!(1536&n.flags&&n.exports&&n.exports.size)){const n=filter(getPropertiesOfType(e),isNamespaceMember);t.approximateLength+=r.length,serializeAsNamespaceDeclaration(n,Wr.createIdentifier(r),i,!0)}}function createTruncationStatement(e){return 1&t.flags?addSyntheticLeadingComment(Wr.createEmptyStatement(),3,e):Wr.createExpressionStatement(Wr.createIdentifier(e))}function getSignatureTextRangeLocation(e){if(e.declaration&&e.declaration.parent){if(isBinaryExpression(e.declaration.parent)&&5===getAssignmentDeclarationKind(e.declaration.parent))return e.declaration.parent;if(isVariableDeclaration(e.declaration.parent)&&e.declaration.parent.parent)return e.declaration.parent.parent}return e.declaration}function serializeAsNamespaceDeclaration(e,n,r,i){const s=isIdentifier(n)?32:0,c=isExpanding(t);if(length(e)){t.approximateLength+=14;const d=arrayToMultiMap(e,e=>!length(e.declarations)||some(e.declarations,e=>getSourceFileOfNode(e)===getSourceFileOfNode(t.enclosingDeclaration))||c?"local":"remote").get("local")||l;let p=Di.createModuleDeclaration(void 0,n,Wr.createModuleBlock([]),s);setParent(p,o),p.locals=createSymbolTable(e),p.symbol=e[0].parent;const m=a;a=[];const _=u;u=!1;const f={...t,enclosingDeclaration:p},g=t;t=f,visitSymbolTable(createSymbolTable(d),i,!0),t=g,u=_;const y=a;a=m;const h=map(y,e=>isExportAssignment(e)&&!e.isExportEquals&&isIdentifier(e.expression)?Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([Wr.createExportSpecifier(!1,e.expression,Wr.createIdentifier("default"))])):e),T=every(h,e=>hasSyntacticModifier(e,32))?map(h,removeExportModifier):h;p=Wr.updateModuleDeclaration(p,p.modifiers,p.name,Wr.createModuleBlock(T)),addResult(p,r)}else c&&(t.approximateLength+=14,addResult(Wr.createModuleDeclaration(void 0,n,Wr.createModuleBlock([]),s),r))}function isNamespaceMember(e){return!!(2887656&e.flags)||!(4194304&e.flags||"prototype"===e.escapedName||e.valueDeclaration&&isStatic(e.valueDeclaration)&&isClassLike(e.valueDeclaration.parent))}function serializeAsAlias(e,n,r){var i,o,a,s,c;const l=getDeclarationOfAliasSymbol(e);if(!l)return h.fail();const d=getMergedSymbol(getTargetOfAliasDeclaration(l,!0));if(!d)return;let p=isShorthandAmbientModuleSymbol(d)&&function getSomeTargetNameFromDeclarations(e){return firstDefined(e,e=>{if(isImportSpecifier(e)||isExportSpecifier(e))return moduleExportNameTextUnescaped(e.propertyName||e.name);if(isBinaryExpression(e)||isExportAssignment(e)){const t=isExportAssignment(e)?e.expression:e.right;if(isPropertyAccessExpression(t))return idText(t.name)}if(isAliasSymbolDeclaration(e)){const t=getNameOfDeclaration(e);if(t&&isIdentifier(t))return idText(t)}})}(e.declarations)||unescapeLeadingUnderscores(d.escapedName);"export="===p&&N&&(p="default");const u=getInternalSymbolName(d,p);switch(includePrivateSymbol(d),l.kind){case 209:if(261===(null==(o=null==(i=l.parent)?void 0:i.parent)?void 0:o.kind)){const e=getSpecifierForModuleSymbol(d.parent||d,t),{propertyName:r}=l,i=r&&isIdentifier(r)?idText(r):void 0;t.approximateLength+=24+n.length+e.length+((null==i?void 0:i.length)??0),addResult(Wr.createImportDeclaration(void 0,Wr.createImportClause(void 0,void 0,Wr.createNamedImports([Wr.createImportSpecifier(!1,i?Wr.createIdentifier(i):void 0,Wr.createIdentifier(n))])),Wr.createStringLiteral(e),void 0),0);break}h.failBadSyntaxKind((null==(a=l.parent)?void 0:a.parent)||l,"Unhandled binding element grandparent kind in declaration serialization");break;case 305:227===(null==(c=null==(s=l.parent)?void 0:s.parent)?void 0:c.kind)&&serializeExportSpecifier(unescapeLeadingUnderscores(e.escapedName),u);break;case 261:if(isPropertyAccessExpression(l.initializer)){const e=l.initializer,i=Wr.createUniqueName(n),o=getSpecifierForModuleSymbol(d.parent||d,t);t.approximateLength+=22+o.length+idText(i).length,addResult(Wr.createImportEqualsDeclaration(void 0,!1,i,Wr.createExternalModuleReference(Wr.createStringLiteral(o))),0),t.approximateLength+=12+n.length+idText(i).length+idText(e.name).length,addResult(Wr.createImportEqualsDeclaration(void 0,!1,Wr.createIdentifier(n),Wr.createQualifiedName(i,e.name)),r);break}case 272:if("export="===d.escapedName&&some(d.declarations,e=>isSourceFile(e)&&isJsonSourceFile(e))){serializeMaybeAliasAssignment(e);break}const m=!(512&d.flags||isVariableDeclaration(l));t.approximateLength+=11+n.length+unescapeLeadingUnderscores(d.escapedName).length,addResult(Wr.createImportEqualsDeclaration(void 0,!1,Wr.createIdentifier(n),m?symbolToName(d,t,-1,!1):Wr.createExternalModuleReference(Wr.createStringLiteral(getSpecifierForModuleSymbol(d,t)))),m?r:0);break;case 271:addResult(Wr.createNamespaceExportDeclaration(idText(l.name)),0);break;case 274:{const e=getSpecifierForModuleSymbol(d.parent||d,t),r=t.bundled?Wr.createStringLiteral(e):l.parent.moduleSpecifier,i=isImportDeclaration(l.parent)?l.parent.attributes:void 0,o=isJSDocImportTag(l.parent);t.approximateLength+=14+n.length+3+(o?4:0),addResult(Wr.createImportDeclaration(void 0,Wr.createImportClause(o?156:void 0,Wr.createIdentifier(n),void 0),r,i),0);break}case 275:{const e=getSpecifierForModuleSymbol(d.parent||d,t),r=t.bundled?Wr.createStringLiteral(e):l.parent.parent.moduleSpecifier,i=isJSDocImportTag(l.parent.parent);t.approximateLength+=19+n.length+3+(i?4:0),addResult(Wr.createImportDeclaration(void 0,Wr.createImportClause(i?156:void 0,void 0,Wr.createNamespaceImport(Wr.createIdentifier(n))),r,l.parent.attributes),0);break}case 281:t.approximateLength+=19+n.length+3,addResult(Wr.createExportDeclaration(void 0,!1,Wr.createNamespaceExport(Wr.createIdentifier(n)),Wr.createStringLiteral(getSpecifierForModuleSymbol(d,t))),0);break;case 277:{const e=getSpecifierForModuleSymbol(d.parent||d,t),r=t.bundled?Wr.createStringLiteral(e):l.parent.parent.parent.moduleSpecifier,i=isJSDocImportTag(l.parent.parent.parent);t.approximateLength+=19+n.length+3+(i?4:0),addResult(Wr.createImportDeclaration(void 0,Wr.createImportClause(i?156:void 0,void 0,Wr.createNamedImports([Wr.createImportSpecifier(!1,n!==p?Wr.createIdentifier(p):void 0,Wr.createIdentifier(n))])),r,l.parent.parent.parent.attributes),0);break}case 282:const _=l.parent.parent.moduleSpecifier;if(_){const e=l.propertyName;e&&moduleExportNameIsDefault(e)&&(p="default")}serializeExportSpecifier(unescapeLeadingUnderscores(e.escapedName),_?p:u,_&&isStringLiteralLike(_)?Wr.createStringLiteral(_.text):void 0);break;case 278:serializeMaybeAliasAssignment(e);break;case 227:case 212:case 213:"default"===e.escapedName||"export="===e.escapedName?serializeMaybeAliasAssignment(e):serializeExportSpecifier(n,u);break;default:return h.failBadSyntaxKind(l,"Unhandled alias declaration kind in symbol serializer!")}}function serializeExportSpecifier(e,n,r){t.approximateLength+=16+e.length+(e!==n?n.length:0),addResult(Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([Wr.createExportSpecifier(!1,e!==n?n:void 0,e)]),r),0)}function serializeMaybeAliasAssignment(e){var n;if(4194304&e.flags)return!1;const r=unescapeLeadingUnderscores(e.escapedName),i="export="===r,s=i||"default"===r,c=e.declarations&&getDeclarationOfAliasSymbol(e),l=c&&getTargetOfAliasDeclaration(c,!0);if(l&&length(l.declarations)&&some(l.declarations,e=>getSourceFileOfNode(e)===getSourceFileOfNode(o))){const n=c&&(isExportAssignment(c)||isBinaryExpression(c)?getExportAssignmentExpression(c):getPropertyAssignmentAliasLikeExpression(c)),d=n&&isEntityNameExpression(n)?function getFirstNonModuleExportsIdentifier(e){switch(e.kind){case 80:return e;case 167:do{e=e.left}while(80!==e.kind);return e;case 212:do{if(isModuleExportsAccessExpression(e.expression)&&!isPrivateIdentifier(e.name))return e.name;e=e.expression}while(80!==e.kind);return e}}(n):void 0,p=d&&resolveEntityName(d,-1,!0,!0,o);(p||l)&&includePrivateSymbol(p||l);const u=t.tracker.disableTrackSymbol;if(t.tracker.disableTrackSymbol=!0,s)t.approximateLength+=10,a.push(Wr.createExportAssignment(void 0,i,symbolToExpression(l,t,-1)));else if(d===n&&d)serializeExportSpecifier(r,idText(d));else if(n&&isClassExpression(n))serializeExportSpecifier(r,getInternalSymbolName(l,symbolName(l)));else{const n=getUnusedName(r,e);t.approximateLength+=n.length+10,addResult(Wr.createImportEqualsDeclaration(void 0,!1,Wr.createIdentifier(n),symbolToName(l,t,-1,!1)),0),serializeExportSpecifier(r,n)}return t.tracker.disableTrackSymbol=u,!0}{const o=getUnusedName(r,e),c=getWidenedType(getTypeOfSymbol(getMergedSymbol(e)));if(isTypeRepresentableAsFunctionNamespaceMerge(c,e))serializeAsFunctionNamespaceMerge(c,e,o,s?0:32);else{const i=268!==(null==(n=t.enclosingDeclaration)?void 0:n.kind)||98304&e.flags&&!(65536&e.flags)?2:1;t.approximateLength+=o.length+5;addResult(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(o,void 0,serializeTypeForDeclaration(t,void 0,c,e))],i)),l&&4&l.flags&&"export="===l.escapedName?128:r===o?32:0)}return s?(t.approximateLength+=o.length+10,a.push(Wr.createExportAssignment(void 0,i,Wr.createIdentifier(o))),!0):r!==o&&(serializeExportSpecifier(r,o),!0)}}function isTypeRepresentableAsFunctionNamespaceMerge(e,n){var r;const i=getSourceFileOfNode(t.enclosingDeclaration);return 48&getObjectFlags(e)&&!some(null==(r=e.symbol)?void 0:r.declarations,isTypeNode)&&!length(getIndexInfosOfType(e))&&!isClassInstanceSide(e)&&!(!length(filter(getPropertiesOfType(e),isNamespaceMember))&&!length(getSignaturesOfType(e,0)))&&!length(getSignaturesOfType(e,1))&&!getDeclarationWithTypeAnnotation(n,o)&&!(e.symbol&&some(e.symbol.declarations,e=>getSourceFileOfNode(e)!==i))&&!some(getPropertiesOfType(e),e=>isLateBoundName(e.escapedName))&&!some(getPropertiesOfType(e),e=>some(e.declarations,e=>getSourceFileOfNode(e)!==i))&&every(getPropertiesOfType(e),e=>!!isIdentifierText(symbolName(e),x)&&(!(98304&e.flags)||getNonMissingTypeOfSymbol(e)===getWriteTypeOfSymbol(e)))}function makeSerializePropertySymbol(e,n,r){return function serializePropertySymbol(i,o,a){var s,c,l,d,p,u;const m=getDeclarationModifierFlagsFromSymbol(i),_=!!(2&m)&&!isExpanding(t);if(o&&2887656&i.flags)return[];if(4194304&i.flags||"constructor"===i.escapedName||a&&getPropertyOfType(a,i.escapedName)&&isReadonlySymbol(getPropertyOfType(a,i.escapedName))===isReadonlySymbol(i)&&(16777216&i.flags)==(16777216&getPropertyOfType(a,i.escapedName).flags)&&isTypeIdenticalTo(getTypeOfSymbol(i),getTypeOfPropertyOfType(a,i.escapedName)))return[];const f=-1025&m|(o?256:0),g=getPropertyNameNodeForSymbol(i,t),y=null==(s=i.declarations)?void 0:s.find(or(isPropertyDeclaration,isAccessor,isVariableDeclaration,isPropertySignature,isBinaryExpression,isPropertyAccessExpression));if(98304&i.flags&&r){const e=[];if(65536&i.flags){const n=i.declarations&&forEach(i.declarations,e=>179===e.kind?e:isCallExpression(e)&&isBindableObjectDefinePropertyCall(e)?forEach(e.arguments[2].properties,e=>{const t=getNameOfDeclaration(e);if(t&&isIdentifier(t)&&"set"===idText(t))return e}):void 0);h.assert(!!n);const r=isFunctionLikeDeclaration(n)?getSignatureFromDeclaration(n).parameters[0]:void 0,o=null==(c=i.declarations)?void 0:c.find(isSetAccessor);t.approximateLength+=modifiersLength(f)+7+(r?symbolName(r).length:5)+(_?0:2),e.push(setTextRange2(t,Wr.createSetAccessorDeclaration(Wr.createModifiersFromModifierFlags(f),g,[Wr.createParameterDeclaration(void 0,void 0,r?parameterToParameterDeclarationName(r,getEffectiveParameterDeclaration(r),t):"value",void 0,_?void 0:serializeTypeForDeclaration(t,o,getWriteTypeOfSymbol(i),i))],void 0),o??y))}if(32768&i.flags){const n=null==(l=i.declarations)?void 0:l.find(isGetAccessor);t.approximateLength+=modifiersLength(f)+8+(_?0:2),e.push(setTextRange2(t,Wr.createGetAccessorDeclaration(Wr.createModifiersFromModifierFlags(f),g,[],_?void 0:serializeTypeForDeclaration(t,n,getTypeOfSymbol(i),i),void 0),n??y))}return e}if(98311&i.flags){const n=(isReadonlySymbol(i)?8:0)|f;return t.approximateLength+=2+(_?0:2)+modifiersLength(n),setTextRange2(t,e(Wr.createModifiersFromModifierFlags(n),g,16777216&i.flags?Wr.createToken(58):void 0,_?void 0:serializeTypeForDeclaration(t,null==(d=i.declarations)?void 0:d.find(isSetAccessorDeclaration),getWriteTypeOfSymbol(i),i),void 0),(null==(p=i.declarations)?void 0:p.find(or(isPropertyDeclaration,isVariableDeclaration)))||y)}if(8208&i.flags){const r=getSignaturesOfType(getTypeOfSymbol(i),0);if(_){const n=(isReadonlySymbol(i)?8:0)|f;return t.approximateLength+=1+modifiersLength(n),setTextRange2(t,e(Wr.createModifiersFromModifierFlags(n),g,16777216&i.flags?Wr.createToken(58):void 0,void 0,void 0),(null==(u=i.declarations)?void 0:u.find(isFunctionLikeDeclaration))||r[0]&&r[0].declaration||i.declarations&&i.declarations[0])}const o=[];for(const e of r){t.approximateLength+=1;const r=signatureToSignatureDeclarationHelper(e,n,t,{name:g,questionToken:16777216&i.flags?Wr.createToken(58):void 0,modifiers:f?Wr.createModifiersFromModifierFlags(f):void 0}),a=e.declaration&&isPrototypePropertyAssignment(e.declaration.parent)?e.declaration.parent:e.declaration;o.push(setTextRange2(t,r,a))}return o}return h.fail(`Unhandled class member kind! ${i.__debugFlags||i.flags}`)}}function modifiersLength(e){let t=0;return 32&e&&(t+=7),128&e&&(t+=8),2048&e&&(t+=8),4096&e&&(t+=6),1&e&&(t+=7),2&e&&(t+=8),4&e&&(t+=10),64&e&&(t+=9),256&e&&(t+=7),16&e&&(t+=9),8&e&&(t+=9),512&e&&(t+=9),1024&e&&(t+=6),8192&e&&(t+=3),16384&e&&(t+=4),t}function serializePropertySymbolForInterface(e,t){return i(e,!1,t)}function serializeSignatures(e,n,r,i){const o=getSignaturesOfType(n,e);if(1===e){if(!r&&every(o,e=>0===length(e.parameters)))return[];if(r){const e=getSignaturesOfType(r,1);if(!length(e)&&every(o,e=>0===length(e.parameters)))return[];if(e.length===o.length){let t=!1;for(let n=0;ntypeToTypeNodeHelper(e,t)),i=symbolToExpression(e.target.symbol,t,788968)):e.symbol&&isSymbolAccessibleByFlags(e.symbol,o,n)&&(i=symbolToExpression(e.symbol,t,788968)),i)return Wr.createExpressionWithTypeArguments(i,r)}function serializeImplementedType(e){const n=trySerializeAsTypeReference(e,788968);return n||(e.symbol?Wr.createExpressionWithTypeArguments(symbolToExpression(e.symbol,t,788968),void 0):void 0)}function getUnusedName(e,n){var r,i;const o=n?getSymbolId(n):void 0;if(o&&t.remappedSymbolNames.has(o))return t.remappedSymbolNames.get(o);n&&(e=getNameCandidateWorker(n,e));let a=0;const s=e;for(;null==(r=t.usedSymbolNames)?void 0:r.has(e);)a++,e=`${s}_${a}`;return null==(i=t.usedSymbolNames)||i.add(e),o&&t.remappedSymbolNames.set(o,e),e}function getNameCandidateWorker(e,n){if("default"===n||"__class"===n||"__function"===n){const r=saveRestoreFlags(t);t.flags|=16777216;const i=getNameOfSymbolAsWritten(e,t);r(),n=i.length>0&&isSingleOrDoubleQuote(i.charCodeAt(0))?stripQuotes(i):i}return"default"===n?n="_default":"export="===n&&(n="_exports"),n=isIdentifierText(n,x)&&!isStringANonContextualKeyword(n)?n:"_"+n.replace(/[^a-z0-9]/gi,"_")}function getInternalSymbolName(e,n){const r=getSymbolId(e);return t.remappedSymbolNames.has(r)?t.remappedSymbolNames.get(r):(n=getNameCandidateWorker(e,n),t.remappedSymbolNames.set(r,n),n)}}function isExpanding(e){return-1!==e.maxExpansionDepth}function isHashPrivate(e){return!!e.valueDeclaration&&isNamedDeclaration(e.valueDeclaration)&&isPrivateIdentifier(e.valueDeclaration.name)}}(),W=createSyntacticTypeNodeBuilder(S,j.syntacticBuilderResolver),U=createEvaluator({evaluateElementAccessExpression:function evaluateElementAccessExpression(e,t){const n=e.expression;if(isEntityNameExpression(n)&&isStringLiteralLike(e.argumentExpression)){const r=resolveEntityName(n,111551,!0);if(r&&384&r.flags){const n=escapeLeadingUnderscores(e.argumentExpression.text),i=r.exports.get(n);if(i)return h.assert(getSourceFileOfNode(i.valueDeclaration)===getSourceFileOfNode(r.valueDeclaration)),t?evaluateEnumMember(e,i,t):getEnumMemberValue(i.valueDeclaration)}}return evaluatorResult(void 0)},evaluateEntityNameExpression}),z=createSymbolTable(),V=createSymbol(4,"undefined");V.declarations=[];var q=createSymbol(1536,"globalThis",8);q.exports=z,q.declarations=[],z.set(q.escapedName,q);var H,K,G,$=createSymbol(4,"arguments"),Q=createSymbol(4,"require"),X=S.verbatimModuleSyntax?"verbatimModuleSyntax":"isolatedModules",Y=!S.verbatimModuleSyntax,Z=0,ee=0,te=createNameResolver({compilerOptions:S,requireSymbol:Q,argumentsSymbol:$,globals:z,getSymbolOfDeclaration,error:error2,getRequiresScopeChangeCache,setRequiresScopeChangeCache,lookup:getSymbol2,onPropertyWithInvalidInitializer:function checkAndReportErrorForInvalidInitializer(e,t,n,r){if(!E)return e&&!r&&checkAndReportErrorForMissingPrefix(e,t,t)||error2(e,e&&n.type&&textRangeContainsPositionInclusive(n.type,e.pos)?Ot.Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:Ot.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,declarationNameToString(n.name),diagnosticName(t)),!0;return!1},onFailedToResolveSymbol:function onFailedToResolveSymbol(e,t,n,r){const i=isString(t)?t:t.escapedText;addLazyDiagnostic(()=>{if(!(e&&(325===e.parent.kind||checkAndReportErrorForMissingPrefix(e,i,t)||checkAndReportErrorForExtendingInterface(e)||function checkAndReportErrorForUsingTypeAsNamespace(e,t,n){const r=1920|(isInJSFile(e)?111551:0);if(n===r){const n=resolveSymbol(te(e,t,788968&~r,void 0,!1)),i=e.parent;if(n){if(isQualifiedName(i)){h.assert(i.left===e,"Should only be resolving left side of qualified name as a namespace");const r=i.right.escapedText;if(getPropertyOfType(getDeclaredTypeOfSymbol(n),r))return error2(i,Ot.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,unescapeLeadingUnderscores(t),unescapeLeadingUnderscores(r)),!0}return error2(e,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here,unescapeLeadingUnderscores(t)),!0}}return!1}(e,i,n)||function checkAndReportErrorForExportingPrimitiveType(e,t){if(isPrimitiveTypeName(t)&&282===e.parent.kind)return error2(e,Ot.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module,t),!0;return!1}(e,i)||function checkAndReportErrorForUsingNamespaceAsTypeOrValue(e,t,n){if(111127&n){if(resolveSymbol(te(e,t,1024,void 0,!1)))return error2(e,Ot.Cannot_use_namespace_0_as_a_value,unescapeLeadingUnderscores(t)),!0}else if(788544&n){if(resolveSymbol(te(e,t,1536,void 0,!1)))return error2(e,Ot.Cannot_use_namespace_0_as_a_type,unescapeLeadingUnderscores(t)),!0}return!1}(e,i,n)||function checkAndReportErrorForUsingTypeAsValue(e,t,n){if(111551&n){if(isPrimitiveTypeName(t)){const n=e.parent.parent;if(n&&n.parent&&isHeritageClause(n)){const r=n.token;265===n.parent.kind&&96===r?error2(e,Ot.An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types,unescapeLeadingUnderscores(t)):isClassLike(n.parent)&&96===r?error2(e,Ot.A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values,unescapeLeadingUnderscores(t)):isClassLike(n.parent)&&119===r&&error2(e,Ot.A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types,unescapeLeadingUnderscores(t))}else error2(e,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,unescapeLeadingUnderscores(t));return!0}const n=resolveSymbol(te(e,t,788544,void 0,!1)),r=n&&getSymbolFlags(n);if(n&&void 0!==r&&!(111551&r)){const r=unescapeLeadingUnderscores(t);return!function isES2015OrLaterConstructorName(e){switch(e){case"Promise":case"Symbol":case"Map":case"WeakMap":case"Set":case"WeakSet":return!0}return!1}(t)?!function maybeMappedType(e,t){const n=findAncestor(e.parent,e=>!isComputedPropertyName(e)&&!isPropertySignature(e)&&(isTypeLiteralNode(e)||"quit"));if(n&&1===n.members.length){const e=getDeclaredTypeOfSymbol(t);return!!(1048576&e.flags)&&allTypesAssignableToKind(e,384,!0)}return!1}(e,n)?error2(e,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,r):error2(e,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0,r,"K"===r?"P":"K"):error2(e,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later,r),!0}}return!1}(e,i,n)||function checkAndReportErrorForUsingValueAsType(e,t,n){if(788584&n){const n=resolveSymbol(te(e,t,111127,void 0,!1));if(n&&!(1920&n.flags))return error2(e,Ot._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,unescapeLeadingUnderscores(t)),!0}return!1}(e,i,n)))){let o,a;if(t&&(a=function getSuggestedLibForNonExistentName(e){const t=diagnosticName(e),n=un().get(t);return n&&firstIterator(n.keys())}(t),a&&error2(e,r,diagnosticName(t),a)),!a&&ei{var a;const s=t.escapedName,c=r&&isSourceFile(r)&&isExternalOrCommonJsModule(r);if(e&&(2&n||(32&n||384&n)&&!(111551&~n))){const n=getExportSymbolOfValueSymbolIfExported(t);(2&n.flags||32&n.flags||384&n.flags)&&function checkResolvedBlockScopedVariable(e,t){var n;if(h.assert(!!(2&e.flags||32&e.flags||384&e.flags)),67108881&e.flags&&32&e.flags)return;const r=null==(n=e.declarations)?void 0:n.find(e=>isBlockOrCatchScoped(e)||isClassLike(e)||267===e.kind);if(void 0===r)return h.fail("checkResolvedBlockScopedVariable could not find block-scoped declaration");if(!(33554432&r.flags||isBlockScopedNameDeclaredBeforeUse(r,t))){let n;const i=declarationNameToString(getNameOfDeclaration(r));2&e.flags?n=error2(t,Ot.Block_scoped_variable_0_used_before_its_declaration,i):32&e.flags?n=error2(t,Ot.Class_0_used_before_its_declaration,i):256&e.flags?n=error2(t,Ot.Enum_0_used_before_its_declaration,i):(h.assert(!!(128&e.flags)),Kn(S)&&(n=error2(t,Ot.Enum_0_used_before_its_declaration,i))),n&&addRelatedInfo(n,createDiagnosticForNode(r,Ot._0_is_declared_here,i))}}(n,e)}if(c&&!(111551&~n)&&!(16777216&e.flags)){const n=getMergedSymbol(t);length(n.declarations)&&every(n.declarations,e=>isNamespaceExportDeclaration(e)||isSourceFile(e)&&!!e.symbol.globalExports)&&errorOrSuggestion(!S.allowUmdGlobalAccess,e,Ot._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead,unescapeLeadingUnderscores(s))}if(i&&!o&&!(111551&~n)){const r=getMergedSymbol(getLateBoundSymbol(t)),o=getRootDeclaration(i);r===getSymbolOfDeclaration(i)?error2(e,Ot.Parameter_0_cannot_reference_itself,declarationNameToString(i.name)):r.valueDeclaration&&r.valueDeclaration.pos>i.pos&&o.parent.locals&&getSymbol2(o.parent.locals,r.escapedName,n)===r&&error2(e,Ot.Parameter_0_cannot_reference_identifier_1_declared_after_it,declarationNameToString(i.name),declarationNameToString(e))}if(e&&111551&n&&2097152&t.flags&&!(111551&t.flags)&&!isValidTypeOnlyAliasUseSite(e)){const n=getTypeOnlyAliasDeclaration(t,111551);if(n){const t=282===n.kind||279===n.kind||281===n.kind?Ot._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:Ot._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type,r=unescapeLeadingUnderscores(s);addTypeOnlyDeclarationRelatedInfo(error2(e,t,r),n,r)}}if(S.isolatedModules&&t&&c&&!(111551&~n)){const e=getSymbol2(z,s,n)===t&&isSourceFile(r)&&r.locals&&getSymbol2(r.locals,s,-111552);if(e){const t=null==(a=e.declarations)?void 0:a.find(e=>277===e.kind||274===e.kind||275===e.kind||272===e.kind);t&&!isTypeOnlyImportDeclaration(t)&&error2(t,Ot.Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled,unescapeLeadingUnderscores(s))}}})}}),ne=createNameResolver({compilerOptions:S,requireSymbol:Q,argumentsSymbol:$,globals:z,getSymbolOfDeclaration,error:error2,getRequiresScopeChangeCache,setRequiresScopeChangeCache,lookup:function getSuggestionForSymbolNameLookup(e,t,n){const r=getSymbol2(e,t,n);if(r)return r;let i;if(e===z){i=mapDefined(["string","number","boolean","object","bigint","symbol"],t=>e.has(t.charAt(0).toUpperCase()+t.slice(1))?createSymbol(524288,t):void 0).concat(arrayFrom(e.values()))}else i=arrayFrom(e.values());return getSpellingSuggestionForName(unescapeLeadingUnderscores(t),i,n)}});const re={getNodeCount:()=>reduceLeft(e.getSourceFiles(),(e,t)=>e+t.nodeCount,0),getIdentifierCount:()=>reduceLeft(e.getSourceFiles(),(e,t)=>e+t.identifierCount,0),getSymbolCount:()=>reduceLeft(e.getSourceFiles(),(e,t)=>e+t.symbolCount,p),getTypeCount:()=>d,getInstantiationCount:()=>u,getRelationCacheSizes:()=>({assignable:ki.size,identity:Pi.size,subtype:Ei.size,strictSubtype:Ni.size}),isUndefinedSymbol:e=>e===V,isArgumentsSymbol:e=>e===$,isUnknownSymbol:e=>e===ve,getMergedSymbol,symbolIsValue,getDiagnostics:getDiagnostics2,getGlobalDiagnostics:function getGlobalDiagnostics(){return ensurePendingDiagnosticWorkComplete(),vi.getGlobalDiagnostics()},getRecursionIdentity,getUnmatchedProperties,getTypeOfSymbolAtLocation:(e,t)=>{const n=getParseTreeNode(t);return n?function getTypeOfSymbolAtLocation(e,t){if(e=getExportSymbolOfValueSymbolIfExported(e),(80===t.kind||81===t.kind)&&(isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent),isExpressionNode(t)&&(!isAssignmentTarget(t)||isWriteAccess(t)))){const n=removeOptionalTypeMarker(isWriteAccess(t)&&212===t.kind?checkPropertyAccessExpression(t,void 0,!0):getTypeOfExpression(t));if(getExportSymbolOfValueSymbolIfExported(getNodeLinks(t).resolvedSymbol)===e)return n}if(isDeclarationName(t)&&isSetAccessor(t.parent)&&getAnnotatedAccessorTypeNode(t.parent))return getWriteTypeOfAccessors(t.parent.symbol);return isRightSideOfAccessExpression(t)&&isWriteAccess(t.parent)?getWriteTypeOfSymbol(e):getNonMissingTypeOfSymbol(e)}(e,n):Ie},getTypeOfSymbol,getSymbolsOfParameterPropertyDeclaration:(e,t)=>{const n=getParseTreeNode(e,isParameter);return void 0===n?h.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node."):(h.assert(isParameterPropertyDeclaration(n,n.parent)),function getSymbolsOfParameterPropertyDeclaration(e,t){const n=e.parent,r=e.parent.parent,i=getSymbol2(n.locals,t,111551),o=getSymbol2(getMembersOfSymbol(r.symbol),t,111551);if(i&&o)return[i,o];return h.fail("There should exist two symbols, one as property declaration and one as parameter declaration")}(n,escapeLeadingUnderscores(t)))},getDeclaredTypeOfSymbol,getPropertiesOfType,getPropertyOfType:(e,t)=>getPropertyOfType(e,escapeLeadingUnderscores(t)),getPrivateIdentifierPropertyOfType:(e,t,n)=>{const r=getParseTreeNode(n);if(!r)return;const i=lookupSymbolForPrivateIdentifierDeclaration(escapeLeadingUnderscores(t),r);return i?getPrivateIdentifierPropertyOfType(e,i):void 0},getTypeOfPropertyOfType:(e,t)=>getTypeOfPropertyOfType(e,escapeLeadingUnderscores(t)),getIndexInfoOfType:(e,t)=>getIndexInfoOfType(e,0===t?ze:Ve),getIndexInfosOfType,getIndexInfosOfIndexSymbol,getSignaturesOfType,getIndexTypeOfType:(e,t)=>getIndexTypeOfType(e,0===t?ze:Ve),getIndexType:e=>getIndexType(e),getBaseTypes,getBaseTypeOfLiteralType,getWidenedType,getWidenedLiteralType,fillMissingTypeArguments,getTypeFromTypeNode:e=>{const t=getParseTreeNode(e,isTypeNode);return t?getTypeFromTypeNode(t):Ie},getParameterType:getTypeAtPosition,getParameterIdentifierInfoAtPosition:function getParameterIdentifierInfoAtPosition(e,t){var n;if(318===(null==(n=e.declaration)?void 0:n.kind))return;const r=e.parameters.length-(signatureHasRestParameter(e)?1:0);if(tgetAwaitedType(e),getReturnTypeOfSignature,isNullableType,getNullableType,getNonNullableType,getNonOptionalType:removeOptionalTypeMarker,getTypeArguments,typeToTypeNode:j.typeToTypeNode,typePredicateToTypePredicateNode:j.typePredicateToTypePredicateNode,indexInfoToIndexSignatureDeclaration:j.indexInfoToIndexSignatureDeclaration,signatureToSignatureDeclaration:j.signatureToSignatureDeclaration,symbolToEntityName:j.symbolToEntityName,symbolToExpression:j.symbolToExpression,symbolToNode:j.symbolToNode,symbolToTypeParameterDeclarations:j.symbolToTypeParameterDeclarations,symbolToParameterDeclaration:j.symbolToParameterDeclaration,typeParameterToDeclaration:j.typeParameterToDeclaration,getSymbolsInScope:(e,t)=>{const n=getParseTreeNode(e);return n?function getSymbolsInScope(e,t){if(67108864&e.flags)return[];const n=createSymbolTable();let r=!1;return populateSymbols(),n.delete("this"),symbolsToArray(n);function populateSymbols(){for(;e;){switch(canHaveLocals(e)&&e.locals&&!isGlobalSourceFile(e)&©Symbols(e.locals,t),e.kind){case 308:if(!isExternalModule(e))break;case 268:copyLocallyVisibleExportSymbols(getSymbolOfDeclaration(e).exports,2623475&t);break;case 267:copySymbols(getSymbolOfDeclaration(e).exports,8&t);break;case 232:e.name&©Symbol(e.symbol,t);case 264:case 265:r||copySymbols(getMembersOfSymbol(getSymbolOfDeclaration(e)),788968&t);break;case 219:e.name&©Symbol(e.symbol,t)}introducesArgumentsExoticObject(e)&©Symbol($,t),r=isStatic(e),e=e.parent}copySymbols(z,t)}function copySymbol(e,t){if(getCombinedLocalAndExportSymbolFlags(e)&t){const t=e.escapedName;n.has(t)||n.set(t,e)}}function copySymbols(e,t){t&&e.forEach(e=>{copySymbol(e,t)})}function copyLocallyVisibleExportSymbols(e,t){t&&e.forEach(e=>{getDeclarationOfKind(e,282)||getDeclarationOfKind(e,281)||"default"===e.escapedName||copySymbol(e,t)})}}(n,t):[]},getSymbolAtLocation:e=>{const t=getParseTreeNode(e);return t?getSymbolAtLocation(t,!0):void 0},getIndexInfosAtLocation:e=>{const t=getParseTreeNode(e);return t?function getIndexInfosAtLocation(e){if(isIdentifier(e)&&isPropertyAccessExpression(e.parent)&&e.parent.name===e){const t=getLiteralTypeFromPropertyName(e),n=getTypeOfExpression(e.parent.expression);return flatMap(1048576&n.flags?n.types:[n],e=>filter(getIndexInfosOfType(e),e=>isApplicableIndexType(t,e.keyType)))}return}(t):void 0},getShorthandAssignmentValueSymbol:e=>{const t=getParseTreeNode(e);return t?function getShorthandAssignmentValueSymbol(e){if(e&&305===e.kind)return resolveEntityName(e.name,2208703,!0);return}(t):void 0},getExportSpecifierLocalTargetSymbol:e=>{const t=getParseTreeNode(e,isExportSpecifier);return t?function getExportSpecifierLocalTargetSymbol(e){if(isExportSpecifier(e)){const t=e.propertyName||e.name;return e.parent.parent.moduleSpecifier?getExternalModuleMember(e.parent.parent,e):11===t.kind?void 0:resolveEntityName(t,2998271,!0)}return resolveEntityName(e,2998271,!0)}(t):void 0},getExportSymbolOfSymbol:e=>getMergedSymbol(e.exportSymbol||e),getTypeAtLocation:e=>{const t=getParseTreeNode(e);return t?getTypeOfNode(t):Ie},getTypeOfAssignmentPattern:e=>{const t=getParseTreeNode(e,isAssignmentPattern);return t&&getTypeOfAssignmentPattern(t)||Ie},getPropertySymbolOfDestructuringAssignment:e=>{const t=getParseTreeNode(e,isIdentifier);return t?function getPropertySymbolOfDestructuringAssignment(e){const t=getTypeOfAssignmentPattern(cast(e.parent.parent,isAssignmentPattern));return t&&getPropertyOfType(t,e.escapedText)}(t):void 0},signatureToString:(e,t,n,r)=>signatureToString(e,getParseTreeNode(t),n,r),typeToString:(e,t,n)=>typeToString(e,getParseTreeNode(t),n),symbolToString:(e,t,n,r)=>symbolToString(e,getParseTreeNode(t),n,r),typePredicateToString:(e,t,n)=>typePredicateToString(e,getParseTreeNode(t),n),writeSignature:(e,t,n,r,i,o,a,s)=>signatureToString(e,getParseTreeNode(t),n,r,i,o,a,s),writeType:(e,t,n,r,i,o,a)=>typeToString(e,getParseTreeNode(t),n,r,i,o,a),writeSymbol:(e,t,n,r,i)=>symbolToString(e,getParseTreeNode(t),n,r,i),writeTypePredicate:(e,t,n,r)=>typePredicateToString(e,getParseTreeNode(t),n,r),getAugmentedPropertiesOfType,getRootSymbols:function getRootSymbols(e){const t=function getImmediateRootSymbols(e){if(6&getCheckFlags(e))return mapDefined(getSymbolLinks(e).containingType.types,t=>getPropertyOfType(t,e.escapedName));if(33554432&e.flags){const{links:{leftSpread:t,rightSpread:n,syntheticOrigin:r}}=e;return t?[t,n]:r?[r]:singleElementArray(function tryGetTarget(e){let t,n=e;for(;n=getSymbolLinks(n).target;)t=n;return t}(e))}return}(e);return t?flatMap(t,getRootSymbols):[e]},getSymbolOfExpando,getContextualType:(e,t)=>{const n=getParseTreeNode(e,isExpression);if(n)return 4&t?runWithInferenceBlockedFromSourceNode(n,()=>getContextualType2(n,t)):getContextualType2(n,t)},getContextualTypeForObjectLiteralElement:e=>{const t=getParseTreeNode(e,isObjectLiteralElementLike);return t?getContextualTypeForObjectLiteralElement(t,void 0):void 0},getContextualTypeForArgumentAtIndex:(e,t)=>{const n=getParseTreeNode(e,isCallLikeExpression);return n&&getContextualTypeForArgumentAtIndex(n,t)},getContextualTypeForJsxAttribute:e=>{const t=getParseTreeNode(e,isJsxAttributeLike);return t&&getContextualTypeForJsxAttribute(t,void 0)},isContextSensitive,getTypeOfPropertyOfContextualType,getFullyQualifiedName,getResolvedSignature:(e,t,n)=>getResolvedSignatureWorker(e,t,n,0),getCandidateSignaturesForStringLiteralCompletions:function getCandidateSignaturesForStringLiteralCompletions(e,t){const n=new Set,r=[];runWithInferenceBlockedFromSourceNode(t,()=>getResolvedSignatureWorker(e,r,void 0,0));for(const e of r)n.add(e);r.length=0,runWithoutResolvedSignatureCaching(t,()=>getResolvedSignatureWorker(e,r,void 0,0));for(const e of r)n.add(e);return arrayFrom(n)},getResolvedSignatureForSignatureHelp:(e,t,n)=>runWithoutResolvedSignatureCaching(e,()=>getResolvedSignatureWorker(e,t,n,16)),getExpandedParameters,hasEffectiveRestParameter,containsArgumentsReference,getConstantValue:e=>{const t=getParseTreeNode(e,canHaveConstantValue);return t?getConstantValue2(t):void 0},isValidPropertyAccess:(e,t)=>{const n=getParseTreeNode(e,isPropertyAccessOrQualifiedNameOrImportTypeNode);return!!n&&function isValidPropertyAccess(e,t){switch(e.kind){case 212:return isValidPropertyAccessWithType(e,108===e.expression.kind,t,getWidenedType(checkExpression(e.expression)));case 167:return isValidPropertyAccessWithType(e,!1,t,getWidenedType(checkExpression(e.left)));case 206:return isValidPropertyAccessWithType(e,!1,t,getTypeFromTypeNode(e))}}(n,escapeLeadingUnderscores(t))},isValidPropertyAccessForCompletions:(e,t,n)=>{const r=getParseTreeNode(e,isPropertyAccessExpression);return!!r&&isValidPropertyAccessForCompletions(r,t,n)},getSignatureFromDeclaration:e=>{const t=getParseTreeNode(e,isFunctionLike);return t?getSignatureFromDeclaration(t):void 0},isImplementationOfOverload:e=>{const t=getParseTreeNode(e,isFunctionLike);return t?isImplementationOfOverload(t):void 0},getImmediateAliasedSymbol,getAliasedSymbol:resolveAlias,getEmitResolver:function getEmitResolver(e,t,n){n||getDiagnostics2(e,t);return B},requiresAddingImplicitUndefined,getExportsOfModule:getExportsOfModuleAsArray,getExportsAndPropertiesOfModule:function getExportsAndPropertiesOfModule(e){const t=getExportsOfModuleAsArray(e),n=resolveExternalModuleSymbol(e);if(n!==e){const e=getTypeOfSymbol(n);shouldTreatPropertiesOfExternalModuleAsExports(e)&&addRange(t,getPropertiesOfType(e))}return t},forEachExportAndPropertyOfModule:function forEachExportAndPropertyOfModule(e,t){getExportsOfModule(e).forEach((e,n)=>{isReservedMemberName(n)||t(e,n)});const n=resolveExternalModuleSymbol(e);if(n!==e){const e=getTypeOfSymbol(n);shouldTreatPropertiesOfExternalModuleAsExports(e)&&function forEachPropertyOfType(e,t){e=getReducedApparentType(e),3670016&e.flags&&resolveStructuredTypeMembers(e).members.forEach((e,n)=>{isNamedMember(e,n)&&t(e,n)})}(e,(e,n)=>{t(e,n)})}},getSymbolWalker:createGetSymbolWalker(function getRestTypeOfSignature(e){return tryGetRestTypeOfSignature(e)||ke},getTypePredicateOfSignature,getReturnTypeOfSignature,getBaseTypes,resolveStructuredTypeMembers,getTypeOfSymbol,getResolvedSymbol,getConstraintOfTypeParameter,getFirstIdentifier,getTypeArguments),getAmbientModules:function getAmbientModules(){Rt||(Rt=[],z.forEach((e,t)=>{Go.test(t)&&Rt.push(e)}));return Rt},getJsxIntrinsicTagNamesAt:function getJsxIntrinsicTagNamesAt(e){const t=getJsxType(qo.IntrinsicElements,e);return t?getPropertiesOfType(t):l},isOptionalParameter:e=>{const t=getParseTreeNode(e,isParameter);return!!t&&isOptionalParameter(t)},tryGetMemberInModuleExports:(e,t)=>tryGetMemberInModuleExports(escapeLeadingUnderscores(e),t),tryGetMemberInModuleExportsAndProperties:(e,t)=>function tryGetMemberInModuleExportsAndProperties(e,t){const n=tryGetMemberInModuleExports(e,t);if(n)return n;const r=resolveExternalModuleSymbol(t);if(r===t)return;const i=getTypeOfSymbol(r);return shouldTreatPropertiesOfExternalModuleAsExports(i)?getPropertyOfType(i,e):void 0}(escapeLeadingUnderscores(e),t),tryFindAmbientModule:e=>tryFindAmbientModule(e,!0),getApparentType,getUnionType,isTypeAssignableTo,createAnonymousType,createSignature,createSymbol,createIndexInfo,getAnyType:()=>ke,getStringType:()=>ze,getStringLiteralType,getNumberType:()=>Ve,getNumberLiteralType,getBigIntType:()=>qe,getBigIntLiteralType,getUnknownType:()=>Le,createPromiseType,createArrayType,getElementTypeOfArrayType,getBooleanType:()=>Ye,getFalseType:e=>e?He:Ke,getTrueType:e=>e?Ge:Qe,getVoidType:()=>et,getUndefinedType:()=>Me,getNullType:()=>We,getESSymbolType:()=>Ze,getNeverType:()=>tt,getNonPrimitiveType:()=>ot,getOptionalType:()=>Je,getPromiseType:()=>getGlobalPromiseType(!1),getPromiseLikeType:()=>getGlobalPromiseLikeType(!1),getAnyAsyncIterableType:()=>{const e=getGlobalAsyncIterableType(!1);if(e!==Et)return createTypeReference(e,[ke,ke,ke])},isSymbolAccessible,isArrayType,isTupleType,isArrayLikeType,isEmptyAnonymousObjectType,isTypeInvalidDueToUnionDiscriminant:function isTypeInvalidDueToUnionDiscriminant(e,t){return t.properties.some(t=>{const n=t.name&&(isJsxNamespacedName(t.name)?getStringLiteralType(getTextOfJsxAttributeName(t.name)):getLiteralTypeFromPropertyName(t.name)),r=n&&isTypeUsableAsPropertyName(n)?getPropertyNameFromType(n):void 0,i=void 0===r?void 0:getTypeOfPropertyOfType(e,r);return!!i&&isLiteralType(i)&&!isTypeAssignableTo(getTypeOfNode(t),i)})},getExactOptionalProperties:function getExactOptionalProperties(e){return getPropertiesOfType(e).filter(e=>containsMissingType(getTypeOfSymbol(e)))},getAllPossiblePropertiesOfTypes:function getAllPossiblePropertiesOfTypes(e){const t=getUnionType(e);if(!(1048576&t.flags))return getAugmentedPropertiesOfType(t);const n=createSymbolTable();for(const r of e)for(const{escapedName:e}of getAugmentedPropertiesOfType(r))if(!n.has(e)){const r=createUnionOrIntersectionProperty(t,e);r&&n.set(e,r)}return arrayFrom(n.values())},getSuggestedSymbolForNonexistentProperty,getSuggestedSymbolForNonexistentJSXAttribute,getSuggestedSymbolForNonexistentSymbol:(e,t,n)=>getSuggestedSymbolForNonexistentSymbol(e,escapeLeadingUnderscores(t),n),getSuggestedSymbolForNonexistentModule,getSuggestedSymbolForNonexistentClassMember,getBaseConstraintOfType,getDefaultFromTypeParameter:e=>e&&262144&e.flags?getDefaultFromTypeParameter(e):void 0,resolveName:(e,t,n,r)=>te(t,escapeLeadingUnderscores(e),n,void 0,!1,r),getJsxNamespace:e=>unescapeLeadingUnderscores(getJsxNamespace(e)),getJsxFragmentFactory:e=>{const t=getJsxFragmentFactoryEntity(e);return t&&unescapeLeadingUnderscores(getFirstIdentifier(t).escapedText)},getAccessibleSymbolChain,getTypePredicateOfSignature,resolveExternalModuleName:e=>{const t=getParseTreeNode(e,isExpression);return t&&resolveExternalModuleName(t,t,!0)},resolveExternalModuleSymbol,tryGetThisTypeAt:(e,t,n)=>{const r=getParseTreeNode(e);return r&&tryGetThisTypeAt(r,t,n)},getTypeArgumentConstraint:e=>{const t=getParseTreeNode(e,isTypeNode);return t&&function getTypeArgumentConstraint(e){const t=tryCast(e.parent,isTypeReferenceType);if(!t)return;const n=getTypeParametersForTypeReferenceOrImport(t);if(!n)return;const r=getConstraintOfTypeParameter(n[t.typeArguments.indexOf(e)]);return r&&instantiateType(r,createTypeMapper(n,getEffectiveTypeArguments2(t,n)))}(t)},getSuggestionDiagnostics:(n,r)=>{const i=getParseTreeNode(n,isSourceFile)||h.fail("Could not determine parsed source file.");if(skipTypeChecking(i,S,e))return l;let o;try{return t=r,checkSourceFileWithEagerDiagnostics(i),h.assert(!!(1&getNodeLinks(i).flags)),o=addRange(o,bi.getDiagnostics(i.fileName)),checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(i),(e,t,n)=>{containsParseError(e)||unusedIsError(t,!!(33554432&e.flags))||(o||(o=[])).push({...n,category:2})}),o||l}finally{t=void 0}},runWithCancellationToken:(e,n)=>{try{return t=e,n(re)}finally{t=void 0}},getLocalTypeParametersOfClassOrInterfaceOrTypeAlias,isDeclarationVisible,isPropertyAccessible,getTypeOnlyAliasDeclaration,getMemberOverrideModifierStatus:function getMemberOverrideModifierStatus(e,t,n){if(!t.name)return 0;const r=getSymbolOfDeclaration(e),i=getDeclaredTypeOfSymbol(r),o=getTypeWithThisArgument(i),a=getTypeOfSymbol(r),s=getEffectiveBaseTypeNode(e)&&getBaseTypes(i),c=(null==s?void 0:s.length)?getTypeWithThisArgument(first(s),i.thisType):void 0,l=getBaseConstructorTypeOfClass(i),d=t.parent?hasOverrideModifier(t):hasSyntacticModifier(t,16);return checkMemberForOverrideModifier(e,a,l,c,i,o,d,hasAbstractModifier(t),isStatic(t),!1,n)},isTypeParameterPossiblyReferenced,typeHasCallOrConstructSignatures,getSymbolFlags,getTypeArgumentsForResolvedSignature:function getTypeArgumentsForResolvedSignature(e){return void 0===e.mapper?void 0:instantiateTypes((e.target||e).typeParameters,e.mapper)},isLibType};function runWithoutResolvedSignatureCaching(e,t){if(e=findAncestor(e,isCallLikeOrFunctionLikeExpression)){const n=[],r=[];for(;e;){const t=getNodeLinks(e);if(n.push([t,t.resolvedSignature]),t.resolvedSignature=void 0,isFunctionExpressionOrArrowFunction(e)){const t=getSymbolLinks(getSymbolOfDeclaration(e)),n=t.type;r.push([t,n]),t.type=void 0}e=findAncestor(e.parent,isCallLikeOrFunctionLikeExpression)}const i=t();for(const[e,t]of n)e.resolvedSignature=t;for(const[e,t]of r)e.type=t;return i}return t()}function runWithInferenceBlockedFromSourceNode(e,t){const n=findAncestor(e,isCallLikeExpression);if(n){let t=e;do{getNodeLinks(t).skipDirectInference=!0,t=t.parent}while(t&&t!==n)}g=!0;const r=runWithoutResolvedSignatureCaching(e,t);if(g=!1,n){let t=e;do{getNodeLinks(t).skipDirectInference=void 0,t=t.parent}while(t&&t!==n)}return r}function getResolvedSignatureWorker(e,t,n,r){const i=getParseTreeNode(e,isCallLikeExpression);H=n;const o=i?getResolvedSignature(i,t,r):void 0;return H=void 0,o}var ie=new Map,oe=new Map,ae=new Map,se=new Map,ce=new Map,le=new Map,de=new Map,pe=new Map,ue=new Map,me=new Map,_e=new Map,fe=new Map,ge=new Map,ye=new Map,he=new Map,Te=[],Se=new Map,xe=new Set,ve=createSymbol(4,"unknown"),be=createSymbol(0,"__resolving__"),Ce=new Map,Ee=new Map,Ne=new Set,ke=createIntrinsicType(1,"any"),Fe=createIntrinsicType(1,"any",262144,"auto"),Pe=createIntrinsicType(1,"any",void 0,"wildcard"),De=createIntrinsicType(1,"any",void 0,"blocked string"),Ie=createIntrinsicType(1,"error"),Ae=createIntrinsicType(1,"unresolved"),Oe=createIntrinsicType(1,"any",65536,"non-inferrable"),we=createIntrinsicType(1,"intrinsic"),Le=createIntrinsicType(2,"unknown"),Me=createIntrinsicType(32768,"undefined"),Re=k?Me:createIntrinsicType(32768,"undefined",65536,"widening"),Be=createIntrinsicType(32768,"undefined",void 0,"missing"),je=L?Be:Me,Je=createIntrinsicType(32768,"undefined",void 0,"optional"),We=createIntrinsicType(65536,"null"),Ue=k?We:createIntrinsicType(65536,"null",65536,"widening"),ze=createIntrinsicType(4,"string"),Ve=createIntrinsicType(8,"number"),qe=createIntrinsicType(64,"bigint"),He=createIntrinsicType(512,"false",void 0,"fresh"),Ke=createIntrinsicType(512,"false"),Ge=createIntrinsicType(512,"true",void 0,"fresh"),Qe=createIntrinsicType(512,"true");Ge.regularType=Qe,Ge.freshType=Ge,Qe.regularType=Qe,Qe.freshType=Ge,He.regularType=Ke,He.freshType=He,Ke.regularType=Ke,Ke.freshType=He;var Xe,Ye=getUnionType([Ke,Qe]),Ze=createIntrinsicType(4096,"symbol"),et=createIntrinsicType(16384,"void"),tt=createIntrinsicType(131072,"never"),nt=createIntrinsicType(131072,"never",262144,"silent"),rt=createIntrinsicType(131072,"never",void 0,"implicit"),it=createIntrinsicType(131072,"never",void 0,"unreachable"),ot=createIntrinsicType(67108864,"object"),at=getUnionType([ze,Ve]),st=getUnionType([ze,Ve,Ze]),ct=getUnionType([Ve,qe]),dt=getUnionType([ze,Ve,Ye,qe,We,Me]),pt=getTemplateLiteralType(["",""],[Ve]),ut=makeFunctionTypeMapper(e=>262144&e.flags?function getRestrictiveTypeParameter(e){return!e.constraint&&!getConstraintDeclaration(e)||e.constraint===kt?e:e.restrictiveInstantiation||(e.restrictiveInstantiation=createTypeParameter(e.symbol),e.restrictiveInstantiation.constraint=kt,e.restrictiveInstantiation)}(e):e,()=>"(restrictive mapper)"),mt=makeFunctionTypeMapper(e=>262144&e.flags?Pe:e,()=>"(permissive mapper)"),_t=createIntrinsicType(131072,"never",void 0,"unique literal"),ft=makeFunctionTypeMapper(e=>262144&e.flags?_t:e,()=>"(unique literal mapper)"),gt=makeFunctionTypeMapper(e=>(!Xe||e!==Dt&&e!==It&&e!==At||Xe(!0),e),()=>"(unmeasurable reporter)"),yt=makeFunctionTypeMapper(e=>(!Xe||e!==Dt&&e!==It&&e!==At||Xe(!1),e),()=>"(unreliable reporter)"),ht=createAnonymousType(void 0,y,l,l,l),Tt=createAnonymousType(void 0,y,l,l,l);Tt.objectFlags|=2048;var St=createAnonymousType(void 0,y,l,l,l);St.objectFlags|=141440;var xt=createSymbol(2048,"__type");xt.members=createSymbolTable();var vt=createAnonymousType(xt,y,l,l,l),bt=createAnonymousType(void 0,y,l,l,l),Ct=k?getUnionType([Me,We,bt]):Le,Et=createAnonymousType(void 0,y,l,l,l);Et.instantiations=new Map;var Nt=createAnonymousType(void 0,y,l,l,l);Nt.objectFlags|=262144;var kt=createAnonymousType(void 0,y,l,l,l),Ft=createAnonymousType(void 0,y,l,l,l),Pt=createAnonymousType(void 0,y,l,l,l),Dt=createTypeParameter(),It=createTypeParameter();It.constraint=Dt;var At=createTypeParameter(),wt=createTypeParameter(),Lt=createTypeParameter();Lt.constraint=wt;var Mt,Rt,Bt,jt,Jt,Wt,Ut,zt,Vt,qt,Ht,Kt,Gt,$t,Qt,Xt,Yt,Zt,en,tn,nn,rn,on,dn,pn,mn,_n,fn,gn,yn,hn,Tn,Sn,xn,vn,bn,Cn,En,Nn,kn,Fn,Pn,Dn,In,An,On,wn,Ln,Mn,Rn,jn,Jn,Wn,Un,Hn,Qn,Xn,tr,nr,rr,ar,sr,cr,lr,dr,pr,ur,mr=createTypePredicate(1,"<>",0,ke),_r=createSignature(void 0,void 0,void 0,l,ke,void 0,0,0),fr=createSignature(void 0,void 0,void 0,l,Ie,void 0,0,0),gr=createSignature(void 0,void 0,void 0,l,ke,void 0,0,0),yr=createSignature(void 0,void 0,void 0,l,nt,void 0,0,0),hr=createIndexInfo(Ve,ze,!0),Tr=createIndexInfo(ze,ke,!1),Sr=new Map,xr={get yieldType(){return h.fail("Not supported")},get returnType(){return h.fail("Not supported")},get nextType(){return h.fail("Not supported")}},vr=createIterationTypes(ke,ke,ke),br=createIterationTypes(nt,nt,nt),Cr={iterableCacheKey:"iterationTypesOfAsyncIterable",iteratorCacheKey:"iterationTypesOfAsyncIterator",iteratorSymbolName:"asyncIterator",getGlobalIteratorType:function getGlobalAsyncIteratorType(e){return bn||(bn=getGlobalType("AsyncIterator",3,e))||Et},getGlobalIterableType:getGlobalAsyncIterableType,getGlobalIterableIteratorType:getGlobalAsyncIterableIteratorType,getGlobalIteratorObjectType:function getGlobalAsyncIteratorObjectType(e){return kn||(kn=getGlobalType("AsyncIteratorObject",3,e))||Et},getGlobalGeneratorType:function getGlobalAsyncGeneratorType(e){return Fn||(Fn=getGlobalType("AsyncGenerator",3,e))||Et},getGlobalBuiltinIteratorTypes:function getGlobalBuiltinAsyncIteratorTypes(){return Nn??(Nn=getGlobalBuiltinTypes(["ReadableStreamAsyncIterator"],1))},resolveIterationType:(e,t)=>getAwaitedType(e,t,Ot.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member),mustHaveANextMethodDiagnostic:Ot.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:Ot.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:Ot.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},Er={iterableCacheKey:"iterationTypesOfIterable",iteratorCacheKey:"iterationTypesOfIterator",iteratorSymbolName:"iterator",getGlobalIteratorType:function getGlobalIteratorType(e){return gn||(gn=getGlobalType("Iterator",3,e))||Et},getGlobalIterableType,getGlobalIterableIteratorType,getGlobalIteratorObjectType:function getGlobalIteratorObjectType(e){return hn||(hn=getGlobalType("IteratorObject",3,e))||Et},getGlobalGeneratorType:function getGlobalGeneratorType(e){return Tn||(Tn=getGlobalType("Generator",3,e))||Et},getGlobalBuiltinIteratorTypes:function getGlobalBuiltinIteratorTypes(){return En??(En=getGlobalBuiltinTypes(["ArrayIterator","MapIterator","SetIterator","StringIterator"],1))},resolveIterationType:(e,t)=>e,mustHaveANextMethodDiagnostic:Ot.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:Ot.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:Ot.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},Nr=new Map,kr=new Map,Fr=new Map,Pr=0,Dr=0,Ir=0,Ar=!1,Or=0,wr=[],Lr=[],Mr=[],Rr=0,Br=[],jr=[],Jr=[],Ur=0,zr=[],Vr=[],qr=0,Hr=getStringLiteralType(""),Kr=getNumberLiteralType(0),Gr=getBigIntLiteralType({negative:!1,base10Value:"0"}),$r=[],Qr=[],Xr=[],Yr=0,Zr=!1,ei=0,ti=10,ni=[],ri=[],ii=[],oi=[],ai=[],si=[],ci=[],li=[],di=[],pi=[],ui=[],mi=[],_i=[],fi=[],gi=[],yi=[],hi=[],Ti=[],Si=[],xi=0,vi=createDiagnosticCollection(),bi=createDiagnosticCollection(),Ci=function createTypeofType(){return getUnionType(arrayFrom(ta.keys(),getStringLiteralType))}(),Ei=new Map,Ni=new Map,ki=new Map,Fi=new Map,Pi=new Map,Ii=new Map,Ai=[[".mts",".mjs"],[".ts",".js"],[".cts",".cjs"],[".mjs",".mjs"],[".js",".js"],[".cjs",".cjs"],[".tsx",1===S.jsx?".jsx":".js"],[".jsx",".jsx"],[".json",".json"]];return function initializeTypeChecker(){for(const t of e.getSourceFiles())bindSourceFile(t,S);let t;Mt=new Map;for(const n of e.getSourceFiles())if(!n.redirectInfo){if(!isExternalOrCommonJsModule(n)){const e=n.locals.get("globalThis");if(null==e?void 0:e.declarations)for(const t of e.declarations)vi.add(createDiagnosticForNode(t,Ot.Declaration_name_conflicts_with_built_in_global_identifier_0,"globalThis"));mergeSymbolTable(z,n.locals)}if(n.jsGlobalAugmentations&&mergeSymbolTable(z,n.jsGlobalAugmentations),n.patternAmbientModules&&n.patternAmbientModules.length&&(Bt=concatenate(Bt,n.patternAmbientModules)),n.moduleAugmentations.length&&(t||(t=[])).push(n.moduleAugmentations),n.symbol&&n.symbol.globalExports){n.symbol.globalExports.forEach((e,t)=>{z.has(t)||z.set(t,e)})}}if(t)for(const e of t)for(const t of e)isGlobalScopeAugmentation(t.parent)&&mergeModuleAugmentation(t);(function addUndefinedToGlobalsOrErrorOnRedeclaration(){const e=V.escapedName,t=z.get(e);t?forEach(t.declarations,t=>{isTypeDeclaration(t)||vi.add(createDiagnosticForNode(t,Ot.Declaration_name_conflicts_with_built_in_global_identifier_0,unescapeLeadingUnderscores(e)))}):z.set(e,V)})(),getSymbolLinks(V).type=Re,getSymbolLinks($).type=getGlobalType("IArguments",0,!0),getSymbolLinks(ve).type=Ie,getSymbolLinks(q).type=createObjectType(16,q),Vt=getGlobalType("Array",1,!0),Jt=getGlobalType("Object",0,!0),Wt=getGlobalType("Function",0,!0),Ut=P&&getGlobalType("CallableFunction",0,!0)||Wt,zt=P&&getGlobalType("NewableFunction",0,!0)||Wt,Ht=getGlobalType("String",0,!0),Kt=getGlobalType("Number",0,!0),Gt=getGlobalType("Boolean",0,!0),$t=getGlobalType("RegExp",0,!0),Xt=createArrayType(ke),(Yt=createArrayType(Fe))===ht&&(Yt=createAnonymousType(void 0,y,l,l,l));if(qt=getGlobalTypeOrUndefined("ReadonlyArray",1)||Vt,Zt=qt?createTypeFromGenericGlobalType(qt,[ke]):Xt,Qt=getGlobalTypeOrUndefined("ThisType",1),t)for(const e of t)for(const t of e)isGlobalScopeAugmentation(t.parent)||mergeModuleAugmentation(t);Mt.forEach(({firstFile:e,secondFile:t,conflictingSymbols:n})=>{if(n.size<8)n.forEach(({isBlockScoped:e,firstFileLocations:t,secondFileLocations:n},r)=>{const i=e?Ot.Cannot_redeclare_block_scoped_variable_0:Ot.Duplicate_identifier_0;for(const e of t)addDuplicateDeclarationError(e,i,r,n);for(const e of n)addDuplicateDeclarationError(e,i,r,t)});else{const r=arrayFrom(n.keys()).join(", ");vi.add(addRelatedInfo(createDiagnosticForNode(e,Ot.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,r),createDiagnosticForNode(t,Ot.Conflicts_are_in_this_file))),vi.add(addRelatedInfo(createDiagnosticForNode(t,Ot.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0,r),createDiagnosticForNode(e,Ot.Conflicts_are_in_this_file)))}}),Mt=void 0}(),re;function isDefinitelyReferenceToGlobalSymbolObject(e){return!!isPropertyAccessExpression(e)&&(!!isIdentifier(e.name)&&(!(!isPropertyAccessExpression(e.expression)&&!isIdentifier(e.expression))&&(isIdentifier(e.expression)?"Symbol"===idText(e.expression)&&getResolvedSymbol(e.expression)===(getGlobalSymbol("Symbol",1160127,void 0)||ve):!!isIdentifier(e.expression.expression)&&("Symbol"===idText(e.expression.name)&&"globalThis"===idText(e.expression.expression)&&getResolvedSymbol(e.expression.expression)===q))))}function getCachedType(e){return e?he.get(e):void 0}function setCachedType(e,t){return e&&he.set(e,t),t}function getJsxNamespace(e){if(e){const t=getSourceFileOfNode(e);if(t)if(isJsxOpeningFragment(e)){if(t.localJsxFragmentNamespace)return t.localJsxFragmentNamespace;const n=t.pragmas.get("jsxfrag");if(n){const e=isArray(n)?n[0]:n;if(t.localJsxFragmentFactory=parseIsolatedEntityName(e.arguments.factory,x),visitNode(t.localJsxFragmentFactory,markAsSynthetic,isEntityName),t.localJsxFragmentFactory)return t.localJsxFragmentNamespace=getFirstIdentifier(t.localJsxFragmentFactory).escapedText}const r=getJsxFragmentFactoryEntity(e);if(r)return t.localJsxFragmentFactory=r,t.localJsxFragmentNamespace=getFirstIdentifier(r).escapedText}else{const e=function getLocalJsxNamespace(e){if(e.localJsxNamespace)return e.localJsxNamespace;const t=e.pragmas.get("jsx");if(t){const n=isArray(t)?t[0]:t;if(e.localJsxFactory=parseIsolatedEntityName(n.arguments.factory,x),visitNode(e.localJsxFactory,markAsSynthetic,isEntityName),e.localJsxFactory)return e.localJsxNamespace=getFirstIdentifier(e.localJsxFactory).escapedText}}(t);if(e)return t.localJsxNamespace=e}}return pr||(pr="React",S.jsxFactory?(visitNode(ur=parseIsolatedEntityName(S.jsxFactory,x),markAsSynthetic),ur&&(pr=getFirstIdentifier(ur).escapedText)):S.reactNamespace&&(pr=escapeLeadingUnderscores(S.reactNamespace))),ur||(ur=Wr.createQualifiedName(Wr.createIdentifier(unescapeLeadingUnderscores(pr)),"createElement")),pr}function markAsSynthetic(e){return setTextRangePosEnd(e,-1,-1),visitEachChild(e,markAsSynthetic,void 0)}function errorSkippedOn(e,t,n,...r){const i=error2(t,n,...r);return i.skippedOn=e,i}function createError(e,t,...n){return e?createDiagnosticForNode(e,t,...n):createCompilerDiagnostic(t,...n)}function error2(e,t,...n){const r=createError(e,t,...n);return vi.add(r),r}function getVerbatimModuleSyntaxErrorMessage(e){return fileExtensionIsOneOf(getSourceFileOfNode(e).fileName,[".cts",".cjs"])?Ot.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax:Ot.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript}function addErrorOrSuggestion(e,t){e?vi.add(t):bi.add({...t,category:2})}function errorOrSuggestion(e,t,n,...r){if(t.pos<0||t.end<0){if(!e)return;const i=getSourceFileOfNode(t);return void addErrorOrSuggestion(e,"message"in n?createFileDiagnostic(i,0,0,n,...r):createDiagnosticForFileFromMessageChain(i,n))}addErrorOrSuggestion(e,"message"in n?createDiagnosticForNode(t,n,...r):createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(t),t,n))}function errorAndMaybeSuggestAwait(e,t,n,...r){const i=error2(e,n,...r);if(t){addRelatedInfo(i,createDiagnosticForNode(e,Ot.Did_you_forget_to_use_await))}return i}function addDeprecatedSuggestionWorker(e,t){const n=Array.isArray(e)?forEach(e,getJSDocDeprecatedTag):getJSDocDeprecatedTag(e);return n&&addRelatedInfo(t,createDiagnosticForNode(n,Ot.The_declaration_was_marked_as_deprecated_here)),bi.add(t),t}function isDeprecatedSymbol(e){const t=getParentOfSymbol(e);return t&&length(e.declarations)>1?64&t.flags?some(e.declarations,isDeprecatedDeclaration2):every(e.declarations,isDeprecatedDeclaration2):!!e.valueDeclaration&&isDeprecatedDeclaration2(e.valueDeclaration)||length(e.declarations)&&every(e.declarations,isDeprecatedDeclaration2)}function isDeprecatedDeclaration2(e){return!!(536870912&getCombinedNodeFlagsCached(e))}function addDeprecatedSuggestion(e,t,n){return addDeprecatedSuggestionWorker(t,createDiagnosticForNode(e,Ot._0_is_deprecated,n))}function createSymbol(e,t,n){p++;const r=new a(33554432|e,t);return r.links=new aa,r.links.checkFlags=n||0,r}function createParameter2(e,t){const n=createSymbol(1,e);return n.links.type=t,n}function createProperty(e,t){const n=createSymbol(4,e);return n.links.type=t,n}function getExcludedSymbolFlags(e){let t=0;return 2&e&&(t|=111551),1&e&&(t|=111550),4&e&&(t|=0),8&e&&(t|=900095),16&e&&(t|=110991),32&e&&(t|=899503),64&e&&(t|=788872),256&e&&(t|=899327),128&e&&(t|=899967),512&e&&(t|=110735),8192&e&&(t|=103359),32768&e&&(t|=46015),65536&e&&(t|=78783),262144&e&&(t|=526824),524288&e&&(t|=788968),2097152&e&&(t|=2097152),t}function recordMergedSymbol(e,t){t.mergeId||(t.mergeId=Yo,Yo++),ni[t.mergeId]=e}function cloneSymbol(e){const t=createSymbol(e.flags,e.escapedName);return t.declarations=e.declarations?e.declarations.slice():[],t.parent=e.parent,e.valueDeclaration&&(t.valueDeclaration=e.valueDeclaration),e.constEnumOnlyModule&&(t.constEnumOnlyModule=!0),e.members&&(t.members=new Map(e.members)),e.exports&&(t.exports=new Map(e.exports)),recordMergedSymbol(t,e),t}function mergeSymbol(e,t,n=!1){if(!(e.flags&getExcludedSymbolFlags(t.flags))||67108864&(t.flags|e.flags)){if(t===e)return e;if(!(33554432&e.flags)){const n=resolveSymbol(e);if(n===ve)return t;if(n.flags&getExcludedSymbolFlags(t.flags)&&!(67108864&(t.flags|n.flags)))return reportMergeSymbolError(e,t),t;e=cloneSymbol(n)}512&t.flags&&512&e.flags&&e.constEnumOnlyModule&&!t.constEnumOnlyModule&&(e.constEnumOnlyModule=!1),e.flags|=t.flags,t.valueDeclaration&&setValueDeclaration(e,t.valueDeclaration),addRange(e.declarations,t.declarations),t.members&&(e.members||(e.members=createSymbolTable()),mergeSymbolTable(e.members,t.members,n)),t.exports&&(e.exports||(e.exports=createSymbolTable()),mergeSymbolTable(e.exports,t.exports,n,e)),n||recordMergedSymbol(e,t)}else 1024&e.flags?e!==q&&error2(t.declarations&&getNameOfDeclaration(t.declarations[0]),Ot.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,symbolToString(e)):reportMergeSymbolError(e,t);return e;function reportMergeSymbolError(e,t){const n=!!(384&e.flags||384&t.flags),r=!!(2&e.flags||2&t.flags),i=n?Ot.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:r?Ot.Cannot_redeclare_block_scoped_variable_0:Ot.Duplicate_identifier_0,o=t.declarations&&getSourceFileOfNode(t.declarations[0]),a=e.declarations&&getSourceFileOfNode(e.declarations[0]),s=isPlainJsFile(o,S.checkJs),c=isPlainJsFile(a,S.checkJs),l=symbolToString(t);if(o&&a&&Mt&&!n&&o!==a){const n=-1===comparePaths(o.path,a.path)?o:a,i=n===o?a:o,d=getOrUpdate(Mt,`${n.path}|${i.path}`,()=>({firstFile:n,secondFile:i,conflictingSymbols:new Map})),p=getOrUpdate(d.conflictingSymbols,l,()=>({isBlockScoped:r,firstFileLocations:[],secondFileLocations:[]}));s||addDuplicateLocations(p.firstFileLocations,t),c||addDuplicateLocations(p.secondFileLocations,e)}else s||addDuplicateDeclarationErrorsForSymbols(t,i,l,e),c||addDuplicateDeclarationErrorsForSymbols(e,i,l,t)}function addDuplicateLocations(e,t){if(t.declarations)for(const n of t.declarations)pushIfUnique(e,n)}}function addDuplicateDeclarationErrorsForSymbols(e,t,n,r){forEach(e.declarations,e=>{addDuplicateDeclarationError(e,t,n,r.declarations)})}function addDuplicateDeclarationError(e,t,n,r){const i=(getExpandoInitializer(e,!1)?getNameOfExpando(e):getNameOfDeclaration(e))||e,o=function lookupOrIssueError(e,t,...n){const r=e?createDiagnosticForNode(e,t,...n):createCompilerDiagnostic(t,...n);return vi.lookup(r)||(vi.add(r),r)}(i,t,n);for(const e of r||l){const t=(getExpandoInitializer(e,!1)?getNameOfExpando(e):getNameOfDeclaration(e))||e;if(t===i)continue;o.relatedInformation=o.relatedInformation||[];const r=createDiagnosticForNode(t,Ot._0_was_also_declared_here,n),a=createDiagnosticForNode(t,Ot.and_here);length(o.relatedInformation)>=5||some(o.relatedInformation,e=>0===compareDiagnostics(e,a)||0===compareDiagnostics(e,r))||addRelatedInfo(o,length(o.relatedInformation)?a:r)}}function mergeSymbolTable(e,t,n=!1,r){t.forEach((t,i)=>{const o=e.get(i),a=o?mergeSymbol(o,t,n):getMergedSymbol(t);r&&o&&(a.parent=r),e.set(i,a)})}function mergeModuleAugmentation(e){var t,n,r;const i=e.parent;if((null==(t=i.symbol.declarations)?void 0:t[0])===i)if(isGlobalScopeAugmentation(i))mergeSymbolTable(z,i.symbol.exports);else{let t=resolveExternalModuleNameWorker(e,e,33554432&e.parent.parent.flags?void 0:Ot.Invalid_module_name_in_augmentation_module_0_cannot_be_found,!1,!0);if(!t)return;if(t=resolveExternalModuleSymbol(t),1920&t.flags)if(some(Bt,e=>t===e.symbol)){const n=mergeSymbol(i.symbol,t,!0);jt||(jt=new Map),jt.set(e.text,n)}else{if((null==(n=t.exports)?void 0:n.get("__export"))&&(null==(r=i.symbol.exports)?void 0:r.size)){const e=getResolvedMembersOrExportsOfSymbol(t,"resolvedExports");for(const[n,r]of arrayFrom(i.symbol.exports.entries()))e.has(n)&&!t.exports.has(n)&&mergeSymbol(e.get(n),r)}mergeSymbol(t,i.symbol)}else error2(e,Ot.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,e.text)}else h.assert(i.symbol.declarations.length>1)}function getSymbolLinks(e){if(33554432&e.flags)return e.links;const t=getSymbolId(e);return ri[t]??(ri[t]=new aa)}function getNodeLinks(e){const t=getNodeId(e);return ii[t]||(ii[t]=new NodeLinks)}function getSymbol2(e,t,n){if(n){const r=getMergedSymbol(e.get(t));if(r){if(r.flags&n)return r;if(2097152&r.flags){if(getSymbolFlags(r)&n)return r}}}}function isBlockScopedNameDeclaredBeforeUse(t,n){const r=getSourceFileOfNode(t),i=getSourceFileOfNode(n),o=getEnclosingBlockScopeContainer(t);if(r!==i){if(v&&(r.externalModuleIndicator||i.externalModuleIndicator)||!S.outFile||isInTypeQuery(n)||33554432&t.flags)return!0;if(isUsedInFunctionOrInstanceProperty(n,t))return!0;const o=e.getSourceFiles();return o.indexOf(r)<=o.indexOf(i)}if(16777216&n.flags||isInTypeQuery(n)||isInAmbientOrTypeNode(n))return!0;if(t.pos<=n.pos&&(!isPropertyDeclaration(t)||!isThisProperty(n.parent)||t.initializer||t.exclamationToken)){if(209===t.kind){const e=getAncestor(n,209);return e?findAncestor(e,isBindingElement)!==findAncestor(t,isBindingElement)||t.pose===t?"quit":isComputedPropertyName(e)?e.parent.parent===t:!b&&isDecorator(e)&&(e.parent===t||isMethodDeclaration(e.parent)&&e.parent.parent===t||isGetOrSetAccessorDeclaration(e.parent)&&e.parent.parent===t||isPropertyDeclaration(e.parent)&&e.parent.parent===t||isParameter(e.parent)&&e.parent.parent.parent===t));return!e||!(b||!isDecorator(e))&&!!findAncestor(n,t=>t===e?"quit":isFunctionLike(t)&&!getImmediatelyInvokedFunctionExpression(t))}return isPropertyDeclaration(t)?!isPropertyImmediatelyReferencedWithinDeclaration(t,n,!1):!isParameterPropertyDeclaration(t,t.parent)||!(E&&getContainingClass(t)===getContainingClass(n)&&isUsedInFunctionOrInstanceProperty(n,t))}return!!(282===n.parent.kind||278===n.parent.kind&&n.parent.isExportEquals)||(!(278!==n.kind||!n.isExportEquals)||!!isUsedInFunctionOrInstanceProperty(n,t)&&(!E||!getContainingClass(t)||!isPropertyDeclaration(t)&&!isParameterPropertyDeclaration(t,t.parent)||!isPropertyImmediatelyReferencedWithinDeclaration(t,n,!0)));function isUsedInFunctionOrInstanceProperty(e,t){return isUsedInFunctionOrInstancePropertyWorker(e,t)}function isUsedInFunctionOrInstancePropertyWorker(e,t){return!!findAncestor(e,n=>{if(n===o)return"quit";if(isFunctionLike(n))return!getImmediatelyInvokedFunctionExpression(n);if(isClassStaticBlockDeclaration(n))return t.pos=r&&o.pos<=i){const n=Wr.createPropertyAccessExpression(Wr.createThis(),e);setParent(n.expression,n),setParent(n,o),n.flowNode=o.returnFlowNode;if(!containsUndefinedType(getFlowTypeOfReference(n,t,getOptionalType(t))))return!0}return!1}(e,getTypeOfSymbol(getSymbolOfDeclaration(t)),filter(t.parent.members,isClassStaticBlockDeclaration),t.parent.pos,n.pos))return!0}}}else{if(!(173===t.kind&&!isStatic(t))||getContainingClass(e)!==getContainingClass(t))return!0}}const i=tryCast(n.parent,isDecorator);if(i&&i.expression===n){if(isParameter(i.parent))return!!isUsedInFunctionOrInstancePropertyWorker(i.parent.parent.parent,t)||"quit";if(isMethodDeclaration(i.parent))return!!isUsedInFunctionOrInstancePropertyWorker(i.parent.parent,t)||"quit"}return!1})}function isPropertyImmediatelyReferencedWithinDeclaration(e,t,n){if(t.end>e.end)return!1;return void 0===findAncestor(t,t=>{if(t===e)return"quit";switch(t.kind){case 220:return!0;case 173:return!n||!(isPropertyDeclaration(e)&&t.parent===e.parent||isParameterPropertyDeclaration(e,e.parent)&&t.parent===e.parent.parent)||"quit";case 242:switch(t.parent.kind){case 178:case 175:case 179:return!0;default:return!1}default:return!1}})}}function getRequiresScopeChangeCache(e){return getNodeLinks(e).declarationRequiresScopeChange}function setRequiresScopeChangeCache(e,t){getNodeLinks(e).declarationRequiresScopeChange=t}function addTypeOnlyDeclarationRelatedInfo(e,t,n){return t?addRelatedInfo(e,createDiagnosticForNode(t,282===t.kind||279===t.kind||281===t.kind?Ot._0_was_exported_here:Ot._0_was_imported_here,n)):e}function diagnosticName(e){return isString(e)?unescapeLeadingUnderscores(e):declarationNameToString(e)}function checkAndReportErrorForMissingPrefix(e,t,n){if(!isIdentifier(e)||e.escapedText!==t||isTypeReferenceIdentifier(e)||isInTypeQuery(e))return!1;const r=getThisContainer(e,!1,!1);let i=r;for(;i;){if(isClassLike(i.parent)){const o=getSymbolOfDeclaration(i.parent);if(!o)break;if(getPropertyOfType(getTypeOfSymbol(o),t))return error2(e,Ot.Cannot_find_name_0_Did_you_mean_the_static_member_1_0,diagnosticName(n),symbolToString(o)),!0;if(i===r&&!isStatic(i)){if(getPropertyOfType(getDeclaredTypeOfSymbol(o).thisType,t))return error2(e,Ot.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0,diagnosticName(n)),!0}}i=i.parent}return!1}function checkAndReportErrorForExtendingInterface(e){const t=getEntityNameForExtendingInterface(e);return!(!t||!resolveEntityName(t,64,!0))&&(error2(e,Ot.Cannot_extend_an_interface_0_Did_you_mean_implements,getTextOfNode(t)),!0)}function getEntityNameForExtendingInterface(e){switch(e.kind){case 80:case 212:return e.parent?getEntityNameForExtendingInterface(e.parent):void 0;case 234:if(isEntityNameExpression(e.expression))return e.expression;default:return}}function isPrimitiveTypeName(e){return"any"===e||"string"===e||"number"===e||"boolean"===e||"never"===e||"unknown"===e}function isSameScopeDescendentOf(e,t,n){return!!t&&!!findAncestor(e,e=>e===t||!!(e===n||isFunctionLike(e)&&(!getImmediatelyInvokedFunctionExpression(e)||3&getFunctionFlags(e)))&&"quit")}function getAnyImportSyntax(e){switch(e.kind){case 272:return e;case 274:return e.parent;case 275:return e.parent.parent;case 277:return e.parent.parent.parent;default:return}}function getDeclarationOfAliasSymbol(e){return e.declarations&&findLast(e.declarations,isAliasSymbolDeclaration)}function isAliasSymbolDeclaration(e){return 272===e.kind||271===e.kind||274===e.kind&&!!e.name||275===e.kind||281===e.kind||277===e.kind||282===e.kind||278===e.kind&&exportAssignmentIsAlias(e)||isBinaryExpression(e)&&2===getAssignmentDeclarationKind(e)&&exportAssignmentIsAlias(e)||isAccessExpression(e)&&isBinaryExpression(e.parent)&&e.parent.left===e&&64===e.parent.operatorToken.kind&&isAliasableOrJsExpression(e.parent.right)||305===e.kind||304===e.kind&&isAliasableOrJsExpression(e.initializer)||261===e.kind&&isVariableDeclarationInitializedToBareOrAccessedRequire(e)||209===e.kind&&isVariableDeclarationInitializedToBareOrAccessedRequire(e.parent.parent)}function isAliasableOrJsExpression(e){return isAliasableExpression(e)||isFunctionExpression(e)&&isJSConstructor(e)}function getTargetOfImportEqualsDeclaration(e,t){const n=getCommonJSPropertyAccess(e);if(n){const e=getLeftmostAccessExpression(n.expression).arguments[0];return isIdentifier(n.name)?resolveSymbol(getPropertyOfType(resolveExternalModuleTypeByLiteral(e),n.name.escapedText)):void 0}if(isVariableDeclaration(e)||284===e.moduleReference.kind){const n=resolveExternalModuleName(e,getExternalModuleRequireArgument(e)||getExternalModuleImportEqualsDeclarationExpression(e)),r=resolveExternalModuleSymbol(n);if(r&&102<=v&&v<=199){const n=getExportOfModule(r,"module.exports",e,t);if(n)return n}return markSymbolOfAliasDeclarationIfTypeOnly(e,n,r,!1),r}const r=getSymbolOfPartOfRightHandSideOfImportEquals(e.moduleReference,t);return function checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(e,t){if(markSymbolOfAliasDeclarationIfTypeOnly(e,void 0,t,!1)&&!e.isTypeOnly){const t=getTypeOnlyAliasDeclaration(getSymbolOfDeclaration(e)),n=282===t.kind||279===t.kind,r=n?Ot.An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:Ot.An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type,i=n?Ot._0_was_exported_here:Ot._0_was_imported_here,o=279===t.kind?"*":moduleExportNameTextUnescaped(t.name);addRelatedInfo(error2(e.moduleReference,r),createDiagnosticForNode(t,i,o))}}(e,r),r}function resolveExportByName(e,t,n,r){const i=e.exports.get("export="),o=i?getPropertyOfType(getTypeOfSymbol(i),t,!0):e.exports.get(t),a=resolveSymbol(o,r);return markSymbolOfAliasDeclarationIfTypeOnly(n,o,a,!1),a}function isSyntacticDefault(e){return isExportAssignment(e)&&!e.isExportEquals||hasSyntacticModifier(e,2048)||isExportSpecifier(e)||isNamespaceExport(e)}function getEmitSyntaxForModuleSpecifierExpression(t){return isStringLiteralLike(t)?e.getEmitSyntaxForUsageLocation(getSourceFileOfNode(t),t):void 0}function isOnlyImportableAsDefault(e,t){if(100<=v&&v<=199){if(99===getEmitSyntaxForModuleSpecifierExpression(e)){t??(t=resolveExternalModuleName(e,e,!0));const n=t&&getSourceFileOfModule(t);return n&&(isJsonSourceFile(n)||".d.json.ts"===getDeclarationFileExtension(n.fileName))}}return!1}function canHaveSyntheticDefault(t,n,r,i){const o=t&&getEmitSyntaxForModuleSpecifierExpression(i);if(t&&void 0!==o){const n=e.getImpliedNodeFormatForEmit(t);if(99===o&&1===n&&100<=v&&v<=199)return!0;if(99===o&&99===n)return!1}if(!N)return!1;if(!t||t.isDeclarationFile){const e=resolveExportByName(n,"default",void 0,!0);return(!e||!some(e.declarations,isSyntacticDefault))&&!resolveExportByName(n,escapeLeadingUnderscores("__esModule"),void 0,r)}return isSourceFileJS(t)?"object"!=typeof t.externalModuleIndicator&&!resolveExportByName(n,escapeLeadingUnderscores("__esModule"),void 0,r):hasExportAssignmentSymbol(n)}function getTargetofModuleDefault(t,n,r){var i;const o=null==(i=t.declarations)?void 0:i.find(isSourceFile),a=getModuleSpecifierForImportOrExport(n);let s,c;if(isShorthandAmbientModuleSymbol(t))s=t;else{if(o&&a&&102<=v&&v<=199&&1===getEmitSyntaxForModuleSpecifierExpression(a)&&99===e.getImpliedNodeFormatForEmit(o)&&(c=resolveExportByName(t,"module.exports",n,r)))return Gn(S)?(markSymbolOfAliasDeclarationIfTypeOnly(n,c,void 0,!1),c):void error2(n.name,Ot.Module_0_can_only_be_default_imported_using_the_1_flag,symbolToString(t),"esModuleInterop");s=resolveExportByName(t,"default",n,r)}if(!a)return s;const l=isOnlyImportableAsDefault(a,t),d=canHaveSyntheticDefault(o,t,r,a);if(s||d||l){if(d||l){const e=resolveExternalModuleSymbol(t,r)||resolveSymbol(t,r);return markSymbolOfAliasDeclarationIfTypeOnly(n,t,e,!1),e}}else if(hasExportAssignmentSymbol(t)&&!N){const e=v>=5?"allowSyntheticDefaultImports":"esModuleInterop",r=t.exports.get("export=").valueDeclaration,i=error2(n.name,Ot.Module_0_can_only_be_default_imported_using_the_1_flag,symbolToString(t),e);r&&addRelatedInfo(i,createDiagnosticForNode(r,Ot.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,e))}else isImportClause(n)?function reportNonDefaultExport(e,t){var n,r,i;if(null==(n=e.exports)?void 0:n.has(t.symbol.escapedName))error2(t.name,Ot.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,symbolToString(e),symbolToString(t.symbol));else{const n=error2(t.name,Ot.Module_0_has_no_default_export,symbolToString(e)),o=null==(r=e.exports)?void 0:r.get("__export");if(o){const e=null==(i=o.declarations)?void 0:i.find(e=>{var t,n;return!!(isExportDeclaration(e)&&e.moduleSpecifier&&(null==(n=null==(t=resolveExternalModuleName(e,e.moduleSpecifier))?void 0:t.exports)?void 0:n.has("default")))});e&&addRelatedInfo(n,createDiagnosticForNode(e,Ot.export_Asterisk_does_not_re_export_a_default))}}}(t,n):errorNoModuleMemberSymbol(t,t,n,isImportOrExportSpecifier(n)&&n.propertyName||n.name);return markSymbolOfAliasDeclarationIfTypeOnly(n,s,void 0,!1),s}function getModuleSpecifierForImportOrExport(e){switch(e.kind){case 274:return e.parent.moduleSpecifier;case 272:return isExternalModuleReference(e.moduleReference)?e.moduleReference.expression:void 0;case 275:case 282:return e.parent.parent.moduleSpecifier;case 277:return e.parent.parent.parent.moduleSpecifier;default:return h.assertNever(e)}}function getExportOfModule(e,t,n,r){var i;if(1536&e.flags){const o=getExportsOfSymbol(e).get(t),a=resolveSymbol(o,r);return markSymbolOfAliasDeclarationIfTypeOnly(n,o,a,!1,null==(i=getSymbolLinks(e).typeOnlyExportStarMap)?void 0:i.get(t),t),a}}function getExternalModuleMember(e,t,n=!1){var r;const i=getExternalModuleRequireArgument(e)||e.moduleSpecifier,o=resolveExternalModuleName(e,i),a=!isPropertyAccessExpression(t)&&t.propertyName||t.name;if(!isIdentifier(a)&&11!==a.kind)return;const s=moduleExportNameTextEscaped(a),c=resolveESModuleSymbol(o,i,!1,"default"===s&&N);if(c&&(s||11===a.kind)){if(isShorthandAmbientModuleSymbol(o))return o;let l;l=o&&o.exports&&o.exports.get("export=")?getPropertyOfType(getTypeOfSymbol(c),s,!0):function getPropertyOfVariable(e,t){if(3&e.flags){const n=e.valueDeclaration.type;if(n)return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(n),t))}}(c,s),l=resolveSymbol(l,n);let d=getExportOfModule(c,s,t,n);if(void 0===d&&"default"===s){const e=null==(r=o.declarations)?void 0:r.find(isSourceFile);(isOnlyImportableAsDefault(i,o)||canHaveSyntheticDefault(e,o,n,i))&&(d=resolveExternalModuleSymbol(o,n)||resolveSymbol(o,n))}const p=d&&l&&d!==l?function combineValueAndTypeSymbols(e,t){if(e===ve&&t===ve)return ve;if(790504&e.flags)return e;const n=createSymbol(e.flags|t.flags,e.escapedName);return h.assert(e.declarations||t.declarations),n.declarations=deduplicate(concatenate(e.declarations,t.declarations),equateValues),n.parent=e.parent||t.parent,e.valueDeclaration&&(n.valueDeclaration=e.valueDeclaration),t.members&&(n.members=new Map(t.members)),e.exports&&(n.exports=new Map(e.exports)),n}(l,d):d||l;return isImportOrExportSpecifier(t)&&isOnlyImportableAsDefault(i,o)&&"default"!==s?error2(a,Ot.Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0,$e[v]):p||errorNoModuleMemberSymbol(o,c,e,a),p}}function errorNoModuleMemberSymbol(e,t,n,r){var i;const o=getFullyQualifiedName(e,n),a=declarationNameToString(r),s=isIdentifier(r)?getSuggestedSymbolForNonexistentModule(r,t):void 0;if(void 0!==s){const e=symbolToString(s),t=error2(r,Ot._0_has_no_exported_member_named_1_Did_you_mean_2,o,a,e);s.valueDeclaration&&addRelatedInfo(t,createDiagnosticForNode(s.valueDeclaration,Ot._0_is_declared_here,e))}else(null==(i=e.exports)?void 0:i.has("default"))?error2(r,Ot.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,o,a):function reportNonExportedMember(e,t,n,r,i){var o,a;const s=null==(a=null==(o=tryCast(r.valueDeclaration,canHaveLocals))?void 0:o.locals)?void 0:a.get(moduleExportNameTextEscaped(t)),c=r.exports;if(s){const r=null==c?void 0:c.get("export=");if(r)getSymbolIfSameReference(r,s)?function reportInvalidImportEqualsExportMember(e,t,n,r){if(v>=5){error2(t,Gn(S)?Ot._0_can_only_be_imported_by_using_a_default_import:Ot._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n)}else if(isInJSFile(e)){error2(t,Gn(S)?Ot._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:Ot._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n)}else{error2(t,Gn(S)?Ot._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:Ot._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n,n,r)}}(e,t,n,i):error2(t,Ot.Module_0_has_no_exported_member_1,i,n);else{const e=c?find(symbolsToArray(c),e=>!!getSymbolIfSameReference(e,s)):void 0,r=e?error2(t,Ot.Module_0_declares_1_locally_but_it_is_exported_as_2,i,n,symbolToString(e)):error2(t,Ot.Module_0_declares_1_locally_but_it_is_not_exported,i,n);s.declarations&&addRelatedInfo(r,...map(s.declarations,(e,t)=>createDiagnosticForNode(e,0===t?Ot._0_is_declared_here:Ot.and_here,n)))}}else error2(t,Ot.Module_0_has_no_exported_member_1,i,n)}(n,r,a,e,o)}function getCommonJSPropertyAccess(e){if(isVariableDeclaration(e)&&e.initializer&&isPropertyAccessExpression(e.initializer))return e.initializer}function getTargetOfExportSpecifier(e,t,n){const r=e.propertyName||e.name;if(moduleExportNameIsDefault(r)){const t=getModuleSpecifierForImportOrExport(e),r=t&&resolveExternalModuleName(e,t);if(r)return getTargetofModuleDefault(r,e,!!n)}const i=e.parent.parent.moduleSpecifier?getExternalModuleMember(e.parent.parent,e,n):11===r.kind?void 0:resolveEntityName(r,t,!1,n);return markSymbolOfAliasDeclarationIfTypeOnly(e,void 0,i,!1),i}function getTargetOfAliasLikeExpression(e,t){if(isClassExpression(e))return checkExpressionCached(e).symbol;if(!isEntityName(e)&&!isEntityNameExpression(e))return;const n=resolveEntityName(e,901119,!0,t);return n||(checkExpressionCached(e),getNodeLinks(e).resolvedSymbol)}function getTargetOfAliasDeclaration(e,t=!1){switch(e.kind){case 272:case 261:return getTargetOfImportEqualsDeclaration(e,t);case 274:return function getTargetOfImportClause(e,t){const n=resolveExternalModuleName(e,e.parent.moduleSpecifier);if(n)return getTargetofModuleDefault(n,e,t)}(e,t);case 275:return function getTargetOfNamespaceImport(e,t){const n=e.parent.parent.moduleSpecifier,r=resolveExternalModuleName(e,n),i=resolveESModuleSymbol(r,n,t,!1);return markSymbolOfAliasDeclarationIfTypeOnly(e,r,i,!1),i}(e,t);case 281:return function getTargetOfNamespaceExport(e,t){const n=e.parent.moduleSpecifier,r=n&&resolveExternalModuleName(e,n),i=n&&resolveESModuleSymbol(r,n,t,!1);return markSymbolOfAliasDeclarationIfTypeOnly(e,r,i,!1),i}(e,t);case 277:case 209:return function getTargetOfImportSpecifier(e,t){if(isImportSpecifier(e)&&moduleExportNameIsDefault(e.propertyName||e.name)){const n=getModuleSpecifierForImportOrExport(e),r=n&&resolveExternalModuleName(e,n);if(r)return getTargetofModuleDefault(r,e,t)}const n=isBindingElement(e)?getRootDeclaration(e):e.parent.parent.parent,r=getCommonJSPropertyAccess(n),i=getExternalModuleMember(n,r||e,t),o=e.propertyName||e.name;return r&&i&&isIdentifier(o)?resolveSymbol(getPropertyOfType(getTypeOfSymbol(i),o.escapedText),t):(markSymbolOfAliasDeclarationIfTypeOnly(e,void 0,i,!1),i)}(e,t);case 282:return getTargetOfExportSpecifier(e,901119,t);case 278:case 227:return function getTargetOfExportAssignment(e,t){const n=getTargetOfAliasLikeExpression(isExportAssignment(e)?e.expression:e.right,t);return markSymbolOfAliasDeclarationIfTypeOnly(e,void 0,n,!1),n}(e,t);case 271:return function getTargetOfNamespaceExportDeclaration(e,t){if(canHaveSymbol(e.parent)){const n=resolveExternalModuleSymbol(e.parent.symbol,t);return markSymbolOfAliasDeclarationIfTypeOnly(e,void 0,n,!1),n}}(e,t);case 305:return resolveEntityName(e.name,901119,!0,t);case 304:return getTargetOfAliasLikeExpression(e.initializer,t);case 213:case 212:return function getTargetOfAccessExpression(e,t){if(isBinaryExpression(e.parent)&&e.parent.left===e&&64===e.parent.operatorToken.kind)return getTargetOfAliasLikeExpression(e.parent.right,t)}(e,t);default:return h.fail()}}function isNonLocalAlias(e,t=901119){return!!e&&(2097152==(e.flags&(2097152|t))||!!(2097152&e.flags&&67108864&e.flags))}function resolveSymbol(e,t){return!t&&isNonLocalAlias(e)?resolveAlias(e):e}function resolveAlias(e){h.assert(!!(2097152&e.flags),"Should only get Alias here.");const t=getSymbolLinks(e);if(t.aliasTarget)t.aliasTarget===be&&(t.aliasTarget=ve);else{t.aliasTarget=be;const n=getDeclarationOfAliasSymbol(e);if(!n)return h.fail();const r=getTargetOfAliasDeclaration(n);t.aliasTarget===be?t.aliasTarget=r||ve:error2(n,Ot.Circular_definition_of_import_alias_0,symbolToString(e))}return t.aliasTarget}function getSymbolFlags(e,t,n){const r=t&&getTypeOnlyAliasDeclaration(e),i=r&&isExportDeclaration(r),o=r&&(i?resolveExternalModuleName(r.moduleSpecifier,r.moduleSpecifier,!0):resolveAlias(r.symbol)),a=i&&o?getExportsOfModule(o):void 0;let s,c=n?0:e.flags;for(;2097152&e.flags;){const t=getExportSymbolOfValueSymbolIfExported(resolveAlias(e));if(!i&&t===o||(null==a?void 0:a.get(t.escapedName))===t)break;if(t===ve)return-1;if(t===e||(null==s?void 0:s.has(t)))break;2097152&t.flags&&(s?s.add(t):s=new Set([e,t])),c|=t.flags,e=t}return c}function markSymbolOfAliasDeclarationIfTypeOnly(e,t,n,r,i,o){if(!e||isPropertyAccessExpression(e))return!1;const a=getSymbolOfDeclaration(e);if(isTypeOnlyImportOrExportDeclaration(e)){return getSymbolLinks(a).typeOnlyDeclaration=e,!0}if(i){const e=getSymbolLinks(a);return e.typeOnlyDeclaration=i,a.escapedName!==o&&(e.typeOnlyExportStarName=o),!0}const s=getSymbolLinks(a);return markSymbolOfAliasDeclarationIfTypeOnlyWorker(s,t,r)||markSymbolOfAliasDeclarationIfTypeOnlyWorker(s,n,r)}function markSymbolOfAliasDeclarationIfTypeOnlyWorker(e,t,n){var r;if(t&&(void 0===e.typeOnlyDeclaration||n&&!1===e.typeOnlyDeclaration)){const n=(null==(r=t.exports)?void 0:r.get("export="))??t,i=n.declarations&&find(n.declarations,isTypeOnlyImportOrExportDeclaration);e.typeOnlyDeclaration=i??getSymbolLinks(n).typeOnlyDeclaration??!1}return!!e.typeOnlyDeclaration}function getTypeOnlyAliasDeclaration(e,t){var n;if(!(2097152&e.flags))return;const r=getSymbolLinks(e);if(void 0===r.typeOnlyDeclaration){r.typeOnlyDeclaration=!1;const t=resolveSymbol(e);markSymbolOfAliasDeclarationIfTypeOnly(null==(n=e.declarations)?void 0:n[0],getDeclarationOfAliasSymbol(e)&&getImmediateAliasedSymbol(e),t,!0)}if(void 0===t)return r.typeOnlyDeclaration||void 0;if(r.typeOnlyDeclaration){return getSymbolFlags(279===r.typeOnlyDeclaration.kind?resolveSymbol(getExportsOfModule(r.typeOnlyDeclaration.symbol.parent).get(r.typeOnlyExportStarName||e.escapedName)):resolveAlias(r.typeOnlyDeclaration.symbol))&t?r.typeOnlyDeclaration:void 0}}function getSymbolOfPartOfRightHandSideOfImportEquals(e,t){return 80===e.kind&&isRightSideOfQualifiedNameOrPropertyAccess(e)&&(e=e.parent),80===e.kind||167===e.parent.kind?resolveEntityName(e,1920,!1,t):(h.assert(272===e.parent.kind),resolveEntityName(e,901119,!1,t))}function getFullyQualifiedName(e,t){return e.parent?getFullyQualifiedName(e.parent,t)+"."+symbolToString(e):symbolToString(e,t,void 0,36)}function resolveEntityName(e,t,n,r,i){if(nodeIsMissing(e))return;const o=1920|(isInJSFile(e)?111551&t:0);let a;if(80===e.kind){const r=t===o||nodeIsSynthesized(e)?Ot.Cannot_find_namespace_0:getCannotFindNameDiagnosticForName(getFirstIdentifier(e)),s=isInJSFile(e)&&!nodeIsSynthesized(e)?function resolveEntityNameFromAssignmentDeclaration(e,t){if(isJSDocTypeReference(e.parent)){const n=function getAssignmentDeclarationLocation(e){if(findAncestor(e,e=>isJSDocNode(e)||16777216&e.flags?isJSDocTypeAlias(e):"quit"))return;const t=getJSDocHost(e);if(t&&isExpressionStatement(t)&&isPrototypePropertyAssignment(t.expression)){const e=getSymbolOfDeclaration(t.expression.left);if(e)return getDeclarationOfJSPrototypeContainer(e)}if(t&&isFunctionExpression(t)&&isPrototypePropertyAssignment(t.parent)&&isExpressionStatement(t.parent.parent)){const e=getSymbolOfDeclaration(t.parent.left);if(e)return getDeclarationOfJSPrototypeContainer(e)}if(t&&(isObjectLiteralMethod(t)||isPropertyAssignment(t))&&isBinaryExpression(t.parent.parent)&&6===getAssignmentDeclarationKind(t.parent.parent)){const e=getSymbolOfDeclaration(t.parent.parent.left);if(e)return getDeclarationOfJSPrototypeContainer(e)}const n=getEffectiveJSDocHost(e);if(n&&isFunctionLike(n)){const e=getSymbolOfDeclaration(n);return e&&e.valueDeclaration}}(e.parent);if(n)return te(n,e,t,void 0,!0)}}(e,t):void 0;if(a=getMergedSymbol(te(i||e,e,t,n||s?void 0:r,!0,!1)),!a)return getMergedSymbol(s)}else if(167===e.kind||212===e.kind){const r=167===e.kind?e.left:e.expression,s=167===e.kind?e.right:e.name;let c=resolveEntityName(r,o,n,!1,i);if(!c||nodeIsMissing(s))return;if(c===ve)return c;if(c.valueDeclaration&&isInJSFile(c.valueDeclaration)&&100!==qn(S)&&isVariableDeclaration(c.valueDeclaration)&&c.valueDeclaration.initializer&&isCommonJsRequire(c.valueDeclaration.initializer)){const e=c.valueDeclaration.initializer.arguments[0],t=resolveExternalModuleName(e,e);if(t){const e=resolveExternalModuleSymbol(t);e&&(c=e)}}if(a=getMergedSymbol(getSymbol2(getExportsOfSymbol(c),s.escapedText,t)),!a&&2097152&c.flags&&(a=getMergedSymbol(getSymbol2(getExportsOfSymbol(resolveAlias(c)),s.escapedText,t))),!a){if(!n){const n=getFullyQualifiedName(c),r=declarationNameToString(s),i=getSuggestedSymbolForNonexistentModule(s,c);if(i)return void error2(s,Ot._0_has_no_exported_member_named_1_Did_you_mean_2,n,r,symbolToString(i));const o=isQualifiedName(e)&&function getContainingQualifiedNameNode(e){for(;isQualifiedName(e.parent);)e=e.parent;return e}(e),a=Jt&&788968&t&&o&&!isTypeOfExpression(o.parent)&&function tryGetQualifiedNameAsValue(e){let t=getFirstIdentifier(e),n=te(t,t,111551,void 0,!0);if(n){for(;isQualifiedName(t.parent);){if(n=getPropertyOfType(getTypeOfSymbol(n),t.parent.right.escapedText),!n)return;t=t.parent}return n}}(o);if(a)return void error2(o,Ot._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,entityNameToString(o));if(1920&t&&isQualifiedName(e.parent)){const t=getMergedSymbol(getSymbol2(getExportsOfSymbol(c),s.escapedText,788968));if(t)return void error2(e.parent.right,Ot.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,symbolToString(t),unescapeLeadingUnderscores(e.parent.right.escapedText))}error2(s,Ot.Namespace_0_has_no_exported_member_1,n,r)}return}}else h.assertNever(e,"Unknown entity name kind.");return!nodeIsSynthesized(e)&&isEntityName(e)&&(2097152&a.flags||278===e.parent.kind)&&markSymbolOfAliasDeclarationIfTypeOnly(getAliasDeclarationFromName(e),a,void 0,!0),a.flags&t||r?a:resolveAlias(a)}function getDeclarationOfJSPrototypeContainer(e){const t=e.parent.valueDeclaration;if(!t)return;return(isAssignmentDeclaration(t)?getAssignedExpandoInitializer(t):hasOnlyExpressionInitializer(t)?getDeclaredExpandoInitializer(t):void 0)||t}function resolveExternalModuleName(e,t,n){const r=1===qn(S)?Ot.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:Ot.Cannot_find_module_0_or_its_corresponding_type_declarations;return resolveExternalModuleNameWorker(e,t,n?void 0:r,n)}function resolveExternalModuleNameWorker(e,t,n,r=!1,i=!1){return isStringLiteralLike(t)?resolveExternalModule(e,t.text,n,r?void 0:t,i):void 0}function resolveExternalModule(t,n,r,i,o=!1){var a,s,c,l,d,p,u,m,_,f,g,y;if(i&&startsWith(n,"@types/")){error2(i,Ot.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,removePrefix(n,"@types/"),n)}const T=tryFindAmbientModule(n,!0);if(T)return T;const x=getSourceFileOfNode(t),b=isStringLiteralLike(t)?t:(null==(a=isModuleDeclaration(t)?t:t.parent&&isModuleDeclaration(t.parent)&&t.parent.name===t?t.parent:void 0)?void 0:a.name)||(null==(s=isLiteralImportTypeNode(t)?t:void 0)?void 0:s.argument.literal)||(isVariableDeclaration(t)&&t.initializer&&isRequireCall(t.initializer,!0)?t.initializer.arguments[0]:void 0)||(null==(c=findAncestor(t,isImportCall))?void 0:c.arguments[0])||(null==(l=findAncestor(t,or(isImportDeclaration,isJSDocImportTag,isExportDeclaration)))?void 0:l.moduleSpecifier)||(null==(d=findAncestor(t,isExternalModuleImportEqualsDeclaration))?void 0:d.moduleReference.expression),C=b&&isStringLiteralLike(b)?e.getModeForUsageLocation(x,b):e.getDefaultResolutionModeForFile(x),E=qn(S),N=null==(p=e.getResolvedModule(x,n,C))?void 0:p.resolvedModule,k=i&&N&&getResolutionDiagnostic(S,N,x),F=N&&(!k||k===Ot.Module_0_was_resolved_to_1_but_jsx_is_not_set)&&e.getSourceFile(N.resolvedFileName);if(F){if(k&&error2(i,k,n,N.resolvedFileName),N.resolvedUsingTsExtension&&isDeclarationFileName(n)){const e=(null==(u=findAncestor(t,isImportDeclaration))?void 0:u.importClause)||findAncestor(t,or(isImportEqualsDeclaration,isExportDeclaration));(i&&e&&!e.isTypeOnly||findAncestor(t,isImportCall))&&error2(i,Ot.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead,function getSuggestedImportSource(e){const t=removeExtension(n,e);if(emitModuleKindIsNonNodeESM(v)||99===C){const r=isDeclarationFileName(n)&&shouldAllowImportingTsExtension(S);return t+(".mts"===e||".d.mts"===e?r?".mts":".mjs":".cts"===e||".d.mts"===e?r?".cts":".cjs":r?".ts":".js")}return t}(h.checkDefined(tryExtractTSExtension(n))))}else if(N.resolvedUsingTsExtension&&!shouldAllowImportingTsExtension(S,x.fileName)){const e=(null==(m=findAncestor(t,isImportDeclaration))?void 0:m.importClause)||findAncestor(t,or(isImportEqualsDeclaration,isExportDeclaration));if(i&&!(null==e?void 0:e.isTypeOnly)&&!findAncestor(t,isImportTypeNode)){const e=h.checkDefined(tryExtractTSExtension(n));error2(i,Ot.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled,e)}}else if(S.rewriteRelativeImportExtensions&&!(33554432&t.flags)&&!isDeclarationFileName(n)&&!isLiteralImportTypeNode(t)&&!isPartOfTypeOnlyImportOrExportDeclaration(t)){const t=shouldRewriteModuleSpecifier(n,S);if(!N.resolvedUsingTsExtension&&t)error2(i,Ot.This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0,getRelativePathFromFile(getNormalizedAbsolutePath(x.fileName,e.getCurrentDirectory()),N.resolvedFileName,hostGetCanonicalFileName(e)));else if(N.resolvedUsingTsExtension&&!t&&sourceFileMayBeEmitted(F,e))error2(i,Ot.This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path,getAnyExtensionFromPath(n));else if(N.resolvedUsingTsExtension&&t){const t=null==(_=e.getRedirectFromSourceFile(F.path))?void 0:_.resolvedRef;if(t){const n=!e.useCaseSensitiveFileNames(),r=e.getCommonSourceDirectory(),o=getCommonSourceDirectoryOfConfig(t.commandLine,n);getRelativePathFromDirectory(r,o,n)!==getRelativePathFromDirectory(S.outDir||r,t.commandLine.options.outDir||o,n)&&error2(i,Ot.This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files)}}}if(F.symbol){if(i&&N.isExternalLibraryImport&&!resolutionExtensionIsTSOrJson(N.extension)&&errorOnImplicitAnyModule(!1,i,x,C,N,n),i&&(100===v||101===v)){const e=1===x.impliedNodeFormat&&!findAncestor(t,isImportCall)||!!findAncestor(t,isImportEqualsDeclaration),r=findAncestor(t,e=>isImportTypeNode(e)||isExportDeclaration(e)||isImportDeclaration(e)||isJSDocImportTag(e));if(e&&99===F.impliedNodeFormat&&!hasResolutionModeOverride(r))if(findAncestor(t,isImportEqualsDeclaration))error2(i,Ot.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead,n);else{let e;const t=tryGetExtensionFromPath2(x.fileName);".ts"!==t&&".js"!==t&&".tsx"!==t&&".jsx"!==t||(e=createModeMismatchDetails(x));const o=273===(null==r?void 0:r.kind)&&(null==(f=r.importClause)?void 0:f.isTypeOnly)?Ot.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:206===(null==r?void 0:r.kind)?Ot.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:Ot.The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead;vi.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(i),i,chainDiagnosticMessages(e,o,n)))}}return getMergedSymbol(F.symbol)}i&&r&&!isSideEffectImport(i)&&error2(i,Ot.File_0_is_not_a_module,F.fileName)}else{if(Bt){const e=findBestPatternMatch(Bt,e=>e.pattern,n);if(e){const t=jt&&jt.get(n);return getMergedSymbol(t?t:e.symbol)}}if(i){if((!N||resolutionExtensionIsTSOrJson(N.extension)||void 0!==k)&&k!==Ot.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(r){if(N){const t=e.getRedirectFromSourceFile(N.resolvedFileName);if(null==t?void 0:t.outputDts)return void error2(i,Ot.Output_file_0_has_not_been_built_from_source_file_1,t.outputDts,N.resolvedFileName)}if(k)error2(i,k,n,N.resolvedFileName);else{const t=pathIsRelative(n)&&!hasExtension(n),o=3===E||99===E;if(!Yn(S)&&fileExtensionIs(n,".json")&&1!==E&&hasJsonModuleEmitEnabled(S))error2(i,Ot.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,n);else if(99===C&&o&&t){const t=getNormalizedAbsolutePath(n,getDirectoryPath(x.path)),r=null==(g=Ai.find(([n,r])=>e.fileExists(t+n)))?void 0:g[1];r?error2(i,Ot.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0,n+r):error2(i,Ot.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path)}else if(null==(y=e.getResolvedModule(x,n,C))?void 0:y.alternateResult){errorOrSuggestion(!0,i,chainDiagnosticMessages(createModuleNotFoundChain(x,e,n,C,n),r,n))}else error2(i,r,n)}}return}if(o){error2(i,Ot.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented,n,N.resolvedFileName)}else errorOnImplicitAnyModule(A&&!!r,i,x,C,N,n)}}}function errorOnImplicitAnyModule(t,n,r,i,{packageId:o,resolvedFileName:a},s){if(isSideEffectImport(n))return;let c;!isExternalModuleNameRelative(s)&&o&&(c=createModuleNotFoundChain(r,e,s,i,o.name)),errorOrSuggestion(t,n,chainDiagnosticMessages(c,Ot.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,s,a))}function resolveExternalModuleSymbol(e,t){if(null==e?void 0:e.exports){const n=function getCommonJsExportEquals(e,t){if(!e||e===ve||e===t||1===t.exports.size||2097152&e.flags)return e;const n=getSymbolLinks(e);if(n.cjsExportMerged)return n.cjsExportMerged;const r=33554432&e.flags?e:cloneSymbol(e);r.flags=512|r.flags,void 0===r.exports&&(r.exports=createSymbolTable());t.exports.forEach((e,t)=>{"export="!==t&&r.exports.set(t,r.exports.has(t)?mergeSymbol(r.exports.get(t),e):e)}),r===e&&(getSymbolLinks(r).resolvedExports=void 0,getSymbolLinks(r).resolvedMembers=void 0);return getSymbolLinks(r).cjsExportMerged=r,n.cjsExportMerged=r}(getMergedSymbol(resolveSymbol(e.exports.get("export="),t)),getMergedSymbol(e));return getMergedSymbol(n)||e}}function resolveESModuleSymbol(t,n,r,i){var o;const a=resolveExternalModuleSymbol(t,r);if(!r&&a){if(!(i||1539&a.flags||getDeclarationOfKind(a,308))){const e=v>=5?"allowSyntheticDefaultImports":"esModuleInterop";return error2(n,Ot.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,e),a}const s=n.parent,c=isImportDeclaration(s)&&getNamespaceDeclarationNode(s);if(c||isImportCall(s)){const l=isImportCall(s)?s.arguments[0]:s.moduleSpecifier,d=getTypeOfSymbol(a),p=getTypeWithSyntheticDefaultOnly(d,a,t,l);if(p)return cloneTypeAsModuleType(a,p,s);const u=null==(o=null==t?void 0:t.declarations)?void 0:o.find(isSourceFile),m=getEmitSyntaxForModuleSpecifierExpression(l);let _;if(c&&u&&102<=v&&v<=199&&1===m&&99===e.getImpliedNodeFormatForEmit(u)&&(_=resolveExportByName(a,"module.exports",c,r)))return i||1539&a.flags||error2(n,Ot.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,"esModuleInterop"),Gn(S)&&hasSignatures(d)?cloneTypeAsModuleType(_,d,s):_;const f=u&&function isESMFormatImportImportingCommonjsFormatFile(e,t){return 99===e&&1===t}(m,e.getImpliedNodeFormatForEmit(u));if((Gn(S)||f)&&(hasSignatures(d)||getPropertyOfType(d,"default",!0)||f)){return cloneTypeAsModuleType(a,3670016&d.flags?getTypeWithSyntheticDefaultImportType(d,a,t,l):createDefaultPropertyWrapperForModule(a,a.parent),s)}}}return a}function hasSignatures(e){return some(getSignaturesOfStructuredType(e,0))||some(getSignaturesOfStructuredType(e,1))}function cloneTypeAsModuleType(e,t,n){const r=createSymbol(e.flags,e.escapedName);r.declarations=e.declarations?e.declarations.slice():[],r.parent=e.parent,r.links.target=e,r.links.originatingImport=n,e.valueDeclaration&&(r.valueDeclaration=e.valueDeclaration),e.constEnumOnlyModule&&(r.constEnumOnlyModule=!0),e.members&&(r.members=new Map(e.members)),e.exports&&(r.exports=new Map(e.exports));const i=resolveStructuredTypeMembers(t);return r.links.type=createAnonymousType(r,i.members,l,l,i.indexInfos),r}function hasExportAssignmentSymbol(e){return void 0!==e.exports.get("export=")}function getExportsOfModuleAsArray(e){return symbolsToArray(getExportsOfModule(e))}function tryGetMemberInModuleExports(e,t){const n=getExportsOfModule(t);if(n)return n.get(e)}function shouldTreatPropertiesOfExternalModuleAsExports(e){return!(402784252&e.flags||1&getObjectFlags(e)||isArrayType(e)||isTupleType(e))}function getExportsOfSymbol(e){return 6256&e.flags?getResolvedMembersOrExportsOfSymbol(e,"resolvedExports"):1536&e.flags?getExportsOfModule(e):e.exports||y}function getExportsOfModule(e){const t=getSymbolLinks(e);if(!t.resolvedExports){const{exports:n,typeOnlyExportStarMap:r}=getExportsOfModuleWorker(e);t.resolvedExports=n,t.typeOnlyExportStarMap=r}return t.resolvedExports}function extendExportSymbols(e,t,n,r){t&&t.forEach((t,i)=>{if("default"===i)return;const o=e.get(i);if(o){if(n&&r&&o&&resolveSymbol(o)!==resolveSymbol(t)){const e=n.get(i);e.exportsWithDuplicate?e.exportsWithDuplicate.push(r):e.exportsWithDuplicate=[r]}}else e.set(i,t),n&&r&&n.set(i,{specifierText:getTextOfNode(r.moduleSpecifier)})})}function getExportsOfModuleWorker(e){const t=[];let n;const r=new Set,i=function visit(e,i,o){!o&&(null==e?void 0:e.exports)&&e.exports.forEach((e,t)=>r.add(t));if(!(e&&e.exports&&pushIfUnique(t,e)))return;const a=new Map(e.exports),s=e.exports.get("__export");if(s){const e=createSymbolTable(),t=new Map;if(s.declarations)for(const n of s.declarations){const r=resolveExternalModuleName(n,n.moduleSpecifier);extendExportSymbols(e,visit(r,n,o||n.isTypeOnly),t,n)}t.forEach(({exportsWithDuplicate:e},n)=>{if("export="!==n&&e&&e.length&&!a.has(n))for(const r of e)vi.add(createDiagnosticForNode(r,Ot.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity,t.get(n).specifierText,unescapeLeadingUnderscores(n)))}),extendExportSymbols(a,e)}(null==i?void 0:i.isTypeOnly)&&(n??(n=new Map),a.forEach((e,t)=>n.set(t,i)));return a}(e=resolveExternalModuleSymbol(e))||y;return n&&r.forEach(e=>n.delete(e)),{exports:i,typeOnlyExportStarMap:n}}function getMergedSymbol(e){let t;return e&&e.mergeId&&(t=ni[e.mergeId])?t:e}function getSymbolOfDeclaration(e){return getMergedSymbol(e.symbol&&getLateBoundSymbol(e.symbol))}function getSymbolOfNode(e){return canHaveSymbol(e)?getSymbolOfDeclaration(e):void 0}function getParentOfSymbol(e){return getMergedSymbol(e.parent&&getLateBoundSymbol(e.parent))}function getFunctionExpressionParentSymbolOrSymbol(e){var t,n;return(220===(null==(t=e.valueDeclaration)?void 0:t.kind)||219===(null==(n=e.valueDeclaration)?void 0:n.kind))&&getSymbolOfNode(e.valueDeclaration.parent)||e}function getContainersOfSymbol(t,n,r){const i=getParentOfSymbol(t);if(i&&!(262144&t.flags))return getWithAlternativeContainers(i);const o=mapDefined(t.declarations,e=>{if(!isAmbientModule(e)&&e.parent){if(hasNonGlobalAugmentationExternalModuleSymbol(e.parent))return getSymbolOfDeclaration(e.parent);if(isModuleBlock(e.parent)&&e.parent.parent&&resolveExternalModuleSymbol(getSymbolOfDeclaration(e.parent.parent))===t)return getSymbolOfDeclaration(e.parent.parent)}if(isClassExpression(e)&&isBinaryExpression(e.parent)&&64===e.parent.operatorToken.kind&&isAccessExpression(e.parent.left)&&isEntityNameExpression(e.parent.left.expression))return isModuleExportsAccessExpression(e.parent.left)||isExportsIdentifier(e.parent.left.expression)?getSymbolOfDeclaration(getSourceFileOfNode(e)):(checkExpressionCached(e.parent.left.expression),getNodeLinks(e.parent.left.expression).resolvedSymbol)});if(!length(o))return;const a=mapDefined(o,e=>getAliasForSymbolInContainer(e,t)?e:void 0);let s=[],c=[];for(const e of a){const[t,...n]=getWithAlternativeContainers(e);s=append(s,t),c=addRange(c,n)}return concatenate(s,c);function getWithAlternativeContainers(i){const o=mapDefined(i.declarations,fileSymbolIfFileSymbolExportEqualsContainer),a=n&&function getAlternativeContainingModules(t,n){const r=getSourceFileOfNode(n),i=getNodeId(r),o=getSymbolLinks(t);let a;if(o.extendedContainersByFile&&(a=o.extendedContainersByFile.get(i)))return a;if(r&&r.imports){for(const e of r.imports){if(nodeIsSynthesized(e))continue;const r=resolveExternalModuleName(n,e,!0);r&&(getAliasForSymbolInContainer(r,t)&&(a=append(a,r)))}if(length(a))return(o.extendedContainersByFile||(o.extendedContainersByFile=new Map)).set(i,a),a}if(o.extendedContainers)return o.extendedContainers;const s=e.getSourceFiles();for(const e of s){if(!isExternalModule(e))continue;const n=getSymbolOfDeclaration(e);getAliasForSymbolInContainer(n,t)&&(a=append(a,n))}return o.extendedContainers=a||l}(t,n),s=function getVariableDeclarationOfObjectLiteral(e,t){const n=!!length(e.declarations)&&first(e.declarations);if(111551&t&&n&&n.parent&&isVariableDeclaration(n.parent)&&(isObjectLiteralExpression(n)&&n===n.parent.initializer||isTypeLiteralNode(n)&&n===n.parent.type))return getSymbolOfDeclaration(n.parent)}(i,r);if(n&&i.flags&getQualifiedLeftMeaning(r)&&getAccessibleSymbolChain(i,n,1920,!1))return append(concatenate(concatenate([i],o),a),s);const c=!(i.flags&getQualifiedLeftMeaning(r))&&788968&i.flags&&524288&getDeclaredTypeOfSymbol(i).flags&&111551===r?forEachSymbolTableInScope(n,e=>forEachEntry(e,e=>{if(e.flags&getQualifiedLeftMeaning(r)&&getTypeOfSymbol(e)===getDeclaredTypeOfSymbol(i))return e})):void 0;let d=c?[c,...o,i]:[...o,i];return d=append(d,s),d=addRange(d,a),d}function fileSymbolIfFileSymbolExportEqualsContainer(e){return i&&getFileSymbolIfFileSymbolExportEqualsContainer(e,i)}}function getFileSymbolIfFileSymbolExportEqualsContainer(e,t){const n=getExternalModuleContainer(e),r=n&&n.exports&&n.exports.get("export=");return r&&getSymbolIfSameReference(r,t)?n:void 0}function getAliasForSymbolInContainer(e,t){if(e===getParentOfSymbol(t))return t;const n=e.exports&&e.exports.get("export=");if(n&&getSymbolIfSameReference(n,t))return e;const r=getExportsOfSymbol(e),i=r.get(t.escapedName);return i&&getSymbolIfSameReference(i,t)?i:forEachEntry(r,e=>{if(getSymbolIfSameReference(e,t))return e})}function getSymbolIfSameReference(e,t){if(getMergedSymbol(resolveSymbol(getMergedSymbol(e)))===getMergedSymbol(resolveSymbol(getMergedSymbol(t))))return e}function getExportSymbolOfValueSymbolIfExported(e){return getMergedSymbol(e&&!!(1048576&e.flags)&&e.exportSymbol||e)}function symbolIsValue(e,t){return!!(111551&e.flags||2097152&e.flags&&111551&getSymbolFlags(e,!t))}function createType(e){var t;const n=new s(re,e);return d++,n.id=d,null==(t=J)||t.recordType(n),n}function createTypeWithSymbol(e,t){const n=createType(e);return n.symbol=t,n}function createOriginType(e){return new s(re,e)}function createIntrinsicType(e,t,n=0,r){!function checkIntrinsicName(e,t){const n=`${e},${t??""}`;Ne.has(n)&&h.fail(`Duplicate intrinsic type name ${e}${t?` (${t})`:""}; you may need to pass a name to createIntrinsicType.`);Ne.add(n)}(t,r);const i=createType(e);return i.intrinsicName=t,i.debugIntrinsicName=r,i.objectFlags=52953088|n,i}function createObjectType(e,t){const n=createTypeWithSymbol(524288,t);return n.objectFlags=e,n.members=void 0,n.properties=void 0,n.callSignatures=void 0,n.constructSignatures=void 0,n.indexInfos=void 0,n}function createTypeParameter(e){return createTypeWithSymbol(262144,e)}function isReservedMemberName(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&95!==e.charCodeAt(2)&&64!==e.charCodeAt(2)&&35!==e.charCodeAt(2)}function getNamedMembers(e){let t;return e.forEach((e,n)=>{isNamedMember(e,n)&&(t||(t=[])).push(e)}),t||l}function isNamedMember(e,t){return!isReservedMemberName(t)&&symbolIsValue(e)}function setStructuredTypeMembers(e,t,n,r,i){const o=e;return o.members=t,o.properties=l,o.callSignatures=n,o.constructSignatures=r,o.indexInfos=i,t!==y&&(o.properties=getNamedMembers(t)),o}function createAnonymousType(e,t,n,r,i){return setStructuredTypeMembers(createObjectType(16,e),t,n,r,i)}function forEachSymbolTableInScope(e,t){let n;for(let r=e;r;r=r.parent){if(canHaveLocals(r)&&r.locals&&!isGlobalSourceFile(r)&&(n=t(r.locals,void 0,!0,r)))return n;switch(r.kind){case 308:if(!isExternalOrCommonJsModule(r))break;case 268:const e=getSymbolOfDeclaration(r);if(n=t((null==e?void 0:e.exports)||y,void 0,!0,r))return n;break;case 264:case 232:case 265:let i;if((getSymbolOfDeclaration(r).members||y).forEach((e,t)=>{788968&e.flags&&(i||(i=createSymbolTable())).set(t,e)}),i&&(n=t(i,void 0,!1,r)))return n}}return t(z,void 0,!0)}function getQualifiedLeftMeaning(e){return 111551===e?111551:1920}function getAccessibleSymbolChain(e,t,n,r,i=new Map){if(!e||function isPropertyOrMethodDeclarationSymbol(e){if(e.declarations&&e.declarations.length){for(const t of e.declarations)switch(t.kind){case 173:case 175:case 178:case 179:continue;default:return!1}return!0}return!1}(e))return;const o=getSymbolLinks(e),a=o.accessibleChainCache||(o.accessibleChainCache=new Map),s=forEachSymbolTableInScope(t,(e,t,n,r)=>r),c=`${r?0:1}|${s?getNodeId(s):0}|${n}`;if(a.has(c))return a.get(c);const l=getSymbolId(e);let d=i.get(l);d||i.set(l,d=[]);const p=forEachSymbolTableInScope(t,getAccessibleSymbolChainFromSymbolTable);return a.set(c,p),p;function getAccessibleSymbolChainFromSymbolTable(n,i,o){if(!pushIfUnique(d,n))return;const a=function trySymbolTable(n,i,o){if(isAccessible(n.get(e.escapedName),void 0,i))return[e];const a=forEachEntry(n,n=>{if(2097152&n.flags&&"export="!==n.escapedName&&"default"!==n.escapedName&&!(isUMDExportSymbol(n)&&t&&isExternalModule(getSourceFileOfNode(t)))&&(!r||some(n.declarations,isExternalModuleImportEqualsDeclaration))&&(!o||!some(n.declarations,isNamespaceReexportDeclaration))&&(i||!getDeclarationOfKind(n,282))){const e=getCandidateListForSymbol(n,resolveAlias(n),i);if(e)return e}if(n.escapedName===e.escapedName&&n.exportSymbol&&isAccessible(getMergedSymbol(n.exportSymbol),void 0,i))return[e]});return a||(n===z?getCandidateListForSymbol(q,q,i):void 0)}(n,i,o);return d.pop(),a}function canQualifySymbol(e,n){return!needsQualification(e,t,n)||!!getAccessibleSymbolChain(e.parent,t,getQualifiedLeftMeaning(n),r,i)}function isAccessible(t,r,i){return(e===(r||t)||getMergedSymbol(e)===getMergedSymbol(r||t))&&!some(t.declarations,hasNonGlobalAugmentationExternalModuleSymbol)&&(i||canQualifySymbol(getMergedSymbol(t),n))}function getCandidateListForSymbol(e,t,r){if(isAccessible(e,t,r))return[e];const i=getExportsOfSymbol(t),o=i&&getAccessibleSymbolChainFromSymbolTable(i,!0);return o&&canQualifySymbol(e,getQualifiedLeftMeaning(n))?[e].concat(o):void 0}}function needsQualification(e,t,n){let r=!1;return forEachSymbolTableInScope(t,t=>{let i=getMergedSymbol(t.get(e.escapedName));if(!i)return!1;if(i===e)return!0;const o=2097152&i.flags&&!getDeclarationOfKind(i,282);i=o?resolveAlias(i):i;return!!((o?getSymbolFlags(i):i.flags)&n)&&(r=!0,!0)}),r}function isValueSymbolAccessible(e,t){return 0===isSymbolAccessibleWorker(e,t,111551,!1,!0).accessibility}function isSymbolAccessibleByFlags(e,t,n){return 0===isSymbolAccessibleWorker(e,t,n,!1,!1).accessibility}function isAnySymbolAccessible(e,t,n,r,i,o){if(!length(e))return;let a,s=!1;for(const c of e){const e=getAccessibleSymbolChain(c,t,r,!1);if(e){a=c;const t=hasVisibleDeclarations(e[0],i);if(t)return t}if(o&&some(c.declarations,hasNonGlobalAugmentationExternalModuleSymbol)){if(i){s=!0;continue}return{accessibility:0}}const l=isAnySymbolAccessible(getContainersOfSymbol(c,t,r),t,n,n===c?getQualifiedLeftMeaning(r):r,i,o);if(l)return l}return s?{accessibility:0}:a?{accessibility:1,errorSymbolName:symbolToString(n,t,r),errorModuleName:a!==n?symbolToString(a,t,1920):void 0}:void 0}function isSymbolAccessible(e,t,n,r){return isSymbolAccessibleWorker(e,t,n,r,!0)}function isSymbolAccessibleWorker(e,t,n,r,i){if(e&&t){const o=isAnySymbolAccessible([e],t,e,n,r,i);if(o)return o;const a=forEach(e.declarations,getExternalModuleContainer);if(a){if(a!==getExternalModuleContainer(t))return{accessibility:2,errorSymbolName:symbolToString(e,t,n),errorModuleName:symbolToString(a),errorNode:isInJSFile(t)?t:void 0}}return{accessibility:1,errorSymbolName:symbolToString(e,t,n)}}return{accessibility:0}}function getExternalModuleContainer(e){const t=findAncestor(e,hasExternalModuleSymbol);return t&&getSymbolOfDeclaration(t)}function hasExternalModuleSymbol(e){return isAmbientModule(e)||308===e.kind&&isExternalOrCommonJsModule(e)}function hasNonGlobalAugmentationExternalModuleSymbol(e){return isModuleWithStringLiteralName(e)||308===e.kind&&isExternalOrCommonJsModule(e)}function hasVisibleDeclarations(e,t){let n;if(every(filter(e.declarations,e=>80!==e.kind),function getIsDeclarationVisible(t){var n,r;if(!isDeclarationVisible(t)){const i=getAnyImportSyntax(t);if(i&&!hasSyntacticModifier(i,32)&&isDeclarationVisible(i.parent))return addVisibleAlias(t,i);if(isVariableDeclaration(t)&&isVariableStatement(t.parent.parent)&&!hasSyntacticModifier(t.parent.parent,32)&&isDeclarationVisible(t.parent.parent.parent))return addVisibleAlias(t,t.parent.parent);if(isLateVisibilityPaintedStatement(t)&&!hasSyntacticModifier(t,32)&&isDeclarationVisible(t.parent))return addVisibleAlias(t,t);if(isBindingElement(t)){if(2097152&e.flags&&isInJSFile(t)&&(null==(n=t.parent)?void 0:n.parent)&&isVariableDeclaration(t.parent.parent)&&(null==(r=t.parent.parent.parent)?void 0:r.parent)&&isVariableStatement(t.parent.parent.parent.parent)&&!hasSyntacticModifier(t.parent.parent.parent.parent,32)&&t.parent.parent.parent.parent.parent&&isDeclarationVisible(t.parent.parent.parent.parent.parent))return addVisibleAlias(t,t.parent.parent.parent.parent);if(2&e.flags){const e=walkUpBindingElementsAndPatterns(t);if(170===e.kind)return!1;const n=e.parent.parent;return 244===n.kind&&(!!hasSyntacticModifier(n,32)||!!isDeclarationVisible(n.parent)&&addVisibleAlias(t,n))}}return!1}return!0}))return{accessibility:0,aliasesToMakeVisible:n};function addVisibleAlias(e,r){return t&&(getNodeLinks(e).isVisible=!0,n=appendIfUnique(n,r)),!0}}function getMeaningOfEntityNameReference(e){let t;return t=187===e.parent.kind||234===e.parent.kind&&!isPartOfTypeNode(e.parent)||168===e.parent.kind||183===e.parent.kind&&e.parent.parameterName===e?1160127:167===e.kind||212===e.kind||272===e.parent.kind||167===e.parent.kind&&e.parent.left===e||212===e.parent.kind&&e.parent.expression===e||213===e.parent.kind&&e.parent.expression===e?1920:788968,t}function isEntityNameVisible(e,t,n=!0){const r=getMeaningOfEntityNameReference(e),i=getFirstIdentifier(e),o=te(t,i.escapedText,r,void 0,!1);return o&&262144&o.flags&&788968&r||!o&&isThisIdentifier(i)&&0===isSymbolAccessible(getSymbolOfDeclaration(getThisContainer(i,!1,!1)),i,r,!1).accessibility?{accessibility:0}:o?hasVisibleDeclarations(o,n)||{accessibility:1,errorSymbolName:getTextOfNode(i),errorNode:i}:{accessibility:3,errorSymbolName:getTextOfNode(i),errorNode:i}}function symbolToString(e,t,n,r=4,i){let o=70221824,a=0;2&r&&(o|=128),1&r&&(o|=512),8&r&&(o|=16384),32&r&&(a|=4),16&r&&(a|=1);const s=4&r?j.symbolToNode:j.symbolToEntityName;return i?symbolToStringWorker(i).getText():usingSingleLineStringWriter(symbolToStringWorker);function symbolToStringWorker(r){const i=s(e,n,t,o,a),c=308===(null==t?void 0:t.kind)?Fa():ka(),l=t&&getSourceFileOfNode(t);return c.writeNode(4,i,l,r),r}}function signatureToString(e,t,n=0,r,i,o,a,s){return i?signatureToStringWorker(i).getText():usingSingleLineStringWriter(signatureToStringWorker);function signatureToStringWorker(i){let c;c=262144&n?1===r?186:185:1===r?181:180;const l=j.signatureToSignatureDeclaration(e,c,t,70222336|toNodeBuilderFlags(n),void 0,void 0,o,a,s),d=Pa(),p=t&&getSourceFileOfNode(t);return d.writeNode(4,l,p,getTrailingSemicolonDeferringWriter(i)),i}}function typeToString(e,t,n=1064960,r=createTextWriter(""),i,o,a){const s=!i&&S.noErrorTruncation||1&n,c=j.typeToTypeNode(e,t,70221824|toNodeBuilderFlags(n)|(s?1:0),void 0,void 0,i,o,a);if(void 0===c)return h.fail("should always get typenode");const l=e!==Ae?ka():Na(),d=t&&getSourceFileOfNode(t);l.writeNode(4,c,d,r);const p=r.getText(),u=i||(s?2*ln:2*cn);return u&&p&&p.length>=u?p.substr(0,u-3)+"...":p}function getTypeNamesForErrorDisplay(e,t){let n=symbolValueDeclarationIsContextSensitive(e.symbol)?typeToString(e,e.symbol.valueDeclaration):typeToString(e),r=symbolValueDeclarationIsContextSensitive(t.symbol)?typeToString(t,t.symbol.valueDeclaration):typeToString(t);return n===r&&(n=getTypeNameForErrorDisplay(e),r=getTypeNameForErrorDisplay(t)),[n,r]}function getTypeNameForErrorDisplay(e){return typeToString(e,void 0,64)}function symbolValueDeclarationIsContextSensitive(e){return e&&!!e.valueDeclaration&&isExpression(e.valueDeclaration)&&!isContextSensitive(e.valueDeclaration)}function toNodeBuilderFlags(e=0){return 848330095&e}function isClassInstanceSide(e){return!!(e.symbol&&32&e.symbol.flags&&(e===getDeclaredTypeOfClassOrInterface(e.symbol)||524288&e.flags&&16777216&getObjectFlags(e)))}function getTypeFromTypeNodeWithoutContext(e){return getTypeFromTypeNode(e)}function isLibType(t){var n;const r=4&getObjectFlags(t)?t.target.symbol:t.symbol;return isTupleType(t)||!!(null==(n=null==r?void 0:r.declarations)?void 0:n.some(t=>e.isSourceFileDefaultLibrary(getSourceFileOfNode(t))))}function typePredicateToString(e,t,n=16384,r){return r?typePredicateToStringWorker(r).getText():usingSingleLineStringWriter(typePredicateToStringWorker);function typePredicateToStringWorker(r){const i=70222336|toNodeBuilderFlags(n),o=j.typePredicateToTypePredicateNode(e,t,i),a=ka(),s=t&&getSourceFileOfNode(t);return a.writeNode(4,o,s,r),r}}function visibilityToString(e){return 2===e?"private":4===e?"protected":"public"}function isTopLevelInExternalModuleAugmentation(e){return e&&e.parent&&269===e.parent.kind&&isExternalModuleAugmentation(e.parent.parent)}function isDefaultBindingContext(e){return 308===e.kind||isAmbientModule(e)}function getNameOfSymbolFromNameType(e,t){const n=getSymbolLinks(e).nameType;if(n){if(384&n.flags){const e=""+n.value;return isIdentifierText(e,zn(S))||isNumericLiteralName(e)?isNumericLiteralName(e)&&startsWith(e,"-")?`[${e}]`:e:`"${escapeString(e,34)}"`}if(8192&n.flags)return`[${getNameOfSymbolAsWritten(n.symbol,t)}]`}}function getNameOfSymbolAsWritten(e,t){var n;if((null==(n=null==t?void 0:t.remappedSymbolReferences)?void 0:n.has(getSymbolId(e)))&&(e=t.remappedSymbolReferences.get(getSymbolId(e))),t&&"default"===e.escapedName&&!(16384&t.flags)&&(!(16777216&t.flags)||!e.declarations||t.enclosingDeclaration&&findAncestor(e.declarations[0],isDefaultBindingContext)!==findAncestor(t.enclosingDeclaration,isDefaultBindingContext)))return"default";if(e.declarations&&e.declarations.length){let n=firstDefined(e.declarations,e=>getNameOfDeclaration(e)?e:void 0);const r=n&&getNameOfDeclaration(n);if(n&&r){if(isCallExpression(n)&&isBindableObjectDefinePropertyCall(n))return symbolName(e);if(isComputedPropertyName(r)&&!(4096&getCheckFlags(e))){const n=getSymbolLinks(e).nameType;if(n&&384&n.flags){const n=getNameOfSymbolFromNameType(e,t);if(void 0!==n)return n}}return declarationNameToString(r)}if(n||(n=e.declarations[0]),n.parent&&261===n.parent.kind)return declarationNameToString(n.parent.name);switch(n.kind){case 232:case 219:case 220:return!t||t.encounteredError||131072&t.flags||(t.encounteredError=!0),232===n.kind?"(Anonymous class)":"(Anonymous function)"}}const r=getNameOfSymbolFromNameType(e,t);return void 0!==r?r:symbolName(e)}function isDeclarationVisible(e){if(e){const t=getNodeLinks(e);return void 0===t.isVisible&&(t.isVisible=!!function determineIfDeclarationIsVisible(){switch(e.kind){case 339:case 347:case 341:return!!(e.parent&&e.parent.parent&&e.parent.parent.parent&&isSourceFile(e.parent.parent.parent));case 209:return isDeclarationVisible(e.parent.parent);case 261:if(isBindingPattern(e.name)&&!e.name.elements.length)return!1;case 268:case 264:case 265:case 266:case 263:case 267:case 272:if(isExternalModuleAugmentation(e))return!0;const t=getDeclarationContainer(e);return 32&getCombinedModifierFlagsCached(e)||272!==e.kind&&308!==t.kind&&33554432&t.flags?isDeclarationVisible(t):isGlobalSourceFile(t);case 173:case 172:case 178:case 179:case 175:case 174:if(hasEffectiveModifier(e,6))return!1;case 177:case 181:case 180:case 182:case 170:case 269:case 185:case 186:case 188:case 184:case 189:case 190:case 193:case 194:case 197:case 203:return isDeclarationVisible(e.parent);case 274:case 275:case 277:return!1;case 169:case 308:case 271:return!0;default:return!1}}()),t.isVisible}return!1}function collectLinkedAliases(e,t){let n,r,i;return 11!==e.kind&&e.parent&&278===e.parent.kind?n=te(e,e,2998271,void 0,!1):282===e.parent.kind&&(n=getTargetOfExportSpecifier(e.parent,2998271)),n&&(i=new Set,i.add(getSymbolId(n)),function buildVisibleNodeList(e){forEach(e,e=>{const n=getAnyImportSyntax(e)||e;if(t?getNodeLinks(e).isVisible=!0:(r=r||[],pushIfUnique(r,n)),isInternalModuleImportEqualsDeclaration(e)){const t=getFirstIdentifier(e.moduleReference),n=te(e,t.escapedText,901119,void 0,!1);n&&i&&tryAddToSet(i,getSymbolId(n))&&buildVisibleNodeList(n.declarations)}})}(n.declarations)),r}function pushTypeResolution(e,t){const n=findResolutionCycleStartIndex(e,t);if(n>=0){const{length:e}=$r;for(let t=n;t=Yr;n--){if(resolutionTargetHasProperty($r[n],Xr[n]))return-1;if($r[n]===e&&Xr[n]===t)return n}return-1}function resolutionTargetHasProperty(e,t){switch(t){case 0:return!!getSymbolLinks(e).type;case 2:return!!getSymbolLinks(e).declaredType;case 1:return!!e.resolvedBaseConstructorType;case 3:return!!e.resolvedReturnType;case 4:return!!e.immediateBaseConstraint;case 5:return!!e.resolvedTypeArguments;case 6:return!!e.baseTypesResolved;case 7:return!!getSymbolLinks(e).writeType;case 8:return void 0!==getNodeLinks(e).parameterInitializerContainsUndefined}return h.assertNever(t)}function popTypeResolution(){return $r.pop(),Xr.pop(),Qr.pop()}function getDeclarationContainer(e){return findAncestor(getRootDeclaration(e),e=>{switch(e.kind){case 261:case 262:case 277:case 276:case 275:case 274:return!1;default:return!0}}).parent}function getTypeOfPropertyOfType(e,t){const n=getPropertyOfType(e,t);return n?getTypeOfSymbol(n):void 0}function getTypeOfPropertyOrIndexSignatureOfType(e,t){var n;let r;return getTypeOfPropertyOfType(e,t)||(r=null==(n=getApplicableIndexInfoForName(e,t))?void 0:n.type)&&addOptionality(r,!0,!0)}function isTypeAny(e){return e&&!!(1&e.flags)}function isErrorType(e){return e===Ie||!!(1&e.flags&&e.aliasSymbol)}function getTypeForBindingElementParent(e,t){if(0!==t)return getTypeForVariableLikeDeclaration(e,!1,t);const n=getSymbolOfDeclaration(e);return n&&getSymbolLinks(n).type||getTypeForVariableLikeDeclaration(e,!1,t)}function getRestType(e,t,n){if(131072&(e=filterType(e,e=>!(98304&e.flags))).flags)return ht;if(1048576&e.flags)return mapType(e,e=>getRestType(e,t,n));let r=getUnionType(map(t,getLiteralTypeFromPropertyName));const i=[],o=[];for(const t of getPropertiesOfType(e)){const e=getLiteralTypeFromProperty(t,8576);isTypeAssignableTo(e,r)||6&getDeclarationModifierFlagsFromSymbol(t)||!isSpreadableProperty(t)?o.push(e):i.push(t)}if(isGenericObjectType(e)||isGenericIndexType(r)){if(o.length&&(r=getUnionType([r,...o])),131072&r.flags)return e;const t=function getGlobalOmitSymbol(){return Rn||(Rn=getGlobalTypeAliasSymbol("Omit",2,!0)||ve),Rn===ve?void 0:Rn}();return t?getTypeAliasInstantiation(t,[e,r]):Ie}const a=createSymbolTable();for(const e of i)a.set(e.escapedName,getSpreadSymbol(e,!1));const s=createAnonymousType(n,a,l,l,getIndexInfosOfType(e));return s.objectFlags|=4194304,s}function isGenericTypeWithUndefinedConstraint(e){return!!(465829888&e.flags)&&maybeTypeOfKind(getBaseConstraintOfType(e)||Le,32768)}function getNonUndefinedType(e){return getTypeWithFacts(someType(e,isGenericTypeWithUndefinedConstraint)?mapType(e,e=>465829888&e.flags?getBaseConstraintOrType(e):e):e,524288)}function getFlowTypeOfDestructuring(e,t){const n=getSyntheticElementAccess(e);return n?getFlowTypeOfReference(n,t):t}function getSyntheticElementAccess(e){const t=function getParentElementAccess(e){const t=e.parent.parent;switch(t.kind){case 209:case 304:return getSyntheticElementAccess(t);case 210:return getSyntheticElementAccess(e.parent);case 261:return t.initializer;case 227:return t.right}}(e);if(t&&canHaveFlowNode(t)&&t.flowNode){const n=getDestructuringPropertyName(e);if(n){const r=setTextRange(Di.createStringLiteral(n),e),i=isLeftHandSideExpression(t)?t:Di.createParenthesizedExpression(t),o=setTextRange(Di.createElementAccessExpression(i,r),e);return setParent(r,o),setParent(o,e),i!==t&&setParent(i,o),o.flowNode=t.flowNode,o}}}function getDestructuringPropertyName(e){const t=e.parent;return 209===e.kind&&207===t.kind?getLiteralPropertyNameText(e.propertyName||e.name):304===e.kind||305===e.kind?getLiteralPropertyNameText(e.name):""+t.elements.indexOf(e)}function getLiteralPropertyNameText(e){const t=getLiteralTypeFromPropertyName(e);return 384&t.flags?""+t.value:void 0}function getTypeForBindingElement(e){const t=e.dotDotDotToken?32:0,n=getTypeForBindingElementParent(e.parent.parent,t);return n&&getBindingElementTypeFromParentType(e,n,!1)}function getBindingElementTypeFromParentType(e,t,n){if(isTypeAny(t))return t;const r=e.parent;k&&33554432&e.flags&&isPartOfParameterDeclaration(e)?t=getNonNullableType(t):k&&r.parent.initializer&&!hasTypeFacts(getTypeOfInitializer(r.parent.initializer),65536)&&(t=getTypeWithFacts(t,524288));const i=32|(n||hasDefaultValue(e)?16:0);let o;if(207===r.kind)if(e.dotDotDotToken){if(2&(t=getReducedType(t)).flags||!isValidSpreadType(t))return error2(e,Ot.Rest_types_may_only_be_created_from_object_types),Ie;const n=[];for(const e of r.elements)e.dotDotDotToken||n.push(e.propertyName||e.name);o=getRestType(t,n,e.symbol)}else{const n=e.propertyName||e.name;o=getFlowTypeOfDestructuring(e,getIndexedAccessType(t,getLiteralTypeFromPropertyName(n),i,n))}else{const n=checkIteratedTypeOrElementType(65|(e.dotDotDotToken?0:128),t,Me,r),a=r.elements.indexOf(e);if(e.dotDotDotToken){const e=mapType(t,e=>58982400&e.flags?getBaseConstraintOrType(e):e);o=everyType(e,isTupleType)?mapType(e,e=>sliceTupleType(e,a)):createArrayType(n)}else if(isArrayLikeType(t)){o=getFlowTypeOfDestructuring(e,getIndexedAccessTypeOrUndefined(t,getNumberLiteralType(a),i,e.name)||Ie)}else o=n}return e.initializer?getEffectiveTypeAnnotationNode(walkUpBindingElementsAndPatterns(e))?k&&!hasTypeFacts(checkDeclarationInitializer(e,0),16777216)?getNonUndefinedType(o):o:widenTypeInferredFromInitializer(e,getUnionType([getNonUndefinedType(o),checkDeclarationInitializer(e,0)],2)):o}function getTypeForDeclarationFromJSDocComment(e){const t=getJSDocType(e);if(t)return getTypeFromTypeNode(t)}function isEmptyArrayLiteral2(e){const t=skipParentheses(e,!0);return 210===t.kind&&0===t.elements.length}function addOptionality(e,t=!1,n=!0){return k&&n?getOptionalType(e,t):e}function getTypeForVariableLikeDeclaration(e,t,n){if(isVariableDeclaration(e)&&250===e.parent.parent.kind){const t=getIndexType(getNonNullableTypeIfNeeded(checkExpression(e.parent.parent.expression,n)));return 4456448&t.flags?getExtractStringType(t):ze}if(isVariableDeclaration(e)&&251===e.parent.parent.kind){return checkRightHandSideOfForOf(e.parent.parent)||ke}if(isBindingPattern(e.parent))return getTypeForBindingElement(e);const r=isPropertyDeclaration(e)&&!hasAccessorModifier(e)||isPropertySignature(e)||isJSDocPropertyTag(e),i=t&&isOptionalDeclaration(e),o=tryGetTypeFromEffectiveTypeNode(e);if(isCatchClauseVariableDeclarationOrBindingElement(e))return o?isTypeAny(o)||o===Le?o:Ie:w?Le:ke;if(o)return addOptionality(o,r,i);if((A||isInJSFile(e))&&isVariableDeclaration(e)&&!isBindingPattern(e.name)&&!(32&getCombinedModifierFlagsCached(e))&&!(33554432&e.flags)){if(!(6&getCombinedNodeFlagsCached(e))&&(!e.initializer||function isNullOrUndefined3(e){const t=skipParentheses(e,!0);return 106===t.kind||80===t.kind&&getResolvedSymbol(t)===V}(e.initializer)))return Fe;if(e.initializer&&isEmptyArrayLiteral2(e.initializer))return Yt}if(isParameter(e)){if(!e.symbol)return;const t=e.parent;if(179===t.kind&&hasBindableName(t)){const n=getDeclarationOfKind(getSymbolOfDeclaration(e.parent),178);if(n){const r=getSignatureFromDeclaration(n),i=getAccessorThisParameter(t);return i&&e===i?(h.assert(!i.type),getTypeOfSymbol(r.thisParameter)):getReturnTypeOfSignature(r)}}const n=function getParameterTypeOfTypeTag(e,t){const n=getSignatureOfTypeTag(e);if(!n)return;const r=e.parameters.indexOf(t);return t.dotDotDotToken?getRestTypeAtPosition(n,r):getTypeAtPosition(n,r)}(t,e);if(n)return n;const r="this"===e.symbol.escapedName?getContextualThisParameterType(t):getContextuallyTypedParameterType(e);if(r)return addOptionality(r,!1,i)}if(hasOnlyExpressionInitializer(e)&&e.initializer){if(isInJSFile(e)&&!isParameter(e)){const t=getJSContainerObjectType(e,getSymbolOfDeclaration(e),getDeclaredExpandoInitializer(e));if(t)return t}return addOptionality(widenTypeInferredFromInitializer(e,checkDeclarationInitializer(e,n)),r,i)}if(isPropertyDeclaration(e)&&(A||isInJSFile(e))){if(hasStaticModifier(e)){const t=filter(e.parent.members,isClassStaticBlockDeclaration),n=t.length?function getFlowTypeInStaticBlocks(e,t){const n=startsWith(e.escapedName,"__#")?Wr.createPrivateIdentifier(e.escapedName.split("@")[1]):unescapeLeadingUnderscores(e.escapedName);for(const r of t){const t=Wr.createPropertyAccessExpression(Wr.createThis(),n);setParent(t.expression,t),setParent(t,r),t.flowNode=r.returnFlowNode;const i=getFlowTypeOfProperty(t,e);if(!A||i!==Fe&&i!==Yt||error2(e.valueDeclaration,Ot.Member_0_implicitly_has_an_1_type,symbolToString(e),typeToString(i)),!everyType(i,isNullableType))return convertAutoToAny(i)}}(e.symbol,t):128&getEffectiveModifierFlags(e)?getTypeOfPropertyInBaseClass(e.symbol):void 0;return n&&addOptionality(n,!0,i)}{const t=findConstructorDeclaration(e.parent),n=t?getFlowTypeInConstructor(e.symbol,t):128&getEffectiveModifierFlags(e)?getTypeOfPropertyInBaseClass(e.symbol):void 0;return n&&addOptionality(n,!0,i)}}return isJsxAttribute(e)?Ge:isBindingPattern(e.name)?getTypeFromBindingPattern(e.name,!1,!0):void 0}function isConstructorDeclaredProperty(e){if(e.valueDeclaration&&isBinaryExpression(e.valueDeclaration)){const t=getSymbolLinks(e);return void 0===t.isConstructorDeclaredProperty&&(t.isConstructorDeclaredProperty=!1,t.isConstructorDeclaredProperty=!!getDeclaringConstructor(e)&&every(e.declarations,t=>isBinaryExpression(t)&&isPossiblyAliasedThisProperty(t)&&(213!==t.left.kind||isStringOrNumericLiteralLike(t.left.argumentExpression))&&!getAnnotatedTypeForAssignmentDeclaration(void 0,t,e,t))),t.isConstructorDeclaredProperty}return!1}function isAutoTypedProperty(e){const t=e.valueDeclaration;return t&&isPropertyDeclaration(t)&&!getEffectiveTypeAnnotationNode(t)&&!t.initializer&&(A||isInJSFile(t))}function getDeclaringConstructor(e){if(e.declarations)for(const t of e.declarations){const e=getThisContainer(t,!1,!1);if(e&&(177===e.kind||isJSConstructor(e)))return e}}function getFlowTypeInConstructor(e,t){const n=startsWith(e.escapedName,"__#")?Wr.createPrivateIdentifier(e.escapedName.split("@")[1]):unescapeLeadingUnderscores(e.escapedName),r=Wr.createPropertyAccessExpression(Wr.createThis(),n);setParent(r.expression,r),setParent(r,t),r.flowNode=t.returnFlowNode;const i=getFlowTypeOfProperty(r,e);return!A||i!==Fe&&i!==Yt||error2(e.valueDeclaration,Ot.Member_0_implicitly_has_an_1_type,symbolToString(e),typeToString(i)),everyType(i,isNullableType)?void 0:convertAutoToAny(i)}function getFlowTypeOfProperty(e,t){const n=(null==t?void 0:t.valueDeclaration)&&(!isAutoTypedProperty(t)||128&getEffectiveModifierFlags(t.valueDeclaration))&&getTypeOfPropertyInBaseClass(t)||Me;return getFlowTypeOfReference(e,Fe,n)}function getWidenedTypeForAssignmentDeclaration(e,t){const n=getAssignedExpandoInitializer(e.valueDeclaration);if(n){const t=isInJSFile(n)?getJSDocTypeTag(n):void 0;if(t&&t.typeExpression)return getTypeFromTypeNode(t.typeExpression);return e.valueDeclaration&&getJSContainerObjectType(e.valueDeclaration,e,n)||getWidenedLiteralType(checkExpressionCached(n))}let r,i=!1,o=!1;if(isConstructorDeclaredProperty(e)&&(r=getFlowTypeInConstructor(e,getDeclaringConstructor(e))),!r){let n;if(e.declarations){let a;for(const r of e.declarations){const s=isBinaryExpression(r)||isCallExpression(r)?r:isAccessExpression(r)?isBinaryExpression(r.parent)?r.parent:r:void 0;if(!s)continue;const c=isAccessExpression(s)?getAssignmentDeclarationPropertyAccessKind(s):getAssignmentDeclarationKind(s);(4===c||isBinaryExpression(s)&&isPossiblyAliasedThisProperty(s,c))&&(isDeclarationInConstructor(s)?i=!0:o=!0),isCallExpression(s)||(a=getAnnotatedTypeForAssignmentDeclaration(a,s,e,r)),a||(n||(n=[])).push(isBinaryExpression(s)||isCallExpression(s)?getInitializerTypeFromAssignmentDeclaration(e,t,s,c):tt)}r=a}if(!r){if(!length(n))return Ie;let t=i&&e.declarations?function getConstructorDefinedThisAssignmentTypes(e,t){return h.assert(e.length===t.length),e.filter((e,n)=>{const r=t[n],i=isBinaryExpression(r)?r:isBinaryExpression(r.parent)?r.parent:void 0;return i&&isDeclarationInConstructor(i)})}(n,e.declarations):void 0;if(o){const n=getTypeOfPropertyInBaseClass(e);n&&((t||(t=[])).push(n),i=!0)}r=getUnionType(some(t,e=>!!(-98305&e.flags))?t:n)}}const a=getWidenedType(addOptionality(r,!1,o&&!i));return e.valueDeclaration&&isInJSFile(e.valueDeclaration)&&filterType(a,e=>!!(-98305&e.flags))===tt?(reportImplicitAny(e.valueDeclaration,ke),ke):a}function getJSContainerObjectType(e,t,n){var r,i;if(!isInJSFile(e)||!n||!isObjectLiteralExpression(n)||n.properties.length)return;const o=createSymbolTable();for(;isBinaryExpression(e)||isPropertyAccessExpression(e);){const t=getSymbolOfNode(e);(null==(r=null==t?void 0:t.exports)?void 0:r.size)&&mergeSymbolTable(o,t.exports),e=isBinaryExpression(e)?e.parent:e.parent.parent}const a=getSymbolOfNode(e);(null==(i=null==a?void 0:a.exports)?void 0:i.size)&&mergeSymbolTable(o,a.exports);const s=createAnonymousType(t,o,l,l,l);return s.objectFlags|=4096,s}function getAnnotatedTypeForAssignmentDeclaration(e,t,n,r){var i;const o=getEffectiveTypeAnnotationNode(t.parent);if(o){const t=getWidenedType(getTypeFromTypeNode(o));if(!e)return t;isErrorType(e)||isErrorType(t)||isTypeIdenticalTo(e,t)||errorNextVariableOrPropertyDeclarationMustHaveSameType(void 0,e,r,t)}if(null==(i=n.parent)?void 0:i.valueDeclaration){const e=getFunctionExpressionParentSymbolOrSymbol(n.parent);if(e.valueDeclaration){const t=getEffectiveTypeAnnotationNode(e.valueDeclaration);if(t){const e=getPropertyOfType(getTypeFromTypeNode(t),n.escapedName);if(e)return getNonMissingTypeOfSymbol(e)}}}return e}function getInitializerTypeFromAssignmentDeclaration(e,t,n,r){if(isCallExpression(n)){if(t)return getTypeOfSymbol(t);const e=checkExpressionCached(n.arguments[2]),r=getTypeOfPropertyOfType(e,"value");if(r)return r;const i=getTypeOfPropertyOfType(e,"get");if(i){const e=getSingleCallSignature(i);if(e)return getReturnTypeOfSignature(e)}const o=getTypeOfPropertyOfType(e,"set");if(o){const e=getSingleCallSignature(o);if(e)return getTypeOfFirstParameterOfSignature(e)}return ke}if(function containsSameNamedThisProperty(e,t){return isPropertyAccessExpression(e)&&110===e.expression.kind&&forEachChildRecursively(t,t=>isMatchingReference(e,t))}(n.left,n.right))return ke;const i=1===r&&(isPropertyAccessExpression(n.left)||isElementAccessExpression(n.left))&&(isModuleExportsAccessExpression(n.left.expression)||isIdentifier(n.left.expression)&&isExportsIdentifier(n.left.expression)),o=t?getTypeOfSymbol(t):i?getRegularTypeOfLiteralType(checkExpressionCached(n.right)):getWidenedLiteralType(checkExpressionCached(n.right));if(524288&o.flags&&2===r&&"export="===e.escapedName){const n=resolveStructuredTypeMembers(o),r=createSymbolTable();copyEntries(n.members,r);const i=r.size;t&&!t.exports&&(t.exports=createSymbolTable()),(t||e).exports.forEach((e,t)=>{var n;const i=r.get(t);if(!i||i===e||2097152&e.flags)r.set(t,e);else if(111551&e.flags&&111551&i.flags){if(e.valueDeclaration&&i.valueDeclaration&&getSourceFileOfNode(e.valueDeclaration)!==getSourceFileOfNode(i.valueDeclaration)){const t=unescapeLeadingUnderscores(e.escapedName),r=(null==(n=tryCast(i.valueDeclaration,isNamedDeclaration))?void 0:n.name)||i.valueDeclaration;addRelatedInfo(error2(e.valueDeclaration,Ot.Duplicate_identifier_0,t),createDiagnosticForNode(r,Ot._0_was_also_declared_here,t)),addRelatedInfo(error2(r,Ot.Duplicate_identifier_0,t),createDiagnosticForNode(e.valueDeclaration,Ot._0_was_also_declared_here,t))}const o=createSymbol(e.flags|i.flags,t);o.links.type=getUnionType([getTypeOfSymbol(e),getTypeOfSymbol(i)]),o.valueDeclaration=i.valueDeclaration,o.declarations=concatenate(i.declarations,e.declarations),r.set(t,o)}else r.set(t,mergeSymbol(e,i))});const a=createAnonymousType(i!==r.size?void 0:n.symbol,r,n.callSignatures,n.constructSignatures,n.indexInfos);if(i===r.size&&(o.aliasSymbol&&(a.aliasSymbol=o.aliasSymbol,a.aliasTypeArguments=o.aliasTypeArguments),4&getObjectFlags(o))){a.aliasSymbol=o.symbol;const e=getTypeArguments(o);a.aliasTypeArguments=length(e)?e:void 0}return a.objectFlags|=getPropagatingFlagsOfTypes([o])|20608&getObjectFlags(o),a.symbol&&32&a.symbol.flags&&o===getDeclaredTypeOfClassOrInterface(a.symbol)&&(a.objectFlags|=16777216),a}return isEmptyArrayLiteralType(o)?(reportImplicitAny(n,Xt),Xt):o}function isDeclarationInConstructor(e){const t=getThisContainer(e,!1,!1);return 177===t.kind||263===t.kind||219===t.kind&&!isPrototypePropertyAssignment(t.parent)}function getTypeFromBindingElement(e,t,n){if(e.initializer){return addOptionality(getWidenedLiteralTypeForInitializer(e,checkDeclarationInitializer(e,0,isBindingPattern(e.name)?getTypeFromBindingPattern(e.name,!0,!1):Le)))}return isBindingPattern(e.name)?getTypeFromBindingPattern(e.name,t,n):(n&&!declarationBelongsToPrivateAmbientMember(e)&&reportImplicitAny(e,ke),t?Oe:ke)}function getTypeFromBindingPattern(e,t=!1,n=!1){t&&Br.push(e);const r=207===e.kind?function getTypeFromObjectBindingPattern(e,t,n){const r=createSymbolTable();let i,o=131200;forEach(e.elements,e=>{const a=e.propertyName||e.name;if(e.dotDotDotToken)return void(i=createIndexInfo(ze,ke,!1));const s=getLiteralTypeFromPropertyName(a);if(!isTypeUsableAsPropertyName(s))return void(o|=512);const c=getPropertyNameFromType(s),l=createSymbol(4|(e.initializer?16777216:0),c);l.links.type=getTypeFromBindingElement(e,t,n),r.set(l.escapedName,l)});const a=createAnonymousType(void 0,r,l,l,i?[i]:l);return a.objectFlags|=o,t&&(a.pattern=e,a.objectFlags|=131072),a}(e,t,n):function getTypeFromArrayBindingPattern(e,t,n){const r=e.elements,i=lastOrUndefined(r),o=i&&209===i.kind&&i.dotDotDotToken?i:void 0;if(0===r.length||1===r.length&&o)return x>=2?createIterableType(ke):Xt;const a=map(r,e=>isOmittedExpression(e)?ke:getTypeFromBindingElement(e,t,n)),s=findLastIndex(r,e=>!(e===o||isOmittedExpression(e)||hasDefaultValue(e)),r.length-1)+1;let c=createTupleType(a,map(r,(e,t)=>e===o?4:t>=s?2:1));return t&&(c=cloneTypeReference(c),c.pattern=e,c.objectFlags|=131072),c}(e,t,n);return t&&Br.pop(),r}function getWidenedTypeForVariableLikeDeclaration(e,t){return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(e,!0,0),e,t)}function getTypeFromImportAttributes(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=createSymbol(4096,"__importAttributes"),r=createSymbolTable();forEach(e.elements,e=>{const t=createSymbol(4,getNameFromImportAttribute(e));t.parent=n,t.links.type=function checkImportAttribute(e){return getRegularTypeOfLiteralType(checkExpressionCached(e.value))}(e),t.links.target=t,r.set(t.escapedName,t)});const i=createAnonymousType(n,r,l,l,l);i.objectFlags|=262272,t.resolvedType=i}return t.resolvedType}function isGlobalSymbolConstructor(e){const t=getSymbolOfNode(e),n=function getGlobalESSymbolConstructorTypeSymbol(e){return nn||(nn=getGlobalTypeSymbol("SymbolConstructor",e))}(!1);return n&&t&&t===n}function widenTypeForVariableLikeDeclaration(e,t,n){return e?(4096&e.flags&&isGlobalSymbolConstructor(t.parent)&&(e=getESSymbolLikeTypeForNode(t)),n&&reportErrorsFromWidening(t,e),8192&e.flags&&(isBindingElement(t)||!tryGetTypeFromEffectiveTypeNode(t))&&e.symbol!==getSymbolOfDeclaration(t)&&(e=Ze),getWidenedType(e)):(e=isParameter(t)&&t.dotDotDotToken?Xt:ke,n&&(declarationBelongsToPrivateAmbientMember(t)||reportImplicitAny(t,e)),e)}function declarationBelongsToPrivateAmbientMember(e){const t=getRootDeclaration(e);return isPrivateWithinAmbient(170===t.kind?t.parent:t)}function tryGetTypeFromEffectiveTypeNode(e){const t=getEffectiveTypeAnnotationNode(e);if(t)return getTypeFromTypeNode(t)}function getTypeOfVariableOrParameterOrProperty(e){const t=getSymbolLinks(e);if(!t.type){const n=function getTypeOfVariableOrParameterOrPropertyWorker(e){if(4194304&e.flags)return function getTypeOfPrototypeProperty(e){const t=getDeclaredTypeOfSymbol(getParentOfSymbol(e));return t.typeParameters?createTypeReference(t,map(t.typeParameters,e=>ke)):t}(e);if(e===Q)return ke;if(134217728&e.flags&&e.valueDeclaration){const t=getSymbolOfDeclaration(getSourceFileOfNode(e.valueDeclaration)),n=createSymbol(t.flags,"exports");n.declarations=t.declarations?t.declarations.slice():[],n.parent=e,n.links.target=t,t.valueDeclaration&&(n.valueDeclaration=t.valueDeclaration),t.members&&(n.members=new Map(t.members)),t.exports&&(n.exports=new Map(t.exports));const r=createSymbolTable();return r.set("exports",n),createAnonymousType(e,r,l,l,l)}h.assertIsDefined(e.valueDeclaration);const t=e.valueDeclaration;if(isSourceFile(t)&&isJsonSourceFile(t))return t.statements.length?getWidenedType(getWidenedLiteralType(checkExpression(t.statements[0].expression))):ht;if(isAccessor(t))return getTypeOfAccessors(e);if(!pushTypeResolution(e,0))return 512&e.flags&&!(67108864&e.flags)?getTypeOfFuncClassEnumModule(e):reportCircularityError(e);let n;if(278===t.kind)n=widenTypeForVariableLikeDeclaration(tryGetTypeFromEffectiveTypeNode(t)||checkExpressionCached(t.expression),t);else if(isBinaryExpression(t)||isInJSFile(t)&&(isCallExpression(t)||(isPropertyAccessExpression(t)||isBindableStaticElementAccessExpression(t))&&isBinaryExpression(t.parent)))n=getWidenedTypeForAssignmentDeclaration(e);else if(isPropertyAccessExpression(t)||isElementAccessExpression(t)||isIdentifier(t)||isStringLiteralLike(t)||isNumericLiteral(t)||isClassDeclaration(t)||isFunctionDeclaration(t)||isMethodDeclaration(t)&&!isObjectLiteralMethod(t)||isMethodSignature(t)||isSourceFile(t)){if(9136&e.flags)return getTypeOfFuncClassEnumModule(e);n=isBinaryExpression(t.parent)?getWidenedTypeForAssignmentDeclaration(e):tryGetTypeFromEffectiveTypeNode(t)||ke}else if(isPropertyAssignment(t))n=tryGetTypeFromEffectiveTypeNode(t)||checkPropertyAssignment(t);else if(isJsxAttribute(t))n=tryGetTypeFromEffectiveTypeNode(t)||checkJsxAttribute(t);else if(isShorthandPropertyAssignment(t))n=tryGetTypeFromEffectiveTypeNode(t)||checkExpressionForMutableLocation(t.name,0);else if(isObjectLiteralMethod(t))n=tryGetTypeFromEffectiveTypeNode(t)||checkObjectLiteralMethod(t,0);else if(isParameter(t)||isPropertyDeclaration(t)||isPropertySignature(t)||isVariableDeclaration(t)||isBindingElement(t)||isJSDocPropertyLikeTag(t))n=getWidenedTypeForVariableLikeDeclaration(t,!0);else if(isEnumDeclaration(t))n=getTypeOfFuncClassEnumModule(e);else{if(!isEnumMember(t))return h.fail("Unhandled declaration kind! "+h.formatSyntaxKind(t.kind)+" for "+h.formatSymbol(e));n=getTypeOfEnumMember(e)}if(!popTypeResolution())return 512&e.flags&&!(67108864&e.flags)?getTypeOfFuncClassEnumModule(e):reportCircularityError(e);return n}(e);return t.type||function isParameterOfContextSensitiveSignature(e){let t=e.valueDeclaration;return!!t&&(isBindingElement(t)&&(t=walkUpBindingElementsAndPatterns(t)),!!isParameter(t)&&isContextSensitiveFunctionOrObjectLiteralMethod(t.parent))}(e)||(t.type=n),n}return t.type}function getAnnotatedAccessorTypeNode(e){if(e)switch(e.kind){case 178:return getEffectiveReturnTypeNode(e);case 179:return getEffectiveSetAccessorTypeAnnotationNode(e);case 173:h.assert(hasAccessorModifier(e));return getEffectiveTypeAnnotationNode(e)}}function getAnnotatedAccessorType(e){const t=getAnnotatedAccessorTypeNode(e);return t&&getTypeFromTypeNode(t)}function getTypeOfAccessors(e){const t=getSymbolLinks(e);if(!t.type){if(!pushTypeResolution(e,0))return Ie;const n=getDeclarationOfKind(e,178),r=getDeclarationOfKind(e,179),i=tryCast(getDeclarationOfKind(e,173),isAutoAccessorPropertyDeclaration);let o=n&&isInJSFile(n)&&getTypeForDeclarationFromJSDocComment(n)||getAnnotatedAccessorType(n)||getAnnotatedAccessorType(r)||getAnnotatedAccessorType(i)||n&&n.body&&getReturnTypeFromBody(n)||i&&getWidenedTypeForVariableLikeDeclaration(i,!0);o||(r&&!isPrivateWithinAmbient(r)?errorOrSuggestion(A,r,Ot.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,symbolToString(e)):n&&!isPrivateWithinAmbient(n)?errorOrSuggestion(A,n,Ot.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,symbolToString(e)):i&&!isPrivateWithinAmbient(i)&&errorOrSuggestion(A,i,Ot.Member_0_implicitly_has_an_1_type,symbolToString(e),"any"),o=ke),popTypeResolution()||(getAnnotatedAccessorTypeNode(n)?error2(n,Ot._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,symbolToString(e)):getAnnotatedAccessorTypeNode(r)||getAnnotatedAccessorTypeNode(i)?error2(r,Ot._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,symbolToString(e)):n&&A&&error2(n,Ot._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,symbolToString(e)),o=ke),t.type??(t.type=o)}return t.type}function getWriteTypeOfAccessors(e){const t=getSymbolLinks(e);if(!t.writeType){if(!pushTypeResolution(e,7))return Ie;const n=getDeclarationOfKind(e,179)??tryCast(getDeclarationOfKind(e,173),isAutoAccessorPropertyDeclaration);let r=getAnnotatedAccessorType(n);popTypeResolution()||(getAnnotatedAccessorTypeNode(n)&&error2(n,Ot._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,symbolToString(e)),r=ke),t.writeType??(t.writeType=r||getTypeOfAccessors(e))}return t.writeType}function getBaseTypeVariableOfClass(e){const t=getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(e));return 8650752&t.flags?t:2097152&t.flags?find(t.types,e=>!!(8650752&e.flags)):void 0}function getTypeOfFuncClassEnumModule(e){let t=getSymbolLinks(e);const n=t;if(!t.type){const r=e.valueDeclaration&&getSymbolOfExpando(e.valueDeclaration,!1);if(r){const n=mergeJSSymbols(e,r);n&&(e=n,t=n.links)}n.type=t.type=function getTypeOfFuncClassEnumModuleWorker(e){const t=e.valueDeclaration;if(1536&e.flags&&isShorthandAmbientModuleSymbol(e))return ke;if(t&&(227===t.kind||isAccessExpression(t)&&227===t.parent.kind))return getWidenedTypeForAssignmentDeclaration(e);if(512&e.flags&&t&&isSourceFile(t)&&t.commonJsModuleIndicator){const t=resolveExternalModuleSymbol(e);if(t!==e){if(!pushTypeResolution(e,0))return Ie;const n=getMergedSymbol(e.exports.get("export=")),r=getWidenedTypeForAssignmentDeclaration(n,n===t?void 0:t);return popTypeResolution()?r:reportCircularityError(e)}}const n=createObjectType(16,e);if(32&e.flags){const t=getBaseTypeVariableOfClass(e);return t?getIntersectionType([n,t]):n}return k&&16777216&e.flags?getOptionalType(n,!0):n}(e)}return t.type}function getTypeOfEnumMember(e){const t=getSymbolLinks(e);return t.type||(t.type=getDeclaredTypeOfEnumMember(e))}function getTypeOfAlias(e){const t=getSymbolLinks(e);if(!t.type){if(!pushTypeResolution(e,0))return Ie;const n=resolveAlias(e),r=e.declarations&&getTargetOfAliasDeclaration(getDeclarationOfAliasSymbol(e),!0),i=firstDefined(null==r?void 0:r.declarations,e=>isExportAssignment(e)?tryGetTypeFromEffectiveTypeNode(e):void 0);if(t.type??(t.type=(null==r?void 0:r.declarations)&&isDuplicatedCommonJSExport(r.declarations)&&e.declarations.length?function getFlowTypeFromCommonJSExport(e){const t=getSourceFileOfNode(e.declarations[0]),n=unescapeLeadingUnderscores(e.escapedName),r=e.declarations.every(e=>isInJSFile(e)&&isAccessExpression(e)&&isModuleExportsAccessExpression(e.expression)),i=r?Wr.createPropertyAccessExpression(Wr.createPropertyAccessExpression(Wr.createIdentifier("module"),Wr.createIdentifier("exports")),n):Wr.createPropertyAccessExpression(Wr.createIdentifier("exports"),n);return r&&setParent(i.expression.expression,i.expression),setParent(i.expression,i),setParent(i,t),i.flowNode=t.endFlowNode,getFlowTypeOfReference(i,Fe,Me)}(r):isDuplicatedCommonJSExport(e.declarations)?Fe:i||(111551&getSymbolFlags(n)?getTypeOfSymbol(n):Ie)),!popTypeResolution())return reportCircularityError(r??e),t.type??(t.type=Ie)}return t.type}function reportCircularityError(e){const t=e.valueDeclaration;if(t){if(getEffectiveTypeAnnotationNode(t))return error2(e.valueDeclaration,Ot._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,symbolToString(e)),Ie;A&&(170!==t.kind||t.initializer)&&error2(e.valueDeclaration,Ot._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,symbolToString(e))}else if(2097152&e.flags){const t=getDeclarationOfAliasSymbol(e);t&&error2(t,Ot.Circular_definition_of_import_alias_0,symbolToString(e))}return ke}function getTypeOfSymbolWithDeferredType(e){const t=getSymbolLinks(e);return t.type||(h.assertIsDefined(t.deferralParent),h.assertIsDefined(t.deferralConstituents),t.type=1048576&t.deferralParent.flags?getUnionType(t.deferralConstituents):getIntersectionType(t.deferralConstituents)),t.type}function getWriteTypeOfSymbol(e){const t=getCheckFlags(e);return 2&t?65536&t?function getWriteTypeOfSymbolWithDeferredType(e){const t=getSymbolLinks(e);return!t.writeType&&t.deferralWriteConstituents&&(h.assertIsDefined(t.deferralParent),h.assertIsDefined(t.deferralConstituents),t.writeType=1048576&t.deferralParent.flags?getUnionType(t.deferralWriteConstituents):getIntersectionType(t.deferralWriteConstituents)),t.writeType}(e)||getTypeOfSymbolWithDeferredType(e):e.links.writeType||e.links.type:4&e.flags?removeMissingType(getTypeOfSymbol(e),!!(16777216&e.flags)):98304&e.flags?1&t?function getWriteTypeOfInstantiatedSymbol(e){const t=getSymbolLinks(e);return t.writeType||(t.writeType=instantiateType(getWriteTypeOfSymbol(t.target),t.mapper))}(e):getWriteTypeOfAccessors(e):getTypeOfSymbol(e)}function getTypeOfSymbol(e){const t=getCheckFlags(e);return 65536&t?getTypeOfSymbolWithDeferredType(e):1&t?function getTypeOfInstantiatedSymbol(e){const t=getSymbolLinks(e);return t.type||(t.type=instantiateType(getTypeOfSymbol(t.target),t.mapper))}(e):262144&t?function getTypeOfMappedSymbol(e){var t;if(!e.links.type){const n=e.links.mappedType;if(!pushTypeResolution(e,0))return n.containsError=!0,Ie;const i=instantiateType(getTemplateTypeFromMappedType(n.target||n),appendTypeMapping(n.mapper,getTypeParameterFromMappedType(n),e.links.keyType));let o=k&&16777216&e.flags&&!maybeTypeOfKind(i,49152)?getOptionalType(i,!0):524288&e.links.checkFlags?removeMissingOrUndefinedType(i):i;popTypeResolution()||(error2(r,Ot.Type_of_property_0_circularly_references_itself_in_mapped_type_1,symbolToString(e),typeToString(n)),o=Ie),(t=e.links).type??(t.type=o)}return e.links.type}(e):8192&t?function getTypeOfReverseMappedSymbol(e){const t=getSymbolLinks(e);t.type||(t.type=inferReverseMappedType(e.links.propertyType,e.links.mappedType,e.links.constraintType)||Le);return t.type}(e):7&e.flags?getTypeOfVariableOrParameterOrProperty(e):9136&e.flags?getTypeOfFuncClassEnumModule(e):8&e.flags?getTypeOfEnumMember(e):98304&e.flags?getTypeOfAccessors(e):2097152&e.flags?getTypeOfAlias(e):Ie}function getNonMissingTypeOfSymbol(e){return removeMissingType(getTypeOfSymbol(e),!!(16777216&e.flags))}function isReferenceToSomeType(e,t){if(void 0===e||!(4&getObjectFlags(e)))return!1;for(const n of t)if(e.target===n)return!0;return!1}function isReferenceToType2(e,t){return void 0!==e&&void 0!==t&&!!(4&getObjectFlags(e))&&e.target===t}function getTargetType(e){return 4&getObjectFlags(e)?e.target:e}function hasBaseType(e,t){return function check(e){if(7&getObjectFlags(e)){const n=getTargetType(e);return n===t||some(getBaseTypes(n),check)}if(2097152&e.flags)return some(e.types,check);return!1}(e)}function appendTypeParameters(e,t){for(const n of t)e=appendIfUnique(e,getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(n)));return e}function getOuterTypeParameters(e,t){for(;;){if((e=e.parent)&&isBinaryExpression(e)){const t=getAssignmentDeclarationKind(e);if(6===t||3===t){const t=getSymbolOfDeclaration(e.left);t&&t.parent&&!findAncestor(t.parent.valueDeclaration,t=>e===t)&&(e=t.parent.valueDeclaration)}}if(!e)return;const n=e.kind;switch(n){case 264:case 232:case 265:case 180:case 181:case 174:case 185:case 186:case 318:case 263:case 175:case 219:case 220:case 266:case 346:case 347:case 341:case 339:case 201:case 195:{const r=getOuterTypeParameters(e,t);if((219===n||220===n||isObjectLiteralMethod(e))&&isContextSensitive(e)){const t=firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(e)),0));if(t&&t.typeParameters)return[...r||l,...t.typeParameters]}if(201===n)return append(r,getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e.typeParameter)));if(195===n)return concatenate(r,getInferTypeParameters(e));const i=appendTypeParameters(r,getEffectiveTypeParameterDeclarations(e)),o=t&&(264===n||232===n||265===n||isJSConstructor(e))&&getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(e)).thisType;return o?append(i,o):i}case 342:const r=getParameterSymbolFromJSDoc(e);r&&(e=r.valueDeclaration);break;case 321:{const n=getOuterTypeParameters(e,t);return e.tags?appendTypeParameters(n,flatMap(e.tags,e=>isJSDocTemplateTag(e)?e.typeParameters:void 0)):n}}}}function getOuterTypeParametersOfClassOrInterface(e){var t;const n=32&e.flags||16&e.flags?e.valueDeclaration:null==(t=e.declarations)?void 0:t.find(e=>{if(265===e.kind)return!0;if(261!==e.kind)return!1;const t=e.initializer;return!!t&&(219===t.kind||220===t.kind)});return h.assert(!!n,"Class was missing valueDeclaration -OR- non-class had no interface declarations"),getOuterTypeParameters(n)}function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e){if(!e.declarations)return;let t;for(const n of e.declarations)if(265===n.kind||264===n.kind||232===n.kind||isJSConstructor(n)||isTypeAlias(n)){t=appendTypeParameters(t,getEffectiveTypeParameterDeclarations(n))}return t}function isMixinConstructorType(e){const t=getSignaturesOfType(e,1);if(1===t.length){const e=t[0];if(!e.typeParameters&&1===e.parameters.length&&signatureHasRestParameter(e)){const t=getTypeOfParameter(e.parameters[0]);return isTypeAny(t)||getElementTypeOfArrayType(t)===ke}}return!1}function isConstructorType(e){if(getSignaturesOfType(e,1).length>0)return!0;if(8650752&e.flags){const t=getBaseConstraintOfType(e);return!!t&&isMixinConstructorType(t)}return!1}function getBaseTypeNodeOfClass(e){const t=getClassLikeDeclarationOfSymbol(e.symbol);return t&&getEffectiveBaseTypeNode(t)}function getConstructorsForTypeArguments(e,t,n){const r=length(t),i=isInJSFile(n);return filter(getSignaturesOfType(e,1),e=>(i||r>=getMinTypeArgumentCount(e.typeParameters))&&r<=length(e.typeParameters))}function getInstantiatedConstructorsForTypeArguments(e,t,n){const r=getConstructorsForTypeArguments(e,t,n),i=map(t,getTypeFromTypeNode);return sameMap(r,e=>some(e.typeParameters)?getSignatureInstantiation(e,i,isInJSFile(n)):e)}function getBaseConstructorTypeOfClass(e){if(!e.resolvedBaseConstructorType){const t=getClassLikeDeclarationOfSymbol(e.symbol),n=t&&getEffectiveBaseTypeNode(t),r=getBaseTypeNodeOfClass(e);if(!r)return e.resolvedBaseConstructorType=Me;if(!pushTypeResolution(e,1))return Ie;const i=checkExpression(r.expression);if(n&&r!==n&&(h.assert(!n.typeArguments),checkExpression(n.expression)),2621440&i.flags&&resolveStructuredTypeMembers(i),!popTypeResolution())return error2(e.symbol.valueDeclaration,Ot._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,symbolToString(e.symbol)),e.resolvedBaseConstructorType??(e.resolvedBaseConstructorType=Ie);if(!(1&i.flags||i===Ue||isConstructorType(i))){const t=error2(r.expression,Ot.Type_0_is_not_a_constructor_function_type,typeToString(i));if(262144&i.flags){const e=getConstraintFromTypeParameter(i);let n=Le;if(e){const t=getSignaturesOfType(e,1);t[0]&&(n=getReturnTypeOfSignature(t[0]))}i.symbol.declarations&&addRelatedInfo(t,createDiagnosticForNode(i.symbol.declarations[0],Ot.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,symbolToString(i.symbol),typeToString(n)))}return e.resolvedBaseConstructorType??(e.resolvedBaseConstructorType=Ie)}e.resolvedBaseConstructorType??(e.resolvedBaseConstructorType=i)}return e.resolvedBaseConstructorType}function reportCircularBaseType(e,t){error2(e,Ot.Type_0_recursively_references_itself_as_a_base_type,typeToString(t,void 0,2))}function getBaseTypes(e){if(!e.baseTypesResolved){if(pushTypeResolution(e,6)&&(8&e.objectFlags?e.resolvedBaseTypes=[getTupleBaseType(e)]:96&e.symbol.flags?(32&e.symbol.flags&&function resolveBaseTypesOfClass(e){e.resolvedBaseTypes=an;const t=getApparentType(getBaseConstructorTypeOfClass(e));if(!(2621441&t.flags))return e.resolvedBaseTypes=l;const n=getBaseTypeNodeOfClass(e);let r;const i=t.symbol?getDeclaredTypeOfSymbol(t.symbol):void 0;if(t.symbol&&32&t.symbol.flags&&function areAllOuterTypeParametersApplied(e){const t=e.outerTypeParameters;if(t){const n=t.length-1,r=getTypeArguments(e);return t[n].symbol!==r[n].symbol}return!0}(i))r=getTypeFromClassOrInterfaceReference(n,t.symbol);else if(1&t.flags)r=t;else{const i=getInstantiatedConstructorsForTypeArguments(t,n.typeArguments,n);if(!i.length)return error2(n.expression,Ot.No_base_constructor_has_the_specified_number_of_type_arguments),e.resolvedBaseTypes=l;r=getReturnTypeOfSignature(i[0])}if(isErrorType(r))return e.resolvedBaseTypes=l;const o=getReducedType(r);if(!isValidBaseType(o)){const t=chainDiagnosticMessages(elaborateNeverIntersection(void 0,r),Ot.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members,typeToString(o));return vi.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(n.expression),n.expression,t)),e.resolvedBaseTypes=l}if(e===o||hasBaseType(o,e))return error2(e.symbol.valueDeclaration,Ot.Type_0_recursively_references_itself_as_a_base_type,typeToString(e,void 0,2)),e.resolvedBaseTypes=l;e.resolvedBaseTypes===an&&(e.members=void 0);return e.resolvedBaseTypes=[o]}(e),64&e.symbol.flags&&function resolveBaseTypesOfInterface(e){if(e.resolvedBaseTypes=e.resolvedBaseTypes||l,e.symbol.declarations)for(const t of e.symbol.declarations)if(265===t.kind&&getInterfaceBaseTypeNodes(t))for(const n of getInterfaceBaseTypeNodes(t)){const r=getReducedType(getTypeFromTypeNode(n));isErrorType(r)||(isValidBaseType(r)?e===r||hasBaseType(r,e)?reportCircularBaseType(t,e):e.resolvedBaseTypes===l?e.resolvedBaseTypes=[r]:e.resolvedBaseTypes.push(r):error2(n,Ot.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members))}}(e)):h.fail("type must be class or interface"),!popTypeResolution()&&e.symbol.declarations))for(const t of e.symbol.declarations)264!==t.kind&&265!==t.kind||reportCircularBaseType(t,e);e.baseTypesResolved=!0}return e.resolvedBaseTypes}function getTupleBaseType(e){return createArrayType(getUnionType(sameMap(e.typeParameters,(t,n)=>8&e.elementFlags[n]?getIndexedAccessType(t,Ve):t)||l),e.readonly)}function isValidBaseType(e){if(262144&e.flags){const t=getBaseConstraintOfType(e);if(t)return isValidBaseType(t)}return!!(67633153&e.flags&&!isGenericMappedType(e)||2097152&e.flags&&every(e.types,isValidBaseType))}function getDeclaredTypeOfClassOrInterface(e){let t=getSymbolLinks(e);const n=t;if(!t.declaredType){const r=32&e.flags?1:2,i=mergeJSSymbols(e,e.valueDeclaration&&function getAssignedClassSymbol(e){var t;const n=e&&getSymbolOfExpando(e,!0),r=null==(t=null==n?void 0:n.exports)?void 0:t.get("prototype"),i=(null==r?void 0:r.valueDeclaration)&&function getAssignedJSPrototype(e){if(!e.parent)return!1;let t=e.parent;for(;t&&212===t.kind;)t=t.parent;if(t&&isBinaryExpression(t)&&isPrototypeAccess(t.left)&&64===t.operatorToken.kind){const e=getInitializerOfBinaryExpression(t);return isObjectLiteralExpression(e)&&e}}(r.valueDeclaration);return i?getSymbolOfDeclaration(i):void 0}(e.valueDeclaration));i&&(e=i,t=i.links);const o=n.declaredType=t.declaredType=createObjectType(r,e),a=getOuterTypeParametersOfClassOrInterface(e),s=getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);(a||s||1===r||!function isThislessInterface(e){if(!e.declarations)return!0;for(const t of e.declarations)if(265===t.kind){if(256&t.flags)return!1;const e=getInterfaceBaseTypeNodes(t);if(e)for(const t of e)if(isEntityNameExpression(t.expression)){const e=resolveEntityName(t.expression,788968,!0);if(!e||!(64&e.flags)||getDeclaredTypeOfClassOrInterface(e).thisType)return!1}}return!0}(e))&&(o.objectFlags|=4,o.typeParameters=concatenate(a,s),o.outerTypeParameters=a,o.localTypeParameters=s,o.instantiations=new Map,o.instantiations.set(getTypeListId(o.typeParameters),o),o.target=o,o.resolvedTypeArguments=o.typeParameters,o.thisType=createTypeParameter(e),o.thisType.isThisType=!0,o.thisType.constraint=o)}return t.declaredType}function getDeclaredTypeOfTypeAlias(e){var t;const n=getSymbolLinks(e);if(!n.declaredType){if(!pushTypeResolution(e,2))return Ie;const r=h.checkDefined(null==(t=e.declarations)?void 0:t.find(isTypeAlias),"Type alias symbol with no valid declaration found"),i=isJSDocTypeAlias(r)?r.typeExpression:r.type;let o=i?getTypeFromTypeNode(i):Ie;if(popTypeResolution()){const t=getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);t&&(n.typeParameters=t,n.instantiations=new Map,n.instantiations.set(getTypeListId(t),o)),o===we&&"BuiltinIteratorReturn"===e.escapedName&&(o=getBuiltinIteratorReturnType())}else o=Ie,341===r.kind?error2(r.typeExpression.type,Ot.Type_alias_0_circularly_references_itself,symbolToString(e)):error2(isNamedDeclaration(r)&&r.name||r,Ot.Type_alias_0_circularly_references_itself,symbolToString(e));n.declaredType??(n.declaredType=o)}return n.declaredType}function getBaseTypeOfEnumLikeType(e){return 1056&e.flags&&8&e.symbol.flags?getDeclaredTypeOfSymbol(getParentOfSymbol(e.symbol)):e}function getDeclaredTypeOfEnum(e){const t=getSymbolLinks(e);if(!t.declaredType){const n=[];if(e.declarations)for(const t of e.declarations)if(267===t.kind)for(const r of t.members)if(hasBindableName(r)){const t=getSymbolOfDeclaration(r),i=getEnumMemberValue(r).value,o=getFreshTypeOfLiteralType(void 0!==i?getEnumLiteralType(i,getSymbolId(e),t):createComputedEnumType(t));getSymbolLinks(t).declaredType=o,n.push(getRegularTypeOfLiteralType(o))}const r=n.length?getUnionType(n,1,e,void 0):createComputedEnumType(e);1048576&r.flags&&(r.flags|=1024,r.symbol=e),t.declaredType=r}return t.declaredType}function createComputedEnumType(e){const t=createTypeWithSymbol(32,e),n=createTypeWithSymbol(32,e);return t.regularType=t,t.freshType=n,n.regularType=t,n.freshType=n,t}function getDeclaredTypeOfEnumMember(e){const t=getSymbolLinks(e);if(!t.declaredType){const n=getDeclaredTypeOfEnum(getParentOfSymbol(e));t.declaredType||(t.declaredType=n)}return t.declaredType}function getDeclaredTypeOfTypeParameter(e){const t=getSymbolLinks(e);return t.declaredType||(t.declaredType=createTypeParameter(e))}function getDeclaredTypeOfSymbol(e){return tryGetDeclaredTypeOfSymbol(e)||Ie}function tryGetDeclaredTypeOfSymbol(e){return 96&e.flags?getDeclaredTypeOfClassOrInterface(e):524288&e.flags?getDeclaredTypeOfTypeAlias(e):262144&e.flags?getDeclaredTypeOfTypeParameter(e):384&e.flags?getDeclaredTypeOfEnum(e):8&e.flags?getDeclaredTypeOfEnumMember(e):2097152&e.flags?function getDeclaredTypeOfAlias(e){const t=getSymbolLinks(e);return t.declaredType||(t.declaredType=getDeclaredTypeOfSymbol(resolveAlias(e)))}(e):void 0}function isThislessType(e){switch(e.kind){case 133:case 159:case 154:case 150:case 163:case 136:case 155:case 151:case 116:case 157:case 146:case 202:return!0;case 189:return isThislessType(e.elementType);case 184:return!e.typeArguments||e.typeArguments.every(isThislessType)}return!1}function isThislessTypeParameter(e){const t=getEffectiveConstraintOfTypeParameter(e);return!t||isThislessType(t)}function isThislessVariableLikeDeclaration(e){const t=getEffectiveTypeAnnotationNode(e);return t?isThislessType(t):!hasInitializer(e)}function isThisless(e){if(e.declarations&&1===e.declarations.length){const t=e.declarations[0];if(t)switch(t.kind){case 173:case 172:return isThislessVariableLikeDeclaration(t);case 175:case 174:case 177:case 178:case 179:return function isThislessFunctionLikeDeclaration(e){const t=getEffectiveReturnTypeNode(e),n=getEffectiveTypeParameterDeclarations(e);return(177===e.kind||!!t&&isThislessType(t))&&e.parameters.every(isThislessVariableLikeDeclaration)&&n.every(isThislessTypeParameter)}(t)}}return!1}function createInstantiatedSymbolTable(e,t,n){const r=createSymbolTable();for(const i of e)r.set(i.escapedName,n&&isThisless(i)?i:instantiateSymbol(i,t));return r}function addInheritedMembers(e,t){for(const n of t){if(isStaticPrivateIdentifierProperty(n))continue;const t=e.get(n.escapedName);(!t||t.valueDeclaration&&isBinaryExpression(t.valueDeclaration)&&!isConstructorDeclaredProperty(t)&&!getContainingClassStaticBlock(t.valueDeclaration))&&(e.set(n.escapedName,n),e.set(n.escapedName,n))}}function isStaticPrivateIdentifierProperty(e){return!!e.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(e.valueDeclaration)&&isStatic(e.valueDeclaration)}function resolveDeclaredMembers(e){if(!e.declaredProperties){const t=e.symbol,n=getMembersOfSymbol(t);e.declaredProperties=getNamedMembers(n),e.declaredCallSignatures=l,e.declaredConstructSignatures=l,e.declaredIndexInfos=l,e.declaredCallSignatures=getSignaturesOfSymbol(n.get("__call")),e.declaredConstructSignatures=getSignaturesOfSymbol(n.get("__new")),e.declaredIndexInfos=getIndexInfosOfSymbol(t)}return e}function isLateBindableName(e){return isLateBindableAST(e)&&isTypeUsableAsPropertyName(isComputedPropertyName(e)?checkComputedPropertyName(e):checkExpressionCached(e.argumentExpression))}function isLateBindableIndexSignature(e){return isLateBindableAST(e)&&function isTypeUsableAsIndexSignature(e){return isTypeAssignableTo(e,st)}(isComputedPropertyName(e)?checkComputedPropertyName(e):checkExpressionCached(e.argumentExpression))}function isLateBindableAST(e){if(!isComputedPropertyName(e)&&!isElementAccessExpression(e))return!1;return isEntityNameExpression(isComputedPropertyName(e)?e.expression:e.argumentExpression)}function isLateBoundName(e){return 95===e.charCodeAt(0)&&95===e.charCodeAt(1)&&64===e.charCodeAt(2)}function hasLateBindableName(e){const t=getNameOfDeclaration(e);return!!t&&isLateBindableName(t)}function hasLateBindableIndexSignature(e){const t=getNameOfDeclaration(e);return!!t&&isLateBindableIndexSignature(t)}function hasBindableName(e){return!hasDynamicName(e)||hasLateBindableName(e)}function isNonBindableDynamicName(e){return isDynamicName(e)&&!isLateBindableName(e)}function lateBindMember(e,t,n,r){h.assert(!!r.symbol,"The member is expected to have a symbol.");const i=getNodeLinks(r);if(!i.resolvedSymbol){i.resolvedSymbol=r.symbol;const o=isBinaryExpression(r)?r.left:r.name,a=isElementAccessExpression(o)?checkExpressionCached(o.argumentExpression):checkComputedPropertyName(o);if(isTypeUsableAsPropertyName(a)){const s=getPropertyNameFromType(a),c=r.symbol.flags;let l=n.get(s);l||n.set(s,l=createSymbol(0,s,4096));const d=t&&t.get(s);if(!(32&e.flags)&&l.flags&getExcludedSymbolFlags(c)){const e=d?concatenate(d.declarations,l.declarations):l.declarations,t=!(8192&a.flags)&&unescapeLeadingUnderscores(s)||declarationNameToString(o);forEach(e,e=>error2(getNameOfDeclaration(e)||e,Ot.Property_0_was_also_declared_here,t)),error2(o||r,Ot.Duplicate_property_0,t),l=createSymbol(0,s,4096)}return l.links.nameType=a,function addDeclarationToLateBoundSymbol(e,t,n){h.assert(!!(4096&getCheckFlags(e)),"Expected a late-bound symbol."),e.flags|=n,getSymbolLinks(t.symbol).lateSymbol=e,e.declarations?t.symbol.isReplaceableByMethod||e.declarations.push(t):e.declarations=[t],111551&n&&setValueDeclaration(e,t)}(l,r,c),l.parent?h.assert(l.parent===e,"Existing symbol parent should match new one"):l.parent=e,i.resolvedSymbol=l}}return i.resolvedSymbol}function lateBindIndexSignature(e,t,n,r){let i=n.get("__index");if(!i){const e=null==t?void 0:t.get("__index");e?(i=cloneSymbol(e),i.links.checkFlags|=4096):i=createSymbol(0,"__index",4096),n.set("__index",i)}i.declarations?r.symbol.isReplaceableByMethod||i.declarations.push(r):i.declarations=[r]}function getResolvedMembersOrExportsOfSymbol(e,t){const n=getSymbolLinks(e);if(!n[t]){const r="resolvedExports"===t,i=r?1536&e.flags?getExportsOfModuleWorker(e).exports:e.exports:e.members;n[t]=i||y;const o=createSymbolTable();for(const t of e.declarations||l){const n=getMembersOfDeclaration(t);if(n)for(const t of n)r===hasStaticModifier(t)&&(hasLateBindableName(t)?lateBindMember(e,i,o,t):hasLateBindableIndexSignature(t)&&lateBindIndexSignature(0,i,o,t))}const a=getFunctionExpressionParentSymbolOrSymbol(e).assignmentDeclarationMembers;if(a){const t=arrayFrom(a.values());for(const n of t){const t=getAssignmentDeclarationKind(n);r===!(3===t||isBinaryExpression(n)&&isPossiblyAliasedThisProperty(n,t)||9===t||6===t)&&hasLateBindableName(n)&&lateBindMember(e,i,o,n)}}let s=function combineSymbolTables(e,t){if(!(null==e?void 0:e.size))return t;if(!(null==t?void 0:t.size))return e;const n=createSymbolTable();return mergeSymbolTable(n,e),mergeSymbolTable(n,t),n}(i,o);if(33554432&e.flags&&n.cjsExportMerged&&e.declarations)for(const n of e.declarations){const e=getSymbolLinks(n.symbol)[t];s?e&&e.forEach((e,t)=>{const n=s.get(t);if(n){if(n===e)return;s.set(t,mergeSymbol(n,e))}else s.set(t,e)}):s=e}n[t]=s||y}return n[t]}function getMembersOfSymbol(e){return 6256&e.flags?getResolvedMembersOrExportsOfSymbol(e,"resolvedMembers"):e.members||y}function getLateBoundSymbol(e){if(106500&e.flags&&"__computed"===e.escapedName){const t=getSymbolLinks(e);if(!t.lateSymbol&&some(e.declarations,hasLateBindableName)){const t=getMergedSymbol(e.parent);some(e.declarations,hasStaticModifier)?getExportsOfSymbol(t):getMembersOfSymbol(t)}return t.lateSymbol||(t.lateSymbol=e)}return e}function getTypeWithThisArgument(e,t,n){if(4&getObjectFlags(e)){const n=e.target,r=getTypeArguments(e);return length(n.typeParameters)===length(r)?createTypeReference(n,concatenate(r,[t||n.thisType])):e}if(2097152&e.flags){const r=sameMap(e.types,e=>getTypeWithThisArgument(e,t,n));return r!==e.types?getIntersectionType(r):e}return n?getApparentType(e):e}function resolveObjectTypeMembers(e,t,n,r){let i,o,a,s,c;rangeEquals(n,r,0,n.length)?(o=t.symbol?getMembersOfSymbol(t.symbol):createSymbolTable(t.declaredProperties),a=t.declaredCallSignatures,s=t.declaredConstructSignatures,c=t.declaredIndexInfos):(i=createTypeMapper(n,r),o=createInstantiatedSymbolTable(t.declaredProperties,i,1===n.length),a=instantiateSignatures(t.declaredCallSignatures,i),s=instantiateSignatures(t.declaredConstructSignatures,i),c=instantiateIndexInfos(t.declaredIndexInfos,i));const l=getBaseTypes(t);if(l.length){if(t.symbol&&o===getMembersOfSymbol(t.symbol)){const e=createSymbolTable(t.declaredProperties),n=getIndexSymbol(t.symbol);n&&e.set("__index",n),o=e}setStructuredTypeMembers(e,o,a,s,c);const n=lastOrUndefined(r);for(const e of l){const t=n?getTypeWithThisArgument(instantiateType(e,i),n):e;addInheritedMembers(o,getPropertiesOfType(t)),a=concatenate(a,getSignaturesOfType(t,0)),s=concatenate(s,getSignaturesOfType(t,1));const r=t!==ke?getIndexInfosOfType(t):[Tr];c=concatenate(c,filter(r,e=>!findIndexInfo(c,e.keyType)))}}setStructuredTypeMembers(e,o,a,s,c)}function createSignature(e,t,n,r,i,o,a,s){const l=new c(re,s);return l.declaration=e,l.typeParameters=t,l.parameters=r,l.thisParameter=n,l.resolvedReturnType=i,l.resolvedTypePredicate=o,l.minArgumentCount=a,l.resolvedMinArgumentCount=void 0,l.target=void 0,l.mapper=void 0,l.compositeSignatures=void 0,l.compositeKind=void 0,l}function cloneSignature(e){const t=createSignature(e.declaration,e.typeParameters,e.thisParameter,e.parameters,void 0,void 0,e.minArgumentCount,167&e.flags);return t.target=e.target,t.mapper=e.mapper,t.compositeSignatures=e.compositeSignatures,t.compositeKind=e.compositeKind,t}function createUnionSignature(e,t){const n=cloneSignature(e);return n.compositeSignatures=t,n.compositeKind=1048576,n.target=void 0,n.mapper=void 0,n}function getOptionalCallSignature(e,t){if((24&e.flags)===t)return e;e.optionalCallSignatureCache||(e.optionalCallSignatureCache={});const n=8===t?"inner":"outer";return e.optionalCallSignatureCache[n]||(e.optionalCallSignatureCache[n]=function createOptionalCallSignature(e,t){h.assert(8===t||16===t,"An optional call signature can either be for an inner call chain or an outer call chain, but not both.");const n=cloneSignature(e);return n.flags|=t,n}(e,t))}function getExpandedParameters(e,t){if(signatureHasRestParameter(e)){const n=e.parameters.length-1,r=e.parameters[n],i=getTypeOfSymbol(r);if(isTupleType(i))return[expandSignatureParametersWithTupleMembers(i,n,r)];if(!t&&1048576&i.flags&&every(i.types,isTupleType))return map(i.types,e=>expandSignatureParametersWithTupleMembers(e,n,r))}return[e.parameters];function expandSignatureParametersWithTupleMembers(t,n,r){const i=getTypeArguments(t),o=function getUniqAssociatedNamesFromTupleType(e,t){const n=map(e.target.labeledElementDeclarations,(n,r)=>getTupleElementLabel(n,r,e.target.elementFlags[r],t));if(n){const e=[],t=new Set;for(let r=0;r{const a=o&&o[i]?o[i]:getParameterNameAtPosition(e,n+i,t),s=t.target.elementFlags[i],c=createSymbol(1,a,12&s?32768:2&s?16384:0);return c.links.type=4&s?createArrayType(r):r,c});return concatenate(e.parameters.slice(0,n),a)}}function findMatchingSignature(e,t,n,r,i){for(const o of e)if(compareSignaturesIdentical(o,t,n,r,i,n?compareTypesSubtypeOf:compareTypesIdentical))return o}function findMatchingSignatures(e,t,n){if(t.typeParameters){if(n>0)return;for(let n=1;n1&&(n=void 0===n?r:-1);for(const n of e[r])if(!t||!findMatchingSignature(t,n,!1,!1,!0)){const i=findMatchingSignatures(e,n,r);if(i){let e=n;if(i.length>1){let t=n.thisParameter;const r=forEach(i,e=>e.thisParameter);if(r){t=createSymbolWithType(r,getIntersectionType(mapDefined(i,e=>e.thisParameter&&getTypeOfSymbol(e.thisParameter))))}e=createUnionSignature(n,i),e.thisParameter=t}(t||(t=[])).push(e)}}}if(!length(t)&&-1!==n){const r=e[void 0!==n?n:0];let i=r.slice();for(const t of e)if(t!==r){const e=t[0];if(h.assert(!!e,"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"),i=e.typeParameters&&some(i,t=>!!t.typeParameters&&!compareTypeParametersIdentical(e.typeParameters,t.typeParameters))?void 0:map(i,t=>combineSignaturesOfUnionMembers(t,e)),!i)break}t=i}return t||l}function compareTypeParametersIdentical(e,t){if(length(e)!==length(t))return!1;if(!e||!t)return!0;const n=createTypeMapper(t,e);for(let r=0;r=i?e:t,a=o===e?t:e,s=o===e?r:i,c=hasEffectiveRestParameter(e)||hasEffectiveRestParameter(t),l=c&&!hasEffectiveRestParameter(o),d=new Array(s+(l?1:0));for(let p=0;p=getMinArgumentCount(o)&&p>=getMinArgumentCount(a),y=p>=r?void 0:getParameterNameAtPosition(e,p),h=p>=i?void 0:getParameterNameAtPosition(t,p),T=createSymbol(1|(g&&!f?16777216:0),(y===h?y:y?h?void 0:y:h)||`arg${p}`,f?32768:g?16384:0);T.links.type=f?createArrayType(_):_,d[p]=T}if(l){const e=createSymbol(1,"args",32768);e.links.type=createArrayType(getTypeAtPosition(a,s)),a===t&&(e.links.type=instantiateType(e.links.type,n)),d[s]=e}return d}(e,t,r),s=lastOrUndefined(a);s&&32768&getCheckFlags(s)&&(i|=1);const c=function combineUnionThisParam(e,t,n){return e&&t?createSymbolWithType(e,getIntersectionType([getTypeOfSymbol(e),instantiateType(getTypeOfSymbol(t),n)])):e||t}(e.thisParameter,t.thisParameter,r),l=createSignature(o,n,c,a,void 0,void 0,Math.max(e.minArgumentCount,t.minArgumentCount),i);return l.compositeKind=1048576,l.compositeSignatures=concatenate(2097152!==e.compositeKind&&e.compositeSignatures||[e],[t]),r?l.mapper=2097152!==e.compositeKind&&e.mapper&&e.compositeSignatures?combineTypeMappers(e.mapper,r):r:2097152!==e.compositeKind&&e.mapper&&e.compositeSignatures&&(l.mapper=e.mapper),l}function getUnionIndexInfos(e){const t=getIndexInfosOfType(e[0]);if(t){const n=[];for(const r of t){const t=r.keyType;every(e,e=>!!getIndexInfoOfType(e,t))&&n.push(createIndexInfo(t,getUnionType(map(e,e=>getIndexTypeOfType(e,t))),some(e,e=>getIndexInfoOfType(e,t).isReadonly)))}return n}return l}function intersectTypes(e,t){return e?t?getIntersectionType([e,t]):e:t}function findMixins(e){const t=countWhere(e,e=>getSignaturesOfType(e,1).length>0),n=map(e,isMixinConstructorType);if(t>0&&t===countWhere(n,e=>e)){const e=n.indexOf(!0);n[e]=!1}return n}function includeMixinType(e,t,n,r){const i=[];for(let o=0;o!compareSignaturesIdentical(e,n,!1,!1,!1,compareTypesIdentical))||(e=append(e,n));return e}function appendIndexInfo(e,t,n){if(e)for(let r=0;r{var n;418&t.flags||512&t.flags&&(null==(n=t.declarations)?void 0:n.length)&&every(t.declarations,isAmbientModule)||e.set(t.escapedName,t)}),i=e}if(setStructuredTypeMembers(e,i,l,l,l),32&t.flags){const e=getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(t));11272192&e.flags?(i=createSymbolTable(function getNamedOrIndexSignatureMembers(e){const t=getNamedMembers(e),n=getIndexSymbolFromSymbolTable(e);return n?concatenate(t,[n]):t}(i)),addInheritedMembers(i,getPropertiesOfType(e))):e===ke&&(r=Tr)}const o=getIndexSymbolFromSymbolTable(i);if(o?n=getIndexInfosOfIndexSymbol(o,arrayFrom(i.values())):(r&&(n=append(n,r)),384&t.flags&&(32&getDeclaredTypeOfSymbol(t).flags||some(e.properties,e=>!!(296&getTypeOfSymbol(e).flags)))&&(n=append(n,hr))),setStructuredTypeMembers(e,i,l,l,n||l),8208&t.flags&&(e.callSignatures=getSignaturesOfSymbol(t)),32&t.flags){const n=getDeclaredTypeOfClassOrInterface(t);let r=t.members?getSignaturesOfSymbol(t.members.get("__constructor")):l;16&t.flags&&(r=addRange(r.slice(),mapDefined(e.callSignatures,e=>isJSConstructor(e.declaration)?createSignature(e.declaration,e.typeParameters,e.thisParameter,e.parameters,n,void 0,e.minArgumentCount,167&e.flags):void 0))),r.length||(r=function getDefaultConstructSignatures(e){const t=getSignaturesOfType(getBaseConstructorTypeOfClass(e),1),n=getClassLikeDeclarationOfSymbol(e.symbol),r=!!n&&hasSyntacticModifier(n,64);if(0===t.length)return[createSignature(void 0,e.localTypeParameters,void 0,l,e,void 0,0,r?4:0)];const i=getBaseTypeNodeOfClass(e),o=isInJSFile(i),a=typeArgumentsFromTypeReferenceNode(i),s=length(a),c=[];for(const n of t){const t=getMinTypeArgumentCount(n.typeParameters),i=length(n.typeParameters);if(o||s>=t&&s<=i){const s=i?createSignatureInstantiation(n,fillMissingTypeArguments(a,n.typeParameters,t,o)):cloneSignature(n);s.typeParameters=e.localTypeParameters,s.resolvedReturnType=e,s.flags=r?4|s.flags:-5&s.flags,c.push(s)}}return c}(n)),e.constructSignatures=r}}function replaceIndexedAccess(e,t,n){return instantiateType(e,createTypeMapper([t.indexType,t.objectType],[getNumberLiteralType(0),createTupleType([n])]))}function resolveReverseMappedTypeMembers(e){const t=getIndexInfoOfType(e.source,ze),n=getMappedTypeModifiers(e.mappedType),r=!(1&n),i=4&n?0:16777216,o=t?[createIndexInfo(ze,inferReverseMappedType(t.type,e.mappedType,e.constraintType)||Le,r&&t.isReadonly)]:l,a=createSymbolTable(),s=function getLimitedConstraint(e){const t=getConstraintTypeFromMappedType(e.mappedType);if(!(1048576&t.flags||2097152&t.flags))return;const n=1048576&t.flags?t.origin:t;if(!(n&&2097152&n.flags))return;const r=getIntersectionType(n.types.filter(t=>t!==e.constraintType));return r!==tt?r:void 0}(e);for(const t of getPropertiesOfType(e.source)){if(s){if(!isTypeAssignableTo(getLiteralTypeFromProperty(t,8576),s))continue}const n=8192|(r&&isReadonlySymbol(t)?8:0),o=createSymbol(4|t.flags&i,t.escapedName,n);if(o.declarations=t.declarations,o.links.nameType=getSymbolLinks(t).nameType,o.links.propertyType=getTypeOfSymbol(t),8388608&e.constraintType.type.flags&&262144&e.constraintType.type.objectType.flags&&262144&e.constraintType.type.indexType.flags){const t=e.constraintType.type.objectType,n=replaceIndexedAccess(e.mappedType,e.constraintType.type,t);o.links.mappedType=n,o.links.constraintType=getIndexType(t)}else o.links.mappedType=e.mappedType,o.links.constraintType=e.constraintType;a.set(t.escapedName,o)}setStructuredTypeMembers(e,a,l,l,o)}function getLowerBoundOfKeyType(e){if(4194304&e.flags){const t=getApparentType(e.type);return isGenericTupleType(t)?getKnownKeysOfTupleType(t):getIndexType(t)}if(16777216&e.flags){if(e.root.isDistributive){const t=e.checkType,n=getLowerBoundOfKeyType(t);if(n!==t)return getConditionalTypeInstantiation(e,prependTypeMapping(e.root.checkType,n,e.mapper),!1)}return e}if(1048576&e.flags)return mapType(e,getLowerBoundOfKeyType,!0);if(2097152&e.flags){const t=e.types;return 2===t.length&&76&t[0].flags&&t[1]===vt?e:getIntersectionType(sameMap(e.types,getLowerBoundOfKeyType))}return e}function getIsLateCheckFlag(e){return 4096&getCheckFlags(e)}function forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(e,t,n,r){for(const n of getPropertiesOfType(e))r(getLiteralTypeFromProperty(n,t));if(1&e.flags)r(ze);else for(const t of getIndexInfosOfType(e))(!n||134217732&t.keyType.flags)&&r(t.keyType)}function resolveMappedTypeMembers(e){const t=createSymbolTable();let n;setStructuredTypeMembers(e,y,l,l,l);const r=getTypeParameterFromMappedType(e),i=getConstraintTypeFromMappedType(e),o=e.target||e,a=getNameTypeFromMappedType(o),s=2!==getMappedTypeNameTypeKind(o),c=getTemplateTypeFromMappedType(o),d=getApparentType(getModifiersTypeFromMappedType(e)),p=getMappedTypeModifiers(e);function addMemberForKeyType(i){forEachType(a?instantiateType(a,appendTypeMapping(e.mapper,r,i)):i,o=>function addMemberForKeyTypeWorker(i,o){if(isTypeUsableAsPropertyName(o)){const n=getPropertyNameFromType(o),r=t.get(n);if(r)r.links.nameType=getUnionType([r.links.nameType,o]),r.links.keyType=getUnionType([r.links.keyType,i]);else{const r=isTypeUsableAsPropertyName(i)?getPropertyOfType(d,getPropertyNameFromType(i)):void 0,a=!!(4&p||!(8&p)&&r&&16777216&r.flags),c=!!(1&p||!(2&p)&&r&&isReadonlySymbol(r)),l=k&&!a&&r&&16777216&r.flags,u=createSymbol(4|(a?16777216:0),n,262144|(r?getIsLateCheckFlag(r):0)|(c?8:0)|(l?524288:0));u.links.mappedType=e,u.links.nameType=o,u.links.keyType=i,r&&(u.links.syntheticOrigin=r,u.declarations=s?r.declarations:void 0),t.set(n,u)}}else if(isValidIndexKeyType(o)||33&o.flags){const t=5&o.flags?ze:40&o.flags?Ve:o,a=instantiateType(c,appendTypeMapping(e.mapper,r,i)),s=getApplicableIndexInfo(d,o),l=createIndexInfo(t,a,!!(1&p||!(2&p)&&(null==s?void 0:s.isReadonly)));n=appendIndexInfo(n,l,!0)}}(i,o))}isMappedTypeWithKeyofConstraintDeclaration(e)?forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(d,8576,!1,addMemberForKeyType):forEachType(getLowerBoundOfKeyType(i),addMemberForKeyType),setStructuredTypeMembers(e,t,l,l,n||l)}function getTypeParameterFromMappedType(e){return e.typeParameter||(e.typeParameter=getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e.declaration.typeParameter)))}function getConstraintTypeFromMappedType(e){return e.constraintType||(e.constraintType=getConstraintOfTypeParameter(getTypeParameterFromMappedType(e))||Ie)}function getNameTypeFromMappedType(e){return e.declaration.nameType?e.nameType||(e.nameType=instantiateType(getTypeFromTypeNode(e.declaration.nameType),e.mapper)):void 0}function getTemplateTypeFromMappedType(e){return e.templateType||(e.templateType=e.declaration.type?instantiateType(addOptionality(getTypeFromTypeNode(e.declaration.type),!0,!!(4&getMappedTypeModifiers(e))),e.mapper):Ie)}function getConstraintDeclarationForMappedType(e){return getEffectiveConstraintOfTypeParameter(e.declaration.typeParameter)}function isMappedTypeWithKeyofConstraintDeclaration(e){const t=getConstraintDeclarationForMappedType(e);return 199===t.kind&&143===t.operator}function getModifiersTypeFromMappedType(e){if(!e.modifiersType)if(isMappedTypeWithKeyofConstraintDeclaration(e))e.modifiersType=instantiateType(getTypeFromTypeNode(getConstraintDeclarationForMappedType(e).type),e.mapper);else{const t=getConstraintTypeFromMappedType(getTypeFromMappedTypeNode(e.declaration)),n=t&&262144&t.flags?getConstraintOfTypeParameter(t):t;e.modifiersType=n&&4194304&n.flags?instantiateType(n.type,e.mapper):Le}return e.modifiersType}function getMappedTypeModifiers(e){const t=e.declaration;return(t.readonlyToken?41===t.readonlyToken.kind?2:1:0)|(t.questionToken?41===t.questionToken.kind?8:4:0)}function getMappedTypeOptionality(e){const t=getMappedTypeModifiers(e);return 8&t?-1:4&t?1:0}function getCombinedMappedTypeOptionality(e){if(32&getObjectFlags(e))return getMappedTypeOptionality(e)||getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(e));if(2097152&e.flags){const t=getCombinedMappedTypeOptionality(e.types[0]);return every(e.types,(e,n)=>0===n||getCombinedMappedTypeOptionality(e)===t)?t:0}return 0}function isGenericMappedType(e){if(32&getObjectFlags(e)){const t=getConstraintTypeFromMappedType(e);if(isGenericIndexType(t))return!0;const n=getNameTypeFromMappedType(e);if(n&&isGenericIndexType(instantiateType(n,makeUnaryTypeMapper(getTypeParameterFromMappedType(e),t))))return!0}return!1}function getMappedTypeNameTypeKind(e){const t=getNameTypeFromMappedType(e);return t?isTypeAssignableTo(t,getTypeParameterFromMappedType(e))?1:2:0}function resolveStructuredTypeMembers(e){return e.members||(524288&e.flags?4&e.objectFlags?function resolveTypeReferenceMembers(e){const t=resolveDeclaredMembers(e.target),n=concatenate(t.typeParameters,[t.thisType]),r=getTypeArguments(e);resolveObjectTypeMembers(e,t,n,r.length===n.length?r:concatenate(r,[e]))}(e):3&e.objectFlags?function resolveClassOrInterfaceMembers(e){resolveObjectTypeMembers(e,resolveDeclaredMembers(e),l,l)}(e):1024&e.objectFlags?resolveReverseMappedTypeMembers(e):16&e.objectFlags?resolveAnonymousTypeMembers(e):32&e.objectFlags?resolveMappedTypeMembers(e):h.fail("Unhandled object type "+h.formatObjectFlags(e.objectFlags)):1048576&e.flags?function resolveUnionTypeMembers(e){const t=getUnionSignatures(map(e.types,e=>e===Wt?[fr]:getSignaturesOfType(e,0))),n=getUnionSignatures(map(e.types,e=>getSignaturesOfType(e,1))),r=getUnionIndexInfos(e.types);setStructuredTypeMembers(e,y,t,n,r)}(e):2097152&e.flags?function resolveIntersectionTypeMembers(e){let t,n,r;const i=e.types,o=findMixins(i),a=countWhere(o,e=>e);for(let s=0;s0&&(e=map(e,e=>{const t=cloneSignature(e);return t.resolvedReturnType=includeMixinType(getReturnTypeOfSignature(e),i,o,s),t})),n=appendSignatures(n,e)}t=appendSignatures(t,getSignaturesOfType(c,0)),r=reduceLeft(getIndexInfosOfType(c),(e,t)=>appendIndexInfo(e,t,!1),r)}setStructuredTypeMembers(e,y,t||l,n||l,r||l)}(e):h.fail("Unhandled type "+h.formatTypeFlags(e.flags))),e}function getPropertiesOfObjectType(e){return 524288&e.flags?resolveStructuredTypeMembers(e).properties:l}function getPropertyOfObjectType(e,t){if(524288&e.flags){const n=resolveStructuredTypeMembers(e).members.get(t);if(n&&symbolIsValue(n))return n}}function getPropertiesOfUnionOrIntersectionType(e){if(!e.resolvedProperties){const t=createSymbolTable();for(const n of e.types){for(const r of getPropertiesOfType(n))if(!t.has(r.escapedName)){const n=getPropertyOfUnionOrIntersectionType(e,r.escapedName,!!(2097152&e.flags));n&&t.set(r.escapedName,n)}if(1048576&e.flags&&0===getIndexInfosOfType(n).length)break}e.resolvedProperties=getNamedMembers(t)}return e.resolvedProperties}function getPropertiesOfType(e){return 3145728&(e=getReducedApparentType(e)).flags?getPropertiesOfUnionOrIntersectionType(e):getPropertiesOfObjectType(e)}function getConstraintOfType(e){return 262144&e.flags?getConstraintOfTypeParameter(e):8388608&e.flags?function getConstraintOfIndexedAccess(e){return hasNonCircularBaseConstraint(e)?function getConstraintFromIndexedAccess(e){if(isMappedTypeGenericIndexedAccess(e))return substituteIndexedMappedType(e.objectType,e.indexType);const t=getSimplifiedTypeOrConstraint(e.indexType);if(t&&t!==e.indexType){const n=getIndexedAccessTypeOrUndefined(e.objectType,t,e.accessFlags);if(n)return n}const n=getSimplifiedTypeOrConstraint(e.objectType);if(n&&n!==e.objectType)return getIndexedAccessTypeOrUndefined(n,e.indexType,e.accessFlags);return}(e):void 0}(e):16777216&e.flags?getConstraintOfConditionalType(e):getBaseConstraintOfType(e)}function getConstraintOfTypeParameter(e){return hasNonCircularBaseConstraint(e)?getConstraintFromTypeParameter(e):void 0}function isConstTypeVariable(e,t=0){var n;return t<5&&!(!e||!(262144&e.flags&&some(null==(n=e.symbol)?void 0:n.declarations,e=>hasSyntacticModifier(e,4096))||3145728&e.flags&&some(e.types,e=>isConstTypeVariable(e,t))||8388608&e.flags&&isConstTypeVariable(e.objectType,t+1)||16777216&e.flags&&isConstTypeVariable(getConstraintOfConditionalType(e),t+1)||33554432&e.flags&&isConstTypeVariable(e.baseType,t)||32&getObjectFlags(e)&&function isConstMappedType(e,t){const n=getHomomorphicTypeVariable(e);return!!n&&isConstTypeVariable(n,t)}(e,t)||isGenericTupleType(e)&&findIndex(getElementTypes(e),(n,r)=>!!(8&e.target.elementFlags[r])&&isConstTypeVariable(n,t))>=0))}function getSimplifiedTypeOrConstraint(e){const t=getSimplifiedType(e,!1);return t!==e?t:getConstraintOfType(e)}function getDefaultConstraintOfConditionalType(e){if(!e.resolvedDefaultConstraint){const t=function getInferredTrueTypeFromConditionalType(e){return e.resolvedInferredTrueType||(e.resolvedInferredTrueType=e.combinedMapper?instantiateType(getTypeFromTypeNode(e.root.node.trueType),e.combinedMapper):getTrueTypeFromConditionalType(e))}(e),n=getFalseTypeFromConditionalType(e);e.resolvedDefaultConstraint=isTypeAny(t)?n:isTypeAny(n)?t:getUnionType([t,n])}return e.resolvedDefaultConstraint}function getConstraintOfDistributiveConditionalType(e){if(void 0!==e.resolvedConstraintOfDistributive)return e.resolvedConstraintOfDistributive||void 0;if(e.root.isDistributive&&e.restrictiveInstantiation!==e){const t=getSimplifiedType(e.checkType,!1),n=t===e.checkType?getConstraintOfType(t):t;if(n&&n!==e.checkType){const t=getConditionalTypeInstantiation(e,prependTypeMapping(e.root.checkType,n,e.mapper),!0);if(!(131072&t.flags))return e.resolvedConstraintOfDistributive=t,t}}e.resolvedConstraintOfDistributive=!1}function getConstraintFromConditionalType(e){return getConstraintOfDistributiveConditionalType(e)||getDefaultConstraintOfConditionalType(e)}function getConstraintOfConditionalType(e){return hasNonCircularBaseConstraint(e)?getConstraintFromConditionalType(e):void 0}function getBaseConstraintOfType(e){if(464781312&e.flags||isGenericTupleType(e)){const t=getResolvedBaseConstraint(e);return t!==kt&&t!==Ft?t:void 0}return 4194304&e.flags?st:void 0}function getBaseConstraintOrType(e){return getBaseConstraintOfType(e)||e}function hasNonCircularBaseConstraint(e){return getResolvedBaseConstraint(e)!==Ft}function getResolvedBaseConstraint(e){if(e.resolvedBaseConstraint)return e.resolvedBaseConstraint;const t=[];return e.resolvedBaseConstraint=getImmediateBaseConstraint(e);function getImmediateBaseConstraint(e){if(!e.immediateBaseConstraint){if(!pushTypeResolution(e,4))return Ft;let n;const i=getRecursionIdentity(e);if((t.length<10||t.length<50&&!contains(t,i))&&(t.push(i),n=function computeBaseConstraint(e){if(262144&e.flags){const t=getConstraintFromTypeParameter(e);return e.isThisType||!t?t:getBaseConstraint(t)}if(3145728&e.flags){const t=e.types,n=[];let r=!1;for(const e of t){const t=getBaseConstraint(e);t?(t!==e&&(r=!0),n.push(t)):r=!0}return r?1048576&e.flags&&n.length===t.length?getUnionType(n):2097152&e.flags&&n.length?getIntersectionType(n):void 0:e}if(4194304&e.flags)return st;if(134217728&e.flags){const t=e.types,n=mapDefined(t,getBaseConstraint);return n.length===t.length?getTemplateLiteralType(e.texts,n):ze}if(268435456&e.flags){const t=getBaseConstraint(e.type);return t&&t!==e.type?getStringMappingType(e.symbol,t):ze}if(8388608&e.flags){if(isMappedTypeGenericIndexedAccess(e))return getBaseConstraint(substituteIndexedMappedType(e.objectType,e.indexType));const t=getBaseConstraint(e.objectType),n=getBaseConstraint(e.indexType),r=t&&n&&getIndexedAccessTypeOrUndefined(t,n,e.accessFlags);return r&&getBaseConstraint(r)}if(16777216&e.flags){const t=getConstraintFromConditionalType(e);return t&&getBaseConstraint(t)}if(33554432&e.flags)return getBaseConstraint(getSubstitutionIntersection(e));if(isGenericTupleType(e)){return createTupleType(map(getElementTypes(e),(t,n)=>{const r=262144&t.flags&&8&e.target.elementFlags[n]&&getBaseConstraint(t)||t;return r!==t&&everyType(r,e=>isArrayOrTupleType(e)&&!isGenericTupleType(e))?r:t}),e.target.elementFlags,e.target.readonly,e.target.labeledElementDeclarations)}return e}(getSimplifiedType(e,!1)),t.pop()),!popTypeResolution()){if(262144&e.flags){const t=getConstraintDeclaration(e);if(t){const n=error2(t,Ot.Type_parameter_0_has_a_circular_constraint,typeToString(e));!r||isNodeDescendantOf(t,r)||isNodeDescendantOf(r,t)||addRelatedInfo(n,createDiagnosticForNode(r,Ot.Circularity_originates_in_type_at_this_location))}}n=Ft}e.immediateBaseConstraint??(e.immediateBaseConstraint=n||kt)}return e.immediateBaseConstraint}function getBaseConstraint(e){const t=getImmediateBaseConstraint(e);return t!==kt&&t!==Ft?t:void 0}}function getResolvedTypeParameterDefault(e){if(e.default)e.default===Pt&&(e.default=Ft);else if(e.target){const t=getResolvedTypeParameterDefault(e.target);e.default=t?instantiateType(t,e.mapper):kt}else{e.default=Pt;const t=e.symbol&&forEach(e.symbol.declarations,e=>isTypeParameterDeclaration(e)&&e.default),n=t?getTypeFromTypeNode(t):kt;e.default===Pt&&(e.default=n)}return e.default}function getDefaultFromTypeParameter(e){const t=getResolvedTypeParameterDefault(e);return t!==kt&&t!==Ft?t:void 0}function hasTypeParameterDefault(e){return!(!e.symbol||!forEach(e.symbol.declarations,e=>isTypeParameterDeclaration(e)&&e.default))}function getApparentTypeOfMappedType(e){return e.resolvedApparentType||(e.resolvedApparentType=function getResolvedApparentTypeOfMappedType(e){const t=e.target??e,n=getHomomorphicTypeVariable(t);if(n&&!t.declaration.nameType){const r=getModifiersTypeFromMappedType(e),i=isGenericMappedType(r)?getApparentTypeOfMappedType(r):getBaseConstraintOfType(r);if(i&&everyType(i,e=>isArrayOrTupleType(e)||isArrayOrTupleOrIntersection(e)))return instantiateType(t,prependTypeMapping(n,i,e.mapper))}return e}(e))}function isArrayOrTupleOrIntersection(e){return!!(2097152&e.flags)&&every(e.types,isArrayOrTupleType)}function isMappedTypeGenericIndexedAccess(e){let t;return!(!(8388608&e.flags&&32&getObjectFlags(t=e.objectType)&&!isGenericMappedType(t)&&isGenericIndexType(e.indexType))||8&getMappedTypeModifiers(t)||t.declaration.nameType)}function getApparentType(e){const t=465829888&e.flags?getBaseConstraintOfType(e)||Le:e,n=getObjectFlags(t);return 32&n?getApparentTypeOfMappedType(t):4&n&&t!==e?getTypeWithThisArgument(t,e):2097152&t.flags?function getApparentTypeOfIntersectionType(e,t){if(e===t)return e.resolvedApparentType||(e.resolvedApparentType=getTypeWithThisArgument(e,t,!0));const n=`I${getTypeId(e)},${getTypeId(t)}`;return getCachedType(n)??setCachedType(n,getTypeWithThisArgument(e,t,!0))}(t,e):402653316&t.flags?Ht:296&t.flags?Kt:2112&t.flags?function getGlobalBigIntType(){return Jn||(Jn=getGlobalType("BigInt",0,!1))||ht}():528&t.flags?Gt:12288&t.flags?getGlobalESSymbolType():67108864&t.flags?ht:4194304&t.flags?st:2&t.flags&&!k?ht:t}function getReducedApparentType(e){return getReducedType(getApparentType(getReducedType(e)))}function createUnionOrIntersectionProperty(e,t,n){var r,i,o;let a,s,c,l=0;const d=1048576&e.flags;let p,u=4,m=d?0:8,_=!1;for(const r of e.types){const e=getApparentType(r);if(!(isErrorType(e)||131072&e.flags)){const r=getPropertyOfType(e,t,n),i=r?getDeclarationModifierFlagsFromSymbol(r):0;if(r){if(106500&r.flags&&(p??(p=d?0:16777216),d?p|=16777216&r.flags:p&=r.flags),a){if(r!==a){if((getTargetSymbol(r)||r)===(getTargetSymbol(a)||a)&&-1===compareProperties2(a,r,(e,t)=>e===t?-1:0))_=!!a.parent&&!!length(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(a.parent));else{s||(s=new Map,s.set(getSymbolId(a),a));const e=getSymbolId(r);s.has(e)||s.set(e,r)}98304&l&&(98304&r.flags)!=(98304&l)&&(l=-98305&l|4)}}else a=r,l=98304&r.flags||4;d&&isReadonlySymbol(r)?m|=8:d||isReadonlySymbol(r)||(m&=-9),m|=(6&i?0:256)|(4&i?512:0)|(2&i?1024:0)|(256&i?2048:0),isPrototypeProperty(r)||(u=2)}else if(d){const n=!isLateBoundName(t)&&getApplicableIndexInfoForName(e,t);n?(l=-98305&l|4,m|=32|(n.isReadonly?8:0),c=append(c,isTupleType(e)?getRestTypeOfTupleType(e)||Me:n.type)):!isObjectLiteralType2(e)||2097152&getObjectFlags(e)?m|=16:(m|=32,c=append(c,Me))}}}if(!a||d&&(s||48&m)&&1536&m&&(!s||!function getCommonDeclarationsOfSymbols(e){let t;for(const n of e){if(!n.declarations)return;if(t){if(t.forEach(e=>{contains(n.declarations,e)||t.delete(e)}),0===t.size)return}else t=new Set(n.declarations)}return t}(s.values())))return;if(!(s||16&m||c)){if(_){const t=null==(r=tryCast(a,isTransientSymbol))?void 0:r.links,n=createSymbolWithType(a,null==t?void 0:t.type);return n.parent=null==(o=null==(i=a.valueDeclaration)?void 0:i.symbol)?void 0:o.parent,n.links.containingType=e,n.links.mapper=null==t?void 0:t.mapper,n.links.writeType=getWriteTypeOfSymbol(a),n}return a}const f=s?arrayFrom(s.values()):[a];let g,y,h;const T=[];let S,x,v=!1;for(const e of f){x?e.valueDeclaration&&e.valueDeclaration!==x&&(v=!0):x=e.valueDeclaration,g=addRange(g,e.declarations);const t=getTypeOfSymbol(e);y||(y=t,h=getSymbolLinks(e).nameType);const n=getWriteTypeOfSymbol(e);(S||n!==t)&&(S=append(S||T.slice(),n)),t!==y&&(m|=64),(isLiteralType(t)||isPatternLiteralType(t))&&(m|=128),131072&t.flags&&t!==_t&&(m|=131072),T.push(t)}addRange(T,c);const b=createSymbol(l|(p??0),t,u|m);return b.links.containingType=e,!v&&x&&(b.valueDeclaration=x,x.symbol.parent&&(b.parent=x.symbol.parent)),b.declarations=g,b.links.nameType=h,T.length>2?(b.links.checkFlags|=65536,b.links.deferralParent=e,b.links.deferralConstituents=T,b.links.deferralWriteConstituents=S):(b.links.type=d?getUnionType(T):getIntersectionType(T),S&&(b.links.writeType=d?getUnionType(S):getIntersectionType(S))),b}function getUnionOrIntersectionProperty(e,t,n){var r,i,o;let a=n?null==(r=e.propertyCacheWithoutObjectFunctionPropertyAugment)?void 0:r.get(t):null==(i=e.propertyCache)?void 0:i.get(t);if(!a&&(a=createUnionOrIntersectionProperty(e,t,n),a)){if((n?e.propertyCacheWithoutObjectFunctionPropertyAugment||(e.propertyCacheWithoutObjectFunctionPropertyAugment=createSymbolTable()):e.propertyCache||(e.propertyCache=createSymbolTable())).set(t,a),n&&!(48&getCheckFlags(a))&&!(null==(o=e.propertyCache)?void 0:o.get(t))){(e.propertyCache||(e.propertyCache=createSymbolTable())).set(t,a)}}return a}function getPropertyOfUnionOrIntersectionType(e,t,n){const r=getUnionOrIntersectionProperty(e,t,n);return!r||16&getCheckFlags(r)?void 0:r}function getReducedType(e){return 1048576&e.flags&&16777216&e.objectFlags?e.resolvedReducedType||(e.resolvedReducedType=function getReducedUnionType(e){const t=sameMap(e.types,getReducedType);if(t===e.types)return e;const n=getUnionType(t);1048576&n.flags&&(n.resolvedReducedType=n);return n}(e)):2097152&e.flags?(16777216&e.objectFlags||(e.objectFlags|=16777216|(some(getPropertiesOfUnionOrIntersectionType(e),isNeverReducedProperty)?33554432:0)),33554432&e.objectFlags?tt:e):e}function isNeverReducedProperty(e){return isDiscriminantWithNeverType(e)||isConflictingPrivateProperty(e)}function isDiscriminantWithNeverType(e){return!(16777216&e.flags||192!=(131264&getCheckFlags(e))||!(131072&getTypeOfSymbol(e).flags))}function isConflictingPrivateProperty(e){return!e.valueDeclaration&&!!(1024&getCheckFlags(e))}function isGenericReducibleType(e){return!!(1048576&e.flags&&16777216&e.objectFlags&&some(e.types,isGenericReducibleType)||2097152&e.flags&&function isReducibleIntersection(e){const t=e.uniqueLiteralFilledInstantiation||(e.uniqueLiteralFilledInstantiation=instantiateType(e,ft));return getReducedType(t)!==t}(e))}function elaborateNeverIntersection(e,t){if(2097152&t.flags&&33554432&getObjectFlags(t)){const n=find(getPropertiesOfUnionOrIntersectionType(t),isDiscriminantWithNeverType);if(n)return chainDiagnosticMessages(e,Ot.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,typeToString(t,void 0,536870912),symbolToString(n));const r=find(getPropertiesOfUnionOrIntersectionType(t),isConflictingPrivateProperty);if(r)return chainDiagnosticMessages(e,Ot.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,typeToString(t,void 0,536870912),symbolToString(r))}return e}function getPropertyOfType(e,t,n,r){var i,o;if(524288&(e=getReducedApparentType(e)).flags){const a=resolveStructuredTypeMembers(e),s=a.members.get(t);if(s&&!r&&512&(null==(i=e.symbol)?void 0:i.flags)&&(null==(o=getSymbolLinks(e.symbol).typeOnlyExportStarMap)?void 0:o.has(t)))return;if(s&&symbolIsValue(s,r))return s;if(n)return;const c=a===Nt?Wt:a.callSignatures.length?Ut:a.constructSignatures.length?zt:void 0;if(c){const e=getPropertyOfObjectType(c,t);if(e)return e}return getPropertyOfObjectType(Jt,t)}if(2097152&e.flags){const r=getPropertyOfUnionOrIntersectionType(e,t,!0);return r||(n?void 0:getPropertyOfUnionOrIntersectionType(e,t,n))}if(1048576&e.flags)return getPropertyOfUnionOrIntersectionType(e,t,n)}function getSignaturesOfStructuredType(e,t){if(3670016&e.flags){const n=resolveStructuredTypeMembers(e);return 0===t?n.callSignatures:n.constructSignatures}return l}function getSignaturesOfType(e,t){const n=getSignaturesOfStructuredType(getReducedApparentType(e),t);if(0===t&&!length(n)&&1048576&e.flags){if(e.arrayFallbackSignatures)return e.arrayFallbackSignatures;let r;if(everyType(e,e=>{var t;return!!(null==(t=e.symbol)?void 0:t.parent)&&function isArrayOrTupleSymbol(e){if(!e||!Vt.symbol||!qt.symbol)return!1;return!!getSymbolIfSameReference(e,Vt.symbol)||!!getSymbolIfSameReference(e,qt.symbol)}(e.symbol.parent)&&(r?r===e.symbol.escapedName:(r=e.symbol.escapedName,!0))})){const n=createArrayType(mapType(e,e=>getMappedType((isReadonlyArraySymbol(e.symbol.parent)?qt:Vt).typeParameters[0],e.mapper)),someType(e,e=>isReadonlyArraySymbol(e.symbol.parent)));return e.arrayFallbackSignatures=getSignaturesOfType(getTypeOfPropertyOfType(n,r),t)}e.arrayFallbackSignatures=n}return n}function isReadonlyArraySymbol(e){return!(!e||!qt.symbol)&&!!getSymbolIfSameReference(e,qt.symbol)}function findIndexInfo(e,t){return find(e,e=>e.keyType===t)}function findApplicableIndexInfo(e,t){let n,r,i;for(const o of e)o.keyType===ze?n=o:isApplicableIndexType(t,o.keyType)&&(r?(i||(i=[r])).push(o):r=o);return i?createIndexInfo(Le,getIntersectionType(map(i,e=>e.type)),reduceLeft(i,(e,t)=>e&&t.isReadonly,!0)):r||(n&&isApplicableIndexType(t,ze)?n:void 0)}function isApplicableIndexType(e,t){return isTypeAssignableTo(e,t)||t===ze&&isTypeAssignableTo(e,Ve)||t===Ve&&(e===pt||!!(128&e.flags)&&isNumericLiteralName(e.value))}function getIndexInfosOfStructuredType(e){if(3670016&e.flags){return resolveStructuredTypeMembers(e).indexInfos}return l}function getIndexInfosOfType(e){return getIndexInfosOfStructuredType(getReducedApparentType(e))}function getIndexInfoOfType(e,t){return findIndexInfo(getIndexInfosOfType(e),t)}function getIndexTypeOfType(e,t){var n;return null==(n=getIndexInfoOfType(e,t))?void 0:n.type}function getApplicableIndexInfos(e,t){return getIndexInfosOfType(e).filter(e=>isApplicableIndexType(t,e.keyType))}function getApplicableIndexInfo(e,t){return findApplicableIndexInfo(getIndexInfosOfType(e),t)}function getApplicableIndexInfoForName(e,t){return getApplicableIndexInfo(e,isLateBoundName(t)?Ze:getStringLiteralType(unescapeLeadingUnderscores(t)))}function getTypeParametersFromDeclaration(e){var t;let n;for(const t of getEffectiveTypeParameterDeclarations(e))n=appendIfUnique(n,getDeclaredTypeOfTypeParameter(t.symbol));return(null==n?void 0:n.length)?n:isFunctionDeclaration(e)?null==(t=getSignatureOfTypeTag(e))?void 0:t.typeParameters:void 0}function symbolsToArray(e){const t=[];return e.forEach((e,n)=>{isReservedMemberName(n)||t.push(e)}),t}function tryFindAmbientModule(e,t){if(isExternalModuleNameRelative(e))return;const n=getSymbol2(z,'"'+e+'"',512);return n&&t?getMergedSymbol(n):n}function hasEffectiveQuestionToken(e){return hasQuestionToken(e)||isOptionalJSDocPropertyLikeTag(e)||isParameter(e)&&isJSDocOptionalParameter(e)}function isOptionalParameter(e){if(hasEffectiveQuestionToken(e))return!0;if(!isParameter(e))return!1;if(e.initializer){const t=getSignatureFromDeclaration(e.parent),n=e.parent.parameters.indexOf(e);return h.assert(n>=0),n>=getMinArgumentCount(t,3)}const t=getImmediatelyInvokedFunctionExpression(e.parent);return!!t&&(!e.type&&!e.dotDotDotToken&&e.parent.parameters.indexOf(e)>=getEffectiveCallArguments(t).length)}function createTypePredicate(e,t,n,r){return{kind:e,parameterName:t,parameterIndex:n,type:r}}function getMinTypeArgumentCount(e){let t=0;if(e)for(let n=0;n=n&&o<=i){const n=e?e.slice():[];for(let e=o;e!!getJSDocType(e))&&!getJSDocType(e)&&!getContextualSignatureForFunctionLikeDeclaration(e)&&(i|=32);for(let t=l?1:0;tc.arguments.length&&!p||(o=n.length)}if((178===e.kind||179===e.kind)&&hasBindableName(e)&&(!s||!r)){const t=178===e.kind?179:178,n=getDeclarationOfKind(getSymbolOfDeclaration(e),t);n&&(r=function getAnnotatedAccessorThisParameter(e){const t=getAccessorThisParameter(e);return t&&t.symbol}(n))}a&&a.typeExpression&&(r=createSymbolWithType(createSymbol(1,"this"),getTypeFromTypeNode(a.typeExpression)));const d=isJSDocSignature(e)?getEffectiveJSDocHost(e):e,p=d&&isConstructorDeclaration(d)?getDeclaredTypeOfClassOrInterface(getMergedSymbol(d.parent.symbol)):void 0,u=p?p.localTypeParameters:getTypeParametersFromDeclaration(e);(hasRestParameter(e)||isInJSFile(e)&&function maybeAddJsSyntheticRestParameter(e,t){if(isJSDocSignature(e)||!containsArgumentsReference(e))return!1;const n=lastOrUndefined(e.parameters),r=n?getJSDocParameterTags(n):getJSDocTags(e).filter(isJSDocParameterTag),i=firstDefined(r,e=>e.typeExpression&&isJSDocVariadicType(e.typeExpression.type)?e.typeExpression.type:void 0),o=createSymbol(3,"args",32768);i?o.links.type=createArrayType(getTypeFromTypeNode(i.type)):(o.links.checkFlags|=65536,o.links.deferralParent=tt,o.links.deferralConstituents=[Xt],o.links.deferralWriteConstituents=[Xt]);i&&t.pop();return t.push(o),!0}(e,n))&&(i|=1),(isConstructorTypeNode(e)&&hasSyntacticModifier(e,64)||isConstructorDeclaration(e)&&hasSyntacticModifier(e.parent,64))&&(i|=4),t.resolvedSignature=createSignature(e,u,r,n,void 0,void 0,o,i)}return t.resolvedSignature}function getSignatureOfTypeTag(e){if(!isInJSFile(e)||!isFunctionLikeDeclaration(e))return;const t=getJSDocTypeTag(e);return(null==t?void 0:t.typeExpression)&&getSingleCallSignature(getTypeFromTypeNode(t.typeExpression))}function containsArgumentsReference(e){const t=getNodeLinks(e);return void 0===t.containsArgumentsReference&&(512&t.flags?t.containsArgumentsReference=!0:t.containsArgumentsReference=function traverse(e){if(!e)return!1;switch(e.kind){case 80:return e.escapedText===$.escapedName&&getReferencedValueSymbol(e)===$;case 173:case 175:case 178:case 179:return 168===e.name.kind&&traverse(e.name);case 212:case 213:return traverse(e.expression);case 304:return traverse(e.initializer);default:return!nodeStartsNewLexicalEnvironment(e)&&!isPartOfTypeNode(e)&&!!forEachChild(e,traverse)}}(e.body)),t.containsArgumentsReference}function getSignaturesOfSymbol(e){if(!e||!e.declarations)return l;const t=[];for(let n=0;n0&&r.body){const t=e.declarations[n-1];if(r.parent===t.parent&&r.kind===t.kind&&r.pos===t.end)continue}if(isInJSFile(r)&&r.jsDoc){const e=getJSDocOverloadTags(r);if(length(e)){for(const n of e){const e=n.typeExpression;void 0!==e.type||isConstructorDeclaration(r)||reportImplicitAny(e,ke),t.push(getSignatureFromDeclaration(e))}continue}}t.push(!isFunctionExpressionOrArrowFunction(r)&&!isObjectLiteralMethod(r)&&getSignatureOfTypeTag(r)||getSignatureFromDeclaration(r))}}return t}function resolveExternalModuleTypeByLiteral(e){const t=resolveExternalModuleName(e,e);if(t){const e=resolveExternalModuleSymbol(t);if(e)return getTypeOfSymbol(e)}return ke}function getThisTypeOfSignature(e){if(e.thisParameter)return getTypeOfSymbol(e.thisParameter)}function getTypePredicateOfSignature(e){if(!e.resolvedTypePredicate){if(e.target){const t=getTypePredicateOfSignature(e.target);e.resolvedTypePredicate=t?instantiateTypePredicate(t,e.mapper):mr}else if(e.compositeSignatures)e.resolvedTypePredicate=function getUnionOrIntersectionTypePredicate(e,t){let n;const r=[];for(const i of e){const e=getTypePredicateOfSignature(i);if(e){if(0!==e.kind&&1!==e.kind||n&&!typePredicateKindsMatch(n,e))return;n=e,r.push(e.type)}else{const e=2097152!==t?getReturnTypeOfSignature(i):void 0;if(e!==He&&e!==Ke)return}}if(!n)return;const i=getUnionOrIntersectionType(r,t);return createTypePredicate(n.kind,n.parameterName,n.parameterIndex,i)}(e.compositeSignatures,e.compositeKind)||mr;else{const t=e.declaration&&getEffectiveReturnTypeNode(e.declaration);let n;if(!t){const t=getSignatureOfTypeTag(e.declaration);t&&e!==t&&(n=getTypePredicateOfSignature(t))}if(t||n)e.resolvedTypePredicate=t&&isTypePredicateNode(t)?function createTypePredicateFromTypePredicateNode(e,t){const n=e.parameterName,r=e.type&&getTypeFromTypeNode(e.type);return 198===n.kind?createTypePredicate(e.assertsModifier?2:0,void 0,void 0,r):createTypePredicate(e.assertsModifier?3:1,n.escapedText,findIndex(t.parameters,e=>e.escapedName===n.escapedText),r)}(t,e):n||mr;else if(e.declaration&&isFunctionLikeDeclaration(e.declaration)&&(!e.resolvedReturnType||16&e.resolvedReturnType.flags)&&getParameterCount(e)>0){const{declaration:t}=e;e.resolvedTypePredicate=mr,e.resolvedTypePredicate=function getTypePredicateFromBody(e){switch(e.kind){case 177:case 178:case 179:return}if(0!==getFunctionFlags(e))return;let t;if(e.body&&242!==e.body.kind)t=e.body;else{if(forEachReturnStatement(e.body,e=>{if(t||!e.expression)return!0;t=e.expression})||!t||functionHasImplicitReturn(e))return}return function checkIfExpressionRefinesAnyParameter(e,t){t=skipParentheses(t,!0);return 16&checkExpressionCached(t).flags?forEach(e.parameters,(n,r)=>{const i=getTypeOfSymbol(n.symbol);if(!i||16&i.flags||!isIdentifier(n.name)||isSymbolAssigned(n.symbol)||isRestParameter(n))return;const o=function checkIfExpressionRefinesParameter(e,t,n,r){const i=canHaveFlowNode(t)&&t.flowNode||254===t.parent.kind&&t.parent.flowNode||createFlowNode(2,void 0,void 0),o=createFlowNode(32,t,i),a=getFlowTypeOfReference(n.name,r,r,e,o);if(a===r)return;const s=createFlowNode(64,t,i),c=getReducedType(getFlowTypeOfReference(n.name,r,a,e,s));return 131072&c.flags?a:void 0}(e,t,n,i);return o?createTypePredicate(1,unescapeLeadingUnderscores(n.name.escapedText),r,o):void 0}):void 0}(e,t)}(t)||mr}else e.resolvedTypePredicate=mr}h.assert(!!e.resolvedTypePredicate)}return e.resolvedTypePredicate===mr?void 0:e.resolvedTypePredicate}function getUnionOrIntersectionType(e,t,n){return 2097152!==t?getUnionType(e,n):getIntersectionType(e)}function getReturnTypeOfSignature(e){if(!e.resolvedReturnType){if(!pushTypeResolution(e,3))return Ie;let t=e.target?instantiateType(getReturnTypeOfSignature(e.target),e.mapper):e.compositeSignatures?instantiateType(getUnionOrIntersectionType(map(e.compositeSignatures,getReturnTypeOfSignature),e.compositeKind,2),e.mapper):getReturnTypeFromAnnotation(e.declaration)||(nodeIsMissing(e.declaration.body)?ke:getReturnTypeFromBody(e.declaration));if(8&e.flags?t=addOptionalTypeMarker(t):16&e.flags&&(t=getOptionalType(t)),!popTypeResolution()){if(e.declaration){const t=getEffectiveReturnTypeNode(e.declaration);if(t)error2(t,Ot.Return_type_annotation_circularly_references_itself);else if(A){const t=e.declaration,n=getNameOfDeclaration(t);n?error2(n,Ot._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,declarationNameToString(n)):error2(t,Ot.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}t=ke}e.resolvedReturnType??(e.resolvedReturnType=t)}return e.resolvedReturnType}function getReturnTypeFromAnnotation(e){if(177===e.kind)return getDeclaredTypeOfClassOrInterface(getMergedSymbol(e.parent.symbol));const t=getEffectiveReturnTypeNode(e);if(isJSDocSignature(e)){const n=getJSDocRoot(e);if(n&&isConstructorDeclaration(n.parent)&&!t)return getDeclaredTypeOfClassOrInterface(getMergedSymbol(n.parent.parent.symbol))}if(isJSDocConstructSignature(e))return getTypeFromTypeNode(e.parameters[0].type);if(t)return getTypeFromTypeNode(t);if(178===e.kind&&hasBindableName(e)){const t=isInJSFile(e)&&getTypeForDeclarationFromJSDocComment(e);if(t)return t;const n=getAnnotatedAccessorType(getDeclarationOfKind(getSymbolOfDeclaration(e),179));if(n)return n}return function getReturnTypeOfTypeTag(e){const t=getSignatureOfTypeTag(e);return t&&getReturnTypeOfSignature(t)}(e)}function isResolvingReturnTypeOfSignature(e){return e.compositeSignatures&&some(e.compositeSignatures,isResolvingReturnTypeOfSignature)||!e.resolvedReturnType&&findResolutionCycleStartIndex(e,3)>=0}function tryGetRestTypeOfSignature(e){if(signatureHasRestParameter(e)){const t=getTypeOfSymbol(e.parameters[e.parameters.length-1]),n=isTupleType(t)?getRestTypeOfTupleType(t):t;return n&&getIndexTypeOfType(n,Ve)}}function getSignatureInstantiation(e,t,n,r){const i=getSignatureInstantiationWithoutFillingInTypeArguments(e,fillMissingTypeArguments(t,e.typeParameters,getMinTypeArgumentCount(e.typeParameters),n));if(r){const e=getSingleCallOrConstructSignature(getReturnTypeOfSignature(i));if(e){const t=cloneSignature(e);t.typeParameters=r;const n=getOrCreateTypeFromSignature(t);n.mapper=i.mapper;const o=cloneSignature(i);return o.resolvedReturnType=n,o}}return i}function getSignatureInstantiationWithoutFillingInTypeArguments(e,t){const n=e.instantiations||(e.instantiations=new Map),r=getTypeListId(t);let i=n.get(r);return i||n.set(r,i=createSignatureInstantiation(e,t)),i}function createSignatureInstantiation(e,t){return instantiateSignature(e,function createSignatureTypeMapper(e,t){return createTypeMapper(getTypeParametersForMapper(e),t)}(e,t),!0)}function getTypeParametersForMapper(e){return sameMap(e.typeParameters,e=>e.mapper?instantiateType(e,e.mapper):e)}function getErasedSignature(e){return e.typeParameters?e.erasedSignatureCache||(e.erasedSignatureCache=function createErasedSignature(e){return instantiateSignature(e,createTypeEraser(e.typeParameters),!0)}(e)):e}function getCanonicalSignature(e){return e.typeParameters?e.canonicalSignatureCache||(e.canonicalSignatureCache=function createCanonicalSignature(e){return getSignatureInstantiation(e,map(e.typeParameters,e=>e.target&&!getConstraintOfTypeParameter(e.target)?e.target:e),isInJSFile(e.declaration))}(e)):e}function getBaseSignature(e){const t=e.typeParameters;if(t){if(e.baseSignatureCache)return e.baseSignatureCache;const n=createTypeEraser(t),r=createTypeMapper(t,map(t,e=>getConstraintOfTypeParameter(e)||Le));let i=map(t,e=>instantiateType(e,r)||Le);for(let e=0;e{isValidIndexKeyType(e)&&!findIndexInfo(n,e)&&n.push(createIndexInfo(e,t.type?getTypeFromTypeNode(t.type):ke,hasEffectiveModifier(t,8),t))})}}else if(hasLateBindableIndexSignature(t)){const e=isBinaryExpression(t)?t.left:t.name,d=isElementAccessExpression(e)?checkExpressionCached(e.argumentExpression):checkComputedPropertyName(e);if(findIndexInfo(n,d))continue;isTypeAssignableTo(d,st)&&(isTypeAssignableTo(d,Ve)?(r=!0,hasEffectiveReadonlyModifier(t)||(i=!1)):isTypeAssignableTo(d,Ze)?(o=!0,hasEffectiveReadonlyModifier(t)||(a=!1)):(s=!0,hasEffectiveReadonlyModifier(t)||(c=!1)),l.push(t.symbol))}const d=concatenate(l,filter(t,t=>t!==e));return s&&!findIndexInfo(n,ze)&&n.push(getObjectLiteralIndexInfo(c,0,d,ze)),r&&!findIndexInfo(n,Ve)&&n.push(getObjectLiteralIndexInfo(i,0,d,Ve)),o&&!findIndexInfo(n,Ze)&&n.push(getObjectLiteralIndexInfo(a,0,d,Ze)),n}return l}function isValidIndexKeyType(e){return!!(4108&e.flags)||isPatternLiteralType(e)||!!(2097152&e.flags)&&!isGenericType(e)&&some(e.types,isValidIndexKeyType)}function getConstraintDeclaration(e){return mapDefined(filter(e.symbol&&e.symbol.declarations,isTypeParameterDeclaration),getEffectiveConstraintOfTypeParameter)[0]}function getInferredTypeParameterConstraint(e,t){var n;let r;if(null==(n=e.symbol)?void 0:n.declarations)for(const n of e.symbol.declarations)if(196===n.parent.kind){const[i=n.parent,o]=walkUpParenthesizedTypesAndGetParentAndChild(n.parent.parent);if(184!==o.kind||t){if(170===o.kind&&o.dotDotDotToken||192===o.kind||203===o.kind&&o.dotDotDotToken)r=append(r,createArrayType(Le));else if(205===o.kind)r=append(r,ze);else if(169===o.kind&&201===o.parent.kind)r=append(r,st);else if(201===o.kind&&o.type&&skipParentheses(o.type)===n.parent&&195===o.parent.kind&&o.parent.extendsType===o&&201===o.parent.checkType.kind&&o.parent.checkType.type){const e=o.parent.checkType;r=append(r,instantiateType(getTypeFromTypeNode(e.type),makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e.typeParameter)),e.typeParameter.constraint?getTypeFromTypeNode(e.typeParameter.constraint):st)))}}else{const t=o,n=getTypeParametersForTypeReferenceOrImport(t);if(n){const o=t.typeArguments.indexOf(i);if(o()=>getEffectiveTypeArgumentAtIndex(t,n,r))));o!==e&&(r=append(r,o))}}}}}return r&&getIntersectionType(r)}function getConstraintFromTypeParameter(e){if(!e.constraint)if(e.target){const t=getConstraintOfTypeParameter(e.target);e.constraint=t?instantiateType(t,e.mapper):kt}else{const t=getConstraintDeclaration(e);if(t){let n=getTypeFromTypeNode(t);1&n.flags&&!isErrorType(n)&&(n=201===t.parent.parent.kind?st:Le),e.constraint=n}else e.constraint=getInferredTypeParameterConstraint(e)||kt}return e.constraint===kt?void 0:e.constraint}function getParentSymbolOfTypeParameter(e){const t=getDeclarationOfKind(e.symbol,169),n=isJSDocTemplateTag(t.parent)?getEffectiveContainerForJSDocTemplateTag(t.parent):t.parent;return n&&getSymbolOfNode(n)}function getTypeListId(e){let t="";if(e){const n=e.length;let r=0;for(;r1&&(t+=":"+o),r+=o}}return t}function getAliasId(e,t){return e?`@${getSymbolId(e)}`+(t?`:${getTypeListId(t)}`:""):""}function getPropagatingFlagsOfTypes(e,t){let n=0;for(const r of e)void 0!==t&&r.flags&t||(n|=getObjectFlags(r));return 458752&n}function tryCreateTypeReference(e,t){return some(t)&&e===Et?Le:createTypeReference(e,t)}function createTypeReference(e,t){const n=getTypeListId(t);let r=e.instantiations.get(n);return r||(r=createObjectType(4,e.symbol),e.instantiations.set(n,r),r.objectFlags|=t?getPropagatingFlagsOfTypes(t):0,r.target=e,r.resolvedTypeArguments=t),r}function cloneTypeReference(e){const t=createTypeWithSymbol(e.flags,e.symbol);return t.objectFlags=e.objectFlags,t.target=e.target,t.resolvedTypeArguments=e.resolvedTypeArguments,t}function createDeferredTypeReference(e,t,n,r,i){if(!r){const e=getTypeArgumentsForAliasSymbol(r=getAliasSymbolForTypeNode(t));i=n?instantiateTypes(e,n):e}const o=createObjectType(4,e.symbol);return o.target=e,o.node=t,o.mapper=n,o.aliasSymbol=r,o.aliasTypeArguments=i,o}function getTypeArguments(e){var t,n;if(!e.resolvedTypeArguments){if(!pushTypeResolution(e,5))return concatenate(e.target.outerTypeParameters,null==(t=e.target.localTypeParameters)?void 0:t.map(()=>Ie))||l;const i=e.node,o=i?184===i.kind?concatenate(e.target.outerTypeParameters,getEffectiveTypeArguments2(i,e.target.localTypeParameters)):189===i.kind?[getTypeFromTypeNode(i.elementType)]:map(i.elements,getTypeFromTypeNode):l;popTypeResolution()?e.resolvedTypeArguments??(e.resolvedTypeArguments=e.mapper?instantiateTypes(o,e.mapper):o):(e.resolvedTypeArguments??(e.resolvedTypeArguments=concatenate(e.target.outerTypeParameters,(null==(n=e.target.localTypeParameters)?void 0:n.map(()=>Ie))||l)),error2(e.node||r,e.target.symbol?Ot.Type_arguments_for_0_circularly_reference_themselves:Ot.Tuple_type_arguments_circularly_reference_themselves,e.target.symbol&&symbolToString(e.target.symbol)))}return e.resolvedTypeArguments}function getTypeReferenceArity(e){return length(e.target.typeParameters)}function getTypeFromClassOrInterfaceReference(e,t){const n=getDeclaredTypeOfSymbol(getMergedSymbol(t)),r=n.localTypeParameters;if(r){const t=length(e.typeArguments),i=getMinTypeArgumentCount(r),o=isInJSFile(e);if(!(!A&&o)&&(tr.length)){const t=o&&isExpressionWithTypeArguments(e)&&!isJSDocAugmentsTag(e.parent);if(error2(e,i===r.length?t?Ot.Expected_0_type_arguments_provide_these_with_an_extends_tag:Ot.Generic_type_0_requires_1_type_argument_s:t?Ot.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:Ot.Generic_type_0_requires_between_1_and_2_type_arguments,typeToString(n,void 0,2),i,r.length),!o)return Ie}if(184===e.kind&&isDeferredTypeReferenceNode(e,length(e.typeArguments)!==r.length))return createDeferredTypeReference(n,e,void 0);return createTypeReference(n,concatenate(n.outerTypeParameters,fillMissingTypeArguments(typeArgumentsFromTypeReferenceNode(e),r,i,o)))}return checkNoTypeArguments(e,t)?n:Ie}function getTypeAliasInstantiation(e,t,n,r){const i=getDeclaredTypeOfSymbol(e);if(i===we){const n=oa.get(e.escapedName);if(void 0!==n&&t&&1===t.length)return 4===n?getNoInferType(t[0]):getStringMappingType(e,t[0])}const o=getSymbolLinks(e),a=o.typeParameters,s=getTypeListId(t)+getAliasId(n,r);let c=o.instantiations.get(s);return c||o.instantiations.set(s,c=instantiateTypeWithAlias(i,createTypeMapper(a,fillMissingTypeArguments(t,a,getMinTypeArgumentCount(a),isInJSFile(e.valueDeclaration))),n,r)),c}function isLocalTypeAlias(e){var t;const n=null==(t=e.declarations)?void 0:t.find(isTypeAlias);return!(!n||!getContainingFunction(n))}function getSymbolPath(e){return e.parent?`${getSymbolPath(e.parent)}.${e.escapedName}`:e.escapedName}function getUnresolvedSymbolForEntityName(e){const t=(167===e.kind?e.right:212===e.kind?e.name:e).escapedText;if(t){const n=167===e.kind?getUnresolvedSymbolForEntityName(e.left):212===e.kind?getUnresolvedSymbolForEntityName(e.expression):void 0,r=n?`${getSymbolPath(n)}.${t}`:t;let i=Ce.get(r);return i||(Ce.set(r,i=createSymbol(524288,t,1048576)),i.parent=n,i.links.declaredType=Ae),i}return ve}function resolveTypeReferenceName(e,t,n){const r=function getTypeReferenceName(e){switch(e.kind){case 184:return e.typeName;case 234:const t=e.expression;if(isEntityNameExpression(t))return t}}(e);if(!r)return ve;const i=resolveEntityName(r,t,n);return i&&i!==ve?i:n?ve:getUnresolvedSymbolForEntityName(r)}function getTypeReferenceType(e,t){if(t===ve)return Ie;if(96&(t=function getExpandoSymbol(e){const t=e.valueDeclaration;if(!t||!isInJSFile(t)||524288&e.flags||getExpandoInitializer(t,!1))return;const n=isVariableDeclaration(t)?getDeclaredExpandoInitializer(t):getAssignedExpandoInitializer(t);if(n){const t=getSymbolOfNode(n);if(t)return mergeJSSymbols(t,e)}}(t)||t).flags)return getTypeFromClassOrInterfaceReference(e,t);if(524288&t.flags)return function getTypeFromTypeAliasReference(e,t){if(1048576&getCheckFlags(t)){const n=typeArgumentsFromTypeReferenceNode(e),r=getAliasId(t,n);let i=Ee.get(r);return i||(i=createIntrinsicType(1,"error",void 0,`alias ${r}`),i.aliasSymbol=t,i.aliasTypeArguments=n,Ee.set(r,i)),i}const n=getDeclaredTypeOfSymbol(t),r=getSymbolLinks(t).typeParameters;if(r){const n=length(e.typeArguments),i=getMinTypeArgumentCount(r);if(nr.length)return error2(e,i===r.length?Ot.Generic_type_0_requires_1_type_argument_s:Ot.Generic_type_0_requires_between_1_and_2_type_arguments,symbolToString(t),i,r.length),Ie;const o=getAliasSymbolForTypeNode(e);let a,s=!o||!isLocalTypeAlias(t)&&isLocalTypeAlias(o)?void 0:o;if(s)a=getTypeArgumentsForAliasSymbol(s);else if(isTypeReferenceType(e)){const t=resolveTypeReferenceName(e,2097152,!0);if(t&&t!==ve){const n=resolveAlias(t);n&&524288&n.flags&&(s=n,a=typeArgumentsFromTypeReferenceNode(e)||(r?[]:void 0))}}return getTypeAliasInstantiation(t,typeArgumentsFromTypeReferenceNode(e),s,a)}return checkNoTypeArguments(e,t)?n:Ie}(e,t);const n=tryGetDeclaredTypeOfSymbol(t);if(n)return checkNoTypeArguments(e,t)?getRegularTypeOfLiteralType(n):Ie;if(111551&t.flags&&isJSDocTypeReference(e)){const n=function getTypeFromJSDocValueReference(e,t){const n=getNodeLinks(e);if(!n.resolvedJSDocType){const r=getTypeOfSymbol(t);let i=r;if(t.valueDeclaration){const n=206===e.kind&&e.qualifier;r.symbol&&r.symbol!==t&&n&&(i=getTypeReferenceType(e,r.symbol))}n.resolvedJSDocType=i}return n.resolvedJSDocType}(e,t);return n||(resolveTypeReferenceName(e,788968),getTypeOfSymbol(t))}return Ie}function getNoInferType(e){return isNoInferTargetType(e)?getOrCreateSubstitutionType(e,Le):e}function isNoInferTargetType(e){return!!(3145728&e.flags&&some(e.types,isNoInferTargetType)||33554432&e.flags&&!isNoInferType(e)&&isNoInferTargetType(e.baseType)||524288&e.flags&&!isEmptyAnonymousObjectType(e)||432275456&e.flags&&!isPatternLiteralType(e))}function isNoInferType(e){return!!(33554432&e.flags&&2&e.constraint.flags)}function getSubstitutionType(e,t){return 3&t.flags||t===e||1&e.flags?e:getOrCreateSubstitutionType(e,t)}function getOrCreateSubstitutionType(e,t){const n=`${getTypeId(e)}>${getTypeId(t)}`,r=fe.get(n);if(r)return r;const i=createType(33554432);return i.baseType=e,i.constraint=t,fe.set(n,i),i}function getSubstitutionIntersection(e){return isNoInferType(e)?e.baseType:getIntersectionType([e.constraint,e.baseType])}function isUnaryTupleTypeNode(e){return 190===e.kind&&1===e.elements.length}function getImpliedConstraint(e,t,n){return isUnaryTupleTypeNode(t)&&isUnaryTupleTypeNode(n)?getImpliedConstraint(e,t.elements[0],n.elements[0]):getActualTypeVariable(getTypeFromTypeNode(t))===getActualTypeVariable(e)?getTypeFromTypeNode(n):void 0}function isJSDocTypeReference(e){return!!(16777216&e.flags)&&(184===e.kind||206===e.kind)}function checkNoTypeArguments(e,t){return!e.typeArguments||(error2(e,Ot.Type_0_is_not_generic,t?symbolToString(t):e.typeName?declarationNameToString(e.typeName):$o),!1)}function getIntendedTypeFromJSDocTypeReference(e){if(isIdentifier(e.typeName)){const t=e.typeArguments;switch(e.typeName.escapedText){case"String":return checkNoTypeArguments(e),ze;case"Number":return checkNoTypeArguments(e),Ve;case"BigInt":return checkNoTypeArguments(e),qe;case"Boolean":return checkNoTypeArguments(e),Ye;case"Void":return checkNoTypeArguments(e),et;case"Undefined":return checkNoTypeArguments(e),Me;case"Null":return checkNoTypeArguments(e),We;case"Function":case"function":return checkNoTypeArguments(e),Wt;case"array":return t&&t.length||A?void 0:Xt;case"promise":return t&&t.length||A?void 0:createPromiseType(ke);case"Object":if(t&&2===t.length){if(isJSDocIndexSignature(e)){const e=getTypeFromTypeNode(t[0]),n=getTypeFromTypeNode(t[1]),r=e===ze||e===Ve?[createIndexInfo(e,n,!1)]:l;return createAnonymousType(void 0,y,l,l,r)}return ke}return checkNoTypeArguments(e),A?void 0:ke}}}function getTypeFromTypeReference(e){const t=getNodeLinks(e);if(!t.resolvedType){if(isConstTypeReference(e)&&isAssertionExpression(e.parent))return t.resolvedSymbol=ve,t.resolvedType=checkExpressionCached(e.parent.expression);let n,r;const i=788968;isJSDocTypeReference(e)&&(r=getIntendedTypeFromJSDocTypeReference(e),r||(n=resolveTypeReferenceName(e,i,!0),n===ve?n=resolveTypeReferenceName(e,111551|i):resolveTypeReferenceName(e,i),r=getTypeReferenceType(e,n))),r||(n=resolveTypeReferenceName(e,i),r=getTypeReferenceType(e,n)),t.resolvedSymbol=n,t.resolvedType=r}return t.resolvedType}function typeArgumentsFromTypeReferenceNode(e){return map(e.typeArguments,getTypeFromTypeNode)}function getTypeFromTypeQueryNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=checkExpressionWithTypeArguments(e);t.resolvedType=getRegularTypeOfLiteralType(getWidenedType(n))}return t.resolvedType}function getTypeOfGlobalSymbol(e,t){function getTypeDeclaration(e){const t=e.declarations;if(t)for(const e of t)switch(e.kind){case 264:case 265:case 267:return e}}if(!e)return t?Et:ht;const n=getDeclaredTypeOfSymbol(e);return 524288&n.flags?length(n.typeParameters)!==t?(error2(getTypeDeclaration(e),Ot.Global_type_0_must_have_1_type_parameter_s,symbolName(e),t),t?Et:ht):n:(error2(getTypeDeclaration(e),Ot.Global_type_0_must_be_a_class_or_interface_type,symbolName(e)),t?Et:ht)}function getGlobalValueSymbol(e,t){return getGlobalSymbol(e,111551,t?Ot.Cannot_find_global_value_0:void 0)}function getGlobalTypeSymbol(e,t){return getGlobalSymbol(e,788968,t?Ot.Cannot_find_global_type_0:void 0)}function getGlobalTypeAliasSymbol(e,t,n){const r=getGlobalSymbol(e,788968,n?Ot.Cannot_find_global_type_0:void 0);if(r&&(getDeclaredTypeOfSymbol(r),length(getSymbolLinks(r).typeParameters)!==t)){return void error2(r.declarations&&find(r.declarations,isTypeAliasDeclaration),Ot.Global_type_0_must_have_1_type_parameter_s,symbolName(r),t)}return r}function getGlobalSymbol(e,t,n){return te(void 0,e,t,n,!1,!1)}function getGlobalType(e,t,n){const r=getGlobalTypeSymbol(e,n);return r||n?getTypeOfGlobalSymbol(r,t):void 0}function getGlobalBuiltinTypes(e,t){let n;for(const r of e)n=append(n,getGlobalType(r,t,!1));return n??l}function getGlobalImportMetaType(){return Dn||(Dn=getGlobalType("ImportMeta",0,!0)||ht)}function getGlobalImportMetaExpressionType(){if(!In){const e=createSymbol(0,"ImportMetaExpression"),t=getGlobalImportMetaType(),n=createSymbol(4,"meta",8);n.parent=e,n.links.type=t;const r=createSymbolTable([n]);e.members=r,In=createAnonymousType(e,r,l,l,l)}return In}function getGlobalImportCallOptionsType(e){return An||(An=getGlobalType("ImportCallOptions",0,e))||ht}function getGlobalImportAttributesType(e){return On||(On=getGlobalType("ImportAttributes",0,e))||ht}function getGlobalESSymbolConstructorSymbol(e){return tn||(tn=getGlobalValueSymbol("Symbol",e))}function getGlobalESSymbolType(){return rn||(rn=getGlobalType("Symbol",0,!1))||ht}function getGlobalPromiseType(e){return dn||(dn=getGlobalType("Promise",1,e))||Et}function getGlobalPromiseLikeType(e){return pn||(pn=getGlobalType("PromiseLike",1,e))||Et}function getGlobalPromiseConstructorSymbol(e){return mn||(mn=getGlobalValueSymbol("Promise",e))}function getGlobalAsyncIterableType(e){return vn||(vn=getGlobalType("AsyncIterable",3,e))||Et}function getGlobalAsyncIterableIteratorType(e){return Cn||(Cn=getGlobalType("AsyncIterableIterator",3,e))||Et}function getGlobalIterableType(e){return fn||(fn=getGlobalType("Iterable",3,e))||Et}function getGlobalIterableIteratorType(e){return yn||(yn=getGlobalType("IterableIterator",3,e))||Et}function getBuiltinIteratorReturnType(){return I?Me:ke}function getGlobalDisposableType(e){return wn||(wn=getGlobalType("Disposable",0,e))||ht}function getGlobalTypeOrUndefined(e,t=0){const n=getGlobalSymbol(e,788968,void 0);return n&&getTypeOfGlobalSymbol(n,t)}function getGlobalAwaitedSymbol(e){return jn||(jn=getGlobalTypeAliasSymbol("Awaited",1,e)||(e?ve:void 0)),jn===ve?void 0:jn}function createTypeFromGenericGlobalType(e,t){return e!==Et?createTypeReference(e,t):ht}function createTypedPropertyDescriptorType(e){return createTypeFromGenericGlobalType(function getGlobalTypedPropertyDescriptorType(){return on||(on=getGlobalType("TypedPropertyDescriptor",1,!0)||Et)}(),[e])}function createIterableType(e){return createTypeFromGenericGlobalType(getGlobalIterableType(!0),[e,et,Me])}function createArrayType(e,t){return createTypeFromGenericGlobalType(t?qt:Vt,[e])}function getTupleElementFlags(e){switch(e.kind){case 191:return 2;case 192:return getRestTypeElementFlags(e);case 203:return e.questionToken?2:e.dotDotDotToken?getRestTypeElementFlags(e):1;default:return 1}}function getRestTypeElementFlags(e){return getArrayElementTypeNode(e.type)?4:8}function getArrayOrTupleTargetType(e){const t=function isReadonlyTypeOperator(e){return isTypeOperatorNode(e)&&148===e.operator}(e.parent);if(getArrayElementTypeNode(e))return t?qt:Vt;return getTupleTargetType(map(e.elements,getTupleElementFlags),t,map(e.elements,memberIfLabeledElementDeclaration))}function memberIfLabeledElementDeclaration(e){return isNamedTupleMember(e)||isParameter(e)?e:void 0}function isDeferredTypeReferenceNode(e,t){return!!getAliasSymbolForTypeNode(e)||isResolvedByTypeAlias(e)&&(189===e.kind?mayResolveTypeAlias(e.elementType):190===e.kind?some(e.elements,mayResolveTypeAlias):t||some(e.typeArguments,mayResolveTypeAlias))}function isResolvedByTypeAlias(e){const t=e.parent;switch(t.kind){case 197:case 203:case 184:case 193:case 194:case 200:case 195:case 199:case 189:case 190:return isResolvedByTypeAlias(t);case 266:return!0}return!1}function mayResolveTypeAlias(e){switch(e.kind){case 184:return isJSDocTypeReference(e)||!!(524288&resolveTypeReferenceName(e,788968).flags);case 187:return!0;case 199:return 158!==e.operator&&mayResolveTypeAlias(e.type);case 197:case 191:case 203:case 317:case 315:case 316:case 310:return mayResolveTypeAlias(e.type);case 192:return 189!==e.type.kind||mayResolveTypeAlias(e.type.elementType);case 193:case 194:return some(e.types,mayResolveTypeAlias);case 200:return mayResolveTypeAlias(e.objectType)||mayResolveTypeAlias(e.indexType);case 195:return mayResolveTypeAlias(e.checkType)||mayResolveTypeAlias(e.extendsType)||mayResolveTypeAlias(e.trueType)||mayResolveTypeAlias(e.falseType)}return!1}function createTupleType(e,t,n=!1,r=[]){const i=getTupleTargetType(t||map(e,e=>1),n,r);return i===Et?ht:e.length?createNormalizedTypeReference(i,e):i}function getTupleTargetType(e,t,n){if(1===e.length&&4&e[0])return t?qt:Vt;const r=map(e,e=>1&e?"#":2&e?"?":4&e?".":"*").join()+(t?"R":"")+(some(n,e=>!!e)?","+map(n,e=>e?getNodeId(e):"_").join(","):"");let i=ie.get(r);return i||ie.set(r,i=function createTupleTargetType(e,t,n){const r=e.length,i=countWhere(e,e=>!!(9&e));let o;const a=[];let s=0;if(r){o=new Array(r);for(let i=0;i!!(8&e.elementFlags[n]&&1179648&t.flags));if(n>=0)return checkCrossProductUnion(map(t,(t,n)=>8&e.elementFlags[n]?t:Le))?mapType(t[n],r=>createNormalizedTupleType(e,replaceElement(t,n,r))):Ie}const s=[],c=[],l=[];let d=-1,p=-1,u=-1;for(let c=0;c=1e4)return error2(r,isPartOfTypeNode(r)?Ot.Type_produces_a_tuple_type_that_is_too_large_to_represent:Ot.Expression_produces_a_tuple_type_that_is_too_large_to_represent),Ie;forEach(e,(e,t)=>{var n;return addElement(e,l.target.elementFlags[t],null==(n=l.target.labeledElementDeclarations)?void 0:n[t])})}else addElement(isArrayLikeType(l)&&getIndexTypeOfType(l,Ve)||Ie,4,null==(o=e.labeledElementDeclarations)?void 0:o[c]);else addElement(l,d,null==(a=e.labeledElementDeclarations)?void 0:a[c])}for(let e=0;e=0&&p8&c[p+t]?getIndexedAccessType(e,Ve):e)),s.splice(p+1,u-p),c.splice(p+1,u-p),l.splice(p+1,u-p));const m=getTupleTargetType(c,e.readonly,l);return m===Et?ht:c.length?createTypeReference(m,s):m;function addElement(e,t,n){1&t&&(d=c.length),4&t&&p<0&&(p=c.length),6&t&&(u=c.length),s.push(2&t?addOptionality(e,!0):e),c.push(t),l.push(n)}}function sliceTupleType(e,t,n=0){const r=e.target,i=getTypeReferenceArity(e)-n;return t>r.fixedLength?function getRestArrayTypeOfTupleType(e){const t=getRestTypeOfTupleType(e);return t&&createArrayType(t)}(e)||createTupleType(l):createTupleType(getTypeArguments(e).slice(t,i),r.elementFlags.slice(t,i),!1,r.labeledElementDeclarations&&r.labeledElementDeclarations.slice(t,i))}function getKnownKeysOfTupleType(e){return getUnionType(append(arrayOf(e.target.fixedLength,e=>getStringLiteralType(""+e)),getIndexType(e.target.readonly?qt:Vt)))}function getEndElementCount(e,t){return e.elementFlags.length-findLastIndex(e.elementFlags,e=>!(e&t))-1}function getTotalFixedElementCount(e){return e.fixedLength+getEndElementCount(e,3)}function getElementTypes(e){const t=getTypeArguments(e),n=getTypeReferenceArity(e);return t.length===n?t:t.slice(0,n)}function getTypeId(e){return e.id}function containsType(e,t){return binarySearch(e,t,getTypeId,compareValues)>=0}function insertType(e,t){const n=binarySearch(e,t,getTypeId,compareValues);return n<0&&(e.splice(~n,0,t),!0)}function addTypeToUnion(e,t,n){const r=n.flags;if(!(131072&r))if(t|=473694207&r,465829888&r&&(t|=33554432),2097152&r&&67108864&getObjectFlags(n)&&(t|=536870912),n===Pe&&(t|=8388608),isErrorType(n)&&(t|=1073741824),!k&&98304&r)65536&getObjectFlags(n)||(t|=4194304);else{const t=e.length,r=t&&n.id>e[t-1].id?~t:binarySearch(e,n,getTypeId,compareValues);r<0&&e.splice(~r,0,n)}return t}function addTypesToUnion(e,t,n){let r;for(const i of n)i!==r&&(t=1048576&i.flags?addTypesToUnion(e,t|(isNamedUnionType(i)?1048576:0),i.types):addTypeToUnion(e,t,i),r=i);return t}function isTypeMatchedByTemplateLiteralOrStringMapping(e,t){return 134217728&t.flags?isTypeMatchedByTemplateLiteralType(e,t):isMemberOfStringMapping(e,t)}function isNamedUnionType(e){return!!(1048576&e.flags&&(e.aliasSymbol||e.origin))}function addNamedUnions(e,t){for(const n of t)if(1048576&n.flags){const t=n.origin;n.aliasSymbol||t&&!(1048576&t.flags)?pushIfUnique(e,n):t&&1048576&t.flags&&addNamedUnions(e,t.types)}}function createOriginUnionOrIntersectionType(e,t){const n=createOriginType(e);return n.types=t,n}function getUnionType(e,t=1,n,r,i){if(0===e.length)return tt;if(1===e.length)return e[0];if(2===e.length&&!i&&(1048576&e[0].flags||1048576&e[1].flags)){const i=0===t?"N":2===t?"S":"L",o=e[0].id=2&&a[0]===Me&&a[1]===Be&&orderedRemoveItemAt(a,1),(402664352&s||16384&s&&32768&s)&&function removeRedundantLiteralTypes(e,t,n){let r=e.length;for(;r>0;){r--;const i=e[r],o=i.flags;(402653312&o&&4&t||256&o&&8&t||2048&o&&64&t||8192&o&&4096&t||n&&32768&o&&16384&t||isFreshLiteralType(i)&&containsType(e,i.regularType))&&orderedRemoveItemAt(e,r)}}(a,s,!!(2&t)),128&s&&402653184&s&&function removeStringLiteralsMatchedByTemplateLiterals(e){const t=filter(e,isPatternLiteralType);if(t.length){let n=e.length;for(;n>0;){n--;const r=e[n];128&r.flags&&some(t,e=>isTypeMatchedByTemplateLiteralOrStringMapping(r,e))&&orderedRemoveItemAt(e,n)}}}(a),536870912&s&&function removeConstrainedTypeVariables(e){const t=[];for(const n of e)if(2097152&n.flags&&67108864&getObjectFlags(n)){const e=8650752&n.types[0].flags?0:1;pushIfUnique(t,n.types[e])}for(const n of t){const t=[];for(const r of e)if(2097152&r.flags&&67108864&getObjectFlags(r)){const e=8650752&r.types[0].flags?0:1;r.types[e]===n&&insertType(t,r.types[1-e])}if(everyType(getBaseConstraintOfType(n),e=>containsType(t,e))){let r=e.length;for(;r>0;){r--;const i=e[r];if(2097152&i.flags&&67108864&getObjectFlags(i)){const o=8650752&i.types[0].flags?0:1;i.types[o]===n&&containsType(t,i.types[1-o])&&orderedRemoveItemAt(e,r)}}insertType(e,n)}}}(a),2===t&&(a=function removeSubtypes(e,t){var n;if(e.length<2)return e;const i=getTypeListId(e),o=ge.get(i);if(o)return o;const a=t&&some(e,e=>!!(524288&e.flags)&&!isGenericMappedType(e)&&isEmptyResolvedType(resolveStructuredTypeMembers(e))),s=e.length;let c=s,l=0;for(;c>0;){c--;const t=e[c];if(a||469499904&t.flags){if(262144&t.flags&&1048576&getBaseConstraintOrType(t).flags){isTypeRelatedTo(t,getUnionType(map(e,e=>e===t?tt:e)),Ni)&&orderedRemoveItemAt(e,c);continue}const i=61603840&t.flags?find(getPropertiesOfType(t),e=>isUnitType(getTypeOfSymbol(e))):void 0,o=i&&getRegularTypeOfLiteralType(getTypeOfSymbol(i));for(const a of e)if(t!==a){if(1e5===l&&l/(s-c)*s>1e6)return null==(n=J)||n.instant(J.Phase.CheckTypes,"removeSubtypes_DepthLimit",{typeIds:e.map(e=>e.id)}),void error2(r,Ot.Expression_produces_a_union_type_that_is_too_complex_to_represent);if(l++,i&&61603840&a.flags){const e=getTypeOfPropertyOfType(a,i.escapedName);if(e&&isUnitType(e)&&getRegularTypeOfLiteralType(e)!==o)continue}if(isTypeRelatedTo(t,a,Ni)&&(!(1&getObjectFlags(getTargetType(t)))||!(1&getObjectFlags(getTargetType(a)))||isTypeDerivedFrom(t,a))){orderedRemoveItemAt(e,c);break}}}}return ge.set(i,e),e}(a,!!(524288&s)),!a))return Ie;if(0===a.length)return 65536&s?4194304&s?We:Ue:32768&s?4194304&s?Me:Re:tt}if(!o&&1048576&s){const t=[];addNamedUnions(t,e);const r=[];for(const e of a)some(t,t=>containsType(t.types,e))||r.push(e);if(!n&&1===t.length&&0===r.length)return t[0];if(reduceLeft(t,(e,t)=>e+t.types.length,0)+r.length===a.length){for(const e of t)insertType(r,e);o=createOriginUnionOrIntersectionType(1048576,r)}}return getUnionTypeFromSortedList(a,(36323331&s?0:32768)|(2097152&s?16777216:0),n,i,o)}function typePredicateKindsMatch(e,t){return e.kind===t.kind&&e.parameterIndex===t.parameterIndex}function getUnionTypeFromSortedList(e,t,n,r,i){if(0===e.length)return tt;if(1===e.length)return e[0];const o=(i?1048576&i.flags?`|${getTypeListId(i.types)}`:2097152&i.flags?`&${getTypeListId(i.types)}`:`#${i.type.id}|${getTypeListId(e)}`:getTypeListId(e))+getAliasId(n,r);let a=oe.get(o);return a||(a=createType(1048576),a.objectFlags=t|getPropagatingFlagsOfTypes(e,98304),a.types=e,a.origin=i,a.aliasSymbol=n,a.aliasTypeArguments=r,2===e.length&&512&e[0].flags&&512&e[1].flags&&(a.flags|=16,a.intrinsicName="boolean"),oe.set(o,a)),a}function addTypeToIntersection(e,t,n){const r=n.flags;return 2097152&r?addTypesToIntersection(e,t,n.types):(isEmptyAnonymousObjectType(n)?16777216&t||(t|=16777216,e.set(n.id.toString(),n)):(3&r?(n===Pe&&(t|=8388608),isErrorType(n)&&(t|=1073741824)):!k&&98304&r||(n===Be&&(t|=262144,n=Me),e.has(n.id.toString())||(109472&n.flags&&109472&t&&(t|=67108864),e.set(n.id.toString(),n))),t|=473694207&r),t)}function addTypesToIntersection(e,t,n){for(const r of n)t=addTypeToIntersection(e,t,getRegularTypeOfLiteralType(r));return t}function eachUnionContains(e,t){for(const n of e)if(!containsType(n.types,t)){if(t===Be)return containsType(n.types,Me);if(t===Me)return containsType(n.types,Be);const e=128&t.flags?ze:288&t.flags?Ve:2048&t.flags?qe:8192&t.flags?Ze:void 0;if(!e||!containsType(n.types,e))return!1}return!0}function removeFromEach(e,t){for(let n=0;n!(e.flags&t))}function getIntersectionType(e,t=0,n,r){const i=new Map,o=addTypesToIntersection(i,0,e),a=arrayFrom(i.values());let s=0;if(131072&o)return contains(a,nt)?nt:tt;if(k&&98304&o&&84410368&o||67108864&o&&402783228&o||402653316&o&&67238776&o||296&o&&469891796&o||2112&o&&469889980&o||12288&o&&469879804&o||49152&o&&469842940&o)return tt;if(402653184&o&&128&o&&function extractRedundantTemplateLiterals(e){let t=e.length;const n=filter(e,e=>!!(128&e.flags));for(;t>0;){t--;const r=e[t];if(402653184&r.flags)for(const i of n){if(isTypeSubtypeOf(i,r)){orderedRemoveItemAt(e,t);break}if(isPatternLiteralType(r))return!0}}return!1}(a))return tt;if(1&o)return 8388608&o?Pe:1073741824&o?Ie:ke;if(!k&&98304&o)return 16777216&o?tt:32768&o?Me:We;if((4&o&&402653312&o||8&o&&256&o||64&o&&2048&o||4096&o&&8192&o||16384&o&&32768&o||16777216&o&&470302716&o)&&(1&t||function removeRedundantSupertypes(e,t){let n=e.length;for(;n>0;){n--;const r=e[n];(4&r.flags&&402653312&t||8&r.flags&&256&t||64&r.flags&&2048&t||4096&r.flags&&8192&t||16384&r.flags&&32768&t||isEmptyAnonymousObjectType(r)&&470302716&t)&&orderedRemoveItemAt(e,n)}}(a,o)),262144&o&&(a[a.indexOf(Me)]=Be),0===a.length)return Le;if(1===a.length)return a[0];if(2===a.length&&!(2&t)){const e=8650752&a[0].flags?0:1,t=a[e],n=a[1-e];if(8650752&t.flags&&(469893116&n.flags&&!isGenericStringLikeType(n)||16777216&o)){const e=getBaseConstraintOfType(t);if(e&&everyType(e,e=>!!(469893116&e.flags)||isEmptyAnonymousObjectType(e))){if(isTypeStrictSubtypeOf(e,n))return t;if(!(1048576&e.flags&&someType(e,e=>isTypeStrictSubtypeOf(e,n))||isTypeStrictSubtypeOf(n,e)))return tt;s=67108864}}}const c=getTypeListId(a)+(2&t?"*":getAliasId(n,r));let l=se.get(c);if(!l){if(1048576&o)if(function intersectUnionsOfPrimitiveTypes(e){let t;const n=findIndex(e,e=>!!(32768&getObjectFlags(e)));if(n<0)return!1;let r=n+1;for(;r!!(1048576&e.flags&&32768&e.types[0].flags))){const e=some(a,containsMissingType)?Be:Me;removeFromEach(a,32768),l=getUnionType([getIntersectionType(a,t),e],1,n,r)}else if(every(a,e=>!!(1048576&e.flags&&(65536&e.types[0].flags||65536&e.types[1].flags))))removeFromEach(a,65536),l=getUnionType([getIntersectionType(a,t),We],1,n,r);else if(a.length>=3&&e.length>2){const e=Math.floor(a.length/2);l=getIntersectionType([getIntersectionType(a.slice(0,e),t),getIntersectionType(a.slice(e),t)],t,n,r)}else{if(!checkCrossProductUnion(a))return Ie;const e=function getCrossProductIntersections(e,t){const n=getCrossProductUnionSize(e),r=[];for(let i=0;i=0;t--)if(1048576&e[t].flags){const r=e[t].types,i=r.length;n[t]=r[o%i],o=Math.floor(o/i)}const a=getIntersectionType(n,t);131072&a.flags||r.push(a)}return r}(a,t);l=getUnionType(e,1,n,r,some(e,e=>!!(2097152&e.flags))&&getConstituentCountOfTypes(e)>getConstituentCountOfTypes(a)?createOriginUnionOrIntersectionType(2097152,a):void 0)}else l=function createIntersectionType(e,t,n,r){const i=createType(2097152);return i.objectFlags=t|getPropagatingFlagsOfTypes(e,98304),i.types=e,i.aliasSymbol=n,i.aliasTypeArguments=r,i}(a,s,n,r);se.set(c,l)}return l}function getCrossProductUnionSize(e){return reduceLeft(e,(e,t)=>1048576&t.flags?e*t.types.length:131072&t.flags?0:e,1)}function checkCrossProductUnion(e){var t;const n=getCrossProductUnionSize(e);return!(n>=1e5)||(null==(t=J)||t.instant(J.Phase.CheckTypes,"checkCrossProductUnion_DepthLimit",{typeIds:e.map(e=>e.id),size:n}),error2(r,Ot.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1)}function getConstituentCount(e){return 3145728&e.flags&&!e.aliasSymbol?1048576&e.flags&&e.origin?getConstituentCount(e.origin):getConstituentCountOfTypes(e.types):1}function getConstituentCountOfTypes(e){return reduceLeft(e,(e,t)=>e+getConstituentCount(t),0)}function createIndexType(e,t){const n=createType(4194304);return n.type=e,n.indexFlags=t,n}function getIndexTypeForGenericType(e,t){return 1&t?e.resolvedStringIndexType||(e.resolvedStringIndexType=createIndexType(e,1)):e.resolvedIndexType||(e.resolvedIndexType=createIndexType(e,0))}function getIndexTypeForMappedType(e,t){const n=getTypeParameterFromMappedType(e),r=getConstraintTypeFromMappedType(e),i=getNameTypeFromMappedType(e.target||e);if(!(i||2&t))return r;const o=[];if(isGenericIndexType(r)){if(isMappedTypeWithKeyofConstraintDeclaration(e))return getIndexTypeForGenericType(e,t);forEachType(r,addMemberForKeyType)}else if(isMappedTypeWithKeyofConstraintDeclaration(e)){forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(getApparentType(getModifiersTypeFromMappedType(e)),8576,!!(1&t),addMemberForKeyType)}else forEachType(getLowerBoundOfKeyType(r),addMemberForKeyType);const a=2&t?filterType(getUnionType(o),e=>!(5&e.flags)):getUnionType(o);return 1048576&a.flags&&1048576&r.flags&&getTypeListId(a.types)===getTypeListId(r.types)?r:a;function addMemberForKeyType(t){const r=i?instantiateType(i,appendTypeMapping(e.mapper,n,t)):t;o.push(r===ze?at:r)}}function getLiteralTypeFromPropertyName(e){if(isPrivateIdentifier(e))return tt;if(isNumericLiteral(e))return getRegularTypeOfLiteralType(checkExpression(e));if(isComputedPropertyName(e))return getRegularTypeOfLiteralType(checkComputedPropertyName(e));const t=getPropertyNameForPropertyNameNode(e);return void 0!==t?getStringLiteralType(unescapeLeadingUnderscores(t)):isExpression(e)?getRegularTypeOfLiteralType(checkExpression(e)):tt}function getLiteralTypeFromProperty(e,t,n){if(n||!(6&getDeclarationModifierFlagsFromSymbol(e))){let n=getSymbolLinks(getLateBoundSymbol(e)).nameType;if(!n){const t=getNameOfDeclaration(e.valueDeclaration);n="default"===e.escapedName?getStringLiteralType("default"):t&&getLiteralTypeFromPropertyName(t)||(isKnownSymbol(e)?void 0:getStringLiteralType(symbolName(e)))}if(n&&n.flags&t)return n}return tt}function isKeyTypeIncluded(e,t){return!!(e.flags&t||2097152&e.flags&&some(e.types,e=>isKeyTypeIncluded(e,t)))}function getLiteralTypeFromProperties(e,t,n){const r=n&&(7&getObjectFlags(e)||e.aliasSymbol)?function createOriginIndexType(e){const t=createOriginType(4194304);return t.type=e,t}(e):void 0;return getUnionType(concatenate(map(getPropertiesOfType(e),e=>getLiteralTypeFromProperty(e,t)),map(getIndexInfosOfType(e),e=>e!==hr&&isKeyTypeIncluded(e.keyType,t)?e.keyType===ze&&8&t?at:e.keyType:tt)),1,void 0,void 0,r)}function shouldDeferIndexType(e,t=0){return!!(58982400&e.flags||isGenericTupleType(e)||isGenericMappedType(e)&&(!function hasDistributiveNameType(e){const t=getTypeParameterFromMappedType(e);return function isDistributive(e){return!!(470810623&e.flags)||(16777216&e.flags?e.root.isDistributive&&e.checkType===t:137363456&e.flags?every(e.types,isDistributive):8388608&e.flags?isDistributive(e.objectType)&&isDistributive(e.indexType):33554432&e.flags?isDistributive(e.baseType)&&isDistributive(e.constraint):!!(268435456&e.flags)&&isDistributive(e.type))}(getNameTypeFromMappedType(e)||t)}(e)||2===getMappedTypeNameTypeKind(e))||1048576&e.flags&&!(4&t)&&isGenericReducibleType(e)||2097152&e.flags&&maybeTypeOfKind(e,465829888)&&some(e.types,isEmptyAnonymousObjectType))}function getIndexType(e,t=0){return isNoInferType(e=getReducedType(e))?getNoInferType(getIndexType(e.baseType,t)):shouldDeferIndexType(e,t)?getIndexTypeForGenericType(e,t):1048576&e.flags?getIntersectionType(map(e.types,e=>getIndexType(e,t))):2097152&e.flags?getUnionType(map(e.types,e=>getIndexType(e,t))):32&getObjectFlags(e)?getIndexTypeForMappedType(e,t):e===Pe?Pe:2&e.flags?tt:131073&e.flags?st:getLiteralTypeFromProperties(e,(2&t?128:402653316)|(1&t?0:12584),0===t)}function getExtractStringType(e){const t=function getGlobalExtractSymbol(){return Mn||(Mn=getGlobalTypeAliasSymbol("Extract",2,!0)||ve),Mn===ve?void 0:Mn}();return t?getTypeAliasInstantiation(t,[e,ze]):ze}function getTemplateLiteralType(e,t){const n=findIndex(t,e=>!!(1179648&e.flags));if(n>=0)return checkCrossProductUnion(t)?mapType(t[n],r=>getTemplateLiteralType(e,replaceElement(t,n,r))):Ie;if(contains(t,Pe))return Pe;const r=[],i=[];let o=e[0];if(!function addSpans(e,t){for(let n=0;n""===e)){if(every(r,e=>!!(4&e.flags)))return ze;if(1===r.length&&isPatternLiteralType(r[0]))return r[0]}const a=`${getTypeListId(r)}|${map(i,e=>e.length).join(",")}|${i.join("")}`;let s=me.get(a);return s||me.set(a,s=function createTemplateLiteralType(e,t){const n=createType(134217728);return n.texts=e,n.types=t,n}(i,r)),s}function getTemplateStringForType(e){return 128&e.flags?e.value:256&e.flags?""+e.value:2048&e.flags?pseudoBigIntToString(e.value):98816&e.flags?e.intrinsicName:void 0}function getStringMappingType(e,t){return 1179648&t.flags?mapType(t,t=>getStringMappingType(e,t)):128&t.flags?getStringLiteralType(applyStringMapping(e,t.value)):134217728&t.flags?getTemplateLiteralType(...function applyTemplateStringMapping(e,t,n){switch(oa.get(e.escapedName)){case 0:return[t.map(e=>e.toUpperCase()),n.map(t=>getStringMappingType(e,t))];case 1:return[t.map(e=>e.toLowerCase()),n.map(t=>getStringMappingType(e,t))];case 2:return[""===t[0]?t:[t[0].charAt(0).toUpperCase()+t[0].slice(1),...t.slice(1)],""===t[0]?[getStringMappingType(e,n[0]),...n.slice(1)]:n];case 3:return[""===t[0]?t:[t[0].charAt(0).toLowerCase()+t[0].slice(1),...t.slice(1)],""===t[0]?[getStringMappingType(e,n[0]),...n.slice(1)]:n]}return[t,n]}(e,t.texts,t.types)):268435456&t.flags&&e===t.symbol?t:268435461&t.flags||isGenericIndexType(t)?getStringMappingTypeForGenericType(e,t):isPatternLiteralPlaceholderType(t)?getStringMappingTypeForGenericType(e,getTemplateLiteralType(["",""],[t])):t}function applyStringMapping(e,t){switch(oa.get(e.escapedName)){case 0:return t.toUpperCase();case 1:return t.toLowerCase();case 2:return t.charAt(0).toUpperCase()+t.slice(1);case 3:return t.charAt(0).toLowerCase()+t.slice(1)}return t}function getStringMappingTypeForGenericType(e,t){const n=`${getSymbolId(e)},${getTypeId(t)}`;let r=_e.get(n);return r||_e.set(n,r=function createStringMappingType(e,t){const n=createTypeWithSymbol(268435456,e);return n.type=t,n}(e,t)),r}function isJSLiteralType(e){if(A)return!1;if(4096&getObjectFlags(e))return!0;if(1048576&e.flags)return every(e.types,isJSLiteralType);if(2097152&e.flags)return some(e.types,isJSLiteralType);if(465829888&e.flags){const t=getResolvedBaseConstraint(e);return t!==e&&isJSLiteralType(t)}return!1}function getPropertyNameFromIndex(e,t){return isTypeUsableAsPropertyName(e)?getPropertyNameFromType(e):t&&isPropertyName(t)?getPropertyNameForPropertyNameNode(t):void 0}function isUncalledFunctionReference(e,t){if(8208&t.flags){const n=findAncestor(e.parent,e=>!isAccessExpression(e))||e.parent;return isCallLikeExpression(n)?isCallOrNewExpression(n)&&isIdentifier(e)&&hasMatchingArgument(n,e):every(t.declarations,e=>!isFunctionLike(e)||isDeprecatedDeclaration2(e))}return!0}function getPropertyTypeForIndexType(e,t,n,r,i,o){const a=i&&213===i.kind?i:void 0,s=i&&isPrivateIdentifier(i)?void 0:getPropertyNameFromIndex(n,i);if(void 0!==s){if(256&o)return getTypeOfPropertyOfContextualType(t,s)||ke;const e=getPropertyOfType(t,s);if(e){if(64&o&&i&&e.declarations&&isDeprecatedSymbol(e)&&isUncalledFunctionReference(i,e)){addDeprecatedSuggestion((null==a?void 0:a.argumentExpression)??(isIndexedAccessTypeNode(i)?i.indexType:i),e.declarations,s)}if(a){if(markPropertyAsReferenced(e,a,isSelfTypeAccess(a.expression,t.symbol)),isAssignmentToReadonlyEntity(a,e,getAssignmentTargetKind(a)))return void error2(a.argumentExpression,Ot.Cannot_assign_to_0_because_it_is_a_read_only_property,symbolToString(e));if(8&o&&(getNodeLinks(i).resolvedSymbol=e),isThisPropertyAccessInConstructor(a,e))return Fe}const n=4&o?getWriteTypeOfSymbol(e):getTypeOfSymbol(e);return a&&1!==getAssignmentTargetKind(a)?getFlowTypeOfReference(a,n):i&&isIndexedAccessTypeNode(i)&&containsMissingType(n)?getUnionType([n,Me]):n}if(everyType(t,isTupleType)&&isNumericLiteralName(s)){const e=+s;if(i&&everyType(t,e=>!(12&e.target.combinedFlags))&&!(16&o)){const n=getIndexNodeForAccessExpression(i);if(isTupleType(t)){if(e<0)return error2(n,Ot.A_tuple_type_cannot_be_indexed_with_a_negative_value),Me;error2(n,Ot.Tuple_type_0_of_length_1_has_no_element_at_index_2,typeToString(t),getTypeReferenceArity(t),unescapeLeadingUnderscores(s))}else error2(n,Ot.Property_0_does_not_exist_on_type_1,unescapeLeadingUnderscores(s),typeToString(t))}if(e>=0)return errorIfWritingToReadonlyIndex(getIndexInfoOfType(t,Ve)),getTupleElementTypeOutOfStartCount(t,e,1&o?Be:void 0)}}if(!(98304&n.flags)&&isTypeAssignableToKind(n,402665900)){if(131073&t.flags)return t;const c=getApplicableIndexInfo(t,n)||getIndexInfoOfType(t,ze);if(c){if(2&o&&c.keyType!==Ve)return void(a&&(4&o?error2(a,Ot.Type_0_is_generic_and_can_only_be_indexed_for_reading,typeToString(e)):error2(a,Ot.Type_0_cannot_be_used_to_index_type_1,typeToString(n),typeToString(e))));if(i&&c.keyType===ze&&!isTypeAssignableToKind(n,12)){return error2(getIndexNodeForAccessExpression(i),Ot.Type_0_cannot_be_used_as_an_index_type,typeToString(n)),1&o?getUnionType([c.type,Be]):c.type}return errorIfWritingToReadonlyIndex(c),1&o&&!(t.symbol&&384&t.symbol.flags&&n.symbol&&1024&n.flags&&getParentOfSymbol(n.symbol)===t.symbol)?getUnionType([c.type,Be]):c.type}if(131072&n.flags)return tt;if(isJSLiteralType(t))return ke;if(a&&!isConstEnumObjectType(t)){if(isObjectLiteralType2(t)){if(A&&384&n.flags)return vi.add(createDiagnosticForNode(a,Ot.Property_0_does_not_exist_on_type_1,n.value,typeToString(t))),Me;if(12&n.flags){return getUnionType(append(map(t.properties,e=>getTypeOfSymbol(e)),Me))}}if(t.symbol===q&&void 0!==s&&q.exports.has(s)&&418&q.exports.get(s).flags)error2(a,Ot.Property_0_does_not_exist_on_type_1,unescapeLeadingUnderscores(s),typeToString(t));else if(A&&!(128&o))if(void 0!==s&&typeHasStaticProperty(s,t)){const e=typeToString(t);error2(a,Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,s,e,e+"["+getTextOfNode(a.argumentExpression)+"]")}else if(getIndexTypeOfType(t,Ve))error2(a.argumentExpression,Ot.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{let e;if(void 0!==s&&(e=getSuggestionForNonexistentProperty(s,t)))void 0!==e&&error2(a.argumentExpression,Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_2,s,typeToString(t),e);else{const e=function getSuggestionForNonexistentIndexSignature(e,t,n){function hasProp(t){const r=getPropertyOfObjectType(e,t);if(r){const e=getSingleCallSignature(getTypeOfSymbol(r));return!!e&&getMinArgumentCount(e)>=1&&isTypeAssignableTo(n,getTypeAtPosition(e,0))}return!1}const r=isAssignmentTarget(t)?"set":"get";if(!hasProp(r))return;let i=tryGetPropertyAccessOrIdentifierToString(t.expression);void 0===i?i=r:i+="."+r;return i}(t,a,n);if(void 0!==e)error2(a,Ot.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,typeToString(t),e);else{let e;if(1024&n.flags)e=chainDiagnosticMessages(void 0,Ot.Property_0_does_not_exist_on_type_1,"["+typeToString(n)+"]",typeToString(t));else if(8192&n.flags){const r=getFullyQualifiedName(n.symbol,a);e=chainDiagnosticMessages(void 0,Ot.Property_0_does_not_exist_on_type_1,"["+r+"]",typeToString(t))}else 128&n.flags||256&n.flags?e=chainDiagnosticMessages(void 0,Ot.Property_0_does_not_exist_on_type_1,n.value,typeToString(t)):12&n.flags&&(e=chainDiagnosticMessages(void 0,Ot.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,typeToString(n),typeToString(t)));e=chainDiagnosticMessages(e,Ot.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,typeToString(r),typeToString(t)),vi.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(a),a,e))}}}return}}if(16&o&&isObjectLiteralType2(t))return Me;if(isJSLiteralType(t))return ke;if(i){const e=getIndexNodeForAccessExpression(i);if(10!==e.kind&&384&n.flags)error2(e,Ot.Property_0_does_not_exist_on_type_1,""+n.value,typeToString(t));else if(12&n.flags)error2(e,Ot.Type_0_has_no_matching_index_signature_for_type_1,typeToString(t),typeToString(n));else{const t=10===e.kind?"bigint":typeToString(n);error2(e,Ot.Type_0_cannot_be_used_as_an_index_type,t)}}return isTypeAny(n)?n:void 0;function errorIfWritingToReadonlyIndex(e){e&&e.isReadonly&&a&&(isAssignmentTarget(a)||isDeleteTarget(a))&&error2(a,Ot.Index_signature_in_type_0_only_permits_reading,typeToString(t))}}function getIndexNodeForAccessExpression(e){return 213===e.kind?e.argumentExpression:200===e.kind?e.indexType:168===e.kind?e.expression:e}function isPatternLiteralPlaceholderType(e){if(2097152&e.flags){let t=!1;for(const n of e.types)if(101248&n.flags||isPatternLiteralPlaceholderType(n))t=!0;else if(!(524288&n.flags))return!1;return t}return!!(77&e.flags)||isPatternLiteralType(e)}function isPatternLiteralType(e){return!!(134217728&e.flags)&&every(e.types,isPatternLiteralPlaceholderType)||!!(268435456&e.flags)&&isPatternLiteralPlaceholderType(e.type)}function isGenericStringLikeType(e){return!!(402653184&e.flags)&&!isPatternLiteralType(e)}function isGenericType(e){return!!getGenericObjectFlags(e)}function isGenericObjectType(e){return!!(4194304&getGenericObjectFlags(e))}function isGenericIndexType(e){return!!(8388608&getGenericObjectFlags(e))}function getGenericObjectFlags(e){return 3145728&e.flags?(2097152&e.objectFlags||(e.objectFlags|=2097152|reduceLeft(e.types,(e,t)=>e|getGenericObjectFlags(t),0)),12582912&e.objectFlags):33554432&e.flags?(2097152&e.objectFlags||(e.objectFlags|=2097152|getGenericObjectFlags(e.baseType)|getGenericObjectFlags(e.constraint)),12582912&e.objectFlags):(58982400&e.flags||isGenericMappedType(e)||isGenericTupleType(e)?4194304:0)|(63176704&e.flags||isGenericStringLikeType(e)?8388608:0)}function getSimplifiedType(e,t){return 8388608&e.flags?function getSimplifiedIndexedAccessType(e,t){const n=t?"simplifiedForWriting":"simplifiedForReading";if(e[n])return e[n]===Ft?e:e[n];e[n]=Ft;const r=getSimplifiedType(e.objectType,t),i=getSimplifiedType(e.indexType,t),o=function distributeObjectOverIndexType(e,t,n){if(1048576&t.flags){const r=map(t.types,t=>getSimplifiedType(getIndexedAccessType(e,t),n));return n?getIntersectionType(r):getUnionType(r)}}(r,i,t);if(o)return e[n]=o;if(!(465829888&i.flags)){const o=distributeIndexOverObjectType(r,i,t);if(o)return e[n]=o}if(isGenericTupleType(r)&&296&i.flags){const o=getElementTypeOfSliceOfTupleType(r,8&i.flags?0:r.target.fixedLength,0,t);if(o)return e[n]=o}if(isGenericMappedType(r)&&2!==getMappedTypeNameTypeKind(r))return e[n]=mapType(substituteIndexedMappedType(r,e.indexType),e=>getSimplifiedType(e,t));return e[n]=e}(e,t):16777216&e.flags?function getSimplifiedConditionalType(e,t){const n=e.checkType,r=e.extendsType,i=getTrueTypeFromConditionalType(e),o=getFalseTypeFromConditionalType(e);if(131072&o.flags&&getActualTypeVariable(i)===getActualTypeVariable(n)){if(1&n.flags||isTypeAssignableTo(getRestrictiveInstantiation(n),getRestrictiveInstantiation(r)))return getSimplifiedType(i,t);if(isIntersectionEmpty(n,r))return tt}else if(131072&i.flags&&getActualTypeVariable(o)===getActualTypeVariable(n)){if(!(1&n.flags)&&isTypeAssignableTo(getRestrictiveInstantiation(n),getRestrictiveInstantiation(r)))return tt;if(1&n.flags||isIntersectionEmpty(n,r))return getSimplifiedType(o,t)}return e}(e,t):e}function distributeIndexOverObjectType(e,t,n){if(1048576&e.flags||2097152&e.flags&&!shouldDeferIndexType(e)){const r=map(e.types,e=>getSimplifiedType(getIndexedAccessType(e,t),n));return 2097152&e.flags||n?getIntersectionType(r):getUnionType(r)}}function isIntersectionEmpty(e,t){return!!(131072&getUnionType([intersectTypes(e,t),tt]).flags)}function substituteIndexedMappedType(e,t){const n=createTypeMapper([getTypeParameterFromMappedType(e)],[t]),r=combineTypeMappers(e.mapper,n),i=instantiateType(getTemplateTypeFromMappedType(e.target||e),r),o=getMappedTypeOptionality(e)>0||(isGenericType(e)?getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(e))>0:function couldAccessOptionalProperty(e,t){const n=getBaseConstraintOfType(t);return!!n&&some(getPropertiesOfType(e),e=>!!(16777216&e.flags)&&isTypeAssignableTo(getLiteralTypeFromProperty(e,8576),n))}(e,t));return addOptionality(i,!0,o)}function getIndexedAccessType(e,t,n=0,r,i,o){return getIndexedAccessTypeOrUndefined(e,t,n,r,i,o)||(r?Ie:Le)}function indexTypeLessThan(e,t){return everyType(e,e=>{if(384&e.flags){const n=getPropertyNameFromType(e);if(isNumericLiteralName(n)){const e=+n;return e>=0&&e0&&!some(e.elements,e=>isOptionalTypeNode(e)||isRestTypeNode(e)||isNamedTupleMember(e)&&!(!e.questionToken&&!e.dotDotDotToken))}function isDeferredType(e,t){return isGenericType(e)||t&&isTupleType(e)&&some(getElementTypes(e),isGenericType)}function getConditionalType(e,t,n,i,o){let a,s,c=0;for(;;){if(1e3===c)return error2(r,Ot.Type_instantiation_is_excessively_deep_and_possibly_infinite),Ie;const l=instantiateType(getActualTypeVariable(e.checkType),t),d=instantiateType(e.extendsType,t);if(l===Ie||d===Ie)return Ie;if(l===Pe||d===Pe)return Pe;const p=skipTypeParentheses(e.node.checkType),u=skipTypeParentheses(e.node.extendsType),m=isSimpleTupleType(p)&&isSimpleTupleType(u)&&length(p.elements)===length(u.elements),_=isDeferredType(l,m);let f;if(e.inferTypeParameters){const n=createInferenceContext(e.inferTypeParameters,void 0,0);t&&(n.nonFixingMapper=combineTypeMappers(n.nonFixingMapper,t)),_||inferTypes(n.inferences,l,d,1536),f=t?combineTypeMappers(n.mapper,t):n.mapper}const g=f?instantiateType(e.extendsType,f):d;if(!_&&!isDeferredType(g,m)){if(!(3&g.flags)&&(1&l.flags||!isTypeAssignableTo(getPermissiveInstantiation(l),getPermissiveInstantiation(g)))){(1&l.flags||n&&!(131072&g.flags)&&someType(getPermissiveInstantiation(g),e=>isTypeAssignableTo(e,getPermissiveInstantiation(l))))&&(s||(s=[])).push(instantiateType(getTypeFromTypeNode(e.node.trueType),f||t));const r=getTypeFromTypeNode(e.node.falseType);if(16777216&r.flags){const n=r.root;if(n.node.parent===e.node&&(!n.isDistributive||n.checkType===e.checkType)){e=n;continue}if(canTailRecurse(r,t))continue}a=instantiateType(r,t);break}if(3&g.flags||isTypeAssignableTo(getRestrictiveInstantiation(l),getRestrictiveInstantiation(g))){const n=getTypeFromTypeNode(e.node.trueType),r=f||t;if(canTailRecurse(n,r))continue;a=instantiateType(n,r);break}}a=createType(16777216),a.root=e,a.checkType=instantiateType(e.checkType,t),a.extendsType=instantiateType(e.extendsType,t),a.mapper=t,a.combinedMapper=f,a.aliasSymbol=i||e.aliasSymbol,a.aliasTypeArguments=i?o:instantiateTypes(e.aliasTypeArguments,t);break}return s?getUnionType(append(s,a)):a;function canTailRecurse(n,r){if(16777216&n.flags&&r){const a=n.root;if(a.outerTypeParameters){const s=combineTypeMappers(n.mapper,r),l=map(a.outerTypeParameters,e=>getMappedType(e,s)),d=createTypeMapper(a.outerTypeParameters,l),p=a.isDistributive?getMappedType(a.checkType,d):void 0;if(!(p&&p!==a.checkType&&1179648&p.flags))return e=a,t=d,i=void 0,o=void 0,a.aliasSymbol&&c++,!0}}return!1}}function getTrueTypeFromConditionalType(e){return e.resolvedTrueType||(e.resolvedTrueType=instantiateType(getTypeFromTypeNode(e.root.node.trueType),e.mapper))}function getFalseTypeFromConditionalType(e){return e.resolvedFalseType||(e.resolvedFalseType=instantiateType(getTypeFromTypeNode(e.root.node.falseType),e.mapper))}function getInferTypeParameters(e){let t;return e.locals&&e.locals.forEach(e=>{262144&e.flags&&(t=append(t,getDeclaredTypeOfSymbol(e)))}),t}function getIdentifierChain(e){return isIdentifier(e)?[e]:append(getIdentifierChain(e.left),e.right)}function getTypeFromImportTypeNode(e){var t;const n=getNodeLinks(e);if(!n.resolvedType){if(!isLiteralImportTypeNode(e))return error2(e.argument,Ot.String_literal_expected),n.resolvedSymbol=ve,n.resolvedType=Ie;const r=e.isTypeOf?111551:16777216&e.flags?900095:788968,i=resolveExternalModuleName(e,e.argument.literal);if(!i)return n.resolvedSymbol=ve,n.resolvedType=Ie;const o=!!(null==(t=i.exports)?void 0:t.get("export=")),a=resolveExternalModuleSymbol(i,!1);if(nodeIsMissing(e.qualifier))if(a.flags&r)n.resolvedType=resolveImportSymbolType(e,n,a,r);else{error2(e,111551===r?Ot.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:Ot.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0,e.argument.literal.text),n.resolvedSymbol=ve,n.resolvedType=Ie}else{const t=getIdentifierChain(e.qualifier);let i,s=a;for(;i=t.shift();){const a=t.length?1920:r,c=getMergedSymbol(resolveSymbol(s)),l=e.isTypeOf||isInJSFile(e)&&o?getPropertyOfType(getTypeOfSymbol(c),i.escapedText,!1,!0):void 0,d=(e.isTypeOf?void 0:getSymbol2(getExportsOfSymbol(c),i.escapedText,a))??l;if(!d)return error2(i,Ot.Namespace_0_has_no_exported_member_1,getFullyQualifiedName(s),declarationNameToString(i)),n.resolvedType=Ie;getNodeLinks(i).resolvedSymbol=d,getNodeLinks(i.parent).resolvedSymbol=d,s=d}n.resolvedType=resolveImportSymbolType(e,n,s,r)}}return n.resolvedType}function resolveImportSymbolType(e,t,n,r){const i=resolveSymbol(n);return t.resolvedSymbol=i,111551===r?getInstantiationExpressionType(getTypeOfSymbol(n),e):getTypeReferenceType(e,i)}function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=getAliasSymbolForTypeNode(e);if(!e.symbol||0===getMembersOfSymbol(e.symbol).size&&!n)t.resolvedType=vt;else{let r=createObjectType(16,e.symbol);r.aliasSymbol=n,r.aliasTypeArguments=getTypeArgumentsForAliasSymbol(n),isJSDocTypeLiteral(e)&&e.isArrayType&&(r=createArrayType(r)),t.resolvedType=r}}return t.resolvedType}function getAliasSymbolForTypeNode(e){let t=e.parent;for(;isParenthesizedTypeNode(t)||isJSDocTypeExpression(t)||isTypeOperatorNode(t)&&148===t.operator;)t=t.parent;return isTypeAlias(t)?getSymbolOfDeclaration(t):void 0}function getTypeArgumentsForAliasSymbol(e){return e?getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e):void 0}function isNonGenericObjectType(e){return!!(524288&e.flags)&&!isGenericMappedType(e)}function isEmptyObjectTypeOrSpreadsIntoEmptyObject(e){return isEmptyObjectType(e)||!!(474058748&e.flags)}function tryMergeUnionOfObjectTypeAndEmptyObject(e,t){if(!(1048576&e.flags))return e;if(every(e.types,isEmptyObjectTypeOrSpreadsIntoEmptyObject))return find(e.types,isEmptyObjectType)||ht;const n=find(e.types,e=>!isEmptyObjectTypeOrSpreadsIntoEmptyObject(e));if(!n)return e;return find(e.types,e=>e!==n&&!isEmptyObjectTypeOrSpreadsIntoEmptyObject(e))?e:function getAnonymousPartialType(e){const n=createSymbolTable();for(const r of getPropertiesOfType(e))if(6&getDeclarationModifierFlagsFromSymbol(r));else if(isSpreadableProperty(r)){const e=65536&r.flags&&!(32768&r.flags),i=createSymbol(16777220,r.escapedName,getIsLateCheckFlag(r)|(t?8:0));i.links.type=e?Me:addOptionality(getTypeOfSymbol(r),!0),i.declarations=r.declarations,i.links.nameType=getSymbolLinks(r).nameType,i.links.syntheticOrigin=r,n.set(r.escapedName,i)}const r=createAnonymousType(e.symbol,n,l,l,getIndexInfosOfType(e));return r.objectFlags|=131200,r}(n)}function getSpreadType(e,t,n,r,i){if(1&e.flags||1&t.flags)return ke;if(2&e.flags||2&t.flags)return Le;if(131072&e.flags)return t;if(131072&t.flags)return e;if(1048576&(e=tryMergeUnionOfObjectTypeAndEmptyObject(e,i)).flags)return checkCrossProductUnion([e,t])?mapType(e,e=>getSpreadType(e,t,n,r,i)):Ie;if(1048576&(t=tryMergeUnionOfObjectTypeAndEmptyObject(t,i)).flags)return checkCrossProductUnion([e,t])?mapType(t,t=>getSpreadType(e,t,n,r,i)):Ie;if(473960444&t.flags)return e;if(isGenericObjectType(e)||isGenericObjectType(t)){if(isEmptyObjectType(e))return t;if(2097152&e.flags){const o=e.types,a=o[o.length-1];if(isNonGenericObjectType(a)&&isNonGenericObjectType(t))return getIntersectionType(concatenate(o.slice(0,o.length-1),[getSpreadType(a,t,n,r,i)]))}return getIntersectionType([e,t])}const o=createSymbolTable(),a=new Set,s=e===ht?getIndexInfosOfType(t):getUnionIndexInfos([e,t]);for(const e of getPropertiesOfType(t))6&getDeclarationModifierFlagsFromSymbol(e)?a.add(e.escapedName):isSpreadableProperty(e)&&o.set(e.escapedName,getSpreadSymbol(e,i));for(const t of getPropertiesOfType(e))if(!a.has(t.escapedName)&&isSpreadableProperty(t))if(o.has(t.escapedName)){const e=o.get(t.escapedName),n=getTypeOfSymbol(e);if(16777216&e.flags){const r=concatenate(t.declarations,e.declarations),i=createSymbol(4|16777216&t.flags,t.escapedName),a=getTypeOfSymbol(t),s=removeMissingOrUndefinedType(a),c=removeMissingOrUndefinedType(n);i.links.type=s===c?a:getUnionType([a,c],2),i.links.leftSpread=t,i.links.rightSpread=e,i.declarations=r,i.links.nameType=getSymbolLinks(t).nameType,o.set(t.escapedName,i)}}else o.set(t.escapedName,getSpreadSymbol(t,i));const c=createAnonymousType(n,o,l,l,sameMap(s,e=>function getIndexInfoWithReadonly(e,t){return e.isReadonly!==t?createIndexInfo(e.keyType,e.type,t,e.declaration,e.components):e}(e,i)));return c.objectFlags|=2228352|r,c}function isSpreadableProperty(e){var t;return!(some(e.declarations,isPrivateIdentifierClassElementDeclaration)||106496&e.flags&&(null==(t=e.declarations)?void 0:t.some(e=>isClassLike(e.parent))))}function getSpreadSymbol(e,t){const n=65536&e.flags&&!(32768&e.flags);if(!n&&t===isReadonlySymbol(e))return e;const r=createSymbol(4|16777216&e.flags,e.escapedName,getIsLateCheckFlag(e)|(t?8:0));return r.links.type=n?Me:getTypeOfSymbol(e),r.declarations=e.declarations,r.links.nameType=getSymbolLinks(e).nameType,r.links.syntheticOrigin=e,r}function createLiteralType(e,t,n,r){const i=createTypeWithSymbol(e,n);return i.value=t,i.regularType=r||i,i}function getFreshTypeOfLiteralType(e){if(2976&e.flags){if(!e.freshType){const t=createLiteralType(e.flags,e.value,e.symbol,e);t.freshType=t,e.freshType=t}return e.freshType}return e}function getRegularTypeOfLiteralType(e){return 2976&e.flags?e.regularType:1048576&e.flags?e.regularType||(e.regularType=mapType(e,getRegularTypeOfLiteralType)):e}function isFreshLiteralType(e){return!!(2976&e.flags)&&e.freshType===e}function getStringLiteralType(e){let t;return ce.get(e)||(ce.set(e,t=createLiteralType(128,e)),t)}function getNumberLiteralType(e){let t;return le.get(e)||(le.set(e,t=createLiteralType(256,e)),t)}function getBigIntLiteralType(e){let t;const n=pseudoBigIntToString(e);return de.get(n)||(de.set(n,t=createLiteralType(2048,e)),t)}function getEnumLiteralType(e,t,n){let r;const i=`${t}${"string"==typeof e?"@":"#"}${e}`,o=1024|("string"==typeof e?128:256);return pe.get(i)||(pe.set(i,r=createLiteralType(o,e,n)),r)}function getESSymbolLikeTypeForNode(e){if(isInJSFile(e)&&isJSDocTypeExpression(e)){const t=getJSDocHost(e);t&&(e=getSingleVariableOfVariableStatement(t)||t)}if(isValidESSymbolDeclaration(e)){const t=isCommonJsExportPropertyAssignment(e)?getSymbolOfNode(e.left):getSymbolOfNode(e);if(t){const e=getSymbolLinks(t);return e.uniqueESSymbolType||(e.uniqueESSymbolType=function createUniqueESSymbolType(e){const t=createTypeWithSymbol(8192,e);return t.escapedName=`__@${t.symbol.escapedName}@${getSymbolId(t.symbol)}`,t}(t))}}return Ze}function getTypeFromThisTypeNode(e){const t=getNodeLinks(e);return t.resolvedType||(t.resolvedType=function getThisType(e){const t=getThisContainer(e,!1,!1),n=t&&t.parent;if(n&&(isClassLike(n)||265===n.kind)&&!isStatic(t)&&(!isConstructorDeclaration(t)||isNodeDescendantOf(e,t.body)))return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(n)).thisType;if(n&&isObjectLiteralExpression(n)&&isBinaryExpression(n.parent)&&6===getAssignmentDeclarationKind(n.parent))return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(n.parent.left).parent).thisType;const r=16777216&e.flags?getHostSignatureFromJSDoc(e):void 0;return r&&isFunctionExpression(r)&&isBinaryExpression(r.parent)&&3===getAssignmentDeclarationKind(r.parent)?getDeclaredTypeOfClassOrInterface(getSymbolOfNode(r.parent.left).parent).thisType:isJSConstructor(t)&&isNodeDescendantOf(e,t.body)?getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(t)).thisType:(error2(e,Ot.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface),Ie)}(e)),t.resolvedType}function getTypeFromRestTypeNode(e){return getTypeFromTypeNode(getArrayElementTypeNode(e.type)||e.type)}function getArrayElementTypeNode(e){switch(e.kind){case 197:return getArrayElementTypeNode(e.type);case 190:if(1===e.elements.length&&(192===(e=e.elements[0]).kind||203===e.kind&&e.dotDotDotToken))return getArrayElementTypeNode(e.type);break;case 189:return e.elementType}}function getTypeFromTypeNode(e){return function getConditionalFlowTypeOfType(e,t){let n,r=!0;for(;t&&!isStatement(t)&&321!==t.kind;){const i=t.parent;if(170===i.kind&&(r=!r),(r||8650752&e.flags)&&195===i.kind&&t===i.trueType){const t=getImpliedConstraint(e,i.checkType,i.extendsType);t&&(n=append(n,t))}else if(262144&e.flags&&201===i.kind&&!i.nameType&&t===i.type){const t=getTypeFromTypeNode(i);if(getTypeParameterFromMappedType(t)===getActualTypeVariable(e)){const e=getHomomorphicTypeVariable(t);if(e){const t=getConstraintOfTypeParameter(e);t&&everyType(t,isArrayOrTupleType)&&(n=append(n,getUnionType([Ve,pt])))}}}t=i}return n?getSubstitutionType(e,getIntersectionType(n)):e}(getTypeFromTypeNodeWorker(e),e)}function getTypeFromTypeNodeWorker(e){switch(e.kind){case 133:case 313:case 314:return ke;case 159:return Le;case 154:return ze;case 150:return Ve;case 163:return qe;case 136:return Ye;case 155:return Ze;case 116:return et;case 157:return Me;case 106:return We;case 146:return tt;case 151:return 524288&e.flags&&!A?ke:ot;case 141:return we;case 198:case 110:return getTypeFromThisTypeNode(e);case 202:return function getTypeFromLiteralTypeNode(e){if(106===e.literal.kind)return We;const t=getNodeLinks(e);return t.resolvedType||(t.resolvedType=getRegularTypeOfLiteralType(checkExpression(e.literal))),t.resolvedType}(e);case 184:case 234:return getTypeFromTypeReference(e);case 183:return e.assertsModifier?et:Ye;case 187:return getTypeFromTypeQueryNode(e);case 189:case 190:return function getTypeFromArrayOrTupleTypeNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=getArrayOrTupleTargetType(e);if(n===Et)t.resolvedType=ht;else if(190===e.kind&&some(e.elements,e=>!!(8&getTupleElementFlags(e)))||!isDeferredTypeReferenceNode(e)){const r=189===e.kind?[getTypeFromTypeNode(e.elementType)]:map(e.elements,getTypeFromTypeNode);t.resolvedType=createNormalizedTypeReference(n,r)}else t.resolvedType=190===e.kind&&0===e.elements.length?n:createDeferredTypeReference(n,e,void 0)}return t.resolvedType}(e);case 191:return function getTypeFromOptionalTypeNode(e){return addOptionality(getTypeFromTypeNode(e.type),!0)}(e);case 193:return function getTypeFromUnionTypeNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=getAliasSymbolForTypeNode(e);t.resolvedType=getUnionType(map(e.types,getTypeFromTypeNode),1,n,getTypeArgumentsForAliasSymbol(n))}return t.resolvedType}(e);case 194:return function getTypeFromIntersectionTypeNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=getAliasSymbolForTypeNode(e),r=map(e.types,getTypeFromTypeNode),i=2===r.length?r.indexOf(vt):-1,o=i>=0?r[1-i]:Le,a=!!(76&o.flags||134217728&o.flags&&isPatternLiteralType(o));t.resolvedType=getIntersectionType(r,a?1:0,n,getTypeArgumentsForAliasSymbol(n))}return t.resolvedType}(e);case 315:return function getTypeFromJSDocNullableTypeNode(e){const t=getTypeFromTypeNode(e.type);return k?getNullableType(t,65536):t}(e);case 317:return addOptionality(getTypeFromTypeNode(e.type));case 203:return function getTypeFromNamedTupleTypeNode(e){const t=getNodeLinks(e);return t.resolvedType||(t.resolvedType=e.dotDotDotToken?getTypeFromRestTypeNode(e):addOptionality(getTypeFromTypeNode(e.type),!0,!!e.questionToken))}(e);case 197:case 316:case 310:return getTypeFromTypeNode(e.type);case 192:return getTypeFromRestTypeNode(e);case 319:return function getTypeFromJSDocVariadicType(e){const t=getTypeFromTypeNode(e.type),{parent:n}=e,r=e.parent.parent;if(isJSDocTypeExpression(e.parent)&&isJSDocParameterTag(r)){const e=getHostSignatureFromJSDoc(r),n=isJSDocCallbackTag(r.parent.parent);if(e||n){const i=lastOrUndefined(n?r.parent.parent.typeExpression.parameters:e.parameters),o=getParameterSymbolFromJSDoc(r);if(!i||o&&i.symbol===o&&isRestParameter(i))return createArrayType(t)}}if(isParameter(n)&&isJSDocFunctionType(n.parent))return createArrayType(t);return addOptionality(t)}(e);case 185:case 186:case 188:case 323:case 318:case 324:return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(e);case 199:return function getTypeFromTypeOperatorNode(e){const t=getNodeLinks(e);if(!t.resolvedType)switch(e.operator){case 143:t.resolvedType=getIndexType(getTypeFromTypeNode(e.type));break;case 158:t.resolvedType=155===e.type.kind?getESSymbolLikeTypeForNode(walkUpParenthesizedTypes(e.parent)):Ie;break;case 148:t.resolvedType=getTypeFromTypeNode(e.type);break;default:h.assertNever(e.operator)}return t.resolvedType}(e);case 200:return getTypeFromIndexedAccessTypeNode(e);case 201:return getTypeFromMappedTypeNode(e);case 195:return function getTypeFromConditionalTypeNode(e){const t=getNodeLinks(e);if(!t.resolvedType){const n=getTypeFromTypeNode(e.checkType),r=getAliasSymbolForTypeNode(e),i=getTypeArgumentsForAliasSymbol(r),o=getOuterTypeParameters(e,!0),a=i?o:filter(o,t=>isTypeParameterPossiblyReferenced(t,e)),s={node:e,checkType:n,extendsType:getTypeFromTypeNode(e.extendsType),isDistributive:!!(262144&n.flags),inferTypeParameters:getInferTypeParameters(e),outerTypeParameters:a,instantiations:void 0,aliasSymbol:r,aliasTypeArguments:i};t.resolvedType=getConditionalType(s,void 0,!1),a&&(s.instantiations=new Map,s.instantiations.set(getTypeListId(a),t.resolvedType))}return t.resolvedType}(e);case 196:return function getTypeFromInferTypeNode(e){const t=getNodeLinks(e);return t.resolvedType||(t.resolvedType=getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e.typeParameter))),t.resolvedType}(e);case 204:return function getTypeFromTemplateTypeNode(e){const t=getNodeLinks(e);return t.resolvedType||(t.resolvedType=getTemplateLiteralType([e.head.text,...map(e.templateSpans,e=>e.literal.text)],map(e.templateSpans,e=>getTypeFromTypeNode(e.type)))),t.resolvedType}(e);case 206:return getTypeFromImportTypeNode(e);case 80:case 167:case 212:const t=getSymbolAtLocation(e);return t?getDeclaredTypeOfSymbol(t):Ie;default:return Ie}}function instantiateList(e,t,n){if(e&&e.length)for(let r=0;rsome(n,t=>isTypeParameterPossiblyReferenced(e,t))):s,o.outerTypeParameters=s}if(s.length){const i=combineTypeMappers(e.mapper,t),o=map(s,e=>getMappedType(e,i)),c=n||e.aliasSymbol,l=n?r:instantiateTypes(e.aliasTypeArguments,t),d=getTypeListId(o)+getAliasId(c,l);a.instantiations||(a.instantiations=new Map,a.instantiations.set(getTypeListId(s)+getAliasId(a.aliasSymbol,a.aliasTypeArguments),a));let p=a.instantiations.get(d);if(!p){let n=createTypeMapper(s,o);134217728&a.objectFlags&&t&&(n=combineTypeMappers(n,t)),p=4&a.objectFlags?createDeferredTypeReference(e.target,e.node,n,c,l):32&a.objectFlags?function instantiateMappedType(e,t,n,r){const i=getHomomorphicTypeVariable(e);if(i){const e=instantiateType(i,t);if(i!==e)return mapTypeWithAlias(getReducedType(e),instantiateConstituent,n,r)}return instantiateType(getConstraintTypeFromMappedType(e),t)===Pe?Pe:instantiateAnonymousType(e,t,n,r);function instantiateConstituent(n){if(61603843&n.flags&&n!==Pe&&!isErrorType(n)){if(!e.declaration.nameType){let r;if(isArrayType(n)||1&n.flags&&findResolutionCycleStartIndex(i,4)<0&&(r=getConstraintOfTypeParameter(i))&&everyType(r,isArrayOrTupleType))return function instantiateMappedArrayType(e,t,n){const r=instantiateMappedTypeTemplate(t,Ve,!0,n);return isErrorType(r)?Ie:createArrayType(r,getModifiedReadonlyState(isReadonlyArrayType(e),getMappedTypeModifiers(t)))}(n,e,prependTypeMapping(i,n,t));if(isTupleType(n))return function instantiateMappedTupleType(e,t,n,r){const i=e.target.elementFlags,o=e.target.fixedLength,a=o?prependTypeMapping(n,e,r):r,s=map(getElementTypes(e),(e,s)=>{const c=i[s];return s1&e?2:e):8&c?map(i,e=>2&e?1:e):i,d=getModifiedReadonlyState(e.target.readonly,getMappedTypeModifiers(t));return contains(s,Ie)?Ie:createTupleType(s,l,d,e.target.labeledElementDeclarations)}(n,e,i,t);if(isArrayOrTupleOrIntersection(n))return getIntersectionType(map(n.types,instantiateConstituent))}return instantiateAnonymousType(e,prependTypeMapping(i,n,t))}return n}}(a,n,c,l):instantiateAnonymousType(a,n,c,l),a.instantiations.set(d,p);const r=getObjectFlags(p);if(3899393&p.flags&&!(524288&r)){const e=some(o,couldContainTypeVariables);524288&getObjectFlags(p)||(p.objectFlags|=52&r?524288|(e?1048576:0):e?0:524288)}}return p}return e}function isTypeParameterPossiblyReferenced(e,t){if(e.symbol&&e.symbol.declarations&&1===e.symbol.declarations.length){const n=e.symbol.declarations[0].parent;for(let e=t;e!==n;e=e.parent)if(!e||242===e.kind||195===e.kind&&forEachChild(e.extendsType,containsReference))return!0;return containsReference(t)}return!0;function containsReference(t){switch(t.kind){case 198:return!!e.isThisType;case 80:return!e.isThisType&&isPartOfTypeNode(t)&&function maybeTypeParameterReference(e){return!(184===e.parent.kind&&e.parent.typeArguments&&e===e.parent.typeName||206===e.parent.kind&&e.parent.typeArguments&&e===e.parent.qualifier)}(t)&&getTypeFromTypeNodeWorker(t)===e;case 187:const n=getFirstIdentifier(t.exprName);if(!isThisIdentifier(n)){const r=getResolvedSymbol(n),i=e.symbol.declarations[0],o=169===i.kind?i.parent:e.isThisType?i:void 0;if(r.declarations&&o)return some(r.declarations,e=>isNodeDescendantOf(e,o))||some(t.typeArguments,containsReference)}return!0;case 175:case 174:return!t.type&&!!t.body||some(t.typeParameters,containsReference)||some(t.parameters,containsReference)||!!t.type&&containsReference(t.type)}return!!forEachChild(t,containsReference)}}function getHomomorphicTypeVariable(e){const t=getConstraintTypeFromMappedType(e);if(4194304&t.flags){const e=getActualTypeVariable(t.type);if(262144&e.flags)return e}}function getModifiedReadonlyState(e,t){return!!(1&t)||!(2&t)&&e}function instantiateMappedTypeTemplate(e,t,n,r){const i=appendTypeMapping(r,getTypeParameterFromMappedType(e),t),o=instantiateType(getTemplateTypeFromMappedType(e.target||e),i),a=getMappedTypeModifiers(e);return k&&4&a&&!maybeTypeOfKind(o,49152)?getOptionalType(o,!0):k&&8&a&&n?getTypeWithFacts(o,524288):o}function instantiateAnonymousType(e,t,n,r){h.assert(e.symbol,"anonymous type must have symbol to be instantiated");const i=createObjectType(-1572865&e.objectFlags|64,e.symbol);if(32&e.objectFlags){i.declaration=e.declaration;const n=getTypeParameterFromMappedType(e),r=cloneTypeParameter(n);i.typeParameter=r,t=combineTypeMappers(makeUnaryTypeMapper(n,r),t),r.mapper=t}return 8388608&e.objectFlags&&(i.node=e.node),i.target=e,i.mapper=t,i.aliasSymbol=n||e.aliasSymbol,i.aliasTypeArguments=n?r:instantiateTypes(e.aliasTypeArguments,t),i.objectFlags|=i.aliasTypeArguments?getPropagatingFlagsOfTypes(i.aliasTypeArguments):0,i}function getConditionalTypeInstantiation(e,t,n,r,i){const o=e.root;if(o.outerTypeParameters){const e=map(o.outerTypeParameters,e=>getMappedType(e,t)),a=(n?"C":"")+getTypeListId(e)+getAliasId(r,i);let s=o.instantiations.get(a);if(!s){const t=createTypeMapper(o.outerTypeParameters,e),c=o.checkType,l=o.isDistributive?getReducedType(getMappedType(c,t)):void 0;s=l&&c!==l&&1179648&l.flags?mapTypeWithAlias(l,e=>getConditionalType(o,prependTypeMapping(c,e,t),n),r,i):getConditionalType(o,t,n,r,i),o.instantiations.set(a,s)}return s}return e}function instantiateType(e,t){return e&&t?instantiateTypeWithAlias(e,t,void 0,void 0):e}function instantiateTypeWithAlias(e,t,n,i){var o;if(!couldContainTypeVariables(e))return e;if(100===_||m>=5e6)return null==(o=J)||o.instant(J.Phase.CheckTypes,"instantiateType_DepthLimit",{typeId:e.id,instantiationDepth:_,instantiationCount:m}),error2(r,Ot.Type_instantiation_is_excessively_deep_and_possibly_infinite),Ie;const a=function findActiveMapper(e){for(let t=qr-1;t>=0;t--)if(e===zr[t])return t;return-1}(t);-1===a&&function pushActiveMapper(e){zr[qr]=e,Vr[qr]??(Vr[qr]=new Map),qr++}(t);const s=e.id+getAliasId(n,i),c=Vr[-1!==a?a:qr-1],l=c.get(s);if(l)return l;u++,m++,_++;const d=function instantiateTypeWorker(e,t,n,r){const i=e.flags;if(262144&i)return getMappedType(e,t);if(524288&i){const i=e.objectFlags;if(52&i){if(4&i&&!e.node){const n=e.resolvedTypeArguments,r=instantiateTypes(n,t);return r!==n?createNormalizedTypeReference(e.target,r):e}return 1024&i?function instantiateReverseMappedType(e,t){const n=instantiateType(e.mappedType,t);if(!(32&getObjectFlags(n)))return e;const r=instantiateType(e.constraintType,t);if(!(4194304&r.flags))return e;const i=inferTypeForHomomorphicMappedType(instantiateType(e.source,t),n,r);if(i)return i;return e}(e,t):getObjectTypeInstantiation(e,t,n,r)}return e}if(3145728&i){const o=1048576&e.flags?e.origin:void 0,a=o&&3145728&o.flags?o.types:e.types,s=instantiateTypes(a,t);if(s===a&&n===e.aliasSymbol)return e;const c=n||e.aliasSymbol,l=n?r:instantiateTypes(e.aliasTypeArguments,t);return 2097152&i||o&&2097152&o.flags?getIntersectionType(s,0,c,l):getUnionType(s,1,c,l)}if(4194304&i)return getIndexType(instantiateType(e.type,t));if(134217728&i)return getTemplateLiteralType(e.texts,instantiateTypes(e.types,t));if(268435456&i)return getStringMappingType(e.symbol,instantiateType(e.type,t));if(8388608&i){const i=n||e.aliasSymbol,o=n?r:instantiateTypes(e.aliasTypeArguments,t);return getIndexedAccessType(instantiateType(e.objectType,t),instantiateType(e.indexType,t),e.accessFlags,void 0,i,o)}if(16777216&i)return getConditionalTypeInstantiation(e,combineTypeMappers(e.mapper,t),!1,n,r);if(33554432&i){const n=instantiateType(e.baseType,t);if(isNoInferType(e))return getNoInferType(n);const r=instantiateType(e.constraint,t);return 8650752&n.flags&&isGenericType(r)?getSubstitutionType(n,r):3&r.flags||isTypeAssignableTo(getRestrictiveInstantiation(n),getRestrictiveInstantiation(r))?n:8650752&n.flags?getSubstitutionType(n,r):getIntersectionType([r,n])}return e}(e,t,n,i);return-1===a?function popActiveMapper(){qr--,zr[qr]=void 0,Vr[qr].clear()}():c.set(s,d),_--,d}function getPermissiveInstantiation(e){return 402915327&e.flags?e:e.permissiveInstantiation||(e.permissiveInstantiation=instantiateType(e,mt))}function getRestrictiveInstantiation(e){return 402915327&e.flags?e:(e.restrictiveInstantiation||(e.restrictiveInstantiation=instantiateType(e,ut),e.restrictiveInstantiation.restrictiveInstantiation=e.restrictiveInstantiation),e.restrictiveInstantiation)}function instantiateIndexInfo(e,t){return createIndexInfo(e.keyType,instantiateType(e.type,t),e.isReadonly,e.declaration,e.components)}function isContextSensitive(e){switch(h.assert(175!==e.kind||isObjectLiteralMethod(e)),e.kind){case 219:case 220:case 175:case 263:return isContextSensitiveFunctionLikeDeclaration(e);case 211:return some(e.properties,isContextSensitive);case 210:return some(e.elements,isContextSensitive);case 228:return isContextSensitive(e.whenTrue)||isContextSensitive(e.whenFalse);case 227:return(57===e.operatorToken.kind||61===e.operatorToken.kind)&&(isContextSensitive(e.left)||isContextSensitive(e.right));case 304:return isContextSensitive(e.initializer);case 218:return isContextSensitive(e.expression);case 293:return some(e.properties,isContextSensitive)||isJsxOpeningElement(e.parent)&&some(e.parent.parent.children,isContextSensitive);case 292:{const{initializer:t}=e;return!!t&&isContextSensitive(t)}case 295:{const{expression:t}=e;return!!t&&isContextSensitive(t)}}return!1}function isContextSensitiveFunctionLikeDeclaration(e){return hasContextSensitiveParameters(e)||function hasContextSensitiveReturnExpression(e){if(e.typeParameters||getEffectiveReturnTypeNode(e)||!e.body)return!1;if(242!==e.body.kind)return isContextSensitive(e.body);return!!forEachReturnStatement(e.body,e=>!!e.expression&&isContextSensitive(e.expression))}(e)}function isContextSensitiveFunctionOrObjectLiteralMethod(e){return(isFunctionExpressionOrArrowFunction(e)||isObjectLiteralMethod(e))&&isContextSensitiveFunctionLikeDeclaration(e)}function getTypeWithoutSignatures(e){if(524288&e.flags){const t=resolveStructuredTypeMembers(e);if(t.constructSignatures.length||t.callSignatures.length){const n=createObjectType(16,e.symbol);return n.members=t.members,n.properties=t.properties,n.callSignatures=l,n.constructSignatures=l,n.indexInfos=l,n}}else if(2097152&e.flags)return getIntersectionType(map(e.types,getTypeWithoutSignatures));return e}function isTypeIdenticalTo(e,t){return isTypeRelatedTo(e,t,Pi)}function compareTypesIdentical(e,t){return isTypeRelatedTo(e,t,Pi)?-1:0}function compareTypesAssignable(e,t){return isTypeRelatedTo(e,t,ki)?-1:0}function compareTypesSubtypeOf(e,t){return isTypeRelatedTo(e,t,Ei)?-1:0}function isTypeSubtypeOf(e,t){return isTypeRelatedTo(e,t,Ei)}function isTypeStrictSubtypeOf(e,t){return isTypeRelatedTo(e,t,Ni)}function isTypeAssignableTo(e,t){return isTypeRelatedTo(e,t,ki)}function isTypeDerivedFrom(e,t){return 1048576&e.flags?every(e.types,e=>isTypeDerivedFrom(e,t)):1048576&t.flags?some(t.types,t=>isTypeDerivedFrom(e,t)):2097152&e.flags?some(e.types,e=>isTypeDerivedFrom(e,t)):58982400&e.flags?isTypeDerivedFrom(getBaseConstraintOfType(e)||Le,t):isEmptyAnonymousObjectType(t)?!!(67633152&e.flags):t===Jt?!!(67633152&e.flags)&&!isEmptyAnonymousObjectType(e):t===Wt?!!(524288&e.flags)&&isFunctionObjectType(e):hasBaseType(e,getTargetType(t))||isArrayType(t)&&!isReadonlyArrayType(t)&&isTypeDerivedFrom(e,qt)}function isTypeComparableTo(e,t){return isTypeRelatedTo(e,t,Fi)}function areTypesComparable(e,t){return isTypeComparableTo(e,t)||isTypeComparableTo(t,e)}function checkTypeAssignableTo(e,t,n,r,i,o){return checkTypeRelatedTo(e,t,ki,n,r,i,o)}function checkTypeAssignableToAndOptionallyElaborate(e,t,n,r,i,o){return checkTypeRelatedToAndOptionallyElaborate(e,t,ki,n,r,i,o,void 0)}function checkTypeRelatedToAndOptionallyElaborate(e,t,n,r,i,o,a,s){return!!isTypeRelatedTo(e,t,n)||(!r||!elaborateError(i,e,t,n,o,a,s))&&checkTypeRelatedTo(e,t,n,r,o,a,s)}function isOrHasGenericConditional(e){return!!(16777216&e.flags||2097152&e.flags&&some(e.types,isOrHasGenericConditional))}function elaborateError(e,t,n,r,i,o,a){if(!e||isOrHasGenericConditional(n))return!1;if(!checkTypeRelatedTo(t,n,r,void 0)&&function elaborateDidYouMeanToCallOrConstruct(e,t,n,r,i,o,a){const s=getSignaturesOfType(t,0),c=getSignaturesOfType(t,1);for(const l of[c,s])if(some(l,e=>{const t=getReturnTypeOfSignature(e);return!(131073&t.flags)&&checkTypeRelatedTo(t,n,r,void 0)})){const r=a||{};checkTypeAssignableTo(t,n,e,i,o,r);return addRelatedInfo(r.errors[r.errors.length-1],createDiagnosticForNode(e,l===c?Ot.Did_you_mean_to_use_new_with_this_expression:Ot.Did_you_mean_to_call_this_expression)),!0}return!1}(e,t,n,r,i,o,a))return!0;switch(e.kind){case 235:if(!isConstAssertion(e))break;case 295:case 218:return elaborateError(e.expression,t,n,r,i,o,a);case 227:switch(e.operatorToken.kind){case 64:case 28:return elaborateError(e.right,t,n,r,i,o,a)}break;case 211:return function elaborateObjectLiteral(e,t,n,r,i,o){return!(402915324&n.flags)&&elaborateElementwise(function*generateObjectLiteralElements(e){if(!length(e.properties))return;for(const t of e.properties){if(isSpreadAssignment(t))continue;const e=getLiteralTypeFromProperty(getSymbolOfDeclaration(t),8576);if(e&&!(131072&e.flags))switch(t.kind){case 179:case 178:case 175:case 305:yield{errorNode:t.name,innerExpression:void 0,nameType:e};break;case 304:yield{errorNode:t.name,innerExpression:t.initializer,nameType:e,errorMessage:isComputedNonLiteralName(t.name)?Ot.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:void 0};break;default:h.assertNever(t)}}}(e),t,n,r,i,o)}(e,t,n,r,o,a);case 210:return function elaborateArrayLiteral(e,t,n,r,i,o){if(402915324&n.flags)return!1;if(isTupleLikeType(t))return elaborateElementwise(generateLimitedTupleElements(e,n),t,n,r,i,o);pushContextualType(e,n,!1);const a=checkArrayLiteral(e,1,!0);if(popContextualType(),isTupleLikeType(a))return elaborateElementwise(generateLimitedTupleElements(e,n),a,n,r,i,o);return!1}(e,t,n,r,o,a);case 293:return function elaborateJsxComponents(e,t,n,r,i,o){let a,s=elaborateElementwise(function*generateJsxAttributes(e){if(!length(e.properties))return;for(const t of e.properties)isJsxSpreadAttribute(t)||isHyphenatedJsxName(getTextOfJsxAttributeName(t.name))||(yield{errorNode:t.name,innerExpression:t.initializer,nameType:getStringLiteralType(getTextOfJsxAttributeName(t.name))})}(e),t,n,r,i,o);if(isJsxOpeningElement(e.parent)&&isJsxElement(e.parent.parent)){const a=e.parent.parent,c=getJsxElementChildrenPropertyName(getJsxNamespaceAt(e)),l=void 0===c?"children":unescapeLeadingUnderscores(c),d=getStringLiteralType(l),p=getIndexedAccessType(n,d),u=getSemanticJsxChildren(a.children);if(!length(u))return s;const m=length(u)>1;let _,f;if(getGlobalIterableType(!1)!==Et){const e=createIterableType(ke);_=filterType(p,t=>isTypeAssignableTo(t,e)),f=filterType(p,t=>!isTypeAssignableTo(t,e))}else _=filterType(p,isArrayOrTupleLikeType),f=filterType(p,e=>!isArrayOrTupleLikeType(e));if(m){if(_!==tt){const e=createTupleType(checkJsxChildren(a,0)),t=function*generateJsxChildren(e,t){if(!length(e.children))return;let n=0;for(let r=0;r!isArrayOrTupleLikeType(e)),c=s!==tt?getIterationTypeOfIterable(13,0,s,void 0):void 0;let l=!1;for(let n=e.next();!n.done;n=e.next()){const{errorNode:e,innerExpression:s,nameType:d,errorMessage:p}=n.value;let u=c;const m=a!==tt?getBestMatchIndexedAccessTypeOrUndefined(t,a,d):void 0;if(!m||8388608&m.flags||(u=c?getUnionType([c,m]):m),!u)continue;let _=getIndexedAccessTypeOrUndefined(t,d);if(!_)continue;const f=getPropertyNameFromIndex(d,void 0);if(!checkTypeRelatedTo(_,u,r,void 0)){if(l=!0,!(s&&elaborateError(s,_,u,r,void 0,i,o))){const n=o||{},c=s?checkExpressionForMutableLocationWithContextualType(s,_):_;if(L&&isExactOptionalPropertyMismatch(c,u)){const t=createDiagnosticForNode(e,Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,typeToString(c),typeToString(u));vi.add(t),n.errors=[t]}else{const o=!!(f&&16777216&(getPropertyOfType(a,f)||ve).flags),s=!!(f&&16777216&(getPropertyOfType(t,f)||ve).flags);u=removeMissingType(u,o),_=removeMissingType(_,o&&s);checkTypeRelatedTo(c,u,r,e,p,i,n)&&c!==_&&checkTypeRelatedTo(_,u,r,e,p,i,n)}}}}return l}(t,e,_,r,i,o)||s}else if(!isTypeRelatedTo(getIndexedAccessType(t,d),p,r)){s=!0;const e=error2(a.openingElement.tagName,Ot.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,l,typeToString(p));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(e)}}else if(f!==tt){const e=getElaborationElementForJsxChild(u[0],d,getInvalidTextualChildDiagnostic);e&&(s=elaborateElementwise(function*(){yield e}(),t,n,r,i,o)||s)}else if(!isTypeRelatedTo(getIndexedAccessType(t,d),p,r)){s=!0;const e=error2(a.openingElement.tagName,Ot.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,l,typeToString(p));o&&o.skipLogging&&(o.errors||(o.errors=[])).push(e)}}return s;function getInvalidTextualChildDiagnostic(){if(!a){const t=getTextOfNode(e.parent.tagName),r=getJsxElementChildrenPropertyName(getJsxNamespaceAt(e)),i=void 0===r?"children":unescapeLeadingUnderscores(r),o=getIndexedAccessType(n,getStringLiteralType(i)),s=Ot._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;a={...s,key:"!!ALREADY FORMATTED!!",message:formatMessage(s,t,i,typeToString(o))}}return a}}(e,t,n,r,o,a);case 220:return function elaborateArrowFunction(e,t,n,r,i,o){if(isBlock(e.body))return!1;if(some(e.parameters,hasType))return!1;const a=getSingleCallSignature(t);if(!a)return!1;const s=getSignaturesOfType(n,0);if(!length(s))return!1;const c=e.body,l=getReturnTypeOfSignature(a),d=getUnionType(map(s,getReturnTypeOfSignature));if(!checkTypeRelatedTo(l,d,r,void 0)){const t=c&&elaborateError(c,l,d,r,void 0,i,o);if(t)return t;const a=o||{};if(checkTypeRelatedTo(l,d,r,c,void 0,i,a),a.errors)return n.symbol&&length(n.symbol.declarations)&&addRelatedInfo(a.errors[a.errors.length-1],createDiagnosticForNode(n.symbol.declarations[0],Ot.The_expected_type_comes_from_the_return_type_of_this_signature)),2&getFunctionFlags(e)||getTypeOfPropertyOfType(l,"then")||!checkTypeRelatedTo(createPromiseType(l),d,r,void 0)||addRelatedInfo(a.errors[a.errors.length-1],createDiagnosticForNode(e,Ot.Did_you_mean_to_mark_this_function_as_async)),!0}return!1}(e,t,n,r,o,a)}return!1}function getBestMatchIndexedAccessTypeOrUndefined(e,t,n){const r=getIndexedAccessTypeOrUndefined(t,n);if(r)return r;if(1048576&t.flags){const r=getBestMatchingType(e,t);if(r)return getIndexedAccessTypeOrUndefined(r,n)}}function checkExpressionForMutableLocationWithContextualType(e,t){pushContextualType(e,t,!1);const n=checkExpressionForMutableLocation(e,1);return popContextualType(),n}function elaborateElementwise(e,t,n,r,i,o){let a=!1;for(const s of e){const{errorNode:e,innerExpression:c,nameType:l,errorMessage:d}=s;let p=getBestMatchIndexedAccessTypeOrUndefined(t,n,l);if(!p||8388608&p.flags)continue;let u=getIndexedAccessTypeOrUndefined(t,l);if(!u)continue;const m=getPropertyNameFromIndex(l,void 0);if(!checkTypeRelatedTo(u,p,r,void 0)){if(a=!0,!(c&&elaborateError(c,u,p,r,void 0,i,o))){const a=o||{},s=c?checkExpressionForMutableLocationWithContextualType(c,u):u;if(L&&isExactOptionalPropertyMismatch(s,p)){const t=createDiagnosticForNode(e,Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,typeToString(s),typeToString(p));vi.add(t),a.errors=[t]}else{const o=!!(m&&16777216&(getPropertyOfType(n,m)||ve).flags),c=!!(m&&16777216&(getPropertyOfType(t,m)||ve).flags);p=removeMissingType(p,o),u=removeMissingType(u,o&&c);checkTypeRelatedTo(s,p,r,e,d,i,a)&&s!==u&&checkTypeRelatedTo(u,p,r,e,d,i,a)}if(a.errors){const e=a.errors[a.errors.length-1],t=isTypeUsableAsPropertyName(l)?getPropertyNameFromType(l):void 0,r=void 0!==t?getPropertyOfType(n,t):void 0;let i=!1;if(!r){const t=getApplicableIndexInfo(n,l);t&&t.declaration&&!getSourceFileOfNode(t.declaration).hasNoDefaultLib&&(i=!0,addRelatedInfo(e,createDiagnosticForNode(t.declaration,Ot.The_expected_type_comes_from_this_index_signature)))}if(!i&&(r&&length(r.declarations)||n.symbol&&length(n.symbol.declarations))){const i=r&&length(r.declarations)?r.declarations[0]:n.symbol.declarations[0];getSourceFileOfNode(i).hasNoDefaultLib||addRelatedInfo(e,createDiagnosticForNode(i,Ot.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,!t||8192&l.flags?typeToString(l):unescapeLeadingUnderscores(t),typeToString(n)))}}}}}return a}function getElaborationElementForJsxChild(e,t,n){switch(e.kind){case 295:return{errorNode:e,innerExpression:e.expression,nameType:t};case 12:if(e.containsOnlyTriviaWhiteSpaces)break;return{errorNode:e,innerExpression:void 0,nameType:t,errorMessage:n()};case 285:case 286:case 289:return{errorNode:e,innerExpression:e,nameType:t};default:return h.assertNever(e,"Found invalid jsx child")}}function*generateLimitedTupleElements(e,t){const n=length(e.elements);if(n)for(let r=0;rc:getMinArgumentCount(e)>c))return!r||8&n||i(Ot.Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1,getMinArgumentCount(e),c),0;e.typeParameters&&e.typeParameters!==t.typeParameters&&(e=instantiateSignatureInContextOf(e,t=getCanonicalSignature(t),void 0,a));const l=getParameterCount(e),d=getNonArrayRestType(e),p=getNonArrayRestType(t);(d||p)&&instantiateType(d||p,s);const u=t.declaration?t.declaration.kind:0,m=!(3&n)&&F&&175!==u&&174!==u&&177!==u;let _=-1;const f=getThisTypeOfSignature(e);if(f&&f!==et){const e=getThisTypeOfSignature(t);if(e){const t=!m&&a(f,e,!1)||a(e,f,r);if(!t)return r&&i(Ot.The_this_types_of_each_signature_are_incompatible),0;_&=t}}const g=d||p?Math.min(l,c):Math.max(l,c),y=d||p?g-1:-1;for(let c=0;c=getMinArgumentCount(e)&&c=3&&32768&t[0].flags&&65536&t[1].flags&&some(t,isEmptyAnonymousObjectType)?67108864:0)}return!!(67108864&e.objectFlags)}return!1}(t))return!0}return!1}function isTypeRelatedTo(e,t,n){if(isFreshLiteralType(e)&&(e=e.regularType),isFreshLiteralType(t)&&(t=t.regularType),e===t)return!0;if(n!==Pi){if(n===Fi&&!(131072&t.flags)&&isSimpleTypeRelatedTo(t,e,n)||isSimpleTypeRelatedTo(e,t,n))return!0}else if(!(61865984&(e.flags|t.flags))){if(e.flags!==t.flags)return!1;if(67358815&e.flags)return!0}if(524288&e.flags&&524288&t.flags){const r=n.get(getRelationKey(e,t,0,n,!1));if(void 0!==r)return!!(1&r)}return!!(469499904&e.flags||469499904&t.flags)&&checkTypeRelatedTo(e,t,n,void 0)}function isIgnoredJsxProperty(e,t){return 2048&getObjectFlags(e)&&isHyphenatedJsxName(t.escapedName)}function getNormalizedType(e,t){for(;;){const n=isFreshLiteralType(e)?e.regularType:isGenericTupleType(e)?getNormalizedTupleType(e,t):4&getObjectFlags(e)?e.node?createTypeReference(e.target,getTypeArguments(e)):getSingleBaseForNonAugmentingSubtype(e)||e:3145728&e.flags?getNormalizedUnionOrIntersectionType(e,t):33554432&e.flags?t?e.baseType:getSubstitutionIntersection(e):25165824&e.flags?getSimplifiedType(e,t):e;if(n===e)return n;e=n}}function getNormalizedUnionOrIntersectionType(e,t){const n=getReducedType(e);if(n!==e)return n;if(2097152&e.flags&&function shouldNormalizeIntersection(e){let t=!1,n=!1;for(const r of e.types)if(t||(t=!!(465829888&r.flags)),n||(n=!!(98304&r.flags)||isEmptyAnonymousObjectType(r)),t&&n)return!0;return!1}(e)){const n=sameMap(e.types,e=>getNormalizedType(e,t));if(n!==e.types)return getIntersectionType(n)}return e}function getNormalizedTupleType(e,t){const n=getElementTypes(e),r=sameMap(n,e=>25165824&e.flags?getSimplifiedType(e,t):e);return n!==r?createNormalizedTupleType(e.target,r):e}function checkTypeRelatedTo(e,t,n,i,o,a,s){var c;let d,p,u,m,_,f,g,y,T=0,x=0,v=0,b=0,C=!1,E=0,N=0,F=16e6-n.size>>3;h.assert(n!==Pi||!i,"no error reporting in identity checking");const P=isRelatedTo(e,t,3,!!i,o);if(y&&reportIncompatibleStack(),C){const o=getRelationKey(e,t,0,n,!1);n.set(o,2|(F<=0?32:64)),null==(c=J)||c.instant(J.Phase.CheckTypes,"checkTypeRelatedTo_DepthLimit",{sourceId:e.id,targetId:t.id,depth:x,targetDepth:v});const a=F<=0?Ot.Excessive_complexity_comparing_types_0_and_1:Ot.Excessive_stack_depth_comparing_types_0_and_1,l=error2(i||r,a,typeToString(e),typeToString(t));s&&(s.errors||(s.errors=[])).push(l)}else if(d){if(a){const e=a();e&&(concatenateDiagnosticMessageChains(e,d),d=e)}let r;if(o&&i&&!P&&e.symbol){const i=getSymbolLinks(e.symbol);if(i.originatingImport&&!isImportCall(i.originatingImport)){if(checkTypeRelatedTo(getTypeOfSymbol(i.target),t,n,void 0)){r=append(r,createDiagnosticForNode(i.originatingImport,Ot.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}}const c=createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(i),i,d,r);p&&addRelatedInfo(c,...p),s&&(s.errors||(s.errors=[])).push(c),s&&s.skipLogging||vi.add(c)}return i&&s&&s.skipLogging&&0===P&&h.assert(!!s.errors,"missed opportunity to interact with error."),0!==P;function resetErrorInfo(e){d=e.errorInfo,g=e.lastSkippedInfo,y=e.incompatibleStack,E=e.overrideNextErrorInfo,N=e.skipParentCounter,p=e.relatedInfo}function captureErrorCalculationState(){return{errorInfo:d,lastSkippedInfo:g,incompatibleStack:null==y?void 0:y.slice(),overrideNextErrorInfo:E,skipParentCounter:N,relatedInfo:null==p?void 0:p.slice()}}function reportIncompatibleError(e,...t){E++,g=void 0,(y||(y=[])).push([e,...t])}function reportIncompatibleStack(){const e=y||[];y=void 0;const t=g;if(g=void 0,1===e.length)return reportError(...e[0]),void(t&&reportRelationError(void 0,...t));let n="";const r=[];for(;e.length;){const[t,...i]=e.pop();switch(t.code){case Ot.Types_of_property_0_are_incompatible.code:{0===n.indexOf("new ")&&(n=`(${n})`);const e=""+i[0];n=0===n.length?`${e}`:isIdentifierText(e,zn(S))?`${n}.${e}`:"["===e[0]&&"]"===e[e.length-1]?`${n}${e}`:`${n}[${e}]`;break}case Ot.Call_signature_return_types_0_and_1_are_incompatible.code:case Ot.Construct_signature_return_types_0_and_1_are_incompatible.code:case Ot.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:case Ot.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:if(0===n.length){let e=t;t.code===Ot.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?e=Ot.Call_signature_return_types_0_and_1_are_incompatible:t.code===Ot.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code&&(e=Ot.Construct_signature_return_types_0_and_1_are_incompatible),r.unshift([e,i[0],i[1]])}else{n=`${t.code===Ot.Construct_signature_return_types_0_and_1_are_incompatible.code||t.code===Ot.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?"new ":""}${n}(${t.code===Ot.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code||t.code===Ot.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code?"":"..."})`}break;case Ot.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code:r.unshift([Ot.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,i[0],i[1]]);break;case Ot.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target.code:r.unshift([Ot.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,i[0],i[1],i[2]]);break;default:return h.fail(`Unhandled Diagnostic: ${t.code}`)}}n?reportError(")"===n[n.length-1]?Ot.The_types_returned_by_0_are_incompatible_between_these_types:Ot.The_types_of_0_are_incompatible_between_these_types,n):r.shift();for(const[e,...t]of r){const n=e.elidedInCompatabilityPyramid;e.elidedInCompatabilityPyramid=!1,reportError(e,...t),e.elidedInCompatabilityPyramid=n}t&&reportRelationError(void 0,...t)}function reportError(e,...t){h.assert(!!i),y&&reportIncompatibleStack(),e.elidedInCompatabilityPyramid||(0===N?d=chainDiagnosticMessages(d,e,...t):N--)}function reportParentSkippedError(e,...t){reportError(e,...t),N++}function associateRelatedInfo(e){h.assert(!!d),p?p.push(e):p=[e]}function reportRelationError(e,t,r){y&&reportIncompatibleStack();const[i,o]=getTypeNamesForErrorDisplay(t,r);let a=t,s=i;131072&r.flags||!isLiteralType(t)||typeCouldHaveTopLevelSingletonTypes(r)||(a=getBaseTypeOfLiteralType(t),h.assert(!isTypeAssignableTo(a,r),"generalized source shouldn't be assignable"),s=getTypeNameForErrorDisplay(a));if(262144&(8388608&r.flags&&!(8388608&t.flags)?r.objectType.flags:r.flags)&&r!==wt&&r!==Lt){const e=getBaseConstraintOfType(r);let n;e&&(isTypeAssignableTo(a,e)||(n=isTypeAssignableTo(t,e)))?reportError(Ot._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2,n?i:s,o,typeToString(e)):(d=void 0,reportError(Ot._0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1,o,s))}if(e)e===Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1&&L&&getExactOptionalUnassignableProperties(t,r).length&&(e=Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties);else if(n===Fi)e=Ot.Type_0_is_not_comparable_to_type_1;else if(i===o)e=Ot.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated;else if(L&&getExactOptionalUnassignableProperties(t,r).length)e=Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;else{if(128&t.flags&&1048576&r.flags){const e=function getSuggestedTypeForNonexistentStringLiteralType(e,t){const n=t.types.filter(e=>!!(128&e.flags));return getSpellingSuggestion(e.value,n,e=>e.value)}(t,r);if(e)return void reportError(Ot.Type_0_is_not_assignable_to_type_1_Did_you_mean_2,s,o,typeToString(e))}e=Ot.Type_0_is_not_assignable_to_type_1}reportError(e,s,o)}function tryElaborateArrayLikeErrors(e,t,n){return isTupleType(e)?e.target.readonly&&isMutableArrayOrTuple(t)?(n&&reportError(Ot.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,typeToString(e),typeToString(t)),!1):isArrayOrTupleType(t):isReadonlyArrayType(e)&&isMutableArrayOrTuple(t)?(n&&reportError(Ot.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1,typeToString(e),typeToString(t)),!1):!isTupleType(t)||isArrayType(e)}function isRelatedToWorker(e,t,n){return isRelatedTo(e,t,3,n)}function isRelatedTo(e,t,r=3,o=!1,a,s=0){if(e===t)return-1;if(524288&e.flags&&402784252&t.flags)return n===Fi&&!(131072&t.flags)&&isSimpleTypeRelatedTo(t,e,n)||isSimpleTypeRelatedTo(e,t,n,o?reportError:void 0)?-1:(o&&reportErrorResults(e,t,e,t,a),0);const c=getNormalizedType(e,!1);let l=getNormalizedType(t,!0);if(c===l)return-1;if(n===Pi)return c.flags!==l.flags?0:67358815&c.flags?-1:(traceUnionsOrIntersectionsTooLarge(c,l),recursiveTypeRelatedTo(c,l,!1,0,r));if(262144&c.flags&&getConstraintOfType(c)===l)return-1;if(470302716&c.flags&&1048576&l.flags){const e=l.types,t=2===e.length&&98304&e[0].flags?e[1]:3===e.length&&98304&e[0].flags&&98304&e[1].flags?e[2]:void 0;if(t&&!(98304&t.flags)&&(l=getNormalizedType(t,!0),c===l))return-1}if(n===Fi&&!(131072&l.flags)&&isSimpleTypeRelatedTo(l,c,n)||isSimpleTypeRelatedTo(c,l,n,o?reportError:void 0))return-1;if(469499904&c.flags||469499904&l.flags){if(!(2&s)&&isObjectLiteralType2(c)&&8192&getObjectFlags(c)&&function hasExcessProperties(e,t,r){var o;if(!isExcessPropertyCheckTarget(t)||!A&&4096&getObjectFlags(t))return!1;const a=!!(2048&getObjectFlags(e));if((n===ki||n===Fi)&&(isTypeSubsetOf(Jt,t)||!a&&isEmptyObjectType(t)))return!1;let s,c=t;1048576&t.flags&&(c=findMatchingDiscriminantType(e,t,isRelatedTo)||function filterPrimitivesIfContainsNonPrimitive(e){if(maybeTypeOfKind(e,67108864)){const t=filterType(e,e=>!(402784252&e.flags));if(!(131072&t.flags))return t}return e}(t),s=1048576&c.flags?c.types:[c]);for(const t of getPropertiesOfType(e))if(shouldCheckAsExcessProperty(t,e.symbol)&&!isIgnoredJsxProperty(e,t)){if(!isKnownProperty(c,t.escapedName,a)){if(r){const n=filterType(c,isExcessPropertyCheckTarget);if(!i)return h.fail();if(isJsxAttributes(i)||isJsxOpeningLikeElement(i)||isJsxOpeningLikeElement(i.parent)){t.valueDeclaration&&isJsxAttribute(t.valueDeclaration)&&getSourceFileOfNode(i)===getSourceFileOfNode(t.valueDeclaration.name)&&(i=t.valueDeclaration.name);const e=symbolToString(t),r=getSuggestedSymbolForNonexistentJSXAttribute(e,n),o=r?symbolToString(r):void 0;o?reportError(Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_2,e,typeToString(n),o):reportError(Ot.Property_0_does_not_exist_on_type_1,e,typeToString(n))}else{const r=(null==(o=e.symbol)?void 0:o.declarations)&&firstOrUndefined(e.symbol.declarations);let a;if(t.valueDeclaration&&findAncestor(t.valueDeclaration,e=>e===r)&&getSourceFileOfNode(r)===getSourceFileOfNode(i)){const e=t.valueDeclaration;h.assertNode(e,isObjectLiteralElementLike);const r=e.name;i=r,isIdentifier(r)&&(a=getSuggestionForNonexistentProperty(r,n))}void 0!==a?reportParentSkippedError(Ot.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,symbolToString(t),typeToString(n),a):reportParentSkippedError(Ot.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,symbolToString(t),typeToString(n))}}return!0}if(s&&!isRelatedTo(getTypeOfSymbol(t),getTypeOfPropertyInTypes(s,t.escapedName),3,r))return r&&reportIncompatibleError(Ot.Types_of_property_0_are_incompatible,symbolToString(t)),!0}return!1}(c,l,o))return o&&reportRelationError(a,c,t.aliasSymbol?t:l),0;const d=(n!==Fi||isUnitType(c))&&!(2&s)&&405405692&c.flags&&c!==Jt&&2621440&l.flags&&isWeakType(l)&&(getPropertiesOfType(c).length>0||typeHasCallOrConstructSignatures(c)),p=!!(2048&getObjectFlags(c));if(d&&!function hasCommonProperties(e,t,n){for(const r of getPropertiesOfType(e))if(isKnownProperty(t,r.escapedName,n))return!0;return!1}(c,l,p)){if(o){const n=typeToString(e.aliasSymbol?e:c),r=typeToString(t.aliasSymbol?t:l),i=getSignaturesOfType(c,0),o=getSignaturesOfType(c,1);i.length>0&&isRelatedTo(getReturnTypeOfSignature(i[0]),l,1,!1)||o.length>0&&isRelatedTo(getReturnTypeOfSignature(o[0]),l,1,!1)?reportError(Ot.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,n,r):reportError(Ot.Type_0_has_no_properties_in_common_with_type_1,n,r)}return 0}traceUnionsOrIntersectionsTooLarge(c,l);const u=1048576&c.flags&&c.types.length<4&&!(1048576&l.flags)||1048576&l.flags&&l.types.length<4&&!(469499904&c.flags)?unionOrIntersectionRelatedTo(c,l,o,s):recursiveTypeRelatedTo(c,l,o,s,r);if(u)return u}return o&&reportErrorResults(e,t,c,l,a),0}function reportErrorResults(e,t,n,r,o){var a,s;const c=!!getSingleBaseForNonAugmentingSubtype(e),l=!!getSingleBaseForNonAugmentingSubtype(t);n=e.aliasSymbol||c?e:n,r=t.aliasSymbol||l?t:r;let p=E>0;if(p&&E--,524288&n.flags&&524288&r.flags){const e=d;tryElaborateArrayLikeErrors(n,r,!0),d!==e&&(p=!!d)}if(524288&n.flags&&402784252&r.flags)!function tryElaborateErrorsForPrimitivesAndObjects(e,t){const n=symbolValueDeclarationIsContextSensitive(e.symbol)?typeToString(e,e.symbol.valueDeclaration):typeToString(e),r=symbolValueDeclarationIsContextSensitive(t.symbol)?typeToString(t,t.symbol.valueDeclaration):typeToString(t);(Ht===e&&ze===t||Kt===e&&Ve===t||Gt===e&&Ye===t||getGlobalESSymbolType()===e&&Ze===t)&&reportError(Ot._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible,r,n)}(n,r);else if(n.symbol&&524288&n.flags&&Jt===n)reportError(Ot.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(2048&getObjectFlags(n)&&2097152&r.flags){const e=r.types,t=getJsxType(qo.IntrinsicAttributes,i),n=getJsxType(qo.IntrinsicClassAttributes,i);if(!isErrorType(t)&&!isErrorType(n)&&(contains(e,t)||contains(e,n)))return}else d=elaborateNeverIntersection(d,t);if(!o&&p){const e=captureErrorCalculationState();let t;return reportRelationError(o,n,r),d&&d!==e.errorInfo&&(t={code:d.code,messageText:d.messageText}),resetErrorInfo(e),t&&d&&(d.canonicalHead=t),void(g=[n,r])}if(reportRelationError(o,n,r),262144&n.flags&&(null==(s=null==(a=n.symbol)?void 0:a.declarations)?void 0:s[0])&&!getConstraintOfType(n)){const e=cloneTypeParameter(n);if(e.constraint=instantiateType(r,makeUnaryTypeMapper(n,e)),hasNonCircularBaseConstraint(e)){const e=typeToString(r,n.symbol.declarations[0]);associateRelatedInfo(createDiagnosticForNode(n.symbol.declarations[0],Ot.This_type_parameter_might_need_an_extends_0_constraint,e))}}}function traceUnionsOrIntersectionsTooLarge(e,t){if(J&&3145728&e.flags&&3145728&t.flags){const n=e,r=t;if(n.objectFlags&r.objectFlags&32768)return;const o=n.types.length,a=r.types.length;o*a>1e6&&J.instant(J.Phase.CheckTypes,"traceUnionsOrIntersectionsTooLarge_DepthLimit",{sourceId:e.id,sourceSize:o,targetId:t.id,targetSize:a,pos:null==i?void 0:i.pos,end:null==i?void 0:i.end})}}function getTypeOfPropertyInTypes(e,t){return getUnionType(reduceLeft(e,(e,n)=>{var r;const i=3145728&(n=getApparentType(n)).flags?getPropertyOfUnionOrIntersectionType(n,t):getPropertyOfObjectType(n,t);return append(e,i&&getTypeOfSymbol(i)||(null==(r=getApplicableIndexInfoForName(n,t))?void 0:r.type)||Me)},void 0)||l)}function shouldCheckAsExcessProperty(e,t){return e.valueDeclaration&&t.valueDeclaration&&e.valueDeclaration.parent===t.valueDeclaration}function unionOrIntersectionRelatedTo(e,t,r,i){if(1048576&e.flags){if(1048576&t.flags){const n=e.origin;if(n&&2097152&n.flags&&t.aliasSymbol&&contains(n.types,t))return-1;const r=t.origin;if(r&&1048576&r.flags&&e.aliasSymbol&&contains(r.types,e))return-1}return n===Fi?someTypeRelatedToType(e,t,r&&!(402784252&e.flags),i):function eachTypeRelatedToType(e,t,n,r){let i=-1;const o=e.types,a=function getUndefinedStrippedTargetIfNeeded(e,t){if(1048576&e.flags&&1048576&t.flags&&!(32768&e.types[0].flags)&&32768&t.types[0].flags)return extractTypesOfKind(t,-32769);return t}(e,t);for(let e=0;e=a.types.length&&o.length%a.types.length===0){const t=isRelatedTo(s,a.types[e%a.types.length],3,!1,void 0,r);if(t){i&=t;continue}}const c=isRelatedTo(s,t,1,n,void 0,r);if(!c)return 0;i&=c}return i}(e,t,r&&!(402784252&e.flags),i)}if(1048576&t.flags)return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(e),t,r&&!(402784252&e.flags)&&!(402784252&t.flags),i);if(2097152&t.flags)return function typeRelatedToEachType(e,t,n,r){let i=-1;const o=t.types;for(const t of o){const o=isRelatedTo(e,t,2,n,void 0,r);if(!o)return 0;i&=o}return i}(e,t,r,2);if(n===Fi&&402784252&t.flags){const n=sameMap(e.types,e=>465829888&e.flags?getBaseConstraintOfType(e)||Le:e);if(n!==e.types){if(131072&(e=getIntersectionType(n)).flags)return 0;if(!(2097152&e.flags))return isRelatedTo(e,t,1,!1)||isRelatedTo(t,e,1,!1)}}return someTypeRelatedToType(e,t,!1,1)}function eachTypeRelatedToSomeType(e,t){let n=-1;const r=e.types;for(const e of r){const r=typeRelatedToSomeType(e,t,!1,0);if(!r)return 0;n&=r}return n}function typeRelatedToSomeType(e,t,r,i){const o=t.types;if(1048576&t.flags){if(containsType(o,e))return-1;if(n!==Fi&&32768&getObjectFlags(t)&&!(1024&e.flags)&&(2688&e.flags||(n===Ei||n===Ni)&&256&e.flags)){const t=e===e.regularType?e.freshType:e.regularType,n=128&e.flags?ze:256&e.flags?Ve:2048&e.flags?qe:void 0;return n&&containsType(o,n)||t&&containsType(o,t)?-1:0}const r=getMatchingUnionConstituentForType(t,e);if(r){const t=isRelatedTo(e,r,2,!1,void 0,i);if(t)return t}}for(const t of o){const n=isRelatedTo(e,t,2,!1,void 0,i);if(n)return n}if(r){const n=getBestMatchingType(e,t,isRelatedTo);n&&isRelatedTo(e,n,2,!0,void 0,i)}return 0}function someTypeRelatedToType(e,t,n,r){const i=e.types;if(1048576&e.flags&&containsType(i,t))return-1;const o=i.length;for(let e=0;e(P|=e?16:8,S(e))),3===b?(null==(a=J)||a.instant(J.Phase.CheckTypes,"recursiveTypeRelatedTo_DepthLimit",{sourceId:e.id,sourceIdStack:_.map(e=>e.id),targetId:t.id,targetIdStack:f.map(e=>e.id),depth:x,targetDepth:v}),N=3):(null==(s=J)||s.push(J.Phase.CheckTypes,"structuredTypeRelatedTo",{sourceId:e.id,targetId:t.id}),N=function structuredTypeRelatedTo(e,t,r,i){const o=captureErrorCalculationState();let a=function structuredTypeRelatedToWorker(e,t,r,i,o){let a,s,c=!1,p=e.flags;const u=t.flags;if(n===Pi){if(3145728&p){let n=eachTypeRelatedToSomeType(e,t);return n&&(n&=eachTypeRelatedToSomeType(t,e)),n}if(4194304&p)return isRelatedTo(e.type,t.type,3,!1);if(8388608&p&&(a=isRelatedTo(e.objectType,t.objectType,3,!1))&&(a&=isRelatedTo(e.indexType,t.indexType,3,!1)))return a;if(16777216&p&&e.root.isDistributive===t.root.isDistributive&&(a=isRelatedTo(e.checkType,t.checkType,3,!1))&&(a&=isRelatedTo(e.extendsType,t.extendsType,3,!1))&&(a&=isRelatedTo(getTrueTypeFromConditionalType(e),getTrueTypeFromConditionalType(t),3,!1))&&(a&=isRelatedTo(getFalseTypeFromConditionalType(e),getFalseTypeFromConditionalType(t),3,!1)))return a;if(33554432&p&&(a=isRelatedTo(e.baseType,t.baseType,3,!1))&&(a&=isRelatedTo(e.constraint,t.constraint,3,!1)))return a;if(134217728&p&&arrayIsEqualTo(e.texts,t.texts)){const n=e.types,r=t.types;a=-1;for(let e=0;e!!(262144&e.flags));){if(a=isRelatedTo(n,t,1,!1))return a;n=getConstraintOfTypeParameter(n)}return 0}}else if(4194304&u){const n=t.type;if(4194304&p&&(a=isRelatedTo(n,e.type,3,!1)))return a;if(isTupleType(n)){if(a=isRelatedTo(e,getKnownKeysOfTupleType(n),2,r))return a}else{const i=getSimplifiedTypeOrConstraint(n);if(i){if(-1===isRelatedTo(e,getIndexType(i,4|t.indexFlags),2,r))return-1}else if(isGenericMappedType(n)){const t=getNameTypeFromMappedType(n),i=getConstraintTypeFromMappedType(n);let o;if(t&&isMappedTypeWithKeyofConstraintDeclaration(n)){o=getUnionType([getApparentMappedTypeKeys(t,n),t])}else o=t||i;if(-1===isRelatedTo(e,o,2,r))return-1}}}else if(8388608&u){if(8388608&p){if((a=isRelatedTo(e.objectType,t.objectType,3,r))&&(a&=isRelatedTo(e.indexType,t.indexType,3,r)),a)return a;r&&(s=d)}if(n===ki||n===Fi){const n=t.objectType,c=t.indexType,l=getBaseConstraintOfType(n)||n,p=getBaseConstraintOfType(c)||c;if(!isGenericObjectType(l)&&!isGenericIndexType(p)){const t=getIndexedAccessTypeOrUndefined(l,p,4|(l!==n?2:0));if(t){if(r&&s&&resetErrorInfo(o),a=isRelatedTo(e,t,2,r,void 0,i))return a;r&&s&&d&&(d=countMessageChainBreadth([s])<=countMessageChainBreadth([d])?s:d)}}}r&&(s=void 0)}else if(isGenericMappedType(t)&&n!==Pi){const n=!!t.declaration.nameType,i=getTemplateTypeFromMappedType(t),c=getMappedTypeModifiers(t);if(!(8&c)){if(!n&&8388608&i.flags&&i.objectType===e&&i.indexType===getTypeParameterFromMappedType(t))return-1;if(!isGenericMappedType(e)){const i=n?getNameTypeFromMappedType(t):getConstraintTypeFromMappedType(t),l=getIndexType(e,2),p=4&c,u=p?intersectTypes(i,l):void 0;if(p?!(131072&u.flags):isRelatedTo(i,l,3)){const o=getTemplateTypeFromMappedType(t),s=getTypeParameterFromMappedType(t),c=extractTypesOfKind(o,-98305);if(!n&&8388608&c.flags&&c.indexType===s){if(a=isRelatedTo(e,c.objectType,2,r))return a}else{const t=getIndexedAccessType(e,n?u||i:u?getIntersectionType([u,s]):s);if(a=isRelatedTo(t,o,3,r))return a}}s=d,resetErrorInfo(o)}}}else if(16777216&u){if(isDeeplyNestedType(t,f,v,10))return 3;const n=t;if(!(n.root.inferTypeParameters||function isDistributionDependent(e){return e.isDistributive&&(isTypeParameterPossiblyReferenced(e.checkType,e.node.trueType)||isTypeParameterPossiblyReferenced(e.checkType,e.node.falseType))}(n.root)||16777216&e.flags&&e.root===n.root)){const t=!isTypeAssignableTo(getPermissiveInstantiation(n.checkType),getPermissiveInstantiation(n.extendsType)),r=!t&&isTypeAssignableTo(getRestrictiveInstantiation(n.checkType),getRestrictiveInstantiation(n.extendsType));if((a=t?-1:isRelatedTo(e,getTrueTypeFromConditionalType(n),2,!1,void 0,i))&&(a&=r?-1:isRelatedTo(e,getFalseTypeFromConditionalType(n),2,!1,void 0,i),a))return a}}else if(134217728&u){if(134217728&p){if(n===Fi)return function templateLiteralTypesDefinitelyUnrelated(e,t){const n=e.texts[0],r=t.texts[0],i=e.texts[e.texts.length-1],o=t.texts[t.texts.length-1],a=Math.min(n.length,r.length),s=Math.min(i.length,o.length);return n.slice(0,a)!==r.slice(0,a)||i.slice(i.length-s)!==o.slice(o.length-s)}(e,t)?0:-1;instantiateType(e,gt)}if(isTypeMatchedByTemplateLiteralType(e,t))return-1}else if(268435456&t.flags&&!(268435456&e.flags)&&isMemberOfStringMapping(e,t))return-1;if(8650752&p){if(!(8388608&p&&8388608&u)){const n=getConstraintOfType(e)||Le;if(a=isRelatedTo(n,t,1,!1,void 0,i))return a;if(a=isRelatedTo(getTypeWithThisArgument(n,e),t,1,r&&n!==Le&&!(u&p&262144),void 0,i))return a;if(isMappedTypeGenericIndexedAccess(e)){const n=getConstraintOfType(e.indexType);if(n&&(a=isRelatedTo(getIndexedAccessType(e.objectType,n),t,1,r)))return a}}}else if(4194304&p){const n=shouldDeferIndexType(e.type,e.indexFlags)&&32&getObjectFlags(e.type);if(a=isRelatedTo(st,t,1,r&&!n))return a;if(n){const n=e.type,i=getNameTypeFromMappedType(n),o=i&&isMappedTypeWithKeyofConstraintDeclaration(n)?getApparentMappedTypeKeys(i,n):i||getConstraintTypeFromMappedType(n);if(a=isRelatedTo(o,t,1,r))return a}}else if(134217728&p&&!(524288&u)){if(!(134217728&u)){const n=getBaseConstraintOfType(e);if(n&&n!==e&&(a=isRelatedTo(n,t,1,r)))return a}}else if(268435456&p)if(268435456&u){if(e.symbol!==t.symbol)return 0;if(a=isRelatedTo(e.type,t.type,3,r))return a}else{const n=getBaseConstraintOfType(e);if(n&&(a=isRelatedTo(n,t,1,r)))return a}else if(16777216&p){if(isDeeplyNestedType(e,_,x,10))return 3;if(16777216&u){const n=e.root.inferTypeParameters;let i,o=e.extendsType;if(n){const e=createInferenceContext(n,void 0,0,isRelatedToWorker);inferTypes(e.inferences,t.extendsType,o,1536),o=instantiateType(o,e.mapper),i=e.mapper}if(isTypeIdenticalTo(o,t.extendsType)&&(isRelatedTo(e.checkType,t.checkType,3)||isRelatedTo(t.checkType,e.checkType,3))&&((a=isRelatedTo(instantiateType(getTrueTypeFromConditionalType(e),i),getTrueTypeFromConditionalType(t),3,r))&&(a&=isRelatedTo(getFalseTypeFromConditionalType(e),getFalseTypeFromConditionalType(t),3,r)),a))return a}const n=getDefaultConstraintOfConditionalType(e);if(n&&(a=isRelatedTo(n,t,1,r)))return a;const i=16777216&u||!hasNonCircularBaseConstraint(e)?void 0:getConstraintOfDistributiveConditionalType(e);if(i&&(resetErrorInfo(o),a=isRelatedTo(i,t,1,r)))return a}else{if(n!==Ei&&n!==Ni&&function isPartialMappedType(e){return!!(32&getObjectFlags(e)&&4&getMappedTypeModifiers(e))}(t)&&isEmptyObjectType(e))return-1;if(isGenericMappedType(t))return isGenericMappedType(e)&&(a=function mappedTypeRelatedTo(e,t,r){const i=n===Fi||(n===Pi?getMappedTypeModifiers(e)===getMappedTypeModifiers(t):getCombinedMappedTypeOptionality(e)<=getCombinedMappedTypeOptionality(t));if(i){let n;if(n=isRelatedTo(getConstraintTypeFromMappedType(t),instantiateType(getConstraintTypeFromMappedType(e),getCombinedMappedTypeOptionality(e)<0?yt:gt),3,r)){const i=createTypeMapper([getTypeParameterFromMappedType(e)],[getTypeParameterFromMappedType(t)]);if(instantiateType(getNameTypeFromMappedType(e),i)===instantiateType(getNameTypeFromMappedType(t),i))return n&isRelatedTo(instantiateType(getTemplateTypeFromMappedType(e),i),getTemplateTypeFromMappedType(t),3,r)}}return 0}(e,t,r))?a:0;const m=!!(402784252&p);if(n!==Pi)p=(e=getApparentType(e)).flags;else if(isGenericMappedType(e))return 0;if(4&getObjectFlags(e)&&4&getObjectFlags(t)&&e.target===t.target&&!isTupleType(e)&&!isMarkerType(e)&&!isMarkerType(t)){if(isEmptyArrayLiteralType(e))return-1;const n=getVariances(e.target);if(n===l)return 1;const r=relateVariances(getTypeArguments(e),getTypeArguments(t),n,i);if(void 0!==r)return r}else{if(isReadonlyArrayType(t)?everyType(e,isArrayOrTupleType):isArrayType(t)&&everyType(e,e=>isTupleType(e)&&!e.target.readonly))return n!==Pi?isRelatedTo(getIndexTypeOfType(e,Ve)||ke,getIndexTypeOfType(t,Ve)||ke,3,r):0;if(isGenericTupleType(e)&&isTupleType(t)&&!isGenericTupleType(t)){const n=getBaseConstraintOrType(e);if(n!==e)return isRelatedTo(n,t,1,r)}else if((n===Ei||n===Ni)&&isEmptyObjectType(t)&&8192&getObjectFlags(t)&&!isEmptyObjectType(e))return 0}if(2621440&p&&524288&u){const n=r&&d===o.errorInfo&&!m;if(a=propertiesRelatedTo(e,t,n,void 0,!1,i),a&&(a&=signaturesRelatedTo(e,t,0,n,i),a&&(a&=signaturesRelatedTo(e,t,1,n,i),a&&(a&=indexSignaturesRelatedTo(e,t,m,n,i)))),c&&a)d=s||d||o.errorInfo;else if(a)return a}if(2621440&p&&1048576&u){const r=extractTypesOfKind(t,36175872);if(1048576&r.flags){const t=function typeRelatedToDiscriminatedType(e,t){var r;const i=getPropertiesOfType(e),o=findDiscriminantProperties(i,t);if(!o)return 0;let a=1;for(const n of o)if(a*=countTypes(getNonMissingTypeOfSymbol(n)),a>25)return null==(r=J)||r.instant(J.Phase.CheckTypes,"typeRelatedToDiscriminatedType_DepthLimit",{sourceId:e.id,targetId:t.id,numCombinations:a}),0;const s=new Array(o.length),c=new Set;for(let e=0;er[i],!1,0,k||n===Fi))continue e}pushIfUnique(d,a,equateValues),i=!0}if(!i)return 0}let p=-1;for(const t of d)if(p&=propertiesRelatedTo(e,t,!1,c,!1,0),p&&(p&=signaturesRelatedTo(e,t,0,!1,0),p&&(p&=signaturesRelatedTo(e,t,1,!1,0),!p||isTupleType(e)&&isTupleType(t)||(p&=indexSignaturesRelatedTo(e,t,!1,!1,0)))),!p)return p;return p}(e,r);if(t)return t}}}return 0;function countMessageChainBreadth(e){return e?reduceLeft(e,(e,t)=>e+1+countMessageChainBreadth(t.next),0):0}function relateVariances(e,t,i,p){if(a=function typeArgumentsRelatedTo(e=l,t=l,r=l,i,o){if(e.length!==t.length&&n===Pi)return 0;const a=e.length<=t.length?e.length:t.length;let s=-1;for(let c=0;c!!(24&e)))return s=void 0,void resetErrorInfo(o);const u=t&&function hasCovariantVoidArgument(e,t){for(let n=0;n!(7&e))))return 0;s=d,resetErrorInfo(o)}}}(e,t,r,i,o);if(n!==Pi){if(!a&&(2097152&e.flags||262144&e.flags&&1048576&t.flags)){const n=function getEffectiveConstraintOfIntersection(e,t){let n,r=!1;for(const i of e)if(465829888&i.flags){let e=getConstraintOfType(i);for(;e&&21233664&e.flags;)e=getConstraintOfType(e);e&&(n=append(n,e),t&&(n=append(n,i)))}else(469892092&i.flags||isEmptyAnonymousObjectType(i))&&(r=!0);if(n&&(t||r)){if(r)for(const t of e)(469892092&t.flags||isEmptyAnonymousObjectType(t))&&(n=append(n,t));return getNormalizedType(getIntersectionType(n,2),!1)}}(2097152&e.flags?e.types:[e],!!(1048576&t.flags));n&&everyType(n,t=>t!==e)&&(a=isRelatedTo(n,t,1,!1,void 0,i))}a&&!(2&i)&&2097152&t.flags&&!isGenericObjectType(t)&&2621440&e.flags?(a&=propertiesRelatedTo(e,t,r,void 0,!1,0),a&&isObjectLiteralType2(e)&&8192&getObjectFlags(e)&&(a&=indexSignaturesRelatedTo(e,t,!1,r,0))):a&&isNonGenericObjectType(t)&&!isArrayOrTupleType(t)&&2097152&e.flags&&3670016&getApparentType(e).flags&&!some(e.types,e=>e===t||!!(262144&getObjectFlags(e)))&&(a&=propertiesRelatedTo(e,t,r,void 0,!0,i))}a&&resetErrorInfo(o);return a}(e,t,r,i),null==(c=J)||c.pop()),Xe&&(Xe=S),1&o&&x--,2&o&&v--,b=h,N?(-1===N||0===x&&0===v)&&resetMaybeStack(-1===N||3===N):(n.set(p,2|P),F--,resetMaybeStack(!1)),N;function resetMaybeStack(e){for(let t=y;t{r.push(instantiateType(e,appendTypeMapping(t.mapper,getTypeParameterFromMappedType(t),n)))}),getUnionType(r)}function excludeProperties(e,t){if(!t||0===e.length)return e;let n;for(let r=0;r!!(4&getDeclarationModifierFlagsFromSymbol(t))&&!function isPropertyInClassDerivedFrom(e,t){return forEachProperty2(e,e=>{const n=getDeclaringClass(e);return!!n&&hasBaseType(n,t)})}(e,getDeclaringClass(t)))}(r,i))return a&&reportError(Ot.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2,symbolToString(i),typeToString(getDeclaringClass(r)||e),typeToString(getDeclaringClass(i)||t)),0}else if(4&l)return a&&reportError(Ot.Property_0_is_protected_in_type_1_but_public_in_type_2,symbolToString(i),typeToString(e),typeToString(t)),0;if(n===Ni&&isReadonlySymbol(r)&&!isReadonlySymbol(i))return 0;const p=function isPropertySymbolTypeRelated(e,t,r,i,o){const a=k&&!!(48&getCheckFlags(t)),s=addOptionality(getNonMissingTypeOfSymbol(t),!1,a);return s.flags&(n===Ni?1:3)?-1:isRelatedTo(r(e),s,3,i,void 0,o)}(r,i,o,a,s);return p?!c&&16777216&r.flags&&106500&i.flags&&!(16777216&i.flags)?(a&&reportError(Ot.Property_0_is_optional_in_type_1_but_required_in_type_2,symbolToString(i),typeToString(e),typeToString(t)),0):p:(a&&reportIncompatibleError(Ot.Types_of_property_0_are_incompatible,symbolToString(i)),0)}function propertiesRelatedTo(e,t,r,i,a,s){if(n===Pi)return function propertiesIdenticalTo(e,t,n){if(!(524288&e.flags&&524288&t.flags))return 0;const r=excludeProperties(getPropertiesOfObjectType(e),n),i=excludeProperties(getPropertiesOfObjectType(t),n);if(r.length!==i.length)return 0;let o=-1;for(const e of r){const n=getPropertyOfObjectType(t,e.escapedName);if(!n)return 0;const r=compareProperties2(e,n,isRelatedTo);if(!r)return 0;o&=r}return o}(e,t,i);let c=-1;if(isTupleType(t)){if(isArrayOrTupleType(e)){if(!t.target.readonly&&(isReadonlyArrayType(e)||isTupleType(e)&&e.target.readonly))return 0;const n=getTypeReferenceArity(e),o=getTypeReferenceArity(t),a=isTupleType(e)?4&e.target.combinedFlags:4,l=!!(12&t.target.combinedFlags),d=isTupleType(e)?e.target.minLength:0,p=t.target.minLength;if(!a&&n!(e&t));return n>=0?n:e.elementFlags.length}(t.target,11),f=getEndElementCount(t.target,11);let g=!!i;for(let a=0;a=_?o-1-Math.min(p,f):a,h=t.target.elementFlags[y];if(8&h&&!(8&d))return r&&reportError(Ot.Source_provides_no_match_for_variadic_element_at_position_0_in_target,y),0;if(8&d&&!(12&h))return r&&reportError(Ot.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,a,y),0;if(1&h&&!(1&d))return r&&reportError(Ot.Source_provides_no_match_for_required_element_at_position_0_in_target,y),0;if(g&&((12&d||12&h)&&(g=!1),g&&(null==i?void 0:i.has(""+a))))continue;const T=removeMissingType(u[a],!!(d&h&2)),S=m[y],x=isRelatedTo(T,8&d&&4&h?createArrayType(S):removeMissingType(S,!!(2&h)),3,r,void 0,s);if(!x)return r&&(o>1||n>1)&&(l&&a>=_&&p>=f&&_!==n-f-1?reportIncompatibleError(Ot.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,_,n-f-1,y):reportIncompatibleError(Ot.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,a,y)),0;c&=x}return c}if(12&t.target.combinedFlags)return 0}const l=!(n!==Ei&&n!==Ni||isObjectLiteralType2(e)||isEmptyArrayLiteralType(e)||isTupleType(e)),p=getUnmatchedProperty(e,t,l,!1);if(p)return r&&function shouldReportUnmatchedPropertyError(e,t){const n=getSignaturesOfStructuredType(e,0),r=getSignaturesOfStructuredType(e,1),i=getPropertiesOfObjectType(e);if((n.length||r.length)&&!i.length)return!!(getSignaturesOfType(t,0).length&&n.length||getSignaturesOfType(t,1).length&&r.length);return!0}(e,t)&&function reportUnmatchedProperty(e,t,n,r){let i=!1;if(n.valueDeclaration&&isNamedDeclaration(n.valueDeclaration)&&isPrivateIdentifier(n.valueDeclaration.name)&&e.symbol&&32&e.symbol.flags){const r=n.valueDeclaration.name.escapedText,i=getSymbolNameForPrivateIdentifier(e.symbol,r);if(i&&getPropertyOfType(e,i)){const n=Wr.getDeclarationName(e.symbol.valueDeclaration),i=Wr.getDeclarationName(t.symbol.valueDeclaration);return void reportError(Ot.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2,diagnosticName(r),diagnosticName(""===n.escapedText?$o:n),diagnosticName(""===i.escapedText?$o:i))}}const a=arrayFrom(getUnmatchedProperties(e,t,r,!1));if((!o||o.code!==Ot.Class_0_incorrectly_implements_interface_1.code&&o.code!==Ot.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code)&&(i=!0),1===a.length){const r=symbolToString(n,void 0,0,20);reportError(Ot.Property_0_is_missing_in_type_1_but_required_in_type_2,r,...getTypeNamesForErrorDisplay(e,t)),length(n.declarations)&&associateRelatedInfo(createDiagnosticForNode(n.declarations[0],Ot._0_is_declared_here,r)),i&&d&&E++}else tryElaborateArrayLikeErrors(e,t,!1)&&(a.length>5?reportError(Ot.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,typeToString(e),typeToString(t),map(a.slice(0,4),e=>symbolToString(e)).join(", "),a.length-4):reportError(Ot.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,typeToString(e),typeToString(t),map(a,e=>symbolToString(e)).join(", ")),i&&d&&E++)}(e,t,p,l),0;if(isObjectLiteralType2(t))for(const n of excludeProperties(getPropertiesOfType(e),i))if(!getPropertyOfObjectType(t,n.escapedName)){if(!(32768&getTypeOfSymbol(n).flags))return r&&reportError(Ot.Property_0_does_not_exist_on_type_1,symbolToString(n),typeToString(t)),0}const u=getPropertiesOfType(t),m=isTupleType(e)&&isTupleType(t);for(const o of excludeProperties(u,i)){const i=o.escapedName;if(!(4194304&o.flags)&&(!m||isNumericLiteralName(i)||"length"===i)&&(!a||16777216&o.flags)){const a=getPropertyOfType(e,i);if(a&&a!==o){const i=propertyRelatedTo(e,t,a,o,getNonMissingTypeOfSymbol,r,s,n===Fi);if(!i)return 0;c&=i}}}return c}function signaturesRelatedTo(e,t,r,i,o){var a,s;if(n===Pi)return function signaturesIdenticalTo(e,t,n){const r=getSignaturesOfType(e,n),i=getSignaturesOfType(t,n);if(r.length!==i.length)return 0;let o=-1;for(let e=0;esignatureToString(e,void 0,262144,r);return reportError(Ot.Type_0_is_not_assignable_to_type_1,constructSignatureToString(t),constructSignatureToString(c)),reportError(Ot.Types_of_construct_signatures_are_incompatible),u}}else e:for(const t of p){const n=captureErrorCalculationState();let a=i;for(const e of d){const r=signatureRelatedTo(e,t,!0,a,o,m(e,t));if(r){u&=r,resetErrorInfo(n);continue e}a=!1}return a&&reportError(Ot.Type_0_provides_no_match_for_the_signature_1,typeToString(e),signatureToString(t,void 0,void 0,r)),0}return u}function reportIncompatibleCallSignatureReturn(e,t){return 0===e.parameters.length&&0===t.parameters.length?(e,t)=>reportIncompatibleError(Ot.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,typeToString(e),typeToString(t)):(e,t)=>reportIncompatibleError(Ot.Call_signature_return_types_0_and_1_are_incompatible,typeToString(e),typeToString(t))}function reportIncompatibleConstructSignatureReturn(e,t){return 0===e.parameters.length&&0===t.parameters.length?(e,t)=>reportIncompatibleError(Ot.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1,typeToString(e),typeToString(t)):(e,t)=>reportIncompatibleError(Ot.Construct_signature_return_types_0_and_1_are_incompatible,typeToString(e),typeToString(t))}function signatureRelatedTo(e,t,r,i,o,a){const s=n===Ei?16:n===Ni?24:0;return compareSignaturesRelated(r?getErasedSignature(e):e,r?getErasedSignature(t):t,s,i,reportError,a,function isRelatedToWorker2(e,t,n){return isRelatedTo(e,t,3,n,void 0,o)},gt)}function indexInfoRelatedTo(e,t,n,r){const i=isRelatedTo(e.type,t.type,3,n,void 0,r);return!i&&n&&(e.keyType===t.keyType?reportError(Ot._0_index_signatures_are_incompatible,typeToString(e.keyType)):reportError(Ot._0_and_1_index_signatures_are_incompatible,typeToString(e.keyType),typeToString(t.keyType))),i}function indexSignaturesRelatedTo(e,t,r,i,o){if(n===Pi)return function indexSignaturesIdenticalTo(e,t){const n=getIndexInfosOfType(e),r=getIndexInfosOfType(t);if(n.length!==r.length)return 0;for(const t of r){const n=getIndexInfoOfType(e,t.keyType);if(!n||!isRelatedTo(n.type,t.type,3)||n.isReadonly!==t.isReadonly)return 0}return-1}(e,t);const a=getIndexInfosOfType(t),s=some(a,e=>e.keyType===ze);let c=-1;for(const t of a){const a=n!==Ni&&!r&&s&&1&t.type.flags?-1:isGenericMappedType(e)&&s?isRelatedTo(getTemplateTypeFromMappedType(e),t.type,3,i):typeRelatedToIndexInfo(e,t,i,o);if(!a)return 0;c&=a}return c}function typeRelatedToIndexInfo(e,t,r,i){const o=getApplicableIndexInfo(e,t.keyType);return o?indexInfoRelatedTo(o,t,r,i):1&i||!(n!==Ni||8192&getObjectFlags(e))||!isObjectTypeWithInferableIndex(e)?(r&&reportError(Ot.Index_signature_for_type_0_is_missing_in_type_1,typeToString(t.keyType),typeToString(e)),0):function membersRelatedToIndexInfo(e,t,n,r){let i=-1;const o=t.keyType,a=2097152&e.flags?getPropertiesOfUnionOrIntersectionType(e):getPropertiesOfObjectType(e);for(const s of a)if(!isIgnoredJsxProperty(e,s)&&isApplicableIndexType(getLiteralTypeFromProperty(s,8576),o)){const e=getNonMissingTypeOfSymbol(s),a=isRelatedTo(L||32768&e.flags||o===Ve||!(16777216&s.flags)?e:getTypeWithFacts(e,524288),t.type,3,n,void 0,r);if(!a)return n&&reportError(Ot.Property_0_is_incompatible_with_index_signature,symbolToString(s)),0;i&=a}for(const a of getIndexInfosOfType(e))if(isApplicableIndexType(a.keyType,o)){const e=indexInfoRelatedTo(a,t,n,r);if(!e)return 0;i&=e}return i}(e,t,r,i)}}function typeCouldHaveTopLevelSingletonTypes(e){if(16&e.flags)return!1;if(3145728&e.flags)return!!forEach(e.types,typeCouldHaveTopLevelSingletonTypes);if(465829888&e.flags){const t=getConstraintOfType(e);if(t&&t!==e)return typeCouldHaveTopLevelSingletonTypes(t)}return isUnitType(e)||!!(134217728&e.flags)||!!(268435456&e.flags)}function getExactOptionalUnassignableProperties(e,t){return isTupleType(e)&&isTupleType(t)?l:getPropertiesOfType(t).filter(t=>isExactOptionalPropertyMismatch(getTypeOfPropertyOfType(e,t.escapedName),getTypeOfSymbol(t)))}function isExactOptionalPropertyMismatch(e,t){return!!e&&!!t&&maybeTypeOfKind(e,32768)&&!!containsMissingType(t)}function getBestMatchingType(e,t,n=compareTypesAssignable){return findMatchingDiscriminantType(e,t,n)||function findMatchingTypeReferenceOrTypeAliasReference(e,t){const n=getObjectFlags(e);if(20&n&&1048576&t.flags)return find(t.types,t=>{if(524288&t.flags){const r=n&getObjectFlags(t);if(4&r)return e.target===t.target;if(16&r)return!!e.aliasSymbol&&e.aliasSymbol===t.aliasSymbol}return!1})}(e,t)||function findBestTypeForObjectLiteral(e,t){if(128&getObjectFlags(e)&&someType(t,isArrayLikeType))return find(t.types,e=>!isArrayLikeType(e))}(e,t)||function findBestTypeForInvokable(e,t){let n=0;const r=getSignaturesOfType(e,n).length>0||(n=1,getSignaturesOfType(e,n).length>0);if(r)return find(t.types,e=>getSignaturesOfType(e,n).length>0)}(e,t)||function findMostOverlappyType(e,t){let n;if(!(406978556&e.flags)){let r=0;for(const i of t.types)if(!(406978556&i.flags)){const t=getIntersectionType([getIndexType(e),getIndexType(i)]);if(4194304&t.flags)return i;if(isUnitType(t)||1048576&t.flags){const e=1048576&t.flags?countWhere(t.types,isUnitType):1;e>=r&&(n=i,r=e)}}}return n}(e,t)}function discriminateTypeByDiscriminableItems(e,t,n){const r=e.types,i=r.map(e=>402784252&e.flags?0:-1);for(const[e,o]of t){let t=!1;for(let a=0;a!!n(e,s))?t=!0:i[a]=3)}for(let e=0;ei[t]),0):e;return 131072&o.flags?e:o}function isWeakType(e){if(524288&e.flags){const t=resolveStructuredTypeMembers(e);return 0===t.callSignatures.length&&0===t.constructSignatures.length&&0===t.indexInfos.length&&t.properties.length>0&&every(t.properties,e=>!!(16777216&e.flags))}return 33554432&e.flags?isWeakType(e.baseType):!!(2097152&e.flags)&&every(e.types,isWeakType)}function getVariances(e){return e===Vt||e===qt||8&e.objectFlags?T:getVariancesWorker(e.symbol,e.typeParameters)}function getAliasVariances(e){return getVariancesWorker(e,getSymbolLinks(e).typeParameters)}function getVariancesWorker(e,t=l){var n,r;const i=getSymbolLinks(e);if(!i.variances){null==(n=J)||n.push(J.Phase.CheckTypes,"getVariancesWorker",{arity:t.length,id:getTypeId(getDeclaredTypeOfSymbol(e))});const o=Zr,a=Yr;Zr||(Zr=!0,Yr=$r.length),i.variances=l;const s=[];for(const n of t){const t=getTypeParameterModifiers(n);let r=16384&t?8192&t?0:1:8192&t?2:void 0;if(void 0===r){let t=!1,i=!1;const o=Xe;Xe=e=>e?i=!0:t=!0;const a=createMarkerType(e,n,Dt),s=createMarkerType(e,n,It);r=(isTypeAssignableTo(s,a)?1:0)|(isTypeAssignableTo(a,s)?2:0),3===r&&isTypeAssignableTo(createMarkerType(e,n,At),a)&&(r=4),Xe=o,(t||i)&&(t&&(r|=8),i&&(r|=16))}s.push(r)}o||(Zr=!1,Yr=a),i.variances=s,null==(r=J)||r.pop({variances:s.map(h.formatVariance)})}return i.variances}function createMarkerType(e,t,n){const r=makeUnaryTypeMapper(t,n),i=getDeclaredTypeOfSymbol(e);if(isErrorType(i))return i;const o=524288&e.flags?getTypeAliasInstantiation(e,instantiateTypes(getSymbolLinks(e).typeParameters,r)):createTypeReference(i,instantiateTypes(i.typeParameters,r));return xe.add(getTypeId(o)),o}function isMarkerType(e){return xe.has(getTypeId(e))}function getTypeParameterModifiers(e){var t;return 28672&reduceLeft(null==(t=e.symbol)?void 0:t.declarations,(e,t)=>e|getEffectiveModifierFlags(t),0)}function isUnconstrainedTypeParameter(e){return 262144&e.flags&&!getConstraintOfTypeParameter(e)}function isTypeReferenceWithGenericArguments(e){return function isNonDeferredTypeReference(e){return!!(4&getObjectFlags(e))&&!e.node}(e)&&some(getTypeArguments(e),e=>!!(262144&e.flags)||isTypeReferenceWithGenericArguments(e))}function getRelationKey(e,t,n,r,i){if(r===Pi&&e.id>t.id){const n=e;e=t,t=n}const o=n?":"+n:"";return isTypeReferenceWithGenericArguments(e)&&isTypeReferenceWithGenericArguments(t)?function getGenericTypeReferenceRelationKey(e,t,n,r){const i=[];let o="";const a=getTypeReferenceId(e,0),s=getTypeReferenceId(t,0);return`${o}${a},${s}${n}`;function getTypeReferenceId(e,t=0){let n=""+e.target.id;for(const a of getTypeArguments(e)){if(262144&a.flags){if(r||isUnconstrainedTypeParameter(a)){let e=i.indexOf(a);e<0&&(e=i.length,i.push(a)),n+="="+e;continue}o="*"}else if(t<4&&isTypeReferenceWithGenericArguments(a)){n+="<"+getTypeReferenceId(a,t+1)+">";continue}n+="-"+a.id}return n}}(e,t,o,i):`${e.id},${t.id}${o}`}function forEachProperty2(e,t){if(!(6&getCheckFlags(e)))return t(e);for(const n of e.links.containingType.types){const r=getPropertyOfType(n,e.escapedName),i=r&&forEachProperty2(r,t);if(i)return i}}function getDeclaringClass(e){return e.parent&&32&e.parent.flags?getDeclaredTypeOfSymbol(getParentOfSymbol(e)):void 0}function getTypeOfPropertyInBaseClass(e){const t=getDeclaringClass(e),n=t&&getBaseTypes(t)[0];return n&&getTypeOfPropertyOfType(n,e.escapedName)}function isClassDerivedFromDeclaringClasses(e,t,n){return forEachProperty2(t,t=>!!(4&getDeclarationModifierFlagsFromSymbol(t,n))&&!hasBaseType(e,getDeclaringClass(t)))?void 0:e}function isDeeplyNestedType(e,t,n,r=3){if(n>=r){if(96&~getObjectFlags(e)||(e=getMappedTargetWithSymbol(e)),2097152&e.flags)return some(e.types,e=>isDeeplyNestedType(e,t,n,r));const i=getRecursionIdentity(e);let o=0,a=0;for(let e=0;e=a&&(o++,o>=r))return!0;a=n.id}}}return!1}function getMappedTargetWithSymbol(e){let t;for(;!(96&~getObjectFlags(e))&&(t=getModifiersTypeFromMappedType(e))&&(t.symbol||2097152&t.flags&&some(t.types,e=>!!e.symbol));)e=t;return e}function hasMatchingRecursionIdentity(e,t){return 96&~getObjectFlags(e)||(e=getMappedTargetWithSymbol(e)),2097152&e.flags?some(e.types,e=>hasMatchingRecursionIdentity(e,t)):getRecursionIdentity(e)===t}function getRecursionIdentity(e){if(524288&e.flags&&!isObjectOrArrayLiteralType(e)){if(4&getObjectFlags(e)&&e.node)return e.node;if(e.symbol&&!(16&getObjectFlags(e)&&32&e.symbol.flags))return e.symbol;if(isTupleType(e))return e.target}if(262144&e.flags)return e.symbol;if(8388608&e.flags){do{e=e.objectType}while(8388608&e.flags);return e}return 16777216&e.flags?e.root:e}function isPropertyIdenticalTo(e,t){return 0!==compareProperties2(e,t,compareTypesIdentical)}function compareProperties2(e,t,n){if(e===t)return-1;const r=6&getDeclarationModifierFlagsFromSymbol(e);if(r!==(6&getDeclarationModifierFlagsFromSymbol(t)))return 0;if(r){if(getTargetSymbol(e)!==getTargetSymbol(t))return 0}else if((16777216&e.flags)!=(16777216&t.flags))return 0;return isReadonlySymbol(e)!==isReadonlySymbol(t)?0:n(getTypeOfSymbol(e),getTypeOfSymbol(t))}function compareSignaturesIdentical(e,t,n,r,i,o){if(e===t)return-1;if(!function isMatchingSignature(e,t,n){const r=getParameterCount(e),i=getParameterCount(t),o=getMinArgumentCount(e),a=getMinArgumentCount(t),s=hasEffectiveRestParameter(e),c=hasEffectiveRestParameter(t);return r===i&&o===a&&s===c||!!(n&&o<=a)}(e,t,n))return 0;if(length(e.typeParameters)!==length(t.typeParameters))return 0;if(t.typeParameters){const n=createTypeMapper(e.typeParameters,t.typeParameters);for(let r=0;re|(1048576&t.flags?getCombinedTypeFlags(t.types):t.flags),0)}function getCommonSupertype(e){if(1===e.length)return e[0];const t=k?sameMap(e,e=>filterType(e,e=>!(98304&e.flags))):e,n=function literalTypesWithSameBaseType(e){let t;for(const n of e)if(!(131072&n.flags)){const e=getBaseTypeOfLiteralType(n);if(t??(t=e),e===n||e!==t)return!1}return!0}(t)?getUnionType(t):function getSingleCommonSupertype(e){const t=reduceLeft(e,(e,t)=>isTypeStrictSubtypeOf(e,t)?t:e);return every(e,e=>e===t||isTypeStrictSubtypeOf(e,t))?t:reduceLeft(e,(e,t)=>isTypeSubtypeOf(e,t)?t:e)}(t);return t===e?n:getNullableType(n,98304&getCombinedTypeFlags(e))}function isArrayType(e){return!!(4&getObjectFlags(e))&&(e.target===Vt||e.target===qt)}function isReadonlyArrayType(e){return!!(4&getObjectFlags(e))&&e.target===qt}function isArrayOrTupleType(e){return isArrayType(e)||isTupleType(e)}function isMutableArrayOrTuple(e){return isArrayType(e)&&!isReadonlyArrayType(e)||isTupleType(e)&&!e.target.readonly}function getElementTypeOfArrayType(e){return isArrayType(e)?getTypeArguments(e)[0]:void 0}function isArrayLikeType(e){return isArrayType(e)||!(98304&e.flags)&&isTypeAssignableTo(e,Zt)}function isMutableArrayLikeType(e){return isMutableArrayOrTuple(e)||!(98305&e.flags)&&isTypeAssignableTo(e,Xt)}function getSingleBaseForNonAugmentingSubtype(e){if(!(4&getObjectFlags(e)&&3&getObjectFlags(e.target)))return;if(33554432&getObjectFlags(e))return 67108864&getObjectFlags(e)?e.cachedEquivalentBaseType:void 0;e.objectFlags|=33554432;const t=e.target;if(1&getObjectFlags(t)){const e=getBaseTypeNodeOfClass(t);if(e&&80!==e.expression.kind&&212!==e.expression.kind)return}const n=getBaseTypes(t);if(1!==n.length)return;if(getMembersOfSymbol(e.symbol).size)return;let r=length(t.typeParameters)?instantiateType(n[0],createTypeMapper(t.typeParameters,getTypeArguments(e).slice(0,t.typeParameters.length))):n[0];return length(getTypeArguments(e))>length(t.typeParameters)&&(r=getTypeWithThisArgument(r,last(getTypeArguments(e)))),e.objectFlags|=67108864,e.cachedEquivalentBaseType=r}function isEmptyLiteralType(e){return k?e===rt:e===Re}function isEmptyArrayLiteralType(e){const t=getElementTypeOfArrayType(e);return!!t&&isEmptyLiteralType(t)}function isTupleLikeType(e){let t;return isTupleType(e)||!!getPropertyOfType(e,"0")||isArrayLikeType(e)&&!!(t=getTypeOfPropertyOfType(e,"length"))&&everyType(t,e=>!!(256&e.flags))}function isArrayOrTupleLikeType(e){return isArrayLikeType(e)||isTupleLikeType(e)}function isNeitherUnitTypeNorNever(e){return!(240544&e.flags)}function isUnitType(e){return!!(109472&e.flags)}function isUnitLikeType(e){const t=getBaseConstraintOrType(e);return 2097152&t.flags?some(t.types,isUnitType):isUnitType(t)}function isLiteralType(e){return!!(16&e.flags)||(1048576&e.flags?!!(1024&e.flags)||every(e.types,isUnitType):isUnitType(e))}function getBaseTypeOfLiteralType(e){return 1056&e.flags?getBaseTypeOfEnumLikeType(e):402653312&e.flags?ze:256&e.flags?Ve:2048&e.flags?qe:512&e.flags?Ye:1048576&e.flags?function getBaseTypeOfLiteralTypeUnion(e){const t=`B${getTypeId(e)}`;return getCachedType(t)??setCachedType(t,mapType(e,getBaseTypeOfLiteralType))}(e):e}function getBaseTypeOfLiteralTypeForComparison(e){return 402653312&e.flags?ze:288&e.flags?Ve:2048&e.flags?qe:512&e.flags?Ye:1048576&e.flags?mapType(e,getBaseTypeOfLiteralTypeForComparison):e}function getWidenedLiteralType(e){return 1056&e.flags&&isFreshLiteralType(e)?getBaseTypeOfEnumLikeType(e):128&e.flags&&isFreshLiteralType(e)?ze:256&e.flags&&isFreshLiteralType(e)?Ve:2048&e.flags&&isFreshLiteralType(e)?qe:512&e.flags&&isFreshLiteralType(e)?Ye:1048576&e.flags?mapType(e,getWidenedLiteralType):e}function getWidenedUniqueESSymbolType(e){return 8192&e.flags?Ze:1048576&e.flags?mapType(e,getWidenedUniqueESSymbolType):e}function getWidenedLiteralLikeTypeForContextualType(e,t){return isLiteralOfContextualType(e,t)||(e=getWidenedUniqueESSymbolType(getWidenedLiteralType(e))),getRegularTypeOfLiteralType(e)}function getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(e,t,n,r){if(e&&isUnitType(e)){e=getWidenedLiteralLikeTypeForContextualType(e,t?getIterationTypeOfGeneratorFunctionReturnType(n,t,r):void 0)}return e}function isTupleType(e){return!!(4&getObjectFlags(e)&&8&e.target.objectFlags)}function isGenericTupleType(e){return isTupleType(e)&&!!(8&e.target.combinedFlags)}function isSingleElementGenericTupleType(e){return isGenericTupleType(e)&&1===e.target.elementFlags.length}function getRestTypeOfTupleType(e){return getElementTypeOfSliceOfTupleType(e,e.target.fixedLength)}function getTupleElementTypeOutOfStartCount(e,t,n){return mapType(e,e=>{const r=e,i=getRestTypeOfTupleType(r);return i?n&&t>=getTotalFixedElementCount(r.target)?getUnionType([i,n]):i:Me})}function getElementTypeOfSliceOfTupleType(e,t,n=0,r=!1,i=!1){const o=getTypeReferenceArity(e)-n;if(thasTypeFacts(e,4194304))}function getDefinitelyFalsyPartOfType(e){return 4&e.flags?Hr:8&e.flags?Kr:64&e.flags?Gr:e===Ke||e===He||114691&e.flags||128&e.flags&&""===e.value||256&e.flags&&0===e.value||2048&e.flags&&isZeroBigInt(e)?e:tt}function getNullableType(e,t){const n=t&~e.flags&98304;return 0===n?e:getUnionType(32768===n?[e,Me]:65536===n?[e,We]:[e,Me,We])}function getOptionalType(e,t=!1){h.assert(k);const n=t?je:Me;return e===n||1048576&e.flags&&e.types[0]===n?e:getUnionType([e,n])}function getNonNullableType(e){return k?getAdjustedTypeWithFacts(e,2097152):e}function addOptionalTypeMarker(e){return k?getUnionType([e,Je]):e}function removeOptionalTypeMarker(e){return k?removeType(e,Je):e}function propagateOptionalTypeMarker(e,t,n){return n?isOutermostOptionalChain(t)?getOptionalType(e):addOptionalTypeMarker(e):e}function getOptionalExpressionType(e,t){return isExpressionOfOptionalChainRoot(t)?getNonNullableType(e):isOptionalChain(t)?removeOptionalTypeMarker(e):e}function removeMissingType(e,t){return L&&t?removeType(e,Be):e}function containsMissingType(e){return e===Be||!!(1048576&e.flags)&&e.types[0]===Be}function removeMissingOrUndefinedType(e){return L?removeType(e,Be):getTypeWithFacts(e,524288)}function isObjectTypeWithInferableIndex(e){const t=getObjectFlags(e);return 2097152&e.flags?every(e.types,isObjectTypeWithInferableIndex):!(!(e.symbol&&7040&e.symbol.flags)||32&e.symbol.flags||typeHasCallOrConstructSignatures(e))||!!(4194304&t)||!!(1024&t&&isObjectTypeWithInferableIndex(e.source))}function createSymbolWithType(e,t){const n=createSymbol(e.flags,e.escapedName,8&getCheckFlags(e));n.declarations=e.declarations,n.parent=e.parent,n.links.type=t,n.links.target=e,e.valueDeclaration&&(n.valueDeclaration=e.valueDeclaration);const r=getSymbolLinks(e).nameType;return r&&(n.links.nameType=r),n}function getRegularTypeOfObjectLiteral(e){if(!(isObjectLiteralType2(e)&&8192&getObjectFlags(e)))return e;const t=e.regularType;if(t)return t;const n=e,r=function transformTypeOfMembers(e,t){const n=createSymbolTable();for(const r of getPropertiesOfObjectType(e)){const e=getTypeOfSymbol(r),i=t(e);n.set(r.escapedName,i===e?r:createSymbolWithType(r,i))}return n}(e,getRegularTypeOfObjectLiteral),i=createAnonymousType(n.symbol,r,n.callSignatures,n.constructSignatures,n.indexInfos);return i.flags=n.flags,i.objectFlags|=-8193&n.objectFlags,e.regularType=i,i}function createWideningContext(e,t,n){return{parent:e,propertyName:t,siblings:n,resolvedProperties:void 0}}function getSiblingsOfContext(e){if(!e.siblings){const t=[];for(const n of getSiblingsOfContext(e.parent))if(isObjectLiteralType2(n)){const r=getPropertyOfObjectType(n,e.propertyName);r&&forEachType(getTypeOfSymbol(r),e=>{t.push(e)})}e.siblings=t}return e.siblings}function getPropertiesOfContext(e){if(!e.resolvedProperties){const t=new Map;for(const n of getSiblingsOfContext(e))if(isObjectLiteralType2(n)&&!(2097152&getObjectFlags(n)))for(const e of getPropertiesOfType(n))t.set(e.escapedName,e);e.resolvedProperties=arrayFrom(t.values())}return e.resolvedProperties}function getWidenedProperty(e,t){if(!(4&e.flags))return e;const n=getTypeOfSymbol(e),r=getWidenedTypeWithContext(n,t&&createWideningContext(t,e.escapedName,void 0));return r===n?e:createSymbolWithType(e,r)}function getUndefinedProperty(e){const t=Se.get(e.escapedName);if(t)return t;const n=createSymbolWithType(e,je);return n.flags|=16777216,Se.set(e.escapedName,n),n}function getWidenedType(e){return getWidenedTypeWithContext(e,void 0)}function getWidenedTypeWithContext(e,t){if(196608&getObjectFlags(e)){if(void 0===t&&e.widened)return e.widened;let n;if(98305&e.flags)n=ke;else if(isObjectLiteralType2(e))n=function getWidenedTypeOfObjectLiteral(e,t){const n=createSymbolTable();for(const r of getPropertiesOfObjectType(e))n.set(r.escapedName,getWidenedProperty(r,t));if(t)for(const e of getPropertiesOfContext(t))n.has(e.escapedName)||n.set(e.escapedName,getUndefinedProperty(e));const r=createAnonymousType(e.symbol,n,l,l,sameMap(getIndexInfosOfType(e),e=>createIndexInfo(e.keyType,getWidenedType(e.type),e.isReadonly,e.declaration,e.components)));return r.objectFlags|=266240&getObjectFlags(e),r}(e,t);else if(1048576&e.flags){const r=t||createWideningContext(void 0,void 0,e.types),i=sameMap(e.types,e=>98304&e.flags?e:getWidenedTypeWithContext(e,r));n=getUnionType(i,some(i,isEmptyObjectType)?2:1)}else 2097152&e.flags?n=getIntersectionType(sameMap(e.types,getWidenedType)):isArrayOrTupleType(e)&&(n=createTypeReference(e.target,sameMap(getTypeArguments(e),getWidenedType)));return n&&void 0===t&&(e.widened=n),n||e}return e}function reportWideningErrorsInType(e){var t;let n=!1;if(65536&getObjectFlags(e))if(1048576&e.flags)if(some(e.types,isEmptyObjectType))n=!0;else for(const t of e.types)n||(n=reportWideningErrorsInType(t));else if(isArrayOrTupleType(e))for(const t of getTypeArguments(e))n||(n=reportWideningErrorsInType(t));else if(isObjectLiteralType2(e))for(const r of getPropertiesOfObjectType(e)){const i=getTypeOfSymbol(r);if(65536&getObjectFlags(i)&&(n=reportWideningErrorsInType(i),!n)){const o=null==(t=r.declarations)?void 0:t.find(t=>{var n;return(null==(n=t.symbol.valueDeclaration)?void 0:n.parent)===e.symbol.valueDeclaration});o&&(error2(o,Ot.Object_literal_s_property_0_implicitly_has_an_1_type,symbolToString(r),typeToString(getWidenedType(i))),n=!0)}}return n}function reportImplicitAny(e,t,n){const r=typeToString(getWidenedType(t));if(isInJSFile(e)&&!isCheckJsEnabledForFile(getSourceFileOfNode(e),S))return;let i;switch(e.kind){case 227:case 173:case 172:i=A?Ot.Member_0_implicitly_has_an_1_type:Ot.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 170:const t=e;if(isIdentifier(t.name)){const n=identifierToKeywordKind(t.name);if((isCallSignatureDeclaration(t.parent)||isMethodSignature(t.parent)||isFunctionTypeNode(t.parent))&&t.parent.parameters.includes(t)&&(te(t,t.name.escapedText,788968,void 0,!0)||n&&isTypeNodeKind(n))){const n="arg"+t.parent.parameters.indexOf(t),r=declarationNameToString(t.name)+(t.dotDotDotToken?"[]":"");return void errorOrSuggestion(A,e,Ot.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,n,r)}}i=e.dotDotDotToken?A?Ot.Rest_parameter_0_implicitly_has_an_any_type:Ot.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:A?Ot.Parameter_0_implicitly_has_an_1_type:Ot.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 209:if(i=Ot.Binding_element_0_implicitly_has_an_1_type,!A)return;break;case 318:return void error2(e,Ot.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,r);case 324:return void(A&&isJSDocOverloadTag(e.parent)&&error2(e.parent.tagName,Ot.This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation,r));case 263:case 175:case 174:case 178:case 179:case 219:case 220:if(A&&!e.name)return void error2(e,3===n?Ot.Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:Ot.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,r);i=A?3===n?Ot._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:Ot._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:Ot._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 201:return void(A&&error2(e,Ot.Mapped_object_type_implicitly_has_an_any_template_type));default:i=A?Ot.Variable_0_implicitly_has_an_1_type:Ot.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}errorOrSuggestion(A,e,i,declarationNameToString(getNameOfDeclaration(e)),r)}function reportErrorsFromWidening(e,t,n){addLazyDiagnostic(()=>{A&&65536&getObjectFlags(t)&&(!n||isFunctionLikeDeclaration(e)&&function shouldReportErrorsFromWideningWithContextualSignature(e,t){const n=getContextualSignatureForFunctionLikeDeclaration(e);if(!n)return!0;let r=getReturnTypeOfSignature(n);const i=getFunctionFlags(e);switch(t){case 1:return 1&i?r=getIterationTypeOfGeneratorFunctionReturnType(1,r,!!(2&i))??r:2&i&&(r=getAwaitedTypeNoAlias(r)??r),isGenericType(r);case 3:const e=getIterationTypeOfGeneratorFunctionReturnType(0,r,!!(2&i));return!!e&&isGenericType(e);case 2:const t=getIterationTypeOfGeneratorFunctionReturnType(2,r,!!(2&i));return!!t&&isGenericType(t)}return!1}(e,n))&&(reportWideningErrorsInType(t)||reportImplicitAny(e,t,n))})}function applyToParameterTypes(e,t,n){const r=getParameterCount(e),i=getParameterCount(t),o=getEffectiveRestType(e),a=getEffectiveRestType(t),s=a?i-1:i,c=o?s:Math.min(r,s),l=getThisTypeOfSignature(e);if(l){const e=getThisTypeOfSignature(t);e&&n(l,e)}for(let r=0;re.typeParameter),map(e.inferences,(t,n)=>()=>(t.isFixed||(!function inferFromIntraExpressionSites(e){if(e.intraExpressionInferenceSites){for(const{node:t,type:n}of e.intraExpressionInferenceSites){const r=175===t.kind?getContextualTypeForObjectLiteralMethod(t,2):getContextualType2(t,2);r&&inferTypes(e.inferences,n,r)}e.intraExpressionInferenceSites=void 0}}(e),clearCachedInferences(e.inferences),t.isFixed=!0),getInferredType(e,n))))}(i),i.nonFixingMapper=function makeNonFixingMapperForContext(e){return makeDeferredTypeMapper(map(e.inferences,e=>e.typeParameter),map(e.inferences,(t,n)=>()=>getInferredType(e,n)))}(i),i}function clearCachedInferences(e){for(const t of e)t.isFixed||(t.inferredType=void 0)}function addIntraExpressionInferenceSite(e,t,n){(e.intraExpressionInferenceSites??(e.intraExpressionInferenceSites=[])).push({node:t,type:n})}function createInferenceInfo(e){return{typeParameter:e,candidates:void 0,contraCandidates:void 0,inferredType:void 0,priority:void 0,topLevel:!0,isFixed:!1,impliedArity:void 0}}function cloneInferenceInfo(e){return{typeParameter:e.typeParameter,candidates:e.candidates&&e.candidates.slice(),contraCandidates:e.contraCandidates&&e.contraCandidates.slice(),inferredType:e.inferredType,priority:e.priority,topLevel:e.topLevel,isFixed:e.isFixed,impliedArity:e.impliedArity}}function getMapperFromContext(e){return e&&e.mapper}function couldContainTypeVariables(e){const t=getObjectFlags(e);if(524288&t)return!!(1048576&t);const n=!!(465829888&e.flags||524288&e.flags&&!isNonGenericTopLevelType(e)&&(4&t&&(e.node||some(getTypeArguments(e),couldContainTypeVariables))||16&t&&e.symbol&&14384&e.symbol.flags&&e.symbol.declarations||12583968&t)||3145728&e.flags&&!(1024&e.flags)&&!isNonGenericTopLevelType(e)&&some(e.types,couldContainTypeVariables));return 3899393&e.flags&&(e.objectFlags|=524288|(n?1048576:0)),n}function isNonGenericTopLevelType(e){if(e.aliasSymbol&&!e.aliasTypeArguments){const t=getDeclarationOfKind(e.aliasSymbol,266);return!(!t||!findAncestor(t.parent,e=>308===e.kind||268!==e.kind&&"quit"))}return!1}function isTypeParameterAtTopLevel(e,t,n=0){return!!(e===t||3145728&e.flags&&some(e.types,e=>isTypeParameterAtTopLevel(e,t,n))||n<3&&16777216&e.flags&&(isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(e),t,n+1)||isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(e),t,n+1)))}function inferTypeForHomomorphicMappedType(e,t,n){const r=e.id+","+t.id+","+n.id;if(kr.has(r))return kr.get(r);const i=function createReverseMappedType(e,t,n){if(!(getIndexInfoOfType(e,ze)||0!==getPropertiesOfType(e).length&&isPartiallyInferableType(e)))return;if(isArrayType(e)){const r=inferReverseMappedType(getTypeArguments(e)[0],t,n);if(!r)return;return createArrayType(r,isReadonlyArrayType(e))}if(isTupleType(e)){const r=map(getElementTypes(e),e=>inferReverseMappedType(e,t,n));if(!every(r,e=>!!e))return;return createTupleType(r,4&getMappedTypeModifiers(t)?sameMap(e.target.elementFlags,e=>2&e?1:e):e.target.elementFlags,e.target.readonly,e.target.labeledElementDeclarations)}const r=createObjectType(1040,void 0);return r.source=e,r.mappedType=t,r.constraintType=n,r}(e,t,n);return kr.set(r,i),i}function isPartiallyInferableType(e){return!(262144&getObjectFlags(e))||isObjectLiteralType2(e)&&some(getPropertiesOfType(e),e=>isPartiallyInferableType(getTypeOfSymbol(e)))||isTupleType(e)&&some(getElementTypes(e),isPartiallyInferableType)}function inferReverseMappedType(e,t,n){const r=e.id+","+t.id+","+n.id;if(Nr.has(r))return Nr.get(r)||Le;Ti.push(e),Si.push(t);const i=xi;let o;return isDeeplyNestedType(e,Ti,Ti.length,2)&&(xi|=1),isDeeplyNestedType(t,Si,Si.length,2)&&(xi|=2),3!==xi&&(o=function inferReverseMappedTypeWorker(e,t,n){const r=getIndexedAccessType(n.type,getTypeParameterFromMappedType(t)),i=getTemplateTypeFromMappedType(t),o=createInferenceInfo(r);return inferTypes([o],e,i),getTypeFromInference(o)||Le}(e,t,n)),Ti.pop(),Si.pop(),xi=i,Nr.set(r,o),o}function*getUnmatchedProperties(e,t,n,r){const i=getPropertiesOfType(t);for(const t of i)if(!isStaticPrivateIdentifierProperty(t)&&(n||!(16777216&t.flags||48&getCheckFlags(t)))){const n=getPropertyOfType(e,t.escapedName);if(n){if(r){const e=getTypeOfSymbol(t);if(109472&e.flags){const r=getTypeOfSymbol(n);1&r.flags||getRegularTypeOfLiteralType(r)===getRegularTypeOfLiteralType(e)||(yield t)}}}else yield t}}function getUnmatchedProperty(e,t,n,r){return firstOrUndefinedIterator(getUnmatchedProperties(e,t,n,r))}function getTypeFromInference(e){return e.candidates?getUnionType(e.candidates,2):e.contraCandidates?getIntersectionType(e.contraCandidates):void 0}function hasSkipDirectInferenceFlag(e){return!!getNodeLinks(e).skipDirectInference}function isFromInferenceBlockedSource(e){return!(!e.symbol||!some(e.symbol.declarations,hasSkipDirectInferenceFlag))}function isValidNumberString(e,t){if(""===e)return!1;const n=+e;return isFinite(n)&&(!t||""+n===e)}function parseBigIntLiteralType(e){return getBigIntLiteralType(parseValidBigInt(e))}function isMemberOfStringMapping(e,t){if(1&t.flags)return!0;if(134217732&t.flags)return isTypeAssignableTo(e,t);if(268435456&t.flags){const n=[];for(;268435456&t.flags;)n.unshift(t.symbol),t=t.type;return reduceLeft(n,(e,t)=>getStringMappingType(t,e),e)===e&&isMemberOfStringMapping(e,t)}return!1}function isValidTypeForTemplateLiteralPlaceholder(e,t){if(2097152&t.flags)return every(t.types,t=>t===vt||isValidTypeForTemplateLiteralPlaceholder(e,t));if(4&t.flags||isTypeAssignableTo(e,t))return!0;if(128&e.flags){const n=e.value;return!!(8&t.flags&&isValidNumberString(n,!1)||64&t.flags&&isValidBigIntString(n,!1)||98816&t.flags&&n===t.intrinsicName||268435456&t.flags&&isMemberOfStringMapping(e,t)||134217728&t.flags&&isTypeMatchedByTemplateLiteralType(e,t))}if(134217728&e.flags){const n=e.texts;return 2===n.length&&""===n[0]&&""===n[1]&&isTypeAssignableTo(e.types[0],t)}return!1}function inferTypesFromTemplateLiteralType(e,t){return 128&e.flags?inferFromLiteralPartsToTemplateLiteral([e.value],l,t):134217728&e.flags?arrayIsEqualTo(e.texts,t.texts)?map(e.types,(e,n)=>isTypeAssignableTo(getBaseConstraintOrType(e),getBaseConstraintOrType(t.types[n]))?e:function getStringLikeTypeForType(e){return 402653317&e.flags?e:getTemplateLiteralType(["",""],[e])}(e)):inferFromLiteralPartsToTemplateLiteral(e.texts,e.types,t):void 0}function isTypeMatchedByTemplateLiteralType(e,t){const n=inferTypesFromTemplateLiteralType(e,t);return!!n&&every(n,(e,n)=>isValidTypeForTemplateLiteralPlaceholder(e,t.types[n]))}function inferFromLiteralPartsToTemplateLiteral(e,t,n){const r=e.length-1,i=e[0],o=e[r],a=n.texts,s=a.length-1,c=a[0],l=a[s];if(0===r&&i.length0){let t=u,r=m;for(;r=getSourceText(t).indexOf(n,r),!(r>=0);){if(t++,t===e.length)return;r=0}addMatch(t,r),m+=n.length}else if(m{if(!(128&e.flags))return;const n=escapeLeadingUnderscores(e.value),r=createSymbol(4,n);r.links.type=ke,e.symbol&&(r.declarations=e.symbol.declarations,r.valueDeclaration=e.symbol.valueDeclaration),t.set(n,r)});const n=4&e.flags?[createIndexInfo(ze,ht,!1)]:l;return createAnonymousType(void 0,t,l,l,n)}(t),a.type,256)}else if(8388608&t.flags&&8388608&a.flags)inferFromTypes(t.objectType,a.objectType),inferFromTypes(t.indexType,a.indexType);else if(268435456&t.flags&&268435456&a.flags)t.symbol===a.symbol&&inferFromTypes(t.type,a.type);else if(33554432&t.flags)inferFromTypes(t.baseType,a),inferWithPriority(getSubstitutionIntersection(t),a,4);else if(16777216&a.flags)invokeOnce(t,a,inferToConditionalType);else if(3145728&a.flags)inferToMultipleTypes(t,a.types,a.flags);else if(1048576&t.flags){const e=t.types;for(const t of e)inferFromTypes(t,a)}else if(134217728&a.flags)!function inferToTemplateLiteralType(e,t){const n=inferTypesFromTemplateLiteralType(e,t),r=t.types;if(n||every(t.texts,e=>0===e.length))for(let e=0;ee|t.flags,0);if(!(4&r)){const n=t.value;296&r&&!isValidNumberString(n,!0)&&(r&=-297),2112&r&&!isValidBigIntString(n,!0)&&(r&=-2113);const o=reduceLeft(e,(e,i)=>i.flags&r?4&e.flags?e:4&i.flags?t:134217728&e.flags?e:134217728&i.flags&&isTypeMatchedByTemplateLiteralType(t,i)?t:268435456&e.flags?e:268435456&i.flags&&n===applyStringMapping(i.symbol,n)?t:128&e.flags?e:128&i.flags&&i.value===n?i:8&e.flags?e:8&i.flags?getNumberLiteralType(+n):32&e.flags?e:32&i.flags?getNumberLiteralType(+n):256&e.flags?e:256&i.flags&&i.value===+n?i:64&e.flags?e:64&i.flags?parseBigIntLiteralType(n):2048&e.flags?e:2048&i.flags&&pseudoBigIntToString(i.value)===n?i:16&e.flags?e:16&i.flags?"true"===n?Ge:"false"===n?He:Ye:512&e.flags?e:512&i.flags&&i.intrinsicName===n?i:32768&e.flags?e:32768&i.flags&&i.intrinsicName===n?i:65536&e.flags?e:65536&i.flags&&i.intrinsicName===n?i:e:e,tt);if(!(131072&o.flags)){inferFromTypes(o,i);continue}}}}inferFromTypes(t,i)}}(t,a);else{if(isGenericMappedType(t=getReducedType(t))&&isGenericMappedType(a)&&invokeOnce(t,a,inferFromGenericMappedTypes),!(512&r&&467927040&t.flags)){const e=getApparentType(t);if(e!==t&&!(2621440&e.flags))return inferFromTypes(e,a);t=e}2621440&t.flags&&invokeOnce(t,a,inferFromObjectTypes)}else inferFromTypeArguments(getTypeArguments(t),getTypeArguments(a),getVariances(t.target))}}}function inferWithPriority(e,t,n){const i=r;r|=n,inferFromTypes(e,t),r=i}function invokeOnce(e,t,n){const r=e.id+","+t.id,i=a&&a.get(r);if(void 0!==i)return void(p=Math.min(p,i));(a||(a=new Map)).set(r,-1);const o=p;p=2048;const l=u;(s??(s=[])).push(e),(c??(c=[])).push(t),isDeeplyNestedType(e,s,s.length,2)&&(u|=1),isDeeplyNestedType(t,c,c.length,2)&&(u|=2),3!==u?n(e,t):p=-1,c.pop(),s.pop(),u=l,a.set(r,p),p=Math.min(p,o)}function inferFromMatchingTypes(e,t,n){let r,i;for(const o of t)for(const t of e)n(t,o)&&(inferFromTypes(t,o),r=appendIfUnique(r,t),i=appendIfUnique(i,o));return[r?filter(e,e=>!contains(r,e)):e,i?filter(t,e=>!contains(i,e)):t]}function inferFromTypeArguments(e,t,n){const r=e.length!!getInferenceInfoForType(e));if(!e||t&&e!==t)return;t=e}return t}(t);return void(n&&inferWithPriority(e,n,1))}if(1===i&&!s){const e=flatMap(o,(e,t)=>a[t]?void 0:e);if(e.length)return void inferFromTypes(getUnionType(e),n)}}else for(const n of t)getInferenceInfoForType(n)?i++:inferFromTypes(e,n);if(2097152&n?1===i:i>0)for(const n of t)getInferenceInfoForType(n)&&inferWithPriority(e,n,1)}function inferToMappedType(e,t,n){if(1048576&n.flags||2097152&n.flags){let r=!1;for(const i of n.types)r=inferToMappedType(e,t,i)||r;return r}if(4194304&n.flags){const r=getInferenceInfoForType(n.type);if(r&&!r.isFixed&&!isFromInferenceBlockedSource(e)){const i=inferTypeForHomomorphicMappedType(e,t,n);i&&inferWithPriority(i,r.typeParameter,262144&getObjectFlags(e)?16:8)}return!0}if(262144&n.flags){inferWithPriority(getIndexType(e,e.pattern?2:0),n,32);const r=getConstraintOfType(n);if(r&&inferToMappedType(e,t,r))return!0;return inferFromTypes(getUnionType(concatenate(map(getPropertiesOfType(e),getTypeOfSymbol),map(getIndexInfosOfType(e),e=>e!==hr?e.type:tt))),getTemplateTypeFromMappedType(t)),!0}return!1}function inferToConditionalType(e,t){if(16777216&e.flags)inferFromTypes(e.checkType,t.checkType),inferFromTypes(e.extendsType,t.extendsType),inferFromTypes(getTrueTypeFromConditionalType(e),getTrueTypeFromConditionalType(t)),inferFromTypes(getFalseTypeFromConditionalType(e),getFalseTypeFromConditionalType(t));else{!function inferToMultipleTypesWithPriority(e,t,n,i){const o=r;r|=i,inferToMultipleTypes(e,t,n),r=o}(e,[getTrueTypeFromConditionalType(t),getFalseTypeFromConditionalType(t)],t.flags,i?64:0)}}function inferFromGenericMappedTypes(e,t){inferFromTypes(getConstraintTypeFromMappedType(e),getConstraintTypeFromMappedType(t)),inferFromTypes(getTemplateTypeFromMappedType(e),getTemplateTypeFromMappedType(t));const n=getNameTypeFromMappedType(e),r=getNameTypeFromMappedType(t);n&&r&&inferFromTypes(n,r)}function inferFromObjectTypes(e,t){var n,r;if(4&getObjectFlags(e)&&4&getObjectFlags(t)&&(e.target===t.target||isArrayType(e)&&isArrayType(t)))inferFromTypeArguments(getTypeArguments(e),getTypeArguments(t),getVariances(e.target));else{if(isGenericMappedType(e)&&isGenericMappedType(t)&&inferFromGenericMappedTypes(e,t),32&getObjectFlags(t)&&!t.declaration.nameType){if(inferToMappedType(e,t,getConstraintTypeFromMappedType(t)))return}if(!function typesDefinitelyUnrelated(e,t){return isTupleType(e)&&isTupleType(t)?function tupleTypesDefinitelyUnrelated(e,t){return!(8&t.target.combinedFlags)&&t.target.minLength>e.target.minLength||!(12&t.target.combinedFlags)&&(!!(12&e.target.combinedFlags)||t.target.fixedLength(12&e)==(12&t.target.elementFlags[n]))}(e,t)){for(let t=0;t0){const e=getSignaturesOfType(t,n),o=e.length;for(let t=0;tisTypeSubtypeOf(t,e)?t:e)}(e.contraCandidates)}function getCovariantInference(e,t){const n=function unionObjectAndArrayLiteralCandidates(e){if(e.length>1){const t=filter(e,isObjectOrArrayLiteralType);if(t.length){const n=getUnionType(t,2);return concatenate(filter(e,e=>!isObjectOrArrayLiteralType(e)),[n])}}return e}(e.candidates),r=function hasPrimitiveConstraint(e){const t=getConstraintOfTypeParameter(e);return!!t&&maybeTypeOfKind(16777216&t.flags?getDefaultConstraintOfConditionalType(t):t,406978556)}(e.typeParameter)||isConstTypeVariable(e.typeParameter),i=!r&&e.topLevel&&(e.isFixed||!function isTypeParameterAtTopLevelInReturnType(e,t){const n=getTypePredicateOfSignature(e);return n?!!n.type&&isTypeParameterAtTopLevel(n.type,t):isTypeParameterAtTopLevel(getReturnTypeOfSignature(e),t)}(t,e.typeParameter)),o=r?sameMap(n,getRegularTypeOfLiteralType):i?sameMap(n,getWidenedLiteralType):n;return getWidenedType(416&e.priority?getUnionType(o,2):getCommonSupertype(o))}function getInferredType(e,t){const n=e.inferences[t];if(!n.inferredType){let r,i;if(e.signature){const o=n.candidates?getCovariantInference(n,e.signature):void 0,a=n.contraCandidates?getContravariantInference(n):void 0;if(o||a){const t=o&&(!a||!(131073&o.flags)&&some(n.contraCandidates,e=>isTypeAssignableTo(o,e))&&every(e.inferences,e=>e!==n&&getConstraintOfTypeParameter(e.typeParameter)!==n.typeParameter||every(e.candidates,e=>isTypeAssignableTo(e,o))));r=t?o:a,i=t?a:o}else if(1&e.flags)r=nt;else{const i=getDefaultFromTypeParameter(n.typeParameter);i&&(r=instantiateType(i,mergeTypeMappers(function createBackreferenceMapper(e,t){const n=e.inferences.slice(t);return createTypeMapper(map(n,e=>e.typeParameter),map(n,()=>Le))}(e,t),e.nonFixingMapper)))}}else r=getTypeFromInference(n);n.inferredType=r||getDefaultTypeArgumentType(!!(2&e.flags));const o=getConstraintOfTypeParameter(n.typeParameter);if(o){const t=instantiateType(o,e.nonFixingMapper);r&&e.compareTypes(r,getTypeWithThisArgument(t,r))||(n.inferredType=i&&e.compareTypes(i,getTypeWithThisArgument(t,i))?i:t)}!function clearActiveMapperCaches(){for(let e=qr-1;e>=0;e--)Vr[e].clear()}()}return n.inferredType}function getDefaultTypeArgumentType(e){return e?ke:Le}function getInferredTypes(e){const t=[];for(let n=0;nisInterfaceDeclaration(e)||isTypeAliasDeclaration(e)||isTypeLiteralNode(e)))}function getFlowCacheKey(e,t,n,r){switch(e.kind){case 80:if(!isThisInTypeQuery(e)){const i=getResolvedSymbol(e);return i!==ve?`${r?getNodeId(r):"-1"}|${getTypeId(t)}|${getTypeId(n)}|${getSymbolId(i)}`:void 0}case 110:return`0|${r?getNodeId(r):"-1"}|${getTypeId(t)}|${getTypeId(n)}`;case 236:case 218:return getFlowCacheKey(e.expression,t,n,r);case 167:const i=getFlowCacheKey(e.left,t,n,r);return i&&`${i}.${e.right.escapedText}`;case 212:case 213:const o=getAccessedPropertyName(e);if(void 0!==o){const i=getFlowCacheKey(e.expression,t,n,r);return i&&`${i}.${o}`}if(isElementAccessExpression(e)&&isIdentifier(e.argumentExpression)){const i=getResolvedSymbol(e.argumentExpression);if(isConstantVariable(i)||isParameterOrMutableLocalVariable(i)&&!isSymbolAssigned(i)){const o=getFlowCacheKey(e.expression,t,n,r);return o&&`${o}.@${getSymbolId(i)}`}}break;case 207:case 208:case 263:case 219:case 220:case 175:return`${getNodeId(e)}#${getTypeId(t)}`}}function isMatchingReference(e,t){switch(t.kind){case 218:case 236:return isMatchingReference(e,t.expression);case 227:return isAssignmentExpression(t)&&isMatchingReference(e,t.left)||isBinaryExpression(t)&&28===t.operatorToken.kind&&isMatchingReference(e,t.right)}switch(e.kind){case 237:return 237===t.kind&&e.keywordToken===t.keywordToken&&e.name.escapedText===t.name.escapedText;case 80:case 81:return isThisInTypeQuery(e)?110===t.kind:80===t.kind&&getResolvedSymbol(e)===getResolvedSymbol(t)||(isVariableDeclaration(t)||isBindingElement(t))&&getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(e))===getSymbolOfDeclaration(t);case 110:return 110===t.kind;case 108:return 108===t.kind;case 236:case 218:case 239:return isMatchingReference(e.expression,t);case 212:case 213:const n=getAccessedPropertyName(e);if(void 0!==n){const r=isAccessExpression(t)?getAccessedPropertyName(t):void 0;if(void 0!==r)return r===n&&isMatchingReference(e.expression,t.expression)}if(isElementAccessExpression(e)&&isElementAccessExpression(t)&&isIdentifier(e.argumentExpression)&&isIdentifier(t.argumentExpression)){const n=getResolvedSymbol(e.argumentExpression);if(n===getResolvedSymbol(t.argumentExpression)&&(isConstantVariable(n)||isParameterOrMutableLocalVariable(n)&&!isSymbolAssigned(n)))return isMatchingReference(e.expression,t.expression)}break;case 167:return isAccessExpression(t)&&e.right.escapedText===getAccessedPropertyName(t)&&isMatchingReference(e.left,t.expression);case 227:return isBinaryExpression(e)&&28===e.operatorToken.kind&&isMatchingReference(e.right,t)}return!1}function getAccessedPropertyName(e){if(isPropertyAccessExpression(e))return e.name.escapedText;if(isElementAccessExpression(e))return function tryGetElementAccessExpressionName(e){return isStringOrNumericLiteralLike(e.argumentExpression)?escapeLeadingUnderscores(e.argumentExpression.text):isEntityNameExpression(e.argumentExpression)?function tryGetNameFromEntityNameExpression(e){const t=resolveEntityName(e,111551,!0);if(!t||!(isConstantVariable(t)||8&t.flags))return;const n=t.valueDeclaration;if(void 0===n)return;const r=tryGetTypeFromEffectiveTypeNode(n);if(r){const e=tryGetNameFromType(r);if(void 0!==e)return e}if(hasOnlyExpressionInitializer(n)&&isBlockScopedNameDeclaredBeforeUse(n,e)){const e=getEffectiveInitializer(n);if(e){const t=isBindingPattern(n.parent)?getTypeForBindingElement(n):getTypeOfExpression(e);return t&&tryGetNameFromType(t)}if(isEnumMember(n))return getTextOfPropertyName(n.name)}return}(e.argumentExpression):void 0}(e);if(isBindingElement(e)){const t=getDestructuringPropertyName(e);return t?escapeLeadingUnderscores(t):void 0}return isParameter(e)?""+e.parent.parameters.indexOf(e):void 0}function tryGetNameFromType(e){return 8192&e.flags?e.escapedName:384&e.flags?escapeLeadingUnderscores(""+e.value):void 0}function containsMatchingReference(e,t){for(;isAccessExpression(e);)if(isMatchingReference(e=e.expression,t))return!0;return!1}function optionalChainContainsReference(e,t){for(;isOptionalChain(e);)if(isMatchingReference(e=e.expression,t))return!0;return!1}function isDiscriminantProperty(e,t){if(e&&1048576&e.flags){const n=getUnionOrIntersectionProperty(e,t);if(n&&2&getCheckFlags(n))return void 0===n.links.isDiscriminantProperty&&(n.links.isDiscriminantProperty=!(192&~n.links.checkFlags||isGenericType(getTypeOfSymbol(n)))),!!n.links.isDiscriminantProperty}return!1}function findDiscriminantProperties(e,t){let n;for(const r of e)if(isDiscriminantProperty(t,r.escapedName)){if(n){n.push(r);continue}n=[r]}return n}function getKeyPropertyName(e){const t=e.types;if(!(t.length<10||32768&getObjectFlags(e)||countWhere(t,e=>!!(59506688&e.flags))<10)){if(void 0===e.keyPropertyName){const n=forEach(t,e=>59506688&e.flags?forEach(getPropertiesOfType(e),e=>isUnitType(getTypeOfSymbol(e))?e.escapedName:void 0):void 0),r=n&&function mapTypesByKeyProperty(e,t){const n=new Map;let r=0;for(const i of e)if(61603840&i.flags){const e=getTypeOfPropertyOfType(i,t);if(e){if(!isLiteralType(e))return;let t=!1;forEachType(e,e=>{const r=getTypeId(getRegularTypeOfLiteralType(e)),o=n.get(r);o?o!==Le&&(n.set(r,Le),t=!0):n.set(r,i)}),t||r++}}return r>=10&&2*r>=e.length?n:void 0}(t,n);e.keyPropertyName=r?n:"",e.constituentMap=r}return e.keyPropertyName.length?e.keyPropertyName:void 0}}function getConstituentTypeForKeyType(e,t){var n;const r=null==(n=e.constituentMap)?void 0:n.get(getTypeId(getRegularTypeOfLiteralType(t)));return r!==Le?r:void 0}function getMatchingUnionConstituentForType(e,t){const n=getKeyPropertyName(e),r=n&&getTypeOfPropertyOfType(t,n);return r&&getConstituentTypeForKeyType(e,r)}function isOrContainsMatchingReference(e,t){return isMatchingReference(e,t)||containsMatchingReference(e,t)}function hasMatchingArgument(e,t){if(e.arguments)for(const n of e.arguments)if(isOrContainsMatchingReference(t,n)||optionalChainContainsReference(n,t))return!0;return!(212!==e.expression.kind||!isOrContainsMatchingReference(t,e.expression.expression))}function getFlowNodeId(e){return e.id<=0&&(e.id=Zo,Zo++),e.id}function getAssignmentReducedType(e,t){if(e===t)return e;if(131072&t.flags)return t;const n=`A${getTypeId(e)},${getTypeId(t)}`;return getCachedType(n)??setCachedType(n,function getAssignmentReducedTypeWorker(e,t){const n=filterType(e,e=>function typeMaybeAssignableTo(e,t){if(!(1048576&e.flags))return isTypeAssignableTo(e,t);for(const n of e.types)if(isTypeAssignableTo(n,t))return!0;return!1}(t,e)),r=512&t.flags&&isFreshLiteralType(t)?mapType(n,getFreshTypeOfLiteralType):n;return isTypeAssignableTo(t,r)?r:e}(e,t))}function isFunctionObjectType(e){if(256&getObjectFlags(e))return!1;const t=resolveStructuredTypeMembers(e);return!!(t.callSignatures.length||t.constructSignatures.length||t.members.get("bind")&&isTypeSubtypeOf(e,Wt))}function getTypeFacts(e,t){return getTypeFactsWorker(e,t)&t}function hasTypeFacts(e,t){return 0!==getTypeFacts(e,t)}function getTypeFactsWorker(e,t){467927040&e.flags&&(e=getBaseConstraintOfType(e)||Le);const n=e.flags;if(268435460&n)return k?16317953:16776705;if(134217856&n){const t=128&n&&""===e.value;return k?t?12123649:7929345:t?12582401:16776705}if(40&n)return k?16317698:16776450;if(256&n){const t=0===e.value;return k?t?12123394:7929090:t?12582146:16776450}if(64&n)return k?16317188:16775940;if(2048&n){const t=isZeroBigInt(e);return k?t?12122884:7928580:t?12581636:16775940}if(16&n)return k?16316168:16774920;if(528&n)return k?e===He||e===Ke?12121864:7927560:e===He||e===Ke?12580616:16774920;if(524288&n){return 0===(t&(k?83427327:83886079))?0:16&getObjectFlags(e)&&isEmptyObjectType(e)?k?83427327:83886079:isFunctionObjectType(e)?k?7880640:16728e3:k?7888800:16736160}return 16384&n?9830144:32768&n?26607360:65536&n?42917664:12288&n?k?7925520:16772880:67108864&n?k?7888800:16736160:131072&n?0:1048576&n?reduceLeft(e.types,(e,n)=>e|getTypeFactsWorker(n,t),0):2097152&n?function getIntersectionTypeFacts(e,t){const n=maybeTypeOfKind(e,402784252);let r=0,i=134217727;for(const o of e.types)if(!(n&&524288&o.flags)){const e=getTypeFactsWorker(o,t);r|=e,i&=e}return 8256&r|134209471&i}(e,t):83886079}function getTypeWithFacts(e,t){return filterType(e,e=>hasTypeFacts(e,t))}function getAdjustedTypeWithFacts(e,t){const n=recombineUnknownType(getTypeWithFacts(k&&2&e.flags?Ct:e,t));if(k)switch(t){case 524288:return removeNullableByIntersection(n,65536,131072,33554432,We);case 1048576:return removeNullableByIntersection(n,131072,65536,16777216,Me);case 2097152:case 4194304:return mapType(n,e=>hasTypeFacts(e,262144)?function getGlobalNonNullableTypeInstantiation(e){return en||(en=getGlobalSymbol("NonNullable",524288,void 0)||ve),en!==ve?getTypeAliasInstantiation(en,[e]):getIntersectionType([e,ht])}(e):e)}return n}function removeNullableByIntersection(e,t,n,r,i){const o=getTypeFacts(e,50528256);if(!(o&t))return e;const a=getUnionType([ht,i]);return mapType(e,e=>hasTypeFacts(e,t)?getIntersectionType([e,o&r||!hasTypeFacts(e,n)?ht:a]):e)}function recombineUnknownType(e){return e===Ct?Le:e}function getTypeWithDefault(e,t){return t?getUnionType([getNonUndefinedType(e),getTypeOfExpression(t)]):e}function getTypeOfDestructuredProperty(e,t){var n;const r=getLiteralTypeFromPropertyName(t);if(!isTypeUsableAsPropertyName(r))return Ie;const i=getPropertyNameFromType(r);return getTypeOfPropertyOfType(e,i)||includeUndefinedInIndexSignature(null==(n=getApplicableIndexInfoForName(e,i))?void 0:n.type)||Ie}function getTypeOfDestructuredArrayElement(e,t){return everyType(e,isTupleLikeType)&&function getTupleElementType(e,t){const n=getTypeOfPropertyOfType(e,""+t);return n||(everyType(e,isTupleType)?getTupleElementTypeOutOfStartCount(e,t,S.noUncheckedIndexedAccess?Me:void 0):void 0)}(e,t)||includeUndefinedInIndexSignature(checkIteratedTypeOrElementType(65,e,Me,void 0))||Ie}function includeUndefinedInIndexSignature(e){return e&&S.noUncheckedIndexedAccess?getUnionType([e,Be]):e}function getTypeOfDestructuredSpreadExpression(e){return createArrayType(checkIteratedTypeOrElementType(65,e,Me,void 0)||Ie)}function isDestructuringAssignmentTarget(e){return 227===e.parent.kind&&e.parent.left===e||251===e.parent.kind&&e.parent.initializer===e}function getAssignedTypeOfPropertyAssignment(e){return getTypeOfDestructuredProperty(getAssignedType(e.parent),e.name)}function getAssignedType(e){const{parent:t}=e;switch(t.kind){case 250:return ze;case 251:return checkRightHandSideOfForOf(t)||Ie;case 227:return function getAssignedTypeOfBinaryExpression(e){return 210===e.parent.kind&&isDestructuringAssignmentTarget(e.parent)||304===e.parent.kind&&isDestructuringAssignmentTarget(e.parent.parent)?getTypeWithDefault(getAssignedType(e),e.right):getTypeOfExpression(e.right)}(t);case 221:return Me;case 210:return function getAssignedTypeOfArrayLiteralElement(e,t){return getTypeOfDestructuredArrayElement(getAssignedType(e),e.elements.indexOf(t))}(t,e);case 231:return function getAssignedTypeOfSpreadExpression(e){return getTypeOfDestructuredSpreadExpression(getAssignedType(e.parent))}(t);case 304:return getAssignedTypeOfPropertyAssignment(t);case 305:return function getAssignedTypeOfShorthandPropertyAssignment(e){return getTypeWithDefault(getAssignedTypeOfPropertyAssignment(e),e.objectAssignmentInitializer)}(t)}return Ie}function getTypeOfInitializer(e){return getNodeLinks(e).resolvedType||getTypeOfExpression(e)}function getInitialType(e){return 261===e.kind?function getInitialTypeOfVariableDeclaration(e){return e.initializer?getTypeOfInitializer(e.initializer):250===e.parent.parent.kind?ze:251===e.parent.parent.kind&&checkRightHandSideOfForOf(e.parent.parent)||Ie}(e):function getInitialTypeOfBindingElement(e){const t=e.parent,n=getInitialType(t.parent);return getTypeWithDefault(207===t.kind?getTypeOfDestructuredProperty(n,e.propertyName||e.name):e.dotDotDotToken?getTypeOfDestructuredSpreadExpression(n):getTypeOfDestructuredArrayElement(n,t.elements.indexOf(e)),e.initializer)}(e)}function getReferenceCandidate(e){switch(e.kind){case 218:return getReferenceCandidate(e.expression);case 227:switch(e.operatorToken.kind){case 64:case 76:case 77:case 78:return getReferenceCandidate(e.left);case 28:return getReferenceCandidate(e.right)}}return e}function getReferenceRoot(e){const{parent:t}=e;return 218===t.kind||227===t.kind&&64===t.operatorToken.kind&&t.left===e||227===t.kind&&28===t.operatorToken.kind&&t.right===e?getReferenceRoot(t):e}function getTypeOfSwitchClause(e){return 297===e.kind?getRegularTypeOfLiteralType(getTypeOfExpression(e.expression)):tt}function getSwitchClauseTypes(e){const t=getNodeLinks(e);if(!t.switchTypes){t.switchTypes=[];for(const n of e.caseBlock.clauses)t.switchTypes.push(getTypeOfSwitchClause(n))}return t.switchTypes}function getSwitchClauseTypeOfWitnesses(e){if(some(e.caseBlock.clauses,e=>297===e.kind&&!isStringLiteralLike(e.expression)))return;const t=[];for(const n of e.caseBlock.clauses){const e=297===n.kind?n.expression.text:void 0;t.push(e&&!contains(t,e)?e:void 0)}return t}function isTypeSubsetOf(e,t){return!!(e===t||131072&e.flags||1048576&t.flags&&function isTypeSubsetOfUnion(e,t){if(1048576&e.flags){for(const n of e.types)if(!containsType(t.types,n))return!1;return!0}if(1056&e.flags&&getBaseTypeOfEnumLikeType(e)===t)return!0;return containsType(t.types,e)}(e,t))}function forEachType(e,t){return 1048576&e.flags?forEach(e.types,t):t(e)}function someType(e,t){return 1048576&e.flags?some(e.types,t):t(e)}function everyType(e,t){return 1048576&e.flags?every(e.types,t):t(e)}function filterType(e,t){if(1048576&e.flags){const n=e.types,r=filter(n,t);if(r===n)return e;const i=e.origin;let o;if(i&&1048576&i.flags){const e=i.types,a=filter(e,e=>!!(1048576&e.flags)||t(e));if(e.length-a.length===n.length-r.length){if(1===a.length)return a[0];o=createOriginUnionOrIntersectionType(1048576,a)}}return getUnionTypeFromSortedList(r,16809984&e.objectFlags,void 0,void 0,o)}return 131072&e.flags||t(e)?e:tt}function removeType(e,t){return filterType(e,e=>e!==t)}function countTypes(e){return 1048576&e.flags?e.types.length:1}function mapType(e,t,n){if(131072&e.flags)return e;if(!(1048576&e.flags))return t(e);const r=e.origin,i=r&&1048576&r.flags?r.types:e.types;let o,a=!1;for(const e of i){const r=1048576&e.flags?mapType(e,t,n):t(e);a||(a=e!==r),r&&(o?o.push(r):o=[r])}return a?o&&getUnionType(o,n?0:1):e}function mapTypeWithAlias(e,t,n,r){return 1048576&e.flags&&n?getUnionType(map(e.types,t),1,n,r):mapType(e,t)}function extractTypesOfKind(e,t){return filterType(e,e=>0!==(e.flags&t))}function replacePrimitivesWithLiterals(e,t){return maybeTypeOfKind(e,134217804)&&maybeTypeOfKind(t,402655616)?mapType(e,e=>4&e.flags?extractTypesOfKind(t,402653316):isPatternLiteralType(e)&&!maybeTypeOfKind(t,402653188)?extractTypesOfKind(t,128):8&e.flags?extractTypesOfKind(t,264):64&e.flags?extractTypesOfKind(t,2112):e):e}function isIncomplete(e){return 0===e.flags}function getTypeFromFlowType(e){return 0===e.flags?e.type:e}function createFlowType(e,t){return t?{flags:0,type:131072&e.flags?nt:e}:e}function getEvolvingArrayType(e){return Te[e.id]||(Te[e.id]=function createEvolvingArrayType(e){const t=createObjectType(256);return t.elementType=e,t}(e))}function addEvolvingArrayElementType(e,t){const n=getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(getContextFreeTypeOfExpression(t)));return isTypeSubsetOf(n,e.elementType)?e:getEvolvingArrayType(getUnionType([e.elementType,n]))}function getFinalArrayType(e){return e.finalArrayType||(e.finalArrayType=function createFinalArrayType(e){return 131072&e.flags?Yt:createArrayType(1048576&e.flags?getUnionType(e.types,2):e)}(e.elementType))}function finalizeEvolvingArrayType(e){return 256&getObjectFlags(e)?getFinalArrayType(e):e}function getElementTypeOfEvolvingArrayType(e){return 256&getObjectFlags(e)?e.elementType:tt}function isEvolvingArrayOperationTarget(e){const t=getReferenceRoot(e),n=t.parent,r=isPropertyAccessExpression(n)&&("length"===n.name.escapedText||214===n.parent.kind&&isIdentifier(n.name)&&isPushOrUnshiftIdentifier(n.name)),i=213===n.kind&&n.expression===t&&227===n.parent.kind&&64===n.parent.operatorToken.kind&&n.parent.left===n&&!isAssignmentTarget(n.parent)&&isTypeAssignableToKind(getTypeOfExpression(n.argumentExpression),296);return r||i}function getExplicitTypeOfSymbol(e,t){if(8752&(e=resolveSymbol(e)).flags)return getTypeOfSymbol(e);if(7&e.flags){if(262144&getCheckFlags(e)){const t=e.links.syntheticOrigin;if(t&&getExplicitTypeOfSymbol(t))return getTypeOfSymbol(e)}const n=e.valueDeclaration;if(n){if(function isDeclarationWithExplicitTypeAnnotation(e){return(isVariableDeclaration(e)||isPropertyDeclaration(e)||isPropertySignature(e)||isParameter(e))&&!!(getEffectiveTypeAnnotationNode(e)||isInJSFile(e)&&hasInitializer(e)&&e.initializer&&isFunctionExpressionOrArrowFunction(e.initializer)&&getEffectiveReturnTypeNode(e.initializer))}(n))return getTypeOfSymbol(e);if(isVariableDeclaration(n)&&251===n.parent.parent.kind){const e=n.parent.parent,t=getTypeOfDottedName(e.expression,void 0);if(t){return checkIteratedTypeOrElementType(e.awaitModifier?15:13,t,Me,void 0)}}t&&addRelatedInfo(t,createDiagnosticForNode(n,Ot._0_needs_an_explicit_type_annotation,symbolToString(e)))}}}function getTypeOfDottedName(e,t){if(!(67108864&e.flags))switch(e.kind){case 80:return getExplicitTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(e)),t);case 110:return function getExplicitThisType(e){const t=getThisContainer(e,!1,!1);if(isFunctionLike(t)){const e=getSignatureFromDeclaration(t);if(e.thisParameter)return getExplicitTypeOfSymbol(e.thisParameter)}if(isClassLike(t.parent)){const e=getSymbolOfDeclaration(t.parent);return isStatic(t)?getTypeOfSymbol(e):getDeclaredTypeOfSymbol(e).thisType}}(e);case 108:return checkSuperExpression(e);case 212:{const n=getTypeOfDottedName(e.expression,t);if(n){const r=e.name;let i;if(isPrivateIdentifier(r)){if(!n.symbol)return;i=getPropertyOfType(n,getSymbolNameForPrivateIdentifier(n.symbol,r.escapedText))}else i=getPropertyOfType(n,r.escapedText);return i&&getExplicitTypeOfSymbol(i,t)}return}case 218:return getTypeOfDottedName(e.expression,t)}}function getEffectsSignature(e){const t=getNodeLinks(e);let n=t.effectsSignature;if(void 0===n){let r;if(isBinaryExpression(e)){r=getSymbolHasInstanceMethodOfObjectType(checkNonNullExpression(e.right))}else 245===e.parent.kind?r=getTypeOfDottedName(e.expression,void 0):108!==e.expression.kind&&(r=isOptionalChain(e)?checkNonNullType(getOptionalExpressionType(checkExpression(e.expression),e.expression),e.expression):checkNonNullExpression(e.expression));const i=getSignaturesOfType(r&&getApparentType(r)||Le,0),o=1!==i.length||i[0].typeParameters?some(i,hasTypePredicateOrNeverReturnType)?getResolvedSignature(e):void 0:i[0];n=t.effectsSignature=o&&hasTypePredicateOrNeverReturnType(o)?o:fr}return n===fr?void 0:n}function hasTypePredicateOrNeverReturnType(e){return!!(getTypePredicateOfSignature(e)||e.declaration&&131072&(getReturnTypeFromAnnotation(e.declaration)||Le).flags)}function isReachableFlowNode(e){const t=isReachableFlowNodeWorker(e,!1);return cr=e,lr=t,t}function isFalseExpression(e){const t=skipParentheses(e,!0);return 97===t.kind||227===t.kind&&(56===t.operatorToken.kind&&(isFalseExpression(t.left)||isFalseExpression(t.right))||57===t.operatorToken.kind&&isFalseExpression(t.left)&&isFalseExpression(t.right))}function isReachableFlowNodeWorker(e,t){for(;;){if(e===cr)return lr;const n=e.flags;if(4096&n){if(!t){const t=getFlowNodeId(e),n=pi[t];return void 0!==n?n:pi[t]=isReachableFlowNodeWorker(e,!0)}t=!1}if(368&n)e=e.antecedent;else if(512&n){const t=getEffectsSignature(e.node);if(t){const n=getTypePredicateOfSignature(t);if(n&&3===n.kind&&!n.type){const t=e.node.arguments[n.parameterIndex];if(t&&isFalseExpression(t))return!1}if(131072&getReturnTypeOfSignature(t).flags)return!1}e=e.antecedent}else{if(4&n)return some(e.antecedent,e=>isReachableFlowNodeWorker(e,!1));if(8&n){const t=e.antecedent;if(void 0===t||0===t.length)return!1;e=t[0]}else{if(!(128&n)){if(1024&n){cr=void 0;const t=e.node.target,n=t.antecedent;t.antecedent=e.node.antecedents;const r=isReachableFlowNodeWorker(e.antecedent,!1);return t.antecedent=n,r}return!(1&n)}{const t=e.node;if(t.clauseStart===t.clauseEnd&&isExhaustiveSwitchStatement(t.switchStatement))return!1;e=e.antecedent}}}}}function isPostSuperFlowNode(e,t){for(;;){const n=e.flags;if(4096&n){if(!t){const t=getFlowNodeId(e),n=ui[t];return void 0!==n?n:ui[t]=isPostSuperFlowNode(e,!0)}t=!1}if(496&n)e=e.antecedent;else if(512&n){if(108===e.node.expression.kind)return!0;e=e.antecedent}else{if(4&n)return every(e.antecedent,e=>isPostSuperFlowNode(e,!1));if(!(8&n)){if(1024&n){const t=e.node.target,n=t.antecedent;t.antecedent=e.node.antecedents;const r=isPostSuperFlowNode(e.antecedent,!1);return t.antecedent=n,r}return!!(1&n)}e=e.antecedent[0]}}}function isConstantReference(e){switch(e.kind){case 110:return!0;case 80:if(!isThisInTypeQuery(e)){const t=getResolvedSymbol(e);return isConstantVariable(t)||isParameterOrMutableLocalVariable(t)&&!isSymbolAssigned(t)||!!t.valueDeclaration&&isFunctionExpression(t.valueDeclaration)}break;case 212:case 213:return isConstantReference(e.expression)&&isReadonlySymbol(getNodeLinks(e).resolvedSymbol||ve);case 207:case 208:const t=getRootDeclaration(e.parent);return isParameter(t)||isCatchClauseVariableDeclaration(t)?!isSomeSymbolAssigned(t):isVariableDeclaration(t)&&isVarConstLike2(t)}return!1}function getFlowTypeOfReference(e,t,n=t,r,i=(t=>null==(t=tryCast(e,canHaveFlowNode))?void 0:t.flowNode)()){let o,a=!1,s=0;if(Ar)return Ie;if(!i)return t;Or++;const c=Ir,l=getTypeFromFlowType(getTypeAtFlowNode(i));Ir=c;const d=256&getObjectFlags(l)&&isEvolvingArrayOperationTarget(e)?Yt:finalizeEvolvingArrayType(l);return d===it||e.parent&&236===e.parent.kind&&!(131072&d.flags)&&131072&getTypeWithFacts(d,2097152).flags?t:d;function getOrSetCacheKey(){return a?o:(a=!0,o=getFlowCacheKey(e,t,n,r))}function getTypeAtFlowNode(i){var o;if(2e3===s)return null==(o=J)||o.instant(J.Phase.CheckTypes,"getTypeAtFlowNode_DepthLimit",{flowId:i.id}),Ar=!0,function reportFlowControlError(e){const t=findAncestor(e,isFunctionOrModuleBlock),n=getSourceFileOfNode(e),r=getSpanOfTokenAtPosition(n,t.statements.pos);vi.add(createFileDiagnostic(n,r.start,r.length,Ot.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis))}(e),Ie;let a;for(s++;;){const o=i.flags;if(4096&o){for(let e=c;e=0&&n.parameterIndex298===e.kind);if(n===r||o>=n&&ogetTypeFacts(e,t)===t)}return getUnionType(map(i.slice(n,r),t=>t?narrowTypeByTypeName(e,t):tt))}(i,t.node);else if(112===n.kind)i=function narrowTypeBySwitchOnTrue(e,{switchStatement:t,clauseStart:n,clauseEnd:r}){const i=findIndex(t.caseBlock.clauses,e=>298===e.kind),o=n===r||i>=n&&i297===t.kind?narrowType(e,t.expression,!0):tt))}(i,t.node);else{k&&(optionalChainContainsReference(n,e)?i=narrowTypeBySwitchOptionalChainContainment(i,t.node,e=>!(163840&e.flags)):222===n.kind&&optionalChainContainsReference(n.expression,e)&&(i=narrowTypeBySwitchOptionalChainContainment(i,t.node,e=>!(131072&e.flags||128&e.flags&&"undefined"===e.value))));const r=getDiscriminantPropertyAccess(n,i);r&&(i=function narrowTypeBySwitchOnDiscriminantProperty(e,t,n){if(n.clauseStartgetConstituentTypeForKeyType(e,t)||Le));if(t!==Le)return t}return narrowTypeByDiscriminant(e,t,e=>narrowTypeBySwitchOnDiscriminant(e,n))}(i,r,t.node))}return createFlowType(i,isIncomplete(r))}function getTypeAtFlowBranchLabel(e){const r=[];let i,o=!1,a=!1;for(const s of e.antecedent){if(!i&&128&s.flags&&s.node.clauseStart===s.node.clauseEnd){i=s;continue}const e=getTypeAtFlowNode(s),c=getTypeFromFlowType(e);if(c===t&&t===n)return c;pushIfUnique(r,c),isTypeSubsetOf(c,n)||(o=!0),isIncomplete(e)&&(a=!0)}if(i){const e=getTypeAtFlowNode(i),s=getTypeFromFlowType(e);if(!(131072&s.flags||contains(r,s)||isExhaustiveSwitchStatement(i.node.switchStatement))){if(s===t&&t===n)return s;r.push(s),isTypeSubsetOf(s,n)||(o=!0),isIncomplete(e)&&(a=!0)}}return createFlowType(getUnionOrEvolvingArrayType(r,o?2:1),a)}function getTypeAtFlowLoopLabel(e){const r=getFlowNodeId(e),i=oi[r]||(oi[r]=new Map),o=getOrSetCacheKey();if(!o)return t;const a=i.get(o);if(a)return a;for(let t=Pr;t{const t=getTypeOfPropertyOrIndexSignatureOfType(e,r)||Le;return!(131072&t.flags)&&!(131072&s.flags)&&areTypesComparable(s,t)})}function narrowTypeByDiscriminantProperty(e,t,n,r,i){if((37===n||38===n)&&1048576&e.flags){const o=getKeyPropertyName(e);if(o&&o===getAccessedPropertyName(t)){const t=getConstituentTypeForKeyType(e,getTypeOfExpression(r));if(t)return n===(i?37:38)?t:isUnitType(getTypeOfPropertyOfType(t,o)||Le)?removeType(e,t):e}}return narrowTypeByDiscriminant(e,t,e=>narrowTypeByEquality(e,n,r,i))}function narrowTypeByTruthiness(t,n,r){if(isMatchingReference(e,n))return getAdjustedTypeWithFacts(t,r?4194304:8388608);k&&r&&optionalChainContainsReference(n,e)&&(t=getAdjustedTypeWithFacts(t,2097152));const i=getDiscriminantPropertyAccess(n,t);return i?narrowTypeByDiscriminant(t,i,e=>getTypeWithFacts(e,r?4194304:8388608)):t}function isTypePresencePossible(e,t,n){const r=getPropertyOfType(e,t);return r?!!(16777216&r.flags||48&getCheckFlags(r))||n:!!getApplicableIndexInfoForName(e,t)||!n}function narrowTypeByInKeyword(e,t,n){const r=getPropertyNameFromType(t);if(someType(e,e=>isTypePresencePossible(e,r,!0)))return filterType(e,e=>isTypePresencePossible(e,r,n));if(n){const n=function getGlobalRecordSymbol(){return Un||(Un=getGlobalTypeAliasSymbol("Record",2,!0)||ve),Un===ve?void 0:Un}();if(n)return getIntersectionType([e,getTypeAliasInstantiation(n,[t,Le])])}return e}function narrowTypeByBooleanComparison(e,t,n,r,i){return narrowType(e,t,i=i!==(112===n.kind)!=(38!==r&&36!==r))}function narrowTypeByBinaryExpression(t,n,r){switch(n.operatorToken.kind){case 64:case 76:case 77:case 78:return narrowTypeByTruthiness(narrowType(t,n.right,r),n.left,r);case 35:case 36:case 37:case 38:const i=n.operatorToken.kind,o=getReferenceCandidate(n.left),a=getReferenceCandidate(n.right);if(222===o.kind&&isStringLiteralLike(a))return narrowTypeByTypeof(t,o,i,a,r);if(222===a.kind&&isStringLiteralLike(o))return narrowTypeByTypeof(t,a,i,o,r);if(isMatchingReference(e,o))return narrowTypeByEquality(t,i,a,r);if(isMatchingReference(e,a))return narrowTypeByEquality(t,i,o,r);k&&(optionalChainContainsReference(o,e)?t=narrowTypeByOptionalChainContainment(t,i,a,r):optionalChainContainsReference(a,e)&&(t=narrowTypeByOptionalChainContainment(t,i,o,r)));const s=getDiscriminantPropertyAccess(o,t);if(s)return narrowTypeByDiscriminantProperty(t,s,i,a,r);const c=getDiscriminantPropertyAccess(a,t);if(c)return narrowTypeByDiscriminantProperty(t,c,i,o,r);if(isMatchingConstructorReference(o))return narrowTypeByConstructor(t,i,a,r);if(isMatchingConstructorReference(a))return narrowTypeByConstructor(t,i,o,r);if(isBooleanLiteral(a)&&!isAccessExpression(o))return narrowTypeByBooleanComparison(t,o,a,i,r);if(isBooleanLiteral(o)&&!isAccessExpression(a))return narrowTypeByBooleanComparison(t,a,o,i,r);break;case 104:return function narrowTypeByInstanceof(t,n,r){const i=getReferenceCandidate(n.left);if(!isMatchingReference(e,i))return r&&k&&optionalChainContainsReference(i,e)?getAdjustedTypeWithFacts(t,2097152):t;const o=n.right,a=getTypeOfExpression(o);if(!isTypeDerivedFrom(a,Jt))return t;const s=getEffectsSignature(n),c=s&&getTypePredicateOfSignature(s);if(c&&1===c.kind&&0===c.parameterIndex)return getNarrowedType(t,c.type,r,!0);if(!isTypeDerivedFrom(a,Wt))return t;const l=mapType(a,getInstanceType);if(isTypeAny(t)&&(l===Jt||l===Wt)||!r&&(!(524288&l.flags)||isEmptyAnonymousObjectType(l)))return t;return getNarrowedType(t,l,r,!0)}(t,n,r);case 103:if(isPrivateIdentifier(n.left))return function narrowTypeByPrivateIdentifierInInExpression(t,n,r){const i=getReferenceCandidate(n.right);if(!isMatchingReference(e,i))return t;h.assertNode(n.left,isPrivateIdentifier);const o=getSymbolForPrivateIdentifierExpression(n.left);if(void 0===o)return t;const a=o.parent,s=hasStaticModifier(h.checkDefined(o.valueDeclaration,"should always have a declaration"))?getTypeOfSymbol(a):getDeclaredTypeOfSymbol(a);return getNarrowedType(t,s,r,!0)}(t,n,r);const l=getReferenceCandidate(n.right);if(containsMissingType(t)&&isAccessExpression(e)&&isMatchingReference(e.expression,l)){const i=getTypeOfExpression(n.left);if(isTypeUsableAsPropertyName(i)&&getAccessedPropertyName(e)===getPropertyNameFromType(i))return getTypeWithFacts(t,r?524288:65536)}if(isMatchingReference(e,l)){const e=getTypeOfExpression(n.left);if(isTypeUsableAsPropertyName(e))return narrowTypeByInKeyword(t,e,r)}break;case 28:return narrowType(t,n.right,r);case 56:return r?narrowType(narrowType(t,n.left,!0),n.right,!0):getUnionType([narrowType(t,n.left,!1),narrowType(t,n.right,!1)]);case 57:return r?getUnionType([narrowType(t,n.left,!0),narrowType(t,n.right,!0)]):narrowType(narrowType(t,n.left,!1),n.right,!1)}return t}function narrowTypeByOptionalChainContainment(e,t,n,r){const i=35===t||37===t,o=35===t||36===t?98304:32768,a=getTypeOfExpression(n);return i!==r&&everyType(a,e=>!!(e.flags&o))||i===r&&everyType(a,e=>!(e.flags&(3|o)))?getAdjustedTypeWithFacts(e,2097152):e}function narrowTypeByEquality(e,t,n,r){if(1&e.flags)return e;36!==t&&38!==t||(r=!r);const i=getTypeOfExpression(n),o=35===t||36===t;if(98304&i.flags){if(!k)return e;return getAdjustedTypeWithFacts(e,o?r?262144:2097152:65536&i.flags?r?131072:1048576:r?65536:524288)}if(r){if(!o&&(2&e.flags||someType(e,isEmptyAnonymousObjectType))){if(469893116&i.flags||isEmptyAnonymousObjectType(i))return i;if(524288&i.flags)return ot}return replacePrimitivesWithLiterals(filterType(e,e=>areTypesComparable(e,i)||o&&function isCoercibleUnderDoubleEquals(e,t){return!!(524&e.flags)&&!!(28&t.flags)}(e,i)),i)}return isUnitType(i)?filterType(e,e=>!(isUnitLikeType(e)&&areTypesComparable(e,i))):e}function narrowTypeByTypeof(t,n,r,i,o){36!==r&&38!==r||(o=!o);const a=getReferenceCandidate(n.expression);if(!isMatchingReference(e,a)){k&&optionalChainContainsReference(a,e)&&o===("undefined"!==i.text)&&(t=getAdjustedTypeWithFacts(t,2097152));const n=getDiscriminantPropertyAccess(a,t);return n?narrowTypeByDiscriminant(t,n,e=>narrowTypeByLiteralExpression(e,i,o)):t}return narrowTypeByLiteralExpression(t,i,o)}function narrowTypeByLiteralExpression(e,t,n){return n?narrowTypeByTypeName(e,t.text):getAdjustedTypeWithFacts(e,ta.get(t.text)||32768)}function narrowTypeBySwitchOptionalChainContainment(e,{switchStatement:t,clauseStart:n,clauseEnd:r},i){return n!==r&&every(getSwitchClauseTypes(t).slice(n,r),i)?getTypeWithFacts(e,2097152):e}function narrowTypeBySwitchOnDiscriminant(e,{switchStatement:t,clauseStart:n,clauseEnd:r}){const i=getSwitchClauseTypes(t);if(!i.length)return e;const o=i.slice(n,r),a=n===r||contains(o,tt);if(2&e.flags&&!a){let t;for(let n=0;nareTypesComparable(s,e)),s);if(!a)return c;const l=filterType(e,e=>!(isUnitLikeType(e)&&contains(i,32768&e.flags?Me:getRegularTypeOfLiteralType(function extractUnitType(e){return 2097152&e.flags&&find(e.types,isUnitType)||e}(e)))));return 131072&c.flags?l:getUnionType([c,l])}function narrowTypeByTypeName(e,t){switch(t){case"string":return narrowTypeByTypeFacts(e,ze,1);case"number":return narrowTypeByTypeFacts(e,Ve,2);case"bigint":return narrowTypeByTypeFacts(e,qe,4);case"boolean":return narrowTypeByTypeFacts(e,Ye,8);case"symbol":return narrowTypeByTypeFacts(e,Ze,16);case"object":return 1&e.flags?e:getUnionType([narrowTypeByTypeFacts(e,ot,32),narrowTypeByTypeFacts(e,We,131072)]);case"function":return 1&e.flags?e:narrowTypeByTypeFacts(e,Wt,64);case"undefined":return narrowTypeByTypeFacts(e,Me,65536)}return narrowTypeByTypeFacts(e,ot,128)}function narrowTypeByTypeFacts(e,t,n){return mapType(e,e=>isTypeRelatedTo(e,t,Ni)?hasTypeFacts(e,n)?e:tt:isTypeSubtypeOf(t,e)?t:hasTypeFacts(e,n)?getIntersectionType([e,t]):tt)}function isMatchingConstructorReference(t){return(isPropertyAccessExpression(t)&&"constructor"===idText(t.name)||isElementAccessExpression(t)&&isStringLiteralLike(t.argumentExpression)&&"constructor"===t.argumentExpression.text)&&isMatchingReference(e,t.expression)}function narrowTypeByConstructor(e,t,n,r){if(r?35!==t&&37!==t:36!==t&&38!==t)return e;const i=getTypeOfExpression(n);if(!isFunctionType(i)&&!isConstructorType(i))return e;const o=getPropertyOfType(i,"prototype");if(!o)return e;const a=getTypeOfSymbol(o),s=isTypeAny(a)?void 0:a;return s&&s!==Jt&&s!==Wt?isTypeAny(e)?s:filterType(e,e=>function isConstructedBy(e,t){if(524288&e.flags&&1&getObjectFlags(e)||524288&t.flags&&1&getObjectFlags(t))return e.symbol===t.symbol;return isTypeSubtypeOf(e,t)}(e,s)):e}function getInstanceType(e){const t=getTypeOfPropertyOfType(e,"prototype");if(t&&!isTypeAny(t))return t;const n=getSignaturesOfType(e,1);return n.length?getUnionType(map(n,e=>getReturnTypeOfSignature(getErasedSignature(e)))):ht}function getNarrowedType(e,t,n,r){const i=1048576&e.flags?`N${getTypeId(e)},${getTypeId(t)},${(n?1:0)|(r?2:0)}`:void 0;return getCachedType(i)??setCachedType(i,function getNarrowedTypeWorker(e,t,n,r){if(!n){if(e===t)return tt;if(r)return filterType(e,e=>!isTypeDerivedFrom(e,t));const n=getNarrowedType(e=2&e.flags?Ct:e,t,!0,!1);return recombineUnknownType(filterType(e,e=>!isTypeSubsetOf(e,n)))}if(3&e.flags)return t;if(e===t)return t;const i=r?isTypeDerivedFrom:isTypeSubtypeOf,o=1048576&e.flags?getKeyPropertyName(e):void 0,a=mapType(t,t=>{const n=o&&getTypeOfPropertyOfType(t,o),a=mapType(n&&getConstituentTypeForKeyType(e,n)||e,r?e=>isTypeDerivedFrom(e,t)?e:isTypeDerivedFrom(t,e)?t:tt:e=>isTypeStrictSubtypeOf(e,t)?e:isTypeStrictSubtypeOf(t,e)?t:isTypeSubtypeOf(e,t)?e:isTypeSubtypeOf(t,e)?t:tt);return 131072&a.flags?mapType(e,e=>maybeTypeOfKind(e,465829888)&&i(t,getBaseConstraintOfType(e)||Le)?getIntersectionType([e,t]):tt):a});return 131072&a.flags?isTypeSubtypeOf(t,e)?t:isTypeAssignableTo(e,t)?e:isTypeAssignableTo(t,e)?t:getIntersectionType([e,t]):a}(e,t,n,r))}function narrowTypeByTypePredicate(t,n,r,i){if(n.type&&(!isTypeAny(t)||n.type!==Jt&&n.type!==Wt)){const o=function getTypePredicateArgument(e,t){if(1===e.kind||3===e.kind)return t.arguments[e.parameterIndex];const n=skipParentheses(t.expression);return isAccessExpression(n)?skipParentheses(n.expression):void 0}(n,r);if(o){if(isMatchingReference(e,o))return getNarrowedType(t,n.type,i,!1);k&&optionalChainContainsReference(o,e)&&(i&&!hasTypeFacts(n.type,65536)||!i&&everyType(n.type,isNullableType))&&(t=getAdjustedTypeWithFacts(t,2097152));const r=getDiscriminantPropertyAccess(o,t);if(r)return narrowTypeByDiscriminant(t,r,e=>getNarrowedType(e,n.type,i,!1))}}return t}function narrowType(t,n,r){if(isExpressionOfOptionalChainRoot(n)||isBinaryExpression(n.parent)&&(61===n.parent.operatorToken.kind||78===n.parent.operatorToken.kind)&&n.parent.left===n)return function narrowTypeByOptionality(t,n,r){if(isMatchingReference(e,n))return getAdjustedTypeWithFacts(t,r?2097152:262144);const i=getDiscriminantPropertyAccess(n,t);if(i)return narrowTypeByDiscriminant(t,i,e=>getTypeWithFacts(e,r?2097152:262144));return t}(t,n,r);switch(n.kind){case 80:if(!isMatchingReference(e,n)&&f<5){const i=getResolvedSymbol(n);if(isConstantVariable(i)){const n=i.valueDeclaration;if(n&&isVariableDeclaration(n)&&!n.type&&n.initializer&&isConstantReference(e)){f++;const e=narrowType(t,n.initializer,r);return f--,e}}}case 110:case 108:case 212:case 213:return narrowTypeByTruthiness(t,n,r);case 214:return function narrowTypeByCallExpression(t,n,r){if(hasMatchingArgument(n,e)){const e=r||!isCallChain(n)?getEffectsSignature(n):void 0,i=e&&getTypePredicateOfSignature(e);if(i&&(0===i.kind||1===i.kind))return narrowTypeByTypePredicate(t,i,n,r)}if(containsMissingType(t)&&isAccessExpression(e)&&isPropertyAccessExpression(n.expression)){const i=n.expression;if(isMatchingReference(e.expression,getReferenceCandidate(i.expression))&&isIdentifier(i.name)&&"hasOwnProperty"===i.name.escapedText&&1===n.arguments.length){const i=n.arguments[0];if(isStringLiteralLike(i)&&getAccessedPropertyName(e)===escapeLeadingUnderscores(i.text))return getTypeWithFacts(t,r?524288:65536)}}return t}(t,n,r);case 218:case 236:case 239:return narrowType(t,n.expression,r);case 227:return narrowTypeByBinaryExpression(t,n,r);case 225:if(54===n.operator)return narrowType(t,n.operand,!r)}return t}}function getControlFlowContainer(e){return findAncestor(e.parent,e=>isFunctionLike(e)&&!getImmediatelyInvokedFunctionExpression(e)||269===e.kind||308===e.kind||173===e.kind)}function isSymbolAssigned(e){return!isPastLastAssignment(e,void 0)}function isPastLastAssignment(e,t){const n=findAncestor(e.valueDeclaration,isFunctionOrSourceFile);if(!n)return!1;const r=getNodeLinks(n);return 131072&r.flags||(r.flags|=131072,function hasParentWithAssignmentsMarked(e){return!!findAncestor(e.parent,e=>isFunctionOrSourceFile(e)&&!!(131072&getNodeLinks(e).flags))}(n)||markNodeAssignments(n)),!e.lastAssignmentPos||t&&Math.abs(e.lastAssignmentPos)233!==e.kind&&isSomeSymbolAssignedWorker(e.name))}function isFunctionOrSourceFile(e){return isFunctionLikeDeclaration(e)||isSourceFile(e)}function markNodeAssignments(e){switch(e.kind){case 80:const t=getAssignmentTargetKind(e);if(0!==t){const n=getResolvedSymbol(e),r=1===t||void 0!==n.lastAssignmentPos&&n.lastAssignmentPos<0;if(isParameterOrMutableLocalVariable(n)){if(void 0===n.lastAssignmentPos||Math.abs(n.lastAssignmentPos)!==Number.MAX_VALUE){const t=findAncestor(e,isFunctionOrSourceFile),r=findAncestor(n.valueDeclaration,isFunctionOrSourceFile);n.lastAssignmentPos=t===r?function extendAssignmentPosition(e,t){let n=e.pos;for(;e&&e.pos>t.pos;){switch(e.kind){case 244:case 245:case 246:case 247:case 248:case 249:case 250:case 251:case 255:case 256:case 259:case 264:n=e.end}e=e.parent}return n}(e,n.valueDeclaration):Number.MAX_VALUE}r&&n.lastAssignmentPos>0&&(n.lastAssignmentPos*=-1)}}return;case 282:const n=e.parent.parent,r=e.propertyName||e.name;if(!e.isTypeOnly&&!n.isTypeOnly&&!n.moduleSpecifier&&11!==r.kind){const e=resolveEntityName(r,111551,!0,!0);if(e&&isParameterOrMutableLocalVariable(e)){const t=void 0!==e.lastAssignmentPos&&e.lastAssignmentPos<0?-1:1;e.lastAssignmentPos=t*Number.MAX_VALUE}}return;case 265:case 266:case 267:return}isTypeNode(e)||forEachChild(e,markNodeAssignments)}function isConstantVariable(e){return 3&e.flags&&!!(6&getDeclarationNodeFlagsFromSymbol(e))}function isParameterOrMutableLocalVariable(e){const t=e.valueDeclaration&&getRootDeclaration(e.valueDeclaration);return!!t&&(isParameter(t)||isVariableDeclaration(t)&&(isCatchClause(t.parent)||isMutableLocalVariableDeclaration(t)))}function isMutableLocalVariableDeclaration(e){return!!(1&e.parent.flags)&&!(32&getCombinedModifierFlags(e)||244===e.parent.parent.kind&&isGlobalSourceFile(e.parent.parent.parent))}function removeOptionalityFromDeclaredType(e,t){const n=k&&170===t.kind&&t.initializer&&hasTypeFacts(e,16777216)&&!function parameterInitializerContainsUndefined(e){const t=getNodeLinks(e);if(void 0===t.parameterInitializerContainsUndefined){if(!pushTypeResolution(e,8))return reportCircularityError(e.symbol),!0;const n=!!hasTypeFacts(checkDeclarationInitializer(e,0),16777216);if(!popTypeResolution())return reportCircularityError(e.symbol),!0;t.parameterInitializerContainsUndefined??(t.parameterInitializerContainsUndefined=n)}return t.parameterInitializerContainsUndefined}(t);return n?getTypeWithFacts(e,524288):e}function isGenericTypeWithUnionConstraint(e){return 2097152&e.flags?some(e.types,isGenericTypeWithUnionConstraint):!!(465829888&e.flags&&1146880&getBaseConstraintOrType(e).flags)}function isGenericTypeWithoutNullableConstraint(e){return 2097152&e.flags?some(e.types,isGenericTypeWithoutNullableConstraint):!(!(465829888&e.flags)||maybeTypeOfKind(getBaseConstraintOrType(e),98304))}function getNarrowableTypeForReference(e,t,n){isNoInferType(e)&&(e=e.baseType);const r=!(n&&2&n)&&someType(e,isGenericTypeWithUnionConstraint)&&(function isConstraintPosition(e,t){const n=t.parent;return 212===n.kind||167===n.kind||214===n.kind&&n.expression===t||215===n.kind&&n.expression===t||213===n.kind&&n.expression===t&&!(someType(e,isGenericTypeWithoutNullableConstraint)&&isGenericIndexType(getTypeOfExpression(n.argumentExpression)))}(e,t)||function hasContextualTypeWithNoGenericTypes(e,t){const n=(isIdentifier(e)||isPropertyAccessExpression(e)||isElementAccessExpression(e))&&!((isJsxOpeningElement(e.parent)||isJsxSelfClosingElement(e.parent))&&e.parent.tagName===e)&&getContextualType2(e,t&&32&t?8:void 0);return n&&!isGenericType(n)}(t,n));return r?mapType(e,getBaseConstraintOrType):e}function isExportOrExportExpression(e){return!!findAncestor(e,e=>{const t=e.parent;return void 0===t?"quit":isExportAssignment(t)?t.expression===e&&isEntityNameExpression(e):!!isExportSpecifier(t)&&(t.name===e||t.propertyName===e)})}function markLinkedReferences(e,t,n,r){if(Y&&(!(33554432&e.flags)||isPropertySignature(e)||isPropertyDeclaration(e)))switch(t){case 1:return markIdentifierAliasReferenced(e);case 2:return markPropertyAliasReferenced(e,n,r);case 3:return markExportAssignmentAliasReferenced(e);case 4:return markJsxAliasReferenced(e);case 5:return markAsyncFunctionAliasReferenced(e);case 6:return markImportEqualsAliasReferenced(e);case 7:return markExportSpecifierAliasReferenced(e);case 8:return markDecoratorAliasReferenced(e);case 0:if(isIdentifier(e)&&(isExpressionNode(e)||isShorthandPropertyAssignment(e.parent)||isImportEqualsDeclaration(e.parent)&&e.parent.moduleReference===e)&&shouldMarkIdentifierAliasReferenced(e)){if(isPropertyAccessOrQualifiedName(e.parent)){if((isPropertyAccessExpression(e.parent)?e.parent.expression:e.parent.left)!==e)return}return void markIdentifierAliasReferenced(e)}if(isPropertyAccessOrQualifiedName(e)){let t=e;for(;isPropertyAccessOrQualifiedName(t);){if(isPartOfTypeNode(t))return;t=t.parent}return markPropertyAliasReferenced(e)}if(isExportAssignment(e))return markExportAssignmentAliasReferenced(e);if(isJsxOpeningLikeElement(e)||isJsxOpeningFragment(e))return markJsxAliasReferenced(e);if(isImportEqualsDeclaration(e))return isInternalModuleImportEqualsDeclaration(e)||checkExternalImportOrExportDeclaration(e)?markImportEqualsAliasReferenced(e):void 0;if(isExportSpecifier(e))return markExportSpecifierAliasReferenced(e);if((isFunctionLikeDeclaration(e)||isMethodSignature(e))&&markAsyncFunctionAliasReferenced(e),!S.emitDecoratorMetadata)return;if(!(canHaveDecorators(e)&&hasDecorators(e)&&e.modifiers&&nodeCanBeDecorated(b,e,e.parent,e.parent.parent)))return;return markDecoratorAliasReferenced(e);default:h.assertNever(t,`Unhandled reference hint: ${t}`)}}function markIdentifierAliasReferenced(e){const t=getResolvedSymbol(e);t&&t!==$&&t!==ve&&!isThisInTypeQuery(e)&&markAliasReferenced(t,e)}function markPropertyAliasReferenced(e,t,n){const r=isPropertyAccessExpression(e)?e.expression:e.left;if(isThisIdentifier(r)||!isIdentifier(r))return;const i=getResolvedSymbol(r);if(!i||i===ve)return;if(Kn(S)||er(S)&&isExportOrExportExpression(e))return void markAliasReferenced(i,e);const o=n||checkExpressionCached(r);if(isTypeAny(o)||o===nt)return void markAliasReferenced(i,e);let a=t;if(!a&&!n){const t=isPropertyAccessExpression(e)?e.name:e.right,n=isPrivateIdentifier(t)&&lookupSymbolForPrivateIdentifierDeclaration(t.escapedText,t),r=getApparentType(0!==getAssignmentTargetKind(e)||isMethodAccessForCall(e)?getWidenedType(o):o);a=isPrivateIdentifier(t)?n&&getPrivateIdentifierPropertyOfType(r,n)||void 0:getPropertyOfType(r,t.escapedText)}a&&(isConstEnumOrConstEnumOnlyModule(a)||8&a.flags&&307===e.parent.kind)||markAliasReferenced(i,e)}function markExportAssignmentAliasReferenced(e){if(isIdentifier(e.expression)){const t=e.expression,n=getExportSymbolOfValueSymbolIfExported(resolveEntityName(t,-1,!0,!0,e));n&&markAliasReferenced(n,t)}}function markJsxAliasReferenced(e){if(!getJsxNamespaceContainerForImplicitImport(e)){const t=vi&&2===S.jsx?Ot.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:void 0,n=getJsxNamespace(e),r=isJsxOpeningLikeElement(e)?e.tagName:e,i=1!==S.jsx&&3!==S.jsx;let o;if(isJsxOpeningFragment(e)&&"null"===n||(o=te(r,n,i?111551:111167,t,!0)),o&&(o.isReferenced=-1,Y&&2097152&o.flags&&!getTypeOnlyAliasDeclaration(o)&&markAliasSymbolAsReferenced(o)),isJsxOpeningFragment(e)){const n=getJsxFactoryEntity(getSourceFileOfNode(e));if(n){const e=getFirstIdentifier(n).escapedText;te(r,e,i?111551:111167,t,!0)}}}}function markAsyncFunctionAliasReferenced(e){if(x<2&&2&getFunctionFlags(e)){!function markTypeNodeAsReferenced(e){markEntityNameOrEntityExpressionAsReference(e&&getEntityNameFromTypeNode(e),!1)}(getEffectiveReturnTypeNode(e))}}function markImportEqualsAliasReferenced(e){hasSyntacticModifier(e,32)&&markExportAsReferenced(e)}function markExportSpecifierAliasReferenced(e){if(!e.parent.parent.moduleSpecifier&&!e.isTypeOnly&&!e.parent.parent.isTypeOnly){const t=e.propertyName||e.name;if(11===t.kind)return;const n=te(t,t.escapedText,2998271,void 0,!0);if(n&&(n===V||n===q||n.declarations&&isGlobalSourceFile(getDeclarationContainer(n.declarations[0]))));else{const r=n&&(2097152&n.flags?resolveAlias(n):n);(!r||111551&getSymbolFlags(r))&&(markExportAsReferenced(e),markIdentifierAliasReferenced(t))}return}}function markDecoratorAliasReferenced(e){if(S.emitDecoratorMetadata){const t=find(e.modifiers,isDecorator);if(!t)return;switch(checkExternalEmitHelpers(t,16),e.kind){case 264:const t=getFirstConstructorWithBody(e);if(t)for(const e of t.parameters)markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(e));break;case 178:case 179:const n=178===e.kind?179:178,r=getDeclarationOfKind(getSymbolOfDeclaration(e),n);markDecoratorMedataDataTypeNodeAsReferenced(getAnnotatedAccessorTypeNode(e)||r&&getAnnotatedAccessorTypeNode(r));break;case 175:for(const t of e.parameters)markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(t));markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(e));break;case 173:markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveTypeAnnotationNode(e));break;case 170:markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(e));const i=e.parent;for(const e of i.parameters)markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(e));markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(i))}}}function markAliasReferenced(e,t){if(Y&&isNonLocalAlias(e,111551)&&!isInTypeQuery(t)){const n=resolveAlias(e);1160127&getSymbolFlags(e,!0)&&(Kn(S)||er(S)&&isExportOrExportExpression(t)||!isConstEnumOrConstEnumOnlyModule(getExportSymbolOfValueSymbolIfExported(n)))&&markAliasSymbolAsReferenced(e)}}function markAliasSymbolAsReferenced(e){h.assert(Y);const t=getSymbolLinks(e);if(!t.referenced){t.referenced=!0;const n=getDeclarationOfAliasSymbol(e);if(!n)return h.fail();if(isInternalModuleImportEqualsDeclaration(n)&&111551&getSymbolFlags(resolveSymbol(e))){markIdentifierAliasReferenced(getFirstIdentifier(n.moduleReference))}}}function markExportAsReferenced(e){const t=getSymbolOfDeclaration(e),n=resolveAlias(t);if(n){(n===ve||111551&getSymbolFlags(t,!0)&&!isConstEnumOrConstEnumOnlyModule(n))&&markAliasSymbolAsReferenced(t)}}function markEntityNameOrEntityExpressionAsReference(e,t){if(!e)return;const n=getFirstIdentifier(e),r=2097152|(80===e.kind?788968:1920),i=te(n,n.escapedText,r,void 0,!0);if(i&&2097152&i.flags)if(Y&&symbolIsValue(i)&&!isConstEnumOrConstEnumOnlyModule(resolveAlias(i))&&!getTypeOnlyAliasDeclaration(i))markAliasSymbolAsReferenced(i);else if(t&&Kn(S)&&Vn(S)>=5&&!symbolIsValue(i)&&!some(i.declarations,isTypeOnlyImportOrExportDeclaration)){const t=error2(e,Ot.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled),r=find(i.declarations||l,isAliasSymbolDeclaration);r&&addRelatedInfo(t,createDiagnosticForNode(r,Ot._0_was_imported_here,idText(n)))}}function markDecoratorMedataDataTypeNodeAsReferenced(e){const t=getEntityNameForDecoratorMetadata(e);t&&isEntityName(t)&&markEntityNameOrEntityExpressionAsReference(t,!0)}function checkIdentifierCalculateNodeCheckFlags(e,t){if(isThisInTypeQuery(e))return;if(t===$){if(isInPropertyInitializerOrClassStaticBlock(e,!0))return void error2(e,Ot.arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks);let t=getContainingFunction(e);if(t)for(x<2&&(220===t.kind?error2(e,Ot.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression):hasSyntacticModifier(t,1024)&&error2(e,Ot.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method)),getNodeLinks(t).flags|=512;t&&isArrowFunction(t);)t=getContainingFunction(t),t&&(getNodeLinks(t).flags|=512);return}const n=getExportSymbolOfValueSymbolIfExported(t),r=resolveAliasWithDeprecationCheck(n,e);isDeprecatedSymbol(r)&&isUncalledFunctionReference(e,r)&&r.declarations&&addDeprecatedSuggestion(e,r.declarations,e.escapedText);const i=n.valueDeclaration;if(i&&32&n.flags&&isClassLike(i)&&i.name!==e){let t=getThisContainer(e,!1,!1);for(;308!==t.kind&&t.parent!==i;)t=getThisContainer(t,!1,!1);308!==t.kind&&(getNodeLinks(i).flags|=262144,getNodeLinks(t).flags|=262144,getNodeLinks(e).flags|=536870912)}!function checkNestedBlockScopedBinding(e,t){if(x>=2||!(34&t.flags)||!t.valueDeclaration||isSourceFile(t.valueDeclaration)||300===t.valueDeclaration.parent.kind)return;const n=getEnclosingBlockScopeContainer(t.valueDeclaration),r=function isInsideFunctionOrInstancePropertyInitializer(e,t){return!!findAncestor(e,e=>e===t?"quit":isFunctionLike(e)||e.parent&&isPropertyDeclaration(e.parent)&&!hasStaticModifier(e.parent)&&e.parent.initializer===e)}(e,n),i=getEnclosingIterationStatement(n);if(i){if(r){let r=!0;if(isForStatement(n)){const i=getAncestor(t.valueDeclaration,262);if(i&&i.parent===n){const i=function getPartOfForStatementContainingNode(e,t){return findAncestor(e,e=>e===t?"quit":e===t.initializer||e===t.condition||e===t.incrementor||e===t.statement)}(e.parent,n);if(i){const e=getNodeLinks(i);e.flags|=8192;pushIfUnique(e.capturedBlockScopeBindings||(e.capturedBlockScopeBindings=[]),t),i===n.initializer&&(r=!1)}}}r&&(getNodeLinks(i).flags|=4096)}if(isForStatement(n)){const r=getAncestor(t.valueDeclaration,262);r&&r.parent===n&&function isAssignedInBodyOfForStatement(e,t){let n=e;for(;218===n.parent.kind;)n=n.parent;let r=!1;if(isAssignmentTarget(n))r=!0;else if(225===n.parent.kind||226===n.parent.kind){const e=n.parent;r=46===e.operator||47===e.operator}if(!r)return!1;return!!findAncestor(n,e=>e===t?"quit":e===t.statement)}(e,n)&&(getNodeLinks(t.valueDeclaration).flags|=65536)}getNodeLinks(t.valueDeclaration).flags|=32768}r&&(getNodeLinks(t.valueDeclaration).flags|=16384)}(e,t)}function checkIdentifier(e,t){if(isThisInTypeQuery(e))return checkThisExpression(e);const n=getResolvedSymbol(e);if(n===ve)return Ie;if(checkIdentifierCalculateNodeCheckFlags(e,n),n===$)return isInPropertyInitializerOrClassStaticBlock(e)?Ie:getTypeOfSymbol(n);shouldMarkIdentifierAliasReferenced(e)&&markLinkedReferences(e,1);const r=getExportSymbolOfValueSymbolIfExported(n);let i=r.valueDeclaration;const o=i;if(i&&209===i.kind&&contains(Br,i.parent)&&findAncestor(e,e=>e===i.parent))return Oe;let a=function getNarrowedTypeOfSymbol(e,t){var n;const r=getTypeOfSymbol(e),i=e.valueDeclaration;if(i){if(isBindingElement(i)&&!i.initializer&&!i.dotDotDotToken&&i.parent.elements.length>=2){const e=i.parent.parent,n=getRootDeclaration(e);if(261===n.kind&&6&getCombinedNodeFlagsCached(n)||170===n.kind){const r=getNodeLinks(e);if(!(4194304&r.flags)){r.flags|=4194304;const o=getTypeForBindingElementParent(e,0),a=o&&mapType(o,getBaseConstraintOrType);if(r.flags&=-4194305,a&&1048576&a.flags&&(170!==n.kind||!isSomeSymbolAssigned(n))){const e=getFlowTypeOfReference(i.parent,a,a,void 0,t.flowNode);return 131072&e.flags?tt:getBindingElementTypeFromParentType(i,e,!0)}}}}if(isParameter(i)&&!i.type&&!i.initializer&&!i.dotDotDotToken){const e=i.parent;if(e.parameters.length>=2&&isContextSensitiveFunctionOrObjectLiteralMethod(e)){const r=getContextualSignature(e);if(r&&1===r.parameters.length&&signatureHasRestParameter(r)){const o=getReducedApparentType(instantiateType(getTypeOfSymbol(r.parameters[0]),null==(n=getInferenceContext(e))?void 0:n.nonFixingMapper));if(1048576&o.flags&&everyType(o,isTupleType)&&!some(e.parameters,isSomeSymbolAssigned))return getIndexedAccessType(getFlowTypeOfReference(e,o,o,void 0,t.flowNode),getNumberLiteralType(e.parameters.indexOf(i)-(getThisParameter(e)?1:0)))}}}}return r}(r,e);const s=getAssignmentTargetKind(e);if(s){if(!(3&r.flags||isInJSFile(e)&&512&r.flags)){return error2(e,384&r.flags?Ot.Cannot_assign_to_0_because_it_is_an_enum:32&r.flags?Ot.Cannot_assign_to_0_because_it_is_a_class:1536&r.flags?Ot.Cannot_assign_to_0_because_it_is_a_namespace:16&r.flags?Ot.Cannot_assign_to_0_because_it_is_a_function:2097152&r.flags?Ot.Cannot_assign_to_0_because_it_is_an_import:Ot.Cannot_assign_to_0_because_it_is_not_a_variable,symbolToString(n)),Ie}if(isReadonlySymbol(r))return 3&r.flags?error2(e,Ot.Cannot_assign_to_0_because_it_is_a_constant,symbolToString(n)):error2(e,Ot.Cannot_assign_to_0_because_it_is_a_read_only_property,symbolToString(n)),Ie}const c=2097152&r.flags;if(3&r.flags){if(1===s)return isInCompoundLikeAssignment(e)?getBaseTypeOfLiteralType(a):a}else{if(!c)return a;i=getDeclarationOfAliasSymbol(n)}if(!i)return a;a=getNarrowableTypeForReference(a,e,t);const l=170===getRootDeclaration(i).kind,d=getControlFlowContainer(i);let p=getControlFlowContainer(e);const u=p!==d,m=e.parent&&e.parent.parent&&isSpreadAssignment(e.parent)&&isDestructuringAssignmentTarget(e.parent.parent),_=134217728&n.flags,f=a===Fe||a===Yt,g=f&&236===e.parent.kind;for(;p!==d&&(219===p.kind||220===p.kind||isObjectLiteralOrClassExpressionMethodOrAccessor(p))&&(isConstantVariable(r)&&a!==Yt||isParameterOrMutableLocalVariable(r)&&isPastLastAssignment(r,e));)p=getControlFlowContainer(p);const y=o&&isVariableDeclaration(o)&&!o.initializer&&!o.exclamationToken&&isMutableLocalVariableDeclaration(o)&&!function isSymbolAssignedDefinitely(e){return(void 0!==e.lastAssignmentPos||isSymbolAssigned(e)&&void 0!==e.lastAssignmentPos)&&e.lastAssignmentPos<0}(n),h=l||c||u&&!y||m||_||function isSameScopedBindingElement(e,t){if(isBindingElement(t)){const n=findAncestor(e,isBindingElement);return n&&getRootDeclaration(n)===getRootDeclaration(t)}}(e,i)||a!==Fe&&a!==Yt&&(!k||!!(16387&a.flags)||isInTypeQuery(e)||isInAmbientOrTypeNode(e)||282===e.parent.kind)||236===e.parent.kind||261===i.kind&&i.exclamationToken||33554432&i.flags,T=g?Me:h?l?removeOptionalityFromDeclaredType(a,i):a:f?Me:getOptionalType(a),S=g?getNonNullableType(getFlowTypeOfReference(e,a,T,p)):getFlowTypeOfReference(e,a,T,p);if(isEvolvingArrayOperationTarget(e)||a!==Fe&&a!==Yt){if(!h&&!containsUndefinedType(a)&&containsUndefinedType(S))return error2(e,Ot.Variable_0_is_used_before_being_assigned,symbolToString(n)),a}else if(S===Fe||S===Yt)return A&&(error2(getNameOfDeclaration(i),Ot.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,symbolToString(n),typeToString(S)),error2(e,Ot.Variable_0_implicitly_has_an_1_type,symbolToString(n),typeToString(S))),convertAutoToAny(S);return s?getBaseTypeOfLiteralType(S):S}function shouldMarkIdentifierAliasReferenced(e){var t;const n=e.parent;if(n){if(isPropertyAccessExpression(n)&&n.expression===e)return!1;if(isExportSpecifier(n)&&n.isTypeOnly)return!1;const r=null==(t=n.parent)?void 0:t.parent;if(r&&isExportDeclaration(r)&&r.isTypeOnly)return!1}return!0}function getEnclosingIterationStatement(e){return findAncestor(e,e=>!e||nodeStartsNewLexicalEnvironment(e)?"quit":isIterationStatement(e,!1))}function captureLexicalThis(e,t){if(getNodeLinks(e).flags|=2,173===t.kind||177===t.kind){getNodeLinks(t.parent).flags|=4}else getNodeLinks(t).flags|=4}function findFirstSuperCall(e){return isSuperCall(e)?e:isFunctionLike(e)?void 0:forEachChild(e,findFirstSuperCall)}function classDeclarationExtendsNull(e){return getBaseConstructorTypeOfClass(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(e)))===Ue}function checkThisBeforeSuper(e,t,n){const r=t.parent;getClassExtendsHeritageElement(r)&&!classDeclarationExtendsNull(r)&&canHaveFlowNode(e)&&e.flowNode&&!isPostSuperFlowNode(e.flowNode,!1)&&error2(e,n)}function checkThisExpression(e){const t=isInTypeQuery(e);let n=getThisContainer(e,!0,!0),r=!1,i=!1;for(177===n.kind&&checkThisBeforeSuper(e,n,Ot.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class);220===n.kind&&(n=getThisContainer(n,!1,!i),r=!0),168===n.kind;)n=getThisContainer(n,!r,!1),i=!0;if(function checkThisInStaticClassFieldInitializerInDecoratedClass(e,t){isPropertyDeclaration(t)&&hasStaticModifier(t)&&b&&t.initializer&&textRangeContainsPositionInclusive(t.initializer,e.pos)&&hasDecorators(t.parent)&&error2(e,Ot.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}(e,n),i)error2(e,Ot.this_cannot_be_referenced_in_a_computed_property_name);else switch(n.kind){case 268:error2(e,Ot.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 267:error2(e,Ot.this_cannot_be_referenced_in_current_location)}!t&&r&&x<2&&captureLexicalThis(e,n);const o=tryGetThisTypeAt(e,!0,n);if(O){const t=getTypeOfSymbol(q);if(o===t&&r)error2(e,Ot.The_containing_arrow_function_captures_the_global_value_of_this);else if(!o){const r=error2(e,Ot.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!isSourceFile(n)){const e=tryGetThisTypeAt(n);e&&e!==t&&addRelatedInfo(r,createDiagnosticForNode(n,Ot.An_outer_value_of_this_is_shadowed_by_this_container))}}}return o||ke}function tryGetThisTypeAt(e,t=!0,n=getThisContainer(e,!1,!1)){const r=isInJSFile(e);if(isFunctionLike(n)&&(!isInParameterInitializerBeforeContainingFunction(e)||getThisParameter(n))){let t=function getThisTypeOfDeclaration(e){return getThisTypeOfSignature(getSignatureFromDeclaration(e))}(n)||r&&function getTypeForThisExpressionFromJSDoc(e){const t=getJSDocThisTag(e);if(t&&t.typeExpression)return getTypeFromTypeNode(t.typeExpression);const n=getSignatureOfTypeTag(e);if(n)return getThisTypeOfSignature(n)}(n);if(!t){const e=function getClassNameFromPrototypeMethod(e){if(219===e.kind&&isBinaryExpression(e.parent)&&3===getAssignmentDeclarationKind(e.parent))return e.parent.left.expression.expression;if(175===e.kind&&211===e.parent.kind&&isBinaryExpression(e.parent.parent)&&6===getAssignmentDeclarationKind(e.parent.parent))return e.parent.parent.left.expression;if(219===e.kind&&304===e.parent.kind&&211===e.parent.parent.kind&&isBinaryExpression(e.parent.parent.parent)&&6===getAssignmentDeclarationKind(e.parent.parent.parent))return e.parent.parent.parent.left.expression;if(219===e.kind&&isPropertyAssignment(e.parent)&&isIdentifier(e.parent.name)&&("value"===e.parent.name.escapedText||"get"===e.parent.name.escapedText||"set"===e.parent.name.escapedText)&&isObjectLiteralExpression(e.parent.parent)&&isCallExpression(e.parent.parent.parent)&&e.parent.parent.parent.arguments[2]===e.parent.parent&&9===getAssignmentDeclarationKind(e.parent.parent.parent))return e.parent.parent.parent.arguments[0].expression;if(isMethodDeclaration(e)&&isIdentifier(e.name)&&("value"===e.name.escapedText||"get"===e.name.escapedText||"set"===e.name.escapedText)&&isObjectLiteralExpression(e.parent)&&isCallExpression(e.parent.parent)&&e.parent.parent.arguments[2]===e.parent&&9===getAssignmentDeclarationKind(e.parent.parent))return e.parent.parent.arguments[0].expression}(n);if(r&&e){const n=checkExpression(e).symbol;n&&n.members&&16&n.flags&&(t=getDeclaredTypeOfSymbol(n).thisType)}else isJSConstructor(n)&&(t=getDeclaredTypeOfSymbol(getMergedSymbol(n.symbol)).thisType);t||(t=getContextualThisParameterType(n))}if(t)return getFlowTypeOfReference(e,t)}if(isClassLike(n.parent)){const t=getSymbolOfDeclaration(n.parent);return getFlowTypeOfReference(e,isStatic(n)?getTypeOfSymbol(t):getDeclaredTypeOfSymbol(t).thisType)}if(isSourceFile(n)){if(n.commonJsModuleIndicator){const e=getSymbolOfDeclaration(n);return e&&getTypeOfSymbol(e)}if(n.externalModuleIndicator)return Me;if(t)return getTypeOfSymbol(q)}}function checkSuperExpression(e){const t=214===e.parent.kind&&e.parent.expression===e,n=getSuperContainer(e,!0);let r=n,i=!1,o=!1;if(!t){for(;r&&220===r.kind;)hasSyntacticModifier(r,1024)&&(o=!0),r=getSuperContainer(r,!0),i=x<2;r&&hasSyntacticModifier(r,1024)&&(o=!0)}let a=0;if(!r||!function isLegalUsageOfSuperExpression(e){if(t)return 177===e.kind;if(isClassLike(e.parent)||211===e.parent.kind)return isStatic(e)?175===e.kind||174===e.kind||178===e.kind||179===e.kind||173===e.kind||176===e.kind:175===e.kind||174===e.kind||178===e.kind||179===e.kind||173===e.kind||172===e.kind||177===e.kind;return!1}(r)){const n=findAncestor(e,e=>e===r?"quit":168===e.kind);return n&&168===n.kind?error2(e,Ot.super_cannot_be_referenced_in_a_computed_property_name):t?error2(e,Ot.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):r&&r.parent&&(isClassLike(r.parent)||211===r.parent.kind)?error2(e,Ot.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class):error2(e,Ot.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions),Ie}if(t||177!==n.kind||checkThisBeforeSuper(e,r,Ot.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),isStatic(r)||t?(a=32,!t&&x>=2&&x<=8&&(isPropertyDeclaration(r)||isClassStaticBlockDeclaration(r))&&forEachEnclosingBlockScopeContainer(e.parent,e=>{isSourceFile(e)&&!isExternalOrCommonJsModule(e)||(getNodeLinks(e).flags|=2097152)})):a=16,getNodeLinks(e).flags|=a,175===r.kind&&o&&(isSuperProperty(e.parent)&&isAssignmentTarget(e.parent)?getNodeLinks(r).flags|=256:getNodeLinks(r).flags|=128),i&&captureLexicalThis(e.parent,r),211===r.parent.kind)return x<2?(error2(e,Ot.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),Ie):ke;const s=r.parent;if(!getClassExtendsHeritageElement(s))return error2(e,Ot.super_can_only_be_referenced_in_a_derived_class),Ie;if(classDeclarationExtendsNull(s))return t?Ie:Ue;const c=getDeclaredTypeOfSymbol(getSymbolOfDeclaration(s)),l=c&&getBaseTypes(c)[0];return l?177===r.kind&&function isInConstructorArgumentInitializer(e,t){return!!findAncestor(e,e=>isFunctionLikeDeclaration(e)?"quit":170===e.kind&&e.parent===t)}(e,r)?(error2(e,Ot.super_cannot_be_referenced_in_constructor_arguments),Ie):32===a?getBaseConstructorTypeOfClass(c):getTypeWithThisArgument(l,c.thisType):Ie}function getContainingObjectLiteral(e){return 175!==e.kind&&178!==e.kind&&179!==e.kind||211!==e.parent.kind?219===e.kind&&304===e.parent.kind?e.parent.parent:void 0:e.parent}function getThisTypeArgument(e){return 4&getObjectFlags(e)&&e.target===Qt?getTypeArguments(e)[0]:void 0}function getThisTypeFromContextualType(e){return mapType(e,e=>2097152&e.flags?forEach(e.types,getThisTypeArgument):getThisTypeArgument(e))}function getThisTypeOfObjectLiteralFromContextualType(e,t){let n=e,r=t;for(;r;){const e=getThisTypeFromContextualType(r);if(e)return e;if(304!==n.parent.kind)break;n=n.parent.parent,r=getApparentTypeOfContextualType(n,void 0)}}function getContextualThisParameterType(e){if(220===e.kind)return;if(isContextSensitiveFunctionOrObjectLiteralMethod(e)){const t=getContextualSignature(e);if(t){const e=t.thisParameter;if(e)return getTypeOfSymbol(e)}}const t=isInJSFile(e);if(O||t){const n=getContainingObjectLiteral(e);if(n){const e=getApparentTypeOfContextualType(n,void 0),t=getThisTypeOfObjectLiteralFromContextualType(n,e);return t?instantiateType(t,getMapperFromContext(getInferenceContext(n))):getWidenedType(e?getNonNullableType(e):checkExpressionCached(n))}const r=walkUpParenthesizedExpressions(e.parent);if(isAssignmentExpression(r)){const e=r.left;if(isAccessExpression(e)){const{expression:n}=e;if(t&&isIdentifier(n)){const e=getSourceFileOfNode(r);if(e.commonJsModuleIndicator&&getResolvedSymbol(n)===e.symbol)return}return getWidenedType(checkExpressionCached(n))}}}}function getContextuallyTypedParameterType(e){const t=e.parent;if(!isContextSensitiveFunctionOrObjectLiteralMethod(t))return;const n=getImmediatelyInvokedFunctionExpression(t);if(n&&n.arguments){const r=getEffectiveCallArguments(n),i=t.parameters.indexOf(e);if(e.dotDotDotToken)return getSpreadArgumentType(r,i,r.length,ke,void 0,0);const o=getNodeLinks(n),a=o.resolvedSignature;o.resolvedSignature=_r;const s=i!!(58998787&e.flags)||checkGeneratorInstantiationAssignabilityToReturnType(e,n,void 0)):2&n?filterType(t,e=>!!(58998787&e.flags)||!!getAwaitedTypeOfPromise(e)):t}const i=getImmediatelyInvokedFunctionExpression(e);return i?getContextualType2(i,t):void 0}function getContextualTypeForArgument(e,t){const n=getEffectiveCallArguments(e).indexOf(t);return-1===n?void 0:getContextualTypeForArgumentAtIndex(e,n)}function getContextualTypeForArgumentAtIndex(e,t){if(isImportCall(e))return 0===t?ze:1===t?getGlobalImportCallOptionsType(!1):ke;const n=getNodeLinks(e).resolvedSignature===gr?gr:getResolvedSignature(e);if(isJsxOpeningLikeElement(e)&&0===t)return getEffectiveFirstArgumentForJsxSignature(n,e);const r=n.parameters.length-1;return signatureHasRestParameter(n)&&t>=r?getIndexedAccessType(getTypeOfSymbol(n.parameters[r]),getNumberLiteralType(t-r),256):getTypeAtPosition(n,t)}function getContextualTypeForBinaryOperand(e,t){const n=e.parent,{left:r,operatorToken:i,right:o}=n;switch(i.kind){case 64:case 77:case 76:case 78:return e===o?function getContextualTypeForAssignmentDeclaration(e){var t,n;const r=getAssignmentDeclarationKind(e);switch(r){case 0:case 4:const i=function getSymbolForExpression(e){if(canHaveSymbol(e)&&e.symbol)return e.symbol;if(isIdentifier(e))return getResolvedSymbol(e);if(isPropertyAccessExpression(e)){const t=getTypeOfExpression(e.expression);return isPrivateIdentifier(e.name)?tryGetPrivateIdentifierPropertyOfType(t,e.name):getPropertyOfType(t,e.name.escapedText)}if(isElementAccessExpression(e)){const t=checkExpressionCached(e.argumentExpression);if(!isTypeUsableAsPropertyName(t))return;return getPropertyOfType(getTypeOfExpression(e.expression),getPropertyNameFromType(t))}return;function tryGetPrivateIdentifierPropertyOfType(e,t){const n=lookupSymbolForPrivateIdentifierDeclaration(t.escapedText,t);return n&&getPrivateIdentifierPropertyOfType(e,n)}}(e.left),o=i&&i.valueDeclaration;if(o&&(isPropertyDeclaration(o)||isPropertySignature(o))){const t=getEffectiveTypeAnnotationNode(o);return t&&instantiateType(getTypeFromTypeNode(t),getSymbolLinks(i).mapper)||(isPropertyDeclaration(o)?o.initializer&&getTypeOfExpression(e.left):void 0)}return 0===r?getTypeOfExpression(e.left):getContextualTypeForThisPropertyAssignment(e);case 5:if(isPossiblyAliasedThisProperty(e,r))return getContextualTypeForThisPropertyAssignment(e);if(canHaveSymbol(e.left)&&e.left.symbol){const t=e.left.symbol.valueDeclaration;if(!t)return;const n=cast(e.left,isAccessExpression),r=getEffectiveTypeAnnotationNode(t);if(r)return getTypeFromTypeNode(r);if(isIdentifier(n.expression)){const e=n.expression,t=te(e,e.escapedText,111551,void 0,!0);if(t){const e=t.valueDeclaration&&getEffectiveTypeAnnotationNode(t.valueDeclaration);if(e){const t=getElementOrPropertyAccessName(n);if(void 0!==t)return getTypeOfPropertyOfContextualType(getTypeFromTypeNode(e),t)}return}}return isInJSFile(t)||t===e.left?void 0:getTypeOfExpression(e.left)}return getTypeOfExpression(e.left);case 1:case 6:case 3:case 2:let a;2!==r&&(a=canHaveSymbol(e.left)?null==(t=e.left.symbol)?void 0:t.valueDeclaration:void 0),a||(a=null==(n=e.symbol)?void 0:n.valueDeclaration);const s=a&&getEffectiveTypeAnnotationNode(a);return s?getTypeFromTypeNode(s):void 0;case 7:case 8:case 9:return h.fail("Does not apply");default:return h.assertNever(r)}}(n):void 0;case 57:case 61:const i=getContextualType2(n,t);return e===o&&(i&&i.pattern||!i&&!isDefaultedExpandoInitializer(n))?getTypeOfExpression(r):i;case 56:case 28:return e===o?getContextualType2(n,t):void 0;default:return}}function isPossiblyAliasedThisProperty(e,t=getAssignmentDeclarationKind(e)){if(4===t)return!0;if(!isInJSFile(e)||5!==t||!isIdentifier(e.left.expression))return!1;const n=e.left.expression.escapedText,r=te(e.left,n,111551,void 0,!0,!0);return isThisInitializedDeclaration(null==r?void 0:r.valueDeclaration)}function getContextualTypeForThisPropertyAssignment(e){if(!e.symbol)return getTypeOfExpression(e.left);if(e.symbol.valueDeclaration){const t=getEffectiveTypeAnnotationNode(e.symbol.valueDeclaration);if(t){const e=getTypeFromTypeNode(t);if(e)return e}}const t=cast(e.left,isAccessExpression);if(!isObjectLiteralMethod(getThisContainer(t.expression,!1,!1)))return;const n=checkThisExpression(t.expression),r=getElementOrPropertyAccessName(t);return void 0!==r&&getTypeOfPropertyOfContextualType(n,r)||void 0}function isExcludedMappedPropertyName(e,t){if(16777216&e.flags){const n=e;return!!(131072&getReducedType(getTrueTypeFromConditionalType(n)).flags)&&getActualTypeVariable(getFalseTypeFromConditionalType(n))===getActualTypeVariable(n.checkType)&&isTypeAssignableTo(t,n.extendsType)}return!!(2097152&e.flags)&&some(e.types,e=>isExcludedMappedPropertyName(e,t))}function getTypeOfPropertyOfContextualType(e,t,n){return mapType(e,e=>{if(2097152&e.flags){let r,i,o=!1;for(const a of e.types){if(!(524288&a.flags))continue;if(isGenericMappedType(a)&&2!==getMappedTypeNameTypeKind(a)){r=appendContextualPropertyTypeConstituent(r,getIndexedMappedTypeSubstitutedTypeOfContextualType(a,t,n));continue}const e=getTypeOfConcretePropertyOfContextualType(a,t);e?(o=!0,i=void 0,r=appendContextualPropertyTypeConstituent(r,e)):o||(i=append(i,a))}if(i)for(const e of i){r=appendContextualPropertyTypeConstituent(r,getTypeFromIndexInfosOfContextualType(e,t,n))}if(!r)return;return 1===r.length?r[0]:getIntersectionType(r)}if(524288&e.flags)return isGenericMappedType(e)&&2!==getMappedTypeNameTypeKind(e)?getIndexedMappedTypeSubstitutedTypeOfContextualType(e,t,n):getTypeOfConcretePropertyOfContextualType(e,t)??getTypeFromIndexInfosOfContextualType(e,t,n)},!0)}function appendContextualPropertyTypeConstituent(e,t){return t?append(e,1&t.flags?Le:t):e}function getIndexedMappedTypeSubstitutedTypeOfContextualType(e,t,n){const r=n||getStringLiteralType(unescapeLeadingUnderscores(t)),i=getConstraintTypeFromMappedType(e);if(e.nameType&&isExcludedMappedPropertyName(e.nameType,r)||isExcludedMappedPropertyName(i,r))return;return isTypeAssignableTo(r,getBaseConstraintOfType(i)||i)?substituteIndexedMappedType(e,r):void 0}function getTypeOfConcretePropertyOfContextualType(e,t){const n=getPropertyOfType(e,t);if(n&&!function isCircularMappedProperty(e){return!!(262144&getCheckFlags(e)&&!e.links.type&&findResolutionCycleStartIndex(e,0)>=0)}(n))return removeMissingType(getTypeOfSymbol(n),!!(16777216&n.flags))}function getTypeFromIndexInfosOfContextualType(e,t,n){var r;if(isTupleType(e)&&isNumericLiteralName(t)&&+t>=0){const t=getElementTypeOfSliceOfTupleType(e,e.target.fixedLength,0,!1,!0);if(t)return t}return null==(r=findApplicableIndexInfo(getIndexInfosOfStructuredType(e),n||getStringLiteralType(unescapeLeadingUnderscores(t))))?void 0:r.type}function getContextualTypeForObjectLiteralMethod(e,t){if(h.assert(isObjectLiteralMethod(e)),!(67108864&e.flags))return getContextualTypeForObjectLiteralElement(e,t)}function getContextualTypeForObjectLiteralElement(e,t){const n=e.parent,r=isPropertyAssignment(e)&&getContextualTypeForVariableLikeDeclaration(e,t);if(r)return r;const i=getApparentTypeOfContextualType(n,t);if(i){if(hasBindableName(e)){const t=getSymbolOfDeclaration(e);return getTypeOfPropertyOfContextualType(i,t.escapedName,getSymbolLinks(t).nameType)}if(hasDynamicName(e)){const t=getNameOfDeclaration(e);if(t&&isComputedPropertyName(t)){const e=checkExpression(t.expression),n=isTypeUsableAsPropertyName(e)&&getTypeOfPropertyOfContextualType(i,getPropertyNameFromType(e));if(n)return n}}if(e.name){const t=getLiteralTypeFromPropertyName(e.name);return mapType(i,e=>{var n;return null==(n=findApplicableIndexInfo(getIndexInfosOfStructuredType(e),t))?void 0:n.type},!0)}}}function getContextualTypeForElementExpression(e,t,n,r,i){return e&&mapType(e,e=>{if(isTupleType(e)){if((void 0===r||ti)?n-t:0,a=o>0&&12&e.target.combinedFlags?getEndElementCount(e.target,3):0;return o>0&&o<=a?getTypeArguments(e)[getTypeReferenceArity(e)-o]:getElementTypeOfSliceOfTupleType(e,void 0===r?e.target.fixedLength:Math.min(e.target.fixedLength,r),void 0===n||void 0===i?a:Math.min(a,n-i),!1,!0)}return(!r||tisArrayLikeType(e)?getIndexedAccessType(e,getNumberLiteralType(a)):e,!0))}(n,e,t):void 0}function getContextualTypeForJsxAttribute(e,t){if(isJsxAttribute(e)){const n=getApparentTypeOfContextualType(e.parent,t);if(!n||isTypeAny(n))return;return getTypeOfPropertyOfContextualType(n,getEscapedTextOfJsxAttributeName(e.name))}return getContextualType2(e.parent,t)}function isPossiblyDiscriminantValue(e){switch(e.kind){case 11:case 9:case 10:case 15:case 229:case 112:case 97:case 106:case 80:case 157:return!0;case 212:case 218:return isPossiblyDiscriminantValue(e.expression);case 295:return!e.expression||isPossiblyDiscriminantValue(e.expression)}return!1}function discriminateContextualTypeByObjectMembers(e,t){const n=`D${getNodeId(e)},${getTypeId(t)}`;return getCachedType(n)??setCachedType(n,function getMatchingUnionConstituentForObjectLiteral(e,t){const n=getKeyPropertyName(e),r=n&&find(t.properties,e=>e.symbol&&304===e.kind&&e.symbol.escapedName===n&&isPossiblyDiscriminantValue(e.initializer)),i=r&&getContextFreeTypeOfExpression(r.initializer);return i&&getConstituentTypeForKeyType(e,i)}(t,e)??discriminateTypeByDiscriminableItems(t,concatenate(map(filter(e.properties,e=>!!e.symbol&&(304===e.kind?isPossiblyDiscriminantValue(e.initializer)&&isDiscriminantProperty(t,e.symbol.escapedName):305===e.kind&&isDiscriminantProperty(t,e.symbol.escapedName))),e=>[()=>getContextFreeTypeOfExpression(304===e.kind?e.initializer:e.name),e.symbol.escapedName]),map(filter(getPropertiesOfType(t),n=>{var r;return!!(16777216&n.flags)&&!!(null==(r=null==e?void 0:e.symbol)?void 0:r.members)&&!e.symbol.members.has(n.escapedName)&&isDiscriminantProperty(t,n.escapedName)}),e=>[()=>Me,e.escapedName])),isTypeAssignableTo))}function getApparentTypeOfContextualType(e,t){const n=instantiateContextualType(isObjectLiteralMethod(e)?getContextualTypeForObjectLiteralMethod(e,t):getContextualType2(e,t),e,t);if(n&&!(t&&2&t&&8650752&n.flags)){const t=mapType(n,e=>32&getObjectFlags(e)?e:getApparentType(e),!0);return 1048576&t.flags&&isObjectLiteralExpression(e)?discriminateContextualTypeByObjectMembers(e,t):1048576&t.flags&&isJsxAttributes(e)?function discriminateContextualTypeByJSXAttributes(e,t){const n=`D${getNodeId(e)},${getTypeId(t)}`,r=getCachedType(n);if(r)return r;const i=getJsxElementChildrenPropertyName(getJsxNamespaceAt(e));return setCachedType(n,discriminateTypeByDiscriminableItems(t,concatenate(map(filter(e.properties,e=>!!e.symbol&&292===e.kind&&isDiscriminantProperty(t,e.symbol.escapedName)&&(!e.initializer||isPossiblyDiscriminantValue(e.initializer))),e=>[e.initializer?()=>getContextFreeTypeOfExpression(e.initializer):()=>Ge,e.symbol.escapedName]),map(filter(getPropertiesOfType(t),n=>{var r;if(!(16777216&n.flags&&(null==(r=null==e?void 0:e.symbol)?void 0:r.members)))return!1;const o=e.parent.parent;return(n.escapedName!==i||!isJsxElement(o)||!getSemanticJsxChildren(o.children).length)&&!e.symbol.members.has(n.escapedName)&&isDiscriminantProperty(t,n.escapedName)}),e=>[()=>Me,e.escapedName])),isTypeAssignableTo))}(e,t):t}}function instantiateContextualType(e,t,n){if(e&&maybeTypeOfKind(e,465829888)){const r=getInferenceContext(t);if(r&&1&n&&some(r.inferences,hasInferenceCandidatesOrDefault))return instantiateInstantiableTypes(e,r.nonFixingMapper);if(null==r?void 0:r.returnMapper){const t=instantiateInstantiableTypes(e,r.returnMapper);return 1048576&t.flags&&containsType(t.types,Ke)&&containsType(t.types,Qe)?filterType(t,e=>e!==Ke&&e!==Qe):t}}return e}function instantiateInstantiableTypes(e,t){return 465829888&e.flags?instantiateType(e,t):1048576&e.flags?getUnionType(map(e.types,e=>instantiateInstantiableTypes(e,t)),0):2097152&e.flags?getIntersectionType(map(e.types,e=>instantiateInstantiableTypes(e,t))):e}function getContextualType2(e,t){var n;if(67108864&e.flags)return;const r=findContextualNode(e,!t);if(r>=0)return Lr[r];const{parent:i}=e;switch(i.kind){case 261:case 170:case 173:case 172:case 209:return function getContextualTypeForInitializerExpression(e,t){const n=e.parent;if(hasInitializer(n)&&e===n.initializer){const e=getContextualTypeForVariableLikeDeclaration(n,t);if(e)return e;if(!(8&t)&&isBindingPattern(n.name)&&n.name.elements.length>0)return getTypeFromBindingPattern(n.name,!0,!1)}}(e,t);case 220:case 254:return function getContextualTypeForReturnExpression(e,t){const n=getContainingFunction(e);if(n){let e=getContextualReturnType(n,t);if(e){const t=getFunctionFlags(n);if(1&t){const n=!!(2&t);1048576&e.flags&&(e=filterType(e,e=>!!getIterationTypeOfGeneratorFunctionReturnType(1,e,n)));const r=getIterationTypeOfGeneratorFunctionReturnType(1,e,!!(2&t));if(!r)return;e=r}if(2&t){const t=mapType(e,getAwaitedTypeNoAlias);return t&&getUnionType([t,createPromiseLikeType(t)])}return e}}}(e,t);case 230:return function getContextualTypeForYieldOperand(e,t){const n=getContainingFunction(e);if(n){const r=getFunctionFlags(n);let i=getContextualReturnType(n,t);if(i){const n=!!(2&r);if(!e.asteriskToken&&1048576&i.flags&&(i=filterType(i,e=>!!getIterationTypeOfGeneratorFunctionReturnType(1,e,n))),e.asteriskToken){const r=getIterationTypesOfGeneratorFunctionReturnType(i,n),o=(null==r?void 0:r.yieldType)??nt,a=getContextualType2(e,t)??nt,s=(null==r?void 0:r.nextType)??Le,c=createGeneratorType(o,a,s,!1);return n?getUnionType([c,createGeneratorType(o,a,s,!0)]):c}return getIterationTypeOfGeneratorFunctionReturnType(0,i,n)}}}(i,t);case 224:return function getContextualTypeForAwaitOperand(e,t){const n=getContextualType2(e,t);if(n){const e=getAwaitedTypeNoAlias(n);return e&&getUnionType([e,createPromiseLikeType(e)])}}(i,t);case 214:case 215:return getContextualTypeForArgument(i,e);case 171:return function getContextualTypeForDecorator(e){const t=getDecoratorCallSignature(e);return t?getOrCreateTypeFromSignature(t):void 0}(i);case 217:case 235:return isConstTypeReference(i.type)?getContextualType2(i,t):getTypeFromTypeNode(i.type);case 227:return getContextualTypeForBinaryOperand(e,t);case 304:case 305:return getContextualTypeForObjectLiteralElement(i,t);case 306:return getContextualType2(i.parent,t);case 210:{const r=i,o=getApparentTypeOfContextualType(r,t),a=indexOfNode(r.elements,e),s=(n=getNodeLinks(r)).spreadIndices??(n.spreadIndices=function getSpreadIndices(e){let t,n;for(let r=0;r=0)return Lr[n]}return getContextualTypeForArgumentAtIndex(e,0)}(i,t);case 302:return function getContextualImportAttributeType(e){return getTypeOfPropertyOfContextualType(getGlobalImportAttributesType(!1),getNameFromImportAttribute(e))}(i)}}function pushCachedContextualType(e){pushContextualType(e,getContextualType2(e,void 0),!0)}function pushContextualType(e,t,n){wr[Rr]=e,Lr[Rr]=t,Mr[Rr]=n,Rr++}function popContextualType(){Rr--,wr[Rr]=void 0,Lr[Rr]=void 0,Mr[Rr]=void 0}function findContextualNode(e,t){for(let n=Rr-1;n>=0;n--)if(e===wr[n]&&(t||!Mr[n]))return n;return-1}function getInferenceContext(e){for(let t=Ur-1;t>=0;t--)if(isNodeDescendantOf(e,jr[t]))return Jr[t]}function getEffectiveFirstArgumentForJsxSignature(e,t){return isJsxOpeningFragment(t)||0!==getJsxReferenceKind(t)?function getJsxPropsTypeFromCallSignature(e,t){let n=getTypeOfFirstParameterOfSignatureWithFallback(e,Le);n=getJsxManagedAttributesFromLocatedAttributes(t,getJsxNamespaceAt(t),n);const r=getJsxType(qo.IntrinsicAttributes,t);isErrorType(r)||(n=intersectTypes(r,n));return n}(e,t):function getJsxPropsTypeFromClassType(e,t){const n=getJsxNamespaceAt(t),r=function getJsxElementPropertiesName(e){return getNameFromJsxElementAttributesContainer(qo.ElementAttributesPropertyNameContainer,e)}(n);let i=void 0===r?getTypeOfFirstParameterOfSignatureWithFallback(e,Le):""===r?getReturnTypeOfSignature(e):function getJsxPropsTypeForSignatureFromMember(e,t){if(e.compositeSignatures){const n=[];for(const r of e.compositeSignatures){const e=getReturnTypeOfSignature(r);if(isTypeAny(e))return e;const i=getTypeOfPropertyOfType(e,t);if(!i)return;n.push(i)}return getIntersectionType(n)}const n=getReturnTypeOfSignature(e);return isTypeAny(n)?n:getTypeOfPropertyOfType(n,t)}(e,r);if(!i)return r&&length(t.attributes.properties)&&error2(t,Ot.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,unescapeLeadingUnderscores(r)),Le;if(i=getJsxManagedAttributesFromLocatedAttributes(t,n,i),isTypeAny(i))return i;{let n=i;const r=getJsxType(qo.IntrinsicClassAttributes,t);if(!isErrorType(r)){const i=getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(r.symbol),o=getReturnTypeOfSignature(e);let a;if(i){a=instantiateType(r,createTypeMapper(i,fillMissingTypeArguments([o],i,getMinTypeArgumentCount(i),isInJSFile(t))))}else a=r;n=intersectTypes(a,n)}const o=getJsxType(qo.IntrinsicAttributes,t);return isErrorType(o)||(n=intersectTypes(o,n)),n}}(e,t)}function getJsxManagedAttributesFromLocatedAttributes(e,t,n){const r=function getJsxLibraryManagedAttributes(e){return e&&getSymbol2(e.exports,qo.LibraryManagedAttributes,788968)}(t);if(r){const t=function getStaticTypeOfReferencedJsxConstructor(e){if(isJsxOpeningFragment(e))return getJSXFragmentType(e);if(isJsxIntrinsicTagName(e.tagName))return getOrCreateTypeFromSignature(createSignatureForJSXIntrinsic(e,getIntrinsicAttributesTypeFromJsxOpeningLikeElement(e)));const t=checkExpressionCached(e.tagName);if(128&t.flags){const n=getIntrinsicAttributesTypeFromStringLiteralType(t,e);return n?getOrCreateTypeFromSignature(createSignatureForJSXIntrinsic(e,n)):Ie}return t}(e),i=instantiateAliasOrInterfaceWithDefaults(r,isInJSFile(e),t,n);if(i)return i}return n}function getIntersectedSignatures(e){return getStrictOptionValue(S,"noImplicitAny")?reduceLeft(e,(e,t)=>e!==t&&e?compareTypeParametersIdentical(e.typeParameters,t.typeParameters)?function combineSignaturesOfIntersectionMembers(e,t){const n=e.typeParameters||t.typeParameters;let r;e.typeParameters&&t.typeParameters&&(r=createTypeMapper(t.typeParameters,e.typeParameters));let i=166&(e.flags|t.flags);const o=e.declaration,a=function combineIntersectionParameters(e,t,n){const r=getParameterCount(e),i=getParameterCount(t),o=r>=i?e:t,a=o===e?t:e,s=o===e?r:i,c=hasEffectiveRestParameter(e)||hasEffectiveRestParameter(t),l=c&&!hasEffectiveRestParameter(o),d=new Array(s+(l?1:0));for(let p=0;p=getMinArgumentCount(o)&&p>=getMinArgumentCount(a),y=p>=r?void 0:getParameterNameAtPosition(e,p),h=p>=i?void 0:getParameterNameAtPosition(t,p),T=createSymbol(1|(g&&!f?16777216:0),(y===h?y:y?h?void 0:y:h)||`arg${p}`,f?32768:g?16384:0);T.links.type=f?createArrayType(_):_,d[p]=T}if(l){const e=createSymbol(1,"args",32768);e.links.type=createArrayType(getTypeAtPosition(a,s)),a===t&&(e.links.type=instantiateType(e.links.type,n)),d[s]=e}return d}(e,t,r),s=lastOrUndefined(a);s&&32768&getCheckFlags(s)&&(i|=1);const c=function combineIntersectionThisParam(e,t,n){if(!e||!t)return e||t;const r=getUnionType([getTypeOfSymbol(e),instantiateType(getTypeOfSymbol(t),n)]);return createSymbolWithType(e,r)}(e.thisParameter,t.thisParameter,r),l=Math.max(e.minArgumentCount,t.minArgumentCount),d=createSignature(o,n,c,a,void 0,void 0,l,i);d.compositeKind=2097152,d.compositeSignatures=concatenate(2097152===e.compositeKind&&e.compositeSignatures||[e],[t]),r&&(d.mapper=2097152===e.compositeKind&&e.mapper&&e.compositeSignatures?combineTypeMappers(e.mapper,r):r);return d}(e,t):void 0:e):void 0}function getContextualCallSignature(e,t){const n=filter(getSignaturesOfType(e,0),e=>!function isAritySmaller(e,t){let n=0;for(;nfunction checkGrammarRegularExpressionLiteral(e){const t=getSourceFileOfNode(e);if(!hasParseDiagnostics(t)&&!e.isUnterminated){let r;n??(n=createScanner(99,!0)),n.setScriptTarget(t.languageVersion),n.setLanguageVariant(t.languageVariant),n.setOnError((e,i,o)=>{const a=n.getTokenEnd();if(3===e.category&&r&&a===r.start&&i===r.length){const n=createDetachedDiagnostic(t.fileName,t.text,a,i,e,o);addRelatedInfo(r,n)}else r&&a===r.start||(r=createFileDiagnostic(t,a,i,e,o),vi.add(r))}),n.setText(t.text,e.pos,e.end-e.pos);try{return n.scan(),h.assert(14===n.reScanSlashToken(!0),"Expected scanner to rescan RegularExpressionLiteral"),!!r}finally{n.setText(""),n.setOnError(void 0)}}return!1}(e))),$t}function hasDefaultValue(e){return 209===e.kind&&!!e.initializer||304===e.kind&&hasDefaultValue(e.initializer)||305===e.kind&&!!e.objectAssignmentInitializer||227===e.kind&&64===e.operatorToken.kind}function checkArrayLiteral(e,t,n){const r=e.elements,i=r.length,o=[],a=[];pushCachedContextualType(e);const s=isAssignmentTarget(e),c=isConstContext(e),l=getApparentTypeOfContextualType(e,void 0),d=function isSpreadIntoCallOrNew(e){const t=walkUpParenthesizedExpressions(e.parent);return isSpreadElement(t)&&isCallOrNewExpression(t.parent)}(e)||!!l&&someType(l,e=>isTupleLikeType(e)||isGenericMappedType(e)&&!e.nameType&&!!getHomomorphicTypeVariable(e.target||e));let p=!1;for(let c=0;c8&a[t]?getIndexedAccessTypeOrUndefined(e,Ve)||ke:e),2):k?rt:Re,c))}function createArrayLiteralType(e){if(!(4&getObjectFlags(e)))return e;let t=e.literalType;return t||(t=e.literalType=cloneTypeReference(e),t.objectFlags|=147456),t}function isNumericName(e){switch(e.kind){case 168:return function isNumericComputedName(e){return isTypeAssignableToKind(checkComputedPropertyName(e),296)}(e);case 80:return isNumericLiteralName(e.escapedText);case 9:case 11:return isNumericLiteralName(e.text);default:return!1}}function checkComputedPropertyName(e){const t=getNodeLinks(e.expression);if(!t.resolvedType){if((isTypeLiteralNode(e.parent.parent)||isClassLike(e.parent.parent)||isInterfaceDeclaration(e.parent.parent))&&isBinaryExpression(e.expression)&&103===e.expression.operatorToken.kind&&178!==e.parent.kind&&179!==e.parent.kind)return t.resolvedType=Ie;if(t.resolvedType=checkExpression(e.expression),isPropertyDeclaration(e.parent)&&!hasStaticModifier(e.parent)&&isClassExpression(e.parent.parent)){const t=getEnclosingIterationStatement(getEnclosingBlockScopeContainer(e.parent.parent));t&&(getNodeLinks(t).flags|=4096,getNodeLinks(e).flags|=32768,getNodeLinks(e.parent.parent).flags|=32768)}(98304&t.resolvedType.flags||!isTypeAssignableToKind(t.resolvedType,402665900)&&!isTypeAssignableTo(t.resolvedType,st))&&error2(e,Ot.A_computed_property_name_must_be_of_type_string_number_symbol_or_any)}return t.resolvedType}function isSymbolWithNumericName(e){var t;const n=null==(t=e.declarations)?void 0:t[0];return isNumericLiteralName(e.escapedName)||n&&isNamedDeclaration(n)&&isNumericName(n.name)}function isSymbolWithSymbolName(e){var t;const n=null==(t=e.declarations)?void 0:t[0];return isKnownSymbol(e)||n&&isNamedDeclaration(n)&&isComputedPropertyName(n.name)&&isTypeAssignableToKind(checkComputedPropertyName(n.name),4096)}function isSymbolWithComputedName(e){var t;const n=null==(t=e.declarations)?void 0:t[0];return n&&isNamedDeclaration(n)&&isComputedPropertyName(n.name)}function getObjectLiteralIndexInfo(e,t,n,r){var i;const o=[];let a;for(let e=t;e0&&(a=getSpreadType(a,createObjectLiteralType(),e.symbol,f,d),o=[],i=createSymbolTable(),y=!1,T=!1,S=!1);const n=getReducedType(checkExpression(l.expression,2&t));if(isValidSpreadType(n)){const t=tryMergeUnionOfObjectTypeAndEmptyObject(n,d);if(r&&checkSpreadPropOverrides(t,r,l),v=o.length,isErrorType(a))continue;a=getSpreadType(a,t,e.symbol,f,d)}else error2(l,Ot.Spread_types_may_only_be_created_from_object_types),a=Ie;continue}h.assert(178===l.kind||179===l.kind),checkNodeDeferred(l)}!b||8576&b.flags?i.set(_.escapedName,_):isTypeAssignableTo(b,st)&&(isTypeAssignableTo(b,Ve)?T=!0:isTypeAssignableTo(b,Ze)?S=!0:y=!0,n&&(g=!0)),o.push(_)}return popContextualType(),isErrorType(a)?Ie:a!==ht?(o.length>0&&(a=getSpreadType(a,createObjectLiteralType(),e.symbol,f,d),o=[],i=createSymbolTable(),y=!1,T=!1),mapType(a,e=>e===ht?createObjectLiteralType():e)):createObjectLiteralType();function createObjectLiteralType(){const t=[],r=isConstContext(e);y&&t.push(getObjectLiteralIndexInfo(r,v,o,ze)),T&&t.push(getObjectLiteralIndexInfo(r,v,o,Ve)),S&&t.push(getObjectLiteralIndexInfo(r,v,o,Ze));const a=createAnonymousType(e.symbol,i,l,l,t);return a.objectFlags|=131200|f,_&&(a.objectFlags|=4096),g&&(a.objectFlags|=512),n&&(a.pattern=e),a}}function isValidSpreadType(e){const t=removeDefinitelyFalsyTypes(mapType(e,getBaseConstraintOrType));return!!(126615553&t.flags||3145728&t.flags&&every(t.types,isValidSpreadType))}function isHyphenatedJsxName(e){return e.includes("-")}function isJsxIntrinsicTagName(e){return isIdentifier(e)&&isIntrinsicJsxName(e.escapedText)||isJsxNamespacedName(e)}function checkJsxAttribute(e,t){return e.initializer?checkExpressionForMutableLocation(e.initializer,t):Ge}function createJsxAttributesTypeFromAttributesProperty(e,t=0){const n=k?createSymbolTable():void 0;let r,i=createSymbolTable(),o=Tt,a=!1,s=!1,c=2048;const d=getJsxElementChildrenPropertyName(getJsxNamespaceAt(e));let p,u=e;if(!isJsxOpeningFragment(e)){const l=e.attributes;p=l.symbol,u=l;const m=getContextualType2(l,0);for(const e of l.properties){const p=e.symbol;if(isJsxAttribute(e)){const r=checkJsxAttribute(e,t);c|=458752&getObjectFlags(r);const o=createSymbol(4|p.flags,p.escapedName);if(o.declarations=p.declarations,o.parent=p.parent,p.valueDeclaration&&(o.valueDeclaration=p.valueDeclaration),o.links.type=r,o.links.target=p,i.set(o.escapedName,o),null==n||n.set(o.escapedName,o),getEscapedTextOfJsxAttributeName(e.name)===d&&(s=!0),m){const t=getPropertyOfType(m,p.escapedName);t&&t.declarations&&isDeprecatedSymbol(t)&&isIdentifier(e.name)&&addDeprecatedSuggestion(e.name,t.declarations,e.name.escapedText)}if(m&&2&t&&!(4&t)&&isContextSensitive(e)){const t=getInferenceContext(l);h.assert(t);addIntraExpressionInferenceSite(t,e.initializer.expression,r)}}else{h.assert(294===e.kind),i.size>0&&(o=getSpreadType(o,createJsxAttributesTypeHelper(),l.symbol,c,!1),i=createSymbolTable());const s=getReducedType(checkExpression(e.expression,2&t));isTypeAny(s)&&(a=!0),isValidSpreadType(s)?(o=getSpreadType(o,s,l.symbol,c,!1),n&&checkSpreadPropOverrides(s,n,e)):(error2(e.expression,Ot.Spread_types_may_only_be_created_from_object_types),r=r?getIntersectionType([r,s]):s)}}a||i.size>0&&(o=getSpreadType(o,createJsxAttributesTypeHelper(),l.symbol,c,!1))}const m=e.parent;if((isJsxElement(m)&&m.openingElement===e||isJsxFragment(m)&&m.openingFragment===e)&&getSemanticJsxChildren(m.children).length>0){const n=checkJsxChildren(m,t);if(!a&&d&&""!==d){s&&error2(u,Ot._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,unescapeLeadingUnderscores(d));const t=isJsxOpeningElement(e)?getApparentTypeOfContextualType(e.attributes,void 0):void 0,r=t&&getTypeOfPropertyOfContextualType(t,d),i=createSymbol(4,d);i.links.type=1===n.length?n[0]:r&&someType(r,isTupleLikeType)?createTupleType(n):createArrayType(getUnionType(n)),i.valueDeclaration=Wr.createPropertySignature(void 0,unescapeLeadingUnderscores(d),void 0,void 0),setParent(i.valueDeclaration,u),i.valueDeclaration.symbol=i;const a=createSymbolTable();a.set(d,i),o=getSpreadType(o,createAnonymousType(p,a,l,l,l),p,c,!1)}}return a?ke:r&&o!==Tt?getIntersectionType([r,o]):r||(o===Tt?createJsxAttributesTypeHelper():o);function createJsxAttributesTypeHelper(){return c|=8192,function createJsxAttributesType(e,t,n){const r=createAnonymousType(t,n,l,l,l);return r.objectFlags|=139392|e,r}(c,p,i)}}function checkJsxChildren(e,t){const n=[];for(const r of e.children)if(12===r.kind)r.containsOnlyTriviaWhiteSpaces||n.push(ze);else{if(295===r.kind&&!r.expression)continue;n.push(checkExpressionForMutableLocation(r,t))}return n}function checkSpreadPropOverrides(e,t,n){for(const r of getPropertiesOfType(e))if(!(16777216&r.flags)){const e=t.get(r.escapedName);if(e){addRelatedInfo(error2(e.valueDeclaration,Ot._0_is_specified_more_than_once_so_this_usage_will_be_overwritten,unescapeLeadingUnderscores(e.escapedName)),createDiagnosticForNode(n,Ot.This_spread_always_overwrites_this_property))}}}function getJsxType(e,t){const n=getJsxNamespaceAt(t),r=n&&getExportsOfSymbol(n),i=r&&getSymbol2(r,e,788968);return i?getDeclaredTypeOfSymbol(i):Ie}function getIntrinsicTagSymbol(e){const t=getNodeLinks(e);if(!t.resolvedSymbol){const n=getJsxType(qo.IntrinsicElements,e);if(isErrorType(n))return A&&error2(e,Ot.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists,unescapeLeadingUnderscores(qo.IntrinsicElements)),t.resolvedSymbol=ve;{if(!isIdentifier(e.tagName)&&!isJsxNamespacedName(e.tagName))return h.fail();const r=isJsxNamespacedName(e.tagName)?getEscapedTextOfJsxNamespacedName(e.tagName):e.tagName.escapedText,i=getPropertyOfType(n,r);if(i)return t.jsxFlags|=1,t.resolvedSymbol=i;const o=getApplicableIndexSymbol(n,getStringLiteralType(unescapeLeadingUnderscores(r)));return o?(t.jsxFlags|=2,t.resolvedSymbol=o):getTypeOfPropertyOrIndexSignatureOfType(n,r)?(t.jsxFlags|=2,t.resolvedSymbol=n.symbol):(error2(e,Ot.Property_0_does_not_exist_on_type_1,intrinsicTagNameToString(e.tagName),"JSX."+qo.IntrinsicElements),t.resolvedSymbol=ve)}}return t.resolvedSymbol}function getJsxNamespaceContainerForImplicitImport(e){const t=e&&getSourceFileOfNode(e),n=t&&getNodeLinks(t);if(n&&!1===n.jsxImplicitImportContainer)return;if(n&&n.jsxImplicitImportContainer)return n.jsxImplicitImportContainer;const r=getJSXRuntimeImport(getJSXImplicitImportBase(S,t),S);if(!r)return;const i=1===qn(S)?Ot.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:Ot.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed,o=function getJSXRuntimeImportSpecifier(e,t){const n=S.importHelpers?1:0,r=null==e?void 0:e.imports[n];r&&h.assert(nodeIsSynthesized(r)&&r.text===t,`Expected sourceFile.imports[${n}] to be the synthesized JSX runtime import`);return r}(t,r),a=resolveExternalModule(o||e,r,i,e),s=a&&a!==ve?getMergedSymbol(resolveSymbol(a)):void 0;return n&&(n.jsxImplicitImportContainer=s||!1),s}function getJsxNamespaceAt(e){const t=e&&getNodeLinks(e);if(t&&t.jsxNamespace)return t.jsxNamespace;if(!t||!1!==t.jsxNamespace){let n=getJsxNamespaceContainerForImplicitImport(e);if(!n||n===ve){const t=getJsxNamespace(e);n=te(e,t,1920,void 0,!1)}if(n){const e=resolveSymbol(getSymbol2(getExportsOfSymbol(resolveSymbol(n)),qo.JSX,1920));if(e&&e!==ve)return t&&(t.jsxNamespace=e),e}t&&(t.jsxNamespace=!1)}const n=resolveSymbol(getGlobalSymbol(qo.JSX,1920,void 0));return n!==ve?n:void 0}function getNameFromJsxElementAttributesContainer(e,t){const n=t&&getSymbol2(t.exports,e,788968),r=n&&getDeclaredTypeOfSymbol(n),i=r&&getPropertiesOfType(r);if(i){if(0===i.length)return"";if(1===i.length)return i[0].escapedName;i.length>1&&n.declarations&&error2(n.declarations[0],Ot.The_global_type_JSX_0_may_not_have_more_than_one_property,unescapeLeadingUnderscores(e))}}function getJsxElementChildrenPropertyName(e){return 4===S.jsx||5===S.jsx?"children":getNameFromJsxElementAttributesContainer(qo.ElementChildrenAttributeNameContainer,e)}function getUninstantiatedJsxSignaturesOfType(e,t){if(4&e.flags)return[_r];if(128&e.flags){const n=getIntrinsicAttributesTypeFromStringLiteralType(e,t);if(n){return[createSignatureForJSXIntrinsic(t,n)]}return error2(t,Ot.Property_0_does_not_exist_on_type_1,e.value,"JSX."+qo.IntrinsicElements),l}const n=getApparentType(e);let r=getSignaturesOfType(n,1);return 0===r.length&&(r=getSignaturesOfType(n,0)),0===r.length&&1048576&n.flags&&(r=getUnionSignatures(map(n.types,e=>getUninstantiatedJsxSignaturesOfType(e,t)))),r}function getIntrinsicAttributesTypeFromStringLiteralType(e,t){const n=getJsxType(qo.IntrinsicElements,t);if(!isErrorType(n)){const t=getPropertyOfType(n,escapeLeadingUnderscores(e.value));if(t)return getTypeOfSymbol(t);const r=getIndexTypeOfType(n,ze);return r||void 0}return ke}function getIntrinsicAttributesTypeFromJsxOpeningLikeElement(e){var t;h.assert(isJsxIntrinsicTagName(e.tagName));const n=getNodeLinks(e);if(!n.resolvedJsxElementAttributesType){const r=getIntrinsicTagSymbol(e);if(1&n.jsxFlags)return n.resolvedJsxElementAttributesType=getTypeOfSymbol(r)||Ie;if(2&n.jsxFlags){const r=isJsxNamespacedName(e.tagName)?getEscapedTextOfJsxNamespacedName(e.tagName):e.tagName.escapedText;return n.resolvedJsxElementAttributesType=(null==(t=getApplicableIndexInfoForName(getJsxType(qo.IntrinsicElements,e),r))?void 0:t.type)||Ie}return n.resolvedJsxElementAttributesType=Ie}return n.resolvedJsxElementAttributesType}function getJsxElementClassTypeAt(e){const t=getJsxType(qo.ElementClass,e);if(!isErrorType(t))return t}function getJsxElementTypeAt(e){return getJsxType(qo.Element,e)}function getJsxStatelessElementTypeAt(e){const t=getJsxElementTypeAt(e);if(t)return getUnionType([t,We])}function getJsxElementTypeTypeAt(e){const t=getJsxNamespaceAt(e);if(!t)return;const n=function getJsxElementTypeSymbol(e){return e&&getSymbol2(e.exports,qo.ElementType,788968)}(t);if(!n)return;const r=instantiateAliasOrInterfaceWithDefaults(n,isInJSFile(e));return r&&!isErrorType(r)?r:void 0}function instantiateAliasOrInterfaceWithDefaults(e,t,...n){const r=getDeclaredTypeOfSymbol(e);if(524288&e.flags){const i=getSymbolLinks(e).typeParameters;if(length(i)>=n.length){const o=fillMissingTypeArguments(n,i,n.length,t);return 0===length(o)?r:getTypeAliasInstantiation(e,o)}}if(length(r.typeParameters)>=n.length){return createTypeReference(r,fillMissingTypeArguments(n,r.typeParameters,n.length,t))}}function checkJsxOpeningLikeElementOrOpeningFragment(e){const t=isJsxOpeningLikeElement(e);t&&function checkGrammarJsxElement(e){(function checkGrammarJsxName(e){if(isPropertyAccessExpression(e)&&isJsxNamespacedName(e.expression))return grammarErrorOnNode(e.expression,Ot.JSX_property_access_expressions_cannot_include_JSX_namespace_names);if(isJsxNamespacedName(e)&&getJSXTransformEnabled(S)&&!isIntrinsicJsxName(e.namespace.escapedText))return grammarErrorOnNode(e,Ot.React_components_cannot_include_JSX_namespace_names)})(e.tagName),checkGrammarTypeArguments(e,e.typeArguments);const t=new Map;for(const n of e.attributes.properties){if(294===n.kind)continue;const{name:e,initializer:r}=n,i=getEscapedTextOfJsxAttributeName(e);if(t.get(i))return grammarErrorOnNode(e,Ot.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);if(t.set(i,!0),r&&295===r.kind&&!r.expression)return grammarErrorOnNode(r,Ot.JSX_attributes_must_only_be_assigned_a_non_empty_expression)}}(e),function checkJsxPreconditions(e){0===(S.jsx||0)&&error2(e,Ot.Cannot_use_JSX_unless_the_jsx_flag_is_provided),void 0===getJsxElementTypeAt(e)&&A&&error2(e,Ot.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}(e),markJsxAliasReferenced(e);const n=getResolvedSignature(e);if(checkDeprecatedSignature(n,e),t){const t=e,r=getJsxElementTypeTypeAt(t);if(void 0!==r){const e=t.tagName;checkTypeRelatedTo(isJsxIntrinsicTagName(e)?getStringLiteralType(intrinsicTagNameToString(e)):checkExpression(e),r,ki,e,Ot.Its_type_0_is_not_a_valid_JSX_element_type,()=>{const t=getTextOfNode(e);return chainDiagnosticMessages(void 0,Ot._0_cannot_be_used_as_a_JSX_component,t)})}else!function checkJsxReturnAssignableToAppropriateBound(e,t,n){if(1===e){const e=getJsxStatelessElementTypeAt(n);e&&checkTypeRelatedTo(t,e,ki,n.tagName,Ot.Its_return_type_0_is_not_a_valid_JSX_element,generateInitialErrorChain)}else if(0===e){const e=getJsxElementClassTypeAt(n);e&&checkTypeRelatedTo(t,e,ki,n.tagName,Ot.Its_instance_type_0_is_not_a_valid_JSX_element,generateInitialErrorChain)}else{const e=getJsxStatelessElementTypeAt(n),r=getJsxElementClassTypeAt(n);if(!e||!r)return;checkTypeRelatedTo(t,getUnionType([e,r]),ki,n.tagName,Ot.Its_element_type_0_is_not_a_valid_JSX_element,generateInitialErrorChain)}function generateInitialErrorChain(){const e=getTextOfNode(n.tagName);return chainDiagnosticMessages(void 0,Ot._0_cannot_be_used_as_a_JSX_component,e)}}(getJsxReferenceKind(t),getReturnTypeOfSignature(n),t)}}function isKnownProperty(e,t,n){if(524288&e.flags&&(getPropertyOfObjectType(e,t)||getApplicableIndexInfoForName(e,t)||isLateBoundName(t)&&getIndexInfoOfType(e,ze)||n&&isHyphenatedJsxName(t)))return!0;if(33554432&e.flags)return isKnownProperty(e.baseType,t,n);if(3145728&e.flags&&isExcessPropertyCheckTarget(e))for(const r of e.types)if(isKnownProperty(r,t,n))return!0;return!1}function isExcessPropertyCheckTarget(e){return!!(524288&e.flags&&!(512&getObjectFlags(e))||67108864&e.flags||33554432&e.flags&&isExcessPropertyCheckTarget(e.baseType)||1048576&e.flags&&some(e.types,isExcessPropertyCheckTarget)||2097152&e.flags&&every(e.types,isExcessPropertyCheckTarget))}function checkJsxExpression(e,t){if(function checkGrammarJsxExpression(e){if(e.expression&&isCommaSequence(e.expression))return grammarErrorOnNode(e.expression,Ot.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array)}(e),e.expression){const n=checkExpression(e.expression,t);return e.dotDotDotToken&&n!==ke&&!isArrayType(n)&&error2(e,Ot.JSX_spread_child_must_be_an_array_type),n}return Ie}function getDeclarationNodeFlagsFromSymbol(e){return e.valueDeclaration?getCombinedNodeFlagsCached(e.valueDeclaration):0}function isPrototypeProperty(e){if(8192&e.flags||4&getCheckFlags(e))return!0;if(isInJSFile(e.valueDeclaration)){const t=e.valueDeclaration.parent;return t&&isBinaryExpression(t)&&3===getAssignmentDeclarationKind(t)}}function checkPropertyAccessibility(e,t,n,r,i,o=!0){return checkPropertyAccessibilityAtLocation(e,t,n,r,i,o?167===e.kind?e.right:206===e.kind?e:209===e.kind&&e.propertyName?e.propertyName:e.name:void 0)}function checkPropertyAccessibilityAtLocation(e,t,n,r,i,o){var a;const s=getDeclarationModifierFlagsFromSymbol(i,n);if(t){if(x<2&&symbolHasNonMethodDeclaration(i))return o&&error2(o,Ot.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword),!1;if(64&s)return o&&error2(o,Ot.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression,symbolToString(i),typeToString(getDeclaringClass(i))),!1;if(!(256&s)&&(null==(a=i.declarations)?void 0:a.some(isClassInstanceProperty)))return o&&error2(o,Ot.Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super,symbolToString(i)),!1}if(64&s&&symbolHasNonMethodDeclaration(i)&&(isThisProperty(e)||isThisInitializedObjectBindingExpression(e)||isObjectBindingPattern(e.parent)&&isThisInitializedDeclaration(e.parent.parent))){const t=getClassLikeDeclarationOfSymbol(getParentOfSymbol(i));if(t&&function isNodeUsedDuringClassInitialization(e){return!!findAncestor(e,e=>!!(isConstructorDeclaration(e)&&nodeIsPresent(e.body)||isPropertyDeclaration(e))||!(!isClassLike(e)&&!isFunctionLikeDeclaration(e))&&"quit")}(e))return o&&error2(o,Ot.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor,symbolToString(i),getTextOfIdentifierOrLiteral(t.name)),!1}if(!(6&s))return!0;if(2&s){return!!isNodeWithinClass(e,getClassLikeDeclarationOfSymbol(getParentOfSymbol(i)))||(o&&error2(o,Ot.Property_0_is_private_and_only_accessible_within_class_1,symbolToString(i),typeToString(getDeclaringClass(i))),!1)}if(t)return!0;let c=forEachEnclosingClass(e,e=>isClassDerivedFromDeclaringClasses(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(e)),i,n));return!c&&(c=function getEnclosingClassFromThisParameter(e){const t=function getThisParameterFromNodeContext(e){const t=getThisContainer(e,!1,!1);return t&&isFunctionLike(t)?getThisParameter(t):void 0}(e);let n=(null==t?void 0:t.type)&&getTypeFromTypeNode(t.type);if(n)262144&n.flags&&(n=getConstraintOfTypeParameter(n));else{const t=getThisContainer(e,!1,!1);isFunctionLike(t)&&(n=getContextualThisParameterType(t))}if(n&&7&getObjectFlags(n))return getTargetType(n);return}(e),c=c&&isClassDerivedFromDeclaringClasses(c,i,n),256&s||!c)?(o&&error2(o,Ot.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses,symbolToString(i),typeToString(getDeclaringClass(i)||r)),!1):!!(256&s)||(262144&r.flags&&(r=r.isThisType?getConstraintOfTypeParameter(r):getBaseConstraintOfType(r)),!(!r||!hasBaseType(r,c))||(o&&error2(o,Ot.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2,symbolToString(i),typeToString(c),typeToString(r)),!1))}function symbolHasNonMethodDeclaration(e){return!!forEachProperty2(e,e=>!(8192&e.flags))}function checkNonNullExpression(e){return checkNonNullType(checkExpression(e),e)}function isNullableType(e){return hasTypeFacts(e,50331648)}function getNonNullableTypeIfNeeded(e){return isNullableType(e)?getNonNullableType(e):e}function reportObjectPossiblyNullOrUndefinedError(e,t){const n=isEntityNameExpression(e)?entityNameToString(e):void 0;if(106!==e.kind)if(void 0!==n&&n.length<100){if(isIdentifier(e)&&"undefined"===n)return void error2(e,Ot.The_value_0_cannot_be_used_here,"undefined");error2(e,16777216&t?33554432&t?Ot._0_is_possibly_null_or_undefined:Ot._0_is_possibly_undefined:Ot._0_is_possibly_null,n)}else error2(e,16777216&t?33554432&t?Ot.Object_is_possibly_null_or_undefined:Ot.Object_is_possibly_undefined:Ot.Object_is_possibly_null);else error2(e,Ot.The_value_0_cannot_be_used_here,"null")}function reportCannotInvokePossiblyNullOrUndefinedError(e,t){error2(e,16777216&t?33554432&t?Ot.Cannot_invoke_an_object_which_is_possibly_null_or_undefined:Ot.Cannot_invoke_an_object_which_is_possibly_undefined:Ot.Cannot_invoke_an_object_which_is_possibly_null)}function checkNonNullTypeWithReporter(e,t,n){if(k&&2&e.flags){if(isEntityNameExpression(t)){const e=entityNameToString(t);if(e.length<100)return error2(t,Ot._0_is_of_type_unknown,e),Ie}return error2(t,Ot.Object_is_of_type_unknown),Ie}const r=getTypeFacts(e,50331648);if(50331648&r){n(t,r);const i=getNonNullableType(e);return 229376&i.flags?Ie:i}return e}function checkNonNullType(e,t){return checkNonNullTypeWithReporter(e,t,reportObjectPossiblyNullOrUndefinedError)}function checkNonNullNonVoidType(e,t){const n=checkNonNullType(e,t);if(16384&n.flags){if(isEntityNameExpression(t)){const e=entityNameToString(t);if(isIdentifier(t)&&"undefined"===e)return error2(t,Ot.The_value_0_cannot_be_used_here,e),n;if(e.length<100)return error2(t,Ot._0_is_possibly_undefined,e),n}error2(t,Ot.Object_is_possibly_undefined)}return n}function checkPropertyAccessExpression(e,t,n){return 64&e.flags?function checkPropertyAccessChain(e,t){const n=checkExpression(e.expression),r=getOptionalExpressionType(n,e.expression);return propagateOptionalTypeMarker(checkPropertyAccessExpressionOrQualifiedName(e,e.expression,checkNonNullType(r,e.expression),e.name,t),e,r!==n)}(e,t):checkPropertyAccessExpressionOrQualifiedName(e,e.expression,checkNonNullExpression(e.expression),e.name,t,n)}function checkQualifiedName(e,t){const n=isPartOfTypeQuery(e)&&isThisIdentifier(e.left)?checkNonNullType(checkThisExpression(e.left),e.left):checkNonNullExpression(e.left);return checkPropertyAccessExpressionOrQualifiedName(e,e.left,n,e.right,t)}function isMethodAccessForCall(e){for(;218===e.parent.kind;)e=e.parent;return isCallOrNewExpression(e.parent)&&e.parent.expression===e}function lookupSymbolForPrivateIdentifierDeclaration(e,t){for(let n=getContainingClassExcludingClassDecorators(t);n;n=getContainingClass(n)){const{symbol:t}=n,r=getSymbolNameForPrivateIdentifier(t,e),i=t.members&&t.members.get(r)||t.exports&&t.exports.get(r);if(i)return i}}function checkPrivateIdentifierExpression(e){!function checkGrammarPrivateIdentifierExpression(e){if(!getContainingClass(e))return grammarErrorOnNode(e,Ot.Private_identifiers_are_not_allowed_outside_class_bodies);if(!isForInStatement(e.parent)){if(!isExpressionNode(e))return grammarErrorOnNode(e,Ot.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression);const t=isBinaryExpression(e.parent)&&103===e.parent.operatorToken.kind;if(!getSymbolForPrivateIdentifierExpression(e)&&!t)return grammarErrorOnNode(e,Ot.Cannot_find_name_0,idText(e))}return!1}(e);const t=getSymbolForPrivateIdentifierExpression(e);return t&&markPropertyAsReferenced(t,void 0,!1),ke}function getSymbolForPrivateIdentifierExpression(e){if(!isExpressionNode(e))return;const t=getNodeLinks(e);return void 0===t.resolvedSymbol&&(t.resolvedSymbol=lookupSymbolForPrivateIdentifierDeclaration(e.escapedText,e)),t.resolvedSymbol}function getPrivateIdentifierPropertyOfType(e,t){return getPropertyOfType(e,t.escapedName)}function isThisPropertyAccessInConstructor(e,t){return(isConstructorDeclaredProperty(t)||isThisProperty(e)&&isAutoTypedProperty(t))&&getThisContainer(e,!0,!1)===getDeclaringConstructor(t)}function checkPropertyAccessExpressionOrQualifiedName(e,t,n,r,i,o){const a=getNodeLinks(t).resolvedSymbol,s=getAssignmentTargetKind(e),c=getApparentType(0!==s||isMethodAccessForCall(e)?getWidenedType(n):n),l=isTypeAny(c)||c===nt;let d,p;if(isPrivateIdentifier(r)){(x{const n=e.valueDeclaration;if(n&&isNamedDeclaration(n)&&isPrivateIdentifier(n.name)&&n.name.escapedText===t.escapedText)return r=e,!0});const o=diagnosticName(t);if(r){const i=h.checkDefined(r.valueDeclaration),a=h.checkDefined(getContainingClass(i));if(null==n?void 0:n.valueDeclaration){const r=n.valueDeclaration,s=getContainingClass(r);if(h.assert(!!s),findAncestor(s,e=>a===e))return addRelatedInfo(error2(t,Ot.The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling,o,typeToString(e)),createDiagnosticForNode(r,Ot.The_shadowing_declaration_of_0_is_defined_here,o),createDiagnosticForNode(i,Ot.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here,o)),!0}return error2(t,Ot.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier,o,diagnosticName(a.name||$o)),!0}return!1}(n,r,t))return Ie;const e=getContainingClassExcludingClassDecorators(r);e&&isPlainJsFile(getSourceFileOfNode(e),S.checkJs)&&grammarErrorOnNode(r,Ot.Private_field_0_must_be_declared_in_an_enclosing_class,idText(r))}else{65536&d.flags&&!(32768&d.flags)&&1!==s&&error2(e,Ot.Private_accessor_was_defined_without_a_getter)}}else{if(l)return isIdentifier(t)&&a&&markLinkedReferences(e,2,void 0,n),isErrorType(c)?Ie:c;d=getPropertyOfType(c,r.escapedText,isConstEnumObjectType(c),167===e.kind)}if(markLinkedReferences(e,2,d,n),d){const n=resolveAliasWithDeprecationCheck(d,r);if(isDeprecatedSymbol(n)&&isUncalledFunctionReference(e,n)&&n.declarations&&addDeprecatedSuggestion(r,n.declarations,r.escapedText),function checkPropertyNotUsedBeforeDeclaration(e,t,n){const{valueDeclaration:r}=e;if(!r||getSourceFileOfNode(t).isDeclarationFile)return;let i;const o=idText(n);!isInPropertyInitializerOrClassStaticBlock(t)||function isOptionalPropertyDeclaration(e){return isPropertyDeclaration(e)&&!hasAccessorModifier(e)&&e.questionToken}(r)||isAccessExpression(t)&&isAccessExpression(t.expression)||isBlockScopedNameDeclaredBeforeUse(r,n)||isMethodDeclaration(r)&&256&getCombinedModifierFlagsCached(r)||!C&&function isPropertyDeclaredInAncestorClass(e){if(!(32&e.parent.flags))return!1;let t=getTypeOfSymbol(e.parent);for(;;){if(t=t.symbol&&getSuperClass(t),!t)return!1;const n=getPropertyOfType(t,e.escapedName);if(n&&n.valueDeclaration)return!0}}(e)?264!==r.kind||184===t.parent.kind||33554432&r.flags||isBlockScopedNameDeclaredBeforeUse(r,n)||(i=error2(n,Ot.Class_0_used_before_its_declaration,o)):i=error2(n,Ot.Property_0_is_used_before_its_initialization,o);i&&addRelatedInfo(i,createDiagnosticForNode(r,Ot._0_is_declared_here,o))}(d,e,r),markPropertyAsReferenced(d,e,isSelfTypeAccess(t,a)),getNodeLinks(e).resolvedSymbol=d,checkPropertyAccessibility(e,108===t.kind,isWriteAccess(e),c,d),isAssignmentToReadonlyEntity(e,d,s))return error2(r,Ot.Cannot_assign_to_0_because_it_is_a_read_only_property,idText(r)),Ie;p=isThisPropertyAccessInConstructor(e,d)?Fe:o||isWriteOnlyAccess(e)?getWriteTypeOfSymbol(d):getTypeOfSymbol(d)}else{const t=isPrivateIdentifier(r)||0!==s&&isGenericObjectType(n)&&!isThisTypeParameter(n)?void 0:getApplicableIndexInfoForName(c,r.escapedText);if(!t||!t.type){const t=isUncheckedJSSuggestion(e,n.symbol,!0);return!t&&isJSLiteralType(n)?ke:n.symbol===q?(q.exports.has(r.escapedText)&&418&q.exports.get(r.escapedText).flags?error2(r,Ot.Property_0_does_not_exist_on_type_1,unescapeLeadingUnderscores(r.escapedText),typeToString(n)):A&&error2(r,Ot.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature,typeToString(n)),ke):(r.escapedText&&!checkAndReportErrorForExtendingInterface(e)&&reportNonexistentProperty(r,isThisTypeParameter(n)?c:n,t),Ie)}t.isReadonly&&(isAssignmentTarget(e)||isDeleteTarget(e))&&error2(e,Ot.Index_signature_in_type_0_only_permits_reading,typeToString(c)),p=t.type,S.noUncheckedIndexedAccess&&1!==getAssignmentTargetKind(e)&&(p=getUnionType([p,Be])),S.noPropertyAccessFromIndexSignature&&isPropertyAccessExpression(e)&&error2(r,Ot.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0,unescapeLeadingUnderscores(r.escapedText)),t.declaration&&isDeprecatedDeclaration2(t.declaration)&&addDeprecatedSuggestion(r,[t.declaration],r.escapedText)}return getFlowTypeOfAccessExpression(e,d,p,r,i)}function isUncheckedJSSuggestion(e,t,n){var r;const i=getSourceFileOfNode(e);if(i&&void 0===S.checkJs&&void 0===i.checkJsDirective&&(1===i.scriptKind||2===i.scriptKind)){const o=forEach(null==t?void 0:t.declarations,getSourceFileOfNode),a=!(null==t?void 0:t.valueDeclaration)||!isClassLike(t.valueDeclaration)||(null==(r=t.valueDeclaration.heritageClauses)?void 0:r.length)||classOrConstructorParameterIsDecorated(!1,t.valueDeclaration);return!(i!==o&&o&&isGlobalSourceFile(o)||n&&t&&32&t.flags&&a||e&&n&&isPropertyAccessExpression(e)&&110===e.expression.kind&&a)}return!1}function getFlowTypeOfAccessExpression(e,t,n,r,i){const o=getAssignmentTargetKind(e);if(1===o)return removeMissingType(n,!!(t&&16777216&t.flags));if(t&&!(98311&t.flags)&&!(8192&t.flags&&1048576&n.flags)&&!isDuplicatedCommonJSExport(t.declarations))return n;if(n===Fe)return getFlowTypeOfProperty(e,t);n=getNarrowableTypeForReference(n,e,i);let a=!1;if(k&&D&&isAccessExpression(e)&&110===e.expression.kind){const n=t&&t.valueDeclaration;if(n&&isPropertyWithoutInitializer(n)&&!isStatic(n)){const t=getControlFlowContainer(e);177!==t.kind||t.parent!==n.parent||33554432&n.flags||(a=!0)}}else k&&t&&t.valueDeclaration&&isPropertyAccessExpression(t.valueDeclaration)&&getAssignmentDeclarationPropertyAccessKind(t.valueDeclaration)&&getControlFlowContainer(e)===getControlFlowContainer(t.valueDeclaration)&&(a=!0);const s=getFlowTypeOfReference(e,n,a?getOptionalType(n):n);return a&&!containsUndefinedType(n)&&containsUndefinedType(s)?(error2(r,Ot.Property_0_is_used_before_being_assigned,symbolToString(t)),n):o?getBaseTypeOfLiteralType(s):s}function isInPropertyInitializerOrClassStaticBlock(e,t){return!!findAncestor(e,e=>{switch(e.kind){case 173:case 176:return!0;case 187:case 288:return"quit";case 220:return!t&&"quit";case 242:return!(!isFunctionLikeDeclaration(e.parent)||220===e.parent.kind)&&"quit";default:return!1}})}function getSuperClass(e){const t=getBaseTypes(e);if(0!==t.length)return getIntersectionType(t)}function reportNonexistentProperty(e,t,n){const r=getNodeLinks(e),i=r.nonExistentPropCheckCache||(r.nonExistentPropCheckCache=new Set),o=`${getTypeId(t)}|${n}`;if(i.has(o))return;let a,s;if(i.add(o),!isPrivateIdentifier(e)&&1048576&t.flags&&!(402784252&t.flags))for(const n of t.types)if(!getPropertyOfType(n,e.escapedText)&&!getApplicableIndexInfoForName(n,e.escapedText)){a=chainDiagnosticMessages(a,Ot.Property_0_does_not_exist_on_type_1,declarationNameToString(e),typeToString(n));break}if(typeHasStaticProperty(e.escapedText,t)){const n=declarationNameToString(e),r=typeToString(t);a=chainDiagnosticMessages(a,Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,n,r,r+"."+n)}else{const r=getPromisedTypeOfPromise(t);if(r&&getPropertyOfType(r,e.escapedText))a=chainDiagnosticMessages(a,Ot.Property_0_does_not_exist_on_type_1,declarationNameToString(e),typeToString(t)),s=createDiagnosticForNode(e,Ot.Did_you_forget_to_use_await);else{const r=declarationNameToString(e),i=typeToString(t),o=function getSuggestedLibForNonExistentProperty(e,t){const n=getApparentType(t).symbol;if(!n)return;const r=symbolName(n),i=un().get(r);if(i)for(const[t,n]of i)if(contains(n,e))return t}(r,t);if(void 0!==o)a=chainDiagnosticMessages(a,Ot.Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later,r,i,o);else{const o=getSuggestedSymbolForNonexistentProperty(e,t);if(void 0!==o){const e=symbolName(o);a=chainDiagnosticMessages(a,n?Ot.Property_0_may_not_exist_on_type_1_Did_you_mean_2:Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_2,r,i,e),s=o.valueDeclaration&&createDiagnosticForNode(o.valueDeclaration,Ot._0_is_declared_here,e)}else{const e=function containerSeemsToBeEmptyDomElement(e){return S.lib&&!S.lib.includes("lib.dom.d.ts")&&function everyContainedType(e,t){return 3145728&e.flags?every(e.types,t):t(e)}(e,e=>e.symbol&&/^(?:EventTarget|Node|(?:HTML[a-zA-Z]*)?Element)$/.test(unescapeLeadingUnderscores(e.symbol.escapedName)))&&isEmptyObjectType(e)}(t)?Ot.Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:Ot.Property_0_does_not_exist_on_type_1;a=chainDiagnosticMessages(elaborateNeverIntersection(a,t),e,r,i)}}}}const c=createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(e),e,a);s&&addRelatedInfo(c,s),addErrorOrSuggestion(!n||a.code!==Ot.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,c)}function typeHasStaticProperty(e,t){const n=t.symbol&&getPropertyOfType(getTypeOfSymbol(t.symbol),e);return void 0!==n&&!!n.valueDeclaration&&isStatic(n.valueDeclaration)}function getSuggestedSymbolForNonexistentClassMember(e,t){return getSpellingSuggestionForName(e,getPropertiesOfType(t),106500)}function getSuggestedSymbolForNonexistentProperty(e,t){let n=getPropertiesOfType(t);if("string"!=typeof e){const r=e.parent;isPropertyAccessExpression(r)&&(n=filter(n,e=>isValidPropertyAccessForCompletions(r,t,e))),e=idText(e)}return getSpellingSuggestionForName(e,n,111551)}function getSuggestedSymbolForNonexistentJSXAttribute(e,t){const n=isString(e)?e:idText(e),r=getPropertiesOfType(t);return("for"===n?find(r,e=>"htmlFor"===symbolName(e)):"class"===n?find(r,e=>"className"===symbolName(e)):void 0)??getSpellingSuggestionForName(n,r,111551)}function getSuggestionForNonexistentProperty(e,t){const n=getSuggestedSymbolForNonexistentProperty(e,t);return n&&symbolName(n)}function getSuggestedSymbolForNonexistentSymbol(e,t,n){h.assert(void 0!==t,"outername should always be defined");return ne(e,t,n,void 0,!1,!1)}function getSuggestedSymbolForNonexistentModule(e,t){return t.exports&&getSpellingSuggestionForName(idText(e),getExportsOfModuleAsArray(t),2623475)}function getSpellingSuggestionForName(e,t,n){return getSpellingSuggestion(e,t,function getCandidateName(e){const t=symbolName(e);if(startsWith(t,'"'))return;if(e.flags&n)return t;if(2097152&e.flags){const r=function tryResolveAlias(e){if(getSymbolLinks(e).aliasTarget!==be)return resolveAlias(e)}(e);if(r&&r.flags&n)return t}return})}function markPropertyAsReferenced(e,t,n){const r=e&&106500&e.flags&&e.valueDeclaration;if(!r)return;const i=hasEffectiveModifier(r,2),o=e.valueDeclaration&&isNamedDeclaration(e.valueDeclaration)&&isPrivateIdentifier(e.valueDeclaration.name);if((i||o)&&(!t||!isWriteOnlyAccess(t)||65536&e.flags)){if(n){const n=findAncestor(t,isFunctionLikeDeclaration);if(n&&n.symbol===e)return}(1&getCheckFlags(e)?getSymbolLinks(e).target:e).isReferenced=-1}}function isSelfTypeAccess(e,t){return 110===e.kind||!!t&&isEntityNameExpression(e)&&t===getResolvedSymbol(getFirstIdentifier(e))}function isValidPropertyAccessForCompletions(e,t,n){return isPropertyAccessible(e,212===e.kind&&108===e.expression.kind,!1,t,n)}function isValidPropertyAccessWithType(e,t,n,r){if(isTypeAny(r))return!0;const i=getPropertyOfType(r,n);return!!i&&isPropertyAccessible(e,t,!1,r,i)}function isPropertyAccessible(e,t,n,r,i){if(isTypeAny(r))return!0;if(i.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(i.valueDeclaration)){const t=getContainingClass(i.valueDeclaration);return!isOptionalChain(e)&&!!findAncestor(e,e=>e===t)}return checkPropertyAccessibilityAtLocation(e,t,n,r,i)}function getForInVariableSymbol(e){const t=e.initializer;if(262===t.kind){const e=t.declarations[0];if(e&&!isBindingPattern(e.name))return getSymbolOfDeclaration(e)}else if(80===t.kind)return getResolvedSymbol(t)}function hasNumericPropertyNames(e){return 1===getIndexInfosOfType(e).length&&!!getIndexInfoOfType(e,Ve)}function checkIndexedAccess(e,t){return 64&e.flags?function checkElementAccessChain(e,t){const n=checkExpression(e.expression),r=getOptionalExpressionType(n,e.expression);return propagateOptionalTypeMarker(checkElementAccessExpression(e,checkNonNullType(r,e.expression),t),e,r!==n)}(e,t):checkElementAccessExpression(e,checkNonNullExpression(e.expression),t)}function checkElementAccessExpression(e,t,n){const r=0!==getAssignmentTargetKind(e)||isMethodAccessForCall(e)?getWidenedType(t):t,i=e.argumentExpression,o=checkExpression(i);if(isErrorType(r)||r===nt)return r;if(isConstEnumObjectType(r)&&!isStringLiteralLike(i))return error2(i,Ot.A_const_enum_member_can_only_be_accessed_using_a_string_literal),Ie;const a=function isForInVariableForNumericPropertyNames(e){const t=skipParentheses(e);if(80===t.kind){const n=getResolvedSymbol(t);if(3&n.flags){let t=e,r=e.parent;for(;r;){if(250===r.kind&&t===r.statement&&getForInVariableSymbol(r)===n&&hasNumericPropertyNames(getTypeOfExpression(r.expression)))return!0;t=r,r=r.parent}}}return!1}(i)?Ve:o,s=getAssignmentTargetKind(e);let c;0===s?c=32:(c=4|(isGenericObjectType(r)&&!isThisTypeParameter(r)?2:0),2===s&&(c|=32));const l=getIndexedAccessTypeOrUndefined(r,a,c,e)||Ie;return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(e,getNodeLinks(e).resolvedSymbol,l,i,n),e)}function callLikeExpressionMayHaveTypeArguments(e){return isCallOrNewExpression(e)||isTaggedTemplateExpression(e)||isJsxOpeningLikeElement(e)}function resolveUntypedCall(e){return callLikeExpressionMayHaveTypeArguments(e)&&forEach(e.typeArguments,checkSourceElement),216===e.kind?checkExpression(e.template):isJsxOpeningLikeElement(e)?checkExpression(e.attributes):isBinaryExpression(e)?checkExpression(e.left):isCallOrNewExpression(e)&&forEach(e.arguments,e=>{checkExpression(e)}),_r}function resolveErrorCall(e){return resolveUntypedCall(e),fr}function isSpreadArgument(e){return!!e&&(231===e.kind||238===e.kind&&e.isSpread)}function getSpreadArgumentIndex(e){return findIndex(e,isSpreadArgument)}function acceptsVoid(e){return!!(16384&e.flags)}function acceptsVoidUndefinedUnknownOrAny(e){return!!(49155&e.flags)}function hasCorrectArity(e,t,n,r=!1){if(isJsxOpeningFragment(e))return!0;let i,o=!1,a=getParameterCount(n),s=getMinArgumentCount(n);if(216===e.kind)if(i=t.length,229===e.template.kind){const t=last(e.template.templateSpans);o=nodeIsMissing(t.literal)||!!t.literal.isUnterminated}else{const t=e.template;h.assert(15===t.kind),o=!!t.isUnterminated}else if(171===e.kind)i=getDecoratorArgumentCount(e,n);else if(227===e.kind)i=1;else if(isJsxOpeningLikeElement(e)){if(o=e.attributes.end===e.end,o)return!0;i=0===s?t.length:1,a=0===t.length?a:1,s=Math.min(s,1)}else{if(!e.arguments)return h.assert(215===e.kind),0===getMinArgumentCount(n);{i=r?t.length+1:t.length,o=e.arguments.end===e.end;const a=getSpreadArgumentIndex(t);if(a>=0)return a>=getMinArgumentCount(n)&&(hasEffectiveRestParameter(n)||aa)return!1;if(o||i>=s)return!0;for(let t=i;t=r&&t.length<=n}function isInstantiatedGenericParameter(e,t){let n;return!!(e.target&&(n=tryGetTypeAtPosition(e.target,t))&&isGenericType(n))}function getSingleCallSignature(e){return getSingleSignature(e,0,!1)}function getSingleCallOrConstructSignature(e){return getSingleSignature(e,0,!1)||getSingleSignature(e,1,!1)}function getSingleSignature(e,t,n){if(524288&e.flags){const r=resolveStructuredTypeMembers(e);if(n||0===r.properties.length&&0===r.indexInfos.length){if(0===t&&1===r.callSignatures.length&&0===r.constructSignatures.length)return r.callSignatures[0];if(1===t&&1===r.constructSignatures.length&&0===r.callSignatures.length)return r.constructSignatures[0]}}}function instantiateSignatureInContextOf(e,t,n,r){const i=createInferenceContext(getTypeParametersForMapper(e),e,0,r),o=getEffectiveRestType(t),a=n&&(o&&262144&o.flags?n.nonFixingMapper:n.mapper);return applyToParameterTypes(a?instantiateSignature(t,a):t,e,(e,t)=>{inferTypes(i.inferences,e,t)}),n||applyToReturnTypes(t,e,(e,t)=>{inferTypes(i.inferences,e,t,128)}),getSignatureInstantiation(e,getInferredTypes(i),isInJSFile(t.declaration))}function getThisArgumentType(e){if(!e)return et;const t=checkExpression(e);return isRightSideOfInstanceofExpression(e)?t:isOptionalChainRoot(e.parent)?getNonNullableType(t):isOptionalChain(e.parent)?removeOptionalTypeMarker(t):t}function inferTypeArguments(e,t,n,r,i){if(isJsxOpeningLikeElement(e))return function inferJsxTypeArguments(e,t,n,r){const i=getEffectiveFirstArgumentForJsxSignature(t,e),o=checkExpressionWithContextualType(e.attributes,i,r,n);return inferTypes(r.inferences,o,i),getInferredTypes(r)}(e,t,r,i);if(171!==e.kind&&227!==e.kind){const n=every(t.typeParameters,e=>!!getDefaultFromTypeParameter(e)),r=getContextualType2(e,n?8:0);if(r){const o=getReturnTypeOfSignature(t);if(couldContainTypeVariables(o)){const a=getInferenceContext(e);if(!(!n&&getContextualType2(e,8)!==r)){const e=instantiateType(r,getMapperFromContext(cloneInferenceContext(a,1))),t=getSingleCallSignature(e),n=t&&t.typeParameters?getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(t,t.typeParameters)):e;inferTypes(i.inferences,n,o,128)}const s=createInferenceContext(t.typeParameters,t,i.flags),c=instantiateType(r,a&&function createOuterReturnMapper(e){return e.outerReturnMapper??(e.outerReturnMapper=mergeTypeMappers(e.returnMapper,cloneInferenceContext(e).mapper))}(a));inferTypes(s.inferences,c,o),i.returnMapper=some(s.inferences,hasInferenceCandidates)?getMapperFromContext(function cloneInferredPartOfContext(e){const t=filter(e.inferences,hasInferenceCandidates);return t.length?createInferenceContextWorker(map(t,cloneInferenceInfo),e.signature,e.flags,e.compareTypes):void 0}(s)):void 0}}}const o=getNonArrayRestType(t),a=o?Math.min(getParameterCount(t)-1,n.length):n.length;if(o&&262144&o.flags){const e=find(i.inferences,e=>e.typeParameter===o);e&&(e.impliedArity=findIndex(n,isSpreadArgument,a)<0?n.length-a:void 0)}const s=getThisTypeOfSignature(t);if(s&&couldContainTypeVariables(s)){const t=getThisArgumentOfCall(e);inferTypes(i.inferences,getThisArgumentType(t),s)}for(let e=0;e=n-1){const t=e[n-1];if(isSpreadArgument(t)){const e=238===t.kind?t.type:checkExpressionWithContextualType(t.expression,r,i,o);return isArrayLikeType(e)?getMutableArrayOrTupleType(e):createArrayType(checkIteratedTypeOrElementType(33,e,Me,231===t.kind?t.expression:t),a)}}const s=[],c=[],l=[];for(let d=t;dchainDiagnosticMessages(void 0,Ot.Type_0_does_not_satisfy_the_constraint_1):void 0,l=r||Ot.Type_0_does_not_satisfy_the_constraint_1;s||(s=createTypeMapper(o,a));const d=a[e];if(!checkTypeAssignableTo(d,getTypeWithThisArgument(instantiateType(i,s),d),n?t[e]:void 0,l,c))return}}return a}function getJsxReferenceKind(e){if(isJsxIntrinsicTagName(e.tagName))return 2;const t=getApparentType(checkExpression(e.tagName));return length(getSignaturesOfType(t,1))?0:length(getSignaturesOfType(t,0))?1:2}function getEffectiveCheckNode(e){return skipOuterExpressions(e,isInJSFile(e)?-2147483615:33)}function getSignatureApplicabilityError(e,t,n,r,i,o,a){const s={errors:void 0,skipLogging:!0};if(isJsxCallLike(e))return function checkApplicableSignatureForJsxCallLikeElement(e,t,n,r,i,o,a){const s=getEffectiveFirstArgumentForJsxSignature(t,e),c=isJsxOpeningFragment(e)?createJsxAttributesTypeFromAttributesProperty(e):checkExpressionWithContextualType(e.attributes,s,void 0,r),l=4&r?getRegularTypeOfObjectLiteral(c):c;return function checkTagNameDoesNotExpectTooManyArguments(){var t;if(getJsxNamespaceContainerForImplicitImport(e))return!0;const n=!isJsxOpeningElement(e)&&!isJsxSelfClosingElement(e)||isJsxIntrinsicTagName(e.tagName)||isJsxNamespacedName(e.tagName)?void 0:checkExpression(e.tagName);if(!n)return!0;const r=getSignaturesOfType(n,0);if(!length(r))return!0;const o=getJsxFactoryEntity(e);if(!o)return!0;const s=resolveEntityName(o,111551,!0,!1,e);if(!s)return!0;const c=getSignaturesOfType(getTypeOfSymbol(s),0);if(!length(c))return!0;let l=!1,d=0;for(const e of c){const t=getSignaturesOfType(getTypeAtPosition(e,0),0);if(length(t))for(const e of t){if(l=!0,hasEffectiveRestParameter(e))return!0;const t=getParameterCount(e);t>d&&(d=t)}}if(!l)return!0;let p=1/0;for(const e of r){const t=getMinArgumentCount(e);t{n.push(e.expression)}),n}if(171===e.kind)return function getEffectiveDecoratorArguments(e){const t=e.expression,n=getDecoratorCallSignature(e);if(n){const e=[];for(const r of n.parameters){const n=getTypeOfSymbol(r);e.push(createSyntheticExpression(t,n))}return e}return h.fail()}(e);if(227===e.kind)return[e.left];if(isJsxOpeningLikeElement(e))return e.attributes.properties.length>0||isJsxOpeningElement(e)&&e.parent.children.length>0?[e.attributes]:l;const t=e.arguments||l,n=getSpreadArgumentIndex(t);if(n>=0){const e=t.slice(0,n);for(let r=n;r{var o;const a=i.target.elementFlags[r],s=createSyntheticExpression(n,4&a?createArrayType(t):t,!!(12&a),null==(o=i.target.labeledElementDeclarations)?void 0:o[r]);e.push(s)}):e.push(n)}return e}return t}function getDecoratorArgumentCount(e,t){return S.experimentalDecorators?function getLegacyDecoratorArgumentCount(e,t){switch(e.parent.kind){case 264:case 232:return 1;case 173:return hasAccessorModifier(e.parent)?3:2;case 175:case 178:case 179:return t.parameters.length<=2?2:3;case 170:return 3;default:return h.fail()}}(e,t):Math.min(Math.max(getParameterCount(t),1),2)}function getDiagnosticSpanForCallNode(e){const t=getSourceFileOfNode(e),{start:n,length:r}=getErrorSpanForNode(t,isPropertyAccessExpression(e.expression)?e.expression.name:e.expression);return{start:n,length:r,sourceFile:t}}function getDiagnosticForCallNode(e,t,...n){if(isCallExpression(e)){const{sourceFile:r,start:i,length:o}=getDiagnosticSpanForCallNode(e);return"message"in t?createFileDiagnostic(r,i,o,t,...n):createDiagnosticForFileFromMessageChain(r,t)}return"message"in t?createDiagnosticForNode(e,t,...n):createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(e),e,t)}function getArgumentArityError(e,t,n,r){var i;const o=getSpreadArgumentIndex(n);if(o>-1)return createDiagnosticForNode(n[o],Ot.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);let a,s=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY;for(const e of t){const t=getMinArgumentCount(e),r=getParameterCount(e);tl&&(l=t),n.length1&&(y=chooseOverload(x,Ei,b,C)),y||(y=chooseOverload(x,ki,b,C));const E=getNodeLinks(e);if(E.resolvedSignature!==gr&&!n)return h.assert(E.resolvedSignature),E.resolvedSignature;if(y)return y;if(y=function getCandidateForOverloadFailure(e,t,n,r,i){return h.assert(t.length>0),checkNodeDeferred(e),r||1===t.length||t.some(e=>!!e.typeParameters)?function pickLongestCandidateSignature(e,t,n,r){const i=function getLongestCandidateIndex(e,t){let n=-1,r=-1;for(let i=0;i=t)return i;a>r&&(r=a,n=i)}return n}(t,void 0===H?n.length:H),o=t[i],{typeParameters:a}=o;if(!a)return o;const s=callLikeExpressionMayHaveTypeArguments(e)?e.typeArguments:void 0,c=s?createSignatureInstantiation(o,function getTypeArgumentsFromNodes(e,t,n){const r=e.map(getTypeOfNode);for(;r.length>t.length;)r.pop();for(;r.lengthe.thisParameter);let n;t.length&&(n=createCombinedSymbolFromTypes(t,t.map(getTypeOfParameter)));const{min:r,max:i}=minAndMax(e,getNumNonRestParameters),o=[];for(let t=0;tsignatureHasRestParameter(e)?ttryGetTypeAtPosition(e,t))))}const a=mapDefined(e,e=>signatureHasRestParameter(e)?last(e.parameters):void 0);let s=128;if(0!==a.length){const t=createArrayType(getUnionType(mapDefined(e,tryGetRestTypeOfSignature),2));o.push(createCombinedSymbolForOverloadFailure(a,t)),s|=1}e.some(signatureHasLiteralTypes)&&(s|=2);return createSignature(e[0].declaration,void 0,n,o,getIntersectionType(e.map(getReturnTypeOfSignature)),void 0,r,s)}(t)}(e,x,v,!!n,r),E.resolvedSignature=y,u)if(!o&&p&&(o=Ot.The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method),m)if(1===m.length||m.length>3){const t=m[m.length-1];let n;m.length>3&&(n=chainDiagnosticMessages(n,Ot.The_last_overload_gave_the_following_error),n=chainDiagnosticMessages(n,Ot.No_overload_matches_this_call)),o&&(n=chainDiagnosticMessages(n,o));const r=getSignatureApplicabilityError(e,v,t,ki,0,!0,()=>n);if(r)for(const e of r)t.declaration&&m.length>3&&addRelatedInfo(e,createDiagnosticForNode(t.declaration,Ot.The_last_overload_is_declared_here)),addImplementationSuccessElaboration(t,e),vi.add(e);else h.fail("No error for last overload signature")}else{const t=[];let n=0,r=Number.MAX_VALUE,i=0,a=0;for(const o of m){const s=getSignatureApplicabilityError(e,v,o,ki,0,!0,()=>chainDiagnosticMessages(void 0,Ot.Overload_0_of_1_2_gave_the_following_error,a+1,x.length,signatureToString(o)));s?(s.length<=r&&(r=s.length,i=a),n=Math.max(n,s.length),t.push(s)):h.fail("No error for 3 or fewer overload signatures"),a++}const s=n>1?t[i]:flatten(t);h.assert(s.length>0,"No errors reported for 3 or fewer overload signatures");let c=chainDiagnosticMessages(map(s,createDiagnosticMessageChainFromDiagnostic),Ot.No_overload_matches_this_call);o&&(c=chainDiagnosticMessages(c,o));const l=[...flatMap(s,e=>e.relatedInformation)];let d;if(every(s,e=>e.start===s[0].start&&e.length===s[0].length&&e.file===s[0].file)){const{file:e,start:t,length:n}=s[0];d={file:e,start:t,length:n,code:c.code,category:c.category,messageText:c,relatedInformation:l}}else d=createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(e),function getErrorNodeForCallNode(e){return isCallOrNewExpression(e)?isPropertyAccessExpression(e.expression)?e.expression.name:e.expression:isTaggedTemplateExpression(e)?isPropertyAccessExpression(e.tag)?e.tag.name:e.tag:isJsxOpeningLikeElement(e)?e.tagName:e}(e),c,l);addImplementationSuccessElaboration(m[0],d),vi.add(d)}else if(_)vi.add(getArgumentArityError(e,[_],v,o));else if(f)checkTypeArguments(f,e.typeArguments,!0,o);else if(!d){const n=filter(t,e=>hasCorrectTypeArgumentArity(e,T));0===n.length?vi.add(function getTypeArgumentArityError(e,t,n,r){const i=n.length;if(1===t.length){const o=t[0],a=getMinTypeArgumentCount(o.typeParameters),s=length(o.typeParameters);if(r){let t=chainDiagnosticMessages(void 0,Ot.Expected_0_type_arguments_but_got_1,ai?a=Math.min(a,t):n1?find(s,e=>isFunctionLikeDeclaration(e)&&nodeIsPresent(e.body)):void 0;if(c){const e=getSignatureFromDeclaration(c),n=!e.typeParameters;chooseOverload([e],ki,n)&&addRelatedInfo(t,createDiagnosticForNode(c,Ot.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}m=i,_=o,f=a}function chooseOverload(t,n,r,i=!1){if(m=void 0,_=void 0,f=void 0,r){const r=t[0];if(some(T)||!hasCorrectArity(e,v,r,i))return;return getSignatureApplicabilityError(e,v,r,n,0,!1,void 0)?void(m=[r]):r}for(let r=0;r!!(4&e.flags)))return error2(e,Ot.Cannot_create_an_instance_of_an_abstract_class),resolveErrorCall(e);const o=r.symbol&&getClassLikeDeclarationOfSymbol(r.symbol);return o&&hasSyntacticModifier(o,64)?(error2(e,Ot.Cannot_create_an_instance_of_an_abstract_class),resolveErrorCall(e)):resolveCall(e,i,t,n,0)}const o=getSignaturesOfType(r,0);if(o.length){const r=resolveCall(e,o,t,n,0);return A||(r.declaration&&!isJSConstructor(r.declaration)&&getReturnTypeOfSignature(r)!==et&&error2(e,Ot.Only_a_void_function_can_be_called_with_the_new_keyword),getThisTypeOfSignature(r)===et&&error2(e,Ot.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),r}return invocationError(e.expression,r,1),resolveErrorCall(e)}function someSignature(e,t){return isArray(e)?some(e,e=>someSignature(e,t)):1048576===e.compositeKind?some(e.compositeSignatures,t):t(e)}function typeHasProtectedAccessibleBase(e,t){const n=getBaseTypes(t);if(!length(n))return!1;const r=n[0];if(2097152&r.flags){const t=findMixins(r.types);let n=0;for(const i of r.types){if(!t[n]&&3&getObjectFlags(i)){if(i.symbol===e)return!0;if(typeHasProtectedAccessibleBase(e,i))return!0}n++}return!1}return r.symbol===e||typeHasProtectedAccessibleBase(e,r)}function invocationErrorDetails(e,t,n){let r;const i=0===n,o=getAwaitedType(t),a=o&&getSignaturesOfType(o,n).length>0;if(1048576&t.flags){const e=t.types;let o=!1;for(const a of e){if(0!==getSignaturesOfType(a,n).length){if(o=!0,r)break}else if(r||(r=chainDiagnosticMessages(r,i?Ot.Type_0_has_no_call_signatures:Ot.Type_0_has_no_construct_signatures,typeToString(a)),r=chainDiagnosticMessages(r,i?Ot.Not_all_constituents_of_type_0_are_callable:Ot.Not_all_constituents_of_type_0_are_constructable,typeToString(t))),o)break}o||(r=chainDiagnosticMessages(void 0,i?Ot.No_constituent_of_type_0_is_callable:Ot.No_constituent_of_type_0_is_constructable,typeToString(t))),r||(r=chainDiagnosticMessages(r,i?Ot.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:Ot.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,typeToString(t)))}else r=chainDiagnosticMessages(r,i?Ot.Type_0_has_no_call_signatures:Ot.Type_0_has_no_construct_signatures,typeToString(t));let s=i?Ot.This_expression_is_not_callable:Ot.This_expression_is_not_constructable;if(isCallExpression(e.parent)&&0===e.parent.arguments.length){const{resolvedSymbol:t}=getNodeLinks(e);t&&32768&t.flags&&(s=Ot.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without)}return{messageChain:chainDiagnosticMessages(r,s),relatedMessage:a?Ot.Did_you_forget_to_use_await:void 0}}function invocationError(e,t,n,r){const{messageChain:i,relatedMessage:o}=invocationErrorDetails(e,t,n),a=createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(e),e,i);if(o&&addRelatedInfo(a,createDiagnosticForNode(e,o)),isCallExpression(e.parent)){const{start:t,length:n}=getDiagnosticSpanForCallNode(e.parent);a.start=t,a.length=n}vi.add(a),invocationErrorRecovery(t,n,r?addRelatedInfo(a,r):a)}function invocationErrorRecovery(e,t,n){if(!e.symbol)return;const r=getSymbolLinks(e.symbol).originatingImport;if(r&&!isImportCall(r)){const i=getSignaturesOfType(getTypeOfSymbol(getSymbolLinks(e.symbol).target),t);if(!i||!i.length)return;addRelatedInfo(n,createDiagnosticForNode(r,Ot.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}function resolveDecorator(e,t,n){const r=checkExpression(e.expression),i=getApparentType(r);if(isErrorType(i))return resolveErrorCall(e);const o=getSignaturesOfType(i,0),a=getSignaturesOfType(i,1).length;if(isUntypedFunctionCall(r,i,o.length,a))return resolveUntypedCall(e);if(function isPotentiallyUncalledDecorator(e,t){return t.length&&every(t,t=>0===t.minArgumentCount&&!signatureHasRestParameter(t)&&t.parameters.lengthisInJSFile(e.declaration)&&!!getJSDocClassTag(e.declaration))?(error2(e,Ot.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new,typeToString(i)),resolveErrorCall(e)):resolveCall(e,a,t,n,r)}(e,t,n);case 215:return resolveNewExpression(e,t,n);case 216:return function resolveTaggedTemplateExpression(e,t,n){const r=checkExpression(e.tag),i=getApparentType(r);if(isErrorType(i))return resolveErrorCall(e);const o=getSignaturesOfType(i,0),a=getSignaturesOfType(i,1).length;if(isUntypedFunctionCall(r,i,o.length,a))return resolveUntypedCall(e);if(!o.length){if(isArrayLiteralExpression(e.parent)){const t=createDiagnosticForNode(e.tag,Ot.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);return vi.add(t),resolveErrorCall(e)}return invocationError(e.tag,i,0),resolveErrorCall(e)}return resolveCall(e,o,t,n,0)}(e,t,n);case 171:return resolveDecorator(e,t,n);case 290:case 287:case 286:return resolveJsxOpeningLikeElement(e,t,n);case 227:return function resolveInstanceofExpression(e,t,n){const r=checkExpression(e.right);if(!isTypeAny(r)){const i=getSymbolHasInstanceMethodOfObjectType(r);if(i){const r=getApparentType(i);if(isErrorType(r))return resolveErrorCall(e);const o=getSignaturesOfType(r,0),a=getSignaturesOfType(r,1);if(isUntypedFunctionCall(i,r,o.length,a.length))return resolveUntypedCall(e);if(o.length)return resolveCall(e,o,t,n,0)}else if(!typeHasCallOrConstructSignatures(r)&&!isTypeSubtypeOf(r,Wt))return error2(e.right,Ot.The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method),resolveErrorCall(e)}return _r}(e,t,n)}h.assertNever(e,"Branch in 'resolveSignature' should be unreachable.")}function getResolvedSignature(e,t,n){const r=getNodeLinks(e),i=r.resolvedSignature;if(i&&i!==gr&&!t)return i;const o=Yr;i||(Yr=$r.length),r.resolvedSignature=gr;const a=resolveSignature(e,t,n||0);return Yr=o,a!==gr&&(r.resolvedSignature=Pr===Dr?a:i),a}function isJSConstructor(e){var t;if(!e||!isInJSFile(e))return!1;const n=isFunctionDeclaration(e)||isFunctionExpression(e)?e:(isVariableDeclaration(e)||isPropertyAssignment(e))&&e.initializer&&isFunctionExpression(e.initializer)?e.initializer:void 0;if(n){if(getJSDocClassTag(e))return!0;if(isPropertyAssignment(walkUpParenthesizedExpressions(n.parent)))return!1;const r=getSymbolOfDeclaration(n);return!!(null==(t=null==r?void 0:r.members)?void 0:t.size)}return!1}function mergeJSSymbols(e,t){var n,r;if(t){const i=getSymbolLinks(t);if(!i.inferredClassSymbol||!i.inferredClassSymbol.has(getSymbolId(e))){const o=isTransientSymbol(e)?e:cloneSymbol(e);return o.exports=o.exports||createSymbolTable(),o.members=o.members||createSymbolTable(),o.flags|=32&t.flags,(null==(n=t.exports)?void 0:n.size)&&mergeSymbolTable(o.exports,t.exports),(null==(r=t.members)?void 0:r.size)&&mergeSymbolTable(o.members,t.members),(i.inferredClassSymbol||(i.inferredClassSymbol=new Map)).set(getSymbolId(o),o),o}return i.inferredClassSymbol.get(getSymbolId(e))}}function getSymbolOfExpando(e,t){if(!e.parent)return;let n,r;if(isVariableDeclaration(e.parent)&&e.parent.initializer===e){if(!(isInJSFile(e)||isVarConstLike2(e.parent)&&isFunctionLikeDeclaration(e)))return;n=e.parent.name,r=e.parent}else if(isBinaryExpression(e.parent)){const i=e.parent,o=e.parent.operatorToken.kind;if(64!==o||!t&&i.right!==e){if(!(57!==o&&61!==o||(isVariableDeclaration(i.parent)&&i.parent.initializer===i?(n=i.parent.name,r=i.parent):isBinaryExpression(i.parent)&&64===i.parent.operatorToken.kind&&(t||i.parent.right===i)&&(n=i.parent.left,r=n),n&&isBindableStaticNameExpression(n)&&isSameEntityName(n,i.left))))return}else n=i.left,r=n}else t&&isFunctionDeclaration(e)&&(n=e.name,r=e);return r&&n&&(t||getExpandoInitializer(e,isPrototypeAccess(n)))?getSymbolOfNode(r):void 0}function checkDeprecatedSignature(e,t){if(!(128&e.flags)&&e.declaration&&536870912&e.declaration.flags){const n=getDeprecatedSuggestionNode(t),r=tryGetPropertyAccessOrIdentifierToString(getInvokedExpression(t));!function addDeprecatedSuggestionWithSignature(e,t,n,r){return addDeprecatedSuggestionWorker(t,n?createDiagnosticForNode(e,Ot.The_signature_0_of_1_is_deprecated,r,n):createDiagnosticForNode(e,Ot._0_is_deprecated,r))}(n,e.declaration,r,signatureToString(e))}}function getDeprecatedSuggestionNode(e){switch((e=skipParentheses(e)).kind){case 214:case 171:case 215:return getDeprecatedSuggestionNode(e.expression);case 216:return getDeprecatedSuggestionNode(e.tag);case 287:case 286:return getDeprecatedSuggestionNode(e.tagName);case 213:return e.argumentExpression;case 212:return e.name;case 184:const t=e;return isQualifiedName(t.typeName)?t.typeName.right:t;default:return e}}function isSymbolOrSymbolForCall(e){if(!isCallExpression(e))return!1;let t=e.expression;if(isPropertyAccessExpression(t)&&"for"===t.name.escapedText&&(t=t.expression),!isIdentifier(t)||"Symbol"!==t.escapedText)return!1;const n=getGlobalESSymbolConstructorSymbol(!1);return!!n&&n===te(t,"Symbol",111551,void 0,!1)}function checkImportCallExpression(e){if(function checkGrammarImportCallExpression(e){if(S.verbatimModuleSyntax&&1===v)return grammarErrorOnNode(e,getVerbatimModuleSyntaxErrorMessage(e));if(237===e.expression.kind){if(99!==v&&200!==v)return grammarErrorOnNode(e,Ot.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve)}else if(5===v)return grammarErrorOnNode(e,Ot.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext);if(e.typeArguments)return grammarErrorOnNode(e,Ot.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);const t=e.arguments;if(!(100<=v&&v<=199)&&99!==v&&200!==v&&(checkGrammarForDisallowedTrailingComma(t),t.length>1)){return grammarErrorOnNode(t[1],Ot.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve)}if(0===t.length||t.length>2)return grammarErrorOnNode(e,Ot.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments);const n=find(t,isSpreadElement);if(n)return grammarErrorOnNode(n,Ot.Argument_of_dynamic_import_cannot_be_spread_element);return!1}(e),0===e.arguments.length)return createPromiseReturnType(e,ke);const t=e.arguments[0],n=checkExpressionCached(t),r=e.arguments.length>1?checkExpressionCached(e.arguments[1]):void 0;for(let t=2;t!!e.typeParameters&&hasCorrectTypeArgumentArity(e,n)),e=>{const t=checkTypeArguments(e,n,!0);return t?getSignatureInstantiation(e,t,isInJSFile(e.declaration)):e})}}function checkSatisfiesExpressionWorker(e,t,n){const r=checkExpression(e,n),i=getTypeFromTypeNode(t);if(isErrorType(i))return i;return checkTypeAssignableToAndOptionallyElaborate(r,i,findAncestor(t.parent,e=>239===e.kind||351===e.kind),e,Ot.Type_0_does_not_satisfy_the_expected_type_1),r}function checkMetaProperty(e){return function checkGrammarMetaProperty(e){const t=e.name.escapedText;switch(e.keywordToken){case 105:if("target"!==t)return grammarErrorOnNode(e.name,Ot._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,unescapeLeadingUnderscores(e.name.escapedText),tokenToString(e.keywordToken),"target");break;case 102:if("meta"!==t){const n=isCallExpression(e.parent)&&e.parent.expression===e;if("defer"!==t)return n?grammarErrorOnNode(e.name,Ot._0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer,unescapeLeadingUnderscores(e.name.escapedText)):grammarErrorOnNode(e.name,Ot._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2,unescapeLeadingUnderscores(e.name.escapedText),tokenToString(e.keywordToken),"meta");if(!n)return grammarErrorAtPos(e,e.end,0,Ot._0_expected,"(")}}}(e),105===e.keywordToken?checkNewTargetMetaProperty(e):102===e.keywordToken?"defer"===e.name.escapedText?(h.assert(!isCallExpression(e.parent)||e.parent.expression!==e,"Trying to get the type of `import.defer` in `import.defer(...)`"),Ie):function checkImportMetaProperty(e){100<=v&&v<=199?99!==getSourceFileOfNode(e).impliedNodeFormat&&error2(e,Ot.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output):v<6&&4!==v&&error2(e,Ot.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext);const t=getSourceFileOfNode(e);return h.assert(!!(8388608&t.flags),"Containing file is missing import meta node flag."),"meta"===e.name.escapedText?getGlobalImportMetaType():Ie}(e):h.assertNever(e.keywordToken)}function checkMetaPropertyKeyword(e){switch(e.keywordToken){case 102:return getGlobalImportMetaExpressionType();case 105:const t=checkNewTargetMetaProperty(e);return isErrorType(t)?Ie:function createNewTargetExpressionType(e){const t=createSymbol(0,"NewTargetExpression"),n=createSymbol(4,"target",8);n.parent=t,n.links.type=e;const r=createSymbolTable([n]);return t.members=r,createAnonymousType(t,r,l,l,l)}(t);default:h.assertNever(e.keywordToken)}}function checkNewTargetMetaProperty(e){const t=getNewTargetContainer(e);if(t){if(177===t.kind){return getTypeOfSymbol(getSymbolOfDeclaration(t.parent))}return getTypeOfSymbol(getSymbolOfDeclaration(t))}return error2(e,Ot.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor,"new.target"),Ie}function getTypeOfParameter(e){const t=e.valueDeclaration;return addOptionality(getTypeOfSymbol(e),!1,!!t&&(hasInitializer(t)||isOptionalDeclaration(t)))}function getTupleElementLabelFromBindingElement(e,t,n){switch(e.name.kind){case 80:{const r=e.name.escapedText;return e.dotDotDotToken?12&n?r:`${r}_${t}`:3&n?r:`${r}_n`}case 208:if(e.dotDotDotToken){const r=e.name.elements,i=tryCast(lastOrUndefined(r),isBindingElement),o=r.length-((null==i?void 0:i.dotDotDotToken)?1:0);if(t=r-1)return t===r-1?o:createArrayType(getIndexedAccessType(o,Ve));const a=[],s=[],c=[];for(let n=t;n!(1&e)),i=r<0?n.target.fixedLength:r;i>0&&(t=e.parameters.length-1+i)}}if(void 0===t){if(!n&&32&e.flags)return 0;t=e.minArgumentCount}if(r)return t;for(let n=t-1;n>=0;n--){if(131072&filterType(getTypeAtPosition(e,n),acceptsVoid).flags)break;t=n}e.resolvedMinArgumentCount=t}return e.resolvedMinArgumentCount}function hasEffectiveRestParameter(e){if(signatureHasRestParameter(e)){const t=getTypeOfSymbol(e.parameters[e.parameters.length-1]);return!isTupleType(t)||!!(12&t.target.combinedFlags)}return!1}function getEffectiveRestType(e){if(signatureHasRestParameter(e)){const t=getTypeOfSymbol(e.parameters[e.parameters.length-1]);if(!isTupleType(t))return isTypeAny(t)?Xt:t;if(12&t.target.combinedFlags)return sliceTupleType(t,t.target.fixedLength)}}function getNonArrayRestType(e){const t=getEffectiveRestType(e);return!t||isArrayType(t)||isTypeAny(t)?void 0:t}function getTypeOfFirstParameterOfSignature(e){return getTypeOfFirstParameterOfSignatureWithFallback(e,tt)}function getTypeOfFirstParameterOfSignatureWithFallback(e,t){return e.parameters.length>0?getTypeAtPosition(e,0):t}function inferFromAnnotatedParametersAndReturn(e,t,n){const r=e.parameters.length-(signatureHasRestParameter(e)?1:0);for(let i=0;i=0);const i=isConstructorDeclaration(e.parent)?getTypeOfSymbol(getSymbolOfDeclaration(e.parent.parent)):getParentTypeOfClassElement(e.parent),o=isConstructorDeclaration(e.parent)?Me:getClassElementPropertyKeyType(e.parent),a=getNumberLiteralType(r),s=createParameter2("target",i),c=createParameter2("propertyKey",o),l=createParameter2("parameterIndex",a);n.decoratorSignature=createCallSignature(void 0,void 0,[s,c,l],et);break}case 175:case 178:case 179:case 173:{const e=t;if(!isClassLike(e.parent))break;const r=createParameter2("target",getParentTypeOfClassElement(e)),i=createParameter2("propertyKey",getClassElementPropertyKeyType(e)),o=isPropertyDeclaration(e)?et:createTypedPropertyDescriptorType(getTypeOfNode(e));if(!isPropertyDeclaration(t)||hasAccessorModifier(t)){const t=createParameter2("descriptor",createTypedPropertyDescriptorType(getTypeOfNode(e)));n.decoratorSignature=createCallSignature(void 0,void 0,[r,i,t],getUnionType([o,et]))}else n.decoratorSignature=createCallSignature(void 0,void 0,[r,i],getUnionType([o,et]));break}}return n.decoratorSignature===_r?void 0:n.decoratorSignature}(e):getESDecoratorCallSignature(e)}function createPromiseType(e){const t=getGlobalPromiseType(!0);return t!==Et?createTypeReference(t,[e=getAwaitedTypeNoAlias(unwrapAwaitedType(e))||Le]):Le}function createPromiseLikeType(e){const t=getGlobalPromiseLikeType(!0);return t!==Et?createTypeReference(t,[e=getAwaitedTypeNoAlias(unwrapAwaitedType(e))||Le]):Le}function createPromiseReturnType(e,t){const n=createPromiseType(t);return n===Le?(error2(e,isImportCall(e)?Ot.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:Ot.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option),Ie):(getGlobalPromiseConstructorSymbol(!0)||error2(e,isImportCall(e)?Ot.A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:Ot.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option),n)}function getReturnTypeFromBody(e,t){if(!e.body)return Ie;const n=getFunctionFlags(e),r=!!(2&n),i=!!(1&n);let o,a,s,c=et;if(242!==e.body.kind)o=checkExpressionCached(e.body,t&&-9&t),r&&(o=unwrapAwaitedType(checkAwaitedType(o,!1,e,Ot.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)));else if(i){const n=checkAndAggregateReturnExpressionTypes(e,t);n?n.length>0&&(o=getUnionType(n,2)):c=tt;const{yieldTypes:r,nextTypes:i}=function checkAndAggregateYieldOperandTypes(e,t){const n=[],r=[],i=!!(2&getFunctionFlags(e));return forEachYieldExpression(e.body,e=>{const o=e.expression?checkExpression(e.expression,t):Re;let a;if(pushIfUnique(n,getYieldedTypeOfYieldExpression(e,o,ke,i)),e.asteriskToken){const t=getIterationTypesOfIterable(o,i?19:17,e.expression);a=t&&t.nextType}else a=getContextualType2(e,void 0);a&&pushIfUnique(r,a)}),{yieldTypes:n,nextTypes:r}}(e,t);a=some(r)?getUnionType(r,2):void 0,s=some(i)?getIntersectionType(i):void 0}else{const r=checkAndAggregateReturnExpressionTypes(e,t);if(!r)return 2&n?createPromiseReturnType(e,tt):tt;if(0===r.length){const t=getContextualReturnType(e,void 0),r=t&&32768&(unwrapReturnType(t,n)||et).flags?Me:et;return 2&n?createPromiseReturnType(e,r):r}o=getUnionType(r,2)}if(o||a||s){if(a&&reportErrorsFromWidening(e,a,3),o&&reportErrorsFromWidening(e,o,1),s&&reportErrorsFromWidening(e,s,2),o&&isUnitType(o)||a&&isUnitType(a)||s&&isUnitType(s)){const t=getContextualSignatureForFunctionLikeDeclaration(e),n=t?t===getSignatureFromDeclaration(e)?i?void 0:o:instantiateContextualType(getReturnTypeOfSignature(t),e,void 0):void 0;i?(a=getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(a,n,0,r),o=getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(o,n,1,r),s=getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(s,n,2,r)):o=function getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(e,t,n){e&&isUnitType(e)&&(e=getWidenedLiteralLikeTypeForContextualType(e,t?n?getPromisedTypeOfPromise(t):t:void 0));return e}(o,n,r)}a&&(a=getWidenedType(a)),o&&(o=getWidenedType(o)),s&&(s=getWidenedType(s))}return i?createGeneratorType(a||tt,o||c,s||getContextualIterationType(2,e)||Le,r):r?createPromiseType(o||c):o||c}function createGeneratorType(e,t,n,r){const i=r?Cr:Er,o=i.getGlobalGeneratorType(!1);if(e=i.resolveIterationType(e,void 0)||Le,t=i.resolveIterationType(t,void 0)||Le,o===Et){const r=i.getGlobalIterableIteratorType(!1);return r!==Et?createTypeFromGenericGlobalType(r,[e,t,n]):(i.getGlobalIterableIteratorType(!0),ht)}return createTypeFromGenericGlobalType(o,[e,t,n])}function getYieldedTypeOfYieldExpression(e,t,n,r){if(t===nt)return nt;const i=e.expression||e,o=e.asteriskToken?checkIteratedTypeOrElementType(r?19:17,t,n,i):t;return r?getAwaitedType(o,i,e.asteriskToken?Ot.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:Ot.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):o}function getNotEqualFactsFromTypeofSwitch(e,t,n){let r=0;for(let i=0;i=t?n[i]:void 0;r|=void 0!==o?ta.get(o)||32768:0}return r}function isExhaustiveSwitchStatement(e){const t=getNodeLinks(e);if(void 0===t.isExhaustive){t.isExhaustive=0;const n=function computeExhaustiveSwitchStatement(e){if(222===e.expression.kind){const t=getSwitchClauseTypeOfWitnesses(e);if(!t)return!1;const n=getBaseConstraintOrType(checkExpressionCached(e.expression.expression)),r=getNotEqualFactsFromTypeofSwitch(0,0,t);return 3&n.flags?!(556800&~r):!someType(n,e=>getTypeFacts(e,r)===r)}const t=getBaseConstraintOrType(checkExpressionCached(e.expression));if(!isLiteralType(t))return!1;const n=getSwitchClauseTypes(e);if(!n.length||some(n,isNeitherUnitTypeNorNever))return!1;return function eachTypeContainedIn(e,t){return 1048576&e.flags?!forEach(e.types,e=>!contains(t,e)):contains(t,e)}(mapType(t,getRegularTypeOfLiteralType),n)}(e);0===t.isExhaustive&&(t.isExhaustive=n)}else 0===t.isExhaustive&&(t.isExhaustive=!1);return t.isExhaustive}function functionHasImplicitReturn(e){return e.endFlowNode&&isReachableFlowNode(e.endFlowNode)}function checkAndAggregateReturnExpressionTypes(e,t){const n=getFunctionFlags(e),r=[];let i=functionHasImplicitReturn(e),o=!1;if(forEachReturnStatement(e.body,a=>{let s=a.expression;if(s){if(s=skipParentheses(s,!0),2&n&&224===s.kind&&(s=skipParentheses(s.expression,!0)),214===s.kind&&80===s.expression.kind&&checkExpressionCached(s.expression).symbol===getMergedSymbol(e.symbol)&&(!isFunctionExpressionOrArrowFunction(e.symbol.valueDeclaration)||isConstantReference(s.expression)))return void(o=!0);let i=checkExpressionCached(s,t&&-9&t);2&n&&(i=unwrapAwaitedType(checkAwaitedType(i,!1,e,Ot.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member))),131072&i.flags&&(o=!0),pushIfUnique(r,i)}else i=!0}),0!==r.length||i||!o&&!function mayReturnNever(e){switch(e.kind){case 219:case 220:return!0;case 175:return 211===e.parent.kind;default:return!1}}(e))return!(k&&r.length&&i)||isJSConstructor(e)&&r.some(t=>t.symbol===e.symbol)||pushIfUnique(r,Me),r}function checkAllCodePathsInNonVoidFunctionReturnOrThrow(e,t){return void addLazyDiagnostic(function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics(){const n=getFunctionFlags(e),r=t&&unwrapReturnType(t,n);if(r&&(maybeTypeOfKind(r,16384)||32769&r.flags))return;if(174===e.kind||nodeIsMissing(e.body)||242!==e.body.kind||!functionHasImplicitReturn(e))return;const i=1024&e.flags,o=getEffectiveReturnTypeNode(e)||e;if(r&&131072&r.flags)error2(o,Ot.A_function_returning_never_cannot_have_a_reachable_end_point);else if(r&&!i)error2(o,Ot.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value);else if(r&&k&&!isTypeAssignableTo(Me,r))error2(o,Ot.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);else if(S.noImplicitReturns){if(!r){if(!i)return;const t=getReturnTypeOfSignature(getSignatureFromDeclaration(e));if(isUnwrappedReturnTypeUndefinedVoidOrAny(e,t))return}error2(o,Ot.Not_all_code_paths_return_a_value)}})}function checkFunctionExpressionOrObjectLiteralMethod(e,t){if(h.assert(175!==e.kind||isObjectLiteralMethod(e)),checkNodeDeferred(e),isFunctionExpression(e)&&checkCollisionsForDeclarationName(e,e.name),t&&4&t&&isContextSensitive(e)){if(!getEffectiveReturnTypeNode(e)&&!hasContextSensitiveParameters(e)){const n=getContextualSignature(e);if(n&&couldContainTypeVariables(getReturnTypeOfSignature(n))){const n=getNodeLinks(e);if(n.contextFreeType)return n.contextFreeType;const r=getReturnTypeFromBody(e,t),i=createSignature(void 0,void 0,void 0,l,r,void 0,0,64),o=createAnonymousType(e.symbol,y,[i],l,l);return o.objectFlags|=262144,n.contextFreeType=o}}return Nt}return checkGrammarFunctionLikeDeclaration(e)||219!==e.kind||checkGrammarForGenerator(e),function contextuallyCheckFunctionExpressionOrObjectLiteralMethod(e,t){const n=getNodeLinks(e);if(!(64&n.flags)){const r=getContextualSignature(e);if(!(64&n.flags)){n.flags|=64;const i=firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(e)),0));if(!i)return;if(isContextSensitive(e))if(r){const n=getInferenceContext(e);let o;if(t&&2&t){inferFromAnnotatedParametersAndReturn(i,r,n);const e=getEffectiveRestType(r);e&&262144&e.flags&&(o=instantiateSignature(r,n.nonFixingMapper))}o||(o=n?instantiateSignature(r,n.mapper):r),function assignContextualParameterTypes(e,t){if(t.typeParameters){if(e.typeParameters)return;e.typeParameters=t.typeParameters}if(t.thisParameter){const n=e.thisParameter;(!n||n.valueDeclaration&&!n.valueDeclaration.type)&&(n||(e.thisParameter=createSymbolWithType(t.thisParameter,void 0)),assignParameterType(e.thisParameter,getTypeOfSymbol(t.thisParameter)))}const n=e.parameters.length-(signatureHasRestParameter(e)?1:0);for(let r=0;re.parameters.length){const n=getInferenceContext(e);t&&2&t&&inferFromAnnotatedParametersAndReturn(i,r,n)}if(r&&!getReturnTypeFromAnnotation(e)&&!i.resolvedReturnType){const n=getReturnTypeFromBody(e,t);i.resolvedReturnType||(i.resolvedReturnType=n)}checkSignatureDeclaration(e)}}}(e,t),getTypeOfSymbol(getSymbolOfDeclaration(e))}function checkArithmeticOperandType(e,t,n,r=!1){if(!isTypeAssignableTo(t,ct)){const i=r&&getAwaitedTypeOfPromise(t);return errorAndMaybeSuggestAwait(e,!!i&&isTypeAssignableTo(i,ct),n),!1}return!0}function isReadonlyAssignmentDeclaration(e){if(!isCallExpression(e))return!1;if(!isBindableObjectDefinePropertyCall(e))return!1;const t=checkExpressionCached(e.arguments[2]);if(getTypeOfPropertyOfType(t,"value")){const e=getPropertyOfType(t,"writable"),n=e&&getTypeOfSymbol(e);if(!n||n===He||n===Ke)return!0;if(e&&e.valueDeclaration&&isPropertyAssignment(e.valueDeclaration)){const t=checkExpression(e.valueDeclaration.initializer);if(t===He||t===Ke)return!0}return!1}return!getPropertyOfType(t,"set")}function isReadonlySymbol(e){return!!(8&getCheckFlags(e)||4&e.flags&&8&getDeclarationModifierFlagsFromSymbol(e)||3&e.flags&&6&getDeclarationNodeFlagsFromSymbol(e)||98304&e.flags&&!(65536&e.flags)||8&e.flags||some(e.declarations,isReadonlyAssignmentDeclaration))}function isAssignmentToReadonlyEntity(e,t,n){var r,i;if(0===n)return!1;if(isReadonlySymbol(t)){if(4&t.flags&&isAccessExpression(e)&&110===e.expression.kind){const n=getControlFlowContainer(e);if(!n||177!==n.kind&&!isJSConstructor(n))return!0;if(t.valueDeclaration){const e=isBinaryExpression(t.valueDeclaration),o=n.parent===t.valueDeclaration.parent,a=n===t.valueDeclaration.parent,s=e&&(null==(r=t.parent)?void 0:r.valueDeclaration)===n.parent,c=e&&(null==(i=t.parent)?void 0:i.valueDeclaration)===n;return!(o||a||s||c)}}return!0}if(isAccessExpression(e)){const t=skipParentheses(e.expression);if(80===t.kind){const e=getNodeLinks(t).resolvedSymbol;if(2097152&e.flags){const t=getDeclarationOfAliasSymbol(e);return!!t&&275===t.kind}}}return!1}function checkReferenceExpression(e,t,n){const r=skipOuterExpressions(e,39);return 80===r.kind||isAccessExpression(r)?!(64&r.flags)||(error2(e,n),!1):(error2(e,t),!1)}function checkDeleteExpression(e){checkExpression(e.expression);const t=skipParentheses(e.expression);if(!isAccessExpression(t))return error2(t,Ot.The_operand_of_a_delete_operator_must_be_a_property_reference),Ye;isPropertyAccessExpression(t)&&isPrivateIdentifier(t.name)&&error2(t,Ot.The_operand_of_a_delete_operator_cannot_be_a_private_identifier);const n=getExportSymbolOfValueSymbolIfExported(getNodeLinks(t).resolvedSymbol);return n&&(isReadonlySymbol(n)?error2(t,Ot.The_operand_of_a_delete_operator_cannot_be_a_read_only_property):function checkDeleteExpressionMustBeOptional(e,t){const n=getTypeOfSymbol(t);!k||131075&n.flags||(L?16777216&t.flags:hasTypeFacts(n,16777216))||error2(e,Ot.The_operand_of_a_delete_operator_must_be_optional)}(t,n)),Ye}function checkAwaitGrammar(e){let t=!1;const n=getContainingFunctionOrClassStaticBlock(e);if(n&&isClassStaticBlockDeclaration(n)){error2(e,isAwaitExpression(e)?Ot.await_expression_cannot_be_used_inside_a_class_static_block:Ot.await_using_statements_cannot_be_used_inside_a_class_static_block),t=!0}else if(!(65536&e.flags))if(isInTopLevelContext(e)){const n=getSourceFileOfNode(e);if(!hasParseDiagnostics(n)){let r;if(!isEffectiveExternalModule(n,S)){r??(r=getSpanOfTokenAtPosition(n,e.pos));const i=isAwaitExpression(e)?Ot.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:Ot.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module,o=createFileDiagnostic(n,r.start,r.length,i);vi.add(o),t=!0}switch(v){case 100:case 101:case 102:case 199:if(1===n.impliedNodeFormat){r??(r=getSpanOfTokenAtPosition(n,e.pos)),vi.add(createFileDiagnostic(n,r.start,r.length,Ot.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)),t=!0;break}case 7:case 99:case 200:case 4:if(x>=4)break;default:r??(r=getSpanOfTokenAtPosition(n,e.pos));const i=isAwaitExpression(e)?Ot.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:Ot.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher;vi.add(createFileDiagnostic(n,r.start,r.length,i)),t=!0}}}else{const r=getSourceFileOfNode(e);if(!hasParseDiagnostics(r)){const i=getSpanOfTokenAtPosition(r,e.pos),o=isAwaitExpression(e)?Ot.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:Ot.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules,a=createFileDiagnostic(r,i.start,i.length,o);if(n&&177!==n.kind&&!(2&getFunctionFlags(n))){addRelatedInfo(a,createDiagnosticForNode(n,Ot.Did_you_mean_to_mark_this_function_as_async))}vi.add(a),t=!0}}return isAwaitExpression(e)&&isInParameterInitializerBeforeContainingFunction(e)&&(error2(e,Ot.await_expressions_cannot_be_used_in_a_parameter_initializer),t=!0),t}function getUnaryResultType(e){return maybeTypeOfKind(e,2112)?isTypeAssignableToKind(e,3)||maybeTypeOfKind(e,296)?ct:qe:Ve}function maybeTypeOfKindConsideringBaseConstraint(e,t){if(maybeTypeOfKind(e,t))return!0;const n=getBaseConstraintOrType(e);return!!n&&maybeTypeOfKind(n,t)}function maybeTypeOfKind(e,t){if(e.flags&t)return!0;if(3145728&e.flags){const n=e.types;for(const e of n)if(maybeTypeOfKind(e,t))return!0}return!1}function isTypeAssignableToKind(e,t,n){return!!(e.flags&t)||!(n&&114691&e.flags)&&(!!(296&t)&&isTypeAssignableTo(e,Ve)||!!(2112&t)&&isTypeAssignableTo(e,qe)||!!(402653316&t)&&isTypeAssignableTo(e,ze)||!!(528&t)&&isTypeAssignableTo(e,Ye)||!!(16384&t)&&isTypeAssignableTo(e,et)||!!(131072&t)&&isTypeAssignableTo(e,tt)||!!(65536&t)&&isTypeAssignableTo(e,We)||!!(32768&t)&&isTypeAssignableTo(e,Me)||!!(4096&t)&&isTypeAssignableTo(e,Ze)||!!(67108864&t)&&isTypeAssignableTo(e,ot))}function allTypesAssignableToKind(e,t,n){return 1048576&e.flags?every(e.types,e=>allTypesAssignableToKind(e,t,n)):isTypeAssignableToKind(e,t,n)}function isConstEnumObjectType(e){return!!(16&getObjectFlags(e))&&!!e.symbol&&isConstEnumSymbol(e.symbol)}function isConstEnumSymbol(e){return!!(128&e.flags)}function getSymbolHasInstanceMethodOfObjectType(e){const t=getPropertyNameForKnownSymbolName("hasInstance");if(allTypesAssignableToKind(e,67108864)){const n=getPropertyOfType(e,t);if(n){const e=getTypeOfSymbol(n);if(e&&0!==getSignaturesOfType(e,0).length)return e}}}function checkInExpression(e,t,n,r){if(n===nt||r===nt)return nt;if(isPrivateIdentifier(e)){if((xe===bt||!!(2097152&e.flags)&&isEmptyAnonymousObjectType(getBaseConstraintOrType(e)))}(r)&&error2(t,Ot.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator,typeToString(r)),Ye}function checkObjectLiteralDestructuringPropertyAssignment(e,t,n,r,i=!1){const o=e.properties,a=o[n];if(304===a.kind||305===a.kind){const e=a.name,n=getLiteralTypeFromPropertyName(e);if(isTypeUsableAsPropertyName(n)){const e=getPropertyOfType(t,getPropertyNameFromType(n));e&&(markPropertyAsReferenced(e,a,i),checkPropertyAccessibility(a,!1,!0,t,e))}const r=getFlowTypeOfDestructuring(a,getIndexedAccessType(t,n,32|(hasDefaultValue(a)?16:0),e));return checkDestructuringAssignment(305===a.kind?a:a.initializer,r)}if(306===a.kind){if(!(nsliceTupleType(e,n)):createArrayType(r),i)}error2(o.operatorToken,Ot.A_rest_element_cannot_have_an_initializer)}}}function checkDestructuringAssignment(e,t,n,r){let i;if(305===e.kind){const r=e;r.objectAssignmentInitializer&&(k&&!hasTypeFacts(checkExpression(r.objectAssignmentInitializer),16777216)&&(t=getTypeWithFacts(t,524288)),function checkBinaryLikeExpression(e,t,n,r,i){const o=t.kind;if(64===o&&(211===e.kind||210===e.kind))return checkDestructuringAssignment(e,checkExpression(n,r),r,110===n.kind);let a;a=isBinaryLogicalOperator(o)?checkTruthinessExpression(e,r):checkExpression(e,r);const s=checkExpression(n,r);return checkBinaryLikeExpressionWorker(e,t,n,a,s,r,i)}(r.name,r.equalsToken,r.objectAssignmentInitializer,n)),i=e.name}else i=e;return 227===i.kind&&64===i.operatorToken.kind&&(R(i,n),i=i.left,k&&(t=getTypeWithFacts(t,524288))),211===i.kind?function checkObjectLiteralAssignment(e,t,n){const r=e.properties;if(k&&0===r.length)return checkNonNullType(t,e);for(let i=0;i=32&&errorOrSuggestion(isEnumMember(walkUpParenthesizedExpressions(n.parent.parent)),a||t,Ot.This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2,getTextOfNode(e),tokenToString(s),r.value%32)}return l}case 40:case 65:if(r===nt||i===nt)return nt;let d;if(isTypeAssignableToKind(r,402653316)||isTypeAssignableToKind(i,402653316)||(r=checkNonNullType(r,e),i=checkNonNullType(i,n)),isTypeAssignableToKind(r,296,!0)&&isTypeAssignableToKind(i,296,!0)?d=Ve:isTypeAssignableToKind(r,2112,!0)&&isTypeAssignableToKind(i,2112,!0)?d=qe:isTypeAssignableToKind(r,402653316,!0)||isTypeAssignableToKind(i,402653316,!0)?d=ze:(isTypeAny(r)||isTypeAny(i))&&(d=isErrorType(r)||isErrorType(i)?Ie:ke),d&&!checkForDisallowedESSymbolOperand(s))return d;if(!d){const e=402655727;return reportOperatorError((t,n)=>isTypeAssignableToKind(t,e)&&isTypeAssignableToKind(n,e)),ke}return 65===s&&checkAssignmentOperator(d),d;case 30:case 32:case 33:case 34:return checkForDisallowedESSymbolOperand(s)&&(r=getBaseTypeOfLiteralTypeForComparison(checkNonNullType(r,e)),i=getBaseTypeOfLiteralTypeForComparison(checkNonNullType(i,n)),reportOperatorErrorUnless((e,t)=>{if(isTypeAny(e)||isTypeAny(t))return!0;const n=isTypeAssignableTo(e,ct),r=isTypeAssignableTo(t,ct);return n&&r||!n&&!r&&areTypesComparable(e,t)})),Ye;case 35:case 36:case 37:case 38:if(!(o&&64&o)){if((isLiteralExpressionOfObject(e)||isLiteralExpressionOfObject(n))&&(!isInJSFile(e)||37===s||38===s)){const e=35===s||37===s;error2(a,Ot.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value,e?"false":"true")}!function checkNaNEquality(e,t,n,r){const i=isGlobalNaN(skipParentheses(n)),o=isGlobalNaN(skipParentheses(r));if(i||o){const a=error2(e,Ot.This_condition_will_always_return_0,tokenToString(37===t||35===t?97:112));if(i&&o)return;const s=38===t||36===t?tokenToString(54):"",c=i?r:n,l=skipParentheses(c);addRelatedInfo(a,createDiagnosticForNode(c,Ot.Did_you_mean_0,`${s}Number.isNaN(${isEntityNameExpression(l)?entityNameToString(l):"..."})`))}}(a,s,e,n),reportOperatorErrorUnless((e,t)=>isTypeEqualityComparableTo(e,t)||isTypeEqualityComparableTo(t,e))}return Ye;case 104:return function checkInstanceOfExpression(e,t,n,r,i){if(n===nt||r===nt)return nt;!isTypeAny(n)&&allTypesAssignableToKind(n,402784252)&&error2(e,Ot.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter),h.assert(isInstanceOfExpression(e.parent));const o=getResolvedSignature(e.parent,void 0,i);return o===gr?nt:(checkTypeAssignableTo(getReturnTypeOfSignature(o),Ye,t,Ot.An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression),Ye)}(e,n,r,i,o);case 103:return checkInExpression(e,n,r,i);case 56:case 77:{const e=hasTypeFacts(r,4194304)?getUnionType([(c=k?r:getBaseTypeOfLiteralType(i),mapType(c,getDefinitelyFalsyPartOfType)),i]):r;return 77===s&&checkAssignmentOperator(i),e}case 57:case 76:{const e=hasTypeFacts(r,8388608)?getUnionType([getNonNullableType(removeDefinitelyFalsyTypes(r)),i],2):r;return 76===s&&checkAssignmentOperator(i),e}case 61:case 78:{const e=hasTypeFacts(r,262144)?getUnionType([getNonNullableType(r),i],2):r;return 78===s&&checkAssignmentOperator(i),e}case 64:const p=isBinaryExpression(e.parent)?getAssignmentDeclarationKind(e.parent):0;return function checkAssignmentDeclaration(e,t){if(2===e)for(const e of getPropertiesOfObjectType(t)){const t=getTypeOfSymbol(e);if(t.symbol&&32&t.symbol.flags){const t=e.escapedName,n=te(e.valueDeclaration,t,788968,void 0,!1);(null==n?void 0:n.declarations)&&n.declarations.some(isJSDocTypedefTag)&&(addDuplicateDeclarationErrorsForSymbols(n,Ot.Duplicate_identifier_0,unescapeLeadingUnderscores(t),e),addDuplicateDeclarationErrorsForSymbols(e,Ot.Duplicate_identifier_0,unescapeLeadingUnderscores(t),n))}}}(p,i),function isAssignmentDeclaration2(t){var r;switch(t){case 2:return!0;case 1:case 5:case 6:case 3:case 4:const t=getSymbolOfNode(e),i=getAssignedExpandoInitializer(n);return!!i&&isObjectLiteralExpression(i)&&!!(null==(r=null==t?void 0:t.exports)?void 0:r.size);default:return!1}}(p)?(524288&i.flags&&(2===p||6===p||isEmptyObjectType(i)||isFunctionObjectType(i)||1&getObjectFlags(i))||checkAssignmentOperator(i),r):(checkAssignmentOperator(i),i);case 28:if(!S.allowUnreachableCode&&isSideEffectFree(e)&&!function isIndirectCall(e){return 218===e.parent.kind&&isNumericLiteral(e.left)&&"0"===e.left.text&&(isCallExpression(e.parent.parent)&&e.parent.parent.expression===e.parent||216===e.parent.parent.kind)&&(isAccessExpression(e.right)||isIdentifier(e.right)&&"eval"===e.right.escapedText)}(e.parent)){const t=getSourceFileOfNode(e),n=skipTrivia(t.text,e.pos);t.parseDiagnostics.some(e=>e.code===Ot.JSX_expressions_must_have_one_parent_element.code&&textSpanContainsPosition(e,n))||error2(e,Ot.Left_side_of_comma_operator_is_unused_and_has_no_side_effects)}return i;default:return h.fail()}var c;function bothAreBigIntLike(e,t){return isTypeAssignableToKind(e,2112)&&isTypeAssignableToKind(t,2112)}function checkForDisallowedESSymbolOperand(t){const o=maybeTypeOfKindConsideringBaseConstraint(r,12288)?e:maybeTypeOfKindConsideringBaseConstraint(i,12288)?n:void 0;return!o||(error2(o,Ot.The_0_operator_cannot_be_applied_to_type_symbol,tokenToString(t)),!1)}function checkAssignmentOperator(i){isAssignmentOperator(s)&&addLazyDiagnostic(function checkAssignmentOperatorWorker(){let o=r;isCompoundAssignment(t.kind)&&212===e.kind&&(o=checkPropertyAccessExpression(e,void 0,!0));if(checkReferenceExpression(e,Ot.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,Ot.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)){let t;if(L&&isPropertyAccessExpression(e)&&maybeTypeOfKind(i,32768)){const n=getTypeOfPropertyOfType(getTypeOfExpression(e.expression),e.name.escapedText);isExactOptionalPropertyMismatch(i,n)&&(t=Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target)}checkTypeAssignableToAndOptionallyElaborate(i,o,e,n,t)}})}function reportOperatorErrorUnless(e){return!e(r,i)&&(reportOperatorError(e),!0)}function reportOperatorError(e){let n=!1;const o=a||t;if(e){const t=getAwaitedTypeNoAlias(r),o=getAwaitedTypeNoAlias(i);n=!(t===r&&o===i)&&!(!t||!o)&&e(t,o)}let s=r,c=i;!n&&e&&([s,c]=function getBaseTypesIfUnrelated(e,t,n){let r=e,i=t;const o=getBaseTypeOfLiteralType(e),a=getBaseTypeOfLiteralType(t);n(o,a)||(r=o,i=a);return[r,i]}(r,i,e));const[l,d]=getTypeNamesForErrorDisplay(s,c);(function tryGiveBetterPrimaryError(e,n,r,i){switch(t.kind){case 37:case 35:case 38:case 36:return errorAndMaybeSuggestAwait(e,n,Ot.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap,r,i);default:return}})(o,n,l,d)||errorAndMaybeSuggestAwait(o,n,Ot.Operator_0_cannot_be_applied_to_types_1_and_2,tokenToString(t.kind),l,d)}function isGlobalNaN(e){if(isIdentifier(e)&&"NaN"===e.escapedText){const t=function getGlobalNaNSymbol(){return Wn||(Wn=getGlobalValueSymbol("NaN",!1))}();return!!t&&t===getResolvedSymbol(e)}return!1}}function isTemplateLiteralContext(e){const t=e.parent;return isParenthesizedExpression(t)&&isTemplateLiteralContext(t)||isElementAccessExpression(t)&&t.argumentExpression===e}function checkTemplateExpression(e){const t=[e.head.text],n=[];for(const r of e.templateSpans){const e=checkExpression(r.expression);maybeTypeOfKindConsideringBaseConstraint(e,12288)&&error2(r.expression,Ot.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String),t.push(r.literal.text),n.push(isTypeAssignableTo(e,dt)?e:ze)}const r=216!==e.parent.kind&&U(e).value;return r?getFreshTypeOfLiteralType(getStringLiteralType(r)):isConstContext(e)||isTemplateLiteralContext(e)||someType(getContextualType2(e,void 0)||Le,isTemplateLiteralContextualType)?getTemplateLiteralType(t,n):ze}function isTemplateLiteralContextualType(e){return!!(134217856&e.flags||58982400&e.flags&&maybeTypeOfKind(getBaseConstraintOfType(e)||Le,402653316))}function checkExpressionWithContextualType(e,t,n,r){const i=function getContextNode2(e){return isJsxAttributes(e)&&!isJsxSelfClosingElement(e.parent)?e.parent.parent:e}(e);pushContextualType(i,t,!1),function pushInferenceContext(e,t){jr[Ur]=e,Jr[Ur]=t,Ur++}(i,n);const o=checkExpression(e,1|r|(n?2:0));n&&n.intraExpressionInferenceSites&&(n.intraExpressionInferenceSites=void 0);const a=maybeTypeOfKind(o,2944)&&isLiteralOfContextualType(o,instantiateContextualType(t,e,void 0))?getRegularTypeOfLiteralType(o):o;return function popInferenceContext(){Ur--,jr[Ur]=void 0,Jr[Ur]=void 0}(),popContextualType(),a}function checkExpressionCached(e,t){if(t)return checkExpression(e,t);const n=getNodeLinks(e);if(!n.resolvedType){const r=Pr,i=dr;Pr=Dr,dr=void 0,n.resolvedType=checkExpression(e,t),dr=i,Pr=r}return n.resolvedType}function isTypeAssertion(e){return 217===(e=skipParentheses(e,!0)).kind||235===e.kind||isJSDocTypeAssertion(e)}function checkDeclarationInitializer(e,t,n){const r=getEffectiveInitializer(e);if(isInJSFile(e)){const n=tryGetJSDocSatisfiesTypeNode(e);if(n)return checkSatisfiesExpressionWorker(r,n,t)}const i=getQuickTypeOfExpression(r)||(n?checkExpressionWithContextualType(r,n,void 0,t||0):checkExpressionCached(r,t));if(isParameter(isBindingElement(e)?walkUpBindingElementsAndPatterns(e):e)){if(207===e.name.kind&&isObjectLiteralType2(i))return function padObjectLiteralType(e,t){let n;for(const r of t.elements)if(r.initializer){const t=getPropertyNameFromBindingElement(r);t&&!getPropertyOfType(e,t)&&(n=append(n,r))}if(!n)return e;const r=createSymbolTable();for(const t of getPropertiesOfObjectType(e))r.set(t.escapedName,t);for(const e of n){const t=createSymbol(16777220,getPropertyNameFromBindingElement(e));t.links.type=getTypeFromBindingElement(e,!1,!1),r.set(t.escapedName,t)}const i=createAnonymousType(e.symbol,r,l,l,getIndexInfosOfType(e));return i.objectFlags=e.objectFlags,i}(i,e.name);if(208===e.name.kind&&isTupleType(i))return function padTupleType(e,t){if(12&e.target.combinedFlags||getTypeReferenceArity(e)>=t.elements.length)return e;const n=t.elements,r=getElementTypes(e).slice(),i=e.target.elementFlags.slice();for(let t=getTypeReferenceArity(e);tisLiteralOfContextualType(e,t))}if(58982400&t.flags){const n=getBaseConstraintOfType(t)||Le;return maybeTypeOfKind(n,4)&&maybeTypeOfKind(e,128)||maybeTypeOfKind(n,8)&&maybeTypeOfKind(e,256)||maybeTypeOfKind(n,64)&&maybeTypeOfKind(e,2048)||maybeTypeOfKind(n,4096)&&maybeTypeOfKind(e,8192)||isLiteralOfContextualType(e,n)}return!!(406847616&t.flags&&maybeTypeOfKind(e,128)||256&t.flags&&maybeTypeOfKind(e,256)||2048&t.flags&&maybeTypeOfKind(e,2048)||512&t.flags&&maybeTypeOfKind(e,512)||8192&t.flags&&maybeTypeOfKind(e,8192))}return!1}function isConstContext(e){const t=e.parent;return isAssertionExpression(t)&&isConstTypeReference(t.type)||isJSDocTypeAssertion(t)&&isConstTypeReference(getJSDocTypeAssertionType(t))||isValidConstAssertionArgument(e)&&isConstTypeVariable(getContextualType2(e,0))||(isParenthesizedExpression(t)||isArrayLiteralExpression(t)||isSpreadElement(t))&&isConstContext(t)||(isPropertyAssignment(t)||isShorthandPropertyAssignment(t)||isTemplateSpan(t))&&isConstContext(t.parent)}function checkExpressionForMutableLocation(e,t,n){const r=checkExpression(e,t,n);return isConstContext(e)||isCommonJsExportedExpression(e)?getRegularTypeOfLiteralType(r):isTypeAssertion(e)?r:getWidenedLiteralLikeTypeForContextualType(r,instantiateContextualType(getContextualType2(e,void 0),e,void 0))}function checkPropertyAssignment(e,t){return 168===e.name.kind&&checkComputedPropertyName(e.name),checkExpressionForMutableLocation(e.initializer,t)}function checkObjectLiteralMethod(e,t){checkGrammarMethod(e),168===e.name.kind&&checkComputedPropertyName(e.name);return instantiateTypeWithSingleGenericCallSignature(e,checkFunctionExpressionOrObjectLiteralMethod(e,t),t)}function instantiateTypeWithSingleGenericCallSignature(e,t,n){if(n&&10&n){const r=getSingleSignature(t,0,!0),i=getSingleSignature(t,1,!0),o=r||i;if(o&&o.typeParameters){const t=getApparentTypeOfContextualType(e,2);if(t){const i=getSingleSignature(getNonNullableType(t),r?0:1,!1);if(i&&!i.typeParameters){if(8&n)return skippedGenericFunction(e,n),Nt;const t=getInferenceContext(e),r=t.signature&&getReturnTypeOfSignature(t.signature),a=r&&getSingleCallOrConstructSignature(r);if(a&&!a.typeParameters&&!every(t.inferences,hasInferenceCandidates)){const e=function getUniqueTypeParameters(e,t){const n=[];let r,i;for(const o of t){const t=o.symbol.escapedName;if(hasTypeParameterByName(e.inferredTypeParameters,t)||hasTypeParameterByName(n,t)){const a=createTypeParameter(createSymbol(262144,getUniqueTypeParameterName(concatenate(e.inferredTypeParameters,n),t)));a.target=o,r=append(r,o),i=append(i,a),n.push(a)}else n.push(o)}if(i){const e=createTypeMapper(r,i);for(const t of i)t.mapper=e}return n}(t,o.typeParameters),n=getSignatureInstantiationWithoutFillingInTypeArguments(o,e),r=map(t.inferences,e=>createInferenceInfo(e.typeParameter));if(applyToParameterTypes(n,i,(e,t)=>{inferTypes(r,e,t,0,!0)}),some(r,hasInferenceCandidates)&&(applyToReturnTypes(n,i,(e,t)=>{inferTypes(r,e,t)}),!function hasOverlappingInferences(e,t){for(let n=0;ne.symbol.escapedName===t)}function getUniqueTypeParameterName(e,t){let n=t.length;for(;n>1&&t.charCodeAt(n-1)>=48&&t.charCodeAt(n-1)<=57;)n--;const r=t.slice(0,n);for(let t=1;;t++){const n=r+t;if(!hasTypeParameterByName(e,n))return n}}function getReturnTypeOfSingleNonGenericCallSignature(e){const t=getSingleCallSignature(e);if(t&&!t.typeParameters)return getReturnTypeOfSignature(t)}function getTypeOfExpression(e){const t=getQuickTypeOfExpression(e);if(t)return t;if(268435456&e.flags&&dr){const t=dr[getNodeId(e)];if(t)return t}const n=Or,r=checkExpression(e,64);if(Or!==n){(dr||(dr=[]))[getNodeId(e)]=r,setNodeFlags(e,268435456|e.flags)}return r}function getQuickTypeOfExpression(e){let t=skipParentheses(e,!0);if(isJSDocTypeAssertion(t)){const e=getJSDocTypeAssertionType(t);if(!isConstTypeReference(e))return getTypeFromTypeNode(e)}if(t=skipParentheses(e),isAwaitExpression(t)){const e=getQuickTypeOfExpression(t.expression);return e?getAwaitedType(e):void 0}return!isCallExpression(t)||108===t.expression.kind||isRequireCall(t,!0)||isSymbolOrSymbolForCall(t)||isImportCall(t)?isAssertionExpression(t)&&!isConstTypeReference(t.type)?getTypeFromTypeNode(t.type):isLiteralExpression(e)||isBooleanLiteral(e)?checkExpression(e):void 0:isCallChain(t)?function getReturnTypeOfSingleNonGenericSignatureOfCallChain(e){const t=checkExpression(e.expression),n=getOptionalExpressionType(t,e.expression),r=getReturnTypeOfSingleNonGenericCallSignature(t);return r&&propagateOptionalTypeMarker(r,e,n!==t)}(t):getReturnTypeOfSingleNonGenericCallSignature(checkNonNullExpression(t.expression))}function getContextFreeTypeOfExpression(e){const t=getNodeLinks(e);if(t.contextFreeType)return t.contextFreeType;pushContextualType(e,ke,!1);const n=t.contextFreeType=checkExpression(e,4);return popContextualType(),n}function checkExpression(n,i,o){var a,s;null==(a=J)||a.push(J.Phase.Check,"checkExpression",{kind:n.kind,pos:n.pos,end:n.end,path:n.tracingPath});const c=r;r=n,m=0;const d=function checkExpressionWorker(e,n,r){const i=e.kind;if(t)switch(i){case 232:case 219:case 220:t.throwIfCancellationRequested()}switch(i){case 80:return checkIdentifier(e,n);case 81:return checkPrivateIdentifierExpression(e);case 110:return checkThisExpression(e);case 108:return checkSuperExpression(e);case 106:return Ue;case 15:case 11:return hasSkipDirectInferenceFlag(e)?De:getFreshTypeOfLiteralType(getStringLiteralType(e.text));case 9:return checkGrammarNumericLiteral(e),getFreshTypeOfLiteralType(getNumberLiteralType(+e.text));case 10:return function checkGrammarBigIntLiteral(e){const t=isLiteralTypeNode(e.parent)||isPrefixUnaryExpression(e.parent)&&isLiteralTypeNode(e.parent.parent);if(!t&&!(33554432&e.flags)&&x<7&&grammarErrorOnNode(e,Ot.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))return!0;return!1}(e),getFreshTypeOfLiteralType(getBigIntLiteralType({negative:!1,base10Value:parsePseudoBigInt(e.text)}));case 112:return Ge;case 97:return He;case 229:return checkTemplateExpression(e);case 14:return checkRegularExpressionLiteral(e);case 210:return checkArrayLiteral(e,n,r);case 211:return checkObjectLiteral(e,n);case 212:return checkPropertyAccessExpression(e,n);case 167:return checkQualifiedName(e,n);case 213:return checkIndexedAccess(e,n);case 214:if(isImportCall(e))return checkImportCallExpression(e);case 215:return function checkCallExpression(e,t){var n,r,i;checkGrammarTypeArguments(e,e.typeArguments);const o=getResolvedSignature(e,void 0,t);if(o===gr)return nt;if(checkDeprecatedSignature(o,e),108===e.expression.kind)return et;if(215===e.kind){const t=o.declaration;if(t&&177!==t.kind&&181!==t.kind&&186!==t.kind&&(!isJSDocSignature(t)||177!==(null==(r=null==(n=getJSDocRoot(t))?void 0:n.parent)?void 0:r.kind))&&!isJSDocConstructSignature(t)&&!isJSConstructor(t))return A&&error2(e,Ot.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),ke}if(isInJSFile(e)&&isCommonJsRequire(e))return resolveExternalModuleTypeByLiteral(e.arguments[0]);const a=getReturnTypeOfSignature(o);if(12288&a.flags&&isSymbolOrSymbolForCall(e))return getESSymbolLikeTypeForNode(walkUpParenthesizedExpressions(e.parent));if(214===e.kind&&!e.questionDotToken&&245===e.parent.kind&&16384&a.flags&&getTypePredicateOfSignature(o))if(isDottedName(e.expression)){if(!getEffectsSignature(e)){const t=error2(e.expression,Ot.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);getTypeOfDottedName(e.expression,t)}}else error2(e.expression,Ot.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);if(isInJSFile(e)){const t=getSymbolOfExpando(e,!1);if(null==(i=null==t?void 0:t.exports)?void 0:i.size){const e=createAnonymousType(t,t.exports,l,l,l);return e.objectFlags|=4096,getIntersectionType([a,e])}}return a}(e,n);case 216:return checkTaggedTemplateExpression(e);case 218:return function checkParenthesizedExpression(e,t){if(hasJSDocNodes(e)){if(isJSDocSatisfiesExpression(e))return checkSatisfiesExpressionWorker(e.expression,getJSDocSatisfiesExpressionType(e),t);if(isJSDocTypeAssertion(e))return checkAssertionWorker(e,t)}return checkExpression(e.expression,t)}(e,n);case 232:return function checkClassExpression(e){return checkClassLikeDeclaration(e),checkNodeDeferred(e),function checkClassExpressionExternalHelpers(e){if(e.name)return;const t=walkUpOuterExpressions(e);if(!isNamedEvaluationSource(t))return;let n;n=!b&&xcheckAwaitGrammar(e));const t=checkExpression(e.expression),n=checkAwaitedType(t,!0,e,Ot.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return n!==t||isErrorType(n)||3&t.flags||addErrorOrSuggestion(!1,createDiagnosticForNode(e,Ot.await_has_no_effect_on_the_type_of_this_expression)),n}(e);case 225:return function checkPrefixUnaryExpression(e){const t=checkExpression(e.operand);if(t===nt)return nt;switch(e.operand.kind){case 9:switch(e.operator){case 41:return getFreshTypeOfLiteralType(getNumberLiteralType(-e.operand.text));case 40:return getFreshTypeOfLiteralType(getNumberLiteralType(+e.operand.text))}break;case 10:if(41===e.operator)return getFreshTypeOfLiteralType(getBigIntLiteralType({negative:!0,base10Value:parsePseudoBigInt(e.operand.text)}))}switch(e.operator){case 40:case 41:case 55:return checkNonNullType(t,e.operand),maybeTypeOfKindConsideringBaseConstraint(t,12288)&&error2(e.operand,Ot.The_0_operator_cannot_be_applied_to_type_symbol,tokenToString(e.operator)),40===e.operator?(maybeTypeOfKindConsideringBaseConstraint(t,2112)&&error2(e.operand,Ot.Operator_0_cannot_be_applied_to_type_1,tokenToString(e.operator),typeToString(getBaseTypeOfLiteralType(t))),Ve):getUnaryResultType(t);case 54:checkTruthinessOfType(t,e.operand);const n=getTypeFacts(t,12582912);return 4194304===n?He:8388608===n?Ge:Ye;case 46:case 47:return checkArithmeticOperandType(e.operand,checkNonNullType(t,e.operand),Ot.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&checkReferenceExpression(e.operand,Ot.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,Ot.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),getUnaryResultType(t)}return Ie}(e);case 226:return function checkPostfixUnaryExpression(e){const t=checkExpression(e.operand);return t===nt?nt:(checkArithmeticOperandType(e.operand,checkNonNullType(t,e.operand),Ot.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type)&&checkReferenceExpression(e.operand,Ot.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,Ot.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),getUnaryResultType(t))}(e);case 227:return R(e,n);case 228:return function checkConditionalExpression(e,t){const n=checkTruthinessExpression(e.condition,t);return checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(e.condition,n,e.whenTrue),getUnionType([checkExpression(e.whenTrue,t),checkExpression(e.whenFalse,t)],2)}(e,n);case 231:return function checkSpreadExpression(e,t){return xcheckGeneratorInstantiationAssignabilityToReturnType(e,n,void 0)));const o=i&&getIterationTypesOfGeneratorFunctionReturnType(i,r),a=o&&o.yieldType||ke,s=o&&o.nextType||ke,c=e.expression?checkExpression(e.expression):Re,l=getYieldedTypeOfYieldExpression(e,c,s,r);if(i&&l&&checkTypeAssignableToAndOptionallyElaborate(l,a,e.expression||e,e.expression),e.asteriskToken)return getIterationTypeOfIterable(r?19:17,1,c,e.expression)||ke;if(i)return getIterationTypeOfGeneratorFunctionReturnType(2,i,r)||ke;let d=getContextualIterationType(2,t);return d||(d=ke,addLazyDiagnostic(()=>{if(A&&!expressionResultIsUnused(e)){const t=getContextualType2(e,void 0);t&&!isTypeAny(t)||error2(e,Ot.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation)}})),d}(e);case 238:return function checkSyntheticExpression(e){return e.isSpread?getIndexedAccessType(e.type,Ve):e.type}(e);case 295:return checkJsxExpression(e,n);case 285:return function checkJsxElement(e,t){return checkNodeDeferred(e),getJsxElementTypeAt(e)||ke}(e);case 286:return function checkJsxSelfClosingElement(e,t){return checkNodeDeferred(e),getJsxElementTypeAt(e)||ke}(e);case 289:return function checkJsxFragment(e){checkJsxOpeningLikeElementOrOpeningFragment(e.openingFragment);const t=getSourceFileOfNode(e);!getJSXTransformEnabled(S)||!S.jsxFactory&&!t.pragmas.has("jsx")||S.jsxFragmentFactory||t.pragmas.has("jsxfrag")||error2(e,S.jsxFactory?Ot.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:Ot.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments),checkJsxChildren(e);const n=getJsxElementTypeAt(e);return isErrorType(n)?ke:n}(e);case 293:return function checkJsxAttributes(e,t){return createJsxAttributesTypeFromAttributesProperty(e.parent,t)}(e,n);case 287:h.fail("Shouldn't ever directly check a JsxOpeningElement")}return Ie}(n,i,o),p=instantiateTypeWithSingleGenericCallSignature(n,d,i);return isConstEnumObjectType(p)&&function checkConstEnumAccess(t,n){var r;const i=212===t.parent.kind&&t.parent.expression===t||213===t.parent.kind&&t.parent.expression===t||(80===t.kind||167===t.kind)&&isInRightSideOfImportOrExportAssignment(t)||187===t.parent.kind&&t.parent.exprName===t||282===t.parent.kind;i||error2(t,Ot.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query);if(S.isolatedModules||S.verbatimModuleSyntax&&i&&!te(t,getFirstIdentifier(t),2097152,void 0,!1,!0)){h.assert(!!(128&n.symbol.flags));const i=n.symbol.valueDeclaration,o=null==(r=e.getRedirectFromOutput(getSourceFileOfNode(i).resolvedPath))?void 0:r.resolvedRef;!(33554432&i.flags)||isValidTypeOnlyAliasUseSite(t)||o&&er(o.commandLine.options)||error2(t,Ot.Cannot_access_ambient_const_enums_when_0_is_enabled,X)}}(n,p),r=c,null==(s=J)||s.pop(),p}function checkTypeParameter(e){checkGrammarModifiers(e),e.expression&&grammarErrorOnFirstToken(e.expression,Ot.Type_expected),checkSourceElement(e.constraint),checkSourceElement(e.default);const t=getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e));getBaseConstraintOfType(t),function hasNonCircularTypeParameterDefault(e){return getResolvedTypeParameterDefault(e)!==Ft}(t)||error2(e.default,Ot.Type_parameter_0_has_a_circular_default,typeToString(t));const n=getConstraintOfTypeParameter(t),r=getDefaultFromTypeParameter(t);n&&r&&checkTypeAssignableTo(r,getTypeWithThisArgument(instantiateType(n,makeUnaryTypeMapper(t,r)),r),e.default,Ot.Type_0_does_not_satisfy_the_constraint_1),checkNodeDeferred(e),addLazyDiagnostic(()=>checkTypeNameIsReserved(e.name,Ot.Type_parameter_name_cannot_be_0))}function checkParameter(e){checkGrammarModifiers(e),checkVariableLikeDeclaration(e);const t=getContainingFunction(e);hasSyntacticModifier(e,31)&&(S.erasableSyntaxOnly&&error2(e,Ot.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled),177===t.kind&&nodeIsPresent(t.body)||error2(e,Ot.A_parameter_property_is_only_allowed_in_a_constructor_implementation),177===t.kind&&isIdentifier(e.name)&&"constructor"===e.name.escapedText&&error2(e.name,Ot.constructor_cannot_be_used_as_a_parameter_property_name)),!e.initializer&&isOptionalDeclaration(e)&&isBindingPattern(e.name)&&t.body&&error2(e,Ot.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),e.name&&isIdentifier(e.name)&&("this"===e.name.escapedText||"new"===e.name.escapedText)&&(0!==t.parameters.indexOf(e)&&error2(e,Ot.A_0_parameter_must_be_the_first_parameter,e.name.escapedText),177!==t.kind&&181!==t.kind&&186!==t.kind||error2(e,Ot.A_constructor_cannot_have_a_this_parameter),220===t.kind&&error2(e,Ot.An_arrow_function_cannot_have_a_this_parameter),178!==t.kind&&179!==t.kind||error2(e,Ot.get_and_set_accessors_cannot_declare_this_parameters)),!e.dotDotDotToken||isBindingPattern(e.name)||isTypeAssignableTo(getReducedType(getTypeOfSymbol(e.symbol)),Zt)||error2(e,Ot.A_rest_parameter_must_be_of_an_array_type)}function checkIfTypePredicateVariableIsDeclaredInBindingPattern(e,t,n){for(const r of e.elements){if(isOmittedExpression(r))continue;const e=r.name;if(80===e.kind&&e.escapedText===n)return error2(t,Ot.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern,n),!0;if((208===e.kind||207===e.kind)&&checkIfTypePredicateVariableIsDeclaredInBindingPattern(e,t,n))return!0}}function checkSignatureDeclaration(e){182===e.kind?function checkGrammarIndexSignature(e){return checkGrammarModifiers(e)||function checkGrammarIndexSignatureParameters(e){const t=e.parameters[0];if(1!==e.parameters.length)return grammarErrorOnNode(t?t.name:e,Ot.An_index_signature_must_have_exactly_one_parameter);if(checkGrammarForDisallowedTrailingComma(e.parameters,Ot.An_index_signature_cannot_have_a_trailing_comma),t.dotDotDotToken)return grammarErrorOnNode(t.dotDotDotToken,Ot.An_index_signature_cannot_have_a_rest_parameter);if(hasEffectiveModifiers(t))return grammarErrorOnNode(t.name,Ot.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(t.questionToken)return grammarErrorOnNode(t.questionToken,Ot.An_index_signature_parameter_cannot_have_a_question_mark);if(t.initializer)return grammarErrorOnNode(t.name,Ot.An_index_signature_parameter_cannot_have_an_initializer);if(!t.type)return grammarErrorOnNode(t.name,Ot.An_index_signature_parameter_must_have_a_type_annotation);const n=getTypeFromTypeNode(t.type);if(someType(n,e=>!!(8576&e.flags))||isGenericType(n))return grammarErrorOnNode(t.name,Ot.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead);if(!everyType(n,isValidIndexKeyType))return grammarErrorOnNode(t.name,Ot.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type);if(!e.type)return grammarErrorOnNode(e,Ot.An_index_signature_must_have_a_type_annotation);return!1}(e)}(e):185!==e.kind&&263!==e.kind&&186!==e.kind&&180!==e.kind&&177!==e.kind&&181!==e.kind||checkGrammarFunctionLikeDeclaration(e);const t=getFunctionFlags(e);4&t||(!(3&~t)&&x{isIdentifier(e)&&r.add(e.escapedText),isBindingPattern(e)&&i.add(t)});const o=containsArgumentsReference(e);if(o){const e=t.length-1,o=t[e];n&&o&&isIdentifier(o.name)&&o.typeExpression&&o.typeExpression.type&&!r.has(o.name.escapedText)&&!i.has(e)&&!isArrayType(getTypeFromTypeNode(o.typeExpression.type))&&error2(o.name,Ot.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type,idText(o.name))}else forEach(t,({name:e,isNameFirst:t},o)=>{i.has(o)||isIdentifier(e)&&r.has(e.escapedText)||(isQualifiedName(e)?n&&error2(e,Ot.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1,entityNameToString(e),entityNameToString(e.left)):t||errorOrSuggestion(n,e,Ot.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name,idText(e)))})}(e),forEach(e.parameters,checkParameter),e.type&&checkSourceElement(e.type),addLazyDiagnostic(function checkSignatureDeclarationDiagnostics(){!function checkCollisionWithArgumentsInGeneratedCode(e){if(x>=2||!hasRestParameter(e)||33554432&e.flags||nodeIsMissing(e.body))return;forEach(e.parameters,e=>{e.name&&!isBindingPattern(e.name)&&e.name.escapedText===$.escapedName&&errorSkippedOn("noEmit",e,Ot.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}(e);let t=getEffectiveReturnTypeNode(e),n=t;if(isInJSFile(e)){const r=getJSDocTypeTag(e);if(r&&r.typeExpression&&isTypeReferenceNode(r.typeExpression.type)){const e=getSingleCallSignature(getTypeFromTypeNode(r.typeExpression));e&&e.declaration&&(t=getEffectiveReturnTypeNode(e.declaration),n=r.typeExpression.type)}}if(A&&!t)switch(e.kind){case 181:error2(e,Ot.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);break;case 180:error2(e,Ot.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type)}if(t&&n){const r=getFunctionFlags(e);if(1==(5&r)){const e=getTypeFromTypeNode(t);e===et?error2(n,Ot.A_generator_cannot_have_a_void_type_annotation):checkGeneratorInstantiationAssignabilityToReturnType(e,r,n)}else 2==(3&r)&&function checkAsyncFunctionReturnType(e,t,n){const r=getTypeFromTypeNode(t);if(x>=2){if(isErrorType(r))return;const e=getGlobalPromiseType(!0);if(e!==Et&&!isReferenceToType2(r,e))return void reportErrorForInvalidReturnType(Ot.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0,t,n,typeToString(getAwaitedTypeNoAlias(r)||et))}else{if(markLinkedReferences(e,5),isErrorType(r))return;const i=getEntityNameFromTypeNode(t);if(void 0===i)return void reportErrorForInvalidReturnType(Ot.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,t,n,typeToString(r));const o=resolveEntityName(i,111551,!0),a=o?getTypeOfSymbol(o):Ie;if(isErrorType(a))return void(80===i.kind&&"Promise"===i.escapedText&&getTargetType(r)===getGlobalPromiseType(!1)?error2(n,Ot.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):reportErrorForInvalidReturnType(Ot.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,t,n,entityNameToString(i)));const s=function getGlobalPromiseConstructorLikeType(e){return _n||(_n=getGlobalType("PromiseConstructorLike",0,e))||ht}(!0);if(s===ht)return void reportErrorForInvalidReturnType(Ot.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,t,n,entityNameToString(i));const c=Ot.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;if(!checkTypeAssignableTo(a,s,n,c,()=>t===n?void 0:chainDiagnosticMessages(void 0,Ot.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type)))return;const l=i&&getFirstIdentifier(i),d=getSymbol2(e.locals,l.escapedText,111551);if(d)return void error2(d.valueDeclaration,Ot.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,idText(l),entityNameToString(i))}function reportErrorForInvalidReturnType(e,t,n,r){if(t===n)error2(n,e,r);else{addRelatedInfo(error2(n,Ot.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type),createDiagnosticForNode(t,e,r))}}checkAwaitedType(r,!1,e,Ot.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}(e,t,n)}182!==e.kind&&318!==e.kind&®isterForUnusedIdentifiersCheck(e)})}function checkGeneratorInstantiationAssignabilityToReturnType(e,t,n){const r=getIterationTypeOfGeneratorFunctionReturnType(0,e,!!(2&t))||ke;return checkTypeAssignableTo(createGeneratorType(r,getIterationTypeOfGeneratorFunctionReturnType(1,e,!!(2&t))||r,getIterationTypeOfGeneratorFunctionReturnType(2,e,!!(2&t))||Le,!!(2&t)),e,n)}function checkObjectTypeForDuplicateDeclarations(e){const t=new Map;for(const n of e.members)if(172===n.kind){let e;const r=n.name;switch(r.kind){case 11:case 9:e=r.text;break;case 80:e=idText(r);break;default:continue}t.get(e)?(error2(getNameOfDeclaration(n.symbol.valueDeclaration),Ot.Duplicate_identifier_0,e),error2(n.name,Ot.Duplicate_identifier_0,e)):t.set(e,!0)}}function checkTypeForDuplicateIndexSignatures(e){if(265===e.kind){const t=getSymbolOfDeclaration(e);if(t.declarations&&t.declarations.length>0&&t.declarations[0]!==e)return}const t=getIndexSymbol(getSymbolOfDeclaration(e));if(null==t?void 0:t.declarations){const e=new Map;for(const n of t.declarations)isIndexSignatureDeclaration(n)&&1===n.parameters.length&&n.parameters[0].type&&forEachType(getTypeFromTypeNode(n.parameters[0].type),t=>{const r=e.get(getTypeId(t));r?r.declarations.push(n):e.set(getTypeId(t),{type:t,declarations:[n]})});e.forEach(e=>{if(e.declarations.length>1)for(const t of e.declarations)error2(t,Ot.Duplicate_index_signature_for_type_0,typeToString(e.type))})}}function checkPropertyDeclaration(e){checkGrammarModifiers(e)||function checkGrammarProperty(e){if(isComputedPropertyName(e.name)&&isBinaryExpression(e.name.expression)&&103===e.name.expression.operatorToken.kind)return grammarErrorOnNode(e.parent.members[0],Ot.A_mapped_type_may_not_declare_properties_or_methods);if(isClassLike(e.parent)){if(isStringLiteral(e.name)&&"constructor"===e.name.text)return grammarErrorOnNode(e.name,Ot.Classes_may_not_have_a_field_named_constructor);if(checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type))return!0;if(x<2&&isPrivateIdentifier(e.name))return grammarErrorOnNode(e.name,Ot.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(x<2&&isAutoAccessorPropertyDeclaration(e)&&!(33554432&e.flags))return grammarErrorOnNode(e.name,Ot.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(isAutoAccessorPropertyDeclaration(e)&&checkGrammarForInvalidQuestionMark(e.questionToken,Ot.An_accessor_property_cannot_be_declared_optional))return!0}else if(265===e.parent.kind){if(checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(h.assertNode(e,isPropertySignature),e.initializer)return grammarErrorOnNode(e.initializer,Ot.An_interface_property_cannot_have_an_initializer)}else if(isTypeLiteralNode(e.parent)){if(checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(h.assertNode(e,isPropertySignature),e.initializer)return grammarErrorOnNode(e.initializer,Ot.A_type_literal_property_cannot_have_an_initializer)}33554432&e.flags&&checkAmbientInitializer(e);if(isPropertyDeclaration(e)&&e.exclamationToken&&(!isClassLike(e.parent)||!e.type||e.initializer||33554432&e.flags||isStatic(e)||hasAbstractModifier(e))){const t=e.initializer?Ot.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:e.type?Ot.A_definite_assignment_assertion_is_not_permitted_in_this_context:Ot.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return grammarErrorOnNode(e.exclamationToken,t)}}(e)||checkGrammarComputedPropertyName(e.name),checkVariableLikeDeclaration(e),setNodeLinksForPrivateIdentifierScope(e),hasSyntacticModifier(e,64)&&173===e.kind&&e.initializer&&error2(e,Ot.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract,declarationNameToString(e.name))}function setNodeLinksForPrivateIdentifierScope(e){if(isPrivateIdentifier(e.name)&&(xhasSyntacticModifier(e,31))))if(function superCallIsRootLevelInConstructor(e,t){const n=walkUpParenthesizedExpressions(e.parent);return isExpressionStatement(n)&&n.parent===t}(r,e.body)){let t;for(const n of e.body.statements){if(isExpressionStatement(n)&&isSuperCall(skipOuterExpressions(n.expression))){t=n;break}if(nodeImmediatelyReferencesSuperOrThis(n))break}void 0===t&&error2(e,Ot.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers)}else error2(r,Ot.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers)}else n||error2(e,Ot.Constructors_for_derived_classes_must_contain_a_super_call)}})}function nodeImmediatelyReferencesSuperOrThis(e){return 108===e.kind||110===e.kind||!isThisContainerOrFunctionBlock(e)&&!!forEachChild(e,nodeImmediatelyReferencesSuperOrThis)}function checkAccessorDeclaration(e){isIdentifier(e.name)&&"constructor"===idText(e.name)&&isClassLike(e.parent)&&error2(e.name,Ot.Class_constructor_may_not_be_an_accessor),addLazyDiagnostic(function checkAccessorDeclarationDiagnostics(){checkGrammarFunctionLikeDeclaration(e)||function checkGrammarAccessor(e){if(!(33554432&e.flags)&&188!==e.parent.kind&&265!==e.parent.kind){if(x<2&&isPrivateIdentifier(e.name))return grammarErrorOnNode(e.name,Ot.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(void 0===e.body&&!hasSyntacticModifier(e,64))return grammarErrorAtPos(e,e.end-1,1,Ot._0_expected,"{")}if(e.body){if(hasSyntacticModifier(e,64))return grammarErrorOnNode(e,Ot.An_abstract_accessor_cannot_have_an_implementation);if(188===e.parent.kind||265===e.parent.kind)return grammarErrorOnNode(e.body,Ot.An_implementation_cannot_be_declared_in_ambient_contexts)}if(e.typeParameters)return grammarErrorOnNode(e.name,Ot.An_accessor_cannot_have_type_parameters);if(!function doesAccessorHaveCorrectParameterCount(e){return getAccessorThisParameter(e)||e.parameters.length===(178===e.kind?0:1)}(e))return grammarErrorOnNode(e.name,178===e.kind?Ot.A_get_accessor_cannot_have_parameters:Ot.A_set_accessor_must_have_exactly_one_parameter);if(179===e.kind){if(e.type)return grammarErrorOnNode(e.name,Ot.A_set_accessor_cannot_have_a_return_type_annotation);const t=h.checkDefined(getSetAccessorValueParameter(e),"Return value does not match parameter count assertion.");if(t.dotDotDotToken)return grammarErrorOnNode(t.dotDotDotToken,Ot.A_set_accessor_cannot_have_rest_parameter);if(t.questionToken)return grammarErrorOnNode(t.questionToken,Ot.A_set_accessor_cannot_have_an_optional_parameter);if(t.initializer)return grammarErrorOnNode(e.name,Ot.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}(e)||checkGrammarComputedPropertyName(e.name);checkDecorators(e),checkSignatureDeclaration(e),178===e.kind&&!(33554432&e.flags)&&nodeIsPresent(e.body)&&512&e.flags&&(1024&e.flags||error2(e.name,Ot.A_get_accessor_must_return_a_value));168===e.name.kind&&checkComputedPropertyName(e.name);if(hasBindableName(e)){const t=getSymbolOfDeclaration(e),n=getDeclarationOfKind(t,178),r=getDeclarationOfKind(t,179);if(n&&r&&!(1&getNodeCheckFlags(n))){getNodeLinks(n).flags|=1;const e=getEffectiveModifierFlags(n),t=getEffectiveModifierFlags(r);(64&e)!=(64&t)&&(error2(n.name,Ot.Accessors_must_both_be_abstract_or_non_abstract),error2(r.name,Ot.Accessors_must_both_be_abstract_or_non_abstract)),(4&e&&!(6&t)||2&e&&!(2&t))&&(error2(n.name,Ot.A_get_accessor_must_be_at_least_as_accessible_as_the_setter),error2(r.name,Ot.A_get_accessor_must_be_at_least_as_accessible_as_the_setter))}}const t=getTypeOfAccessors(getSymbolOfDeclaration(e));178===e.kind&&checkAllCodePathsInNonVoidFunctionReturnOrThrow(e,t)}),checkSourceElement(e.body),setNodeLinksForPrivateIdentifierScope(e)}function getEffectiveTypeArgumentAtIndex(e,t,n){return e.typeArguments&&n{const t=getTypeParametersForTypeReferenceOrImport(e);t&&checkTypeArgumentConstraints(e,t)});const t=getNodeLinks(e).resolvedSymbol;t&&some(t.declarations,e=>isTypeDeclaration(e)&&!!(536870912&e.flags))&&addDeprecatedSuggestion(getDeprecatedSuggestionNode(e),t.declarations,t.escapedName)}}function checkIndexedAccessIndexType(e,t){if(!(8388608&e.flags))return e;const n=e.objectType,r=e.indexType,i=isGenericMappedType(n)&&2===getMappedTypeNameTypeKind(n)?getIndexTypeForMappedType(n,0):getIndexType(n,0),o=!!getIndexInfoOfType(n,Ve);if(everyType(r,e=>isTypeAssignableTo(e,i)||o&&isApplicableIndexType(e,Ve)))return 213===t.kind&&isAssignmentTarget(t)&&32&getObjectFlags(n)&&1&getMappedTypeModifiers(n)&&error2(t,Ot.Index_signature_in_type_0_only_permits_reading,typeToString(n)),e;if(isGenericObjectType(n)){const e=getPropertyNameFromIndex(r,t);if(e){const r=forEachType(getApparentType(n),t=>getPropertyOfType(t,e));if(r&&6&getDeclarationModifierFlagsFromSymbol(r))return error2(t,Ot.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter,unescapeLeadingUnderscores(e)),Ie}}return error2(t,Ot.Type_0_cannot_be_used_to_index_type_1,typeToString(r),typeToString(n)),Ie}function checkMappedType(e){!function checkGrammarMappedType(e){var t;if(null==(t=e.members)?void 0:t.length)return grammarErrorOnNode(e.members[0],Ot.A_mapped_type_may_not_declare_properties_or_methods)}(e),checkSourceElement(e.typeParameter),checkSourceElement(e.nameType),checkSourceElement(e.type),e.type||reportImplicitAny(e,ke);const t=getTypeFromMappedTypeNode(e),n=getNameTypeFromMappedType(t);if(n)checkTypeAssignableTo(n,st,e.nameType);else{checkTypeAssignableTo(getConstraintTypeFromMappedType(t),st,getEffectiveConstraintOfTypeParameter(e.typeParameter))}}function checkTypeOperator(e){!function checkGrammarTypeOperatorNode(e){if(158===e.operator){if(155!==e.type.kind)return grammarErrorOnNode(e.type,Ot._0_expected,tokenToString(155));let t=walkUpParenthesizedTypes(e.parent);if(isInJSFile(t)&&isJSDocTypeExpression(t)){const e=getJSDocHost(t);e&&(t=getSingleVariableOfVariableStatement(e)||e)}switch(t.kind){case 261:const n=t;if(80!==n.name.kind)return grammarErrorOnNode(e,Ot.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!isVariableDeclarationInVariableStatement(n))return grammarErrorOnNode(e,Ot.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(2&n.parent.flags))return grammarErrorOnNode(t.name,Ot.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 173:if(!isStatic(t)||!hasEffectiveReadonlyModifier(t))return grammarErrorOnNode(t.name,Ot.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 172:if(!hasSyntacticModifier(t,8))return grammarErrorOnNode(t.name,Ot.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return grammarErrorOnNode(e,Ot.unique_symbol_types_are_not_allowed_here)}}else if(148===e.operator&&189!==e.type.kind&&190!==e.type.kind)return grammarErrorOnFirstToken(e,Ot.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,tokenToString(155))}(e),checkSourceElement(e.type)}function isPrivateWithinAmbient(e){return(hasEffectiveModifier(e,2)||isPrivateIdentifierClassElementDeclaration(e))&&!!(33554432&e.flags)}function getEffectiveDeclarationFlags(e,t){let n=getCombinedModifierFlagsCached(e);if(265!==e.parent.kind&&264!==e.parent.kind&&232!==e.parent.kind&&33554432&e.flags){const t=getEnclosingContainer(e);!(t&&128&t.flags)||128&n||isModuleBlock(e.parent)&&isModuleDeclaration(e.parent.parent)&&isGlobalScopeAugmentation(e.parent.parent)||(n|=32),n|=128}return n&t}function checkFunctionOrConstructorSymbol(e){addLazyDiagnostic(()=>function checkFunctionOrConstructorSymbolWorker(e){function getCanonicalOverload(e,t){return void 0!==t&&t.parent===e[0].parent?t:e[0]}function checkFlagAgreementBetweenOverloads(e,t,n,r,i){if(0!==(r^i)){const r=getEffectiveDeclarationFlags(getCanonicalOverload(e,t),n);group(e,e=>getSourceFileOfNode(e).fileName).forEach(e=>{const i=getEffectiveDeclarationFlags(getCanonicalOverload(e,t),n);for(const t of e){const e=getEffectiveDeclarationFlags(t,n)^r,o=getEffectiveDeclarationFlags(t,n)^i;32&o?error2(getNameOfDeclaration(t),Ot.Overload_signatures_must_all_be_exported_or_non_exported):128&o?error2(getNameOfDeclaration(t),Ot.Overload_signatures_must_all_be_ambient_or_non_ambient):6&e?error2(getNameOfDeclaration(t)||t,Ot.Overload_signatures_must_all_be_public_private_or_protected):64&e&&error2(getNameOfDeclaration(t),Ot.Overload_signatures_must_all_be_abstract_or_non_abstract)}})}}function checkQuestionTokenAgreementBetweenOverloads(e,t,n,r){if(n!==r){const n=hasQuestionToken(getCanonicalOverload(e,t));forEach(e,e=>{hasQuestionToken(e)!==n&&error2(getNameOfDeclaration(e),Ot.Overload_signatures_must_all_be_optional_or_required)})}}const t=230;let n,r,i,o=0,a=t,s=!1,c=!0,l=!1;const d=e.declarations,p=!!(16384&e.flags);function reportImplementationExpectedError(e){if(e.name&&nodeIsMissing(e.name))return;let t=!1;const n=forEachChild(e.parent,n=>{if(t)return n;t=n===e});if(n&&n.pos===e.end&&n.kind===e.kind){const t=n.name||n,r=n.name;if(e.name&&r&&(isPrivateIdentifier(e.name)&&isPrivateIdentifier(r)&&e.name.escapedText===r.escapedText||isComputedPropertyName(e.name)&&isComputedPropertyName(r)&&isTypeIdenticalTo(checkComputedPropertyName(e.name),checkComputedPropertyName(r))||isPropertyNameLiteral(e.name)&&isPropertyNameLiteral(r)&&getEscapedTextOfIdentifierOrLiteral(e.name)===getEscapedTextOfIdentifierOrLiteral(r))){if((175===e.kind||174===e.kind)&&isStatic(e)!==isStatic(n)){error2(t,isStatic(e)?Ot.Function_overload_must_be_static:Ot.Function_overload_must_not_be_static)}return}if(nodeIsPresent(n.body))return void error2(t,Ot.Function_implementation_name_must_be_0,declarationNameToString(e.name))}const r=e.name||e;p?error2(r,Ot.Constructor_implementation_is_missing):hasSyntacticModifier(e,64)?error2(r,Ot.All_declarations_of_an_abstract_method_must_be_consecutive):error2(r,Ot.Function_implementation_is_missing_or_not_immediately_following_the_declaration)}let u=!1,m=!1,_=!1;const f=[];if(d)for(const e of d){const d=e,g=33554432&d.flags,y=d.parent&&(265===d.parent.kind||188===d.parent.kind)||g;if(y&&(i=void 0),264!==d.kind&&232!==d.kind||g||(_=!0),263===d.kind||175===d.kind||174===d.kind||177===d.kind){f.push(d);const e=getEffectiveDeclarationFlags(d,t);o|=e,a&=e,s=s||hasQuestionToken(d),c=c&&hasQuestionToken(d);const _=nodeIsPresent(d.body);_&&n?p?m=!0:u=!0:(null==i?void 0:i.parent)===d.parent&&i.end!==d.pos&&reportImplementationExpectedError(i),_?n||(n=d):l=!0,i=d,y||(r=d)}isInJSFile(e)&&isFunctionLike(e)&&e.jsDoc&&(l=length(getJSDocOverloadTags(e))>0)}m&&forEach(f,e=>{error2(e,Ot.Multiple_constructor_implementations_are_not_allowed)});u&&forEach(f,e=>{error2(getNameOfDeclaration(e)||e,Ot.Duplicate_function_implementation)});if(_&&!p&&16&e.flags&&d){const t=filter(d,e=>264===e.kind).map(e=>createDiagnosticForNode(e,Ot.Consider_adding_a_declare_modifier_to_this_class));forEach(d,n=>{const r=264===n.kind?Ot.Class_declaration_cannot_implement_overload_list_for_0:263===n.kind?Ot.Function_with_bodies_can_only_merge_with_classes_that_are_ambient:void 0;r&&addRelatedInfo(error2(getNameOfDeclaration(n)||n,r,symbolName(e)),...t)})}!r||r.body||hasSyntacticModifier(r,64)||r.questionToken||reportImplementationExpectedError(r);if(l&&(d&&(checkFlagAgreementBetweenOverloads(d,n,t,o,a),checkQuestionTokenAgreementBetweenOverloads(d,n,s,c)),n)){const t=getSignaturesOfSymbol(e),r=getSignatureFromDeclaration(n);for(const e of t)if(!isImplementationCompatibleWithOverload(r,e)){addRelatedInfo(error2(e.declaration&&isJSDocSignature(e.declaration)?e.declaration.parent.tagName:e.declaration,Ot.This_overload_signature_is_not_compatible_with_its_implementation_signature),createDiagnosticForNode(n,Ot.The_implementation_signature_is_declared_here));break}}}(e))}function checkExportsOnMergedDeclarations(e){addLazyDiagnostic(()=>function checkExportsOnMergedDeclarationsWorker(e){let t=e.localSymbol;if(!t&&(t=getSymbolOfDeclaration(e),!t.exportSymbol))return;if(getDeclarationOfKind(t,e.kind)!==e)return;let n=0,r=0,i=0;for(const e of t.declarations){const t=getDeclarationSpaces(e),o=getEffectiveDeclarationFlags(e,2080);32&o?2048&o?i|=t:n|=t:r|=t}const o=n&r,a=i&(n|r);if(o||a)for(const e of t.declarations){const t=getDeclarationSpaces(e),n=getNameOfDeclaration(e);t&a?error2(n,Ot.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead,declarationNameToString(n)):t&o&&error2(n,Ot.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local,declarationNameToString(n))}function getDeclarationSpaces(e){let t=e;switch(t.kind){case 265:case 266:case 347:case 339:case 341:return 2;case 268:return isAmbientModule(t)||0!==getModuleInstanceState(t)?5:4;case 264:case 267:case 307:return 3;case 308:return 7;case 278:case 227:const e=t,n=isExportAssignment(e)?e.expression:e.right;if(!isEntityNameExpression(n))return 1;t=n;case 272:case 275:case 274:let r=0;return forEach(resolveAlias(getSymbolOfDeclaration(t)).declarations,e=>{r|=getDeclarationSpaces(e)}),r;case 261:case 209:case 263:case 277:case 80:return 1;case 174:case 172:return 2;default:return h.failBadSyntaxKind(t)}}}(e))}function getAwaitedTypeOfPromise(e,t,n,...r){const i=getPromisedTypeOfPromise(e,t);return i&&getAwaitedType(i,t,n,...r)}function getPromisedTypeOfPromise(e,t,n){if(isTypeAny(e))return;const r=e;if(r.promisedTypeOfPromise)return r.promisedTypeOfPromise;if(isReferenceToType2(e,getGlobalPromiseType(!1)))return r.promisedTypeOfPromise=getTypeArguments(e)[0];if(allTypesAssignableToKind(getBaseConstraintOrType(e),402915324))return;const i=getTypeOfPropertyOfType(e,"then");if(isTypeAny(i))return;const o=i?getSignaturesOfType(i,0):l;if(0===o.length)return void(t&&error2(t,Ot.A_promise_must_have_a_then_method));let a,s;for(const t of o){const n=getThisTypeOfSignature(t);n&&n!==et&&!isTypeRelatedTo(e,n,Ei)?a=n:s=append(s,t)}if(!s)return h.assertIsDefined(a),n&&(n.value=a),void(t&&error2(t,Ot.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1,typeToString(e),typeToString(a)));const c=getTypeWithFacts(getUnionType(map(s,getTypeOfFirstParameterOfSignature)),2097152);if(isTypeAny(c))return;const d=getSignaturesOfType(c,0);if(0!==d.length)return r.promisedTypeOfPromise=getUnionType(map(d,getTypeOfFirstParameterOfSignature),2);t&&error2(t,Ot.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback)}function checkAwaitedType(e,t,n,r,...i){return(t?getAwaitedType(e,n,r,...i):getAwaitedTypeNoAlias(e,n,r,...i))||Ie}function isThenableType(e){if(allTypesAssignableToKind(getBaseConstraintOrType(e),402915324))return!1;const t=getTypeOfPropertyOfType(e,"then");return!!t&&getSignaturesOfType(getTypeWithFacts(t,2097152),0).length>0}function isAwaitedTypeInstantiation(e){var t;if(16777216&e.flags){const n=getGlobalAwaitedSymbol(!1);return!!n&&e.aliasSymbol===n&&1===(null==(t=e.aliasTypeArguments)?void 0:t.length)}return!1}function unwrapAwaitedType(e){return 1048576&e.flags?mapType(e,unwrapAwaitedType):isAwaitedTypeInstantiation(e)?e.aliasTypeArguments[0]:e}function isAwaitedTypeNeeded(e){if(isTypeAny(e)||isAwaitedTypeInstantiation(e))return!1;if(isGenericObjectType(e)){const t=getBaseConstraintOfType(e);if(t?3&t.flags||isEmptyObjectType(t)||someType(t,isThenableType):maybeTypeOfKind(e,8650752))return!0}return!1}function createAwaitedTypeIfNeeded(e){return isAwaitedTypeNeeded(e)?function tryCreateAwaitedType(e){const t=getGlobalAwaitedSymbol(!0);if(t)return getTypeAliasInstantiation(t,[unwrapAwaitedType(e)])}(e)??e:(h.assert(isAwaitedTypeInstantiation(e)||void 0===getPromisedTypeOfPromise(e),"type provided should not be a non-generic 'promise'-like."),e)}function getAwaitedType(e,t,n,...r){const i=getAwaitedTypeNoAlias(e,t,n,...r);return i&&createAwaitedTypeIfNeeded(i)}function getAwaitedTypeNoAlias(e,t,n,...r){if(isTypeAny(e))return e;if(isAwaitedTypeInstantiation(e))return e;const i=e;if(i.awaitedTypeOfType)return i.awaitedTypeOfType;if(1048576&e.flags){if(hi.lastIndexOf(e.id)>=0)return void(t&&error2(t,Ot.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method));const o=t?e=>getAwaitedTypeNoAlias(e,t,n,...r):getAwaitedTypeNoAlias;hi.push(e.id);const a=mapType(e,o);return hi.pop(),i.awaitedTypeOfType=a}if(isAwaitedTypeNeeded(e))return i.awaitedTypeOfType=e;const o={value:void 0},a=getPromisedTypeOfPromise(e,void 0,o);if(a){if(e.id===a.id||hi.lastIndexOf(a.id)>=0)return void(t&&error2(t,Ot.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method));hi.push(e.id);const o=getAwaitedTypeNoAlias(a,t,n,...r);if(hi.pop(),!o)return;return i.awaitedTypeOfType=o}if(!isThenableType(e))return i.awaitedTypeOfType=e;if(t){let i;h.assertIsDefined(n),o.value&&(i=chainDiagnosticMessages(i,Ot.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1,typeToString(e),typeToString(o.value))),i=chainDiagnosticMessages(i,n,...r),vi.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(t),t,i))}}function checkDecorator(e){!function checkGrammarDecorator(e){if(!hasParseDiagnostics(getSourceFileOfNode(e))){let t=e.expression;if(isParenthesizedExpression(t))return!1;let n,r=!0;for(;;)if(isExpressionWithTypeArguments(t)||isNonNullExpression(t))t=t.expression;else if(isCallExpression(t))r||(n=t),t.questionDotToken&&(n=t.questionDotToken),t=t.expression,r=!1;else{if(!isPropertyAccessExpression(t)){isIdentifier(t)||(n=t);break}t.questionDotToken&&(n=t.questionDotToken),t=t.expression,r=!1}if(n)return addRelatedInfo(error2(e.expression,Ot.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator),createDiagnosticForNode(n,Ot.Invalid_syntax_in_decorator)),!0}return!1}(e);const t=getResolvedSignature(e);checkDeprecatedSignature(t,e);const n=getReturnTypeOfSignature(t);if(1&n.flags)return;const r=getDecoratorCallSignature(e);if(!(null==r?void 0:r.resolvedReturnType))return;let i;const o=r.resolvedReturnType;switch(e.parent.kind){case 264:case 232:i=Ot.Decorator_function_return_type_0_is_not_assignable_to_type_1;break;case 173:if(!b){i=Ot.Decorator_function_return_type_0_is_not_assignable_to_type_1;break}case 170:i=Ot.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any;break;case 175:case 178:case 179:i=Ot.Decorator_function_return_type_0_is_not_assignable_to_type_1;break;default:return h.failBadSyntaxKind(e.parent)}checkTypeAssignableTo(n,o,e.expression,i)}function createCallSignature(e,t,n,r,i,o=n.length,a=0){return createSignature(Wr.createFunctionTypeNode(void 0,l,Wr.createKeywordTypeNode(133)),e,t,n,r,i,o,a)}function createFunctionType(e,t,n,r,i,o,a){return getOrCreateTypeFromSignature(createCallSignature(e,t,n,r,i,o,a))}function createGetterFunctionType(e){return createFunctionType(void 0,void 0,l,e)}function createSetterFunctionType(e){return createFunctionType(void 0,void 0,[createParameter2("value",e)],et)}function getEntityNameForDecoratorMetadata(e){if(e)switch(e.kind){case 194:case 193:return getEntityNameForDecoratorMetadataFromTypeList(e.types);case 195:return getEntityNameForDecoratorMetadataFromTypeList([e.trueType,e.falseType]);case 197:case 203:return getEntityNameForDecoratorMetadata(e.type);case 184:return e.typeName}}function getEntityNameForDecoratorMetadataFromTypeList(e){let t;for(let n of e){for(;197===n.kind||203===n.kind;)n=n.type;if(146===n.kind)continue;if(!k&&(202===n.kind&&106===n.literal.kind||157===n.kind))continue;const e=getEntityNameForDecoratorMetadata(n);if(!e)return;if(t){if(!isIdentifier(t)||!isIdentifier(e)||t.escapedText!==e.escapedText)return}else t=e}return t}function getParameterTypeNodeForDecoratorCheck(e){const t=getEffectiveTypeAnnotationNode(e);return isRestParameter(e)?getRestParameterElementType(t):t}function checkDecorators(e){if(!(canHaveDecorators(e)&&hasDecorators(e)&&e.modifiers&&nodeCanBeDecorated(b,e,e.parent,e.parent.parent)))return;const t=find(e.modifiers,isDecorator);if(t){if(b)checkExternalEmitHelpers(t,8),170===e.kind&&checkExternalEmitHelpers(t,32);else if(xt.kind===e.kind&&!(524288&t.flags));e===i&&checkFunctionOrConstructorSymbol(r),n.parent&&checkFunctionOrConstructorSymbol(n)}const r=174===e.kind?void 0:e.body;if(checkSourceElement(r),checkAllCodePathsInNonVoidFunctionReturnOrThrow(e,getReturnTypeFromAnnotation(e)),addLazyDiagnostic(function checkFunctionOrMethodDeclarationDiagnostics(){getEffectiveReturnTypeNode(e)||(nodeIsMissing(r)&&!isPrivateWithinAmbient(e)&&reportImplicitAny(e,ke),1&n&&nodeIsPresent(r)&&getReturnTypeOfSignature(getSignatureFromDeclaration(e)))}),isInJSFile(e)){const t=getJSDocTypeTag(e);t&&t.typeExpression&&!getContextualCallSignature(getTypeFromTypeNode(t.typeExpression),e)&&error2(t.typeExpression.type,Ot.The_type_of_a_function_declaration_must_match_the_function_s_signature)}}function registerForUnusedIdentifiersCheck(e){addLazyDiagnostic(function registerForUnusedIdentifiersCheckDiagnostics(){const t=getSourceFileOfNode(e);let n=Fr.get(t.path);n||(n=[],Fr.set(t.path,n));n.push(e)})}function checkUnusedIdentifiers(e,t){for(const n of e)switch(n.kind){case 264:case 232:checkUnusedClassMembers(n,t),checkUnusedTypeParameters(n,t);break;case 308:case 268:case 242:case 270:case 249:case 250:case 251:checkUnusedLocalsAndParameters(n,t);break;case 177:case 219:case 263:case 220:case 175:case 178:case 179:n.body&&checkUnusedLocalsAndParameters(n,t),checkUnusedTypeParameters(n,t);break;case 174:case 180:case 181:case 185:case 186:case 266:case 265:checkUnusedTypeParameters(n,t);break;case 196:checkUnusedInferTypeParameter(n,t);break;default:h.assertNever(n,"Node should not have been registered for unused identifiers check")}}function errorUnusedLocal(e,t,n){n(e,0,createDiagnosticForNode(getNameOfDeclaration(e)||e,isTypeDeclaration(e)?Ot._0_is_declared_but_never_used:Ot._0_is_declared_but_its_value_is_never_read,t))}function isIdentifierThatStartsWithUnderscore(e){return isIdentifier(e)&&95===idText(e).charCodeAt(0)}function checkUnusedClassMembers(e,t){for(const n of e.members)switch(n.kind){case 175:case 173:case 178:case 179:if(179===n.kind&&32768&n.symbol.flags)break;const e=getSymbolOfDeclaration(n);e.isReferenced||!(hasEffectiveModifier(n,2)||isNamedDeclaration(n)&&isPrivateIdentifier(n.name))||33554432&n.flags||t(n,0,createDiagnosticForNode(n.name,Ot._0_is_declared_but_its_value_is_never_read,symbolToString(e)));break;case 177:for(const e of n.parameters)!e.symbol.isReferenced&&hasSyntacticModifier(e,2)&&t(e,0,createDiagnosticForNode(e.name,Ot.Property_0_is_declared_but_its_value_is_never_read,symbolName(e.symbol)));break;case 182:case 241:case 176:break;default:h.fail("Unexpected class member")}}function checkUnusedInferTypeParameter(e,t){const{typeParameter:n}=e;isTypeParameterUnused(n)&&t(e,1,createDiagnosticForNode(e,Ot._0_is_declared_but_its_value_is_never_read,idText(n.name)))}function checkUnusedTypeParameters(e,t){const n=getSymbolOfDeclaration(e).declarations;if(!n||last(n)!==e)return;const r=getEffectiveTypeParameterDeclarations(e),i=new Set;for(const e of r){if(!isTypeParameterUnused(e))continue;const n=idText(e.name),{parent:r}=e;if(196!==r.kind&&r.typeParameters.every(isTypeParameterUnused)){if(tryAddToSet(i,r)){const i=getSourceFileOfNode(r),o=isJSDocTemplateTag(r)?rangeOfNode(r):rangeOfTypeParameters(i,r.typeParameters),a=1===r.typeParameters.length?[Ot._0_is_declared_but_its_value_is_never_read,n]:[Ot.All_type_parameters_are_unused];t(e,1,createFileDiagnostic(i,o.pos,o.end-o.pos,...a))}}else t(e,1,createDiagnosticForNode(e,Ot._0_is_declared_but_its_value_is_never_read,n))}}function isTypeParameterUnused(e){return!(262144&getMergedSymbol(e.symbol).isReferenced||isIdentifierThatStartsWithUnderscore(e.name))}function addToGroup(e,t,n,r){const i=String(r(t)),o=e.get(i);o?o[1].push(n):e.set(i,[t,[n]])}function tryGetRootParameterDeclaration(e){return tryCast(getRootDeclaration(e),isParameter)}function isValidUnusedLocalDeclaration(e){return isBindingElement(e)?isObjectBindingPattern(e.parent)?!(!e.propertyName||!isIdentifierThatStartsWithUnderscore(e.name)):isIdentifierThatStartsWithUnderscore(e.name):isAmbientModule(e)||(isVariableDeclaration(e)&&isForInOrOfStatement(e.parent.parent)||isImportedDeclaration(e))&&isIdentifierThatStartsWithUnderscore(e.name)}function checkUnusedLocalsAndParameters(e,t){const n=new Map,r=new Map,i=new Map;e.locals.forEach(e=>{if(!(262144&e.flags?!(3&e.flags)||3&e.isReferenced:e.isReferenced||e.exportSymbol)&&e.declarations)for(const o of e.declarations)if(!isValidUnusedLocalDeclaration(o))if(isImportedDeclaration(o))addToGroup(n,importClauseFromImported(o),o,getNodeId);else if(isBindingElement(o)&&isObjectBindingPattern(o.parent)){o!==last(o.parent.elements)&&last(o.parent.elements).dotDotDotToken||addToGroup(r,o.parent,o,getNodeId)}else if(isVariableDeclaration(o)){const e=7&getCombinedNodeFlagsCached(o),t=getNameOfDeclaration(o);(4===e||6===e)&&t&&isIdentifierThatStartsWithUnderscore(t)||addToGroup(i,o.parent,o,getNodeId)}else{const n=e.valueDeclaration&&tryGetRootParameterDeclaration(e.valueDeclaration),i=e.valueDeclaration&&getNameOfDeclaration(e.valueDeclaration);n&&i?isParameterPropertyDeclaration(n,n.parent)||parameterIsThisKeyword(n)||isIdentifierThatStartsWithUnderscore(i)||(isBindingElement(o)&&isArrayBindingPattern(o.parent)?addToGroup(r,o.parent,o,getNodeId):t(n,1,createDiagnosticForNode(i,Ot._0_is_declared_but_its_value_is_never_read,symbolName(e)))):errorUnusedLocal(o,symbolName(e),t)}}),n.forEach(([e,n])=>{const r=e.parent;if((e.name?1:0)+(e.namedBindings?275===e.namedBindings.kind?1:e.namedBindings.elements.length:0)===n.length)t(r,0,1===n.length?createDiagnosticForNode(r,Ot._0_is_declared_but_its_value_is_never_read,idText(first(n).name)):createDiagnosticForNode(r,Ot.All_imports_in_import_declaration_are_unused));else for(const e of n)errorUnusedLocal(e,idText(e.name),t)}),r.forEach(([e,n])=>{const r=tryGetRootParameterDeclaration(e.parent)?1:0;if(e.elements.length===n.length)1===n.length&&261===e.parent.kind&&262===e.parent.parent.kind?addToGroup(i,e.parent.parent,e.parent,getNodeId):t(e,r,1===n.length?createDiagnosticForNode(e,Ot._0_is_declared_but_its_value_is_never_read,bindingNameText(first(n).name)):createDiagnosticForNode(e,Ot.All_destructured_elements_are_unused));else for(const e of n)t(e,r,createDiagnosticForNode(e,Ot._0_is_declared_but_its_value_is_never_read,bindingNameText(e.name)))}),i.forEach(([e,n])=>{if(e.declarations.length===n.length)t(e,0,1===n.length?createDiagnosticForNode(first(n).name,Ot._0_is_declared_but_its_value_is_never_read,bindingNameText(first(n).name)):createDiagnosticForNode(244===e.parent.kind?e.parent:e,Ot.All_variables_are_unused));else for(const e of n)t(e,0,createDiagnosticForNode(e,Ot._0_is_declared_but_its_value_is_never_read,bindingNameText(e.name)))})}function bindingNameText(e){switch(e.kind){case 80:return idText(e);case 208:case 207:return bindingNameText(cast(first(e.elements),isBindingElement).name);default:return h.assertNever(e)}}function isImportedDeclaration(e){return 274===e.kind||277===e.kind||275===e.kind}function importClauseFromImported(e){return 274===e.kind?e:275===e.kind?e.parent:e.parent.parent}function checkBlock(e){if(242===e.kind&&checkGrammarStatementInAmbientContext(e),isFunctionOrModuleBlock(e)){const t=Ar;forEach(e.statements,checkSourceElement),Ar=t}else forEach(e.statements,checkSourceElement);e.locals&®isterForUnusedIdentifiersCheck(e)}function needCollisionCheckForIdentifier(e,t,n){if((null==t?void 0:t.escapedText)!==n)return!1;if(173===e.kind||172===e.kind||175===e.kind||174===e.kind||178===e.kind||179===e.kind||304===e.kind)return!1;if(33554432&e.flags)return!1;if((isImportClause(e)||isImportEqualsDeclaration(e)||isImportSpecifier(e))&&isTypeOnlyImportOrExportDeclaration(e))return!1;const r=getRootDeclaration(e);return!isParameter(r)||!nodeIsMissing(r.parent.body)}function checkIfThisIsCapturedInEnclosingScope(e){findAncestor(e,t=>{if(4&getNodeCheckFlags(t)){return 80!==e.kind?error2(getNameOfDeclaration(e),Ot.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):error2(e,Ot.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function checkIfNewTargetIsCapturedInEnclosingScope(e){findAncestor(e,t=>{if(8&getNodeCheckFlags(t)){return 80!==e.kind?error2(getNameOfDeclaration(e),Ot.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):error2(e,Ot.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function checkWeakMapSetCollision(e){1048576&getNodeCheckFlags(getEnclosingBlockScopeContainer(e))&&(h.assert(isNamedDeclaration(e)&&isIdentifier(e.name)&&"string"==typeof e.name.escapedText,"The target of a WeakMap/WeakSet collision check should be an identifier"),errorSkippedOn("noEmit",e,Ot.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,e.name.escapedText))}function checkReflectCollision(e){let t=!1;if(isClassExpression(e)){for(const n of e.members)if(2097152&getNodeCheckFlags(n)){t=!0;break}}else if(isFunctionExpression(e))2097152&getNodeCheckFlags(e)&&(t=!0);else{const n=getEnclosingBlockScopeContainer(e);n&&2097152&getNodeCheckFlags(n)&&(t=!0)}t&&(h.assert(isNamedDeclaration(e)&&isIdentifier(e.name),"The target of a Reflect collision check should be an identifier"),errorSkippedOn("noEmit",e,Ot.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers,declarationNameToString(e.name),"Reflect"))}function checkCollisionsForDeclarationName(t,n){n&&(!function checkCollisionWithRequireExportsInGeneratedCode(t,n){if(e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))>=5)return;if(!n||!needCollisionCheckForIdentifier(t,n,"require")&&!needCollisionCheckForIdentifier(t,n,"exports"))return;if(isModuleDeclaration(t)&&1!==getModuleInstanceState(t))return;const r=getDeclarationContainer(t);308===r.kind&&isExternalOrCommonJsModule(r)&&errorSkippedOn("noEmit",n,Ot.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,declarationNameToString(n),declarationNameToString(n))}(t,n),function checkCollisionWithGlobalPromiseInGeneratedCode(e,t){if(!t||x>=4||!needCollisionCheckForIdentifier(e,t,"Promise"))return;if(isModuleDeclaration(e)&&1!==getModuleInstanceState(e))return;const n=getDeclarationContainer(e);308===n.kind&&isExternalOrCommonJsModule(n)&&4096&n.flags&&errorSkippedOn("noEmit",t,Ot.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,declarationNameToString(t),declarationNameToString(t))}(t,n),function recordPotentialCollisionWithWeakMapSetInGeneratedCode(e,t){x<=8&&(needCollisionCheckForIdentifier(e,t,"WeakMap")||needCollisionCheckForIdentifier(e,t,"WeakSet"))&&fi.push(e)}(t,n),function recordPotentialCollisionWithReflectInGeneratedCode(e,t){t&&x>=2&&x<=8&&needCollisionCheckForIdentifier(e,t,"Reflect")&&gi.push(e)}(t,n),isClassLike(t)?(checkTypeNameIsReserved(n,Ot.Class_name_cannot_be_0),33554432&t.flags||function checkClassNameCollisionWithObject(t){x>=1&&"Object"===t.escapedText&&e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<5&&error2(t,Ot.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0,$e[v])}(n)):isEnumDeclaration(t)&&checkTypeNameIsReserved(n,Ot.Enum_name_cannot_be_0))}function convertAutoToAny(e){return e===Fe?ke:e===Yt?Xt:e}function checkVariableLikeDeclaration(e){var t;if(checkDecorators(e),isBindingElement(e)||checkSourceElement(e.type),!e.name)return;if(168===e.name.kind&&(checkComputedPropertyName(e.name),hasOnlyExpressionInitializer(e)&&e.initializer&&checkExpressionCached(e.initializer)),isBindingElement(e)){if(e.propertyName&&isIdentifier(e.name)&&isPartOfParameterDeclaration(e)&&nodeIsMissing(getContainingFunction(e).body))return void yi.push(e);isObjectBindingPattern(e.parent)&&e.dotDotDotToken&&x1&&some(n.declarations,t=>t!==e&&isVariableLike(t)&&!areDeclarationFlagsIdentical(t,e))&&error2(e.name,Ot.All_declarations_of_0_must_have_identical_modifiers,declarationNameToString(e.name))}else{const t=convertAutoToAny(getWidenedTypeForVariableLikeDeclaration(e));isErrorType(r)||isErrorType(t)||isTypeIdenticalTo(r,t)||67108864&n.flags||errorNextVariableOrPropertyDeclarationMustHaveSameType(n.valueDeclaration,r,e,t),hasOnlyExpressionInitializer(e)&&e.initializer&&checkTypeAssignableToAndOptionallyElaborate(checkExpressionCached(e.initializer),t,e,e.initializer,void 0),n.valueDeclaration&&!areDeclarationFlagsIdentical(e,n.valueDeclaration)&&error2(e.name,Ot.All_declarations_of_0_must_have_identical_modifiers,declarationNameToString(e.name))}173!==e.kind&&172!==e.kind&&(checkExportsOnMergedDeclarations(e),261!==e.kind&&209!==e.kind||function checkVarDeclaredNamesNotShadowed(e){if(7&getCombinedNodeFlagsCached(e)||isPartOfParameterDeclaration(e))return;const t=getSymbolOfDeclaration(e);if(1&t.flags){if(!isIdentifier(e.name))return h.fail();const n=te(e,e.name.escapedText,3,void 0,!1);if(n&&n!==t&&2&n.flags&&7&getDeclarationNodeFlagsFromSymbol(n)){const t=getAncestor(n.valueDeclaration,262),r=244===t.parent.kind&&t.parent.parent?t.parent.parent:void 0;if(!r||!(242===r.kind&&isFunctionLike(r.parent)||269===r.kind||268===r.kind||308===r.kind)){const t=symbolToString(n);error2(e,Ot.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1,t,t)}}}}(e),checkCollisionsForDeclarationName(e,e.name))}function errorNextVariableOrPropertyDeclarationMustHaveSameType(e,t,n,r){const i=getNameOfDeclaration(n),o=173===n.kind||172===n.kind?Ot.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:Ot.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,a=declarationNameToString(i),s=error2(i,o,a,typeToString(t),typeToString(r));e&&addRelatedInfo(s,createDiagnosticForNode(e,Ot._0_was_also_declared_here,a))}function areDeclarationFlagsIdentical(e,t){if(170===e.kind&&261===t.kind||261===e.kind&&170===t.kind)return!0;if(hasQuestionToken(e)!==hasQuestionToken(t))return!1;return getSelectedEffectiveModifierFlags(e,1358)===getSelectedEffectiveModifierFlags(t,1358)}function checkVariableDeclaration(t){var n,r;null==(n=J)||n.push(J.Phase.Check,"checkVariableDeclaration",{kind:t.kind,pos:t.pos,end:t.end,path:t.tracingPath}),function checkGrammarVariableDeclaration(t){const n=getCombinedNodeFlagsCached(t),r=7&n;if(isBindingPattern(t.name))switch(r){case 6:return grammarErrorOnNode(t,Ot._0_declarations_may_not_have_binding_patterns,"await using");case 4:return grammarErrorOnNode(t,Ot._0_declarations_may_not_have_binding_patterns,"using")}if(250!==t.parent.parent.kind&&251!==t.parent.parent.kind)if(33554432&n)checkAmbientInitializer(t);else if(!t.initializer){if(isBindingPattern(t.name)&&!isBindingPattern(t.parent))return grammarErrorOnNode(t,Ot.A_destructuring_declaration_must_have_an_initializer);switch(r){case 6:return grammarErrorOnNode(t,Ot._0_declarations_must_be_initialized,"await using");case 4:return grammarErrorOnNode(t,Ot._0_declarations_must_be_initialized,"using");case 2:return grammarErrorOnNode(t,Ot._0_declarations_must_be_initialized,"const")}}if(t.exclamationToken&&(244!==t.parent.parent.kind||!t.type||t.initializer||33554432&n)){const e=t.initializer?Ot.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:t.type?Ot.A_definite_assignment_assertion_is_not_permitted_in_this_context:Ot.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return grammarErrorOnNode(t.exclamationToken,e)}e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<4&&!(33554432&t.parent.parent.flags)&&hasSyntacticModifier(t.parent.parent,32)&&checkESModuleMarker(t.name);return!!r&&checkGrammarNameInLetOrConstDeclarations(t.name)}(t),checkVariableLikeDeclaration(t),null==(r=J)||r.pop()}function checkBindingElement(e){return function checkGrammarBindingElement(e){if(e.dotDotDotToken){const t=e.parent.elements;if(e!==last(t))return grammarErrorOnNode(e,Ot.A_rest_element_must_be_last_in_a_destructuring_pattern);if(checkGrammarForDisallowedTrailingComma(t,Ot.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),e.propertyName)return grammarErrorOnNode(e.name,Ot.A_rest_element_cannot_have_a_property_name)}if(e.dotDotDotToken&&e.initializer)return grammarErrorAtPos(e,e.initializer.pos-1,1,Ot.A_rest_element_cannot_have_an_initializer)}(e),checkVariableLikeDeclaration(e)}function checkVariableDeclarationList(e){const t=7&getCombinedNodeFlags(e);(4===t||6===t)&&x=2,s=!a&&S.downlevelIteration,c=S.noUncheckedIndexedAccess&&!!(128&e);if(a||s||o){const o=getIterationTypesOfIterable(t,e,a?r:void 0);if(i&&o){const t=8&e?Ot.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:32&e?Ot.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:64&e?Ot.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:16&e?Ot.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;t&&checkTypeAssignableTo(n,o.nextType,r,t)}if(o||a)return c?includeUndefinedInIndexSignature(o&&o.yieldType):o&&o.yieldType}let l=t,d=!1;if(4&e){if(1048576&l.flags){const e=t.types,n=filter(e,e=>!(402653316&e.flags));n!==e&&(l=getUnionType(n,2))}else 402653316&l.flags&&(l=tt);if(d=l!==t,d&&131072&l.flags)return c?includeUndefinedInIndexSignature(ze):ze}if(!isArrayLikeType(l)){if(r){const n=!!(4&e)&&!d,[i,o]=function getIterationDiagnosticDetails(n,r){var i;if(r)return n?[Ot.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:[Ot.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0];if(getIterationTypeOfIterable(e,0,t,void 0))return[Ot.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!1];if(function isES2015OrLaterIterable(e){switch(e){case"Float32Array":case"Float64Array":case"Int16Array":case"Int32Array":case"Int8Array":case"NodeList":case"Uint16Array":case"Uint32Array":case"Uint8Array":case"Uint8ClampedArray":return!0}return!1}(null==(i=t.symbol)?void 0:i.escapedName))return[Ot.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0];return n?[Ot.Type_0_is_not_an_array_type_or_a_string_type,!0]:[Ot.Type_0_is_not_an_array_type,!0]}(n,s);errorAndMaybeSuggestAwait(r,o&&!!getAwaitedTypeOfPromise(l),i,typeToString(l))}return d?c?includeUndefinedInIndexSignature(ze):ze:void 0}const p=getIndexTypeOfType(l,Ve);return d&&p?402653316&p.flags&&!S.noUncheckedIndexedAccess?ze:getUnionType(c?[p,ze,Me]:[p,ze],2):128&e?includeUndefinedInIndexSignature(p):p}function getIterationTypeOfIterable(e,t,n,r){if(isTypeAny(n))return;const i=getIterationTypesOfIterable(n,e,r);return i&&i[getIterationTypesKeyFromIterationTypeKind(t)]}function createIterationTypes(e=tt,t=tt,n=Le){if(67359327&e.flags&&180227&t.flags&&180227&n.flags){const r=getTypeListId([e,t,n]);let i=Sr.get(r);return i||(i={yieldType:e,returnType:t,nextType:n},Sr.set(r,i)),i}return{yieldType:e,returnType:t,nextType:n}}function combineIterationTypes(e){let t,n,r;for(const i of e)if(void 0!==i&&i!==xr){if(i===vr)return vr;t=append(t,i.yieldType),n=append(n,i.returnType),r=append(r,i.nextType)}return t||n||r?createIterationTypes(t&&getUnionType(t),n&&getUnionType(n),r&&getIntersectionType(r)):xr}function getCachedIterationTypes(e,t){return e[t]}function setCachedIterationTypes(e,t,n){return e[t]=n}function getIterationTypesOfIterable(e,t,n){var r,i;if(e===nt)return br;if(isTypeAny(e))return vr;if(!(1048576&e.flags)){const i=n?{errors:void 0,skipLogging:!0}:void 0,o=getIterationTypesOfIterableWorker(e,t,n,i);if(o===xr){if(n){const r=reportTypeNotIterableError(n,e,!!(2&t));(null==i?void 0:i.errors)&&addRelatedInfo(r,...i.errors)}return}if(null==(r=null==i?void 0:i.errors)?void 0:r.length)for(const e of i.errors)vi.add(e);return o}const o=2&t?"iterationTypesOfAsyncIterable":"iterationTypesOfIterable",a=getCachedIterationTypes(e,o);if(a)return a===xr?void 0:a;let s;for(const r of e.types){const a=n?{errors:void 0}:void 0,c=getIterationTypesOfIterableWorker(r,t,n,a);if(c===xr){if(n){const r=reportTypeNotIterableError(n,e,!!(2&t));(null==a?void 0:a.errors)&&addRelatedInfo(r,...a.errors)}return void setCachedIterationTypes(e,o,xr)}if(null==(i=null==a?void 0:a.errors)?void 0:i.length)for(const e of a.errors)vi.add(e);s=append(s,c)}const c=s?combineIterationTypes(s):xr;return setCachedIterationTypes(e,o,c),c===xr?void 0:c}function getAsyncFromSyncIterationTypes(e,t){if(e===xr)return xr;if(e===vr)return vr;const{yieldType:n,returnType:r,nextType:i}=e;return t&&getGlobalAwaitedSymbol(!0),createIterationTypes(getAwaitedType(n,t)||ke,getAwaitedType(r,t)||ke,i)}function getIterationTypesOfIterableWorker(e,t,n,r){if(isTypeAny(e))return vr;let i=!1;if(2&t){const r=getIterationTypesOfIterableCached(e,Cr)||getIterationTypesOfIterableFast(e,Cr);if(r){if(r!==xr||!n)return 8&t?getAsyncFromSyncIterationTypes(r,n):r;i=!0}}if(1&t){let r=getIterationTypesOfIterableCached(e,Er)||getIterationTypesOfIterableFast(e,Er);if(r)if(r===xr&&n)i=!0;else{if(!(2&t))return r;if(r!==xr)return r=getAsyncFromSyncIterationTypes(r,n),i?r:setCachedIterationTypes(e,"iterationTypesOfAsyncIterable",r)}}if(2&t){const t=getIterationTypesOfIterableSlow(e,Cr,n,r,i);if(t!==xr)return t}if(1&t){let o=getIterationTypesOfIterableSlow(e,Er,n,r,i);if(o!==xr)return 2&t?(o=getAsyncFromSyncIterationTypes(o,n),i?o:setCachedIterationTypes(e,"iterationTypesOfAsyncIterable",o)):o}return xr}function getIterationTypesOfIterableCached(e,t){return getCachedIterationTypes(e,t.iterableCacheKey)}function getIterationTypesOfIterableFast(e,t){if(isReferenceToType2(e,t.getGlobalIterableType(!1))||isReferenceToType2(e,t.getGlobalIteratorObjectType(!1))||isReferenceToType2(e,t.getGlobalIterableIteratorType(!1))||isReferenceToType2(e,t.getGlobalGeneratorType(!1))){const[n,r,i]=getTypeArguments(e);return setCachedIterationTypes(e,t.iterableCacheKey,createIterationTypes(t.resolveIterationType(n,void 0)||n,t.resolveIterationType(r,void 0)||r,i))}if(isReferenceToSomeType(e,t.getGlobalBuiltinIteratorTypes())){const[n]=getTypeArguments(e),r=getBuiltinIteratorReturnType(),i=Le;return setCachedIterationTypes(e,t.iterableCacheKey,createIterationTypes(t.resolveIterationType(n,void 0)||n,t.resolveIterationType(r,void 0)||r,i))}}function getPropertyNameForKnownSymbolName(e){const t=getGlobalESSymbolConstructorSymbol(!1),n=t&&getTypeOfPropertyOfType(getTypeOfSymbol(t),escapeLeadingUnderscores(e));return n&&isTypeUsableAsPropertyName(n)?getPropertyNameFromType(n):`__@${e}`}function getIterationTypesOfIterableSlow(e,t,n,r,i){const o=getPropertyOfType(e,getPropertyNameForKnownSymbolName(t.iteratorSymbolName)),a=!o||16777216&o.flags?void 0:getTypeOfSymbol(o);if(isTypeAny(a))return i?vr:setCachedIterationTypes(e,t.iterableCacheKey,vr);const s=a?getSignaturesOfType(a,0):void 0,c=filter(s,e=>0===getMinArgumentCount(e));if(!some(c))return n&&some(s)&&checkTypeAssignableTo(e,t.getGlobalIterableType(!0),n,void 0,void 0,r),i?xr:setCachedIterationTypes(e,t.iterableCacheKey,xr);const l=getIterationTypesOfIteratorWorker(getIntersectionType(map(c,getReturnTypeOfSignature)),t,n,r,i)??xr;return i?l:setCachedIterationTypes(e,t.iterableCacheKey,l)}function reportTypeNotIterableError(e,t,n){const r=n?Ot.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:Ot.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator;return errorAndMaybeSuggestAwait(e,!!getAwaitedTypeOfPromise(t)||!n&&isForOfStatement(e.parent)&&e.parent.expression===e&&getGlobalAsyncIterableType(!1)!==Et&&isTypeAssignableTo(t,createTypeFromGenericGlobalType(getGlobalAsyncIterableType(!1),[ke,ke,ke])),r,typeToString(t))}function getIterationTypesOfIteratorWorker(e,t,n,r,i){if(isTypeAny(e))return vr;let o=function getIterationTypesOfIteratorCached(e,t){return getCachedIterationTypes(e,t.iteratorCacheKey)}(e,t)||function getIterationTypesOfIteratorFast(e,t){if(isReferenceToType2(e,t.getGlobalIterableIteratorType(!1))||isReferenceToType2(e,t.getGlobalIteratorType(!1))||isReferenceToType2(e,t.getGlobalIteratorObjectType(!1))||isReferenceToType2(e,t.getGlobalGeneratorType(!1))){const[n,r,i]=getTypeArguments(e);return setCachedIterationTypes(e,t.iteratorCacheKey,createIterationTypes(n,r,i))}if(isReferenceToSomeType(e,t.getGlobalBuiltinIteratorTypes())){const[n]=getTypeArguments(e),r=getBuiltinIteratorReturnType(),i=Le;return setCachedIterationTypes(e,t.iteratorCacheKey,createIterationTypes(n,r,i))}}(e,t);return o===xr&&n&&(o=void 0,i=!0),o??(o=function getIterationTypesOfIteratorSlow(e,t,n,r,i){const o=combineIterationTypes([getIterationTypesOfMethod(e,t,"next",n,r),getIterationTypesOfMethod(e,t,"return",n,r),getIterationTypesOfMethod(e,t,"throw",n,r)]);return i?o:setCachedIterationTypes(e,t.iteratorCacheKey,o)}(e,t,n,r,i)),o===xr?void 0:o}function isIteratorResult(e,t){const n=getTypeOfPropertyOfType(e,"done")||He;return isTypeAssignableTo(0===t?He:Ge,n)}function isYieldIteratorResult(e){return isIteratorResult(e,0)}function isReturnIteratorResult(e){return isIteratorResult(e,1)}function getIterationTypesOfIteratorResult(e){if(isTypeAny(e))return vr;const t=getCachedIterationTypes(e,"iterationTypesOfIteratorResult");if(t)return t;if(isReferenceToType2(e,function getGlobalIteratorYieldResultType(e){return Sn||(Sn=getGlobalType("IteratorYieldResult",1,e))||Et}(!1))){return setCachedIterationTypes(e,"iterationTypesOfIteratorResult",createIterationTypes(getTypeArguments(e)[0],void 0,void 0))}if(isReferenceToType2(e,function getGlobalIteratorReturnResultType(e){return xn||(xn=getGlobalType("IteratorReturnResult",1,e))||Et}(!1))){return setCachedIterationTypes(e,"iterationTypesOfIteratorResult",createIterationTypes(void 0,getTypeArguments(e)[0],void 0))}const n=filterType(e,isYieldIteratorResult),r=n!==tt?getTypeOfPropertyOfType(n,"value"):void 0,i=filterType(e,isReturnIteratorResult),o=i!==tt?getTypeOfPropertyOfType(i,"value"):void 0;return setCachedIterationTypes(e,"iterationTypesOfIteratorResult",r||o?createIterationTypes(r,o||et,void 0):xr)}function getIterationTypesOfMethod(e,t,n,r,i){var o,a,s,c;const d=getPropertyOfType(e,n);if(!d&&"next"!==n)return;const p=!d||"next"===n&&16777216&d.flags?void 0:"next"===n?getTypeOfSymbol(d):getTypeWithFacts(getTypeOfSymbol(d),2097152);if(isTypeAny(p))return vr;const u=p?getSignaturesOfType(p,0):l;if(0===u.length){if(r){const e="next"===n?t.mustHaveANextMethodDiagnostic:t.mustBeAMethodDiagnostic;i?(i.errors??(i.errors=[]),i.errors.push(createDiagnosticForNode(r,e,n))):error2(r,e,n)}return"next"===n?xr:void 0}if((null==p?void 0:p.symbol)&&1===u.length){const e=t.getGlobalGeneratorType(!1),r=t.getGlobalIteratorType(!1),i=(null==(a=null==(o=e.symbol)?void 0:o.members)?void 0:a.get(n))===p.symbol,l=!i&&(null==(c=null==(s=r.symbol)?void 0:s.members)?void 0:c.get(n))===p.symbol;if(i||l){const t=i?e:r,{mapper:o}=p;return createIterationTypes(getMappedType(t.typeParameters[0],o),getMappedType(t.typeParameters[1],o),"next"===n?getMappedType(t.typeParameters[2],o):void 0)}}let m,_,f,g,y;for(const e of u)"throw"!==n&&some(e.parameters)&&(m=append(m,getTypeAtPosition(e,0))),_=append(_,getReturnTypeOfSignature(e));if("throw"!==n){const e=m?getUnionType(m):Le;if("next"===n)g=e;else if("return"===n){f=append(f,t.resolveIterationType(e,r)||ke)}}const h=_?getIntersectionType(_):tt,T=getIterationTypesOfIteratorResult(t.resolveIterationType(h,r)||ke);return T===xr?(r&&(i?(i.errors??(i.errors=[]),i.errors.push(createDiagnosticForNode(r,t.mustHaveAValueDiagnostic,n))):error2(r,t.mustHaveAValueDiagnostic,n)),y=ke,f=append(f,ke)):(y=T.yieldType,f=append(f,T.returnType)),createIterationTypes(y,getUnionType(f),g)}function getIterationTypeOfGeneratorFunctionReturnType(e,t,n){if(isTypeAny(t))return;const r=getIterationTypesOfGeneratorFunctionReturnType(t,n);return r&&r[getIterationTypesKeyFromIterationTypeKind(e)]}function getIterationTypesOfGeneratorFunctionReturnType(e,t){if(isTypeAny(e))return vr;const n=t?Cr:Er;return getIterationTypesOfIterable(e,t?2:1,void 0)||function getIterationTypesOfIterator(e,t,n,r){return getIterationTypesOfIteratorWorker(e,t,n,r,!1)}(e,n,void 0,void 0)}function checkBreakOrContinueStatement(e){checkGrammarStatementInAmbientContext(e)||function checkGrammarBreakOrContinueStatement(e){let t=e;for(;t;){if(isFunctionLikeOrClassStaticBlockDeclaration(t))return grammarErrorOnNode(e,Ot.Jump_target_cannot_cross_function_boundary);switch(t.kind){case 257:if(e.label&&t.label.escapedText===e.label.escapedText){return!!(252===e.kind&&!isIterationStatement(t.statement,!0))&&grammarErrorOnNode(e,Ot.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement)}break;case 256:if(253===e.kind&&!e.label)return!1;break;default:if(isIterationStatement(t,!1)&&!e.label)return!1}t=t.parent}if(e.label){return grammarErrorOnNode(e,253===e.kind?Ot.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:Ot.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement)}return grammarErrorOnNode(e,253===e.kind?Ot.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:Ot.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement)}(e)}function unwrapReturnType(e,t){const n=!!(2&t);if(!!(1&t)){const t=getIterationTypeOfGeneratorFunctionReturnType(1,e,n);return t?n?getAwaitedTypeNoAlias(unwrapAwaitedType(t)):t:Ie}return n?getAwaitedTypeNoAlias(e)||Ie:e}function isUnwrappedReturnTypeUndefinedVoidOrAny(e,t){const n=unwrapReturnType(t,getFunctionFlags(e));return!(!n||!(maybeTypeOfKind(n,16384)||32769&n.flags))}function checkReturnExpression(e,t,n,r,i,o=!1){const a=isInJSFile(n),s=getFunctionFlags(e);if(r){const i=skipParentheses(r,a);if(isConditionalExpression(i))return checkReturnExpression(e,t,n,i.whenTrue,checkExpression(i.whenTrue),!0),void checkReturnExpression(e,t,n,i.whenFalse,checkExpression(i.whenFalse),!0)}const c=254===n.kind,l=2&s?checkAwaitedType(i,!1,n,Ot.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):i,d=r&&getEffectiveCheckNode(r);checkTypeAssignableToAndOptionallyElaborate(l,t,c&&!o?n:d,d)}function checkThrowStatement(e){checkGrammarStatementInAmbientContext(e)||isIdentifier(e.expression)&&!e.expression.escapedText&&function grammarErrorAfterFirstToken(e,t,...n){const r=getSourceFileOfNode(e);if(!hasParseDiagnostics(r)){const i=getSpanOfTokenAtPosition(r,e.pos);return vi.add(createFileDiagnostic(r,textSpanEnd(i),0,t,...n)),!0}return!1}(e,Ot.Line_break_not_permitted_here),e.expression&&checkExpression(e.expression)}function checkIndexConstraints(e,t,n){const r=getIndexInfosOfType(e);if(0===r.length)return;for(const t of getPropertiesOfObjectType(e))n&&4194304&t.flags||checkIndexConstraintForProperty(e,t,getLiteralTypeFromProperty(t,8576,!0),getNonMissingTypeOfSymbol(t));const i=t.valueDeclaration;if(i&&isClassLike(i))for(const t of i.members)if((!n&&!isStatic(t)||n&&isStatic(t))&&!hasBindableName(t)){const n=getSymbolOfDeclaration(t);checkIndexConstraintForProperty(e,n,getTypeOfExpression(t.name.expression),getNonMissingTypeOfSymbol(n))}if(r.length>1)for(const t of r)checkIndexConstraintForIndexSignature(e,t)}function checkIndexConstraintForProperty(e,t,n,r){const i=t.valueDeclaration,o=getNameOfDeclaration(i);if(o&&isPrivateIdentifier(o))return;const a=getApplicableIndexInfos(e,n),s=2&getObjectFlags(e)?getDeclarationOfKind(e.symbol,265):void 0,c=i&&227===i.kind||o&&168===o.kind?i:void 0,l=getParentOfSymbol(t)===e.symbol?i:void 0;for(const n of a){const i=n.declaration&&getParentOfSymbol(getSymbolOfDeclaration(n.declaration))===e.symbol?n.declaration:void 0,o=l||i||(s&&!some(getBaseTypes(e),e=>!!getPropertyOfObjectType(e,t.escapedName)&&!!getIndexTypeOfType(e,n.keyType))?s:void 0);if(o&&!isTypeAssignableTo(r,n.type)){const e=createError(o,Ot.Property_0_of_type_1_is_not_assignable_to_2_index_type_3,symbolToString(t),typeToString(r),typeToString(n.keyType),typeToString(n.type));c&&o!==c&&addRelatedInfo(e,createDiagnosticForNode(c,Ot._0_is_declared_here,symbolToString(t))),vi.add(e)}}}function checkIndexConstraintForIndexSignature(e,t){const n=t.declaration,r=getApplicableIndexInfos(e,t.keyType),i=2&getObjectFlags(e)?getDeclarationOfKind(e.symbol,265):void 0,o=n&&getParentOfSymbol(getSymbolOfDeclaration(n))===e.symbol?n:void 0;for(const n of r){if(n===t)continue;const r=n.declaration&&getParentOfSymbol(getSymbolOfDeclaration(n.declaration))===e.symbol?n.declaration:void 0,a=o||r||(i&&!some(getBaseTypes(e),e=>!!getIndexInfoOfType(e,t.keyType)&&!!getIndexTypeOfType(e,n.keyType))?i:void 0);a&&!isTypeAssignableTo(t.type,n.type)&&error2(a,Ot._0_index_type_1_is_not_assignable_to_2_index_type_3,typeToString(t.keyType),typeToString(t.type),typeToString(n.keyType),typeToString(n.type))}}function checkTypeNameIsReserved(e,t){switch(e.escapedText){case"any":case"unknown":case"never":case"number":case"bigint":case"boolean":case"string":case"symbol":case"void":case"object":case"undefined":error2(e,t,e.escapedText)}}function checkTypeParameters(e){let t=!1;if(e)for(let t=0;t{n.default?(t=!0,function checkTypeParametersNotReferenced(e,t,n){function visit(e){if(184===e.kind){const r=getTypeFromTypeReference(e);if(262144&r.flags)for(let i=n;i264===e.kind||265===e.kind)}(e);if(!n||n.length<=1)return;if(!areTypeParametersIdentical(n,getDeclaredTypeOfSymbol(e).localTypeParameters,getEffectiveTypeParameterDeclarations)){const t=symbolToString(e);for(const e of n)error2(e.name,Ot.All_declarations_of_0_must_have_identical_type_parameters,t)}}}function areTypeParametersIdentical(e,t,n){const r=length(t),i=getMinTypeArgumentCount(t);for(const o of e){const e=n(o),a=e.length;if(ar)return!1;for(let n=0;n1)return grammarErrorOnFirstToken(r.types[1],Ot.Classes_can_only_extend_a_single_class);t=!0}else{if(h.assert(119===r.token),n)return grammarErrorOnFirstToken(r,Ot.implements_clause_already_seen);n=!0}checkGrammarHeritageClause(r)}}(e)||checkGrammarTypeParameterList(e.typeParameters,t)}(e),checkDecorators(e),checkCollisionsForDeclarationName(e,e.name),checkTypeParameters(getEffectiveTypeParameterDeclarations(e)),checkExportsOnMergedDeclarations(e);const t=getSymbolOfDeclaration(e),n=getDeclaredTypeOfSymbol(t),r=getTypeWithThisArgument(n),i=getTypeOfSymbol(t);checkTypeParameterListsIdentical(t),checkFunctionOrConstructorSymbol(t),function checkClassForDuplicateDeclarations(e){const t=new Map,n=new Map,r=new Map;for(const i of e.members)if(177===i.kind)for(const e of i.parameters)isParameterPropertyDeclaration(e,i)&&!isBindingPattern(e.name)&&addName(t,e.name,e.name.escapedText,3);else{const e=isStatic(i),o=i.name;if(!o)continue;const a=isPrivateIdentifier(o),s=a&&e?16:0,c=a?r:e?n:t,l=o&&getEffectivePropertyNameForPropertyNameNode(o);if(l)switch(i.kind){case 178:addName(c,o,l,1|s);break;case 179:addName(c,o,l,2|s);break;case 173:addName(c,o,l,3|s);break;case 175:addName(c,o,l,8|s)}}function addName(e,t,n,r){const i=e.get(n);if(i)if((16&i)!=(16&r))error2(t,Ot.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name,getTextOfNode(t));else{const o=!!(8&i),a=!!(8&r);o||a?o!==a&&error2(t,Ot.Duplicate_identifier_0,getTextOfNode(t)):i&r&-17?error2(t,Ot.Duplicate_identifier_0,getTextOfNode(t)):e.set(n,i|r)}else e.set(n,r)}}(e);!!(33554432&e.flags)||function checkClassForStaticPropertyNameConflicts(e){for(const t of e.members){const n=t.name;if(isStatic(t)&&n){const t=getEffectivePropertyNameForPropertyNameNode(n);switch(t){case"name":case"length":case"caller":case"arguments":if(C)break;case"prototype":error2(n,Ot.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1,t,getNameOfSymbolAsWritten(getSymbolOfDeclaration(e)))}}}}(e);const o=getEffectiveBaseTypeNode(e);if(o){forEach(o.typeArguments,checkSourceElement),x{const t=a[0],s=getBaseConstructorTypeOfClass(n),c=getApparentType(s);if(function checkBaseTypeAccessibility(e,t){const n=getSignaturesOfType(e,1);if(n.length){const r=n[0].declaration;if(r&&hasEffectiveModifier(r,2)){isNodeWithinClass(t,getClassLikeDeclarationOfSymbol(e.symbol))||error2(t,Ot.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private,getFullyQualifiedName(e.symbol))}}}(c,o),checkSourceElement(o.expression),some(o.typeArguments)){forEach(o.typeArguments,checkSourceElement);for(const e of getConstructorsForTypeArguments(c,o.typeArguments,o))if(!checkTypeArgumentConstraints(o,e.typeParameters))break}const l=getTypeWithThisArgument(t,n.thisType);if(checkTypeAssignableTo(r,l,void 0)?checkTypeAssignableTo(i,getTypeWithoutSignatures(c),e.name||e,Ot.Class_static_side_0_incorrectly_extends_base_class_static_side_1):issueMemberSpecificError(e,r,l,Ot.Class_0_incorrectly_extends_base_class_1),8650752&s.flags)if(isMixinConstructorType(i)){getSignaturesOfType(s,1).some(e=>4&e.flags)&&!hasSyntacticModifier(e,64)&&error2(e.name||e,Ot.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract)}else error2(e.name||e,Ot.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any);if(!(c.symbol&&32&c.symbol.flags||8650752&s.flags)){forEach(getInstantiatedConstructorsForTypeArguments(c,o.typeArguments,o),e=>!isJSConstructor(e.declaration)&&!isTypeIdenticalTo(getReturnTypeOfSignature(e),t))&&error2(o.expression,Ot.Base_constructors_must_all_have_the_same_return_type)}!function checkKindsOfPropertyMemberOverrides(e,t){var n,r,i,o,a;const s=getPropertiesOfType(t),c=new Map;e:for(const l of s){const s=getTargetSymbol(l);if(4194304&s.flags)continue;const d=getPropertyOfObjectType(e,s.escapedName);if(!d)continue;const p=getTargetSymbol(d),u=getDeclarationModifierFlagsFromSymbol(s);if(h.assert(!!p,"derived should point to something, even if it is the base class' declaration."),p===s){const r=getClassLikeDeclarationOfSymbol(e.symbol);if(64&u&&(!r||!hasSyntacticModifier(r,64))){for(const n of getBaseTypes(e)){if(n===t)continue;const e=getPropertyOfObjectType(n,s.escapedName),r=e&&getTargetSymbol(e);if(r&&r!==s)continue e}const i=typeToString(t),o=typeToString(e),a=symbolToString(l),d=append(null==(n=c.get(r))?void 0:n.missedProperties,a);c.set(r,{baseTypeName:i,typeName:o,missedProperties:d})}}else{const n=getDeclarationModifierFlagsFromSymbol(p);if(2&u||2&n)continue;let c;const l=98308&s.flags,d=98308&p.flags;if(l&&d){if((6&getCheckFlags(s)?null==(r=s.declarations)?void 0:r.some(e=>isPropertyAbstractOrInterface(e,u)):null==(i=s.declarations)?void 0:i.every(e=>isPropertyAbstractOrInterface(e,u)))||262144&getCheckFlags(s)||p.valueDeclaration&&isBinaryExpression(p.valueDeclaration))continue;const c=4!==l&&4===d;if(c||4===l&&4!==d){const n=c?Ot._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:Ot._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor;error2(getNameOfDeclaration(p.valueDeclaration)||p.valueDeclaration,n,symbolToString(s),typeToString(t),typeToString(e))}else if(C){const r=null==(o=p.declarations)?void 0:o.find(e=>173===e.kind&&!e.initializer);if(r&&!(33554432&p.flags)&&!(64&u)&&!(64&n)&&!(null==(a=p.declarations)?void 0:a.some(e=>!!(33554432&e.flags)))){const n=findConstructorDeclaration(getClassLikeDeclarationOfSymbol(e.symbol)),i=r.name;if(r.exclamationToken||!n||!isIdentifier(i)||!k||!isPropertyInitializedInConstructor(i,e,n)){const e=Ot.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;error2(getNameOfDeclaration(p.valueDeclaration)||p.valueDeclaration,e,symbolToString(s),typeToString(t))}}}continue}if(isPrototypeProperty(s)){if(isPrototypeProperty(p)||4&p.flags)continue;h.assert(!!(98304&p.flags)),c=Ot.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor}else c=98304&s.flags?Ot.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:Ot.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;error2(getNameOfDeclaration(p.valueDeclaration)||p.valueDeclaration,c,typeToString(t),symbolToString(s),typeToString(e))}}for(const[e,t]of c)if(1===length(t.missedProperties))isClassExpression(e)?error2(e,Ot.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1,first(t.missedProperties),t.baseTypeName):error2(e,Ot.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2,t.typeName,first(t.missedProperties),t.baseTypeName);else if(length(t.missedProperties)>5){const n=map(t.missedProperties.slice(0,4),e=>`'${e}'`).join(", "),r=length(t.missedProperties)-4;isClassExpression(e)?error2(e,Ot.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more,t.baseTypeName,n,r):error2(e,Ot.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more,t.typeName,t.baseTypeName,n,r)}else{const n=map(t.missedProperties,e=>`'${e}'`).join(", ");isClassExpression(e)?error2(e,Ot.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1,t.baseTypeName,n):error2(e,Ot.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2,t.typeName,t.baseTypeName,n)}}(n,t)})}!function checkMembersForOverrideModifier(e,t,n,r){const i=getEffectiveBaseTypeNode(e),o=i&&getBaseTypes(t),a=(null==o?void 0:o.length)?getTypeWithThisArgument(first(o),t.thisType):void 0,s=getBaseConstructorTypeOfClass(t);for(const i of e.members)hasAmbientModifier(i)||(isConstructorDeclaration(i)&&forEach(i.parameters,o=>{isParameterPropertyDeclaration(o,i)&&checkExistingMemberForOverrideModifier(e,r,s,a,t,n,o,!0)}),checkExistingMemberForOverrideModifier(e,r,s,a,t,n,i,!1))}(e,n,r,i);const a=getEffectiveImplementsTypeNodes(e);if(a)for(const e of a)isEntityNameExpression(e.expression)&&!isOptionalChain(e.expression)||error2(e.expression,Ot.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments),checkTypeReferenceNode(e),addLazyDiagnostic(createImplementsDiagnostics(e));function createImplementsDiagnostics(t){return()=>{const i=getReducedType(getTypeFromTypeNode(t));if(!isErrorType(i))if(isValidBaseType(i)){const t=i.symbol&&32&i.symbol.flags?Ot.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:Ot.Class_0_incorrectly_implements_interface_1,o=getTypeWithThisArgument(i,n.thisType);checkTypeAssignableTo(r,o,void 0)||issueMemberSpecificError(e,r,o,t)}else error2(t,Ot.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members)}}addLazyDiagnostic(()=>{checkIndexConstraints(n,t),checkIndexConstraints(i,t,!0),checkTypeForDuplicateIndexSignatures(e),function checkPropertyInitialization(e){if(!k||!D||33554432&e.flags)return;const t=findConstructorDeclaration(e);for(const n of e.members)if(!(128&getEffectiveModifierFlags(n))&&!isStatic(n)&&isPropertyWithoutInitializer(n)){const e=n.name;if(isIdentifier(e)||isPrivateIdentifier(e)||isComputedPropertyName(e)){const r=getTypeOfSymbol(getSymbolOfDeclaration(n));3&r.flags||containsUndefinedType(r)||t&&isPropertyInitializedInConstructor(e,r,t)||error2(n.name,Ot.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor,declarationNameToString(e))}}}(e)})}function checkExistingMemberForOverrideModifier(e,t,n,r,i,o,a,s,c=!0){const l=a.name&&getSymbolAtLocation(a.name)||getSymbolAtLocation(a);return l?checkMemberForOverrideModifier(e,t,n,r,i,o,hasOverrideModifier(a),hasAbstractModifier(a),isStatic(a),s,l,c?a:void 0):0}function checkMemberForOverrideModifier(e,t,n,r,i,o,a,s,c,l,d,p){const u=isInJSFile(e),m=!!(33554432&e.flags);if(a&&(null==d?void 0:d.valueDeclaration)&&isClassElement(d.valueDeclaration)&&d.valueDeclaration.name&&isNonBindableDynamicName(d.valueDeclaration.name))return error2(p,u?Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic:Ot.This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic),2;if(r&&(a||S.noImplicitOverride)){const e=c?n:r,i=getPropertyOfType(c?t:o,d.escapedName),_=getPropertyOfType(e,d.escapedName),f=typeToString(r);if(i&&!_&&a){if(p){const t=getSuggestedSymbolForNonexistentClassMember(symbolName(d),e);t?error2(p,u?Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1,f,symbolToString(t)):error2(p,u?Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0,f)}return 2}if(i&&(null==_?void 0:_.declarations)&&S.noImplicitOverride&&!m){const e=some(_.declarations,hasAbstractModifier);if(a)return 0;if(!e){if(p){error2(p,l?u?Ot.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:Ot.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:u?Ot.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:Ot.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0,f)}return 1}if(s&&e)return p&&error2(p,Ot.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0,f),1}}else if(a){if(p){const e=typeToString(i);error2(p,u?Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:Ot.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class,e)}return 2}return 0}function issueMemberSpecificError(e,t,n,r){let i=!1;for(const r of e.members){if(isStatic(r))continue;const e=r.name&&getSymbolAtLocation(r.name)||getSymbolAtLocation(r);if(e){const o=getPropertyOfType(t,e.escapedName),a=getPropertyOfType(n,e.escapedName);if(o&&a){const rootChain=()=>chainDiagnosticMessages(void 0,Ot.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2,symbolToString(e),typeToString(t),typeToString(n));checkTypeAssignableTo(getTypeOfSymbol(o),getTypeOfSymbol(a),r.name||r,void 0,rootChain)||(i=!0)}}}i||checkTypeAssignableTo(t,n,e.name||e,r)}function getTargetSymbol(e){return 1&getCheckFlags(e)?e.links.target:e}function isPropertyAbstractOrInterface(e,t){return 64&t&&(!isPropertyDeclaration(e)||!e.initializer)||isInterfaceDeclaration(e.parent)}function isPropertyWithoutInitializer(e){return 173===e.kind&&!hasAbstractModifier(e)&&!e.exclamationToken&&!e.initializer}function isPropertyInitializedInConstructor(e,t,n){const r=isComputedPropertyName(e)?Wr.createElementAccessExpression(Wr.createThis(),e.expression):Wr.createPropertyAccessExpression(Wr.createThis(),e);setParent(r.expression,r),setParent(r,n),r.flowNode=n.returnFlowNode;return!containsUndefinedType(getFlowTypeOfReference(r,t,getOptionalType(t)))}function checkInterfaceDeclaration(e){checkGrammarModifiers(e)||function checkGrammarInterfaceDeclaration(e){let t=!1;if(e.heritageClauses)for(const n of e.heritageClauses){if(96!==n.token)return h.assert(119===n.token),grammarErrorOnFirstToken(n,Ot.Interface_declaration_cannot_have_implements_clause);if(t)return grammarErrorOnFirstToken(n,Ot.extends_clause_already_seen);t=!0,checkGrammarHeritageClause(n)}return!1}(e),allowBlockDeclarations(e.parent)||grammarErrorOnNode(e,Ot._0_declarations_can_only_be_declared_inside_a_block,"interface"),checkTypeParameters(e.typeParameters),addLazyDiagnostic(()=>{checkTypeNameIsReserved(e.name,Ot.Interface_name_cannot_be_0),checkExportsOnMergedDeclarations(e);const t=getSymbolOfDeclaration(e);checkTypeParameterListsIdentical(t);const n=getDeclarationOfKind(t,265);if(e===n){const n=getDeclaredTypeOfSymbol(t),r=getTypeWithThisArgument(n);if(function checkInheritedPropertiesAreIdentical(e,t){const n=getBaseTypes(e);if(n.length<2)return!0;const r=new Map;forEach(resolveDeclaredMembers(e).declaredProperties,t=>{r.set(t.escapedName,{prop:t,containingType:e})});let i=!0;for(const o of n){const n=getPropertiesOfType(getTypeWithThisArgument(o,e.thisType));for(const a of n){const n=r.get(a.escapedName);if(n){if(n.containingType!==e&&!isPropertyIdenticalTo(n.prop,a)){i=!1;const r=typeToString(n.containingType),s=typeToString(o);let c=chainDiagnosticMessages(void 0,Ot.Named_property_0_of_types_1_and_2_are_not_identical,symbolToString(a),r,s);c=chainDiagnosticMessages(c,Ot.Interface_0_cannot_simultaneously_extend_types_1_and_2,typeToString(e),r,s),vi.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(t),t,c))}}else r.set(a.escapedName,{prop:a,containingType:o})}}return i}(n,e.name)){for(const t of getBaseTypes(n))checkTypeAssignableTo(r,getTypeWithThisArgument(t,n.thisType),e.name,Ot.Interface_0_incorrectly_extends_interface_1);checkIndexConstraints(n,t)}}checkObjectTypeForDuplicateDeclarations(e)}),forEach(getInterfaceBaseTypeNodes(e),e=>{isEntityNameExpression(e.expression)&&!isOptionalChain(e.expression)||error2(e.expression,Ot.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments),checkTypeReferenceNode(e)}),forEach(e.members,checkSourceElement),addLazyDiagnostic(()=>{checkTypeForDuplicateIndexSignatures(e),registerForUnusedIdentifiersCheck(e)})}function computeEnumMemberValues(e){const t=getNodeLinks(e);if(!(1024&t.flags)){t.flags|=1024;let n,r=0;for(const t of e.members){const e=computeEnumMemberValue(t,r,n);getNodeLinks(t).enumMemberValue=e,r="number"==typeof e.value?e.value+1:void 0,n=t}}}function computeEnumMemberValue(e,t,n){if(isComputedNonLiteralName(e.name))error2(e.name,Ot.Computed_property_names_are_not_allowed_in_enums);else if(isBigIntLiteral(e.name))error2(e.name,Ot.An_enum_member_cannot_have_a_numeric_name);else{const t=getTextOfPropertyName(e.name);isNumericLiteralName(t)&&!isInfinityOrNaNString(t)&&error2(e.name,Ot.An_enum_member_cannot_have_a_numeric_name)}if(e.initializer)return function computeConstantEnumMemberValue(e){const t=isEnumConst(e.parent),n=e.initializer,r=U(n,e);void 0!==r.value?t&&"number"==typeof r.value&&!isFinite(r.value)?error2(n,isNaN(r.value)?Ot.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:Ot.const_enum_member_initializer_was_evaluated_to_a_non_finite_value):Kn(S)&&"string"==typeof r.value&&!r.isSyntacticallyString&&error2(n,Ot._0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled,`${idText(e.parent.name)}.${getTextOfPropertyName(e.name)}`):t?error2(n,Ot.const_enum_member_initializers_must_be_constant_expressions):33554432&e.parent.flags?error2(n,Ot.In_ambient_enum_declarations_member_initializer_must_be_constant_expression):checkTypeAssignableTo(checkExpression(n),Ve,n,Ot.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);return r}(e);if(33554432&e.parent.flags&&!isEnumConst(e.parent))return evaluatorResult(void 0);if(void 0===t)return error2(e.name,Ot.Enum_member_must_have_initializer),evaluatorResult(void 0);if(Kn(S)&&(null==n?void 0:n.initializer)){const t=getEnumMemberValue(n);("number"!=typeof t.value||t.resolvedOtherFiles)&&error2(e.name,Ot.Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled)}return evaluatorResult(t)}function evaluateEntityNameExpression(e,t){const n=resolveEntityName(e,111551,!0);if(!n)return evaluatorResult(void 0);if(80===e.kind){const t=e;if(isInfinityOrNaNString(t.escapedText)&&n===getGlobalSymbol(t.escapedText,111551,void 0))return evaluatorResult(+t.escapedText,!1)}if(8&n.flags)return t?evaluateEnumMember(e,n,t):getEnumMemberValue(n.valueDeclaration);if(isConstantVariable(n)){const e=n.valueDeclaration;if(e&&isVariableDeclaration(e)&&!e.type&&e.initializer&&(!t||e!==t&&isBlockScopedNameDeclaredBeforeUse(e,t))){const n=U(e.initializer,e);return t&&getSourceFileOfNode(t)!==getSourceFileOfNode(e)?evaluatorResult(n.value,!1,!0,!0):evaluatorResult(n.value,n.isSyntacticallyString,n.resolvedOtherFiles,!0)}}return evaluatorResult(void 0)}function evaluateEnumMember(e,t,n){const r=t.valueDeclaration;if(!r||r===n)return error2(e,Ot.Property_0_is_used_before_being_assigned,symbolToString(t)),evaluatorResult(void 0);if(!isBlockScopedNameDeclaredBeforeUse(r,n))return error2(e,Ot.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums),evaluatorResult(0);const i=getEnumMemberValue(r);return n.parent!==r.parent?evaluatorResult(i.value,i.isSyntacticallyString,i.resolvedOtherFiles,!0):i}function checkEnumDeclaration(e){addLazyDiagnostic(()=>function checkEnumDeclarationWorker(e){checkGrammarModifiers(e),checkCollisionsForDeclarationName(e,e.name),checkExportsOnMergedDeclarations(e),e.members.forEach(checkSourceElement),!S.erasableSyntaxOnly||33554432&e.flags||error2(e,Ot.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);computeEnumMemberValues(e);const t=getSymbolOfDeclaration(e),n=getDeclarationOfKind(t,e.kind);if(e===n){if(t.declarations&&t.declarations.length>1){const n=isEnumConst(e);forEach(t.declarations,e=>{isEnumDeclaration(e)&&isEnumConst(e)!==n&&error2(getNameOfDeclaration(e),Ot.Enum_declarations_must_all_be_const_or_non_const)})}let n=!1;forEach(t.declarations,e=>{if(267!==e.kind)return!1;const t=e;if(!t.members.length)return!1;const r=t.members[0];r.initializer||(n?error2(r.name,Ot.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):n=!0)})}}(e))}function checkModuleDeclaration(t){t.body&&(checkSourceElement(t.body),isGlobalScopeAugmentation(t)||registerForUnusedIdentifiersCheck(t)),addLazyDiagnostic(function checkModuleDeclarationDiagnostics(){var n,r;const i=isGlobalScopeAugmentation(t),o=33554432&t.flags;i&&!o&&error2(t.name,Ot.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);const a=isAmbientModule(t),s=a?Ot.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:Ot.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module;if(checkGrammarModuleElementContext(t,s))return;checkGrammarModifiers(t)||o||11!==t.name.kind||grammarErrorOnNode(t.name,Ot.Only_ambient_modules_can_use_quoted_names);if(isIdentifier(t.name)&&(checkCollisionsForDeclarationName(t,t.name),!(2080&t.flags))){const e=getSourceFileOfNode(t),n=getSpanOfTokenAtPosition(e,getNonModifierTokenPosOfNode(t));bi.add(createFileDiagnostic(e,n.start,n.length,Ot.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead))}checkExportsOnMergedDeclarations(t);const c=getSymbolOfDeclaration(t);if(512&c.flags&&!o&&isInstantiatedModule(t,er(S))){if(S.erasableSyntaxOnly&&error2(t.name,Ot.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled),Kn(S)&&!getSourceFileOfNode(t).externalModuleIndicator&&error2(t.name,Ot.Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement,X),(null==(n=c.declarations)?void 0:n.length)>1){const e=function getFirstNonAmbientClassOrFunctionDeclaration(e){const t=e.declarations;if(t)for(const e of t)if((264===e.kind||263===e.kind&&nodeIsPresent(e.body))&&!(33554432&e.flags))return e}(c);e&&(getSourceFileOfNode(t)!==getSourceFileOfNode(e)?error2(t.name,Ot.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):t.pos95===e.kind);e&&error2(e,Ot.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled)}}if(a)if(isExternalModuleAugmentation(t)){if((i||33554432&getSymbolOfDeclaration(t).flags)&&t.body)for(const e of t.body.statements)checkModuleAugmentationElement(e,i)}else isGlobalSourceFile(t.parent)?i?error2(t.name,Ot.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations):isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(t.name))&&error2(t.name,Ot.Ambient_module_declaration_cannot_specify_relative_module_name):error2(t.name,i?Ot.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:Ot.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces)})}function checkModuleAugmentationElement(e,t){switch(e.kind){case 244:for(const n of e.declarationList.declarations)checkModuleAugmentationElement(n,t);break;case 278:case 279:grammarErrorOnFirstToken(e,Ot.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);break;case 272:if(isInternalModuleImportEqualsDeclaration(e))break;case 273:grammarErrorOnFirstToken(e,Ot.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);break;case 209:case 261:const n=e.name;if(isBindingPattern(n)){for(const e of n.elements)checkModuleAugmentationElement(e,t);break}case 264:case 267:case 263:case 265:case 268:case 266:if(t)return}}function checkExternalImportOrExportDeclaration(e){const t=getExternalModuleName(e);if(!t||nodeIsMissing(t))return!1;if(!isStringLiteral(t))return error2(t,Ot.String_literal_expected),!1;const n=269===e.parent.kind&&isAmbientModule(e.parent.parent);if(308!==e.parent.kind&&!n)return error2(t,279===e.kind?Ot.Export_declarations_are_not_permitted_in_a_namespace:Ot.Import_declarations_in_a_namespace_cannot_reference_a_module),!1;if(n&&isExternalModuleNameRelative(t.text)&&!isTopLevelInExternalModuleAugmentation(e))return error2(e,Ot.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name),!1;if(!isImportEqualsDeclaration(e)&&e.attributes){const t=118===e.attributes.token?Ot.Import_attribute_values_must_be_string_literal_expressions:Ot.Import_assertion_values_must_be_string_literal_expressions;let n=!1;for(const r of e.attributes.elements)isStringLiteral(r.value)||(n=!0,error2(r.value,t));return!n}return!0}function checkModuleExportName(e,t=!0){void 0!==e&&11===e.kind&&(t?5!==v&&6!==v||grammarErrorOnNode(e,Ot.String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020):grammarErrorOnNode(e,Ot.Identifier_expected))}function checkAliasSymbol(t){var n,r,i,o,a;let s=getSymbolOfDeclaration(t);const c=resolveAlias(s);if(c!==ve){if(s=getMergedSymbol(s.exportSymbol||s),isInJSFile(t)&&!(111551&c.flags)&&!isTypeOnlyImportOrExportDeclaration(t)){const e=isImportOrExportSpecifier(t)?t.propertyName||t.name:isNamedDeclaration(t)?t.name:t;if(h.assert(281!==t.kind),282===t.kind){const o=error2(e,Ot.Types_cannot_appear_in_export_declarations_in_JavaScript_files),a=null==(r=null==(n=getSourceFileOfNode(t).symbol)?void 0:n.exports)?void 0:r.get(moduleExportNameTextEscaped(t.propertyName||t.name));if(a===c){const e=null==(i=a.declarations)?void 0:i.find(isJSDocNode);e&&addRelatedInfo(o,createDiagnosticForNode(e,Ot._0_is_automatically_exported_here,unescapeLeadingUnderscores(a.escapedName)))}}else{h.assert(261!==t.kind);const n=findAncestor(t,or(isImportDeclaration,isImportEqualsDeclaration)),r=(n&&(null==(o=tryGetModuleSpecifierFromDeclaration(n))?void 0:o.text))??"...",i=unescapeLeadingUnderscores(isIdentifier(e)?e.escapedText:s.escapedName);error2(e,Ot._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation,i,`import("${r}").${i}`)}return}const l=getSymbolFlags(c);if(l&((1160127&s.flags?111551:0)|(788968&s.flags?788968:0)|(1920&s.flags?1920:0))){error2(t,282===t.kind?Ot.Export_declaration_conflicts_with_exported_declaration_of_0:Ot.Import_declaration_conflicts_with_local_declaration_of_0,symbolToString(s))}else if(282!==t.kind){S.isolatedModules&&!findAncestor(t,isTypeOnlyImportOrExportDeclaration)&&1160127&s.flags&&error2(t,Ot.Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled,symbolToString(s),X)}if(Kn(S)&&!isTypeOnlyImportOrExportDeclaration(t)&&!(33554432&t.flags)){const n=getTypeOnlyAliasDeclaration(s),r=!(111551&l);if(r||n)switch(t.kind){case 274:case 277:case 272:if(S.verbatimModuleSyntax){h.assertIsDefined(t.name,"An ImportClause with a symbol should have a name");const e=S.verbatimModuleSyntax&&isInternalModuleImportEqualsDeclaration(t)?Ot.An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:r?Ot._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:Ot._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled,i=moduleExportNameTextUnescaped(277===t.kind&&t.propertyName||t.name);addTypeOnlyDeclarationRelatedInfo(error2(t,e,i),r?void 0:n,i)}r&&272===t.kind&&hasEffectiveModifier(t,32)&&error2(t,Ot.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled,X);break;case 282:if(S.verbatimModuleSyntax||getSourceFileOfNode(n)!==getSourceFileOfNode(t)){const e=moduleExportNameTextUnescaped(t.propertyName||t.name);addTypeOnlyDeclarationRelatedInfo(r?error2(t,Ot.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type,X):error2(t,Ot._0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled,e,X),r?void 0:n,e);break}}if(S.verbatimModuleSyntax&&272!==t.kind&&!isInJSFile(t)&&1===e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))?error2(t,getVerbatimModuleSyntaxErrorMessage(t)):200===v&&272!==t.kind&&261!==t.kind&&1===e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))&&error2(t,Ot.ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve),S.verbatimModuleSyntax&&!isTypeOnlyImportOrExportDeclaration(t)&&!(33554432&t.flags)&&128&l){const n=c.valueDeclaration,r=null==(a=e.getRedirectFromOutput(getSourceFileOfNode(n).resolvedPath))?void 0:a.resolvedRef;!(33554432&n.flags)||r&&er(r.commandLine.options)||error2(t,Ot.Cannot_access_ambient_const_enums_when_0_is_enabled,X)}}if(isImportSpecifier(t)){const e=resolveAliasWithDeprecationCheck(s,t);isDeprecatedSymbol(e)&&e.declarations&&addDeprecatedSuggestion(t,e.declarations,e.escapedName)}}}function resolveAliasWithDeprecationCheck(e,t){if(!(2097152&e.flags)||isDeprecatedSymbol(e)||!getDeclarationOfAliasSymbol(e))return e;const n=resolveAlias(e);if(n===ve)return n;for(;2097152&e.flags;){const r=getImmediateAliasedSymbol(e);if(!r)break;if(r===n)break;if(r.declarations&&length(r.declarations)){if(isDeprecatedSymbol(r)){addDeprecatedSuggestion(t,r.declarations,r.escapedName);break}if(e===n)break;e=r}}return n}function checkImportBinding(t){checkCollisionsForDeclarationName(t,t.name),checkAliasSymbol(t),277===t.kind&&(checkModuleExportName(t.propertyName),moduleExportNameIsDefault(t.propertyName||t.name)&&Gn(S)&&e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<4&&checkExternalEmitHelpers(t,131072))}function checkImportAttributes(e){var t;const n=e.attributes;if(n){const r=getGlobalImportAttributesType(!0);r!==ht&&checkTypeAssignableTo(getTypeFromImportAttributes(n),getNullableType(r,32768),n);const i=isExclusivelyTypeOnlyImportOrExport(e),o=getResolutionModeOverride(n,i?grammarErrorOnNode:void 0),a=118===e.attributes.token;if(i&&o)return;if(!moduleSupportsImportAttributes(v))return grammarErrorOnNode(n,a?Ot.Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve:Ot.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve);if(102<=v&&v<=199&&!a)return grammarErrorOnFirstToken(n,Ot.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);if(e.moduleSpecifier&&1===getEmitSyntaxForModuleSpecifierExpression(e.moduleSpecifier))return grammarErrorOnNode(n,a?Ot.Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:Ot.Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls);if(isJSDocImportTag(e)||(isImportDeclaration(e)?null==(t=e.importClause)?void 0:t.isTypeOnly:e.isTypeOnly))return grammarErrorOnNode(n,a?Ot.Import_attributes_cannot_be_used_with_type_only_imports_or_exports:Ot.Import_assertions_cannot_be_used_with_type_only_imports_or_exports);if(o)return grammarErrorOnNode(n,Ot.resolution_mode_can_only_be_set_for_type_only_imports)}}function checkImportDeclaration(t){if(!checkGrammarModuleElementContext(t,isInJSFile(t)?Ot.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:Ot.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!checkGrammarModifiers(t)&&t.modifiers&&grammarErrorOnFirstToken(t,Ot.An_import_declaration_cannot_have_modifiers),checkExternalImportOrExportDeclaration(t)){let n;const r=t.importClause;r&&!function checkGrammarImportClause(e){var t,n;if(156===e.phaseModifier){if(e.name&&e.namedBindings)return grammarErrorOnNode(e,Ot.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both);if(276===(null==(t=e.namedBindings)?void 0:t.kind))return checkGrammarNamedImportsOrExports(e.namedBindings)}else if(166===e.phaseModifier){if(e.name)return grammarErrorOnNode(e,Ot.Default_imports_are_not_allowed_in_a_deferred_import);if(276===(null==(n=e.namedBindings)?void 0:n.kind))return grammarErrorOnNode(e,Ot.Named_imports_are_not_allowed_in_a_deferred_import);if(99!==v&&200!==v)return grammarErrorOnNode(e,Ot.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve)}return!1}(r)?(r.name&&checkImportBinding(r),r.namedBindings&&(275===r.namedBindings.kind?(checkImportBinding(r.namedBindings),e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<4&&Gn(S)&&checkExternalEmitHelpers(t,65536)):(n=resolveExternalModuleName(t,t.moduleSpecifier),n&&forEach(r.namedBindings.elements,checkImportBinding))),!r.isTypeOnly&&101<=v&&v<=199&&isOnlyImportableAsDefault(t.moduleSpecifier,n)&&!function hasTypeJsonImportAttribute(e){return!!e.attributes&&e.attributes.elements.some(e=>{var t;return"type"===getTextOfIdentifierOrLiteral(e.name)&&"json"===(null==(t=tryCast(e.value,isStringLiteralLike))?void 0:t.text)})}(t)&&error2(t.moduleSpecifier,Ot.Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0,$e[v])):M&&!r&&resolveExternalModuleName(t,t.moduleSpecifier)}checkImportAttributes(t)}}function checkExportDeclaration(t){if(!checkGrammarModuleElementContext(t,isInJSFile(t)?Ot.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:Ot.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!checkGrammarModifiers(t)&&hasSyntacticModifiers(t)&&grammarErrorOnFirstToken(t,Ot.An_export_declaration_cannot_have_modifiers),function checkGrammarExportDeclaration(e){var t;if(e.isTypeOnly&&280===(null==(t=e.exportClause)?void 0:t.kind))return checkGrammarNamedImportsOrExports(e.exportClause);return!1}(t),!t.moduleSpecifier||checkExternalImportOrExportDeclaration(t))if(t.exportClause&&!isNamespaceExport(t.exportClause)){forEach(t.exportClause.elements,checkExportSpecifier);const e=269===t.parent.kind&&isAmbientModule(t.parent.parent),n=!e&&269===t.parent.kind&&!t.moduleSpecifier&&33554432&t.flags;308===t.parent.kind||e||n||error2(t,Ot.Export_declarations_are_not_permitted_in_a_namespace)}else{const n=resolveExternalModuleName(t,t.moduleSpecifier);n&&hasExportAssignmentSymbol(n)?error2(t.moduleSpecifier,Ot.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,symbolToString(n)):t.exportClause&&(checkAliasSymbol(t.exportClause),checkModuleExportName(t.exportClause.name)),e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<4&&(t.exportClause?Gn(S)&&checkExternalEmitHelpers(t,65536):checkExternalEmitHelpers(t,32768))}checkImportAttributes(t)}}function checkGrammarModuleElementContext(e,t){const n=308===e.parent.kind||269===e.parent.kind||268===e.parent.kind;return n||grammarErrorOnFirstToken(e,t),!n}function checkExportSpecifier(t){checkAliasSymbol(t);const n=void 0!==t.parent.parent.moduleSpecifier;if(checkModuleExportName(t.propertyName,n),checkModuleExportName(t.name),Zn(S)&&collectLinkedAliases(t.propertyName||t.name,!0),n)Gn(S)&&e.getEmitModuleFormatOfFile(getSourceFileOfNode(t))<4&&moduleExportNameIsDefault(t.propertyName||t.name)&&checkExternalEmitHelpers(t,131072);else{const e=t.propertyName||t.name;if(11===e.kind)return;const n=te(e,e.escapedText,2998271,void 0,!0);n&&(n===V||n===q||n.declarations&&isGlobalSourceFile(getDeclarationContainer(n.declarations[0])))?error2(e,Ot.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module,idText(e)):markLinkedReferences(t,7)}}function checkExternalModuleExports(e){const t=getSymbolOfDeclaration(e),n=getSymbolLinks(t);if(!n.exportsChecked){const e=t.exports.get("export=");if(e&&function hasExportedMembers(e){return forEachEntry(e.exports,(e,t)=>"export="!==t)}(t)){const t=getDeclarationOfAliasSymbol(e)||e.valueDeclaration;!t||isTopLevelInExternalModuleAugmentation(t)||isInJSFile(t)||error2(t,Ot.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}const r=getExportsOfModule(t);r&&r.forEach(({declarations:e,flags:t},n)=>{if("__export"===n)return;if(1920&t)return;const r=countWhere(e,and(ia,not(isInterfaceDeclaration)));if(!(524288&t&&r<=2)&&r>1&&!isDuplicatedCommonJSExport(e))for(const t of e)isNotOverload(t)&&vi.add(createDiagnosticForNode(t,Ot.Cannot_redeclare_exported_variable_0,unescapeLeadingUnderscores(n)))}),n.exportsChecked=!0}}function isDuplicatedCommonJSExport(e){return e&&e.length>1&&e.every(e=>isInJSFile(e)&&isAccessExpression(e)&&(isExportsIdentifier(e.expression)||isModuleExportsAccessExpression(e.expression)))}function checkSourceElement(n){if(n){const i=r;r=n,m=0,function checkSourceElementWorker(n){if(8388608&getNodeCheckFlags(n))return;canHaveJSDoc(n)&&forEach(n.jsDoc,({comment:e,tags:t})=>{checkJSDocCommentWorker(e),forEach(t,e=>{checkJSDocCommentWorker(e.comment),isInJSFile(n)&&checkSourceElement(e)})});const r=n.kind;if(t)switch(r){case 268:case 264:case 265:case 263:t.throwIfCancellationRequested()}r>=244&&r<=260&&canHaveFlowNode(n)&&n.flowNode&&!isReachableFlowNode(n.flowNode)&&errorOrSuggestion(!1===S.allowUnreachableCode,n,Ot.Unreachable_code_detected);switch(r){case 169:return checkTypeParameter(n);case 170:return checkParameter(n);case 173:return checkPropertyDeclaration(n);case 172:return function checkPropertySignature(e){return isPrivateIdentifier(e.name)&&error2(e,Ot.Private_identifiers_are_not_allowed_outside_class_bodies),checkPropertyDeclaration(e)}(n);case 186:case 185:case 180:case 181:case 182:return checkSignatureDeclaration(n);case 175:case 174:return function checkMethodDeclaration(e){checkGrammarMethod(e)||checkGrammarComputedPropertyName(e.name),isMethodDeclaration(e)&&e.asteriskToken&&isIdentifier(e.name)&&"constructor"===idText(e.name)&&error2(e.name,Ot.Class_constructor_may_not_be_a_generator),checkFunctionOrMethodDeclaration(e),hasSyntacticModifier(e,64)&&175===e.kind&&e.body&&error2(e,Ot.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,declarationNameToString(e.name)),isPrivateIdentifier(e.name)&&!getContainingClass(e)&&error2(e,Ot.Private_identifiers_are_not_allowed_outside_class_bodies),setNodeLinksForPrivateIdentifierScope(e)}(n);case 176:return function checkClassStaticBlockDeclaration(e){checkGrammarModifiers(e),forEachChild(e,checkSourceElement)}(n);case 177:return checkConstructorDeclaration(n);case 178:case 179:return checkAccessorDeclaration(n);case 184:return checkTypeReferenceNode(n);case 183:return function checkTypePredicate(e){const t=function getTypePredicateParent(e){switch(e.parent.kind){case 220:case 180:case 263:case 219:case 185:case 175:case 174:const t=e.parent;if(e===t.type)return t}}(e);if(!t)return void error2(e,Ot.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);const n=getSignatureFromDeclaration(t),r=getTypePredicateOfSignature(n);if(!r)return;checkSourceElement(e.type);const{parameterName:i}=e;if(0!==r.kind&&2!==r.kind)if(r.parameterIndex>=0){if(signatureHasRestParameter(n)&&r.parameterIndex===n.parameters.length-1)error2(i,Ot.A_type_predicate_cannot_reference_a_rest_parameter);else if(r.type){const leadingError=()=>chainDiagnosticMessages(void 0,Ot.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type);checkTypeAssignableTo(r.type,getTypeOfSymbol(n.parameters[r.parameterIndex]),e.type,void 0,leadingError)}}else if(i){let n=!1;for(const{name:e}of t.parameters)if(isBindingPattern(e)&&checkIfTypePredicateVariableIsDeclaredInBindingPattern(e,i,r.parameterName)){n=!0;break}n||error2(e.parameterName,Ot.Cannot_find_parameter_0,r.parameterName)}}(n);case 187:return function checkTypeQuery(e){getTypeFromTypeQueryNode(e)}(n);case 188:return function checkTypeLiteral(e){forEach(e.members,checkSourceElement),addLazyDiagnostic(function checkTypeLiteralDiagnostics(){const t=getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(e);checkIndexConstraints(t,t.symbol),checkTypeForDuplicateIndexSignatures(e),checkObjectTypeForDuplicateDeclarations(e)})}(n);case 189:return function checkArrayType(e){checkSourceElement(e.elementType)}(n);case 190:return function checkTupleType(e){let t=!1,n=!1;for(const r of e.elements){let e=getTupleElementFlags(r);if(8&e){const t=getTypeFromTypeNode(r.type);if(!isArrayLikeType(t)){error2(r,Ot.A_rest_element_type_must_be_an_array_type);break}(isArrayType(t)||isTupleType(t)&&4&t.target.combinedFlags)&&(e|=4)}if(4&e){if(n){grammarErrorOnNode(r,Ot.A_rest_element_cannot_follow_another_rest_element);break}n=!0}else if(2&e){if(n){grammarErrorOnNode(r,Ot.An_optional_element_cannot_follow_a_rest_element);break}t=!0}else if(1&e&&t){grammarErrorOnNode(r,Ot.A_required_element_cannot_follow_an_optional_element);break}}forEach(e.elements,checkSourceElement),getTypeFromTypeNode(e)}(n);case 193:case 194:return function checkUnionOrIntersectionType(e){forEach(e.types,checkSourceElement),getTypeFromTypeNode(e)}(n);case 197:case 191:case 192:return checkSourceElement(n.type);case 198:return function checkThisType(e){getTypeFromThisTypeNode(e)}(n);case 199:return checkTypeOperator(n);case 195:return function checkConditionalType(e){forEachChild(e,checkSourceElement)}(n);case 196:return function checkInferType(e){findAncestor(e,e=>e.parent&&195===e.parent.kind&&e.parent.extendsType===e)||grammarErrorOnNode(e,Ot.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type),checkSourceElement(e.typeParameter);const t=getSymbolOfDeclaration(e.typeParameter);if(t.declarations&&t.declarations.length>1){const e=getSymbolLinks(t);if(!e.typeParametersChecked){e.typeParametersChecked=!0;const n=getDeclaredTypeOfTypeParameter(t),r=getDeclarationsOfKind(t,169);if(!areTypeParametersIdentical(r,[n],e=>[e])){const e=symbolToString(t);for(const t of r)error2(t.name,Ot.All_declarations_of_0_must_have_identical_constraints,e)}}}registerForUnusedIdentifiersCheck(e)}(n);case 204:return function checkTemplateLiteralType(e){for(const t of e.templateSpans)checkSourceElement(t.type),checkTypeAssignableTo(getTypeFromTypeNode(t.type),dt,t.type);getTypeFromTypeNode(e)}(n);case 206:return function checkImportType(e){checkSourceElement(e.argument),e.attributes&&getResolutionModeOverride(e.attributes,grammarErrorOnNode),checkTypeReferenceOrImport(e)}(n);case 203:return function checkNamedTupleMember(e){e.dotDotDotToken&&e.questionToken&&grammarErrorOnNode(e,Ot.A_tuple_member_cannot_be_both_optional_and_rest),191===e.type.kind&&grammarErrorOnNode(e.type,Ot.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type),192===e.type.kind&&grammarErrorOnNode(e.type,Ot.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type),checkSourceElement(e.type),getTypeFromTypeNode(e)}(n);case 329:return function checkJSDocAugmentsTag(e){const t=getEffectiveJSDocHost(e);if(!t||!isClassDeclaration(t)&&!isClassExpression(t))return void error2(t,Ot.JSDoc_0_is_not_attached_to_a_class,idText(e.tagName));const n=getJSDocTags(t).filter(isJSDocAugmentsTag);h.assert(n.length>0),n.length>1&&error2(n[1],Ot.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);const r=getIdentifierFromEntityNameExpression(e.class.expression),i=getClassExtendsHeritageElement(t);if(i){const t=getIdentifierFromEntityNameExpression(i.expression);t&&r.escapedText!==t.escapedText&&error2(r,Ot.JSDoc_0_1_does_not_match_the_extends_2_clause,idText(e.tagName),idText(r),idText(t))}}(n);case 330:return function checkJSDocImplementsTag(e){const t=getEffectiveJSDocHost(e);t&&(isClassDeclaration(t)||isClassExpression(t))||error2(t,Ot.JSDoc_0_is_not_attached_to_a_class,idText(e.tagName))}(n);case 347:case 339:case 341:return function checkJSDocTypeAliasTag(e){e.typeExpression||error2(e.name,Ot.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags),e.name&&checkTypeNameIsReserved(e.name,Ot.Type_alias_name_cannot_be_0),checkSourceElement(e.typeExpression),checkTypeParameters(getEffectiveTypeParameterDeclarations(e))}(n);case 346:return function checkJSDocTemplateTag(e){checkSourceElement(e.constraint);for(const t of e.typeParameters)checkSourceElement(t)}(n);case 345:return function checkJSDocTypeTag(e){checkSourceElement(e.typeExpression)}(n);case 325:case 326:case 327:return function checkJSDocLinkLikeTag(e){e.name&&resolveJSDocMemberName(e.name,!0)}(n);case 342:return function checkJSDocParameterTag(e){checkSourceElement(e.typeExpression)}(n);case 349:return function checkJSDocPropertyTag(e){checkSourceElement(e.typeExpression)}(n);case 318:!function checkJSDocFunctionType(e){addLazyDiagnostic(function checkJSDocFunctionTypeImplicitAny(){e.type||isJSDocConstructSignature(e)||reportImplicitAny(e,ke)}),checkSignatureDeclaration(e)}(n);case 316:case 315:case 313:case 314:case 323:return checkJSDocTypeIsInJsFile(n),void forEachChild(n,checkSourceElement);case 319:return void function checkJSDocVariadicType(e){checkJSDocTypeIsInJsFile(e),checkSourceElement(e.type);const{parent:t}=e;if(isParameter(t)&&isJSDocFunctionType(t.parent))return void(last(t.parent.parameters)!==t&&error2(e,Ot.A_rest_parameter_must_be_last_in_a_parameter_list));isJSDocTypeExpression(t)||error2(e,Ot.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);const n=e.parent.parent;if(!isJSDocParameterTag(n))return void error2(e,Ot.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);const r=getParameterSymbolFromJSDoc(n);if(!r)return;const i=getHostSignatureFromJSDoc(n);i&&last(i.parameters).symbol===r||error2(e,Ot.A_rest_parameter_must_be_last_in_a_parameter_list)}(n);case 310:return checkSourceElement(n.type);case 334:case 336:case 335:return function checkJSDocAccessibilityModifiers(e){const t=getJSDocHost(e);t&&isPrivateIdentifierClassElementDeclaration(t)&&error2(e,Ot.An_accessibility_modifier_cannot_be_used_with_a_private_identifier)}(n);case 351:return function checkJSDocSatisfiesTag(e){checkSourceElement(e.typeExpression);const t=getEffectiveJSDocHost(e);if(t){const e=getAllJSDocTags(t,isJSDocSatisfiesTag);if(length(e)>1)for(let t=1;t{298!==e.kind||n||(void 0===t?t=e:(grammarErrorOnNode(e,Ot.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement),n=!0)),297===e.kind&&addLazyDiagnostic(function createLazyCaseClauseDiagnostics(e){return()=>{const t=checkExpression(e.expression);isTypeEqualityComparableTo(r,t)||checkTypeComparableTo(t,r,e.expression,void 0)}}(e)),forEach(e.statements,checkSourceElement),S.noFallthroughCasesInSwitch&&e.fallthroughFlowNode&&isReachableFlowNode(e.fallthroughFlowNode)&&error2(e,Ot.Fallthrough_case_in_switch)}),e.caseBlock.locals&®isterForUnusedIdentifiersCheck(e.caseBlock)}(n);case 257:return function checkLabeledStatement(e){checkGrammarStatementInAmbientContext(e)||findAncestor(e.parent,t=>isFunctionLike(t)?"quit":257===t.kind&&t.label.escapedText===e.label.escapedText&&(grammarErrorOnNode(e.label,Ot.Duplicate_label_0,getTextOfNode(e.label)),!0)),checkSourceElement(e.statement)}(n);case 258:return checkThrowStatement(n);case 259:return function checkTryStatement(e){checkGrammarStatementInAmbientContext(e),checkBlock(e.tryBlock);const t=e.catchClause;if(t){if(t.variableDeclaration){const e=t.variableDeclaration;checkVariableLikeDeclaration(e);const n=getEffectiveTypeAnnotationNode(e);if(n){const e=getTypeFromTypeNode(n);!e||3&e.flags||grammarErrorOnFirstToken(n,Ot.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified)}else if(e.initializer)grammarErrorOnFirstToken(e.initializer,Ot.Catch_clause_variable_cannot_have_an_initializer);else{const e=t.block.locals;e&&forEachKey(t.locals,t=>{const n=e.get(t);(null==n?void 0:n.valueDeclaration)&&2&n.flags&&grammarErrorOnNode(n.valueDeclaration,Ot.Cannot_redeclare_identifier_0_in_catch_clause,unescapeLeadingUnderscores(t))})}}checkBlock(t.block)}e.finallyBlock&&checkBlock(e.finallyBlock)}(n);case 261:return checkVariableDeclaration(n);case 209:return checkBindingElement(n);case 264:return function checkClassDeclaration(e){const t=find(e.modifiers,isDecorator);b&&t&&some(e.members,e=>hasStaticModifier(e)&&isPrivateIdentifierClassElementDeclaration(e))&&grammarErrorOnNode(t,Ot.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator),e.name||hasSyntacticModifier(e,2048)||grammarErrorOnFirstToken(e,Ot.A_class_declaration_without_the_default_modifier_must_have_a_name),checkClassLikeDeclaration(e),forEach(e.members,checkSourceElement),registerForUnusedIdentifiersCheck(e)}(n);case 265:return checkInterfaceDeclaration(n);case 266:return function checkTypeAliasDeclaration(e){if(checkGrammarModifiers(e),checkTypeNameIsReserved(e.name,Ot.Type_alias_name_cannot_be_0),allowBlockDeclarations(e.parent)||grammarErrorOnNode(e,Ot._0_declarations_can_only_be_declared_inside_a_block,"type"),checkExportsOnMergedDeclarations(e),checkTypeParameters(e.typeParameters),141===e.type.kind){const t=length(e.typeParameters);(0===t?"BuiltinIteratorReturn"===e.name.escapedText:1===t&&oa.has(e.name.escapedText))||error2(e.type,Ot.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types)}else checkSourceElement(e.type),registerForUnusedIdentifiersCheck(e)}(n);case 267:return checkEnumDeclaration(n);case 307:return function checkEnumMember(e){isPrivateIdentifier(e.name)&&error2(e,Ot.An_enum_member_cannot_be_named_with_a_private_identifier),e.initializer&&checkExpression(e.initializer)}(n);case 268:return checkModuleDeclaration(n);case 273:return checkImportDeclaration(n);case 272:return function checkImportEqualsDeclaration(e){if(!checkGrammarModuleElementContext(e,isInJSFile(e)?Ot.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:Ot.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)&&(checkGrammarModifiers(e),!S.erasableSyntaxOnly||33554432&e.flags||error2(e,Ot.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled),isInternalModuleImportEqualsDeclaration(e)||checkExternalImportOrExportDeclaration(e)))if(checkImportBinding(e),markLinkedReferences(e,6),284!==e.moduleReference.kind){const t=resolveAlias(getSymbolOfDeclaration(e));if(t!==ve){const n=getSymbolFlags(t);if(111551&n){const t=getFirstIdentifier(e.moduleReference);1920&resolveEntityName(t,112575).flags||error2(t,Ot.Module_0_is_hidden_by_a_local_declaration_with_the_same_name,declarationNameToString(t))}788968&n&&checkTypeNameIsReserved(e.name,Ot.Import_name_cannot_be_0)}e.isTypeOnly&&grammarErrorOnNode(e,Ot.An_import_alias_cannot_use_import_type)}else!(5<=v&&v<=99)||e.isTypeOnly||33554432&e.flags||grammarErrorOnNode(e,Ot.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}(n);case 279:return checkExportDeclaration(n);case 278:return function checkExportAssignment(t){if(checkGrammarModuleElementContext(t,t.isExportEquals?Ot.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:Ot.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration))return;!S.erasableSyntaxOnly||!t.isExportEquals||33554432&t.flags||error2(t,Ot.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);const n=308===t.parent.kind?t.parent:t.parent.parent;if(268===n.kind&&!isAmbientModule(n))return void(t.isExportEquals?error2(t,Ot.An_export_assignment_cannot_be_used_in_a_namespace):error2(t,Ot.A_default_export_can_only_be_used_in_an_ECMAScript_style_module));!checkGrammarModifiers(t)&&hasEffectiveModifiers(t)&&grammarErrorOnFirstToken(t,Ot.An_export_assignment_cannot_have_modifiers);const r=getEffectiveTypeAnnotationNode(t);r&&checkTypeAssignableTo(checkExpressionCached(t.expression),getTypeFromTypeNode(r),t.expression);const i=!t.isExportEquals&&!(33554432&t.flags)&&S.verbatimModuleSyntax&&1===e.getEmitModuleFormatOfFile(getSourceFileOfNode(t));if(80===t.expression.kind){const e=t.expression,n=getExportSymbolOfValueSymbolIfExported(resolveEntityName(e,-1,!0,!0,t));if(n){markLinkedReferences(t,3);const r=getTypeOnlyAliasDeclaration(n,111551);if(111551&getSymbolFlags(n)?(checkExpressionCached(e),i||33554432&t.flags||!S.verbatimModuleSyntax||!r||error2(e,t.isExportEquals?Ot.An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:Ot.An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration,idText(e))):i||33554432&t.flags||!S.verbatimModuleSyntax||error2(e,t.isExportEquals?Ot.An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:Ot.An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type,idText(e)),!i&&!(33554432&t.flags)&&Kn(S)&&!(111551&n.flags)){const i=getSymbolFlags(n,!1,!0);!(2097152&n.flags&&788968&i)||111551&i||r&&getSourceFileOfNode(r)===getSourceFileOfNode(t)?r&&getSourceFileOfNode(r)!==getSourceFileOfNode(t)&&addTypeOnlyDeclarationRelatedInfo(error2(e,t.isExportEquals?Ot._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:Ot._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,idText(e),X),r,idText(e)):error2(e,t.isExportEquals?Ot._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:Ot._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,idText(e),X)}}else checkExpressionCached(e);Zn(S)&&collectLinkedAliases(e,!0)}else checkExpressionCached(t.expression);i&&error2(t,getVerbatimModuleSyntaxErrorMessage(t)),checkExternalModuleExports(n),33554432&t.flags&&!isEntityNameExpression(t.expression)&&grammarErrorOnNode(t.expression,Ot.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context),t.isExportEquals&&(v>=5&&200!==v&&(33554432&t.flags&&99===e.getImpliedNodeFormatForEmit(getSourceFileOfNode(t))||!(33554432&t.flags)&&1!==e.getImpliedNodeFormatForEmit(getSourceFileOfNode(t)))?grammarErrorOnNode(t,Ot.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):4!==v||33554432&t.flags||grammarErrorOnNode(t,Ot.Export_assignment_is_not_supported_when_module_flag_is_system))}(n);case 243:case 260:return void checkGrammarStatementInAmbientContext(n);case 283:return function checkMissingDeclaration(e){checkDecorators(e)}(n)}}(n),r=i}}function checkJSDocCommentWorker(e){isArray(e)&&forEach(e,e=>{isJSDocLinkLike(e)&&checkSourceElement(e)})}function checkJSDocTypeIsInJsFile(e){if(!isInJSFile(e))if(isJSDocNonNullableType(e)||isJSDocNullableType(e)){const t=tokenToString(isJSDocNonNullableType(e)?54:58),n=e.postfix?Ot._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:Ot._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1,r=getTypeFromTypeNode(e.type);grammarErrorOnNode(e,n,t,typeToString(isJSDocNullableType(e)&&r!==tt&&r!==et?getUnionType(append([r,Me],e.postfix?void 0:We)):r))}else grammarErrorOnNode(e,Ot.JSDoc_types_can_only_be_used_inside_documentation_comments)}function checkNodeDeferred(e){const t=getNodeLinks(getSourceFileOfNode(e));1&t.flags?h.assert(!t.deferredNodes,"A type-checked file should have no deferred nodes."):(t.deferredNodes||(t.deferredNodes=new Set),t.deferredNodes.add(e))}function checkDeferredNodes(e){const t=getNodeLinks(e);t.deferredNodes&&t.deferredNodes.forEach(checkDeferredNode),t.deferredNodes=void 0}function checkDeferredNode(e){var t,n;null==(t=J)||t.push(J.Phase.Check,"checkDeferredNode",{kind:e.kind,pos:e.pos,end:e.end,path:e.tracingPath});const o=r;switch(r=e,m=0,e.kind){case 214:case 215:case 216:case 171:case 287:resolveUntypedCall(e);break;case 219:case 220:case 175:case 174:!function checkFunctionExpressionOrObjectLiteralMethodDeferred(e){h.assert(175!==e.kind||isObjectLiteralMethod(e));const t=getFunctionFlags(e),n=getReturnTypeFromAnnotation(e);if(checkAllCodePathsInNonVoidFunctionReturnOrThrow(e,n),e.body)if(getEffectiveReturnTypeNode(e)||getReturnTypeOfSignature(getSignatureFromDeclaration(e)),242===e.body.kind)checkSourceElement(e.body);else{const r=checkExpression(e.body),i=n&&unwrapReturnType(n,t);i&&checkReturnExpression(e,i,e.body,e.body,r)}}(e);break;case 178:case 179:checkAccessorDeclaration(e);break;case 232:!function checkClassExpressionDeferred(e){forEach(e.members,checkSourceElement),registerForUnusedIdentifiersCheck(e)}(e);break;case 169:!function checkTypeParameterDeferred(e){var t,n;if(isInterfaceDeclaration(e.parent)||isClassLike(e.parent)||isTypeAliasDeclaration(e.parent)){const r=getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(e)),o=24576&getTypeParameterModifiers(r);if(o){const a=getSymbolOfDeclaration(e.parent);if(!isTypeAliasDeclaration(e.parent)||48&getObjectFlags(getDeclaredTypeOfSymbol(a))){if(8192===o||16384===o){null==(t=J)||t.push(J.Phase.CheckTypes,"checkTypeParameterDeferred",{parent:getTypeId(getDeclaredTypeOfSymbol(a)),id:getTypeId(r)});const s=createMarkerType(a,r,16384===o?Lt:wt),c=createMarkerType(a,r,16384===o?wt:Lt),l=r;i=r,checkTypeAssignableTo(s,c,e,Ot.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation),i=l,null==(n=J)||n.pop()}}else error2(e,Ot.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types)}}}(e);break;case 286:!function checkJsxSelfClosingElementDeferred(e){checkJsxOpeningLikeElementOrOpeningFragment(e)}(e);break;case 285:!function checkJsxElementDeferred(e){checkJsxOpeningLikeElementOrOpeningFragment(e.openingElement),isJsxIntrinsicTagName(e.closingElement.tagName)?getIntrinsicTagSymbol(e.closingElement):checkExpression(e.closingElement.tagName),checkJsxChildren(e)}(e);break;case 217:case 235:case 218:!function checkAssertionDeferred(e){const{type:t}=getAssertionTypeAndExpression(e),n=isParenthesizedExpression(e)?t:e,r=getNodeLinks(e);h.assertIsDefined(r.assertionExpressionType);const i=getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(r.assertionExpressionType)),o=getTypeFromTypeNode(t);isErrorType(o)||addLazyDiagnostic(()=>{const e=getWidenedType(i);isTypeComparableTo(o,e)||checkTypeComparableTo(i,o,n,Ot.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first)})}(e);break;case 223:checkExpression(e.expression);break;case 227:isInstanceOfExpression(e)&&resolveUntypedCall(e)}r=o,null==(n=J)||n.pop()}function checkSourceFile(t,n){var r,i;null==(r=J)||r.push(J.Phase.Check,n?"checkSourceFileNodes":"checkSourceFile",{path:t.path},!0);const o=n?"beforeCheckNodes":"beforeCheck",a=n?"afterCheckNodes":"afterCheck";mark(o),n?function checkSourceFileNodesWorker(t,n){const r=getNodeLinks(t);if(!(1&r.flags)){if(skipTypeChecking(t,S,e))return;checkGrammarSourceFile(t),clear(mi),clear(_i),clear(fi),clear(gi),clear(yi),forEach(n,checkSourceElement),checkDeferredNodes(t),(r.potentialThisCollisions||(r.potentialThisCollisions=[])).push(...mi),(r.potentialNewTargetCollisions||(r.potentialNewTargetCollisions=[])).push(..._i),(r.potentialWeakMapSetCollisions||(r.potentialWeakMapSetCollisions=[])).push(...fi),(r.potentialReflectCollisions||(r.potentialReflectCollisions=[])).push(...gi),(r.potentialUnusedRenamedBindingElementsInTypes||(r.potentialUnusedRenamedBindingElementsInTypes=[])).push(...yi),r.flags|=8388608;for(const e of n){getNodeLinks(e).flags|=8388608}}}(t,n):function checkSourceFileWorker(t){const n=getNodeLinks(t);if(!(1&n.flags)){if(skipTypeChecking(t,S,e))return;checkGrammarSourceFile(t),clear(mi),clear(_i),clear(fi),clear(gi),clear(yi),8388608&n.flags&&(mi=n.potentialThisCollisions,_i=n.potentialNewTargetCollisions,fi=n.potentialWeakMapSetCollisions,gi=n.potentialReflectCollisions,yi=n.potentialUnusedRenamedBindingElementsInTypes),forEach(t.statements,checkSourceElement),checkSourceElement(t.endOfFileToken),checkDeferredNodes(t),isExternalOrCommonJsModule(t)&®isterForUnusedIdentifiersCheck(t),addLazyDiagnostic(()=>{t.isDeclarationFile||!S.noUnusedLocals&&!S.noUnusedParameters||checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(t),(e,t,n)=>{!containsParseError(e)&&unusedIsError(t,!!(33554432&e.flags))&&vi.add(n)}),t.isDeclarationFile||function checkPotentialUncheckedRenamedBindingElementsInTypes(){var e;for(const t of yi)if(!(null==(e=getSymbolOfDeclaration(t))?void 0:e.isReferenced)){const e=walkUpBindingElementsAndPatterns(t);h.assert(isPartOfParameterDeclaration(e),"Only parameter declaration should be checked here");const n=createDiagnosticForNode(t.name,Ot._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation,declarationNameToString(t.name),declarationNameToString(t.propertyName));e.type||addRelatedInfo(n,createFileDiagnostic(getSourceFileOfNode(e),e.end,0,Ot.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here,declarationNameToString(t.propertyName))),vi.add(n)}}()}),isExternalOrCommonJsModule(t)&&checkExternalModuleExports(t),mi.length&&(forEach(mi,checkIfThisIsCapturedInEnclosingScope),clear(mi)),_i.length&&(forEach(_i,checkIfNewTargetIsCapturedInEnclosingScope),clear(_i)),fi.length&&(forEach(fi,checkWeakMapSetCollision),clear(fi)),gi.length&&(forEach(gi,checkReflectCollision),clear(gi)),n.flags|=1}}(t),mark(a),measure("Check",o,a),null==(i=J)||i.pop()}function unusedIsError(e,t){if(t)return!1;switch(e){case 0:return!!S.noUnusedLocals;case 1:return!!S.noUnusedParameters;default:return h.assertNever(e)}}function getPotentiallyUnusedIdentifiers(e){return Fr.get(e.path)||l}function getDiagnostics2(n,r,i){try{return t=r,function getDiagnosticsWorker(t,n){if(t){ensurePendingDiagnosticWorkComplete();const e=vi.getGlobalDiagnostics(),r=e.length;checkSourceFileWithEagerDiagnostics(t,n);const i=vi.getDiagnostics(t.fileName);if(n)return i;const o=vi.getGlobalDiagnostics();if(o!==e){return concatenate(relativeComplement(e,o,compareDiagnostics),i)}return 0===r&&o.length>0?concatenate(o,i):i}return forEach(e.getSourceFiles(),e=>checkSourceFileWithEagerDiagnostics(e)),vi.getDiagnostics()}(n,i)}finally{t=void 0}}function ensurePendingDiagnosticWorkComplete(){for(const e of o)e();o=[]}function checkSourceFileWithEagerDiagnostics(e,t){ensurePendingDiagnosticWorkComplete();const n=addLazyDiagnostic;addLazyDiagnostic=e=>e(),checkSourceFile(e,t),addLazyDiagnostic=n}function isTypeReferenceIdentifier(e){for(;167===e.parent.kind;)e=e.parent;return 184===e.parent.kind}function forEachEnclosingClass(e,t){let n,r=getContainingClass(e);for(;r&&!(n=t(r));)r=getContainingClass(r);return n}function isNodeWithinClass(e,t){return!!forEachEnclosingClass(e,e=>e===t)}function isInRightSideOfImportOrExportAssignment(e){return void 0!==function getLeftSideOfImportEqualsOrExportAssignment(e){for(;167===e.parent.kind;)e=e.parent;return 272===e.parent.kind?e.parent.moduleReference===e?e.parent:void 0:278===e.parent.kind&&e.parent.expression===e?e.parent:void 0}(e)}function getSymbolOfNameOrPropertyAccessExpression(e){if(isDeclarationName(e))return getSymbolOfNode(e.parent);if(isInJSFile(e)&&212===e.parent.kind&&e.parent===e.parent.parent.left&&!isPrivateIdentifier(e)&&!isJSDocMemberName(e)&&!function isThisPropertyAndThisTyped(e){if(110===e.expression.kind){const t=getThisContainer(e,!1,!1);if(isFunctionLike(t)){const e=getContainingObjectLiteral(t);if(e){const t=getThisTypeOfObjectLiteralFromContextualType(e,getApparentTypeOfContextualType(e,void 0));return t&&!isTypeAny(t)}}}}(e.parent)){const t=function getSpecialPropertyAssignmentSymbolFromEntityName(e){switch(getAssignmentDeclarationKind(e.parent.parent)){case 1:case 3:return getSymbolOfNode(e.parent);case 5:if(isPropertyAccessExpression(e.parent)&&getLeftmostAccessExpression(e.parent)===e)return;case 4:case 2:return getSymbolOfDeclaration(e.parent.parent)}}(e);if(t)return t}if(278===e.parent.kind&&isEntityNameExpression(e)){const t=resolveEntityName(e,2998271,!0);if(t&&t!==ve)return t}else if(isEntityName(e)&&isInRightSideOfImportOrExportAssignment(e)){const t=getAncestor(e,272);return h.assert(void 0!==t),getSymbolOfPartOfRightHandSideOfImportEquals(e,!0)}if(isEntityName(e)){const t=function isImportTypeQualifierPart(e){let t=e.parent;for(;isQualifiedName(t);)e=t,t=t.parent;if(t&&206===t.kind&&t.qualifier===e)return t}(e);if(t){getTypeFromTypeNode(t);const n=getNodeLinks(e).resolvedSymbol;return n===ve?void 0:n}}for(;isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(e);)e=e.parent;if(function isInNameOfExpressionWithTypeArguments(e){for(;212===e.parent.kind;)e=e.parent;return 234===e.parent.kind}(e)){let t=0;234===e.parent.kind?(t=isPartOfTypeNode(e)?788968:111551,isExpressionWithTypeArgumentsInClassExtendsClause(e.parent)&&(t|=111551)):t=1920,t|=2097152;const n=isEntityNameExpression(e)?resolveEntityName(e,t,!0):void 0;if(n)return n}if(342===e.parent.kind)return getParameterSymbolFromJSDoc(e.parent);if(169===e.parent.kind&&346===e.parent.parent.kind){h.assert(!isInJSFile(e));const t=getTypeParameterFromJsDoc(e.parent);return t&&t.symbol}if(isExpressionNode(e)){if(nodeIsMissing(e))return;const t=findAncestor(e,or(isJSDocLinkLike,isJSDocNameReference,isJSDocMemberName)),n=t?901119:111551;if(80===e.kind){if(isJSXTagName(e)&&isJsxIntrinsicTagName(e)){const t=getIntrinsicTagSymbol(e.parent);return t===ve?void 0:t}const r=resolveEntityName(e,n,!0,!0,getHostSignatureFromJSDoc(e));if(!r&&t){const t=findAncestor(e,or(isClassLike,isInterfaceDeclaration));if(t)return resolveJSDocMemberName(e,!0,getSymbolOfDeclaration(t))}if(r&&t){const t=getJSDocHost(e);if(t&&isEnumMember(t)&&t===r.valueDeclaration)return resolveEntityName(e,n,!0,!0,getSourceFileOfNode(t))||r}return r}if(isPrivateIdentifier(e))return getSymbolForPrivateIdentifierExpression(e);if(212===e.kind||167===e.kind){const n=getNodeLinks(e);return n.resolvedSymbol?n.resolvedSymbol:(212===e.kind?(checkPropertyAccessExpression(e,0),n.resolvedSymbol||(n.resolvedSymbol=getApplicableIndexSymbol(checkExpressionCached(e.expression),getLiteralTypeFromPropertyName(e.name)))):checkQualifiedName(e,0),!n.resolvedSymbol&&t&&isQualifiedName(e)?resolveJSDocMemberName(e):n.resolvedSymbol)}if(isJSDocMemberName(e))return resolveJSDocMemberName(e)}else if(isEntityName(e)&&isTypeReferenceIdentifier(e)){const t=resolveEntityName(e,184===e.parent.kind?788968:1920,!0,!0);return t&&t!==ve?t:getUnresolvedSymbolForEntityName(e)}return 183===e.parent.kind?resolveEntityName(e,1,!0):void 0}function getApplicableIndexSymbol(e,t){const n=getApplicableIndexInfos(e,t);if(n.length&&e.members){const t=getIndexSymbolFromSymbolTable(resolveStructuredTypeMembers(e).members);if(n===getIndexInfosOfType(e))return t;if(t){const r=getSymbolLinks(t),i=map(mapDefined(n,e=>e.declaration),getNodeId).join(",");if(r.filteredIndexSymbolCache||(r.filteredIndexSymbolCache=new Map),r.filteredIndexSymbolCache.has(i))return r.filteredIndexSymbolCache.get(i);{const t=createSymbol(131072,"__index");return t.declarations=mapDefined(n,e=>e.declaration),t.parent=e.aliasSymbol?e.aliasSymbol:e.symbol?e.symbol:getSymbolAtLocation(t.declarations[0].parent),r.filteredIndexSymbolCache.set(i,t),t}}}}function resolveJSDocMemberName(e,t,n){if(isEntityName(e)){const r=901119;let i=resolveEntityName(e,r,t,!0,getHostSignatureFromJSDoc(e));if(!i&&isIdentifier(e)&&n&&(i=getMergedSymbol(getSymbol2(getExportsOfSymbol(n),e.escapedText,r))),i)return i}const r=isIdentifier(e)?n:resolveJSDocMemberName(e.left,t,n),i=isIdentifier(e)?e.escapedText:e.right.escapedText;if(r){const e=111551&r.flags&&getPropertyOfType(getTypeOfSymbol(r),"prototype");return getPropertyOfType(e?getTypeOfSymbol(e):getDeclaredTypeOfSymbol(r),i)}}function getSymbolAtLocation(e,t){if(isSourceFile(e))return isExternalModule(e)?getMergedSymbol(e.symbol):void 0;const{parent:n}=e,r=n.parent;if(!(67108864&e.flags)){if(isDeclarationNameOrImportPropertyName(e)){const t=getSymbolOfDeclaration(n);return isImportOrExportSpecifier(e.parent)&&e.parent.propertyName===e?getImmediateAliasedSymbol(t):t}if(isLiteralComputedPropertyDeclarationName(e))return getSymbolOfDeclaration(n.parent);if(80===e.kind){if(isInRightSideOfImportOrExportAssignment(e))return getSymbolOfNameOrPropertyAccessExpression(e);if(209===n.kind&&207===r.kind&&e===n.propertyName){const t=getPropertyOfType(getTypeOfNode(r),e.escapedText);if(t)return t}else if(isMetaProperty(n)&&n.name===e)return 105===n.keywordToken&&"target"===idText(e)?checkNewTargetMetaProperty(n).symbol:102===n.keywordToken&&"meta"===idText(e)?getGlobalImportMetaExpressionType().members.get("meta"):void 0}switch(e.kind){case 80:case 81:case 212:case 167:if(!isThisInTypeQuery(e))return getSymbolOfNameOrPropertyAccessExpression(e);case 110:const i=getThisContainer(e,!1,!1);if(isFunctionLike(i)){const e=getSignatureFromDeclaration(i);if(e.thisParameter)return e.thisParameter}if(isInExpressionContext(e))return checkExpression(e).symbol;case 198:return getTypeFromThisTypeNode(e).symbol;case 108:return checkExpression(e).symbol;case 137:const o=e.parent;return o&&177===o.kind?o.parent.symbol:void 0;case 11:case 15:if(isExternalModuleImportEqualsDeclaration(e.parent.parent)&&getExternalModuleImportEqualsDeclarationExpression(e.parent.parent)===e||(273===e.parent.kind||279===e.parent.kind)&&e.parent.moduleSpecifier===e||isInJSFile(e)&&isJSDocImportTag(e.parent)&&e.parent.moduleSpecifier===e||isInJSFile(e)&&isRequireCall(e.parent,!1)||isImportCall(e.parent)||isLiteralTypeNode(e.parent)&&isLiteralImportTypeNode(e.parent.parent)&&e.parent.parent.argument===e.parent)return resolveExternalModuleName(e,e,t);if(isCallExpression(n)&&isBindableObjectDefinePropertyCall(n)&&n.arguments[1]===e)return getSymbolOfDeclaration(n);case 9:const a=isElementAccessExpression(n)?n.argumentExpression===e?getTypeOfExpression(n.expression):void 0:isLiteralTypeNode(n)&&isIndexedAccessTypeNode(r)?getTypeFromTypeNode(r.objectType):void 0;return a&&getPropertyOfType(a,escapeLeadingUnderscores(e.text));case 90:case 100:case 39:case 86:return getSymbolOfNode(e.parent);case 206:return isLiteralImportTypeNode(e)?getSymbolAtLocation(e.argument.literal,t):void 0;case 95:return isExportAssignment(e.parent)?h.checkDefined(e.parent.symbol):void 0;case 102:if(isMetaProperty(e.parent)&&"defer"===e.parent.name.escapedText)return;case 105:return isMetaProperty(e.parent)?checkMetaPropertyKeyword(e.parent).symbol:void 0;case 104:if(isBinaryExpression(e.parent)){const t=getTypeOfExpression(e.parent.right),n=getSymbolHasInstanceMethodOfObjectType(t);return(null==n?void 0:n.symbol)??t.symbol}return;case 237:return checkExpression(e).symbol;case 296:if(isJSXTagName(e)&&isJsxIntrinsicTagName(e)){const t=getIntrinsicTagSymbol(e.parent);return t===ve?void 0:t}default:return}}}function getTypeOfNode(e){if(isSourceFile(e)&&!isExternalModule(e))return Ie;if(67108864&e.flags)return Ie;const t=tryGetClassImplementingOrExtendingExpressionWithTypeArguments(e),n=t&&getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(t.class));if(isPartOfTypeNode(e)){const t=getTypeFromTypeNode(e);return n?getTypeWithThisArgument(t,n.thisType):t}if(isExpressionNode(e))return getRegularTypeOfExpression(e);if(n&&!t.isImplements){const e=firstOrUndefined(getBaseTypes(n));return e?getTypeWithThisArgument(e,n.thisType):Ie}if(isTypeDeclaration(e)){return getDeclaredTypeOfSymbol(getSymbolOfDeclaration(e))}if(function isTypeDeclarationName(e){return 80===e.kind&&isTypeDeclaration(e.parent)&&getNameOfDeclaration(e.parent)===e}(e)){const t=getSymbolAtLocation(e);return t?getDeclaredTypeOfSymbol(t):Ie}if(isBindingElement(e))return getTypeForVariableLikeDeclaration(e,!0,0)||Ie;if(isDeclaration(e)){const t=getSymbolOfDeclaration(e);return t?getTypeOfSymbol(t):Ie}if(isDeclarationNameOrImportPropertyName(e)){const t=getSymbolAtLocation(e);return t?getTypeOfSymbol(t):Ie}if(isBindingPattern(e))return getTypeForVariableLikeDeclaration(e.parent,!0,0)||Ie;if(isInRightSideOfImportOrExportAssignment(e)){const t=getSymbolAtLocation(e);if(t){const e=getDeclaredTypeOfSymbol(t);return isErrorType(e)?getTypeOfSymbol(t):e}}return isMetaProperty(e.parent)&&e.parent.keywordToken===e.kind?checkMetaPropertyKeyword(e.parent):isImportAttributes(e)?getGlobalImportAttributesType(!1):Ie}function getTypeOfAssignmentPattern(e){if(h.assert(211===e.kind||210===e.kind),251===e.parent.kind){return checkDestructuringAssignment(e,checkRightHandSideOfForOf(e.parent)||Ie)}if(227===e.parent.kind){return checkDestructuringAssignment(e,getTypeOfExpression(e.parent.right)||Ie)}if(304===e.parent.kind){const t=cast(e.parent.parent,isObjectLiteralExpression);return checkObjectLiteralDestructuringPropertyAssignment(t,getTypeOfAssignmentPattern(t)||Ie,indexOfNode(t.properties,e.parent))}const t=cast(e.parent,isArrayLiteralExpression),n=getTypeOfAssignmentPattern(t)||Ie,r=checkIteratedTypeOrElementType(65,n,Me,e.parent)||Ie;return checkArrayLiteralDestructuringElementAssignment(t,n,t.elements.indexOf(e),r)}function getRegularTypeOfExpression(e){return isRightSideOfQualifiedNameOrPropertyAccess(e)&&(e=e.parent),getRegularTypeOfLiteralType(getTypeOfExpression(e))}function getParentTypeOfClassElement(e){const t=getSymbolOfNode(e.parent);return isStatic(e)?getTypeOfSymbol(t):getDeclaredTypeOfSymbol(t)}function getClassElementPropertyKeyType(e){const t=e.name;switch(t.kind){case 80:return getStringLiteralType(idText(t));case 9:case 11:return getStringLiteralType(t.text);case 168:const e=checkComputedPropertyName(t);return isTypeAssignableToKind(e,12288)?e:ze;default:return h.fail("Unsupported property name.")}}function getAugmentedPropertiesOfType(e){const t=createSymbolTable(getPropertiesOfType(e=getApparentType(e))),n=getSignaturesOfType(e,0).length?Ut:getSignaturesOfType(e,1).length?zt:void 0;return n&&forEach(getPropertiesOfType(n),e=>{t.has(e.escapedName)||t.set(e.escapedName,e)}),getNamedMembers(t)}function typeHasCallOrConstructSignatures(e){return 0!==getSignaturesOfType(e,0).length||0!==getSignaturesOfType(e,1).length}function isArgumentsLocalBinding(e){if(isGeneratedIdentifier(e))return!1;const t=getParseTreeNode(e,isIdentifier);if(!t)return!1;const n=t.parent;if(!n)return!1;return!((isPropertyAccessExpression(n)||isPropertyAssignment(n))&&n.name===t)&&getReferencedValueSymbol(t)===$}function getReferencedExportContainer(e,t){var n;const r=getParseTreeNode(e,isIdentifier);if(r){let e=getReferencedValueSymbol(r,function isNameOfModuleOrEnumDeclaration(e){return isModuleOrEnumDeclaration(e.parent)&&e===e.parent.name}(r));if(e){if(1048576&e.flags){const n=getMergedSymbol(e.exportSymbol);if(!t&&944&n.flags&&!(3&n.flags))return;e=n}const i=getParentOfSymbol(e);if(i){if(512&i.flags&&308===(null==(n=i.valueDeclaration)?void 0:n.kind)){const e=i.valueDeclaration;return e!==getSourceFileOfNode(r)?void 0:e}return findAncestor(r.parent,e=>isModuleOrEnumDeclaration(e)&&getSymbolOfDeclaration(e)===i)}}}}function getReferencedImportDeclaration(e){const t=getIdentifierGeneratedImportReference(e);if(t)return t;const n=getParseTreeNode(e,isIdentifier);if(n){const e=function getReferencedValueOrAliasSymbol(e){const t=getNodeLinks(e).resolvedSymbol;if(t&&t!==ve)return t;return te(e,e.escapedText,3257279,void 0,!0,void 0)}(n);if(isNonLocalAlias(e,111551)&&!getTypeOnlyAliasDeclaration(e,111551))return getDeclarationOfAliasSymbol(e)}}function isSymbolOfDeclarationWithCollidingName(e){if(418&e.flags&&e.valueDeclaration&&!isSourceFile(e.valueDeclaration)){const t=getSymbolLinks(e);if(void 0===t.isDeclarationWithCollidingName){const n=getEnclosingBlockScopeContainer(e.valueDeclaration);if(isStatementWithLocals(n)||function isSymbolOfDestructuredElementOfCatchBinding(e){return e.valueDeclaration&&isBindingElement(e.valueDeclaration)&&300===walkUpBindingElementsAndPatterns(e.valueDeclaration).parent.kind}(e))if(te(n.parent,e.escapedName,111551,void 0,!1))t.isDeclarationWithCollidingName=!0;else if(hasNodeCheckFlag(e.valueDeclaration,16384)){const r=hasNodeCheckFlag(e.valueDeclaration,32768),i=isIterationStatement(n,!1),o=242===n.kind&&isIterationStatement(n.parent,!1);t.isDeclarationWithCollidingName=!(isBlockScopedContainerTopLevel(n)||r&&(i||o))}else t.isDeclarationWithCollidingName=!1}return t.isDeclarationWithCollidingName}return!1}function getReferencedDeclarationWithCollidingName(e){if(!isGeneratedIdentifier(e)){const t=getParseTreeNode(e,isIdentifier);if(t){const e=getReferencedValueSymbol(t);if(e&&isSymbolOfDeclarationWithCollidingName(e))return e.valueDeclaration}}}function isDeclarationWithCollidingName(e){const t=getParseTreeNode(e,isDeclaration);if(t){const e=getSymbolOfDeclaration(t);if(e)return isSymbolOfDeclarationWithCollidingName(e)}return!1}function isValueAliasDeclaration(e){switch(h.assert(Y),e.kind){case 272:return isAliasResolvedToValue(getSymbolOfDeclaration(e));case 274:case 275:case 277:case 282:const t=getSymbolOfDeclaration(e);return!!t&&isAliasResolvedToValue(t,!0);case 279:const n=e.exportClause;return!!n&&(isNamespaceExport(n)||some(n.elements,isValueAliasDeclaration));case 278:return!e.expression||80!==e.expression.kind||isAliasResolvedToValue(getSymbolOfDeclaration(e),!0)}return!1}function isTopLevelValueImportEqualsWithEntityName(e){const t=getParseTreeNode(e,isImportEqualsDeclaration);if(void 0===t||308!==t.parent.kind||!isInternalModuleImportEqualsDeclaration(t))return!1;return isAliasResolvedToValue(getSymbolOfDeclaration(t))&&t.moduleReference&&!nodeIsMissing(t.moduleReference)}function isAliasResolvedToValue(e,t){if(!e)return!1;const n=getSourceFileOfNode(e.valueDeclaration);resolveExternalModuleSymbol(n&&getSymbolOfDeclaration(n));const r=getExportSymbolOfValueSymbolIfExported(resolveAlias(e));return r===ve?!t||!getTypeOnlyAliasDeclaration(e):!!(111551&getSymbolFlags(e,t,!0))&&(er(S)||!isConstEnumOrConstEnumOnlyModule(r))}function isConstEnumOrConstEnumOnlyModule(e){return isConstEnumSymbol(e)||!!e.constEnumOnlyModule}function isReferencedAliasDeclaration(e,t){if(h.assert(Y),isAliasSymbolDeclaration(e)){const t=getSymbolOfDeclaration(e),n=t&&getSymbolLinks(t);if(null==n?void 0:n.referenced)return!0;const r=getSymbolLinks(t).aliasTarget;if(r&&32&getEffectiveModifierFlags(e)&&111551&getSymbolFlags(r)&&(er(S)||!isConstEnumOrConstEnumOnlyModule(r)))return!0}return!!t&&!!forEachChild(e,e=>isReferencedAliasDeclaration(e,t))}function isImplementationOfOverload(e){if(nodeIsPresent(e.body)){if(isGetAccessor(e)||isSetAccessor(e))return!1;const t=getSignaturesOfSymbol(getSymbolOfDeclaration(e));return t.length>1||1===t.length&&t[0].declaration!==e}return!1}function requiresAddingImplicitUndefined(e,t){return(function isRequiredInitializedParameter(e,t){if(!k||isOptionalParameter(e)||isJSDocParameterTag(e)||!e.initializer)return!1;if(hasSyntacticModifier(e,31))return!!t&&isFunctionLikeDeclaration(t);return!0}(e,t)||function isOptionalUninitializedParameterProperty(e){return k&&isOptionalParameter(e)&&(isJSDocParameterTag(e)||!e.initializer)&&hasSyntacticModifier(e,31)}(e))&&!function declaredParameterTypeContainsUndefined(e){const t=getNonlocalEffectiveTypeAnnotationNode(e);if(!t)return!1;const n=getTypeFromTypeNode(t);return isErrorType(n)||containsUndefinedType(n)}(e)}function isExpandoFunctionDeclaration(e){const t=getParseTreeNode(e,e=>isFunctionDeclaration(e)||isVariableDeclaration(e));if(!t)return!1;let n;if(isVariableDeclaration(t)){if(t.type||!isInJSFile(t)&&!isVarConstLike2(t))return!1;const e=getDeclaredExpandoInitializer(t);if(!e||!canHaveSymbol(e))return!1;n=getSymbolOfDeclaration(e)}else n=getSymbolOfDeclaration(t);return!!(n&&16&n.flags|3)&&!!forEachEntry(getExportsOfSymbol(n),e=>111551&e.flags&&isExpandoPropertyDeclaration(e.valueDeclaration))}function getPropertiesOfContainerFunction(e){const t=getParseTreeNode(e,isFunctionDeclaration);if(!t)return l;const n=getSymbolOfDeclaration(t);return n&&getPropertiesOfType(getTypeOfSymbol(n))||l}function getNodeCheckFlags(e){var t;const n=e.id||0;return n<0||n>=ii.length?0:(null==(t=ii[n])?void 0:t.flags)||0}function hasNodeCheckFlag(e,t){return function calculateNodeCheckFlagWorker(e,t){if(!S.noCheck&&canIncludeBindAndCheckDiagnostics(getSourceFileOfNode(e),S))return;const n=getNodeLinks(e);if(n.calculatedFlags&t)return;switch(t){case 16:case 32:return checkSingleSuperExpression(e);case 128:case 256:case 2097152:return checkChildSuperExpressions(e);case 512:case 8192:case 65536:case 262144:return checkChildIdentifiers(e);case 536870912:return checkSingleIdentifier(e);case 4096:case 32768:case 16384:return checkContainingBlockScopeBindingUses(e);default:return h.assertNever(t,`Unhandled node check flag calculation: ${h.formatNodeCheckFlags(t)}`)}function forEachNodeRecursively(e,t){const n=t(e,e.parent);if("skip"!==n)return n||forEachChildRecursively(e,t)}function checkSuperExpressions(e){const n=getNodeLinks(e);if(n.calculatedFlags&t)return"skip";n.calculatedFlags|=2097536,checkSingleSuperExpression(e)}function checkChildSuperExpressions(e){forEachNodeRecursively(e,checkSuperExpressions)}function checkSingleSuperExpression(e){getNodeLinks(e).calculatedFlags|=48,108===e.kind&&checkSuperExpression(e)}function checkIdentifiers(e){const n=getNodeLinks(e);if(n.calculatedFlags&t)return"skip";n.calculatedFlags|=336384,checkSingleIdentifier(e)}function checkChildIdentifiers(e){forEachNodeRecursively(e,checkIdentifiers)}function isExpressionNodeOrShorthandPropertyAssignmentName(e){return isExpressionNode(e)||isShorthandPropertyAssignment(e.parent)&&(e.parent.objectAssignmentInitializer??e.parent.name)===e}function checkSingleIdentifier(e){const t=getNodeLinks(e);if(t.calculatedFlags|=536870912,isIdentifier(e)&&(t.calculatedFlags|=49152,isExpressionNodeOrShorthandPropertyAssignmentName(e)&&(!isPropertyAccessExpression(e.parent)||e.parent.name!==e))){const t=getResolvedSymbol(e);t&&t!==ve&&checkIdentifierCalculateNodeCheckFlags(e,t)}}function checkBlockScopeBindings(e){const n=getNodeLinks(e);if(n.calculatedFlags&t)return"skip";n.calculatedFlags|=53248,checkSingleBlockScopeBinding(e)}function checkContainingBlockScopeBindingUses(e){forEachNodeRecursively(getEnclosingBlockScopeContainer(isDeclarationName(e)?e.parent:e),checkBlockScopeBindings)}function checkSingleBlockScopeBinding(e){checkSingleIdentifier(e),isComputedPropertyName(e)&&checkComputedPropertyName(e),isPrivateIdentifier(e)&&isClassElement(e.parent)&&setNodeLinksForPrivateIdentifierScope(e.parent)}}(e,t),!!(getNodeCheckFlags(e)&t)}function getEnumMemberValue(e){return computeEnumMemberValues(e.parent),getNodeLinks(e).enumMemberValue??evaluatorResult(void 0)}function canHaveConstantValue(e){switch(e.kind){case 307:case 212:case 213:return!0}return!1}function getConstantValue2(e){if(307===e.kind)return getEnumMemberValue(e).value;getNodeLinks(e).resolvedSymbol||checkExpressionCached(e);const t=getNodeLinks(e).resolvedSymbol||(isEntityNameExpression(e)?resolveEntityName(e,111551,!0):void 0);if(t&&8&t.flags){const e=t.valueDeclaration;if(isEnumConst(e.parent))return getEnumMemberValue(e).value}}function isFunctionType(e){return!!(524288&e.flags)&&getSignaturesOfType(e,0).length>0}function getTypeReferenceSerializationKind(e,t){var n;const r=getParseTreeNode(e,isEntityName);if(!r)return 0;if(t&&!(t=getParseTreeNode(t)))return 0;let i=!1;if(isQualifiedName(r)){const e=resolveEntityName(getFirstIdentifier(r),111551,!0,!0,t);i=!!(null==(n=null==e?void 0:e.declarations)?void 0:n.every(isTypeOnlyImportOrExportDeclaration))}const o=resolveEntityName(r,111551,!0,!0,t),a=o&&2097152&o.flags?resolveAlias(o):o;i||(i=!(!o||!getTypeOnlyAliasDeclaration(o,111551)));const s=resolveEntityName(r,788968,!0,!0,t),c=s&&2097152&s.flags?resolveAlias(s):s;if(o||i||(i=!(!s||!getTypeOnlyAliasDeclaration(s,788968))),a&&a===c){const e=getGlobalPromiseConstructorSymbol(!1);if(e&&a===e)return 9;const t=getTypeOfSymbol(a);if(t&&isConstructorType(t))return i?10:1}if(!c)return i?11:0;const l=getDeclaredTypeOfSymbol(c);return isErrorType(l)?i?11:0:3&l.flags?11:isTypeAssignableToKind(l,245760)?2:isTypeAssignableToKind(l,528)?6:isTypeAssignableToKind(l,296)?3:isTypeAssignableToKind(l,2112)?4:isTypeAssignableToKind(l,402653316)?5:isTupleType(l)?7:isTypeAssignableToKind(l,12288)?8:isFunctionType(l)?10:isArrayType(l)?7:11}function createTypeOfDeclaration(e,t,n,r,i){const o=getParseTreeNode(e,hasInferredType);if(!o)return Wr.createToken(133);const a=getSymbolOfDeclaration(o);return j.serializeTypeForDeclaration(o,a,t,1024|n,r,i)}function getAllAccessorDeclarationsForDeclaration(e){const t=179===(e=getParseTreeNode(e,isGetOrSetAccessorDeclaration)).kind?178:179,n=getDeclarationOfKind(getSymbolOfDeclaration(e),t);return{firstAccessor:n&&n.pos{switch(e.kind){case 261:case 170:case 209:case 173:case 304:case 305:case 307:case 211:case 263:case 219:case 220:case 264:case 232:case 267:case 175:case 178:case 179:case 268:return!0}return!1})}}}function isLiteralConstDeclaration(e){return!!(isDeclarationReadonly(e)||isVariableDeclaration(e)&&isVarConstLike2(e))&&isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(e)))}function createLiteralConstValue(e,t){return function literalTypeToNode(e,t,n){const r=1056&e.flags?j.symbolToExpression(e.symbol,111551,t,void 0,void 0,n):e===Ge?Wr.createTrue():e===He&&Wr.createFalse();if(r)return r;const i=e.value;return"object"==typeof i?Wr.createBigIntLiteral(i):"string"==typeof i?Wr.createStringLiteral(i):i<0?Wr.createPrefixUnaryExpression(41,Wr.createNumericLiteral(-i)):Wr.createNumericLiteral(i)}(getTypeOfSymbol(getSymbolOfDeclaration(e)),e,t)}function getJsxFactoryEntity(e){return e?(getJsxNamespace(e),getSourceFileOfNode(e).localJsxFactory||ur):ur}function getJsxFragmentFactoryEntity(e){if(e){const t=getSourceFileOfNode(e);if(t){if(t.localJsxFragmentFactory)return t.localJsxFragmentFactory;const e=t.pragmas.get("jsxfrag"),n=isArray(e)?e[0]:e;if(n)return t.localJsxFragmentFactory=parseIsolatedEntityName(n.arguments.factory,x),t.localJsxFragmentFactory}}if(S.jsxFragmentFactory)return parseIsolatedEntityName(S.jsxFragmentFactory,x)}function getNonlocalEffectiveTypeAnnotationNode(e){const t=getEffectiveTypeAnnotationNode(e);if(t)return t;if(170===e.kind&&179===e.parent.kind){const t=getAllAccessorDeclarationsForDeclaration(e.parent).getAccessor;if(t)return getEffectiveReturnTypeNode(t)}}function getExternalModuleFileFromDeclaration(e){const t=268===e.kind?tryCast(e.name,isStringLiteral):getExternalModuleName(e),n=resolveExternalModuleNameWorker(t,t,void 0);if(n)return getDeclarationOfKind(n,308)}function checkExternalEmitHelpers(e,t){if(S.importHelpers){const n=getSourceFileOfNode(e);if(isEffectiveExternalModule(n,S)&&!(33554432&e.flags)){const r=function resolveHelpersModule(e,t){const n=getNodeLinks(e);n.externalHelpersModule||(n.externalHelpersModule=resolveExternalModule(function getImportHelpersImportSpecifier(e){h.assert(S.importHelpers,"Expected importHelpers to be enabled");const t=e.imports[0];return h.assert(t&&nodeIsSynthesized(t)&&"tslib"===t.text,"Expected sourceFile.imports[0] to be the synthesized tslib import"),t}(e),sn,Ot.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,t)||ve);return n.externalHelpersModule}(n,e);if(r!==ve){const n=getSymbolLinks(r);if(n.requestedExternalEmitHelpers??(n.requestedExternalEmitHelpers=0),(n.requestedExternalEmitHelpers&t)!==t){const i=t&~n.requestedExternalEmitHelpers;for(let t=1;t<=16777216;t<<=1)if(i&t)for(const n of getHelperNames(t)){const i=resolveSymbol(getSymbol2(getExportsOfModule(r),escapeLeadingUnderscores(n),111551));i?524288&t?some(getSignaturesOfSymbol(i),e=>getParameterCount(e)>3)||error2(e,Ot.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,sn,n,4):1048576&t?some(getSignaturesOfSymbol(i),e=>getParameterCount(e)>4)||error2(e,Ot.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,sn,n,5):1024&t&&(some(getSignaturesOfSymbol(i),e=>getParameterCount(e)>2)||error2(e,Ot.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,sn,n,3)):error2(e,Ot.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,sn,n)}}n.requestedExternalEmitHelpers|=t}}}}function getHelperNames(e){switch(e){case 1:return["__extends"];case 2:return["__assign"];case 4:return["__rest"];case 8:return b?["__decorate"]:["__esDecorate","__runInitializers"];case 16:return["__metadata"];case 32:return["__param"];case 64:return["__awaiter"];case 128:return["__generator"];case 256:return["__values"];case 512:return["__read"];case 1024:return["__spreadArray"];case 2048:return["__await"];case 4096:return["__asyncGenerator"];case 8192:return["__asyncDelegator"];case 16384:return["__asyncValues"];case 32768:return["__exportStar"];case 65536:return["__importStar"];case 131072:return["__importDefault"];case 262144:return["__makeTemplateObject"];case 524288:return["__classPrivateFieldGet"];case 1048576:return["__classPrivateFieldSet"];case 2097152:return["__classPrivateFieldIn"];case 4194304:return["__setFunctionName"];case 8388608:return["__propKey"];case 16777216:return["__addDisposableResource","__disposeResources"];case 33554432:return["__rewriteRelativeImportExtension"];default:return h.fail("Unrecognized helper")}}function checkGrammarModifiers(t){var n;const r=function reportObviousDecoratorErrors(e){const t=function findFirstIllegalDecorator(e){return canHaveIllegalDecorators(e)?find(e.modifiers,isDecorator):void 0}(e);return t&&grammarErrorOnFirstToken(t,Ot.Decorators_are_not_valid_here)}(t)||function reportObviousModifierErrors(e){if(!e.modifiers)return!1;const t=function findFirstIllegalModifier(e){switch(e.kind){case 178:case 179:case 177:case 173:case 172:case 175:case 174:case 182:case 268:case 273:case 272:case 279:case 278:case 219:case 220:case 170:case 169:return;case 176:case 304:case 305:case 271:case 283:return find(e.modifiers,isModifier);default:if(269===e.parent.kind||308===e.parent.kind)return;switch(e.kind){case 263:return findFirstModifierExcept(e,134);case 264:case 186:return findFirstModifierExcept(e,128);case 232:case 265:case 266:return find(e.modifiers,isModifier);case 244:return 4&e.declarationList.flags?findFirstModifierExcept(e,135):find(e.modifiers,isModifier);case 267:return findFirstModifierExcept(e,87);default:h.assertNever(e)}}}(e);return t&&grammarErrorOnFirstToken(t,Ot.Modifiers_cannot_appear_here)}(t);if(void 0!==r)return r;if(isParameter(t)&¶meterIsThisKeyword(t))return grammarErrorOnFirstToken(t,Ot.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);const i=isVariableStatement(t)?7&t.declarationList.flags:0;let o,a,s,c,l,d=0,p=!1,u=!1;for(const r of t.modifiers)if(isDecorator(r)){if(!nodeCanBeDecorated(b,t,t.parent,t.parent.parent))return 175!==t.kind||nodeIsPresent(t.body)?grammarErrorOnFirstToken(t,Ot.Decorators_are_not_valid_here):grammarErrorOnFirstToken(t,Ot.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);if(b&&(178===t.kind||179===t.kind)){const e=getAllAccessorDeclarationsForDeclaration(t);if(hasDecorators(e.firstAccessor)&&t===e.secondAccessor)return grammarErrorOnFirstToken(t,Ot.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}if(-34849&d)return grammarErrorOnNode(r,Ot.Decorators_are_not_valid_here);if(u&&98303&d){h.assertIsDefined(l);return!hasParseDiagnostics(getSourceFileOfNode(r))&&(addRelatedInfo(error2(r,Ot.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),createDiagnosticForNode(l,Ot.Decorator_used_before_export_here)),!0)}d|=32768,98303&d?32&d&&(p=!0):u=!0,l??(l=r)}else{if(148!==r.kind){if(172===t.kind||174===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_type_member,tokenToString(r.kind));if(182===t.kind&&(126!==r.kind||!isClassLike(t.parent)))return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_an_index_signature,tokenToString(r.kind))}if(103!==r.kind&&147!==r.kind&&87!==r.kind&&169===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_type_parameter,tokenToString(r.kind));switch(r.kind){case 87:{if(267!==t.kind&&169!==t.kind)return grammarErrorOnNode(t,Ot.A_class_member_cannot_have_the_0_keyword,tokenToString(87));const e=isJSDocTemplateTag(t.parent)&&getEffectiveJSDocHost(t.parent)||t.parent;if(169===t.kind&&!(isFunctionLikeDeclaration(e)||isClassLike(e)||isFunctionTypeNode(e)||isConstructorTypeNode(e)||isCallSignatureDeclaration(e)||isConstructSignatureDeclaration(e)||isMethodSignature(e)))return grammarErrorOnNode(r,Ot._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class,tokenToString(r.kind));break}case 164:if(16&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"override");if(128&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"override","declare");if(8&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"override","readonly");if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"override","accessor");if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"override","async");d|=16,c=r;break;case 125:case 124:case 123:const u=visibilityToString(modifierToFlag(r.kind));if(7&d)return grammarErrorOnNode(r,Ot.Accessibility_modifier_already_seen);if(16&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"override");if(256&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"static");if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"accessor");if(8&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"readonly");if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"async");if(269===t.parent.kind||308===t.parent.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_module_or_namespace_element,u);if(64&d)return 123===r.kind?grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,u,"abstract"):grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,u,"abstract");if(isPrivateIdentifierClassElementDeclaration(t))return grammarErrorOnNode(r,Ot.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);d|=modifierToFlag(r.kind);break;case 126:if(256&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"static");if(8&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"static","readonly");if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"static","async");if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"static","accessor");if(269===t.parent.kind||308===t.parent.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_module_or_namespace_element,"static");if(170===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_parameter,"static");if(64&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"static","abstract");if(16&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"static","override");d|=256,o=r;break;case 129:if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"accessor");if(8&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"accessor","readonly");if(128&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"accessor","declare");if(173!==t.kind)return grammarErrorOnNode(r,Ot.accessor_modifier_can_only_appear_on_a_property_declaration);d|=512;break;case 148:if(8&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"readonly");if(173!==t.kind&&172!==t.kind&&182!==t.kind&&170!==t.kind)return grammarErrorOnNode(r,Ot.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"readonly","accessor");d|=8;break;case 95:if(S.verbatimModuleSyntax&&!(33554432&t.flags)&&266!==t.kind&&265!==t.kind&&268!==t.kind&&308===t.parent.kind&&1===e.getEmitModuleFormatOfFile(getSourceFileOfNode(t)))return grammarErrorOnNode(r,Ot.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);if(32&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"export");if(128&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"export","declare");if(64&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"export","abstract");if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"export","async");if(isClassLike(t.parent))return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_class_elements_of_this_kind,"export");if(170===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_parameter,"export");if(4===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_using_declaration,"export");if(6===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_an_await_using_declaration,"export");d|=32;break;case 90:const m=308===t.parent.kind?t.parent:t.parent.parent;if(268===m.kind&&!isAmbientModule(m))return grammarErrorOnNode(r,Ot.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);if(4===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_using_declaration,"default");if(6===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_an_await_using_declaration,"default");if(!(32&d))return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"export","default");if(p)return grammarErrorOnNode(l,Ot.Decorators_are_not_valid_here);d|=2048;break;case 138:if(128&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"declare");if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_in_an_ambient_context,"async");if(16&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_in_an_ambient_context,"override");if(isClassLike(t.parent)&&!isPropertyDeclaration(t))return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_class_elements_of_this_kind,"declare");if(170===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_parameter,"declare");if(4===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_using_declaration,"declare");if(6===i)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_an_await_using_declaration,"declare");if(33554432&t.parent.flags&&269===t.parent.kind)return grammarErrorOnNode(r,Ot.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);if(isPrivateIdentifierClassElementDeclaration(t))return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_a_private_identifier,"declare");if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"declare","accessor");d|=128,a=r;break;case 128:if(64&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"abstract");if(264!==t.kind&&186!==t.kind){if(175!==t.kind&&173!==t.kind&&178!==t.kind&&179!==t.kind)return grammarErrorOnNode(r,Ot.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);if(264!==t.parent.kind||!hasSyntacticModifier(t.parent,64)){return grammarErrorOnNode(r,173===t.kind?Ot.Abstract_properties_can_only_appear_within_an_abstract_class:Ot.Abstract_methods_can_only_appear_within_an_abstract_class)}if(256&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"static","abstract");if(2&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"private","abstract");if(1024&d&&s)return grammarErrorOnNode(s,Ot._0_modifier_cannot_be_used_with_1_modifier,"async","abstract");if(16&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"abstract","override");if(512&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"abstract","accessor")}if(isNamedDeclaration(t)&&81===t.name.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_a_private_identifier,"abstract");d|=64;break;case 134:if(1024&d)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,"async");if(128&d||33554432&t.parent.flags)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_in_an_ambient_context,"async");if(170===t.kind)return grammarErrorOnNode(r,Ot._0_modifier_cannot_appear_on_a_parameter,"async");if(64&d)return grammarErrorOnNode(r,Ot._0_modifier_cannot_be_used_with_1_modifier,"async","abstract");d|=1024,s=r;break;case 103:case 147:{const e=103===r.kind?8192:16384,i=103===r.kind?"in":"out",o=isJSDocTemplateTag(t.parent)&&(getEffectiveJSDocHost(t.parent)||find(null==(n=getJSDocRoot(t.parent))?void 0:n.tags,isJSDocTypedefTag))||t.parent;if(169!==t.kind||o&&!(isInterfaceDeclaration(o)||isClassLike(o)||isTypeAliasDeclaration(o)||isJSDocTypedefTag(o)))return grammarErrorOnNode(r,Ot._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias,i);if(d&e)return grammarErrorOnNode(r,Ot._0_modifier_already_seen,i);if(8192&e&&16384&d)return grammarErrorOnNode(r,Ot._0_modifier_must_precede_1_modifier,"in","out");d|=e;break}}}return 177===t.kind?256&d?grammarErrorOnNode(o,Ot._0_modifier_cannot_appear_on_a_constructor_declaration,"static"):16&d?grammarErrorOnNode(c,Ot._0_modifier_cannot_appear_on_a_constructor_declaration,"override"):!!(1024&d)&&grammarErrorOnNode(s,Ot._0_modifier_cannot_appear_on_a_constructor_declaration,"async"):(273===t.kind||272===t.kind)&&128&d?grammarErrorOnNode(a,Ot.A_0_modifier_cannot_be_used_with_an_import_declaration,"declare"):170===t.kind&&31&d&&isBindingPattern(t.name)?grammarErrorOnNode(t,Ot.A_parameter_property_may_not_be_declared_using_a_binding_pattern):170===t.kind&&31&d&&t.dotDotDotToken?grammarErrorOnNode(t,Ot.A_parameter_property_cannot_be_declared_using_a_rest_parameter):!!(1024&d)&&function checkGrammarAsyncModifier(e,t){switch(e.kind){case 175:case 263:case 219:case 220:return!1}return grammarErrorOnNode(t,Ot._0_modifier_cannot_be_used_here,"async")}(t,s)}function findFirstModifierExcept(e,t){const n=find(e.modifiers,isModifier);return n&&n.kind!==t?n:void 0}function checkGrammarForDisallowedTrailingComma(e,t=Ot.Trailing_comma_not_allowed){return!(!e||!e.hasTrailingComma)&&grammarErrorAtPos(e[0],e.end-1,1,t)}function checkGrammarTypeParameterList(e,t){if(e&&0===e.length){const n=e.pos-1;return grammarErrorAtPos(t,n,skipTrivia(t.text,e.end)+1-n,Ot.Type_parameter_list_cannot_be_empty)}return!1}function checkGrammarForUseStrictSimpleParameterList(e){if(x>=3){const t=e.body&&isBlock(e.body)&&findUseStrictPrologue(e.body.statements);if(t){const n=function getNonSimpleParameters(e){return filter(e,e=>!!e.initializer||isBindingPattern(e.name)||isRestParameter(e))}(e.parameters);if(length(n)){forEach(n,e=>{addRelatedInfo(error2(e,Ot.This_parameter_is_not_allowed_with_use_strict_directive),createDiagnosticForNode(t,Ot.use_strict_directive_used_here))});const e=n.map((e,t)=>createDiagnosticForNode(e,0===t?Ot.Non_simple_parameter_declared_here:Ot.and_here));return addRelatedInfo(error2(t,Ot.use_strict_directive_cannot_be_used_with_non_simple_parameter_list),...e),!0}}}return!1}function checkGrammarFunctionLikeDeclaration(e){const t=getSourceFileOfNode(e);return checkGrammarModifiers(e)||checkGrammarTypeParameterList(e.typeParameters,t)||function checkGrammarParameterList(e){let t=!1;const n=e.length;for(let r=0;r1||e.typeParameters.hasTrailingComma||e.typeParameters[0].constraint)&&t&&fileExtensionIsOneOf(t.fileName,[".mts",".cts"])&&grammarErrorOnNode(e.typeParameters[0],Ot.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);const{equalsGreaterThanToken:n}=e,r=getLineAndCharacterOfPosition(t,n.pos).line,i=getLineAndCharacterOfPosition(t,n.end).line;return r!==i&&grammarErrorOnNode(n,Ot.Line_terminator_not_permitted_before_arrow)}(e,t)||isFunctionLikeDeclaration(e)&&checkGrammarForUseStrictSimpleParameterList(e)}function checkGrammarTypeArguments(e,t){return checkGrammarForDisallowedTrailingComma(t)||function checkGrammarForAtLeastOneTypeArgument(e,t){if(t&&0===t.length){const n=getSourceFileOfNode(e),r=t.pos-1;return grammarErrorAtPos(n,r,skipTrivia(n.text,t.end)+1-r,Ot.Type_argument_list_cannot_be_empty)}return!1}(e,t)}function checkGrammarHeritageClause(e){const t=e.types;if(checkGrammarForDisallowedTrailingComma(t))return!0;if(t&&0===t.length){const n=tokenToString(e.token);return grammarErrorAtPos(e,t.pos,0,Ot._0_list_cannot_be_empty,n)}return some(t,checkGrammarExpressionWithTypeArguments)}function checkGrammarExpressionWithTypeArguments(e){return isExpressionWithTypeArguments(e)&&isImportKeyword(e.expression)&&e.typeArguments?grammarErrorOnNode(e,Ot.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments):checkGrammarTypeArguments(e,e.typeArguments)}function checkGrammarComputedPropertyName(e){if(168!==e.kind)return!1;const t=e;return 227===t.expression.kind&&28===t.expression.operatorToken.kind&&grammarErrorOnNode(t.expression,Ot.A_comma_expression_is_not_allowed_in_a_computed_property_name)}function checkGrammarForGenerator(e){if(e.asteriskToken){if(h.assert(263===e.kind||219===e.kind||175===e.kind),33554432&e.flags)return grammarErrorOnNode(e.asteriskToken,Ot.Generators_are_not_allowed_in_an_ambient_context);if(!e.body)return grammarErrorOnNode(e.asteriskToken,Ot.An_overload_signature_cannot_be_declared_as_a_generator)}}function checkGrammarForInvalidQuestionMark(e,t){return!!e&&grammarErrorOnNode(e,t)}function checkGrammarForInvalidExclamationToken(e,t){return!!e&&grammarErrorOnNode(e,t)}function checkGrammarForInOrForOfStatement(e){if(checkGrammarStatementInAmbientContext(e))return!0;if(251===e.kind&&e.awaitModifier&&!(65536&e.flags)){const t=getSourceFileOfNode(e);if(isInTopLevelContext(e)){if(!hasParseDiagnostics(t))switch(isEffectiveExternalModule(t,S)||vi.add(createDiagnosticForNode(e.awaitModifier,Ot.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module)),v){case 100:case 101:case 102:case 199:if(1===t.impliedNodeFormat){vi.add(createDiagnosticForNode(e.awaitModifier,Ot.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level));break}case 7:case 99:case 200:case 4:if(x>=4)break;default:vi.add(createDiagnosticForNode(e.awaitModifier,Ot.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher))}}else if(!hasParseDiagnostics(t)){const t=createDiagnosticForNode(e.awaitModifier,Ot.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules),n=getContainingFunction(e);if(n&&177!==n.kind){h.assert(!(2&getFunctionFlags(n)),"Enclosing function should never be an async function.");addRelatedInfo(t,createDiagnosticForNode(n,Ot.Did_you_mean_to_mark_this_function_as_async))}return vi.add(t),!0}}if(isForOfStatement(e)&&!(65536&e.flags)&&isIdentifier(e.initializer)&&"async"===e.initializer.escapedText)return grammarErrorOnNode(e.initializer,Ot.The_left_hand_side_of_a_for_of_statement_may_not_be_async),!1;if(262===e.initializer.kind){const t=e.initializer;if(!checkGrammarVariableDeclarationList(t)){const n=t.declarations;if(!n.length)return!1;if(n.length>1){const n=250===e.kind?Ot.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:Ot.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return grammarErrorOnFirstToken(t.declarations[1],n)}const r=n[0];if(r.initializer){const t=250===e.kind?Ot.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:Ot.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return grammarErrorOnNode(r.name,t)}if(r.type){return grammarErrorOnNode(r,250===e.kind?Ot.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:Ot.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation)}}}return!1}function getAccessorThisParameter(e){if(e.parameters.length===(178===e.kind?1:2))return getThisParameter(e)}function checkGrammarForInvalidDynamicName(e,t){if(isNonBindableDynamicName(e)&&!isEntityNameExpression(isElementAccessExpression(e)?skipParentheses(e.argumentExpression):e.expression))return grammarErrorOnNode(e,t)}function checkGrammarMethod(e){if(checkGrammarFunctionLikeDeclaration(e))return!0;if(175===e.kind){if(211===e.parent.kind){if(e.modifiers&&(1!==e.modifiers.length||134!==first(e.modifiers).kind))return grammarErrorOnFirstToken(e,Ot.Modifiers_cannot_appear_here);if(checkGrammarForInvalidQuestionMark(e.questionToken,Ot.An_object_member_cannot_be_declared_optional))return!0;if(checkGrammarForInvalidExclamationToken(e.exclamationToken,Ot.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(void 0===e.body)return grammarErrorAtPos(e,e.end-1,1,Ot._0_expected,"{")}if(checkGrammarForGenerator(e))return!0}if(isClassLike(e.parent)){if(x<2&&isPrivateIdentifier(e.name))return grammarErrorOnNode(e.name,Ot.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(33554432&e.flags)return checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(175===e.kind&&!e.body)return checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(265===e.parent.kind)return checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(188===e.parent.kind)return checkGrammarForInvalidDynamicName(e.name,Ot.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function isStringOrNumberLiteralExpression(e){return isStringOrNumericLiteralLike(e)||225===e.kind&&41===e.operator&&9===e.operand.kind}function checkAmbientInitializer(e){const t=e.initializer;if(t){const n=!(isStringOrNumberLiteralExpression(t)||function isSimpleLiteralEnumReference(e){if((isPropertyAccessExpression(e)||isElementAccessExpression(e)&&isStringOrNumberLiteralExpression(e.argumentExpression))&&isEntityNameExpression(e.expression))return!!(1056&checkExpressionCached(e).flags)}(t)||112===t.kind||97===t.kind||function isBigIntLiteralExpression(e){return 10===e.kind||225===e.kind&&41===e.operator&&10===e.operand.kind}(t));if(!(isDeclarationReadonly(e)||isVariableDeclaration(e)&&isVarConstLike2(e))||e.type)return grammarErrorOnNode(t,Ot.Initializers_are_not_allowed_in_ambient_contexts);if(n)return grammarErrorOnNode(t,Ot.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}}function checkESModuleMarker(e){if(80===e.kind){if("__esModule"===idText(e))return function grammarErrorOnNodeSkippedOn(e,t,n,...r){if(!hasParseDiagnostics(getSourceFileOfNode(t)))return errorSkippedOn(e,t,n,...r),!0;return!1}("noEmit",e,Ot.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules)}else{const t=e.elements;for(const e of t)if(!isOmittedExpression(e))return checkESModuleMarker(e.name)}return!1}function checkGrammarNameInLetOrConstDeclarations(e){if(80===e.kind){if("let"===e.escapedText)return grammarErrorOnNode(e,Ot.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations)}else{const t=e.elements;for(const e of t)isOmittedExpression(e)||checkGrammarNameInLetOrConstDeclarations(e.name)}return!1}function checkGrammarVariableDeclarationList(e){const t=e.declarations;if(checkGrammarForDisallowedTrailingComma(e.declarations))return!0;if(!e.declarations.length)return grammarErrorAtPos(e,t.pos,t.end-t.pos,Ot.Variable_declaration_list_cannot_be_empty);const n=7&e.flags;if(4===n||6===n){if(isForInStatement(e.parent))return grammarErrorOnNode(e,4===n?Ot.The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:Ot.The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration);if(33554432&e.flags)return grammarErrorOnNode(e,4===n?Ot.using_declarations_are_not_allowed_in_ambient_contexts:Ot.await_using_declarations_are_not_allowed_in_ambient_contexts);if(6===n)return checkAwaitGrammar(e)}return!1}function allowBlockDeclarations(e){switch(e.kind){case 246:case 247:case 248:case 255:case 249:case 250:case 251:return!1;case 257:return allowBlockDeclarations(e.parent)}return!0}function hasParseDiagnostics(e){return e.parseDiagnostics.length>0}function grammarErrorOnFirstToken(e,t,...n){const r=getSourceFileOfNode(e);if(!hasParseDiagnostics(r)){const i=getSpanOfTokenAtPosition(r,e.pos);return vi.add(createFileDiagnostic(r,i.start,i.length,t,...n)),!0}return!1}function grammarErrorAtPos(e,t,n,r,...i){const o=getSourceFileOfNode(e);return!hasParseDiagnostics(o)&&(vi.add(createFileDiagnostic(o,t,n,r,...i)),!0)}function grammarErrorOnNode(e,t,...n){return!hasParseDiagnostics(getSourceFileOfNode(e))&&(error2(e,t,...n),!0)}function checkGrammarTopLevelElementForRequiredDeclareModifier(e){return 265!==e.kind&&266!==e.kind&&273!==e.kind&&272!==e.kind&&279!==e.kind&&278!==e.kind&&271!==e.kind&&!hasSyntacticModifier(e,2208)&&grammarErrorOnFirstToken(e,Ot.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function checkGrammarSourceFile(e){return!!(33554432&e.flags)&&function checkGrammarTopLevelElementsForRequiredDeclareModifier(e){for(const t of e.statements)if((isDeclaration(t)||244===t.kind)&&checkGrammarTopLevelElementForRequiredDeclareModifier(t))return!0;return!1}(e)}function checkGrammarStatementInAmbientContext(e){if(33554432&e.flags){if(!getNodeLinks(e).hasReportedStatementInAmbientContext&&(isFunctionLike(e.parent)||isAccessor(e.parent)))return getNodeLinks(e).hasReportedStatementInAmbientContext=grammarErrorOnFirstToken(e,Ot.An_implementation_cannot_be_declared_in_ambient_contexts);if(242===e.parent.kind||269===e.parent.kind||308===e.parent.kind){const t=getNodeLinks(e.parent);if(!t.hasReportedStatementInAmbientContext)return t.hasReportedStatementInAmbientContext=grammarErrorOnFirstToken(e,Ot.Statements_are_not_allowed_in_ambient_contexts)}}return!1}function checkGrammarNumericLiteral(e){const t=getTextOfNode(e).includes("."),n=16&e.numericLiteralFlags;if(t||n)return;+e.text<=2**53-1||addErrorOrSuggestion(!1,createDiagnosticForNode(e,Ot.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}function checkGrammarNamedImportsOrExports(e){return!!forEach(e.elements,e=>{if(e.isTypeOnly)return grammarErrorOnFirstToken(e,277===e.kind?Ot.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:Ot.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement)})}function findMatchingDiscriminantType(e,t,n){if(1048576&t.flags&&2621440&e.flags){const r=getMatchingUnionConstituentForType(t,e);if(r)return r;const i=getPropertiesOfType(e);if(i){const e=findDiscriminantProperties(i,t);if(e){const r=discriminateTypeByDiscriminableItems(t,map(e,e=>[()=>getTypeOfSymbol(e),e.escapedName]),n);if(r!==t)return r}}}}function getEffectivePropertyNameForPropertyNameNode(e){const t=getPropertyNameForPropertyNameNode(e);return t||(isComputedPropertyName(e)?tryGetNameFromType(getTypeOfExpression(e.expression)):void 0)}function getCombinedModifierFlagsCached(e){return G===e?ee:(G=e,ee=getCombinedModifierFlags(e))}function getCombinedNodeFlagsCached(e){return K===e?Z:(K=e,Z=getCombinedNodeFlags(e))}function isVarConstLike2(e){const t=7&getCombinedNodeFlagsCached(e);return 2===t||4===t||6===t}}function isNotOverload(e){return 263!==e.kind&&175!==e.kind||!!e.body}function isDeclarationNameOrImportPropertyName(e){switch(e.parent.kind){case 277:case 282:return isIdentifier(e)||11===e.kind;default:return isDeclarationName(e)}}function getIterationTypesKeyFromIterationTypeKind(e){switch(e){case 0:return"yieldType";case 1:return"returnType";case 2:return"nextType"}}function signatureHasRestParameter(e){return!!(1&e.flags)}function signatureHasLiteralTypes(e){return!!(2&e.flags)}(Ho=qo||(qo={})).JSX="JSX",Ho.IntrinsicElements="IntrinsicElements",Ho.ElementClass="ElementClass",Ho.ElementAttributesPropertyNameContainer="ElementAttributesProperty",Ho.ElementChildrenAttributeNameContainer="ElementChildrenAttribute",Ho.Element="Element",Ho.ElementType="ElementType",Ho.IntrinsicAttributes="IntrinsicAttributes",Ho.IntrinsicClassAttributes="IntrinsicClassAttributes",Ho.LibraryManagedAttributes="LibraryManagedAttributes",(Ko||(Ko={})).Fragment="Fragment";var sa=class _SymbolTrackerImpl{constructor(e,t,n){var r;for(this.moduleResolverHost=void 0,this.inner=void 0,this.disableTrackSymbol=!1;t instanceof _SymbolTrackerImpl;)t=t.inner;this.inner=t,this.moduleResolverHost=n,this.context=e,this.canTrackSymbol=!!(null==(r=this.inner)?void 0:r.trackSymbol)}trackSymbol(e,t,n){var r,i;if((null==(r=this.inner)?void 0:r.trackSymbol)&&!this.disableTrackSymbol){if(this.inner.trackSymbol(e,t,n))return this.onDiagnosticReported(),!0;262144&e.flags||((i=this.context).trackedSymbols??(i.trackedSymbols=[])).push([e,t,n])}return!1}reportInaccessibleThisError(){var e;(null==(e=this.inner)?void 0:e.reportInaccessibleThisError)&&(this.onDiagnosticReported(),this.inner.reportInaccessibleThisError())}reportPrivateInBaseOfClassExpression(e){var t;(null==(t=this.inner)?void 0:t.reportPrivateInBaseOfClassExpression)&&(this.onDiagnosticReported(),this.inner.reportPrivateInBaseOfClassExpression(e))}reportInaccessibleUniqueSymbolError(){var e;(null==(e=this.inner)?void 0:e.reportInaccessibleUniqueSymbolError)&&(this.onDiagnosticReported(),this.inner.reportInaccessibleUniqueSymbolError())}reportCyclicStructureError(){var e;(null==(e=this.inner)?void 0:e.reportCyclicStructureError)&&(this.onDiagnosticReported(),this.inner.reportCyclicStructureError())}reportLikelyUnsafeImportRequiredError(e){var t;(null==(t=this.inner)?void 0:t.reportLikelyUnsafeImportRequiredError)&&(this.onDiagnosticReported(),this.inner.reportLikelyUnsafeImportRequiredError(e))}reportTruncationError(){var e;(null==(e=this.inner)?void 0:e.reportTruncationError)&&(this.onDiagnosticReported(),this.inner.reportTruncationError())}reportNonlocalAugmentation(e,t,n){var r;(null==(r=this.inner)?void 0:r.reportNonlocalAugmentation)&&(this.onDiagnosticReported(),this.inner.reportNonlocalAugmentation(e,t,n))}reportNonSerializableProperty(e){var t;(null==(t=this.inner)?void 0:t.reportNonSerializableProperty)&&(this.onDiagnosticReported(),this.inner.reportNonSerializableProperty(e))}onDiagnosticReported(){this.context.reportedDiagnostic=!0}reportInferenceFallback(e){var t;(null==(t=this.inner)?void 0:t.reportInferenceFallback)&&!this.context.suppressReportInferenceFallback&&(this.onDiagnosticReported(),this.inner.reportInferenceFallback(e))}pushErrorFallbackNode(e){var t,n;return null==(n=null==(t=this.inner)?void 0:t.pushErrorFallbackNode)?void 0:n.call(t,e)}popErrorFallbackNode(){var e,t;return null==(t=null==(e=this.inner)?void 0:e.popErrorFallbackNode)?void 0:t.call(e)}};function visitNode(e,t,n,r){if(void 0===e)return e;const i=t(e);let o;return void 0!==i?(o=isArray(i)?(r||extractSingleNode)(i):i,h.assertNode(o,n),o):void 0}function visitNodes2(e,t,n,r,i){if(void 0===e)return e;const o=e.length;let a;(void 0===r||r<0)&&(r=0),(void 0===i||i>o-r)&&(i=o-r);let s=-1,c=-1;r>0||io-r)&&(i=o-r),visitArrayWorker(e,t,n,r,i)}function visitArrayWorker(e,t,n,r,i){let o;const a=e.length;(r>0||i=2&&(i=function addDefaultValueAssignmentsIfNeeded(e,t){let n;for(let r=0;r{const o=rl,addSource,setSourceContent,addName,addMapping,appendSourceMap:function appendSourceMap(e,t,n,r,i,o){h.assert(e>=b,"generatedLine cannot backtrack"),h.assert(t>=0,"generatedCharacter cannot be negative"),s();const a=[];let l;const d=decodeMappings(n.mappings);for(const s of d){if(o&&(s.generatedLine>o.line||s.generatedLine===o.line&&s.generatedCharacter>o.character))break;if(i&&(s.generatedLineJSON.stringify(toJSON())};function addSource(t){s();const n=getRelativePathToDirectoryOrUrl(r,t,e.getCurrentDirectory(),e.getCanonicalFileName,!0);let i=p.get(n);return void 0===i&&(i=d.length,d.push(n),l.push(t),p.set(n,i)),c(),i}function setSourceContent(e,t){if(s(),null!==t){for(o||(o=[]);o.length=b,"generatedLine cannot backtrack"),h.assert(t>=0,"generatedCharacter cannot be negative"),h.assert(void 0===n||n>=0,"sourceIndex cannot be negative"),h.assert(void 0===r||r>=0,"sourceLine cannot be negative"),h.assert(void 0===i||i>=0,"sourceCharacter cannot be negative"),s(),(function isNewGeneratedPosition(e,t){return!P||b!==e||C!==t}(e,t)||function isBacktrackingSourcePosition(e,t,n){return void 0!==e&&void 0!==t&&void 0!==n&&E===e&&(N>t||N===t&&k>n)}(n,r,i))&&(commitPendingMapping(),b=e,C=t,D=!1,I=!1,P=!0),void 0!==n&&void 0!==r&&void 0!==i&&(E=n,N=r,k=i,D=!0,void 0!==o&&(F=o,I=!0)),c()}function appendMappingCharCode(e){m.push(e),m.length>=1024&&flushMappingBuffer()}function commitPendingMapping(){if(P&&function shouldCommitMapping(){return!v||f!==b||g!==C||y!==E||T!==N||S!==k||x!==F}()){if(s(),f0&&(_+=String.fromCharCode.apply(void 0,m),m.length=0)}function toJSON(){return commitPendingMapping(),flushMappingBuffer(),{version:3,file:t,sourceRoot:n,sources:d,names:u,mappings:_,sourcesContent:o}}function appendBase64VLQ(e){e<0?e=1+(-e<<1):e<<=1;do{let t=31&e;(e>>=5)>0&&(t|=32),appendMappingCharCode(base64FormatEncode(t))}while(e>0)}}var la=/\/\/[@#] source[M]appingURL=(.+)\r?\n?$/,da=/^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/,pa=/^\s*(\/\/[@#] .*)?$/;function getLineInfo(e,t){return{getLineCount:()=>t.length,getLineText:n=>e.substring(t[n],t[n+1])}}function tryGetSourceMappingURL(e){for(let t=e.getLineCount()-1;t>=0;t--){const n=e.getLineText(t),r=da.exec(n);if(r)return r[1].trimEnd();if(!n.match(pa))break}}function isStringOrNull(e){return"string"==typeof e||null===e}function tryParseRawSourceMap(e){try{const t=JSON.parse(e);if(function isRawSourceMap(e){return null!==e&&"object"==typeof e&&3===e.version&&"string"==typeof e.file&&"string"==typeof e.mappings&&isArray(e.sources)&&every(e.sources,isString)&&(void 0===e.sourceRoot||null===e.sourceRoot||"string"==typeof e.sourceRoot)&&(void 0===e.sourcesContent||null===e.sourcesContent||isArray(e.sourcesContent)&&every(e.sourcesContent,isStringOrNull))&&(void 0===e.names||null===e.names||isArray(e.names)&&every(e.names,isString))}(t))return t}catch{}}function decodeMappings(e){let t,n=!1,r=0,i=0,o=0,a=0,s=0,c=0,l=0;return{get pos(){return r},get error(){return t},get state(){return captureMapping(!0,!0)},next(){for(;!n&&r=e.length)return setError("Error in decoding base64VLQFormatDecode, past the mapping string"),-1;const o=base64FormatDecode(e.charCodeAt(r));if(-1===o)return setError("Invalid character in VLQ"),-1;t=!!(32&o),i|=(31&o)<>=1,i=-i):i>>=1,i}}function sameMapping(e,t){return e===t||e.generatedLine===t.generatedLine&&e.generatedCharacter===t.generatedCharacter&&e.sourceIndex===t.sourceIndex&&e.sourceLine===t.sourceLine&&e.sourceCharacter===t.sourceCharacter&&e.nameIndex===t.nameIndex}function isSourceMapping(e){return void 0!==e.sourceIndex&&void 0!==e.sourceLine&&void 0!==e.sourceCharacter}function base64FormatEncode(e){return e>=0&&e<26?65+e:e>=26&&e<52?97+e-26:e>=52&&e<62?48+e-52:62===e?43:63===e?47:h.fail(`${e}: not a base64 value`)}function base64FormatDecode(e){return e>=65&&e<=90?e-65:e>=97&&e<=122?e-97+26:e>=48&&e<=57?e-48+52:43===e?62:47===e?63:-1}function isSourceMappedPosition(e){return void 0!==e.sourceIndex&&void 0!==e.sourcePosition}function sameMappedPosition(e,t){return e.generatedPosition===t.generatedPosition&&e.sourceIndex===t.sourceIndex&&e.sourcePosition===t.sourcePosition}function compareSourcePositions(e,t){return h.assert(e.sourceIndex===t.sourceIndex),compareValues(e.sourcePosition,t.sourcePosition)}function compareGeneratedPositions(e,t){return compareValues(e.generatedPosition,t.generatedPosition)}function getSourcePositionOfMapping(e){return e.sourcePosition}function getGeneratedPositionOfMapping(e){return e.generatedPosition}function createDocumentPositionMapper(e,t,n){const r=getDirectoryPath(n),i=t.sourceRoot?getNormalizedAbsolutePath(t.sourceRoot,r):r,o=getNormalizedAbsolutePath(t.file,r),a=e.getSourceFileLike(o),s=t.sources.map(e=>getNormalizedAbsolutePath(e,i)),c=new Map(s.map((t,n)=>[e.getCanonicalFileName(t),n]));let d,p,u;return{getSourcePosition:function getSourcePosition(e){const t=function getGeneratedMappings(){if(void 0===p){const e=[];for(const t of getDecodedMappings())e.push(t);p=sortAndDeduplicate(e,compareGeneratedPositions,sameMappedPosition)}return p}();if(!some(t))return e;let n=binarySearchKey(t,e.pos,getGeneratedPositionOfMapping,compareValues);n<0&&(n=~n);const r=t[n];if(void 0===r||!isSourceMappedPosition(r))return e;return{fileName:s[r.sourceIndex],pos:r.sourcePosition}},getGeneratedPosition:function getGeneratedPosition(t){const n=c.get(e.getCanonicalFileName(t.fileName));if(void 0===n)return t;const r=function getSourceMappings(e){if(void 0===u){const e=[];for(const t of getDecodedMappings()){if(!isSourceMappedPosition(t))continue;let n=e[t.sourceIndex];n||(e[t.sourceIndex]=n=[]),n.push(t)}u=e.map(e=>sortAndDeduplicate(e,compareSourcePositions,sameMappedPosition))}return u[e]}(n);if(!some(r))return t;let i=binarySearchKey(r,t.pos,getSourcePositionOfMapping,compareValues);i<0&&(i=~i);const a=r[i];if(void 0===a||a.sourceIndex!==n)return t;return{fileName:o,pos:a.generatedPosition}}};function processMapping(n){const r=void 0!==a?getPositionOfLineAndCharacter(a,n.generatedLine,n.generatedCharacter,!0):-1;let i,o;if(isSourceMapping(n)){const r=e.getSourceFileLike(s[n.sourceIndex]);i=t.sources[n.sourceIndex],o=void 0!==r?getPositionOfLineAndCharacter(r,n.sourceLine,n.sourceCharacter,!0):-1}return{generatedPosition:r,source:i,sourceIndex:n.sourceIndex,sourcePosition:o,nameIndex:n.nameIndex}}function getDecodedMappings(){if(void 0===d){const n=decodeMappings(t.mappings),r=arrayFrom(n,processMapping);void 0!==n.error?(e.log&&e.log(`Encountered error while decoding sourcemap: ${n.error}`),d=l):d=r}return d}}var ua={getSourcePosition:identity,getGeneratedPosition:identity};function getOriginalNodeId(e){return(e=getOriginalNode(e))?getNodeId(e):0}function containsDefaultReference(e){return!!e&&(!(!isNamedImports(e)&&!isNamedExports(e))&&some(e.elements,isNamedDefaultReference))}function isNamedDefaultReference(e){return moduleExportNameIsDefault(e.propertyName||e.name)}function chainBundle(e,t){return function transformSourceFileOrBundle(n){return 308===n.kind?t(n):function transformBundle(n){return e.factory.createBundle(map(n.sourceFiles,t))}(n)}}function getExportNeedsImportStarHelper(e){return!!getNamespaceDeclarationNode(e)}function getImportNeedsImportStarHelper(e){if(getNamespaceDeclarationNode(e))return!0;const t=e.importClause&&e.importClause.namedBindings;if(!t)return!1;if(!isNamedImports(t))return!1;let n=0;for(const e of t.elements)isNamedDefaultReference(e)&&n++;return n>0&&n!==t.elements.length||!!(t.elements.length-n)&&isDefaultImport(e)}function getImportNeedsImportDefaultHelper(e){return!getImportNeedsImportStarHelper(e)&&(isDefaultImport(e)||!!e.importClause&&isNamedImports(e.importClause.namedBindings)&&containsDefaultReference(e.importClause.namedBindings))}function collectExternalModuleInfo(e,t){const n=e.getEmitResolver(),r=e.getCompilerOptions(),i=[],o=new _a,a=[],s=new Map,c=new Set;let l,d,p=!1,u=!1,m=!1,_=!1;for(const n of t.statements)switch(n.kind){case 273:i.push(n),!m&&getImportNeedsImportStarHelper(n)&&(m=!0),!_&&getImportNeedsImportDefaultHelper(n)&&(_=!0);break;case 272:284===n.moduleReference.kind&&i.push(n);break;case 279:if(n.moduleSpecifier)if(n.exportClause)if(i.push(n),isNamedExports(n.exportClause))addExportedNamesForExportDeclaration(n),_||(_=containsDefaultReference(n.exportClause));else{const e=n.exportClause.name,t=moduleExportNameTextUnescaped(e);s.get(t)||(multiMapSparseArrayAdd(a,getOriginalNodeId(n),e),s.set(t,!0),l=append(l,e)),m=!0}else i.push(n),u=!0;else addExportedNamesForExportDeclaration(n);break;case 278:n.isExportEquals&&!d&&(d=n);break;case 244:if(hasSyntacticModifier(n,32))for(const e of n.declarationList.declarations)l=collectExportedVariableInfo(e,s,l,a);break;case 263:hasSyntacticModifier(n,32)&&addExportedFunctionDeclaration(n,void 0,hasSyntacticModifier(n,2048));break;case 264:if(hasSyntacticModifier(n,32))if(hasSyntacticModifier(n,2048))p||(multiMapSparseArrayAdd(a,getOriginalNodeId(n),e.factory.getDeclarationName(n)),p=!0);else{const e=n.name;e&&!s.get(idText(e))&&(multiMapSparseArrayAdd(a,getOriginalNodeId(n),e),s.set(idText(e),!0),l=append(l,e))}}const f=createExternalHelpersImportDeclarationIfNeeded(e.factory,e.getEmitHelperFactory(),t,r,u,m,_);return f&&i.unshift(f),{externalImports:i,exportSpecifiers:o,exportEquals:d,hasExportStarsToExportValues:u,exportedBindings:a,exportedNames:l,exportedFunctions:c,externalHelpersImportDeclaration:f};function addExportedNamesForExportDeclaration(e){for(const t of cast(e.exportClause,isNamedExports).elements){const r=moduleExportNameTextUnescaped(t.name);if(!s.get(r)){const i=t.propertyName||t.name;if(11!==i.kind){e.moduleSpecifier||o.add(i,t);const r=n.getReferencedImportDeclaration(i)||n.getReferencedValueDeclaration(i);if(r){if(263===r.kind){addExportedFunctionDeclaration(r,t.name,moduleExportNameIsDefault(t.name));continue}multiMapSparseArrayAdd(a,getOriginalNodeId(r),t.name)}}s.set(r,!0),l=append(l,t.name)}}}function addExportedFunctionDeclaration(t,n,r){if(c.add(getOriginalNode(t,isFunctionDeclaration)),r)p||(multiMapSparseArrayAdd(a,getOriginalNodeId(t),n??e.factory.getDeclarationName(t)),p=!0);else{n??(n=t.name);const e=moduleExportNameTextUnescaped(n);s.get(e)||(multiMapSparseArrayAdd(a,getOriginalNodeId(t),n),s.set(e,!0))}}}function collectExportedVariableInfo(e,t,n,r){if(isBindingPattern(e.name))for(const i of e.name.elements)isOmittedExpression(i)||(n=collectExportedVariableInfo(i,t,n,r));else if(!isGeneratedIdentifier(e.name)){const i=idText(e.name);t.get(i)||(t.set(i,!0),n=append(n,e.name),isLocalName(e.name)&&multiMapSparseArrayAdd(r,getOriginalNodeId(e),e.name))}return n}function multiMapSparseArrayAdd(e,t,n){let r=e[t];return r?r.push(n):e[t]=r=[n],r}var ma=class _IdentifierNameMap{constructor(){this._map=new Map}get size(){return this._map.size}has(e){return this._map.has(_IdentifierNameMap.toKey(e))}get(e){return this._map.get(_IdentifierNameMap.toKey(e))}set(e,t){return this._map.set(_IdentifierNameMap.toKey(e),t),this}delete(e){var t;return(null==(t=this._map)?void 0:t.delete(_IdentifierNameMap.toKey(e)))??!1}clear(){this._map.clear()}values(){return this._map.values()}static toKey(e){if(isGeneratedPrivateIdentifier(e)||isGeneratedIdentifier(e)){const t=e.emitNode.autoGenerate;if(4==(7&t.flags)){const n=getNodeForGeneratedName(e),r=isMemberName(n)&&n!==e?_IdentifierNameMap.toKey(n):`(generated@${getNodeId(n)})`;return formatGeneratedName(!1,t.prefix,r,t.suffix,_IdentifierNameMap.toKey)}{const e=`(auto@${t.id})`;return formatGeneratedName(!1,t.prefix,e,t.suffix,_IdentifierNameMap.toKey)}}return isPrivateIdentifier(e)?idText(e).slice(1):idText(e)}},_a=class extends ma{add(e,t){let n=this.get(e);return n?n.push(t):this.set(e,n=[t]),n}remove(e,t){const n=this.get(e);n&&(unorderedRemoveItem(n,t),n.length||this.delete(e))}};function isSimpleCopiableExpression(e){return isStringLiteralLike(e)||9===e.kind||isKeyword(e.kind)||isIdentifier(e)}function isSimpleInlineableExpression(e){return!isIdentifier(e)&&isSimpleCopiableExpression(e)}function isCompoundAssignment(e){return e>=65&&e<=79}function getNonAssignmentOperatorForCompoundAssignment(e){switch(e){case 65:return 40;case 66:return 41;case 67:return 42;case 68:return 43;case 69:return 44;case 70:return 45;case 71:return 48;case 72:return 49;case 73:return 50;case 74:return 51;case 75:return 52;case 79:return 53;case 76:return 57;case 77:return 56;case 78:return 61}}function getSuperCallFromStatement(e){if(!isExpressionStatement(e))return;const t=skipParentheses(e.expression);return isSuperCall(t)?t:void 0}function findSuperStatementIndexPathWorker(e,t,n){for(let r=t;rfunction isInitializedOrStaticProperty(e,t,n){return isPropertyDeclaration(e)&&(!!e.initializer||!t)&&hasStaticModifier(e)===n}(e,t,n))}function isStaticPropertyDeclarationOrClassStaticBlockDeclaration(e){return function isStaticPropertyDeclaration(e){return isPropertyDeclaration(e)&&hasStaticModifier(e)}(e)||isClassStaticBlockDeclaration(e)}function getStaticPropertiesAndClassStaticBlock(e){return filter(e.members,isStaticPropertyDeclarationOrClassStaticBlockDeclaration)}function isInitializedProperty(e){return 173===e.kind&&void 0!==e.initializer}function isNonStaticMethodOrAccessorWithPrivateName(e){return!isStatic(e)&&(isMethodOrAccessor(e)||isAutoAccessorPropertyDeclaration(e))&&isPrivateIdentifier(e.name)}function getDecoratorsOfParameters(e){let t;if(e){const n=e.parameters,r=n.length>0&¶meterIsThisKeyword(n[0]),i=r?1:0,o=r?n.length-1:n.length;for(let e=0;egetPrivateIdentifier(e.privateEnv,t))}function isSimpleParameter(e){return!e.initializer&&isIdentifier(e.name)}function isSimpleParameterList(e){return every(e,isSimpleParameter)}function rewriteModuleSpecifier(e,t){if(!e||!isStringLiteral(e)||!shouldRewriteModuleSpecifier(e.text,t))return e;const n=changeExtension(e.text,getOutputExtension(e.text,t));return n!==e.text?setOriginalNode(setTextRange(Wr.createStringLiteral(n,e.singleQuote),e),e):e}var fa=(e=>(e[e.All=0]="All",e[e.ObjectRest=1]="ObjectRest",e))(fa||{});function flattenDestructuringAssignment(e,t,n,r,i,o){let a,s,c=e;if(isDestructuringAssignment(e))for(a=e.right;isEmptyArrayLiteral(e.left)||isEmptyObjectLiteral(e.left);){if(!isDestructuringAssignment(a))return h.checkDefined(visitNode(a,t,isExpression));c=e=a,a=e.right}const l={context:n,level:r,downlevelIteration:!!n.getCompilerOptions().downlevelIteration,hoistTempVariables:!0,emitExpression,emitBindingOrAssignment:function emitBindingOrAssignment(e,r,i,a){h.assertNode(e,o?isIdentifier:isExpression);const s=o?o(e,r,i):setTextRange(n.factory.createAssignment(h.checkDefined(visitNode(e,t,isExpression)),r),i);s.original=a,emitExpression(s)},createArrayBindingOrAssignmentPattern:e=>function makeArrayAssignmentPattern(e,t){return h.assertEachNode(t,isArrayBindingOrAssignmentElement),e.createArrayLiteralExpression(map(t,e.converters.convertToArrayAssignmentElement))}(n.factory,e),createObjectBindingOrAssignmentPattern:e=>function makeObjectAssignmentPattern(e,t){return h.assertEachNode(t,isObjectBindingOrAssignmentElement),e.createObjectLiteralExpression(map(t,e.converters.convertToObjectAssignmentElement))}(n.factory,e),createArrayBindingOrAssignmentElement:makeAssignmentElement,visitor:t};if(a&&(a=visitNode(a,t,isExpression),h.assert(a),isIdentifier(a)&&bindingOrAssignmentElementAssignsToName(e,a.escapedText)||bindingOrAssignmentElementContainsNonLiteralComputedName(e)?a=ensureIdentifier(l,a,!1,c):i?a=ensureIdentifier(l,a,!0,c):nodeIsSynthesized(e)&&(c=a)),flattenBindingOrAssignmentElement(l,e,a,c,isDestructuringAssignment(e)),a&&i){if(!some(s))return a;s.push(a)}return n.factory.inlineExpressions(s)||n.factory.createOmittedExpression();function emitExpression(e){s=append(s,e)}}function bindingOrAssignmentElementAssignsToName(e,t){const n=getTargetOfBindingOrAssignmentElement(e);return isBindingOrAssignmentPattern(n)?function bindingOrAssignmentPatternAssignsToName(e,t){const n=getElementsOfBindingOrAssignmentPattern(e);for(const e of n)if(bindingOrAssignmentElementAssignsToName(e,t))return!0;return!1}(n,t):!!isIdentifier(n)&&n.escapedText===t}function bindingOrAssignmentElementContainsNonLiteralComputedName(e){const t=tryGetPropertyNameOfBindingOrAssignmentElement(e);if(t&&isComputedPropertyName(t)&&!isLiteralExpression(t.expression))return!0;const n=getTargetOfBindingOrAssignmentElement(e);return!!n&&isBindingOrAssignmentPattern(n)&&function bindingOrAssignmentPatternContainsNonLiteralComputedName(e){return!!forEach(getElementsOfBindingOrAssignmentPattern(e),bindingOrAssignmentElementContainsNonLiteralComputedName)}(n)}function flattenDestructuringBinding(e,t,n,r,i,o=!1,a){let s;const c=[],l=[],d={context:n,level:r,downlevelIteration:!!n.getCompilerOptions().downlevelIteration,hoistTempVariables:o,emitExpression:function emitExpression(e){s=append(s,e)},emitBindingOrAssignment,createArrayBindingOrAssignmentPattern:e=>function makeArrayBindingPattern(e,t){return h.assertEachNode(t,isArrayBindingElement),e.createArrayBindingPattern(t)}(n.factory,e),createObjectBindingOrAssignmentPattern:e=>function makeObjectBindingPattern(e,t){return h.assertEachNode(t,isBindingElement),e.createObjectBindingPattern(t)}(n.factory,e),createArrayBindingOrAssignmentElement:e=>function makeBindingElement(e,t){return e.createBindingElement(void 0,void 0,t)}(n.factory,e),visitor:t};if(isVariableDeclaration(e)){let t=getInitializerOfBindingOrAssignmentElement(e);t&&(isIdentifier(t)&&bindingOrAssignmentElementAssignsToName(e,t.escapedText)||bindingOrAssignmentElementContainsNonLiteralComputedName(e))&&(t=ensureIdentifier(d,h.checkDefined(visitNode(t,d.visitor,isExpression)),!1,t),e=n.factory.updateVariableDeclaration(e,e.name,void 0,void 0,t))}if(flattenBindingOrAssignmentElement(d,e,i,e,a),s){const e=n.factory.createTempVariable(void 0);if(o){const t=n.factory.inlineExpressions(s);s=void 0,emitBindingOrAssignment(e,t,void 0,void 0)}else{n.hoistVariableDeclaration(e);const t=last(c);t.pendingExpressions=append(t.pendingExpressions,n.factory.createAssignment(e,t.value)),addRange(t.pendingExpressions,s),t.value=e}}for(const{pendingExpressions:e,name:t,value:r,location:i,original:o}of c){const a=n.factory.createVariableDeclaration(t,void 0,void 0,e?n.factory.inlineExpressions(append(e,r)):r);a.original=o,setTextRange(a,i),l.push(a)}return l;function emitBindingOrAssignment(e,t,r,i){h.assertNode(e,isBindingName),s&&(t=n.factory.inlineExpressions(append(s,t)),s=void 0),c.push({pendingExpressions:s,name:e,value:t,location:r,original:i})}}function flattenBindingOrAssignmentElement(e,t,n,r,i){const o=getTargetOfBindingOrAssignmentElement(t);if(!i){const i=visitNode(getInitializerOfBindingOrAssignmentElement(t),e.visitor,isExpression);i?n?(n=function createDefaultValueCheck(e,t,n,r){return t=ensureIdentifier(e,t,!0,r),e.context.factory.createConditionalExpression(e.context.factory.createTypeCheck(t,"undefined"),void 0,n,void 0,t)}(e,n,i,r),!isSimpleInlineableExpression(i)&&isBindingOrAssignmentPattern(o)&&(n=ensureIdentifier(e,n,!0,r))):n=i:n||(n=e.context.factory.createVoidZero())}isObjectBindingOrAssignmentPattern(o)?function flattenObjectBindingOrAssignmentPattern(e,t,n,r,i){const o=getElementsOfBindingOrAssignmentPattern(n),a=o.length;if(1!==a){r=ensureIdentifier(e,r,!isDeclarationBindingElement(t)||0!==a,i)}let s,c;for(let t=0;t=1)||98304&l.transformFlags||98304&getTargetOfBindingOrAssignmentElement(l).transformFlags||isComputedPropertyName(t)){s&&(e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(s),r,i,n),s=void 0);const o=createDestructuringPropertyAccess(e,r,t);isComputedPropertyName(t)&&(c=append(c,o.argumentExpression)),flattenBindingOrAssignmentElement(e,l,o,l)}else s=append(s,visitNode(l,e.visitor,isBindingOrAssignmentElement))}}s&&e.emitBindingOrAssignment(e.createObjectBindingOrAssignmentPattern(s),r,i,n)}(e,t,o,n,r):isArrayBindingOrAssignmentPattern(o)?function flattenArrayBindingOrAssignmentPattern(e,t,n,r,i){const o=getElementsOfBindingOrAssignmentPattern(n),a=o.length;if(e.level<1&&e.downlevelIteration)r=ensureIdentifier(e,setTextRange(e.context.getEmitHelperFactory().createReadHelper(r,a>0&&getRestIndicatorOfBindingOrAssignmentElement(o[a-1])?void 0:a),i),!1,i);else if(1!==a&&(e.level<1||0===a)||every(o,isOmittedExpression)){r=ensureIdentifier(e,r,!isDeclarationBindingElement(t)||0!==a,i)}let s,c;for(let t=0;t=1)if(65536&n.transformFlags||e.hasTransformedPriorElement&&!isSimpleBindingOrAssignmentElement(n)){e.hasTransformedPriorElement=!0;const t=e.context.factory.createTempVariable(void 0);e.hoistTempVariables&&e.context.hoistVariableDeclaration(t),c=append(c,[t,n]),s=append(s,e.createArrayBindingOrAssignmentElement(t))}else s=append(s,n);else{if(isOmittedExpression(n))continue;if(getRestIndicatorOfBindingOrAssignmentElement(n)){if(t===a-1){const i=e.context.factory.createArraySliceCall(r,t);flattenBindingOrAssignmentElement(e,n,i,n)}}else{const i=e.context.factory.createElementAccessExpression(r,t);flattenBindingOrAssignmentElement(e,n,i,n)}}}s&&e.emitBindingOrAssignment(e.createArrayBindingOrAssignmentPattern(s),r,i,n);if(c)for(const[t,n]of c)flattenBindingOrAssignmentElement(e,n,t,n)}(e,t,o,n,r):e.emitBindingOrAssignment(o,n,r,t)}function isSimpleBindingOrAssignmentElement(e){const t=getTargetOfBindingOrAssignmentElement(e);if(!t||isOmittedExpression(t))return!0;const n=tryGetPropertyNameOfBindingOrAssignmentElement(e);if(n&&!isPropertyNameLiteral(n))return!1;const r=getInitializerOfBindingOrAssignmentElement(e);return!(r&&!isSimpleInlineableExpression(r))&&(isBindingOrAssignmentPattern(t)?every(getElementsOfBindingOrAssignmentPattern(t),isSimpleBindingOrAssignmentElement):isIdentifier(t))}function createDestructuringPropertyAccess(e,t,n){const{factory:r}=e.context;if(isComputedPropertyName(n)){const r=ensureIdentifier(e,h.checkDefined(visitNode(n.expression,e.visitor,isExpression)),!1,n);return e.context.factory.createElementAccessExpression(t,r)}if(isStringOrNumericLiteralLike(n)||isBigIntLiteral(n)){const i=r.cloneNode(n);return e.context.factory.createElementAccessExpression(t,i)}{const r=e.context.factory.createIdentifier(idText(n));return e.context.factory.createPropertyAccessExpression(t,r)}}function ensureIdentifier(e,t,n,r){if(isIdentifier(t)&&n)return t;{const n=e.context.factory.createTempVariable(void 0);return e.hoistTempVariables?(e.context.hoistVariableDeclaration(n),e.emitExpression(setTextRange(e.context.factory.createAssignment(n,t),r))):e.emitBindingOrAssignment(n,t,r,void 0),n}}function makeAssignmentElement(e){return e}function isClassThisAssignmentBlock(e){var t;if(!isClassStaticBlockDeclaration(e)||1!==e.body.statements.length)return!1;const n=e.body.statements[0];return isExpressionStatement(n)&&isAssignmentExpression(n.expression,!0)&&isIdentifier(n.expression.left)&&(null==(t=e.emitNode)?void 0:t.classThis)===n.expression.left&&110===n.expression.right.kind}function classHasClassThisAssignment(e){var t;return!!(null==(t=e.emitNode)?void 0:t.classThis)&&some(e.members,isClassThisAssignmentBlock)}function injectClassThisAssignmentIfMissing(e,t,n,r){if(classHasClassThisAssignment(t))return t;const i=function createClassThisAssignmentBlock(e,t,n=e.createThis()){const r=e.createAssignment(t,n),i=e.createExpressionStatement(r),o=e.createBlock([i],!1),a=e.createClassStaticBlockDeclaration(o);return getOrCreateEmitNode(a).classThis=t,a}(e,n,r);t.name&&setSourceMapRange(i.body.statements[0],t.name);const o=e.createNodeArray([i,...t.members]);setTextRange(o,t.members);const a=isClassDeclaration(t)?e.updateClassDeclaration(t,t.modifiers,t.name,t.typeParameters,t.heritageClauses,o):e.updateClassExpression(t,t.modifiers,t.name,t.typeParameters,t.heritageClauses,o);return getOrCreateEmitNode(a).classThis=n,a}function getAssignedNameOfIdentifier(e,t,n){const r=getOriginalNode(skipOuterExpressions(n));return(isClassDeclaration(r)||isFunctionDeclaration(r))&&!r.name&&hasSyntacticModifier(r,2048)?e.createStringLiteral("default"):e.createStringLiteralFromNode(t)}function getAssignedNameOfPropertyName(e,t,n){const{factory:r}=e;if(void 0!==n){return{assignedName:r.createStringLiteral(n),name:t}}if(isPropertyNameLiteral(t)||isPrivateIdentifier(t)){return{assignedName:r.createStringLiteralFromNode(t),name:t}}if(isPropertyNameLiteral(t.expression)&&!isIdentifier(t.expression)){return{assignedName:r.createStringLiteralFromNode(t.expression),name:t}}const i=r.getGeneratedNameForNode(t);e.hoistVariableDeclaration(i);const o=e.getEmitHelperFactory().createPropKeyHelper(t.expression),a=r.createAssignment(i,o);return{assignedName:i,name:r.updateComputedPropertyName(t,a)}}function isClassNamedEvaluationHelperBlock(e){var t;if(!isClassStaticBlockDeclaration(e)||1!==e.body.statements.length)return!1;const n=e.body.statements[0];return isExpressionStatement(n)&&isCallToHelper(n.expression,"___setFunctionName")&&n.expression.arguments.length>=2&&n.expression.arguments[1]===(null==(t=e.emitNode)?void 0:t.assignedName)}function classHasExplicitlyAssignedName(e){var t;return!!(null==(t=e.emitNode)?void 0:t.assignedName)&&some(e.members,isClassNamedEvaluationHelperBlock)}function classHasDeclaredOrExplicitlyAssignedName(e){return!!e.name||classHasExplicitlyAssignedName(e)}function injectClassNamedEvaluationHelperBlockIfMissing(e,t,n,r){if(classHasExplicitlyAssignedName(t))return t;const{factory:i}=e,o=function createClassNamedEvaluationHelperBlock(e,t,n=e.factory.createThis()){const{factory:r}=e,i=e.getEmitHelperFactory().createSetFunctionNameHelper(n,t),o=r.createExpressionStatement(i),a=r.createBlock([o],!1),s=r.createClassStaticBlockDeclaration(a);return getOrCreateEmitNode(s).assignedName=t,s}(e,n,r);t.name&&setSourceMapRange(o.body.statements[0],t.name);const a=findIndex(t.members,isClassThisAssignmentBlock)+1,s=t.members.slice(0,a),c=t.members.slice(a),l=i.createNodeArray([...s,o,...c]);return setTextRange(l,t.members),getOrCreateEmitNode(t=isClassDeclaration(t)?i.updateClassDeclaration(t,t.modifiers,t.name,t.typeParameters,t.heritageClauses,l):i.updateClassExpression(t,t.modifiers,t.name,t.typeParameters,t.heritageClauses,l)).assignedName=n,t}function finishTransformNamedEvaluation(e,t,n,r){if(r&&isStringLiteral(n)&&isEmptyStringLiteral(n))return t;const{factory:i}=e,o=skipOuterExpressions(t),a=isClassExpression(o)?cast(injectClassNamedEvaluationHelperBlockIfMissing(e,o,n),isClassExpression):e.getEmitHelperFactory().createSetFunctionNameHelper(o,n);return i.restoreOuterExpressions(t,a)}function transformNamedEvaluation(e,t,n,r){switch(t.kind){case 304:return function transformNamedEvaluationOfPropertyAssignment(e,t,n,r){const{factory:i}=e,{assignedName:o,name:a}=getAssignedNameOfPropertyName(e,t.name,r),s=finishTransformNamedEvaluation(e,t.initializer,o,n);return i.updatePropertyAssignment(t,a,s)}(e,t,n,r);case 305:return function transformNamedEvaluationOfShorthandAssignmentProperty(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):getAssignedNameOfIdentifier(i,t.name,t.objectAssignmentInitializer),a=finishTransformNamedEvaluation(e,t.objectAssignmentInitializer,o,n);return i.updateShorthandPropertyAssignment(t,t.name,a)}(e,t,n,r);case 261:return function transformNamedEvaluationOfVariableDeclaration(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):getAssignedNameOfIdentifier(i,t.name,t.initializer),a=finishTransformNamedEvaluation(e,t.initializer,o,n);return i.updateVariableDeclaration(t,t.name,t.exclamationToken,t.type,a)}(e,t,n,r);case 170:return function transformNamedEvaluationOfParameterDeclaration(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):getAssignedNameOfIdentifier(i,t.name,t.initializer),a=finishTransformNamedEvaluation(e,t.initializer,o,n);return i.updateParameterDeclaration(t,t.modifiers,t.dotDotDotToken,t.name,t.questionToken,t.type,a)}(e,t,n,r);case 209:return function transformNamedEvaluationOfBindingElement(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):getAssignedNameOfIdentifier(i,t.name,t.initializer),a=finishTransformNamedEvaluation(e,t.initializer,o,n);return i.updateBindingElement(t,t.dotDotDotToken,t.propertyName,t.name,a)}(e,t,n,r);case 173:return function transformNamedEvaluationOfPropertyDeclaration(e,t,n,r){const{factory:i}=e,{assignedName:o,name:a}=getAssignedNameOfPropertyName(e,t.name,r),s=finishTransformNamedEvaluation(e,t.initializer,o,n);return i.updatePropertyDeclaration(t,t.modifiers,a,t.questionToken??t.exclamationToken,t.type,s)}(e,t,n,r);case 227:return function transformNamedEvaluationOfAssignmentExpression(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):getAssignedNameOfIdentifier(i,t.left,t.right),a=finishTransformNamedEvaluation(e,t.right,o,n);return i.updateBinaryExpression(t,t.left,t.operatorToken,a)}(e,t,n,r);case 278:return function transformNamedEvaluationOfExportAssignment(e,t,n,r){const{factory:i}=e,o=void 0!==r?i.createStringLiteral(r):i.createStringLiteral(t.isExportEquals?"":"default"),a=finishTransformNamedEvaluation(e,t.expression,o,n);return i.updateExportAssignment(t,t.modifiers,a)}(e,t,n,r)}}var ga=(e=>(e[e.LiftRestriction=0]="LiftRestriction",e[e.All=1]="All",e))(ga||{});function processTaggedTemplateExpression(e,t,n,r,i,o){const a=visitNode(t.tag,n,isExpression);h.assert(a);const s=[void 0],c=[],l=[],d=t.template;if(0===o&&!hasInvalidEscape(d))return visitEachChild(t,n,e);const{factory:p}=e;if(isNoSubstitutionTemplateLiteral(d))c.push(createTemplateCooked(p,d)),l.push(getRawLiteral(p,d,r));else{c.push(createTemplateCooked(p,d.head)),l.push(getRawLiteral(p,d.head,r));for(const e of d.templateSpans)c.push(createTemplateCooked(p,e.literal)),l.push(getRawLiteral(p,e.literal,r)),s.push(h.checkDefined(visitNode(e.expression,n,isExpression)))}const u=e.getEmitHelperFactory().createTemplateObjectHelper(p.createArrayLiteralExpression(c),p.createArrayLiteralExpression(l));if(isExternalModule(r)){const e=p.createUniqueName("templateObject");i(e),s[0]=p.createLogicalOr(e,p.createAssignment(e,u))}else s[0]=u;return p.createCallExpression(a,void 0,s)}function createTemplateCooked(e,t){return 26656&t.templateFlags?e.createVoidZero():e.createStringLiteral(t.text)}function getRawLiteral(e,t,n){let r=t.rawText;if(void 0===r){h.assertIsDefined(n,"Template literal node is missing 'rawText' and does not have a source file. Possibly bad transform."),r=getSourceTextOfNodeFromSourceFile(n,t);const e=15===t.kind||18===t.kind;r=r.substring(1,r.length-(e?1:2))}return r=r.replace(/\r\n?/g,"\n"),setTextRange(e.createStringLiteral(r),t)}var ya=!1;function transformTypeScript(e){const{factory:t,getEmitHelperFactory:n,startLexicalEnvironment:r,resumeLexicalEnvironment:i,endLexicalEnvironment:o,hoistVariableDeclaration:a}=e,s=e.getEmitResolver(),c=e.getCompilerOptions(),l=zn(c),d=Vn(c),p=!!c.experimentalDecorators,u=c.emitDecoratorMetadata?createRuntimeTypeSerializer(e):void 0,m=e.onEmitNode,_=e.onSubstituteNode;let f,g,y,T,S;e.onEmitNode=function onEmitNode(e,t,n){const r=x,i=f;isSourceFile(t)&&(f=t);2&v&&function isTransformedModuleDeclaration(e){return 268===getOriginalNode(e).kind}(t)&&(x|=2);8&v&&function isTransformedEnumDeclaration(e){return 267===getOriginalNode(e).kind}(t)&&(x|=8);m(e,t,n),x=r,f=i},e.onSubstituteNode=function onSubstituteNode(e,n){if(n=_(e,n),1===e)return function substituteExpression(e){switch(e.kind){case 80:return function substituteExpressionIdentifier(e){return trySubstituteNamespaceExportedName(e)||e}(e);case 212:return function substitutePropertyAccessExpression(e){return substituteConstantValue(e)}(e);case 213:return function substituteElementAccessExpression(e){return substituteConstantValue(e)}(e)}return e}(n);if(isShorthandPropertyAssignment(n))return function substituteShorthandPropertyAssignment(e){if(2&v){const n=e.name,r=trySubstituteNamespaceExportedName(n);if(r){if(e.objectAssignmentInitializer){const i=t.createAssignment(r,e.objectAssignmentInitializer);return setTextRange(t.createPropertyAssignment(n,i),e)}return setTextRange(t.createPropertyAssignment(n,r),e)}}return e}(n);return n},e.enableSubstitution(212),e.enableSubstitution(213);let x,v=0;return function transformSourceFileOrBundle(e){if(309===e.kind)return function transformBundle(e){return t.createBundle(e.sourceFiles.map(transformSourceFile))}(e);return transformSourceFile(e)};function transformSourceFile(t){if(t.isDeclarationFile)return t;f=t;const n=saveStateAndInvoke(t,visitSourceFile);return addEmitHelpers(n,e.readEmitHelpers()),f=void 0,n}function saveStateAndInvoke(e,t){const n=T,r=S;!function onBeforeVisitNode(e){switch(e.kind){case 308:case 270:case 269:case 242:T=e,S=void 0;break;case 264:case 263:if(hasSyntacticModifier(e,128))break;e.name?recordEmittedDeclarationInScope(e):h.assert(264===e.kind||hasSyntacticModifier(e,2048))}}(e);const i=t(e);return T!==n&&(S=r),T=n,i}function visitor(e){return saveStateAndInvoke(e,visitorWorker)}function visitorWorker(e){return 1&e.transformFlags?visitTypeScript(e):e}function sourceElementVisitor(e){return saveStateAndInvoke(e,sourceElementVisitorWorker)}function sourceElementVisitorWorker(n){switch(n.kind){case 273:case 272:case 278:case 279:return function visitElidableStatement(n){if(function isElisionBlocked(e){const t=getParseTreeNode(e);if(t===e||isExportAssignment(e))return!1;if(!t||t.kind!==e.kind)return!0;switch(e.kind){case 273:if(h.assertNode(t,isImportDeclaration),e.importClause!==t.importClause)return!0;if(e.attributes!==t.attributes)return!0;break;case 272:if(h.assertNode(t,isImportEqualsDeclaration),e.name!==t.name)return!0;if(e.isTypeOnly!==t.isTypeOnly)return!0;if(e.moduleReference!==t.moduleReference&&(isEntityName(e.moduleReference)||isEntityName(t.moduleReference)))return!0;break;case 279:if(h.assertNode(t,isExportDeclaration),e.exportClause!==t.exportClause)return!0;if(e.attributes!==t.attributes)return!0}return!1}(n))return 1&n.transformFlags?visitEachChild(n,visitor,e):n;switch(n.kind){case 273:return function visitImportDeclaration(e){if(!e.importClause)return e;if(e.importClause.isTypeOnly)return;const n=visitNode(e.importClause,visitImportClause,isImportClause);return n?t.updateImportDeclaration(e,void 0,n,e.moduleSpecifier,e.attributes):void 0}(n);case 272:return visitImportEqualsDeclaration(n);case 278:return function visitExportAssignment(t){return c.verbatimModuleSyntax||s.isValueAliasDeclaration(t)?visitEachChild(t,visitor,e):void 0}(n);case 279:return function visitExportDeclaration(e){if(e.isTypeOnly)return;if(!e.exportClause||isNamespaceExport(e.exportClause))return t.updateExportDeclaration(e,e.modifiers,e.isTypeOnly,e.exportClause,e.moduleSpecifier,e.attributes);const n=!!c.verbatimModuleSyntax,r=visitNode(e.exportClause,e=>function visitNamedExportBindings(e,n){return isNamespaceExport(e)?function visitNamespaceExports(e){return t.updateNamespaceExport(e,h.checkDefined(visitNode(e.name,visitor,isIdentifier)))}(e):function visitNamedExports(e,n){const r=visitNodes2(e.elements,visitExportSpecifier,isExportSpecifier);return n||some(r)?t.updateNamedExports(e,r):void 0}(e,n)}(e,n),isNamedExportBindings);return r?t.updateExportDeclaration(e,void 0,e.isTypeOnly,r,e.moduleSpecifier,e.attributes):void 0}(n);default:h.fail("Unhandled ellided statement")}}(n);default:return visitorWorker(n)}}function namespaceElementVisitor(e){return saveStateAndInvoke(e,namespaceElementVisitorWorker)}function namespaceElementVisitorWorker(e){if(279!==e.kind&&273!==e.kind&&274!==e.kind&&(272!==e.kind||284!==e.moduleReference.kind))return 1&e.transformFlags||hasSyntacticModifier(e,32)?visitTypeScript(e):e}function getClassElementVisitor(n){return r=>saveStateAndInvoke(r,r=>function classElementVisitorWorker(n,r){switch(n.kind){case 177:return function visitConstructor(n){if(!shouldEmitFunctionLikeDeclaration(n))return;return t.updateConstructorDeclaration(n,void 0,visitParameterList(n.parameters,visitor,e),function transformConstructorBody(n,r){const a=r&&filter(r.parameters,e=>isParameterPropertyDeclaration(e,r));if(!some(a))return visitFunctionBody(n,visitor,e);let s=[];i();const c=t.copyPrologue(n.statements,s,!1,visitor),l=findSuperStatementIndexPath(n.statements,c),d=mapDefined(a,transformParameterWithPropertyAssignment);l.length?transformConstructorBodyWorker(s,n.statements,c,l,0,d):(addRange(s,d),addRange(s,visitNodes2(n.statements,visitor,isStatement,c)));s=t.mergeLexicalEnvironment(s,o());const p=t.createBlock(setTextRange(t.createNodeArray(s),n.statements),!0);return setTextRange(p,n),setOriginalNode(p,n),p}(n.body,n))}(n);case 173:return function visitPropertyDeclaration(e,n){const r=33554432&e.flags||hasSyntacticModifier(e,64);if(r&&(!p||!hasDecorators(e)))return;let i=isClassLike(n)?visitNodes2(e.modifiers,r?modifierElidingVisitor:visitor,isModifierLike):visitNodes2(e.modifiers,decoratorElidingVisitor,isModifierLike);if(i=injectClassElementTypeMetadata(i,e,n),r)return t.updatePropertyDeclaration(e,concatenate(i,t.createModifiersFromModifierFlags(128)),h.checkDefined(visitNode(e.name,visitor,isPropertyName)),void 0,void 0,void 0);return t.updatePropertyDeclaration(e,i,visitPropertyNameOfClassElement(e),void 0,void 0,visitNode(e.initializer,visitor,isExpression))}(n,r);case 178:return visitGetAccessor(n,r);case 179:return visitSetAccessor(n,r);case 175:return visitMethodDeclaration(n,r);case 176:return visitEachChild(n,visitor,e);case 241:return n;case 182:return;default:return h.failBadSyntaxKind(n)}}(r,n))}function getObjectLiteralElementVisitor(e){return t=>saveStateAndInvoke(t,t=>function objectLiteralElementVisitorWorker(e,t){switch(e.kind){case 304:case 305:case 306:return visitor(e);case 178:return visitGetAccessor(e,t);case 179:return visitSetAccessor(e,t);case 175:return visitMethodDeclaration(e,t);default:return h.failBadSyntaxKind(e)}}(t,e))}function decoratorElidingVisitor(e){return isDecorator(e)?void 0:visitor(e)}function modifierElidingVisitor(e){return isModifier(e)?void 0:visitor(e)}function modifierVisitor(e){if(!isDecorator(e)&&!(28895&modifierToFlag(e.kind)||g&&95===e.kind))return e}function visitTypeScript(n){if(isStatement(n)&&hasSyntacticModifier(n,128))return t.createNotEmittedStatement(n);switch(n.kind){case 95:case 90:return g?void 0:n;case 125:case 123:case 124:case 128:case 164:case 87:case 138:case 148:case 103:case 147:case 189:case 190:case 191:case 192:case 188:case 183:case 169:case 133:case 159:case 136:case 154:case 150:case 146:case 116:case 155:case 186:case 185:case 187:case 184:case 193:case 194:case 195:case 197:case 198:case 199:case 200:case 201:case 202:case 182:case 271:return;case 266:case 265:return t.createNotEmittedStatement(n);case 264:return function visitClassDeclaration(n){const r=function getClassFacts(e){let t=0;some(getProperties(e,!0,!0))&&(t|=1);const n=getEffectiveBaseTypeNode(e);n&&106!==skipOuterExpressions(n.expression).kind&&(t|=64);classOrConstructorParameterIsDecorated(p,e)&&(t|=2);childIsDecorated(p,e)&&(t|=4);isExportOfNamespace(e)?t|=8:!function isDefaultExternalModuleExport(e){return isExternalModuleExport(e)&&hasSyntacticModifier(e,2048)}(e)?isNamedExternalModuleExport(e)&&(t|=16):t|=32;return t}(n),i=l<=1&&!!(7&r);if(!function isClassLikeDeclarationWithTypeScriptSyntax(e){return hasDecorators(e)||some(e.typeParameters)||some(e.heritageClauses,hasTypeScriptClassSyntax)||some(e.members,hasTypeScriptClassSyntax)}(n)&&!classOrConstructorParameterIsDecorated(p,n)&&!isExportOfNamespace(n))return t.updateClassDeclaration(n,visitNodes2(n.modifiers,modifierVisitor,isModifier),n.name,void 0,visitNodes2(n.heritageClauses,visitor,isHeritageClause),visitNodes2(n.members,getClassElementVisitor(n),isClassElement));i&&e.startLexicalEnvironment();const o=i||8&r;let a=visitNodes2(n.modifiers,o?modifierElidingVisitor:visitor,isModifierLike);2&r&&(a=injectClassTypeMetadata(a,n));const s=o&&!n.name||4&r||1&r,c=s?n.name??t.getGeneratedNameForNode(n):n.name,d=t.updateClassDeclaration(n,a,c,void 0,visitNodes2(n.heritageClauses,visitor,isHeritageClause),transformClassMembers(n));let u,m=getEmitFlags(n);1&r&&(m|=64);if(setEmitFlags(d,m),i){const r=[d],i=createTokenRange(skipTrivia(f.text,n.members.end),20),o=t.getInternalName(n),a=t.createPartiallyEmittedExpression(o);setTextRangeEnd(a,i.end),setEmitFlags(a,3072);const s=t.createReturnStatement(a);setTextRangePos(s,i.pos),setEmitFlags(s,3840),r.push(s),insertStatementsAfterStandardPrologue(r,e.endLexicalEnvironment());const c=t.createImmediatelyInvokedArrowFunction(r);setInternalEmitFlags(c,1);const l=t.createVariableDeclaration(t.getLocalName(n,!1,!1),void 0,void 0,c);setOriginalNode(l,n);const p=t.createVariableStatement(void 0,t.createVariableDeclarationList([l],1));setOriginalNode(p,n),setCommentRange(p,n),setSourceMapRange(p,moveRangePastDecorators(n)),startOnNewLine(p),u=p}else u=d;if(o){if(8&r)return[u,createExportMemberAssignmentStatement(n)];if(32&r)return[u,t.createExportDefault(t.getLocalName(n,!1,!0))];if(16&r)return[u,t.createExternalModuleExport(t.getDeclarationName(n,!1,!0))]}return u}(n);case 232:return function visitClassExpression(e){let n=visitNodes2(e.modifiers,modifierElidingVisitor,isModifierLike);classOrConstructorParameterIsDecorated(p,e)&&(n=injectClassTypeMetadata(n,e));return t.updateClassExpression(e,n,e.name,void 0,visitNodes2(e.heritageClauses,visitor,isHeritageClause),transformClassMembers(e))}(n);case 299:return function visitHeritageClause(t){if(119===t.token)return;return visitEachChild(t,visitor,e)}(n);case 234:return function visitExpressionWithTypeArguments(e){return t.updateExpressionWithTypeArguments(e,h.checkDefined(visitNode(e.expression,visitor,isLeftHandSideExpression)),void 0)}(n);case 211:return function visitObjectLiteralExpression(e){return t.updateObjectLiteralExpression(e,visitNodes2(e.properties,getObjectLiteralElementVisitor(e),isObjectLiteralElementLike))}(n);case 177:case 173:case 175:case 178:case 179:case 176:return h.fail("Class and object literal elements must be visited with their respective visitors");case 263:return function visitFunctionDeclaration(n){if(!shouldEmitFunctionLikeDeclaration(n))return t.createNotEmittedStatement(n);const r=t.updateFunctionDeclaration(n,visitNodes2(n.modifiers,modifierVisitor,isModifier),n.asteriskToken,n.name,void 0,visitParameterList(n.parameters,visitor,e),void 0,visitFunctionBody(n.body,visitor,e)||t.createBlock([]));if(isExportOfNamespace(n)){const e=[r];return function addExportMemberAssignment(e,t){e.push(createExportMemberAssignmentStatement(t))}(e,n),e}return r}(n);case 219:return function visitFunctionExpression(n){if(!shouldEmitFunctionLikeDeclaration(n))return t.createOmittedExpression();const r=t.updateFunctionExpression(n,visitNodes2(n.modifiers,modifierVisitor,isModifier),n.asteriskToken,n.name,void 0,visitParameterList(n.parameters,visitor,e),void 0,visitFunctionBody(n.body,visitor,e)||t.createBlock([]));return r}(n);case 220:return function visitArrowFunction(n){const r=t.updateArrowFunction(n,visitNodes2(n.modifiers,modifierVisitor,isModifier),void 0,visitParameterList(n.parameters,visitor,e),void 0,n.equalsGreaterThanToken,visitFunctionBody(n.body,visitor,e));return r}(n);case 170:return function visitParameter(e){if(parameterIsThisKeyword(e))return;const n=t.updateParameterDeclaration(e,visitNodes2(e.modifiers,e=>isDecorator(e)?visitor(e):void 0,isModifierLike),e.dotDotDotToken,h.checkDefined(visitNode(e.name,visitor,isBindingName)),void 0,void 0,visitNode(e.initializer,visitor,isExpression));n!==e&&(setCommentRange(n,e),setTextRange(n,moveRangePastModifiers(e)),setSourceMapRange(n,moveRangePastModifiers(e)),setEmitFlags(n.name,64));return n}(n);case 218:return function visitParenthesizedExpression(n){const r=skipOuterExpressions(n.expression,-55);if(isAssertionExpression(r)||isSatisfiesExpression(r)){const e=visitNode(n.expression,visitor,isExpression);return h.assert(e),t.createPartiallyEmittedExpression(e,n)}return visitEachChild(n,visitor,e)}(n);case 217:case 235:return function visitAssertionExpression(e){const n=visitNode(e.expression,visitor,isExpression);return h.assert(n),t.createPartiallyEmittedExpression(n,e)}(n);case 239:return function visitSatisfiesExpression(e){const n=visitNode(e.expression,visitor,isExpression);return h.assert(n),t.createPartiallyEmittedExpression(n,e)}(n);case 214:return function visitCallExpression(e){return t.updateCallExpression(e,h.checkDefined(visitNode(e.expression,visitor,isExpression)),void 0,visitNodes2(e.arguments,visitor,isExpression))}(n);case 215:return function visitNewExpression(e){return t.updateNewExpression(e,h.checkDefined(visitNode(e.expression,visitor,isExpression)),void 0,visitNodes2(e.arguments,visitor,isExpression))}(n);case 216:return function visitTaggedTemplateExpression(e){return t.updateTaggedTemplateExpression(e,h.checkDefined(visitNode(e.tag,visitor,isExpression)),void 0,h.checkDefined(visitNode(e.template,visitor,isTemplateLiteral)))}(n);case 236:return function visitNonNullExpression(e){const n=visitNode(e.expression,visitor,isLeftHandSideExpression);return h.assert(n),t.createPartiallyEmittedExpression(n,e)}(n);case 267:return function visitEnumDeclaration(e){if(!function shouldEmitEnumDeclaration(e){return!isEnumConst(e)||er(c)}(e))return t.createNotEmittedStatement(e);const n=[];let i=4;const a=addVarForEnumOrModuleDeclaration(n,e);a&&(4===d&&T===f||(i|=1024));const s=getNamespaceParameterName(e),l=getNamespaceContainerName(e),p=isExportOfNamespace(e)?t.getExternalModuleOrNamespaceExportName(y,e,!1,!0):t.getDeclarationName(e,!1,!0);let u=t.createLogicalOr(p,t.createAssignment(p,t.createObjectLiteralExpression()));if(isExportOfNamespace(e)){const n=t.getLocalName(e,!1,!0);u=t.createAssignment(n,u)}const m=t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,s)],void 0,function transformEnumBody(e,n){const i=y;y=n;const a=[];r();const s=map(e.members,transformEnumMember);return insertStatementsAfterStandardPrologue(a,o()),addRange(a,s),y=i,t.createBlock(setTextRange(t.createNodeArray(a),e.members),!0)}(e,l)),void 0,[u]));setOriginalNode(m,e),a&&(setSyntheticLeadingComments(m,void 0),setSyntheticTrailingComments(m,void 0));return setTextRange(m,e),addEmitFlags(m,i),n.push(m),n}(n);case 244:return function visitVariableStatement(n){if(isExportOfNamespace(n)){const e=getInitializedVariables(n.declarationList);if(0===e.length)return;return setTextRange(t.createExpressionStatement(t.inlineExpressions(map(e,transformInitializedVariable))),n)}return visitEachChild(n,visitor,e)}(n);case 261:return function visitVariableDeclaration(e){const n=t.updateVariableDeclaration(e,h.checkDefined(visitNode(e.name,visitor,isBindingName)),void 0,void 0,visitNode(e.initializer,visitor,isExpression));e.type&&setTypeNode(n.name,e.type);return n}(n);case 268:return visitModuleDeclaration(n);case 272:return visitImportEqualsDeclaration(n);case 286:return function visitJsxSelfClosingElement(e){return t.updateJsxSelfClosingElement(e,h.checkDefined(visitNode(e.tagName,visitor,isJsxTagNameExpression)),void 0,h.checkDefined(visitNode(e.attributes,visitor,isJsxAttributes)))}(n);case 287:return function visitJsxJsxOpeningElement(e){return t.updateJsxOpeningElement(e,h.checkDefined(visitNode(e.tagName,visitor,isJsxTagNameExpression)),void 0,h.checkDefined(visitNode(e.attributes,visitor,isJsxAttributes)))}(n);default:return visitEachChild(n,visitor,e)}}function visitSourceFile(n){const r=getStrictOptionValue(c,"alwaysStrict")&&!(isExternalModule(n)&&d>=5)&&!isJsonSourceFile(n);return t.updateSourceFile(n,visitLexicalEnvironment(n.statements,sourceElementVisitor,e,0,r))}function hasTypeScriptClassSyntax(e){return!!(8192&e.transformFlags)}function transformClassMembers(e){const n=visitNodes2(e.members,getClassElementVisitor(e),isClassElement);let r;const i=getFirstConstructorWithBody(e),o=i&&filter(i.parameters,e=>isParameterPropertyDeclaration(e,i));if(o)for(const e of o){const n=t.createPropertyDeclaration(void 0,e.name,void 0,void 0,void 0);setOriginalNode(n,e),r=append(r,n)}return r?(r=addRange(r,n),setTextRange(t.createNodeArray(r),e.members)):n}function injectClassTypeMetadata(e,n){const r=getTypeMetadata(n,n);if(some(r)){const n=[];addRange(n,takeWhile(e,isExportOrDefaultModifier)),addRange(n,filter(e,isDecorator)),addRange(n,r),addRange(n,filter(skipWhile(e,isExportOrDefaultModifier),isModifier)),e=setTextRange(t.createNodeArray(n),e)}return e}function injectClassElementTypeMetadata(e,n,r){if(isClassLike(r)&&classElementOrClassElementParameterIsDecorated(p,n,r)){const i=getTypeMetadata(n,r);if(some(i)){const n=[];addRange(n,filter(e,isDecorator)),addRange(n,i),addRange(n,filter(e,isModifier)),e=setTextRange(t.createNodeArray(n),e)}}return e}function getTypeMetadata(e,r){if(p)return ya?function getNewTypeMetadata(e,r){if(u){let i;if(shouldAddTypeMetadata(e)){i=append(i,t.createPropertyAssignment("type",t.createArrowFunction(void 0,void 0,[],void 0,t.createToken(39),u.serializeTypeOfNode({currentLexicalScope:T,currentNameScope:r},e,r))))}if(shouldAddParamTypesMetadata(e)){i=append(i,t.createPropertyAssignment("paramTypes",t.createArrowFunction(void 0,void 0,[],void 0,t.createToken(39),u.serializeParameterTypesOfNode({currentLexicalScope:T,currentNameScope:r},e,r))))}if(shouldAddReturnTypeMetadata(e)){i=append(i,t.createPropertyAssignment("returnType",t.createArrowFunction(void 0,void 0,[],void 0,t.createToken(39),u.serializeReturnTypeOfNode({currentLexicalScope:T,currentNameScope:r},e))))}if(i){const e=n().createMetadataHelper("design:typeinfo",t.createObjectLiteralExpression(i,!0));return[t.createDecorator(e)]}}}(e,r):function getOldTypeMetadata(e,r){if(u){let i;if(shouldAddTypeMetadata(e)){const o=n().createMetadataHelper("design:type",u.serializeTypeOfNode({currentLexicalScope:T,currentNameScope:r},e,r));i=append(i,t.createDecorator(o))}if(shouldAddParamTypesMetadata(e)){const o=n().createMetadataHelper("design:paramtypes",u.serializeParameterTypesOfNode({currentLexicalScope:T,currentNameScope:r},e,r));i=append(i,t.createDecorator(o))}if(shouldAddReturnTypeMetadata(e)){const o=n().createMetadataHelper("design:returntype",u.serializeReturnTypeOfNode({currentLexicalScope:T,currentNameScope:r},e));i=append(i,t.createDecorator(o))}return i}}(e,r)}function shouldAddTypeMetadata(e){const t=e.kind;return 175===t||178===t||179===t||173===t}function shouldAddReturnTypeMetadata(e){return 175===e.kind}function shouldAddParamTypesMetadata(e){switch(e.kind){case 264:case 232:return void 0!==getFirstConstructorWithBody(e);case 175:case 178:case 179:return!0}return!1}function visitPropertyNameOfClassElement(e){const n=e.name;if(p&&isComputedPropertyName(n)&&hasDecorators(e)){const e=visitNode(n.expression,visitor,isExpression);h.assert(e);if(!isSimpleInlineableExpression(skipPartiallyEmittedExpressions(e))){const r=t.getGeneratedNameForNode(n);return a(r),t.updateComputedPropertyName(n,t.createAssignment(r,e))}}return h.checkDefined(visitNode(n,visitor,isPropertyName))}function shouldEmitFunctionLikeDeclaration(e){return!nodeIsMissing(e.body)}function transformConstructorBodyWorker(e,n,r,i,o,a){const s=i[o],c=n[s];if(addRange(e,visitNodes2(n,visitor,isStatement,r,s-r)),isTryStatement(c)){const n=[];transformConstructorBodyWorker(n,c.tryBlock.statements,0,i,o+1,a);setTextRange(t.createNodeArray(n),c.tryBlock.statements),e.push(t.updateTryStatement(c,t.updateBlock(c.tryBlock,n),visitNode(c.catchClause,visitor,isCatchClause),visitNode(c.finallyBlock,visitor,isBlock)))}else addRange(e,visitNodes2(n,visitor,isStatement,s,1)),addRange(e,a);addRange(e,visitNodes2(n,visitor,isStatement,s+1))}function transformParameterWithPropertyAssignment(e){const n=e.name;if(!isIdentifier(n))return;const r=setParent(setTextRange(t.cloneNode(n),n),n.parent);setEmitFlags(r,3168);const i=setParent(setTextRange(t.cloneNode(n),n),n.parent);return setEmitFlags(i,3072),startOnNewLine(removeAllComments(setTextRange(setOriginalNode(t.createExpressionStatement(t.createAssignment(setTextRange(t.createPropertyAccessExpression(t.createThis(),r),e.name),i)),e),moveRangePos(e,-1))))}function visitMethodDeclaration(n,r){if(!(1&n.transformFlags))return n;if(!shouldEmitFunctionLikeDeclaration(n))return;let i=isClassLike(r)?visitNodes2(n.modifiers,visitor,isModifierLike):visitNodes2(n.modifiers,decoratorElidingVisitor,isModifierLike);return i=injectClassElementTypeMetadata(i,n,r),t.updateMethodDeclaration(n,i,n.asteriskToken,visitPropertyNameOfClassElement(n),void 0,void 0,visitParameterList(n.parameters,visitor,e),void 0,visitFunctionBody(n.body,visitor,e))}function shouldEmitAccessorDeclaration(e){return!(nodeIsMissing(e.body)&&hasSyntacticModifier(e,64))}function visitGetAccessor(n,r){if(!(1&n.transformFlags))return n;if(!shouldEmitAccessorDeclaration(n))return;let i=isClassLike(r)?visitNodes2(n.modifiers,visitor,isModifierLike):visitNodes2(n.modifiers,decoratorElidingVisitor,isModifierLike);return i=injectClassElementTypeMetadata(i,n,r),t.updateGetAccessorDeclaration(n,i,visitPropertyNameOfClassElement(n),visitParameterList(n.parameters,visitor,e),void 0,visitFunctionBody(n.body,visitor,e)||t.createBlock([]))}function visitSetAccessor(n,r){if(!(1&n.transformFlags))return n;if(!shouldEmitAccessorDeclaration(n))return;let i=isClassLike(r)?visitNodes2(n.modifiers,visitor,isModifierLike):visitNodes2(n.modifiers,decoratorElidingVisitor,isModifierLike);return i=injectClassElementTypeMetadata(i,n,r),t.updateSetAccessorDeclaration(n,i,visitPropertyNameOfClassElement(n),visitParameterList(n.parameters,visitor,e),visitFunctionBody(n.body,visitor,e)||t.createBlock([]))}function transformInitializedVariable(n){const r=n.name;return isBindingPattern(r)?flattenDestructuringAssignment(n,visitor,e,0,!1,createNamespaceExportExpression):setTextRange(t.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(r),h.checkDefined(visitNode(n.initializer,visitor,isExpression))),n)}function transformEnumMember(n){const r=function getExpressionForPropertyName(e,n){const r=e.name;return isPrivateIdentifier(r)?t.createIdentifier(""):isComputedPropertyName(r)?n&&!isSimpleInlineableExpression(r.expression)?t.getGeneratedNameForNode(r):r.expression:isIdentifier(r)?t.createStringLiteral(idText(r)):t.cloneNode(r)}(n,!1),i=s.getEnumMemberValue(n),o=function transformEnumMemberDeclarationValue(n,r){return void 0!==r?"string"==typeof r?t.createStringLiteral(r):r<0?t.createPrefixUnaryExpression(41,t.createNumericLiteral(-r)):t.createNumericLiteral(r):(function enableSubstitutionForNonQualifiedEnumMembers(){8&v||(v|=8,e.enableSubstitution(80))}(),n.initializer?h.checkDefined(visitNode(n.initializer,visitor,isExpression)):t.createVoidZero())}(n,null==i?void 0:i.value),a=t.createAssignment(t.createElementAccessExpression(y,r),o),c="string"==typeof(null==i?void 0:i.value)||(null==i?void 0:i.isSyntacticallyString)?a:t.createAssignment(t.createElementAccessExpression(y,a),r);return setTextRange(t.createExpressionStatement(setTextRange(c,n)),n)}function recordEmittedDeclarationInScope(e){S||(S=new Map);const t=declaredNameInScope(e);S.has(t)||S.set(t,e)}function declaredNameInScope(e){return h.assertNode(e.name,isIdentifier),e.name.escapedText}function addVarForEnumOrModuleDeclaration(e,n){const r=t.createVariableDeclaration(t.getLocalName(n,!1,!0)),i=308===T.kind?0:1,o=t.createVariableStatement(visitNodes2(n.modifiers,modifierVisitor,isModifier),t.createVariableDeclarationList([r],i));return setOriginalNode(r,n),setSyntheticLeadingComments(r,void 0),setSyntheticTrailingComments(r,void 0),setOriginalNode(o,n),recordEmittedDeclarationInScope(n),!!function isFirstEmittedDeclarationInScope(e){if(S){const t=declaredNameInScope(e);return S.get(t)===e}return!0}(n)&&(267===n.kind?setSourceMapRange(o.declarationList,n):setSourceMapRange(o,n),setCommentRange(o,n),addEmitFlags(o,2048),e.push(o),!0)}function visitModuleDeclaration(n){if(!function shouldEmitModuleDeclaration(e){const t=getParseTreeNode(e,isModuleDeclaration);return!t||isInstantiatedModule(t,er(c))}(n))return t.createNotEmittedStatement(n);h.assertNode(n.name,isIdentifier,"A TypeScript namespace should have an Identifier name."),function enableSubstitutionForNamespaceExports(){2&v||(v|=2,e.enableSubstitution(80),e.enableSubstitution(305),e.enableEmitNotification(268))}();const i=[];let a=4;const s=addVarForEnumOrModuleDeclaration(i,n);s&&(4===d&&T===f||(a|=1024));const l=getNamespaceParameterName(n),p=getNamespaceContainerName(n),u=isExportOfNamespace(n)?t.getExternalModuleOrNamespaceExportName(y,n,!1,!0):t.getDeclarationName(n,!1,!0);let m=t.createLogicalOr(u,t.createAssignment(u,t.createObjectLiteralExpression()));if(isExportOfNamespace(n)){const e=t.getLocalName(n,!1,!0);m=t.createAssignment(e,m)}const _=t.createExpressionStatement(t.createCallExpression(t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,l)],void 0,function transformModuleBody(e,n){const i=y,a=g,s=S;y=n,g=e,S=void 0;const c=[];let l,d;if(r(),e.body)if(269===e.body.kind)saveStateAndInvoke(e.body,e=>addRange(c,visitNodes2(e.statements,namespaceElementVisitor,isStatement))),l=e.body.statements,d=e.body;else{const t=visitModuleDeclaration(e.body);t&&(isArray(t)?addRange(c,t):c.push(t));l=moveRangePos(getInnerMostModuleDeclarationFromDottedModule(e).body.statements,-1)}insertStatementsAfterStandardPrologue(c,o()),y=i,g=a,S=s;const p=t.createBlock(setTextRange(t.createNodeArray(c),l),!0);setTextRange(p,d),e.body&&269===e.body.kind||setEmitFlags(p,3072|getEmitFlags(p));return p}(n,p)),void 0,[m]));return setOriginalNode(_,n),s&&(setSyntheticLeadingComments(_,void 0),setSyntheticTrailingComments(_,void 0)),setTextRange(_,n),addEmitFlags(_,a),i.push(_),i}function getInnerMostModuleDeclarationFromDottedModule(e){if(268===e.body.kind){return getInnerMostModuleDeclarationFromDottedModule(e.body)||e.body}}function visitImportClause(e){h.assert(156!==e.phaseModifier);const n=shouldEmitAliasDeclaration(e)?e.name:void 0,r=visitNode(e.namedBindings,visitNamedImportBindings,isNamedImportBindings);return n||r?t.updateImportClause(e,e.phaseModifier,n,r):void 0}function visitNamedImportBindings(e){if(275===e.kind)return shouldEmitAliasDeclaration(e)?e:void 0;{const n=c.verbatimModuleSyntax,r=visitNodes2(e.elements,visitImportSpecifier,isImportSpecifier);return n||some(r)?t.updateNamedImports(e,r):void 0}}function visitImportSpecifier(e){return!e.isTypeOnly&&shouldEmitAliasDeclaration(e)?e:void 0}function visitExportSpecifier(e){return e.isTypeOnly||!c.verbatimModuleSyntax&&!s.isValueAliasDeclaration(e)?void 0:e}function visitImportEqualsDeclaration(n){if(n.isTypeOnly)return;if(isExternalModuleImportEqualsDeclaration(n)){if(!shouldEmitAliasDeclaration(n))return;return visitEachChild(n,visitor,e)}if(!function shouldEmitImportEqualsDeclaration(e){return shouldEmitAliasDeclaration(e)||!isExternalModule(f)&&s.isTopLevelValueImportEqualsWithEntityName(e)}(n))return;const r=createExpressionFromEntityName(t,n.moduleReference);return setEmitFlags(r,7168),isNamedExternalModuleExport(n)||!isExportOfNamespace(n)?setOriginalNode(setTextRange(t.createVariableStatement(visitNodes2(n.modifiers,modifierVisitor,isModifier),t.createVariableDeclarationList([setOriginalNode(t.createVariableDeclaration(n.name,void 0,void 0,r),n)])),n),n):setOriginalNode(function createNamespaceExport(e,n,r){return setTextRange(t.createExpressionStatement(t.createAssignment(t.getNamespaceMemberName(y,e,!1,!0),n)),r)}(n.name,r,n),n)}function isExportOfNamespace(e){return void 0!==g&&hasSyntacticModifier(e,32)}function isExternalModuleExport(e){return void 0===g&&hasSyntacticModifier(e,32)}function isNamedExternalModuleExport(e){return isExternalModuleExport(e)&&!hasSyntacticModifier(e,2048)}function createExportMemberAssignmentStatement(e){const n=t.createAssignment(t.getExternalModuleOrNamespaceExportName(y,e,!1,!0),t.getLocalName(e));setSourceMapRange(n,createRange(e.name?e.name.pos:e.pos,e.end));const r=t.createExpressionStatement(n);return setSourceMapRange(r,createRange(-1,e.end)),r}function createNamespaceExportExpression(e,n,r){return setTextRange(t.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(e),n),r)}function getNamespaceMemberNameWithSourceMapsAndWithoutComments(e){return t.getNamespaceMemberName(y,e,!1,!0)}function getNamespaceParameterName(e){const n=t.getGeneratedNameForNode(e);return setSourceMapRange(n,e.name),n}function getNamespaceContainerName(e){return t.getGeneratedNameForNode(e)}function trySubstituteNamespaceExportedName(e){if(v&x&&!isGeneratedIdentifier(e)&&!isLocalName(e)){const n=s.getReferencedExportContainer(e,!1);if(n&&308!==n.kind){if(2&x&&268===n.kind||8&x&&267===n.kind)return setTextRange(t.createPropertyAccessExpression(t.getGeneratedNameForNode(n),e),e)}}}function substituteConstantValue(e){const n=function tryGetConstEnumValue(e){if(Kn(c))return;return isPropertyAccessExpression(e)||isElementAccessExpression(e)?s.getConstantValue(e):void 0}(e);if(void 0!==n){setConstantValue(e,n);const r="string"==typeof n?t.createStringLiteral(n):n<0?t.createPrefixUnaryExpression(41,t.createNumericLiteral(-n)):t.createNumericLiteral(n);if(!c.removeComments){addSyntheticTrailingComment(r,3,` ${function safeMultiLineComment(e){return e.replace(/\*\//g,"*_/")}(getTextOfNode(getOriginalNode(e,isAccessExpression)))} `)}return r}return e}function shouldEmitAliasDeclaration(e){return c.verbatimModuleSyntax||isInJSFile(e)||s.isReferencedAliasDeclaration(e)}}function transformClassFields(e){const{factory:t,getEmitHelperFactory:n,hoistVariableDeclaration:r,endLexicalEnvironment:i,startLexicalEnvironment:o,resumeLexicalEnvironment:a,addBlockScopedVariable:s}=e,c=e.getEmitResolver(),l=e.getCompilerOptions(),d=zn(l),p=ir(l),u=!!l.experimentalDecorators,m=!p,_=p&&d<9,f=m||_,g=d<9,y=d<99?-1:p?0:3,T=d<9,S=T&&d>=2,x=f||g||-1===y,v=e.onSubstituteNode;e.onSubstituteNode=function onSubstituteNode(e,n){if(n=v(e,n),1===e)return function substituteExpression(e){switch(e.kind){case 80:return function substituteExpressionIdentifier(e){return function trySubstituteClassAlias(e){if(1&P&&c.hasNodeCheckFlag(e,536870912)){const n=c.getReferencedValueDeclaration(e);if(n){const r=C[n.id];if(r){const n=t.cloneNode(r);return setSourceMapRange(n,e),setCommentRange(n,e),n}}}return}(e)||e}(e);case 110:return function substituteThisExpression(e){if(2&P&&(null==k?void 0:k.data)&&!I.has(e)){const{facts:n,classConstructor:r,classThis:i}=k.data,o=w?i??r:r;if(o)return setTextRange(setOriginalNode(t.cloneNode(o),e),e);if(1&n&&u)return t.createParenthesizedExpression(t.createVoidZero())}return e}(e)}return e}(n);return n};const b=e.onEmitNode;e.onEmitNode=function onEmitNode(e,t,n){const r=getOriginalNode(t),i=D.get(r);if(i){const o=k,a=L;return k=i,L=w,w=!(isClassStaticBlockDeclaration(r)&&32&getInternalEmitFlags(r)),b(e,t,n),w=L,L=a,void(k=o)}switch(t.kind){case 219:if(isArrowFunction(r)||524288&getEmitFlags(t))break;case 263:case 177:case 178:case 179:case 175:case 173:{const r=k,i=L;return k=void 0,L=w,w=!1,b(e,t,n),w=L,L=i,void(k=r)}case 168:{const r=k,i=w;return k=null==k?void 0:k.previous,w=L,b(e,t,n),w=i,void(k=r)}}b(e,t,n)};let C,E,N,k,F=!1,P=0;const D=new Map,I=new Set;let A,O,w=!1,L=!1;return chainBundle(e,function transformSourceFile(t){if(t.isDeclarationFile)return t;if(k=void 0,F=!!(32&getInternalEmitFlags(t)),!x&&!F)return t;const n=visitEachChild(t,visitor,e);return addEmitHelpers(n,e.readEmitHelpers()),n});function modifierVisitor(e){return 129===e.kind?shouldTransformAutoAccessorsInCurrentClass()?void 0:e:tryCast(e,isModifier)}function visitor(n){if(!(16777216&n.transformFlags||134234112&n.transformFlags))return n;switch(n.kind){case 264:return function visitClassDeclaration(e){return visitInNewClassLexicalEnvironment(e,visitClassDeclarationInNewClassLexicalEnvironment)}(n);case 232:return function visitClassExpression(e){return visitInNewClassLexicalEnvironment(e,visitClassExpressionInNewClassLexicalEnvironment)}(n);case 176:case 173:return h.fail("Use `classElementVisitor` instead.");case 304:return function visitPropertyAssignment(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t));return visitEachChild(t,visitor,e)}(n);case 244:return function visitVariableStatement(t){const n=N;N=[];const r=visitEachChild(t,visitor,e),i=some(N)?[r,...N]:r;return N=n,i}(n);case 261:return function visitVariableDeclaration(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t));return visitEachChild(t,visitor,e)}(n);case 170:return function visitParameterDeclaration(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t));return visitEachChild(t,visitor,e)}(n);case 209:return function visitBindingElement(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t));return visitEachChild(t,visitor,e)}(n);case 278:return function visitExportAssignment(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,!0,t.isExportEquals?"":"default"));return visitEachChild(t,visitor,e)}(n);case 81:return function visitPrivateIdentifier(e){if(!g)return e;if(isStatement(e.parent))return e;return setOriginalNode(t.createIdentifier(""),e)}(n);case 212:return function visitPropertyAccessExpression(n){if(isPrivateIdentifier(n.name)){const e=accessPrivateIdentifier2(n.name);if(e)return setTextRange(setOriginalNode(createPrivateIdentifierAccess(e,n.expression),n),n)}if(S&&O&&isSuperProperty(n)&&isIdentifier(n.name)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==k?void 0:k.data)){const{classConstructor:e,superClassReference:r,facts:i}=k.data;if(1&i)return visitInvalidSuperProperty(n);if(e&&r){const i=t.createReflectGetCall(r,t.createStringLiteralFromNode(n.name),e);return setOriginalNode(i,n.expression),setTextRange(i,n.expression),i}}return visitEachChild(n,visitor,e)}(n);case 213:return function visitElementAccessExpression(n){if(S&&O&&isSuperProperty(n)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==k?void 0:k.data)){const{classConstructor:e,superClassReference:r,facts:i}=k.data;if(1&i)return visitInvalidSuperProperty(n);if(e&&r){const i=t.createReflectGetCall(r,visitNode(n.argumentExpression,visitor,isExpression),e);return setOriginalNode(i,n.expression),setTextRange(i,n.expression),i}}return visitEachChild(n,visitor,e)}(n);case 225:case 226:return visitPreOrPostfixUnaryExpression(n,!1);case 227:return visitBinaryExpression(n,!1);case 218:return visitParenthesizedExpression(n,!1);case 214:return function visitCallExpression(n){var i;if(isPrivateIdentifierPropertyAccessExpression(n.expression)&&accessPrivateIdentifier2(n.expression.name)){const{thisArg:e,target:i}=t.createCallBinding(n.expression,r,d);return isCallChain(n)?t.updateCallChain(n,t.createPropertyAccessChain(visitNode(i,visitor,isExpression),n.questionDotToken,"call"),void 0,void 0,[visitNode(e,visitor,isExpression),...visitNodes2(n.arguments,visitor,isExpression)]):t.updateCallExpression(n,t.createPropertyAccessExpression(visitNode(i,visitor,isExpression),"call"),void 0,[visitNode(e,visitor,isExpression),...visitNodes2(n.arguments,visitor,isExpression)])}if(S&&O&&isSuperProperty(n.expression)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==(i=null==k?void 0:k.data)?void 0:i.classConstructor)){const e=t.createFunctionCallCall(visitNode(n.expression,visitor,isExpression),k.data.classConstructor,visitNodes2(n.arguments,visitor,isExpression));return setOriginalNode(e,n),setTextRange(e,n),e}return visitEachChild(n,visitor,e)}(n);case 245:return function visitExpressionStatement(e){return t.updateExpressionStatement(e,visitNode(e.expression,discardedValueVisitor,isExpression))}(n);case 216:return function visitTaggedTemplateExpression(n){var i;if(isPrivateIdentifierPropertyAccessExpression(n.tag)&&accessPrivateIdentifier2(n.tag.name)){const{thisArg:e,target:i}=t.createCallBinding(n.tag,r,d);return t.updateTaggedTemplateExpression(n,t.createCallExpression(t.createPropertyAccessExpression(visitNode(i,visitor,isExpression),"bind"),void 0,[visitNode(e,visitor,isExpression)]),void 0,visitNode(n.template,visitor,isTemplateLiteral))}if(S&&O&&isSuperProperty(n.tag)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==(i=null==k?void 0:k.data)?void 0:i.classConstructor)){const e=t.createFunctionBindCall(visitNode(n.tag,visitor,isExpression),k.data.classConstructor,[]);return setOriginalNode(e,n),setTextRange(e,n),t.updateTaggedTemplateExpression(n,e,void 0,visitNode(n.template,visitor,isTemplateLiteral))}return visitEachChild(n,visitor,e)}(n);case 249:return function visitForStatement(n){return t.updateForStatement(n,visitNode(n.initializer,discardedValueVisitor,isForInitializer),visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,discardedValueVisitor,isExpression),visitIterationBody(n.statement,visitor,e))}(n);case 110:return function visitThisExpression(e){if(T&&O&&isClassStaticBlockDeclaration(O)&&(null==k?void 0:k.data)){const{classThis:t,classConstructor:n}=k.data;return t??n??e}return e}(n);case 263:case 219:return setCurrentClassElementAnd(void 0,fallbackVisitor,n);case 177:case 175:case 178:case 179:return setCurrentClassElementAnd(n,fallbackVisitor,n);default:return fallbackVisitor(n)}}function fallbackVisitor(t){return visitEachChild(t,visitor,e)}function discardedValueVisitor(e){switch(e.kind){case 225:case 226:return visitPreOrPostfixUnaryExpression(e,!0);case 227:return visitBinaryExpression(e,!0);case 357:return function visitCommaListExpression(e,n){const r=n?visitCommaListElements(e.elements,discardedValueVisitor):visitCommaListElements(e.elements,visitor,discardedValueVisitor);return t.updateCommaListExpression(e,r)}(e,!0);case 218:return visitParenthesizedExpression(e,!0);default:return visitor(e)}}function heritageClauseVisitor(n){switch(n.kind){case 299:return visitEachChild(n,heritageClauseVisitor,e);case 234:return function visitExpressionWithTypeArgumentsInHeritageClause(n){var i;if(4&((null==(i=null==k?void 0:k.data)?void 0:i.facts)||0)){const e=t.createTempVariable(r,!0);return getClassLexicalEnvironment().superClassReference=e,t.updateExpressionWithTypeArguments(n,t.createAssignment(e,visitNode(n.expression,visitor,isExpression)),void 0)}return visitEachChild(n,visitor,e)}(n);default:return visitor(n)}}function assignmentTargetVisitor(e){switch(e.kind){case 211:case 210:return visitAssignmentPattern(e);default:return visitor(e)}}function classElementVisitor(e){switch(e.kind){case 177:return setCurrentClassElementAnd(e,visitConstructorDeclaration,e);case 178:case 179:case 175:return setCurrentClassElementAnd(e,visitMethodOrAccessorDeclaration,e);case 173:return setCurrentClassElementAnd(e,visitPropertyDeclaration,e);case 176:return setCurrentClassElementAnd(e,visitClassStaticBlockDeclaration,e);case 168:return visitComputedPropertyName(e);case 241:return e;default:return isModifierLike(e)?modifierVisitor(e):visitor(e)}}function propertyNameVisitor(e){return 168===e.kind?visitComputedPropertyName(e):visitor(e)}function accessorFieldResultVisitor(e){switch(e.kind){case 173:return transformFieldInitializer(e);case 178:case 179:return classElementVisitor(e);default:h.assertMissingNode(e,"Expected node to either be a PropertyDeclaration, GetAccessorDeclaration, or SetAccessorDeclaration")}}function visitComputedPropertyName(e){const n=visitNode(e.expression,visitor,isExpression);return t.updateComputedPropertyName(e,function injectPendingExpressions(e){return some(E)&&(isParenthesizedExpression(e)?(E.push(e.expression),e=t.updateParenthesizedExpression(e,t.inlineExpressions(E))):(E.push(e),e=t.inlineExpressions(E)),E=void 0),e}(n))}function visitConstructorDeclaration(e){return A?transformConstructor(e,A):fallbackVisitor(e)}function shouldTransformClassElementToWeakMap(e){return!!g||!!(hasStaticModifier(e)&&32&getInternalEmitFlags(e))}function visitMethodOrAccessorDeclaration(n){if(h.assert(!hasDecorators(n)),!isPrivateIdentifierClassElementDeclaration(n)||!shouldTransformClassElementToWeakMap(n))return visitEachChild(n,classElementVisitor,e);const r=accessPrivateIdentifier2(n.name);if(h.assert(r,"Undeclared private name for property declaration."),!r.isValid)return n;const i=function getHoistedFunctionName(e){h.assert(isPrivateIdentifier(e.name));const t=accessPrivateIdentifier2(e.name);if(h.assert(t,"Undeclared private name for property declaration."),"m"===t.kind)return t.methodName;if("a"===t.kind){if(isGetAccessor(e))return t.getterName;if(isSetAccessor(e))return t.setterName}}(n);i&&getPendingExpressions().push(t.createAssignment(i,t.createFunctionExpression(filter(n.modifiers,e=>isModifier(e)&&!isStaticModifier(e)&&!isAccessorModifier(e)),n.asteriskToken,i,void 0,visitParameterList(n.parameters,visitor,e),void 0,visitFunctionBody(n.body,visitor,e))))}function setCurrentClassElementAnd(e,t,n){if(e!==O){const r=O;O=e;const i=t(n);return O=r,i}return t(n)}function transformAutoAccessor(e){const n=getCommentRange(e),i=getSourceMapRange(e),o=e.name;let a=o,s=o;if(isComputedPropertyName(o)&&!isSimpleInlineableExpression(o.expression)){const e=findComputedPropertyNameCacheAssignment(o);if(e)a=t.updateComputedPropertyName(o,visitNode(o.expression,visitor,isExpression)),s=t.updateComputedPropertyName(o,e.left);else{const e=t.createTempVariable(r);setSourceMapRange(e,o.expression);const n=visitNode(o.expression,visitor,isExpression),i=t.createAssignment(e,n);setSourceMapRange(i,o.expression),a=t.updateComputedPropertyName(o,i),s=t.updateComputedPropertyName(o,e)}}const c=visitNodes2(e.modifiers,modifierVisitor,isModifier),l=createAccessorPropertyBackingField(t,e,c,e.initializer);setOriginalNode(l,e),setEmitFlags(l,3072),setSourceMapRange(l,i);const d=isStatic(e)?function tryGetClassThis(){const e=getClassLexicalEnvironment();return e.classThis??e.classConstructor??(null==A?void 0:A.name)}()??t.createThis():t.createThis(),p=createAccessorPropertyGetRedirector(t,e,c,a,d);setOriginalNode(p,e),setCommentRange(p,n),setSourceMapRange(p,i);const u=t.createModifiersFromModifierFlags(modifiersToFlags(c)),m=createAccessorPropertySetRedirector(t,e,u,s,d);return setOriginalNode(m,e),setEmitFlags(m,3072),setSourceMapRange(m,i),visitArray([l,p,m],accessorFieldResultVisitor,isClassElement)}function transformPublicFieldInitializer(e){if(f&&!isAutoAccessorPropertyDeclaration(e)){const n=function getPropertyNameExpressionIfNeeded(e,n){if(isComputedPropertyName(e)){const i=findComputedPropertyNameCacheAssignment(e),o=visitNode(e.expression,visitor,isExpression),a=skipPartiallyEmittedExpressions(o),l=isSimpleInlineableExpression(a);if(!(!!i||isAssignmentExpression(a)&&isGeneratedIdentifier(a.left))&&!l&&n){const n=t.getGeneratedNameForNode(e);return c.hasNodeCheckFlag(e,32768)?s(n):r(n),t.createAssignment(n,o)}return l||isIdentifier(a)?void 0:o}}(e.name,!!e.initializer||p);if(n&&getPendingExpressions().push(...flattenCommaList(n)),isStatic(e)&&!g){const n=transformPropertyOrClassStaticBlock(e,t.createThis());if(n){const r=t.createClassStaticBlockDeclaration(t.createBlock([n]));return setOriginalNode(r,e),setCommentRange(r,e),setCommentRange(n,{pos:-1,end:-1}),setSyntheticLeadingComments(n,void 0),setSyntheticTrailingComments(n,void 0),r}}return}return t.updatePropertyDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),visitNode(e.name,propertyNameVisitor,isPropertyName),void 0,void 0,visitNode(e.initializer,visitor,isExpression))}function transformFieldInitializer(n){return h.assert(!hasDecorators(n),"Decorators should already have been transformed and elided."),isPrivateIdentifierClassElementDeclaration(n)?function transformPrivateFieldInitializer(n){if(shouldTransformClassElementToWeakMap(n)){const e=accessPrivateIdentifier2(n.name);if(h.assert(e,"Undeclared private name for property declaration."),!e.isValid)return n;if(e.isStatic&&!g){const e=transformPropertyOrClassStaticBlock(n,t.createThis());if(e)return t.createClassStaticBlockDeclaration(t.createBlock([e],!0))}return}return m&&!isStatic(n)&&(null==k?void 0:k.data)&&16&k.data.facts?t.updatePropertyDeclaration(n,visitNodes2(n.modifiers,visitor,isModifierLike),n.name,void 0,void 0,void 0):(isNamedEvaluation(n,isAnonymousClassNeedingAssignedName)&&(n=transformNamedEvaluation(e,n)),t.updatePropertyDeclaration(n,visitNodes2(n.modifiers,modifierVisitor,isModifier),visitNode(n.name,propertyNameVisitor,isPropertyName),void 0,void 0,visitNode(n.initializer,visitor,isExpression)))}(n):transformPublicFieldInitializer(n)}function shouldTransformAutoAccessorsInCurrentClass(){return-1===y||3===y&&!!(null==k?void 0:k.data)&&!!(16&k.data.facts)}function visitPropertyDeclaration(e){return isAutoAccessorPropertyDeclaration(e)&&(shouldTransformAutoAccessorsInCurrentClass()||hasStaticModifier(e)&&32&getInternalEmitFlags(e))?transformAutoAccessor(e):transformFieldInitializer(e)}function ensureDynamicThisIfNeeded(e){if(function shouldForceDynamicThis(){return!!O&&hasStaticModifier(O)&&isAccessor(O)&&isAutoAccessorPropertyDeclaration(getOriginalNode(O))}()){const t=skipOuterExpressions(e);110===t.kind&&I.add(t)}}function createPrivateIdentifierAccess(e,t){return ensureDynamicThisIfNeeded(t=visitNode(t,visitor,isExpression)),createPrivateIdentifierAccessHelper(e,t)}function createPrivateIdentifierAccessHelper(e,t){switch(setCommentRange(t,moveRangePos(t,-1)),e.kind){case"a":return n().createClassPrivateFieldGetHelper(t,e.brandCheckIdentifier,e.kind,e.getterName);case"m":return n().createClassPrivateFieldGetHelper(t,e.brandCheckIdentifier,e.kind,e.methodName);case"f":return n().createClassPrivateFieldGetHelper(t,e.brandCheckIdentifier,e.kind,e.isStatic?e.variableName:void 0);case"untransformed":return h.fail("Access helpers should not be created for untransformed private elements");default:h.assertNever(e,"Unknown private element type")}}function visitPreOrPostfixUnaryExpression(n,i){if(46===n.operator||47===n.operator){const e=skipParentheses(n.operand);if(isPrivateIdentifierPropertyAccessExpression(e)){let o;if(o=accessPrivateIdentifier2(e.name)){const a=visitNode(e.expression,visitor,isExpression);ensureDynamicThisIfNeeded(a);const{readExpression:s,initializeExpression:c}=createCopiableReceiverExpr(a);let l=createPrivateIdentifierAccess(o,s);const d=isPrefixUnaryExpression(n)||i?void 0:t.createTempVariable(r);return l=expandPreOrPostfixIncrementOrDecrementExpression(t,n,l,r,d),l=createPrivateIdentifierAssignment(o,c||s,l,64),setOriginalNode(l,n),setTextRange(l,n),d&&(l=t.createComma(l,d),setTextRange(l,n)),l}}else if(S&&O&&isSuperProperty(e)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==k?void 0:k.data)){const{classConstructor:o,superClassReference:a,facts:s}=k.data;if(1&s){const r=visitInvalidSuperProperty(e);return isPrefixUnaryExpression(n)?t.updatePrefixUnaryExpression(n,r):t.updatePostfixUnaryExpression(n,r)}if(o&&a){let s,c;if(isPropertyAccessExpression(e)?isIdentifier(e.name)&&(c=s=t.createStringLiteralFromNode(e.name)):isSimpleInlineableExpression(e.argumentExpression)?c=s=e.argumentExpression:(c=t.createTempVariable(r),s=t.createAssignment(c,visitNode(e.argumentExpression,visitor,isExpression))),s&&c){let l=t.createReflectGetCall(a,c,o);setTextRange(l,e);const d=i?void 0:t.createTempVariable(r);return l=expandPreOrPostfixIncrementOrDecrementExpression(t,n,l,r,d),l=t.createReflectSetCall(a,s,l,o),setOriginalNode(l,n),setTextRange(l,n),d&&(l=t.createComma(l,d),setTextRange(l,n)),l}}}}return visitEachChild(n,visitor,e)}function createCopiableReceiverExpr(e){const n=nodeIsSynthesized(e)?e:t.cloneNode(e);if(110===e.kind&&I.has(e)&&I.add(n),isSimpleInlineableExpression(e))return{readExpression:n,initializeExpression:void 0};const i=t.createTempVariable(r);return{readExpression:i,initializeExpression:t.createAssignment(i,n)}}function transformClassStaticBlockDeclaration(e){if(k&&D.set(getOriginalNode(e),k),g){if(isClassThisAssignmentBlock(e)){const t=visitNode(e.body.statements[0].expression,visitor,isExpression);if(isAssignmentExpression(t,!0)&&t.left===t.right)return;return t}if(isClassNamedEvaluationHelperBlock(e))return visitNode(e.body.statements[0].expression,visitor,isExpression);o();let n=setCurrentClassElementAnd(e,e=>visitNodes2(e,visitor,isStatement),e.body.statements);n=t.mergeLexicalEnvironment(n,i());const r=t.createImmediatelyInvokedArrowFunction(n);return setOriginalNode(skipParentheses(r.expression),e),addEmitFlags(skipParentheses(r.expression),4),setOriginalNode(r,e),setTextRange(r,e),r}}function isAnonymousClassNeedingAssignedName(e){if(isClassExpression(e)&&!e.name){const t=getStaticPropertiesAndClassStaticBlock(e);if(some(t,isClassNamedEvaluationHelperBlock))return!1;return(g||!!getInternalEmitFlags(e))&&some(t,e=>isClassStaticBlockDeclaration(e)||isPrivateIdentifierClassElementDeclaration(e)||f&&isInitializedProperty(e))}return!1}function visitBinaryExpression(i,o){if(isDestructuringAssignment(i)){const e=E;E=void 0,i=t.updateBinaryExpression(i,visitNode(i.left,assignmentTargetVisitor,isExpression),i.operatorToken,visitNode(i.right,visitor,isExpression));const n=some(E)?t.inlineExpressions(compact([...E,i])):i;return E=e,n}if(isAssignmentExpression(i)){isNamedEvaluation(i,isAnonymousClassNeedingAssignedName)&&(i=transformNamedEvaluation(e,i),h.assertNode(i,isAssignmentExpression));const n=skipOuterExpressions(i.left,9);if(isPrivateIdentifierPropertyAccessExpression(n)){const e=accessPrivateIdentifier2(n.name);if(e)return setTextRange(setOriginalNode(createPrivateIdentifierAssignment(e,n.expression,i.right,i.operatorToken.kind),i),i)}else if(S&&O&&isSuperProperty(i.left)&&isStaticPropertyDeclarationOrClassStaticBlock(O)&&(null==k?void 0:k.data)){const{classConstructor:e,superClassReference:n,facts:a}=k.data;if(1&a)return t.updateBinaryExpression(i,visitInvalidSuperProperty(i.left),i.operatorToken,visitNode(i.right,visitor,isExpression));if(e&&n){let a=isElementAccessExpression(i.left)?visitNode(i.left.argumentExpression,visitor,isExpression):isIdentifier(i.left.name)?t.createStringLiteralFromNode(i.left.name):void 0;if(a){let s=visitNode(i.right,visitor,isExpression);if(isCompoundAssignment(i.operatorToken.kind)){let o=a;isSimpleInlineableExpression(a)||(o=t.createTempVariable(r),a=t.createAssignment(o,a));const c=t.createReflectGetCall(n,o,e);setOriginalNode(c,i.left),setTextRange(c,i.left),s=t.createBinaryExpression(c,getNonAssignmentOperatorForCompoundAssignment(i.operatorToken.kind),s),setTextRange(s,i)}const c=o?void 0:t.createTempVariable(r);return c&&(s=t.createAssignment(c,s),setTextRange(c,i)),s=t.createReflectSetCall(n,a,s,e),setOriginalNode(s,i),setTextRange(s,i),c&&(s=t.createComma(s,c),setTextRange(s,i)),s}}}}return function isPrivateIdentifierInExpression(e){return isPrivateIdentifier(e.left)&&103===e.operatorToken.kind}(i)?function transformPrivateIdentifierInInExpression(t){const r=accessPrivateIdentifier2(t.left);if(r){const e=visitNode(t.right,visitor,isExpression);return setOriginalNode(n().createClassPrivateFieldInHelper(r.brandCheckIdentifier,e),t)}return visitEachChild(t,visitor,e)}(i):visitEachChild(i,visitor,e)}function visitParenthesizedExpression(e,n){const r=n?discardedValueVisitor:visitor,i=visitNode(e.expression,r,isExpression);return t.updateParenthesizedExpression(e,i)}function createPrivateIdentifierAssignment(e,r,i,o){if(r=visitNode(r,visitor,isExpression),i=visitNode(i,visitor,isExpression),ensureDynamicThisIfNeeded(r),isCompoundAssignment(o)){const{readExpression:n,initializeExpression:a}=createCopiableReceiverExpr(r);r=a||n,i=t.createBinaryExpression(createPrivateIdentifierAccessHelper(e,n),getNonAssignmentOperatorForCompoundAssignment(o),i)}switch(setCommentRange(r,moveRangePos(r,-1)),e.kind){case"a":return n().createClassPrivateFieldSetHelper(r,e.brandCheckIdentifier,i,e.kind,e.setterName);case"m":return n().createClassPrivateFieldSetHelper(r,e.brandCheckIdentifier,i,e.kind,void 0);case"f":return n().createClassPrivateFieldSetHelper(r,e.brandCheckIdentifier,i,e.kind,e.isStatic?e.variableName:void 0);case"untransformed":return h.fail("Access helpers should not be created for untransformed private elements");default:h.assertNever(e,"Unknown private element type")}}function getPrivateInstanceMethodsAndAccessors(e){return filter(e.members,isNonStaticMethodOrAccessorWithPrivateName)}function visitInNewClassLexicalEnvironment(n,r){var i;const o=A,a=E,s=k;A=n,E=void 0,function startClassLexicalEnvironment(){k={previous:k,data:void 0}}();const l=32&getInternalEmitFlags(n);if(g||l){const e=getNameOfDeclaration(n);if(e&&isIdentifier(e))getPrivateIdentifierEnvironment().data.className=e;else if((null==(i=n.emitNode)?void 0:i.assignedName)&&isStringLiteral(n.emitNode.assignedName))if(n.emitNode.assignedName.textSourceNode&&isIdentifier(n.emitNode.assignedName.textSourceNode))getPrivateIdentifierEnvironment().data.className=n.emitNode.assignedName.textSourceNode;else if(isIdentifierText(n.emitNode.assignedName.text,d)){const e=t.createIdentifier(n.emitNode.assignedName.text);getPrivateIdentifierEnvironment().data.className=e}}if(g){const e=getPrivateInstanceMethodsAndAccessors(n);some(e)&&(getPrivateIdentifierEnvironment().data.weakSetName=createHoistedVariableForClass("instances",e[0].name))}const p=function getClassFacts(e){var t;let n=0;const r=getOriginalNode(e);isClassLike(r)&&classOrConstructorParameterIsDecorated(u,r)&&(n|=1),g&&(classHasClassThisAssignment(e)||classHasExplicitlyAssignedName(e))&&(n|=2);let i=!1,o=!1,a=!1,s=!1;for(const r of e.members)isStatic(r)?(r.name&&(isPrivateIdentifier(r.name)||isAutoAccessorPropertyDeclaration(r))&&g?n|=2:!isAutoAccessorPropertyDeclaration(r)||-1!==y||e.name||(null==(t=e.emitNode)?void 0:t.classThis)||(n|=2),(isPropertyDeclaration(r)||isClassStaticBlockDeclaration(r))&&(T&&16384&r.transformFlags&&(n|=8,1&n||(n|=2)),S&&134217728&r.transformFlags&&(1&n||(n|=6)))):hasAbstractModifier(getOriginalNode(r))||(isAutoAccessorPropertyDeclaration(r)?(s=!0,a||(a=isPrivateIdentifierClassElementDeclaration(r))):isPrivateIdentifierClassElementDeclaration(r)?(a=!0,c.hasNodeCheckFlag(r,262144)&&(n|=2)):isPropertyDeclaration(r)&&(i=!0,o||(o=!!r.initializer)));return(_&&i||m&&o||g&&a||g&&s&&-1===y)&&(n|=16),n}(n);p&&(getClassLexicalEnvironment().facts=p),8&p&&function enableSubstitutionForClassStaticThisOrSuperReference(){2&P||(P|=2,e.enableSubstitution(110),e.enableEmitNotification(263),e.enableEmitNotification(219),e.enableEmitNotification(177),e.enableEmitNotification(178),e.enableEmitNotification(179),e.enableEmitNotification(175),e.enableEmitNotification(173),e.enableEmitNotification(168))}();const f=r(n,p);return function endClassLexicalEnvironment(){k=null==k?void 0:k.previous}(),h.assert(k===s),A=o,E=a,f}function visitClassDeclarationInNewClassLexicalEnvironment(e,n){var i,o;let a;if(2&n)if(g&&(null==(i=e.emitNode)?void 0:i.classThis))getClassLexicalEnvironment().classConstructor=e.emitNode.classThis,a=t.createAssignment(e.emitNode.classThis,t.getInternalName(e));else{const n=t.createTempVariable(r,!0);getClassLexicalEnvironment().classConstructor=t.cloneNode(n),a=t.createAssignment(n,t.getInternalName(e))}(null==(o=e.emitNode)?void 0:o.classThis)&&(getClassLexicalEnvironment().classThis=e.emitNode.classThis);const s=c.hasNodeCheckFlag(e,262144),l=hasSyntacticModifier(e,32),d=hasSyntacticModifier(e,2048);let p=visitNodes2(e.modifiers,modifierVisitor,isModifier);const u=visitNodes2(e.heritageClauses,heritageClauseVisitor,isHeritageClause),{members:_,prologue:f}=transformClassMembers(e),y=[];if(a&&getPendingExpressions().unshift(a),some(E)&&y.push(t.createExpressionStatement(t.inlineExpressions(E))),m||g||32&getInternalEmitFlags(e)){const n=getStaticPropertiesAndClassStaticBlock(e);some(n)&&addPropertyOrClassStaticBlockStatements(y,n,t.getInternalName(e))}y.length>0&&l&&d&&(p=visitNodes2(p,e=>isExportOrDefaultModifier(e)?void 0:e,isModifier),y.push(t.createExportAssignment(void 0,!1,t.getLocalName(e,!1,!0))));const h=getClassLexicalEnvironment().classConstructor;s&&h&&(enableSubstitutionForClassAliases(),C[getOriginalNodeId(e)]=h);const T=t.updateClassDeclaration(e,p,e.name,void 0,u,_);return y.unshift(T),f&&y.unshift(t.createExpressionStatement(f)),y}function visitClassExpressionInNewClassLexicalEnvironment(e,n){var i,o,a;const l=!!(1&n),d=getStaticPropertiesAndClassStaticBlock(e),p=c.hasNodeCheckFlag(e,262144),u=c.hasNodeCheckFlag(e,32768);let m;function createClassTempVar(){var n;if(g&&(null==(n=e.emitNode)?void 0:n.classThis))return getClassLexicalEnvironment().classConstructor=e.emitNode.classThis;const i=t.createTempVariable(u?s:r,!0);return getClassLexicalEnvironment().classConstructor=t.cloneNode(i),i}(null==(i=e.emitNode)?void 0:i.classThis)&&(getClassLexicalEnvironment().classThis=e.emitNode.classThis),2&n&&(m??(m=createClassTempVar()));const _=visitNodes2(e.modifiers,modifierVisitor,isModifier),y=visitNodes2(e.heritageClauses,heritageClauseVisitor,isHeritageClause),{members:T,prologue:S}=transformClassMembers(e),x=t.updateClassExpression(e,_,e.name,void 0,y,T),v=[];S&&v.push(S);if((g||32&getInternalEmitFlags(e))&&some(d,e=>isClassStaticBlockDeclaration(e)||isPrivateIdentifierClassElementDeclaration(e)||f&&isInitializedProperty(e))||some(E))if(l)h.assertIsDefined(N,"Decorated classes transformed by TypeScript are expected to be within a variable declaration."),some(E)&&addRange(N,map(E,t.createExpressionStatement)),some(d)&&addPropertyOrClassStaticBlockStatements(N,d,(null==(o=e.emitNode)?void 0:o.classThis)??t.getInternalName(e)),m?v.push(t.createAssignment(m,x)):g&&(null==(a=e.emitNode)?void 0:a.classThis)?v.push(t.createAssignment(e.emitNode.classThis,x)):v.push(x);else{if(m??(m=createClassTempVar()),p){enableSubstitutionForClassAliases();const n=t.cloneNode(m);n.emitNode.autoGenerate.flags&=-9,C[getOriginalNodeId(e)]=n}v.push(t.createAssignment(m,x)),addRange(v,E),addRange(v,function generateInitializedPropertyExpressionsOrClassStaticBlock(e,t){const n=[];for(const r of e){const e=isClassStaticBlockDeclaration(r)?setCurrentClassElementAnd(r,transformClassStaticBlockDeclaration,r):setCurrentClassElementAnd(r,()=>transformProperty(r,t),void 0);e&&(startOnNewLine(e),setOriginalNode(e,r),addEmitFlags(e,3072&getEmitFlags(r)),setSourceMapRange(e,moveRangePastModifiers(r)),setCommentRange(e,r),n.push(e))}return n}(d,m)),v.push(t.cloneNode(m))}else v.push(x);return v.length>1&&(addEmitFlags(x,131072),v.forEach(startOnNewLine)),t.inlineExpressions(v)}function visitClassStaticBlockDeclaration(t){if(!g)return visitEachChild(t,visitor,e)}function transformClassMembers(e){const n=!!(32&getInternalEmitFlags(e));if(g||F){for(const t of e.members)if(isPrivateIdentifierClassElementDeclaration(t))if(shouldTransformClassElementToWeakMap(t))addPrivateIdentifierToEnvironment(t,t.name,addPrivateIdentifierClassElementToEnvironment);else{setPrivateIdentifier(getPrivateIdentifierEnvironment(),t.name,{kind:"untransformed"})}if(g&&some(getPrivateInstanceMethodsAndAccessors(e))&&function createBrandCheckWeakSetForPrivateMethods(){const{weakSetName:e}=getPrivateIdentifierEnvironment().data;h.assert(e,"weakSetName should be set in private identifier environment"),getPendingExpressions().push(t.createAssignment(e,t.createNewExpression(t.createIdentifier("WeakSet"),void 0,[])))}(),shouldTransformAutoAccessorsInCurrentClass())for(const r of e.members)if(isAutoAccessorPropertyDeclaration(r)){const e=t.getGeneratedPrivateNameForNode(r.name,void 0,"_accessor_storage");if(g||n&&hasStaticModifier(r))addPrivateIdentifierToEnvironment(r,e,addPrivateIdentifierPropertyDeclarationToEnvironment);else{setPrivateIdentifier(getPrivateIdentifierEnvironment(),e,{kind:"untransformed"})}}}let i,o,a,s=visitNodes2(e.members,classElementVisitor,isClassElement);if(some(s,isConstructorDeclaration)||(i=transformConstructor(void 0,e)),!g&&some(E)){let e=t.createExpressionStatement(t.inlineExpressions(E));if(134234112&e.transformFlags){const n=t.createTempVariable(r),i=t.createArrowFunction(void 0,void 0,[],void 0,void 0,t.createBlock([e]));o=t.createAssignment(n,i),e=t.createExpressionStatement(t.createCallExpression(n,void 0,[]))}const n=t.createBlock([e]);a=t.createClassStaticBlockDeclaration(n),E=void 0}if(i||a){let n;const r=find(s,isClassThisAssignmentBlock),o=find(s,isClassNamedEvaluationHelperBlock);n=append(n,r),n=append(n,o),n=append(n,i),n=append(n,a);n=addRange(n,r||o?filter(s,e=>e!==r&&e!==o):s),s=setTextRange(t.createNodeArray(n),e.members)}return{members:s,prologue:o}}function transformConstructor(n,r){if(n=visitNode(n,visitor,isConstructorDeclaration),!((null==k?void 0:k.data)&&16&k.data.facts))return n;const o=getEffectiveBaseTypeNode(r),s=!(!o||106===skipOuterExpressions(o.expression).kind),c=visitParameterList(n?n.parameters:void 0,visitor,e),l=function transformConstructorBody(n,r,o){var s;const c=getProperties(n,!1,!1);let l=c;p||(l=filter(l,e=>!!e.initializer||isPrivateIdentifier(e.name)||hasAccessorModifier(e)));const d=getPrivateInstanceMethodsAndAccessors(n),u=some(l)||some(d);if(!r&&!u)return visitFunctionBody(void 0,visitor,e);a();const m=!r&&o;let _=0,f=[];const y=[],T=t.createThis();if(function addInstanceMethodStatements(e,n,r){if(!g||!some(n))return;const{weakSetName:i}=getPrivateIdentifierEnvironment().data;h.assert(i,"weakSetName should be set in private identifier environment"),e.push(t.createExpressionStatement(function createPrivateInstanceMethodInitializer(e,t,n){return e.createCallExpression(e.createPropertyAccessExpression(n,"add"),void 0,[t])}(t,r,i)))}(y,d,T),r){const e=filter(c,e=>isParameterPropertyDeclaration(getOriginalNode(e),r)),t=filter(l,e=>!isParameterPropertyDeclaration(getOriginalNode(e),r));addPropertyOrClassStaticBlockStatements(y,e,T),addPropertyOrClassStaticBlockStatements(y,t,T)}else addPropertyOrClassStaticBlockStatements(y,l,T);if(null==r?void 0:r.body){_=t.copyPrologue(r.body.statements,f,!1,visitor);const e=findSuperStatementIndexPath(r.body.statements,_);if(e.length)transformConstructorBodyWorker(f,r.body.statements,_,e,0,y,r);else{for(;_=f.length?r.body.multiLine??f.length>0:f.length>0;return setTextRange(t.createBlock(setTextRange(t.createNodeArray(f),(null==(s=null==r?void 0:r.body)?void 0:s.statements)??n.members),S),null==r?void 0:r.body)}(r,n,s);return l?n?(h.assert(c),t.updateConstructorDeclaration(n,void 0,c,l)):startOnNewLine(setOriginalNode(setTextRange(t.createConstructorDeclaration(void 0,c??[],l),n||r),n)):n}function transformConstructorBodyWorker(e,n,r,i,o,a,s){const c=i[o],l=n[c];if(addRange(e,visitNodes2(n,visitor,isStatement,r,c-r)),r=c+1,isTryStatement(l)){const n=[];transformConstructorBodyWorker(n,l.tryBlock.statements,0,i,o+1,a,s);setTextRange(t.createNodeArray(n),l.tryBlock.statements),e.push(t.updateTryStatement(l,t.updateBlock(l.tryBlock,n),visitNode(l.catchClause,visitor,isCatchClause),visitNode(l.finallyBlock,visitor,isBlock)))}else{for(addRange(e,visitNodes2(n,visitor,isStatement,c,1));rsetSerializerContextAnd(e,serializeTypeNode,t),serializeTypeOfNode:(e,t,n)=>setSerializerContextAnd(e,serializeTypeOfNode,t,n),serializeParameterTypesOfNode:(e,t,n)=>setSerializerContextAnd(e,serializeParameterTypesOfNode,t,n),serializeReturnTypeOfNode:(e,t)=>setSerializerContextAnd(e,serializeReturnTypeOfNode,t)};function setSerializerContextAnd(e,t,n,r){const i=s,o=c;s=e.currentLexicalScope,c=e.currentNameScope;const a=void 0===r?t(n):t(n,r);return s=i,c=o,a}function serializeTypeOfNode(e,n){switch(e.kind){case 173:case 170:return serializeTypeNode(e.type);case 179:case 178:return serializeTypeNode(function getAccessorTypeNode(e,t){const n=getAllAccessorDeclarations(t.members,e);return n.setAccessor&&getSetAccessorTypeAnnotationNode(n.setAccessor)||n.getAccessor&&getEffectiveReturnTypeNode(n.getAccessor)}(e,n));case 264:case 232:case 175:return t.createIdentifier("Function");default:return t.createVoidZero()}}function serializeParameterTypesOfNode(e,n){const r=isClassLike(e)?getFirstConstructorWithBody(e):isFunctionLike(e)&&nodeIsPresent(e.body)?e:void 0,i=[];if(r){const e=function getParametersOfDecoratedDeclaration(e,t){if(t&&178===e.kind){const{setAccessor:n}=getAllAccessorDeclarations(t.members,e);if(n)return n.parameters}return e.parameters}(r,n),t=e.length;for(let r=0;re.parent&&isConditionalTypeNode(e.parent)&&(e.parent.trueType===e||e.parent.falseType===e)))return t.createIdentifier("Object");const r=serializeEntityNameAsExpressionFallback(e.typeName),o=t.createTempVariable(n);return t.createConditionalExpression(t.createTypeCheck(t.createAssignment(o,r),"function"),void 0,o,void 0,t.createIdentifier("Object"));case 1:return serializeEntityNameAsExpression(e.typeName);case 2:return t.createVoidZero();case 4:return getGlobalConstructor("BigInt",7);case 6:return t.createIdentifier("Boolean");case 3:return t.createIdentifier("Number");case 5:return t.createIdentifier("String");case 7:return t.createIdentifier("Array");case 8:return getGlobalConstructor("Symbol",2);case 10:return t.createIdentifier("Function");case 9:return t.createIdentifier("Promise");case 11:return t.createIdentifier("Object");default:return h.assertNever(i)}}(e);case 194:return serializeUnionOrIntersectionConstituents(e.types,!0);case 193:return serializeUnionOrIntersectionConstituents(e.types,!1);case 195:return serializeUnionOrIntersectionConstituents([e.trueType,e.falseType],!1);case 199:if(148===e.operator)return serializeTypeNode(e.type);break;case 187:case 200:case 201:case 188:case 133:case 159:case 198:case 206:case 313:case 314:case 318:case 319:case 320:break;case 315:case 316:case 317:return serializeTypeNode(e.type);default:return h.failBadSyntaxKind(e)}return t.createIdentifier("Object")}function serializeLiteralOfLiteralTypeNode(e){switch(e.kind){case 11:case 15:return t.createIdentifier("String");case 225:{const t=e.operand;switch(t.kind){case 9:case 10:return serializeLiteralOfLiteralTypeNode(t);default:return h.failBadSyntaxKind(t)}}case 9:return t.createIdentifier("Number");case 10:return getGlobalConstructor("BigInt",7);case 112:case 97:return t.createIdentifier("Boolean");case 106:return t.createVoidZero();default:return h.failBadSyntaxKind(e)}}function serializeUnionOrIntersectionConstituents(e,n){let r;for(let i of e){if(i=skipTypeParentheses(i),146===i.kind){if(n)return t.createVoidZero();continue}if(159===i.kind){if(!n)return t.createIdentifier("Object");continue}if(133===i.kind)return t.createIdentifier("Object");if(!a&&(isLiteralTypeNode(i)&&106===i.literal.kind||157===i.kind))continue;const e=serializeTypeNode(i);if(isIdentifier(e)&&"Object"===e.escapedText)return e;if(r){if(!equateSerializedTypeNodes(r,e))return t.createIdentifier("Object")}else r=e}return r??t.createVoidZero()}function equateSerializedTypeNodes(e,t){return isGeneratedIdentifier(e)?isGeneratedIdentifier(t):isIdentifier(e)?isIdentifier(t)&&e.escapedText===t.escapedText:isPropertyAccessExpression(e)?isPropertyAccessExpression(t)&&equateSerializedTypeNodes(e.expression,t.expression)&&equateSerializedTypeNodes(e.name,t.name):isVoidExpression(e)?isVoidExpression(t)&&isNumericLiteral(e.expression)&&"0"===e.expression.text&&isNumericLiteral(t.expression)&&"0"===t.expression.text:isStringLiteral(e)?isStringLiteral(t)&&e.text===t.text:isTypeOfExpression(e)?isTypeOfExpression(t)&&equateSerializedTypeNodes(e.expression,t.expression):isParenthesizedExpression(e)?isParenthesizedExpression(t)&&equateSerializedTypeNodes(e.expression,t.expression):isConditionalExpression(e)?isConditionalExpression(t)&&equateSerializedTypeNodes(e.condition,t.condition)&&equateSerializedTypeNodes(e.whenTrue,t.whenTrue)&&equateSerializedTypeNodes(e.whenFalse,t.whenFalse):!!isBinaryExpression(e)&&(isBinaryExpression(t)&&e.operatorToken.kind===t.operatorToken.kind&&equateSerializedTypeNodes(e.left,t.left)&&equateSerializedTypeNodes(e.right,t.right))}function createCheckedValue(e,n){return t.createLogicalAnd(t.createStrictInequality(t.createTypeOfExpression(e),t.createStringLiteral("undefined")),n)}function serializeEntityNameAsExpressionFallback(e){if(80===e.kind){const t=serializeEntityNameAsExpression(e);return createCheckedValue(t,t)}if(80===e.left.kind)return createCheckedValue(serializeEntityNameAsExpression(e.left),serializeEntityNameAsExpression(e));const r=serializeEntityNameAsExpressionFallback(e.left),i=t.createTempVariable(n);return t.createLogicalAnd(t.createLogicalAnd(r.left,t.createStrictInequality(t.createAssignment(i,r.right),t.createVoidZero())),t.createPropertyAccessExpression(i,e.right))}function serializeEntityNameAsExpression(e){switch(e.kind){case 80:const n=setParent(setTextRange(Di.cloneNode(e),e),e.parent);return n.original=void 0,setParent(n,getParseTreeNode(s)),n;case 167:return function serializeQualifiedNameAsExpression(e){return t.createPropertyAccessExpression(serializeEntityNameAsExpression(e.left),e.right)}(e)}}function getGlobalConstructor(e,n){return oisExportOrDefaultModifier(e)||isDecorator(e)?void 0:e,isModifierLike),u=moveRangePastModifiers(o),m=function getClassAliasIfNeeded(n){if(i.hasNodeCheckFlag(n,262144)){!function enableSubstitutionForClassAliases(){c||(e.enableSubstitution(80),c=[])}();const i=t.createUniqueName(n.name&&!isGeneratedIdentifier(n.name)?idText(n.name):"default");return c[getOriginalNodeId(n)]=i,r(i),i}}(o),_=a<2?t.getInternalName(o,!1,!0):t.getLocalName(o,!1,!0),f=visitNodes2(o.heritageClauses,visitor,isHeritageClause);let g=visitNodes2(o.members,visitor,isClassElement),y=[];({members:g,decorationStatements:y}=transformDecoratorsOfClassElements(o,g));const h=a>=9&&!!m&&some(g,e=>isPropertyDeclaration(e)&&hasSyntacticModifier(e,256)||isClassStaticBlockDeclaration(e));h&&(g=setTextRange(t.createNodeArray([t.createClassStaticBlockDeclaration(t.createBlock([t.createExpressionStatement(t.createAssignment(m,t.createThis()))])),...g]),g));const T=t.createClassExpression(p,s&&isGeneratedIdentifier(s)?void 0:s,void 0,f,g);setOriginalNode(T,o),setTextRange(T,u);const S=m&&!h?t.createAssignment(m,T):T,x=t.createVariableDeclaration(_,void 0,void 0,S);setOriginalNode(x,o);const v=t.createVariableDeclarationList([x],1),b=t.createVariableStatement(void 0,v);setOriginalNode(b,o),setTextRange(b,u),setCommentRange(b,o);const C=[b];if(addRange(C,y),function addConstructorDecorationStatement(e,r){const i=function generateConstructorDecorationExpression(e){const r=getAllDecoratorsOfClass(e,!0),i=transformAllDecoratorsOfDeclaration(r);if(!i)return;const o=c&&c[getOriginalNodeId(e)],s=a<2?t.getInternalName(e,!1,!0):t.getDeclarationName(e,!1,!0),l=n().createDecorateHelper(i,s),d=t.createAssignment(s,o?t.createAssignment(o,l):l);return setEmitFlags(d,3072),setSourceMapRange(d,moveRangePastModifiers(e)),d}(r);i&&e.push(setOriginalNode(t.createExpressionStatement(i),r))}(C,o),l)if(d){const e=t.createExportDefault(_);C.push(e)}else{const e=t.createExternalModuleExport(t.getDeclarationName(o));C.push(e)}return C}(o,o.name):function transformClassDeclarationWithoutClassDecorators(e,n){const r=visitNodes2(e.modifiers,modifierVisitor,isModifier),i=visitNodes2(e.heritageClauses,visitor,isHeritageClause);let o=visitNodes2(e.members,visitor,isClassElement),a=[];({members:o,decorationStatements:a}=transformDecoratorsOfClassElements(e,o));const s=t.updateClassDeclaration(e,r,n,void 0,i,o);return addRange([s],a)}(o,o.name);return singleOrMany(s)}(o);case 232:return function visitClassExpression(e){return t.updateClassExpression(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),e.name,void 0,visitNodes2(e.heritageClauses,visitor,isHeritageClause),visitNodes2(e.members,visitor,isClassElement))}(o);case 177:return function visitConstructorDeclaration(e){return t.updateConstructorDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),visitNodes2(e.parameters,visitor,isParameter),visitNode(e.body,visitor,isBlock))}(o);case 175:return function visitMethodDeclaration(e){return finishClassElement(t.updateMethodDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),e.asteriskToken,h.checkDefined(visitNode(e.name,visitor,isPropertyName)),void 0,void 0,visitNodes2(e.parameters,visitor,isParameter),void 0,visitNode(e.body,visitor,isBlock)),e)}(o);case 179:return function visitSetAccessorDeclaration(e){return finishClassElement(t.updateSetAccessorDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),h.checkDefined(visitNode(e.name,visitor,isPropertyName)),visitNodes2(e.parameters,visitor,isParameter),visitNode(e.body,visitor,isBlock)),e)}(o);case 178:return function visitGetAccessorDeclaration(e){return finishClassElement(t.updateGetAccessorDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),h.checkDefined(visitNode(e.name,visitor,isPropertyName)),visitNodes2(e.parameters,visitor,isParameter),void 0,visitNode(e.body,visitor,isBlock)),e)}(o);case 173:return function visitPropertyDeclaration(e){if(33554432&e.flags||hasSyntacticModifier(e,128))return;return finishClassElement(t.updatePropertyDeclaration(e,visitNodes2(e.modifiers,modifierVisitor,isModifier),h.checkDefined(visitNode(e.name,visitor,isPropertyName)),void 0,void 0,visitNode(e.initializer,visitor,isExpression)),e)}(o);case 170:return function visitParameterDeclaration(e){const n=t.updateParameterDeclaration(e,elideNodes(t,e.modifiers),e.dotDotDotToken,h.checkDefined(visitNode(e.name,visitor,isBindingName)),void 0,void 0,visitNode(e.initializer,visitor,isExpression));n!==e&&(setCommentRange(n,e),setTextRange(n,moveRangePastModifiers(e)),setSourceMapRange(n,moveRangePastModifiers(e)),setEmitFlags(n.name,64));return n}(o);default:return visitEachChild(o,visitor,e)}}function decoratorContainsPrivateIdentifierInExpression(e){return!!(536870912&e.transformFlags)}function parameterDecoratorsContainPrivateIdentifierInExpression(e){return some(e,decoratorContainsPrivateIdentifierInExpression)}function transformDecoratorsOfClassElements(e,n){let r=[];return addClassElementDecorationStatements(r,e,!1),addClassElementDecorationStatements(r,e,!0),function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(e){for(const t of e.members){if(!canHaveDecorators(t))continue;const n=getAllDecoratorsOfClassElement(t,e,!0);if(some(null==n?void 0:n.decorators,decoratorContainsPrivateIdentifierInExpression))return!0;if(some(null==n?void 0:n.parameters,parameterDecoratorsContainPrivateIdentifierInExpression))return!0}return!1}(e)&&(n=setTextRange(t.createNodeArray([...n,t.createClassStaticBlockDeclaration(t.createBlock(r,!0))]),n),r=void 0),{decorationStatements:r,members:n}}function finishClassElement(e,t){return e!==t&&(setCommentRange(e,t),setSourceMapRange(e,moveRangePastModifiers(t))),e}function isSyntheticMetadataDecorator(e){return isCallToHelper(e.expression,"___metadata")}function transformAllDecoratorsOfDeclaration(e){if(!e)return;const{false:t,true:n}=groupBy(e.decorators,isSyntheticMetadataDecorator),r=[];return addRange(r,map(t,transformDecorator)),addRange(r,flatMap(e.parameters,transformDecoratorsOfParameter)),addRange(r,map(n,transformDecorator)),r}function addClassElementDecorationStatements(e,n,r){addRange(e,map(function generateClassElementDecorationExpressions(e,t){const n=function getDecoratedClassElements(e,t){return filter(e.members,n=>function isDecoratedClassElement(e,t,n){return nodeOrChildIsDecorated(!0,e,n)&&t===isStatic(e)}(n,t,e))}(e,t);let r;for(const t of n)r=append(r,generateClassElementDecorationExpression(e,t));return r}(n,r),e=>t.createExpressionStatement(e)))}function generateClassElementDecorationExpression(e,r){const i=transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClassElement(r,e,!0));if(!i)return;const o=function getClassMemberPrefix(e,n){return isStatic(n)?t.getDeclarationName(e):function getClassPrototype(e){return t.createPropertyAccessExpression(t.getDeclarationName(e),"prototype")}(e)}(e,r),a=function getExpressionForPropertyName(e,n){const r=e.name;return isPrivateIdentifier(r)?t.createIdentifier(""):isComputedPropertyName(r)?n&&!isSimpleInlineableExpression(r.expression)?t.getGeneratedNameForNode(r):r.expression:isIdentifier(r)?t.createStringLiteral(idText(r)):t.cloneNode(r)}(r,!hasSyntacticModifier(r,128)),s=isPropertyDeclaration(r)&&!hasAccessorModifier(r)?t.createVoidZero():t.createNull(),c=n().createDecorateHelper(i,o,a,s);return setEmitFlags(c,3072),setSourceMapRange(c,moveRangePastModifiers(r)),c}function transformDecorator(e){return h.checkDefined(visitNode(e.expression,visitor,isExpression))}function transformDecoratorsOfParameter(e,t){let r;if(e){r=[];for(const i of e){const e=n().createParamHelper(transformDecorator(i),t);setTextRange(e,i.expression),setEmitFlags(e,3072),r.push(e)}}return r}}function transformESDecorators(e){const{factory:t,getEmitHelperFactory:n,startLexicalEnvironment:r,endLexicalEnvironment:i,hoistVariableDeclaration:o}=e,a=zn(e.getCompilerOptions());let s,c,l,d,p,u;return chainBundle(e,function transformSourceFile(t){s=void 0,u=!1;const n=visitEachChild(t,visitor,e);addEmitHelpers(n,e.readEmitHelpers()),u&&(addInternalEmitFlags(n,32),u=!1);return n});function updateState(){switch(c=void 0,l=void 0,d=void 0,null==s?void 0:s.kind){case"class":c=s.classInfo;break;case"class-element":c=s.next.classInfo,l=s.classThis,d=s.classSuper;break;case"name":const e=s.next.next.next;"class-element"===(null==e?void 0:e.kind)&&(c=e.next.classInfo,l=e.classThis,d=e.classSuper)}}function enterClass(e){s={kind:"class",next:s,classInfo:e,savedPendingExpressions:p},p=void 0,updateState()}function exitClass(){h.assert("class"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'class' but got '${null==s?void 0:s.kind}' instead.`),p=s.savedPendingExpressions,s=s.next,updateState()}function enterClassElement(e){var t,n;h.assert("class"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'class' but got '${null==s?void 0:s.kind}' instead.`),s={kind:"class-element",next:s},(isClassStaticBlockDeclaration(e)||isPropertyDeclaration(e)&&hasStaticModifier(e))&&(s.classThis=null==(t=s.next.classInfo)?void 0:t.classThis,s.classSuper=null==(n=s.next.classInfo)?void 0:n.classSuper),updateState()}function exitClassElement(){var e;h.assert("class-element"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'class-element' but got '${null==s?void 0:s.kind}' instead.`),h.assert("class"===(null==(e=s.next)?void 0:e.kind),"Incorrect value for top.next.kind.",()=>{var e;return`Expected top.next.kind to be 'class' but got '${null==(e=s.next)?void 0:e.kind}' instead.`}),s=s.next,updateState()}function enterName(){h.assert("class-element"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'class-element' but got '${null==s?void 0:s.kind}' instead.`),s={kind:"name",next:s},updateState()}function exitName(){h.assert("name"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'name' but got '${null==s?void 0:s.kind}' instead.`),s=s.next,updateState()}function visitor(n){if(!function shouldVisitNode(e){return!!(33554432&e.transformFlags)||!!l&&!!(16384&e.transformFlags)||!!l&&!!d&&!!(134217728&e.transformFlags)}(n))return n;switch(n.kind){case 171:return h.fail("Use `modifierVisitor` instead.");case 264:return function visitClassDeclaration(n){if(isDecoratedClassLike(n)){const r=[],i=getOriginalNode(n,isClassLike)??n,o=i.name?t.createStringLiteralFromNode(i.name):t.createStringLiteral("default"),a=hasSyntacticModifier(n,32),s=hasSyntacticModifier(n,2048);if(n.name||(n=injectClassNamedEvaluationHelperBlockIfMissing(e,n,o)),a&&s){const e=transformClassLike(n);if(n.name){const i=t.createVariableDeclaration(t.getLocalName(n),void 0,void 0,e);setOriginalNode(i,n);const o=t.createVariableDeclarationList([i],1),a=t.createVariableStatement(void 0,o);r.push(a);const s=t.createExportDefault(t.getDeclarationName(n));setOriginalNode(s,n),setCommentRange(s,getCommentRange(n)),setSourceMapRange(s,moveRangePastDecorators(n)),r.push(s)}else{const i=t.createExportDefault(e);setOriginalNode(i,n),setCommentRange(i,getCommentRange(n)),setSourceMapRange(i,moveRangePastDecorators(n)),r.push(i)}}else{h.assertIsDefined(n.name,"A class declaration that is not a default export must have a name.");const e=transformClassLike(n),i=a?e=>isExportModifier(e)?void 0:modifierVisitor(e):modifierVisitor,o=visitNodes2(n.modifiers,i,isModifier),s=t.getLocalName(n,!1,!0),c=t.createVariableDeclaration(s,void 0,void 0,e);setOriginalNode(c,n);const l=t.createVariableDeclarationList([c],1),d=t.createVariableStatement(o,l);if(setOriginalNode(d,n),setCommentRange(d,getCommentRange(n)),r.push(d),a){const e=t.createExternalModuleExport(s);setOriginalNode(e,n),r.push(e)}}return singleOrMany(r)}{const e=visitNodes2(n.modifiers,modifierVisitor,isModifier),r=visitNodes2(n.heritageClauses,visitor,isHeritageClause);enterClass(void 0);const i=visitNodes2(n.members,classElementVisitor,isClassElement);return exitClass(),t.updateClassDeclaration(n,e,n.name,void 0,r,i)}}(n);case 232:return function visitClassExpression(e){if(isDecoratedClassLike(e)){const t=transformClassLike(e);return setOriginalNode(t,e),t}{const n=visitNodes2(e.modifiers,modifierVisitor,isModifier),r=visitNodes2(e.heritageClauses,visitor,isHeritageClause);enterClass(void 0);const i=visitNodes2(e.members,classElementVisitor,isClassElement);return exitClass(),t.updateClassExpression(e,n,e.name,void 0,r,i)}}(n);case 177:case 173:case 176:return h.fail("Not supported outside of a class. Use 'classElementVisitor' instead.");case 170:return function visitParameterDeclaration(n){isNamedEvaluation(n,isAnonymousClassNeedingAssignedName)&&(n=transformNamedEvaluation(e,n,canIgnoreEmptyStringLiteralInAssignedName(n.initializer)));const r=t.updateParameterDeclaration(n,void 0,n.dotDotDotToken,visitNode(n.name,visitor,isBindingName),void 0,void 0,visitNode(n.initializer,visitor,isExpression));r!==n&&(setCommentRange(r,n),setTextRange(r,moveRangePastModifiers(n)),setSourceMapRange(r,moveRangePastModifiers(n)),setEmitFlags(r.name,64));return r}(n);case 227:return visitBinaryExpression(n,!1);case 304:return function visitPropertyAssignment(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,canIgnoreEmptyStringLiteralInAssignedName(t.initializer)));return visitEachChild(t,visitor,e)}(n);case 261:return function visitVariableDeclaration(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,canIgnoreEmptyStringLiteralInAssignedName(t.initializer)));return visitEachChild(t,visitor,e)}(n);case 209:return function visitBindingElement(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,canIgnoreEmptyStringLiteralInAssignedName(t.initializer)));return visitEachChild(t,visitor,e)}(n);case 278:return function visitExportAssignment(t){isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,canIgnoreEmptyStringLiteralInAssignedName(t.expression)));return visitEachChild(t,visitor,e)}(n);case 110:return function visitThisExpression(e){return l??e}(n);case 249:return function visitForStatement(n){return t.updateForStatement(n,visitNode(n.initializer,discardedValueVisitor,isForInitializer),visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,discardedValueVisitor,isExpression),visitIterationBody(n.statement,visitor,e))}(n);case 245:return function visitExpressionStatement(t){return visitEachChild(t,discardedValueVisitor,e)}(n);case 357:return visitCommaListExpression(n,!1);case 218:return visitParenthesizedExpression(n,!1);case 356:return function visitPartiallyEmittedExpression(e,n){const r=n?discardedValueVisitor:visitor,i=visitNode(e.expression,r,isExpression);return t.updatePartiallyEmittedExpression(e,i)}(n,!1);case 214:return function visitCallExpression(n){if(isSuperProperty(n.expression)&&l){const e=visitNode(n.expression,visitor,isExpression),r=visitNodes2(n.arguments,visitor,isExpression),i=t.createFunctionCallCall(e,l,r);return setOriginalNode(i,n),setTextRange(i,n),i}return visitEachChild(n,visitor,e)}(n);case 216:return function visitTaggedTemplateExpression(n){if(isSuperProperty(n.tag)&&l){const e=visitNode(n.tag,visitor,isExpression),r=t.createFunctionBindCall(e,l,[]);setOriginalNode(r,n),setTextRange(r,n);const i=visitNode(n.template,visitor,isTemplateLiteral);return t.updateTaggedTemplateExpression(n,r,void 0,i)}return visitEachChild(n,visitor,e)}(n);case 225:case 226:return visitPreOrPostfixUnaryExpression(n,!1);case 212:return function visitPropertyAccessExpression(n){if(isSuperProperty(n)&&isIdentifier(n.name)&&l&&d){const e=t.createStringLiteralFromNode(n.name),r=t.createReflectGetCall(d,e,l);return setOriginalNode(r,n.expression),setTextRange(r,n.expression),r}return visitEachChild(n,visitor,e)}(n);case 213:return function visitElementAccessExpression(n){if(isSuperProperty(n)&&l&&d){const e=visitNode(n.argumentExpression,visitor,isExpression),r=t.createReflectGetCall(d,e,l);return setOriginalNode(r,n.expression),setTextRange(r,n.expression),r}return visitEachChild(n,visitor,e)}(n);case 168:return visitComputedPropertyName(n);case 175:case 179:case 178:case 219:case 263:{!function enterOther(){"other"===(null==s?void 0:s.kind)?(h.assert(!p),s.depth++):(s={kind:"other",next:s,depth:0,savedPendingExpressions:p},p=void 0,updateState())}();const t=visitEachChild(n,fallbackVisitor,e);return function exitOther(){h.assert("other"===(null==s?void 0:s.kind),"Incorrect value for top.kind.",()=>`Expected top.kind to be 'other' but got '${null==s?void 0:s.kind}' instead.`),s.depth>0?(h.assert(!p),s.depth--):(p=s.savedPendingExpressions,s=s.next,updateState())}(),t}default:return visitEachChild(n,fallbackVisitor,e)}}function fallbackVisitor(e){if(171!==e.kind)return visitor(e)}function modifierVisitor(e){if(171!==e.kind)return e}function classElementVisitor(a){switch(a.kind){case 177:return function visitConstructorDeclaration(e){enterClassElement(e);const n=visitNodes2(e.modifiers,modifierVisitor,isModifier),r=visitNodes2(e.parameters,visitor,isParameter);let i;if(e.body&&c){const n=prepareConstructor(c.class,c);if(n){const r=[],o=t.copyPrologue(e.body.statements,r,!1,visitor),a=findSuperStatementIndexPath(e.body.statements,o);a.length>0?transformConstructorBodyWorker(r,e.body.statements,o,a,0,n):(addRange(r,n),addRange(r,visitNodes2(e.body.statements,visitor,isStatement))),i=t.createBlock(r,!0),setOriginalNode(i,e.body),setTextRange(i,e.body)}}return i??(i=visitNode(e.body,visitor,isBlock)),exitClassElement(),t.updateConstructorDeclaration(e,n,r,i)}(a);case 175:return function visitMethodDeclaration(e){enterClassElement(e);const{modifiers:n,name:r,descriptorName:i}=partialTransformClassElement(e,c,createMethodDescriptorObject);if(i)return exitClassElement(),finishClassElement(function createMethodDescriptorForwarder(e,n,r){return e=visitNodes2(e,e=>isStaticModifier(e)?e:void 0,isModifier),t.createGetAccessorDeclaration(e,n,[],void 0,t.createBlock([t.createReturnStatement(t.createPropertyAccessExpression(r,t.createIdentifier("value")))]))}(n,r,i),e);{const i=visitNodes2(e.parameters,visitor,isParameter),o=visitNode(e.body,visitor,isBlock);return exitClassElement(),finishClassElement(t.updateMethodDeclaration(e,n,e.asteriskToken,r,void 0,void 0,i,void 0,o),e)}}(a);case 178:return function visitGetAccessorDeclaration(e){enterClassElement(e);const{modifiers:n,name:r,descriptorName:i}=partialTransformClassElement(e,c,createGetAccessorDescriptorObject);if(i)return exitClassElement(),finishClassElement(createGetAccessorDescriptorForwarder(n,r,i),e);{const i=visitNodes2(e.parameters,visitor,isParameter),o=visitNode(e.body,visitor,isBlock);return exitClassElement(),finishClassElement(t.updateGetAccessorDeclaration(e,n,r,i,void 0,o),e)}}(a);case 179:return function visitSetAccessorDeclaration(e){enterClassElement(e);const{modifiers:n,name:r,descriptorName:i}=partialTransformClassElement(e,c,createSetAccessorDescriptorObject);if(i)return exitClassElement(),finishClassElement(createSetAccessorDescriptorForwarder(n,r,i),e);{const i=visitNodes2(e.parameters,visitor,isParameter),o=visitNode(e.body,visitor,isBlock);return exitClassElement(),finishClassElement(t.updateSetAccessorDeclaration(e,n,r,i,o),e)}}(a);case 173:return function visitPropertyDeclaration(a){isNamedEvaluation(a,isAnonymousClassNeedingAssignedName)&&(a=transformNamedEvaluation(e,a,canIgnoreEmptyStringLiteralInAssignedName(a.initializer)));enterClassElement(a),h.assert(!isAmbientPropertyDeclaration(a),"Not yet implemented.");const{modifiers:s,name:l,initializersName:d,extraInitializersName:p,descriptorName:u,thisArg:m}=partialTransformClassElement(a,c,hasAccessorModifier(a)?createAccessorPropertyDescriptorObject:void 0);r();let _=visitNode(a.initializer,visitor,isExpression);d&&(_=n().createRunInitializersHelper(m??t.createThis(),d,_??t.createVoidZero()));isStatic(a)&&c&&_&&(c.hasStaticInitializers=!0);const f=i();some(f)&&(_=t.createImmediatelyInvokedArrowFunction([...f,t.createReturnStatement(_)]));c&&(isStatic(a)?(_=injectPendingInitializers(c,!0,_),p&&(c.pendingStaticInitializers??(c.pendingStaticInitializers=[]),c.pendingStaticInitializers.push(n().createRunInitializersHelper(c.classThis??t.createThis(),p)))):(_=injectPendingInitializers(c,!1,_),p&&(c.pendingInstanceInitializers??(c.pendingInstanceInitializers=[]),c.pendingInstanceInitializers.push(n().createRunInitializersHelper(t.createThis(),p)))));if(exitClassElement(),hasAccessorModifier(a)&&u){const e=getCommentRange(a),n=getSourceMapRange(a),r=a.name;let i=r,c=r;if(isComputedPropertyName(r)&&!isSimpleInlineableExpression(r.expression)){const e=findComputedPropertyNameCacheAssignment(r);if(e)i=t.updateComputedPropertyName(r,visitNode(r.expression,visitor,isExpression)),c=t.updateComputedPropertyName(r,e.left);else{const e=t.createTempVariable(o);setSourceMapRange(e,r.expression);const n=visitNode(r.expression,visitor,isExpression),a=t.createAssignment(e,n);setSourceMapRange(a,r.expression),i=t.updateComputedPropertyName(r,a),c=t.updateComputedPropertyName(r,e)}}const l=visitNodes2(s,e=>129!==e.kind?e:void 0,isModifier),d=createAccessorPropertyBackingField(t,a,l,_);setOriginalNode(d,a),setEmitFlags(d,3072),setSourceMapRange(d,n),setSourceMapRange(d.name,a.name);const p=createGetAccessorDescriptorForwarder(l,i,u);setOriginalNode(p,a),setCommentRange(p,e),setSourceMapRange(p,n);const m=createSetAccessorDescriptorForwarder(l,c,u);return setOriginalNode(m,a),setEmitFlags(m,3072),setSourceMapRange(m,n),[d,p,m]}return finishClassElement(t.updatePropertyDeclaration(a,s,l,void 0,void 0,_),a)}(a);case 176:return function visitClassStaticBlockDeclaration(n){let r;if(enterClassElement(n),isClassNamedEvaluationHelperBlock(n))r=visitEachChild(n,visitor,e);else if(isClassThisAssignmentBlock(n)){const t=l;l=void 0,r=visitEachChild(n,visitor,e),l=t}else if(r=n=visitEachChild(n,visitor,e),c&&(c.hasStaticInitializers=!0,some(c.pendingStaticInitializers))){const e=[];for(const n of c.pendingStaticInitializers){const r=t.createExpressionStatement(n);setSourceMapRange(r,getSourceMapRange(n)),e.push(r)}const n=t.createBlock(e,!0);r=[t.createClassStaticBlockDeclaration(n),r],c.pendingStaticInitializers=void 0}return exitClassElement(),r}(a);default:return visitor(a)}}function discardedValueVisitor(e){switch(e.kind){case 225:case 226:return visitPreOrPostfixUnaryExpression(e,!0);case 227:return visitBinaryExpression(e,!0);case 357:return visitCommaListExpression(e,!0);case 218:return visitParenthesizedExpression(e,!0);default:return visitor(e)}}function createHelperVariable(e,n){return t.createUniqueName(`${function getHelperVariableName(e){let t=e.name&&isIdentifier(e.name)&&!isGeneratedIdentifier(e.name)?idText(e.name):e.name&&isPrivateIdentifier(e.name)&&!isGeneratedIdentifier(e.name)?idText(e.name).slice(1):e.name&&isStringLiteral(e.name)&&isIdentifierText(e.name.text,99)?e.name.text:isClassLike(e)?"class":"member";return isGetAccessor(e)&&(t=`get_${t}`),isSetAccessor(e)&&(t=`set_${t}`),e.name&&isPrivateIdentifier(e.name)&&(t=`private_${t}`),isStatic(e)&&(t=`static_${t}`),"_"+t}(e)}_${n}`,24)}function createLet(e,n){return t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(e,void 0,void 0,n)],1))}function transformClassLike(o){r(),!classHasDeclaredOrExplicitlyAssignedName(o)&&classOrConstructorParameterIsDecorated(!1,o)&&(o=injectClassNamedEvaluationHelperBlockIfMissing(e,o,t.createStringLiteral("")));const a=t.getLocalName(o,!1,!1,!0),s=function createClassInfo(e){const r=t.createUniqueName("_metadata",48);let i,o,a,s,c,l=!1,d=!1,p=!1;if(nodeIsDecorated(!1,e)){const n=some(e.members,e=>(isPrivateIdentifierClassElementDeclaration(e)||isAutoAccessorPropertyDeclaration(e))&&hasStaticModifier(e));a=t.createUniqueName("_classThis",n?24:48)}for(const r of e.members){if(isMethodOrAccessor(r)&&nodeOrChildIsDecorated(!1,r,e))if(hasStaticModifier(r)){if(!o){o=t.createUniqueName("_staticExtraInitializers",48);const r=n().createRunInitializersHelper(a??t.createThis(),o);setSourceMapRange(r,e.name??moveRangePastDecorators(e)),s??(s=[]),s.push(r)}}else{if(!i){i=t.createUniqueName("_instanceExtraInitializers",48);const r=n().createRunInitializersHelper(t.createThis(),i);setSourceMapRange(r,e.name??moveRangePastDecorators(e)),c??(c=[]),c.push(r)}i??(i=t.createUniqueName("_instanceExtraInitializers",48))}if(isClassStaticBlockDeclaration(r)?isClassNamedEvaluationHelperBlock(r)||(l=!0):isPropertyDeclaration(r)&&(hasStaticModifier(r)?l||(l=!!r.initializer||hasDecorators(r)):d||(d=!isAmbientPropertyDeclaration(r))),(isPrivateIdentifierClassElementDeclaration(r)||isAutoAccessorPropertyDeclaration(r))&&hasStaticModifier(r)&&(p=!0),o&&i&&l&&d&&p)break}return{class:e,classThis:a,metadataReference:r,instanceMethodExtraInitializersName:i,staticMethodExtraInitializersName:o,hasStaticInitializers:l,hasNonAmbientInstanceFields:d,hasStaticPrivateClassElements:p,pendingStaticInitializers:s,pendingInstanceInitializers:c}}(o),c=[];let l,d,m,_,f=!1;const g=transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClass(o,!1));g&&(s.classDecoratorsName=t.createUniqueName("_classDecorators",48),s.classDescriptorName=t.createUniqueName("_classDescriptor",48),s.classExtraInitializersName=t.createUniqueName("_classExtraInitializers",48),h.assertIsDefined(s.classThis),c.push(createLet(s.classDecoratorsName,t.createArrayLiteralExpression(g)),createLet(s.classDescriptorName),createLet(s.classExtraInitializersName,t.createArrayLiteralExpression()),createLet(s.classThis)),s.hasStaticPrivateClassElements&&(f=!0,u=!0));const y=getHeritageClause(o.heritageClauses,96),T=y&&firstOrUndefined(y.types),S=T&&visitNode(T.expression,visitor,isExpression);if(S){s.classSuper=t.createUniqueName("_classSuper",48);const e=skipOuterExpressions(S),n=isClassExpression(e)&&!e.name||isFunctionExpression(e)&&!e.name||isArrowFunction(e)?t.createComma(t.createNumericLiteral(0),S):S;c.push(createLet(s.classSuper,n));const r=t.updateExpressionWithTypeArguments(T,s.classSuper,void 0),i=t.updateHeritageClause(y,[r]);_=t.createNodeArray([i])}const x=s.classThis??t.createThis();enterClass(s),l=append(l,function createMetadata(e,n){const r=t.createVariableDeclaration(e,void 0,void 0,t.createConditionalExpression(t.createLogicalAnd(t.createTypeCheck(t.createIdentifier("Symbol"),"function"),t.createPropertyAccessExpression(t.createIdentifier("Symbol"),"metadata")),t.createToken(58),t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"create"),void 0,[n?createSymbolMetadataReference(n):t.createNull()]),t.createToken(59),t.createVoidZero()));return t.createVariableStatement(void 0,t.createVariableDeclarationList([r],2))}(s.metadataReference,s.classSuper));let v=o.members;if(v=visitNodes2(v,e=>isConstructorDeclaration(e)?e:classElementVisitor(e),isClassElement),v=visitNodes2(v,e=>isConstructorDeclaration(e)?classElementVisitor(e):e,isClassElement),p){let n;for(let r of p){r=visitNode(r,function thisVisitor(r){return 16384&r.transformFlags?110===r.kind?(n||(n=t.createUniqueName("_outerThis",16),c.unshift(createLet(n,t.createThis()))),n):visitEachChild(r,thisVisitor,e):r},isExpression);l=append(l,t.createExpressionStatement(r))}p=void 0}if(exitClass(),some(s.pendingInstanceInitializers)&&!getFirstConstructorWithBody(o)){const e=prepareConstructor(o,s);if(e){const n=getEffectiveBaseTypeNode(o),r=[];if(!(!n||106===skipOuterExpressions(n.expression).kind)){const e=t.createSpreadElement(t.createIdentifier("arguments")),n=t.createCallExpression(t.createSuper(),void 0,[e]);r.push(t.createExpressionStatement(n))}addRange(r,e);const i=t.createBlock(r,!0);m=t.createConstructorDeclaration(void 0,[],i)}}if(s.staticMethodExtraInitializersName&&c.push(createLet(s.staticMethodExtraInitializersName,t.createArrayLiteralExpression())),s.instanceMethodExtraInitializersName&&c.push(createLet(s.instanceMethodExtraInitializersName,t.createArrayLiteralExpression())),s.memberInfos&&forEachEntry(s.memberInfos,(e,n)=>{isStatic(n)&&(c.push(createLet(e.memberDecoratorsName)),e.memberInitializersName&&c.push(createLet(e.memberInitializersName,t.createArrayLiteralExpression())),e.memberExtraInitializersName&&c.push(createLet(e.memberExtraInitializersName,t.createArrayLiteralExpression())),e.memberDescriptorName&&c.push(createLet(e.memberDescriptorName)))}),s.memberInfos&&forEachEntry(s.memberInfos,(e,n)=>{isStatic(n)||(c.push(createLet(e.memberDecoratorsName)),e.memberInitializersName&&c.push(createLet(e.memberInitializersName,t.createArrayLiteralExpression())),e.memberExtraInitializersName&&c.push(createLet(e.memberExtraInitializersName,t.createArrayLiteralExpression())),e.memberDescriptorName&&c.push(createLet(e.memberDescriptorName)))}),l=addRange(l,s.staticNonFieldDecorationStatements),l=addRange(l,s.nonStaticNonFieldDecorationStatements),l=addRange(l,s.staticFieldDecorationStatements),l=addRange(l,s.nonStaticFieldDecorationStatements),s.classDescriptorName&&s.classDecoratorsName&&s.classExtraInitializersName&&s.classThis){l??(l=[]);const e=t.createPropertyAssignment("value",x),r=t.createObjectLiteralExpression([e]),i=t.createAssignment(s.classDescriptorName,r),c=t.createPropertyAccessExpression(x,"name"),d=n().createESDecorateHelper(t.createNull(),i,s.classDecoratorsName,{kind:"class",name:c,metadata:s.metadataReference},t.createNull(),s.classExtraInitializersName),p=t.createExpressionStatement(d);setSourceMapRange(p,moveRangePastDecorators(o)),l.push(p);const u=t.createPropertyAccessExpression(s.classDescriptorName,"value"),m=t.createAssignment(s.classThis,u),_=t.createAssignment(a,m);l.push(t.createExpressionStatement(_))}if(l.push(function createSymbolMetadata(e,n){const r=t.createObjectDefinePropertyCall(e,t.createPropertyAccessExpression(t.createIdentifier("Symbol"),"metadata"),t.createPropertyDescriptor({configurable:!0,writable:!0,enumerable:!0,value:n},!0));return setEmitFlags(t.createIfStatement(n,t.createExpressionStatement(r)),1)}(x,s.metadataReference)),some(s.pendingStaticInitializers)){for(const e of s.pendingStaticInitializers){const n=t.createExpressionStatement(e);setSourceMapRange(n,getSourceMapRange(e)),d=append(d,n)}s.pendingStaticInitializers=void 0}if(s.classExtraInitializersName){const e=n().createRunInitializersHelper(x,s.classExtraInitializersName),r=t.createExpressionStatement(e);setSourceMapRange(r,o.name??moveRangePastDecorators(o)),d=append(d,r)}l&&d&&!s.hasStaticInitializers&&(addRange(l,d),d=void 0);const b=l&&t.createClassStaticBlockDeclaration(t.createBlock(l,!0));b&&f&&setInternalEmitFlags(b,32);const C=d&&t.createClassStaticBlockDeclaration(t.createBlock(d,!0));if(b||m||C){const e=[],n=v.findIndex(isClassNamedEvaluationHelperBlock);b?(addRange(e,v,0,n+1),e.push(b),addRange(e,v,n+1)):addRange(e,v),m&&e.push(m),C&&e.push(C),v=setTextRange(t.createNodeArray(e),v)}const E=i();let N;if(g){N=t.createClassExpression(void 0,void 0,void 0,_,v),s.classThis&&(N=injectClassThisAssignmentIfMissing(t,N,s.classThis));const e=t.createVariableDeclaration(a,void 0,void 0,N),n=t.createVariableDeclarationList([e]),r=s.classThis?t.createAssignment(a,s.classThis):a;c.push(t.createVariableStatement(void 0,n),t.createReturnStatement(r))}else N=t.createClassExpression(void 0,o.name,void 0,_,v),c.push(t.createReturnStatement(N));if(f){addInternalEmitFlags(N,32);for(const e of N.members)(isPrivateIdentifierClassElementDeclaration(e)||isAutoAccessorPropertyDeclaration(e))&&hasStaticModifier(e)&&addInternalEmitFlags(e,32)}return setOriginalNode(N,o),t.createImmediatelyInvokedArrowFunction(t.mergeLexicalEnvironment(c,E))}function isDecoratedClassLike(e){return classOrConstructorParameterIsDecorated(!1,e)||childIsDecorated(!1,e)}function prepareConstructor(e,n){if(some(n.pendingInstanceInitializers)){const e=[];return e.push(t.createExpressionStatement(t.inlineExpressions(n.pendingInstanceInitializers))),n.pendingInstanceInitializers=void 0,e}}function transformConstructorBodyWorker(e,n,r,i,o,a){const s=i[o],c=n[s];if(addRange(e,visitNodes2(n,visitor,isStatement,r,s-r)),isTryStatement(c)){const n=[];transformConstructorBodyWorker(n,c.tryBlock.statements,0,i,o+1,a);setTextRange(t.createNodeArray(n),c.tryBlock.statements),e.push(t.updateTryStatement(c,t.updateBlock(c.tryBlock,n),visitNode(c.catchClause,visitor,isCatchClause),visitNode(c.finallyBlock,visitor,isBlock)))}else addRange(e,visitNodes2(n,visitor,isStatement,s,1)),addRange(e,a);addRange(e,visitNodes2(n,visitor,isStatement,s+1))}function finishClassElement(e,t){return e!==t&&(setCommentRange(e,t),setSourceMapRange(e,moveRangePastDecorators(t))),e}function partialTransformClassElement(e,r,i){let a,s,c,l,d,u;if(!r){const t=visitNodes2(e.modifiers,modifierVisitor,isModifier);return enterName(),s=visitPropertyName(e.name),exitName(),{modifiers:t,referencedName:a,name:s,initializersName:c,descriptorName:u,thisArg:d}}const m=transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClassElement(e,r.class,!1)),_=visitNodes2(e.modifiers,modifierVisitor,isModifier);if(m){const f=createHelperVariable(e,"decorators"),g=t.createArrayLiteralExpression(m),y=t.createAssignment(f,g),T={memberDecoratorsName:f};r.memberInfos??(r.memberInfos=new Map),r.memberInfos.set(e,T),p??(p=[]),p.push(y);const S=isMethodOrAccessor(e)||isAutoAccessorPropertyDeclaration(e)?isStatic(e)?r.staticNonFieldDecorationStatements??(r.staticNonFieldDecorationStatements=[]):r.nonStaticNonFieldDecorationStatements??(r.nonStaticNonFieldDecorationStatements=[]):isPropertyDeclaration(e)&&!isAutoAccessorPropertyDeclaration(e)?isStatic(e)?r.staticFieldDecorationStatements??(r.staticFieldDecorationStatements=[]):r.nonStaticFieldDecorationStatements??(r.nonStaticFieldDecorationStatements=[]):h.fail(),x=isGetAccessorDeclaration(e)?"getter":isSetAccessorDeclaration(e)?"setter":isMethodDeclaration(e)?"method":isAutoAccessorPropertyDeclaration(e)?"accessor":isPropertyDeclaration(e)?"field":h.fail();let v;if(isIdentifier(e.name)||isPrivateIdentifier(e.name))v={computed:!1,name:e.name};else if(isPropertyNameLiteral(e.name))v={computed:!0,name:t.createStringLiteralFromNode(e.name)};else{const r=e.name.expression;isPropertyNameLiteral(r)&&!isIdentifier(r)?v={computed:!0,name:t.createStringLiteralFromNode(r)}:(enterName(),({referencedName:a,name:s}=function visitReferencedPropertyName(e){if(isPropertyNameLiteral(e)||isPrivateIdentifier(e)){return{referencedName:t.createStringLiteralFromNode(e),name:visitNode(e,visitor,isPropertyName)}}if(isPropertyNameLiteral(e.expression)&&!isIdentifier(e.expression)){return{referencedName:t.createStringLiteralFromNode(e.expression),name:visitNode(e,visitor,isPropertyName)}}const r=t.getGeneratedNameForNode(e);o(r);const i=n().createPropKeyHelper(visitNode(e.expression,visitor,isExpression)),a=t.createAssignment(r,i),s=t.updateComputedPropertyName(e,injectPendingExpressions(a));return{referencedName:r,name:s}}(e.name)),v={computed:!0,name:a},exitName())}const b={kind:x,name:v,static:isStatic(e),private:isPrivateIdentifier(e.name),access:{get:isPropertyDeclaration(e)||isGetAccessorDeclaration(e)||isMethodDeclaration(e),set:isPropertyDeclaration(e)||isSetAccessorDeclaration(e)},metadata:r.metadataReference};if(isMethodOrAccessor(e)){const o=isStatic(e)?r.staticMethodExtraInitializersName:r.instanceMethodExtraInitializersName;let a;h.assertIsDefined(o),isPrivateIdentifierClassElementDeclaration(e)&&i&&(a=i(e,visitNodes2(_,e=>tryCast(e,isAsyncModifier),isModifier)),T.memberDescriptorName=u=createHelperVariable(e,"descriptor"),a=t.createAssignment(u,a));const s=n().createESDecorateHelper(t.createThis(),a??t.createNull(),f,b,t.createNull(),o),c=t.createExpressionStatement(s);setSourceMapRange(c,moveRangePastDecorators(e)),S.push(c)}else if(isPropertyDeclaration(e)){let o;c=T.memberInitializersName??(T.memberInitializersName=createHelperVariable(e,"initializers")),l=T.memberExtraInitializersName??(T.memberExtraInitializersName=createHelperVariable(e,"extraInitializers")),isStatic(e)&&(d=r.classThis),isPrivateIdentifierClassElementDeclaration(e)&&hasAccessorModifier(e)&&i&&(o=i(e,void 0),T.memberDescriptorName=u=createHelperVariable(e,"descriptor"),o=t.createAssignment(u,o));const a=n().createESDecorateHelper(isAutoAccessorPropertyDeclaration(e)?t.createThis():t.createNull(),o??t.createNull(),f,b,c,l),s=t.createExpressionStatement(a);setSourceMapRange(s,moveRangePastDecorators(e)),S.push(s)}}return void 0===s&&(enterName(),s=visitPropertyName(e.name),exitName()),some(_)||!isMethodDeclaration(e)&&!isPropertyDeclaration(e)||setEmitFlags(s,1024),{modifiers:_,referencedName:a,name:s,initializersName:c,extraInitializersName:l,descriptorName:u,thisArg:d}}function isAnonymousClassNeedingAssignedName(e){return isClassExpression(e)&&!e.name&&isDecoratedClassLike(e)}function canIgnoreEmptyStringLiteralInAssignedName(e){const t=skipOuterExpressions(e);return isClassExpression(t)&&!t.name&&!classOrConstructorParameterIsDecorated(!1,t)}function visitBinaryExpression(n,r){if(isDestructuringAssignment(n)){const e=visitAssignmentPattern(n.left),r=visitNode(n.right,visitor,isExpression);return t.updateBinaryExpression(n,e,n.operatorToken,r)}if(isAssignmentExpression(n)){if(isNamedEvaluation(n,isAnonymousClassNeedingAssignedName))return visitEachChild(n=transformNamedEvaluation(e,n,canIgnoreEmptyStringLiteralInAssignedName(n.right)),visitor,e);if(isSuperProperty(n.left)&&l&&d){let e=isElementAccessExpression(n.left)?visitNode(n.left.argumentExpression,visitor,isExpression):isIdentifier(n.left.name)?t.createStringLiteralFromNode(n.left.name):void 0;if(e){let i=visitNode(n.right,visitor,isExpression);if(isCompoundAssignment(n.operatorToken.kind)){let r=e;isSimpleInlineableExpression(e)||(r=t.createTempVariable(o),e=t.createAssignment(r,e));const a=t.createReflectGetCall(d,r,l);setOriginalNode(a,n.left),setTextRange(a,n.left),i=t.createBinaryExpression(a,getNonAssignmentOperatorForCompoundAssignment(n.operatorToken.kind),i),setTextRange(i,n)}const a=r?void 0:t.createTempVariable(o);return a&&(i=t.createAssignment(a,i),setTextRange(a,n)),i=t.createReflectSetCall(d,e,i,l),setOriginalNode(i,n),setTextRange(i,n),a&&(i=t.createComma(i,a),setTextRange(i,n)),i}}}if(28===n.operatorToken.kind){const e=visitNode(n.left,discardedValueVisitor,isExpression),i=visitNode(n.right,r?discardedValueVisitor:visitor,isExpression);return t.updateBinaryExpression(n,e,n.operatorToken,i)}return visitEachChild(n,visitor,e)}function visitPreOrPostfixUnaryExpression(n,r){if(46===n.operator||47===n.operator){const e=skipParentheses(n.operand);if(isSuperProperty(e)&&l&&d){let i=isElementAccessExpression(e)?visitNode(e.argumentExpression,visitor,isExpression):isIdentifier(e.name)?t.createStringLiteralFromNode(e.name):void 0;if(i){let e=i;isSimpleInlineableExpression(i)||(e=t.createTempVariable(o),i=t.createAssignment(e,i));let a=t.createReflectGetCall(d,e,l);setOriginalNode(a,n),setTextRange(a,n);const s=r?void 0:t.createTempVariable(o);return a=expandPreOrPostfixIncrementOrDecrementExpression(t,n,a,o,s),a=t.createReflectSetCall(d,i,a,l),setOriginalNode(a,n),setTextRange(a,n),s&&(a=t.createComma(a,s),setTextRange(a,n)),a}}}return visitEachChild(n,visitor,e)}function visitCommaListExpression(e,n){const r=n?visitCommaListElements(e.elements,discardedValueVisitor):visitCommaListElements(e.elements,visitor,discardedValueVisitor);return t.updateCommaListExpression(e,r)}function visitPropertyName(e){return isComputedPropertyName(e)?visitComputedPropertyName(e):visitNode(e,visitor,isPropertyName)}function visitComputedPropertyName(e){let n=visitNode(e.expression,visitor,isExpression);return isSimpleInlineableExpression(n)||(n=injectPendingExpressions(n)),t.updateComputedPropertyName(e,n)}function visitDestructuringAssignmentTarget(n){if(isObjectLiteralExpression(n)||isArrayLiteralExpression(n))return visitAssignmentPattern(n);if(isSuperProperty(n)&&l&&d){const e=isElementAccessExpression(n)?visitNode(n.argumentExpression,visitor,isExpression):isIdentifier(n.name)?t.createStringLiteralFromNode(n.name):void 0;if(e){const r=t.createTempVariable(void 0),i=t.createAssignmentTargetWrapper(r,t.createReflectSetCall(d,e,r,l));return setOriginalNode(i,n),setTextRange(i,n),i}}return visitEachChild(n,visitor,e)}function visitAssignmentElement(n){if(isAssignmentExpression(n,!0)){isNamedEvaluation(n,isAnonymousClassNeedingAssignedName)&&(n=transformNamedEvaluation(e,n,canIgnoreEmptyStringLiteralInAssignedName(n.right)));const r=visitDestructuringAssignmentTarget(n.left),i=visitNode(n.right,visitor,isExpression);return t.updateBinaryExpression(n,r,n.operatorToken,i)}return visitDestructuringAssignmentTarget(n)}function visitArrayAssignmentElement(n){return h.assertNode(n,isArrayBindingOrAssignmentElement),isSpreadElement(n)?function visitAssignmentRestElement(n){if(isLeftHandSideExpression(n.expression)){const e=visitDestructuringAssignmentTarget(n.expression);return t.updateSpreadElement(n,e)}return visitEachChild(n,visitor,e)}(n):isOmittedExpression(n)?visitEachChild(n,visitor,e):visitAssignmentElement(n)}function visitObjectAssignmentElement(n){return h.assertNode(n,isObjectBindingOrAssignmentElement),isSpreadAssignment(n)?function visitAssignmentRestProperty(n){if(isLeftHandSideExpression(n.expression)){const e=visitDestructuringAssignmentTarget(n.expression);return t.updateSpreadAssignment(n,e)}return visitEachChild(n,visitor,e)}(n):isShorthandPropertyAssignment(n)?function visitShorthandAssignmentProperty(t){return isNamedEvaluation(t,isAnonymousClassNeedingAssignedName)&&(t=transformNamedEvaluation(e,t,canIgnoreEmptyStringLiteralInAssignedName(t.objectAssignmentInitializer))),visitEachChild(t,visitor,e)}(n):isPropertyAssignment(n)?function visitAssignmentProperty(n){const r=visitNode(n.name,visitor,isPropertyName);if(isAssignmentExpression(n.initializer,!0)){const e=visitAssignmentElement(n.initializer);return t.updatePropertyAssignment(n,r,e)}if(isLeftHandSideExpression(n.initializer)){const e=visitDestructuringAssignmentTarget(n.initializer);return t.updatePropertyAssignment(n,r,e)}return visitEachChild(n,visitor,e)}(n):visitEachChild(n,visitor,e)}function visitAssignmentPattern(e){if(isArrayLiteralExpression(e)){const n=visitNodes2(e.elements,visitArrayAssignmentElement,isExpression);return t.updateArrayLiteralExpression(e,n)}{const n=visitNodes2(e.properties,visitObjectAssignmentElement,isObjectLiteralElementLike);return t.updateObjectLiteralExpression(e,n)}}function visitParenthesizedExpression(e,n){const r=n?discardedValueVisitor:visitor,i=visitNode(e.expression,r,isExpression);return t.updateParenthesizedExpression(e,i)}function injectPendingExpressionsCommon(e,n){return some(e)&&(n?isParenthesizedExpression(n)?(e.push(n.expression),n=t.updateParenthesizedExpression(n,t.inlineExpressions(e))):(e.push(n),n=t.inlineExpressions(e)):n=t.inlineExpressions(e)),n}function injectPendingExpressions(e){const t=injectPendingExpressionsCommon(p,e);return h.assertIsDefined(t),t!==e&&(p=void 0),t}function injectPendingInitializers(e,t,n){const r=injectPendingExpressionsCommon(t?e.pendingStaticInitializers:e.pendingInstanceInitializers,n);return r!==n&&(t?e.pendingStaticInitializers=void 0:e.pendingInstanceInitializers=void 0),r}function transformAllDecoratorsOfDeclaration(e){if(!e)return;const t=[];return addRange(t,map(e.decorators,transformDecorator)),t}function transformDecorator(e){const n=visitNode(e.expression,visitor,isExpression);setEmitFlags(n,3072);if(isAccessExpression(skipOuterExpressions(n))){const{target:e,thisArg:r}=t.createCallBinding(n,o,a,!0);return t.restoreOuterExpressions(n,t.createFunctionBindCall(e,r,[]))}return n}function createDescriptorMethod(e,r,i,o,a,s,c){const l=t.createFunctionExpression(i,o,void 0,void 0,s,void 0,c??t.createBlock([]));setOriginalNode(l,e),setSourceMapRange(l,moveRangePastDecorators(e)),setEmitFlags(l,3072);const d="get"===a||"set"===a?a:void 0,p=t.createStringLiteralFromNode(r,void 0),u=n().createSetFunctionNameHelper(l,p,d),m=t.createPropertyAssignment(t.createIdentifier(a),u);return setOriginalNode(m,e),setSourceMapRange(m,moveRangePastDecorators(e)),setEmitFlags(m,3072),m}function createMethodDescriptorObject(e,n){return t.createObjectLiteralExpression([createDescriptorMethod(e,e.name,n,e.asteriskToken,"value",visitNodes2(e.parameters,visitor,isParameter),visitNode(e.body,visitor,isBlock))])}function createGetAccessorDescriptorObject(e,n){return t.createObjectLiteralExpression([createDescriptorMethod(e,e.name,n,void 0,"get",[],visitNode(e.body,visitor,isBlock))])}function createSetAccessorDescriptorObject(e,n){return t.createObjectLiteralExpression([createDescriptorMethod(e,e.name,n,void 0,"set",visitNodes2(e.parameters,visitor,isParameter),visitNode(e.body,visitor,isBlock))])}function createAccessorPropertyDescriptorObject(e,n){return t.createObjectLiteralExpression([createDescriptorMethod(e,e.name,n,void 0,"get",[],t.createBlock([t.createReturnStatement(t.createPropertyAccessExpression(t.createThis(),t.getGeneratedPrivateNameForNode(e.name)))])),createDescriptorMethod(e,e.name,n,void 0,"set",[t.createParameterDeclaration(void 0,void 0,"value")],t.createBlock([t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(t.createThis(),t.getGeneratedPrivateNameForNode(e.name)),t.createIdentifier("value")))]))])}function createGetAccessorDescriptorForwarder(e,n,r){return e=visitNodes2(e,e=>isStaticModifier(e)?e:void 0,isModifier),t.createGetAccessorDeclaration(e,n,[],void 0,t.createBlock([t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(r,t.createIdentifier("get")),t.createThis(),[]))]))}function createSetAccessorDescriptorForwarder(e,n,r){return e=visitNodes2(e,e=>isStaticModifier(e)?e:void 0,isModifier),t.createSetAccessorDeclaration(e,n,[t.createParameterDeclaration(void 0,void 0,"value")],t.createBlock([t.createReturnStatement(t.createFunctionCallCall(t.createPropertyAccessExpression(r,t.createIdentifier("set")),t.createThis(),[t.createIdentifier("value")]))]))}function createSymbolMetadataReference(e){return t.createBinaryExpression(t.createElementAccessExpression(e,t.createPropertyAccessExpression(t.createIdentifier("Symbol"),"metadata")),61,t.createNull())}}function transformES2017(e){const{factory:t,getEmitHelperFactory:n,resumeLexicalEnvironment:r,endLexicalEnvironment:i,hoistVariableDeclaration:o}=e,a=e.getEmitResolver(),s=e.getCompilerOptions(),c=zn(s);let l,d,p,u,m=0,_=0;const f=[];let g=0;const y=e.onEmitNode,T=e.onSubstituteNode;return e.onEmitNode=function onEmitNode(e,t,n){if(1&m&&function isSuperContainer(e){const t=e.kind;return 264===t||177===t||175===t||178===t||179===t}(t)){const r=(a.hasNodeCheckFlag(t,128)?128:0)|(a.hasNodeCheckFlag(t,256)?256:0);if(r!==_){const i=_;return _=r,y(e,t,n),void(_=i)}}else if(m&&f[getNodeId(t)]){const r=_;return _=0,y(e,t,n),void(_=r)}y(e,t,n)},e.onSubstituteNode=function onSubstituteNode(e,n){if(n=T(e,n),1===e&&_)return function substituteExpression(e){switch(e.kind){case 212:return substitutePropertyAccessExpression(e);case 213:return substituteElementAccessExpression(e);case 214:return function substituteCallExpression(e){const n=e.expression;if(isSuperProperty(n)){const r=isPropertyAccessExpression(n)?substitutePropertyAccessExpression(n):substituteElementAccessExpression(n);return t.createCallExpression(t.createPropertyAccessExpression(r,"call"),void 0,[t.createThis(),...e.arguments])}return e}(e)}return e}(n);return n},chainBundle(e,function transformSourceFile(t){if(t.isDeclarationFile)return t;setContextFlag(1,!1),setContextFlag(2,!isEffectiveStrictModeSourceFile(t,s));const n=visitEachChild(t,visitor,e);return addEmitHelpers(n,e.readEmitHelpers()),n});function setContextFlag(e,t){g=t?g|e:g&~e}function inContext(e){return 0!==(g&e)}function doWithContext(e,t,n){const r=e&~g;if(r){setContextFlag(r,!0);const e=t(n);return setContextFlag(r,!1),e}return t(n)}function visitDefault(t){return visitEachChild(t,visitor,e)}function argumentsVisitor(t){switch(t.kind){case 219:case 263:case 175:case 178:case 179:case 177:return t;case 170:case 209:case 261:break;case 80:if(u&&a.isArgumentsLocalBinding(t))return u}return visitEachChild(t,argumentsVisitor,e)}function visitor(n){if(!(256&n.transformFlags))return u?argumentsVisitor(n):n;switch(n.kind){case 134:return;case 224:return function visitAwaitExpression(n){if(function inTopLevelContext(){return!inContext(1)}())return visitEachChild(n,visitor,e);return setOriginalNode(setTextRange(t.createYieldExpression(void 0,visitNode(n.expression,visitor,isExpression)),n),n)}(n);case 175:return doWithContext(3,visitMethodDeclaration,n);case 263:return doWithContext(3,visitFunctionDeclaration,n);case 219:return doWithContext(3,visitFunctionExpression,n);case 220:return doWithContext(1,visitArrowFunction,n);case 212:return d&&isPropertyAccessExpression(n)&&108===n.expression.kind&&d.add(n.name.escapedText),visitEachChild(n,visitor,e);case 213:return d&&108===n.expression.kind&&(p=!0),visitEachChild(n,visitor,e);case 178:return doWithContext(3,visitGetAccessorDeclaration,n);case 179:return doWithContext(3,visitSetAccessorDeclaration,n);case 177:return doWithContext(3,visitConstructorDeclaration,n);case 264:case 232:return doWithContext(3,visitDefault,n);default:return visitEachChild(n,visitor,e)}}function asyncBodyVisitor(n){if(isNodeWithPossibleHoistedDeclaration(n))switch(n.kind){case 244:return function visitVariableStatementInAsyncBody(n){if(isVariableDeclarationListWithCollidingName(n.declarationList)){const e=visitVariableDeclarationListWithCollidingNames(n.declarationList,!1);return e?t.createExpressionStatement(e):void 0}return visitEachChild(n,visitor,e)}(n);case 249:return function visitForStatementInAsyncBody(n){const r=n.initializer;return t.updateForStatement(n,isVariableDeclarationListWithCollidingName(r)?visitVariableDeclarationListWithCollidingNames(r,!1):visitNode(n.initializer,visitor,isForInitializer),visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,visitor,isExpression),visitIterationBody(n.statement,asyncBodyVisitor,e))}(n);case 250:return function visitForInStatementInAsyncBody(n){return t.updateForInStatement(n,isVariableDeclarationListWithCollidingName(n.initializer)?visitVariableDeclarationListWithCollidingNames(n.initializer,!0):h.checkDefined(visitNode(n.initializer,visitor,isForInitializer)),h.checkDefined(visitNode(n.expression,visitor,isExpression)),visitIterationBody(n.statement,asyncBodyVisitor,e))}(n);case 251:return function visitForOfStatementInAsyncBody(n){return t.updateForOfStatement(n,visitNode(n.awaitModifier,visitor,isAwaitKeyword),isVariableDeclarationListWithCollidingName(n.initializer)?visitVariableDeclarationListWithCollidingNames(n.initializer,!0):h.checkDefined(visitNode(n.initializer,visitor,isForInitializer)),h.checkDefined(visitNode(n.expression,visitor,isExpression)),visitIterationBody(n.statement,asyncBodyVisitor,e))}(n);case 300:return function visitCatchClauseInAsyncBody(t){const n=new Set;let r;if(recordDeclarationName(t.variableDeclaration,n),n.forEach((e,t)=>{l.has(t)&&(r||(r=new Set(l)),r.delete(t))}),r){const n=l;l=r;const i=visitEachChild(t,asyncBodyVisitor,e);return l=n,i}return visitEachChild(t,asyncBodyVisitor,e)}(n);case 242:case 256:case 270:case 297:case 298:case 259:case 247:case 248:case 246:case 255:case 257:return visitEachChild(n,asyncBodyVisitor,e);default:return h.assertNever(n,"Unhandled node.")}return visitor(n)}function visitConstructorDeclaration(n){const r=u;u=void 0;const i=t.updateConstructorDeclaration(n,visitNodes2(n.modifiers,visitor,isModifier),visitParameterList(n.parameters,visitor,e),transformMethodBody(n));return u=r,i}function visitMethodDeclaration(n){let r;const i=getFunctionFlags(n),o=u;u=void 0;const a=t.updateMethodDeclaration(n,visitNodes2(n.modifiers,visitor,isModifierLike),n.asteriskToken,n.name,void 0,void 0,r=2&i?transformAsyncFunctionParameterList(n):visitParameterList(n.parameters,visitor,e),void 0,2&i?transformAsyncFunctionBody(n,r):transformMethodBody(n));return u=o,a}function visitGetAccessorDeclaration(n){const r=u;u=void 0;const i=t.updateGetAccessorDeclaration(n,visitNodes2(n.modifiers,visitor,isModifierLike),n.name,visitParameterList(n.parameters,visitor,e),void 0,transformMethodBody(n));return u=r,i}function visitSetAccessorDeclaration(n){const r=u;u=void 0;const i=t.updateSetAccessorDeclaration(n,visitNodes2(n.modifiers,visitor,isModifierLike),n.name,visitParameterList(n.parameters,visitor,e),transformMethodBody(n));return u=r,i}function visitFunctionDeclaration(n){let r;const i=u;u=void 0;const o=getFunctionFlags(n),a=t.updateFunctionDeclaration(n,visitNodes2(n.modifiers,visitor,isModifierLike),n.asteriskToken,n.name,void 0,r=2&o?transformAsyncFunctionParameterList(n):visitParameterList(n.parameters,visitor,e),void 0,2&o?transformAsyncFunctionBody(n,r):visitFunctionBody(n.body,visitor,e));return u=i,a}function visitFunctionExpression(n){let r;const i=u;u=void 0;const o=getFunctionFlags(n),a=t.updateFunctionExpression(n,visitNodes2(n.modifiers,visitor,isModifier),n.asteriskToken,n.name,void 0,r=2&o?transformAsyncFunctionParameterList(n):visitParameterList(n.parameters,visitor,e),void 0,2&o?transformAsyncFunctionBody(n,r):visitFunctionBody(n.body,visitor,e));return u=i,a}function visitArrowFunction(n){let r;const i=getFunctionFlags(n);return t.updateArrowFunction(n,visitNodes2(n.modifiers,visitor,isModifier),void 0,r=2&i?transformAsyncFunctionParameterList(n):visitParameterList(n.parameters,visitor,e),void 0,n.equalsGreaterThanToken,2&i?transformAsyncFunctionBody(n,r):visitFunctionBody(n.body,visitor,e))}function recordDeclarationName({name:e},t){if(isIdentifier(e))t.add(e.escapedText);else for(const n of e.elements)isOmittedExpression(n)||recordDeclarationName(n,t)}function isVariableDeclarationListWithCollidingName(e){return!!e&&isVariableDeclarationList(e)&&!(7&e.flags)&&e.declarations.some(collidesWithParameterName)}function visitVariableDeclarationListWithCollidingNames(e,n){!function hoistVariableDeclarationList(e){forEach(e.declarations,hoistVariable)}(e);const r=getInitializedVariables(e);return 0===r.length?n?visitNode(t.converters.convertToAssignmentElementTarget(e.declarations[0].name),visitor,isExpression):void 0:t.inlineExpressions(map(r,transformInitializedVariable))}function hoistVariable({name:e}){if(isIdentifier(e))o(e);else for(const t of e.elements)isOmittedExpression(t)||hoistVariable(t)}function transformInitializedVariable(e){const n=setSourceMapRange(t.createAssignment(t.converters.convertToAssignmentElementTarget(e.name),e.initializer),e);return h.checkDefined(visitNode(n,visitor,isExpression))}function collidesWithParameterName({name:e}){if(isIdentifier(e))return l.has(e.escapedText);for(const t of e.elements)if(!isOmittedExpression(t)&&collidesWithParameterName(t))return!0;return!1}function transformMethodBody(n){h.assertIsDefined(n.body);const r=d,i=p;d=new Set,p=!1;let o=visitFunctionBody(n.body,visitor,e);const s=getOriginalNode(n,isFunctionLikeDeclaration);if(c>=2&&(a.hasNodeCheckFlag(n,256)||a.hasNodeCheckFlag(n,128))&&!!(3&~getFunctionFlags(s))){if(enableSubstitutionForAsyncMethodsWithSuper(),d.size){const e=createSuperAccessVariableStatement(t,a,n,d);f[getNodeId(e)]=!0;const r=o.statements.slice();insertStatementsAfterStandardPrologue(r,[e]),o=t.updateBlock(o,r)}p&&(a.hasNodeCheckFlag(n,256)?addEmitHelper(o,Si):a.hasNodeCheckFlag(n,128)&&addEmitHelper(o,Ti))}return d=r,p=i,o}function createCaptureArgumentsStatement(){h.assert(u);const e=t.createVariableDeclaration(u,void 0,void 0,t.createIdentifier("arguments")),n=t.createVariableStatement(void 0,[e]);return startOnNewLine(n),addEmitFlags(n,2097152),n}function transformAsyncFunctionParameterList(n){if(isSimpleParameterList(n.parameters))return visitParameterList(n.parameters,visitor,e);const r=[];for(const e of n.parameters){if(e.initializer||e.dotDotDotToken){if(220===n.kind){const e=t.createParameterDeclaration(void 0,t.createToken(26),t.createUniqueName("args",8));r.push(e)}break}const i=t.createParameterDeclaration(void 0,void 0,t.getGeneratedNameForNode(e.name,8));r.push(i)}const i=t.createNodeArray(r);return setTextRange(i,n.parameters),i}function transformAsyncFunctionBody(o,s){const m=isSimpleParameterList(o.parameters)?void 0:visitParameterList(o.parameters,visitor,e);r();const _=getOriginalNode(o,isFunctionLike).type,g=c<2?function getPromiseConstructor(e){const t=e&&getEntityNameFromTypeNode(e);if(t&&isEntityName(t)){const e=a.getTypeReferenceSerializationKind(t);if(1===e||0===e)return t}return}(_):void 0,y=220===o.kind,T=u,S=a.hasNodeCheckFlag(o,512)&&!u;let x;if(S&&(u=t.createUniqueName("arguments")),m)if(y){const e=[];h.assert(s.length<=o.parameters.length);for(let n=0;n=2&&(a.hasNodeCheckFlag(o,256)||a.hasNodeCheckFlag(o,128));if(r&&(enableSubstitutionForAsyncMethodsWithSuper(),d.size)){const n=createSuperAccessVariableStatement(t,a,o,d);f[getNodeId(n)]=!0,insertStatementsAfterStandardPrologue(e,[n])}S&&insertStatementsAfterStandardPrologue(e,[createCaptureArgumentsStatement()]);const i=t.createBlock(e,!0);setTextRange(i,o.body),r&&p&&(a.hasNodeCheckFlag(o,256)?addEmitHelper(i,Si):a.hasNodeCheckFlag(o,128)&&addEmitHelper(i,Ti)),N=i}return l=v,y||(d=b,p=C,u=T),N}function enableSubstitutionForAsyncMethodsWithSuper(){1&m||(m|=1,e.enableSubstitution(214),e.enableSubstitution(212),e.enableSubstitution(213),e.enableEmitNotification(264),e.enableEmitNotification(175),e.enableEmitNotification(178),e.enableEmitNotification(179),e.enableEmitNotification(177),e.enableEmitNotification(244))}function substitutePropertyAccessExpression(e){return 108===e.expression.kind?setTextRange(t.createPropertyAccessExpression(t.createUniqueName("_super",48),e.name),e):e}function substituteElementAccessExpression(e){return 108===e.expression.kind?function createSuperElementAccessInAsyncMethod(e,n){return setTextRange(256&_?t.createPropertyAccessExpression(t.createCallExpression(t.createUniqueName("_superIndex",48),void 0,[e]),"value"):t.createCallExpression(t.createUniqueName("_superIndex",48),void 0,[e]),n)}(e.argumentExpression,e):e}}function createSuperAccessVariableStatement(e,t,n,r){const i=t.hasNodeCheckFlag(n,256),o=[];return r.forEach((t,n)=>{const r=unescapeLeadingUnderscores(n),a=[];a.push(e.createPropertyAssignment("get",e.createArrowFunction(void 0,void 0,[],void 0,void 0,setEmitFlags(e.createPropertyAccessExpression(setEmitFlags(e.createSuper(),8),r),8)))),i&&a.push(e.createPropertyAssignment("set",e.createArrowFunction(void 0,void 0,[e.createParameterDeclaration(void 0,void 0,"v",void 0,void 0,void 0)],void 0,void 0,e.createAssignment(setEmitFlags(e.createPropertyAccessExpression(setEmitFlags(e.createSuper(),8),r),8),e.createIdentifier("v"))))),o.push(e.createPropertyAssignment(r,e.createObjectLiteralExpression(a)))}),e.createVariableStatement(void 0,e.createVariableDeclarationList([e.createVariableDeclaration(e.createUniqueName("_super",48),void 0,void 0,e.createCallExpression(e.createPropertyAccessExpression(e.createIdentifier("Object"),"create"),void 0,[e.createNull(),e.createObjectLiteralExpression(o,!0)]))],2))}function transformES2018(e){const{factory:t,getEmitHelperFactory:n,resumeLexicalEnvironment:r,endLexicalEnvironment:i,hoistVariableDeclaration:o}=e,a=e.getEmitResolver(),s=e.getCompilerOptions(),c=zn(s),l=e.onEmitNode;e.onEmitNode=function onEmitNode(e,t,n){if(1&T&&function isSuperContainer(e){const t=e.kind;return 264===t||177===t||175===t||178===t||179===t}(t)){const r=(a.hasNodeCheckFlag(t,128)?128:0)|(a.hasNodeCheckFlag(t,256)?256:0);if(r!==S){const i=S;return S=r,l(e,t,n),void(S=i)}}else if(T&&v[getNodeId(t)]){const r=S;return S=0,l(e,t,n),void(S=r)}l(e,t,n)};const d=e.onSubstituteNode;e.onSubstituteNode=function onSubstituteNode(e,n){if(n=d(e,n),1===e&&S)return function substituteExpression(e){switch(e.kind){case 212:return substitutePropertyAccessExpression(e);case 213:return substituteElementAccessExpression(e);case 214:return function substituteCallExpression(e){const n=e.expression;if(isSuperProperty(n)){const r=isPropertyAccessExpression(n)?substitutePropertyAccessExpression(n):substituteElementAccessExpression(n);return t.createCallExpression(t.createPropertyAccessExpression(r,"call"),void 0,[t.createThis(),...e.arguments])}return e}(e)}return e}(n);return n};let p,u,m,_,f,g,y=!1,T=0,S=0,x=0;const v=[];return chainBundle(e,function transformSourceFile(n){if(n.isDeclarationFile)return n;m=n;const r=function visitSourceFile(n){const r=enterSubtree(2,isEffectiveStrictModeSourceFile(n,s)?0:1);y=!1;const i=visitEachChild(n,visitor,e),o=concatenate(i.statements,_&&[t.createVariableStatement(void 0,t.createVariableDeclarationList(_))]),a=t.updateSourceFile(i,setTextRange(t.createNodeArray(o),n.statements));return exitSubtree(r),a}(n);return addEmitHelpers(r,e.readEmitHelpers()),m=void 0,_=void 0,r});function enterSubtree(e,t){const n=x;return x=3&(x&~e|t),n}function exitSubtree(e){x=e}function recordTaggedTemplateString(e){_=append(_,t.createVariableDeclaration(e))}function visitor(e){return visitorWorker(e,!1)}function visitorWithUnusedExpressionResult(e){return visitorWorker(e,!0)}function visitorNoAsyncModifier(e){if(134!==e.kind)return e}function doWithHierarchyFacts(e,t,n,r){if(function affectsSubtree(e,t){return x!==(x&~e|t)}(n,r)){const i=enterSubtree(n,r),o=e(t);return exitSubtree(i),o}return e(t)}function visitDefault(t){return visitEachChild(t,visitor,e)}function visitorWorker(r,i){if(!(128&r.transformFlags))return r;switch(r.kind){case 224:return function visitAwaitExpression(r){if(2&p&&1&p)return setOriginalNode(setTextRange(t.createYieldExpression(void 0,n().createAwaitHelper(visitNode(r.expression,visitor,isExpression))),r),r);return visitEachChild(r,visitor,e)}(r);case 230:return function visitYieldExpression(r){if(2&p&&1&p){if(r.asteriskToken){const e=visitNode(h.checkDefined(r.expression),visitor,isExpression);return setOriginalNode(setTextRange(t.createYieldExpression(void 0,n().createAwaitHelper(t.updateYieldExpression(r,r.asteriskToken,setTextRange(n().createAsyncDelegatorHelper(setTextRange(n().createAsyncValuesHelper(e),e)),e)))),r),r)}return setOriginalNode(setTextRange(t.createYieldExpression(void 0,createDownlevelAwait(r.expression?visitNode(r.expression,visitor,isExpression):t.createVoidZero())),r),r)}return visitEachChild(r,visitor,e)}(r);case 254:return function visitReturnStatement(n){if(2&p&&1&p)return t.updateReturnStatement(n,createDownlevelAwait(n.expression?visitNode(n.expression,visitor,isExpression):t.createVoidZero()));return visitEachChild(n,visitor,e)}(r);case 257:return function visitLabeledStatement(n){if(2&p){const e=unwrapInnermostStatementOfLabel(n);return 251===e.kind&&e.awaitModifier?visitForOfStatement(e,n):t.restoreEnclosingLabel(visitNode(e,visitor,isStatement,t.liftToBlock),n)}return visitEachChild(n,visitor,e)}(r);case 211:return function visitObjectLiteralExpression(r){if(65536&r.transformFlags){const e=function chunkObjectLiteralElements(e){let n;const r=[];for(const i of e)if(306===i.kind){n&&(r.push(t.createObjectLiteralExpression(n)),n=void 0);const e=i.expression;r.push(visitNode(e,visitor,isExpression))}else n=append(n,304===i.kind?t.createPropertyAssignment(i.name,visitNode(i.initializer,visitor,isExpression)):visitNode(i,visitor,isObjectLiteralElementLike));n&&r.push(t.createObjectLiteralExpression(n));return r}(r.properties);e.length&&211!==e[0].kind&&e.unshift(t.createObjectLiteralExpression());let i=e[0];if(e.length>1){for(let t=1;t=2&&(a.hasNodeCheckFlag(o,256)||a.hasNodeCheckFlag(o,128));if(_){!function enableSubstitutionForAsyncMethodsWithSuper(){1&T||(T|=1,e.enableSubstitution(214),e.enableSubstitution(212),e.enableSubstitution(213),e.enableEmitNotification(264),e.enableEmitNotification(175),e.enableEmitNotification(178),e.enableEmitNotification(179),e.enableEmitNotification(177),e.enableEmitNotification(244))}();const n=createSuperAccessVariableStatement(t,a,o,f);v[getNodeId(n)]=!0,insertStatementsAfterStandardPrologue(p,[n])}p.push(m);const y=t.updateBlock(o.body,p);return _&&g&&(a.hasNodeCheckFlag(o,256)?addEmitHelper(y,Si):a.hasNodeCheckFlag(o,128)&&addEmitHelper(y,Ti)),f=l,g=d,y}function transformFunctionBody2(e){r();let n=0;const o=[],a=visitNode(e.body,visitor,isConciseBody)??t.createBlock([]);isBlock(a)&&(n=t.copyPrologue(a.statements,o,!1,visitor)),addRange(o,appendObjectRestAssignmentsIfNeeded(void 0,e));const s=i();if(n>0||some(o)||some(s)){const e=t.converters.convertToFunctionBlock(a,!0);return insertStatementsAfterStandardPrologue(o,s),addRange(o,e.statements.slice(n)),t.updateBlock(e,setTextRange(t.createNodeArray(o),e.statements))}return a}function appendObjectRestAssignmentsIfNeeded(n,r){let i=!1;for(const o of r.parameters)if(i){if(isBindingPattern(o.name)){if(o.name.elements.length>0){const r=flattenDestructuringBinding(o,visitor,e,0,t.getGeneratedNameForNode(o));if(some(r)){const e=t.createVariableDeclarationList(r),i=t.createVariableStatement(void 0,e);setEmitFlags(i,2097152),n=append(n,i)}}else if(o.initializer){const e=t.getGeneratedNameForNode(o),r=visitNode(o.initializer,visitor,isExpression),i=t.createAssignment(e,r),a=t.createExpressionStatement(i);setEmitFlags(a,2097152),n=append(n,a)}}else if(o.initializer){const e=t.cloneNode(o.name);setTextRange(e,o.name),setEmitFlags(e,96);const r=visitNode(o.initializer,visitor,isExpression);addEmitFlags(r,3168);const i=t.createAssignment(e,r);setTextRange(i,o),setEmitFlags(i,3072);const a=t.createBlock([t.createExpressionStatement(i)]);setTextRange(a,o),setEmitFlags(a,3905);const s=t.createTypeCheck(t.cloneNode(o.name),"undefined"),c=t.createIfStatement(s,a);startOnNewLine(c),setTextRange(c,o),setEmitFlags(c,2101056),n=append(n,c)}}else if(65536&o.transformFlags){i=!0;const r=flattenDestructuringBinding(o,visitor,e,1,t.getGeneratedNameForNode(o),!1,!0);if(some(r)){const e=t.createVariableDeclarationList(r),i=t.createVariableStatement(void 0,e);setEmitFlags(i,2097152),n=append(n,i)}}return n}function substitutePropertyAccessExpression(e){return 108===e.expression.kind?setTextRange(t.createPropertyAccessExpression(t.createUniqueName("_super",48),e.name),e):e}function substituteElementAccessExpression(e){return 108===e.expression.kind?function createSuperElementAccessInAsyncMethod(e,n){return setTextRange(256&S?t.createPropertyAccessExpression(t.createCallExpression(t.createIdentifier("_superIndex"),void 0,[e]),"value"):t.createCallExpression(t.createIdentifier("_superIndex"),void 0,[e]),n)}(e.argumentExpression,e):e}}function transformES2019(e){const t=e.factory;return chainBundle(e,function transformSourceFile(t){if(t.isDeclarationFile)return t;return visitEachChild(t,visitor,e)});function visitor(n){return 64&n.transformFlags?300===n.kind?function visitCatchClause(n){if(!n.variableDeclaration)return t.updateCatchClause(n,t.createVariableDeclaration(t.createTempVariable(void 0)),visitNode(n.block,visitor,isBlock));return visitEachChild(n,visitor,e)}(n):visitEachChild(n,visitor,e):n}}function transformES2020(e){const{factory:t,hoistVariableDeclaration:n}=e;return chainBundle(e,function transformSourceFile(t){if(t.isDeclarationFile)return t;return visitEachChild(t,visitor,e)});function visitor(r){if(!(32&r.transformFlags))return r;switch(r.kind){case 214:{const e=visitNonOptionalCallExpression(r,!1);return h.assertNotNode(e,isSyntheticReference),e}case 212:case 213:if(isOptionalChain(r)){const e=visitOptionalExpression(r,!1,!1);return h.assertNotNode(e,isSyntheticReference),e}return visitEachChild(r,visitor,e);case 227:return 61===r.operatorToken.kind?function transformNullishCoalescingExpression(e){let r=visitNode(e.left,visitor,isExpression),i=r;isSimpleCopiableExpression(r)||(i=t.createTempVariable(n),r=t.createAssignment(i,r));return setTextRange(t.createConditionalExpression(createNotNullCondition(r,i),void 0,i,void 0,visitNode(e.right,visitor,isExpression)),e)}(r):visitEachChild(r,visitor,e);case 221:return function visitDeleteExpression(e){return isOptionalChain(skipParentheses(e.expression))?setOriginalNode(visitNonOptionalExpression(e.expression,!1,!0),e):t.updateDeleteExpression(e,visitNode(e.expression,visitor,isExpression))}(r);default:return visitEachChild(r,visitor,e)}}function visitNonOptionalParenthesizedExpression(e,n,r){const i=visitNonOptionalExpression(e.expression,n,r);return isSyntheticReference(i)?t.createSyntheticReferenceExpression(t.updateParenthesizedExpression(e,i.expression),i.thisArg):t.updateParenthesizedExpression(e,i)}function visitNonOptionalCallExpression(n,r){if(isOptionalChain(n))return visitOptionalExpression(n,r,!1);if(isParenthesizedExpression(n.expression)&&isOptionalChain(skipParentheses(n.expression))){const e=visitNonOptionalParenthesizedExpression(n.expression,!0,!1),r=visitNodes2(n.arguments,visitor,isExpression);return isSyntheticReference(e)?setTextRange(t.createFunctionCallCall(e.expression,e.thisArg,r),n):t.updateCallExpression(n,e,void 0,r)}return visitEachChild(n,visitor,e)}function visitNonOptionalExpression(e,r,i){switch(e.kind){case 218:return visitNonOptionalParenthesizedExpression(e,r,i);case 212:case 213:return function visitNonOptionalPropertyOrElementAccessExpression(e,r,i){if(isOptionalChain(e))return visitOptionalExpression(e,r,i);let o,a=visitNode(e.expression,visitor,isExpression);return h.assertNotNode(a,isSyntheticReference),r&&(isSimpleCopiableExpression(a)?o=a:(o=t.createTempVariable(n),a=t.createAssignment(o,a))),a=212===e.kind?t.updatePropertyAccessExpression(e,a,visitNode(e.name,visitor,isIdentifier)):t.updateElementAccessExpression(e,a,visitNode(e.argumentExpression,visitor,isExpression)),o?t.createSyntheticReferenceExpression(a,o):a}(e,r,i);case 214:return visitNonOptionalCallExpression(e,r);default:return visitNode(e,visitor,isExpression)}}function visitOptionalExpression(e,r,i){const{expression:o,chain:a}=function flattenChain(e){h.assertNotNode(e,isNonNullChain);const t=[e];for(;!e.questionDotToken&&!isTaggedTemplateExpression(e);)e=cast(skipPartiallyEmittedExpressions(e.expression),isOptionalChain),h.assertNotNode(e,isNonNullChain),t.unshift(e);return{expression:e.expression,chain:t}}(e),s=visitNonOptionalExpression(skipPartiallyEmittedExpressions(o),isCallChain(a[0]),!1);let c=isSyntheticReference(s)?s.thisArg:void 0,l=isSyntheticReference(s)?s.expression:s,d=t.restoreOuterExpressions(o,l,8);isSimpleCopiableExpression(l)||(l=t.createTempVariable(n),d=t.createAssignment(l,d));let p,u=l;for(let e=0;ee&&addRange(c,visitNodes2(n.statements,visitor,isStatement,e,d-e));break}d++}h.assert(dt&&(t=e)}return t}(n.caseBlock.clauses);if(r){const i=createEnvBinding();return createDownlevelUsingStatements([t.updateSwitchStatement(n,visitNode(n.expression,visitor,isExpression),t.updateCaseBlock(n.caseBlock,n.caseBlock.clauses.map(n=>function visitCaseOrDefaultClause(n,r){if(0!==getUsingKindOfStatements(n.statements))return isCaseClause(n)?t.updateCaseClause(n,visitNode(n.expression,visitor,isExpression),transformUsingDeclarations(n.statements,0,n.statements.length,r,void 0)):t.updateDefaultClause(n,transformUsingDeclarations(n.statements,0,n.statements.length,r,void 0));return visitEachChild(n,visitor,e)}(n,i))))],i,2===r)}return visitEachChild(n,visitor,e)}(n);default:return visitEachChild(n,visitor,e)}}function transformUsingDeclarations(i,o,a,s,d){const p=[];for(let r=o;rt&&(t=e)}return t}function transformJsx(e){const{factory:t,getEmitHelperFactory:n}=e,r=e.getCompilerOptions();let i,o;return chainBundle(e,function transformSourceFile(n){if(n.isDeclarationFile)return n;i=n,o={},o.importSpecifier=getJSXImplicitImportBase(r,n);let a=visitEachChild(n,visitor,e);addEmitHelpers(a,e.readEmitHelpers());let s=a.statements;o.filenameDeclaration&&(s=insertStatementAfterCustomPrologue(s.slice(),t.createVariableStatement(void 0,t.createVariableDeclarationList([o.filenameDeclaration],2))));if(o.utilizedImplicitRuntimeImports)for(const[e,r]of arrayFrom(o.utilizedImplicitRuntimeImports.entries()))if(isExternalModule(n)){const n=t.createImportDeclaration(void 0,t.createImportClause(void 0,void 0,t.createNamedImports(arrayFrom(r.values()))),t.createStringLiteral(e),void 0);setParentRecursive(n,!1),s=insertStatementAfterCustomPrologue(s.slice(),n)}else if(isExternalOrCommonJsModule(n)){const n=t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(t.createObjectBindingPattern(arrayFrom(r.values(),e=>t.createBindingElement(void 0,e.propertyName,e.name))),void 0,void 0,t.createCallExpression(t.createIdentifier("require"),void 0,[t.createStringLiteral(e)]))],2));setParentRecursive(n,!1),s=insertStatementAfterCustomPrologue(s.slice(),n)}s!==a.statements&&(a=t.updateSourceFile(a,s));return o=void 0,a});function getCurrentFileNameExpression(){if(o.filenameDeclaration)return o.filenameDeclaration.name;const e=t.createVariableDeclaration(t.createUniqueName("_jsxFileName",48),void 0,void 0,t.createStringLiteral(i.fileName));return o.filenameDeclaration=e,o.filenameDeclaration.name}function getJsxFactoryCallee(e){const t=function getJsxFactoryCalleePrimitive(e){return 5===r.jsx?"jsxDEV":e?"jsxs":"jsx"}(e);return getImplicitImportForName(t)}function getImplicitImportForName(e){var n,i;const a="createElement"===e?o.importSpecifier:getJSXRuntimeImport(o.importSpecifier,r),s=null==(i=null==(n=o.utilizedImplicitRuntimeImports)?void 0:n.get(a))?void 0:i.get(e);if(s)return s.name;o.utilizedImplicitRuntimeImports||(o.utilizedImplicitRuntimeImports=new Map);let c=o.utilizedImplicitRuntimeImports.get(a);c||(c=new Map,o.utilizedImplicitRuntimeImports.set(a,c));const l=t.createUniqueName(`_${e}`,112),d=t.createImportSpecifier(!1,t.createIdentifier(e),l);return setIdentifierGeneratedImportReference(l,d),c.set(e,d),l}function visitor(t){return 2&t.transformFlags?function visitorWorker(t){switch(t.kind){case 285:return visitJsxElement(t,!1);case 286:return visitJsxSelfClosingElement(t,!1);case 289:return visitJsxFragment(t,!1);case 295:return visitJsxExpression(t);default:return visitEachChild(t,visitor,e)}}(t):t}function transformJsxChildToExpression(e){switch(e.kind){case 12:return function visitJsxText(e){const n=function fixupWhitespaceAndDecodeEntities(e){let t,n=0,r=-1;for(let i=0;iisPropertyAssignment(e)&&(isIdentifier(e.name)&&"__proto__"===idText(e.name)||isStringLiteral(e.name)&&"__proto__"===e.name.text))}function shouldUseCreateElement(e){return void 0===o.importSpecifier||function hasKeyAfterPropsSpread(e){let t=!1;for(const n of e.attributes.properties)if(!isJsxSpreadAttribute(n)||isObjectLiteralExpression(n.expression)&&!n.expression.properties.some(isSpreadAssignment)){if(t&&isJsxAttribute(n)&&isIdentifier(n.name)&&"key"===n.name.escapedText)return!0}else t=!0;return!1}(e)}function visitJsxElement(e,t){return(shouldUseCreateElement(e.openingElement)?visitJsxOpeningLikeElementCreateElement:visitJsxOpeningLikeElementJSX)(e.openingElement,e.children,t,e)}function visitJsxSelfClosingElement(e,t){return(shouldUseCreateElement(e)?visitJsxOpeningLikeElementCreateElement:visitJsxOpeningLikeElementJSX)(e,void 0,t,e)}function visitJsxFragment(e,t){return(void 0===o.importSpecifier?visitJsxOpeningFragmentCreateElement:visitJsxOpeningFragmentJSX)(e.openingFragment,e.children,t,e)}function convertJsxChildrenToChildrenPropAssignment(e){const n=getSemanticJsxChildren(e);if(1===length(n)&&!n[0].dotDotDotToken){const e=transformJsxChildToExpression(n[0]);return e&&t.createPropertyAssignment("children",e)}const r=mapDefined(e,transformJsxChildToExpression);return length(r)?t.createPropertyAssignment("children",t.createArrayLiteralExpression(r)):void 0}function visitJsxOpeningLikeElementJSX(e,n,r,i){const o=getTagName(e),a=n&&n.length?convertJsxChildrenToChildrenPropAssignment(n):void 0,s=find(e.attributes.properties,e=>!!e.name&&isIdentifier(e.name)&&"key"===e.name.escapedText),c=s?filter(e.attributes.properties,e=>e!==s):e.attributes.properties;return visitJsxOpeningLikeElementOrFragmentJSX(o,length(c)?transformJsxAttributesToObjectProps(c,a):t.createObjectLiteralExpression(a?[a]:l),s,n||l,r,i)}function visitJsxOpeningLikeElementOrFragmentJSX(e,n,o,a,s,c){var l;const d=getSemanticJsxChildren(a),p=length(d)>1||!!(null==(l=d[0])?void 0:l.dotDotDotToken),u=[e,n];if(o&&u.push(transformJsxAttributeInitializer(o.initializer)),5===r.jsx){const e=getOriginalNode(i);if(e&&isSourceFile(e)){void 0===o&&u.push(t.createVoidZero()),u.push(p?t.createTrue():t.createFalse());const n=getLineAndCharacterOfPosition(e,c.pos);u.push(t.createObjectLiteralExpression([t.createPropertyAssignment("fileName",getCurrentFileNameExpression()),t.createPropertyAssignment("lineNumber",t.createNumericLiteral(n.line+1)),t.createPropertyAssignment("columnNumber",t.createNumericLiteral(n.character+1))])),u.push(t.createThis())}}const m=setTextRange(t.createCallExpression(getJsxFactoryCallee(p),void 0,u),c);return s&&startOnNewLine(m),m}function visitJsxOpeningLikeElementCreateElement(n,a,s,c){const l=getTagName(n),d=n.attributes.properties,p=length(d)?transformJsxAttributesToObjectProps(d):t.createNull(),u=void 0===o.importSpecifier?createJsxFactoryExpression(t,e.getEmitResolver().getJsxFactoryEntity(i),r.reactNamespace,n):getImplicitImportForName("createElement"),m=createExpressionForJsxElement(t,u,l,p,mapDefined(a,transformJsxChildToExpression),c);return s&&startOnNewLine(m),m}function visitJsxOpeningFragmentJSX(e,n,r,i){let o;if(n&&n.length){const e=function convertJsxChildrenToChildrenPropObject(e){const n=convertJsxChildrenToChildrenPropAssignment(e);return n&&t.createObjectLiteralExpression([n])}(n);e&&(o=e)}return visitJsxOpeningLikeElementOrFragmentJSX(function getImplicitJsxFragmentReference(){return getImplicitImportForName("Fragment")}(),o||t.createObjectLiteralExpression([]),void 0,n,r,i)}function visitJsxOpeningFragmentCreateElement(n,o,a,s){const c=createExpressionForJsxFragment(t,e.getEmitResolver().getJsxFactoryEntity(i),e.getEmitResolver().getJsxFragmentFactoryEntity(i),r.reactNamespace,mapDefined(o,transformJsxChildToExpression),n,s);return a&&startOnNewLine(c),c}function transformJsxAttributesToObjectProps(e,i){const o=zn(r);return o&&o>=5?t.createObjectLiteralExpression(function transformJsxAttributesToProps(e,n){const r=flatten(spanMap(e,isJsxSpreadAttribute,(e,n)=>flatten(map(e,e=>n?function transformJsxSpreadAttributeToProps(e){return isObjectLiteralExpression(e.expression)&&!hasProto(e.expression)?sameMap(e.expression.properties,e=>h.checkDefined(visitNode(e,visitor,isObjectLiteralElementLike))):t.createSpreadAssignment(h.checkDefined(visitNode(e.expression,visitor,isExpression)))}(e):transformJsxAttributeToObjectLiteralElement(e)))));n&&r.push(n);return r}(e,i)):function transformJsxAttributesToExpression(e,r){const i=[];let o=[];for(const t of e)if(isJsxSpreadAttribute(t)){if(isObjectLiteralExpression(t.expression)&&!hasProto(t.expression)){for(const e of t.expression.properties)isSpreadAssignment(e)?(finishObjectLiteralIfNeeded(),i.push(h.checkDefined(visitNode(e.expression,visitor,isExpression)))):o.push(h.checkDefined(visitNode(e,visitor)));continue}finishObjectLiteralIfNeeded(),i.push(h.checkDefined(visitNode(t.expression,visitor,isExpression)))}else o.push(transformJsxAttributeToObjectLiteralElement(t));r&&o.push(r);finishObjectLiteralIfNeeded(),i.length&&!isObjectLiteralExpression(i[0])&&i.unshift(t.createObjectLiteralExpression());return singleOrUndefined(i)||n().createAssignHelper(i);function finishObjectLiteralIfNeeded(){o.length&&(i.push(t.createObjectLiteralExpression(o)),o=[])}}(e,i)}function transformJsxAttributeToObjectLiteralElement(e){const n=function getAttributeName(e){const n=e.name;if(isIdentifier(n)){const e=idText(n);return/^[A-Z_]\w*$/i.test(e)?n:t.createStringLiteral(e)}return t.createStringLiteral(idText(n.namespace)+":"+idText(n.name))}(e),r=transformJsxAttributeInitializer(e.initializer);return t.createPropertyAssignment(n,r)}function transformJsxAttributeInitializer(e){if(void 0===e)return t.createTrue();if(11===e.kind){const n=void 0!==e.singleQuote?e.singleQuote:!isStringDoubleQuoted(e,i);return setTextRange(t.createStringLiteral(function tryDecodeEntities(e){const t=decodeEntities(e);return t===e?void 0:t}(e.text)||e.text,n),e)}return 295===e.kind?void 0===e.expression?t.createTrue():h.checkDefined(visitNode(e.expression,visitor,isExpression)):isJsxElement(e)?visitJsxElement(e,!1):isJsxSelfClosingElement(e)?visitJsxSelfClosingElement(e,!1):isJsxFragment(e)?visitJsxFragment(e,!1):h.failBadSyntaxKind(e)}function addLineOfJsxText(e,t){const n=decodeEntities(t);return void 0===e?n:e+" "+n}function decodeEntities(e){return e.replace(/&((#((\d+)|x([\da-fA-F]+)))|(\w+));/g,(e,t,n,r,i,o,a)=>{if(i)return utf16EncodeAsString(parseInt(i,10));if(o)return utf16EncodeAsString(parseInt(o,16));{const t=ha.get(a);return t?utf16EncodeAsString(t):e}})}function getTagName(e){if(285===e.kind)return getTagName(e.openingElement);{const n=e.tagName;return isIdentifier(n)&&isIntrinsicJsxName(n.escapedText)?t.createStringLiteral(idText(n)):isJsxNamespacedName(n)?t.createStringLiteral(idText(n.namespace)+":"+idText(n.name)):createExpressionFromEntityName(t,n)}}function visitJsxExpression(e){const n=visitNode(e.expression,visitor,isExpression);return e.dotDotDotToken?t.createSpreadElement(n):n}}var ha=new Map(Object.entries({quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830}));function transformES2016(e){const{factory:t,hoistVariableDeclaration:n}=e;return chainBundle(e,function transformSourceFile(t){if(t.isDeclarationFile)return t;return visitEachChild(t,visitor,e)});function visitor(r){return 512&r.transformFlags?227===r.kind?function visitBinaryExpression(r){switch(r.operatorToken.kind){case 68:return function visitExponentiationAssignmentExpression(e){let r,i;const o=visitNode(e.left,visitor,isExpression),a=visitNode(e.right,visitor,isExpression);if(isElementAccessExpression(o)){const e=t.createTempVariable(n),a=t.createTempVariable(n);r=setTextRange(t.createElementAccessExpression(setTextRange(t.createAssignment(e,o.expression),o.expression),setTextRange(t.createAssignment(a,o.argumentExpression),o.argumentExpression)),o),i=setTextRange(t.createElementAccessExpression(e,a),o)}else if(isPropertyAccessExpression(o)){const e=t.createTempVariable(n);r=setTextRange(t.createPropertyAccessExpression(setTextRange(t.createAssignment(e,o.expression),o.expression),o.name),o),i=setTextRange(t.createPropertyAccessExpression(e,o.name),o)}else r=o,i=o;return setTextRange(t.createAssignment(r,setTextRange(t.createGlobalMethodCall("Math","pow",[i,a]),e)),e)}(r);case 43:return function visitExponentiationExpression(e){const n=visitNode(e.left,visitor,isExpression),r=visitNode(e.right,visitor,isExpression);return setTextRange(t.createGlobalMethodCall("Math","pow",[n,r]),e)}(r);default:return visitEachChild(r,visitor,e)}}(r):visitEachChild(r,visitor,e):r}}function createSpreadSegment(e,t){return{kind:e,expression:t}}function transformES2015(e){const{factory:t,getEmitHelperFactory:n,startLexicalEnvironment:r,resumeLexicalEnvironment:i,endLexicalEnvironment:o,hoistVariableDeclaration:a}=e,s=e.getCompilerOptions(),c=e.getEmitResolver(),l=e.onSubstituteNode,d=e.onEmitNode;let u,m,_,f,g;function recordTaggedTemplateString(e){f=append(f,t.createVariableDeclaration(e))}e.onEmitNode=function onEmitNode(e,t,n){if(1&y&&isFunctionLike(t)){const r=enterSubtree(32670,16&getEmitFlags(t)?81:65);return d(e,t,n),void exitSubtree(r,0,0)}d(e,t,n)},e.onSubstituteNode=function onSubstituteNode(e,n){if(n=l(e,n),1===e)return function substituteExpression(e){switch(e.kind){case 80:return function substituteExpressionIdentifier(e){if(2&y&&!isInternalName(e)){const n=c.getReferencedDeclarationWithCollidingName(e);if(n&&(!isClassLike(n)||!function isPartOfClassBody(e,t){let n=getParseTreeNode(t);if(!n||n===e||n.end<=e.pos||n.pos>=e.end)return!1;const r=getEnclosingBlockScopeContainer(e);for(;n;){if(n===r||n===e)return!1;if(isClassElement(n)&&n.parent===e)return!0;n=n.parent}return!1}(n,e)))return setTextRange(t.getGeneratedNameForNode(getNameOfDeclaration(n)),e)}return e}(e);case 110:return function substituteThisKeyword(e){if(1&y&&16&_)return setTextRange(createCapturedThis(),e);return e}(e)}return e}(n);if(isIdentifier(n))return function substituteIdentifier(e){if(2&y&&!isInternalName(e)){const n=getParseTreeNode(e,isIdentifier);if(n&&function isNameOfDeclarationWithCollidingName(e){switch(e.parent.kind){case 209:case 264:case 267:case 261:return e.parent.name===e&&c.isDeclarationWithCollidingName(e.parent)}return!1}(n))return setTextRange(t.getGeneratedNameForNode(n),e)}return e}(n);return n};let y=0;return chainBundle(e,function transformSourceFile(n){if(n.isDeclarationFile)return n;u=n,m=n.text;const i=function visitSourceFile(e){const n=enterSubtree(8064,64),i=[],a=[];r();const s=t.copyPrologue(e.statements,i,!1,visitor);addRange(a,visitNodes2(e.statements,visitor,isStatement,s)),f&&a.push(t.createVariableStatement(void 0,t.createVariableDeclarationList(f)));return t.mergeLexicalEnvironment(i,o()),insertCaptureThisForNodeIfNeeded(i,e),exitSubtree(n,0,0),t.updateSourceFile(e,setTextRange(t.createNodeArray(concatenate(i,a)),e.statements))}(n);return addEmitHelpers(i,e.readEmitHelpers()),u=void 0,m=void 0,f=void 0,_=0,i});function enterSubtree(e,t){const n=_;return _=32767&(_&~e|t),n}function exitSubtree(e,t,n){_=-32768&(_&~t|n)|e}function isReturnVoidStatementInConstructorWithCapturedSuper(e){return!!(8192&_)&&254===e.kind&&!e.expression}function shouldVisitNode(e){return!!(1024&e.transformFlags)||void 0!==g||8192&_&&function isOrMayContainReturnCompletion(e){return 4194304&e.transformFlags&&(isReturnStatement(e)||isIfStatement(e)||isWithStatement(e)||isSwitchStatement(e)||isCaseBlock(e)||isCaseClause(e)||isDefaultClause(e)||isTryStatement(e)||isCatchClause(e)||isLabeledStatement(e)||isIterationStatement(e,!1)||isBlock(e))}(e)||isIterationStatement(e,!1)&&shouldConvertIterationStatement(e)||!!(1&getInternalEmitFlags(e))}function visitor(e){return shouldVisitNode(e)?visitorWorker(e,!1):e}function visitorWithUnusedExpressionResult(e){return shouldVisitNode(e)?visitorWorker(e,!0):e}function classWrapperStatementVisitor(e){if(shouldVisitNode(e)){const t=getOriginalNode(e);if(isPropertyDeclaration(t)&&hasStaticModifier(t)){const t=enterSubtree(32670,16449),n=visitorWorker(e,!1);return exitSubtree(t,229376,0),n}return visitorWorker(e,!1)}return e}function callExpressionVisitor(e){return 108===e.kind?visitSuperKeyword(e,!0):visitor(e)}function visitorWorker(n,r){switch(n.kind){case 126:return;case 264:return function visitClassDeclaration(e){const n=t.createVariableDeclaration(t.getLocalName(e,!0),void 0,void 0,transformClassLikeDeclarationToExpression(e));setOriginalNode(n,e);const r=[],i=t.createVariableStatement(void 0,t.createVariableDeclarationList([n]));if(setOriginalNode(i,e),setTextRange(i,e),startOnNewLine(i),r.push(i),hasSyntacticModifier(e,32)){const n=hasSyntacticModifier(e,2048)?t.createExportDefault(t.getLocalName(e)):t.createExternalModuleExport(t.getLocalName(e));setOriginalNode(n,i),r.push(n)}return singleOrMany(r)}(n);case 232:return function visitClassExpression(e){return transformClassLikeDeclarationToExpression(e)}(n);case 170:return function visitParameter(e){return e.dotDotDotToken?void 0:isBindingPattern(e.name)?setOriginalNode(setTextRange(t.createParameterDeclaration(void 0,void 0,t.getGeneratedNameForNode(e),void 0,void 0,void 0),e),e):e.initializer?setOriginalNode(setTextRange(t.createParameterDeclaration(void 0,void 0,e.name,void 0,void 0,void 0),e),e):e}(n);case 263:return function visitFunctionDeclaration(n){const r=g;g=void 0;const i=enterSubtree(32670,65),o=visitParameterList(n.parameters,visitor,e),a=transformFunctionBody2(n),s=32768&_?t.getLocalName(n):n.name;return exitSubtree(i,229376,0),g=r,t.updateFunctionDeclaration(n,visitNodes2(n.modifiers,visitor,isModifier),n.asteriskToken,s,void 0,o,void 0,a)}(n);case 220:return function visitArrowFunction(n){16384&n.transformFlags&&!(16384&_)&&(_|=131072);const r=g;g=void 0;const i=enterSubtree(15232,66),o=t.createFunctionExpression(void 0,void 0,void 0,void 0,visitParameterList(n.parameters,visitor,e),void 0,transformFunctionBody2(n));return setTextRange(o,n),setOriginalNode(o,n),setEmitFlags(o,16),exitSubtree(i,0,0),g=r,o}(n);case 219:return function visitFunctionExpression(n){const r=524288&getEmitFlags(n)?enterSubtree(32662,69):enterSubtree(32670,65),i=g;g=void 0;const o=visitParameterList(n.parameters,visitor,e),a=transformFunctionBody2(n),s=32768&_?t.getLocalName(n):n.name;return exitSubtree(r,229376,0),g=i,t.updateFunctionExpression(n,void 0,n.asteriskToken,s,void 0,o,void 0,a)}(n);case 261:return visitVariableDeclaration(n);case 80:return visitIdentifier(n);case 262:return function visitVariableDeclarationList(n){if(7&n.flags||524288&n.transformFlags){7&n.flags&&enableSubstitutionsForBlockScopedBindings();const e=visitNodes2(n.declarations,1&n.flags?visitVariableDeclarationInLetDeclarationList:visitVariableDeclaration,isVariableDeclaration),r=t.createVariableDeclarationList(e);return setOriginalNode(r,n),setTextRange(r,n),setCommentRange(r,n),524288&n.transformFlags&&(isBindingPattern(n.declarations[0].name)||isBindingPattern(last(n.declarations).name))&&setSourceMapRange(r,function getRangeUnion(e){let t=-1,n=-1;for(const r of e)t=-1===t?r.pos:-1===r.pos?t:Math.min(t,r.pos),n=Math.max(n,r.end);return createRange(t,n)}(e)),r}return visitEachChild(n,visitor,e)}(n);case 256:return function visitSwitchStatement(t){if(void 0!==g){const n=g.allowedNonLabeledJumps;g.allowedNonLabeledJumps|=2;const r=visitEachChild(t,visitor,e);return g.allowedNonLabeledJumps=n,r}return visitEachChild(t,visitor,e)}(n);case 270:return function visitCaseBlock(t){const n=enterSubtree(7104,0),r=visitEachChild(t,visitor,e);return exitSubtree(n,0,0),r}(n);case 242:return function visitBlock(t,n){if(n)return visitEachChild(t,visitor,e);const r=256&_?enterSubtree(7104,512):enterSubtree(6976,128),i=visitEachChild(t,visitor,e);return exitSubtree(r,0,0),i}(n,!1);case 253:case 252:return function visitBreakOrContinueStatement(n){if(g){const e=253===n.kind?2:4;if(!(n.label&&g.labels&&g.labels.get(idText(n.label))||!n.label&&g.allowedNonLabeledJumps&e)){let e;const r=n.label;r?253===n.kind?(e=`break-${r.escapedText}`,setLabeledJump(g,!0,idText(r),e)):(e=`continue-${r.escapedText}`,setLabeledJump(g,!1,idText(r),e)):253===n.kind?(g.nonLocalJumps|=2,e="break"):(g.nonLocalJumps|=4,e="continue");let i=t.createStringLiteral(e);if(g.loopOutParameters.length){const e=g.loopOutParameters;let n;for(let r=0;risVariableStatement(e)&&!!first(e.declarationList.declarations).initializer,r=g;g=void 0;const i=visitNodes2(n.statements,classWrapperStatementVisitor,isStatement);g=r;const o=filter(i,isVariableStatementWithInitializer),a=filter(i,e=>!isVariableStatementWithInitializer(e)),s=cast(first(o),isVariableStatement).declarationList.declarations[0],c=skipOuterExpressions(s.initializer);let l=tryCast(c,isAssignmentExpression);!l&&isBinaryExpression(c)&&28===c.operatorToken.kind&&(l=tryCast(c.left,isAssignmentExpression));const d=cast(l?skipOuterExpressions(l.right):c,isCallExpression),u=cast(skipOuterExpressions(d.expression),isFunctionExpression),m=u.body.statements;let _=0,f=-1;const y=[];if(l){const e=tryCast(m[_],isExpressionStatement);e&&(y.push(e),_++),y.push(m[_]),_++,y.push(t.createExpressionStatement(t.createAssignment(l.left,cast(s.name,isIdentifier))))}for(;!isReturnStatement(p(m,f));)f--;addRange(y,m,_,f),f<-1&&addRange(y,m,f+1);const h=tryCast(p(m,f),isReturnStatement);for(const e of a)isReturnStatement(e)&&(null==h?void 0:h.expression)&&!isIdentifier(h.expression)?y.push(h):y.push(e);return addRange(y,o,1),t.restoreOuterExpressions(e.expression,t.restoreOuterExpressions(s.initializer,t.restoreOuterExpressions(l&&l.right,t.updateCallExpression(d,t.restoreOuterExpressions(d.expression,t.updateFunctionExpression(u,void 0,void 0,void 0,void 0,u.parameters,void 0,t.updateBlock(u.body,y))),void 0,d.arguments))))}(n);const r=skipOuterExpressions(n.expression);if(108===r.kind||isSuperProperty(r)||some(n.arguments,isSpreadElement))return function visitCallExpressionWithPotentialCapturedThisAssignment(n,r){if(32768&n.transformFlags||108===n.expression.kind||isSuperProperty(skipOuterExpressions(n.expression))){const{target:e,thisArg:i}=t.createCallBinding(n.expression,a);let o;if(108===n.expression.kind&&setEmitFlags(i,8),o=32768&n.transformFlags?t.createFunctionApplyCall(h.checkDefined(visitNode(e,callExpressionVisitor,isExpression)),108===n.expression.kind?i:h.checkDefined(visitNode(i,visitor,isExpression)),transformAndSpreadElements(n.arguments,!0,!1,!1)):setTextRange(t.createFunctionCallCall(h.checkDefined(visitNode(e,callExpressionVisitor,isExpression)),108===n.expression.kind?i:h.checkDefined(visitNode(i,visitor,isExpression)),visitNodes2(n.arguments,visitor,isExpression)),n),108===n.expression.kind){const e=t.createLogicalOr(o,createActualThis());o=r?t.createAssignment(createCapturedThis(),e):e}return setOriginalNode(o,n)}isSuperCall(n)&&(_|=131072);return visitEachChild(n,visitor,e)}(n,!0);return t.updateCallExpression(n,h.checkDefined(visitNode(n.expression,callExpressionVisitor,isExpression)),void 0,visitNodes2(n.arguments,visitor,isExpression))}(n);case 215:return function visitNewExpression(n){if(some(n.arguments,isSpreadElement)){const{target:e,thisArg:r}=t.createCallBinding(t.createPropertyAccessExpression(n.expression,"bind"),a);return t.createNewExpression(t.createFunctionApplyCall(h.checkDefined(visitNode(e,visitor,isExpression)),r,transformAndSpreadElements(t.createNodeArray([t.createVoidZero(),...n.arguments]),!0,!1,!1)),void 0,[])}return visitEachChild(n,visitor,e)}(n);case 218:return function visitParenthesizedExpression(t,n){return visitEachChild(t,n?visitorWithUnusedExpressionResult:visitor,e)}(n,r);case 227:return visitBinaryExpression(n,r);case 357:return function visitCommaListExpression(n,r){if(r)return visitEachChild(n,visitorWithUnusedExpressionResult,e);let i;for(let e=0;e0&&e.push(t.createStringLiteral(r.literal.text)),n=t.createCallExpression(t.createPropertyAccessExpression(n,"concat"),void 0,e)}return setTextRange(n,e)}(n);case 230:return function visitYieldExpression(t){return visitEachChild(t,visitor,e)}(n);case 231:return function visitSpreadElement(e){return visitNode(e.expression,visitor,isExpression)}(n);case 108:return visitSuperKeyword(n,!1);case 110:return function visitThisKeyword(e){_|=65536,2&_&&!(16384&_)&&(_|=131072);if(g)return 2&_?(g.containsLexicalThis=!0,e):g.thisName||(g.thisName=t.createUniqueName("this"));return e}(n);case 237:return function visitMetaProperty(e){if(105===e.keywordToken&&"target"===e.name.escapedText)return _|=32768,t.createUniqueName("_newTarget",48);return e}(n);case 175:return function visitMethodDeclaration(e){h.assert(!isComputedPropertyName(e.name));const n=transformFunctionLikeToExpression(e,moveRangePos(e,-1),void 0,void 0);return setEmitFlags(n,1024|getEmitFlags(n)),setTextRange(t.createPropertyAssignment(e.name,n),e)}(n);case 178:case 179:return function visitAccessorDeclaration(n){h.assert(!isComputedPropertyName(n.name));const r=g;g=void 0;const i=enterSubtree(32670,65);let o;const a=visitParameterList(n.parameters,visitor,e),s=transformFunctionBody2(n);o=178===n.kind?t.updateGetAccessorDeclaration(n,n.modifiers,n.name,a,n.type,s):t.updateSetAccessorDeclaration(n,n.modifiers,n.name,a,s);return exitSubtree(i,229376,0),g=r,o}(n);case 244:return function visitVariableStatement(n){const r=enterSubtree(0,hasSyntacticModifier(n,32)?32:0);let i;if(!g||7&n.declarationList.flags||function isVariableStatementOfTypeScriptClassWrapper(e){return 1===e.declarationList.declarations.length&&!!e.declarationList.declarations[0].initializer&&!!(1&getInternalEmitFlags(e.declarationList.declarations[0].initializer))}(n))i=visitEachChild(n,visitor,e);else{let r;for(const i of n.declarationList.declarations)if(hoistVariableDeclarationDeclaredInConvertedLoop(g,i),i.initializer){let n;isBindingPattern(i.name)?n=flattenDestructuringAssignment(i,visitor,e,0):(n=t.createBinaryExpression(i.name,64,h.checkDefined(visitNode(i.initializer,visitor,isExpression))),setTextRange(n,i)),r=append(r,n)}i=r?setTextRange(t.createExpressionStatement(t.inlineExpressions(r)),n):void 0}return exitSubtree(r,0,0),i}(n);case 254:return function visitReturnStatement(n){if(g)return g.nonLocalJumps|=8,isReturnVoidStatementInConstructorWithCapturedSuper(n)&&(n=returnCapturedThis(n)),t.createReturnStatement(t.createObjectLiteralExpression([t.createPropertyAssignment(t.createIdentifier("value"),n.expression?h.checkDefined(visitNode(n.expression,visitor,isExpression)):t.createVoidZero())]));if(isReturnVoidStatementInConstructorWithCapturedSuper(n))return returnCapturedThis(n);return visitEachChild(n,visitor,e)}(n);case 223:return function visitVoidExpression(t){return visitEachChild(t,visitorWithUnusedExpressionResult,e)}(n);default:return visitEachChild(n,visitor,e)}}function returnCapturedThis(e){return setOriginalNode(t.createReturnStatement(createCapturedThis()),e)}function createCapturedThis(){return t.createUniqueName("_this",48)}function visitIdentifier(e){return g&&c.isArgumentsLocalBinding(e)?g.argumentsName||(g.argumentsName=t.createUniqueName("arguments")):256&e.flags?setOriginalNode(setTextRange(t.createIdentifier(unescapeLeadingUnderscores(e.escapedText)),e),e):e}function transformClassLikeDeclarationToExpression(a){a.name&&enableSubstitutionsForBlockScopedBindings();const s=getClassExtendsHeritageElement(a),c=t.createFunctionExpression(void 0,void 0,void 0,void 0,s?[t.createParameterDeclaration(void 0,void 0,createSyntheticSuper())]:[],void 0,function transformClassBody(a,s){const c=[],l=t.getInternalName(a),d=isIdentifierANonContextualKeyword(l)?t.getGeneratedNameForNode(l):l;r(),function addExtendsHelperIfNeeded(e,r,i){i&&e.push(setTextRange(t.createExpressionStatement(n().createExtendsHelper(t.getInternalName(r))),i))}(c,a,s),function addConstructor(n,r,a,s){const c=g;g=void 0;const l=enterSubtree(32662,73),d=getFirstConstructorWithBody(r),p=function hasSynthesizedDefaultSuperCall(e,t){if(!e||!t)return!1;if(some(e.parameters))return!1;const n=firstOrUndefined(e.body.statements);if(!n||!nodeIsSynthesized(n)||245!==n.kind)return!1;const r=n.expression;if(!nodeIsSynthesized(r)||214!==r.kind)return!1;const i=r.expression;if(!nodeIsSynthesized(i)||108!==i.kind)return!1;const o=singleOrUndefined(r.arguments);if(!o||!nodeIsSynthesized(o)||231!==o.kind)return!1;const a=o.expression;return isIdentifier(a)&&"arguments"===a.escapedText}(d,void 0!==s),u=t.createFunctionDeclaration(void 0,void 0,a,void 0,function transformConstructorParameters(t,n){return visitParameterList(t&&!n?t.parameters:void 0,visitor,e)||[]}(d,p),void 0,function transformConstructorBody(e,n,r,a){const s=!!r&&106!==skipOuterExpressions(r.expression).kind;if(!e)return function createDefaultConstructorBody(e,n){const r=[];i(),t.mergeLexicalEnvironment(r,o()),n&&r.push(t.createReturnStatement(function createDefaultSuperCallOrThis(){return t.createLogicalOr(t.createLogicalAnd(t.createStrictInequality(createSyntheticSuper(),t.createNull()),t.createFunctionApplyCall(createSyntheticSuper(),createActualThis(),t.createIdentifier("arguments"))),createActualThis())}()));const a=t.createNodeArray(r);setTextRange(a,e.members);const s=t.createBlock(a,!0);return setTextRange(s,e),setEmitFlags(s,3072),s}(n,s);const c=[],l=[];i();const d=t.copyStandardPrologue(e.body.statements,c,0);(a||containsSuperCall(e.body))&&(_|=8192);addRange(l,visitNodes2(e.body.statements,visitor,isStatement,d));const p=s||8192&_;addDefaultValueAssignmentsIfNeeded2(c,e),addRestParameterIfNeeded(c,e,a),insertCaptureNewTargetIfNeeded(c,e),p?insertCaptureThisForNode(c,e,createActualThis()):insertCaptureThisForNodeIfNeeded(c,e);t.mergeLexicalEnvironment(c,o()),p&&!isSufficientlyCoveredByReturnStatements(e.body)&&l.push(t.createReturnStatement(createCapturedThis()));const u=t.createBlock(setTextRange(t.createNodeArray([...c,...l]),e.body.statements),!0);return setTextRange(u,e.body),function simplifyConstructor(e,n,r){const i=e;e=function simplifyConstructorInlineSuperInThisCaptureVariable(e){for(let n=0;n0;n--){const i=e.statements[n];if(isReturnStatement(i)&&i.expression&&isCapturedThis(i.expression)){const i=e.statements[n-1];let o;if(isExpressionStatement(i)&&isThisCapturingTransformedSuperCallWithFallback(skipOuterExpressions(i.expression)))o=i.expression;else if(r&&isThisCapturingVariableStatement(i)){const e=i.declarationList.declarations[0];isTransformedSuperCallLike(skipOuterExpressions(e.initializer))&&(o=t.createAssignment(createCapturedThis(),e.initializer))}if(!o)break;const a=t.createReturnStatement(o);setOriginalNode(a,i),setTextRange(a,i);const s=t.createNodeArray([...e.statements.slice(0,n-1),a,...e.statements.slice(n+1)]);return setTextRange(s,e.statements),t.updateBlock(e,s)}}return e}(e,n),e!==i&&(e=function simplifyConstructorElideUnusedThisCapture(e,n){if(16384&n.transformFlags||65536&_||131072&_)return e;for(const t of n.statements)if(134217728&t.transformFlags&&!getSuperCallFromStatement(t))return e;return t.updateBlock(e,visitNodes2(e.statements,elideUnusedThisCaptureWorker,isStatement))}(e,n));r&&(e=function complicateConstructorInjectSuperPresenceCheck(e){return t.updateBlock(e,visitNodes2(e.statements,injectSuperPresenceCheckWorker,isStatement))}(e));return e}(u,e.body,a)}(d,r,s,p));setTextRange(u,d||r),s&&setEmitFlags(u,16);n.push(u),exitSubtree(l,229376,0),g=c}(c,a,d,s),function addClassMembers(e,t){for(const n of t.members)switch(n.kind){case 241:e.push(transformSemicolonClassElementToStatement(n));break;case 175:e.push(transformClassMethodDeclarationToStatement(getClassMemberPrefix(t,n),n,t));break;case 178:case 179:const r=getAllAccessorDeclarations(t.members,n);n===r.firstAccessor&&e.push(transformAccessorsToStatement(getClassMemberPrefix(t,n),r,t));break;case 177:case 176:break;default:h.failBadSyntaxKind(n,u&&u.fileName)}}(c,a);const p=createTokenRange(skipTrivia(m,a.members.end),20),f=t.createPartiallyEmittedExpression(d);setTextRangeEnd(f,p.end),setEmitFlags(f,3072);const y=t.createReturnStatement(f);setTextRangePos(y,p.pos),setEmitFlags(y,3840),c.push(y),insertStatementsAfterStandardPrologue(c,o());const T=t.createBlock(setTextRange(t.createNodeArray(c),a.members),!0);return setEmitFlags(T,3072),T}(a,s));setEmitFlags(c,131072&getEmitFlags(a)|1048576);const l=t.createPartiallyEmittedExpression(c);setTextRangeEnd(l,a.end),setEmitFlags(l,3072);const d=t.createPartiallyEmittedExpression(l);setTextRangeEnd(d,skipTrivia(m,a.pos)),setEmitFlags(d,3072);const p=t.createParenthesizedExpression(t.createCallExpression(d,void 0,s?[h.checkDefined(visitNode(s.expression,visitor,isExpression))]:[]));return addSyntheticLeadingComment(p,3,"* @class "),p}function isUninitializedVariableStatement(e){return isVariableStatement(e)&&every(e.declarationList.declarations,e=>isIdentifier(e.name)&&!e.initializer)}function containsSuperCall(e){if(isSuperCall(e))return!0;if(!(134217728&e.transformFlags))return!1;switch(e.kind){case 220:case 219:case 263:case 177:case 176:return!1;case 178:case 179:case 175:case 173:{const t=e;return!!isComputedPropertyName(t.name)&&!!forEachChild(t.name,containsSuperCall)}}return!!forEachChild(e,containsSuperCall)}function isCapturedThis(e){return isGeneratedIdentifier(e)&&"_this"===idText(e)}function isSyntheticSuper(e){return isGeneratedIdentifier(e)&&"_super"===idText(e)}function isThisCapturingVariableStatement(e){return isVariableStatement(e)&&1===e.declarationList.declarations.length&&function isThisCapturingVariableDeclaration(e){return isVariableDeclaration(e)&&isCapturedThis(e.name)&&!!e.initializer}(e.declarationList.declarations[0])}function isThisCapturingAssignment(e){return isAssignmentExpression(e,!0)&&isCapturedThis(e.left)}function isTransformedSuperCall(e){return isCallExpression(e)&&isPropertyAccessExpression(e.expression)&&isSyntheticSuper(e.expression.expression)&&isIdentifier(e.expression.name)&&("call"===idText(e.expression.name)||"apply"===idText(e.expression.name))&&e.arguments.length>=1&&110===e.arguments[0].kind}function isTransformedSuperCallWithFallback(e){return isBinaryExpression(e)&&57===e.operatorToken.kind&&110===e.right.kind&&isTransformedSuperCall(e.left)}function isImplicitSuperCall(e){return isBinaryExpression(e)&&56===e.operatorToken.kind&&isBinaryExpression(e.left)&&38===e.left.operatorToken.kind&&isSyntheticSuper(e.left.left)&&106===e.left.right.kind&&isTransformedSuperCall(e.right)&&"apply"===idText(e.right.expression.name)}function isImplicitSuperCallWithFallback(e){return isBinaryExpression(e)&&57===e.operatorToken.kind&&110===e.right.kind&&isImplicitSuperCall(e.left)}function isThisCapturingTransformedSuperCallWithFallback(e){return isThisCapturingAssignment(e)&&isTransformedSuperCallWithFallback(e.right)}function isTransformedSuperCallLike(e){return isTransformedSuperCall(e)||isTransformedSuperCallWithFallback(e)||isThisCapturingTransformedSuperCallWithFallback(e)||isImplicitSuperCall(e)||isImplicitSuperCallWithFallback(e)||function isThisCapturingImplicitSuperCallWithFallback(e){return isThisCapturingAssignment(e)&&isImplicitSuperCallWithFallback(e.right)}(e)}function elideUnusedThisCaptureWorker(e){if(isThisCapturingVariableStatement(e)){if(110===e.declarationList.declarations[0].initializer.kind)return}else if(isThisCapturingAssignment(e))return t.createPartiallyEmittedExpression(e.right,e);switch(e.kind){case 220:case 219:case 263:case 177:case 176:return e;case 178:case 179:case 175:case 173:{const n=e;return isComputedPropertyName(n.name)?t.replacePropertyName(n,visitEachChild(n.name,elideUnusedThisCaptureWorker,void 0)):e}}return visitEachChild(e,elideUnusedThisCaptureWorker,void 0)}function injectSuperPresenceCheckWorker(e){if(isTransformedSuperCall(e)&&2===e.arguments.length&&isIdentifier(e.arguments[1])&&"arguments"===idText(e.arguments[1]))return t.createLogicalAnd(t.createStrictInequality(createSyntheticSuper(),t.createNull()),e);switch(e.kind){case 220:case 219:case 263:case 177:case 176:return e;case 178:case 179:case 175:case 173:{const n=e;return isComputedPropertyName(n.name)?t.replacePropertyName(n,visitEachChild(n.name,injectSuperPresenceCheckWorker,void 0)):e}}return visitEachChild(e,injectSuperPresenceCheckWorker,void 0)}function isSufficientlyCoveredByReturnStatements(e){if(254===e.kind)return!0;if(246===e.kind){const t=e;if(t.elseStatement)return isSufficientlyCoveredByReturnStatements(t.thenStatement)&&isSufficientlyCoveredByReturnStatements(t.elseStatement)}else if(242===e.kind){const t=lastOrUndefined(e.statements);if(t&&isSufficientlyCoveredByReturnStatements(t))return!0}return!1}function createActualThis(){return setEmitFlags(t.createThis(),8)}function hasDefaultValueOrBindingPattern(e){return void 0!==e.initializer||isBindingPattern(e.name)}function addDefaultValueAssignmentsIfNeeded2(e,t){if(!some(t.parameters,hasDefaultValueOrBindingPattern))return!1;let n=!1;for(const r of t.parameters){const{name:t,initializer:i,dotDotDotToken:o}=r;o||(isBindingPattern(t)?n=insertDefaultValueAssignmentForBindingPattern(e,r,t,i)||n:i&&(insertDefaultValueAssignmentForInitializer(e,r,t,i),n=!0))}return n}function insertDefaultValueAssignmentForBindingPattern(n,r,i,o){return i.elements.length>0?(insertStatementAfterCustomPrologue(n,setEmitFlags(t.createVariableStatement(void 0,t.createVariableDeclarationList(flattenDestructuringBinding(r,visitor,e,0,t.getGeneratedNameForNode(r)))),2097152)),!0):!!o&&(insertStatementAfterCustomPrologue(n,setEmitFlags(t.createExpressionStatement(t.createAssignment(t.getGeneratedNameForNode(r),h.checkDefined(visitNode(o,visitor,isExpression)))),2097152)),!0)}function insertDefaultValueAssignmentForInitializer(e,n,r,i){i=h.checkDefined(visitNode(i,visitor,isExpression));const o=t.createIfStatement(t.createTypeCheck(t.cloneNode(r),"undefined"),setEmitFlags(setTextRange(t.createBlock([t.createExpressionStatement(setEmitFlags(setTextRange(t.createAssignment(setEmitFlags(setParent(setTextRange(t.cloneNode(r),r),r.parent),96),setEmitFlags(i,3168|getEmitFlags(i))),n),3072))]),n),3905));startOnNewLine(o),setTextRange(o,n),setEmitFlags(o,2101056),insertStatementAfterCustomPrologue(e,o)}function addRestParameterIfNeeded(n,r,i){const o=[],a=lastOrUndefined(r.parameters);if(!function shouldAddRestParameter(e,t){return!(!e||!e.dotDotDotToken||t)}(a,i))return!1;const s=80===a.name.kind?setParent(setTextRange(t.cloneNode(a.name),a.name),a.name.parent):t.createTempVariable(void 0);setEmitFlags(s,96);const c=80===a.name.kind?t.cloneNode(a.name):s,l=r.parameters.length-1,d=t.createLoopVariable();o.push(setEmitFlags(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(s,void 0,void 0,t.createArrayLiteralExpression([]))])),a),2097152));const p=t.createForStatement(setTextRange(t.createVariableDeclarationList([t.createVariableDeclaration(d,void 0,void 0,t.createNumericLiteral(l))]),a),setTextRange(t.createLessThan(d,t.createPropertyAccessExpression(t.createIdentifier("arguments"),"length")),a),setTextRange(t.createPostfixIncrement(d),a),t.createBlock([startOnNewLine(setTextRange(t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(c,0===l?d:t.createSubtract(d,t.createNumericLiteral(l))),t.createElementAccessExpression(t.createIdentifier("arguments"),d))),a))]));return setEmitFlags(p,2097152),startOnNewLine(p),o.push(p),80!==a.name.kind&&o.push(setEmitFlags(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList(flattenDestructuringBinding(a,visitor,e,0,c))),a),2097152)),insertStatementsAfterCustomPrologue(n,o),!0}function insertCaptureThisForNodeIfNeeded(e,n){return!!(131072&_&&220!==n.kind)&&(insertCaptureThisForNode(e,n,t.createThis()),!0)}function insertCaptureThisForNode(n,r,i){!function enableSubstitutionsForCapturedThis(){1&y||(y|=1,e.enableSubstitution(110),e.enableEmitNotification(177),e.enableEmitNotification(175),e.enableEmitNotification(178),e.enableEmitNotification(179),e.enableEmitNotification(220),e.enableEmitNotification(219),e.enableEmitNotification(263))}();const o=t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(createCapturedThis(),void 0,void 0,i)]));setEmitFlags(o,2100224),setSourceMapRange(o,r),insertStatementAfterCustomPrologue(n,o)}function insertCaptureNewTargetIfNeeded(e,n){if(32768&_){let r;switch(n.kind){case 220:return e;case 175:case 178:case 179:r=t.createVoidZero();break;case 177:r=t.createPropertyAccessExpression(setEmitFlags(t.createThis(),8),"constructor");break;case 263:case 219:r=t.createConditionalExpression(t.createLogicalAnd(setEmitFlags(t.createThis(),8),t.createBinaryExpression(setEmitFlags(t.createThis(),8),104,t.getLocalName(n))),void 0,t.createPropertyAccessExpression(setEmitFlags(t.createThis(),8),"constructor"),void 0,t.createVoidZero());break;default:return h.failBadSyntaxKind(n)}const i=t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(t.createUniqueName("_newTarget",48),void 0,void 0,r)]));setEmitFlags(i,2100224),insertStatementAfterCustomPrologue(e,i)}return e}function transformSemicolonClassElementToStatement(e){return setTextRange(t.createEmptyStatement(),e)}function transformClassMethodDeclarationToStatement(n,r,i){const o=getCommentRange(r),a=getSourceMapRange(r),s=transformFunctionLikeToExpression(r,r,void 0,i),c=visitNode(r.name,visitor,isPropertyName);let l;if(h.assert(c),!isPrivateIdentifier(c)&&ir(e.getCompilerOptions())){const e=isComputedPropertyName(c)?c.expression:isIdentifier(c)?t.createStringLiteral(unescapeLeadingUnderscores(c.escapedText)):c;l=t.createObjectDefinePropertyCall(n,e,t.createPropertyDescriptor({value:s,enumerable:!1,writable:!0,configurable:!0}))}else{const e=createMemberAccessForPropertyName(t,n,c,r.name);l=t.createAssignment(e,s)}setEmitFlags(s,3072),setSourceMapRange(s,a);const d=setTextRange(t.createExpressionStatement(l),r);return setOriginalNode(d,r),setCommentRange(d,o),setEmitFlags(d,96),d}function transformAccessorsToStatement(e,n,r){const i=t.createExpressionStatement(transformAccessorsToExpression(e,n,r,!1));return setEmitFlags(i,3072),setSourceMapRange(i,getSourceMapRange(n.firstAccessor)),i}function transformAccessorsToExpression(e,{firstAccessor:n,getAccessor:r,setAccessor:i},o,a){const s=setParent(setTextRange(t.cloneNode(e),e),e.parent);setEmitFlags(s,3136),setSourceMapRange(s,n.name);const c=visitNode(n.name,visitor,isPropertyName);if(h.assert(c),isPrivateIdentifier(c))return h.failBadSyntaxKind(c,"Encountered unhandled private identifier while transforming ES2015.");const l=createExpressionForPropertyName(t,c);setEmitFlags(l,3104),setSourceMapRange(l,n.name);const d=[];if(r){const e=transformFunctionLikeToExpression(r,void 0,void 0,o);setSourceMapRange(e,getSourceMapRange(r)),setEmitFlags(e,1024);const n=t.createPropertyAssignment("get",e);setCommentRange(n,getCommentRange(r)),d.push(n)}if(i){const e=transformFunctionLikeToExpression(i,void 0,void 0,o);setSourceMapRange(e,getSourceMapRange(i)),setEmitFlags(e,1024);const n=t.createPropertyAssignment("set",e);setCommentRange(n,getCommentRange(i)),d.push(n)}d.push(t.createPropertyAssignment("enumerable",r||i?t.createFalse():t.createTrue()),t.createPropertyAssignment("configurable",t.createTrue()));const p=t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"defineProperty"),void 0,[s,l,t.createObjectLiteralExpression(d,!0)]);return a&&startOnNewLine(p),p}function transformFunctionLikeToExpression(n,r,i,o){const a=g;g=void 0;const s=o&&isClassLike(o)&&!isStatic(n)?enterSubtree(32670,73):enterSubtree(32670,65),c=visitParameterList(n.parameters,visitor,e),l=transformFunctionBody2(n);return 32768&_&&!i&&(263===n.kind||219===n.kind)&&(i=t.getGeneratedNameForNode(n)),exitSubtree(s,229376,0),g=a,setOriginalNode(setTextRange(t.createFunctionExpression(void 0,n.asteriskToken,i,void 0,c,void 0,l),r),n)}function transformFunctionBody2(e){let n,r,a=!1,s=!1;const c=[],l=[],d=e.body;let p;if(i(),isBlock(d)&&(p=t.copyStandardPrologue(d.statements,c,0,!1),p=t.copyCustomPrologue(d.statements,l,p,visitor,isHoistedFunction),p=t.copyCustomPrologue(d.statements,l,p,visitor,isHoistedVariableStatement)),a=addDefaultValueAssignmentsIfNeeded2(l,e)||a,a=addRestParameterIfNeeded(l,e,!1)||a,isBlock(d))p=t.copyCustomPrologue(d.statements,l,p,visitor),n=d.statements,addRange(l,visitNodes2(d.statements,visitor,isStatement,p)),!a&&d.multiLine&&(a=!0);else{h.assert(220===e.kind),n=moveRangeEnd(d,-1);const i=e.equalsGreaterThanToken;nodeIsSynthesized(i)||nodeIsSynthesized(d)||(rangeEndIsOnSameLineAsRangeStart(i,d,u)?s=!0:a=!0);const o=visitNode(d,visitor,isExpression),c=t.createReturnStatement(o);setTextRange(c,d),moveSyntheticComments(c,d),setEmitFlags(c,2880),l.push(c),r=d}if(t.mergeLexicalEnvironment(c,o()),insertCaptureNewTargetIfNeeded(c,e),insertCaptureThisForNodeIfNeeded(c,e),some(c)&&(a=!0),l.unshift(...c),isBlock(d)&&arrayIsEqualTo(l,d.statements))return d;const m=t.createBlock(setTextRange(t.createNodeArray(l),n),a);return setTextRange(m,e.body),!a&&s&&setEmitFlags(m,1),r&&setTokenSourceMapRange(m,20,r),setOriginalNode(m,e.body),m}function visitBinaryExpression(n,r){return isDestructuringAssignment(n)?flattenDestructuringAssignment(n,visitor,e,0,!r):28===n.operatorToken.kind?t.updateBinaryExpression(n,h.checkDefined(visitNode(n.left,visitorWithUnusedExpressionResult,isExpression)),n.operatorToken,h.checkDefined(visitNode(n.right,r?visitorWithUnusedExpressionResult:visitor,isExpression))):visitEachChild(n,visitor,e)}function visitVariableDeclarationInLetDeclarationList(n){return isBindingPattern(n.name)?visitVariableDeclaration(n):!n.initializer&&function shouldEmitExplicitInitializerForLetDeclaration(e){const t=c.hasNodeCheckFlag(e,16384),n=c.hasNodeCheckFlag(e,32768);return!(64&_||t&&n&&512&_)&&!(4096&_)&&(!c.isDeclarationWithCollidingName(e)||n&&!t&&!(6144&_))}(n)?t.updateVariableDeclaration(n,n.name,void 0,void 0,t.createVoidZero()):visitEachChild(n,visitor,e)}function visitVariableDeclaration(t){const n=enterSubtree(32,0);let r;return r=isBindingPattern(t.name)?flattenDestructuringBinding(t,visitor,e,0,void 0,!!(32&n)):visitEachChild(t,visitor,e),exitSubtree(n,0,0),r}function recordLabel(e){g.labels.set(idText(e.label),!0)}function resetLabel(e){g.labels.set(idText(e.label),!1)}function visitIterationStatementWithFacts(n,i,a,s,c){const l=enterSubtree(n,i),d=function convertIterationStatementBodyIfNecessary(n,i,a,s){if(!shouldConvertIterationStatement(n)){let r;g&&(r=g.allowedNonLabeledJumps,g.allowedNonLabeledJumps=6);const o=s?s(n,i,void 0,a):t.restoreEnclosingLabel(isForStatement(n)?function visitEachChildOfForStatement2(e){return t.updateForStatement(e,visitNode(e.initializer,visitorWithUnusedExpressionResult,isForInitializer),visitNode(e.condition,visitor,isExpression),visitNode(e.incrementor,visitorWithUnusedExpressionResult,isExpression),h.checkDefined(visitNode(e.statement,visitor,isStatement,t.liftToBlock)))}(n):visitEachChild(n,visitor,e),i,g&&resetLabel);return g&&(g.allowedNonLabeledJumps=r),o}const c=function createConvertedLoopState(e){let t;switch(e.kind){case 249:case 250:case 251:const n=e.initializer;n&&262===n.kind&&(t=n)}const n=[],r=[];if(t&&7&getCombinedNodeFlags(t)){const i=shouldConvertInitializerOfForStatement(e)||shouldConvertConditionOfForStatement(e)||shouldConvertIncrementorOfForStatement(e);for(const o of t.declarations)processLoopVariableDeclaration(e,o,n,r,i)}const i={loopParameters:n,loopOutParameters:r};g&&(g.argumentsName&&(i.argumentsName=g.argumentsName),g.thisName&&(i.thisName=g.thisName),g.hoistedLocalVariables&&(i.hoistedLocalVariables=g.hoistedLocalVariables));return i}(n),l=[],d=g;g=c;const p=shouldConvertInitializerOfForStatement(n)?function createFunctionForInitializerOfForStatement(e,n){const r=t.createUniqueName("_loop_init"),i=!!(1048576&e.initializer.transformFlags);let o=0;n.containsLexicalThis&&(o|=16);i&&4&_&&(o|=524288);const a=[];a.push(t.createVariableStatement(void 0,e.initializer)),copyOutParameters(n.loopOutParameters,2,1,a);const s=t.createVariableStatement(void 0,setEmitFlags(t.createVariableDeclarationList([t.createVariableDeclaration(r,void 0,void 0,setEmitFlags(t.createFunctionExpression(void 0,i?t.createToken(42):void 0,void 0,void 0,void 0,void 0,h.checkDefined(visitNode(t.createBlock(a,!0),visitor,isBlock))),o))]),4194304)),c=t.createVariableDeclarationList(map(n.loopOutParameters,createOutVariable));return{functionName:r,containsYield:i,functionDeclaration:s,part:c}}(n,c):void 0,u=shouldConvertBodyOfIterationStatement(n)?function createFunctionForBodyOfIterationStatement(e,n,i){const a=t.createUniqueName("_loop");r();const s=visitNode(e.statement,visitor,isStatement,t.liftToBlock),c=o(),l=[];(shouldConvertConditionOfForStatement(e)||shouldConvertIncrementorOfForStatement(e))&&(n.conditionVariable=t.createUniqueName("inc"),e.incrementor?l.push(t.createIfStatement(n.conditionVariable,t.createExpressionStatement(h.checkDefined(visitNode(e.incrementor,visitor,isExpression))),t.createExpressionStatement(t.createAssignment(n.conditionVariable,t.createTrue())))):l.push(t.createIfStatement(t.createLogicalNot(n.conditionVariable),t.createExpressionStatement(t.createAssignment(n.conditionVariable,t.createTrue())))),shouldConvertConditionOfForStatement(e)&&l.push(t.createIfStatement(t.createPrefixUnaryExpression(54,h.checkDefined(visitNode(e.condition,visitor,isExpression))),h.checkDefined(visitNode(t.createBreakStatement(),visitor,isStatement)))));h.assert(s),isBlock(s)?addRange(l,s.statements):l.push(s);copyOutParameters(n.loopOutParameters,1,1,l),insertStatementsAfterStandardPrologue(l,c);const d=t.createBlock(l,!0);isBlock(s)&&setOriginalNode(d,s);const p=!!(1048576&e.statement.transformFlags);let u=1048576;n.containsLexicalThis&&(u|=16);p&&4&_&&(u|=524288);const m=t.createVariableStatement(void 0,setEmitFlags(t.createVariableDeclarationList([t.createVariableDeclaration(a,void 0,void 0,setEmitFlags(t.createFunctionExpression(void 0,p?t.createToken(42):void 0,void 0,void 0,n.loopParameters,void 0,d),u))]),4194304)),f=function generateCallToConvertedLoop(e,n,r,i){const o=[],a=!(-5&n.nonLocalJumps||n.labeledNonLocalBreaks||n.labeledNonLocalContinues),s=t.createCallExpression(e,void 0,map(n.loopParameters,e=>e.name)),c=i?t.createYieldExpression(t.createToken(42),setEmitFlags(s,8388608)):s;if(a)o.push(t.createExpressionStatement(c)),copyOutParameters(n.loopOutParameters,1,0,o);else{const e=t.createUniqueName("state"),i=t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(e,void 0,void 0,c)]));if(o.push(i),copyOutParameters(n.loopOutParameters,1,0,o),8&n.nonLocalJumps){let n;r?(r.nonLocalJumps|=8,n=t.createReturnStatement(e)):n=t.createReturnStatement(t.createPropertyAccessExpression(e,"value")),o.push(t.createIfStatement(t.createTypeCheck(e,"object"),n))}if(2&n.nonLocalJumps&&o.push(t.createIfStatement(t.createStrictEquality(e,t.createStringLiteral("break")),t.createBreakStatement())),n.labeledNonLocalBreaks||n.labeledNonLocalContinues){const i=[];processLabeledJumps(n.labeledNonLocalBreaks,!0,e,r,i),processLabeledJumps(n.labeledNonLocalContinues,!1,e,r,i),o.push(t.createSwitchStatement(e,t.createCaseBlock(i)))}}return o}(a,n,i,p);return{functionName:a,containsYield:p,functionDeclaration:m,part:f}}(n,c,d):void 0;g=d,p&&l.push(p.functionDeclaration);u&&l.push(u.functionDeclaration);(function addExtraDeclarationsForConvertedLoop(e,n,r){let i;n.argumentsName&&(r?r.argumentsName=n.argumentsName:(i||(i=[])).push(t.createVariableDeclaration(n.argumentsName,void 0,void 0,t.createIdentifier("arguments"))));n.thisName&&(r?r.thisName=n.thisName:(i||(i=[])).push(t.createVariableDeclaration(n.thisName,void 0,void 0,t.createIdentifier("this"))));if(n.hoistedLocalVariables)if(r)r.hoistedLocalVariables=n.hoistedLocalVariables;else{i||(i=[]);for(const e of n.hoistedLocalVariables)i.push(t.createVariableDeclaration(e))}if(n.loopOutParameters.length){i||(i=[]);for(const e of n.loopOutParameters)i.push(t.createVariableDeclaration(e.outParamName))}n.conditionVariable&&(i||(i=[]),i.push(t.createVariableDeclaration(n.conditionVariable,void 0,void 0,t.createFalse())));i&&e.push(t.createVariableStatement(void 0,t.createVariableDeclarationList(i)))})(l,c,d),p&&l.push(function generateCallToConvertedLoopInitializer(e,n){const r=t.createCallExpression(e,void 0,[]),i=n?t.createYieldExpression(t.createToken(42),setEmitFlags(r,8388608)):r;return t.createExpressionStatement(i)}(p.functionName,p.containsYield));let m;if(u)if(s)m=s(n,i,u.part,a);else{const e=convertIterationStatementCore(n,p,t.createBlock(u.part,!0));m=t.restoreEnclosingLabel(e,i,g&&resetLabel)}else{const e=convertIterationStatementCore(n,p,h.checkDefined(visitNode(n.statement,visitor,isStatement,t.liftToBlock)));m=t.restoreEnclosingLabel(e,i,g&&resetLabel)}return l.push(m),l}(a,s,l,c);return exitSubtree(l,0,0),d}function visitDoOrWhileStatement(e,t){return visitIterationStatementWithFacts(0,1280,e,t)}function visitForStatement(e,t){return visitIterationStatementWithFacts(5056,3328,e,t)}function visitForInStatement(e,t){return visitIterationStatementWithFacts(3008,5376,e,t)}function visitForOfStatement(e,t){return visitIterationStatementWithFacts(3008,5376,e,t,s.downlevelIteration?convertForOfStatementForIterable:convertForOfStatementForArray)}function convertForOfStatementHead(n,r,i){const o=[],a=n.initializer;if(isVariableDeclarationList(a)){7&n.initializer.flags&&enableSubstitutionsForBlockScopedBindings();const i=firstOrUndefined(a.declarations);if(i&&isBindingPattern(i.name)){const a=flattenDestructuringBinding(i,visitor,e,0,r),s=setTextRange(t.createVariableDeclarationList(a),n.initializer);setOriginalNode(s,n.initializer),setSourceMapRange(s,createRange(a[0].pos,last(a).end)),o.push(t.createVariableStatement(void 0,s))}else o.push(setTextRange(t.createVariableStatement(void 0,setOriginalNode(setTextRange(t.createVariableDeclarationList([t.createVariableDeclaration(i?i.name:t.createTempVariable(void 0),void 0,void 0,r)]),moveRangePos(a,-1)),a)),moveRangeEnd(a,-1)))}else{const e=t.createAssignment(a,r);isDestructuringAssignment(e)?o.push(t.createExpressionStatement(visitBinaryExpression(e,!0))):(setTextRangeEnd(e,a.end),o.push(setTextRange(t.createExpressionStatement(h.checkDefined(visitNode(e,visitor,isExpression))),moveRangeEnd(a,-1))))}if(i)return createSyntheticBlockForConvertedStatements(addRange(o,i));{const e=visitNode(n.statement,visitor,isStatement,t.liftToBlock);return h.assert(e),isBlock(e)?t.updateBlock(e,setTextRange(t.createNodeArray(concatenate(o,e.statements)),e.statements)):(o.push(e),createSyntheticBlockForConvertedStatements(o))}}function createSyntheticBlockForConvertedStatements(e){return setEmitFlags(t.createBlock(t.createNodeArray(e),!0),864)}function convertForOfStatementForArray(e,n,r){const i=visitNode(e.expression,visitor,isExpression);h.assert(i);const o=t.createLoopVariable(),a=isIdentifier(i)?t.getGeneratedNameForNode(i):t.createTempVariable(void 0);setEmitFlags(i,96|getEmitFlags(i));const s=setTextRange(t.createForStatement(setEmitFlags(setTextRange(t.createVariableDeclarationList([setTextRange(t.createVariableDeclaration(o,void 0,void 0,t.createNumericLiteral(0)),moveRangePos(e.expression,-1)),setTextRange(t.createVariableDeclaration(a,void 0,void 0,i),e.expression)]),e.expression),4194304),setTextRange(t.createLessThan(o,t.createPropertyAccessExpression(a,"length")),e.expression),setTextRange(t.createPostfixIncrement(o),e.expression),convertForOfStatementHead(e,t.createElementAccessExpression(a,o),r)),e);return setEmitFlags(s,512),setTextRange(s,e),t.restoreEnclosingLabel(s,n,g&&resetLabel)}function convertForOfStatementForIterable(e,r,i,o){const s=visitNode(e.expression,visitor,isExpression);h.assert(s);const c=isIdentifier(s)?t.getGeneratedNameForNode(s):t.createTempVariable(void 0),l=isIdentifier(s)?t.getGeneratedNameForNode(c):t.createTempVariable(void 0),d=t.createUniqueName("e"),p=t.getGeneratedNameForNode(d),u=t.createTempVariable(void 0),m=setTextRange(n().createValuesHelper(s),e.expression),_=t.createCallExpression(t.createPropertyAccessExpression(c,"next"),void 0,[]);a(d),a(u);const f=1024&o?t.inlineExpressions([t.createAssignment(d,t.createVoidZero()),m]):m,y=setEmitFlags(setTextRange(t.createForStatement(setEmitFlags(setTextRange(t.createVariableDeclarationList([setTextRange(t.createVariableDeclaration(c,void 0,void 0,f),e.expression),t.createVariableDeclaration(l,void 0,void 0,_)]),e.expression),4194304),t.createLogicalNot(t.createPropertyAccessExpression(l,"done")),t.createAssignment(l,_),convertForOfStatementHead(e,t.createPropertyAccessExpression(l,"value"),i)),e),512);return t.createTryStatement(t.createBlock([t.restoreEnclosingLabel(y,r,g&&resetLabel)]),t.createCatchClause(t.createVariableDeclaration(p),setEmitFlags(t.createBlock([t.createExpressionStatement(t.createAssignment(d,t.createObjectLiteralExpression([t.createPropertyAssignment("error",p)])))]),1)),t.createBlock([t.createTryStatement(t.createBlock([setEmitFlags(t.createIfStatement(t.createLogicalAnd(t.createLogicalAnd(l,t.createLogicalNot(t.createPropertyAccessExpression(l,"done"))),t.createAssignment(u,t.createPropertyAccessExpression(c,"return"))),t.createExpressionStatement(t.createFunctionCallCall(u,c,[]))),1)]),void 0,setEmitFlags(t.createBlock([setEmitFlags(t.createIfStatement(d,t.createThrowStatement(t.createPropertyAccessExpression(d,"error"))),1)]),1))]))}function shouldConvertPartOfIterationStatement(e){return c.hasNodeCheckFlag(e,8192)}function shouldConvertInitializerOfForStatement(e){return isForStatement(e)&&!!e.initializer&&shouldConvertPartOfIterationStatement(e.initializer)}function shouldConvertConditionOfForStatement(e){return isForStatement(e)&&!!e.condition&&shouldConvertPartOfIterationStatement(e.condition)}function shouldConvertIncrementorOfForStatement(e){return isForStatement(e)&&!!e.incrementor&&shouldConvertPartOfIterationStatement(e.incrementor)}function shouldConvertIterationStatement(e){return shouldConvertBodyOfIterationStatement(e)||shouldConvertInitializerOfForStatement(e)}function shouldConvertBodyOfIterationStatement(e){return c.hasNodeCheckFlag(e,4096)}function hoistVariableDeclarationDeclaredInConvertedLoop(e,t){e.hoistedLocalVariables||(e.hoistedLocalVariables=[]),function visit(t){if(80===t.kind)e.hoistedLocalVariables.push(t);else for(const e of t.elements)isOmittedExpression(e)||visit(e.name)}(t.name)}function convertIterationStatementCore(e,n,r){switch(e.kind){case 249:return function convertForStatement(e,n,r){const i=e.condition&&shouldConvertPartOfIterationStatement(e.condition),o=i||e.incrementor&&shouldConvertPartOfIterationStatement(e.incrementor);return t.updateForStatement(e,visitNode(n?n.part:e.initializer,visitorWithUnusedExpressionResult,isForInitializer),visitNode(i?void 0:e.condition,visitor,isExpression),visitNode(o?void 0:e.incrementor,visitorWithUnusedExpressionResult,isExpression),r)}(e,n,r);case 250:return function convertForInStatement(e,n){return t.updateForInStatement(e,h.checkDefined(visitNode(e.initializer,visitor,isForInitializer)),h.checkDefined(visitNode(e.expression,visitor,isExpression)),n)}(e,r);case 251:return function convertForOfStatement(e,n){return t.updateForOfStatement(e,void 0,h.checkDefined(visitNode(e.initializer,visitor,isForInitializer)),h.checkDefined(visitNode(e.expression,visitor,isExpression)),n)}(e,r);case 247:return function convertDoStatement(e,n){return t.updateDoStatement(e,n,h.checkDefined(visitNode(e.expression,visitor,isExpression)))}(e,r);case 248:return function convertWhileStatement(e,n){return t.updateWhileStatement(e,h.checkDefined(visitNode(e.expression,visitor,isExpression)),n)}(e,r);default:return h.failBadSyntaxKind(e,"IterationStatement expected")}}function createOutVariable(e){return t.createVariableDeclaration(e.originalName,void 0,void 0,e.outParamName)}function copyOutParameter(e,n){const r=0===n?e.outParamName:e.originalName,i=0===n?e.originalName:e.outParamName;return t.createBinaryExpression(i,64,r)}function copyOutParameters(e,n,r,i){for(const o of e)o.flags&n&&i.push(t.createExpressionStatement(copyOutParameter(o,r)))}function setLabeledJump(e,t,n,r){t?(e.labeledNonLocalBreaks||(e.labeledNonLocalBreaks=new Map),e.labeledNonLocalBreaks.set(n,r)):(e.labeledNonLocalContinues||(e.labeledNonLocalContinues=new Map),e.labeledNonLocalContinues.set(n,r))}function processLabeledJumps(e,n,r,i,o){e&&e.forEach((e,a)=>{const s=[];if(!i||i.labels&&i.labels.get(a)){const e=t.createIdentifier(a);s.push(n?t.createBreakStatement(e):t.createContinueStatement(e))}else setLabeledJump(i,n,a,e),s.push(t.createReturnStatement(r));o.push(t.createCaseClause(t.createStringLiteral(e),s))})}function processLoopVariableDeclaration(e,n,r,i,o){const a=n.name;if(isBindingPattern(a))for(const t of a.elements)isOmittedExpression(t)||processLoopVariableDeclaration(e,t,r,i,o);else{r.push(t.createParameterDeclaration(void 0,void 0,a));const s=c.hasNodeCheckFlag(n,65536);if(s||o){const r=t.createUniqueName("out_"+idText(a));let o=0;s&&(o|=1),isForStatement(e)&&(e.initializer&&c.isBindingCapturedByNode(e.initializer,n)&&(o|=2),(e.condition&&c.isBindingCapturedByNode(e.condition,n)||e.incrementor&&c.isBindingCapturedByNode(e.incrementor,n))&&(o|=1)),i.push({flags:o,originalName:a,outParamName:r})}}}function transformPropertyAssignmentToExpression(e,n,r){const i=t.createAssignment(createMemberAccessForPropertyName(t,n,h.checkDefined(visitNode(e.name,visitor,isPropertyName))),h.checkDefined(visitNode(e.initializer,visitor,isExpression)));return setTextRange(i,e),r&&startOnNewLine(i),i}function transformShorthandPropertyAssignmentToExpression(e,n,r){const i=t.createAssignment(createMemberAccessForPropertyName(t,n,h.checkDefined(visitNode(e.name,visitor,isPropertyName))),t.cloneNode(e.name));return setTextRange(i,e),r&&startOnNewLine(i),i}function transformObjectLiteralMethodDeclarationToExpression(e,n,r,i){const o=t.createAssignment(createMemberAccessForPropertyName(t,n,h.checkDefined(visitNode(e.name,visitor,isPropertyName))),transformFunctionLikeToExpression(e,e,void 0,r));return setTextRange(o,e),i&&startOnNewLine(o),o}function transformAndSpreadElements(e,r,i,o){const a=e.length,c=flatten(spanMap(e,partitionSpread,(e,t,n,r)=>t(e,i,o&&r===a)));if(1===c.length){const e=c[0];if(r&&!s.downlevelIteration||isPackedArrayLiteral(e.expression)||isCallToHelper(e.expression,"___spreadArray"))return e.expression}const l=n(),d=0!==c[0].kind;let p=d?t.createArrayLiteralExpression():c[0].expression;for(let e=d?0:1;e0?t.inlineExpressions(map(i,transformInitializedVariable)):void 0,visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,visitor,isExpression),visitIterationBody(n.statement,visitor,e))}else n=visitEachChild(n,visitor,e);_&&endLoopBlock();return n}(r);case 250:return function visitForInStatement(n){_&&beginScriptLoopBlock();const r=n.initializer;if(isVariableDeclarationList(r)){for(const e of r.declarations)a(e.name);n=t.updateForInStatement(n,r.declarations[0].name,h.checkDefined(visitNode(n.expression,visitor,isExpression)),h.checkDefined(visitNode(n.statement,visitor,isStatement,t.liftToBlock)))}else n=visitEachChild(n,visitor,e);_&&endLoopBlock();return n}(r);case 253:return function visitBreakStatement(t){if(_){const e=findBreakTarget(t.label&&idText(t.label));if(e>0)return createInlineBreak(e,t)}return visitEachChild(t,visitor,e)}(r);case 252:return function visitContinueStatement(t){if(_){const e=findContinueTarget(t.label&&idText(t.label));if(e>0)return createInlineBreak(e,t)}return visitEachChild(t,visitor,e)}(r);case 254:return function visitReturnStatement(e){return function createInlineReturn(e,n){return setTextRange(t.createReturnStatement(t.createArrayLiteralExpression(e?[createInstruction(2),e]:[createInstruction(2)])),n)}(visitNode(e.expression,visitor,isExpression),e)}(r);default:return 1048576&r.transformFlags?function visitJavaScriptContainingYield(r){switch(r.kind){case 227:return function visitBinaryExpression(n){const r=getExpressionAssociativity(n);switch(r){case 0:return function visitLeftAssociativeBinaryExpression(n){if(containsYield(n.right))return isLogicalOperator(n.operatorToken.kind)?function visitLogicalBinaryExpression(e){const t=defineLabel(),n=declareLocal();emitAssignment(n,h.checkDefined(visitNode(e.left,visitor,isExpression)),e.left),56===e.operatorToken.kind?emitBreakWhenFalse(t,n,e.left):emitBreakWhenTrue(t,n,e.left);return emitAssignment(n,h.checkDefined(visitNode(e.right,visitor,isExpression)),e.right),markLabel(t),n}(n):28===n.operatorToken.kind?visitCommaExpression(n):t.updateBinaryExpression(n,cacheExpression(h.checkDefined(visitNode(n.left,visitor,isExpression))),n.operatorToken,h.checkDefined(visitNode(n.right,visitor,isExpression)));return visitEachChild(n,visitor,e)}(n);case 1:return function visitRightAssociativeBinaryExpression(n){const{left:r,right:i}=n;if(containsYield(i)){let e;switch(r.kind){case 212:e=t.updatePropertyAccessExpression(r,cacheExpression(h.checkDefined(visitNode(r.expression,visitor,isLeftHandSideExpression))),r.name);break;case 213:e=t.updateElementAccessExpression(r,cacheExpression(h.checkDefined(visitNode(r.expression,visitor,isLeftHandSideExpression))),cacheExpression(h.checkDefined(visitNode(r.argumentExpression,visitor,isExpression))));break;default:e=h.checkDefined(visitNode(r,visitor,isExpression))}const o=n.operatorToken.kind;return isCompoundAssignment(o)?setTextRange(t.createAssignment(e,setTextRange(t.createBinaryExpression(cacheExpression(e),getNonAssignmentOperatorForCompoundAssignment(o),h.checkDefined(visitNode(i,visitor,isExpression))),n)),n):t.updateBinaryExpression(n,e,n.operatorToken,h.checkDefined(visitNode(i,visitor,isExpression)))}return visitEachChild(n,visitor,e)}(n);default:return h.assertNever(r)}}(r);case 357:return function visitCommaListExpression(e){let n=[];for(const r of e.elements)isBinaryExpression(r)&&28===r.operatorToken.kind?n.push(visitCommaExpression(r)):(containsYield(r)&&n.length>0&&(emitWorker(1,[t.createExpressionStatement(t.inlineExpressions(n))]),n=[]),n.push(h.checkDefined(visitNode(r,visitor,isExpression))));return t.inlineExpressions(n)}(r);case 228:return function visitConditionalExpression(t){if(containsYield(t.whenTrue)||containsYield(t.whenFalse)){const e=defineLabel(),n=defineLabel(),r=declareLocal();return emitBreakWhenFalse(e,h.checkDefined(visitNode(t.condition,visitor,isExpression)),t.condition),emitAssignment(r,h.checkDefined(visitNode(t.whenTrue,visitor,isExpression)),t.whenTrue),emitBreak(n),markLabel(e),emitAssignment(r,h.checkDefined(visitNode(t.whenFalse,visitor,isExpression)),t.whenFalse),markLabel(n),r}return visitEachChild(t,visitor,e)}(r);case 230:return function visitYieldExpression(e){const r=defineLabel(),i=visitNode(e.expression,visitor,isExpression);if(e.asteriskToken){!function emitYieldStar(e,t){emitWorker(7,[e],t)}(8388608&getEmitFlags(e.expression)?i:setTextRange(n().createValuesHelper(i),e),e)}else!function emitYield(e,t){emitWorker(6,[e],t)}(i,e);return markLabel(r),function createGeneratorResume(e){return setTextRange(t.createCallExpression(t.createPropertyAccessExpression(E,"sent"),void 0,[]),e)}(e)}(r);case 210:return function visitArrayLiteralExpression(e){return visitElements(e.elements,void 0,void 0,e.multiLine)}(r);case 211:return function visitObjectLiteralExpression(e){const n=e.properties,r=e.multiLine,i=countInitialNodesWithoutYield(n),o=declareLocal();emitAssignment(o,t.createObjectLiteralExpression(visitNodes2(n,visitor,isObjectLiteralElementLike,0,i),r));const a=reduceLeft(n,reduceProperty,[],i);return a.push(r?startOnNewLine(setParent(setTextRange(t.cloneNode(o),o),o.parent)):o),t.inlineExpressions(a);function reduceProperty(n,i){containsYield(i)&&n.length>0&&(emitStatement(t.createExpressionStatement(t.inlineExpressions(n))),n=[]);const a=visitNode(createExpressionForObjectLiteralElementLike(t,e,i,o),visitor,isExpression);return a&&(r&&startOnNewLine(a),n.push(a)),n}}(r);case 213:return function visitElementAccessExpression(n){if(containsYield(n.argumentExpression))return t.updateElementAccessExpression(n,cacheExpression(h.checkDefined(visitNode(n.expression,visitor,isLeftHandSideExpression))),h.checkDefined(visitNode(n.argumentExpression,visitor,isExpression)));return visitEachChild(n,visitor,e)}(r);case 214:return function visitCallExpression(n){if(!isImportCall(n)&&forEach(n.arguments,containsYield)){const{target:e,thisArg:r}=t.createCallBinding(n.expression,a,c,!0);return setOriginalNode(setTextRange(t.createFunctionApplyCall(cacheExpression(h.checkDefined(visitNode(e,visitor,isLeftHandSideExpression))),r,visitElements(n.arguments)),n),n)}return visitEachChild(n,visitor,e)}(r);case 215:return function visitNewExpression(n){if(forEach(n.arguments,containsYield)){const{target:e,thisArg:r}=t.createCallBinding(t.createPropertyAccessExpression(n.expression,"bind"),a);return setOriginalNode(setTextRange(t.createNewExpression(t.createFunctionApplyCall(cacheExpression(h.checkDefined(visitNode(e,visitor,isExpression))),r,visitElements(n.arguments,t.createVoidZero())),void 0,[]),n),n)}return visitEachChild(n,visitor,e)}(r);default:return visitEachChild(r,visitor,e)}}(r):4196352&r.transformFlags?visitEachChild(r,visitor,e):r}}function visitFunctionDeclaration(n){if(n.asteriskToken)n=setOriginalNode(setTextRange(t.createFunctionDeclaration(n.modifiers,void 0,n.name,void 0,visitParameterList(n.parameters,visitor,e),void 0,transformGeneratorFunctionBody(n.body)),n),n);else{const t=m,r=_;m=!1,_=!1,n=visitEachChild(n,visitor,e),m=t,_=r}return m?void o(n):n}function visitFunctionExpression(n){if(n.asteriskToken)n=setOriginalNode(setTextRange(t.createFunctionExpression(void 0,void 0,n.name,void 0,visitParameterList(n.parameters,visitor,e),void 0,transformGeneratorFunctionBody(n.body)),n),n);else{const t=m,r=_;m=!1,_=!1,n=visitEachChild(n,visitor,e),m=t,_=r}return n}function transformGeneratorFunctionBody(e){const o=[],a=m,s=_,c=f,l=g,d=y,p=T,u=S,h=x,R=w,B=v,j=b,J=C,W=E;m=!0,_=!1,f=void 0,g=void 0,y=void 0,T=void 0,S=void 0,x=void 0,w=1,v=void 0,b=void 0,C=void 0,E=t.createTempVariable(void 0),r();const U=t.copyPrologue(e.statements,o,!1,visitor);transformAndEmitStatements(e.statements,U);const z=function build2(){L=0,M=0,N=void 0,k=!1,F=!1,P=void 0,D=void 0,I=void 0,A=void 0,O=void 0;const e=function buildStatements(){if(v){for(let e=0;e0)),1048576))}();return insertStatementsAfterStandardPrologue(o,i()),o.push(t.createReturnStatement(z)),m=a,_=s,f=c,g=l,y=d,T=p,S=u,x=h,w=R,v=B,b=j,C=J,E=W,setTextRange(t.createBlock(o,e.multiLine),e)}function visitCommaExpression(e){let n=[];return visit(e.left),visit(e.right),t.inlineExpressions(n);function visit(e){isBinaryExpression(e)&&28===e.operatorToken.kind?(visit(e.left),visit(e.right)):(containsYield(e)&&n.length>0&&(emitWorker(1,[t.createExpressionStatement(t.inlineExpressions(n))]),n=[]),n.push(h.checkDefined(visitNode(e,visitor,isExpression))))}}function visitElements(e,n,r,i){const o=countInitialNodesWithoutYield(e);let a;if(o>0){a=declareLocal();const r=visitNodes2(e,visitor,isExpression,0,o);emitAssignment(a,t.createArrayLiteralExpression(n?[n,...r]:r)),n=void 0}const s=reduceLeft(e,function reduceElement(e,r){if(containsYield(r)&&e.length>0){const r=void 0!==a;a||(a=declareLocal()),emitAssignment(a,r?t.createArrayConcatCall(a,[t.createArrayLiteralExpression(e,i)]):t.createArrayLiteralExpression(n?[n,...e]:e,i)),n=void 0,e=[]}return e.push(h.checkDefined(visitNode(r,visitor,isExpression))),e},[],o);return a?t.createArrayConcatCall(a,[t.createArrayLiteralExpression(s,i)]):setTextRange(t.createArrayLiteralExpression(n?[n,...s]:s,i),r)}function transformAndEmitStatements(e,t=0){const n=e.length;for(let r=t;r0?emitBreak(t,e):emitStatement(e)}(n);case 253:return function transformAndEmitBreakStatement(e){const t=findBreakTarget(e.label?idText(e.label):void 0);t>0?emitBreak(t,e):emitStatement(e)}(n);case 254:return function transformAndEmitReturnStatement(e){!function emitReturn(e,t){emitWorker(8,[e],t)}(visitNode(e.expression,visitor,isExpression),e)}(n);case 255:return function transformAndEmitWithStatement(e){containsYield(e)?(!function beginWithBlock(e){const t=defineLabel(),n=defineLabel();markLabel(t),beginBlock({kind:1,expression:e,startLabel:t,endLabel:n})}(cacheExpression(h.checkDefined(visitNode(e.expression,visitor,isExpression)))),transformAndEmitEmbeddedStatement(e.statement),function endWithBlock(){h.assert(1===peekBlockKind());markLabel(endBlock().endLabel)}()):emitStatement(visitNode(e,visitor,isStatement))}(n);case 256:return function transformAndEmitSwitchStatement(e){if(containsYield(e.caseBlock)){const n=e.caseBlock,r=n.clauses.length,i=function beginSwitchBlock(){const e=defineLabel();return beginBlock({kind:2,isScript:!1,breakLabel:e}),e}(),o=cacheExpression(h.checkDefined(visitNode(e.expression,visitor,isExpression))),a=[];let s=-1;for(let e=0;e0)break;l.push(t.createCaseClause(h.checkDefined(visitNode(r.expression,visitor,isExpression)),[createInlineBreak(a[i],r.expression)]))}else e++}l.length&&(emitStatement(t.createSwitchStatement(o,t.createCaseBlock(l))),c+=l.length,l=[]),e>0&&(c+=e,e=0)}emitBreak(s>=0?a[s]:i);for(let e=0;e0)break;o.push(transformInitializedVariable(t))}o.length&&(emitStatement(t.createExpressionStatement(t.inlineExpressions(o))),i+=o.length,o=[])}}function transformInitializedVariable(e){return setSourceMapRange(t.createAssignment(setSourceMapRange(t.cloneNode(e.name),e.name),h.checkDefined(visitNode(e.initializer,visitor,isExpression))),e)}function containsYield(e){return!!e&&!!(1048576&e.transformFlags)}function countInitialNodesWithoutYield(e){const t=e.length;for(let n=0;n=0;n--){const t=T[n];if(!supportsLabeledBreakOrContinue(t))break;if(t.labelText===e)return!0}return!1}function findBreakTarget(e){if(T)if(e)for(let t=T.length-1;t>=0;t--){const n=T[t];if(supportsLabeledBreakOrContinue(n)&&n.labelText===e)return n.breakLabel;if(supportsUnlabeledBreak(n)&&hasImmediateContainingLabeledBlock(e,t-1))return n.breakLabel}else for(let e=T.length-1;e>=0;e--){const t=T[e];if(supportsUnlabeledBreak(t))return t.breakLabel}return 0}function findContinueTarget(e){if(T)if(e)for(let t=T.length-1;t>=0;t--){const n=T[t];if(supportsUnlabeledContinue(n)&&hasImmediateContainingLabeledBlock(e,t-1))return n.continueLabel}else for(let e=T.length-1;e>=0;e--){const t=T[e];if(supportsUnlabeledContinue(t))return t.continueLabel}return 0}function createLabel(e){if(void 0!==e&&e>0){void 0===x&&(x=[]);const n=t.createNumericLiteral(Number.MAX_SAFE_INTEGER);return void 0===x[e]?x[e]=[n]:x[e].push(n),n}return t.createOmittedExpression()}function createInstruction(e){const n=t.createNumericLiteral(e);return addSyntheticTrailingComment(n,3,function getInstructionName(e){switch(e){case 2:return"return";case 3:return"break";case 4:return"yield";case 5:return"yield*";case 7:return"endfinally";default:return}}(e)),n}function createInlineBreak(e,n){return h.assertLessThan(0,e,"Invalid label"),setTextRange(t.createReturnStatement(t.createArrayLiteralExpression([createInstruction(3),createLabel(e)])),n)}function emitNop(){emitWorker(0)}function emitStatement(e){e?emitWorker(1,[e]):emitNop()}function emitAssignment(e,t,n){emitWorker(2,[e,t],n)}function emitBreak(e,t){emitWorker(3,[e],t)}function emitBreakWhenTrue(e,t,n){emitWorker(4,[e,t],n)}function emitBreakWhenFalse(e,t,n){emitWorker(5,[e,t],n)}function emitWorker(e,t,n){void 0===v&&(v=[],b=[],C=[]),void 0===S&&markLabel(defineLabel());const r=v.length;v[r]=e,b[r]=t,C[r]=n}function flushLabel(){D&&(appendLabel(!k),k=!1,F=!1,M++)}function flushFinalLabel(e){(function isFinalLabelReachable(e){if(!F)return!0;if(!S||!x)return!1;for(let t=0;t=0;e--){const n=O[e];D=[t.createWithStatement(n.expression,t.createBlock(D))]}if(A){const{startLabel:e,catchLabel:n,finallyLabel:r,endLabel:i}=A;D.unshift(t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createPropertyAccessExpression(E,"trys"),"push"),void 0,[t.createArrayLiteralExpression([createLabel(e),createLabel(n),createLabel(r),createLabel(i)])]))),A=void 0}e&&D.push(t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(E,"label"),t.createNumericLiteral(M+1))))}P.push(t.createCaseClause(t.createNumericLiteral(M),D||[])),D=void 0}function tryEnterLabel(e){if(S)for(let t=0;t{isStringLiteralLike(e.arguments[0])&&!shouldRewriteModuleSpecifier(e.arguments[0].text,a)||(y=append(y,e))});const n=function getTransformModuleDelegate(e){switch(e){case 2:return transformAMDModule;case 3:return transformUMDModule;default:return transformCommonJSModule}}(p)(t);return f=void 0,g=void 0,S=!1,n});function shouldEmitUnderscoreUnderscoreESModule(){return!(hasJSFileExtension(f.fileName)&&f.commonJsModuleIndicator&&(!f.externalModuleIndicator||!0===f.externalModuleIndicator))&&!(g.exportEquals||!isExternalModule(f))}function transformCommonJSModule(n){r();const o=[],s=getStrictOptionValue(a,"alwaysStrict")||isExternalModule(f),c=t.copyPrologue(n.statements,o,s&&!isJsonSourceFile(n),topLevelVisitor);if(shouldEmitUnderscoreUnderscoreESModule()&&append(o,createUnderscoreUnderscoreESModule()),some(g.exportedNames)){const e=50;for(let n=0;n11===n.kind?t.createAssignment(t.createElementAccessExpression(t.createIdentifier("exports"),t.createStringLiteral(n.text)),e):t.createAssignment(t.createPropertyAccessExpression(t.createIdentifier("exports"),t.createIdentifier(idText(n))),e),t.createVoidZero())))}for(const e of g.exportedFunctions)appendExportsOfHoistedDeclaration(o,e);append(o,visitNode(g.externalHelpersImportDeclaration,topLevelVisitor,isStatement)),addRange(o,visitNodes2(n.statements,topLevelVisitor,isStatement,c)),addExportEqualsIfNeeded(o,!1),insertStatementsAfterStandardPrologue(o,i());const l=t.updateSourceFile(n,setTextRange(t.createNodeArray(o),n.statements));return addEmitHelpers(l,e.readEmitHelpers()),l}function transformAMDModule(n){const r=t.createIdentifier("define"),i=tryGetModuleNameFromFile(t,n,c,a),o=isJsonSourceFile(n)&&n,{aliasedModuleNames:s,unaliasedModuleNames:d,importAliasNames:p}=collectAsynchronousDependencies(n,!0),u=t.updateSourceFile(n,setTextRange(t.createNodeArray([t.createExpressionStatement(t.createCallExpression(r,void 0,[...i?[i]:[],t.createArrayLiteralExpression(o?l:[t.createStringLiteral("require"),t.createStringLiteral("exports"),...s,...d]),o?o.statements.length?o.statements[0].expression:t.createObjectLiteralExpression():t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,"require"),t.createParameterDeclaration(void 0,void 0,"exports"),...p],void 0,transformAsynchronousModuleBody(n))]))]),n.statements));return addEmitHelpers(u,e.readEmitHelpers()),u}function transformUMDModule(n){const{aliasedModuleNames:r,unaliasedModuleNames:i,importAliasNames:o}=collectAsynchronousDependencies(n,!1),s=tryGetModuleNameFromFile(t,n,c,a),l=t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,"factory")],void 0,setTextRange(t.createBlock([t.createIfStatement(t.createLogicalAnd(t.createTypeCheck(t.createIdentifier("module"),"object"),t.createTypeCheck(t.createPropertyAccessExpression(t.createIdentifier("module"),"exports"),"object")),t.createBlock([t.createVariableStatement(void 0,[t.createVariableDeclaration("v",void 0,void 0,t.createCallExpression(t.createIdentifier("factory"),void 0,[t.createIdentifier("require"),t.createIdentifier("exports")]))]),setEmitFlags(t.createIfStatement(t.createStrictInequality(t.createIdentifier("v"),t.createIdentifier("undefined")),t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(t.createIdentifier("module"),"exports"),t.createIdentifier("v")))),1)]),t.createIfStatement(t.createLogicalAnd(t.createTypeCheck(t.createIdentifier("define"),"function"),t.createPropertyAccessExpression(t.createIdentifier("define"),"amd")),t.createBlock([t.createExpressionStatement(t.createCallExpression(t.createIdentifier("define"),void 0,[...s?[s]:[],t.createArrayLiteralExpression([t.createStringLiteral("require"),t.createStringLiteral("exports"),...r,...i]),t.createIdentifier("factory")]))])))],!0),void 0)),d=t.updateSourceFile(n,setTextRange(t.createNodeArray([t.createExpressionStatement(t.createCallExpression(l,void 0,[t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,"require"),t.createParameterDeclaration(void 0,void 0,"exports"),...o],void 0,transformAsynchronousModuleBody(n))]))]),n.statements));return addEmitHelpers(d,e.readEmitHelpers()),d}function collectAsynchronousDependencies(e,n){const r=[],i=[],o=[];for(const n of e.amdDependencies)n.name?(r.push(t.createStringLiteral(n.path)),o.push(t.createParameterDeclaration(void 0,void 0,n.name))):i.push(t.createStringLiteral(n.path));for(const e of g.externalImports){const l=getExternalModuleNameLiteral(t,e,f,c,s,a),d=getLocalNameForExternalImport(t,e,f);l&&(n&&d?(setEmitFlags(d,8),r.push(l),o.push(t.createParameterDeclaration(void 0,void 0,d))):i.push(l))}return{aliasedModuleNames:r,unaliasedModuleNames:i,importAliasNames:o}}function getAMDImportExpressionForImport(e){if(isImportEqualsDeclaration(e)||isExportDeclaration(e)||!getExternalModuleNameLiteral(t,e,f,c,s,a))return;const n=getLocalNameForExternalImport(t,e,f),r=getHelperExpressionForImport(e,n);return r!==n?t.createExpressionStatement(t.createAssignment(n,r)):void 0}function transformAsynchronousModuleBody(e){r();const n=[],o=t.copyPrologue(e.statements,n,!0,topLevelVisitor);shouldEmitUnderscoreUnderscoreESModule()&&append(n,createUnderscoreUnderscoreESModule()),some(g.exportedNames)&&append(n,t.createExpressionStatement(reduceLeft(g.exportedNames,(e,n)=>11===n.kind?t.createAssignment(t.createElementAccessExpression(t.createIdentifier("exports"),t.createStringLiteral(n.text)),e):t.createAssignment(t.createPropertyAccessExpression(t.createIdentifier("exports"),t.createIdentifier(idText(n))),e),t.createVoidZero())));for(const e of g.exportedFunctions)appendExportsOfHoistedDeclaration(n,e);append(n,visitNode(g.externalHelpersImportDeclaration,topLevelVisitor,isStatement)),2===p&&addRange(n,mapDefined(g.externalImports,getAMDImportExpressionForImport)),addRange(n,visitNodes2(e.statements,topLevelVisitor,isStatement,o)),addExportEqualsIfNeeded(n,!0),insertStatementsAfterStandardPrologue(n,i());const a=t.createBlock(n,!0);return S&&addEmitHelper(a,Ta),a}function addExportEqualsIfNeeded(e,n){if(g.exportEquals){const r=visitNode(g.exportEquals.expression,visitor,isExpression);if(r)if(n){const n=t.createReturnStatement(r);setTextRange(n,g.exportEquals),setEmitFlags(n,3840),e.push(n)}else{const n=t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(t.createIdentifier("module"),"exports"),r));setTextRange(n,g.exportEquals),setEmitFlags(n,3072),e.push(n)}}}function topLevelVisitor(e){switch(e.kind){case 273:return function visitTopLevelImportDeclaration(e){let n;const r=getNamespaceDeclarationNode(e);if(2!==p){if(!e.importClause)return setOriginalNode(setTextRange(t.createExpressionStatement(createRequireCall2(e)),e),e);{const i=[];r&&!isDefaultImport(e)?i.push(t.createVariableDeclaration(t.cloneNode(r.name),void 0,void 0,getHelperExpressionForImport(e,createRequireCall2(e)))):(i.push(t.createVariableDeclaration(t.getGeneratedNameForNode(e),void 0,void 0,getHelperExpressionForImport(e,createRequireCall2(e)))),r&&isDefaultImport(e)&&i.push(t.createVariableDeclaration(t.cloneNode(r.name),void 0,void 0,t.getGeneratedNameForNode(e)))),n=append(n,setOriginalNode(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList(i,d>=2?2:0)),e),e))}}else r&&isDefaultImport(e)&&(n=append(n,t.createVariableStatement(void 0,t.createVariableDeclarationList([setOriginalNode(setTextRange(t.createVariableDeclaration(t.cloneNode(r.name),void 0,void 0,t.getGeneratedNameForNode(e)),e),e)],d>=2?2:0))));return n=function appendExportsOfImportDeclaration(e,t){if(g.exportEquals)return e;const n=t.importClause;if(!n)return e;const r=new ma;n.name&&(e=appendExportsOfDeclaration(e,r,n));const i=n.namedBindings;if(i)switch(i.kind){case 275:e=appendExportsOfDeclaration(e,r,i);break;case 276:for(const t of i.elements)e=appendExportsOfDeclaration(e,r,t,!0)}return e}(n,e),singleOrMany(n)}(e);case 272:return function visitTopLevelImportEqualsDeclaration(e){let n;h.assert(isExternalModuleImportEqualsDeclaration(e),"import= for internal module references should be handled in an earlier transformer."),2!==p?n=hasSyntacticModifier(e,32)?append(n,setOriginalNode(setTextRange(t.createExpressionStatement(createExportExpression(e.name,createRequireCall2(e))),e),e)):append(n,setOriginalNode(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(t.cloneNode(e.name),void 0,void 0,createRequireCall2(e))],d>=2?2:0)),e),e)):hasSyntacticModifier(e,32)&&(n=append(n,setOriginalNode(setTextRange(t.createExpressionStatement(createExportExpression(t.getExportName(e),t.getLocalName(e))),e),e)));return n=function appendExportsOfImportEqualsDeclaration(e,t){if(g.exportEquals)return e;return appendExportsOfDeclaration(e,new ma,t)}(n,e),singleOrMany(n)}(e);case 279:return function visitTopLevelExportDeclaration(e){if(!e.moduleSpecifier)return;const r=t.getGeneratedNameForNode(e);if(e.exportClause&&isNamedExports(e.exportClause)){const i=[];2!==p&&i.push(setOriginalNode(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(r,void 0,void 0,createRequireCall2(e))])),e),e));for(const o of e.exportClause.elements){const s=o.propertyName||o.name,c=!!Gn(a)&&!(2&getInternalEmitFlags(e))&&moduleExportNameIsDefault(s)?n().createImportDefaultHelper(r):r,l=11===s.kind?t.createElementAccessExpression(c,s):t.createPropertyAccessExpression(c,s);i.push(setOriginalNode(setTextRange(t.createExpressionStatement(createExportExpression(11===o.name.kind?t.cloneNode(o.name):t.getExportName(o),l,void 0,!0)),o),o))}return singleOrMany(i)}if(e.exportClause){const i=[];return i.push(setOriginalNode(setTextRange(t.createExpressionStatement(createExportExpression(t.cloneNode(e.exportClause.name),function getHelperExpressionForExport(e,t){if(!Gn(a)||2&getInternalEmitFlags(e))return t;if(getExportNeedsImportStarHelper(e))return n().createImportStarHelper(t);return t}(e,2!==p?createRequireCall2(e):isExportNamespaceAsDefaultDeclaration(e)||11===e.exportClause.name.kind?r:t.createIdentifier(idText(e.exportClause.name))))),e),e)),singleOrMany(i)}return setOriginalNode(setTextRange(t.createExpressionStatement(n().createExportStarHelper(2!==p?createRequireCall2(e):r)),e),e)}(e);case 278:return function visitTopLevelExportAssignment(e){if(e.isExportEquals)return;return createExportStatement(t.createIdentifier("default"),visitNode(e.expression,visitor,isExpression),e,!0)}(e);default:return topLevelNestedVisitor(e)}}function topLevelNestedVisitor(n){switch(n.kind){case 244:return function visitVariableStatement(n){let r,i,o;if(hasSyntacticModifier(n,32)){let e,a=!1;for(const r of n.declarationList.declarations)if(isIdentifier(r.name)&&isLocalName(r.name))if(e||(e=visitNodes2(n.modifiers,modifierVisitor,isModifier)),r.initializer){i=append(i,t.updateVariableDeclaration(r,r.name,void 0,void 0,createExportExpression(r.name,visitNode(r.initializer,visitor,isExpression))))}else i=append(i,r);else if(r.initializer)if(!isBindingPattern(r.name)&&(isArrowFunction(r.initializer)||isFunctionExpression(r.initializer)||isClassExpression(r.initializer))){const e=t.createAssignment(setTextRange(t.createPropertyAccessExpression(t.createIdentifier("exports"),r.name),r.name),t.createIdentifier(getTextOfIdentifierOrLiteral(r.name)));i=append(i,t.createVariableDeclaration(r.name,r.exclamationToken,r.type,visitNode(r.initializer,visitor,isExpression))),o=append(o,e),a=!0}else o=append(o,transformInitializedVariable(r));if(i&&(r=append(r,t.updateVariableStatement(n,e,t.updateVariableDeclarationList(n.declarationList,i)))),o){const e=setOriginalNode(setTextRange(t.createExpressionStatement(t.inlineExpressions(o)),n),n);a&&removeAllComments(e),r=append(r,e)}}else r=append(r,visitEachChild(n,visitor,e));return r=function appendExportsOfVariableStatement(e,t){return appendExportsOfVariableDeclarationList(e,t.declarationList,!1)}(r,n),singleOrMany(r)}(n);case 263:return function visitFunctionDeclaration(n){let r;r=hasSyntacticModifier(n,32)?append(r,setOriginalNode(setTextRange(t.createFunctionDeclaration(visitNodes2(n.modifiers,modifierVisitor,isModifier),n.asteriskToken,t.getDeclarationName(n,!0,!0),void 0,visitNodes2(n.parameters,visitor,isParameter),void 0,visitEachChild(n.body,visitor,e)),n),n)):append(r,visitEachChild(n,visitor,e));return singleOrMany(r)}(n);case 264:return function visitClassDeclaration(n){let r;r=hasSyntacticModifier(n,32)?append(r,setOriginalNode(setTextRange(t.createClassDeclaration(visitNodes2(n.modifiers,modifierVisitor,isModifierLike),t.getDeclarationName(n,!0,!0),void 0,visitNodes2(n.heritageClauses,visitor,isHeritageClause),visitNodes2(n.members,visitor,isClassElement)),n),n)):append(r,visitEachChild(n,visitor,e));return r=appendExportsOfHoistedDeclaration(r,n),singleOrMany(r)}(n);case 249:return visitForStatement(n,!0);case 250:return function visitForInStatement(n){if(isVariableDeclarationList(n.initializer)&&!(7&n.initializer.flags)){const r=appendExportsOfVariableDeclarationList(void 0,n.initializer,!0);if(some(r)){const i=visitNode(n.initializer,discardedValueVisitor,isForInitializer),o=visitNode(n.expression,visitor,isExpression),a=visitIterationBody(n.statement,topLevelNestedVisitor,e),s=isBlock(a)?t.updateBlock(a,[...r,...a.statements]):t.createBlock([...r,a],!0);return t.updateForInStatement(n,i,o,s)}}return t.updateForInStatement(n,visitNode(n.initializer,discardedValueVisitor,isForInitializer),visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e))}(n);case 251:return function visitForOfStatement(n){if(isVariableDeclarationList(n.initializer)&&!(7&n.initializer.flags)){const r=appendExportsOfVariableDeclarationList(void 0,n.initializer,!0),i=visitNode(n.initializer,discardedValueVisitor,isForInitializer),o=visitNode(n.expression,visitor,isExpression);let a=visitIterationBody(n.statement,topLevelNestedVisitor,e);return some(r)&&(a=isBlock(a)?t.updateBlock(a,[...r,...a.statements]):t.createBlock([...r,a],!0)),t.updateForOfStatement(n,n.awaitModifier,i,o,a)}return t.updateForOfStatement(n,n.awaitModifier,visitNode(n.initializer,discardedValueVisitor,isForInitializer),visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e))}(n);case 247:return function visitDoStatement(n){return t.updateDoStatement(n,visitIterationBody(n.statement,topLevelNestedVisitor,e),visitNode(n.expression,visitor,isExpression))}(n);case 248:return function visitWhileStatement(n){return t.updateWhileStatement(n,visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e))}(n);case 257:return function visitLabeledStatement(e){return t.updateLabeledStatement(e,e.label,visitNode(e.statement,topLevelNestedVisitor,isStatement,t.liftToBlock)??setTextRange(t.createEmptyStatement(),e.statement))}(n);case 255:return function visitWithStatement(e){return t.updateWithStatement(e,visitNode(e.expression,visitor,isExpression),h.checkDefined(visitNode(e.statement,topLevelNestedVisitor,isStatement,t.liftToBlock)))}(n);case 246:return function visitIfStatement(e){return t.updateIfStatement(e,visitNode(e.expression,visitor,isExpression),visitNode(e.thenStatement,topLevelNestedVisitor,isStatement,t.liftToBlock)??t.createBlock([]),visitNode(e.elseStatement,topLevelNestedVisitor,isStatement,t.liftToBlock))}(n);case 256:return function visitSwitchStatement(e){return t.updateSwitchStatement(e,visitNode(e.expression,visitor,isExpression),h.checkDefined(visitNode(e.caseBlock,topLevelNestedVisitor,isCaseBlock)))}(n);case 270:return function visitCaseBlock(e){return t.updateCaseBlock(e,visitNodes2(e.clauses,topLevelNestedVisitor,isCaseOrDefaultClause))}(n);case 297:return function visitCaseClause(e){return t.updateCaseClause(e,visitNode(e.expression,visitor,isExpression),visitNodes2(e.statements,topLevelNestedVisitor,isStatement))}(n);case 298:return function visitDefaultClause(t){return visitEachChild(t,topLevelNestedVisitor,e)}(n);case 259:return function visitTryStatement(t){return visitEachChild(t,topLevelNestedVisitor,e)}(n);case 300:return function visitCatchClause(e){return t.updateCatchClause(e,e.variableDeclaration,h.checkDefined(visitNode(e.block,topLevelNestedVisitor,isBlock)))}(n);case 242:return function visitBlock(t){return t=visitEachChild(t,topLevelNestedVisitor,e),t}(n);default:return visitor(n)}}function visitorWorker(r,i){if(!(276828160&r.transformFlags||(null==y?void 0:y.length)))return r;switch(r.kind){case 249:return visitForStatement(r,!1);case 245:return function visitExpressionStatement(e){return t.updateExpressionStatement(e,visitNode(e.expression,discardedValueVisitor,isExpression))}(r);case 218:return function visitParenthesizedExpression(e,n){return t.updateParenthesizedExpression(e,visitNode(e.expression,n?discardedValueVisitor:visitor,isExpression))}(r,i);case 356:return function visitPartiallyEmittedExpression(e,n){return t.updatePartiallyEmittedExpression(e,visitNode(e.expression,n?discardedValueVisitor:visitor,isExpression))}(r,i);case 214:const l=r===firstOrUndefined(y);if(l&&y.shift(),isImportCall(r)&&c.shouldTransformImportCall(f))return function visitImportCallExpression(r,i){if(0===p&&d>=7)return visitEachChild(r,visitor,e);const l=getExternalModuleNameLiteral(t,r,f,c,s,a),u=visitNode(firstOrUndefined(r.arguments),visitor,isExpression),m=!l||u&&isStringLiteral(u)&&u.text===l.text?u&&i?isStringLiteral(u)?rewriteModuleSpecifier(u,a):n().createRewriteRelativeImportExtensionsHelper(u):u:l,_=!!(16384&r.transformFlags);switch(a.module){case 2:return createImportCallExpressionAMD(m,_);case 3:return function createImportCallExpressionUMD(e,n){if(S=!0,isSimpleCopiableExpression(e)){const r=isGeneratedIdentifier(e)?e:isStringLiteral(e)?t.createStringLiteralFromNode(e):setEmitFlags(setTextRange(t.cloneNode(e),e),3072);return t.createConditionalExpression(t.createIdentifier("__syncRequire"),void 0,createImportCallExpressionCommonJS(e),void 0,createImportCallExpressionAMD(r,n))}{const r=t.createTempVariable(o);return t.createComma(t.createAssignment(r,e),t.createConditionalExpression(t.createIdentifier("__syncRequire"),void 0,createImportCallExpressionCommonJS(r,!0),void 0,createImportCallExpressionAMD(r,n)))}}(m??t.createVoidZero(),_);default:return createImportCallExpressionCommonJS(m)}}(r,l);if(l)return function shimOrRewriteImportOrRequireCall(e){return t.updateCallExpression(e,e.expression,void 0,visitNodes2(e.arguments,t=>t===e.arguments[0]?isStringLiteralLike(t)?rewriteModuleSpecifier(t,a):n().createRewriteRelativeImportExtensionsHelper(t):visitor(t),isExpression))}(r);break;case 227:if(isDestructuringAssignment(r))return function visitDestructuringAssignment(t,n){if(destructuringNeedsFlattening(t.left))return flattenDestructuringAssignment(t,visitor,e,0,!n,createAllExportExpressions);return visitEachChild(t,visitor,e)}(r,i);break;case 225:case 226:return function visitPreOrPostfixUnaryExpression(n,r){if((46===n.operator||47===n.operator)&&isIdentifier(n.operand)&&!isGeneratedIdentifier(n.operand)&&!isLocalName(n.operand)&&!isDeclarationNameOfEnumOrNamespace(n.operand)){const e=getExports(n.operand);if(e){let i,a=visitNode(n.operand,visitor,isExpression);isPrefixUnaryExpression(n)?a=t.updatePrefixUnaryExpression(n,a):(a=t.updatePostfixUnaryExpression(n,a),r||(i=t.createTempVariable(o),a=t.createAssignment(i,a),setTextRange(a,n)),a=t.createComma(a,t.cloneNode(n.operand)),setTextRange(a,n));for(const t of e)T[getNodeId(a)]=!0,a=createExportExpression(t,a),setTextRange(a,n);return i&&(T[getNodeId(a)]=!0,a=t.createComma(a,i),setTextRange(a,n)),a}}return visitEachChild(n,visitor,e)}(r,i)}return visitEachChild(r,visitor,e)}function visitor(e){return visitorWorker(e,!1)}function discardedValueVisitor(e){return visitorWorker(e,!0)}function destructuringNeedsFlattening(e){if(isObjectLiteralExpression(e))for(const t of e.properties)switch(t.kind){case 304:if(destructuringNeedsFlattening(t.initializer))return!0;break;case 305:if(destructuringNeedsFlattening(t.name))return!0;break;case 306:if(destructuringNeedsFlattening(t.expression))return!0;break;case 175:case 178:case 179:return!1;default:h.assertNever(t,"Unhandled object member kind")}else if(isArrayLiteralExpression(e)){for(const t of e.elements)if(isSpreadElement(t)){if(destructuringNeedsFlattening(t.expression))return!0}else if(destructuringNeedsFlattening(t))return!0}else if(isIdentifier(e))return length(getExports(e))>(isExportName(e)?1:0);return!1}function visitForStatement(n,r){if(r&&n.initializer&&isVariableDeclarationList(n.initializer)&&!(7&n.initializer.flags)){const i=appendExportsOfVariableDeclarationList(void 0,n.initializer,!1);if(i){const o=[],a=visitNode(n.initializer,discardedValueVisitor,isVariableDeclarationList),s=t.createVariableStatement(void 0,a);o.push(s),addRange(o,i);const c=visitNode(n.condition,visitor,isExpression),l=visitNode(n.incrementor,discardedValueVisitor,isExpression),d=visitIterationBody(n.statement,r?topLevelNestedVisitor:visitor,e);return o.push(t.updateForStatement(n,void 0,c,l,d)),o}}return t.updateForStatement(n,visitNode(n.initializer,discardedValueVisitor,isForInitializer),visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,discardedValueVisitor,isExpression),visitIterationBody(n.statement,r?topLevelNestedVisitor:visitor,e))}function createImportCallExpressionAMD(e,r){const i=t.createUniqueName("resolve"),o=t.createUniqueName("reject"),s=[t.createParameterDeclaration(void 0,void 0,i),t.createParameterDeclaration(void 0,void 0,o)],c=t.createBlock([t.createExpressionStatement(t.createCallExpression(t.createIdentifier("require"),void 0,[t.createArrayLiteralExpression([e||t.createOmittedExpression()]),i,o]))]);let l;d>=2?l=t.createArrowFunction(void 0,void 0,s,void 0,void 0,c):(l=t.createFunctionExpression(void 0,void 0,void 0,void 0,s,void 0,c),r&&setEmitFlags(l,16));const p=t.createNewExpression(t.createIdentifier("Promise"),void 0,[l]);return Gn(a)?t.createCallExpression(t.createPropertyAccessExpression(p,t.createIdentifier("then")),void 0,[n().createImportStarCallbackHelper()]):p}function createImportCallExpressionCommonJS(e,r){const i=e&&!isSimpleInlineableExpression(e)&&!r,o=t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Promise"),"resolve"),void 0,i?d>=2?[t.createTemplateExpression(t.createTemplateHead(""),[t.createTemplateSpan(e,t.createTemplateTail(""))])]:[t.createCallExpression(t.createPropertyAccessExpression(t.createStringLiteral(""),"concat"),void 0,[e])]:[]);let s=t.createCallExpression(t.createIdentifier("require"),void 0,i?[t.createIdentifier("s")]:e?[e]:[]);Gn(a)&&(s=n().createImportStarHelper(s));const c=i?[t.createParameterDeclaration(void 0,void 0,"s")]:[];let l;l=d>=2?t.createArrowFunction(void 0,void 0,c,void 0,void 0,s):t.createFunctionExpression(void 0,void 0,void 0,void 0,c,void 0,t.createBlock([t.createReturnStatement(s)]));return t.createCallExpression(t.createPropertyAccessExpression(o,"then"),void 0,[l])}function getHelperExpressionForImport(e,t){return!Gn(a)||2&getInternalEmitFlags(e)?t:getImportNeedsImportStarHelper(e)?n().createImportStarHelper(t):getImportNeedsImportDefaultHelper(e)?n().createImportDefaultHelper(t):t}function createRequireCall2(e){const n=getExternalModuleNameLiteral(t,e,f,c,s,a),r=[];return n&&r.push(rewriteModuleSpecifier(n,a)),t.createCallExpression(t.createIdentifier("require"),void 0,r)}function createAllExportExpressions(e,n,r){const i=getExports(e);if(i){let o=isExportName(e)?n:t.createAssignment(e,n);for(const e of i)setEmitFlags(o,8),o=createExportExpression(e,o,r);return o}return t.createAssignment(e,n)}function transformInitializedVariable(n){return isBindingPattern(n.name)?flattenDestructuringAssignment(visitNode(n,visitor,isInitializedVariable),visitor,e,0,!1,createAllExportExpressions):t.createAssignment(setTextRange(t.createPropertyAccessExpression(t.createIdentifier("exports"),n.name),n.name),n.initializer?visitNode(n.initializer,visitor,isExpression):t.createVoidZero())}function appendExportsOfVariableDeclarationList(e,t,n){if(g.exportEquals)return e;for(const r of t.declarations)e=appendExportsOfBindingElement(e,r,n);return e}function appendExportsOfBindingElement(e,t,n){if(g.exportEquals)return e;if(isBindingPattern(t.name))for(const r of t.name.elements)isOmittedExpression(r)||(e=appendExportsOfBindingElement(e,r,n));else isGeneratedIdentifier(t.name)||isVariableDeclaration(t)&&!t.initializer&&!n||(e=appendExportsOfDeclaration(e,new ma,t));return e}function appendExportsOfHoistedDeclaration(e,n){if(g.exportEquals)return e;const r=new ma;if(hasSyntacticModifier(n,32)){e=appendExportStatement(e,r,hasSyntacticModifier(n,2048)?t.createIdentifier("default"):t.getDeclarationName(n),t.getLocalName(n),n)}return n.name&&(e=appendExportsOfDeclaration(e,r,n)),e}function appendExportsOfDeclaration(e,n,r,i){const o=t.getDeclarationName(r),a=g.exportSpecifiers.get(o);if(a)for(const t of a)e=appendExportStatement(e,n,t.name,o,t.name,void 0,i);return e}function appendExportStatement(e,t,n,r,i,o,a){if(11!==n.kind){if(t.has(n))return e;t.set(n,!0)}return e=append(e,createExportStatement(n,r,i,o,a))}function createUnderscoreUnderscoreESModule(){const e=t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"defineProperty"),void 0,[t.createIdentifier("exports"),t.createStringLiteral("__esModule"),t.createObjectLiteralExpression([t.createPropertyAssignment("value",t.createTrue())])]));return setEmitFlags(e,2097152),e}function createExportStatement(e,n,r,i,o){const a=setTextRange(t.createExpressionStatement(createExportExpression(e,n,void 0,o)),r);return startOnNewLine(a),i||setEmitFlags(a,3072),a}function createExportExpression(e,n,r,i){return setTextRange(i?t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"defineProperty"),void 0,[t.createIdentifier("exports"),t.createStringLiteralFromNode(e),t.createObjectLiteralExpression([t.createPropertyAssignment("enumerable",t.createTrue()),t.createPropertyAssignment("get",t.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,t.createBlock([t.createReturnStatement(n)])))])]):t.createAssignment(11===e.kind?t.createElementAccessExpression(t.createIdentifier("exports"),t.cloneNode(e)):t.createPropertyAccessExpression(t.createIdentifier("exports"),t.cloneNode(e)),n),r)}function modifierVisitor(e){switch(e.kind){case 95:case 90:return}return e}function substituteExpressionIdentifier(e){var n,r;if(8192&getEmitFlags(e)){const n=getExternalHelpersModuleName(f);return n?t.createPropertyAccessExpression(n,e):e}if((!isGeneratedIdentifier(e)||64&e.emitNode.autoGenerate.flags)&&!isLocalName(e)){const i=s.getReferencedExportContainer(e,isExportName(e));if(i&&308===i.kind)return setTextRange(t.createPropertyAccessExpression(t.createIdentifier("exports"),t.cloneNode(e)),e);const o=s.getReferencedImportDeclaration(e);if(o){if(isImportClause(o))return setTextRange(t.createPropertyAccessExpression(t.getGeneratedNameForNode(o.parent),t.createIdentifier("default")),e);if(isImportSpecifier(o)){const i=o.propertyName||o.name,a=t.getGeneratedNameForNode((null==(r=null==(n=o.parent)?void 0:n.parent)?void 0:r.parent)||o);return setTextRange(11===i.kind?t.createElementAccessExpression(a,t.cloneNode(i)):t.createPropertyAccessExpression(a,t.cloneNode(i)),e)}}}return e}function getExports(e){if(isGeneratedIdentifier(e)){if(isFileLevelReservedGeneratedIdentifier(e)){const t=null==g?void 0:g.exportSpecifiers.get(e);if(t){const e=[];for(const n of t)e.push(n.name);return e}}}else{const t=s.getReferencedImportDeclaration(e);if(t)return null==g?void 0:g.exportedBindings[getOriginalNodeId(t)];const n=new Set,r=s.getReferencedValueDeclarations(e);if(r){for(const e of r){const t=null==g?void 0:g.exportedBindings[getOriginalNodeId(e)];if(t)for(const e of t)n.add(e)}if(n.size)return arrayFrom(n)}}}}var Ta={name:"typescript:dynamicimport-sync-require",scoped:!0,text:'\n var __syncRequire = typeof module === "object" && typeof module.exports === "object";'};function transformSystemModule(e){const{factory:t,startLexicalEnvironment:n,endLexicalEnvironment:r,hoistVariableDeclaration:i}=e,o=e.getCompilerOptions(),a=e.getEmitResolver(),s=e.getEmitHost(),c=e.onSubstituteNode,l=e.onEmitNode;e.onSubstituteNode=function onSubstituteNode(e,n){if(function isSubstitutionPrevented(e){return x&&e.id&&x[e.id]}(n=c(e,n)))return n;if(1===e)return function substituteExpression(e){switch(e.kind){case 80:return function substituteExpressionIdentifier(e){var n,r;if(8192&getEmitFlags(e)){const n=getExternalHelpersModuleName(_);return n?t.createPropertyAccessExpression(n,e):e}if(!isGeneratedIdentifier(e)&&!isLocalName(e)){const i=a.getReferencedImportDeclaration(e);if(i){if(isImportClause(i))return setTextRange(t.createPropertyAccessExpression(t.getGeneratedNameForNode(i.parent),t.createIdentifier("default")),e);if(isImportSpecifier(i)){const o=i.propertyName||i.name,a=t.getGeneratedNameForNode((null==(r=null==(n=i.parent)?void 0:n.parent)?void 0:r.parent)||i);return setTextRange(11===o.kind?t.createElementAccessExpression(a,t.cloneNode(o)):t.createPropertyAccessExpression(a,t.cloneNode(o)),e)}}}return e}(e);case 227:return function substituteBinaryExpression(e){if(isAssignmentOperator(e.operatorToken.kind)&&isIdentifier(e.left)&&(!isGeneratedIdentifier(e.left)||isFileLevelReservedGeneratedIdentifier(e.left))&&!isLocalName(e.left)){const t=getExports(e.left);if(t){let n=e;for(const e of t)n=createExportExpression(e,preventSubstitution(n));return n}}return e}(e);case 237:return function substituteMetaProperty(e){if(isImportMeta(e))return t.createPropertyAccessExpression(y,t.createIdentifier("meta"));return e}(e)}return e}(n);if(4===e)return function substituteUnspecified(e){if(305===e.kind)return function substituteShorthandPropertyAssignment(e){var n,r;const i=e.name;if(!isGeneratedIdentifier(i)&&!isLocalName(i)){const o=a.getReferencedImportDeclaration(i);if(o){if(isImportClause(o))return setTextRange(t.createPropertyAssignment(t.cloneNode(i),t.createPropertyAccessExpression(t.getGeneratedNameForNode(o.parent),t.createIdentifier("default"))),e);if(isImportSpecifier(o)){const a=o.propertyName||o.name,s=t.getGeneratedNameForNode((null==(r=null==(n=o.parent)?void 0:n.parent)?void 0:r.parent)||o);return setTextRange(t.createPropertyAssignment(t.cloneNode(i),11===a.kind?t.createElementAccessExpression(s,t.cloneNode(a)):t.createPropertyAccessExpression(s,t.cloneNode(a))),e)}}}return e}(e);return e}(n);return n},e.onEmitNode=function onEmitNode(e,t,n){if(308===t.kind){const r=getOriginalNodeId(t);_=t,f=d[r],g=p[r],x=u[r],y=m[r],x&&delete u[r],l(e,t,n),_=void 0,f=void 0,g=void 0,y=void 0,x=void 0}else l(e,t,n)},e.enableSubstitution(80),e.enableSubstitution(305),e.enableSubstitution(227),e.enableSubstitution(237),e.enableEmitNotification(308);const d=[],p=[],u=[],m=[];let _,f,g,y,T,S,x;return chainBundle(e,function transformSourceFile(i){if(i.isDeclarationFile||!(isEffectiveExternalModule(i,o)||8388608&i.transformFlags))return i;const c=getOriginalNodeId(i);_=i,S=i,f=d[c]=collectExternalModuleInfo(e,i),g=t.createUniqueName("exports"),p[c]=g,y=m[c]=t.createUniqueName("context");const l=function collectDependencyGroups(e){const n=new Map,r=[];for(const i of e){const e=getExternalModuleNameLiteral(t,i,_,s,a,o);if(e){const t=e.text,o=n.get(t);void 0!==o?r[o].externalImports.push(i):(n.set(t,r.length),r.push({name:e,externalImports:[i]}))}}return r}(f.externalImports),v=function createSystemModuleBody(e,i){const a=[];n();const s=getStrictOptionValue(o,"alwaysStrict")||isExternalModule(_),c=t.copyPrologue(e.statements,a,s,topLevelVisitor);a.push(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration("__moduleName",void 0,void 0,t.createLogicalAnd(y,t.createPropertyAccessExpression(y,"id")))]))),visitNode(f.externalHelpersImportDeclaration,topLevelVisitor,isStatement);const l=visitNodes2(e.statements,topLevelVisitor,isStatement,c);addRange(a,T),insertStatementsAfterStandardPrologue(a,r());const d=function addExportStarIfNeeded(e){if(!f.hasExportStarsToExportValues)return;if(!some(f.exportedNames)&&0===f.exportedFunctions.size&&0===f.exportSpecifiers.size){let t=!1;for(const e of f.externalImports)if(279===e.kind&&e.exportClause){t=!0;break}if(!t){const t=createExportStarFunction(void 0);return e.push(t),t.name}}const n=[];if(f.exportedNames)for(const e of f.exportedNames)moduleExportNameIsDefault(e)||n.push(t.createPropertyAssignment(t.createStringLiteralFromNode(e),t.createTrue()));for(const e of f.exportedFunctions)hasSyntacticModifier(e,2048)||(h.assert(!!e.name),n.push(t.createPropertyAssignment(t.createStringLiteralFromNode(e.name),t.createTrue())));const r=t.createUniqueName("exportedNames");e.push(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(r,void 0,void 0,t.createObjectLiteralExpression(n,!0))])));const i=createExportStarFunction(r);return e.push(i),i.name}(a),p=2097152&e.transformFlags?t.createModifiersFromModifierFlags(1024):void 0,u=t.createObjectLiteralExpression([t.createPropertyAssignment("setters",createSettersArray(d,i)),t.createPropertyAssignment("execute",t.createFunctionExpression(p,void 0,void 0,void 0,[],void 0,t.createBlock(l,!0)))],!0);return a.push(t.createReturnStatement(u)),t.createBlock(a,!0)}(i,l),b=t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,g),t.createParameterDeclaration(void 0,void 0,y)],void 0,v),C=tryGetModuleNameFromFile(t,i,s,o),E=t.createArrayLiteralExpression(map(l,e=>e.name)),N=setEmitFlags(t.updateSourceFile(i,setTextRange(t.createNodeArray([t.createExpressionStatement(t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("System"),"register"),void 0,C?[C,E,b]:[E,b]))]),i.statements)),2048);o.outFile||moveEmitHelpers(N,v,e=>!e.scoped);x&&(u[c]=x,x=void 0);return _=void 0,f=void 0,g=void 0,y=void 0,T=void 0,S=void 0,N});function createExportStarFunction(e){const n=t.createUniqueName("exportStar"),r=t.createIdentifier("m"),i=t.createIdentifier("n"),o=t.createIdentifier("exports");let a=t.createStrictInequality(i,t.createStringLiteral("default"));return e&&(a=t.createLogicalAnd(a,t.createLogicalNot(t.createCallExpression(t.createPropertyAccessExpression(e,"hasOwnProperty"),void 0,[i])))),t.createFunctionDeclaration(void 0,void 0,n,void 0,[t.createParameterDeclaration(void 0,void 0,r)],void 0,t.createBlock([t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(o,void 0,void 0,t.createObjectLiteralExpression([]))])),t.createForInStatement(t.createVariableDeclarationList([t.createVariableDeclaration(i)]),r,t.createBlock([setEmitFlags(t.createIfStatement(a,t.createExpressionStatement(t.createAssignment(t.createElementAccessExpression(o,i),t.createElementAccessExpression(r,i)))),1)])),t.createExpressionStatement(t.createCallExpression(g,void 0,[o]))],!0))}function createSettersArray(e,n){const r=[];for(const i of n){const n=forEach(i.externalImports,e=>getLocalNameForExternalImport(t,e,_)),o=n?t.getGeneratedNameForNode(n):t.createUniqueName(""),a=[];for(const n of i.externalImports){const r=getLocalNameForExternalImport(t,n,_);switch(n.kind){case 273:if(!n.importClause)break;case 272:h.assert(void 0!==r),a.push(t.createExpressionStatement(t.createAssignment(r,o))),hasSyntacticModifier(n,32)&&a.push(t.createExpressionStatement(t.createCallExpression(g,void 0,[t.createStringLiteral(idText(r)),o])));break;case 279:if(h.assert(void 0!==r),n.exportClause)if(isNamedExports(n.exportClause)){const e=[];for(const r of n.exportClause.elements)e.push(t.createPropertyAssignment(t.createStringLiteral(moduleExportNameTextUnescaped(r.name)),t.createElementAccessExpression(o,t.createStringLiteral(moduleExportNameTextUnescaped(r.propertyName||r.name)))));a.push(t.createExpressionStatement(t.createCallExpression(g,void 0,[t.createObjectLiteralExpression(e,!0)])))}else a.push(t.createExpressionStatement(t.createCallExpression(g,void 0,[t.createStringLiteral(moduleExportNameTextUnescaped(n.exportClause.name)),o])));else a.push(t.createExpressionStatement(t.createCallExpression(e,void 0,[o])))}}r.push(t.createFunctionExpression(void 0,void 0,void 0,void 0,[t.createParameterDeclaration(void 0,void 0,o)],void 0,t.createBlock(a,!0)))}return t.createArrayLiteralExpression(r,!0)}function topLevelVisitor(e){switch(e.kind){case 273:return function visitImportDeclaration(e){let n;e.importClause&&i(getLocalNameForExternalImport(t,e,_));return singleOrMany(function appendExportsOfImportDeclaration(e,t){if(f.exportEquals)return e;const n=t.importClause;if(!n)return e;n.name&&(e=appendExportsOfDeclaration(e,n));const r=n.namedBindings;if(r)switch(r.kind){case 275:e=appendExportsOfDeclaration(e,r);break;case 276:for(const t of r.elements)e=appendExportsOfDeclaration(e,t)}return e}(n,e))}(e);case 272:return function visitImportEqualsDeclaration(e){let n;return h.assert(isExternalModuleImportEqualsDeclaration(e),"import= for internal module references should be handled in an earlier transformer."),i(getLocalNameForExternalImport(t,e,_)),singleOrMany(function appendExportsOfImportEqualsDeclaration(e,t){if(f.exportEquals)return e;return appendExportsOfDeclaration(e,t)}(n,e))}(e);case 279:return function visitExportDeclaration(e){return void h.assertIsDefined(e)}(e);case 278:return function visitExportAssignment(e){if(e.isExportEquals)return;const n=visitNode(e.expression,visitor,isExpression);return createExportStatement(t.createIdentifier("default"),n,!0)}(e);default:return topLevelNestedVisitor(e)}}function visitVariableStatement(e){if(!shouldHoistVariableDeclarationList(e.declarationList))return visitNode(e,visitor,isStatement);let n;if(isVarUsing(e.declarationList)||isVarAwaitUsing(e.declarationList)){const r=visitNodes2(e.modifiers,modifierVisitor,isModifierLike),i=[];for(const n of e.declarationList.declarations)i.push(t.updateVariableDeclaration(n,t.getGeneratedNameForNode(n.name),void 0,void 0,transformInitializedVariable(n,!1)));const o=t.updateVariableDeclarationList(e.declarationList,i);n=append(n,t.updateVariableStatement(e,r,o))}else{let r;const i=hasSyntacticModifier(e,32);for(const t of e.declarationList.declarations)t.initializer?r=append(r,transformInitializedVariable(t,i)):hoistBindingElement(t);r&&(n=append(n,setTextRange(t.createExpressionStatement(t.inlineExpressions(r)),e)))}return n=function appendExportsOfVariableStatement(e,t,n){if(f.exportEquals)return e;for(const r of t.declarationList.declarations)(r.initializer||n)&&(e=appendExportsOfBindingElement(e,r,n));return e}(n,e,!1),singleOrMany(n)}function hoistBindingElement(e){if(isBindingPattern(e.name))for(const t of e.name.elements)isOmittedExpression(t)||hoistBindingElement(t);else i(t.cloneNode(e.name))}function shouldHoistVariableDeclarationList(e){return!(4194304&getEmitFlags(e)||308!==S.kind&&7&getOriginalNode(e).flags)}function transformInitializedVariable(t,n){const r=n?createExportedVariableAssignment:createNonExportedVariableAssignment;return isBindingPattern(t.name)?flattenDestructuringAssignment(t,visitor,e,0,!1,r):t.initializer?r(t.name,visitNode(t.initializer,visitor,isExpression)):t.name}function createExportedVariableAssignment(e,t,n){return createVariableAssignment(e,t,n,!0)}function createNonExportedVariableAssignment(e,t,n){return createVariableAssignment(e,t,n,!1)}function createVariableAssignment(e,n,r,o){return i(t.cloneNode(e)),o?createExportExpression(e,preventSubstitution(setTextRange(t.createAssignment(e,n),r))):preventSubstitution(setTextRange(t.createAssignment(e,n),r))}function appendExportsOfBindingElement(e,n,r){if(f.exportEquals)return e;if(isBindingPattern(n.name))for(const t of n.name.elements)isOmittedExpression(t)||(e=appendExportsOfBindingElement(e,t,r));else if(!isGeneratedIdentifier(n.name)){let i;r&&(e=appendExportStatement(e,n.name,t.getLocalName(n)),i=idText(n.name)),e=appendExportsOfDeclaration(e,n,i)}return e}function appendExportsOfHoistedDeclaration(e,n){if(f.exportEquals)return e;let r;if(hasSyntacticModifier(n,32)){const i=hasSyntacticModifier(n,2048)?t.createStringLiteral("default"):n.name;e=appendExportStatement(e,i,t.getLocalName(n)),r=getTextOfIdentifierOrLiteral(i)}return n.name&&(e=appendExportsOfDeclaration(e,n,r)),e}function appendExportsOfDeclaration(e,n,r){if(f.exportEquals)return e;const i=t.getDeclarationName(n),o=f.exportSpecifiers.get(i);if(o)for(const t of o)moduleExportNameTextUnescaped(t.name)!==r&&(e=appendExportStatement(e,t.name,i));return e}function appendExportStatement(e,t,n,r){return e=append(e,createExportStatement(t,n,r))}function createExportStatement(e,n,r){const i=t.createExpressionStatement(createExportExpression(e,n));return startOnNewLine(i),r||setEmitFlags(i,3072),i}function createExportExpression(e,n){const r=isIdentifier(e)?t.createStringLiteralFromNode(e):e;return setEmitFlags(n,3072|getEmitFlags(n)),setCommentRange(t.createCallExpression(g,void 0,[r,n]),n)}function topLevelNestedVisitor(n){switch(n.kind){case 244:return visitVariableStatement(n);case 263:return function visitFunctionDeclaration(n){T=hasSyntacticModifier(n,32)?append(T,t.updateFunctionDeclaration(n,visitNodes2(n.modifiers,modifierVisitor,isModifierLike),n.asteriskToken,t.getDeclarationName(n,!0,!0),void 0,visitNodes2(n.parameters,visitor,isParameter),void 0,visitNode(n.body,visitor,isBlock))):append(T,visitEachChild(n,visitor,e)),T=appendExportsOfHoistedDeclaration(T,n)}(n);case 264:return function visitClassDeclaration(e){let n;const r=t.getLocalName(e);return i(r),n=append(n,setTextRange(t.createExpressionStatement(t.createAssignment(r,setTextRange(t.createClassExpression(visitNodes2(e.modifiers,modifierVisitor,isModifierLike),e.name,void 0,visitNodes2(e.heritageClauses,visitor,isHeritageClause),visitNodes2(e.members,visitor,isClassElement)),e))),e)),n=appendExportsOfHoistedDeclaration(n,e),singleOrMany(n)}(n);case 249:return visitForStatement(n,!0);case 250:return function visitForInStatement(n){const r=S;return S=n,n=t.updateForInStatement(n,visitForInitializer(n.initializer),visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e)),S=r,n}(n);case 251:return function visitForOfStatement(n){const r=S;return S=n,n=t.updateForOfStatement(n,n.awaitModifier,visitForInitializer(n.initializer),visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e)),S=r,n}(n);case 247:return function visitDoStatement(n){return t.updateDoStatement(n,visitIterationBody(n.statement,topLevelNestedVisitor,e),visitNode(n.expression,visitor,isExpression))}(n);case 248:return function visitWhileStatement(n){return t.updateWhileStatement(n,visitNode(n.expression,visitor,isExpression),visitIterationBody(n.statement,topLevelNestedVisitor,e))}(n);case 257:return function visitLabeledStatement(e){return t.updateLabeledStatement(e,e.label,visitNode(e.statement,topLevelNestedVisitor,isStatement,t.liftToBlock)??t.createExpressionStatement(t.createIdentifier("")))}(n);case 255:return function visitWithStatement(e){return t.updateWithStatement(e,visitNode(e.expression,visitor,isExpression),h.checkDefined(visitNode(e.statement,topLevelNestedVisitor,isStatement,t.liftToBlock)))}(n);case 246:return function visitIfStatement(e){return t.updateIfStatement(e,visitNode(e.expression,visitor,isExpression),visitNode(e.thenStatement,topLevelNestedVisitor,isStatement,t.liftToBlock)??t.createBlock([]),visitNode(e.elseStatement,topLevelNestedVisitor,isStatement,t.liftToBlock))}(n);case 256:return function visitSwitchStatement(e){return t.updateSwitchStatement(e,visitNode(e.expression,visitor,isExpression),h.checkDefined(visitNode(e.caseBlock,topLevelNestedVisitor,isCaseBlock)))}(n);case 270:return function visitCaseBlock(e){const n=S;return S=e,e=t.updateCaseBlock(e,visitNodes2(e.clauses,topLevelNestedVisitor,isCaseOrDefaultClause)),S=n,e}(n);case 297:return function visitCaseClause(e){return t.updateCaseClause(e,visitNode(e.expression,visitor,isExpression),visitNodes2(e.statements,topLevelNestedVisitor,isStatement))}(n);case 298:return function visitDefaultClause(t){return visitEachChild(t,topLevelNestedVisitor,e)}(n);case 259:return function visitTryStatement(t){return visitEachChild(t,topLevelNestedVisitor,e)}(n);case 300:return function visitCatchClause(e){const n=S;return S=e,e=t.updateCatchClause(e,e.variableDeclaration,h.checkDefined(visitNode(e.block,topLevelNestedVisitor,isBlock))),S=n,e}(n);case 242:return function visitBlock(t){const n=S;return S=t,t=visitEachChild(t,topLevelNestedVisitor,e),S=n,t}(n);default:return visitor(n)}}function visitForStatement(n,r){const i=S;return S=n,n=t.updateForStatement(n,visitNode(n.initializer,r?visitForInitializer:discardedValueVisitor,isForInitializer),visitNode(n.condition,visitor,isExpression),visitNode(n.incrementor,discardedValueVisitor,isExpression),visitIterationBody(n.statement,r?topLevelNestedVisitor:visitor,e)),S=i,n}function visitForInitializer(e){if(function shouldHoistForInitializer(e){return isVariableDeclarationList(e)&&shouldHoistVariableDeclarationList(e)}(e)){let n;for(const t of e.declarations)n=append(n,transformInitializedVariable(t,!1)),t.initializer||hoistBindingElement(t);return n?t.inlineExpressions(n):t.createOmittedExpression()}return visitNode(e,discardedValueVisitor,isForInitializer)}function visitorWorker(n,r){if(!(276828160&n.transformFlags))return n;switch(n.kind){case 249:return visitForStatement(n,!1);case 245:return function visitExpressionStatement(e){return t.updateExpressionStatement(e,visitNode(e.expression,discardedValueVisitor,isExpression))}(n);case 218:return function visitParenthesizedExpression(e,n){return t.updateParenthesizedExpression(e,visitNode(e.expression,n?discardedValueVisitor:visitor,isExpression))}(n,r);case 356:return function visitPartiallyEmittedExpression(e,n){return t.updatePartiallyEmittedExpression(e,visitNode(e.expression,n?discardedValueVisitor:visitor,isExpression))}(n,r);case 227:if(isDestructuringAssignment(n))return function visitDestructuringAssignment(t,n){if(hasExportedReferenceInDestructuringTarget(t.left))return flattenDestructuringAssignment(t,visitor,e,0,!n);return visitEachChild(t,visitor,e)}(n,r);break;case 214:if(isImportCall(n))return function visitImportCallExpression(e){const n=getExternalModuleNameLiteral(t,e,_,s,a,o),r=visitNode(firstOrUndefined(e.arguments),visitor,isExpression),i=!n||r&&isStringLiteral(r)&&r.text===n.text?r:n;return t.createCallExpression(t.createPropertyAccessExpression(y,t.createIdentifier("import")),void 0,i?[i]:[])}(n);break;case 225:case 226:return function visitPrefixOrPostfixUnaryExpression(n,r){if((46===n.operator||47===n.operator)&&isIdentifier(n.operand)&&!isGeneratedIdentifier(n.operand)&&!isLocalName(n.operand)&&!isDeclarationNameOfEnumOrNamespace(n.operand)){const e=getExports(n.operand);if(e){let o,a=visitNode(n.operand,visitor,isExpression);isPrefixUnaryExpression(n)?a=t.updatePrefixUnaryExpression(n,a):(a=t.updatePostfixUnaryExpression(n,a),r||(o=t.createTempVariable(i),a=t.createAssignment(o,a),setTextRange(a,n)),a=t.createComma(a,t.cloneNode(n.operand)),setTextRange(a,n));for(const t of e)a=createExportExpression(t,preventSubstitution(a));return o&&(a=t.createComma(a,o),setTextRange(a,n)),a}}return visitEachChild(n,visitor,e)}(n,r)}return visitEachChild(n,visitor,e)}function visitor(e){return visitorWorker(e,!1)}function discardedValueVisitor(e){return visitorWorker(e,!0)}function hasExportedReferenceInDestructuringTarget(e){if(isAssignmentExpression(e,!0))return hasExportedReferenceInDestructuringTarget(e.left);if(isSpreadElement(e))return hasExportedReferenceInDestructuringTarget(e.expression);if(isObjectLiteralExpression(e))return some(e.properties,hasExportedReferenceInDestructuringTarget);if(isArrayLiteralExpression(e))return some(e.elements,hasExportedReferenceInDestructuringTarget);if(isShorthandPropertyAssignment(e))return hasExportedReferenceInDestructuringTarget(e.name);if(isPropertyAssignment(e))return hasExportedReferenceInDestructuringTarget(e.initializer);if(isIdentifier(e)){const t=a.getReferencedExportContainer(e);return void 0!==t&&308===t.kind}return!1}function modifierVisitor(e){switch(e.kind){case 95:case 90:return}return e}function getExports(e){let n;const r=function getReferencedDeclaration(e){if(!isGeneratedIdentifier(e)){const t=a.getReferencedImportDeclaration(e);if(t)return t;const n=a.getReferencedValueDeclaration(e);if(n&&(null==f?void 0:f.exportedBindings[getOriginalNodeId(n)]))return n;const r=a.getReferencedValueDeclarations(e);if(r)for(const e of r)if(e!==n&&(null==f?void 0:f.exportedBindings[getOriginalNodeId(e)]))return e;return n}}(e);if(r){const i=a.getReferencedExportContainer(e,!1);i&&308===i.kind&&(n=append(n,t.getDeclarationName(r))),n=addRange(n,null==f?void 0:f.exportedBindings[getOriginalNodeId(r)])}else if(isGeneratedIdentifier(e)&&isFileLevelReservedGeneratedIdentifier(e)){const t=null==f?void 0:f.exportSpecifiers.get(e);if(t){const e=[];for(const n of t)e.push(n.name);return e}}return n}function preventSubstitution(e){return void 0===x&&(x=[]),x[getNodeId(e)]=!0,e}}function transformECMAScriptModule(e){const{factory:t,getEmitHelperFactory:n}=e,r=e.getEmitHost(),i=e.getEmitResolver(),o=e.getCompilerOptions(),a=zn(o),s=e.onEmitNode,c=e.onSubstituteNode;e.onEmitNode=function onEmitNode(e,t,n){isSourceFile(t)?((isExternalModule(t)||Kn(o))&&o.importHelpers&&(p=new Map),u=t,s(e,t,n),u=void 0,p=void 0):s(e,t,n)},e.onSubstituteNode=function onSubstituteNode(e,n){if((n=c(e,n)).id&&l.has(n.id))return n;if(isIdentifier(n)&&8192&getEmitFlags(n))return function substituteHelperName(e){const n=u&&getExternalHelpersModuleName(u);if(n)return l.add(getNodeId(e)),t.createPropertyAccessExpression(n,e);if(p){const n=idText(e);let r=p.get(n);return r||p.set(n,r=t.createUniqueName(n,48)),r}return e}(n);return n},e.enableEmitNotification(308),e.enableSubstitution(80);const l=new Set;let d,p,u,m;return chainBundle(e,function transformSourceFile(r){if(r.isDeclarationFile)return r;if(isExternalModule(r)||Kn(o)){u=r,m=void 0,o.rewriteRelativeImportExtensions&&(4194304&u.flags||isInJSFile(r))&&forEachDynamicImportOrRequireCall(r,!1,!1,e=>{isStringLiteralLike(e.arguments[0])&&!shouldRewriteModuleSpecifier(e.arguments[0].text,o)||(d=append(d,e))});let i=function updateExternalModule(r){const i=createExternalHelpersImportDeclarationIfNeeded(t,n(),r,o);if(i){const e=[],n=t.copyPrologue(r.statements,e);return addRange(e,visitArray([i],visitor,isStatement)),addRange(e,visitNodes2(r.statements,visitor,isStatement,n)),t.updateSourceFile(r,setTextRange(t.createNodeArray(e),r.statements))}return visitEachChild(r,visitor,e)}(r);return addEmitHelpers(i,e.readEmitHelpers()),u=void 0,m&&(i=t.updateSourceFile(i,setTextRange(t.createNodeArray(insertStatementsAfterCustomPrologue(i.statements.slice(),m)),i.statements))),!isExternalModule(r)||200===Vn(o)||some(i.statements,isExternalModuleIndicator)?i:t.updateSourceFile(i,setTextRange(t.createNodeArray([...i.statements,createEmptyExports(t)]),i.statements))}return r});function visitor(r){switch(r.kind){case 272:return Vn(o)>=100?function visitImportEqualsDeclaration(e){let n;return h.assert(isExternalModuleImportEqualsDeclaration(e),"import= for internal module references should be handled in an earlier transformer."),n=append(n,setOriginalNode(setTextRange(t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(t.cloneNode(e.name),void 0,void 0,createRequireCall2(e))],a>=2?2:0)),e),e)),n=function appendExportsOfImportEqualsDeclaration(e,n){hasSyntacticModifier(n,32)&&(e=append(e,t.createExportDeclaration(void 0,n.isTypeOnly,t.createNamedExports([t.createExportSpecifier(!1,void 0,idText(n.name))]))));return e}(n,e),singleOrMany(n)}(r):void 0;case 278:return function visitExportAssignment(e){if(e.isExportEquals){if(200===Vn(o)){return setOriginalNode(t.createExpressionStatement(t.createAssignment(t.createPropertyAccessExpression(t.createIdentifier("module"),"exports"),e.expression)),e)}return}return e}(r);case 279:return function visitExportDeclaration(e){const n=rewriteModuleSpecifier(e.moduleSpecifier,o);if(void 0!==o.module&&o.module>5||!e.exportClause||!isNamespaceExport(e.exportClause)||!e.moduleSpecifier)return e.moduleSpecifier&&n!==e.moduleSpecifier?t.updateExportDeclaration(e,e.modifiers,e.isTypeOnly,e.exportClause,n,e.attributes):e;const r=e.exportClause.name,i=t.getGeneratedNameForNode(r),a=t.createImportDeclaration(void 0,t.createImportClause(void 0,void 0,t.createNamespaceImport(i)),n,e.attributes);setOriginalNode(a,e.exportClause);const s=isExportNamespaceAsDefaultDeclaration(e)?t.createExportDefault(i):t.createExportDeclaration(void 0,!1,t.createNamedExports([t.createExportSpecifier(!1,i,r)]));return setOriginalNode(s,e),[a,s]}(r);case 273:return function visitImportDeclaration(e){if(!o.rewriteRelativeImportExtensions)return e;const n=rewriteModuleSpecifier(e.moduleSpecifier,o);if(n===e.moduleSpecifier)return e;return t.updateImportDeclaration(e,e.modifiers,e.importClause,n,e.attributes)}(r);case 214:if(r===(null==d?void 0:d[0]))return function visitImportOrRequireCall(e){return t.updateCallExpression(e,e.expression,e.typeArguments,[isStringLiteralLike(e.arguments[0])?rewriteModuleSpecifier(e.arguments[0],o):n().createRewriteRelativeImportExtensionsHelper(e.arguments[0]),...e.arguments.slice(1)])}(d.shift());default:if((null==d?void 0:d.length)&&rangeContainsRange(r,d[0]))return visitEachChild(r,visitor,e)}return r}function createRequireCall2(e){const n=getExternalModuleNameLiteral(t,e,h.checkDefined(u),r,i,o),s=[];if(n&&s.push(rewriteModuleSpecifier(n,o)),200===Vn(o))return t.createCallExpression(t.createIdentifier("require"),void 0,s);if(!m){const e=t.createUniqueName("_createRequire",48),n=t.createImportDeclaration(void 0,t.createImportClause(void 0,void 0,t.createNamedImports([t.createImportSpecifier(!1,t.createIdentifier("createRequire"),e)])),t.createStringLiteral("module"),void 0),r=t.createUniqueName("__require",48),i=t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(r,void 0,void 0,t.createCallExpression(t.cloneNode(e),void 0,[t.createPropertyAccessExpression(t.createMetaProperty(102,t.createIdentifier("meta")),t.createIdentifier("url"))]))],a>=2?2:0));m=[n,i]}const c=m[1].declarationList.declarations[0].name;return h.assertNode(c,isIdentifier),t.createCallExpression(t.cloneNode(c),void 0,s)}}function transformImpliedNodeFormatDependentModule(e){const t=e.onSubstituteNode,n=e.onEmitNode,r=transformECMAScriptModule(e),i=e.onSubstituteNode,o=e.onEmitNode;e.onSubstituteNode=t,e.onEmitNode=n;const a=transformModule(e),s=e.onSubstituteNode,c=e.onEmitNode,getEmitModuleFormatOfFile2=t=>e.getEmitHost().getEmitModuleFormatOfFile(t);let l;return e.onSubstituteNode=function onSubstituteNode(e,n){return isSourceFile(n)?(l=n,t(e,n)):l?getEmitModuleFormatOfFile2(l)>=5?i(e,n):s(e,n):t(e,n)},e.onEmitNode=function onEmitNode(e,t,r){isSourceFile(t)&&(l=t);if(!l)return n(e,t,r);if(getEmitModuleFormatOfFile2(l)>=5)return o(e,t,r);return c(e,t,r)},e.enableSubstitution(308),e.enableEmitNotification(308),function transformSourceFileOrBundle(t){return 308===t.kind?transformSourceFile(t):function transformBundle(t){return e.factory.createBundle(map(t.sourceFiles,transformSourceFile))}(t)};function transformSourceFile(e){if(e.isDeclarationFile)return e;l=e;const t=function getModuleTransformForFile(e){return getEmitModuleFormatOfFile2(e)>=5?r:a}(e)(e);return l=void 0,h.assert(isSourceFile(t)),t}}function canProduceDiagnostics(e){return isVariableDeclaration(e)||isPropertyDeclaration(e)||isPropertySignature(e)||isBindingElement(e)||isSetAccessor(e)||isGetAccessor(e)||isConstructSignatureDeclaration(e)||isCallSignatureDeclaration(e)||isMethodDeclaration(e)||isMethodSignature(e)||isFunctionDeclaration(e)||isParameter(e)||isTypeParameterDeclaration(e)||isExpressionWithTypeArguments(e)||isImportEqualsDeclaration(e)||isTypeAliasDeclaration(e)||isConstructorDeclaration(e)||isIndexSignatureDeclaration(e)||isPropertyAccessExpression(e)||isElementAccessExpression(e)||isBinaryExpression(e)||isJSDocTypeAlias(e)}function createGetSymbolAccessibilityDiagnosticForNodeName(e){return isSetAccessor(e)||isGetAccessor(e)?function getAccessorNameVisibilityError(t){const n=function getAccessorNameVisibilityDiagnosticMessage(t){return isStatic(e)?t.errorModuleName?2===t.accessibility?Ot.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:264===e.parent.kind?t.errorModuleName?2===t.accessibility?Ot.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_property_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?Ot.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Property_0_of_exported_interface_has_or_is_using_private_name_1}(t);return void 0!==n?{diagnosticMessage:n,errorNode:e,typeName:e.name}:void 0}:isMethodSignature(e)||isMethodDeclaration(e)?function getMethodNameVisibilityError(t){const n=function getMethodNameVisibilityDiagnosticMessage(t){return isStatic(e)?t.errorModuleName?2===t.accessibility?Ot.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:264===e.parent.kind?t.errorModuleName?2===t.accessibility?Ot.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_method_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?Ot.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Method_0_of_exported_interface_has_or_is_using_private_name_1}(t);return void 0!==n?{diagnosticMessage:n,errorNode:e,typeName:e.name}:void 0}:createGetSymbolAccessibilityDiagnosticForNode(e)}function createGetSymbolAccessibilityDiagnosticForNode(e){return isVariableDeclaration(e)||isPropertyDeclaration(e)||isPropertySignature(e)||isPropertyAccessExpression(e)||isElementAccessExpression(e)||isBinaryExpression(e)||isBindingElement(e)||isConstructorDeclaration(e)?getVariableDeclarationTypeVisibilityError:isSetAccessor(e)||isGetAccessor(e)?function getAccessorDeclarationTypeVisibilityError(t){let n;n=179===e.kind?isStatic(e)?t.errorModuleName?Ot.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?Ot.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:isStatic(e)?t.errorModuleName?2===t.accessibility?Ot.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?2===t.accessibility?Ot.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;return{diagnosticMessage:n,errorNode:e.name,typeName:e.name}}:isConstructSignatureDeclaration(e)||isCallSignatureDeclaration(e)||isMethodDeclaration(e)||isMethodSignature(e)||isFunctionDeclaration(e)||isIndexSignatureDeclaration(e)?function getReturnTypeVisibilityError(t){let n;switch(e.kind){case 181:n=t.errorModuleName?Ot.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 180:n=t.errorModuleName?Ot.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 182:n=t.errorModuleName?Ot.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 175:case 174:n=isStatic(e)?t.errorModuleName?2===t.accessibility?Ot.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:Ot.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:264===e.parent.kind?t.errorModuleName?2===t.accessibility?Ot.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:Ot.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:t.errorModuleName?Ot.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 263:n=t.errorModuleName?2===t.accessibility?Ot.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:Ot.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:Ot.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return h.fail("This is unknown kind for signature: "+e.kind)}return{diagnosticMessage:n,errorNode:e.name||e}}:isParameter(e)?isParameterPropertyDeclaration(e,e.parent)&&hasSyntacticModifier(e.parent,2)?getVariableDeclarationTypeVisibilityError:function getParameterDeclarationTypeVisibilityError(t){const n=function getParameterDeclarationTypeVisibilityDiagnosticMessage(t){switch(e.parent.kind){case 177:return t.errorModuleName?2===t.accessibility?Ot.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 181:case 186:return t.errorModuleName?Ot.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 180:return t.errorModuleName?Ot.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 182:return t.errorModuleName?Ot.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 175:case 174:return isStatic(e.parent)?t.errorModuleName?2===t.accessibility?Ot.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:264===e.parent.parent.kind?t.errorModuleName?2===t.accessibility?Ot.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:t.errorModuleName?Ot.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 263:case 185:return t.errorModuleName?2===t.accessibility?Ot.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 179:case 178:return t.errorModuleName?2===t.accessibility?Ot.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:Ot.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return h.fail(`Unknown parent for parameter: ${h.formatSyntaxKind(e.parent.kind)}`)}}(t);return void 0!==n?{diagnosticMessage:n,errorNode:e,typeName:e.name}:void 0}:isTypeParameterDeclaration(e)?function getTypeParameterConstraintVisibilityError(){let t;switch(e.parent.kind){case 264:t=Ot.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 265:t=Ot.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 201:t=Ot.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 186:case 181:t=Ot.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 180:t=Ot.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 175:case 174:t=isStatic(e.parent)?Ot.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:264===e.parent.parent.kind?Ot.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:Ot.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 185:case 263:t=Ot.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 196:t=Ot.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1;break;case 266:t=Ot.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return h.fail("This is unknown parent for type parameter: "+e.parent.kind)}return{diagnosticMessage:t,errorNode:e,typeName:e.name}}:isExpressionWithTypeArguments(e)?function getHeritageClauseVisibilityError(){let t;t=isClassDeclaration(e.parent.parent)?isHeritageClause(e.parent)&&119===e.parent.token?Ot.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:e.parent.parent.name?Ot.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:Ot.extends_clause_of_exported_class_has_or_is_using_private_name_0:Ot.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;return{diagnosticMessage:t,errorNode:e,typeName:getNameOfDeclaration(e.parent.parent)}}:isImportEqualsDeclaration(e)?function getImportEntityNameVisibilityError(){return{diagnosticMessage:Ot.Import_declaration_0_is_using_private_name_1,errorNode:e,typeName:e.name}}:isTypeAliasDeclaration(e)||isJSDocTypeAlias(e)?function getTypeAliasDeclarationVisibilityError(t){return{diagnosticMessage:t.errorModuleName?Ot.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:Ot.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:isJSDocTypeAlias(e)?h.checkDefined(e.typeExpression):e.type,typeName:isJSDocTypeAlias(e)?getNameOfDeclaration(e):e.name}}:h.assertNever(e,`Attempted to set a declaration diagnostic context for unhandled node kind: ${h.formatSyntaxKind(e.kind)}`);function getVariableDeclarationTypeVisibilityError(t){const n=function getVariableDeclarationTypeVisibilityDiagnosticMessage(t){return 261===e.kind||209===e.kind?t.errorModuleName?2===t.accessibility?Ot.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:Ot.Exported_variable_0_has_or_is_using_private_name_1:173===e.kind||212===e.kind||213===e.kind||227===e.kind||172===e.kind||170===e.kind&&hasSyntacticModifier(e.parent,2)?isStatic(e)?t.errorModuleName?2===t.accessibility?Ot.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:264===e.parent.kind||170===e.kind?t.errorModuleName?2===t.accessibility?Ot.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:Ot.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:Ot.Public_property_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?Ot.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:Ot.Property_0_of_exported_interface_has_or_is_using_private_name_1:void 0}(t);return void 0!==n?{diagnosticMessage:n,errorNode:e,typeName:e.name}:void 0}}function createGetIsolatedDeclarationErrors(e){const t={220:Ot.Add_a_return_type_to_the_function_expression,219:Ot.Add_a_return_type_to_the_function_expression,175:Ot.Add_a_return_type_to_the_method,178:Ot.Add_a_return_type_to_the_get_accessor_declaration,179:Ot.Add_a_type_to_parameter_of_the_set_accessor_declaration,263:Ot.Add_a_return_type_to_the_function_declaration,181:Ot.Add_a_return_type_to_the_function_declaration,170:Ot.Add_a_type_annotation_to_the_parameter_0,261:Ot.Add_a_type_annotation_to_the_variable_0,173:Ot.Add_a_type_annotation_to_the_property_0,172:Ot.Add_a_type_annotation_to_the_property_0,278:Ot.Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it},n={219:Ot.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,263:Ot.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,220:Ot.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,175:Ot.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,181:Ot.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,178:Ot.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,179:Ot.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,170:Ot.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations,261:Ot.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations,173:Ot.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,172:Ot.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,168:Ot.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations,306:Ot.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations,305:Ot.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations,210:Ot.Only_const_arrays_can_be_inferred_with_isolatedDeclarations,278:Ot.Default_exports_can_t_be_inferred_with_isolatedDeclarations,231:Ot.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations};return function getDiagnostic2(r){if(findAncestor(r,isHeritageClause))return createDiagnosticForNode(r,Ot.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations);if((isPartOfTypeNode(r)||isTypeQueryNode(r.parent))&&(isEntityName(r)||isEntityNameExpression(r)))return function createEntityInTypeNodeError(e){const t=createDiagnosticForNode(e,Ot.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations,getTextOfNode(e,!1));return addParentDeclarationRelatedInfo(e,t),t}(r);switch(h.type(r),r.kind){case 178:case 179:return createAccessorTypeError(r);case 168:case 305:case 306:return function createObjectLiteralError(e){const t=createDiagnosticForNode(e,n[e.kind]);return addParentDeclarationRelatedInfo(e,t),t}(r);case 210:case 231:return function createArrayLiteralError(e){const t=createDiagnosticForNode(e,n[e.kind]);return addParentDeclarationRelatedInfo(e,t),t}(r);case 175:case 181:case 219:case 220:case 263:return function createReturnTypeError(e){const r=createDiagnosticForNode(e,n[e.kind]);return addParentDeclarationRelatedInfo(e,r),addRelatedInfo(r,createDiagnosticForNode(e,t[e.kind])),r}(r);case 209:return function createBindingElementError(e){return createDiagnosticForNode(e,Ot.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations)}(r);case 173:case 261:return function createVariableOrPropertyError(e){const r=createDiagnosticForNode(e,n[e.kind]),i=getTextOfNode(e.name,!1);return addRelatedInfo(r,createDiagnosticForNode(e,t[e.kind],i)),r}(r);case 170:return function createParameterError(r){if(isSetAccessor(r.parent))return createAccessorTypeError(r.parent);const i=e.requiresAddingImplicitUndefined(r,r.parent);if(!i&&r.initializer)return createExpressionError(r.initializer);const o=i?Ot.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:n[r.kind],a=createDiagnosticForNode(r,o),s=getTextOfNode(r.name,!1);return addRelatedInfo(a,createDiagnosticForNode(r,t[r.kind],s)),a}(r);case 304:return createExpressionError(r.initializer);case 232:return function createClassExpressionError(e){return createExpressionError(e,Ot.Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations)}(r);default:return createExpressionError(r)}};function findNearestDeclaration(e){const t=findAncestor(e,e=>isExportAssignment(e)||isStatement(e)||isVariableDeclaration(e)||isPropertyDeclaration(e)||isParameter(e));if(t)return isExportAssignment(t)?t:isReturnStatement(t)?findAncestor(t,e=>isFunctionLikeDeclaration(e)&&!isConstructorDeclaration(e)):isStatement(t)?void 0:t}function createAccessorTypeError(e){const{getAccessor:r,setAccessor:i}=getAllAccessorDeclarations(e.symbol.declarations,e),o=createDiagnosticForNode((isSetAccessor(e)?e.parameters[0]:e)??e,n[e.kind]);return i&&addRelatedInfo(o,createDiagnosticForNode(i,t[i.kind])),r&&addRelatedInfo(o,createDiagnosticForNode(r,t[r.kind])),o}function addParentDeclarationRelatedInfo(e,n){const r=findNearestDeclaration(e);if(r){const e=isExportAssignment(r)||!r.name?"":getTextOfNode(r.name,!1);addRelatedInfo(n,createDiagnosticForNode(r,t[r.kind],e))}return n}function createExpressionError(e,r){const i=findNearestDeclaration(e);let o;if(i){const a=isExportAssignment(i)||!i.name?"":getTextOfNode(i.name,!1);i===findAncestor(e.parent,e=>isExportAssignment(e)||(isStatement(e)?"quit":!isParenthesizedExpression(e)&&!isTypeAssertionExpression(e)&&!isAsExpression(e)))?(o=createDiagnosticForNode(e,r??n[i.kind]),addRelatedInfo(o,createDiagnosticForNode(i,t[i.kind],a))):(o=createDiagnosticForNode(e,r??Ot.Expression_type_can_t_be_inferred_with_isolatedDeclarations),addRelatedInfo(o,createDiagnosticForNode(i,t[i.kind],a)),addRelatedInfo(o,createDiagnosticForNode(e,Ot.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit)))}else o=createDiagnosticForNode(e,r??Ot.Expression_type_can_t_be_inferred_with_isolatedDeclarations);return o}}function getDeclarationDiagnostics(e,t,n){const r=e.getCompilerOptions();return contains(filter(getSourceFilesToEmit(e,n),isSourceFileNotJson),n)?transformNodes(t,e,Wr,r,[n],[transformDeclarations],!1).diagnostics:void 0}var Sa=531469,xa=8;function transformDeclarations(e){const throwDiagnostic=()=>h.fail("Diagnostic emitted without context");let t,n,r,i,o=throwDiagnostic,a=!0,s=!1,c=!1,d=!1,p=!1;const{factory:u}=e,m=e.getEmitHost();let restoreFallbackNode=()=>{};const _={trackSymbol:function trackSymbol(e,t,n){if(262144&e.flags)return!1;return handleSymbolAccessibilityError(v.isSymbolAccessible(e,t,n,!0))},reportInaccessibleThisError:function reportInaccessibleThisError(){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,errorDeclarationNameWithFallback(),"this"))},reportInaccessibleUniqueSymbolError:function reportInaccessibleUniqueSymbolError(){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,errorDeclarationNameWithFallback(),"unique symbol"))},reportCyclicStructureError:function reportCyclicStructureError(){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary,errorDeclarationNameWithFallback()))},reportPrivateInBaseOfClassExpression:function reportPrivateInBaseOfClassExpression(t){(f||g)&&e.addDiagnostic(addRelatedInfo(createDiagnosticForNode(f||g,Ot.Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected,t),...isVariableDeclaration((f||g).parent)?[createDiagnosticForNode(f||g,Ot.Add_a_type_annotation_to_the_variable_0,errorDeclarationNameWithFallback())]:[]))},reportLikelyUnsafeImportRequiredError:function reportLikelyUnsafeImportRequiredError(t){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary,errorDeclarationNameWithFallback(),t))},reportTruncationError:function reportTruncationError(){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed))},moduleResolverHost:m,reportNonlocalAugmentation:function reportNonlocalAugmentation(t,n,r){var i;const o=null==(i=n.declarations)?void 0:i.find(e=>getSourceFileOfNode(e)===t),a=filter(r.declarations,e=>getSourceFileOfNode(e)!==t);if(o&&a)for(const t of a)e.addDiagnostic(addRelatedInfo(createDiagnosticForNode(t,Ot.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized),createDiagnosticForNode(o,Ot.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file)))},reportNonSerializableProperty:function reportNonSerializableProperty(t){(f||g)&&e.addDiagnostic(createDiagnosticForNode(f||g,Ot.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized,t))},reportInferenceFallback,pushErrorFallbackNode(e){const t=g,n=restoreFallbackNode;restoreFallbackNode=()=>{restoreFallbackNode=n,g=t},g=e},popErrorFallbackNode(){restoreFallbackNode()}};let f,g,y,T,S,x;const v=e.getEmitResolver(),b=e.getCompilerOptions(),C=createGetIsolatedDeclarationErrors(v),{stripInternal:E,isolatedDeclarations:N}=b;return function transformRoot(l){if(308===l.kind&&l.isDeclarationFile)return l;if(309===l.kind){s=!0,T=[],S=[],x=[];let _=!1;const f=u.createBundle(map(l.sourceFiles,s=>{if(s.isDeclarationFile)return;if(_=_||s.hasNoDefaultLib,y=s,t=s,n=void 0,i=!1,r=new Map,o=throwDiagnostic,d=!1,p=!1,collectFileReferences(s),isExternalOrCommonJsModule(s)||isJsonSourceFile(s)){c=!1,a=!1;const t=isSourceFileJS(s)?u.createNodeArray(transformDeclarationsForJS(s)):visitNodes2(s.statements,visitDeclarationStatements,isStatement);return u.updateSourceFile(s,[u.createModuleDeclaration([u.createModifier(138)],u.createStringLiteral(getResolvedExternalModuleName(e.getEmitHost(),s)),u.createModuleBlock(setTextRange(u.createNodeArray(transformAndReplaceLatePaintedStatements(t)),s.statements)))],!0,[],[],!1,[])}a=!0;const l=isSourceFileJS(s)?u.createNodeArray(transformDeclarationsForJS(s)):visitNodes2(s.statements,visitDeclarationStatements,isStatement);return u.updateSourceFile(s,transformAndReplaceLatePaintedStatements(l),!0,[],[],!1,[])})),g=getDirectoryPath(normalizeSlashes(getOutputPathsFor(l,m,!0).declarationFilePath));return f.syntheticFileReferences=getReferencedFiles(g),f.syntheticTypeReferences=getTypeReferences(),f.syntheticLibReferences=getLibReferences(),f.hasNoDefaultLib=_,f}let _;if(a=!0,d=!1,p=!1,t=l,y=l,o=throwDiagnostic,s=!1,c=!1,i=!1,n=void 0,r=new Map,T=[],S=[],x=[],collectFileReferences(y),isSourceFileJS(y))_=u.createNodeArray(transformDeclarationsForJS(l));else{const e=visitNodes2(l.statements,visitDeclarationStatements,isStatement);_=setTextRange(u.createNodeArray(transformAndReplaceLatePaintedStatements(e)),l.statements),isExternalModule(l)&&(!c||d&&!p)&&(_=setTextRange(u.createNodeArray([..._,createEmptyExports(u)]),_))}const f=getDirectoryPath(normalizeSlashes(getOutputPathsFor(l,m,!0).declarationFilePath));return u.updateSourceFile(l,_,!0,getReferencedFiles(f),getTypeReferences(),l.hasNoDefaultLib,getLibReferences());function collectFileReferences(e){T=concatenate(T,map(e.referencedFiles,t=>[e,t])),S=concatenate(S,e.typeReferenceDirectives),x=concatenate(x,e.libReferenceDirectives)}function copyFileReferenceAsSynthetic(e){const t={...e};return t.pos=-1,t.end=-1,t}function getTypeReferences(){return mapDefined(S,e=>{if(e.preserve)return copyFileReferenceAsSynthetic(e)})}function getLibReferences(){return mapDefined(x,e=>{if(e.preserve)return copyFileReferenceAsSynthetic(e)})}function getReferencedFiles(e){return mapDefined(T,([t,n])=>{if(!n.preserve)return;const r=m.getSourceFileFromReference(t,n);if(!r)return;let i;if(r.isDeclarationFile)i=r.fileName;else{if(s&&contains(l.sourceFiles,r))return;const e=getOutputPathsFor(r,m,!0);i=e.declarationFilePath||e.jsFilePath||r.fileName}if(!i)return;const o=getRelativePathToDirectoryOrUrl(e,i,m.getCurrentDirectory(),m.getCanonicalFileName,!1),a=copyFileReferenceAsSynthetic(n);return a.fileName=o,a})}};function reportExpandoFunctionErrors(t){v.getPropertiesOfContainerFunction(t).forEach(t=>{if(isExpandoPropertyDeclaration(t.valueDeclaration)){const n=isBinaryExpression(t.valueDeclaration)?t.valueDeclaration.left:t.valueDeclaration;e.addDiagnostic(createDiagnosticForNode(n,Ot.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function))}})}function reportInferenceFallback(t){N&&!isSourceFileJS(y)&&getSourceFileOfNode(t)===y&&(isVariableDeclaration(t)&&v.isExpandoFunctionDeclaration(t)?reportExpandoFunctionErrors(t):e.addDiagnostic(C(t)))}function handleSymbolAccessibilityError(t){if(0===t.accessibility){if(t.aliasesToMakeVisible)if(n)for(const e of t.aliasesToMakeVisible)pushIfUnique(n,e);else n=t.aliasesToMakeVisible}else if(3!==t.accessibility){const n=o(t);if(n)return n.typeName?e.addDiagnostic(createDiagnosticForNode(t.errorNode||n.errorNode,n.diagnosticMessage,getTextOfNode(n.typeName),t.errorSymbolName,t.errorModuleName)):e.addDiagnostic(createDiagnosticForNode(t.errorNode||n.errorNode,n.diagnosticMessage,t.errorSymbolName,t.errorModuleName)),!0}return!1}function errorDeclarationNameWithFallback(){return f?declarationNameToString(f):g&&getNameOfDeclaration(g)?declarationNameToString(getNameOfDeclaration(g)):g&&isExportAssignment(g)?g.isExportEquals?"export=":"default":"(Missing)"}function transformDeclarationsForJS(e){const t=o;o=t=>t.errorNode&&canProduceDiagnostics(t.errorNode)?createGetSymbolAccessibilityDiagnosticForNode(t.errorNode)(t):{diagnosticMessage:t.errorModuleName?Ot.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:Ot.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,errorNode:t.errorNode||e};const n=v.getDeclarationStatementsForSourceFile(e,Sa,xa,_);return o=t,n}function filterBindingPatternInitializers(e){return 80===e.kind?e:208===e.kind?u.updateArrayBindingPattern(e,visitNodes2(e.elements,visitBindingElement,isArrayBindingElement)):u.updateObjectBindingPattern(e,visitNodes2(e.elements,visitBindingElement,isBindingElement));function visitBindingElement(e){return 233===e.kind?e:(e.propertyName&&isComputedPropertyName(e.propertyName)&&isEntityNameExpression(e.propertyName.expression)&&checkEntityNameVisibility(e.propertyName.expression,t),u.updateBindingElement(e,e.dotDotDotToken,e.propertyName,filterBindingPatternInitializers(e.name),void 0))}}function ensureParameter(e,t){let n;i||(n=o,o=createGetSymbolAccessibilityDiagnosticForNode(e));const r=u.updateParameterDeclaration(e,function maskModifiers(e,t,n,r){return e.createModifiersFromModifierFlags(maskModifierFlags(t,n,r))}(u,e,t),e.dotDotDotToken,filterBindingPatternInitializers(e.name),v.isOptionalParameter(e)?e.questionToken||u.createToken(58):void 0,ensureType(e,!0),ensureNoInitializer(e));return i||(o=n),r}function shouldPrintWithInitializer(e){return canHaveLiteralInitializer(e)&&!!e.initializer&&v.isLiteralConstDeclaration(getParseTreeNode(e))}function ensureNoInitializer(e){if(shouldPrintWithInitializer(e)){return isPrimitiveLiteralValue(unwrapParenthesizedExpression(e.initializer))||reportInferenceFallback(e),v.createLiteralConstValue(getParseTreeNode(e,canHaveLiteralInitializer),_)}}function ensureType(e,n){if(!n&&hasEffectiveModifier(e,2))return;if(shouldPrintWithInitializer(e))return;if(!isExportAssignment(e)&&!isBindingElement(e)&&e.type&&(!isParameter(e)||!v.requiresAddingImplicitUndefined(e,t)))return visitNode(e.type,visitDeclarationSubtree,isTypeNode);const r=f;let a,s;return f=e.name,i||(a=o,canProduceDiagnostics(e)&&(o=createGetSymbolAccessibilityDiagnosticForNode(e))),hasInferredType(e)?s=v.createTypeOfDeclaration(e,t,Sa,xa,_):isFunctionLike(e)?s=v.createReturnTypeOfSignatureDeclaration(e,t,Sa,xa,_):h.assertNever(e),f=r,i||(o=a),s??u.createKeywordTypeNode(133)}function isDeclarationAndNotVisible(e){switch((e=getParseTreeNode(e)).kind){case 263:case 268:case 265:case 264:case 266:case 267:return!v.isDeclarationVisible(e);case 261:return!getBindingNameVisible(e);case 272:case 273:case 279:case 278:return!1;case 176:return!0}return!1}function getBindingNameVisible(e){return!isOmittedExpression(e)&&(isBindingPattern(e.name)?some(e.name.elements,getBindingNameVisible):v.isDeclarationVisible(e))}function updateParamsList(e,t,n){if(hasEffectiveModifier(e,2))return u.createNodeArray();const r=map(t,e=>ensureParameter(e,n));return r?u.createNodeArray(r,t.hasTrailingComma):u.createNodeArray()}function updateAccessorParamsList(e,t){let n;if(!t){const t=getThisParameter(e);t&&(n=[ensureParameter(t)])}if(isSetAccessorDeclaration(e)){let r;if(!t){const t=getSetAccessorValueParameter(e);t&&(r=ensureParameter(t))}r||(r=u.createParameterDeclaration(void 0,void 0,"value")),n=append(n,r)}return u.createNodeArray(n||l)}function ensureTypeParams(e,t){return hasEffectiveModifier(e,2)?void 0:visitNodes2(t,visitDeclarationSubtree,isTypeParameterDeclaration)}function isEnclosingDeclaration(e){return isSourceFile(e)||isTypeAliasDeclaration(e)||isModuleDeclaration(e)||isClassDeclaration(e)||isInterfaceDeclaration(e)||isFunctionLike(e)||isIndexSignatureDeclaration(e)||isMappedTypeNode(e)}function checkEntityNameVisibility(e,t){handleSymbolAccessibilityError(v.isEntityNameVisible(e,t))}function preserveJsDoc(e,t){return hasJSDocNodes(e)&&hasJSDocNodes(t)&&(e.jsDoc=t.jsDoc),setCommentRange(e,getCommentRange(t))}function rewriteModuleSpecifier2(t,n){if(n){if(c=c||268!==t.kind&&206!==t.kind,isStringLiteralLike(n)&&s){const n=getExternalModuleNameFromDeclaration(e.getEmitHost(),v,t);if(n)return u.createStringLiteral(n)}return n}}function tryGetResolutionModeOverride(e){const t=getResolutionModeOverride(e);return e&&void 0!==t?e:void 0}function transformAndReplaceLatePaintedStatements(e){for(;length(n);){const e=n.shift();if(!isLateVisibilityPaintedStatement(e))return h.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${h.formatSyntaxKind(e.kind)}`);const t=a;a=e.parent&&isSourceFile(e.parent)&&!(isExternalModule(e.parent)&&s);const i=transformTopLevelDeclaration(e);a=t,r.set(getOriginalNodeId(e),i)}return visitNodes2(e,function visitLateVisibilityMarkedStatements(e){if(isLateVisibilityPaintedStatement(e)){const t=getOriginalNodeId(e);if(r.has(t)){const n=r.get(t);return r.delete(t),n&&((isArray(n)?some(n,needsScopeMarker):needsScopeMarker(n))&&(d=!0),isSourceFile(e.parent)&&(isArray(n)?some(n,isExternalModuleIndicator):isExternalModuleIndicator(n))&&(c=!0)),n}}return e},isStatement)}function visitDeclarationSubtree(n){if(shouldStripInternal(n))return;if(isDeclaration(n)){if(isDeclarationAndNotVisible(n))return;if(hasDynamicName(n))if(N){if(!v.isDefinitelyReferenceToGlobalSymbolObject(n.name.expression)){if(isClassDeclaration(n.parent)||isObjectLiteralExpression(n.parent))return void e.addDiagnostic(createDiagnosticForNode(n,Ot.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations));if((isInterfaceDeclaration(n.parent)||isTypeLiteralNode(n.parent))&&!isEntityNameExpression(n.name.expression))return void e.addDiagnostic(createDiagnosticForNode(n,Ot.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations))}}else if(!v.isLateBound(getParseTreeNode(n))||!isEntityNameExpression(n.name.expression))return}if(isFunctionLike(n)&&v.isImplementationOfOverload(n))return;if(isSemicolonClassElement(n))return;let r;isEnclosingDeclaration(n)&&(r=t,t=n);const a=o,s=canProduceDiagnostics(n),c=i;let l=(188===n.kind||201===n.kind)&&266!==n.parent.kind;if((isMethodDeclaration(n)||isMethodSignature(n))&&hasEffectiveModifier(n,2)){if(n.symbol&&n.symbol.declarations&&n.symbol.declarations[0]!==n)return;return cleanup(u.createPropertyDeclaration(ensureModifiers(n),n.name,void 0,void 0,void 0))}if(s&&!i&&(o=createGetSymbolAccessibilityDiagnosticForNode(n)),isTypeQueryNode(n)&&checkEntityNameVisibility(n.exprName,t),l&&(i=!0),function isProcessedComponent(e){switch(e.kind){case 181:case 177:case 175:case 178:case 179:case 173:case 172:case 174:case 180:case 182:case 261:case 169:case 234:case 184:case 195:case 185:case 186:case 206:return!0}return!1}(n))switch(n.kind){case 234:{(isEntityName(n.expression)||isEntityNameExpression(n.expression))&&checkEntityNameVisibility(n.expression,t);const r=visitEachChild(n,visitDeclarationSubtree,e);return cleanup(u.updateExpressionWithTypeArguments(r,r.expression,r.typeArguments))}case 184:{checkEntityNameVisibility(n.typeName,t);const r=visitEachChild(n,visitDeclarationSubtree,e);return cleanup(u.updateTypeReferenceNode(r,r.typeName,r.typeArguments))}case 181:return cleanup(u.updateConstructSignature(n,ensureTypeParams(n,n.typeParameters),updateParamsList(n,n.parameters),ensureType(n)));case 177:return cleanup(u.createConstructorDeclaration(ensureModifiers(n),updateParamsList(n,n.parameters,0),void 0));case 175:if(isPrivateIdentifier(n.name))return cleanup(void 0);return cleanup(u.createMethodDeclaration(ensureModifiers(n),void 0,n.name,n.questionToken,ensureTypeParams(n,n.typeParameters),updateParamsList(n,n.parameters),ensureType(n),void 0));case 178:return isPrivateIdentifier(n.name)?cleanup(void 0):cleanup(u.updateGetAccessorDeclaration(n,ensureModifiers(n),n.name,updateAccessorParamsList(n,hasEffectiveModifier(n,2)),ensureType(n),void 0));case 179:return isPrivateIdentifier(n.name)?cleanup(void 0):cleanup(u.updateSetAccessorDeclaration(n,ensureModifiers(n),n.name,updateAccessorParamsList(n,hasEffectiveModifier(n,2)),void 0));case 173:return isPrivateIdentifier(n.name)?cleanup(void 0):cleanup(u.updatePropertyDeclaration(n,ensureModifiers(n),n.name,n.questionToken,ensureType(n),ensureNoInitializer(n)));case 172:return isPrivateIdentifier(n.name)?cleanup(void 0):cleanup(u.updatePropertySignature(n,ensureModifiers(n),n.name,n.questionToken,ensureType(n)));case 174:return isPrivateIdentifier(n.name)?cleanup(void 0):cleanup(u.updateMethodSignature(n,ensureModifiers(n),n.name,n.questionToken,ensureTypeParams(n,n.typeParameters),updateParamsList(n,n.parameters),ensureType(n)));case 180:return cleanup(u.updateCallSignature(n,ensureTypeParams(n,n.typeParameters),updateParamsList(n,n.parameters),ensureType(n)));case 182:return cleanup(u.updateIndexSignature(n,ensureModifiers(n),updateParamsList(n,n.parameters),visitNode(n.type,visitDeclarationSubtree,isTypeNode)||u.createKeywordTypeNode(133)));case 261:return isBindingPattern(n.name)?recreateBindingPattern(n.name):(l=!0,i=!0,cleanup(u.updateVariableDeclaration(n,n.name,void 0,ensureType(n),ensureNoInitializer(n))));case 169:return function isPrivateMethodTypeParameter(e){return 175===e.parent.kind&&hasEffectiveModifier(e.parent,2)}(n)&&(n.default||n.constraint)?cleanup(u.updateTypeParameterDeclaration(n,n.modifiers,n.name,void 0,void 0)):cleanup(visitEachChild(n,visitDeclarationSubtree,e));case 195:{const e=visitNode(n.checkType,visitDeclarationSubtree,isTypeNode),r=visitNode(n.extendsType,visitDeclarationSubtree,isTypeNode),i=t;t=n.trueType;const o=visitNode(n.trueType,visitDeclarationSubtree,isTypeNode);t=i;const a=visitNode(n.falseType,visitDeclarationSubtree,isTypeNode);return h.assert(e),h.assert(r),h.assert(o),h.assert(a),cleanup(u.updateConditionalTypeNode(n,e,r,o,a))}case 185:return cleanup(u.updateFunctionTypeNode(n,visitNodes2(n.typeParameters,visitDeclarationSubtree,isTypeParameterDeclaration),updateParamsList(n,n.parameters),h.checkDefined(visitNode(n.type,visitDeclarationSubtree,isTypeNode))));case 186:return cleanup(u.updateConstructorTypeNode(n,ensureModifiers(n),visitNodes2(n.typeParameters,visitDeclarationSubtree,isTypeParameterDeclaration),updateParamsList(n,n.parameters),h.checkDefined(visitNode(n.type,visitDeclarationSubtree,isTypeNode))));case 206:return isLiteralImportTypeNode(n)?cleanup(u.updateImportTypeNode(n,u.updateLiteralTypeNode(n.argument,rewriteModuleSpecifier2(n,n.argument.literal)),n.attributes,n.qualifier,visitNodes2(n.typeArguments,visitDeclarationSubtree,isTypeNode),n.isTypeOf)):cleanup(n);default:h.assertNever(n,`Attempted to process unhandled node kind: ${h.formatSyntaxKind(n.kind)}`)}return isTupleTypeNode(n)&&getLineAndCharacterOfPosition(y,n.pos).line===getLineAndCharacterOfPosition(y,n.end).line&&setEmitFlags(n,1),cleanup(visitEachChild(n,visitDeclarationSubtree,e));function cleanup(e){return e&&s&&hasDynamicName(n)&&function checkName(e){let n;i||(n=o,o=createGetSymbolAccessibilityDiagnosticForNodeName(e));f=e.name,h.assert(hasDynamicName(e));checkEntityNameVisibility(e.name.expression,t),i||(o=n);f=void 0}(n),isEnclosingDeclaration(n)&&(t=r),s&&!i&&(o=a),l&&(i=c),e===n?e:e&&setOriginalNode(preserveJsDoc(e,n),n)}}function visitDeclarationStatements(e){if(!function isPreservedDeclarationStatement(e){switch(e.kind){case 263:case 268:case 272:case 265:case 264:case 266:case 267:case 244:case 273:case 279:case 278:return!0}return!1}(e))return;if(shouldStripInternal(e))return;switch(e.kind){case 279:return isSourceFile(e.parent)&&(c=!0),p=!0,u.updateExportDeclaration(e,e.modifiers,e.isTypeOnly,e.exportClause,rewriteModuleSpecifier2(e,e.moduleSpecifier),tryGetResolutionModeOverride(e.attributes));case 278:if(isSourceFile(e.parent)&&(c=!0),p=!0,80===e.expression.kind)return e;{const t=u.createUniqueName("_default",16);o=()=>({diagnosticMessage:Ot.Default_export_of_the_module_has_or_is_using_private_name_0,errorNode:e}),g=e;const n=ensureType(e),r=u.createVariableDeclaration(t,void 0,n,void 0);g=void 0;const i=u.createVariableStatement(a?[u.createModifier(138)]:[],u.createVariableDeclarationList([r],2));return preserveJsDoc(i,e),removeAllComments(e),[i,u.updateExportAssignment(e,e.modifiers,t)]}}const t=transformTopLevelDeclaration(e);return r.set(getOriginalNodeId(e),t),e}function stripExportModifiers(e){if(isImportEqualsDeclaration(e)||hasEffectiveModifier(e,2048)||!canHaveModifiers(e))return e;const t=u.createModifiersFromModifierFlags(131039&getEffectiveModifierFlags(e));return u.replaceModifiers(e,t)}function updateModuleDeclarationAndKeyword(e,t,n,r){const i=u.updateModuleDeclaration(e,t,n,r);if(isAmbientModule(i)||32&i.flags)return i;const o=u.createModuleDeclaration(i.modifiers,i.name,i.body,32|i.flags);return setOriginalNode(o,i),setTextRange(o,i),o}function transformTopLevelDeclaration(i){if(n)for(;orderedRemoveItem(n,i););if(shouldStripInternal(i))return;switch(i.kind){case 272:return function transformImportEqualsDeclaration(e){if(v.isDeclarationVisible(e)){if(284===e.moduleReference.kind){const t=getExternalModuleImportEqualsDeclarationExpression(e);return u.updateImportEqualsDeclaration(e,e.modifiers,e.isTypeOnly,e.name,u.updateExternalModuleReference(e.moduleReference,rewriteModuleSpecifier2(e,t)))}{const n=o;return o=createGetSymbolAccessibilityDiagnosticForNode(e),checkEntityNameVisibility(e.moduleReference,t),o=n,e}}}(i);case 273:return function transformImportDeclaration(t){if(!t.importClause)return u.updateImportDeclaration(t,t.modifiers,t.importClause,rewriteModuleSpecifier2(t,t.moduleSpecifier),tryGetResolutionModeOverride(t.attributes));const n=166===t.importClause.phaseModifier?void 0:t.importClause.phaseModifier,r=t.importClause&&t.importClause.name&&v.isDeclarationVisible(t.importClause)?t.importClause.name:void 0;if(!t.importClause.namedBindings)return r&&u.updateImportDeclaration(t,t.modifiers,u.updateImportClause(t.importClause,n,r,void 0),rewriteModuleSpecifier2(t,t.moduleSpecifier),tryGetResolutionModeOverride(t.attributes));if(275===t.importClause.namedBindings.kind){const e=v.isDeclarationVisible(t.importClause.namedBindings)?t.importClause.namedBindings:void 0;return r||e?u.updateImportDeclaration(t,t.modifiers,u.updateImportClause(t.importClause,n,r,e),rewriteModuleSpecifier2(t,t.moduleSpecifier),tryGetResolutionModeOverride(t.attributes)):void 0}const i=mapDefined(t.importClause.namedBindings.elements,e=>v.isDeclarationVisible(e)?e:void 0);return i&&i.length||r?u.updateImportDeclaration(t,t.modifiers,u.updateImportClause(t.importClause,n,r,i&&i.length?u.updateNamedImports(t.importClause.namedBindings,i):void 0),rewriteModuleSpecifier2(t,t.moduleSpecifier),tryGetResolutionModeOverride(t.attributes)):v.isImportRequiredByAugmentation(t)?(N&&e.addDiagnostic(createDiagnosticForNode(t,Ot.Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations)),u.updateImportDeclaration(t,t.modifiers,void 0,rewriteModuleSpecifier2(t,t.moduleSpecifier),tryGetResolutionModeOverride(t.attributes))):void 0}(i)}if(isDeclaration(i)&&isDeclarationAndNotVisible(i))return;if(isJSDocImportTag(i))return;if(isFunctionLike(i)&&v.isImplementationOfOverload(i))return;let s;isEnclosingDeclaration(i)&&(s=t,t=i);const l=canProduceDiagnostics(i),m=o;l&&(o=createGetSymbolAccessibilityDiagnosticForNode(i));const y=a;switch(i.kind){case 266:{a=!1;const e=cleanup(u.updateTypeAliasDeclaration(i,ensureModifiers(i),i.name,visitNodes2(i.typeParameters,visitDeclarationSubtree,isTypeParameterDeclaration),h.checkDefined(visitNode(i.type,visitDeclarationSubtree,isTypeNode))));return a=y,e}case 265:return cleanup(u.updateInterfaceDeclaration(i,ensureModifiers(i),i.name,ensureTypeParams(i,i.typeParameters),transformHeritageClauses(i.heritageClauses),visitNodes2(i.members,visitDeclarationSubtree,isTypeElement)));case 263:{const e=cleanup(u.updateFunctionDeclaration(i,ensureModifiers(i),void 0,i.name,ensureTypeParams(i,i.typeParameters),updateParamsList(i,i.parameters),ensureType(i),void 0));if(e&&v.isExpandoFunctionDeclaration(i)&&function shouldEmitFunctionProperties(e){var t;if(e.body)return!0;const n=null==(t=e.symbol.declarations)?void 0:t.filter(e=>isFunctionDeclaration(e)&&!e.body);return!n||n.indexOf(e)===n.length-1}(i)){const n=v.getPropertiesOfContainerFunction(i);N&&reportExpandoFunctionErrors(i);const r=Di.createModuleDeclaration(void 0,e.name||u.createIdentifier("_default"),u.createModuleBlock([]),32);setParent(r,t),r.locals=createSymbolTable(n),r.symbol=n[0].parent;const a=[];let s=mapDefined(n,e=>{if(!isExpandoPropertyDeclaration(e.valueDeclaration))return;const t=unescapeLeadingUnderscores(e.escapedName);if(!isIdentifierText(t,99))return;o=createGetSymbolAccessibilityDiagnosticForNode(e.valueDeclaration);const n=v.createTypeOfDeclaration(e.valueDeclaration,r,Sa,2|xa,_);o=m;const i=isStringANonContextualKeyword(t),s=i?u.getGeneratedNameForNode(e.valueDeclaration):u.createIdentifier(t);i&&a.push([s,t]);const c=u.createVariableDeclaration(s,void 0,n,void 0);return u.createVariableStatement(i?void 0:[u.createToken(95)],u.createVariableDeclarationList([c]))});a.length?s.push(u.createExportDeclaration(void 0,!1,u.createNamedExports(map(a,([e,t])=>u.createExportSpecifier(!1,e,t))))):s=mapDefined(s,e=>u.replaceModifiers(e,0));const l=u.createModuleDeclaration(ensureModifiers(i),i.name,u.createModuleBlock(s),32);if(!hasEffectiveModifier(e,2048))return[e,l];const d=u.createModifiersFromModifierFlags(-2081&getEffectiveModifierFlags(e)|128),f=u.updateFunctionDeclaration(e,d,void 0,e.name,e.typeParameters,e.parameters,e.type,void 0),g=u.updateModuleDeclaration(l,d,l.name,l.body),y=u.createExportAssignment(void 0,!1,l.name);return isSourceFile(i.parent)&&(c=!0),p=!0,[f,g,y]}return e}case 268:{a=!1;const e=i.body;if(e&&269===e.kind){const t=d,n=p;p=!1,d=!1;let r=transformAndReplaceLatePaintedStatements(visitNodes2(e.statements,visitDeclarationStatements,isStatement));33554432&i.flags&&(d=!1),isGlobalScopeAugmentation(i)||function hasScopeMarker2(e){return some(e,isScopeMarker2)}(r)||p||(r=d?u.createNodeArray([...r,createEmptyExports(u)]):visitNodes2(r,stripExportModifiers,isStatement));const o=u.updateModuleBlock(e,r);a=y,d=t,p=n;const s=ensureModifiers(i);return cleanup(updateModuleDeclarationAndKeyword(i,s,isExternalModuleAugmentation(i)?rewriteModuleSpecifier2(i,i.name):i.name,o))}{a=y;const t=ensureModifiers(i);a=!1,visitNode(e,visitDeclarationStatements);const n=getOriginalNodeId(e),o=r.get(n);return r.delete(n),cleanup(updateModuleDeclarationAndKeyword(i,t,i.name,o))}}case 264:{f=i.name,g=i;const e=u.createNodeArray(ensureModifiers(i)),n=ensureTypeParams(i,i.typeParameters),r=getFirstConstructorWithBody(i);let s;if(r){const e=o;s=compact(flatMap(r.parameters,e=>{if(hasSyntacticModifier(e,31)&&!shouldStripInternal(e))return o=createGetSymbolAccessibilityDiagnosticForNode(e),80===e.name.kind?preserveJsDoc(u.createPropertyDeclaration(ensureModifiers(e),e.name,e.questionToken,ensureType(e),ensureNoInitializer(e)),e):function walkBindingPattern(t){let n;for(const r of t.elements)isOmittedExpression(r)||(isBindingPattern(r.name)&&(n=concatenate(n,walkBindingPattern(r.name))),n=n||[],n.push(u.createPropertyDeclaration(ensureModifiers(e),r.name,void 0,ensureType(r),void 0)));return n}(e.name)})),o=e}const c=concatenate(concatenate(concatenate(some(i.members,e=>!!e.name&&isPrivateIdentifier(e.name))?[u.createPropertyDeclaration(void 0,u.createPrivateIdentifier("#private"),void 0,void 0,void 0)]:void 0,v.createLateBoundIndexSignatures(i,t,Sa,xa,_)),s),visitNodes2(i.members,visitDeclarationSubtree,isClassElement)),l=u.createNodeArray(c),d=getEffectiveBaseTypeNode(i);if(d&&!isEntityNameExpression(d.expression)&&106!==d.expression.kind){const t=i.name?unescapeLeadingUnderscores(i.name.escapedText):"default",r=u.createUniqueName(`${t}_base`,16);o=()=>({diagnosticMessage:Ot.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,errorNode:d,typeName:i.name});const s=u.createVariableDeclaration(r,void 0,v.createTypeOfExpression(d.expression,i,Sa,xa,_),void 0),c=u.createVariableStatement(a?[u.createModifier(138)]:[],u.createVariableDeclarationList([s],2)),p=u.createNodeArray(map(i.heritageClauses,e=>{if(96===e.token){const t=o;o=createGetSymbolAccessibilityDiagnosticForNode(e.types[0]);const n=u.updateHeritageClause(e,map(e.types,e=>u.updateExpressionWithTypeArguments(e,r,visitNodes2(e.typeArguments,visitDeclarationSubtree,isTypeNode))));return o=t,n}return u.updateHeritageClause(e,visitNodes2(u.createNodeArray(filter(e.types,e=>isEntityNameExpression(e.expression)||106===e.expression.kind)),visitDeclarationSubtree,isExpressionWithTypeArguments))}));return[c,cleanup(u.updateClassDeclaration(i,e,i.name,n,p,l))]}{const t=transformHeritageClauses(i.heritageClauses);return cleanup(u.updateClassDeclaration(i,e,i.name,n,t,l))}}case 244:return cleanup(function transformVariableStatement(e){if(!forEach(e.declarationList.declarations,getBindingNameVisible))return;const t=visitNodes2(e.declarationList.declarations,visitDeclarationSubtree,isVariableDeclaration);if(!length(t))return;const n=u.createNodeArray(ensureModifiers(e));let r;isVarUsing(e.declarationList)||isVarAwaitUsing(e.declarationList)?(r=u.createVariableDeclarationList(t,2),setOriginalNode(r,e.declarationList),setTextRange(r,e.declarationList),setCommentRange(r,e.declarationList)):r=u.updateVariableDeclarationList(e.declarationList,t);return u.updateVariableStatement(e,n,r)}(i));case 267:return cleanup(u.updateEnumDeclaration(i,u.createNodeArray(ensureModifiers(i)),i.name,u.createNodeArray(mapDefined(i.members,t=>{if(shouldStripInternal(t))return;const n=v.getEnumMemberValue(t),r=null==n?void 0:n.value;N&&t.initializer&&(null==n?void 0:n.hasExternalReferences)&&!isComputedPropertyName(t.name)&&e.addDiagnostic(createDiagnosticForNode(t,Ot.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations));const i=void 0===r?void 0:"string"==typeof r?u.createStringLiteral(r):r<0?u.createPrefixUnaryExpression(41,u.createNumericLiteral(-r)):u.createNumericLiteral(r);return preserveJsDoc(u.updateEnumMember(t,t.name,i),t)}))))}return h.assertNever(i,`Unhandled top-level node in declaration emit: ${h.formatSyntaxKind(i.kind)}`);function cleanup(e){return isEnclosingDeclaration(i)&&(t=s),l&&(o=m),268===i.kind&&(a=y),e===i?e:(g=void 0,f=void 0,e&&setOriginalNode(preserveJsDoc(e,i),i))}}function recreateBindingPattern(e){return flatten(mapDefined(e.elements,e=>function recreateBindingElement(e){if(233===e.kind)return;if(e.name){if(!getBindingNameVisible(e))return;return isBindingPattern(e.name)?recreateBindingPattern(e.name):u.createVariableDeclaration(e.name,void 0,ensureType(e),void 0)}}(e)))}function shouldStripInternal(e){return!!E&&!!e&&isInternalDeclaration(e,y)}function isScopeMarker2(e){return isExportAssignment(e)||isExportDeclaration(e)}function ensureModifiers(e){const t=getEffectiveModifierFlags(e),n=function ensureModifierFlags(e){let t=130030,n=a&&!function isAlwaysType(e){if(265===e.kind)return!0;return!1}(e)?128:0;const r=308===e.parent.kind;(!r||s&&r&&isExternalModule(e.parent))&&(t^=128,n=0);return maskModifierFlags(e,t,n)}(e);return t===n?visitArray(e.modifiers,e=>tryCast(e,isModifier),isModifier):u.createModifiersFromModifierFlags(n)}function transformHeritageClauses(e){return u.createNodeArray(filter(map(e,e=>u.updateHeritageClause(e,visitNodes2(u.createNodeArray(filter(e.types,t=>isEntityNameExpression(t.expression)||96===e.token&&106===t.expression.kind)),visitDeclarationSubtree,isExpressionWithTypeArguments))),e=>e.types&&!!e.types.length))}}function maskModifierFlags(e,t=131070,n=0){let r=getEffectiveModifierFlags(e)&t|n;return 2048&r&&!(32&r)&&(r^=32),2048&r&&128&r&&(r^=128),r}function canHaveLiteralInitializer(e){switch(e.kind){case 173:case 172:return!hasEffectiveModifier(e,2);case 170:case 261:return!0}return!1}var va={scriptTransformers:l,declarationTransformers:l};function getTransformers(e,t,n){return{scriptTransformers:getScriptTransformers(e,t,n),declarationTransformers:getDeclarationTransformers(t)}}function getScriptTransformers(e,t,n){if(n)return l;const r=zn(e),i=Vn(e),o=ir(e),a=[];return addRange(a,t&&map(t.before,wrapScriptTransformerFactory)),a.push(transformTypeScript),e.experimentalDecorators&&a.push(transformLegacyDecorators),getJSXTransformEnabled(e)&&a.push(transformJsx),r<99&&a.push(transformESNext),e.experimentalDecorators||!(r<99)&&o||a.push(transformESDecorators),a.push(transformClassFields),r<8&&a.push(transformES2021),r<7&&a.push(transformES2020),r<6&&a.push(transformES2019),r<5&&a.push(transformES2018),r<4&&a.push(transformES2017),r<3&&a.push(transformES2016),r<2&&(a.push(transformES2015),a.push(transformGenerators)),a.push(function getModuleTransformer(e){switch(e){case 200:return transformECMAScriptModule;case 99:case 7:case 6:case 5:case 100:case 101:case 102:case 199:case 1:return transformImpliedNodeFormatDependentModule;case 4:return transformSystemModule;default:return transformModule}}(i)),addRange(a,t&&map(t.after,wrapScriptTransformerFactory)),a}function getDeclarationTransformers(e){const t=[];return t.push(transformDeclarations),addRange(t,e&&map(e.afterDeclarations,wrapDeclarationTransformerFactory)),t}function wrapCustomTransformerFactory(e,t){return n=>{const r=e(n);return"function"==typeof r?t(n,r):function wrapCustomTransformer(e){return t=>isBundle(t)?e.transformBundle(t):e.transformSourceFile(t)}(r)}}function wrapScriptTransformerFactory(e){return wrapCustomTransformerFactory(e,chainBundle)}function wrapDeclarationTransformerFactory(e){return wrapCustomTransformerFactory(e,(e,t)=>t)}function noEmitSubstitution(e,t){return t}function noEmitNotification(e,t,n){n(e,t)}function transformNodes(e,t,n,r,i,o,a){var s,c;const l=new Array(359);let d,p,u,m,_,f=0,g=[],y=[],T=[],S=[],x=0,v=!1,b=[],C=0,E=noEmitSubstitution,N=noEmitNotification,k=0;const F=[],P={factory:n,getCompilerOptions:()=>r,getEmitResolver:()=>e,getEmitHost:()=>t,getEmitHelperFactory:memoize(()=>createEmitHelperFactory(P)),startLexicalEnvironment:function startLexicalEnvironment(){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),h.assert(!v,"Lexical environment is suspended."),g[x]=d,y[x]=p,T[x]=u,S[x]=f,x++,d=void 0,p=void 0,u=void 0,f=0},suspendLexicalEnvironment:function suspendLexicalEnvironment(){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),h.assert(!v,"Lexical environment is already suspended."),v=!0},resumeLexicalEnvironment:function resumeLexicalEnvironment(){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),h.assert(v,"Lexical environment is not suspended."),v=!1},endLexicalEnvironment:function endLexicalEnvironment(){let e;if(h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),h.assert(!v,"Lexical environment is suspended."),d||p||u){if(p&&(e=[...p]),d){const t=n.createVariableStatement(void 0,n.createVariableDeclarationList(d));setEmitFlags(t,2097152),e?e.push(t):e=[t]}u&&(e=e?[...e,...u]:[...u])}x--,d=g[x],p=y[x],u=T[x],f=S[x],0===x&&(g=[],y=[],T=[],S=[]);return e},setLexicalEnvironmentFlags:function setLexicalEnvironmentFlags(e,t){f=t?f|e:f&~e},getLexicalEnvironmentFlags:function getLexicalEnvironmentFlags(){return f},hoistVariableDeclaration:function hoistVariableDeclaration(e){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed.");const t=setEmitFlags(n.createVariableDeclaration(e),128);d?d.push(t):d=[t];1&f&&(f|=2)},hoistFunctionDeclaration:function hoistFunctionDeclaration(e){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),setEmitFlags(e,2097152),p?p.push(e):p=[e]},addInitializationStatement:function addInitializationStatement(e){h.assert(k>0,"Cannot modify the lexical environment during initialization."),h.assert(k<2,"Cannot modify the lexical environment after transformation has completed."),setEmitFlags(e,2097152),u?u.push(e):u=[e]},startBlockScope:function startBlockScope(){h.assert(k>0,"Cannot start a block scope during initialization."),h.assert(k<2,"Cannot start a block scope after transformation has completed."),b[C]=m,C++,m=void 0},endBlockScope:function endBlockScope(){h.assert(k>0,"Cannot end a block scope during initialization."),h.assert(k<2,"Cannot end a block scope after transformation has completed.");const e=some(m)?[n.createVariableStatement(void 0,n.createVariableDeclarationList(m.map(e=>n.createVariableDeclaration(e)),1))]:void 0;C--,m=b[C],0===C&&(b=[]);return e},addBlockScopedVariable:function addBlockScopedVariable(e){h.assert(C>0,"Cannot add a block scoped variable outside of an iteration body."),(m||(m=[])).push(e)},requestEmitHelper:function requestEmitHelper(e){if(h.assert(k>0,"Cannot modify the transformation context during initialization."),h.assert(k<2,"Cannot modify the transformation context after transformation has completed."),h.assert(!e.scoped,"Cannot request a scoped emit helper."),e.dependencies)for(const t of e.dependencies)requestEmitHelper(t);_=append(_,e)},readEmitHelpers:function readEmitHelpers(){h.assert(k>0,"Cannot modify the transformation context during initialization."),h.assert(k<2,"Cannot modify the transformation context after transformation has completed.");const e=_;return _=void 0,e},enableSubstitution:function enableSubstitution(e){h.assert(k<2,"Cannot modify the transformation context after transformation has completed."),l[e]|=1},enableEmitNotification:function enableEmitNotification(e){h.assert(k<2,"Cannot modify the transformation context after transformation has completed."),l[e]|=2},isSubstitutionEnabled,isEmitNotificationEnabled,get onSubstituteNode(){return E},set onSubstituteNode(e){h.assert(k<1,"Cannot modify transformation hooks after initialization has completed."),h.assert(void 0!==e,"Value must not be 'undefined'"),E=e},get onEmitNode(){return N},set onEmitNode(e){h.assert(k<1,"Cannot modify transformation hooks after initialization has completed."),h.assert(void 0!==e,"Value must not be 'undefined'"),N=e},addDiagnostic(e){F.push(e)}};for(const e of i)disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(e)));mark("beforeTransform");const D=o.map(e=>e(P)),transformation=e=>{for(const t of D)e=t(e);return e};k=1;const I=[];for(const e of i)null==(s=J)||s.push(J.Phase.Emit,"transformNodes",308===e.kind?{path:e.path}:{kind:e.kind,pos:e.pos,end:e.end}),I.push((a?transformation:transformRoot)(e)),null==(c=J)||c.pop();return k=2,mark("afterTransform"),measure("transformTime","beforeTransform","afterTransform"),{transformed:I,substituteNode:function substituteNode(e,t){return h.assert(k<3,"Cannot substitute a node after the result is disposed."),t&&isSubstitutionEnabled(t)&&E(e,t)||t},emitNodeWithNotification:function emitNodeWithNotification(e,t,n){h.assert(k<3,"Cannot invoke TransformationResult callbacks after the result is disposed."),t&&(isEmitNotificationEnabled(t)?N(e,t,n):n(e,t))},isEmitNotificationEnabled,dispose:function dispose(){if(k<3){for(const e of i)disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(e)));d=void 0,g=void 0,p=void 0,y=void 0,E=void 0,N=void 0,_=void 0,k=3}},diagnostics:F};function transformRoot(e){return!e||isSourceFile(e)&&e.isDeclarationFile?e:transformation(e)}function isSubstitutionEnabled(e){return!(!(1&l[e.kind])||8&getEmitFlags(e))}function isEmitNotificationEnabled(e){return!!(2&l[e.kind])||!!(4&getEmitFlags(e))}}var ba={factory:Wr,getCompilerOptions:()=>({}),getEmitResolver:notImplemented,getEmitHost:notImplemented,getEmitHelperFactory:notImplemented,startLexicalEnvironment:noop,resumeLexicalEnvironment:noop,suspendLexicalEnvironment:noop,endLexicalEnvironment:returnUndefined,setLexicalEnvironmentFlags:noop,getLexicalEnvironmentFlags:()=>0,hoistVariableDeclaration:noop,hoistFunctionDeclaration:noop,addInitializationStatement:noop,startBlockScope:noop,endBlockScope:returnUndefined,addBlockScopedVariable:noop,requestEmitHelper:noop,readEmitHelpers:notImplemented,enableSubstitution:noop,enableEmitNotification:noop,isSubstitutionEnabled:notImplemented,isEmitNotificationEnabled:notImplemented,onSubstituteNode:noEmitSubstitution,onEmitNode:noEmitNotification,addDiagnostic:noop},Ca=function createBracketsMap(){const e=[];return e[1024]=["{","}"],e[2048]=["(",")"],e[4096]=["<",">"],e[8192]=["[","]"],e}();function isBuildInfoFile(e){return fileExtensionIs(e,".tsbuildinfo")}function forEachEmittedFile(e,t,n,r=!1,i,o){const a=isArray(n)?n:getSourceFilesToEmit(e,n,r),s=e.getCompilerOptions();if(!i)if(s.outFile){if(a.length){const n=Wr.createBundle(a),i=t(getOutputPathsFor(n,e,r),n);if(i)return i}}else for(const n of a){const i=t(getOutputPathsFor(n,e,r),n);if(i)return i}if(o){const e=getTsBuildInfoEmitOutputFilePath(s);if(e)return t({buildInfoPath:e},void 0)}}function getTsBuildInfoEmitOutputFilePath(e){const t=e.configFilePath;if(!function canEmitTsBuildInfo(e){return tr(e)||!!e.tscBuild}(e))return;if(e.tsBuildInfoFile)return e.tsBuildInfoFile;const n=e.outFile;let r;if(n)r=removeFileExtension(n);else{if(!t)return;const n=removeFileExtension(t);r=e.outDir?e.rootDir?resolvePath(e.outDir,getRelativePathFromDirectory(e.rootDir,n,!0)):combinePaths(e.outDir,getBaseFileName(n)):n}return r+".tsbuildinfo"}function getOutputPathsForBundle(e,t){const n=e.outFile,r=e.emitDeclarationOnly?void 0:n,i=r&&getSourceMapFilePath(r,e),o=t||Zn(e)?removeFileExtension(n)+".d.ts":void 0;return{jsFilePath:r,sourceMapFilePath:i,declarationFilePath:o,declarationMapPath:o&&nr(e)?o+".map":void 0}}function getOutputPathsFor(e,t,n){const r=t.getCompilerOptions();if(309===e.kind)return getOutputPathsForBundle(r,n);{const i=getOwnEmitOutputFilePath(e.fileName,t,getOutputExtension(e.fileName,r)),o=isJsonSourceFile(e),a=o&&0===comparePaths(e.fileName,i,t.getCurrentDirectory(),!t.useCaseSensitiveFileNames()),s=r.emitDeclarationOnly||a?void 0:i,c=!s||isJsonSourceFile(e)?void 0:getSourceMapFilePath(s,r),l=n||Zn(r)&&!o?getDeclarationEmitOutputFilePath(e.fileName,t):void 0;return{jsFilePath:s,sourceMapFilePath:c,declarationFilePath:l,declarationMapPath:l&&nr(r)?l+".map":void 0}}}function getSourceMapFilePath(e,t){return t.sourceMap&&!t.inlineSourceMap?e+".map":void 0}function getOutputExtension(e,t){return fileExtensionIs(e,".json")?".json":1===t.jsx&&fileExtensionIsOneOf(e,[".jsx",".tsx"])?".jsx":fileExtensionIsOneOf(e,[".mts",".mjs"])?".mjs":fileExtensionIsOneOf(e,[".cts",".cjs"])?".cjs":".js"}function getOutputPathWithoutChangingExt(e,t,n,r){return n?resolvePath(n,getRelativePathFromDirectory(r(),e,t)):e}function getOutputDeclarationFileName(e,t,n,r=()=>getCommonSourceDirectoryOfConfig(t,n)){return getOutputDeclarationFileNameWorker(e,t.options,n,r)}function getOutputDeclarationFileNameWorker(e,t,n,r){return changeExtension(getOutputPathWithoutChangingExt(e,n,t.declarationDir||t.outDir,r),getDeclarationEmitExtensionForPath(e))}function getOutputJSFileName(e,t,n,r=()=>getCommonSourceDirectoryOfConfig(t,n)){if(t.options.emitDeclarationOnly)return;const i=fileExtensionIs(e,".json"),o=getOutputJSFileNameWorker(e,t.options,n,r);return i&&0===comparePaths(e,o,h.checkDefined(t.options.configFilePath),n)?void 0:o}function getOutputJSFileNameWorker(e,t,n,r){return changeExtension(getOutputPathWithoutChangingExt(e,n,t.outDir,r),getOutputExtension(e,t))}function createAddOutput(){let e;return{addOutput:function addOutput(t){t&&(e||(e=[])).push(t)},getOutputs:function getOutputs(){return e||l}}}function getSingleOutputFileNames(e,t){const{jsFilePath:n,sourceMapFilePath:r,declarationFilePath:i,declarationMapPath:o}=getOutputPathsForBundle(e.options,!1);t(n),t(r),t(i),t(o)}function getOwnOutputFileNames(e,t,n,r,i){if(isDeclarationFileName(t))return;const o=getOutputJSFileName(t,e,n,i);if(r(o),!fileExtensionIs(t,".json")&&(o&&e.options.sourceMap&&r(`${o}.map`),Zn(e.options))){const o=getOutputDeclarationFileName(t,e,n,i);r(o),e.options.declarationMap&&r(`${o}.map`)}}function getCommonSourceDirectory(e,t,n,r,i){let o;return e.rootDir?(o=getNormalizedAbsolutePath(e.rootDir,n),null==i||i(e.rootDir)):e.composite&&e.configFilePath?(o=getDirectoryPath(normalizeSlashes(e.configFilePath)),null==i||i(o)):o=computeCommonSourceDirectoryOfFilenames(t(),n,r),o&&o[o.length-1]!==Ft&&(o+=Ft),o}function getCommonSourceDirectoryOfConfig({options:e,fileNames:t},n){return getCommonSourceDirectory(e,()=>filter(t,t=>!(e.noEmitForJsFiles&&fileExtensionIsOneOf(t,yr)||isDeclarationFileName(t))),getDirectoryPath(normalizeSlashes(h.checkDefined(e.configFilePath))),createGetCanonicalFileName(!n))}function getAllProjectOutputs(e,t){const{addOutput:n,getOutputs:r}=createAddOutput();if(e.options.outFile)getSingleOutputFileNames(e,n);else{const r=memoize(()=>getCommonSourceDirectoryOfConfig(e,t));for(const i of e.fileNames)getOwnOutputFileNames(e,i,t,n,r)}return n(getTsBuildInfoEmitOutputFilePath(e.options)),r()}function getOutputFileNames(e,t,n){t=normalizePath(t),h.assert(contains(e.fileNames,t),"Expected fileName to be present in command line");const{addOutput:r,getOutputs:i}=createAddOutput();return e.options.outFile?getSingleOutputFileNames(e,r):getOwnOutputFileNames(e,t,n,r),i()}function getFirstProjectOutput(e,t){if(e.options.outFile){const{jsFilePath:t,declarationFilePath:n}=getOutputPathsForBundle(e.options,!1);return h.checkDefined(t||n,`project ${e.options.configFilePath} expected to have at least one output`)}const n=memoize(()=>getCommonSourceDirectoryOfConfig(e,t));for(const r of e.fileNames){if(isDeclarationFileName(r))continue;const i=getOutputJSFileName(r,e,t,n);if(i)return i;if(!fileExtensionIs(r,".json")&&Zn(e.options))return getOutputDeclarationFileName(r,e,t,n)}const r=getTsBuildInfoEmitOutputFilePath(e.options);return r||h.fail(`project ${e.options.configFilePath} expected to have at least one output`)}function emitResolverSkipsTypeChecking(e,t){return!!t&&!!e}function emitFiles(e,t,n,{scriptTransformers:r,declarationTransformers:i},o,a,c,l){var d=t.getCompilerOptions(),p=d.sourceMap||d.inlineSourceMap||nr(d)?[]:void 0,u=d.listEmittedFiles?[]:void 0,m=createDiagnosticCollection(),_=getNewLineCharacter(d),f=createTextWriter(_),{enter:g,exit:y}=createTimer("printTime","beforePrint","afterPrint"),T=!1;return g(),forEachEmittedFile(t,function emitSourceFileOrBundle({jsFilePath:a,sourceMapFilePath:l,declarationFilePath:p,declarationMapPath:_,buildInfoPath:f},g){var y,S,x,v,b,C;null==(y=J)||y.push(J.Phase.Emit,"emitJsFileOrBundle",{jsFilePath:a}),function emitJsFileOrBundle(n,i,a){if(!n||o||!i)return;if(t.isEmitBlocked(i)||d.noEmit)return void(T=!0);(isSourceFile(n)?[n]:filter(n.sourceFiles,isSourceFileNotJson)).forEach(t=>{!d.noCheck&&canIncludeBindAndCheckDiagnostics(t,d)||function markLinkedReferences(t){if(isSourceFileJS(t))return;forEachChildRecursively(t,t=>!isImportEqualsDeclaration(t)||32&getSyntacticModifierFlags(t)?isImportDeclaration(t)?"skip":void e.markLinkedReferences(t):"skip")}(t)});const s=transformNodes(e,t,Wr,d,[n],r,!1),c=createPrinter({removeComments:d.removeComments,newLine:d.newLine,noEmitHelpers:d.noEmitHelpers,module:Vn(d),moduleResolution:qn(d),target:zn(d),sourceMap:d.sourceMap,inlineSourceMap:d.inlineSourceMap,inlineSources:d.inlineSources,extendedDiagnostics:d.extendedDiagnostics},{hasGlobalName:e.hasGlobalName,onEmitNode:s.emitNodeWithNotification,isEmitNotificationEnabled:s.isEmitNotificationEnabled,substituteNode:s.substituteNode});h.assert(1===s.transformed.length,"Should only see one output from the transform"),printSourceFileOrBundle(i,a,s,c,d),s.dispose(),u&&(u.push(i),a&&u.push(a))}(g,a,l),null==(S=J)||S.pop(),null==(x=J)||x.push(J.Phase.Emit,"emitDeclarationFileOrBundle",{declarationFilePath:p}),function emitDeclarationFileOrBundle(n,r,a){if(!n||0===o)return;if(!r)return void((o||d.emitDeclarationOnly)&&(T=!0));const s=isSourceFile(n)?[n]:n.sourceFiles,l=c?s:filter(s,isSourceFileNotJson),p=d.outFile?[Wr.createBundle(l)]:l;l.forEach(e=>{(o&&!Zn(d)||d.noCheck||emitResolverSkipsTypeChecking(o,c)||!canIncludeBindAndCheckDiagnostics(e,d))&&collectLinkedAliases(e)});const _=transformNodes(e,t,Wr,d,p,i,!1);if(length(_.diagnostics))for(const e of _.diagnostics)m.add(e);const f=!!_.diagnostics&&!!_.diagnostics.length||!!t.isEmitBlocked(r)||!!d.noEmit;if(T=T||f,!f||c){h.assert(1===_.transformed.length,"Should only see one output from the decl transform");const t={removeComments:d.removeComments,newLine:d.newLine,noEmitHelpers:!0,module:d.module,moduleResolution:d.moduleResolution,target:d.target,sourceMap:2!==o&&d.declarationMap,inlineSourceMap:d.inlineSourceMap,extendedDiagnostics:d.extendedDiagnostics,onlyPrintJsDocStyle:!0,omitBraceSourceMapPositions:!0},n=printSourceFileOrBundle(r,a,_,createPrinter(t,{hasGlobalName:e.hasGlobalName,onEmitNode:_.emitNodeWithNotification,isEmitNotificationEnabled:_.isEmitNotificationEnabled,substituteNode:_.substituteNode}),{sourceMap:t.sourceMap,sourceRoot:d.sourceRoot,mapRoot:d.mapRoot,extendedDiagnostics:d.extendedDiagnostics});u&&(n&&u.push(r),a&&u.push(a))}_.dispose()}(g,p,_),null==(v=J)||v.pop(),null==(b=J)||b.push(J.Phase.Emit,"emitBuildInfo",{buildInfoPath:f}),function emitBuildInfo(e){if(!e||n)return;if(t.isEmitBlocked(e))return void(T=!0);const r=t.getBuildInfo()||{version:s};writeFile(t,m,e,getBuildInfoText(r),!1,void 0,{buildInfo:r}),null==u||u.push(e)}(f),null==(C=J)||C.pop()},getSourceFilesToEmit(t,n,c),c,a,!n&&!l),y(),{emitSkipped:T,diagnostics:m.getDiagnostics(),emittedFiles:u,sourceMaps:p};function collectLinkedAliases(t){isExportAssignment(t)?80===t.expression.kind&&e.collectLinkedAliases(t.expression,!0):isExportSpecifier(t)?e.collectLinkedAliases(t.propertyName||t.name,!0):forEachChild(t,collectLinkedAliases)}function printSourceFileOrBundle(e,n,r,i,o){const a=r.transformed[0],s=309===a.kind?a:void 0,c=308===a.kind?a:void 0,l=s?s.sourceFiles:[c];let u,g;if(function shouldEmitSourceMaps(e,t){return(e.sourceMap||e.inlineSourceMap)&&(308!==t.kind||!fileExtensionIs(t.fileName,".json"))}(o,a)&&(u=createSourceMapGenerator(t,getBaseFileName(normalizeSlashes(e)),function getSourceRoot(e){const t=normalizeSlashes(e.sourceRoot||"");return t?ensureTrailingDirectorySeparator(t):t}(o),function getSourceMapDirectory(e,n,r){if(e.sourceRoot)return t.getCommonSourceDirectory();if(e.mapRoot){let n=normalizeSlashes(e.mapRoot);return r&&(n=getDirectoryPath(getSourceFilePathInNewDir(r.fileName,t,n))),0===getRootLength(n)&&(n=combinePaths(t.getCommonSourceDirectory(),n)),n}return getDirectoryPath(normalizePath(n))}(o,e,c),o)),s?i.writeBundle(s,f,u):i.writeFile(c,f,u),u){p&&p.push({inputSourceFileNames:u.getSources(),sourceMap:u.toJSON()});const r=function getSourceMappingURL(e,n,r,i,o){if(e.inlineSourceMap){const e=n.toString();return`data:application/json;base64,${base64encode(kt,e)}`}const a=getBaseFileName(normalizeSlashes(h.checkDefined(i)));if(e.mapRoot){let n=normalizeSlashes(e.mapRoot);return o&&(n=getDirectoryPath(getSourceFilePathInNewDir(o.fileName,t,n))),0===getRootLength(n)?(n=combinePaths(t.getCommonSourceDirectory(),n),encodeURI(getRelativePathToDirectoryOrUrl(getDirectoryPath(normalizePath(r)),combinePaths(n,a),t.getCurrentDirectory(),t.getCanonicalFileName,!0))):encodeURI(combinePaths(n,a))}return encodeURI(a)}(o,u,e,n,c);if(r&&(f.isAtStartOfLine()||f.rawWrite(_),g=f.getTextPos(),f.writeComment(`//# sourceMappingURL=${r}`)),n){const e=u.toString();writeFile(t,m,n,e,!1,l)}}else f.writeLine();const y=f.getText(),T={sourceMapUrlPos:g,diagnostics:r.diagnostics};return writeFile(t,m,e,y,!!d.emitBOM,l,T),f.clear(),!T.skippedDtsWrite}}function getBuildInfoText(e){return JSON.stringify(e)}function getBuildInfo(e,t){return readJsonOrUndefined(e,t)}var Ea={hasGlobalName:notImplemented,getReferencedExportContainer:notImplemented,getReferencedImportDeclaration:notImplemented,getReferencedDeclarationWithCollidingName:notImplemented,isDeclarationWithCollidingName:notImplemented,isValueAliasDeclaration:notImplemented,isReferencedAliasDeclaration:notImplemented,isTopLevelValueImportEqualsWithEntityName:notImplemented,hasNodeCheckFlag:notImplemented,isDeclarationVisible:notImplemented,isLateBound:e=>!1,collectLinkedAliases:notImplemented,markLinkedReferences:notImplemented,isImplementationOfOverload:notImplemented,requiresAddingImplicitUndefined:notImplemented,isExpandoFunctionDeclaration:notImplemented,getPropertiesOfContainerFunction:notImplemented,createTypeOfDeclaration:notImplemented,createReturnTypeOfSignatureDeclaration:notImplemented,createTypeOfExpression:notImplemented,createLiteralConstValue:notImplemented,isSymbolAccessible:notImplemented,isEntityNameVisible:notImplemented,getConstantValue:notImplemented,getEnumMemberValue:notImplemented,getReferencedValueDeclaration:notImplemented,getReferencedValueDeclarations:notImplemented,getTypeReferenceSerializationKind:notImplemented,isOptionalParameter:notImplemented,isArgumentsLocalBinding:notImplemented,getExternalModuleFileFromDeclaration:notImplemented,isLiteralConstDeclaration:notImplemented,getJsxFactoryEntity:notImplemented,getJsxFragmentFactoryEntity:notImplemented,isBindingCapturedByNode:notImplemented,getDeclarationStatementsForSourceFile:notImplemented,isImportRequiredByAugmentation:notImplemented,isDefinitelyReferenceToGlobalSymbolObject:notImplemented,createLateBoundIndexSignatures:notImplemented,symbolToDeclarations:notImplemented},Na=memoize(()=>createPrinter({})),ka=memoize(()=>createPrinter({removeComments:!0})),Fa=memoize(()=>createPrinter({removeComments:!0,neverAsciiEscape:!0})),Pa=memoize(()=>createPrinter({removeComments:!0,omitTrailingSemicolon:!0}));function createPrinter(e={},t={}){var n,r,i,o,a,s,c,l,d,p,u,m,_,f,g,y,T,S,x,v,b,C,E,N,k,F,{hasGlobalName:P,onEmitNode:D=noEmitNotification,isEmitNotificationEnabled:I,substituteNode:A=noEmitSubstitution,onBeforeEmitNode:O,onAfterEmitNode:w,onBeforeEmitNodeArray:L,onAfterEmitNodeArray:M,onBeforeEmitToken:R,onAfterEmitToken:B}=t,j=!!e.extendedDiagnostics,J=!!e.omitBraceSourceMapPositions,W=getNewLineCharacter(e),U=Vn(e),z=new Map,V=e.preserveSourceNewlines,q=function writeBase(e){T.write(e)},H=!0,K=-1,G=-1,$=-1,Q=-1,X=-1,Y=!1,Z=!!e.removeComments,{enter:ee,exit:te}=createTimerIf(j,"commentTime","beforeComment","afterComment"),re=Wr.parenthesizer,ie={select:e=>0===e?re.parenthesizeLeadingTypeArgument:void 0},oe=function createEmitBinaryExpression(){return createBinaryExpressionTrampoline(function onEnter(e,t){if(t){t.stackIndex++,t.preserveSourceNewlinesStack[t.stackIndex]=V,t.containerPosStack[t.stackIndex]=$,t.containerEndStack[t.stackIndex]=Q,t.declarationListContainerEndStack[t.stackIndex]=X;const n=t.shouldEmitCommentsStack[t.stackIndex]=shouldEmitComments(e),r=t.shouldEmitSourceMapsStack[t.stackIndex]=shouldEmitSourceMaps(e);null==O||O(e),n&&emitCommentsBeforeNode(e),r&&emitSourceMapsBeforeNode(e),beforeEmitNode(e)}else t={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return t},function onLeft(e,t,n){return maybeEmitExpression(e,n,"left")},function onOperator(e,t,n){const r=28!==e.kind,i=getLinesBetweenNodes(n,n.left,e),o=getLinesBetweenNodes(n,e,n.right);writeLinesAndIndent(i,r),emitLeadingCommentsOfPosition(e.pos),writeTokenNode(e,103===e.kind?writeKeyword:writeOperator),emitTrailingCommentsOfPosition(e.end,!0),writeLinesAndIndent(o,!0)},function onRight(e,t,n){return maybeEmitExpression(e,n,"right")},function onExit(e,t){const n=getLinesBetweenNodes(e,e.left,e.operatorToken),r=getLinesBetweenNodes(e,e.operatorToken,e.right);if(decreaseIndentIf(n,r),t.stackIndex>0){const n=t.preserveSourceNewlinesStack[t.stackIndex],r=t.containerPosStack[t.stackIndex],i=t.containerEndStack[t.stackIndex],o=t.declarationListContainerEndStack[t.stackIndex],a=t.shouldEmitCommentsStack[t.stackIndex],s=t.shouldEmitSourceMapsStack[t.stackIndex];afterEmitNode(n),s&&emitSourceMapsAfterNode(e),a&&emitCommentsAfterNode(e,r,i,o),null==w||w(e),t.stackIndex--}},void 0);function maybeEmitExpression(e,t,n){const r="left"===n?re.getParenthesizeLeftSideOfBinaryForOperator(t.operatorToken.kind):re.getParenthesizeRightSideOfBinaryForOperator(t.operatorToken.kind);let i=getPipelinePhase(0,1,e);if(i===pipelineEmitWithSubstitution&&(h.assertIsDefined(k),i=getNextPipelinePhase(1,1,e=r(cast(k,isExpression))),k=void 0),(i===pipelineEmitWithComments||i===pipelineEmitWithSourceMaps||i===pipelineEmitWithHint)&&isBinaryExpression(e))return e;F=r,i(1,e)}}();return reset2(),{printNode:function printNode(e,t,n){switch(e){case 0:h.assert(isSourceFile(t),"Expected a SourceFile node.");break;case 2:h.assert(isIdentifier(t),"Expected an Identifier node.");break;case 1:h.assert(isExpression(t),"Expected an Expression node.")}switch(t.kind){case 308:return printFile(t);case 309:return printBundle(t)}return writeNode(e,t,n,beginPrint()),endPrint()},printList:function printList(e,t,n){return writeList(e,t,n,beginPrint()),endPrint()},printFile,printBundle,writeNode,writeList,writeFile:writeFile2,writeBundle};function printBundle(e){return writeBundle(e,beginPrint(),void 0),endPrint()}function printFile(e){return writeFile2(e,beginPrint(),void 0),endPrint()}function writeNode(e,t,n,r){const i=T;setWriter(r,void 0),print(e,t,n),reset2(),T=i}function writeList(e,t,n,r){const i=T;setWriter(r,void 0),n&&setSourceFile(n),emitList(void 0,t,e),reset2(),T=i}function writeBundle(e,t,n){x=!1;const r=T;setWriter(t,n),emitShebangIfNeeded(e),emitPrologueDirectivesIfNeeded(e),emitHelpers(e),function emitSyntheticTripleSlashReferencesIfNeeded(e){emitTripleSlashDirectives(!!e.hasNoDefaultLib,e.syntheticFileReferences||[],e.syntheticTypeReferences||[],e.syntheticLibReferences||[])}(e);for(const t of e.sourceFiles)print(0,t,t);reset2(),T=r}function writeFile2(e,t,n){x=!0;const r=T;setWriter(t,n),emitShebangIfNeeded(e),emitPrologueDirectivesIfNeeded(e),print(0,e,e),reset2(),T=r}function beginPrint(){return S||(S=createTextWriter(W))}function endPrint(){const e=S.getText();return S.clear(),e}function print(e,t,n){n&&setSourceFile(n),pipelineEmit(e,t,void 0)}function setSourceFile(e){n=e,E=void 0,N=void 0,e&&setSourceMapSource(e)}function setWriter(t,n){t&&e.omitTrailingSemicolon&&(t=getTrailingSemicolonDeferringWriter(t)),v=n,H=!(T=t)||!v}function reset2(){r=[],i=[],o=[],a=new Set,s=[],c=new Map,l=[],d=0,p=[],u=0,m=[],_=void 0,f=[],g=void 0,n=void 0,E=void 0,N=void 0,setWriter(void 0,void 0)}function getCurrentLineMap(){return E||(E=getLineStarts(h.checkDefined(n)))}function emit(e,t){void 0!==e&&pipelineEmit(4,e,t)}function emitIdentifierName(e){void 0!==e&&pipelineEmit(2,e,void 0)}function emitExpression(e,t){void 0!==e&&pipelineEmit(1,e,t)}function emitJsxAttributeValue(e){pipelineEmit(isStringLiteral(e)?6:4,e)}function beforeEmitNode(e){V&&4&getInternalEmitFlags(e)&&(V=!1)}function afterEmitNode(e){V=e}function pipelineEmit(e,t,n){F=n;getPipelinePhase(0,e,t)(e,t),F=void 0}function shouldEmitComments(e){return!Z&&!isSourceFile(e)}function shouldEmitSourceMaps(e){return!H&&!isSourceFile(e)&&!isInJsonFile(e)}function getPipelinePhase(e,t,n){switch(e){case 0:if(D!==noEmitNotification&&(!I||I(n)))return pipelineEmitWithNotification;case 1:if(A!==noEmitSubstitution&&(k=A(t,n)||n)!==n)return F&&(k=F(k)),pipelineEmitWithSubstitution;case 2:if(shouldEmitComments(n))return pipelineEmitWithComments;case 3:if(shouldEmitSourceMaps(n))return pipelineEmitWithSourceMaps;case 4:return pipelineEmitWithHint;default:return h.assertNever(e)}}function getNextPipelinePhase(e,t,n){return getPipelinePhase(e+1,t,n)}function pipelineEmitWithNotification(e,t){const n=getNextPipelinePhase(0,e,t);D(e,t,n)}function pipelineEmitWithHint(e,t){if(null==O||O(t),V){const n=V;beforeEmitNode(t),pipelineEmitWithHintWorker(e,t),afterEmitNode(n)}else pipelineEmitWithHintWorker(e,t);null==w||w(t),F=void 0}function pipelineEmitWithHintWorker(e,t,r=!0){if(r){const n=getSnippetElement(t);if(n)return function emitSnippetNode(e,t,n){switch(n.kind){case 1:!function emitPlaceholder(e,t,n){nonEscapingWrite(`\${${n.order}:`),pipelineEmitWithHintWorker(e,t,!1),nonEscapingWrite("}")}(e,t,n);break;case 0:!function emitTabStop(e,t,n){h.assert(243===t.kind,`A tab stop cannot be attached to a node of kind ${h.formatSyntaxKind(t.kind)}.`),h.assert(5!==e,"A tab stop cannot be attached to an embedded statement."),nonEscapingWrite(`$${n.order}`)}(e,t,n)}}(e,t,n)}if(0===e)return emitSourceFile(cast(t,isSourceFile));if(2===e)return emitIdentifier(cast(t,isIdentifier));if(6===e)return emitLiteral(cast(t,isStringLiteral),!0);if(3===e)return function emitMappedTypeParameter(e){emit(e.name),writeSpace(),writeKeyword("in"),writeSpace(),emit(e.constraint)}(cast(t,isTypeParameterDeclaration));if(7===e)return function emitImportTypeNodeAttributes(e){writePunctuation("{"),writeSpace(),writeKeyword(132===e.token?"assert":"with"),writePunctuation(":"),writeSpace();const t=e.elements;emitList(e,t,526226),writeSpace(),writePunctuation("}")}(cast(t,isImportAttributes));if(5===e)return h.assertNode(t,isEmptyStatement),emitEmptyStatement(!0);if(4===e){switch(t.kind){case 16:case 17:case 18:return emitLiteral(t,!1);case 80:return emitIdentifier(t);case 81:return emitPrivateIdentifier(t);case 167:return function emitQualifiedName(e){(function emitEntityName(e){80===e.kind?emitExpression(e):emit(e)})(e.left),writePunctuation("."),emit(e.right)}(t);case 168:return function emitComputedPropertyName(e){writePunctuation("["),emitExpression(e.expression,re.parenthesizeExpressionOfComputedPropertyName),writePunctuation("]")}(t);case 169:return function emitTypeParameter(e){emitModifierList(e,e.modifiers),emit(e.name),e.constraint&&(writeSpace(),writeKeyword("extends"),writeSpace(),emit(e.constraint));e.default&&(writeSpace(),writeOperator("="),writeSpace(),emit(e.default))}(t);case 170:return function emitParameter(e){emitDecoratorsAndModifiers(e,e.modifiers,!0),emit(e.dotDotDotToken),emitNodeWithWriter(e.name,writeParameter),emit(e.questionToken),e.parent&&318===e.parent.kind&&!e.name?emit(e.type):emitTypeAnnotation(e.type);emitInitializer(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name?e.name.end:e.modifiers?e.modifiers.end:e.pos,e,re.parenthesizeExpressionForDisallowedComma)}(t);case 171:return function emitDecorator(e){writePunctuation("@"),emitExpression(e.expression,re.parenthesizeLeftSideOfAccess)}(t);case 172:return function emitPropertySignature(e){emitModifierList(e,e.modifiers),emitNodeWithWriter(e.name,writeProperty),emit(e.questionToken),emitTypeAnnotation(e.type),writeTrailingSemicolon()}(t);case 173:return function emitPropertyDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!0),emit(e.name),emit(e.questionToken),emit(e.exclamationToken),emitTypeAnnotation(e.type),emitInitializer(e.initializer,e.type?e.type.end:e.questionToken?e.questionToken.end:e.name.end,e),writeTrailingSemicolon()}(t);case 174:return function emitMethodSignature(e){emitModifierList(e,e.modifiers),emit(e.name),emit(e.questionToken),emitSignatureAndBody(e,emitSignatureHead,emitEmptyFunctionBody)}(t);case 175:return function emitMethodDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!0),emit(e.asteriskToken),emit(e.name),emit(e.questionToken),emitSignatureAndBody(e,emitSignatureHead,emitFunctionBody)}(t);case 176:return function emitClassStaticBlockDeclaration(e){writeKeyword("static"),pushNameGenerationScope(e),emitBlockFunctionBody(e.body),popNameGenerationScope(e)}(t);case 177:return function emitConstructor(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),writeKeyword("constructor"),emitSignatureAndBody(e,emitSignatureHead,emitFunctionBody)}(t);case 178:case 179:return function emitAccessorDeclaration(e){const t=emitDecoratorsAndModifiers(e,e.modifiers,!0),n=178===e.kind?139:153;emitTokenWithComment(n,t,writeKeyword,e),writeSpace(),emit(e.name),emitSignatureAndBody(e,emitSignatureHead,emitFunctionBody)}(t);case 180:return function emitCallSignature(e){emitSignatureAndBody(e,emitSignatureHead,emitEmptyFunctionBody)}(t);case 181:return function emitConstructSignature(e){writeKeyword("new"),writeSpace(),emitSignatureAndBody(e,emitSignatureHead,emitEmptyFunctionBody)}(t);case 182:return function emitIndexSignature(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),function emitParametersForIndexSignature(e,t){emitList(e,t,8848)}(e,e.parameters),emitTypeAnnotation(e.type),writeTrailingSemicolon()}(t);case 183:return function emitTypePredicate(e){e.assertsModifier&&(emit(e.assertsModifier),writeSpace());emit(e.parameterName),e.type&&(writeSpace(),writeKeyword("is"),writeSpace(),emit(e.type))}(t);case 184:return function emitTypeReference(e){emit(e.typeName),emitTypeArguments(e,e.typeArguments)}(t);case 185:return function emitFunctionType(e){emitSignatureAndBody(e,emitFunctionTypeHead,emitFunctionTypeBody)}(t);case 186:return function emitConstructorType(e){emitModifierList(e,e.modifiers),writeKeyword("new"),writeSpace(),emitSignatureAndBody(e,emitFunctionTypeHead,emitFunctionTypeBody)}(t);case 187:return function emitTypeQuery(e){writeKeyword("typeof"),writeSpace(),emit(e.exprName),emitTypeArguments(e,e.typeArguments)}(t);case 188:return function emitTypeLiteral(e){pushNameGenerationScope(e),forEach(e.members,generateMemberNames),writePunctuation("{");const t=1&getEmitFlags(e)?768:32897;emitList(e,e.members,524288|t),writePunctuation("}"),popNameGenerationScope(e)}(t);case 189:return function emitArrayType(e){emit(e.elementType,re.parenthesizeNonArrayTypeOfPostfixType),writePunctuation("["),writePunctuation("]")}(t);case 190:return function emitTupleType(e){emitTokenWithComment(23,e.pos,writePunctuation,e);const t=1&getEmitFlags(e)?528:657;emitList(e,e.elements,524288|t,re.parenthesizeElementTypeOfTupleType),emitTokenWithComment(24,e.elements.end,writePunctuation,e)}(t);case 191:return function emitOptionalType(e){emit(e.type,re.parenthesizeTypeOfOptionalType),writePunctuation("?")}(t);case 193:return function emitUnionType(e){emitList(e,e.types,516,re.parenthesizeConstituentTypeOfUnionType)}(t);case 194:return function emitIntersectionType(e){emitList(e,e.types,520,re.parenthesizeConstituentTypeOfIntersectionType)}(t);case 195:return function emitConditionalType(e){emit(e.checkType,re.parenthesizeCheckTypeOfConditionalType),writeSpace(),writeKeyword("extends"),writeSpace(),emit(e.extendsType,re.parenthesizeExtendsTypeOfConditionalType),writeSpace(),writePunctuation("?"),writeSpace(),emit(e.trueType),writeSpace(),writePunctuation(":"),writeSpace(),emit(e.falseType)}(t);case 196:return function emitInferType(e){writeKeyword("infer"),writeSpace(),emit(e.typeParameter)}(t);case 197:return function emitParenthesizedType(e){writePunctuation("("),emit(e.type),writePunctuation(")")}(t);case 234:return emitExpressionWithTypeArguments(t);case 198:return function emitThisType(){writeKeyword("this")}();case 199:return function emitTypeOperator(e){writeTokenText(e.operator,writeKeyword),writeSpace();const t=148===e.operator?re.parenthesizeOperandOfReadonlyTypeOperator:re.parenthesizeOperandOfTypeOperator;emit(e.type,t)}(t);case 200:return function emitIndexedAccessType(e){emit(e.objectType,re.parenthesizeNonArrayTypeOfPostfixType),writePunctuation("["),emit(e.indexType),writePunctuation("]")}(t);case 201:return function emitMappedType(e){const t=getEmitFlags(e);writePunctuation("{"),1&t?writeSpace():(writeLine(),increaseIndent());e.readonlyToken&&(emit(e.readonlyToken),148!==e.readonlyToken.kind&&writeKeyword("readonly"),writeSpace());writePunctuation("["),pipelineEmit(3,e.typeParameter),e.nameType&&(writeSpace(),writeKeyword("as"),writeSpace(),emit(e.nameType));writePunctuation("]"),e.questionToken&&(emit(e.questionToken),58!==e.questionToken.kind&&writePunctuation("?"));writePunctuation(":"),writeSpace(),emit(e.type),writeTrailingSemicolon(),1&t?writeSpace():(writeLine(),decreaseIndent());emitList(e,e.members,2),writePunctuation("}")}(t);case 202:return function emitLiteralType(e){emitExpression(e.literal)}(t);case 203:return function emitNamedTupleMember(e){emit(e.dotDotDotToken),emit(e.name),emit(e.questionToken),emitTokenWithComment(59,e.name.end,writePunctuation,e),writeSpace(),emit(e.type)}(t);case 204:return function emitTemplateType(e){emit(e.head),emitList(e,e.templateSpans,262144)}(t);case 205:return function emitTemplateTypeSpan(e){emit(e.type),emit(e.literal)}(t);case 206:return function emitImportTypeNode(e){e.isTypeOf&&(writeKeyword("typeof"),writeSpace());writeKeyword("import"),writePunctuation("("),emit(e.argument),e.attributes&&(writePunctuation(","),writeSpace(),pipelineEmit(7,e.attributes));writePunctuation(")"),e.qualifier&&(writePunctuation("."),emit(e.qualifier));emitTypeArguments(e,e.typeArguments)}(t);case 207:return function emitObjectBindingPattern(e){writePunctuation("{"),emitList(e,e.elements,525136),writePunctuation("}")}(t);case 208:return function emitArrayBindingPattern(e){writePunctuation("["),emitList(e,e.elements,524880),writePunctuation("]")}(t);case 209:return function emitBindingElement(e){emit(e.dotDotDotToken),e.propertyName&&(emit(e.propertyName),writePunctuation(":"),writeSpace());emit(e.name),emitInitializer(e.initializer,e.name.end,e,re.parenthesizeExpressionForDisallowedComma)}(t);case 240:return function emitTemplateSpan(e){emitExpression(e.expression),emit(e.literal)}(t);case 241:return function emitSemicolonClassElement(){writeTrailingSemicolon()}();case 242:return function emitBlock(e){emitBlockStatements(e,!e.multiLine&&isEmptyBlock(e))}(t);case 244:return function emitVariableStatement(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),emit(e.declarationList),writeTrailingSemicolon()}(t);case 243:return emitEmptyStatement(!1);case 245:return function emitExpressionStatement(e){emitExpression(e.expression,re.parenthesizeExpressionOfExpressionStatement),n&&isJsonSourceFile(n)&&!nodeIsSynthesized(e.expression)||writeTrailingSemicolon()}(t);case 246:return function emitIfStatement(e){const t=emitTokenWithComment(101,e.pos,writeKeyword,e);writeSpace(),emitTokenWithComment(21,t,writePunctuation,e),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e),emitEmbeddedStatement(e,e.thenStatement),e.elseStatement&&(writeLineOrSpace(e,e.thenStatement,e.elseStatement),emitTokenWithComment(93,e.thenStatement.end,writeKeyword,e),246===e.elseStatement.kind?(writeSpace(),emit(e.elseStatement)):emitEmbeddedStatement(e,e.elseStatement))}(t);case 247:return function emitDoStatement(e){emitTokenWithComment(92,e.pos,writeKeyword,e),emitEmbeddedStatement(e,e.statement),isBlock(e.statement)&&!V?writeSpace():writeLineOrSpace(e,e.statement,e.expression);emitWhileClause(e,e.statement.end),writeTrailingSemicolon()}(t);case 248:return function emitWhileStatement(e){emitWhileClause(e,e.pos),emitEmbeddedStatement(e,e.statement)}(t);case 249:return function emitForStatement(e){const t=emitTokenWithComment(99,e.pos,writeKeyword,e);writeSpace();let n=emitTokenWithComment(21,t,writePunctuation,e);emitForBinding(e.initializer),n=emitTokenWithComment(27,e.initializer?e.initializer.end:n,writePunctuation,e),emitExpressionWithLeadingSpace(e.condition),n=emitTokenWithComment(27,e.condition?e.condition.end:n,writePunctuation,e),emitExpressionWithLeadingSpace(e.incrementor),emitTokenWithComment(22,e.incrementor?e.incrementor.end:n,writePunctuation,e),emitEmbeddedStatement(e,e.statement)}(t);case 250:return function emitForInStatement(e){const t=emitTokenWithComment(99,e.pos,writeKeyword,e);writeSpace(),emitTokenWithComment(21,t,writePunctuation,e),emitForBinding(e.initializer),writeSpace(),emitTokenWithComment(103,e.initializer.end,writeKeyword,e),writeSpace(),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e),emitEmbeddedStatement(e,e.statement)}(t);case 251:return function emitForOfStatement(e){const t=emitTokenWithComment(99,e.pos,writeKeyword,e);writeSpace(),function emitWithTrailingSpace(e){e&&(emit(e),writeSpace())}(e.awaitModifier),emitTokenWithComment(21,t,writePunctuation,e),emitForBinding(e.initializer),writeSpace(),emitTokenWithComment(165,e.initializer.end,writeKeyword,e),writeSpace(),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e),emitEmbeddedStatement(e,e.statement)}(t);case 252:return function emitContinueStatement(e){emitTokenWithComment(88,e.pos,writeKeyword,e),emitWithLeadingSpace(e.label),writeTrailingSemicolon()}(t);case 253:return function emitBreakStatement(e){emitTokenWithComment(83,e.pos,writeKeyword,e),emitWithLeadingSpace(e.label),writeTrailingSemicolon()}(t);case 254:return function emitReturnStatement(e){emitTokenWithComment(107,e.pos,writeKeyword,e),emitExpressionWithLeadingSpace(e.expression&&parenthesizeExpressionForNoAsi(e.expression),parenthesizeExpressionForNoAsi),writeTrailingSemicolon()}(t);case 255:return function emitWithStatement(e){const t=emitTokenWithComment(118,e.pos,writeKeyword,e);writeSpace(),emitTokenWithComment(21,t,writePunctuation,e),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e),emitEmbeddedStatement(e,e.statement)}(t);case 256:return function emitSwitchStatement(e){const t=emitTokenWithComment(109,e.pos,writeKeyword,e);writeSpace(),emitTokenWithComment(21,t,writePunctuation,e),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e),writeSpace(),emit(e.caseBlock)}(t);case 257:return function emitLabeledStatement(e){emit(e.label),emitTokenWithComment(59,e.label.end,writePunctuation,e),writeSpace(),emit(e.statement)}(t);case 258:return function emitThrowStatement(e){emitTokenWithComment(111,e.pos,writeKeyword,e),emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(e.expression),parenthesizeExpressionForNoAsi),writeTrailingSemicolon()}(t);case 259:return function emitTryStatement(e){emitTokenWithComment(113,e.pos,writeKeyword,e),writeSpace(),emit(e.tryBlock),e.catchClause&&(writeLineOrSpace(e,e.tryBlock,e.catchClause),emit(e.catchClause));e.finallyBlock&&(writeLineOrSpace(e,e.catchClause||e.tryBlock,e.finallyBlock),emitTokenWithComment(98,(e.catchClause||e.tryBlock).end,writeKeyword,e),writeSpace(),emit(e.finallyBlock))}(t);case 260:return function emitDebuggerStatement(e){writeToken(89,e.pos,writeKeyword),writeTrailingSemicolon()}(t);case 261:return function emitVariableDeclaration(e){var t,n,r;emit(e.name),emit(e.exclamationToken),emitTypeAnnotation(e.type),emitInitializer(e.initializer,(null==(t=e.type)?void 0:t.end)??(null==(r=null==(n=e.name.emitNode)?void 0:n.typeNode)?void 0:r.end)??e.name.end,e,re.parenthesizeExpressionForDisallowedComma)}(t);case 262:return function emitVariableDeclarationList(e){if(isVarAwaitUsing(e))writeKeyword("await"),writeSpace(),writeKeyword("using");else{writeKeyword(isLet(e)?"let":isVarConst(e)?"const":isVarUsing(e)?"using":"var")}writeSpace(),emitList(e,e.declarations,528)}(t);case 263:return function emitFunctionDeclaration(e){emitFunctionDeclarationOrExpression(e)}(t);case 264:return function emitClassDeclaration(e){emitClassDeclarationOrExpression(e)}(t);case 265:return function emitInterfaceDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),writeKeyword("interface"),writeSpace(),emit(e.name),emitTypeParameters(e,e.typeParameters),emitList(e,e.heritageClauses,512),writeSpace(),writePunctuation("{"),pushNameGenerationScope(e),forEach(e.members,generateMemberNames),emitList(e,e.members,129),popNameGenerationScope(e),writePunctuation("}")}(t);case 266:return function emitTypeAliasDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),writeKeyword("type"),writeSpace(),emit(e.name),emitTypeParameters(e,e.typeParameters),writeSpace(),writePunctuation("="),writeSpace(),emit(e.type),writeTrailingSemicolon()}(t);case 267:return function emitEnumDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),writeKeyword("enum"),writeSpace(),emit(e.name),writeSpace(),writePunctuation("{"),emitList(e,e.members,145),writePunctuation("}")}(t);case 268:return function emitModuleDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),2048&~e.flags&&(writeKeyword(32&e.flags?"namespace":"module"),writeSpace());emit(e.name);let t=e.body;if(!t)return writeTrailingSemicolon();for(;t&&isModuleDeclaration(t);)writePunctuation("."),emit(t.name),t=t.body;writeSpace(),emit(t)}(t);case 269:return function emitModuleBlock(e){pushNameGenerationScope(e),forEach(e.statements,generateNames),emitBlockStatements(e,isEmptyBlock(e)),popNameGenerationScope(e)}(t);case 270:return function emitCaseBlock(e){emitTokenWithComment(19,e.pos,writePunctuation,e),emitList(e,e.clauses,129),emitTokenWithComment(20,e.clauses.end,writePunctuation,e,!0)}(t);case 271:return function emitNamespaceExportDeclaration(e){let t=emitTokenWithComment(95,e.pos,writeKeyword,e);writeSpace(),t=emitTokenWithComment(130,t,writeKeyword,e),writeSpace(),t=emitTokenWithComment(145,t,writeKeyword,e),writeSpace(),emit(e.name),writeTrailingSemicolon()}(t);case 272:return function emitImportEqualsDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),emitTokenWithComment(102,e.modifiers?e.modifiers.end:e.pos,writeKeyword,e),writeSpace(),e.isTypeOnly&&(emitTokenWithComment(156,e.pos,writeKeyword,e),writeSpace());emit(e.name),writeSpace(),emitTokenWithComment(64,e.name.end,writePunctuation,e),writeSpace(),function emitModuleReference(e){80===e.kind?emitExpression(e):emit(e)}(e.moduleReference),writeTrailingSemicolon()}(t);case 273:return function emitImportDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),emitTokenWithComment(102,e.modifiers?e.modifiers.end:e.pos,writeKeyword,e),writeSpace(),e.importClause&&(emit(e.importClause),writeSpace(),emitTokenWithComment(161,e.importClause.end,writeKeyword,e),writeSpace());emitExpression(e.moduleSpecifier),e.attributes&&emitWithLeadingSpace(e.attributes);writeTrailingSemicolon()}(t);case 274:return function emitImportClause(e){void 0!==e.phaseModifier&&(emitTokenWithComment(e.phaseModifier,e.pos,writeKeyword,e),writeSpace());emit(e.name),e.name&&e.namedBindings&&(emitTokenWithComment(28,e.name.end,writePunctuation,e),writeSpace());emit(e.namedBindings)}(t);case 275:return function emitNamespaceImport(e){const t=emitTokenWithComment(42,e.pos,writePunctuation,e);writeSpace(),emitTokenWithComment(130,t,writeKeyword,e),writeSpace(),emit(e.name)}(t);case 281:return function emitNamespaceExport(e){const t=emitTokenWithComment(42,e.pos,writePunctuation,e);writeSpace(),emitTokenWithComment(130,t,writeKeyword,e),writeSpace(),emit(e.name)}(t);case 276:return function emitNamedImports(e){emitNamedImportsOrExports(e)}(t);case 277:return function emitImportSpecifier(e){emitImportOrExportSpecifier(e)}(t);case 278:return function emitExportAssignment(e){const t=emitTokenWithComment(95,e.pos,writeKeyword,e);writeSpace(),e.isExportEquals?emitTokenWithComment(64,t,writeOperator,e):emitTokenWithComment(90,t,writeKeyword,e);writeSpace(),emitExpression(e.expression,e.isExportEquals?re.getParenthesizeRightSideOfBinaryForOperator(64):re.parenthesizeExpressionOfExportDefault),writeTrailingSemicolon()}(t);case 279:return function emitExportDeclaration(e){emitDecoratorsAndModifiers(e,e.modifiers,!1);let t=emitTokenWithComment(95,e.pos,writeKeyword,e);writeSpace(),e.isTypeOnly&&(t=emitTokenWithComment(156,t,writeKeyword,e),writeSpace());e.exportClause?emit(e.exportClause):t=emitTokenWithComment(42,t,writePunctuation,e);if(e.moduleSpecifier){writeSpace();emitTokenWithComment(161,e.exportClause?e.exportClause.end:t,writeKeyword,e),writeSpace(),emitExpression(e.moduleSpecifier)}e.attributes&&emitWithLeadingSpace(e.attributes);writeTrailingSemicolon()}(t);case 280:return function emitNamedExports(e){emitNamedImportsOrExports(e)}(t);case 282:return function emitExportSpecifier(e){emitImportOrExportSpecifier(e)}(t);case 301:return function emitImportAttributes(e){emitTokenWithComment(e.token,e.pos,writeKeyword,e),writeSpace();const t=e.elements;emitList(e,t,526226)}(t);case 302:return function emitImportAttribute(e){emit(e.name),writePunctuation(":"),writeSpace();const t=e.value;if(!(1024&getEmitFlags(t))){emitTrailingCommentsOfPosition(getCommentRange(t).pos)}emit(t)}(t);case 283:case 320:case 331:case 332:case 334:case 335:case 336:case 337:case 354:case 355:return;case 284:return function emitExternalModuleReference(e){writeKeyword("require"),writePunctuation("("),emitExpression(e.expression),writePunctuation(")")}(t);case 12:return function emitJsxText(e){T.writeLiteral(e.text)}(t);case 287:case 290:return function emitJsxOpeningElementOrFragment(e){if(writePunctuation("<"),isJsxOpeningElement(e)){const t=writeLineSeparatorsAndIndentBefore(e.tagName,e);emitJsxTagName(e.tagName),emitTypeArguments(e,e.typeArguments),e.attributes.properties&&e.attributes.properties.length>0&&writeSpace(),emit(e.attributes),writeLineSeparatorsAfter(e.attributes,e),decreaseIndentIf(t)}writePunctuation(">")}(t);case 288:case 291:return function emitJsxClosingElementOrFragment(e){writePunctuation("")}(t);case 292:return function emitJsxAttribute(e){emit(e.name),function emitNodeWithPrefix(e,t,n,r){n&&(t(e),r(n))}("=",writePunctuation,e.initializer,emitJsxAttributeValue)}(t);case 293:return function emitJsxAttributes(e){emitList(e,e.properties,262656)}(t);case 294:return function emitJsxSpreadAttribute(e){writePunctuation("{..."),emitExpression(e.expression),writePunctuation("}")}(t);case 295:return function emitJsxExpression(e){var t;if(e.expression||!Z&&!nodeIsSynthesized(e)&&function hasCommentsAtPosition(e){return function hasTrailingCommentsAtPosition(e){let t=!1;return forEachTrailingCommentRange((null==n?void 0:n.text)||"",e+1,()=>t=!0),t}(e)||function hasLeadingCommentsAtPosition(e){let t=!1;return forEachLeadingCommentRange((null==n?void 0:n.text)||"",e+1,()=>t=!0),t}(e)}(e.pos)){const r=n&&!nodeIsSynthesized(e)&&getLineAndCharacterOfPosition(n,e.pos).line!==getLineAndCharacterOfPosition(n,e.end).line;r&&T.increaseIndent();const i=emitTokenWithComment(19,e.pos,writePunctuation,e);emit(e.dotDotDotToken),emitExpression(e.expression),emitTokenWithComment(20,(null==(t=e.expression)?void 0:t.end)||i,writePunctuation,e),r&&T.decreaseIndent()}}(t);case 296:return function emitJsxNamespacedName(e){emitIdentifierName(e.namespace),writePunctuation(":"),emitIdentifierName(e.name)}(t);case 297:return function emitCaseClause(e){emitTokenWithComment(84,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeExpressionForDisallowedComma),emitCaseOrDefaultClauseRest(e,e.statements,e.expression.end)}(t);case 298:return function emitDefaultClause(e){const t=emitTokenWithComment(90,e.pos,writeKeyword,e);emitCaseOrDefaultClauseRest(e,e.statements,t)}(t);case 299:return function emitHeritageClause(e){writeSpace(),writeTokenText(e.token,writeKeyword),writeSpace(),emitList(e,e.types,528)}(t);case 300:return function emitCatchClause(e){const t=emitTokenWithComment(85,e.pos,writeKeyword,e);writeSpace(),e.variableDeclaration&&(emitTokenWithComment(21,t,writePunctuation,e),emit(e.variableDeclaration),emitTokenWithComment(22,e.variableDeclaration.end,writePunctuation,e),writeSpace());emit(e.block)}(t);case 304:return function emitPropertyAssignment(e){emit(e.name),writePunctuation(":"),writeSpace();const t=e.initializer;if(!(1024&getEmitFlags(t))){emitTrailingCommentsOfPosition(getCommentRange(t).pos)}emitExpression(t,re.parenthesizeExpressionForDisallowedComma)}(t);case 305:return function emitShorthandPropertyAssignment(e){emit(e.name),e.objectAssignmentInitializer&&(writeSpace(),writePunctuation("="),writeSpace(),emitExpression(e.objectAssignmentInitializer,re.parenthesizeExpressionForDisallowedComma))}(t);case 306:return function emitSpreadAssignment(e){e.expression&&(emitTokenWithComment(26,e.pos,writePunctuation,e),emitExpression(e.expression,re.parenthesizeExpressionForDisallowedComma))}(t);case 307:return function emitEnumMember(e){emit(e.name),emitInitializer(e.initializer,e.name.end,e,re.parenthesizeExpressionForDisallowedComma)}(t);case 308:return emitSourceFile(t);case 309:return h.fail("Bundles should be printed using printBundle");case 310:return emitJSDocTypeExpression(t);case 311:return function emitJSDocNameReference(e){writeSpace(),writePunctuation("{"),emit(e.name),writePunctuation("}")}(t);case 313:return writePunctuation("*");case 314:return writePunctuation("?");case 315:return function emitJSDocNullableType(e){writePunctuation("?"),emit(e.type)}(t);case 316:return function emitJSDocNonNullableType(e){writePunctuation("!"),emit(e.type)}(t);case 317:return function emitJSDocOptionalType(e){emit(e.type),writePunctuation("=")}(t);case 318:return function emitJSDocFunctionType(e){writeKeyword("function"),emitParameters(e,e.parameters),writePunctuation(":"),emit(e.type)}(t);case 192:case 319:return function emitRestOrJSDocVariadicType(e){writePunctuation("..."),emit(e.type)}(t);case 321:return function emitJSDoc(e){if(q("/**"),e.comment){const t=getTextOfJSDocComment(e.comment);if(t){const e=t.split(/\r\n?|\n/);for(const t of e)writeLine(),writeSpace(),writePunctuation("*"),writeSpace(),q(t)}}e.tags&&(1!==e.tags.length||345!==e.tags[0].kind||e.comment?emitList(e,e.tags,33):(writeSpace(),emit(e.tags[0])));writeSpace(),q("*/")}(t);case 323:return emitJSDocTypeLiteral(t);case 324:return emitJSDocSignature(t);case 328:case 333:case 338:return function emitJSDocSimpleTag(e){emitJSDocTagName(e.tagName),emitJSDocComment(e.comment)}(t);case 329:case 330:return function emitJSDocHeritageTag(e){emitJSDocTagName(e.tagName),writeSpace(),writePunctuation("{"),emit(e.class),writePunctuation("}"),emitJSDocComment(e.comment)}(t);case 339:return function emitJSDocCallbackTag(e){emitJSDocTagName(e.tagName),e.name&&(writeSpace(),emit(e.name));emitJSDocComment(e.comment),emitJSDocSignature(e.typeExpression)}(t);case 340:return function emitJSDocOverloadTag(e){emitJSDocComment(e.comment),emitJSDocSignature(e.typeExpression)}(t);case 342:case 349:return function emitJSDocPropertyLikeTag(e){emitJSDocTagName(e.tagName),emitJSDocTypeExpression(e.typeExpression),writeSpace(),e.isBracketed&&writePunctuation("[");emit(e.name),e.isBracketed&&writePunctuation("]");emitJSDocComment(e.comment)}(t);case 341:case 343:case 344:case 345:case 350:case 351:return function emitJSDocSimpleTypedTag(e){emitJSDocTagName(e.tagName),emitJSDocTypeExpression(e.typeExpression),emitJSDocComment(e.comment)}(t);case 346:return function emitJSDocTemplateTag(e){emitJSDocTagName(e.tagName),emitJSDocTypeExpression(e.constraint),writeSpace(),emitList(e,e.typeParameters,528),emitJSDocComment(e.comment)}(t);case 347:return function emitJSDocTypedefTag(e){emitJSDocTagName(e.tagName),e.typeExpression&&(310===e.typeExpression.kind?emitJSDocTypeExpression(e.typeExpression):(writeSpace(),writePunctuation("{"),q("Object"),e.typeExpression.isArrayType&&(writePunctuation("["),writePunctuation("]")),writePunctuation("}")));e.fullName&&(writeSpace(),emit(e.fullName));emitJSDocComment(e.comment),e.typeExpression&&323===e.typeExpression.kind&&emitJSDocTypeLiteral(e.typeExpression)}(t);case 348:return function emitJSDocSeeTag(e){emitJSDocTagName(e.tagName),emit(e.name),emitJSDocComment(e.comment)}(t);case 352:return function emitJSDocImportTag(e){emitJSDocTagName(e.tagName),writeSpace(),e.importClause&&(emit(e.importClause),writeSpace(),emitTokenWithComment(161,e.importClause.end,writeKeyword,e),writeSpace());emitExpression(e.moduleSpecifier),e.attributes&&emitWithLeadingSpace(e.attributes);emitJSDocComment(e.comment)}(t)}if(isExpression(t)&&(e=1,A!==noEmitSubstitution)){const n=A(e,t)||t;n!==t&&(t=n,F&&(t=F(t)))}}if(1===e)switch(t.kind){case 9:case 10:return function emitNumericOrBigIntLiteral(e){emitLiteral(e,!1)}(t);case 11:case 14:case 15:return emitLiteral(t,!1);case 80:return emitIdentifier(t);case 81:return emitPrivateIdentifier(t);case 210:return function emitArrayLiteralExpression(e){const t=e.elements,n=e.multiLine?65536:0;emitExpressionList(e,t,8914|n,re.parenthesizeExpressionForDisallowedComma)}(t);case 211:return function emitObjectLiteralExpression(e){pushNameGenerationScope(e),forEach(e.properties,generateMemberNames);const t=131072&getEmitFlags(e);t&&increaseIndent();const r=e.multiLine?65536:0,i=n&&n.languageVersion>=1&&!isJsonSourceFile(n)?64:0;emitList(e,e.properties,526226|i|r),t&&decreaseIndent();popNameGenerationScope(e)}(t);case 212:return function emitPropertyAccessExpression(e){emitExpression(e.expression,re.parenthesizeLeftSideOfAccess);const t=e.questionDotToken||setTextRangePosEnd(Wr.createToken(25),e.expression.end,e.name.pos),n=getLinesBetweenNodes(e,e.expression,t),r=getLinesBetweenNodes(e,t,e.name);writeLinesAndIndent(n,!1);const i=29!==t.kind&&function mayNeedDotDotForPropertyAccess(e){if(isNumericLiteral(e=skipPartiallyEmittedExpressions(e))){const t=getLiteralTextOfNode(e,void 0,!0,!1);return!(448&e.numericLiteralFlags||t.includes(tokenToString(25))||t.includes(String.fromCharCode(69))||t.includes(String.fromCharCode(101)))}if(isAccessExpression(e)){const t=getConstantValue(e);return"number"==typeof t&&isFinite(t)&&t>=0&&Math.floor(t)===t}}(e.expression)&&!T.hasTrailingComment()&&!T.hasTrailingWhitespace();i&&writePunctuation(".");e.questionDotToken?emit(t):emitTokenWithComment(t.kind,e.expression.end,writePunctuation,e);writeLinesAndIndent(r,!1),emit(e.name),decreaseIndentIf(n,r)}(t);case 213:return function emitElementAccessExpression(e){emitExpression(e.expression,re.parenthesizeLeftSideOfAccess),emit(e.questionDotToken),emitTokenWithComment(23,e.expression.end,writePunctuation,e),emitExpression(e.argumentExpression),emitTokenWithComment(24,e.argumentExpression.end,writePunctuation,e)}(t);case 214:return function emitCallExpression(e){const t=16&getInternalEmitFlags(e);t&&(writePunctuation("("),writeLiteral("0"),writePunctuation(","),writeSpace());emitExpression(e.expression,re.parenthesizeLeftSideOfAccess),t&&writePunctuation(")");emit(e.questionDotToken),emitTypeArguments(e,e.typeArguments),emitExpressionList(e,e.arguments,2576,re.parenthesizeExpressionForDisallowedComma)}(t);case 215:return function emitNewExpression(e){emitTokenWithComment(105,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeExpressionOfNew),emitTypeArguments(e,e.typeArguments),emitExpressionList(e,e.arguments,18960,re.parenthesizeExpressionForDisallowedComma)}(t);case 216:return function emitTaggedTemplateExpression(e){const t=16&getInternalEmitFlags(e);t&&(writePunctuation("("),writeLiteral("0"),writePunctuation(","),writeSpace());emitExpression(e.tag,re.parenthesizeLeftSideOfAccess),t&&writePunctuation(")");emitTypeArguments(e,e.typeArguments),writeSpace(),emitExpression(e.template)}(t);case 217:return function emitTypeAssertionExpression(e){writePunctuation("<"),emit(e.type),writePunctuation(">"),emitExpression(e.expression,re.parenthesizeOperandOfPrefixUnary)}(t);case 218:return function emitParenthesizedExpression(e){const t=emitTokenWithComment(21,e.pos,writePunctuation,e),n=writeLineSeparatorsAndIndentBefore(e.expression,e);emitExpression(e.expression,void 0),writeLineSeparatorsAfter(e.expression,e),decreaseIndentIf(n),emitTokenWithComment(22,e.expression?e.expression.end:t,writePunctuation,e)}(t);case 219:return function emitFunctionExpression(e){generateNameIfNeeded(e.name),emitFunctionDeclarationOrExpression(e)}(t);case 220:return function emitArrowFunction(e){emitModifierList(e,e.modifiers),emitSignatureAndBody(e,emitArrowFunctionHead,emitArrowFunctionBody)}(t);case 221:return function emitDeleteExpression(e){emitTokenWithComment(91,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeOperandOfPrefixUnary)}(t);case 222:return function emitTypeOfExpression(e){emitTokenWithComment(114,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeOperandOfPrefixUnary)}(t);case 223:return function emitVoidExpression(e){emitTokenWithComment(116,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeOperandOfPrefixUnary)}(t);case 224:return function emitAwaitExpression(e){emitTokenWithComment(135,e.pos,writeKeyword,e),writeSpace(),emitExpression(e.expression,re.parenthesizeOperandOfPrefixUnary)}(t);case 225:return function emitPrefixUnaryExpression(e){writeTokenText(e.operator,writeOperator),function shouldEmitWhitespaceBeforeOperand(e){const t=e.operand;return 225===t.kind&&(40===e.operator&&(40===t.operator||46===t.operator)||41===e.operator&&(41===t.operator||47===t.operator))}(e)&&writeSpace();emitExpression(e.operand,re.parenthesizeOperandOfPrefixUnary)}(t);case 226:return function emitPostfixUnaryExpression(e){emitExpression(e.operand,re.parenthesizeOperandOfPostfixUnary),writeTokenText(e.operator,writeOperator)}(t);case 227:return oe(t);case 228:return function emitConditionalExpression(e){const t=getLinesBetweenNodes(e,e.condition,e.questionToken),n=getLinesBetweenNodes(e,e.questionToken,e.whenTrue),r=getLinesBetweenNodes(e,e.whenTrue,e.colonToken),i=getLinesBetweenNodes(e,e.colonToken,e.whenFalse);emitExpression(e.condition,re.parenthesizeConditionOfConditionalExpression),writeLinesAndIndent(t,!0),emit(e.questionToken),writeLinesAndIndent(n,!0),emitExpression(e.whenTrue,re.parenthesizeBranchOfConditionalExpression),decreaseIndentIf(t,n),writeLinesAndIndent(r,!0),emit(e.colonToken),writeLinesAndIndent(i,!0),emitExpression(e.whenFalse,re.parenthesizeBranchOfConditionalExpression),decreaseIndentIf(r,i)}(t);case 229:return function emitTemplateExpression(e){emit(e.head),emitList(e,e.templateSpans,262144)}(t);case 230:return function emitYieldExpression(e){emitTokenWithComment(127,e.pos,writeKeyword,e),emit(e.asteriskToken),emitExpressionWithLeadingSpace(e.expression&&parenthesizeExpressionForNoAsi(e.expression),parenthesizeExpressionForNoAsiAndDisallowedComma)}(t);case 231:return function emitSpreadElement(e){emitTokenWithComment(26,e.pos,writePunctuation,e),emitExpression(e.expression,re.parenthesizeExpressionForDisallowedComma)}(t);case 232:return function emitClassExpression(e){generateNameIfNeeded(e.name),emitClassDeclarationOrExpression(e)}(t);case 233:case 283:case 354:return;case 235:return function emitAsExpression(e){emitExpression(e.expression,void 0),e.type&&(writeSpace(),writeKeyword("as"),writeSpace(),emit(e.type))}(t);case 236:return function emitNonNullExpression(e){emitExpression(e.expression,re.parenthesizeLeftSideOfAccess),writeOperator("!")}(t);case 234:return emitExpressionWithTypeArguments(t);case 239:return function emitSatisfiesExpression(e){emitExpression(e.expression,void 0),e.type&&(writeSpace(),writeKeyword("satisfies"),writeSpace(),emit(e.type))}(t);case 237:return function emitMetaProperty(e){writeToken(e.keywordToken,e.pos,writePunctuation),writePunctuation("."),emit(e.name)}(t);case 238:return h.fail("SyntheticExpression should never be printed.");case 285:return function emitJsxElement(e){emit(e.openingElement),emitList(e,e.children,262144),emit(e.closingElement)}(t);case 286:return function emitJsxSelfClosingElement(e){writePunctuation("<"),emitJsxTagName(e.tagName),emitTypeArguments(e,e.typeArguments),writeSpace(),emit(e.attributes),writePunctuation("/>")}(t);case 289:return function emitJsxFragment(e){emit(e.openingFragment),emitList(e,e.children,262144),emit(e.closingFragment)}(t);case 353:return h.fail("SyntaxList should not be printed");case 356:return function emitPartiallyEmittedExpression(e){const t=getEmitFlags(e);1024&t||e.pos===e.expression.pos||emitTrailingCommentsOfPosition(e.expression.pos);emitExpression(e.expression),2048&t||e.end===e.expression.end||emitLeadingCommentsOfPosition(e.expression.end)}(t);case 357:return function emitCommaList(e){emitExpressionList(e,e.elements,528,void 0)}(t);case 358:return h.fail("SyntheticReferenceExpression should not be printed")}return isKeyword(t.kind)?writeTokenNode(t,writeKeyword):isTokenKind(t.kind)?writeTokenNode(t,writePunctuation):void h.fail(`Unhandled SyntaxKind: ${h.formatSyntaxKind(t.kind)}.`)}function pipelineEmitWithSubstitution(e,t){const n=getNextPipelinePhase(1,e,t);h.assertIsDefined(k),t=k,k=void 0,n(e,t)}function emitHelpers(t){let r=!1;const i=309===t.kind?t:void 0;if(i&&0===U)return;const o=i?i.sourceFiles.length:1;for(let a=0;a")}function emitFunctionTypeBody(e){writeSpace(),emit(e.type)}function emitArrowFunctionHead(e){emitTypeParameters(e,e.typeParameters),emitParametersForArrow(e,e.parameters),emitTypeAnnotation(e.type),writeSpace(),emit(e.equalsGreaterThanToken)}function emitArrowFunctionBody(e){isBlock(e.body)?emitBlockFunctionBody(e.body):(writeSpace(),emitExpression(e.body,re.parenthesizeConciseBodyOfArrowFunction))}function emitExpressionWithTypeArguments(e){emitExpression(e.expression,re.parenthesizeLeftSideOfAccess),emitTypeArguments(e,e.typeArguments)}function emitBlockStatements(e,t){emitTokenWithComment(19,e.pos,writePunctuation,e);const n=t||1&getEmitFlags(e)?768:129;emitList(e,e.statements,n),emitTokenWithComment(20,e.statements.end,writePunctuation,e,!!(1&n))}function emitEmptyStatement(e){e?writePunctuation(";"):writeTrailingSemicolon()}function emitWhileClause(e,t){const n=emitTokenWithComment(117,t,writeKeyword,e);writeSpace(),emitTokenWithComment(21,n,writePunctuation,e),emitExpression(e.expression),emitTokenWithComment(22,e.expression.end,writePunctuation,e)}function emitForBinding(e){void 0!==e&&(262===e.kind?emit(e):emitExpression(e))}function emitTokenWithComment(e,t,r,i,o){const a=getParseTreeNode(i),s=a&&a.kind===i.kind,c=t;if(s&&n&&(t=skipTrivia(n.text,t)),s&&i.pos!==c){const e=o&&n&&!positionsAreOnSameLine(c,t,n);e&&increaseIndent(),emitLeadingCommentsOfPosition(c),e&&decreaseIndent()}if(t=J||19!==e&&20!==e?writeTokenText(e,r,t):writeToken(e,t,r,i),s&&i.end!==t){const e=295===i.kind;emitTrailingCommentsOfPosition(t,!e,e)}return t}function commentWillEmitNewLine(e){return 2===e.kind||!!e.hasTrailingNewLine}function willEmitLeadingNewLine(e){if(!n)return!1;const t=getLeadingCommentRanges(n.text,e.pos);if(t){const t=getParseTreeNode(e);if(t&&isParenthesizedExpression(t.parent))return!0}return!!some(t,commentWillEmitNewLine)||(!!some(getSyntheticLeadingComments(e),commentWillEmitNewLine)||!!isPartiallyEmittedExpression(e)&&(!(e.pos===e.expression.pos||!some(getTrailingCommentRanges(n.text,e.expression.pos),commentWillEmitNewLine))||willEmitLeadingNewLine(e.expression)))}function parenthesizeExpressionForNoAsi(e){if(!Z)switch(e.kind){case 356:if(willEmitLeadingNewLine(e)){const t=getParseTreeNode(e);if(t&&isParenthesizedExpression(t)){const n=Wr.createParenthesizedExpression(e.expression);return setOriginalNode(n,e),setTextRange(n,t),n}return Wr.createParenthesizedExpression(e)}return Wr.updatePartiallyEmittedExpression(e,parenthesizeExpressionForNoAsi(e.expression));case 212:return Wr.updatePropertyAccessExpression(e,parenthesizeExpressionForNoAsi(e.expression),e.name);case 213:return Wr.updateElementAccessExpression(e,parenthesizeExpressionForNoAsi(e.expression),e.argumentExpression);case 214:return Wr.updateCallExpression(e,parenthesizeExpressionForNoAsi(e.expression),e.typeArguments,e.arguments);case 216:return Wr.updateTaggedTemplateExpression(e,parenthesizeExpressionForNoAsi(e.tag),e.typeArguments,e.template);case 226:return Wr.updatePostfixUnaryExpression(e,parenthesizeExpressionForNoAsi(e.operand));case 227:return Wr.updateBinaryExpression(e,parenthesizeExpressionForNoAsi(e.left),e.operatorToken,e.right);case 228:return Wr.updateConditionalExpression(e,parenthesizeExpressionForNoAsi(e.condition),e.questionToken,e.whenTrue,e.colonToken,e.whenFalse);case 235:return Wr.updateAsExpression(e,parenthesizeExpressionForNoAsi(e.expression),e.type);case 239:return Wr.updateSatisfiesExpression(e,parenthesizeExpressionForNoAsi(e.expression),e.type);case 236:return Wr.updateNonNullExpression(e,parenthesizeExpressionForNoAsi(e.expression))}return e}function parenthesizeExpressionForNoAsiAndDisallowedComma(e){return parenthesizeExpressionForNoAsi(re.parenthesizeExpressionForDisallowedComma(e))}function emitFunctionDeclarationOrExpression(e){emitDecoratorsAndModifiers(e,e.modifiers,!1),writeKeyword("function"),emit(e.asteriskToken),writeSpace(),emitIdentifierName(e.name),emitSignatureAndBody(e,emitSignatureHead,emitFunctionBody)}function emitSignatureAndBody(e,t,n){const r=131072&getEmitFlags(e);r&&increaseIndent(),pushNameGenerationScope(e),forEach(e.parameters,generateNames),t(e),n(e),popNameGenerationScope(e),r&&decreaseIndent()}function emitFunctionBody(e){const t=e.body;t?emitBlockFunctionBody(t):writeTrailingSemicolon()}function emitEmptyFunctionBody(e){writeTrailingSemicolon()}function emitSignatureHead(e){emitTypeParameters(e,e.typeParameters),emitParameters(e,e.parameters),emitTypeAnnotation(e.type)}function emitBlockFunctionBody(e){generateNames(e),null==O||O(e),writeSpace(),writePunctuation("{"),increaseIndent();const t=function shouldEmitBlockFunctionBodyOnSingleLine(e){if(1&getEmitFlags(e))return!0;if(e.multiLine)return!1;if(!nodeIsSynthesized(e)&&n&&!rangeIsOnSingleLine(e,n))return!1;if(getLeadingLineTerminatorCount(e,firstOrUndefined(e.statements),2)||getClosingLineTerminatorCount(e,lastOrUndefined(e.statements),2,e.statements))return!1;let t;for(const n of e.statements){if(getSeparatingLineTerminatorCount(t,n,2)>0)return!1;t=n}return!0}(e)?emitBlockFunctionBodyOnSingleLine:emitBlockFunctionBodyWorker;emitBodyWithDetachedComments(e,e.statements,t),decreaseIndent(),writeToken(20,e.statements.end,writePunctuation,e),null==w||w(e)}function emitBlockFunctionBodyOnSingleLine(e){emitBlockFunctionBodyWorker(e,!0)}function emitBlockFunctionBodyWorker(e,t){const n=emitPrologueDirectives(e.statements),r=T.getTextPos();emitHelpers(e),0===n&&r===T.getTextPos()&&t?(decreaseIndent(),emitList(e,e.statements,768),increaseIndent()):emitList(e,e.statements,1,void 0,n)}function emitClassDeclarationOrExpression(e){emitDecoratorsAndModifiers(e,e.modifiers,!0),emitTokenWithComment(86,moveRangePastModifiers(e).pos,writeKeyword,e),e.name&&(writeSpace(),emitIdentifierName(e.name));const t=131072&getEmitFlags(e);t&&increaseIndent(),emitTypeParameters(e,e.typeParameters),emitList(e,e.heritageClauses,0),writeSpace(),writePunctuation("{"),pushNameGenerationScope(e),forEach(e.members,generateMemberNames),emitList(e,e.members,129),popNameGenerationScope(e),writePunctuation("}"),t&&decreaseIndent()}function emitNamedImportsOrExports(e){writePunctuation("{"),emitList(e,e.elements,525136),writePunctuation("}")}function emitImportOrExportSpecifier(e){e.isTypeOnly&&(writeKeyword("type"),writeSpace()),e.propertyName&&(emit(e.propertyName),writeSpace(),emitTokenWithComment(130,e.propertyName.end,writeKeyword,e),writeSpace()),emit(e.name)}function emitJsxTagName(e){80===e.kind?emitExpression(e):emit(e)}function emitCaseOrDefaultClauseRest(e,t,r){let i=163969;1===t.length&&(!n||nodeIsSynthesized(e)||nodeIsSynthesized(t[0])||rangeStartPositionsAreOnSameLine(e,t[0],n))?(writeToken(59,r,writePunctuation,e),writeSpace(),i&=-130):emitTokenWithComment(59,r,writePunctuation,e),emitList(e,t,i)}function emitJSDocTypeLiteral(e){emitList(e,Wr.createNodeArray(e.jsDocPropertyTags),33)}function emitJSDocSignature(e){e.typeParameters&&emitList(e,Wr.createNodeArray(e.typeParameters),33),e.parameters&&emitList(e,Wr.createNodeArray(e.parameters),33),e.type&&(writeLine(),writeSpace(),writePunctuation("*"),writeSpace(),emit(e.type))}function emitJSDocTagName(e){writePunctuation("@"),emit(e)}function emitJSDocComment(e){const t=getTextOfJSDocComment(e);t&&(writeSpace(),q(t))}function emitJSDocTypeExpression(e){e&&(writeSpace(),writePunctuation("{"),emit(e.type),writePunctuation("}"))}function emitSourceFile(e){writeLine();const t=e.statements;0===t.length||!isPrologueDirective(t[0])||nodeIsSynthesized(t[0])?emitBodyWithDetachedComments(e,t,emitSourceFileWorker):emitSourceFileWorker(e)}function emitTripleSlashDirectives(e,t,r,i){if(e&&(writeComment('/// '),writeLine()),n&&n.moduleName&&(writeComment(`/// `),writeLine()),n&&n.amdDependencies)for(const e of n.amdDependencies)e.name?writeComment(`/// `):writeComment(`/// `),writeLine();function writeDirectives(e,t){for(const n of t){const t=n.resolutionMode?`resolution-mode="${99===n.resolutionMode?"import":"require"}" `:"",r=n.preserve?'preserve="true" ':"";writeComment(`/// `),writeLine()}}writeDirectives("path",t),writeDirectives("types",r),writeDirectives("lib",i)}function emitSourceFileWorker(e){const t=e.statements;pushNameGenerationScope(e),forEach(e.statements,generateNames),emitHelpers(e);const n=findIndex(t,e=>!isPrologueDirective(e));!function emitTripleSlashDirectivesIfNeeded(e){e.isDeclarationFile&&emitTripleSlashDirectives(e.hasNoDefaultLib,e.referencedFiles,e.typeReferenceDirectives,e.libReferenceDirectives)}(e),emitList(e,t,1,void 0,-1===n?t.length:n),popNameGenerationScope(e)}function emitPrologueDirectives(e,t,n){let r=!!t;for(let i=0;i=r.length||0===s;if(c&&32768&i)return null==L||L(r),void(null==M||M(r));15360&i&&(writePunctuation(function getOpeningBracket(e){return Ca[15360&e][0]}(i)),c&&r&&emitTrailingCommentsOfPosition(r.pos,!0)),null==L||L(r),c?!(1&i)||V&&(!t||n&&rangeIsOnSingleLine(t,n))?256&i&&!(524288&i)&&writeSpace():writeLine():emitNodeListItems(e,t,r,i,o,a,s,r.hasTrailingComma,r),null==M||M(r),15360&i&&(c&&r&&emitLeadingCommentsOfPosition(r.end),writePunctuation(function getClosingBracket(e){return Ca[15360&e][1]}(i)))}function emitNodeListItems(e,t,n,r,i,o,a,s,c){const l=!(262144&r);let d=l;const p=getLeadingLineTerminatorCount(t,n[o],r);p?(writeLine(p),d=!1):256&r&&writeSpace(),128&r&&increaseIndent();const u=function getEmitListItem(e,t){return 1===e.length?emitListItemNoParenthesizer:"object"==typeof t?emitListItemWithParenthesizerRuleSelector:emitListItemWithParenthesizerRule}(e,i);let m,_=!1;for(let s=0;s0){if(131&r||(increaseIndent(),_=!0),d&&60&r&&!positionIsSynthesized(a.pos)){emitTrailingCommentsOfPosition(getCommentRange(a).pos,!!(512&r),!0)}writeLine(e),d=!1}else m&&512&r&&writeSpace()}if(d){emitTrailingCommentsOfPosition(getCommentRange(a).pos)}else d=l;y=a.pos,u(a,e,i,s),_&&(decreaseIndent(),_=!1),m=a}const f=m?getEmitFlags(m):0,g=Z||!!(2048&f),h=s&&64&r&&16&r;h&&(m&&!g?emitTokenWithComment(28,m.end,writePunctuation,m):writePunctuation(",")),m&&(t?t.end:-1)!==m.end&&60&r&&!g&&emitLeadingCommentsOfPosition(h&&(null==c?void 0:c.end)?c.end:m.end),128&r&&decreaseIndent();const T=getClosingLineTerminatorCount(t,n[o+a-1],r,c);T?writeLine(T):2097408&r&&writeSpace()}function writeLiteral(e){T.writeLiteral(e)}function writeSymbol(e,t){T.writeSymbol(e,t)}function writePunctuation(e){T.writePunctuation(e)}function writeTrailingSemicolon(){T.writeTrailingSemicolon(";")}function writeKeyword(e){T.writeKeyword(e)}function writeOperator(e){T.writeOperator(e)}function writeParameter(e){T.writeParameter(e)}function writeComment(e){T.writeComment(e)}function writeSpace(){T.writeSpace(" ")}function writeProperty(e){T.writeProperty(e)}function nonEscapingWrite(e){T.nonEscapingWrite?T.nonEscapingWrite(e):T.write(e)}function writeLine(e=1){for(let t=0;t0)}function increaseIndent(){T.increaseIndent()}function decreaseIndent(){T.decreaseIndent()}function writeToken(e,t,n,r){return H?writeTokenText(e,n,t):function emitTokenWithSourceMap(e,t,n,r,i){if(H||e&&isInJsonFile(e))return i(t,n,r);const o=e&&e.emitNode,a=o&&o.flags||0,s=o&&o.tokenSourceMapRanges&&o.tokenSourceMapRanges[t],c=s&&s.source||b;r=skipSourceTrivia(c,s?s.pos:r),!(256&a)&&r>=0&&emitSourcePos(c,r);r=i(t,n,r),s&&(r=s.end);!(512&a)&&r>=0&&emitSourcePos(c,r);return r}(r,e,n,t,writeTokenText)}function writeTokenNode(e,t){R&&R(e),t(tokenToString(e.kind)),B&&B(e)}function writeTokenText(e,t,n){const r=tokenToString(e);return t(r),n<0?n:n+r.length}function writeLineOrSpace(e,t,n){if(1&getEmitFlags(e))writeSpace();else if(V){const r=getLinesBetweenNodes(e,t,n);r?writeLine(r):writeSpace()}else writeLine()}function writeLines(e){const t=e.split(/\r\n?|\n/),n=guessIndentation(t);for(const e of t){const t=n?e.slice(n):e;t.length&&(writeLine(),q(t))}}function writeLinesAndIndent(e,t){e?(increaseIndent(),writeLine(e)):t&&writeSpace()}function decreaseIndentIf(e,t){e&&decreaseIndent(),t&&decreaseIndent()}function getLeadingLineTerminatorCount(e,t,r){if(2&r||V){if(65536&r)return 1;if(void 0===t)return!e||n&&rangeIsOnSingleLine(e,n)?0:1;if(t.pos===y)return 0;if(12===t.kind)return 0;if(n&&e&&!positionIsSynthesized(e.pos)&&!nodeIsSynthesized(t)&&(!t.parent||getOriginalNode(t.parent)===getOriginalNode(e)))return V?getEffectiveLines(r=>getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(t.pos,e.pos,n,r)):rangeStartPositionsAreOnSameLine(e,t,n)?0:1;if(synthesizedNodeStartsOnNewLine(t,r))return 1}return 1&r?1:0}function getSeparatingLineTerminatorCount(e,t,r){if(2&r||V){if(void 0===e||void 0===t)return 0;if(12===t.kind)return 0;if(n&&!nodeIsSynthesized(e)&&!nodeIsSynthesized(t))return V&&function siblingNodePositionsAreComparable(e,t){if(t.pos-1&&r.indexOf(t)===i+1}(e,t)?getEffectiveLines(r=>getLinesBetweenRangeEndAndRangeStart(e,t,n,r)):!V&&function originalNodesHaveSameParent(e,t){return(e=getOriginalNode(e)).parent&&e.parent===getOriginalNode(t).parent}(e,t)?rangeEndIsOnSameLineAsRangeStart(e,t,n)?0:1:65536&r?1:0;if(synthesizedNodeStartsOnNewLine(e,r)||synthesizedNodeStartsOnNewLine(t,r))return 1}else if(getStartsOnNewLine(t))return 1;return 1&r?1:0}function getClosingLineTerminatorCount(e,t,r,i){if(2&r||V){if(65536&r)return 1;if(void 0===t)return!e||n&&rangeIsOnSingleLine(e,n)?0:1;if(n&&e&&!positionIsSynthesized(e.pos)&&!nodeIsSynthesized(t)&&(!t.parent||t.parent===e)){if(V){const r=i&&!positionIsSynthesized(i.end)?i.end:t.end;return getEffectiveLines(t=>getLinesBetweenPositionAndNextNonWhitespaceCharacter(r,e.end,n,t))}return rangeEndPositionsAreOnSameLine(e,t,n)?0:1}if(synthesizedNodeStartsOnNewLine(t,r))return 1}return 1&r&&!(131072&r)?1:0}function getEffectiveLines(e){h.assert(!!V);const t=e(!0);return 0===t?e(!1):t}function writeLineSeparatorsAndIndentBefore(e,t){const n=V&&getLeadingLineTerminatorCount(t,e,0);return n&&writeLinesAndIndent(n,!1),!!n}function writeLineSeparatorsAfter(e,t){const n=V&&getClosingLineTerminatorCount(t,e,0,void 0);n&&writeLine(n)}function synthesizedNodeStartsOnNewLine(e,t){if(nodeIsSynthesized(e)){const n=getStartsOnNewLine(e);return void 0===n?!!(65536&t):n}return!!(65536&t)}function getLinesBetweenNodes(e,t,r){return 262144&getEmitFlags(e)?0:(e=skipSynthesizedParentheses(e),t=skipSynthesizedParentheses(t),getStartsOnNewLine(r=skipSynthesizedParentheses(r))?1:!n||nodeIsSynthesized(e)||nodeIsSynthesized(t)||nodeIsSynthesized(r)?0:V?getEffectiveLines(e=>getLinesBetweenRangeEndAndRangeStart(t,r,n,e)):rangeEndIsOnSameLineAsRangeStart(t,r,n)?0:1)}function isEmptyBlock(e){return 0===e.statements.length&&(!n||rangeEndIsOnSameLineAsRangeStart(e,e,n))}function skipSynthesizedParentheses(e){for(;218===e.kind&&nodeIsSynthesized(e);)e=e.expression;return e}function getTextOfNode2(e,t){if(isGeneratedIdentifier(e)||isGeneratedPrivateIdentifier(e))return generateName(e);if(isStringLiteral(e)&&e.textSourceNode)return getTextOfNode2(e.textSourceNode,t);const r=n,i=!!r&&!!e.parent&&!nodeIsSynthesized(e);if(isMemberName(e)){if(!i||getSourceFileOfNode(e)!==getOriginalNode(r))return idText(e)}else if(isJsxNamespacedName(e)){if(!i||getSourceFileOfNode(e)!==getOriginalNode(r))return getTextOfJsxNamespacedName(e)}else if(h.assertNode(e,isLiteralExpression),!i)return e.text;return getSourceTextOfNodeFromSourceFile(r,e,t)}function getLiteralTextOfNode(t,r=n,i,o){if(11===t.kind&&t.textSourceNode){const e=t.textSourceNode;if(isIdentifier(e)||isPrivateIdentifier(e)||isNumericLiteral(e)||isJsxNamespacedName(e)){const n=isNumericLiteral(e)?e.text:getTextOfNode2(e);return o?`"${escapeJsxAttributeString(n)}"`:i||16777216&getEmitFlags(t)?`"${escapeString(n)}"`:`"${escapeNonAsciiString(n)}"`}return getLiteralTextOfNode(e,getSourceFileOfNode(e),i,o)}return getLiteralText(t,r,(i?1:0)|(o?2:0)|(e.terminateUnterminatedLiterals?4:0)|(e.target&&e.target>=8?8:0))}function pushNameGenerationScope(e){l.push(d),d=0,f.push(g),e&&1048576&getEmitFlags(e)||(p.push(u),u=0,s.push(c),c=void 0,m.push(_))}function popNameGenerationScope(e){d=l.pop(),g=f.pop(),e&&1048576&getEmitFlags(e)||(u=p.pop(),c=s.pop(),_=m.pop())}function reserveNameInNestedScopes(e){_&&_!==lastOrUndefined(m)||(_=new Set),_.add(e)}function reservePrivateNameInNestedScopes(e){g&&g!==lastOrUndefined(f)||(g=new Set),g.add(e)}function generateNames(e){if(e)switch(e.kind){case 242:case 297:case 298:forEach(e.statements,generateNames);break;case 257:case 255:case 247:case 248:generateNames(e.statement);break;case 246:generateNames(e.thenStatement),generateNames(e.elseStatement);break;case 249:case 251:case 250:generateNames(e.initializer),generateNames(e.statement);break;case 256:generateNames(e.caseBlock);break;case 270:forEach(e.clauses,generateNames);break;case 259:generateNames(e.tryBlock),generateNames(e.catchClause),generateNames(e.finallyBlock);break;case 300:generateNames(e.variableDeclaration),generateNames(e.block);break;case 244:generateNames(e.declarationList);break;case 262:forEach(e.declarations,generateNames);break;case 261:case 170:case 209:case 264:case 275:case 281:generateNameIfNeeded(e.name);break;case 263:generateNameIfNeeded(e.name),1048576&getEmitFlags(e)&&(forEach(e.parameters,generateNames),generateNames(e.body));break;case 207:case 208:case 276:forEach(e.elements,generateNames);break;case 273:generateNames(e.importClause);break;case 274:generateNameIfNeeded(e.name),generateNames(e.namedBindings);break;case 277:generateNameIfNeeded(e.propertyName||e.name)}}function generateMemberNames(e){if(e)switch(e.kind){case 304:case 305:case 173:case 172:case 175:case 174:case 178:case 179:generateNameIfNeeded(e.name)}}function generateNameIfNeeded(e){e&&(isGeneratedIdentifier(e)||isGeneratedPrivateIdentifier(e)?generateName(e):isBindingPattern(e)&&generateNames(e))}function generateName(e){const t=e.emitNode.autoGenerate;if(4==(7&t.flags))return generateNameCached(getNodeForGeneratedName(e),isPrivateIdentifier(e),t.flags,t.prefix,t.suffix);{const n=t.id;return o[n]||(o[n]=function makeName(e){const t=e.emitNode.autoGenerate,n=formatGeneratedNamePart(t.prefix,generateName),r=formatGeneratedNamePart(t.suffix);switch(7&t.flags){case 1:return makeTempVariableName(0,!!(8&t.flags),isPrivateIdentifier(e),n,r);case 2:return h.assertNode(e,isIdentifier),makeTempVariableName(268435456,!!(8&t.flags),!1,n,r);case 3:return makeUniqueName2(idText(e),32&t.flags?isFileLevelUniqueNameInCurrentFile:isUniqueName,!!(16&t.flags),!!(8&t.flags),isPrivateIdentifier(e),n,r)}return h.fail(`Unsupported GeneratedIdentifierKind: ${h.formatEnum(7&t.flags,ne,!0)}.`)}(e))}}function generateNameCached(e,t,n,o,a){const s=getNodeId(e),c=t?i:r;return c[s]||(c[s]=generateNameForNode(e,t,n??0,formatGeneratedNamePart(o,generateName),formatGeneratedNamePart(a)))}function isUniqueName(e,t){return isFileLevelUniqueNameInCurrentFile(e,t)&&!function isReservedName(e,t){let n,r;t?(n=g,r=f):(n=_,r=m);if(null==n?void 0:n.has(e))return!0;for(let t=r.length-1;t>=0;t--)if(n!==r[t]&&(n=r[t],null==n?void 0:n.has(e)))return!0;return!1}(e,t)&&!a.has(e)}function isFileLevelUniqueNameInCurrentFile(e,t){return!n||isFileLevelUniqueName(n,e,P)}function setTempFlags(e,t){switch(e){case"":u=t;break;case"#":d=t;break;default:c??(c=new Map),c.set(e,t)}}function makeTempVariableName(e,t,n,r,i){r.length>0&&35===r.charCodeAt(0)&&(r=r.slice(1));const o=formatGeneratedName(n,r,"",i);let a=function getTempFlags(e){switch(e){case"":return u;case"#":return d;default:return(null==c?void 0:c.get(e))??0}}(o);if(e&&!(a&e)){const s=formatGeneratedName(n,r,268435456===e?"_i":"_n",i);if(isUniqueName(s,n))return a|=e,n?reservePrivateNameInNestedScopes(s):t&&reserveNameInNestedScopes(s),setTempFlags(o,a),s}for(;;){const e=268435455&a;if(a++,8!==e&&13!==e){const s=formatGeneratedName(n,r,e<26?"_"+String.fromCharCode(97+e):"_"+(e-26),i);if(isUniqueName(s,n))return n?reservePrivateNameInNestedScopes(s):t&&reserveNameInNestedScopes(s),setTempFlags(o,a),s}}}function makeUniqueName2(e,t=isUniqueName,n,r,i,o,s){if(e.length>0&&35===e.charCodeAt(0)&&(e=e.slice(1)),o.length>0&&35===o.charCodeAt(0)&&(o=o.slice(1)),n){const n=formatGeneratedName(i,o,e,s);if(t(n,i))return i?reservePrivateNameInNestedScopes(n):r?reserveNameInNestedScopes(n):a.add(n),n}95!==e.charCodeAt(e.length-1)&&(e+="_");let c=1;for(;;){const n=formatGeneratedName(i,o,e+c,s);if(t(n,i))return i?reservePrivateNameInNestedScopes(n):r?reserveNameInNestedScopes(n):a.add(n),n;c++}}function makeFileLevelOptimisticUniqueName(e){return makeUniqueName2(e,isFileLevelUniqueNameInCurrentFile,!0,!1,!1,"","")}function generateNameForModuleOrEnum(e){const t=getTextOfNode2(e.name);return function isUniqueLocalName(e,t){for(let n=t;n&&isNodeDescendantOf(n,t);n=n.nextContainer)if(canHaveLocals(n)&&n.locals){const t=n.locals.get(escapeLeadingUnderscores(e));if(t&&3257279&t.flags)return!1}return!0}(t,tryCast(e,canHaveLocals))?t:makeUniqueName2(t,isUniqueName,!1,!1,!1,"","")}function generateNameForExportDefault(){return makeUniqueName2("default",isUniqueName,!1,!1,!1,"","")}function generateNameForNode(e,t,n,r,i){switch(e.kind){case 80:case 81:return makeUniqueName2(getTextOfNode2(e),isUniqueName,!!(16&n),!!(8&n),t,r,i);case 268:case 267:return h.assert(!r&&!i&&!t),generateNameForModuleOrEnum(e);case 273:case 279:return h.assert(!r&&!i&&!t),function generateNameForImportOrExportDeclaration(e){const t=getExternalModuleName(e);return makeUniqueName2(isStringLiteral(t)?makeIdentifierFromModuleName(t.text):"module",isUniqueName,!1,!1,!1,"","")}(e);case 263:case 264:{h.assert(!r&&!i&&!t);const o=e.name;return o&&!isGeneratedIdentifier(o)?generateNameForNode(o,!1,n,r,i):generateNameForExportDefault()}case 278:return h.assert(!r&&!i&&!t),generateNameForExportDefault();case 232:return h.assert(!r&&!i&&!t),function generateNameForClassExpression(){return makeUniqueName2("class",isUniqueName,!1,!1,!1,"","")}();case 175:case 178:case 179:return function generateNameForMethodOrAccessor(e,t,n,r){return isIdentifier(e.name)?generateNameCached(e.name,t):makeTempVariableName(0,!1,t,n,r)}(e,t,r,i);case 168:return makeTempVariableName(0,!0,t,r,i);default:return makeTempVariableName(0,!1,t,r,i)}}function pipelineEmitWithComments(e,t){const n=getNextPipelinePhase(2,e,t),r=$,i=Q,o=X;emitCommentsBeforeNode(t),n(e,t),emitCommentsAfterNode(t,r,i,o)}function emitCommentsBeforeNode(e){const t=getEmitFlags(e),n=getCommentRange(e);!function emitLeadingCommentsOfNode(e,t,n,r){ee(),Y=!1;const i=n<0||!!(1024&t)||12===e.kind,o=r<0||!!(2048&t)||12===e.kind;(n>0||r>0)&&n!==r&&(i||emitLeadingComments(n,354!==e.kind),(!i||n>=0&&1024&t)&&($=n),(!o||r>=0&&2048&t)&&(Q=r,262===e.kind&&(X=r)));forEach(getSyntheticLeadingComments(e),emitLeadingSynthesizedComment),te()}(e,t,n.pos,n.end),4096&t&&(Z=!0)}function emitCommentsAfterNode(e,t,n,r){const i=getEmitFlags(e),o=getCommentRange(e);4096&i&&(Z=!1),emitTrailingCommentsOfNode(e,i,o.pos,o.end,t,n,r);const a=getTypeNode(e);a&&emitTrailingCommentsOfNode(e,i,a.pos,a.end,t,n,r)}function emitTrailingCommentsOfNode(e,t,n,r,i,o,a){ee();const s=r<0||!!(2048&t)||12===e.kind;forEach(getSyntheticTrailingComments(e),emitTrailingSynthesizedComment),(n>0||r>0)&&n!==r&&($=i,Q=o,X=a,s||354===e.kind||function emitTrailingComments(e){forEachTrailingCommentToEmit(e,emitTrailingComment)}(r)),te()}function emitLeadingSynthesizedComment(e){(e.hasLeadingNewline||2===e.kind)&&T.writeLine(),writeSynthesizedComment(e),e.hasTrailingNewLine||2===e.kind?T.writeLine():T.writeSpace(" ")}function emitTrailingSynthesizedComment(e){T.isAtStartOfLine()||T.writeSpace(" "),writeSynthesizedComment(e),e.hasTrailingNewLine&&T.writeLine()}function writeSynthesizedComment(e){const t=function formatSynthesizedComment(e){return 3===e.kind?`/*${e.text}*/`:`//${e.text}`}(e);writeCommentRange(t,3===e.kind?computeLineStarts(t):void 0,T,0,t.length,W)}function emitBodyWithDetachedComments(e,t,r){ee();const{pos:i,end:o}=t,a=getEmitFlags(e),s=Z||o<0||!!(2048&a);i<0||!!(1024&a)||function emitDetachedCommentsAndUpdateCommentsInfo(e){const t=n&&emitDetachedComments(n.text,getCurrentLineMap(),T,emitComment,e,W,Z);t&&(N?N.push(t):N=[t])}(t),te(),4096&a&&!Z?(Z=!0,r(e),Z=!1):r(e),ee(),s||(emitLeadingComments(t.end,!0),Y&&!T.isAtStartOfLine()&&T.writeLine()),te()}function emitLeadingComments(e,t){Y=!1,t?0===e&&(null==n?void 0:n.isDeclarationFile)?forEachLeadingCommentToEmit(e,emitNonTripleSlashLeadingComment):forEachLeadingCommentToEmit(e,emitLeadingComment):0===e&&forEachLeadingCommentToEmit(e,emitTripleSlashLeadingComment)}function emitTripleSlashLeadingComment(e,t,n,r,i){isTripleSlashComment(e,t)&&emitLeadingComment(e,t,n,r,i)}function emitNonTripleSlashLeadingComment(e,t,n,r,i){isTripleSlashComment(e,t)||emitLeadingComment(e,t,n,r,i)}function shouldWriteComment(t,n){return!e.onlyPrintJsDocStyle||(isJSDocLikeText(t,n)||isPinnedComment(t,n))}function emitLeadingComment(e,t,r,i,o){n&&shouldWriteComment(n.text,e)&&(Y||(emitNewLineBeforeLeadingCommentOfPosition(getCurrentLineMap(),T,o,e),Y=!0),emitPos(e),writeCommentRange(n.text,getCurrentLineMap(),T,e,t,W),emitPos(t),i?T.writeLine():3===r&&T.writeSpace(" "))}function emitLeadingCommentsOfPosition(e){Z||-1===e||emitLeadingComments(e,!0)}function emitTrailingComment(e,t,r,i){n&&shouldWriteComment(n.text,e)&&(T.isAtStartOfLine()||T.writeSpace(" "),emitPos(e),writeCommentRange(n.text,getCurrentLineMap(),T,e,t,W),emitPos(t),i&&T.writeLine())}function emitTrailingCommentsOfPosition(e,t,n){Z||(ee(),forEachTrailingCommentToEmit(e,t?emitTrailingComment:n?emitTrailingCommentOfPositionNoNewline:emitTrailingCommentOfPosition),te())}function emitTrailingCommentOfPositionNoNewline(e,t,r){n&&(emitPos(e),writeCommentRange(n.text,getCurrentLineMap(),T,e,t,W),emitPos(t),2===r&&T.writeLine())}function emitTrailingCommentOfPosition(e,t,r,i){n&&(emitPos(e),writeCommentRange(n.text,getCurrentLineMap(),T,e,t,W),emitPos(t),i?T.writeLine():T.writeSpace(" "))}function forEachLeadingCommentToEmit(e,t){!n||-1!==$&&e===$||(!function hasDetachedComments(e){return void 0!==N&&last(N).nodePos===e}(e)?forEachLeadingCommentRange(n.text,e,t,e):function forEachLeadingCommentWithoutDetachedComments(e){if(!n)return;const t=last(N).detachedCommentEndPos;N.length-1?N.pop():N=void 0;forEachLeadingCommentRange(n.text,t,e,t)}(t))}function forEachTrailingCommentToEmit(e,t){n&&(-1===Q||e!==Q&&e!==X)&&forEachTrailingCommentRange(n.text,e,t)}function emitComment(e,t,r,i,o,a){n&&shouldWriteComment(n.text,i)&&(emitPos(i),writeCommentRange(e,t,r,i,o,a),emitPos(o))}function isTripleSlashComment(e,t){return!!n&&isRecognizedTripleSlashComment(n.text,e,t)}function pipelineEmitWithSourceMaps(e,t){const n=getNextPipelinePhase(3,e,t);emitSourceMapsBeforeNode(t),n(e,t),emitSourceMapsAfterNode(t)}function emitSourceMapsBeforeNode(e){const t=getEmitFlags(e),n=getSourceMapRange(e),r=n.source||b;354!==e.kind&&!(32&t)&&n.pos>=0&&emitSourcePos(n.source||b,skipSourceTrivia(r,n.pos)),128&t&&(H=!0)}function emitSourceMapsAfterNode(e){const t=getEmitFlags(e),n=getSourceMapRange(e);128&t&&(H=!1),354!==e.kind&&!(64&t)&&n.end>=0&&emitSourcePos(n.source||b,n.end)}function skipSourceTrivia(e,t){return e.skipTrivia?e.skipTrivia(t):skipTrivia(e.text,t)}function emitPos(e){if(H||positionIsSynthesized(e)||isJsonSourceMapSource(b))return;const{line:t,character:n}=getLineAndCharacterOfPosition(b,e);v.addMapping(T.getLine(),T.getColumn(),K,t,n,void 0)}function emitSourcePos(e,t){if(e!==b){const n=b,r=K;setSourceMapSource(e),emitPos(t),function resetSourceMapSource(e,t){b=e,K=t}(n,r)}else emitPos(t)}function setSourceMapSource(t){H||(b=t,t!==C?isJsonSourceMapSource(t)||(K=v.addSource(t.fileName),e.inlineSources&&v.setSourceContent(K,t.text),C=t,G=K):K=G)}function isJsonSourceMapSource(e){return fileExtensionIs(e.fileName,".json")}}function emitListItemNoParenthesizer(e,t,n,r){t(e)}function emitListItemWithParenthesizerRuleSelector(e,t,n,r){t(e,n.select(r))}function emitListItemWithParenthesizerRule(e,t,n,r){t(e,n)}function createCachedDirectoryStructureHost(e,t,n){if(!e.getDirectories||!e.readDirectory)return;const r=new Map,i=createGetCanonicalFileName(n);return{useCaseSensitiveFileNames:n,fileExists:function fileExists(t){const n=getCachedFileSystemEntriesForBaseDir(toPath3(t));return n&&hasEntry(n.sortedAndCanonicalizedFiles,i(getBaseNameOfFileName(t)))||e.fileExists(t)},readFile:(t,n)=>e.readFile(t,n),directoryExists:e.directoryExists&&function directoryExists(t){const n=toPath3(t);return r.has(ensureTrailingDirectorySeparator(n))||e.directoryExists(t)},getDirectories:function getDirectories(t){const n=toPath3(t),r=tryReadDirectory2(t,n);if(r)return r.directories.slice();return e.getDirectories(t)},readDirectory:function readDirectory(r,i,o,a,s){const c=toPath3(r),d=tryReadDirectory2(r,c);let p;if(void 0!==d)return matchFiles(r,i,o,a,n,t,s,function getFileSystemEntries(e){const t=toPath3(e);if(t===c)return d||getFileSystemEntriesFromHost(e,t);const n=tryReadDirectory2(e,t);return void 0!==n?n||getFileSystemEntriesFromHost(e,t):Nr},realpath);return e.readDirectory(r,i,o,a,s);function getFileSystemEntriesFromHost(t,n){if(p&&n===c)return p;const r={files:map(e.readDirectory(t,void 0,void 0,["*.*"]),getBaseNameOfFileName)||l,directories:e.getDirectories(t)||l};return n===c&&(p=r),r}},createDirectory:e.createDirectory&&function createDirectory(t){const n=getCachedFileSystemEntriesForBaseDir(toPath3(t));if(n){const e=getBaseNameOfFileName(t),r=i(e);insertSorted(n.sortedAndCanonicalizedDirectories,r,compareStringsCaseSensitive)&&n.directories.push(e)}e.createDirectory(t)},writeFile:e.writeFile&&function writeFile2(t,n,r){const i=getCachedFileSystemEntriesForBaseDir(toPath3(t));i&&updateFilesOfFileSystemEntry(i,getBaseNameOfFileName(t),!0);return e.writeFile(t,n,r)},addOrDeleteFileOrDirectory:function addOrDeleteFileOrDirectory(t,n){if(void 0!==getCachedFileSystemEntries(n))return void clearCache();const r=getCachedFileSystemEntriesForBaseDir(n);if(!r)return void clearFirstAncestorEntry(n);if(!e.directoryExists)return void clearCache();const o=getBaseNameOfFileName(t),a={fileExists:e.fileExists(t),directoryExists:e.directoryExists(t)};a.directoryExists||hasEntry(r.sortedAndCanonicalizedDirectories,i(o))?clearCache():updateFilesOfFileSystemEntry(r,o,a.fileExists);return a},addOrDeleteFile:function addOrDeleteFile(e,t,n){if(1===n)return;const r=getCachedFileSystemEntriesForBaseDir(t);r?updateFilesOfFileSystemEntry(r,getBaseNameOfFileName(e),0===n):clearFirstAncestorEntry(t)},clearCache,realpath:e.realpath&&realpath};function toPath3(e){return toPath(e,t,i)}function getCachedFileSystemEntries(e){return r.get(ensureTrailingDirectorySeparator(e))}function getCachedFileSystemEntriesForBaseDir(e){const t=getCachedFileSystemEntries(getDirectoryPath(e));return t?(t.sortedAndCanonicalizedFiles||(t.sortedAndCanonicalizedFiles=t.files.map(i).sort(),t.sortedAndCanonicalizedDirectories=t.directories.map(i).sort()),t):t}function getBaseNameOfFileName(e){return getBaseFileName(normalizePath(e))}function tryReadDirectory2(t,n){const i=getCachedFileSystemEntries(n=ensureTrailingDirectorySeparator(n));if(i)return i;try{return function createCachedFileSystemEntries(t,n){var i;if(!e.realpath||ensureTrailingDirectorySeparator(toPath3(e.realpath(t)))===n){const i={files:map(e.readDirectory(t,void 0,void 0,["*.*"]),getBaseNameOfFileName)||[],directories:e.getDirectories(t)||[]};return r.set(ensureTrailingDirectorySeparator(n),i),i}if(null==(i=e.directoryExists)?void 0:i.call(e,t))return r.set(n,!1),!1}(t,n)}catch{return void h.assert(!r.has(ensureTrailingDirectorySeparator(n)))}}function hasEntry(e,t){return binarySearch(e,t,identity,compareStringsCaseSensitive)>=0}function realpath(t){return e.realpath?e.realpath(t):t}function clearFirstAncestorEntry(e){forEachAncestorDirectory(getDirectoryPath(e),e=>!!r.delete(ensureTrailingDirectorySeparator(e))||void 0)}function updateFilesOfFileSystemEntry(e,t,n){const r=e.sortedAndCanonicalizedFiles,o=i(t);if(n)insertSorted(r,o,compareStringsCaseSensitive)&&e.files.push(t);else{const t=binarySearch(r,o,identity,compareStringsCaseSensitive);if(t>=0){r.splice(t,1);const n=e.files.findIndex(e=>i(e)===o);e.files.splice(n,1)}}}function clearCache(){r.clear()}}var Da=(e=>(e[e.Update=0]="Update",e[e.RootNamesAndUpdate=1]="RootNamesAndUpdate",e[e.Full=2]="Full",e))(Da||{});function updateSharedExtendedConfigFileWatcher(e,t,n,r,i){var o;const a=arrayToMap((null==(o=null==t?void 0:t.configFile)?void 0:o.extendedSourceFiles)||l,i);n.forEach((t,n)=>{a.has(n)||(t.projects.delete(e),t.close())}),a.forEach((t,i)=>{const o=n.get(i);o?o.projects.add(e):n.set(i,{projects:new Set([e]),watcher:r(t,i),close:()=>{const e=n.get(i);e&&0===e.projects.size&&(e.watcher.close(),n.delete(i))}})})}function clearSharedExtendedConfigFileWatcher(e,t){t.forEach(t=>{t.projects.delete(e)&&t.close()})}function cleanExtendedConfigCache(e,t,n){e.delete(t)&&e.forEach(({extendedResult:r},i)=>{var o;(null==(o=r.extendedSourceFiles)?void 0:o.some(e=>n(e)===t))&&cleanExtendedConfigCache(e,i,n)})}function updateMissingFilePathsWatch(e,t,n){mutateMap(t,e.getMissingFilePaths(),{createNewValue:n,onDeleteValue:closeFileWatcher})}function updateWatchingWildcardDirectories(e,t,n){function createWildcardDirectoryWatcher(e,t){return{watcher:n(e,t),flags:t}}t?mutateMap(e,new Map(Object.entries(t)),{createNewValue:createWildcardDirectoryWatcher,onDeleteValue:closeFileWatcherOf,onExistingValue:function updateWildcardDirectoryWatcher(t,n,r){if(t.flags===n)return;t.watcher.close(),e.set(r,createWildcardDirectoryWatcher(r,n))}}):clearMap(e,closeFileWatcherOf)}function isIgnoredFileFromWildCardWatching({watchedDirPath:e,fileOrDirectory:t,fileOrDirectoryPath:n,configFileName:r,options:i,program:o,extraFileExtensions:a,currentDirectory:s,useCaseSensitiveFileNames:c,writeLog:l,toPath:d,getScriptKind:p}){const u=removeIgnoredPath(n);if(!u)return l(`Project: ${r} Detected ignored path: ${t}`),!0;if((n=u)===e)return!1;if(hasExtension(n)&&!isSupportedSourceFileName(t,i,a)&&!function isSupportedScriptKind(){if(!p)return!1;switch(p(t)){case 3:case 4:case 7:case 5:return!0;case 1:case 2:return rr(i);case 6:return Yn(i);case 0:return!1}}())return l(`Project: ${r} Detected file add/remove of non supported extension: ${t}`),!0;if(isExcludedFile(t,i.configFile.configFileSpecs,getNormalizedAbsolutePath(getDirectoryPath(r),s),c,s))return l(`Project: ${r} Detected excluded file: ${t}`),!0;if(!o)return!1;if(i.outFile||i.outDir)return!1;if(isDeclarationFileName(n)){if(i.declarationDir)return!1}else if(!fileExtensionIsOneOf(n,yr))return!1;const m=removeFileExtension(n),_=isArray(o)?void 0:isBuilderProgram(o)?o.getProgramOrUndefined():o,f=_||isArray(o)?void 0:o;return!(!hasSourceFile(m+".ts")&&!hasSourceFile(m+".tsx"))&&(l(`Project: ${r} Detected output file: ${t}`),!0);function hasSourceFile(e){return _?!!_.getSourceFileByPath(e):f?f.state.fileInfos.has(e):!!find(o,t=>d(t)===e)}}function isEmittedFileOfProgram(e,t){return!!e&&e.isEmittedFile(t)}var Ia=(e=>(e[e.None=0]="None",e[e.TriggerOnly=1]="TriggerOnly",e[e.Verbose=2]="Verbose",e))(Ia||{});function getWatchFactory(e,t,n,r){setSysLog(2===t?n:noop);const i={watchFile:(t,n,r,i)=>e.watchFile(t,n,r,i),watchDirectory:(t,n,r,i)=>e.watchDirectory(t,n,!!(1&r),i)},o=0!==t?{watchFile:createTriggerLoggingAddWatch("watchFile"),watchDirectory:createTriggerLoggingAddWatch("watchDirectory")}:void 0,a=2===t?{watchFile:function createFileWatcherWithLogging(e,t,i,a,s,c){n(`FileWatcher:: Added:: ${getWatchInfo(e,i,a,s,c,r)}`);const l=o.watchFile(e,t,i,a,s,c);return{close:()=>{n(`FileWatcher:: Close:: ${getWatchInfo(e,i,a,s,c,r)}`),l.close()}}},watchDirectory:function createDirectoryWatcherWithLogging(e,t,i,a,s,c){const l=`DirectoryWatcher:: Added:: ${getWatchInfo(e,i,a,s,c,r)}`;n(l);const d=B(),p=o.watchDirectory(e,t,i,a,s,c),u=B()-d;return n(`Elapsed:: ${u}ms ${l}`),{close:()=>{const t=`DirectoryWatcher:: Close:: ${getWatchInfo(e,i,a,s,c,r)}`;n(t);const o=B();p.close();const l=B()-o;n(`Elapsed:: ${l}ms ${t}`)}}}}:o||i,s=2===t?function createExcludeWatcherWithLogging(e,t,i,o,a){return n(`ExcludeWatcher:: Added:: ${getWatchInfo(e,t,i,o,a,r)}`),{close:()=>n(`ExcludeWatcher:: Close:: ${getWatchInfo(e,t,i,o,a,r)}`)}}:returnNoopFileWatcher;return{watchFile:createExcludeHandlingAddWatch("watchFile"),watchDirectory:createExcludeHandlingAddWatch("watchDirectory")};function createExcludeHandlingAddWatch(t){return(n,r,i,o,c,l)=>{var d;return matchesExclude(n,"watchFile"===t?null==o?void 0:o.excludeFiles:null==o?void 0:o.excludeDirectories,function useCaseSensitiveFileNames2(){return"boolean"==typeof e.useCaseSensitiveFileNames?e.useCaseSensitiveFileNames:e.useCaseSensitiveFileNames()}(),(null==(d=e.getCurrentDirectory)?void 0:d.call(e))||"")?s(n,i,o,c,l):a[t].call(void 0,n,r,i,o,c,l)}}function createTriggerLoggingAddWatch(e){return(t,o,a,s,c,l)=>i[e].call(void 0,t,(...i)=>{const d=`${"watchFile"===e?"FileWatcher":"DirectoryWatcher"}:: Triggered with ${i[0]} ${void 0!==i[1]?i[1]:""}:: ${getWatchInfo(t,a,s,c,l,r)}`;n(d);const p=B();o.call(void 0,...i);const u=B()-p;n(`Elapsed:: ${u}ms ${d}`)},a,s,c,l)}function getWatchInfo(e,t,n,r,i,o){return`WatchInfo: ${e} ${t} ${JSON.stringify(n)} ${o?o(r,i):void 0===i?r:`${r} ${i}`}`}}function getFallbackOptions(e){const t=null==e?void 0:e.fallbackPolling;return{watchFile:void 0!==t?t:1}}function closeFileWatcherOf(e){e.watcher.close()}function findConfigFile(e,t,n="tsconfig.json"){return forEachAncestorDirectory(e,e=>{const r=combinePaths(e,n);return t(r)?r:void 0})}function resolveTripleslashReference(e,t){const n=getDirectoryPath(t);return normalizePath(isRootedDiskPath(e)?e:combinePaths(n,e))}function computeCommonSourceDirectoryOfFilenames(e,t,n){let r;return forEach(e,e=>{const i=getNormalizedPathComponents(e,t);if(i.pop(),!r)return void(r=i);const o=Math.min(r.length,i.length);for(let e=0;e{let o;try{mark("beforeIORead"),o=e(n),mark("afterIORead"),measure("I/O Read","beforeIORead","afterIORead")}catch(e){i&&i(e.message),o=""}return void 0!==o?createSourceFile(n,o,r,t):void 0}}function createWriteFileMeasuringIO(e,t,n){return(r,i,o,a)=>{try{mark("beforeIOWrite"),writeFileEnsuringDirectories(r,i,o,e,t,n),mark("afterIOWrite"),measure("I/O Write","beforeIOWrite","afterIOWrite")}catch(e){a&&a(e.message)}}}function createCompilerHostWorker(e,t,n=kt){const r=new Map,i=createGetCanonicalFileName(n.useCaseSensitiveFileNames);function getDefaultLibLocation(){return getDirectoryPath(normalizePath(n.getExecutingFilePath()))}const o=getNewLineCharacter(e),a=n.realpath&&(e=>n.realpath(e)),s={getSourceFile:createGetSourceFile(e=>s.readFile(e),t),getDefaultLibLocation,getDefaultLibFileName:e=>combinePaths(getDefaultLibLocation(),getDefaultLibFileName(e)),writeFile:createWriteFileMeasuringIO((e,t,r)=>n.writeFile(e,t,r),e=>(s.createDirectory||n.createDirectory)(e),e=>function directoryExists(e){return!!r.has(e)||!!(s.directoryExists||n.directoryExists)(e)&&(r.set(e,!0),!0)}(e)),getCurrentDirectory:memoize(()=>n.getCurrentDirectory()),useCaseSensitiveFileNames:()=>n.useCaseSensitiveFileNames,getCanonicalFileName:i,getNewLine:()=>o,fileExists:e=>n.fileExists(e),readFile:e=>n.readFile(e),trace:e=>n.write(e+o),directoryExists:e=>n.directoryExists(e),getEnvironmentVariable:e=>n.getEnvironmentVariable?n.getEnvironmentVariable(e):"",getDirectories:e=>n.getDirectories(e),realpath:a,readDirectory:(e,t,r,i,o)=>n.readDirectory(e,t,r,i,o),createDirectory:e=>n.createDirectory(e),createHash:maybeBind(n,n.createHash)};return s}function changeCompilerHostLikeToUseCache(e,t,n){const r=e.readFile,i=e.fileExists,o=e.directoryExists,a=e.createDirectory,s=e.writeFile,c=new Map,l=new Map,d=new Map,p=new Map,setReadFileCache=(t,n)=>{const i=r.call(e,n);return c.set(t,void 0!==i&&i),i};e.readFile=n=>{const i=t(n),o=c.get(i);return void 0!==o?!1!==o?o:void 0:fileExtensionIs(n,".json")||isBuildInfoFile(n)?setReadFileCache(i,n):r.call(e,n)};const u=n?(e,r,i,o)=>{const a=t(e),s="object"==typeof r?r.impliedNodeFormat:void 0,c=p.get(s),l=null==c?void 0:c.get(a);if(l)return l;const d=n(e,r,i,o);return d&&(isDeclarationFileName(e)||fileExtensionIs(e,".json"))&&p.set(s,(c||new Map).set(a,d)),d}:void 0;return e.fileExists=n=>{const r=t(n),o=l.get(r);if(void 0!==o)return o;const a=i.call(e,n);return l.set(r,!!a),a},s&&(e.writeFile=(n,r,...i)=>{const o=t(n);l.delete(o);const a=c.get(o);void 0!==a&&a!==r?(c.delete(o),p.forEach(e=>e.delete(o))):u&&p.forEach(e=>{const t=e.get(o);t&&t.text!==r&&e.delete(o)}),s.call(e,n,r,...i)}),o&&(e.directoryExists=n=>{const r=t(n),i=d.get(r);if(void 0!==i)return i;const a=o.call(e,n);return d.set(r,!!a),a},a&&(e.createDirectory=n=>{const r=t(n);d.delete(r),a.call(e,n)})),{originalReadFile:r,originalFileExists:i,originalDirectoryExists:o,originalCreateDirectory:a,originalWriteFile:s,getSourceFileWithCache:u,readFileWithCache:e=>{const n=t(e),r=c.get(n);return void 0!==r?!1!==r?r:void 0:setReadFileCache(n,e)}}}function getPreEmitDiagnostics(e,t,n){let r;return r=addRange(r,e.getConfigFileParsingDiagnostics()),r=addRange(r,e.getOptionsDiagnostics(n)),r=addRange(r,e.getSyntacticDiagnostics(t,n)),r=addRange(r,e.getGlobalDiagnostics(n)),r=addRange(r,e.getSemanticDiagnostics(t,n)),Zn(e.getCompilerOptions())&&(r=addRange(r,e.getDeclarationDiagnostics(t,n))),sortAndDeduplicateDiagnostics(r||l)}function formatDiagnostics(e,t){let n="";for(const r of e)n+=formatDiagnostic(r,t);return n}function formatDiagnostic(e,t){const n=`${diagnosticCategoryName(e)} TS${e.code}: ${flattenDiagnosticMessageText(e.messageText,t.getNewLine())}${t.getNewLine()}`;if(e.file){const{line:r,character:i}=getLineAndCharacterOfPosition(e.file,e.start);return`${convertToRelativePath(e.file.fileName,t.getCurrentDirectory(),e=>t.getCanonicalFileName(e))}(${r+1},${i+1}): `+n}return n}var Aa=(e=>(e.Grey="",e.Red="",e.Yellow="",e.Blue="",e.Cyan="",e))(Aa||{}),Oa="",wa=" ",La="",Ma="...",Ra=" ",Ba=" ";function getCategoryFormat(e){switch(e){case 1:return"";case 0:return"";case 2:return h.fail("Should never get an Info diagnostic on the command line.");case 3:return""}}function formatColorAndReset(e,t){return t+e+La}function formatCodeSpan(e,t,n,r,i,o){const{line:a,character:s}=getLineAndCharacterOfPosition(e,t),{line:c,character:l}=getLineAndCharacterOfPosition(e,t+n),d=getLineAndCharacterOfPosition(e,e.text.length).line,p=c-a>=4;let u=(c+1+"").length;p&&(u=Math.max(Ma.length,u));let m="";for(let t=a;t<=c;t++){m+=o.getNewLine(),p&&a+1n.getCanonicalFileName(e)):e.fileName,""),a+=":",a+=r(`${i+1}`,""),a+=":",a+=r(`${o+1}`,""),a}function formatDiagnosticsWithColorAndContext(e,t){let n="";for(const r of e){if(r.file){const{file:e,start:i}=r;n+=formatLocation(e,i,t),n+=" - "}if(n+=formatColorAndReset(diagnosticCategoryName(r),getCategoryFormat(r.category)),n+=formatColorAndReset(` TS${r.code}: `,""),n+=flattenDiagnosticMessageText(r.messageText,t.getNewLine()),r.file&&r.code!==Ot.File_appears_to_be_binary.code&&(n+=t.getNewLine(),n+=formatCodeSpan(r.file,r.start,r.length,"",getCategoryFormat(r.category),t)),r.relatedInformation){n+=t.getNewLine();for(const{file:e,start:i,length:o,messageText:a}of r.relatedInformation)e&&(n+=t.getNewLine(),n+=Ra+formatLocation(e,i,t),n+=formatCodeSpan(e,i,o,Ba,"",t)),n+=t.getNewLine(),n+=Ba+flattenDiagnosticMessageText(a,t.getNewLine())}n+=t.getNewLine()}return n}function flattenDiagnosticMessageText(e,t,n=0){if(isString(e))return e;if(void 0===e)return"";let r="";if(n){r+=t;for(let e=0;egetModeForUsageLocation(t,e,n)};function createModuleResolutionLoader(e,t,n,r,i){return{nameAndMode:Ja,resolve:(o,a)=>resolveModuleName(o,e,n,r,i,t,a)}}function getTypeReferenceResolutionName(e){return isString(e)?e:e.fileName}var Wa={getName:getTypeReferenceResolutionName,getMode:(e,t,n)=>getModeForFileReference(e,t&&getDefaultResolutionModeForFileWorker(t,n))};function createTypeReferenceResolutionLoader(e,t,n,r,i){return{nameAndMode:Wa,resolve:(o,a)=>resolveTypeReferenceDirective(o,e,n,r,t,i,a)}}function loadWithModeAwareCache(e,t,n,r,i,o,a,s){if(0===e.length)return l;const c=[],d=new Map,p=s(t,n,r,o,a);for(const t of e){const e=p.nameAndMode.getName(t),o=p.nameAndMode.getMode(t,i,(null==n?void 0:n.commandLine.options)||r),a=createModeAwareCacheKey(e,o);let s=d.get(a);s||d.set(a,s=p.resolve(e,o)),c.push(s)}return c}var Ua="__inferred type names__.ts";function getInferredLibraryNameResolveFrom(e,t,n){return combinePaths(e.configFilePath?getDirectoryPath(e.configFilePath):t,`__lib_node_modules_lookup_${n}__.ts`)}function getLibraryNameFromLibFileName(e){const t=e.split(".");let n=t[1],r=2;for(;t[r]&&"d"!==t[r];)n+=(2===r?"/":"-")+t[r],r++;return"@typescript/lib-"+n}function isReferencedFile(e){switch(null==e?void 0:e.kind){case 3:case 4:case 5:case 7:return!0;default:return!1}}function isReferenceFileLocation(e){return void 0!==e.pos}function getReferencedFileLocation(e,t){var n,r,i,o;const a=h.checkDefined(e.getSourceFileByPath(t.file)),{kind:s,index:c}=t;let l,d,p;switch(s){case 3:const t=getModuleNameStringLiteralAt(a,c);if(p=null==(r=null==(n=e.getResolvedModuleFromModuleSpecifier(t,a))?void 0:n.resolvedModule)?void 0:r.packageId,-1===t.pos)return{file:a,packageId:p,text:t.text};l=skipTrivia(a.text,t.pos),d=t.end;break;case 4:({pos:l,end:d}=a.referencedFiles[c]);break;case 5:({pos:l,end:d}=a.typeReferenceDirectives[c]),p=null==(o=null==(i=e.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(a.typeReferenceDirectives[c],a))?void 0:i.resolvedTypeReferenceDirective)?void 0:o.packageId;break;case 7:({pos:l,end:d}=a.libReferenceDirectives[c]);break;default:return h.assertNever(s)}return{file:a,pos:l,end:d,packageId:p}}function isProgramUptoDate(e,t,n,r,i,o,a,s,c,l){if(!e||(null==s?void 0:s()))return!1;if(!arrayIsEqualTo(e.getRootFileNames(),t))return!1;let d;if(!arrayIsEqualTo(e.getProjectReferences(),l,function projectReferenceUptoDate(t,n,r){return projectReferenceIsEqualTo(t,n)&&resolvedProjectReferenceUptoDate(e.getResolvedProjectReferences()[r],t)}))return!1;if(e.getSourceFiles().some(function sourceFileNotUptoDate(e){return!function sourceFileVersionUptoDate(e){return e.version===r(e.resolvedPath,e.fileName)}(e)||o(e.path)}))return!1;const p=e.getMissingFilePaths();if(p&&forEachEntry(p,i))return!1;const u=e.getCompilerOptions();return!!compareDataObjects(u,n)&&((!e.resolvedLibReferences||!forEachEntry(e.resolvedLibReferences,(e,t)=>a(t)))&&(!u.configFile||!n.configFile||u.configFile.text===n.configFile.text));function resolvedProjectReferenceUptoDate(e,t){if(e){if(contains(d,e))return!0;const n=resolveProjectReferencePath(t),r=c(n);return!!r&&(e.commandLine.options.configFile===r.options.configFile&&(!!arrayIsEqualTo(e.commandLine.fileNames,r.fileNames)&&((d||(d=[])).push(e),!forEach(e.references,(t,n)=>!resolvedProjectReferenceUptoDate(t,e.commandLine.projectReferences[n])))))}const n=resolveProjectReferencePath(t);return!c(n)}}function getConfigFileParsingDiagnostics(e){return e.options.configFile?[...e.options.configFile.parseDiagnostics,...e.errors]:e.errors}function getImpliedNodeFormatForFile(e,t,n,r){const i=getImpliedNodeFormatForFileWorker(e,t,n,r);return"object"==typeof i?i.impliedNodeFormat:i}function getImpliedNodeFormatForFileWorker(e,t,n,r){const i=qn(r),o=3<=i&&i<=99||pathContainsNodeModules(e);return fileExtensionIsOneOf(e,[".d.mts",".mts",".mjs"])?99:fileExtensionIsOneOf(e,[".d.cts",".cts",".cjs"])?1:o&&fileExtensionIsOneOf(e,[".d.ts",".ts",".tsx",".js",".jsx"])?function lookupFromPackageJson(){const i=getTemporaryModuleResolutionState(t,n,r),o=[];i.failedLookupLocations=o,i.affectingLocations=o;const a=getPackageScopeForPath(getDirectoryPath(e),i);return{impliedNodeFormat:"module"===(null==a?void 0:a.contents.packageJsonContent.type)?99:1,packageJsonLocations:o,packageJsonScope:a}}():void 0}var za=new Set([Ot.Cannot_redeclare_block_scoped_variable_0.code,Ot.A_module_cannot_have_multiple_default_exports.code,Ot.Another_export_default_is_here.code,Ot.The_first_export_default_is_here.code,Ot.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code,Ot.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code,Ot.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code,Ot.constructor_is_a_reserved_word.code,Ot.delete_cannot_be_called_on_an_identifier_in_strict_mode.code,Ot.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code,Ot.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code,Ot.Invalid_use_of_0_in_strict_mode.code,Ot.A_label_is_not_allowed_here.code,Ot.with_statements_are_not_allowed_in_strict_mode.code,Ot.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code,Ot.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code,Ot.A_class_declaration_without_the_default_modifier_must_have_a_name.code,Ot.A_class_member_cannot_have_the_0_keyword.code,Ot.A_comma_expression_is_not_allowed_in_a_computed_property_name.code,Ot.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code,Ot.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,Ot.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,Ot.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code,Ot.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code,Ot.A_definite_assignment_assertion_is_not_permitted_in_this_context.code,Ot.A_destructuring_declaration_must_have_an_initializer.code,Ot.A_get_accessor_cannot_have_parameters.code,Ot.A_rest_element_cannot_contain_a_binding_pattern.code,Ot.A_rest_element_cannot_have_a_property_name.code,Ot.A_rest_element_cannot_have_an_initializer.code,Ot.A_rest_element_must_be_last_in_a_destructuring_pattern.code,Ot.A_rest_parameter_cannot_have_an_initializer.code,Ot.A_rest_parameter_must_be_last_in_a_parameter_list.code,Ot.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code,Ot.A_return_statement_cannot_be_used_inside_a_class_static_block.code,Ot.A_set_accessor_cannot_have_rest_parameter.code,Ot.A_set_accessor_must_have_exactly_one_parameter.code,Ot.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code,Ot.An_export_declaration_cannot_have_modifiers.code,Ot.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code,Ot.An_import_declaration_cannot_have_modifiers.code,Ot.An_object_member_cannot_be_declared_optional.code,Ot.Argument_of_dynamic_import_cannot_be_spread_element.code,Ot.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code,Ot.Cannot_redeclare_identifier_0_in_catch_clause.code,Ot.Catch_clause_variable_cannot_have_an_initializer.code,Ot.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code,Ot.Classes_can_only_extend_a_single_class.code,Ot.Classes_may_not_have_a_field_named_constructor.code,Ot.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code,Ot.Duplicate_label_0.code,Ot.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments.code,Ot.for_await_loops_cannot_be_used_inside_a_class_static_block.code,Ot.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code,Ot.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code,Ot.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code,Ot.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code,Ot.Jump_target_cannot_cross_function_boundary.code,Ot.Line_terminator_not_permitted_before_arrow.code,Ot.Modifiers_cannot_appear_here.code,Ot.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code,Ot.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code,Ot.Private_identifiers_are_not_allowed_outside_class_bodies.code,Ot.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,Ot.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code,Ot.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code,Ot.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code,Ot.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code,Ot.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code,Ot.Trailing_comma_not_allowed.code,Ot.Variable_declaration_list_cannot_be_empty.code,Ot._0_and_1_operations_cannot_be_mixed_without_parentheses.code,Ot._0_expected.code,Ot._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code,Ot._0_list_cannot_be_empty.code,Ot._0_modifier_already_seen.code,Ot._0_modifier_cannot_appear_on_a_constructor_declaration.code,Ot._0_modifier_cannot_appear_on_a_module_or_namespace_element.code,Ot._0_modifier_cannot_appear_on_a_parameter.code,Ot._0_modifier_cannot_appear_on_class_elements_of_this_kind.code,Ot._0_modifier_cannot_be_used_here.code,Ot._0_modifier_must_precede_1_modifier.code,Ot._0_declarations_can_only_be_declared_inside_a_block.code,Ot._0_declarations_must_be_initialized.code,Ot.extends_clause_already_seen.code,Ot.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code,Ot.Class_constructor_may_not_be_a_generator.code,Ot.Class_constructor_may_not_be_an_accessor.code,Ot.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,Ot.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,Ot.Private_field_0_must_be_declared_in_an_enclosing_class.code,Ot.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value.code]);function createProgram(e,t,n,r,i){var o,s,c,d,p,u,m,_,f,g,y,T,S,x,v,b;let C=isArray(e)?function createCreateProgramOptions(e,t,n,r,i,o){return{rootNames:e,options:t,host:n,oldProgram:r,configFileParsingDiagnostics:i,typeScriptVersion:o}}(e,t,n,r,i):e;const{rootNames:E,options:N,configFileParsingDiagnostics:F,projectReferences:P,typeScriptVersion:D,host:I}=C;let{oldProgram:A}=C;C=void 0,e=void 0;for(const e of ao)if(hasProperty(N,e.name)&&"string"==typeof N[e.name])throw new Error(`${e.name} is a string value; tsconfig JSON must be parsed with parseJsonSourceFileConfigFileContent or getParsedCommandLineOfConfigFile before passing to createProgram`);const O=memoize(()=>createOptionValueDiagnostic("ignoreDeprecations",Ot.Invalid_value_for_ignoreDeprecations));let w,L,M,R,B,j,W,U,z;const V=createProgramDiagnostics(getCompilerOptionsObjectLiteralSyntax);let q,H,K,G,$,Q,X,Y,Z;const ee="number"==typeof N.maxNodeModuleJsDepth?N.maxNodeModuleJsDepth:0;let te=0;const ne=new Map,re=new Map;null==(o=J)||o.push(J.Phase.Program,"createProgram",{configFilePath:N.configFilePath,rootDir:N.rootDir},!0),mark("beforeProgram");const ie=I||createCompilerHost(N),oe=parseConfigHostFromCompilerHostLike(ie);let ae=N.noLib;const le=memoize(()=>ie.getDefaultLibFileName(N)),de=ie.getDefaultLibLocation?ie.getDefaultLibLocation():getDirectoryPath(le());let pe=!1;const ue=ie.getCurrentDirectory(),me=getSupportedExtensions(N),_e=getSupportedExtensionsWithJsonIfResolveJsonModule(N,me),fe=new Map;let ge,ye,he,Te;const Se=ie.hasInvalidatedResolutions||returnFalse;let xe;if(ie.resolveModuleNameLiterals?(Te=ie.resolveModuleNameLiterals.bind(ie),he=null==(s=ie.getModuleResolutionCache)?void 0:s.call(ie)):ie.resolveModuleNames?(Te=(e,t,n,r,i,o)=>ie.resolveModuleNames(e.map(getModuleResolutionName),t,null==o?void 0:o.map(getModuleResolutionName),n,r,i).map(e=>e?void 0!==e.extension?{resolvedModule:e}:{resolvedModule:{...e,extension:extensionFromPath(e.resolvedFileName)}}:ja),he=null==(c=ie.getModuleResolutionCache)?void 0:c.call(ie)):(he=createModuleResolutionCache(ue,getCanonicalFileName,N),Te=(e,t,n,r,i)=>loadWithModeAwareCache(e,t,n,r,i,ie,he,createModuleResolutionLoader)),ie.resolveTypeReferenceDirectiveReferences)xe=ie.resolveTypeReferenceDirectiveReferences.bind(ie);else if(ie.resolveTypeReferenceDirectives)xe=(e,t,n,r,i)=>ie.resolveTypeReferenceDirectives(e.map(getTypeReferenceResolutionName),t,n,r,null==i?void 0:i.impliedNodeFormat).map(e=>({resolvedTypeReferenceDirective:e}));else{const e=createTypeReferenceDirectiveResolutionCache(ue,getCanonicalFileName,void 0,null==he?void 0:he.getPackageJsonInfoCache(),null==he?void 0:he.optionsToRedirectsKey);xe=(t,n,r,i,o)=>loadWithModeAwareCache(t,n,r,i,o,ie,e,createTypeReferenceResolutionLoader)}const ve=ie.hasInvalidatedLibResolutions||returnFalse;let be;if(ie.resolveLibrary)be=ie.resolveLibrary.bind(ie);else{const e=createModuleResolutionCache(ue,getCanonicalFileName,N,null==he?void 0:he.getPackageJsonInfoCache());be=(t,n,r)=>resolveLibrary(t,n,r,ie,e)}const Ce=new Map;let Ee,Ne=new Map,ke=createMultiMap();const Fe=new Map;let Pe=new Map;const De=ie.useCaseSensitiveFileNames()?new Map:void 0;let Ie,Ae,Oe,we;const Le=!!(null==(d=ie.useSourceOfProjectReferenceRedirect)?void 0:d.call(ie))&&!N.disableSourceOfProjectReferenceRedirect,{onProgramCreateComplete:Me,fileExists:Re,directoryExists:Be}=function updateHostForUseSourceOfProjectReferenceRedirect(e){let t;const n=e.compilerHost.fileExists,r=e.compilerHost.directoryExists,i=e.compilerHost.getDirectories,o=e.compilerHost.realpath;if(!e.useSourceOfProjectReferenceRedirect)return{onProgramCreateComplete:noop,fileExists};let a;e.compilerHost.fileExists=fileExists,r&&(a=e.compilerHost.directoryExists=n=>r.call(e.compilerHost,n)?(handleDirectoryCouldBeSymlink(n),!0):!!e.getResolvedProjectReferences()&&(t||(t=new Set,e.forEachResolvedProjectReference(n=>{const r=n.commandLine.options.outFile;if(r)t.add(getDirectoryPath(e.toPath(r)));else{const r=n.commandLine.options.declarationDir||n.commandLine.options.outDir;r&&t.add(e.toPath(r))}})),fileOrDirectoryExistsUsingSource(n,!1)));i&&(e.compilerHost.getDirectories=t=>!e.getResolvedProjectReferences()||r&&r.call(e.compilerHost,t)?i.call(e.compilerHost,t):[]);o&&(e.compilerHost.realpath=t=>{var n;return(null==(n=e.getSymlinkCache().getSymlinkedFiles())?void 0:n.get(e.toPath(t)))||o.call(e.compilerHost,t)});return{onProgramCreateComplete,fileExists,directoryExists:a};function onProgramCreateComplete(){e.compilerHost.fileExists=n,e.compilerHost.directoryExists=r,e.compilerHost.getDirectories=i}function fileExists(t){return!!n.call(e.compilerHost,t)||!!e.getResolvedProjectReferences()&&(!!isDeclarationFileName(t)&&fileOrDirectoryExistsUsingSource(t,!0))}function fileExistsIfProjectReferenceDts(t){const r=e.getRedirectFromOutput(e.toPath(t));return void 0!==r?!isString(r.source)||n.call(e.compilerHost,r.source):void 0}function directoryExistsIfProjectReferenceDeclDir(n){const r=e.toPath(n),i=`${r}${Ft}`;return forEachKey(t,e=>r===e||startsWith(e,i)||startsWith(r,`${e}/`))}function handleDirectoryCouldBeSymlink(t){var n;if(!e.getResolvedProjectReferences()||containsIgnoredPath(t))return;if(!o||!t.includes(Mo))return;const r=e.getSymlinkCache(),i=ensureTrailingDirectorySeparator(e.toPath(t));if(null==(n=r.getSymlinkedDirectories())?void 0:n.has(i))return;const a=normalizePath(o.call(e.compilerHost,t));let s;a!==t&&(s=ensureTrailingDirectorySeparator(e.toPath(a)))!==i?r.setSymlinkedDirectory(t,{real:ensureTrailingDirectorySeparator(a),realPath:s}):r.setSymlinkedDirectory(i,!1)}function fileOrDirectoryExistsUsingSource(t,n){var r;const i=n?fileExistsIfProjectReferenceDts:directoryExistsIfProjectReferenceDeclDir,o=i(t);if(void 0!==o)return o;const a=e.getSymlinkCache(),s=a.getSymlinkedDirectories();if(!s)return!1;const c=e.toPath(t);return!!c.includes(Mo)&&(!(!n||!(null==(r=a.getSymlinkedFiles())?void 0:r.has(c)))||(firstDefinedIterator(s.entries(),([r,o])=>{if(!o||!startsWith(c,r))return;const s=i(c.replace(r,o.realPath));if(n&&s){const n=getNormalizedAbsolutePath(t,e.compilerHost.getCurrentDirectory());a.setSymlinkedFile(c,`${o.real}${n.replace(new RegExp(r,"i"),"")}`)}return s})||!1))}}({compilerHost:ie,getSymlinkCache,useSourceOfProjectReferenceRedirect:Le,toPath:toPath3,getResolvedProjectReferences,getRedirectFromOutput,forEachResolvedProjectReference:forEachResolvedProjectReference2}),je=ie.readFile.bind(ie);null==(p=J)||p.push(J.Phase.Program,"shouldProgramCreateNewSourceFiles",{hasOldProgram:!!A});const Je=function shouldProgramCreateNewSourceFiles(e,t){return!!e&&optionsHaveChanges(e.getCompilerOptions(),t,to)}(A,N);let We;if(null==(u=J)||u.pop(),null==(m=J)||m.push(J.Phase.Program,"tryReuseStructureFromOldProgram",{}),We=function tryReuseStructureFromOldProgram(){var e;if(!A)return 0;const t=A.getCompilerOptions();if(changesAffectModuleResolution(t,N))return 0;if(!arrayIsEqualTo(A.getRootFileNames(),E))return 0;if(!function canReuseProjectReferences(){return!forEachProjectReference(A.getProjectReferences(),A.getResolvedProjectReferences(),(e,t,n)=>{const r=parseProjectReferenceConfigFile((t?t.commandLine.projectReferences:P)[n]);return e?!r||r.sourceFile!==e.sourceFile||!arrayIsEqualTo(e.commandLine.fileNames,r.commandLine.fileNames):void 0!==r},(e,t)=>!arrayIsEqualTo(e,t?getResolvedProjectReferenceByPath(t.sourceFile.path).commandLine.projectReferences:P,projectReferenceIsEqualTo))}())return 0;P&&(Ie=P.map(parseProjectReferenceConfigFile));const n=[],r=[];if(We=2,forEachEntry(A.getMissingFilePaths(),e=>ie.fileExists(e)))return 0;const i=A.getSourceFiles();let o;a=o||(o={}),a[a.Exists=0]="Exists",a[a.Modified=1]="Modified";var a;const s=new Map;for(const t of i){const i=getCreateSourceFileOptions(t.fileName,he,ie,N);let o,a=ie.getSourceFileByPath?ie.getSourceFileByPath(t.fileName,t.resolvedPath,i,void 0,Je):ie.getSourceFile(t.fileName,i,void 0,Je);if(!a)return 0;if(a.packageJsonLocations=(null==(e=i.packageJsonLocations)?void 0:e.length)?i.packageJsonLocations:void 0,a.packageJsonScope=i.packageJsonScope,h.assert(!a.redirectInfo,"Host should not return a redirect source file from `getSourceFile`"),t.redirectInfo){if(a!==t.redirectInfo.unredirected)return 0;o=!1,a=t}else if(A.redirectTargetsMap.has(t.path)){if(a!==t)return 0;o=!1}else o=a!==t;a.path=t.path,a.originalFileName=t.originalFileName,a.resolvedPath=t.resolvedPath,a.fileName=t.fileName;const c=A.sourceFileToPackageName.get(t.path);if(void 0!==c){const e=s.get(c),t=o?1:0;if(void 0!==e&&1===t||1===e)return 0;s.set(c,t)}o?(t.impliedNodeFormat!==a.impliedNodeFormat?We=1:arrayIsEqualTo(t.libReferenceDirectives,a.libReferenceDirectives,fileReferenceIsEqualTo)?t.hasNoDefaultLib!==a.hasNoDefaultLib?We=1:arrayIsEqualTo(t.referencedFiles,a.referencedFiles,fileReferenceIsEqualTo)?(collectExternalModuleReferences(a),arrayIsEqualTo(t.imports,a.imports,moduleNameIsEqualTo)&&arrayIsEqualTo(t.moduleAugmentations,a.moduleAugmentations,moduleNameIsEqualTo)?(12582912&t.flags)!=(12582912&a.flags)?We=1:arrayIsEqualTo(t.typeReferenceDirectives,a.typeReferenceDirectives,fileReferenceIsEqualTo)||(We=1):We=1):We=1:We=1,r.push(a)):Se(t.path)&&(We=1,r.push(a)),n.push(a)}if(2!==We)return We;for(const e of r){const t=getModuleNames(e),n=resolveModuleNamesReusingOldState(t,e);(Q??(Q=new Map)).set(e.path,n);const r=getCompilerOptionsForFile(e);hasChangesInResolutions(t,n,t=>A.getResolvedModule(e,t.text,getModeForUsageLocationWorker(e,t,r)),moduleResolutionIsEqualTo)&&(We=1);const i=e.typeReferenceDirectives,o=resolveTypeReferenceDirectiveNamesReusingOldState(i,e);(Y??(Y=new Map)).set(e.path,o);hasChangesInResolutions(i,o,t=>A.getResolvedTypeReferenceDirective(e,getTypeReferenceResolutionName(t),getModeForTypeReferenceDirectiveInFile(t,e)),typeDirectiveIsEqualTo)&&(We=1)}if(2!==We)return We;if(changesAffectingProgramStructure(t,N))return 1;if(A.resolvedLibReferences&&forEachEntry(A.resolvedLibReferences,(e,t)=>pathForLibFileWorker(t).actual!==e.actual))return 1;if(ie.hasChangedAutomaticTypeDirectiveNames){if(ie.hasChangedAutomaticTypeDirectiveNames())return 1}else if(q=getAutomaticTypeDirectiveNames(N,ie),!arrayIsEqualTo(A.getAutomaticTypeDirectiveNames(),q))return 1;Pe=A.getMissingFilePaths(),h.assert(n.length===A.getSourceFiles().length);for(const e of n)Fe.set(e.path,e);A.getFilesByNameMap().forEach((e,t)=>{e?e.path!==t?Fe.set(t,Fe.get(e.path)):A.isSourceFileFromExternalLibrary(e)&&re.set(e.path,!0):Fe.set(t,e)});const c=t.configFile&&t.configFile===N.configFile||!t.configFile&&!N.configFile&&!optionsHaveChanges(t,N,Qi);return V.reuseStateFromOldProgram(A.getProgramDiagnosticsContainer(),c),pe=c,M=n,q=A.getAutomaticTypeDirectiveNames(),H=A.getAutomaticTypeDirectiveResolutions(),Ne=A.sourceFileToPackageName,ke=A.redirectTargetsMap,Ee=A.usesUriStyleNodeCoreModules,$=A.resolvedModules,X=A.resolvedTypeReferenceDirectiveNames,K=A.resolvedLibReferences,Z=A.getCurrentPackagesMap(),2}(),null==(_=J)||_.pop(),2!==We){if(w=[],L=[],P&&(Ie||(Ie=P.map(parseProjectReferenceConfigFile)),E.length&&(null==Ie||Ie.forEach((e,t)=>{if(!e)return;const n=e.commandLine.options.outFile;if(Le){if(n||0===Vn(e.commandLine.options))for(const n of e.commandLine.fileNames)processProjectReferenceFile(n,{kind:1,index:t})}else if(n)processProjectReferenceFile(changeExtension(n,".d.ts"),{kind:2,index:t});else if(0===Vn(e.commandLine.options)){const n=memoize(()=>getCommonSourceDirectoryOfConfig(e.commandLine,!ie.useCaseSensitiveFileNames()));for(const r of e.commandLine.fileNames)isDeclarationFileName(r)||fileExtensionIs(r,".json")||processProjectReferenceFile(getOutputDeclarationFileName(r,e.commandLine,!ie.useCaseSensitiveFileNames(),n),{kind:2,index:t})}}))),null==(f=J)||f.push(J.Phase.Program,"processRootFiles",{count:E.length}),forEach(E,(e,t)=>processRootFile(e,!1,!1,{kind:0,index:t})),null==(g=J)||g.pop(),q??(q=E.length?getAutomaticTypeDirectiveNames(N,ie):l),H=createModeAwareCache(),q.length){null==(y=J)||y.push(J.Phase.Program,"processTypeReferences",{count:q.length});const e=combinePaths(N.configFilePath?getDirectoryPath(N.configFilePath):ue,Ua),t=resolveTypeReferenceDirectiveNamesReusingOldState(q,e);for(let e=0;e{processRootFile(pathForLibFile(e),!0,!1,{kind:6,index:t})})}M=toSorted(w,function compareDefaultLibFiles(e,t){return compareValues(getDefaultLibFilePriority(e),getDefaultLibFilePriority(t))}).concat(L),w=void 0,L=void 0,W=void 0}if(A&&ie.onReleaseOldSourceFile){const e=A.getSourceFiles();for(const t of e){const e=getSourceFileByPath(t.resolvedPath);(Je||!e||e.impliedNodeFormat!==t.impliedNodeFormat||t.resolvedPath===t.path&&e.resolvedPath!==t.path)&&ie.onReleaseOldSourceFile(t,A.getCompilerOptions(),!!getSourceFileByPath(t.path),e)}ie.getParsedCommandLine||A.forEachResolvedProjectReference(e=>{getResolvedProjectReferenceByPath(e.sourceFile.path)||ie.onReleaseOldSourceFile(e.sourceFile,A.getCompilerOptions(),!1,void 0)})}A&&ie.onReleaseParsedCommandLine&&forEachProjectReference(A.getProjectReferences(),A.getResolvedProjectReferences(),(e,t,n)=>{const r=resolveProjectReferencePath((null==t?void 0:t.commandLine.projectReferences[n])||A.getProjectReferences()[n]);(null==Ae?void 0:Ae.has(toPath3(r)))||ie.onReleaseParsedCommandLine(r,e,A.getCompilerOptions())}),A=void 0,G=void 0,Q=void 0,Y=void 0;const Ue={getRootFileNames:()=>E,getSourceFile,getSourceFileByPath,getSourceFiles:()=>M,getMissingFilePaths:()=>Pe,getModuleResolutionCache:()=>he,getFilesByNameMap:()=>Fe,getCompilerOptions:()=>N,getSyntacticDiagnostics:function getSyntacticDiagnostics(e,t){return getDiagnosticsHelper(e,getSyntacticDiagnosticsForFile,t)},getOptionsDiagnostics:function getOptionsDiagnostics(){return sortAndDeduplicateDiagnostics(concatenate(V.getCombinedDiagnostics(Ue).getGlobalDiagnostics(),function getOptionsDiagnosticsOfConfigFile(){if(!N.configFile)return l;let e=V.getCombinedDiagnostics(Ue).getDiagnostics(N.configFile.fileName);return forEachResolvedProjectReference2(t=>{e=concatenate(e,V.getCombinedDiagnostics(Ue).getDiagnostics(t.sourceFile.fileName))}),e}()))},getGlobalDiagnostics:function getGlobalDiagnostics(){return E.length?sortAndDeduplicateDiagnostics(getTypeChecker().getGlobalDiagnostics().slice()):l},getSemanticDiagnostics:function getSemanticDiagnostics(e,t,n){return getDiagnosticsHelper(e,(e,t)=>function getSemanticDiagnosticsForFile(e,t,n){return concatenate(filterSemanticDiagnostics(getBindAndCheckDiagnosticsForFile(e,t,n),N),getProgramDiagnostics(e))}(e,t,n),t)},getCachedSemanticDiagnostics:function getCachedSemanticDiagnostics(e){return null==U?void 0:U.get(e.path)},getSuggestionDiagnostics:function getSuggestionDiagnostics(e,t){return runWithCancellationToken(()=>getTypeChecker().getSuggestionDiagnostics(e,t))},getDeclarationDiagnostics:function getDeclarationDiagnostics2(e,t){return getDiagnosticsHelper(e,getDeclarationDiagnosticsForFile,t)},getBindAndCheckDiagnostics:function getBindAndCheckDiagnostics(e,t){return getBindAndCheckDiagnosticsForFile(e,t,void 0)},getProgramDiagnostics,getTypeChecker,getClassifiableNames:function getClassifiableNames(){var e;if(!j){getTypeChecker(),j=new Set;for(const t of M)null==(e=t.classifiableNames)||e.forEach(e=>j.add(e))}return j},getCommonSourceDirectory:getCommonSourceDirectory2,emit:function emit(e,t,n,r,i,o,a){var s,c;null==(s=J)||s.push(J.Phase.Emit,"emit",{path:null==e?void 0:e.path},!0);const l=runWithCancellationToken(()=>function emitWorker(e,t,n,r,i,o,a,s){if(!a){const i=handleNoEmitOptions(e,t,n,r);if(i)return i}const c=getTypeChecker(),l=c.getEmitResolver(N.outFile?void 0:t,r,emitResolverSkipsTypeChecking(i,a));mark("beforeEmit");const d=c.runWithCancellationToken(r,()=>emitFiles(l,getEmitHost(n),t,getTransformers(N,o,i),i,!1,a,s));return mark("afterEmit"),measure("Emit","beforeEmit","afterEmit"),d}(Ue,e,t,n,r,i,o,a));return null==(c=J)||c.pop(),l},getCurrentDirectory:()=>ue,getNodeCount:()=>getTypeChecker().getNodeCount(),getIdentifierCount:()=>getTypeChecker().getIdentifierCount(),getSymbolCount:()=>getTypeChecker().getSymbolCount(),getTypeCount:()=>getTypeChecker().getTypeCount(),getInstantiationCount:()=>getTypeChecker().getInstantiationCount(),getRelationCacheSizes:()=>getTypeChecker().getRelationCacheSizes(),getFileProcessingDiagnostics:()=>V.getFileProcessingDiagnostics(),getAutomaticTypeDirectiveNames:()=>q,getAutomaticTypeDirectiveResolutions:()=>H,isSourceFileFromExternalLibrary,isSourceFileDefaultLibrary:function isSourceFileDefaultLibrary(e){if(!e.isDeclarationFile)return!1;if(e.hasNoDefaultLib)return!0;if(N.noLib)return!1;const t=ie.useCaseSensitiveFileNames()?equateStringsCaseSensitive:equateStringsCaseInsensitive;return N.lib?some(N.lib,n=>{const r=K.get(n);return!!r&&t(e.fileName,r.actual)}):t(e.fileName,le())},getModeForUsageLocation:getModeForUsageLocation2,getEmitSyntaxForUsageLocation:function getEmitSyntaxForUsageLocation(e,t){return getEmitSyntaxForUsageLocationWorker(e,t,getCompilerOptionsForFile(e))},getModeForResolutionAtIndex:getModeForResolutionAtIndex2,getSourceFileFromReference:function getSourceFileFromReference(e,t){return getSourceFileFromReferenceWorker(resolveTripleslashReference(t.fileName,e.fileName),getSourceFile)},getLibFileFromReference:function getLibFileFromReference(e){var t;const n=getLibFileNameFromLibReference(e),r=n&&(null==(t=null==K?void 0:K.get(n))?void 0:t.actual);return void 0!==r?getSourceFile(r):void 0},sourceFileToPackageName:Ne,redirectTargetsMap:ke,usesUriStyleNodeCoreModules:Ee,resolvedModules:$,resolvedTypeReferenceDirectiveNames:X,resolvedLibReferences:K,getProgramDiagnosticsContainer:()=>V,getResolvedModule,getResolvedModuleFromModuleSpecifier:function getResolvedModuleFromModuleSpecifier(e,t){return t??(t=getSourceFileOfNode(e)),h.assertIsDefined(t,"`moduleSpecifier` must have a `SourceFile` ancestor. Use `program.getResolvedModule` instead to provide the containing file and resolution mode."),getResolvedModule(t,e.text,getModeForUsageLocation2(t,e))},getResolvedTypeReferenceDirective,getResolvedTypeReferenceDirectiveFromTypeReferenceDirective:function getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(e,t){return getResolvedTypeReferenceDirective(t,e.fileName,getModeForTypeReferenceDirectiveInFile(e,t))},forEachResolvedModule,forEachResolvedTypeReferenceDirective,getCurrentPackagesMap:()=>Z,typesPackageExists:function typesPackageExists(e){return getPackagesMap().has(getTypesPackageName(e))},packageBundlesTypes:function packageBundlesTypes(e){return!!getPackagesMap().get(e)},isEmittedFile:function isEmittedFile(e){if(N.noEmit)return!1;const t=toPath3(e);if(getSourceFileByPath(t))return!1;const n=N.outFile;if(n)return isSameFile(t,n)||isSameFile(t,removeFileExtension(n)+".d.ts");if(N.declarationDir&&containsPath(N.declarationDir,t,ue,!ie.useCaseSensitiveFileNames()))return!0;if(N.outDir)return containsPath(N.outDir,t,ue,!ie.useCaseSensitiveFileNames());if(fileExtensionIsOneOf(t,yr)||isDeclarationFileName(t)){const e=removeFileExtension(t);return!!getSourceFileByPath(e+".ts")||!!getSourceFileByPath(e+".tsx")}return!1},getConfigFileParsingDiagnostics:function getConfigFileParsingDiagnostics2(){return F||l},getProjectReferences:function getProjectReferences(){return P},getResolvedProjectReferences,getRedirectFromSourceFile,getResolvedProjectReferenceByPath,forEachResolvedProjectReference:forEachResolvedProjectReference2,isSourceOfProjectReferenceRedirect,getRedirectFromOutput,getCompilerOptionsForFile,getDefaultResolutionModeForFile:getDefaultResolutionModeForFile2,getEmitModuleFormatOfFile:getEmitModuleFormatOfFile2,getImpliedNodeFormatForEmit:function getImpliedNodeFormatForEmit2(e){return getImpliedNodeFormatForEmitWorker(e,getCompilerOptionsForFile(e))},shouldTransformImportCall,emitBuildInfo:function emitBuildInfo(e){var t,n;null==(t=J)||t.push(J.Phase.Emit,"emitBuildInfo",{},!0),mark("beforeEmit");const r=emitFiles(Ea,getEmitHost(e),void 0,va,!1,!0);return mark("afterEmit"),measure("Emit","beforeEmit","afterEmit"),null==(n=J)||n.pop(),r},fileExists:Re,readFile:je,directoryExists:Be,getSymlinkCache,realpath:null==(v=ie.realpath)?void 0:v.bind(ie),useCaseSensitiveFileNames:()=>ie.useCaseSensitiveFileNames(),getCanonicalFileName,getFileIncludeReasons:()=>V.getFileReasons(),structureIsReused:We,writeFile:writeFile2,getGlobalTypingsCacheLocation:maybeBind(ie,ie.getGlobalTypingsCacheLocation)};return Me(),pe||function verifyCompilerOptions(){N.strictPropertyInitialization&&!getStrictOptionValue(N,"strictNullChecks")&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1,"strictPropertyInitialization","strictNullChecks");N.exactOptionalPropertyTypes&&!getStrictOptionValue(N,"strictNullChecks")&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1,"exactOptionalPropertyTypes","strictNullChecks");(N.isolatedModules||N.verbatimModuleSyntax)&&N.outFile&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_with_option_1,"outFile",N.verbatimModuleSyntax?"verbatimModuleSyntax":"isolatedModules");N.isolatedDeclarations&&(rr(N)&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_with_option_1,"allowJs","isolatedDeclarations"),Zn(N)||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"isolatedDeclarations","declaration","composite"));N.inlineSourceMap&&(N.sourceMap&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_with_option_1,"sourceMap","inlineSourceMap"),N.mapRoot&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_with_option_1,"mapRoot","inlineSourceMap"));N.composite&&(!1===N.declaration&&createDiagnosticForOptionName(Ot.Composite_projects_may_not_disable_declaration_emit,"declaration"),!1===N.incremental&&createDiagnosticForOptionName(Ot.Composite_projects_may_not_disable_incremental_compilation,"declaration"));const e=N.outFile;N.tsBuildInfoFile||!N.incremental||e||N.configFilePath||V.addConfigDiagnostic(createCompilerDiagnostic(Ot.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified));if(function verifyDeprecatedCompilerOptions(){function createDiagnostic(e,t,n,r,...i){if(n){const o=chainDiagnosticMessages(void 0,Ot.Use_0_instead,n);createDiagnosticForOption(!t,e,void 0,chainDiagnosticMessages(o,r,...i))}else createDiagnosticForOption(!t,e,void 0,r,...i)}checkDeprecations("5.0","5.5",createDiagnostic,e=>{0===N.target&&e("target","ES3"),N.noImplicitUseStrict&&e("noImplicitUseStrict"),N.keyofStringsOnly&&e("keyofStringsOnly"),N.suppressExcessPropertyErrors&&e("suppressExcessPropertyErrors"),N.suppressImplicitAnyIndexErrors&&e("suppressImplicitAnyIndexErrors"),N.noStrictGenericChecks&&e("noStrictGenericChecks"),N.charset&&e("charset"),N.out&&e("out",void 0,"outFile"),N.importsNotUsedAsValues&&e("importsNotUsedAsValues",void 0,"verbatimModuleSyntax"),N.preserveValueImports&&e("preserveValueImports",void 0,"verbatimModuleSyntax")})}(),function verifyProjectReferences(){const e=N.suppressOutputPathCheck?void 0:getTsBuildInfoEmitOutputFilePath(N);forEachProjectReference(P,Ie,(t,n,r)=>{const i=(n?n.commandLine.projectReferences:P)[r],o=n&&n.sourceFile;if(function verifyDeprecatedProjectReference(e,t,n){function createDiagnostic(e,r,i,o,...a){createDiagnosticForReference(t,n,o,...a)}checkDeprecations("5.0","5.5",createDiagnostic,t=>{e.prepend&&t("prepend")})}(i,o,r),!t)return void createDiagnosticForReference(o,r,Ot.File_0_not_found,i.path);const a=t.commandLine.options;if(!a.composite||a.noEmit){(n?n.commandLine.fileNames:E).length&&(a.composite||createDiagnosticForReference(o,r,Ot.Referenced_project_0_must_have_setting_composite_Colon_true,i.path),a.noEmit&&createDiagnosticForReference(o,r,Ot.Referenced_project_0_may_not_disable_emit,i.path))}!n&&e&&e===getTsBuildInfoEmitOutputFilePath(a)&&(createDiagnosticForReference(o,r,Ot.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,e,i.path),fe.set(toPath3(e),!0))})}(),N.composite){const e=new Set(E.map(toPath3));for(const t of M)sourceFileMayBeEmitted(t,Ue)&&!e.has(t.path)&&V.addLazyConfigDiagnostic(t,Ot.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern,t.fileName,N.configFilePath||"")}if(N.paths)for(const e in N.paths)if(hasProperty(N.paths,e))if(hasZeroOrOneAsteriskCharacter(e)||createDiagnosticForOptionPaths(!0,e,Ot.Pattern_0_can_have_at_most_one_Asterisk_character,e),isArray(N.paths[e])){const t=N.paths[e].length;0===t&&createDiagnosticForOptionPaths(!1,e,Ot.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array,e);for(let n=0;nisExternalModule(e)&&!e.isDeclarationFile);if(N.isolatedModules||N.verbatimModuleSyntax)0===N.module&&t<2&&N.isolatedModules&&createDiagnosticForOptionName(Ot.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher,"isolatedModules","target"),!1===N.preserveConstEnums&&createDiagnosticForOptionName(Ot.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled,N.verbatimModuleSyntax?"verbatimModuleSyntax":"isolatedModules","preserveConstEnums");else if(n&&t<2&&0===N.module){const e=getErrorSpanForNode(n,"boolean"==typeof n.externalModuleIndicator?n:n.externalModuleIndicator);V.addConfigDiagnostic(createFileDiagnostic(n,e.start,e.length,Ot.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none))}if(e&&!N.emitDeclarationOnly)if(N.module&&2!==N.module&&4!==N.module)createDiagnosticForOptionName(Ot.Only_amd_and_system_modules_are_supported_alongside_0,"outFile","module");else if(void 0===N.module&&n){const e=getErrorSpanForNode(n,"boolean"==typeof n.externalModuleIndicator?n:n.externalModuleIndicator);V.addConfigDiagnostic(createFileDiagnostic(n,e.start,e.length,Ot.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system,"outFile"))}Yn(N)&&(1===qn(N)?createDiagnosticForOptionName(Ot.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic,"resolveJsonModule"):hasJsonModuleEmitEnabled(N)||createDiagnosticForOptionName(Ot.Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd,"resolveJsonModule","module"));if(N.outDir||N.rootDir||N.sourceRoot||N.mapRoot||Zn(N)&&N.declarationDir){const e=getCommonSourceDirectory2();N.outDir&&""===e&&M.some(e=>getRootLength(e.fileName)>1)&&createDiagnosticForOptionName(Ot.Cannot_find_the_common_subdirectory_path_for_the_input_files,"outDir")}N.checkJs&&!rr(N)&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1,"checkJs","allowJs");N.emitDeclarationOnly&&(Zn(N)||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"emitDeclarationOnly","declaration","composite"));N.emitDecoratorMetadata&&!N.experimentalDecorators&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1,"emitDecoratorMetadata","experimentalDecorators");N.jsxFactory?(N.reactNamespace&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_with_option_1,"reactNamespace","jsxFactory"),4!==N.jsx&&5!==N.jsx||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFactory",Wi.get(""+N.jsx)),parseIsolatedEntityName(N.jsxFactory,t)||createOptionValueDiagnostic("jsxFactory",Ot.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,N.jsxFactory)):N.reactNamespace&&!isIdentifierText(N.reactNamespace,t)&&createOptionValueDiagnostic("reactNamespace",Ot.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,N.reactNamespace);N.jsxFragmentFactory&&(N.jsxFactory||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_without_specifying_option_1,"jsxFragmentFactory","jsxFactory"),4!==N.jsx&&5!==N.jsx||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFragmentFactory",Wi.get(""+N.jsx)),parseIsolatedEntityName(N.jsxFragmentFactory,t)||createOptionValueDiagnostic("jsxFragmentFactory",Ot.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,N.jsxFragmentFactory));N.reactNamespace&&(4!==N.jsx&&5!==N.jsx||createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_when_option_jsx_is_1,"reactNamespace",Wi.get(""+N.jsx)));N.jsxImportSource&&2===N.jsx&&createDiagnosticForOptionName(Ot.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxImportSource",Wi.get(""+N.jsx));const r=Vn(N);N.verbatimModuleSyntax&&(2!==r&&3!==r&&4!==r||createDiagnosticForOptionName(Ot.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System,"verbatimModuleSyntax"));N.allowImportingTsExtensions&&!(N.noEmit||N.emitDeclarationOnly||N.rewriteRelativeImportExtensions)&&createOptionValueDiagnostic("allowImportingTsExtensions",Ot.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);const i=qn(N);N.resolvePackageJsonExports&&!moduleResolutionSupportsPackageJsonExportsAndImports(i)&&createDiagnosticForOptionName(Ot.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler,"resolvePackageJsonExports");N.resolvePackageJsonImports&&!moduleResolutionSupportsPackageJsonExportsAndImports(i)&&createDiagnosticForOptionName(Ot.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler,"resolvePackageJsonImports");N.customConditions&&!moduleResolutionSupportsPackageJsonExportsAndImports(i)&&createDiagnosticForOptionName(Ot.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler,"customConditions");100!==i||emitModuleKindIsNonNodeESM(r)||200===r||createOptionValueDiagnostic("moduleResolution",Ot.Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later,"bundler");if($e[r]&&100<=r&&r<=199&&!(3<=i&&i<=99)){const e=$e[r],t=Ve[e]?e:"Node16";createOptionValueDiagnostic("moduleResolution",Ot.Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1,t,e)}else if(Ve[i]&&3<=i&&i<=99&&!(100<=r&&r<=199)){const e=Ve[i];createOptionValueDiagnostic("module",Ot.Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1,e,e)}if(!N.noEmit&&!N.suppressOutputPathCheck){const e=getEmitHost(),t=new Set;forEachEmittedFile(e,e=>{N.emitDeclarationOnly||verifyEmitFilePath(e.jsFilePath,t),verifyEmitFilePath(e.declarationFilePath,t)})}function verifyEmitFilePath(e,t){if(e){const n=toPath3(e);if(Fe.has(n)){let t;N.configFilePath||(t=chainDiagnosticMessages(void 0,Ot.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)),t=chainDiagnosticMessages(t,Ot.Cannot_write_file_0_because_it_would_overwrite_input_file,e),blockEmittingOfFile(e,createCompilerDiagnosticFromMessageChain(t))}const r=ie.useCaseSensitiveFileNames()?n:toFileNameLowerCase(n);t.has(r)?blockEmittingOfFile(e,createCompilerDiagnostic(Ot.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files,e)):t.add(r)}}}(),mark("afterProgram"),measure("Program","beforeProgram","afterProgram"),null==(b=J)||b.pop(),Ue;function getResolvedModule(e,t,n){var r;return null==(r=null==$?void 0:$.get(e.path))?void 0:r.get(t,n)}function getResolvedTypeReferenceDirective(e,t,n){var r;return null==(r=null==X?void 0:X.get(e.path))?void 0:r.get(t,n)}function forEachResolvedModule(e,t){forEachResolution($,e,t)}function forEachResolvedTypeReferenceDirective(e,t){forEachResolution(X,e,t)}function forEachResolution(e,t,n){var r;n?null==(r=null==e?void 0:e.get(n.path))||r.forEach((e,r,i)=>t(e,r,i,n.path)):null==e||e.forEach((e,n)=>e.forEach((e,r,i)=>t(e,r,i,n)))}function getPackagesMap(){return Z||(Z=new Map,forEachResolvedModule(({resolvedModule:e})=>{(null==e?void 0:e.packageId)&&Z.set(e.packageId.name,".d.ts"===e.extension||!!Z.get(e.packageId.name))}),Z)}function addResolutionDiagnostics(e){var t;(null==(t=e.resolutionDiagnostics)?void 0:t.length)&&V.addFileProcessingDiagnostic({kind:2,diagnostics:e.resolutionDiagnostics})}function addResolutionDiagnosticsFromResolutionOrCache(e,t,n,r){if(ie.resolveModuleNameLiterals||!ie.resolveModuleNames)return addResolutionDiagnostics(n);if(!he||isExternalModuleNameRelative(t))return;const i=getDirectoryPath(getNormalizedAbsolutePath(e.originalFileName,ue)),o=getRedirectReferenceForResolution(e),a=he.getFromNonRelativeNameCache(t,r,i,o);a&&addResolutionDiagnostics(a)}function resolveModuleNamesWorker(e,t,n){var r,i;const o=getNormalizedAbsolutePath(t.originalFileName,ue),a=getRedirectReferenceForResolution(t);null==(r=J)||r.push(J.Phase.Program,"resolveModuleNamesWorker",{containingFileName:o}),mark("beforeResolveModule");const s=Te(e,o,a,N,t,n);return mark("afterResolveModule"),measure("ResolveModule","beforeResolveModule","afterResolveModule"),null==(i=J)||i.pop(),s}function resolveTypeReferenceDirectiveNamesWorker(e,t,n){var r,i;const o=isString(t)?void 0:t,a=isString(t)?t:getNormalizedAbsolutePath(t.originalFileName,ue),s=o&&getRedirectReferenceForResolution(o);null==(r=J)||r.push(J.Phase.Program,"resolveTypeReferenceDirectiveNamesWorker",{containingFileName:a}),mark("beforeResolveTypeReference");const c=xe(e,a,s,N,o,n);return mark("afterResolveTypeReference"),measure("ResolveTypeReference","beforeResolveTypeReference","afterResolveTypeReference"),null==(i=J)||i.pop(),c}function getRedirectReferenceForResolution(e){var t,n;const r=getRedirectFromSourceFile(e.originalFileName);if(r||!isDeclarationFileName(e.originalFileName))return null==r?void 0:r.resolvedRef;const i=null==(t=getRedirectFromOutput(e.path))?void 0:t.resolvedRef;if(i)return i;if(!ie.realpath||!N.preserveSymlinks||!e.originalFileName.includes(Mo))return;const o=toPath3(ie.realpath(e.originalFileName));return o===e.path||null==(n=getRedirectFromOutput(o))?void 0:n.resolvedRef}function getDefaultLibFilePriority(e){if(containsPath(de,e.fileName,!1)){const t=getBaseFileName(e.fileName);if("lib.d.ts"===t||"lib.es6.d.ts"===t)return 0;const n=removeSuffix(removePrefix(t,"lib."),".d.ts"),r=zi.indexOf(n);if(-1!==r)return r+1}return zi.length+2}function toPath3(e){return toPath(e,ue,getCanonicalFileName)}function getCommonSourceDirectory2(){let e=V.getCommonSourceDirectory();if(void 0!==e)return e;const t=filter(M,e=>sourceFileMayBeEmitted(e,Ue));return e=getCommonSourceDirectory(N,()=>mapDefined(t,e=>e.isDeclarationFile?void 0:e.fileName),ue,getCanonicalFileName,e=>function checkSourceFilesBelongToPath(e,t){let n=!0;const r=ie.getCanonicalFileName(getNormalizedAbsolutePath(t,ue));for(const i of e)if(!i.isDeclarationFile){0!==ie.getCanonicalFileName(getNormalizedAbsolutePath(i.fileName,ue)).indexOf(r)&&(V.addLazyConfigDiagnostic(i,Ot.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files,i.fileName,t),n=!1)}return n}(t,e)),V.setCommonSourceDirectory(e),e}function resolveModuleNamesReusingOldState(e,t){return resolveNamesReusingOldState({entries:e,containingFile:t,containingSourceFile:t,redirectedReference:getRedirectReferenceForResolution(t),nameAndModeGetter:Ja,resolutionWorker:resolveModuleNamesWorker,getResolutionFromOldProgram:(e,n)=>null==A?void 0:A.getResolvedModule(t,e,n),getResolved:getResolvedModuleFromResolution,canReuseResolutionsInFile:()=>t===(null==A?void 0:A.getSourceFile(t.fileName))&&!Se(t.path),resolveToOwnAmbientModule:!0})}function resolveTypeReferenceDirectiveNamesReusingOldState(e,t){const n=isString(t)?void 0:t;return resolveNamesReusingOldState({entries:e,containingFile:t,containingSourceFile:n,redirectedReference:n&&getRedirectReferenceForResolution(n),nameAndModeGetter:Wa,resolutionWorker:resolveTypeReferenceDirectiveNamesWorker,getResolutionFromOldProgram:(e,t)=>{var r;return n?null==A?void 0:A.getResolvedTypeReferenceDirective(n,e,t):null==(r=null==A?void 0:A.getAutomaticTypeDirectiveResolutions())?void 0:r.get(e,t)},getResolved:getResolvedTypeReferenceDirectiveFromResolution,canReuseResolutionsInFile:()=>n?n===(null==A?void 0:A.getSourceFile(n.fileName))&&!Se(n.path):!Se(toPath3(t))})}function resolveNamesReusingOldState({entries:e,containingFile:t,containingSourceFile:n,redirectedReference:r,nameAndModeGetter:i,resolutionWorker:o,getResolutionFromOldProgram:a,getResolved:s,canReuseResolutionsInFile:c,resolveToOwnAmbientModule:d}){if(!e.length)return l;if(!(0!==We||d&&n.ambientModuleNames.length))return o(e,t,void 0);let p,u,m,_;const f=c();for(let c=0;cm[u[t]]=e),m):g}function getEmitHost(e){return{getCanonicalFileName,getCommonSourceDirectory:Ue.getCommonSourceDirectory,getCompilerOptions:Ue.getCompilerOptions,getCurrentDirectory:()=>ue,getSourceFile:Ue.getSourceFile,getSourceFileByPath:Ue.getSourceFileByPath,getSourceFiles:Ue.getSourceFiles,isSourceFileFromExternalLibrary,getRedirectFromSourceFile,isSourceOfProjectReferenceRedirect,getSymlinkCache,writeFile:e||writeFile2,isEmitBlocked,shouldTransformImportCall,getEmitModuleFormatOfFile:getEmitModuleFormatOfFile2,getDefaultResolutionModeForFile:getDefaultResolutionModeForFile2,getModeForResolutionAtIndex:getModeForResolutionAtIndex2,readFile:e=>ie.readFile(e),fileExists:e=>{const t=toPath3(e);return!!getSourceFileByPath(t)||!Pe.has(t)&&ie.fileExists(e)},realpath:maybeBind(ie,ie.realpath),useCaseSensitiveFileNames:()=>ie.useCaseSensitiveFileNames(),getBuildInfo:()=>{var e;return null==(e=Ue.getBuildInfo)?void 0:e.call(Ue)},getSourceFileFromReference:(e,t)=>Ue.getSourceFileFromReference(e,t),redirectTargetsMap:ke,getFileIncludeReasons:Ue.getFileIncludeReasons,createHash:maybeBind(ie,ie.createHash),getModuleResolutionCache:()=>Ue.getModuleResolutionCache(),trace:maybeBind(ie,ie.trace),getGlobalTypingsCacheLocation:Ue.getGlobalTypingsCacheLocation}}function writeFile2(e,t,n,r,i,o){ie.writeFile(e,t,n,r,i,o)}function getResolvedProjectReferences(){return Ie}function isSourceFileFromExternalLibrary(e){return!!re.get(e.path)}function getTypeChecker(){return B||(B=createTypeChecker(Ue))}function isEmitBlocked(e){return fe.has(toPath3(e))}function getSourceFile(e){return getSourceFileByPath(toPath3(e))}function getSourceFileByPath(e){return Fe.get(e)||void 0}function getDiagnosticsHelper(e,t,n){return sortAndDeduplicateDiagnostics(e?t(e,n):flatMap(Ue.getSourceFiles(),e=>(n&&n.throwIfCancellationRequested(),t(e,n))))}function getProgramDiagnostics(e){var t;if(skipTypeChecking(e,N,Ue))return l;const n=V.getCombinedDiagnostics(Ue).getDiagnostics(e.fileName);return(null==(t=e.commentDirectives)?void 0:t.length)?getDiagnosticsWithPrecedingDirectives(e,e.commentDirectives,n).diagnostics:n}function getSyntacticDiagnosticsForFile(e){return isSourceFileJS(e)?(e.additionalSyntacticDiagnostics||(e.additionalSyntacticDiagnostics=function getJSSyntacticDiagnosticsForFile(e){return runWithCancellationToken(()=>{const t=[];return walk(e,e),forEachChildRecursively(e,walk,walkArray),t;function walk(e,n){switch(n.kind){case 170:case 173:case 175:if(n.questionToken===e)return t.push(createDiagnosticForNode2(e,Ot.The_0_modifier_can_only_be_used_in_TypeScript_files,"?")),"skip";case 174:case 177:case 178:case 179:case 219:case 263:case 220:case 261:if(n.type===e)return t.push(createDiagnosticForNode2(e,Ot.Type_annotations_can_only_be_used_in_TypeScript_files)),"skip"}switch(e.kind){case 274:if(e.isTypeOnly)return t.push(createDiagnosticForNode2(n,Ot._0_declarations_can_only_be_used_in_TypeScript_files,"import type")),"skip";break;case 279:if(e.isTypeOnly)return t.push(createDiagnosticForNode2(e,Ot._0_declarations_can_only_be_used_in_TypeScript_files,"export type")),"skip";break;case 277:case 282:if(e.isTypeOnly)return t.push(createDiagnosticForNode2(e,Ot._0_declarations_can_only_be_used_in_TypeScript_files,isImportSpecifier(e)?"import...type":"export...type")),"skip";break;case 272:return t.push(createDiagnosticForNode2(e,Ot.import_can_only_be_used_in_TypeScript_files)),"skip";case 278:if(e.isExportEquals)return t.push(createDiagnosticForNode2(e,Ot.export_can_only_be_used_in_TypeScript_files)),"skip";break;case 299:if(119===e.token)return t.push(createDiagnosticForNode2(e,Ot.implements_clauses_can_only_be_used_in_TypeScript_files)),"skip";break;case 265:const r=tokenToString(120);return h.assertIsDefined(r),t.push(createDiagnosticForNode2(e,Ot._0_declarations_can_only_be_used_in_TypeScript_files,r)),"skip";case 268:const i=32&e.flags?tokenToString(145):tokenToString(144);return h.assertIsDefined(i),t.push(createDiagnosticForNode2(e,Ot._0_declarations_can_only_be_used_in_TypeScript_files,i)),"skip";case 266:return t.push(createDiagnosticForNode2(e,Ot.Type_aliases_can_only_be_used_in_TypeScript_files)),"skip";case 177:case 175:case 263:return e.body?void 0:(t.push(createDiagnosticForNode2(e,Ot.Signature_declarations_can_only_be_used_in_TypeScript_files)),"skip");case 267:const o=h.checkDefined(tokenToString(94));return t.push(createDiagnosticForNode2(e,Ot._0_declarations_can_only_be_used_in_TypeScript_files,o)),"skip";case 236:return t.push(createDiagnosticForNode2(e,Ot.Non_null_assertions_can_only_be_used_in_TypeScript_files)),"skip";case 235:return t.push(createDiagnosticForNode2(e.type,Ot.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),"skip";case 239:return t.push(createDiagnosticForNode2(e.type,Ot.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files)),"skip";case 217:h.fail()}}function walkArray(e,n){if(canHaveIllegalDecorators(n)){const e=find(n.modifiers,isDecorator);e&&t.push(createDiagnosticForNode2(e,Ot.Decorators_are_not_valid_here))}else if(canHaveDecorators(n)&&n.modifiers){const e=findIndex(n.modifiers,isDecorator);if(e>=0)if(isParameter(n)&&!N.experimentalDecorators)t.push(createDiagnosticForNode2(n.modifiers[e],Ot.Decorators_are_not_valid_here));else if(isClassDeclaration(n)){const r=findIndex(n.modifiers,isExportModifier);if(r>=0){const i=findIndex(n.modifiers,isDefaultModifier);if(e>r&&i>=0&&e=0&&e=0&&t.push(addRelatedInfo(createDiagnosticForNode2(n.modifiers[i],Ot.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),createDiagnosticForNode2(n.modifiers[e],Ot.Decorator_used_before_export_here)))}}}}switch(n.kind){case 264:case 232:case 175:case 177:case 178:case 179:case 219:case 263:case 220:if(e===n.typeParameters)return t.push(createDiagnosticForNodeArray2(e,Ot.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),"skip";case 244:if(e===n.modifiers)return checkModifiers(n.modifiers,244===n.kind),"skip";break;case 173:if(e===n.modifiers){for(const n of e)isModifier(n)&&126!==n.kind&&129!==n.kind&&t.push(createDiagnosticForNode2(n,Ot.The_0_modifier_can_only_be_used_in_TypeScript_files,tokenToString(n.kind)));return"skip"}break;case 170:if(e===n.modifiers&&some(e,isModifier))return t.push(createDiagnosticForNodeArray2(e,Ot.Parameter_modifiers_can_only_be_used_in_TypeScript_files)),"skip";break;case 214:case 215:case 234:case 286:case 287:case 216:if(e===n.typeArguments)return t.push(createDiagnosticForNodeArray2(e,Ot.Type_arguments_can_only_be_used_in_TypeScript_files)),"skip"}}function checkModifiers(e,n){for(const r of e)switch(r.kind){case 87:if(n)continue;case 125:case 123:case 124:case 148:case 138:case 128:case 164:case 103:case 147:t.push(createDiagnosticForNode2(r,Ot.The_0_modifier_can_only_be_used_in_TypeScript_files,tokenToString(r.kind)))}}function createDiagnosticForNodeArray2(t,n,...r){const i=t.pos;return createFileDiagnostic(e,i,t.end-i,n,...r)}function createDiagnosticForNode2(t,n,...r){return createDiagnosticForNodeInSourceFile(e,t,n,...r)}})}(e)),concatenate(e.additionalSyntacticDiagnostics,e.parseDiagnostics)):e.parseDiagnostics}function runWithCancellationToken(e){try{return e()}catch(e){throw e instanceof se&&(B=void 0),e}}function getBindAndCheckDiagnosticsForFile(e,t,n){if(n)return getBindAndCheckDiagnosticsForFileNoCache(e,t,n);let r=null==U?void 0:U.get(e.path);return r||(U??(U=new Map)).set(e.path,r=getBindAndCheckDiagnosticsForFileNoCache(e,t)),r}function getBindAndCheckDiagnosticsForFileNoCache(e,t,n){return runWithCancellationToken(()=>{if(skipTypeChecking(e,N,Ue))return l;const r=getTypeChecker();h.assert(!!e.bindDiagnostics);const i=1===e.scriptKind||2===e.scriptKind,o=isPlainJsFile(e,N.checkJs),a=i&&isCheckJsEnabledForFile(e,N);let s=e.bindDiagnostics,c=r.getDiagnostics(e,t,n);return o&&(s=filter(s,e=>za.has(e.code)),c=filter(c,e=>za.has(e.code))),function getMergedBindAndCheckDiagnostics(e,t,n,...r){var i;const o=flatten(r);if(!t||!(null==(i=e.commentDirectives)?void 0:i.length))return o;const{diagnostics:a,directives:s}=getDiagnosticsWithPrecedingDirectives(e,e.commentDirectives,o);if(n)return a;for(const t of s.getUnusedExpectations())a.push(createDiagnosticForRange(e,t.range,Ot.Unused_ts_expect_error_directive));return a}(e,!o,!!n,s,c,a?e.jsDocDiagnostics:void 0)})}function getDiagnosticsWithPrecedingDirectives(e,t,n){const r=createCommentDirectivesMap(e,t),i=n.filter(e=>-1===function markPrecedingCommentDirectiveLine(e,t){const{file:n,start:r}=e;if(!n)return-1;const i=getLineStarts(n);let o=computeLineAndCharacterOfPosition(i,r).line-1;for(;o>=0;){if(t.markUsed(o))return o;const e=n.text.slice(i[o],i[o+1]).trim();if(""!==e&&!/^\s*\/\/.*$/.test(e))return-1;o--}return-1}(e,r));return{diagnostics:i,directives:r}}function getDeclarationDiagnosticsWorker(e,t){let n=null==z?void 0:z.get(e.path);return n||(z??(z=new Map)).set(e.path,n=function getDeclarationDiagnosticsForFileNoCache(e,t){return runWithCancellationToken(()=>{const n=getTypeChecker().getEmitResolver(e,t);return getDeclarationDiagnostics(getEmitHost(noop),n,e)||l})}(e,t)),n}function getDeclarationDiagnosticsForFile(e,t){return e.isDeclarationFile?l:getDeclarationDiagnosticsWorker(e,t)}function processRootFile(e,t,n,r){processSourceFile(normalizePath(e),t,n,void 0,r)}function fileReferenceIsEqualTo(e,t){return e.fileName===t.fileName}function moduleNameIsEqualTo(e,t){return 80===e.kind?80===t.kind&&e.escapedText===t.escapedText:11===t.kind&&e.text===t.text}function createSyntheticImport(e,t){const n=Wr.createStringLiteral(e),r=Wr.createImportDeclaration(void 0,void 0,n);return addInternalEmitFlags(r,2),setParent(n,r),setParent(r,t),n.flags&=-17,r.flags&=-17,n}function collectExternalModuleReferences(e){if(e.imports)return;const t=isSourceFileJS(e),n=isExternalModule(e);let r,i,o;if(t||!e.isDeclarationFile&&(Kn(N)||isExternalModule(e))){N.importHelpers&&(r=[createSyntheticImport(sn,e)]);const t=getJSXRuntimeImport(getJSXImplicitImportBase(N,e),N);t&&(r||(r=[])).push(createSyntheticImport(t,e))}for(const t of e.statements)collectModuleReferences(t,!1);return(4194304&e.flags||t)&&forEachDynamicImportOrRequireCall(e,!0,!0,(e,t)=>{setParentRecursive(e,!1),r=append(r,t)}),e.imports=r||l,e.moduleAugmentations=i||l,void(e.ambientModuleNames=o||l);function collectModuleReferences(t,a){if(isAnyImportOrReExport(t)){const n=getExternalModuleName(t);!(n&&isStringLiteral(n)&&n.text)||a&&isExternalModuleNameRelative(n.text)||(setParentRecursive(t,!1),r=append(r,n),Ee||0!==te||e.isDeclarationFile||(startsWith(n.text,"node:")&&!Dr.has(n.text)?Ee=!0:void 0===Ee&&Pr.has(n.text)&&(Ee=!1)))}else if(isModuleDeclaration(t)&&isAmbientModule(t)&&(a||hasSyntacticModifier(t,128)||e.isDeclarationFile)){t.name.parent=t;const r=getTextOfIdentifierOrLiteral(t.name);if(n||a&&!isExternalModuleNameRelative(r))(i||(i=[])).push(t.name);else if(!a){e.isDeclarationFile&&(o||(o=[])).push(r);const n=t.body;if(n)for(const e of n.statements)collectModuleReferences(e,!0)}}}}function getSourceFileFromReferenceWorker(e,t,n,r){if(hasExtension(e)){const i=ie.getCanonicalFileName(e);if(!N.allowNonTsExtensions&&!forEach(flatten(_e),e=>fileExtensionIs(i,e)))return void(n&&(hasJSFileExtension(i)?n(Ot.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option,e):n(Ot.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1,e,"'"+flatten(me).join("', '")+"'")));const o=t(e);if(n)if(o)isReferencedFile(r)&&i===ie.getCanonicalFileName(getSourceFileByPath(r.file).fileName)&&n(Ot.A_file_cannot_have_a_reference_to_itself);else{const t=getRedirectFromSourceFile(e);(null==t?void 0:t.outputDts)?n(Ot.Output_file_0_has_not_been_built_from_source_file_1,t.outputDts,e):n(Ot.File_0_not_found,e)}return o}{const r=N.allowNonTsExtensions&&t(e);if(r)return r;if(n&&N.allowNonTsExtensions)return void n(Ot.File_0_not_found,e);const i=forEach(me[0],n=>t(e+n));return n&&!i&&n(Ot.Could_not_resolve_the_path_0_with_the_extensions_Colon_1,e,"'"+flatten(me).join("', '")+"'"),i}}function processSourceFile(e,t,n,r,i){getSourceFileFromReferenceWorker(e,e=>findSourceFile(e,t,n,i,r),(e,...t)=>addFilePreprocessingFileExplainingDiagnostic(void 0,i,e,t),i)}function processProjectReferenceFile(e,t){return processSourceFile(e,!1,!1,void 0,t)}function reportFileNamesDifferOnlyInCasingError(e,t,n){!isReferencedFile(n)&&some(V.getFileReasons().get(t.path),isReferencedFile)?addFilePreprocessingFileExplainingDiagnostic(t,n,Ot.Already_included_file_name_0_differs_from_file_name_1_only_in_casing,[t.fileName,e]):addFilePreprocessingFileExplainingDiagnostic(t,n,Ot.File_name_0_differs_from_already_included_file_name_1_only_in_casing,[e,t.fileName])}function findSourceFile(e,t,n,r,i){var o,a;null==(o=J)||o.push(J.Phase.Program,"findSourceFile",{fileName:e,isDefaultLib:t||void 0,fileIncludeKind:ce[r.kind]});const s=function findSourceFileWorker(e,t,n,r,i){var o,a;const s=toPath3(e);if(Le){let o=getRedirectFromOutput(s);if(!o&&ie.realpath&&N.preserveSymlinks&&isDeclarationFileName(e)&&e.includes(Mo)){const t=toPath3(ie.realpath(e));t!==s&&(o=getRedirectFromOutput(t))}if(null==o?void 0:o.source){const a=findSourceFile(o.source,t,n,r,i);return a&&addFileToFilesByName(a,s,e,void 0),a}}const c=e;if(Fe.has(s)){const n=Fe.get(s),i=addFileIncludeReason(n||void 0,r,!0);if(n&&i&&!1!==N.forceConsistentCasingInFileNames){const t=n.fileName;toPath3(t)!==toPath3(e)&&(e=(null==(o=getRedirectFromSourceFile(e))?void 0:o.outputDts)||e);getNormalizedAbsolutePathWithoutRoot(t,ue)!==getNormalizedAbsolutePathWithoutRoot(e,ue)&&reportFileNamesDifferOnlyInCasingError(e,n,r)}return n&&re.get(n.path)&&0===te?(re.set(n.path,!1),N.noResolve||(processReferencedFiles(n,t),processTypeReferenceDirectives(n)),N.noLib||processLibReferenceDirectives(n),ne.set(n.path,!1),processImportedModules(n)):n&&ne.get(n.path)&&teaddFilePreprocessingFileExplainingDiagnostic(void 0,r,Ot.Cannot_read_file_0_Colon_1,[e,t]),Je);if(i){const t=packageIdToString(i),n=Ce.get(t);if(n){const t=function createRedirectedSourceFile(e,t,n,r,i,o,a){var s;const c=Di.createRedirectedSourceFile({redirectTarget:e,unredirected:t});return c.fileName=n,c.path=r,c.resolvedPath=i,c.originalFileName=o,c.packageJsonLocations=(null==(s=a.packageJsonLocations)?void 0:s.length)?a.packageJsonLocations:void 0,c.packageJsonScope=a.packageJsonScope,re.set(r,te>0),c}(n,p,e,s,toPath3(e),c,d);return ke.add(n.path,e),addFileToFilesByName(t,s,e,l),addFileIncludeReason(t,r,!1),Ne.set(s,packageIdToPackageName(i)),L.push(t),t}p&&(Ce.set(t,p),Ne.set(s,packageIdToPackageName(i)))}if(addFileToFilesByName(p,s,e,l),p){if(re.set(s,te>0),p.fileName=e,p.path=s,p.resolvedPath=toPath3(e),p.originalFileName=c,p.packageJsonLocations=(null==(a=d.packageJsonLocations)?void 0:a.length)?d.packageJsonLocations:void 0,p.packageJsonScope=d.packageJsonScope,addFileIncludeReason(p,r,!1),ie.useCaseSensitiveFileNames()){const t=toFileNameLowerCase(s),n=De.get(t);n?reportFileNamesDifferOnlyInCasingError(e,n,r):De.set(t,p)}ae=ae||p.hasNoDefaultLib&&!n,N.noResolve||(processReferencedFiles(p,t),processTypeReferenceDirectives(p)),N.noLib||processLibReferenceDirectives(p),processImportedModules(p),t?w.push(p):L.push(p),(W??(W=new Set)).add(p.path)}return p}(e,t,n,r,i);return null==(a=J)||a.pop(),s}function getCreateSourceFileOptions(e,t,n,r){const i=getImpliedNodeFormatForFileWorker(getNormalizedAbsolutePath(e,ue),null==t?void 0:t.getPackageJsonInfoCache(),n,r),o=zn(r),a=getSetExternalModuleIndicator(r);return"object"==typeof i?{...i,languageVersion:o,setExternalModuleIndicator:a,jsDocParsingMode:n.jsDocParsingMode}:{languageVersion:o,impliedNodeFormat:i,setExternalModuleIndicator:a,jsDocParsingMode:n.jsDocParsingMode}}function addFileIncludeReason(e,t,n){return!(!e||n&&isReferencedFile(t)&&(null==W?void 0:W.has(t.file)))&&(V.getFileReasons().add(e.path,t),!0)}function addFileToFilesByName(e,t,n,r){r?(updateFilesByNameMap(n,r,e),updateFilesByNameMap(n,t,e||!1)):updateFilesByNameMap(n,t,e)}function updateFilesByNameMap(e,t,n){Fe.set(t,n),void 0!==n?Pe.delete(t):Pe.set(t,e)}function getRedirectFromSourceFile(e){return null==Oe?void 0:Oe.get(toPath3(e))}function forEachResolvedProjectReference2(e){return forEachResolvedProjectReference(Ie,e)}function getRedirectFromOutput(e){return null==we?void 0:we.get(e)}function isSourceOfProjectReferenceRedirect(e){return Le&&!!getRedirectFromSourceFile(e)}function getResolvedProjectReferenceByPath(e){if(Ae)return Ae.get(e)||void 0}function processReferencedFiles(e,t){forEach(e.referencedFiles,(n,r)=>{processSourceFile(resolveTripleslashReference(n.fileName,e.fileName),t,!1,void 0,{kind:4,file:e.path,index:r})})}function processTypeReferenceDirectives(e){const t=e.typeReferenceDirectives;if(!t.length)return;const n=(null==Y?void 0:Y.get(e.path))||resolveTypeReferenceDirectiveNamesReusingOldState(t,e),r=createModeAwareCache();(X??(X=new Map)).set(e.path,r);for(let i=0;i{const r=getLibFileNameFromLibReference(t);r?processRootFile(pathForLibFile(r),!0,!0,{kind:7,file:e.path,index:n}):V.addFileProcessingDiagnostic({kind:0,reason:{kind:7,file:e.path,index:n}})})}function getCanonicalFileName(e){return ie.getCanonicalFileName(e)}function processImportedModules(e){if(collectExternalModuleReferences(e),e.imports.length||e.moduleAugmentations.length){const t=getModuleNames(e),n=(null==Q?void 0:Q.get(e.path))||resolveModuleNamesReusingOldState(t,e);h.assert(n.length===t.length);const r=getCompilerOptionsForFile(e),i=createModeAwareCache();($??($=new Map)).set(e.path,i);for(let o=0;oee,_=u&&!getResolutionDiagnostic(r,a,e)&&!r.noResolve&&ogetCommonSourceDirectoryOfConfig(a.commandLine,!ie.useCaseSensitiveFileNames()));i.fileNames.forEach(n=>{if(isDeclarationFileName(n))return;const r=toPath3(n);let o;fileExtensionIs(n,".json")||(i.options.outFile?o=e:(o=getOutputDeclarationFileName(n,a.commandLine,!ie.useCaseSensitiveFileNames(),t),we.set(toPath3(o),{resolvedRef:a,source:n}))),Oe.set(r,{resolvedRef:a,outputDts:o})})}return i.projectReferences&&(a.references=i.projectReferences.map(parseProjectReferenceConfigFile)),a}function checkDeprecations(e,t,n,r){const i=new k(e),o=new k(t),s=new k(D||a),c=function getIgnoreDeprecationsVersion(){const e=N.ignoreDeprecations;if(e){if("5.0"===e)return new k(e);O()}return k.zero}(),l=!(1===o.compareTo(s)),d=!l&&-1===c.compareTo(i);(l||d)&&r((r,i,o)=>{l?void 0===i?n(r,i,o,Ot.Option_0_has_been_removed_Please_remove_it_from_your_configuration,r):n(r,i,o,Ot.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration,r,i):void 0===i?n(r,i,o,Ot.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error,r,t,e):n(r,i,o,Ot.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error,r,i,t,e)})}function addFilePreprocessingFileExplainingDiagnostic(e,t,n,r){V.addFileProcessingDiagnostic({kind:1,file:e&&e.path,fileProcessingReason:t,diagnostic:n,args:r})}function createDiagnosticForOptionPathKeyValue(e,t,n,...r){let i=!0;forEachOptionPathsSyntax(o=>{isObjectLiteralExpression(o.initializer)&&forEachPropertyAssignment(o.initializer,e,e=>{const o=e.initializer;isArrayLiteralExpression(o)&&o.elements.length>t&&(V.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(N.configFile,o.elements[t],n,...r)),i=!1)})}),i&&createCompilerOptionsDiagnostic(n,...r)}function createDiagnosticForOptionPaths(e,t,n,...r){let i=!0;forEachOptionPathsSyntax(o=>{isObjectLiteralExpression(o.initializer)&&createOptionDiagnosticInObjectLiteralSyntax(o.initializer,e,t,void 0,n,...r)&&(i=!1)}),i&&createCompilerOptionsDiagnostic(n,...r)}function forEachOptionPathsSyntax(e){return forEachOptionsSyntaxByName(getCompilerOptionsObjectLiteralSyntax(),"paths",e)}function createDiagnosticForOptionName(e,t,n,r){createDiagnosticForOption(!0,t,n,e,t,n,r)}function createOptionValueDiagnostic(e,t,...n){createDiagnosticForOption(!1,e,void 0,t,...n)}function createDiagnosticForReference(e,t,n,...r){const i=forEachTsConfigPropArray(e||N.configFile,"references",e=>isArrayLiteralExpression(e.initializer)?e.initializer:void 0);i&&i.elements.length>t?V.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(e||N.configFile,i.elements[t],n,...r)):V.addConfigDiagnostic(createCompilerDiagnostic(n,...r))}function createDiagnosticForOption(e,t,n,r,...i){const o=getCompilerOptionsObjectLiteralSyntax();(!o||!createOptionDiagnosticInObjectLiteralSyntax(o,e,t,n,r,...i))&&createCompilerOptionsDiagnostic(r,...i)}function createCompilerOptionsDiagnostic(e,...t){const n=getCompilerOptionsPropertySyntax();n?"messageText"in e?V.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(N.configFile,n.name,e)):V.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(N.configFile,n.name,e,...t)):"messageText"in e?V.addConfigDiagnostic(createCompilerDiagnosticFromMessageChain(e)):V.addConfigDiagnostic(createCompilerDiagnostic(e,...t))}function getCompilerOptionsObjectLiteralSyntax(){if(void 0===ge){const e=getCompilerOptionsPropertySyntax();ge=e&&tryCast(e.initializer,isObjectLiteralExpression)||!1}return ge||void 0}function getCompilerOptionsPropertySyntax(){return void 0===ye&&(ye=forEachPropertyAssignment(getTsConfigObjectLiteralExpression(N.configFile),"compilerOptions",identity)||!1),ye||void 0}function createOptionDiagnosticInObjectLiteralSyntax(e,t,n,r,i,...o){let a=!1;return forEachPropertyAssignment(e,n,e=>{"messageText"in i?V.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(N.configFile,t?e.name:e.initializer,i)):V.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(N.configFile,t?e.name:e.initializer,i,...o)),a=!0},r),a}function blockEmittingOfFile(e,t){fe.set(toPath3(e),!0),V.addConfigDiagnostic(t)}function isSameFile(e,t){return 0===comparePaths(e,t,ue,!ie.useCaseSensitiveFileNames())}function getSymlinkCache(){return ie.getSymlinkCache?ie.getSymlinkCache():(R||(R=createSymlinkCache(ue,getCanonicalFileName)),M&&!R.hasProcessedResolutions()&&R.setSymlinksFromResolutions(forEachResolvedModule,forEachResolvedTypeReferenceDirective,H),R)}function getModeForUsageLocation2(e,t){return getModeForUsageLocationWorker(e,t,getCompilerOptionsForFile(e))}function getModeForResolutionAtIndex2(e,t){return getModeForUsageLocation2(e,getModuleNameStringLiteralAt(e,t))}function getDefaultResolutionModeForFile2(e){return getDefaultResolutionModeForFileWorker(e,getCompilerOptionsForFile(e))}function getEmitModuleFormatOfFile2(e){return getEmitModuleFormatOfFileWorker(e,getCompilerOptionsForFile(e))}function shouldTransformImportCall(e){return shouldTransformImportCallWorker(e,getCompilerOptionsForFile(e))}function getModeForTypeReferenceDirectiveInFile(e,t){return e.resolutionMode||getDefaultResolutionModeForFile2(t)}}function shouldTransformImportCallWorker(e,t){const n=Vn(t);return!(100<=n&&n<=199||200===n)&&getEmitModuleFormatOfFileWorker(e,t)<5}function getEmitModuleFormatOfFileWorker(e,t){return getImpliedNodeFormatForEmitWorker(e,t)??Vn(t)}function getImpliedNodeFormatForEmitWorker(e,t){var n,r;const i=Vn(t);return 100<=i&&i<=199?e.impliedNodeFormat:1!==e.impliedNodeFormat||"commonjs"!==(null==(n=e.packageJsonScope)?void 0:n.contents.packageJsonContent.type)&&!fileExtensionIsOneOf(e.fileName,[".cjs",".cts"])?99!==e.impliedNodeFormat||"module"!==(null==(r=e.packageJsonScope)?void 0:r.contents.packageJsonContent.type)&&!fileExtensionIsOneOf(e.fileName,[".mjs",".mts"])?void 0:99:1}function getDefaultResolutionModeForFileWorker(e,t){return importSyntaxAffectsModuleResolution(t)?getImpliedNodeFormatForEmitWorker(e,t):void 0}var Va={diagnostics:l,sourceMaps:void 0,emittedFiles:void 0,emitSkipped:!0};function handleNoEmitOptions(e,t,n,r){const i=e.getCompilerOptions();if(i.noEmit)return t?Va:e.emitBuildInfo(n,r);if(!i.noEmitOnError)return;let o,a=[...e.getOptionsDiagnostics(r),...e.getSyntacticDiagnostics(t,r),...e.getGlobalDiagnostics(r),...e.getSemanticDiagnostics(t,r)];if(0===a.length&&Zn(e.getCompilerOptions())&&(a=e.getDeclarationDiagnostics(void 0,r)),a.length){if(!t){const t=e.emitBuildInfo(n,r);t.diagnostics&&(a=[...a,...t.diagnostics]),o=t.emittedFiles}return{diagnostics:a,sourceMaps:void 0,emittedFiles:o,emitSkipped:!0}}}function filterSemanticDiagnostics(e,t){return filter(e,e=>!e.skippedOn||!t[e.skippedOn])}function parseConfigHostFromCompilerHostLike(e,t=e){return{fileExists:e=>t.fileExists(e),readDirectory:(e,n,r,i,o)=>(h.assertIsDefined(t.readDirectory,"'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'"),t.readDirectory(e,n,r,i,o)),readFile:e=>t.readFile(e),directoryExists:maybeBind(t,t.directoryExists),getDirectories:maybeBind(t,t.getDirectories),realpath:maybeBind(t,t.realpath),useCaseSensitiveFileNames:e.useCaseSensitiveFileNames(),getCurrentDirectory:()=>e.getCurrentDirectory(),onUnRecoverableConfigFileDiagnostic:e.onUnRecoverableConfigFileDiagnostic||returnUndefined,trace:e.trace?t=>e.trace(t):void 0}}function resolveProjectReferencePath(e){return resolveConfigFileProjectName(e.path)}function getResolutionDiagnostic(e,{extension:t},{isDeclarationFile:n}){switch(t){case".ts":case".d.ts":case".mts":case".d.mts":case".cts":case".d.cts":return;case".tsx":return needJsx();case".jsx":return needJsx()||needAllowJs();case".js":case".mjs":case".cjs":return needAllowJs();case".json":return function needResolveJsonModule(){return Yn(e)?void 0:Ot.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used}();default:return function needAllowArbitraryExtensions(){return n||e.allowArbitraryExtensions?void 0:Ot.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set}()}function needJsx(){return e.jsx?void 0:Ot.Module_0_was_resolved_to_1_but_jsx_is_not_set}function needAllowJs(){return rr(e)||!getStrictOptionValue(e,"noImplicitAny")?void 0:Ot.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type}}function getModuleNames({imports:e,moduleAugmentations:t}){const n=e.map(e=>e);for(const e of t)11===e.kind&&n.push(e);return n}function getModuleNameStringLiteralAt({imports:e,moduleAugmentations:t},n){if(nn,getFileReasons:()=>c,getCommonSourceDirectory:()=>r,getConfigDiagnostics:()=>i,getLazyConfigDiagnostics:()=>o,getCombinedDiagnostics:e=>t||(t=createDiagnosticCollection(),null==i||i.getDiagnostics().forEach(e=>t.add(e)),null==n||n.forEach(n=>{switch(n.kind){case 1:return t.add(createDiagnosticExplainingFile(e,n.file&&e.getSourceFileByPath(n.file),n.fileProcessingReason,n.diagnostic,n.args||l));case 0:return t.add(function filePreprocessingLibreferenceDiagnostic(e,{reason:t}){const{file:n,pos:r,end:i}=getReferencedFileLocation(e,t),o=getLibNameFromLibReference(n.libReferenceDirectives[t.index]),a=getSpellingSuggestion(removeSuffix(removePrefix(o,"lib."),".d.ts"),zi,identity);return createFileDiagnostic(n,h.checkDefined(r),h.checkDefined(i)-r,a?Ot.Cannot_find_lib_definition_for_0_Did_you_mean_1:Ot.Cannot_find_lib_definition_for_0,o,a)}(e,n));case 2:return n.diagnostics.forEach(e=>t.add(e));default:h.assertNever(n)}}),null==o||o.forEach(({file:n,diagnostic:r,args:i})=>t.add(createDiagnosticExplainingFile(e,n,void 0,r,i))),a=void 0,s=void 0,t)};function createDiagnosticExplainingFile(t,n,r,i,o){let d,p,u,m,_,f;const g=n&&c.get(n.path);let y=isReferencedFile(r)?r:void 0,T=n&&(null==a?void 0:a.get(n.path));T?(T.fileIncludeReasonDetails?(d=new Set(g),null==g||g.forEach(populateRelatedInfo)):null==g||g.forEach(processReason),_=T.redirectInfo):(null==g||g.forEach(processReason),_=n&&explainIfFileIsRedirectAndImpliedFormat(n,t.getCompilerOptionsForFile(n))),r&&processReason(r);const S=(null==d?void 0:d.size)!==(null==g?void 0:g.length);y&&1===(null==d?void 0:d.size)&&(d=void 0),d&&T&&(T.details&&!S?f=chainDiagnosticMessages(T.details,i,...o??l):T.fileIncludeReasonDetails&&(S?p=cachedFileIncludeDetailsHasProcessedExtraReason()?append(T.fileIncludeReasonDetails.next.slice(0,g.length),p[0]):[...T.fileIncludeReasonDetails.next,p[0]]:cachedFileIncludeDetailsHasProcessedExtraReason()?p=T.fileIncludeReasonDetails.next.slice(0,g.length):m=T.fileIncludeReasonDetails)),f||(m||(m=d&&chainDiagnosticMessages(p,Ot.The_file_is_in_the_program_because_Colon)),f=chainDiagnosticMessages(_?m?[m,..._]:_:m,i,...o||l)),n&&(T?(!T.fileIncludeReasonDetails||!S&&m)&&(T.fileIncludeReasonDetails=m):(a??(a=new Map)).set(n.path,T={fileIncludeReasonDetails:m,redirectInfo:_}),T.details||S||(T.details=f.next));const x=y&&getReferencedFileLocation(t,y);return x&&isReferenceFileLocation(x)?createFileDiagnosticFromMessageChain(x.file,x.pos,x.end-x.pos,f,u):createCompilerDiagnosticFromMessageChain(f,u);function processReason(e){(null==d?void 0:d.has(e))||((d??(d=new Set)).add(e),(p??(p=[])).push(fileIncludeReasonToDiagnostics(t,e)),populateRelatedInfo(e))}function populateRelatedInfo(n){!y&&isReferencedFile(n)?y=n:y!==n&&(u=append(u,function getFileIncludeReasonToRelatedInformation(t,n){let r=null==s?void 0:s.get(n);void 0===r&&(s??(s=new Map)).set(n,r=function fileIncludeReasonToRelatedInformation(t,n){if(isReferencedFile(n)){const e=getReferencedFileLocation(t,n);let r;switch(n.kind){case 3:r=Ot.File_is_included_via_import_here;break;case 4:r=Ot.File_is_included_via_reference_here;break;case 5:r=Ot.File_is_included_via_type_library_reference_here;break;case 7:r=Ot.File_is_included_via_library_reference_here;break;default:h.assertNever(n)}return isReferenceFileLocation(e)?createFileDiagnostic(e.file,e.pos,e.end-e.pos,r):void 0}const r=t.getCurrentDirectory(),i=t.getRootFileNames(),o=t.getCompilerOptions();if(!o.configFile)return;let a,s;switch(n.kind){case 0:if(!o.configFile.configFileSpecs)return;const c=getNormalizedAbsolutePath(i[n.index],r),l=getMatchedFileSpec(t,c);if(l){a=getTsConfigPropArrayElementValue(o.configFile,"files",l),s=Ot.File_is_matched_by_files_list_specified_here;break}const d=getMatchedIncludeSpec(t,c);if(!d||!isString(d))return;a=getTsConfigPropArrayElementValue(o.configFile,"include",d),s=Ot.File_is_matched_by_include_pattern_specified_here;break;case 1:case 2:const p=t.getResolvedProjectReferences(),u=t.getProjectReferences(),m=h.checkDefined(null==p?void 0:p[n.index]),_=forEachProjectReference(u,p,(e,t,n)=>e===m?{sourceFile:(null==t?void 0:t.sourceFile)||o.configFile,index:n}:void 0);if(!_)return;const{sourceFile:f,index:g}=_,y=forEachTsConfigPropArray(f,"references",e=>isArrayLiteralExpression(e.initializer)?e.initializer:void 0);return y&&y.elements.length>g?createDiagnosticForNodeInSourceFile(f,y.elements[g],2===n.kind?Ot.File_is_output_from_referenced_project_specified_here:Ot.File_is_source_from_referenced_project_specified_here):void 0;case 8:if(!o.types)return;a=getOptionsSyntaxByArrayElementValue(e(),"types",n.typeReference),s=Ot.File_is_entry_point_of_type_library_specified_here;break;case 6:if(void 0!==n.index){a=getOptionsSyntaxByArrayElementValue(e(),"lib",o.lib[n.index]),s=Ot.File_is_library_specified_here;break}const T=getNameOfScriptTarget(zn(o));a=T?getOptionsSyntaxByValue(e(),"target",T):void 0,s=Ot.File_is_default_library_for_target_specified_here;break;default:h.assertNever(n)}return a&&createDiagnosticForNodeInSourceFile(o.configFile,a,s)}(t,n)??!1);return r||void 0}(t,n)))}function cachedFileIncludeDetailsHasProcessedExtraReason(){var e;return(null==(e=T.fileIncludeReasonDetails.next)?void 0:e.length)!==(null==g?void 0:g.length)}}}function getFileEmitOutput(e,t,n,r,i,o){const a=[],{emitSkipped:s,diagnostics:c}=e.emit(t,function writeFile2(e,t,n){a.push({name:e,writeByteOrderMark:n,text:t})},r,n,i,o);return{outputFiles:a,emitSkipped:s,diagnostics:c}}var qa,Ha=(e=>(e[e.ComputedDts=0]="ComputedDts",e[e.StoredSignatureAtEmit=1]="StoredSignatureAtEmit",e[e.UsedVersion=2]="UsedVersion",e))(Ha||{});(e=>{function createManyToManyPathMap(){return function create2(e,t,n){const r={getKeys:e=>t.get(e),getValues:t=>e.get(t),keys:()=>e.keys(),size:()=>e.size,deleteKey:r=>{(n||(n=new Set)).add(r);const i=e.get(r);return!!i&&(i.forEach(e=>deleteFromMultimap(t,e,r)),e.delete(r),!0)},set:(i,o)=>{null==n||n.delete(i);const a=e.get(i);return e.set(i,o),null==a||a.forEach(e=>{o.has(e)||deleteFromMultimap(t,e,i)}),o.forEach(e=>{(null==a?void 0:a.has(e))||function addToMultimap(e,t,n){let r=e.get(t);r||(r=new Set,e.set(t,r));r.add(n)}(t,e,i)}),r}};return r}(new Map,new Map,void 0)}function deleteFromMultimap(e,t,n){const r=e.get(t);return!!(null==r?void 0:r.delete(n))&&(r.size||e.delete(t),!0)}function getReferencedFilesFromImportLiteral(e,t){const n=e.getSymbolAtLocation(t);return n&&function getReferencedFilesFromImportedModuleSymbol(e){return mapDefined(e.declarations,e=>{var t;return null==(t=getSourceFileOfNode(e))?void 0:t.resolvedPath})}(n)}function getReferencedFileFromFileName(e,t,n,r){var i;return toPath((null==(i=e.getRedirectFromSourceFile(t))?void 0:i.outputDts)||t,n,r)}function getReferencedFiles(e,t,n){let r;if(t.imports&&t.imports.length>0){const n=e.getTypeChecker();for(const e of t.imports){const t=getReferencedFilesFromImportLiteral(n,e);null==t||t.forEach(addReferencedFile)}}const i=getDirectoryPath(t.resolvedPath);if(t.referencedFiles&&t.referencedFiles.length>0)for(const r of t.referencedFiles){addReferencedFile(getReferencedFileFromFileName(e,r.fileName,i,n))}if(e.forEachResolvedTypeReferenceDirective(({resolvedTypeReferenceDirective:t})=>{if(!t)return;const r=t.resolvedFileName;addReferencedFile(getReferencedFileFromFileName(e,r,i,n))},t),t.moduleAugmentations.length){const n=e.getTypeChecker();for(const e of t.moduleAugmentations){if(!isStringLiteral(e))continue;const t=n.getSymbolAtLocation(e);t&&addReferenceFromAmbientModule(t)}}for(const t of e.getTypeChecker().getAmbientModules())t.declarations&&t.declarations.length>1&&addReferenceFromAmbientModule(t);return r;function addReferenceFromAmbientModule(e){if(e.declarations)for(const n of e.declarations){const e=getSourceFileOfNode(n);e&&e!==t&&addReferencedFile(e.resolvedPath)}}function addReferencedFile(e){(r||(r=new Set)).add(e)}}function canReuseOldState(e,t){return t&&!t.referencedMap==!e}function createReferencedMap(e){return 0===e.module||e.outFile?void 0:createManyToManyPathMap()}function getFilesAffectedByWithOldState(e,t,n,r,i){const o=t.getSourceFileByPath(n);return o?updateShapeSignature(e,t,o,r,i)?(e.referencedMap?getFilesAffectedByUpdatedShapeWhenModuleEmit:getFilesAffectedByUpdatedShapeWhenNonModuleEmit)(e,t,o,r,i):[o]:l}function computeDtsSignature(e,t,n,r,i){e.emit(t,(n,o,a,s,c,l)=>{h.assert(isDeclarationFileName(n),`File extension for signature expected to be dts: Got:: ${n}`),i(computeSignatureWithDiagnostics(e,t,o,r,l),c)},n,2,void 0,!0)}function updateShapeSignature(e,t,n,r,i,o=e.useFileVersionAsSignature){var a;if(null==(a=e.hasCalledUpdateShapeSignature)?void 0:a.has(n.resolvedPath))return!1;const s=e.fileInfos.get(n.resolvedPath),c=s.signature;let l;return n.isDeclarationFile||o||computeDtsSignature(t,n,r,i,t=>{l=t,i.storeSignatureInfo&&(e.signatureInfo??(e.signatureInfo=new Map)).set(n.resolvedPath,0)}),void 0===l&&(l=n.version,i.storeSignatureInfo&&(e.signatureInfo??(e.signatureInfo=new Map)).set(n.resolvedPath,2)),(e.oldSignatures||(e.oldSignatures=new Map)).set(n.resolvedPath,c||!1),(e.hasCalledUpdateShapeSignature||(e.hasCalledUpdateShapeSignature=new Set)).add(n.resolvedPath),s.signature=l,l!==c}function getAllFileNames(e,t){if(!e.allFileNames){const n=t.getSourceFiles();e.allFileNames=n===l?l:n.map(e=>e.fileName)}return e.allFileNames}function getReferencedByPaths(e,t){const n=e.referencedMap.getKeys(t);return n?arrayFrom(n.keys()):[]}function isFileAffectingGlobalScope(e){return function containsGlobalScopeAugmentation(e){return some(e.moduleAugmentations,e=>isGlobalScopeAugmentation(e.parent))}(e)||!isExternalOrCommonJsModule(e)&&!isJsonSourceFile(e)&&!function containsOnlyAmbientModules(e){for(const t of e.statements)if(!isModuleWithStringLiteralName(t))return!1;return!0}(e)}function getAllFilesExcludingDefaultLibraryFile(e,t,n){if(e.allFilesExcludingDefaultLibraryFile)return e.allFilesExcludingDefaultLibraryFile;let r;n&&addSourceFile(n);for(const e of t.getSourceFiles())e!==n&&addSourceFile(e);return e.allFilesExcludingDefaultLibraryFile=r||l,e.allFilesExcludingDefaultLibraryFile;function addSourceFile(e){t.isSourceFileDefaultLibrary(e)||(r||(r=[])).push(e)}}function getFilesAffectedByUpdatedShapeWhenNonModuleEmit(e,t,n){const r=t.getCompilerOptions();return r&&r.outFile?[n]:getAllFilesExcludingDefaultLibraryFile(e,t,n)}function getFilesAffectedByUpdatedShapeWhenModuleEmit(e,t,n,r,i){if(isFileAffectingGlobalScope(n))return getAllFilesExcludingDefaultLibraryFile(e,t,n);const o=t.getCompilerOptions();if(o&&(Kn(o)||o.outFile))return[n];const a=new Map;a.set(n.resolvedPath,n);const s=getReferencedByPaths(e,n.resolvedPath);for(;s.length>0;){const n=s.pop();if(!a.has(n)){const o=t.getSourceFileByPath(n);a.set(n,o),o&&updateShapeSignature(e,t,o,r,i)&&s.push(...getReferencedByPaths(e,o.resolvedPath))}}return arrayFrom(mapDefinedIterator(a.values(),e=>e))}e.createManyToManyPathMap=createManyToManyPathMap,e.canReuseOldState=canReuseOldState,e.createReferencedMap=createReferencedMap,e.create=function create(e,t,n){var r,i;const o=new Map,a=e.getCompilerOptions(),s=createReferencedMap(a),c=canReuseOldState(s,t);e.getTypeChecker();for(const n of e.getSourceFiles()){const l=h.checkDefined(n.version,"Program intended to be used with Builder should have source files with versions set"),d=c?null==(r=t.oldSignatures)?void 0:r.get(n.resolvedPath):void 0,p=void 0===d?c?null==(i=t.fileInfos.get(n.resolvedPath))?void 0:i.signature:void 0:d||void 0;if(s){const t=getReferencedFiles(e,n,e.getCanonicalFileName);t&&s.set(n.resolvedPath,t)}o.set(n.resolvedPath,{version:l,signature:p,affectsGlobalScope:a.outFile?void 0:isFileAffectingGlobalScope(n)||void 0,impliedFormat:n.impliedNodeFormat})}return{fileInfos:o,referencedMap:s,useFileVersionAsSignature:!n&&!c}},e.releaseCache=function releaseCache2(e){e.allFilesExcludingDefaultLibraryFile=void 0,e.allFileNames=void 0},e.getFilesAffectedBy=function getFilesAffectedBy(e,t,n,r,i){var o;const a=getFilesAffectedByWithOldState(e,t,n,r,i);return null==(o=e.oldSignatures)||o.clear(),a},e.getFilesAffectedByWithOldState=getFilesAffectedByWithOldState,e.updateSignatureOfFile=function updateSignatureOfFile(e,t,n){e.fileInfos.get(n).signature=t,(e.hasCalledUpdateShapeSignature||(e.hasCalledUpdateShapeSignature=new Set)).add(n)},e.computeDtsSignature=computeDtsSignature,e.updateShapeSignature=updateShapeSignature,e.getAllDependencies=function getAllDependencies(e,t,n){if(t.getCompilerOptions().outFile)return getAllFileNames(e,t);if(!e.referencedMap||isFileAffectingGlobalScope(n))return getAllFileNames(e,t);const r=new Set,i=[n.resolvedPath];for(;i.length;){const t=i.pop();if(!r.has(t)){r.add(t);const n=e.referencedMap.getValues(t);if(n)for(const e of n.keys())i.push(e)}}return arrayFrom(mapDefinedIterator(r.keys(),e=>{var n;return(null==(n=t.getSourceFileByPath(e))?void 0:n.fileName)??e}))},e.getReferencedByPaths=getReferencedByPaths,e.getAllFilesExcludingDefaultLibraryFile=getAllFilesExcludingDefaultLibraryFile})(qa||(qa={}));var Ka=(e=>(e[e.None=0]="None",e[e.Js=1]="Js",e[e.JsMap=2]="JsMap",e[e.JsInlineMap=4]="JsInlineMap",e[e.DtsErrors=8]="DtsErrors",e[e.DtsEmit=16]="DtsEmit",e[e.DtsMap=32]="DtsMap",e[e.Dts=24]="Dts",e[e.AllJs=7]="AllJs",e[e.AllDtsEmit=48]="AllDtsEmit",e[e.AllDts=56]="AllDts",e[e.All=63]="All",e))(Ka||{});function isBuilderProgramStateWithDefinedProgram(e){return void 0!==e.program}function getBuilderFileEmit(e){let t=1;return e.sourceMap&&(t|=2),e.inlineSourceMap&&(t|=4),Zn(e)&&(t|=24),e.declarationMap&&(t|=32),e.emitDeclarationOnly&&(t&=56),t}function getPendingEmitKind(e,t){const n=t&&(isNumber(t)?t:getBuilderFileEmit(t)),r=isNumber(e)?e:getBuilderFileEmit(e);if(n===r)return 0;if(!n||!r)return r;const i=n^r;let o=0;return 7&i&&(o=7&r),8&i&&(o|=8&r),48&i&&(o|=48&r),o}function createBuilderProgramState(e,t){var n,r;const i=qa.create(e,t,!1);i.program=e;const o=e.getCompilerOptions();i.compilerOptions=o;const a=o.outFile;i.semanticDiagnosticsPerFile=new Map,a&&o.composite&&(null==t?void 0:t.outSignature)&&a===t.compilerOptions.outFile&&(i.outSignature=t.outSignature&&getEmitSignatureFromOldSignature(o,t.compilerOptions,t.outSignature)),i.changedFilesSet=new Set,i.latestChangedDtsFile=o.composite?null==t?void 0:t.latestChangedDtsFile:void 0,i.checkPending=!!i.compilerOptions.noCheck||void 0;const s=qa.canReuseOldState(i.referencedMap,t),c=s?t.compilerOptions:void 0;let l=s&&!compilerOptionsAffectSemanticDiagnostics(o,c);const d=o.composite&&(null==t?void 0:t.emitSignatures)&&!a&&!compilerOptionsAffectDeclarationPath(o,t.compilerOptions);let p=!0;s?(null==(n=t.changedFilesSet)||n.forEach(e=>i.changedFilesSet.add(e)),!a&&(null==(r=t.affectedFilesPendingEmit)?void 0:r.size)&&(i.affectedFilesPendingEmit=new Map(t.affectedFilesPendingEmit),i.seenAffectedFiles=new Set),i.programEmitPending=t.programEmitPending,a&&i.changedFilesSet.size&&(l=!1,p=!1),i.hasErrorsFromOldState=t.hasErrors):i.buildInfoEmitPending=tr(o);const u=i.referencedMap,m=s?t.referencedMap:void 0,_=l&&!o.skipLibCheck==!c.skipLibCheck,f=_&&!o.skipDefaultLibCheck==!c.skipDefaultLibCheck;if(i.fileInfos.forEach((n,r)=>{var a;let c,g;if(!s||!(c=t.fileInfos.get(r))||c.version!==n.version||c.impliedFormat!==n.impliedFormat||!function hasSameKeys(e,t){return e===t||void 0!==e&&void 0!==t&&e.size===t.size&&!forEachKey(e,e=>!t.has(e))}(g=u&&u.getValues(r),m&&m.getValues(r))||g&&forEachKey(g,e=>!i.fileInfos.has(e)&&t.fileInfos.has(e)))addFileToChangeSet(r);else{const n=e.getSourceFileByPath(r),o=p?null==(a=t.emitDiagnosticsPerFile)?void 0:a.get(r):void 0;if(o&&(i.emitDiagnosticsPerFile??(i.emitDiagnosticsPerFile=new Map)).set(r,t.hasReusableDiagnostic?convertToDiagnostics(o,r,e):repopulateDiagnostics(o,e)),l){if(n.isDeclarationFile&&!_)return;if(n.hasNoDefaultLib&&!f)return;const o=t.semanticDiagnosticsPerFile.get(r);o&&(i.semanticDiagnosticsPerFile.set(r,t.hasReusableDiagnostic?convertToDiagnostics(o,r,e):repopulateDiagnostics(o,e)),(i.semanticDiagnosticsFromOldState??(i.semanticDiagnosticsFromOldState=new Set)).add(r))}}if(d){const e=t.emitSignatures.get(r);e&&(i.emitSignatures??(i.emitSignatures=new Map)).set(r,getEmitSignatureFromOldSignature(o,t.compilerOptions,e))}}),s&&forEachEntry(t.fileInfos,(e,t)=>!i.fileInfos.has(t)&&(!!e.affectsGlobalScope||(i.buildInfoEmitPending=!0,!!a))))qa.getAllFilesExcludingDefaultLibraryFile(i,e,void 0).forEach(e=>addFileToChangeSet(e.resolvedPath));else if(c){const t=compilerOptionsAffectEmit(o,c)?getBuilderFileEmit(o):getPendingEmitKind(o,c);0!==t&&(a?i.changedFilesSet.size||(i.programEmitPending=i.programEmitPending?i.programEmitPending|t:t):(e.getSourceFiles().forEach(e=>{i.changedFilesSet.has(e.resolvedPath)||addToAffectedFilesPendingEmit(i,e.resolvedPath,t)}),h.assert(!i.seenAffectedFiles||!i.seenAffectedFiles.size),i.seenAffectedFiles=i.seenAffectedFiles||new Set),i.buildInfoEmitPending=!0)}return s&&i.semanticDiagnosticsPerFile.size!==i.fileInfos.size&&t.checkPending!==i.checkPending&&(i.buildInfoEmitPending=!0),i;function addFileToChangeSet(e){i.changedFilesSet.add(e),a&&(l=!1,p=!1,i.semanticDiagnosticsFromOldState=void 0,i.semanticDiagnosticsPerFile.clear(),i.emitDiagnosticsPerFile=void 0),i.buildInfoEmitPending=!0,i.programEmitPending=void 0}}function getEmitSignatureFromOldSignature(e,t,n){return!!e.declarationMap==!!t.declarationMap?n:isString(n)?[n]:n[0]}function repopulateDiagnostics(e,t){return e.length?sameMap(e,e=>{if(isString(e.messageText))return e;const n=convertOrRepopulateDiagnosticMessageChain(e.messageText,e.file,t,e=>{var t;return null==(t=e.repopulateInfo)?void 0:t.call(e)});return n===e.messageText?e:{...e,messageText:n}}):e}function convertOrRepopulateDiagnosticMessageChain(e,t,n,r){const i=r(e);if(!0===i)return{...createModeMismatchDetails(t),next:convertOrRepopulateDiagnosticMessageChainArray(e.next,t,n,r)};if(i)return{...createModuleNotFoundChain(t,n,i.moduleReference,i.mode,i.packageName||i.moduleReference),next:convertOrRepopulateDiagnosticMessageChainArray(e.next,t,n,r)};const o=convertOrRepopulateDiagnosticMessageChainArray(e.next,t,n,r);return o===e.next?e:{...e,next:o}}function convertOrRepopulateDiagnosticMessageChainArray(e,t,n,r){return sameMap(e,e=>convertOrRepopulateDiagnosticMessageChain(e,t,n,r))}function convertToDiagnostics(e,t,n){if(!e.length)return l;let r;return e.map(e=>{const r=convertToDiagnosticRelatedInformation(e,t,n,toPathInBuildInfoDirectory);r.reportsUnnecessary=e.reportsUnnecessary,r.reportsDeprecated=e.reportDeprecated,r.source=e.source,r.skippedOn=e.skippedOn;const{relatedInformation:i}=e;return r.relatedInformation=i?i.length?i.map(e=>convertToDiagnosticRelatedInformation(e,t,n,toPathInBuildInfoDirectory)):[]:void 0,r});function toPathInBuildInfoDirectory(e){return r??(r=getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(n.getCompilerOptions()),n.getCurrentDirectory()))),toPath(e,r,n.getCanonicalFileName)}}function convertToDiagnosticRelatedInformation(e,t,n,r){const{file:i}=e,o=!1!==i?n.getSourceFileByPath(i?r(i):t):void 0;return{...e,file:o,messageText:isString(e.messageText)?e.messageText:convertOrRepopulateDiagnosticMessageChain(e.messageText,o,n,e=>e.info)}}function assertSourceFileOkWithoutNextAffectedCall(e,t){h.assert(!t||!e.affectedFiles||e.affectedFiles[e.affectedFilesIndex-1]!==t||!e.semanticDiagnosticsPerFile.has(t.resolvedPath))}function getNextAffectedFile(e,t,n){for(var r;;){const{affectedFiles:i}=e;if(i){const o=e.seenAffectedFiles;let a=e.affectedFilesIndex;for(;a{const i=n?55&t:7&t;i?e.affectedFilesPendingEmit.set(r,i):e.affectedFilesPendingEmit.delete(r)}),e.programEmitPending)){const t=n?55&e.programEmitPending:7&e.programEmitPending;e.programEmitPending=t||void 0}}function getPendingEmitKindWithSeen(e,t,n,r){let i=getPendingEmitKind(e,t);return n&&(i&=56),r&&(i&=8),i}function getBuilderFileEmitAllDts(e){return e?8:56}function removeDiagnosticsOfLibraryFiles(e){if(!e.cleanedDiagnosticsOfLibFiles){e.cleanedDiagnosticsOfLibFiles=!0;const t=e.program.getCompilerOptions();forEach(e.program.getSourceFiles(),n=>e.program.isSourceFileDefaultLibrary(n)&&!skipTypeCheckingIgnoringNoCheck(n,t,e.program)&&removeSemanticDiagnosticsOf(e,n.resolvedPath))}}function handleDtsMayChangeOfAffectedFile(e,t,n,r){if(removeSemanticDiagnosticsOf(e,t.resolvedPath),e.allFilesExcludingDefaultLibraryFile===e.affectedFiles)return removeDiagnosticsOfLibraryFiles(e),void qa.updateShapeSignature(e,e.program,t,n,r);e.compilerOptions.assumeChangesOnlyAffectDirectDependencies||function handleDtsMayChangeOfReferencingExportOfAffectedFile(e,t,n,r){var i,o;if(!e.referencedMap||!e.changedFilesSet.has(t.resolvedPath))return;if(!isChangedSignature(e,t.resolvedPath))return;if(Kn(e.compilerOptions)){const i=new Map;i.set(t.resolvedPath,!0);const o=qa.getReferencedByPaths(e,t.resolvedPath);for(;o.length>0;){const t=o.pop();if(!i.has(t)){if(i.set(t,!0),handleDtsMayChangeOfGlobalScope(e,t,!1,n,r))return;if(handleDtsMayChangeOf(e,t,!1,n,r),isChangedSignature(e,t)){const n=e.program.getSourceFileByPath(t);o.push(...qa.getReferencedByPaths(e,n.resolvedPath))}}}}const a=new Set,s=!!(null==(i=t.symbol)?void 0:i.exports)&&!!forEachEntry(t.symbol.exports,n=>{if(128&n.flags)return!0;const r=skipAlias(n,e.program.getTypeChecker());return r!==n&&(!!(128&r.flags)&&some(r.declarations,e=>getSourceFileOfNode(e)===t))});null==(o=e.referencedMap.getKeys(t.resolvedPath))||o.forEach(t=>{if(handleDtsMayChangeOfGlobalScope(e,t,s,n,r))return!0;const i=e.referencedMap.getKeys(t);return i&&forEachKey(i,t=>handleDtsMayChangeOfFileAndExportsOfFile(e,t,s,a,n,r))})}(e,t,n,r)}function handleDtsMayChangeOf(e,t,n,r,i){if(removeSemanticDiagnosticsOf(e,t),!e.changedFilesSet.has(t)){const o=e.program.getSourceFileByPath(t);o&&(qa.updateShapeSignature(e,e.program,o,r,i,!0),n?addToAffectedFilesPendingEmit(e,t,getBuilderFileEmit(e.compilerOptions)):Zn(e.compilerOptions)&&addToAffectedFilesPendingEmit(e,t,e.compilerOptions.declarationMap?56:24))}}function removeSemanticDiagnosticsOf(e,t){return!e.semanticDiagnosticsFromOldState||(e.semanticDiagnosticsFromOldState.delete(t),e.semanticDiagnosticsPerFile.delete(t),!e.semanticDiagnosticsFromOldState.size)}function isChangedSignature(e,t){const n=h.checkDefined(e.oldSignatures).get(t)||void 0;return h.checkDefined(e.fileInfos.get(t)).signature!==n}function handleDtsMayChangeOfGlobalScope(e,t,n,r,i){var o;return!!(null==(o=e.fileInfos.get(t))?void 0:o.affectsGlobalScope)&&(qa.getAllFilesExcludingDefaultLibraryFile(e,e.program,void 0).forEach(t=>handleDtsMayChangeOf(e,t.resolvedPath,n,r,i)),removeDiagnosticsOfLibraryFiles(e),!0)}function handleDtsMayChangeOfFileAndExportsOfFile(e,t,n,r,i,o){var a;if(tryAddToSet(r,t)){if(handleDtsMayChangeOfGlobalScope(e,t,n,i,o))return!0;handleDtsMayChangeOf(e,t,n,i,o),null==(a=e.referencedMap.getKeys(t))||a.forEach(t=>handleDtsMayChangeOfFileAndExportsOfFile(e,t,n,r,i,o))}}function getSemanticDiagnosticsOfFile(e,t,n,r){return e.compilerOptions.noCheck?l:concatenate(function getBinderAndCheckerDiagnosticsOfFile(e,t,n,r){r??(r=e.semanticDiagnosticsPerFile);const i=t.resolvedPath,o=r.get(i);if(o)return filterSemanticDiagnostics(o,e.compilerOptions);const a=e.program.getBindAndCheckDiagnostics(t,n);return r.set(i,a),e.buildInfoEmitPending=!0,filterSemanticDiagnostics(a,e.compilerOptions)}(e,t,n,r),e.program.getProgramDiagnostics(t))}function isIncrementalBundleEmitBuildInfo(e){var t;return!!(null==(t=e.options)?void 0:t.outFile)}function isIncrementalBuildInfo(e){return!!e.fileNames}function ensureHasErrorsForState(e){void 0===e.hasErrors&&(tr(e.compilerOptions)?e.hasErrors=!some(e.program.getSourceFiles(),t=>{var n,r;const i=e.semanticDiagnosticsPerFile.get(t.resolvedPath);return void 0===i||!!i.length||!!(null==(r=null==(n=e.emitDiagnosticsPerFile)?void 0:n.get(t.resolvedPath))?void 0:r.length)})&&(hasSyntaxOrGlobalErrors(e)||some(e.program.getSourceFiles(),t=>!!e.program.getProgramDiagnostics(t).length)):e.hasErrors=some(e.program.getSourceFiles(),t=>{var n,r;const i=e.semanticDiagnosticsPerFile.get(t.resolvedPath);return!!(null==i?void 0:i.length)||!!(null==(r=null==(n=e.emitDiagnosticsPerFile)?void 0:n.get(t.resolvedPath))?void 0:r.length)})||hasSyntaxOrGlobalErrors(e))}function hasSyntaxOrGlobalErrors(e){return!!(e.program.getConfigFileParsingDiagnostics().length||e.program.getSyntacticDiagnostics().length||e.program.getOptionsDiagnostics().length||e.program.getGlobalDiagnostics().length)}function getBuildInfoEmitPending(e){return ensureHasErrorsForState(e),e.buildInfoEmitPending??(e.buildInfoEmitPending=!!e.hasErrorsFromOldState!=!!e.hasErrors)}var Ga=(e=>(e[e.SemanticDiagnosticsBuilderProgram=0]="SemanticDiagnosticsBuilderProgram",e[e.EmitAndSemanticDiagnosticsBuilderProgram=1]="EmitAndSemanticDiagnosticsBuilderProgram",e))(Ga||{});function getBuilderCreationParameters(e,t,n,r,i,o){let a,s,c;return void 0===e?(h.assert(void 0===t),a=n,c=r,h.assert(!!c),s=c.getProgram()):isArray(e)?(c=r,s=createProgram({rootNames:e,options:t,host:n,oldProgram:c&&c.getProgramOrUndefined(),configFileParsingDiagnostics:i,projectReferences:o}),a=n):(s=e,a=t,c=n,i=r),{host:a,newProgram:s,oldProgram:c,configFileParsingDiagnostics:i||l}}function getTextHandlingSourceMapForSignature(e,t){return void 0!==(null==t?void 0:t.sourceMapUrlPos)?e.substring(0,t.sourceMapUrlPos):e}function computeSignatureWithDiagnostics(e,t,n,r,i){var o;let a;return n=getTextHandlingSourceMapForSignature(n,i),(null==(o=null==i?void 0:i.diagnostics)?void 0:o.length)&&(n+=i.diagnostics.map(n=>`${function locationInfo(n){if(n.file.resolvedPath===t.resolvedPath)return`(${n.start},${n.length})`;void 0===a&&(a=getDirectoryPath(t.resolvedPath));return`${ensurePathIsNonModuleName(getRelativePathFromDirectory(a,n.file.resolvedPath,e.getCanonicalFileName))}(${n.start},${n.length})`}(n)}${ze[n.category]}${n.code}: ${flattenDiagnosticMessageText2(n.messageText)}`).join("\n")),(r.createHash??generateDjb2Hash)(n);function flattenDiagnosticMessageText2(e){return isString(e)?e:void 0===e?"":e.next?e.messageText+e.next.map(flattenDiagnosticMessageText2).join("\n"):e.messageText}}function createBuilderProgram(e,{newProgram:t,host:n,oldProgram:r,configFileParsingDiagnostics:i}){let o=r&&r.state;if(o&&t===o.program&&i===t.getConfigFileParsingDiagnostics())return t=void 0,o=void 0,r;const a=createBuilderProgramState(t,o);t.getBuildInfo=()=>function getBuildInfo2(e){var t,n;const r=e.program.getCurrentDirectory(),i=getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(e.compilerOptions),r)),o=e.latestChangedDtsFile?relativeToBuildInfoEnsuringAbsolutePath(e.latestChangedDtsFile):void 0,a=[],c=new Map,d=new Set(e.program.getRootFileNames().map(t=>toPath(t,r,e.program.getCanonicalFileName)));if(ensureHasErrorsForState(e),!tr(e.compilerOptions))return{root:arrayFrom(d,e=>relativeToBuildInfo(e)),errors:!!e.hasErrors||void 0,checkPending:e.checkPending,version:s};const p=[];if(e.compilerOptions.outFile){const t=arrayFrom(e.fileInfos.entries(),([e,t])=>(tryAddRoot(e,toFileId(e)),t.impliedFormat?{version:t.version,impliedFormat:t.impliedFormat,signature:void 0,affectsGlobalScope:void 0}:t.version));return{fileNames:a,fileInfos:t,root:p,resolvedRoot:toResolvedRoot(),options:toIncrementalBuildInfoCompilerOptions(e.compilerOptions),semanticDiagnosticsPerFile:e.changedFilesSet.size?void 0:toIncrementalBuildInfoDiagnostics(),emitDiagnosticsPerFile:toIncrementalBuildInfoEmitDiagnostics(),changeFileSet:toChangeFileSet(),outSignature:e.outSignature,latestChangedDtsFile:o,pendingEmit:e.programEmitPending?e.programEmitPending!==getBuilderFileEmit(e.compilerOptions)&&e.programEmitPending:void 0,errors:!!e.hasErrors||void 0,checkPending:e.checkPending,version:s}}let u,m,_;const f=arrayFrom(e.fileInfos.entries(),([t,n])=>{var r,i;const o=toFileId(t);tryAddRoot(t,o),h.assert(a[o-1]===relativeToBuildInfo(t));const s=null==(r=e.oldSignatures)?void 0:r.get(t),c=void 0!==s?s||void 0:n.signature;if(e.compilerOptions.composite){const n=e.program.getSourceFileByPath(t);if(!isJsonSourceFile(n)&&sourceFileMayBeEmitted(n,e.program)){const n=null==(i=e.emitSignatures)?void 0:i.get(t);n!==c&&(_=append(_,void 0===n?o:[o,isString(n)||n[0]!==c?n:l]))}}return n.version===c?n.affectsGlobalScope||n.impliedFormat?{version:n.version,signature:void 0,affectsGlobalScope:n.affectsGlobalScope,impliedFormat:n.impliedFormat}:n.version:void 0!==c?void 0===s?n:{version:n.version,signature:c,affectsGlobalScope:n.affectsGlobalScope,impliedFormat:n.impliedFormat}:{version:n.version,signature:!1,affectsGlobalScope:n.affectsGlobalScope,impliedFormat:n.impliedFormat}});let g;(null==(t=e.referencedMap)?void 0:t.size())&&(g=arrayFrom(e.referencedMap.keys()).sort(compareStringsCaseSensitive).map(t=>[toFileId(t),toFileIdListId(e.referencedMap.getValues(t))]));const y=toIncrementalBuildInfoDiagnostics();let T;if(null==(n=e.affectedFilesPendingEmit)?void 0:n.size){const t=getBuilderFileEmit(e.compilerOptions),n=new Set;for(const r of arrayFrom(e.affectedFilesPendingEmit.keys()).sort(compareStringsCaseSensitive))if(tryAddToSet(n,r)){const n=e.program.getSourceFileByPath(r);if(!n||!sourceFileMayBeEmitted(n,e.program))continue;const i=toFileId(r),o=e.affectedFilesPendingEmit.get(r);T=append(T,o===t?i:24===o?[i]:[i,o])}}return{fileNames:a,fileIdsList:u,fileInfos:f,root:p,resolvedRoot:toResolvedRoot(),options:toIncrementalBuildInfoCompilerOptions(e.compilerOptions),referencedMap:g,semanticDiagnosticsPerFile:y,emitDiagnosticsPerFile:toIncrementalBuildInfoEmitDiagnostics(),changeFileSet:toChangeFileSet(),affectedFilesPendingEmit:T,emitSignatures:_,latestChangedDtsFile:o,errors:!!e.hasErrors||void 0,checkPending:e.checkPending,version:s};function relativeToBuildInfoEnsuringAbsolutePath(e){return relativeToBuildInfo(getNormalizedAbsolutePath(e,r))}function relativeToBuildInfo(t){return ensurePathIsNonModuleName(getRelativePathFromDirectory(i,t,e.program.getCanonicalFileName))}function toFileId(e){let t=c.get(e);return void 0===t&&(a.push(relativeToBuildInfo(e)),c.set(e,t=a.length)),t}function toFileIdListId(e){const t=arrayFrom(e.keys(),toFileId).sort(compareValues),n=t.join();let r=null==m?void 0:m.get(n);return void 0===r&&(u=append(u,t),(m??(m=new Map)).set(n,r=u.length)),r}function tryAddRoot(t,n){const r=e.program.getSourceFile(t);if(!e.program.getFileIncludeReasons().get(r.path).some(e=>0===e.kind))return;if(!p.length)return p.push(n);const i=p[p.length-1],o=isArray(i);if(o&&i[1]===n-1)return i[1]=n;if(o||1===p.length||i!==n-1)return p.push(n);const a=p[p.length-2];return isNumber(a)&&a===i-1?(p[p.length-2]=[a,n],p.length=p.length-1):p.push(n)}function toResolvedRoot(){let t;return d.forEach(n=>{const r=e.program.getSourceFileByPath(n);r&&n!==r.resolvedPath&&(t=append(t,[toFileId(r.resolvedPath),toFileId(n)]))}),t}function toIncrementalBuildInfoCompilerOptions(e){let t;const{optionsNameMap:n}=getOptionsNameMap();for(const r of getOwnKeys(e).sort(compareStringsCaseSensitive)){const i=n.get(r.toLowerCase());(null==i?void 0:i.affectsBuildInfo)&&((t||(t={}))[r]=toReusableCompilerOptionValue(i,e[r]))}return t}function toReusableCompilerOptionValue(e,t){if(e)if(h.assert("listOrElement"!==e.type),"list"===e.type){const n=t;if(e.element.isFilePath&&n.length)return n.map(relativeToBuildInfoEnsuringAbsolutePath)}else if(e.isFilePath)return relativeToBuildInfoEnsuringAbsolutePath(t);return t}function toIncrementalBuildInfoDiagnostics(){let t;return e.fileInfos.forEach((n,r)=>{const i=e.semanticDiagnosticsPerFile.get(r);i?i.length&&(t=append(t,[toFileId(r),toReusableDiagnostic(i,r)])):e.changedFilesSet.has(r)||(t=append(t,toFileId(r)))}),t}function toIncrementalBuildInfoEmitDiagnostics(){var t;let n;if(!(null==(t=e.emitDiagnosticsPerFile)?void 0:t.size))return n;for(const t of arrayFrom(e.emitDiagnosticsPerFile.keys()).sort(compareStringsCaseSensitive)){const r=e.emitDiagnosticsPerFile.get(t);n=append(n,[toFileId(t),toReusableDiagnostic(r,t)])}return n}function toReusableDiagnostic(e,t){return h.assert(!!e.length),e.map(e=>{const n=toReusableDiagnosticRelatedInformation(e,t);n.reportsUnnecessary=e.reportsUnnecessary,n.reportDeprecated=e.reportsDeprecated,n.source=e.source,n.skippedOn=e.skippedOn;const{relatedInformation:r}=e;return n.relatedInformation=r?r.length?r.map(e=>toReusableDiagnosticRelatedInformation(e,t)):[]:void 0,n})}function toReusableDiagnosticRelatedInformation(e,t){const{file:n}=e;return{...e,file:!!n&&(n.resolvedPath===t?void 0:relativeToBuildInfo(n.resolvedPath)),messageText:isString(e.messageText)?e.messageText:toReusableDiagnosticMessageChain(e.messageText)}}function toReusableDiagnosticMessageChain(e){if(e.repopulateInfo)return{info:e.repopulateInfo(),next:toReusableDiagnosticMessageChainArray(e.next)};const t=toReusableDiagnosticMessageChainArray(e.next);return t===e.next?e:{...e,next:t}}function toReusableDiagnosticMessageChainArray(e){return e&&forEach(e,(t,n)=>{const r=toReusableDiagnosticMessageChain(t);if(t===r)return;const i=n>0?e.slice(0,n-1):[];i.push(r);for(let t=n+1;t!!a.hasChangedEmitSignature,c.getAllDependencies=e=>qa.getAllDependencies(a,h.checkDefined(a.program),e),c.getSemanticDiagnostics=function getSemanticDiagnostics(e,t){if(h.assert(isBuilderProgramStateWithDefinedProgram(a)),assertSourceFileOkWithoutNextAffectedCall(a,e),e)return getSemanticDiagnosticsOfFile(a,e,t);for(;;){const e=getSemanticDiagnosticsOfNextAffectedFile(t);if(!e)break;if(e.affected===a.program)return e.result}let n;for(const e of a.program.getSourceFiles())n=addRange(n,getSemanticDiagnosticsOfFile(a,e,t));a.checkPending&&!a.compilerOptions.noCheck&&(a.checkPending=void 0,a.buildInfoEmitPending=!0);return n||l},c.getDeclarationDiagnostics=function getDeclarationDiagnostics2(t,n){var r;if(h.assert(isBuilderProgramStateWithDefinedProgram(a)),1===e){let e,i;for(assertSourceFileOkWithoutNextAffectedCall(a,t);e=emitNextAffectedFileOrDtsErrors(void 0,n,void 0,void 0,!0);)t||(i=addRange(i,e.result.diagnostics));return(t?null==(r=a.emitDiagnosticsPerFile)?void 0:r.get(t.resolvedPath):i)||l}{const e=a.program.getDeclarationDiagnostics(t,n);return handleNonEmitBuilderWithEmitOrDtsErrors(t,void 0,!0,e),e}},c.emit=function emit(t,n,r,i,o){h.assert(isBuilderProgramStateWithDefinedProgram(a)),1===e&&assertSourceFileOkWithoutNextAffectedCall(a,t);const s=handleNoEmitOptions(c,t,n,r);if(s)return s;if(!t){if(1===e){let e,t,a=[],s=!1,c=[];for(;t=emitNextAffectedFile(n,r,i,o);)s=s||t.result.emitSkipped,e=addRange(e,t.result.diagnostics),c=addRange(c,t.result.emittedFiles),a=addRange(a,t.result.sourceMaps);return{emitSkipped:s,diagnostics:e||l,emittedFiles:c,sourceMaps:a}}clearAffectedFilesPendingEmit(a,i,!1)}const d=a.program.emit(t,getWriteFileCallback(n,o),r,i,o);return handleNonEmitBuilderWithEmitOrDtsErrors(t,i,!1,d.diagnostics),d},c.releaseProgram=()=>function releaseCache(e){qa.releaseCache(e),e.program=void 0}(a),0===e?c.getSemanticDiagnosticsOfNextAffectedFile=getSemanticDiagnosticsOfNextAffectedFile:1===e?(c.getSemanticDiagnosticsOfNextAffectedFile=getSemanticDiagnosticsOfNextAffectedFile,c.emitNextAffectedFile=emitNextAffectedFile,c.emitBuildInfo=function emitBuildInfo(e,t){if(h.assert(isBuilderProgramStateWithDefinedProgram(a)),getBuildInfoEmitPending(a)){const r=a.program.emitBuildInfo(e||maybeBind(n,n.writeFile),t);return a.buildInfoEmitPending=!1,r}return Va}):notImplemented(),c;function emitNextAffectedFileOrDtsErrors(e,t,r,i,o){var s,c,l,d;h.assert(isBuilderProgramStateWithDefinedProgram(a));let p=getNextAffectedFile(a,t,n);const u=getBuilderFileEmit(a.compilerOptions);let m,_=o?8:r?56&u:u;if(!p){if(a.compilerOptions.outFile){if(a.programEmitPending&&(_=getPendingEmitKindWithSeen(a.programEmitPending,a.seenProgramEmit,r,o),_&&(p=a.program)),!p&&(null==(s=a.emitDiagnosticsPerFile)?void 0:s.size)){const e=a.seenProgramEmit||0;if(!(e&getBuilderFileEmitAllDts(o))){a.seenProgramEmit=getBuilderFileEmitAllDts(o)|e;const t=[];return a.emitDiagnosticsPerFile.forEach(e=>addRange(t,e)),{result:{emitSkipped:!0,diagnostics:t},affected:a.program}}}}else{const e=function getNextAffectedFilePendingEmit(e,t,n){var r;if(null==(r=e.affectedFilesPendingEmit)?void 0:r.size)return forEachEntry(e.affectedFilesPendingEmit,(r,i)=>{var o;const a=e.program.getSourceFileByPath(i);if(!a||!sourceFileMayBeEmitted(a,e.program))return void e.affectedFilesPendingEmit.delete(i);const s=getPendingEmitKindWithSeen(r,null==(o=e.seenEmittedFiles)?void 0:o.get(a.resolvedPath),t,n);return s?{affectedFile:a,emitKind:s}:void 0})}(a,r,o);if(e)({affectedFile:p,emitKind:_}=e);else{const e=function getNextPendingEmitDiagnosticsFile(e,t){var n;if(null==(n=e.emitDiagnosticsPerFile)?void 0:n.size)return forEachEntry(e.emitDiagnosticsPerFile,(n,r)=>{var i;const o=e.program.getSourceFileByPath(r);if(!o||!sourceFileMayBeEmitted(o,e.program))return void e.emitDiagnosticsPerFile.delete(r);const a=(null==(i=e.seenEmittedFiles)?void 0:i.get(o.resolvedPath))||0;return a&getBuilderFileEmitAllDts(t)?void 0:{affectedFile:o,diagnostics:n,seenKind:a}})}(a,o);if(e)return(a.seenEmittedFiles??(a.seenEmittedFiles=new Map)).set(e.affectedFile.resolvedPath,e.seenKind|getBuilderFileEmitAllDts(o)),{result:{emitSkipped:!0,diagnostics:e.diagnostics},affected:e.affectedFile}}}if(!p){if(o||!getBuildInfoEmitPending(a))return;const r=a.program,i=r.emitBuildInfo(e||maybeBind(n,n.writeFile),t);return a.buildInfoEmitPending=!1,{result:i,affected:r}}}7&_&&(m=0),56&_&&(m=void 0===m?1:void 0);const f=o?{emitSkipped:!0,diagnostics:a.program.getDeclarationDiagnostics(p===a.program?void 0:p,t)}:a.program.emit(p===a.program?void 0:p,getWriteFileCallback(e,i),t,m,i,void 0,!0);if(p!==a.program){const e=p;a.seenAffectedFiles.add(e.resolvedPath),void 0!==a.affectedFilesIndex&&a.affectedFilesIndex++,a.buildInfoEmitPending=!0;const t=(null==(c=a.seenEmittedFiles)?void 0:c.get(e.resolvedPath))||0;(a.seenEmittedFiles??(a.seenEmittedFiles=new Map)).set(e.resolvedPath,_|t);const n=getPendingEmitKind((null==(l=a.affectedFilesPendingEmit)?void 0:l.get(e.resolvedPath))||u,_|t);n?(a.affectedFilesPendingEmit??(a.affectedFilesPendingEmit=new Map)).set(e.resolvedPath,n):null==(d=a.affectedFilesPendingEmit)||d.delete(e.resolvedPath),f.diagnostics.length&&(a.emitDiagnosticsPerFile??(a.emitDiagnosticsPerFile=new Map)).set(e.resolvedPath,f.diagnostics)}else a.changedFilesSet.clear(),a.programEmitPending=a.changedFilesSet.size?getPendingEmitKind(u,_):a.programEmitPending?getPendingEmitKind(a.programEmitPending,_):void 0,a.seenProgramEmit=_|(a.seenProgramEmit||0),setEmitDiagnosticsPerFile(f.diagnostics),a.buildInfoEmitPending=!0;return{result:f,affected:p}}function setEmitDiagnosticsPerFile(e){let t;e.forEach(e=>{if(!e.file)return;let n=null==t?void 0:t.get(e.file.resolvedPath);n||(t??(t=new Map)).set(e.file.resolvedPath,n=[]),n.push(e)}),t&&(a.emitDiagnosticsPerFile=t)}function emitNextAffectedFile(e,t,n,r){return emitNextAffectedFileOrDtsErrors(e,t,n,r,!1)}function getWriteFileCallback(e,t){return h.assert(isBuilderProgramStateWithDefinedProgram(a)),Zn(a.compilerOptions)?(r,i,o,s,c,l)=>{var d,p,u;if(isDeclarationFileName(r))if(a.compilerOptions.outFile){if(a.compilerOptions.composite){const e=handleNewSignature(a.outSignature,void 0);if(!e)return l.skippedDtsWrite=!0;a.outSignature=e}}else{let e;if(h.assert(1===(null==c?void 0:c.length)),!t){const t=c[0],r=a.fileInfos.get(t.resolvedPath);if(r.signature===t.version){const o=computeSignatureWithDiagnostics(a.program,t,i,n,l);if((null==(d=null==l?void 0:l.diagnostics)?void 0:d.length)||(e=o),o!==t.version)if(n.storeSignatureInfo&&(a.signatureInfo??(a.signatureInfo=new Map)).set(t.resolvedPath,1),a.affectedFiles){void 0===(null==(p=a.oldSignatures)?void 0:p.get(t.resolvedPath))&&(a.oldSignatures??(a.oldSignatures=new Map)).set(t.resolvedPath,r.signature||!1),r.signature=o}else r.signature=o}}if(a.compilerOptions.composite){const t=c[0].resolvedPath;if(e=handleNewSignature(null==(u=a.emitSignatures)?void 0:u.get(t),e),!e)return l.skippedDtsWrite=!0;(a.emitSignatures??(a.emitSignatures=new Map)).set(t,e)}}function handleNewSignature(e,t){const o=!e||isString(e)?e:e[0];if(t??(t=function computeSignature(e,t,n){return(t.createHash??generateDjb2Hash)(getTextHandlingSourceMapForSignature(e,n))}(i,n,l)),t===o){if(e===o)return;l?l.differsOnlyInMap=!0:l={differsOnlyInMap:!0}}else a.hasChangedEmitSignature=!0,a.latestChangedDtsFile=r;return t}e?e(r,i,o,s,c,l):n.writeFile?n.writeFile(r,i,o,s,c,l):a.program.writeFile(r,i,o,s,c,l)}:e||maybeBind(n,n.writeFile)}function handleNonEmitBuilderWithEmitOrDtsErrors(t,n,r,i){t||1===e||(clearAffectedFilesPendingEmit(a,n,r),setEmitDiagnosticsPerFile(i))}function getSemanticDiagnosticsOfNextAffectedFile(e,t){for(h.assert(isBuilderProgramStateWithDefinedProgram(a));;){const r=getNextAffectedFile(a,e,n);let i;if(!r)return void(a.checkPending&&!a.compilerOptions.noCheck&&(a.checkPending=void 0,a.buildInfoEmitPending=!0));if(r!==a.program){const n=r;if(t&&t(n)||(i=getSemanticDiagnosticsOfFile(a,n,e)),a.seenAffectedFiles.add(n.resolvedPath),a.affectedFilesIndex++,a.buildInfoEmitPending=!0,!i)continue}else{let t;const n=new Map;a.program.getSourceFiles().forEach(r=>t=addRange(t,getSemanticDiagnosticsOfFile(a,r,e,n))),a.semanticDiagnosticsPerFile=n,i=t||l,a.changedFilesSet.clear(),a.programEmitPending=getBuilderFileEmit(a.compilerOptions),a.compilerOptions.noCheck||(a.checkPending=void 0),a.buildInfoEmitPending=!0}return{result:i,affected:r}}}}function addToAffectedFilesPendingEmit(e,t,n){var r,i;const o=(null==(r=e.affectedFilesPendingEmit)?void 0:r.get(t))||0;(e.affectedFilesPendingEmit??(e.affectedFilesPendingEmit=new Map)).set(t,o|n),null==(i=e.emitDiagnosticsPerFile)||i.delete(t)}function toBuilderStateFileInfoForMultiEmit(e){return isString(e)?{version:e,signature:e,affectsGlobalScope:void 0,impliedFormat:void 0}:isString(e.signature)?e:{version:e.version,signature:!1===e.signature?void 0:e.version,affectsGlobalScope:e.affectsGlobalScope,impliedFormat:e.impliedFormat}}function toBuilderFileEmit(e,t){return isNumber(e)?t:e[1]||24}function toProgramEmitPending(e,t){return e||getBuilderFileEmit(t||{})}function createBuilderProgramUsingIncrementalBuildInfo(e,t,n){var r,i,o,a;const s=getDirectoryPath(getNormalizedAbsolutePath(t,n.getCurrentDirectory())),c=createGetCanonicalFileName(n.useCaseSensitiveFileNames());let d;const p=null==(r=e.fileNames)?void 0:r.map(function toPathInBuildInfoDirectory(e){return toPath(e,s,c)});let u;const m=e.latestChangedDtsFile?toAbsolutePath(e.latestChangedDtsFile):void 0,_=new Map,f=new Set(map(e.changeFileSet,toFilePath));if(isIncrementalBundleEmitBuildInfo(e))e.fileInfos.forEach((e,t)=>{const n=toFilePath(t+1);_.set(n,isString(e)?{version:e,signature:void 0,affectsGlobalScope:void 0,impliedFormat:void 0}:e)}),d={fileInfos:_,compilerOptions:e.options?convertToOptionsWithAbsolutePaths(e.options,toAbsolutePath):{},semanticDiagnosticsPerFile:toPerFileSemanticDiagnostics(e.semanticDiagnosticsPerFile),emitDiagnosticsPerFile:toPerFileEmitDiagnostics(e.emitDiagnosticsPerFile),hasReusableDiagnostic:!0,changedFilesSet:f,latestChangedDtsFile:m,outSignature:e.outSignature,programEmitPending:void 0===e.pendingEmit?void 0:toProgramEmitPending(e.pendingEmit,e.options),hasErrors:e.errors,checkPending:e.checkPending};else{u=null==(i=e.fileIdsList)?void 0:i.map(e=>new Set(e.map(toFilePath)));const t=(null==(o=e.options)?void 0:o.composite)&&!e.options.outFile?new Map:void 0;e.fileInfos.forEach((e,n)=>{const r=toFilePath(n+1),i=toBuilderStateFileInfoForMultiEmit(e);_.set(r,i),t&&i.signature&&t.set(r,i.signature)}),null==(a=e.emitSignatures)||a.forEach(e=>{if(isNumber(e))t.delete(toFilePath(e));else{const n=toFilePath(e[0]);t.set(n,isString(e[1])||e[1].length?e[1]:[t.get(n)])}});const n=e.affectedFilesPendingEmit?getBuilderFileEmit(e.options||{}):void 0;d={fileInfos:_,compilerOptions:e.options?convertToOptionsWithAbsolutePaths(e.options,toAbsolutePath):{},referencedMap:function toManyToManyPathMap(e,t){const n=qa.createReferencedMap(t);return n&&e?(e.forEach(([e,t])=>n.set(toFilePath(e),function toFilePathsSet(e){return u[e-1]}(t))),n):n}(e.referencedMap,e.options??{}),semanticDiagnosticsPerFile:toPerFileSemanticDiagnostics(e.semanticDiagnosticsPerFile),emitDiagnosticsPerFile:toPerFileEmitDiagnostics(e.emitDiagnosticsPerFile),hasReusableDiagnostic:!0,changedFilesSet:f,affectedFilesPendingEmit:e.affectedFilesPendingEmit&&arrayToMap(e.affectedFilesPendingEmit,e=>toFilePath(isNumber(e)?e:e[0]),e=>toBuilderFileEmit(e,n)),latestChangedDtsFile:m,emitSignatures:(null==t?void 0:t.size)?t:void 0,hasErrors:e.errors,checkPending:e.checkPending}}return{state:d,getProgram:notImplemented,getProgramOrUndefined:returnUndefined,releaseProgram:noop,getCompilerOptions:()=>d.compilerOptions,getSourceFile:notImplemented,getSourceFiles:notImplemented,getOptionsDiagnostics:notImplemented,getGlobalDiagnostics:notImplemented,getConfigFileParsingDiagnostics:notImplemented,getSyntacticDiagnostics:notImplemented,getDeclarationDiagnostics:notImplemented,getSemanticDiagnostics:notImplemented,emit:notImplemented,getAllDependencies:notImplemented,getCurrentDirectory:notImplemented,emitNextAffectedFile:notImplemented,getSemanticDiagnosticsOfNextAffectedFile:notImplemented,emitBuildInfo:notImplemented,close:noop,hasChangedEmitSignature:returnFalse};function toAbsolutePath(e){return getNormalizedAbsolutePath(e,s)}function toFilePath(e){return p[e-1]}function toPerFileSemanticDiagnostics(e){const t=new Map(mapDefinedIterator(_.keys(),e=>f.has(e)?void 0:[e,l]));return null==e||e.forEach(e=>{isNumber(e)?t.delete(toFilePath(e)):t.set(toFilePath(e[0]),e[1])}),t}function toPerFileEmitDiagnostics(e){return e&&arrayToMap(e,e=>toFilePath(e[0]),e=>e[1])}}function getBuildInfoFileVersionMap(e,t,n){const r=getDirectoryPath(getNormalizedAbsolutePath(t,n.getCurrentDirectory())),i=createGetCanonicalFileName(n.useCaseSensitiveFileNames()),o=new Map;let a=0;const s=new Map,c=new Map(e.resolvedRoot);return e.fileInfos.forEach((t,n)=>{const s=toPath(e.fileNames[n],r,i),c=isString(t)?t:t.version;if(o.set(s,c),atoPath(e,r,i))}function createRedirectedBuilderProgram(e,t){return{state:void 0,getProgram,getProgramOrUndefined:()=>e.program,releaseProgram:()=>e.program=void 0,getCompilerOptions:()=>e.compilerOptions,getSourceFile:e=>getProgram().getSourceFile(e),getSourceFiles:()=>getProgram().getSourceFiles(),getOptionsDiagnostics:e=>getProgram().getOptionsDiagnostics(e),getGlobalDiagnostics:e=>getProgram().getGlobalDiagnostics(e),getConfigFileParsingDiagnostics:()=>t,getSyntacticDiagnostics:(e,t)=>getProgram().getSyntacticDiagnostics(e,t),getDeclarationDiagnostics:(e,t)=>getProgram().getDeclarationDiagnostics(e,t),getSemanticDiagnostics:(e,t)=>getProgram().getSemanticDiagnostics(e,t),emit:(e,t,n,r,i)=>getProgram().emit(e,t,n,r,i),emitBuildInfo:(e,t)=>getProgram().emitBuildInfo(e,t),getAllDependencies:notImplemented,getCurrentDirectory:()=>getProgram().getCurrentDirectory(),close:noop};function getProgram(){return h.checkDefined(e.program)}}function createSemanticDiagnosticsBuilderProgram(e,t,n,r,i,o){return createBuilderProgram(0,getBuilderCreationParameters(e,t,n,r,i,o))}function createEmitAndSemanticDiagnosticsBuilderProgram(e,t,n,r,i,o){return createBuilderProgram(1,getBuilderCreationParameters(e,t,n,r,i,o))}function createAbstractBuilder(e,t,n,r,i,o){const{newProgram:a,configFileParsingDiagnostics:s}=getBuilderCreationParameters(e,t,n,r,i,o);return createRedirectedBuilderProgram({program:a,compilerOptions:a.getCompilerOptions()},s)}function removeIgnoredPath(e){return endsWith(e,"/node_modules/.staging")?removeSuffix(e,"/.staging"):some(Ct,t=>e.includes(t))?void 0:e}function perceivedOsRootLengthForWatching(e,t){if(t<=1)return 1;let n=1,r=0===e[0].search(/[a-z]:/i);if(e[0]!==Ft&&!r&&0===e[1].search(/[a-z]\$$/i)){if(2===t)return 2;n=2,r=!0}return r&&!e[n].match(/^users$/i)?n:e[n].match(/^workspaces$/i)?n+1:n+2}function canWatchDirectoryOrFile(e,t){if(void 0===t&&(t=e.length),t<=2)return!1;return t>perceivedOsRootLengthForWatching(e,t)+1}function canWatchDirectoryOrFilePath(e){return canWatchDirectoryOrFile(getPathComponents(e))}function canWatchAtTypes(e){return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(getDirectoryPath(e))}function isInDirectoryPath(e,t){if(t.lengthi.length+1?getDirectoryOfFailedLookupWatch(l,c,Math.max(i.length+1,d+1),u):{dir:n,dirPath:r,nonRecursive:!0}:getDirectoryToWatchFromFailedLookupLocationDirectory(l,c,c.length-1,d,p,i,u,s)}function getDirectoryToWatchFromFailedLookupLocationDirectory(e,t,n,r,i,o,a,s){if(-1!==i)return getDirectoryOfFailedLookupWatch(e,t,i+1,a);let c=!0,l=n;if(!s)for(let e=0;e=n&&r+2function resolveModuleNameUsingGlobalCache(e,t,n,r,i,o,a){const s=getModuleResolutionHost(e),c=resolveModuleName(n,r,i,s,t,o,a);if(!e.getGlobalTypingsCacheLocation)return c;const l=e.getGlobalTypingsCacheLocation();if(!(void 0===l||isExternalModuleNameRelative(n)||c.resolvedModule&&extensionIsTS(c.resolvedModule.extension))){const{resolvedModule:r,failedLookupLocations:o,affectingLocations:a,resolutionDiagnostics:d}=loadModuleFromGlobalCache(h.checkDefined(e.globalCacheResolutionModuleName)(n),e.projectName,i,s,l,t);if(r)return c.resolvedModule=r,c.failedLookupLocations=updateResolutionField(c.failedLookupLocations,o),c.affectingLocations=updateResolutionField(c.affectingLocations,a),c.resolutionDiagnostics=updateResolutionField(c.resolutionDiagnostics,d),c}return c}(r,i,o,e,n,t,a)}}function createResolutionCache(e,t,n){let r,i,o;const a=new Set,s=new Set,c=new Set,d=new Map,p=new Map;let u,m,_,f,g,y=!1,T=!1;const S=memoize(()=>e.getCurrentDirectory()),x=e.getCachedDirectoryStructureHost(),v=new Map,b=createModuleResolutionCache(S(),e.getCanonicalFileName,e.getCompilationSettings()),C=new Map,E=createTypeReferenceDirectiveResolutionCache(S(),e.getCanonicalFileName,e.getCompilationSettings(),b.getPackageJsonInfoCache(),b.optionsToRedirectsKey),N=new Map,k=createModuleResolutionCache(S(),e.getCanonicalFileName,getOptionsForLibraryResolution(e.getCompilationSettings()),b.getPackageJsonInfoCache()),F=new Map,P=new Map,D=getRootDirectoryOfResolutionCache(t,S),I=e.toPath(D),A=getPathComponents(I),O=canWatchDirectoryOrFile(A),w=new Map,L=new Map,M=new Map,R=new Map;return{rootDirForResolution:t,resolvedModuleNames:v,resolvedTypeReferenceDirectives:C,resolvedLibraries:N,resolvedFileToResolution:d,resolutionsWithFailedLookups:s,resolutionsWithOnlyAffectingLocations:c,directoryWatchesOfFailedLookups:F,fileWatchesOfAffectingLocations:P,packageDirWatchers:L,dirPathToSymlinkPackageRefCount:M,watchFailedLookupLocationsOfExternalModuleResolutions,getModuleResolutionCache:()=>b,startRecordingFilesWithChangedResolutions:function startRecordingFilesWithChangedResolutions(){r=[]},finishRecordingFilesWithChangedResolutions:function finishRecordingFilesWithChangedResolutions(){const e=r;return r=void 0,e},startCachingPerDirectoryResolution:function startCachingPerDirectoryResolution(){b.isReadonly=void 0,E.isReadonly=void 0,k.isReadonly=void 0,b.getPackageJsonInfoCache().isReadonly=void 0,b.clearAllExceptPackageJsonInfoCache(),E.clearAllExceptPackageJsonInfoCache(),k.clearAllExceptPackageJsonInfoCache(),watchFailedLookupLocationOfNonRelativeModuleResolutions(),w.clear()},finishCachingPerDirectoryResolution:function finishCachingPerDirectoryResolution(t,n){o=void 0,T=!1,watchFailedLookupLocationOfNonRelativeModuleResolutions(),t!==n&&(!function cleanupLibResolutionWatching(t){N.forEach((n,r)=>{var i;(null==(i=null==t?void 0:t.resolvedLibReferences)?void 0:i.has(r))||(stopWatchFailedLookupLocationOfResolution(n,e.toPath(getInferredLibraryNameResolveFrom(e.getCompilationSettings(),S(),r)),getResolvedModuleFromResolution),N.delete(r))})}(t),null==t||t.getSourceFiles().forEach(e=>{var t;const n=(null==(t=e.packageJsonLocations)?void 0:t.length)??0,r=p.get(e.resolvedPath)??l;for(let t=r.length;tn)for(let e=n;e{const r=null==t?void 0:t.getSourceFileByPath(n);r&&r.resolvedPath===n||(e.forEach(e=>P.get(e).files--),p.delete(n))}));F.forEach(closeDirectoryWatchesOfFailedLookup),P.forEach(closeFileWatcherOfAffectingLocation),L.forEach(closePackageDirWatcher),y=!1,b.isReadonly=!0,E.isReadonly=!0,k.isReadonly=!0,b.getPackageJsonInfoCache().isReadonly=!0,w.clear()},resolveModuleNameLiterals:function resolveModuleNameLiterals(t,r,i,o,a,s){return resolveNamesWithLocalCache({entries:t,containingFile:r,containingSourceFile:a,redirectedReference:i,options:o,reusedNames:s,perFileCache:v,loader:createModuleResolutionLoaderUsingGlobalCache(r,i,o,e,b),getResolutionWithResolvedFileName:getResolvedModuleFromResolution,shouldRetryResolution:e=>!e.resolvedModule||!resolutionExtensionIsTSOrJson(e.resolvedModule.extension),logChanges:n,deferWatchingNonRelativeResolution:!0})},resolveTypeReferenceDirectiveReferences:function resolveTypeReferenceDirectiveReferences(t,n,r,i,o,a){return resolveNamesWithLocalCache({entries:t,containingFile:n,containingSourceFile:o,redirectedReference:r,options:i,reusedNames:a,perFileCache:C,loader:createTypeReferenceResolutionLoader(n,r,i,getModuleResolutionHost(e),E),getResolutionWithResolvedFileName:getResolvedTypeReferenceDirectiveFromResolution,shouldRetryResolution:e=>void 0===e.resolvedTypeReferenceDirective,deferWatchingNonRelativeResolution:!1})},resolveLibrary:function resolveLibrary2(t,n,r,i){const o=getModuleResolutionHost(e);let a=null==N?void 0:N.get(i);if(!a||a.isInvalidated){const s=a;a=resolveLibrary(t,n,r,o,k);const c=e.toPath(n);watchFailedLookupLocationsOfExternalModuleResolutions(t,a,c,getResolvedModuleFromResolution,!1),N.set(i,a),s&&stopWatchFailedLookupLocationOfResolution(s,c,getResolvedModuleFromResolution)}else if(isTraceEnabled(r,o)){const e=getResolvedModuleFromResolution(a);trace(o,(null==e?void 0:e.resolvedFileName)?e.packageId?Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved,t,n,null==e?void 0:e.resolvedFileName,(null==e?void 0:e.packageId)&&packageIdToString(e.packageId))}return a},resolveSingleModuleNameWithoutWatching:function resolveSingleModuleNameWithoutWatching(t,n){var r,i;const o=e.toPath(n),a=v.get(o),s=null==a?void 0:a.get(t,void 0);if(s&&!s.isInvalidated)return s;const c=null==(r=e.beforeResolveSingleModuleNameWithoutWatching)?void 0:r.call(e,b),l=getModuleResolutionHost(e),d=resolveModuleName(t,n,e.getCompilationSettings(),l,b);return null==(i=e.afterResolveSingleModuleNameWithoutWatching)||i.call(e,b,t,n,d,c),d},removeResolutionsFromProjectReferenceRedirects:function removeResolutionsFromProjectReferenceRedirects(t){if(!fileExtensionIs(t,".json"))return;const n=e.getCurrentProgram();if(!n)return;const r=n.getResolvedProjectReferenceByPath(t);if(!r)return;r.commandLine.fileNames.forEach(t=>removeResolutionsOfFile(e.toPath(t)))},removeResolutionsOfFile,hasChangedAutomaticTypeDirectiveNames:()=>y,invalidateResolutionOfFile:function invalidateResolutionOfFile(t){removeResolutionsOfFile(t);const n=y;invalidateResolutions(d.get(t),returnTrue)&&y&&!n&&e.onChangedAutomaticTypeDirectiveNames()},invalidateResolutionsOfFailedLookupLocations,setFilesWithInvalidatedNonRelativeUnresolvedImports:function setFilesWithInvalidatedNonRelativeUnresolvedImports(e){h.assert(o===e||void 0===o),o=e},createHasInvalidatedResolutions:function createHasInvalidatedResolutions(e,t){invalidateResolutionsOfFailedLookupLocations();const n=i;return i=void 0,{hasInvalidatedResolutions:t=>e(t)||T||!!(null==n?void 0:n.has(t))||isFileWithInvalidatedNonRelativeUnresolvedImports(t),hasInvalidatedLibResolutions:e=>{var n;return t(e)||!!(null==(n=null==N?void 0:N.get(e))?void 0:n.isInvalidated)}}},isFileWithInvalidatedNonRelativeUnresolvedImports,updateTypeRootsWatch:function updateTypeRootsWatch(){const t=e.getCompilationSettings();if(t.types)return void closeTypeRootsWatch();const n=getEffectiveTypeRoots(t,{getCurrentDirectory:S});n?mutateMap(R,new Set(n),{createNewValue:createTypeRootsWatch,onDeleteValue:closeFileWatcher}):closeTypeRootsWatch()},closeTypeRootsWatch,clear:function clear2(){clearMap(F,closeFileWatcherOf),clearMap(P,closeFileWatcherOf),w.clear(),L.clear(),M.clear(),a.clear(),closeTypeRootsWatch(),v.clear(),C.clear(),d.clear(),s.clear(),c.clear(),_=void 0,f=void 0,g=void 0,m=void 0,u=void 0,T=!1,b.clear(),E.clear(),b.update(e.getCompilationSettings()),E.update(e.getCompilationSettings()),k.clear(),p.clear(),N.clear(),y=!1},onChangesAffectModuleResolution:function onChangesAffectModuleResolution(){T=!0,b.clearAllExceptPackageJsonInfoCache(),E.clearAllExceptPackageJsonInfoCache(),b.update(e.getCompilationSettings()),E.update(e.getCompilationSettings())}};function isFileWithInvalidatedNonRelativeUnresolvedImports(e){if(!o)return!1;const t=o.get(e);return!!t&&!!t.length}function closePackageDirWatcher(e,t){0===e.dirPathToWatcher.size&&L.delete(t)}function closeDirectoryWatchesOfFailedLookup(e,t){0===e.refCount&&(F.delete(t),e.watcher.close())}function closeFileWatcherOfAffectingLocation(e,t){var n;0!==e.files||0!==e.resolutions||(null==(n=e.symlinks)?void 0:n.size)||(P.delete(t),e.watcher.close())}function resolveNamesWithLocalCache({entries:t,containingFile:n,containingSourceFile:i,redirectedReference:o,options:a,perFileCache:s,reusedNames:c,loader:l,getResolutionWithResolvedFileName:d,deferWatchingNonRelativeResolution:p,shouldRetryResolution:u,logChanges:m}){var _;const f=e.toPath(n),g=s.get(f)||s.set(f,createModeAwareCache()).get(f),y=[],S=m&&isFileWithInvalidatedNonRelativeUnresolvedImports(f),x=e.getCurrentProgram(),b=x&&(null==(_=x.getRedirectFromSourceFile(n))?void 0:_.resolvedRef),C=b?!o||o.sourceFile.path!==b.sourceFile.path:!!o,E=createModeAwareCache();for(const c of t){const t=l.nameAndMode.getName(c),_=l.nameAndMode.getMode(c,i,(null==o?void 0:o.commandLine.options)||a);let x=g.get(t,_);if(!E.has(t,_)&&(T||C||!x||x.isInvalidated||S&&!isExternalModuleNameRelative(t)&&u(x))){const n=x;x=l.resolve(t,_),e.onDiscoveredSymlink&&resolutionIsSymlink(x)&&e.onDiscoveredSymlink(),g.set(t,_,x),x!==n&&(watchFailedLookupLocationsOfExternalModuleResolutions(t,x,f,d,p),n&&stopWatchFailedLookupLocationOfResolution(n,f,d)),m&&r&&!resolutionIsEqualTo(n,x)&&(r.push(f),m=!1)}else{const r=getModuleResolutionHost(e);if(isTraceEnabled(a,r)&&!E.has(t,_)){const e=d(x);trace(r,s===v?(null==e?void 0:e.resolvedFileName)?e.packageId?Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:Ot.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:(null==e?void 0:e.resolvedFileName)?e.packageId?Ot.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:Ot.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:Ot.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved,t,n,null==e?void 0:e.resolvedFileName,(null==e?void 0:e.packageId)&&packageIdToString(e.packageId))}}h.assert(void 0!==x&&!x.isInvalidated),E.set(t,_,!0),y.push(x)}return null==c||c.forEach(e=>E.set(l.nameAndMode.getName(e),l.nameAndMode.getMode(e,i,(null==o?void 0:o.commandLine.options)||a),!0)),g.size()!==E.size()&&g.forEach((e,t,n)=>{E.has(t,n)||(stopWatchFailedLookupLocationOfResolution(e,f,d),g.delete(t,n))}),y;function resolutionIsEqualTo(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=d(e),r=d(t);return n===r||!(!n||!r)&&n.resolvedFileName===r.resolvedFileName}}function isNodeModulesAtTypesDirectory(e){return endsWith(e,"/node_modules/@types")}function watchFailedLookupLocationsOfExternalModuleResolutions(t,n,r,i,o){if((n.files??(n.files=new Set)).add(r),1!==n.files.size)return;!o||isExternalModuleNameRelative(t)?watchFailedLookupLocationOfResolution(n):a.add(n);const s=i(n);if(s&&s.resolvedFileName){const t=e.toPath(s.resolvedFileName);let r=d.get(t);r||d.set(t,r=new Set),r.add(n)}}function watchFailedLookupLocation(t,n){const r=getDirectoryToWatchFailedLookupLocation(t,e.toPath(t),D,I,A,O,S,e.preferNonRecursiveWatch);if(r){const{dir:e,dirPath:t,nonRecursive:i,packageDir:o,packageDirPath:a}=r;t===I?(h.assert(i),h.assert(!o),n=!0):setDirectoryWatcher(e,t,o,a,i)}return n}function watchFailedLookupLocationOfResolution(e){var t;h.assert(!!(null==(t=e.files)?void 0:t.size));const{failedLookupLocations:n,affectingLocations:r,alternateResult:i}=e;if(!(null==n?void 0:n.length)&&!(null==r?void 0:r.length)&&!i)return;((null==n?void 0:n.length)||i)&&s.add(e);let o=!1;if(n)for(const e of n)o=watchFailedLookupLocation(e,o);i&&(o=watchFailedLookupLocation(i,o)),o&&setDirectoryWatcher(D,I,void 0,void 0,!0),function watchAffectingLocationsOfResolution(e,t){var n;h.assert(!!(null==(n=e.files)?void 0:n.size));const{affectingLocations:r}=e;if(!(null==r?void 0:r.length))return;t&&c.add(e);for(const e of r)createFileWatcherOfAffectingLocation(e,!0)}(e,!(null==n?void 0:n.length)&&!i)}function createFileWatcherOfAffectingLocation(t,n){const r=P.get(t);if(r)return void(n?r.resolutions++:r.files++);let i,o=t,a=!1;e.realpath&&(o=e.realpath(t),t!==o&&(a=!0,i=P.get(o)));const s=n?1:0,c=n?0:1;if(!a||!i){const t={watcher:canWatchAffectingLocation(e.toPath(o))?e.watchAffectingFileLocation(o,(t,n)=>{null==x||x.addOrDeleteFile(t,e.toPath(o),n),invalidateAffectingFileWatcher(o,b.getPackageJsonInfoCache().getInternalMap()),e.scheduleInvalidateResolutionsOfFailedLookupLocations()}):Xa,resolutions:a?0:s,files:a?0:c,symlinks:void 0};P.set(o,t),a&&(i=t)}if(a){h.assert(!!i);const e={watcher:{close:()=>{var e;const n=P.get(o);!(null==(e=null==n?void 0:n.symlinks)?void 0:e.delete(t))||n.symlinks.size||n.resolutions||n.files||(P.delete(o),n.watcher.close())}},resolutions:s,files:c,symlinks:void 0};P.set(t,e),(i.symlinks??(i.symlinks=new Set)).add(t)}}function invalidateAffectingFileWatcher(t,n){var r;const i=P.get(t);(null==i?void 0:i.resolutions)&&(m??(m=new Set)).add(t),(null==i?void 0:i.files)&&(u??(u=new Set)).add(t),null==(r=null==i?void 0:i.symlinks)||r.forEach(e=>invalidateAffectingFileWatcher(e,n)),null==n||n.delete(e.toPath(t))}function watchFailedLookupLocationOfNonRelativeModuleResolutions(){a.forEach(watchFailedLookupLocationOfResolution),a.clear()}function setDirectoryWatcher(t,n,r,i,o){i&&e.realpath?function createDirectoryWatcherForPackageDir(t,n,r,i,o){h.assert(!o);let a=w.get(i),s=L.get(i);if(void 0===a){const t=e.realpath(r);a=t!==r&&e.toPath(t)!==i,w.set(i,a),s?s.isSymlink!==a&&(s.dirPathToWatcher.forEach(e=>{removeDirectoryWatcher(s.isSymlink?i:n),e.watcher=createDirPathToWatcher()}),s.isSymlink=a):L.set(i,s={dirPathToWatcher:new Map,isSymlink:a})}else h.assertIsDefined(s),h.assert(a===s.isSymlink);const c=s.dirPathToWatcher.get(n);function createDirPathToWatcher(){return a?createOrAddRefToDirectoryWatchOfFailedLookups(r,i,o):createOrAddRefToDirectoryWatchOfFailedLookups(t,n,o)}c?c.refCount++:(s.dirPathToWatcher.set(n,{watcher:createDirPathToWatcher(),refCount:1}),a&&M.set(n,(M.get(n)??0)+1))}(t,n,r,i,o):createOrAddRefToDirectoryWatchOfFailedLookups(t,n,o)}function createOrAddRefToDirectoryWatchOfFailedLookups(e,t,n){let r=F.get(t);return r?(h.assert(!!n==!!r.nonRecursive),r.refCount++):F.set(t,r={watcher:createDirectoryWatcher(e,t,n),refCount:1,nonRecursive:n}),r}function stopWatchFailedLookupLocation(t,n){const r=getDirectoryToWatchFailedLookupLocation(t,e.toPath(t),D,I,A,O,S,e.preferNonRecursiveWatch);if(r){const{dirPath:t,packageDirPath:i}=r;if(t===I)n=!0;else if(i&&e.realpath){const e=L.get(i),n=e.dirPathToWatcher.get(t);if(n.refCount--,0===n.refCount&&(removeDirectoryWatcher(e.isSymlink?i:t),e.dirPathToWatcher.delete(t),e.isSymlink)){const e=M.get(t)-1;0===e?M.delete(t):M.set(t,e)}}else removeDirectoryWatcher(t)}return n}function stopWatchFailedLookupLocationOfResolution(t,n,r){if(h.checkDefined(t.files).delete(n),t.files.size)return;t.files=void 0;const i=r(t);if(i&&i.resolvedFileName){const n=e.toPath(i.resolvedFileName),r=d.get(n);(null==r?void 0:r.delete(t))&&!r.size&&d.delete(n)}const{failedLookupLocations:o,affectingLocations:a,alternateResult:l}=t;if(s.delete(t)){let e=!1;if(o)for(const t of o)e=stopWatchFailedLookupLocation(t,e);l&&(e=stopWatchFailedLookupLocation(l,e)),e&&removeDirectoryWatcher(I)}else(null==a?void 0:a.length)&&c.delete(t);if(a)for(const e of a){P.get(e).resolutions--}}function removeDirectoryWatcher(e){F.get(e).refCount--}function createDirectoryWatcher(t,n,r){return e.watchDirectoryOfFailedLookupLocation(t,t=>{const r=e.toPath(t);x&&x.addOrDeleteFileOrDirectory(t,r),scheduleInvalidateResolutionOfFailedLookupLocation(r,n===r)},r?0:1)}function removeResolutionsOfFileFromCache(e,t,n){const r=e.get(t);r&&(r.forEach(e=>stopWatchFailedLookupLocationOfResolution(e,t,n)),e.delete(t))}function removeResolutionsOfFile(e){removeResolutionsOfFileFromCache(v,e,getResolvedModuleFromResolution),removeResolutionsOfFileFromCache(C,e,getResolvedTypeReferenceDirectiveFromResolution)}function invalidateResolutions(e,t){if(!e)return!1;let n=!1;return e.forEach(e=>{if(!e.isInvalidated&&t(e)){e.isInvalidated=n=!0;for(const t of h.checkDefined(e.files))(i??(i=new Set)).add(t),y=y||endsWith(t,Ua)}}),n}function scheduleInvalidateResolutionOfFailedLookupLocation(t,n){if(n)(g||(g=new Set)).add(t);else{const n=removeIgnoredPath(t);if(!n)return!1;if(t=n,e.fileIsOpen(t))return!1;const r=getDirectoryPath(t);if(isNodeModulesAtTypesDirectory(t)||isNodeModulesDirectory(t)||isNodeModulesAtTypesDirectory(r)||isNodeModulesDirectory(r))(_||(_=new Set)).add(t),(f||(f=new Set)).add(t);else{if(isEmittedFileOfProgram(e.getCurrentProgram(),t))return!1;if(fileExtensionIs(t,".map"))return!1;(_||(_=new Set)).add(t),(f||(f=new Set)).add(t);const n=parseNodeModuleFromPath(t,!0);n&&(f||(f=new Set)).add(n)}}e.scheduleInvalidateResolutionsOfFailedLookupLocations()}function invalidatePackageJsonMap(){const e=b.getPackageJsonInfoCache().getInternalMap();e&&(_||f||g)&&e.forEach((t,n)=>isInvalidatedFailedLookup(n)?e.delete(n):void 0)}function invalidateResolutionsOfFailedLookupLocations(){var t;if(T)return u=void 0,invalidatePackageJsonMap(),(_||f||g||m)&&invalidateResolutions(N,canInvalidateFailedLookupResolution),_=void 0,f=void 0,g=void 0,m=void 0,!0;let n=!1;return u&&(null==(t=e.getCurrentProgram())||t.getSourceFiles().forEach(e=>{some(e.packageJsonLocations,e=>u.has(e))&&((i??(i=new Set)).add(e.path),n=!0)}),u=void 0),_||f||g||m?(n=invalidateResolutions(s,canInvalidateFailedLookupResolution)||n,invalidatePackageJsonMap(),_=void 0,f=void 0,g=void 0,n=invalidateResolutions(c,canInvalidatedFailedLookupResolutionWithAffectingLocation)||n,m=void 0,n):n}function canInvalidateFailedLookupResolution(t){var n;return!!canInvalidatedFailedLookupResolutionWithAffectingLocation(t)||!!(_||f||g)&&((null==(n=t.failedLookupLocations)?void 0:n.some(t=>isInvalidatedFailedLookup(e.toPath(t))))||!!t.alternateResult&&isInvalidatedFailedLookup(e.toPath(t.alternateResult)))}function isInvalidatedFailedLookup(e){return(null==_?void 0:_.has(e))||firstDefinedIterator((null==f?void 0:f.keys())||[],t=>!!startsWith(e,t)||void 0)||firstDefinedIterator((null==g?void 0:g.keys())||[],t=>!(!(e.length>t.length&&startsWith(e,t))||!isDiskPathRoot(t)&&e[t.length]!==Ft)||void 0)}function canInvalidatedFailedLookupResolutionWithAffectingLocation(e){var t;return!!m&&(null==(t=e.affectingLocations)?void 0:t.some(e=>m.has(e)))}function closeTypeRootsWatch(){clearMap(R,closeFileWatcher)}function createTypeRootsWatch(t){return function canWatchTypeRootPath(t){return!!e.getCompilationSettings().typeRoots||canWatchAtTypes(e.toPath(t))}(t)?e.watchTypeRootsDirectory(t,n=>{const r=e.toPath(n);x&&x.addOrDeleteFileOrDirectory(n,r),y=!0,e.onChangedAutomaticTypeDirectiveNames();const i=getDirectoryToWatchFailedLookupLocationFromTypeRoot(t,e.toPath(t),I,A,O,S,e.preferNonRecursiveWatch,e=>F.has(e)||M.has(e));i&&scheduleInvalidateResolutionOfFailedLookupLocation(r,i===r)},1):Xa}}function resolutionIsSymlink(e){var t,n;return!(!(null==(t=e.resolvedModule)?void 0:t.originalPath)&&!(null==(n=e.resolvedTypeReferenceDirective)?void 0:n.originalPath))}var $a=kt?{getCurrentDirectory:()=>kt.getCurrentDirectory(),getNewLine:()=>kt.newLine,getCanonicalFileName:createGetCanonicalFileName(kt.useCaseSensitiveFileNames)}:void 0;function createDiagnosticReporter(e,t){const n=e===kt&&$a?$a:{getCurrentDirectory:()=>e.getCurrentDirectory(),getNewLine:()=>e.newLine,getCanonicalFileName:createGetCanonicalFileName(e.useCaseSensitiveFileNames)};if(!t)return t=>e.write(formatDiagnostic(t,n));const r=new Array(1);return t=>{r[0]=t,e.write(formatDiagnosticsWithColorAndContext(r,n)+n.getNewLine()),r[0]=void 0}}function clearScreenIfNotWatchingForFileChanges(e,t,n){return!(!e.clearScreen||n.preserveWatchOutput||n.extendedDiagnostics||n.diagnostics||!contains(Qa,t.code))&&(e.clearScreen(),!0)}var Qa=[Ot.Starting_compilation_in_watch_mode.code,Ot.File_change_detected_Starting_incremental_compilation.code];function getLocaleTimeString(e){return e.now?e.now().toLocaleTimeString("en-US",{timeZone:"UTC"}).replace("\u202f"," "):(new Date).toLocaleTimeString()}function createWatchStatusReporter(e,t){return t?(t,n,r)=>{clearScreenIfNotWatchingForFileChanges(e,t,r);let i=`[${formatColorAndReset(getLocaleTimeString(e),"")}] `;i+=`${flattenDiagnosticMessageText(t.messageText,e.newLine)}${n+n}`,e.write(i)}:(t,n,r)=>{let i="";clearScreenIfNotWatchingForFileChanges(e,t,r)||(i+=n),i+=`${getLocaleTimeString(e)} - `,i+=`${flattenDiagnosticMessageText(t.messageText,e.newLine)}${function getPlainDiagnosticFollowingNewLines(e,t){return contains(Qa,e.code)?t+t:t}(t,n)}`,e.write(i)}}function parseConfigFileWithSystem(e,t,n,r,i,o){const a=i;a.onUnRecoverableConfigFileDiagnostic=e=>reportUnrecoverableDiagnostic(i,o,e);const s=getParsedCommandLineOfConfigFile(e,t,a,n,r);return a.onUnRecoverableConfigFileDiagnostic=void 0,s}function getErrorCountForSummary(e){return countWhere(e,e=>1===e.category)}function getFilesInErrorForSummary(e){return filter(e,e=>1===e.category).map(e=>{if(void 0!==e.file)return`${e.file.fileName}`}).map(t=>{if(void 0===t)return;const n=find(e,e=>void 0!==e.file&&e.file.fileName===t);if(void 0!==n){const{line:e}=getLineAndCharacterOfPosition(n.file,n.start);return{fileName:t,line:e+1}}})}function getWatchErrorSummaryDiagnosticMessage(e){return 1===e?Ot.Found_1_error_Watching_for_file_changes:Ot.Found_0_errors_Watching_for_file_changes}function prettyPathForFileError(e,t){const n=formatColorAndReset(":"+e.line,"");return pathIsAbsolute(e.fileName)&&pathIsAbsolute(t)?getRelativePathFromDirectory(t,e.fileName,!1)+n:e.fileName+n}function getErrorSummaryText(e,t,n,r){if(0===e)return"";const i=t.filter(e=>void 0!==e),o=i.map(e=>`${e.fileName}:${e.line}`).filter((e,t,n)=>n.indexOf(e)===t),a=i[0]&&prettyPathForFileError(i[0],r.getCurrentDirectory());let s;s=1===e?void 0!==t[0]?[Ot.Found_1_error_in_0,a]:[Ot.Found_1_error]:0===o.length?[Ot.Found_0_errors,e]:1===o.length?[Ot.Found_0_errors_in_the_same_file_starting_at_Colon_1,e,a]:[Ot.Found_0_errors_in_1_files,e,o.length];const c=createCompilerDiagnostic(...s),l=o.length>1?function createTabularErrorsDisplay(e,t){const n=e.filter((e,t,n)=>t===n.findIndex(t=>(null==t?void 0:t.fileName)===(null==e?void 0:e.fileName)));if(0===n.length)return"";const numberLength=e=>Math.log(e)*Math.LOG10E+1,r=n.map(t=>[t,countWhere(e,e=>e.fileName===t.fileName)]),i=maxBy(r,0,e=>e[1]),o=Ot.Errors_Files.message,a=o.split(" ")[0].length,s=Math.max(a,numberLength(i)),c=Math.max(numberLength(i)-a,0);let l="";return l+=" ".repeat(c)+o+"\n",r.forEach(e=>{const[n,r]=e,i=Math.log(r)*Math.LOG10E+1|0,o=iconvertToRelativePath(t,e.getCurrentDirectory(),e.getCanonicalFileName);for(const o of e.getSourceFiles())t(`${toFileName(o,relativeFileName)}`),null==(n=i.get(o.path))||n.forEach(n=>t(` ${fileIncludeReasonToDiagnostics(e,n,relativeFileName).messageText}`)),null==(r=explainIfFileIsRedirectAndImpliedFormat(o,e.getCompilerOptionsForFile(o),relativeFileName))||r.forEach(e=>t(` ${e.messageText}`))}function explainIfFileIsRedirectAndImpliedFormat(e,t,n){var r;let i;if(e.path!==e.resolvedPath&&(i??(i=[])).push(chainDiagnosticMessages(void 0,Ot.File_is_output_of_project_reference_source_0,toFileName(e.originalFileName,n))),e.redirectInfo&&(i??(i=[])).push(chainDiagnosticMessages(void 0,Ot.File_redirects_to_file_0,toFileName(e.redirectInfo.redirectTarget,n))),isExternalOrCommonJsModule(e))switch(getImpliedNodeFormatForEmitWorker(e,t)){case 99:e.packageJsonScope&&(i??(i=[])).push(chainDiagnosticMessages(void 0,Ot.File_is_ECMAScript_module_because_0_has_field_type_with_value_module,toFileName(last(e.packageJsonLocations),n)));break;case 1:e.packageJsonScope?(i??(i=[])).push(chainDiagnosticMessages(void 0,e.packageJsonScope.contents.packageJsonContent.type?Ot.File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:Ot.File_is_CommonJS_module_because_0_does_not_have_field_type,toFileName(last(e.packageJsonLocations),n))):(null==(r=e.packageJsonLocations)?void 0:r.length)&&(i??(i=[])).push(chainDiagnosticMessages(void 0,Ot.File_is_CommonJS_module_because_package_json_was_not_found))}return i}function getMatchedFileSpec(e,t){var n;const r=e.getCompilerOptions().configFile;if(!(null==(n=null==r?void 0:r.configFileSpecs)?void 0:n.validatedFilesSpec))return;const i=e.getCanonicalFileName(t),o=getDirectoryPath(getNormalizedAbsolutePath(r.fileName,e.getCurrentDirectory())),a=findIndex(r.configFileSpecs.validatedFilesSpec,t=>e.getCanonicalFileName(getNormalizedAbsolutePath(t,o))===i);return-1!==a?r.configFileSpecs.validatedFilesSpecBeforeSubstitution[a]:void 0}function getMatchedIncludeSpec(e,t){var n,r;const i=e.getCompilerOptions().configFile;if(!(null==(n=null==i?void 0:i.configFileSpecs)?void 0:n.validatedIncludeSpecs))return;if(i.configFileSpecs.isDefaultIncludeSpec)return!0;const o=fileExtensionIs(t,".json"),a=getDirectoryPath(getNormalizedAbsolutePath(i.fileName,e.getCurrentDirectory())),s=e.useCaseSensitiveFileNames(),c=findIndex(null==(r=null==i?void 0:i.configFileSpecs)?void 0:r.validatedIncludeSpecs,e=>{if(o&&!endsWith(e,".json"))return!1;const n=getPatternFromSpec(e,a,"files");return!!n&&getRegexFromPattern(`(?:${n})$`,s).test(t)});return-1!==c?i.configFileSpecs.validatedIncludeSpecsBeforeSubstitution[c]:void 0}function fileIncludeReasonToDiagnostics(e,t,n){var r,i;const o=e.getCompilerOptions();if(isReferencedFile(t)){const r=getReferencedFileLocation(e,t),i=isReferenceFileLocation(r)?r.file.text.substring(r.pos,r.end):`"${r.text}"`;let o;switch(h.assert(isReferenceFileLocation(r)||3===t.kind,"Only synthetic references are imports"),t.kind){case 3:o=isReferenceFileLocation(r)?r.packageId?Ot.Imported_via_0_from_file_1_with_packageId_2:Ot.Imported_via_0_from_file_1:r.text===sn?r.packageId?Ot.Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:Ot.Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:r.packageId?Ot.Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:Ot.Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions;break;case 4:h.assert(!r.packageId),o=Ot.Referenced_via_0_from_file_1;break;case 5:o=r.packageId?Ot.Type_library_referenced_via_0_from_file_1_with_packageId_2:Ot.Type_library_referenced_via_0_from_file_1;break;case 7:h.assert(!r.packageId),o=Ot.Library_referenced_via_0_from_file_1;break;default:h.assertNever(t)}return chainDiagnosticMessages(void 0,o,i,toFileName(r.file,n),r.packageId&&packageIdToString(r.packageId))}switch(t.kind){case 0:if(!(null==(r=o.configFile)?void 0:r.configFileSpecs))return chainDiagnosticMessages(void 0,Ot.Root_file_specified_for_compilation);const a=getNormalizedAbsolutePath(e.getRootFileNames()[t.index],e.getCurrentDirectory());if(getMatchedFileSpec(e,a))return chainDiagnosticMessages(void 0,Ot.Part_of_files_list_in_tsconfig_json);const s=getMatchedIncludeSpec(e,a);return isString(s)?chainDiagnosticMessages(void 0,Ot.Matched_by_include_pattern_0_in_1,s,toFileName(o.configFile,n)):chainDiagnosticMessages(void 0,s?Ot.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:Ot.Root_file_specified_for_compilation);case 1:case 2:const c=2===t.kind,l=h.checkDefined(null==(i=e.getResolvedProjectReferences())?void 0:i[t.index]);return chainDiagnosticMessages(void 0,o.outFile?c?Ot.Output_from_referenced_project_0_included_because_1_specified:Ot.Source_from_referenced_project_0_included_because_1_specified:c?Ot.Output_from_referenced_project_0_included_because_module_is_specified_as_none:Ot.Source_from_referenced_project_0_included_because_module_is_specified_as_none,toFileName(l.sourceFile.fileName,n),o.outFile?"--outFile":"--out");case 8:return chainDiagnosticMessages(void 0,...o.types?t.packageId?[Ot.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1,t.typeReference,packageIdToString(t.packageId)]:[Ot.Entry_point_of_type_library_0_specified_in_compilerOptions,t.typeReference]:t.packageId?[Ot.Entry_point_for_implicit_type_library_0_with_packageId_1,t.typeReference,packageIdToString(t.packageId)]:[Ot.Entry_point_for_implicit_type_library_0,t.typeReference]);case 6:{if(void 0!==t.index)return chainDiagnosticMessages(void 0,Ot.Library_0_specified_in_compilerOptions,o.lib[t.index]);const e=getNameOfScriptTarget(zn(o));return chainDiagnosticMessages(void 0,...e?[Ot.Default_library_for_target_0,e]:[Ot.Default_library])}default:h.assertNever(t)}}function toFileName(e,t){const n=isString(e)?e:e.fileName;return t?t(n):n}function emitFilesAndReportErrors(e,t,n,r,i,o,a,s){const c=e.getCompilerOptions(),d=e.getConfigFileParsingDiagnostics().slice(),p=d.length;addRange(d,e.getSyntacticDiagnostics(void 0,o)),d.length===p&&(addRange(d,e.getOptionsDiagnostics(o)),c.listFilesOnly||(addRange(d,e.getGlobalDiagnostics(o)),d.length===p&&addRange(d,e.getSemanticDiagnostics(void 0,o)),c.noEmit&&Zn(c)&&d.length===p&&addRange(d,e.getDeclarationDiagnostics(void 0,o))));const u=c.listFilesOnly?{emitSkipped:!0,diagnostics:l}:e.emit(void 0,i,o,a,s);addRange(d,u.diagnostics);const m=sortAndDeduplicateDiagnostics(d);if(m.forEach(t),n){const t=e.getCurrentDirectory();forEach(u.emittedFiles,e=>{const r=getNormalizedAbsolutePath(e,t);n(`TSFILE: ${r}`)}),function listFiles(e,t){const n=e.getCompilerOptions();n.explainFiles?explainFiles(isBuilderProgram(e)?e.getProgram():e,t):(n.listFiles||n.listFilesOnly)&&forEach(e.getSourceFiles(),e=>{t(e.fileName)})}(e,n)}return r&&r(getErrorCountForSummary(m),getFilesInErrorForSummary(m)),{emitResult:u,diagnostics:m}}function emitFilesAndReportErrorsAndGetExitStatus(e,t,n,r,i,o,a,s){const{emitResult:c,diagnostics:l}=emitFilesAndReportErrors(e,t,n,r,i,o,a,s);return c.emitSkipped&&l.length>0?1:l.length>0?2:0}var Xa={close:noop},returnNoopFileWatcher=()=>Xa;function createWatchHost(e=kt,t){return{onWatchStatusChange:t||createWatchStatusReporter(e),watchFile:maybeBind(e,e.watchFile)||returnNoopFileWatcher,watchDirectory:maybeBind(e,e.watchDirectory)||returnNoopFileWatcher,setTimeout:maybeBind(e,e.setTimeout)||noop,clearTimeout:maybeBind(e,e.clearTimeout)||noop,preferNonRecursiveWatch:e.preferNonRecursiveWatch}}var Ya={ConfigFile:"Config file",ExtendedConfigFile:"Extended config file",SourceFile:"Source file",MissingFile:"Missing file",WildcardDirectory:"Wild card directory",FailedLookupLocations:"Failed Lookup Locations",AffectingFileLocation:"File location affecting resolution",TypeRoots:"Type roots",ConfigFileOfReferencedProject:"Config file of referened project",ExtendedConfigOfReferencedProject:"Extended config file of referenced project",WildcardDirectoryOfReferencedProject:"Wild card directory of referenced project",PackageJson:"package.json file",ClosedScriptInfo:"Closed Script info",ConfigFileForInferredRoot:"Config file for the inferred project root",NodeModules:"node_modules for closed script infos and package.jsons affecting module specifier cache",MissingSourceMapFile:"Missing source map file",NoopConfigFileForInferredRoot:"Noop Config file for the inferred project root",MissingGeneratedFile:"Missing generated file",NodeModulesForModuleSpecifierCache:"node_modules for module specifier cache invalidation",TypingInstallerLocationFile:"File location for typing installer",TypingInstallerLocationDirectory:"Directory location for typing installer"};function createWatchFactory(e,t){const n=e.trace?t.extendedDiagnostics?2:t.diagnostics?1:0:0,r=0!==n?t=>e.trace(t):noop,i=getWatchFactory(e,n,r);return i.writeLog=r,i}function createCompilerHostFromProgramHost(e,t,n=e){const r=e.useCaseSensitiveFileNames(),i={getSourceFile:createGetSourceFile((t,n)=>n?e.readFile(t,n):i.readFile(t),void 0),getDefaultLibLocation:maybeBind(e,e.getDefaultLibLocation),getDefaultLibFileName:t=>e.getDefaultLibFileName(t),writeFile:createWriteFileMeasuringIO((t,n,r)=>e.writeFile(t,n,r),t=>e.createDirectory(t),t=>e.directoryExists(t)),getCurrentDirectory:memoize(()=>e.getCurrentDirectory()),useCaseSensitiveFileNames:()=>r,getCanonicalFileName:createGetCanonicalFileName(r),getNewLine:()=>getNewLineCharacter(t()),fileExists:t=>e.fileExists(t),readFile:t=>e.readFile(t),trace:maybeBind(e,e.trace),directoryExists:maybeBind(n,n.directoryExists),getDirectories:maybeBind(n,n.getDirectories),realpath:maybeBind(e,e.realpath),getEnvironmentVariable:maybeBind(e,e.getEnvironmentVariable)||(()=>""),createHash:maybeBind(e,e.createHash),readDirectory:maybeBind(e,e.readDirectory),storeSignatureInfo:e.storeSignatureInfo,jsDocParsingMode:e.jsDocParsingMode};return i}function getSourceFileVersionAsHashFromText(e,t){if(t.match(la)){let e=t.length,n=e;for(let r=e-1;r>=0;r--){const i=t.charCodeAt(r);switch(i){case 10:r&&13===t.charCodeAt(r-1)&&r--;case 13:break;default:if(i<127||!isLineBreak(i)){n=r;continue}}const o=t.substring(n,e);if(o.match(da)){t=t.substring(0,n);break}if(!o.match(pa))break;e=n}}return(e.createHash||generateDjb2Hash)(t)}function setGetSourceFileAsHashVersioned(e){const t=e.getSourceFile;e.getSourceFile=(...n)=>{const r=t.call(e,...n);return r&&(r.version=getSourceFileVersionAsHashFromText(e,r.text)),r}}function createProgramHost(e,t){const n=memoize(()=>getDirectoryPath(normalizePath(e.getExecutingFilePath())));return{useCaseSensitiveFileNames:()=>e.useCaseSensitiveFileNames,getNewLine:()=>e.newLine,getCurrentDirectory:memoize(()=>e.getCurrentDirectory()),getDefaultLibLocation:n,getDefaultLibFileName:e=>combinePaths(n(),getDefaultLibFileName(e)),fileExists:t=>e.fileExists(t),readFile:(t,n)=>e.readFile(t,n),directoryExists:t=>e.directoryExists(t),getDirectories:t=>e.getDirectories(t),readDirectory:(t,n,r,i,o)=>e.readDirectory(t,n,r,i,o),realpath:maybeBind(e,e.realpath),getEnvironmentVariable:maybeBind(e,e.getEnvironmentVariable),trace:t=>e.write(t+e.newLine),createDirectory:t=>e.createDirectory(t),writeFile:(t,n,r)=>e.writeFile(t,n,r),createHash:maybeBind(e,e.createHash),createProgram:t||createEmitAndSemanticDiagnosticsBuilderProgram,storeSignatureInfo:e.storeSignatureInfo,now:maybeBind(e,e.now)}}function createWatchCompilerHost(e=kt,t,n,r){const write=t=>e.write(t+e.newLine),i=createProgramHost(e,t);return copyProperties(i,createWatchHost(e,r)),i.afterProgramCreate=e=>{const t=e.getCompilerOptions(),r=getNewLineCharacter(t);emitFilesAndReportErrors(e,n,write,e=>i.onWatchStatusChange(createCompilerDiagnostic(getWatchErrorSummaryDiagnosticMessage(e),e),r,t,e))},i}function reportUnrecoverableDiagnostic(e,t,n){t(n),e.exit(1)}function createWatchCompilerHostOfConfigFile({configFileName:e,optionsToExtend:t,watchOptionsToExtend:n,extraFileExtensions:r,system:i,createProgram:o,reportDiagnostic:a,reportWatchStatus:s}){const c=a||createDiagnosticReporter(i),l=createWatchCompilerHost(i,o,c,s);return l.onUnRecoverableConfigFileDiagnostic=e=>reportUnrecoverableDiagnostic(i,c,e),l.configFileName=e,l.optionsToExtend=t,l.watchOptionsToExtend=n,l.extraFileExtensions=r,l}function createWatchCompilerHostOfFilesAndCompilerOptions({rootFiles:e,options:t,watchOptions:n,projectReferences:r,system:i,createProgram:o,reportDiagnostic:a,reportWatchStatus:s}){const c=createWatchCompilerHost(i,o,a||createDiagnosticReporter(i),s);return c.rootFiles=e,c.options=t,c.watchOptions=n,c.projectReferences=r,c}function performIncrementalCompilation(e){const t=e.system||kt,n=e.host||(e.host=createIncrementalCompilerHost(e.options,t)),r=createIncrementalProgram(e),i=emitFilesAndReportErrorsAndGetExitStatus(r,e.reportDiagnostic||createDiagnosticReporter(t),e=>n.trace&&n.trace(e),e.reportErrorSummary||e.options.pretty?(e,r)=>t.write(getErrorSummaryText(e,r,t.newLine,n)):void 0);return e.afterProgramEmitAndDiagnostics&&e.afterProgramEmitAndDiagnostics(r),i}function readBuilderProgram(e,t){const n=getTsBuildInfoEmitOutputFilePath(e);if(!n)return;let r;if(t.getBuildInfo)r=t.getBuildInfo(n,e.configFilePath);else{const e=t.readFile(n);if(!e)return;r=getBuildInfo(n,e)}return r&&r.version===s&&isIncrementalBuildInfo(r)?createBuilderProgramUsingIncrementalBuildInfo(r,n,t):void 0}function createIncrementalCompilerHost(e,t=kt){const n=createCompilerHostWorker(e,void 0,t);return n.createHash=maybeBind(t,t.createHash),n.storeSignatureInfo=t.storeSignatureInfo,setGetSourceFileAsHashVersioned(n),changeCompilerHostLikeToUseCache(n,e=>toPath(e,n.getCurrentDirectory(),n.getCanonicalFileName)),n}function createIncrementalProgram({rootNames:e,options:t,configFileParsingDiagnostics:n,projectReferences:r,host:i,createProgram:o}){return(o=o||createEmitAndSemanticDiagnosticsBuilderProgram)(e,t,i=i||createIncrementalCompilerHost(t),readBuilderProgram(t,i),n,r)}function createWatchCompilerHost2(e,t,n,r,i,o,a,s){return isArray(e)?createWatchCompilerHostOfFilesAndCompilerOptions({rootFiles:e,options:t,watchOptions:s,projectReferences:a,system:n,createProgram:r,reportDiagnostic:i,reportWatchStatus:o}):createWatchCompilerHostOfConfigFile({configFileName:e,optionsToExtend:t,watchOptionsToExtend:a,extraFileExtensions:s,system:n,createProgram:r,reportDiagnostic:i,reportWatchStatus:o})}function createWatchProgram(e){let t,n,r,i,o,a,s,c,l=new Map([[void 0,void 0]]),d=e.extendedConfigCache,p=!1;const u=new Map;let m,_=!1;const f=e.useCaseSensitiveFileNames(),g=e.getCurrentDirectory(),{configFileName:y,optionsToExtend:T={},watchOptionsToExtend:S,extraFileExtensions:x,createProgram:v}=e;let b,C,{rootFiles:E,options:N,watchOptions:k,projectReferences:F}=e,P=!1,D=!1;const I=void 0===y?void 0:createCachedDirectoryStructureHost(e,g,f),A=I||e,O=parseConfigHostFromCompilerHostLike(e,A);let w=updateNewLine();y&&e.configFileParsingResult&&(setConfigFileParsingResult(e.configFileParsingResult),w=updateNewLine()),reportWatchDiagnostic(Ot.Starting_compilation_in_watch_mode),y&&!e.configFileParsingResult&&(w=getNewLineCharacter(T),h.assert(!E),parseConfigFile2(),w=updateNewLine()),h.assert(N),h.assert(E);const{watchFile:L,watchDirectory:M,writeLog:R}=createWatchFactory(e,N),B=createGetCanonicalFileName(f);let j;R(`Current directory: ${g} CaseSensitiveFileNames: ${f}`),y&&(j=L(y,function scheduleProgramReload(){h.assert(!!y),n=2,scheduleProgramUpdate()},2e3,k,Ya.ConfigFile));const J=createCompilerHostFromProgramHost(e,()=>N,A);setGetSourceFileAsHashVersioned(J);const W=J.getSourceFile;J.getSourceFile=(e,...t)=>getVersionedSourceFileByPath(e,toPath3(e),...t),J.getSourceFileByPath=getVersionedSourceFileByPath,J.getNewLine=()=>w,J.fileExists=function fileExists(e){const t=toPath3(e);if(isFileMissingOnHost(u.get(t)))return!1;return A.fileExists(e)},J.onReleaseOldSourceFile=function onReleaseOldSourceFile(e,t,n){const r=u.get(e.resolvedPath);void 0!==r&&(isFileMissingOnHost(r)?(m||(m=[])).push(e.path):r.sourceFile===e&&(r.fileWatcher&&r.fileWatcher.close(),u.delete(e.resolvedPath),n||U.removeResolutionsOfFile(e.path)))},J.onReleaseParsedCommandLine=function onReleaseParsedCommandLine(e){var t;const n=toPath3(e),r=null==s?void 0:s.get(n);if(!r)return;s.delete(n),r.watchedDirectories&&clearMap(r.watchedDirectories,closeFileWatcherOf);null==(t=r.watcher)||t.close(),clearSharedExtendedConfigFileWatcher(n,c)},J.toPath=toPath3,J.getCompilationSettings=()=>N,J.useSourceOfProjectReferenceRedirect=maybeBind(e,e.useSourceOfProjectReferenceRedirect),J.preferNonRecursiveWatch=e.preferNonRecursiveWatch,J.watchDirectoryOfFailedLookupLocation=(e,t,n)=>M(e,t,n,k,Ya.FailedLookupLocations),J.watchAffectingFileLocation=(e,t)=>L(e,t,2e3,k,Ya.AffectingFileLocation),J.watchTypeRootsDirectory=(e,t,n)=>M(e,t,n,k,Ya.TypeRoots),J.getCachedDirectoryStructureHost=()=>I,J.scheduleInvalidateResolutionsOfFailedLookupLocations=function scheduleInvalidateResolutionsOfFailedLookupLocations(){if(!e.setTimeout||!e.clearTimeout)return U.invalidateResolutionsOfFailedLookupLocations();const t=clearInvalidateResolutionsOfFailedLookupLocations();R("Scheduling invalidateFailedLookup"+(t?", Cancelled earlier one":"")),a=e.setTimeout(invalidateResolutionsOfFailedLookup,250,"timerToInvalidateFailedLookupResolutions")},J.onInvalidatedResolution=scheduleProgramUpdate,J.onChangedAutomaticTypeDirectiveNames=scheduleProgramUpdate,J.fileIsOpen=returnFalse,J.getCurrentProgram=getCurrentProgram,J.writeLog=R,J.getParsedCommandLine=getParsedCommandLine;const U=createResolutionCache(J,y?getDirectoryPath(getNormalizedAbsolutePath(y,g)):g,!1);J.resolveModuleNameLiterals=maybeBind(e,e.resolveModuleNameLiterals),J.resolveModuleNames=maybeBind(e,e.resolveModuleNames),J.resolveModuleNameLiterals||J.resolveModuleNames||(J.resolveModuleNameLiterals=U.resolveModuleNameLiterals.bind(U)),J.resolveTypeReferenceDirectiveReferences=maybeBind(e,e.resolveTypeReferenceDirectiveReferences),J.resolveTypeReferenceDirectives=maybeBind(e,e.resolveTypeReferenceDirectives),J.resolveTypeReferenceDirectiveReferences||J.resolveTypeReferenceDirectives||(J.resolveTypeReferenceDirectiveReferences=U.resolveTypeReferenceDirectiveReferences.bind(U)),J.resolveLibrary=e.resolveLibrary?e.resolveLibrary.bind(e):U.resolveLibrary.bind(U),J.getModuleResolutionCache=e.resolveModuleNameLiterals||e.resolveModuleNames?maybeBind(e,e.getModuleResolutionCache):()=>U.getModuleResolutionCache();const z=!!(e.resolveModuleNameLiterals||e.resolveTypeReferenceDirectiveReferences||e.resolveModuleNames||e.resolveTypeReferenceDirectives)?maybeBind(e,e.hasInvalidatedResolutions)||returnTrue:returnFalse,V=e.resolveLibrary?maybeBind(e,e.hasInvalidatedLibResolutions)||returnTrue:returnFalse;return t=readBuilderProgram(N,J),synchronizeProgram(),y?{getCurrentProgram:getCurrentBuilderProgram,getProgram:updateProgram,close,getResolutionCache}:{getCurrentProgram:getCurrentBuilderProgram,getProgram:updateProgram,updateRootFileNames:function updateRootFileNames(e){h.assert(!y,"Cannot update root file names with config file watch mode"),E=e,scheduleProgramUpdate()},close,getResolutionCache};function close(){clearInvalidateResolutionsOfFailedLookupLocations(),U.clear(),clearMap(u,e=>{e&&e.fileWatcher&&(e.fileWatcher.close(),e.fileWatcher=void 0)}),j&&(j.close(),j=void 0),null==d||d.clear(),d=void 0,c&&(clearMap(c,closeFileWatcherOf),c=void 0),i&&(clearMap(i,closeFileWatcherOf),i=void 0),r&&(clearMap(r,closeFileWatcher),r=void 0),s&&(clearMap(s,e=>{var t;null==(t=e.watcher)||t.close(),e.watcher=void 0,e.watchedDirectories&&clearMap(e.watchedDirectories,closeFileWatcherOf),e.watchedDirectories=void 0}),s=void 0),t=void 0}function getResolutionCache(){return U}function getCurrentBuilderProgram(){return t}function getCurrentProgram(){return t&&t.getProgramOrUndefined()}function synchronizeProgram(){R("Synchronizing program"),h.assert(N),h.assert(E),clearInvalidateResolutionsOfFailedLookupLocations();const n=getCurrentBuilderProgram();_&&(w=updateNewLine(),n&&changesAffectModuleResolution(n.getCompilerOptions(),N)&&U.onChangesAffectModuleResolution());const{hasInvalidatedResolutions:o,hasInvalidatedLibResolutions:a}=U.createHasInvalidatedResolutions(z,V),{originalReadFile:c,originalFileExists:d,originalDirectoryExists:T,originalCreateDirectory:S,originalWriteFile:x,readFileWithCache:P}=changeCompilerHostLikeToUseCache(J,toPath3);return isProgramUptoDate(getCurrentProgram(),E,N,e=>function getSourceVersion(e,t){const n=u.get(e);if(!n)return;if(n.version)return n.version;const r=t(e);return void 0!==r?getSourceFileVersionAsHashFromText(J,r):void 0}(e,P),e=>J.fileExists(e),o,a,hasChangedAutomaticTypeDirectiveNames,getParsedCommandLine,F)?D&&(p&&reportWatchDiagnostic(Ot.File_change_detected_Starting_incremental_compilation),t=v(void 0,void 0,J,t,C,F),D=!1):(p&&reportWatchDiagnostic(Ot.File_change_detected_Starting_incremental_compilation),function createNewProgram(e,n){R("CreatingProgramWith::"),R(` roots: ${JSON.stringify(E)}`),R(` options: ${JSON.stringify(N)}`),F&&R(` projectReferences: ${JSON.stringify(F)}`);const i=_||!getCurrentProgram();_=!1,D=!1,U.startCachingPerDirectoryResolution(),J.hasInvalidatedResolutions=e,J.hasInvalidatedLibResolutions=n,J.hasChangedAutomaticTypeDirectiveNames=hasChangedAutomaticTypeDirectiveNames;const o=getCurrentProgram();t=v(E,N,J,t,C,F),U.finishCachingPerDirectoryResolution(t.getProgram(),o),updateMissingFilePathsWatch(t.getProgram(),r||(r=new Map),watchMissingFilePath),i&&U.updateTypeRootsWatch();if(m){for(const e of m)r.has(e)||u.delete(e);m=void 0}}(o,a)),p=!1,e.afterProgramCreate&&n!==t&&e.afterProgramCreate(t),J.readFile=c,J.fileExists=d,J.directoryExists=T,J.createDirectory=S,J.writeFile=x,null==l||l.forEach((e,t)=>{if(t){const n=null==s?void 0:s.get(t);n&&function watchReferencedProject(e,t,n){var r,i,o,a;n.watcher||(n.watcher=L(e,(n,r)=>{updateCachedSystemWithFile(e,t,r);const i=null==s?void 0:s.get(t);i&&(i.updateLevel=2),U.removeResolutionsFromProjectReferenceRedirects(t),scheduleProgramUpdate()},2e3,(null==(r=n.parsedCommandLine)?void 0:r.watchOptions)||k,Ya.ConfigFileOfReferencedProject)),updateWatchingWildcardDirectories(n.watchedDirectories||(n.watchedDirectories=new Map),null==(i=n.parsedCommandLine)?void 0:i.wildcardDirectories,(r,i)=>{var o;return M(r,n=>{const i=toPath3(n);I&&I.addOrDeleteFileOrDirectory(n,i),nextSourceFileVersion(i);const o=null==s?void 0:s.get(t);(null==o?void 0:o.parsedCommandLine)&&(isIgnoredFileFromWildCardWatching({watchedDirPath:toPath3(r),fileOrDirectory:n,fileOrDirectoryPath:i,configFileName:e,options:o.parsedCommandLine.options,program:o.parsedCommandLine.fileNames,currentDirectory:g,useCaseSensitiveFileNames:f,writeLog:R,toPath:toPath3})||2!==o.updateLevel&&(o.updateLevel=1,scheduleProgramUpdate()))},i,(null==(o=n.parsedCommandLine)?void 0:o.watchOptions)||k,Ya.WildcardDirectoryOfReferencedProject)}),updateExtendedConfigFilesWatches(t,null==(o=n.parsedCommandLine)?void 0:o.options,(null==(a=n.parsedCommandLine)?void 0:a.watchOptions)||k,Ya.ExtendedConfigOfReferencedProject)}(e,t,n)}else!function watchConfigFileWildCardDirectories(){updateWatchingWildcardDirectories(i||(i=new Map),b,watchWildcardDirectory)}(),y&&updateExtendedConfigFilesWatches(toPath3(y),N,k,Ya.ExtendedConfigFile)}),l=void 0,t}function updateNewLine(){return getNewLineCharacter(N||T)}function toPath3(e){return toPath(e,g,B)}function isFileMissingOnHost(e){return"boolean"==typeof e}function getVersionedSourceFileByPath(e,t,n,r,i){const o=u.get(t);if(isFileMissingOnHost(o))return;const a="object"==typeof n?n.impliedNodeFormat:void 0;if(void 0===o||i||function isFilePresenceUnknownOnHost(e){return"boolean"==typeof e.version}(o)||o.sourceFile.impliedNodeFormat!==a){const i=W(e,n,r);if(o)i?(o.sourceFile=i,o.version=i.version,o.fileWatcher||(o.fileWatcher=watchFilePath(t,e,onSourceFileChange,250,k,Ya.SourceFile))):(o.fileWatcher&&o.fileWatcher.close(),u.set(t,!1));else if(i){const n=watchFilePath(t,e,onSourceFileChange,250,k,Ya.SourceFile);u.set(t,{sourceFile:i,version:i.version,fileWatcher:n})}else u.set(t,!1);return i}return o.sourceFile}function nextSourceFileVersion(e){const t=u.get(e);void 0!==t&&(isFileMissingOnHost(t)?u.set(e,{version:!1}):t.version=!1)}function reportWatchDiagnostic(t){e.onWatchStatusChange&&e.onWatchStatusChange(createCompilerDiagnostic(t),w,N||T)}function hasChangedAutomaticTypeDirectiveNames(){return U.hasChangedAutomaticTypeDirectiveNames()}function clearInvalidateResolutionsOfFailedLookupLocations(){return!!a&&(e.clearTimeout(a),a=void 0,!0)}function invalidateResolutionsOfFailedLookup(){a=void 0,U.invalidateResolutionsOfFailedLookupLocations()&&scheduleProgramUpdate()}function scheduleProgramUpdate(){e.setTimeout&&e.clearTimeout&&(o&&e.clearTimeout(o),R("Scheduling update"),o=e.setTimeout(updateProgramWithWatchStatus,250,"timerToUpdateProgram"))}function updateProgramWithWatchStatus(){o=void 0,p=!0,updateProgram()}function updateProgram(){switch(n){case 1:!function reloadFileNamesFromConfigFile(){R("Reloading new file names and options"),h.assert(N),h.assert(y),n=0,E=getFileNamesFromConfigSpecs(N.configFile.configFileSpecs,getNormalizedAbsolutePath(getDirectoryPath(y),g),N,O,x),updateErrorForNoInputFiles(E,getNormalizedAbsolutePath(y,g),N.configFile.configFileSpecs,C,P)&&(D=!0);synchronizeProgram()}();break;case 2:!function reloadConfigFile(){h.assert(y),R(`Reloading config file: ${y}`),n=0,I&&I.clearCache();parseConfigFile2(),_=!0,(l??(l=new Map)).set(void 0,void 0),synchronizeProgram()}();break;default:synchronizeProgram()}return getCurrentBuilderProgram()}function parseConfigFile2(){h.assert(y),setConfigFileParsingResult(getParsedCommandLineOfConfigFile(y,T,O,d||(d=new Map),S,x))}function setConfigFileParsingResult(e){E=e.fileNames,N=e.options,k=e.watchOptions,F=e.projectReferences,b=e.wildcardDirectories,C=getConfigFileParsingDiagnostics(e).slice(),P=canJsonReportNoInputFiles(e.raw),D=!0}function getParsedCommandLine(t){const n=toPath3(t);let r=null==s?void 0:s.get(n);if(r){if(!r.updateLevel)return r.parsedCommandLine;if(r.parsedCommandLine&&1===r.updateLevel&&!e.getParsedCommandLine){R("Reloading new file names and options"),h.assert(N);const e=getFileNamesFromConfigSpecs(r.parsedCommandLine.options.configFile.configFileSpecs,getNormalizedAbsolutePath(getDirectoryPath(t),g),N,O);return r.parsedCommandLine={...r.parsedCommandLine,fileNames:e},r.updateLevel=void 0,r.parsedCommandLine}}R(`Loading config file: ${t}`);const i=e.getParsedCommandLine?e.getParsedCommandLine(t):function getParsedCommandLineFromConfigFileHost(e){const t=O.onUnRecoverableConfigFileDiagnostic;O.onUnRecoverableConfigFileDiagnostic=noop;const n=getParsedCommandLineOfConfigFile(e,void 0,O,d||(d=new Map),S);return O.onUnRecoverableConfigFileDiagnostic=t,n}(t);return r?(r.parsedCommandLine=i,r.updateLevel=void 0):(s||(s=new Map)).set(n,r={parsedCommandLine:i}),(l??(l=new Map)).set(n,t),i}function watchFilePath(e,t,n,r,i,o){return L(t,(t,r)=>n(t,r,e),r,i,o)}function onSourceFileChange(e,t,n){updateCachedSystemWithFile(e,n,t),2===t&&u.has(n)&&U.invalidateResolutionOfFile(n),nextSourceFileVersion(n),scheduleProgramUpdate()}function updateCachedSystemWithFile(e,t,n){I&&I.addOrDeleteFile(e,t,n)}function watchMissingFilePath(e,t){return(null==s?void 0:s.has(e))?Xa:watchFilePath(e,t,onMissingFileChange,500,k,Ya.MissingFile)}function onMissingFileChange(e,t,n){updateCachedSystemWithFile(e,n,t),0===t&&r.has(n)&&(r.get(n).close(),r.delete(n),nextSourceFileVersion(n),scheduleProgramUpdate())}function watchWildcardDirectory(e,t){return M(e,t=>{h.assert(y),h.assert(N);const r=toPath3(t);I&&I.addOrDeleteFileOrDirectory(t,r),nextSourceFileVersion(r),isIgnoredFileFromWildCardWatching({watchedDirPath:toPath3(e),fileOrDirectory:t,fileOrDirectoryPath:r,configFileName:y,extraFileExtensions:x,options:N,program:getCurrentBuilderProgram()||E,currentDirectory:g,useCaseSensitiveFileNames:f,writeLog:R,toPath:toPath3})||2!==n&&(n=1,scheduleProgramUpdate())},t,k,Ya.WildcardDirectory)}function updateExtendedConfigFilesWatches(e,t,r,i){updateSharedExtendedConfigFileWatcher(e,t,c||(c=new Map),(e,t)=>L(e,(r,i)=>{var o;updateCachedSystemWithFile(e,t,i),d&&cleanExtendedConfigCache(d,t,toPath3);const a=null==(o=c.get(t))?void 0:o.projects;(null==a?void 0:a.size)&&a.forEach(e=>{if(y&&toPath3(y)===e)n=2;else{const t=null==s?void 0:s.get(e);t&&(t.updateLevel=2),U.removeResolutionsFromProjectReferenceRedirects(e)}scheduleProgramUpdate()})},2e3,r,i),toPath3)}}var Za=(e=>(e[e.Unbuildable=0]="Unbuildable",e[e.UpToDate=1]="UpToDate",e[e.UpToDateWithUpstreamTypes=2]="UpToDateWithUpstreamTypes",e[e.OutputMissing=3]="OutputMissing",e[e.ErrorReadingFile=4]="ErrorReadingFile",e[e.OutOfDateWithSelf=5]="OutOfDateWithSelf",e[e.OutOfDateWithUpstream=6]="OutOfDateWithUpstream",e[e.OutOfDateBuildInfoWithPendingEmit=7]="OutOfDateBuildInfoWithPendingEmit",e[e.OutOfDateBuildInfoWithErrors=8]="OutOfDateBuildInfoWithErrors",e[e.OutOfDateOptions=9]="OutOfDateOptions",e[e.OutOfDateRoots=10]="OutOfDateRoots",e[e.UpstreamOutOfDate=11]="UpstreamOutOfDate",e[e.UpstreamBlocked=12]="UpstreamBlocked",e[e.ComputingUpstream=13]="ComputingUpstream",e[e.TsVersionOutputOfDate=14]="TsVersionOutputOfDate",e[e.UpToDateWithInputFileText=15]="UpToDateWithInputFileText",e[e.ContainerOnly=16]="ContainerOnly",e[e.ForceBuild=17]="ForceBuild",e))(Za||{});function resolveConfigFileProjectName(e){return fileExtensionIs(e,".json")?e:combinePaths(e,"tsconfig.json")}var es=new Date(-864e13);function getOrCreateValueMapFromConfigFileMap(e,t){return function getOrCreateValueFromConfigFileMap(e,t,n){const r=e.get(t);let i;return r||(i=n(),e.set(t,i)),r||i}(e,t,()=>new Map)}function getCurrentTime(e){return e.now?e.now():new Date}function isCircularBuildOrder(e){return!!e&&!!e.buildOrder}function getBuildOrderFromAnyBuildOrder(e){return isCircularBuildOrder(e)?e.buildOrder:e}function createBuilderStatusReporter(e,t){return n=>{let r=t?`[${formatColorAndReset(getLocaleTimeString(e),"")}] `:`${getLocaleTimeString(e)} - `;r+=`${flattenDiagnosticMessageText(n.messageText,e.newLine)}${e.newLine+e.newLine}`,e.write(r)}}function createSolutionBuilderHostBase(e,t,n,r){const i=createProgramHost(e,t);return i.getModifiedTime=e.getModifiedTime?t=>e.getModifiedTime(t):returnUndefined,i.setModifiedTime=e.setModifiedTime?(t,n)=>e.setModifiedTime(t,n):noop,i.deleteFile=e.deleteFile?t=>e.deleteFile(t):noop,i.reportDiagnostic=n||createDiagnosticReporter(e),i.reportSolutionBuilderStatus=r||createBuilderStatusReporter(e),i.now=maybeBind(e,e.now),i}function createSolutionBuilderHost(e=kt,t,n,r,i){const o=createSolutionBuilderHostBase(e,t,n,r);return o.reportErrorSummary=i,o}function createSolutionBuilderWithWatchHost(e=kt,t,n,r,i){const o=createSolutionBuilderHostBase(e,t,n,r);return copyProperties(o,createWatchHost(e,i)),o}function createSolutionBuilder(e,t,n){return createSolutionBuilderWorker(!1,e,t,n)}function createSolutionBuilderWithWatch(e,t,n,r){return createSolutionBuilderWorker(!0,e,t,n,r)}function createSolutionBuilderState(e,t,n,r,i){const o=t,a=t,s=function getCompilerOptionsOfBuildOptions(e){const t={};return Hi.forEach(n=>{hasProperty(e,n.name)&&(t[n.name]=e[n.name])}),t.tscBuild=!0,t}(r),c=createCompilerHostFromProgramHost(o,()=>f.projectCompilerOptions);let l,d,p;setGetSourceFileAsHashVersioned(c),c.getParsedCommandLine=e=>parseConfigFile(f,e,toResolvedConfigFilePath(f,e)),c.resolveModuleNameLiterals=maybeBind(o,o.resolveModuleNameLiterals),c.resolveTypeReferenceDirectiveReferences=maybeBind(o,o.resolveTypeReferenceDirectiveReferences),c.resolveLibrary=maybeBind(o,o.resolveLibrary),c.resolveModuleNames=maybeBind(o,o.resolveModuleNames),c.resolveTypeReferenceDirectives=maybeBind(o,o.resolveTypeReferenceDirectives),c.getModuleResolutionCache=maybeBind(o,o.getModuleResolutionCache),c.resolveModuleNameLiterals||c.resolveModuleNames||(l=createModuleResolutionCache(c.getCurrentDirectory(),c.getCanonicalFileName),c.resolveModuleNameLiterals=(e,t,n,r,i)=>loadWithModeAwareCache(e,t,n,r,i,o,l,createModuleResolutionLoader),c.getModuleResolutionCache=()=>l),c.resolveTypeReferenceDirectiveReferences||c.resolveTypeReferenceDirectives||(d=createTypeReferenceDirectiveResolutionCache(c.getCurrentDirectory(),c.getCanonicalFileName,void 0,null==l?void 0:l.getPackageJsonInfoCache(),null==l?void 0:l.optionsToRedirectsKey),c.resolveTypeReferenceDirectiveReferences=(e,t,n,r,i)=>loadWithModeAwareCache(e,t,n,r,i,o,d,createTypeReferenceResolutionLoader)),c.resolveLibrary||(p=createModuleResolutionCache(c.getCurrentDirectory(),c.getCanonicalFileName,void 0,null==l?void 0:l.getPackageJsonInfoCache()),c.resolveLibrary=(e,t,n)=>resolveLibrary(e,t,n,o,p)),c.getBuildInfo=(e,t)=>getBuildInfo3(f,e,toResolvedConfigFilePath(f,t),void 0);const{watchFile:u,watchDirectory:m,writeLog:_}=createWatchFactory(a,r),f={host:o,hostWithWatch:a,parseConfigFileHost:parseConfigHostFromCompilerHostLike(o),write:maybeBind(o,o.trace),options:r,baseCompilerOptions:s,rootNames:n,baseWatchOptions:i,resolvedConfigFilePaths:new Map,configFileCache:new Map,projectStatus:new Map,extendedConfigCache:new Map,buildInfoCache:new Map,outputTimeStamps:new Map,builderPrograms:new Map,diagnostics:new Map,projectPendingBuild:new Map,projectErrorsReported:new Map,compilerHost:c,moduleResolutionCache:l,typeReferenceDirectiveResolutionCache:d,libraryResolutionCache:p,buildOrder:void 0,readFileWithCache:e=>o.readFile(e),projectCompilerOptions:s,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:e,watch:e,allWatchedWildcardDirectories:new Map,allWatchedInputFiles:new Map,allWatchedConfigFiles:new Map,allWatchedExtendedConfigFiles:new Map,allWatchedPackageJsonFiles:new Map,filesWatched:new Map,lastCachedPackageJsonLookups:new Map,timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:u,watchDirectory:m,writeLog:_};return f}function toPath2(e,t){return toPath(t,e.compilerHost.getCurrentDirectory(),e.compilerHost.getCanonicalFileName)}function toResolvedConfigFilePath(e,t){const{resolvedConfigFilePaths:n}=e,r=n.get(t);if(void 0!==r)return r;const i=toPath2(e,t);return n.set(t,i),i}function isParsedCommandLine(e){return!!e.options}function getCachedParsedConfigFile(e,t){const n=e.configFileCache.get(t);return n&&isParsedCommandLine(n)?n:void 0}function parseConfigFile(e,t,n){const{configFileCache:r}=e,i=r.get(n);if(i)return isParsedCommandLine(i)?i:void 0;let o;mark("SolutionBuilder::beforeConfigFileParsing");const{parseConfigFileHost:a,baseCompilerOptions:s,baseWatchOptions:c,extendedConfigCache:l,host:d}=e;let p;return d.getParsedCommandLine?(p=d.getParsedCommandLine(t),p||(o=createCompilerDiagnostic(Ot.File_0_not_found,t))):(a.onUnRecoverableConfigFileDiagnostic=e=>o=e,p=getParsedCommandLineOfConfigFile(t,s,a,l,c),a.onUnRecoverableConfigFileDiagnostic=noop),r.set(n,p||o),mark("SolutionBuilder::afterConfigFileParsing"),measure("SolutionBuilder::Config file parsing","SolutionBuilder::beforeConfigFileParsing","SolutionBuilder::afterConfigFileParsing"),p}function resolveProjectName(e,t){return resolveConfigFileProjectName(resolvePath(e.compilerHost.getCurrentDirectory(),t))}function createBuildOrder(e,t){const n=new Map,r=new Map,i=[];let o,a;for(const e of t)visit(e);return a?{buildOrder:o||l,circularDiagnostics:a}:o||l;function visit(t,s){const c=toResolvedConfigFilePath(e,t);if(r.has(c))return;if(n.has(c))return void(s||(a||(a=[])).push(createCompilerDiagnostic(Ot.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0,i.join("\r\n"))));n.set(c,!0),i.push(t);const l=parseConfigFile(e,t,c);if(l&&l.projectReferences)for(const t of l.projectReferences){visit(resolveProjectName(e,t.path),s||t.circular)}i.pop(),r.set(c,!0),(o||(o=[])).push(t)}}function getBuildOrder(e){return e.buildOrder||function createStateBuildOrder(e){const t=createBuildOrder(e,e.rootNames.map(t=>resolveProjectName(e,t)));e.resolvedConfigFilePaths.clear();const n=new Set(getBuildOrderFromAnyBuildOrder(t).map(t=>toResolvedConfigFilePath(e,t))),r={onDeleteValue:noop};mutateMapSkippingNewValues(e.configFileCache,n,r),mutateMapSkippingNewValues(e.projectStatus,n,r),mutateMapSkippingNewValues(e.builderPrograms,n,r),mutateMapSkippingNewValues(e.diagnostics,n,r),mutateMapSkippingNewValues(e.projectPendingBuild,n,r),mutateMapSkippingNewValues(e.projectErrorsReported,n,r),mutateMapSkippingNewValues(e.buildInfoCache,n,r),mutateMapSkippingNewValues(e.outputTimeStamps,n,r),mutateMapSkippingNewValues(e.lastCachedPackageJsonLookups,n,r),e.watch&&(mutateMapSkippingNewValues(e.allWatchedConfigFiles,n,{onDeleteValue:closeFileWatcher}),e.allWatchedExtendedConfigFiles.forEach(e=>{e.projects.forEach(t=>{n.has(t)||e.projects.delete(t)}),e.close()}),mutateMapSkippingNewValues(e.allWatchedWildcardDirectories,n,{onDeleteValue:e=>e.forEach(closeFileWatcherOf)}),mutateMapSkippingNewValues(e.allWatchedInputFiles,n,{onDeleteValue:e=>e.forEach(closeFileWatcher)}),mutateMapSkippingNewValues(e.allWatchedPackageJsonFiles,n,{onDeleteValue:e=>e.forEach(closeFileWatcher)}));return e.buildOrder=t}(e)}function getBuildOrderFor(e,t,n){const r=t&&resolveProjectName(e,t),i=getBuildOrder(e);if(isCircularBuildOrder(i))return i;if(r){const t=toResolvedConfigFilePath(e,r);if(-1===findIndex(i,n=>toResolvedConfigFilePath(e,n)===t))return}const o=r?createBuildOrder(e,[r]):i;return h.assert(!isCircularBuildOrder(o)),h.assert(!n||void 0!==r),h.assert(!n||o[o.length-1]===r),n?o.slice(0,o.length-1):o}function enableCache(e){e.cache&&disableCache(e);const{compilerHost:t,host:n}=e,r=e.readFileWithCache,i=t.getSourceFile,{originalReadFile:o,originalFileExists:a,originalDirectoryExists:s,originalCreateDirectory:c,originalWriteFile:l,getSourceFileWithCache:d,readFileWithCache:p}=changeCompilerHostLikeToUseCache(n,t=>toPath2(e,t),(...e)=>i.call(t,...e));e.readFileWithCache=p,t.getSourceFile=d,e.cache={originalReadFile:o,originalFileExists:a,originalDirectoryExists:s,originalCreateDirectory:c,originalWriteFile:l,originalReadFileWithCache:r,originalGetSourceFile:i}}function disableCache(e){if(!e.cache)return;const{cache:t,host:n,compilerHost:r,extendedConfigCache:i,moduleResolutionCache:o,typeReferenceDirectiveResolutionCache:a,libraryResolutionCache:s}=e;n.readFile=t.originalReadFile,n.fileExists=t.originalFileExists,n.directoryExists=t.originalDirectoryExists,n.createDirectory=t.originalCreateDirectory,n.writeFile=t.originalWriteFile,r.getSourceFile=t.originalGetSourceFile,e.readFileWithCache=t.originalReadFileWithCache,i.clear(),null==o||o.clear(),null==a||a.clear(),null==s||s.clear(),e.cache=void 0}function clearProjectStatus(e,t){e.projectStatus.delete(t),e.diagnostics.delete(t)}function addProjToQueue({projectPendingBuild:e},t,n){const r=e.get(t);(void 0===r||re.projectPendingBuild.set(toResolvedConfigFilePath(e,t),0)),t&&t.throwIfCancellationRequested()}var ts=(e=>(e[e.Build=0]="Build",e[e.UpdateOutputFileStamps=1]="UpdateOutputFileStamps",e))(ts||{});function doneInvalidatedProject(e,t){return e.projectPendingBuild.delete(t),e.diagnostics.has(t)?1:0}function createBuildOrUpdateInvalidedProject(e,t,n,r,i,o,a){let s,c,d=0;return{kind:0,project:t,projectPath:n,buildOrder:a,getCompilerOptions:()=>i.options,getCurrentDirectory:()=>e.compilerHost.getCurrentDirectory(),getBuilderProgram:()=>withProgramOrUndefined(identity),getProgram:()=>withProgramOrUndefined(e=>e.getProgramOrUndefined()),getSourceFile:e=>withProgramOrUndefined(t=>t.getSourceFile(e)),getSourceFiles:()=>withProgramOrEmptyArray(e=>e.getSourceFiles()),getOptionsDiagnostics:e=>withProgramOrEmptyArray(t=>t.getOptionsDiagnostics(e)),getGlobalDiagnostics:e=>withProgramOrEmptyArray(t=>t.getGlobalDiagnostics(e)),getConfigFileParsingDiagnostics:()=>withProgramOrEmptyArray(e=>e.getConfigFileParsingDiagnostics()),getSyntacticDiagnostics:(e,t)=>withProgramOrEmptyArray(n=>n.getSyntacticDiagnostics(e,t)),getAllDependencies:e=>withProgramOrEmptyArray(t=>t.getAllDependencies(e)),getSemanticDiagnostics:(e,t)=>withProgramOrEmptyArray(n=>n.getSemanticDiagnostics(e,t)),getSemanticDiagnosticsOfNextAffectedFile:(e,t)=>withProgramOrUndefined(n=>n.getSemanticDiagnosticsOfNextAffectedFile&&n.getSemanticDiagnosticsOfNextAffectedFile(e,t)),emit:(n,r,i,o,a)=>n||o?withProgramOrUndefined(s=>{var c,l;return s.emit(n,r,i,o,a||(null==(l=(c=e.host).getCustomTransformers)?void 0:l.call(c,t)))}):(executeSteps(0,i),emit(r,i,a)),done:function done(t,r,i){return executeSteps(3,t,r,i),mark("SolutionBuilder::Projects built"),doneInvalidatedProject(e,n)}};function withProgramOrUndefined(e){return executeSteps(0),s&&e(s)}function withProgramOrEmptyArray(e){return withProgramOrUndefined(e)||l}function createProgram2(){var r,o,a;if(h.assert(void 0===s),e.options.dry)return reportStatus(e,Ot.A_non_dry_build_would_build_project_0,t),c=1,void(d=2);if(e.options.verbose&&reportStatus(e,Ot.Building_project_0,t),0===i.fileNames.length)return reportAndStoreErrors(e,n,getConfigFileParsingDiagnostics(i)),c=0,void(d=2);const{host:l,compilerHost:p}=e;if(e.projectCompilerOptions=i.options,null==(r=e.moduleResolutionCache)||r.update(i.options),null==(o=e.typeReferenceDirectiveResolutionCache)||o.update(i.options),s=l.createProgram(i.fileNames,i.options,p,function getOldProgram({options:e,builderPrograms:t,compilerHost:n},r,i){if(e.force)return;const o=t.get(r);return o||readBuilderProgram(i.options,n)}(e,n,i),getConfigFileParsingDiagnostics(i),i.projectReferences),e.watch){const t=null==(a=e.moduleResolutionCache)?void 0:a.getPackageJsonInfoCache().getInternalMap();e.lastCachedPackageJsonLookups.set(n,t&&new Set(arrayFrom(t.values(),t=>e.host.realpath&&(isPackageJsonInfo(t)||t.directoryExists)?e.host.realpath(combinePaths(t.packageDirectory,"package.json")):combinePaths(t.packageDirectory,"package.json")))),e.builderPrograms.set(n,s)}d++}function emit(r,a,l){var p,u,m;h.assertIsDefined(s),h.assert(1===d);const{host:_,compilerHost:f}=e,g=new Map,y=s.getCompilerOptions(),T=tr(y);let S,x;const{emitResult:v,diagnostics:b}=emitFilesAndReportErrors(s,e=>_.reportDiagnostic(e),e.write,void 0,(t,i,o,a,c,l)=>{var d;const p=toPath2(e,t);if(g.set(toPath2(e,t),t),null==l?void 0:l.buildInfo){x||(x=getCurrentTime(e.host));const r=null==(d=s.hasChangedEmitSignature)?void 0:d.call(s),i=getBuildInfoCacheEntry(e,t,n);i?(i.buildInfo=l.buildInfo,i.modifiedTime=x,r&&(i.latestChangedDtsTime=x)):e.buildInfoCache.set(n,{path:toPath2(e,t),buildInfo:l.buildInfo,modifiedTime:x,latestChangedDtsTime:r?x:void 0})}const u=(null==l?void 0:l.differsOnlyInMap)?getModifiedTime(e.host,t):void 0;(r||f.writeFile)(t,i,o,a,c,l),(null==l?void 0:l.differsOnlyInMap)?e.host.setModifiedTime(t,u):!T&&e.watch&&(S||(S=getOutputTimeStampMap(e,n))).set(p,x||(x=getCurrentTime(e.host)))},a,void 0,l||(null==(u=(p=e.host).getCustomTransformers)?void 0:u.call(p,t)));return y.noEmitOnError&&b.length||!g.size&&8===o.type||updateOutputTimestampsWorker(e,i,n,Ot.Updating_unchanged_output_timestamps_of_project_0,g),e.projectErrorsReported.set(n,!0),c=(null==(m=s.hasChangedEmitSignature)?void 0:m.call(s))?0:2,b.length?(e.diagnostics.set(n,b),e.projectStatus.set(n,{type:0,reason:"it had errors"}),c|=4):(e.diagnostics.delete(n),e.projectStatus.set(n,{type:1,oldestOutputFileName:firstOrUndefinedIterator(g.values())??getFirstProjectOutput(i,!_.useCaseSensitiveFileNames())})),function afterProgramDone(e,t){t&&(e.host.afterProgramEmitAndDiagnostics&&e.host.afterProgramEmitAndDiagnostics(t),t.releaseProgram());e.projectCompilerOptions=e.baseCompilerOptions}(e,s),d=2,v}function executeSteps(o,s,l,p){for(;d<=o&&d<3;){const o=d;switch(d){case 0:createProgram2();break;case 1:emit(l,s,p);break;case 2:queueReferencingProjects(e,t,n,r,i,a,h.checkDefined(c)),d++;break;default:assertType()}h.assert(d>o)}}}function getNextInvalidatedProjectCreateInfo(e,t,n){if(!e.projectPendingBuild.size)return;if(isCircularBuildOrder(t))return;const{options:r,projectPendingBuild:i}=e;for(let o=0;or.options,getCurrentDirectory:()=>e.compilerHost.getCurrentDirectory(),updateOutputFileStatmps:()=>{updateOutputTimestamps(e,r,n),o=!1},done:()=>(o&&updateOutputTimestamps(e,r,n),mark("SolutionBuilder::Timestamps only updates"),doneInvalidatedProject(e,n))}}(e,t.project,t.projectPath,t.config,n)}function getNextInvalidatedProject(e,t,n){const r=getNextInvalidatedProjectCreateInfo(e,t,n);return r?createInvalidatedProjectWithInfo(e,r,t):r}function isFileWatcherWithModifiedTime(e){return!!e.watcher}function getModifiedTime2(e,t){const n=toPath2(e,t),r=e.filesWatched.get(n);if(e.watch&&r){if(!isFileWatcherWithModifiedTime(r))return r;if(r.modifiedTime)return r.modifiedTime}const i=getModifiedTime(e.host,t);return e.watch&&(r?r.modifiedTime=i:e.filesWatched.set(n,i)),i}function watchFile(e,t,n,r,i,o,a){const s=toPath2(e,t),c=e.filesWatched.get(s);if(c&&isFileWatcherWithModifiedTime(c))c.callbacks.push(n);else{const l=e.watchFile(t,(t,n,r)=>{const i=h.checkDefined(e.filesWatched.get(s));h.assert(isFileWatcherWithModifiedTime(i)),i.modifiedTime=r,i.callbacks.forEach(e=>e(t,n,r))},r,i,o,a);e.filesWatched.set(s,{callbacks:[n],watcher:l,modifiedTime:c})}return{close:()=>{const t=h.checkDefined(e.filesWatched.get(s));h.assert(isFileWatcherWithModifiedTime(t)),1===t.callbacks.length?(e.filesWatched.delete(s),closeFileWatcherOf(t)):unorderedRemoveItem(t.callbacks,n)}}}function getOutputTimeStampMap(e,t){if(!e.watch)return;let n=e.outputTimeStamps.get(t);return n||e.outputTimeStamps.set(t,n=new Map),n}function getBuildInfoCacheEntry(e,t,n){const r=toPath2(e,t),i=e.buildInfoCache.get(n);return(null==i?void 0:i.path)===r?i:void 0}function getBuildInfo3(e,t,n,r){const i=toPath2(e,t),o=e.buildInfoCache.get(n);if(void 0!==o&&o.path===i)return o.buildInfo||void 0;const a=e.readFileWithCache(t),s=a?getBuildInfo(t,a):void 0;return e.buildInfoCache.set(n,{path:i,buildInfo:s||!1,modifiedTime:r||St}),s}function checkConfigFileUpToDateStatus(e,t,n,r){if(nb&&(S=n,b=t),E.add(r)}if(T?(N||(N=getBuildInfoFileVersionMap(T,m,u)),k=forEachEntry(N.roots,(e,t)=>E.has(t)?void 0:t)):k=forEach(getNonIncrementalBuildInfoRoots(y,m,u),e=>E.has(e)?void 0:e),k)return{type:10,buildInfoFile:m,inputFile:k};if(!_){const r=getAllProjectOutputs(t,!u.useCaseSensitiveFileNames()),i=getOutputTimeStampMap(e,n);for(const t of r){if(t===m)continue;const n=toPath2(e,t);let r=null==i?void 0:i.get(n);if(r||(r=getModifiedTime(e.host,t),null==i||i.set(n,r)),r===St)return{type:3,missingOutputFileName:t};if(rcheckConfigFileUpToDateStatus(e,t,x,v));if(D)return D;const I=e.lastCachedPackageJsonLookups.get(n),A=I&&forEachKey(I,t=>checkConfigFileUpToDateStatus(e,t,x,v));return A||{type:F?2:C?15:1,newestInputFileTime:b,newestInputFileName:S,oldestOutputFileName:v}}(e,t,n);return mark("SolutionBuilder::afterUpToDateCheck"),measure("SolutionBuilder::Up-to-date check","SolutionBuilder::beforeUpToDateCheck","SolutionBuilder::afterUpToDateCheck"),e.projectStatus.set(n,i),i}function updateOutputTimestampsWorker(e,t,n,r,i){if(t.options.noEmit)return;let o;const a=getTsBuildInfoEmitOutputFilePath(t.options),s=tr(t.options);if(a&&s)return(null==i?void 0:i.has(toPath2(e,a)))||(e.options.verbose&&reportStatus(e,r,t.options.configFilePath),e.host.setModifiedTime(a,o=getCurrentTime(e.host)),getBuildInfoCacheEntry(e,a,n).modifiedTime=o),void e.outputTimeStamps.delete(n);const{host:c}=e,l=getAllProjectOutputs(t,!c.useCaseSensitiveFileNames()),d=getOutputTimeStampMap(e,n),p=d?new Set:void 0;if(!i||l.length!==i.size){let s=!!e.options.verbose;for(const u of l){const l=toPath2(e,u);(null==i?void 0:i.has(l))||(s&&(s=!1,reportStatus(e,r,t.options.configFilePath)),c.setModifiedTime(u,o||(o=getCurrentTime(e.host))),u===a?getBuildInfoCacheEntry(e,a,n).modifiedTime=o:d&&(d.set(l,o),p.add(l)))}}null==d||d.forEach((e,t)=>{(null==i?void 0:i.has(t))||p.has(t)||d.delete(t)})}function getLatestChangedDtsTime(e,t,n){if(!t.composite)return;const r=h.checkDefined(e.buildInfoCache.get(n));if(void 0!==r.latestChangedDtsTime)return r.latestChangedDtsTime||void 0;const i=r.buildInfo&&isIncrementalBuildInfo(r.buildInfo)&&r.buildInfo.latestChangedDtsFile?e.host.getModifiedTime(getNormalizedAbsolutePath(r.buildInfo.latestChangedDtsFile,getDirectoryPath(r.path))):void 0;return r.latestChangedDtsTime=i||!1,i}function updateOutputTimestamps(e,t,n){if(e.options.dry)return reportStatus(e,Ot.A_non_dry_build_would_update_timestamps_for_output_of_project_0,t.options.configFilePath);updateOutputTimestampsWorker(e,t,n,Ot.Updating_output_timestamps_of_project_0),e.projectStatus.set(n,{type:1,oldestOutputFileName:getFirstProjectOutput(t,!e.host.useCaseSensitiveFileNames())})}function queueReferencingProjects(e,t,n,r,i,o,a){if(!(e.options.stopBuildOnErrors&&4&a)&&i.options.composite)for(let i=r+1;ie.diagnostics.has(toResolvedConfigFilePath(e,t)))?c?2:1:0}(e,t,n,r,i,o);return mark("SolutionBuilder::afterBuild"),measure("SolutionBuilder::Build","SolutionBuilder::beforeBuild","SolutionBuilder::afterBuild"),a}function clean(e,t,n){mark("SolutionBuilder::beforeClean");const r=function cleanWorker(e,t,n){const r=getBuildOrderFor(e,t,n);if(!r)return 3;if(isCircularBuildOrder(r))return reportErrors(e,r.circularDiagnostics),4;const{options:i,host:o}=e,a=i.dry?[]:void 0;for(const t of r){const n=toResolvedConfigFilePath(e,t),r=parseConfigFile(e,t,n);if(void 0===r){reportParseConfigFileDiagnostic(e,n);continue}const i=getAllProjectOutputs(r,!o.useCaseSensitiveFileNames());if(!i.length)continue;const s=new Set(r.fileNames.map(t=>toPath2(e,t)));for(const t of i)s.has(toPath2(e,t))||o.fileExists(t)&&(a?a.push(t):(o.deleteFile(t),invalidateProject(e,n,0)))}a&&reportStatus(e,Ot.A_non_dry_build_would_delete_the_following_files_Colon_0,a.map(e=>`\r\n * ${e}`).join(""));return 0}(e,t,n);return mark("SolutionBuilder::afterClean"),measure("SolutionBuilder::Clean","SolutionBuilder::beforeClean","SolutionBuilder::afterClean"),r}function invalidateProject(e,t,n){e.host.getParsedCommandLine&&1===n&&(n=2),2===n&&(e.configFileCache.delete(t),e.buildOrder=void 0),e.needsSummary=!0,clearProjectStatus(e,t),addProjToQueue(e,t,n),enableCache(e)}function invalidateProjectAndScheduleBuilds(e,t,n){e.reportFileChangeDetected=!0,invalidateProject(e,t,n),scheduleBuildInvalidatedProject(e,250,!0)}function scheduleBuildInvalidatedProject(e,t,n){const{hostWithWatch:r}=e;r.setTimeout&&r.clearTimeout&&(e.timerToBuildInvalidatedProject&&r.clearTimeout(e.timerToBuildInvalidatedProject),e.timerToBuildInvalidatedProject=r.setTimeout(buildNextInvalidatedProject,t,"timerToBuildInvalidatedProject",e,n))}function buildNextInvalidatedProject(e,t,n){mark("SolutionBuilder::beforeBuild");const r=function buildNextInvalidatedProjectWorker(e,t){e.timerToBuildInvalidatedProject=void 0,e.reportFileChangeDetected&&(e.reportFileChangeDetected=!1,e.projectErrorsReported.clear(),reportWatchStatus(e,Ot.File_change_detected_Starting_incremental_compilation));let n=0;const r=getBuildOrder(e),i=getNextInvalidatedProject(e,r,!1);if(i)for(i.done(),n++;e.projectPendingBuild.size;){if(e.timerToBuildInvalidatedProject)return;const i=getNextInvalidatedProjectCreateInfo(e,r,!1);if(!i)break;if(1!==i.kind&&(t||5===n))return void scheduleBuildInvalidatedProject(e,100,!1);createInvalidatedProjectWithInfo(e,i,r).done(),1!==i.kind&&n++}return disableCache(e),r}(t,n);mark("SolutionBuilder::afterBuild"),measure("SolutionBuilder::Build","SolutionBuilder::beforeBuild","SolutionBuilder::afterBuild"),r&&reportErrorSummary(t,r)}function watchConfigFile(e,t,n,r){e.watch&&!e.allWatchedConfigFiles.has(n)&&e.allWatchedConfigFiles.set(n,watchFile(e,t,()=>invalidateProjectAndScheduleBuilds(e,n,2),2e3,null==r?void 0:r.watchOptions,Ya.ConfigFile,t))}function watchExtendedConfigFiles(e,t,n){updateSharedExtendedConfigFileWatcher(t,null==n?void 0:n.options,e.allWatchedExtendedConfigFiles,(t,r)=>watchFile(e,t,()=>{var t;return null==(t=e.allWatchedExtendedConfigFiles.get(r))?void 0:t.projects.forEach(t=>invalidateProjectAndScheduleBuilds(e,t,2))},2e3,null==n?void 0:n.watchOptions,Ya.ExtendedConfigFile),t=>toPath2(e,t))}function watchWildCardDirectories(e,t,n,r){e.watch&&updateWatchingWildcardDirectories(getOrCreateValueMapFromConfigFileMap(e.allWatchedWildcardDirectories,n),r.wildcardDirectories,(i,o)=>e.watchDirectory(i,o=>{var a;isIgnoredFileFromWildCardWatching({watchedDirPath:toPath2(e,i),fileOrDirectory:o,fileOrDirectoryPath:toPath2(e,o),configFileName:t,currentDirectory:e.compilerHost.getCurrentDirectory(),options:r.options,program:e.builderPrograms.get(n)||(null==(a=getCachedParsedConfigFile(e,n))?void 0:a.fileNames),useCaseSensitiveFileNames:e.parseConfigFileHost.useCaseSensitiveFileNames,writeLog:t=>e.writeLog(t),toPath:t=>toPath2(e,t)})||invalidateProjectAndScheduleBuilds(e,n,1)},o,null==r?void 0:r.watchOptions,Ya.WildcardDirectory,t))}function watchInputFiles(e,t,n,r){e.watch&&mutateMap(getOrCreateValueMapFromConfigFileMap(e.allWatchedInputFiles,n),new Set(r.fileNames),{createNewValue:i=>watchFile(e,i,()=>invalidateProjectAndScheduleBuilds(e,n,0),250,null==r?void 0:r.watchOptions,Ya.SourceFile,t),onDeleteValue:closeFileWatcher})}function watchPackageJsonFiles(e,t,n,r){e.watch&&e.lastCachedPackageJsonLookups&&mutateMap(getOrCreateValueMapFromConfigFileMap(e.allWatchedPackageJsonFiles,n),e.lastCachedPackageJsonLookups.get(n),{createNewValue:i=>watchFile(e,i,()=>invalidateProjectAndScheduleBuilds(e,n,0),2e3,null==r?void 0:r.watchOptions,Ya.PackageJson,t),onDeleteValue:closeFileWatcher})}function createSolutionBuilderWorker(e,t,n,r,i){const o=createSolutionBuilderState(e,t,n,r,i);return{build:(e,t,n,r)=>build(o,e,t,n,r),clean:e=>clean(o,e),buildReferences:(e,t,n,r)=>build(o,e,t,n,r,!0),cleanReferences:e=>clean(o,e,!0),getNextInvalidatedProject:e=>(setupInitialBuild(o,e),getNextInvalidatedProject(o,getBuildOrder(o),!1)),getBuildOrder:()=>getBuildOrder(o),getUpToDateStatusOfProject:e=>{const t=resolveProjectName(o,e),n=toResolvedConfigFilePath(o,t);return getUpToDateStatus(o,parseConfigFile(o,t,n),n)},invalidateProject:(e,t)=>invalidateProject(o,e,t||0),close:()=>function stopWatching(e){clearMap(e.allWatchedConfigFiles,closeFileWatcher),clearMap(e.allWatchedExtendedConfigFiles,closeFileWatcherOf),clearMap(e.allWatchedWildcardDirectories,e=>clearMap(e,closeFileWatcherOf)),clearMap(e.allWatchedInputFiles,e=>clearMap(e,closeFileWatcher)),clearMap(e.allWatchedPackageJsonFiles,e=>clearMap(e,closeFileWatcher))}(o)}}function relName(e,t){return convertToRelativePath(t,e.compilerHost.getCurrentDirectory(),e.compilerHost.getCanonicalFileName)}function reportStatus(e,t,...n){e.host.reportSolutionBuilderStatus(createCompilerDiagnostic(t,...n))}function reportWatchStatus(e,t,...n){var r,i;null==(i=(r=e.hostWithWatch).onWatchStatusChange)||i.call(r,createCompilerDiagnostic(t,...n),e.host.getNewLine(),e.baseCompilerOptions)}function reportErrors({host:e},t){t.forEach(t=>e.reportDiagnostic(t))}function reportAndStoreErrors(e,t,n){reportErrors(e,n),e.projectErrorsReported.set(t,!0),n.length&&e.diagnostics.set(t,n)}function reportParseConfigFileDiagnostic(e,t){reportAndStoreErrors(e,t,[e.configFileCache.get(t)])}function reportErrorSummary(e,t){if(!e.needsSummary)return;e.needsSummary=!1;const n=e.watch||!!e.host.reportErrorSummary,{diagnostics:r}=e;let i=0,o=[];isCircularBuildOrder(t)?(reportBuildQueue(e,t.buildOrder),reportErrors(e,t.circularDiagnostics),n&&(i+=getErrorCountForSummary(t.circularDiagnostics)),n&&(o=[...o,...getFilesInErrorForSummary(t.circularDiagnostics)])):(t.forEach(t=>{const n=toResolvedConfigFilePath(e,t);e.projectErrorsReported.has(n)||reportErrors(e,r.get(n)||l)}),n&&r.forEach(e=>i+=getErrorCountForSummary(e)),n&&r.forEach(e=>[...o,...getFilesInErrorForSummary(e)])),e.watch?reportWatchStatus(e,getWatchErrorSummaryDiagnosticMessage(i),i):e.host.reportErrorSummary&&e.host.reportErrorSummary(i,o)}function reportBuildQueue(e,t){e.options.verbose&&reportStatus(e,Ot.Projects_in_this_build_Colon_0,t.map(t=>"\r\n * "+relName(e,t)).join(""))}function verboseReportProjectStatus(e,t,n){e.options.verbose&&function reportUpToDateStatus(e,t,n){switch(n.type){case 5:return reportStatus(e,Ot.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,relName(e,t),relName(e,n.outOfDateOutputFileName),relName(e,n.newerInputFileName));case 6:return reportStatus(e,Ot.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,relName(e,t),relName(e,n.outOfDateOutputFileName),relName(e,n.newerProjectName));case 3:return reportStatus(e,Ot.Project_0_is_out_of_date_because_output_file_1_does_not_exist,relName(e,t),relName(e,n.missingOutputFileName));case 4:return reportStatus(e,Ot.Project_0_is_out_of_date_because_there_was_error_reading_file_1,relName(e,t),relName(e,n.fileName));case 7:return reportStatus(e,Ot.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted,relName(e,t),relName(e,n.buildInfoFile));case 8:return reportStatus(e,Ot.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors,relName(e,t),relName(e,n.buildInfoFile));case 9:return reportStatus(e,Ot.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions,relName(e,t),relName(e,n.buildInfoFile));case 10:return reportStatus(e,Ot.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more,relName(e,t),relName(e,n.buildInfoFile),relName(e,n.inputFile));case 1:if(void 0!==n.newestInputFileTime)return reportStatus(e,Ot.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2,relName(e,t),relName(e,n.newestInputFileName||""),relName(e,n.oldestOutputFileName||""));break;case 2:return reportStatus(e,Ot.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,relName(e,t));case 15:return reportStatus(e,Ot.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,relName(e,t));case 11:return reportStatus(e,Ot.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,relName(e,t),relName(e,n.upstreamProjectName));case 12:return reportStatus(e,n.upstreamProjectBlocked?Ot.Project_0_can_t_be_built_because_its_dependency_1_was_not_built:Ot.Project_0_can_t_be_built_because_its_dependency_1_has_errors,relName(e,t),relName(e,n.upstreamProjectName));case 0:return reportStatus(e,Ot.Project_0_is_out_of_date_because_1,relName(e,t),n.reason);case 14:return reportStatus(e,Ot.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,relName(e,t),n.version,s);case 17:return reportStatus(e,Ot.Project_0_is_being_forcibly_rebuilt,relName(e,t))}}(e,t,n)}var ns=(e=>(e[e.time=0]="time",e[e.count=1]="count",e[e.memory=2]="memory",e))(ns||{});function countLines(e){const t=function getCountsMap(){const e=new Map;return e.set("Library",0),e.set("Definitions",0),e.set("TypeScript",0),e.set("JavaScript",0),e.set("JSON",0),e.set("Other",0),e}();return forEach(e.getSourceFiles(),n=>{const r=function getCountKey(e,t){if(e.isSourceFileDefaultLibrary(t))return"Library";if(t.isDeclarationFile)return"Definitions";const n=t.path;return fileExtensionIsOneOf(n,_r)?"TypeScript":fileExtensionIsOneOf(n,yr)?"JavaScript":fileExtensionIs(n,".json")?"JSON":"Other"}(e,n),i=getLineStarts(n).length;t.set(r,t.get(r)+i)}),t}function updateReportDiagnostic(e,t,n){return shouldBePretty(e,n)?createDiagnosticReporter(e,!0):t}function defaultIsPretty(e){return!!e.writeOutputIsTTY&&e.writeOutputIsTTY()&&!e.getEnvironmentVariable("NO_COLOR")}function shouldBePretty(e,t){return t&&void 0!==t.pretty?t.pretty:defaultIsPretty(e)}function getOptionsForHelp(e){return e.options.all?toSorted(Qi.concat(co),(e,t)=>compareStringsCaseInsensitive(e.name,t.name)):filter(Qi.concat(co),e=>!!e.showInSimplifiedHelpView)}function printVersion(e){e.write(getDiagnosticText(Ot.Version_0,s)+e.newLine)}function createColors(e){if(!defaultIsPretty(e))return{bold:e=>e,blue:e=>e,blueBackground:e=>e,brightWhite:e=>e};const t=e.getEnvironmentVariable("OS")&&e.getEnvironmentVariable("OS").toLowerCase().includes("windows"),n=e.getEnvironmentVariable("WT_SESSION"),r=e.getEnvironmentVariable("TERM_PROGRAM")&&"vscode"===e.getEnvironmentVariable("TERM_PROGRAM");const i="truecolor"===e.getEnvironmentVariable("COLORTERM")||"xterm-256color"===e.getEnvironmentVariable("TERM");function brightWhite(e){return`${e}`}return{bold:function bold(e){return`${e}`},blue:function blue(e){return!t||n||r?`${e}`:brightWhite(e)},brightWhite,blueBackground:function blueBackground(e){return i?`${e}`:`${e}`}}}function getDisplayNameTextOfOption(e){return`--${e.name}${e.shortName?`, -${e.shortName}`:""}`}function generateOptionOutput(e,t,n,r){var i;const o=[],a=createColors(e),s=getDisplayNameTextOfOption(t),c=function getValueCandidate(e){if("object"===e.type)return;return{valueType:function getValueType(e){switch(h.assert("listOrElement"!==e.type),e.type){case"string":case"number":case"boolean":return getDiagnosticText(Ot.type_Colon);case"list":return getDiagnosticText(Ot.one_or_more_Colon);default:return getDiagnosticText(Ot.one_of_Colon)}}(e),possibleValues:function getPossibleValues(e){let t;switch(e.type){case"string":case"number":case"boolean":t=e.type;break;case"list":case"listOrElement":t=getPossibleValues(e.element);break;case"object":t="";break;default:const n={};return e.type.forEach((t,r)=>{var i;(null==(i=e.deprecatedKeys)?void 0:i.has(r))||(n[t]||(n[t]=[])).push(r)}),Object.entries(n).map(([,e])=>e.join("/")).join(", ")}return t}(e)}}(t),l="object"==typeof t.defaultValueDescription?getDiagnosticText(t.defaultValueDescription):function formatDefaultValue(e,t){return void 0!==e&&"object"==typeof t?arrayFrom(t.entries()).filter(([,t])=>t===e).map(([e])=>e).join("/"):String(e)}(t.defaultValueDescription,"list"===t.type||"listOrElement"===t.type?t.element.type:t.type),d=(null==(i=e.getWidthOfTerminal)?void 0:i.call(e))??0;if(d>=80){let i="";t.description&&(i=getDiagnosticText(t.description)),o.push(...getPrettyOutput(s,i,n,r,d,!0),e.newLine),showAdditionalInfoOutput(c,t)&&(c&&o.push(...getPrettyOutput(c.valueType,c.possibleValues,n,r,d,!1),e.newLine),l&&o.push(...getPrettyOutput(getDiagnosticText(Ot.default_Colon),l,n,r,d,!1),e.newLine)),o.push(e.newLine)}else{if(o.push(a.blue(s),e.newLine),t.description){const e=getDiagnosticText(t.description);o.push(e)}if(o.push(e.newLine),showAdditionalInfoOutput(c,t)){if(c&&o.push(`${c.valueType} ${c.possibleValues}`),l){c&&o.push(e.newLine);const t=getDiagnosticText(Ot.default_Colon);o.push(`${t} ${l}`)}o.push(e.newLine)}o.push(e.newLine)}return o;function showAdditionalInfoOutput(e,t){const n=t.defaultValueDescription;return t.category!==Ot.Command_line_Options&&(!contains(["string"],null==e?void 0:e.possibleValues)||!contains([void 0,"false","n/a"],n))}function getPrettyOutput(e,t,n,r,i,o){const s=[];let c=!0,l=t;const d=i-r;for(;l.length>0;){let t="";c?(t=e.padStart(n),t=t.padEnd(r),t=o?a.blue(t):t):t="".padStart(r);const i=l.substr(0,d);l=l.slice(d),s.push(`${t}${i}`),c=!1}return s}}function generateGroupOptionOutput(e,t){let n=0;for(const e of t){const t=getDisplayNameTextOfOption(e).length;n=n>t?n:t}const r=n+2,i=r+2;let o=[];for(const n of t){const t=generateOptionOutput(e,n,r,i);o=[...o,...t]}return o[o.length-2]!==e.newLine&&o.push(e.newLine),o}function generateSectionOptionsOutput(e,t,n,r,i,o){let a=[];if(a.push(createColors(e).bold(t)+e.newLine+e.newLine),i&&a.push(i+e.newLine+e.newLine),!r)return a=[...a,...generateGroupOptionOutput(e,n)],o&&a.push(o+e.newLine+e.newLine),a;const s=new Map;for(const e of n){if(!e.category)continue;const t=getDiagnosticText(e.category),n=s.get(t)??[];n.push(e),s.set(t,n)}return s.forEach((t,n)=>{a.push(`### ${n}${e.newLine}${e.newLine}`),a=[...a,...generateGroupOptionOutput(e,t)]}),o&&a.push(o+e.newLine+e.newLine),a}function printBuildHelp(e,t){let n=[...getHeader(e,`${getDiagnosticText(Ot.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Ot.Version_0,s)}`)];n=[...n,...generateSectionOptionsOutput(e,getDiagnosticText(Ot.BUILD_OPTIONS),filter(t,e=>e!==co),!1,formatMessage(Ot.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0,"https://aka.ms/tsc-composite-builds"))];for(const t of n)e.write(t)}function getHeader(e,t){var n;const r=createColors(e),i=[],o=(null==(n=e.getWidthOfTerminal)?void 0:n.call(e))??0,a=r.blueBackground("".padStart(5)),s=r.blueBackground(r.brightWhite("TS ".padStart(5)));if(o>=t.length+5){const n=(o>120?120:o)-5;i.push(t.padEnd(n)+a+e.newLine),i.push("".padStart(n)+s+e.newLine)}else i.push(t+e.newLine),i.push(e.newLine);return i}function printHelp(e,t){t.options.all?function printAllHelp(e,t,n,r){let i=[...getHeader(e,`${getDiagnosticText(Ot.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Ot.Version_0,s)}`)];i=[...i,...generateSectionOptionsOutput(e,getDiagnosticText(Ot.ALL_COMPILER_OPTIONS),t,!0,void 0,formatMessage(Ot.You_can_learn_about_all_of_the_compiler_options_at_0,"https://aka.ms/tsc"))],i=[...i,...generateSectionOptionsOutput(e,getDiagnosticText(Ot.WATCH_OPTIONS),r,!1,getDiagnosticText(Ot.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon))],i=[...i,...generateSectionOptionsOutput(e,getDiagnosticText(Ot.BUILD_OPTIONS),filter(n,e=>e!==co),!1,formatMessage(Ot.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0,"https://aka.ms/tsc-composite-builds"))];for(const t of i)e.write(t)}(e,getOptionsForHelp(t),lo,qi):function printEasyHelp(e,t){const n=createColors(e);let r=[...getHeader(e,`${getDiagnosticText(Ot.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Ot.Version_0,s)}`)];r.push(n.bold(getDiagnosticText(Ot.COMMON_COMMANDS))+e.newLine+e.newLine),example("tsc",Ot.Compiles_the_current_project_tsconfig_json_in_the_working_directory),example("tsc app.ts util.ts",Ot.Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options),example("tsc -b",Ot.Build_a_composite_project_in_the_working_directory),example("tsc --init",Ot.Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory),example("tsc -p ./path/to/tsconfig.json",Ot.Compiles_the_TypeScript_project_located_at_the_specified_path),example("tsc --help --all",Ot.An_expanded_version_of_this_information_showing_all_possible_compiler_options),example(["tsc --noEmit","tsc --target esnext"],Ot.Compiles_the_current_project_with_additional_settings);const i=t.filter(e=>e.isCommandLineOnly||e.category===Ot.Command_line_Options),o=t.filter(e=>!contains(i,e));r=[...r,...generateSectionOptionsOutput(e,getDiagnosticText(Ot.COMMAND_LINE_FLAGS),i,!1,void 0,void 0),...generateSectionOptionsOutput(e,getDiagnosticText(Ot.COMMON_COMPILER_OPTIONS),o,!1,void 0,formatMessage(Ot.You_can_learn_about_all_of_the_compiler_options_at_0,"https://aka.ms/tsc"))];for(const t of r)e.write(t);function example(t,i){const o="string"==typeof t?[t]:t;for(const t of o)r.push(" "+n.blue(t)+e.newLine);r.push(" "+getDiagnosticText(i)+e.newLine+e.newLine)}}(e,getOptionsForHelp(t))}function executeCommandLineWorker(e,t,n){let r,i=createDiagnosticReporter(e);if(n.options.locale&&validateLocaleAndSetLanguage(n.options.locale,e,n.errors),n.errors.length>0)return n.errors.forEach(i),e.exit(1);if(n.options.init)return function writeConfigFile(e,t,n){const r=e.getCurrentDirectory(),i=normalizePath(combinePaths(r,"tsconfig.json"));if(e.fileExists(i))t(createCompilerDiagnostic(Ot.A_tsconfig_json_file_is_already_defined_at_Colon_0,i));else{e.writeFile(i,generateTSConfig(n,e.newLine));const t=[e.newLine,...getHeader(e,"Created a new tsconfig.json")];t.push("You can learn more at https://aka.ms/tsconfig"+e.newLine);for(const n of t)e.write(n)}return}(e,i,n.options),e.exit(0);if(n.options.version)return printVersion(e),e.exit(0);if(n.options.help||n.options.all)return printHelp(e,n),e.exit(0);if(n.options.watch&&n.options.listFilesOnly)return i(createCompilerDiagnostic(Ot.Options_0_and_1_cannot_be_combined,"watch","listFilesOnly")),e.exit(1);if(n.options.project){if(0!==n.fileNames.length)return i(createCompilerDiagnostic(Ot.Option_project_cannot_be_mixed_with_source_files_on_a_command_line)),e.exit(1);const t=normalizePath(n.options.project);if(!t||e.directoryExists(t)){if(r=combinePaths(t,"tsconfig.json"),!e.fileExists(r))return i(createCompilerDiagnostic(Ot.Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0,n.options.project)),e.exit(1)}else if(r=t,!e.fileExists(r))return i(createCompilerDiagnostic(Ot.The_specified_path_does_not_exist_Colon_0,n.options.project)),e.exit(1)}else if(0===n.fileNames.length){r=findConfigFile(normalizePath(e.getCurrentDirectory()),t=>e.fileExists(t))}if(0===n.fileNames.length&&!r)return n.options.showConfig?i(createCompilerDiagnostic(Ot.Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0,normalizePath(e.getCurrentDirectory()))):(printVersion(e),printHelp(e,n)),e.exit(1);const o=e.getCurrentDirectory(),a=convertToOptionsWithAbsolutePaths(n.options,e=>getNormalizedAbsolutePath(e,o));if(r){const o=new Map,s=parseConfigFileWithSystem(r,a,o,n.watchOptions,e,i);if(a.showConfig)return 0!==s.errors.length?(i=updateReportDiagnostic(e,i,s.options),s.errors.forEach(i),e.exit(1)):(e.write(JSON.stringify(convertToTSConfig(s,r,e),null,4)+e.newLine),e.exit(0));if(i=updateReportDiagnostic(e,i,s.options),isWatchSet(s.options)){if(reportWatchModeWithoutSysSupport(e,i))return;return function createWatchOfConfigFile(e,t,n,r,i,o,a){const s=createWatchCompilerHostOfConfigFile({configFileName:r.options.configFilePath,optionsToExtend:i,watchOptionsToExtend:o,system:e,reportDiagnostic:n,reportWatchStatus:createWatchStatusReporter2(e,r.options)});return updateWatchCompilationHost(e,t,s),s.configFileParsingResult=r,s.extendedConfigCache=a,createWatchProgram(s)}(e,t,i,s,a,n.watchOptions,o)}tr(s.options)?performIncrementalCompilation2(e,t,i,s):performCompilation(e,t,i,s)}else{if(a.showConfig)return e.write(JSON.stringify(convertToTSConfig(n,combinePaths(o,"tsconfig.json"),e),null,4)+e.newLine),e.exit(0);if(i=updateReportDiagnostic(e,i,a),isWatchSet(a)){if(reportWatchModeWithoutSysSupport(e,i))return;return function createWatchOfFilesAndCompilerOptions(e,t,n,r,i,o){const a=createWatchCompilerHostOfFilesAndCompilerOptions({rootFiles:r,options:i,watchOptions:o,system:e,reportDiagnostic:n,reportWatchStatus:createWatchStatusReporter2(e,i)});return updateWatchCompilationHost(e,t,a),createWatchProgram(a)}(e,t,i,n.fileNames,a,n.watchOptions)}tr(a)?performIncrementalCompilation2(e,t,i,{...n,options:a}):performCompilation(e,t,i,{...n,options:a})}}function isBuildCommand(e){if(e.length>0&&45===e[0].charCodeAt(0)){const t=e[0].slice(45===e[0].charCodeAt(1)?2:1).toLowerCase();return t===co.name||t===co.shortName}return!1}function executeCommandLine(e,t,n){if(isBuildCommand(n)){const{buildOptions:r,watchOptions:i,projects:o,errors:a}=parseBuildCommand(n);if(!r.generateCpuProfile||!e.enableCPUProfiler)return performBuild(e,t,r,i,o,a);e.enableCPUProfiler(r.generateCpuProfile,()=>performBuild(e,t,r,i,o,a))}const r=parseCommandLine(n,t=>e.readFile(t));if(!r.options.generateCpuProfile||!e.enableCPUProfiler)return executeCommandLineWorker(e,t,r);e.enableCPUProfiler(r.options.generateCpuProfile,()=>executeCommandLineWorker(e,t,r))}function reportWatchModeWithoutSysSupport(e,t){return(!e.watchFile||!e.watchDirectory)&&(t(createCompilerDiagnostic(Ot.The_current_host_does_not_support_the_0_option,"--watch")),e.exit(1),!0)}var rs=2;function performBuild(e,t,n,r,i,o){const a=updateReportDiagnostic(e,createDiagnosticReporter(e),n);if(n.locale&&validateLocaleAndSetLanguage(n.locale,e,o),o.length>0)return o.forEach(a),e.exit(1);if(n.help)return printVersion(e),printBuildHelp(e,po),e.exit(0);if(0===i.length)return printVersion(e),printBuildHelp(e,po),e.exit(0);if(!e.getModifiedTime||!e.setModifiedTime||n.clean&&!e.deleteFile)return a(createCompilerDiagnostic(Ot.The_current_host_does_not_support_the_0_option,"--build")),e.exit(1);if(n.watch){if(reportWatchModeWithoutSysSupport(e,a))return;const o=createSolutionBuilderWithWatchHost(e,void 0,a,createBuilderStatusReporter(e,shouldBePretty(e,n)),createWatchStatusReporter2(e,n));o.jsDocParsingMode=rs;const s=enableSolutionPerformance(e,n);updateSolutionBuilderHost(e,t,o,s);const c=o.onWatchStatusChange;let l=!1;o.onWatchStatusChange=(e,t,n,r)=>{null==c||c(e,t,n,r),!l||e.code!==Ot.Found_0_errors_Watching_for_file_changes.code&&e.code!==Ot.Found_1_error_Watching_for_file_changes.code||reportSolutionBuilderTimes(d,s)};const d=createSolutionBuilderWithWatch(o,i,n,r);return d.build(),reportSolutionBuilderTimes(d,s),l=!0,d}const s=createSolutionBuilderHost(e,void 0,a,createBuilderStatusReporter(e,shouldBePretty(e,n)),createReportErrorSummary(e,n));s.jsDocParsingMode=rs;const c=enableSolutionPerformance(e,n);updateSolutionBuilderHost(e,t,s,c);const l=createSolutionBuilder(s,i,n),d=n.clean?l.clean():l.build();return reportSolutionBuilderTimes(l,c),$(),e.exit(d)}function createReportErrorSummary(e,t){return shouldBePretty(e,t)?(t,n)=>e.write(getErrorSummaryText(t,n,e.newLine,e)):void 0}function performCompilation(e,t,n,r){const{fileNames:i,options:o,projectReferences:a}=r,s=createCompilerHostWorker(o,void 0,e);s.jsDocParsingMode=rs;const c=s.getCurrentDirectory(),l=createGetCanonicalFileName(s.useCaseSensitiveFileNames());changeCompilerHostLikeToUseCache(s,e=>toPath(e,c,l)),enableStatisticsAndTracing(e,o,!1);const d=createProgram({rootNames:i,options:o,projectReferences:a,host:s,configFileParsingDiagnostics:getConfigFileParsingDiagnostics(r)}),p=emitFilesAndReportErrorsAndGetExitStatus(d,n,t=>e.write(t+e.newLine),createReportErrorSummary(e,o));return reportStatistics(e,d,void 0),t(d),e.exit(p)}function performIncrementalCompilation2(e,t,n,r){const{options:i,fileNames:o,projectReferences:a}=r;enableStatisticsAndTracing(e,i,!1);const s=createIncrementalCompilerHost(i,e);s.jsDocParsingMode=rs;const c=performIncrementalCompilation({host:s,system:e,rootNames:o,options:i,configFileParsingDiagnostics:getConfigFileParsingDiagnostics(r),projectReferences:a,reportDiagnostic:n,reportErrorSummary:createReportErrorSummary(e,i),afterProgramEmitAndDiagnostics:n=>{reportStatistics(e,n.getProgram(),void 0),t(n)}});return e.exit(c)}function updateSolutionBuilderHost(e,t,n,r){updateCreateProgram(e,n,!0),n.afterProgramEmitAndDiagnostics=n=>{reportStatistics(e,n.getProgram(),r),t(n)}}function updateCreateProgram(e,t,n){const r=t.createProgram;t.createProgram=(t,i,o,a,s,c)=>(h.assert(void 0!==t||void 0===i&&!!a),void 0!==i&&enableStatisticsAndTracing(e,i,n),r(t,i,o,a,s,c))}function updateWatchCompilationHost(e,t,n){n.jsDocParsingMode=rs,updateCreateProgram(e,n,!1);const r=n.afterProgramCreate;n.afterProgramCreate=n=>{r(n),reportStatistics(e,n.getProgram(),void 0),t(n)}}function createWatchStatusReporter2(e,t){return createWatchStatusReporter(e,shouldBePretty(e,t))}function enableSolutionPerformance(e,t){if(e===kt&&t.extendedDiagnostics)return enable(),function createSolutionPerfomrance(){let e;return{addAggregateStatistic,forEachAggregateStatistics:forEachAggreateStatistics,clear:clear2};function addAggregateStatistic(t){const n=null==e?void 0:e.get(t.name);n?2===n.type?n.value=Math.max(n.value,t.value):n.value+=t.value:(e??(e=new Map)).set(t.name,t)}function forEachAggreateStatistics(t){null==e||e.forEach(t)}function clear2(){e=void 0}}()}function reportSolutionBuilderTimes(e,t){if(!t)return;if(!isEnabled())return void kt.write(Ot.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message+"\n");const n=[];function reportSolutionBuilderCountStatistic(e){const t=getCount(e);t&&n.push({name:getNameFromSolutionBuilderMarkOrMeasure(e),value:t,type:1})}function getNameFromSolutionBuilderMarkOrMeasure(e){return e.replace("SolutionBuilder::","")}n.push({name:"Projects in scope",value:getBuildOrderFromAnyBuildOrder(e.getBuildOrder()).length,type:1}),reportSolutionBuilderCountStatistic("SolutionBuilder::Projects built"),reportSolutionBuilderCountStatistic("SolutionBuilder::Timestamps only updates"),reportSolutionBuilderCountStatistic("SolutionBuilder::Bundles updated"),t.forEachAggregateStatistics(e=>{e.name=`Aggregate ${e.name}`,n.push(e)}),forEachMeasure((e,t)=>{isSolutionMarkOrMeasure(e)&&n.push({name:`${getNameFromSolutionBuilderMarkOrMeasure(e)} time`,value:t,type:0})}),disable(),enable(),t.clear(),reportAllStatistics(kt,n)}function canReportDiagnostics(e,t){return e===kt&&(t.diagnostics||t.extendedDiagnostics)}function canTrace(e,t){return e===kt&&t.generateTrace}function enableStatisticsAndTracing(e,t,n){canReportDiagnostics(e,t)&&enable(e),canTrace(e,t)&&G(n?"build":"project",t.generateTrace,t.configFilePath)}function isSolutionMarkOrMeasure(e){return startsWith(e,"SolutionBuilder::")}function reportStatistics(e,t,n){var r;const i=t.getCompilerOptions();let o;if(canTrace(e,i)&&(null==(r=J)||r.stopTracing()),canReportDiagnostics(e,i)){o=[];const r=e.getMemoryUsage?e.getMemoryUsage():-1;reportCountStatistic("Files",t.getSourceFiles().length);const a=countLines(t);if(i.extendedDiagnostics)for(const[e,t]of a.entries())reportCountStatistic("Lines of "+e,t);else reportCountStatistic("Lines",reduceLeftIterator(a.values(),(e,t)=>e+t,0));reportCountStatistic("Identifiers",t.getIdentifierCount()),reportCountStatistic("Symbols",t.getSymbolCount()),reportCountStatistic("Types",t.getTypeCount()),reportCountStatistic("Instantiations",t.getInstantiationCount()),r>=0&&reportStatisticalValue({name:"Memory used",value:r,type:2},!0);const s=isEnabled(),c=s?getDuration("Program"):0,l=s?getDuration("Bind"):0,d=s?getDuration("Check"):0,p=s?getDuration("Emit"):0;if(i.extendedDiagnostics){const e=t.getRelationCacheSizes();reportCountStatistic("Assignability cache size",e.assignable),reportCountStatistic("Identity cache size",e.identity),reportCountStatistic("Subtype cache size",e.subtype),reportCountStatistic("Strict subtype cache size",e.strictSubtype),s&&forEachMeasure((e,t)=>{isSolutionMarkOrMeasure(e)||reportTimeStatistic(`${e} time`,t,!0)})}else s&&(reportTimeStatistic("I/O read",getDuration("I/O Read"),!0),reportTimeStatistic("I/O write",getDuration("I/O Write"),!0),reportTimeStatistic("Parse time",c,!0),reportTimeStatistic("Bind time",l,!0),reportTimeStatistic("Check time",d,!0),reportTimeStatistic("Emit time",p,!0));s&&reportTimeStatistic("Total time",c+l+d+p,!1),reportAllStatistics(e,o),s?n?(forEachMeasure(e=>{isSolutionMarkOrMeasure(e)||clearMeasures(e)}),forEachMark(e=>{isSolutionMarkOrMeasure(e)||clearMarks(e)})):disable():e.write(Ot.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message+"\n")}function reportStatisticalValue(e,t){o.push(e),t&&(null==n||n.addAggregateStatistic(e))}function reportCountStatistic(e,t){reportStatisticalValue({name:e,value:t,type:1},!0)}function reportTimeStatistic(e,t,n){reportStatisticalValue({name:e,value:t,type:0},n)}}function reportAllStatistics(e,t){let n=0,r=0;for(const e of t){e.name.length>n&&(n=e.name.length);const t=statisticValue(e);t.length>r&&(r=t.length)}for(const i of t)e.write(`${i.name}:`.padEnd(n+2)+statisticValue(i).toString().padStart(r)+e.newLine)}function statisticValue(e){switch(e.type){case 1:return""+e.value;case 0:return(e.value/1e3).toFixed(2)+"s";case 2:return Math.round(e.value/1e3)+"K";default:h.assertNever(e.type)}}function syntacticResult(e,t=!0){return{type:e,reportFallback:t}}var is=syntacticResult(void 0,!1),os=syntacticResult(void 0,!1),as=syntacticResult(void 0,!0);function createSyntacticTypeNodeBuilder(e,t){const n=getStrictOptionValue(e,"strictNullChecks");return{serializeTypeOfDeclaration:function serializeTypeOfDeclaration(e,n,r){switch(e.kind){case 170:case 342:return typeFromParameter(e,n,r);case 261:return function typeFromVariable(e,n,r){var i;const o=getEffectiveTypeAnnotationNode(e);let a=as;o?a=syntacticResult(serializeTypeAnnotationOfDeclaration(o,r,e,n)):!e.initializer||1!==(null==(i=n.declarations)?void 0:i.length)&&1!==countWhere(n.declarations,isVariableDeclaration)||t.isExpandoFunctionDeclaration(e)||isContextuallyTyped(e)||(a=typeFromExpression(e.initializer,r,void 0,void 0,isVarConstLike(e)));return void 0!==a.type?a.type:inferTypeOfDeclaration(e,n,r,a.reportFallback)}(e,n,r);case 172:case 349:case 173:return function typeFromProperty(e,n,r){const i=getEffectiveTypeAnnotationNode(e),o=t.requiresAddingImplicitUndefined(e,n,r.enclosingDeclaration);let a=as;if(i)a=syntacticResult(serializeTypeAnnotationOfDeclaration(i,r,e,n,o));else{const t=isPropertyDeclaration(e)?e.initializer:void 0;if(t&&!isContextuallyTyped(e)){a=typeFromExpression(t,r,void 0,o,isDeclarationReadonly(e))}}return void 0!==a.type?a.type:inferTypeOfDeclaration(e,n,r,a.reportFallback)}(e,n,r);case 209:return inferTypeOfDeclaration(e,n,r);case 278:return serializeTypeOfExpression(e.expression,r,void 0,!0);case 212:case 213:case 227:return function typeFromExpandoProperty(e,t,n){const r=getEffectiveTypeAnnotationNode(e);let i;r&&(i=serializeTypeAnnotationOfDeclaration(r,n,e,t));const o=n.suppressReportInferenceFallback;n.suppressReportInferenceFallback=!0;const a=i??inferTypeOfDeclaration(e,t,n,!1);return n.suppressReportInferenceFallback=o,a}(e,n,r);case 304:case 305:return function typeFromPropertyAssignment(e,n,r){const i=getEffectiveTypeAnnotationNode(e);let o;i&&t.canReuseTypeNodeAnnotation(r,e,i,n)&&(o=serializeExistingTypeNode(i,r));if(!o&&304===e.kind){const i=e.initializer,a=isJSDocTypeAssertion(i)?getJSDocTypeAssertionType(i):235===i.kind||217===i.kind?i.type:void 0;a&&!isConstTypeReference(a)&&t.canReuseTypeNodeAnnotation(r,e,a,n)&&(o=serializeExistingTypeNode(a,r))}return o??inferTypeOfDeclaration(e,n,r,!1)}(e,n,r);default:h.assertNever(e,`Node needs to be an inferrable node, found ${h.formatSyntaxKind(e.kind)}`)}},serializeReturnTypeForSignature:function serializeReturnTypeForSignature(e,t,n){switch(e.kind){case 178:return serializeTypeOfAccessor(e,t,n);case 175:case 263:case 181:case 174:case 180:case 177:case 179:case 182:case 185:case 186:case 219:case 220:case 318:case 324:return createReturnFromSignature(e,t,n);default:h.assertNever(e,`Node needs to be an inferrable node, found ${h.formatSyntaxKind(e.kind)}`)}},serializeTypeOfExpression,serializeTypeOfAccessor,tryReuseExistingTypeNode(e,n){if(t.canReuseTypeNode(e,n))return tryReuseExistingTypeNode(e,n)}};function reuseNode(e,n,r=n){return void 0===n?void 0:t.markNodeReuse(e,16&n.flags?n:Wr.cloneNode(n),r??n)}function tryReuseExistingTypeNode(n,r){const{finalizeBoundary:i,startRecoveryScope:o,hadError:a,markError:s}=t.createRecoveryBoundary(n),c=visitNode(r,visitExistingNodeTreeSymbols,isTypeNode);if(i())return n.approximateLength+=r.end-r.pos,c;function visitExistingNodeTreeSymbols(r){if(a())return r;const i=o(),c=isNewScopeNode(r)?t.enterNewScope(n,r):void 0,l=function visitExistingNodeTreeSymbolsWorker(r){var i;if(isJSDocTypeExpression(r))return visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode);if(isJSDocAllType(r)||320===r.kind)return Wr.createKeywordTypeNode(133);if(isJSDocUnknownType(r))return Wr.createKeywordTypeNode(159);if(isJSDocNullableType(r))return Wr.createUnionTypeNode([visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode),Wr.createLiteralTypeNode(Wr.createNull())]);if(isJSDocOptionalType(r))return Wr.createUnionTypeNode([visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode),Wr.createKeywordTypeNode(157)]);if(isJSDocNonNullableType(r))return visitNode(r.type,visitExistingNodeTreeSymbols);if(isJSDocVariadicType(r))return Wr.createArrayTypeNode(visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode));if(isJSDocTypeLiteral(r))return Wr.createTypeLiteralNode(map(r.jsDocPropertyTags,e=>{const i=visitNode(isIdentifier(e.name)?e.name:e.name.right,visitExistingNodeTreeSymbols,isIdentifier),o=t.getJsDocPropertyOverride(n,r,e);return Wr.createPropertySignature(void 0,i,e.isBracketed||e.typeExpression&&isJSDocOptionalType(e.typeExpression.type)?Wr.createToken(58):void 0,o||e.typeExpression&&visitNode(e.typeExpression.type,visitExistingNodeTreeSymbols,isTypeNode)||Wr.createKeywordTypeNode(133))}));if(isTypeReferenceNode(r)&&isIdentifier(r.typeName)&&""===r.typeName.escapedText)return setOriginalNode(Wr.createKeywordTypeNode(133),r);if((isExpressionWithTypeArguments(r)||isTypeReferenceNode(r))&&isJSDocIndexSignature(r))return Wr.createTypeLiteralNode([Wr.createIndexSignature(void 0,[Wr.createParameterDeclaration(void 0,void 0,"x",void 0,visitNode(r.typeArguments[0],visitExistingNodeTreeSymbols,isTypeNode))],visitNode(r.typeArguments[1],visitExistingNodeTreeSymbols,isTypeNode))]);if(isJSDocFunctionType(r)){if(isJSDocConstructSignature(r)){let e;return Wr.createConstructorTypeNode(void 0,visitNodes2(r.typeParameters,visitExistingNodeTreeSymbols,isTypeParameterDeclaration),mapDefined(r.parameters,(r,i)=>r.name&&isIdentifier(r.name)&&"new"===r.name.escapedText?void(e=r.type):Wr.createParameterDeclaration(void 0,getEffectiveDotDotDotForParameter(r),t.markNodeReuse(n,Wr.createIdentifier(getNameForJSDocFunctionParameter(r,i)),r),Wr.cloneNode(r.questionToken),visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode),void 0)),visitNode(e||r.type,visitExistingNodeTreeSymbols,isTypeNode)||Wr.createKeywordTypeNode(133))}return Wr.createFunctionTypeNode(visitNodes2(r.typeParameters,visitExistingNodeTreeSymbols,isTypeParameterDeclaration),map(r.parameters,(e,r)=>Wr.createParameterDeclaration(void 0,getEffectiveDotDotDotForParameter(e),t.markNodeReuse(n,Wr.createIdentifier(getNameForJSDocFunctionParameter(e,r)),e),Wr.cloneNode(e.questionToken),visitNode(e.type,visitExistingNodeTreeSymbols,isTypeNode),void 0)),visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode)||Wr.createKeywordTypeNode(133))}if(isThisTypeNode(r))return t.canReuseTypeNode(n,r)||s(),r;if(isTypeParameterDeclaration(r)){const{node:e}=t.trackExistingEntityName(n,r.name);return Wr.updateTypeParameterDeclaration(r,visitNodes2(r.modifiers,visitExistingNodeTreeSymbols,isModifier),e,visitNode(r.constraint,visitExistingNodeTreeSymbols,isTypeNode),visitNode(r.default,visitExistingNodeTreeSymbols,isTypeNode))}if(isIndexedAccessTypeNode(r)){const e=tryVisitIndexedAccess(r);return e||(s(),r)}if(isTypeReferenceNode(r)){const e=tryVisitTypeReference(r);return e||(s(),r)}if(isLiteralImportTypeNode(r)){if(132===(null==(i=r.attributes)?void 0:i.token))return s(),r;if(!t.canReuseTypeNode(n,r))return t.serializeExistingTypeNode(n,r);const e=rewriteModuleSpecifier2(r,r.argument.literal),o=e===r.argument.literal?reuseNode(n,r.argument.literal):e;return Wr.updateImportTypeNode(r,o===r.argument.literal?reuseNode(n,r.argument):Wr.createLiteralTypeNode(o),visitNode(r.attributes,visitExistingNodeTreeSymbols,isImportAttributes),visitNode(r.qualifier,visitExistingNodeTreeSymbols,isEntityName),visitNodes2(r.typeArguments,visitExistingNodeTreeSymbols,isTypeNode),r.isTypeOf)}if(isNamedDeclaration(r)&&168===r.name.kind&&!t.hasLateBindableName(r)){if(!hasDynamicName(r))return visitEachChild2(r,visitExistingNodeTreeSymbols);if(t.shouldRemoveDeclaration(n,r))return}if(isFunctionLike(r)&&!r.type||isPropertyDeclaration(r)&&!r.type&&!r.initializer||isPropertySignature(r)&&!r.type&&!r.initializer||isParameter(r)&&!r.type&&!r.initializer){let e=visitEachChild2(r,visitExistingNodeTreeSymbols);return e===r&&(e=t.markNodeReuse(n,Wr.cloneNode(r),r)),e.type=Wr.createKeywordTypeNode(133),isParameter(r)&&(e.modifiers=void 0),e}if(isTypeQueryNode(r)){const e=tryVisitTypeQuery(r);return e||(s(),r)}if(isComputedPropertyName(r)&&isEntityNameExpression(r.expression)){const{node:i,introducesError:o}=t.trackExistingEntityName(n,r.expression);if(o){const i=t.serializeTypeOfExpression(n,r.expression);let o;if(isLiteralTypeNode(i))o=i.literal;else{const e=t.evaluateEntityNameExpression(r.expression),a="string"==typeof e.value?Wr.createStringLiteral(e.value,void 0):"number"==typeof e.value?Wr.createNumericLiteral(e.value,0):void 0;if(!a)return isImportTypeNode(i)&&t.trackComputedName(n,r.expression),r;o=a}return 11===o.kind&&isIdentifierText(o.text,zn(e))?Wr.createIdentifier(o.text):9!==o.kind||o.text.startsWith("-")?Wr.updateComputedPropertyName(r,o):o}return Wr.updateComputedPropertyName(r,i)}if(isTypePredicateNode(r)){let e;if(isIdentifier(r.parameterName)){const{node:i,introducesError:o}=t.trackExistingEntityName(n,r.parameterName);o&&s(),e=i}else e=Wr.cloneNode(r.parameterName);return Wr.updateTypePredicateNode(r,Wr.cloneNode(r.assertsModifier),e,visitNode(r.type,visitExistingNodeTreeSymbols,isTypeNode))}if(isTupleTypeNode(r)||isTypeLiteralNode(r)||isMappedTypeNode(r)){const e=visitEachChild2(r,visitExistingNodeTreeSymbols),i=t.markNodeReuse(n,e===r?Wr.cloneNode(r):e,r);return setEmitFlags(i,getEmitFlags(i)|(1024&n.flags&&isTypeLiteralNode(r)?0:1)),i}if(isStringLiteral(r)&&268435456&n.flags&&!r.singleQuote){const e=Wr.cloneNode(r);return e.singleQuote=!0,e}if(isConditionalTypeNode(r)){const e=visitNode(r.checkType,visitExistingNodeTreeSymbols,isTypeNode),i=t.enterNewScope(n,r),o=visitNode(r.extendsType,visitExistingNodeTreeSymbols,isTypeNode),a=visitNode(r.trueType,visitExistingNodeTreeSymbols,isTypeNode);i();const s=visitNode(r.falseType,visitExistingNodeTreeSymbols,isTypeNode);return Wr.updateConditionalTypeNode(r,e,o,a,s)}if(isTypeOperatorNode(r))if(158===r.operator&&155===r.type.kind){if(!t.canReuseTypeNode(n,r))return s(),r}else if(143===r.operator){const e=tryVisitKeyOf(r);return e||(s(),r)}return visitEachChild2(r,visitExistingNodeTreeSymbols);function visitEachChild2(e,t){return visitEachChild(e,t,void 0,!n.enclosingFile||n.enclosingFile!==getSourceFileOfNode(e)?visitNodesWithoutCopyingPositions:void 0)}function visitNodesWithoutCopyingPositions(e,t,n,r,i){let o=visitNodes2(e,t,n,r,i);return o&&(-1===o.pos&&-1===o.end||(o===e&&(o=Wr.createNodeArray(e.slice(),e.hasTrailingComma)),setTextRangePosEnd(o,-1,-1))),o}function getEffectiveDotDotDotForParameter(e){return e.dotDotDotToken||(e.type&&isJSDocVariadicType(e.type)?Wr.createToken(26):void 0)}function getNameForJSDocFunctionParameter(e,t){return e.name&&isIdentifier(e.name)&&"this"===e.name.escapedText?"this":getEffectiveDotDotDotForParameter(e)?"args":`arg${t}`}function rewriteModuleSpecifier2(e,r){const i=t.getModuleSpecifierOverride(n,e,r);return i?setOriginalNode(Wr.createStringLiteral(i),r):r}}(r);return null==c||c(),a()?isTypeNode(r)&&!isTypePredicateNode(r)?(i(),t.serializeExistingTypeNode(n,r)):r:l?t.markNodeReuse(n,l,r):void 0}function tryVisitSimpleTypeNode(e){const t=skipTypeParentheses(e);switch(t.kind){case 184:return tryVisitTypeReference(t);case 187:return tryVisitTypeQuery(t);case 200:return tryVisitIndexedAccess(t);case 199:const e=t;if(143===e.operator)return tryVisitKeyOf(e)}return visitNode(e,visitExistingNodeTreeSymbols,isTypeNode)}function tryVisitIndexedAccess(e){const t=tryVisitSimpleTypeNode(e.objectType);if(void 0!==t)return Wr.updateIndexedAccessTypeNode(e,t,visitNode(e.indexType,visitExistingNodeTreeSymbols,isTypeNode))}function tryVisitKeyOf(e){h.assertEqual(e.operator,143);const t=tryVisitSimpleTypeNode(e.type);if(void 0!==t)return Wr.updateTypeOperatorNode(e,t)}function tryVisitTypeQuery(e){const{introducesError:r,node:i}=t.trackExistingEntityName(n,e.exprName);if(!r)return Wr.updateTypeQueryNode(e,i,visitNodes2(e.typeArguments,visitExistingNodeTreeSymbols,isTypeNode));const o=t.serializeTypeName(n,e.exprName,!0);return o?t.markNodeReuse(n,o,e.exprName):void 0}function tryVisitTypeReference(e){if(t.canReuseTypeNode(n,e)){const{introducesError:r,node:i}=t.trackExistingEntityName(n,e.typeName),o=visitNodes2(e.typeArguments,visitExistingNodeTreeSymbols,isTypeNode);if(!r){const r=Wr.updateTypeReferenceNode(e,i,o);return t.markNodeReuse(n,r,e)}{const r=t.serializeTypeName(n,e.typeName,!1,o);if(r)return t.markNodeReuse(n,r,e.typeName)}}}}function serializeExistingTypeNode(e,n,r){if(!e)return;let i;return r&&!canAddUndefined(e)||!t.canReuseTypeNode(n,e)||(i=tryReuseExistingTypeNode(n,e),void 0!==i&&(i=addUndefinedIfNeeded(i,r,void 0,n))),i}function serializeTypeAnnotationOfDeclaration(e,n,r,i,o,a=void 0!==o){if(!e)return;if(!(t.canReuseTypeNodeAnnotation(n,r,e,i,o)||o&&t.canReuseTypeNodeAnnotation(n,r,e,i,!1)))return;let s;return o&&!canAddUndefined(e)||(s=serializeExistingTypeNode(e,n,o)),void 0===s&&a?(n.tracker.reportInferenceFallback(r),t.serializeExistingTypeNode(n,e,o)??Wr.createKeywordTypeNode(133)):s}function serializeExistingTypeNodeWithFallback(e,n,r,i){if(!e)return;const o=serializeExistingTypeNode(e,n,r);return void 0!==o?o:(n.tracker.reportInferenceFallback(i??e),t.serializeExistingTypeNode(n,e,r)??Wr.createKeywordTypeNode(133))}function serializeTypeOfAccessor(e,n,r){return function typeFromAccessor(e,n,r){const i=t.getAllAccessorDeclarations(e),o=function getTypeAnnotationFromAllAccessorDeclarations(e,t){let n=getTypeAnnotationFromAccessor(e);n||e===t.firstAccessor||(n=getTypeAnnotationFromAccessor(t.firstAccessor));!n&&t.secondAccessor&&e!==t.secondAccessor&&(n=getTypeAnnotationFromAccessor(t.secondAccessor));return n}(e,i);if(o&&!isTypePredicateNode(o))return withNewScope(r,e,()=>serializeTypeAnnotationOfDeclaration(o,r,e,n)??inferTypeOfDeclaration(e,n,r));if(i.getAccessor)return withNewScope(r,i.getAccessor,()=>createReturnFromSignature(i.getAccessor,n,r));return}(e,n,r)??inferAccessorType(e,t.getAllAccessorDeclarations(e),r,n)}function serializeTypeOfExpression(e,t,n,r){const i=typeFromExpression(e,t,!1,n,r);return void 0!==i.type?i.type:inferExpressionType(e,t,i.reportFallback)}function getTypeAnnotationFromAccessor(e){if(e)return 178===e.kind?isInJSFile(e)&&getJSDocType(e)||getEffectiveReturnTypeNode(e):getEffectiveSetAccessorTypeAnnotationNode(e)}function typeFromParameter(e,n,r){const i=e.parent;if(179===i.kind)return serializeTypeOfAccessor(i,void 0,r);const o=getEffectiveTypeAnnotationNode(e),a=t.requiresAddingImplicitUndefined(e,n,r.enclosingDeclaration);let s=as;return o?s=syntacticResult(serializeTypeAnnotationOfDeclaration(o,r,e,n,a)):isParameter(e)&&e.initializer&&isIdentifier(e.name)&&!isContextuallyTyped(e)&&(s=typeFromExpression(e.initializer,r,void 0,a)),void 0!==s.type?s.type:inferTypeOfDeclaration(e,n,r,s.reportFallback)}function inferTypeOfDeclaration(e,n,r,i=!0){return i&&r.tracker.reportInferenceFallback(e),!0===r.noInferenceFallback?Wr.createKeywordTypeNode(133):t.serializeTypeOfDeclaration(r,e,n)}function inferExpressionType(e,n,r=!0,i){return h.assert(!i),r&&n.tracker.reportInferenceFallback(e),!0===n.noInferenceFallback?Wr.createKeywordTypeNode(133):t.serializeTypeOfExpression(n,e)??Wr.createKeywordTypeNode(133)}function inferAccessorType(e,n,r,i,o=!0){if(178===e.kind)return createReturnFromSignature(e,i,r,o);o&&r.tracker.reportInferenceFallback(e);return(n.getAccessor&&createReturnFromSignature(n.getAccessor,i,r,o))??t.serializeTypeOfDeclaration(r,e,i)??Wr.createKeywordTypeNode(133)}function withNewScope(e,n,r){const i=t.enterNewScope(e,n),o=r();return i(),o}function typeFromTypeAssertion(e,t,n,r){return isConstTypeReference(t)?typeFromExpression(e,n,!0,r):syntacticResult(serializeExistingTypeNodeWithFallback(t,n,r))}function typeFromExpression(e,r,i=!1,o=!1,a=!1){switch(e.kind){case 218:return isJSDocTypeAssertion(e)?typeFromTypeAssertion(e.expression,getJSDocTypeAssertionType(e),r,o):typeFromExpression(e.expression,r,i,o);case 80:if(t.isUndefinedIdentifierExpression(e))return syntacticResult(createUndefinedTypeNode());break;case 106:return syntacticResult(n?addUndefinedIfNeeded(Wr.createLiteralTypeNode(Wr.createNull()),o,e,r):Wr.createKeywordTypeNode(133));case 220:case 219:return h.type(e),withNewScope(r,e,()=>function typeFromFunctionLikeExpression(e,t){const n=createReturnFromSignature(e,void 0,t),r=reuseTypeParameters(e.typeParameters,t),i=e.parameters.map(e=>ensureParameter(e,t));return syntacticResult(Wr.createFunctionTypeNode(r,i,n))}(e,r));case 217:case 235:const s=e;return typeFromTypeAssertion(s.expression,s.type,r,o);case 225:const c=e;if(isPrimitiveLiteralValue(c))return typeFromPrimitiveLiteral(40===c.operator?c.operand:c,10===c.operand.kind?163:150,r,i||a,o);break;case 210:return function typeFromArrayLiteral(e,t,n,r){if(!function canGetTypeFromArrayLiteral(e,t,n){if(!n)return t.tracker.reportInferenceFallback(e),!1;for(const n of e.elements)if(231===n.kind)return t.tracker.reportInferenceFallback(n),!1;return!0}(e,t,n))return r||isDeclaration(walkUpParenthesizedExpressions(e).parent)?os:syntacticResult(inferExpressionType(e,t,!1,r));const i=t.noInferenceFallback;t.noInferenceFallback=!0;const o=[];for(const r of e.elements)if(h.assert(231!==r.kind),233===r.kind)o.push(createUndefinedTypeNode());else{const e=typeFromExpression(r,t,n),i=void 0!==e.type?e.type:inferExpressionType(r,t,e.reportFallback);o.push(i)}return Wr.createTupleTypeNode(o).emitNode={flags:1,autoGenerate:void 0,internalFlags:0},t.noInferenceFallback=i,is}(e,r,i,o);case 211:return function typeFromObjectLiteral(e,n,r,i){if(!function canGetTypeFromObjectLiteral(e,n){let r=!0;for(const i of e.properties){if(262144&i.flags){r=!1;break}if(305===i.kind||306===i.kind)n.tracker.reportInferenceFallback(i),r=!1;else{if(262144&i.name.flags){r=!1;break}if(81===i.name.kind)r=!1;else if(168===i.name.kind){const e=i.name.expression;isPrimitiveLiteralValue(e,!1)||t.isDefinitelyReferenceToGlobalSymbolObject(e)||(n.tracker.reportInferenceFallback(i.name),r=!1)}}}return r}(e,n))return i||isDeclaration(walkUpParenthesizedExpressions(e).parent)?os:syntacticResult(inferExpressionType(e,n,!1,i));const o=n.noInferenceFallback;n.noInferenceFallback=!0;const a=[],s=n.flags;n.flags|=4194304;for(const t of e.properties){h.assert(!isShorthandPropertyAssignment(t)&&!isSpreadAssignment(t));const e=t.name;let i;switch(t.kind){case 175:i=withNewScope(n,t,()=>typeFromObjectLiteralMethod(t,e,n,r));break;case 304:i=typeFromObjectLiteralPropertyAssignment(t,e,n,r);break;case 179:case 178:i=typeFromObjectLiteralAccessor(t,e,n)}i&&(setCommentRange(i,t),a.push(i))}n.flags=s;const c=Wr.createTypeLiteralNode(a);1024&n.flags||setEmitFlags(c,1);return n.noInferenceFallback=o,is}(e,r,i,o);case 232:return syntacticResult(inferExpressionType(e,r,!0,o));case 229:if(!i&&!a)return syntacticResult(Wr.createKeywordTypeNode(154));break;default:let l,d=e;switch(e.kind){case 9:l=150;break;case 15:d=Wr.createStringLiteral(e.text),l=154;break;case 11:l=154;break;case 10:l=163;break;case 112:case 97:l=136}if(l)return typeFromPrimitiveLiteral(d,l,r,i||a,o)}return as}function typeFromObjectLiteralPropertyAssignment(e,t,n,r){const i=r?[Wr.createModifier(148)]:[],o=typeFromExpression(e.initializer,n,r),a=void 0!==o.type?o.type:inferTypeOfDeclaration(e,void 0,n,o.reportFallback);return Wr.createPropertySignature(i,reuseNode(n,t),void 0,a)}function ensureParameter(e,n){return Wr.updateParameterDeclaration(e,void 0,reuseNode(n,e.dotDotDotToken),t.serializeNameOfParameter(n,e),t.isOptionalParameter(e)?Wr.createToken(58):void 0,typeFromParameter(e,void 0,n),void 0)}function reuseTypeParameters(e,n){return null==e?void 0:e.map(e=>{var r;const{node:i}=t.trackExistingEntityName(n,e.name);return Wr.updateTypeParameterDeclaration(e,null==(r=e.modifiers)?void 0:r.map(e=>reuseNode(n,e)),i,serializeExistingTypeNodeWithFallback(e.constraint,n),serializeExistingTypeNodeWithFallback(e.default,n))})}function typeFromObjectLiteralMethod(e,t,n,r){const i=createReturnFromSignature(e,void 0,n),o=reuseTypeParameters(e.typeParameters,n),a=e.parameters.map(e=>ensureParameter(e,n));return r?Wr.createPropertySignature([Wr.createModifier(148)],reuseNode(n,t),reuseNode(n,e.questionToken),Wr.createFunctionTypeNode(o,a,i)):(isIdentifier(t)&&"new"===t.escapedText&&(t=Wr.createStringLiteral("new")),Wr.createMethodSignature([],reuseNode(n,t),reuseNode(n,e.questionToken),o,a,i))}function typeFromObjectLiteralAccessor(e,n,r){const i=t.getAllAccessorDeclarations(e),o=i.getAccessor&&getTypeAnnotationFromAccessor(i.getAccessor),a=i.setAccessor&&getTypeAnnotationFromAccessor(i.setAccessor);if(void 0!==o&&void 0!==a)return withNewScope(r,e,()=>{const t=e.parameters.map(e=>ensureParameter(e,r));return isGetAccessor(e)?Wr.updateGetAccessorDeclaration(e,[],reuseNode(r,n),t,serializeExistingTypeNodeWithFallback(o,r),void 0):Wr.updateSetAccessorDeclaration(e,[],reuseNode(r,n),t,void 0)});if(i.firstAccessor===e){const t=(o?withNewScope(r,i.getAccessor,()=>serializeExistingTypeNodeWithFallback(o,r)):a?withNewScope(r,i.setAccessor,()=>serializeExistingTypeNodeWithFallback(a,r)):void 0)??inferAccessorType(e,i,r,void 0);return Wr.createPropertySignature(void 0===i.setAccessor?[Wr.createModifier(148)]:[],reuseNode(r,n),void 0,t)}}function createUndefinedTypeNode(){return n?Wr.createKeywordTypeNode(157):Wr.createKeywordTypeNode(133)}function typeFromPrimitiveLiteral(e,t,n,r,i){let o;return r?(225===e.kind&&40===e.operator&&(o=Wr.createLiteralTypeNode(reuseNode(n,e.operand))),o=Wr.createLiteralTypeNode(reuseNode(n,e))):o=Wr.createKeywordTypeNode(t),syntacticResult(addUndefinedIfNeeded(o,i,e,n))}function addUndefinedIfNeeded(e,t,r,i){const o=r&&walkUpParenthesizedExpressions(r).parent,a=o&&isDeclaration(o)&&isOptionalDeclaration(o);return n&&(t||a)?(canAddUndefined(e)||i.tracker.reportInferenceFallback(e),isUnionTypeNode(e)?Wr.createUnionTypeNode([...e.types,Wr.createKeywordTypeNode(157)]):Wr.createUnionTypeNode([e,Wr.createKeywordTypeNode(157)])):e}function canAddUndefined(e){return!n||(!(!isKeyword(e.kind)&&202!==e.kind&&185!==e.kind&&186!==e.kind&&189!==e.kind&&190!==e.kind&&188!==e.kind&&204!==e.kind&&198!==e.kind)||(197===e.kind?canAddUndefined(e.type):(193===e.kind||194===e.kind)&&e.types.every(canAddUndefined)))}function createReturnFromSignature(e,n,r,i=!0){let o=as;const a=isJSDocConstructSignature(e)?getEffectiveTypeAnnotationNode(e.parameters[0]):getEffectiveReturnTypeNode(e);return a?o=syntacticResult(serializeTypeAnnotationOfDeclaration(a,r,e,n)):isValueSignatureDeclaration(e)&&(o=function typeFromSingleReturnExpression(e,t){let n;if(e&&!nodeIsMissing(e.body)){if(3&getFunctionFlags(e))return as;const t=e.body;t&&isBlock(t)?forEachReturnStatement(t,e=>e.parent!==t||n?(n=void 0,!0):void(n=e.expression)):n=t}if(n){if(!isContextuallyTyped(n))return typeFromExpression(n,t);{const e=isJSDocTypeAssertion(n)?getJSDocTypeAssertionType(n):isAsExpression(n)||isTypeAssertionExpression(n)?n.type:void 0;if(e&&!isConstTypeReference(e))return syntacticResult(serializeExistingTypeNode(e,t))}}return as}(e,r)),void 0!==o.type?o.type:function inferReturnTypeOfSignatureSignature(e,n,r,i){return i&&n.tracker.reportInferenceFallback(e),!0===n.noInferenceFallback?Wr.createKeywordTypeNode(133):t.serializeReturnTypeForSignature(n,e,r)??Wr.createKeywordTypeNode(133)}(e,r,n,i&&o.reportFallback&&!a)}function isContextuallyTyped(e){return findAncestor(e.parent,e=>isCallExpression(e)||!isFunctionLikeDeclaration(e)&&!!getEffectiveTypeAnnotationNode(e)||isJsxElement(e)||isJsxExpression(e))}}var ss={};i(ss,{NameValidationResult:()=>Ss,discoverTypings:()=>discoverTypings,isTypingUpToDate:()=>isTypingUpToDate,loadSafeList:()=>loadSafeList,loadTypesMap:()=>loadTypesMap,nonRelativeModuleNameForTypingCache:()=>nonRelativeModuleNameForTypingCache,renderPackageNameValidationFailure:()=>renderPackageNameValidationFailure,validatePackageName:()=>validatePackageName});var cs,ls,ds="action::set",ps="action::invalidate",us="action::packageInstalled",ms="event::typesRegistry",_s="event::beginInstallTypes",fs="event::endInstallTypes",gs="event::initializationFailed",ys="action::watchTypingLocations";function hasArgument(e){return kt.args.includes(e)}function findArgument(e){const t=kt.args.indexOf(e);return t>=0&&te.readFile(t));return new Map(Object.entries(n.config))}function loadTypesMap(e,t){var n;const r=readConfigFile(t,t=>e.readFile(t));if(null==(n=r.config)?void 0:n.simpleMap)return new Map(Object.entries(r.config.simpleMap))}function discoverTypings(e,t,n,r,i,o,a,s,c,l){if(!a||!a.enable)return{cachedTypingPaths:[],newTypingNames:[],filesToWatch:[]};const d=new Map;n=mapDefined(n,e=>{const t=normalizePath(e);if(hasJSFileExtension(t))return t});const p=[];a.include&&addInferredTypings(a.include,"Explicitly included types");const u=a.exclude||[];if(!l.types){const e=new Set(n.map(getDirectoryPath));e.add(r),e.forEach(e=>{getTypingNames(e,"bower.json","bower_components",p),getTypingNames(e,"package.json","node_modules",p)})}if(a.disableFilenameBasedTypeAcquisition||function getTypingNamesFromSourceFileNames(e){const n=mapDefined(e,e=>{if(!hasJSFileExtension(e))return;const t=removeMinAndVersionNumbers(removeFileExtension(toFileNameLowerCase(getBaseFileName(e))));return i.get(t)});n.length&&addInferredTypings(n,"Inferred typings from file names");some(e,e=>fileExtensionIs(e,".jsx"))&&(t&&t("Inferred 'react' typings due to presence of '.jsx' extension"),addInferredTyping("react"))}(n),s){addInferredTypings(deduplicate(s.map(nonRelativeModuleNameForTypingCache),equateStringsCaseSensitive,compareStringsCaseSensitive),"Inferred typings from unresolved imports")}for(const e of u){d.delete(e)&&t&&t(`Typing for ${e} is in exclude list, will be ignored.`)}o.forEach((e,t)=>{const n=c.get(t);!1===d.get(t)&&void 0!==n&&isTypingUpToDate(e,n)&&d.set(t,e.typingLocation)});const m=[],_=[];d.forEach((e,t)=>{e?_.push(e):m.push(t)});const f={cachedTypingPaths:_,newTypingNames:m,filesToWatch:p};return t&&t(`Finished typings discovery:${stringifyIndented(f)}`),f;function addInferredTyping(e){d.has(e)||d.set(e,!1)}function addInferredTypings(e,n){t&&t(`${n}: ${JSON.stringify(e)}`),forEach(e,addInferredTyping)}function getTypingNames(n,r,i,o){const a=combinePaths(n,r);let s,c;e.fileExists(a)&&(o.push(a),s=readConfigFile(a,t=>e.readFile(t)).config,c=flatMap([s.dependencies,s.devDependencies,s.optionalDependencies,s.peerDependencies],getOwnKeys),addInferredTypings(c,`Typing names in '${a}' dependencies`));const l=combinePaths(n,i);if(o.push(l),!e.directoryExists(l))return;const p=[],u=c?c.map(e=>combinePaths(l,e,r)):e.readDirectory(l,[".json"],void 0,void 0,3).filter(e=>{if(getBaseFileName(e)!==r)return!1;const t=getPathComponents(normalizePath(e)),n="@"===t[t.length-3][0];return n&&toFileNameLowerCase(t[t.length-4])===i||!n&&toFileNameLowerCase(t[t.length-3])===i});t&&t(`Searching for typing names in ${l}; all files: ${JSON.stringify(u)}`);for(const n of u){const r=normalizePath(n),i=readConfigFile(r,t=>e.readFile(t)).config;if(!i.name)continue;const o=i.types||i.typings;if(o){const n=getNormalizedAbsolutePath(o,getDirectoryPath(r));e.fileExists(n)?(t&&t(` Package '${i.name}' provides its own types.`),d.set(i.name,n)):t&&t(` Package '${i.name}' provides its own types but they are missing.`)}else p.push(i.name)}addInferredTypings(p," Found package names")}}var Ts,Ss=(e=>(e[e.Ok=0]="Ok",e[e.EmptyName=1]="EmptyName",e[e.NameTooLong=2]="NameTooLong",e[e.NameStartsWithDot=3]="NameStartsWithDot",e[e.NameStartsWithUnderscore=4]="NameStartsWithUnderscore",e[e.NameContainsNonURISafeCharacters=5]="NameContainsNonURISafeCharacters",e))(Ss||{}),xs=214;function validatePackageName(e){return validatePackageNameWorker(e,!0)}function validatePackageNameWorker(e,t){if(!e)return 1;if(e.length>xs)return 2;if(46===e.charCodeAt(0))return 3;if(95===e.charCodeAt(0))return 4;if(t){const t=/^@([^/]+)\/([^/]+)$/.exec(e);if(t){const e=validatePackageNameWorker(t[1],!1);if(0!==e)return{name:t[1],isScopeName:!0,result:e};const n=validatePackageNameWorker(t[2],!1);return 0!==n?{name:t[2],isScopeName:!1,result:n}:0}}return encodeURIComponent(e)!==e?5:0}function renderPackageNameValidationFailure(e,t){return"object"==typeof e?renderPackageNameValidationFailureWorker(t,e.result,e.name,e.isScopeName):renderPackageNameValidationFailureWorker(t,e,t,!1)}function renderPackageNameValidationFailureWorker(e,t,n,r){const i=r?"Scope":"Package";switch(t){case 1:return`'${e}':: ${i} name '${n}' cannot be empty`;case 2:return`'${e}':: ${i} name '${n}' should be less than ${xs} characters`;case 3:return`'${e}':: ${i} name '${n}' cannot start with '.'`;case 4:return`'${e}':: ${i} name '${n}' cannot start with '_'`;case 5:return`'${e}':: ${i} name '${n}' contains non URI safe characters`;case 0:return h.fail();default:h.assertNever(t)}}(e=>{class StringScriptSnapshot{constructor(e){this.text=e}getText(e,t){return 0===e&&t===this.text.length?this.text:this.text.substring(e,t)}getLength(){return this.text.length}getChangeRange(){}}e.fromString=function fromString(e){return new StringScriptSnapshot(e)}})(Ts||(Ts={}));var vs=(e=>(e[e.Dependencies=1]="Dependencies",e[e.DevDependencies=2]="DevDependencies",e[e.PeerDependencies=4]="PeerDependencies",e[e.OptionalDependencies=8]="OptionalDependencies",e[e.All=15]="All",e))(vs||{}),bs=(e=>(e[e.Off=0]="Off",e[e.On=1]="On",e[e.Auto=2]="Auto",e))(bs||{}),Cs=(e=>(e[e.Semantic=0]="Semantic",e[e.PartialSemantic=1]="PartialSemantic",e[e.Syntactic=2]="Syntactic",e))(Cs||{}),Es={},Ns=(e=>(e.Original="original",e.TwentyTwenty="2020",e))(Ns||{}),ks=(e=>(e.All="All",e.SortAndCombine="SortAndCombine",e.RemoveUnused="RemoveUnused",e))(ks||{}),Fs=(e=>(e[e.Invoked=1]="Invoked",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",e))(Fs||{}),Ps=(e=>(e.Type="Type",e.Parameter="Parameter",e.Enum="Enum",e))(Ps||{}),Ds=(e=>(e.none="none",e.definition="definition",e.reference="reference",e.writtenReference="writtenReference",e))(Ds||{}),Is=(e=>(e[e.None=0]="None",e[e.Block=1]="Block",e[e.Smart=2]="Smart",e))(Is||{}),As=(e=>(e.Ignore="ignore",e.Insert="insert",e.Remove="remove",e))(As||{});function getDefaultFormatCodeSettings(e){return{indentSize:4,tabSize:4,newLineCharacter:e||"\n",convertTabsToSpaces:!0,indentStyle:2,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:"ignore",trimTrailingWhitespace:!0,indentSwitchCase:!0}}var Os=getDefaultFormatCodeSettings("\n"),ws=(e=>(e[e.aliasName=0]="aliasName",e[e.className=1]="className",e[e.enumName=2]="enumName",e[e.fieldName=3]="fieldName",e[e.interfaceName=4]="interfaceName",e[e.keyword=5]="keyword",e[e.lineBreak=6]="lineBreak",e[e.numericLiteral=7]="numericLiteral",e[e.stringLiteral=8]="stringLiteral",e[e.localName=9]="localName",e[e.methodName=10]="methodName",e[e.moduleName=11]="moduleName",e[e.operator=12]="operator",e[e.parameterName=13]="parameterName",e[e.propertyName=14]="propertyName",e[e.punctuation=15]="punctuation",e[e.space=16]="space",e[e.text=17]="text",e[e.typeParameterName=18]="typeParameterName",e[e.enumMemberName=19]="enumMemberName",e[e.functionName=20]="functionName",e[e.regularExpressionLiteral=21]="regularExpressionLiteral",e[e.link=22]="link",e[e.linkName=23]="linkName",e[e.linkText=24]="linkText",e))(ws||{}),Ls=(e=>(e[e.None=0]="None",e[e.MayIncludeAutoImports=1]="MayIncludeAutoImports",e[e.IsImportStatementCompletion=2]="IsImportStatementCompletion",e[e.IsContinuation=4]="IsContinuation",e[e.ResolvedModuleSpecifiers=8]="ResolvedModuleSpecifiers",e[e.ResolvedModuleSpecifiersBeyondLimit=16]="ResolvedModuleSpecifiersBeyondLimit",e[e.MayIncludeMethodSnippets=32]="MayIncludeMethodSnippets",e))(Ls||{}),Ms=(e=>(e.Comment="comment",e.Region="region",e.Code="code",e.Imports="imports",e))(Ms||{}),Rs=(e=>(e[e.JavaScript=0]="JavaScript",e[e.SourceMap=1]="SourceMap",e[e.Declaration=2]="Declaration",e))(Rs||{}),Bs=(e=>(e[e.None=0]="None",e[e.InMultiLineCommentTrivia=1]="InMultiLineCommentTrivia",e[e.InSingleQuoteStringLiteral=2]="InSingleQuoteStringLiteral",e[e.InDoubleQuoteStringLiteral=3]="InDoubleQuoteStringLiteral",e[e.InTemplateHeadOrNoSubstitutionTemplate=4]="InTemplateHeadOrNoSubstitutionTemplate",e[e.InTemplateMiddleOrTail=5]="InTemplateMiddleOrTail",e[e.InTemplateSubstitutionPosition=6]="InTemplateSubstitutionPosition",e))(Bs||{}),js=(e=>(e[e.Punctuation=0]="Punctuation",e[e.Keyword=1]="Keyword",e[e.Operator=2]="Operator",e[e.Comment=3]="Comment",e[e.Whitespace=4]="Whitespace",e[e.Identifier=5]="Identifier",e[e.NumberLiteral=6]="NumberLiteral",e[e.BigIntLiteral=7]="BigIntLiteral",e[e.StringLiteral=8]="StringLiteral",e[e.RegExpLiteral=9]="RegExpLiteral",e))(js||{}),Js=(e=>(e.unknown="",e.warning="warning",e.keyword="keyword",e.scriptElement="script",e.moduleElement="module",e.classElement="class",e.localClassElement="local class",e.interfaceElement="interface",e.typeElement="type",e.enumElement="enum",e.enumMemberElement="enum member",e.variableElement="var",e.localVariableElement="local var",e.variableUsingElement="using",e.variableAwaitUsingElement="await using",e.functionElement="function",e.localFunctionElement="local function",e.memberFunctionElement="method",e.memberGetAccessorElement="getter",e.memberSetAccessorElement="setter",e.memberVariableElement="property",e.memberAccessorVariableElement="accessor",e.constructorImplementationElement="constructor",e.callSignatureElement="call",e.indexSignatureElement="index",e.constructSignatureElement="construct",e.parameterElement="parameter",e.typeParameterElement="type parameter",e.primitiveType="primitive type",e.label="label",e.alias="alias",e.constElement="const",e.letElement="let",e.directory="directory",e.externalModuleName="external module name",e.jsxAttribute="JSX attribute",e.string="string",e.link="link",e.linkName="link name",e.linkText="link text",e))(Js||{}),Ws=(e=>(e.none="",e.publicMemberModifier="public",e.privateMemberModifier="private",e.protectedMemberModifier="protected",e.exportedModifier="export",e.ambientModifier="declare",e.staticModifier="static",e.abstractModifier="abstract",e.optionalModifier="optional",e.deprecatedModifier="deprecated",e.dtsModifier=".d.ts",e.tsModifier=".ts",e.tsxModifier=".tsx",e.jsModifier=".js",e.jsxModifier=".jsx",e.jsonModifier=".json",e.dmtsModifier=".d.mts",e.mtsModifier=".mts",e.mjsModifier=".mjs",e.dctsModifier=".d.cts",e.ctsModifier=".cts",e.cjsModifier=".cjs",e))(Ws||{}),Us=(e=>(e.comment="comment",e.identifier="identifier",e.keyword="keyword",e.numericLiteral="number",e.bigintLiteral="bigint",e.operator="operator",e.stringLiteral="string",e.whiteSpace="whitespace",e.text="text",e.punctuation="punctuation",e.className="class name",e.enumName="enum name",e.interfaceName="interface name",e.moduleName="module name",e.typeParameterName="type parameter name",e.typeAliasName="type alias name",e.parameterName="parameter name",e.docCommentTagName="doc comment tag name",e.jsxOpenTagName="jsx open tag name",e.jsxCloseTagName="jsx close tag name",e.jsxSelfClosingTagName="jsx self closing tag name",e.jsxAttribute="jsx attribute",e.jsxText="jsx text",e.jsxAttributeStringLiteralValue="jsx attribute string literal value",e))(Us||{}),zs=(e=>(e[e.comment=1]="comment",e[e.identifier=2]="identifier",e[e.keyword=3]="keyword",e[e.numericLiteral=4]="numericLiteral",e[e.operator=5]="operator",e[e.stringLiteral=6]="stringLiteral",e[e.regularExpressionLiteral=7]="regularExpressionLiteral",e[e.whiteSpace=8]="whiteSpace",e[e.text=9]="text",e[e.punctuation=10]="punctuation",e[e.className=11]="className",e[e.enumName=12]="enumName",e[e.interfaceName=13]="interfaceName",e[e.moduleName=14]="moduleName",e[e.typeParameterName=15]="typeParameterName",e[e.typeAliasName=16]="typeAliasName",e[e.parameterName=17]="parameterName",e[e.docCommentTagName=18]="docCommentTagName",e[e.jsxOpenTagName=19]="jsxOpenTagName",e[e.jsxCloseTagName=20]="jsxCloseTagName",e[e.jsxSelfClosingTagName=21]="jsxSelfClosingTagName",e[e.jsxAttribute=22]="jsxAttribute",e[e.jsxText=23]="jsxText",e[e.jsxAttributeStringLiteralValue=24]="jsxAttributeStringLiteralValue",e[e.bigintLiteral=25]="bigintLiteral",e))(zs||{}),Vs=createScanner(99,!0),qs=(e=>(e[e.None=0]="None",e[e.Value=1]="Value",e[e.Type=2]="Type",e[e.Namespace=4]="Namespace",e[e.All=7]="All",e))(qs||{});function getMeaningFromDeclaration(e){switch(e.kind){case 261:return isInJSFile(e)&&getJSDocEnumTag(e)?7:1;case 170:case 209:case 173:case 172:case 304:case 305:case 175:case 174:case 177:case 178:case 179:case 263:case 219:case 220:case 300:case 292:return 1;case 169:case 265:case 266:case 188:return 2;case 347:return void 0===e.name?3:2;case 307:case 264:return 3;case 268:return isAmbientModule(e)||1===getModuleInstanceState(e)?5:4;case 267:case 276:case 277:case 272:case 273:case 278:case 279:return 7;case 308:return 5}return 7}function getMeaningFromLocation(e){const t=(e=getAdjustedReferenceLocation(e)).parent;return 308===e.kind?1:isExportAssignment(t)||isExportSpecifier(t)||isExternalModuleReference(t)||isImportSpecifier(t)||isImportClause(t)||isImportEqualsDeclaration(t)&&e===t.name?7:isInRightSideOfInternalImportEqualsDeclaration(e)?function getMeaningFromRightHandSideOfImportEquals(e){const t=167===e.kind?e:isQualifiedName(e.parent)&&e.parent.right===e?e.parent:void 0;return t&&272===t.parent.kind?7:4}(e):isDeclarationName(e)?getMeaningFromDeclaration(t):isEntityName(e)&&findAncestor(e,or(isJSDocNameReference,isJSDocLinkLike,isJSDocMemberName))?7:function isTypeReference(e){isRightSideOfQualifiedNameOrPropertyAccess(e)&&(e=e.parent);switch(e.kind){case 110:return!isExpressionNode(e);case 198:return!0}switch(e.parent.kind){case 184:return!0;case 206:return!e.parent.isTypeOf;case 234:return isPartOfTypeNode(e.parent)}return!1}(e)?2:function isNamespaceReference(e){return function isQualifiedNameNamespaceReference(e){let t=e,n=!0;if(167===t.parent.kind){for(;t.parent&&167===t.parent.kind;)t=t.parent;n=t.right===e}return 184===t.parent.kind&&!n}(e)||function isPropertyAccessNamespaceReference(e){let t=e,n=!0;if(212===t.parent.kind){for(;t.parent&&212===t.parent.kind;)t=t.parent;n=t.name===e}if(!n&&234===t.parent.kind&&299===t.parent.parent.kind){const e=t.parent.parent.parent;return 264===e.kind&&119===t.parent.parent.token||265===e.kind&&96===t.parent.parent.token}return!1}(e)}(e)?4:isTypeParameterDeclaration(t)?(h.assert(isJSDocTemplateTag(t.parent)),2):isLiteralTypeNode(t)?3:1}function isInRightSideOfInternalImportEqualsDeclaration(e){if(!e.parent)return!1;for(;167===e.parent.kind;)e=e.parent;return isInternalModuleImportEqualsDeclaration(e.parent)&&e.parent.moduleReference===e}function isCallExpressionTarget(e,t=!1,n=!1){return isCalleeWorker(e,isCallExpression,selectExpressionOfCallOrNewExpressionOrDecorator,t,n)}function isNewExpressionTarget(e,t=!1,n=!1){return isCalleeWorker(e,isNewExpression,selectExpressionOfCallOrNewExpressionOrDecorator,t,n)}function isCallOrNewExpressionTarget(e,t=!1,n=!1){return isCalleeWorker(e,isCallOrNewExpression,selectExpressionOfCallOrNewExpressionOrDecorator,t,n)}function isTaggedTemplateTag(e,t=!1,n=!1){return isCalleeWorker(e,isTaggedTemplateExpression,selectTagOfTaggedTemplateExpression,t,n)}function isDecoratorTarget(e,t=!1,n=!1){return isCalleeWorker(e,isDecorator,selectExpressionOfCallOrNewExpressionOrDecorator,t,n)}function isJsxOpeningLikeElementTagName(e,t=!1,n=!1){return isCalleeWorker(e,isJsxOpeningLikeElement,selectTagNameOfJsxOpeningLikeElement,t,n)}function selectExpressionOfCallOrNewExpressionOrDecorator(e){return e.expression}function selectTagOfTaggedTemplateExpression(e){return e.tag}function selectTagNameOfJsxOpeningLikeElement(e){return e.tagName}function isCalleeWorker(e,t,n,r,i){let o=r?function climbPastPropertyOrElementAccess(e){return isRightSideOfPropertyAccess(e)||isArgumentExpressionOfElementAccess(e)?e.parent:e}(e):climbPastPropertyAccess(e);return i&&(o=skipOuterExpressions(o)),!!o&&!!o.parent&&t(o.parent)&&n(o.parent)===o}function climbPastPropertyAccess(e){return isRightSideOfPropertyAccess(e)?e.parent:e}function getTargetLabel(e,t){for(;e;){if(257===e.kind&&e.label.escapedText===t)return e.label;e=e.parent}}function hasPropertyAccessExpressionWithName(e,t){return!!isPropertyAccessExpression(e.expression)&&e.expression.name.text===t}function isJumpStatementTarget(e){var t;return isIdentifier(e)&&(null==(t=tryCast(e.parent,isBreakOrContinueStatement))?void 0:t.label)===e}function isLabelOfLabeledStatement(e){var t;return isIdentifier(e)&&(null==(t=tryCast(e.parent,isLabeledStatement))?void 0:t.label)===e}function isLabelName(e){return isLabelOfLabeledStatement(e)||isJumpStatementTarget(e)}function isTagName(e){var t;return(null==(t=tryCast(e.parent,isJSDocTag))?void 0:t.tagName)===e}function isRightSideOfQualifiedName(e){var t;return(null==(t=tryCast(e.parent,isQualifiedName))?void 0:t.right)===e}function isRightSideOfPropertyAccess(e){var t;return(null==(t=tryCast(e.parent,isPropertyAccessExpression))?void 0:t.name)===e}function isArgumentExpressionOfElementAccess(e){var t;return(null==(t=tryCast(e.parent,isElementAccessExpression))?void 0:t.argumentExpression)===e}function isNameOfModuleDeclaration(e){var t;return(null==(t=tryCast(e.parent,isModuleDeclaration))?void 0:t.name)===e}function isNameOfFunctionDeclaration(e){var t;return isIdentifier(e)&&(null==(t=tryCast(e.parent,isFunctionLike))?void 0:t.name)===e}function isLiteralNameOfPropertyDeclarationOrIndexAccess(e){switch(e.parent.kind){case 173:case 172:case 304:case 307:case 175:case 174:case 178:case 179:case 268:return getNameOfDeclaration(e.parent)===e;case 213:return e.parent.argumentExpression===e;case 168:return!0;case 202:return 200===e.parent.parent.kind;default:return!1}}function isExpressionOfExternalModuleImportEqualsDeclaration(e){return isExternalModuleImportEqualsDeclaration(e.parent.parent)&&getExternalModuleImportEqualsDeclarationExpression(e.parent.parent)===e}function getContainerNode(e){for(isJSDocTypeAlias(e)&&(e=e.parent.parent);;){if(!(e=e.parent))return;switch(e.kind){case 308:case 175:case 174:case 263:case 219:case 178:case 179:case 264:case 265:case 267:case 268:return e}}}function getNodeKind(e){switch(e.kind){case 308:return isExternalModule(e)?"module":"script";case 268:return"module";case 264:case 232:return"class";case 265:return"interface";case 266:case 339:case 347:return"type";case 267:return"enum";case 261:return getKindOfVariableDeclaration(e);case 209:return getKindOfVariableDeclaration(getRootDeclaration(e));case 220:case 263:case 219:return"function";case 178:return"getter";case 179:return"setter";case 175:case 174:return"method";case 304:const{initializer:t}=e;return isFunctionLike(t)?"method":"property";case 173:case 172:case 305:case 306:return"property";case 182:return"index";case 181:return"construct";case 180:return"call";case 177:case 176:return"constructor";case 169:return"type parameter";case 307:return"enum member";case 170:return hasSyntacticModifier(e,31)?"property":"parameter";case 272:case 277:case 282:case 275:case 281:return"alias";case 227:const n=getAssignmentDeclarationKind(e),{right:r}=e;switch(n){case 7:case 8:case 9:case 0:default:return"";case 1:case 2:const e=getNodeKind(r);return""===e?"const":e;case 3:case 5:return isFunctionExpression(r)?"method":"property";case 4:return"property";case 6:return"local class"}case 80:return isImportClause(e.parent)?"alias":"";case 278:const i=getNodeKind(e.expression);return""===i?"const":i;default:return""}function getKindOfVariableDeclaration(e){return isVarConst(e)?"const":isLet(e)?"let":"var"}}function isThis(e){switch(e.kind){case 110:return!0;case 80:return identifierIsThisKeyword(e)&&170===e.parent.kind;default:return!1}}var Hs=/^\/\/\/\s*=n}function rangeOverlapsWithStartEnd(e,t,n){return startEndOverlapsWithStartEnd(e.pos,e.end,t,n)}function nodeOverlapsWithStartEnd(e,t,n,r){return startEndOverlapsWithStartEnd(e.getStart(t),e.end,n,r)}function startEndOverlapsWithStartEnd(e,t,n,r){return Math.max(e,n)e.kind===t)}function findContainingList(e){const t=find(e.parent.getChildren(),t=>isSyntaxList(t)&&rangeContainsRange(t,e));return h.assert(!t||contains(t.getChildren(),e)),t}function isDefaultModifier2(e){return 90===e.kind}function isClassKeyword(e){return 86===e.kind}function isFunctionKeyword(e){return 100===e.kind}function getContextualTypeFromParentOrAncestorTypeNode(e,t){if(16777216&e.flags)return;const n=getContextualTypeFromParent(e,t);if(n)return n;const r=function getAncestorTypeNode(e){let t;return findAncestor(e,e=>(isTypeNode(e)&&(t=e),!isQualifiedName(e.parent)&&!isTypeNode(e.parent)&&!isTypeElement(e.parent))),t}(e);return r&&t.getTypeAtLocation(r)}function getAdjustedLocationForDeclaration(e,t){if(!t)switch(e.kind){case 264:case 232:return function getAdjustedLocationForClass(e){if(isNamedDeclaration(e))return e.name;if(isClassDeclaration(e)){const t=e.modifiers&&find(e.modifiers,isDefaultModifier2);if(t)return t}if(isClassExpression(e)){const t=find(e.getChildren(),isClassKeyword);if(t)return t}}(e);case 263:case 219:return function getAdjustedLocationForFunction(e){if(isNamedDeclaration(e))return e.name;if(isFunctionDeclaration(e)){const t=find(e.modifiers,isDefaultModifier2);if(t)return t}if(isFunctionExpression(e)){const t=find(e.getChildren(),isFunctionKeyword);if(t)return t}}(e);case 177:return e}if(isNamedDeclaration(e))return e.name}function getAdjustedLocationForImportDeclaration(e,t){if(e.importClause){if(e.importClause.name&&e.importClause.namedBindings)return;if(e.importClause.name)return e.importClause.name;if(e.importClause.namedBindings){if(isNamedImports(e.importClause.namedBindings)){const t=singleOrUndefined(e.importClause.namedBindings.elements);if(!t)return;return t.name}if(isNamespaceImport(e.importClause.namedBindings))return e.importClause.namedBindings.name}}if(!t)return e.moduleSpecifier}function getAdjustedLocationForExportDeclaration(e,t){if(e.exportClause){if(isNamedExports(e.exportClause)){if(!singleOrUndefined(e.exportClause.elements))return;return e.exportClause.elements[0].name}if(isNamespaceExport(e.exportClause))return e.exportClause.name}if(!t)return e.moduleSpecifier}function getAdjustedLocation(e,t){const{parent:n}=e;if(isModifier(e)&&(t||90!==e.kind)?canHaveModifiers(n)&&contains(n.modifiers,e):86===e.kind?isClassDeclaration(n)||isClassExpression(e):100===e.kind?isFunctionDeclaration(n)||isFunctionExpression(e):120===e.kind?isInterfaceDeclaration(n):94===e.kind?isEnumDeclaration(n):156===e.kind?isTypeAliasDeclaration(n):145===e.kind||144===e.kind?isModuleDeclaration(n):102===e.kind?isImportEqualsDeclaration(n):139===e.kind?isGetAccessorDeclaration(n):153===e.kind&&isSetAccessorDeclaration(n)){const e=getAdjustedLocationForDeclaration(n,t);if(e)return e}if((115===e.kind||87===e.kind||121===e.kind)&&isVariableDeclarationList(n)&&1===n.declarations.length){const e=n.declarations[0];if(isIdentifier(e.name))return e.name}if(156===e.kind){if(isImportClause(n)&&n.isTypeOnly){const e=getAdjustedLocationForImportDeclaration(n.parent,t);if(e)return e}if(isExportDeclaration(n)&&n.isTypeOnly){const e=getAdjustedLocationForExportDeclaration(n,t);if(e)return e}}if(130===e.kind){if(isImportSpecifier(n)&&n.propertyName||isExportSpecifier(n)&&n.propertyName||isNamespaceImport(n)||isNamespaceExport(n))return n.name;if(isExportDeclaration(n)&&n.exportClause&&isNamespaceExport(n.exportClause))return n.exportClause.name}if(102===e.kind&&isImportDeclaration(n)){const e=getAdjustedLocationForImportDeclaration(n,t);if(e)return e}if(95===e.kind){if(isExportDeclaration(n)){const e=getAdjustedLocationForExportDeclaration(n,t);if(e)return e}if(isExportAssignment(n))return skipOuterExpressions(n.expression)}if(149===e.kind&&isExternalModuleReference(n))return n.expression;if(161===e.kind&&(isImportDeclaration(n)||isExportDeclaration(n))&&n.moduleSpecifier)return n.moduleSpecifier;if((96===e.kind||119===e.kind)&&isHeritageClause(n)&&n.token===e.kind){const e=function getAdjustedLocationForHeritageClause(e){if(1===e.types.length)return e.types[0].expression}(n);if(e)return e}if(96===e.kind){if(isTypeParameterDeclaration(n)&&n.constraint&&isTypeReferenceNode(n.constraint))return n.constraint.typeName;if(isConditionalTypeNode(n)&&isTypeReferenceNode(n.extendsType))return n.extendsType.typeName}if(140===e.kind&&isInferTypeNode(n))return n.typeParameter.name;if(103===e.kind&&isTypeParameterDeclaration(n)&&isMappedTypeNode(n.parent))return n.name;if(143===e.kind&&isTypeOperatorNode(n)&&143===n.operator&&isTypeReferenceNode(n.type))return n.type.typeName;if(148===e.kind&&isTypeOperatorNode(n)&&148===n.operator&&isArrayTypeNode(n.type)&&isTypeReferenceNode(n.type.elementType))return n.type.elementType.typeName;if(!t){if((105===e.kind&&isNewExpression(n)||116===e.kind&&isVoidExpression(n)||114===e.kind&&isTypeOfExpression(n)||135===e.kind&&isAwaitExpression(n)||127===e.kind&&isYieldExpression(n)||91===e.kind&&isDeleteExpression(n))&&n.expression)return skipOuterExpressions(n.expression);if((103===e.kind||104===e.kind)&&isBinaryExpression(n)&&n.operatorToken===e)return skipOuterExpressions(n.right);if(130===e.kind&&isAsExpression(n)&&isTypeReferenceNode(n.type))return n.type.typeName;if(103===e.kind&&isForInStatement(n)||165===e.kind&&isForOfStatement(n))return skipOuterExpressions(n.expression)}return e}function getAdjustedReferenceLocation(e){return getAdjustedLocation(e,!1)}function getAdjustedRenameLocation(e){return getAdjustedLocation(e,!0)}function getTouchingPropertyName(e,t){return getTouchingToken(e,t,e=>isPropertyNameLiteral(e)||isKeyword(e.kind)||isPrivateIdentifier(e))}function getTouchingToken(e,t,n){return getTokenAtPositionWorker(e,t,!1,n,!1)}function getTokenAtPosition(e,t){return getTokenAtPositionWorker(e,t,!0,void 0,!1)}function getTokenAtPositionWorker(e,t,n,r,i){let o,a=e;for(;;){const i=a.getChildren(e),s=binarySearchKey(i,t,(e,t)=>t,(o,a)=>{const s=i[o].getEnd();if(st?1:nodeContainsPosition(i[o],c,s)?i[o-1]&&nodeContainsPosition(i[o-1])?1:0:r&&c===t&&i[o-1]&&i[o-1].getEnd()===t&&nodeContainsPosition(i[o-1])?1:-1});if(o)return o;if(!(s>=0&&i[s]))return a;a=i[s]}function nodeContainsPosition(a,s,c){if(c??(c=a.getEnd()),ct)return!1;if(tn.getStart(e)&&t(t.pos<=e.pos&&t.end>e.end||t.pos===e.end)&&nodeHasTokens(t,n)?find2(t):void 0)}(t)}function findPrecedingToken(e,t,n,r){const i=function find2(i){if(isNonWhitespaceToken(i)&&1!==i.kind)return i;const o=i.getChildren(t),a=binarySearchKey(o,e,(e,t)=>t,(t,n)=>e=o[t-1].end?0:1:-1);if(a>=0&&o[a]){const n=o[a];if(e=e||!nodeHasTokens(n,t)||isWhiteSpaceOnlyJsxText(n)){const e=findRightmostChildNodeWithTokens(o,a,t,i.kind);return e?!r&&isJSDocCommentContainingNode(e)&&e.getChildren(t).length?find2(e):findRightmostToken(e,t):void 0}return find2(n)}}h.assert(void 0!==n||308===i.kind||1===i.kind||isJSDocCommentContainingNode(i));const s=findRightmostChildNodeWithTokens(o,o.length,t,i.kind);return s&&findRightmostToken(s,t)}(n||t);return h.assert(!(i&&isWhiteSpaceOnlyJsxText(i))),i}function isNonWhitespaceToken(e){return isToken(e)&&!isWhiteSpaceOnlyJsxText(e)}function findRightmostToken(e,t){if(isNonWhitespaceToken(e))return e;const n=e.getChildren(t);if(0===n.length)return e;const r=findRightmostChildNodeWithTokens(n,n.length,t,e.kind);return r&&findRightmostToken(r,t)}function findRightmostChildNodeWithTokens(e,t,n,r){for(let i=t-1;i>=0;i--){if(isWhiteSpaceOnlyJsxText(e[i]))0!==i||12!==r&&286!==r||h.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");else if(nodeHasTokens(e[i],n))return e[i]}}function isInString(e,t,n=findPrecedingToken(t,e)){if(n&&isStringTextContainingNode(n)){const r=n.getStart(e),i=n.getEnd();if(rn.getStart(e)}function isInJSXText(e,t){const n=getTokenAtPosition(e,t);return!!isJsxText(n)||(!(19!==n.kind||!isJsxExpression(n.parent)||!isJsxElement(n.parent.parent))||!(30!==n.kind||!isJsxOpeningLikeElement(n.parent)||!isJsxElement(n.parent.parent)))}function isInsideJsxElement(e,t){return function isInsideJsxElementTraversal(n){for(;n;)if(n.kind>=286&&n.kind<=295||12===n.kind||30===n.kind||32===n.kind||80===n.kind||20===n.kind||19===n.kind||44===n.kind||31===n.kind)n=n.parent;else{if(285!==n.kind)return!1;if(t>n.getStart(e))return!0;n=n.parent}return!1}(getTokenAtPosition(e,t))}function findPrecedingMatchingToken(e,t,n){const r=tokenToString(e.kind),i=tokenToString(t),o=e.getFullStart(),a=n.text.lastIndexOf(i,o);if(-1===a)return;if(n.text.lastIndexOf(r,o-1)!!e.typeParameters&&e.typeParameters.length>=t)}function getPossibleTypeArgumentsInfo(e,t){if(-1===t.text.lastIndexOf("<",e?e.pos:t.text.length))return;let n=e,r=0,i=0;for(;n;){switch(n.kind){case 30:if(n=findPrecedingToken(n.getFullStart(),t),n&&29===n.kind&&(n=findPrecedingToken(n.getFullStart(),t)),!n||!isIdentifier(n))return;if(!r)return isDeclarationName(n)?void 0:{called:n,nTypeArguments:i};r--;break;case 50:r=3;break;case 49:r=2;break;case 32:r++;break;case 20:if(n=findPrecedingMatchingToken(n,19,t),!n)return;break;case 22:if(n=findPrecedingMatchingToken(n,21,t),!n)return;break;case 24:if(n=findPrecedingMatchingToken(n,23,t),!n)return;break;case 28:i++;break;case 39:case 80:case 11:case 9:case 10:case 112:case 97:case 114:case 96:case 143:case 25:case 52:case 58:case 59:break;default:if(isTypeNode(n))break;return}n=findPrecedingToken(n.getFullStart(),t)}}function isInComment(e,t,n){return r_.getRangeOfEnclosingComment(e,t,void 0,n)}function hasDocComment(e,t){return!!findAncestor(getTokenAtPosition(e,t),isJSDoc)}function nodeHasTokens(e,t){return 1===e.kind?!!e.jsDoc:0!==e.getWidth(t)}function getNodeModifiers(e,t=0){const n=[],r=isDeclaration(e)?getCombinedNodeFlagsAlwaysIncludeJSDoc(e)&~t:0;return 2&r&&n.push("private"),4&r&&n.push("protected"),1&r&&n.push("public"),(256&r||isClassStaticBlockDeclaration(e))&&n.push("static"),64&r&&n.push("abstract"),32&r&&n.push("export"),65536&r&&n.push("deprecated"),33554432&e.flags&&n.push("declare"),278===e.kind&&n.push("export"),n.length>0?n.join(","):""}function getTypeArgumentOrTypeParameterList(e){return 184===e.kind||214===e.kind?e.typeArguments:isFunctionLike(e)||264===e.kind||265===e.kind?e.typeParameters:void 0}function isComment(e){return 2===e||3===e}function isStringOrRegularExpressionOrTemplateLiteral(e){return!(11!==e&&14!==e&&!isTemplateLiteralKind(e))}function areIntersectedTypesAvoidingStringReduction(e,t,n){return!!(4&t.flags)&&e.isEmptyAnonymousObjectType(n)}function isStringAndEmptyAnonymousObjectIntersection(e){if(!e.isIntersection())return!1;const{types:t,checker:n}=e;return 2===t.length&&(areIntersectedTypesAvoidingStringReduction(n,t[0],t[1])||areIntersectedTypesAvoidingStringReduction(n,t[1],t[0]))}function isInsideTemplateLiteral(e,t,n){return isTemplateLiteralKind(e.kind)&&e.getStart(n){const n=getNodeId(t);return!e[n]&&(e[n]=!0)}}function getSnapshotText(e){return e.getText(0,e.getLength())}function repeatString(e,t){let n="";for(let r=0;r!(t.isDeclarationFile||e.isSourceFileFromExternalLibrary(t)||!t.externalModuleIndicator&&!t.commonJsModuleIndicator))}function programContainsEsModules(e){return e.getSourceFiles().some(t=>!t.isDeclarationFile&&!e.isSourceFileFromExternalLibrary(t)&&!!t.externalModuleIndicator)}function compilerOptionsIndicateEsModules(e){return!!e.module||zn(e)>=2||!!e.noEmit}function createModuleSpecifierResolutionHost(e,t){return{fileExists:t=>e.fileExists(t),getCurrentDirectory:()=>t.getCurrentDirectory(),readFile:maybeBind(t,t.readFile),useCaseSensitiveFileNames:maybeBind(t,t.useCaseSensitiveFileNames)||e.useCaseSensitiveFileNames,getSymlinkCache:maybeBind(t,t.getSymlinkCache)||e.getSymlinkCache,getModuleSpecifierCache:maybeBind(t,t.getModuleSpecifierCache),getPackageJsonInfoCache:()=>{var t;return null==(t=e.getModuleResolutionCache())?void 0:t.getPackageJsonInfoCache()},getGlobalTypingsCacheLocation:maybeBind(t,t.getGlobalTypingsCacheLocation),redirectTargetsMap:e.redirectTargetsMap,getRedirectFromSourceFile:t=>e.getRedirectFromSourceFile(t),isSourceOfProjectReferenceRedirect:t=>e.isSourceOfProjectReferenceRedirect(t),getNearestAncestorDirectoryWithPackageJson:maybeBind(t,t.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:()=>e.getFileIncludeReasons(),getCommonSourceDirectory:()=>e.getCommonSourceDirectory(),getDefaultResolutionModeForFile:t=>e.getDefaultResolutionModeForFile(t),getModeForResolutionAtIndex:(t,n)=>e.getModeForResolutionAtIndex(t,n)}}function getModuleSpecifierResolverHost(e,t){return{...createModuleSpecifierResolutionHost(e,t),getCommonSourceDirectory:()=>e.getCommonSourceDirectory()}}function moduleResolutionUsesNodeModules(e){return 2===e||e>=3&&e<=99||100===e}function makeImport(e,t,n,r,i){return Wr.createImportDeclaration(void 0,e||t?Wr.createImportClause(i?156:void 0,e,t&&t.length?Wr.createNamedImports(t):void 0):void 0,"string"==typeof n?makeStringLiteral(n,r):n,void 0)}function makeStringLiteral(e,t){return Wr.createStringLiteral(e,0===t)}var Gs=(e=>(e[e.Single=0]="Single",e[e.Double=1]="Double",e))(Gs||{});function quotePreferenceFromString(e,t){return isStringDoubleQuoted(e,t)?1:0}function getQuotePreference(e,t){if(t.quotePreference&&"auto"!==t.quotePreference)return"single"===t.quotePreference?0:1;{const t=isFullSourceFile(e)&&e.imports&&find(e.imports,e=>isStringLiteral(e)&&!nodeIsSynthesized(e.parent));return t?quotePreferenceFromString(t,e):1}}function getQuoteFromPreference(e){switch(e){case 0:return"'";case 1:return'"';default:return h.assertNever(e)}}function symbolNameNoDefault(e){const t=symbolEscapedNameNoDefault(e);return void 0===t?void 0:unescapeLeadingUnderscores(t)}function symbolEscapedNameNoDefault(e){return"default"!==e.escapedName?e.escapedName:firstDefined(e.declarations,e=>{const t=getNameOfDeclaration(e);return t&&80===t.kind?t.escapedText:void 0})}function isModuleSpecifierLike(e){return isStringLiteralLike(e)&&(isExternalModuleReference(e.parent)||isImportDeclaration(e.parent)||isJSDocImportTag(e.parent)||isRequireCall(e.parent,!1)&&e.parent.arguments[0]===e||isImportCall(e.parent)&&e.parent.arguments[0]===e)}function isObjectBindingElementWithoutPropertyName(e){return isBindingElement(e)&&isObjectBindingPattern(e.parent)&&isIdentifier(e.name)&&!e.propertyName}function getPropertySymbolFromBindingElement(e,t){const n=e.getTypeAtLocation(t.parent);return n&&e.getPropertyOfType(n,t.name.text)}function getParentNodeInSpan(e,t,n){if(e)for(;e.parent;){if(isSourceFile(e.parent)||!spanContainsNode(n,e.parent,t))return e;e=e.parent}}function spanContainsNode(e,t,n){return textSpanContainsPosition(e,t.getStart(n))&&t.getEnd()<=textSpanEnd(e)}function findModifier(e,t){return canHaveModifiers(e)?find(e.modifiers,e=>e.kind===t):void 0}function insertImports(e,t,n,r,i){var o;const a=244===(isArray(n)?n[0]:n).kind?isRequireVariableStatement:isAnyImportSyntax,s=filter(t.statements,a),{comparer:c,isSorted:l}=Bm.getOrganizeImportsStringComparerWithDetection(s,i),d=isArray(n)?toSorted(n,(e,t)=>Bm.compareImportsOrRequireStatements(e,t,c)):[n];if(null==s?void 0:s.length)if(h.assert(isFullSourceFile(t)),s&&l)for(const n of d){const r=Bm.getImportDeclarationInsertionIndex(s,n,c);if(0===r){const r=s[0]===t.statements[0]?{leadingTriviaOption:$m.LeadingTriviaOption.Exclude}:{};e.insertNodeBefore(t,s[0],n,!1,r)}else{const i=s[r-1];e.insertNodeAfter(t,i,n)}}else{const n=lastOrUndefined(s);n?e.insertNodesAfter(t,n,d):e.insertNodesAtTopOfFile(t,d,r)}else if(isFullSourceFile(t))e.insertNodesAtTopOfFile(t,d,r);else for(const n of d)e.insertStatementsInNewFile(t.fileName,[n],null==(o=getOriginalNode(n))?void 0:o.getSourceFile())}function getTypeKeywordOfTypeOnlyImport(e,t){return h.assert(e.isTypeOnly),cast(e.getChildAt(0,t),isTypeKeywordToken)}function textSpansEqual(e,t){return!!e&&!!t&&e.start===t.start&&e.length===t.length}function documentSpansEqual(e,t,n){return(n?equateStringsCaseSensitive:equateStringsCaseInsensitive)(e.fileName,t.fileName)&&textSpansEqual(e.textSpan,t.textSpan)}function getDocumentSpansEqualityComparer(e){return(t,n)=>documentSpansEqual(t,n,e)}function forEachUnique(e,t){if(e)for(let n=0;n!!isParameter(e)||!(isBindingElement(e)||isObjectBindingPattern(e)||isArrayBindingPattern(e))&&"quit")}var $s=new Map;function getDisplayPartWriter(e){return e=e||cn,$s.has(e)||$s.set(e,function getDisplayPartWriterWorker(e){const t=10*e;let n,r,i,o;resetWriter();const unknownWrite=e=>writeKind(e,17);return{displayParts:()=>{const e=n.length&&n[n.length-1].text;return o>t&&e&&"..."!==e&&(isWhiteSpaceLike(e.charCodeAt(e.length-1))||n.push(displayPart(" ",16)),n.push(displayPart("...",15))),n},writeKeyword:e=>writeKind(e,5),writeOperator:e=>writeKind(e,12),writePunctuation:e=>writeKind(e,15),writeTrailingSemicolon:e=>writeKind(e,15),writeSpace:e=>writeKind(e,16),writeStringLiteral:e=>writeKind(e,8),writeParameter:e=>writeKind(e,13),writeProperty:e=>writeKind(e,14),writeLiteral:e=>writeKind(e,8),writeSymbol,writeLine,write:unknownWrite,writeComment:unknownWrite,getText:()=>"",getTextPos:()=>0,getColumn:()=>0,getLine:()=>0,isAtStartOfLine:()=>!1,hasTrailingWhitespace:()=>!1,hasTrailingComment:()=>!1,rawWrite:notImplemented,getIndent:()=>i,increaseIndent:()=>{i++},decreaseIndent:()=>{i--},clear:resetWriter};function writeIndent(){if(!(o>t)&&r){const e=getIndentString(i);e&&(o+=e.length,n.push(displayPart(e,16))),r=!1}}function writeKind(e,r){o>t||(writeIndent(),o+=e.length,n.push(displayPart(e,r)))}function writeSymbol(e,r){o>t||(writeIndent(),o+=e.length,n.push(function symbolPart(e,t){return displayPart(e,displayPartKind(t));function displayPartKind(e){const t=e.flags;return 3&t?isFirstDeclarationOfSymbolParameter(e)?13:9:4&t||32768&t||65536&t?14:8&t?19:16&t?20:32&t?1:64&t?4:384&t?2:1536&t?11:8192&t?10:262144&t?18:524288&t||2097152&t?0:17}}(e,r)))}function writeLine(){o>t||(o+=1,n.push(lineBreakPart()),r=!0)}function resetWriter(){n=[],r=!0,i=0,o=0}}(e)),$s.get(e)}function displayPart(e,t){return{text:e,kind:ws[t]}}function spacePart(){return displayPart(" ",16)}function keywordPart(e){return displayPart(tokenToString(e),5)}function punctuationPart(e){return displayPart(tokenToString(e),15)}function operatorPart(e){return displayPart(tokenToString(e),12)}function parameterNamePart(e){return displayPart(e,13)}function propertyNamePart(e){return displayPart(e,14)}function textOrKeywordPart(e){const t=stringToToken(e);return void 0===t?textPart(e):keywordPart(t)}function textPart(e){return displayPart(e,17)}function typeAliasNamePart(e){return displayPart(e,0)}function typeParameterNamePart(e){return displayPart(e,18)}function linkTextPart(e){return displayPart(e,24)}function linkPart(e){return displayPart(e,22)}function buildLinkParts(e,t){var n;const r=[linkPart(`{@${isJSDocLink(e)?"link":isJSDocLinkCode(e)?"linkcode":"linkplain"} `)];if(e.name){const i=null==t?void 0:t.getSymbolAtLocation(e.name),o=i&&t?getSymbolTarget(i,t):void 0,a=function findLinkNameEnd(e){let t=e.indexOf("://");if(0===t){for(;t"===e[n]&&t--,n++,!t)return n}return 0}(e.text),s=getTextOfNode(e.name)+e.text.slice(0,a),c=function skipSeparatorFromLinkText(e){let t=0;if(124===e.charCodeAt(t++)){for(;t{e.writeType(t,n,17408|r,s,i,o,a)},i)}function symbolToDisplayParts(e,t,n,r,i=0){return mapToDisplayParts(o=>{e.writeSymbol(t,n,r,8|i,o)})}function signatureToDisplayParts(e,t,n,r=0,i,o,a){return r|=25632,mapToDisplayParts(s=>{e.writeSignature(t,n,r,void 0,s,i,o,a)},i)}function isImportOrExportSpecifierName(e){return!!e.parent&&isImportOrExportSpecifier(e.parent)&&e.parent.propertyName===e}function getScriptKind(e,t){return ensureScriptKind(e,t.getScriptKind&&t.getScriptKind(e))}function getSymbolTarget(e,t){let n=e;for(;isAliasSymbol(n)||isTransientSymbol(n)&&n.links.target;)n=isTransientSymbol(n)&&n.links.target?n.links.target:skipAlias(n,t);return n}function isAliasSymbol(e){return!!(2097152&e.flags)}function getUniqueSymbolId(e,t){return getSymbolId(skipAlias(e,t))}function getFirstNonSpaceCharacterPosition(e,t){for(;isWhiteSpaceLike(e.charCodeAt(t));)t+=1;return t}function getPrecedingNonSpaceCharacterPosition(e,t){for(;t>-1&&isWhiteSpaceSingleLine(e.charCodeAt(t));)t-=1;return t+1}function copyComments(e,t){const n=e.getSourceFile();!function hasLeadingLineBreak(e,t){const n=e.getFullStart(),r=e.getStart();for(let e=n;e=0),o}function copyLeadingComments(e,t,n,r,i){forEachLeadingCommentRange(n.text,e.pos,getAddCommentsFunction(t,n,r,i,addSyntheticLeadingComment))}function copyTrailingComments(e,t,n,r,i){forEachTrailingCommentRange(n.text,e.end,getAddCommentsFunction(t,n,r,i,addSyntheticTrailingComment))}function copyTrailingAsLeadingComments(e,t,n,r,i){forEachTrailingCommentRange(n.text,e.pos,getAddCommentsFunction(t,n,r,i,addSyntheticLeadingComment))}function getAddCommentsFunction(e,t,n,r,i){return(o,a,s,c)=>{3===s?(o+=2,a-=2):o+=2,i(e,n||s,t.text.slice(o,a),void 0!==r?r:c)}}function indexInTextChange(e,t){if(startsWith(e,t))return 0;let n=e.indexOf(" "+t);return-1===n&&(n=e.indexOf("."+t)),-1===n&&(n=e.indexOf('"'+t)),-1===n?-1:n+1}function needsParentheses(e){return isBinaryExpression(e)&&28===e.operatorToken.kind||isObjectLiteralExpression(e)||(isAsExpression(e)||isSatisfiesExpression(e))&&isObjectLiteralExpression(e.expression)}function getContextualTypeFromParent(e,t,n){const r=walkUpParenthesizedExpressions(e.parent);switch(r.kind){case 215:return t.getContextualType(r,n);case 227:{const{left:i,operatorToken:o,right:a}=r;return isEqualityOperatorKind(o.kind)?t.getTypeAtLocation(e===a?i:a):t.getContextualType(e,n)}case 297:return getSwitchedType(r,t);default:return t.getContextualType(e,n)}}function quote(e,t,n){const r=getQuotePreference(e,t),i=JSON.stringify(n);return 0===r?`'${stripQuotes(i).replace(/'/g,()=>"\\'").replace(/\\"/g,'"')}'`:i}function isEqualityOperatorKind(e){switch(e){case 37:case 35:case 38:case 36:return!0;default:return!1}}function isStringLiteralOrTemplate(e){switch(e.kind){case 11:case 15:case 229:case 216:return!0;default:return!1}}function hasIndexSignature(e){return!!e.getStringIndexType()||!!e.getNumberIndexType()}function getSwitchedType(e,t){return t.getTypeAtLocation(e.parent.parent.expression)}var Xs="anonymous function";function getTypeNodeIfAccessible(e,t,n,r){const i=n.getTypeChecker();let o=!0;const notAccessible=()=>o=!1,a=i.typeToTypeNode(e,t,1,8,{trackSymbol:(e,t,n)=>(o=o&&0===i.isSymbolAccessible(e,t,n,!1).accessibility,!o),reportInaccessibleThisError:notAccessible,reportPrivateInBaseOfClassExpression:notAccessible,reportInaccessibleUniqueSymbolError:notAccessible,moduleResolverHost:getModuleSpecifierResolverHost(n,r)});return o?a:void 0}function syntaxRequiresTrailingCommaOrSemicolonOrASI(e){return 180===e||181===e||182===e||172===e||174===e}function syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(e){return 263===e||177===e||175===e||178===e||179===e}function syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(e){return 268===e}function syntaxRequiresTrailingSemicolonOrASI(e){return 244===e||245===e||247===e||252===e||253===e||254===e||258===e||260===e||173===e||266===e||273===e||272===e||279===e||271===e||278===e}var Ys=or(syntaxRequiresTrailingCommaOrSemicolonOrASI,syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI,syntaxRequiresTrailingModuleBlockOrSemicolonOrASI,syntaxRequiresTrailingSemicolonOrASI);function positionIsASICandidate(e,t,n){const r=findAncestor(t,t=>t.end!==e?"quit":Ys(t.kind));return!!r&&function nodeIsASICandidate(e,t){const n=e.getLastToken(t);if(n&&27===n.kind)return!1;if(syntaxRequiresTrailingCommaOrSemicolonOrASI(e.kind)){if(n&&28===n.kind)return!1}else if(syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(e.kind)){const n=last(e.getChildren(t));if(n&&isModuleBlock(n))return!1}else if(syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(e.kind)){const n=last(e.getChildren(t));if(n&&isFunctionBlock(n))return!1}else if(!syntaxRequiresTrailingSemicolonOrASI(e.kind))return!1;if(247===e.kind)return!0;const r=findNextToken(e,findAncestor(e,e=>!e.parent),t);return!r||20===r.kind||t.getLineAndCharacterOfPosition(e.getEnd()).line!==t.getLineAndCharacterOfPosition(r.getStart(t)).line}(r,n)}function probablyUsesSemicolons(e){let t=0,n=0;return forEachChild(e,function visit(r){if(syntaxRequiresTrailingSemicolonOrASI(r.kind)){const i=r.getLastToken(e);27===(null==i?void 0:i.kind)?t++:n++}else if(syntaxRequiresTrailingCommaOrSemicolonOrASI(r.kind)){const i=r.getLastToken(e);if(27===(null==i?void 0:i.kind))t++;else if(i&&28!==i.kind){getLineAndCharacterOfPosition(e,i.getStart(e)).line!==getLineAndCharacterOfPosition(e,getSpanOfTokenAtPosition(e,i.end).start).line&&n++}}return t+n>=5||forEachChild(r,visit)}),0===t&&n<=1||t/n>.2}function tryGetDirectories(e,t){return tryIOAndConsumeErrors(e,e.getDirectories,t)||[]}function tryReadDirectory(e,t,n,r,i){return tryIOAndConsumeErrors(e,e.readDirectory,t,n,r,i)||l}function tryFileExists(e,t){return tryIOAndConsumeErrors(e,e.fileExists,t)}function tryDirectoryExists(e,t){return tryAndIgnoreErrors(()=>directoryProbablyExists(t,e))||!1}function tryAndIgnoreErrors(e){try{return e()}catch{return}}function tryIOAndConsumeErrors(e,t,...n){return tryAndIgnoreErrors(()=>t&&t.apply(e,n))}function findPackageJsons(e,t){const n=[];return forEachAncestorDirectoryStoppingAtGlobalCache(t,e,e=>{const r=combinePaths(e,"package.json");tryFileExists(t,r)&&n.push(r)}),n}function findPackageJson(e,t){let n;return forEachAncestorDirectoryStoppingAtGlobalCache(t,e,e=>"node_modules"===e||(n=findConfigFile(e,e=>tryFileExists(t,e),"package.json"),!!n||void 0)),n}function createPackageJsonInfo(e,t){if(!t.readFile)return;const n=["dependencies","devDependencies","optionalDependencies","peerDependencies"],r=tryParseJson(t.readFile(e)||""),i={};if(r)for(const e of n){const t=r[e];if(!t)continue;const n=new Map;for(const e in t)n.set(e,t[e]);i[e]=n}const o=[[1,i.dependencies],[2,i.devDependencies],[8,i.optionalDependencies],[4,i.peerDependencies]];return{...i,parseable:!!r,fileName:e,get,has:(e,t)=>!!get(e,t)};function get(e,t=15){for(const[n,r]of o)if(r&&t&n){const t=r.get(e);if(void 0!==t)return t}}}function createPackageJsonImportFilter(e,t,n){const r=(n.getPackageJsonsVisibleToFile&&n.getPackageJsonsVisibleToFile(e.fileName)||function getPackageJsonsVisibleToFile(e,t){if(!t.fileExists)return[];const n=[];return forEachAncestorDirectoryStoppingAtGlobalCache(t,getDirectoryPath(e),e=>{const r=combinePaths(e,"package.json");if(t.fileExists(r)){const e=createPackageJsonInfo(r,t);e&&n.push(e)}}),n}(e.fileName,n)).filter(e=>e.parseable);let i,o,a;return{allowsImportingAmbientModule:function allowsImportingAmbientModule(e,t){if(!r.length||!e.valueDeclaration)return!0;if(o){const t=o.get(e);if(void 0!==t)return t}else o=new Map;const n=stripQuotes(e.getName());if(isAllowedCoreNodeModulesImport(n))return o.set(e,!0),!0;const i=getNodeModulesPackageNameFromFileName(e.valueDeclaration.getSourceFile().fileName,t);if(void 0===i)return o.set(e,!0),!0;const a=moduleSpecifierIsCoveredByPackageJson(i)||moduleSpecifierIsCoveredByPackageJson(n);return o.set(e,a),a},getSourceFileInfo:function getSourceFileInfo(e,t){if(!r.length)return{importable:!0,packageName:void 0};if(a){const t=a.get(e);if(void 0!==t)return t}else a=new Map;const n=getNodeModulesPackageNameFromFileName(e.fileName,t);if(!n){const t={importable:!0,packageName:n};return a.set(e,t),t}const i={importable:moduleSpecifierIsCoveredByPackageJson(n),packageName:n};return a.set(e,i),i},allowsImportingSpecifier:function allowsImportingSpecifier(e){if(!r.length||isAllowedCoreNodeModulesImport(e))return!0;if(pathIsRelative(e)||isRootedDiskPath(e))return!0;return moduleSpecifierIsCoveredByPackageJson(e)}};function moduleSpecifierIsCoveredByPackageJson(e){const t=getNodeModuleRootSpecifier(e);for(const e of r)if(e.has(t)||e.has(getTypesPackageName(t)))return!0;return!1}function isAllowedCoreNodeModulesImport(t){return!!(isFullSourceFile(e)&&isSourceFileJS(e)&&Ir.has(t)&&(void 0===i&&(i=consumesNodeCoreModules(e)),i))}function getNodeModulesPackageNameFromFileName(r,i){if(!r.includes("node_modules"))return;const o=Wo.getNodeModulesPackageName(n.getCompilationSettings(),e,r,i,t);return o?pathIsRelative(o)||isRootedDiskPath(o)?void 0:getNodeModuleRootSpecifier(o):void 0}function getNodeModuleRootSpecifier(e){const t=getPathComponents(getPackageNameFromTypesPackageName(e)).slice(1);return startsWith(t[0],"@")?`${t[0]}/${t[1]}`:t[0]}}function consumesNodeCoreModules(e){return some(e.imports,({text:e})=>Ir.has(e))}function isInsideNodeModules(e){return contains(getPathComponents(e),"node_modules")}function isDiagnosticWithLocation(e){return void 0!==e.file&&void 0!==e.start&&void 0!==e.length}function findDiagnosticForNode(e,t){const n=binarySearchKey(t,createTextSpanFromNode(e),identity,compareTextSpans);if(n>=0){const r=t[n];return h.assertEqual(r.file,e.getSourceFile(),"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"),cast(r,isDiagnosticWithLocation)}}function getDiagnosticsWithinSpan(e,t){var n;let r=binarySearchKey(t,e.start,e=>e.start,compareValues);for(r<0&&(r=~r);(null==(n=t[r-1])?void 0:n.start)===e.start;)r--;const i=[],o=textSpanEnd(e);for(;;){const n=tryCast(t[r],isDiagnosticWithLocation);if(!n||n.start>o)break;textSpanContainsTextSpan(e,n)&&i.push(n),r++}return i}function getRefactorContextSpan({startPosition:e,endPosition:t}){return createTextSpanFromBounds(e,void 0===t?e:t)}function getFixableErrorSpanExpression(e,t){return findAncestor(getTokenAtPosition(e,t.start),n=>n.getStart(e)textSpanEnd(t)?"quit":isExpression(n)&&textSpansEqual(t,createTextSpanFromNode(n,e)))}function mapOneOrMany(e,t,n=identity){return e?isArray(e)?n(map(e,t)):t(e,0):void 0}function firstOrOnly(e){return isArray(e)?first(e):e}function getNameForExportedSymbol(e,t,n){return"export="===e.escapedName||"default"===e.escapedName?getDefaultLikeExportNameFromDeclaration(e)||moduleSymbolToValidIdentifier(function getSymbolParentOrFail(e){var t;return h.checkDefined(e.parent,`Symbol parent was undefined. Flags: ${h.formatSymbolFlags(e.flags)}. Declarations: ${null==(t=e.declarations)?void 0:t.map(e=>{const t=h.formatSyntaxKind(e.kind),n=isInJSFile(e),{expression:r}=e;return(n?"[JS]":"")+t+(r?` (expression: ${h.formatSyntaxKind(r.kind)})`:"")}).join(", ")}.`)}(e),t,!!n):e.name}function getDefaultLikeExportNameFromDeclaration(e){return firstDefined(e.declarations,t=>{var n,r,i;if(isExportAssignment(t))return null==(n=tryCast(skipOuterExpressions(t.expression),isIdentifier))?void 0:n.text;if(isExportSpecifier(t)&&2097152===t.symbol.flags)return null==(r=tryCast(t.propertyName,isIdentifier))?void 0:r.text;const o=null==(i=tryCast(getNameOfDeclaration(t),isIdentifier))?void 0:i.text;return o||(e.parent&&!isExternalModuleSymbol(e.parent)?e.parent.getName():void 0)})}function moduleSymbolToValidIdentifier(e,t,n){return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(e.name)),t,n)}function moduleSpecifierToValidIdentifier(e,t,n){const r=getBaseFileName(removeSuffix(removeFileExtension(e),"/index"));let i="",o=!0;const a=r.charCodeAt(0);isIdentifierStart(a,t)?(i+=String.fromCharCode(a),n&&(i=i.toUpperCase())):o=!1;for(let e=1;ee.length)return!1;for(let i=0;i(e[e.Named=0]="Named",e[e.Default=1]="Default",e[e.Namespace=2]="Namespace",e[e.CommonJS=3]="CommonJS",e))(Zs||{}),ec=(e=>(e[e.Named=0]="Named",e[e.Default=1]="Default",e[e.ExportEquals=2]="ExportEquals",e[e.UMD=3]="UMD",e[e.Module=4]="Module",e))(ec||{});function createCacheableExportInfoMap(e){let t=1;const n=createMultiMap(),r=new Map,i=new Map;let o;const a={isUsableByFile:e=>e===o,isEmpty:()=>!n.size,clear:()=>{n.clear(),r.clear(),o=void 0},add:(e,s,c,l,d,p,u,m)=>{let _;if(e!==o&&(a.clear(),o=e),d){const t=getNodeModulePathParts(d.fileName);if(t){const{topLevelNodeModulesIndex:n,topLevelPackageNameIndex:r,packageRootIndex:o}=t;if(_=unmangleScopedPackageName(getPackageNameFromTypesPackageName(d.fileName.substring(r+1,o))),startsWith(e,d.path.substring(0,n))){const e=i.get(_),t=d.fileName.substring(0,r+1);if(e){n>e.indexOf(Mo)&&i.set(_,t)}else i.set(_,t)}}}const f=1===p&&getLocalSymbolForExportDefault(s)||s,g=0===p||isExternalModuleSymbol(f)?unescapeLeadingUnderscores(c):function getNamesForExportedSymbol(e,t,n){let r;return forEachNameOfDefaultExport(e,t,n,(e,t)=>(r=t?[e,t]:e,!0)),h.checkDefined(r)}(f,m,void 0),y="string"==typeof g?g:g[0],T="string"==typeof g?void 0:g[1],S=stripQuotes(l.name),x=t++,v=skipAlias(s,m),b=33554432&s.flags?void 0:s,C=33554432&l.flags?void 0:l;b&&C||r.set(x,[s,l]),n.add(function key(e,t,n,r){const i=n||"";return`${e.length} ${getSymbolId(skipAlias(t,r))} ${e} ${i}`}(y,s,isExternalModuleNameRelative(S)?void 0:S,m),{id:x,symbolTableKey:c,symbolName:y,capitalizedSymbolName:T,moduleName:S,moduleFile:d,moduleFileName:null==d?void 0:d.fileName,packageName:_,exportKind:p,targetFlags:v.flags,isFromPackageJson:u,symbol:b,moduleSymbol:C})},get:(e,t)=>{if(e!==o)return;const r=n.get(t);return null==r?void 0:r.map(rehydrateCachedInfo)},search:(t,r,a,s)=>{if(t===o)return forEachEntry(n,(t,n)=>{const{symbolName:o,ambientModuleName:c}=function parseKey(e){const t=e.indexOf(" "),n=e.indexOf(" ",t+1),r=parseInt(e.substring(0,t),10),i=e.substring(n+1),o=i.substring(0,r),a=i.substring(r+1),s=""===a?void 0:a;return{symbolName:o,ambientModuleName:s}}(n),l=r&&t[0].capitalizedSymbolName||o;if(a(l,t[0].targetFlags)){const r=t.map(rehydrateCachedInfo).filter((n,r)=>function isNotShadowedByDeeperNodeModulesPackage(t,n){if(!n||!t.moduleFileName)return!0;const r=e.getGlobalTypingsCacheLocation();if(r&&startsWith(t.moduleFileName,r))return!0;const o=i.get(n);return!o||startsWith(t.moduleFileName,o)}(n,t[r].packageName));if(r.length){const e=s(r,l,!!c,n);if(void 0!==e)return e}}})},releaseSymbols:()=>{r.clear()},onFileChanged:(e,t,n)=>(!fileIsGlobalOnly(e)||!fileIsGlobalOnly(t))&&(o&&o!==t.path||n&&consumesNodeCoreModules(e)!==consumesNodeCoreModules(t)||!arrayIsEqualTo(e.moduleAugmentations,t.moduleAugmentations)||!function ambientModuleDeclarationsAreEqual(e,t){if(!arrayIsEqualTo(e.ambientModuleNames,t.ambientModuleNames))return!1;let n=-1,r=-1;for(const i of t.ambientModuleNames){const isMatchingModuleDeclaration=e=>isNonGlobalAmbientModule(e)&&e.name.text===i;if(n=findIndex(e.statements,isMatchingModuleDeclaration,n+1),r=findIndex(t.statements,isMatchingModuleDeclaration,r+1),e.statements[n]!==t.statements[r])return!1}return!0}(e,t)?(a.clear(),!0):(o=t.path,!1))};return h.isDebugging&&Object.defineProperty(a,"__cache",{value:n}),a;function rehydrateCachedInfo(t){if(t.symbol&&t.moduleSymbol)return t;const{id:n,exportKind:i,targetFlags:o,isFromPackageJson:a,moduleFileName:s}=t,[c,d]=r.get(n)||l;if(c&&d)return{symbol:c,moduleSymbol:d,moduleFileName:s,exportKind:i,targetFlags:o,isFromPackageJson:a};const p=(a?e.getPackageJsonAutoImportProvider():e.getCurrentProgram()).getTypeChecker(),u=t.moduleSymbol||d||h.checkDefined(t.moduleFile?p.getMergedSymbol(t.moduleFile.symbol):p.tryFindAmbientModule(t.moduleName)),m=t.symbol||c||h.checkDefined(2===i?p.resolveExternalModuleSymbol(u):p.tryGetMemberInModuleExportsAndProperties(unescapeLeadingUnderscores(t.symbolTableKey),u),`Could not find symbol '${t.symbolName}' by key '${t.symbolTableKey}' in module ${u.name}`);return r.set(n,[m,u]),{symbol:m,moduleSymbol:u,moduleFileName:s,exportKind:i,targetFlags:o,isFromPackageJson:a}}function fileIsGlobalOnly(e){return!(e.commonJsModuleIndicator||e.externalModuleIndicator||e.moduleAugmentations||e.ambientModuleNames)}}function isImportable(e,t,n,r,i,o,a,s){var c;if(!n){let n;const i=stripQuotes(r.name);return Ir.has(i)&&void 0!==(n=shouldUseUriStyleNodeCoreModules(t,e))?n===startsWith(i,"node:"):!o||o.allowsImportingAmbientModule(r,a)||fileContainsPackageImport(t,i)}if(h.assertIsDefined(n),t===n)return!1;const l=null==s?void 0:s.get(t.path,n.path,i,{});if(void 0!==(null==l?void 0:l.isBlockedByPackageJsonDependencies))return!l.isBlockedByPackageJsonDependencies||!!l.packageName&&fileContainsPackageImport(t,l.packageName);const d=hostGetCanonicalFileName(a),p=null==(c=a.getGlobalTypingsCacheLocation)?void 0:c.call(a),u=!!Wo.forEachFileNameOfModule(t.fileName,n.fileName,a,!1,r=>{const i=e.getSourceFile(r);return(i===n||!i)&&function isImportablePath(e,t,n,r,i){const o=forEachAncestorDirectoryStoppingAtGlobalCache(i,t,e=>"node_modules"===getBaseFileName(e)?e:void 0),a=o&&getDirectoryPath(n(o));return void 0===a||startsWith(n(e),a)||!!r&&startsWith(n(r),a)}(t.fileName,r,d,p,a)});if(o){const e=u?o.getSourceFileInfo(n,a):void 0;return null==s||s.setBlockedByPackageJsonDependencies(t.path,n.path,i,{},null==e?void 0:e.packageName,!(null==e?void 0:e.importable)),!!(null==e?void 0:e.importable)||u&&!!(null==e?void 0:e.packageName)&&fileContainsPackageImport(t,e.packageName)}return u}function fileContainsPackageImport(e,t){return e.imports&&e.imports.some(e=>e.text===t||e.text.startsWith(t+"/"))}function forEachExternalModuleToImportFrom(e,t,n,r,i){var o,a;const s=hostUsesCaseSensitiveFileNames(t),c=n.autoImportFileExcludePatterns&&getIsExcludedPatterns(n,s);forEachExternalModule(e.getTypeChecker(),e.getSourceFiles(),c,t,(t,n)=>i(t,n,e,!1));const l=r&&(null==(o=t.getPackageJsonAutoImportProvider)?void 0:o.call(t));if(l){const n=B(),r=e.getTypeChecker();forEachExternalModule(l.getTypeChecker(),l.getSourceFiles(),c,t,(t,n)=>{(n&&!e.getSourceFile(n.fileName)||!n&&!r.resolveName(t.name,void 0,1536,!1))&&i(t,n,l,!0)}),null==(a=t.log)||a.call(t,"forEachExternalModuleToImportFrom autoImportProvider: "+(B()-n))}}function getIsExcludedPatterns(e,t){return mapDefined(e.autoImportFileExcludePatterns,e=>{const n=getSubPatternFromSpec(e,"","exclude");return n?getRegexFromPattern(n,t):void 0})}function forEachExternalModule(e,t,n,r,i){var o;const a=n&&getIsExcluded(n,r);for(const t of e.getAmbientModules())t.name.includes("*")||n&&(null==(o=t.declarations)?void 0:o.every(e=>a(e.getSourceFile())))||i(t,void 0);for(const n of t)isExternalOrCommonJsModule(n)&&!(null==a?void 0:a(n))&&i(e.getMergedSymbol(n.symbol),n)}function getIsExcluded(e,t){var n;const r=null==(n=t.getSymlinkCache)?void 0:n.call(t).getSymlinkedDirectoriesByRealpath();return({fileName:n,path:i})=>{if(e.some(e=>e.test(n)))return!0;if((null==r?void 0:r.size)&&pathContainsNodeModules(n)){let o=getDirectoryPath(n);return forEachAncestorDirectoryStoppingAtGlobalCache(t,getDirectoryPath(i),t=>{const i=r.get(ensureTrailingDirectorySeparator(t));if(i)return i.some(t=>e.some(e=>e.test(n.replace(o,t))));o=getDirectoryPath(o)})??!1}return!1}}function getIsFileExcluded(e,t){return t.autoImportFileExcludePatterns?getIsExcluded(getIsExcludedPatterns(t,hostUsesCaseSensitiveFileNames(e)),e):()=>!1}function getExportInfoMap(e,t,n,r,i){var o,a,s,c,l;const d=B();null==(o=t.getPackageJsonAutoImportProvider)||o.call(t);const p=(null==(a=t.getCachedExportInfoMap)?void 0:a.call(t))||createCacheableExportInfoMap({getCurrentProgram:()=>n,getPackageJsonAutoImportProvider:()=>{var e;return null==(e=t.getPackageJsonAutoImportProvider)?void 0:e.call(t)},getGlobalTypingsCacheLocation:()=>{var e;return null==(e=t.getGlobalTypingsCacheLocation)?void 0:e.call(t)}});if(p.isUsableByFile(e.path))return null==(s=t.log)||s.call(t,"getExportInfoMap: cache hit"),p;null==(c=t.log)||c.call(t,"getExportInfoMap: cache miss or empty; calculating new results");let u=0;try{forEachExternalModuleToImportFrom(n,t,r,!0,(t,n,r,o)=>{++u%100==0&&(null==i||i.throwIfCancellationRequested());const a=new Set,s=r.getTypeChecker(),c=getDefaultLikeExportInfo(t,s);c&&isImportableSymbol(c.symbol,s)&&p.add(e.path,c.symbol,1===c.exportKind?"default":"export=",t,n,c.exportKind,o,s),s.forEachExportAndPropertyOfModule(t,(r,i)=>{r!==(null==c?void 0:c.symbol)&&isImportableSymbol(r,s)&&addToSeen(a,i)&&p.add(e.path,r,i,t,n,0,o,s)})})}catch(e){throw p.clear(),e}return null==(l=t.log)||l.call(t,`getExportInfoMap: done in ${B()-d} ms`),p}function getDefaultLikeExportInfo(e,t){const n=t.resolveExternalModuleSymbol(e);if(n!==e){const e=t.tryGetMemberInModuleExports("default",n);return e?{symbol:e,exportKind:1}:{symbol:n,exportKind:2}}const r=t.tryGetMemberInModuleExports("default",e);if(r)return{symbol:r,exportKind:1}}function isImportableSymbol(e,t){return!(t.isUndefinedSymbol(e)||t.isUnknownSymbol(e)||isKnownSymbol(e)||isPrivateIdentifierSymbol(e))}function forEachNameOfDefaultExport(e,t,n,r){let i,o=e;const a=new Set;for(;o;){const e=getDefaultLikeExportNameFromDeclaration(o);if(e){const t=r(e);if(t)return t}if("default"!==o.escapedName&&"export="!==o.escapedName){const e=r(o.name);if(e)return e}if(i=append(i,o),!addToSeen(a,o))break;o=2097152&o.flags?t.getImmediateAliasedSymbol(o):void 0}for(const e of i??l)if(e.parent&&isExternalModuleSymbol(e.parent)){const t=r(moduleSymbolToValidIdentifier(e.parent,n,!1),moduleSymbolToValidIdentifier(e.parent,n,!0));if(t)return t}}function createClassifier(){const e=createScanner(99,!1);function getEncodedLexicalClassifications(t,n,r){let i=0,o=0;const a=[],{prefix:s,pushTemplate:c}=function getPrefixFromLexState(e){switch(e){case 3:return{prefix:'"\\\n'};case 2:return{prefix:"'\\\n"};case 1:return{prefix:"/*\n"};case 4:return{prefix:"`\n"};case 5:return{prefix:"}\n",pushTemplate:!0};case 6:return{prefix:"",pushTemplate:!0};case 0:return{prefix:""};default:return h.assertNever(e)}}(n);t=s+t;const l=s.length;c&&a.push(16),e.setText(t);let d=0;const p=[];let u=0;do{i=e.scan(),isTrivia(i)||(handleToken(),o=i);const n=e.getTokenEnd();if(pushEncodedClassification(e.getTokenStart(),n,l,classFromKind(i),p),n>=t.length){const t=getNewEndOfLineState(e,i,lastOrUndefined(a));void 0!==t&&(d=t)}}while(1!==i);function handleToken(){switch(i){case 44:case 69:nc[o]||14!==e.reScanSlashToken()||(i=14);break;case 30:80===o&&u++;break;case 32:u>0&&u--;break;case 133:case 154:case 150:case 136:case 155:u>0&&!r&&(i=80);break;case 16:a.push(i);break;case 19:a.length>0&&a.push(i);break;case 20:if(a.length>0){const t=lastOrUndefined(a);16===t?(i=e.reScanTemplateToken(!1),18===i?a.pop():h.assertEqual(i,17,"Should have been a template middle.")):(h.assertEqual(t,19,"Should have been an open brace"),a.pop())}break;default:if(!isKeyword(i))break;(25===o||isKeyword(o)&&isKeyword(i)&&!function canFollow(e,t){if(!isAccessibilityModifier(e))return!0;switch(t){case 139:case 153:case 137:case 126:case 129:return!0;default:return!1}}(o,i))&&(i=80)}}return{endOfLineState:d,spans:p}}return{getClassificationsForLine:function getClassificationsForLine(e,t,n){return function convertClassificationsToResult(e,t){const n=[],r=e.spans;let i=0;for(let e=0;e=0){const e=t-i;e>0&&n.push({length:e,classification:4})}n.push({length:o,classification:convertClassification(a)}),i=t+o}const o=t.length-i;o>0&&n.push({length:o,classification:4});return{entries:n,finalLexState:e.endOfLineState}}(getEncodedLexicalClassifications(e,t,n),e)},getEncodedLexicalClassifications}}var tc,nc=arrayToNumericMap([80,11,9,10,14,110,46,47,22,24,20,112,97],e=>e,()=>!0);function getNewEndOfLineState(e,t,n){switch(t){case 11:{if(!e.isUnterminated())return;const t=e.getTokenText(),n=t.length-1;let r=0;for(;92===t.charCodeAt(n-r);)r++;if(!(1&r))return;return 34===t.charCodeAt(0)?3:2}case 3:return e.isUnterminated()?1:void 0;default:if(isTemplateLiteralKind(t)){if(!e.isUnterminated())return;switch(t){case 18:return 5;case 15:return 4;default:return h.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #"+t)}}return 16===n?6:void 0}}function pushEncodedClassification(e,t,n,r,i){if(8===r)return;0===e&&n>0&&(e+=n);const o=t-e;o>0&&i.push(e-n,o,r)}function convertClassification(e){switch(e){case 1:return 3;case 3:return 1;case 4:return 6;case 25:return 7;case 5:return 2;case 6:return 8;case 8:return 4;case 10:return 0;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return 5;default:return}}function classFromKind(e){if(isKeyword(e))return 3;if(function isBinaryExpressionOperatorToken(e){switch(e){case 42:case 44:case 45:case 40:case 41:case 48:case 49:case 50:case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:case 35:case 36:case 37:case 38:case 51:case 53:case 52:case 56:case 57:case 75:case 74:case 79:case 71:case 72:case 73:case 65:case 66:case 67:case 69:case 70:case 64:case 28:case 61:case 76:case 77:case 78:return!0;default:return!1}}(e)||function isPrefixUnaryExpressionOperatorToken(e){switch(e){case 40:case 41:case 55:case 54:case 46:case 47:return!0;default:return!1}}(e))return 5;if(e>=19&&e<=79)return 10;switch(e){case 9:return 4;case 10:return 25;case 11:return 6;case 14:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;default:return isTemplateLiteralKind(e)?6:2}}function getSemanticClassifications(e,t,n,r,i){return convertClassificationsToSpans(getEncodedSemanticClassifications(e,t,n,r,i))}function checkForClassificationCancellation(e,t){switch(t){case 268:case 264:case 265:case 263:case 232:case 219:case 220:e.throwIfCancellationRequested()}}function getEncodedSemanticClassifications(e,t,n,r,i){const o=[];return n.forEachChild(function cb(a){if(a&&textSpanIntersectsWith(i,a.pos,a.getFullWidth())){if(checkForClassificationCancellation(t,a.kind),isIdentifier(a)&&!nodeIsMissing(a)&&r.has(a.escapedText)){const t=e.getSymbolAtLocation(a),r=t&&classifySymbol(t,getMeaningFromLocation(a),e);r&&function pushClassification(e,t,n){const r=t-e;h.assert(r>0,`Classification had non-positive length of ${r}`),o.push(e),o.push(r),o.push(n)}(a.getStart(n),a.getEnd(),r)}a.forEachChild(cb)}}),{spans:o,endOfLineState:0}}function classifySymbol(e,t,n){const r=e.getFlags();return 2885600&r?32&r?11:384&r?12:524288&r?16:1536&r?4&t||1&t&&function hasValueSideModule(e){return some(e.declarations,e=>isModuleDeclaration(e)&&1===getModuleInstanceState(e))}(e)?14:void 0:2097152&r?classifySymbol(n.getAliasedSymbol(e),t,n):2&t?64&r?13:262144&r?15:void 0:void 0:void 0}function getClassificationTypeName(e){switch(e){case 1:return"comment";case 2:return"identifier";case 3:return"keyword";case 4:return"number";case 25:return"bigint";case 5:return"operator";case 6:return"string";case 8:return"whitespace";case 9:return"text";case 10:return"punctuation";case 11:return"class name";case 12:return"enum name";case 13:return"interface name";case 14:return"module name";case 15:return"type parameter name";case 16:return"type alias name";case 17:return"parameter name";case 18:return"doc comment tag name";case 19:return"jsx open tag name";case 20:return"jsx close tag name";case 21:return"jsx self closing tag name";case 22:return"jsx attribute";case 23:return"jsx text";case 24:return"jsx attribute string literal value";default:return}}function convertClassificationsToSpans(e){h.assert(e.spans.length%3==0);const t=e.spans,n=[];for(let e=0;e])*)(\/>)?)?/m,i=/(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/g,o=t.text.substr(e,n),a=r.exec(o);if(!a)return!1;if(!a[3]||!(a[3]in gt))return!1;let s=e;pushCommentRange(s,a[1].length),s+=a[1].length,pushClassification(s,a[2].length,10),s+=a[2].length,pushClassification(s,a[3].length,21),s+=a[3].length;const c=a[4];let l=s;for(;;){const e=i.exec(c);if(!e)break;const t=s+e.index+e[1].length;t>l&&(pushCommentRange(l,t-l),l=t),pushClassification(l,e[2].length,22),l+=e[2].length,e[3].length&&(pushCommentRange(l,e[3].length),l+=e[3].length),pushClassification(l,e[4].length,5),l+=e[4].length,e[5].length&&(pushCommentRange(l,e[5].length),l+=e[5].length),pushClassification(l,e[6].length,24),l+=e[6].length}s+=a[4].length,s>l&&pushCommentRange(l,s-l);a[5]&&(pushClassification(s,a[5].length,10),s+=a[5].length);const d=e+n;s=0),i>0){const t=n||classifyTokenType(e.kind,e);t&&pushClassification(r,i,t)}return!0}function classifyTokenType(e,t){if(isKeyword(e))return 3;if((30===e||32===e)&&t&&getTypeArgumentOrTypeParameterList(t.parent))return 10;if(isPunctuation(e)){if(t){const n=t.parent;if(64===e&&(261===n.kind||173===n.kind||170===n.kind||292===n.kind))return 5;if(227===n.kind||225===n.kind||226===n.kind||228===n.kind)return 5}return 10}if(9===e)return 4;if(10===e)return 25;if(11===e)return t&&292===t.parent.kind?24:6;if(14===e)return 6;if(isTemplateLiteralKind(e))return 6;if(12===e)return 23;if(80===e){if(t){switch(t.parent.kind){case 264:return t.parent.name===t?11:void 0;case 169:return t.parent.name===t?15:void 0;case 265:return t.parent.name===t?13:void 0;case 267:return t.parent.name===t?12:void 0;case 268:return t.parent.name===t?14:void 0;case 170:return t.parent.name===t?isThisIdentifier(t)?3:17:void 0}if(isConstTypeReference(t.parent))return 3}return 2}}function processElement(n){if(n&&decodedTextSpanIntersectsWith(r,i,n.pos,n.getFullWidth())){checkForClassificationCancellation(e,n.kind);for(const e of n.getChildren(t))tryClassifyNode(e)||processElement(e)}}}function isDocumentRegistryEntry(e){return!!e.sourceFile}function createDocumentRegistry(e,t,n){return createDocumentRegistryInternal(e,t,n)}function createDocumentRegistryInternal(e,t="",n,r){const i=new Map,o=createGetCanonicalFileName(!!e);function getCompilationSettings(e){return"function"==typeof e.getCompilationSettings?e.getCompilationSettings():e}function acquireDocumentWithKey(e,t,n,r,i,o,a,s){return acquireOrUpdateDocument(e,t,n,r,i,o,!0,a,s)}function updateDocumentWithKey(e,t,n,r,i,o,a,s){return acquireOrUpdateDocument(e,t,getCompilationSettings(n),r,i,o,!1,a,s)}function getDocumentRegistryEntry(e,t){const n=isDocumentRegistryEntry(e)?e:e.get(h.checkDefined(t,"If there are more than one scriptKind's for same document the scriptKind should be provided"));return h.assert(void 0===t||!n||n.sourceFile.scriptKind===t,`Script kind should match provided ScriptKind:${t} and sourceFile.scriptKind: ${null==n?void 0:n.sourceFile.scriptKind}, !entry: ${!n}`),n}function acquireOrUpdateDocument(e,t,o,a,s,c,l,d,p){var u,m,_,f;d=ensureScriptKind(e,d);const g=getCompilationSettings(o),y=o===g?void 0:o,T=6===d?100:zn(g),S="object"==typeof p?p:{languageVersion:T,impliedNodeFormat:y&&getImpliedNodeFormatForFile(t,null==(f=null==(_=null==(m=null==(u=y.getCompilerHost)?void 0:u.call(y))?void 0:m.getModuleResolutionCache)?void 0:_.call(m))?void 0:f.getPackageJsonInfoCache(),y,g),setExternalModuleIndicator:getSetExternalModuleIndicator(g),jsDocParsingMode:n};S.languageVersion=T,h.assertEqual(n,S.jsDocParsingMode);const x=i.size,v=getDocumentRegistryBucketKeyWithMode(a,S.impliedNodeFormat),b=getOrUpdate(i,v,()=>new Map);if(J){i.size>x&&J.instant(J.Phase.Session,"createdDocumentRegistryBucket",{configFilePath:g.configFilePath,key:v});const e=!isDeclarationFileName(t)&&forEachEntry(i,(e,n)=>n!==v&&e.has(t)&&n);e&&J.instant(J.Phase.Session,"documentRegistryBucketOverlap",{path:t,key1:e,key2:v})}const C=b.get(t);let E=C&&getDocumentRegistryEntry(C,d);if(!E&&r){const e=r.getDocument(v,t);e&&e.scriptKind===d&&e.text===getSnapshotText(s)&&(h.assert(l),E={sourceFile:e,languageServiceRefCount:0},setBucketEntry())}if(E)E.sourceFile.version!==c&&(E.sourceFile=updateLanguageServiceSourceFile(E.sourceFile,s,c,s.getChangeRange(E.sourceFile.scriptSnapshot)),r&&r.setDocument(v,t,E.sourceFile)),l&&E.languageServiceRefCount++;else{const n=createLanguageServiceSourceFile(e,s,S,c,!1,d);r&&r.setDocument(v,t,n),E={sourceFile:n,languageServiceRefCount:1},setBucketEntry()}return h.assert(0!==E.languageServiceRefCount),E.sourceFile;function setBucketEntry(){if(C)if(isDocumentRegistryEntry(C)){const e=new Map;e.set(C.sourceFile.scriptKind,C),e.set(d,E),b.set(t,e)}else C.set(d,E);else b.set(t,E)}}function releaseDocumentWithKey(e,t,n,r){const o=h.checkDefined(i.get(getDocumentRegistryBucketKeyWithMode(t,r))),a=o.get(e),s=getDocumentRegistryEntry(a,n);s.languageServiceRefCount--,h.assert(s.languageServiceRefCount>=0),0===s.languageServiceRefCount&&(isDocumentRegistryEntry(a)?o.delete(e):(a.delete(n),1===a.size&&o.set(e,firstDefinedIterator(a.values(),identity))))}return{acquireDocument:function acquireDocument(e,n,r,i,a,s){return acquireDocumentWithKey(e,toPath(e,t,o),n,getKeyForCompilationSettings(getCompilationSettings(n)),r,i,a,s)},acquireDocumentWithKey,updateDocument:function updateDocument(e,n,r,i,a,s){return updateDocumentWithKey(e,toPath(e,t,o),n,getKeyForCompilationSettings(getCompilationSettings(n)),r,i,a,s)},updateDocumentWithKey,releaseDocument:function releaseDocument(e,n,r,i){return releaseDocumentWithKey(toPath(e,t,o),getKeyForCompilationSettings(n),r,i)},releaseDocumentWithKey,getKeyForCompilationSettings,getDocumentRegistryBucketKeyWithMode,reportStats:function reportStats(){const e=arrayFrom(i.keys()).filter(e=>e&&"_"===e.charAt(0)).map(e=>{const t=i.get(e),n=[];return t.forEach((e,t)=>{isDocumentRegistryEntry(e)?n.push({name:t,scriptKind:e.sourceFile.scriptKind,refCount:e.languageServiceRefCount}):e.forEach((e,r)=>n.push({name:t,scriptKind:r,refCount:e.languageServiceRefCount}))}),n.sort((e,t)=>t.refCount-e.refCount),{bucket:e,sourceFiles:n}});return JSON.stringify(e,void 0,2)},getBuckets:()=>i}}function getKeyForCompilationSettings(e){return getKeyForCompilerOptions(e,to)}function getDocumentRegistryBucketKeyWithMode(e,t){return t?`${e}|${t}`:e}function getEditsForFileRename(e,t,n,r,i,o,a){const s=hostUsesCaseSensitiveFileNames(r),c=createGetCanonicalFileName(s),l=getPathUpdater(t,n,c,a),d=getPathUpdater(n,t,c,a);return $m.ChangeTracker.with({host:r,formatContext:i,preferences:o},i=>{!function updateTsconfigFiles(e,t,n,r,i,o,a){const{configFile:s}=e.getCompilerOptions();if(!s)return;const c=getDirectoryPath(s.fileName),l=getTsConfigObjectLiteralExpression(s);if(!l)return;function updatePaths(e){const t=isArrayLiteralExpression(e.initializer)?e.initializer.elements:[e.initializer];let n=!1;for(const e of t)n=tryUpdateString(e)||n;return n}function tryUpdateString(e){if(!isStringLiteral(e))return!1;const r=combinePathsSafe(c,e.text),i=n(r);return void 0!==i&&(t.replaceRangeWithText(s,createStringRange(e,s),relativePath(i)),!0)}function relativePath(e){return getRelativePathFromDirectory(c,e,!a)}forEachProperty(l,(e,n)=>{switch(n){case"files":case"include":case"exclude":{if(updatePaths(e)||"include"!==n||!isArrayLiteralExpression(e.initializer))return;const l=mapDefined(e.initializer.elements,e=>isStringLiteral(e)?e.text:void 0);if(0===l.length)return;const d=getFileMatcherPatterns(c,[],l,a,o);return void(getRegexFromPattern(h.checkDefined(d.includeFilePattern),a).test(r)&&!getRegexFromPattern(h.checkDefined(d.includeFilePattern),a).test(i)&&t.insertNodeAfter(s,last(e.initializer.elements),Wr.createStringLiteral(relativePath(i))))}case"compilerOptions":return void forEachProperty(e.initializer,(e,t)=>{const n=getOptionFromName(t);h.assert("listOrElement"!==(null==n?void 0:n.type)),n&&(n.isFilePath||"list"===n.type&&n.element.isFilePath)?updatePaths(e):"paths"===t&&forEachProperty(e.initializer,e=>{if(isArrayLiteralExpression(e.initializer))for(const t of e.initializer.elements)tryUpdateString(t)})})}})}(e,i,l,t,n,r.getCurrentDirectory(),s),function updateImports(e,t,n,r,i,o){const a=e.getSourceFiles();for(const s of a){const c=n(s.fileName),l=c??s.fileName,d=getDirectoryPath(l),p=r(s.fileName),u=p||s.fileName,m=getDirectoryPath(u),_=void 0!==c||void 0!==p;updateImportsWorker(s,t,e=>{if(!pathIsRelative(e))return;const t=combinePathsSafe(m,e),r=n(t);return void 0===r?void 0:ensurePathIsNonModuleName(getRelativePathFromDirectory(d,r,o))},t=>{const r=e.getTypeChecker().getSymbolAtLocation(t);if((null==r?void 0:r.declarations)&&r.declarations.some(e=>isAmbientModule(e)))return;const o=void 0!==p?getSourceFileToImportFromResolved(t,resolveModuleName(t.text,u,e.getCompilerOptions(),i),n,a):getSourceFileToImport(r,t,s,e,i,n);return void 0!==o&&(o.updated||_&&pathIsRelative(t.text))?Wo.updateModuleSpecifier(e.getCompilerOptions(),s,l,o.newFileName,createModuleSpecifierResolutionHost(e,i),t.text):void 0})}}(e,i,l,d,r,c)})}function getPathUpdater(e,t,n,r){const i=n(e);return e=>{const o=r&&r.tryGetSourcePosition({fileName:e,pos:0}),a=function getUpdatedPath(e){if(n(e)===i)return t;const r=tryRemoveDirectoryPrefix(e,i,n);return void 0===r?void 0:t+"/"+r}(o?o.fileName:e);return o?void 0===a?void 0:function makeCorrespondingRelativeChange(e,t,n,r){const i=getRelativePathFromFile(e,t,r);return combinePathsSafe(getDirectoryPath(n),i)}(o.fileName,a,e,n):a}}function combinePathsSafe(e,t){return ensurePathIsNonModuleName(function combineNormal(e,t){return normalizePath(combinePaths(e,t))}(e,t))}function getSourceFileToImport(e,t,n,r,i,o){if(e){const t=find(e.declarations,isSourceFile).fileName,n=o(t);return void 0===n?{newFileName:t,updated:!1}:{newFileName:n,updated:!0}}{const e=r.getModeForUsageLocation(n,t);return getSourceFileToImportFromResolved(t,i.resolveModuleNameLiterals||!i.resolveModuleNames?r.getResolvedModuleFromModuleSpecifier(t,n):i.getResolvedModuleWithFailedLookupLocationsFromCache&&i.getResolvedModuleWithFailedLookupLocationsFromCache(t.text,n.fileName,e),o,r.getSourceFiles())}}function getSourceFileToImportFromResolved(e,t,n,r){if(!t)return;if(t.resolvedModule){const e=tryChange(t.resolvedModule.resolvedFileName);if(e)return e}const i=forEach(t.failedLookupLocations,function tryChangeWithIgnoringPackageJsonExisting(e){const t=n(e);return t&&find(r,e=>e.fileName===t)?tryChangeWithIgnoringPackageJson(e):void 0})||pathIsRelative(e.text)&&forEach(t.failedLookupLocations,tryChangeWithIgnoringPackageJson);return i||t.resolvedModule&&{newFileName:t.resolvedModule.resolvedFileName,updated:!1};function tryChangeWithIgnoringPackageJson(e){return endsWith(e,"/package.json")?void 0:tryChange(e)}function tryChange(e){const t=n(e);return t&&{newFileName:t,updated:!0}}}function updateImportsWorker(e,t,n,r){for(const r of e.referencedFiles||l){const i=n(r.fileName);void 0!==i&&i!==e.text.slice(r.pos,r.end)&&t.replaceRangeWithText(e,r,i)}for(const n of e.imports){const i=r(n);void 0!==i&&i!==n.text&&t.replaceRangeWithText(e,createStringRange(n,e),i)}}function createStringRange(e,t){return createRange(e.getStart(t)+1,e.end-1)}function forEachProperty(e,t){if(isObjectLiteralExpression(e))for(const n of e.properties)isPropertyAssignment(n)&&isStringLiteral(n.name)&&t(n,n.name.text)}(e=>{function getHighlightSpanForNode(e,t){return{fileName:t.fileName,textSpan:createTextSpanFromNode(e,t),kind:"none"}}function aggregateOwnedThrowStatements(e){return isThrowStatement(e)?[e]:isTryStatement(e)?concatenate(e.catchClause?aggregateOwnedThrowStatements(e.catchClause):e.tryBlock&&aggregateOwnedThrowStatements(e.tryBlock),e.finallyBlock&&aggregateOwnedThrowStatements(e.finallyBlock)):isFunctionLike(e)?void 0:flatMapChildren(e,aggregateOwnedThrowStatements)}function aggregateAllBreakAndContinueStatements(e){return isBreakOrContinueStatement(e)?[e]:isFunctionLike(e)?void 0:flatMapChildren(e,aggregateAllBreakAndContinueStatements)}function flatMapChildren(e,t){const n=[];return e.forEachChild(e=>{const r=t(e);void 0!==r&&n.push(...toArray(r))}),n}function ownsBreakOrContinueStatement(e,t){const n=getBreakOrContinueOwner(t);return!!n&&n===e}function getBreakOrContinueOwner(e){return findAncestor(e,t=>{switch(t.kind){case 256:if(252===e.kind)return!1;case 249:case 250:case 251:case 248:case 247:return!e.label||function isLabeledBy(e,t){return!!findAncestor(e.parent,e=>isLabeledStatement(e)?e.label.escapedText===t:"quit")}(t,e.label.escapedText);default:return isFunctionLike(t)&&"quit"}})}function pushKeywordIf(e,t,...n){return!(!t||!contains(n,t.kind))&&(e.push(t),!0)}function getLoopBreakContinueOccurrences(e){const t=[];if(pushKeywordIf(t,e.getFirstToken(),99,117,92)&&247===e.kind){const n=e.getChildren();for(let e=n.length-1;e>=0&&!pushKeywordIf(t,n[e],117);e--);}return forEach(aggregateAllBreakAndContinueStatements(e.statement),n=>{ownsBreakOrContinueStatement(e,n)&&pushKeywordIf(t,n.getFirstToken(),83,88)}),t}function getBreakOrContinueStatementOccurrences(e){const t=getBreakOrContinueOwner(e);if(t)switch(t.kind){case 249:case 250:case 251:case 247:case 248:return getLoopBreakContinueOccurrences(t);case 256:return getSwitchCaseDefaultOccurrences(t)}}function getSwitchCaseDefaultOccurrences(e){const t=[];return pushKeywordIf(t,e.getFirstToken(),109),forEach(e.caseBlock.clauses,n=>{pushKeywordIf(t,n.getFirstToken(),84,90),forEach(aggregateAllBreakAndContinueStatements(n),n=>{ownsBreakOrContinueStatement(e,n)&&pushKeywordIf(t,n.getFirstToken(),83)})}),t}function getTryCatchFinallyOccurrences(e,t){const n=[];if(pushKeywordIf(n,e.getFirstToken(),113),e.catchClause&&pushKeywordIf(n,e.catchClause.getFirstToken(),85),e.finallyBlock){pushKeywordIf(n,findChildOfKind(e,98,t),98)}return n}function getThrowOccurrences(e,t){const n=function getThrowStatementOwner(e){let t=e;for(;t.parent;){const e=t.parent;if(isFunctionBlock(e)||308===e.kind)return e;if(isTryStatement(e)&&e.tryBlock===t&&e.catchClause)return t;t=e}}(e);if(!n)return;const r=[];return forEach(aggregateOwnedThrowStatements(n),e=>{r.push(findChildOfKind(e,111,t))}),isFunctionBlock(n)&&forEachReturnStatement(n,e=>{r.push(findChildOfKind(e,107,t))}),r}function getReturnOccurrences(e,t){const n=getContainingFunction(e);if(!n)return;const r=[];return forEachReturnStatement(cast(n.body,isBlock),e=>{r.push(findChildOfKind(e,107,t))}),forEach(aggregateOwnedThrowStatements(n.body),e=>{r.push(findChildOfKind(e,111,t))}),r}function getAsyncAndAwaitOccurrences(e){const t=getContainingFunction(e);if(!t)return;const n=[];return t.modifiers&&t.modifiers.forEach(e=>{pushKeywordIf(n,e,134)}),forEachChild(t,e=>{traverseWithoutCrossingFunction(e,e=>{isAwaitExpression(e)&&pushKeywordIf(n,e.getFirstToken(),135)})}),n}function traverseWithoutCrossingFunction(e,t){t(e),isFunctionLike(e)||isClassLike(e)||isInterfaceDeclaration(e)||isModuleDeclaration(e)||isTypeAliasDeclaration(e)||isTypeNode(e)||forEachChild(e,e=>traverseWithoutCrossingFunction(e,t))}e.getDocumentHighlights=function getDocumentHighlights(e,t,n,r,i){const o=getTouchingPropertyName(n,r);if(o.parent&&(isJsxOpeningElement(o.parent)&&o.parent.tagName===o||isJsxClosingElement(o.parent))){const{openingElement:e,closingElement:t}=o.parent.parent,r=[e,t].map(({tagName:e})=>getHighlightSpanForNode(e,n));return[{fileName:n.fileName,highlightSpans:r}]}return function getSemanticDocumentHighlights(e,t,n,r,i){const o=new Set(i.map(e=>e.fileName)),a=vm.getReferenceEntriesForNode(e,t,n,i,r,void 0,o);if(!a)return;const s=arrayToMultiMap(a.map(vm.toHighlightSpan),e=>e.fileName,e=>e.span),c=createGetCanonicalFileName(n.useCaseSensitiveFileNames());return arrayFrom(mapDefinedIterator(s.entries(),([e,t])=>{if(!o.has(e)){if(!n.redirectTargetsMap.has(toPath(e,n.getCurrentDirectory(),c)))return;const t=n.getSourceFile(e);e=find(i,e=>!!e.redirectInfo&&e.redirectInfo.redirectTarget===t).fileName,h.assert(o.has(e))}return{fileName:e,highlightSpans:t}}))}(r,o,e,t,i)||function getSyntacticDocumentHighlights(e,t){const n=function getHighlightSpans(e,t){switch(e.kind){case 101:case 93:return isIfStatement(e.parent)?function getIfElseOccurrences(e,t){const n=function getIfElseKeywords(e,t){const n=[];for(;isIfStatement(e.parent)&&e.parent.elseStatement===e;)e=e.parent;for(;;){const r=e.getChildren(t);pushKeywordIf(n,r[0],101);for(let e=r.length-1;e>=0&&!pushKeywordIf(n,r[e],93);e--);if(!e.elseStatement||!isIfStatement(e.elseStatement))break;e=e.elseStatement}return n}(e,t),r=[];for(let e=0;e=i.end;e--)if(!isWhiteSpaceSingleLine(t.text.charCodeAt(e))){a=!1;break}if(a){r.push({fileName:t.fileName,textSpan:createTextSpanFromBounds(i.getStart(),o.end),kind:"reference"}),e++;continue}}r.push(getHighlightSpanForNode(n[e],t))}return r}(e.parent,t):void 0;case 107:return useParent(e.parent,isReturnStatement,getReturnOccurrences);case 111:return useParent(e.parent,isThrowStatement,getThrowOccurrences);case 113:case 85:case 98:return useParent(85===e.kind?e.parent.parent:e.parent,isTryStatement,getTryCatchFinallyOccurrences);case 109:return useParent(e.parent,isSwitchStatement,getSwitchCaseDefaultOccurrences);case 84:case 90:return isDefaultClause(e.parent)||isCaseClause(e.parent)?useParent(e.parent.parent.parent,isSwitchStatement,getSwitchCaseDefaultOccurrences):void 0;case 83:case 88:return useParent(e.parent,isBreakOrContinueStatement,getBreakOrContinueStatementOccurrences);case 99:case 117:case 92:return useParent(e.parent,e=>isIterationStatement(e,!0),getLoopBreakContinueOccurrences);case 137:return getFromAllDeclarations(isConstructorDeclaration,[137]);case 139:case 153:return getFromAllDeclarations(isAccessor,[139,153]);case 135:return useParent(e.parent,isAwaitExpression,getAsyncAndAwaitOccurrences);case 134:return highlightSpans(getAsyncAndAwaitOccurrences(e));case 127:return highlightSpans(function getYieldOccurrences(e){const t=getContainingFunction(e);if(!t)return;const n=[];return forEachChild(t,e=>{traverseWithoutCrossingFunction(e,e=>{isYieldExpression(e)&&pushKeywordIf(n,e.getFirstToken(),127)})}),n}(e));case 103:case 147:return;default:return isModifierKind(e.kind)&&(isDeclaration(e.parent)||isVariableStatement(e.parent))?highlightSpans(function getModifierOccurrences(e,t){return mapDefined(function getNodesToSearchForModifier(e,t){const n=e.parent;switch(n.kind){case 269:case 308:case 242:case 297:case 298:return 64&t&&isClassDeclaration(e)?[...e.members,e]:n.statements;case 177:case 175:case 263:return[...n.parameters,...isClassLike(n.parent)?n.parent.members:[]];case 264:case 232:case 265:case 188:const r=n.members;if(15&t){const e=find(n.members,isConstructorDeclaration);if(e)return[...r,...e.parameters]}else if(64&t)return[...r,n];return r;default:return}}(t,modifierToFlag(e)),t=>findModifier(t,e))}(e.kind,e.parent)):void 0}function getFromAllDeclarations(n,r){return useParent(e.parent,n,e=>{var i;return mapDefined(null==(i=tryCast(e,canHaveSymbol))?void 0:i.symbol.declarations,e=>n(e)?find(e.getChildren(t),e=>contains(r,e.kind)):void 0)})}function useParent(e,n,r){return n(e)?highlightSpans(r(e,t)):void 0}function highlightSpans(e){return e&&e.map(e=>getHighlightSpanForNode(e,t))}}(e,t);return n&&[{fileName:t.fileName,highlightSpans:n}]}(o,n)}})(tc||(tc={}));var rc=(e=>(e[e.exact=0]="exact",e[e.prefix=1]="prefix",e[e.substring=2]="substring",e[e.camelCase=3]="camelCase",e))(rc||{});function createPatternMatch(e,t){return{kind:e,isCaseSensitive:t}}function createPatternMatcher(e){const t=new Map,n=e.trim().split(".").map(e=>function createSegment(e){return{totalTextChunk:createTextChunk(e),subWordTextChunks:breakPatternIntoTextChunks(e)}}(e.trim()));return 1===n.length&&""===n[0].totalTextChunk.text?{getMatchForLastSegmentOfPattern:()=>createPatternMatch(2,!0),getFullMatch:()=>createPatternMatch(2,!0),patternContainsDots:!1}:n.some(e=>!e.subWordTextChunks.length)?void 0:{getFullMatch:(e,r)=>function getFullMatch(e,t,n,r){const i=matchSegment(t,last(n),r);if(!i)return;if(n.length-1>e.length)return;let o;for(let t=n.length-2,i=e.length-1;t>=0;t-=1,i-=1)o=betterMatch(o,matchSegment(e[i],n[t],r));return o}(e,r,n,t),getMatchForLastSegmentOfPattern:e=>matchSegment(e,last(n),t),patternContainsDots:n.length>1}}function getWordSpans(e,t){let n=t.get(e);return n||t.set(e,n=breakIntoWordSpans(e)),n}function matchTextChunk(e,t,n){const r=function indexOfIgnoringCase(e,t){const n=e.length-t.length;for(let r=0;r<=n;r++)if(every2(t,(t,n)=>toLowerCase2(e.charCodeAt(n+r))===t))return r;return-1}(e,t.textLowerCase);if(0===r)return createPatternMatch(t.text.length===e.length?0:1,startsWith(e,t.text));if(t.isLowerCase){if(-1===r)return;const i=getWordSpans(e,n);for(const n of i)if(partStartsWith(e,n,t.text,!0))return createPatternMatch(2,partStartsWith(e,n,t.text,!1));if(t.text.length0)return createPatternMatch(2,!0);if(t.characterSpans.length>0){const r=getWordSpans(e,n),i=!!tryCamelCaseMatch(e,r,t,!1)||!tryCamelCaseMatch(e,r,t,!0)&&void 0;if(void 0!==i)return createPatternMatch(3,i)}}}function matchSegment(e,t,n){if(every2(t.totalTextChunk.text,e=>32!==e&&42!==e)){const r=matchTextChunk(e,t.totalTextChunk,n);if(r)return r}const r=t.subWordTextChunks;let i;for(const t of r)i=betterMatch(i,matchTextChunk(e,t,n));return i}function betterMatch(e,t){return min([e,t],compareMatches)}function compareMatches(e,t){return void 0===e?1:void 0===t?-1:compareValues(e.kind,t.kind)||compareBooleans(!e.isCaseSensitive,!t.isCaseSensitive)}function partStartsWith(e,t,n,r,i={start:0,length:n.length}){return i.length<=t.length&&everyInRange(0,i.length,o=>function equalChars(e,t,n){return n?toLowerCase2(e)===toLowerCase2(t):e===t}(n.charCodeAt(i.start+o),e.charCodeAt(t.start+o),r))}function tryCamelCaseMatch(e,t,n,r){const i=n.characterSpans;let o,a,s=0,c=0;for(;;){if(c===i.length)return!0;if(s===t.length)return!1;let l=t[s],d=!1;for(;c=65&&e<=90)return!0;if(e<127||!isUnicodeIdentifierStart(e,99))return!1;const t=String.fromCharCode(e);return t===t.toUpperCase()}function isLowerCaseLetter(e){if(e>=97&&e<=122)return!0;if(e<127||!isUnicodeIdentifierStart(e,99))return!1;const t=String.fromCharCode(e);return t===t.toLowerCase()}function toLowerCase2(e){return e>=65&&e<=90?e-65+97:e<127?e:String.fromCharCode(e).toLowerCase().charCodeAt(0)}function isDigit2(e){return e>=48&&e<=57}function isWordChar(e){return isUpperCaseLetter(e)||isLowerCaseLetter(e)||isDigit2(e)||95===e||36===e}function breakPatternIntoTextChunks(e){const t=[];let n=0,r=0;for(let i=0;i0&&(t.push(createTextChunk(e.substr(n,r))),r=0)}return r>0&&t.push(createTextChunk(e.substr(n,r))),t}function createTextChunk(e){const t=e.toLowerCase();return{text:e,textLowerCase:t,isLowerCase:e===t,characterSpans:breakIntoCharacterSpans(e)}}function breakIntoCharacterSpans(e){return breakIntoSpans(e,!1)}function breakIntoWordSpans(e){return breakIntoSpans(e,!0)}function breakIntoSpans(e,t){const n=[];let r=0;for(let i=1;icharIsPunctuation(e)&&95!==e,t,n)}function transitionFromUpperToLower(e,t,n){return t!==n&&t+1t(e.charCodeAt(n),n))}function preProcessFile(e,t=!0,n=!1){const r={languageVersion:1,pragmas:void 0,checkJsDirective:void 0,referencedFiles:[],typeReferenceDirectives:[],libReferenceDirectives:[],amdDependencies:[],hasNoDefaultLib:void 0,moduleName:void 0},i=[];let o,a,s,c=0,l=!1;function nextToken(){return a=s,s=Vs.scan(),19===s?c++:20===s&&c--,s}function getFileReference(){const e=Vs.getTokenValue(),t=Vs.getTokenStart();return{fileName:e,pos:t,end:t+e.length}}function recordModuleName(){i.push(getFileReference()),markAsExternalModuleIfTopLevel()}function markAsExternalModuleIfTopLevel(){0===c&&(l=!0)}function tryConsumeDeclare(){let e=Vs.getToken();return 138===e&&(e=nextToken(),144===e&&(e=nextToken(),11===e&&function recordAmbientExternalModule(){o||(o=[]),o.push({ref:getFileReference(),depth:c})}()),!0)}function tryConsumeImport(){if(25===a)return!1;let e=Vs.getToken();if(102===e){if(e=nextToken(),21===e){if(e=nextToken(),11===e||15===e)return recordModuleName(),!0}else{if(11===e)return recordModuleName(),!0;if(156===e){Vs.lookAhead(()=>{const e=Vs.scan();return 161!==e&&(42===e||19===e||80===e||isKeyword(e))})&&(e=nextToken())}if(80===e||isKeyword(e))if(e=nextToken(),161===e){if(e=nextToken(),11===e)return recordModuleName(),!0}else if(64===e){if(tryConsumeRequireCall(!0))return!0}else{if(28!==e)return!0;e=nextToken()}if(19===e){for(e=nextToken();20!==e&&1!==e;)e=nextToken();20===e&&(e=nextToken(),161===e&&(e=nextToken(),11===e&&recordModuleName()))}else 42===e&&(e=nextToken(),130===e&&(e=nextToken(),(80===e||isKeyword(e))&&(e=nextToken(),161===e&&(e=nextToken(),11===e&&recordModuleName()))))}return!0}return!1}function tryConsumeExport(){let e=Vs.getToken();if(95===e){if(markAsExternalModuleIfTopLevel(),e=nextToken(),156===e){Vs.lookAhead(()=>{const e=Vs.scan();return 42===e||19===e})&&(e=nextToken())}if(19===e){for(e=nextToken();20!==e&&1!==e;)e=nextToken();20===e&&(e=nextToken(),161===e&&(e=nextToken(),11===e&&recordModuleName()))}else if(42===e)e=nextToken(),161===e&&(e=nextToken(),11===e&&recordModuleName());else if(102===e){if(e=nextToken(),156===e){Vs.lookAhead(()=>{const e=Vs.scan();return 80===e||isKeyword(e)})&&(e=nextToken())}if((80===e||isKeyword(e))&&(e=nextToken(),64===e&&tryConsumeRequireCall(!0)))return!0}return!0}return!1}function tryConsumeRequireCall(e,t=!1){let n=e?nextToken():Vs.getToken();return 149===n&&(n=nextToken(),21===n&&(n=nextToken(),(11===n||t&&15===n)&&recordModuleName()),!0)}function tryConsumeDefine(){let e=Vs.getToken();if(80===e&&"define"===Vs.getTokenValue()){if(e=nextToken(),21!==e)return!0;if(e=nextToken(),11===e||15===e){if(e=nextToken(),28!==e)return!0;e=nextToken()}if(23!==e)return!0;for(e=nextToken();24!==e&&1!==e;)11!==e&&15!==e||recordModuleName(),e=nextToken();return!0}return!1}if(t&&function processImports(){for(Vs.setText(e),nextToken();1!==Vs.getToken();){if(16===Vs.getToken()){const e=[Vs.getToken()];e:for(;length(e);){const t=Vs.scan();switch(t){case 1:break e;case 102:tryConsumeImport();break;case 16:e.push(t);break;case 19:length(e)&&e.push(t);break;case 20:length(e)&&(16===lastOrUndefined(e)?18===Vs.reScanTemplateToken(!1)&&e.pop():e.pop())}}nextToken()}tryConsumeDeclare()||tryConsumeImport()||tryConsumeExport()||n&&(tryConsumeRequireCall(!1,!0)||tryConsumeDefine())||nextToken()}Vs.setText(void 0)}(),processCommentPragmas(r,e),processPragmasIntoFields(r,noop),l){if(o)for(const e of o)i.push(e.ref);return{referencedFiles:r.referencedFiles,typeReferenceDirectives:r.typeReferenceDirectives,libReferenceDirectives:r.libReferenceDirectives,importedFiles:i,isLibFile:!!r.hasNoDefaultLib,ambientExternalModules:void 0}}{let e;if(o)for(const t of o)0===t.depth?(e||(e=[]),e.push(t.ref.fileName)):i.push(t.ref);return{referencedFiles:r.referencedFiles,typeReferenceDirectives:r.typeReferenceDirectives,libReferenceDirectives:r.libReferenceDirectives,importedFiles:i,isLibFile:!!r.hasNoDefaultLib,ambientExternalModules:e}}}var ic=/^data:(?:application\/json;charset=[uU][tT][fF]-8;base64,([A-Za-z0-9+/=]+)$)?/;function getSourceMapper(e){const t=createGetCanonicalFileName(e.useCaseSensitiveFileNames()),n=e.getCurrentDirectory(),r=new Map,i=new Map;return{tryGetSourcePosition:function tryGetSourcePosition(e){if(!isDeclarationFileName(e.fileName))return;if(!getSourceFile(e.fileName))return;const t=getDocumentPositionMapper2(e.fileName).getSourcePosition(e);return t&&t!==e?tryGetSourcePosition(t)||t:void 0},tryGetGeneratedPosition:function tryGetGeneratedPosition(t){if(isDeclarationFileName(t.fileName))return;const n=getSourceFile(t.fileName);if(!n)return;const r=e.getProgram();if(r.isSourceOfProjectReferenceRedirect(n.fileName))return;const i=r.getCompilerOptions().outFile,o=i?removeFileExtension(i)+".d.ts":getDeclarationEmitOutputFilePathWorker(t.fileName,r.getCompilerOptions(),r);if(void 0===o)return;const a=getDocumentPositionMapper2(o,t.fileName).getGeneratedPosition(t);return a===t?void 0:a},toLineColumnOffset:function toLineColumnOffset(e,t){return getSourceFileLike(e).getLineAndCharacterOfPosition(t)},clearCache:function clearCache(){r.clear(),i.clear()},documentPositionMappers:i};function toPath3(e){return toPath(e,n,t)}function getDocumentPositionMapper2(n,r){const o=toPath3(n),a=i.get(o);if(a)return a;let s;if(e.getDocumentPositionMapper)s=e.getDocumentPositionMapper(n,r);else if(e.readFile){const r=getSourceFileLike(n);s=r&&getDocumentPositionMapper({getSourceFileLike,getCanonicalFileName:t,log:t=>e.log(t)},n,getLineInfo(r.text,getLineStarts(r)),t=>!e.fileExists||e.fileExists(t)?e.readFile(t):void 0)}return i.set(o,s||ua),s||ua}function getSourceFile(t){const n=e.getProgram();if(!n)return;const r=toPath3(t),i=n.getSourceFileByPath(r);return i&&i.resolvedPath===r?i:void 0}function getOrCreateSourceFileLike(t){const n=toPath3(t),i=r.get(n);if(void 0!==i)return i||void 0;if(!e.readFile||e.fileExists&&!e.fileExists(t))return void r.set(n,!1);const o=e.readFile(t),a=!!o&&function createSourceFileLike(e,t){return{text:e,lineMap:t,getLineAndCharacterOfPosition(e){return computeLineAndCharacterOfPosition(getLineStarts(this),e)}}}(o);return r.set(n,a),a||void 0}function getSourceFileLike(t){return e.getSourceFileLike?e.getSourceFileLike(t):getSourceFile(t)||getOrCreateSourceFileLike(t)}}function getDocumentPositionMapper(e,t,n,r){let i=tryGetSourceMappingURL(n);if(i){const n=ic.exec(i);if(n){if(n[1]){const r=n[1];return convertDocumentToSourceMapper(e,base64decode(kt,r),t)}i=void 0}}const o=[];i&&o.push(i),o.push(t+".map");const a=i&&getNormalizedAbsolutePath(i,getDirectoryPath(t));for(const n of o){const i=getNormalizedAbsolutePath(n,getDirectoryPath(t)),o=r(i,a);if(isString(o))return convertDocumentToSourceMapper(e,o,i);if(void 0!==o)return o||void 0}}function convertDocumentToSourceMapper(e,t,n){const r=tryParseRawSourceMap(t);if(r&&r.sources&&r.file&&r.mappings&&(!r.sourcesContent||!r.sourcesContent.some(isString)))return createDocumentPositionMapper(e,r,n)}var oc=new Map;function computeSuggestionDiagnostics(e,t,n){var r;t.getSemanticDiagnostics(e,n);const i=[],o=t.getTypeChecker();!(1===t.getImpliedNodeFormatForEmit(e)||fileExtensionIsOneOf(e.fileName,[".cts",".cjs"]))&&e.commonJsModuleIndicator&&(programContainsEsModules(t)||compilerOptionsIndicateEsModules(t.getCompilerOptions()))&&function containsTopLevelCommonjs(e){return e.statements.some(e=>{switch(e.kind){case 244:return e.declarationList.declarations.some(e=>!!e.initializer&&isRequireCall(propertyAccessLeftHandSide(e.initializer),!0));case 245:{const{expression:t}=e;if(!isBinaryExpression(t))return isRequireCall(t,!0);const n=getAssignmentDeclarationKind(t);return 1===n||2===n}default:return!1}})}(e)&&i.push(createDiagnosticForNode(function getErrorNodeFromCommonJsIndicator(e){return isBinaryExpression(e)?e.left:e}(e.commonJsModuleIndicator),Ot.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module));const a=isSourceFileJS(e);if(oc.clear(),function check(t){if(a)(function canBeConvertedToClass(e,t){var n,r,i,o;if(isFunctionExpression(e)){if(isVariableDeclaration(e.parent)&&(null==(n=e.symbol.members)?void 0:n.size))return!0;const o=t.getSymbolOfExpando(e,!1);return!(!o||!(null==(r=o.exports)?void 0:r.size)&&!(null==(i=o.members)?void 0:i.size))}if(isFunctionDeclaration(e))return!!(null==(o=e.symbol.members)?void 0:o.size);return!1})(t,o)&&i.push(createDiagnosticForNode(isVariableDeclaration(t.parent)?t.parent.name:t,Ot.This_constructor_function_may_be_converted_to_a_class_declaration));else{if(isVariableStatement(t)&&t.parent===e&&2&t.declarationList.flags&&1===t.declarationList.declarations.length){const e=t.declarationList.declarations[0].initializer;e&&isRequireCall(e,!0)&&i.push(createDiagnosticForNode(e,Ot.require_call_may_be_converted_to_an_import))}const n=ed.getJSDocTypedefNodes(t);for(const e of n)i.push(createDiagnosticForNode(e,Ot.JSDoc_typedef_may_be_converted_to_TypeScript_type));ed.parameterShouldGetTypeFromJSDoc(t)&&i.push(createDiagnosticForNode(t.name||t,Ot.JSDoc_types_may_be_moved_to_TypeScript_types))}canBeConvertedToAsync(t)&&function addConvertToAsyncFunctionDiagnostics(e,t,n){(function isConvertibleFunction(e,t){return!isAsyncFunction(e)&&e.body&&isBlock(e.body)&&function hasReturnStatementWithPromiseHandler(e,t){return!!forEachReturnStatement(e,e=>isReturnStatementWithFixablePromiseHandler(e,t))}(e.body,t)&&returnsPromise(e,t)})(e,t)&&!oc.has(getKeyFromNode(e))&&n.push(createDiagnosticForNode(!e.name&&isVariableDeclaration(e.parent)&&isIdentifier(e.parent.name)?e.parent.name:e,Ot.This_may_be_converted_to_an_async_function))}(t,o,i);t.forEachChild(check)}(e),$n(t.getCompilerOptions()))for(const n of e.imports){const o=importFromModuleSpecifier(n);if(isImportEqualsDeclaration(o)&&hasSyntacticModifier(o,32))continue;const a=importNameForConvertToDefaultImport(o);if(!a)continue;const s=null==(r=t.getResolvedModuleFromModuleSpecifier(n,e))?void 0:r.resolvedModule,c=s&&t.getSourceFile(s.resolvedFileName);c&&c.externalModuleIndicator&&!0!==c.externalModuleIndicator&&isExportAssignment(c.externalModuleIndicator)&&c.externalModuleIndicator.isExportEquals&&i.push(createDiagnosticForNode(a,Ot.Import_may_be_converted_to_a_default_import))}return addRange(i,e.bindSuggestionDiagnostics),addRange(i,t.getSuggestionDiagnostics(e,n)),i.sort((e,t)=>e.start-t.start),i}function propertyAccessLeftHandSide(e){return isPropertyAccessExpression(e)?propertyAccessLeftHandSide(e.expression):e}function importNameForConvertToDefaultImport(e){switch(e.kind){case 273:const{importClause:t,moduleSpecifier:n}=e;return t&&!t.name&&t.namedBindings&&275===t.namedBindings.kind&&isStringLiteral(n)?t.namedBindings.name:void 0;case 272:return e.name;default:return}}function returnsPromise(e,t){const n=t.getSignatureFromDeclaration(e),r=n?t.getReturnTypeOfSignature(n):void 0;return!!r&&!!t.getPromisedTypeOfPromise(r)}function isReturnStatementWithFixablePromiseHandler(e,t){return isReturnStatement(e)&&!!e.expression&&isFixablePromiseHandler(e.expression,t)}function isFixablePromiseHandler(e,t){if(!isPromiseHandler(e)||!hasSupportedNumberOfArguments(e)||!e.arguments.every(e=>isFixablePromiseArgument(e,t)))return!1;let n=e.expression.expression;for(;isPromiseHandler(n)||isPropertyAccessExpression(n);)if(isCallExpression(n)){if(!hasSupportedNumberOfArguments(n)||!n.arguments.every(e=>isFixablePromiseArgument(e,t)))return!1;n=n.expression.expression}else n=n.expression;return!0}function isPromiseHandler(e){return isCallExpression(e)&&(hasPropertyAccessExpressionWithName(e,"then")||hasPropertyAccessExpressionWithName(e,"catch")||hasPropertyAccessExpressionWithName(e,"finally"))}function hasSupportedNumberOfArguments(e){const t=e.expression.name.text,n="then"===t?2:"catch"===t||"finally"===t?1:0;return!(e.arguments.length>n)&&(e.arguments.length106===e.kind||isIdentifier(e)&&"undefined"===e.text)))}function isFixablePromiseArgument(e,t){switch(e.kind){case 263:case 219:if(1&getFunctionFlags(e))return!1;case 220:oc.set(getKeyFromNode(e),!0);case 106:return!0;case 80:case 212:{const n=t.getSymbolAtLocation(e);return!!n&&(t.isUndefinedSymbol(n)||some(skipAlias(n,t).declarations,e=>isFunctionLike(e)||hasInitializer(e)&&!!e.initializer&&isFunctionLike(e.initializer)))}default:return!1}}function getKeyFromNode(e){return`${e.pos.toString()}:${e.end.toString()}`}function canBeConvertedToAsync(e){switch(e.kind){case 263:case 175:case 219:case 220:return!0;default:return!1}}var ac=new Set(["isolatedModules"]);function transpileModule(e,t){return transpileWorker(e,t,!1)}function transpileDeclaration(e,t){return transpileWorker(e,t,!0)}var sc,cc,lc='/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number {}\ninterface Object {}\ninterface RegExp {}\ninterface String {}\ninterface Array { length: number; [n: number]: T; }\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}',dc="lib.d.ts";function transpileWorker(e,t,n){sc??(sc=createSourceFile(dc,lc,{languageVersion:99}));const r=[],i=t.compilerOptions?fixupCompilerOptions(t.compilerOptions,r):{},o={target:1,jsx:1};for(const e in o)hasProperty(o,e)&&void 0===i[e]&&(i[e]=o[e]);for(const e of ro)i.verbatimModuleSyntax&&ac.has(e.name)||(i[e.name]=e.transpileOptionValue);i.suppressOutputPathCheck=!0,i.allowNonTsExtensions=!0,n?(i.declaration=!0,i.emitDeclarationOnly=!0,i.isolatedDeclarations=!0):(i.declaration=!1,i.declarationMap=!1);const a=getNewLineCharacter(i),s={getSourceFile:e=>e===normalizePath(c)?l:e===normalizePath(dc)?sc:void 0,writeFile:(e,t)=>{fileExtensionIs(e,".map")?(h.assertEqual(p,void 0,"Unexpected multiple source map outputs, file:",e),p=t):(h.assertEqual(d,void 0,"Unexpected multiple outputs, file:",e),d=t)},getDefaultLibFileName:()=>dc,useCaseSensitiveFileNames:()=>!1,getCanonicalFileName:e=>e,getCurrentDirectory:()=>"",getNewLine:()=>a,fileExists:e=>e===c||!!n&&e===dc,readFile:()=>"",directoryExists:()=>!0,getDirectories:()=>[]},c=t.fileName||(t.compilerOptions&&t.compilerOptions.jsx?"module.tsx":"module.ts"),l=createSourceFile(c,e,{languageVersion:zn(i),impliedNodeFormat:getImpliedNodeFormatForFile(toPath(c,"",s.getCanonicalFileName),void 0,s,i),setExternalModuleIndicator:getSetExternalModuleIndicator(i),jsDocParsingMode:t.jsDocParsingMode??0});let d,p;t.moduleName&&(l.moduleName=t.moduleName),t.renamedDependencies&&(l.renamedDependencies=new Map(Object.entries(t.renamedDependencies)));const u=createProgram(n?[c,dc]:[c],i,s);t.reportDiagnostics&&(addRange(r,u.getSyntacticDiagnostics(l)),addRange(r,u.getOptionsDiagnostics()));return addRange(r,u.emit(void 0,void 0,void 0,n,t.transformers,n).diagnostics),void 0===d?h.fail("Output generation failed"):{outputText:d,diagnostics:r,sourceMapText:p}}function transpile(e,t,n,r,i){const o=transpileModule(e,{compilerOptions:t,fileName:n,reportDiagnostics:!!r,moduleName:i});return addRange(r,o.diagnostics),o.outputText}function fixupCompilerOptions(e,t){cc=cc||filter(Qi,e=>"object"==typeof e.type&&!forEachEntry(e.type,e=>"number"!=typeof e)),e=cloneCompilerOptions(e);for(const n of cc){if(!hasProperty(e,n.name))continue;const r=e[n.name];isString(r)?e[n.name]=parseCustomTypeOption(n,r,t):forEachEntry(n.type,e=>e===r)||t.push(createCompilerDiagnosticForInvalidCustomType(n))}return e}var pc={};function getNavigateToItems(e,t,n,r,i,o,a){const s=createPatternMatcher(r);if(!s)return l;const c=[],d=1===e.length?e[0]:void 0;for(const r of e)n.throwIfCancellationRequested(),o&&r.isDeclarationFile||shouldExcludeFile(r,!!a,d)||r.getNamedDeclarations().forEach((e,n)=>{getItemsFromNamedDeclaration(s,n,e,t,r.fileName,!!a,d,c)});return c.sort(compareNavigateToItems),(void 0===i?c:c.slice(0,i)).map(createNavigateToItem)}function shouldExcludeFile(e,t,n){return e!==n&&t&&(isInsideNodeModules(e.path)||e.hasNoDefaultLib)}function getItemsFromNamedDeclaration(e,t,n,r,i,o,a,s){const c=e.getMatchForLastSegmentOfPattern(t);if(c)for(const l of n)if(shouldKeepItem(l,r,o,a))if(e.patternContainsDots){const n=e.getFullMatch(getContainers(l),t);n&&s.push({name:t,fileName:i,matchKind:n.kind,isCaseSensitive:n.isCaseSensitive,declaration:l})}else s.push({name:t,fileName:i,matchKind:c.kind,isCaseSensitive:c.isCaseSensitive,declaration:l})}function shouldKeepItem(e,t,n,r){var i;switch(e.kind){case 274:case 277:case 272:const o=t.getSymbolAtLocation(e.name),a=t.getAliasedSymbol(o);return o.escapedName!==a.escapedName&&!(null==(i=a.declarations)?void 0:i.every(e=>shouldExcludeFile(e.getSourceFile(),n,r)));default:return!0}}function tryAddSingleDeclarationName(e,t){const n=getNameOfDeclaration(e);return!!n&&(pushLiteral(n,t)||168===n.kind&&tryAddComputedPropertyName(n.expression,t))}function tryAddComputedPropertyName(e,t){return pushLiteral(e,t)||isPropertyAccessExpression(e)&&(t.push(e.name.text),!0)&&tryAddComputedPropertyName(e.expression,t)}function pushLiteral(e,t){return isPropertyNameLiteral(e)&&(t.push(getTextOfIdentifierOrLiteral(e)),!0)}function getContainers(e){const t=[],n=getNameOfDeclaration(e);if(n&&168===n.kind&&!tryAddComputedPropertyName(n.expression,t))return l;t.shift();let r=getContainerNode(e);for(;r;){if(!tryAddSingleDeclarationName(r,t))return l;r=getContainerNode(r)}return t.reverse(),t}function compareNavigateToItems(e,t){return compareValues(e.matchKind,t.matchKind)||compareStringsCaseSensitiveUI(e.name,t.name)}function createNavigateToItem(e){const t=e.declaration,n=getContainerNode(t),r=n&&getNameOfDeclaration(n);return{name:e.name,kind:getNodeKind(t),kindModifiers:getNodeModifiers(t),matchKind:rc[e.matchKind],isCaseSensitive:e.isCaseSensitive,fileName:e.fileName,textSpan:createTextSpanFromNode(t),containerName:r?r.text:"",containerKind:r?getNodeKind(n):""}}i(pc,{getNavigateToItems:()=>getNavigateToItems});var uc={};i(uc,{getNavigationBarItems:()=>getNavigationBarItems,getNavigationTree:()=>getNavigationTree});var mc,_c,fc,gc,yc=/\s+/g,hc=150,Tc=[],Sc=[],xc=[];function getNavigationBarItems(e,t){mc=t,_c=e;try{return map(function primaryNavBarMenuItems(e){const t=[];function recur(e){if(shouldAppearInPrimaryNavBarMenu(e)&&(t.push(e),e.children))for(const t of e.children)recur(t)}return recur(e),t;function shouldAppearInPrimaryNavBarMenu(e){if(e.children)return!0;switch(navigationBarNodeKind(e)){case 264:case 232:case 267:case 265:case 268:case 308:case 266:case 347:case 339:return!0;case 220:case 263:case 219:return isTopLevelFunctionDeclaration(e);default:return!1}function isTopLevelFunctionDeclaration(e){if(!e.node.body)return!1;switch(navigationBarNodeKind(e.parent)){case 269:case 308:case 175:case 177:return!0;default:return!1}}}}(rootNavigationBarNode(e)),convertToPrimaryNavBarMenuItem)}finally{reset()}}function getNavigationTree(e,t){mc=t,_c=e;try{return convertToTree(rootNavigationBarNode(e))}finally{reset()}}function reset(){_c=void 0,mc=void 0,Tc=[],fc=void 0,xc=[]}function nodeText(e){return cleanText(e.getText(_c))}function navigationBarNodeKind(e){return e.node.kind}function pushChild(e,t){e.children?e.children.push(t):e.children=[t]}function rootNavigationBarNode(e){h.assert(!Tc.length);const t={node:e,name:void 0,additionalNodes:void 0,parent:void 0,children:void 0,indent:0};fc=t;for(const t of e.statements)addChildrenRecursively(t);return endNode(),h.assert(!fc&&!Tc.length),t}function addLeafNode(e,t){pushChild(fc,emptyNavigationBarNode(e,t))}function emptyNavigationBarNode(e,t){return{node:e,name:t||(isDeclaration(e)||isExpression(e)?getNameOfDeclaration(e):void 0),additionalNodes:void 0,parent:fc,children:void 0,indent:fc.indent+1}}function addTrackedEs5Class(e){gc||(gc=new Map),gc.set(e,!0)}function endNestedNodes(e){for(let t=0;t0;t--){startNode(e,n[t])}return[n.length-1,n[0]]}function startNode(e,t){const n=emptyNavigationBarNode(e,t);pushChild(fc,n),Tc.push(fc),Sc.push(gc),gc=void 0,fc=n}function endNode(){fc.children&&(mergeChildren(fc.children,fc),sortChildren(fc.children)),fc=Tc.pop(),gc=Sc.pop()}function addNodeWithRecursiveChild(e,t,n){startNode(e,n),addChildrenRecursively(t),endNode()}function addNodeWithRecursiveInitializer(e){e.initializer&&function isFunctionOrClassExpression(e){switch(e.kind){case 220:case 219:case 232:return!0;default:return!1}}(e.initializer)?(startNode(e),forEachChild(e.initializer,addChildrenRecursively),endNode()):addNodeWithRecursiveChild(e,e.initializer)}function hasNavigationBarName(e){const t=getNameOfDeclaration(e);if(void 0===t)return!1;if(isComputedPropertyName(t)){const e=t.expression;return isEntityNameExpression(e)||isNumericLiteral(e)||isStringOrNumericLiteralLike(e)}return!!t}function addChildrenRecursively(e){if(mc.throwIfCancellationRequested(),e&&!isToken(e))switch(e.kind){case 177:const t=e;addNodeWithRecursiveChild(t,t.body);for(const e of t.parameters)isParameterPropertyDeclaration(e,t)&&addLeafNode(e);break;case 175:case 178:case 179:case 174:hasNavigationBarName(e)&&addNodeWithRecursiveChild(e,e.body);break;case 173:hasNavigationBarName(e)&&addNodeWithRecursiveInitializer(e);break;case 172:hasNavigationBarName(e)&&addLeafNode(e);break;case 274:const n=e;n.name&&addLeafNode(n.name);const{namedBindings:r}=n;if(r)if(275===r.kind)addLeafNode(r);else for(const e of r.elements)addLeafNode(e);break;case 305:addNodeWithRecursiveChild(e,e.name);break;case 306:const{expression:i}=e;isIdentifier(i)?addLeafNode(e,i):addLeafNode(e);break;case 209:case 304:case 261:{const t=e;isBindingPattern(t.name)?addChildrenRecursively(t.name):addNodeWithRecursiveInitializer(t);break}case 263:const o=e.name;o&&isIdentifier(o)&&addTrackedEs5Class(o.text),addNodeWithRecursiveChild(e,e.body);break;case 220:case 219:addNodeWithRecursiveChild(e,e.body);break;case 267:startNode(e);for(const t of e.members)isComputedProperty(t)||addLeafNode(t);endNode();break;case 264:case 232:case 265:startNode(e);for(const t of e.members)addChildrenRecursively(t);endNode();break;case 268:addNodeWithRecursiveChild(e,getInteriorModule(e).body);break;case 278:{const t=e.expression,n=isObjectLiteralExpression(t)||isCallExpression(t)?t:isArrowFunction(t)||isFunctionExpression(t)?t.body:void 0;n?(startNode(e),addChildrenRecursively(n),endNode()):addLeafNode(e);break}case 282:case 272:case 182:case 180:case 181:case 266:addLeafNode(e);break;case 214:case 227:{const t=getAssignmentDeclarationKind(e);switch(t){case 1:case 2:return void addNodeWithRecursiveChild(e,e.right);case 6:case 3:{const n=e,r=n.left,i=3===t?r.expression:r;let o,a=0;return isIdentifier(i.expression)?(addTrackedEs5Class(i.expression.text),o=i.expression):[a,o]=startNestedNodes(n,i.expression),6===t?isObjectLiteralExpression(n.right)&&n.right.properties.length>0&&(startNode(n,o),forEachChild(n.right,addChildrenRecursively),endNode()):isFunctionExpression(n.right)||isArrowFunction(n.right)?addNodeWithRecursiveChild(e,n.right,o):(startNode(n,o),addNodeWithRecursiveChild(e,n.right,r.name),endNode()),void endNestedNodes(a)}case 7:case 9:{const n=e,r=7===t?n.arguments[0]:n.arguments[0].expression,i=n.arguments[1],[o,a]=startNestedNodes(e,r);return startNode(e,a),startNode(e,setTextRange(Wr.createIdentifier(i.text),i)),addChildrenRecursively(e.arguments[2]),endNode(),endNode(),void endNestedNodes(o)}case 5:{const t=e,n=t.left,r=n.expression;if(isIdentifier(r)&&"prototype"!==getElementOrPropertyAccessName(n)&&gc&&gc.has(r.text))return void(isFunctionExpression(t.right)||isArrowFunction(t.right)?addNodeWithRecursiveChild(e,t.right,r):isBindableStaticAccessExpression(n)&&(startNode(t,r),addNodeWithRecursiveChild(t.left,t.right,getNameOrArgument(n)),endNode()));break}case 4:case 0:case 8:break;default:h.assertNever(t)}}default:hasJSDocNodes(e)&&forEach(e.jsDoc,e=>{forEach(e.tags,e=>{isJSDocTypeAlias(e)&&addLeafNode(e)})}),forEachChild(e,addChildrenRecursively)}}function mergeChildren(e,t){const n=new Map;filterMutate(e,(e,r)=>{const i=e.name||getNameOfDeclaration(e.node),o=i&&nodeText(i);if(!o)return!0;const a=n.get(o);if(!a)return n.set(o,e),!0;if(a instanceof Array){for(const n of a)if(tryMerge(n,e,r,t))return!1;return a.push(e),!0}{const i=a;return!tryMerge(i,e,r,t)&&(n.set(o,[i,e]),!0)}})}var vc={5:!0,3:!0,7:!0,9:!0,0:!1,1:!1,2:!1,8:!1,6:!0,4:!1};function tryMerge(e,t,n,r){return!!function tryMergeEs5Class(e,t,n,r){function isPossibleConstructor(e){return isFunctionExpression(e)||isFunctionDeclaration(e)||isVariableDeclaration(e)}const i=isBinaryExpression(t.node)||isCallExpression(t.node)?getAssignmentDeclarationKind(t.node):0,o=isBinaryExpression(e.node)||isCallExpression(e.node)?getAssignmentDeclarationKind(e.node):0;if(vc[i]&&vc[o]||isPossibleConstructor(e.node)&&vc[i]||isPossibleConstructor(t.node)&&vc[o]||isClassDeclaration(e.node)&&isSynthesized(e.node)&&vc[i]||isClassDeclaration(t.node)&&vc[o]||isClassDeclaration(e.node)&&isSynthesized(e.node)&&isPossibleConstructor(t.node)||isClassDeclaration(t.node)&&isPossibleConstructor(e.node)&&isSynthesized(e.node)){let i=e.additionalNodes&&lastOrUndefined(e.additionalNodes)||e.node;if(!isClassDeclaration(e.node)&&!isClassDeclaration(t.node)||isPossibleConstructor(e.node)||isPossibleConstructor(t.node)){const n=isPossibleConstructor(e.node)?e.node:isPossibleConstructor(t.node)?t.node:void 0;if(void 0!==n){const r=emptyNavigationBarNode(setTextRange(Wr.createConstructorDeclaration(void 0,[],void 0),n));r.indent=e.indent+1,r.children=e.node===n?e.children:t.children,e.children=e.node===n?concatenate([r],t.children||[t]):concatenate(e.children||[{...e}],[r])}else(e.children||t.children)&&(e.children=concatenate(e.children||[{...e}],t.children||[t]),e.children&&(mergeChildren(e.children,e),sortChildren(e.children)));i=e.node=setTextRange(Wr.createClassDeclaration(void 0,e.name||Wr.createIdentifier("__class__"),void 0,void 0,[]),e.node)}else e.children=concatenate(e.children,t.children),e.children&&mergeChildren(e.children,e);const o=t.node;return r.children[n-1].node.end===i.end?setTextRange(i,{pos:i.pos,end:o.end}):(e.additionalNodes||(e.additionalNodes=[]),e.additionalNodes.push(setTextRange(Wr.createClassDeclaration(void 0,e.name||Wr.createIdentifier("__class__"),void 0,void 0,[]),t.node))),!0}return 0!==i}(e,t,n,r)||!!function shouldReallyMerge(e,t,n){if(e.kind!==t.kind||e.parent!==t.parent&&(!isOwnChild(e,n)||!isOwnChild(t,n)))return!1;switch(e.kind){case 173:case 175:case 178:case 179:return isStatic(e)===isStatic(t);case 268:return areSameModule(e,t)&&getFullyQualifiedModuleName(e)===getFullyQualifiedModuleName(t);default:return!0}}(e.node,t.node,r)&&(function merge(e,t){e.additionalNodes=e.additionalNodes||[],e.additionalNodes.push(t.node),t.additionalNodes&&e.additionalNodes.push(...t.additionalNodes);e.children=concatenate(e.children,t.children),e.children&&(mergeChildren(e.children,e),sortChildren(e.children))}(e,t),!0)}function isSynthesized(e){return!!(16&e.flags)}function isOwnChild(e,t){if(void 0===e.parent)return!1;const n=isModuleBlock(e.parent)?e.parent.parent:e.parent;return n===t.node||contains(t.additionalNodes,n)}function areSameModule(e,t){return e.body&&t.body?e.body.kind===t.body.kind&&(268!==e.body.kind||areSameModule(e.body,t.body)):e.body===t.body}function sortChildren(e){e.sort(compareChildren)}function compareChildren(e,t){return compareStringsCaseSensitiveUI(tryGetName(e.node),tryGetName(t.node))||compareValues(navigationBarNodeKind(e),navigationBarNodeKind(t))}function tryGetName(e){if(268===e.kind)return getModuleName(e);const t=getNameOfDeclaration(e);if(t&&isPropertyName(t)){const e=getPropertyNameForPropertyNameNode(t);return e&&unescapeLeadingUnderscores(e)}switch(e.kind){case 219:case 220:case 232:return getFunctionOrClassName(e);default:return}}function getItemName(e,t){if(268===e.kind)return cleanText(getModuleName(e));if(t){const e=isIdentifier(t)?t.text:isElementAccessExpression(t)?`[${nodeText(t.argumentExpression)}]`:nodeText(t);if(e.length>0)return cleanText(e)}switch(e.kind){case 308:const t=e;return isExternalModule(t)?`"${escapeString(getBaseFileName(removeFileExtension(normalizePath(t.fileName))))}"`:"";case 278:return isExportAssignment(e)&&e.isExportEquals?"export=":"default";case 220:case 263:case 219:case 264:case 232:return 2048&getSyntacticModifierFlags(e)?"default":getFunctionOrClassName(e);case 177:return"constructor";case 181:return"new()";case 180:return"()";case 182:return"[]";default:return""}}function convertToTree(e){return{text:getItemName(e.node,e.name),kind:getNodeKind(e.node),kindModifiers:getModifiers2(e.node),spans:getSpans(e),nameSpan:e.name&&getNodeSpan(e.name),childItems:map(e.children,convertToTree)}}function convertToPrimaryNavBarMenuItem(e){return{text:getItemName(e.node,e.name),kind:getNodeKind(e.node),kindModifiers:getModifiers2(e.node),spans:getSpans(e),childItems:map(e.children,function convertToSecondaryNavBarMenuItem(e){return{text:getItemName(e.node,e.name),kind:getNodeKind(e.node),kindModifiers:getNodeModifiers(e.node),spans:getSpans(e),childItems:xc,indent:0,bolded:!1,grayed:!1}})||xc,indent:e.indent,bolded:!1,grayed:!1}}function getSpans(e){const t=[getNodeSpan(e.node)];if(e.additionalNodes)for(const n of e.additionalNodes)t.push(getNodeSpan(n));return t}function getModuleName(e){return isAmbientModule(e)?getTextOfNode(e.name):getFullyQualifiedModuleName(e)}function getFullyQualifiedModuleName(e){const t=[getTextOfIdentifierOrLiteral(e.name)];for(;e.body&&268===e.body.kind;)e=e.body,t.push(getTextOfIdentifierOrLiteral(e.name));return t.join(".")}function getInteriorModule(e){return e.body&&isModuleDeclaration(e.body)?getInteriorModule(e.body):e}function isComputedProperty(e){return!e.name||168===e.name.kind}function getNodeSpan(e){return 308===e.kind?createTextSpanFromRange(e):createTextSpanFromNode(e,_c)}function getModifiers2(e){return e.parent&&261===e.parent.kind&&(e=e.parent),getNodeModifiers(e)}function getFunctionOrClassName(e){const{parent:t}=e;if(e.name&&getFullWidth(e.name)>0)return cleanText(declarationNameToString(e.name));if(isVariableDeclaration(t))return cleanText(declarationNameToString(t.name));if(isBinaryExpression(t)&&64===t.operatorToken.kind)return nodeText(t.left).replace(yc,"");if(isPropertyAssignment(t))return nodeText(t.name);if(2048&getSyntacticModifierFlags(e))return"default";if(isClassLike(e))return"";if(isCallExpression(t)){let e=getCalledExpressionName(t.expression);if(void 0!==e){if(e=cleanText(e),e.length>hc)return`${e} callback`;return`${e}(${cleanText(mapDefined(t.arguments,e=>isStringLiteralLike(e)||isTemplateLiteral(e)?e.getText(_c):void 0).join(", "))}) callback`}}return""}function getCalledExpressionName(e){if(isIdentifier(e))return e.text;if(isPropertyAccessExpression(e)){const t=getCalledExpressionName(e.expression),n=e.name.text;return void 0===t?n:`${t}.${n}`}}function cleanText(e){return(e=e.length>hc?e.substring(0,hc)+"...":e).replace(/\\?(?:\r?\n|[\r\u2028\u2029])/g,"")}var bc={};i(bc,{addExportsInOldFile:()=>addExportsInOldFile,addImportsForMovedSymbols:()=>addImportsForMovedSymbols,addNewFileToTsconfig:()=>addNewFileToTsconfig,addOrRemoveBracesToArrowFunction:()=>zc,addTargetFileImports:()=>addTargetFileImports,containsJsx:()=>containsJsx,convertArrowFunctionOrFunctionExpression:()=>Xc,convertParamsToDestructuredObject:()=>rl,convertStringOrTemplateLiteral:()=>sl,convertToOptionalChainExpression:()=>pl,createNewFileName:()=>createNewFileName,doChangeNamedToNamespaceOrDefault:()=>doChangeNamedToNamespaceOrDefault,extractSymbol:()=>fl,generateGetAccessorAndSetAccessor:()=>xl,getApplicableRefactors:()=>getApplicableRefactors,getEditsForRefactor:()=>getEditsForRefactor,getExistingLocals:()=>getExistingLocals,getIdentifierForNode:()=>getIdentifierForNode,getNewStatementsAndRemoveFromOldFile:()=>getNewStatementsAndRemoveFromOldFile,getStatementsToMove:()=>getStatementsToMove,getUsageInfo:()=>getUsageInfo,inferFunctionReturnType:()=>El,isInImport:()=>isInImport,isRefactorErrorInfo:()=>isRefactorErrorInfo,refactorKindBeginsWith:()=>refactorKindBeginsWith,registerRefactor:()=>registerRefactor});var Cc=new Map;function registerRefactor(e,t){Cc.set(e,t)}function getApplicableRefactors(e,t){return arrayFrom(flatMapIterator(Cc.values(),n=>{var r;return e.cancellationToken&&e.cancellationToken.isCancellationRequested()||!(null==(r=n.kinds)?void 0:r.some(t=>refactorKindBeginsWith(t,e.kind)))?void 0:n.getAvailableActions(e,t)}))}function getEditsForRefactor(e,t,n,r){const i=Cc.get(t);return i&&i.getEditsForAction(e,n,r)}var Ec="Convert export",Nc={name:"Convert default export to named export",description:getLocaleSpecificMessage(Ot.Convert_default_export_to_named_export),kind:"refactor.rewrite.export.named"},kc={name:"Convert named export to default export",description:getLocaleSpecificMessage(Ot.Convert_named_export_to_default_export),kind:"refactor.rewrite.export.default"};function getInfo2(e,t=!0){const{file:n,program:r}=e,i=getRefactorContextSpan(e),o=getTokenAtPosition(n,i.start),a=o.parent&&32&getSyntacticModifierFlags(o.parent)&&t?o.parent:getParentNodeInSpan(o,n,i);if(!(a&&(isSourceFile(a.parent)||isModuleBlock(a.parent)&&isAmbientModule(a.parent.parent))))return{error:getLocaleSpecificMessage(Ot.Could_not_find_export_statement)};const s=r.getTypeChecker(),c=function getExportingModuleSymbol(e,t){if(isSourceFile(e))return e.symbol;const n=e.parent.symbol;if(n.valueDeclaration&&isExternalModuleAugmentation(n.valueDeclaration))return t.getMergedSymbol(n);return n}(a.parent,s),l=getSyntacticModifierFlags(a)||(isExportAssignment(a)&&!a.isExportEquals?2080:0),d=!!(2048&l);if(!(32&l)||!d&&c.exports.has("default"))return{error:getLocaleSpecificMessage(Ot.This_file_already_has_a_default_export)};const noSymbolError=e=>isIdentifier(e)&&s.getSymbolAtLocation(e)?void 0:{error:getLocaleSpecificMessage(Ot.Can_only_convert_named_export)};switch(a.kind){case 263:case 264:case 265:case 267:case 266:case 268:{const e=a;if(!e.name)return;return noSymbolError(e.name)||{exportNode:e,exportName:e.name,wasDefault:d,exportingModuleSymbol:c}}case 244:{const e=a;if(!(2&e.declarationList.flags)||1!==e.declarationList.declarations.length)return;const t=first(e.declarationList.declarations);if(!t.initializer)return;return h.assert(!d,"Can't have a default flag here"),noSymbolError(t.name)||{exportNode:e,exportName:t.name,wasDefault:d,exportingModuleSymbol:c}}case 278:{const e=a;if(e.isExportEquals)return;return noSymbolError(e.expression)||{exportNode:e,exportName:e.expression,wasDefault:d,exportingModuleSymbol:c}}default:return}}function makeImportSpecifier(e,t){return Wr.createImportSpecifier(!1,e===t?void 0:Wr.createIdentifier(e),Wr.createIdentifier(t))}function makeExportSpecifier(e,t){return Wr.createExportSpecifier(!1,e===t?void 0:Wr.createIdentifier(e),Wr.createIdentifier(t))}registerRefactor(Ec,{kinds:[Nc.kind,kc.kind],getAvailableActions:function getRefactorActionsToConvertBetweenNamedAndDefaultExports(e){const t=getInfo2(e,"invoked"===e.triggerReason);if(!t)return l;if(!isRefactorErrorInfo(t)){const e=t.wasDefault?Nc:kc;return[{name:Ec,description:e.description,actions:[e]}]}return e.preferences.provideRefactorNotApplicableReason?[{name:Ec,description:getLocaleSpecificMessage(Ot.Convert_default_export_to_named_export),actions:[{...Nc,notApplicableReason:t.error},{...kc,notApplicableReason:t.error}]}]:l},getEditsForAction:function getRefactorEditsToConvertBetweenNamedAndDefaultExports(e,t){h.assert(t===Nc.name||t===kc.name,"Unexpected action name");const n=getInfo2(e);h.assert(n&&!isRefactorErrorInfo(n),"Expected applicable refactor info");const r=$m.ChangeTracker.with(e,t=>function doChange(e,t,n,r,i){(function changeExport(e,{wasDefault:t,exportNode:n,exportName:r},i,o){if(t)if(isExportAssignment(n)&&!n.isExportEquals){const t=n.expression,r=makeExportSpecifier(t.text,t.text);i.replaceNode(e,n,Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([r])))}else i.delete(e,h.checkDefined(findModifier(n,90),"Should find a default keyword in modifier list"));else{const t=h.checkDefined(findModifier(n,95),"Should find an export keyword in modifier list");switch(n.kind){case 263:case 264:case 265:i.insertNodeAfter(e,t,Wr.createToken(90));break;case 244:const a=first(n.declarationList.declarations);if(!vm.Core.isSymbolReferencedInFile(r,o,e)&&!a.type){i.replaceNode(e,n,Wr.createExportDefault(h.checkDefined(a.initializer,"Initializer was previously known to be present")));break}case 267:case 266:case 268:i.deleteModifier(e,t),i.insertNodeAfter(e,n,Wr.createExportDefault(Wr.createIdentifier(r.text)));break;default:h.fail(`Unexpected exportNode kind ${n.kind}`)}}})(e,n,r,t.getTypeChecker()),function changeImports(e,{wasDefault:t,exportName:n,exportingModuleSymbol:r},i,o){const a=e.getTypeChecker(),s=h.checkDefined(a.getSymbolAtLocation(n),"Export name should resolve to a symbol");vm.Core.eachExportReference(e.getSourceFiles(),a,o,s,r,n.text,t,e=>{if(n===e)return;const r=e.getSourceFile();t?function changeDefaultToNamedImport(e,t,n,r){const{parent:i}=t;switch(i.kind){case 212:n.replaceNode(e,t,Wr.createIdentifier(r));break;case 277:case 282:{const t=i;n.replaceNode(e,t,makeImportSpecifier(r,t.name.text));break}case 274:{const o=i;h.assert(o.name===t,"Import clause name should match provided ref");const a=makeImportSpecifier(r,t.text),{namedBindings:s}=o;if(s)if(275===s.kind){n.deleteRange(e,{pos:t.getStart(e),end:s.getStart(e)});const i=isStringLiteral(o.parent.moduleSpecifier)?quotePreferenceFromString(o.parent.moduleSpecifier,e):1,a=makeImport(void 0,[makeImportSpecifier(r,t.text)],o.parent.moduleSpecifier,i);n.insertNodeAfter(e,o.parent,a)}else n.delete(e,t),n.insertNodeAtEndOfList(e,s.elements,a);else n.replaceNode(e,t,Wr.createNamedImports([a]));break}case 206:const o=i;n.replaceNode(e,i,Wr.createImportTypeNode(o.argument,o.attributes,Wr.createIdentifier(r),o.typeArguments,o.isTypeOf));break;default:h.failBadSyntaxKind(i)}}(r,e,i,n.text):function changeNamedToDefaultImport(e,t,n){const r=t.parent;switch(r.kind){case 212:n.replaceNode(e,t,Wr.createIdentifier("default"));break;case 277:{const t=Wr.createIdentifier(r.name.text);1===r.parent.elements.length?n.replaceNode(e,r.parent,t):(n.delete(e,r),n.insertNodeBefore(e,r.parent,t));break}case 282:n.replaceNode(e,r,makeExportSpecifier("default",r.name.text));break;default:h.assertNever(r,`Unexpected parent kind ${r.kind}`)}}(r,e,i)})}(t,n,r,i)}(e.file,e.program,n,t,e.cancellationToken));return{edits:r,renameFilename:void 0,renameLocation:void 0}}});var Fc="Convert import",Pc={0:{name:"Convert namespace import to named imports",description:getLocaleSpecificMessage(Ot.Convert_namespace_import_to_named_imports),kind:"refactor.rewrite.import.named"},2:{name:"Convert named imports to namespace import",description:getLocaleSpecificMessage(Ot.Convert_named_imports_to_namespace_import),kind:"refactor.rewrite.import.namespace"},1:{name:"Convert named imports to default import",description:getLocaleSpecificMessage(Ot.Convert_named_imports_to_default_import),kind:"refactor.rewrite.import.default"}};function getImportConversionInfo(e,t=!0){const{file:n}=e,r=getRefactorContextSpan(e),i=getTokenAtPosition(n,r.start),o=t?findAncestor(i,or(isImportDeclaration,isJSDocImportTag)):getParentNodeInSpan(i,n,r);if(void 0===o||!isImportDeclaration(o)&&!isJSDocImportTag(o))return{error:"Selection is not an import declaration."};const a=r.start+r.length,s=findNextToken(o,o.parent,n);if(s&&a>s.getStart())return;const{importClause:c}=o;if(!c)return{error:getLocaleSpecificMessage(Ot.Could_not_find_import_clause)};if(!c.namedBindings)return{error:getLocaleSpecificMessage(Ot.Could_not_find_namespace_import_or_named_imports)};if(275===c.namedBindings.kind)return{convertTo:0,import:c.namedBindings};return getShouldUseDefault(e.program,c)?{convertTo:1,import:c.namedBindings}:{convertTo:2,import:c.namedBindings}}function getShouldUseDefault(e,t){return $n(e.getCompilerOptions())&&function isExportEqualsModule(e,t){const n=t.resolveExternalModuleName(e);if(!n)return!1;const r=t.resolveExternalModuleSymbol(n);return n!==r}(t.parent.moduleSpecifier,e.getTypeChecker())}function getRightOfPropertyAccessOrQualifiedName(e){return isPropertyAccessExpression(e)?e.name:e.right}function doChangeNamedToNamespaceOrDefault(e,t,n,r,i=getShouldUseDefault(t,r.parent)){const o=t.getTypeChecker(),a=r.parent.parent,{moduleSpecifier:s}=a,c=new Set;r.elements.forEach(e=>{const t=o.getSymbolAtLocation(e.name);t&&c.add(t)});const l=s&&isStringLiteral(s)?moduleSpecifierToValidIdentifier(s.text,99):"module";const d=r.elements.some(function hasNamespaceNameConflict(t){return!!vm.Core.eachSymbolReferenceInFile(t.name,o,e,e=>{const t=o.resolveName(l,e,-1,!0);return!!t&&(!c.has(t)||isExportSpecifier(e.parent))})})?getUniqueName(l,e):l,p=new Set;for(const t of r.elements){const r=t.propertyName||t.name;vm.Core.eachSymbolReferenceInFile(t.name,o,e,i=>{const o=11===r.kind?Wr.createElementAccessExpression(Wr.createIdentifier(d),Wr.cloneNode(r)):Wr.createPropertyAccessExpression(Wr.createIdentifier(d),Wr.cloneNode(r));isShorthandPropertyAssignment(i.parent)?n.replaceNode(e,i.parent,Wr.createPropertyAssignment(i.text,o)):isExportSpecifier(i.parent)?p.add(t):n.replaceNode(e,i,o)})}if(n.replaceNode(e,r,i?Wr.createIdentifier(d):Wr.createNamespaceImport(Wr.createIdentifier(d))),p.size&&isImportDeclaration(a)){const t=arrayFrom(p.values(),e=>Wr.createImportSpecifier(e.isTypeOnly,e.propertyName&&Wr.cloneNode(e.propertyName),Wr.cloneNode(e.name)));n.insertNodeAfter(e,r.parent.parent,createImport(a,void 0,t))}}function createImport(e,t,n){return Wr.createImportDeclaration(void 0,createImportClause(t,n),e.moduleSpecifier,void 0)}function createImportClause(e,t){return Wr.createImportClause(void 0,e,t&&t.length?Wr.createNamedImports(t):void 0)}registerRefactor(Fc,{kinds:getOwnValues(Pc).map(e=>e.kind),getAvailableActions:function getRefactorActionsToConvertBetweenNamedAndNamespacedImports(e){const t=getImportConversionInfo(e,"invoked"===e.triggerReason);if(!t)return l;if(!isRefactorErrorInfo(t)){const e=Pc[t.convertTo];return[{name:Fc,description:e.description,actions:[e]}]}return e.preferences.provideRefactorNotApplicableReason?getOwnValues(Pc).map(e=>({name:Fc,description:e.description,actions:[{...e,notApplicableReason:t.error}]})):l},getEditsForAction:function getRefactorEditsToConvertBetweenNamedAndNamespacedImports(e,t){h.assert(some(getOwnValues(Pc),e=>e.name===t),"Unexpected action name");const n=getImportConversionInfo(e);h.assert(n&&!isRefactorErrorInfo(n),"Expected applicable refactor info");const r=$m.ChangeTracker.with(e,t=>function doChange2(e,t,n,r){const i=t.getTypeChecker();0===r.convertTo?function doChangeNamespaceToNamed(e,t,n,r,i){let o=!1;const a=[],s=new Map;vm.Core.eachSymbolReferenceInFile(r.name,t,e,e=>{if(isPropertyAccessOrQualifiedName(e.parent)){const n=getRightOfPropertyAccessOrQualifiedName(e.parent).text;t.resolveName(n,e,-1,!0)&&s.set(n,!0),h.assert(function getLeftOfPropertyAccessOrQualifiedName(e){return isPropertyAccessExpression(e)?e.expression:e.left}(e.parent)===e,"Parent expression should match id"),a.push(e.parent)}else o=!0});const c=new Map;for(const t of a){const r=getRightOfPropertyAccessOrQualifiedName(t).text;let i=c.get(r);void 0===i&&c.set(r,i=s.has(r)?getUniqueName(r,e):r),n.replaceNode(e,t,Wr.createIdentifier(i))}const l=[];c.forEach((e,t)=>{l.push(Wr.createImportSpecifier(!1,e===t?void 0:Wr.createIdentifier(t),Wr.createIdentifier(e)))});const d=r.parent.parent;if(o&&!i&&isImportDeclaration(d))n.insertNodeAfter(e,d,createImport(d,void 0,l));else{const t=o?Wr.createIdentifier(r.name.text):void 0;n.replaceNode(e,r.parent,createImportClause(t,l))}}(e,i,n,r.import,$n(t.getCompilerOptions())):doChangeNamedToNamespaceOrDefault(e,t,n,r.import,1===r.convertTo)}(e.file,e.program,t,n));return{edits:r,renameFilename:void 0,renameLocation:void 0}}});var Dc="Extract type",Ic={name:"Extract to type alias",description:getLocaleSpecificMessage(Ot.Extract_to_type_alias),kind:"refactor.extract.type"},Ac={name:"Extract to interface",description:getLocaleSpecificMessage(Ot.Extract_to_interface),kind:"refactor.extract.interface"},Oc={name:"Extract to typedef",description:getLocaleSpecificMessage(Ot.Extract_to_typedef),kind:"refactor.extract.typedef"};function getRangeToExtract(e,t=!0){const{file:n,startPosition:r}=e,i=isSourceFileJS(n),o=createTextRangeFromSpan(getRefactorContextSpan(e)),a=o.pos===o.end&&t,s=function getFirstTypeAt(e,t,n,r){const i=[()=>getTokenAtPosition(e,t),()=>getTouchingToken(e,t,()=>!0)];for(const t of i){const i=t(),o=nodeOverlapsWithStartEnd(i,e,n.pos,n.end),a=findAncestor(i,t=>t.parent&&isTypeNode(t)&&!rangeContainsSkipTrivia(n,t.parent,e)&&(r||o));if(a)return a}return}(n,r,o,a);if(!s||!isTypeNode(s))return{info:{error:getLocaleSpecificMessage(Ot.Selection_is_not_a_valid_type_node)},affectedTextRange:void 0};const c=e.program.getTypeChecker(),d=function getEnclosingNode(e,t){return findAncestor(e,isStatement)||(t?findAncestor(e,isJSDoc):void 0)}(s,i);if(void 0===d)return{info:{error:getLocaleSpecificMessage(Ot.No_type_could_be_extracted_from_this_type_node)},affectedTextRange:void 0};const p=function getExpandedSelectionNode(e,t){return findAncestor(e,e=>e===t?"quit":!(!isUnionTypeNode(e.parent)&&!isIntersectionTypeNode(e.parent)))??e}(s,d);if(!isTypeNode(p))return{info:{error:getLocaleSpecificMessage(Ot.Selection_is_not_a_valid_type_node)},affectedTextRange:void 0};const u=[];(isUnionTypeNode(p.parent)||isIntersectionTypeNode(p.parent))&&o.end>s.end&&addRange(u,p.parent.types.filter(e=>nodeOverlapsWithStartEnd(e,n,o.pos,o.end)));const m=u.length>1?u:p,{typeParameters:_,affectedTextRange:f}=function collectTypeParameters(e,t,n,r){const i=[],o=toArray(t),a={pos:o[0].getStart(r),end:o[o.length-1].end};for(const e of o)if(visitor(e))return{typeParameters:void 0,affectedTextRange:void 0};return{typeParameters:i,affectedTextRange:a};function visitor(t){if(isTypeReferenceNode(t)){if(isIdentifier(t.typeName)){const o=t.typeName,s=e.resolveName(o.text,o,262144,!0);for(const e of(null==s?void 0:s.declarations)||l)if(isTypeParameterDeclaration(e)&&e.getSourceFile()===r){if(e.name.escapedText===o.escapedText&&rangeContainsSkipTrivia(e,a,r))return!0;if(rangeContainsSkipTrivia(n,e,r)&&!rangeContainsSkipTrivia(a,e,r)){pushIfUnique(i,e);break}}}}else if(isInferTypeNode(t)){const e=findAncestor(t,e=>isConditionalTypeNode(e)&&rangeContainsSkipTrivia(e.extendsType,t,r));if(!e||!rangeContainsSkipTrivia(a,e,r))return!0}else if(isTypePredicateNode(t)||isThisTypeNode(t)){const e=findAncestor(t.parent,isFunctionLike);if(e&&e.type&&rangeContainsSkipTrivia(e.type,t,r)&&!rangeContainsSkipTrivia(a,e,r))return!0}else if(isTypeQueryNode(t))if(isIdentifier(t.exprName)){const i=e.resolveName(t.exprName.text,t.exprName,111551,!1);if((null==i?void 0:i.valueDeclaration)&&rangeContainsSkipTrivia(n,i.valueDeclaration,r)&&!rangeContainsSkipTrivia(a,i.valueDeclaration,r))return!0}else if(isThisIdentifier(t.exprName.left)&&!rangeContainsSkipTrivia(a,t.parent,r))return!0;return r&&isTupleTypeNode(t)&&getLineAndCharacterOfPosition(r,t.pos).line===getLineAndCharacterOfPosition(r,t.end).line&&setEmitFlags(t,1),forEachChild(t,visitor)}}(c,m,d,n);if(!_)return{info:{error:getLocaleSpecificMessage(Ot.No_type_could_be_extracted_from_this_type_node)},affectedTextRange:void 0};return{info:{isJS:i,selection:m,enclosingNode:d,typeParameters:_,typeElements:flattenTypeLiteralNodeReference(c,m)},affectedTextRange:f}}function flattenTypeLiteralNodeReference(e,t){if(t){if(isArray(t)){const n=[];for(const r of t){const t=flattenTypeLiteralNodeReference(e,r);if(!t)return;addRange(n,t)}return n}if(isIntersectionTypeNode(t)){const n=[],r=new Set;for(const i of t.types){const t=flattenTypeLiteralNodeReference(e,i);if(!t||!t.every(e=>e.name&&addToSeen(r,getNameFromPropertyName(e.name))))return;addRange(n,t)}return n}return isParenthesizedTypeNode(t)?flattenTypeLiteralNodeReference(e,t.type):isTypeLiteralNode(t)?t.members:void 0}}function rangeContainsSkipTrivia(e,t,n){return rangeContainsStartEnd(e,skipTrivia(n.text,t.pos),t.end)}function getNodesToEdit(e){return isArray(e.selection)?{firstTypeNode:e.selection[0],lastTypeNode:e.selection[e.selection.length-1],newTypeNode:isUnionTypeNode(e.selection[0].parent)?Wr.createUnionTypeNode(e.selection):Wr.createIntersectionTypeNode(e.selection)}:{firstTypeNode:e.selection,lastTypeNode:e.selection,newTypeNode:e.selection}}registerRefactor(Dc,{kinds:[Ic.kind,Ac.kind,Oc.kind],getAvailableActions:function getRefactorActionsToExtractType(e){const{info:t,affectedTextRange:n}=getRangeToExtract(e,"invoked"===e.triggerReason);if(!t)return l;if(!isRefactorErrorInfo(t)){return[{name:Dc,description:getLocaleSpecificMessage(Ot.Extract_type),actions:t.isJS?[Oc]:append([Ic],t.typeElements&&Ac)}].map(t=>({...t,actions:t.actions.map(t=>({...t,range:n?{start:{line:getLineAndCharacterOfPosition(e.file,n.pos).line,offset:getLineAndCharacterOfPosition(e.file,n.pos).character},end:{line:getLineAndCharacterOfPosition(e.file,n.end).line,offset:getLineAndCharacterOfPosition(e.file,n.end).character}}:void 0}))}))}return e.preferences.provideRefactorNotApplicableReason?[{name:Dc,description:getLocaleSpecificMessage(Ot.Extract_type),actions:[{...Oc,notApplicableReason:t.error},{...Ic,notApplicableReason:t.error},{...Ac,notApplicableReason:t.error}]}]:l},getEditsForAction:function getRefactorEditsToExtractType(e,t){const{file:n}=e,{info:r}=getRangeToExtract(e);h.assert(r&&!isRefactorErrorInfo(r),"Expected to find a range to extract");const i=getUniqueName("NewType",n),o=$m.ChangeTracker.with(e,o=>{switch(t){case Ic.name:return h.assert(!r.isJS,"Invalid actionName/JS combo"),function doTypeAliasChange(e,t,n,r){const{enclosingNode:i,typeParameters:o}=r,{firstTypeNode:a,lastTypeNode:s,newTypeNode:c}=getNodesToEdit(r),l=Wr.createTypeAliasDeclaration(void 0,n,o.map(e=>Wr.updateTypeParameterDeclaration(e,e.modifiers,e.name,e.constraint,void 0)),c);e.insertNodeBefore(t,i,ignoreSourceNewlines(l),!0),e.replaceNodeRange(t,a,s,Wr.createTypeReferenceNode(n,o.map(e=>Wr.createTypeReferenceNode(e.name,void 0))),{leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.ExcludeWhitespace})}(o,n,i,r);case Oc.name:return h.assert(r.isJS,"Invalid actionName/JS combo"),function doTypedefChange(e,t,n,r,i){var o;toArray(i.selection).forEach(e=>{setEmitFlags(e,7168)});const{enclosingNode:a,typeParameters:s}=i,{firstTypeNode:c,lastTypeNode:l,newTypeNode:d}=getNodesToEdit(i),p=Wr.createJSDocTypedefTag(Wr.createIdentifier("typedef"),Wr.createJSDocTypeExpression(d),Wr.createIdentifier(r)),u=[];forEach(s,e=>{const t=getEffectiveConstraintOfTypeParameter(e),n=Wr.createTypeParameterDeclaration(void 0,e.name),r=Wr.createJSDocTemplateTag(Wr.createIdentifier("template"),t&&cast(t,isJSDocTypeExpression),[n]);u.push(r)});const m=Wr.createJSDocComment(void 0,Wr.createNodeArray(concatenate(u,[p])));if(isJSDoc(a)){const r=a.getStart(n),i=getNewLineOrDefaultFromHost(t.host,null==(o=t.formatContext)?void 0:o.options);e.insertNodeAt(n,a.getStart(n),m,{suffix:i+i+n.text.slice(getPrecedingNonSpaceCharacterPosition(n.text,r-1),r)})}else e.insertNodeBefore(n,a,m,!0);e.replaceNodeRange(n,c,l,Wr.createTypeReferenceNode(r,s.map(e=>Wr.createTypeReferenceNode(e.name,void 0))))}(o,e,n,i,r);case Ac.name:return h.assert(!r.isJS&&!!r.typeElements,"Invalid actionName/JS combo"),function doInterfaceChange(e,t,n,r){var i;const{enclosingNode:o,typeParameters:a,typeElements:s}=r,c=Wr.createInterfaceDeclaration(void 0,n,a,void 0,s);setTextRange(c,null==(i=s[0])?void 0:i.parent),e.insertNodeBefore(t,o,ignoreSourceNewlines(c),!0);const{firstTypeNode:l,lastTypeNode:d}=getNodesToEdit(r);e.replaceNodeRange(t,l,d,Wr.createTypeReferenceNode(n,a.map(e=>Wr.createTypeReferenceNode(e.name,void 0))),{leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.ExcludeWhitespace})}(o,n,i,r);default:h.fail("Unexpected action name")}}),a=n.fileName;return{edits:o,renameFilename:a,renameLocation:getRenameLocation(o,a,i,!1)}}});var wc="Move to file",Lc=getLocaleSpecificMessage(Ot.Move_to_file),Mc={name:"Move to file",description:Lc,kind:"refactor.move.file"};function error(e){return{edits:[],renameFilename:void 0,renameLocation:void 0,notApplicableReason:e}}function getNewStatementsAndRemoveFromOldFile(e,t,n,r,i,o,a,s,c,l){const d=o.getTypeChecker(),p=takeWhile(e.statements,isPrologueDirective),u=!fileShouldUseJavaScriptRequire(t.fileName,o,a,!!e.commonJsModuleIndicator),m=getQuotePreference(e,s);addImportsForMovedSymbols(n.oldFileImportsFromTargetFile,t.fileName,l,o),function deleteUnusedOldImports(e,t,n,r){for(const i of e.statements)contains(t,i)||forEachImportInStatement(i,e=>{forEachAliasDeclarationInImportOrRequire(e,e=>{n.has(e.symbol)&&r.removeExistingImport(e)})})}(e,i.all,n.unusedImportsFromOldFile,l),l.writeFixes(r,m),function deleteMovedStatements(e,t,n){for(const{first:r,afterLast:i}of t)n.deleteNodeRangeExcludingEnd(e,r,i)}(e,i.ranges,r),function updateImportsInOtherFiles(e,t,n,r,i,o,a){const s=t.getTypeChecker();for(const c of t.getSourceFiles())if(c!==r)for(const l of c.statements)forEachImportInStatement(l,d=>{if(s.getSymbolAtLocation(moduleSpecifierFromImport(d))!==r.symbol)return;const shouldMove=e=>{const t=isBindingElement(e.parent)?getPropertySymbolFromBindingElement(s,e.parent):skipAlias(s.getSymbolAtLocation(e),s);return!!t&&i.has(t)};deleteUnusedImports(c,d,e,shouldMove);const p=resolvePath(getDirectoryPath(getNormalizedAbsolutePath(r.fileName,t.getCurrentDirectory())),o);if(0===getStringComparer(!t.useCaseSensitiveFileNames())(p,c.fileName))return;const u=Wo.getModuleSpecifier(t.getCompilerOptions(),c,c.fileName,p,createModuleSpecifierResolutionHost(t,n)),m=filterImport(d,makeStringLiteral(u,a),shouldMove);m&&e.insertNodeAfter(c,l,m);const _=getNamespaceLikeImport(d);_&&updateNamespaceLikeImport(e,c,s,i,u,_,d,a)})}(r,o,a,e,n.movedSymbols,t.fileName,m),addExportsInOldFile(e,n.targetFileImportsFromOldFile,r,u),addTargetFileImports(e,n.oldImportsNeededByTargetFile,n.targetFileImportsFromOldFile,d,o,c),!isFullSourceFile(t)&&p.length&&r.insertStatementsInNewFile(t.fileName,p,e),c.writeFixes(r,m);const _=function addExports(e,t,n,r){return flatMap(t,t=>{if(isTopLevelDeclarationStatement(t)&&!isExported(e,t,r)&&forEachTopLevelDeclaration(t,e=>{var t;return n.includes(h.checkDefined(null==(t=tryCast(e,canHaveSymbol))?void 0:t.symbol))})){const e=function addExport(e,t){return t?[addEs6Export(e)]:function addCommonjsExport(e){return[e,...getNamesToExportInCommonJS(e).map(createExportAssignment)]}(e)}(getSynthesizedDeepClone(t),r);if(e)return e}return getSynthesizedDeepClone(t)})}(e,i.all,arrayFrom(n.oldFileImportsFromTargetFile.keys()),u);isFullSourceFile(t)&&t.statements.length>0?function moveStatementsToTargetFile(e,t,n,r,i){var o;const a=new Set,s=null==(o=r.symbol)?void 0:o.exports;if(s){const n=t.getTypeChecker(),o=new Map;for(const e of i.all)isTopLevelDeclarationStatement(e)&&hasSyntacticModifier(e,32)&&forEachTopLevelDeclaration(e,e=>{var t;const n=firstDefined(canHaveSymbol(e)?null==(t=s.get(e.symbol.escapedName))?void 0:t.declarations:void 0,e=>isExportDeclaration(e)?e:isExportSpecifier(e)?tryCast(e.parent.parent,isExportDeclaration):void 0);n&&n.moduleSpecifier&&o.set(n,(o.get(n)||new Set).add(e))});for(const[t,i]of arrayFrom(o))if(t.exportClause&&isNamedExports(t.exportClause)&&length(t.exportClause.elements)){const o=t.exportClause.elements,s=filter(o,e=>void 0===find(skipAlias(e.symbol,n).declarations,e=>isTopLevelDeclaration(e)&&i.has(e)));if(0===length(s)){e.deleteNode(r,t),a.add(t);continue}length(s)isExportDeclaration(e)&&!!e.moduleSpecifier&&!a.has(e));c?e.insertNodesBefore(r,c,n,!0):e.insertNodesAfter(r,r.statements[r.statements.length-1],n)}(r,o,_,t,i):isFullSourceFile(t)?r.insertNodesAtEndOfFile(t,_,!1):r.insertStatementsInNewFile(t.fileName,c.hasFixes()?[4,..._]:_,e)}function addNewFileToTsconfig(e,t,n,r,i){const o=e.getCompilerOptions().configFile;if(!o)return;const a=normalizePath(combinePaths(n,"..",r)),s=getRelativePathFromFile(o.fileName,a,i),c=o.statements[0]&&tryCast(o.statements[0].expression,isObjectLiteralExpression),l=c&&find(c.properties,e=>isPropertyAssignment(e)&&isStringLiteral(e.name)&&"files"===e.name.text);l&&isArrayLiteralExpression(l.initializer)&&t.insertNodeInListAfter(o,last(l.initializer.elements),Wr.createStringLiteral(s),l.initializer.elements)}function addExportsInOldFile(e,t,n,r){const i=nodeSeenTracker();t.forEach((t,o)=>{if(o.declarations)for(const t of o.declarations){if(!isTopLevelDeclaration(t))continue;const o=nameOfTopLevelDeclaration(t);if(!o)continue;const a=getTopLevelDeclarationStatement(t);i(a)&&addExportToChanges(e,a,o,n,r)}})}function getNamespaceLikeImport(e){switch(e.kind){case 273:return e.importClause&&e.importClause.namedBindings&&275===e.importClause.namedBindings.kind?e.importClause.namedBindings.name:void 0;case 272:return e.name;case 261:return tryCast(e.name,isIdentifier);default:return h.assertNever(e,`Unexpected node kind ${e.kind}`)}}function updateNamespaceLikeImport(e,t,n,r,i,o,a,s){const c=moduleSpecifierToValidIdentifier(i,99);let l=!1;const d=[];if(vm.Core.eachSymbolReferenceInFile(o,n,t,e=>{isPropertyAccessExpression(e.parent)&&(l=l||!!n.resolveName(c,e,-1,!0),r.has(n.getSymbolAtLocation(e.parent.name))&&d.push(e))}),d.length){const n=l?getUniqueName(c,t):c;for(const r of d)e.replaceNode(t,r,Wr.createIdentifier(n));e.insertNodeAfter(t,a,function updateNamespaceLikeImportNode(e,t,n,r){const i=Wr.createIdentifier(t),o=makeStringLiteral(n,r);switch(e.kind){case 273:return Wr.createImportDeclaration(void 0,Wr.createImportClause(void 0,void 0,Wr.createNamespaceImport(i)),o,void 0);case 272:return Wr.createImportEqualsDeclaration(void 0,!1,i,Wr.createExternalModuleReference(o));case 261:return Wr.createVariableDeclaration(i,void 0,void 0,createRequireCall(o));default:return h.assertNever(e,`Unexpected node kind ${e.kind}`)}}(a,c,i,s))}}function createRequireCall(e){return Wr.createCallExpression(Wr.createIdentifier("require"),void 0,[e])}function moduleSpecifierFromImport(e){return 273===e.kind?e.moduleSpecifier:272===e.kind?e.moduleReference.expression:e.initializer.arguments[0]}function forEachImportInStatement(e,t){if(isImportDeclaration(e))isStringLiteral(e.moduleSpecifier)&&t(e);else if(isImportEqualsDeclaration(e))isExternalModuleReference(e.moduleReference)&&isStringLiteralLike(e.moduleReference.expression)&&t(e);else if(isVariableStatement(e))for(const n of e.declarationList.declarations)n.initializer&&isRequireCall(n.initializer,!0)&&t(n)}function forEachAliasDeclarationInImportOrRequire(e,t){var n,r,i,o,a;if(273===e.kind){if((null==(n=e.importClause)?void 0:n.name)&&t(e.importClause),275===(null==(i=null==(r=e.importClause)?void 0:r.namedBindings)?void 0:i.kind)&&t(e.importClause.namedBindings),276===(null==(a=null==(o=e.importClause)?void 0:o.namedBindings)?void 0:a.kind))for(const n of e.importClause.namedBindings.elements)t(n)}else if(272===e.kind)t(e);else if(261===e.kind)if(80===e.name.kind)t(e);else if(207===e.name.kind)for(const n of e.name.elements)isIdentifier(n.name)&&t(n)}function addImportsForMovedSymbols(e,t,n,r){for(const[i,o]of e){const e=getNameForExportedSymbol(i,zn(r.getCompilerOptions())),a="default"===i.name&&i.parent?1:0;n.addImportForNonExistentExport(e,t,a,i.flags,o)}}function isExported(e,t,n,r){var i;return n?!isExpressionStatement(t)&&hasSyntacticModifier(t,32)||!!(r&&e.symbol&&(null==(i=e.symbol.exports)?void 0:i.has(r.escapedText))):!!e.symbol&&!!e.symbol.exports&&getNamesToExportInCommonJS(t).some(t=>e.symbol.exports.has(escapeLeadingUnderscores(t)))}function deleteUnusedImports(e,t,n,r){if(273===t.kind&&t.importClause){const{name:i,namedBindings:o}=t.importClause;if((!i||r(i))&&(!o||276===o.kind&&0!==o.elements.length&&o.elements.every(e=>r(e.name))))return n.delete(e,t)}forEachAliasDeclarationInImportOrRequire(t,t=>{t.name&&isIdentifier(t.name)&&r(t.name)&&n.delete(e,t)})}function isTopLevelDeclarationStatement(e){return h.assert(isSourceFile(e.parent),"Node parent should be a SourceFile"),isNonVariableTopLevelDeclaration(e)||isVariableStatement(e)}function addEs6Export(e){const t=canHaveModifiers(e)?concatenate([Wr.createModifier(95)],getModifiers(e)):void 0;switch(e.kind){case 263:return Wr.updateFunctionDeclaration(e,t,e.asteriskToken,e.name,e.typeParameters,e.parameters,e.type,e.body);case 264:const n=canHaveDecorators(e)?getDecorators(e):void 0;return Wr.updateClassDeclaration(e,concatenate(n,t),e.name,e.typeParameters,e.heritageClauses,e.members);case 244:return Wr.updateVariableStatement(e,t,e.declarationList);case 268:return Wr.updateModuleDeclaration(e,t,e.name,e.body);case 267:return Wr.updateEnumDeclaration(e,t,e.name,e.members);case 266:return Wr.updateTypeAliasDeclaration(e,t,e.name,e.typeParameters,e.type);case 265:return Wr.updateInterfaceDeclaration(e,t,e.name,e.typeParameters,e.heritageClauses,e.members);case 272:return Wr.updateImportEqualsDeclaration(e,t,e.isTypeOnly,e.name,e.moduleReference);case 245:return h.fail();default:return h.assertNever(e,`Unexpected declaration kind ${e.kind}`)}}function createExportAssignment(e){return Wr.createExpressionStatement(Wr.createBinaryExpression(Wr.createPropertyAccessExpression(Wr.createIdentifier("exports"),Wr.createIdentifier(e)),64,Wr.createIdentifier(e)))}function getNamesToExportInCommonJS(e){switch(e.kind){case 263:case 264:return[e.name.text];case 244:return mapDefined(e.declarationList.declarations,e=>isIdentifier(e.name)?e.name.text:void 0);case 268:case 267:case 266:case 265:case 272:return l;case 245:return h.fail("Can't export an ExpressionStatement");default:return h.assertNever(e,`Unexpected decl kind ${e.kind}`)}}function filterImport(e,t,n){switch(e.kind){case 273:{const r=e.importClause;if(!r)return;const i=r.name&&n(r.name)?r.name:void 0,o=r.namedBindings&&function filterNamedBindings(e,t){if(275===e.kind)return t(e.name)?e:void 0;{const n=e.elements.filter(e=>t(e.name));return n.length?Wr.createNamedImports(n):void 0}}(r.namedBindings,n);return i||o?Wr.createImportDeclaration(void 0,Wr.createImportClause(r.phaseModifier,i,o),getSynthesizedDeepClone(t),void 0):void 0}case 272:return n(e.name)?e:void 0;case 261:{const r=function filterBindingName(e,t){switch(e.kind){case 80:return t(e)?e:void 0;case 208:return e;case 207:{const n=e.elements.filter(e=>e.propertyName||!isIdentifier(e.name)||t(e.name));return n.length?Wr.createObjectBindingPattern(n):void 0}}}(e.name,n);return r?function makeVariableStatement(e,t,n,r=2){return Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(e,void 0,t,n)],r))}(r,e.type,createRequireCall(t),e.parent.flags):void 0}default:return h.assertNever(e,`Unexpected import kind ${e.kind}`)}}function nameOfTopLevelDeclaration(e){return isExpressionStatement(e)?tryCast(e.expression.left.name,isIdentifier):tryCast(e.name,isIdentifier)}function getTopLevelDeclarationStatement(e){switch(e.kind){case 261:return e.parent.parent;case 209:return getTopLevelDeclarationStatement(cast(e.parent.parent,e=>isVariableDeclaration(e)||isBindingElement(e)));default:return e}}function addExportToChanges(e,t,n,r,i){if(!isExported(e,t,i,n))if(i)isExpressionStatement(t)||r.insertExportModifier(e,t);else{const n=getNamesToExportInCommonJS(t);0!==n.length&&r.insertNodesAfter(e,t,n.map(createExportAssignment))}}function createNewFileName(e,t,n,r){const i=t.getTypeChecker();if(r){const t=getUsageInfo(e,r.all,i),o=getDirectoryPath(e.fileName),a=extensionFromPath(e.fileName),s=combinePaths(o,function makeUniqueFilename(e,t,n,r){let i=e;for(let o=1;;o++){const a=combinePaths(n,i+t);if(!r.fileExists(a))return i;i=`${e}.${o}`}}(function inferNewFileName(e,t){return forEachKey(e,symbolNameNoDefault)||forEachKey(t,symbolNameNoDefault)||"newFile"}(t.oldFileImportsFromTargetFile,t.movedSymbols),a,o,n))+a;return s}return""}function getStatementsToMove(e){const t=function getRangeToMove(e){const{file:t}=e,n=createTextRangeFromSpan(getRefactorContextSpan(e)),{statements:r}=t;let i=findIndex(r,e=>e.end>n.pos);if(-1===i)return;const o=getOverloadRangeToMove(t,r[i]);o&&(i=o.start);let a=findIndex(r,e=>e.end>=n.end,i);-1!==a&&n.end<=r[a].getStart()&&a--;const s=getOverloadRangeToMove(t,r[a]);return s&&(a=s.end),{toMove:r.slice(i,-1===a?r.length:a+1),afterLast:-1===a?void 0:r[a+1]}}(e);if(void 0===t)return;const n=[],r=[],{toMove:i,afterLast:o}=t;return getRangesWhere(i,isAllowedStatementToMove,(e,t)=>{for(let r=e;r!!(2&e.transformFlags))}function isAllowedStatementToMove(e){return!function isPureImport(e){switch(e.kind){case 273:return!0;case 272:return!hasSyntacticModifier(e,32);case 244:return e.declarationList.declarations.every(e=>!!e.initializer&&isRequireCall(e.initializer,!0));default:return!1}}(e)&&!isPrologueDirective(e)}function getUsageInfo(e,t,n,r=new Set,i){var o;const a=new Set,s=new Map,c=new Map,l=function getJsxNamespaceSymbol(e){if(void 0===e)return;const t=n.getJsxNamespace(e),r=n.resolveName(t,e,1920,!0);return r&&some(r.declarations,isInImport)?r:void 0}(containsJsx(t));l&&s.set(l,[!1,tryCast(null==(o=l.declarations)?void 0:o[0],e=>isImportSpecifier(e)||isImportClause(e)||isNamespaceImport(e)||isImportEqualsDeclaration(e)||isBindingElement(e)||isVariableDeclaration(e))]);for(const e of t)forEachTopLevelDeclaration(e,e=>{a.add(h.checkDefined(isExpressionStatement(e)?n.getSymbolAtLocation(e.expression.left):e.symbol,"Need a symbol here"))});const d=new Set;for(const o of t)forEachReference(o,n,i,(t,i)=>{if(!some(t.declarations))return;if(r.has(skipAlias(t,n)))return void d.add(t);const o=find(t.declarations,isInImport);if(o){const e=s.get(t);s.set(t,[(void 0===e||e)&&i,tryCast(o,e=>isImportSpecifier(e)||isImportClause(e)||isNamespaceImport(e)||isImportEqualsDeclaration(e)||isBindingElement(e)||isVariableDeclaration(e))])}else!a.has(t)&&every(t.declarations,t=>{return isTopLevelDeclaration(t)&&(isVariableDeclaration(n=t)?n.parent.parent.parent:n.parent)===e;var n})&&c.set(t,i)});for(const e of s.keys())d.add(e);const p=new Map;for(const r of e.statements)contains(t,r)||(l&&2&r.transformFlags&&d.delete(l),forEachReference(r,n,i,(e,t)=>{a.has(e)&&p.set(e,t),d.delete(e)}));return{movedSymbols:a,targetFileImportsFromOldFile:c,oldFileImportsFromTargetFile:p,oldImportsNeededByTargetFile:s,unusedImportsFromOldFile:d}}function forEachReference(e,t,n,r){e.forEachChild(function cb(e){if(isIdentifier(e)&&!isDeclarationName(e)){if(n&&!rangeContainsRange(n,e))return;const i=t.getSymbolAtLocation(e);i&&r(i,isValidTypeOnlyAliasUseSite(e))}else e.forEachChild(cb)})}function forEachTopLevelDeclaration(e,t){switch(e.kind){case 263:case 264:case 268:case 267:case 266:case 265:case 272:return t(e);case 244:return firstDefined(e.declarationList.declarations,e=>forEachTopLevelDeclarationInBindingName(e.name,t));case 245:{const{expression:n}=e;return isBinaryExpression(n)&&1===getAssignmentDeclarationKind(n)?t(e):void 0}}}function isInImport(e){switch(e.kind){case 272:case 277:case 274:case 275:return!0;case 261:return isVariableDeclarationInImport(e);case 209:return isVariableDeclaration(e.parent.parent)&&isVariableDeclarationInImport(e.parent.parent);default:return!1}}function isVariableDeclarationInImport(e){return isSourceFile(e.parent.parent.parent)&&!!e.initializer&&isRequireCall(e.initializer,!0)}function isTopLevelDeclaration(e){return isNonVariableTopLevelDeclaration(e)&&isSourceFile(e.parent)||isVariableDeclaration(e)&&isSourceFile(e.parent.parent.parent)}function forEachTopLevelDeclarationInBindingName(e,t){switch(e.kind){case 80:return t(cast(e.parent,e=>isVariableDeclaration(e)||isBindingElement(e)));case 208:case 207:return firstDefined(e.elements,e=>isOmittedExpression(e)?void 0:forEachTopLevelDeclarationInBindingName(e.name,t));default:return h.assertNever(e,`Unexpected name kind ${e.kind}`)}}function isNonVariableTopLevelDeclaration(e){switch(e.kind){case 263:case 264:case 268:case 267:case 266:case 265:case 272:return!0;default:return!1}}function getOverloadRangeToMove(e,t){if(isFunctionLikeDeclaration(t)){const n=t.symbol.declarations;if(void 0===n||length(n)<=1||!contains(n,t))return;const r=n[0],i=n[length(n)-1],o=mapDefined(n,t=>getSourceFileOfNode(t)===e&&isStatement(t)?t:void 0),a=findIndex(e.statements,e=>e.end>=i.end);return{toMove:o,start:findIndex(e.statements,e=>e.end>=r.end),end:a}}}function getExistingLocals(e,t,n){const r=new Set;for(const t of e.imports){const e=importFromModuleSpecifier(t);if(isImportDeclaration(e)&&e.importClause&&e.importClause.namedBindings&&isNamedImports(e.importClause.namedBindings))for(const t of e.importClause.namedBindings.elements){const e=n.getSymbolAtLocation(t.propertyName||t.name);e&&r.add(skipAlias(e,n))}if(isVariableDeclarationInitializedToRequire(e.parent)&&isObjectBindingPattern(e.parent.name))for(const t of e.parent.name.elements){const e=n.getSymbolAtLocation(t.propertyName||t.name);e&&r.add(skipAlias(e,n))}}for(const i of t)forEachReference(i,n,void 0,t=>{const i=skipAlias(t,n);i.valueDeclaration&&getSourceFileOfNode(i.valueDeclaration).path===e.path&&r.add(i)});return r}function isRefactorErrorInfo(e){return void 0!==e.error}function refactorKindBeginsWith(e,t){return!t||e.substr(0,t.length)===t}function getIdentifierForNode(e,t,n,r){return!isPropertyAccessExpression(e)||isClassLike(t)||n.resolveName(e.name.text,e,111551,!1)||isPrivateIdentifier(e.name)||identifierToKeywordKind(e.name)?getUniqueName(isClassLike(t)?"newProperty":"newLocal",r):e.name.text}function addTargetFileImports(e,t,n,r,i,o){t.forEach(([e,t],n)=>{var i;const a=skipAlias(n,r);r.isUnknownSymbol(a)?o.addVerbatimImport(h.checkDefined(t??findAncestor(null==(i=n.declarations)?void 0:i[0],isAnyImportOrRequireStatement))):void 0===a.parent?(h.assert(void 0!==t,"expected module symbol to have a declaration"),o.addImportForModuleSymbol(n,e,t)):o.addImportFromExportedSymbol(a,e,t)}),addImportsForMovedSymbols(n,e.fileName,o,i)}registerRefactor(wc,{kinds:[Mc.kind],getAvailableActions:function getRefactorActionsToMoveToFile(e,t){const n=e.file,r=getStatementsToMove(e);if(!t)return l;if("implicit"===e.triggerReason&&void 0!==e.endPosition){const t=findAncestor(getTokenAtPosition(n,e.startPosition),isBlockLike),r=findAncestor(getTokenAtPosition(n,e.endPosition),isBlockLike);if(t&&!isSourceFile(t)&&r&&!isSourceFile(r))return l}if(e.preferences.allowTextChangesInNewFiles&&r){const e={start:{line:getLineAndCharacterOfPosition(n,r.all[0].getStart(n)).line,offset:getLineAndCharacterOfPosition(n,r.all[0].getStart(n)).character},end:{line:getLineAndCharacterOfPosition(n,last(r.all).end).line,offset:getLineAndCharacterOfPosition(n,last(r.all).end).character}};return[{name:wc,description:Lc,actions:[{...Mc,range:e}]}]}return e.preferences.provideRefactorNotApplicableReason?[{name:wc,description:Lc,actions:[{...Mc,notApplicableReason:getLocaleSpecificMessage(Ot.Selection_is_not_a_valid_statement_or_statements)}]}]:l},getEditsForAction:function getRefactorEditsToMoveToFile(e,t,n){h.assert(t===wc,"Wrong refactor invoked");const r=h.checkDefined(getStatementsToMove(e)),{host:i,program:o}=e;h.assert(n,"No interactive refactor arguments available");const a=n.targetFile;if(hasJSFileExtension(a)||hasTSFileExtension(a)){if(i.fileExists(a)&&void 0===o.getSourceFile(a))return error(getLocaleSpecificMessage(Ot.Cannot_move_statements_to_the_selected_file));const t=$m.ChangeTracker.with(e,t=>function doChange3(e,t,n,r,i,o,a,s){const c=r.getTypeChecker(),l=!a.fileExists(n),d=l?createFutureSourceFile(n,t.externalModuleIndicator?99:t.commonJsModuleIndicator?1:void 0,r,a):h.checkDefined(r.getSourceFile(n)),p=ed.createImportAdder(t,e.program,e.preferences,e.host),u=ed.createImportAdder(d,e.program,e.preferences,e.host);getNewStatementsAndRemoveFromOldFile(t,d,getUsageInfo(t,i.all,c,l?void 0:getExistingLocals(d,i.all,c)),o,i,r,a,s,u,p),l&&addNewFileToTsconfig(r,o,t.fileName,n,hostGetCanonicalFileName(a))}(e,e.file,n.targetFile,e.program,r,t,e.host,e.preferences));return{edits:t,renameFilename:void 0,renameLocation:void 0}}return error(getLocaleSpecificMessage(Ot.Cannot_move_to_file_selected_file_is_invalid))}});var Rc="Inline variable",Bc=getLocaleSpecificMessage(Ot.Inline_variable),jc={name:Rc,description:Bc,kind:"refactor.inline.variable"};function getInliningInfo(e,t,n,r){var i,o;const a=r.getTypeChecker(),s=getTouchingPropertyName(e,t),c=s.parent;if(isIdentifier(s)){if(isInitializedVariable(c)&&isVariableDeclarationInVariableStatement(c)&&isIdentifier(c.name)){if(1!==(null==(i=a.getMergedSymbol(c.symbol).declarations)?void 0:i.length))return{error:getLocaleSpecificMessage(Ot.Variables_with_multiple_declarations_cannot_be_inlined)};if(isDeclarationExported(c))return;const t=getReferenceNodes(c,a,e);return t&&{references:t,declaration:c,replacement:c.initializer}}if(n){let t=a.resolveName(s.text,s,111551,!1);if(t=t&&a.getMergedSymbol(t),1!==(null==(o=null==t?void 0:t.declarations)?void 0:o.length))return{error:getLocaleSpecificMessage(Ot.Variables_with_multiple_declarations_cannot_be_inlined)};const n=t.declarations[0];if(!isInitializedVariable(n)||!isVariableDeclarationInVariableStatement(n)||!isIdentifier(n.name))return;if(isDeclarationExported(n))return;const r=getReferenceNodes(n,a,e);return r&&{references:r,declaration:n,replacement:n.initializer}}return{error:getLocaleSpecificMessage(Ot.Could_not_find_variable_to_inline)}}}function isDeclarationExported(e){return some(cast(e.parent.parent,isVariableStatement).modifiers,isExportModifier)}function getReferenceNodes(e,t,n){const r=[],i=vm.Core.eachSymbolReferenceInFile(e.name,t,n,t=>!(!vm.isWriteAccessForReference(t)||isShorthandPropertyAssignment(t.parent))||(!(!isExportSpecifier(t.parent)&&!isExportAssignment(t.parent))||(!!isTypeQueryNode(t.parent)||(!!textRangeContainsPositionInclusive(e,t.pos)||void r.push(t)))));return 0===r.length||i?void 0:r}function getReplacementExpression(e,t){t=getSynthesizedDeepClone(t);const{parent:n}=e;return isExpression(n)&&(getExpressionPrecedence(t){for(const t of a){const r=isStringLiteral(c)&&isIdentifier(t)&&walkUpParenthesizedExpressions(t.parent);r&&isTemplateSpan(r)&&!isTaggedTemplateExpression(r.parent.parent)?replaceTemplateStringVariableWithLiteral(e,n,r,c):e.replaceNode(n,t,getReplacementExpression(t,c))}e.delete(n,s)})}}});var Jc="Move to a new file",Wc=getLocaleSpecificMessage(Ot.Move_to_a_new_file),Uc={name:Jc,description:Wc,kind:"refactor.move.newFile"};registerRefactor(Jc,{kinds:[Uc.kind],getAvailableActions:function getRefactorActionsToMoveToNewFile(e){const t=getStatementsToMove(e),n=e.file;if("implicit"===e.triggerReason&&void 0!==e.endPosition){const t=findAncestor(getTokenAtPosition(n,e.startPosition),isBlockLike),r=findAncestor(getTokenAtPosition(n,e.endPosition),isBlockLike);if(t&&!isSourceFile(t)&&r&&!isSourceFile(r))return l}if(e.preferences.allowTextChangesInNewFiles&&t){const n=e.file,r={start:{line:getLineAndCharacterOfPosition(n,t.all[0].getStart(n)).line,offset:getLineAndCharacterOfPosition(n,t.all[0].getStart(n)).character},end:{line:getLineAndCharacterOfPosition(n,last(t.all).end).line,offset:getLineAndCharacterOfPosition(n,last(t.all).end).character}};return[{name:Jc,description:Wc,actions:[{...Uc,range:r}]}]}return e.preferences.provideRefactorNotApplicableReason?[{name:Jc,description:Wc,actions:[{...Uc,notApplicableReason:getLocaleSpecificMessage(Ot.Selection_is_not_a_valid_statement_or_statements)}]}]:l},getEditsForAction:function getRefactorEditsToMoveToNewFile(e,t){h.assert(t===Jc,"Wrong refactor invoked");const n=h.checkDefined(getStatementsToMove(e)),r=$m.ChangeTracker.with(e,t=>function doChange4(e,t,n,r,i,o,a){const s=t.getTypeChecker(),c=getUsageInfo(e,n.all,s),l=createNewFileName(e,t,i,n),d=createFutureSourceFile(l,e.externalModuleIndicator?99:e.commonJsModuleIndicator?1:void 0,t,i),p=ed.createImportAdder(e,o.program,o.preferences,o.host),u=ed.createImportAdder(d,o.program,o.preferences,o.host);getNewStatementsAndRemoveFromOldFile(e,d,c,r,n,t,i,a,u,p),addNewFileToTsconfig(t,r,e.fileName,l,hostGetCanonicalFileName(i))}(e.file,e.program,n,t,e.host,e,e.preferences));return{edits:r,renameFilename:void 0,renameLocation:void 0}}});var zc={},Vc="Convert overload list to single signature",qc=getLocaleSpecificMessage(Ot.Convert_overload_list_to_single_signature),Hc={name:Vc,description:qc,kind:"refactor.rewrite.function.overloadList"};function isConvertableSignatureDeclaration(e){switch(e.kind){case 174:case 175:case 180:case 177:case 181:case 263:return!0}return!1}function getConvertableOverloadListAtPosition(e,t,n){const r=findAncestor(getTokenAtPosition(e,t),isConvertableSignatureDeclaration);if(!r)return;if(isFunctionLikeDeclaration(r)&&r.body&&rangeContainsPosition(r.body,t))return;const i=n.getTypeChecker(),o=r.symbol;if(!o)return;const a=o.declarations;if(length(a)<=1)return;if(!every(a,t=>getSourceFileOfNode(t)===e))return;if(!isConvertableSignatureDeclaration(a[0]))return;const s=a[0].kind;if(!every(a,e=>e.kind===s))return;const c=a;if(some(c,e=>!!e.typeParameters||some(e.parameters,e=>!!e.modifiers||!isIdentifier(e.name))))return;const l=mapDefined(c,e=>i.getSignatureFromDeclaration(e));if(length(l)!==length(a))return;const d=i.getReturnTypeOfSignature(l[0]);return every(l,e=>i.getReturnTypeOfSignature(e)===d)?c:void 0}registerRefactor(Vc,{kinds:[Hc.kind],getEditsForAction:function getRefactorEditsToConvertOverloadsToOneSignature(e){const{file:t,startPosition:n,program:r}=e,i=getConvertableOverloadListAtPosition(t,n,r);if(!i)return;const o=r.getTypeChecker(),a=i[i.length-1];let s=a;switch(a.kind){case 174:s=Wr.updateMethodSignature(a,a.modifiers,a.name,a.questionToken,a.typeParameters,getNewParametersForCombinedSignature(i),a.type);break;case 175:s=Wr.updateMethodDeclaration(a,a.modifiers,a.asteriskToken,a.name,a.questionToken,a.typeParameters,getNewParametersForCombinedSignature(i),a.type,a.body);break;case 180:s=Wr.updateCallSignature(a,a.typeParameters,getNewParametersForCombinedSignature(i),a.type);break;case 177:s=Wr.updateConstructorDeclaration(a,a.modifiers,getNewParametersForCombinedSignature(i),a.body);break;case 181:s=Wr.updateConstructSignature(a,a.typeParameters,getNewParametersForCombinedSignature(i),a.type);break;case 263:s=Wr.updateFunctionDeclaration(a,a.modifiers,a.asteriskToken,a.name,a.typeParameters,getNewParametersForCombinedSignature(i),a.type,a.body);break;default:return h.failBadSyntaxKind(a,"Unhandled signature kind in overload list conversion refactoring")}if(s===a)return;return{renameFilename:void 0,renameLocation:void 0,edits:$m.ChangeTracker.with(e,e=>{e.replaceNodeRange(t,i[0],i[i.length-1],s)})};function getNewParametersForCombinedSignature(e){const t=e[e.length-1];return isFunctionLikeDeclaration(t)&&t.body&&(e=e.slice(0,e.length-1)),Wr.createNodeArray([Wr.createParameterDeclaration(void 0,Wr.createToken(26),"args",void 0,Wr.createUnionTypeNode(map(e,convertSignatureParametersToTuple)))])}function convertSignatureParametersToTuple(e){const t=map(e.parameters,convertParameterToNamedTupleMember);return setEmitFlags(Wr.createTupleTypeNode(t),some(t,e=>!!length(getSyntheticLeadingComments(e)))?0:1)}function convertParameterToNamedTupleMember(e){h.assert(isIdentifier(e.name));const t=setTextRange(Wr.createNamedTupleMember(e.dotDotDotToken,e.name,e.questionToken,e.type||Wr.createKeywordTypeNode(133)),e),n=e.symbol&&e.symbol.getDocumentationComment(o);if(n){const e=displayPartsToString(n);e.length&&setSyntheticLeadingComments(t,[{text:`*\n${e.split("\n").map(e=>` * ${e}`).join("\n")}\n `,kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return t}},getAvailableActions:function getRefactorActionsToConvertOverloadsToOneSignature(e){const{file:t,startPosition:n,program:r}=e;return getConvertableOverloadListAtPosition(t,n,r)?[{name:Vc,description:qc,actions:[Hc]}]:l}});var Kc="Add or remove braces in an arrow function",Gc=getLocaleSpecificMessage(Ot.Add_or_remove_braces_in_an_arrow_function),$c={name:"Add braces to arrow function",description:getLocaleSpecificMessage(Ot.Add_braces_to_arrow_function),kind:"refactor.rewrite.arrow.braces.add"},Qc={name:"Remove braces from arrow function",description:getLocaleSpecificMessage(Ot.Remove_braces_from_arrow_function),kind:"refactor.rewrite.arrow.braces.remove"};function getConvertibleArrowFunctionAtPosition(e,t,n=!0,r){const i=getTokenAtPosition(e,t),o=getContainingFunction(i);if(!o)return{error:getLocaleSpecificMessage(Ot.Could_not_find_a_containing_arrow_function)};if(!isArrowFunction(o))return{error:getLocaleSpecificMessage(Ot.Containing_function_is_not_an_arrow_function)};if(rangeContainsRange(o,i)&&(!rangeContainsRange(o.body,i)||n)){if(refactorKindBeginsWith($c.kind,r)&&isExpression(o.body))return{func:o,addBraces:!0,expression:o.body};if(refactorKindBeginsWith(Qc.kind,r)&&isBlock(o.body)&&1===o.body.statements.length){const e=first(o.body.statements);if(isReturnStatement(e)){return{func:o,addBraces:!1,expression:e.expression&&isObjectLiteralExpression(getLeftmostExpression(e.expression,!1))?Wr.createParenthesizedExpression(e.expression):e.expression,returnStatement:e}}}}}registerRefactor(Kc,{kinds:[Qc.kind],getEditsForAction:function getRefactorEditsToRemoveFunctionBraces(e,t){const{file:n,startPosition:r}=e,i=getConvertibleArrowFunctionAtPosition(n,r);h.assert(i&&!isRefactorErrorInfo(i),"Expected applicable refactor info");const{expression:o,returnStatement:a,func:s}=i;let c;if(t===$c.name){const e=Wr.createReturnStatement(o);c=Wr.createBlock([e],!0),copyLeadingComments(o,e,n,3,!0)}else if(t===Qc.name&&a){const e=o||Wr.createVoidZero();c=needsParentheses(e)?Wr.createParenthesizedExpression(e):e,copyTrailingAsLeadingComments(a,c,n,3,!1),copyLeadingComments(a,c,n,3,!1),copyTrailingComments(a,c,n,3,!1)}else h.fail("invalid action");return{renameFilename:void 0,renameLocation:void 0,edits:$m.ChangeTracker.with(e,e=>{e.replaceNode(n,s.body,c)})}},getAvailableActions:function getRefactorActionsToRemoveFunctionBraces(e){const{file:t,startPosition:n,triggerReason:r}=e,i=getConvertibleArrowFunctionAtPosition(t,n,"invoked"===r);if(!i)return l;if(!isRefactorErrorInfo(i))return[{name:Kc,description:Gc,actions:[i.addBraces?$c:Qc]}];if(e.preferences.provideRefactorNotApplicableReason)return[{name:Kc,description:Gc,actions:[{...$c,notApplicableReason:i.error},{...Qc,notApplicableReason:i.error}]}];return l}});var Xc={},Yc="Convert arrow function or function expression",Zc=getLocaleSpecificMessage(Ot.Convert_arrow_function_or_function_expression),el={name:"Convert to anonymous function",description:getLocaleSpecificMessage(Ot.Convert_to_anonymous_function),kind:"refactor.rewrite.function.anonymous"},tl={name:"Convert to named function",description:getLocaleSpecificMessage(Ot.Convert_to_named_function),kind:"refactor.rewrite.function.named"},nl={name:"Convert to arrow function",description:getLocaleSpecificMessage(Ot.Convert_to_arrow_function),kind:"refactor.rewrite.function.arrow"};function containingThis(e){let t=!1;return e.forEachChild(function checkThis(e){isThis(e)?t=!0:isClassLike(e)||isFunctionDeclaration(e)||isFunctionExpression(e)||forEachChild(e,checkThis)}),t}function getFunctionInfo(e,t,n){const r=getTokenAtPosition(e,t),i=n.getTypeChecker(),o=function tryGetFunctionFromVariableDeclaration(e,t,n){if(!function isSingleVariableDeclaration(e){return isVariableDeclaration(e)||isVariableDeclarationList(e)&&1===e.declarations.length}(n))return;const r=(isVariableDeclaration(n)?n:first(n.declarations)).initializer;if(r&&(isArrowFunction(r)||isFunctionExpression(r)&&!isFunctionReferencedInFile(e,t,r)))return r;return}(e,i,r.parent);if(o&&!containingThis(o.body)&&!i.containsArgumentsReference(o))return{selectedVariableDeclaration:!0,func:o};const a=getContainingFunction(r);if(a&&(isFunctionExpression(a)||isArrowFunction(a))&&!rangeContainsRange(a.body,r)&&!containingThis(a.body)&&!i.containsArgumentsReference(a)){if(isFunctionExpression(a)&&isFunctionReferencedInFile(e,i,a))return;return{selectedVariableDeclaration:!1,func:a}}}function convertToBlock(e){if(isExpression(e)){const t=Wr.createReturnStatement(e),n=e.getSourceFile();return setTextRange(t,e),suppressLeadingAndTrailingTrivia(t),copyTrailingAsLeadingComments(e,t,n,void 0,!0),Wr.createBlock([t],!0)}return e}function isFunctionReferencedInFile(e,t,n){return!!n.name&&vm.Core.isSymbolReferencedInFile(n.name,t,e)}registerRefactor(Yc,{kinds:[el.kind,tl.kind,nl.kind],getEditsForAction:function getRefactorEditsToConvertFunctionExpressions(e,t){const{file:n,startPosition:r,program:i}=e,o=getFunctionInfo(n,r,i);if(!o)return;const{func:a}=o,s=[];switch(t){case el.name:s.push(...function getEditInfoForConvertToAnonymousFunction(e,t){const{file:n}=e,r=convertToBlock(t.body),i=Wr.createFunctionExpression(t.modifiers,t.asteriskToken,void 0,t.typeParameters,t.parameters,t.type,r);return $m.ChangeTracker.with(e,e=>e.replaceNode(n,t,i))}(e,a));break;case tl.name:const t=function getVariableInfo(e){const t=e.parent;if(!isVariableDeclaration(t)||!isVariableDeclarationInVariableStatement(t))return;const n=t.parent,r=n.parent;return isVariableDeclarationList(n)&&isVariableStatement(r)&&isIdentifier(t.name)?{variableDeclaration:t,variableDeclarationList:n,statement:r,name:t.name}:void 0}(a);if(!t)return;s.push(...function getEditInfoForConvertToNamedFunction(e,t,n){const{file:r}=e,i=convertToBlock(t.body),{variableDeclaration:o,variableDeclarationList:a,statement:s,name:c}=n;suppressLeadingTrivia(s);const l=32&getCombinedModifierFlags(o)|getEffectiveModifierFlags(t),d=Wr.createModifiersFromModifierFlags(l),p=Wr.createFunctionDeclaration(length(d)?d:void 0,t.asteriskToken,c,t.typeParameters,t.parameters,t.type,i);return 1===a.declarations.length?$m.ChangeTracker.with(e,e=>e.replaceNode(r,s,p)):$m.ChangeTracker.with(e,e=>{e.delete(r,o),e.insertNodeAfter(r,s,p)})}(e,a,t));break;case nl.name:if(!isFunctionExpression(a))return;s.push(...function getEditInfoForConvertToArrowFunction(e,t){const{file:n}=e,r=t.body.statements,i=r[0];let o;!function canBeConvertedToExpression(e,t){return 1===e.statements.length&&isReturnStatement(t)&&!!t.expression}(t.body,i)?o=t.body:(o=i.expression,suppressLeadingAndTrailingTrivia(o),copyComments(i,o));const a=Wr.createArrowFunction(t.modifiers,t.typeParameters,t.parameters,t.type,Wr.createToken(39),o);return $m.ChangeTracker.with(e,e=>e.replaceNode(n,t,a))}(e,a));break;default:return h.fail("invalid action")}return{renameFilename:void 0,renameLocation:void 0,edits:s}},getAvailableActions:function getRefactorActionsToConvertFunctionExpressions(e){const{file:t,startPosition:n,program:r,kind:i}=e,o=getFunctionInfo(t,n,r);if(!o)return l;const{selectedVariableDeclaration:a,func:s}=o,c=[],d=[];if(refactorKindBeginsWith(tl.kind,i)){const e=a||isArrowFunction(s)&&isVariableDeclaration(s.parent)?void 0:getLocaleSpecificMessage(Ot.Could_not_convert_to_named_function);e?d.push({...tl,notApplicableReason:e}):c.push(tl)}if(refactorKindBeginsWith(el.kind,i)){const e=!a&&isArrowFunction(s)?void 0:getLocaleSpecificMessage(Ot.Could_not_convert_to_anonymous_function);e?d.push({...el,notApplicableReason:e}):c.push(el)}if(refactorKindBeginsWith(nl.kind,i)){const e=isFunctionExpression(s)?void 0:getLocaleSpecificMessage(Ot.Could_not_convert_to_arrow_function);e?d.push({...nl,notApplicableReason:e}):c.push(nl)}return[{name:Yc,description:Zc,actions:0===c.length&&e.preferences.provideRefactorNotApplicableReason?d:c}]}});var rl={},il="Convert parameters to destructured object",ol=getLocaleSpecificMessage(Ot.Convert_parameters_to_destructured_object),al={name:il,description:ol,kind:"refactor.rewrite.parameters.toDestructured"};function getSymbolForContextualType(e,t){const n=getContainingObjectLiteralElement(e);if(n){const e=t.getContextualTypeForObjectLiteralElement(n),r=null==e?void 0:e.getSymbol();if(r&&!(6&getCheckFlags(r)))return r}}function entryToImportOrExport(e){const t=e.node;return isImportSpecifier(t.parent)||isImportClause(t.parent)||isImportEqualsDeclaration(t.parent)||isNamespaceImport(t.parent)||isExportSpecifier(t.parent)||isExportAssignment(t.parent)?t:void 0}function entryToDeclaration(e){if(isDeclaration(e.node.parent))return e.node}function entryToFunctionCall(e){if(e.node.parent){const t=e.node,n=t.parent;switch(n.kind){case 214:case 215:const e=tryCast(n,isCallOrNewExpression);if(e&&e.expression===t)return e;break;case 212:const r=tryCast(n,isPropertyAccessExpression);if(r&&r.parent&&r.name===t){const e=tryCast(r.parent,isCallOrNewExpression);if(e&&e.expression===r)return e}break;case 213:const i=tryCast(n,isElementAccessExpression);if(i&&i.parent&&i.argumentExpression===t){const e=tryCast(i.parent,isCallOrNewExpression);if(e&&e.expression===i)return e}}}}function entryToAccessExpression(e){if(e.node.parent){const t=e.node,n=t.parent;switch(n.kind){case 212:const e=tryCast(n,isPropertyAccessExpression);if(e&&e.expression===t)return e;break;case 213:const r=tryCast(n,isElementAccessExpression);if(r&&r.expression===t)return r}}}function entryToType(e){const t=e.node;if(2===getMeaningFromLocation(t)||isExpressionWithTypeArgumentsInClassExtendsClause(t.parent))return t}function getFunctionDeclarationAtPosition(e,t,n){const r=getTouchingToken(e,t),i=getContainingFunctionDeclaration(r);if(!function isTopLevelJSDoc(e){const t=findAncestor(e,isJSDocNode);if(t){const e=findAncestor(t,e=>!isJSDocNode(e));return!!e&&isFunctionLikeDeclaration(e)}return!1}(r))return!(i&&function isValidFunctionDeclaration(e,t){var n;if(!function isValidParameterNodeArray(e,t){return function getRefactorableParametersLength(e){if(hasThisParameter(e))return e.length-1;return e.length}(e)>=1&&every(e,e=>function isValidParameterDeclaration(e,t){if(isRestParameter(e)){const n=t.getTypeAtLocation(e);if(!t.isArrayType(n)&&!t.isTupleType(n))return!1}return!e.modifiers&&isIdentifier(e.name)}(e,t))}(e.parameters,t))return!1;switch(e.kind){case 263:return hasNameOrDefault(e)&&isSingleImplementation(e,t);case 175:if(isObjectLiteralExpression(e.parent)){const r=getSymbolForContextualType(e.name,t);return 1===(null==(n=null==r?void 0:r.declarations)?void 0:n.length)&&isSingleImplementation(e,t)}return isSingleImplementation(e,t);case 177:return isClassDeclaration(e.parent)?hasNameOrDefault(e.parent)&&isSingleImplementation(e,t):isValidVariableDeclaration(e.parent.parent)&&isSingleImplementation(e,t);case 219:case 220:return isValidVariableDeclaration(e.parent)}return!1}(i,n)&&rangeContainsRange(i,r))||i.body&&rangeContainsRange(i.body,r)?void 0:i}function isValidMethodSignature(e){return isMethodSignature(e)&&(isInterfaceDeclaration(e.parent)||isTypeLiteralNode(e.parent))}function isSingleImplementation(e,t){return!!e.body&&!t.isImplementationOfOverload(e)}function hasNameOrDefault(e){if(!e.name){return!!findModifier(e,90)}return!0}function isValidVariableDeclaration(e){return isVariableDeclaration(e)&&isVarConst(e)&&isIdentifier(e.name)&&!e.type}function hasThisParameter(e){return e.length>0&&isThis(e[0].name)}function getRefactorableParameters(e){return hasThisParameter(e)&&(e=Wr.createNodeArray(e.slice(1),e.hasTrailingComma)),e}function createNewArgument(e,t){const n=getRefactorableParameters(e.parameters),r=isRestParameter(last(n)),i=map(r?t.slice(0,n.length-1):t,(e,t)=>{const r=function createPropertyOrShorthandAssignment(e,t){return isIdentifier(t)&&getTextOfIdentifierOrLiteral(t)===e?Wr.createShorthandPropertyAssignment(e):Wr.createPropertyAssignment(e,t)}(getParameterName(n[t]),e);return suppressLeadingAndTrailingTrivia(r.name),isPropertyAssignment(r)&&suppressLeadingAndTrailingTrivia(r.initializer),copyComments(e,r),r});if(r&&t.length>=n.length){const e=t.slice(n.length-1),r=Wr.createPropertyAssignment(getParameterName(last(n)),Wr.createArrayLiteralExpression(e));i.push(r)}return Wr.createObjectLiteralExpression(i,!1)}function createNewParameters(e,t,n){const r=t.getTypeChecker(),i=getRefactorableParameters(e.parameters),o=map(i,function createBindingElementFromParameterDeclaration(e){const t=Wr.createBindingElement(void 0,void 0,getParameterName(e),isRestParameter(e)&&isOptionalParameter(e)?Wr.createArrayLiteralExpression():e.initializer);suppressLeadingAndTrailingTrivia(t),e.initializer&&t.initializer&©Comments(e.initializer,t.initializer);return t}),a=Wr.createObjectBindingPattern(o),s=function createParameterTypeNode(e){const t=map(e,createPropertySignatureFromParameterDeclaration);return addEmitFlags(Wr.createTypeLiteralNode(t),1)}(i);let c;every(i,isOptionalParameter)&&(c=Wr.createObjectLiteralExpression());const l=Wr.createParameterDeclaration(void 0,void 0,a,void 0,s,c);if(hasThisParameter(e.parameters)){const t=e.parameters[0],n=Wr.createParameterDeclaration(void 0,void 0,t.name,void 0,t.type);return suppressLeadingAndTrailingTrivia(n.name),copyComments(t.name,n.name),t.type&&(suppressLeadingAndTrailingTrivia(n.type),copyComments(t.type,n.type)),Wr.createNodeArray([n,l])}return Wr.createNodeArray([l]);function createPropertySignatureFromParameterDeclaration(e){let i=e.type;i||!e.initializer&&!isRestParameter(e)||(i=function getTypeNode3(e){return getTypeNodeIfAccessible(r.getTypeAtLocation(e),e,t,n)}(e));const o=Wr.createPropertySignature(void 0,getParameterName(e),isOptionalParameter(e)?Wr.createToken(58):e.questionToken,i);return suppressLeadingAndTrailingTrivia(o),copyComments(e.name,o.name),e.type&&o.type&©Comments(e.type,o.type),o}function isOptionalParameter(e){if(isRestParameter(e)){const t=r.getTypeAtLocation(e);return!r.isTupleType(t)}return r.isOptionalParameter(e)}}function getParameterName(e){return getTextOfIdentifierOrLiteral(e.name)}registerRefactor(il,{kinds:[al.kind],getEditsForAction:function getRefactorEditsToConvertParametersToDestructuredObject(e,t){h.assert(t===il,"Unexpected action name");const{file:n,startPosition:r,program:i,cancellationToken:o,host:a}=e,s=getFunctionDeclarationAtPosition(n,r,i.getTypeChecker());if(!s||!o)return;const c=function getGroupedReferences(e,t,n){const r=function getFunctionNames(e){switch(e.kind){case 263:if(e.name)return[e.name];return[h.checkDefined(findModifier(e,90),"Nameless function declaration should be a default export")];case 175:return[e.name];case 177:const t=h.checkDefined(findChildOfKind(e,137,e.getSourceFile()),"Constructor declaration should have constructor keyword");if(232===e.parent.kind){return[e.parent.parent.name,t]}return[t];case 220:return[e.parent.name];case 219:return e.name?[e.name,e.parent.name]:[e.parent.name];default:return h.assertNever(e,`Unexpected function declaration kind ${e.kind}`)}}(e),i=isConstructorDeclaration(e)?function getClassNames(e){switch(e.parent.kind){case 264:const t=e.parent;if(t.name)return[t.name];return[h.checkDefined(findModifier(t,90),"Nameless class declaration should be a default export")];case 232:const n=e.parent,r=e.parent.parent,i=n.name;return i?[i,r.name]:[r.name]}}(e):[],o=deduplicate([...r,...i],equateValues),a=t.getTypeChecker(),s=flatMap(o,e=>vm.getReferenceEntriesForNode(-1,e,t,t.getSourceFiles(),n)),c=groupReferences(s);every(c.declarations,e=>contains(o,e))||(c.valid=!1);return c;function groupReferences(t){const n={accessExpressions:[],typeUsages:[]},o={functionCalls:[],declarations:[],classReferences:n,valid:!0},s=map(r,getSymbolTargetAtLocation),c=map(i,getSymbolTargetAtLocation),l=isConstructorDeclaration(e),d=map(r,e=>getSymbolForContextualType(e,a));for(const r of t){if(r.kind===vm.EntryKind.Span){o.valid=!1;continue}if(contains(d,getSymbolTargetAtLocation(r.node))){if(isValidMethodSignature(r.node.parent)){o.signature=r.node.parent;continue}const e=entryToFunctionCall(r);if(e){o.functionCalls.push(e);continue}}const t=getSymbolForContextualType(r.node,a);if(t&&contains(d,t)){const e=entryToDeclaration(r);if(e){o.declarations.push(e);continue}}if(contains(s,getSymbolTargetAtLocation(r.node))||isNewExpressionTarget(r.node)){if(entryToImportOrExport(r))continue;const e=entryToDeclaration(r);if(e){o.declarations.push(e);continue}const t=entryToFunctionCall(r);if(t){o.functionCalls.push(t);continue}}if(l&&contains(c,getSymbolTargetAtLocation(r.node))){if(entryToImportOrExport(r))continue;const t=entryToDeclaration(r);if(t){o.declarations.push(t);continue}const i=entryToAccessExpression(r);if(i){n.accessExpressions.push(i);continue}if(isClassDeclaration(e.parent)){const e=entryToType(r);if(e){n.typeUsages.push(e);continue}}}o.valid=!1}return o}function getSymbolTargetAtLocation(e){const t=a.getSymbolAtLocation(e);return t&&getSymbolTarget(t,a)}}(s,i,o);if(c.valid){const t=$m.ChangeTracker.with(e,e=>function doChange5(e,t,n,r,i,o){const a=o.signature,s=map(createNewParameters(i,t,n),e=>getSynthesizedDeepClone(e));if(a){replaceParameters(a,map(createNewParameters(a,t,n),e=>getSynthesizedDeepClone(e)))}replaceParameters(i,s);const c=sortAndDeduplicate(o.functionCalls,(e,t)=>compareValues(e.pos,t.pos));for(const e of c)if(e.arguments&&e.arguments.length){const t=getSynthesizedDeepClone(createNewArgument(i,e.arguments),!0);r.replaceNodeRange(getSourceFileOfNode(e),first(e.arguments),last(e.arguments),t,{leadingTriviaOption:$m.LeadingTriviaOption.IncludeAll,trailingTriviaOption:$m.TrailingTriviaOption.Include})}function replaceParameters(t,n){r.replaceNodeRangeWithNodes(e,first(t.parameters),last(t.parameters),n,{joiner:", ",indentation:0,leadingTriviaOption:$m.LeadingTriviaOption.IncludeAll,trailingTriviaOption:$m.TrailingTriviaOption.Include})}}(n,i,a,e,s,c));return{renameFilename:void 0,renameLocation:void 0,edits:t}}return{edits:[]}},getAvailableActions:function getRefactorActionsToConvertParametersToDestructuredObject(e){const{file:t,startPosition:n}=e;if(isSourceFileJS(t))return l;return getFunctionDeclarationAtPosition(t,n,e.program.getTypeChecker())?[{name:il,description:ol,actions:[al]}]:l}});var sl={},cl="Convert to template string",ll=getLocaleSpecificMessage(Ot.Convert_to_template_string),dl={name:cl,description:ll,kind:"refactor.rewrite.string"};function getNodeOrParentOfParentheses(e,t){const n=getTokenAtPosition(e,t),r=getParentBinaryExpression(n);return!treeToArray(r).isValidConcatenation&&isParenthesizedExpression(r.parent)&&isBinaryExpression(r.parent.parent)?r.parent.parent:n}function getEditsForToTemplateLiteral(e,t){const n=getParentBinaryExpression(t),r=e.file,i=function nodesToTemplate({nodes:e,operators:t},n){const r=copyTrailingOperatorComments(t,n),i=copyCommentFromMultiNode(e,n,r),[o,a,s,c]=concatConsecutiveString(0,e);if(o===e.length){const e=Wr.createNoSubstitutionTemplateLiteral(a,s);return i(c,e),e}const l=[],d=Wr.createTemplateHead(a,s);i(c,d);for(let t=o;t{copyExpressionComments(e);const r=t===n.templateSpans.length-1,i=e.literal.text+(r?a:""),o=getRawTextOfTemplate(e.literal)+(r?s:"");return Wr.createTemplateSpan(e.expression,d&&r?Wr.createTemplateTail(i,o):Wr.createTemplateMiddle(i,o))});l.push(...e)}else{const e=d?Wr.createTemplateTail(a,s):Wr.createTemplateMiddle(a,s);i(c,e),l.push(Wr.createTemplateSpan(n,e))}}return Wr.createTemplateExpression(d,l)}(treeToArray(n),r),o=getTrailingCommentRanges(r.text,n.end);if(o){const t=o[o.length-1],a={pos:o[0].pos,end:t.end};return $m.ChangeTracker.with(e,e=>{e.deleteRange(r,a),e.replaceNode(r,n,i)})}return $m.ChangeTracker.with(e,e=>e.replaceNode(r,n,i))}function getParentBinaryExpression(e){return findAncestor(e.parent,e=>{switch(e.kind){case 212:case 213:return!1;case 229:case 227:return!(isBinaryExpression(e.parent)&&function isNotEqualsOperator(e){return!(64===e.operatorToken.kind||65===e.operatorToken.kind)}(e.parent));default:return"quit"}})||e}function treeToArray(e){const loop=e=>{if(!isBinaryExpression(e))return{nodes:[e],operators:[],validOperators:!0,hasString:isStringLiteral(e)||isNoSubstitutionTemplateLiteral(e)};const{nodes:t,operators:n,hasString:r,validOperators:i}=loop(e.left);if(!(r||isStringLiteral(e.right)||isTemplateExpression(e.right)))return{nodes:[e],operators:[],hasString:!1,validOperators:!0};const o=40===e.operatorToken.kind,a=i&&o;return t.push(e.right),n.push(e.operatorToken),{nodes:t,operators:n,hasString:!0,validOperators:a}},{nodes:t,operators:n,validOperators:r,hasString:i}=loop(e);return{nodes:t,operators:n,isValidConcatenation:r&&i}}registerRefactor(cl,{kinds:[dl.kind],getEditsForAction:function getRefactorEditsToConvertToTemplateString(e,t){const{file:n,startPosition:r}=e,i=getNodeOrParentOfParentheses(n,r);if(t===ll)return{edits:getEditsForToTemplateLiteral(e,i)};return h.fail("invalid action")},getAvailableActions:function getRefactorActionsToConvertToTemplateString(e){const{file:t,startPosition:n}=e,r=getParentBinaryExpression(getNodeOrParentOfParentheses(t,n)),i=isStringLiteral(r),o={name:cl,description:ll,actions:[]};if(i&&"invoked"!==e.triggerReason)return l;if(isExpressionNode(r)&&(i||isBinaryExpression(r)&&treeToArray(r).isValidConcatenation))return o.actions.push(dl),[o];if(e.preferences.provideRefactorNotApplicableReason)return o.actions.push({...dl,notApplicableReason:getLocaleSpecificMessage(Ot.Can_only_convert_string_concatenations_and_string_literals)}),[o];return l}});var copyTrailingOperatorComments=(e,t)=>(n,r)=>{n(r,i)=>{for(;r.length>0;){const o=r.shift();copyTrailingComments(e[o],i,t,3,!1),n(o,i)}};function escapeRawStringForTemplate(e){return e.replace(/\\.|[$`]/g,e=>"\\"===e[0]?e:"\\"+e)}function getRawTextOfTemplate(e){const t=isTemplateHead(e)||isTemplateMiddle(e)?-2:-1;return getTextOfNode(e).slice(1,t)}function concatConsecutiveString(e,t){const n=[];let r="",i="";for(;e=a.pos?s.getEnd():a.getEnd()),l=o?function getValidParentNodeOfEmptySpan(e){for(;e.parent;){if(isValidExpressionOrStatement(e)&&!isValidExpressionOrStatement(e.parent))return e;e=e.parent}return}(a):function getValidParentNodeContainingSpan(e,t){for(;e.parent;){if(isValidExpressionOrStatement(e)&&0!==t.length&&e.end>=t.start+t.length)return e;e=e.parent}return}(a,c),d=l&&isValidExpressionOrStatement(l)?function getExpression(e){if(isValidExpression(e))return e;if(isVariableStatement(e)){const t=getSingleVariableOfVariableStatement(e),n=null==t?void 0:t.initializer;return n&&isValidExpression(n)?n:void 0}return e.expression&&isValidExpression(e.expression)?e.expression:void 0}(l):void 0;if(!d)return{error:getLocaleSpecificMessage(Ot.Could_not_find_convertible_access_expression)};const p=r.getTypeChecker();return isConditionalExpression(d)?function getConditionalInfo(e,t){const n=e.condition,r=getFinalExpressionInChain(e.whenTrue);if(!r||t.isNullableType(t.getTypeAtLocation(r)))return{error:getLocaleSpecificMessage(Ot.Could_not_find_convertible_access_expression)};if((isPropertyAccessExpression(n)||isIdentifier(n))&&getMatchingStart(n,r.expression))return{finalExpression:r,occurrences:[n],expression:e};if(isBinaryExpression(n)){const t=getOccurrencesInExpression(r.expression,n);return t?{finalExpression:r,occurrences:t,expression:e}:{error:getLocaleSpecificMessage(Ot.Could_not_find_matching_access_expressions)}}}(d,p):function getBinaryInfo(e){if(56!==e.operatorToken.kind)return{error:getLocaleSpecificMessage(Ot.Can_only_convert_logical_AND_access_chains)};const t=getFinalExpressionInChain(e.right);if(!t)return{error:getLocaleSpecificMessage(Ot.Could_not_find_convertible_access_expression)};const n=getOccurrencesInExpression(t.expression,e.left);return n?{finalExpression:t,occurrences:n,expression:e}:{error:getLocaleSpecificMessage(Ot.Could_not_find_matching_access_expressions)}}(d)}function getOccurrencesInExpression(e,t){const n=[];for(;isBinaryExpression(t)&&56===t.operatorToken.kind;){const r=getMatchingStart(skipParentheses(e),skipParentheses(t.right));if(!r)break;n.push(r),e=r,t=t.left}const r=getMatchingStart(e,t);return r&&n.push(r),n.length>0?n:void 0}function getMatchingStart(e,t){if(isIdentifier(t)||isPropertyAccessExpression(t)||isElementAccessExpression(t))return function chainStartsWith(e,t){for(;(isCallExpression(e)||isPropertyAccessExpression(e)||isElementAccessExpression(e))&&getTextOfChainNode(e)!==getTextOfChainNode(t);)e=e.expression;for(;isPropertyAccessExpression(e)&&isPropertyAccessExpression(t)||isElementAccessExpression(e)&&isElementAccessExpression(t);){if(getTextOfChainNode(e)!==getTextOfChainNode(t))return!1;e=e.expression,t=t.expression}return isIdentifier(e)&&isIdentifier(t)&&e.getText()===t.getText()}(e,t)?t:void 0}function getTextOfChainNode(e){return isIdentifier(e)||isStringOrNumericLiteralLike(e)?e.getText():isPropertyAccessExpression(e)?getTextOfChainNode(e.name):isElementAccessExpression(e)?getTextOfChainNode(e.argumentExpression):void 0}function getFinalExpressionInChain(e){return isBinaryExpression(e=skipParentheses(e))?getFinalExpressionInChain(e.left):(isPropertyAccessExpression(e)||isElementAccessExpression(e)||isCallExpression(e))&&!isOptionalChain(e)?e:void 0}function convertOccurrences(e,t,n){if(isPropertyAccessExpression(t)||isElementAccessExpression(t)||isCallExpression(t)){const r=convertOccurrences(e,t.expression,n),i=n.length>0?n[n.length-1]:void 0,o=(null==i?void 0:i.getText())===t.expression.getText();if(o&&n.pop(),isCallExpression(t))return o?Wr.createCallChain(r,Wr.createToken(29),t.typeArguments,t.arguments):Wr.createCallChain(r,t.questionDotToken,t.typeArguments,t.arguments);if(isPropertyAccessExpression(t))return o?Wr.createPropertyAccessChain(r,Wr.createToken(29),t.name):Wr.createPropertyAccessChain(r,t.questionDotToken,t.name);if(isElementAccessExpression(t))return o?Wr.createElementAccessChain(r,Wr.createToken(29),t.argumentExpression):Wr.createElementAccessChain(r,t.questionDotToken,t.argumentExpression)}return t}registerRefactor(ul,{kinds:[_l.kind],getEditsForAction:function getRefactorEditsToConvertToOptionalChain(e,t){const n=getInfo3(e);h.assert(n&&!isRefactorErrorInfo(n),"Expected applicable refactor info");return{edits:$m.ChangeTracker.with(e,t=>function doChange6(e,t,n,r,i){const{finalExpression:o,occurrences:a,expression:s}=r,c=a[a.length-1],l=convertOccurrences(t,o,a);l&&(isPropertyAccessExpression(l)||isElementAccessExpression(l)||isCallExpression(l))&&(isBinaryExpression(s)?n.replaceNodeRange(e,c,o,l):isConditionalExpression(s)&&n.replaceNode(e,s,Wr.createBinaryExpression(l,Wr.createToken(61),s.whenFalse)))}(e.file,e.program.getTypeChecker(),t,n)),renameFilename:void 0,renameLocation:void 0}},getAvailableActions:function getRefactorActionsToConvertToOptionalChain(e){const t=getInfo3(e,"invoked"===e.triggerReason);if(!t)return l;if(!isRefactorErrorInfo(t))return[{name:ul,description:ml,actions:[_l]}];if(e.preferences.provideRefactorNotApplicableReason)return[{name:ul,description:ml,actions:[{..._l,notApplicableReason:t.error}]}];return l}});var fl={};i(fl,{Messages:()=>gl,RangeFacts:()=>Sl,getRangeToExtract:()=>getRangeToExtract2,getRefactorActionsToExtractSymbol:()=>getRefactorActionsToExtractSymbol,getRefactorEditsToExtractSymbol:()=>getRefactorEditsToExtractSymbol});var gl,yl="Extract Symbol",hl={name:"Extract Constant",description:getLocaleSpecificMessage(Ot.Extract_constant),kind:"refactor.extract.constant"},Tl={name:"Extract Function",description:getLocaleSpecificMessage(Ot.Extract_function),kind:"refactor.extract.function"};function getRefactorActionsToExtractSymbol(e){const t=e.kind,n=getRangeToExtract2(e.file,getRefactorContextSpan(e),"invoked"===e.triggerReason),r=n.targetRange;if(void 0===r){if(!n.errors||0===n.errors.length||!e.preferences.provideRefactorNotApplicableReason)return l;const r=[];return refactorKindBeginsWith(Tl.kind,t)&&r.push({name:yl,description:Tl.description,actions:[{...Tl,notApplicableReason:getStringError(n.errors)}]}),refactorKindBeginsWith(hl.kind,t)&&r.push({name:yl,description:hl.description,actions:[{...hl,notApplicableReason:getStringError(n.errors)}]}),r}const{affectedTextRange:i,extractions:o}=function getPossibleExtractions(e,t){const{scopes:n,affectedTextRange:r,readsAndWrites:{functionErrorsPerScope:i,constantErrorsPerScope:o}}=getPossibleExtractionsWorker(e,t),a=n.map((e,t)=>{const n=function getDescriptionForFunctionInScope(e){return isFunctionLikeDeclaration(e)?"inner function":isClassLike(e)?"method":"function"}(e),r=function getDescriptionForConstantInScope(e){return isClassLike(e)?"readonly field":"constant"}(e),a=isFunctionLikeDeclaration(e)?function getDescriptionForFunctionLikeDeclaration(e){switch(e.kind){case 177:return"constructor";case 219:case 263:return e.name?`function '${e.name.text}'`:Xs;case 220:return"arrow function";case 175:return`method '${e.name.getText()}'`;case 178:return`'get ${e.name.getText()}'`;case 179:return`'set ${e.name.getText()}'`;default:h.assertNever(e,`Unexpected scope kind ${e.kind}`)}}(e):isClassLike(e)?function getDescriptionForClassLikeDeclaration(e){return 264===e.kind?e.name?`class '${e.name.text}'`:"anonymous class declaration":e.name?`class expression '${e.name.text}'`:"anonymous class expression"}(e):function getDescriptionForModuleLikeDeclaration(e){return 269===e.kind?`namespace '${e.parent.name.getText()}'`:e.externalModuleIndicator?0:1}(e);let s,c;return 1===a?(s=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1_scope),[n,"global"]),c=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1_scope),[r,"global"])):0===a?(s=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1_scope),[n,"module"]),c=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1_scope),[r,"module"])):(s=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1),[n,a]),c=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_1),[r,a])),0!==t||isClassLike(e)||(c=formatStringFromArgs(getLocaleSpecificMessage(Ot.Extract_to_0_in_enclosing_scope),[r])),{functionExtraction:{description:s,errors:i[t]},constantExtraction:{description:c,errors:o[t]}}});return{affectedTextRange:r,extractions:a}}(r,e);if(void 0===o)return l;const a=[],s=new Map;let c;const d=[],p=new Map;let u,m=0;for(const{functionExtraction:n,constantExtraction:r}of o){if(refactorKindBeginsWith(Tl.kind,t)){const t=n.description;0===n.errors.length?s.has(t)||(s.set(t,!0),a.push({description:t,name:`function_scope_${m}`,kind:Tl.kind,range:{start:{line:getLineAndCharacterOfPosition(e.file,i.pos).line,offset:getLineAndCharacterOfPosition(e.file,i.pos).character},end:{line:getLineAndCharacterOfPosition(e.file,i.end).line,offset:getLineAndCharacterOfPosition(e.file,i.end).character}}})):c||(c={description:t,name:`function_scope_${m}`,notApplicableReason:getStringError(n.errors),kind:Tl.kind})}if(refactorKindBeginsWith(hl.kind,t)){const t=r.description;0===r.errors.length?p.has(t)||(p.set(t,!0),d.push({description:t,name:`constant_scope_${m}`,kind:hl.kind,range:{start:{line:getLineAndCharacterOfPosition(e.file,i.pos).line,offset:getLineAndCharacterOfPosition(e.file,i.pos).character},end:{line:getLineAndCharacterOfPosition(e.file,i.end).line,offset:getLineAndCharacterOfPosition(e.file,i.end).character}}})):u||(u={description:t,name:`constant_scope_${m}`,notApplicableReason:getStringError(r.errors),kind:hl.kind})}m++}const _=[];return a.length?_.push({name:yl,description:getLocaleSpecificMessage(Ot.Extract_function),actions:a}):e.preferences.provideRefactorNotApplicableReason&&c&&_.push({name:yl,description:getLocaleSpecificMessage(Ot.Extract_function),actions:[c]}),d.length?_.push({name:yl,description:getLocaleSpecificMessage(Ot.Extract_constant),actions:d}):e.preferences.provideRefactorNotApplicableReason&&u&&_.push({name:yl,description:getLocaleSpecificMessage(Ot.Extract_constant),actions:[u]}),_.length?_:l;function getStringError(e){let t=e[0].messageText;return"string"!=typeof t&&(t=t.messageText),t}}function getRefactorEditsToExtractSymbol(e,t){const n=getRangeToExtract2(e.file,getRefactorContextSpan(e)).targetRange,r=/^function_scope_(\d+)$/.exec(t);if(r){const t=+r[1];return h.assert(isFinite(t),"Expected to parse a finite number from the function scope index"),function getFunctionExtractionAtIndex(e,t,n){const{scopes:r,readsAndWrites:{target:i,usagesPerScope:o,functionErrorsPerScope:a,exposedVariableDeclarations:s}}=getPossibleExtractionsWorker(e,t);return h.assert(!a[n].length,"The extraction went missing? How?"),t.cancellationToken.throwIfCancellationRequested(),function extractFunctionInScope(e,t,{usages:n,typeParameterUsages:r,substitutions:i},o,a,s){const c=s.program.getTypeChecker(),d=zn(s.program.getCompilerOptions()),p=ed.createImportAdder(s.file,s.program,s.preferences,s.host),u=t.getSourceFile(),m=getUniqueName(isClassLike(t)?"newMethod":"newFunction",u),_=isInJSFile(t),f=Wr.createIdentifier(m);let g;const y=[],T=[];let S;n.forEach((e,n)=>{let r;if(!_){let n=c.getTypeOfSymbolAtLocation(e.symbol,e.node);n=c.getBaseTypeOfLiteralType(n),r=ed.typeToAutoImportableTypeNode(c,p,n,t,d,1,8)}const i=Wr.createParameterDeclaration(void 0,void 0,n,void 0,r);y.push(i),2===e.usage&&(S||(S=[])).push(e),T.push(Wr.createIdentifier(n))});const x=arrayFrom(r.values(),e=>({type:e,declaration:getFirstDeclarationBeforePosition(e,s.startPosition)}));x.sort(compareTypesByDeclarationOrder);const v=0===x.length?void 0:mapDefined(x,({declaration:e})=>e),b=void 0!==v?v.map(e=>Wr.createTypeReferenceNode(e.name,void 0)):void 0;if(isExpression(e)&&!_){const n=c.getContextualType(e);g=c.typeToTypeNode(n,t,1,8)}const{body:C,returnValueProperty:E}=function transformFunctionBody(e,t,n,r,i){const o=void 0!==n||t.length>0;if(isBlock(e)&&!o&&0===r.size)return{body:Wr.createBlock(e.statements,!0),returnValueProperty:void 0};let a,s=!1;const c=Wr.createNodeArray(isBlock(e)?e.statements.slice(0):[isStatement(e)?e:Wr.createReturnStatement(skipParentheses(e))]);if(o||r.size){const r=visitNodes2(c,visitor,isStatement).slice();if(o&&!i&&isStatement(e)){const e=getPropertyAssignmentsForWritesAndVariableDeclarations(t,n);1===e.length?r.push(Wr.createReturnStatement(e[0].name)):r.push(Wr.createReturnStatement(Wr.createObjectLiteralExpression(e)))}return{body:Wr.createBlock(r,!0),returnValueProperty:a}}return{body:Wr.createBlock(c,!0),returnValueProperty:void 0};function visitor(e){if(!s&&isReturnStatement(e)&&o){const r=getPropertyAssignmentsForWritesAndVariableDeclarations(t,n);return e.expression&&(a||(a="__return"),r.unshift(Wr.createPropertyAssignment(a,visitNode(e.expression,visitor,isExpression)))),1===r.length?Wr.createReturnStatement(r[0].name):Wr.createReturnStatement(Wr.createObjectLiteralExpression(r))}{const t=s;s=s||isFunctionLikeDeclaration(e)||isClassLike(e);const n=r.get(getNodeId(e).toString()),i=n?getSynthesizedDeepClone(n):visitEachChild(e,visitor,void 0);return s=t,i}}}(e,o,S,i,!!(1&a.facts));let N;suppressLeadingAndTrailingTrivia(C);const k=!!(16&a.facts);if(isClassLike(t)){const e=_?[]:[Wr.createModifier(123)];32&a.facts&&e.push(Wr.createModifier(126)),4&a.facts&&e.push(Wr.createModifier(134)),N=Wr.createMethodDeclaration(e.length?e:void 0,2&a.facts?Wr.createToken(42):void 0,f,void 0,v,y,g,C)}else k&&y.unshift(Wr.createParameterDeclaration(void 0,void 0,"this",void 0,c.typeToTypeNode(c.getTypeAtLocation(a.thisNode),t,1,8),void 0)),N=Wr.createFunctionDeclaration(4&a.facts?[Wr.createToken(134)]:void 0,2&a.facts?Wr.createToken(42):void 0,f,v,y,g,C);const F=$m.ChangeTracker.fromContext(s),P=function getNodeToInsertFunctionBefore(e,t){return find(function getStatementsOrClassElements(e){if(isFunctionLikeDeclaration(e)){const t=e.body;if(isBlock(t))return t.statements}else{if(isModuleBlock(e)||isSourceFile(e))return e.statements;if(isClassLike(e))return e.members}return l}(t),t=>t.pos>=e&&isFunctionLikeDeclaration(t)&&!isConstructorDeclaration(t))}((isReadonlyArray(a.range)?last(a.range):a.range).end,t);P?F.insertNodeBefore(s.file,P,N,!0):F.insertNodeAtEndOfScope(s.file,t,N);p.writeFixes(F);const D=[],I=function getCalledExpression(e,t,n){const r=Wr.createIdentifier(n);if(isClassLike(e)){const n=32&t.facts?Wr.createIdentifier(e.name.text):Wr.createThis();return Wr.createPropertyAccessExpression(n,r)}return r}(t,a,m);k&&T.unshift(Wr.createIdentifier("this"));let A=Wr.createCallExpression(k?Wr.createPropertyAccessExpression(I,"call"):I,b,T);2&a.facts&&(A=Wr.createYieldExpression(Wr.createToken(42),A));4&a.facts&&(A=Wr.createAwaitExpression(A));isInJSXContent(e)&&(A=Wr.createJsxExpression(void 0,A));if(o.length&&!S)if(h.assert(!E,"Expected no returnValueProperty"),h.assert(!(1&a.facts),"Expected RangeFacts.HasReturn flag to be unset"),1===o.length){const e=o[0];D.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(getSynthesizedDeepClone(e.name),void 0,getSynthesizedDeepClone(e.type),A)],e.parent.flags)))}else{const e=[],n=[];let r=o[0].parent.flags,i=!1;for(const a of o){e.push(Wr.createBindingElement(void 0,void 0,getSynthesizedDeepClone(a.name)));const o=c.typeToTypeNode(c.getBaseTypeOfLiteralType(c.getTypeAtLocation(a)),t,1,8);n.push(Wr.createPropertySignature(void 0,a.symbol.name,void 0,o)),i=i||void 0!==a.type,r&=a.parent.flags}const a=i?Wr.createTypeLiteralNode(n):void 0;a&&setEmitFlags(a,1),D.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(Wr.createObjectBindingPattern(e),void 0,a,A)],r)))}else if(o.length||S){if(o.length)for(const e of o){let t=e.parent.flags;2&t&&(t=-3&t|1),D.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(e.symbol.name,void 0,getTypeDeepCloneUnionUndefined(e.type))],t)))}E&&D.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(E,void 0,getTypeDeepCloneUnionUndefined(g))],1)));const e=getPropertyAssignmentsForWritesAndVariableDeclarations(o,S);E&&e.unshift(Wr.createShorthandPropertyAssignment(E)),1===e.length?(h.assert(!E,"Shouldn't have returnValueProperty here"),D.push(Wr.createExpressionStatement(Wr.createAssignment(e[0].name,A))),1&a.facts&&D.push(Wr.createReturnStatement())):(D.push(Wr.createExpressionStatement(Wr.createAssignment(Wr.createObjectLiteralExpression(e),A))),E&&D.push(Wr.createReturnStatement(Wr.createIdentifier(E))))}else 1&a.facts?D.push(Wr.createReturnStatement(A)):isReadonlyArray(a.range)?D.push(Wr.createExpressionStatement(A)):D.push(A);isReadonlyArray(a.range)?F.replaceNodeRangeWithNodes(s.file,first(a.range),last(a.range),D):F.replaceNodeWithNodes(s.file,a.range,D);const O=F.getChanges(),w=(isReadonlyArray(a.range)?first(a.range):a.range).getSourceFile().fileName,L=getRenameLocation(O,w,m,!1);return{renameFilename:w,renameLocation:L,edits:O};function getTypeDeepCloneUnionUndefined(e){if(void 0===e)return;const t=getSynthesizedDeepClone(e);let n=t;for(;isParenthesizedTypeNode(n);)n=n.type;return isUnionTypeNode(n)&&find(n.types,e=>157===e.kind)?t:Wr.createUnionTypeNode([t,Wr.createKeywordTypeNode(157)])}}(i,r[n],o[n],s,e,t)}(n,e,t)}const i=/^constant_scope_(\d+)$/.exec(t);if(i){const t=+i[1];return h.assert(isFinite(t),"Expected to parse a finite number from the constant scope index"),function getConstantExtractionAtIndex(e,t,n){const{scopes:r,readsAndWrites:{target:i,usagesPerScope:o,constantErrorsPerScope:a,exposedVariableDeclarations:s}}=getPossibleExtractionsWorker(e,t);h.assert(!a[n].length,"The extraction went missing? How?"),h.assert(0===s.length,"Extract constant accepted a range containing a variable declaration?"),t.cancellationToken.throwIfCancellationRequested();return function extractConstantInScope(e,t,{substitutions:n},r,i){const o=i.program.getTypeChecker(),a=t.getSourceFile(),s=getIdentifierForNode(e,t,o,a),c=isInJSFile(t);let l=c||!o.isContextSensitive(e)?void 0:o.typeToTypeNode(o.getContextualType(e),t,1,8),d=function transformConstantInitializer(e,t){return t.size?visitor(e):e;function visitor(e){const n=t.get(getNodeId(e).toString());return n?getSynthesizedDeepClone(n):visitEachChild(e,visitor,void 0)}}(skipParentheses(e),n);({variableType:l,initializer:d}=transformFunctionInitializerAndType(l,d)),suppressLeadingAndTrailingTrivia(d);const p=$m.ChangeTracker.fromContext(i);if(isClassLike(t)){h.assert(!c,"Cannot extract to a JS class");const n=[];n.push(Wr.createModifier(123)),32&r&&n.push(Wr.createModifier(126)),n.push(Wr.createModifier(148));const o=Wr.createPropertyDeclaration(n,s,void 0,l,d);let a=Wr.createPropertyAccessExpression(32&r?Wr.createIdentifier(t.name.getText()):Wr.createThis(),Wr.createIdentifier(s));isInJSXContent(e)&&(a=Wr.createJsxExpression(void 0,a));const u=function getNodeToInsertPropertyBefore(e,t){const n=t.members;let r;h.assert(n.length>0,"Found no members");let i=!0;for(const t of n){if(t.pos>e)return r||n[0];if(i&&!isPropertyDeclaration(t)){if(void 0!==r)return t;i=!1}r=t}return void 0===r?h.fail():r}(e.pos,t);p.insertNodeBefore(i.file,u,o,!0),p.replaceNode(i.file,e,a)}else{const n=Wr.createVariableDeclaration(s,void 0,l,d),r=function getContainingVariableDeclarationIfInList(e,t){let n;for(;void 0!==e&&e!==t;){if(isVariableDeclaration(e)&&e.initializer===n&&isVariableDeclarationList(e.parent)&&e.parent.declarations.length>1)return e;n=e,e=e.parent}}(e,t);if(r){p.insertNodeBefore(i.file,r,n);const t=Wr.createIdentifier(s);p.replaceNode(i.file,e,t)}else if(245===e.parent.kind&&t===findAncestor(e,isScope)){const t=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([n],2));p.replaceNode(i.file,e.parent,t)}else{const r=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([n],2)),o=function getNodeToInsertConstantBefore(e,t){let n;h.assert(!isClassLike(t));for(let r=e;r!==t;r=r.parent)isScope(r)&&(n=r);for(let r=(n||e).parent;;r=r.parent){if(isBlockLike(r)){let t;for(const n of r.statements){if(n.pos>e.pos)break;t=n}return!t&&isCaseClause(r)?(h.assert(isSwitchStatement(r.parent.parent),"Grandparent isn't a switch statement"),r.parent.parent):h.checkDefined(t,"prevStatement failed to get set")}h.assert(r!==t,"Didn't encounter a block-like before encountering scope")}}(e,t);if(0===o.pos?p.insertNodeAtTopOfFile(i.file,r,!1):p.insertNodeBefore(i.file,o,r,!1),245===e.parent.kind)p.delete(i.file,e.parent);else{let t=Wr.createIdentifier(s);isInJSXContent(e)&&(t=Wr.createJsxExpression(void 0,t)),p.replaceNode(i.file,e,t)}}}const u=p.getChanges(),m=e.getSourceFile().fileName,_=getRenameLocation(u,m,s,!0);return{renameFilename:m,renameLocation:_,edits:u};function transformFunctionInitializerAndType(n,r){if(void 0===n)return{variableType:n,initializer:r};if(!isFunctionExpression(r)&&!isArrowFunction(r)||r.typeParameters)return{variableType:n,initializer:r};const i=o.getTypeAtLocation(e),a=singleOrUndefined(o.getSignaturesOfType(i,0));if(!a)return{variableType:n,initializer:r};if(a.getTypeParameters())return{variableType:n,initializer:r};const s=[];let c=!1;for(const e of r.parameters)if(e.type)s.push(e);else{const n=o.getTypeAtLocation(e);n===o.getAnyType()&&(c=!0),s.push(Wr.updateParameterDeclaration(e,e.modifiers,e.dotDotDotToken,e.name,e.questionToken,e.type||o.typeToTypeNode(n,t,1,8),e.initializer))}if(c)return{variableType:n,initializer:r};if(n=void 0,isArrowFunction(r))r=Wr.updateArrowFunction(r,canHaveModifiers(e)?getModifiers(e):void 0,r.typeParameters,s,r.type||o.typeToTypeNode(a.getReturnType(),t,1,8),r.equalsGreaterThanToken,r.body);else{if(a&&a.thisParameter){const n=firstOrUndefined(s);if(!n||isIdentifier(n.name)&&"this"!==n.name.escapedText){const n=o.getTypeOfSymbolAtLocation(a.thisParameter,e);s.splice(0,0,Wr.createParameterDeclaration(void 0,void 0,"this",void 0,o.typeToTypeNode(n,t,1,8)))}}r=Wr.updateFunctionExpression(r,canHaveModifiers(e)?getModifiers(e):void 0,r.asteriskToken,r.name,r.typeParameters,s,r.type||o.typeToTypeNode(a.getReturnType(),t,1),r.body)}return{variableType:n,initializer:r}}}(isExpression(i)?i:i.statements[0].expression,r[n],o[n],e.facts,t)}(n,e,t)}h.fail("Unrecognized action name")}registerRefactor(yl,{kinds:[hl.kind,Tl.kind],getEditsForAction:getRefactorEditsToExtractSymbol,getAvailableActions:getRefactorActionsToExtractSymbol}),(e=>{function createMessage(e){return{message:e,code:0,category:3,key:e}}e.cannotExtractRange=createMessage("Cannot extract range."),e.cannotExtractImport=createMessage("Cannot extract import statement."),e.cannotExtractSuper=createMessage("Cannot extract super call."),e.cannotExtractJSDoc=createMessage("Cannot extract JSDoc."),e.cannotExtractEmpty=createMessage("Cannot extract empty range."),e.expressionExpected=createMessage("expression expected."),e.uselessConstantType=createMessage("No reason to extract constant of type."),e.statementOrExpressionExpected=createMessage("Statement or expression expected."),e.cannotExtractRangeContainingConditionalBreakOrContinueStatements=createMessage("Cannot extract range containing conditional break or continue statements."),e.cannotExtractRangeContainingConditionalReturnStatement=createMessage("Cannot extract range containing conditional return statement."),e.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange=createMessage("Cannot extract range containing labeled break or continue with target outside of the range."),e.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators=createMessage("Cannot extract range containing writes to references located outside of the target range in generators."),e.typeWillNotBeVisibleInTheNewScope=createMessage("Type will not visible in the new scope."),e.functionWillNotBeVisibleInTheNewScope=createMessage("Function will not visible in the new scope."),e.cannotExtractIdentifier=createMessage("Select more than a single identifier."),e.cannotExtractExportedEntity=createMessage("Cannot extract exported declaration"),e.cannotWriteInExpression=createMessage("Cannot write back side-effects when extracting an expression"),e.cannotExtractReadonlyPropertyInitializerOutsideConstructor=createMessage("Cannot move initialization of read-only class property outside of the constructor"),e.cannotExtractAmbientBlock=createMessage("Cannot extract code from ambient contexts"),e.cannotAccessVariablesFromNestedScopes=createMessage("Cannot access variables from nested scopes"),e.cannotExtractToJSClass=createMessage("Cannot extract constant to a class scope in JS"),e.cannotExtractToExpressionArrowFunction=createMessage("Cannot extract constant to an arrow function without a block"),e.cannotExtractFunctionsContainingThisToMethod=createMessage("Cannot extract functions containing this to method")})(gl||(gl={}));var Sl=(e=>(e[e.None=0]="None",e[e.HasReturn=1]="HasReturn",e[e.IsGenerator=2]="IsGenerator",e[e.IsAsyncFunction=4]="IsAsyncFunction",e[e.UsesThis=8]="UsesThis",e[e.UsesThisInFunction=16]="UsesThisInFunction",e[e.InStaticRegion=32]="InStaticRegion",e))(Sl||{});function getRangeToExtract2(e,t,n=!0){const{length:r}=t;if(0===r&&!n)return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractEmpty)]};const i=0===r&&n,o=findFirstNonJsxWhitespaceToken(e,t.start),a=findTokenOnLeftOfPosition(e,textSpanEnd(t)),s=o&&a&&n?function getAdjustedSpanFromNodes(e,t,n){const r=e.getStart(n);let i=t.getEnd();59===n.text.charCodeAt(i)&&i++;return{start:r,length:i-r}}(o,a,e):t,c=i?function getExtractableParent(e){return findAncestor(e,e=>e.parent&&isExtractableExpression(e)&&!isBinaryExpression(e.parent))}(o):getParentNodeInSpan(o,e,s),l=i?c:getParentNodeInSpan(a,e,s);let d,p=0;if(!c||!l)return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractRange)]};if(16777216&c.flags)return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractJSDoc)]};if(c.parent!==l.parent)return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractRange)]};if(c!==l){if(!isBlockLike(c.parent))return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractRange)]};const n=[];for(const e of c.parent.statements){if(e===c||n.length){const t=checkNode(e);if(t)return{errors:t};n.push(e)}if(e===l)break}return n.length?{targetRange:{range:n,facts:p,thisNode:d}}:{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractRange)]}}if(isReturnStatement(c)&&!c.expression)return{errors:[createFileDiagnostic(e,t.start,r,gl.cannotExtractRange)]};const u=function refineNode(e){if(isReturnStatement(e)){if(e.expression)return e.expression}else if(isVariableStatement(e)||isVariableDeclarationList(e)){const t=isVariableStatement(e)?e.declarationList.declarations:e.declarations;let n,r=0;for(const e of t)e.initializer&&(r++,n=e.initializer);if(1===r)return n}else if(isVariableDeclaration(e)&&e.initializer)return e.initializer;return e}(c),m=function checkRootNode(e){if(isIdentifier(isExpressionStatement(e)?e.expression:e))return[createDiagnosticForNode(e,gl.cannotExtractIdentifier)];return}(u)||checkNode(u);return m?{errors:m}:{targetRange:{range:getStatementOrExpressionRange(u),facts:p,thisNode:d}};function checkNode(e){let n;var r;if((r=n||(n={}))[r.None=0]="None",r[r.Break=1]="Break",r[r.Continue=2]="Continue",r[r.Return=4]="Return",h.assert(e.pos<=e.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)"),h.assert(!positionIsSynthesized(e.pos),"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)"),!(isStatement(e)||isExpressionNode(e)&&isExtractableExpression(e)||isStringLiteralJsxAttribute(e)))return[createDiagnosticForNode(e,gl.statementOrExpressionExpected)];if(33554432&e.flags)return[createDiagnosticForNode(e,gl.cannotExtractAmbientBlock)];const i=getContainingClass(e);let o;i&&function checkForStaticContext(e,t){let n=e;for(;n!==t;){if(173===n.kind){isStatic(n)&&(p|=32);break}if(170===n.kind){177===getContainingFunction(n).kind&&(p|=32);break}175===n.kind&&isStatic(n)&&(p|=32),n=n.parent}}(e,i);let a,s=4;if(function visit(e){if(o)return!0;if(isDeclaration(e)){if(hasSyntacticModifier(261===e.kind?e.parent.parent:e,32))return(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractExportedEntity)),!0}switch(e.kind){case 273:return(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractImport)),!0;case 278:return(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractExportedEntity)),!0;case 108:if(214===e.parent.kind){const n=getContainingClass(e);if(void 0===n||n.pos=t.start+t.length)return(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractSuper)),!0}else p|=8,d=e;break;case 220:forEachChild(e,function check(t){if(isThis(t))p|=8,d=e;else{if(isClassLike(t)||isFunctionLike(t)&&!isArrowFunction(t))return!1;forEachChild(t,check)}});case 264:case 263:isSourceFile(e.parent)&&void 0===e.parent.externalModuleIndicator&&(o||(o=[])).push(createDiagnosticForNode(e,gl.functionWillNotBeVisibleInTheNewScope));case 232:case 219:case 175:case 177:case 178:case 179:return!1}const n=s;switch(e.kind){case 246:s&=-5;break;case 259:s=0;break;case 242:e.parent&&259===e.parent.kind&&e.parent.finallyBlock===e&&(s=4);break;case 298:case 297:s|=1;break;default:isIterationStatement(e,!1)&&(s|=3)}switch(e.kind){case 198:case 110:p|=8,d=e;break;case 257:{const t=e.label;(a||(a=[])).push(t.escapedText),forEachChild(e,visit),a.pop();break}case 253:case 252:{const t=e.label;t?contains(a,t.escapedText)||(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):s&(253===e.kind?1:2)||(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 224:p|=4;break;case 230:p|=2;break;case 254:4&s?p|=1:(o||(o=[])).push(createDiagnosticForNode(e,gl.cannotExtractRangeContainingConditionalReturnStatement));break;default:forEachChild(e,visit)}s=n}(e),8&p){const t=getThisContainer(e,!1,!1);(263===t.kind||175===t.kind&&211===t.parent.kind||219===t.kind)&&(p|=16)}return o}}function getStatementOrExpressionRange(e){return isStatement(e)?[e]:isExpressionNode(e)?isExpressionStatement(e.parent)?[e.parent]:e:isStringLiteralJsxAttribute(e)?e:void 0}function isScope(e){return isArrowFunction(e)?isFunctionBody(e.body):isFunctionLikeDeclaration(e)||isSourceFile(e)||isModuleBlock(e)||isClassLike(e)}function getPossibleExtractionsWorker(e,t){const{file:n}=t,r=function collectEnclosingScopes(e){let t=isReadonlyArray(e.range)?first(e.range):e.range;if(8&e.facts&&!(16&e.facts)){const e=getContainingClass(t);if(e){const n=findAncestor(t,isFunctionLikeDeclaration);return n?[n,e]:[e]}}const n=[];for(;;)if(t=t.parent,170===t.kind&&(t=findAncestor(t,e=>isFunctionLikeDeclaration(e)).parent),isScope(t)&&(n.push(t),308===t.kind))return n}(e),i=function getEnclosingTextRange(e,t){return isReadonlyArray(e.range)?{pos:first(e.range).getStart(t),end:last(e.range).getEnd()}:e.range}(e,n),o=function collectReadsAndWrites(e,t,n,r,i,o){const a=new Map,s=[],c=[],l=[],d=[],p=[],u=new Map,m=[];let _;const f=isReadonlyArray(e.range)?1===e.range.length&&isExpressionStatement(e.range[0])?e.range[0].expression:void 0:e.range;let g;if(void 0===f){const t=e.range,n=first(t).getStart(),i=last(t).end;g=createFileDiagnostic(r,n,i-n,gl.expressionExpected)}else 147456&i.getTypeAtLocation(f).flags&&(g=createDiagnosticForNode(f,gl.uselessConstantType));for(const e of t){s.push({usages:new Map,typeParameterUsages:new Map,substitutions:new Map}),c.push(new Map),l.push([]);const t=[];g&&t.push(g),isClassLike(e)&&isInJSFile(e)&&t.push(createDiagnosticForNode(e,gl.cannotExtractToJSClass)),isArrowFunction(e)&&!isBlock(e.body)&&t.push(createDiagnosticForNode(e,gl.cannotExtractToExpressionArrowFunction)),d.push(t)}const y=new Map,T=isReadonlyArray(e.range)?Wr.createBlock(e.range):e.range,S=isReadonlyArray(e.range)?first(e.range):e.range,x=isInGenericContext(S);if(collectUsages(T),x&&!isReadonlyArray(e.range)&&!isJsxAttribute(e.range)){recordTypeParameterUsages(i.getContextualType(e.range))}if(a.size>0){const e=new Map;let n=0;for(let r=S;void 0!==r&&n{s[n].typeParameterUsages.set(t,e)}),n++),isDeclarationWithTypeParameters(r))for(const t of getEffectiveTypeParameterDeclarations(r)){const n=i.getTypeAtLocation(t);a.has(n.id.toString())&&e.set(n.id.toString(),n)}h.assert(n===t.length,"Should have iterated all scopes")}if(p.length){forEachChild(isBlockScope(t[0],t[0].parent)?t[0]:getEnclosingBlockScopeContainer(t[0]),checkForUsedDeclarations)}for(let n=0;n0&&(r.usages.size>0||r.typeParameterUsages.size>0)){const t=isReadonlyArray(e.range)?e.range[0]:e.range;d[n].push(createDiagnosticForNode(t,gl.cannotAccessVariablesFromNestedScopes))}16&e.facts&&isClassLike(t[n])&&l[n].push(createDiagnosticForNode(e.thisNode,gl.cannotExtractFunctionsContainingThisToMethod));let i,o=!1;if(s[n].usages.forEach(e=>{2===e.usage&&(o=!0,106500&e.symbol.flags&&e.symbol.valueDeclaration&&hasEffectiveModifier(e.symbol.valueDeclaration,8)&&(i=e.symbol.valueDeclaration))}),h.assert(isReadonlyArray(e.range)||0===m.length,"No variable declarations expected if something was extracted"),o&&!isReadonlyArray(e.range)){const t=createDiagnosticForNode(e.range,gl.cannotWriteInExpression);l[n].push(t),d[n].push(t)}else if(i&&n>0){const e=createDiagnosticForNode(i,gl.cannotExtractReadonlyPropertyInitializerOutsideConstructor);l[n].push(e),d[n].push(e)}else if(_){const e=createDiagnosticForNode(_,gl.cannotExtractExportedEntity);l[n].push(e),d[n].push(e)}}return{target:T,usagesPerScope:s,functionErrorsPerScope:l,constantErrorsPerScope:d,exposedVariableDeclarations:m};function isInGenericContext(e){return!!findAncestor(e,e=>isDeclarationWithTypeParameters(e)&&0!==getEffectiveTypeParameterDeclarations(e).length)}function recordTypeParameterUsages(e){const t=i.getSymbolWalker(()=>(o.throwIfCancellationRequested(),!0)),{visitedTypes:n}=t.walkType(e);for(const e of n)e.isTypeParameter()&&a.set(e.id.toString(),e)}function collectUsages(e,t=1){if(x){recordTypeParameterUsages(i.getTypeAtLocation(e))}if(isDeclaration(e)&&e.symbol&&p.push(e),isAssignmentExpression(e))collectUsages(e.left,2),collectUsages(e.right);else if(isUnaryExpressionWithWrite(e))collectUsages(e.operand,2);else if(isPropertyAccessExpression(e)||isElementAccessExpression(e))forEachChild(e,collectUsages);else if(isIdentifier(e)){if(!e.parent)return;if(isQualifiedName(e.parent)&&e!==e.parent.left)return;if(isPropertyAccessExpression(e.parent)&&e!==e.parent.expression)return;recordUsage(e,t,isPartOfTypeNode(e))}else forEachChild(e,collectUsages)}function recordUsage(e,n,r){const i=recordUsagebySymbol(e,n,r);if(i)for(let n=0;n=a)return m;if(y.set(m,a),_){for(const e of s){e.usages.get(o.text)&&e.usages.set(o.text,{usage:a,symbol:u,node:o})}return m}const f=u.getDeclarations(),g=f&&find(f,e=>e.getSourceFile()===r);if(g&&!rangeContainsStartEnd(n,g.getStart(),g.end)){if(2&e.facts&&2===a){const e=createDiagnosticForNode(o,gl.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators);for(const t of l)t.push(e);for(const t of d)t.push(e)}for(let e=0;ee.symbol===n);if(e)if(isVariableDeclaration(e)){const t=e.symbol.id.toString();u.has(t)||(m.push(e),u.set(t,!0))}else _=_||e}forEachChild(t,checkForUsedDeclarations)}function getSymbolReferencedByIdentifier(e){return e.parent&&isShorthandPropertyAssignment(e.parent)&&e.parent.name===e?i.getShorthandAssignmentValueSymbol(e.parent):i.getSymbolAtLocation(e)}function tryReplaceWithQualifiedNameOrPropertyAccess(e,t,n){if(!e)return;const r=e.getDeclarations();if(r&&r.some(e=>e.parent===t))return Wr.createIdentifier(e.name);const i=tryReplaceWithQualifiedNameOrPropertyAccess(e.parent,t,n);return void 0!==i?n?Wr.createQualifiedName(i,Wr.createIdentifier(e.name)):Wr.createPropertyAccessExpression(i,e.name):void 0}}(e,r,i,n,t.program.getTypeChecker(),t.cancellationToken);return{scopes:r,affectedTextRange:i,readsAndWrites:o}}function getFirstDeclarationBeforePosition(e,t){let n;const r=e.symbol;if(r&&r.declarations)for(const e of r.declarations)(void 0===n||e.posWr.createShorthandPropertyAssignment(e.symbol.name)),r=map(t,e=>Wr.createShorthandPropertyAssignment(e.symbol.name));return void 0===n?r:void 0===r?n:n.concat(r)}function isReadonlyArray(e){return isArray(e)}function isExtractableExpression(e){const{parent:t}=e;if(307===t.kind)return!1;switch(e.kind){case 11:return 273!==t.kind&&277!==t.kind;case 231:case 207:case 209:return!1;case 80:return 209!==t.kind&&277!==t.kind&&282!==t.kind}return!0}function isInJSXContent(e){return isStringLiteralJsxAttribute(e)||(isJsxElement(e)||isJsxSelfClosingElement(e)||isJsxFragment(e))&&(isJsxElement(e.parent)||isJsxFragment(e.parent))}function isStringLiteralJsxAttribute(e){return isStringLiteral(e)&&e.parent&&isJsxAttribute(e.parent)}var xl={},vl="Generate 'get' and 'set' accessors",bl=getLocaleSpecificMessage(Ot.Generate_get_and_set_accessors),Cl={name:vl,description:bl,kind:"refactor.rewrite.property.generateAccessors"};registerRefactor(vl,{kinds:[Cl.kind],getEditsForAction:function getRefactorActionsToGenerateGetAndSetAccessors(e,t){if(!e.endPosition)return;const n=ed.getAccessorConvertiblePropertyAtPosition(e.file,e.program,e.startPosition,e.endPosition);h.assert(n&&!isRefactorErrorInfo(n),"Expected applicable refactor info");const r=ed.generateAccessorFromProperty(e.file,e.program,e.startPosition,e.endPosition,e,t);if(!r)return;const i=e.file.fileName,o=n.renameAccessor?n.accessorName:n.fieldName;return{renameFilename:i,renameLocation:(isIdentifier(o)?0:-1)+getRenameLocation(r,i,o.text,isParameter(n.declaration)),edits:r}},getAvailableActions(e){if(!e.endPosition)return l;const t=ed.getAccessorConvertiblePropertyAtPosition(e.file,e.program,e.startPosition,e.endPosition,"invoked"===e.triggerReason);return t?isRefactorErrorInfo(t)?e.preferences.provideRefactorNotApplicableReason?[{name:vl,description:bl,actions:[{...Cl,notApplicableReason:t.error}]}]:l:[{name:vl,description:bl,actions:[Cl]}]:l}});var El={},Nl="Infer function return type",kl=getLocaleSpecificMessage(Ot.Infer_function_return_type),Fl={name:Nl,description:kl,kind:"refactor.rewrite.function.returnType"};function getInfo4(e){if(isInJSFile(e.file)||!refactorKindBeginsWith(Fl.kind,e.kind))return;const t=findAncestor(getTouchingPropertyName(e.file,e.startPosition),e=>isBlock(e)||e.parent&&isArrowFunction(e.parent)&&(39===e.kind||e.parent.body===e)?"quit":function isConvertibleDeclaration(e){switch(e.kind){case 263:case 219:case 220:case 175:return!0;default:return!1}}(e));if(!t||!t.body||t.type)return{error:getLocaleSpecificMessage(Ot.Return_type_must_be_inferred_from_a_function)};const n=e.program.getTypeChecker();let r;if(n.isImplementationOfOverload(t)){const e=n.getTypeAtLocation(t).getCallSignatures();e.length>1&&(r=n.getUnionType(mapDefined(e,e=>e.getReturnType())))}if(!r){const e=n.getSignatureFromDeclaration(t);if(e){const i=n.getTypePredicateOfSignature(e);if(i&&i.type){const e=n.typePredicateToTypePredicateNode(i,t,1,8);if(e)return{declaration:t,returnTypeNode:e}}else r=n.getReturnTypeOfSignature(e)}}if(!r)return{error:getLocaleSpecificMessage(Ot.Could_not_determine_function_return_type)};const i=n.typeToTypeNode(r,t,1,8);return i?{declaration:t,returnTypeNode:i}:void 0}registerRefactor(Nl,{kinds:[Fl.kind],getEditsForAction:function getRefactorEditsToInferReturnType(e){const t=getInfo4(e);if(t&&!isRefactorErrorInfo(t)){return{renameFilename:void 0,renameLocation:void 0,edits:$m.ChangeTracker.with(e,n=>function doChange7(e,t,n,r){const i=findChildOfKind(n,22,e),o=isArrowFunction(n)&&void 0===i,a=o?first(n.parameters):i;a&&(o&&(t.insertNodeBefore(e,a,Wr.createToken(21)),t.insertNodeAfter(e,a,Wr.createToken(22))),t.insertNodeAt(e,a.end,r,{prefix:": "}))}(e.file,n,t.declaration,t.returnTypeNode))}}return},getAvailableActions:function getRefactorActionsToInferReturnType(e){const t=getInfo4(e);if(!t)return l;if(!isRefactorErrorInfo(t))return[{name:Nl,description:kl,actions:[Fl]}];if(e.preferences.provideRefactorNotApplicableReason)return[{name:Nl,description:kl,actions:[{...Fl,notApplicableReason:t.error}]}];return l}});var Pl=(e=>(e[e.typeOffset=8]="typeOffset",e[e.modifierMask=255]="modifierMask",e))(Pl||{}),Dl=(e=>(e[e.class=0]="class",e[e.enum=1]="enum",e[e.interface=2]="interface",e[e.namespace=3]="namespace",e[e.typeParameter=4]="typeParameter",e[e.type=5]="type",e[e.parameter=6]="parameter",e[e.variable=7]="variable",e[e.enumMember=8]="enumMember",e[e.property=9]="property",e[e.function=10]="function",e[e.member=11]="member",e))(Dl||{}),Il=(e=>(e[e.declaration=0]="declaration",e[e.static=1]="static",e[e.async=2]="async",e[e.readonly=3]="readonly",e[e.defaultLibrary=4]="defaultLibrary",e[e.local=5]="local",e))(Il||{});function getSemanticClassifications2(e,t,n,r){const i=getEncodedSemanticClassifications2(e,t,n,r);h.assert(i.spans.length%3==0);const o=i.spans,a=[];for(let e=0;ee(r)||r.isUnion()&&r.types.some(e);if(6!==n&&test(e=>e.getConstructSignatures().length>0))return 0;if(test(e=>e.getCallSignatures().length>0)&&!test(e=>e.getProperties().length>0)||function isExpressionInCallExpression(e){for(;isRightSideOfQualifiedNameOrPropertyAccess2(e);)e=e.parent;return isCallExpression(e.parent)&&e.parent.expression===e}(t))return 9===n?11:10}}return n}(o,s,i);const c=n.valueDeclaration;if(c){const r=getCombinedModifierFlags(c),o=getCombinedNodeFlags(c);256&r&&(a|=2),1024&r&&(a|=4),0!==i&&2!==i&&(8&r||2&o||8&n.getFlags())&&(a|=8),7!==i&&10!==i||!function isLocalDeclaration(e,t){isBindingElement(e)&&(e=getDeclarationForBindingElement(e));if(isVariableDeclaration(e))return(!isSourceFile(e.parent.parent.parent)||isCatchClause(e.parent))&&e.getSourceFile()===t;if(isFunctionDeclaration(e))return!isSourceFile(e.parent)&&e.getSourceFile()===t;return!1}(c,t)||(a|=32),e.isSourceFileDefaultLibrary(c.getSourceFile())&&(a|=16)}else n.declarations&&n.declarations.some(t=>e.isSourceFileDefaultLibrary(t.getSourceFile()))&&(a|=16);r(s,i,a)}}}forEachChild(s,visit),a=c}visit(t)}(e,t,n,(e,n,r)=>{i.push(e.getStart(t),e.getWidth(t),(n+1<<8)+r)},r),i}function getDeclarationForBindingElement(e){for(;;){if(!isBindingElement(e.parent.parent))return e.parent.parent;e=e.parent.parent}}function isRightSideOfQualifiedNameOrPropertyAccess2(e){return isQualifiedName(e.parent)&&e.parent.right===e||isPropertyAccessExpression(e.parent)&&e.parent.name===e}var Al=new Map([[261,7],[170,6],[173,9],[268,3],[267,1],[307,8],[264,0],[175,11],[263,10],[219,10],[174,11],[178,9],[179,9],[172,9],[265,2],[266,5],[169,4],[304,9],[305,9]]),Ol="0.8";function createNode(e,t,n,r){const i=isNodeKind(e)?new wl(e,t,n):80===e?new Bl(80,t,n):81===e?new jl(81,t,n):new Rl(e,t,n);return i.parent=r,i.flags=101441536&r.flags,i}var wl=class{constructor(e,t,n){this.pos=t,this.end=n,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}assertHasRealPosition(e){h.assert(!positionIsSynthesized(this.pos)&&!positionIsSynthesized(this.end),e||"Node must have a real position for this operation")}getSourceFile(){return getSourceFileOfNode(this)}getStart(e,t){return this.assertHasRealPosition(),getTokenPosOfNode(this,e,t)}getFullStart(){return this.assertHasRealPosition(),this.pos}getEnd(){return this.assertHasRealPosition(),this.end}getWidth(e){return this.assertHasRealPosition(),this.getEnd()-this.getStart(e)}getFullWidth(){return this.assertHasRealPosition(),this.end-this.pos}getLeadingTriviaWidth(e){return this.assertHasRealPosition(),this.getStart(e)-this.pos}getFullText(e){return this.assertHasRealPosition(),(e||this.getSourceFile()).text.substring(this.pos,this.end)}getText(e){return this.assertHasRealPosition(),e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())}getChildCount(e){return this.getChildren(e).length}getChildAt(e,t){return this.getChildren(t)[e]}getChildren(e=getSourceFileOfNode(this)){return this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"),getNodeChildren(this,e)??setNodeChildren(this,e,function createChildren(e,t){const n=[];if(isJSDocCommentContainingNode(e))return e.forEachChild(e=>{n.push(e)}),n;const r=(null==t?void 0:t.languageVariant)??0;Vs.setText((t||e.getSourceFile()).text),Vs.setLanguageVariant(r);let i=e.pos;const processNode=t=>{addSyntheticNodes(n,i,t.pos,e),n.push(t),i=t.end},processNodes=t=>{addSyntheticNodes(n,i,t.pos,e),n.push(function createSyntaxList(e,t){const n=createNode(353,e.pos,e.end,t),r=[];let i=e.pos;for(const n of e)addSyntheticNodes(r,i,n.pos,t),r.push(n),i=n.end;return addSyntheticNodes(r,i,e.end,t),n._children=r,n}(t,e)),i=t.end};return forEach(e.jsDoc,processNode),i=e.pos,e.forEachChild(processNode,processNodes),addSyntheticNodes(n,i,e.end,e),Vs.setText(void 0),Vs.setLanguageVariant(0),n}(this,e))}getFirstToken(e){this.assertHasRealPosition();const t=this.getChildren(e);if(!t.length)return;const n=find(t,e=>e.kind<310||e.kind>352);return n.kind<167?n:n.getFirstToken(e)}getLastToken(e){this.assertHasRealPosition();const t=lastOrUndefined(this.getChildren(e));if(t)return t.kind<167?t:t.getLastToken(e)}forEachChild(e,t){return forEachChild(this,e,t)}};function addSyntheticNodes(e,t,n,r){for(Vs.resetTokenState(t);t"inheritDoc"===e.tagName.text||"inheritdoc"===e.tagName.text)}function getJsDocTagsOfDeclarations(e,t){if(!e)return l;let n=Am.getJsDocTagsFromDeclarations(e,t);if(t&&(0===n.length||e.some(hasJSDocInheritDocTag))){const r=new Set;for(const i of e){const e=findBaseOfDeclaration(t,i,e=>{var n;if(!r.has(e))return r.add(e),178===i.kind||179===i.kind?e.getContextualJsDocTags(i,t):1===(null==(n=e.declarations)?void 0:n.length)?e.getJsDocTags(t):void 0});e&&(n=[...e,...n])}}return n}function getDocumentationComment(e,t){if(!e)return l;let n=Am.getJsDocCommentsFromDeclarations(e,t);if(t&&(0===n.length||e.some(hasJSDocInheritDocTag))){const r=new Set;for(const i of e){const e=findBaseOfDeclaration(t,i,e=>{if(!r.has(e))return r.add(e),178===i.kind||179===i.kind?e.getContextualDocumentationComment(i,t):e.getDocumentationComment(t)});e&&(n=0===n.length?e.slice():e.concat(lineBreakPart(),n))}}return n}function findBaseOfDeclaration(e,t,n){var r;const i=177===(null==(r=t.parent)?void 0:r.kind)?t.parent.parent:t.parent;if(!i)return;const o=hasStaticModifier(t);return firstDefined(getAllSuperTypeNodes(i),r=>{const i=e.getTypeAtLocation(r),a=o&&i.symbol?e.getTypeOfSymbol(i.symbol):i,s=e.getPropertyOfType(a,t.symbol.name);return s?n(s):void 0})}var Ul=class extends wl{constructor(e,t,n){super(e,t,n)}update(e,t){return updateSourceFile(this,e,t)}getLineAndCharacterOfPosition(e){return getLineAndCharacterOfPosition(this,e)}getLineStarts(){return getLineStarts(this)}getPositionOfLineAndCharacter(e,t,n){return computePositionOfLineAndCharacter(getLineStarts(this),e,t,this.text,n)}getLineEndOfPosition(e){const{line:t}=this.getLineAndCharacterOfPosition(e),n=this.getLineStarts();let r;t+1>=n.length&&(r=this.getEnd()),r||(r=n[t+1]-1);const i=this.getFullText();return"\n"===i[r]&&"\r"===i[r-1]?r-1:r}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){const e=createMultiMap();return this.forEachChild(function visit(t){switch(t.kind){case 263:case 219:case 175:case 174:const n=t,r=getDeclarationName(n);if(r){const t=function getDeclarations(t){let n=e.get(t);n||e.set(t,n=[]);return n}(r),i=lastOrUndefined(t);i&&n.parent===i.parent&&n.symbol===i.symbol?n.body&&!i.body&&(t[t.length-1]=n):t.push(n)}forEachChild(t,visit);break;case 264:case 232:case 265:case 266:case 267:case 268:case 272:case 282:case 277:case 274:case 275:case 178:case 179:case 188:addDeclaration(t),forEachChild(t,visit);break;case 170:if(!hasSyntacticModifier(t,31))break;case 261:case 209:{const e=t;if(isBindingPattern(e.name)){forEachChild(e.name,visit);break}e.initializer&&visit(e.initializer)}case 307:case 173:case 172:addDeclaration(t);break;case 279:const i=t;i.exportClause&&(isNamedExports(i.exportClause)?forEach(i.exportClause.elements,visit):visit(i.exportClause.name));break;case 273:const o=t.importClause;o&&(o.name&&addDeclaration(o.name),o.namedBindings&&(275===o.namedBindings.kind?addDeclaration(o.namedBindings):forEach(o.namedBindings.elements,visit)));break;case 227:0!==getAssignmentDeclarationKind(t)&&addDeclaration(t);default:forEachChild(t,visit)}}),e;function addDeclaration(t){const n=getDeclarationName(t);n&&e.add(n,t)}function getDeclarationName(e){const t=getNonAssignedNameOfDeclaration(e);return t&&(isComputedPropertyName(t)&&isPropertyAccessExpression(t.expression)?t.expression.name.text:isPropertyName(t)?getNameFromPropertyName(t):void 0)}}},zl=class{constructor(e,t,n){this.fileName=e,this.text=t,this.skipTrivia=n||(e=>e)}getLineAndCharacterOfPosition(e){return getLineAndCharacterOfPosition(this,e)}};function toEditorSettings(e){let t=!0;for(const n in e)if(hasProperty(e,n)&&!isCamelCase(n)){t=!1;break}if(t)return e;const n={};for(const t in e)if(hasProperty(e,t)){n[isCamelCase(t)?t:t.charAt(0).toLowerCase()+t.substr(1)]=e[t]}return n}function isCamelCase(e){return!e.length||e.charAt(0)===e.charAt(0).toLowerCase()}function displayPartsToString(e){return e?map(e,e=>e.text).join(""):""}function getDefaultCompilerOptions2(){return{target:1,jsx:1}}function getSupportedCodeFixes(){return ed.getSupportedErrorCodes()}var Vl=class{constructor(e){this.host=e}getCurrentSourceFile(e){var t,n,r,i,o,a,s,c;const l=this.host.getScriptSnapshot(e);if(!l)throw new Error("Could not find file: '"+e+"'.");const d=getScriptKind(e,this.host),p=this.host.getScriptVersion(e);let u;if(this.currentFileName!==e){u=createLanguageServiceSourceFile(e,l,{languageVersion:99,impliedNodeFormat:getImpliedNodeFormatForFile(toPath(e,this.host.getCurrentDirectory(),(null==(r=null==(n=(t=this.host).getCompilerHost)?void 0:n.call(t))?void 0:r.getCanonicalFileName)||hostGetCanonicalFileName(this.host)),null==(c=null==(s=null==(a=null==(o=(i=this.host).getCompilerHost)?void 0:o.call(i))?void 0:a.getModuleResolutionCache)?void 0:s.call(a))?void 0:c.getPackageJsonInfoCache(),this.host,this.host.getCompilationSettings()),setExternalModuleIndicator:getSetExternalModuleIndicator(this.host.getCompilationSettings()),jsDocParsingMode:0},p,!0,d)}else if(this.currentFileVersion!==p){const e=l.getChangeRange(this.currentFileScriptSnapshot);u=updateLanguageServiceSourceFile(this.currentSourceFile,l,p,e)}return u&&(this.currentFileVersion=p,this.currentFileName=e,this.currentFileScriptSnapshot=l,this.currentSourceFile=u),this.currentSourceFile}};function setSourceFileFields(e,t,n){e.version=n,e.scriptSnapshot=t}function createLanguageServiceSourceFile(e,t,n,r,i,o){const a=createSourceFile(e,getSnapshotText(t),n,i,o);return setSourceFileFields(a,t,r),a}function updateLanguageServiceSourceFile(e,t,n,r,i){if(r&&n!==e.version){let o;const a=0!==r.span.start?e.text.substr(0,r.span.start):"",s=textSpanEnd(r.span)!==e.text.length?e.text.substr(textSpanEnd(r.span)):"";if(0===r.newLength)o=a&&s?a+s:a||s;else{const e=t.getText(r.span.start,r.span.start+r.newLength);o=a&&s?a+e+s:a?a+e:e+s}const c=updateSourceFile(e,o,r,i);return setSourceFileFields(c,t,n),c.nameTable=void 0,e!==c&&e.scriptSnapshot&&(e.scriptSnapshot.dispose&&e.scriptSnapshot.dispose(),e.scriptSnapshot=void 0),c}const o={languageVersion:e.languageVersion,impliedNodeFormat:e.impliedNodeFormat,setExternalModuleIndicator:e.setExternalModuleIndicator,jsDocParsingMode:e.jsDocParsingMode};return createLanguageServiceSourceFile(e.fileName,t,o,n,!0,e.scriptKind)}var ql={isCancellationRequested:returnFalse,throwIfCancellationRequested:noop},Hl=class{constructor(e){this.cancellationToken=e}isCancellationRequested(){return this.cancellationToken.isCancellationRequested()}throwIfCancellationRequested(){var e;if(this.isCancellationRequested())throw null==(e=J)||e.instant(J.Phase.Session,"cancellationThrown",{kind:"CancellationTokenObject"}),new se}},Kl=class{constructor(e,t=20){this.hostCancellationToken=e,this.throttleWaitMilliseconds=t,this.lastCancellationCheckTime=0}isCancellationRequested(){const e=B();return Math.abs(e-this.lastCancellationCheckTime)>=this.throttleWaitMilliseconds&&(this.lastCancellationCheckTime=e,this.hostCancellationToken.isCancellationRequested())}throwIfCancellationRequested(){var e;if(this.isCancellationRequested())throw null==(e=J)||e.instant(J.Phase.Session,"cancellationThrown",{kind:"ThrottledCancellationToken"}),new se}},Gl=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints","getSupportedCodeFixes","getPasteEdits"],$l=[...Gl,"getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors","preparePasteEditsForFile"];function createLanguageService(e,t=createDocumentRegistry(e.useCaseSensitiveFileNames&&e.useCaseSensitiveFileNames(),e.getCurrentDirectory(),e.jsDocParsingMode),n){var r;let i;i=void 0===n?0:"boolean"==typeof n?n?2:0:n;const o=new Vl(e);let a,s,c=0;const d=e.getCancellationToken?new Hl(e.getCancellationToken()):ql,p=e.getCurrentDirectory();function log(t){e.log&&e.log(t)}maybeSetLocalizedDiagnosticMessages(null==(r=e.getLocalizedDiagnosticMessages)?void 0:r.bind(e));const u=hostUsesCaseSensitiveFileNames(e),m=createGetCanonicalFileName(u),_=getSourceMapper({useCaseSensitiveFileNames:()=>u,getCurrentDirectory:()=>p,getProgram,fileExists:maybeBind(e,e.fileExists),readFile:maybeBind(e,e.readFile),getDocumentPositionMapper:maybeBind(e,e.getDocumentPositionMapper),getSourceFileLike:maybeBind(e,e.getSourceFileLike),log});function getValidSourceFile(e){const t=a.getSourceFile(e);if(!t){const t=new Error(`Could not find source file: '${e}'.`);throw t.ProgramFiles=a.getSourceFiles().map(e=>e.fileName),t}return t}function synchronizeHostData(){e.updateFromProject&&!e.updateFromProjectInProgress?e.updateFromProject():function synchronizeHostDataWorker(){var n,r,o;if(h.assert(2!==i),e.getProjectVersion){const t=e.getProjectVersion();if(t){if(s===t&&!(null==(n=e.hasChangedAutomaticTypeDirectiveNames)?void 0:n.call(e)))return;s=t}}const l=e.getTypeRootsVersion?e.getTypeRootsVersion():0;c!==l&&(log("TypeRoots version has changed; provide new program"),a=void 0,c=l);const f=e.getScriptFileNames().slice(),g=e.getCompilationSettings()||{target:1,jsx:1},y=e.hasInvalidatedResolutions||returnFalse,T=maybeBind(e,e.hasInvalidatedLibResolutions)||returnFalse,S=maybeBind(e,e.hasChangedAutomaticTypeDirectiveNames),x=null==(r=e.getProjectReferences)?void 0:r.call(e);let v,b={getSourceFile:getOrCreateSourceFile,getSourceFileByPath:getOrCreateSourceFileByPath,getCancellationToken:()=>d,getCanonicalFileName:m,useCaseSensitiveFileNames:()=>u,getNewLine:()=>getNewLineCharacter(g),getDefaultLibFileName:t=>e.getDefaultLibFileName(t),writeFile:noop,getCurrentDirectory:()=>p,fileExists:t=>e.fileExists(t),readFile:t=>e.readFile&&e.readFile(t),getSymlinkCache:maybeBind(e,e.getSymlinkCache),realpath:maybeBind(e,e.realpath),directoryExists:t=>directoryProbablyExists(t,e),getDirectories:t=>e.getDirectories?e.getDirectories(t):[],readDirectory:(t,n,r,i,o)=>(h.checkDefined(e.readDirectory,"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"),e.readDirectory(t,n,r,i,o)),onReleaseOldSourceFile,onReleaseParsedCommandLine,hasInvalidatedResolutions:y,hasInvalidatedLibResolutions:T,hasChangedAutomaticTypeDirectiveNames:S,trace:maybeBind(e,e.trace),resolveModuleNames:maybeBind(e,e.resolveModuleNames),getModuleResolutionCache:maybeBind(e,e.getModuleResolutionCache),createHash:maybeBind(e,e.createHash),resolveTypeReferenceDirectives:maybeBind(e,e.resolveTypeReferenceDirectives),resolveModuleNameLiterals:maybeBind(e,e.resolveModuleNameLiterals),resolveTypeReferenceDirectiveReferences:maybeBind(e,e.resolveTypeReferenceDirectiveReferences),resolveLibrary:maybeBind(e,e.resolveLibrary),useSourceOfProjectReferenceRedirect:maybeBind(e,e.useSourceOfProjectReferenceRedirect),getParsedCommandLine,jsDocParsingMode:e.jsDocParsingMode,getGlobalTypingsCacheLocation:maybeBind(e,e.getGlobalTypingsCacheLocation)};const C=b.getSourceFile,{getSourceFileWithCache:E}=changeCompilerHostLikeToUseCache(b,e=>toPath(e,p,m),(...e)=>C.call(b,...e));b.getSourceFile=E,null==(o=e.setCompilerHost)||o.call(e,b);const N={useCaseSensitiveFileNames:u,fileExists:e=>b.fileExists(e),readFile:e=>b.readFile(e),directoryExists:e=>b.directoryExists(e),getDirectories:e=>b.getDirectories(e),realpath:b.realpath,readDirectory:(...e)=>b.readDirectory(...e),trace:b.trace,getCurrentDirectory:b.getCurrentDirectory,onUnRecoverableConfigFileDiagnostic:noop},k=t.getKeyForCompilationSettings(g);let F=new Set;if(isProgramUptoDate(a,f,g,(t,n)=>e.getScriptVersion(n),e=>b.fileExists(e),y,T,S,getParsedCommandLine,x))return b=void 0,v=void 0,void(F=void 0);return a=createProgram({rootNames:f,options:g,host:b,oldProgram:a,projectReferences:x}),b=void 0,v=void 0,F=void 0,_.clearCache(),void a.getTypeChecker();function getParsedCommandLine(t){const n=toPath(t,p,m),r=null==v?void 0:v.get(n);if(void 0!==r)return r||void 0;const i=e.getParsedCommandLine?e.getParsedCommandLine(t):getParsedCommandLineOfConfigFileUsingSourceFile(t);return(v||(v=new Map)).set(n,i||!1),i}function getParsedCommandLineOfConfigFileUsingSourceFile(e){const t=getOrCreateSourceFile(e,100);if(t)return t.path=toPath(e,p,m),t.resolvedPath=t.path,t.originalFileName=t.fileName,parseJsonSourceFileConfigFileContent(t,N,getNormalizedAbsolutePath(getDirectoryPath(e),p),void 0,getNormalizedAbsolutePath(e,p))}function onReleaseParsedCommandLine(t,n,r){var i;e.getParsedCommandLine?null==(i=e.onReleaseParsedCommandLine)||i.call(e,t,n,r):n&&releaseOldSourceFile(n.sourceFile,r)}function releaseOldSourceFile(e,n){const r=t.getKeyForCompilationSettings(n);t.releaseDocumentWithKey(e.resolvedPath,r,e.scriptKind,e.impliedNodeFormat)}function onReleaseOldSourceFile(t,n,r,i){var o;releaseOldSourceFile(t,n),null==(o=e.onReleaseOldSourceFile)||o.call(e,t,n,r,i)}function getOrCreateSourceFile(e,t,n,r){return getOrCreateSourceFileByPath(e,toPath(e,p,m),t,n,r)}function getOrCreateSourceFileByPath(n,r,i,o,s){h.assert(b,"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");const c=e.getScriptSnapshot(n);if(!c)return;const l=getScriptKind(n,e),d=e.getScriptVersion(n);if(!s){const o=a&&a.getSourceFileByPath(r);if(o){if(l===o.scriptKind||F.has(o.resolvedPath))return t.updateDocumentWithKey(n,r,e,k,c,d,l,i);t.releaseDocumentWithKey(o.resolvedPath,t.getKeyForCompilationSettings(a.getCompilerOptions()),o.scriptKind,o.impliedNodeFormat),F.add(o.resolvedPath)}}return t.acquireDocumentWithKey(n,r,e,k,c,d,l,i)}}()}function getProgram(){if(2!==i)return synchronizeHostData(),a;h.assert(void 0===a)}function cleanupSemanticCache(){if(a){const e=t.getKeyForCompilationSettings(a.getCompilerOptions());forEach(a.getSourceFiles(),n=>t.releaseDocumentWithKey(n.resolvedPath,e,n.scriptKind,n.impliedNodeFormat)),a=void 0}}function getNodesForSpan(e,t){if(textSpanContainsTextRange(t,e))return;const n=findAncestor(findTokenOnLeftOfPosition(e,textSpanEnd(t))||e,e=>textRangeContainsTextSpan(e,t)),r=[];return chooseOverlappingNodes(t,n,r),e.end===t.start+t.length&&r.push(e.endOfFileToken),some(r,isSourceFile)?void 0:r}function chooseOverlappingNodes(e,t,n){return!!function nodeOverlapsWithSpan(e,t){const n=t.start+t.length;return e.post.start}(t,e)&&(textSpanContainsTextRange(e,t)?(addSourceElement(t,n),!0):isBlockLike(t)?function chooseOverlappingBlockLike(e,t,n){const r=[],i=t.statements.filter(t=>chooseOverlappingNodes(e,t,r));if(i.length===t.statements.length)return addSourceElement(t,n),!0;return n.push(...r),!1}(e,t,n):isClassLike(t)?function chooseOverlappingClassLike(e,t,n){var r,i,o;const overlaps=t=>textRangeIntersectsWithTextSpan(t,e);if((null==(r=t.modifiers)?void 0:r.some(overlaps))||t.name&&overlaps(t.name)||(null==(i=t.typeParameters)?void 0:i.some(overlaps))||(null==(o=t.heritageClauses)?void 0:o.some(overlaps)))return addSourceElement(t,n),!0;const a=[],s=t.members.filter(t=>chooseOverlappingNodes(e,t,a));if(s.length===t.members.length)return addSourceElement(t,n),!0;return n.push(...a),!1}(e,t,n):(addSourceElement(t,n),!0))}function addSourceElement(e,t){for(;e.parent&&!isSourceElement(e);)e=e.parent;t.push(e)}function getReferencesWorker2(e,t,n,r){synchronizeHostData();const i=n&&n.use===vm.FindReferencesUse.Rename?a.getSourceFiles().filter(e=>!a.isSourceFileDefaultLibrary(e)):a.getSourceFiles();return vm.findReferenceOrRenameEntries(a,d,i,e,t,n,r)}const f=new Map(Object.entries({19:20,21:22,23:24,32:30}));function applySingleCodeActionCommand(t){return h.assertEqual(t.type,"install package"),e.installPackage?e.installPackage({fileName:(n=t.file,toPath(n,p,m)),packageName:t.packageName}):Promise.reject("Host does not implement `installPackage`");var n}function getLinesForRange(e,t){return{lineStarts:e.getLineStarts(),firstLine:e.getLineAndCharacterOfPosition(t.pos).line,lastLine:e.getLineAndCharacterOfPosition(t.end).line}}function toggleLineComment(e,t,n){const r=o.getCurrentSourceFile(e),i=[],{lineStarts:a,firstLine:s,lastLine:c}=getLinesForRange(r,t);let l=n||!1,d=Number.MAX_VALUE;const p=new Map,u=new RegExp(/\S/),m=isInsideJsxElement(r,a[s]),_=m?"{/*":"//";for(let e=s;e<=c;e++){const t=r.text.substring(a[e],r.getLineEndOfPosition(a[e])),i=u.exec(t);i&&(d=Math.min(d,i.index),p.set(e.toString(),i.index),t.substr(i.index,_.length)!==_&&(l=void 0===n||n))}for(let n=s;n<=c;n++){if(s!==c&&a[n]===t.end)continue;const o=p.get(n.toString());void 0!==o&&(m?i.push(...toggleMultilineComment(e,{pos:a[n]+d,end:r.getLineEndOfPosition(a[n])},l,m)):l?i.push({newText:_,span:{length:0,start:a[n]+d}}):r.text.substr(a[n]+o,_.length)===_&&i.push({newText:"",span:{length:_.length,start:a[n]+o}}))}return i}function toggleMultilineComment(e,t,n,r){var i;const a=o.getCurrentSourceFile(e),s=[],{text:c}=a;let l=!1,d=n||!1;const p=[];let{pos:u}=t;const m=void 0!==r?r:isInsideJsxElement(a,u),_=m?"{/*":"/*",f=m?"*/}":"*/",g=m?"\\{\\/\\*":"\\/\\*",y=m?"\\*\\/\\}":"\\*\\/";for(;u<=t.end;){const e=isInComment(a,u+(c.substr(u,_.length)===_?_.length:0));if(e)m&&(e.pos--,e.end++),p.push(e.pos),3===e.kind&&p.push(e.end),l=!0,u=e.end+1;else{const e=c.substring(u,t.end).search(`(${g})|(${y})`);d=void 0!==n?n:d||!isTextWhiteSpaceLike(c,u,-1===e?t.end:u+e),u=-1===e?t.end+1:u+e+f.length}}if(d||!l){2!==(null==(i=isInComment(a,t.pos))?void 0:i.kind)&&insertSorted(p,t.pos,compareValues),insertSorted(p,t.end,compareValues);const e=p[0];c.substr(e,_.length)!==_&&s.push({newText:_,span:{length:0,start:e}});for(let e=1;e0?e-f.length:0,n=c.substr(t,f.length)===f?f.length:0;s.push({newText:"",span:{length:_.length,start:e-n}})}return s}function isUnclosedTag({openingElement:e,closingElement:t,parent:n}){return!tagNamesAreEquivalent(e.tagName,t.tagName)||isJsxElement(n)&&tagNamesAreEquivalent(e.tagName,n.openingElement.tagName)&&isUnclosedTag(n)}function isUnclosedFragment({closingFragment:e,parent:t}){return!!(262144&e.flags)||isJsxFragment(t)&&isUnclosedFragment(t)}function getRefactorContext(t,n,r,i,o,a){const[s,c]="number"==typeof n?[n,void 0]:[n.pos,n.end];return{file:t,startPosition:s,endPosition:c,program:getProgram(),host:e,formatContext:r_.getFormatContext(i,e),cancellationToken:d,preferences:r,triggerReason:o,kind:a}}f.forEach((e,t)=>f.set(e.toString(),Number(t)));const g={dispose:function dispose(){cleanupSemanticCache(),e=void 0},cleanupSemanticCache,getSyntacticDiagnostics:function getSyntacticDiagnostics(e){return synchronizeHostData(),a.getSyntacticDiagnostics(getValidSourceFile(e),d).slice()},getSemanticDiagnostics:function getSemanticDiagnostics(e){synchronizeHostData();const t=getValidSourceFile(e),n=a.getSemanticDiagnostics(t,d);if(!Zn(a.getCompilerOptions()))return n.slice();const r=a.getDeclarationDiagnostics(t,d);return[...n,...r]},getRegionSemanticDiagnostics:function getRegionSemanticDiagnostics(e,t){synchronizeHostData();const n=getValidSourceFile(e),r=a.getCompilerOptions();if(skipTypeChecking(n,r,a)||!canIncludeBindAndCheckDiagnostics(n,r)||a.getCachedSemanticDiagnostics(n))return;const i=function getNodesForRanges(e,t){const n=[],r=normalizeSpans(t.map(e=>createTextSpanFromRange(e)));for(const t of r){const r=getNodesForSpan(e,t);if(!r)return;n.push(...r)}if(!n.length)return;return n}(n,t);if(!i)return;const o=normalizeSpans(i.map(e=>createTextSpanFromBounds(e.getFullStart(),e.getEnd())));return{diagnostics:a.getSemanticDiagnostics(n,d,i).slice(),spans:o}},getSuggestionDiagnostics:function getSuggestionDiagnostics(e){return synchronizeHostData(),computeSuggestionDiagnostics(getValidSourceFile(e),a,d)},getCompilerOptionsDiagnostics:function getCompilerOptionsDiagnostics(){return synchronizeHostData(),[...a.getOptionsDiagnostics(d),...a.getGlobalDiagnostics(d)]},getSyntacticClassifications:function getSyntacticClassifications2(e,t){return getSyntacticClassifications(d,o.getCurrentSourceFile(e),t)},getSemanticClassifications:function getSemanticClassifications3(e,t,n){return synchronizeHostData(),"2020"===(n||"original")?getSemanticClassifications2(a,d,getValidSourceFile(e),t):getSemanticClassifications(a.getTypeChecker(),d,getValidSourceFile(e),a.getClassifiableNames(),t)},getEncodedSyntacticClassifications:function getEncodedSyntacticClassifications2(e,t){return getEncodedSyntacticClassifications(d,o.getCurrentSourceFile(e),t)},getEncodedSemanticClassifications:function getEncodedSemanticClassifications3(e,t,n){return synchronizeHostData(),"original"===(n||"original")?getEncodedSemanticClassifications(a.getTypeChecker(),d,getValidSourceFile(e),a.getClassifiableNames(),t):getEncodedSemanticClassifications2(a,d,getValidSourceFile(e),t)},getCompletionsAtPosition:function getCompletionsAtPosition2(t,n,r=Es,i){const o={...r,includeCompletionsForModuleExports:r.includeCompletionsForModuleExports||r.includeExternalModuleExports,includeCompletionsWithInsertText:r.includeCompletionsWithInsertText||r.includeInsertTextCompletions};return synchronizeHostData(),sm.getCompletionsAtPosition(e,a,log,getValidSourceFile(t),n,o,r.triggerCharacter,r.triggerKind,d,i&&r_.getFormatContext(i,e),r.includeSymbol)},getCompletionEntryDetails:function getCompletionEntryDetails2(t,n,r,i,o,s=Es,c){return synchronizeHostData(),sm.getCompletionEntryDetails(a,log,getValidSourceFile(t),n,{name:r,source:o,data:c},e,i&&r_.getFormatContext(i,e),s,d)},getCompletionEntrySymbol:function getCompletionEntrySymbol2(t,n,r,i,o=Es){return synchronizeHostData(),sm.getCompletionEntrySymbol(a,log,getValidSourceFile(t),n,{name:r,source:i},e,o)},getSignatureHelpItems:function getSignatureHelpItems2(e,t,{triggerReason:n}=Es){synchronizeHostData();const r=getValidSourceFile(e);return Um.getSignatureHelpItems(a,r,t,n,d)},getQuickInfoAtPosition:function getQuickInfoAtPosition(e,t,n,r){synchronizeHostData();const i=getValidSourceFile(e),o=getTouchingPropertyName(i,t);if(o===i)return;const s=a.getTypeChecker(),c=function getNodeForQuickInfo(e){if(isNewExpression(e.parent)&&e.pos===e.parent.pos)return e.parent.expression;if(isNamedTupleMember(e.parent)&&e.pos===e.parent.pos)return e.parent;if(isImportMeta(e.parent)&&e.parent.name===e)return e.parent;if(isJsxNamespacedName(e.parent))return e.parent;return e}(o),l=function getSymbolAtLocationForQuickInfo(e,t){const n=getContainingObjectLiteralElement(e);if(n){const e=t.getContextualType(n.parent),r=e&&getPropertySymbolsFromContextualType(n,t,e,!1);if(r&&1===r.length)return first(r)}return t.getSymbolAtLocation(e)}(c,s);if(!l||s.isUnknownSymbol(l)){const e=function shouldGetType(e,t,n){switch(t.kind){case 80:return!(16777216&t.flags&&!isInJSFile(t)&&(172===t.parent.kind&&t.parent.name===t||findAncestor(t,e=>170===e.kind)))&&(!isLabelName(t)&&!isTagName(t)&&!isConstTypeReference(t.parent));case 212:case 167:return!isInComment(e,n);case 110:case 198:case 108:case 203:return!0;case 237:return isImportMeta(t);default:return!1}}(i,c,t)?s.getTypeAtLocation(c):void 0;return e&&{kind:"",kindModifiers:"",textSpan:createTextSpanFromNode(c,i),displayParts:s.runWithCancellationToken(d,t=>typeToDisplayParts(t,e,getContainerNode(c),void 0,r)),documentation:e.symbol?e.symbol.getDocumentationComment(s):void 0,tags:e.symbol?e.symbol.getJsDocTags(s):void 0}}const{symbolKind:p,displayParts:u,documentation:m,tags:_,canIncreaseVerbosityLevel:f}=s.runWithCancellationToken(d,e=>Km.getSymbolDisplayPartsDocumentationAndSymbolKind(e,l,i,getContainerNode(c),c,void 0,void 0,n??dn,r));return{kind:p,kindModifiers:Km.getSymbolModifiers(s,l),textSpan:createTextSpanFromNode(c,i),displayParts:u,documentation:m,tags:_,canIncreaseVerbosityLevel:f}},getDefinitionAtPosition:function getDefinitionAtPosition2(e,t,n,r){return synchronizeHostData(),Pm.getDefinitionAtPosition(a,getValidSourceFile(e),t,n,r)},getDefinitionAndBoundSpan:function getDefinitionAndBoundSpan2(e,t){return synchronizeHostData(),Pm.getDefinitionAndBoundSpan(a,getValidSourceFile(e),t)},getImplementationAtPosition:function getImplementationAtPosition(e,t){return synchronizeHostData(),vm.getImplementationsAtPosition(a,d,a.getSourceFiles(),getValidSourceFile(e),t)},getTypeDefinitionAtPosition:function getTypeDefinitionAtPosition2(e,t){return synchronizeHostData(),Pm.getTypeDefinitionAtPosition(a.getTypeChecker(),getValidSourceFile(e),t)},getReferencesAtPosition:function getReferencesAtPosition(e,t){return synchronizeHostData(),getReferencesWorker2(getTouchingPropertyName(getValidSourceFile(e),t),t,{use:vm.FindReferencesUse.References},vm.toReferenceEntry)},findReferences:function findReferences(e,t){return synchronizeHostData(),vm.findReferencedSymbols(a,d,a.getSourceFiles(),getValidSourceFile(e),t)},getFileReferences:function getFileReferences(e){return synchronizeHostData(),vm.Core.getReferencesForFileName(e,a,a.getSourceFiles()).map(vm.toReferenceEntry)},getDocumentHighlights:function getDocumentHighlights(e,t,n){const r=normalizePath(e);h.assert(n.some(e=>normalizePath(e)===r)),synchronizeHostData();const i=mapDefined(n,e=>a.getSourceFile(e)),o=getValidSourceFile(e);return tc.getDocumentHighlights(a,d,o,t,i)},getNameOrDottedNameSpan:function getNameOrDottedNameSpan(e,t,n){const r=o.getCurrentSourceFile(e),i=getTouchingPropertyName(r,t);if(i===r)return;switch(i.kind){case 212:case 167:case 11:case 97:case 112:case 106:case 108:case 110:case 198:case 80:break;default:return}let a=i;for(;;)if(isRightSideOfPropertyAccess(a)||isRightSideOfQualifiedName(a))a=a.parent;else{if(!isNameOfModuleDeclaration(a))break;if(268!==a.parent.parent.kind||a.parent.parent.body!==a.parent)break;a=a.parent.parent.name}return createTextSpanFromBounds(a.getStart(),i.getEnd())},getBreakpointStatementAtPosition:function getBreakpointStatementAtPosition(e,t){const n=o.getCurrentSourceFile(e);return Ql.spanInSourceFileAtLocation(n,t)},getNavigateToItems:function getNavigateToItems2(e,t,n,r=!1,i=!1){return synchronizeHostData(),getNavigateToItems(n?[getValidSourceFile(n)]:a.getSourceFiles(),a.getTypeChecker(),d,e,t,r,i)},getRenameInfo:function getRenameInfo2(e,t,n){return synchronizeHostData(),Wm.getRenameInfo(a,getValidSourceFile(e),t,n||{})},getSmartSelectionRange:function getSmartSelectionRange2(e,t){return qm.getSmartSelectionRange(t,o.getCurrentSourceFile(e))},findRenameLocations:function findRenameLocations(e,t,n,r,i){synchronizeHostData();const o=getValidSourceFile(e),a=getAdjustedRenameLocation(getTouchingPropertyName(o,t));if(Wm.nodeIsEligibleForRename(a)){if(isIdentifier(a)&&(isJsxOpeningElement(a.parent)||isJsxClosingElement(a.parent))&&isIntrinsicJsxName(a.escapedText)){const{openingElement:e,closingElement:t}=a.parent.parent;return[e,t].map(e=>{const t=createTextSpanFromNode(e.tagName,o);return{fileName:o.fileName,textSpan:t,...vm.toContextSpan(t,o,e.parent)}})}{const e=getQuotePreference(o,i??Es),s="boolean"==typeof i?i:null==i?void 0:i.providePrefixAndSuffixTextForRename;return getReferencesWorker2(a,t,{findInStrings:n,findInComments:r,providePrefixAndSuffixTextForRename:s,use:vm.FindReferencesUse.Rename},(t,n,r)=>vm.toRenameLocation(t,n,r,s||!1,e))}}},getNavigationBarItems:function getNavigationBarItems2(e){return getNavigationBarItems(o.getCurrentSourceFile(e),d)},getNavigationTree:function getNavigationTree2(e){return getNavigationTree(o.getCurrentSourceFile(e),d)},getOutliningSpans:function getOutliningSpans(e){const t=o.getCurrentSourceFile(e);return jm.collectElements(t,d)},getTodoComments:function getTodoComments(e,t){synchronizeHostData();const n=getValidSourceFile(e);d.throwIfCancellationRequested();const r=n.text,i=[];if(t.length>0&&!function isNodeModulesFile(e){return e.includes("/node_modules/")}(n.fileName)){const e=function getTodoCommentsRegExp(){const e="("+/(?:^(?:\s|\*)*)/.source+"|"+/(?:\/{2,}\s*)/.source+"|"+/(?:\/\*+\s*)/.source+")",n="(?:"+map(t,e=>"("+function escapeRegExp(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")}(e.text)+")").join("|")+")";return new RegExp(e+"("+n+/(?:.*?)/.source+")"+/(?:$|\*\/)/.source,"gim")}();let o;for(;o=e.exec(r);){d.throwIfCancellationRequested();const e=3;h.assert(o.length===t.length+e);const a=o[1],s=o.index+a.length;if(!isInComment(n,s))continue;let c;for(let n=0;n=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57}},getBraceMatchingAtPosition:function getBraceMatchingAtPosition(e,t){const n=o.getCurrentSourceFile(e),r=getTouchingToken(n,t),i=r.getStart(n)===t?f.get(r.kind.toString()):void 0,a=i&&findChildOfKind(r.parent,i,n);return a?[createTextSpanFromNode(r,n),createTextSpanFromNode(a,n)].sort((e,t)=>e.start-t.start):l},getIndentationAtPosition:function getIndentationAtPosition(e,t,n){let r=B();const i=toEditorSettings(n),a=o.getCurrentSourceFile(e);log("getIndentationAtPosition: getCurrentSourceFile: "+(B()-r)),r=B();const s=r_.SmartIndenter.getIndentation(t,a,i);return log("getIndentationAtPosition: computeIndentation : "+(B()-r)),s},getFormattingEditsForRange:function getFormattingEditsForRange(t,n,r,i){const a=o.getCurrentSourceFile(t);return r_.formatSelection(n,r,a,r_.getFormatContext(toEditorSettings(i),e))},getFormattingEditsForDocument:function getFormattingEditsForDocument(t,n){return r_.formatDocument(o.getCurrentSourceFile(t),r_.getFormatContext(toEditorSettings(n),e))},getFormattingEditsAfterKeystroke:function getFormattingEditsAfterKeystroke(t,n,r,i){const a=o.getCurrentSourceFile(t),s=r_.getFormatContext(toEditorSettings(i),e);if(!isInComment(a,n))switch(r){case"{":return r_.formatOnOpeningCurly(n,a,s);case"}":return r_.formatOnClosingCurly(n,a,s);case";":return r_.formatOnSemicolon(n,a,s);case"\n":return r_.formatOnEnter(n,a,s)}return[]},getDocCommentTemplateAtPosition:function getDocCommentTemplateAtPosition2(t,n,r,i){const a=i?r_.getFormatContext(i,e).options:void 0;return Am.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(e,a),o.getCurrentSourceFile(t),n,r)},isValidBraceCompletionAtPosition:function isValidBraceCompletionAtPosition(e,t,n){if(60===n)return!1;const r=o.getCurrentSourceFile(e);if(isInString(r,t))return!1;if(isInsideJsxElementOrAttribute(r,t))return 123===n;if(isInTemplateString(r,t))return!1;switch(n){case 39:case 34:case 96:return!isInComment(r,t)}return!0},getJsxClosingTagAtPosition:function getJsxClosingTagAtPosition(e,t){const n=o.getCurrentSourceFile(e),r=findPrecedingToken(t,n);if(!r)return;const i=32===r.kind&&isJsxOpeningElement(r.parent)?r.parent.parent:isJsxText(r)&&isJsxElement(r.parent)?r.parent:void 0;if(i&&isUnclosedTag(i))return{newText:``};const a=32===r.kind&&isJsxOpeningFragment(r.parent)?r.parent.parent:isJsxText(r)&&isJsxFragment(r.parent)?r.parent:void 0;return a&&isUnclosedFragment(a)?{newText:""}:void 0},getLinkedEditingRangeAtPosition:function getLinkedEditingRangeAtPosition(e,t){const n=o.getCurrentSourceFile(e),r=findPrecedingToken(t,n);if(!r||308===r.parent.kind)return;const i="[a-zA-Z0-9:\\-\\._$]*";if(isJsxFragment(r.parent.parent)){const e=r.parent.parent.openingFragment,o=r.parent.parent.closingFragment;if(containsParseError(e)||containsParseError(o))return;const a=e.getStart(n)+1,s=o.getStart(n)+2;if(t!==a&&t!==s)return;return{ranges:[{start:a,length:0},{start:s,length:0}],wordPattern:i}}{const e=findAncestor(r.parent,e=>!(!isJsxOpeningElement(e)&&!isJsxClosingElement(e)));if(!e)return;h.assert(isJsxOpeningElement(e)||isJsxClosingElement(e),"tag should be opening or closing element");const o=e.parent.openingElement,a=e.parent.closingElement,s=o.tagName.getStart(n),c=o.tagName.end,l=a.tagName.getStart(n),d=a.tagName.end;if(s===o.getStart(n)||l===a.getStart(n)||c===o.getEnd()||d===a.getEnd())return;if(!(s<=t&&t<=c||l<=t&&t<=d))return;if(o.tagName.getText(n)!==a.tagName.getText(n))return;return{ranges:[{start:s,length:c-s},{start:l,length:d-l}],wordPattern:i}}},getSpanOfEnclosingComment:function getSpanOfEnclosingComment(e,t,n){const r=o.getCurrentSourceFile(e),i=r_.getRangeOfEnclosingComment(r,t);return!i||n&&3!==i.kind?void 0:createTextSpanFromRange(i)},getCodeFixesAtPosition:function getCodeFixesAtPosition(t,n,r,i,o,s=Es){synchronizeHostData();const c=getValidSourceFile(t),l=createTextSpanFromBounds(n,r),p=r_.getFormatContext(o,e);return flatMap(deduplicate(i,equateValues,compareValues),t=>(d.throwIfCancellationRequested(),ed.getFixes({errorCode:t,sourceFile:c,span:l,program:a,host:e,cancellationToken:d,formatContext:p,preferences:s})))},getCombinedCodeFix:function getCombinedCodeFix(t,n,r,i=Es){synchronizeHostData(),h.assert("file"===t.type);const o=getValidSourceFile(t.fileName),s=r_.getFormatContext(r,e);return ed.getAllFixes({fixId:n,sourceFile:o,program:a,host:e,cancellationToken:d,formatContext:s,preferences:i})},applyCodeActionCommand:function applyCodeActionCommand(e,t){const n="string"==typeof e?t:e;return isArray(n)?Promise.all(n.map(e=>applySingleCodeActionCommand(e))):applySingleCodeActionCommand(n)},organizeImports:function organizeImports2(t,n,r=Es){synchronizeHostData(),h.assert("file"===t.type);const i=getValidSourceFile(t.fileName);if(containsParseError(i))return l;const o=r_.getFormatContext(n,e),s=t.mode??(t.skipDestructiveCodeActions?"SortAndCombine":"All");return Bm.organizeImports(i,o,e,a,r,s)},getEditsForFileRename:function getEditsForFileRename2(t,n,r,i=Es){return getEditsForFileRename(getProgram(),t,n,e,r_.getFormatContext(r,e),i,_)},getEmitOutput:function getEmitOutput(t,n,r){synchronizeHostData();const i=getValidSourceFile(t),o=e.getCustomTransformers&&e.getCustomTransformers();return getFileEmitOutput(a,i,!!n,d,o,r)},getNonBoundSourceFile:function getNonBoundSourceFile(e){return o.getCurrentSourceFile(e)},getProgram,getCurrentProgram:()=>a,getAutoImportProvider:function getAutoImportProvider(){var t;return null==(t=e.getPackageJsonAutoImportProvider)?void 0:t.call(e)},updateIsDefinitionOfReferencedSymbols:function updateIsDefinitionOfReferencedSymbols(t,n){const r=a.getTypeChecker(),i=function getSymbolForProgram(){for(const i of t)for(const t of i.references){if(n.has(t)){const e=getNodeForSpan(t);return h.assertIsDefined(e),r.getSymbolAtLocation(e)}const i=getMappedDocumentSpan(t,_,maybeBind(e,e.fileExists));if(i&&n.has(i)){const e=getNodeForSpan(i);if(e)return r.getSymbolAtLocation(e)}}return}();if(!i)return!1;for(const r of t)for(const t of r.references){const r=getNodeForSpan(t);if(h.assertIsDefined(r),n.has(t)||vm.isDeclarationOfSymbol(r,i)){n.add(t),t.isDefinition=!0;const r=getMappedDocumentSpan(t,_,maybeBind(e,e.fileExists));r&&n.add(r)}else t.isDefinition=!1}return!0;function getNodeForSpan(e){const t=a.getSourceFile(e.fileName);if(!t)return;const n=getTouchingPropertyName(t,e.textSpan.start);return vm.Core.getAdjustedNode(n,{use:vm.FindReferencesUse.References})}},getApplicableRefactors:function getApplicableRefactors2(e,t,n=Es,r,i,o){synchronizeHostData();const a=getValidSourceFile(e);return bc.getApplicableRefactors(getRefactorContext(a,t,n,Es,r,i),o)},getEditsForRefactor:function getEditsForRefactor2(e,t,n,r,i,o=Es,a){synchronizeHostData();const s=getValidSourceFile(e);return bc.getEditsForRefactor(getRefactorContext(s,n,o,t),r,i,a)},getMoveToRefactoringFileSuggestions:function getMoveToRefactoringFileSuggestions(t,n,r=Es){synchronizeHostData();const i=getValidSourceFile(t),o=h.checkDefined(a.getSourceFiles()),s=extensionFromPath(t),c=getStatementsToMove(getRefactorContext(i,n,r,Es)),l=containsJsx(null==c?void 0:c.all),d=mapDefined(o,e=>{const t=extensionFromPath(e.fileName);return!(null==a?void 0:a.isSourceFileFromExternalLibrary(i))&&!(i===getValidSourceFile(e.fileName)||".ts"===s&&".d.ts"===t||".d.ts"===s&&startsWith(getBaseFileName(e.fileName),"lib.")&&".d.ts"===t)&&(s===t||(".tsx"===s&&".ts"===t||".jsx"===s&&".js"===t)&&!l)?e.fileName:void 0});return{newFileName:createNewFileName(i,a,e,c),files:d}},toLineColumnOffset:function toLineColumnOffset(e,t){return 0===t?{line:0,character:0}:_.toLineColumnOffset(e,t)},getSourceMapper:()=>_,clearSourceMapperCache:()=>_.clearCache(),prepareCallHierarchy:function prepareCallHierarchy(e,t){synchronizeHostData();const n=Xl.resolveCallHierarchyDeclaration(a,getTouchingPropertyName(getValidSourceFile(e),t));return n&&mapOneOrMany(n,e=>Xl.createCallHierarchyItem(a,e))},provideCallHierarchyIncomingCalls:function provideCallHierarchyIncomingCalls(e,t){synchronizeHostData();const n=getValidSourceFile(e),r=firstOrOnly(Xl.resolveCallHierarchyDeclaration(a,0===t?n:getTouchingPropertyName(n,t)));return r?Xl.getIncomingCalls(a,r,d):[]},provideCallHierarchyOutgoingCalls:function provideCallHierarchyOutgoingCalls(e,t){synchronizeHostData();const n=getValidSourceFile(e),r=firstOrOnly(Xl.resolveCallHierarchyDeclaration(a,0===t?n:getTouchingPropertyName(n,t)));return r?Xl.getOutgoingCalls(a,r):[]},toggleLineComment,toggleMultilineComment,commentSelection:function commentSelection(e,t){const n=o.getCurrentSourceFile(e),{firstLine:r,lastLine:i}=getLinesForRange(n,t);return r===i&&t.pos!==t.end?toggleMultilineComment(e,t,!0):toggleLineComment(e,t,!0)},uncommentSelection:function uncommentSelection(e,t){const n=o.getCurrentSourceFile(e),r=[],{pos:i}=t;let{end:a}=t;i===a&&(a+=isInsideJsxElement(n,i)?2:1);for(let t=i;t<=a;t++){const i=isInComment(n,t);if(i){switch(i.kind){case 2:r.push(...toggleLineComment(e,{end:i.end,pos:i.pos+1},!1));break;case 3:r.push(...toggleMultilineComment(e,{end:i.end,pos:i.pos+1},!1))}t=i.end+1}}return r},provideInlayHints:function provideInlayHints2(t,n,r=Es){synchronizeHostData();const i=getValidSourceFile(t);return Im.provideInlayHints(function getInlayHintsContext(t,n,r){return{file:t,program:getProgram(),host:e,span:n,preferences:r,cancellationToken:d}}(i,n,r))},getSupportedCodeFixes,preparePasteEditsForFile:function preparePasteEditsForFile(e,t){return synchronizeHostData(),x_.preparePasteEdits(getValidSourceFile(e),t,a.getTypeChecker())},getPasteEdits:function getPasteEdits(t,n){return synchronizeHostData(),v_.pasteEditsProvider(getValidSourceFile(t.targetFile),t.pastedText,t.pasteLocations,t.copiedFrom?{file:getValidSourceFile(t.copiedFrom.file),range:t.copiedFrom.range}:void 0,e,t.preferences,r_.getFormatContext(n,e),d)},mapCode:function mapCode2(t,n,r,i,a){return Rm.mapCode(o.getCurrentSourceFile(t),n,r,e,r_.getFormatContext(i,e),a)}};switch(i){case 0:break;case 1:Gl.forEach(e=>g[e]=()=>{throw new Error(`LanguageService Operation: ${e} not allowed in LanguageServiceMode.PartialSemantic`)});break;case 2:$l.forEach(e=>g[e]=()=>{throw new Error(`LanguageService Operation: ${e} not allowed in LanguageServiceMode.Syntactic`)});break;default:h.assertNever(i)}return g}function getNameTable(e){return e.nameTable||function initializeNameTable(e){const t=e.nameTable=new Map;e.forEachChild(function walk(e){if(isIdentifier(e)&&!isTagName(e)&&e.escapedText||isStringOrNumericLiteralLike(e)&&function literalIsName(e){return isDeclarationName(e)||284===e.parent.kind||function isArgumentOfElementAccessExpression(e){return e&&e.parent&&213===e.parent.kind&&e.parent.argumentExpression===e}(e)||isLiteralComputedPropertyDeclarationName(e)}(e)){const n=getEscapedTextOfIdentifierOrLiteral(e);t.set(n,void 0===t.get(n)?e.pos:-1)}else if(isPrivateIdentifier(e)){const n=e.escapedText;t.set(n,void 0===t.get(n)?e.pos:-1)}if(forEachChild(e,walk),hasJSDocNodes(e))for(const t of e.jsDoc)forEachChild(t,walk)})}(e),e.nameTable}function getContainingObjectLiteralElement(e){const t=function getContainingObjectLiteralElementWorker(e){switch(e.kind){case 11:case 15:case 9:if(168===e.parent.kind)return isObjectLiteralElement(e.parent.parent)?e.parent.parent:void 0;case 80:case 296:return!isObjectLiteralElement(e.parent)||211!==e.parent.parent.kind&&293!==e.parent.parent.kind||e.parent.name!==e?void 0:e.parent}return}(e);return t&&(isObjectLiteralExpression(t.parent)||isJsxAttributes(t.parent))?t:void 0}function getPropertySymbolsFromContextualType(e,t,n,r){const i=getNameFromPropertyName(e.name);if(!i)return l;if(!n.isUnion()){const e=n.getProperty(i);return e?[e]:l}const o=isObjectLiteralExpression(e.parent)||isJsxAttributes(e.parent)?filter(n.types,n=>!t.isTypeInvalidDueToUnionDiscriminant(n,e.parent)):n.types,a=mapDefined(o,e=>e.getProperty(i));if(r&&(0===a.length||a.length===n.types.length)){const e=n.getProperty(i);if(e)return[e]}return o.length||a.length?deduplicate(a,equateValues):mapDefined(n.types,e=>e.getProperty(i))}function getDefaultLibFilePath(e){if(kt)return combinePaths(getDirectoryPath(normalizePath(kt.getExecutingFilePath())),getDefaultLibFileName(e));throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. ")}function transform(e,t,n){const r=[];n=fixupCompilerOptions(n,r);const i=isArray(e)?e:[e],o=transformNodes(void 0,void 0,Wr,n,i,t,!0);return o.diagnostics=concatenate(o.diagnostics,r),o}setObjectAllocator(function getServicesObjectAllocator(){return{getNodeConstructor:()=>wl,getTokenConstructor:()=>Rl,getIdentifierConstructor:()=>Bl,getPrivateIdentifierConstructor:()=>jl,getSourceFileConstructor:()=>Ul,getSymbolConstructor:()=>Ml,getTypeConstructor:()=>Jl,getSignatureConstructor:()=>Wl,getSourceMapSourceConstructor:()=>zl}}());var Ql={};function spanInSourceFileAtLocation(e,t){if(e.isDeclarationFile)return;let n=getTokenAtPosition(e,t);const r=e.getLineAndCharacterOfPosition(t).line;if(e.getLineAndCharacterOfPosition(n.getStart(e)).line>r){const t=findPrecedingToken(n.pos,e);if(!t||e.getLineAndCharacterOfPosition(t.getEnd()).line!==r)return;n=t}if(!(33554432&n.flags))return spanInNode(n);function textSpan(t,n){const r=canHaveDecorators(t)?findLast(t.modifiers,isDecorator):void 0;return createTextSpanFromBounds(r?skipTrivia(e.text,r.end):t.getStart(e),(n||t).getEnd())}function textSpanEndingAtNextToken(t,n){return textSpan(t,findNextToken(n,n.parent,e))}function spanInNodeIfStartsOnSameLine(t,n){return t&&r===e.getLineAndCharacterOfPosition(t.getStart(e)).line?spanInNode(t):spanInNode(n)}function spanInPreviousNode(t){return spanInNode(findPrecedingToken(t.pos,e))}function spanInNextNode(t){return spanInNode(findNextToken(t,t.parent,e))}function spanInNode(t){if(t){const{parent:n}=t;switch(t.kind){case 244:return spanInVariableDeclaration(t.declarationList.declarations[0]);case 261:case 173:case 172:return spanInVariableDeclaration(t);case 170:return function spanInParameterDeclaration(e){if(isBindingPattern(e.name))return spanInBindingPattern(e.name);if(function canHaveSpanInParameterDeclaration(e){return!!e.initializer||void 0!==e.dotDotDotToken||hasSyntacticModifier(e,3)}(e))return textSpan(e);{const t=e.parent,n=t.parameters.indexOf(e);return h.assert(-1!==n),0!==n?spanInParameterDeclaration(t.parameters[n-1]):spanInNode(t.body)}}(t);case 263:case 175:case 174:case 178:case 179:case 177:case 219:case 220:return function spanInFunctionDeclaration(e){if(!e.body)return;if(canFunctionHaveSpanInWholeDeclaration(e))return textSpan(e);return spanInNode(e.body)}(t);case 242:if(isFunctionBlock(t))return function spanInFunctionBlock(e){const t=e.statements.length?e.statements[0]:e.getLastToken();if(canFunctionHaveSpanInWholeDeclaration(e.parent))return spanInNodeIfStartsOnSameLine(e.parent,t);return spanInNode(t)}(t);case 269:return spanInBlock(t);case 300:return spanInBlock(t.block);case 245:return textSpan(t.expression);case 254:return textSpan(t.getChildAt(0),t.expression);case 248:return textSpanEndingAtNextToken(t,t.expression);case 247:return spanInNode(t.statement);case 260:return textSpan(t.getChildAt(0));case 246:return textSpanEndingAtNextToken(t,t.expression);case 257:return spanInNode(t.statement);case 253:case 252:return textSpan(t.getChildAt(0),t.label);case 249:return function spanInForStatement(e){if(e.initializer)return spanInInitializerOfForLike(e);if(e.condition)return textSpan(e.condition);if(e.incrementor)return textSpan(e.incrementor)}(t);case 250:return textSpanEndingAtNextToken(t,t.expression);case 251:return spanInInitializerOfForLike(t);case 256:return textSpanEndingAtNextToken(t,t.expression);case 297:case 298:return spanInNode(t.statements[0]);case 259:return spanInBlock(t.tryBlock);case 258:case 278:return textSpan(t,t.expression);case 272:return textSpan(t,t.moduleReference);case 273:case 279:return textSpan(t,t.moduleSpecifier);case 268:if(1!==getModuleInstanceState(t))return;case 264:case 267:case 307:case 209:return textSpan(t);case 255:return spanInNode(t.statement);case 171:return function spanInNodeArray(t,n,r){if(t){const i=t.indexOf(n);if(i>=0){let n=i,o=i+1;for(;n>0&&r(t[n-1]);)n--;for(;o0)return spanInNode(t.declarations[0])}}function spanInBindingPattern(e){const t=forEach(e.elements,e=>233!==e.kind?e:void 0);return t?spanInNode(t):209===e.parent.kind?textSpan(e.parent):textSpanFromVariableDeclaration(e.parent)}function spanInArrayLiteralOrObjectLiteralDestructuringPattern(e){h.assert(208!==e.kind&&207!==e.kind);const t=forEach(210===e.kind?e.elements:e.properties,e=>233!==e.kind?e:void 0);return t?spanInNode(t):textSpan(227===e.parent.kind?e.parent:e)}}}i(Ql,{spanInSourceFileAtLocation:()=>spanInSourceFileAtLocation});var Xl={};function isVariableLike2(e){return isPropertyDeclaration(e)||isVariableDeclaration(e)}function isAssignedExpression(e){return(isFunctionExpression(e)||isArrowFunction(e)||isClassExpression(e))&&isVariableLike2(e.parent)&&e===e.parent.initializer&&isIdentifier(e.parent.name)&&(!!(2&getCombinedNodeFlags(e.parent))||isPropertyDeclaration(e.parent))}function isPossibleCallHierarchyDeclaration(e){return isSourceFile(e)||isModuleDeclaration(e)||isFunctionDeclaration(e)||isFunctionExpression(e)||isClassDeclaration(e)||isClassExpression(e)||isClassStaticBlockDeclaration(e)||isMethodDeclaration(e)||isMethodSignature(e)||isGetAccessorDeclaration(e)||isSetAccessorDeclaration(e)}function isValidCallHierarchyDeclaration(e){return isSourceFile(e)||isModuleDeclaration(e)&&isIdentifier(e.name)||isFunctionDeclaration(e)||isClassDeclaration(e)||isClassStaticBlockDeclaration(e)||isMethodDeclaration(e)||isMethodSignature(e)||isGetAccessorDeclaration(e)||isSetAccessorDeclaration(e)||function isNamedExpression(e){return(isFunctionExpression(e)||isClassExpression(e))&&isNamedDeclaration(e)}(e)||isAssignedExpression(e)}function getCallHierarchyDeclarationReferenceNode(e){return isSourceFile(e)?e:isNamedDeclaration(e)?e.name:isAssignedExpression(e)?e.parent.name:h.checkDefined(e.modifiers&&find(e.modifiers,isDefaultModifier3))}function isDefaultModifier3(e){return 90===e.kind}function getSymbolOfCallHierarchyDeclaration(e,t){const n=getCallHierarchyDeclarationReferenceNode(t);return n&&e.getSymbolAtLocation(n)}function findImplementation(e,t){if(t.body)return t;if(isConstructorDeclaration(t))return getFirstConstructorWithBody(t.parent);if(isFunctionDeclaration(t)||isMethodDeclaration(t)){const n=getSymbolOfCallHierarchyDeclaration(e,t);return n&&n.valueDeclaration&&isFunctionLikeDeclaration(n.valueDeclaration)&&n.valueDeclaration.body?n.valueDeclaration:void 0}return t}function findAllInitialDeclarations(e,t){const n=getSymbolOfCallHierarchyDeclaration(e,t);let r;if(n&&n.declarations){const e=indicesOf(n.declarations),t=map(n.declarations,e=>({file:e.getSourceFile().fileName,pos:e.pos}));e.sort((e,n)=>compareStringsCaseSensitive(t[e].file,t[n].file)||t[e].pos-t[n].pos);const i=map(e,e=>n.declarations[e]);let o;for(const e of i)isValidCallHierarchyDeclaration(e)&&(o&&o.parent===e.parent&&o.end===e.pos||(r=append(r,e)),o=e)}return r}function findImplementationOrAllInitialDeclarations(e,t){return isClassStaticBlockDeclaration(t)?t:isFunctionLikeDeclaration(t)?findImplementation(e,t)??findAllInitialDeclarations(e,t)??t:findAllInitialDeclarations(e,t)??t}function resolveCallHierarchyDeclaration(e,t){const n=e.getTypeChecker();let r=!1;for(;;){if(isValidCallHierarchyDeclaration(t))return findImplementationOrAllInitialDeclarations(n,t);if(isPossibleCallHierarchyDeclaration(t)){const e=findAncestor(t,isValidCallHierarchyDeclaration);return e&&findImplementationOrAllInitialDeclarations(n,e)}if(isDeclarationName(t)){if(isValidCallHierarchyDeclaration(t.parent))return findImplementationOrAllInitialDeclarations(n,t.parent);if(isPossibleCallHierarchyDeclaration(t.parent)){const e=findAncestor(t.parent,isValidCallHierarchyDeclaration);return e&&findImplementationOrAllInitialDeclarations(n,e)}return isVariableLike2(t.parent)&&t.parent.initializer&&isAssignedExpression(t.parent.initializer)?t.parent.initializer:void 0}if(isConstructorDeclaration(t))return isValidCallHierarchyDeclaration(t.parent)?t.parent:void 0;if(126!==t.kind||!isClassStaticBlockDeclaration(t.parent)){if(isVariableDeclaration(t)&&t.initializer&&isAssignedExpression(t.initializer))return t.initializer;if(!r){let e=n.getSymbolAtLocation(t);if(e&&(2097152&e.flags&&(e=n.getAliasedSymbol(e)),e.valueDeclaration)){r=!0,t=e.valueDeclaration;continue}}return}t=t.parent}}function createCallHierarchyItem(e,t){const n=t.getSourceFile(),r=function getCallHierarchyItemName(e,t){if(isSourceFile(t))return{text:t.fileName,pos:0,end:0};if((isFunctionDeclaration(t)||isClassDeclaration(t))&&!isNamedDeclaration(t)){const e=t.modifiers&&find(t.modifiers,isDefaultModifier3);if(e)return{text:"default",pos:e.getStart(),end:e.getEnd()}}if(isClassStaticBlockDeclaration(t)){const n=skipTrivia(t.getSourceFile().text,moveRangePastModifiers(t).pos),r=n+6,i=e.getTypeChecker(),o=i.getSymbolAtLocation(t.parent);return{text:(o?`${i.symbolToString(o,t.parent)} `:"")+"static {}",pos:n,end:r}}const n=isAssignedExpression(t)?t.parent.name:h.checkDefined(getNameOfDeclaration(t),"Expected call hierarchy item to have a name");let r=isIdentifier(n)?idText(n):isStringOrNumericLiteralLike(n)?n.text:isComputedPropertyName(n)&&isStringOrNumericLiteralLike(n.expression)?n.expression.text:void 0;if(void 0===r){const i=e.getTypeChecker(),o=i.getSymbolAtLocation(n);o&&(r=i.symbolToString(o,t))}if(void 0===r){const e=Pa();r=usingSingleLineStringWriter(n=>e.writeNode(4,t,t.getSourceFile(),n))}return{text:r,pos:n.getStart(),end:n.getEnd()}}(e,t),i=function getCallHierarchItemContainerName(e){var t,n,r,i;if(isAssignedExpression(e))return isPropertyDeclaration(e.parent)&&isClassLike(e.parent.parent)?isClassExpression(e.parent.parent)?null==(t=getAssignedName(e.parent.parent))?void 0:t.getText():null==(n=e.parent.parent.name)?void 0:n.getText():isModuleBlock(e.parent.parent.parent.parent)&&isIdentifier(e.parent.parent.parent.parent.parent.name)?e.parent.parent.parent.parent.parent.name.getText():void 0;switch(e.kind){case 178:case 179:case 175:return 211===e.parent.kind?null==(r=getAssignedName(e.parent))?void 0:r.getText():null==(i=getNameOfDeclaration(e.parent))?void 0:i.getText();case 263:case 264:case 268:if(isModuleBlock(e.parent)&&isIdentifier(e.parent.parent.name))return e.parent.parent.name.getText()}}(t),o=getNodeKind(t),a=getNodeModifiers(t),s=createTextSpanFromBounds(skipTrivia(n.text,t.getFullStart(),!1,!0),t.getEnd()),c=createTextSpanFromBounds(r.pos,r.end);return{file:n.fileName,kind:o,kindModifiers:a,name:r.text,containerName:i,span:s,selectionSpan:c}}function isDefined(e){return void 0!==e}function convertEntryToCallSite(e){if(e.kind===vm.EntryKind.Node){const{node:t}=e;if(isCallOrNewExpressionTarget(t,!0,!0)||isTaggedTemplateTag(t,!0,!0)||isDecoratorTarget(t,!0,!0)||isJsxOpeningLikeElementTagName(t,!0,!0)||isRightSideOfPropertyAccess(t)||isArgumentExpressionOfElementAccess(t)){const e=t.getSourceFile();return{declaration:findAncestor(t,isValidCallHierarchyDeclaration)||e,range:createTextRangeFromNode(t,e)}}}}function getCallSiteGroupKey(e){return getNodeId(e.declaration)}function getIncomingCalls(e,t,n){if(isSourceFile(t)||isModuleDeclaration(t)||isClassStaticBlockDeclaration(t))return[];const r=getCallHierarchyDeclarationReferenceNode(t),i=filter(vm.findReferenceOrRenameEntries(e,n,e.getSourceFiles(),r,0,{use:vm.FindReferencesUse.References},convertEntryToCallSite),isDefined);return i?group(i,getCallSiteGroupKey,t=>function convertCallSiteGroupToIncomingCall(e,t){return function createCallHierarchyIncomingCall(e,t){return{from:e,fromSpans:t}}(createCallHierarchyItem(e,t[0].declaration),map(t,e=>createTextSpanFromRange(e.range)))}(e,t)):[]}function collectCallSites(e,t){const n=[],r=function createCallSiteCollector(e,t){function recordCallSite(n){const r=isTaggedTemplateExpression(n)?n.tag:isJsxOpeningLikeElement(n)?n.tagName:isAccessExpression(n)||isClassStaticBlockDeclaration(n)?n:n.expression,i=resolveCallHierarchyDeclaration(e,r);if(i){const e=createTextRangeFromNode(r,n.getSourceFile());if(isArray(i))for(const n of i)t.push({declaration:n,range:e});else t.push({declaration:i,range:e})}}return function collect(e){if(e&&!(33554432&e.flags))if(isValidCallHierarchyDeclaration(e)){if(isClassLike(e))for(const t of e.members)t.name&&isComputedPropertyName(t.name)&&collect(t.name.expression)}else{switch(e.kind){case 80:case 272:case 273:case 279:case 265:case 266:return;case 176:return void recordCallSite(e);case 217:case 235:case 239:return void collect(e.expression);case 261:case 170:return collect(e.name),void collect(e.initializer);case 214:case 215:return recordCallSite(e),collect(e.expression),void forEach(e.arguments,collect);case 216:return recordCallSite(e),collect(e.tag),void collect(e.template);case 287:case 286:return recordCallSite(e),collect(e.tagName),void collect(e.attributes);case 171:return recordCallSite(e),void collect(e.expression);case 212:case 213:recordCallSite(e),forEachChild(e,collect)}isPartOfTypeNode(e)||forEachChild(e,collect)}}}(e,n);switch(t.kind){case 308:!function collectCallSitesOfSourceFile(e,t){forEach(e.statements,t)}(t,r);break;case 268:!function collectCallSitesOfModuleDeclaration(e,t){!hasSyntacticModifier(e,128)&&e.body&&isModuleBlock(e.body)&&forEach(e.body.statements,t)}(t,r);break;case 263:case 219:case 220:case 175:case 178:case 179:!function collectCallSitesOfFunctionLikeDeclaration(e,t,n){const r=findImplementation(e,t);r&&(forEach(r.parameters,n),n(r.body))}(e.getTypeChecker(),t,r);break;case 264:case 232:!function collectCallSitesOfClassLikeDeclaration(e,t){forEach(e.modifiers,t);const n=getClassExtendsHeritageElement(e);n&&t(n.expression);for(const n of e.members)canHaveModifiers(n)&&forEach(n.modifiers,t),isPropertyDeclaration(n)?t(n.initializer):isConstructorDeclaration(n)&&n.body?(forEach(n.parameters,t),t(n.body)):isClassStaticBlockDeclaration(n)&&t(n)}(t,r);break;case 176:!function collectCallSitesOfClassStaticBlockDeclaration(e,t){t(e.body)}(t,r);break;default:h.assertNever(t)}return n}function getOutgoingCalls(e,t){return 33554432&t.flags||isMethodSignature(t)?[]:group(collectCallSites(e,t),getCallSiteGroupKey,t=>function convertCallSiteGroupToOutgoingCall(e,t){return function createCallHierarchyOutgoingCall(e,t){return{to:e,fromSpans:t}}(createCallHierarchyItem(e,t[0].declaration),map(t,e=>createTextSpanFromRange(e.range)))}(e,t))}i(Xl,{createCallHierarchyItem:()=>createCallHierarchyItem,getIncomingCalls:()=>getIncomingCalls,getOutgoingCalls:()=>getOutgoingCalls,resolveCallHierarchyDeclaration:()=>resolveCallHierarchyDeclaration});var Yl={};i(Yl,{v2020:()=>Zl});var Zl={};i(Zl,{TokenEncodingConsts:()=>Pl,TokenModifier:()=>Il,TokenType:()=>Dl,getEncodedSemanticClassifications:()=>getEncodedSemanticClassifications2,getSemanticClassifications:()=>getSemanticClassifications2});var ed={};i(ed,{PreserveOptionalFlags:()=>Pu,addNewNodeForMemberSymbol:()=>addNewNodeForMemberSymbol,codeFixAll:()=>codeFixAll,createCodeFixAction:()=>createCodeFixAction,createCodeFixActionMaybeFixAll:()=>createCodeFixActionMaybeFixAll,createCodeFixActionWithoutFixAll:()=>createCodeFixActionWithoutFixAll,createCombinedCodeActions:()=>createCombinedCodeActions,createFileTextChanges:()=>createFileTextChanges,createImportAdder:()=>createImportAdder,createImportSpecifierResolver:()=>createImportSpecifierResolver,createMissingMemberNodes:()=>createMissingMemberNodes,createSignatureDeclarationFromCallExpression:()=>createSignatureDeclarationFromCallExpression,createSignatureDeclarationFromSignature:()=>createSignatureDeclarationFromSignature,createStubbedBody:()=>createStubbedBody,eachDiagnostic:()=>eachDiagnostic,findAncestorMatchingSpan:()=>findAncestorMatchingSpan,generateAccessorFromProperty:()=>generateAccessorFromProperty,getAccessorConvertiblePropertyAtPosition:()=>getAccessorConvertiblePropertyAtPosition,getAllFixes:()=>getAllFixes,getFixes:()=>getFixes,getImportCompletionAction:()=>getImportCompletionAction,getImportKind:()=>getImportKind,getJSDocTypedefNodes:()=>getJSDocTypedefNodes,getNoopSymbolTrackerWithResolver:()=>getNoopSymbolTrackerWithResolver,getPromoteTypeOnlyCompletionAction:()=>getPromoteTypeOnlyCompletionAction,getSupportedErrorCodes:()=>getSupportedErrorCodes,importFixName:()=>Ud,importSymbols:()=>importSymbols,parameterShouldGetTypeFromJSDoc:()=>parameterShouldGetTypeFromJSDoc,registerCodeFix:()=>registerCodeFix,setJsonCompilerOptionValue:()=>setJsonCompilerOptionValue,setJsonCompilerOptionValues:()=>setJsonCompilerOptionValues,tryGetAutoImportableReferenceFromTypeNode:()=>tryGetAutoImportableReferenceFromTypeNode,typeNodeToAutoImportableTypeNode:()=>typeNodeToAutoImportableTypeNode,typePredicateToAutoImportableTypeNode:()=>typePredicateToAutoImportableTypeNode,typeToAutoImportableTypeNode:()=>typeToAutoImportableTypeNode,typeToMinimizedReferenceType:()=>typeToMinimizedReferenceType});var td,nd=createMultiMap(),rd=new Map;function createCodeFixActionWithoutFixAll(e,t,n){return createCodeFixActionWorker(e,diagnosticToString(n),t,void 0,void 0)}function createCodeFixAction(e,t,n,r,i,o){return createCodeFixActionWorker(e,diagnosticToString(n),t,r,diagnosticToString(i),o)}function createCodeFixActionMaybeFixAll(e,t,n,r,i,o){return createCodeFixActionWorker(e,diagnosticToString(n),t,r,i&&diagnosticToString(i),o)}function createCodeFixActionWorker(e,t,n,r,i,o){return{fixName:e,description:t,changes:n,fixId:r,fixAllDescription:i,commands:o?[o]:void 0}}function registerCodeFix(e){for(const t of e.errorCodes)td=void 0,nd.add(String(t),e);if(e.fixIds)for(const t of e.fixIds)h.assert(!rd.has(t)),rd.set(t,e)}function getSupportedErrorCodes(){return td??(td=arrayFrom(nd.keys()))}function getFixes(e){const t=getDiagnostics(e);return flatMap(nd.get(String(e.errorCode)),n=>map(n.getCodeActions(e),function removeFixIdIfFixAllUnavailable(e,t){const{errorCodes:n}=e;let r=0;for(const e of t)if(contains(n,e.code)&&r++,r>1)break;const i=r<2;return({fixId:e,fixAllDescription:t,...n})=>i?n:{...n,fixId:e,fixAllDescription:t}}(n,t)))}function getAllFixes(e){return rd.get(cast(e.fixId,isString)).getAllCodeActions(e)}function createCombinedCodeActions(e,t){return{changes:e,commands:t}}function createFileTextChanges(e,t){return{fileName:e,textChanges:t}}function codeFixAll(e,t,n){const r=[];return createCombinedCodeActions($m.ChangeTracker.with(e,i=>eachDiagnostic(e,t,e=>n(i,e,r))),0===r.length?void 0:r)}function eachDiagnostic(e,t,n){for(const r of getDiagnostics(e))contains(t,r.code)&&n(r)}function getDiagnostics({program:e,sourceFile:t,cancellationToken:n}){const r=[...e.getSemanticDiagnostics(t,n),...e.getSyntacticDiagnostics(t,n),...computeSuggestionDiagnostics(t,e,n)];return Zn(e.getCompilerOptions())&&r.push(...e.getDeclarationDiagnostics(t,n)),r}var id="addConvertToUnknownForNonOverlappingTypes",od=[Ot.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];function makeChange(e,t,n){const r=isAsExpression(n)?Wr.createAsExpression(n.expression,Wr.createKeywordTypeNode(159)):Wr.createTypeAssertion(Wr.createKeywordTypeNode(159),n.expression);e.replaceNode(t,n.expression,r)}function getAssertion(e,t){if(!isInJSFile(e))return findAncestor(getTokenAtPosition(e,t),e=>isAsExpression(e)||isTypeAssertionExpression(e))}registerCodeFix({errorCodes:od,getCodeActions:function getCodeActionsToAddConvertToUnknownForNonOverlappingTypes(e){const t=getAssertion(e.sourceFile,e.span.start);if(void 0===t)return;const n=$m.ChangeTracker.with(e,n=>makeChange(n,e.sourceFile,t));return[createCodeFixAction(id,n,Ot.Add_unknown_conversion_for_non_overlapping_types,id,Ot.Add_unknown_to_all_conversions_of_non_overlapping_types)]},fixIds:[id],getAllCodeActions:e=>codeFixAll(e,od,(e,t)=>{const n=getAssertion(t.file,t.start);n&&makeChange(e,t.file,n)})}),registerCodeFix({errorCodes:[Ot.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,Ot.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,Ot.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code],getCodeActions:function getCodeActionsToAddEmptyExportDeclaration(e){const{sourceFile:t}=e;return[createCodeFixActionWithoutFixAll("addEmptyExportDeclaration",$m.ChangeTracker.with(e,e=>{const n=Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports([]),void 0);e.insertNodeAtEndOfScope(t,t,n)}),Ot.Add_export_to_make_this_file_into_a_module)]}});var ad="addMissingAsync",sd=[Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,Ot.Type_0_is_not_assignable_to_type_1.code,Ot.Type_0_is_not_comparable_to_type_1.code];function getFix(e,t,n,r){const i=n(n=>function makeChange2(e,t,n,r){if(r&&r.has(getNodeId(n)))return;null==r||r.add(getNodeId(n));const i=Wr.replaceModifiers(getSynthesizedDeepClone(n,!0),Wr.createNodeArray(Wr.createModifiersFromModifierFlags(1024|getSyntacticModifierFlags(n))));e.replaceNode(t,n,i)}(n,e.sourceFile,t,r));return createCodeFixAction(ad,i,Ot.Add_async_modifier_to_containing_function,ad,Ot.Add_all_missing_async_modifiers)}function getFixableErrorSpanDeclaration(e,t){if(!t)return;return findAncestor(getTokenAtPosition(e,t.start),n=>n.getStart(e)textSpanEnd(t)?"quit":(isArrowFunction(n)||isMethodDeclaration(n)||isFunctionExpression(n)||isFunctionDeclaration(n))&&textSpansEqual(t,createTextSpanFromNode(n,e)))}registerCodeFix({fixIds:[ad],errorCodes:sd,getCodeActions:function getCodeActionsToAddMissingAsync(e){const{sourceFile:t,errorCode:n,cancellationToken:r,program:i,span:o}=e,a=find(i.getTypeChecker().getDiagnostics(t,r),function getIsMatchingAsyncError(e,t){return({start:n,length:r,relatedInformation:i,code:o})=>isNumber(n)&&isNumber(r)&&textSpansEqual({start:n,length:r},e)&&o===t&&!!i&&some(i,e=>e.code===Ot.Did_you_mean_to_mark_this_function_as_async.code)}(o,n)),s=getFixableErrorSpanDeclaration(t,a&&a.relatedInformation&&find(a.relatedInformation,e=>e.code===Ot.Did_you_mean_to_mark_this_function_as_async.code));if(!s)return;return[getFix(e,s,t=>$m.ChangeTracker.with(e,t))]},getAllCodeActions:e=>{const{sourceFile:t}=e,n=new Set;return codeFixAll(e,sd,(r,i)=>{const o=i.relatedInformation&&find(i.relatedInformation,e=>e.code===Ot.Did_you_mean_to_mark_this_function_as_async.code),a=getFixableErrorSpanDeclaration(t,o);if(!a)return;return getFix(e,a,e=>(e(r),[]),n)})}});var cd="addMissingAwait",ld=Ot.Property_0_does_not_exist_on_type_1.code,dd=[Ot.This_expression_is_not_callable.code,Ot.This_expression_is_not_constructable.code],pd=[Ot.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,Ot.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,Ot.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,Ot.Operator_0_cannot_be_applied_to_type_1.code,Ot.Operator_0_cannot_be_applied_to_types_1_and_2.code,Ot.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap.code,Ot.This_condition_will_always_return_true_since_this_0_is_always_defined.code,Ot.Type_0_is_not_an_array_type.code,Ot.Type_0_is_not_an_array_type_or_a_string_type.code,Ot.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,Ot.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,Ot.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,Ot.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,Ot.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,ld,...dd];function getAwaitErrorSpanExpression(e,t,n,r,i){const o=getFixableErrorSpanExpression(e,n);return o&&function isMissingAwaitError(e,t,n,r,i){const o=i.getTypeChecker(),a=o.getDiagnostics(e,r);return some(a,({start:e,length:r,relatedInformation:i,code:o})=>isNumber(e)&&isNumber(r)&&textSpansEqual({start:e,length:r},n)&&o===t&&!!i&&some(i,e=>e.code===Ot.Did_you_forget_to_use_await.code))}(e,t,n,r,i)&&isInsideAwaitableBody(o)?o:void 0}function getDeclarationSiteFix(e,t,n,r,i,o){const{sourceFile:a,program:s,cancellationToken:c}=e,l=function findAwaitableInitializers(e,t,n,r,i){const o=function getIdentifiersFromErrorSpanExpression(e,t){if(isPropertyAccessExpression(e.parent)&&isIdentifier(e.parent.expression))return{identifiers:[e.parent.expression],isCompleteFix:!0};if(isIdentifier(e))return{identifiers:[e],isCompleteFix:!0};if(isBinaryExpression(e)){let n,r=!0;for(const i of[e.left,e.right]){const e=t.getTypeAtLocation(i);if(t.getPromisedTypeOfPromise(e)){if(!isIdentifier(i)){r=!1;continue}(n||(n=[])).push(i)}}return n&&{identifiers:n,isCompleteFix:r}}}(e,i);if(!o)return;let a,s=o.isCompleteFix;for(const e of o.identifiers){const o=i.getSymbolAtLocation(e);if(!o)continue;const c=tryCast(o.valueDeclaration,isVariableDeclaration),l=c&&tryCast(c.name,isIdentifier),d=getAncestor(c,244);if(!c||!d||c.type||!c.initializer||d.getSourceFile()!==t||hasSyntacticModifier(d,32)||!l||!isInsideAwaitableBody(c.initializer)){s=!1;continue}const p=r.getSemanticDiagnostics(t,n);vm.Core.eachSymbolReferenceInFile(l,i,t,n=>e!==n&&!symbolReferenceIsAlsoMissingAwait(n,p,t,i))?s=!1:(a||(a=[])).push({expression:c.initializer,declarationSymbol:o})}return a&&{initializers:a,needsSecondPassForFixAll:!s}}(t,a,c,s,r);if(l){return createCodeFixActionWithoutFixAll("addMissingAwaitToInitializer",i(e=>{forEach(l.initializers,({expression:t})=>makeChange3(e,n,a,r,t,o)),o&&l.needsSecondPassForFixAll&&makeChange3(e,n,a,r,t,o)}),1===l.initializers.length?[Ot.Add_await_to_initializer_for_0,l.initializers[0].declarationSymbol.name]:Ot.Add_await_to_initializers)}}function getUseSiteFix(e,t,n,r,i,o){const a=i(i=>makeChange3(i,n,e.sourceFile,r,t,o));return createCodeFixAction(cd,a,Ot.Add_await,cd,Ot.Fix_all_expressions_possibly_missing_await)}function symbolReferenceIsAlsoMissingAwait(e,t,n,r){const i=isPropertyAccessExpression(e.parent)?e.parent.name:isBinaryExpression(e.parent)?e.parent:e,o=find(t,e=>e.start===i.getStart(n)&&e.start+e.length===i.getEnd());return o&&contains(pd,o.code)||1&r.getTypeAtLocation(i).flags}function isInsideAwaitableBody(e){return 65536&e.flags||!!findAncestor(e,e=>e.parent&&isArrowFunction(e.parent)&&e.parent.body===e||isBlock(e)&&(263===e.parent.kind||219===e.parent.kind||220===e.parent.kind||175===e.parent.kind))}function makeChange3(e,t,n,r,i,o){if(isForOfStatement(i.parent)&&!i.parent.awaitModifier){const t=r.getTypeAtLocation(i),o=r.getAnyAsyncIterableType();if(o&&r.isTypeAssignableTo(t,o)){const t=i.parent;return void e.replaceNode(n,t,Wr.updateForOfStatement(t,Wr.createToken(135),t.initializer,t.expression,t.statement))}}if(isBinaryExpression(i))for(const t of[i.left,i.right]){if(o&&isIdentifier(t)){const e=r.getSymbolAtLocation(t);if(e&&o.has(getSymbolId(e)))continue}const i=r.getTypeAtLocation(t),a=r.getPromisedTypeOfPromise(i)?Wr.createAwaitExpression(t):t;e.replaceNode(n,t,a)}else if(t===ld&&isPropertyAccessExpression(i.parent)){if(o&&isIdentifier(i.parent.expression)){const e=r.getSymbolAtLocation(i.parent.expression);if(e&&o.has(getSymbolId(e)))return}e.replaceNode(n,i.parent.expression,Wr.createParenthesizedExpression(Wr.createAwaitExpression(i.parent.expression))),insertLeadingSemicolonIfNeeded(e,i.parent.expression,n)}else if(contains(dd,t)&&isCallOrNewExpression(i.parent)){if(o&&isIdentifier(i)){const e=r.getSymbolAtLocation(i);if(e&&o.has(getSymbolId(e)))return}e.replaceNode(n,i,Wr.createParenthesizedExpression(Wr.createAwaitExpression(i))),insertLeadingSemicolonIfNeeded(e,i,n)}else{if(o&&isVariableDeclaration(i.parent)&&isIdentifier(i.parent.name)){const e=r.getSymbolAtLocation(i.parent.name);if(e&&!tryAddToSet(o,getSymbolId(e)))return}e.replaceNode(n,i,Wr.createAwaitExpression(i))}}function insertLeadingSemicolonIfNeeded(e,t,n){const r=findPrecedingToken(t.pos,n);r&&positionIsASICandidate(r.end,r.parent,n)&&e.insertText(n,t.getStart(n),";")}registerCodeFix({fixIds:[cd],errorCodes:pd,getCodeActions:function getCodeActionsToAddMissingAwait(e){const{sourceFile:t,errorCode:n,span:r,cancellationToken:i,program:o}=e,a=getAwaitErrorSpanExpression(t,n,r,i,o);if(!a)return;const s=e.program.getTypeChecker(),trackChanges=t=>$m.ChangeTracker.with(e,t);return compact([getDeclarationSiteFix(e,a,n,s,trackChanges),getUseSiteFix(e,a,n,s,trackChanges)])},getAllCodeActions:e=>{const{sourceFile:t,program:n,cancellationToken:r}=e,i=e.program.getTypeChecker(),o=new Set;return codeFixAll(e,pd,(a,s)=>{const c=getAwaitErrorSpanExpression(t,s.code,s,r,n);if(!c)return;const trackChanges=e=>(e(a),[]);return getDeclarationSiteFix(e,c,s.code,i,trackChanges,o)||getUseSiteFix(e,c,s.code,i,trackChanges,o)})}});var ud="addMissingConst",md=[Ot.Cannot_find_name_0.code,Ot.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code];function makeChange4(e,t,n,r,i){const o=getTokenAtPosition(t,n),a=findAncestor(o,e=>isForInOrOfStatement(e.parent)?e.parent.initializer===e:!function isPossiblyPartOfDestructuring(e){switch(e.kind){case 80:case 210:case 211:case 304:case 305:return!0;default:return!1}}(e)&&"quit");if(a)return applyChange(e,a,t,i);const s=o.parent;if(isBinaryExpression(s)&&64===s.operatorToken.kind&&isExpressionStatement(s.parent))return applyChange(e,o,t,i);if(isArrayLiteralExpression(s)){const n=r.getTypeChecker();if(!every(s.elements,e=>function arrayElementCouldBeVariableDeclaration(e,t){const n=isIdentifier(e)?e:isAssignmentExpression(e,!0)&&isIdentifier(e.left)?e.left:void 0;return!!n&&!t.getSymbolAtLocation(n)}(e,n)))return;return applyChange(e,s,t,i)}const c=findAncestor(o,e=>!!isExpressionStatement(e.parent)||!function isPossiblyPartOfCommaSeperatedInitializer(e){switch(e.kind){case 80:case 227:case 28:return!0;default:return!1}}(e)&&"quit");if(c){if(!expressionCouldBeVariableDeclaration(c,r.getTypeChecker()))return;return applyChange(e,c,t,i)}}function applyChange(e,t,n,r){r&&!tryAddToSet(r,t)||e.insertModifierBefore(n,87,t)}function expressionCouldBeVariableDeclaration(e,t){return!!isBinaryExpression(e)&&(28===e.operatorToken.kind?every([e.left,e.right],e=>expressionCouldBeVariableDeclaration(e,t)):64===e.operatorToken.kind&&isIdentifier(e.left)&&!t.getSymbolAtLocation(e.left))}registerCodeFix({errorCodes:md,getCodeActions:function getCodeActionsToAddMissingConst(e){const t=$m.ChangeTracker.with(e,t=>makeChange4(t,e.sourceFile,e.span.start,e.program));if(t.length>0)return[createCodeFixAction(ud,t,Ot.Add_const_to_unresolved_variable,ud,Ot.Add_const_to_all_unresolved_variables)]},fixIds:[ud],getAllCodeActions:e=>{const t=new Set;return codeFixAll(e,md,(n,r)=>makeChange4(n,r.file,r.start,e.program,t))}});var _d="addMissingDeclareProperty",fd=[Ot.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];function makeChange5(e,t,n,r){const i=getTokenAtPosition(t,n);if(!isIdentifier(i))return;const o=i.parent;173!==o.kind||r&&!tryAddToSet(r,o)||e.insertModifierBefore(t,138,o)}registerCodeFix({errorCodes:fd,getCodeActions:function getCodeActionsToAddMissingDeclareOnProperty(e){const t=$m.ChangeTracker.with(e,t=>makeChange5(t,e.sourceFile,e.span.start));if(t.length>0)return[createCodeFixAction(_d,t,Ot.Prefix_with_declare,_d,Ot.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[_d],getAllCodeActions:e=>{const t=new Set;return codeFixAll(e,fd,(e,n)=>makeChange5(e,n.file,n.start,t))}});var gd="addMissingInvocationForDecorator",yd=[Ot._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];function makeChange6(e,t,n){const r=findAncestor(getTokenAtPosition(t,n),isDecorator);h.assert(!!r,"Expected position to be owned by a decorator.");const i=Wr.createCallExpression(r.expression,void 0,void 0);e.replaceNode(t,r.expression,i)}registerCodeFix({errorCodes:yd,getCodeActions:function getCodeActionsToAddMissingInvocationForDecorator(e){const t=$m.ChangeTracker.with(e,t=>makeChange6(t,e.sourceFile,e.span.start));return[createCodeFixAction(gd,t,Ot.Call_decorator_expression,gd,Ot.Add_to_all_uncalled_decorators)]},fixIds:[gd],getAllCodeActions:e=>codeFixAll(e,yd,(e,t)=>makeChange6(e,t.file,t.start))});var hd="addMissingResolutionModeImportAttribute",Td=[Ot.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code,Ot.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code];function makeChange7(e,t,n,r,i,o){var a,s,c;const l=findAncestor(getTokenAtPosition(t,n),or(isImportDeclaration,isImportTypeNode));h.assert(!!l,"Expected position to be owned by an ImportDeclaration or ImportType.");const d=0===getQuotePreference(t,o),p=tryGetModuleSpecifierFromDeclaration(l),u=!p||(null==(a=resolveModuleName(p.text,t.fileName,r.getCompilerOptions(),i,r.getModuleResolutionCache(),void 0,99).resolvedModule)?void 0:a.resolvedFileName)===(null==(c=null==(s=r.getResolvedModuleFromModuleSpecifier(p,t))?void 0:s.resolvedModule)?void 0:c.resolvedFileName),m=l.attributes?Wr.updateImportAttributes(l.attributes,Wr.createNodeArray([...l.attributes.elements,Wr.createImportAttribute(Wr.createStringLiteral("resolution-mode",d),Wr.createStringLiteral(u?"import":"require",d))],l.attributes.elements.hasTrailingComma),l.attributes.multiLine):Wr.createImportAttributes(Wr.createNodeArray([Wr.createImportAttribute(Wr.createStringLiteral("resolution-mode",d),Wr.createStringLiteral(u?"import":"require",d))]));273===l.kind?e.replaceNode(t,l,Wr.updateImportDeclaration(l,l.modifiers,l.importClause,l.moduleSpecifier,m)):e.replaceNode(t,l,Wr.updateImportTypeNode(l,l.argument,m,l.qualifier,l.typeArguments))}registerCodeFix({errorCodes:Td,getCodeActions:function getCodeActionsToAddMissingResolutionModeImportAttribute(e){const t=$m.ChangeTracker.with(e,t=>makeChange7(t,e.sourceFile,e.span.start,e.program,e.host,e.preferences));return[createCodeFixAction(hd,t,Ot.Add_resolution_mode_import_attribute,hd,Ot.Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it)]},fixIds:[hd],getAllCodeActions:e=>codeFixAll(e,Td,(t,n)=>makeChange7(t,n.file,n.start,e.program,e.host,e.preferences))});var Sd="addNameToNamelessParameter",xd=[Ot.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];function makeChange8(e,t,n){const r=getTokenAtPosition(t,n),i=r.parent;if(!isParameter(i))return h.fail("Tried to add a parameter name to a non-parameter: "+h.formatSyntaxKind(r.kind));const o=i.parent.parameters.indexOf(i);h.assert(!i.type,"Tried to add a parameter name to a parameter that already had one."),h.assert(o>-1,"Parameter not found in parent parameter list.");let a=i.name.getEnd(),s=Wr.createTypeReferenceNode(i.name,void 0),c=tryGetNextParam(t,i);for(;c;)s=Wr.createArrayTypeNode(s),a=c.getEnd(),c=tryGetNextParam(t,c);const l=Wr.createParameterDeclaration(i.modifiers,i.dotDotDotToken,"arg"+o,i.questionToken,i.dotDotDotToken&&!isArrayTypeNode(s)?Wr.createArrayTypeNode(s):s,i.initializer);e.replaceRange(t,createRange(i.getStart(t),a),l)}function tryGetNextParam(e,t){const n=findNextToken(t.name,t.parent,e);if(n&&23===n.kind&&isArrayBindingPattern(n.parent)&&isParameter(n.parent.parent))return n.parent.parent}registerCodeFix({errorCodes:xd,getCodeActions:function getCodeActionsToAddNameToNamelessParameter(e){const t=$m.ChangeTracker.with(e,t=>makeChange8(t,e.sourceFile,e.span.start));return[createCodeFixAction(Sd,t,Ot.Add_parameter_name,Sd,Ot.Add_names_to_all_parameters_without_names)]},fixIds:[Sd],getAllCodeActions:e=>codeFixAll(e,xd,(e,t)=>makeChange8(e,t.file,t.start))});var vd="addOptionalPropertyUndefined";function getSourceTarget(e,t){var n;if(e){if(isBinaryExpression(e.parent)&&64===e.parent.operatorToken.kind)return{source:e.parent.right,target:e.parent.left};if(isVariableDeclaration(e.parent)&&e.parent.initializer)return{source:e.parent.initializer,target:e.parent.name};if(isCallExpression(e.parent)){const n=t.getSymbolAtLocation(e.parent.expression);if(!(null==n?void 0:n.valueDeclaration)||!isFunctionLikeKind(n.valueDeclaration.kind))return;if(!isExpression(e))return;const r=e.parent.arguments.indexOf(e);if(-1===r)return;const i=n.valueDeclaration.parameters[r].name;if(isIdentifier(i))return{source:e,target:i}}else if(isPropertyAssignment(e.parent)&&isIdentifier(e.parent.name)||isShorthandPropertyAssignment(e.parent)){const r=getSourceTarget(e.parent.parent,t);if(!r)return;const i=t.getPropertyOfType(t.getTypeAtLocation(r.target),e.parent.name.text),o=null==(n=null==i?void 0:i.declarations)?void 0:n[0];if(!o)return;return{source:isPropertyAssignment(e.parent)?e.parent.initializer:e.parent.name,target:o}}}}registerCodeFix({errorCodes:[Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code],getCodeActions(e){const t=e.program.getTypeChecker(),n=function getPropertiesToAdd(e,t,n){var r,i;const o=getSourceTarget(getFixableErrorSpanExpression(e,t),n);if(!o)return l;const{source:a,target:s}=o,c=function shouldUseParentTypeOfProperty(e,t,n){return isPropertyAccessExpression(t)&&!!n.getExactOptionalProperties(n.getTypeAtLocation(t.expression)).length&&n.getTypeAtLocation(e)===n.getUndefinedType()}(a,s,n)?n.getTypeAtLocation(s.expression):n.getTypeAtLocation(s);if(null==(i=null==(r=c.symbol)?void 0:r.declarations)?void 0:i.some(e=>getSourceFileOfNode(e).fileName.match(/\.d\.ts$/)))return l;return n.getExactOptionalProperties(c)}(e.sourceFile,e.span,t);if(!n.length)return;const r=$m.ChangeTracker.with(e,e=>function addUndefinedToOptionalProperty(e,t){for(const n of t){const t=n.valueDeclaration;if(t&&(isPropertySignature(t)||isPropertyDeclaration(t))&&t.type){const n=Wr.createUnionTypeNode([...193===t.type.kind?t.type.types:[t.type],Wr.createTypeReferenceNode("undefined")]);e.replaceNode(t.getSourceFile(),t.type,n)}}}(e,n));return[createCodeFixActionWithoutFixAll(vd,r,Ot.Add_undefined_to_optional_property_type)]},fixIds:[vd]});var bd="annotateWithTypeFromJSDoc",Cd=[Ot.JSDoc_types_may_be_moved_to_TypeScript_types.code];function getDeclaration(e,t){const n=getTokenAtPosition(e,t);return tryCast(isParameter(n.parent)?n.parent.parent:n.parent,parameterShouldGetTypeFromJSDoc)}function parameterShouldGetTypeFromJSDoc(e){return function isDeclarationWithType(e){return isFunctionLikeDeclaration(e)||261===e.kind||172===e.kind||173===e.kind}(e)&&hasUsableJSDoc(e)}function hasUsableJSDoc(e){return isFunctionLikeDeclaration(e)?e.parameters.some(hasUsableJSDoc)||!e.type&&!!getJSDocReturnType(e):!e.type&&!!getJSDocType(e)}function doChange8(e,t,n){if(isFunctionLikeDeclaration(n)&&(getJSDocReturnType(n)||n.parameters.some(e=>!!getJSDocType(e)))){if(!n.typeParameters){const r=getJSDocTypeParameterDeclarations(n);r.length&&e.insertTypeParameters(t,n,r)}const r=isArrowFunction(n)&&!findChildOfKind(n,21,t);r&&e.insertNodeBefore(t,first(n.parameters),Wr.createToken(21));for(const r of n.parameters)if(!r.type){const n=getJSDocType(r);n&&e.tryInsertTypeAnnotation(t,r,visitNode(n,transformJSDocType,isTypeNode))}if(r&&e.insertNodeAfter(t,last(n.parameters),Wr.createToken(22)),!n.type){const r=getJSDocReturnType(n);r&&e.tryInsertTypeAnnotation(t,n,visitNode(r,transformJSDocType,isTypeNode))}}else{const r=h.checkDefined(getJSDocType(n),"A JSDocType for this declaration should exist");h.assert(!n.type,"The JSDocType decl should have a type"),e.tryInsertTypeAnnotation(t,n,visitNode(r,transformJSDocType,isTypeNode))}}function transformJSDocType(e){switch(e.kind){case 313:case 314:return Wr.createTypeReferenceNode("any",l);case 317:return function transformJSDocOptionalType(e){return Wr.createUnionTypeNode([visitNode(e.type,transformJSDocType,isTypeNode),Wr.createTypeReferenceNode("undefined",l)])}(e);case 316:return transformJSDocType(e.type);case 315:return function transformJSDocNullableType(e){return Wr.createUnionTypeNode([visitNode(e.type,transformJSDocType,isTypeNode),Wr.createTypeReferenceNode("null",l)])}(e);case 319:return function transformJSDocVariadicType(e){return Wr.createArrayTypeNode(visitNode(e.type,transformJSDocType,isTypeNode))}(e);case 318:return function transformJSDocFunctionType(e){return Wr.createFunctionTypeNode(l,e.parameters.map(transformJSDocParameter),e.type??Wr.createKeywordTypeNode(133))}(e);case 184:return function transformJSDocTypeReference(e){let t=e.typeName,n=e.typeArguments;if(isIdentifier(e.typeName)){if(isJSDocIndexSignature(e))return function transformJSDocIndexSignature(e){const t=Wr.createParameterDeclaration(void 0,void 0,150===e.typeArguments[0].kind?"n":"s",void 0,Wr.createTypeReferenceNode(150===e.typeArguments[0].kind?"number":"string",[]),void 0),n=Wr.createTypeLiteralNode([Wr.createIndexSignature(void 0,[t],e.typeArguments[1])]);return setEmitFlags(n,1),n}(e);let r=e.typeName.text;switch(e.typeName.text){case"String":case"Boolean":case"Object":case"Number":r=r.toLowerCase();break;case"array":case"date":case"promise":r=r[0].toUpperCase()+r.slice(1)}t=Wr.createIdentifier(r),n="Array"!==r&&"Promise"!==r||e.typeArguments?visitNodes2(e.typeArguments,transformJSDocType,isTypeNode):Wr.createNodeArray([Wr.createTypeReferenceNode("any",l)])}return Wr.createTypeReferenceNode(t,n)}(e);case 323:return function transformJSDocTypeLiteral(e){const t=Wr.createTypeLiteralNode(map(e.jsDocPropertyTags,e=>Wr.createPropertySignature(void 0,isIdentifier(e.name)?e.name:e.name.right,isOptionalJSDocPropertyLikeTag(e)?Wr.createToken(58):void 0,e.typeExpression&&visitNode(e.typeExpression.type,transformJSDocType,isTypeNode)||Wr.createKeywordTypeNode(133))));return setEmitFlags(t,1),t}(e);default:const t=visitEachChild(e,transformJSDocType,void 0);return setEmitFlags(t,1),t}}function transformJSDocParameter(e){const t=e.parent.parameters.indexOf(e),n=319===e.type.kind&&t===e.parent.parameters.length-1,r=e.name||(n?"rest":"arg"+t),i=n?Wr.createToken(26):e.dotDotDotToken;return Wr.createParameterDeclaration(e.modifiers,i,r,e.questionToken,visitNode(e.type,transformJSDocType,isTypeNode),e.initializer)}registerCodeFix({errorCodes:Cd,getCodeActions(e){const t=getDeclaration(e.sourceFile,e.span.start);if(!t)return;const n=$m.ChangeTracker.with(e,n=>doChange8(n,e.sourceFile,t));return[createCodeFixAction(bd,n,Ot.Annotate_with_type_from_JSDoc,bd,Ot.Annotate_everything_with_types_from_JSDoc)]},fixIds:[bd],getAllCodeActions:e=>codeFixAll(e,Cd,(e,t)=>{const n=getDeclaration(t.file,t.start);n&&doChange8(e,t.file,n)})});var Ed="convertFunctionToEs6Class",Nd=[Ot.This_constructor_function_may_be_converted_to_a_class_declaration.code];function doChange9(e,t,n,r,i,o){const a=r.getSymbolAtLocation(getTokenAtPosition(t,n));if(!(a&&a.valueDeclaration&&19&a.flags))return;const s=a.valueDeclaration;if(isFunctionDeclaration(s)||isFunctionExpression(s))e.replaceNode(t,s,function createClassFromFunction(e){const t=createClassElementsFromSymbol(a);e.body&&t.unshift(Wr.createConstructorDeclaration(void 0,e.parameters,e.body));const n=getModifierKindFromSource(e,95);return Wr.createClassDeclaration(n,e.name,void 0,void 0,t)}(s));else if(isVariableDeclaration(s)){const n=function createClassFromVariableDeclaration(e){const t=e.initializer;if(!t||!isFunctionExpression(t)||!isIdentifier(e.name))return;const n=createClassElementsFromSymbol(e.symbol);t.body&&n.unshift(Wr.createConstructorDeclaration(void 0,t.parameters,t.body));const r=getModifierKindFromSource(e.parent.parent,95);return Wr.createClassDeclaration(r,e.name,void 0,void 0,n)}(s);if(!n)return;const r=s.parent.parent;isVariableDeclarationList(s.parent)&&s.parent.declarations.length>1?(e.delete(t,s),e.insertNodeAfter(t,r,n)):e.replaceNode(t,r,n)}function createClassElementsFromSymbol(n){const r=[];return n.exports&&n.exports.forEach(e=>{if("prototype"===e.name&&e.declarations){const t=e.declarations[0];if(1===e.declarations.length&&isPropertyAccessExpression(t)&&isBinaryExpression(t.parent)&&64===t.parent.operatorToken.kind&&isObjectLiteralExpression(t.parent.right)){createClassElement(t.parent.right.symbol,void 0,r)}}else createClassElement(e,[Wr.createToken(126)],r)}),n.members&&n.members.forEach((i,o)=>{var a,s,c,l;if("constructor"===o&&i.valueDeclaration){const r=null==(l=null==(c=null==(s=null==(a=n.exports)?void 0:a.get("prototype"))?void 0:s.declarations)?void 0:c[0])?void 0:l.parent;return void(r&&isBinaryExpression(r)&&isObjectLiteralExpression(r.right)&&some(r.right.properties,isConstructorAssignment)||e.delete(t,i.valueDeclaration.parent))}createClassElement(i,void 0,r)}),r;function createClassElement(n,r,a){if(!(8192&n.flags||4096&n.flags))return;const s=n.valueDeclaration,c=s.parent,l=c.right;if(!function shouldConvertDeclaration(e,t){return isAccessExpression(e)?!(!isPropertyAccessExpression(e)||!isConstructorAssignment(e))||isFunctionLike(t):every(e.properties,e=>!!(isMethodDeclaration(e)||isGetOrSetAccessorDeclaration(e)||isPropertyAssignment(e)&&isFunctionExpression(e.initializer)&&e.name||isConstructorAssignment(e)))}(s,l))return;if(some(a,e=>{const t=getNameOfDeclaration(e);return!(!t||!isIdentifier(t)||idText(t)!==symbolName(n))}))return;const d=c.parent&&245===c.parent.kind?c.parent:c;if(e.delete(t,d),l){if(isAccessExpression(s)&&(isFunctionExpression(l)||isArrowFunction(l))){const e=getQuotePreference(t,i),n=function tryGetPropertyName(e,t,n){if(isPropertyAccessExpression(e))return e.name;const r=e.argumentExpression;if(isNumericLiteral(r))return r;if(isStringLiteralLike(r))return isIdentifierText(r.text,zn(t))?Wr.createIdentifier(r.text):isNoSubstitutionTemplateLiteral(r)?Wr.createStringLiteral(r.text,0===n):r;return}(s,o,e);return void(n&&createFunctionLikeExpressionMember(a,l,n))}if(!isObjectLiteralExpression(l)){if(isSourceFileJS(t))return;if(!isPropertyAccessExpression(s))return;const e=Wr.createPropertyDeclaration(r,s.name,void 0,void 0,l);return copyLeadingComments(c.parent,e,t),void a.push(e)}forEach(l.properties,e=>{(isMethodDeclaration(e)||isGetOrSetAccessorDeclaration(e))&&a.push(e),isPropertyAssignment(e)&&isFunctionExpression(e.initializer)&&createFunctionLikeExpressionMember(a,e.initializer,e.name),isConstructorAssignment(e)})}else a.push(Wr.createPropertyDeclaration(r,n.name,void 0,void 0,void 0));function createFunctionLikeExpressionMember(e,n,i){return isFunctionExpression(n)?function createFunctionExpressionMember(e,n,i){const o=concatenate(r,getModifierKindFromSource(n,134)),a=Wr.createMethodDeclaration(o,void 0,i,void 0,void 0,n.parameters,void 0,n.body);return copyLeadingComments(c,a,t),void e.push(a)}(e,n,i):function createArrowFunctionExpressionMember(e,n,i){const o=n.body;let a;a=242===o.kind?o:Wr.createBlock([Wr.createReturnStatement(o)]);const s=concatenate(r,getModifierKindFromSource(n,134)),l=Wr.createMethodDeclaration(s,void 0,i,void 0,void 0,n.parameters,void 0,a);copyLeadingComments(c,l,t),e.push(l)}(e,n,i)}}}}function getModifierKindFromSource(e,t){return canHaveModifiers(e)?filter(e.modifiers,e=>e.kind===t):void 0}function isConstructorAssignment(e){return!!e.name&&!(!isIdentifier(e.name)||"constructor"!==e.name.text)}registerCodeFix({errorCodes:Nd,getCodeActions(e){const t=$m.ChangeTracker.with(e,t=>doChange9(t,e.sourceFile,e.span.start,e.program.getTypeChecker(),e.preferences,e.program.getCompilerOptions()));return[createCodeFixAction(Ed,t,Ot.Convert_function_to_an_ES2015_class,Ed,Ot.Convert_all_constructor_functions_to_classes)]},fixIds:[Ed],getAllCodeActions:e=>codeFixAll(e,Nd,(t,n)=>doChange9(t,n.file,n.start,e.program.getTypeChecker(),e.preferences,e.program.getCompilerOptions()))});var kd="convertToAsyncFunction",Fd=[Ot.This_may_be_converted_to_an_async_function.code],Pd=!0;function convertToAsyncFunction(e,t,n,r){const i=getTokenAtPosition(t,n);let o;if(o=isIdentifier(i)&&isVariableDeclaration(i.parent)&&i.parent.initializer&&isFunctionLikeDeclaration(i.parent.initializer)?i.parent.initializer:tryCast(getContainingFunction(getTokenAtPosition(t,n)),canBeConvertedToAsync),!o)return;const a=new Map,s=isInJSFile(o),c=function getAllPromiseExpressionsToReturn(e,t){if(!e.body)return new Set;const n=new Set;return forEachChild(e.body,function visit(e){isPromiseReturningCallExpression(e,t,"then")?(n.add(getNodeId(e)),forEach(e.arguments,visit)):isPromiseReturningCallExpression(e,t,"catch")||isPromiseReturningCallExpression(e,t,"finally")?(n.add(getNodeId(e)),forEachChild(e,visit)):isPromiseTypedExpression(e,t)?n.add(getNodeId(e)):forEachChild(e,visit)}),n}(o,r),d=function renameCollidingVarNames(e,t,n){const r=new Map,i=createMultiMap();return forEachChild(e,function visit(e){if(!isIdentifier(e))return void forEachChild(e,visit);const o=t.getSymbolAtLocation(e);if(o){const a=getLastCallSignature(t.getTypeAtLocation(e),t),s=getSymbolId(o).toString();if(!a||isParameter(e.parent)||isFunctionLikeDeclaration(e.parent)||n.has(s)){if(e.parent&&(isParameter(e.parent)||isVariableDeclaration(e.parent)||isBindingElement(e.parent))){const t=e.text,a=i.get(t);if(a&&a.some(e=>e!==o)){const a=getNewNameIfConflict(e,i);r.set(s,a.identifier),n.set(s,a),i.add(t,o)}else{const r=getSynthesizedDeepClone(e);n.set(s,createSynthIdentifier(r)),i.add(t,o)}}}else{const e=firstOrUndefined(a.parameters),t=(null==e?void 0:e.valueDeclaration)&&isParameter(e.valueDeclaration)&&tryCast(e.valueDeclaration.name,isIdentifier)||Wr.createUniqueName("result",16),r=getNewNameIfConflict(t,i);n.set(s,r),i.add(t.text,o)}}}),getSynthesizedDeepCloneWithReplacements(e,!0,e=>{if(isBindingElement(e)&&isIdentifier(e.name)&&isObjectBindingPattern(e.parent)){const n=t.getSymbolAtLocation(e.name),i=n&&r.get(String(getSymbolId(n)));if(i&&i.text!==(e.name||e.propertyName).getText())return Wr.createBindingElement(e.dotDotDotToken,e.propertyName||e.name,i,e.initializer)}else if(isIdentifier(e)){const n=t.getSymbolAtLocation(e),i=n&&r.get(String(getSymbolId(n)));if(i)return Wr.createIdentifier(i.text)}})}(o,r,a);if(!returnsPromise(d,r))return;const p=d.body&&isBlock(d.body)?function getReturnStatementsWithPromiseHandlers(e,t){const n=[];return forEachReturnStatement(e,e=>{isReturnStatementWithFixablePromiseHandler(e,t)&&n.push(e)}),n}(d.body,r):l,u={checker:r,synthNamesMap:a,setOfExpressionsToReturn:c,isInJSFile:s};if(!p.length)return;const m=skipTrivia(t.text,moveRangePastModifiers(o).pos);e.insertModifierAt(t,m,134,{suffix:" "});for(const n of p)if(forEachChild(n,function visit(r){if(isCallExpression(r)){const i=transformExpression(r,r,u,!1);if(hasFailed())return!0;e.replaceNodeWithNodes(t,n,i)}else if(!isFunctionLike(r)&&(forEachChild(r,visit),hasFailed()))return!0}),hasFailed())return}function isPromiseReturningCallExpression(e,t,n){if(!isCallExpression(e))return!1;const r=hasPropertyAccessExpressionWithName(e,n)&&t.getTypeAtLocation(e);return!(!r||!t.getPromisedTypeOfPromise(r))}function isReferenceToType(e,t){return!!(4&getObjectFlags(e))&&e.target===t}function getExplicitPromisedTypeOfPromiseReturningCallExpression(e,t,n){if("finally"===e.expression.name.escapedText)return;const r=n.getTypeAtLocation(e.expression.expression);if(isReferenceToType(r,n.getPromiseType())||isReferenceToType(r,n.getPromiseLikeType())){if("then"!==e.expression.name.escapedText)return p(e.typeArguments,0);if(t===p(e.arguments,0))return p(e.typeArguments,0);if(t===p(e.arguments,1))return p(e.typeArguments,1)}}function isPromiseTypedExpression(e,t){return!!isExpression(e)&&!!t.getPromisedTypeOfPromise(t.getTypeAtLocation(e))}function getNewNameIfConflict(e,t){const n=(t.get(e.text)||l).length;return createSynthIdentifier(0===n?e:Wr.createIdentifier(e.text+"_"+n))}function hasFailed(){return!Pd}function silentFail(){return Pd=!1,l}function transformExpression(e,t,n,r,i){if(isPromiseReturningCallExpression(t,n.checker,"then"))return function transformThen(e,t,n,r,i,o){if(!t||isNullOrUndefined2(r,t))return transformCatch(e,n,r,i,o);if(n&&!isNullOrUndefined2(r,n))return silentFail();const a=getArgBindingName(t,r),s=transformExpression(e.expression.expression,e.expression.expression,r,!0,a);if(hasFailed())return silentFail();const c=transformCallbackArgument(t,i,o,a,e,r);return hasFailed()?silentFail():concatenate(s,c)}(t,p(t.arguments,0),p(t.arguments,1),n,r,i);if(isPromiseReturningCallExpression(t,n.checker,"catch"))return transformCatch(t,p(t.arguments,0),n,r,i);if(isPromiseReturningCallExpression(t,n.checker,"finally"))return function transformFinally(e,t,n,r,i){if(!t||isNullOrUndefined2(n,t))return transformExpression(e,e.expression.expression,n,r,i);const o=getPossibleNameForVarDecl(e,n,i),a=transformExpression(e,e.expression.expression,n,!0,o);if(hasFailed())return silentFail();const s=transformCallbackArgument(t,r,void 0,void 0,e,n);if(hasFailed())return silentFail();const c=Wr.createBlock(a),l=Wr.createBlock(s),d=Wr.createTryStatement(c,void 0,l);return finishCatchOrFinallyTransform(e,n,d,o,i)}(t,p(t.arguments,0),n,r,i);if(isPropertyAccessExpression(t))return transformExpression(e,t.expression,n,r,i);const o=n.checker.getTypeAtLocation(t);return o&&n.checker.getPromisedTypeOfPromise(o)?(h.assertNode(getOriginalNode(t).parent,isPropertyAccessExpression),function transformPromiseExpressionOfPropertyAccess(e,t,n,r,i){if(shouldReturn(e,n)){let e=getSynthesizedDeepClone(t);return r&&(e=Wr.createAwaitExpression(e)),[Wr.createReturnStatement(e)]}return createVariableOrAssignmentOrExpressionStatement(i,Wr.createAwaitExpression(t),void 0)}(e,t,n,r,i)):silentFail()}function isNullOrUndefined2({checker:e},t){if(106===t.kind)return!0;if(isIdentifier(t)&&!isGeneratedIdentifier(t)&&"undefined"===idText(t)){const n=e.getSymbolAtLocation(t);return!n||e.isUndefinedSymbol(n)}return!1}function getPossibleNameForVarDecl(e,t,n){let r;return n&&!shouldReturn(e,t)&&(isSynthIdentifier(n)?(r=n,t.synthNamesMap.forEach((e,r)=>{if(e.identifier.text===n.identifier.text){const e=function createUniqueSynthName(e){return createSynthIdentifier(Wr.createUniqueName(e.identifier.text,16))}(n);t.synthNamesMap.set(r,e)}})):r=createSynthIdentifier(Wr.createUniqueName("result",16),n.types),declareSynthIdentifier(r)),r}function finishCatchOrFinallyTransform(e,t,n,r,i){const o=[];let a;if(r&&!shouldReturn(e,t)){a=getSynthesizedDeepClone(declareSynthIdentifier(r));const e=r.types,n=t.checker.getUnionType(e,2),i=t.isInJSFile?void 0:t.checker.typeToTypeNode(n,void 0,void 0),s=[Wr.createVariableDeclaration(a,void 0,i)],c=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList(s,1));o.push(c)}return o.push(n),i&&a&&function isSynthBindingPattern(e){return 1===e.kind}(i)&&o.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(getSynthesizedDeepClone(declareSynthBindingPattern(i)),void 0,void 0,a)],2))),o}function transformCatch(e,t,n,r,i){if(!t||isNullOrUndefined2(n,t))return transformExpression(e,e.expression.expression,n,r,i);const o=getArgBindingName(t,n),a=getPossibleNameForVarDecl(e,n,i),s=transformExpression(e,e.expression.expression,n,!0,a);if(hasFailed())return silentFail();const c=transformCallbackArgument(t,r,a,o,e,n);if(hasFailed())return silentFail();const l=Wr.createBlock(s),d=Wr.createCatchClause(o&&getSynthesizedDeepClone(declareSynthBindingName(o)),Wr.createBlock(c));return finishCatchOrFinallyTransform(e,n,Wr.createTryStatement(l,d,void 0),a,i)}function createVariableOrAssignmentOrExpressionStatement(e,t,n){return!e||isEmptyBindingName(e)?[Wr.createExpressionStatement(t)]:isSynthIdentifier(e)&&e.hasBeenDeclared?[Wr.createExpressionStatement(Wr.createAssignment(getSynthesizedDeepClone(referenceSynthIdentifier(e)),t))]:[Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(getSynthesizedDeepClone(declareSynthBindingName(e)),void 0,n,t)],2))]}function maybeAnnotateAndReturn(e,t){if(t&&e){const n=Wr.createUniqueName("result",16);return[...createVariableOrAssignmentOrExpressionStatement(createSynthIdentifier(n),e,t),Wr.createReturnStatement(n)]}return[Wr.createReturnStatement(e)]}function transformCallbackArgument(e,t,n,r,i,o){var a;switch(e.kind){case 106:break;case 212:case 80:if(!r)break;const s=Wr.createCallExpression(getSynthesizedDeepClone(e),void 0,isSynthIdentifier(r)?[referenceSynthIdentifier(r)]:[]);if(shouldReturn(i,o))return maybeAnnotateAndReturn(s,getExplicitPromisedTypeOfPromiseReturningCallExpression(i,e,o.checker));const c=o.checker.getTypeAtLocation(e),d=o.checker.getSignaturesOfType(c,0);if(!d.length)return silentFail();const p=d[0].getReturnType(),u=createVariableOrAssignmentOrExpressionStatement(n,Wr.createAwaitExpression(s),getExplicitPromisedTypeOfPromiseReturningCallExpression(i,e,o.checker));return n&&n.types.push(o.checker.getAwaitedType(p)||p),u;case 219:case 220:{const r=e.body,s=null==(a=getLastCallSignature(o.checker.getTypeAtLocation(e),o.checker))?void 0:a.getReturnType();if(isBlock(r)){let a=[],c=!1;for(const l of r.statements)if(isReturnStatement(l))if(c=!0,isReturnStatementWithFixablePromiseHandler(l,o.checker))a=a.concat(transformReturnStatementWithFixablePromiseHandler(o,l,t,n));else{const t=s&&l.expression?getPossiblyAwaitedRightHandSide(o.checker,s,l.expression):l.expression;a.push(...maybeAnnotateAndReturn(t,getExplicitPromisedTypeOfPromiseReturningCallExpression(i,e,o.checker)))}else{if(t&&forEachReturnStatement(l,returnTrue))return silentFail();a.push(l)}return shouldReturn(i,o)?a.map(e=>getSynthesizedDeepClone(e)):function removeReturns(e,t,n,r){const i=[];for(const r of e)if(isReturnStatement(r)){if(r.expression){const e=isPromiseTypedExpression(r.expression,n.checker)?Wr.createAwaitExpression(r.expression):r.expression;void 0===t?i.push(Wr.createExpressionStatement(e)):isSynthIdentifier(t)&&t.hasBeenDeclared?i.push(Wr.createExpressionStatement(Wr.createAssignment(referenceSynthIdentifier(t),e))):i.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(declareSynthBindingName(t),void 0,void 0,e)],2)))}}else i.push(getSynthesizedDeepClone(r));r||void 0===t||i.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(declareSynthBindingName(t),void 0,void 0,Wr.createIdentifier("undefined"))],2)));return i}(a,n,o,c)}{const a=isFixablePromiseHandler(r,o.checker)?transformReturnStatementWithFixablePromiseHandler(o,Wr.createReturnStatement(r),t,n):l;if(a.length>0)return a;if(s){const t=getPossiblyAwaitedRightHandSide(o.checker,s,r);if(shouldReturn(i,o))return maybeAnnotateAndReturn(t,getExplicitPromisedTypeOfPromiseReturningCallExpression(i,e,o.checker));{const e=createVariableOrAssignmentOrExpressionStatement(n,t,void 0);return n&&n.types.push(o.checker.getAwaitedType(s)||s),e}}return silentFail()}}default:return silentFail()}return l}function getPossiblyAwaitedRightHandSide(e,t,n){const r=getSynthesizedDeepClone(n);return e.getPromisedTypeOfPromise(t)?Wr.createAwaitExpression(r):r}function getLastCallSignature(e,t){return lastOrUndefined(t.getSignaturesOfType(e,0))}function transformReturnStatementWithFixablePromiseHandler(e,t,n,r){let i=[];return forEachChild(t,function visit(t){if(isCallExpression(t)){const o=transformExpression(t,t,e,n,r);if(i=i.concat(o),i.length>0)return}else isFunctionLike(t)||forEachChild(t,visit)}),i}function getArgBindingName(e,t){const n=[];let r;if(isFunctionLikeDeclaration(e)){if(e.parameters.length>0){r=function getMappedBindingNameOrDefault(e){if(isIdentifier(e))return getMapEntryOrDefault(e);const t=flatMap(e.elements,e=>isOmittedExpression(e)?[]:[getMappedBindingNameOrDefault(e.name)]);return function createSynthBindingPattern(e,t=l,n=[]){return{kind:1,bindingPattern:e,elements:t,types:n}}(e,t)}(e.parameters[0].name)}}else isIdentifier(e)?r=getMapEntryOrDefault(e):isPropertyAccessExpression(e)&&isIdentifier(e.name)&&(r=getMapEntryOrDefault(e.name));if(r&&(!("identifier"in r)||"undefined"!==r.identifier.text))return r;function getMapEntryOrDefault(e){const r=function getSymbol2(e){var n;return(null==(n=tryCast(e,canHaveSymbol))?void 0:n.symbol)??t.checker.getSymbolAtLocation(e)}(function getOriginalNode2(e){return e.original?e.original:e}(e));if(!r)return createSynthIdentifier(e,n);return t.synthNamesMap.get(getSymbolId(r).toString())||createSynthIdentifier(e,n)}}function isEmptyBindingName(e){return!e||(isSynthIdentifier(e)?!e.identifier.text:every(e.elements,isEmptyBindingName))}function createSynthIdentifier(e,t=[]){return{kind:0,identifier:e,types:t,hasBeenDeclared:!1,hasBeenReferenced:!1}}function referenceSynthIdentifier(e){return e.hasBeenReferenced=!0,e.identifier}function declareSynthBindingName(e){return isSynthIdentifier(e)?declareSynthIdentifier(e):declareSynthBindingPattern(e)}function declareSynthBindingPattern(e){for(const t of e.elements)declareSynthBindingName(t);return e.bindingPattern}function declareSynthIdentifier(e){return e.hasBeenDeclared=!0,e.identifier}function isSynthIdentifier(e){return 0===e.kind}function shouldReturn(e,t){return!!e.original&&t.setOfExpressionsToReturn.has(getNodeId(e.original))}function fixImportOfModuleExports(e,t,n,r,i){var o;for(const a of e.imports){const s=null==(o=n.getResolvedModuleFromModuleSpecifier(a,e))?void 0:o.resolvedModule;if(!s||s.resolvedFileName!==t.fileName)continue;const c=importFromModuleSpecifier(a);switch(c.kind){case 272:r.replaceNode(e,c,makeImport(c.name,void 0,a,i));break;case 214:isRequireCall(c,!1)&&r.replaceNode(e,c,Wr.createPropertyAccessExpression(getSynthesizedDeepClone(c),"default"))}}}function forEachExportReference(e,t){e.forEachChild(function recur(n){if(isPropertyAccessExpression(n)&&isExportsOrModuleExportsOrAlias(e,n.expression)&&isIdentifier(n.name)){const{parent:e}=n;t(n,isBinaryExpression(e)&&e.left===n&&64===e.operatorToken.kind)}n.forEachChild(recur)})}function convertStatement(e,t,n,r,i,o,a,s,c){switch(t.kind){case 244:return convertVariableStatement(e,t,r,n,i,o,c),!1;case 245:{const{expression:i}=t;switch(i.kind){case 214:return isRequireCall(i,!0)&&r.replaceNode(e,t,makeImport(void 0,void 0,i.arguments[0],c)),!1;case 227:{const{operatorToken:t}=i;return 64===t.kind&&function convertAssignment(e,t,n,r,i,o){const{left:a,right:s}=n;if(!isPropertyAccessExpression(a))return!1;if(isExportsOrModuleExportsOrAlias(e,a)){if(!isExportsOrModuleExportsOrAlias(e,s)){const i=isObjectLiteralExpression(s)?function tryChangeModuleExportsObject(e,t){const n=mapAllOrFail(e.properties,e=>{switch(e.kind){case 178:case 179:case 305:case 306:return;case 304:return isIdentifier(e.name)?function convertExportsDotXEquals_replaceNode(e,t,n){const r=[Wr.createToken(95)];switch(t.kind){case 219:{const{name:n}=t;if(n&&n.text!==e)return exportConst()}case 220:return functionExpressionToDeclaration(e,r,t,n);case 232:return function classExpressionToDeclaration(e,t,n,r){return Wr.createClassDeclaration(concatenate(t,getSynthesizedDeepClones(n.modifiers)),e,getSynthesizedDeepClones(n.typeParameters),getSynthesizedDeepClones(n.heritageClauses),replaceImportUseSites(n.members,r))}(e,r,t,n);default:return exportConst()}function exportConst(){return makeConst(r,Wr.createIdentifier(e),replaceImportUseSites(t,n))}}(e.name.text,e.initializer,t):void 0;case 175:return isIdentifier(e.name)?functionExpressionToDeclaration(e.name.text,[Wr.createToken(95)],e,t):void 0;default:h.assertNever(e,`Convert to ES6 got invalid prop kind ${e.kind}`)}});return n&&[n,!1]}(s,o):isRequireCall(s,!0)?function convertReExportAll(e,t){const n=e.text,r=t.getSymbolAtLocation(e),i=r?r.exports:d;return i.has("export=")?[[reExportDefault(n)],!0]:i.has("default")?i.size>1?[[reExportStar(n),reExportDefault(n)],!0]:[[reExportDefault(n)],!0]:[[reExportStar(n)],!1]}(s.arguments[0],t):void 0;return i?(r.replaceNodeWithNodes(e,n.parent,i[0]),i[1]):(r.replaceRangeWithText(e,createRange(a.getStart(e),s.pos),"export default"),!0)}r.delete(e,n.parent)}else isExportsOrModuleExportsOrAlias(e,a.expression)&&function convertNamedExport(e,t,n,r){const{text:i}=t.left.name,o=r.get(i);if(void 0!==o){const r=[makeConst(void 0,o,t.right),makeExportDeclaration([Wr.createExportSpecifier(!1,o,i)])];n.replaceNodeWithNodes(e,t.parent,r)}else!function convertExportsPropertyAssignment({left:e,right:t,parent:n},r,i){const o=e.name.text;if(!(isFunctionExpression(t)||isArrowFunction(t)||isClassExpression(t))||t.name&&t.name.text!==o)i.replaceNodeRangeWithNodes(r,e.expression,findChildOfKind(e,25,r),[Wr.createToken(95),Wr.createToken(87)],{joiner:" ",suffix:" "});else{i.replaceRange(r,{pos:e.getStart(r),end:t.getStart(r)},Wr.createToken(95),{suffix:" "}),t.name||i.insertName(r,t,o);const a=findChildOfKind(n,27,r);a&&i.delete(r,a)}}(t,e,n)}(e,n,r,i);return!1}(e,n,i,r,a,s)}}}default:return!1}}function convertVariableStatement(e,t,n,r,i,o,a){const{declarationList:s}=t;let c=!1;const l=map(s.declarations,t=>{const{name:n,initializer:l}=t;if(l){if(isExportsOrModuleExportsOrAlias(e,l))return c=!0,convertedImports([]);if(isRequireCall(l,!0))return c=!0,function convertSingleImport(e,t,n,r,i,o){switch(e.kind){case 207:{const n=mapAllOrFail(e.elements,e=>e.dotDotDotToken||e.initializer||e.propertyName&&!isIdentifier(e.propertyName)||!isIdentifier(e.name)?void 0:makeImportSpecifier2(e.propertyName&&e.propertyName.text,e.name.text));if(n)return convertedImports([makeImport(void 0,n,t,o)])}case 208:{const n=makeUniqueName(moduleSpecifierToValidIdentifier(t.text,i),r);return convertedImports([makeImport(Wr.createIdentifier(n),void 0,t,o),makeConst(void 0,getSynthesizedDeepClone(e),Wr.createIdentifier(n))])}case 80:return function convertSingleIdentifierImport(e,t,n,r,i){const o=n.getSymbolAtLocation(e),a=new Map;let s,c=!1;for(const t of r.original.get(e.text)){if(n.getSymbolAtLocation(t)!==o||t===e)continue;const{parent:i}=t;if(isPropertyAccessExpression(i)){const{name:{text:e}}=i;if("default"===e){c=!0;const e=t.getText();(s??(s=new Map)).set(i,Wr.createIdentifier(e))}else{h.assert(i.expression===t,"Didn't expect expression === use");let n=a.get(e);void 0===n&&(n=makeUniqueName(e,r),a.set(e,n)),(s??(s=new Map)).set(i,Wr.createIdentifier(n))}}else c=!0}const l=0===a.size?void 0:arrayFrom(mapIterator(a.entries(),([e,t])=>Wr.createImportSpecifier(!1,e===t?void 0:Wr.createIdentifier(e),Wr.createIdentifier(t))));l||(c=!0);return convertedImports([makeImport(c?getSynthesizedDeepClone(e):void 0,l,t,i)],s)}(e,t,n,r,o);default:return h.assertNever(e,`Convert to ES module got invalid name kind ${e.kind}`)}}(n,l.arguments[0],r,i,o,a);if(isPropertyAccessExpression(l)&&isRequireCall(l.expression,!0))return c=!0,function convertPropertyAccessImport(e,t,n,r,i){switch(e.kind){case 207:case 208:{const o=makeUniqueName(t,r);return convertedImports([makeSingleImport(o,t,n,i),makeConst(void 0,e,Wr.createIdentifier(o))])}case 80:return convertedImports([makeSingleImport(e.text,t,n,i)]);default:return h.assertNever(e,`Convert to ES module got invalid syntax form ${e.kind}`)}}(n,l.name.text,l.expression.arguments[0],i,a)}return convertedImports([Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([t],s.flags))])});if(c){let r;return n.replaceNodeWithNodes(e,t,flatMap(l,e=>e.newImports)),forEach(l,e=>{e.useSitesToUnqualify&©Entries(e.useSitesToUnqualify,r??(r=new Map))}),r}}function reExportStar(e){return makeExportDeclaration(void 0,e)}function reExportDefault(e){return makeExportDeclaration([Wr.createExportSpecifier(!1,void 0,"default")],e)}function replaceImportUseSites(e,t){return t&&some(arrayFrom(t.keys()),t=>rangeContainsRange(e,t))?isArray(e)?getSynthesizedDeepClonesWithReplacements(e,!0,replaceNode):getSynthesizedDeepCloneWithReplacements(e,!0,replaceNode):e;function replaceNode(e){if(212===e.kind){const n=t.get(e);return t.delete(e),n}}}function makeUniqueName(e,t){for(;t.original.has(e)||t.additional.has(e);)e=`_${e}`;return t.additional.add(e),e}function collectFreeIdentifiers(e){const t=createMultiMap();return forEachFreeIdentifier(e,e=>t.add(e.text,e)),t}function forEachFreeIdentifier(e,t){isIdentifier(e)&&function isFreeIdentifier(e){const{parent:t}=e;switch(t.kind){case 212:return t.name!==e;case 209:case 277:return t.propertyName!==e;default:return!0}}(e)&&t(e),e.forEachChild(e=>forEachFreeIdentifier(e,t))}function functionExpressionToDeclaration(e,t,n,r){return Wr.createFunctionDeclaration(concatenate(t,getSynthesizedDeepClones(n.modifiers)),getSynthesizedDeepClone(n.asteriskToken),e,getSynthesizedDeepClones(n.typeParameters),getSynthesizedDeepClones(n.parameters),getSynthesizedDeepClone(n.type),Wr.converters.convertToFunctionBlock(replaceImportUseSites(n.body,r)))}function makeSingleImport(e,t,n,r){return"default"===t?makeImport(Wr.createIdentifier(e),void 0,n,r):makeImport(void 0,[makeImportSpecifier2(t,e)],n,r)}function makeImportSpecifier2(e,t){return Wr.createImportSpecifier(!1,void 0!==e&&e!==t?Wr.createIdentifier(e):void 0,Wr.createIdentifier(t))}function makeConst(e,t,n){return Wr.createVariableStatement(e,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(t,void 0,void 0,n)],2))}function makeExportDeclaration(e,t){return Wr.createExportDeclaration(void 0,!1,e&&Wr.createNamedExports(e),void 0===t?void 0:Wr.createStringLiteral(t))}function convertedImports(e,t){return{newImports:e,useSitesToUnqualify:t}}registerCodeFix({errorCodes:Fd,getCodeActions(e){Pd=!0;const t=$m.ChangeTracker.with(e,t=>convertToAsyncFunction(t,e.sourceFile,e.span.start,e.program.getTypeChecker()));return Pd?[createCodeFixAction(kd,t,Ot.Convert_to_async_function,kd,Ot.Convert_all_to_async_functions)]:[]},fixIds:[kd],getAllCodeActions:e=>codeFixAll(e,Fd,(t,n)=>convertToAsyncFunction(t,n.file,n.start,e.program.getTypeChecker()))}),registerCodeFix({errorCodes:[Ot.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module.code],getCodeActions(e){const{sourceFile:t,program:n,preferences:r}=e;return[createCodeFixActionWithoutFixAll("convertToEsModule",$m.ChangeTracker.with(e,e=>{const i=function convertFileToEsModule(e,t,n,r,i){const o={original:collectFreeIdentifiers(e),additional:new Set},a=function collectExportRenames(e,t,n){const r=new Map;return forEachExportReference(e,e=>{const{text:i}=e.name;r.has(i)||!isIdentifierANonContextualKeyword(e.name)&&!t.resolveName(i,e,111551,!0)||r.set(i,makeUniqueName(`_${i}`,n))}),r}(e,t,o);!function convertExportsAccesses(e,t,n){forEachExportReference(e,(r,i)=>{if(i)return;const{text:o}=r.name;n.replaceNode(e,r,Wr.createIdentifier(t.get(o)||o))})}(e,a,n);let s,c=!1;for(const a of filter(e.statements,isVariableStatement)){const c=convertVariableStatement(e,a,n,t,o,r,i);c&©Entries(c,s??(s=new Map))}for(const l of filter(e.statements,e=>!isVariableStatement(e))){const d=convertStatement(e,l,t,n,o,r,a,s,i);c=c||d}return null==s||s.forEach((t,r)=>{n.replaceNode(e,r,t)}),c}(t,n.getTypeChecker(),e,zn(n.getCompilerOptions()),getQuotePreference(t,r));if(i)for(const i of n.getSourceFiles())fixImportOfModuleExports(i,t,n,e,getQuotePreference(i,r))}),Ot.Convert_to_ES_module)]}});var Dd="correctQualifiedNameToIndexedAccessType",Id=[Ot.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code];function getQualifiedName(e,t){const n=findAncestor(getTokenAtPosition(e,t),isQualifiedName);return h.assert(!!n,"Expected position to be owned by a qualified name."),isIdentifier(n.left)?n:void 0}function doChange10(e,t,n){const r=n.right.text,i=Wr.createIndexedAccessTypeNode(Wr.createTypeReferenceNode(n.left,void 0),Wr.createLiteralTypeNode(Wr.createStringLiteral(r)));e.replaceNode(t,n,i)}registerCodeFix({errorCodes:Id,getCodeActions(e){const t=getQualifiedName(e.sourceFile,e.span.start);if(!t)return;const n=$m.ChangeTracker.with(e,n=>doChange10(n,e.sourceFile,t)),r=`${t.left.text}["${t.right.text}"]`;return[createCodeFixAction(Dd,n,[Ot.Rewrite_as_the_indexed_access_type_0,r],Dd,Ot.Rewrite_all_as_indexed_access_types)]},fixIds:[Dd],getAllCodeActions:e=>codeFixAll(e,Id,(e,t)=>{const n=getQualifiedName(t.file,t.start);n&&doChange10(e,t.file,n)})});var Ad=[Ot.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code],Od="convertToTypeOnlyExport";function getExportSpecifierForDiagnosticSpan(e,t){return tryCast(getTokenAtPosition(t,e.start).parent,isExportSpecifier)}function fixSingleExportDeclaration(e,t,n){if(!t)return;const r=t.parent,i=r.parent,o=function getTypeExportSpecifiers(e,t){const n=e.parent;if(1===n.elements.length)return n.elements;const r=getDiagnosticsWithinSpan(createTextSpanFromNode(n),t.program.getSemanticDiagnostics(t.sourceFile,t.cancellationToken));return filter(n.elements,t=>{var n;return t===e||(null==(n=findDiagnosticForNode(t,r))?void 0:n.code)===Ad[0]})}(t,n);if(o.length===r.elements.length)e.insertModifierBefore(n.sourceFile,156,r);else{const t=Wr.updateExportDeclaration(i,i.modifiers,!1,Wr.updateNamedExports(r,filter(r.elements,e=>!contains(o,e))),i.moduleSpecifier,void 0),a=Wr.createExportDeclaration(void 0,!0,Wr.createNamedExports(o),i.moduleSpecifier,void 0);e.replaceNode(n.sourceFile,i,t,{leadingTriviaOption:$m.LeadingTriviaOption.IncludeAll,trailingTriviaOption:$m.TrailingTriviaOption.Exclude}),e.insertNodeAfter(n.sourceFile,i,a)}}registerCodeFix({errorCodes:Ad,getCodeActions:function getCodeActionsToConvertToTypeOnlyExport(e){const t=$m.ChangeTracker.with(e,t=>fixSingleExportDeclaration(t,getExportSpecifierForDiagnosticSpan(e.span,e.sourceFile),e));if(t.length)return[createCodeFixAction(Od,t,Ot.Convert_to_type_only_export,Od,Ot.Convert_all_re_exported_types_to_type_only_exports)]},fixIds:[Od],getAllCodeActions:function getAllCodeActionsToConvertToTypeOnlyExport(e){const t=new Set;return codeFixAll(e,Ad,(n,r)=>{const i=getExportSpecifierForDiagnosticSpan(r,e.sourceFile);i&&addToSeen(t,getNodeId(i.parent.parent))&&fixSingleExportDeclaration(n,i,e)})}});var wd=[Ot._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code,Ot._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code],Ld="convertToTypeOnlyImport";function getDeclaration2(e,t){const{parent:n}=getTokenAtPosition(e,t);return isImportSpecifier(n)||isImportDeclaration(n)&&n.importClause?n:void 0}function canConvertImportDeclarationForSpecifier(e,t,n){if(e.parent.parent.name)return!1;const r=e.parent.elements.filter(e=>!e.isTypeOnly);if(1===r.length)return!0;const i=n.getTypeChecker();for(const e of r){if(vm.Core.eachSymbolReferenceInFile(e.name,i,t,e=>{const t=i.getSymbolAtLocation(e);return!!t&&i.symbolIsValue(t)||!isValidTypeOnlyAliasUseSite(e)}))return!1}return!0}function doChange11(e,t,n){var r;if(isImportSpecifier(n))e.replaceNode(t,n,Wr.updateImportSpecifier(n,!0,n.propertyName,n.name));else{const i=n.importClause;if(i.name&&i.namedBindings)e.replaceNodeWithNodes(t,n,[Wr.createImportDeclaration(getSynthesizedDeepClones(n.modifiers,!0),Wr.createImportClause(156,getSynthesizedDeepClone(i.name,!0),void 0),getSynthesizedDeepClone(n.moduleSpecifier,!0),getSynthesizedDeepClone(n.attributes,!0)),Wr.createImportDeclaration(getSynthesizedDeepClones(n.modifiers,!0),Wr.createImportClause(156,void 0,getSynthesizedDeepClone(i.namedBindings,!0)),getSynthesizedDeepClone(n.moduleSpecifier,!0),getSynthesizedDeepClone(n.attributes,!0))]);else{const o=276===(null==(r=i.namedBindings)?void 0:r.kind)?Wr.updateNamedImports(i.namedBindings,sameMap(i.namedBindings.elements,e=>Wr.updateImportSpecifier(e,!1,e.propertyName,e.name))):i.namedBindings,a=Wr.updateImportDeclaration(n,n.modifiers,Wr.updateImportClause(i,156,i.name,o),n.moduleSpecifier,n.attributes);e.replaceNode(t,n,a)}}}registerCodeFix({errorCodes:wd,getCodeActions:function getCodeActionsToConvertToTypeOnlyImport(e){var t;const n=getDeclaration2(e.sourceFile,e.span.start);if(n){const r=$m.ChangeTracker.with(e,t=>doChange11(t,e.sourceFile,n)),i=277===n.kind&&isImportDeclaration(n.parent.parent.parent)&&canConvertImportDeclarationForSpecifier(n,e.sourceFile,e.program)?$m.ChangeTracker.with(e,t=>doChange11(t,e.sourceFile,n.parent.parent.parent)):void 0,o=createCodeFixAction(Ld,r,277===n.kind?[Ot.Use_type_0,(null==(t=n.propertyName)?void 0:t.text)??n.name.text]:Ot.Use_import_type,Ld,Ot.Fix_all_with_type_only_imports);return some(i)?[createCodeFixActionWithoutFixAll(Ld,i,Ot.Use_import_type),o]:[o]}},fixIds:[Ld],getAllCodeActions:function getAllCodeActionsToConvertToTypeOnlyImport(e){const t=new Set;return codeFixAll(e,wd,(n,r)=>{const i=getDeclaration2(r.file,r.start);273!==(null==i?void 0:i.kind)||t.has(i)?277===(null==i?void 0:i.kind)&&isImportDeclaration(i.parent.parent.parent)&&!t.has(i.parent.parent.parent)&&canConvertImportDeclarationForSpecifier(i,r.file,e.program)?(doChange11(n,r.file,i.parent.parent.parent),t.add(i.parent.parent.parent)):277===(null==i?void 0:i.kind)&&doChange11(n,r.file,i):(doChange11(n,r.file,i),t.add(i))})}});var Md="convertTypedefToType",Rd=[Ot.JSDoc_typedef_may_be_converted_to_TypeScript_type.code];function doChange12(e,t,n,r,i=!1){if(!isJSDocTypedefTag(t))return;const o=function createDeclaration(e){var t;const{typeExpression:n}=e;if(!n)return;const r=null==(t=e.name)?void 0:t.getText();if(!r)return;if(323===n.kind)return function createInterfaceForTypeLiteral(e,t){const n=createSignatureFromTypeLiteral(t);if(!some(n))return;return Wr.createInterfaceDeclaration(void 0,e,void 0,void 0,n)}(r,n);if(310===n.kind)return function createTypeAliasForTypeExpression(e,t){const n=getSynthesizedDeepClone(t.type);if(!n)return;return Wr.createTypeAliasDeclaration(void 0,Wr.createIdentifier(e),void 0,n)}(r,n)}(t);if(!o)return;const a=t.parent,{leftSibling:s,rightSibling:c}=function getLeftAndRightSiblings(e){const t=e.parent,n=t.getChildCount()-1,r=t.getChildren().findIndex(t=>t.getStart()===e.getStart()&&t.getEnd()===e.getEnd()),i=r>0?t.getChildAt(r-1):void 0,o=r0;e--)if(!/[*/\s]/.test(r.substring(e-1,e)))return t+e;return n}function createSignatureFromTypeLiteral(e){const t=e.jsDocPropertyTags;if(!some(t))return;return mapDefined(t,e=>{var t;const n=function getPropertyName(e){return 80===e.name.kind?e.name.text:e.name.right.text}(e),r=null==(t=e.typeExpression)?void 0:t.type,i=e.isBracketed;let o;if(r&&isJSDocTypeLiteral(r)){const e=createSignatureFromTypeLiteral(r);o=Wr.createTypeLiteralNode(e)}else r&&(o=getSynthesizedDeepClone(r));if(o&&n){const e=i?Wr.createToken(58):void 0;return Wr.createPropertySignature(void 0,n,e,o)}})}function getJSDocTypedefNodes(e){return hasJSDocNodes(e)?flatMap(e.jsDoc,e=>{var t;return null==(t=e.tags)?void 0:t.filter(e=>isJSDocTypedefTag(e))}):[]}registerCodeFix({fixIds:[Md],errorCodes:Rd,getCodeActions(e){const t=getNewLineOrDefaultFromHost(e.host,e.formatContext.options),n=getTokenAtPosition(e.sourceFile,e.span.start);if(!n)return;const r=$m.ChangeTracker.with(e,r=>doChange12(r,n,e.sourceFile,t));return r.length>0?[createCodeFixAction(Md,r,Ot.Convert_typedef_to_TypeScript_type,Md,Ot.Convert_all_typedef_to_TypeScript_types)]:void 0},getAllCodeActions:e=>codeFixAll(e,Rd,(t,n)=>{const r=getNewLineOrDefaultFromHost(e.host,e.formatContext.options),i=getTokenAtPosition(n.file,n.start);i&&doChange12(t,i,n.file,r,!0)})});var Bd="convertLiteralTypeToMappedType",jd=[Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code];function getInfo5(e,t){const n=getTokenAtPosition(e,t);if(isIdentifier(n)){const t=cast(n.parent.parent,isPropertySignature),r=n.getText(e);return{container:cast(t.parent,isTypeLiteralNode),typeNode:t.type,constraint:r,name:"K"===r?"P":"K"}}}function doChange13(e,t,{container:n,typeNode:r,constraint:i,name:o}){e.replaceNode(t,n,Wr.createMappedTypeNode(void 0,Wr.createTypeParameterDeclaration(void 0,o,Wr.createTypeReferenceNode(i)),void 0,void 0,r,void 0))}registerCodeFix({errorCodes:jd,getCodeActions:function getCodeActionsToConvertLiteralTypeToMappedType(e){const{sourceFile:t,span:n}=e,r=getInfo5(t,n.start);if(!r)return;const{name:i,constraint:o}=r,a=$m.ChangeTracker.with(e,e=>doChange13(e,t,r));return[createCodeFixAction(Bd,a,[Ot.Convert_0_to_1_in_0,o,i],Bd,Ot.Convert_all_type_literals_to_mapped_type)]},fixIds:[Bd],getAllCodeActions:e=>codeFixAll(e,jd,(e,t)=>{const n=getInfo5(t.file,t.start);n&&doChange13(e,t.file,n)})});var Jd=[Ot.Class_0_incorrectly_implements_interface_1.code,Ot.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code],Wd="fixClassIncorrectlyImplementsInterface";function getClass(e,t){return h.checkDefined(getContainingClass(getTokenAtPosition(e,t)),"There should be a containing class")}function symbolPointsToNonPrivateMember(e){return!(e.valueDeclaration&&2&getEffectiveModifierFlags(e.valueDeclaration))}function addMissingDeclarations(e,t,n,r,i,o){const a=e.program.getTypeChecker(),s=function getHeritageClauseSymbolTable(e,t){const n=getEffectiveBaseTypeNode(e);if(!n)return createSymbolTable();const r=t.getTypeAtLocation(n),i=t.getPropertiesOfType(r);return createSymbolTable(i.filter(symbolPointsToNonPrivateMember))}(r,a),c=a.getTypeAtLocation(t),l=a.getPropertiesOfType(c).filter(and(symbolPointsToNonPrivateMember,e=>!s.has(e.escapedName))),d=a.getTypeAtLocation(r),p=find(r.members,e=>isConstructorDeclaration(e));d.getNumberIndexType()||createMissingIndexSignatureDeclaration(c,1),d.getStringIndexType()||createMissingIndexSignatureDeclaration(c,0);const u=createImportAdder(n,e.program,o,e.host);function createMissingIndexSignatureDeclaration(t,i){const o=a.getIndexInfoOfType(t,i);o&&insertInterfaceMemberNode(n,r,a.indexInfoToIndexSignatureDeclaration(o,r,void 0,void 0,getNoopSymbolTrackerWithResolver(e)))}function insertInterfaceMemberNode(e,t,n){p?i.insertNodeAfter(e,p,n):i.insertMemberAtStart(e,t,n)}createMissingMemberNodes(r,l,n,e,o,u,e=>insertInterfaceMemberNode(n,r,e)),u.writeFixes(i)}registerCodeFix({errorCodes:Jd,getCodeActions(e){const{sourceFile:t,span:n}=e,r=getClass(t,n.start);return mapDefined(getEffectiveImplementsTypeNodes(r),n=>{const i=$m.ChangeTracker.with(e,i=>addMissingDeclarations(e,n,t,r,i,e.preferences));return 0===i.length?void 0:createCodeFixAction(Wd,i,[Ot.Implement_interface_0,n.getText(t)],Wd,Ot.Implement_all_unimplemented_interfaces)})},fixIds:[Wd],getAllCodeActions(e){const t=new Set;return codeFixAll(e,Jd,(n,r)=>{const i=getClass(r.file,r.start);if(addToSeen(t,getNodeId(i)))for(const t of getEffectiveImplementsTypeNodes(i))addMissingDeclarations(e,t,r.file,i,n,e.preferences)})}});var Ud="import",zd="fixMissingImport",Vd=[Ot.Cannot_find_name_0.code,Ot.Cannot_find_name_0_Did_you_mean_1.code,Ot.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,Ot.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,Ot.Cannot_find_namespace_0.code,Ot._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,Ot._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code,Ot.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code,Ot._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery.code,Ot.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later.code,Ot.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig.code,Ot.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode.code,Ot.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig.code,Ot.Cannot_find_namespace_0_Did_you_mean_1.code,Ot.Cannot_extend_an_interface_0_Did_you_mean_implements.code,Ot.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found.code];function createImportAdder(e,t,n,r,i){return createImportAdderWorker(e,t,!1,n,r,i)}function createImportAdderWorker(e,t,n,r,i,o){const a=t.getCompilerOptions(),s=[],c=[],l=new Map,d=new Set,p=new Set,u=new Map;return{addImportFromDiagnostic:function addImportFromDiagnostic(e,t){const r=getFixInfos(t,e.code,e.start,n);if(!r||!r.length)return;addImport(first(r))},addImportFromExportedSymbol:function addImportFromExportedSymbol(n,s,c){var l,d;const p=h.checkDefined(n.parent,"Expected exported symbol to have module symbol as parent"),u=getNameForExportedSymbol(n,zn(a)),m=t.getTypeChecker(),_=m.getMergedSymbol(skipAlias(n,m)),f=getAllExportInfoForSymbol(e,_,u,p,!1,t,i,r,o);if(!f)return void h.assert(null==(l=r.autoImportFileExcludePatterns)?void 0:l.length);const g=shouldUseRequire(e,t);let y=getImportFixForSymbol(e,f,t,void 0,!!s,g,i,r);if(y){const e=(null==(d=tryCast(null==c?void 0:c.name,isIdentifier))?void 0:d.text)??u;let t,r;c&&isTypeOnlyImportDeclaration(c)&&(3===y.kind||2===y.kind)&&1===y.addAsTypeOnly&&(t=2),n.name!==e&&(r=n.name),y={...y,...void 0===t?{}:{addAsTypeOnly:t},...void 0===r?{}:{propertyName:r}},addImport({fix:y,symbolName:e??u,errorIdentifierText:void 0})}},addImportForModuleSymbol:function addImportForModuleSymbol(n,o,s){var c,l,d;const p=t.getTypeChecker(),u=p.getAliasedSymbol(n);h.assert(1536&u.flags,"Expected symbol to be a module");const m=createModuleSpecifierResolutionHost(t,i),_=Wo.getModuleSpecifiersWithCacheInfo(u,p,a,e,m,r,void 0,!0),f=shouldUseRequire(e,t);let g=getAddAsTypeOnly(o,!0,void 0,n.flags,t.getTypeChecker(),a);g=1===g&&isTypeOnlyImportDeclaration(s)?2:1;const y=isImportDeclaration(s)?isDefaultImport(s)?1:2:isImportSpecifier(s)?0:isImportClause(s)&&s.name?1:2,T=[{symbol:n,moduleSymbol:u,moduleFileName:null==(d=null==(l=null==(c=u.declarations)?void 0:c[0])?void 0:l.getSourceFile())?void 0:d.fileName,exportKind:4,targetFlags:n.flags,isFromPackageJson:!1}],S=getImportFixForSymbol(e,T,t,void 0,!!o,f,i,r);let x;x=S&&2!==y&&0!==S.kind&&1!==S.kind?{...S,addAsTypeOnly:g,importKind:y}:{kind:3,moduleSpecifierKind:void 0!==S?S.moduleSpecifierKind:_.kind,moduleSpecifier:void 0!==S?S.moduleSpecifier:first(_.moduleSpecifiers),importKind:y,addAsTypeOnly:g,useRequire:f};addImport({fix:x,symbolName:n.name,errorIdentifierText:void 0})},writeFixes:function writeFixes(t,n){var i,o;let p,m,_;p=void 0!==e.imports&&0===e.imports.length&&void 0!==n?n:getQuotePreference(e,r);for(const n of s)addNamespaceQualifier(t,e,n);for(const n of c)addImportType(t,e,n,p);if(d.size){h.assert(isFullSourceFile(e),"Cannot remove imports from a future source file");const n=new Set(mapDefined([...d],e=>findAncestor(e,isImportDeclaration))),r=new Set(mapDefined([...d],e=>findAncestor(e,isVariableDeclarationInitializedToRequire))),a=[...n].filter(e=>{var t,n,r;return!l.has(e.importClause)&&(!(null==(t=e.importClause)?void 0:t.name)||d.has(e.importClause))&&(!tryCast(null==(n=e.importClause)?void 0:n.namedBindings,isNamespaceImport)||d.has(e.importClause.namedBindings))&&(!tryCast(null==(r=e.importClause)?void 0:r.namedBindings,isNamedImports)||every(e.importClause.namedBindings.elements,e=>d.has(e)))}),s=[...r].filter(e=>(207!==e.name.kind||!l.has(e.name))&&(207!==e.name.kind||every(e.name.elements,e=>d.has(e)))),c=[...n].filter(e=>{var t,n;return(null==(t=e.importClause)?void 0:t.namedBindings)&&-1===a.indexOf(e)&&!(null==(n=l.get(e.importClause))?void 0:n.namedImports)&&(275===e.importClause.namedBindings.kind||every(e.importClause.namedBindings.elements,e=>d.has(e)))});for(const n of[...a,...s])t.delete(e,n);for(const n of c)t.replaceNode(e,n.importClause,Wr.updateImportClause(n.importClause,n.importClause.phaseModifier,n.importClause.name,void 0));for(const n of d){const r=findAncestor(n,isImportDeclaration);r&&-1===a.indexOf(r)&&-1===c.indexOf(r)?274===n.kind?t.delete(e,n.name):(h.assert(277===n.kind,"NamespaceImport should have been handled earlier"),(null==(i=l.get(r.importClause))?void 0:i.namedImports)?(m??(m=new Set)).add(n):t.delete(e,n)):209===n.kind?(null==(o=l.get(n.parent))?void 0:o.namedImports)?(m??(m=new Set)).add(n):t.delete(e,n):272===n.kind&&t.delete(e,n)}}l.forEach(({importClauseOrBindingPattern:n,defaultImport:i,namedImports:o})=>{doAddExistingFix(t,e,n,i,arrayFrom(o.entries(),([e,{addAsTypeOnly:t,propertyName:n}])=>({addAsTypeOnly:t,propertyName:n,name:e})),m,r)}),u.forEach(({useRequire:e,defaultImport:t,namedImports:n,namespaceLikeImport:i},o)=>{const s=(e?getNewRequires:getNewImports)(o.slice(2),p,t,n&&arrayFrom(n.entries(),([e,[t,n]])=>({addAsTypeOnly:t,propertyName:n,name:e})),i,a,r);_=combine(_,s)}),_=combine(_,getCombinedVerbatimImports()),_&&insertImports(t,e,_,!0,r)},hasFixes:function hasFixes(){return s.length>0||c.length>0||l.size>0||u.size>0||p.size>0||d.size>0},addImportForUnresolvedIdentifier:function addImportForUnresolvedIdentifier(e,t,n){const r=function getFixInfosWithoutDiagnostic(e,t,n){const r=getFixesInfoForNonUMDImport(e,t,n),i=createPackageJsonImportFilter(e.sourceFile,e.preferences,e.host);return r&&sortFixInfo(r,e.sourceFile,e.program,i,e.host,e.preferences)}(e,t,n);if(!r||!r.length)return;addImport(first(r))},addImportForNonExistentExport:function addImportForNonExistentExport(n,o,s,c,l){const d=t.getSourceFile(o),p=shouldUseRequire(e,t);if(d&&d.symbol){const{fixes:a}=getImportFixes([{exportKind:s,isFromPackageJson:!1,moduleFileName:o,moduleSymbol:d.symbol,targetFlags:c}],void 0,l,p,t,e,i,r);a.length&&addImport({fix:a[0],symbolName:n,errorIdentifierText:n})}else{const d=createFutureSourceFile(o,99,t,i);addImport({fix:{kind:3,moduleSpecifierKind:"relative",moduleSpecifier:Wo.getLocalModuleSpecifierBetweenFileNames(e,o,a,createModuleSpecifierResolutionHost(t,i),r),importKind:getImportKind(d,s,t),addAsTypeOnly:getAddAsTypeOnly(l,!0,void 0,c,t.getTypeChecker(),a),useRequire:p},symbolName:n,errorIdentifierText:n})}},removeExistingImport:function removeExistingImport(e){274===e.kind&&h.assertIsDefined(e.name,"ImportClause should have a name if it's being removed");d.add(e)},addVerbatimImport:function addVerbatimImport(e){p.add(e)}};function addImport(e){var t,n,r;const{fix:i,symbolName:o}=e;switch(i.kind){case 0:s.push(i);break;case 1:c.push(i);break;case 2:{const{importClauseOrBindingPattern:e,importKind:r,addAsTypeOnly:a,propertyName:s}=i;let c=l.get(e);if(c||l.set(e,c={importClauseOrBindingPattern:e,defaultImport:void 0,namedImports:new Map}),0===r){const e=null==(t=null==c?void 0:c.namedImports.get(o))?void 0:t.addAsTypeOnly;c.namedImports.set(o,{addAsTypeOnly:reduceAddAsTypeOnlyValues(e,a),propertyName:s})}else h.assert(void 0===c.defaultImport||c.defaultImport.name===o,"(Add to Existing) Default import should be missing or match symbolName"),c.defaultImport={name:o,addAsTypeOnly:reduceAddAsTypeOnlyValues(null==(n=c.defaultImport)?void 0:n.addAsTypeOnly,a)};break}case 3:{const{moduleSpecifier:e,importKind:t,useRequire:n,addAsTypeOnly:s,propertyName:c}=i,l=function getNewImportEntry(e,t,n,r){const i=newImportsKey(e,!0),o=newImportsKey(e,!1),a=u.get(i),s=u.get(o),c={defaultImport:void 0,namedImports:void 0,namespaceLikeImport:void 0,useRequire:n};if(1===t&&2===r)return a||(u.set(i,c),c);if(1===r&&(a||s))return a||s;if(s)return s;return u.set(o,c),c}(e,t,n,s);switch(h.assert(l.useRequire===n,"(Add new) Tried to add an `import` and a `require` for the same module"),t){case 1:h.assert(void 0===l.defaultImport||l.defaultImport.name===o,"(Add new) Default import should be missing or match symbolName"),l.defaultImport={name:o,addAsTypeOnly:reduceAddAsTypeOnlyValues(null==(r=l.defaultImport)?void 0:r.addAsTypeOnly,s)};break;case 0:const e=(l.namedImports||(l.namedImports=new Map)).get(o);l.namedImports.set(o,[reduceAddAsTypeOnlyValues(e,s),c]);break;case 3:if(a.verbatimModuleSyntax){const e=(l.namedImports||(l.namedImports=new Map)).get(o);l.namedImports.set(o,[reduceAddAsTypeOnlyValues(e,s),c])}else h.assert(void 0===l.namespaceLikeImport||l.namespaceLikeImport.name===o,"Namespacelike import shoudl be missing or match symbolName"),l.namespaceLikeImport={importKind:t,name:o,addAsTypeOnly:s};break;case 2:h.assert(void 0===l.namespaceLikeImport||l.namespaceLikeImport.name===o,"Namespacelike import shoudl be missing or match symbolName"),l.namespaceLikeImport={importKind:t,name:o,addAsTypeOnly:s}}break}case 4:break;default:h.assertNever(i,`fix wasn't never - got kind ${i.kind}`)}function reduceAddAsTypeOnlyValues(e,t){return Math.max(e??0,t)}function newImportsKey(e,t){return`${t?1:0}|${e}`}}function getCombinedVerbatimImports(){if(!p.size)return;const e=new Set(mapDefined([...p],e=>findAncestor(e,isImportDeclaration))),t=new Set(mapDefined([...p],e=>findAncestor(e,isRequireVariableStatement)));return[...mapDefined([...p],e=>272===e.kind?getSynthesizedDeepClone(e,!0):void 0),...[...e].map(e=>{var t;return p.has(e)?getSynthesizedDeepClone(e,!0):getSynthesizedDeepClone(Wr.updateImportDeclaration(e,e.modifiers,e.importClause&&Wr.updateImportClause(e.importClause,e.importClause.phaseModifier,p.has(e.importClause)?e.importClause.name:void 0,p.has(e.importClause.namedBindings)?e.importClause.namedBindings:(null==(t=tryCast(e.importClause.namedBindings,isNamedImports))?void 0:t.elements.some(e=>p.has(e)))?Wr.updateNamedImports(e.importClause.namedBindings,e.importClause.namedBindings.elements.filter(e=>p.has(e))):void 0),e.moduleSpecifier,e.attributes),!0)}),...[...t].map(e=>p.has(e)?getSynthesizedDeepClone(e,!0):getSynthesizedDeepClone(Wr.updateVariableStatement(e,e.modifiers,Wr.updateVariableDeclarationList(e.declarationList,mapDefined(e.declarationList.declarations,e=>p.has(e)?e:Wr.updateVariableDeclaration(e,207===e.name.kind?Wr.updateObjectBindingPattern(e.name,e.name.elements.filter(e=>p.has(e))):e.name,e.exclamationToken,e.type,e.initializer)))),!0))]}}function createImportSpecifierResolver(e,t,n,r){const i=createPackageJsonImportFilter(e,r,n),o=createExistingImportMap(e,t);return{getModuleSpecifierForBestExportInfo:function getModuleSpecifierForBestExportInfo(a,s,c,l){const{fixes:d,computedWithoutCacheCount:p}=getImportFixes(a,s,c,!1,t,e,n,r,o,l),u=getBestFix(d,e,t,i,n,r);return u&&{...u,computedWithoutCacheCount:p}}}}function getImportCompletionAction(e,t,n,r,i,o,a,s,c,l,d,p){let u;n?(u=getExportInfoMap(r,a,s,d,p).get(r.path,n),h.assertIsDefined(u,"Some exportInfo should match the specified exportMapKey")):(u=pathIsBareSpecifier(stripQuotes(t.name))?[getSingleExportInfoForSymbol(e,i,t,s,a)]:getAllExportInfoForSymbol(r,e,i,t,o,s,a,d,p),h.assertIsDefined(u,"Some exportInfo should match the specified symbol / moduleSymbol"));const m=shouldUseRequire(r,s),_=isValidTypeOnlyAliasUseSite(getTokenAtPosition(r,l)),f=h.checkDefined(getImportFixForSymbol(r,u,s,l,_,m,a,d));return{moduleSpecifier:f.moduleSpecifier,codeAction:codeFixActionToCodeAction(codeActionForFix({host:a,formatContext:c,preferences:d},r,i,f,!1,s,d))}}function getPromoteTypeOnlyCompletionAction(e,t,n,r,i,o){const a=n.getCompilerOptions(),s=single(getSymbolNamesToImport(e,n.getTypeChecker(),t,a)),c=getTypeOnlyPromotionFix(e,t,s,n),l=s!==t.text;return c&&codeFixActionToCodeAction(codeActionForFix({host:r,formatContext:i,preferences:o},e,s,c,l,n,o))}function getImportFixForSymbol(e,t,n,r,i,o,a,s){const c=createPackageJsonImportFilter(e,s,a);return getBestFix(getImportFixes(t,r,i,o,n,e,a,s).fixes,e,n,c,a,s)}function codeFixActionToCodeAction({description:e,changes:t,commands:n}){return{description:e,changes:t,commands:n}}function getAllExportInfoForSymbol(e,t,n,r,i,o,a,s,c){const l=createGetChecker(o,a),d=s.autoImportFileExcludePatterns&&getIsFileExcluded(a,s),p=o.getTypeChecker().getMergedSymbol(r),u=d&&p.declarations&&getDeclarationOfKind(p,308),m=u&&d(u);return getExportInfoMap(e,a,o,s,c).search(e.path,i,e=>e===n,e=>{const n=l(e[0].isFromPackageJson);if(n.getMergedSymbol(skipAlias(e[0].symbol,n))===t&&(m||e.some(e=>n.getMergedSymbol(e.moduleSymbol)===r||e.symbol.parent===r)))return e})}function getSingleExportInfoForSymbol(e,t,n,r,i){var o,a;const s=getInfoWithChecker(r.getTypeChecker(),!1);if(s)return s;const c=null==(a=null==(o=i.getPackageJsonAutoImportProvider)?void 0:o.call(i))?void 0:a.getTypeChecker();return h.checkDefined(c&&getInfoWithChecker(c,!0),"Could not find symbol in specified module for code actions");function getInfoWithChecker(r,i){const o=getDefaultLikeExportInfo(n,r);if(o&&skipAlias(o.symbol,r)===e)return{symbol:o.symbol,moduleSymbol:n,moduleFileName:void 0,exportKind:o.exportKind,targetFlags:skipAlias(e,r).flags,isFromPackageJson:i};const a=r.tryGetMemberInModuleExportsAndProperties(t,n);return a&&skipAlias(a,r)===e?{symbol:a,moduleSymbol:n,moduleFileName:void 0,exportKind:0,targetFlags:skipAlias(e,r).flags,isFromPackageJson:i}:void 0}}function getImportFixes(e,t,n,r,i,o,a,s,c=(isFullSourceFile(o)?createExistingImportMap(o,i):void 0),d){const p=i.getTypeChecker(),u=c?flatMap(e,c.getImportsForExportInfo):l,m=void 0!==t&&function tryUseExistingNamespaceImport(e,t){return firstDefined(e,({declaration:e,importKind:n})=>{var r;if(0!==n)return;const i=function getNamespaceLikeImportText(e){var t,n,r;switch(e.kind){case 261:return null==(t=tryCast(e.name,isIdentifier))?void 0:t.text;case 272:return e.name.text;case 352:case 273:return null==(r=tryCast(null==(n=e.importClause)?void 0:n.namedBindings,isNamespaceImport))?void 0:r.name.text;default:return h.assertNever(e)}}(e),o=i&&(null==(r=tryGetModuleSpecifierFromDeclaration(e))?void 0:r.text);return o?{kind:0,namespacePrefix:i,usagePosition:t,moduleSpecifierKind:void 0,moduleSpecifier:o}:void 0})}(u,t),_=function tryAddToExistingImport(e,t,n,r){let i;for(const t of e){const e=getAddToExistingImportFix(t);if(!e)continue;const n=isTypeOnlyImportDeclaration(e.importClauseOrBindingPattern);if(4!==e.addAsTypeOnly&&n||4===e.addAsTypeOnly&&!n)return e;i??(i=e)}return i;function getAddToExistingImportFix({declaration:e,importKind:i,symbol:o,targetFlags:a}){if(3===i||2===i||272===e.kind)return;if(261===e.kind)return 0!==i&&1!==i||207!==e.name.kind?void 0:{kind:2,importClauseOrBindingPattern:e.name,importKind:i,moduleSpecifierKind:void 0,moduleSpecifier:e.initializer.arguments[0].text,addAsTypeOnly:4};const{importClause:s}=e;if(!s||!isStringLiteralLike(e.moduleSpecifier))return;const{name:c,namedBindings:l}=s;if(s.isTypeOnly&&(0!==i||!l))return;const d=getAddAsTypeOnly(t,!1,o,a,n,r);return 1===i&&(c||2===d&&l)||0===i&&275===(null==l?void 0:l.kind)?void 0:{kind:2,importClauseOrBindingPattern:s,importKind:i,moduleSpecifierKind:void 0,moduleSpecifier:e.moduleSpecifier.text,addAsTypeOnly:d}}}(u,n,p,i.getCompilerOptions());if(_)return{computedWithoutCacheCount:0,fixes:[...m?[m]:l,_]};const{fixes:f,computedWithoutCacheCount:g=0}=function getFixesForAddImport(e,t,n,r,i,o,a,s,c,l){const d=firstDefined(t,e=>function newImportInfoFromExistingSpecifier({declaration:e,importKind:t,symbol:n,targetFlags:r},i,o,a,s){var c;const l=null==(c=tryGetModuleSpecifierFromDeclaration(e))?void 0:c.text;if(l){return{kind:3,moduleSpecifierKind:void 0,moduleSpecifier:l,importKind:t,addAsTypeOnly:o?4:getAddAsTypeOnly(i,!0,n,r,a,s),useRequire:o}}}(e,o,a,n.getTypeChecker(),n.getCompilerOptions()));return d?{fixes:[d]}:function getNewImportFixes(e,t,n,r,i,o,a,s,c){const l=hasJSFileExtension(t.fileName),d=e.getCompilerOptions(),p=createModuleSpecifierResolutionHost(e,a),u=createGetChecker(e,a),m=moduleResolutionUsesNodeModules(qn(d)),_=c?e=>Wo.tryGetModuleSpecifiersFromCache(e.moduleSymbol,t,p,s):(e,n)=>Wo.getModuleSpecifiersWithCacheInfo(e.moduleSymbol,n,d,t,p,s,void 0,!0);let f=0;const g=flatMap(o,(o,a)=>{const s=u(o.isFromPackageJson),{computedWithoutCache:c,moduleSpecifiers:p,kind:g}=_(o,s)??{},y=!!(111551&o.targetFlags),h=getAddAsTypeOnly(r,!0,o.symbol,o.targetFlags,s,d);return f+=c?1:0,mapDefined(p,r=>{if(m&&pathContainsNodeModules(r))return;if(!y&&l&&void 0!==n)return{kind:1,moduleSpecifierKind:g,moduleSpecifier:r,usagePosition:n,exportInfo:o,isReExport:a>0};const c=getImportKind(t,o.exportKind,e);let p;if(void 0!==n&&3===c&&0===o.exportKind){const e=s.resolveExternalModuleSymbol(o.moduleSymbol);let t;e!==o.moduleSymbol&&(t=forEachNameOfDefaultExport(e,s,zn(d),identity)),t||(t=moduleSymbolToValidIdentifier(o.moduleSymbol,zn(d),!1)),p={namespacePrefix:t,usagePosition:n}}return{kind:3,moduleSpecifierKind:g,moduleSpecifier:r,importKind:c,useRequire:i,addAsTypeOnly:h,exportInfo:o,isReExport:a>0,qualification:p}})});return{computedWithoutCacheCount:f,fixes:g}}(n,r,i,o,a,e,s,c,l)}(e,u,i,o,t,n,r,a,s,d);return{computedWithoutCacheCount:g,fixes:[...m?[m]:l,...f]}}function getAddAsTypeOnly(e,t,n,r,i,o){return e?!n||!o.verbatimModuleSyntax||111551&r&&!i.getTypeOnlyAliasDeclaration(n)?1:2:4}function createExistingImportMap(e,t){const n=t.getTypeChecker();let r;for(const t of e.imports){const e=importFromModuleSpecifier(t);if(isVariableDeclarationInitializedToRequire(e.parent)){const i=n.resolveExternalModuleName(t);i&&(r||(r=createMultiMap())).add(getSymbolId(i),e.parent)}else if(273===e.kind||272===e.kind||352===e.kind){const i=n.getSymbolAtLocation(t);i&&(r||(r=createMultiMap())).add(getSymbolId(i),e)}}return{getImportsForExportInfo:({moduleSymbol:n,exportKind:i,targetFlags:o,symbol:a})=>{const s=null==r?void 0:r.get(getSymbolId(n));if(!s)return l;if(isSourceFileJS(e)&&!(111551&o)&&!every(s,isJSDocImportTag))return l;const c=getImportKind(e,i,t);return s.map(e=>({declaration:e,importKind:c,symbol:a,targetFlags:o}))}}}function shouldUseRequire(e,t){if(!hasJSFileExtension(e.fileName))return!1;if(e.commonJsModuleIndicator&&!e.externalModuleIndicator)return!0;if(e.externalModuleIndicator&&!e.commonJsModuleIndicator)return!1;const n=t.getCompilerOptions();if(n.configFile)return Vn(n)<5;if(1===getImpliedNodeFormatForEmit(e,t))return!0;if(99===getImpliedNodeFormatForEmit(e,t))return!1;for(const n of t.getSourceFiles())if(n!==e&&isSourceFileJS(n)&&!t.isSourceFileFromExternalLibrary(n)){if(n.commonJsModuleIndicator&&!n.externalModuleIndicator)return!0;if(n.externalModuleIndicator&&!n.commonJsModuleIndicator)return!1}return!0}function createGetChecker(e,t){return memoizeOne(n=>n?t.getPackageJsonAutoImportProvider().getTypeChecker():e.getTypeChecker())}function getFixInfos(e,t,n,r){const i=getTokenAtPosition(e.sourceFile,n);let o;if(t===Ot._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)o=function getFixesInfoForUMDImport({sourceFile:e,program:t,host:n,preferences:r},i){const o=t.getTypeChecker(),a=function getUmdSymbol(e,t){const n=isIdentifier(e)?t.getSymbolAtLocation(e):void 0;if(isUMDExportSymbol(n))return n;const{parent:r}=e;if(isJsxOpeningLikeElement(r)&&r.tagName===e||isJsxOpeningFragment(r)){const n=t.resolveName(t.getJsxNamespace(r),isJsxOpeningLikeElement(r)?e:r,111551,!1);if(isUMDExportSymbol(n))return n}return}(i,o);if(!a)return;const s=o.getAliasedSymbol(a),c=a.name,l=[{symbol:a,moduleSymbol:s,moduleFileName:void 0,exportKind:3,targetFlags:s.flags,isFromPackageJson:!1}],d=shouldUseRequire(e,t);return getImportFixes(l,void 0,!1,d,t,e,n,r).fixes.map(e=>{var t;return{fix:e,symbolName:c,errorIdentifierText:null==(t=tryCast(i,isIdentifier))?void 0:t.text}})}(e,i);else{if(!isIdentifier(i))return;if(t===Ot._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code){const t=single(getSymbolNamesToImport(e.sourceFile,e.program.getTypeChecker(),i,e.program.getCompilerOptions())),n=getTypeOnlyPromotionFix(e.sourceFile,i,t,e.program);return n&&[{fix:n,symbolName:t,errorIdentifierText:i.text}]}o=getFixesInfoForNonUMDImport(e,i,r)}const a=createPackageJsonImportFilter(e.sourceFile,e.preferences,e.host);return o&&sortFixInfo(o,e.sourceFile,e.program,a,e.host,e.preferences)}function sortFixInfo(e,t,n,r,i,o){const _toPath=e=>toPath(e,i.getCurrentDirectory(),hostGetCanonicalFileName(i));return toSorted(e,(e,i)=>compareBooleans(!!e.isJsxNamespaceFix,!!i.isJsxNamespaceFix)||compareValues(e.fix.kind,i.fix.kind)||compareModuleSpecifiers(e.fix,i.fix,t,n,o,r.allowsImportingSpecifier,_toPath))}function getBestFix(e,t,n,r,i,o){if(some(e))return 0===e[0].kind||2===e[0].kind?e[0]:e.reduce((e,a)=>-1===compareModuleSpecifiers(a,e,t,n,o,r.allowsImportingSpecifier,e=>toPath(e,i.getCurrentDirectory(),hostGetCanonicalFileName(i)))?a:e)}function compareModuleSpecifiers(e,t,n,r,i,o,a){return 0!==e.kind&&0!==t.kind?compareBooleans("node_modules"!==t.moduleSpecifierKind||o(t.moduleSpecifier),"node_modules"!==e.moduleSpecifierKind||o(e.moduleSpecifier))||function compareModuleSpecifierRelativity(e,t,n){if("non-relative"===n.importModuleSpecifierPreference||"project-relative"===n.importModuleSpecifierPreference)return compareBooleans("relative"===e.moduleSpecifierKind,"relative"===t.moduleSpecifierKind);return 0}(e,t,i)||function compareNodeCoreModuleSpecifiers(e,t,n,r){return startsWith(e,"node:")&&!startsWith(t,"node:")?shouldUseUriStyleNodeCoreModules(n,r)?-1:1:startsWith(t,"node:")&&!startsWith(e,"node:")?shouldUseUriStyleNodeCoreModules(n,r)?1:-1:0}(e.moduleSpecifier,t.moduleSpecifier,n,r)||compareBooleans(isFixPossiblyReExportingImportingFile(e,n.path,a),isFixPossiblyReExportingImportingFile(t,n.path,a))||compareNumberOfDirectorySeparators(e.moduleSpecifier,t.moduleSpecifier):0}function isFixPossiblyReExportingImportingFile(e,t,n){var r;if(e.isReExport&&(null==(r=e.exportInfo)?void 0:r.moduleFileName)&&function isIndexFileName(e){return"index"===getBaseFileName(e,[".js",".jsx",".d.ts",".ts",".tsx"],!0)}(e.exportInfo.moduleFileName)){return startsWith(t,n(getDirectoryPath(e.exportInfo.moduleFileName)))}return!1}function getImportKind(e,t,n,r){if(n.getCompilerOptions().verbatimModuleSyntax&&1===function getEmitModuleFormatOfFile(e,t){return isFullSourceFile(e)?t.getEmitModuleFormatOfFile(e):getEmitModuleFormatOfFileWorker(e,t.getCompilerOptions())}(e,n))return 3;switch(t){case 0:return 0;case 1:return 1;case 2:return function getExportEqualsImportKind(e,t,n){const r=$n(t),i=hasJSFileExtension(e.fileName);if(!i&&Vn(t)>=5)return r?1:2;if(i)return e.externalModuleIndicator||n?r?1:2:3;for(const t of e.statements??l)if(isImportEqualsDeclaration(t)&&!nodeIsMissing(t.moduleReference))return 3;return r?1:3}(e,n.getCompilerOptions(),!!r);case 3:return function getUmdImportKind(e,t,n){if($n(t.getCompilerOptions()))return 1;const r=Vn(t.getCompilerOptions());switch(r){case 2:case 1:case 3:return hasJSFileExtension(e.fileName)&&(e.externalModuleIndicator||n)?2:3;case 4:case 5:case 6:case 7:case 99:case 0:case 200:return 2;case 100:case 101:case 102:case 199:return 99===getImpliedNodeFormatForEmit(e,t)?2:3;default:return h.assertNever(r,`Unexpected moduleKind ${r}`)}}(e,n,!!r);case 4:return 2;default:return h.assertNever(t)}}function getFixesInfoForNonUMDImport({sourceFile:e,program:t,cancellationToken:n,host:r,preferences:i},o,a){const s=t.getTypeChecker(),c=t.getCompilerOptions();return flatMap(getSymbolNamesToImport(e,s,o,c),s=>{if("default"===s)return;const c=isValidTypeOnlyAliasUseSite(o),l=shouldUseRequire(e,t),d=function getExportInfos(e,t,n,r,i,o,a,s,c){var l;const d=createMultiMap(),p=createPackageJsonImportFilter(i,c,s),u=null==(l=s.getModuleSpecifierCache)?void 0:l.call(s),m=memoizeOne(e=>createModuleSpecifierResolutionHost(e?s.getPackageJsonAutoImportProvider():o,s));function addSymbol(e,t,n,r,o,a){const s=m(a);if(isImportable(o,i,t,e,c,p,s,u)){const i=o.getTypeChecker();d.add(getUniqueSymbolId(n,i).toString(),{symbol:n,moduleSymbol:e,moduleFileName:null==t?void 0:t.fileName,exportKind:r,targetFlags:skipAlias(n,i).flags,isFromPackageJson:a})}}return forEachExternalModuleToImportFrom(o,s,c,a,(i,o,a,s)=>{const c=a.getTypeChecker();r.throwIfCancellationRequested();const l=a.getCompilerOptions(),d=getDefaultLikeExportInfo(i,c);d&&symbolFlagsHaveMeaning(c.getSymbolFlags(d.symbol),n)&&forEachNameOfDefaultExport(d.symbol,c,zn(l),(n,r)=>(t?r??n:n)===e)&&addSymbol(i,o,d.symbol,d.exportKind,a,s);const p=c.tryGetMemberInModuleExportsAndProperties(e,i);p&&symbolFlagsHaveMeaning(c.getSymbolFlags(p),n)&&addSymbol(i,o,p,0,a,s)}),d}(s,isJSXTagName(o),getMeaningFromLocation(o),n,e,t,a,r,i);return arrayFrom(flatMapIterator(d.values(),n=>getImportFixes(n,o.getStart(e),c,l,t,e,r,i).fixes),e=>({fix:e,symbolName:s,errorIdentifierText:o.text,isJsxNamespaceFix:s!==o.text}))})}function getTypeOnlyPromotionFix(e,t,n,r){const i=r.getTypeChecker(),o=i.resolveName(n,t,111551,!0);if(!o)return;const a=i.getTypeOnlyAliasDeclaration(o);return a&&getSourceFileOfNode(a)===e?{kind:4,typeOnlyAliasDeclaration:a}:void 0}function getSymbolNamesToImport(e,t,n,r){const i=n.parent;if((isJsxOpeningLikeElement(i)||isJsxClosingElement(i))&&i.tagName===n&&jsxModeNeedsExplicitImport(r.jsx)){const r=t.getJsxNamespace(e);if(function needsJsxNamespaceFix(e,t,n){if(isIntrinsicJsxName(t.text))return!0;const r=n.resolveName(e,t,111551,!0);return!r||some(r.declarations,isTypeOnlyImportOrExportDeclaration)&&!(111551&r.flags)}(r,n,t)){return!isIntrinsicJsxName(n.text)&&!t.resolveName(n.text,n,111551,!1)?[n.text,r]:[r]}}return[n.text]}function codeActionForFix(e,t,n,r,i,o,a){let s;const c=$m.ChangeTracker.with(e,e=>{s=function codeActionForFixWorker(e,t,n,r,i,o,a){const s=getQuotePreference(t,a);switch(r.kind){case 0:return addNamespaceQualifier(e,t,r),[Ot.Change_0_to_1,n,`${r.namespacePrefix}.${n}`];case 1:return addImportType(e,t,r,s),[Ot.Change_0_to_1,n,getImportTypePrefix(r.moduleSpecifier,s)+n];case 2:{const{importClauseOrBindingPattern:o,importKind:s,addAsTypeOnly:c,moduleSpecifier:d}=r;doAddExistingFix(e,t,o,1===s?{name:n,addAsTypeOnly:c}:void 0,0===s?[{name:n,addAsTypeOnly:c}]:l,void 0,a);const p=stripQuotes(d);return i?[Ot.Import_0_from_1,n,p]:[Ot.Update_import_from_0,p]}case 3:{const{importKind:c,moduleSpecifier:l,addAsTypeOnly:d,useRequire:p,qualification:u}=r;return insertImports(e,t,(p?getNewRequires:getNewImports)(l,s,1===c?{name:n,addAsTypeOnly:d}:void 0,0===c?[{name:n,addAsTypeOnly:d}]:void 0,2===c||3===c?{importKind:c,name:(null==u?void 0:u.namespacePrefix)||n,addAsTypeOnly:d}:void 0,o.getCompilerOptions(),a),!0,a),u&&addNamespaceQualifier(e,t,u),i?[Ot.Import_0_from_1,n,l]:[Ot.Add_import_from_0,l]}case 4:{const{typeOnlyAliasDeclaration:i}=r,s=function promoteFromTypeOnly(e,t,n,r,i){const o=n.getCompilerOptions(),a=o.verbatimModuleSyntax;switch(t.kind){case 277:if(t.isTypeOnly){if(t.parent.elements.length>1){const n=Wr.updateImportSpecifier(t,!1,t.propertyName,t.name),{specifierComparer:o}=Bm.getNamedImportSpecifierComparerWithDetection(t.parent.parent.parent,i,r),a=Bm.getImportSpecifierInsertionIndex(t.parent.elements,n,o);if(a!==t.parent.elements.indexOf(t))return e.delete(r,t),e.insertImportSpecifierAtIndex(r,n,t.parent,a),t}return e.deleteRange(r,{pos:getTokenPosOfNode(t.getFirstToken()),end:getTokenPosOfNode(t.propertyName??t.name)}),t}return h.assert(t.parent.parent.isTypeOnly),promoteImportClause(t.parent.parent),t.parent.parent;case 274:return promoteImportClause(t),t;case 275:return promoteImportClause(t.parent),t.parent;case 272:return e.deleteRange(r,t.getChildAt(1)),t;default:h.failBadSyntaxKind(t)}function promoteImportClause(s){var c;if(e.delete(r,getTypeKeywordOfTypeOnlyImport(s,r)),!o.allowImportingTsExtensions){const t=tryGetModuleSpecifierFromDeclaration(s.parent),i=t&&(null==(c=n.getResolvedModuleFromModuleSpecifier(t,r))?void 0:c.resolvedModule);if(null==i?void 0:i.resolvedUsingTsExtension){const n=changeAnyExtension(t.text,getOutputExtension(t.text,o));e.replaceNode(r,t,Wr.createStringLiteral(n))}}if(a){const n=tryCast(s.namedBindings,isNamedImports);if(n&&n.elements.length>1){!1!==Bm.getNamedImportSpecifierComparerWithDetection(s.parent,i,r).isSorted&&277===t.kind&&0!==n.elements.indexOf(t)&&(e.delete(r,t),e.insertImportSpecifierAtIndex(r,t,n,0));for(const i of n.elements)i===t||i.isTypeOnly||e.insertModifierBefore(r,156,i)}}}}(e,i,o,t,a);return 277===s.kind?[Ot.Remove_type_from_import_of_0_from_1,n,getModuleSpecifierText(s.parent.parent)]:[Ot.Remove_type_from_import_declaration_from_0,getModuleSpecifierText(s)]}default:return h.assertNever(r,`Unexpected fix kind ${r.kind}`)}}(e,t,n,r,i,o,a)});return createCodeFixAction(Ud,c,s,zd,Ot.Add_all_missing_imports)}function getModuleSpecifierText(e){var t,n;return 272===e.kind?(null==(n=tryCast(null==(t=tryCast(e.moduleReference,isExternalModuleReference))?void 0:t.expression,isStringLiteralLike))?void 0:n.text)||e.moduleReference.getText():cast(e.parent.moduleSpecifier,isStringLiteral).text}function doAddExistingFix(e,t,n,r,i,o,a){var s;if(207===n.kind){if(o&&n.elements.some(e=>o.has(e)))return void e.replaceNode(t,n,Wr.createObjectBindingPattern([...n.elements.filter(e=>!o.has(e)),...r?[Wr.createBindingElement(void 0,"default",r.name)]:l,...i.map(e=>Wr.createBindingElement(void 0,e.propertyName,e.name))]));r&&addElementToBindingPattern(n,r.name,"default");for(const e of i)addElementToBindingPattern(n,e.name,e.propertyName);return}const c=n.isTypeOnly&&some([r,...i],e=>4===(null==e?void 0:e.addAsTypeOnly)),d=n.namedBindings&&(null==(s=tryCast(n.namedBindings,isNamedImports))?void 0:s.elements);if(r&&(h.assert(!n.name,"Cannot add a default import to an import clause that already has one"),e.insertNodeAt(t,n.getStart(t),Wr.createIdentifier(r.name),{suffix:", "})),i.length){const{specifierComparer:r,isSorted:s}=Bm.getNamedImportSpecifierComparerWithDetection(n.parent,a,t),l=toSorted(i.map(e=>Wr.createImportSpecifier((!n.isTypeOnly||c)&&shouldUseTypeOnly(e,a),void 0===e.propertyName?void 0:Wr.createIdentifier(e.propertyName),Wr.createIdentifier(e.name))),r);if(o)e.replaceNode(t,n.namedBindings,Wr.updateNamedImports(n.namedBindings,toSorted([...d.filter(e=>!o.has(e)),...l],r)));else if((null==d?void 0:d.length)&&!1!==s){const i=c&&d?Wr.updateNamedImports(n.namedBindings,sameMap(d,e=>Wr.updateImportSpecifier(e,!0,e.propertyName,e.name))).elements:d;for(const o of l){const a=Bm.getImportSpecifierInsertionIndex(i,o,r);e.insertImportSpecifierAtIndex(t,o,n.namedBindings,a)}}else if(null==d?void 0:d.length)for(const n of l)e.insertNodeInListAfter(t,last(d),n,d);else if(l.length){const r=Wr.createNamedImports(l);n.namedBindings?e.replaceNode(t,n.namedBindings,r):e.insertNodeAfter(t,h.checkDefined(n.name,"Import clause must have either named imports or a default import"),r)}}if(c&&(e.delete(t,getTypeKeywordOfTypeOnlyImport(n,t)),d))for(const n of d)e.insertModifierBefore(t,156,n);function addElementToBindingPattern(n,r,i){const o=Wr.createBindingElement(void 0,i,r);n.elements.length?e.insertNodeInListAfter(t,last(n.elements),o):e.replaceNode(t,n,Wr.createObjectBindingPattern([o]))}}function addNamespaceQualifier(e,t,{namespacePrefix:n,usagePosition:r}){e.insertText(t,r,n+".")}function addImportType(e,t,{moduleSpecifier:n,usagePosition:r},i){e.insertText(t,r,getImportTypePrefix(n,i))}function getImportTypePrefix(e,t){const n=getQuoteFromPreference(t);return`import(${n}${e}${n}).`}function needsTypeOnly({addAsTypeOnly:e}){return 2===e}function shouldUseTypeOnly(e,t){return needsTypeOnly(e)||!!t.preferTypeOnlyAutoImports&&4!==e.addAsTypeOnly}function getNewImports(e,t,n,r,i,o,a){const s=makeStringLiteral(e,t);let c;if(void 0!==n||(null==r?void 0:r.length)){const i=(!n||needsTypeOnly(n))&&every(r,needsTypeOnly)||(o.verbatimModuleSyntax||a.preferTypeOnlyAutoImports)&&4!==(null==n?void 0:n.addAsTypeOnly)&&!some(r,e=>4===e.addAsTypeOnly);c=combine(c,makeImport(n&&Wr.createIdentifier(n.name),null==r?void 0:r.map(e=>Wr.createImportSpecifier(!i&&shouldUseTypeOnly(e,a),void 0===e.propertyName?void 0:Wr.createIdentifier(e.propertyName),Wr.createIdentifier(e.name))),e,t,i))}if(i){c=combine(c,3===i.importKind?Wr.createImportEqualsDeclaration(void 0,shouldUseTypeOnly(i,a),Wr.createIdentifier(i.name),Wr.createExternalModuleReference(s)):Wr.createImportDeclaration(void 0,Wr.createImportClause(shouldUseTypeOnly(i,a)?156:void 0,void 0,Wr.createNamespaceImport(Wr.createIdentifier(i.name))),s,void 0))}return h.checkDefined(c)}function getNewRequires(e,t,n,r,i){const o=makeStringLiteral(e,t);let a;if(n||(null==r?void 0:r.length)){const e=(null==r?void 0:r.map(({name:e,propertyName:t})=>Wr.createBindingElement(void 0,t,e)))||[];n&&e.unshift(Wr.createBindingElement(void 0,"default",n.name));a=combine(a,createConstEqualsRequireDeclaration(Wr.createObjectBindingPattern(e),o))}if(i){a=combine(a,createConstEqualsRequireDeclaration(i.name,o))}return h.checkDefined(a)}function createConstEqualsRequireDeclaration(e,t){return Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration("string"==typeof e?Wr.createIdentifier(e):e,void 0,void 0,Wr.createCallExpression(Wr.createIdentifier("require"),void 0,[t]))],2))}function symbolFlagsHaveMeaning(e,t){return 7===t||(1&t?!!(111551&e):2&t?!!(788968&e):!!(4&t)&&!!(1920&e))}function getImpliedNodeFormatForEmit(e,t){return isFullSourceFile(e)?t.getImpliedNodeFormatForEmit(e):getImpliedNodeFormatForEmitWorker(e,t.getCompilerOptions())}registerCodeFix({errorCodes:Vd,getCodeActions(e){const{errorCode:t,preferences:n,sourceFile:r,span:i,program:o}=e,a=getFixInfos(e,t,i.start,!0);if(a)return a.map(({fix:t,symbolName:i,errorIdentifierText:a})=>codeActionForFix(e,r,i,t,i!==a,o,n))},fixIds:[zd],getAllCodeActions:e=>{const{sourceFile:t,program:n,preferences:r,host:i,cancellationToken:o}=e,a=createImportAdderWorker(t,n,!0,r,i,o);return eachDiagnostic(e,Vd,t=>a.addImportFromDiagnostic(t,e)),createCombinedCodeActions($m.ChangeTracker.with(e,a.writeFixes))}});var qd="addMissingConstraint",Hd=[Ot.Type_0_is_not_comparable_to_type_1.code,Ot.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,Ot.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,Ot.Type_0_is_not_assignable_to_type_1.code,Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,Ot.Property_0_is_incompatible_with_index_signature.code,Ot.Property_0_in_type_1_is_not_assignable_to_type_2.code,Ot.Type_0_does_not_satisfy_the_constraint_1.code];function getInfo6(e,t,n){const r=find(e.getSemanticDiagnostics(t),e=>e.start===n.start&&e.length===n.length);if(void 0===r||void 0===r.relatedInformation)return;const i=find(r.relatedInformation,e=>e.code===Ot.This_type_parameter_might_need_an_extends_0_constraint.code);if(void 0===i||void 0===i.file||void 0===i.start||void 0===i.length)return;let o=findAncestorMatchingSpan(i.file,createTextSpan(i.start,i.length));if(void 0!==o&&(isIdentifier(o)&&isTypeParameterDeclaration(o.parent)&&(o=o.parent),isTypeParameterDeclaration(o))){if(isMappedTypeNode(o.parent))return;const r=getTokenAtPosition(t,n.start),a=function tryGetConstraintType(e,t){if(isTypeNode(t.parent))return e.getTypeArgumentConstraint(t.parent);const n=isExpression(t)?e.getContextualType(t):void 0;return n||e.getTypeAtLocation(t)}(e.getTypeChecker(),r)||function tryGetConstraintFromDiagnosticMessage(e){const[,t]=flattenDiagnosticMessageText(e,"\n",0).match(/`extends (.*)`/)||[];return t}(i.messageText);return{constraint:a,declaration:o,token:r}}}function addMissingConstraint(e,t,n,r,i,o){const{declaration:a,constraint:s}=o,c=t.getTypeChecker();if(isString(s))e.insertText(i,a.name.end,` extends ${s}`);else{const o=zn(t.getCompilerOptions()),l=getNoopSymbolTrackerWithResolver({program:t,host:r}),d=createImportAdder(i,t,n,r),p=typeToAutoImportableTypeNode(c,d,s,void 0,o,void 0,void 0,l);p&&(e.replaceNode(i,a,Wr.updateTypeParameterDeclaration(a,void 0,a.name,p,a.default)),d.writeFixes(e))}}registerCodeFix({errorCodes:Hd,getCodeActions(e){const{sourceFile:t,span:n,program:r,preferences:i,host:o}=e,a=getInfo6(r,t,n);if(void 0===a)return;const s=$m.ChangeTracker.with(e,e=>addMissingConstraint(e,r,i,o,t,a));return[createCodeFixAction(qd,s,Ot.Add_extends_constraint,qd,Ot.Add_extends_constraint_to_all_type_parameters)]},fixIds:[qd],getAllCodeActions:e=>{const{program:t,preferences:n,host:r}=e,i=new Set;return createCombinedCodeActions($m.ChangeTracker.with(e,o=>{eachDiagnostic(e,Hd,e=>{const a=getInfo6(t,e.file,createTextSpan(e.start,e.length));if(a&&addToSeen(i,getNodeId(a.declaration)))return addMissingConstraint(o,t,n,r,e.file,a)})}))}});var Kd="fixOverrideModifier",Gd="fixAddOverrideModifier",$d="fixRemoveOverrideModifier",Qd=[Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code,Ot.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,Ot.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,Ot.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,Ot.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code,Ot.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code,Ot.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code],Xd={[Ot.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]:{descriptions:Ot.Add_override_modifier,fixId:Gd,fixAllDescriptions:Ot.Add_all_missing_override_modifiers},[Ot.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]:{descriptions:Ot.Add_override_modifier,fixId:Gd,fixAllDescriptions:Ot.Add_all_missing_override_modifiers},[Ot.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]:{descriptions:Ot.Remove_override_modifier,fixId:$d,fixAllDescriptions:Ot.Remove_all_unnecessary_override_modifiers},[Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code]:{descriptions:Ot.Remove_override_modifier,fixId:$d,fixAllDescriptions:Ot.Remove_override_modifier},[Ot.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]:{descriptions:Ot.Add_override_modifier,fixId:Gd,fixAllDescriptions:Ot.Add_all_missing_override_modifiers},[Ot.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]:{descriptions:Ot.Add_override_modifier,fixId:Gd,fixAllDescriptions:Ot.Add_all_missing_override_modifiers},[Ot.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]:{descriptions:Ot.Add_override_modifier,fixId:Gd,fixAllDescriptions:Ot.Remove_all_unnecessary_override_modifiers},[Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]:{descriptions:Ot.Remove_override_modifier,fixId:$d,fixAllDescriptions:Ot.Remove_all_unnecessary_override_modifiers},[Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code]:{descriptions:Ot.Remove_override_modifier,fixId:$d,fixAllDescriptions:Ot.Remove_all_unnecessary_override_modifiers}};function dispatchChanges(e,t,n,r){switch(n){case Ot.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:case Ot.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:case Ot.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:case Ot.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:case Ot.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:return function doAddOverrideModifierChange(e,t,n){const r=findContainerClassElementLike(t,n);if(isSourceFileJS(t))return void e.addJSDocTags(t,r,[Wr.createJSDocOverrideTag(Wr.createIdentifier("override"))]);const i=r.modifiers||l,o=find(i,isStaticModifier),a=find(i,isAbstractModifier),s=find(i,e=>isAccessibilityModifier(e.kind)),c=findLast(i,isDecorator),d=a?a.end:o?o.end:s?s.end:c?skipTrivia(t.text,c.end):r.getStart(t),p=s||o||a?{prefix:" "}:{suffix:" "};e.insertModifierAt(t,d,164,p)}(e,t.sourceFile,r);case Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:case Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code:case Ot.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:case Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code:return function doRemoveOverrideModifierChange(e,t,n){const r=findContainerClassElementLike(t,n);if(isSourceFileJS(t))return void e.filterJSDocTags(t,r,not(isJSDocOverrideTag));const i=find(r.modifiers,isOverrideModifier);h.assertIsDefined(i),e.deleteModifier(t,i)}(e,t.sourceFile,r);default:h.fail("Unexpected error code: "+n)}}function isClassElementLikeHasJSDoc(e){switch(e.kind){case 177:case 173:case 175:case 178:case 179:return!0;case 170:return isParameterPropertyDeclaration(e,e.parent);default:return!1}}function findContainerClassElementLike(e,t){const n=findAncestor(getTokenAtPosition(e,t),e=>isClassLike(e)?"quit":isClassElementLikeHasJSDoc(e));return h.assert(n&&isClassElementLikeHasJSDoc(n)),n}registerCodeFix({errorCodes:Qd,getCodeActions:function getCodeActionsToFixOverrideModifierIssues(e){const{errorCode:t,span:n}=e,r=Xd[t];if(!r)return l;const{descriptions:i,fixId:o,fixAllDescriptions:a}=r,s=$m.ChangeTracker.with(e,r=>dispatchChanges(r,e,t,n.start));return[createCodeFixActionMaybeFixAll(Kd,s,i,o,a)]},fixIds:[Kd,Gd,$d],getAllCodeActions:e=>codeFixAll(e,Qd,(t,n)=>{const{code:r,start:i}=n,o=Xd[r];o&&o.fixId===e.fixId&&dispatchChanges(t,e,r,i)})});var Yd="fixNoPropertyAccessFromIndexSignature",Zd=[Ot.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code];function doChange14(e,t,n,r){const i=getQuotePreference(t,r),o=Wr.createStringLiteral(n.name.text,0===i);e.replaceNode(t,n,isPropertyAccessChain(n)?Wr.createElementAccessChain(n.expression,n.questionDotToken,o):Wr.createElementAccessExpression(n.expression,o))}function getPropertyAccessExpression(e,t){return cast(getTokenAtPosition(e,t).parent,isPropertyAccessExpression)}registerCodeFix({errorCodes:Zd,fixIds:[Yd],getCodeActions(e){const{sourceFile:t,span:n,preferences:r}=e,i=getPropertyAccessExpression(t,n.start),o=$m.ChangeTracker.with(e,t=>doChange14(t,e.sourceFile,i,r));return[createCodeFixAction(Yd,o,[Ot.Use_element_access_for_0,i.name.text],Yd,Ot.Use_element_access_for_all_undeclared_properties)]},getAllCodeActions:e=>codeFixAll(e,Zd,(t,n)=>doChange14(t,n.file,getPropertyAccessExpression(n.file,n.start),e.preferences))});var ep="fixImplicitThis",tp=[Ot.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];function doChange15(e,t,n,r){const i=getTokenAtPosition(t,n);if(!isThis(i))return;const o=getThisContainer(i,!1,!1);if((isFunctionDeclaration(o)||isFunctionExpression(o))&&!isSourceFile(getThisContainer(o,!1,!1))){const n=h.checkDefined(findChildOfKind(o,100,t)),{name:i}=o,a=h.checkDefined(o.body);if(isFunctionExpression(o)){if(i&&vm.Core.isSymbolReferencedInFile(i,r,t,a))return;return e.delete(t,n),i&&e.delete(t,i),e.insertText(t,a.pos," =>"),[Ot.Convert_function_expression_0_to_arrow_function,i?i.text:Xs]}return e.replaceNode(t,n,Wr.createToken(87)),e.insertText(t,i.end," = "),e.insertText(t,a.pos," =>"),[Ot.Convert_function_declaration_0_to_arrow_function,i.text]}}registerCodeFix({errorCodes:tp,getCodeActions:function getCodeActionsToFixImplicitThis(e){const{sourceFile:t,program:n,span:r}=e;let i;const o=$m.ChangeTracker.with(e,e=>{i=doChange15(e,t,r.start,n.getTypeChecker())});return i?[createCodeFixAction(ep,o,i,ep,Ot.Fix_all_implicit_this_errors)]:l},fixIds:[ep],getAllCodeActions:e=>codeFixAll(e,tp,(t,n)=>{doChange15(t,n.file,n.start,e.program.getTypeChecker())})});var np="fixImportNonExportedMember",rp=[Ot.Module_0_declares_1_locally_but_it_is_not_exported.code];function getInfo7(e,t,n){var r,i;const o=getTokenAtPosition(e,t);if(isIdentifier(o)){const t=findAncestor(o,isImportDeclaration);if(void 0===t)return;const a=isStringLiteral(t.moduleSpecifier)?t.moduleSpecifier:void 0;if(void 0===a)return;const s=null==(r=n.getResolvedModuleFromModuleSpecifier(a,e))?void 0:r.resolvedModule;if(void 0===s)return;const c=n.getSourceFile(s.resolvedFileName);if(void 0===c||isSourceFileFromLibrary(n,c))return;const l=null==(i=tryCast(c.symbol.valueDeclaration,canHaveLocals))?void 0:i.locals;if(void 0===l)return;const d=l.get(o.escapedText);if(void 0===d)return;const p=function getNodeOfSymbol(e){if(void 0===e.valueDeclaration)return firstOrUndefined(e.declarations);const t=e.valueDeclaration,n=isVariableDeclaration(t)?tryCast(t.parent.parent,isVariableStatement):void 0;return n&&1===length(n.declarationList.declarations)?n:t}(d);if(void 0===p)return;return{exportName:{node:o,isTypeOnly:isTypeDeclaration(p)},node:p,moduleSourceFile:c,moduleSpecifier:a.text}}}function doChanges(e,t,n,r,i){length(r)&&(i?updateExport(e,t,n,i,r):createExport(e,t,n,r))}function tryGetExportDeclaration(e,t){return findLast(e.statements,e=>isExportDeclaration(e)&&(t&&e.isTypeOnly||!e.isTypeOnly))}function updateExport(e,t,n,r,i){const o=r.exportClause&&isNamedExports(r.exportClause)?r.exportClause.elements:Wr.createNodeArray([]),a=!(r.isTypeOnly||!Kn(t.getCompilerOptions())&&!find(o,e=>e.isTypeOnly));e.replaceNode(n,r,Wr.updateExportDeclaration(r,r.modifiers,r.isTypeOnly,Wr.createNamedExports(Wr.createNodeArray([...o,...createExportSpecifiers(i,a)],o.hasTrailingComma)),r.moduleSpecifier,r.attributes))}function createExport(e,t,n,r){e.insertNodeAtEndOfScope(n,n,Wr.createExportDeclaration(void 0,!1,Wr.createNamedExports(createExportSpecifiers(r,Kn(t.getCompilerOptions()))),void 0,void 0))}function createExportSpecifiers(e,t){return Wr.createNodeArray(map(e,e=>Wr.createExportSpecifier(t&&e.isTypeOnly,void 0,e.node)))}registerCodeFix({errorCodes:rp,fixIds:[np],getCodeActions(e){const{sourceFile:t,span:n,program:r}=e,i=getInfo7(t,n.start,r);if(void 0===i)return;const o=$m.ChangeTracker.with(e,e=>function doChange16(e,t,{exportName:n,node:r,moduleSourceFile:i}){const o=tryGetExportDeclaration(i,n.isTypeOnly);o?updateExport(e,t,i,o,[n]):canHaveExportModifier(r)?e.insertExportModifier(i,r):createExport(e,t,i,[n])}(e,r,i));return[createCodeFixAction(np,o,[Ot.Export_0_from_module_1,i.exportName.node.text,i.moduleSpecifier],np,Ot.Export_all_referenced_locals)]},getAllCodeActions(e){const{program:t}=e;return createCombinedCodeActions($m.ChangeTracker.with(e,n=>{const r=new Map;eachDiagnostic(e,rp,e=>{const i=getInfo7(e.file,e.start,t);if(void 0===i)return;const{exportName:o,node:a,moduleSourceFile:s}=i;if(void 0===tryGetExportDeclaration(s,o.isTypeOnly)&&canHaveExportModifier(a))n.insertExportModifier(s,a);else{const e=r.get(s)||{typeOnlyExports:[],exports:[]};o.isTypeOnly?e.typeOnlyExports.push(o):e.exports.push(o),r.set(s,e)}}),r.forEach((e,r)=>{const i=tryGetExportDeclaration(r,!0);i&&i.isTypeOnly?(doChanges(n,t,r,e.typeOnlyExports,i),doChanges(n,t,r,e.exports,tryGetExportDeclaration(r,!1))):doChanges(n,t,r,[...e.exports,...e.typeOnlyExports],i)})}))}});var ip="fixIncorrectNamedTupleSyntax";registerCodeFix({errorCodes:[Ot.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,Ot.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code],getCodeActions:function getCodeActionsToFixIncorrectNamedTupleSyntax(e){const{sourceFile:t,span:n}=e,r=function getNamedTupleMember(e,t){const n=getTokenAtPosition(e,t);return findAncestor(n,e=>203===e.kind)}(t,n.start),i=$m.ChangeTracker.with(e,e=>function doChange17(e,t,n){if(!n)return;let r=n.type,i=!1,o=!1;for(;191===r.kind||192===r.kind||197===r.kind;)191===r.kind?i=!0:192===r.kind&&(o=!0),r=r.type;const a=Wr.updateNamedTupleMember(n,n.dotDotDotToken||(o?Wr.createToken(26):void 0),n.name,n.questionToken||(i?Wr.createToken(58):void 0),r);if(a===n)return;e.replaceNode(t,n,a)}(e,t,r));return[createCodeFixAction(ip,i,Ot.Move_labeled_tuple_element_modifiers_to_labels,ip,Ot.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[ip]});var op="fixSpelling",ap=[Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,Ot.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,Ot.Cannot_find_name_0_Did_you_mean_1.code,Ot.Could_not_find_name_0_Did_you_mean_1.code,Ot.Cannot_find_namespace_0_Did_you_mean_1.code,Ot.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,Ot.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,Ot._0_has_no_exported_member_named_1_Did_you_mean_2.code,Ot.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,Ot.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,Ot.No_overload_matches_this_call.code,Ot.Type_0_is_not_assignable_to_type_1.code];function getInfo8(e,t,n,r){const i=getTokenAtPosition(e,t),o=i.parent;if((r===Ot.No_overload_matches_this_call.code||r===Ot.Type_0_is_not_assignable_to_type_1.code)&&!isJsxAttribute(o))return;const a=n.program.getTypeChecker();let s;if(isPropertyAccessExpression(o)&&o.name===i){h.assert(isMemberName(i),"Expected an identifier for spelling (property access)");let e=a.getTypeAtLocation(o.expression);64&o.flags&&(e=a.getNonNullableType(e)),s=a.getSuggestedSymbolForNonexistentProperty(i,e)}else if(isBinaryExpression(o)&&103===o.operatorToken.kind&&o.left===i&&isPrivateIdentifier(i)){const e=a.getTypeAtLocation(o.right);s=a.getSuggestedSymbolForNonexistentProperty(i,e)}else if(isQualifiedName(o)&&o.right===i){const e=a.getSymbolAtLocation(o.left);e&&1536&e.flags&&(s=a.getSuggestedSymbolForNonexistentModule(o.right,e))}else if(isImportSpecifier(o)&&o.name===i){h.assertNode(i,isIdentifier,"Expected an identifier for spelling (import)");const t=function getResolvedSourceFileFromImportDeclaration(e,t,n){var r;if(!t||!isStringLiteralLike(t.moduleSpecifier))return;const i=null==(r=e.program.getResolvedModuleFromModuleSpecifier(t.moduleSpecifier,n))?void 0:r.resolvedModule;return i?e.program.getSourceFile(i.resolvedFileName):void 0}(n,findAncestor(i,isImportDeclaration),e);t&&t.symbol&&(s=a.getSuggestedSymbolForNonexistentModule(i,t.symbol))}else if(isJsxAttribute(o)&&o.name===i){h.assertNode(i,isIdentifier,"Expected an identifier for JSX attribute");const e=findAncestor(i,isJsxOpeningLikeElement),t=a.getContextualTypeForArgumentAtIndex(e,0);s=a.getSuggestedSymbolForNonexistentJSXAttribute(i,t)}else if(hasOverrideModifier(o)&&isClassElement(o)&&o.name===i){const e=findAncestor(i,isClassLike),t=e?getEffectiveBaseTypeNode(e):void 0,n=t?a.getTypeAtLocation(t):void 0;n&&(s=a.getSuggestedSymbolForNonexistentClassMember(getTextOfNode(i),n))}else{const e=getMeaningFromLocation(i),t=getTextOfNode(i);h.assert(void 0!==t,"name should be defined"),s=a.getSuggestedSymbolForNonexistentSymbol(i,t,function convertSemanticMeaningToSymbolFlags(e){let t=0;4&e&&(t|=1920);2&e&&(t|=788968);1&e&&(t|=111551);return t}(e))}return void 0===s?void 0:{node:i,suggestedSymbol:s}}function doChange18(e,t,n,r,i){const o=symbolName(r);if(!isIdentifierText(o,i)&&isPropertyAccessExpression(n.parent)){const i=r.valueDeclaration;i&&isNamedDeclaration(i)&&isPrivateIdentifier(i.name)?e.replaceNode(t,n,Wr.createIdentifier(o)):e.replaceNode(t,n.parent,Wr.createElementAccessExpression(n.parent.expression,Wr.createStringLiteral(o)))}else e.replaceNode(t,n,Wr.createIdentifier(o))}registerCodeFix({errorCodes:ap,getCodeActions(e){const{sourceFile:t,errorCode:n}=e,r=getInfo8(t,e.span.start,e,n);if(!r)return;const{node:i,suggestedSymbol:o}=r,a=zn(e.host.getCompilationSettings());return[createCodeFixAction("spelling",$m.ChangeTracker.with(e,e=>doChange18(e,t,i,o,a)),[Ot.Change_spelling_to_0,symbolName(o)],op,Ot.Fix_all_detected_spelling_errors)]},fixIds:[op],getAllCodeActions:e=>codeFixAll(e,ap,(t,n)=>{const r=getInfo8(n.file,n.start,e,n.code),i=zn(e.host.getCompilationSettings());r&&doChange18(t,e.sourceFile,r.node,r.suggestedSymbol,i)})});var sp="returnValueCorrect",cp="fixAddReturnStatement",lp="fixRemoveBracesFromArrowFunctionBody",dp="fixWrapTheBlockWithParen",pp=[Ot.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code,Ot.Type_0_is_not_assignable_to_type_1.code,Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code];function createObjectTypeFromLabeledExpression(e,t,n){const r=e.createSymbol(4,t.escapedText);r.links.type=e.getTypeAtLocation(n);const i=createSymbolTable([r]);return e.createAnonymousType(void 0,i,[],[],[])}function getFixInfo(e,t,n,r){if(!t.body||!isBlock(t.body)||1!==length(t.body.statements))return;const i=first(t.body.statements);if(isExpressionStatement(i)&&checkFixedAssignableTo(e,t,e.getTypeAtLocation(i.expression),n,r))return{declaration:t,kind:0,expression:i.expression,statement:i,commentSource:i.expression};if(isLabeledStatement(i)&&isExpressionStatement(i.statement)){const o=Wr.createObjectLiteralExpression([Wr.createPropertyAssignment(i.label,i.statement.expression)]);if(checkFixedAssignableTo(e,t,createObjectTypeFromLabeledExpression(e,i.label,i.statement.expression),n,r))return isArrowFunction(t)?{declaration:t,kind:1,expression:o,statement:i,commentSource:i.statement.expression}:{declaration:t,kind:0,expression:o,statement:i,commentSource:i.statement.expression}}else if(isBlock(i)&&1===length(i.statements)){const o=first(i.statements);if(isLabeledStatement(o)&&isExpressionStatement(o.statement)){const a=Wr.createObjectLiteralExpression([Wr.createPropertyAssignment(o.label,o.statement.expression)]);if(checkFixedAssignableTo(e,t,createObjectTypeFromLabeledExpression(e,o.label,o.statement.expression),n,r))return{declaration:t,kind:0,expression:a,statement:i,commentSource:o}}}}function checkFixedAssignableTo(e,t,n,r,i){if(i){const r=e.getSignatureFromDeclaration(t);if(r){hasSyntacticModifier(t,1024)&&(n=e.createPromiseType(n));const i=e.createSignature(t,r.typeParameters,r.thisParameter,r.parameters,n,void 0,r.minArgumentCount,r.flags);n=e.createAnonymousType(void 0,createSymbolTable(),[i],[],[])}else n=e.getAnyType()}return e.isTypeAssignableTo(n,r)}function getInfo9(e,t,n,r){const i=getTokenAtPosition(t,n);if(!i.parent)return;const o=findAncestor(i.parent,isFunctionLikeDeclaration);switch(r){case Ot.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code:if(!(o&&o.body&&o.type&&rangeContainsRange(o.type,i)))return;return getFixInfo(e,o,e.getTypeFromTypeNode(o.type),!1);case Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!o||!isCallExpression(o.parent)||!o.body)return;const t=o.parent.arguments.indexOf(o);if(-1===t)return;const n=e.getContextualTypeForArgumentAtIndex(o.parent,t);if(!n)return;return getFixInfo(e,o,n,!0);case Ot.Type_0_is_not_assignable_to_type_1.code:if(!isDeclarationName(i)||!isVariableLike(i.parent)&&!isJsxAttribute(i.parent))return;const r=function getVariableLikeInitializer(e){switch(e.kind){case 261:case 170:case 209:case 173:case 304:return e.initializer;case 292:return e.initializer&&(isJsxExpression(e.initializer)?e.initializer.expression:void 0);case 305:case 172:case 307:case 349:case 342:return}}(i.parent);if(!r||!isFunctionLikeDeclaration(r)||!r.body)return;return getFixInfo(e,r,e.getTypeAtLocation(i.parent),!0)}}function addReturnStatement(e,t,n,r){suppressLeadingAndTrailingTrivia(n);const i=probablyUsesSemicolons(t);e.replaceNode(t,r,Wr.createReturnStatement(n),{leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.Exclude,suffix:i?";":void 0})}function removeBlockBodyBrace(e,t,n,r,i,o){const a=o||needsParentheses(r)?Wr.createParenthesizedExpression(r):r;suppressLeadingAndTrailingTrivia(i),copyComments(i,a),e.replaceNode(t,n.body,a)}function wrapBlockWithParen(e,t,n,r){e.replaceNode(t,n.body,Wr.createParenthesizedExpression(r))}function getActionForfixAddReturnStatement(e,t,n){const r=$m.ChangeTracker.with(e,r=>addReturnStatement(r,e.sourceFile,t,n));return createCodeFixAction(sp,r,Ot.Add_a_return_statement,cp,Ot.Add_all_missing_return_statement)}function getActionForfixWrapTheBlockWithParen(e,t,n){const r=$m.ChangeTracker.with(e,r=>wrapBlockWithParen(r,e.sourceFile,t,n));return createCodeFixAction(sp,r,Ot.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,dp,Ot.Wrap_all_object_literal_with_parentheses)}registerCodeFix({errorCodes:pp,fixIds:[cp,lp,dp],getCodeActions:function getCodeActionsToCorrectReturnValue(e){const{program:t,sourceFile:n,span:{start:r},errorCode:i}=e,o=getInfo9(t.getTypeChecker(),n,r,i);if(o)return 0===o.kind?append([getActionForfixAddReturnStatement(e,o.expression,o.statement)],isArrowFunction(o.declaration)?function getActionForFixRemoveBracesFromArrowFunctionBody(e,t,n,r){const i=$m.ChangeTracker.with(e,i=>removeBlockBodyBrace(i,e.sourceFile,t,n,r,!1));return createCodeFixAction(sp,i,Ot.Remove_braces_from_arrow_function_body,lp,Ot.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}(e,o.declaration,o.expression,o.commentSource):void 0):[getActionForfixWrapTheBlockWithParen(e,o.declaration,o.expression)]},getAllCodeActions:e=>codeFixAll(e,pp,(t,n)=>{const r=getInfo9(e.program.getTypeChecker(),n.file,n.start,n.code);if(r)switch(e.fixId){case cp:addReturnStatement(t,n.file,r.expression,r.statement);break;case lp:if(!isArrowFunction(r.declaration))return;removeBlockBodyBrace(t,n.file,r.declaration,r.expression,r.commentSource,!1);break;case dp:if(!isArrowFunction(r.declaration))return;wrapBlockWithParen(t,n.file,r.declaration,r.expression);break;default:h.fail(JSON.stringify(e.fixId))}})});var up="fixMissingMember",mp="fixMissingProperties",_p="fixMissingAttributes",fp="fixMissingFunctionDeclaration",gp=[Ot.Property_0_does_not_exist_on_type_1.code,Ot.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,Ot.Property_0_is_missing_in_type_1_but_required_in_type_2.code,Ot.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,Ot.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,Ot.Cannot_find_name_0.code,Ot.Type_0_does_not_satisfy_the_expected_type_1.code];function getInfo10(e,t,n,r,i){var o,a;const s=getTokenAtPosition(e,t),c=s.parent;if(n===Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code){if(19!==s.kind||!isObjectLiteralExpression(c)||!isCallExpression(c.parent))return;const e=findIndex(c.parent.arguments,e=>e===c);if(e<0)return;const t=r.getResolvedSignature(c.parent);if(!(t&&t.declaration&&t.parameters[e]))return;const n=t.parameters[e].valueDeclaration;if(!(n&&isParameter(n)&&isIdentifier(n.name)))return;const i=arrayFrom(r.getUnmatchedProperties(r.getTypeAtLocation(c),r.getParameterType(t,e).getNonNullableType(),!1,!1));if(!length(i))return;return{kind:3,token:n.name,identifier:n.name.text,properties:i,parentDeclaration:c}}if(19===s.kind||isSatisfiesExpression(c)||isReturnStatement(c)){const e=(isSatisfiesExpression(c)||isReturnStatement(c))&&c.expression?c.expression:c;if(isObjectLiteralExpression(e)){const t=isSatisfiesExpression(c)?r.getTypeFromTypeNode(c.type):r.getContextualType(e)||r.getTypeAtLocation(e),n=arrayFrom(r.getUnmatchedProperties(r.getTypeAtLocation(c),t.getNonNullableType(),!1,!1));if(!length(n))return;return{kind:3,token:c,identifier:void 0,properties:n,parentDeclaration:e,indentation:isReturnStatement(e.parent)||isYieldExpression(e.parent)?0:void 0}}}if(!isMemberName(s))return;if(isIdentifier(s)&&hasInitializer(c)&&c.initializer&&isObjectLiteralExpression(c.initializer)){const e=null==(o=r.getContextualType(s)||r.getTypeAtLocation(s))?void 0:o.getNonNullableType(),t=arrayFrom(r.getUnmatchedProperties(r.getTypeAtLocation(c.initializer),e,!1,!1));if(!length(t))return;return{kind:3,token:s,identifier:s.text,properties:t,parentDeclaration:c.initializer}}if(isIdentifier(s)&&isJsxOpeningLikeElement(s.parent)){const e=function getUnmatchedAttributes(e,t,n){const r=e.getContextualType(n.attributes);if(void 0===r)return l;const i=r.getProperties();if(!length(i))return l;const o=new Set;for(const t of n.attributes.properties)if(isJsxAttribute(t)&&o.add(getEscapedTextOfJsxAttributeName(t.name)),isJsxSpreadAttribute(t)){const n=e.getTypeAtLocation(t.expression);for(const e of n.getProperties())o.add(e.escapedName)}return filter(i,e=>isIdentifierText(e.name,t,1)&&!(16777216&e.flags||48&getCheckFlags(e)||o.has(e.escapedName)))}(r,zn(i.getCompilerOptions()),s.parent);if(!length(e))return;return{kind:4,token:s,attributes:e,parentDeclaration:s.parent}}if(isIdentifier(s)){const t=null==(a=r.getContextualType(s))?void 0:a.getNonNullableType();if(t&&16&getObjectFlags(t)){const n=firstOrUndefined(r.getSignaturesOfType(t,0));if(void 0===n)return;return{kind:5,token:s,signature:n,sourceFile:e,parentDeclaration:findScope(s)}}if(isCallExpression(c)&&c.expression===s)return{kind:2,token:s,call:c,sourceFile:e,modifierFlags:0,parentDeclaration:findScope(s)}}if(!isPropertyAccessExpression(c))return;const d=skipConstraint(r.getTypeAtLocation(c.expression)),p=d.symbol;if(!p||!p.declarations)return;if(isIdentifier(s)&&isCallExpression(c.parent)){const t=find(p.declarations,isModuleDeclaration),n=null==t?void 0:t.getSourceFile();if(t&&n&&!isSourceFileFromLibrary(i,n))return{kind:2,token:s,call:c.parent,sourceFile:n,modifierFlags:32,parentDeclaration:t};const r=find(p.declarations,isSourceFile);if(e.commonJsModuleIndicator)return;if(r&&!isSourceFileFromLibrary(i,r))return{kind:2,token:s,call:c.parent,sourceFile:r,modifierFlags:32,parentDeclaration:r}}const u=find(p.declarations,isClassLike);if(!u&&isPrivateIdentifier(s))return;const m=u||find(p.declarations,e=>isInterfaceDeclaration(e)||isTypeLiteralNode(e));if(m&&!isSourceFileFromLibrary(i,m.getSourceFile())){const e=!isTypeLiteralNode(m)&&(d.target||d)!==r.getDeclaredTypeOfSymbol(p);if(e&&(isPrivateIdentifier(s)||isInterfaceDeclaration(m)))return;const t=m.getSourceFile(),n=isTypeLiteralNode(m)?0:(e?256:0)|(startsWithUnderscore(s.text)?2:0),i=isSourceFileJS(t);return{kind:0,token:s,call:tryCast(c.parent,isCallExpression),modifierFlags:n,parentDeclaration:m,declSourceFile:t,isJSFile:i}}const _=find(p.declarations,isEnumDeclaration);return!_||1056&d.flags||isPrivateIdentifier(s)||isSourceFileFromLibrary(i,_.getSourceFile())?void 0:{kind:1,token:s,parentDeclaration:_}}function addMissingMemberInJs(e,t,n,r,i){const o=r.text;if(i){if(232===n.kind)return;const r=n.name.getText(),i=initializePropertyToUndefined(Wr.createIdentifier(r),o);e.insertNodeAfter(t,n,i)}else if(isPrivateIdentifier(r)){const r=Wr.createPropertyDeclaration(void 0,o,void 0,void 0,void 0),i=getNodeToInsertPropertyAfter(n);i?e.insertNodeAfter(t,i,r):e.insertMemberAtStart(t,n,r)}else{const r=getFirstConstructorWithBody(n);if(!r)return;const i=initializePropertyToUndefined(Wr.createThis(),o);e.insertNodeAtConstructorEnd(t,r,i)}}function initializePropertyToUndefined(e,t){return Wr.createExpressionStatement(Wr.createAssignment(Wr.createPropertyAccessExpression(e,t),createUndefined()))}function getTypeNode2(e,t,n){let r;if(227===n.parent.parent.kind){const i=n.parent.parent,o=n.parent===i.left?i.right:i.left,a=e.getWidenedType(e.getBaseTypeOfLiteralType(e.getTypeAtLocation(o)));r=e.typeToTypeNode(a,t,1,8)}else{const t=e.getContextualType(n.parent);r=t?e.typeToTypeNode(t,void 0,1,8):void 0}return r||Wr.createKeywordTypeNode(133)}function addPropertyDeclaration(e,t,n,r,i,o){const a=o?Wr.createNodeArray(Wr.createModifiersFromModifierFlags(o)):void 0,s=isClassLike(n)?Wr.createPropertyDeclaration(a,r,void 0,i,void 0):Wr.createPropertySignature(void 0,r,void 0,i),c=getNodeToInsertPropertyAfter(n);c?e.insertNodeAfter(t,c,s):e.insertMemberAtStart(t,n,s)}function getNodeToInsertPropertyAfter(e){let t;for(const n of e.members){if(!isPropertyDeclaration(n))break;t=n}return t}function addMethodDeclaration(e,t,n,r,i,o,a){const s=createImportAdder(a,e.program,e.preferences,e.host),c=createSignatureDeclarationFromCallExpression(isClassLike(o)?175:174,e,s,n,r,i,o),l=function tryGetContainingMethodDeclaration(e,t){if(isTypeLiteralNode(e))return;const n=findAncestor(t,e=>isMethodDeclaration(e)||isConstructorDeclaration(e));return n&&n.parent===e?n:void 0}(o,n);l?t.insertNodeAfter(a,l,c):t.insertMemberAtStart(a,o,c),s.writeFixes(t)}function addEnumMemberDeclaration(e,t,{token:n,parentDeclaration:r}){const i=some(r.members,e=>{const n=t.getTypeAtLocation(e);return!!(n&&402653316&n.flags)}),o=r.getSourceFile(),a=Wr.createEnumMember(n,i?Wr.createStringLiteral(n.text):void 0),s=lastOrUndefined(r.members);s?e.insertNodeInListAfter(o,s,a,r.members):e.insertMemberAtStart(o,r,a)}function addFunctionDeclaration(e,t,n){const r=getQuotePreference(t.sourceFile,t.preferences),i=createImportAdder(t.sourceFile,t.program,t.preferences,t.host),o=2===n.kind?createSignatureDeclarationFromCallExpression(263,t,i,n.call,idText(n.token),n.modifierFlags,n.parentDeclaration):createSignatureDeclarationFromSignature(263,t,r,n.signature,createStubbedBody(Ot.Function_not_implemented.message,r),n.token,void 0,void 0,void 0,i);void 0===o&&h.fail("fixMissingFunctionDeclaration codefix got unexpected error."),isReturnStatement(n.parentDeclaration)?e.insertNodeBefore(n.sourceFile,n.parentDeclaration,o,!0):e.insertNodeAtEndOfScope(n.sourceFile,n.parentDeclaration,o),i.writeFixes(e)}function addJsxAttributes(e,t,n){const r=createImportAdder(t.sourceFile,t.program,t.preferences,t.host),i=getQuotePreference(t.sourceFile,t.preferences),o=t.program.getTypeChecker(),a=n.parentDeclaration.attributes,s=some(a.properties,isJsxSpreadAttribute),c=map(n.attributes,e=>{const a=tryGetValueFromType(t,o,r,i,o.getTypeOfSymbol(e),n.parentDeclaration),s=Wr.createIdentifier(e.name),c=Wr.createJsxAttribute(s,Wr.createJsxExpression(void 0,a));return setParent(s,c),c}),l=Wr.createJsxAttributes(s?[...c,...a.properties]:[...a.properties,...c]),d={prefix:a.pos===a.end?" ":void 0};e.replaceNode(t.sourceFile,a,l,d),r.writeFixes(e)}function addObjectLiteralProperties(e,t,n){const r=createImportAdder(t.sourceFile,t.program,t.preferences,t.host),i=getQuotePreference(t.sourceFile,t.preferences),o=zn(t.program.getCompilerOptions()),a=t.program.getTypeChecker(),s=map(n.properties,e=>{const s=tryGetValueFromType(t,a,r,i,a.getTypeOfSymbol(e),n.parentDeclaration);return Wr.createPropertyAssignment(function createPropertyNameFromSymbol(e,t,n,r){if(isTransientSymbol(e)){const t=r.symbolToNode(e,111551,void 0,void 0,1);if(t&&isComputedPropertyName(t))return t}return createPropertyNameNodeForIdentifierOrLiteral(e.name,t,0===n,!1,!1)}(e,o,i,a),s)}),c={leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.Exclude,indentation:n.indentation};e.replaceNode(t.sourceFile,n.parentDeclaration,Wr.createObjectLiteralExpression([...n.parentDeclaration.properties,...s],!0),c),r.writeFixes(e)}function tryGetValueFromType(e,t,n,r,i,o){if(3&i.flags)return createUndefined();if(134217732&i.flags)return Wr.createStringLiteral("",0===r);if(8&i.flags)return Wr.createNumericLiteral(0);if(64&i.flags)return Wr.createBigIntLiteral("0n");if(16&i.flags)return Wr.createFalse();if(1056&i.flags){const e=i.symbol.exports?firstOrUndefinedIterator(i.symbol.exports.values()):i.symbol,n=i.symbol.parent&&256&i.symbol.parent.flags?i.symbol.parent:i.symbol,r=t.symbolToExpression(n,111551,void 0,64);return void 0===e||void 0===r?Wr.createNumericLiteral(0):Wr.createPropertyAccessExpression(r,t.symbolToString(e))}if(256&i.flags)return Wr.createNumericLiteral(i.value);if(2048&i.flags)return Wr.createBigIntLiteral(i.value);if(128&i.flags)return Wr.createStringLiteral(i.value,0===r);if(512&i.flags)return i===t.getFalseType()||i===t.getFalseType(!0)?Wr.createFalse():Wr.createTrue();if(65536&i.flags)return Wr.createNull();if(1048576&i.flags){return firstDefined(i.types,i=>tryGetValueFromType(e,t,n,r,i,o))??createUndefined()}if(t.isArrayLikeType(i))return Wr.createArrayLiteralExpression();if(function isObjectLiteralType(e){return 524288&e.flags&&(128&getObjectFlags(e)||e.symbol&&tryCast(singleOrUndefined(e.symbol.declarations),isTypeLiteralNode))}(i)){const a=map(t.getPropertiesOfType(i),i=>{const a=tryGetValueFromType(e,t,n,r,t.getTypeOfSymbol(i),o);return Wr.createPropertyAssignment(i.name,a)});return Wr.createObjectLiteralExpression(a,!0)}if(16&getObjectFlags(i)){if(void 0===find(i.symbol.declarations||l,or(isFunctionTypeNode,isMethodSignature,isMethodDeclaration)))return createUndefined();const a=t.getSignaturesOfType(i,0);if(void 0===a)return createUndefined();return createSignatureDeclarationFromSignature(219,e,r,a[0],createStubbedBody(Ot.Function_not_implemented.message,r),void 0,void 0,void 0,o,n)??createUndefined()}if(1&getObjectFlags(i)){const e=getClassLikeDeclarationOfSymbol(i.symbol);if(void 0===e||hasAbstractModifier(e))return createUndefined();const t=getFirstConstructorWithBody(e);return t&&length(t.parameters)?createUndefined():Wr.createNewExpression(Wr.createIdentifier(i.symbol.name),void 0,void 0)}return createUndefined()}function createUndefined(){return Wr.createIdentifier("undefined")}function findScope(e){if(findAncestor(e,isJsxExpression)){const t=findAncestor(e.parent,isReturnStatement);if(t)return t}return getSourceFileOfNode(e)}registerCodeFix({errorCodes:gp,getCodeActions(e){const t=e.program.getTypeChecker(),n=getInfo10(e.sourceFile,e.span.start,e.errorCode,t,e.program);if(n){if(3===n.kind){const t=$m.ChangeTracker.with(e,t=>addObjectLiteralProperties(t,e,n));return[createCodeFixAction(mp,t,Ot.Add_missing_properties,mp,Ot.Add_all_missing_properties)]}if(4===n.kind){const t=$m.ChangeTracker.with(e,t=>addJsxAttributes(t,e,n));return[createCodeFixAction(_p,t,Ot.Add_missing_attributes,_p,Ot.Add_all_missing_attributes)]}if(2===n.kind||5===n.kind){const t=$m.ChangeTracker.with(e,t=>addFunctionDeclaration(t,e,n));return[createCodeFixAction(fp,t,[Ot.Add_missing_function_declaration_0,n.token.text],fp,Ot.Add_all_missing_function_declarations)]}if(1===n.kind){const t=$m.ChangeTracker.with(e,t=>addEnumMemberDeclaration(t,e.program.getTypeChecker(),n));return[createCodeFixAction(up,t,[Ot.Add_missing_enum_member_0,n.token.text],up,Ot.Add_all_missing_members)]}return concatenate(function getActionsForMissingMethodDeclaration(e,t){const{parentDeclaration:n,declSourceFile:r,modifierFlags:i,token:o,call:a}=t;if(void 0===a)return;const s=o.text,addMethodDeclarationChanges=t=>$m.ChangeTracker.with(e,i=>addMethodDeclaration(e,i,a,o,t,n,r)),c=[createCodeFixAction(up,addMethodDeclarationChanges(256&i),[256&i?Ot.Declare_static_method_0:Ot.Declare_method_0,s],up,Ot.Add_all_missing_members)];2&i&&c.unshift(createCodeFixActionWithoutFixAll(up,addMethodDeclarationChanges(2),[Ot.Declare_private_method_0,s]));return c}(e,n),function getActionsForMissingMemberDeclaration(e,t){return t.isJSFile?singleElementArray(function createActionForAddMissingMemberInJavascriptFile(e,{parentDeclaration:t,declSourceFile:n,modifierFlags:r,token:i}){if(isInterfaceDeclaration(t)||isTypeLiteralNode(t))return;const o=$m.ChangeTracker.with(e,e=>addMissingMemberInJs(e,n,t,i,!!(256&r)));if(0===o.length)return;const a=256&r?Ot.Initialize_static_property_0:isPrivateIdentifier(i)?Ot.Declare_a_private_field_named_0:Ot.Initialize_property_0_in_the_constructor;return createCodeFixAction(up,o,[a,i.text],up,Ot.Add_all_missing_members)}(e,t)):function createActionsForAddMissingMemberInTypeScriptFile(e,{parentDeclaration:t,declSourceFile:n,modifierFlags:r,token:i}){const o=i.text,a=256&r,s=getTypeNode2(e.program.getTypeChecker(),t,i),addPropertyDeclarationChanges=r=>$m.ChangeTracker.with(e,e=>addPropertyDeclaration(e,n,t,o,s,r)),c=[createCodeFixAction(up,addPropertyDeclarationChanges(256&r),[a?Ot.Declare_static_property_0:Ot.Declare_property_0,o],up,Ot.Add_all_missing_members)];if(a||isPrivateIdentifier(i))return c;2&r&&c.unshift(createCodeFixActionWithoutFixAll(up,addPropertyDeclarationChanges(2),[Ot.Declare_private_property_0,o]));return c.push(function createAddIndexSignatureAction(e,t,n,r,i){const o=Wr.createKeywordTypeNode(154),a=Wr.createParameterDeclaration(void 0,void 0,"x",void 0,o,void 0),s=Wr.createIndexSignature(void 0,[a],i),c=$m.ChangeTracker.with(e,e=>e.insertMemberAtStart(t,n,s));return createCodeFixActionWithoutFixAll(up,c,[Ot.Add_index_signature_for_property_0,r])}(e,n,t,i.text,s)),c}(e,t)}(e,n))}},fixIds:[up,fp,mp,_p],getAllCodeActions:e=>{const{program:t,fixId:n}=e,r=t.getTypeChecker(),i=new Set,o=new Map;return createCombinedCodeActions($m.ChangeTracker.with(e,t=>{eachDiagnostic(e,gp,a=>{const s=getInfo10(a.file,a.start,a.code,r,e.program);if(void 0===s)return;const c=getNodeId(s.parentDeclaration)+"#"+(3===s.kind?s.identifier||getNodeId(s.token):s.token.text);if(addToSeen(i,c))if(n!==fp||2!==s.kind&&5!==s.kind){if(n===mp&&3===s.kind)addObjectLiteralProperties(t,e,s);else if(n===_p&&4===s.kind)addJsxAttributes(t,e,s);else if(1===s.kind&&addEnumMemberDeclaration(t,r,s),0===s.kind){const{parentDeclaration:e,token:t}=s,n=getOrUpdate(o,e,()=>[]);n.some(e=>e.token.text===t.text)||n.push(s)}}else addFunctionDeclaration(t,e,s)}),o.forEach((n,i)=>{const a=isTypeLiteralNode(i)?void 0:function getAllSupers(e,t){const n=[];for(;e;){const r=getClassExtendsHeritageElement(e),i=r&&t.getSymbolAtLocation(r.expression);if(!i)break;const o=2097152&i.flags?t.getAliasedSymbol(i):i,a=o.declarations&&find(o.declarations,isClassLike);if(!a)break;n.push(a),e=a}return n}(i,r);for(const i of n){if(null==a?void 0:a.some(e=>{const t=o.get(e);return!!t&&t.some(({token:e})=>e.text===i.token.text)}))continue;const{parentDeclaration:n,declSourceFile:s,modifierFlags:c,token:l,call:d,isJSFile:p}=i;if(d&&!isPrivateIdentifier(l))addMethodDeclaration(e,t,d,l,256&c,n,s);else if(!p||isInterfaceDeclaration(n)||isTypeLiteralNode(n)){const e=getTypeNode2(r,n,l);addPropertyDeclaration(t,s,n,l.text,e,256&c)}else addMissingMemberInJs(t,s,n,l,!!(256&c))}})}))}});var yp="addMissingNewOperator",hp=[Ot.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code];function addMissingNewOperator(e,t,n){const r=cast(function findAncestorMatchingSpan2(e,t){let n=getTokenAtPosition(e,t.start);const r=textSpanEnd(t);for(;n.endaddMissingNewOperator(e,t,n));return[createCodeFixAction(yp,r,Ot.Add_missing_new_operator_to_call,yp,Ot.Add_missing_new_operator_to_all_calls)]},fixIds:[yp],getAllCodeActions:e=>codeFixAll(e,hp,(t,n)=>addMissingNewOperator(t,e.sourceFile,n))});var Tp="addMissingParam",Sp="addOptionalParam",xp=[Ot.Expected_0_arguments_but_got_1.code];function getInfo11(e,t,n){const r=findAncestor(getTokenAtPosition(e,n),isCallExpression);if(void 0===r||0===length(r.arguments))return;const i=t.getTypeChecker(),o=filter(i.getTypeAtLocation(r.expression).symbol.declarations,isConvertibleSignatureDeclaration);if(void 0===o)return;const a=lastOrUndefined(o);if(void 0===a||void 0===a.body||isSourceFileFromLibrary(t,a.getSourceFile()))return;const s=function tryGetName2(e){const t=getNameOfDeclaration(e);if(t)return t;if(isVariableDeclaration(e.parent)&&isIdentifier(e.parent.name)||isPropertyDeclaration(e.parent)||isParameter(e.parent))return e.parent.name}(a);if(void 0===s)return;const c=[],l=[],d=length(a.parameters),p=length(r.arguments);if(d>p)return;const u=[a,...getOverloads(a,o)];for(let e=0,t=0,n=0;e{const s=getSourceFileOfNode(i),c=createImportAdder(s,t,n,r);length(i.parameters)?e.replaceNodeRangeWithNodes(s,first(i.parameters),last(i.parameters),updateParameters(c,a,i,o),{joiner:", ",indentation:0,leadingTriviaOption:$m.LeadingTriviaOption.IncludeAll,trailingTriviaOption:$m.TrailingTriviaOption.Include}):forEach(updateParameters(c,a,i,o),(t,n)=>{0===length(i.parameters)&&0===n?e.insertNodeAt(s,i.parameters.end,t):e.insertNodeAtEndOfList(s,i.parameters,t)}),c.writeFixes(e)})}function isConvertibleSignatureDeclaration(e){switch(e.kind){case 263:case 219:case 175:case 220:return!0;default:return!1}}function updateParameters(e,t,n,r){const i=map(n.parameters,e=>Wr.createParameterDeclaration(e.modifiers,e.dotDotDotToken,e.name,e.questionToken,e.type,e.initializer));for(const{pos:n,declaration:o}of r){const r=n>0?i[n-1]:void 0;i.splice(n,0,Wr.updateParameterDeclaration(o,o.modifiers,o.dotDotDotToken,o.name,r&&r.questionToken?Wr.createToken(58):o.questionToken,getParameterType(e,o.type,t),o.initializer))}return i}function getOverloads(e,t){const n=[];for(const r of t)if(isOverload(r)){if(length(r.parameters)===length(e.parameters)){n.push(r);continue}if(length(r.parameters)>length(e.parameters))return[]}return n}function isOverload(e){return isConvertibleSignatureDeclaration(e)&&void 0===e.body}function createParameter(e,t,n){return Wr.createParameterDeclaration(void 0,void 0,e,n,t,void 0)}function isOptionalPos(e,t){return length(e)&&some(e,e=>tdoChange19(t,e.program,e.preferences,e.host,r,i)),[length(i)>1?Ot.Add_missing_parameters_to_0:Ot.Add_missing_parameter_to_0,n],Tp,Ot.Add_all_missing_parameters)),length(o)&&append(a,createCodeFixAction(Sp,$m.ChangeTracker.with(e,t=>doChange19(t,e.program,e.preferences,e.host,r,o)),[length(o)>1?Ot.Add_optional_parameters_to_0:Ot.Add_optional_parameter_to_0,n],Sp,Ot.Add_all_optional_parameters)),a},getAllCodeActions:e=>codeFixAll(e,xp,(t,n)=>{const r=getInfo11(e.sourceFile,e.program,n.start);if(r){const{declarations:n,newParameters:i,newOptionalParameters:o}=r;e.fixId===Tp&&doChange19(t,e.program,e.preferences,e.host,n,i),e.fixId===Sp&&doChange19(t,e.program,e.preferences,e.host,n,o)}})});var vp="installTypesPackage",bp=Ot.Cannot_find_module_0_or_its_corresponding_type_declarations.code,Cp=Ot.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed.code,Ep=[bp,Ot.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code,Cp];function getInstallCommand(e,t){return{type:"install package",file:e,packageName:t}}function tryGetImportedPackageName(e,t){const n=tryCast(getTokenAtPosition(e,t),isStringLiteral);if(!n)return;const r=n.text,{packageName:i}=parsePackageName(r);return isExternalModuleNameRelative(i)?void 0:i}function getTypesPackageNameToInstall(e,t,n){var r;return n===bp?Ir.has(e)?"@types/node":void 0:(null==(r=t.isKnownTypesPackageName)?void 0:r.call(t,e))?getTypesPackageName(e):void 0}registerCodeFix({errorCodes:Ep,getCodeActions:function getCodeActionsToFixNotFoundModule(e){const{host:t,sourceFile:n,span:{start:r},errorCode:i}=e,o=i===Cp?getJSXImplicitImportBase(e.program.getCompilerOptions(),n):tryGetImportedPackageName(n,r);if(void 0===o)return;const a=getTypesPackageNameToInstall(o,t,i);return void 0===a?[]:[createCodeFixAction("fixCannotFindModule",[],[Ot.Install_0,a],vp,Ot.Install_all_missing_types_packages,getInstallCommand(n.fileName,a))]},fixIds:[vp],getAllCodeActions:e=>codeFixAll(e,Ep,(t,n,r)=>{const i=tryGetImportedPackageName(n.file,n.start);if(void 0!==i)switch(e.fixId){case vp:{const t=getTypesPackageNameToInstall(i,e.host,n.code);t&&r.push(getInstallCommand(n.file.fileName,t));break}default:h.fail(`Bad fixId: ${e.fixId}`)}})});var Np=[Ot.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,Ot.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2.code,Ot.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more.code,Ot.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code,Ot.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1.code,Ot.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more.code],kp="fixClassDoesntImplementInheritedAbstractMember";function getClass2(e,t){return cast(getTokenAtPosition(e,t).parent,isClassLike)}function addMissingMembers(e,t,n,r,i){const o=getEffectiveBaseTypeNode(e),a=n.program.getTypeChecker(),s=a.getTypeAtLocation(o),c=a.getPropertiesOfType(s).filter(symbolPointsToNonPrivateAndAbstractMember),l=createImportAdder(t,n.program,i,n.host);createMissingMemberNodes(e,c,t,n,i,l,n=>r.insertMemberAtStart(t,e,n)),l.writeFixes(r)}function symbolPointsToNonPrivateAndAbstractMember(e){const t=getSyntacticModifierFlags(first(e.getDeclarations()));return!(2&t||!(64&t))}registerCodeFix({errorCodes:Np,getCodeActions:function getCodeActionsToFixClassNotImplementingInheritedMembers(e){const{sourceFile:t,span:n}=e,r=$m.ChangeTracker.with(e,r=>addMissingMembers(getClass2(t,n.start),t,e,r,e.preferences));return 0===r.length?void 0:[createCodeFixAction(kp,r,Ot.Implement_inherited_abstract_class,kp,Ot.Implement_all_inherited_abstract_classes)]},fixIds:[kp],getAllCodeActions:function getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember(e){const t=new Set;return codeFixAll(e,Np,(n,r)=>{const i=getClass2(r.file,r.start);addToSeen(t,getNodeId(i))&&addMissingMembers(i,e.sourceFile,e,n,e.preferences)})}});var Fp="classSuperMustPrecedeThisAccess",Pp=[Ot.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code];function doChange20(e,t,n,r){e.insertNodeAtConstructorStart(t,n,r),e.delete(t,r)}function getNodes(e,t){const n=getTokenAtPosition(e,t);if(110!==n.kind)return;const r=getContainingFunction(n),i=findSuperCall(r.body);return i&&!i.expression.arguments.some(e=>isPropertyAccessExpression(e)&&e.expression===n)?{constructor:r,superCall:i}:void 0}function findSuperCall(e){return isExpressionStatement(e)&&isSuperCall(e.expression)?e:isFunctionLike(e)?void 0:forEachChild(e,findSuperCall)}registerCodeFix({errorCodes:Pp,getCodeActions(e){const{sourceFile:t,span:n}=e,r=getNodes(t,n.start);if(!r)return;const{constructor:i,superCall:o}=r,a=$m.ChangeTracker.with(e,e=>doChange20(e,t,i,o));return[createCodeFixAction(Fp,a,Ot.Make_super_call_the_first_statement_in_the_constructor,Fp,Ot.Make_all_super_calls_the_first_statement_in_their_constructor)]},fixIds:[Fp],getAllCodeActions(e){const{sourceFile:t}=e,n=new Set;return codeFixAll(e,Pp,(e,r)=>{const i=getNodes(r.file,r.start);if(!i)return;const{constructor:o,superCall:a}=i;addToSeen(n,getNodeId(o.parent))&&doChange20(e,t,o,a)})}});var Dp="constructorForDerivedNeedSuperCall",Ip=[Ot.Constructors_for_derived_classes_must_contain_a_super_call.code];function getNode(e,t){const n=getTokenAtPosition(e,t);return h.assert(isConstructorDeclaration(n.parent),"token should be at the constructor declaration"),n.parent}function doChange21(e,t,n){const r=Wr.createExpressionStatement(Wr.createCallExpression(Wr.createSuper(),void 0,l));e.insertNodeAtConstructorStart(t,n,r)}registerCodeFix({errorCodes:Ip,getCodeActions(e){const{sourceFile:t,span:n}=e,r=getNode(t,n.start),i=$m.ChangeTracker.with(e,e=>doChange21(e,t,r));return[createCodeFixAction(Dp,i,Ot.Add_missing_super_call,Dp,Ot.Add_all_missing_super_calls)]},fixIds:[Dp],getAllCodeActions:e=>codeFixAll(e,Ip,(t,n)=>doChange21(t,e.sourceFile,getNode(n.file,n.start)))});var Ap="fixEnableJsxFlag",Op=[Ot.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code];function doChange22(e,t){setJsonCompilerOptionValue(e,t,"jsx",Wr.createStringLiteral("react"))}registerCodeFix({errorCodes:Op,getCodeActions:function getCodeActionsToFixEnableJsxFlag(e){const{configFile:t}=e.program.getCompilerOptions();if(void 0===t)return;const n=$m.ChangeTracker.with(e,e=>doChange22(e,t));return[createCodeFixActionWithoutFixAll(Ap,n,Ot.Enable_the_jsx_flag_in_your_configuration_file)]},fixIds:[Ap],getAllCodeActions:e=>codeFixAll(e,Op,t=>{const{configFile:n}=e.program.getCompilerOptions();void 0!==n&&doChange22(t,n)})});var wp="fixNaNEquality",Lp=[Ot.This_condition_will_always_return_0.code];function getInfo12(e,t,n){const r=find(e.getSemanticDiagnostics(t),e=>e.start===n.start&&e.length===n.length);if(void 0===r||void 0===r.relatedInformation)return;const i=find(r.relatedInformation,e=>e.code===Ot.Did_you_mean_0.code);if(void 0===i||void 0===i.file||void 0===i.start||void 0===i.length)return;const o=findAncestorMatchingSpan(i.file,createTextSpan(i.start,i.length));return void 0!==o&&isExpression(o)&&isBinaryExpression(o.parent)?{suggestion:getSuggestion(i.messageText),expression:o.parent,arg:o}:void 0}function doChange23(e,t,n,r){const i=Wr.createCallExpression(Wr.createPropertyAccessExpression(Wr.createIdentifier("Number"),Wr.createIdentifier("isNaN")),void 0,[n]),o=r.operatorToken.kind;e.replaceNode(t,r,38===o||36===o?Wr.createPrefixUnaryExpression(54,i):i)}function getSuggestion(e){const[,t]=flattenDiagnosticMessageText(e,"\n",0).match(/'(.*)'/)||[];return t}registerCodeFix({errorCodes:Lp,getCodeActions(e){const{sourceFile:t,span:n,program:r}=e,i=getInfo12(r,t,n);if(void 0===i)return;const{suggestion:o,expression:a,arg:s}=i,c=$m.ChangeTracker.with(e,e=>doChange23(e,t,s,a));return[createCodeFixAction(wp,c,[Ot.Use_0,o],wp,Ot.Use_Number_isNaN_in_all_conditions)]},fixIds:[wp],getAllCodeActions:e=>codeFixAll(e,Lp,(t,n)=>{const r=getInfo12(e.program,n.file,createTextSpan(n.start,n.length));r&&doChange23(t,n.file,r.arg,r.expression)})}),registerCodeFix({errorCodes:[Ot.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,Ot.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,Ot.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code],getCodeActions:function getCodeActionsToFixModuleAndTarget(e){const t=e.program.getCompilerOptions(),{configFile:n}=t;if(void 0===n)return;const r=[],i=Vn(t);if(i>=5&&i<99){const t=$m.ChangeTracker.with(e,e=>{setJsonCompilerOptionValue(e,n,"module",Wr.createStringLiteral("esnext"))});r.push(createCodeFixActionWithoutFixAll("fixModuleOption",t,[Ot.Set_the_module_option_in_your_configuration_file_to_0,"esnext"]))}const o=zn(t);if(o<4||o>99){const t=$m.ChangeTracker.with(e,e=>{if(!getTsConfigObjectLiteralExpression(n))return;const t=[["target",Wr.createStringLiteral("es2017")]];1===i&&t.push(["module",Wr.createStringLiteral("commonjs")]),setJsonCompilerOptionValues(e,n,t)});r.push(createCodeFixActionWithoutFixAll("fixTargetOption",t,[Ot.Set_the_target_option_in_your_configuration_file_to_0,"es2017"]))}return r.length?r:void 0}});var Mp="fixPropertyAssignment",Rp=[Ot.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code];function doChange24(e,t,n){e.replaceNode(t,n,Wr.createPropertyAssignment(n.name,n.objectAssignmentInitializer))}function getProperty2(e,t){return cast(getTokenAtPosition(e,t).parent,isShorthandPropertyAssignment)}registerCodeFix({errorCodes:Rp,fixIds:[Mp],getCodeActions(e){const{sourceFile:t,span:n}=e,r=getProperty2(t,n.start),i=$m.ChangeTracker.with(e,t=>doChange24(t,e.sourceFile,r));return[createCodeFixAction(Mp,i,[Ot.Change_0_to_1,"=",":"],Mp,[Ot.Switch_each_misused_0_to_1,"=",":"])]},getAllCodeActions:e=>codeFixAll(e,Rp,(e,t)=>doChange24(e,t.file,getProperty2(t.file,t.start)))});var Bp="extendsInterfaceBecomesImplements",jp=[Ot.Cannot_extend_an_interface_0_Did_you_mean_implements.code];function getNodes2(e,t){const n=getContainingClass(getTokenAtPosition(e,t)).heritageClauses,r=n[0].getFirstToken();return 96===r.kind?{extendsToken:r,heritageClauses:n}:void 0}function doChanges2(e,t,n,r){if(e.replaceNode(t,n,Wr.createToken(119)),2===r.length&&96===r[0].token&&119===r[1].token){const n=r[1].getFirstToken(),i=n.getFullStart();e.replaceRange(t,{pos:i,end:i},Wr.createToken(28));const o=t.text;let a=n.end;for(;adoChanges2(e,t,r,i));return[createCodeFixAction(Bp,o,Ot.Change_extends_to_implements,Bp,Ot.Change_all_extended_interfaces_to_implements)]},fixIds:[Bp],getAllCodeActions:e=>codeFixAll(e,jp,(e,t)=>{const n=getNodes2(t.file,t.start);n&&doChanges2(e,t.file,n.extendsToken,n.heritageClauses)})});var Jp="forgottenThisPropertyAccess",Wp=Ot.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,Up=[Ot.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,Ot.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,Wp];function getInfo13(e,t,n){const r=getTokenAtPosition(e,t);if(isIdentifier(r)||isPrivateIdentifier(r))return{node:r,className:n===Wp?getContainingClass(r).name.text:void 0}}function doChange25(e,t,{node:n,className:r}){suppressLeadingAndTrailingTrivia(n),e.replaceNode(t,n,Wr.createPropertyAccessExpression(r?Wr.createIdentifier(r):Wr.createThis(),n))}registerCodeFix({errorCodes:Up,getCodeActions(e){const{sourceFile:t}=e,n=getInfo13(t,e.span.start,e.errorCode);if(!n)return;const r=$m.ChangeTracker.with(e,e=>doChange25(e,t,n));return[createCodeFixAction(Jp,r,[Ot.Add_0_to_unresolved_variable,n.className||"this"],Jp,Ot.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)]},fixIds:[Jp],getAllCodeActions:e=>codeFixAll(e,Up,(t,n)=>{const r=getInfo13(n.file,n.start,n.code);r&&doChange25(t,e.sourceFile,r)})});var zp="fixInvalidJsxCharacters_expression",Vp="fixInvalidJsxCharacters_htmlEntity",qp=[Ot.Unexpected_token_Did_you_mean_or_gt.code,Ot.Unexpected_token_Did_you_mean_or_rbrace.code];registerCodeFix({errorCodes:qp,fixIds:[zp,Vp],getCodeActions(e){const{sourceFile:t,preferences:n,span:r}=e,i=$m.ChangeTracker.with(e,e=>doChange26(e,n,t,r.start,!1)),o=$m.ChangeTracker.with(e,e=>doChange26(e,n,t,r.start,!0));return[createCodeFixAction(zp,i,Ot.Wrap_invalid_character_in_an_expression_container,zp,Ot.Wrap_all_invalid_characters_in_an_expression_container),createCodeFixAction(Vp,o,Ot.Convert_invalid_character_to_its_html_entity_code,Vp,Ot.Convert_all_invalid_characters_to_HTML_entity_code)]},getAllCodeActions:e=>codeFixAll(e,qp,(t,n)=>doChange26(t,e.preferences,n.file,n.start,e.fixId===Vp))});var Hp={">":">","}":"}"};function doChange26(e,t,n,r,i){const o=n.getText()[r];if(!function isValidCharacter(e){return hasProperty(Hp,e)}(o))return;const a=i?Hp[o]:`{${quote(n,t,o)}}`;e.replaceRangeWithText(n,{pos:r,end:r+1},a)}var Kp="deleteUnmatchedParameter",Gp="renameUnmatchedParameter",$p=[Ot.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code];function getInfo14(e,t){const n=getTokenAtPosition(e,t);if(n.parent&&isJSDocParameterTag(n.parent)&&isIdentifier(n.parent.name)){const e=n.parent,t=getJSDocHost(e),r=getHostSignatureFromJSDoc(e);if(t&&r)return{jsDocHost:t,signature:r,name:n.parent.name,jsDocParameterTag:e}}}registerCodeFix({fixIds:[Kp,Gp],errorCodes:$p,getCodeActions:function getCodeActionsToFixUnmatchedParameter(e){const{sourceFile:t,span:n}=e,r=[],i=getInfo14(t,n.start);if(i)return append(r,function getDeleteAction(e,{name:t,jsDocHost:n,jsDocParameterTag:r}){const i=$m.ChangeTracker.with(e,t=>t.filterJSDocTags(e.sourceFile,n,e=>e!==r));return createCodeFixAction(Kp,i,[Ot.Delete_unused_param_tag_0,t.getText(e.sourceFile)],Kp,Ot.Delete_all_unused_param_tags)}(e,i)),append(r,function getRenameAction(e,{name:t,jsDocHost:n,signature:r,jsDocParameterTag:i}){if(!length(r.parameters))return;const o=e.sourceFile,a=getJSDocTags(r),s=new Set;for(const e of a)isJSDocParameterTag(e)&&isIdentifier(e.name)&&s.add(e.name.escapedText);const c=firstDefined(r.parameters,e=>isIdentifier(e.name)&&!s.has(e.name.escapedText)?e.name.getText(o):void 0);if(void 0===c)return;const l=Wr.updateJSDocParameterTag(i,i.tagName,Wr.createIdentifier(c),i.isBracketed,i.typeExpression,i.isNameFirst,i.comment),d=$m.ChangeTracker.with(e,e=>e.replaceJSDocComment(o,n,map(a,e=>e===i?l:e)));return createCodeFixActionWithoutFixAll(Gp,d,[Ot.Rename_param_tag_name_0_to_1,t.getText(o),c])}(e,i)),r},getAllCodeActions:function getAllCodeActionsToFixUnmatchedParameter(e){const t=new Map;return createCombinedCodeActions($m.ChangeTracker.with(e,n=>{eachDiagnostic(e,$p,({file:e,start:n})=>{const r=getInfo14(e,n);r&&t.set(r.signature,append(t.get(r.signature),r.jsDocParameterTag))}),t.forEach((t,r)=>{if(e.fixId===Kp){const e=new Set(t);n.filterJSDocTags(r.getSourceFile(),r,t=>!e.has(t))}})}))}});var Qp="fixUnreferenceableDecoratorMetadata";registerCodeFix({errorCodes:[Ot.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code],getCodeActions:e=>{const t=function getImportDeclaration(e,t,n){const r=tryCast(getTokenAtPosition(e,n),isIdentifier);if(!r||184!==r.parent.kind)return;const i=t.getTypeChecker().getSymbolAtLocation(r);return find((null==i?void 0:i.declarations)||l,or(isImportClause,isImportSpecifier,isImportEqualsDeclaration))}(e.sourceFile,e.program,e.span.start);if(!t)return;const n=$m.ChangeTracker.with(e,n=>277===t.kind&&function doNamespaceImportChange(e,t,n,r){bc.doChangeNamedToNamespaceOrDefault(t,r,e,n.parent)}(n,e.sourceFile,t,e.program)),r=$m.ChangeTracker.with(e,n=>function doTypeOnlyImportChange(e,t,n,r){if(272===n.kind)return void e.insertModifierBefore(t,156,n.name);const i=274===n.kind?n:n.parent.parent;if(i.name&&i.namedBindings)return;const o=r.getTypeChecker();if(forEachImportClauseDeclaration(i,e=>{if(111551&skipAlias(e.symbol,o).flags)return!0}))return;e.insertModifierBefore(t,156,i)}(n,e.sourceFile,t,e.program));let i;return n.length&&(i=append(i,createCodeFixActionWithoutFixAll(Qp,n,Ot.Convert_named_imports_to_namespace_import))),r.length&&(i=append(i,createCodeFixActionWithoutFixAll(Qp,r,Ot.Use_import_type))),i},fixIds:[Qp]});var Xp="unusedIdentifier",Yp="unusedIdentifier_prefix",Zp="unusedIdentifier_delete",eu="unusedIdentifier_deleteImports",tu="unusedIdentifier_infer",nu=[Ot._0_is_declared_but_its_value_is_never_read.code,Ot._0_is_declared_but_never_used.code,Ot.Property_0_is_declared_but_its_value_is_never_read.code,Ot.All_imports_in_import_declaration_are_unused.code,Ot.All_destructured_elements_are_unused.code,Ot.All_variables_are_unused.code,Ot.All_type_parameters_are_unused.code];function changeInferToUnknown(e,t,n){e.replaceNode(t,n.parent,Wr.createKeywordTypeNode(159))}function createDeleteFix(e,t){return createCodeFixAction(Xp,e,t,Zp,Ot.Delete_all_unused_declarations)}function deleteTypeParameters(e,t,n){e.delete(t,h.checkDefined(cast(n.parent,isDeclarationWithTypeParameterChildren).typeParameters,"The type parameter to delete should exist"))}function isImport(e){return 102===e.kind||80===e.kind&&(277===e.parent.kind||274===e.parent.kind)}function tryGetFullImport(e){return 102===e.kind?tryCast(e.parent,isImportDeclaration):void 0}function canDeleteEntireVariableStatement(e,t){return isVariableDeclarationList(t.parent)&&first(t.parent.getChildren(e))===t}function deleteEntireVariableStatement(e,t,n){e.delete(t,244===n.parent.kind?n.parent:n)}function tryPrefixDeclaration(e,t,n,r){t!==Ot.Property_0_is_declared_but_its_value_is_never_read.code&&(140===r.kind&&(r=cast(r.parent,isInferTypeNode).typeParameter.name),isIdentifier(r)&&function canPrefix(e){switch(e.parent.kind){case 170:case 169:return!0;case 261:switch(e.parent.parent.parent.kind){case 251:case 250:return!0}}return!1}(r)&&(e.replaceNode(n,r,Wr.createIdentifier(`_${r.text}`)),isParameter(r.parent)&&getJSDocParameterTags(r.parent).forEach(t=>{isIdentifier(t.name)&&e.replaceNode(n,t.name,Wr.createIdentifier(`_${t.name.text}`))})))}function tryDeleteDeclaration(e,t,n,r,i,o,a,s){!function tryDeleteDeclarationWorker(e,t,n,r,i,o,a,s){const{parent:c}=e;if(isParameter(c))!function tryDeleteParameter(e,t,n,r,i,o,a,s=!1){if(function mayDeleteParameter(e,t,n,r,i,o,a){const{parent:s}=n;switch(s.kind){case 175:case 177:const c=s.parameters.indexOf(n),l=isMethodDeclaration(s)?s.name:s,d=vm.Core.getReferencedSymbolsForNode(s.pos,l,i,r,o);if(d)for(const e of d)for(const t of e.references)if(t.kind===vm.EntryKind.Node){const e=isSuperKeyword(t.node)&&isCallExpression(t.node.parent)&&t.node.parent.arguments.length>c,r=isPropertyAccessExpression(t.node.parent)&&isSuperKeyword(t.node.parent.expression)&&isCallExpression(t.node.parent.parent)&&t.node.parent.parent.arguments.length>c,i=(isMethodDeclaration(t.node.parent)||isMethodSignature(t.node.parent))&&t.node.parent!==n.parent&&t.node.parent.parameters.length>c;if(e||r||i)return!1}return!0;case 263:return!s.name||!function isCallbackLike(e,t,n){return!!vm.Core.eachSymbolReferenceInFile(n,e,t,e=>isIdentifier(e)&&isCallExpression(e.parent)&&e.parent.arguments.includes(e))}(e,t,s.name)||isLastParameter(s,n,a);case 219:case 220:return isLastParameter(s,n,a);case 179:return!1;case 178:return!0;default:return h.failBadSyntaxKind(s)}}(r,t,n,i,o,a,s))if(n.modifiers&&n.modifiers.length>0&&(!isIdentifier(n.name)||vm.Core.isSymbolReferencedInFile(n.name,r,t)))for(const r of n.modifiers)isModifier(r)&&e.deleteModifier(t,r);else!n.initializer&&isNotProvidedArguments(n,r,i)&&e.delete(t,n)}(t,n,c,r,i,o,a,s);else if(!(s&&isIdentifier(e)&&vm.Core.isSymbolReferencedInFile(e,r,n))){const r=isImportClause(c)?e:isComputedPropertyName(c)?c.parent:c;h.assert(r!==n,"should not delete whole source file"),t.delete(n,r)}}(t,n,e,r,i,o,a,s),isIdentifier(t)&&vm.Core.eachSymbolReferenceInFile(t,r,e,t=>{isPropertyAccessExpression(t.parent)&&t.parent.name===t&&(t=t.parent),!s&&function mayDeleteExpression(e){return(isBinaryExpression(e.parent)&&e.parent.left===e||(isPostfixUnaryExpression(e.parent)||isPrefixUnaryExpression(e.parent))&&e.parent.operand===e)&&isExpressionStatement(e.parent.parent)}(t)&&n.delete(e,t.parent.parent)})}function isNotProvidedArguments(e,t,n){const r=e.parent.parameters.indexOf(e);return!vm.Core.someSignatureUsage(e.parent,n,t,(e,t)=>!t||t.arguments.length>r)}function isLastParameter(e,t,n){const r=e.parameters,i=r.indexOf(t);return h.assert(-1!==i,"The parameter should already be in the list"),n?r.slice(i+1).every(e=>isIdentifier(e.name)&&!e.symbol.isReferenced):i===r.length-1}function deleteFunctionLikeDeclaration(e,t,n){const r=n.symbol.declarations;if(r)for(const n of r)e.delete(t,n)}registerCodeFix({errorCodes:nu,getCodeActions(e){const{errorCode:t,sourceFile:n,program:r,cancellationToken:i}=e,o=r.getTypeChecker(),a=r.getSourceFiles(),s=getTokenAtPosition(n,e.span.start);if(isJSDocTemplateTag(s))return[createDeleteFix($m.ChangeTracker.with(e,e=>e.delete(n,s)),Ot.Remove_template_tag)];if(30===s.kind){return[createDeleteFix($m.ChangeTracker.with(e,e=>deleteTypeParameters(e,n,s)),Ot.Remove_type_parameters)]}const c=tryGetFullImport(s);if(c){const t=$m.ChangeTracker.with(e,e=>e.delete(n,c));return[createCodeFixAction(Xp,t,[Ot.Remove_import_from_0,showModuleSpecifier(c)],eu,Ot.Delete_all_unused_imports)]}if(isImport(s)){const t=$m.ChangeTracker.with(e,e=>tryDeleteDeclaration(n,s,e,o,a,r,i,!1));if(t.length)return[createCodeFixAction(Xp,t,[Ot.Remove_unused_declaration_for_Colon_0,s.getText(n)],eu,Ot.Delete_all_unused_imports)]}if(isObjectBindingPattern(s.parent)||isArrayBindingPattern(s.parent)){if(isParameter(s.parent.parent)){const t=s.parent.elements,r=[t.length>1?Ot.Remove_unused_declarations_for_Colon_0:Ot.Remove_unused_declaration_for_Colon_0,map(t,e=>e.getText(n)).join(", ")];return[createDeleteFix($m.ChangeTracker.with(e,e=>function deleteDestructuringElements(e,t,n){forEach(n.elements,n=>e.delete(t,n))}(e,n,s.parent)),r)]}return[createDeleteFix($m.ChangeTracker.with(e,t=>function deleteDestructuring(e,t,n,{parent:r}){if(isVariableDeclaration(r)&&r.initializer&&isCallLikeExpression(r.initializer))if(isVariableDeclarationList(r.parent)&&length(r.parent.declarations)>1){const i=r.parent.parent,o=i.getStart(n),a=i.end;t.delete(n,r),t.insertNodeAt(n,a,r.initializer,{prefix:getNewLineOrDefaultFromHost(e.host,e.formatContext.options)+n.text.slice(getPrecedingNonSpaceCharacterPosition(n.text,o-1),o),suffix:probablyUsesSemicolons(n)?";":""})}else t.replaceNode(n,r.parent,r.initializer);else t.delete(n,r)}(e,t,n,s.parent)),Ot.Remove_unused_destructuring_declaration)]}if(canDeleteEntireVariableStatement(n,s))return[createDeleteFix($m.ChangeTracker.with(e,e=>deleteEntireVariableStatement(e,n,s.parent)),Ot.Remove_variable_statement)];if(isIdentifier(s)&&isFunctionDeclaration(s.parent))return[createDeleteFix($m.ChangeTracker.with(e,e=>deleteFunctionLikeDeclaration(e,n,s.parent)),[Ot.Remove_unused_declaration_for_Colon_0,s.getText(n)])];const l=[];if(140===s.kind){const t=$m.ChangeTracker.with(e,e=>changeInferToUnknown(e,n,s)),r=cast(s.parent,isInferTypeNode).typeParameter.name.text;l.push(createCodeFixAction(Xp,t,[Ot.Replace_infer_0_with_unknown,r],tu,Ot.Replace_all_unused_infer_with_unknown))}else{const t=$m.ChangeTracker.with(e,e=>tryDeleteDeclaration(n,s,e,o,a,r,i,!1));if(t.length){const e=isComputedPropertyName(s.parent)?s.parent:s;l.push(createDeleteFix(t,[Ot.Remove_unused_declaration_for_Colon_0,e.getText(n)]))}}const d=$m.ChangeTracker.with(e,e=>tryPrefixDeclaration(e,t,n,s));return d.length&&l.push(createCodeFixAction(Xp,d,[Ot.Prefix_0_with_an_underscore,s.getText(n)],Yp,Ot.Prefix_all_unused_declarations_with_where_possible)),l},fixIds:[Yp,Zp,eu,tu],getAllCodeActions:e=>{const{sourceFile:t,program:n,cancellationToken:r}=e,i=n.getTypeChecker(),o=n.getSourceFiles();return codeFixAll(e,nu,(a,s)=>{const c=getTokenAtPosition(t,s.start);switch(e.fixId){case Yp:tryPrefixDeclaration(a,s.code,t,c);break;case eu:{const e=tryGetFullImport(c);e?a.delete(t,e):isImport(c)&&tryDeleteDeclaration(t,c,a,i,o,n,r,!0);break}case Zp:if(140===c.kind||isImport(c))break;if(isJSDocTemplateTag(c))a.delete(t,c);else if(30===c.kind)deleteTypeParameters(a,t,c);else if(isObjectBindingPattern(c.parent)){if(c.parent.parent.initializer)break;isParameter(c.parent.parent)&&!isNotProvidedArguments(c.parent.parent,i,o)||a.delete(t,c.parent.parent)}else{if(isArrayBindingPattern(c.parent.parent)&&c.parent.parent.parent.initializer)break;canDeleteEntireVariableStatement(t,c)?deleteEntireVariableStatement(a,t,c.parent):isIdentifier(c)&&isFunctionDeclaration(c.parent)?deleteFunctionLikeDeclaration(a,t,c.parent):tryDeleteDeclaration(t,c,a,i,o,n,r,!0)}break;case tu:140===c.kind&&changeInferToUnknown(a,t,c);break;default:h.fail(JSON.stringify(e.fixId))}})}});var ru="fixUnreachableCode",iu=[Ot.Unreachable_code_detected.code];function doChange27(e,t,n,r,i){const o=getTokenAtPosition(t,n),a=findAncestor(o,isStatement);if(a.getStart(t)!==o.getStart(t)){const e=JSON.stringify({statementKind:h.formatSyntaxKind(a.kind),tokenKind:h.formatSyntaxKind(o.kind),errorCode:i,start:n,length:r});h.fail("Token and statement should start at the same point. "+e)}const s=(isBlock(a.parent)?a.parent:a).parent;if(!isBlock(a.parent)||a===first(a.parent.statements))switch(s.kind){case 246:if(s.elseStatement){if(isBlock(a.parent))break;return void e.replaceNode(t,a,Wr.createBlock(l))}case 248:case 249:return void e.delete(t,s)}if(isBlock(a.parent)){const i=n+r,o=h.checkDefined(function lastWhere(e,t){let n;for(const r of e){if(!t(r))break;n=r}return n}(sliceAfter(a.parent.statements,a),e=>e.posdoChange27(t,e.sourceFile,e.span.start,e.span.length,e.errorCode));return[createCodeFixAction(ru,t,Ot.Remove_unreachable_code,ru,Ot.Remove_all_unreachable_code)]},fixIds:[ru],getAllCodeActions:e=>codeFixAll(e,iu,(e,t)=>doChange27(e,t.file,t.start,t.length,t.code))});var ou="fixUnusedLabel",au=[Ot.Unused_label.code];function doChange28(e,t,n){const r=getTokenAtPosition(t,n),i=cast(r.parent,isLabeledStatement),o=r.getStart(t),a=i.statement.getStart(t),s=positionsAreOnSameLine(o,a,t)?a:skipTrivia(t.text,findChildOfKind(i,59,t).end,!0);e.deleteRange(t,{pos:o,end:s})}registerCodeFix({errorCodes:au,getCodeActions(e){const t=$m.ChangeTracker.with(e,t=>doChange28(t,e.sourceFile,e.span.start));return[createCodeFixAction(ou,t,Ot.Remove_unused_label,ou,Ot.Remove_all_unused_labels)]},fixIds:[ou],getAllCodeActions:e=>codeFixAll(e,au,(e,t)=>doChange28(e,t.file,t.start))});var su="fixJSDocTypes_plain",cu="fixJSDocTypes_nullable",lu=[Ot.JSDoc_types_can_only_be_used_inside_documentation_comments.code,Ot._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code,Ot._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code];function doChange29(e,t,n,r,i){e.replaceNode(t,n,i.typeToTypeNode(r,n,void 0))}function getInfo15(e,t,n){const r=findAncestor(getTokenAtPosition(e,t),isTypeContainer),i=r&&r.type;return i&&{typeNode:i,type:getType(n,i)}}function isTypeContainer(e){switch(e.kind){case 235:case 180:case 181:case 263:case 178:case 182:case 201:case 175:case 174:case 170:case 173:case 172:case 179:case 266:case 217:case 261:return!0;default:return!1}}function getType(e,t){if(isJSDocNullableType(t)){const n=e.getTypeFromTypeNode(t.type);return n===e.getNeverType()||n===e.getVoidType()?n:e.getUnionType(append([n,e.getUndefinedType()],t.postfix?void 0:e.getNullType()))}return e.getTypeFromTypeNode(t)}registerCodeFix({errorCodes:lu,getCodeActions(e){const{sourceFile:t}=e,n=e.program.getTypeChecker(),r=getInfo15(t,e.span.start,n);if(!r)return;const{typeNode:i,type:o}=r,a=i.getText(t),s=[fix(o,su,Ot.Change_all_jsdoc_style_types_to_TypeScript)];return 315===i.kind&&s.push(fix(o,cu,Ot.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types)),s;function fix(r,o,s){return createCodeFixAction("jdocTypes",$m.ChangeTracker.with(e,e=>doChange29(e,t,i,r,n)),[Ot.Change_0_to_1,a,n.typeToString(r)],o,s)}},fixIds:[su,cu],getAllCodeActions(e){const{fixId:t,program:n,sourceFile:r}=e,i=n.getTypeChecker();return codeFixAll(e,lu,(e,n)=>{const o=getInfo15(n.file,n.start,i);if(!o)return;const{typeNode:a,type:s}=o,c=315===a.kind&&t===cu?i.getNullableType(s,32768):s;doChange29(e,r,a,c,i)})}});var du="fixMissingCallParentheses",pu=[Ot.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code];function doChange30(e,t,n){e.replaceNodeWithText(t,n,`${n.text}()`)}function getCallName(e,t){const n=getTokenAtPosition(e,t);if(isPropertyAccessExpression(n.parent)){let e=n.parent;for(;isPropertyAccessExpression(e.parent);)e=e.parent;return e.name}if(isIdentifier(n))return n}registerCodeFix({errorCodes:pu,fixIds:[du],getCodeActions(e){const{sourceFile:t,span:n}=e,r=getCallName(t,n.start);if(!r)return;const i=$m.ChangeTracker.with(e,t=>doChange30(t,e.sourceFile,r));return[createCodeFixAction(du,i,Ot.Add_missing_call_parentheses,du,Ot.Add_all_missing_call_parentheses)]},getAllCodeActions:e=>codeFixAll(e,pu,(e,t)=>{const n=getCallName(t.file,t.start);n&&doChange30(e,t.file,n)})});var uu="fixMissingTypeAnnotationOnExports",mu="add-annotation",_u="add-type-assertion",fu=[Ot.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,Ot.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,Ot.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,Ot.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,Ot.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,Ot.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,Ot.Expression_type_can_t_be_inferred_with_isolatedDeclarations.code,Ot.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations.code,Ot.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations.code,Ot.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations.code,Ot.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations.code,Ot.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations.code,Ot.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations.code,Ot.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations.code,Ot.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations.code,Ot.Default_exports_can_t_be_inferred_with_isolatedDeclarations.code,Ot.Only_const_arrays_can_be_inferred_with_isolatedDeclarations.code,Ot.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function.code,Ot.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations.code,Ot.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations.code,Ot.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit.code],gu=new Set([178,175,173,263,219,220,261,170,278,264,207,208]),yu=531469;function addCodeAction(e,t,n,r,i){const o=withContext(n,r,i);o.result&&o.textChanges.length&&t.push(createCodeFixAction(e,o.textChanges,o.result,uu,Ot.Add_all_missing_type_annotations))}function withContext(e,t,n){const r={typeNode:void 0,mutatedTarget:!1},i=$m.ChangeTracker.fromContext(e),o=e.sourceFile,a=e.program,s=a.getTypeChecker(),c=zn(a.getCompilerOptions()),l=createImportAdder(e.sourceFile,e.program,e.preferences,e.host),d=new Set,p=new Set,u=createPrinter({preserveSourceNewlines:!1}),m=n({addTypeAnnotation:function addTypeAnnotation(t){e.cancellationToken.throwIfCancellationRequested();const n=getTokenAtPosition(o,t.start),r=findExpandoFunction(n);if(r)return isFunctionDeclaration(r)?function createNamespaceForExpandoProperties(e){var t;if(null==p?void 0:p.has(e))return;null==p||p.add(e);const n=s.getTypeAtLocation(e),r=s.getPropertiesOfType(n);if(!e.name||0===r.length)return;const c=[];for(const t of r)isIdentifierText(t.name,zn(a.getCompilerOptions()))&&(t.valueDeclaration&&isVariableDeclaration(t.valueDeclaration)||c.push(Wr.createVariableStatement([Wr.createModifier(95)],Wr.createVariableDeclarationList([Wr.createVariableDeclaration(t.name,void 0,typeToTypeNode2(s.getTypeOfSymbol(t),e),void 0)]))));if(0===c.length)return;const l=[];(null==(t=e.modifiers)?void 0:t.some(e=>95===e.kind))&&l.push(Wr.createModifier(95));l.push(Wr.createModifier(138));const d=Wr.createModuleDeclaration(l,e.name,Wr.createModuleBlock(c),101441696);return i.insertNodeAfter(o,e,d),[Ot.Annotate_types_of_properties_expando_function_in_a_namespace]}(r):fixIsolatedDeclarationError(r);const c=function findAncestorWithMissingType(e){return findAncestor(e,e=>gu.has(e.kind)&&(!isObjectBindingPattern(e)&&!isArrayBindingPattern(e)||isVariableDeclaration(e.parent)))}(n);if(c)return fixIsolatedDeclarationError(c);return},addInlineAssertion:function addInlineAssertion(t){e.cancellationToken.throwIfCancellationRequested();const n=getTokenAtPosition(o,t.start);if(findExpandoFunction(n))return;const r=findBestFittingNode(n,t);if(!r||isValueSignatureDeclaration(r)||isValueSignatureDeclaration(r.parent))return;const a=isExpression(r),c=isShorthandPropertyAssignment(r);if(!c&&isDeclaration(r))return;if(findAncestor(r,isBindingPattern))return;if(findAncestor(r,isEnumMember))return;if(a&&(findAncestor(r,isHeritageClause)||findAncestor(r,isTypeNode)))return;if(isSpreadElement(r))return;const l=findAncestor(r,isVariableDeclaration),d=l&&s.getTypeAtLocation(l);if(d&&8192&d.flags)return;if(!a&&!c)return;const{typeNode:p,mutatedTarget:u}=inferType(r,d);if(!p||u)return;c?i.insertNodeAt(o,r.end,createAsExpression(getSynthesizedDeepClone(r.name),p),{prefix:": "}):a?i.replaceNode(o,r,function createSatisfiesAsExpression(e,t){needsParenthesizedExpressionForAssertion(e)&&(e=Wr.createParenthesizedExpression(e));return Wr.createAsExpression(Wr.createSatisfiesExpression(e,getSynthesizedDeepClone(t)),t)}(getSynthesizedDeepClone(r),p)):h.assertNever(r);return[Ot.Add_satisfies_and_an_inline_type_assertion_with_0,typeToStringForDiag(p)]},extractAsVariable:function extractAsVariable(t){e.cancellationToken.throwIfCancellationRequested();const n=findBestFittingNode(getTokenAtPosition(o,t.start),t);if(!n||isValueSignatureDeclaration(n)||isValueSignatureDeclaration(n.parent))return;if(!isExpression(n))return;if(isArrayLiteralExpression(n))return i.replaceNode(o,n,createAsExpression(n,Wr.createTypeReferenceNode("const"))),[Ot.Mark_array_literal_as_const];const r=findAncestor(n,isPropertyAssignment);if(r){if(r===n.parent&&isEntityNameExpression(n))return;const e=Wr.createUniqueName(getIdentifierForNode(n,o,s,o),16);let t=n,a=n;if(isSpreadElement(t)&&(t=walkUpParenthesizedExpressions(t.parent),a=isConstAssertion2(t.parent)?t=t.parent:createAsExpression(t,Wr.createTypeReferenceNode("const"))),isEntityNameExpression(t))return;const c=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(e,void 0,void 0,a)],2)),l=findAncestor(n,isStatement);return i.insertNodeBefore(o,l,c),i.replaceNode(o,t,Wr.createAsExpression(Wr.cloneNode(e),Wr.createTypeQueryNode(Wr.cloneNode(e)))),[Ot.Extract_to_variable_and_replace_with_0_as_typeof_0,typeToStringForDiag(e)]}}});return l.writeFixes(i),{result:m,textChanges:i.getChanges()};function needsParenthesizedExpressionForAssertion(e){return!(isEntityNameExpression(e)||isCallExpression(e)||isObjectLiteralExpression(e)||isArrayLiteralExpression(e))}function createAsExpression(e,t){return needsParenthesizedExpressionForAssertion(e)&&(e=Wr.createParenthesizedExpression(e)),Wr.createAsExpression(e,t)}function findExpandoFunction(e){const t=findAncestor(e,e=>isStatement(e)?"quit":isExpandoPropertyDeclaration(e));if(t&&isExpandoPropertyDeclaration(t)){let e=t;if(isBinaryExpression(e)&&(e=e.left,!isExpandoPropertyDeclaration(e)))return;const n=s.getTypeAtLocation(e.expression);if(!n)return;if(some(s.getPropertiesOfType(n),e=>e.valueDeclaration===t||e.valueDeclaration===t.parent)){const e=n.symbol.valueDeclaration;if(e){if(isFunctionExpressionOrArrowFunction(e)&&isVariableDeclaration(e.parent))return e.parent;if(isFunctionDeclaration(e))return e}}}}function fixIsolatedDeclarationError(e){if(!(null==d?void 0:d.has(e)))switch(null==d||d.add(e),e.kind){case 170:case 173:case 261:return function addTypeToVariableLike(e){const{typeNode:t}=inferType(e);if(t)return e.type?i.replaceNode(getSourceFileOfNode(e),e.type,t):i.tryInsertTypeAnnotation(getSourceFileOfNode(e),e,t),[Ot.Add_annotation_of_type_0,typeToStringForDiag(t)]}(e);case 220:case 219:case 263:case 175:case 178:return function addTypeToSignatureDeclaration(e,t){if(e.type)return;const{typeNode:n}=inferType(e);if(n)return i.tryInsertTypeAnnotation(t,e,n),[Ot.Add_return_type_0,typeToStringForDiag(n)]}(e,o);case 278:return function transformExportAssignment(e){if(e.isExportEquals)return;const{typeNode:t}=inferType(e.expression);if(!t)return;const n=Wr.createUniqueName("_default");return i.replaceNodeWithNodes(o,e,[Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(n,void 0,t,e.expression)],2)),Wr.updateExportAssignment(e,null==e?void 0:e.modifiers,n)]),[Ot.Extract_default_export_to_variable]}(e);case 264:return function transformExtendsClauseWithExpression(e){var t,n;const r=null==(t=e.heritageClauses)?void 0:t.find(e=>96===e.token),a=null==r?void 0:r.types[0];if(!a)return;const{typeNode:s}=inferType(a.expression);if(!s)return;const c=Wr.createUniqueName(e.name?e.name.text+"Base":"Anonymous",16),l=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(c,void 0,s,a.expression)],2));i.insertNodeBefore(o,e,l);const d=getTrailingCommentRanges(o.text,a.end),p=(null==(n=null==d?void 0:d[d.length-1])?void 0:n.end)??a.end;return i.replaceRange(o,{pos:a.getFullStart(),end:p},c,{prefix:" "}),[Ot.Extract_base_class_to_variable]}(e);case 207:case 208:return function transformDestructuringPatterns(e){var t;const n=e.parent,r=e.parent.parent.parent;if(!n.initializer)return;let a;const s=[];if(isIdentifier(n.initializer))a={expression:{kind:3,identifier:n.initializer}};else{const e=Wr.createUniqueName("dest",16);a={expression:{kind:3,identifier:e}},s.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(e,void 0,void 0,n.initializer)],2)))}const c=[];isArrayBindingPattern(e)?addArrayBindingPatterns(e,c,a):addObjectBindingPatterns(e,c,a);const l=new Map;for(const e of c){if(e.element.propertyName&&isComputedPropertyName(e.element.propertyName)){const t=e.element.propertyName.expression,n=Wr.getGeneratedNameForNode(t),r=Wr.createVariableDeclaration(n,void 0,void 0,t),i=Wr.createVariableDeclarationList([r],2),o=Wr.createVariableStatement(void 0,i);s.push(o),l.set(t,n)}const n=e.element.name;if(isArrayBindingPattern(n))addArrayBindingPatterns(n,c,e);else if(isObjectBindingPattern(n))addObjectBindingPatterns(n,c,e);else{const{typeNode:i}=inferType(n);let o=createChainedExpression(e,l);if(e.element.initializer){const n=null==(t=e.element)?void 0:t.propertyName,r=Wr.createUniqueName(n&&isIdentifier(n)?n.text:"temp",16);s.push(Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(r,void 0,void 0,o)],2))),o=Wr.createConditionalExpression(Wr.createBinaryExpression(r,Wr.createToken(37),Wr.createIdentifier("undefined")),Wr.createToken(58),e.element.initializer,Wr.createToken(59),o)}const a=hasSyntacticModifier(r,32)?[Wr.createToken(95)]:void 0;s.push(Wr.createVariableStatement(a,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(n,void 0,i,o)],2)))}}r.declarationList.declarations.length>1&&s.push(Wr.updateVariableStatement(r,r.modifiers,Wr.updateVariableDeclarationList(r.declarationList,r.declarationList.declarations.filter(t=>t!==e.parent))));return i.replaceNodeWithNodes(o,r,s),[Ot.Extract_binding_expressions_to_variable]}(e);default:throw new Error(`Cannot find a fix for the given node ${e.kind}`)}}function addArrayBindingPatterns(e,t,n){for(let r=0;r=0;--e){const i=n[e].expression;0===i.kind?r=Wr.createPropertyAccessChain(r,void 0,Wr.createIdentifier(i.text)):1===i.kind?r=Wr.createElementAccessExpression(r,t.get(i.computed)):2===i.kind&&(r=Wr.createElementAccessExpression(r,i.arrayIndex))}return r}function inferType(e,n){if(1===t)return relativeType(e);let i;if(isValueSignatureDeclaration(e)){const t=s.getSignatureFromDeclaration(e);if(t){const n=s.getTypePredicateOfSignature(t);if(n)return n.type?{typeNode:typePredicateToTypeNode(n,findAncestor(e,isDeclaration)??o,getFlags(n.type)),mutatedTarget:!1}:r;i=s.getReturnTypeOfSignature(t)}}else i=s.getTypeAtLocation(e);if(!i)return r;if(2===t){n&&(i=n);const e=s.getWidenedLiteralType(i);if(s.isTypeAssignableTo(e,i))return r;i=e}const a=findAncestor(e,isDeclaration)??o;return isParameter(e)&&s.requiresAddingImplicitUndefined(e,a)&&(i=s.getUnionType([s.getUndefinedType(),i],0)),{typeNode:typeToTypeNode2(i,a,getFlags(i)),mutatedTarget:!1};function getFlags(t){return(isVariableDeclaration(e)||isPropertyDeclaration(e)&&hasSyntacticModifier(e,264))&&8192&t.flags?1048576:0}}function createTypeOfFromEntityNameExpression(e){return Wr.createTypeQueryNode(getSynthesizedDeepClone(e))}function typeFromSpreads(e,t,n,a,s,c,l,d){const p=[],u=[];let m;const _=findAncestor(e,isStatement);for(const t of a(e))s(t)?(finalizesVariablePart(),isEntityNameExpression(t.expression)?(p.push(createTypeOfFromEntityNameExpression(t.expression)),u.push(t)):makeVariable(t.expression)):(m??(m=[])).push(t);return 0===u.length?r:(finalizesVariablePart(),i.replaceNode(o,e,l(u)),{typeNode:d(p),mutatedTarget:!0});function makeVariable(e){const r=Wr.createUniqueName(t+"_Part"+(u.length+1),16),a=n?Wr.createAsExpression(e,Wr.createTypeReferenceNode("const")):e,s=Wr.createVariableStatement(void 0,Wr.createVariableDeclarationList([Wr.createVariableDeclaration(r,void 0,void 0,a)],2));i.insertNodeBefore(o,_,s),p.push(createTypeOfFromEntityNameExpression(r)),u.push(c(r))}function finalizesVariablePart(){m&&(makeVariable(l(m)),m=void 0)}}function isConstAssertion2(e){return isAssertionExpression(e)&&isConstTypeReference(e.type)}function relativeType(e){if(isParameter(e))return r;if(isShorthandPropertyAssignment(e))return{typeNode:createTypeOfFromEntityNameExpression(e.name),mutatedTarget:!1};if(isEntityNameExpression(e))return{typeNode:createTypeOfFromEntityNameExpression(e),mutatedTarget:!1};if(isConstAssertion2(e))return relativeType(e.expression);if(isArrayLiteralExpression(e)){const t=findAncestor(e,isVariableDeclaration);return function typeFromArraySpreadElements(e,t="temp"){const n=!!findAncestor(e,isConstAssertion2);return n?typeFromSpreads(e,t,n,e=>e.elements,isSpreadElement,Wr.createSpreadElement,e=>Wr.createArrayLiteralExpression(e,!0),e=>Wr.createTupleTypeNode(e.map(Wr.createRestTypeNode))):r}(e,t&&isIdentifier(t.name)?t.name.text:void 0)}if(isObjectLiteralExpression(e)){const t=findAncestor(e,isVariableDeclaration);return function typeFromObjectSpreadAssignment(e,t="temp"){return typeFromSpreads(e,t,!!findAncestor(e,isConstAssertion2),e=>e.properties,isSpreadAssignment,Wr.createSpreadAssignment,e=>Wr.createObjectLiteralExpression(e,!0),Wr.createIntersectionTypeNode)}(e,t&&isIdentifier(t.name)?t.name.text:void 0)}if(isVariableDeclaration(e)&&e.initializer)return relativeType(e.initializer);if(isConditionalExpression(e)){const{typeNode:t,mutatedTarget:n}=relativeType(e.whenTrue);if(!t)return r;const{typeNode:i,mutatedTarget:o}=relativeType(e.whenFalse);return i?{typeNode:Wr.createUnionTypeNode([t,i]),mutatedTarget:n||o}:r}return r}function typeToTypeNode2(e,t,n=0){let r=!1;const i=typeToMinimizedReferenceType(s,e,t,yu|n,1,{moduleResolverHost:a,trackSymbol:()=>!0,reportTruncationError(){r=!0}});if(!i)return;const o=typeNodeToAutoImportableTypeNode(i,l,c);return r?Wr.createKeywordTypeNode(133):o}function typePredicateToTypeNode(e,t,n=0){let r=!1;const i=typePredicateToAutoImportableTypeNode(s,l,e,t,c,yu|n,1,{moduleResolverHost:a,trackSymbol:()=>!0,reportTruncationError(){r=!0}});return r?Wr.createKeywordTypeNode(133):i}function typeToStringForDiag(e){setEmitFlags(e,1);const t=u.printNode(4,e,o);return t.length>cn?t.substring(0,cn-3)+"...":(setEmitFlags(e,0),t)}function findBestFittingNode(e,t){for(;e&&e.endt.addTypeAnnotation(e.span)),addCodeAction(mu,t,e,1,t=>t.addTypeAnnotation(e.span)),addCodeAction(mu,t,e,2,t=>t.addTypeAnnotation(e.span)),addCodeAction(_u,t,e,0,t=>t.addInlineAssertion(e.span)),addCodeAction(_u,t,e,1,t=>t.addInlineAssertion(e.span)),addCodeAction(_u,t,e,2,t=>t.addInlineAssertion(e.span)),addCodeAction("extract-expression",t,e,0,t=>t.extractAsVariable(e.span)),t},getAllCodeActions:e=>createCombinedCodeActions(withContext(e,0,t=>{eachDiagnostic(e,fu,e=>{t.addTypeAnnotation(e)})}).textChanges)});var hu="fixAwaitInSyncFunction",Tu=[Ot.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,Ot.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,Ot.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,Ot.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code];function getNodes3(e,t){const n=getContainingFunction(getTokenAtPosition(e,t));if(!n)return;let r;switch(n.kind){case 175:r=n.name;break;case 263:case 219:r=findChildOfKind(n,100,e);break;case 220:r=findChildOfKind(n,n.typeParameters?30:21,e)||first(n.parameters);break;default:return}return r&&{insertBefore:r,returnType:(i=n,i.type?i.type:isVariableDeclaration(i.parent)&&i.parent.type&&isFunctionTypeNode(i.parent.type)?i.parent.type.type:void 0)};var i}function doChange31(e,t,{insertBefore:n,returnType:r}){if(r){const n=getEntityNameFromTypeNode(r);n&&80===n.kind&&"Promise"===n.text||e.replaceNode(t,r,Wr.createTypeReferenceNode("Promise",Wr.createNodeArray([r])))}e.insertModifierBefore(t,134,n)}registerCodeFix({errorCodes:Tu,getCodeActions(e){const{sourceFile:t,span:n}=e,r=getNodes3(t,n.start);if(!r)return;const i=$m.ChangeTracker.with(e,e=>doChange31(e,t,r));return[createCodeFixAction(hu,i,Ot.Add_async_modifier_to_containing_function,hu,Ot.Add_all_missing_async_modifiers)]},fixIds:[hu],getAllCodeActions:function getAllCodeActionsToFixAwaitInSyncFunction(e){const t=new Set;return codeFixAll(e,Tu,(n,r)=>{const i=getNodes3(r.file,r.start);i&&addToSeen(t,getNodeId(i.insertBefore))&&doChange31(n,e.sourceFile,i)})}});var Su=[Ot._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code,Ot._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code],xu="fixPropertyOverrideAccessor";function doChange32(e,t,n,r,i){let o,a;if(r===Ot._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code)o=t,a=t+n;else if(r===Ot._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code){const n=i.program.getTypeChecker(),r=getTokenAtPosition(e,t).parent;if(isComputedPropertyName(r))return;h.assert(isAccessor(r),"error span of fixPropertyOverrideAccessor should only be on an accessor");const s=r.parent;h.assert(isClassLike(s),"erroneous accessors should only be inside classes");const c=getEffectiveBaseTypeNode(s);if(!c)return;const l=skipParentheses(c.expression),d=isClassExpression(l)?l.symbol:n.getSymbolAtLocation(l);if(!d)return;const p=n.getDeclaredTypeOfSymbol(d),u=n.getPropertyOfType(p,unescapeLeadingUnderscores(getTextOfPropertyName(r.name)));if(!u||!u.valueDeclaration)return;o=u.valueDeclaration.pos,a=u.valueDeclaration.end,e=getSourceFileOfNode(u.valueDeclaration)}else h.fail("fixPropertyOverrideAccessor codefix got unexpected error code "+r);return generateAccessorFromProperty(e,i.program,o,a,i,Ot.Generate_get_and_set_accessors.message)}registerCodeFix({errorCodes:Su,getCodeActions(e){const t=doChange32(e.sourceFile,e.span.start,e.span.length,e.errorCode,e);if(t)return[createCodeFixAction(xu,t,Ot.Generate_get_and_set_accessors,xu,Ot.Generate_get_and_set_accessors_for_all_overriding_properties)]},fixIds:[xu],getAllCodeActions:e=>codeFixAll(e,Su,(t,n)=>{const r=doChange32(n.file,n.start,n.length,n.code,e);if(r)for(const n of r)t.pushRaw(e.sourceFile,n)})});var vu="inferFromUsage",bu=[Ot.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,Ot.Variable_0_implicitly_has_an_1_type.code,Ot.Parameter_0_implicitly_has_an_1_type.code,Ot.Rest_parameter_0_implicitly_has_an_any_type.code,Ot.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,Ot._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,Ot.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,Ot.Member_0_implicitly_has_an_1_type.code,Ot.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,Ot.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,Ot.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,Ot.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,Ot.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,Ot._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,Ot.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,Ot.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,Ot.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];function getDiagnostic(e,t){switch(e){case Ot.Parameter_0_implicitly_has_an_1_type.code:case Ot.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return isSetAccessorDeclaration(getContainingFunction(t))?Ot.Infer_type_of_0_from_usage:Ot.Infer_parameter_types_from_usage;case Ot.Rest_parameter_0_implicitly_has_an_any_type.code:case Ot.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Infer_parameter_types_from_usage;case Ot.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:return Ot.Infer_this_type_of_0_from_usage;default:return Ot.Infer_type_of_0_from_usage}}function doChange33(e,t,n,r,i,o,a,s,c){if(!isParameterPropertyModifier(n.kind)&&80!==n.kind&&26!==n.kind&&110!==n.kind)return;const{parent:l}=n,d=createImportAdder(t,i,c,s);switch(r=function mapSuggestionDiagnostic(e){switch(e){case Ot.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;case Ot.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Variable_0_implicitly_has_an_1_type.code;case Ot.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Parameter_0_implicitly_has_an_1_type.code;case Ot.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Rest_parameter_0_implicitly_has_an_any_type.code;case Ot.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:return Ot.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;case Ot._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;case Ot.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:return Ot.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;case Ot.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:return Ot.Member_0_implicitly_has_an_1_type.code}return e}(r)){case Ot.Member_0_implicitly_has_an_1_type.code:case Ot.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:if(isVariableDeclaration(l)&&a(l)||isPropertyDeclaration(l)||isPropertySignature(l))return annotateVariableDeclaration(e,d,t,l,i,s,o),d.writeFixes(e),l;if(isPropertyAccessExpression(l)){const n=getTypeNodeIfAccessible(inferTypeForVariableFromUsage(l.name,i,o),l,i,s);if(n){const r=Wr.createJSDocTypeTag(void 0,Wr.createJSDocTypeExpression(n),void 0);e.addJSDocTags(t,cast(l.parent.parent,isExpressionStatement),[r])}return d.writeFixes(e),l}return;case Ot.Variable_0_implicitly_has_an_1_type.code:{const t=i.getTypeChecker().getSymbolAtLocation(n);return t&&t.valueDeclaration&&isVariableDeclaration(t.valueDeclaration)&&a(t.valueDeclaration)?(annotateVariableDeclaration(e,d,getSourceFileOfNode(t.valueDeclaration),t.valueDeclaration,i,s,o),d.writeFixes(e),t.valueDeclaration):void 0}}const p=getContainingFunction(n);if(void 0===p)return;let u;switch(r){case Ot.Parameter_0_implicitly_has_an_1_type.code:if(isSetAccessorDeclaration(p)){annotateSetAccessor(e,d,t,p,i,s,o),u=p;break}case Ot.Rest_parameter_0_implicitly_has_an_any_type.code:if(a(p)){const n=cast(l,isParameter);!function annotateParameters(e,t,n,r,i,o,a,s){if(!isIdentifier(r.name))return;const c=function inferTypeForParametersFromUsage(e,t,n,r){const i=getFunctionReferences(e,t,n,r);return i&&inferTypeFromReferences(n,i,r).parameters(e)||e.parameters.map(e=>({declaration:e,type:isIdentifier(e.name)?inferTypeForVariableFromUsage(e.name,n,r):n.getTypeChecker().getAnyType()}))}(i,n,o,s);if(h.assert(i.parameters.length===c.length,"Parameter count and inference count should match"),isInJSFile(i))annotateJSDocParameters(e,n,c,o,a);else{const r=isArrowFunction(i)&&!findChildOfKind(i,21,n);r&&e.insertNodeBefore(n,first(i.parameters),Wr.createToken(21));for(const{declaration:r,type:i}of c)!r||r.type||r.initializer||annotate(e,t,n,r,i,o,a);r&&e.insertNodeAfter(n,last(i.parameters),Wr.createToken(22))}}(e,d,t,n,p,i,s,o),u=n}break;case Ot.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:case Ot._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:isGetAccessorDeclaration(p)&&isIdentifier(p.name)&&(annotate(e,d,t,p,inferTypeForVariableFromUsage(p.name,i,o),i,s),u=p);break;case Ot.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:isSetAccessorDeclaration(p)&&(annotateSetAccessor(e,d,t,p,i,s,o),u=p);break;case Ot.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:$m.isThisTypeAnnotatable(p)&&a(p)&&(!function annotateThis(e,t,n,r,i,o){const a=getFunctionReferences(n,t,r,o);if(!a||!a.length)return;const s=inferTypeFromReferences(r,a,o).thisParameter(),c=getTypeNodeIfAccessible(s,n,r,i);if(!c)return;isInJSFile(n)?function annotateJSDocThis(e,t,n,r){e.addJSDocTags(t,n,[Wr.createJSDocThisTag(void 0,Wr.createJSDocTypeExpression(r))])}(e,t,n,c):e.tryInsertThisTypeAnnotation(t,n,c)}(e,t,p,i,s,o),u=p);break;default:return h.fail(String(r))}return d.writeFixes(e),u}function annotateVariableDeclaration(e,t,n,r,i,o,a){isIdentifier(r.name)&&annotate(e,t,n,r,inferTypeForVariableFromUsage(r.name,i,a),i,o)}function annotateSetAccessor(e,t,n,r,i,o,a){const s=firstOrUndefined(r.parameters);if(s&&isIdentifier(r.name)&&isIdentifier(s.name)){let c=inferTypeForVariableFromUsage(r.name,i,a);c===i.getTypeChecker().getAnyType()&&(c=inferTypeForVariableFromUsage(s.name,i,a)),isInJSFile(r)?annotateJSDocParameters(e,n,[{declaration:s,type:c}],i,o):annotate(e,t,n,s,c,i,o)}}function annotate(e,t,n,r,i,o,a){const s=getTypeNodeIfAccessible(i,r,o,a);if(s)if(isInJSFile(n)&&172!==r.kind){const t=isVariableDeclaration(r)?tryCast(r.parent.parent,isVariableStatement):r;if(!t)return;const i=Wr.createJSDocTypeExpression(s),o=isGetAccessorDeclaration(r)?Wr.createJSDocReturnTag(void 0,i,void 0):Wr.createJSDocTypeTag(void 0,i,void 0);e.addJSDocTags(n,t,[o])}else(function tryReplaceImportTypeNodeWithAutoImport(e,t,n,r,i,o){const a=tryGetAutoImportableReferenceFromTypeNode(e,o);if(a&&r.tryInsertTypeAnnotation(n,t,a.typeNode))return forEach(a.symbols,e=>i.addImportFromExportedSymbol(e,!0)),!0;return!1})(s,r,n,e,t,zn(o.getCompilerOptions()))||e.tryInsertTypeAnnotation(n,r,s)}function annotateJSDocParameters(e,t,n,r,i){const o=n.length&&n[0].declaration.parent;if(!o)return;const a=mapDefined(n,e=>{const t=e.declaration;if(t.initializer||getJSDocType(t)||!isIdentifier(t.name))return;const n=e.type&&getTypeNodeIfAccessible(e.type,t,r,i);if(n){return setEmitFlags(Wr.cloneNode(t.name),7168),{name:Wr.cloneNode(t.name),param:t,isOptional:!!e.isOptional,typeNode:n}}});if(a.length)if(isArrowFunction(o)||isFunctionExpression(o)){const n=isArrowFunction(o)&&!findChildOfKind(o,21,t);n&&e.insertNodeBefore(t,first(o.parameters),Wr.createToken(21)),forEach(a,({typeNode:n,param:r})=>{const i=Wr.createJSDocTypeTag(void 0,Wr.createJSDocTypeExpression(n)),o=Wr.createJSDocComment(void 0,[i]);e.insertNodeAt(t,r.getStart(t),o,{suffix:" "})}),n&&e.insertNodeAfter(t,last(o.parameters),Wr.createToken(22))}else{const n=map(a,({name:e,typeNode:t,isOptional:n})=>Wr.createJSDocParameterTag(void 0,e,!!n,Wr.createJSDocTypeExpression(t),!1,void 0));e.addJSDocTags(t,o,n)}}function getReferences(e,t,n){return mapDefined(vm.getReferenceEntriesForNode(-1,e,t,t.getSourceFiles(),n),e=>e.kind!==vm.EntryKind.Span?tryCast(e.node,isIdentifier):void 0)}function inferTypeForVariableFromUsage(e,t,n){return inferTypeFromReferences(t,getReferences(e,t,n),n).single()}function getFunctionReferences(e,t,n,r){let i;switch(e.kind){case 177:i=findChildOfKind(e,137,t);break;case 220:case 219:const n=e.parent;i=(isVariableDeclaration(n)||isPropertyDeclaration(n))&&isIdentifier(n.name)?n.name:e.name;break;case 263:case 175:case 174:i=e.name}if(i)return getReferences(i,n,r)}function inferTypeFromReferences(e,t,n){const r=e.getTypeChecker(),i={string:()=>r.getStringType(),number:()=>r.getNumberType(),Array:e=>r.createArrayType(e),Promise:e=>r.createPromiseType(e)},o=[r.getStringType(),r.getNumberType(),r.createArrayType(r.getAnyType()),r.createPromiseType(r.getAnyType())];return{single:function single2(){return combineTypes(inferTypesFromReferencesSingle(t))},parameters:function parameters(i){if(0===t.length||!i.parameters)return;const o={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};for(const e of t)n.throwIfCancellationRequested(),calculateUsageOfNode(e,o);const a=[...o.constructs||[],...o.calls||[]];return i.parameters.map((t,o)=>{const s=[],c=isRestParameter(t);let l=!1;for(const e of a)if(e.argumentTypes.length<=o)l=isInJSFile(i),s.push(r.getUndefinedType());else if(c)for(let t=o;t{t.has(n)||t.set(n,[]),t.get(n).push(e)});const n=new Map;return t.forEach((e,t)=>{n.set(t,combineUsages(e))}),{isNumber:e.some(e=>e.isNumber),isString:e.some(e=>e.isString),isNumberOrString:e.some(e=>e.isNumberOrString),candidateTypes:flatMap(e,e=>e.candidateTypes),properties:n,calls:flatMap(e,e=>e.calls),constructs:flatMap(e,e=>e.constructs),numberIndex:forEach(e,e=>e.numberIndex),stringIndex:forEach(e,e=>e.stringIndex),candidateThisTypes:flatMap(e,e=>e.candidateThisTypes),inferredTypes:void 0}}function inferTypesFromReferencesSingle(e){const t={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};for(const r of e)n.throwIfCancellationRequested(),calculateUsageOfNode(r,t);return inferTypes(t)}function calculateUsageOfNode(e,t){for(;isRightSideOfQualifiedNameOrPropertyAccess(e);)e=e.parent;switch(e.parent.kind){case 245:!function inferTypeFromExpressionStatement(e,t){addCandidateType(t,isCallExpression(e)?r.getVoidType():r.getAnyType())}(e,t);break;case 226:t.isNumber=!0;break;case 225:!function inferTypeFromPrefixUnaryExpression(e,t){switch(e.operator){case 46:case 47:case 41:case 55:t.isNumber=!0;break;case 40:t.isNumberOrString=!0}}(e.parent,t);break;case 227:!function inferTypeFromBinaryExpression(e,t,n){switch(t.operatorToken.kind){case 43:case 42:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 66:case 68:case 67:case 69:case 70:case 74:case 75:case 79:case 71:case 73:case 72:case 41:case 30:case 33:case 32:case 34:const i=r.getTypeAtLocation(t.left===e?t.right:t.left);1056&i.flags?addCandidateType(n,i):n.isNumber=!0;break;case 65:case 40:const o=r.getTypeAtLocation(t.left===e?t.right:t.left);1056&o.flags?addCandidateType(n,o):296&o.flags?n.isNumber=!0:402653316&o.flags?n.isString=!0:1&o.flags||(n.isNumberOrString=!0);break;case 64:case 35:case 37:case 38:case 36:case 77:case 78:case 76:addCandidateType(n,r.getTypeAtLocation(t.left===e?t.right:t.left));break;case 103:e===t.left&&(n.isString=!0);break;case 57:case 61:e!==t.left||261!==e.parent.parent.kind&&!isAssignmentExpression(e.parent.parent,!0)||addCandidateType(n,r.getTypeAtLocation(t.right))}}(e,e.parent,t);break;case 297:case 298:!function inferTypeFromSwitchStatementLabel(e,t){addCandidateType(t,r.getTypeAtLocation(e.parent.parent.expression))}(e.parent,t);break;case 214:case 215:e.parent.expression===e?function inferTypeFromCallExpression(e,t){const n={argumentTypes:[],return_:{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0}};if(e.arguments)for(const t of e.arguments)n.argumentTypes.push(r.getTypeAtLocation(t));calculateUsageOfNode(e,n.return_),214===e.kind?(t.calls||(t.calls=[])).push(n):(t.constructs||(t.constructs=[])).push(n)}(e.parent,t):inferTypeFromContextualType(e,t);break;case 212:!function inferTypeFromPropertyAccessExpression(e,t){const n=escapeLeadingUnderscores(e.name.text);t.properties||(t.properties=new Map);const r=t.properties.get(n)||{isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};calculateUsageOfNode(e,r),t.properties.set(n,r)}(e.parent,t);break;case 213:!function inferTypeFromPropertyElementExpression(e,t,n){if(t===e.argumentExpression)return void(n.isNumberOrString=!0);{const t=r.getTypeAtLocation(e.argumentExpression),i={isNumber:void 0,isString:void 0,isNumberOrString:void 0,candidateTypes:void 0,properties:void 0,calls:void 0,constructs:void 0,numberIndex:void 0,stringIndex:void 0,candidateThisTypes:void 0,inferredTypes:void 0};calculateUsageOfNode(e,i),296&t.flags?n.numberIndex=i:n.stringIndex=i}}(e.parent,e,t);break;case 304:case 305:!function inferTypeFromPropertyAssignment(e,t){const n=isVariableDeclaration(e.parent.parent)?e.parent.parent:e.parent;addCandidateThisType(t,r.getTypeAtLocation(n))}(e.parent,t);break;case 173:!function inferTypeFromPropertyDeclaration(e,t){addCandidateThisType(t,r.getTypeAtLocation(e.parent))}(e.parent,t);break;case 261:{const{name:n,initializer:i}=e.parent;if(e===n){i&&addCandidateType(t,r.getTypeAtLocation(i));break}}default:return inferTypeFromContextualType(e,t)}}function inferTypeFromContextualType(e,t){isExpressionNode(e)&&addCandidateType(t,r.getContextualType(e))}function combineFromUsage(e){return combineTypes(inferTypes(e))}function combineTypes(e){if(!e.length)return r.getAnyType();const t=r.getUnionType([r.getStringType(),r.getNumberType()]);let n=function removeLowPriorityInferences(e,t){const n=[];for(const r of e)for(const{high:e,low:i}of t)e(r)&&(h.assert(!i(r),"Priority can't have both low and high"),n.push(i));return e.filter(e=>n.every(t=>!t(e)))}(e,[{high:e=>e===r.getStringType()||e===r.getNumberType(),low:e=>e===t},{high:e=>!(16385&e.flags),low:e=>!!(16385&e.flags)},{high:e=>!(114689&e.flags||16&getObjectFlags(e)),low:e=>!!(16&getObjectFlags(e))}]);const i=n.filter(e=>16&getObjectFlags(e));return i.length&&(n=n.filter(e=>!(16&getObjectFlags(e))),n.push(function combineAnonymousTypes(e){if(1===e.length)return e[0];const t=[],n=[],i=[],o=[];let a=!1,s=!1;const c=createMultiMap();for(const l of e){for(const e of r.getPropertiesOfType(l))c.add(e.escapedName,e.valueDeclaration?r.getTypeOfSymbolAtLocation(e,e.valueDeclaration):r.getAnyType());t.push(...r.getSignaturesOfType(l,0)),n.push(...r.getSignaturesOfType(l,1));const e=r.getIndexInfoOfType(l,0);e&&(i.push(e.type),a=a||e.isReadonly);const d=r.getIndexInfoOfType(l,1);d&&(o.push(d.type),s=s||d.isReadonly)}const l=mapEntries(c,(t,n)=>{const i=n.lengthr.getBaseTypeOfLiteralType(e)),d=(null==(a=e.calls)?void 0:a.length)?inferStructuralType(e):void 0;return d&&c?s.push(r.getUnionType([d,...c],2)):(d&&s.push(d),length(c)&&s.push(...c)),s.push(...function inferNamedTypesFromProperties(e){if(!e.properties||!e.properties.size)return[];const t=o.filter(t=>function allPropertiesAreAssignableToUsage(e,t){return!!t.properties&&!forEachEntry(t.properties,(t,n)=>{const i=r.getTypeOfPropertyOfType(e,n);if(!i)return!0;if(t.calls){return!r.getSignaturesOfType(i,0).length||!r.isTypeAssignableTo(i,function getFunctionFromCalls(e){return r.createAnonymousType(void 0,createSymbolTable(),[getSignatureFromCalls(e)],l,l)}(t.calls))}return!r.isTypeAssignableTo(i,combineFromUsage(t))})}(t,e));if(0function inferInstantiationFromUsage(e,t){if(!(4&getObjectFlags(e)&&t.properties))return e;const n=e.target,o=singleOrUndefined(n.typeParameters);if(!o)return e;const a=[];return t.properties.forEach((e,t)=>{const i=r.getTypeOfPropertyOfType(n,t);h.assert(!!i,"generic should have all the properties of its reference."),a.push(...inferTypeParameters(i,combineFromUsage(e),o))}),i[e.symbol.escapedName](combineTypes(a))}(t,e));return[]}(e)),s}function inferStructuralType(e){const t=new Map;e.properties&&e.properties.forEach((e,n)=>{const i=r.createSymbol(4,n);i.links.type=combineFromUsage(e),t.set(n,i)});const n=e.calls?[getSignatureFromCalls(e.calls)]:[],i=e.constructs?[getSignatureFromCalls(e.constructs)]:[],o=e.stringIndex?[r.createIndexInfo(r.getStringType(),combineFromUsage(e.stringIndex),!1)]:[];return r.createAnonymousType(void 0,t,n,i,o)}function inferTypeParameters(e,t,n){if(e===n)return[t];if(3145728&e.flags)return flatMap(e.types,e=>inferTypeParameters(e,t,n));if(4&getObjectFlags(e)&&4&getObjectFlags(t)){const i=r.getTypeArguments(e),o=r.getTypeArguments(t),a=[];if(i&&o)for(let e=0;ee.argumentTypes.length));for(let i=0;ie.argumentTypes[i]||r.getUndefinedType())),e.some(e=>void 0===e.argumentTypes[i])&&(n.flags|=16777216),t.push(n)}const i=combineFromUsage(combineUsages(e.map(e=>e.return_)));return r.createSignature(void 0,void 0,void 0,t,i,void 0,n,0)}function addCandidateType(e,t){!t||1&t.flags||131072&t.flags||(e.candidateTypes||(e.candidateTypes=[])).push(t)}function addCandidateThisType(e,t){!t||1&t.flags||131072&t.flags||(e.candidateThisTypes||(e.candidateThisTypes=[])).push(t)}}registerCodeFix({errorCodes:bu,getCodeActions(e){const{sourceFile:t,program:n,span:{start:r},errorCode:i,cancellationToken:o,host:a,preferences:s}=e,c=getTokenAtPosition(t,r);let l;const d=$m.ChangeTracker.with(e,e=>{l=doChange33(e,t,c,i,n,o,returnTrue,a,s)}),p=l&&getNameOfDeclaration(l);return p&&0!==d.length?[createCodeFixAction(vu,d,[getDiagnostic(i,c),getTextOfNode(p)],vu,Ot.Infer_all_types_from_usage)]:void 0},fixIds:[vu],getAllCodeActions(e){const{sourceFile:t,program:n,cancellationToken:r,host:i,preferences:o}=e,a=nodeSeenTracker();return codeFixAll(e,bu,(e,s)=>{doChange33(e,t,getTokenAtPosition(s.file,s.start),s.code,n,r,a,i,o)})}});var Cu="fixReturnTypeInAsyncFunction",Eu=[Ot.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code];function getInfo16(e,t,n){if(isInJSFile(e))return;const r=findAncestor(getTokenAtPosition(e,n),isFunctionLikeDeclaration),i=null==r?void 0:r.type;if(!i)return;const o=t.getTypeFromTypeNode(i),a=t.getAwaitedType(o)||t.getVoidType(),s=t.typeToTypeNode(a,i,void 0);return s?{returnTypeNode:i,returnType:o,promisedTypeNode:s,promisedType:a}:void 0}function doChange34(e,t,n,r){e.replaceNode(t,n,Wr.createTypeReferenceNode("Promise",[r]))}registerCodeFix({errorCodes:Eu,fixIds:[Cu],getCodeActions:function getCodeActionsToFixReturnTypeInAsyncFunction(e){const{sourceFile:t,program:n,span:r}=e,i=n.getTypeChecker(),o=getInfo16(t,n.getTypeChecker(),r.start);if(!o)return;const{returnTypeNode:a,returnType:s,promisedTypeNode:c,promisedType:l}=o,d=$m.ChangeTracker.with(e,e=>doChange34(e,t,a,c));return[createCodeFixAction(Cu,d,[Ot.Replace_0_with_Promise_1,i.typeToString(s),i.typeToString(l)],Cu,Ot.Fix_all_incorrect_return_type_of_an_async_functions)]},getAllCodeActions:e=>codeFixAll(e,Eu,(t,n)=>{const r=getInfo16(n.file,e.program.getTypeChecker(),n.start);r&&doChange34(t,n.file,r.returnTypeNode,r.promisedTypeNode)})});var Nu="disableJsDiagnostics",ku="disableJsDiagnostics",Fu=mapDefined(Object.keys(Ot),e=>{const t=Ot[e];return 1===t.category?t.code:void 0});function makeChange9(e,t,n,r){const{line:i}=getLineAndCharacterOfPosition(t,n);r&&!tryAddToSet(r,i)||e.insertCommentBeforeLine(t,i,n," @ts-ignore")}function createMissingMemberNodes(e,t,n,r,i,o,a){const s=e.symbol.members;for(const c of t)s.has(c.escapedName)||addNewNodeForMemberSymbol(c,e,n,r,i,o,a,void 0)}function getNoopSymbolTrackerWithResolver(e){return{trackSymbol:()=>!1,moduleResolverHost:getModuleSpecifierResolverHost(e.program,e.host)}}registerCodeFix({errorCodes:Fu,getCodeActions:function getCodeActionsToDisableJsDiagnostics(e){const{sourceFile:t,program:n,span:r,host:i,formatContext:o}=e;if(!isInJSFile(t)||!isCheckJsEnabledForFile(t,n.getCompilerOptions()))return;const a=t.checkJsDirective?"":getNewLineOrDefaultFromHost(i,o.options),s=[createCodeFixActionWithoutFixAll(Nu,[createFileTextChanges(t.fileName,[createTextChange(t.checkJsDirective?createTextSpanFromBounds(t.checkJsDirective.pos,t.checkJsDirective.end):createTextSpan(0,0),`// @ts-nocheck${a}`)])],Ot.Disable_checking_for_this_file)];return $m.isValidLocationToAddComment(t,r.start)&&s.unshift(createCodeFixAction(Nu,$m.ChangeTracker.with(e,e=>makeChange9(e,t,r.start)),Ot.Ignore_this_error_message,ku,Ot.Add_ts_ignore_to_all_error_messages)),s},fixIds:[ku],getAllCodeActions:e=>{const t=new Set;return codeFixAll(e,Fu,(e,n)=>{$m.isValidLocationToAddComment(n.file,n.start)&&makeChange9(e,n.file,n.start,t)})}});var Pu=(e=>(e[e.Method=1]="Method",e[e.Property=2]="Property",e[e.All=3]="All",e))(Pu||{});function addNewNodeForMemberSymbol(e,t,n,r,i,o,a,s,c=3,d=!1){const p=e.getDeclarations(),u=firstOrUndefined(p),m=r.program.getTypeChecker(),_=zn(r.program.getCompilerOptions()),f=(null==u?void 0:u.kind)??172,g=function createDeclarationName(e,t){if(262144&getCheckFlags(e)){const t=e.links.nameType;if(t&&isTypeUsableAsPropertyName(t))return Wr.createIdentifier(unescapeLeadingUnderscores(getPropertyNameFromType(t)))}return getSynthesizedDeepClone(getNameOfDeclaration(t),!1)}(e,u),y=u?getEffectiveModifierFlags(u):0;let T=256&y;T|=1&y?1:4&y?4:0,u&&isAutoAccessorPropertyDeclaration(u)&&(T|=512);const S=function createModifiers(){let e;T&&(e=combine(e,Wr.createModifiersFromModifierFlags(T)));(function shouldAddOverrideKeyword(){return!!(r.program.getCompilerOptions().noImplicitOverride&&u&&hasAbstractModifier(u))})()&&(e=append(e,Wr.createToken(164)));return e&&Wr.createNodeArray(e)}(),x=m.getWidenedType(m.getTypeOfSymbolAtLocation(e,t)),v=!!(16777216&e.flags),b=!!(33554432&t.flags)||d,C=getQuotePreference(n,i),E=1|(0===C?268435456:0);switch(f){case 172:case 173:let n=m.typeToTypeNode(x,t,E,8,getNoopSymbolTrackerWithResolver(r));if(o){const e=tryGetAutoImportableReferenceFromTypeNode(n,_);e&&(n=e.typeNode,importSymbols(o,e.symbols))}a(Wr.createPropertyDeclaration(S,u?createName(g):e.getName(),v&&2&c?Wr.createToken(58):void 0,n,void 0));break;case 178:case 179:{h.assertIsDefined(p);let e=m.typeToTypeNode(x,t,E,void 0,getNoopSymbolTrackerWithResolver(r));const n=getAllAccessorDeclarations(p,u),i=n.secondAccessor?[n.firstAccessor,n.secondAccessor]:[n.firstAccessor];if(o){const t=tryGetAutoImportableReferenceFromTypeNode(e,_);t&&(e=t.typeNode,importSymbols(o,t.symbols))}for(const t of i)if(isGetAccessorDeclaration(t))a(Wr.createGetAccessorDeclaration(S,createName(g),l,createTypeNode(e),createBody(s,C,b)));else{h.assertNode(t,isSetAccessorDeclaration,"The counterpart to a getter should be a setter");const n=getSetAccessorValueParameter(t),r=n&&isIdentifier(n.name)?idText(n.name):void 0;a(Wr.createSetAccessorDeclaration(S,createName(g),createDummyParameters(1,[r],[createTypeNode(e)],1,!1),createBody(s,C,b)))}break}case 174:case 175:h.assertIsDefined(p);const i=x.isUnion()?flatMap(x.types,e=>e.getCallSignatures()):x.getCallSignatures();if(!some(i))break;if(1===p.length){h.assert(1===i.length,"One declaration implies one signature");const e=i[0];outputMethod(C,e,S,createName(g),createBody(s,C,b));break}for(const e of i)e.declaration&&33554432&e.declaration.flags||outputMethod(C,e,S,createName(g));if(!b)if(p.length>i.length){const e=m.getSignatureFromDeclaration(p[p.length-1]);outputMethod(C,e,S,createName(g),createBody(s,C))}else h.assert(p.length===i.length,"Declarations and signatures should match count"),a(function createMethodImplementingSignatures(e,t,n,r,i,o,a,s,c){let l=r[0],d=r[0].minArgumentCount,p=!1;for(const e of r)d=Math.min(e.minArgumentCount,d),signatureHasRestParameter(e)&&(p=!0),e.parameters.length>=l.parameters.length&&(!signatureHasRestParameter(e)||signatureHasRestParameter(l))&&(l=e);const u=l.parameters.length-(signatureHasRestParameter(l)?1:0),m=l.parameters.map(e=>e.name),_=createDummyParameters(u,m,void 0,d,!1);if(p){const e=Wr.createParameterDeclaration(void 0,Wr.createToken(26),m[u]||"rest",u>=d?Wr.createToken(58):void 0,Wr.createArrayTypeNode(Wr.createKeywordTypeNode(159)),void 0);_.push(e)}return function createStubbedMethod(e,t,n,r,i,o,a,s){return Wr.createMethodDeclaration(e,void 0,t,n?Wr.createToken(58):void 0,r,i,o,s||createStubbedMethodBody(a))}(a,i,o,void 0,_,function getReturnTypeFromSignatures(e,t,n,r){if(length(e)){const i=t.getUnionType(map(e,t.getReturnTypeOfSignature));return t.typeToTypeNode(i,r,1,8,getNoopSymbolTrackerWithResolver(n))}}(r,e,t,n),s,c)}(m,r,t,i,createName(g),v&&!!(1&c),S,C,s))}function outputMethod(e,n,i,s,l){const d=createSignatureDeclarationFromSignature(175,r,e,n,l,s,i,v&&!!(1&c),t,o);d&&a(d)}function createName(e){return isIdentifier(e)&&"constructor"===e.escapedText?Wr.createComputedPropertyName(Wr.createStringLiteral(idText(e),0===C)):getSynthesizedDeepClone(e,!1)}function createBody(e,t,n){return n?void 0:getSynthesizedDeepClone(e,!1)||createStubbedMethodBody(t)}function createTypeNode(e){return getSynthesizedDeepClone(e,!1)}}function createSignatureDeclarationFromSignature(e,t,n,r,i,o,a,s,c,l){const d=t.program,p=d.getTypeChecker(),u=zn(d.getCompilerOptions()),m=isInJSFile(c),_=524545|(0===n?268435456:0),f=p.signatureToSignatureDeclaration(r,e,c,_,8,getNoopSymbolTrackerWithResolver(t));if(!f)return;let g=m?void 0:f.typeParameters,y=f.parameters,h=m?void 0:getSynthesizedDeepClone(f.type);if(l){if(g){const e=sameMap(g,e=>{let t=e.constraint,n=e.default;if(t){const e=tryGetAutoImportableReferenceFromTypeNode(t,u);e&&(t=e.typeNode,importSymbols(l,e.symbols))}if(n){const e=tryGetAutoImportableReferenceFromTypeNode(n,u);e&&(n=e.typeNode,importSymbols(l,e.symbols))}return Wr.updateTypeParameterDeclaration(e,e.modifiers,e.name,t,n)});g!==e&&(g=setTextRange(Wr.createNodeArray(e,g.hasTrailingComma),g))}const e=sameMap(y,e=>{let t=m?void 0:e.type;if(t){const e=tryGetAutoImportableReferenceFromTypeNode(t,u);e&&(t=e.typeNode,importSymbols(l,e.symbols))}return Wr.updateParameterDeclaration(e,e.modifiers,e.dotDotDotToken,e.name,m?void 0:e.questionToken,t,e.initializer)});if(y!==e&&(y=setTextRange(Wr.createNodeArray(e,y.hasTrailingComma),y)),h){const e=tryGetAutoImportableReferenceFromTypeNode(h,u);e&&(h=e.typeNode,importSymbols(l,e.symbols))}}const T=s?Wr.createToken(58):void 0,S=f.asteriskToken;return isFunctionExpression(f)?Wr.updateFunctionExpression(f,a,f.asteriskToken,tryCast(o,isIdentifier),g,y,h,i??f.body):isArrowFunction(f)?Wr.updateArrowFunction(f,a,g,y,h,f.equalsGreaterThanToken,i??f.body):isMethodDeclaration(f)?Wr.updateMethodDeclaration(f,a,S,o??Wr.createIdentifier(""),T,g,y,h,i):isFunctionDeclaration(f)?Wr.updateFunctionDeclaration(f,a,f.asteriskToken,tryCast(o,isIdentifier),g,y,h,i??f.body):void 0}function createSignatureDeclarationFromCallExpression(e,t,n,r,i,o,a){const s=getQuotePreference(t.sourceFile,t.preferences),c=zn(t.program.getCompilerOptions()),l=getNoopSymbolTrackerWithResolver(t),d=t.program.getTypeChecker(),p=isInJSFile(a),{typeArguments:u,arguments:m,parent:_}=r,f=p?void 0:d.getContextualType(r),g=map(m,e=>isIdentifier(e)?e.text:isPropertyAccessExpression(e)&&isIdentifier(e.name)?e.name.text:void 0),y=p?[]:map(m,e=>d.getTypeAtLocation(e)),{argumentTypeNodes:T,argumentTypeParameters:S}=function getArgumentTypesAndTypeParameters(e,t,n,r,i,o,a,s){const c=[],l=new Map;for(let d=0;de[0])),i=new Map(t);if(n){const i=n.filter(n=>!t.some(t=>{var r;return e.getTypeAtLocation(n)===(null==(r=t[1])?void 0:r.argumentType)})),o=r.size+i.length;for(let e=0;r.size{var t;return Wr.createTypeParameterDeclaration(void 0,e,null==(t=i.get(e))?void 0:t.constraint)})}(d,S,u),C=createDummyParameters(m.length,g,T,void 0,p),E=p||void 0===f?void 0:d.typeToTypeNode(f,a,void 0,void 0,l);switch(e){case 175:return Wr.createMethodDeclaration(x,v,i,void 0,b,C,E,createStubbedMethodBody(s));case 174:return Wr.createMethodSignature(x,i,void 0,b,C,void 0===E?Wr.createKeywordTypeNode(159):E);case 263:return h.assert("string"==typeof i||isIdentifier(i),"Unexpected name"),Wr.createFunctionDeclaration(x,v,i,b,C,E,createStubbedBody(Ot.Function_not_implemented.message,s));default:h.fail("Unexpected kind")}}function createTypeParameterName(e){return 84+e<=90?String.fromCharCode(84+e):`T${e}`}function typeToAutoImportableTypeNode(e,t,n,r,i,o,a,s){const c=e.typeToTypeNode(n,r,o,a,s);if(c)return typeNodeToAutoImportableTypeNode(c,t,i)}function typeNodeToAutoImportableTypeNode(e,t,n){const r=tryGetAutoImportableReferenceFromTypeNode(e,n);return r&&(importSymbols(t,r.symbols),e=r.typeNode),getSynthesizedDeepClone(e)}function typeToMinimizedReferenceType(e,t,n,r,i,o){let a=e.typeToTypeNode(t,n,r,i,o);if(a){if(isTypeReferenceNode(a)){const n=t;if(n.typeArguments&&a.typeArguments){const t=function endOfRequiredTypeParameters(e,t){var n;h.assert(t.typeArguments);const r=t.typeArguments,i=t.target;for(let t=0;te===r[t]))return t}return r.length}(e,n);if(t=r?Wr.createToken(58):void 0,i?void 0:(null==n?void 0:n[s])||Wr.createKeywordTypeNode(159),void 0);o.push(l)}return o}function createStubbedMethodBody(e){return createStubbedBody(Ot.Method_not_implemented.message,e)}function createStubbedBody(e,t){return Wr.createBlock([Wr.createThrowStatement(Wr.createNewExpression(Wr.createIdentifier("Error"),void 0,[Wr.createStringLiteral(e,0===t)]))],!0)}function setJsonCompilerOptionValues(e,t,n){const r=getTsConfigObjectLiteralExpression(t);if(!r)return;const i=findJsonProperty(r,"compilerOptions");if(void 0===i)return void e.insertNodeAtObjectStart(t,r,createJsonPropertyAssignment("compilerOptions",Wr.createObjectLiteralExpression(n.map(([e,t])=>createJsonPropertyAssignment(e,t)),!0)));const o=i.initializer;if(isObjectLiteralExpression(o))for(const[r,i]of n){const n=findJsonProperty(o,r);void 0===n?e.insertNodeAtObjectStart(t,o,createJsonPropertyAssignment(r,i)):e.replaceNode(t,n.initializer,i)}}function setJsonCompilerOptionValue(e,t,n,r){setJsonCompilerOptionValues(e,t,[[n,r]])}function createJsonPropertyAssignment(e,t){return Wr.createPropertyAssignment(Wr.createStringLiteral(e),t)}function findJsonProperty(e,t){return find(e.properties,e=>isPropertyAssignment(e)&&!!e.name&&isStringLiteral(e.name)&&e.name.text===t)}function tryGetAutoImportableReferenceFromTypeNode(e,t){let n;const r=visitNode(e,function visit(e){if(isLiteralImportTypeNode(e)&&e.qualifier){const r=getFirstIdentifier(e.qualifier);if(!r.symbol)return visitEachChild(e,visit,void 0);const i=getNameForExportedSymbol(r.symbol,t),o=i!==r.text?replaceFirstIdentifierOfEntityName(e.qualifier,Wr.createIdentifier(i)):e.qualifier;n=append(n,r.symbol);const a=visitNodes2(e.typeArguments,visit,isTypeNode);return Wr.createTypeReferenceNode(o,a)}return visitEachChild(e,visit,void 0)},isTypeNode);if(n&&r)return{typeNode:r,symbols:n}}function replaceFirstIdentifierOfEntityName(e,t){return 80===e.kind?t:Wr.createQualifiedName(replaceFirstIdentifierOfEntityName(e.left,t),e.right)}function importSymbols(e,t){t.forEach(t=>e.addImportFromExportedSymbol(t,!0))}function findAncestorMatchingSpan(e,t){const n=textSpanEnd(t);let r=getTokenAtPosition(e,t.start);for(;r.ende.replaceNode(t,n,r));return createCodeFixActionWithoutFixAll(Du,i,[Ot.Replace_import_with_0,i[0].textChanges[0].newText])}function getImportCodeFixesForExpression(e,t){const n=e.program.getTypeChecker().getTypeAtLocation(t);if(!(n.symbol&&isTransientSymbol(n.symbol)&&n.symbol.links.originatingImport))return[];const r=[],i=n.symbol.links.originatingImport;if(isImportCall(i)||addRange(r,function getCodeFixesForImportDeclaration(e,t){const n=getSourceFileOfNode(t),r=getNamespaceDeclarationNode(t),i=e.program.getCompilerOptions(),o=[];return o.push(createAction(e,n,t,makeImport(r.name,void 0,t.moduleSpecifier,getQuotePreference(n,e.preferences)))),1===Vn(i)&&o.push(createAction(e,n,t,Wr.createImportEqualsDeclaration(void 0,!1,r.name,Wr.createExternalModuleReference(t.moduleSpecifier)))),o}(e,i)),isExpression(t)&&(!isNamedDeclaration(t.parent)||t.parent.name!==t)){const n=e.sourceFile,i=$m.ChangeTracker.with(e,e=>e.replaceNode(n,t,Wr.createPropertyAccessExpression(t,"default"),{}));r.push(createCodeFixActionWithoutFixAll(Du,i,Ot.Use_synthetic_default_member))}return r}registerCodeFix({errorCodes:[Ot.This_expression_is_not_callable.code,Ot.This_expression_is_not_constructable.code],getCodeActions:function getActionsForUsageOfInvalidImport(e){const t=e.sourceFile,n=Ot.This_expression_is_not_callable.code===e.errorCode?214:215,r=findAncestor(getTokenAtPosition(t,e.span.start),e=>e.kind===n);if(!r)return[];const i=r.expression;return getImportCodeFixesForExpression(e,i)}}),registerCodeFix({errorCodes:[Ot.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,Ot.Type_0_does_not_satisfy_the_constraint_1.code,Ot.Type_0_is_not_assignable_to_type_1.code,Ot.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,Ot.Type_predicate_0_is_not_assignable_to_1.code,Ot.Property_0_of_type_1_is_not_assignable_to_2_index_type_3.code,Ot._0_index_type_1_is_not_assignable_to_2_index_type_3.code,Ot.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,Ot.Property_0_in_type_1_is_not_assignable_to_type_2.code,Ot.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,Ot.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code],getCodeActions:function getActionsForInvalidImportLocation(e){const t=findAncestor(getTokenAtPosition(e.sourceFile,e.span.start),t=>t.getStart()===e.span.start&&t.getEnd()===e.span.start+e.span.length);if(!t)return[];return getImportCodeFixesForExpression(e,t)}});var Iu="strictClassInitialization",Au="addMissingPropertyDefiniteAssignmentAssertions",Ou="addMissingPropertyUndefinedType",wu="addMissingPropertyInitializer",Lu=[Ot.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code];function getInfo17(e,t){const n=getTokenAtPosition(e,t);if(isIdentifier(n)&&isPropertyDeclaration(n.parent)){const e=getEffectiveTypeAnnotationNode(n.parent);if(e)return{type:e,prop:n.parent,isJs:isInJSFile(n.parent)}}}function addDefiniteAssignmentAssertion(e,t,n){suppressLeadingAndTrailingTrivia(n);const r=Wr.updatePropertyDeclaration(n,n.modifiers,n.name,Wr.createToken(54),n.type,n.initializer);e.replaceNode(t,n,r)}function addUndefinedType(e,t,n){const r=Wr.createKeywordTypeNode(157),i=isUnionTypeNode(n.type)?n.type.types.concat(r):[n.type,r],o=Wr.createUnionTypeNode(i);n.isJs?e.addJSDocTags(t,n.prop,[Wr.createJSDocTypeTag(void 0,Wr.createJSDocTypeExpression(o))]):e.replaceNode(t,n.type,o)}function addInitializer(e,t,n,r){suppressLeadingAndTrailingTrivia(n);const i=Wr.updatePropertyDeclaration(n,n.modifiers,n.name,n.questionToken,n.type,r);e.replaceNode(t,n,i)}function getInitializer(e,t){return getDefaultValueFromType(e,e.getTypeFromTypeNode(t.type))}function getDefaultValueFromType(e,t){if(512&t.flags)return t===e.getFalseType()||t===e.getFalseType(!0)?Wr.createFalse():Wr.createTrue();if(t.isStringLiteral())return Wr.createStringLiteral(t.value);if(t.isNumberLiteral())return Wr.createNumericLiteral(t.value);if(2048&t.flags)return Wr.createBigIntLiteral(t.value);if(t.isUnion())return firstDefined(t.types,t=>getDefaultValueFromType(e,t));if(t.isClass()){const e=getClassLikeDeclarationOfSymbol(t.symbol);if(!e||hasSyntacticModifier(e,64))return;const n=getFirstConstructorWithBody(e);if(n&&n.parameters.length)return;return Wr.createNewExpression(Wr.createIdentifier(t.symbol.name),void 0,void 0)}return e.isArrayLikeType(t)?Wr.createArrayLiteralExpression():void 0}registerCodeFix({errorCodes:Lu,getCodeActions:function getCodeActionsForStrictClassInitializationErrors(e){const t=getInfo17(e.sourceFile,e.span.start);if(!t)return;const n=[];return append(n,function getActionForAddMissingUndefinedType(e,t){const n=$m.ChangeTracker.with(e,n=>addUndefinedType(n,e.sourceFile,t));return createCodeFixAction(Iu,n,[Ot.Add_undefined_type_to_property_0,t.prop.name.getText()],Ou,Ot.Add_undefined_type_to_all_uninitialized_properties)}(e,t)),append(n,function getActionForAddMissingDefiniteAssignmentAssertion(e,t){if(t.isJs)return;const n=$m.ChangeTracker.with(e,n=>addDefiniteAssignmentAssertion(n,e.sourceFile,t.prop));return createCodeFixAction(Iu,n,[Ot.Add_definite_assignment_assertion_to_property_0,t.prop.getText()],Au,Ot.Add_definite_assignment_assertions_to_all_uninitialized_properties)}(e,t)),append(n,function getActionForAddMissingInitializer(e,t){if(t.isJs)return;const n=e.program.getTypeChecker(),r=getInitializer(n,t.prop);if(!r)return;const i=$m.ChangeTracker.with(e,n=>addInitializer(n,e.sourceFile,t.prop,r));return createCodeFixAction(Iu,i,[Ot.Add_initializer_to_property_0,t.prop.name.getText()],wu,Ot.Add_initializers_to_all_uninitialized_properties)}(e,t)),n},fixIds:[Au,Ou,wu],getAllCodeActions:e=>codeFixAll(e,Lu,(t,n)=>{const r=getInfo17(n.file,n.start);if(r)switch(e.fixId){case Au:addDefiniteAssignmentAssertion(t,n.file,r.prop);break;case Ou:addUndefinedType(t,n.file,r);break;case wu:const i=getInitializer(e.program.getTypeChecker(),r.prop);if(!i)return;addInitializer(t,n.file,r.prop,i);break;default:h.fail(JSON.stringify(e.fixId))}})});var Mu="requireInTs",Ru=[Ot.require_call_may_be_converted_to_an_import.code];function doChange35(e,t,n){const{allowSyntheticDefaults:r,defaultImportName:i,namedImports:o,statement:a,moduleSpecifier:s}=n;e.replaceNode(t,a,i&&!r?Wr.createImportEqualsDeclaration(void 0,!1,i,Wr.createExternalModuleReference(s)):Wr.createImportDeclaration(void 0,Wr.createImportClause(void 0,i,o),s,void 0))}function getInfo18(e,t,n,r){const{parent:i}=getTokenAtPosition(e,n);isRequireCall(i,!0)||h.failBadSyntaxKind(i);const o=cast(i.parent,isVariableDeclaration),a=getQuotePreference(e,r),s=tryCast(o.name,isIdentifier),c=isObjectBindingPattern(o.name)?function tryCreateNamedImportsFromObjectBindingPattern(e){const t=[];for(const n of e.elements){if(!isIdentifier(n.name)||n.initializer)return;t.push(Wr.createImportSpecifier(!1,tryCast(n.propertyName,isIdentifier),n.name))}if(t.length)return Wr.createNamedImports(t)}(o.name):void 0;if(s||c){const e=first(i.arguments);return{allowSyntheticDefaults:$n(t.getCompilerOptions()),defaultImportName:s,namedImports:c,statement:cast(o.parent.parent,isVariableStatement),moduleSpecifier:isNoSubstitutionTemplateLiteral(e)?Wr.createStringLiteral(e.text,0===a):e}}}registerCodeFix({errorCodes:Ru,getCodeActions(e){const t=getInfo18(e.sourceFile,e.program,e.span.start,e.preferences);if(!t)return;const n=$m.ChangeTracker.with(e,n=>doChange35(n,e.sourceFile,t));return[createCodeFixAction(Mu,n,Ot.Convert_require_to_import,Mu,Ot.Convert_all_require_to_import)]},fixIds:[Mu],getAllCodeActions:e=>codeFixAll(e,Ru,(t,n)=>{const r=getInfo18(n.file,e.program,n.start,e.preferences);r&&doChange35(t,e.sourceFile,r)})});var Bu="useDefaultImport",ju=[Ot.Import_may_be_converted_to_a_default_import.code];function getInfo19(e,t){const n=getTokenAtPosition(e,t);if(!isIdentifier(n))return;const{parent:r}=n;if(isImportEqualsDeclaration(r)&&isExternalModuleReference(r.moduleReference))return{importNode:r,name:n,moduleSpecifier:r.moduleReference.expression};if(isNamespaceImport(r)&&isImportDeclaration(r.parent.parent)){const e=r.parent.parent;return{importNode:e,name:n,moduleSpecifier:e.moduleSpecifier}}}function doChange36(e,t,n,r){e.replaceNode(t,n.importNode,makeImport(n.name,void 0,n.moduleSpecifier,getQuotePreference(t,r)))}registerCodeFix({errorCodes:ju,getCodeActions(e){const{sourceFile:t,span:{start:n}}=e,r=getInfo19(t,n);if(!r)return;const i=$m.ChangeTracker.with(e,n=>doChange36(n,t,r,e.preferences));return[createCodeFixAction(Bu,i,Ot.Convert_to_default_import,Bu,Ot.Convert_all_to_default_imports)]},fixIds:[Bu],getAllCodeActions:e=>codeFixAll(e,ju,(t,n)=>{const r=getInfo19(n.file,n.start);r&&doChange36(t,n.file,r,e.preferences)})});var Ju="useBigintLiteral",Wu=[Ot.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code];function makeChange10(e,t,n){const r=tryCast(getTokenAtPosition(t,n.start),isNumericLiteral);if(!r)return;const i=r.getText(t)+"n";e.replaceNode(t,r,Wr.createBigIntLiteral(i))}registerCodeFix({errorCodes:Wu,getCodeActions:function getCodeActionsToUseBigintLiteral(e){const t=$m.ChangeTracker.with(e,t=>makeChange10(t,e.sourceFile,e.span));if(t.length>0)return[createCodeFixAction(Ju,t,Ot.Convert_to_a_bigint_numeric_literal,Ju,Ot.Convert_all_to_bigint_numeric_literals)]},fixIds:[Ju],getAllCodeActions:e=>codeFixAll(e,Wu,(e,t)=>makeChange10(e,t.file,t))});var Uu="fixAddModuleReferTypeMissingTypeof",zu=[Ot.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];function getImportTypeNode(e,t){const n=getTokenAtPosition(e,t);return h.assert(102===n.kind,"This token should be an ImportKeyword"),h.assert(206===n.parent.kind,"Token parent should be an ImportType"),n.parent}function doChange37(e,t,n){const r=Wr.updateImportTypeNode(n,n.argument,n.attributes,n.qualifier,n.typeArguments,!0);e.replaceNode(t,n,r)}registerCodeFix({errorCodes:zu,getCodeActions:function getCodeActionsToAddMissingTypeof(e){const{sourceFile:t,span:n}=e,r=getImportTypeNode(t,n.start),i=$m.ChangeTracker.with(e,e=>doChange37(e,t,r));return[createCodeFixAction(Uu,i,Ot.Add_missing_typeof,Uu,Ot.Add_missing_typeof)]},fixIds:[Uu],getAllCodeActions:e=>codeFixAll(e,zu,(t,n)=>doChange37(t,e.sourceFile,getImportTypeNode(n.file,n.start)))});var Vu="wrapJsxInFragment",qu=[Ot.JSX_expressions_must_have_one_parent_element.code];function findNodeToFix(e,t){let n=getTokenAtPosition(e,t).parent.parent;if((isBinaryExpression(n)||(n=n.parent,isBinaryExpression(n)))&&nodeIsMissing(n.operatorToken))return n}function doChange38(e,t,n){const r=function flattenInvalidBinaryExpr(e){const t=[];let n=e;for(;;){if(isBinaryExpression(n)&&nodeIsMissing(n.operatorToken)&&28===n.operatorToken.kind){if(t.push(n.left),isJsxChild(n.right))return t.push(n.right),t;if(isBinaryExpression(n.right)){n=n.right;continue}return}return}}(n);r&&e.replaceNode(t,n,Wr.createJsxFragment(Wr.createJsxOpeningFragment(),r,Wr.createJsxJsxClosingFragment()))}registerCodeFix({errorCodes:qu,getCodeActions:function getCodeActionsToWrapJsxInFragment(e){const{sourceFile:t,span:n}=e,r=findNodeToFix(t,n.start);if(!r)return;const i=$m.ChangeTracker.with(e,e=>doChange38(e,t,r));return[createCodeFixAction(Vu,i,Ot.Wrap_in_JSX_fragment,Vu,Ot.Wrap_all_unparented_JSX_in_JSX_fragment)]},fixIds:[Vu],getAllCodeActions:e=>codeFixAll(e,qu,(t,n)=>{const r=findNodeToFix(e.sourceFile,n.start);r&&doChange38(t,e.sourceFile,r)})});var Hu="wrapDecoratorInParentheses",Ku=[Ot.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator.code];function makeChange11(e,t,n){const r=findAncestor(getTokenAtPosition(t,n),isDecorator);h.assert(!!r,"Expected position to be owned by a decorator.");const i=Wr.createParenthesizedExpression(r.expression);e.replaceNode(t,r.expression,i)}registerCodeFix({errorCodes:Ku,getCodeActions:function getCodeActionsToWrapDecoratorExpressionInParentheses(e){const t=$m.ChangeTracker.with(e,t=>makeChange11(t,e.sourceFile,e.span.start));return[createCodeFixAction(Hu,t,Ot.Wrap_in_parentheses,Hu,Ot.Wrap_all_invalid_decorator_expressions_in_parentheses)]},fixIds:[Hu],getAllCodeActions:e=>codeFixAll(e,Ku,(e,t)=>makeChange11(e,t.file,t.start))});var Gu="fixConvertToMappedObjectType",$u=[Ot.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];function getInfo20(e,t){const n=tryCast(getTokenAtPosition(e,t).parent.parent,isIndexSignatureDeclaration);if(!n)return;const r=isInterfaceDeclaration(n.parent)?n.parent:tryCast(n.parent.parent,isTypeAliasDeclaration);return r?{indexSignature:n,container:r}:void 0}function doChange39(e,t,{indexSignature:n,container:r}){const i=(isInterfaceDeclaration(r)?r.members:r.type.members).filter(e=>!isIndexSignatureDeclaration(e)),o=first(n.parameters),a=Wr.createTypeParameterDeclaration(void 0,cast(o.name,isIdentifier),o.type),s=Wr.createMappedTypeNode(hasEffectiveReadonlyModifier(n)?Wr.createModifier(148):void 0,a,void 0,n.questionToken,n.type,void 0),c=Wr.createIntersectionTypeNode([...getAllSuperTypeNodes(r),s,...i.length?[Wr.createTypeLiteralNode(i)]:l]);e.replaceNode(t,r,function createTypeAliasFromInterface(e,t){return Wr.createTypeAliasDeclaration(e.modifiers,e.name,e.typeParameters,t)}(r,c))}registerCodeFix({errorCodes:$u,getCodeActions:function getCodeActionsToConvertToMappedTypeObject(e){const{sourceFile:t,span:n}=e,r=getInfo20(t,n.start);if(!r)return;const i=$m.ChangeTracker.with(e,e=>doChange39(e,t,r)),o=idText(r.container.name);return[createCodeFixAction(Gu,i,[Ot.Convert_0_to_mapped_object_type,o],Gu,[Ot.Convert_0_to_mapped_object_type,o])]},fixIds:[Gu],getAllCodeActions:e=>codeFixAll(e,$u,(e,t)=>{const n=getInfo20(t.file,t.start);n&&doChange39(e,t.file,n)})});var Qu="removeAccidentalCallParentheses";registerCodeFix({errorCodes:[Ot.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code],getCodeActions(e){const t=findAncestor(getTokenAtPosition(e.sourceFile,e.span.start),isCallExpression);if(!t)return;const n=$m.ChangeTracker.with(e,n=>{n.deleteRange(e.sourceFile,{pos:t.expression.end,end:t.end})});return[createCodeFixActionWithoutFixAll(Qu,n,Ot.Remove_parentheses)]},fixIds:[Qu]});var Xu="removeUnnecessaryAwait",Yu=[Ot.await_has_no_effect_on_the_type_of_this_expression.code];function makeChange12(e,t,n){const r=tryCast(getTokenAtPosition(t,n.start),e=>135===e.kind),i=r&&tryCast(r.parent,isAwaitExpression);if(!i)return;let o=i;if(isParenthesizedExpression(i.parent)){if(isIdentifier(getLeftmostExpression(i.expression,!1))){const e=findPrecedingToken(i.parent.pos,t);e&&105!==e.kind&&(o=i.parent)}}e.replaceNode(t,o,i.expression)}registerCodeFix({errorCodes:Yu,getCodeActions:function getCodeActionsToRemoveUnnecessaryAwait(e){const t=$m.ChangeTracker.with(e,t=>makeChange12(t,e.sourceFile,e.span));if(t.length>0)return[createCodeFixAction(Xu,t,Ot.Remove_unnecessary_await,Xu,Ot.Remove_all_unnecessary_uses_of_await)]},fixIds:[Xu],getAllCodeActions:e=>codeFixAll(e,Yu,(e,t)=>makeChange12(e,t.file,t))});var Zu=[Ot.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],em="splitTypeOnlyImport";function getImportDeclaration2(e,t){return findAncestor(getTokenAtPosition(e,t.start),isImportDeclaration)}function splitTypeOnlyImport(e,t,n){if(!t)return;const r=h.checkDefined(t.importClause);e.replaceNode(n.sourceFile,t,Wr.updateImportDeclaration(t,t.modifiers,Wr.updateImportClause(r,r.phaseModifier,r.name,void 0),t.moduleSpecifier,t.attributes)),e.insertNodeAfter(n.sourceFile,t,Wr.createImportDeclaration(void 0,Wr.updateImportClause(r,r.phaseModifier,void 0,r.namedBindings),t.moduleSpecifier,t.attributes))}registerCodeFix({errorCodes:Zu,fixIds:[em],getCodeActions:function getCodeActionsToSplitTypeOnlyImport(e){const t=$m.ChangeTracker.with(e,t=>splitTypeOnlyImport(t,getImportDeclaration2(e.sourceFile,e.span),e));if(t.length)return[createCodeFixAction(em,t,Ot.Split_into_two_separate_import_declarations,em,Ot.Split_all_invalid_type_only_imports)]},getAllCodeActions:e=>codeFixAll(e,Zu,(t,n)=>{splitTypeOnlyImport(t,getImportDeclaration2(e.sourceFile,n),e)})});var tm="fixConvertConstToLet",nm=[Ot.Cannot_assign_to_0_because_it_is_a_constant.code];function getInfo21(e,t,n){var r;const i=n.getTypeChecker().getSymbolAtLocation(getTokenAtPosition(e,t));if(void 0===i)return;const o=tryCast(null==(r=null==i?void 0:i.valueDeclaration)?void 0:r.parent,isVariableDeclarationList);if(void 0===o)return;const a=findChildOfKind(o,87,e);return void 0!==a?{symbol:i,token:a}:void 0}function doChange40(e,t,n){e.replaceNode(t,n,Wr.createToken(121))}registerCodeFix({errorCodes:nm,getCodeActions:function getCodeActionsToConvertConstToLet(e){const{sourceFile:t,span:n,program:r}=e,i=getInfo21(t,n.start,r);if(void 0===i)return;const o=$m.ChangeTracker.with(e,e=>doChange40(e,t,i.token));return[createCodeFixActionMaybeFixAll(tm,o,Ot.Convert_const_to_let,tm,Ot.Convert_all_const_to_let)]},getAllCodeActions:e=>{const{program:t}=e,n=new Set;return createCombinedCodeActions($m.ChangeTracker.with(e,r=>{eachDiagnostic(e,nm,e=>{const i=getInfo21(e.file,e.start,t);if(i&&addToSeen(n,getSymbolId(i.symbol)))return doChange40(r,e.file,i.token)})}))},fixIds:[tm]});var rm="fixExpectedComma",im=[Ot._0_expected.code];function getInfo22(e,t,n){const r=getTokenAtPosition(e,t);return 27===r.kind&&r.parent&&(isObjectLiteralExpression(r.parent)||isArrayLiteralExpression(r.parent))?{node:r}:void 0}function doChange41(e,t,{node:n}){const r=Wr.createToken(28);e.replaceNode(t,n,r)}registerCodeFix({errorCodes:im,getCodeActions(e){const{sourceFile:t}=e,n=getInfo22(t,e.span.start,e.errorCode);if(!n)return;const r=$m.ChangeTracker.with(e,e=>doChange41(e,t,n));return[createCodeFixAction(rm,r,[Ot.Change_0_to_1,";",","],rm,[Ot.Change_0_to_1,";",","])]},fixIds:[rm],getAllCodeActions:e=>codeFixAll(e,im,(t,n)=>{const r=getInfo22(n.file,n.start,n.code);r&&doChange41(t,e.sourceFile,r)})});var om="addVoidToPromise",am=[Ot.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,Ot.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];function makeChange13(e,t,n,r,i){const o=getTokenAtPosition(t,n.start);if(!isIdentifier(o)||!isCallExpression(o.parent)||o.parent.expression!==o||0!==o.parent.arguments.length)return;const a=r.getTypeChecker(),s=a.getSymbolAtLocation(o),c=null==s?void 0:s.valueDeclaration;if(!c||!isParameter(c)||!isNewExpression(c.parent.parent))return;if(null==i?void 0:i.has(c))return;null==i||i.add(c);const l=function getEffectiveTypeArguments(e){var t;if(!isInJSFile(e))return e.typeArguments;if(isParenthesizedExpression(e.parent)){const n=null==(t=getJSDocTypeTag(e.parent))?void 0:t.typeExpression.type;if(n&&isTypeReferenceNode(n)&&isIdentifier(n.typeName)&&"Promise"===idText(n.typeName))return n.typeArguments}}(c.parent.parent);if(some(l)){const n=l[0],r=!isUnionTypeNode(n)&&!isParenthesizedTypeNode(n)&&isParenthesizedTypeNode(Wr.createUnionTypeNode([n,Wr.createKeywordTypeNode(116)]).types[0]);r&&e.insertText(t,n.pos,"("),e.insertText(t,n.end,r?") | void":" | void")}else{const n=a.getResolvedSignature(o.parent),r=null==n?void 0:n.parameters[0],i=r&&a.getTypeOfSymbolAtLocation(r,c.parent.parent);isInJSFile(c)?(!i||3&i.flags)&&(e.insertText(t,c.parent.parent.end,")"),e.insertText(t,skipTrivia(t.text,c.parent.parent.pos),"/** @type {Promise} */(")):(!i||2&i.flags)&&e.insertText(t,c.parent.parent.expression.end,"")}}registerCodeFix({errorCodes:am,fixIds:[om],getCodeActions(e){const t=$m.ChangeTracker.with(e,t=>makeChange13(t,e.sourceFile,e.span,e.program));if(t.length>0)return[createCodeFixAction("addVoidToPromise",t,Ot.Add_void_to_Promise_resolved_without_a_value,om,Ot.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:e=>codeFixAll(e,am,(t,n)=>makeChange13(t,n.file,n,e.program,new Set))});var sm={};i(sm,{CompletionKind:()=>fm,CompletionSource:()=>mm,SortText:()=>dm,StringCompletions:()=>hm,SymbolOriginInfoKind:()=>_m,createCompletionDetails:()=>createCompletionDetails,createCompletionDetailsForSymbol:()=>createCompletionDetailsForSymbol,getCompletionEntriesFromSymbols:()=>getCompletionEntriesFromSymbols,getCompletionEntryDetails:()=>getCompletionEntryDetails,getCompletionEntrySymbol:()=>getCompletionEntrySymbol,getCompletionsAtPosition:()=>getCompletionsAtPosition,getDefaultCommitCharacters:()=>getDefaultCommitCharacters,getPropertiesForObjectExpression:()=>getPropertiesForObjectExpression,moduleSpecifierResolutionCacheAttemptLimit:()=>lm,moduleSpecifierResolutionLimit:()=>cm});var cm=100,lm=1e3,dm={LocalDeclarationPriority:"10",LocationPriority:"11",OptionalMember:"12",MemberDeclaredBySpreadAssignment:"13",SuggestedClassMembers:"14",GlobalsOrKeywords:"15",AutoImportSuggestions:"16",ClassMemberSnippets:"17",JavascriptIdentifiers:"18",Deprecated:e=>"z"+e,ObjectLiteralProperty:(e,t)=>`${e}\0${t}\0`,SortBelow:e=>e+"1"},pm=[".",",",";"],um=[".",";"],mm=(e=>(e.ThisProperty="ThisProperty/",e.ClassMemberSnippet="ClassMemberSnippet/",e.TypeOnlyAlias="TypeOnlyAlias/",e.ObjectLiteralMethodSnippet="ObjectLiteralMethodSnippet/",e.SwitchCases="SwitchCases/",e.ObjectLiteralMemberWithComma="ObjectLiteralMemberWithComma/",e))(mm||{}),_m=(e=>(e[e.ThisType=1]="ThisType",e[e.SymbolMember=2]="SymbolMember",e[e.Export=4]="Export",e[e.Promise=8]="Promise",e[e.Nullable=16]="Nullable",e[e.ResolvedExport=32]="ResolvedExport",e[e.TypeOnlyAlias=64]="TypeOnlyAlias",e[e.ObjectLiteralMethod=128]="ObjectLiteralMethod",e[e.Ignore=256]="Ignore",e[e.ComputedPropertyName=512]="ComputedPropertyName",e[e.SymbolMemberNoExport=2]="SymbolMemberNoExport",e[e.SymbolMemberExport=6]="SymbolMemberExport",e))(_m||{});function originIsExport(e){return!!(e&&4&e.kind)}function originIsResolvedExport(e){return!(!e||32!==e.kind)}function originIsPackageJsonImport(e){return(originIsExport(e)||originIsResolvedExport(e))&&!!e.isFromPackageJson}function originIsTypeOnlyAlias(e){return!!(e&&64&e.kind)}function originIsObjectLiteralMethod(e){return!!(e&&128&e.kind)}function originIsComputedPropertyName(e){return!!(e&&512&e.kind)}function resolvingModuleSpecifiers(e,t,n,r,i,o,a,s,c){var l,d,p,u;const m=B(),_=a||Qn(r.getCompilerOptions())||(null==(l=o.autoImportSpecifierExcludeRegexes)?void 0:l.length);let f=!1,g=0,y=0,h=0,T=0;const S=c({tryResolve:function tryResolve(e,t){if(t){const t=n.getModuleSpecifierForBestExportInfo(e,i,s);return t&&g++,t||"failed"}const r=_||o.allowIncompleteCompletions&&yf,resolvedAny:()=>y>0,resolvedBeyondLimit:()=>y>cm}),x=T?` (${(h/T*100).toFixed(1)}% hit rate)`:"";return null==(d=t.log)||d.call(t,`${e}: resolved ${y} module specifiers, plus ${g} ambient and ${h} from cache${x}`),null==(p=t.log)||p.call(t,`${e}: response is ${f?"incomplete":"complete"}`),null==(u=t.log)||u.call(t,`${e}: ${B()-m}`),S}function getDefaultCommitCharacters(e){return e?[]:pm}function getCompletionsAtPosition(e,t,n,r,i,o,a,s,c,l,d=!1){var p;const{previousToken:u}=getRelevantTokens(i,r);if(a&&!isInString(r,i,u)&&!function isValidTrigger(e,t,n,r){switch(t){case".":case"@":return!0;case'"':case"'":case"`":return!!n&&isStringLiteralOrTemplate(n)&&r===n.getStart(e)+1;case"#":return!!n&&isPrivateIdentifier(n)&&!!getContainingClass(n);case"<":return!!n&&30===n.kind&&(!isBinaryExpression(n.parent)||binaryExpressionMayBeOpenTag(n.parent));case"/":return!!n&&(isStringLiteralLike(n)?!!tryGetImportFromModuleSpecifier(n):31===n.kind&&isJsxClosingElement(n.parent));case" ":return!!n&&isImportKeyword(n)&&308===n.parent.kind;default:return h.assertNever(t)}}(r,a,u,i))return;if(" "===a)return o.includeCompletionsForImportStatements&&o.includeCompletionsWithInsertText?{isGlobalCompletion:!0,isMemberCompletion:!1,isNewIdentifierLocation:!0,isIncomplete:!0,entries:[],defaultCommitCharacters:getDefaultCommitCharacters(!0)}:void 0;const m=t.getCompilerOptions(),_=t.getTypeChecker(),f=o.allowIncompleteCompletions?null==(p=e.getIncompleteCompletionsCache)?void 0:p.call(e):void 0;if(f&&3===s&&u&&isIdentifier(u)){const n=function continuePreviousIncompleteResponse(e,t,n,r,i,o,a,s){const c=e.get();if(!c)return;const l=getTouchingPropertyName(t,s),d=n.text.toLowerCase(),p=getExportInfoMap(t,i,r,o,a),u=resolvingModuleSpecifiers("continuePreviousIncompleteResponse",i,ed.createImportSpecifierResolver(t,r,i,o),r,n.getStart(),o,!1,isValidTypeOnlyAliasUseSite(n),e=>{const n=mapDefined(c.entries,n=>{var o;if(!n.hasAction||!n.source||!n.data||completionEntryDataIsResolved(n.data))return n;if(!charactersFuzzyMatchInString(n.name,d))return;const{origin:a}=h.checkDefined(getAutoImportSymbolFromCompletionEntryData(n.name,n.data,r,i)),s=p.get(t.path,n.data.exportMapKey),c=s&&e.tryResolve(s,!isExternalModuleNameRelative(stripQuotes(a.moduleSymbol.name)));if("skipped"===c)return n;if(!c||"failed"===c)return void(null==(o=i.log)||o.call(i,`Unexpected failure resolving auto import for '${n.name}' from '${n.source}'`));const l={...a,kind:32,moduleSpecifier:c.moduleSpecifier};return n.data=originToCompletionEntryData(l),n.source=getSourceFromOrigin(l),n.sourceDisplay=[textPart(l.moduleSpecifier)],n});return e.skippedAny()||(c.isIncomplete=void 0),n});return c.entries=u,c.flags=4|(c.flags||0),c.optionalReplacementSpan=getOptionalReplacementSpan(l),c}(f,r,u,t,e,o,c,i);if(n)return n}else null==f||f.clear();const g=hm.getStringLiteralCompletions(r,i,u,m,e,t,n,o,d);if(g)return g;if(u&&isBreakOrContinueStatement(u.parent)&&(83===u.kind||88===u.kind||80===u.kind))return function getLabelCompletionAtPosition(e){const t=function getLabelStatementCompletions(e){const t=[],n=new Map;let r=e;for(;r&&!isFunctionLike(r);){if(isLabeledStatement(r)){const e=r.label.text;n.has(e)||(n.set(e,!0),t.push({name:e,kindModifiers:"",kind:"label",sortText:dm.LocationPriority}))}r=r.parent}return t}(e);if(t.length)return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:t,defaultCommitCharacters:getDefaultCommitCharacters(!1)}}(u.parent);const y=getCompletionData(t,n,r,m,i,o,void 0,e,l,c);if(y)switch(y.kind){case 0:const a=function completionInfoFromData(e,t,n,r,i,o,a,s,c,l){const{symbols:d,contextToken:p,completionKind:u,isInSnippetScope:m,isNewIdentifierLocation:_,location:f,propertyAccessToConvert:g,keywordFilters:y,symbolToOriginInfoMap:h,recommendedCompletion:T,isJsxInitializer:S,isTypeOnlyLocation:x,isJsxIdentifierExpected:v,isRightOfOpenTag:b,isRightOfDotOrQuestionDot:C,importStatementCompletion:E,insideJsDocTagTypeExpression:N,symbolToSortTextMap:k,hasUnresolvedAutoImports:F,defaultCommitCharacters:P}=o;let D=o.literals;const I=n.getTypeChecker();if(1===getLanguageVariant(e.scriptKind)){const t=function getJsxClosingTagCompletion(e,t){const n=findAncestor(e,e=>{switch(e.kind){case 288:return!0;case 31:case 32:case 80:case 212:return!1;default:return"quit"}});if(n){const e=!!findChildOfKind(n,32,t),r=n.parent.openingElement.tagName.getText(t)+(e?"":">");return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:createTextSpanFromNode(n.tagName),entries:[{name:r,kind:"class",kindModifiers:void 0,sortText:dm.LocationPriority}],defaultCommitCharacters:getDefaultCommitCharacters(!1)}}return}(f,e);if(t)return t}const A=findAncestor(p,isCaseClause);if(A&&(isCaseKeyword(p)||isNodeDescendantOf(p,A.expression))){const e=newCaseClauseTracker(I,A.parent.clauses);D=D.filter(t=>!e.hasValue(t)),d.forEach((t,n)=>{if(t.valueDeclaration&&isEnumMember(t.valueDeclaration)){const r=I.getConstantValue(t.valueDeclaration);void 0!==r&&e.hasValue(r)&&(h[n]={kind:256})}})}const O=[],w=isCheckedFile(e,r);if(w&&!_&&(!d||0===d.length)&&0===y)return;const L=getCompletionEntriesFromSymbols(d,O,void 0,p,f,c,e,t,n,zn(r),i,u,a,r,s,x,g,v,S,E,T,h,k,v,b,l);if(0!==y)for(const t of getKeywordCompletions(y,!N&&isSourceFileJS(e)))(x&&isTypeKeyword(stringToToken(t.name))||!x&&isContextualKeywordInAutoImportableExpressionSpace(t.name)||!L.has(t.name))&&(L.add(t.name),insertSorted(O,t,compareCompletionEntries,void 0,!0));for(const e of function getContextualKeywords(e,t){const n=[];if(e){const r=e.getSourceFile(),i=e.parent,o=r.getLineAndCharacterOfPosition(e.end).line,a=r.getLineAndCharacterOfPosition(t).line;(isImportDeclaration(i)||isExportDeclaration(i)&&i.moduleSpecifier)&&e===i.moduleSpecifier&&o===a&&n.push({name:tokenToString(132),kind:"keyword",kindModifiers:"",sortText:dm.GlobalsOrKeywords})}return n}(p,c))L.has(e.name)||(L.add(e.name),insertSorted(O,e,compareCompletionEntries,void 0,!0));for(const t of D){const n=createCompletionEntryForLiteral(e,a,t);L.add(n.name),insertSorted(O,n,compareCompletionEntries,void 0,!0)}w||function getJSCompletionEntries(e,t,n,r,i){getNameTable(e).forEach((e,o)=>{if(e===t)return;const a=unescapeLeadingUnderscores(o);!n.has(a)&&isIdentifierText(a,r)&&(n.add(a),insertSorted(i,{name:a,kind:"warning",kindModifiers:"",sortText:dm.JavascriptIdentifiers,isFromUncheckedFile:!0,commitCharacters:[]},compareCompletionEntries))})}(e,f.pos,L,zn(r),O);let M;if(a.includeCompletionsWithInsertText&&p&&!b&&!C&&(M=findAncestor(p,isCaseBlock))){const i=getExhaustiveCaseSnippets(M,e,a,r,t,n,s);i&&O.push(i.entry)}return{flags:o.flags,isGlobalCompletion:m,isIncomplete:!(!a.allowIncompleteCompletions||!F)||void 0,isMemberCompletion:isMemberCompletionKind(u),isNewIdentifierLocation:_,optionalReplacementSpan:getOptionalReplacementSpan(f),entries:O,defaultCommitCharacters:P??getDefaultCommitCharacters(_)}}(r,e,t,m,n,y,o,l,i,d);return(null==a?void 0:a.isIncomplete)&&(null==f||f.set(a)),a;case 1:return jsdocCompletionInfo([...Am.getJSDocTagNameCompletions(),...getJSDocParameterCompletions(r,i,_,m,o,!0)]);case 2:return jsdocCompletionInfo([...Am.getJSDocTagCompletions(),...getJSDocParameterCompletions(r,i,_,m,o,!1)]);case 3:return jsdocCompletionInfo(Am.getJSDocParameterNameCompletions(y.tag));case 4:return function specificKeywordCompletionInfo(e,t){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:t,entries:e.slice(),defaultCommitCharacters:getDefaultCommitCharacters(t)}}(y.keywordCompletions,y.isNewIdentifierLocation);default:return h.assertNever(y)}}function compareCompletionEntries(e,t){var n,r;let i=compareStringsCaseSensitiveUI(e.sortText,t.sortText);return 0===i&&(i=compareStringsCaseSensitiveUI(e.name,t.name)),0===i&&(null==(n=e.data)?void 0:n.moduleSpecifier)&&(null==(r=t.data)?void 0:r.moduleSpecifier)&&(i=compareNumberOfDirectorySeparators(e.data.moduleSpecifier,t.data.moduleSpecifier)),0===i?-1:i}function completionEntryDataIsResolved(e){return!!(null==e?void 0:e.moduleSpecifier)}function jsdocCompletionInfo(e){return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:!1,entries:e,defaultCommitCharacters:getDefaultCommitCharacters(!1)}}function getJSDocParameterCompletions(e,t,n,r,i,o){const a=getTokenAtPosition(e,t);if(!isJSDocTag(a)&&!isJSDoc(a))return[];const s=isJSDoc(a)?a:a.parent;if(!isJSDoc(s))return[];const c=s.parent;if(!isFunctionLike(c))return[];const l=isSourceFileJS(e),d=i.includeCompletionsWithSnippetText||void 0,p=countWhere(s.tags,e=>isJSDocParameterTag(e)&&e.getEnd()<=t);return mapDefined(c.parameters,e=>{if(!getJSDocParameterTags(e).length){if(isIdentifier(e.name)){const t={tabstop:1},a=e.name.text;let s=getJSDocParamAnnotation(a,e.initializer,e.dotDotDotToken,l,!1,!1,n,r,i),c=d?getJSDocParamAnnotation(a,e.initializer,e.dotDotDotToken,l,!1,!0,n,r,i,t):void 0;return o&&(s=s.slice(1),c&&(c=c.slice(1))),{name:s,kind:"parameter",sortText:dm.LocationPriority,insertText:d?c:void 0,isSnippet:d}}if(e.parent.parameters.indexOf(e)===p){const t=`param${p}`,a=generateJSDocParamTagsForDestructuring(t,e.name,e.initializer,e.dotDotDotToken,l,!1,n,r,i),s=d?generateJSDocParamTagsForDestructuring(t,e.name,e.initializer,e.dotDotDotToken,l,!0,n,r,i):void 0;let c=a.join(getNewLineCharacter(r)+"* "),u=null==s?void 0:s.join(getNewLineCharacter(r)+"* ");return o&&(c=c.slice(1),u&&(u=u.slice(1))),{name:c,kind:"parameter",sortText:dm.LocationPriority,insertText:d?u:void 0,isSnippet:d}}}})}function generateJSDocParamTagsForDestructuring(e,t,n,r,i,o,a,s,c){return i?patternWorker(e,t,n,r,{tabstop:1}):[getJSDocParamAnnotation(e,n,r,i,!1,o,a,s,c,{tabstop:1})];function patternWorker(e,t,n,r,l){if(isObjectBindingPattern(t)&&!r){const d={tabstop:l.tabstop},p=getJSDocParamAnnotation(e,n,r,i,!0,o,a,s,c,d);let u=[];for(const n of t.elements){const t=elementWorker(e,n,d);if(!t){u=void 0;break}u.push(...t)}if(u)return l.tabstop=d.tabstop,[p,...u]}return[getJSDocParamAnnotation(e,n,r,i,!1,o,a,s,c,l)]}function elementWorker(e,t,n){if(!t.propertyName&&isIdentifier(t.name)||isIdentifier(t.name)){const r=t.propertyName?tryGetTextOfPropertyName(t.propertyName):t.name.text;if(!r)return;return[getJSDocParamAnnotation(`${e}.${r}`,t.initializer,t.dotDotDotToken,i,!1,o,a,s,c,n)]}if(t.propertyName){const r=tryGetTextOfPropertyName(t.propertyName);return r&&patternWorker(`${e}.${r}`,t.name,t.initializer,t.dotDotDotToken,n)}}}function getJSDocParamAnnotation(e,t,n,r,i,o,a,s,c,l){if(o&&h.assertIsDefined(l),t&&(e=function getJSDocParamNameWithInitializer(e,t){const n=t.getText().trim();if(n.includes("\n")||n.length>80)return`[${e}]`;return`[${e}=${n}]`}(e,t)),o&&(e=escapeSnippetText(e)),r){let r="*";if(i)h.assert(!n,"Cannot annotate a rest parameter with type 'Object'."),r="Object";else{if(t){const e=a.getTypeAtLocation(t.parent);if(!(16385&e.flags)){const n=t.getSourceFile(),i=0===getQuotePreference(n,c)?268435456:0,l=a.typeToTypeNode(e,findAncestor(t,isFunctionLike),i);if(l){const e=o?createSnippetPrinter({removeComments:!0,module:s.module,moduleResolution:s.moduleResolution,target:s.target}):createPrinter({removeComments:!0,module:s.module,moduleResolution:s.moduleResolution,target:s.target});setEmitFlags(l,1),r=e.printNode(4,l,n)}}}o&&"*"===r&&(r=`\${${l.tabstop++}:${r}}`)}return`@param {${!i&&n?"...":""}${r}} ${e} ${o?`\${${l.tabstop++}}`:""}`}return`@param ${e} ${o?`\${${l.tabstop++}}`:""}`}function keywordCompletionData(e,t,n){return{kind:4,keywordCompletions:getKeywordCompletions(e,t),isNewIdentifierLocation:n}}function getOptionalReplacementSpan(e){return 80===(null==e?void 0:e.kind)?createTextSpanFromNode(e):void 0}function isCheckedFile(e,t){return!isSourceFileJS(e)||!!isCheckJsEnabledForFile(e,t)}function getExhaustiveCaseSnippets(e,t,n,r,i,o,a){const s=e.clauses,c=o.getTypeChecker(),l=c.getTypeAtLocation(e.parent.expression);if(l&&l.isUnion()&&every(l.types,e=>e.isLiteral())){const d=newCaseClauseTracker(c,s),p=zn(r),u=getQuotePreference(t,n),m=ed.createImportAdder(t,o,n,i),_=[];for(const t of l.types)if(1024&t.flags){h.assert(t.symbol,"An enum member type should have a symbol"),h.assert(t.symbol.parent,"An enum member type should have a parent symbol (the enum symbol)");const n=t.symbol.valueDeclaration&&c.getConstantValue(t.symbol.valueDeclaration);if(void 0!==n){if(d.hasValue(n))continue;d.addValue(n)}const r=ed.typeToAutoImportableTypeNode(c,m,t,e,p);if(!r)return;const i=typeNodeToExpression(r,p,u);if(!i)return;_.push(i)}else if(!d.hasValue(t.value))switch(typeof t.value){case"object":_.push(t.value.negative?Wr.createPrefixUnaryExpression(41,Wr.createBigIntLiteral({negative:!1,base10Value:t.value.base10Value})):Wr.createBigIntLiteral(t.value));break;case"number":_.push(t.value<0?Wr.createPrefixUnaryExpression(41,Wr.createNumericLiteral(-t.value)):Wr.createNumericLiteral(t.value));break;case"string":_.push(Wr.createStringLiteral(t.value,0===u))}if(0===_.length)return;const f=map(_,e=>Wr.createCaseClause(e,[])),g=getNewLineOrDefaultFromHost(i,null==a?void 0:a.options),y=createSnippetPrinter({removeComments:!0,module:r.module,moduleResolution:r.moduleResolution,target:r.target,newLine:getNewLineKind(g)}),T=a?e=>y.printAndFormatNode(4,e,t,a):e=>y.printNode(4,e,t),S=map(f,(e,t)=>n.includeCompletionsWithSnippetText?`${T(e)}$${t+1}`:`${T(e)}`).join(g);return{entry:{name:`${y.printNode(4,f[0],t)} ...`,kind:"",sortText:dm.GlobalsOrKeywords,insertText:S,hasAction:m.hasFixes()||void 0,source:"SwitchCases/",isSnippet:!!n.includeCompletionsWithSnippetText||void 0},importAdder:m}}}function typeNodeToExpression(e,t,n){switch(e.kind){case 184:return entityNameToExpression(e.typeName,t,n);case 200:const r=typeNodeToExpression(e.objectType,t,n),i=typeNodeToExpression(e.indexType,t,n);return r&&i&&Wr.createElementAccessExpression(r,i);case 202:const o=e.literal;switch(o.kind){case 11:return Wr.createStringLiteral(o.text,0===n);case 9:return Wr.createNumericLiteral(o.text,o.numericLiteralFlags)}return;case 197:const a=typeNodeToExpression(e.type,t,n);return a&&(isIdentifier(a)?a:Wr.createParenthesizedExpression(a));case 187:return entityNameToExpression(e.exprName,t,n);case 206:h.fail("We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'.")}}function entityNameToExpression(e,t,n){if(isIdentifier(e))return e;const r=unescapeLeadingUnderscores(e.right.escapedText);return canUsePropertyAccess(r,t)?Wr.createPropertyAccessExpression(entityNameToExpression(e.left,t,n),r):Wr.createElementAccessExpression(entityNameToExpression(e.left,t,n),Wr.createStringLiteral(r,0===n))}function isMemberCompletionKind(e){switch(e){case 0:case 3:case 2:return!0;default:return!1}}function completionNameForLiteral(e,t,n){return"object"==typeof n?pseudoBigIntToString(n)+"n":isString(n)?quote(e,t,n):JSON.stringify(n)}function createCompletionEntryForLiteral(e,t,n){return{name:completionNameForLiteral(e,t,n),kind:"string",kindModifiers:"",sortText:dm.LocationPriority,commitCharacters:[]}}function createCompletionEntry(e,t,n,r,i,o,a,s,c,l,d,p,u,m,_,f,g,y,h,T,S,x,v,b){var C,E;let N,k,F,P,D,I,A,O=getReplacementSpanForContextToken(n,o),w=getSourceFromOrigin(p);const L=c.getTypeChecker(),M=p&&function originIsNullableMember(e){return!!(16&e.kind)}(p),R=p&&function originIsSymbolMember(e){return!!(2&e.kind)}(p)||d;if(p&&function originIsThisType(e){return!!(1&e.kind)}(p))N=d?`this${M?"?.":""}[${quotePropertyName(a,h,l)}]`:`this${M?"?.":"."}${l}`;else if((R||M)&&m){N=R?d?`[${quotePropertyName(a,h,l)}]`:`[${l}]`:l,(M||m.questionDotToken)&&(N=`?.${N}`);const e=findChildOfKind(m,25,a)||findChildOfKind(m,29,a);if(!e)return;const t=startsWith(l,m.name.text)?m.name.end:e.end;O=createTextSpanFromBounds(e.getStart(a),t)}if(_&&(void 0===N&&(N=l),N=`{${N}}`,"boolean"!=typeof _&&(O=createTextSpanFromNode(_,a))),p&&function originIsPromise(e){return!!(8&e.kind)}(p)&&m){void 0===N&&(N=l);const e=findPrecedingToken(m.pos,a);let t="";e&&positionIsASICandidate(e.end,e.parent,a)&&(t=";"),t+=`(await ${m.expression.getText()})`,N=d?`${t}${N}`:`${t}${M?"?.":"."}${N}`;O=createTextSpanFromBounds((tryCast(m.parent,isAwaitExpression)?m.parent:m.expression).getStart(a),m.end)}if(originIsResolvedExport(p)&&(D=[textPart(p.moduleSpecifier)],f&&(({insertText:N,replacementSpan:O}=function getInsertTextAndReplacementSpanForImportCompletion(e,t,n,r,i,o,a){const s=t.replacementSpan,c=escapeSnippetText(quote(i,a,n.moduleSpecifier)),l=n.isDefaultExport?1:"export="===n.exportName?2:0,d=a.includeCompletionsWithSnippetText?"$1":"",p=ed.getImportKind(i,l,o,!0),u=t.couldBeTypeOnlyImportSpecifier,m=t.isTopLevelTypeOnly?` ${tokenToString(156)} `:" ",_=u?`${tokenToString(156)} `:"",f=r?";":"";switch(p){case 3:return{replacementSpan:s,insertText:`import${m}${escapeSnippetText(e)}${d} = require(${c})${f}`};case 1:return{replacementSpan:s,insertText:`import${m}${escapeSnippetText(e)}${d} from ${c}${f}`};case 2:return{replacementSpan:s,insertText:`import${m}* as ${escapeSnippetText(e)} from ${c}${f}`};case 0:return{replacementSpan:s,insertText:`import${m}{ ${_}${escapeSnippetText(e)}${d} } from ${c}${f}`}}}(l,f,p,g,a,c,h)),P=!!h.includeCompletionsWithSnippetText||void 0)),64===(null==p?void 0:p.kind)&&(I=!0),0===T&&r&&28!==(null==(C=findPrecedingToken(r.pos,a,r))?void 0:C.kind)&&(isMethodDeclaration(r.parent.parent)||isGetAccessorDeclaration(r.parent.parent)||isSetAccessorDeclaration(r.parent.parent)||isSpreadAssignment(r.parent)||(null==(E=findAncestor(r.parent,isPropertyAssignment))?void 0:E.getLastToken(a))===r||isShorthandPropertyAssignment(r.parent)&&getLineAndCharacterOfPosition(a,r.getEnd()).line!==getLineAndCharacterOfPosition(a,o).line)&&(w="ObjectLiteralMemberWithComma/",I=!0),h.includeCompletionsWithClassMemberSnippets&&h.includeCompletionsWithInsertText&&3===T&&function isClassLikeMemberCompletion(e,t,n){if(isInJSFile(t))return!1;const r=106500;return!!(e.flags&r)&&(isClassLike(t)||t.parent&&t.parent.parent&&isClassElement(t.parent)&&t===t.parent.name&&t.parent.getLastToken(n)===t.parent.name&&isClassLike(t.parent.parent)||t.parent&&isSyntaxList(t)&&isClassLike(t.parent))}(e,i,a)){let t;const n=getEntryForMemberCompletion(s,c,y,h,l,e,i,o,r,S);if(!n)return;({insertText:N,filterText:k,isSnippet:P,importAdder:t}=n),((null==t?void 0:t.hasFixes())||n.eraseRange)&&(I=!0,w="ClassMemberSnippet/")}if(p&&originIsObjectLiteralMethod(p)&&(({insertText:N,isSnippet:P,labelDetails:A}=p),h.useLabelDetailsInCompletionEntries||(l+=A.detail,A=void 0),w="ObjectLiteralMethodSnippet/",t=dm.SortBelow(t)),x&&!v&&h.includeCompletionsWithSnippetText&&h.jsxAttributeCompletionStyle&&"none"!==h.jsxAttributeCompletionStyle&&(!isJsxAttribute(i.parent)||!i.parent.initializer)){let t="braces"===h.jsxAttributeCompletionStyle;const n=L.getTypeOfSymbolAtLocation(e,i);"auto"!==h.jsxAttributeCompletionStyle||528&n.flags||1048576&n.flags&&find(n.types,e=>!!(528&e.flags))||(402653316&n.flags||1048576&n.flags&&every(n.types,e=>!!(402686084&e.flags||isStringAndEmptyAnonymousObjectIntersection(e)))?(N=`${escapeSnippetText(l)}=${quote(a,h,"$1")}`,P=!0):t=!0),t&&(N=`${escapeSnippetText(l)}={$1}`,P=!0)}if(void 0!==N&&!h.includeCompletionsWithInsertText)return;(originIsExport(p)||originIsResolvedExport(p))&&(F=originToCompletionEntryData(p),I=!f);const B=findAncestor(i,isNamedImportsOrExports);if(B){const e=zn(s.getCompilationSettings());if(isIdentifierText(l,e)){if(276===B.kind){const e=stringToToken(l);e&&(135===e||isNonContextualKeyword(e))&&(N=`${l} as ${l}_`)}}else N=quotePropertyName(a,h,l),276===B.kind&&(Vs.setText(a.text),Vs.resetTokenState(o),130===Vs.scan()&&80===Vs.scan()||(N+=" as "+function generateIdentifierForArbitraryString(e,t){let n,r=!1,i="";for(let o=0;o=65536?2:1)n=e.codePointAt(o),void 0!==n&&(0===o?isIdentifierStart(n,t):isIdentifierPart(n,t))?(r&&(i+="_"),i+=String.fromCodePoint(n),r=!1):r=!0;r&&(i+="_");return i||"_"}(l,e)))}const j=Km.getSymbolKind(L,e,i),J="warning"===j||"string"===j?[]:void 0;return{name:l,kind:j,kindModifiers:Km.getSymbolModifiers(L,e),sortText:t,source:w,hasAction:!!I||void 0,isRecommended:isRecommendedCompletionMatch(e,u,L)||void 0,insertText:N,filterText:k,replacementSpan:O,sourceDisplay:D,labelDetails:A,isSnippet:P,isPackageJsonImport:originIsPackageJsonImport(p)||void 0,isImportStatementCompletion:!!f||void 0,data:F,commitCharacters:J,...b?{symbol:e}:void 0}}function getEntryForMemberCompletion(e,t,n,r,i,o,a,s,c,l){const d=findAncestor(a,isClassLike);if(!d)return;let p,u=i;const m=i,_=t.getTypeChecker(),f=a.getSourceFile(),g=createSnippetPrinter({removeComments:!0,module:n.module,moduleResolution:n.moduleResolution,target:n.target,omitTrailingSemicolon:!1,newLine:getNewLineKind(getNewLineOrDefaultFromHost(e,null==l?void 0:l.options))}),y=ed.createImportAdder(f,t,r,e);let h;if(r.includeCompletionsWithSnippetText){p=!0;const e=Wr.createEmptyStatement();h=Wr.createBlock([e],!0),setSnippetElement(e,{kind:0,order:0})}else h=Wr.createBlock([],!0);let T=0;const{modifiers:S,range:x,decorators:v}=function getPresentModifiers(e,t,n){if(!e||getLineAndCharacterOfPosition(t,n).line>getLineAndCharacterOfPosition(t,e.getEnd()).line)return{modifiers:0};let r,i,o=0;const a={pos:n,end:n};if(isPropertyDeclaration(e.parent)&&(i=function isModifierLike2(e){if(isModifier(e))return e.kind;if(isIdentifier(e)){const t=identifierToKeywordKind(e);if(t&&isModifierKind(t))return t}return}(e))){e.parent.modifiers&&(o|=98303&modifiersToFlags(e.parent.modifiers),r=e.parent.modifiers.filter(isDecorator)||[],a.pos=Math.min(...e.parent.modifiers.map(e=>e.getStart(t))));const n=modifierToFlag(i);o&n||(o|=n,a.pos=Math.min(a.pos,e.getStart(t))),e.parent.name!==e&&(a.end=e.parent.name.getStart(t))}return{modifiers:o,decorators:r,range:a.pos{let t=0;b&&(t|=64),isClassElement(e)&&1===_.getMemberOverrideModifierStatus(d,e,o)&&(t|=16),C.length||(T=e.modifierFlagsCache|t),e=Wr.replaceModifiers(e,T),C.push(e)},h,ed.PreserveOptionalFlags.Property,!!b),C.length){const e=8192&o.flags;let t=17|T;t|=e?1024:136;const n=S&t;if(S&~t)return;if(4&T&&1&n&&(T&=-5),0===n||1&n||(T&=-2),T|=n,C=C.map(e=>Wr.replaceModifiers(e,T)),null==v?void 0:v.length){const e=C[C.length-1];canHaveDecorators(e)&&(C[C.length-1]=Wr.replaceDecoratorsAndModifiers(e,v.concat(getModifiers(e)||[])))}const r=131073;u=l?g.printAndFormatSnippetList(r,Wr.createNodeArray(C),f,l):g.printSnippetList(r,Wr.createNodeArray(C),f)}return{insertText:u,filterText:m,isSnippet:p,importAdder:y,eraseRange:x}}function getEntryForObjectLiteralMethodCompletion(e,t,n,r,i,o,a,s){const c=a.includeCompletionsWithSnippetText||void 0;let l=t;const d=n.getSourceFile(),p=function createObjectLiteralMethod(e,t,n,r,i,o){const a=e.getDeclarations();if(!a||!a.length)return;const s=r.getTypeChecker(),c=a[0],l=getSynthesizedDeepClone(getNameOfDeclaration(c),!1),d=s.getWidenedType(s.getTypeOfSymbolAtLocation(e,t)),p=getQuotePreference(n,o),u=33554432|(0===p?268435456:0);switch(c.kind){case 172:case 173:case 174:case 175:{let e=1048576&d.flags&&d.types.length<10?s.getUnionType(d.types,2):d;if(1048576&e.flags){const t=filter(e.types,e=>s.getSignaturesOfType(e,0).length>0);if(1!==t.length)return;e=t[0]}if(1!==s.getSignaturesOfType(e,0).length)return;const n=s.typeToTypeNode(e,t,u,void 0,ed.getNoopSymbolTrackerWithResolver({program:r,host:i}));if(!n||!isFunctionTypeNode(n))return;let a;if(o.includeCompletionsWithSnippetText){const e=Wr.createEmptyStatement();a=Wr.createBlock([e],!0),setSnippetElement(e,{kind:0,order:0})}else a=Wr.createBlock([],!0);const c=n.parameters.map(e=>Wr.createParameterDeclaration(void 0,e.dotDotDotToken,e.name,void 0,void 0,e.initializer));return Wr.createMethodDeclaration(void 0,void 0,l,void 0,void 0,c,void 0,a)}default:return}}(e,n,d,r,i,a);if(!p)return;const u=createSnippetPrinter({removeComments:!0,module:o.module,moduleResolution:o.moduleResolution,target:o.target,omitTrailingSemicolon:!1,newLine:getNewLineKind(getNewLineOrDefaultFromHost(i,null==s?void 0:s.options))});l=s?u.printAndFormatSnippetList(80,Wr.createNodeArray([p],!0),d,s):u.printSnippetList(80,Wr.createNodeArray([p],!0),d);const m=createPrinter({removeComments:!0,module:o.module,moduleResolution:o.moduleResolution,target:o.target,omitTrailingSemicolon:!0}),_=Wr.createMethodSignature(void 0,"",p.questionToken,p.typeParameters,p.parameters,p.type);return{isSnippet:c,insertText:l,labelDetails:{detail:m.printNode(4,_,d)}}}function createSnippetPrinter(e){let t;const n=$m.createWriter(getNewLineCharacter(e)),r=createPrinter(e,n),i={...n,write:e=>escapingWrite(e,()=>n.write(e)),nonEscapingWrite:n.write,writeLiteral:e=>escapingWrite(e,()=>n.writeLiteral(e)),writeStringLiteral:e=>escapingWrite(e,()=>n.writeStringLiteral(e)),writeSymbol:(e,t)=>escapingWrite(e,()=>n.writeSymbol(e,t)),writeParameter:e=>escapingWrite(e,()=>n.writeParameter(e)),writeComment:e=>escapingWrite(e,()=>n.writeComment(e)),writeProperty:e=>escapingWrite(e,()=>n.writeProperty(e))};return{printSnippetList:function printSnippetList(e,n,r){const i=printUnescapedSnippetList(e,n,r);return t?$m.applyChanges(i,t):i},printAndFormatSnippetList:function printAndFormatSnippetList(e,n,r,i){const o={text:printUnescapedSnippetList(e,n,r),getLineAndCharacterOfPosition(e){return getLineAndCharacterOfPosition(this,e)}},a=getFormatCodeSettingsForWriting(i,r),s=flatMap(n,e=>{const t=$m.assignPositionsToNode(e);return r_.formatNodeGivenIndentation(t,o,r.languageVariant,0,0,{...i,options:a})}),c=t?toSorted(concatenate(s,t),(e,t)=>compareTextSpans(e.span,t.span)):s;return $m.applyChanges(o.text,c)},printNode:function printNode(e,n,r){const i=printUnescapedNode(e,n,r);return t?$m.applyChanges(i,t):i},printAndFormatNode:function printAndFormatNode(e,n,r,i){const o={text:printUnescapedNode(e,n,r),getLineAndCharacterOfPosition(e){return getLineAndCharacterOfPosition(this,e)}},a=getFormatCodeSettingsForWriting(i,r),s=$m.assignPositionsToNode(n),c=r_.formatNodeGivenIndentation(s,o,r.languageVariant,0,0,{...i,options:a}),l=t?toSorted(concatenate(c,t),(e,t)=>compareTextSpans(e.span,t.span)):c;return $m.applyChanges(o.text,l)}};function escapingWrite(e,r){const i=escapeSnippetText(e);if(i!==e){const e=n.getTextPos();r();const o=n.getTextPos();t=append(t||(t=[]),{newText:i,span:{start:e,length:o-e}})}else r()}function printUnescapedSnippetList(e,n,o){return t=void 0,i.clear(),r.writeList(e,n,o,i),i.getText()}function printUnescapedNode(e,n,o){return t=void 0,i.clear(),r.writeNode(e,n,o,i),i.getText()}}function originToCompletionEntryData(e){const t=e.fileName?void 0:stripQuotes(e.moduleSymbol.name),n=!!e.isFromPackageJson||void 0;if(originIsResolvedExport(e)){return{exportName:e.exportName,exportMapKey:e.exportMapKey,moduleSpecifier:e.moduleSpecifier,ambientModuleName:t,fileName:e.fileName,isPackageJsonImport:n}}return{exportName:e.exportName,exportMapKey:e.exportMapKey,fileName:e.fileName,ambientModuleName:e.fileName?void 0:stripQuotes(e.moduleSymbol.name),isPackageJsonImport:!!e.isFromPackageJson||void 0}}function completionEntryDataToSymbolOriginInfo(e,t,n){const r="default"===e.exportName,i=!!e.isPackageJsonImport;if(completionEntryDataIsResolved(e)){return{kind:32,exportName:e.exportName,exportMapKey:e.exportMapKey,moduleSpecifier:e.moduleSpecifier,symbolName:t,fileName:e.fileName,moduleSymbol:n,isDefaultExport:r,isFromPackageJson:i}}return{kind:4,exportName:e.exportName,exportMapKey:e.exportMapKey,symbolName:t,fileName:e.fileName,moduleSymbol:n,isDefaultExport:r,isFromPackageJson:i}}function quotePropertyName(e,t,n){return/^\d+$/.test(n)?n:quote(e,t,n)}function isRecommendedCompletionMatch(e,t,n){return e===t||!!(1048576&e.flags)&&n.getExportSymbolOfSymbol(e)===t}function getSourceFromOrigin(e){return originIsExport(e)?stripQuotes(e.moduleSymbol.name):originIsResolvedExport(e)?e.moduleSpecifier:1===(null==e?void 0:e.kind)?"ThisProperty/":64===(null==e?void 0:e.kind)?"TypeOnlyAlias/":void 0}function getCompletionEntriesFromSymbols(e,t,n,r,i,o,a,s,c,l,d,p,u,m,_,f,g,y,h,T,S,x,v,b,C,E=!1){const N=B(),k=function getClosestSymbolDeclaration(e,t){if(!e)return;let n=findAncestor(e,e=>isFunctionBlock(e)||isArrowFunctionBody(e)||isBindingPattern(e)?"quit":(isParameter(e)||isTypeParameterDeclaration(e))&&!isIndexSignatureDeclaration(e.parent));n||(n=findAncestor(t,e=>isFunctionBlock(e)||isArrowFunctionBody(e)||isBindingPattern(e)?"quit":isVariableDeclaration(e)));return n}(r,i),F=probablyUsesSemicolons(a),P=c.getTypeChecker(),D=new Map;for(let d=0;de.getSourceFile()===i.getSourceFile()));D.set(A,M),insertSorted(t,L,compareCompletionEntries,void 0,!0)}return d("getCompletionsAtPosition: getCompletionEntriesFromSymbols: "+(B()-N)),{has:e=>D.has(e),add:e=>D.set(e,!0)};function shouldIncludeSymbol(e,t){var n;let o=e.flags;if(i.parent&&isExportAssignment(i.parent))return!0;if(k&&tryCast(k,isVariableDeclaration)){if(e.valueDeclaration===k)return!1;if(isBindingPattern(k.name)&&k.name.elements.some(t=>t===e.valueDeclaration))return!1}const s=e.valueDeclaration??(null==(n=e.declarations)?void 0:n[0]);if(k&&s)if(isParameter(k)&&isParameter(s)){const e=k.parent.parameters;if(s.pos>=k.pos&&s.pos=k.pos&&s.poscompletionNameForLiteral(n,a,e)===i.name);return void 0!==h?{type:"literal",literal:h}:firstDefined(l,(e,t)=>{const n=m[t],r=getCompletionEntryDisplayNameForSymbol(e,zn(s),n,u,c.isJsxIdentifierExpected);return r&&r.name===i.name&&("ClassMemberSnippet/"===i.source&&106500&e.flags||"ObjectLiteralMethodSnippet/"===i.source&&8196&e.flags||getSourceFromOrigin(n)===i.source||"ObjectLiteralMemberWithComma/"===i.source)?{type:"symbol",symbol:e,location:p,origin:n,contextToken:_,previousToken:f,isJsxInitializer:g,isTypeOnlyLocation:y}:void 0})||{type:"none"}}function getCompletionEntryDetails(e,t,n,r,i,o,a,s,c){const l=e.getTypeChecker(),d=e.getCompilerOptions(),{name:p,source:u,data:m}=i,{previousToken:_,contextToken:f}=getRelevantTokens(r,n);if(isInString(n,r,_))return hm.getStringLiteralCompletionDetails(p,n,r,_,e,o,c,s);const g=getSymbolCompletionFromEntryId(e,t,n,r,i,o,s);switch(g.type){case"request":{const{request:e}=g;switch(e.kind){case 1:return Am.getJSDocTagNameCompletionDetails(p);case 2:return Am.getJSDocTagCompletionDetails(p);case 3:return Am.getJSDocParameterNameCompletionDetails(p);case 4:return some(e.keywordCompletions,e=>e.name===p)?createSimpleDetails(p,"keyword",5):void 0;default:return h.assertNever(e)}}case"symbol":{const{symbol:t,location:i,contextToken:_,origin:f,previousToken:y}=g,{codeActions:T,sourceDisplay:S}=function getCompletionEntryCodeActionsAndSourceDisplay(e,t,n,r,i,o,a,s,c,l,d,p,u,m,_,f){if((null==m?void 0:m.moduleSpecifier)&&d&&getImportStatementCompletionInfo(n||d,c).replacementSpan)return{codeActions:void 0,sourceDisplay:[textPart(m.moduleSpecifier)]};if("ClassMemberSnippet/"===_){const{importAdder:r,eraseRange:d}=getEntryForMemberCompletion(a,o,s,u,e,i,t,l,n,p);if((null==r?void 0:r.hasFixes())||d){return{sourceDisplay:void 0,codeActions:[{changes:$m.ChangeTracker.with({host:a,formatContext:p,preferences:u},e=>{r&&r.writeFixes(e),d&&e.deleteRange(c,d)}),description:(null==r?void 0:r.hasFixes())?diagnosticToString([Ot.Includes_imports_of_types_referenced_by_0,e]):diagnosticToString([Ot.Update_modifiers_of_0,e])}]}}}if(originIsTypeOnlyAlias(r)){const e=ed.getPromoteTypeOnlyCompletionAction(c,r.declaration.name,o,a,p,u);return h.assertIsDefined(e,"Expected to have a code action for promoting type-only alias"),{codeActions:[e],sourceDisplay:void 0}}if("ObjectLiteralMemberWithComma/"===_&&n){const t=$m.ChangeTracker.with({host:a,formatContext:p,preferences:u},e=>e.insertText(c,n.end,","));if(t)return{sourceDisplay:void 0,codeActions:[{changes:t,description:diagnosticToString([Ot.Add_missing_comma_for_object_member_completion_0,e])}]}}if(!r||!originIsExport(r)&&!originIsResolvedExport(r))return{codeActions:void 0,sourceDisplay:void 0};const g=r.isFromPackageJson?a.getPackageJsonAutoImportProvider().getTypeChecker():o.getTypeChecker(),{moduleSymbol:y}=r,T=g.getMergedSymbol(skipAlias(i.exportSymbol||i,g)),S=30===(null==n?void 0:n.kind)&&isJsxOpeningLikeElement(n.parent),{moduleSpecifier:x,codeAction:v}=ed.getImportCompletionAction(T,y,null==m?void 0:m.exportMapKey,c,e,S,a,o,p,d&&isIdentifier(d)?d.getStart(c):l,u,f);return h.assert(!(null==m?void 0:m.moduleSpecifier)||x===m.moduleSpecifier),{sourceDisplay:[textPart(x)],codeActions:[v]}}(p,i,_,f,t,e,o,d,n,r,y,a,s,m,u,c);return createCompletionDetailsForSymbol(t,originIsComputedPropertyName(f)?f.symbolName:t.name,l,n,i,c,T,S)}case"literal":{const{literal:e}=g;return createSimpleDetails(completionNameForLiteral(n,s,e),"string","string"==typeof e?8:7)}case"cases":{const t=getExhaustiveCaseSnippets(f.parent,n,s,e.getCompilerOptions(),o,e,void 0);if(null==t?void 0:t.importAdder.hasFixes()){const{entry:e,importAdder:n}=t,r=$m.ChangeTracker.with({host:o,formatContext:a,preferences:s},n.writeFixes);return{name:e.name,kind:"",kindModifiers:"",displayParts:[],sourceDisplay:void 0,codeActions:[{changes:r,description:diagnosticToString([Ot.Includes_imports_of_types_referenced_by_0,p])}]}}return{name:p,kind:"",kindModifiers:"",displayParts:[],sourceDisplay:void 0}}case"none":return ym().some(e=>e.name===p)?createSimpleDetails(p,"keyword",5):void 0;default:h.assertNever(g)}}function createSimpleDetails(e,t,n){return createCompletionDetails(e,"",t,[displayPart(e,n)])}function createCompletionDetailsForSymbol(e,t,n,r,i,o,a,s){const{displayParts:c,documentation:l,symbolKind:d,tags:p}=n.runWithCancellationToken(o,t=>Km.getSymbolDisplayPartsDocumentationAndSymbolKind(t,e,r,i,i,7));return createCompletionDetails(t,Km.getSymbolModifiers(n,e),d,c,l,p,a,s)}function createCompletionDetails(e,t,n,r,i,o,a,s){return{name:e,kindModifiers:t,kind:n,displayParts:r,documentation:i,tags:o,codeActions:a,source:s,sourceDisplay:s}}function getCompletionEntrySymbol(e,t,n,r,i,o,a){const s=getSymbolCompletionFromEntryId(e,t,n,r,i,o,a);return"symbol"===s.type?s.symbol:void 0}var fm=(e=>(e[e.ObjectPropertyDeclaration=0]="ObjectPropertyDeclaration",e[e.Global=1]="Global",e[e.PropertyAccess=2]="PropertyAccess",e[e.MemberLike=3]="MemberLike",e[e.String=4]="String",e[e.None=5]="None",e))(fm||{});function getFirstSymbolInChain(e,t,n){const r=n.getAccessibleSymbolChain(e,t,-1,!1);return r?first(r):e.parent&&(function isModuleSymbol(e){var t;return!!(null==(t=e.declarations)?void 0:t.some(e=>308===e.kind))}(e.parent)?e:getFirstSymbolInChain(e.parent,t,n))}function getCompletionData(e,t,n,r,i,o,a,s,c,l){const d=e.getTypeChecker(),p=isCheckedFile(n,r);let u=B(),m=getTokenAtPosition(n,i);t("getCompletionData: Get current token: "+(B()-u)),u=B();const _=isInComment(n,i,m);t("getCompletionData: Is inside comment: "+(B()-u));let f=!1,g=!1,y=!1;if(_){if(hasDocComment(n,i)){if(64===n.text.charCodeAt(i-1))return{kind:1};{const e=getLineStartPositionForPosition(i,n);if(!/[^*|\s(/)]/.test(n.text.substring(e,i)))return{kind:2}}}const e=function getJsDocTagAtPosition(e,t){return findAncestor(e,e=>!(!isJSDocTag(e)||!rangeContainsPosition(e,t))||!!isJSDoc(e)&&"quit")}(m,i);if(e){if(e.tagName.pos<=i&&i<=e.tagName.end)return{kind:1};if(isJSDocImportTag(e))g=!0;else{const t=function tryGetTypeExpressionFromTag(e){if(function isTagWithTypeExpression(e){switch(e.kind){case 342:case 349:case 343:case 345:case 347:case 350:case 351:return!0;case 346:return!!e.constraint;default:return!1}}(e)){const t=isJSDocTemplateTag(e)?e.constraint:e.typeExpression;return t&&310===t.kind?t:void 0}if(isJSDocAugmentsTag(e)||isJSDocImplementsTag(e))return e.class;return}(e);if(t&&(m=getTokenAtPosition(n,i),m&&(isDeclarationName(m)||349===m.parent.kind&&m.parent.name===m)||(f=isCurrentlyEditingNode(t))),!f&&isJSDocParameterTag(e)&&(nodeIsMissing(e.name)||e.name.pos<=i&&i<=e.name.end))return{kind:3,tag:e}}}if(!f&&!g)return void t("Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.")}u=B();const T=!f&&!g&&isSourceFileJS(n),S=getRelevantTokens(i,n),x=S.previousToken;let v=S.contextToken;t("getCompletionData: Get previous token: "+(B()-u));let b,C,E,N=m,k=!1,F=!1,P=!1,D=!1,I=!1,A=!1,O=getTouchingPropertyName(n,i),w=0,L=!1,M=0;if(v){const e=getImportStatementCompletionInfo(v,n);if(e.keywordCompletion){if(e.isKeywordOnlyCompletion)return{kind:4,keywordCompletions:[(R=e.keywordCompletion,{name:tokenToString(R),kind:"keyword",kindModifiers:"",sortText:dm.GlobalsOrKeywords})],isNewIdentifierLocation:e.isNewIdentifierLocation};w=function keywordFiltersFromSyntaxKind(e){if(156===e)return 8;h.fail("Unknown mapping from SyntaxKind to KeywordCompletionFilters")}(e.keywordCompletion)}if(e.replacementSpan&&o.includeCompletionsForImportStatements&&o.includeCompletionsWithInsertText&&(M|=2,C=e,L=e.isNewIdentifierLocation),!e.replacementSpan&&function isCompletionListBlocker(e){const r=B(),o=function isInStringOrRegularExpressionOrTemplateLiteral(e){return(isRegularExpressionLiteral(e)||isStringTextContainingNode(e))&&(rangeContainsPositionExclusive(e,i)||i===e.end&&(!!e.isUnterminated||isRegularExpressionLiteral(e)))}(e)||function isSolelyIdentifierDefinitionLocation(e){const t=e.parent,r=t.kind;switch(e.kind){case 28:return 261===r||function isVariableDeclarationListButNotTypeArgument(e){return 262===e.parent.kind&&!isPossiblyTypeArgumentPosition(e,n,d)}(e)||244===r||267===r||isFunctionLikeButNotConstructor(r)||265===r||208===r||266===r||isClassLike(t)&&!!t.typeParameters&&t.typeParameters.end>=e.pos;case 25:case 23:return 208===r;case 59:return 209===r;case 21:return 300===r||isFunctionLikeButNotConstructor(r);case 19:return 267===r;case 30:return 264===r||232===r||265===r||266===r||isFunctionLikeKind(r);case 126:return 173===r&&!isClassLike(t.parent);case 26:return 170===r||!!t.parent&&208===t.parent.kind;case 125:case 123:case 124:return 170===r&&!isConstructorDeclaration(t.parent);case 130:return 277===r||282===r||275===r;case 139:case 153:return!isFromObjectTypeDeclaration(e);case 80:if((277===r||282===r)&&e===t.name&&"type"===e.text)return!1;if(findAncestor(e.parent,isVariableDeclaration)&&function isInDifferentLineThanContextToken(e,t){return n.getLineEndOfPosition(e.getEnd())x.end))}(e)||function isDotOfNumericLiteral(e){if(9===e.kind){const t=e.getFullText();return"."===t.charAt(t.length-1)}return!1}(e)||function isInJsxText(e){if(12===e.kind)return!0;if(32===e.kind&&e.parent){if(O===e.parent&&(287===O.kind||286===O.kind))return!1;if(287===e.parent.kind)return 287!==O.parent.kind;if(288===e.parent.kind||286===e.parent.kind)return!!e.parent.parent&&285===e.parent.parent.kind}return!1}(e)||isBigIntLiteral(e);return t("getCompletionsAtPosition: isCompletionListBlocker: "+(B()-r)),o}(v))return t("Returning an empty list because completion was requested in an invalid position."),w?keywordCompletionData(w,T,computeCommitCharactersAndIsNewIdentifier().isNewIdentifierLocation):void 0;let r=v.parent;if(25===v.kind||29===v.kind)switch(k=25===v.kind,F=29===v.kind,r.kind){case 212:b=r,N=b.expression;if(nodeIsMissing(getLeftmostAccessExpression(b))||(isCallExpression(N)||isFunctionLike(N))&&N.end===v.pos&&N.getChildCount(n)&&22!==last(N.getChildren(n)).kind)return;break;case 167:N=r.left;break;case 268:N=r.name;break;case 206:N=r;break;case 237:N=r.getFirstToken(n),h.assert(102===N.kind||105===N.kind);break;default:return}else if(!C){if(r&&212===r.kind&&(v=r,r=r.parent),m.parent===O)switch(m.kind){case 32:285!==m.parent.kind&&287!==m.parent.kind||(O=m);break;case 31:286===m.parent.kind&&(O=m)}switch(r.kind){case 288:31===v.kind&&(D=!0,O=v);break;case 227:if(!binaryExpressionMayBeOpenTag(r))break;case 286:case 285:case 287:A=!0,30===v.kind&&(P=!0,O=v);break;case 295:case 294:(20===x.kind||80===x.kind&&292===x.parent.kind)&&(A=!0);break;case 292:if(r.initializer===x&&x.endcreateModuleSpecifierResolutionHost(t?s.getPackageJsonAutoImportProvider():e,s));if(k||F)!function getTypeScriptMemberSymbols(){W=2;const e=isLiteralImportTypeNode(N),t=e&&!N.isTypeOf||isPartOfTypeNode(N.parent)||isPossiblyTypeArgumentPosition(v,n,d),r=isInRightSideOfInternalImportEqualsDeclaration(N);if(isEntityName(N)||e||isPropertyAccessExpression(N)){const n=isModuleDeclaration(N.parent);n&&(L=!0,E=[]);let i=d.getSymbolAtLocation(N);if(i&&(i=skipAlias(i,d),1920&i.flags)){const a=d.getExportsOfModule(i);h.assertEachIsDefined(a,"getExportsOfModule() should all be defined");const isValidValueAccess=t=>d.isValidPropertyAccess(e?N:N.parent,t.name),isValidTypeAccess=e=>symbolCanBeReferencedAtTypeLocation(e,d),s=n?e=>{var t;return!!(1920&e.flags)&&!(null==(t=e.declarations)?void 0:t.every(e=>e.parent===N.parent))}:r?e=>isValidTypeAccess(e)||isValidValueAccess(e):t||f?isValidTypeAccess:isValidValueAccess;for(const e of a)s(e)&&z.push(e);if(!t&&!f&&i.declarations&&i.declarations.some(e=>308!==e.kind&&268!==e.kind&&267!==e.kind)){let e=d.getTypeOfSymbolAtLocation(i,N).getNonOptionalType(),t=!1;if(e.isNullableType()){const n=k&&!F&&!1!==o.includeAutomaticOptionalChainCompletions;(n||F)&&(e=e.getNonNullableType(),n&&(t=!0))}addTypeProperties(e,!!(65536&N.flags),t)}return}}if(!t||isInTypeQuery(N)){d.tryGetThisTypeAt(N,!1);let e=d.getTypeAtLocation(N).getNonOptionalType();if(t)addTypeProperties(e.getNonNullableType(),!1,!1);else{let t=!1;if(e.isNullableType()){const n=k&&!F&&!1!==o.includeAutomaticOptionalChainCompletions;(n||F)&&(e=e.getNonNullableType(),n&&(t=!0))}addTypeProperties(e,!!(65536&N.flags),t)}}}();else if(P)z=d.getJsxIntrinsicTagNamesAt(O),h.assertEachIsDefined(z,"getJsxIntrinsicTagNames() should all be defined"),tryGetGlobalSymbols(),W=1,w=0;else if(D){const e=v.parent.parent.openingElement.tagName,t=d.getSymbolAtLocation(e);t&&(z=[t]),W=1,w=0}else if(!tryGetGlobalSymbols())return w?keywordCompletionData(w,T,L):void 0;t("getCompletionData: Semantic work: "+(B()-j));const $=x&&function getContextualType(e,t,n,r){const{parent:i}=e;switch(e.kind){case 80:return getContextualTypeFromParent(e,r);case 64:switch(i.kind){case 261:return r.getContextualType(i.initializer);case 227:return r.getTypeAtLocation(i.left);case 292:return r.getContextualTypeForJsxAttribute(i);default:return}case 105:return r.getContextualType(i);case 84:const o=tryCast(i,isCaseClause);return o?getSwitchedType(o,r):void 0;case 19:return!isJsxExpression(i)||isJsxElement(i.parent)||isJsxFragment(i.parent)?void 0:r.getContextualTypeForJsxAttribute(i.parent);default:const a=Um.getArgumentInfoForCompletions(e,t,n,r);return a?r.getContextualTypeForArgumentAtIndex(a.invocation,a.argumentIndex):isEqualityOperatorKind(e.kind)&&isBinaryExpression(i)&&isEqualityOperatorKind(i.operatorToken.kind)?r.getTypeAtLocation(i.left):r.getContextualType(e,4)||r.getContextualType(e)}}(x,i,n,d),Q=!tryCast(x,isStringLiteralLike)&&!A?mapDefined($&&($.isUnion()?$.types:[$]),e=>!e.isLiteral()||1024&e.flags?void 0:e.value):[],X=x&&$&&function getRecommendedCompletion(e,t,n){return firstDefined(t&&(t.isUnion()?t.types:[t]),t=>{const r=t&&t.symbol;return r&&424&r.flags&&!isAbstractConstructorSymbol(r)?getFirstSymbolInChain(r,e,n):void 0})}(x,$,d);return{kind:0,symbols:z,completionKind:W,isInSnippetScope:y,propertyAccessToConvert:b,isNewIdentifierLocation:L,location:O,keywordFilters:w,literals:Q,symbolToOriginInfoMap:V,recommendedCompletion:X,previousToken:x,contextToken:v,isJsxInitializer:I,insideJsDocTagTypeExpression:f,symbolToSortTextMap:q,isTypeOnlyLocation:K,isJsxIdentifierExpected:A,isRightOfOpenTag:P,isRightOfDotOrQuestionDot:k||F,importStatementCompletion:C,hasUnresolvedAutoImports:U,flags:M,defaultCommitCharacters:E};function addTypeProperties(e,t,n){e.getStringIndexType()&&(L=!0,E=[]),F&&some(e.getCallSignatures())&&(L=!0,E??(E=pm));const r=206===N.kind?N:N.parent;if(p)for(const t of e.getApparentProperties())d.isValidPropertyAccessForCompletions(r,e,t)&&addPropertySymbol(t,!1,n);else z.push(...filter(getPropertiesForCompletion(e,d),t=>d.isValidPropertyAccessForCompletions(r,e,t)));if(t&&o.includeCompletionsWithInsertText){const t=d.getPromisedTypeOfPromise(e);if(t)for(const e of t.getApparentProperties())d.isValidPropertyAccessForCompletions(r,t,e)&&addPropertySymbol(e,!0,n)}}function addPropertySymbol(t,r,a){var c;const l=firstDefined(t.declarations,e=>tryCast(getNameOfDeclaration(e),isComputedPropertyName));if(l){const r=getLeftMostName(l.expression),a=r&&d.getSymbolAtLocation(r),p=a&&getFirstSymbolInChain(a,v,d),u=p&&getSymbolId(p);if(u&&addToSeen(H,u)){const t=z.length;z.push(p),q[getSymbolId(p)]=dm.GlobalsOrKeywords;const r=p.parent;if(r&&isExternalModuleSymbol(r)&&d.tryGetMemberInModuleExportsAndProperties(p.name,r)===p){const a=isExternalModuleNameRelative(stripQuotes(r.name))?null==(c=getSourceFileOfModule(r))?void 0:c.fileName:void 0,{moduleSpecifier:l}=(J||(J=ed.createImportSpecifierResolver(n,e,s,o))).getModuleSpecifierForBestExportInfo([{exportKind:0,moduleFileName:a,isFromPackageJson:!1,moduleSymbol:r,symbol:p,targetFlags:skipAlias(p,d).flags}],i,isValidTypeOnlyAliasUseSite(O))||{};if(l){const e={kind:getNullableSymbolOriginInfoKind(6),moduleSymbol:r,isDefaultExport:!1,symbolName:p.name,exportName:p.name,fileName:a,moduleSpecifier:l};V[t]=e}}else V[t]={kind:getNullableSymbolOriginInfoKind(2)}}else if(o.includeCompletionsWithInsertText){if(u&&H.has(u))return;addSymbolOriginInfo(t),addSymbolSortInfo(t),z.push(t)}}else addSymbolOriginInfo(t),addSymbolSortInfo(t),z.push(t);function addSymbolSortInfo(e){(function isStaticProperty(e){return!!(e.valueDeclaration&&256&getEffectiveModifierFlags(e.valueDeclaration)&&isClassLike(e.valueDeclaration.parent))})(e)&&(q[getSymbolId(e)]=dm.LocalDeclarationPriority)}function addSymbolOriginInfo(e){o.includeCompletionsWithInsertText&&(r&&addToSeen(H,getSymbolId(e))?V[z.length]={kind:getNullableSymbolOriginInfoKind(8)}:a&&(V[z.length]={kind:16}))}function getNullableSymbolOriginInfoKind(e){return a?16|e:e}}function getLeftMostName(e){return isIdentifier(e)?e:isPropertyAccessExpression(e)?getLeftMostName(e.expression):void 0}function tryGetGlobalSymbols(){const t=function tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols(){const e=function tryGetTypeLiteralNode(e){if(!e)return;const t=e.parent;switch(e.kind){case 19:if(isTypeLiteralNode(t))return t;break;case 27:case 28:case 80:if(172===t.kind&&isTypeLiteralNode(t.parent))return t.parent}return}(v);if(!e)return 0;const t=(isIntersectionTypeNode(e.parent)?e.parent:void 0)||e,n=getConstraintOfTypeArgumentProperty(t,d);if(!n)return 0;const r=d.getTypeFromTypeNode(t),i=getPropertiesForCompletion(n,d),o=getPropertiesForCompletion(r,d),a=new Set;return o.forEach(e=>a.add(e.escapedName)),z=concatenate(z,filter(i,e=>!a.has(e.escapedName))),W=0,L=!0,1}()||function tryGetObjectLikeCompletionSymbols(){if(26===(null==v?void 0:v.kind))return 0;const t=z.length,a=function tryGetObjectLikeCompletionContainer(e,t,n){var r;if(e){const{parent:i}=e;switch(e.kind){case 19:case 28:if(isObjectLiteralExpression(i)||isObjectBindingPattern(i))return i;break;case 42:return isMethodDeclaration(i)?tryCast(i.parent,isObjectLiteralExpression):void 0;case 134:return tryCast(i.parent,isObjectLiteralExpression);case 80:if("async"===e.text&&isShorthandPropertyAssignment(e.parent))return e.parent.parent;{if(isObjectLiteralExpression(e.parent.parent)&&(isSpreadAssignment(e.parent)||isShorthandPropertyAssignment(e.parent)&&getLineAndCharacterOfPosition(n,e.getEnd()).line!==getLineAndCharacterOfPosition(n,t).line))return e.parent.parent;const r=findAncestor(i,isPropertyAssignment);if((null==r?void 0:r.getLastToken(n))===e&&isObjectLiteralExpression(r.parent))return r.parent}break;default:if((null==(r=i.parent)?void 0:r.parent)&&(isMethodDeclaration(i.parent)||isGetAccessorDeclaration(i.parent)||isSetAccessorDeclaration(i.parent))&&isObjectLiteralExpression(i.parent.parent))return i.parent.parent;if(isSpreadAssignment(i)&&isObjectLiteralExpression(i.parent))return i.parent;const o=findAncestor(i,isPropertyAssignment);if(59!==e.kind&&(null==o?void 0:o.getLastToken(n))===e&&isObjectLiteralExpression(o.parent))return o.parent}}return}(v,i,n);if(!a)return 0;let l,p;if(W=0,211===a.kind){const e=function tryGetObjectLiteralContextualType(e,t){const n=t.getContextualType(e);if(n)return n;const r=walkUpParenthesizedExpressions(e.parent);if(isBinaryExpression(r)&&64===r.operatorToken.kind&&e===r.left)return t.getTypeAtLocation(r);if(isExpression(r))return t.getContextualType(r);return}(a,d);if(void 0===e)return 67108864&a.flags?2:0;const t=d.getContextualType(a,4),n=(t||e).getStringIndexType(),r=(t||e).getNumberIndexType();if(L=!!n||!!r,l=getPropertiesForObjectExpression(e,t,a,d),p=a.properties,0===l.length&&!r)return 0}else{h.assert(207===a.kind),L=!1;const e=getRootDeclaration(a.parent);if(!isVariableLike(e))return h.fail("Root declaration is not variable-like.");let t=hasInitializer(e)||!!getEffectiveTypeAnnotationNode(e)||251===e.parent.parent.kind;if(t||170!==e.kind||(isExpression(e.parent)?t=!!d.getContextualType(e.parent):175!==e.parent.kind&&179!==e.parent.kind||(t=isExpression(e.parent.parent)&&!!d.getContextualType(e.parent.parent))),t){const e=d.getTypeAtLocation(a);if(!e)return 2;l=d.getPropertiesOfType(e).filter(t=>d.isPropertyAccessible(a,!1,!1,e,t)),p=a.elements}}if(l&&l.length>0){const n=function filterObjectMembersList(e,t){if(0===t.length)return e;const n=new Set,r=new Set;for(const e of t){if(304!==e.kind&&305!==e.kind&&209!==e.kind&&175!==e.kind&&178!==e.kind&&179!==e.kind&&306!==e.kind)continue;if(isCurrentlyEditingNode(e))continue;let t;if(isSpreadAssignment(e))setMembersDeclaredBySpreadAssignment(e,n);else if(isBindingElement(e)&&e.propertyName)80===e.propertyName.kind&&(t=e.propertyName.escapedText);else{const n=getNameOfDeclaration(e);t=n&&isPropertyNameLiteral(n)?getEscapedTextOfIdentifierOrLiteral(n):void 0}void 0!==t&&r.add(t)}const i=e.filter(e=>!r.has(e.escapedName));return setSortTextToMemberDeclaredBySpreadAssignment(n,i),i}(l,h.checkDefined(p));z=concatenate(z,n),setSortTextToOptionalMember(),211===a.kind&&o.includeCompletionsWithObjectLiteralMethodSnippets&&o.includeCompletionsWithInsertText&&(!function transformObjectLiteralMembersSortText(e){for(let t=e;t{if(!function isObjectLiteralMethodSymbol(e){if(!(8196&e.flags))return!1;return!0}(t))return;const i=getCompletionEntryDisplayNameForSymbol(t,zn(r),void 0,0,!1);if(!i)return;const{name:a}=i,l=getEntryForObjectLiteralMethodCompletion(t,a,n,e,s,r,o,c);if(!l)return;const d={kind:128,...l};M|=32,V[z.length]=d,z.push(t)})}(n,a))}return 1}()||function tryGetImportCompletionSymbols(){return C?(L=!0,collectAutoImports(),1):0}()||function tryGetImportOrExportClauseCompletionSymbols(){if(!v)return 0;const e=19===v.kind||28===v.kind?tryCast(v.parent,isNamedImportsOrExports):isTypeKeywordTokenOrIdentifier(v)?tryCast(v.parent.parent,isNamedImportsOrExports):void 0;if(!e)return 0;isTypeKeywordTokenOrIdentifier(v)||(w=8);const{moduleSpecifier:t}=276===e.kind?e.parent.parent:e.parent;if(!t)return L=!0,276===e.kind?2:0;const n=d.getSymbolAtLocation(t);if(!n)return L=!0,2;W=3,L=!1;const r=d.getExportsAndPropertiesOfModule(n),i=new Set(e.elements.filter(e=>!isCurrentlyEditingNode(e)).map(e=>moduleExportNameTextEscaped(e.propertyName||e.name))),o=r.filter(e=>"default"!==e.escapedName&&!i.has(e.escapedName));z=concatenate(z,o),o.length||(w=0);return 1}()||function tryGetImportAttributesCompletionSymbols(){if(void 0===v)return 0;const e=19===v.kind||28===v.kind?tryCast(v.parent,isImportAttributes):59===v.kind?tryCast(v.parent.parent,isImportAttributes):void 0;if(void 0===e)return 0;const t=new Set(e.elements.map(getNameFromImportAttribute));return z=filter(d.getTypeAtLocation(e).getApparentProperties(),e=>!t.has(e.escapedName)),1}()||function tryGetLocalNamedExportCompletionSymbols(){var e;const t=!v||19!==v.kind&&28!==v.kind?void 0:tryCast(v.parent,isNamedExports);if(!t)return 0;const n=findAncestor(t,or(isSourceFile,isModuleDeclaration));return W=5,L=!1,null==(e=n.locals)||e.forEach((e,t)=>{var r,i;z.push(e),(null==(i=null==(r=n.symbol)?void 0:r.exports)?void 0:i.has(t))&&(q[getSymbolId(e)]=dm.OptionalMember)}),1}()||function tryGetConstructorCompletion(){return function tryGetConstructorLikeCompletionContainer(e){if(e){const t=e.parent;switch(e.kind){case 21:case 28:return isConstructorDeclaration(e.parent)?e.parent:void 0;default:if(isConstructorParameterCompletion(e))return t.parent}}return}(v)?(W=5,L=!0,w=4,1):0}()||function tryGetClassLikeCompletionSymbols(){const e=function tryGetObjectTypeDeclarationCompletionContainer(e,t,n,r){switch(n.kind){case 353:return tryCast(n.parent,isObjectTypeDeclaration);case 1:const t=tryCast(lastOrUndefined(cast(n.parent,isSourceFile).statements),isObjectTypeDeclaration);if(t&&!findChildOfKind(t,20,e))return t;break;case 81:if(tryCast(n.parent,isPropertyDeclaration))return findAncestor(n,isClassLike);break;case 80:if(identifierToKeywordKind(n))return;if(isPropertyDeclaration(n.parent)&&n.parent.initializer===n)return;if(isFromObjectTypeDeclaration(n))return findAncestor(n,isObjectTypeDeclaration)}if(!t)return;if(137===n.kind||isIdentifier(t)&&isPropertyDeclaration(t.parent)&&isClassLike(n))return findAncestor(t,isClassLike);switch(t.kind){case 64:return;case 27:case 20:return isFromObjectTypeDeclaration(n)&&n.parent.name===n?n.parent.parent:tryCast(n,isObjectTypeDeclaration);case 19:case 28:return tryCast(t.parent,isObjectTypeDeclaration);default:if(isObjectTypeDeclaration(n)){if(getLineAndCharacterOfPosition(e,t.getEnd()).line!==getLineAndCharacterOfPosition(e,r).line)return n;const i=isClassLike(t.parent.parent)?isClassMemberCompletionKeyword:isInterfaceOrTypeLiteralCompletionKeyword;return i(t.kind)||42===t.kind||isIdentifier(t)&&i(identifierToKeywordKind(t)??0)?t.parent.parent:void 0}return}}(n,v,O,i);if(!e)return 0;if(W=3,L=!0,w=42===v.kind?0:isClassLike(e)?2:3,!isClassLike(e))return 1;const t=27===v.kind?v.parent.parent:v.parent;let r=isClassElement(t)?getEffectiveModifierFlags(t):0;if(80===v.kind&&!isCurrentlyEditingNode(v))switch(v.getText()){case"private":r|=2;break;case"static":r|=256;break;case"override":r|=16}isClassStaticBlockDeclaration(t)&&(r|=256);if(!(2&r)){const t=flatMap(isClassLike(e)&&16&r?singleElementArray(getEffectiveBaseTypeNode(e)):getAllSuperTypeNodes(e),t=>{const n=d.getTypeAtLocation(t);return 256&r?(null==n?void 0:n.symbol)&&d.getPropertiesOfType(d.getTypeOfSymbolAtLocation(n.symbol,e)):n&&d.getPropertiesOfType(n)});z=concatenate(z,function filterClassMembersList(e,t,n){const r=new Set;for(const e of t){if(173!==e.kind&&175!==e.kind&&178!==e.kind&&179!==e.kind)continue;if(isCurrentlyEditingNode(e))continue;if(hasEffectiveModifier(e,2))continue;if(isStatic(e)!==!!(256&n))continue;const t=getPropertyNameForPropertyNameNode(e.name);t&&r.add(t)}return e.filter(e=>!(r.has(e.escapedName)||!e.declarations||2&getDeclarationModifierFlagsFromSymbol(e)||e.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(e.valueDeclaration)))}(t,e.members,r)),forEach(z,(e,t)=>{const n=null==e?void 0:e.valueDeclaration;if(n&&isClassElement(n)&&n.name&&isComputedPropertyName(n.name)){const n={kind:512,symbolName:d.symbolToString(e)};V[t]=n}})}return 1}()||function tryGetJsxCompletionSymbols(){const e=function tryGetContainingJsxElement(e){if(e){const t=e.parent;switch(e.kind){case 32:case 31:case 44:case 80:case 212:case 293:case 292:case 294:if(t&&(286===t.kind||287===t.kind)){if(32===e.kind){const r=findPrecedingToken(e.pos,n,void 0);if(!t.typeArguments||r&&44===r.kind)break}return t}if(292===t.kind)return t.parent.parent;break;case 11:if(t&&(292===t.kind||294===t.kind))return t.parent.parent;break;case 20:if(t&&295===t.kind&&t.parent&&292===t.parent.kind)return t.parent.parent.parent;if(t&&294===t.kind)return t.parent.parent}}return}(v),t=e&&d.getContextualType(e.attributes);if(!t)return 0;const r=e&&d.getContextualType(e.attributes,4);return z=concatenate(z,function filterJsxAttributes(e,t){const n=new Set,r=new Set;for(const e of t)isCurrentlyEditingNode(e)||(292===e.kind?n.add(getEscapedTextOfJsxAttributeName(e.name)):isJsxSpreadAttribute(e)&&setMembersDeclaredBySpreadAssignment(e,r));const i=e.filter(e=>!n.has(e.escapedName));return setSortTextToMemberDeclaredBySpreadAssignment(r,i),i}(getPropertiesForObjectExpression(t,r,e.attributes,d),e.attributes.properties)),setSortTextToOptionalMember(),W=3,L=!1,1}()||(function getGlobalCompletions(){w=function tryGetFunctionLikeBodyCompletionContainer(e){if(e){let t;const n=findAncestor(e.parent,e=>isClassLike(e)?"quit":!(!isFunctionLikeDeclaration(e)||t!==e.body)||(t=e,!1));return n&&n}}(v)?5:1,W=1,({isNewIdentifierLocation:L,defaultCommitCharacters:E}=computeCommitCharactersAndIsNewIdentifier()),x!==v&&h.assert(!!x,"Expected 'contextToken' to be defined when different from 'previousToken'.");const e=x!==v?x.getStart():i,t=function getScopeNode(e,t,n){let r=e;for(;r&&!positionBelongsToNode(r,t,n);)r=r.parent;return r}(v,e,n)||n;y=function isSnippetScope(e){switch(e.kind){case 308:case 229:case 295:case 242:return!0;default:return isStatement(e)}}(t);const r=2887656|(K?0:111551),a=x&&!isValidTypeOnlyAliasUseSite(x);z=concatenate(z,d.getSymbolsInScope(t,r)),h.assertEachIsDefined(z,"getSymbolsInScope() should all be defined");for(let e=0;ee.getSourceFile()===n)||(q[getSymbolId(t)]=dm.GlobalsOrKeywords),a&&!(111551&t.flags)){const n=t.declarations&&find(t.declarations,isTypeOnlyImportDeclaration);if(n){const t={kind:64,declaration:n};V[e]=t}}}if(o.includeCompletionsWithInsertText&&308!==t.kind){const e=d.tryGetThisTypeAt(t,!1,isClassLike(t.parent)?t:void 0);if(e&&!function isProbablyGlobalType(e,t,n){const r=n.resolveName("self",void 0,111551,!1);if(r&&n.getTypeOfSymbolAtLocation(r,t)===e)return!0;const i=n.resolveName("global",void 0,111551,!1);if(i&&n.getTypeOfSymbolAtLocation(i,t)===e)return!0;const o=n.resolveName("globalThis",void 0,111551,!1);if(o&&n.getTypeOfSymbolAtLocation(o,t)===e)return!0;return!1}(e,n,d))for(const t of getPropertiesForCompletion(e,d))V[z.length]={kind:1},z.push(t),q[getSymbolId(t)]=dm.SuggestedClassMembers}collectAutoImports(),K&&(w=v&&isAssertionExpression(v.parent)?6:7)}(),1);return 1===t}function collectAutoImports(){var t,r;if(!function shouldOfferImportCompletions(){var t;return!!C||!!o.includeCompletionsForModuleExports&&(!(!n.externalModuleIndicator&&!n.commonJsModuleIndicator)||!!compilerOptionsIndicateEsModules(e.getCompilerOptions())||(null==(t=e.getSymlinkCache)?void 0:t.call(e).hasAnySymlinks())||!!e.getCompilerOptions().paths||programContainsModules(e))}())return;if(h.assert(!(null==a?void 0:a.data),"Should not run 'collectAutoImports' when faster path is available via `data`"),a&&!a.source)return;M|=1;const c=x===v&&C?"":x&&isIdentifier(x)?x.text.toLowerCase():"",d=null==(t=s.getModuleSpecifierCache)?void 0:t.call(s),p=getExportInfoMap(n,s,e,o,l),u=null==(r=s.getPackageJsonAutoImportProvider)?void 0:r.call(s),m=a?void 0:createPackageJsonImportFilter(n,o,s);function isImportableExportInfo(t){return isImportable(t.isFromPackageJson?u:e,n,tryCast(t.moduleSymbol.valueDeclaration,isSourceFile),t.moduleSymbol,o,m,G(t.isFromPackageJson),d)}resolvingModuleSpecifiers("collectAutoImports",s,J||(J=ed.createImportSpecifierResolver(n,e,s,o)),e,i,o,!!C,isValidTypeOnlyAliasUseSite(O),e=>{p.search(n.path,P,(e,t)=>{if(!isIdentifierText(e,zn(s.getCompilationSettings())))return!1;if(!a&&isStringANonContextualKeyword(e))return!1;if(!(K||C||111551&t))return!1;if(K&&!(790504&t))return!1;const n=e.charCodeAt(0);return(!P||!(n<65||n>90))&&(!!a||charactersFuzzyMatchInString(e,c))},(t,n,r,i)=>{if(a&&!some(t,e=>a.source===stripQuotes(e.moduleSymbol.name)))return;if(!(t=filter(t,isImportableExportInfo)).length)return;const o=e.tryResolve(t,r)||{};if("failed"===o)return;let s,c=t[0];"skipped"!==o&&({exportInfo:c=t[0],moduleSpecifier:s}=o);const l=1===c.exportKind;!function pushAutoImportSymbol(e,t){const n=getSymbolId(e);if(q[n]===dm.GlobalsOrKeywords)return;V[z.length]=t,q[n]=C?dm.LocationPriority:dm.AutoImportSuggestions,z.push(e)}(l&&getLocalSymbolForExportDefault(h.checkDefined(c.symbol))||h.checkDefined(c.symbol),{kind:s?32:4,moduleSpecifier:s,symbolName:n,exportMapKey:i,exportName:2===c.exportKind?"export=":h.checkDefined(c.symbol).name,fileName:c.moduleFileName,isDefaultExport:l,moduleSymbol:c.moduleSymbol,isFromPackageJson:c.isFromPackageJson})}),U=e.skippedAny(),M|=e.resolvedAny()?8:0,M|=e.resolvedBeyondLimit()?16:0})}function computeCommitCharactersAndIsNewIdentifier(){if(v){const e=v.parent.kind,t=keywordForNode(v);switch(t){case 28:switch(e){case 214:case 215:{const e=v.parent.expression;return getLineAndCharacterOfPosition(n,e.end).line!==getLineAndCharacterOfPosition(n,i).line?{defaultCommitCharacters:um,isNewIdentifierLocation:!0}:{defaultCommitCharacters:pm,isNewIdentifierLocation:!0}}case 227:return{defaultCommitCharacters:um,isNewIdentifierLocation:!0};case 177:case 185:case 211:return{defaultCommitCharacters:[],isNewIdentifierLocation:!0};case 210:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!0};default:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}case 21:switch(e){case 214:case 215:{const e=v.parent.expression;return getLineAndCharacterOfPosition(n,e.end).line!==getLineAndCharacterOfPosition(n,i).line?{defaultCommitCharacters:um,isNewIdentifierLocation:!0}:{defaultCommitCharacters:pm,isNewIdentifierLocation:!0}}case 218:return{defaultCommitCharacters:um,isNewIdentifierLocation:!0};case 177:case 197:return{defaultCommitCharacters:[],isNewIdentifierLocation:!0};default:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}case 23:switch(e){case 210:case 182:case 190:case 168:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!0};default:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}case 144:case 145:case 102:return{defaultCommitCharacters:[],isNewIdentifierLocation:!0};case 25:return 268===e?{defaultCommitCharacters:[],isNewIdentifierLocation:!0}:{defaultCommitCharacters:pm,isNewIdentifierLocation:!1};case 19:switch(e){case 264:case 211:return{defaultCommitCharacters:[],isNewIdentifierLocation:!0};default:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}case 64:switch(e){case 261:case 227:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!0};default:return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}case 16:return{defaultCommitCharacters:pm,isNewIdentifierLocation:229===e};case 17:return{defaultCommitCharacters:pm,isNewIdentifierLocation:240===e};case 134:return 175===e||305===e?{defaultCommitCharacters:[],isNewIdentifierLocation:!0}:{defaultCommitCharacters:pm,isNewIdentifierLocation:!1};case 42:return 175===e?{defaultCommitCharacters:[],isNewIdentifierLocation:!0}:{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}if(isClassMemberCompletionKeyword(t))return{defaultCommitCharacters:[],isNewIdentifierLocation:!0}}return{defaultCommitCharacters:pm,isNewIdentifierLocation:!1}}function isConstructorParameterCompletion(e){return!!e.parent&&isParameter(e.parent)&&isConstructorDeclaration(e.parent.parent)&&(isParameterPropertyModifier(e.kind)||isDeclarationName(e))}function isPreviousPropertyDeclarationTerminated(e,t){return 64!==e.kind&&(27===e.kind||!positionsAreOnSameLine(e.end,t,n))}function isFunctionLikeButNotConstructor(e){return isFunctionLikeKind(e)&&177!==e}function setMembersDeclaredBySpreadAssignment(e,t){const n=e.expression,r=d.getSymbolAtLocation(n),i=r&&d.getTypeOfSymbolAtLocation(r,n),o=i&&i.properties;o&&o.forEach(e=>{t.add(e.name)})}function setSortTextToOptionalMember(){z.forEach(e=>{if(16777216&e.flags){const t=getSymbolId(e);q[t]=q[t]??dm.OptionalMember}})}function setSortTextToMemberDeclaredBySpreadAssignment(e,t){if(0!==e.size)for(const n of t)e.has(n.name)&&(q[getSymbolId(n)]=dm.MemberDeclaredBySpreadAssignment)}function isCurrentlyEditingNode(e){return e.getStart(n)<=i&&i<=e.getEnd()}}function getRelevantTokens(e,t){const n=findPrecedingToken(e,t);if(n&&e<=n.end&&(isMemberName(n)||isKeyword(n.kind))){return{contextToken:findPrecedingToken(n.getFullStart(),t,void 0),previousToken:n}}return{contextToken:n,previousToken:n}}function getAutoImportSymbolFromCompletionEntryData(e,t,n,r){const i=t.isPackageJsonImport?r.getPackageJsonAutoImportProvider():n,o=i.getTypeChecker(),a=t.ambientModuleName?o.tryFindAmbientModule(t.ambientModuleName):t.fileName?o.getMergedSymbol(h.checkDefined(i.getSourceFile(t.fileName)).symbol):void 0;if(!a)return;let s="export="===t.exportName?o.resolveExternalModuleSymbol(a):o.tryGetMemberInModuleExportsAndProperties(t.exportName,a);if(!s)return;return s="default"===t.exportName&&getLocalSymbolForExportDefault(s)||s,{symbol:s,origin:completionEntryDataToSymbolOriginInfo(t,e,a)}}function getCompletionEntryDisplayNameForSymbol(e,t,n,r,i){if(function originIsIgnore(e){return!!(e&&256&e.kind)}(n))return;const o=function originIncludesSymbolName(e){return originIsExport(e)||originIsResolvedExport(e)||originIsComputedPropertyName(e)}(n)?n.symbolName:e.name;if(void 0===o||1536&e.flags&&isSingleOrDoubleQuote(o.charCodeAt(0))||isKnownSymbol(e))return;const a={name:o,needsConvertPropertyAccess:!1};if(isIdentifierText(o,t,i?1:0)||e.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(e.valueDeclaration))return a;if(2097152&e.flags)return{name:o,needsConvertPropertyAccess:!0};switch(r){case 3:return originIsComputedPropertyName(n)?{name:n.symbolName,needsConvertPropertyAccess:!1}:void 0;case 0:return{name:JSON.stringify(o),needsConvertPropertyAccess:!1};case 2:case 1:return 32===o.charCodeAt(0)?void 0:{name:o,needsConvertPropertyAccess:!0};case 5:case 4:return a;default:h.assertNever(r)}}var gm=[],ym=memoize(()=>{const e=[];for(let t=83;t<=166;t++)e.push({name:tokenToString(t),kind:"keyword",kindModifiers:"",sortText:dm.GlobalsOrKeywords});return e});function getKeywordCompletions(e,t){if(!t)return getTypescriptKeywordCompletions(e);const n=e+8+1;return gm[n]||(gm[n]=getTypescriptKeywordCompletions(e).filter(e=>!function isTypeScriptOnlyKeyword(e){switch(e){case 128:case 133:case 163:case 136:case 138:case 94:case 162:case 119:case 140:case 120:case 142:case 143:case 144:case 145:case 146:case 150:case 151:case 164:case 123:case 124:case 125:case 148:case 154:case 155:case 156:case 158:case 159:return!0;default:return!1}}(stringToToken(e.name))))}function getTypescriptKeywordCompletions(e){return gm[e]||(gm[e]=ym().filter(t=>{const n=stringToToken(t.name);switch(e){case 0:return!1;case 1:return isFunctionLikeBodyKeyword(n)||138===n||144===n||156===n||145===n||128===n||isTypeKeyword(n)&&157!==n;case 5:return isFunctionLikeBodyKeyword(n);case 2:return isClassMemberCompletionKeyword(n);case 3:return isInterfaceOrTypeLiteralCompletionKeyword(n);case 4:return isParameterPropertyModifier(n);case 6:return isTypeKeyword(n)||87===n;case 7:return isTypeKeyword(n);case 8:return 156===n;default:return h.assertNever(e)}}))}function isInterfaceOrTypeLiteralCompletionKeyword(e){return 148===e}function isClassMemberCompletionKeyword(e){switch(e){case 128:case 129:case 137:case 139:case 153:case 134:case 138:case 164:return!0;default:return isClassMemberModifier(e)}}function isFunctionLikeBodyKeyword(e){return 134===e||135===e||160===e||130===e||152===e||156===e||!isContextualKeyword(e)&&!isClassMemberCompletionKeyword(e)}function keywordForNode(e){return isIdentifier(e)?identifierToKeywordKind(e)??0:e.kind}function getPropertiesForObjectExpression(e,t,n,r){const i=t&&t!==e,o=r.getUnionType(filter(1048576&e.flags?e.types:[e],e=>!r.getPromisedTypeOfPromise(e))),a=!i||3&t.flags?o:r.getUnionType([o,t]),s=function getApparentProperties(e,t,n){return e.isUnion()?n.getAllPossiblePropertiesOfTypes(filter(e.types,e=>!(402784252&e.flags||n.isArrayLikeType(e)||n.isTypeInvalidDueToUnionDiscriminant(e,t)||n.typeHasCallOrConstructSignatures(e)||e.isClass()&&containsNonPublicProperties(e.getApparentProperties())))):e.getApparentProperties()}(a,n,r);return a.isClass()&&containsNonPublicProperties(s)?[]:i?filter(s,function hasDeclarationOtherThanSelf(e){return!length(e.declarations)||some(e.declarations,e=>e.parent!==n)}):s}function containsNonPublicProperties(e){return some(e,e=>!!(6&getDeclarationModifierFlagsFromSymbol(e)))}function getPropertiesForCompletion(e,t){return e.isUnion()?h.checkEachDefined(t.getAllPossiblePropertiesOfTypes(e.types),"getAllPossiblePropertiesOfTypes() should all be defined"):h.checkEachDefined(e.getApparentProperties(),"getApparentProperties() should all be defined")}function getConstraintOfTypeArgumentProperty(e,t){if(!e)return;if(isTypeNode(e)&&isTypeReferenceType(e.parent))return t.getTypeArgumentConstraint(e);const n=getConstraintOfTypeArgumentProperty(e.parent,t);if(n)switch(e.kind){case 172:return t.getTypeOfPropertyOfContextualType(n,e.symbol.escapedName);case 194:case 188:case 193:return n}}function isFromObjectTypeDeclaration(e){return e.parent&&isClassOrTypeElement(e.parent)&&isObjectTypeDeclaration(e.parent.parent)}function binaryExpressionMayBeOpenTag({left:e}){return nodeIsMissing(e)}function getImportStatementCompletionInfo(e,t){var n,r,i;let o,a=!1;const s=function getCandidate(){const n=e.parent;if(isImportEqualsDeclaration(n)){const r=n.getLastToken(t);return isIdentifier(e)&&r!==e?(o=161,void(a=!0)):(o=156===e.kind?void 0:156,isModuleSpecifierMissingOrEmpty(n.moduleReference)?n:void 0)}if(couldBeTypeOnlyImportSpecifier(n,e)&&canCompleteFromNamedBindings(n.parent))return n;if(isNamedImports(n)||isNamespaceImport(n)){if(n.parent.isTypeOnly||19!==e.kind&&102!==e.kind&&28!==e.kind||(o=156),canCompleteFromNamedBindings(n)){if(20!==e.kind&&80!==e.kind)return n.parent.parent;a=!0,o=161}return}if(isExportDeclaration(n)&&42===e.kind||isNamedExports(n)&&20===e.kind)return a=!0,void(o=161);if(isImportKeyword(e)&&isSourceFile(n))return o=156,e;if(isImportKeyword(e)&&isImportDeclaration(n))return o=156,isModuleSpecifierMissingOrEmpty(n.moduleSpecifier)?n:void 0;return}();return{isKeywordOnlyCompletion:a,keywordCompletion:o,isNewIdentifierLocation:!(!s&&156!==o),isTopLevelTypeOnly:!!(null==(r=null==(n=tryCast(s,isImportDeclaration))?void 0:n.importClause)?void 0:r.isTypeOnly)||!!(null==(i=tryCast(s,isImportEqualsDeclaration))?void 0:i.isTypeOnly),couldBeTypeOnlyImportSpecifier:!!s&&couldBeTypeOnlyImportSpecifier(s,e),replacementSpan:getSingleLineReplacementSpanForImportCompletionNode(s)}}function getSingleLineReplacementSpanForImportCompletionNode(e){var t;if(!e)return;const n=findAncestor(e,or(isImportDeclaration,isImportEqualsDeclaration,isJSDocImportTag))??e,r=n.getSourceFile();if(rangeIsOnSingleLine(n,r))return createTextSpanFromNode(n,r);h.assert(102!==n.kind&&277!==n.kind);const i=273===n.kind||352===n.kind?getPotentiallyInvalidImportSpecifier(null==(t=n.importClause)?void 0:t.namedBindings)??n.moduleSpecifier:n.moduleReference,o={pos:n.getFirstToken().getStart(),end:i.pos};return rangeIsOnSingleLine(o,r)?createTextSpanFromRange(o):void 0}function getPotentiallyInvalidImportSpecifier(e){var t;return find(null==(t=tryCast(e,isNamedImports))?void 0:t.elements,t=>{var n;return!t.propertyName&&isStringANonContextualKeyword(t.name.text)&&28!==(null==(n=findPrecedingToken(t.name.pos,e.getSourceFile(),e))?void 0:n.kind)})}function couldBeTypeOnlyImportSpecifier(e,t){return isImportSpecifier(e)&&(e.isTypeOnly||t===e.name&&isTypeKeywordTokenOrIdentifier(t))}function canCompleteFromNamedBindings(e){if(!isModuleSpecifierMissingOrEmpty(e.parent.parent.moduleSpecifier)||e.parent.name)return!1;if(isNamedImports(e)){const t=getPotentiallyInvalidImportSpecifier(e);return(t?e.elements.indexOf(t):e.elements.length)<2}return!0}function isModuleSpecifierMissingOrEmpty(e){var t;return!!nodeIsMissing(e)||!(null==(t=tryCast(isExternalModuleReference(e)?e.expression:e,isStringLiteralLike))?void 0:t.text)}function isArrowFunctionBody(e){return e.parent&&isArrowFunction(e.parent)&&(e.parent.body===e||39===e.kind)}function symbolCanBeReferencedAtTypeLocation(e,t,n=new Set){return nonAliasCanBeReferencedAtTypeLocation(e)||nonAliasCanBeReferencedAtTypeLocation(skipAlias(e.exportSymbol||e,t));function nonAliasCanBeReferencedAtTypeLocation(e){return!!(788968&e.flags)||t.isUnknownSymbol(e)||!!(1536&e.flags)&&addToSeen(n,e)&&t.getExportsOfModule(e).some(e=>symbolCanBeReferencedAtTypeLocation(e,t,n))}}function isDeprecated(e,t){const n=skipAlias(e,t).declarations;return!!length(n)&&every(n,isDeprecatedDeclaration)}function charactersFuzzyMatchInString(e,t){if(0===t.length)return!0;let n,r=!1,i=0;const o=e.length;for(let a=0;agetStringLiteralCompletionDetails,getStringLiteralCompletions:()=>getStringLiteralCompletions});var Tm={directory:0,script:1,"external module name":2};function createNameAndKindSet(){const e=new Map;return{add:function add(t){const n=e.get(t.name);(!n||Tm[n.kind]t>=e.pos&&t<=e.end);if(!c)return;const l=e.text.slice(c.pos,t),d=Sm.exec(l);if(!d)return;const[,p,u,m]=d,_=getDirectoryPath(e.path),f="path"===u?getCompletionEntriesForDirectoryFragment(m,_,getExtensionOptions(o,0,e),n,r,i,!0,e.path):"types"===u?getCompletionEntriesFromTypings(n,r,i,_,getFragmentDirectory(m),getExtensionOptions(o,1,e)):h.fail();return addReplacementSpans(m,c.pos+p.length,arrayFrom(f.values()))}(e,t,o,i,createModuleSpecifierResolutionHost(o,i));return n&&convertPathCompletions(n)}if(isInString(e,t,n)){if(!n||!isStringLiteralLike(n))return;return function convertStringLiteralCompletions(e,t,n,r,i,o,a,s,c,l){if(void 0===e)return;const d=createTextSpanFromStringLiteralLikeContent(t,c);switch(e.kind){case 0:return convertPathCompletions(e.paths);case 1:{const p=[];return getCompletionEntriesFromSymbols(e.symbols,p,t,t,n,c,n,r,i,99,o,4,s,a,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,l),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:e.hasIndexSignature,optionalReplacementSpan:d,entries:p,defaultCommitCharacters:getDefaultCommitCharacters(e.hasIndexSignature)}}case 2:{const n=15===t.kind?96:startsWith(getTextOfNode(t),"'")?39:34,r=e.types.map(e=>({name:escapeString(e.value,n),kindModifiers:"",kind:"string",sortText:dm.LocationPriority,replacementSpan:getReplacementSpanForContextToken(t,c),commitCharacters:[]}));return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:e.isNewIdentifier,optionalReplacementSpan:d,entries:r,defaultCommitCharacters:getDefaultCommitCharacters(e.isNewIdentifier)}}default:return h.assertNever(e)}}(getStringLiteralCompletionEntries(e,n,t,o,i,s),n,e,i,o,a,r,s,t,c)}}function getStringLiteralCompletionDetails(e,t,n,r,i,o,a,s){if(!r||!isStringLiteralLike(r))return;const c=getStringLiteralCompletionEntries(t,r,n,i,o,s);return c&&function stringLiteralCompletionDetails(e,t,n,r,i,o){switch(n.kind){case 0:{const t=find(n.paths,t=>t.name===e);return t&&createCompletionDetails(e,kindModifiersFromExtension(t.extension),t.kind,[textPart(e)])}case 1:{const a=find(n.symbols,t=>t.name===e);return a&&createCompletionDetailsForSymbol(a,a.name,i,r,t,o)}case 2:return find(n.types,t=>t.value===e)?createCompletionDetails(e,"","string",[textPart(e)]):void 0;default:return h.assertNever(n)}}(e,r,c,t,i.getTypeChecker(),a)}function convertPathCompletions(e){const t=!0;return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:t,entries:e.map(({name:e,kind:t,span:n,extension:r})=>({name:e,kind:t,kindModifiers:kindModifiersFromExtension(r),sortText:dm.LocationPriority,replacementSpan:n})),defaultCommitCharacters:getDefaultCommitCharacters(t)}}function kindModifiersFromExtension(e){switch(e){case".d.ts":return".d.ts";case".js":return".js";case".json":return".json";case".jsx":return".jsx";case".ts":return".ts";case".tsx":return".tsx";case".d.mts":return".d.mts";case".mjs":return".mjs";case".mts":return".mts";case".d.cts":return".d.cts";case".cjs":return".cjs";case".cts":return".cts";case".tsbuildinfo":return h.fail("Extension .tsbuildinfo is unsupported.");case void 0:return"";default:return h.assertNever(e)}}function getStringLiteralCompletionEntries(e,t,n,r,i,o){const a=r.getTypeChecker(),s=walkUpParentheses(t.parent);switch(s.kind){case 202:{const c=walkUpParentheses(s.parent);return 206===c.kind?{kind:0,paths:getStringLiteralCompletionsFromModuleNames(e,t,r,i,o)}:function fromUnionableLiteralType(e){switch(e.kind){case 234:case 184:{const t=findAncestor(s,t=>t.parent===e);return t?{kind:2,types:getStringLiteralTypes(a.getTypeArgumentConstraint(t)),isNewIdentifier:!1}:void 0}case 200:const{indexType:t,objectType:r}=e;if(!rangeContainsPosition(t,n))return;return stringLiteralCompletionsFromProperties(a.getTypeFromTypeNode(r));case 193:{const t=fromUnionableLiteralType(walkUpParentheses(e.parent));if(!t)return;const n=function getAlreadyUsedTypesInStringLiteralUnion(e,t){return mapDefined(e.types,e=>e!==t&&isLiteralTypeNode(e)&&isStringLiteral(e.literal)?e.literal.text:void 0)}(e,s);return 1===t.kind?{kind:1,symbols:t.symbols.filter(e=>!contains(n,e.name)),hasIndexSignature:t.hasIndexSignature}:{kind:2,types:t.types.filter(e=>!contains(n,e.value)),isNewIdentifier:!1}}default:return}}(c)}case 304:return isObjectLiteralExpression(s.parent)&&s.name===t?function stringLiteralCompletionsForObjectLiteral(e,t){const n=e.getContextualType(t);if(!n)return;const r=e.getContextualType(t,4);return{kind:1,symbols:getPropertiesForObjectExpression(n,r,t,e),hasIndexSignature:hasIndexSignature(n)}}(a,s.parent):fromContextualType()||fromContextualType(0);case 213:{const{expression:e,argumentExpression:n}=s;return t===skipParentheses(n)?stringLiteralCompletionsFromProperties(a.getTypeAtLocation(e)):void 0}case 214:case 215:case 292:if(!function isRequireCallArgument(e){return isCallExpression(e.parent)&&firstOrUndefined(e.parent.arguments)===e&&isIdentifier(e.parent.expression)&&"require"===e.parent.expression.escapedText}(t)&&!isImportCall(s)){const r=Um.getArgumentInfoForCompletions(292===s.kind?s.parent:t,n,e,a);return r&&function getStringLiteralCompletionsFromSignature(e,t,n,r){let i=!1;const o=new Set,a=isJsxOpeningLikeElement(e)?h.checkDefined(findAncestor(t.parent,isJsxAttribute)):t,s=flatMap(r.getCandidateSignaturesForStringLiteralCompletions(e,a),t=>{if(!signatureHasRestParameter(t)&&n.argumentCount>t.parameters.length)return;let s=t.getTypeParameterAtPosition(n.argumentIndex);if(isJsxOpeningLikeElement(e)){const e=r.getTypeOfPropertyOfType(s,getTextOfJsxAttributeName(a.name));e&&(s=e)}return i=i||!!(4&s.flags),getStringLiteralTypes(s,o)});return length(s)?{kind:2,types:s,isNewIdentifier:i}:void 0}(r.invocation,t,r,a)||fromContextualType(0)}case 273:case 279:case 284:case 352:return{kind:0,paths:getStringLiteralCompletionsFromModuleNames(e,t,r,i,o)};case 297:const c=newCaseClauseTracker(a,s.parent.clauses),l=fromContextualType();if(!l)return;return{kind:2,types:l.types.filter(e=>!c.hasValue(e.value)),isNewIdentifier:!1};case 277:case 282:const d=s;if(d.propertyName&&t!==d.propertyName)return;const p=d.parent,{moduleSpecifier:u}=276===p.kind?p.parent.parent:p.parent;if(!u)return;const m=a.getSymbolAtLocation(u);if(!m)return;const _=a.getExportsAndPropertiesOfModule(m),f=new Set(p.elements.map(e=>moduleExportNameTextEscaped(e.propertyName||e.name)));return{kind:1,symbols:_.filter(e=>"default"!==e.escapedName&&!f.has(e.escapedName)),hasIndexSignature:!1};case 227:if(103===s.operatorToken.kind){const e=a.getTypeAtLocation(s.right);return{kind:1,symbols:(e.isUnion()?a.getAllPossiblePropertiesOfTypes(e.types):e.getApparentProperties()).filter(e=>!e.valueDeclaration||!isPrivateIdentifierClassElementDeclaration(e.valueDeclaration)),hasIndexSignature:!1}}return fromContextualType(0);default:return fromContextualType()||fromContextualType(0)}function fromContextualType(e=4){const n=getStringLiteralTypes(getContextualTypeFromParent(t,a,e));if(n.length)return{kind:2,types:n,isNewIdentifier:!1}}}function walkUpParentheses(e){switch(e.kind){case 197:return walkUpParenthesizedTypes(e);case 218:return walkUpParenthesizedExpressions(e);default:return e}}function stringLiteralCompletionsFromProperties(e){return e&&{kind:1,symbols:filter(e.getApparentProperties(),e=>!(e.valueDeclaration&&isPrivateIdentifierClassElementDeclaration(e.valueDeclaration))),hasIndexSignature:hasIndexSignature(e)}}function getStringLiteralTypes(e,t=new Set){return e?(e=skipConstraint(e)).isUnion()?flatMap(e.types,e=>getStringLiteralTypes(e,t)):!e.isStringLiteral()||1024&e.flags||!addToSeen(t,e.value)?l:[e]:l}function nameAndKind(e,t,n){return{name:e,kind:t,extension:n}}function directoryResult(e){return nameAndKind(e,"directory",void 0)}function addReplacementSpans(e,t,n){const r=function getDirectoryFragmentTextSpan(e,t){const n=Math.max(e.lastIndexOf(Ft),e.lastIndexOf(Pt)),r=-1!==n?n+1:0,i=e.length-r;return 0===i||isIdentifierText(e.substr(r,i),99)?void 0:createTextSpan(t+r,i)}(e,t),i=0===e.length?void 0:createTextSpan(t,e.length);return n.map(({name:e,kind:t,extension:n})=>e.includes(Ft)||e.includes(Pt)?{name:e,kind:t,extension:n,span:i}:{name:e,kind:t,extension:n,span:r})}function getStringLiteralCompletionsFromModuleNames(e,t,n,r,i){return addReplacementSpans(t.text,t.getStart(e)+1,function getStringLiteralCompletionsFromModuleNamesWorker(e,t,n,r,i){const o=normalizeSlashes(t.text),a=isStringLiteralLike(t)?n.getModeForUsageLocation(e,t):void 0,s=e.path,c=getDirectoryPath(s),d=n.getCompilerOptions(),p=n.getTypeChecker(),u=createModuleSpecifierResolutionHost(n,r),m=getExtensionOptions(d,1,e,p,i,a);return function isPathRelativeToScript(e){if(e&&e.length>=2&&46===e.charCodeAt(0)){const t=e.length>=3&&46===e.charCodeAt(1)?2:1,n=e.charCodeAt(t);return 47===n||92===n}return!1}(o)||!d.baseUrl&&!d.paths&&(isRootedDiskPath(o)||isUrl(o))?function getCompletionEntriesForRelativeModules(e,t,n,r,i,o,a){const s=n.getCompilerOptions();return s.rootDirs?function getCompletionEntriesForDirectoryFragmentWithRootDirs(e,t,n,r,i,o,a,s){const c=i.getCompilerOptions(),l=c.project||o.getCurrentDirectory(),d=!(o.useCaseSensitiveFileNames&&o.useCaseSensitiveFileNames()),p=function getBaseDirectoriesFromRootDirs(e,t,n,r){e=e.map(e=>ensureTrailingDirectorySeparator(normalizePath(isRootedDiskPath(e)?e:combinePaths(t,e))));const i=firstDefined(e,e=>containsPath(e,n,t,r)?n.substr(e.length):void 0);return deduplicate([...e.map(e=>combinePaths(e,i)),n].map(e=>removeTrailingDirectorySeparator(e)),equateStringsCaseSensitive,compareStringsCaseSensitive)}(e,l,n,d);return deduplicate(flatMap(p,e=>arrayFrom(getCompletionEntriesForDirectoryFragment(t,e,r,i,o,a,!0,s).values())),(e,t)=>e.name===t.name&&e.kind===t.kind&&e.extension===t.extension)}(s.rootDirs,e,t,a,n,r,i,o):arrayFrom(getCompletionEntriesForDirectoryFragment(e,t,a,n,r,i,!0,o).values())}(o,c,n,r,u,s,m):function getCompletionEntriesForNonRelativeModules(e,t,n,r,i,o,a){const s=r.getTypeChecker(),c=r.getCompilerOptions(),{baseUrl:d,paths:p}=c,u=createNameAndKindSet(),m=qn(c);if(d){const t=normalizePath(combinePaths(i.getCurrentDirectory(),d));getCompletionEntriesForDirectoryFragment(e,t,a,r,i,o,!1,void 0,u)}if(p){const t=getPathsBasePath(c,i);addCompletionEntriesFromPaths(u,e,t,a,r,i,o,p)}const _=getFragmentDirectory(e);for(const t of function getAmbientModuleCompletions(e,t,n){const r=n.getAmbientModules().map(e=>stripQuotes(e.name)).filter(t=>startsWith(t,e)&&!t.includes("*"));if(void 0!==t){const e=ensureTrailingDirectorySeparator(t);return r.map(t=>removePrefix(t,e))}return r}(e,_,s))u.add(nameAndKind(t,"external module name",void 0));if(getCompletionEntriesFromTypings(r,i,o,t,_,a,u),moduleResolutionUsesNodeModules(m)){let n=!1;if(void 0===_)for(const e of function enumerateNodeModulesVisibleToScript(e,t){if(!e.readFile||!e.fileExists)return l;const n=[];for(const r of findPackageJsons(t,e)){const t=readJson(r,e);for(const e of xm){const r=t[e];if(r)for(const e in r)hasProperty(r,e)&&!startsWith(e,"@types/")&&n.push(e)}}return n}(i,t)){const t=nameAndKind(e,"external module name",void 0);u.has(t.name)||(n=!0,u.add(t))}if(!n){const n=Qn(c),s=Xn(c);let l=!1;const importsLookup=t=>{if(s&&!l){const n=combinePaths(t,"package.json");if(l=tryFileExists(i,n)){exportsOrImportsLookup(readJson(n,i).imports,e,t,!1,!0)}}};let ancestorLookup=t=>{const n=combinePaths(t,"node_modules");tryDirectoryExists(i,n)&&getCompletionEntriesForDirectoryFragment(e,n,a,r,i,o,!1,void 0,u),importsLookup(t)};if(_&&n){const t=ancestorLookup;ancestorLookup=n=>{const r=getPathComponents(e);r.shift();let o=r.shift();if(!o)return t(n);if(startsWith(o,"@")){const e=r.shift();if(!e)return t(n);o=combinePaths(o,e)}if(s&&startsWith(o,"#"))return importsLookup(n);const a=combinePaths(n,"node_modules",o),c=combinePaths(a,"package.json");if(tryFileExists(i,c)){const t=readJson(c,i),n=r.join("/")+(r.length&&hasTrailingDirectorySeparator(e)?"/":"");return void exportsOrImportsLookup(t.exports,n,a,!0,!1)}return t(n)}}forEachAncestorDirectoryStoppingAtGlobalCache(i,t,ancestorLookup)}}return arrayFrom(u.values());function exportsOrImportsLookup(e,t,s,l,d){if("object"!=typeof e||null===e)return;const p=getOwnKeys(e),m=getConditions(c,n);addCompletionEntriesFromPathsOrExportsOrImports(u,l,d,t,s,a,r,i,o,p,t=>{const n=getPatternFromFirstMatchingCondition(e[t],m);if(void 0!==n)return singleElementArray(endsWith(t,"/")&&endsWith(n,"/")?n+"*":n)},comparePatternKeys)}}(o,c,a,n,r,u,m)}(e,t,n,r,i))}function getExtensionOptions(e,t,n,r,i,o){return{extensionsToSearch:flatten(getSupportedExtensionsForModuleResolution(e,r)),referenceKind:t,importingSourceFile:n,endingPreference:null==i?void 0:i.importModuleSpecifierEnding,resolutionMode:o}}function getSupportedExtensionsForModuleResolution(e,t){const n=t?mapDefined(t.getAmbientModules(),e=>{const t=e.name.slice(1,-1);if(t.startsWith("*.")&&!t.includes("/"))return t.slice(1)}):[],r=[...getSupportedExtensions(e),n];return moduleResolutionUsesNodeModules(qn(e))?getSupportedExtensionsWithJsonIfResolveJsonModule(e,r):r}function getCompletionEntriesForDirectoryFragment(e,t,n,r,i,o,a,s,c=createNameAndKindSet()){var l;void 0===e&&(e=""),hasTrailingDirectorySeparator(e=normalizeSlashes(e))||(e=getDirectoryPath(e)),""===e&&(e="."+Ft);const d=resolvePath(t,e=ensureTrailingDirectorySeparator(e)),p=hasTrailingDirectorySeparator(d)?d:getDirectoryPath(d);if(!a){const e=findPackageJson(p,i);if(e){const t=readJson(e,i).typesVersions;if("object"==typeof t){const a=null==(l=getPackageJsonTypesVersionsPaths(t))?void 0:l.paths;if(a){const t=getDirectoryPath(e);if(addCompletionEntriesFromPaths(c,d.slice(ensureTrailingDirectorySeparator(t).length),t,n,r,i,o,a))return c}}}}const u=!(i.useCaseSensitiveFileNames&&i.useCaseSensitiveFileNames());if(!tryDirectoryExists(i,p))return c;const m=tryReadDirectory(i,p,n.extensionsToSearch,void 0,["./*"]);if(m)for(let e of m){if(e=normalizePath(e),s&&0===comparePaths(e,s,t,u))continue;const{name:i,extension:o}=getFilenameWithExtensionOption(getBaseFileName(e),r,n,!1);c.add(nameAndKind(i,"script",o))}const _=tryGetDirectories(i,p);if(_)for(const e of _){const t=getBaseFileName(normalizePath(e));"@types"!==t&&c.add(directoryResult(t))}return c}function getFilenameWithExtensionOption(e,t,n,r){const i=Wo.tryGetRealFileNameForNonJsDeclarationFileName(e);if(i)return{name:i,extension:tryGetExtensionFromPath2(i)};if(0===n.referenceKind)return{name:e,extension:tryGetExtensionFromPath2(e)};let o=Wo.getModuleSpecifierPreferences({importModuleSpecifierEnding:n.endingPreference},t,t.getCompilerOptions(),n.importingSourceFile).getAllowedEndingsInPreferredOrder(n.resolutionMode);if(r&&(o=o.filter(e=>0!==e&&1!==e)),3===o[0]){if(fileExtensionIsOneOf(e,xr))return{name:e,extension:tryGetExtensionFromPath2(e)};const n=Wo.tryGetJSExtensionForFile(e,t.getCompilerOptions());return n?{name:changeExtension(e,n),extension:n}:{name:e,extension:tryGetExtensionFromPath2(e)}}if(!r&&(0===o[0]||1===o[0])&&fileExtensionIsOneOf(e,[".js",".jsx",".ts",".tsx",".d.ts"]))return{name:removeFileExtension(e),extension:tryGetExtensionFromPath2(e)};const a=Wo.tryGetJSExtensionForFile(e,t.getCompilerOptions());return a?{name:changeExtension(e,a),extension:a}:{name:e,extension:tryGetExtensionFromPath2(e)}}function addCompletionEntriesFromPaths(e,t,n,r,i,o,a,s){return addCompletionEntriesFromPathsOrExportsOrImports(e,!1,!1,t,n,r,i,o,a,getOwnKeys(s),e=>s[e],(e,t)=>{const n=tryParsePattern(e),r=tryParsePattern(t),i="object"==typeof n?n.prefix.length:e.length;return compareValues("object"==typeof r?r.prefix.length:t.length,i)})}function addCompletionEntriesFromPathsOrExportsOrImports(e,t,n,r,i,o,a,s,c,l,d,p){let u,m=[];for(const e of l){if("."===e)continue;const l=e.replace(/^\.\//,"")+((t||n)&&endsWith(e,"/")?"*":""),_=d(e);if(_){const e=tryParsePattern(l);if(!e)continue;const d="object"==typeof e&&isPatternMatch(e,r);d&&(void 0===u||-1===p(l,u))&&(u=l,m=m.filter(e=>!e.matchedPattern)),"string"!=typeof e&&void 0!==u&&1===p(l,u)||m.push({matchedPattern:d,results:getCompletionsForPathMapping(l,_,r,i,o,t,n,a,s,c).map(({name:e,kind:t,extension:n})=>nameAndKind(e,t,n))})}}return m.forEach(t=>t.results.forEach(t=>e.add(t))),void 0!==u}function getPatternFromFirstMatchingCondition(e,t){if("string"==typeof e)return e;if(e&&"object"==typeof e&&!isArray(e))for(const n in e)if("default"===n||t.includes(n)||isApplicableVersionedTypesKey(t,n)){return getPatternFromFirstMatchingCondition(e[n],t)}}function getFragmentDirectory(e){return containsSlash(e)?hasTrailingDirectorySeparator(e)?e:getDirectoryPath(e):void 0}function getCompletionsForPathMapping(e,t,n,r,i,o,a,s,c,d){const p=tryParsePattern(e);if(!p)return l;if("string"==typeof p)return justPathMappingName(e,"script");const u=tryRemovePrefix(n,p.prefix);if(void 0===u){return endsWith(e,"/*")?justPathMappingName(p.prefix,"directory"):flatMap(t,e=>{var t;return null==(t=getModulesForPathsPattern("",r,e,i,o,a,s,c,d))?void 0:t.map(({name:e,...t})=>({name:p.prefix+e+p.suffix,...t}))})}return flatMap(t,e=>getModulesForPathsPattern(u,r,e,i,o,a,s,c,d));function justPathMappingName(e,t){return startsWith(e,n)?[{name:removeTrailingDirectorySeparator(e),kind:t,extension:void 0}]:l}}function getModulesForPathsPattern(e,t,n,r,i,o,a,s,c){if(!s.readDirectory)return;const l=tryParsePattern(n);if(void 0===l||isString(l))return;const d=resolvePath(l.prefix),p=hasTrailingDirectorySeparator(l.prefix)?d:getDirectoryPath(d),u=hasTrailingDirectorySeparator(l.prefix)?"":getBaseFileName(d),m=containsSlash(e),_=m?hasTrailingDirectorySeparator(e)?e:getDirectoryPath(e):void 0,getCommonSourceDirectory2=()=>c.getCommonSourceDirectory(),f=!hostUsesCaseSensitiveFileNames(c),g=a.getCompilerOptions().outDir,y=a.getCompilerOptions().declarationDir,h=m?combinePaths(p,u+_):p,T=normalizePath(combinePaths(t,h)),S=o&&g&&getPossibleOriginalInputPathWithoutChangingExt(T,f,g,getCommonSourceDirectory2),x=o&&y&&getPossibleOriginalInputPathWithoutChangingExt(T,f,y,getCommonSourceDirectory2),v=normalizePath(l.suffix),b=v&&getDeclarationEmitExtensionForPath("_"+v),C=v?getPossibleOriginalInputExtensionForExtension("_"+v):void 0,E=[b&&changeExtension(v,b),...C?C.map(e=>changeExtension(v,e)):[],v].filter(isString),N=v?E.map(e=>"**/*"+e):["./*"],k=(i||o)&&endsWith(n,"/*");let F=getMatchesWithPrefix(T);return S&&(F=concatenate(F,getMatchesWithPrefix(S))),x&&(F=concatenate(F,getMatchesWithPrefix(x))),v||(F=concatenate(F,getDirectoryMatches(T)),S&&(F=concatenate(F,getDirectoryMatches(S))),x&&(F=concatenate(F,getDirectoryMatches(x)))),F;function getMatchesWithPrefix(e){const t=m?e:ensureTrailingDirectorySeparator(e)+u;return mapDefined(tryReadDirectory(s,e,r.extensionsToSearch,void 0,N),e=>{const n=function trimPrefixAndSuffix(e,t){return firstDefined(E,n=>{const r=function withoutStartAndEnd(e,t,n){return startsWith(e,t)&&endsWith(e,n)?e.slice(t.length,e.length-n.length):void 0}(normalizePath(e),t,n);return void 0===r?void 0:removeLeadingDirectorySeparator(r)})}(e,t);if(n){if(containsSlash(n))return directoryResult(getPathComponents(removeLeadingDirectorySeparator(n))[1]);const{name:e,extension:t}=getFilenameWithExtensionOption(n,a,r,k);return nameAndKind(e,"script",t)}})}function getDirectoryMatches(e){return mapDefined(tryGetDirectories(s,e),e=>"node_modules"===e?void 0:directoryResult(e))}}function removeLeadingDirectorySeparator(e){return e[0]===Ft?e.slice(1):e}function getCompletionEntriesFromTypings(e,t,n,r,i,o,a=createNameAndKindSet()){const s=e.getCompilerOptions(),c=new Map,d=tryAndIgnoreErrors(()=>getEffectiveTypeRoots(s,t))||l;for(const e of d)getCompletionEntriesFromDirectories(e);for(const e of findPackageJsons(r,t)){getCompletionEntriesFromDirectories(combinePaths(getDirectoryPath(e),"node_modules/@types"))}return a;function getCompletionEntriesFromDirectories(r){if(tryDirectoryExists(t,r))for(const l of tryGetDirectories(t,r)){const d=unmangleScopedPackageName(l);if(!s.types||contains(s.types,d))if(void 0===i)c.has(d)||(a.add(nameAndKind(d,"external module name",void 0)),c.set(d,!0));else{const s=combinePaths(r,l),c=tryRemoveDirectoryPrefix(i,d,hostGetCanonicalFileName(t));void 0!==c&&getCompletionEntriesForDirectoryFragment(c,s,o,e,t,n,!1,void 0,a)}}}}var Sm=/^(\/\/\/\s*{const i=t.getSymbolAtLocation(n);if(i){const t=getSymbolId(i).toString();let n=r.get(t);n||r.set(t,n=[]),n.push(e)}});return r}(e,n,r);return(o,a,s)=>{const{directImports:c,indirectUsers:l}=function getImportersForExport(e,t,n,{exportingModuleSymbol:r,exportKind:i},o,a){const s=nodeSeenTracker(),c=nodeSeenTracker(),l=[],d=!!r.globalExports,p=d?void 0:[];return handleDirectImports(r),{directImports:l,indirectUsers:getIndirectUsers()};function getIndirectUsers(){if(d)return e;if(r.declarations)for(const e of r.declarations)isExternalModuleAugmentation(e)&&t.has(e.getSourceFile().fileName)&&addIndirectUser(e);return p.map(getSourceFileOfNode)}function handleDirectImports(e){const t=getDirectImports(e);if(t)for(const e of t)if(s(e))switch(a&&a.throwIfCancellationRequested(),e.kind){case 214:if(isImportCall(e)){handleImportCall(e);break}if(!d){const t=e.parent;if(2===i&&261===t.kind){const{name:e}=t;if(80===e.kind){l.push(e);break}}}break;case 80:break;case 272:handleNamespaceImport(e,e.name,hasSyntacticModifier(e,32),!1);break;case 273:case 352:l.push(e);const t=e.importClause&&e.importClause.namedBindings;t&&275===t.kind?handleNamespaceImport(e,t.name,!1,!0):!d&&isDefaultImport(e)&&addIndirectUser(getSourceFileLikeForImportDeclaration(e));break;case 279:e.exportClause?281===e.exportClause.kind?addIndirectUser(getSourceFileLikeForImportDeclaration(e),!0):l.push(e):handleDirectImports(getContainingModuleSymbol(e,o));break;case 206:!d&&e.isTypeOf&&!e.qualifier&&isExported2(e)&&addIndirectUser(e.getSourceFile(),!0),l.push(e);break;default:h.failBadSyntaxKind(e,"Unexpected import kind.")}}function handleImportCall(e){addIndirectUser(findAncestor(e,isAmbientModuleDeclaration)||e.getSourceFile(),!!isExported2(e,!0))}function isExported2(e,t=!1){return findAncestor(e,e=>t&&isAmbientModuleDeclaration(e)?"quit":canHaveModifiers(e)&&some(e.modifiers,isExportModifier))}function handleNamespaceImport(e,t,n,r){if(2===i)r||l.push(e);else if(!d){const r=getSourceFileLikeForImportDeclaration(e);h.assert(308===r.kind||268===r.kind),n||function findNamespaceReExports(e,t,n){const r=n.getSymbolAtLocation(t);return!!forEachPossibleImportOrExportStatement(e,e=>{if(!isExportDeclaration(e))return;const{exportClause:t,moduleSpecifier:i}=e;return!i&&t&&isNamedExports(t)&&t.elements.some(e=>n.getExportSpecifierLocalTargetSymbol(e)===r)})}(r,t,o)?addIndirectUser(r,!0):addIndirectUser(r)}}function addIndirectUser(e,t=!1){h.assert(!d);if(!c(e))return;if(p.push(e),!t)return;const n=o.getMergedSymbol(e.symbol);if(!n)return;h.assert(!!(1536&n.flags));const r=getDirectImports(n);if(r)for(const e of r)isImportTypeNode(e)||addIndirectUser(getSourceFileLikeForImportDeclaration(e),!0)}function getDirectImports(e){return n.get(getSymbolId(e).toString())}}(e,t,i,a,n,r);return{indirectUsers:l,...getSearchesFromDirectImports(c,o,a.exportKind,n,s)}}}i(vm,{Core:()=>km,DefinitionKind:()=>Em,EntryKind:()=>Nm,ExportKind:()=>bm,FindReferencesUse:()=>Fm,ImportExport:()=>Cm,createImportTracker:()=>createImportTracker,findModuleReferences:()=>findModuleReferences,findReferenceOrRenameEntries:()=>findReferenceOrRenameEntries,findReferencedSymbols:()=>findReferencedSymbols,getContextNode:()=>getContextNode,getExportInfo:()=>getExportInfo,getImplementationsAtPosition:()=>getImplementationsAtPosition,getImportOrExportSymbol:()=>getImportOrExportSymbol,getReferenceEntriesForNode:()=>getReferenceEntriesForNode,isContextWithStartAndEndNode:()=>isContextWithStartAndEndNode,isDeclarationOfSymbol:()=>isDeclarationOfSymbol,isWriteAccessForReference:()=>isWriteAccessForReference,toContextSpan:()=>toContextSpan,toHighlightSpan:()=>toHighlightSpan,toReferenceEntry:()=>toReferenceEntry,toRenameLocation:()=>toRenameLocation});var bm=(e=>(e[e.Named=0]="Named",e[e.Default=1]="Default",e[e.ExportEquals=2]="ExportEquals",e))(bm||{}),Cm=(e=>(e[e.Import=0]="Import",e[e.Export=1]="Export",e))(Cm||{});function getSearchesFromDirectImports(e,t,n,r,i){const o=[],a=[];function addSearch(e,t){o.push([e,t])}if(e)for(const t of e)handleImport(t);return{importSearches:o,singleReferences:a};function handleImport(e){if(272===e.kind)return void(isExternalModuleImportEquals(e)&&handleNamespaceImportLike(e.name));if(80===e.kind)return void handleNamespaceImportLike(e);if(206===e.kind){if(e.qualifier){const n=getFirstIdentifier(e.qualifier);n.escapedText===symbolName(t)&&a.push(n)}else 2===n&&a.push(e.argument.literal);return}if(11!==e.moduleSpecifier.kind)return;if(279===e.kind)return void(e.exportClause&&isNamedExports(e.exportClause)&&searchForNamedImport(e.exportClause));const{name:o,namedBindings:s}=e.importClause||{name:void 0,namedBindings:void 0};if(s)switch(s.kind){case 275:handleNamespaceImportLike(s.name);break;case 276:0!==n&&1!==n||searchForNamedImport(s);break;default:h.assertNever(s)}if(o&&(1===n||2===n)&&(!i||o.escapedText===symbolEscapedNameNoDefault(t))){addSearch(o,r.getSymbolAtLocation(o))}}function handleNamespaceImportLike(e){2!==n||i&&!isNameMatch(e.escapedText)||addSearch(e,r.getSymbolAtLocation(e))}function searchForNamedImport(e){if(e)for(const n of e.elements){const{name:e,propertyName:o}=n;if(isNameMatch(moduleExportNameTextEscaped(o||e)))if(o)a.push(o),i&&moduleExportNameTextEscaped(e)!==t.escapedName||addSearch(e,r.getSymbolAtLocation(e));else{addSearch(e,282===n.kind&&n.propertyName?r.getExportSpecifierLocalTargetSymbol(n):r.getSymbolAtLocation(e))}}}function isNameMatch(e){return e===t.escapedName||0!==n&&"default"===e}}function findModuleReferences(e,t,n){var r;const i=[],o=e.getTypeChecker();for(const a of t){const t=n.valueDeclaration;if(308===(null==t?void 0:t.kind)){for(const n of a.referencedFiles)e.getSourceFileFromReference(a,n)===t&&i.push({kind:"reference",referencingFile:a,ref:n});for(const n of a.typeReferenceDirectives){const o=null==(r=e.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(n,a))?void 0:r.resolvedTypeReferenceDirective;void 0!==o&&o.resolvedFileName===t.fileName&&i.push({kind:"reference",referencingFile:a,ref:n})}}forEachImport(a,(e,t)=>{o.getSymbolAtLocation(t)===n&&i.push(nodeIsSynthesized(e)?{kind:"implicit",literal:t,referencingFile:a}:{kind:"import",literal:t})})}return i}function forEachPossibleImportOrExportStatement(e,t){return forEach(308===e.kind?e.statements:e.body.statements,e=>t(e)||isAmbientModuleDeclaration(e)&&forEach(e.body&&e.body.statements,t))}function forEachImport(e,t){if(e.externalModuleIndicator||void 0!==e.imports)for(const n of e.imports)t(importFromModuleSpecifier(n),n);else forEachPossibleImportOrExportStatement(e,e=>{switch(e.kind){case 279:case 273:{const n=e;n.moduleSpecifier&&isStringLiteral(n.moduleSpecifier)&&t(n,n.moduleSpecifier);break}case 272:{const n=e;isExternalModuleImportEquals(n)&&t(n,n.moduleReference.expression);break}}})}function getImportOrExportSymbol(e,t,n,r){return r?getExport():getExport()||function getImport(){if(!function isNodeImport(e){const{parent:t}=e;switch(t.kind){case 272:return t.name===e&&isExternalModuleImportEquals(t);case 277:return!t.propertyName;case 274:case 275:return h.assert(t.name===e),!0;case 209:return isInJSFile(e)&&isVariableDeclarationInitializedToBareOrAccessedRequire(t.parent.parent);default:return!1}}(e))return;let r=n.getImmediateAliasedSymbol(t);if(!r)return;if(r=function skipExportSpecifierSymbol(e,t){if(e.declarations)for(const n of e.declarations){if(isExportSpecifier(n)&&!n.propertyName&&!n.parent.parent.moduleSpecifier)return t.getExportSpecifierLocalTargetSymbol(n)||e;if(isPropertyAccessExpression(n)&&isModuleExportsAccessExpression(n.expression)&&!isPrivateIdentifier(n.name))return t.getSymbolAtLocation(n);if(isShorthandPropertyAssignment(n)&&isBinaryExpression(n.parent.parent)&&2===getAssignmentDeclarationKind(n.parent.parent))return t.getExportSpecifierLocalTargetSymbol(n.name)}return e}(r,n),"export="===r.escapedName&&(r=function getExportEqualsLocalSymbol(e,t){var n,r;if(2097152&e.flags)return t.getImmediateAliasedSymbol(e);const i=h.checkDefined(e.valueDeclaration);if(isExportAssignment(i))return null==(n=tryCast(i.expression,canHaveSymbol))?void 0:n.symbol;if(isBinaryExpression(i))return null==(r=tryCast(i.right,canHaveSymbol))?void 0:r.symbol;if(isSourceFile(i))return i.symbol;return}(r,n),void 0===r))return;const i=symbolEscapedNameNoDefault(r);if(void 0===i||"default"===i||i===t.escapedName)return{kind:0,symbol:r}}();function getExport(){var i;const{parent:o}=e,a=o.parent;if(t.exportSymbol)return 212===o.kind?(null==(i=t.declarations)?void 0:i.some(e=>e===o))&&isBinaryExpression(a)?getSpecialPropertyExport(a,!1):void 0:exportInfo(t.exportSymbol,getExportKindForDeclaration(o));{const i=function getExportNode(e,t){const n=isVariableDeclaration(e)?e:isBindingElement(e)?walkUpBindingElementsAndPatterns(e):void 0;return n?e.name!==t||isCatchClause(n.parent)?void 0:isVariableStatement(n.parent.parent)?n.parent.parent:void 0:e}(o,e);if(i&&hasSyntacticModifier(i,32)){if(isImportEqualsDeclaration(i)&&i.moduleReference===e){if(r)return;return{kind:0,symbol:n.getSymbolAtLocation(i.name)}}return exportInfo(t,getExportKindForDeclaration(i))}if(isNamespaceExport(o))return exportInfo(t,0);if(isExportAssignment(o))return getExportAssignmentExport(o);if(isExportAssignment(a))return getExportAssignmentExport(a);if(isBinaryExpression(o))return getSpecialPropertyExport(o,!0);if(isBinaryExpression(a))return getSpecialPropertyExport(a,!0);if(isJSDocTypedefTag(o)||isJSDocCallbackTag(o))return exportInfo(t,0)}function getExportAssignmentExport(e){if(!e.symbol.parent)return;const n=e.isExportEquals?2:1;return{kind:1,symbol:t,exportInfo:{exportingModuleSymbol:e.symbol.parent,exportKind:n}}}function getSpecialPropertyExport(e,r){let i;switch(getAssignmentDeclarationKind(e)){case 1:i=0;break;case 2:i=2;break;default:return}const o=r?n.getSymbolAtLocation(getNameOfAccessExpression(cast(e.left,isAccessExpression))):t;return o&&exportInfo(o,i)}}function exportInfo(e,t){const r=getExportInfo(e,t,n);return r&&{kind:1,symbol:e,exportInfo:r}}function getExportKindForDeclaration(e){return hasSyntacticModifier(e,2048)?1:0}}function getExportInfo(e,t,n){const r=e.parent;if(!r)return;const i=n.getMergedSymbol(r);return isExternalModuleSymbol(i)?{exportingModuleSymbol:i,exportKind:t}:void 0}function getContainingModuleSymbol(e,t){return t.getMergedSymbol(getSourceFileLikeForImportDeclaration(e).symbol)}function getSourceFileLikeForImportDeclaration(e){if(214===e.kind||352===e.kind)return e.getSourceFile();const{parent:t}=e;return 308===t.kind?t:(h.assert(269===t.kind),cast(t.parent,isAmbientModuleDeclaration))}function isAmbientModuleDeclaration(e){return 268===e.kind&&11===e.name.kind}function isExternalModuleImportEquals(e){return 284===e.moduleReference.kind&&11===e.moduleReference.expression.kind}var Em=(e=>(e[e.Symbol=0]="Symbol",e[e.Label=1]="Label",e[e.Keyword=2]="Keyword",e[e.This=3]="This",e[e.String=4]="String",e[e.TripleSlashReference=5]="TripleSlashReference",e))(Em||{}),Nm=(e=>(e[e.Span=0]="Span",e[e.Node=1]="Node",e[e.StringLiteral=2]="StringLiteral",e[e.SearchedLocalFoundProperty=3]="SearchedLocalFoundProperty",e[e.SearchedPropertyFoundLocal=4]="SearchedPropertyFoundLocal",e))(Nm||{});function nodeEntry(e,t=1){return{kind:t,node:e.name||e,context:getContextNodeForNodeEntry(e)}}function isContextWithStartAndEndNode(e){return e&&void 0===e.kind}function getContextNodeForNodeEntry(e){if(isDeclaration(e))return getContextNode(e);if(e.parent){if(!isDeclaration(e.parent)&&!isExportAssignment(e.parent)){if(isInJSFile(e)){const t=isBinaryExpression(e.parent)?e.parent:isAccessExpression(e.parent)&&isBinaryExpression(e.parent.parent)&&e.parent.parent.left===e.parent?e.parent.parent:void 0;if(t&&0!==getAssignmentDeclarationKind(t))return getContextNode(t)}if(isJsxOpeningElement(e.parent)||isJsxClosingElement(e.parent))return e.parent.parent;if(isJsxSelfClosingElement(e.parent)||isLabeledStatement(e.parent)||isBreakOrContinueStatement(e.parent))return e.parent;if(isStringLiteralLike(e)){const t=tryGetImportFromModuleSpecifier(e);if(t){const e=findAncestor(t,e=>isDeclaration(e)||isStatement(e)||isJSDocTag(e));return isDeclaration(e)?getContextNode(e):e}}const t=findAncestor(e,isComputedPropertyName);return t?getContextNode(t.parent):void 0}return e.parent.name===e||isConstructorDeclaration(e.parent)||isExportAssignment(e.parent)||(isImportOrExportSpecifier(e.parent)||isBindingElement(e.parent))&&e.parent.propertyName===e||90===e.kind&&hasSyntacticModifier(e.parent,2080)?getContextNode(e.parent):void 0}}function getContextNode(e){if(e)switch(e.kind){case 261:return isVariableDeclarationList(e.parent)&&1===e.parent.declarations.length?isVariableStatement(e.parent.parent)?e.parent.parent:isForInOrOfStatement(e.parent.parent)?getContextNode(e.parent.parent):e.parent:e;case 209:return getContextNode(e.parent.parent);case 277:return e.parent.parent.parent;case 282:case 275:return e.parent.parent;case 274:case 281:return e.parent;case 227:return isExpressionStatement(e.parent)?e.parent:e;case 251:case 250:return{start:e.initializer,end:e.expression};case 304:case 305:return isArrayLiteralOrObjectLiteralDestructuringPattern(e.parent)?getContextNode(findAncestor(e.parent,e=>isBinaryExpression(e)||isForInOrOfStatement(e))):e;case 256:return{start:find(e.getChildren(e.getSourceFile()),e=>109===e.kind),end:e.caseBlock};default:return e}}function toContextSpan(e,t,n){if(!n)return;const r=isContextWithStartAndEndNode(n)?getTextSpan(n.start,t,n.end):getTextSpan(n,t);return r.start!==e.start||r.length!==e.length?{contextSpan:r}:void 0}var km,Fm=(e=>(e[e.Other=0]="Other",e[e.References=1]="References",e[e.Rename=2]="Rename",e))(Fm||{});function findReferencedSymbols(e,t,n,r,i){const o=getTouchingPropertyName(r,i),a={use:1},s=km.getReferencedSymbolsForNode(i,o,e,n,t,a),c=e.getTypeChecker(),l=km.getAdjustedNode(o,a),d=function isDefinitionForReference(e){return 90===e.kind||!!getDeclarationFromName(e)||isLiteralComputedPropertyDeclarationName(e)||137===e.kind&&isConstructorDeclaration(e.parent)}(l)?c.getSymbolAtLocation(l):void 0;return s&&s.length?mapDefined(s,({definition:e,references:n})=>e&&{definition:c.runWithCancellationToken(t,t=>function definitionToReferencedSymbolDefinitionInfo(e,t,n){const r=(()=>{switch(e.type){case 0:{const{symbol:r}=e,{displayParts:i,kind:o}=getDefinitionKindAndDisplayParts(r,t,n),a=i.map(e=>e.text).join(""),s=r.declarations&&firstOrUndefined(r.declarations);return{...getFileAndTextSpanFromNode(s?getNameOfDeclaration(s)||s:n),name:a,kind:o,displayParts:i,context:getContextNode(s)}}case 1:{const{node:t}=e;return{...getFileAndTextSpanFromNode(t),name:t.text,kind:"label",displayParts:[displayPart(t.text,17)]}}case 2:{const{node:t}=e,n=tokenToString(t.kind);return{...getFileAndTextSpanFromNode(t),name:n,kind:"keyword",displayParts:[{text:n,kind:"keyword"}]}}case 3:{const{node:n}=e,r=t.getSymbolAtLocation(n),i=r&&Km.getSymbolDisplayPartsDocumentationAndSymbolKind(t,r,n.getSourceFile(),getContainerNode(n),n).displayParts||[textPart("this")];return{...getFileAndTextSpanFromNode(n),name:"this",kind:"var",displayParts:i}}case 4:{const{node:t}=e;return{...getFileAndTextSpanFromNode(t),name:t.text,kind:"var",displayParts:[displayPart(getTextOfNode(t),8)]}}case 5:return{textSpan:createTextSpanFromRange(e.reference),sourceFile:e.file,name:e.reference.fileName,kind:"string",displayParts:[displayPart(`"${e.reference.fileName}"`,8)]};default:return h.assertNever(e)}})(),{sourceFile:i,textSpan:o,name:a,kind:s,displayParts:c,context:l}=r;return{containerKind:"",containerName:"",fileName:i.fileName,kind:s,name:a,textSpan:o,displayParts:c,...toContextSpan(o,i,l)}}(e,t,o)),references:n.map(e=>function toReferencedSymbolEntry(e,t){const n=toReferenceEntry(e);return t?{...n,isDefinition:0!==e.kind&&isDeclarationOfSymbol(e.node,t)}:n}(e,d))}):void 0}function getImplementationsAtPosition(e,t,n,r,i){const o=getTouchingPropertyName(r,i);let a;const s=getImplementationReferenceEntries(e,t,n,o,i);if(212===o.parent.kind||209===o.parent.kind||213===o.parent.kind||108===o.kind)a=s&&[...s];else if(s){const r=createQueue(s),i=new Set;for(;!r.isEmpty();){const o=r.dequeue();if(!addToSeen(i,getNodeId(o.node)))continue;a=append(a,o);const s=getImplementationReferenceEntries(e,t,n,o.node,o.node.pos);s&&r.enqueue(...s)}}const c=e.getTypeChecker();return map(a,e=>function toImplementationLocation(e,t){const n=entryToDocumentSpan(e);if(0!==e.kind){const{node:r}=e;return{...n,...implementationKindDisplayParts(r,t)}}return{...n,kind:"",displayParts:[]}}(e,c))}function getImplementationReferenceEntries(e,t,n,r,i){if(308===r.kind)return;const o=e.getTypeChecker();if(305===r.parent.kind){const e=[];return km.getReferenceEntriesForShorthandPropertyAssignment(r,o,t=>e.push(nodeEntry(t))),e}if(108===r.kind||isSuperProperty(r.parent)){const e=o.getSymbolAtLocation(r);return e.valueDeclaration&&[nodeEntry(e.valueDeclaration)]}return getReferenceEntriesForNode(i,r,e,n,t,{implementations:!0,use:1})}function findReferenceOrRenameEntries(e,t,n,r,i,o,a){return map(flattenEntries(km.getReferencedSymbolsForNode(i,r,e,n,t,o)),t=>a(t,r,e.getTypeChecker()))}function getReferenceEntriesForNode(e,t,n,r,i,o={},a=new Set(r.map(e=>e.fileName))){return flattenEntries(km.getReferencedSymbolsForNode(e,t,n,r,i,o,a))}function flattenEntries(e){return e&&flatMap(e,e=>e.references)}function getFileAndTextSpanFromNode(e){const t=e.getSourceFile();return{sourceFile:t,textSpan:getTextSpan(isComputedPropertyName(e)?e.expression:e,t)}}function getDefinitionKindAndDisplayParts(e,t,n){const r=km.getIntersectingMeaningFromDeclarations(n,e),i=e.declarations&&firstOrUndefined(e.declarations)||n,{displayParts:o,symbolKind:a}=Km.getSymbolDisplayPartsDocumentationAndSymbolKind(t,e,i.getSourceFile(),i,i,r);return{displayParts:o,kind:a}}function toRenameLocation(e,t,n,r,i){return{...entryToDocumentSpan(e),...r&&getPrefixAndSuffixText(e,t,n,i)}}function toReferenceEntry(e){const t=entryToDocumentSpan(e);if(0===e.kind)return{...t,isWriteAccess:!1};const{kind:n,node:r}=e;return{...t,isWriteAccess:isWriteAccessForReference(r),isInString:2===n||void 0}}function entryToDocumentSpan(e){if(0===e.kind)return{textSpan:e.textSpan,fileName:e.fileName};{const t=e.node.getSourceFile(),n=getTextSpan(e.node,t);return{textSpan:n,fileName:t.fileName,...toContextSpan(n,t,e.context)}}}function getPrefixAndSuffixText(e,t,n,r){if(0!==e.kind&&(isIdentifier(t)||isStringLiteralLike(t))){const{node:r,kind:i}=e,o=r.parent,a=t.text,s=isShorthandPropertyAssignment(o);if(s||isObjectBindingElementWithoutPropertyName(o)&&o.name===r&&void 0===o.dotDotDotToken){const e={prefixText:a+": "},t={suffixText:": "+a};if(3===i)return e;if(4===i)return t;if(s){const n=o.parent;return isObjectLiteralExpression(n)&&isBinaryExpression(n.parent)&&isModuleExportsAccessExpression(n.parent.left)?e:t}return e}if(isImportSpecifier(o)&&!o.propertyName){return contains((isExportSpecifier(t.parent)?n.getExportSpecifierLocalTargetSymbol(t.parent):n.getSymbolAtLocation(t)).declarations,o)?{prefixText:a+" as "}:Es}if(isExportSpecifier(o)&&!o.propertyName)return t===e.node||n.getSymbolAtLocation(t)===n.getSymbolAtLocation(e.node)?{prefixText:a+" as "}:{suffixText:" as "+a}}if(0!==e.kind&&isNumericLiteral(e.node)&&isAccessExpression(e.node.parent)){const e=getQuoteFromPreference(r);return{prefixText:e,suffixText:e}}return Es}function implementationKindDisplayParts(e,t){const n=t.getSymbolAtLocation(isDeclaration(e)&&e.name?e.name:e);return n?getDefinitionKindAndDisplayParts(n,t,e):211===e.kind?{kind:"interface",displayParts:[punctuationPart(21),textPart("object literal"),punctuationPart(22)]}:232===e.kind?{kind:"local class",displayParts:[punctuationPart(21),textPart("anonymous local class"),punctuationPart(22)]}:{kind:getNodeKind(e),displayParts:[]}}function toHighlightSpan(e){const t=entryToDocumentSpan(e);if(0===e.kind)return{fileName:t.fileName,span:{textSpan:t.textSpan,kind:"reference"}};const n=isWriteAccessForReference(e.node),r={textSpan:t.textSpan,kind:n?"writtenReference":"reference",isInString:2===e.kind||void 0,...t.contextSpan&&{contextSpan:t.contextSpan}};return{fileName:t.fileName,span:r}}function getTextSpan(e,t,n){let r=e.getStart(t),i=(n||e).getEnd();return isStringLiteralLike(e)&&i-r>2&&(h.assert(void 0===n),r+=1,i-=1),270===(null==n?void 0:n.kind)&&(i=n.getFullStart()),createTextSpanFromBounds(r,i)}function getTextSpanOfEntry(e){return 0===e.kind?e.textSpan:getTextSpan(e.node,e.node.getSourceFile())}function isWriteAccessForReference(e){const t=getDeclarationFromName(e);return!!t&&function declarationIsWriteAccess(e){if(33554432&e.flags)return!0;switch(e.kind){case 227:case 209:case 264:case 232:case 90:case 267:case 307:case 282:case 274:case 272:case 277:case 265:case 339:case 347:case 292:case 268:case 271:case 275:case 281:case 170:case 305:case 266:case 169:return!0;case 304:return!isArrayLiteralOrObjectLiteralDestructuringPattern(e.parent);case 263:case 219:case 177:case 175:case 178:case 179:return!!e.body;case 261:case 173:return!!e.initializer||isCatchClause(e.parent);case 174:case 172:case 349:case 342:return!1;default:return h.failBadSyntaxKind(e)}}(t)||90===e.kind||isWriteAccess(e)}function isDeclarationOfSymbol(e,t){var n;if(!t)return!1;const r=getDeclarationFromName(e)||(90===e.kind?e.parent:isLiteralComputedPropertyDeclarationName(e)||137===e.kind&&isConstructorDeclaration(e.parent)?e.parent.parent:void 0),i=r&&isBinaryExpression(r)?r.left:void 0;return!(!r||!(null==(n=t.declarations)?void 0:n.some(e=>e===r||e===i)))}(e=>{function getAdjustedNode2(e,t){return 1===t.use?e=getAdjustedReferenceLocation(e):2===t.use&&(e=getAdjustedRenameLocation(e)),e}function getReferencesForNonModule(e,t,n){let r;const i=t.get(e.path)||l;for(const e of i)if(isReferencedFile(e)){const t=n.getSourceFileByPath(e.file),i=getReferencedFileLocation(n,e);isReferenceFileLocation(i)&&(r=append(r,{kind:0,fileName:t.fileName,textSpan:createTextSpanFromRange(i)}))}return r}function getMergedAliasedSymbolOfNamespaceExportDeclaration(e,t,n){if(e.parent&&isNamespaceExportDeclaration(e.parent)){const e=n.getAliasedSymbol(t),r=n.getMergedSymbol(e);if(e!==r)return r}}function getReferencedSymbolsForModuleIfDeclaredBySourceFile(e,t,n,r,i,o){const a=1536&e.flags&&e.declarations&&find(e.declarations,isSourceFile);if(!a)return;const s=e.exports.get("export="),c=getReferencedSymbolsForModule(t,e,!!s,n,o);if(!s||!o.has(a.fileName))return c;const l=t.getTypeChecker();return mergeReferences(t,c,getReferencedSymbolsForSymbol(e=skipAlias(s,l),void 0,n,o,l,r,i))}function mergeReferences(e,...t){let n;for(const r of t)if(r&&r.length)if(n)for(const t of r){if(!t.definition||0!==t.definition.type){n.push(t);continue}const r=t.definition.symbol,i=findIndex(n,e=>!!e.definition&&0===e.definition.type&&e.definition.symbol===r);if(-1===i){n.push(t);continue}const o=n[i];n[i]={definition:o.definition,references:o.references.concat(t.references).sort((t,n)=>{const r=getSourceFileIndexOfEntry(e,t),i=getSourceFileIndexOfEntry(e,n);if(r!==i)return compareValues(r,i);const o=getTextSpanOfEntry(t),a=getTextSpanOfEntry(n);return o.start!==a.start?compareValues(o.start,a.start):compareValues(o.length,a.length)})}}else n=r;return n}function getSourceFileIndexOfEntry(e,t){const n=0===t.kind?e.getSourceFile(t.fileName):t.node.getSourceFile();return e.getSourceFiles().indexOf(n)}function getReferencedSymbolsForModule(e,t,n,r,i){h.assert(!!t.valueDeclaration);const o=mapDefined(findModuleReferences(e,r,t),e=>{if("import"===e.kind){const t=e.literal.parent;if(isLiteralTypeNode(t)){const e=cast(t.parent,isImportTypeNode);if(n&&!e.qualifier)return}return nodeEntry(e.literal)}if("implicit"===e.kind){return nodeEntry(e.literal.text!==sn&&forEachChildRecursively(e.referencingFile,e=>2&e.transformFlags?isJsxElement(e)||isJsxSelfClosingElement(e)||isJsxFragment(e)?e:void 0:"skip")||e.referencingFile.statements[0]||e.referencingFile)}return{kind:0,fileName:e.referencingFile.fileName,textSpan:createTextSpanFromRange(e.ref)}});if(t.declarations)for(const e of t.declarations)switch(e.kind){case 308:break;case 268:i.has(e.getSourceFile().fileName)&&o.push(nodeEntry(e.name));break;default:h.assert(!!(33554432&t.flags),"Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.")}const a=t.exports.get("export=");if(null==a?void 0:a.declarations)for(const e of a.declarations){const t=e.getSourceFile();if(i.has(t.fileName)){const n=isBinaryExpression(e)&&isPropertyAccessExpression(e.left)?e.left.expression:isExportAssignment(e)?h.checkDefined(findChildOfKind(e,95,t)):getNameOfDeclaration(e)||e;o.push(nodeEntry(n))}}return o.length?[{definition:{type:0,symbol:t},references:o}]:l}function isReadonlyTypeOperator(e){return 148===e.kind&&isTypeOperatorNode(e.parent)&&148===e.parent.operator}function getReferencedSymbolsForSymbol(e,t,n,r,i,o,a){const s=t&&function skipPastExportOrImportSpecifierOrUnion(e,t,n,r){const{parent:i}=t;if(isExportSpecifier(i)&&r)return getLocalSymbolForExportSpecifier(t,e,i,n);return firstDefined(e.declarations,r=>{if(!r.parent){if(33554432&e.flags)return;h.fail(`Unexpected symbol at ${h.formatSyntaxKind(t.kind)}: ${h.formatSymbol(e)}`)}return isTypeLiteralNode(r.parent)&&isUnionTypeNode(r.parent.parent)?n.getPropertyOfType(n.getTypeFromTypeNode(r.parent.parent),e.name):void 0})}(e,t,i,!isForRenameWithPrefixAndSuffixText(a))||e,c=t&&2!==a.use?getIntersectingMeaningFromDeclarations(t,s):7,l=[],d=new State(n,r,t?function getSpecialSearchKind(e){switch(e.kind){case 177:case 137:return 1;case 80:if(isClassLike(e.parent))return h.assert(e.parent.name===e),2;default:return 0}}(t):0,i,o,c,a,l),p=isForRenameWithPrefixAndSuffixText(a)&&s.declarations?find(s.declarations,isExportSpecifier):void 0;if(p)getReferencesAtExportSpecifier(p.name,s,p,d.createSearch(t,e,void 0),d,!0,!0);else if(t&&90===t.kind&&"default"===s.escapedName&&s.parent)addReference(t,s,d),searchForImportsOfExport(t,s,{exportingModuleSymbol:s.parent,exportKind:1},d);else{const e=d.createSearch(t,s,void 0,{allSearchSymbols:t?populateSearchSymbolSet(s,t,i,2===a.use,!!a.providePrefixAndSuffixTextForRename,!!a.implementations):[s]});getReferencesInContainerOrFiles(s,d,e)}return l}function getReferencesInContainerOrFiles(e,t,n){const r=function getSymbolScope(e){const{declarations:t,flags:n,parent:r,valueDeclaration:i}=e;if(i&&(219===i.kind||232===i.kind))return i;if(!t)return;if(8196&n){const e=find(t,e=>hasEffectiveModifier(e,2)||isPrivateIdentifierClassElementDeclaration(e));return e?getAncestor(e,264):void 0}if(t.some(isObjectBindingElementWithoutPropertyName))return;const o=r&&!(262144&e.flags);if(o&&(!isExternalModuleSymbol(r)||r.globalExports))return;let a;for(const e of t){const t=getContainerNode(e);if(a&&a!==t)return;if(!t||308===t.kind&&!isExternalOrCommonJsModule(t))return;if(a=t,isFunctionExpression(a)){let e;for(;e=getNextJSDocCommentLocation(a);)a=e}}return o?a.getSourceFile():a}(e);if(r)getReferencesInContainer(r,r.getSourceFile(),n,t,!(isSourceFile(r)&&!contains(t.sourceFiles,r)));else for(const e of t.sourceFiles)t.cancellationToken.throwIfCancellationRequested(),searchForName(e,n,t)}let t;var n;function getNonModuleSymbolOfMergedModuleSymbol(e){if(!(33555968&e.flags))return;const t=e.declarations&&find(e.declarations,e=>!isSourceFile(e)&&!isModuleDeclaration(e));return t&&t.symbol}e.getReferencedSymbolsForNode=function getReferencedSymbolsForNode(e,t,n,r,i,o={},a=new Set(r.map(e=>e.fileName))){var s,c;if(isSourceFile(t=getAdjustedNode2(t,o))){const i=Pm.getReferenceAtPosition(t,e,n);if(!(null==i?void 0:i.file))return;const o=n.getTypeChecker().getMergedSymbol(i.file.symbol);if(o)return getReferencedSymbolsForModule(n,o,!1,r,a);const s=n.getFileIncludeReasons();if(!s)return;return[{definition:{type:5,reference:i.reference,file:t},references:getReferencesForNonModule(i.file,s,n)||l}]}if(!o.implementations){const e=function getReferencedSymbolsSpecial(e,t,n){if(isTypeKeyword(e.kind)){if(116===e.kind&&isVoidExpression(e.parent))return;if(148===e.kind&&!isReadonlyTypeOperator(e))return;return function getAllReferencesForKeyword(e,t,n,r){const i=flatMap(e,e=>(n.throwIfCancellationRequested(),mapDefined(getPossibleSymbolReferenceNodes(e,tokenToString(t),e),e=>{if(e.kind===t&&(!r||r(e)))return nodeEntry(e)})));return i.length?[{definition:{type:2,node:i[0].node},references:i}]:void 0}(t,e.kind,n,148===e.kind?isReadonlyTypeOperator:void 0)}if(isImportMeta(e.parent)&&e.parent.name===e)return function getAllReferencesForImportMeta(e,t){const n=flatMap(e,e=>(t.throwIfCancellationRequested(),mapDefined(getPossibleSymbolReferenceNodes(e,"meta",e),e=>{const t=e.parent;if(isImportMeta(t))return nodeEntry(t)})));return n.length?[{definition:{type:2,node:n[0].node},references:n}]:void 0}(t,n);if(isStaticModifier(e)&&isClassStaticBlockDeclaration(e.parent))return[{definition:{type:2,node:e},references:[nodeEntry(e)]}];if(isJumpStatementTarget(e)){const t=getTargetLabel(e.parent,e.text);return t&&getLabelReferencesInNode(t.parent,t)}if(isLabelOfLabeledStatement(e))return getLabelReferencesInNode(e.parent,e);if(isThis(e))return function getReferencesForThisKeyword(e,t,n){let r=getThisContainer(e,!1,!1),i=256;switch(r.kind){case 175:case 174:if(isObjectLiteralMethod(r)){i&=getSyntacticModifierFlags(r),r=r.parent;break}case 173:case 172:case 177:case 178:case 179:i&=getSyntacticModifierFlags(r),r=r.parent;break;case 308:if(isExternalModule(r)||isParameterName(e))return;case 263:case 219:break;default:return}const o=flatMap(308===r.kind?t:[r.getSourceFile()],e=>(n.throwIfCancellationRequested(),getPossibleSymbolReferenceNodes(e,"this",isSourceFile(r)?e:r).filter(e=>{if(!isThis(e))return!1;const t=getThisContainer(e,!1,!1);if(!canHaveSymbol(t))return!1;switch(r.kind){case 219:case 263:return r.symbol===t.symbol;case 175:case 174:return isObjectLiteralMethod(r)&&r.symbol===t.symbol;case 232:case 264:case 211:return t.parent&&canHaveSymbol(t.parent)&&r.symbol===t.parent.symbol&&isStatic(t)===!!i;case 308:return 308===t.kind&&!isExternalModule(t)&&!isParameterName(e)}}))).map(e=>nodeEntry(e)),a=firstDefined(o,e=>isParameter(e.node.parent)?e.node:void 0);return[{definition:{type:3,node:a||e},references:o}]}(e,t,n);if(108===e.kind)return function getReferencesForSuperKeyword(e){let t=getSuperContainer(e,!1);if(!t)return;let n=256;switch(t.kind){case 173:case 172:case 175:case 174:case 177:case 178:case 179:n&=getSyntacticModifierFlags(t),t=t.parent;break;default:return}const r=mapDefined(getPossibleSymbolReferenceNodes(t.getSourceFile(),"super",t),e=>{if(108!==e.kind)return;const r=getSuperContainer(e,!1);return r&&isStatic(r)===!!n&&r.parent.symbol===t.symbol?nodeEntry(e):void 0});return[{definition:{type:0,symbol:t.symbol},references:r}]}(e);return}(t,r,i);if(e)return e}const d=n.getTypeChecker(),p=d.getSymbolAtLocation(isConstructorDeclaration(t)&&t.parent.name||t);if(!p){if(!o.implementations&&isStringLiteralLike(t)){if(isModuleSpecifierLike(t)){const e=n.getFileIncludeReasons(),r=null==(c=null==(s=n.getResolvedModuleFromModuleSpecifier(t))?void 0:s.resolvedModule)?void 0:c.resolvedFileName,i=r?n.getSourceFile(r):void 0;if(i)return[{definition:{type:4,node:t},references:getReferencesForNonModule(i,e,n)||l}]}return function getReferencesForStringLiteral(e,t,n,r){const i=getContextualTypeFromParentOrAncestorTypeNode(e,n),o=flatMap(t,t=>(r.throwIfCancellationRequested(),mapDefined(getPossibleSymbolReferenceNodes(t,e.text),r=>{if(isStringLiteralLike(r)&&r.text===e.text){if(!i)return isNoSubstitutionTemplateLiteral(r)&&!rangeIsOnSingleLine(r,t)?void 0:nodeEntry(r,2);{const e=getContextualTypeFromParentOrAncestorTypeNode(r,n);if(i!==n.getStringType()&&(i===e||function isStringLiteralPropertyReference(e,t){if(isPropertySignature(e.parent))return t.getPropertyOfType(t.getTypeAtLocation(e.parent.parent),e.text)}(r,n)))return nodeEntry(r,2)}}})));return[{definition:{type:4,node:e},references:o}]}(t,r,d,i)}return}if("export="===p.escapedName)return getReferencedSymbolsForModule(n,p.parent,!1,r,a);const u=getReferencedSymbolsForModuleIfDeclaredBySourceFile(p,n,r,i,o,a);if(u&&!(33554432&p.flags))return u;const m=getMergedAliasedSymbolOfNamespaceExportDeclaration(t,p,d),_=m&&getReferencedSymbolsForModuleIfDeclaredBySourceFile(m,n,r,i,o,a);return mergeReferences(n,u,getReferencedSymbolsForSymbol(p,t,r,a,d,i,o),_)},e.getAdjustedNode=getAdjustedNode2,e.getReferencesForFileName=function getReferencesForFileName(e,t,n,r=new Set(n.map(e=>e.fileName))){var i,o;const a=null==(i=t.getSourceFile(e))?void 0:i.symbol;if(a)return(null==(o=getReferencedSymbolsForModule(t,a,!1,n,r)[0])?void 0:o.references)||l;const s=t.getFileIncludeReasons(),c=t.getSourceFile(e);return c&&s&&getReferencesForNonModule(c,s,t)||l},(n=t||(t={}))[n.None=0]="None",n[n.Constructor=1]="Constructor",n[n.Class=2]="Class";class State{constructor(e,t,n,r,i,o,a,s){this.sourceFiles=e,this.sourceFilesSet=t,this.specialSearchKind=n,this.checker=r,this.cancellationToken=i,this.searchMeaning=o,this.options=a,this.result=s,this.inheritsFromCache=new Map,this.markSeenContainingTypeReference=nodeSeenTracker(),this.markSeenReExportRHS=nodeSeenTracker(),this.symbolIdToReferences=[],this.sourceFileToSeenSymbols=[]}includesSourceFile(e){return this.sourceFilesSet.has(e.fileName)}getImportSearches(e,t){return this.importTracker||(this.importTracker=createImportTracker(this.sourceFiles,this.sourceFilesSet,this.checker,this.cancellationToken)),this.importTracker(e,t,2===this.options.use)}createSearch(e,t,n,r={}){const{text:i=stripQuotes(symbolName(getLocalSymbolForExportDefault(t)||getNonModuleSymbolOfMergedModuleSymbol(t)||t)),allSearchSymbols:o=[t]}=r,a=escapeLeadingUnderscores(i),s=this.options.implementations&&e?function getParentSymbolsOfPropertyAccess(e,t,n){const r=isRightSideOfPropertyAccess(e)?e.parent:void 0,i=r&&n.getTypeAtLocation(r.expression),o=mapDefined(i&&(i.isUnionOrIntersection()?i.types:i.symbol===t.parent?void 0:[i]),e=>e.symbol&&96&e.symbol.flags?e.symbol:void 0);return 0===o.length?void 0:o}(e,t,this.checker):void 0;return{symbol:t,comingFrom:n,text:i,escapedText:a,parents:s,allSearchSymbols:o,includes:e=>contains(o,e)}}referenceAdder(e){const t=getSymbolId(e);let n=this.symbolIdToReferences[t];return n||(n=this.symbolIdToReferences[t]=[],this.result.push({definition:{type:0,symbol:e},references:n})),(e,t)=>n.push(nodeEntry(e,t))}addStringOrCommentReference(e,t){this.result.push({definition:void 0,references:[{kind:0,fileName:e,textSpan:t}]})}markSearchedSymbols(e,t){const n=getNodeId(e),r=this.sourceFileToSeenSymbols[n]||(this.sourceFileToSeenSymbols[n]=new Set);let i=!1;for(const e of t)i=tryAddToSet(r,getSymbolId(e))||i;return i}}function searchForImportsOfExport(e,t,n,r){const{importSearches:i,singleReferences:o,indirectUsers:a}=r.getImportSearches(t,n);if(o.length){const e=r.referenceAdder(t);for(const t of o)shouldAddSingleReference(t,r)&&e(t)}for(const[e,t]of i)getReferencesInSourceFile(e.getSourceFile(),r.createSearch(e,t,1),r);if(a.length){let i;switch(n.exportKind){case 0:i=r.createSearch(e,t,1);break;case 1:i=2===r.options.use?void 0:r.createSearch(e,t,1,{text:"default"})}if(i)for(const e of a)searchForName(e,i,r)}}function shouldAddSingleReference(e,t){return!!hasMatchingMeaning(e,t)&&(2!==t.options.use||!(!isIdentifier(e)&&!isImportOrExportSpecifier(e.parent))&&!(isImportOrExportSpecifier(e.parent)&&moduleExportNameIsDefault(e)))}function searchForImportedSymbol(e,t){if(e.declarations)for(const n of e.declarations){const r=n.getSourceFile();getReferencesInSourceFile(r,t.createSearch(n,e,0),t,t.includesSourceFile(r))}}function searchForName(e,t,n){void 0!==getNameTable(e).get(t.escapedText)&&getReferencesInSourceFile(e,t,n)}function eachSymbolReferenceInFile(e,t,n,r,i=n){const o=isParameterPropertyDeclaration(e.parent,e.parent.parent)?first(t.getSymbolsOfParameterPropertyDeclaration(e.parent,e.text)):t.getSymbolAtLocation(e);if(o)for(const a of getPossibleSymbolReferenceNodes(n,o.name,i)){if(!isIdentifier(a)||a===e||a.escapedText!==e.escapedText)continue;const n=t.getSymbolAtLocation(a);if(n===o||t.getShorthandAssignmentValueSymbol(a.parent)===o||isExportSpecifier(a.parent)&&getLocalSymbolForExportSpecifier(a,n,a.parent,t)===o){const e=r(a);if(e)return e}}}function getPossibleSymbolReferenceNodes(e,t,n=e){return mapDefined(getPossibleSymbolReferencePositions(e,t,n),t=>{const n=getTouchingPropertyName(e,t);return n===e?void 0:n})}function getPossibleSymbolReferencePositions(e,t,n=e){const r=[];if(!t||!t.length)return r;const i=e.text,o=i.length,a=t.length;let s=i.indexOf(t,n.pos);for(;s>=0&&!(s>n.end);){const e=s+a;0!==s&&isIdentifierPart(i.charCodeAt(s-1),99)||e!==o&&isIdentifierPart(i.charCodeAt(e),99)||r.push(s),s=i.indexOf(t,s+a+1)}return r}function getLabelReferencesInNode(e,t){const n=e.getSourceFile(),r=t.text,i=mapDefined(getPossibleSymbolReferenceNodes(n,r,e),e=>e===t||isJumpStatementTarget(e)&&getTargetLabel(e,r)===t?nodeEntry(e):void 0);return[{definition:{type:1,node:t},references:i}]}function getReferencesInSourceFile(e,t,n,r=!0){return n.cancellationToken.throwIfCancellationRequested(),getReferencesInContainer(e,e,t,n,r)}function getReferencesInContainer(e,t,n,r,i){if(r.markSearchedSymbols(t,n.allSearchSymbols))for(const o of getPossibleSymbolReferencePositions(t,n.text,e))getReferencesAtLocation(t,o,n,r,i)}function hasMatchingMeaning(e,t){return!!(getMeaningFromLocation(e)&t.searchMeaning)}function getReferencesAtLocation(e,t,n,r,i){const o=getTouchingPropertyName(e,t);if(!function isValidReferencePosition(e,t){switch(e.kind){case 81:if(isJSDocMemberName(e.parent))return!0;case 80:return e.text.length===t.length;case 15:case 11:{const n=e;return n.text.length===t.length&&(isLiteralNameOfPropertyDeclarationOrIndexAccess(n)||isNameOfModuleDeclaration(e)||isExpressionOfExternalModuleImportEqualsDeclaration(e)||isCallExpression(e.parent)&&isBindableObjectDefinePropertyCall(e.parent)&&e.parent.arguments[1]===e||isImportOrExportSpecifier(e.parent))}case 9:return isLiteralNameOfPropertyDeclarationOrIndexAccess(e)&&e.text.length===t.length;case 90:return 7===t.length;default:return!1}}(o,n.text))return void(!r.options.implementations&&(r.options.findInStrings&&isInString(e,t)||r.options.findInComments&&isInNonReferenceComment(e,t))&&r.addStringOrCommentReference(e.fileName,createTextSpan(t,n.text.length)));if(!hasMatchingMeaning(o,r))return;let a=r.checker.getSymbolAtLocation(o);if(!a)return;const s=o.parent;if(isImportSpecifier(s)&&s.propertyName===o)return;if(isExportSpecifier(s))return h.assert(80===o.kind||11===o.kind),void getReferencesAtExportSpecifier(o,a,s,n,r,i);if(isJSDocPropertyLikeTag(s)&&s.isNameFirst&&s.typeExpression&&isJSDocTypeLiteral(s.typeExpression.type)&&s.typeExpression.type.jsDocPropertyTags&&length(s.typeExpression.type.jsDocPropertyTags))return void function getReferencesAtJSDocTypeLiteral(e,t,n,r){const i=r.referenceAdder(n.symbol);addReference(t,n.symbol,r),forEach(e,e=>{isQualifiedName(e.name)&&i(e.name.left)})}(s.typeExpression.type.jsDocPropertyTags,o,n,r);const c=function getRelatedSymbol(e,t,n,r){const{checker:i}=r;return forEachRelatedSymbol(t,n,i,!1,2!==r.options.use||!!r.options.providePrefixAndSuffixTextForRename,(n,r,i,o)=>(i&&isStaticSymbol(t)!==isStaticSymbol(i)&&(i=void 0),e.includes(i||r||n)?{symbol:!r||6&getCheckFlags(n)?n:r,kind:o}:void 0),t=>!(e.parents&&!e.parents.some(e=>explicitlyInheritsFrom(t.parent,e,r.inheritsFromCache,i))))}(n,a,o,r);if(c){switch(r.specialSearchKind){case 0:i&&addReference(o,c,r);break;case 1:!function addConstructorReferences(e,t,n,r){isNewExpressionTarget(e)&&addReference(e,n.symbol,r);const pusher=()=>r.referenceAdder(n.symbol);if(isClassLike(e.parent))h.assert(90===e.kind||e.parent.name===e),function findOwnConstructorReferences(e,t,n){const r=getClassConstructorSymbol(e);if(r&&r.declarations)for(const e of r.declarations){const r=findChildOfKind(e,137,t);h.assert(177===e.kind&&!!r),n(r)}e.exports&&e.exports.forEach(e=>{const t=e.valueDeclaration;if(t&&175===t.kind){const e=t.body;e&&forEachDescendantOfKind(e,110,e=>{isNewExpressionTarget(e)&&n(e)})}})}(n.symbol,t,pusher());else{const t=function tryGetClassByExtendingIdentifier(e){return tryGetClassExtendingExpressionWithTypeArguments(climbPastPropertyAccess(e).parent)}(e);t&&(!function findSuperConstructorAccesses(e,t){const n=getClassConstructorSymbol(e.symbol);if(!n||!n.declarations)return;for(const e of n.declarations){h.assert(177===e.kind);const n=e.body;n&&forEachDescendantOfKind(n,108,e=>{isCallExpressionTarget(e)&&t(e)})}}(t,pusher()),function findInheritedConstructorReferences(e,t){if(function hasOwnConstructor(e){return!!getClassConstructorSymbol(e.symbol)}(e))return;const n=e.symbol,r=t.createSearch(void 0,n,void 0);getReferencesInContainerOrFiles(n,t,r)}(t,r))}}(o,e,n,r);break;case 2:!function addClassStaticThisReferences(e,t,n){addReference(e,t.symbol,n);const r=e.parent;if(2===n.options.use||!isClassLike(r))return;h.assert(r.name===e);const i=n.referenceAdder(t.symbol);for(const e of r.members)isMethodOrAccessor(e)&&isStatic(e)&&e.body&&e.body.forEachChild(function cb(e){110===e.kind?i(e):isFunctionLike(e)||isClassLike(e)||e.forEachChild(cb)})}(o,n,r);break;default:h.assertNever(r.specialSearchKind)}isInJSFile(o)&&isBindingElement(o.parent)&&isVariableDeclarationInitializedToBareOrAccessedRequire(o.parent.parent.parent)&&(a=o.parent.symbol,!a)||function getImportOrExportReferences(e,t,n,r){const i=getImportOrExportSymbol(e,t,r.checker,1===n.comingFrom);if(!i)return;const{symbol:o}=i;0===i.kind?isForRenameWithPrefixAndSuffixText(r.options)||searchForImportedSymbol(o,r):searchForImportsOfExport(e,o,i.exportInfo,r)}(o,a,n,r)}else(function getReferenceForShorthandProperty({flags:e,valueDeclaration:t},n,r){const i=r.checker.getShorthandAssignmentValueSymbol(t),o=t&&getNameOfDeclaration(t);33554432&e||!o||!n.includes(i)||addReference(o,i,r)})(a,n,r)}function getReferencesAtExportSpecifier(e,t,n,r,i,o,a){h.assert(!a||!!i.options.providePrefixAndSuffixTextForRename,"If alwaysGetReferences is true, then prefix/suffix text must be enabled");const{parent:s,propertyName:c,name:l}=n,d=s.parent,p=getLocalSymbolForExportSpecifier(e,t,n,i.checker);if(a||r.includes(p)){if(c?e===c?(d.moduleSpecifier||addRef(),o&&2!==i.options.use&&i.markSeenReExportRHS(l)&&addReference(l,h.checkDefined(n.symbol),i)):i.markSeenReExportRHS(e)&&addRef():2===i.options.use&&moduleExportNameIsDefault(l)||addRef(),!isForRenameWithPrefixAndSuffixText(i.options)||a){const t=moduleExportNameIsDefault(e)||moduleExportNameIsDefault(n.name)?1:0,r=h.checkDefined(n.symbol),o=getExportInfo(r,t,i.checker);o&&searchForImportsOfExport(e,r,o,i)}if(1!==r.comingFrom&&d.moduleSpecifier&&!c&&!isForRenameWithPrefixAndSuffixText(i.options)){const e=i.checker.getExportSpecifierLocalTargetSymbol(n);e&&searchForImportedSymbol(e,i)}}function addRef(){o&&addReference(e,p,i)}}function getLocalSymbolForExportSpecifier(e,t,n,r){return function isExportSpecifierAlias(e,t){const{parent:n,propertyName:r,name:i}=t;return h.assert(r===e||i===e),r?r===e:!n.parent.moduleSpecifier}(e,n)&&r.getExportSpecifierLocalTargetSymbol(n)||t}function addReference(e,t,n){const{kind:r,symbol:i}="kind"in t?t:{kind:void 0,symbol:t};if(2===n.options.use&&90===e.kind)return;const o=n.referenceAdder(i);n.options.implementations?function addImplementationReferences(e,t,n){if(isDeclarationName(e)&&function isImplementation(e){return 33554432&e.flags?!(isInterfaceDeclaration(e)||isTypeAliasDeclaration(e)):isVariableLike(e)?hasInitializer(e):isFunctionLikeDeclaration(e)?!!e.body:isClassLike(e)||isModuleOrEnumDeclaration(e)}(e.parent))return void t(e);if(80!==e.kind)return;305===e.parent.kind&&getReferenceEntriesForShorthandPropertyAssignment(e,n.checker,t);const r=getContainingNodeIfInHeritageClause(e);if(r)return void t(r);const i=findAncestor(e,e=>!isQualifiedName(e.parent)&&!isTypeNode(e.parent)&&!isTypeElement(e.parent)),o=i.parent;if(hasType(o)&&o.type===i&&n.markSeenContainingTypeReference(o))if(hasInitializer(o))addIfImplementation(o.initializer);else if(isFunctionLike(o)&&o.body){const e=o.body;242===e.kind?forEachReturnStatement(e,e=>{e.expression&&addIfImplementation(e.expression)}):addIfImplementation(e)}else(isAssertionExpression(o)||isSatisfiesExpression(o))&&addIfImplementation(o.expression);function addIfImplementation(e){isImplementationExpression(e)&&t(e)}}(e,o,n):o(e,r)}function getClassConstructorSymbol(e){return e.members&&e.members.get("__constructor")}function getContainingNodeIfInHeritageClause(e){return isIdentifier(e)||isPropertyAccessExpression(e)?getContainingNodeIfInHeritageClause(e.parent):isExpressionWithTypeArguments(e)?tryCast(e.parent.parent,or(isClassLike,isInterfaceDeclaration)):void 0}function isImplementationExpression(e){switch(e.kind){case 218:return isImplementationExpression(e.expression);case 220:case 219:case 211:case 232:case 210:return!0;default:return!1}}function explicitlyInheritsFrom(e,t,n,r){if(e===t)return!0;const i=getSymbolId(e)+","+getSymbolId(t),o=n.get(i);if(void 0!==o)return o;n.set(i,!1);const a=!!e.declarations&&e.declarations.some(e=>getAllSuperTypeNodes(e).some(e=>{const i=r.getTypeAtLocation(e);return!!i&&!!i.symbol&&explicitlyInheritsFrom(i.symbol,t,n,r)}));return n.set(i,a),a}function isParameterName(e){return 80===e.kind&&170===e.parent.kind&&e.parent.name===e}function populateSearchSymbolSet(e,t,n,r,i,o){const a=[];return forEachRelatedSymbol(e,t,n,r,!(r&&i),(t,n,r)=>{r&&isStaticSymbol(e)!==isStaticSymbol(r)&&(r=void 0),a.push(r||n||t)},()=>!o),a}function forEachRelatedSymbol(e,t,n,r,i,o,a){const s=getContainingObjectLiteralElement(t);if(s){const e=n.getShorthandAssignmentValueSymbol(t.parent);if(e&&r)return o(e,void 0,void 0,3);const i=n.getContextualType(s.parent),a=i&&firstDefined(getPropertySymbolsFromContextualType(s,n,i,!0),e=>fromRoot(e,4));if(a)return a;const c=function getPropertySymbolOfDestructuringAssignment(e,t){return isArrayLiteralOrObjectLiteralDestructuringPattern(e.parent.parent)?t.getPropertySymbolOfDestructuringAssignment(e):void 0}(t,n),l=c&&o(c,void 0,void 0,4);if(l)return l;const d=e&&o(e,void 0,void 0,3);if(d)return d}const c=getMergedAliasedSymbolOfNamespaceExportDeclaration(t,e,n);if(c){const e=o(c,void 0,void 0,1);if(e)return e}const l=fromRoot(e);if(l)return l;if(e.valueDeclaration&&isParameterPropertyDeclaration(e.valueDeclaration,e.valueDeclaration.parent)){const t=n.getSymbolsOfParameterPropertyDeclaration(cast(e.valueDeclaration,isParameter),e.name);return h.assert(2===t.length&&!!(1&t[0].flags)&&!!(4&t[1].flags)),fromRoot(1&e.flags?t[1]:t[0])}const d=getDeclarationOfKind(e,282);if(!r||d&&!d.propertyName){const e=d&&n.getExportSpecifierLocalTargetSymbol(d);if(e){const t=o(e,void 0,void 0,1);if(t)return t}}if(!r){let r;return r=i?isObjectBindingElementWithoutPropertyName(t.parent)?getPropertySymbolFromBindingElement(n,t.parent):void 0:getPropertySymbolOfObjectBindingPatternWithoutPropertyName(e,n),r&&fromRoot(r,4)}h.assert(r);if(i){const t=getPropertySymbolOfObjectBindingPatternWithoutPropertyName(e,n);return t&&fromRoot(t,4)}function fromRoot(e,t){return firstDefined(n.getRootSymbols(e),r=>o(e,r,void 0,t)||(r.parent&&96&r.parent.flags&&a(r)?function getPropertySymbolsFromBaseTypes(e,t,n,r){const i=new Set;return recur(e);function recur(e){if(96&e.flags&&addToSeen(i,e))return firstDefined(e.declarations,e=>firstDefined(getAllSuperTypeNodes(e),e=>{const i=n.getTypeAtLocation(e),o=i.symbol&&n.getPropertyOfType(i,t);return o&&firstDefined(n.getRootSymbols(o),r)||i.symbol&&recur(i.symbol)}))}}(r.parent,r.name,n,n=>o(e,r,n,t)):void 0))}function getPropertySymbolOfObjectBindingPatternWithoutPropertyName(e,t){const n=getDeclarationOfKind(e,209);if(n&&isObjectBindingElementWithoutPropertyName(n))return getPropertySymbolFromBindingElement(t,n)}}function isStaticSymbol(e){if(!e.valueDeclaration)return!1;return!!(256&getEffectiveModifierFlags(e.valueDeclaration))}function getIntersectingMeaningFromDeclarations(e,t){let n=getMeaningFromLocation(e);const{declarations:r}=t;if(r){let e;do{e=n;for(const e of r){const t=getMeaningFromDeclaration(e);t&n&&(n|=t)}}while(n!==e)}return n}function getReferenceEntriesForShorthandPropertyAssignment(e,t,n){const r=t.getSymbolAtLocation(e),i=t.getShorthandAssignmentValueSymbol(r.valueDeclaration);if(i)for(const e of i.getDeclarations())1&getMeaningFromDeclaration(e)&&n(e)}function forEachDescendantOfKind(e,t,n){forEachChild(e,e=>{e.kind===t&&n(e),forEachDescendantOfKind(e,t,n)})}function isForRenameWithPrefixAndSuffixText(e){return 2===e.use&&e.providePrefixAndSuffixTextForRename}e.eachExportReference=function eachExportReference(e,t,n,r,i,o,a,s){const c=createImportTracker(e,new Set(e.map(e=>e.fileName)),t,n),{importSearches:l,indirectUsers:d,singleReferences:p}=c(r,{exportKind:a?1:0,exportingModuleSymbol:i},!1);for(const[e]of l)s(e);for(const e of p)isIdentifier(e)&&isImportTypeNode(e.parent)&&s(e);for(const e of d)for(const n of getPossibleSymbolReferenceNodes(e,a?"default":o)){const e=t.getSymbolAtLocation(n),i=some(null==e?void 0:e.declarations,e=>!!tryCast(e,isExportAssignment));!isIdentifier(n)||isImportOrExportSpecifier(n.parent)||e!==r&&!i||s(n)}},e.isSymbolReferencedInFile=function isSymbolReferencedInFile(e,t,n,r=n){return eachSymbolReferenceInFile(e,t,n,()=>!0,r)||!1},e.eachSymbolReferenceInFile=eachSymbolReferenceInFile,e.getTopMostDeclarationNamesInFile=function getTopMostDeclarationNamesInFile(e,t){return filter(getPossibleSymbolReferenceNodes(t,e),e=>!!getDeclarationFromName(e)).reduce((e,t)=>{const n=function getDepth(e){let t=0;for(;e;)e=getContainerNode(e),t++;return t}(t);return some(e.declarationNames)&&n!==e.depth?ne===i)&&r(t,a))return!0}return!1},e.getIntersectingMeaningFromDeclarations=getIntersectingMeaningFromDeclarations,e.getReferenceEntriesForShorthandPropertyAssignment=getReferenceEntriesForShorthandPropertyAssignment})(km||(km={}));var Pm={};function getDefinitionAtPosition(e,t,n,r,i){var o;const a=getReferenceAtPosition(t,n,e),s=a&&[(c=a.reference.fileName,d=a.fileName,p=a.unverified,{fileName:d,textSpan:createTextSpanFromBounds(0,0),kind:"script",name:c,containerName:void 0,containerKind:void 0,unverified:p})]||l;var c,d,p;if(null==a?void 0:a.file)return s;const u=getTouchingPropertyName(t,n);if(u===t)return;const{parent:m}=u,_=e.getTypeChecker();if(164===u.kind||isIdentifier(u)&&isJSDocOverrideTag(m)&&m.tagName===u){const e=function getDefinitionFromOverriddenMember(e,t){const n=findAncestor(t,isClassElement);if(!n||!n.name)return;const r=findAncestor(n,isClassLike);if(!r)return;const i=getEffectiveBaseTypeNode(r);if(!i)return;const o=skipParentheses(i.expression),a=isClassExpression(o)?o.symbol:e.getSymbolAtLocation(o);if(!a)return;const s=hasStaticModifier(n)?e.getTypeOfSymbol(a):e.getDeclaredTypeOfSymbol(a);let c;if(isComputedPropertyName(n.name)){const t=e.getSymbolAtLocation(n.name);if(!t)return;c=isKnownSymbol(t)?find(e.getPropertiesOfType(s),e=>e.escapedName===t.escapedName):e.getPropertyOfType(s,unescapeLeadingUnderscores(t.escapedName))}else c=e.getPropertyOfType(s,unescapeLeadingUnderscores(getTextOfPropertyName(n.name)));if(!c)return;return getDefinitionFromSymbol(e,c,t)}(_,u);if(void 0!==e||164!==u.kind)return e||l}if(isJumpStatementTarget(u)){const e=getTargetLabel(u.parent,u.text);return e?[createDefinitionInfoFromName(_,e,"label",u.text,void 0)]:void 0}switch(u.kind){case 90:if(!isDefaultClause(u.parent))break;case 84:const e=findAncestor(u.parent,isSwitchStatement);if(e)return[createDefinitionInfoFromSwitch(e,t)]}let f;switch(u.kind){case 107:case 135:case 127:f=isFunctionLikeDeclaration;const e=findAncestor(u,f);return e?[createDefinitionFromSignatureDeclaration(_,e)]:void 0}if(isStaticModifier(u)&&isClassStaticBlockDeclaration(u.parent)){const e=u.parent.parent,{symbol:t,failedAliasResolution:n}=getSymbol(e,_,i),r=filter(e.members,isClassStaticBlockDeclaration),o=t?_.symbolToString(t,e):"",a=u.getSourceFile();return map(r,e=>{let{pos:t}=moveRangePastModifiers(e);return t=skipTrivia(a.text,t),createDefinitionInfoFromName(_,e,"constructor","static {}",o,!1,n,{start:t,length:6})})}let{symbol:g,failedAliasResolution:y}=getSymbol(u,_,i),h=u;if(r&&y){const e=forEach([u,...(null==g?void 0:g.declarations)||l],e=>findAncestor(e,isAnyImportOrBareOrAccessedRequire)),t=e&&tryGetModuleSpecifierFromDeclaration(e);t&&(({symbol:g,failedAliasResolution:y}=getSymbol(t,_,i)),h=t)}if(!g&&isModuleSpecifierLike(h)){const n=null==(o=e.getResolvedModuleFromModuleSpecifier(h,t))?void 0:o.resolvedModule;if(n)return[{name:h.text,fileName:n.resolvedFileName,containerName:void 0,containerKind:void 0,kind:"script",textSpan:createTextSpan(0,0),failedAliasResolution:y,isAmbient:isDeclarationFileName(n.resolvedFileName),unverified:h!==u}]}if(isModifier(u)&&(isClassElement(m)||isNamedDeclaration(m))&&(g=m.symbol),!g)return concatenate(s,function getDefinitionInfoForIndexSignatures(e,t){return mapDefined(t.getIndexInfosAtLocation(e),e=>e.declaration&&createDefinitionFromSignatureDeclaration(t,e.declaration))}(u,_));if(r&&every(g.declarations,e=>e.getSourceFile().fileName===t.fileName))return;const T=function tryGetSignatureDeclaration(e,t){const n=function getAncestorCallLikeExpression(e){const t=findAncestor(e,e=>!isRightSideOfPropertyAccess(e)),n=null==t?void 0:t.parent;return n&&isCallLikeExpression(n)&&getInvokedExpression(n)===t?n:void 0}(t),r=n&&e.getResolvedSignature(n);return tryCast(r&&r.declaration,e=>isFunctionLike(e)&&!isFunctionTypeNode(e))}(_,u);if(T&&(!isJsxOpeningLikeElement(u.parent)||!function isJsxConstructorLike(e){switch(e.kind){case 177:case 186:case 180:case 181:return!0;default:return!1}}(T))){const e=createDefinitionFromSignatureDeclaration(_,T,y);let declarationFilter=e=>e!==T;if(_.getRootSymbols(g).some(e=>function symbolMatchesSignature(e,t){var n;return e===t.symbol||e===t.symbol.parent||isAssignmentExpression(t.parent)||!isCallLikeExpression(t.parent)&&e===(null==(n=tryCast(t.parent,canHaveSymbol))?void 0:n.symbol)}(e,T))){if(!isConstructorDeclaration(T))return[e];declarationFilter=e=>e!==T&&(isClassDeclaration(e)||isClassExpression(e))}const t=getDefinitionFromSymbol(_,g,u,y,declarationFilter)||l;return 108===u.kind?[e,...t]:[...t,e]}if(305===u.parent.kind){const e=_.getShorthandAssignmentValueSymbol(g.valueDeclaration);return concatenate((null==e?void 0:e.declarations)?e.declarations.map(t=>createDefinitionInfo(t,_,e,u,!1,y)):l,getDefinitionFromObjectLiteralElement(_,u))}if(isPropertyName(u)&&isBindingElement(m)&&isObjectBindingPattern(m.parent)&&u===(m.propertyName||m.name)){const e=getNameFromPropertyName(u),t=_.getTypeAtLocation(m.parent);return void 0===e?l:flatMap(t.isUnion()?t.types:[t],t=>{const n=t.getProperty(e);return n&&getDefinitionFromSymbol(_,n,u)})}const S=getDefinitionFromObjectLiteralElement(_,u);return concatenate(s,S.length?S:getDefinitionFromSymbol(_,g,u,y))}function getDefinitionFromObjectLiteralElement(e,t){const n=getContainingObjectLiteralElement(t);if(n){const r=n&&e.getContextualType(n.parent);if(r)return flatMap(getPropertySymbolsFromContextualType(n,e,r,!1),n=>getDefinitionFromSymbol(e,n,t))}return l}function getReferenceAtPosition(e,t,n){var r,i;const o=findReferenceInPosition(e.referencedFiles,t);if(o){const t=n.getSourceFileFromReference(e,o);return t&&{reference:o,fileName:t.fileName,file:t,unverified:!1}}const a=findReferenceInPosition(e.typeReferenceDirectives,t);if(a){const t=null==(r=n.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(a,e))?void 0:r.resolvedTypeReferenceDirective,i=t&&n.getSourceFile(t.resolvedFileName);return i&&{reference:a,fileName:i.fileName,file:i,unverified:!1}}const s=findReferenceInPosition(e.libReferenceDirectives,t);if(s){const e=n.getLibFileFromReference(s);return e&&{reference:s,fileName:e.fileName,file:e,unverified:!1}}if(e.imports.length||e.moduleAugmentations.length){const r=getTouchingToken(e,t);let o;if(isModuleSpecifierLike(r)&&isExternalModuleNameRelative(r.text)&&(o=n.getResolvedModuleFromModuleSpecifier(r,e))){const t=null==(i=o.resolvedModule)?void 0:i.resolvedFileName,a=t||resolvePath(getDirectoryPath(e.fileName),r.text);return{file:n.getSourceFile(a),fileName:a,reference:{pos:r.getStart(),end:r.getEnd(),fileName:r.text},unverified:!t}}}}i(Pm,{createDefinitionInfo:()=>createDefinitionInfo,getDefinitionAndBoundSpan:()=>getDefinitionAndBoundSpan,getDefinitionAtPosition:()=>getDefinitionAtPosition,getReferenceAtPosition:()=>getReferenceAtPosition,getTypeDefinitionAtPosition:()=>getTypeDefinitionAtPosition});var Dm=new Set(["Array","ArrayLike","ReadonlyArray","Promise","PromiseLike","Iterable","IterableIterator","AsyncIterable","Set","WeakSet","ReadonlySet","Map","WeakMap","ReadonlyMap","Partial","Required","Readonly","Pick","Omit"]);function shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(e,t){if(!t.aliasSymbol)return!1;const n=t.aliasSymbol.name;if(!Dm.has(n))return!1;const r=e.resolveName(n,void 0,788968,!1);return!!r&&r===t.aliasSymbol}function getFirstTypeArgumentDefinitions(e,t,n,r){var i,o;if(4&getObjectFlags(t)&&function shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(e,t){const n=t.symbol.name;if(!Dm.has(n))return!1;const r=e.resolveName(n,void 0,788968,!1);return!!r&&r===t.target.symbol}(e,t))return definitionFromType(e.getTypeArguments(t)[0],e,n,r);if(shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(e,t)&&t.aliasTypeArguments)return definitionFromType(t.aliasTypeArguments[0],e,n,r);if(32&getObjectFlags(t)&&t.target&&shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(e,t.target)){const a=null==(o=null==(i=t.aliasSymbol)?void 0:i.declarations)?void 0:o[0];if(a&&isTypeAliasDeclaration(a)&&isTypeReferenceNode(a.type)&&a.type.typeArguments)return definitionFromType(e.getTypeAtLocation(a.type.typeArguments[0]),e,n,r)}return[]}function getTypeDefinitionAtPosition(e,t,n){const r=getTouchingPropertyName(t,n);if(r===t)return;if(isImportMeta(r.parent)&&r.parent.name===r)return definitionFromType(e.getTypeAtLocation(r.parent),e,r.parent,!1);let{symbol:i,failedAliasResolution:o}=getSymbol(r,e,!1);if(isModifier(r)&&(isClassElement(r.parent)||isNamedDeclaration(r.parent))&&(i=r.parent.symbol,o=!1),!i)return;const a=e.getTypeOfSymbolAtLocation(i,r),s=function tryGetReturnTypeOfFunction(e,t,n){if(t.symbol===e||e.valueDeclaration&&t.symbol&&isVariableDeclaration(e.valueDeclaration)&&e.valueDeclaration.initializer===t.symbol.valueDeclaration){const e=t.getCallSignatures();if(1===e.length)return n.getReturnTypeOfSignature(first(e))}return}(i,a,e),c=s&&definitionFromType(s,e,r,o),[l,d]=c&&0!==c.length?[s,c]:[a,definitionFromType(a,e,r,o)];return d.length?[...getFirstTypeArgumentDefinitions(e,l,r,o),...d]:!(111551&i.flags)&&788968&i.flags?getDefinitionFromSymbol(e,skipAlias(i,e),r,o):void 0}function definitionFromType(e,t,n,r){return flatMap(!e.isUnion()||32&e.flags?[e]:e.types,e=>e.symbol&&getDefinitionFromSymbol(t,e.symbol,n,r))}function getDefinitionAndBoundSpan(e,t,n){const r=getDefinitionAtPosition(e,t,n);if(!r||0===r.length)return;const i=findReferenceInPosition(t.referencedFiles,n)||findReferenceInPosition(t.typeReferenceDirectives,n)||findReferenceInPosition(t.libReferenceDirectives,n);if(i)return{definitions:r,textSpan:createTextSpanFromRange(i)};const o=getTouchingPropertyName(t,n);return{definitions:r,textSpan:createTextSpan(o.getStart(),o.getWidth())}}function getSymbol(e,t,n){const r=t.getSymbolAtLocation(e);let i=!1;if((null==r?void 0:r.declarations)&&2097152&r.flags&&!n&&function shouldSkipAlias(e,t){if(80!==e.kind&&(11!==e.kind||!isImportOrExportSpecifier(e.parent)))return!1;if(e.parent===t)return!0;if(275===t.kind)return!1;return!0}(e,r.declarations[0])){const e=t.getAliasedSymbol(r);if(e.declarations)return{symbol:e};i=!0}return{symbol:r,failedAliasResolution:i}}function getDefinitionFromSymbol(e,t,n,r,i){const o=void 0!==i?filter(t.declarations,i):t.declarations,a=!i&&(function getConstructSignatureDefinition(){if(32&t.flags&&!(19&t.flags)&&(isNewExpressionTarget(n)||137===n.kind)){const e=find(o,isClassLike);return e&&getSignatureDefinition(e.members,!0)}}()||function getCallSignatureDefinition(){return isCallOrNewExpressionTarget(n)||isNameOfFunctionDeclaration(n)?getSignatureDefinition(o,!1):void 0}());if(a)return a;const s=filter(o,e=>!function isExpandoDeclaration(e){if(!isAssignmentDeclaration(e))return!1;const t=findAncestor(e,e=>!!isAssignmentExpression(e)||!isAssignmentDeclaration(e)&&"quit");return!!t&&5===getAssignmentDeclarationKind(t)}(e));return map(some(s)?s:o,i=>createDefinitionInfo(i,e,t,n,!1,r));function getSignatureDefinition(i,o){if(!i)return;const a=i.filter(o?isConstructorDeclaration:isFunctionLike),s=a.filter(e=>!!e.body);return a.length?0!==s.length?s.map(r=>createDefinitionInfo(r,e,t,n)):[createDefinitionInfo(last(a),e,t,n,!1,r)]:void 0}}function createDefinitionInfo(e,t,n,r,i,o){const a=t.symbolToString(n),s=Km.getSymbolKind(t,n,r),c=n.parent?t.symbolToString(n.parent,r):"";return createDefinitionInfoFromName(t,e,s,a,c,i,o)}function createDefinitionInfoFromName(e,t,n,r,i,o,a,s){const c=t.getSourceFile();if(!s){s=createTextSpanFromNode(getNameOfDeclaration(t)||t,c)}return{fileName:c.fileName,textSpan:s,kind:n,name:r,containerKind:void 0,containerName:i,...vm.toContextSpan(s,c,vm.getContextNode(t)),isLocal:!isDefinitionVisible(e,t),isAmbient:!!(33554432&t.flags),unverified:o,failedAliasResolution:a}}function createDefinitionInfoFromSwitch(e,t){const n=vm.getContextNode(e),r=createTextSpanFromNode(isContextWithStartAndEndNode(n)?n.start:n,t);return{fileName:t.fileName,textSpan:r,kind:"keyword",name:"switch",containerKind:void 0,containerName:"",...vm.toContextSpan(r,t,n),isLocal:!0,isAmbient:!1,unverified:!1,failedAliasResolution:void 0}}function isDefinitionVisible(e,t){if(e.isDeclarationVisible(t))return!0;if(!t.parent)return!1;if(hasInitializer(t.parent)&&t.parent.initializer===t)return isDefinitionVisible(e,t.parent);switch(t.kind){case 173:case 178:case 179:case 175:if(hasEffectiveModifier(t,2))return!1;case 177:case 304:case 305:case 211:case 232:case 220:case 219:return isDefinitionVisible(e,t.parent);default:return!1}}function createDefinitionFromSignatureDeclaration(e,t,n){return createDefinitionInfo(t,e,t.symbol,t,!1,n)}function findReferenceInPosition(e,t){return find(e,e=>textRangeContainsPositionInclusive(e,t))}var Im={};i(Im,{provideInlayHints:()=>provideInlayHints});var leadingParameterNameCommentRegexFactory=e=>new RegExp(`^\\s?/\\*\\*?\\s?${e}\\s?\\*\\/\\s?$`);function shouldShowLiteralParameterNameHintsOnly(e){return"literals"===e.includeInlayParameterNameHints}function shouldUseInteractiveInlayHints(e){return!0===e.interactiveInlayHints}function provideInlayHints(e){const{file:t,program:n,span:r,cancellationToken:i,preferences:o}=e,a=t.text,s=n.getCompilerOptions(),c=getQuotePreference(t,o),l=n.getTypeChecker(),d=[];return function visitor(e){if(!e||0===e.getFullWidth())return;switch(e.kind){case 268:case 264:case 265:case 263:case 232:case 219:case 175:case 220:i.throwIfCancellationRequested()}if(!textSpanIntersectsWith(r,e.pos,e.getFullWidth()))return;if(isTypeNode(e)&&!isExpressionWithTypeArguments(e))return;o.includeInlayVariableTypeHints&&isVariableDeclaration(e)||o.includeInlayPropertyDeclarationTypeHints&&isPropertyDeclaration(e)?visitVariableLikeDeclaration(e):o.includeInlayEnumMemberValueHints&&isEnumMember(e)?function visitEnumMember(e){if(e.initializer)return;const t=l.getConstantValue(e);void 0!==t&&function addEnumMemberValueHints(e,t){d.push({text:`= ${e}`,position:t,kind:"Enum",whitespaceBefore:!0})}(t.toString(),e.end)}(e):!function shouldShowParameterNameHints(e){return"literals"===e.includeInlayParameterNameHints||"all"===e.includeInlayParameterNameHints}(o)||!isCallExpression(e)&&!isNewExpression(e)?(o.includeInlayFunctionParameterTypeHints&&isFunctionLikeDeclaration(e)&&hasContextSensitiveParameters(e)&&function visitFunctionLikeForParameterType(e){const t=l.getSignatureFromDeclaration(e);if(!t)return;let n=0;for(const r of e.parameters)isHintableDeclaration(r)&&addParameterTypeHint(r,parameterIsThisKeyword(r)?t.thisParameter:t.parameters[n]),parameterIsThisKeyword(r)||n++}(e),o.includeInlayFunctionLikeReturnTypeHints&&function isSignatureSupportingReturnAnnotation(e){return isArrowFunction(e)||isFunctionExpression(e)||isFunctionDeclaration(e)||isMethodDeclaration(e)||isGetAccessorDeclaration(e)}(e)&&function visitFunctionDeclarationLikeForReturnType(e){if(isArrowFunction(e)&&!findChildOfKind(e,21,t))return;if(getEffectiveReturnTypeNode(e)||!e.body)return;const n=l.getSignatureFromDeclaration(e);if(!n)return;const r=l.getTypePredicateOfSignature(n);if(null==r?void 0:r.type){const n=function typePredicateToInlayHintParts(e){if(!shouldUseInteractiveInlayHints(o))return function printTypePredicateInSingleLine(e){const n=71286784,r=ka();return usingSingleLineStringWriter(i=>{const o=l.typePredicateToTypePredicateNode(e,void 0,n);h.assertIsDefined(o,"should always get typePredicateNode"),r.writeNode(4,o,t,i)})}(e);const n=71286784,r=l.typePredicateToTypePredicateNode(e,void 0,n);return h.assertIsDefined(r,"should always get typenode"),getInlayHintDisplayParts(r)}(r);if(n)return void addTypeHints(n,getTypeAnnotationPosition(e))}const i=l.getReturnTypeOfSignature(n);if(isModuleReferenceType(i))return;const a=typeToInlayHintParts(i);a&&addTypeHints(a,getTypeAnnotationPosition(e))}(e)):function visitCallOrNewExpression(e){const t=e.arguments;if(!t||!t.length)return;const n=l.getResolvedSignature(e);if(void 0===n)return;let r=0;for(const e of t){const t=skipParentheses(e);if(shouldShowLiteralParameterNameHintsOnly(o)&&!isHintableLiteral(t)){r++;continue}let i=0;if(isSpreadElement(t)){const e=l.getTypeAtLocation(t.expression);if(l.isTupleType(e)){const{elementFlags:t,fixedLength:n}=e.target;if(0===n)continue;const r=findIndex(t,e=>!(1&e));(r<0?n:r)>0&&(i=r<0?n:r)}}const a=l.getParameterIdentifierInfoAtPosition(n,r);if(r+=i||1,a){const{parameter:n,parameterName:r,isRestParameter:i}=a;if(!(o.includeInlayParameterNameHintsWhenArgumentMatchesName||!identifierOrAccessExpressionPostfixMatchesParameterName(t,r))&&!i)continue;const s=unescapeLeadingUnderscores(r);if(leadingCommentsContainsParameterName(t,s))continue;addParameterHints(s,n,e.getStart(),i)}}}(e);return forEachChild(e,visitor)}(t),d;function addParameterHints(e,t,n,r){let i,a=`${r?"...":""}${e}`;shouldUseInteractiveInlayHints(o)?(i=[getNodeDisplayPart(a,t),{text:":"}],a=""):a+=":",d.push({text:a,position:n,kind:"Parameter",whitespaceAfter:!0,displayParts:i})}function addTypeHints(e,t){d.push({text:"string"==typeof e?`: ${e}`:"",displayParts:"string"==typeof e?void 0:[{text:": "},...e],position:t,kind:"Type",whitespaceBefore:!0})}function isModuleReferenceType(e){return e.symbol&&1536&e.symbol.flags}function visitVariableLikeDeclaration(e){if(void 0===e.initializer&&(!isPropertyDeclaration(e)||1&l.getTypeAtLocation(e).flags)||isBindingPattern(e.name)||isVariableDeclaration(e)&&!isHintableDeclaration(e))return;if(getEffectiveTypeAnnotationNode(e))return;const t=l.getTypeAtLocation(e);if(isModuleReferenceType(t))return;const n=typeToInlayHintParts(t);if(n){const t="string"==typeof n?n:n.map(e=>e.text).join("");if(!1===o.includeInlayVariableTypeHintsWhenTypeMatchesName&&equateStringsCaseInsensitive(e.name.getText(),t))return;addTypeHints(n,e.name.end)}}function identifierOrAccessExpressionPostfixMatchesParameterName(e,t){return isIdentifier(e)?e.text===t:!!isPropertyAccessExpression(e)&&e.name.text===t}function leadingCommentsContainsParameterName(e,n){if(!isIdentifierText(n,zn(s),getLanguageVariant(t.scriptKind)))return!1;const r=getLeadingCommentRanges(a,e.pos);if(!(null==r?void 0:r.length))return!1;const i=leadingParameterNameCommentRegexFactory(n);return some(r,e=>i.test(a.substring(e.pos,e.end)))}function isHintableLiteral(e){switch(e.kind){case 225:{const t=e.operand;return isLiteralExpression(t)||isIdentifier(t)&&isInfinityOrNaNString(t.escapedText)}case 112:case 97:case 106:case 15:case 229:return!0;case 80:{const t=e.escapedText;return function isUndefined(e){return"undefined"===e}(t)||isInfinityOrNaNString(t)}}return isLiteralExpression(e)}function getTypeAnnotationPosition(e){const n=findChildOfKind(e,22,t);return n?n.end:e.parameters.end}function addParameterTypeHint(e,t){if(getEffectiveTypeAnnotationNode(e)||void 0===t)return;const n=function getParameterDeclarationTypeHints(e){const t=e.valueDeclaration;if(!t||!isParameter(t))return;const n=l.getTypeOfSymbolAtLocation(e,t);if(isModuleReferenceType(n))return;return typeToInlayHintParts(n)}(t);void 0!==n&&addTypeHints(n,e.questionToken?e.questionToken.end:e.name.end)}function typeToInlayHintParts(e){if(!shouldUseInteractiveInlayHints(o))return function printTypeInSingleLine(e){const n=ka();return usingSingleLineStringWriter(r=>{const i=l.typeToTypeNode(e,void 0,71286784);h.assertIsDefined(i,"should always get typenode"),n.writeNode(4,i,t,r)})}(e);const n=l.typeToTypeNode(e,void 0,71286784);return h.assertIsDefined(n,"should always get typeNode"),getInlayHintDisplayParts(n)}function getInlayHintDisplayParts(e){const t=[];return visitForDisplayParts(e),t;function visitForDisplayParts(e){var n,r;if(!e)return;const i=tokenToString(e.kind);if(i)t.push({text:i});else if(isLiteralExpression(e))t.push({text:getLiteralText2(e)});else switch(e.kind){case 80:h.assertNode(e,isIdentifier);const i=idText(e),o=e.symbol&&e.symbol.declarations&&e.symbol.declarations.length&&getNameOfDeclaration(e.symbol.declarations[0]);o?t.push(getNodeDisplayPart(i,o)):t.push({text:i});break;case 167:h.assertNode(e,isQualifiedName),visitForDisplayParts(e.left),t.push({text:"."}),visitForDisplayParts(e.right);break;case 183:h.assertNode(e,isTypePredicateNode),e.assertsModifier&&t.push({text:"asserts "}),visitForDisplayParts(e.parameterName),e.type&&(t.push({text:" is "}),visitForDisplayParts(e.type));break;case 184:h.assertNode(e,isTypeReferenceNode),visitForDisplayParts(e.typeName),e.typeArguments&&(t.push({text:"<"}),visitDisplayPartList(e.typeArguments,", "),t.push({text:">"}));break;case 169:h.assertNode(e,isTypeParameterDeclaration),e.modifiers&&visitDisplayPartList(e.modifiers," "),visitForDisplayParts(e.name),e.constraint&&(t.push({text:" extends "}),visitForDisplayParts(e.constraint)),e.default&&(t.push({text:" = "}),visitForDisplayParts(e.default));break;case 170:h.assertNode(e,isParameter),e.modifiers&&visitDisplayPartList(e.modifiers," "),e.dotDotDotToken&&t.push({text:"..."}),visitForDisplayParts(e.name),e.questionToken&&t.push({text:"?"}),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 186:h.assertNode(e,isConstructorTypeNode),t.push({text:"new "}),visitParametersAndTypeParameters(e),t.push({text:" => "}),visitForDisplayParts(e.type);break;case 187:h.assertNode(e,isTypeQueryNode),t.push({text:"typeof "}),visitForDisplayParts(e.exprName),e.typeArguments&&(t.push({text:"<"}),visitDisplayPartList(e.typeArguments,", "),t.push({text:">"}));break;case 188:h.assertNode(e,isTypeLiteralNode),t.push({text:"{"}),e.members.length&&(t.push({text:" "}),visitDisplayPartList(e.members,"; "),t.push({text:" "})),t.push({text:"}"});break;case 189:h.assertNode(e,isArrayTypeNode),visitForDisplayParts(e.elementType),t.push({text:"[]"});break;case 190:h.assertNode(e,isTupleTypeNode),t.push({text:"["}),visitDisplayPartList(e.elements,", "),t.push({text:"]"});break;case 203:h.assertNode(e,isNamedTupleMember),e.dotDotDotToken&&t.push({text:"..."}),visitForDisplayParts(e.name),e.questionToken&&t.push({text:"?"}),t.push({text:": "}),visitForDisplayParts(e.type);break;case 191:h.assertNode(e,isOptionalTypeNode),visitForDisplayParts(e.type),t.push({text:"?"});break;case 192:h.assertNode(e,isRestTypeNode),t.push({text:"..."}),visitForDisplayParts(e.type);break;case 193:h.assertNode(e,isUnionTypeNode),visitDisplayPartList(e.types," | ");break;case 194:h.assertNode(e,isIntersectionTypeNode),visitDisplayPartList(e.types," & ");break;case 195:h.assertNode(e,isConditionalTypeNode),visitForDisplayParts(e.checkType),t.push({text:" extends "}),visitForDisplayParts(e.extendsType),t.push({text:" ? "}),visitForDisplayParts(e.trueType),t.push({text:" : "}),visitForDisplayParts(e.falseType);break;case 196:h.assertNode(e,isInferTypeNode),t.push({text:"infer "}),visitForDisplayParts(e.typeParameter);break;case 197:h.assertNode(e,isParenthesizedTypeNode),t.push({text:"("}),visitForDisplayParts(e.type),t.push({text:")"});break;case 199:h.assertNode(e,isTypeOperatorNode),t.push({text:`${tokenToString(e.operator)} `}),visitForDisplayParts(e.type);break;case 200:h.assertNode(e,isIndexedAccessTypeNode),visitForDisplayParts(e.objectType),t.push({text:"["}),visitForDisplayParts(e.indexType),t.push({text:"]"});break;case 201:h.assertNode(e,isMappedTypeNode),t.push({text:"{ "}),e.readonlyToken&&(40===e.readonlyToken.kind?t.push({text:"+"}):41===e.readonlyToken.kind&&t.push({text:"-"}),t.push({text:"readonly "})),t.push({text:"["}),visitForDisplayParts(e.typeParameter),e.nameType&&(t.push({text:" as "}),visitForDisplayParts(e.nameType)),t.push({text:"]"}),e.questionToken&&(40===e.questionToken.kind?t.push({text:"+"}):41===e.questionToken.kind&&t.push({text:"-"}),t.push({text:"?"})),t.push({text:": "}),e.type&&visitForDisplayParts(e.type),t.push({text:"; }"});break;case 202:h.assertNode(e,isLiteralTypeNode),visitForDisplayParts(e.literal);break;case 185:h.assertNode(e,isFunctionTypeNode),visitParametersAndTypeParameters(e),t.push({text:" => "}),visitForDisplayParts(e.type);break;case 206:h.assertNode(e,isImportTypeNode),e.isTypeOf&&t.push({text:"typeof "}),t.push({text:"import("}),visitForDisplayParts(e.argument),e.assertions&&(t.push({text:", { assert: "}),visitDisplayPartList(e.assertions.assertClause.elements,", "),t.push({text:" }"})),t.push({text:")"}),e.qualifier&&(t.push({text:"."}),visitForDisplayParts(e.qualifier)),e.typeArguments&&(t.push({text:"<"}),visitDisplayPartList(e.typeArguments,", "),t.push({text:">"}));break;case 172:h.assertNode(e,isPropertySignature),(null==(n=e.modifiers)?void 0:n.length)&&(visitDisplayPartList(e.modifiers," "),t.push({text:" "})),visitForDisplayParts(e.name),e.questionToken&&t.push({text:"?"}),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 182:h.assertNode(e,isIndexSignatureDeclaration),t.push({text:"["}),visitDisplayPartList(e.parameters,", "),t.push({text:"]"}),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 174:h.assertNode(e,isMethodSignature),(null==(r=e.modifiers)?void 0:r.length)&&(visitDisplayPartList(e.modifiers," "),t.push({text:" "})),visitForDisplayParts(e.name),e.questionToken&&t.push({text:"?"}),visitParametersAndTypeParameters(e),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 180:h.assertNode(e,isCallSignatureDeclaration),visitParametersAndTypeParameters(e),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 181:h.assertNode(e,isConstructSignatureDeclaration),t.push({text:"new "}),visitParametersAndTypeParameters(e),e.type&&(t.push({text:": "}),visitForDisplayParts(e.type));break;case 208:h.assertNode(e,isArrayBindingPattern),t.push({text:"["}),visitDisplayPartList(e.elements,", "),t.push({text:"]"});break;case 207:h.assertNode(e,isObjectBindingPattern),t.push({text:"{"}),e.elements.length&&(t.push({text:" "}),visitDisplayPartList(e.elements,", "),t.push({text:" "})),t.push({text:"}"});break;case 209:h.assertNode(e,isBindingElement),visitForDisplayParts(e.name);break;case 225:h.assertNode(e,isPrefixUnaryExpression),t.push({text:tokenToString(e.operator)}),visitForDisplayParts(e.operand);break;case 204:h.assertNode(e,isTemplateLiteralTypeNode),visitForDisplayParts(e.head),e.templateSpans.forEach(visitForDisplayParts);break;case 16:h.assertNode(e,isTemplateHead),t.push({text:getLiteralText2(e)});break;case 205:h.assertNode(e,isTemplateLiteralTypeSpan),visitForDisplayParts(e.type),visitForDisplayParts(e.literal);break;case 17:h.assertNode(e,isTemplateMiddle),t.push({text:getLiteralText2(e)});break;case 18:h.assertNode(e,isTemplateTail),t.push({text:getLiteralText2(e)});break;case 198:h.assertNode(e,isThisTypeNode),t.push({text:"this"});break;case 168:h.assertNode(e,isComputedPropertyName),t.push({text:"["}),visitForDisplayParts(e.expression),t.push({text:"]"});break;default:h.failBadSyntaxKind(e)}}function visitParametersAndTypeParameters(e){e.typeParameters&&(t.push({text:"<"}),visitDisplayPartList(e.typeParameters,", "),t.push({text:">"})),t.push({text:"("}),visitDisplayPartList(e.parameters,", "),t.push({text:")"})}function visitDisplayPartList(e,n){e.forEach((e,r)=>{r>0&&t.push({text:n}),visitForDisplayParts(e)})}function getLiteralText2(e){switch(e.kind){case 11:return 0===c?`'${escapeString(e.text,39)}'`:`"${escapeString(e.text,34)}"`;case 16:case 17:case 18:{const t=e.rawText??escapeTemplateSubstitution(escapeString(e.text,96));switch(e.kind){case 16:return"`"+t+"${";case 17:return"}"+t+"${";case 18:return"}"+t+"`"}}}return e.text}}function isHintableDeclaration(e){if((isPartOfParameterDeclaration(e)||isVariableDeclaration(e)&&isVarConst(e))&&e.initializer){const t=skipParentheses(e.initializer);return!(isHintableLiteral(t)||isNewExpression(t)||isObjectLiteralExpression(t)||isAssertionExpression(t))}return!0}function getNodeDisplayPart(e,t){const n=t.getSourceFile();return{text:e,span:createTextSpanFromNode(t,n),file:n.fileName}}}var Am={};i(Am,{getDocCommentTemplateAtPosition:()=>getDocCommentTemplateAtPosition,getJSDocParameterNameCompletionDetails:()=>getJSDocParameterNameCompletionDetails,getJSDocParameterNameCompletions:()=>getJSDocParameterNameCompletions,getJSDocTagCompletionDetails:()=>getJSDocTagCompletionDetails,getJSDocTagCompletions:()=>getJSDocTagCompletions,getJSDocTagNameCompletionDetails:()=>Mm,getJSDocTagNameCompletions:()=>getJSDocTagNameCompletions,getJsDocCommentsFromDeclarations:()=>getJsDocCommentsFromDeclarations,getJsDocTagsFromDeclarations:()=>getJsDocTagsFromDeclarations});var Om,wm,Lm=["abstract","access","alias","argument","async","augments","author","borrows","callback","class","classdesc","constant","constructor","constructs","copyright","default","deprecated","description","emits","enum","event","example","exports","extends","external","field","file","fileoverview","fires","function","generator","global","hideconstructor","host","ignore","implements","import","inheritdoc","inner","instance","interface","kind","lends","license","link","linkcode","linkplain","listens","member","memberof","method","mixes","module","name","namespace","overload","override","package","param","private","prop","property","protected","public","readonly","requires","returns","satisfies","see","since","static","summary","template","this","throws","todo","tutorial","type","typedef","var","variation","version","virtual","yields"];function getJsDocCommentsFromDeclarations(e,t){const n=[];return forEachUnique(e,e=>{for(const r of function getCommentHavingNodes(e){switch(e.kind){case 342:case 349:return[e];case 339:case 347:return[e,e.parent];case 324:if(isJSDocOverloadTag(e.parent))return[e.parent.parent];default:return getJSDocCommentsAndTags(e)}}(e)){const i=isJSDoc(r)&&r.tags&&find(r.tags,e=>328===e.kind&&("inheritDoc"===e.tagName.escapedText||"inheritdoc"===e.tagName.escapedText));if(void 0===r.comment&&!i||isJSDoc(r)&&347!==e.kind&&339!==e.kind&&r.tags&&r.tags.some(e=>347===e.kind||339===e.kind)&&!r.tags.some(e=>342===e.kind||343===e.kind))continue;let o=r.comment?getDisplayPartsFromComment(r.comment,t):[];i&&i.comment&&(o=o.concat(getDisplayPartsFromComment(i.comment,t))),contains(n,o,isIdenticalListOfDisplayParts)||n.push(o)}}),flatten(intersperse(n,[lineBreakPart()]))}function isIdenticalListOfDisplayParts(e,t){return arrayIsEqualTo(e,t,(e,t)=>e.kind===t.kind&&e.text===t.text)}function getJsDocTagsFromDeclarations(e,t){const n=[];return forEachUnique(e,e=>{const r=getJSDocTags(e);if(!r.some(e=>347===e.kind||339===e.kind)||r.some(e=>342===e.kind||343===e.kind))for(const e of r)n.push({name:e.tagName.text,text:getCommentDisplayParts(e,t)}),n.push(...getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(e),t))}),n}function getJSDocPropertyTagsInfo(e,t){return flatMap(e,e=>concatenate([{name:e.tagName.text,text:getCommentDisplayParts(e,t)}],getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(e),t)))}function tryGetJSDocPropertyTags(e){return isJSDocPropertyLikeTag(e)&&e.isNameFirst&&e.typeExpression&&isJSDocTypeLiteral(e.typeExpression.type)?e.typeExpression.type.jsDocPropertyTags:void 0}function getDisplayPartsFromComment(e,t){return"string"==typeof e?[textPart(e)]:flatMap(e,e=>322===e.kind?[textPart(e.text)]:buildLinkParts(e,t))}function getCommentDisplayParts(e,t){const{comment:n,kind:r}=e,i=function getTagNameDisplayPart(e){switch(e){case 342:return parameterNamePart;case 349:return propertyNamePart;case 346:return typeParameterNamePart;case 347:case 339:return typeAliasNamePart;default:return textPart}}(r);switch(r){case 350:const r=e.typeExpression;return r?withNode(r):void 0===n?void 0:getDisplayPartsFromComment(n,t);case 330:case 329:return withNode(e.class);case 346:const o=e,a=[];if(o.constraint&&a.push(textPart(o.constraint.getText())),length(o.typeParameters)){length(a)&&a.push(spacePart());const e=o.typeParameters[o.typeParameters.length-1];forEach(o.typeParameters,t=>{a.push(i(t.getText())),e!==t&&a.push(punctuationPart(28),spacePart())})}return n&&a.push(spacePart(),...getDisplayPartsFromComment(n,t)),a;case 345:case 351:return withNode(e.typeExpression);case 347:case 339:case 349:case 342:case 348:const{name:s}=e;return s?withNode(s):void 0===n?void 0:getDisplayPartsFromComment(n,t);default:return void 0===n?void 0:getDisplayPartsFromComment(n,t)}function withNode(e){return function addComment(e){return n?e.match(/^https?$/)?[textPart(e),...getDisplayPartsFromComment(n,t)]:[i(e),spacePart(),...getDisplayPartsFromComment(n,t)]:[textPart(e)]}(e.getText())}}function getJSDocTagNameCompletions(){return Om||(Om=map(Lm,e=>({name:e,kind:"keyword",kindModifiers:"",sortText:sm.SortText.LocationPriority})))}var Mm=getJSDocTagCompletionDetails;function getJSDocTagCompletions(){return wm||(wm=map(Lm,e=>({name:`@${e}`,kind:"keyword",kindModifiers:"",sortText:sm.SortText.LocationPriority})))}function getJSDocTagCompletionDetails(e){return{name:e,kind:"",kindModifiers:"",displayParts:[textPart(e)],documentation:l,tags:void 0,codeActions:void 0}}function getJSDocParameterNameCompletions(e){if(!isIdentifier(e.name))return l;const t=e.name.text,n=e.parent,r=n.parent;return isFunctionLike(r)?mapDefined(r.parameters,r=>{if(!isIdentifier(r.name))return;const i=r.name.text;return n.tags.some(t=>t!==e&&isJSDocParameterTag(t)&&isIdentifier(t.name)&&t.name.escapedText===i)||void 0!==t&&!startsWith(i,t)?void 0:{name:i,kind:"parameter",kindModifiers:"",sortText:sm.SortText.LocationPriority}}):[]}function getJSDocParameterNameCompletionDetails(e){return{name:e,kind:"parameter",kindModifiers:"",displayParts:[textPart(e)],documentation:l,tags:void 0,codeActions:void 0}}function getDocCommentTemplateAtPosition(e,t,n,r){const i=getTokenAtPosition(t,n),o=findAncestor(i,isJSDoc);if(o&&(void 0!==o.comment||length(o.tags)))return;const a=i.getStart(t);if(!o&&agetCommentOwnerInfoWorker(e,t))}(i,r);if(!s)return;const{commentOwner:c,parameters:l,hasReturn:d}=s,p=lastOrUndefined(hasJSDocNodes(c)&&c.jsDoc?c.jsDoc:void 0);if(c.getStart(t){const a=80===e.kind?e.text:"param"+o;return`${n} * @param ${t?i?"{...any} ":"{any} ":""}${a}${r}`}).join("")}(l||[],m,u,e):"")+(d?function returnsDocComment(e,t){return`${e} * @returns${t}`}(u,e):""),f=length(getJSDocTags(c))>0;if(_&&!f){const t="/**"+e+u+" * ";return{newText:t+e+_+u+" */"+(a===n?e+u:""),caretOffset:t.length}}return{newText:"/** */",caretOffset:3}}function getCommentOwnerInfoWorker(e,t){switch(e.kind){case 263:case 219:case 175:case 177:case 174:case 220:const n=e;return{commentOwner:e,parameters:n.parameters,hasReturn:hasReturn(n,t)};case 304:return getCommentOwnerInfoWorker(e.initializer,t);case 264:case 265:case 267:case 307:case 266:return{commentOwner:e};case 172:{const n=e;return n.type&&isFunctionTypeNode(n.type)?{commentOwner:e,parameters:n.type.parameters,hasReturn:hasReturn(n.type,t)}:{commentOwner:e}}case 244:{const n=e.declarationList.declarations,r=1===n.length&&n[0].initializer?function getRightHandSideOfAssignment(e){for(;218===e.kind;)e=e.expression;switch(e.kind){case 219:case 220:return e;case 232:return find(e.members,isConstructorDeclaration)}}(n[0].initializer):void 0;return r?{commentOwner:e,parameters:r.parameters,hasReturn:hasReturn(r,t)}:{commentOwner:e}}case 308:return"quit";case 268:return 268===e.parent.kind?void 0:{commentOwner:e};case 245:return getCommentOwnerInfoWorker(e.expression,t);case 227:{const n=e;return 0===getAssignmentDeclarationKind(n)?"quit":isFunctionLike(n.right)?{commentOwner:e,parameters:n.right.parameters,hasReturn:hasReturn(n.right,t)}:{commentOwner:e}}case 173:const r=e.initializer;if(r&&(isFunctionExpression(r)||isArrowFunction(r)))return{commentOwner:e,parameters:r.parameters,hasReturn:hasReturn(r,t)}}}function hasReturn(e,t){return!!(null==t?void 0:t.generateReturnInDocTemplate)&&(isFunctionTypeNode(e)||isArrowFunction(e)&&isExpression(e.body)||isFunctionLikeDeclaration(e)&&e.body&&isBlock(e.body)&&!!forEachReturnStatement(e.body,e=>e))}var Rm={};function mapCode(e,t,n,r,i,o){return $m.ChangeTracker.with({host:r,formatContext:i,preferences:o},r=>{const i=t.map(t=>function parse(e,t){const n=[{parse:()=>createSourceFile("__mapcode_content_nodes.ts",t,e.languageVersion,!0,e.scriptKind),body:e=>e.statements},{parse:()=>createSourceFile("__mapcode_class_content_nodes.ts",`class __class {\n${t}\n}`,e.languageVersion,!0,e.scriptKind),body:e=>e.statements[0].members}],r=[];for(const{parse:e,body:t}of n){const n=e(),i=t(n);if(i.length&&0===n.parseDiagnostics.length)return i;i.length&&r.push({sourceFile:n,body:i})}r.sort((e,t)=>e.sourceFile.parseDiagnostics.length-t.sourceFile.parseDiagnostics.length);const{body:i}=r[0];return i}(e,t)),o=n&&flatten(n);for(const t of i)placeNodeGroup(e,r,t,o)})}function placeNodeGroup(e,t,n,r){isClassElement(n[0])||isTypeElement(n[0])?function placeClassNodeGroup(e,t,n,r){let i;i=r&&r.length?forEach(r,t=>findAncestor(getTokenAtPosition(e,t.start),or(isClassLike,isInterfaceDeclaration))):find(e.statements,or(isClassLike,isInterfaceDeclaration));if(!i)return;const o=i.members.find(e=>n.some(t=>matchNode(t,e)));if(o){const r=findLast(i.members,e=>n.some(t=>matchNode(t,e)));return forEach(n,wipeNode),void t.replaceNodeRangeWithNodes(e,o,r,n)}forEach(n,wipeNode),t.insertNodesAfter(e,i.members[i.members.length-1],n)}(e,t,n,r):function placeStatements(e,t,n,r){if(!(null==r?void 0:r.length))return void t.insertNodesAtEndOfFile(e,n,!1);for(const i of r){const r=findAncestor(getTokenAtPosition(e,i.start),e=>or(isBlock,isSourceFile)(e)&&some(e.statements,e=>n.some(t=>matchNode(t,e))));if(r){const i=r.statements.find(e=>n.some(t=>matchNode(t,e)));if(i){const o=findLast(r.statements,e=>n.some(t=>matchNode(t,e)));return forEach(n,wipeNode),void t.replaceNodeRangeWithNodes(e,i,o,n)}}}let i=e.statements;for(const t of r){const n=findAncestor(getTokenAtPosition(e,t.start),isBlock);if(n){i=n.statements;break}}forEach(n,wipeNode),t.insertNodesAfter(e,i[i.length-1],n)}(e,t,n,r)}function matchNode(e,t){var n,r,i,o,a,s;return e.kind===t.kind&&(177===e.kind?e.kind===t.kind:isNamedDeclaration(e)&&isNamedDeclaration(t)?e.name.getText()===t.name.getText():isIfStatement(e)&&isIfStatement(t)||isWhileStatement(e)&&isWhileStatement(t)?e.expression.getText()===t.expression.getText():isForStatement(e)&&isForStatement(t)?(null==(n=e.initializer)?void 0:n.getText())===(null==(r=t.initializer)?void 0:r.getText())&&(null==(i=e.incrementor)?void 0:i.getText())===(null==(o=t.incrementor)?void 0:o.getText())&&(null==(a=e.condition)?void 0:a.getText())===(null==(s=t.condition)?void 0:s.getText()):isForInOrOfStatement(e)&&isForInOrOfStatement(t)?e.expression.getText()===t.expression.getText()&&e.initializer.getText()===t.initializer.getText():isLabeledStatement(e)&&isLabeledStatement(t)?e.label.getText()===t.label.getText():e.getText()===t.getText())}function wipeNode(e){resetNodePositions(e),e.parent=void 0}function resetNodePositions(e){e.pos=-1,e.end=-1,e.forEachChild(resetNodePositions)}i(Rm,{mapCode:()=>mapCode});var Bm={};function organizeImports(e,t,n,r,i,o){const a=$m.ChangeTracker.fromContext({host:n,formatContext:t,preferences:i}),s="SortAndCombine"===o||"All"===o,c=s,l="RemoveUnused"===o||"All"===o,d=e.statements.filter(isImportDeclaration),p=groupByNewlineContiguous(e,d),{comparersToTest:u,typeOrdersToTest:m}=getDetectionLists(i),_=u[0],f={moduleSpecifierComparer:"boolean"==typeof i.organizeImportsIgnoreCase?_:void 0,namedImportComparer:"boolean"==typeof i.organizeImportsIgnoreCase?_:void 0,typeOrder:i.organizeImportsTypeOrder};if("boolean"!=typeof i.organizeImportsIgnoreCase&&({comparer:f.moduleSpecifierComparer}=detectModuleSpecifierCaseBySort(p,u)),!f.typeOrder||"boolean"!=typeof i.organizeImportsIgnoreCase){const e=detectNamedImportOrganizationBySort(d,u,m);if(e){const{namedImportComparer:t,typeOrder:n}=e;f.namedImportComparer=f.namedImportComparer??t,f.typeOrder=f.typeOrder??n}}p.forEach(e=>organizeImportsWorker(e,f)),"RemoveUnused"!==o&&function getTopLevelExportGroups(e){const t=[],n=e.statements,r=length(n);let i=0,o=0;for(;igroupByNewlineContiguous(e,t))}(e).forEach(e=>organizeExportsWorker(e,f.namedImportComparer));for(const t of e.statements.filter(isAmbientModule)){if(!t.body)continue;if(groupByNewlineContiguous(e,t.body.statements.filter(isImportDeclaration)).forEach(e=>organizeImportsWorker(e,f)),"RemoveUnused"!==o){organizeExportsWorker(t.body.statements.filter(isExportDeclaration),f.namedImportComparer)}}return a.getChanges();function organizeDeclsWorker(r,i){if(0===length(r))return;setEmitFlags(r[0],1024);const o=c?group(r,e=>getExternalModuleName2(e.moduleSpecifier)):[r],l=flatMap(s?toSorted(o,(e,t)=>compareModuleSpecifiersWorker(e[0].moduleSpecifier,t[0].moduleSpecifier,f.moduleSpecifierComparer??_)):o,e=>getExternalModuleName2(e[0].moduleSpecifier)||void 0===e[0].moduleSpecifier?i(e):e);if(0===l.length)a.deleteNodes(e,r,{leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.Include},!0);else{const i={leadingTriviaOption:$m.LeadingTriviaOption.Exclude,trailingTriviaOption:$m.TrailingTriviaOption.Include,suffix:getNewLineOrDefaultFromHost(n,t.options)};a.replaceNodeWithNodes(e,r[0],l,i);const o=a.nodeHasTrailingComment(e,r[0],i);a.deleteNodes(e,r.slice(1),{trailingTriviaOption:$m.TrailingTriviaOption.Include},o)}}function organizeImportsWorker(t,n){const i=n.moduleSpecifierComparer??_,o=n.namedImportComparer??_,a=getNamedImportSpecifierComparer({organizeImportsTypeOrder:n.typeOrder??"last"},o);organizeDeclsWorker(t,t=>(l&&(t=function removeUnusedImports(e,t,n){const r=n.getTypeChecker(),i=n.getCompilerOptions(),o=r.getJsxNamespace(t),a=r.getJsxFragmentFactory(t),s=!!(2&t.transformFlags),c=[];for(const n of e){const{importClause:e,moduleSpecifier:r}=n;if(!e){c.push(n);continue}let{name:i,namedBindings:o}=e;if(i&&!isDeclarationUsed(i)&&(i=void 0),o)if(isNamespaceImport(o))isDeclarationUsed(o.name)||(o=void 0);else{const e=o.elements.filter(e=>isDeclarationUsed(e.name));e.lengthcompareImportsOrRequireStatements(e,t,i))),t))}function organizeExportsWorker(e,t){const n=getNamedImportSpecifierComparer(i,t);organizeDeclsWorker(e,e=>coalesceExportsWorker(e,n))}}function getDetectionLists(e){return{comparersToTest:"boolean"==typeof e.organizeImportsIgnoreCase?[getOrganizeImportsStringComparer(e,e.organizeImportsIgnoreCase)]:[getOrganizeImportsStringComparer(e,!0),getOrganizeImportsStringComparer(e,!1)],typeOrdersToTest:e.organizeImportsTypeOrder?[e.organizeImportsTypeOrder]:["last","inline","first"]}}function groupByNewlineContiguous(e,t){const n=createScanner(e.languageVersion,!1,e.languageVariant),r=[];let i=0;for(const o of t)r[i]&&isNewGroup(e,o,n)&&i++,r[i]||(r[i]=[]),r[i].push(o);return r}function isNewGroup(e,t,n){const r=t.getFullStart(),i=t.getStart();n.setText(e.text,r,i-r);let o=0;for(;n.getTokenStart()=2))return!0}return!1}function getExternalModuleName2(e){return void 0!==e&&isStringLiteralLike(e)?e.text:void 0}function getCategorizedImports(e){let t;const n={defaultImports:[],namespaceImports:[],namedImports:[]},r={defaultImports:[],namespaceImports:[],namedImports:[]};for(const i of e){if(void 0===i.importClause){t=t||i;continue}const e=i.importClause.isTypeOnly?n:r,{name:o,namedBindings:a}=i.importClause;o&&e.defaultImports.push(i),a&&(isNamespaceImport(a)?e.namespaceImports.push(i):e.namedImports.push(i))}return{importWithoutClause:t,typeOnlyImports:n,regularImports:r}}function coalesceImportsWorker(e,t,n,r){if(0===e.length)return e;const i=groupBy(e,e=>{if(e.attributes){let t=e.attributes.token+" ";for(const n of toSorted(e.attributes.elements,(e,t)=>compareStringsCaseSensitive(e.name.text,t.name.text)))t+=n.name.text+":",t+=isStringLiteralLike(n.value)?`"${n.value.text}"`:n.value.getText()+" ";return t}return""}),o=[];for(const e in i){const a=i[e],{importWithoutClause:s,typeOnlyImports:c,regularImports:d}=getCategorizedImports(a);s&&o.push(s);for(const e of[d,c]){const i=e===c,{defaultImports:a,namespaceImports:s,namedImports:d}=e;if(!i&&1===a.length&&1===s.length&&0===d.length){const e=a[0];o.push(updateImportDeclarationAndClause(e,e.importClause.name,s[0].importClause.namedBindings));continue}const p=toSorted(s,(e,n)=>t(e.importClause.namedBindings.name.text,n.importClause.namedBindings.name.text));for(const e of p)o.push(updateImportDeclarationAndClause(e,void 0,e.importClause.namedBindings));const u=firstOrUndefined(a),m=firstOrUndefined(d),_=u??m;if(!_)continue;let f;const g=[];if(1===a.length)f=a[0].importClause.name;else for(const e of a)g.push(Wr.createImportSpecifier(!1,Wr.createIdentifier("default"),e.importClause.name));g.push(...getNewImportSpecifiers(d));const y=Wr.createNodeArray(toSorted(g,n),null==m?void 0:m.importClause.namedBindings.elements.hasTrailingComma),h=0===y.length?f?void 0:Wr.createNamedImports(l):m?Wr.updateNamedImports(m.importClause.namedBindings,y):Wr.createNamedImports(y);r&&h&&(null==m?void 0:m.importClause.namedBindings)&&!rangeIsOnSingleLine(m.importClause.namedBindings,r)&&setEmitFlags(h,2),i&&f&&h?(o.push(updateImportDeclarationAndClause(_,f,void 0)),o.push(updateImportDeclarationAndClause(m??_,void 0,h))):o.push(updateImportDeclarationAndClause(_,f,h))}}return o}function coalesceExportsWorker(e,t){if(0===e.length)return e;const{exportWithoutClause:n,namedExports:r,typeOnlyExports:i}=function getCategorizedExports(e){let t;const n=[],r=[];for(const i of e)void 0===i.exportClause?t=t||i:i.isTypeOnly?r.push(i):n.push(i);return{exportWithoutClause:t,namedExports:n,typeOnlyExports:r}}(e),o=[];n&&o.push(n);for(const e of[r,i]){if(0===e.length)continue;const n=[];n.push(...flatMap(e,e=>e.exportClause&&isNamedExports(e.exportClause)?e.exportClause.elements:l));const r=toSorted(n,t),i=e[0];o.push(Wr.updateExportDeclaration(i,i.modifiers,i.isTypeOnly,i.exportClause&&(isNamedExports(i.exportClause)?Wr.updateNamedExports(i.exportClause,r):Wr.updateNamespaceExport(i.exportClause,i.exportClause.name)),i.moduleSpecifier,i.attributes))}return o}function updateImportDeclarationAndClause(e,t,n){return Wr.updateImportDeclaration(e,e.modifiers,Wr.updateImportClause(e.importClause,e.importClause.phaseModifier,t,n),e.moduleSpecifier,e.attributes)}function compareImportOrExportSpecifiers(e,t,n,r){switch(null==r?void 0:r.organizeImportsTypeOrder){case"first":return compareBooleans(t.isTypeOnly,e.isTypeOnly)||n(e.name.text,t.name.text);case"inline":return n(e.name.text,t.name.text);default:return compareBooleans(e.isTypeOnly,t.isTypeOnly)||n(e.name.text,t.name.text)}}function compareModuleSpecifiersWorker(e,t,n){const r=void 0===e?void 0:getExternalModuleName2(e),i=void 0===t?void 0:getExternalModuleName2(t);return compareBooleans(void 0===r,void 0===i)||compareBooleans(isExternalModuleNameRelative(r),isExternalModuleNameRelative(i))||n(r,i)}function getModuleSpecifierExpression(e){var t;switch(e.kind){case 272:return null==(t=tryCast(e.moduleReference,isExternalModuleReference))?void 0:t.expression;case 273:return e.moduleSpecifier;case 244:return e.declarationList.declarations[0].initializer.arguments[0]}}function hasModuleDeclarationMatchingSpecifier(e,t){const n=isStringLiteral(t)&&t.text;return isString(n)&&some(e.moduleAugmentations,e=>isStringLiteral(e)&&e.text===n)}function getNewImportSpecifiers(e){return flatMap(e,e=>map(function tryGetNamedBindingElements(e){var t;return(null==(t=e.importClause)?void 0:t.namedBindings)&&isNamedImports(e.importClause.namedBindings)?e.importClause.namedBindings.elements:void 0}(e),e=>e.name&&e.propertyName&&moduleExportNameTextEscaped(e.name)===moduleExportNameTextEscaped(e.propertyName)?Wr.updateImportSpecifier(e,e.isTypeOnly,void 0,e.name):e))}function detectModuleSpecifierCaseBySort(e,t){const n=[];return e.forEach(e=>{n.push(function getModuleNamesFromDecls(e){return e.map(e=>getExternalModuleName2(getModuleSpecifierExpression(e))||"")}(e))}),detectCaseSensitivityBySort(n,t)}function detectNamedImportOrganizationBySort(e,t,n){let r=!1;const i=e.filter(e=>{var t,n;const i=null==(n=tryCast(null==(t=e.importClause)?void 0:t.namedBindings,isNamedImports))?void 0:n.elements;return!!(null==i?void 0:i.length)&&(!r&&i.some(e=>e.isTypeOnly)&&i.some(e=>!e.isTypeOnly)&&(r=!0),!0)});if(0===i.length)return;const o=i.map(e=>{var t,n;return null==(n=tryCast(null==(t=e.importClause)?void 0:t.namedBindings,isNamedImports))?void 0:n.elements}).filter(e=>void 0!==e);if(!r||0===n.length){const e=detectCaseSensitivityBySort(o.map(e=>e.map(e=>e.name.text)),t);return{namedImportComparer:e.comparer,typeOrder:1===n.length?n[0]:void 0,isSorted:e.isSorted}}const a={first:1/0,last:1/0,inline:1/0},s={first:t[0],last:t[0],inline:t[0]};for(const e of t){const t={first:0,last:0,inline:0};for(const r of o)for(const i of n)t[i]=(t[i]??0)+measureSortedness(r,(t,n)=>compareImportOrExportSpecifiers(t,n,e,{organizeImportsTypeOrder:i}));for(const r of n){const n=r;t[n]0&&n++;return n}function detectCaseSensitivityBySort(e,t){let n,r=1/0;for(const i of t){let t=0;for(const n of e){if(n.length<=1)continue;t+=measureSortedness(n,i)}tcompareImportOrExportSpecifiers(t,r,n,e)}function getNamedImportSpecifierComparerWithDetection(e,t,n){const{comparersToTest:r,typeOrdersToTest:i}=getDetectionLists(t),o=detectNamedImportOrganizationBySort([e],r,i);let a,s=getNamedImportSpecifierComparer(t,r[0]);if("boolean"!=typeof t.organizeImportsIgnoreCase||!t.organizeImportsTypeOrder)if(o){const{namedImportComparer:e,typeOrder:t,isSorted:n}=o;a=n,s=getNamedImportSpecifierComparer({organizeImportsTypeOrder:t},e)}else if(n){const e=detectNamedImportOrganizationBySort(n.statements.filter(isImportDeclaration),r,i);if(e){const{namedImportComparer:t,typeOrder:n,isSorted:r}=e;a=r,s=getNamedImportSpecifierComparer({organizeImportsTypeOrder:n},t)}}return{specifierComparer:s,isSorted:a}}function getImportDeclarationInsertionIndex(e,t,n){const r=binarySearch(e,t,identity,(e,t)=>compareImportsOrRequireStatements(e,t,n));return r<0?~r:r}function getImportSpecifierInsertionIndex(e,t,n){const r=binarySearch(e,t,identity,n);return r<0?~r:r}function compareImportsOrRequireStatements(e,t,n){return compareModuleSpecifiersWorker(getModuleSpecifierExpression(e),getModuleSpecifierExpression(t),n)||function compareImportKind(e,t){return compareValues(getImportKindOrder(e),getImportKindOrder(t))}(e,t)}function testCoalesceImports(e,t,n,r){const i=getOrganizeImportsOrdinalStringComparer(t);return coalesceImportsWorker(e,i,getNamedImportSpecifierComparer({organizeImportsTypeOrder:null==r?void 0:r.organizeImportsTypeOrder},i),n)}function testCoalesceExports(e,t,n){return coalesceExportsWorker(e,(e,r)=>compareImportOrExportSpecifiers(e,r,getOrganizeImportsOrdinalStringComparer(t),{organizeImportsTypeOrder:(null==n?void 0:n.organizeImportsTypeOrder)??"last"}))}function compareModuleSpecifiers2(e,t,n){return compareModuleSpecifiersWorker(e,t,getOrganizeImportsOrdinalStringComparer(!!n))}i(Bm,{compareImportsOrRequireStatements:()=>compareImportsOrRequireStatements,compareModuleSpecifiers:()=>compareModuleSpecifiers2,getImportDeclarationInsertionIndex:()=>getImportDeclarationInsertionIndex,getImportSpecifierInsertionIndex:()=>getImportSpecifierInsertionIndex,getNamedImportSpecifierComparerWithDetection:()=>getNamedImportSpecifierComparerWithDetection,getOrganizeImportsStringComparerWithDetection:()=>getOrganizeImportsStringComparerWithDetection,organizeImports:()=>organizeImports,testCoalesceExports:()=>testCoalesceExports,testCoalesceImports:()=>testCoalesceImports});var jm={};function collectElements(e,t){const n=[];return function addNodeOutliningSpans(e,t,n){let r=40,i=0;const o=e.statements,a=o.length;for(;i...")}function spanForJSXFragment(e){const n=createTextSpanFromBounds(e.openingFragment.getStart(t),e.closingFragment.getEnd());return createOutliningSpan(n,"code",n,!1,"<>...")}function spanForJSXAttributes(e){if(0!==e.properties.length)return createOutliningSpanFromBounds(e.getStart(t),e.getEnd(),"code")}function spanForTemplateLiteral(e){if(15!==e.kind||0!==e.text.length)return createOutliningSpanFromBounds(e.getStart(t),e.getEnd(),"code")}function spanForObjectOrArrayLiteral(e,t=19){return spanForNode(e,!1,!isArrayLiteralExpression(e.parent)&&!isCallExpression(e.parent),t)}function spanForNode(n,r=!1,i=!0,o=19,a=(19===o?20:24)){const s=findChildOfKind(e,o,t),c=findChildOfKind(e,a,t);return s&&c&&spanBetweenTokens(s,c,n,t,r,i)}function spanForNodeArray(e){return e.length?createOutliningSpan(createTextSpanFromRange(e),"code"):void 0}function spanForParenthesizedExpression(e){if(positionsAreOnSameLine(e.getStart(),e.getEnd(),t))return;return createOutliningSpan(createTextSpanFromBounds(e.getStart(),e.getEnd()),"code",createTextSpanFromNode(e))}}(i,e);a&&n.push(a),r--,isCallExpression(i)?(r++,visitNode3(i.expression),r--,i.arguments.forEach(visitNode3),null==(o=i.typeArguments)||o.forEach(visitNode3)):isIfStatement(i)&&i.elseStatement&&isIfStatement(i.elseStatement)?(visitNode3(i.expression),visitNode3(i.thenStatement),r++,visitNode3(i.elseStatement),r--):i.forEachChild(visitNode3),r++}visitNode3(e.endOfFileToken)}(e,t,n),function addRegionOutliningSpans(e,t){const n=[],r=e.getLineStarts();for(const i of r){const r=e.getLineEndOfPosition(i),o=parseRegionDelimiter(e.text.substring(i,r));if(o&&!isInComment(e,i))if(o.isStart){const t=createTextSpanFromBounds(e.text.indexOf("//",i),r);n.push(createOutliningSpan(t,"region",t,!1,o.name||"#region"))}else{const e=n.pop();e&&(e.textSpan.length=r-e.textSpan.start,e.hintSpan.length=r-e.textSpan.start,t.push(e))}}}(e,n),n.sort((e,t)=>e.textSpan.start-t.textSpan.start),n}i(jm,{collectElements:()=>collectElements});var Jm=/^#(end)?region(.*)\r?$/;function parseRegionDelimiter(e){if(!startsWith(e=e.trimStart(),"//"))return null;e=e.slice(2).trim();const t=Jm.exec(e);return t?{isStart:!t[1],name:t[2].trim()}:void 0}function addOutliningForLeadingCommentsForPos(e,t,n,r){const i=getLeadingCommentRanges(t.text,e);if(!i)return;let o=-1,a=-1,s=0;const c=t.getFullText();for(const{kind:e,pos:t,end:l}of i)switch(n.throwIfCancellationRequested(),e){case 2:if(parseRegionDelimiter(c.slice(t,l))){combineAndAddMultipleSingleLineComments(),s=0;break}0===s&&(o=t),a=l,s++;break;case 3:combineAndAddMultipleSingleLineComments(),r.push(createOutliningSpanFromBounds(t,l,"comment")),s=0;break;default:h.assertNever(e)}function combineAndAddMultipleSingleLineComments(){s>1&&r.push(createOutliningSpanFromBounds(o,a,"comment"))}combineAndAddMultipleSingleLineComments()}function addOutliningForLeadingCommentsForNode(e,t,n,r){isJsxText(e)||addOutliningForLeadingCommentsForPos(e.pos,t,n,r)}function createOutliningSpanFromBounds(e,t,n){return createOutliningSpan(createTextSpanFromBounds(e,t),n)}function spanBetweenTokens(e,t,n,r,i=!1,o=!0){return createOutliningSpan(createTextSpanFromBounds(o?e.getFullStart():e.getStart(r),t.getEnd()),"code",createTextSpanFromNode(n,r),i)}function createOutliningSpan(e,t,n=e,r=!1,i="..."){return{textSpan:e,kind:t,hintSpan:n,bannerText:i,autoCollapse:r}}var Wm={};function getRenameInfo(e,t,n,r){const i=getAdjustedRenameLocation(getTouchingPropertyName(t,n));if(nodeIsEligibleForRename(i)){const n=function getRenameInfoForNode(e,t,n,r,i){const o=t.getSymbolAtLocation(e);if(!o){if(isStringLiteralLike(e)){const r=getContextualTypeFromParentOrAncestorTypeNode(e,t);if(r&&(128&r.flags||1048576&r.flags&&every(r.types,e=>!!(128&e.flags))))return getRenameInfoSuccess(e.text,e.text,"string","",e,n)}else if(isLabelName(e)){const t=getTextOfNode(e);return getRenameInfoSuccess(t,t,"label","",e,n)}return}const{declarations:a}=o;if(!a||0===a.length)return;if(a.some(e=>function isDefinedInLibraryFile(e,t){const n=t.getSourceFile();return e.isSourceFileDefaultLibrary(n)&&fileExtensionIs(n.fileName,".d.ts")}(r,e)))return getRenameInfoError(Ot.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);if(isIdentifier(e)&&"default"===e.escapedText&&o.parent&&1536&o.parent.flags)return;if(isStringLiteralLike(e)&&tryGetImportFromModuleSpecifier(e))return i.allowRenameOfImportPath?function getRenameInfoForModule(e,t,n){if(!isExternalModuleNameRelative(e.text))return getRenameInfoError(Ot.You_cannot_rename_a_module_via_a_global_import);const r=n.declarations&&find(n.declarations,isSourceFile);if(!r)return;const i=endsWith(e.text,"/index")||endsWith(e.text,"/index.js")?void 0:tryRemoveSuffix(removeFileExtension(r.fileName),"/index"),o=void 0===i?r.fileName:i,a=void 0===i?"module":"directory",s=e.text.lastIndexOf("/")+1,c=createTextSpan(e.getStart(t)+1+s,e.text.length-s);return{canRename:!0,fileToRename:o,kind:a,displayName:o,fullDisplayName:e.text,kindModifiers:"",triggerSpan:c}}(e,n,o):void 0;const s=function wouldRenameInOtherNodeModules(e,t,n,r){if(!r.providePrefixAndSuffixTextForRename&&2097152&t.flags){const e=t.declarations&&find(t.declarations,e=>isImportSpecifier(e));e&&!e.propertyName&&(t=n.getAliasedSymbol(t))}const{declarations:i}=t;if(!i)return;const o=getPackagePathComponents(e.path);if(void 0===o)return some(i,e=>isInsideNodeModules(e.getSourceFile().path))?Ot.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:void 0;for(const e of i){const t=getPackagePathComponents(e.getSourceFile().path);if(t){const e=Math.min(o.length,t.length);for(let n=0;n<=e;n++)if(0!==compareStringsCaseSensitive(o[n],t[n]))return Ot.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder}}return}(n,o,t,i);if(s)return getRenameInfoError(s);const c=Km.getSymbolKind(t,o,e),l=isImportOrExportSpecifierName(e)||isStringOrNumericLiteralLike(e)&&168===e.parent.kind?stripQuotes(getTextOfIdentifierOrLiteral(e)):void 0,d=l||t.symbolToString(o),p=l||t.getFullyQualifiedName(o);return getRenameInfoSuccess(d,p,c,Km.getSymbolModifiers(t,o),e,n)}(i,e.getTypeChecker(),t,e,r);if(n)return n}return getRenameInfoError(Ot.You_cannot_rename_this_element)}function getPackagePathComponents(e){const t=getPathComponents(e),n=t.lastIndexOf("node_modules");if(-1!==n)return t.slice(0,n+2)}function getRenameInfoSuccess(e,t,n,r,i,o){return{canRename:!0,fileToRename:void 0,kind:n,displayName:e,fullDisplayName:t,kindModifiers:r,triggerSpan:createTriggerSpanForNode(i,o)}}function getRenameInfoError(e){return{canRename:!1,localizedErrorMessage:getLocaleSpecificMessage(e)}}function createTriggerSpanForNode(e,t){let n=e.getStart(t),r=e.getWidth(t);return isStringLiteralLike(e)&&(n+=1,r-=2),createTextSpan(n,r)}function nodeIsEligibleForRename(e){switch(e.kind){case 80:case 81:case 11:case 15:case 110:return!0;case 9:return isLiteralNameOfPropertyDeclarationOrIndexAccess(e);default:return!1}}i(Wm,{getRenameInfo:()=>getRenameInfo,nodeIsEligibleForRename:()=>nodeIsEligibleForRename});var Um={};function getSignatureHelpItems(e,t,n,r,i){const o=e.getTypeChecker(),a=findTokenOnLeftOfPosition(t,n);if(!a)return;const s=!!r&&"characterTyped"===r.kind;if(s&&(isInString(t,n,a)||isInComment(t,n)))return;const c=!!r&&"invoked"===r.kind,l=function getContainingArgumentInfo(e,t,n,r,i){for(let o=e;!isSourceFile(o)&&(i||!isBlock(o));o=o.parent){h.assert(rangeContainsRange(o.parent,o),"Not a subspan",()=>`Child: ${h.formatSyntaxKind(o.kind)}, parent: ${h.formatSyntaxKind(o.parent.kind)}`);const e=getImmediatelyContainingArgumentOrContextualParameterInfo(o,t,n,r);if(e)return e}return}(a,n,t,o,c);if(!l)return;i.throwIfCancellationRequested();const d=function getCandidateOrTypeInfo({invocation:e,argumentCount:t},n,r,i,o){switch(e.kind){case 0:{if(o&&!function isSyntacticOwner(e,t,n){if(!isCallOrNewExpression(t))return!1;const r=t.getChildren(n);switch(e.kind){case 21:return contains(r,e);case 28:{const t=findContainingList(e);return!!t&&contains(r,t)}case 30:return containsPrecedingToken(e,n,t.expression);default:return!1}}(i,e.node,r))return;const a=[],s=n.getResolvedSignatureForSignatureHelp(e.node,a,t);return 0===a.length?void 0:{kind:0,candidates:a,resolvedSignature:s}}case 1:{const{called:a}=e;if(o&&!containsPrecedingToken(i,r,isIdentifier(a)?a.parent:a))return;const s=getPossibleGenericSignatures(a,t,n);if(0!==s.length)return{kind:0,candidates:s,resolvedSignature:first(s)};const c=n.getSymbolAtLocation(a);return c&&{kind:1,symbol:c}}case 2:return{kind:0,candidates:[e.signature],resolvedSignature:e.signature};default:return h.assertNever(e)}}(l,o,t,a,s);return i.throwIfCancellationRequested(),d?o.runWithCancellationToken(i,e=>0===d.kind?createSignatureHelpItems(d.candidates,d.resolvedSignature,l,t,e):function createTypeHelpItems(e,{argumentCount:t,argumentsSpan:n,invocation:r,argumentIndex:i},o,a){const s=a.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);if(!s)return;const c=[getTypeHelpItem(e,s,a,getEnclosingDeclarationFromInvocation(r),o)];return{items:c,applicableSpan:n,selectedItemIndex:0,argumentIndex:i,argumentCount:t}}(d.symbol,l,t,e)):isSourceFileJS(t)?function createJSSignatureHelpItems(e,t,n){if(2===e.invocation.kind)return;const r=getExpressionFromInvocation(e.invocation),i=isPropertyAccessExpression(r)?r.name.text:void 0,o=t.getTypeChecker();return void 0===i?void 0:firstDefined(t.getSourceFiles(),t=>firstDefined(t.getNamedDeclarations().get(i),r=>{const i=r.symbol&&o.getTypeOfSymbolAtLocation(r.symbol,r),a=i&&i.getCallSignatures();if(a&&a.length)return o.runWithCancellationToken(n,n=>createSignatureHelpItems(a,a[0],e,t,n,!0))}))}(l,e,i):void 0}function containsPrecedingToken(e,t,n){const r=e.getFullStart();let i=e.parent;for(;i;){const e=findPrecedingToken(r,t,i,!0);if(e)return rangeContainsRange(n,e);i=i.parent}return h.fail("Could not find preceding token")}function getArgumentInfoForCompletions(e,t,n,r){const i=getImmediatelyContainingArgumentInfo(e,t,n,r);return!i||i.isTypeParameterList||0!==i.invocation.kind?void 0:{invocation:i.invocation.node,argumentCount:i.argumentCount,argumentIndex:i.argumentIndex}}function getArgumentOrParameterListInfo(e,t,n,r){const i=function getArgumentOrParameterListAndIndex(e,t,n){if(30===e.kind||21===e.kind)return{list:getChildListThatStartsWithOpenerToken(e.parent,e,t),argumentIndex:0};{const t=findContainingList(e);return t&&{list:t,argumentIndex:getArgumentIndex(n,t,e)}}}(e,n,r);if(!i)return;const{list:o,argumentIndex:a}=i,s=function getArgumentCount(e,t){return getArgumentIndexOrCount(e,t,void 0)}(r,o),c=function getApplicableSpanForArguments(e,t){const n=e.getFullStart(),r=skipTrivia(t.text,e.getEnd(),!1);return createTextSpan(n,r-n)}(o,n);return{list:o,argumentIndex:a,argumentCount:s,argumentsSpan:c}}function getImmediatelyContainingArgumentInfo(e,t,n,r){const{parent:i}=e;if(isCallOrNewExpression(i)){const t=i,o=getArgumentOrParameterListInfo(e,0,n,r);if(!o)return;const{list:a,argumentIndex:s,argumentCount:c,argumentsSpan:l}=o;return{isTypeParameterList:!!i.typeArguments&&i.typeArguments.pos===a.pos,invocation:{kind:0,node:t},argumentsSpan:l,argumentIndex:s,argumentCount:c}}if(isNoSubstitutionTemplateLiteral(e)&&isTaggedTemplateExpression(i))return isInsideTemplateLiteral(e,t,n)?getArgumentListInfoForTemplate(i,0,n):void 0;if(isTemplateHead(e)&&216===i.parent.kind){const r=i,o=r.parent;h.assert(229===r.kind);return getArgumentListInfoForTemplate(o,isInsideTemplateLiteral(e,t,n)?0:1,n)}if(isTemplateSpan(i)&&isTaggedTemplateExpression(i.parent.parent)){const r=i,o=i.parent.parent;if(isTemplateTail(e)&&!isInsideTemplateLiteral(e,t,n))return;const a=function getArgumentIndexForTemplatePiece(e,t,n,r){if(h.assert(n>=t.getStart(),"Assumed 'position' could not occur before node."),isTemplateLiteralToken(t))return isInsideTemplateLiteral(t,n,r)?0:e+2;return e+1}(r.parent.templateSpans.indexOf(r),e,t,n);return getArgumentListInfoForTemplate(o,a,n)}if(isJsxOpeningLikeElement(i)){const e=i.attributes.pos;return{isTypeParameterList:!1,invocation:{kind:0,node:i},argumentsSpan:createTextSpan(e,skipTrivia(n.text,i.attributes.end,!1)-e),argumentIndex:0,argumentCount:1}}{const t=getPossibleTypeArgumentsInfo(e,n);if(t){const{called:r,nTypeArguments:i}=t;return{isTypeParameterList:!0,invocation:{kind:1,called:r},argumentsSpan:createTextSpanFromBounds(r.getStart(n),e.end),argumentIndex:i,argumentCount:i+1}}return}}function getImmediatelyContainingArgumentOrContextualParameterInfo(e,t,n,r){return function tryGetParameterInfo(e,t,n,r){const i=function getAdjustedNode(e){switch(e.kind){case 21:case 28:return e;default:return findAncestor(e.parent,e=>!!isParameter(e)||!(isBindingElement(e)||isObjectBindingPattern(e)||isArrayBindingPattern(e))&&"quit")}}(e);if(void 0===i)return;const o=function getContextualSignatureLocationInfo(e,t,n,r){const{parent:i}=e;switch(i.kind){case 218:case 175:case 219:case 220:const n=getArgumentOrParameterListInfo(e,0,t,r);if(!n)return;const{argumentIndex:o,argumentCount:a,argumentsSpan:s}=n,c=isMethodDeclaration(i)?r.getContextualTypeForObjectLiteralElement(i):r.getContextualType(i);return c&&{contextualType:c,argumentIndex:o,argumentCount:a,argumentsSpan:s};case 227:{const t=getHighestBinary(i),n=r.getContextualType(t),o=21===e.kind?0:countBinaryExpressionParameters(i)-1,a=countBinaryExpressionParameters(t);return n&&{contextualType:n,argumentIndex:o,argumentCount:a,argumentsSpan:createTextSpanFromNode(i)}}default:return}}(i,n,0,r);if(void 0===o)return;const{contextualType:a,argumentIndex:s,argumentCount:c,argumentsSpan:l}=o,d=a.getNonNullableType(),p=d.symbol;if(void 0===p)return;const u=lastOrUndefined(d.getCallSignatures());if(void 0===u)return;return{isTypeParameterList:!1,invocation:{kind:2,signature:u,node:e,symbol:chooseBetterSymbol(p)},argumentsSpan:l,argumentIndex:s,argumentCount:c}}(e,0,n,r)||getImmediatelyContainingArgumentInfo(e,t,n,r)}function getHighestBinary(e){return isBinaryExpression(e.parent)?getHighestBinary(e.parent):e}function countBinaryExpressionParameters(e){return isBinaryExpression(e.left)?countBinaryExpressionParameters(e.left)+1:2}function chooseBetterSymbol(e){return"__type"===e.name&&firstDefined(e.declarations,e=>{var t;return isFunctionTypeNode(e)?null==(t=tryCast(e.parent,canHaveSymbol))?void 0:t.symbol:void 0})||e}function getSpreadElementCount(e,t){const n=t.getTypeAtLocation(e.expression);if(t.isTupleType(n)){const{elementFlags:e,fixedLength:t}=n.target;if(0===t)return 0;const r=findIndex(e,e=>!(1&e));return r<0?t:r}return 0}function getArgumentIndex(e,t,n){return getArgumentIndexOrCount(e,t,n)}function getArgumentIndexOrCount(e,t,n){const r=t.getChildren();let i=0,o=!1;for(const t of r){if(n&&t===n)return o||28!==t.kind||i++,i;isSpreadElement(t)?(i+=getSpreadElementCount(t,e),o=!0):28===t.kind?o?o=!1:i++:(i++,o=!0)}return n?i:r.length&&28===last(r).kind?i+1:i}function getArgumentListInfoForTemplate(e,t,n){const r=isNoSubstitutionTemplateLiteral(e.template)?1:e.template.templateSpans.length+1;return 0!==t&&h.assertLessThan(t,r),{isTypeParameterList:!1,invocation:{kind:0,node:e},argumentsSpan:getApplicableSpanForTaggedTemplate(e,n),argumentIndex:t,argumentCount:r}}function getApplicableSpanForTaggedTemplate(e,t){const n=e.template,r=n.getStart();let i=n.getEnd();if(229===n.kind){0===last(n.templateSpans).literal.getFullWidth()&&(i=skipTrivia(t.text,i,!1))}return createTextSpan(r,i-r)}function getChildListThatStartsWithOpenerToken(e,t,n){const r=e.getChildren(n),i=r.indexOf(t);return h.assert(i>=0&&r.length>i+1),r[i+1]}function getExpressionFromInvocation(e){return 0===e.kind?getInvokedExpression(e.node):e.called}function getEnclosingDeclarationFromInvocation(e){return 0===e.kind?e.node:1===e.kind?e.called:e.node}i(Um,{getArgumentInfoForCompletions:()=>getArgumentInfoForCompletions,getSignatureHelpItems:()=>getSignatureHelpItems});var zm=70246400;function createSignatureHelpItems(e,t,{isTypeParameterList:n,argumentCount:r,argumentsSpan:i,invocation:o,argumentIndex:a},s,c,d){var p;const u=getEnclosingDeclarationFromInvocation(o),m=2===o.kind?o.symbol:c.getSymbolAtLocation(getExpressionFromInvocation(o))||d&&(null==(p=t.declaration)?void 0:p.symbol),_=m?symbolToDisplayParts(c,m,d?s:void 0,void 0):l,f=map(e,e=>function getSignatureHelpItem(e,t,n,r,i,o){const a=(n?itemInfoForTypeParameters:itemInfoForParameters)(e,r,i,o);return map(a,({isVariadic:n,parameters:o,prefix:a,suffix:s})=>{const c=[...t,...a],l=[...s,...returnTypeToDisplayParts(e,i,r)],d=e.getDocumentationComment(r),p=e.getJsDocTags();return{isVariadic:n,prefixDisplayParts:c,suffixDisplayParts:l,separatorDisplayParts:Vm,parameters:o,documentation:d,tags:p}})}(e,_,n,c,u,s));let g=0,y=0;for(let n=0;n1)){let e=0;for(const t of i){if(t.isVariadic||t.parameters.length>=r){g=y+e;break}e++}}y+=i.length}h.assert(-1!==g);const T={items:flatMapToMutable(f,identity),applicableSpan:i,selectedItemIndex:g,argumentIndex:a,argumentCount:r},S=T.items[g];if(S.isVariadic){const e=findIndex(S.parameters,e=>!!e.isRest);-1createSignatureHelpParameterForTypeParameter(e,n,r,i,a)),c=e.getDocumentationComment(n),l=e.getJsDocTags(n);return{isVariadic:!1,prefixDisplayParts:[...o,punctuationPart(30)],suffixDisplayParts:[punctuationPart(32)],separatorDisplayParts:Vm,parameters:s,documentation:c,tags:l}}var Vm=[punctuationPart(28),spacePart()];function returnTypeToDisplayParts(e,t,n){return mapToDisplayParts(r=>{r.writePunctuation(":"),r.writeSpace(" ");const i=n.getTypePredicateOfSignature(e);i?n.writeTypePredicate(i,t,void 0,r):n.writeType(n.getReturnTypeOfSignature(e),t,void 0,r)})}function itemInfoForTypeParameters(e,t,n,r){const i=(e.target||e).typeParameters,o=ka(),a=(i||l).map(e=>createSignatureHelpParameterForTypeParameter(e,t,n,r,o)),s=e.thisParameter?[t.symbolToParameterDeclaration(e.thisParameter,n,zm)]:[];return t.getExpandedParameters(e).map(e=>{const i=Wr.createNodeArray([...s,...map(e,e=>t.symbolToParameterDeclaration(e,n,zm))]),c=mapToDisplayParts(e=>{o.writeList(2576,i,r,e)});return{isVariadic:!1,parameters:a,prefix:[punctuationPart(30)],suffix:[punctuationPart(32),...c]}})}function itemInfoForParameters(e,t,n,r){const i=ka(),o=mapToDisplayParts(o=>{if(e.typeParameters&&e.typeParameters.length){const a=Wr.createNodeArray(e.typeParameters.map(e=>t.typeParameterToDeclaration(e,n,zm)));i.writeList(53776,a,r,o)}}),a=t.getExpandedParameters(e),s=t.hasEffectiveRestParameter(e)?1===a.length?e=>!0:e=>{var t;return!!(e.length&&32768&(null==(t=tryCast(e[e.length-1],isTransientSymbol))?void 0:t.links.checkFlags))}:e=>!1;return a.map(e=>({isVariadic:s(e),parameters:e.map(e=>function createSignatureHelpParameterForParameter(e,t,n,r,i){const o=mapToDisplayParts(o=>{const a=t.symbolToParameterDeclaration(e,n,zm);i.writeNode(4,a,r,o)}),a=t.isOptionalParameter(e.valueDeclaration),s=isTransientSymbol(e)&&!!(32768&e.links.checkFlags);return{name:e.name,documentation:e.getDocumentationComment(t),displayParts:o,isOptional:a,isRest:s}}(e,t,n,r,i)),prefix:[...o,punctuationPart(21)],suffix:[punctuationPart(22)]}))}function createSignatureHelpParameterForTypeParameter(e,t,n,r,i){const o=mapToDisplayParts(o=>{const a=t.typeParameterToDeclaration(e,n,zm);i.writeNode(4,a,r,o)});return{name:e.symbol.name,documentation:e.symbol.getDocumentationComment(t),displayParts:o,isOptional:!1,isRest:!1}}var qm={};function getSmartSelectionRange(e,t){var n,r;let i={textSpan:createTextSpanFromBounds(t.getFullStart(),t.getEnd())},o=t;e:for(;;){const i=getSelectionChildren(o);if(!i.length)break;for(let a=0;ae)break e;const d=singleOrUndefined(getTrailingCommentRanges(t.text,c.end));if(d&&2===d.kind&&pushSelectionCommentRange(d.pos,d.end),positionShouldSnapToNode(t,e,c)){if(isFunctionBody(c)&&isFunctionLikeDeclaration(o)&&!positionsAreOnSameLine(c.getStart(t),c.getEnd(),t)&&pushSelectionRange(c.getStart(t),c.getEnd()),isBlock(c)||isTemplateSpan(c)||isTemplateHead(c)||isTemplateTail(c)||s&&isTemplateHead(s)||isVariableDeclarationList(c)&&isVariableStatement(o)||isSyntaxList(c)&&isVariableDeclarationList(o)||isVariableDeclaration(c)&&isSyntaxList(o)&&1===i.length||isJSDocTypeExpression(c)||isJSDocSignature(c)||isJSDocTypeLiteral(c)){o=c;break}if(isTemplateSpan(o)&&l&&isTemplateMiddleOrTemplateTail(l)){pushSelectionRange(c.getFullStart()-2,l.getStart()+1)}const e=isSyntaxList(c)&&isListOpener(s)&&isListCloser(l)&&!positionsAreOnSameLine(s.getStart(),l.getStart(),t);let a=e?s.getEnd():c.getStart();const d=e?l.getStart():getEndPos(t,c);if(hasJSDocNodes(c)&&(null==(n=c.jsDoc)?void 0:n.length)&&pushSelectionRange(first(c.jsDoc).getStart(),d),isSyntaxList(c)){const e=c.getChildren()[0];e&&hasJSDocNodes(e)&&(null==(r=e.jsDoc)?void 0:r.length)&&e.getStart()!==c.pos&&(a=Math.min(a,first(e.jsDoc).getStart()))}pushSelectionRange(a,d),(isStringLiteral(c)||isTemplateLiteral(c))&&pushSelectionRange(a+1,d-1),o=c;break}if(a===i.length-1)break e}}return i;function pushSelectionRange(t,n){if(t!==n){const r=createTextSpanFromBounds(t,n);(!i||!textSpansEqual(r,i.textSpan)&&textSpanIntersectsWithPosition(r,e))&&(i={textSpan:r,...i&&{parent:i}})}}function pushSelectionCommentRange(e,n){pushSelectionRange(e,n);let r=e;for(;47===t.text.charCodeAt(r);)r++;pushSelectionRange(r,n)}}function positionShouldSnapToNode(e,t,n){if(h.assert(n.pos<=t),tgetSmartSelectionRange});var Hm=or(isImportDeclaration,isImportEqualsDeclaration);function getSelectionChildren(e){var t;if(isSourceFile(e))return groupChildren(e.getChildAt(0).getChildren(),Hm);if(isMappedTypeNode(e)){const[t,...n]=e.getChildren(),r=h.checkDefined(n.pop());h.assertEqual(t.kind,19),h.assertEqual(r.kind,20);const i=groupChildren(n,t=>t===e.readonlyToken||148===t.kind||t===e.questionToken||58===t.kind);return[t,createSyntaxList2(splitChildren(groupChildren(i,({kind:e})=>23===e||169===e||24===e),({kind:e})=>59===e)),r]}if(isPropertySignature(e)){const n=groupChildren(e.getChildren(),t=>t===e.name||contains(e.modifiers,t)),r=321===(null==(t=n[0])?void 0:t.kind)?n[0]:void 0,i=splitChildren(r?n.slice(1):n,({kind:e})=>59===e);return r?[r,createSyntaxList2(i)]:i}if(isParameter(e)){const t=groupChildren(e.getChildren(),t=>t===e.dotDotDotToken||t===e.name);return splitChildren(groupChildren(t,n=>n===t[0]||n===e.questionToken),({kind:e})=>64===e)}return isBindingElement(e)?splitChildren(e.getChildren(),({kind:e})=>64===e):e.getChildren()}function groupChildren(e,t){const n=[];let r;for(const i of e)t(i)?(r=r||[],r.push(i)):(r&&(n.push(createSyntaxList2(r)),r=void 0),n.push(i));return r&&n.push(createSyntaxList2(r)),n}function splitChildren(e,t,n=!0){if(e.length<2)return e;const r=findIndex(e,t);if(-1===r)return e;const i=e.slice(0,r),o=e[r],a=last(e),s=n&&27===a.kind,c=e.slice(r+1,s?e.length-1:void 0),l=compact([i.length?createSyntaxList2(i):void 0,o,c.length?createSyntaxList2(c):void 0]);return s?l.concat(a):l}function createSyntaxList2(e){return h.assertGreaterThanOrEqual(e.length,1),setTextRangePosEnd(Di.createSyntaxList(e),e[0].pos,last(e).end)}function isListOpener(e){const t=e&&e.kind;return 19===t||23===t||21===t||287===t}function isListCloser(e){const t=e&&e.kind;return 20===t||24===t||22===t||288===t}function getEndPos(e,t){switch(t.kind){case 342:case 339:case 349:case 347:case 344:return e.getLineEndOfPosition(t.getStart());default:return t.getEnd()}}var Km={};i(Km,{getSymbolDisplayPartsDocumentationAndSymbolKind:()=>getSymbolDisplayPartsDocumentationAndSymbolKind,getSymbolKind:()=>getSymbolKind,getSymbolModifiers:()=>getSymbolModifiers});var Gm=70246400;function getSymbolKind(e,t,n){const r=getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(e,t,n);if(""!==r)return r;const i=getCombinedLocalAndExportSymbolFlags(t);return 32&i?getDeclarationOfKind(t,232)?"local class":"class":384&i?"enum":524288&i?"type":64&i?"interface":262144&i?"type parameter":8&i?"enum member":2097152&i?"alias":1536&i?"module":r}function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(e,t,n){const r=e.getRootSymbols(t);if(1===r.length&&8192&first(r).flags&&0!==e.getTypeOfSymbolAtLocation(t,n).getNonNullableType().getCallSignatures().length)return"method";if(e.isUndefinedSymbol(t))return"var";if(e.isArgumentsSymbol(t))return"local var";if(110===n.kind&&isExpression(n)||isThisInTypeQuery(n))return"parameter";const i=getCombinedLocalAndExportSymbolFlags(t);if(3&i)return isFirstDeclarationOfSymbolParameter(t)?"parameter":t.valueDeclaration&&isVarConst(t.valueDeclaration)?"const":t.valueDeclaration&&isVarUsing(t.valueDeclaration)?"using":t.valueDeclaration&&isVarAwaitUsing(t.valueDeclaration)?"await using":forEach(t.declarations,isLet)?"let":isLocalVariableOrFunction(t)?"local var":"var";if(16&i)return isLocalVariableOrFunction(t)?"local function":"function";if(32768&i)return"getter";if(65536&i)return"setter";if(8192&i)return"method";if(16384&i)return"constructor";if(131072&i)return"index";if(4&i){if(33554432&i&&6&t.links.checkFlags){const r=forEach(e.getRootSymbols(t),e=>{if(98311&e.getFlags())return"property"});if(!r){return e.getTypeOfSymbolAtLocation(t,n).getCallSignatures().length?"method":"property"}return r}return"property"}return""}function getNormalizedSymbolModifiers(e){if(e.declarations&&e.declarations.length){const[t,...n]=e.declarations,r=getNodeModifiers(t,length(n)&&isDeprecatedDeclaration(t)&&some(n,e=>!isDeprecatedDeclaration(e))?65536:0);if(r)return r.split(",")}return[]}function getSymbolModifiers(e,t){if(!t)return"";const n=new Set(getNormalizedSymbolModifiers(t));if(2097152&t.flags){const r=e.getAliasedSymbol(t);r!==t&&forEach(getNormalizedSymbolModifiers(r),e=>{n.add(e)})}return 16777216&t.flags&&n.add("optional"),n.size>0?arrayFrom(n.values()).join(","):""}function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(e,t,n,r,i,o,a,s,c,d){var p;const u=[];let m=[],_=[];const f=getCombinedLocalAndExportSymbolFlags(t);let g=1&a?getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(e,t,i):"",y=!1;const T=110===i.kind&&isInExpressionContext(i)||isThisInTypeQuery(i);let S,x,v=!1;const b={canIncreaseExpansionDepth:!1,truncated:!1};let C=!1;if(110===i.kind&&!T)return{displayParts:[keywordPart(110)],documentation:[],symbolKind:"primitive type",tags:void 0};if(""!==g||32&f||2097152&f){if("getter"===g||"setter"===g){const e=find(t.declarations,e=>e.name===i&&212!==e.kind);if(e)switch(e.kind){case 178:g="getter";break;case 179:g="setter";break;case 173:g="accessor";break;default:h.assertNever(e)}else g="property"}let n,a;if(o??(o=T?e.getTypeAtLocation(i):e.getTypeOfSymbolAtLocation(t,i)),i.parent&&212===i.parent.kind){const e=i.parent.name;(e===i||e&&0===e.getFullWidth())&&(i=i.parent)}if(isCallOrNewExpression(i)?a=i:(isCallExpressionTarget(i)||isNewExpressionTarget(i)||i.parent&&(isJsxOpeningLikeElement(i.parent)||isTaggedTemplateExpression(i.parent))&&isFunctionLike(t.valueDeclaration))&&(a=i.parent),a){n=e.getResolvedSignature(a);const i=215===a.kind||isCallExpression(a)&&108===a.expression.kind,s=i?o.getConstructSignatures():o.getCallSignatures();if(!n||contains(s,n.target)||contains(s,n)||(n=s.length?s[0]:void 0),n){switch(i&&32&f?(g="constructor",addPrefixForAnyFunctionOrVar(o.symbol,g)):2097152&f?(g="alias",pushSymbolKind(g),u.push(spacePart()),i&&(4&n.flags&&(u.push(keywordPart(128)),u.push(spacePart())),u.push(keywordPart(105)),u.push(spacePart())),addFullSymbolName(t)):addPrefixForAnyFunctionOrVar(t,g),g){case"JSX attribute":case"property":case"var":case"const":case"let":case"parameter":case"local var":u.push(punctuationPart(59)),u.push(spacePart()),16&getObjectFlags(o)||!o.symbol||(addRange(u,symbolToDisplayParts(e,o.symbol,r,void 0,5)),u.push(lineBreakPart())),i&&(4&n.flags&&(u.push(keywordPart(128)),u.push(spacePart())),u.push(keywordPart(105)),u.push(spacePart())),addSignatureDisplayParts(n,s,262144);break;default:addSignatureDisplayParts(n,s)}y=!0,v=s.length>1}}else if(isNameOfFunctionDeclaration(i)&&!(98304&f)||137===i.kind&&177===i.parent.kind){const r=i.parent;if(t.declarations&&find(t.declarations,e=>e===(137===i.kind?r.parent:r))){const i=177===r.kind?o.getNonNullableType().getConstructSignatures():o.getNonNullableType().getCallSignatures();n=e.isImplementationOfOverload(r)?i[0]:e.getSignatureFromDeclaration(r),177===r.kind?(g="constructor",addPrefixForAnyFunctionOrVar(o.symbol,g)):addPrefixForAnyFunctionOrVar(180!==r.kind||2048&o.symbol.flags||4096&o.symbol.flags?t:o.symbol,g),n&&addSignatureDisplayParts(n,i),y=!0,v=i.length>1}}}if(32&f&&!y&&!T){addAliasPrefixIfNecessary();const e=getDeclarationOfKind(t,232);e&&(pushSymbolKind("local class"),u.push(spacePart())),tryExpandSymbol(t,a)||(e||(u.push(keywordPart(86)),u.push(spacePart())),addFullSymbolName(t),writeTypeParametersOfSymbol(t,n))}if(64&f&&2&a&&(prefixNextMeaning(),tryExpandSymbol(t,a)||(u.push(keywordPart(120)),u.push(spacePart()),addFullSymbolName(t),writeTypeParametersOfSymbol(t,n))),524288&f&&2&a&&(prefixNextMeaning(),u.push(keywordPart(156)),u.push(spacePart()),addFullSymbolName(t),writeTypeParametersOfSymbol(t,n),u.push(spacePart()),u.push(operatorPart(64)),u.push(spacePart()),addRange(u,typeToDisplayParts(e,i.parent&&isConstTypeReference(i.parent)?e.getTypeAtLocation(i.parent):e.getDeclaredTypeOfSymbol(t),r,8388608,c,d,b))),384&f&&(prefixNextMeaning(),tryExpandSymbol(t,a)||(some(t.declarations,e=>isEnumDeclaration(e)&&isEnumConst(e))&&(u.push(keywordPart(87)),u.push(spacePart())),u.push(keywordPart(94)),u.push(spacePart()),addFullSymbolName(t,void 0))),1536&f&&!T&&(prefixNextMeaning(),!tryExpandSymbol(t,a))){const e=getDeclarationOfKind(t,268),n=e&&e.name&&80===e.name.kind;u.push(keywordPart(n?145:144)),u.push(spacePart()),addFullSymbolName(t)}if(262144&f&&2&a)if(prefixNextMeaning(),u.push(punctuationPart(21)),u.push(textPart("type parameter")),u.push(punctuationPart(22)),u.push(spacePart()),addFullSymbolName(t),t.parent)addInPrefix(),addFullSymbolName(t.parent,r),writeTypeParametersOfSymbol(t.parent,r);else{const r=getDeclarationOfKind(t,169);if(void 0===r)return h.fail();const i=r.parent;if(i)if(isFunctionLike(i)){addInPrefix();const t=e.getSignatureFromDeclaration(i);181===i.kind?(u.push(keywordPart(105)),u.push(spacePart())):180!==i.kind&&i.name&&addFullSymbolName(i.symbol),addRange(u,signatureToDisplayParts(e,t,n,32))}else isTypeAliasDeclaration(i)&&(addInPrefix(),u.push(keywordPart(156)),u.push(spacePart()),addFullSymbolName(i.symbol),writeTypeParametersOfSymbol(i.symbol,n))}if(8&f){g="enum member",addPrefixForAnyFunctionOrVar(t,"enum member");const n=null==(p=t.declarations)?void 0:p[0];if(307===(null==n?void 0:n.kind)){const t=e.getConstantValue(n);void 0!==t&&(u.push(spacePart()),u.push(operatorPart(64)),u.push(spacePart()),u.push(displayPart(getTextOfConstantValue(t),"number"==typeof t?7:8)))}}if(2097152&t.flags){if(prefixNextMeaning(),!y||0===m.length&&0===_.length){const n=e.getAliasedSymbol(t);if(n!==t&&n.declarations&&n.declarations.length>0){const i=n.declarations[0],s=getNameOfDeclaration(i);if(s&&!y){const l=isModuleWithStringLiteralName(i)&&hasSyntacticModifier(i,128),p="default"!==t.name&&!l,m=getSymbolDisplayPartsDocumentationAndSymbolKindWorker(e,n,getSourceFileOfNode(i),r,s,o,a,p?t:n,c,d);u.push(...m.displayParts),u.push(lineBreakPart()),S=m.documentation,x=m.tags,b&&m.canIncreaseVerbosityLevel&&(b.canIncreaseExpansionDepth=!0)}else S=n.getContextualDocumentationComment(i,e),x=n.getJsDocTags(e)}}if(t.declarations)switch(t.declarations[0].kind){case 271:u.push(keywordPart(95)),u.push(spacePart()),u.push(keywordPart(145));break;case 278:u.push(keywordPart(95)),u.push(spacePart()),u.push(keywordPart(t.declarations[0].isExportEquals?64:90));break;case 282:u.push(keywordPart(95));break;default:u.push(keywordPart(102))}u.push(spacePart()),addFullSymbolName(t),forEach(t.declarations,t=>{if(272===t.kind){const n=t;if(isExternalModuleImportEqualsDeclaration(n))u.push(spacePart()),u.push(operatorPart(64)),u.push(spacePart()),u.push(keywordPart(149)),u.push(punctuationPart(21)),u.push(displayPart(getTextOfNode(getExternalModuleImportEqualsDeclarationExpression(n)),8)),u.push(punctuationPart(22));else{const t=e.getSymbolAtLocation(n.moduleReference);t&&(u.push(spacePart()),u.push(operatorPart(64)),u.push(spacePart()),addFullSymbolName(t,r))}return!0}})}if(!y)if(""!==g){if(o)if(T?(prefixNextMeaning(),u.push(keywordPart(110))):addPrefixForAnyFunctionOrVar(t,g),"property"===g||"accessor"===g||"getter"===g||"setter"===g||"JSX attribute"===g||3&f||"local var"===g||"index"===g||"using"===g||"await using"===g||T){if(u.push(punctuationPart(59)),u.push(spacePart()),o.symbol&&262144&o.symbol.flags&&"index"!==g){const t=mapToDisplayParts(t=>{const n=e.typeParameterToDeclaration(o,r,Gm,void 0,void 0,c,d,b);getPrinter().writeNode(4,n,getSourceFileOfNode(getParseTreeNode(r)),t)},c);addRange(u,t)}else addRange(u,typeToDisplayParts(e,o,r,void 0,c,d,b));if(isTransientSymbol(t)&&t.links.target&&isTransientSymbol(t.links.target)&&t.links.target.links.tupleLabelDeclaration){const e=t.links.target.links.tupleLabelDeclaration;h.assertNode(e.name,isIdentifier),u.push(spacePart()),u.push(punctuationPart(21)),u.push(textPart(idText(e.name))),u.push(punctuationPart(22))}}else if(16&f||8192&f||16384&f||131072&f||98304&f||"method"===g){const e=o.getNonNullableType().getCallSignatures();e.length&&(addSignatureDisplayParts(e[0],e),v=e.length>1)}}else g=getSymbolKind(e,t,i);if(0!==m.length||v||(m=t.getContextualDocumentationComment(r,e)),0===m.length&&4&f&&t.parent&&t.declarations&&forEach(t.parent.declarations,e=>308===e.kind))for(const n of t.declarations){if(!n.parent||227!==n.parent.kind)continue;const t=e.getSymbolAtLocation(n.parent.right);if(t&&(m=t.getDocumentationComment(e),_=t.getJsDocTags(e),m.length>0))break}if(0===m.length&&isIdentifier(i)&&t.valueDeclaration&&isBindingElement(t.valueDeclaration)){const n=t.valueDeclaration,r=n.parent,i=n.propertyName||n.name;if(isIdentifier(i)&&isObjectBindingPattern(r)){const t=getTextOfIdentifierOrLiteral(i),n=e.getTypeAtLocation(r);m=firstDefined(n.isUnion()?n.types:[n],n=>{const r=n.getProperty(t);return r?r.getDocumentationComment(e):void 0})||l}}0!==_.length||v||isInJSDoc(i)||(_=t.getContextualJsDocTags(r,e)),0===m.length&&S&&(m=S),0===_.length&&x&&(_=x);const E=!b.truncated&&b.canIncreaseExpansionDepth;return{displayParts:u,documentation:m,symbolKind:g,tags:0===_.length?void 0:_,canIncreaseVerbosityLevel:void 0!==d?E:void 0};function getPrinter(){return ka()}function prefixNextMeaning(){u.length&&u.push(lineBreakPart()),addAliasPrefixIfNecessary()}function addAliasPrefixIfNecessary(){s&&(pushSymbolKind("alias"),u.push(spacePart()))}function addInPrefix(){u.push(spacePart()),u.push(keywordPart(103)),u.push(spacePart())}function tryExpandSymbol(t,n){if(C)return!0;if(function canExpandSymbol(t,n){if(void 0===d)return!1;const r=96&t.flags?e.getDeclaredTypeOfSymbol(t):e.getTypeOfSymbolAtLocation(t,i);return!(!r||e.isLibType(r))&&(0{const i=e.getEmitResolver().symbolToDeclarations(t,r,17408,c,void 0!==d?d-1:void 0,b),o=getPrinter(),a=t.valueDeclaration&&getSourceFileOfNode(t.valueDeclaration);i.forEach((e,t)=>{t>0&&n.writeLine(),o.writeNode(4,e,a,n)})},c);return addRange(u,i),C=!0,!0}return!1}function addFullSymbolName(r,i){let o;s&&r===t&&(r=s),"index"===g&&(o=e.getIndexInfosOfIndexSymbol(r));let a=[];131072&r.flags&&o?(r.parent&&(a=symbolToDisplayParts(e,r.parent)),a.push(punctuationPart(23)),o.forEach((t,n)=>{a.push(...typeToDisplayParts(e,t.keyType)),n!==o.length-1&&(a.push(spacePart()),a.push(punctuationPart(52)),a.push(spacePart()))}),a.push(punctuationPart(24))):a=symbolToDisplayParts(e,r,i||n,void 0,7),addRange(u,a),16777216&t.flags&&u.push(punctuationPart(58))}function addPrefixForAnyFunctionOrVar(e,t){prefixNextMeaning(),t&&(pushSymbolKind(t),e&&!some(e.declarations,e=>isArrowFunction(e)||(isFunctionExpression(e)||isClassExpression(e))&&!e.name)&&(u.push(spacePart()),addFullSymbolName(e)))}function pushSymbolKind(e){switch(e){case"var":case"function":case"let":case"const":case"constructor":case"using":case"await using":return void u.push(textOrKeywordPart(e));default:return u.push(punctuationPart(21)),u.push(textOrKeywordPart(e)),void u.push(punctuationPart(22))}}function addSignatureDisplayParts(t,n,i=0){addRange(u,signatureToDisplayParts(e,t,r,32|i,c,d,b)),n.length>1&&(u.push(spacePart()),u.push(punctuationPart(21)),u.push(operatorPart(40)),u.push(displayPart((n.length-1).toString(),7)),u.push(spacePart()),u.push(textPart(2===n.length?"overload":"overloads")),u.push(punctuationPart(22))),m=t.getDocumentationComment(e),_=t.getJsDocTags(),n.length>1&&0===m.length&&0===_.length&&(m=n[0].getDocumentationComment(e),_=n[0].getJsDocTags().filter(e=>"deprecated"!==e.name))}function writeTypeParametersOfSymbol(t,n){const r=mapToDisplayParts(r=>{const i=e.symbolToTypeParameterDeclarations(t,n,Gm);getPrinter().writeList(53776,i,getSourceFileOfNode(getParseTreeNode(n)),r)});addRange(u,r)}}function getSymbolDisplayPartsDocumentationAndSymbolKind(e,t,n,r,i,o=getMeaningFromLocation(i),a,s,c){return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(e,t,n,r,i,void 0,o,a,s,c)}function isLocalVariableOrFunction(e){return!e.parent&&forEach(e.declarations,e=>{if(219===e.kind)return!0;if(261!==e.kind&&263!==e.kind)return!1;for(let t=e.parent;!isFunctionBlock(t);t=t.parent)if(308===t.kind||269===t.kind)return!1;return!0})}var $m={};function getPos2(e){const t=e.__pos;return h.assert("number"==typeof t),t}function setPos(e,t){h.assert("number"==typeof t),e.__pos=t}function getEnd(e){const t=e.__end;return h.assert("number"==typeof t),t}function setEnd(e,t){h.assert("number"==typeof t),e.__end=t}i($m,{ChangeTracker:()=>e_,LeadingTriviaOption:()=>Qm,TrailingTriviaOption:()=>Xm,applyChanges:()=>applyChanges,assignPositionsToNode:()=>assignPositionsToNode,createWriter:()=>createWriter,deleteNode:()=>deleteNode,getAdjustedEndPosition:()=>getAdjustedEndPosition,isThisTypeAnnotatable:()=>isThisTypeAnnotatable,isValidLocationToAddComment:()=>isValidLocationToAddComment});var Qm=(e=>(e[e.Exclude=0]="Exclude",e[e.IncludeAll=1]="IncludeAll",e[e.JSDoc=2]="JSDoc",e[e.StartLine=3]="StartLine",e))(Qm||{}),Xm=(e=>(e[e.Exclude=0]="Exclude",e[e.ExcludeWhitespace=1]="ExcludeWhitespace",e[e.Include=2]="Include",e))(Xm||{});function skipWhitespacesAndLineBreaks(e,t){return skipTrivia(e,t,!1,!0)}var Ym={leadingTriviaOption:0,trailingTriviaOption:0};function getAdjustedRange(e,t,n,r){return{pos:getAdjustedStartPosition(e,t,r),end:getAdjustedEndPosition(e,n,r)}}function getAdjustedStartPosition(e,t,n,r=!1){var i,o;const{leadingTriviaOption:a}=n;if(0===a)return t.getStart(e);if(3===a){const n=t.getStart(e),r=getLineStartPositionForPosition(n,e);return rangeContainsPosition(t,r)?r:n}if(2===a){const n=getJSDocCommentRanges(t,e.text);if(null==n?void 0:n.length)return getLineStartPositionForPosition(n[0].pos,e)}const s=t.getFullStart(),c=t.getStart(e);if(s===c)return c;const l=getLineStartPositionForPosition(s,e);if(getLineStartPositionForPosition(c,e)===l)return 1===a?s:c;if(r){const t=(null==(i=getLeadingCommentRanges(e.text,s))?void 0:i[0])||(null==(o=getTrailingCommentRanges(e.text,s))?void 0:o[0]);if(t)return skipTrivia(e.text,t.end,!0,!0)}const d=s>0?1:0;let p=getStartPositionOfLine(getLineOfLocalPosition(e,l)+d,e);return p=skipWhitespacesAndLineBreaks(e.text,p),getStartPositionOfLine(getLineOfLocalPosition(e,p),e)}function getEndPositionOfMultilineTrailingComment(e,t,n){const{end:r}=t,{trailingTriviaOption:i}=n;if(2===i){const n=getTrailingCommentRanges(e.text,r);if(n){const r=getLineOfLocalPosition(e,t.end);for(const t of n){if(2===t.kind||getLineOfLocalPosition(e,t.pos)>r)break;if(getLineOfLocalPosition(e,t.end)>r)return skipTrivia(e.text,t.end,!0,!0)}}}}function getAdjustedEndPosition(e,t,n){var r;const{end:i}=t,{trailingTriviaOption:o}=n;if(0===o)return i;if(1===o){const t=concatenate(getTrailingCommentRanges(e.text,i),getLeadingCommentRanges(e.text,i)),n=null==(r=null==t?void 0:t[t.length-1])?void 0:r.end;return n||i}const a=getEndPositionOfMultilineTrailingComment(e,t,n);if(a)return a;const s=skipTrivia(e.text,i,!0);return s===i||2!==o&&!isLineBreak(e.text.charCodeAt(s-1))?i:s}function isSeparator(e,t){return!!t&&!!e.parent&&(28===t.kind||27===t.kind&&211===e.parent.kind)}function isThisTypeAnnotatable(e){return isFunctionExpression(e)||isFunctionDeclaration(e)}var Zm,e_=class _ChangeTracker{constructor(e,t){this.newLineCharacter=e,this.formatContext=t,this.changes=[],this.classesWithNodesInsertedAtStart=new Map,this.deletedNodes=[]}static fromContext(e){return new _ChangeTracker(getNewLineOrDefaultFromHost(e.host,e.formatContext.options),e.formatContext)}static with(e,t){const n=_ChangeTracker.fromContext(e);return t(n),n.getChanges()}pushRaw(e,t){h.assertEqual(e.fileName,t.fileName);for(const n of t.textChanges)this.changes.push({kind:3,sourceFile:e,text:n.newText,range:createTextRangeFromSpan(n.span)})}deleteRange(e,t){this.changes.push({kind:0,sourceFile:e,range:t})}delete(e,t){this.deletedNodes.push({sourceFile:e,node:t})}deleteNode(e,t,n={leadingTriviaOption:1}){this.deleteRange(e,getAdjustedRange(e,t,t,n))}deleteNodes(e,t,n={leadingTriviaOption:1},r){for(const i of t){const t=getAdjustedStartPosition(e,i,n,r),o=getAdjustedEndPosition(e,i,n);this.deleteRange(e,{pos:t,end:o}),r=!!getEndPositionOfMultilineTrailingComment(e,i,n)}}deleteModifier(e,t){this.deleteRange(e,{pos:t.getStart(e),end:skipTrivia(e.text,t.end,!0)})}deleteNodeRange(e,t,n,r={leadingTriviaOption:1}){const i=getAdjustedStartPosition(e,t,r),o=getAdjustedEndPosition(e,n,r);this.deleteRange(e,{pos:i,end:o})}deleteNodeRangeExcludingEnd(e,t,n,r={leadingTriviaOption:1}){const i=getAdjustedStartPosition(e,t,r),o=void 0===n?e.text.length:getAdjustedStartPosition(e,n,r);this.deleteRange(e,{pos:i,end:o})}replaceRange(e,t,n,r={}){this.changes.push({kind:1,sourceFile:e,range:t,options:r,node:n})}replaceNode(e,t,n,r=Ym){this.replaceRange(e,getAdjustedRange(e,t,t,r),n,r)}replaceNodeRange(e,t,n,r,i=Ym){this.replaceRange(e,getAdjustedRange(e,t,n,i),r,i)}replaceRangeWithNodes(e,t,n,r={}){this.changes.push({kind:2,sourceFile:e,range:t,options:r,nodes:n})}replaceNodeWithNodes(e,t,n,r=Ym){this.replaceRangeWithNodes(e,getAdjustedRange(e,t,t,r),n,r)}replaceNodeWithText(e,t,n){this.replaceRangeWithText(e,getAdjustedRange(e,t,t,Ym),n)}replaceNodeRangeWithNodes(e,t,n,r,i=Ym){this.replaceRangeWithNodes(e,getAdjustedRange(e,t,n,i),r,i)}nodeHasTrailingComment(e,t,n=Ym){return!!getEndPositionOfMultilineTrailingComment(e,t,n)}nextCommaToken(e,t){const n=findNextToken(t,t.parent,e);return n&&28===n.kind?n:void 0}replacePropertyAssignment(e,t,n){const r=this.nextCommaToken(e,t)?"":","+this.newLineCharacter;this.replaceNode(e,t,n,{suffix:r})}insertNodeAt(e,t,n,r={}){this.replaceRange(e,createRange(t),n,r)}insertNodesAt(e,t,n,r={}){this.replaceRangeWithNodes(e,createRange(t),n,r)}insertNodeAtTopOfFile(e,t,n){this.insertAtTopOfFile(e,t,n)}insertNodesAtTopOfFile(e,t,n){this.insertAtTopOfFile(e,t,n)}insertAtTopOfFile(e,t,n){const r=function getInsertionPositionAtSourceFileTop(e){let t;for(const n of e.statements){if(!isPrologueDirective(n))break;t=n}let n=0;const r=e.text;if(t)return n=t.end,advancePastLineBreak(),n;const i=getShebang(r);void 0!==i&&(n=i.length,advancePastLineBreak());const o=getLeadingCommentRanges(r,n);if(!o)return n;let a,s;for(const t of o){if(3===t.kind){if(isPinnedComment(r,t.pos)){a={range:t,pinnedOrTripleSlash:!0};continue}}else if(isRecognizedTripleSlashComment(r,t.pos,t.end)){a={range:t,pinnedOrTripleSlash:!0};continue}if(a){if(a.pinnedOrTripleSlash)break;if(e.getLineAndCharacterOfPosition(t.pos).line>=e.getLineAndCharacterOfPosition(a.range.end).line+2)break}if(e.statements.length){void 0===s&&(s=e.getLineAndCharacterOfPosition(e.statements[0].getStart()).line);if(sisString(e.comment)?Wr.createJSDocText(e.comment):e.comment),r=singleOrUndefined(t.jsDoc);return r&&positionsAreOnSameLine(r.pos,r.end,e)&&0===length(n)?void 0:Wr.createNodeArray(intersperse(n,Wr.createJSDocText("\n")))}replaceJSDocComment(e,t,n){this.insertJsdocCommentBefore(e,function updateJSDocHost(e){if(220!==e.kind)return e;const t=173===e.parent.kind?e.parent:e.parent.parent;return t.jsDoc=e.jsDoc,t}(t),Wr.createJSDocComment(this.createJSDocText(e,t),Wr.createNodeArray(n)))}addJSDocTags(e,t,n){const r=flatMapToMutable(t.jsDoc,e=>e.tags),i=n.filter(e=>!r.some((t,n)=>{const i=function tryMergeJsdocTags(e,t){if(e.kind!==t.kind)return;switch(e.kind){case 342:{const n=e,r=t;return isIdentifier(n.name)&&isIdentifier(r.name)&&n.name.escapedText===r.name.escapedText?Wr.createJSDocParameterTag(void 0,r.name,!1,r.typeExpression,r.isNameFirst,n.comment):void 0}case 343:return Wr.createJSDocReturnTag(void 0,t.typeExpression,e.comment);case 345:return Wr.createJSDocTypeTag(void 0,t.typeExpression,e.comment)}}(t,e);return i&&(r[n]=i),!!i}));this.replaceJSDocComment(e,t,[...r,...i])}filterJSDocTags(e,t,n){this.replaceJSDocComment(e,t,filter(flatMapToMutable(t.jsDoc,e=>e.tags),n))}replaceRangeWithText(e,t,n){this.changes.push({kind:3,sourceFile:e,range:t,text:n})}insertText(e,t,n){this.replaceRangeWithText(e,createRange(t),n)}tryInsertTypeAnnotation(e,t,n){let r;if(isFunctionLike(t)){if(r=findChildOfKind(t,22,e),!r){if(!isArrowFunction(t))return!1;r=first(t.parameters)}}else r=(261===t.kind?t.exclamationToken:t.questionToken)??t.name;return this.insertNodeAt(e,r.end,n,{prefix:": "}),!0}tryInsertThisTypeAnnotation(e,t,n){const r=findChildOfKind(t,21,e).getStart(e)+1,i=t.parameters.length?", ":"";this.insertNodeAt(e,r,n,{prefix:"this: ",suffix:i})}insertTypeParameters(e,t,n){const r=(findChildOfKind(t,21,e)||first(t.parameters)).getStart(e);this.insertNodesAt(e,r,n,{prefix:"<",suffix:">",joiner:", "})}getOptionsForInsertNodeBefore(e,t,n){return isStatement(e)||isClassElement(e)?{suffix:n?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:isVariableDeclaration(e)?{suffix:", "}:isParameter(e)?isParameter(t)?{suffix:", "}:{}:isStringLiteral(e)&&isImportDeclaration(e.parent)||isNamedImports(e)?{suffix:", "}:isImportSpecifier(e)?{suffix:","+(n?this.newLineCharacter:" ")}:h.failBadSyntaxKind(e)}insertNodeAtConstructorStart(e,t,n){const r=firstOrUndefined(t.body.statements);r&&t.body.multiLine?this.insertNodeBefore(e,r,n):this.replaceConstructorBody(e,t,[n,...t.body.statements])}insertNodeAtConstructorStartAfterSuperCall(e,t,n){const r=find(t.body.statements,e=>isExpressionStatement(e)&&isSuperCall(e.expression));r&&t.body.multiLine?this.insertNodeAfter(e,r,n):this.replaceConstructorBody(e,t,[...t.body.statements,n])}insertNodeAtConstructorEnd(e,t,n){const r=lastOrUndefined(t.body.statements);r&&t.body.multiLine?this.insertNodeAfter(e,r,n):this.replaceConstructorBody(e,t,[...t.body.statements,n])}replaceConstructorBody(e,t,n){this.replaceNode(e,t.body,Wr.createBlock(n,!0))}insertNodeAtEndOfScope(e,t,n){const r=getAdjustedStartPosition(e,t.getLastToken(),{});this.insertNodeAt(e,r,n,{prefix:isLineBreak(e.text.charCodeAt(t.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})}insertMemberAtStart(e,t,n){this.insertNodeAtStartWorker(e,t,n)}insertNodeAtObjectStart(e,t,n){this.insertNodeAtStartWorker(e,t,n)}insertNodeAtStartWorker(e,t,n){const r=this.guessIndentationFromExistingMembers(e,t)??this.computeIndentationForNewMember(e,t);this.insertNodeAt(e,getMembersOrProperties(t).pos,n,this.getInsertNodeAtStartInsertOptions(e,t,r))}guessIndentationFromExistingMembers(e,t){let n,r=t;for(const i of getMembersOrProperties(t)){if(rangeStartPositionsAreOnSameLine(r,i,e))return;const t=i.getStart(e),o=r_.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(t,e),t,e,this.formatContext.options);if(void 0===n)n=o;else if(o!==n)return;r=i}return n}computeIndentationForNewMember(e,t){const n=t.getStart(e);return r_.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(n,e),n,e,this.formatContext.options)+(this.formatContext.options.indentSize??4)}getInsertNodeAtStartInsertOptions(e,t,n){const r=0===getMembersOrProperties(t).length,i=!this.classesWithNodesInsertedAtStart.has(getNodeId(t));i&&this.classesWithNodesInsertedAtStart.set(getNodeId(t),{node:t,sourceFile:e});const o=isObjectLiteralExpression(t)&&(!isJsonSourceFile(e)||!r);return{indentation:n,prefix:(isObjectLiteralExpression(t)&&isJsonSourceFile(e)&&r&&!i?",":"")+this.newLineCharacter,suffix:o?",":isInterfaceDeclaration(t)&&r?";":""}}insertNodeAfterComma(e,t,n){const r=this.insertNodeAfterWorker(e,this.nextCommaToken(e,t)||t,n);this.insertNodeAt(e,r,n,this.getInsertNodeAfterOptions(e,t))}insertNodeAfter(e,t,n){const r=this.insertNodeAfterWorker(e,t,n);this.insertNodeAt(e,r,n,this.getInsertNodeAfterOptions(e,t))}insertNodeAtEndOfList(e,t,n){this.insertNodeAt(e,t.end,n,{prefix:", "})}insertNodesAfter(e,t,n){const r=this.insertNodeAfterWorker(e,t,first(n));this.insertNodesAt(e,r,n,this.getInsertNodeAfterOptions(e,t))}insertNodeAfterWorker(e,t,n){(function needSemicolonBetween(e,t){return(isPropertySignature(e)||isPropertyDeclaration(e))&&isClassOrTypeElement(t)&&168===t.name.kind||isStatementButNotDeclaration(e)&&isStatementButNotDeclaration(t)})(t,n)&&59!==e.text.charCodeAt(t.end-1)&&this.replaceRange(e,createRange(t.end),Wr.createToken(27));return getAdjustedEndPosition(e,t,{})}getInsertNodeAfterOptions(e,t){const n=this.getInsertNodeAfterOptionsWorker(t);return{...n,prefix:t.end===e.end&&isStatement(t)?n.prefix?`\n${n.prefix}`:"\n":n.prefix}}getInsertNodeAfterOptionsWorker(e){switch(e.kind){case 264:case 268:return{prefix:this.newLineCharacter,suffix:this.newLineCharacter};case 261:case 11:case 80:return{prefix:", "};case 304:return{suffix:","+this.newLineCharacter};case 95:return{prefix:" "};case 170:return{};default:return h.assert(isStatement(e)||isClassOrTypeElement(e)),{suffix:this.newLineCharacter}}}insertName(e,t,n){if(h.assert(!t.name),220===t.kind){const r=findChildOfKind(t,39,e),i=findChildOfKind(t,21,e);i?(this.insertNodesAt(e,i.getStart(e),[Wr.createToken(100),Wr.createIdentifier(n)],{joiner:" "}),deleteNode(this,e,r)):(this.insertText(e,first(t.parameters).getStart(e),`function ${n}(`),this.replaceRange(e,r,Wr.createToken(22))),242!==t.body.kind&&(this.insertNodesAt(e,t.body.getStart(e),[Wr.createToken(19),Wr.createToken(107)],{joiner:" ",suffix:" "}),this.insertNodesAt(e,t.body.end,[Wr.createToken(27),Wr.createToken(20)],{joiner:" "}))}else{const r=findChildOfKind(t,219===t.kind?100:86,e).end;this.insertNodeAt(e,r,Wr.createIdentifier(n),{prefix:" "})}}insertExportModifier(e,t){this.insertText(e,t.getStart(e),"export ")}insertImportSpecifierAtIndex(e,t,n,r){const i=n.elements[r-1];i?this.insertNodeInListAfter(e,i,t):this.insertNodeBefore(e,n.elements[0],t,!positionsAreOnSameLine(n.elements[0].getStart(),n.parent.parent.getStart(),e))}insertNodeInListAfter(e,t,n,r=r_.SmartIndenter.getContainingList(t,e)){if(!r)return void h.fail("node is not a list element");const i=indexOfNode(r,t);if(i<0)return;const o=t.getEnd();if(i!==r.length-1){const o=getTokenAtPosition(e,t.end);if(o&&isSeparator(t,o)){const t=r[i+1],a=skipWhitespacesAndLineBreaks(e.text,t.getFullStart()),s=`${tokenToString(o.kind)}${e.text.substring(o.end,a)}`;this.insertNodesAt(e,a,[n],{suffix:s})}}else{const a=t.getStart(e),s=getLineStartPositionForPosition(a,e);let c,l=!1;if(1===r.length)c=28;else{const n=findPrecedingToken(t.pos,e);c=isSeparator(t,n)?n.kind:28;l=getLineStartPositionForPosition(r[i-1].getStart(e),e)!==s}if(!function hasCommentsBeforeLineBreak(e,t){let n=t;for(;n{const[n,r]=function getClassOrObjectBraceEnds(e,t){const n=findChildOfKind(e,19,t),r=findChildOfKind(e,20,t);return[null==n?void 0:n.end,null==r?void 0:r.end]}(e,t);if(void 0!==n&&void 0!==r){const i=0===getMembersOrProperties(e).length,o=positionsAreOnSameLine(n,r,t);i&&o&&n!==r-1&&this.deleteRange(t,createRange(n,r-1)),o&&this.insertText(t,r-1,this.newLineCharacter)}})}finishDeleteDeclarations(){const e=new Set;for(const{sourceFile:t,node:n}of this.deletedNodes)this.deletedNodes.some(e=>e.sourceFile===t&&rangeContainsRangeExclusive(e.node,n))||(isArray(n)?this.deleteRange(t,rangeOfTypeParameters(t,n)):t_.deleteDeclaration(this,e,t,n));e.forEach(t=>{const n=t.getSourceFile(),r=r_.SmartIndenter.getContainingList(t,n);if(t!==last(r))return;const i=findLastIndex(r,t=>!e.has(t),r.length-2);-1!==i&&this.deleteRange(n,{pos:r[i].end,end:startPositionToDeleteNodeInList(n,r[i+1])})})}getChanges(e){this.finishDeleteDeclarations(),this.finishClassesWithNodesInsertedAtStart();const t=Zm.getTextChangesFromChanges(this.changes,this.newLineCharacter,this.formatContext,e);return this.newFileChanges&&this.newFileChanges.forEach((e,n)=>{t.push(Zm.newFileChanges(n,e,this.newLineCharacter,this.formatContext))}),t}createNewFile(e,t,n){this.insertStatementsInNewFile(t,n,e)}};function startPositionToDeleteNodeInList(e,t){return skipTrivia(e.text,getAdjustedStartPosition(e,t,{leadingTriviaOption:1}),!1,!0)}function endPositionToDeleteNodeInList(e,t,n,r){const i=startPositionToDeleteNodeInList(e,r);if(void 0===n||positionsAreOnSameLine(getAdjustedEndPosition(e,t,{}),i,e))return i;const o=findPrecedingToken(r.getStart(e),e);if(isSeparator(t,o)){const r=findPrecedingToken(t.getStart(e),e);if(isSeparator(n,r)){const t=skipTrivia(e.text,o.getEnd(),!0,!0);if(positionsAreOnSameLine(r.getStart(e),o.getStart(e),e))return isLineBreak(e.text.charCodeAt(t-1))?t-1:t;if(isLineBreak(e.text.charCodeAt(t)))return t}}return i}function getMembersOrProperties(e){return isObjectLiteralExpression(e)?e.properties:e.members}function applyChanges(e,t){for(let n=t.length-1;n>=0;n--){const{span:r,newText:i}=t[n];e=`${e.substring(0,r.start)}${i}${e.substring(textSpanEnd(r))}`}return e}(e=>{function newFileChangesWorker(e,t,n,r){const i=flatMap(t,e=>e.statements.map(t=>4===t?"":getNonformattedText(t,e.oldFile,n).text)).join(n),o=createSourceFile("any file name",i,{languageVersion:99,jsDocParsingMode:1},!0,e);return applyChanges(i,r_.formatDocument(o,r))+n}function getNonformattedText(e,t,n){const r=createWriter(n);return createPrinter({newLine:getNewLineKind(n),neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},r).writeNode(4,e,t,r),{text:r.getText(),node:assignPositionsToNode(e)}}e.getTextChangesFromChanges=function getTextChangesFromChanges(e,t,n,r){return mapDefined(group(e,e=>e.sourceFile.path),e=>{const i=e[0].sourceFile,o=toSorted(e,(e,t)=>e.range.pos-t.range.pos||e.range.end-t.range.end);for(let e=0;e`${JSON.stringify(o[e].range)} and ${JSON.stringify(o[e+1].range)}`);const a=mapDefined(o,e=>{const o=createTextSpanFromRange(e.range),a=1===e.kind?getSourceFileOfNode(getOriginalNode(e.node))??e.sourceFile:2===e.kind?getSourceFileOfNode(getOriginalNode(e.nodes[0]))??e.sourceFile:e.sourceFile,s=function computeNewText(e,t,n,r,i,o){var a;if(0===e.kind)return"";if(3===e.kind)return e.text;const{options:s={},range:{pos:c}}=e,format=e=>function getFormattedTextOfNode(e,t,n,r,{indentation:i,prefix:o,delta:a},s,c,l){const{node:d,text:p}=getNonformattedText(e,t,s);l&&l(d,p);const u=getFormatCodeSettingsForWriting(c,t),m=void 0!==i?i:r_.SmartIndenter.getIndentation(r,n,u,o===s||getLineStartPositionForPosition(r,t)===r);void 0===a&&(a=r_.SmartIndenter.shouldIndentChildNode(u,e)&&u.indentSize||0);const _={text:p,getLineAndCharacterOfPosition(e){return getLineAndCharacterOfPosition(this,e)}},f=r_.formatNodeGivenIndentation(d,_,t.languageVariant,m,a,{...c,options:u});return applyChanges(p,f)}(e,t,n,c,s,r,i,o),l=2===e.kind?e.nodes.map(e=>removeSuffix(format(e),r)).join((null==(a=e.options)?void 0:a.joiner)||r):format(e.node),d=void 0!==s.indentation||getLineStartPositionForPosition(c,t)===c?l:l.replace(/^\s+/,"");return(s.prefix||"")+d+(!s.suffix||endsWith(d,s.suffix)?"":s.suffix)}(e,a,i,t,n,r);if(o.length!==s.length||!stringContainsAt(a.text,s,o.start))return createTextChange(o,s)});return a.length>0?{fileName:i.fileName,textChanges:a}:void 0})},e.newFileChanges=function newFileChanges(e,t,n,r){const i=newFileChangesWorker(getScriptKindFromFileName(e),t,n,r);return{fileName:e,textChanges:[createTextChange(createTextSpan(0,0),i)],isNewFile:!0}},e.newFileChangesWorker=newFileChangesWorker,e.getNonformattedText=getNonformattedText})(Zm||(Zm={}));var t_,n_={...ba,factory:createNodeFactory(1|ba.factory.flags,ba.factory.baseFactory)};function assignPositionsToNode(e){const t=visitEachChild(e,assignPositionsToNode,n_,assignPositionsToNodeArray,assignPositionsToNode),n=nodeIsSynthesized(t)?t:Object.create(t);return setTextRangePosEnd(n,getPos2(e),getEnd(e)),n}function assignPositionsToNodeArray(e,t,n,r,i){const o=visitNodes2(e,t,n,r,i);if(!o)return o;h.assert(e);const a=o===e?Wr.createNodeArray(o.slice(0)):o;return setTextRangePosEnd(a,getPos2(e),getEnd(e)),a}function createWriter(e){let t=0;const n=createTextWriter(e);function setLastNonTriviaPosition(e,r){if(r||!function isTrivia2(e){return skipTrivia(e,0)===e.length}(e)){t=n.getTextPos();let r=0;for(;isWhiteSpaceLike(e.charCodeAt(e.length-r-1));)r++;t-=r}}return{onBeforeEmitNode:e=>{e&&setPos(e,t)},onAfterEmitNode:e=>{e&&setEnd(e,t)},onBeforeEmitNodeArray:e=>{e&&setPos(e,t)},onAfterEmitNodeArray:e=>{e&&setEnd(e,t)},onBeforeEmitToken:e=>{e&&setPos(e,t)},onAfterEmitToken:e=>{e&&setEnd(e,t)},write:function write(e){n.write(e),setLastNonTriviaPosition(e,!1)},writeComment:function writeComment(e){n.writeComment(e)},writeKeyword:function writeKeyword(e){n.writeKeyword(e),setLastNonTriviaPosition(e,!1)},writeOperator:function writeOperator(e){n.writeOperator(e),setLastNonTriviaPosition(e,!1)},writePunctuation:function writePunctuation(e){n.writePunctuation(e),setLastNonTriviaPosition(e,!1)},writeTrailingSemicolon:function writeTrailingSemicolon(e){n.writeTrailingSemicolon(e),setLastNonTriviaPosition(e,!1)},writeParameter:function writeParameter(e){n.writeParameter(e),setLastNonTriviaPosition(e,!1)},writeProperty:function writeProperty(e){n.writeProperty(e),setLastNonTriviaPosition(e,!1)},writeSpace:function writeSpace(e){n.writeSpace(e),setLastNonTriviaPosition(e,!1)},writeStringLiteral:function writeStringLiteral(e){n.writeStringLiteral(e),setLastNonTriviaPosition(e,!1)},writeSymbol:function writeSymbol(e,t){n.writeSymbol(e,t),setLastNonTriviaPosition(e,!1)},writeLine:function writeLine(e){n.writeLine(e)},increaseIndent:function increaseIndent(){n.increaseIndent()},decreaseIndent:function decreaseIndent(){n.decreaseIndent()},getText:function getText(){return n.getText()},rawWrite:function rawWrite(e){n.rawWrite(e),setLastNonTriviaPosition(e,!1)},writeLiteral:function writeLiteral(e){n.writeLiteral(e),setLastNonTriviaPosition(e,!0)},getTextPos:function getTextPos(){return n.getTextPos()},getLine:function getLine(){return n.getLine()},getColumn:function getColumn(){return n.getColumn()},getIndent:function getIndent(){return n.getIndent()},isAtStartOfLine:function isAtStartOfLine(){return n.isAtStartOfLine()},hasTrailingComment:()=>n.hasTrailingComment(),hasTrailingWhitespace:()=>n.hasTrailingWhitespace(),clear:function clear2(){n.clear(),t=0}}}function isValidLocationToAddComment(e,t){return!(isInComment(e,t)||isInString(e,t)||isInTemplateString(e,t)||isInJSXText(e,t))}function deleteNode(e,t,n,r={leadingTriviaOption:1}){const i=getAdjustedStartPosition(t,n,r),o=getAdjustedEndPosition(t,n,r);e.deleteRange(t,{pos:i,end:o})}function deleteNodeInList(e,t,n,r){const i=h.checkDefined(r_.SmartIndenter.getContainingList(r,n)),o=indexOfNode(i,r);h.assert(-1!==o),1!==i.length?(h.assert(!t.has(r),"Deleting a node twice"),t.add(r),e.deleteRange(n,{pos:startPositionToDeleteNodeInList(n,r),end:o===i.length-1?getAdjustedEndPosition(n,r,{}):endPositionToDeleteNodeInList(n,r,i[o-1],i[o+1])})):deleteNode(e,n,r)}(e=>{function deleteImportBinding(e,t,n){if(n.parent.name){const r=h.checkDefined(getTokenAtPosition(t,n.pos-1));e.deleteRange(t,{pos:r.getStart(t),end:n.end})}else{deleteNode(e,t,getAncestor(n,273))}}e.deleteDeclaration=function deleteDeclaration2(e,t,n,r){switch(r.kind){case 170:{const i=r.parent;isArrowFunction(i)&&1===i.parameters.length&&!findChildOfKind(i,21,n)?e.replaceNodeWithText(n,r,"()"):deleteNodeInList(e,t,n,r);break}case 273:case 272:deleteNode(e,n,r,{leadingTriviaOption:n.imports.length&&r===first(n.imports).parent||r===find(n.statements,isAnyImportSyntax)?0:hasJSDocNodes(r)?2:3});break;case 209:const i=r.parent;208===i.kind&&r!==last(i.elements)?deleteNode(e,n,r):deleteNodeInList(e,t,n,r);break;case 261:!function deleteVariableDeclaration(e,t,n,r){const{parent:i}=r;if(300===i.kind)return void e.deleteNodeRange(n,findChildOfKind(i,21,n),findChildOfKind(i,22,n));if(1!==i.declarations.length)return void deleteNodeInList(e,t,n,r);const o=i.parent;switch(o.kind){case 251:case 250:e.replaceNode(n,r,Wr.createObjectLiteralExpression());break;case 249:deleteNode(e,n,i);break;case 244:deleteNode(e,n,o,{leadingTriviaOption:hasJSDocNodes(o)?2:3});break;default:h.assertNever(o)}}(e,t,n,r);break;case 169:deleteNodeInList(e,t,n,r);break;case 277:const o=r.parent;1===o.elements.length?deleteImportBinding(e,n,o):deleteNodeInList(e,t,n,r);break;case 275:deleteImportBinding(e,n,r);break;case 27:deleteNode(e,n,r,{trailingTriviaOption:0});break;case 100:deleteNode(e,n,r,{leadingTriviaOption:0});break;case 264:case 263:deleteNode(e,n,r,{leadingTriviaOption:hasJSDocNodes(r)?2:3});break;default:r.parent?isImportClause(r.parent)&&r.parent.name===r?function deleteDefaultImport(e,t,n){if(n.namedBindings){const r=n.name.getStart(t),i=getTokenAtPosition(t,n.name.end);if(i&&28===i.kind){const n=skipTrivia(t.text,i.end,!1,!0);e.deleteRange(t,{pos:r,end:n})}else deleteNode(e,t,n.name)}else deleteNode(e,t,n.parent)}(e,n,r.parent):isCallExpression(r.parent)&&contains(r.parent.arguments,r)?deleteNodeInList(e,t,n,r):deleteNode(e,n,r):deleteNode(e,n,r)}}})(t_||(t_={}));var r_={};i(r_,{FormattingContext:()=>o_,FormattingRequestKind:()=>i_,RuleAction:()=>d_,RuleFlags:()=>p_,SmartIndenter:()=>g_,anyContext:()=>l_,createTextRangeWithKind:()=>createTextRangeWithKind,formatDocument:()=>formatDocument,formatNodeGivenIndentation:()=>formatNodeGivenIndentation,formatOnClosingCurly:()=>formatOnClosingCurly,formatOnEnter:()=>formatOnEnter,formatOnOpeningCurly:()=>formatOnOpeningCurly,formatOnSemicolon:()=>formatOnSemicolon,formatSelection:()=>formatSelection,getAllRules:()=>getAllRules,getFormatContext:()=>getFormatContext,getFormattingScanner:()=>getFormattingScanner,getIndentationString:()=>getIndentationString,getRangeOfEnclosingComment:()=>getRangeOfEnclosingComment});var i_=(e=>(e[e.FormatDocument=0]="FormatDocument",e[e.FormatSelection=1]="FormatSelection",e[e.FormatOnEnter=2]="FormatOnEnter",e[e.FormatOnSemicolon=3]="FormatOnSemicolon",e[e.FormatOnOpeningCurlyBrace=4]="FormatOnOpeningCurlyBrace",e[e.FormatOnClosingCurlyBrace=5]="FormatOnClosingCurlyBrace",e))(i_||{}),o_=class{constructor(e,t,n){this.sourceFile=e,this.formattingRequestKind=t,this.options=n}updateContext(e,t,n,r,i){this.currentTokenSpan=h.checkDefined(e),this.currentTokenParent=h.checkDefined(t),this.nextTokenSpan=h.checkDefined(n),this.nextTokenParent=h.checkDefined(r),this.contextNode=h.checkDefined(i),this.contextNodeAllOnSameLine=void 0,this.nextNodeAllOnSameLine=void 0,this.tokensAreOnSameLine=void 0,this.contextNodeBlockIsOnOneLine=void 0,this.nextNodeBlockIsOnOneLine=void 0}ContextNodeAllOnSameLine(){return void 0===this.contextNodeAllOnSameLine&&(this.contextNodeAllOnSameLine=this.NodeIsOnOneLine(this.contextNode)),this.contextNodeAllOnSameLine}NextNodeAllOnSameLine(){return void 0===this.nextNodeAllOnSameLine&&(this.nextNodeAllOnSameLine=this.NodeIsOnOneLine(this.nextTokenParent)),this.nextNodeAllOnSameLine}TokensAreOnSameLine(){if(void 0===this.tokensAreOnSameLine){const e=this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line,t=this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;this.tokensAreOnSameLine=e===t}return this.tokensAreOnSameLine}ContextNodeBlockIsOnOneLine(){return void 0===this.contextNodeBlockIsOnOneLine&&(this.contextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.contextNode)),this.contextNodeBlockIsOnOneLine}NextNodeBlockIsOnOneLine(){return void 0===this.nextNodeBlockIsOnOneLine&&(this.nextNodeBlockIsOnOneLine=this.BlockIsOnOneLine(this.nextTokenParent)),this.nextNodeBlockIsOnOneLine}NodeIsOnOneLine(e){return this.sourceFile.getLineAndCharacterOfPosition(e.getStart(this.sourceFile)).line===this.sourceFile.getLineAndCharacterOfPosition(e.getEnd()).line}BlockIsOnOneLine(e){const t=findChildOfKind(e,19,this.sourceFile),n=findChildOfKind(e,20,this.sourceFile);if(t&&n){return this.sourceFile.getLineAndCharacterOfPosition(t.getEnd()).line===this.sourceFile.getLineAndCharacterOfPosition(n.getStart(this.sourceFile)).line}return!1}},a_=createScanner(99,!1,0),s_=createScanner(99,!1,1);function getFormattingScanner(e,t,n,r,i){const o=1===t?s_:a_;o.setText(e),o.resetTokenState(n);let a,s,c,l,d,p=!0;const u=i({advance:function advance(){d=void 0;o.getTokenFullStart()!==n?p=!!s&&4===last(s).kind:o.scan();a=void 0,s=void 0;let e=o.getTokenFullStart();for(;ea,lastTrailingTriviaWasNewLine:()=>p,skipToEndOf:function skipToEndOf(e){o.resetTokenState(e.end),c=o.getTokenFullStart(),l=void 0,d=void 0,p=!1,a=void 0,s=void 0},skipToStartOf:function skipToStartOf(e){o.resetTokenState(e.pos),c=o.getTokenFullStart(),l=void 0,d=void 0,p=!1,a=void 0,s=void 0},getTokenFullStart:()=>(null==d?void 0:d.token.pos)??o.getTokenStart(),getStartPos:()=>(null==d?void 0:d.token.pos)??o.getTokenStart()});return d=void 0,o.setText(void 0),u;function isOnToken(){const e=d?d.token.kind:o.getToken();return 1!==e&&!isTrivia(e)}function isOnEOF(){return 1===(d?d.token.kind:o.getToken())}function fixTokenKind(e,t){return isToken(t)&&e.token.kind!==t.kind&&(e.token.kind=t.kind),e}}var c_,l_=l,d_=(e=>(e[e.None=0]="None",e[e.StopProcessingSpaceActions=1]="StopProcessingSpaceActions",e[e.StopProcessingTokenActions=2]="StopProcessingTokenActions",e[e.InsertSpace=4]="InsertSpace",e[e.InsertNewLine=8]="InsertNewLine",e[e.DeleteSpace=16]="DeleteSpace",e[e.DeleteToken=32]="DeleteToken",e[e.InsertTrailingSemicolon=64]="InsertTrailingSemicolon",e[e.StopAction=3]="StopAction",e[e.ModifySpaceAction=28]="ModifySpaceAction",e[e.ModifyTokenAction=96]="ModifyTokenAction",e))(d_||{}),p_=(e=>(e[e.None=0]="None",e[e.CanDeleteNewLines=1]="CanDeleteNewLines",e))(p_||{});function getAllRules(){const e=[];for(let t=0;t<=166;t++)1!==t&&e.push(t);function anyTokenExcept(...t){return{tokens:e.filter(e=>!t.some(t=>t===e)),isSpecific:!1}}const t={tokens:e,isSpecific:!1},n=tokenRangeFrom([...e,3]),r=tokenRangeFrom([...e,1]),i=tokenRangeFromRange(83,166),o=tokenRangeFromRange(30,79),a=[103,104,165,130,142,152],s=[80,...Ks],c=n,l=tokenRangeFrom([80,32,3,86,95,102]),d=tokenRangeFrom([22,3,92,113,98,93,85]);return[...[rule("IgnoreBeforeComment",t,[2,3],l_,1),rule("IgnoreAfterLineComment",2,t,l_,1),rule("NotSpaceBeforeColon",t,59,[isNonJsxSameLineTokenContext,isNotBinaryOpContext,isNotTypeAnnotationContext],16),rule("SpaceAfterColon",59,t,[isNonJsxSameLineTokenContext,isNotBinaryOpContext,isNextTokenParentNotJsxNamespacedName],4),rule("NoSpaceBeforeQuestionMark",t,58,[isNonJsxSameLineTokenContext,isNotBinaryOpContext,isNotTypeAnnotationContext],16),rule("SpaceAfterQuestionMarkInConditionalOperator",58,t,[isNonJsxSameLineTokenContext,isConditionalOperatorContext],4),rule("NoSpaceAfterQuestionMark",58,t,[isNonJsxSameLineTokenContext,isNonOptionalPropertyContext],16),rule("NoSpaceBeforeDot",t,[25,29],[isNonJsxSameLineTokenContext,isNotPropertyAccessOnIntegerLiteral],16),rule("NoSpaceAfterDot",[25,29],t,[isNonJsxSameLineTokenContext],16),rule("NoSpaceBetweenImportParenInImportType",102,21,[isNonJsxSameLineTokenContext,isImportTypeContext],16),rule("NoSpaceAfterUnaryPrefixOperator",[46,47,55,54],[9,10,80,21,23,19,110,105],[isNonJsxSameLineTokenContext,isNotBinaryOpContext],16),rule("NoSpaceAfterUnaryPreincrementOperator",46,[80,21,110,105],[isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterUnaryPredecrementOperator",47,[80,21,110,105],[isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeUnaryPostincrementOperator",[80,22,24,105],46,[isNonJsxSameLineTokenContext,isNotStatementConditionContext],16),rule("NoSpaceBeforeUnaryPostdecrementOperator",[80,22,24,105],47,[isNonJsxSameLineTokenContext,isNotStatementConditionContext],16),rule("SpaceAfterPostincrementWhenFollowedByAdd",46,40,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterAddWhenFollowedByUnaryPlus",40,40,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterAddWhenFollowedByPreincrement",40,46,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterPostdecrementWhenFollowedBySubtract",47,41,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterSubtractWhenFollowedByUnaryMinus",41,41,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterSubtractWhenFollowedByPredecrement",41,47,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("NoSpaceAfterCloseBrace",20,[28,27],[isNonJsxSameLineTokenContext],16),rule("NewLineBeforeCloseBraceInBlockContext",n,20,[isMultilineBlockContext],8),rule("SpaceAfterCloseBrace",20,anyTokenExcept(22),[isNonJsxSameLineTokenContext,isAfterCodeBlockContext],4),rule("SpaceBetweenCloseBraceAndElse",20,93,[isNonJsxSameLineTokenContext],4),rule("SpaceBetweenCloseBraceAndWhile",20,117,[isNonJsxSameLineTokenContext],4),rule("NoSpaceBetweenEmptyBraceBrackets",19,20,[isNonJsxSameLineTokenContext,isObjectContext],16),rule("SpaceAfterConditionalClosingParen",22,23,[isControlDeclContext],4),rule("NoSpaceBetweenFunctionKeywordAndStar",100,42,[isFunctionDeclarationOrFunctionExpressionContext],16),rule("SpaceAfterStarInGeneratorDeclaration",42,80,[isFunctionDeclarationOrFunctionExpressionContext],4),rule("SpaceAfterFunctionInFuncDecl",100,t,[isFunctionDeclContext],4),rule("NewLineAfterOpenBraceInBlockContext",19,t,[isMultilineBlockContext],8),rule("SpaceAfterGetSetInMember",[139,153],80,[isFunctionDeclContext],4),rule("NoSpaceBetweenYieldKeywordAndStar",127,42,[isNonJsxSameLineTokenContext,isYieldOrYieldStarWithOperand],16),rule("SpaceBetweenYieldOrYieldStarAndOperand",[127,42],t,[isNonJsxSameLineTokenContext,isYieldOrYieldStarWithOperand],4),rule("NoSpaceBetweenReturnAndSemicolon",107,27,[isNonJsxSameLineTokenContext],16),rule("SpaceAfterCertainKeywords",[115,111,105,91,107,114,135],t,[isNonJsxSameLineTokenContext],4),rule("SpaceAfterLetConstInVariableDeclaration",[121,87],t,[isNonJsxSameLineTokenContext,isStartOfVariableDeclarationList],4),rule("NoSpaceBeforeOpenParenInFuncCall",t,21,[isNonJsxSameLineTokenContext,isFunctionCallOrNewContext,isPreviousTokenNotComma],16),rule("SpaceBeforeBinaryKeywordOperator",t,a,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterBinaryKeywordOperator",a,t,[isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterVoidOperator",116,t,[isNonJsxSameLineTokenContext,isVoidOpContext],4),rule("SpaceBetweenAsyncAndOpenParen",134,21,[isArrowFunctionContext,isNonJsxSameLineTokenContext],4),rule("SpaceBetweenAsyncAndFunctionKeyword",134,[100,80],[isNonJsxSameLineTokenContext],4),rule("NoSpaceBetweenTagAndTemplateString",[80,22],[15,16],[isNonJsxSameLineTokenContext],16),rule("SpaceBeforeJsxAttribute",t,80,[isNextTokenParentJsxAttribute,isNonJsxSameLineTokenContext],4),rule("SpaceBeforeSlashInJsxOpeningElement",t,44,[isJsxSelfClosingElementContext,isNonJsxSameLineTokenContext],4),rule("NoSpaceBeforeGreaterThanTokenInJsxOpeningElement",44,32,[isJsxSelfClosingElementContext,isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeEqualInJsxAttribute",t,64,[isJsxAttributeContext,isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterEqualInJsxAttribute",64,t,[isJsxAttributeContext,isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeJsxNamespaceColon",80,59,[isNextTokenParentJsxNamespacedName],16),rule("NoSpaceAfterJsxNamespaceColon",59,80,[isNextTokenParentJsxNamespacedName],16),rule("NoSpaceAfterModuleImport",[144,149],21,[isNonJsxSameLineTokenContext],16),rule("SpaceAfterCertainTypeScriptKeywords",[128,129,86,138,90,94,95,96,139,119,102,120,144,145,123,125,124,148,153,126,156,161,143,140],t,[isNonJsxSameLineTokenContext],4),rule("SpaceBeforeCertainTypeScriptKeywords",t,[96,119,161],[isNonJsxSameLineTokenContext],4),rule("SpaceAfterModuleName",11,19,[isModuleDeclContext],4),rule("SpaceBeforeArrow",t,39,[isNonJsxSameLineTokenContext],4),rule("SpaceAfterArrow",39,t,[isNonJsxSameLineTokenContext],4),rule("NoSpaceAfterEllipsis",26,80,[isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterOptionalParameters",58,[22,28],[isNonJsxSameLineTokenContext,isNotBinaryOpContext],16),rule("NoSpaceBetweenEmptyInterfaceBraceBrackets",19,20,[isNonJsxSameLineTokenContext,isObjectTypeContext],16),rule("NoSpaceBeforeOpenAngularBracket",s,30,[isNonJsxSameLineTokenContext,isTypeArgumentOrParameterOrAssertionContext],16),rule("NoSpaceBetweenCloseParenAndAngularBracket",22,30,[isNonJsxSameLineTokenContext,isTypeArgumentOrParameterOrAssertionContext],16),rule("NoSpaceAfterOpenAngularBracket",30,t,[isNonJsxSameLineTokenContext,isTypeArgumentOrParameterOrAssertionContext],16),rule("NoSpaceBeforeCloseAngularBracket",t,32,[isNonJsxSameLineTokenContext,isTypeArgumentOrParameterOrAssertionContext],16),rule("NoSpaceAfterCloseAngularBracket",32,[21,23,32,28],[isNonJsxSameLineTokenContext,isTypeArgumentOrParameterOrAssertionContext,isNotFunctionDeclContext,isNonTypeAssertionContext],16),rule("SpaceBeforeAt",[22,80],60,[isNonJsxSameLineTokenContext],4),rule("NoSpaceAfterAt",60,t,[isNonJsxSameLineTokenContext],16),rule("SpaceAfterDecorator",t,[128,80,95,90,86,126,125,123,124,139,153,23,42],[isEndOfDecoratorContextOnSameLine],4),rule("NoSpaceBeforeNonNullAssertionOperator",t,54,[isNonJsxSameLineTokenContext,isNonNullAssertionContext],16),rule("NoSpaceAfterNewKeywordOnConstructorSignature",105,21,[isNonJsxSameLineTokenContext,isConstructorSignatureContext],16),rule("SpaceLessThanAndNonJSXTypeAnnotation",30,30,[isNonJsxSameLineTokenContext],4)],...[rule("SpaceAfterConstructor",137,21,[isOptionEnabled("insertSpaceAfterConstructor"),isNonJsxSameLineTokenContext],4),rule("NoSpaceAfterConstructor",137,21,[isOptionDisabledOrUndefined("insertSpaceAfterConstructor"),isNonJsxSameLineTokenContext],16),rule("SpaceAfterComma",28,t,[isOptionEnabled("insertSpaceAfterCommaDelimiter"),isNonJsxSameLineTokenContext,isNonJsxElementOrFragmentContext,isNextTokenNotCloseBracket,isNextTokenNotCloseParen],4),rule("NoSpaceAfterComma",28,t,[isOptionDisabledOrUndefined("insertSpaceAfterCommaDelimiter"),isNonJsxSameLineTokenContext,isNonJsxElementOrFragmentContext],16),rule("SpaceAfterAnonymousFunctionKeyword",[100,42],21,[isOptionEnabled("insertSpaceAfterFunctionKeywordForAnonymousFunctions"),isFunctionDeclContext],4),rule("NoSpaceAfterAnonymousFunctionKeyword",[100,42],21,[isOptionDisabledOrUndefined("insertSpaceAfterFunctionKeywordForAnonymousFunctions"),isFunctionDeclContext],16),rule("SpaceAfterKeywordInControl",i,21,[isOptionEnabled("insertSpaceAfterKeywordsInControlFlowStatements"),isControlDeclContext],4),rule("NoSpaceAfterKeywordInControl",i,21,[isOptionDisabledOrUndefined("insertSpaceAfterKeywordsInControlFlowStatements"),isControlDeclContext],16),rule("SpaceAfterOpenParen",21,t,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"),isNonJsxSameLineTokenContext],4),rule("SpaceBeforeCloseParen",t,22,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"),isNonJsxSameLineTokenContext],4),rule("SpaceBetweenOpenParens",21,21,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"),isNonJsxSameLineTokenContext],4),rule("NoSpaceBetweenParens",21,22,[isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterOpenParen",21,t,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"),isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeCloseParen",t,22,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"),isNonJsxSameLineTokenContext],16),rule("SpaceAfterOpenBracket",23,t,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"),isNonJsxSameLineTokenContext],4),rule("SpaceBeforeCloseBracket",t,24,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"),isNonJsxSameLineTokenContext],4),rule("NoSpaceBetweenBrackets",23,24,[isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterOpenBracket",23,t,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"),isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeCloseBracket",t,24,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets"),isNonJsxSameLineTokenContext],16),rule("SpaceAfterOpenBrace",19,t,[isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"),isBraceWrappedContext],4),rule("SpaceBeforeCloseBrace",t,20,[isOptionEnabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"),isBraceWrappedContext],4),rule("NoSpaceBetweenEmptyBraceBrackets",19,20,[isNonJsxSameLineTokenContext,isObjectContext],16),rule("NoSpaceAfterOpenBrace",19,t,[isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"),isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeCloseBrace",t,20,[isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces"),isNonJsxSameLineTokenContext],16),rule("SpaceBetweenEmptyBraceBrackets",19,20,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces")],4),rule("NoSpaceBetweenEmptyBraceBrackets",19,20,[isOptionDisabled("insertSpaceAfterOpeningAndBeforeClosingEmptyBraces"),isNonJsxSameLineTokenContext],16),rule("SpaceAfterTemplateHeadAndMiddle",[16,17],t,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"),isNonJsxTextContext],4,1),rule("SpaceBeforeTemplateMiddleAndTail",t,[17,18],[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"),isNonJsxSameLineTokenContext],4),rule("NoSpaceAfterTemplateHeadAndMiddle",[16,17],t,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"),isNonJsxTextContext],16,1),rule("NoSpaceBeforeTemplateMiddleAndTail",t,[17,18],[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces"),isNonJsxSameLineTokenContext],16),rule("SpaceAfterOpenBraceInJsxExpression",19,t,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"),isNonJsxSameLineTokenContext,isJsxExpressionContext],4),rule("SpaceBeforeCloseBraceInJsxExpression",t,20,[isOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"),isNonJsxSameLineTokenContext,isJsxExpressionContext],4),rule("NoSpaceAfterOpenBraceInJsxExpression",19,t,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"),isNonJsxSameLineTokenContext,isJsxExpressionContext],16),rule("NoSpaceBeforeCloseBraceInJsxExpression",t,20,[isOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces"),isNonJsxSameLineTokenContext,isJsxExpressionContext],16),rule("SpaceAfterSemicolonInFor",27,t,[isOptionEnabled("insertSpaceAfterSemicolonInForStatements"),isNonJsxSameLineTokenContext,isForContext],4),rule("NoSpaceAfterSemicolonInFor",27,t,[isOptionDisabledOrUndefined("insertSpaceAfterSemicolonInForStatements"),isNonJsxSameLineTokenContext,isForContext],16),rule("SpaceBeforeBinaryOperator",t,o,[isOptionEnabled("insertSpaceBeforeAndAfterBinaryOperators"),isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("SpaceAfterBinaryOperator",o,t,[isOptionEnabled("insertSpaceBeforeAndAfterBinaryOperators"),isNonJsxSameLineTokenContext,isBinaryOpContext],4),rule("NoSpaceBeforeBinaryOperator",t,o,[isOptionDisabledOrUndefined("insertSpaceBeforeAndAfterBinaryOperators"),isNonJsxSameLineTokenContext,isBinaryOpContext],16),rule("NoSpaceAfterBinaryOperator",o,t,[isOptionDisabledOrUndefined("insertSpaceBeforeAndAfterBinaryOperators"),isNonJsxSameLineTokenContext,isBinaryOpContext],16),rule("SpaceBeforeOpenParenInFuncDecl",t,21,[isOptionEnabled("insertSpaceBeforeFunctionParenthesis"),isNonJsxSameLineTokenContext,isFunctionDeclContext],4),rule("NoSpaceBeforeOpenParenInFuncDecl",t,21,[isOptionDisabledOrUndefined("insertSpaceBeforeFunctionParenthesis"),isNonJsxSameLineTokenContext,isFunctionDeclContext],16),rule("NewLineBeforeOpenBraceInControl",d,19,[isOptionEnabled("placeOpenBraceOnNewLineForControlBlocks"),isControlDeclContext,isBeforeMultilineBlockContext],8,1),rule("NewLineBeforeOpenBraceInFunction",c,19,[isOptionEnabled("placeOpenBraceOnNewLineForFunctions"),isFunctionDeclContext,isBeforeMultilineBlockContext],8,1),rule("NewLineBeforeOpenBraceInTypeScriptDeclWithBlock",l,19,[isOptionEnabled("placeOpenBraceOnNewLineForFunctions"),isTypeScriptDeclWithBlockContext,isBeforeMultilineBlockContext],8,1),rule("SpaceAfterTypeAssertion",32,t,[isOptionEnabled("insertSpaceAfterTypeAssertion"),isNonJsxSameLineTokenContext,isTypeAssertionContext],4),rule("NoSpaceAfterTypeAssertion",32,t,[isOptionDisabledOrUndefined("insertSpaceAfterTypeAssertion"),isNonJsxSameLineTokenContext,isTypeAssertionContext],16),rule("SpaceBeforeTypeAnnotation",t,[58,59],[isOptionEnabled("insertSpaceBeforeTypeAnnotation"),isNonJsxSameLineTokenContext,isTypeAnnotationContext],4),rule("NoSpaceBeforeTypeAnnotation",t,[58,59],[isOptionDisabledOrUndefined("insertSpaceBeforeTypeAnnotation"),isNonJsxSameLineTokenContext,isTypeAnnotationContext],16),rule("NoOptionalSemicolon",27,r,[optionEquals("semicolons","remove"),isSemicolonDeletionContext],32),rule("OptionalSemicolon",t,r,[optionEquals("semicolons","insert"),isSemicolonInsertionContext],64)],...[rule("NoSpaceBeforeSemicolon",t,27,[isNonJsxSameLineTokenContext],16),rule("SpaceBeforeOpenBraceInControl",d,19,[isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForControlBlocks"),isControlDeclContext,isNotFormatOnEnter,isSameLineTokenOrBeforeBlockContext],4,1),rule("SpaceBeforeOpenBraceInFunction",c,19,[isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForFunctions"),isFunctionDeclContext,isBeforeBlockContext,isNotFormatOnEnter,isSameLineTokenOrBeforeBlockContext],4,1),rule("SpaceBeforeOpenBraceInTypeScriptDeclWithBlock",l,19,[isOptionDisabledOrUndefinedOrTokensOnSameLine("placeOpenBraceOnNewLineForFunctions"),isTypeScriptDeclWithBlockContext,isNotFormatOnEnter,isSameLineTokenOrBeforeBlockContext],4,1),rule("NoSpaceBeforeComma",t,28,[isNonJsxSameLineTokenContext],16),rule("NoSpaceBeforeOpenBracket",anyTokenExcept(134,84),23,[isNonJsxSameLineTokenContext],16),rule("NoSpaceAfterCloseBracket",24,t,[isNonJsxSameLineTokenContext,isNotBeforeBlockInFunctionDeclarationContext],16),rule("SpaceAfterSemicolon",27,t,[isNonJsxSameLineTokenContext],4),rule("SpaceBetweenForAndAwaitKeyword",99,135,[isNonJsxSameLineTokenContext],4),rule("SpaceBetweenDotDotDotAndTypeName",26,s,[isNonJsxSameLineTokenContext],16),rule("SpaceBetweenStatements",[22,92,93,84],t,[isNonJsxSameLineTokenContext,isNonJsxElementOrFragmentContext,isNotForContext],4),rule("SpaceAfterTryCatchFinally",[113,85,98],19,[isNonJsxSameLineTokenContext],4)]]}function rule(e,t,n,r,i,o=0){return{leftTokenRange:toTokenRange(t),rightTokenRange:toTokenRange(n),rule:{debugName:e,context:r,action:i,flags:o}}}function tokenRangeFrom(e){return{tokens:e,isSpecific:!0}}function toTokenRange(e){return"number"==typeof e?tokenRangeFrom([e]):isArray(e)?tokenRangeFrom(e):e}function tokenRangeFromRange(e,t,n=[]){const r=[];for(let i=e;i<=t;i++)contains(n,i)||r.push(i);return tokenRangeFrom(r)}function optionEquals(e,t){return n=>n.options&&n.options[e]===t}function isOptionEnabled(e){return t=>t.options&&hasProperty(t.options,e)&&!!t.options[e]}function isOptionDisabled(e){return t=>t.options&&hasProperty(t.options,e)&&!t.options[e]}function isOptionDisabledOrUndefined(e){return t=>!t.options||!hasProperty(t.options,e)||!t.options[e]}function isOptionDisabledOrUndefinedOrTokensOnSameLine(e){return t=>!t.options||!hasProperty(t.options,e)||!t.options[e]||t.TokensAreOnSameLine()}function isOptionEnabledOrUndefined(e){return t=>!t.options||!hasProperty(t.options,e)||!!t.options[e]}function isForContext(e){return 249===e.contextNode.kind}function isNotForContext(e){return!isForContext(e)}function isBinaryOpContext(e){switch(e.contextNode.kind){case 227:return 28!==e.contextNode.operatorToken.kind;case 228:case 195:case 235:case 282:case 277:case 183:case 193:case 194:case 239:return!0;case 209:case 266:case 272:case 278:case 261:case 170:case 307:case 173:case 172:return 64===e.currentTokenSpan.kind||64===e.nextTokenSpan.kind;case 250:case 169:return 103===e.currentTokenSpan.kind||103===e.nextTokenSpan.kind||64===e.currentTokenSpan.kind||64===e.nextTokenSpan.kind;case 251:return 165===e.currentTokenSpan.kind||165===e.nextTokenSpan.kind}return!1}function isNotBinaryOpContext(e){return!isBinaryOpContext(e)}function isNotTypeAnnotationContext(e){return!isTypeAnnotationContext(e)}function isTypeAnnotationContext(e){const t=e.contextNode.kind;return 173===t||172===t||170===t||261===t||isFunctionLikeKind(t)}function isNonOptionalPropertyContext(e){return!function isOptionalPropertyContext(e){return isPropertyDeclaration(e.contextNode)&&e.contextNode.questionToken}(e)}function isConditionalOperatorContext(e){return 228===e.contextNode.kind||195===e.contextNode.kind}function isSameLineTokenOrBeforeBlockContext(e){return e.TokensAreOnSameLine()||isBeforeBlockContext(e)}function isBraceWrappedContext(e){return 207===e.contextNode.kind||201===e.contextNode.kind||function isSingleLineBlockContext(e){return isBlockContext(e)&&(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}(e)}function isBeforeMultilineBlockContext(e){return isBeforeBlockContext(e)&&!(e.NextNodeAllOnSameLine()||e.NextNodeBlockIsOnOneLine())}function isMultilineBlockContext(e){return isBlockContext(e)&&!(e.ContextNodeAllOnSameLine()||e.ContextNodeBlockIsOnOneLine())}function isBlockContext(e){return nodeIsBlockContext(e.contextNode)}function isBeforeBlockContext(e){return nodeIsBlockContext(e.nextTokenParent)}function nodeIsBlockContext(e){if(nodeIsTypeScriptDeclWithBlockContext(e))return!0;switch(e.kind){case 242:case 270:case 211:case 269:return!0}return!1}function isFunctionDeclContext(e){switch(e.contextNode.kind){case 263:case 175:case 174:case 178:case 179:case 180:case 219:case 177:case 220:case 265:return!0}return!1}function isNotFunctionDeclContext(e){return!isFunctionDeclContext(e)}function isFunctionDeclarationOrFunctionExpressionContext(e){return 263===e.contextNode.kind||219===e.contextNode.kind}function isTypeScriptDeclWithBlockContext(e){return nodeIsTypeScriptDeclWithBlockContext(e.contextNode)}function nodeIsTypeScriptDeclWithBlockContext(e){switch(e.kind){case 264:case 232:case 265:case 267:case 188:case 268:case 279:case 280:case 273:case 276:return!0}return!1}function isAfterCodeBlockContext(e){switch(e.currentTokenParent.kind){case 264:case 268:case 267:case 300:case 269:case 256:return!0;case 242:{const t=e.currentTokenParent.parent;if(!t||220!==t.kind&&219!==t.kind)return!0}}return!1}function isControlDeclContext(e){switch(e.contextNode.kind){case 246:case 256:case 249:case 250:case 251:case 248:case 259:case 247:case 255:case 300:return!0;default:return!1}}function isObjectContext(e){return 211===e.contextNode.kind}function isFunctionCallOrNewContext(e){return function isFunctionCallContext(e){return 214===e.contextNode.kind}(e)||function isNewContext(e){return 215===e.contextNode.kind}(e)}function isPreviousTokenNotComma(e){return 28!==e.currentTokenSpan.kind}function isNextTokenNotCloseBracket(e){return 24!==e.nextTokenSpan.kind}function isNextTokenNotCloseParen(e){return 22!==e.nextTokenSpan.kind}function isArrowFunctionContext(e){return 220===e.contextNode.kind}function isImportTypeContext(e){return 206===e.contextNode.kind}function isNonJsxSameLineTokenContext(e){return e.TokensAreOnSameLine()&&12!==e.contextNode.kind}function isNonJsxTextContext(e){return 12!==e.contextNode.kind}function isNonJsxElementOrFragmentContext(e){return 285!==e.contextNode.kind&&289!==e.contextNode.kind}function isJsxExpressionContext(e){return 295===e.contextNode.kind||294===e.contextNode.kind}function isNextTokenParentJsxAttribute(e){return 292===e.nextTokenParent.kind||296===e.nextTokenParent.kind&&292===e.nextTokenParent.parent.kind}function isJsxAttributeContext(e){return 292===e.contextNode.kind}function isNextTokenParentNotJsxNamespacedName(e){return 296!==e.nextTokenParent.kind}function isNextTokenParentJsxNamespacedName(e){return 296===e.nextTokenParent.kind}function isJsxSelfClosingElementContext(e){return 286===e.contextNode.kind}function isNotBeforeBlockInFunctionDeclarationContext(e){return!isFunctionDeclContext(e)&&!isBeforeBlockContext(e)}function isEndOfDecoratorContextOnSameLine(e){return e.TokensAreOnSameLine()&&hasDecorators(e.contextNode)&&nodeIsInDecoratorContext(e.currentTokenParent)&&!nodeIsInDecoratorContext(e.nextTokenParent)}function nodeIsInDecoratorContext(e){for(;e&&isExpression(e);)e=e.parent;return e&&171===e.kind}function isStartOfVariableDeclarationList(e){return 262===e.currentTokenParent.kind&&e.currentTokenParent.getStart(e.sourceFile)===e.currentTokenSpan.pos}function isNotFormatOnEnter(e){return 2!==e.formattingRequestKind}function isModuleDeclContext(e){return 268===e.contextNode.kind}function isObjectTypeContext(e){return 188===e.contextNode.kind}function isConstructorSignatureContext(e){return 181===e.contextNode.kind}function isTypeArgumentOrParameterOrAssertion(e,t){if(30!==e.kind&&32!==e.kind)return!1;switch(t.kind){case 184:case 217:case 266:case 264:case 232:case 265:case 263:case 219:case 220:case 175:case 174:case 180:case 181:case 214:case 215:case 234:return!0;default:return!1}}function isTypeArgumentOrParameterOrAssertionContext(e){return isTypeArgumentOrParameterOrAssertion(e.currentTokenSpan,e.currentTokenParent)||isTypeArgumentOrParameterOrAssertion(e.nextTokenSpan,e.nextTokenParent)}function isTypeAssertionContext(e){return 217===e.contextNode.kind}function isNonTypeAssertionContext(e){return!isTypeAssertionContext(e)}function isVoidOpContext(e){return 116===e.currentTokenSpan.kind&&223===e.currentTokenParent.kind}function isYieldOrYieldStarWithOperand(e){return 230===e.contextNode.kind&&void 0!==e.contextNode.expression}function isNonNullAssertionContext(e){return 236===e.contextNode.kind}function isNotStatementConditionContext(e){return!function isStatementConditionContext(e){switch(e.contextNode.kind){case 246:case 249:case 250:case 251:case 247:case 248:return!0;default:return!1}}(e)}function isSemicolonDeletionContext(e){let t=e.nextTokenSpan.kind,n=e.nextTokenSpan.pos;if(isTrivia(t)){const r=e.nextTokenParent===e.currentTokenParent?findNextToken(e.currentTokenParent,findAncestor(e.currentTokenParent,e=>!e.parent),e.sourceFile):e.nextTokenParent.getFirstToken(e.sourceFile);if(!r)return!0;t=r.kind,n=r.getStart(e.sourceFile)}return e.sourceFile.getLineAndCharacterOfPosition(e.currentTokenSpan.pos).line===e.sourceFile.getLineAndCharacterOfPosition(n).line?20===t||1===t:27===t&&27===e.currentTokenSpan.kind||241!==t&&27!==t&&(265===e.contextNode.kind||266===e.contextNode.kind?!isPropertySignature(e.currentTokenParent)||!!e.currentTokenParent.type||21!==t:isPropertyDeclaration(e.currentTokenParent)?!e.currentTokenParent.initializer:249!==e.currentTokenParent.kind&&243!==e.currentTokenParent.kind&&241!==e.currentTokenParent.kind&&23!==t&&21!==t&&40!==t&&41!==t&&44!==t&&14!==t&&28!==t&&229!==t&&16!==t&&15!==t&&25!==t)}function isSemicolonInsertionContext(e){return positionIsASICandidate(e.currentTokenSpan.end,e.currentTokenParent,e.sourceFile)}function isNotPropertyAccessOnIntegerLiteral(e){return!isPropertyAccessExpression(e.contextNode)||!isNumericLiteral(e.contextNode.expression)||e.contextNode.expression.getText().includes(".")}function getFormatContext(e,t){return{options:e,getRules:getRulesMap(),host:t}}function getRulesMap(){return void 0===c_&&(c_=function createRulesMap(e){const t=function buildMap(e){const t=new Array(T_*T_),n=new Array(t.length);for(const r of e){const e=r.leftTokenRange.isSpecific&&r.rightTokenRange.isSpecific;for(const i of r.leftTokenRange.tokens)for(const o of r.rightTokenRange.tokens){const a=getRuleBucketIndex(i,o);let s=t[a];void 0===s&&(s=t[a]=[]),addRule(s,r.rule,e,n,a)}}return t}(e);return e=>{const n=t[getRuleBucketIndex(e.currentTokenSpan.kind,e.nextTokenSpan.kind)];if(n){const t=[];let r=0;for(const i of n){const n=~getRuleActionExclusion(r);i.action&n&&every(i.context,t=>t(e))&&(t.push(i),r|=i.action)}if(t.length)return t}}}(getAllRules())),c_}function getRuleActionExclusion(e){let t=0;return 1&e&&(t|=28),2&e&&(t|=96),28&e&&(t|=28),96&e&&(t|=96),t}function getRuleBucketIndex(e,t){return h.assert(e<=166&&t<=166,"Must compute formatting context from tokens"),e*T_+t}var u_,m_,__,f_,g_,y_=5,h_=31,T_=167,S_=((u_=S_||{})[u_.StopRulesSpecific=0]="StopRulesSpecific",u_[u_.StopRulesAny=1*y_]="StopRulesAny",u_[u_.ContextRulesSpecific=2*y_]="ContextRulesSpecific",u_[u_.ContextRulesAny=3*y_]="ContextRulesAny",u_[u_.NoContextRulesSpecific=4*y_]="NoContextRulesSpecific",u_[u_.NoContextRulesAny=5*y_]="NoContextRulesAny",u_);function addRule(e,t,n,r,i){const o=3&t.action?n?0:S_.StopRulesAny:t.context!==l_?n?S_.ContextRulesSpecific:S_.ContextRulesAny:n?S_.NoContextRulesSpecific:S_.NoContextRulesAny,a=r[i]||0;e.splice(function getInsertionIndex(e,t){let n=0;for(let r=0;r<=t;r+=y_)n+=e&h_,e>>=y_;return n}(a,o),0,t),r[i]=function increaseInsertionIndex(e,t){const n=1+(e>>t&h_);return h.assert((n&h_)===n,"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."),e&~(h_<h.formatSyntaxKind(n)}),r}function formatOnEnter(e,t,n){const r=t.getLineAndCharacterOfPosition(e).line;if(0===r)return[];let i=getEndLinePosition(r,t);for(;isWhiteSpaceSingleLine(t.text.charCodeAt(i));)i--;isLineBreak(t.text.charCodeAt(i))&&i--;return formatSpan({pos:getStartPositionOfLine(r-1,t),end:i+1},t,n,2)}function formatOnSemicolon(e,t,n){return formatNodeLines(findOutermostNodeWithinListLevel(findImmediatelyPrecedingTokenOfKind(e,27,t)),t,n,3)}function formatOnOpeningCurly(e,t,n){const r=findImmediatelyPrecedingTokenOfKind(e,19,t);if(!r)return[];return formatSpan({pos:getLineStartPositionForPosition(findOutermostNodeWithinListLevel(r.parent).getStart(t),t),end:e},t,n,4)}function formatOnClosingCurly(e,t,n){return formatNodeLines(findOutermostNodeWithinListLevel(findImmediatelyPrecedingTokenOfKind(e,20,t)),t,n,5)}function formatDocument(e,t){return formatSpan({pos:0,end:e.text.length},e,t,0)}function formatSelection(e,t,n,r){return formatSpan({pos:getLineStartPositionForPosition(e,n),end:t},n,r,1)}function findImmediatelyPrecedingTokenOfKind(e,t,n){const r=findPrecedingToken(e,n);return r&&r.kind===t&&e===r.getEnd()?r:void 0}function findOutermostNodeWithinListLevel(e){let t=e;for(;t&&t.parent&&t.parent.end===e.end&&!isListElement(t.parent,t);)t=t.parent;return t}function isListElement(e,t){switch(e.kind){case 264:case 265:return rangeContainsRange(e.members,t);case 268:const n=e.body;return!!n&&269===n.kind&&rangeContainsRange(n.statements,t);case 308:case 242:case 269:return rangeContainsRange(e.statements,t);case 300:return rangeContainsRange(e.block.statements,t)}return!1}function formatNodeGivenIndentation(e,t,n,r,i,o){const a={pos:e.pos,end:e.end};return getFormattingScanner(t.text,n,a.pos,a.end,n=>formatSpanWorker(a,e,r,i,n,o,1,e=>!1,t))}function formatNodeLines(e,t,n,r){if(!e)return[];return formatSpan({pos:getLineStartPositionForPosition(e.getStart(t),t),end:e.end},t,n,r)}function formatSpan(e,t,n,r){const i=function findEnclosingNode(e,t){return function find2(n){const r=forEachChild(n,n=>startEndContainsRange(n.getStart(t),n.end,e)&&n);if(r){const e=find2(r);if(e)return e}return n}(t)}(e,t);return getFormattingScanner(t.text,t.languageVariant,function getScanStartPosition(e,t,n){const r=e.getStart(n);if(r===t.pos&&e.end===t.end)return r;const i=findPrecedingToken(t.pos,n);return i?i.end>=t.pos?e.pos:i.end:e.pos}(i,e,t),e.end,o=>formatSpanWorker(e,i,g_.getIndentationForNode(i,e,t,n.options),function getOwnOrInheritedDelta(e,t,n){let r,i=-1;for(;e;){const o=n.getLineAndCharacterOfPosition(e.getStart(n)).line;if(-1!==i&&o!==i)break;if(g_.shouldIndentChildNode(t,e,r,n))return t.indentSize;i=o,r=e,e=e.parent}return 0}(i,n.options,t),o,n,r,function prepareRangeContainsErrorFunction(e,t){if(!e.length)return rangeHasNoErrors;const n=e.filter(e=>rangeOverlapsWithStartEnd(t,e.start,e.start+e.length)).sort((e,t)=>e.start-t.start);if(!n.length)return rangeHasNoErrors;let r=0;return e=>{for(;;){if(r>=n.length)return!1;const t=n[r];if(e.end<=t.start)return!1;if(startEndOverlapsWithStartEnd(e.pos,e.end,t.start,t.start+t.length))return!0;r++}};function rangeHasNoErrors(){return!1}}(t.parseDiagnostics,e),t))}function formatSpanWorker(e,t,n,r,i,{options:o,getRules:a,host:s},c,l,d){var p;const u=new o_(d,c,o);let m,_,f,g,y,T=-1;const S=[];if(i.advance(),i.isOnToken()){const a=d.getLineAndCharacterOfPosition(t.getStart(d)).line;let s=a;hasDecorators(t)&&(s=d.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(t,d)).line),function processNode(t,n,r,a,s,c){if(!rangeOverlapsWithStartEnd(e,t.getStart(d),t.getEnd()))return;const p=getDynamicIndentation(t,r,s,c);let u=n;forEachChild(t,e=>{processChildNode(e,-1,t,p,r,a,!1)},e=>{processChildNodes(e,t,r,p)});for(;i.isOnToken()&&i.getTokenFullStart()Math.min(t.end,e.end))break;consumeTokenAndAdvanceScanner(n,t,p,t)}function processChildNode(n,r,a,s,c,l,p,m){if(h.assert(!nodeIsSynthesized(n)),nodeIsMissing(n)||isGrammarError(a,n))return r;const _=n.getStart(d),f=d.getLineAndCharacterOfPosition(_).line;let g=f;hasDecorators(n)&&(g=d.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(n,d)).line);let S=-1;if(p&&rangeContainsRange(e,a)&&(S=function tryComputeIndentationForListItem(e,t,n,r,i){if(rangeOverlapsWithStartEnd(r,e,t)||rangeContainsStartEnd(r,e,t)){if(-1!==i)return i}else{const t=d.getLineAndCharacterOfPosition(e).line,r=getLineStartPositionForPosition(e,d),i=g_.findFirstNonWhitespaceColumn(r,e,d,o);if(t!==n||e===i){const e=g_.getBaseIndentation(o);return e>i?e:i}}return-1}(_,n.end,c,e,r),-1!==S&&(r=S)),!rangeOverlapsWithStartEnd(e,n.pos,n.end))return n.ende.end)return r;if(o.token.end>_){o.token.pos>_&&i.skipToStartOf(n);break}consumeTokenAndAdvanceScanner(o,t,s,t)}if(!i.isOnToken()||i.getTokenFullStart()>=e.end)return r;if(isToken(n)){const e=i.readTokenInfo(n);if(12!==n.kind)return h.assert(e.token.end===n.end,"Token end is child end"),consumeTokenAndAdvanceScanner(e,t,s,n),r}const x=171===n.kind?f:l,v=function computeIndentation(e,t,n,r,i,a){const s=g_.shouldIndentChildNode(o,e)?o.indentSize:0;return a===t?{indentation:t===y?T:i.getIndentation(),delta:Math.min(o.indentSize,i.getDelta(e)+s)}:-1===n?21===e.kind&&t===y?{indentation:T,delta:i.getDelta(e)}:g_.childStartsOnTheSameLineWithElseInIfStatement(r,e,t,d)||g_.childIsUnindentedBranchOfConditionalExpression(r,e,t,d)||g_.argumentStartsOnSameLineAsPreviousArgument(r,e,t,d)?{indentation:i.getIndentation(),delta:s}:{indentation:i.getIndentation()+i.getDelta(e),delta:s}:{indentation:n,delta:s}}(n,f,S,t,s,x);return processNode(n,u,f,g,v.indentation,v.delta),u=t,m&&210===a.kind&&-1===r&&(r=v.indentation),r}function processChildNodes(n,r,a,s){h.assert(isNodeArray(n)),h.assert(!nodeIsSynthesized(n));const c=function getOpenTokenForList(e,t){switch(e.kind){case 177:case 263:case 219:case 175:case 174:case 220:case 180:case 181:case 185:case 186:case 178:case 179:if(e.typeParameters===t)return 30;if(e.parameters===t)return 21;break;case 214:case 215:if(e.typeArguments===t)return 30;if(e.arguments===t)return 21;break;case 264:case 232:case 265:case 266:if(e.typeParameters===t)return 30;break;case 184:case 216:case 187:case 234:case 206:if(e.typeArguments===t)return 30;break;case 188:return 19}return 0}(r,n);let l=s,p=a;if(!rangeOverlapsWithStartEnd(e,n.pos,n.end))return void(n.endn.pos)break;if(e.token.kind===c){let t;if(p=d.getLineAndCharacterOfPosition(e.token.pos).line,consumeTokenAndAdvanceScanner(e,r,s,r),-1!==T)t=T;else{const n=getLineStartPositionForPosition(e.token.pos,d);t=g_.findFirstNonWhitespaceColumn(n,e.token.pos,d,o)}l=getDynamicIndentation(r,a,t,o.indentSize)}else consumeTokenAndAdvanceScanner(e,r,s,r)}let u=-1;for(let e=0;einsertIndentation(e.pos,i,!1))}-1!==e&&n&&(insertIndentation(t.token.pos,e,1===p),y=g.line,T=e)}i.advance(),u=n}}(t,t,a,s,n,r)}const x=i.getCurrentLeadingTrivia();if(x){const r=g_.nodeWillIndentChild(o,t,void 0,d,!1)?n+o.indentSize:n;indentTriviaItems(x,r,!0,e=>{processRange(e,d.getLineAndCharacterOfPosition(e.pos),t,t,void 0),insertIndentation(e.pos,r,!1)}),!1!==o.trimTrailingWhitespace&&function trimTrailingWhitespacesForRemainingRange(t){let n=_?_.end:e.pos;for(const e of t)isComment(e.kind)&&(n=e.end){const e=i.isOnEOF()?i.readEOFTokenRange():i.isOnToken()?i.readTokenInfo(t).token:void 0;if(e&&e.pos===m){const n=(null==(p=findPrecedingToken(e.end,d,t))?void 0:p.parent)||f;processPair(e,d.getLineAndCharacterOfPosition(e.pos).line,n,_,g,f,n,void 0)}}return S;function getDynamicIndentation(e,t,n,r){return{getIndentationForComment:(e,t,r)=>{switch(e){case 20:case 24:case 22:return n+getDelta(r)}return-1!==t?t:n},getIndentationForToken:(r,i,o,a)=>!a&&function shouldAddDelta(n,r,i){switch(r){case 19:case 20:case 22:case 93:case 117:case 60:return!1;case 44:case 32:switch(i.kind){case 287:case 288:case 286:return!1}break;case 23:case 24:if(201!==i.kind)return!1}return t!==n&&!(hasDecorators(e)&&r===function getFirstNonDecoratorTokenOfNode(e){if(canHaveModifiers(e)){const t=find(e.modifiers,isModifier,findIndex(e.modifiers,isDecorator));if(t)return t.kind}switch(e.kind){case 264:return 86;case 265:return 120;case 263:return 100;case 267:return 267;case 178:return 139;case 179:return 153;case 175:if(e.asteriskToken)return 42;case 173:case 170:const t=getNameOfDeclaration(e);if(t)return t.kind}}(e))}(r,i,o)?n+getDelta(o):n,getIndentation:()=>n,getDelta,recomputeIndentation:(t,i)=>{g_.shouldIndentChildNode(o,i,e,d)&&(n+=t?o.indentSize:-o.indentSize,r=g_.shouldIndentChildNode(o,e)?o.indentSize:0)}};function getDelta(t){return g_.nodeWillIndentChild(o,e,t,d,!0)?r:0}}function indentTriviaItems(t,n,r,i){for(const o of t){const t=rangeContainsRange(e,o);switch(o.kind){case 3:t&&indentMultilineComment(o,n,!r),r=!1;break;case 2:r&&t&&i(o),r=!1;break;case 4:r=!0}}return r}function processTrivia(t,n,r,i){for(const o of t)if(isComment(o.kind)&&rangeContainsRange(e,o)){processRange(o,d.getLineAndCharacterOfPosition(o.pos),n,r,i)}}function processRange(t,n,r,i,o){let a=0;if(!l(t))if(_)a=processPair(t,n.line,r,_,g,f,i,o);else{trimTrailingWhitespacesForLines(d.getLineAndCharacterOfPosition(e.pos).line,n.line)}return _=t,m=t.end,f=r,g=n.line,a}function processPair(e,t,n,r,i,c,l,p){u.updateContext(r,c,e,n,l);const m=a(u);let _=!1!==u.options.trimTrailingWhitespace,f=0;return m?forEachRight(m,a=>{if(f=function applyRuleEdits(e,t,n,r,i){const a=i!==n;switch(e.action){case 1:return 0;case 16:if(t.end!==r.pos)return recordDelete(t.end,r.pos-t.end),a?2:0;break;case 32:recordDelete(t.pos,t.end-t.pos);break;case 8:if(1!==e.flags&&n!==i)return 0;if(1!==i-n)return recordReplace(t.end,r.pos-t.end,getNewLineOrDefaultFromHost(s,o)),a?0:1;break;case 4:if(1!==e.flags&&n!==i)return 0;if(1!==r.pos-t.end||32!==d.text.charCodeAt(t.end))return recordReplace(t.end,r.pos-t.end," "),a?2:0;break;case 64:!function recordInsert(e,t){t&&S.push(createTextChangeFromStartLength(e,0,t))}(t.end,";")}return 0}(a,r,i,e,t),p)switch(f){case 2:n.getStart(d)===e.pos&&p.recomputeIndentation(!1,l);break;case 1:n.getStart(d)===e.pos&&p.recomputeIndentation(!0,l);break;default:h.assert(0===f)}_=_&&!(16&a.action)&&1!==a.flags}):_=_&&1!==e.kind,t!==i&&_&&trimTrailingWhitespacesForLines(i,t,r),f}function insertIndentation(e,t,n){const r=getIndentationString(t,o);if(n)recordReplace(e,0,r);else{const n=d.getLineAndCharacterOfPosition(e),i=getStartPositionOfLine(n.line,d);(t!==function characterToColumn(e,t){let n=0;for(let r=0;r0){const e=getIndentationString(r,o);recordReplace(t,n.character,e)}else recordDelete(t,n.character)}}function trimTrailingWhitespacesForLines(e,t,n){for(let r=e;rt)continue;const i=getTrailingWhitespaceStartPosition(e,t);-1!==i&&(h.assert(i===e||!isWhiteSpaceSingleLine(d.text.charCodeAt(i-1))),recordDelete(i,t+1-i))}}function getTrailingWhitespaceStartPosition(e,t){let n=t;for(;n>=e&&isWhiteSpaceSingleLine(d.text.charCodeAt(n));)n--;return n!==t?n+1:-1}function trimTrailingWitespacesForPositions(e,t,n){trimTrailingWhitespacesForLines(d.getLineAndCharacterOfPosition(e).line,d.getLineAndCharacterOfPosition(t).line+1,n)}function recordDelete(e,t){t&&S.push(createTextChangeFromStartLength(e,t,""))}function recordReplace(e,t,n){(t||n)&&S.push(createTextChangeFromStartLength(e,t,n))}}function getRangeOfEnclosingComment(e,t,n,r=getTokenAtPosition(e,t)){const i=findAncestor(r,isJSDoc);i&&(r=i.parent);if(r.getStart(e)<=t&&trangeContainsPositionExclusive(n,t)||t===n.end&&(2===n.kind||t===e.getFullWidth()))}function getIndentationString(e,t){if((!m_||m_.tabSize!==t.tabSize||m_.indentSize!==t.indentSize)&&(m_={tabSize:t.tabSize,indentSize:t.indentSize},__=f_=void 0),t.convertTabsToSpaces){let n;const r=Math.floor(e/t.indentSize),i=e%t.indentSize;return f_||(f_=[]),void 0===f_[r]?(n=repeatString(" ",t.indentSize*r),f_[r]=n):n=f_[r],i?n+repeatString(" ",i):n}{const n=Math.floor(e/t.tabSize),r=e-n*t.tabSize;let i;return __||(__=[]),void 0===__[n]?__[n]=i=repeatString("\t",n):i=__[n],r?i+repeatString(" ",r):i}}(e=>{let t;var n;function getBaseIndentation(e){return e.baseIndentSize||0}function getIndentationForNodeWorker(e,t,n,r,i,o,a){var s;let c=e.parent;for(;c;){let l=!0;if(n){const t=e.getStart(i);l=tn.end}const d=getContainingListOrParentStart(c,e,i),p=d.line===t.line||childStartsOnTheSameLineWithElseInIfStatement(c,e,t.line,i);if(l){const n=null==(s=getContainingList(e,i))?void 0:s[0];let o=getActualIndentationForListItem(e,i,a,!!n&&getStartLineAndCharacterForNode(n,i).line>d.line);if(-1!==o)return o+r;if(o=getActualIndentationForNode(e,c,t,p,i,a),-1!==o)return o+r}shouldIndentChildNode(a,c,e,i,o)&&!p&&(r+=a.indentSize);const u=isArgumentAndStartLineOverlapsExpressionBeingCalled(c,e,t.line,i);c=(e=c).parent,t=u?i.getLineAndCharacterOfPosition(e.getStart(i)):d}return r+getBaseIndentation(a)}function getContainingListOrParentStart(e,t,n){const r=getContainingList(t,n),i=r?r.pos:e.getStart(n);return n.getLineAndCharacterOfPosition(i)}function getActualIndentationForNode(e,t,n,r,i,o){return(isDeclaration(e)||isStatementButNotDeclaration(e))&&(308===t.kind||!r)?findColumnForFirstNonWhitespaceCharacterInLine(n,i,o):-1}let r;var i;function nextTokenIsCurlyBraceOnSameLineAsCursor(e,t,n,r){const i=findNextToken(e,t,r);if(!i)return 0;if(19===i.kind)return 1;if(20===i.kind){return n===getStartLineAndCharacterForNode(i,r).line?2:0}return 0}function getStartLineAndCharacterForNode(e,t){return t.getLineAndCharacterOfPosition(e.getStart(t))}function isArgumentAndStartLineOverlapsExpressionBeingCalled(e,t,n,r){if(!isCallExpression(e)||!contains(e.arguments,t))return!1;return getLineAndCharacterOfPosition(r,e.expression.getEnd()).line===n}function childStartsOnTheSameLineWithElseInIfStatement(e,t,n,r){if(246===e.kind&&e.elseStatement===t){const t=findChildOfKind(e,93,r);h.assert(void 0!==t);return getStartLineAndCharacterForNode(t,r).line===n}return!1}function getContainingList(e,t){return e.parent&&getListByRange(e.getStart(t),e.getEnd(),e.parent,t)}function getListByRange(e,t,n,r){switch(n.kind){case 184:return getList(n.typeArguments);case 211:return getList(n.properties);case 210:case 276:case 280:case 207:case 208:return getList(n.elements);case 188:return getList(n.members);case 263:case 219:case 220:case 175:case 174:case 180:case 177:case 186:case 181:return getList(n.typeParameters)||getList(n.parameters);case 178:return getList(n.parameters);case 264:case 232:case 265:case 266:case 346:return getList(n.typeParameters);case 215:case 214:return getList(n.typeArguments)||getList(n.arguments);case 262:return getList(n.declarations)}function getList(i){return i&&rangeContainsStartEnd(function getVisualListRange(e,t,n){const r=e.getChildren(n);for(let e=1;e=0&&t=0;o--){if(28===e[o].kind)continue;if(n.getLineAndCharacterOfPosition(e[o].end).line!==i.line)return findColumnForFirstNonWhitespaceCharacterInLine(i,n,r);i=getStartLineAndCharacterForNode(e[o],n)}return-1}function findColumnForFirstNonWhitespaceCharacterInLine(e,t,n){const r=t.getPositionOfLineAndCharacter(e.line,0);return findFirstNonWhitespaceColumn(r,r+e.character,t,n)}function findFirstNonWhitespaceCharacterAndColumn(e,t,n,r){let i=0,o=0;for(let a=e;at.text.length)return getBaseIndentation(n);if(0===n.indentStyle)return 0;const i=findPrecedingToken(e,t,void 0,!0),o=getRangeOfEnclosingComment(t,e,i||null);if(o&&3===o.kind)return function getCommentIndent(e,t,n,r){const i=getLineAndCharacterOfPosition(e,t).line-1,o=getLineAndCharacterOfPosition(e,r.pos).line;if(h.assert(o>=0),i<=o)return findFirstNonWhitespaceColumn(getStartPositionOfLine(o,e),t,e,n);const a=getStartPositionOfLine(i,e),{column:s,character:c}=findFirstNonWhitespaceCharacterAndColumn(a,t,e,n);if(0===s)return s;const l=e.text.charCodeAt(a+c);return 42===l?s-1:s}(t,e,n,o);if(!i)return getBaseIndentation(n);if(isStringOrRegularExpressionOrTemplateLiteral(i.kind)&&i.getStart(t)<=e&&e0;){if(!isWhiteSpaceLike(e.text.charCodeAt(r)))break;r--}const i=getLineStartPositionForPosition(r,e);return findFirstNonWhitespaceColumn(i,r,e,n)}(t,e,n);if(28===i.kind&&227!==i.parent.kind){const e=function getActualIndentationForListItemBeforeComma(e,t,n){const r=findListItemInfo(e);return r&&r.listItemIndex>0?deriveActualIndentationFromList(r.list.getChildren(),r.listItemIndex-1,t,n):-1}(i,t,n);if(-1!==e)return e}const l=function getListByPosition(e,t,n){return t&&getListByRange(e,e,t,n)}(e,i.parent,t);if(l&&!rangeContainsRange(l,i)){const e=[219,220].includes(s.parent.kind)?0:n.indentSize;return getActualIndentationForListStartLine(l,t,n)+e}return function getSmartIndent(e,t,n,r,i,o){let a,s=n;for(;s;){if(positionBelongsToNode(s,t,e)&&shouldIndentChildNode(o,s,a,e,!0)){const t=getStartLineAndCharacterForNode(s,e),a=nextTokenIsCurlyBraceOnSameLineAsCursor(n,s,r,e);return getIndentationForNodeWorker(s,t,void 0,0!==a?i&&2===a?o.indentSize:0:r!==t.line?o.indentSize:0,e,!0,o)}const c=getActualIndentationForListItem(s,e,o,!0);if(-1!==c)return c;a=s,s=s.parent}return getBaseIndentation(o)}(t,e,i,a,r,n)},e.getIndentationForNode=function getIndentationForNode(e,t,n,r){const i=n.getLineAndCharacterOfPosition(e.getStart(n));return getIndentationForNodeWorker(e,i,t,0,n,!1,r)},e.getBaseIndentation=getBaseIndentation,(i=r||(r={}))[i.Unknown=0]="Unknown",i[i.OpenBrace=1]="OpenBrace",i[i.CloseBrace=2]="CloseBrace",e.isArgumentAndStartLineOverlapsExpressionBeingCalled=isArgumentAndStartLineOverlapsExpressionBeingCalled,e.childStartsOnTheSameLineWithElseInIfStatement=childStartsOnTheSameLineWithElseInIfStatement,e.childIsUnindentedBranchOfConditionalExpression=function childIsUnindentedBranchOfConditionalExpression(e,t,n,r){if(isConditionalExpression(e)&&(t===e.whenTrue||t===e.whenFalse)){const i=getLineAndCharacterOfPosition(r,e.condition.end).line;if(t===e.whenTrue)return n===i;{const t=getStartLineAndCharacterForNode(e.whenTrue,r).line,o=getLineAndCharacterOfPosition(r,e.whenTrue.end).line;return i===t&&o===n}}return!1},e.argumentStartsOnSameLineAsPreviousArgument=function argumentStartsOnSameLineAsPreviousArgument(e,t,n,r){if(isCallOrNewExpression(e)){if(!e.arguments)return!1;const i=find(e.arguments,e=>e.pos===t.pos);if(!i)return!1;const o=e.arguments.indexOf(i);if(0===o)return!1;if(n===getLineAndCharacterOfPosition(r,e.arguments[o-1].getEnd()).line)return!0}return!1},e.getContainingList=getContainingList,e.findFirstNonWhitespaceCharacterAndColumn=findFirstNonWhitespaceCharacterAndColumn,e.findFirstNonWhitespaceColumn=findFirstNonWhitespaceColumn,e.nodeWillIndentChild=nodeWillIndentChild,e.shouldIndentChildNode=shouldIndentChildNode})(g_||(g_={}));var x_={};function preparePasteEdits(e,t,n){let r=!1;return t.forEach(t=>{const i=findAncestor(getTokenAtPosition(e,t.pos),e=>rangeContainsRange(e,t));i&&forEachChild(i,function checkNameResolution(i){var o;if(!r){if(isIdentifier(i)&&rangeContainsPosition(t,i.getStart(e))){const t=n.resolveName(i.text,i,-1,!1);if(t&&t.declarations)for(const n of t.declarations)if(isInImport(n)||i.text&&e.symbol&&(null==(o=e.symbol.exports)?void 0:o.has(i.escapedText)))return void(r=!0)}i.forEachChild(checkNameResolution)}})}),r}i(x_,{preparePasteEdits:()=>preparePasteEdits});var v_={};i(v_,{pasteEditsProvider:()=>pasteEditsProvider});var b_="providePostPasteEdits";function pasteEditsProvider(e,t,n,r,i,o,a,s){const c=$m.ChangeTracker.with({host:i,formatContext:a,preferences:o},c=>function pasteEdits(e,t,n,r,i,o,a,s,c){let l;t.length!==n.length&&(l=1===t.length?t[0]:t.join(getNewLineOrDefaultFromHost(a.host,a.options)));const d=[];let p,u=e.text;for(let e=n.length-1;e>=0;e--){const{pos:r,end:i}=n[e];u=l?u.slice(0,r)+l+u.slice(i):u.slice(0,r)+t[e]+u.slice(i)}if(h.checkDefined(i.runWithTemporaryFileUpdate).call(i,e.fileName,u,(u,m,_)=>{if(p=ed.createImportAdder(_,u,o,i),null==r?void 0:r.range){h.assert(r.range.length===t.length),r.range.forEach(e=>{const t=r.file.statements,n=findIndex(t,t=>t.end>e.pos);if(-1===n)return;let i=findIndex(t,t=>t.end>=e.end,n);-1!==i&&e.end<=t[i].getStart()&&i--,d.push(...t.slice(n,-1===i?t.length:i+1))}),h.assertIsDefined(m,"no original program found");const n=m.getTypeChecker(),o=function getUsageInfoRangeForPasteEdits({file:e,range:t}){const n=t[0].pos,r=t[t.length-1].end,i=getTokenAtPosition(e,n),o=findTokenOnLeftOfPosition(e,n)??getTokenAtPosition(e,r);return{pos:isIdentifier(i)&&n<=i.getStart(e)?i.getFullStart():n,end:isIdentifier(o)&&r===o.getEnd()?$m.getAdjustedEndPosition(e,o,{}):r}}(r),a=getUsageInfo(r.file,d,n,getExistingLocals(_,d,n),o),s=!fileShouldUseJavaScriptRequire(e.fileName,m,i,!!r.file.commonJsModuleIndicator);addExportsInOldFile(r.file,a.targetFileImportsFromOldFile,c,s),addTargetFileImports(r.file,a.oldImportsNeededByTargetFile,a.targetFileImportsFromOldFile,n,u,p)}else{const e={sourceFile:_,program:m,cancellationToken:s,host:i,preferences:o,formatContext:a};let r=0;n.forEach((n,i)=>{const o=n.end-n.pos,a=l??t[i],s=n.pos+r,c={pos:s,end:s+a.length};r+=a.length-o;const d=findAncestor(getTokenAtPosition(e.sourceFile,c.pos),e=>rangeContainsRange(e,c));d&&forEachChild(d,function importUnresolvedIdentifiers(t){if(isIdentifier(t)&&rangeContainsPosition(c,t.getStart(_))&&!(null==u?void 0:u.getTypeChecker().resolveName(t.text,t,-1,!1)))return p.addImportForUnresolvedIdentifier(e,t,!0);t.forEachChild(importUnresolvedIdentifiers)})})}p.writeFixes(c,getQuotePreference(r?r.file:e,o))}),!p.hasFixes())return;n.forEach((n,r)=>{c.replaceRangeWithText(e,{pos:n.pos,end:n.end},l??t[r])})}(e,t,n,r,i,o,a,s,c));return{edits:c,fixId:b_}}var C_={};i(C_,{ANONYMOUS:()=>Xs,AccessFlags:()=>Ae,AssertionLevel:()=>_,AssignmentDeclarationKind:()=>Ue,AssignmentKind:()=>Sn,Associativity:()=>vn,BreakpointResolver:()=>Ql,BuilderFileEmit:()=>Ka,BuilderProgramKind:()=>Ga,BuilderState:()=>qa,CallHierarchy:()=>Xl,CharacterCodes:()=>rt,CheckFlags:()=>Ee,CheckMode:()=>na,ClassificationType:()=>zs,ClassificationTypeNames:()=>Us,CommentDirectiveType:()=>ae,Comparison:()=>c,CompletionInfoFlags:()=>Ls,CompletionTriggerKind:()=>Fs,Completions:()=>sm,ContainerFlags:()=>jo,ContextFlags:()=>ge,Debug:()=>h,DiagnosticCategory:()=>ze,Diagnostics:()=>Ot,DocumentHighlights:()=>tc,ElementFlags:()=>Ie,EmitFlags:()=>st,EmitHint:()=>pt,EmitOnly:()=>de,EndOfLineState:()=>Bs,ExitStatus:()=>ue,ExportKind:()=>ec,Extension:()=>it,ExternalEmitHelpers:()=>dt,FileIncludeKind:()=>ce,FilePreprocessingDiagnosticsKind:()=>le,FileSystemEntryKind:()=>Nt,FileWatcherEventKind:()=>ht,FindAllReferences:()=>vm,FlattenLevel:()=>fa,FlowFlags:()=>oe,ForegroundColorEscapeSequences:()=>Aa,FunctionFlags:()=>xn,GeneratedIdentifierFlags:()=>ne,GetLiteralTextFlags:()=>mn,GoToDefinition:()=>Pm,HighlightSpanKind:()=>Ds,IdentifierNameMap:()=>ma,ImportKind:()=>Zs,ImportsNotUsedAsValues:()=>Xe,IndentStyle:()=>Is,IndexFlags:()=>Oe,IndexKind:()=>Re,InferenceFlags:()=>Je,InferencePriority:()=>je,InlayHintKind:()=>Ps,InlayHints:()=>Im,InternalEmitFlags:()=>ct,InternalNodeBuilderFlags:()=>he,InternalSymbolName:()=>Ne,IntersectionFlags:()=>fe,InvalidatedProjectKind:()=>ts,JSDocParsingMode:()=>yt,JsDoc:()=>Am,JsTyping:()=>ss,JsxEmit:()=>Qe,JsxFlags:()=>Z,JsxReferenceKind:()=>we,LanguageFeatureMinimumTarget:()=>lt,LanguageServiceMode:()=>Cs,LanguageVariant:()=>tt,LexicalEnvironmentFlags:()=>mt,ListFormat:()=>_t,LogLevel:()=>T,MapCode:()=>Rm,MemberOverrideStatus:()=>me,ModifierFlags:()=>Y,ModuleDetectionKind:()=>qe,ModuleInstanceState:()=>Bo,ModuleKind:()=>$e,ModuleResolutionKind:()=>Ve,ModuleSpecifierEnding:()=>br,NavigateTo:()=>pc,NavigationBar:()=>uc,NewLineKind:()=>Ye,NodeBuilderFlags:()=>ye,NodeCheckFlags:()=>ke,NodeFactoryFlags:()=>Mr,NodeFlags:()=>X,NodeResolutionFeatures:()=>Lo,ObjectFlags:()=>Pe,OperationCanceledException:()=>se,OperatorPrecedence:()=>bn,OrganizeImports:()=>Bm,OrganizeImportsMode:()=>ks,OuterExpressionKinds:()=>ut,OutliningElementsCollector:()=>jm,OutliningSpanKind:()=>Ms,OutputFileType:()=>Rs,PackageJsonAutoImportPreference:()=>bs,PackageJsonDependencyGroup:()=>vs,PatternMatchKind:()=>rc,PollingInterval:()=>Tt,PollingWatchKind:()=>Ge,PragmaKindFlags:()=>ft,PredicateSemantics:()=>te,PreparePasteEdits:()=>x_,PrivateIdentifierKind:()=>Ur,ProcessLevel:()=>ga,ProgramUpdateLevel:()=>Da,QuotePreference:()=>Gs,RegularExpressionFlags:()=>re,RelationComparisonResult:()=>ee,Rename:()=>Wm,ScriptElementKind:()=>Js,ScriptElementKindModifier:()=>Ws,ScriptKind:()=>Ze,ScriptSnapshot:()=>Ts,ScriptTarget:()=>et,SemanticClassificationFormat:()=>Ns,SemanticMeaning:()=>qs,SemicolonPreference:()=>As,SignatureCheckMode:()=>ra,SignatureFlags:()=>Me,SignatureHelp:()=>Um,SignatureInfo:()=>Ha,SignatureKind:()=>Le,SmartSelectionRange:()=>qm,SnippetKind:()=>at,StatisticType:()=>ns,StructureIsReused:()=>pe,SymbolAccessibility:()=>xe,SymbolDisplay:()=>Km,SymbolDisplayPartKind:()=>ws,SymbolFlags:()=>Ce,SymbolFormatFlags:()=>Se,SyntaxKind:()=>Q,Ternary:()=>We,ThrottledCancellationToken:()=>Kl,TokenClass:()=>js,TokenFlags:()=>ie,TransformFlags:()=>ot,TypeFacts:()=>ea,TypeFlags:()=>Fe,TypeFormatFlags:()=>Te,TypeMapKind:()=>Be,TypePredicateKind:()=>ve,TypeReferenceSerializationKind:()=>be,UnionReduction:()=>_e,UpToDateStatusType:()=>Za,VarianceFlags:()=>De,Version:()=>k,VersionRange:()=>F,WatchDirectoryFlags:()=>nt,WatchDirectoryKind:()=>Ke,WatchFileKind:()=>He,WatchLogLevel:()=>Ia,WatchType:()=>Ya,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:()=>Si,affectsDeclarationPathOptionDeclarations:()=>Zi,affectsEmitOptionDeclarations:()=>Yi,allKeysStartWithDot:()=>allKeysStartWithDot,altDirectorySeparator:()=>Pt,and:()=>and,append:()=>append,appendIfUnique:()=>appendIfUnique,arrayFrom:()=>arrayFrom,arrayIsEqualTo:()=>arrayIsEqualTo,arrayIsHomogeneous:()=>arrayIsHomogeneous,arrayOf:()=>arrayOf,arrayReverseIterator:()=>arrayReverseIterator,arrayToMap:()=>arrayToMap,arrayToMultiMap:()=>arrayToMultiMap,arrayToNumericMap:()=>arrayToNumericMap,assertType:()=>assertType,assign:()=>assign,asyncSuperHelper:()=>Ti,attachFileToDiagnostics:()=>attachFileToDiagnostics,base64decode:()=>base64decode,base64encode:()=>base64encode,binarySearch:()=>binarySearch,binarySearchKey:()=>binarySearchKey,bindSourceFile:()=>bindSourceFile,breakIntoCharacterSpans:()=>breakIntoCharacterSpans,breakIntoWordSpans:()=>breakIntoWordSpans,buildLinkParts:()=>buildLinkParts,buildOpts:()=>po,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,canHaveModuleSpecifier:()=>canHaveModuleSpecifier,canHaveSymbol:()=>canHaveSymbol,canIncludeBindAndCheckDiagnostics:()=>canIncludeBindAndCheckDiagnostics,canJsonReportNoInputFiles:()=>canJsonReportNoInputFiles,canProduceDiagnostics:()=>canProduceDiagnostics,canUsePropertyAccess:()=>canUsePropertyAccess,canWatchAffectingLocation:()=>canWatchAffectingLocation,canWatchAtTypes:()=>canWatchAtTypes,canWatchDirectoryOrFile:()=>canWatchDirectoryOrFile,canWatchDirectoryOrFilePath:()=>canWatchDirectoryOrFilePath,cartesianProduct:()=>cartesianProduct,cast:()=>cast,chainBundle:()=>chainBundle,chainDiagnosticMessages:()=>chainDiagnosticMessages,changeAnyExtension:()=>changeAnyExtension,changeCompilerHostLikeToUseCache:()=>changeCompilerHostLikeToUseCache,changeExtension:()=>changeExtension,changeFullExtension:()=>changeFullExtension,changesAffectModuleResolution:()=>changesAffectModuleResolution,changesAffectingProgramStructure:()=>changesAffectingProgramStructure,characterCodeToRegularExpressionFlag:()=>characterCodeToRegularExpressionFlag,childIsDecorated:()=>childIsDecorated,classElementOrClassElementParameterIsDecorated:()=>classElementOrClassElementParameterIsDecorated,classHasClassThisAssignment:()=>classHasClassThisAssignment,classHasDeclaredOrExplicitlyAssignedName:()=>classHasDeclaredOrExplicitlyAssignedName,classHasExplicitlyAssignedName:()=>classHasExplicitlyAssignedName,classOrConstructorParameterIsDecorated:()=>classOrConstructorParameterIsDecorated,classicNameResolver:()=>classicNameResolver,classifier:()=>Yl,cleanExtendedConfigCache:()=>cleanExtendedConfigCache,clear:()=>clear,clearMap:()=>clearMap,clearSharedExtendedConfigFileWatcher:()=>clearSharedExtendedConfigFileWatcher,climbPastPropertyAccess:()=>climbPastPropertyAccess,clone:()=>clone,cloneCompilerOptions:()=>cloneCompilerOptions,closeFileWatcher:()=>closeFileWatcher,closeFileWatcherOf:()=>closeFileWatcherOf,codefix:()=>ed,collapseTextChangeRangesAcrossMultipleVersions:()=>collapseTextChangeRangesAcrossMultipleVersions,collectExternalModuleInfo:()=>collectExternalModuleInfo,combine:()=>combine,combinePaths:()=>combinePaths,commandLineOptionOfCustomType:()=>ao,commentPragmas:()=>gt,commonOptionsWithBuild:()=>Hi,compact:()=>compact,compareBooleans:()=>compareBooleans,compareDataObjects:()=>compareDataObjects,compareDiagnostics:()=>compareDiagnostics,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,compilerOptionsAffectDeclarationPath:()=>compilerOptionsAffectDeclarationPath,compilerOptionsAffectEmit:()=>compilerOptionsAffectEmit,compilerOptionsAffectSemanticDiagnostics:()=>compilerOptionsAffectSemanticDiagnostics,compilerOptionsDidYouMeanDiagnostics:()=>go,compilerOptionsIndicateEsModules:()=>compilerOptionsIndicateEsModules,computeCommonSourceDirectoryOfFilenames:()=>computeCommonSourceDirectoryOfFilenames,computeLineAndCharacterOfPosition:()=>computeLineAndCharacterOfPosition,computeLineOfPosition:()=>computeLineOfPosition,computeLineStarts:()=>computeLineStarts,computePositionOfLineAndCharacter:()=>computePositionOfLineAndCharacter,computeSignatureWithDiagnostics:()=>computeSignatureWithDiagnostics,computeSuggestionDiagnostics:()=>computeSuggestionDiagnostics,computedOptions:()=>Wn,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,createBuilderProgram:()=>createBuilderProgram,createBuilderProgramUsingIncrementalBuildInfo:()=>createBuilderProgramUsingIncrementalBuildInfo,createBuilderStatusReporter:()=>createBuilderStatusReporter,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,createEvaluator:()=>createEvaluator,createExpressionForJsxElement:()=>createExpressionForJsxElement,createExpressionForJsxFragment:()=>createExpressionForJsxFragment,createExpressionForObjectLiteralElementLike:()=>createExpressionForObjectLiteralElementLike,createExpressionForPropertyName:()=>createExpressionForPropertyName,createExpressionFromEntityName:()=>createExpressionFromEntityName,createExternalHelpersImportDeclarationIfNeeded:()=>createExternalHelpersImportDeclarationIfNeeded,createFileDiagnostic:()=>createFileDiagnostic,createFileDiagnosticFromMessageChain:()=>createFileDiagnosticFromMessageChain,createFlowNode:()=>createFlowNode,createForOfBindingStatement:()=>createForOfBindingStatement,createFutureSourceFile:()=>createFutureSourceFile,createGetCanonicalFileName:()=>createGetCanonicalFileName,createGetIsolatedDeclarationErrors:()=>createGetIsolatedDeclarationErrors,createGetSourceFile:()=>createGetSourceFile,createGetSymbolAccessibilityDiagnosticForNode:()=>createGetSymbolAccessibilityDiagnosticForNode,createGetSymbolAccessibilityDiagnosticForNodeName:()=>createGetSymbolAccessibilityDiagnosticForNodeName,createGetSymbolWalker:()=>createGetSymbolWalker,createIncrementalCompilerHost:()=>createIncrementalCompilerHost,createIncrementalProgram:()=>createIncrementalProgram,createJsxFactoryExpression:()=>createJsxFactoryExpression,createLanguageService:()=>createLanguageService,createLanguageServiceSourceFile:()=>createLanguageServiceSourceFile,createMemberAccessForPropertyName:()=>createMemberAccessForPropertyName,createModeAwareCache:()=>createModeAwareCache,createModeAwareCacheKey:()=>createModeAwareCacheKey,createModeMismatchDetails:()=>createModeMismatchDetails,createModuleNotFoundChain:()=>createModuleNotFoundChain,createModuleResolutionCache:()=>createModuleResolutionCache,createModuleResolutionLoader:()=>createModuleResolutionLoader,createModuleResolutionLoaderUsingGlobalCache:()=>createModuleResolutionLoaderUsingGlobalCache,createModuleSpecifierResolutionHost:()=>createModuleSpecifierResolutionHost,createMultiMap:()=>createMultiMap,createNameResolver:()=>createNameResolver,createNodeConverters:()=>createNodeConverters,createNodeFactory:()=>createNodeFactory,createOptionNameMap:()=>createOptionNameMap,createOverload:()=>createOverload,createPackageJsonImportFilter:()=>createPackageJsonImportFilter,createPackageJsonInfo:()=>createPackageJsonInfo,createParenthesizerRules:()=>createParenthesizerRules,createPatternMatcher:()=>createPatternMatcher,createPrinter:()=>createPrinter,createPrinterWithDefaults:()=>Na,createPrinterWithRemoveComments:()=>ka,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>Fa,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>Pa,createProgram:()=>createProgram,createProgramDiagnostics:()=>createProgramDiagnostics,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,createSyntacticTypeNodeBuilder:()=>createSyntacticTypeNodeBuilder,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,createWatchCompilerHost:()=>createWatchCompilerHost2,createWatchCompilerHostOfConfigFile:()=>createWatchCompilerHostOfConfigFile,createWatchCompilerHostOfFilesAndCompilerOptions:()=>createWatchCompilerHostOfFilesAndCompilerOptions,createWatchFactory:()=>createWatchFactory,createWatchHost:()=>createWatchHost,createWatchProgram:()=>createWatchProgram,createWatchStatusReporter:()=>createWatchStatusReporter,createWriteFileMeasuringIO:()=>createWriteFileMeasuringIO,declarationNameToString:()=>declarationNameToString,decodeMappings:()=>decodeMappings,decodedTextSpanIntersectsWith:()=>decodedTextSpanIntersectsWith,deduplicate:()=>deduplicate,defaultHoverMaximumTruncationLength:()=>dn,defaultInitCompilerOptions:()=>_o,defaultMaximumTruncationLength:()=>cn,diagnosticCategoryName:()=>diagnosticCategoryName,diagnosticToString:()=>diagnosticToString,diagnosticsEqualityComparer:()=>diagnosticsEqualityComparer,directoryProbablyExists:()=>directoryProbablyExists,directorySeparator:()=>Ft,displayPart:()=>displayPart,displayPartsToString:()=>displayPartsToString,disposeEmitNodes:()=>disposeEmitNodes,documentSpansEqual:()=>documentSpansEqual,dumpTracingLegend:()=>$,elementAt:()=>p,elideNodes:()=>elideNodes,emitDetachedComments:()=>emitDetachedComments,emitFiles:()=>emitFiles,emitFilesAndReportErrors:()=>emitFilesAndReportErrors,emitFilesAndReportErrorsAndGetExitStatus:()=>emitFilesAndReportErrorsAndGetExitStatus,emitModuleKindIsNonNodeESM:()=>emitModuleKindIsNonNodeESM,emitNewLineBeforeLeadingCommentOfPosition:()=>emitNewLineBeforeLeadingCommentOfPosition,emitResolverSkipsTypeChecking:()=>emitResolverSkipsTypeChecking,emitSkippedWithNoDiagnostics:()=>Va,emptyArray:()=>l,emptyFileSystemEntries:()=>Nr,emptyMap:()=>d,emptyOptions:()=>Es,endsWith:()=>endsWith,ensurePathIsNonModuleName:()=>ensurePathIsNonModuleName,ensureScriptKind:()=>ensureScriptKind,ensureTrailingDirectorySeparator:()=>ensureTrailingDirectorySeparator,entityNameToString:()=>entityNameToString,enumerateInsertsAndDeletes:()=>enumerateInsertsAndDeletes,equalOwnProperties:()=>equalOwnProperties,equateStringsCaseInsensitive:()=>equateStringsCaseInsensitive,equateStringsCaseSensitive:()=>equateStringsCaseSensitive,equateValues:()=>equateValues,escapeJsxAttributeString:()=>escapeJsxAttributeString,escapeLeadingUnderscores:()=>escapeLeadingUnderscores,escapeNonAsciiString:()=>escapeNonAsciiString,escapeSnippetText:()=>escapeSnippetText,escapeString:()=>escapeString,escapeTemplateSubstitution:()=>escapeTemplateSubstitution,evaluatorResult:()=>evaluatorResult,every:()=>every,exclusivelyPrefixedNodeCoreModules:()=>Dr,executeCommandLine:()=>executeCommandLine,expandPreOrPostfixIncrementOrDecrementExpression:()=>expandPreOrPostfixIncrementOrDecrementExpression,explainFiles:()=>explainFiles,explainIfFileIsRedirectAndImpliedFormat:()=>explainIfFileIsRedirectAndImpliedFormat,exportAssignmentIsAlias:()=>exportAssignmentIsAlias,expressionResultIsUnused:()=>expressionResultIsUnused,extend:()=>extend,extensionFromPath:()=>extensionFromPath,extensionIsTS:()=>extensionIsTS,extensionsNotSupportingExtensionlessResolution:()=>vr,externalHelpersModuleNameText:()=>sn,factory:()=>Wr,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,findConstructorDeclaration:()=>findConstructorDeclaration,findContainingList:()=>findContainingList,findDiagnosticForNode:()=>findDiagnosticForNode,findFirstNonJsxWhitespaceToken:()=>findFirstNonJsxWhitespaceToken,findIndex:()=>findIndex,findLast:()=>findLast,findLastIndex:()=>findLastIndex,findListItemInfo:()=>findListItemInfo,findModifier:()=>findModifier,findNextToken:()=>findNextToken,findPackageJson:()=>findPackageJson,findPackageJsons:()=>findPackageJsons,findPrecedingMatchingToken:()=>findPrecedingMatchingToken,findPrecedingToken:()=>findPrecedingToken,findSuperStatementIndexPath:()=>findSuperStatementIndexPath,findTokenOnLeftOfPosition:()=>findTokenOnLeftOfPosition,findUseStrictPrologue:()=>findUseStrictPrologue,first:()=>first,firstDefined:()=>firstDefined,firstDefinedIterator:()=>firstDefinedIterator,firstIterator:()=>firstIterator,firstOrOnly:()=>firstOrOnly,firstOrUndefined:()=>firstOrUndefined,firstOrUndefinedIterator:()=>firstOrUndefinedIterator,fixupCompilerOptions:()=>fixupCompilerOptions,flatMap:()=>flatMap,flatMapIterator:()=>flatMapIterator,flatMapToMutable:()=>flatMapToMutable,flatten:()=>flatten,flattenCommaList:()=>flattenCommaList,flattenDestructuringAssignment:()=>flattenDestructuringAssignment,flattenDestructuringBinding:()=>flattenDestructuringBinding,flattenDiagnosticMessageText:()=>flattenDiagnosticMessageText,forEach:()=>forEach,forEachAncestor:()=>forEachAncestor,forEachAncestorDirectory:()=>forEachAncestorDirectory,forEachAncestorDirectoryStoppingAtGlobalCache:()=>forEachAncestorDirectoryStoppingAtGlobalCache,forEachChild:()=>forEachChild,forEachChildRecursively:()=>forEachChildRecursively,forEachDynamicImportOrRequireCall:()=>forEachDynamicImportOrRequireCall,forEachEmittedFile:()=>forEachEmittedFile,forEachEnclosingBlockScopeContainer:()=>forEachEnclosingBlockScopeContainer,forEachEntry:()=>forEachEntry,forEachExternalModuleToImportFrom:()=>forEachExternalModuleToImportFrom,forEachImportClauseDeclaration:()=>forEachImportClauseDeclaration,forEachKey:()=>forEachKey,forEachLeadingCommentRange:()=>forEachLeadingCommentRange,forEachNameInAccessChainWalkingLeft:()=>forEachNameInAccessChainWalkingLeft,forEachNameOfDefaultExport:()=>forEachNameOfDefaultExport,forEachOptionsSyntaxByName:()=>forEachOptionsSyntaxByName,forEachProjectReference:()=>forEachProjectReference,forEachPropertyAssignment:()=>forEachPropertyAssignment,forEachResolvedProjectReference:()=>forEachResolvedProjectReference,forEachReturnStatement:()=>forEachReturnStatement,forEachRight:()=>forEachRight,forEachTrailingCommentRange:()=>forEachTrailingCommentRange,forEachTsConfigPropArray:()=>forEachTsConfigPropArray,forEachUnique:()=>forEachUnique,forEachYieldExpression:()=>forEachYieldExpression,formatColorAndReset:()=>formatColorAndReset,formatDiagnostic:()=>formatDiagnostic,formatDiagnostics:()=>formatDiagnostics,formatDiagnosticsWithColorAndContext:()=>formatDiagnosticsWithColorAndContext,formatGeneratedName:()=>formatGeneratedName,formatGeneratedNamePart:()=>formatGeneratedNamePart,formatLocation:()=>formatLocation,formatMessage:()=>formatMessage,formatStringFromArgs:()=>formatStringFromArgs,formatting:()=>r_,generateDjb2Hash:()=>generateDjb2Hash,generateTSConfig:()=>generateTSConfig,getAdjustedReferenceLocation:()=>getAdjustedReferenceLocation,getAdjustedRenameLocation:()=>getAdjustedRenameLocation,getAliasDeclarationFromName:()=>getAliasDeclarationFromName,getAllAccessorDeclarations:()=>getAllAccessorDeclarations,getAllDecoratorsOfClass:()=>getAllDecoratorsOfClass,getAllDecoratorsOfClassElement:()=>getAllDecoratorsOfClassElement,getAllJSDocTags:()=>getAllJSDocTags,getAllJSDocTagsOfKind:()=>getAllJSDocTagsOfKind,getAllKeys:()=>getAllKeys,getAllProjectOutputs:()=>getAllProjectOutputs,getAllSuperTypeNodes:()=>getAllSuperTypeNodes,getAllowImportingTsExtensions:()=>Un,getAllowJSCompilerOption:()=>rr,getAllowSyntheticDefaultImports:()=>$n,getAncestor:()=>getAncestor,getAnyExtensionFromPath:()=>getAnyExtensionFromPath,getAreDeclarationMapsEnabled:()=>nr,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,getCanonicalDiagnostic:()=>getCanonicalDiagnostic,getCheckFlags:()=>getCheckFlags,getClassExtendsHeritageElement:()=>getClassExtendsHeritageElement,getClassLikeDeclarationOfSymbol:()=>getClassLikeDeclarationOfSymbol,getCombinedLocalAndExportSymbolFlags:()=>getCombinedLocalAndExportSymbolFlags,getCombinedModifierFlags:()=>getCombinedModifierFlags,getCombinedNodeFlags:()=>getCombinedNodeFlags,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>getCombinedNodeFlagsAlwaysIncludeJSDoc,getCommentRange:()=>getCommentRange,getCommonSourceDirectory:()=>getCommonSourceDirectory,getCommonSourceDirectoryOfConfig:()=>getCommonSourceDirectoryOfConfig,getCompilerOptionValue:()=>getCompilerOptionValue,getConditions:()=>getConditions,getConfigFileParsingDiagnostics:()=>getConfigFileParsingDiagnostics,getConstantValue:()=>getConstantValue,getContainerFlags:()=>getContainerFlags,getContainerNode:()=>getContainerNode,getContainingClass:()=>getContainingClass,getContainingClassExcludingClassDecorators:()=>getContainingClassExcludingClassDecorators,getContainingClassStaticBlock:()=>getContainingClassStaticBlock,getContainingFunction:()=>getContainingFunction,getContainingFunctionDeclaration:()=>getContainingFunctionDeclaration,getContainingFunctionOrClassStaticBlock:()=>getContainingFunctionOrClassStaticBlock,getContainingNodeArray:()=>getContainingNodeArray,getContainingObjectLiteralElement:()=>getContainingObjectLiteralElement,getContextualTypeFromParent:()=>getContextualTypeFromParent,getContextualTypeFromParentOrAncestorTypeNode:()=>getContextualTypeFromParentOrAncestorTypeNode,getDeclarationDiagnostics:()=>getDeclarationDiagnostics,getDeclarationEmitExtensionForPath:()=>getDeclarationEmitExtensionForPath,getDeclarationEmitOutputFilePath:()=>getDeclarationEmitOutputFilePath,getDeclarationEmitOutputFilePathWorker:()=>getDeclarationEmitOutputFilePathWorker,getDeclarationFileExtension:()=>getDeclarationFileExtension,getDeclarationFromName:()=>getDeclarationFromName,getDeclarationModifierFlagsFromSymbol:()=>getDeclarationModifierFlagsFromSymbol,getDeclarationOfKind:()=>getDeclarationOfKind,getDeclarationsOfKind:()=>getDeclarationsOfKind,getDeclaredExpandoInitializer:()=>getDeclaredExpandoInitializer,getDecorators:()=>getDecorators,getDefaultCompilerOptions:()=>getDefaultCompilerOptions2,getDefaultFormatCodeSettings:()=>getDefaultFormatCodeSettings,getDefaultLibFileName:()=>getDefaultLibFileName,getDefaultLibFilePath:()=>getDefaultLibFilePath,getDefaultLikeExportInfo:()=>getDefaultLikeExportInfo,getDefaultLikeExportNameFromDeclaration:()=>getDefaultLikeExportNameFromDeclaration,getDefaultResolutionModeForFileWorker:()=>getDefaultResolutionModeForFileWorker,getDiagnosticText:()=>getDiagnosticText,getDiagnosticsWithinSpan:()=>getDiagnosticsWithinSpan,getDirectoryPath:()=>getDirectoryPath,getDirectoryToWatchFailedLookupLocation:()=>getDirectoryToWatchFailedLookupLocation,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>getDirectoryToWatchFailedLookupLocationFromTypeRoot,getDocumentPositionMapper:()=>getDocumentPositionMapper,getDocumentSpansEqualityComparer:()=>getDocumentSpansEqualityComparer,getESModuleInterop:()=>Gn,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:()=>Zn,getEmitFlags:()=>getEmitFlags,getEmitHelpers:()=>getEmitHelpers,getEmitModuleDetectionKind:()=>Hn,getEmitModuleFormatOfFileWorker:()=>getEmitModuleFormatOfFileWorker,getEmitModuleKind:()=>Vn,getEmitModuleResolutionKind:()=>qn,getEmitScriptTarget:()=>zn,getEmitStandardClassFields:()=>getEmitStandardClassFields,getEnclosingBlockScopeContainer:()=>getEnclosingBlockScopeContainer,getEnclosingContainer:()=>getEnclosingContainer,getEncodedSemanticClassifications:()=>getEncodedSemanticClassifications,getEncodedSyntacticClassifications:()=>getEncodedSyntacticClassifications,getEndLinePosition:()=>getEndLinePosition,getEntityNameFromTypeNode:()=>getEntityNameFromTypeNode,getEntrypointsFromPackageJsonInfo:()=>getEntrypointsFromPackageJsonInfo,getErrorCountForSummary:()=>getErrorCountForSummary,getErrorSpanForNode:()=>getErrorSpanForNode,getErrorSummaryText:()=>getErrorSummaryText,getEscapedTextOfIdentifierOrLiteral:()=>getEscapedTextOfIdentifierOrLiteral,getEscapedTextOfJsxAttributeName:()=>getEscapedTextOfJsxAttributeName,getEscapedTextOfJsxNamespacedName:()=>getEscapedTextOfJsxNamespacedName,getExpandoInitializer:()=>getExpandoInitializer,getExportAssignmentExpression:()=>getExportAssignmentExpression,getExportInfoMap:()=>getExportInfoMap,getExportNeedsImportStarHelper:()=>getExportNeedsImportStarHelper,getExpressionAssociativity:()=>getExpressionAssociativity,getExpressionPrecedence:()=>getExpressionPrecedence,getExternalHelpersModuleName:()=>getExternalHelpersModuleName,getExternalModuleImportEqualsDeclarationExpression:()=>getExternalModuleImportEqualsDeclarationExpression,getExternalModuleName:()=>getExternalModuleName,getExternalModuleNameFromDeclaration:()=>getExternalModuleNameFromDeclaration,getExternalModuleNameFromPath:()=>getExternalModuleNameFromPath,getExternalModuleNameLiteral:()=>getExternalModuleNameLiteral,getExternalModuleRequireArgument:()=>getExternalModuleRequireArgument,getFallbackOptions:()=>getFallbackOptions,getFileEmitOutput:()=>getFileEmitOutput,getFileMatcherPatterns:()=>getFileMatcherPatterns,getFileNamesFromConfigSpecs:()=>getFileNamesFromConfigSpecs,getFileWatcherEventKind:()=>getFileWatcherEventKind,getFilesInErrorForSummary:()=>getFilesInErrorForSummary,getFirstConstructorWithBody:()=>getFirstConstructorWithBody,getFirstIdentifier:()=>getFirstIdentifier,getFirstNonSpaceCharacterPosition:()=>getFirstNonSpaceCharacterPosition,getFirstProjectOutput:()=>getFirstProjectOutput,getFixableErrorSpanExpression:()=>getFixableErrorSpanExpression,getFormatCodeSettingsForWriting:()=>getFormatCodeSettingsForWriting,getFullWidth:()=>getFullWidth,getFunctionFlags:()=>getFunctionFlags,getHeritageClause:()=>getHeritageClause,getHostSignatureFromJSDoc:()=>getHostSignatureFromJSDoc,getIdentifierAutoGenerate:()=>getIdentifierAutoGenerate,getIdentifierGeneratedImportReference:()=>getIdentifierGeneratedImportReference,getIdentifierTypeArguments:()=>getIdentifierTypeArguments,getImmediatelyInvokedFunctionExpression:()=>getImmediatelyInvokedFunctionExpression,getImpliedNodeFormatForEmitWorker:()=>getImpliedNodeFormatForEmitWorker,getImpliedNodeFormatForFile:()=>getImpliedNodeFormatForFile,getImpliedNodeFormatForFileWorker:()=>getImpliedNodeFormatForFileWorker,getImportNeedsImportDefaultHelper:()=>getImportNeedsImportDefaultHelper,getImportNeedsImportStarHelper:()=>getImportNeedsImportStarHelper,getIndentString:()=>getIndentString,getInferredLibraryNameResolveFrom:()=>getInferredLibraryNameResolveFrom,getInitializedVariables:()=>getInitializedVariables,getInitializerOfBinaryExpression:()=>getInitializerOfBinaryExpression,getInitializerOfBindingOrAssignmentElement:()=>getInitializerOfBindingOrAssignmentElement,getInterfaceBaseTypeNodes:()=>getInterfaceBaseTypeNodes,getInternalEmitFlags:()=>getInternalEmitFlags,getInvokedExpression:()=>getInvokedExpression,getIsFileExcluded:()=>getIsFileExcluded,getIsolatedModules:()=>Kn,getJSDocAugmentsTag:()=>getJSDocAugmentsTag,getJSDocClassTag:()=>getJSDocClassTag,getJSDocCommentRanges:()=>getJSDocCommentRanges,getJSDocCommentsAndTags:()=>getJSDocCommentsAndTags,getJSDocDeprecatedTag:()=>getJSDocDeprecatedTag,getJSDocDeprecatedTagNoCache:()=>getJSDocDeprecatedTagNoCache,getJSDocEnumTag:()=>getJSDocEnumTag,getJSDocHost:()=>getJSDocHost,getJSDocImplementsTags:()=>getJSDocImplementsTags,getJSDocOverloadTags:()=>getJSDocOverloadTags,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,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,getLibFileNameFromLibReference:()=>getLibFileNameFromLibReference,getLibNameFromLibReference:()=>getLibNameFromLibReference,getLibraryNameFromLibFileName:()=>getLibraryNameFromLibFileName,getLineAndCharacterOfPosition:()=>getLineAndCharacterOfPosition,getLineInfo:()=>getLineInfo,getLineOfLocalPosition:()=>getLineOfLocalPosition,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,getNameFromImportAttribute:()=>getNameFromImportAttribute,getNameFromIndexInfo:()=>getNameFromIndexInfo,getNameFromPropertyName:()=>getNameFromPropertyName,getNameOfAccessExpression:()=>getNameOfAccessExpression,getNameOfCompilerOptionValue:()=>getNameOfCompilerOptionValue,getNameOfDeclaration:()=>getNameOfDeclaration,getNameOfExpando:()=>getNameOfExpando,getNameOfJSDocTypedef:()=>getNameOfJSDocTypedef,getNameOfScriptTarget:()=>getNameOfScriptTarget,getNameOrArgument:()=>getNameOrArgument,getNameTable:()=>getNameTable,getNamespaceDeclarationNode:()=>getNamespaceDeclarationNode,getNewLineCharacter:()=>getNewLineCharacter,getNewLineKind:()=>getNewLineKind,getNewLineOrDefaultFromHost:()=>getNewLineOrDefaultFromHost,getNewTargetContainer:()=>getNewTargetContainer,getNextJSDocCommentLocation:()=>getNextJSDocCommentLocation,getNodeChildren:()=>getNodeChildren,getNodeForGeneratedName:()=>getNodeForGeneratedName,getNodeId:()=>getNodeId,getNodeKind:()=>getNodeKind,getNodeModifiers:()=>getNodeModifiers,getNodeModulePathParts:()=>getNodeModulePathParts,getNonAssignedNameOfDeclaration:()=>getNonAssignedNameOfDeclaration,getNonAssignmentOperatorForCompoundAssignment:()=>getNonAssignmentOperatorForCompoundAssignment,getNonAugmentationDeclaration:()=>getNonAugmentationDeclaration,getNonDecoratorTokenPosOfNode:()=>getNonDecoratorTokenPosOfNode,getNonIncrementalBuildInfoRoots:()=>getNonIncrementalBuildInfoRoots,getNonModifierTokenPosOfNode:()=>getNonModifierTokenPosOfNode,getNormalizedAbsolutePath:()=>getNormalizedAbsolutePath,getNormalizedAbsolutePathWithoutRoot:()=>getNormalizedAbsolutePathWithoutRoot,getNormalizedPathComponents:()=>getNormalizedPathComponents,getObjectFlags:()=>getObjectFlags,getOperatorAssociativity:()=>getOperatorAssociativity,getOperatorPrecedence:()=>getOperatorPrecedence,getOptionFromName:()=>getOptionFromName,getOptionsForLibraryResolution:()=>getOptionsForLibraryResolution,getOptionsNameMap:()=>getOptionsNameMap,getOptionsSyntaxByArrayElementValue:()=>getOptionsSyntaxByArrayElementValue,getOptionsSyntaxByValue:()=>getOptionsSyntaxByValue,getOrCreateEmitNode:()=>getOrCreateEmitNode,getOrUpdate:()=>getOrUpdate,getOriginalNode:()=>getOriginalNode,getOriginalNodeId:()=>getOriginalNodeId,getOutputDeclarationFileName:()=>getOutputDeclarationFileName,getOutputDeclarationFileNameWorker:()=>getOutputDeclarationFileNameWorker,getOutputExtension:()=>getOutputExtension,getOutputFileNames:()=>getOutputFileNames,getOutputJSFileNameWorker:()=>getOutputJSFileNameWorker,getOutputPathsFor:()=>getOutputPathsFor,getOwnEmitOutputFilePath:()=>getOwnEmitOutputFilePath,getOwnKeys:()=>getOwnKeys,getOwnValues:()=>getOwnValues,getPackageJsonTypesVersionsPaths:()=>getPackageJsonTypesVersionsPaths,getPackageNameFromTypesPackageName:()=>getPackageNameFromTypesPackageName,getPackageScopeForPath:()=>getPackageScopeForPath,getParameterSymbolFromJSDoc:()=>getParameterSymbolFromJSDoc,getParentNodeInSpan:()=>getParentNodeInSpan,getParseTreeNode:()=>getParseTreeNode,getParsedCommandLineOfConfigFile:()=>getParsedCommandLineOfConfigFile,getPathComponents:()=>getPathComponents,getPathFromPathComponents:()=>getPathFromPathComponents,getPathUpdater:()=>getPathUpdater,getPathsBasePath:()=>getPathsBasePath,getPatternFromSpec:()=>getPatternFromSpec,getPendingEmitKindWithSeen:()=>getPendingEmitKindWithSeen,getPositionOfLineAndCharacter:()=>getPositionOfLineAndCharacter,getPossibleGenericSignatures:()=>getPossibleGenericSignatures,getPossibleOriginalInputExtensionForExtension:()=>getPossibleOriginalInputExtensionForExtension,getPossibleOriginalInputPathWithoutChangingExt:()=>getPossibleOriginalInputPathWithoutChangingExt,getPossibleTypeArgumentsInfo:()=>getPossibleTypeArgumentsInfo,getPreEmitDiagnostics:()=>getPreEmitDiagnostics,getPrecedingNonSpaceCharacterPosition:()=>getPrecedingNonSpaceCharacterPosition,getPrivateIdentifier:()=>getPrivateIdentifier,getProperties:()=>getProperties,getProperty:()=>getProperty,getPropertyAssignmentAliasLikeExpression:()=>getPropertyAssignmentAliasLikeExpression,getPropertyNameForPropertyNameNode:()=>getPropertyNameForPropertyNameNode,getPropertyNameFromType:()=>getPropertyNameFromType,getPropertyNameOfBindingOrAssignmentElement:()=>getPropertyNameOfBindingOrAssignmentElement,getPropertySymbolFromBindingElement:()=>getPropertySymbolFromBindingElement,getPropertySymbolsFromContextualType:()=>getPropertySymbolsFromContextualType,getQuoteFromPreference:()=>getQuoteFromPreference,getQuotePreference:()=>getQuotePreference,getRangesWhere:()=>getRangesWhere,getRefactorContextSpan:()=>getRefactorContextSpan,getReferencedFileLocation:()=>getReferencedFileLocation,getRegexFromPattern:()=>getRegexFromPattern,getRegularExpressionForWildcard:()=>getRegularExpressionForWildcard,getRegularExpressionsForWildcards:()=>getRegularExpressionsForWildcards,getRelativePathFromDirectory:()=>getRelativePathFromDirectory,getRelativePathFromFile:()=>getRelativePathFromFile,getRelativePathToDirectoryOrUrl:()=>getRelativePathToDirectoryOrUrl,getRenameLocation:()=>getRenameLocation,getReplacementSpanForContextToken:()=>getReplacementSpanForContextToken,getResolutionDiagnostic:()=>getResolutionDiagnostic,getResolutionModeOverride:()=>getResolutionModeOverride,getResolveJsonModule:()=>Yn,getResolvePackageJsonExports:()=>Qn,getResolvePackageJsonImports:()=>Xn,getResolvedExternalModuleName:()=>getResolvedExternalModuleName,getResolvedModuleFromResolution:()=>getResolvedModuleFromResolution,getResolvedTypeReferenceDirectiveFromResolution:()=>getResolvedTypeReferenceDirectiveFromResolution,getRestIndicatorOfBindingOrAssignmentElement:()=>getRestIndicatorOfBindingOrAssignmentElement,getRestParameterElementType:()=>getRestParameterElementType,getRightMostAssignedExpression:()=>getRightMostAssignedExpression,getRootDeclaration:()=>getRootDeclaration,getRootDirectoryOfResolutionCache:()=>getRootDirectoryOfResolutionCache,getRootLength:()=>getRootLength,getScriptKind:()=>getScriptKind,getScriptKindFromFileName:()=>getScriptKindFromFileName,getScriptTargetFeatures:()=>un,getSelectedEffectiveModifierFlags:()=>getSelectedEffectiveModifierFlags,getSelectedSyntacticModifierFlags:()=>getSelectedSyntacticModifierFlags,getSemanticClassifications:()=>getSemanticClassifications,getSemanticJsxChildren:()=>getSemanticJsxChildren,getSetAccessorTypeAnnotationNode:()=>getSetAccessorTypeAnnotationNode,getSetAccessorValueParameter:()=>getSetAccessorValueParameter,getSetExternalModuleIndicator:()=>getSetExternalModuleIndicator,getShebang:()=>getShebang,getSingleVariableOfVariableStatement:()=>getSingleVariableOfVariableStatement,getSnapshotText:()=>getSnapshotText,getSnippetElement:()=>getSnippetElement,getSourceFileOfModule:()=>getSourceFileOfModule,getSourceFileOfNode:()=>getSourceFileOfNode,getSourceFilePathInNewDir:()=>getSourceFilePathInNewDir,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,getSubPatternFromSpec:()=>getSubPatternFromSpec,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,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:()=>ir,getWatchErrorSummaryDiagnosticMessage:()=>getWatchErrorSummaryDiagnosticMessage,getWatchFactory:()=>getWatchFactory,group:()=>group,groupBy:()=>groupBy,guessIndentation:()=>guessIndentation,handleNoEmitOptions:()=>handleNoEmitOptions,handleWatchOptionsConfigDirTemplateSubstitution:()=>handleWatchOptionsConfigDirTemplateSubstitution,hasAbstractModifier:()=>hasAbstractModifier,hasAccessorModifier:()=>hasAccessorModifier,hasAmbientModifier:()=>hasAmbientModifier,hasChangesInResolutions:()=>hasChangesInResolutions,hasContextSensitiveParameters:()=>hasContextSensitiveParameters,hasDecorators:()=>hasDecorators,hasDocComment:()=>hasDocComment,hasDynamicName:()=>hasDynamicName,hasEffectiveModifier:()=>hasEffectiveModifier,hasEffectiveModifiers:()=>hasEffectiveModifiers,hasEffectiveReadonlyModifier:()=>hasEffectiveReadonlyModifier,hasExtension:()=>hasExtension,hasImplementationTSFileExtension:()=>hasImplementationTSFileExtension,hasIndexSignature:()=>hasIndexSignature,hasInferredType:()=>hasInferredType,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,hasResolutionModeOverride:()=>hasResolutionModeOverride,hasRestParameter:()=>hasRestParameter,hasScopeMarker:()=>hasScopeMarker,hasStaticModifier:()=>hasStaticModifier,hasSyntacticModifier:()=>hasSyntacticModifier,hasSyntacticModifiers:()=>hasSyntacticModifiers,hasTSFileExtension:()=>hasTSFileExtension,hasTabstop:()=>hasTabstop,hasTrailingDirectorySeparator:()=>hasTrailingDirectorySeparator,hasType:()=>hasType,hasTypeArguments:()=>hasTypeArguments,hasZeroOrOneAsteriskCharacter:()=>hasZeroOrOneAsteriskCharacter,hostGetCanonicalFileName:()=>hostGetCanonicalFileName,hostUsesCaseSensitiveFileNames:()=>hostUsesCaseSensitiveFileNames,idText:()=>idText,identifierIsThisKeyword:()=>identifierIsThisKeyword,identifierToKeywordKind:()=>identifierToKeywordKind,identity:()=>identity,identitySourceMapConsumer:()=>ua,ignoreSourceNewlines:()=>ignoreSourceNewlines,ignoredPaths:()=>Ct,importFromModuleSpecifier:()=>importFromModuleSpecifier,importSyntaxAffectsModuleResolution:()=>importSyntaxAffectsModuleResolution,indexOfAnyCharCode:()=>indexOfAnyCharCode,indexOfNode:()=>indexOfNode,indicesOf:()=>indicesOf,inferredTypesContainingFile:()=>Ua,injectClassNamedEvaluationHelperBlockIfMissing:()=>injectClassNamedEvaluationHelperBlockIfMissing,injectClassThisAssignmentIfMissing:()=>injectClassThisAssignmentIfMissing,insertImports:()=>insertImports,insertSorted:()=>insertSorted,insertStatementAfterCustomPrologue:()=>insertStatementAfterCustomPrologue,insertStatementAfterStandardPrologue:()=>insertStatementAfterStandardPrologue,insertStatementsAfterCustomPrologue:()=>insertStatementsAfterCustomPrologue,insertStatementsAfterStandardPrologue:()=>insertStatementsAfterStandardPrologue,intersperse:()=>intersperse,intrinsicTagNameToString:()=>intrinsicTagNameToString,introducesArgumentsExoticObject:()=>introducesArgumentsExoticObject,inverseJsxOptionMap:()=>Wi,isAbstractConstructorSymbol:()=>isAbstractConstructorSymbol,isAbstractModifier:()=>isAbstractModifier,isAccessExpression:()=>isAccessExpression,isAccessibilityModifier:()=>isAccessibilityModifier,isAccessor:()=>isAccessor,isAccessorModifier:()=>isAccessorModifier,isAliasableExpression:()=>isAliasableExpression,isAmbientModule:()=>isAmbientModule,isAmbientPropertyDeclaration:()=>isAmbientPropertyDeclaration,isAnyDirectorySeparator:()=>isAnyDirectorySeparator,isAnyImportOrBareOrAccessedRequire:()=>isAnyImportOrBareOrAccessedRequire,isAnyImportOrReExport:()=>isAnyImportOrReExport,isAnyImportOrRequireStatement:()=>isAnyImportOrRequireStatement,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,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,isBinaryLogicalOperator:()=>isBinaryLogicalOperator,isBinaryOperatorToken:()=>isBinaryOperatorToken,isBindableObjectDefinePropertyCall:()=>isBindableObjectDefinePropertyCall,isBindableStaticAccessExpression:()=>isBindableStaticAccessExpression,isBindableStaticElementAccessExpression:()=>isBindableStaticElementAccessExpression,isBindableStaticNameExpression:()=>isBindableStaticNameExpression,isBindingElement:()=>isBindingElement,isBindingElementOfBareOrAccessedRequire:()=>isBindingElementOfBareOrAccessedRequire,isBindingName:()=>isBindingName,isBindingOrAssignmentElement:()=>isBindingOrAssignmentElement,isBindingOrAssignmentPattern:()=>isBindingOrAssignmentPattern,isBindingPattern:()=>isBindingPattern,isBlock:()=>isBlock,isBlockLike:()=>isBlockLike,isBlockOrCatchScoped:()=>isBlockOrCatchScoped,isBlockScope:()=>isBlockScope,isBlockScopedContainerTopLevel:()=>isBlockScopedContainerTopLevel,isBooleanLiteral:()=>isBooleanLiteral,isBreakOrContinueStatement:()=>isBreakOrContinueStatement,isBreakStatement:()=>isBreakStatement,isBuildCommand:()=>isBuildCommand,isBuildInfoFile:()=>isBuildInfoFile,isBuilderProgram:()=>isBuilderProgram,isBundle:()=>isBundle,isCallChain:()=>isCallChain,isCallExpression:()=>isCallExpression,isCallExpressionTarget:()=>isCallExpressionTarget,isCallLikeExpression:()=>isCallLikeExpression,isCallLikeOrFunctionLikeExpression:()=>isCallLikeOrFunctionLikeExpression,isCallOrNewExpression:()=>isCallOrNewExpression,isCallOrNewExpressionTarget:()=>isCallOrNewExpressionTarget,isCallSignatureDeclaration:()=>isCallSignatureDeclaration,isCallToHelper:()=>isCallToHelper,isCaseBlock:()=>isCaseBlock,isCaseClause:()=>isCaseClause,isCaseKeyword:()=>isCaseKeyword,isCaseOrDefaultClause:()=>isCaseOrDefaultClause,isCatchClause:()=>isCatchClause,isCatchClauseVariableDeclaration:()=>isCatchClauseVariableDeclaration,isCatchClauseVariableDeclarationOrBindingElement:()=>isCatchClauseVariableDeclarationOrBindingElement,isCheckJsEnabledForFile:()=>isCheckJsEnabledForFile,isCircularBuildOrder:()=>isCircularBuildOrder,isClassDeclaration:()=>isClassDeclaration,isClassElement:()=>isClassElement,isClassExpression:()=>isClassExpression,isClassInstanceProperty:()=>isClassInstanceProperty,isClassLike:()=>isClassLike,isClassMemberModifier:()=>isClassMemberModifier,isClassNamedEvaluationHelperBlock:()=>isClassNamedEvaluationHelperBlock,isClassOrTypeElement:()=>isClassOrTypeElement,isClassStaticBlockDeclaration:()=>isClassStaticBlockDeclaration,isClassThisAssignmentBlock:()=>isClassThisAssignmentBlock,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,isConstAssertion:()=>isConstAssertion,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,isDiskPathRoot:()=>isDiskPathRoot,isDoStatement:()=>isDoStatement,isDocumentRegistryEntry:()=>isDocumentRegistryEntry,isDotDotDotToken:()=>isDotDotDotToken,isDottedName:()=>isDottedName,isDynamicName:()=>isDynamicName,isEffectiveExternalModule:()=>isEffectiveExternalModule,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,isExpandoPropertyDeclaration:()=>isExpandoPropertyDeclaration,isExportAssignment:()=>isExportAssignment,isExportDeclaration:()=>isExportDeclaration,isExportModifier:()=>isExportModifier,isExportName:()=>isExportName,isExportNamespaceAsDefaultDeclaration:()=>isExportNamespaceAsDefaultDeclaration,isExportOrDefaultModifier:()=>isExportOrDefaultModifier,isExportSpecifier:()=>isExportSpecifier,isExportsIdentifier:()=>isExportsIdentifier,isExportsOrModuleExportsOrAlias:()=>isExportsOrModuleExportsOrAlias,isExpression:()=>isExpression,isExpressionNode:()=>isExpressionNode,isExpressionOfExternalModuleImportEqualsDeclaration:()=>isExpressionOfExternalModuleImportEqualsDeclaration,isExpressionOfOptionalChainRoot:()=>isExpressionOfOptionalChainRoot,isExpressionStatement:()=>isExpressionStatement,isExpressionWithTypeArguments:()=>isExpressionWithTypeArguments,isExpressionWithTypeArgumentsInClassExtendsClause:()=>isExpressionWithTypeArgumentsInClassExtendsClause,isExternalModule:()=>isExternalModule,isExternalModuleAugmentation:()=>isExternalModuleAugmentation,isExternalModuleImportEqualsDeclaration:()=>isExternalModuleImportEqualsDeclaration,isExternalModuleIndicator:()=>isExternalModuleIndicator,isExternalModuleNameRelative:()=>isExternalModuleNameRelative,isExternalModuleReference:()=>isExternalModuleReference,isExternalModuleSymbol:()=>isExternalModuleSymbol,isExternalOrCommonJsModule:()=>isExternalOrCommonJsModule,isFileLevelReservedGeneratedIdentifier:()=>isFileLevelReservedGeneratedIdentifier,isFileLevelUniqueName:()=>isFileLevelUniqueName,isFileProbablyExternalModule:()=>isFileProbablyExternalModule,isFirstDeclarationOfSymbolParameter:()=>isFirstDeclarationOfSymbolParameter,isFixablePromiseHandler:()=>isFixablePromiseHandler,isForInOrOfStatement:()=>isForInOrOfStatement,isForInStatement:()=>isForInStatement,isForInitializer:()=>isForInitializer,isForOfStatement:()=>isForOfStatement,isForStatement:()=>isForStatement,isFullSourceFile:()=>isFullSourceFile,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,isGeneratedIdentifier:()=>isGeneratedIdentifier,isGeneratedPrivateIdentifier:()=>isGeneratedPrivateIdentifier,isGetAccessor:()=>isGetAccessor,isGetAccessorDeclaration:()=>isGetAccessorDeclaration,isGetOrSetAccessorDeclaration:()=>isGetOrSetAccessorDeclaration,isGlobalScopeAugmentation:()=>isGlobalScopeAugmentation,isGlobalSourceFile:()=>isGlobalSourceFile,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,isImportAttribute:()=>isImportAttribute,isImportAttributeName:()=>isImportAttributeName,isImportAttributes:()=>isImportAttributes,isImportCall:()=>isImportCall,isImportClause:()=>isImportClause,isImportDeclaration:()=>isImportDeclaration,isImportEqualsDeclaration:()=>isImportEqualsDeclaration,isImportKeyword:()=>isImportKeyword,isImportMeta:()=>isImportMeta,isImportOrExportSpecifier:()=>isImportOrExportSpecifier,isImportOrExportSpecifierName:()=>isImportOrExportSpecifierName,isImportSpecifier:()=>isImportSpecifier,isImportTypeAssertionContainer:()=>isImportTypeAssertionContainer,isImportTypeNode:()=>isImportTypeNode,isImportable:()=>isImportable,isInComment:()=>isInComment,isInCompoundLikeAssignment:()=>isInCompoundLikeAssignment,isInExpressionContext:()=>isInExpressionContext,isInJSDoc:()=>isInJSDoc,isInJSFile:()=>isInJSFile,isInJSXText:()=>isInJSXText,isInJsonFile:()=>isInJsonFile,isInNonReferenceComment:()=>isInNonReferenceComment,isInReferenceComment:()=>isInReferenceComment,isInRightSideOfInternalImportEqualsDeclaration:()=>isInRightSideOfInternalImportEqualsDeclaration,isInString:()=>isInString,isInTemplateString:()=>isInTemplateString,isInTopLevelContext:()=>isInTopLevelContext,isInTypeQuery:()=>isInTypeQuery,isIncrementalBuildInfo:()=>isIncrementalBuildInfo,isIncrementalBundleEmitBuildInfo:()=>isIncrementalBundleEmitBuildInfo,isIncrementalCompilation:()=>tr,isIndexSignatureDeclaration:()=>isIndexSignatureDeclaration,isIndexedAccessTypeNode:()=>isIndexedAccessTypeNode,isInferTypeNode:()=>isInferTypeNode,isInfinityOrNaNString:()=>isInfinityOrNaNString,isInitializedProperty:()=>isInitializedProperty,isInitializedVariable:()=>isInitializedVariable,isInsideJsxElement:()=>isInsideJsxElement,isInsideJsxElementOrAttribute:()=>isInsideJsxElementOrAttribute,isInsideNodeModules:()=>isInsideNodeModules,isInsideTemplateLiteral:()=>isInsideTemplateLiteral,isInstanceOfExpression:()=>isInstanceOfExpression,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,isJSDocImportTag:()=>isJSDocImportTag,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,isJsxCallLike:()=>isJsxCallLike,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,isLet:()=>isLet,isLineBreak:()=>isLineBreak,isLiteralComputedPropertyDeclarationName:()=>isLiteralComputedPropertyDeclarationName,isLiteralExpression:()=>isLiteralExpression,isLiteralExpressionOfObject:()=>isLiteralExpressionOfObject,isLiteralImportTypeNode:()=>isLiteralImportTypeNode,isLiteralKind:()=>isLiteralKind,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>isLiteralNameOfPropertyDeclarationOrIndexAccess,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,isMissingPackageJsonInfo:()=>isMissingPackageJsonInfo,isModifier:()=>isModifier,isModifierKind:()=>isModifierKind,isModifierLike:()=>isModifierLike,isModuleAugmentationExternal:()=>isModuleAugmentationExternal,isModuleBlock:()=>isModuleBlock,isModuleBody:()=>isModuleBody,isModuleDeclaration:()=>isModuleDeclaration,isModuleExportName:()=>isModuleExportName,isModuleExportsAccessExpression:()=>isModuleExportsAccessExpression,isModuleIdentifier:()=>isModuleIdentifier,isModuleName:()=>isModuleName,isModuleOrEnumDeclaration:()=>isModuleOrEnumDeclaration,isModuleReference:()=>isModuleReference,isModuleSpecifierLike:()=>isModuleSpecifierLike,isModuleWithStringLiteralName:()=>isModuleWithStringLiteralName,isNameOfFunctionDeclaration:()=>isNameOfFunctionDeclaration,isNameOfModuleDeclaration:()=>isNameOfModuleDeclaration,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,isNewScopeNode:()=>isNewScopeNode,isNoSubstitutionTemplateLiteral:()=>isNoSubstitutionTemplateLiteral,isNodeArray:()=>isNodeArray,isNodeArrayMultiLine:()=>isNodeArrayMultiLine,isNodeDescendantOf:()=>isNodeDescendantOf,isNodeKind:()=>isNodeKind,isNodeLikeSystem:()=>isNodeLikeSystem,isNodeModulesDirectory:()=>isNodeModulesDirectory,isNodeWithPossibleHoistedDeclaration:()=>isNodeWithPossibleHoistedDeclaration,isNonContextualKeyword:()=>isNonContextualKeyword,isNonGlobalAmbientModule:()=>isNonGlobalAmbientModule,isNonNullAccess:()=>isNonNullAccess,isNonNullChain:()=>isNonNullChain,isNonNullExpression:()=>isNonNullExpression,isNonStaticMethodOrAccessorWithPrivateName:()=>isNonStaticMethodOrAccessorWithPrivateName,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,isOmittedExpression:()=>isOmittedExpression,isOptionalChain:()=>isOptionalChain,isOptionalChainRoot:()=>isOptionalChainRoot,isOptionalDeclaration:()=>isOptionalDeclaration,isOptionalJSDocPropertyLikeTag:()=>isOptionalJSDocPropertyLikeTag,isOptionalTypeNode:()=>isOptionalTypeNode,isOuterExpression:()=>isOuterExpression,isOutermostOptionalChain:()=>isOutermostOptionalChain,isOverrideModifier:()=>isOverrideModifier,isPackageJsonInfo:()=>isPackageJsonInfo,isPackedArrayLiteral:()=>isPackedArrayLiteral,isParameter:()=>isParameter,isParameterPropertyDeclaration:()=>isParameterPropertyDeclaration,isParameterPropertyModifier:()=>isParameterPropertyModifier,isParenthesizedExpression:()=>isParenthesizedExpression,isParenthesizedTypeNode:()=>isParenthesizedTypeNode,isParseTreeNode:()=>isParseTreeNode,isPartOfParameterDeclaration:()=>isPartOfParameterDeclaration,isPartOfTypeNode:()=>isPartOfTypeNode,isPartOfTypeOnlyImportOrExportDeclaration:()=>isPartOfTypeOnlyImportOrExportDeclaration,isPartOfTypeQuery:()=>isPartOfTypeQuery,isPartiallyEmittedExpression:()=>isPartiallyEmittedExpression,isPatternMatch:()=>isPatternMatch,isPinnedComment:()=>isPinnedComment,isPlainJsFile:()=>isPlainJsFile,isPlusToken:()=>isPlusToken,isPossiblyTypeArgumentPosition:()=>isPossiblyTypeArgumentPosition,isPostfixUnaryExpression:()=>isPostfixUnaryExpression,isPrefixUnaryExpression:()=>isPrefixUnaryExpression,isPrimitiveLiteralValue:()=>isPrimitiveLiteralValue,isPrivateIdentifier:()=>isPrivateIdentifier,isPrivateIdentifierClassElementDeclaration:()=>isPrivateIdentifierClassElementDeclaration,isPrivateIdentifierPropertyAccessExpression:()=>isPrivateIdentifierPropertyAccessExpression,isPrivateIdentifierSymbol:()=>isPrivateIdentifierSymbol,isProgramUptoDate:()=>isProgramUptoDate,isPrologueDirective:()=>isPrologueDirective,isPropertyAccessChain:()=>isPropertyAccessChain,isPropertyAccessEntityNameExpression:()=>isPropertyAccessEntityNameExpression,isPropertyAccessExpression:()=>isPropertyAccessExpression,isPropertyAccessOrQualifiedName:()=>isPropertyAccessOrQualifiedName,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>isPropertyAccessOrQualifiedNameOrImportTypeNode,isPropertyAssignment:()=>isPropertyAssignment,isPropertyDeclaration:()=>isPropertyDeclaration,isPropertyName:()=>isPropertyName,isPropertyNameLiteral:()=>isPropertyNameLiteral,isPropertySignature:()=>isPropertySignature,isPrototypeAccess:()=>isPrototypeAccess,isPrototypePropertyAssignment:()=>isPrototypePropertyAssignment,isPunctuation:()=>isPunctuation,isPushOrUnshiftIdentifier:()=>isPushOrUnshiftIdentifier,isQualifiedName:()=>isQualifiedName,isQuestionDotToken:()=>isQuestionDotToken,isQuestionOrExclamationToken:()=>isQuestionOrExclamationToken,isQuestionOrPlusOrMinusToken:()=>isQuestionOrPlusOrMinusToken,isQuestionToken:()=>isQuestionToken,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,isRightSideOfInstanceofExpression:()=>isRightSideOfInstanceofExpression,isRightSideOfPropertyAccess:()=>isRightSideOfPropertyAccess,isRightSideOfQualifiedName:()=>isRightSideOfQualifiedName,isRightSideOfQualifiedNameOrPropertyAccess:()=>isRightSideOfQualifiedNameOrPropertyAccess,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,isRootedDiskPath:()=>isRootedDiskPath,isSameEntityName:()=>isSameEntityName,isSatisfiesExpression:()=>isSatisfiesExpression,isSemicolonClassElement:()=>isSemicolonClassElement,isSetAccessor:()=>isSetAccessor,isSetAccessorDeclaration:()=>isSetAccessorDeclaration,isShiftOperatorOrHigher:()=>isShiftOperatorOrHigher,isShorthandAmbientModuleSymbol:()=>isShorthandAmbientModuleSymbol,isShorthandPropertyAssignment:()=>isShorthandPropertyAssignment,isSideEffectImport:()=>isSideEffectImport,isSignedNumericLiteral:()=>isSignedNumericLiteral,isSimpleCopiableExpression:()=>isSimpleCopiableExpression,isSimpleInlineableExpression:()=>isSimpleInlineableExpression,isSimpleParameterList:()=>isSimpleParameterList,isSingleOrDoubleQuote:()=>isSingleOrDoubleQuote,isSolutionConfig:()=>isSolutionConfig,isSourceElement:()=>isSourceElement,isSourceFile:()=>isSourceFile,isSourceFileFromLibrary:()=>isSourceFileFromLibrary,isSourceFileJS:()=>isSourceFileJS,isSourceFileNotJson:()=>isSourceFileNotJson,isSourceMapping:()=>isSourceMapping,isSpecialPropertyDeclaration:()=>isSpecialPropertyDeclaration,isSpreadAssignment:()=>isSpreadAssignment,isSpreadElement:()=>isSpreadElement,isStatement:()=>isStatement,isStatementButNotDeclaration:()=>isStatementButNotDeclaration,isStatementOrBlock:()=>isStatementOrBlock,isStatementWithLocals:()=>isStatementWithLocals,isStatic:()=>isStatic,isStaticModifier:()=>isStaticModifier,isString:()=>isString,isStringANonContextualKeyword:()=>isStringANonContextualKeyword,isStringAndEmptyAnonymousObjectIntersection:()=>isStringAndEmptyAnonymousObjectIntersection,isStringDoubleQuoted:()=>isStringDoubleQuoted,isStringLiteral:()=>isStringLiteral,isStringLiteralLike:()=>isStringLiteralLike,isStringLiteralOrJsxExpression:()=>isStringLiteralOrJsxExpression,isStringLiteralOrTemplate:()=>isStringLiteralOrTemplate,isStringOrNumericLiteralLike:()=>isStringOrNumericLiteralLike,isStringOrRegularExpressionOrTemplateLiteral:()=>isStringOrRegularExpressionOrTemplateLiteral,isStringTextContainingNode:()=>isStringTextContainingNode,isSuperCall:()=>isSuperCall,isSuperKeyword:()=>isSuperKeyword,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,isTypeKeywordTokenOrIdentifier:()=>isTypeKeywordTokenOrIdentifier,isTypeLiteralNode:()=>isTypeLiteralNode,isTypeNode:()=>isTypeNode,isTypeNodeKind:()=>isTypeNodeKind,isTypeOfExpression:()=>isTypeOfExpression,isTypeOnlyExportDeclaration:()=>isTypeOnlyExportDeclaration,isTypeOnlyImportDeclaration:()=>isTypeOnlyImportDeclaration,isTypeOnlyImportOrExportDeclaration:()=>isTypeOnlyImportOrExportDeclaration,isTypeOperatorNode:()=>isTypeOperatorNode,isTypeParameterDeclaration:()=>isTypeParameterDeclaration,isTypePredicateNode:()=>isTypePredicateNode,isTypeQueryNode:()=>isTypeQueryNode,isTypeReferenceNode:()=>isTypeReferenceNode,isTypeReferenceType:()=>isTypeReferenceType,isTypeUsableAsPropertyName:()=>isTypeUsableAsPropertyName,isUMDExportSymbol:()=>isUMDExportSymbol,isUnaryExpression:()=>isUnaryExpression,isUnaryExpressionWithWrite:()=>isUnaryExpressionWithWrite,isUnicodeIdentifierStart:()=>isUnicodeIdentifierStart,isUnionTypeNode:()=>isUnionTypeNode,isUrl:()=>isUrl,isValidBigIntString:()=>isValidBigIntString,isValidESSymbolDeclaration:()=>isValidESSymbolDeclaration,isValidTypeOnlyAliasUseSite:()=>isValidTypeOnlyAliasUseSite,isValueSignatureDeclaration:()=>isValueSignatureDeclaration,isVarAwaitUsing:()=>isVarAwaitUsing,isVarConst:()=>isVarConst,isVarConstLike:()=>isVarConstLike,isVarUsing:()=>isVarUsing,isVariableDeclaration:()=>isVariableDeclaration,isVariableDeclarationInVariableStatement:()=>isVariableDeclarationInVariableStatement,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>isVariableDeclarationInitializedToBareOrAccessedRequire,isVariableDeclarationInitializedToRequire:()=>isVariableDeclarationInitializedToRequire,isVariableDeclarationList:()=>isVariableDeclarationList,isVariableLike:()=>isVariableLike,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:()=>Vi,libs:()=>zi,lineBreakPart:()=>lineBreakPart,loadModuleFromGlobalCache:()=>loadModuleFromGlobalCache,loadWithModeAwareCache:()=>loadWithModeAwareCache,makeIdentifierFromModuleName:()=>makeIdentifierFromModuleName,makeImport:()=>makeImport,makeStringLiteral:()=>makeStringLiteral,mangleScopedPackageName:()=>mangleScopedPackageName,map:()=>map,mapAllOrFail:()=>mapAllOrFail,mapDefined:()=>mapDefined,mapDefinedIterator:()=>mapDefinedIterator,mapEntries:()=>mapEntries,mapIterator:()=>mapIterator,mapOneOrMany:()=>mapOneOrMany,mapToDisplayParts:()=>mapToDisplayParts,matchFiles:()=>matchFiles,matchPatternOrExact:()=>matchPatternOrExact,matchedText:()=>matchedText,matchesExclude:()=>matchesExclude,matchesExcludeWorker:()=>matchesExcludeWorker,maxBy:()=>maxBy,maybeBind:()=>maybeBind,maybeSetLocalizedDiagnosticMessages:()=>maybeSetLocalizedDiagnosticMessages,memoize:()=>memoize,memoizeOne:()=>memoizeOne,min:()=>min,minAndMax:()=>minAndMax,missingFileModifiedTime:()=>St,modifierToFlag:()=>modifierToFlag,modifiersToFlags:()=>modifiersToFlags,moduleExportNameIsDefault:()=>moduleExportNameIsDefault,moduleExportNameTextEscaped:()=>moduleExportNameTextEscaped,moduleExportNameTextUnescaped:()=>moduleExportNameTextUnescaped,moduleOptionDeclaration:()=>Gi,moduleResolutionIsEqualTo:()=>moduleResolutionIsEqualTo,moduleResolutionNameAndModeGetter:()=>Ja,moduleResolutionOptionDeclarations:()=>eo,moduleResolutionSupportsPackageJsonExportsAndImports:()=>moduleResolutionSupportsPackageJsonExportsAndImports,moduleResolutionUsesNodeModules:()=>moduleResolutionUsesNodeModules,moduleSpecifierToValidIdentifier:()=>moduleSpecifierToValidIdentifier,moduleSpecifiers:()=>Wo,moduleSupportsImportAttributes:()=>moduleSupportsImportAttributes,moduleSymbolToValidIdentifier:()=>moduleSymbolToValidIdentifier,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:()=>va,noTruncationMaximumTruncationLength:()=>ln,nodeCanBeDecorated:()=>nodeCanBeDecorated,nodeCoreModules:()=>Ir,nodeHasName:()=>nodeHasName,nodeIsDecorated:()=>nodeIsDecorated,nodeIsMissing:()=>nodeIsMissing,nodeIsPresent:()=>nodeIsPresent,nodeIsSynthesized:()=>nodeIsSynthesized,nodeModuleNameResolver:()=>nodeModuleNameResolver,nodeModulesPathPart:()=>Mo,nodeNextJsonConfigResolver:()=>nodeNextJsonConfigResolver,nodeOrChildIsDecorated:()=>nodeOrChildIsDecorated,nodeOverlapsWithStartEnd:()=>nodeOverlapsWithStartEnd,nodePosToString:()=>nodePosToString,nodeSeenTracker:()=>nodeSeenTracker,nodeStartsNewLexicalEnvironment:()=>nodeStartsNewLexicalEnvironment,noop:()=>noop,noopFileWatcher:()=>Xa,normalizePath:()=>normalizePath,normalizeSlashes:()=>normalizeSlashes,normalizeSpans:()=>normalizeSpans,not:()=>not,notImplemented:()=>notImplemented,notImplementedResolver:()=>Ea,nullNodeConverters:()=>wr,nullParenthesizerRules:()=>Ar,nullTransformationContext:()=>ba,objectAllocator:()=>Bn,operatorPart:()=>operatorPart,optionDeclarations:()=>Qi,optionMapToObject:()=>optionMapToObject,optionsAffectingProgramStructure:()=>no,optionsForBuild:()=>lo,optionsForWatch:()=>qi,optionsHaveChanges:()=>optionsHaveChanges,or:()=>or,orderedRemoveItem:()=>orderedRemoveItem,orderedRemoveItemAt:()=>orderedRemoveItemAt,packageIdToPackageName:()=>packageIdToPackageName,packageIdToString:()=>packageIdToString,parameterIsThisKeyword:()=>parameterIsThisKeyword,parameterNamePart:()=>parameterNamePart,parseBaseNodeFactory:()=>Pi,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:()=>Di,parseNodeModuleFromPath:()=>parseNodeModuleFromPath,parsePackageName:()=>parsePackageName,parsePseudoBigInt:()=>parsePseudoBigInt,parseValidBigInt:()=>parseValidBigInt,pasteEdits:()=>v_,patchWriteFileEnsuringDirectory:()=>patchWriteFileEnsuringDirectory,pathContainsNodeModules:()=>pathContainsNodeModules,pathIsAbsolute:()=>pathIsAbsolute,pathIsBareSpecifier:()=>pathIsBareSpecifier,pathIsRelative:()=>pathIsRelative,patternText:()=>patternText,performIncrementalCompilation:()=>performIncrementalCompilation,performance:()=>j,positionBelongsToNode:()=>positionBelongsToNode,positionIsASICandidate:()=>positionIsASICandidate,positionIsSynthesized:()=>positionIsSynthesized,positionsAreOnSameLine:()=>positionsAreOnSameLine,preProcessFile:()=>preProcessFile,probablyUsesSemicolons:()=>probablyUsesSemicolons,processCommentPragmas:()=>processCommentPragmas,processPragmasIntoFields:()=>processPragmasIntoFields,processTaggedTemplateExpression:()=>processTaggedTemplateExpression,programContainsEsModules:()=>programContainsEsModules,programContainsModules:()=>programContainsModules,projectReferenceIsEqualTo:()=>projectReferenceIsEqualTo,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,readJson:()=>readJson,readJsonConfigFile:()=>readJsonConfigFile,readJsonOrUndefined:()=>readJsonOrUndefined,reduceEachLeadingCommentRange:()=>reduceEachLeadingCommentRange,reduceEachTrailingCommentRange:()=>reduceEachTrailingCommentRange,reduceLeft:()=>reduceLeft,reduceLeftIterator:()=>reduceLeftIterator,reducePathComponents:()=>reducePathComponents,refactor:()=>bc,regExpEscape:()=>regExpEscape,regularExpressionFlagToCharacterCode:()=>regularExpressionFlagToCharacterCode,relativeComplement:()=>relativeComplement,removeAllComments:()=>removeAllComments,removeEmitHelper:()=>removeEmitHelper,removeExtension:()=>removeExtension,removeFileExtension:()=>removeFileExtension,removeIgnoredPath:()=>removeIgnoredPath,removeMinAndVersionNumbers:()=>removeMinAndVersionNumbers,removePrefix:()=>removePrefix,removeSuffix:()=>removeSuffix,removeTrailingDirectorySeparator:()=>removeTrailingDirectorySeparator,repeatString:()=>repeatString,replaceElement:()=>replaceElement,replaceFirstStar:()=>replaceFirstStar,resolutionExtensionIsTSOrJson:()=>resolutionExtensionIsTSOrJson,resolveConfigFileProjectName:()=>resolveConfigFileProjectName,resolveJSModule:()=>resolveJSModule,resolveLibrary:()=>resolveLibrary,resolveModuleName:()=>resolveModuleName,resolveModuleNameFromCache:()=>resolveModuleNameFromCache,resolvePackageNameToPackageJson:()=>resolvePackageNameToPackageJson,resolvePath:()=>resolvePath,resolveProjectReferencePath:()=>resolveProjectReferencePath,resolveTripleslashReference:()=>resolveTripleslashReference,resolveTypeReferenceDirective:()=>resolveTypeReferenceDirective,resolvingEmptyArray:()=>an,returnFalse:()=>returnFalse,returnNoopFileWatcher:()=>returnNoopFileWatcher,returnTrue:()=>returnTrue,returnUndefined:()=>returnUndefined,returnsPromise:()=>returnsPromise,rewriteModuleSpecifier:()=>rewriteModuleSpecifier,sameFlatMap:()=>sameFlatMap,sameMap:()=>sameMap,sameMapping:()=>sameMapping,scanTokenAtPosition:()=>scanTokenAtPosition,scanner:()=>Vs,semanticDiagnosticsOptionDeclarations:()=>Xi,serializeCompilerOptions:()=>serializeCompilerOptions,server:()=>k_,servicesVersion:()=>Ol,setCommentRange:()=>setCommentRange,setConfigFileInOptions:()=>setConfigFileInOptions,setConstantValue:()=>setConstantValue,setEmitFlags:()=>setEmitFlags,setGetSourceFileAsHashVersioned:()=>setGetSourceFileAsHashVersioned,setIdentifierAutoGenerate:()=>setIdentifierAutoGenerate,setIdentifierGeneratedImportReference:()=>setIdentifierGeneratedImportReference,setIdentifierTypeArguments:()=>setIdentifierTypeArguments,setInternalEmitFlags:()=>setInternalEmitFlags,setLocalizedDiagnosticMessages:()=>setLocalizedDiagnosticMessages,setNodeChildren:()=>setNodeChildren,setNodeFlags:()=>setNodeFlags,setObjectAllocator:()=>setObjectAllocator,setOriginalNode:()=>setOriginalNode,setParent:()=>setParent,setParentRecursive:()=>setParentRecursive,setPrivateIdentifier:()=>setPrivateIdentifier,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:()=>er,shouldRewriteModuleSpecifier:()=>shouldRewriteModuleSpecifier,shouldUseUriStyleNodeCoreModules:()=>shouldUseUriStyleNodeCoreModules,showModuleSpecifier:()=>showModuleSpecifier,signatureHasRestParameter:()=>signatureHasRestParameter,signatureToDisplayParts:()=>signatureToDisplayParts,single:()=>single,singleElementArray:()=>singleElementArray,singleIterator:()=>singleIterator,singleOrMany:()=>singleOrMany,singleOrUndefined:()=>singleOrUndefined,skipAlias:()=>skipAlias,skipConstraint:()=>skipConstraint,skipOuterExpressions:()=>skipOuterExpressions,skipParentheses:()=>skipParentheses,skipPartiallyEmittedExpressions:()=>skipPartiallyEmittedExpressions,skipTrivia:()=>skipTrivia,skipTypeChecking:()=>skipTypeChecking,skipTypeCheckingIgnoringNoCheck:()=>skipTypeCheckingIgnoringNoCheck,skipTypeParentheses:()=>skipTypeParentheses,skipWhile:()=>skipWhile,sliceAfter:()=>sliceAfter,some:()=>some,sortAndDeduplicate:()=>sortAndDeduplicate,sortAndDeduplicateDiagnostics:()=>sortAndDeduplicateDiagnostics,sourceFileAffectingCompilerOptions:()=>to,sourceFileMayBeEmitted:()=>sourceFileMayBeEmitted,sourceMapCommentRegExp:()=>da,sourceMapCommentRegExpDontCareLineStart:()=>la,spacePart:()=>spacePart,spanMap:()=>spanMap,startEndContainsRange:()=>startEndContainsRange,startEndOverlapsWithStartEnd:()=>startEndOverlapsWithStartEnd,startOnNewLine:()=>startOnNewLine,startTracing:()=>G,startsWith:()=>startsWith,startsWithDirectory:()=>startsWithDirectory,startsWithUnderscore:()=>startsWithUnderscore,startsWithUseStrict:()=>startsWithUseStrict,stringContainsAt:()=>stringContainsAt,stringToToken:()=>stringToToken,stripQuotes:()=>stripQuotes,supportedDeclarationExtensions:()=>Sr,supportedJSExtensionsFlat:()=>yr,supportedLocaleDirectories:()=>rn,supportedTSExtensionsFlat:()=>_r,supportedTSImplementationExtensions:()=>xr,suppressLeadingAndTrailingTrivia:()=>suppressLeadingAndTrailingTrivia,suppressLeadingTrivia:()=>suppressLeadingTrivia,suppressTrailingTrivia:()=>suppressTrailingTrivia,symbolEscapedNameNoDefault:()=>symbolEscapedNameNoDefault,symbolName:()=>symbolName,symbolNameNoDefault:()=>symbolNameNoDefault,symbolToDisplayParts:()=>symbolToDisplayParts,sys:()=>kt,sysLog:()=>sysLog,tagNamesAreEquivalent:()=>tagNamesAreEquivalent,takeWhile:()=>takeWhile,targetOptionDeclaration:()=>Ki,targetToLibMap:()=>tn,testFormatSettings:()=>Os,textChangeRangeIsUnchanged:()=>textChangeRangeIsUnchanged,textChangeRangeNewSpan:()=>textChangeRangeNewSpan,textChanges:()=>$m,textOrKeywordPart:()=>textOrKeywordPart,textPart:()=>textPart,textRangeContainsPositionInclusive:()=>textRangeContainsPositionInclusive,textRangeContainsTextSpan:()=>textRangeContainsTextSpan,textRangeIntersectsWithTextSpan:()=>textRangeIntersectsWithTextSpan,textSpanContainsPosition:()=>textSpanContainsPosition,textSpanContainsTextRange:()=>textSpanContainsTextRange,textSpanContainsTextSpan:()=>textSpanContainsTextSpan,textSpanEnd:()=>textSpanEnd,textSpanIntersection:()=>textSpanIntersection,textSpanIntersectsWith:()=>textSpanIntersectsWith,textSpanIntersectsWithPosition:()=>textSpanIntersectsWithPosition,textSpanIntersectsWithTextSpan:()=>textSpanIntersectsWithTextSpan,textSpanIsEmpty:()=>textSpanIsEmpty,textSpanOverlap:()=>textSpanOverlap,textSpanOverlapsWith:()=>textSpanOverlapsWith,textSpansEqual:()=>textSpansEqual,textToKeywordObj:()=>wt,timestamp:()=>B,toArray:()=>toArray,toBuilderFileEmit:()=>toBuilderFileEmit,toBuilderStateFileInfoForMultiEmit:()=>toBuilderStateFileInfoForMultiEmit,toEditorSettings:()=>toEditorSettings,toFileNameLowerCase:()=>toFileNameLowerCase,toPath:()=>toPath,toProgramEmitPending:()=>toProgramEmitPending,toSorted:()=>toSorted,tokenIsIdentifierOrKeyword:()=>tokenIsIdentifierOrKeyword,tokenIsIdentifierOrKeywordOrGreaterThan:()=>tokenIsIdentifierOrKeywordOrGreaterThan,tokenToString:()=>tokenToString,trace:()=>trace,tracing:()=>J,tracingEnabled:()=>W,transferSourceFileChildren:()=>transferSourceFileChildren,transform:()=>transform,transformClassFields:()=>transformClassFields,transformDeclarations:()=>transformDeclarations,transformECMAScriptModule:()=>transformECMAScriptModule,transformES2015:()=>transformES2015,transformES2016:()=>transformES2016,transformES2017:()=>transformES2017,transformES2018:()=>transformES2018,transformES2019:()=>transformES2019,transformES2020:()=>transformES2020,transformES2021:()=>transformES2021,transformESDecorators:()=>transformESDecorators,transformESNext:()=>transformESNext,transformGenerators:()=>transformGenerators,transformImpliedNodeFormatDependentModule:()=>transformImpliedNodeFormatDependentModule,transformJsx:()=>transformJsx,transformLegacyDecorators:()=>transformLegacyDecorators,transformModule:()=>transformModule,transformNamedEvaluation:()=>transformNamedEvaluation,transformNodes:()=>transformNodes,transformSystemModule:()=>transformSystemModule,transformTypeScript:()=>transformTypeScript,transpile:()=>transpile,transpileDeclaration:()=>transpileDeclaration,transpileModule:()=>transpileModule,transpileOptionValueCompilerOptions:()=>ro,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,tryParseJson:()=>tryParseJson,tryParsePattern:()=>tryParsePattern,tryParsePatterns:()=>tryParsePatterns,tryParseRawSourceMap:()=>tryParseRawSourceMap,tryReadDirectory:()=>tryReadDirectory,tryReadFile:()=>tryReadFile,tryRemoveDirectoryPrefix:()=>tryRemoveDirectoryPrefix,tryRemoveExtension:()=>tryRemoveExtension,tryRemovePrefix:()=>tryRemovePrefix,tryRemoveSuffix:()=>tryRemoveSuffix,tscBuildOption:()=>co,typeAcquisitionDeclarations:()=>uo,typeAliasNamePart:()=>typeAliasNamePart,typeDirectiveIsEqualTo:()=>typeDirectiveIsEqualTo,typeKeywords:()=>Ks,typeParameterNamePart:()=>typeParameterNamePart,typeToDisplayParts:()=>typeToDisplayParts,unchangedPollThresholds:()=>bt,unchangedTextChangeRange:()=>nn,unescapeLeadingUnderscores:()=>unescapeLeadingUnderscores,unmangleScopedPackageName:()=>unmangleScopedPackageName,unorderedRemoveItem:()=>unorderedRemoveItem,unprefixedNodeCoreModules:()=>Pr,unreachableCodeIsError:()=>unreachableCodeIsError,unsetNodeChildren:()=>unsetNodeChildren,unusedLabelIsError:()=>unusedLabelIsError,unwrapInnermostStatementOfLabel:()=>unwrapInnermostStatementOfLabel,unwrapParenthesizedExpression:()=>unwrapParenthesizedExpression,updateErrorForNoInputFiles:()=>updateErrorForNoInputFiles,updateLanguageServiceSourceFile:()=>updateLanguageServiceSourceFile,updateMissingFilePathsWatch:()=>updateMissingFilePathsWatch,updateResolutionField:()=>updateResolutionField,updateSharedExtendedConfigFileWatcher:()=>updateSharedExtendedConfigFileWatcher,updateSourceFile:()=>updateSourceFile,updateWatchingWildcardDirectories:()=>updateWatchingWildcardDirectories,usingSingleLineStringWriter:()=>usingSingleLineStringWriter,utf16EncodeAsString:()=>utf16EncodeAsString,validateLocaleAndSetLanguage:()=>validateLocaleAndSetLanguage,version:()=>s,versionMajorMinor:()=>a,visitArray:()=>visitArray,visitCommaListElements:()=>visitCommaListElements,visitEachChild:()=>visitEachChild,visitFunctionBody:()=>visitFunctionBody,visitIterationBody:()=>visitIterationBody,visitLexicalEnvironment:()=>visitLexicalEnvironment,visitNode:()=>visitNode,visitNodes:()=>visitNodes2,visitParameterList:()=>visitParameterList,walkUpBindingElementsAndPatterns:()=>walkUpBindingElementsAndPatterns,walkUpOuterExpressions:()=>walkUpOuterExpressions,walkUpParenthesizedExpressions:()=>walkUpParenthesizedExpressions,walkUpParenthesizedTypes:()=>walkUpParenthesizedTypes,walkUpParenthesizedTypesAndGetParentAndChild:()=>walkUpParenthesizedTypesAndGetParentAndChild,whitespaceOrMapCommentRegExp:()=>pa,writeCommentRange:()=>writeCommentRange,writeFile:()=>writeFile,writeFileEnsuringDirectories:()=>writeFileEnsuringDirectories,zipWith:()=>zipWith});var E_,N_=!0;function formatDeprecationMessage(e,t,n,r,i){let o=t?"DeprecationError: ":"DeprecationWarning: ";return o+=`'${e}' `,o+=r?`has been deprecated since v${r}`:"is deprecated",o+=t?" and can no longer be used.":n?` and will no longer be usable after v${n}.`:".",o+=i?` ${formatStringFromArgs(i,[e])}`:"",o}function createDeprecation(e,t={}){const n="string"==typeof t.typeScriptVersion?new k(t.typeScriptVersion):t.typeScriptVersion??function getTypeScriptVersion(){return E_??(E_=new k(s))}(),r="string"==typeof t.errorAfter?new k(t.errorAfter):t.errorAfter,i="string"==typeof t.warnAfter?new k(t.warnAfter):t.warnAfter,o="string"==typeof t.since?new k(t.since):t.since??i,a=t.error||r&&n.compareTo(r)>=0,c=!i||n.compareTo(i)>=0;return a?function createErrorDeprecation(e,t,n,r){const i=formatDeprecationMessage(e,!0,t,n,r);return()=>{throw new TypeError(i)}}(e,r,o,t.message):c?function createWarningDeprecation(e,t,n,r){let i=!1;return()=>{N_&&!i&&(h.log.warn(formatDeprecationMessage(e,!1,t,n,r)),i=!0)}}(e,r,o,t.message):noop}function deprecate(e,t){return function wrapFunction(e,t){return function(){return e(),t.apply(this,arguments)}}(createDeprecation((null==t?void 0:t.name)??h.getFunctionName(e),t),e)}function createOverload(e,t,n,r){if(Object.defineProperty(call,"name",{...Object.getOwnPropertyDescriptor(call,"name"),value:e}),r)for(const n of Object.keys(r)){const i=+n;!isNaN(i)&&hasProperty(t,`${i}`)&&(t[i]=deprecate(t[i],{...r[i],name:e}))}const i=function createBinder2(e,t){return n=>{for(let r=0;hasProperty(e,`${r}`)&&hasProperty(t,`${r}`);r++){if((0,t[r])(n))return r}}}(t,n);return call;function call(...e){const n=i(e),r=void 0!==n?t[n]:void 0;if("function"==typeof r)return r(...e);throw new TypeError("Invalid arguments")}}function buildOverload(e){return{overload:t=>({bind:n=>({finish:()=>createOverload(e,t,n),deprecate:r=>({finish:()=>createOverload(e,t,n,r)})})})}}var k_={};i(k_,{ActionInvalidate:()=>ps,ActionPackageInstalled:()=>us,ActionSet:()=>ds,ActionWatchTypingLocations:()=>ys,Arguments:()=>cs,AutoImportProviderProject:()=>nf,AuxiliaryProject:()=>ef,CharRangeSection:()=>Rf,CloseFileWatcherEvent:()=>hf,CommandNames:()=>Af,ConfigFileDiagEvent:()=>uf,ConfiguredProject:()=>rf,ConfiguredProjectLoadKind:()=>Ff,CreateDirectoryWatcherEvent:()=>yf,CreateFileWatcherEvent:()=>gf,Errors:()=>I_,EventBeginInstallTypes:()=>_s,EventEndInstallTypes:()=>fs,EventInitializationFailed:()=>gs,EventTypesRegistry:()=>ms,ExternalProject:()=>of,GcTimer:()=>R_,InferredProject:()=>Z_,LargeFileReferencedEvent:()=>pf,LineIndex:()=>zf,LineLeaf:()=>qf,LineNode:()=>Vf,LogLevel:()=>O_,Msg:()=>L_,OpenFileInfoTelemetryEvent:()=>ff,Project:()=>Y_,ProjectInfoTelemetryEvent:()=>_f,ProjectKind:()=>X_,ProjectLanguageServiceStateEvent:()=>mf,ProjectLoadingFinishEvent:()=>df,ProjectLoadingStartEvent:()=>lf,ProjectService:()=>Df,ProjectsUpdatedInBackgroundEvent:()=>cf,ScriptInfo:()=>Q_,ScriptVersionCache:()=>Wf,Session:()=>Mf,TextStorage:()=>$_,ThrottledOperations:()=>M_,TypingsInstallerAdapter:()=>Kf,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:()=>w_,findArgument:()=>findArgument,formatDiagnosticToProtocol:()=>formatDiagnosticToProtocol,formatMessage:()=>formatMessage2,getBaseConfigFileName:()=>getBaseConfigFileName,getDetailWatchInfo:()=>getDetailWatchInfo,getLocationInNewDocument:()=>getLocationInNewDocument,hasArgument:()=>hasArgument,hasNoTypeScriptSource:()=>hasNoTypeScriptSource,indent:()=>indent2,isBackgroundProject:()=>isBackgroundProject,isConfigFile:()=>isConfigFile,isConfiguredProject:()=>isConfiguredProject,isDynamicFileName:()=>isDynamicFileName,isExternalProject:()=>isExternalProject,isInferredProject:()=>isInferredProject,isInferredProjectName:()=>isInferredProjectName,isProjectDeferredClose:()=>isProjectDeferredClose,makeAutoImportProviderProjectName:()=>makeAutoImportProviderProjectName,makeAuxiliaryProjectName:()=>makeAuxiliaryProjectName,makeInferredProjectName:()=>makeInferredProjectName,maxFileSize:()=>sf,maxProgramSizeForNonTsFiles:()=>af,normalizedPathToPath:()=>normalizedPathToPath,nowString:()=>nowString,nullCancellationToken:()=>If,nullTypingsInstaller:()=>Nf,protocol:()=>B_,scriptInfoIsContainedByBackgroundProject:()=>scriptInfoIsContainedByBackgroundProject,scriptInfoIsContainedByDeferredClosedProject:()=>scriptInfoIsContainedByDeferredClosedProject,stringifyIndented:()=>stringifyIndented,toEvent:()=>toEvent,toNormalizedPath:()=>toNormalizedPath,tryConvertScriptKindName:()=>tryConvertScriptKindName,typingsInstaller:()=>F_,updateProjectIfDirty:()=>updateProjectIfDirty});var F_={};i(F_,{TypingsInstaller:()=>D_,getNpmCommandForInstallation:()=>getNpmCommandForInstallation,installNpmPackages:()=>installNpmPackages,typingsName:()=>typingsName});var P_={isEnabled:()=>!1,writeLine:noop};function typingToFileName(e,t,n,r){try{const r=resolveModuleName(t,combinePaths(e,"index.d.ts"),{moduleResolution:2},n);return r.resolvedModule&&r.resolvedModule.resolvedFileName}catch(n){return void(r.isEnabled()&&r.writeLine(`Failed to resolve ${t} in folder '${e}': ${n.message}`))}}function installNpmPackages(e,t,n,r){let i=!1;for(let o=n.length;o>0;){const a=getNpmCommandForInstallation(e,t,n,o);o=a.remaining,i=r(a.command)||i}return i}function getNpmCommandForInstallation(e,t,n,r){const i=n.length-r;let o,a=r;for(;o=`${e} install --ignore-scripts ${(a===n.length?n:n.slice(i,i+a)).join(" ")} --save-dev --user-agent="typesInstaller/${t}"`,!(o.length<8e3);)a-=Math.floor(a/2);return{command:o,remaining:r-a}}var D_=class{constructor(e,t,n,r,i,o=P_){this.installTypingHost=e,this.globalCachePath=t,this.safeListPath=n,this.typesMapLocation=r,this.throttleLimit=i,this.log=o,this.packageNameToTypingLocation=new Map,this.missingTypingsSet=new Set,this.knownCachesSet=new Set,this.projectWatchers=new Map,this.pendingRunRequests=[],this.installRunCount=1,this.inFlightRequestCount=0,this.latestDistTag="latest";this.log.isEnabled()&&this.log.writeLine(`Global cache location '${t}', safe file path '${n}', types map path ${r}`),this.processCacheLocation(this.globalCachePath)}handleRequest(e){switch(e.kind){case"discover":this.install(e);break;case"closeProject":this.closeProject(e);break;case"typesRegistry":{const e={};this.typesRegistry.forEach((t,n)=>{e[n]=t});const t={kind:ms,typesRegistry:e};this.sendResponse(t);break}case"installPackage":this.installPackage(e);break;default:h.assertNever(e)}}closeProject(e){this.closeWatchers(e.projectName)}closeWatchers(e){this.log.isEnabled()&&this.log.writeLine(`Closing file watchers for project '${e}'`);this.projectWatchers.get(e)?(this.projectWatchers.delete(e),this.sendResponse({kind:ys,projectName:e,files:[]}),this.log.isEnabled()&&this.log.writeLine(`Closing file watchers for project '${e}' - done.`)):this.log.isEnabled()&&this.log.writeLine(`No watchers are registered for project '${e}'`)}install(e){this.log.isEnabled()&&this.log.writeLine(`Got install request${stringifyIndented(e)}`),e.cachePath&&(this.log.isEnabled()&&this.log.writeLine(`Request specifies cache path '${e.cachePath}', loading cached information...`),this.processCacheLocation(e.cachePath)),void 0===this.safeList&&this.initializeSafeList();const t=ss.discoverTypings(this.installTypingHost,this.log.isEnabled()?e=>this.log.writeLine(e):void 0,e.fileNames,e.projectRootPath,this.safeList,this.packageNameToTypingLocation,e.typeAcquisition,e.unresolvedImports,this.typesRegistry,e.compilerOptions);this.watchFiles(e.projectName,t.filesToWatch),t.newTypingNames.length?this.installTypings(e,e.cachePath||this.globalCachePath,t.cachedTypingPaths,t.newTypingNames):(this.sendResponse(this.createSetTypings(e,t.cachedTypingPaths)),this.log.isEnabled()&&this.log.writeLine("No new typings were requested as a result of typings discovery"))}installPackage(e){const{fileName:t,packageName:n,projectName:r,projectRootPath:i,id:o}=e,a=forEachAncestorDirectory(getDirectoryPath(t),e=>{if(this.installTypingHost.fileExists(combinePaths(e,"package.json")))return e})||i;if(a)this.installWorker(-1,[n],a,e=>{const t={kind:us,projectName:r,id:o,success:e,message:e?`Package ${n} installed.`:`There was an error installing ${n}.`};this.sendResponse(t)});else{const e={kind:us,projectName:r,id:o,success:!1,message:"Could not determine a project root path."};this.sendResponse(e)}}initializeSafeList(){if(this.typesMapLocation){const e=ss.loadTypesMap(this.installTypingHost,this.typesMapLocation);if(e)return this.log.writeLine(`Loaded safelist from types map file '${this.typesMapLocation}'`),void(this.safeList=e);this.log.writeLine(`Failed to load safelist from types map file '${this.typesMapLocation}'`)}this.safeList=ss.loadSafeList(this.installTypingHost,this.safeListPath)}processCacheLocation(e){if(this.log.isEnabled()&&this.log.writeLine(`Processing cache location '${e}'`),this.knownCachesSet.has(e))return void(this.log.isEnabled()&&this.log.writeLine("Cache location was already processed..."));const t=combinePaths(e,"package.json"),n=combinePaths(e,"package-lock.json");if(this.log.isEnabled()&&this.log.writeLine(`Trying to find '${t}'...`),this.installTypingHost.fileExists(t)&&this.installTypingHost.fileExists(n)){const r=JSON.parse(this.installTypingHost.readFile(t)),i=JSON.parse(this.installTypingHost.readFile(n));if(this.log.isEnabled()&&(this.log.writeLine(`Loaded content of '${t}':${stringifyIndented(r)}`),this.log.writeLine(`Loaded content of '${n}':${stringifyIndented(i)}`)),r.devDependencies&&(i.packages||i.dependencies))for(const t in r.devDependencies){if(i.packages&&!hasProperty(i.packages,`node_modules/${t}`)||i.dependencies&&!hasProperty(i.dependencies,t))continue;const n=getBaseFileName(t);if(!n)continue;const r=typingToFileName(e,n,this.installTypingHost,this.log);if(!r){this.missingTypingsSet.add(n);continue}const o=this.packageNameToTypingLocation.get(n);if(o){if(o.typingLocation===r)continue;this.log.isEnabled()&&this.log.writeLine(`New typing for package ${n} from '${r}' conflicts with existing typing file '${o}'`)}this.log.isEnabled()&&this.log.writeLine(`Adding entry into typings cache: '${n}' => '${r}'`);const a=i.packages&&getProperty(i.packages,`node_modules/${t}`)||getProperty(i.dependencies,t),s=a&&a.version;if(!s)continue;const c={typingLocation:r,version:new k(s)};this.packageNameToTypingLocation.set(n,c)}}this.log.isEnabled()&&this.log.writeLine(`Finished processing cache location '${e}'`),this.knownCachesSet.add(e)}filterTypings(e){return mapDefined(e,e=>{const t=mangleScopedPackageName(e);if(this.missingTypingsSet.has(t))return void(this.log.isEnabled()&&this.log.writeLine(`'${e}':: '${t}' is in missingTypingsSet - skipping...`));const n=ss.validatePackageName(e);if(n!==ss.NameValidationResult.Ok)return this.missingTypingsSet.add(t),void(this.log.isEnabled()&&this.log.writeLine(ss.renderPackageNameValidationFailure(n,e)));if(this.typesRegistry.has(t)){if(!this.packageNameToTypingLocation.get(t)||!ss.isTypingUpToDate(this.packageNameToTypingLocation.get(t),this.typesRegistry.get(t)))return t;this.log.isEnabled()&&this.log.writeLine(`'${e}':: '${t}' already has an up-to-date typing - skipping...`)}else this.log.isEnabled()&&this.log.writeLine(`'${e}':: Entry for package '${t}' does not exist in local types registry - skipping...`)})}ensurePackageDirectoryExists(e){const t=combinePaths(e,"package.json");this.log.isEnabled()&&this.log.writeLine(`Npm config file: ${t}`),this.installTypingHost.fileExists(t)||(this.log.isEnabled()&&this.log.writeLine(`Npm config file: '${t}' is missing, creating new one...`),this.ensureDirectoryExists(e,this.installTypingHost),this.installTypingHost.writeFile(t,'{ "private": true }'))}installTypings(e,t,n,r){this.log.isEnabled()&&this.log.writeLine(`Installing typings ${JSON.stringify(r)}`);const i=this.filterTypings(r);if(0===i.length)return this.log.isEnabled()&&this.log.writeLine("All typings are known to be missing or invalid - no need to install more typings"),void this.sendResponse(this.createSetTypings(e,n));this.ensurePackageDirectoryExists(t);const o=this.installRunCount;this.installRunCount++,this.sendResponse({kind:_s,eventId:o,typingsInstallerVersion:s,projectName:e.projectName});const c=i.map(typingsName);this.installTypingsAsync(o,c,t,r=>{try{if(!r){this.log.isEnabled()&&this.log.writeLine(`install request failed, marking packages as missing to prevent repeated requests: ${JSON.stringify(i)}`);for(const e of i)this.missingTypingsSet.add(e);return}this.log.isEnabled()&&this.log.writeLine(`Installed typings ${JSON.stringify(c)}`);const o=[];for(const e of i){const n=typingToFileName(t,e,this.installTypingHost,this.log);if(!n){this.missingTypingsSet.add(e);continue}const r=this.typesRegistry.get(e),i={typingLocation:n,version:new k(r[`ts${a}`]||r[this.latestDistTag])};this.packageNameToTypingLocation.set(e,i),o.push(n)}this.log.isEnabled()&&this.log.writeLine(`Installed typing files ${JSON.stringify(o)}`),this.sendResponse(this.createSetTypings(e,n.concat(o)))}finally{const t={kind:fs,eventId:o,projectName:e.projectName,packagesToInstall:c,installSuccess:r,typingsInstallerVersion:s};this.sendResponse(t)}})}ensureDirectoryExists(e,t){const n=getDirectoryPath(e);t.directoryExists(n)||this.ensureDirectoryExists(n,t),t.directoryExists(e)||t.createDirectory(e)}watchFiles(e,t){if(!t.length)return void this.closeWatchers(e);const n=this.projectWatchers.get(e),r=new Set(t);!n||forEachKey(r,e=>!n.has(e))||forEachKey(n,e=>!r.has(e))?(this.projectWatchers.set(e,r),this.sendResponse({kind:ys,projectName:e,files:t})):this.sendResponse({kind:ys,projectName:e,files:void 0})}createSetTypings(e,t){return{projectName:e.projectName,typeAcquisition:e.typeAcquisition,compilerOptions:e.compilerOptions,typings:t,unresolvedImports:e.unresolvedImports,kind:ds}}installTypingsAsync(e,t,n,r){this.pendingRunRequests.unshift({requestId:e,packageNames:t,cwd:n,onRequestCompleted:r}),this.executeWithThrottling()}executeWithThrottling(){for(;this.inFlightRequestCount{this.inFlightRequestCount--,e.onRequestCompleted(t),this.executeWithThrottling()})}}};function typingsName(e){return`@types/${e}@ts${a}`}var I_,A_,O_=(e=>(e[e.terse=0]="terse",e[e.normal=1]="normal",e[e.requestTime=2]="requestTime",e[e.verbose=3]="verbose",e))(O_||{}),w_=[],L_=(e=>(e.Err="Err",e.Info="Info",e.Perf="Perf",e))(L_||{});function createInstallTypingsRequest(e,t,n,r){return{projectName:e.getProjectName(),fileNames:e.getFileNames(!0,!0).concat(e.getExcludedFiles()),compilerOptions:e.getCompilationSettings(),typeAcquisition:t,unresolvedImports:n,projectRootPath:e.getCurrentDirectory(),cachePath:r,kind:"discover"}}function toNormalizedPath(e){return normalizePath(e)}function normalizedPathToPath(e,t,n){return n(isRootedDiskPath(e)?e:getNormalizedAbsolutePath(e,t))}function asNormalizedPath(e){return e}function createNormalizedPathMap(){const e=new Map;return{get:t=>e.get(t),set(t,n){e.set(t,n)},contains:t=>e.has(t),remove(t){e.delete(t)}}}function isInferredProjectName(e){return/dev\/null\/inferredProject\d+\*/.test(e)}function makeInferredProjectName(e){return`/dev/null/inferredProject${e}*`}function makeAutoImportProviderProjectName(e){return`/dev/null/autoImportProviderProject${e}*`}function makeAuxiliaryProjectName(e){return`/dev/null/auxiliaryProject${e}*`}function createSortedArray2(){return[]}(A_=I_||(I_={})).ThrowNoProject=function ThrowNoProject(){throw new Error("No Project.")},A_.ThrowProjectLanguageServiceDisabled=function ThrowProjectLanguageServiceDisabled(){throw new Error("The project's language service is disabled.")},A_.ThrowProjectDoesNotContainDocument=function ThrowProjectDoesNotContainDocument(e,t){throw new Error(`Project '${t.getProjectName()}' does not contain document '${e}'`)};var M_=class _ThrottledOperations{constructor(e,t){this.host=e,this.pendingTimeouts=new Map,this.logger=t.hasLevel(3)?t:void 0}schedule(e,t,n){const r=this.pendingTimeouts.get(e);r&&this.host.clearTimeout(r),this.pendingTimeouts.set(e,this.host.setTimeout(_ThrottledOperations.run,t,e,this,n)),this.logger&&this.logger.info(`Scheduled: ${e}${r?", Cancelled earlier one":""}`)}cancel(e){const t=this.pendingTimeouts.get(e);return!!t&&(this.host.clearTimeout(t),this.pendingTimeouts.delete(e))}static run(e,t,n){t.pendingTimeouts.delete(e),t.logger&&t.logger.info(`Running: ${e}`),n()}},R_=class _GcTimer{constructor(e,t,n){this.host=e,this.delay=t,this.logger=n}scheduleCollect(){this.host.gc&&void 0===this.timerId&&(this.timerId=this.host.setTimeout(_GcTimer.run,this.delay,this))}static run(e){e.timerId=void 0;const t=e.logger.hasLevel(2),n=t&&e.host.getMemoryUsage();if(e.host.gc(),t){const t=e.host.getMemoryUsage();e.logger.perftrc(`GC::before ${n}, after ${t}`)}}};function getBaseConfigFileName(e){const t=getBaseFileName(e);return"tsconfig.json"===t||"jsconfig.json"===t?t:void 0}var B_={};i(B_,{ClassificationType:()=>zs,CommandTypes:()=>j_,CompletionTriggerKind:()=>Fs,IndentStyle:()=>z_,JsxEmit:()=>V_,ModuleKind:()=>q_,ModuleResolutionKind:()=>H_,NewLineKind:()=>K_,OrganizeImportsMode:()=>ks,PollingWatchKind:()=>U_,ScriptTarget:()=>G_,SemicolonPreference:()=>As,WatchDirectoryKind:()=>W_,WatchFileKind:()=>J_});var j_=(e=>(e.JsxClosingTag="jsxClosingTag",e.LinkedEditingRange="linkedEditingRange",e.Brace="brace",e.BraceFull="brace-full",e.BraceCompletion="braceCompletion",e.GetSpanOfEnclosingComment="getSpanOfEnclosingComment",e.Change="change",e.Close="close",e.Completions="completions",e.CompletionInfo="completionInfo",e.CompletionsFull="completions-full",e.CompletionDetails="completionEntryDetails",e.CompletionDetailsFull="completionEntryDetails-full",e.CompileOnSaveAffectedFileList="compileOnSaveAffectedFileList",e.CompileOnSaveEmitFile="compileOnSaveEmitFile",e.Configure="configure",e.Definition="definition",e.DefinitionFull="definition-full",e.DefinitionAndBoundSpan="definitionAndBoundSpan",e.DefinitionAndBoundSpanFull="definitionAndBoundSpan-full",e.Implementation="implementation",e.ImplementationFull="implementation-full",e.EmitOutput="emit-output",e.Exit="exit",e.FileReferences="fileReferences",e.FileReferencesFull="fileReferences-full",e.Format="format",e.Formatonkey="formatonkey",e.FormatFull="format-full",e.FormatonkeyFull="formatonkey-full",e.FormatRangeFull="formatRange-full",e.Geterr="geterr",e.GeterrForProject="geterrForProject",e.SemanticDiagnosticsSync="semanticDiagnosticsSync",e.SyntacticDiagnosticsSync="syntacticDiagnosticsSync",e.SuggestionDiagnosticsSync="suggestionDiagnosticsSync",e.NavBar="navbar",e.NavBarFull="navbar-full",e.Navto="navto",e.NavtoFull="navto-full",e.NavTree="navtree",e.NavTreeFull="navtree-full",e.DocumentHighlights="documentHighlights",e.DocumentHighlightsFull="documentHighlights-full",e.Open="open",e.Quickinfo="quickinfo",e.QuickinfoFull="quickinfo-full",e.References="references",e.ReferencesFull="references-full",e.Reload="reload",e.Rename="rename",e.RenameInfoFull="rename-full",e.RenameLocationsFull="renameLocations-full",e.Saveto="saveto",e.SignatureHelp="signatureHelp",e.SignatureHelpFull="signatureHelp-full",e.FindSourceDefinition="findSourceDefinition",e.Status="status",e.TypeDefinition="typeDefinition",e.ProjectInfo="projectInfo",e.ReloadProjects="reloadProjects",e.Unknown="unknown",e.OpenExternalProject="openExternalProject",e.OpenExternalProjects="openExternalProjects",e.CloseExternalProject="closeExternalProject",e.SynchronizeProjectList="synchronizeProjectList",e.ApplyChangedToOpenFiles="applyChangedToOpenFiles",e.UpdateOpen="updateOpen",e.EncodedSyntacticClassificationsFull="encodedSyntacticClassifications-full",e.EncodedSemanticClassificationsFull="encodedSemanticClassifications-full",e.Cleanup="cleanup",e.GetOutliningSpans="getOutliningSpans",e.GetOutliningSpansFull="outliningSpans",e.TodoComments="todoComments",e.Indentation="indentation",e.DocCommentTemplate="docCommentTemplate",e.CompilerOptionsDiagnosticsFull="compilerOptionsDiagnostics-full",e.NameOrDottedNameSpan="nameOrDottedNameSpan",e.BreakpointStatement="breakpointStatement",e.CompilerOptionsForInferredProjects="compilerOptionsForInferredProjects",e.GetCodeFixes="getCodeFixes",e.GetCodeFixesFull="getCodeFixes-full",e.GetCombinedCodeFix="getCombinedCodeFix",e.GetCombinedCodeFixFull="getCombinedCodeFix-full",e.ApplyCodeActionCommand="applyCodeActionCommand",e.GetSupportedCodeFixes="getSupportedCodeFixes",e.GetApplicableRefactors="getApplicableRefactors",e.GetEditsForRefactor="getEditsForRefactor",e.GetMoveToRefactoringFileSuggestions="getMoveToRefactoringFileSuggestions",e.PreparePasteEdits="preparePasteEdits",e.GetPasteEdits="getPasteEdits",e.GetEditsForRefactorFull="getEditsForRefactor-full",e.OrganizeImports="organizeImports",e.OrganizeImportsFull="organizeImports-full",e.GetEditsForFileRename="getEditsForFileRename",e.GetEditsForFileRenameFull="getEditsForFileRename-full",e.ConfigurePlugin="configurePlugin",e.SelectionRange="selectionRange",e.SelectionRangeFull="selectionRange-full",e.ToggleLineComment="toggleLineComment",e.ToggleLineCommentFull="toggleLineComment-full",e.ToggleMultilineComment="toggleMultilineComment",e.ToggleMultilineCommentFull="toggleMultilineComment-full",e.CommentSelection="commentSelection",e.CommentSelectionFull="commentSelection-full",e.UncommentSelection="uncommentSelection",e.UncommentSelectionFull="uncommentSelection-full",e.PrepareCallHierarchy="prepareCallHierarchy",e.ProvideCallHierarchyIncomingCalls="provideCallHierarchyIncomingCalls",e.ProvideCallHierarchyOutgoingCalls="provideCallHierarchyOutgoingCalls",e.ProvideInlayHints="provideInlayHints",e.WatchChange="watchChange",e.MapCode="mapCode",e.CopilotRelated="copilotRelated",e))(j_||{}),J_=(e=>(e.FixedPollingInterval="FixedPollingInterval",e.PriorityPollingInterval="PriorityPollingInterval",e.DynamicPriorityPolling="DynamicPriorityPolling",e.FixedChunkSizePolling="FixedChunkSizePolling",e.UseFsEvents="UseFsEvents",e.UseFsEventsOnParentDirectory="UseFsEventsOnParentDirectory",e))(J_||{}),W_=(e=>(e.UseFsEvents="UseFsEvents",e.FixedPollingInterval="FixedPollingInterval",e.DynamicPriorityPolling="DynamicPriorityPolling",e.FixedChunkSizePolling="FixedChunkSizePolling",e))(W_||{}),U_=(e=>(e.FixedInterval="FixedInterval",e.PriorityInterval="PriorityInterval",e.DynamicPriority="DynamicPriority",e.FixedChunkSize="FixedChunkSize",e))(U_||{}),z_=(e=>(e.None="None",e.Block="Block",e.Smart="Smart",e))(z_||{}),V_=(e=>(e.None="none",e.Preserve="preserve",e.ReactNative="react-native",e.React="react",e.ReactJSX="react-jsx",e.ReactJSXDev="react-jsxdev",e))(V_||{}),q_=(e=>(e.None="none",e.CommonJS="commonjs",e.AMD="amd",e.UMD="umd",e.System="system",e.ES6="es6",e.ES2015="es2015",e.ES2020="es2020",e.ES2022="es2022",e.ESNext="esnext",e.Node16="node16",e.Node18="node18",e.Node20="node20",e.NodeNext="nodenext",e.Preserve="preserve",e))(q_||{}),H_=(e=>(e.Classic="classic",e.Node="node",e.NodeJs="node",e.Node10="node10",e.Node16="node16",e.NodeNext="nodenext",e.Bundler="bundler",e))(H_||{}),K_=(e=>(e.Crlf="Crlf",e.Lf="Lf",e))(K_||{}),G_=(e=>(e.ES3="es3",e.ES5="es5",e.ES6="es6",e.ES2015="es2015",e.ES2016="es2016",e.ES2017="es2017",e.ES2018="es2018",e.ES2019="es2019",e.ES2020="es2020",e.ES2021="es2021",e.ES2022="es2022",e.ES2023="es2023",e.ES2024="es2024",e.ESNext="esnext",e.JSON="json",e.Latest="esnext",e))(G_||{}),$_=class{constructor(e,t,n){this.host=e,this.info=t,this.isOpen=!1,this.ownFileText=!1,this.pendingReloadFromDisk=!1,this.version=n||0}getVersion(){return this.svc?`SVC-${this.version}-${this.svc.getSnapshotVersion()}`:`Text-${this.version}`}hasScriptVersionCache_TestOnly(){return void 0!==this.svc}resetSourceMapInfo(){this.info.sourceFileLike=void 0,this.info.closeSourceMapFileWatcher(),this.info.sourceMapFilePath=void 0,this.info.declarationInfoPath=void 0,this.info.sourceInfos=void 0,this.info.documentPositionMapper=void 0}useText(e){this.svc=void 0,this.text=e,this.textSnapshot=void 0,this.lineMap=void 0,this.fileSize=void 0,this.resetSourceMapInfo(),this.version++}edit(e,t,n){this.switchToScriptVersionCache().edit(e,t-e,n),this.ownFileText=!1,this.text=void 0,this.textSnapshot=void 0,this.lineMap=void 0,this.fileSize=void 0,this.resetSourceMapInfo()}reload(e){return h.assert(void 0!==e),this.pendingReloadFromDisk=!1,!this.text&&this.svc&&(this.text=getSnapshotText(this.svc.getSnapshot())),this.text!==e&&(this.useText(e),this.ownFileText=!1,!0)}reloadWithFileText(e){const{text:t,fileSize:n}=e||!this.info.isDynamicOrHasMixedContent()?this.getFileTextAndSize(e):{text:"",fileSize:void 0},r=this.reload(t);return this.fileSize=n,this.ownFileText=!e||e===this.info.fileName,this.ownFileText&&this.info.mTime===St.getTime()&&(this.info.mTime=(this.host.getModifiedTime(this.info.fileName)||St).getTime()),r}scheduleReloadIfNeeded(){return!this.pendingReloadFromDisk&&!this.ownFileText&&(this.pendingReloadFromDisk=!0)}delayReloadFromFileIntoText(){this.pendingReloadFromDisk=!0}getTelemetryFileSize(){return this.fileSize?this.fileSize:this.text?this.text.length:this.svc?this.svc.getSnapshot().getLength():this.getSnapshot().getLength()}getSnapshot(){var e;return(null==(e=this.tryUseScriptVersionCache())?void 0:e.getSnapshot())||(this.textSnapshot??(this.textSnapshot=Ts.fromString(h.checkDefined(this.text))))}getAbsolutePositionAndLineText(e){const t=this.tryUseScriptVersionCache();if(t)return t.getAbsolutePositionAndLineText(e);const n=this.getLineMap();return e<=n.length?{absolutePosition:n[e-1],lineText:this.text.substring(n[e-1],n[e])}:{absolutePosition:this.text.length,lineText:void 0}}lineToTextSpan(e){const t=this.tryUseScriptVersionCache();if(t)return t.lineToTextSpan(e);const n=this.getLineMap();return createTextSpanFromBounds(n[e],e+1void 0===t?t=this.host.readFile(n)||"":t;if(!hasTSFileExtension(this.info.fileName)){const e=this.host.getFileSize?this.host.getFileSize(n):getText().length;if(e>sf){h.assert(!!this.info.containingProjects.length);return this.info.containingProjects[0].projectService.logger.info(`Skipped loading contents of large file ${n} for info ${this.info.fileName}: fileSize: ${e}`),this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(n,e),{text:"",fileSize:e}}}return{text:getText()}}switchToScriptVersionCache(){return this.svc&&!this.pendingReloadFromDisk||(this.svc=Wf.fromString(this.getOrLoadText()),this.textSnapshot=void 0,this.version++),this.svc}tryUseScriptVersionCache(){return this.svc&&!this.pendingReloadFromDisk||this.getOrLoadText(),this.isOpen?(this.svc||this.textSnapshot||(this.svc=Wf.fromString(h.checkDefined(this.text)),this.textSnapshot=void 0),this.svc):this.svc}getOrLoadText(){return(void 0===this.text||this.pendingReloadFromDisk)&&(h.assert(!this.svc||this.pendingReloadFromDisk,"ScriptVersionCache should not be set when reloading from disk"),this.reloadWithFileText()),this.text}getLineMap(){return h.assert(!this.svc,"ScriptVersionCache should not be set"),this.lineMap||(this.lineMap=computeLineStarts(h.checkDefined(this.text)))}getLineInfo(){const e=this.tryUseScriptVersionCache();if(e)return{getLineCount:()=>e.getLineCount(),getLineText:t=>e.getAbsolutePositionAndLineText(t+1).lineText};const t=this.getLineMap();return getLineInfo(this.text,t)}};function isDynamicFileName(e){return"^"===e[0]||(e.includes("walkThroughSnippet:/")||e.includes("untitled:/"))&&"^"===getBaseFileName(e)[0]||e.includes(":^")&&!e.includes(Ft)}var Q_=class{constructor(e,t,n,r,i,o){this.host=e,this.fileName=t,this.scriptKind=n,this.hasMixedContent=r,this.path=i,this.containingProjects=[],this.isDynamic=isDynamicFileName(t),this.textStorage=new $_(e,this,o),(r||this.isDynamic)&&(this.realpath=this.path),this.scriptKind=n||getScriptKindFromFileName(t)}isDynamicOrHasMixedContent(){return this.hasMixedContent||this.isDynamic}isScriptOpen(){return this.textStorage.isOpen}open(e){this.textStorage.isOpen=!0,void 0!==e&&this.textStorage.reload(e)&&this.markContainingProjectsAsDirty()}close(e=!0){this.textStorage.isOpen=!1,e&&this.textStorage.scheduleReloadIfNeeded()&&this.markContainingProjectsAsDirty()}getSnapshot(){return this.textStorage.getSnapshot()}ensureRealPath(){if(void 0===this.realpath&&(this.realpath=this.path,this.host.realpath)){h.assert(!!this.containingProjects.length);const e=this.containingProjects[0],t=this.host.realpath(this.path);t&&(this.realpath=e.toPath(t),this.realpath!==this.path&&e.projectService.realpathToScriptInfos.add(this.realpath,this))}}getRealpathIfDifferent(){return this.realpath&&this.realpath!==this.path?this.realpath:void 0}isSymlink(){return this.realpath&&this.realpath!==this.path}getFormatCodeSettings(){return this.formatSettings}getPreferences(){return this.preferences}attachToProject(e){const t=!this.isAttached(e);return t&&(this.containingProjects.push(e),e.getCompilerOptions().preserveSymlinks||this.ensureRealPath(),e.onFileAddedOrRemoved(this.isSymlink())),t}isAttached(e){switch(this.containingProjects.length){case 0:return!1;case 1:return this.containingProjects[0]===e;case 2:return this.containingProjects[0]===e||this.containingProjects[1]===e;default:return contains(this.containingProjects,e)}}detachFromProject(e){switch(this.containingProjects.length){case 0:return;case 1:this.containingProjects[0]===e&&(e.onFileAddedOrRemoved(this.isSymlink()),this.containingProjects.pop());break;case 2:this.containingProjects[0]===e?(e.onFileAddedOrRemoved(this.isSymlink()),this.containingProjects[0]=this.containingProjects.pop()):this.containingProjects[1]===e&&(e.onFileAddedOrRemoved(this.isSymlink()),this.containingProjects.pop());break;default:orderedRemoveItem(this.containingProjects,e)&&e.onFileAddedOrRemoved(this.isSymlink())}}detachAllProjects(){for(const e of this.containingProjects){isConfiguredProject(e)&&e.getCachedDirectoryStructureHost().addOrDeleteFile(this.fileName,this.path,2);const t=e.getRootFilesMap().get(this.path);e.removeFile(this,!1,!1),e.onFileAddedOrRemoved(this.isSymlink()),t&&!isInferredProject(e)&&e.addMissingFileRoot(t.fileName)}clear(this.containingProjects)}getDefaultProject(){switch(this.containingProjects.length){case 0:return I_.ThrowNoProject();case 1:return isProjectDeferredClose(this.containingProjects[0])||isBackgroundProject(this.containingProjects[0])?I_.ThrowNoProject():this.containingProjects[0];default:let e,t,n,r;for(let i=0;i!e.isOrphan())}lineToTextSpan(e){return this.textStorage.lineToTextSpan(e)}lineOffsetToPosition(e,t,n){return this.textStorage.lineOffsetToPosition(e,t,n)}positionToLineOffset(e){!function failIfInvalidPosition(e){h.assert("number"==typeof e,`Expected position ${e} to be a number.`),h.assert(e>=0,"Expected position to be non-negative.")}(e);const t=this.textStorage.positionToLineOffset(e);return function failIfInvalidLocation(e){h.assert("number"==typeof e.line,`Expected line ${e.line} to be a number.`),h.assert("number"==typeof e.offset,`Expected offset ${e.offset} to be a number.`),h.assert(e.line>0,"Expected line to be non-"+(0===e.line?"zero":"negative")),h.assert(e.offset>0,"Expected offset to be non-"+(0===e.offset?"zero":"negative"))}(t),t}isJavaScript(){return 1===this.scriptKind||2===this.scriptKind}closeSourceMapFileWatcher(){this.sourceMapFilePath&&!isString(this.sourceMapFilePath)&&(closeFileWatcherOf(this.sourceMapFilePath),this.sourceMapFilePath=void 0)}};function scriptInfoIsContainedByBackgroundProject(e){return some(e.containingProjects,isBackgroundProject)}function scriptInfoIsContainedByDeferredClosedProject(e){return some(e.containingProjects,isProjectDeferredClose)}var X_=(e=>(e[e.Inferred=0]="Inferred",e[e.Configured=1]="Configured",e[e.External=2]="External",e[e.AutoImportProvider=3]="AutoImportProvider",e[e.Auxiliary=4]="Auxiliary",e))(X_||{});function countEachFileTypes(e,t=!1){const n={js:0,jsSize:0,jsx:0,jsxSize:0,ts:0,tsSize:0,tsx:0,tsxSize:0,dts:0,dtsSize:0,deferred:0,deferredSize:0};for(const r of e){const e=t?r.textStorage.getTelemetryFileSize():0;switch(r.scriptKind){case 1:n.js+=1,n.jsSize+=e;break;case 2:n.jsx+=1,n.jsxSize+=e;break;case 3:isDeclarationFileName(r.fileName)?(n.dts+=1,n.dtsSize+=e):(n.ts+=1,n.tsSize+=e);break;case 4:n.tsx+=1,n.tsxSize+=e;break;case 7:n.deferred+=1,n.deferredSize+=e}}return n}function allRootFilesAreJsOrDts(e){const t=countEachFileTypes(e.getRootScriptInfos());return 0===t.ts&&0===t.tsx}function allFilesAreJsOrDts(e){const t=countEachFileTypes(e.getScriptInfos());return 0===t.ts&&0===t.tsx}function hasNoTypeScriptSource(e){return!e.some(e=>fileExtensionIs(e,".ts")&&!isDeclarationFileName(e)||fileExtensionIs(e,".tsx"))}function isGeneratedFileWatcher(e){return void 0!==e.generatedFilePath}function setIsEqualTo(e,t){if(e===t)return!0;if(0===(e||w_).length&&0===(t||w_).length)return!0;const n=new Map;let r=0;for(const t of e)!0!==n.get(t)&&(n.set(t,!0),r++);for(const e of t){const t=n.get(e);if(void 0===t)return!1;!0===t&&(n.set(e,!1),r--)}return 0===r}var Y_=class _Project{constructor(e,t,n,r,i,o,a,s,c,l){switch(this.projectKind=t,this.projectService=n,this.compilerOptions=o,this.compileOnSaveEnabled=a,this.watchOptions=s,this.rootFilesMap=new Map,this.plugins=[],this.cachedUnresolvedImportsPerFile=new Map,this.hasAddedorRemovedFiles=!1,this.hasAddedOrRemovedSymlinks=!1,this.lastReportedVersion=0,this.projectProgramVersion=0,this.projectStateVersion=0,this.initialLoadPending=!1,this.dirty=!1,this.typingFiles=w_,this.moduleSpecifierCache=createModuleSpecifierCache(this),this.createHash=maybeBind(this.projectService.host,this.projectService.host.createHash),this.globalCacheResolutionModuleName=ss.nonRelativeModuleNameForTypingCache,this.updateFromProjectInProgress=!1,n.logger.info(`Creating ${X_[t]}Project: ${e}, currentDirectory: ${l}`),this.projectName=e,this.directoryStructureHost=c,this.currentDirectory=this.projectService.getNormalizedAbsolutePath(l),this.getCanonicalFileName=this.projectService.toCanonicalFileName,this.jsDocParsingMode=this.projectService.jsDocParsingMode,this.cancellationToken=new Kl(this.projectService.cancellationToken,this.projectService.throttleWaitMilliseconds),this.compilerOptions?(r||rr(this.compilerOptions)||this.projectService.hasDeferredExtension())&&(this.compilerOptions.allowNonTsExtensions=!0):(this.compilerOptions={target:1,jsx:1},this.compilerOptions.allowNonTsExtensions=!0,this.compilerOptions.allowJs=!0),n.serverMode){case 0:this.languageServiceEnabled=!0;break;case 1:this.languageServiceEnabled=!0,this.compilerOptions.noResolve=!0,this.compilerOptions.types=[];break;case 2:this.languageServiceEnabled=!1,this.compilerOptions.noResolve=!0,this.compilerOptions.types=[];break;default:h.assertNever(n.serverMode)}this.setInternalCompilerOptionsForEmittingJsFiles();const d=this.projectService.host;this.projectService.logger.loggingEnabled()?this.trace=e=>this.writeLog(e):d.trace&&(this.trace=e=>d.trace(e)),this.realpath=maybeBind(d,d.realpath),this.preferNonRecursiveWatch=this.projectService.canUseWatchEvents||d.preferNonRecursiveWatch,this.resolutionCache=createResolutionCache(this,this.currentDirectory,!0),this.languageService=createLanguageService(this,this.projectService.documentRegistry,this.projectService.serverMode),i&&this.disableLanguageService(i),this.markAsDirty(),isBackgroundProject(this)||(this.projectService.pendingEnsureProjectForOpenFiles=!0),this.projectService.onProjectCreation(this)}getRedirectFromSourceFile(e){}isNonTsProject(){return updateProjectIfDirty(this),allFilesAreJsOrDts(this)}isJsOnlyProject(){return updateProjectIfDirty(this),function hasOneOrMoreJsAndNoTsFiles(e){const t=countEachFileTypes(e.getScriptInfos());return t.js>0&&0===t.ts&&0===t.tsx}(this)}static resolveModule(e,t,n,r){return _Project.importServicePluginSync({name:e},[t],n,r).resolvedModule}static importServicePluginSync(e,t,n,r){let i,o;h.assertIsDefined(n.require);for(const a of t){const t=normalizeSlashes(n.resolvePath(combinePaths(a,"node_modules")));r(`Loading ${e.name} from ${a} (resolved to ${t})`);const s=n.require(t,e.name);if(!s.error){o=s.module;break}const c=s.error.stack||s.error.message||JSON.stringify(s.error);(i??(i=[])).push(`Failed to load module '${e.name}' from ${t}: ${c}`)}return{pluginConfigEntry:e,resolvedModule:o,errorLogs:i}}static async importServicePluginAsync(e,t,n,r){let i,o;h.assertIsDefined(n.importPlugin);for(const a of t){const t=combinePaths(a,"node_modules");let s;r(`Dynamically importing ${e.name} from ${a} (resolved to ${t})`);try{s=await n.importPlugin(t,e.name)}catch(e){s={module:void 0,error:e}}if(!s.error){o=s.module;break}const c=s.error.stack||s.error.message||JSON.stringify(s.error);(i??(i=[])).push(`Failed to dynamically import module '${e.name}' from ${t}: ${c}`)}return{pluginConfigEntry:e,resolvedModule:o,errorLogs:i}}isKnownTypesPackageName(e){return this.projectService.typingsInstaller.isKnownTypesPackageName(e)}installPackage(e){return this.projectService.typingsInstaller.installPackage({...e,projectName:this.projectName,projectRootPath:this.toPath(this.currentDirectory)})}getGlobalTypingsCacheLocation(){return this.getTypeAcquisition().enable?this.projectService.typingsInstaller.globalTypingsCacheLocation:void 0}getSymlinkCache(){return this.symlinks||(this.symlinks=createSymlinkCache(this.getCurrentDirectory(),this.getCanonicalFileName)),this.program&&!this.symlinks.hasProcessedResolutions()&&this.symlinks.setSymlinksFromResolutions(this.program.forEachResolvedModule,this.program.forEachResolvedTypeReferenceDirective,this.program.getAutomaticTypeDirectiveResolutions()),this.symlinks}getCompilationSettings(){return this.compilerOptions}getCompilerOptions(){return this.getCompilationSettings()}getNewLine(){return this.projectService.host.newLine}getProjectVersion(){return this.projectStateVersion.toString()}getProjectReferences(){}getScriptFileNames(){if(!this.rootFilesMap.size)return l;let e;return this.rootFilesMap.forEach(t=>{(this.languageServiceEnabled||t.info&&t.info.isScriptOpen())&&(e||(e=[])).push(t.fileName)}),addRange(e,this.typingFiles)||l}getOrCreateScriptInfoAndAttachToProject(e){const t=this.projectService.getOrCreateScriptInfoNotOpenedByClient(e,this.currentDirectory,this.directoryStructureHost,!1);if(t){const e=this.rootFilesMap.get(t.path);e&&e.info!==t&&(e.info=t),t.attachToProject(this)}return t}getScriptKind(e){const t=this.projectService.getScriptInfoForPath(this.toPath(e));return t&&t.scriptKind}getScriptVersion(e){const t=this.projectService.getOrCreateScriptInfoNotOpenedByClient(e,this.currentDirectory,this.directoryStructureHost,!1);return t&&t.getLatestVersion()}getScriptSnapshot(e){const t=this.getOrCreateScriptInfoAndAttachToProject(e);if(t)return t.getSnapshot()}getCancellationToken(){return this.cancellationToken}getCurrentDirectory(){return this.currentDirectory}getDefaultLibFileName(){return combinePaths(getDirectoryPath(normalizePath(this.projectService.getExecutingFilePath())),getDefaultLibFileName(this.compilerOptions))}useCaseSensitiveFileNames(){return this.projectService.host.useCaseSensitiveFileNames}readDirectory(e,t,n,r,i){return this.directoryStructureHost.readDirectory(e,t,n,r,i)}readFile(e){return this.projectService.host.readFile(e)}writeFile(e,t){return this.projectService.host.writeFile(e,t)}fileExists(e){const t=this.toPath(e);return!!this.projectService.getScriptInfoForPath(t)||!this.isWatchedMissingFile(t)&&this.directoryStructureHost.fileExists(e)}resolveModuleNameLiterals(e,t,n,r,i,o){return this.resolutionCache.resolveModuleNameLiterals(e,t,n,r,i,o)}getModuleResolutionCache(){return this.resolutionCache.getModuleResolutionCache()}resolveTypeReferenceDirectiveReferences(e,t,n,r,i,o){return this.resolutionCache.resolveTypeReferenceDirectiveReferences(e,t,n,r,i,o)}resolveLibrary(e,t,n,r){return this.resolutionCache.resolveLibrary(e,t,n,r)}directoryExists(e){return this.directoryStructureHost.directoryExists(e)}getDirectories(e){return this.directoryStructureHost.getDirectories(e)}getCachedDirectoryStructureHost(){}toPath(e){return toPath(e,this.currentDirectory,this.projectService.toCanonicalFileName)}watchDirectoryOfFailedLookupLocation(e,t,n){return this.projectService.watchFactory.watchDirectory(e,t,n,this.projectService.getWatchOptions(this),Ya.FailedLookupLocations,this)}watchAffectingFileLocation(e,t){return this.projectService.watchFactory.watchFile(e,t,2e3,this.projectService.getWatchOptions(this),Ya.AffectingFileLocation,this)}clearInvalidateResolutionOfFailedLookupTimer(){return this.projectService.throttledOperations.cancel(`${this.getProjectName()}FailedLookupInvalidation`)}scheduleInvalidateResolutionsOfFailedLookupLocations(){this.projectService.throttledOperations.schedule(`${this.getProjectName()}FailedLookupInvalidation`,1e3,()=>{this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()&&this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this)})}invalidateResolutionsOfFailedLookupLocations(){this.clearInvalidateResolutionOfFailedLookupTimer()&&this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()&&(this.markAsDirty(),this.projectService.delayEnsureProjectForOpenFiles())}onInvalidatedResolution(){this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this)}watchTypeRootsDirectory(e,t,n){return this.projectService.watchFactory.watchDirectory(e,t,n,this.projectService.getWatchOptions(this),Ya.TypeRoots,this)}hasChangedAutomaticTypeDirectiveNames(){return this.resolutionCache.hasChangedAutomaticTypeDirectiveNames()}onChangedAutomaticTypeDirectiveNames(){this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this)}fileIsOpen(e){return this.projectService.openFiles.has(e)}writeLog(e){this.projectService.logger.info(e)}log(e){this.writeLog(e)}error(e){this.projectService.logger.msg(e,"Err")}setInternalCompilerOptionsForEmittingJsFiles(){0!==this.projectKind&&2!==this.projectKind||(this.compilerOptions.noEmitForJsFiles=!0)}getGlobalProjectErrors(){return filter(this.projectErrors,e=>!e.file)||w_}getAllProjectErrors(){return this.projectErrors||w_}setProjectErrors(e){this.projectErrors=e}getLanguageService(e=!0){return e&&updateProjectIfDirty(this),this.languageService}getSourceMapper(){return this.getLanguageService().getSourceMapper()}clearSourceMapperCache(){this.languageService.clearSourceMapperCache()}getDocumentPositionMapper(e,t){return this.projectService.getDocumentPositionMapper(this,e,t)}getSourceFileLike(e){return this.projectService.getSourceFileLike(e,this)}shouldEmitFile(e){return e&&!e.isDynamicOrHasMixedContent()&&!this.program.isSourceOfProjectReferenceRedirect(e.path)}getCompileOnSaveAffectedFileList(e){return this.languageServiceEnabled?(updateProjectIfDirty(this),this.builderState=qa.create(this.program,this.builderState,!0),mapDefined(qa.getFilesAffectedBy(this.builderState,this.program,e.path,this.cancellationToken,this.projectService.host),e=>this.shouldEmitFile(this.projectService.getScriptInfoForPath(e.path))?e.fileName:void 0)):[]}emitFile(e,t){if(!this.languageServiceEnabled||!this.shouldEmitFile(e))return{emitSkipped:!0,diagnostics:w_};const{emitSkipped:n,diagnostics:r,outputFiles:i}=this.getLanguageService().getEmitOutput(e.fileName);if(!n){for(const e of i){t(getNormalizedAbsolutePath(e.name,this.currentDirectory),e.text,e.writeByteOrderMark)}if(this.builderState&&Zn(this.compilerOptions)){const t=i.filter(e=>isDeclarationFileName(e.name));if(1===t.length){const n=this.program.getSourceFile(e.fileName),r=this.projectService.host.createHash?this.projectService.host.createHash(t[0].text):generateDjb2Hash(t[0].text);qa.updateSignatureOfFile(this.builderState,r,n.resolvedPath)}}}return{emitSkipped:n,diagnostics:r}}enableLanguageService(){this.languageServiceEnabled||2===this.projectService.serverMode||(this.languageServiceEnabled=!0,this.lastFileExceededProgramSize=void 0,this.projectService.onUpdateLanguageServiceStateForProject(this,!0))}cleanupProgram(){if(this.program){for(const e of this.program.getSourceFiles())this.detachScriptInfoIfNotRoot(e.fileName);this.program.forEachResolvedProjectReference(e=>this.detachScriptInfoFromProject(e.sourceFile.fileName)),this.program=void 0}}disableLanguageService(e){this.languageServiceEnabled&&(h.assert(2!==this.projectService.serverMode),this.languageService.cleanupSemanticCache(),this.languageServiceEnabled=!1,this.cleanupProgram(),this.lastFileExceededProgramSize=e,this.builderState=void 0,this.autoImportProviderHost&&this.autoImportProviderHost.close(),this.autoImportProviderHost=void 0,this.resolutionCache.closeTypeRootsWatch(),this.clearGeneratedFileWatch(),this.projectService.verifyDocumentRegistry(),this.projectService.onUpdateLanguageServiceStateForProject(this,!1))}getProjectName(){return this.projectName}removeLocalTypingsFromTypeAcquisition(e){return e.enable&&e.include?{...e,include:this.removeExistingTypings(e.include)}:e}getExternalFiles(e){return toSorted(flatMap(this.plugins,t=>{if("function"==typeof t.module.getExternalFiles)try{return t.module.getExternalFiles(this,e||0)}catch(e){this.projectService.logger.info(`A plugin threw an exception in getExternalFiles: ${e}`),e.stack&&this.projectService.logger.info(e.stack)}}))}getSourceFile(e){if(this.program)return this.program.getSourceFileByPath(e)}getSourceFileOrConfigFile(e){const t=this.program.getCompilerOptions();return e===t.configFilePath?t.configFile:this.getSourceFile(e)}close(){var e;this.typingsCache&&this.projectService.typingsInstaller.onProjectClosed(this),this.typingsCache=void 0,this.closeWatchingTypingLocations(),this.cleanupProgram(),forEach(this.externalFiles,e=>this.detachScriptInfoIfNotRoot(e)),this.rootFilesMap.forEach(e=>{var t;return null==(t=e.info)?void 0:t.detachFromProject(this)}),this.projectService.pendingEnsureProjectForOpenFiles=!0,this.rootFilesMap=void 0,this.externalFiles=void 0,this.program=void 0,this.builderState=void 0,this.resolutionCache.clear(),this.resolutionCache=void 0,this.cachedUnresolvedImportsPerFile=void 0,null==(e=this.packageJsonWatches)||e.forEach(e=>{e.projects.delete(this),e.close()}),this.packageJsonWatches=void 0,this.moduleSpecifierCache.clear(),this.moduleSpecifierCache=void 0,this.directoryStructureHost=void 0,this.exportMapCache=void 0,this.projectErrors=void 0,this.plugins.length=0,this.missingFilesMap&&(clearMap(this.missingFilesMap,closeFileWatcher),this.missingFilesMap=void 0),this.clearGeneratedFileWatch(),this.clearInvalidateResolutionOfFailedLookupTimer(),this.autoImportProviderHost&&this.autoImportProviderHost.close(),this.autoImportProviderHost=void 0,this.noDtsResolutionProject&&this.noDtsResolutionProject.close(),this.noDtsResolutionProject=void 0,this.languageService.dispose(),this.languageService=void 0}detachScriptInfoIfNotRoot(e){const t=this.projectService.getScriptInfo(e);t&&!this.isRoot(t)&&t.detachFromProject(this)}isClosed(){return void 0===this.rootFilesMap}hasRoots(){var e;return!!(null==(e=this.rootFilesMap)?void 0:e.size)}isOrphan(){return!1}getRootFiles(){return this.rootFilesMap&&arrayFrom(mapDefinedIterator(this.rootFilesMap.values(),e=>{var t;return null==(t=e.info)?void 0:t.fileName}))}getRootFilesMap(){return this.rootFilesMap}getRootScriptInfos(){return arrayFrom(mapDefinedIterator(this.rootFilesMap.values(),e=>e.info))}getScriptInfos(){return this.languageServiceEnabled?map(this.program.getSourceFiles(),e=>{const t=this.projectService.getScriptInfoForPath(e.resolvedPath);return h.assert(!!t,"getScriptInfo",()=>`scriptInfo for a file '${e.fileName}' Path: '${e.path}' / '${e.resolvedPath}' is missing.`),t}):this.getRootScriptInfos()}getExcludedFiles(){return w_}getFileNames(e,t){if(!this.program)return[];if(!this.languageServiceEnabled){let e=this.getRootFiles();if(this.compilerOptions){const t=getDefaultLibFilePath(this.compilerOptions);t&&(e||(e=[])).push(t)}return e}const n=[];for(const t of this.program.getSourceFiles())e&&this.program.isSourceFileFromExternalLibrary(t)||n.push(asNormalizedPath(t.fileName));if(!t){const e=this.program.getCompilerOptions().configFile;if(e&&(n.push(e.fileName),e.extendedSourceFiles))for(const t of e.extendedSourceFiles)n.push(asNormalizedPath(t))}return n}getFileNamesWithRedirectInfo(e){return this.getFileNames().map(t=>({fileName:t,isSourceOfProjectReferenceRedirect:e&&this.isSourceOfProjectReferenceRedirect(t)}))}hasConfigFile(e){if(this.program&&this.languageServiceEnabled){const t=this.program.getCompilerOptions().configFile;if(t){if(e===t.fileName)return!0;if(t.extendedSourceFiles)for(const n of t.extendedSourceFiles)if(e===asNormalizedPath(n))return!0}}return!1}containsScriptInfo(e){if(this.isRoot(e))return!0;if(!this.program)return!1;const t=this.program.getSourceFileByPath(e.path);return!!t&&t.resolvedPath===e.path}containsFile(e,t){const n=this.projectService.getScriptInfoForNormalizedPath(e);return!(!n||!n.isScriptOpen()&&t)&&this.containsScriptInfo(n)}isRoot(e){var t,n;return(null==(n=null==(t=this.rootFilesMap)?void 0:t.get(e.path))?void 0:n.info)===e}addRoot(e,t){h.assert(!this.isRoot(e)),this.rootFilesMap.set(e.path,{fileName:t||e.fileName,info:e}),e.attachToProject(this),this.markAsDirty()}addMissingFileRoot(e){const t=this.projectService.toPath(e);this.rootFilesMap.set(t,{fileName:e}),this.markAsDirty()}removeFile(e,t,n){this.isRoot(e)&&this.removeRoot(e),t?this.resolutionCache.removeResolutionsOfFile(e.path):this.resolutionCache.invalidateResolutionOfFile(e.path),this.cachedUnresolvedImportsPerFile.delete(e.path),n&&e.detachFromProject(this),this.markAsDirty()}registerFileUpdate(e){(this.updatedFileNames||(this.updatedFileNames=new Set)).add(e)}markFileAsDirty(e){this.markAsDirty(),this.exportMapCache&&!this.exportMapCache.isEmpty()&&(this.changedFilesForExportMapCache||(this.changedFilesForExportMapCache=new Set)).add(e)}markAsDirty(){this.dirty||(this.projectStateVersion++,this.dirty=!0)}markAutoImportProviderAsDirty(){var e;this.autoImportProviderHost||(this.autoImportProviderHost=void 0),null==(e=this.autoImportProviderHost)||e.markAsDirty()}onAutoImportProviderSettingsChanged(){this.markAutoImportProviderAsDirty()}onPackageJsonChange(){this.moduleSpecifierCache.clear(),this.markAutoImportProviderAsDirty()}onFileAddedOrRemoved(e){this.hasAddedorRemovedFiles=!0,e&&(this.hasAddedOrRemovedSymlinks=!0)}onDiscoveredSymlink(){this.hasAddedOrRemovedSymlinks=!0}onReleaseOldSourceFile(e,t,n,r){(!r||e.resolvedPath===e.path&&r.resolvedPath!==e.path)&&this.detachScriptInfoFromProject(e.fileName,n)}updateFromProject(){updateProjectIfDirty(this)}updateGraph(){var e,t;null==(e=J)||e.push(J.Phase.Session,"updateGraph",{name:this.projectName,kind:X_[this.projectKind]}),this.resolutionCache.startRecordingFilesWithChangedResolutions();const n=this.updateGraphWorker(),r=this.hasAddedorRemovedFiles;this.hasAddedorRemovedFiles=!1,this.hasAddedOrRemovedSymlinks=!1;const i=this.resolutionCache.finishRecordingFilesWithChangedResolutions()||w_;for(const e of i)this.cachedUnresolvedImportsPerFile.delete(e);this.languageServiceEnabled&&0===this.projectService.serverMode&&!this.isOrphan()?((n||i.length)&&(this.lastCachedUnresolvedImportsList=function getUnresolvedImports(e,t){var n,r;const i=e.getSourceFiles();null==(n=J)||n.push(J.Phase.Session,"getUnresolvedImports",{count:i.length});const o=e.getTypeChecker().getAmbientModules().map(e=>stripQuotes(e.getName())),a=sortAndDeduplicate(flatMap(i,n=>function extractUnresolvedImportsFromSourceFile(e,t,n,r){return getOrUpdate(r,t.path,()=>{let r;return e.forEachResolvedModule(({resolvedModule:e},t)=>{e&&resolutionExtensionIsTSOrJson(e.extension)||isExternalModuleNameRelative(t)||n.some(e=>e===t)||(r=append(r,parsePackageName(t).packageName))},t),r||w_})}(e,n,o,t)));return null==(r=J)||r.pop(),a}(this.program,this.cachedUnresolvedImportsPerFile)),this.enqueueInstallTypingsForProject(r)):this.lastCachedUnresolvedImportsList=void 0;const o=0===this.projectProgramVersion&&n;return n&&this.projectProgramVersion++,r&&this.markAutoImportProviderAsDirty(),o&&this.getPackageJsonAutoImportProvider(),null==(t=J)||t.pop(),!n}enqueueInstallTypingsForProject(e){const t=this.getTypeAcquisition();if(!t||!t.enable||this.projectService.typingsInstaller===Nf)return;const n=this.typingsCache;(e||!n||function typeAcquisitionChanged(e,t){return e.enable!==t.enable||!setIsEqualTo(e.include,t.include)||!setIsEqualTo(e.exclude,t.exclude)}(t,n.typeAcquisition)||function compilerOptionsChanged(e,t){return rr(e)!==rr(t)}(this.getCompilationSettings(),n.compilerOptions)||function unresolvedImportsChanged(e,t){return e!==t&&!arrayIsEqualTo(e,t)}(this.lastCachedUnresolvedImportsList,n.unresolvedImports))&&(this.typingsCache={compilerOptions:this.getCompilationSettings(),typeAcquisition:t,unresolvedImports:this.lastCachedUnresolvedImportsList},this.projectService.typingsInstaller.enqueueInstallTypingsRequest(this,t,this.lastCachedUnresolvedImportsList))}updateTypingFiles(e,t,n,r){this.typingsCache={compilerOptions:e,typeAcquisition:t,unresolvedImports:n};const i=t&&t.enable?toSorted(r):w_;enumerateInsertsAndDeletes(i,this.typingFiles,getStringComparer(!this.useCaseSensitiveFileNames()),noop,e=>this.detachScriptInfoFromProject(e))&&(this.typingFiles=i,this.resolutionCache.setFilesWithInvalidatedNonRelativeUnresolvedImports(this.cachedUnresolvedImportsPerFile),this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this))}closeWatchingTypingLocations(){this.typingWatchers&&clearMap(this.typingWatchers,closeFileWatcher),this.typingWatchers=void 0}onTypingInstallerWatchInvoke(){this.typingWatchers.isInvoked=!0,this.projectService.updateTypingsForProject({projectName:this.getProjectName(),kind:ps})}watchTypingLocations(e){if(!e)return void(this.typingWatchers.isInvoked=!1);if(!e.length)return void this.closeWatchingTypingLocations();const t=new Map(this.typingWatchers);this.typingWatchers||(this.typingWatchers=new Map),this.typingWatchers.isInvoked=!1;const createProjectWatcher=(e,n)=>{const r=this.toPath(e);if(t.delete(r),!this.typingWatchers.has(r)){const t="FileWatcher"===n?Ya.TypingInstallerLocationFile:Ya.TypingInstallerLocationDirectory;this.typingWatchers.set(r,canWatchDirectoryOrFilePath(r)?"FileWatcher"===n?this.projectService.watchFactory.watchFile(e,()=>this.typingWatchers.isInvoked?this.writeLog("TypingWatchers already invoked"):this.onTypingInstallerWatchInvoke(),2e3,this.projectService.getWatchOptions(this),t,this):this.projectService.watchFactory.watchDirectory(e,e=>this.typingWatchers.isInvoked?this.writeLog("TypingWatchers already invoked"):fileExtensionIs(e,".json")?comparePaths(e,combinePaths(this.projectService.typingsInstaller.globalTypingsCacheLocation,"package.json"),!this.useCaseSensitiveFileNames())?this.writeLog("Ignoring package.json change at global typings location"):void this.onTypingInstallerWatchInvoke():this.writeLog("Ignoring files that are not *.json"),1,this.projectService.getWatchOptions(this),t,this):(this.writeLog(`Skipping watcher creation at ${e}:: ${getDetailWatchInfo(t,this)}`),Xa))}};for(const t of e){const e=getBaseFileName(t);if("package.json"!==e&&"bower.json"!==e){if(containsPath(this.currentDirectory,t,this.currentDirectory,!this.useCaseSensitiveFileNames())){const e=t.indexOf(Ft,this.currentDirectory.length+1);createProjectWatcher(-1!==e?t.substr(0,e):t,"DirectoryWatcher");continue}containsPath(this.projectService.typingsInstaller.globalTypingsCacheLocation,t,this.currentDirectory,!this.useCaseSensitiveFileNames())?createProjectWatcher(this.projectService.typingsInstaller.globalTypingsCacheLocation,"DirectoryWatcher"):createProjectWatcher(t,"DirectoryWatcher")}else createProjectWatcher(t,"FileWatcher")}t.forEach((e,t)=>{e.close(),this.typingWatchers.delete(t)})}getCurrentProgram(){return this.program}removeExistingTypings(e){if(!e.length)return e;const t=getAutomaticTypeDirectiveNames(this.getCompilerOptions(),this);return filter(e,e=>!t.includes(e))}updateGraphWorker(){var e,t;const n=this.languageService.getCurrentProgram();h.assert(n===this.program),h.assert(!this.isClosed(),"Called update graph worker of closed project"),this.writeLog(`Starting updateGraphWorker: Project: ${this.getProjectName()}`);const r=B(),{hasInvalidatedResolutions:i,hasInvalidatedLibResolutions:o}=this.resolutionCache.createHasInvalidatedResolutions(returnFalse,returnFalse);this.hasInvalidatedResolutions=i,this.hasInvalidatedLibResolutions=o,this.resolutionCache.startCachingPerDirectoryResolution(),this.dirty=!1,this.updateFromProjectInProgress=!0,this.program=this.languageService.getProgram(),this.updateFromProjectInProgress=!1,null==(e=J)||e.push(J.Phase.Session,"finishCachingPerDirectoryResolution"),this.resolutionCache.finishCachingPerDirectoryResolution(this.program,n),null==(t=J)||t.pop(),h.assert(void 0===n||void 0!==this.program);let a=!1;if(this.program&&(!n||this.program!==n&&2!==this.program.structureIsReused)){if(a=!0,this.rootFilesMap.forEach((e,t)=>{var n;const r=this.program.getSourceFileByPath(t),i=e.info;r&&(null==(n=e.info)?void 0:n.path)!==r.resolvedPath&&(e.info=this.projectService.getScriptInfo(r.fileName),h.assert(e.info.isAttached(this)),null==i||i.detachFromProject(this))}),updateMissingFilePathsWatch(this.program,this.missingFilesMap||(this.missingFilesMap=new Map),(e,t)=>this.addMissingFileWatcher(e,t)),this.generatedFilesMap){const e=this.compilerOptions.outFile;isGeneratedFileWatcher(this.generatedFilesMap)?e&&this.isValidGeneratedFileWatcher(removeFileExtension(e)+".d.ts",this.generatedFilesMap)||this.clearGeneratedFileWatch():e?this.clearGeneratedFileWatch():this.generatedFilesMap.forEach((e,t)=>{const n=this.program.getSourceFileByPath(t);n&&n.resolvedPath===t&&this.isValidGeneratedFileWatcher(getDeclarationEmitOutputFilePathWorker(n.fileName,this.compilerOptions,this.program),e)||(closeFileWatcherOf(e),this.generatedFilesMap.delete(t))})}this.languageServiceEnabled&&0===this.projectService.serverMode&&this.resolutionCache.updateTypeRootsWatch()}this.projectService.verifyProgram(this),this.exportMapCache&&!this.exportMapCache.isEmpty()&&(this.exportMapCache.releaseSymbols(),this.hasAddedorRemovedFiles||n&&!this.program.structureIsReused?this.exportMapCache.clear():this.changedFilesForExportMapCache&&n&&this.program&&forEachKey(this.changedFilesForExportMapCache,e=>{const t=n.getSourceFileByPath(e),r=this.program.getSourceFileByPath(e);return t&&r?this.exportMapCache.onFileChanged(t,r,!!this.getTypeAcquisition().enable):(this.exportMapCache.clear(),!0)})),this.changedFilesForExportMapCache&&this.changedFilesForExportMapCache.clear(),(this.hasAddedOrRemovedSymlinks||this.program&&!this.program.structureIsReused&&this.getCompilerOptions().preserveSymlinks)&&(this.symlinks=void 0,this.moduleSpecifierCache.clear());const s=this.externalFiles||w_;this.externalFiles=this.getExternalFiles(),enumerateInsertsAndDeletes(this.externalFiles,s,getStringComparer(!this.useCaseSensitiveFileNames()),e=>{const t=this.projectService.getOrCreateScriptInfoNotOpenedByClient(e,this.currentDirectory,this.directoryStructureHost,!1);null==t||t.attachToProject(this)},e=>this.detachScriptInfoFromProject(e));const c=B()-r;return this.sendPerformanceEvent("UpdateGraph",c),this.writeLog(`Finishing updateGraphWorker: Project: ${this.getProjectName()} projectStateVersion: ${this.projectStateVersion} projectProgramVersion: ${this.projectProgramVersion} structureChanged: ${a}${this.program?` structureIsReused:: ${pe[this.program.structureIsReused]}`:""} Elapsed: ${c}ms`),this.projectService.logger.isTestLogger?this.program!==n?this.print(!0,this.hasAddedorRemovedFiles,!0):this.writeLog("Same program as before"):this.hasAddedorRemovedFiles?this.print(!0,!0,!1):this.program!==n&&this.writeLog("Different program with same set of files"),this.projectService.verifyDocumentRegistry(),a}sendPerformanceEvent(e,t){this.projectService.sendPerformanceEvent(e,t)}detachScriptInfoFromProject(e,t){const n=this.projectService.getScriptInfo(e);n&&(n.detachFromProject(this),t||this.resolutionCache.removeResolutionsOfFile(n.path))}addMissingFileWatcher(e,t){var n;if(isConfiguredProject(this)){const t=this.projectService.configFileExistenceInfoCache.get(e);if(null==(n=null==t?void 0:t.config)?void 0:n.projects.has(this.canonicalConfigFilePath))return Xa}const r=this.projectService.watchFactory.watchFile(getNormalizedAbsolutePath(t,this.currentDirectory),(t,n)=>{isConfiguredProject(this)&&this.getCachedDirectoryStructureHost().addOrDeleteFile(t,e,n),0===n&&this.missingFilesMap.has(e)&&(this.missingFilesMap.delete(e),r.close(),this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this))},500,this.projectService.getWatchOptions(this),Ya.MissingFile,this);return r}isWatchedMissingFile(e){return!!this.missingFilesMap&&this.missingFilesMap.has(e)}addGeneratedFileWatch(e,t){if(this.compilerOptions.outFile)this.generatedFilesMap||(this.generatedFilesMap=this.createGeneratedFileWatcher(e));else{const n=this.toPath(t);if(this.generatedFilesMap){if(isGeneratedFileWatcher(this.generatedFilesMap))return void h.fail(`${this.projectName} Expected to not have --out watcher for generated file with options: ${JSON.stringify(this.compilerOptions)}`);if(this.generatedFilesMap.has(n))return}else this.generatedFilesMap=new Map;this.generatedFilesMap.set(n,this.createGeneratedFileWatcher(e))}}createGeneratedFileWatcher(e){return{generatedFilePath:this.toPath(e),watcher:this.projectService.watchFactory.watchFile(e,()=>{this.clearSourceMapperCache(),this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this)},2e3,this.projectService.getWatchOptions(this),Ya.MissingGeneratedFile,this)}}isValidGeneratedFileWatcher(e,t){return this.toPath(e)===t.generatedFilePath}clearGeneratedFileWatch(){this.generatedFilesMap&&(isGeneratedFileWatcher(this.generatedFilesMap)?closeFileWatcherOf(this.generatedFilesMap):clearMap(this.generatedFilesMap,closeFileWatcherOf),this.generatedFilesMap=void 0)}getScriptInfoForNormalizedPath(e){const t=this.projectService.getScriptInfoForPath(this.toPath(e));return t&&!t.isAttached(this)?I_.ThrowProjectDoesNotContainDocument(e,this):t}getScriptInfo(e){return this.projectService.getScriptInfo(e)}filesToString(e){return this.filesToStringWorker(e,!0,!1)}filesToStringWorker(e,t,n){if(this.initialLoadPending)return"\tFiles (0) InitialLoadPending\n";if(!this.program)return"\tFiles (0) NoProgram\n";const r=this.program.getSourceFiles();let i=`\tFiles (${r.length})\n`;if(e){for(const e of r)i+=`\t${e.fileName}${n?` ${e.version} ${JSON.stringify(e.text)}`:""}\n`;t&&(i+="\n\n",explainFiles(this.program,e=>i+=`\t${e}\n`))}return i}print(e,t,n){var r;this.writeLog(`Project '${this.projectName}' (${X_[this.projectKind]})`),this.writeLog(this.filesToStringWorker(e&&this.projectService.logger.hasLevel(3),t&&this.projectService.logger.hasLevel(3),n&&this.projectService.logger.hasLevel(3))),this.writeLog("-----------------------------------------------"),this.autoImportProviderHost&&this.autoImportProviderHost.print(!1,!1,!1),null==(r=this.noDtsResolutionProject)||r.print(!1,!1,!1)}setCompilerOptions(e){var t;if(e){e.allowNonTsExtensions=!0;const n=this.compilerOptions;this.compilerOptions=e,this.setInternalCompilerOptionsForEmittingJsFiles(),null==(t=this.noDtsResolutionProject)||t.setCompilerOptions(this.getCompilerOptionsForNoDtsResolutionProject()),changesAffectModuleResolution(n,e)&&(this.cachedUnresolvedImportsPerFile.clear(),this.lastCachedUnresolvedImportsList=void 0,this.resolutionCache.onChangesAffectModuleResolution(),this.moduleSpecifierCache.clear()),this.markAsDirty()}}setWatchOptions(e){this.watchOptions=e}getWatchOptions(){return this.watchOptions}setTypeAcquisition(e){e&&(this.typeAcquisition=this.removeLocalTypingsFromTypeAcquisition(e))}getTypeAcquisition(){return this.typeAcquisition||{}}getChangesSinceVersion(e,t){var n,r;const i=t?e=>arrayFrom(e.entries(),([e,t])=>({fileName:e,isSourceOfProjectReferenceRedirect:t})):e=>arrayFrom(e.keys());this.initialLoadPending||updateProjectIfDirty(this);const o={projectName:this.getProjectName(),version:this.projectProgramVersion,isInferred:isInferredProject(this),options:this.getCompilationSettings(),languageServiceDisabled:!this.languageServiceEnabled,lastFileExceededProgramSize:this.lastFileExceededProgramSize},a=this.updatedFileNames;if(this.updatedFileNames=void 0,this.lastReportedFileNames&&e===this.lastReportedVersion){if(this.projectProgramVersion===this.lastReportedVersion&&!a)return{info:o,projectErrors:this.getGlobalProjectErrors()};const e=this.lastReportedFileNames,r=(null==(n=this.externalFiles)?void 0:n.map(e=>({fileName:toNormalizedPath(e),isSourceOfProjectReferenceRedirect:!1})))||w_,s=arrayToMap(this.getFileNamesWithRedirectInfo(!!t).concat(r),e=>e.fileName,e=>e.isSourceOfProjectReferenceRedirect),c=new Map,l=new Map,d=a?arrayFrom(a.keys()):[],p=[];return forEachEntry(s,(n,r)=>{e.has(r)?t&&n!==e.get(r)&&p.push({fileName:r,isSourceOfProjectReferenceRedirect:n}):c.set(r,n)}),forEachEntry(e,(e,t)=>{s.has(t)||l.set(t,e)}),this.lastReportedFileNames=s,this.lastReportedVersion=this.projectProgramVersion,{info:o,changes:{added:i(c),removed:i(l),updated:t?d.map(e=>({fileName:e,isSourceOfProjectReferenceRedirect:this.isSourceOfProjectReferenceRedirect(e)})):d,updatedRedirects:t?p:void 0},projectErrors:this.getGlobalProjectErrors()}}{const e=this.getFileNamesWithRedirectInfo(!!t),n=(null==(r=this.externalFiles)?void 0:r.map(e=>({fileName:toNormalizedPath(e),isSourceOfProjectReferenceRedirect:!1})))||w_,i=e.concat(n);return this.lastReportedFileNames=arrayToMap(i,e=>e.fileName,e=>e.isSourceOfProjectReferenceRedirect),this.lastReportedVersion=this.projectProgramVersion,{info:o,files:t?i:i.map(e=>e.fileName),projectErrors:this.getGlobalProjectErrors()}}}removeRoot(e){this.rootFilesMap.delete(e.path)}isSourceOfProjectReferenceRedirect(e){return!!this.program&&this.program.isSourceOfProjectReferenceRedirect(e)}getGlobalPluginSearchPaths(){return[...this.projectService.pluginProbeLocations,combinePaths(this.projectService.getExecutingFilePath(),"../../..")]}enableGlobalPlugins(e){if(!this.projectService.globalPlugins.length)return;const t=this.projectService.host;if(!t.require&&!t.importPlugin)return void this.projectService.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded");const n=this.getGlobalPluginSearchPaths();for(const t of this.projectService.globalPlugins)t&&(e.plugins&&e.plugins.some(e=>e.name===t)||(this.projectService.logger.info(`Loading global plugin ${t}`),this.enablePlugin({name:t,global:!0},n)))}enablePlugin(e,t){this.projectService.requestEnablePlugin(this,e,t)}enableProxy(e,t){try{if("function"!=typeof e)return void this.projectService.logger.info(`Skipped loading plugin ${t.name} because it did not expose a proper factory function`);const n={config:t,project:this,languageService:this.languageService,languageServiceHost:this,serverHost:this.projectService.host,session:this.projectService.session},r=e({typescript:C_}),i=r.create(n);for(const e of Object.keys(this.languageService))e in i||(this.projectService.logger.info(`Plugin activation warning: Missing proxied method ${e} in created LS. Patching.`),i[e]=this.languageService[e]);this.projectService.logger.info("Plugin validation succeeded"),this.languageService=i,this.plugins.push({name:t.name,module:r})}catch(e){this.projectService.logger.info(`Plugin activation failed: ${e}`)}}onPluginConfigurationChanged(e,t){this.plugins.filter(t=>t.name===e).forEach(e=>{e.module.onConfigurationChanged&&e.module.onConfigurationChanged(t)})}refreshDiagnostics(){this.projectService.sendProjectsUpdatedInBackgroundEvent()}getPackageJsonsVisibleToFile(e,t){return 0!==this.projectService.serverMode?w_:this.projectService.getPackageJsonsVisibleToFile(e,this,t)}getNearestAncestorDirectoryWithPackageJson(e){return this.projectService.getNearestAncestorDirectoryWithPackageJson(e,this)}getPackageJsonsForAutoImport(e){return this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory,Ua),e)}getPackageJsonCache(){return this.projectService.packageJsonCache}getCachedExportInfoMap(){return this.exportMapCache||(this.exportMapCache=createCacheableExportInfoMap(this))}clearCachedExportInfoMap(){var e;null==(e=this.exportMapCache)||e.clear()}getModuleSpecifierCache(){return this.moduleSpecifierCache}includePackageJsonAutoImports(){return 0!==this.projectService.includePackageJsonAutoImports()&&this.languageServiceEnabled&&!isInsideNodeModules(this.currentDirectory)&&this.isDefaultProjectForOpenFiles()?this.projectService.includePackageJsonAutoImports():0}getHostForAutoImportProvider(){var e,t;return this.program?{fileExists:this.program.fileExists,directoryExists:this.program.directoryExists,realpath:this.program.realpath||(null==(e=this.projectService.host.realpath)?void 0:e.bind(this.projectService.host)),getCurrentDirectory:this.getCurrentDirectory.bind(this),readFile:this.projectService.host.readFile.bind(this.projectService.host),getDirectories:this.projectService.host.getDirectories.bind(this.projectService.host),trace:null==(t=this.projectService.host.trace)?void 0:t.bind(this.projectService.host),useCaseSensitiveFileNames:this.program.useCaseSensitiveFileNames(),readDirectory:this.projectService.host.readDirectory.bind(this.projectService.host)}:this.projectService.host}getPackageJsonAutoImportProvider(){var e,t,n;if(!1===this.autoImportProviderHost)return;if(0!==this.projectService.serverMode)return void(this.autoImportProviderHost=!1);if(this.autoImportProviderHost)return updateProjectIfDirty(this.autoImportProviderHost),this.autoImportProviderHost.isEmpty()?(this.autoImportProviderHost.close(),void(this.autoImportProviderHost=void 0)):this.autoImportProviderHost.getCurrentProgram();const r=this.includePackageJsonAutoImports();if(r){null==(e=J)||e.push(J.Phase.Session,"getPackageJsonAutoImportProvider");const i=B();if(this.autoImportProviderHost=nf.create(r,this,this.getHostForAutoImportProvider())??!1,this.autoImportProviderHost)return updateProjectIfDirty(this.autoImportProviderHost),this.sendPerformanceEvent("CreatePackageJsonAutoImportProvider",B()-i),null==(t=J)||t.pop(),this.autoImportProviderHost.getCurrentProgram();null==(n=J)||n.pop()}}isDefaultProjectForOpenFiles(){return!!forEachEntry(this.projectService.openFiles,(e,t)=>this.projectService.tryGetDefaultProjectForFile(this.projectService.getScriptInfoForPath(t))===this)}watchNodeModulesForPackageJsonChanges(e){return this.projectService.watchPackageJsonsInNodeModules(e,this)}getIncompleteCompletionsCache(){return this.projectService.getIncompleteCompletionsCache()}getNoDtsResolutionProject(e){return h.assert(0===this.projectService.serverMode),this.noDtsResolutionProject??(this.noDtsResolutionProject=new ef(this)),this.noDtsResolutionProject.rootFile!==e&&(this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(this.noDtsResolutionProject,[e]),this.noDtsResolutionProject.rootFile=e),this.noDtsResolutionProject}runWithTemporaryFileUpdate(e,t,n){var r,i,o,a;const s=this.program,c=h.checkDefined(null==(r=this.program)?void 0:r.getSourceFile(e),"Expected file to be part of program"),l=h.checkDefined(c.getFullText());null==(i=this.getScriptInfo(e))||i.editContent(0,l.length,t),this.updateGraph();try{n(this.program,s,null==(o=this.program)?void 0:o.getSourceFile(e))}finally{null==(a=this.getScriptInfo(e))||a.editContent(0,t.length,l)}}getCompilerOptionsForNoDtsResolutionProject(){return{...this.getCompilerOptions(),noDtsResolution:!0,allowJs:!0,maxNodeModuleJsDepth:3,diagnostics:!1,skipLibCheck:!0,sourceMap:!1,types:l,lib:l,noLib:!0}}};var Z_=class extends Y_{constructor(e,t,n,r,i,o){super(e.newInferredProjectName(),0,e,!1,void 0,t,!1,n,e.host,i),this._isJsInferredProject=!1,this.typeAcquisition=o,this.projectRootPath=r&&e.toCanonicalFileName(r),r||e.useSingleInferredProject||(this.canonicalCurrentDirectory=e.toCanonicalFileName(this.currentDirectory)),this.enableGlobalPlugins(this.getCompilerOptions())}toggleJsInferredProject(e){e!==this._isJsInferredProject&&(this._isJsInferredProject=e,this.setCompilerOptions())}setCompilerOptions(e){if(!e&&!this.getCompilationSettings())return;const t=cloneCompilerOptions(e||this.getCompilationSettings());this._isJsInferredProject&&"number"!=typeof t.maxNodeModuleJsDepth?t.maxNodeModuleJsDepth=2:this._isJsInferredProject||(t.maxNodeModuleJsDepth=void 0),t.allowJs=!0,super.setCompilerOptions(t)}addRoot(e){h.assert(e.isScriptOpen()),this.projectService.startWatchingConfigFilesForInferredProjectRoot(e),!this._isJsInferredProject&&e.isJavaScript()?this.toggleJsInferredProject(!0):this.isOrphan()&&this._isJsInferredProject&&!e.isJavaScript()&&this.toggleJsInferredProject(!1),super.addRoot(e)}removeRoot(e){this.projectService.stopWatchingConfigFilesForScriptInfo(e),super.removeRoot(e),!this.isOrphan()&&this._isJsInferredProject&&e.isJavaScript()&&every(this.getRootScriptInfos(),e=>!e.isJavaScript())&&this.toggleJsInferredProject(!1)}isOrphan(){return!this.hasRoots()}isProjectWithSingleRoot(){return!this.projectRootPath&&!this.projectService.useSingleInferredProject||1===this.getRootScriptInfos().length}close(){forEach(this.getRootScriptInfos(),e=>this.projectService.stopWatchingConfigFilesForScriptInfo(e)),super.close()}getTypeAcquisition(){return this.typeAcquisition||{enable:allRootFilesAreJsOrDts(this),include:l,exclude:l}}},ef=class extends Y_{constructor(e){super(e.projectService.newAuxiliaryProjectName(),4,e.projectService,!1,void 0,e.getCompilerOptionsForNoDtsResolutionProject(),!1,void 0,e.projectService.host,e.currentDirectory)}isOrphan(){return!0}scheduleInvalidateResolutionsOfFailedLookupLocations(){}},tf=class _AutoImportProviderProject extends Y_{constructor(e,t,n){super(e.projectService.newAutoImportProviderProjectName(),3,e.projectService,!1,void 0,n,!1,e.getWatchOptions(),e.projectService.host,e.currentDirectory),this.hostProject=e,this.rootFileNames=t,this.useSourceOfProjectReferenceRedirect=maybeBind(this.hostProject,this.hostProject.useSourceOfProjectReferenceRedirect),this.getParsedCommandLine=maybeBind(this.hostProject,this.hostProject.getParsedCommandLine)}static getRootFileNames(e,t,n,r){var i,o;if(!e)return l;const a=t.getCurrentProgram();if(!a)return l;const s=B();let c,d;const p=combinePaths(t.currentDirectory,Ua),u=t.getPackageJsonsForAutoImport(combinePaths(t.currentDirectory,p));for(const e of u)null==(i=e.dependencies)||i.forEach((e,t)=>addDependency(t)),null==(o=e.peerDependencies)||o.forEach((e,t)=>addDependency(t));let m=0;if(c){const i=t.getSymlinkCache();for(const o of arrayFrom(c.keys())){if(2===e&&m>=this.maxDependencies)return t.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`),l;const s=resolvePackageNameToPackageJson(o,t.currentDirectory,r,n,a.getModuleResolutionCache());if(s){const e=getRootNamesFromPackageJson(s,a,i);if(e){m+=addRootNames(e);continue}}if(!forEach([t.currentDirectory,t.getGlobalTypingsCacheLocation()],e=>{if(e){const t=resolvePackageNameToPackageJson(`@types/${o}`,e,r,n,a.getModuleResolutionCache());if(t){const e=getRootNamesFromPackageJson(t,a,i);return m+=addRootNames(e),!0}}})&&(s&&r.allowJs&&r.maxNodeModuleJsDepth)){const e=getRootNamesFromPackageJson(s,a,i,!0);m+=addRootNames(e)}}}const _=a.getResolvedProjectReferences();let f=0;return(null==_?void 0:_.length)&&t.projectService.getHostPreferences().includeCompletionsForModuleExports&&_.forEach(e=>{if(null==e?void 0:e.commandLine.options.outFile)f+=addRootNames(filterEntrypoints([changeExtension(e.commandLine.options.outFile,".d.ts")]));else if(e){const n=memoize(()=>getCommonSourceDirectoryOfConfig(e.commandLine,!t.useCaseSensitiveFileNames()));f+=addRootNames(filterEntrypoints(mapDefined(e.commandLine.fileNames,r=>isDeclarationFileName(r)||fileExtensionIs(r,".json")||a.getSourceFile(r)?void 0:getOutputDeclarationFileName(r,e.commandLine,!t.useCaseSensitiveFileNames(),n))))}}),(null==d?void 0:d.size)&&t.log(`AutoImportProviderProject: found ${d.size} root files in ${m} dependencies ${f} referenced projects in ${B()-s} ms`),d?arrayFrom(d.values()):l;function addRootNames(e){return(null==e?void 0:e.length)?(d??(d=new Set),e.forEach(e=>d.add(e)),1):0}function addDependency(e){startsWith(e,"@types/")||(c||(c=new Set)).add(e)}function getRootNamesFromPackageJson(e,i,o,a){var s;const c=getEntrypointsFromPackageJsonInfo(e,r,n,i.getModuleResolutionCache(),a);if(c){const r=null==(s=n.realpath)?void 0:s.call(n,e.packageDirectory),i=r?t.toPath(r):void 0,a=i&&i!==t.toPath(e.packageDirectory);return a&&o.setSymlinkedDirectory(e.packageDirectory,{real:ensureTrailingDirectorySeparator(r),realPath:ensureTrailingDirectorySeparator(i)}),filterEntrypoints(c,a?t=>t.replace(e.packageDirectory,r):void 0)}}function filterEntrypoints(e,t){return mapDefined(e,e=>{const n=t?t(e):e;if(!(a.getSourceFile(n)||t&&a.getSourceFile(e)))return n})}}static create(e,t,n){if(0===e)return;const r={...t.getCompilerOptions(),...this.compilerOptionsOverrides},i=this.getRootFileNames(e,t,n,r);return i.length?new _AutoImportProviderProject(t,i,r):void 0}isEmpty(){return!some(this.rootFileNames)}isOrphan(){return!0}updateGraph(){let e=this.rootFileNames;e||(e=_AutoImportProviderProject.getRootFileNames(this.hostProject.includePackageJsonAutoImports(),this.hostProject,this.hostProject.getHostForAutoImportProvider(),this.getCompilationSettings())),this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(this,e),this.rootFileNames=e;const t=this.getCurrentProgram(),n=super.updateGraph();return t&&t!==this.getCurrentProgram()&&this.hostProject.clearCachedExportInfoMap(),n}scheduleInvalidateResolutionsOfFailedLookupLocations(){}hasRoots(){var e;return!!(null==(e=this.rootFileNames)?void 0:e.length)}markAsDirty(){this.rootFileNames=void 0,super.markAsDirty()}getScriptFileNames(){return this.rootFileNames||l}getLanguageService(){throw new Error("AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`.")}onAutoImportProviderSettingsChanged(){throw new Error("AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead.")}onPackageJsonChange(){throw new Error("package.json changes should be notified on an AutoImportProvider's host project")}getHostForAutoImportProvider(){throw new Error("AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead.")}getProjectReferences(){return this.hostProject.getProjectReferences()}includePackageJsonAutoImports(){return 0}getSymlinkCache(){return this.hostProject.getSymlinkCache()}getModuleResolutionCache(){var e;return null==(e=this.hostProject.getCurrentProgram())?void 0:e.getModuleResolutionCache()}};tf.maxDependencies=10,tf.compilerOptionsOverrides={diagnostics:!1,skipLibCheck:!0,sourceMap:!1,types:l,lib:l,noLib:!0};var nf=tf,rf=class extends Y_{constructor(e,t,n,r,i){super(e,1,n,!1,void 0,{},!1,void 0,r,getDirectoryPath(e)),this.canonicalConfigFilePath=t,this.openFileWatchTriggered=new Map,this.initialLoadPending=!0,this.sendLoadingProjectFinish=!1,this.pendingUpdateLevel=2,this.pendingUpdateReason=i}setCompilerHost(e){this.compilerHost=e}getCompilerHost(){return this.compilerHost}useSourceOfProjectReferenceRedirect(){return this.languageServiceEnabled}getParsedCommandLine(e){const t=toNormalizedPath(e),n=this.projectService.toCanonicalFileName(t);let r=this.projectService.configFileExistenceInfoCache.get(n);return r||this.projectService.configFileExistenceInfoCache.set(n,r={exists:this.projectService.host.fileExists(t)}),this.projectService.ensureParsedConfigUptoDate(t,n,r,this),this.languageServiceEnabled&&0===this.projectService.serverMode&&this.projectService.watchWildcards(t,r,this),r.exists?r.config.parsedCommandLine:void 0}onReleaseParsedCommandLine(e){this.releaseParsedConfig(this.projectService.toCanonicalFileName(toNormalizedPath(e)))}releaseParsedConfig(e){this.projectService.stopWatchingWildCards(e,this),this.projectService.releaseParsedConfig(e,this)}updateGraph(){if(this.deferredClose)return!1;const e=this.dirty;this.initialLoadPending=!1;const t=this.pendingUpdateLevel;let n;switch(this.pendingUpdateLevel=0,t){case 1:this.openFileWatchTriggered.clear(),n=this.projectService.reloadFileNamesOfConfiguredProject(this);break;case 2:this.openFileWatchTriggered.clear();const e=h.checkDefined(this.pendingUpdateReason);this.projectService.reloadConfiguredProject(this,e),n=!0;break;default:n=super.updateGraph()}return this.compilerHost=void 0,this.projectService.sendProjectLoadingFinishEvent(this),this.projectService.sendProjectTelemetry(this),2!==t&&(!n||e&&this.triggerFileForConfigFileDiag&&2!==this.getCurrentProgram().structureIsReused)?this.triggerFileForConfigFileDiag||this.projectService.sendConfigFileDiagEvent(this,void 0,!1):this.triggerFileForConfigFileDiag=void 0,n}getCachedDirectoryStructureHost(){return this.directoryStructureHost}getConfigFilePath(){return this.getProjectName()}getProjectReferences(){return this.projectReferences}updateReferences(e){this.projectReferences=e,this.potentialProjectReferences=void 0}setPotentialProjectReference(e){h.assert(this.initialLoadPending),(this.potentialProjectReferences||(this.potentialProjectReferences=new Set)).add(e)}getRedirectFromSourceFile(e){const t=this.getCurrentProgram();return t&&t.getRedirectFromSourceFile(e)}forEachResolvedProjectReference(e){var t;return null==(t=this.getCurrentProgram())?void 0:t.forEachResolvedProjectReference(e)}enablePluginsWithOptions(e){var t;if(this.plugins.length=0,!(null==(t=e.plugins)?void 0:t.length)&&!this.projectService.globalPlugins.length)return;const n=this.projectService.host;if(!n.require&&!n.importPlugin)return void this.projectService.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded");const r=this.getGlobalPluginSearchPaths();if(this.projectService.allowLocalPluginLoads){const e=getDirectoryPath(this.canonicalConfigFilePath);this.projectService.logger.info(`Local plugin loading enabled; adding ${e} to search paths`),r.unshift(e)}if(e.plugins)for(const t of e.plugins)this.enablePlugin(t,r);return this.enableGlobalPlugins(e)}getGlobalProjectErrors(){return filter(this.projectErrors,e=>!e.file)||w_}getAllProjectErrors(){return this.projectErrors||w_}setProjectErrors(e){this.projectErrors=e}close(){this.projectService.configFileExistenceInfoCache.forEach((e,t)=>this.releaseParsedConfig(t)),this.projectErrors=void 0,this.openFileWatchTriggered.clear(),this.compilerHost=void 0,super.close()}markAsDirty(){this.deferredClose||super.markAsDirty()}isOrphan(){return!!this.deferredClose}getEffectiveTypeRoots(){return getEffectiveTypeRoots(this.getCompilationSettings(),this)||[]}updateErrorOnNoInputFiles(e){this.parsedCommandLine=e,updateErrorForNoInputFiles(e.fileNames,this.getConfigFilePath(),this.getCompilerOptions().configFile.configFileSpecs,this.projectErrors,canJsonReportNoInputFiles(e.raw))}},of=class extends Y_{constructor(e,t,n,r,i,o,a){super(e,2,t,!0,r,n,i,a,t.host,getDirectoryPath(o||normalizeSlashes(e))),this.externalProjectName=e,this.compileOnSaveEnabled=i,this.excludedFiles=[],this.enableGlobalPlugins(this.getCompilerOptions())}updateGraph(){const e=super.updateGraph();return this.projectService.sendProjectTelemetry(this),e}getExcludedFiles(){return this.excludedFiles}};function isInferredProject(e){return 0===e.projectKind}function isConfiguredProject(e){return 1===e.projectKind}function isExternalProject(e){return 2===e.projectKind}function isBackgroundProject(e){return 3===e.projectKind||4===e.projectKind}function isProjectDeferredClose(e){return isConfiguredProject(e)&&!!e.deferredClose}var af=20971520,sf=4194304,cf="projectsUpdatedInBackground",lf="projectLoadingStart",df="projectLoadingFinish",pf="largeFileReferenced",uf="configFileDiag",mf="projectLanguageServiceState",_f="projectInfo",ff="openFileInfo",gf="createFileWatcher",yf="createDirectoryWatcher",hf="closeFileWatcher",Tf="*ensureProjectForOpenFiles*";function prepareConvertersForEnumLikeCompilerOptions(e){const t=new Map;for(const n of e)if("object"==typeof n.type){const e=n.type;e.forEach(e=>{h.assert("number"==typeof e)}),t.set(n.name,e)}return t}var Sf=prepareConvertersForEnumLikeCompilerOptions(Qi),xf=prepareConvertersForEnumLikeCompilerOptions(qi),vf=new Map(Object.entries({none:0,block:1,smart:2})),bf={jquery:{match:/jquery(-[\d.]+)?(\.intellisense)?(\.min)?\.js$/i,types:["jquery"]},WinJS:{match:/^(.*\/winjs-[.\d]+)\/js\/base\.js$/i,exclude:[["^",1,"/.*"]],types:["winjs"]},Kendo:{match:/^(.*\/kendo(-ui)?)\/kendo\.all(\.min)?\.js$/i,exclude:[["^",1,"/.*"]],types:["kendo-ui"]},"Office Nuget":{match:/^(.*\/office\/1)\/excel-\d+\.debug\.js$/i,exclude:[["^",1,"/.*"]],types:["office"]},References:{match:/^(.*\/_references\.js)$/i,exclude:[["^",1,"$"]]}};function convertFormatOptions(e){return isString(e.indentStyle)&&(e.indentStyle=vf.get(e.indentStyle.toLowerCase()),h.assert(void 0!==e.indentStyle)),e}function convertCompilerOptions(e){return Sf.forEach((t,n)=>{const r=e[n];isString(r)&&(e[n]=t.get(r.toLowerCase()))}),e}function convertWatchOptions(e,t){let n,r;return qi.forEach(i=>{const o=e[i.name];if(void 0===o)return;const a=xf.get(i.name);(n||(n={}))[i.name]=a?isString(o)?a.get(o.toLowerCase()):o:convertJsonOption(i,o,t||"",r||(r=[]))}),n&&{watchOptions:n,errors:r}}function convertTypeAcquisition(e){let t;return uo.forEach(n=>{const r=e[n.name];void 0!==r&&((t||(t={}))[n.name]=r)}),t}function tryConvertScriptKindName(e){return isString(e)?convertScriptKindName(e):e}function convertScriptKindName(e){switch(e){case"JS":return 1;case"JSX":return 2;case"TS":return 3;case"TSX":return 4;default:return 0}}function convertUserPreferences(e){const{lazyConfiguredProjectsFromExternalProject:t,...n}=e;return n}var Cf={getFileName:e=>e,getScriptKind:(e,t)=>{let n;if(t){const r=getAnyExtensionFromPath(e);r&&some(t,e=>e.extension===r&&(n=e.scriptKind,!0))}return n},hasMixedContent:(e,t)=>some(t,t=>t.isMixedContent&&fileExtensionIs(e,t.extension))},Ef={getFileName:e=>e.fileName,getScriptKind:e=>tryConvertScriptKindName(e.scriptKind),hasMixedContent:e=>!!e.hasMixedContent};function findProjectByName(e,t){for(const n of t)if(n.getProjectName()===e)return n}var Nf={isKnownTypesPackageName:returnFalse,installPackage:notImplemented,enqueueInstallTypingsRequest:noop,attach:noop,onProjectClosed:noop,globalTypingsCacheLocation:void 0},kf={close:noop};function getConfigFileNameFromCache(e,t){if(!t)return;const n=t.get(e.path);return void 0!==n?isAncestorConfigFileInfo(e)?n&&!isString(n)?n.get(e.fileName):void 0:isString(n)||!n?n:n.get(!1):void 0}function isOpenScriptInfo(e){return!!e.containingProjects}function isAncestorConfigFileInfo(e){return!!e.configFileInfo}var Ff=(e=>(e[e.FindOptimized=0]="FindOptimized",e[e.Find=1]="Find",e[e.CreateReplayOptimized=2]="CreateReplayOptimized",e[e.CreateReplay=3]="CreateReplay",e[e.CreateOptimized=4]="CreateOptimized",e[e.Create=5]="Create",e[e.ReloadOptimized=6]="ReloadOptimized",e[e.Reload=7]="Reload",e))(Ff||{});function toConfiguredProjectLoadOptimized(e){return e-1}function forEachAncestorProjectLoad(e,t,n,r,i,o,a,s,c){for(var l;;){if(t.parsedCommandLine&&(s&&!t.parsedCommandLine.options.composite||t.parsedCommandLine.options.disableSolutionSearching))return;const d=t.projectService.getConfigFileNameForFile({fileName:t.getConfigFilePath(),path:e.path,configFileInfo:!0,isForDefaultProject:!s},r<=3);if(!d)return;const p=t.projectService.findCreateOrReloadConfiguredProject(d,r,i,o,s?void 0:e.fileName,a,s,c);if(!p)return;!p.project.parsedCommandLine&&(null==(l=t.parsedCommandLine)?void 0:l.options.composite)&&p.project.setPotentialProjectReference(t.canonicalConfigFilePath);const u=n(p);if(u)return u;t=p.project}}function forEachResolvedProjectReferenceProjectLoad(e,t,n,r,i,o,a,s){const c=t.options.disableReferencedProjectLoad?0:r;let l;return forEach(t.projectReferences,t=>{var d;const p=toNormalizedPath(resolveProjectReferencePath(t)),u=e.projectService.toCanonicalFileName(p),m=null==s?void 0:s.get(u);if(void 0!==m&&m>=c)return;const _=e.projectService.configFileExistenceInfoCache.get(u);let f=0===c?(null==_?void 0:_.exists)||(null==(d=e.resolvedChildConfigs)?void 0:d.has(u))?_.config.parsedCommandLine:void 0:e.getParsedCommandLine(p);if(f&&c!==r&&c>2&&(f=e.getParsedCommandLine(p)),!f)return;const g=e.projectService.findConfiguredProjectByProjectName(p,o);if(2!==c||_||g){switch(c){case 6:g&&g.projectService.reloadConfiguredProjectOptimized(g,i,a);case 4:(e.resolvedChildConfigs??(e.resolvedChildConfigs=new Set)).add(u);case 2:case 0:if(g||0!==c){const t=n(_??e.projectService.configFileExistenceInfoCache.get(u),g,p,i,e,u);if(t)return t}break;default:h.assertNever(c)}(s??(s=new Map)).set(u,c),(l??(l=[])).push(f)}})||forEach(l,t=>t.projectReferences&&forEachResolvedProjectReferenceProjectLoad(e,t,n,c,i,o,a,s))}function updateProjectFoundUsingFind(e,t,n,r,i){let o,a=!1;switch(t){case 2:case 3:useConfigFileExistenceInfoForOptimizedLoading(e)&&(o=e.projectService.configFileExistenceInfoCache.get(e.canonicalConfigFilePath));break;case 4:if(o=configFileExistenceInfoForOptimizedLoading(e),o)break;case 5:a=function updateConfiguredProject(e,t){if(t){if(updateWithTriggerFile(e,t,!1))return!0}else updateProjectIfDirty(e);return!1}(e,n);break;case 6:if(e.projectService.reloadConfiguredProjectOptimized(e,r,i),o=configFileExistenceInfoForOptimizedLoading(e),o)break;case 7:a=e.projectService.reloadConfiguredProjectClearingSemanticCache(e,r,i);break;case 0:case 1:break;default:h.assertNever(t)}return{project:e,sentConfigFileDiag:a,configFileExistenceInfo:o,reason:r}}function forEachPotentialProjectReference(e,t){return e.initialLoadPending?(e.potentialProjectReferences&&forEachKey(e.potentialProjectReferences,t))??(e.resolvedChildConfigs&&forEachKey(e.resolvedChildConfigs,t)):void 0}function callbackRefProject(e,t,n){const r=n&&e.projectService.configuredProjects.get(n);return r&&t(r)}function forEachReferencedProject(e,t){return function forEachAnyProjectReferenceKind(e,t,n,r){return e.getCurrentProgram()?e.forEachResolvedProjectReference(t):e.initialLoadPending?forEachPotentialProjectReference(e,r):forEach(e.getProjectReferences(),n)}(e,n=>callbackRefProject(e,t,n.sourceFile.path),n=>callbackRefProject(e,t,e.toPath(resolveProjectReferencePath(n))),n=>callbackRefProject(e,t,n))}function getDetailWatchInfo(e,t){return`${isString(t)?`Config: ${t} `:t?`Project: ${t.getProjectName()} `:""}WatchType: ${e}`}function isScriptInfoWatchedFromNodeModules(e){return!e.isScriptOpen()&&void 0!==e.mTime}function updateProjectIfDirty(e){return e.invalidateResolutionsOfFailedLookupLocations(),e.dirty&&!e.updateGraph()}function updateWithTriggerFile(e,t,n){if(!n&&(e.invalidateResolutionsOfFailedLookupLocations(),!e.dirty))return!1;e.triggerFileForConfigFileDiag=t;const r=e.pendingUpdateLevel;if(e.updateGraph(),!e.triggerFileForConfigFileDiag&&!n)return 2===r;const i=e.projectService.sendConfigFileDiagEvent(e,t,n);return e.triggerFileForConfigFileDiag=void 0,i}function configFileExistenceInfoForOptimizedLoading(e){const t=toNormalizedPath(e.getConfigFilePath()),n=e.projectService.ensureParsedConfigUptoDate(t,e.canonicalConfigFilePath,e.projectService.configFileExistenceInfoCache.get(e.canonicalConfigFilePath),e),r=n.config.parsedCommandLine;if(e.parsedCommandLine=r,e.resolvedChildConfigs=void 0,e.updateReferences(r.projectReferences),useConfigFileExistenceInfoForOptimizedLoading(e))return n}function useConfigFileExistenceInfoForOptimizedLoading(e){return!(!e.parsedCommandLine||!e.parsedCommandLine.options.composite&&!isSolutionConfig(e.parsedCommandLine))}function reloadReason(e){return`User requested reload projects: ${e}`}function setProjectOptionsUsed(e){isConfiguredProject(e)&&(e.projectOptions=!0)}function createProjectNameFactoryWithCounter(e){let t=1;return()=>e(t++)}function getHostWatcherMap(){return{idToCallbacks:new Map,pathToId:new Map}}function getCanUseWatchEvents(e,t){return!!t&&!!e.eventHandler&&!!e.session}function createWatchFactoryHostUsingWatchEvents(e,t){if(!getCanUseWatchEvents(e,t))return;const n=getHostWatcherMap(),r=getHostWatcherMap(),i=getHostWatcherMap();let o=1;return e.session.addProtocolHandler("watchChange",e=>(function onWatchChange(e){isArray(e)?e.forEach(onWatchChangeRequestArgs):onWatchChangeRequestArgs(e)}(e.arguments),{responseRequired:!1})),{watchFile:function watchFile2(e,t){return getOrCreateFileWatcher(n,e,t,t=>({eventName:gf,data:{id:t,path:e}}))},watchDirectory:function watchDirectory(e,t,n){return getOrCreateFileWatcher(n?i:r,e,t,t=>({eventName:yf,data:{id:t,path:e,recursive:!!n,ignoreUpdate:!e.endsWith("/node_modules")||void 0}}))},getCurrentDirectory:()=>e.host.getCurrentDirectory(),useCaseSensitiveFileNames:e.host.useCaseSensitiveFileNames};function getOrCreateFileWatcher({pathToId:t,idToCallbacks:n},r,i,a){const s=e.toPath(r);let c=t.get(s);c||t.set(s,c=o++);let l=n.get(c);return l||(n.set(c,l=new Set),e.eventHandler(a(c))),l.add(i),{close(){const r=n.get(c);(null==r?void 0:r.delete(i))&&(r.size||(n.delete(c),t.delete(s),e.eventHandler({eventName:hf,data:{id:c}})))}}}function onWatchChangeRequestArgs({id:e,created:t,deleted:n,updated:r}){onWatchEventType(e,t,0),onWatchEventType(e,n,2),onWatchEventType(e,r,1)}function onWatchEventType(e,t,o){(null==t?void 0:t.length)&&(forEachCallback(n,e,t,(e,t)=>e(t,o)),forEachCallback(r,e,t,(e,t)=>e(t)),forEachCallback(i,e,t,(e,t)=>e(t)))}function forEachCallback(e,t,n,r){var i;null==(i=e.idToCallbacks.get(t))||i.forEach(e=>{n.forEach(t=>r(e,normalizeSlashes(t)))})}}var Pf=class _ProjectService{constructor(e){var t;this.filenameToScriptInfo=new Map,this.nodeModulesWatchers=new Map,this.filenameToScriptInfoVersion=new Map,this.allJsFilesForOpenFileTelemetry=new Set,this.externalProjectToConfiguredProjectMap=new Map,this.externalProjects=[],this.inferredProjects=[],this.configuredProjects=new Map,this.newInferredProjectName=createProjectNameFactoryWithCounter(makeInferredProjectName),this.newAutoImportProviderProjectName=createProjectNameFactoryWithCounter(makeAutoImportProviderProjectName),this.newAuxiliaryProjectName=createProjectNameFactoryWithCounter(makeAuxiliaryProjectName),this.openFiles=new Map,this.configFileForOpenFiles=new Map,this.rootOfInferredProjects=new Set,this.openFilesWithNonRootedDiskPath=new Map,this.compilerOptionsForInferredProjectsPerProjectRoot=new Map,this.watchOptionsForInferredProjectsPerProjectRoot=new Map,this.typeAcquisitionForInferredProjectsPerProjectRoot=new Map,this.projectToSizeMap=new Map,this.configFileExistenceInfoCache=new Map,this.safelist=bf,this.legacySafelist=new Map,this.pendingProjectUpdates=new Map,this.pendingEnsureProjectForOpenFiles=!1,this.seenProjects=new Map,this.sharedExtendedConfigFileWatchers=new Map,this.extendedConfigCache=new Map,this.baseline=noop,this.verifyDocumentRegistry=noop,this.verifyProgram=noop,this.onProjectCreation=noop,this.host=e.host,this.logger=e.logger,this.cancellationToken=e.cancellationToken,this.useSingleInferredProject=e.useSingleInferredProject,this.useInferredProjectPerProjectRoot=e.useInferredProjectPerProjectRoot,this.typingsInstaller=e.typingsInstaller||Nf,this.throttleWaitMilliseconds=e.throttleWaitMilliseconds,this.eventHandler=e.eventHandler,this.suppressDiagnosticEvents=e.suppressDiagnosticEvents,this.globalPlugins=e.globalPlugins||w_,this.pluginProbeLocations=e.pluginProbeLocations||w_,this.allowLocalPluginLoads=!!e.allowLocalPluginLoads,this.typesMapLocation=void 0===e.typesMapLocation?combinePaths(getDirectoryPath(this.getExecutingFilePath()),"typesMap.json"):e.typesMapLocation,this.session=e.session,this.jsDocParsingMode=e.jsDocParsingMode,void 0!==e.serverMode?this.serverMode=e.serverMode:this.serverMode=0,this.host.realpath&&(this.realpathToScriptInfos=createMultiMap()),this.currentDirectory=toNormalizedPath(this.host.getCurrentDirectory()),this.toCanonicalFileName=createGetCanonicalFileName(this.host.useCaseSensitiveFileNames),this.globalCacheLocationDirectoryPath=this.typingsInstaller.globalTypingsCacheLocation?ensureTrailingDirectorySeparator(this.toPath(this.typingsInstaller.globalTypingsCacheLocation)):void 0,this.throttledOperations=new M_(this.host,this.logger),this.logger.info(`currentDirectory:: ${this.host.getCurrentDirectory()} useCaseSensitiveFileNames:: ${this.host.useCaseSensitiveFileNames}`),this.logger.info(`libs Location:: ${getDirectoryPath(this.host.getExecutingFilePath())}`),this.logger.info(`globalTypingsCacheLocation:: ${this.typingsInstaller.globalTypingsCacheLocation}`),this.typesMapLocation?this.loadTypesMap():this.logger.info("No types map provided; using the default"),this.typingsInstaller.attach(this),this.hostConfiguration={formatCodeOptions:getDefaultFormatCodeSettings(this.host.newLine),preferences:Es,hostInfo:"Unknown host",extraFileExtensions:[]},this.documentRegistry=createDocumentRegistryInternal(this.host.useCaseSensitiveFileNames,this.currentDirectory,this.jsDocParsingMode,this);const n=this.logger.hasLevel(3)?2:this.logger.loggingEnabled()?1:0,r=0!==n?e=>this.logger.info(e):noop;this.packageJsonCache=createPackageJsonCache(this),this.watchFactory=0!==this.serverMode?{watchFile:returnNoopFileWatcher,watchDirectory:returnNoopFileWatcher}:getWatchFactory(createWatchFactoryHostUsingWatchEvents(this,e.canUseWatchEvents)||this.host,n,r,getDetailWatchInfo),this.canUseWatchEvents=getCanUseWatchEvents(this,e.canUseWatchEvents),null==(t=e.incrementalVerifier)||t.call(e,this)}toPath(e){return toPath(e,this.currentDirectory,this.toCanonicalFileName)}getExecutingFilePath(){return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath())}getNormalizedAbsolutePath(e){return getNormalizedAbsolutePath(e,this.host.getCurrentDirectory())}setDocument(e,t,n){h.checkDefined(this.getScriptInfoForPath(t)).cacheSourceFile={key:e,sourceFile:n}}getDocument(e,t){const n=this.getScriptInfoForPath(t);return n&&n.cacheSourceFile&&n.cacheSourceFile.key===e?n.cacheSourceFile.sourceFile:void 0}ensureInferredProjectsUpToDate_TestOnly(){this.ensureProjectStructuresUptoDate()}getCompilerOptionsForInferredProjects(){return this.compilerOptionsForInferredProjects}onUpdateLanguageServiceStateForProject(e,t){if(!this.eventHandler)return;const n={eventName:mf,data:{project:e,languageServiceEnabled:t}};this.eventHandler(n)}loadTypesMap(){try{const e=this.host.readFile(this.typesMapLocation);if(void 0===e)return void this.logger.info(`Provided types map file "${this.typesMapLocation}" doesn't exist`);const t=JSON.parse(e);for(const e of Object.keys(t.typesMap))t.typesMap[e].match=new RegExp(t.typesMap[e].match,"i");this.safelist=t.typesMap;for(const e in t.simpleMap)hasProperty(t.simpleMap,e)&&this.legacySafelist.set(e,t.simpleMap[e].toLowerCase())}catch(e){this.logger.info(`Error loading types map: ${e}`),this.safelist=bf,this.legacySafelist.clear()}}updateTypingsForProject(e){const t=this.findProject(e.projectName);if(t)switch(e.kind){case ds:return void t.updateTypingFiles(e.compilerOptions,e.typeAcquisition,e.unresolvedImports,e.typings);case ps:return void t.enqueueInstallTypingsForProject(!0)}}watchTypingLocations(e){var t;null==(t=this.findProject(e.projectName))||t.watchTypingLocations(e.files)}delayEnsureProjectForOpenFiles(){this.openFiles.size&&(this.pendingEnsureProjectForOpenFiles=!0,this.throttledOperations.schedule(Tf,2500,()=>{0!==this.pendingProjectUpdates.size?this.delayEnsureProjectForOpenFiles():this.pendingEnsureProjectForOpenFiles&&(this.ensureProjectForOpenFiles(),this.sendProjectsUpdatedInBackgroundEvent())}))}delayUpdateProjectGraph(e){if(isProjectDeferredClose(e))return;if(e.markAsDirty(),isBackgroundProject(e))return;const t=e.getProjectName();this.pendingProjectUpdates.set(t,e),this.throttledOperations.schedule(t,250,()=>{this.pendingProjectUpdates.delete(t)&&updateProjectIfDirty(e)})}hasPendingProjectUpdate(e){return this.pendingProjectUpdates.has(e.getProjectName())}sendProjectsUpdatedInBackgroundEvent(){if(!this.eventHandler)return;const e={eventName:cf,data:{openFiles:arrayFrom(this.openFiles.keys(),e=>this.getScriptInfoForPath(e).fileName)}};this.eventHandler(e)}sendLargeFileReferencedEvent(e,t){if(!this.eventHandler)return;const n={eventName:pf,data:{file:e,fileSize:t,maxFileSize:sf}};this.eventHandler(n)}sendProjectLoadingStartEvent(e,t){if(!this.eventHandler)return;e.sendLoadingProjectFinish=!0;const n={eventName:lf,data:{project:e,reason:t}};this.eventHandler(n)}sendProjectLoadingFinishEvent(e){if(!this.eventHandler||!e.sendLoadingProjectFinish)return;e.sendLoadingProjectFinish=!1;const t={eventName:df,data:{project:e}};this.eventHandler(t)}sendPerformanceEvent(e,t){this.performanceEventHandler&&this.performanceEventHandler({kind:e,durationMs:t})}delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(e){this.delayUpdateProjectGraph(e),this.delayEnsureProjectForOpenFiles()}delayUpdateProjectGraphs(e,t){if(e.length){for(const n of e)t&&n.clearSourceMapperCache(),this.delayUpdateProjectGraph(n);this.delayEnsureProjectForOpenFiles()}}setCompilerOptionsForInferredProjects(e,t){h.assert(void 0===t||this.useInferredProjectPerProjectRoot,"Setting compiler options per project root path is only supported when useInferredProjectPerProjectRoot is enabled");const n=convertCompilerOptions(e),r=convertWatchOptions(e,t),i=convertTypeAcquisition(e);n.allowNonTsExtensions=!0;const o=t&&this.toCanonicalFileName(t);o?(this.compilerOptionsForInferredProjectsPerProjectRoot.set(o,n),this.watchOptionsForInferredProjectsPerProjectRoot.set(o,r||!1),this.typeAcquisitionForInferredProjectsPerProjectRoot.set(o,i)):(this.compilerOptionsForInferredProjects=n,this.watchOptionsForInferredProjects=r,this.typeAcquisitionForInferredProjects=i);for(const e of this.inferredProjects)(o?e.projectRootPath!==o:e.projectRootPath&&this.compilerOptionsForInferredProjectsPerProjectRoot.has(e.projectRootPath))||(e.setCompilerOptions(n),e.setTypeAcquisition(i),e.setWatchOptions(null==r?void 0:r.watchOptions),e.setProjectErrors(null==r?void 0:r.errors),e.compileOnSaveEnabled=n.compileOnSave,e.markAsDirty(),this.delayUpdateProjectGraph(e));this.delayEnsureProjectForOpenFiles()}findProject(e){if(void 0!==e)return isInferredProjectName(e)?findProjectByName(e,this.inferredProjects):this.findExternalProjectByProjectName(e)||this.findConfiguredProjectByProjectName(toNormalizedPath(e))}forEachProject(e){this.externalProjects.forEach(e),this.configuredProjects.forEach(e),this.inferredProjects.forEach(e)}forEachEnabledProject(e){this.forEachProject(t=>{!t.isOrphan()&&t.languageServiceEnabled&&e(t)})}getDefaultProjectForFile(e,t){return t?this.ensureDefaultProjectForFile(e):this.tryGetDefaultProjectForFile(e)}tryGetDefaultProjectForFile(e){const t=isString(e)?this.getScriptInfoForNormalizedPath(e):e;return t&&!t.isOrphan()?t.getDefaultProject():void 0}tryGetDefaultProjectForEnsuringConfiguredProjectForFile(e){var t;const n=isString(e)?this.getScriptInfoForNormalizedPath(e):e;if(n)return(null==(t=this.pendingOpenFileProjectUpdates)?void 0:t.delete(n.path))&&(this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(n,5),n.isOrphan()&&this.assignOrphanScriptInfoToInferredProject(n,this.openFiles.get(n.path))),this.tryGetDefaultProjectForFile(n)}ensureDefaultProjectForFile(e){return this.tryGetDefaultProjectForEnsuringConfiguredProjectForFile(e)||this.doEnsureDefaultProjectForFile(e)}doEnsureDefaultProjectForFile(e){this.ensureProjectStructuresUptoDate();const t=isString(e)?this.getScriptInfoForNormalizedPath(e):e;return t?t.getDefaultProject():(this.logErrorForScriptInfoNotFound(isString(e)?e:e.fileName),I_.ThrowNoProject())}getScriptInfoEnsuringProjectsUptoDate(e){return this.ensureProjectStructuresUptoDate(),this.getScriptInfo(e)}ensureProjectStructuresUptoDate(){let e=this.pendingEnsureProjectForOpenFiles;this.pendingProjectUpdates.clear();const updateGraph=t=>{e=updateProjectIfDirty(t)||e};this.externalProjects.forEach(updateGraph),this.configuredProjects.forEach(updateGraph),this.inferredProjects.forEach(updateGraph),e&&this.ensureProjectForOpenFiles()}getFormatCodeOptions(e){const t=this.getScriptInfoForNormalizedPath(e);return t&&t.getFormatCodeSettings()||this.hostConfiguration.formatCodeOptions}getPreferences(e){const t=this.getScriptInfoForNormalizedPath(e);return{...this.hostConfiguration.preferences,...t&&t.getPreferences()}}getHostFormatCodeOptions(){return this.hostConfiguration.formatCodeOptions}getHostPreferences(){return this.hostConfiguration.preferences}onSourceFileChanged(e,t){h.assert(!e.isScriptOpen()),2===t?this.handleDeletedFile(e,!0):(e.deferredDelete&&(e.deferredDelete=void 0),e.delayReloadNonMixedContentFile(),this.delayUpdateProjectGraphs(e.containingProjects,!1),this.handleSourceMapProjects(e))}handleSourceMapProjects(e){if(e.sourceMapFilePath)if(isString(e.sourceMapFilePath)){const t=this.getScriptInfoForPath(e.sourceMapFilePath);this.delayUpdateSourceInfoProjects(null==t?void 0:t.sourceInfos)}else this.delayUpdateSourceInfoProjects(e.sourceMapFilePath.sourceInfos);this.delayUpdateSourceInfoProjects(e.sourceInfos),e.declarationInfoPath&&this.delayUpdateProjectsOfScriptInfoPath(e.declarationInfoPath)}delayUpdateSourceInfoProjects(e){e&&e.forEach((e,t)=>this.delayUpdateProjectsOfScriptInfoPath(t))}delayUpdateProjectsOfScriptInfoPath(e){const t=this.getScriptInfoForPath(e);t&&this.delayUpdateProjectGraphs(t.containingProjects,!0)}handleDeletedFile(e,t){h.assert(!e.isScriptOpen()),this.delayUpdateProjectGraphs(e.containingProjects,!1),this.handleSourceMapProjects(e),e.detachAllProjects(),t?(e.delayReloadNonMixedContentFile(),e.deferredDelete=!0):this.deleteScriptInfo(e)}watchWildcardDirectory(e,t,n,r){let i=this.watchFactory.watchDirectory(e,t=>this.onWildCardDirectoryWatcherInvoke(e,n,r,o,t),t,this.getWatchOptionsFromProjectWatchOptions(r.parsedCommandLine.watchOptions,getDirectoryPath(n)),Ya.WildcardDirectory,n);const o={packageJsonWatches:void 0,close(){var e;i&&(i.close(),i=void 0,null==(e=o.packageJsonWatches)||e.forEach(e=>{e.projects.delete(o),e.close()}),o.packageJsonWatches=void 0)}};return o}onWildCardDirectoryWatcherInvoke(e,t,n,r,i){const o=this.toPath(i),a=n.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(i,o);if("package.json"===getBaseFileName(o)&&!isInsideNodeModules(o)&&(a&&a.fileExists||!a&&this.host.fileExists(i))){const e=this.getNormalizedAbsolutePath(i);this.logger.info(`Config: ${t} Detected new package.json: ${e}`),this.packageJsonCache.addOrUpdate(e,o),this.watchPackageJsonFile(e,o,r)}(null==a?void 0:a.fileExists)||this.sendSourceFileChange(o);const s=this.findConfiguredProjectByProjectName(t);isIgnoredFileFromWildCardWatching({watchedDirPath:this.toPath(e),fileOrDirectory:i,fileOrDirectoryPath:o,configFileName:t,extraFileExtensions:this.hostConfiguration.extraFileExtensions,currentDirectory:this.currentDirectory,options:n.parsedCommandLine.options,program:(null==s?void 0:s.getCurrentProgram())||n.parsedCommandLine.fileNames,useCaseSensitiveFileNames:this.host.useCaseSensitiveFileNames,writeLog:e=>this.logger.info(e),toPath:e=>this.toPath(e),getScriptKind:s?e=>s.getScriptKind(e):void 0})||(2!==n.updateLevel&&(n.updateLevel=1),n.projects.forEach((e,n)=>{var r;if(!e)return;const i=this.getConfiguredProjectByCanonicalConfigFilePath(n);if(!i)return;if(s!==i&&this.getHostPreferences().includeCompletionsForModuleExports){const e=this.toPath(t);find(null==(r=i.getCurrentProgram())?void 0:r.getResolvedProjectReferences(),t=>(null==t?void 0:t.sourceFile.path)===e)&&i.markAutoImportProviderAsDirty()}const a=s===i?1:0;if(!(i.pendingUpdateLevel>a))if(this.openFiles.has(o)){if(h.checkDefined(this.getScriptInfoForPath(o)).isAttached(i)){const e=Math.max(a,i.openFileWatchTriggered.get(o)||0);i.openFileWatchTriggered.set(o,e)}else i.pendingUpdateLevel=a,this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(i)}else i.pendingUpdateLevel=a,this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(i)}))}delayUpdateProjectsFromParsedConfigOnConfigFileChange(e,t){const n=this.configFileExistenceInfoCache.get(e);if(!(null==n?void 0:n.config))return!1;let r=!1;return n.config.updateLevel=2,n.config.cachedDirectoryStructureHost.clearCache(),n.config.projects.forEach((n,i)=>{var o,a,s;const c=this.getConfiguredProjectByCanonicalConfigFilePath(i);if(c)if(r=!0,i===e){if(c.initialLoadPending)return;c.pendingUpdateLevel=2,c.pendingUpdateReason=t,this.delayUpdateProjectGraph(c),c.markAutoImportProviderAsDirty()}else{if(c.initialLoadPending)return void(null==(a=null==(o=this.configFileExistenceInfoCache.get(i))?void 0:o.openFilesImpactedByConfigFile)||a.forEach(e=>{var t;(null==(t=this.pendingOpenFileProjectUpdates)?void 0:t.has(e))||(this.pendingOpenFileProjectUpdates??(this.pendingOpenFileProjectUpdates=new Map)).set(e,this.configFileForOpenFiles.get(e))}));const t=this.toPath(e);c.resolutionCache.removeResolutionsFromProjectReferenceRedirects(t),this.delayUpdateProjectGraph(c),this.getHostPreferences().includeCompletionsForModuleExports&&find(null==(s=c.getCurrentProgram())?void 0:s.getResolvedProjectReferences(),e=>(null==e?void 0:e.sourceFile.path)===t)&&c.markAutoImportProviderAsDirty()}}),r}onConfigFileChanged(e,t,n){const r=this.configFileExistenceInfoCache.get(t),i=this.getConfiguredProjectByCanonicalConfigFilePath(t),o=null==i?void 0:i.deferredClose;2===n?(r.exists=!1,i&&(i.deferredClose=!0)):(r.exists=!0,o&&(i.deferredClose=void 0,i.markAsDirty())),this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(t,"Change in config file detected"),this.openFiles.forEach((e,t)=>{var n,i;const o=this.configFileForOpenFiles.get(t);if(!(null==(n=r.openFilesImpactedByConfigFile)?void 0:n.has(t)))return;this.configFileForOpenFiles.delete(t);const a=this.getScriptInfoForPath(t);this.getConfigFileNameForFile(a,!1)&&((null==(i=this.pendingOpenFileProjectUpdates)?void 0:i.has(t))||(this.pendingOpenFileProjectUpdates??(this.pendingOpenFileProjectUpdates=new Map)).set(t,o))}),this.delayEnsureProjectForOpenFiles()}removeProject(e){switch(this.logger.info("`remove Project::"),e.print(!0,!0,!1),e.close(),h.shouldAssert(1)&&this.filenameToScriptInfo.forEach(t=>h.assert(!t.isAttached(e),"Found script Info still attached to project",()=>`${e.projectName}: ScriptInfos still attached: ${JSON.stringify(arrayFrom(mapDefinedIterator(this.filenameToScriptInfo.values(),t=>t.isAttached(e)?{fileName:t.fileName,projects:t.containingProjects.map(e=>e.projectName),hasMixedContent:t.hasMixedContent}:void 0)),void 0," ")}`)),this.pendingProjectUpdates.delete(e.getProjectName()),e.projectKind){case 2:unorderedRemoveItem(this.externalProjects,e),this.projectToSizeMap.delete(e.getProjectName());break;case 1:this.configuredProjects.delete(e.canonicalConfigFilePath),this.projectToSizeMap.delete(e.canonicalConfigFilePath);break;case 0:unorderedRemoveItem(this.inferredProjects,e)}}assignOrphanScriptInfoToInferredProject(e,t){h.assert(e.isOrphan());const n=this.getOrCreateInferredProjectForProjectRootPathIfEnabled(e,t)||this.getOrCreateSingleInferredProjectIfEnabled()||this.getOrCreateSingleInferredWithoutProjectRoot(e.isDynamic?t||this.currentDirectory:getDirectoryPath(isRootedDiskPath(e.fileName)?e.fileName:getNormalizedAbsolutePath(e.fileName,t?this.getNormalizedAbsolutePath(t):this.currentDirectory)));if(n.addRoot(e),e.containingProjects[0]!==n&&(orderedRemoveItem(e.containingProjects,n),e.containingProjects.unshift(n)),n.updateGraph(),!this.useSingleInferredProject&&!n.projectRootPath)for(const e of this.inferredProjects){if(e===n||e.isOrphan())continue;const t=e.getRootScriptInfos();h.assert(1===t.length||!!e.projectRootPath),1===t.length&&forEach(t[0].containingProjects,e=>e!==t[0].containingProjects[0]&&!e.isOrphan())&&e.removeFile(t[0],!0,!0)}return n}assignOrphanScriptInfosToInferredProject(){this.openFiles.forEach((e,t)=>{const n=this.getScriptInfoForPath(t);n.isOrphan()&&this.assignOrphanScriptInfoToInferredProject(n,e)})}closeOpenFile(e,t){var n;const r=!e.isDynamic&&this.host.fileExists(e.fileName);e.close(r),this.stopWatchingConfigFilesForScriptInfo(e);const i=this.toCanonicalFileName(e.fileName);this.openFilesWithNonRootedDiskPath.get(i)===e&&this.openFilesWithNonRootedDiskPath.delete(i);let o=!1;for(const t of e.containingProjects){if(isConfiguredProject(t)){e.hasMixedContent&&e.registerFileUpdate();const n=t.openFileWatchTriggered.get(e.path);void 0!==n&&(t.openFileWatchTriggered.delete(e.path),t.pendingUpdateLevelthis.onConfigFileChanged(e,t,r),2e3,this.getWatchOptionsFromProjectWatchOptions(null==(i=null==(r=null==o?void 0:o.config)?void 0:r.parsedCommandLine)?void 0:i.watchOptions,getDirectoryPath(e)),Ya.ConfigFile,n)),this.ensureConfigFileWatcherForProject(o,n)}ensureConfigFileWatcherForProject(e,t){const n=e.config.projects;n.set(t.canonicalConfigFilePath,n.get(t.canonicalConfigFilePath)||!1)}releaseParsedConfig(e,t){var n,r,i;const o=this.configFileExistenceInfoCache.get(e);(null==(n=o.config)?void 0:n.projects.delete(t.canonicalConfigFilePath))&&((null==(r=o.config)?void 0:r.projects.size)||(o.config=void 0,clearSharedExtendedConfigFileWatcher(e,this.sharedExtendedConfigFileWatchers),h.checkDefined(o.watcher),(null==(i=o.openFilesImpactedByConfigFile)?void 0:i.size)?o.inferredProjectRoots?canWatchDirectoryOrFilePath(getDirectoryPath(e))||(o.watcher.close(),o.watcher=kf):(o.watcher.close(),o.watcher=void 0):(o.watcher.close(),this.configFileExistenceInfoCache.delete(e))))}stopWatchingConfigFilesForScriptInfo(e){if(0!==this.serverMode)return;const t=this.rootOfInferredProjects.delete(e),n=e.isScriptOpen();n&&!t||this.forEachConfigFileLocation(e,r=>{var i,o,a;const s=this.configFileExistenceInfoCache.get(r);if(s){if(n){if(!(null==(i=null==s?void 0:s.openFilesImpactedByConfigFile)?void 0:i.has(e.path)))return}else if(!(null==(o=s.openFilesImpactedByConfigFile)?void 0:o.delete(e.path)))return;t&&(s.inferredProjectRoots--,!s.watcher||s.config||s.inferredProjectRoots||(s.watcher.close(),s.watcher=void 0)),(null==(a=s.openFilesImpactedByConfigFile)?void 0:a.size)||s.config||(h.assert(!s.watcher),this.configFileExistenceInfoCache.delete(r))}})}startWatchingConfigFilesForInferredProjectRoot(e){0===this.serverMode&&(h.assert(e.isScriptOpen()),this.rootOfInferredProjects.add(e),this.forEachConfigFileLocation(e,(t,n)=>{let r=this.configFileExistenceInfoCache.get(t);r?r.inferredProjectRoots=(r.inferredProjectRoots??0)+1:(r={exists:this.host.fileExists(n),inferredProjectRoots:1},this.configFileExistenceInfoCache.set(t,r)),(r.openFilesImpactedByConfigFile??(r.openFilesImpactedByConfigFile=new Set)).add(e.path),r.watcher||(r.watcher=canWatchDirectoryOrFilePath(getDirectoryPath(t))?this.watchFactory.watchFile(n,(e,r)=>this.onConfigFileChanged(n,t,r),2e3,this.hostConfiguration.watchOptions,Ya.ConfigFileForInferredRoot):kf)}))}forEachConfigFileLocation(e,t){if(0!==this.serverMode)return;h.assert(!isOpenScriptInfo(e)||this.openFiles.has(e.path));const n=this.openFiles.get(e.path);if(h.checkDefined(this.getScriptInfo(e.path)).isDynamic)return;let r=getDirectoryPath(e.fileName);const isSearchPathInProjectRoot=()=>containsPath(n,r,this.currentDirectory,!this.host.useCaseSensitiveFileNames),i=!n||!isSearchPathInProjectRoot();let o=!0,a=!0;isAncestorConfigFileInfo(e)&&(o=!endsWith(e.fileName,"tsconfig.json")&&(a=!1));do{const e=normalizedPathToPath(r,this.currentDirectory,this.toCanonicalFileName);if(o){const n=asNormalizedPath(combinePaths(r,"tsconfig.json"));if(t(combinePaths(e,"tsconfig.json"),n))return n}if(a){const n=asNormalizedPath(combinePaths(r,"jsconfig.json"));if(t(combinePaths(e,"jsconfig.json"),n))return n}if(isNodeModulesDirectory(e))break;const n=asNormalizedPath(getDirectoryPath(r));if(n===r)break;r=n,o=a=!0}while(i||isSearchPathInProjectRoot())}findDefaultConfiguredProject(e){var t;return null==(t=this.findDefaultConfiguredProjectWorker(e,1))?void 0:t.defaultProject}findDefaultConfiguredProjectWorker(e,t){return e.isScriptOpen()?this.tryFindDefaultConfiguredProjectForOpenScriptInfo(e,t):void 0}getConfigFileNameForFileFromCache(e,t){if(t){const t=getConfigFileNameFromCache(e,this.pendingOpenFileProjectUpdates);if(void 0!==t)return t}return getConfigFileNameFromCache(e,this.configFileForOpenFiles)}setConfigFileNameForFileInCache(e,t){if(!this.openFiles.has(e.path))return;const n=t||!1;if(isAncestorConfigFileInfo(e)){let t=this.configFileForOpenFiles.get(e.path);t&&!isString(t)||this.configFileForOpenFiles.set(e.path,t=(new Map).set(!1,t)),t.set(e.fileName,n)}else this.configFileForOpenFiles.set(e.path,n)}getConfigFileNameForFile(e,t){const n=this.getConfigFileNameForFileFromCache(e,t);if(void 0!==n)return n||void 0;if(t)return;const r=this.forEachConfigFileLocation(e,(t,n)=>this.configFileExists(n,t,e));return this.logger.info(`getConfigFileNameForFile:: File: ${e.fileName} ProjectRootPath: ${this.openFiles.get(e.path)}:: Result: ${r}`),this.setConfigFileNameForFileInCache(e,r),r}printProjects(){this.logger.hasLevel(1)&&(this.logger.startGroup(),this.externalProjects.forEach(printProjectWithoutFileNames),this.configuredProjects.forEach(printProjectWithoutFileNames),this.inferredProjects.forEach(printProjectWithoutFileNames),this.logger.info("Open files: "),this.openFiles.forEach((e,t)=>{const n=this.getScriptInfoForPath(t);this.logger.info(`\tFileName: ${n.fileName} ProjectRootPath: ${e}`),this.logger.info(`\t\tProjects: ${n.containingProjects.map(e=>e.getProjectName())}`)}),this.logger.endGroup())}findConfiguredProjectByProjectName(e,t){const n=this.toCanonicalFileName(e),r=this.getConfiguredProjectByCanonicalConfigFilePath(n);return t?r:(null==r?void 0:r.deferredClose)?void 0:r}getConfiguredProjectByCanonicalConfigFilePath(e){return this.configuredProjects.get(e)}findExternalProjectByProjectName(e){return findProjectByName(e,this.externalProjects)}getFilenameForExceededTotalSizeLimitForNonTsFiles(e,t,n,r){if(t&&t.disableSizeLimit||!this.host.getFileSize)return;let i=af;this.projectToSizeMap.set(e,0),this.projectToSizeMap.forEach(e=>i-=e||0);let o=0;for(const e of n){const t=r.getFileName(e);if(!hasTSFileExtension(t)&&(o+=this.host.getFileSize(t),o>af||o>i)){const e=n.map(e=>r.getFileName(e)).filter(e=>!hasTSFileExtension(e)).map(e=>({name:e,size:this.host.getFileSize(e)})).sort((e,t)=>t.size-e.size).slice(0,5);return this.logger.info(`Non TS file size exceeded limit (${o}). Largest files: ${e.map(e=>`${e.name}:${e.size}`).join(", ")}`),t}}this.projectToSizeMap.set(e,o)}createExternalProject(e,t,n,r,i){const o=convertCompilerOptions(n),a=convertWatchOptions(n,getDirectoryPath(normalizeSlashes(e))),s=new of(e,this,o,this.getFilenameForExceededTotalSizeLimitForNonTsFiles(e,o,t,Ef),void 0===n.compileOnSave||n.compileOnSave,void 0,null==a?void 0:a.watchOptions);return s.setProjectErrors(null==a?void 0:a.errors),s.excludedFiles=i,this.addFilesToNonInferredProject(s,t,Ef,r),this.externalProjects.push(s),s}sendProjectTelemetry(e){if(this.seenProjects.has(e.projectName))return void setProjectOptionsUsed(e);if(this.seenProjects.set(e.projectName,!0),!this.eventHandler||!this.host.createSHA256Hash)return void setProjectOptionsUsed(e);const t=isConfiguredProject(e)?e.projectOptions:void 0;setProjectOptionsUsed(e);const n={projectId:this.host.createSHA256Hash(e.projectName),fileStats:countEachFileTypes(e.getScriptInfos(),!0),compilerOptions:convertCompilerOptionsForTelemetry(e.getCompilationSettings()),typeAcquisition:function convertTypeAcquisition2({enable:e,include:t,exclude:n}){return{enable:e,include:void 0!==t&&0!==t.length,exclude:void 0!==n&&0!==n.length}}(e.getTypeAcquisition()),extends:t&&t.configHasExtendsProperty,files:t&&t.configHasFilesProperty,include:t&&t.configHasIncludeProperty,exclude:t&&t.configHasExcludeProperty,compileOnSave:e.compileOnSaveEnabled,configFileName:function configFileName(){if(!isConfiguredProject(e))return"other";return getBaseConfigFileName(e.getConfigFilePath())||"other"}(),projectType:e instanceof of?"external":"configured",languageServiceEnabled:e.languageServiceEnabled,version:s};this.eventHandler({eventName:_f,data:n})}addFilesToNonInferredProject(e,t,n,r){this.updateNonInferredProjectFiles(e,t,n),e.setTypeAcquisition(r),e.markAsDirty()}createConfiguredProject(e,t){var n;null==(n=J)||n.instant(J.Phase.Session,"createConfiguredProject",{configFilePath:e});const r=this.toCanonicalFileName(e);let i=this.configFileExistenceInfoCache.get(r);i?i.exists=!0:this.configFileExistenceInfoCache.set(r,i={exists:!0}),i.config||(i.config={cachedDirectoryStructureHost:createCachedDirectoryStructureHost(this.host,this.host.getCurrentDirectory(),this.host.useCaseSensitiveFileNames),projects:new Map,updateLevel:2});const o=new rf(e,r,this,i.config.cachedDirectoryStructureHost,t);return h.assert(!this.configuredProjects.has(r)),this.configuredProjects.set(r,o),this.createConfigFileWatcherForParsedConfig(e,r,o),o}loadConfiguredProject(e,t){var n,r;null==(n=J)||n.push(J.Phase.Session,"loadConfiguredProject",{configFilePath:e.canonicalConfigFilePath}),this.sendProjectLoadingStartEvent(e,t);const i=toNormalizedPath(e.getConfigFilePath()),o=this.ensureParsedConfigUptoDate(i,e.canonicalConfigFilePath,this.configFileExistenceInfoCache.get(e.canonicalConfigFilePath),e),a=o.config.parsedCommandLine;h.assert(!!a.fileNames);const s=a.options;e.projectOptions||(e.projectOptions={configHasExtendsProperty:void 0!==a.raw.extends,configHasFilesProperty:void 0!==a.raw.files,configHasIncludeProperty:void 0!==a.raw.include,configHasExcludeProperty:void 0!==a.raw.exclude}),e.parsedCommandLine=a,e.setProjectErrors(a.options.configFile.parseDiagnostics),e.updateReferences(a.projectReferences);const c=this.getFilenameForExceededTotalSizeLimitForNonTsFiles(e.canonicalConfigFilePath,s,a.fileNames,Cf);c?(e.disableLanguageService(c),this.configFileExistenceInfoCache.forEach((t,n)=>this.stopWatchingWildCards(n,e))):(e.setCompilerOptions(s),e.setWatchOptions(a.watchOptions),e.enableLanguageService(),this.watchWildcards(i,o,e)),e.enablePluginsWithOptions(s);const l=a.fileNames.concat(e.getExternalFiles(2));this.updateRootAndOptionsOfNonInferredProject(e,l,Cf,s,a.typeAcquisition,a.compileOnSave,a.watchOptions),null==(r=J)||r.pop()}ensureParsedConfigUptoDate(e,t,n,r){var i,o,a;if(n.config&&(1===n.config.updateLevel&&this.reloadFileNamesOfParsedConfig(e,n.config),!n.config.updateLevel))return this.ensureConfigFileWatcherForProject(n,r),n;if(!n.exists&&n.config)return n.config.updateLevel=void 0,this.ensureConfigFileWatcherForProject(n,r),n;const s=(null==(i=n.config)?void 0:i.cachedDirectoryStructureHost)||createCachedDirectoryStructureHost(this.host,this.host.getCurrentDirectory(),this.host.useCaseSensitiveFileNames),c=tryReadFile(e,e=>this.host.readFile(e)),l=parseJsonText(e,isString(c)?c:""),d=l.parseDiagnostics;isString(c)||d.push(c);const p=getDirectoryPath(e),u=parseJsonSourceFileConfigFileContent(l,s,p,void 0,e,void 0,this.hostConfiguration.extraFileExtensions,this.extendedConfigCache);u.errors.length&&d.push(...u.errors),this.logger.info(`Config: ${e} : ${JSON.stringify({rootNames:u.fileNames,options:u.options,watchOptions:u.watchOptions,projectReferences:u.projectReferences},void 0," ")}`);const m=null==(o=n.config)?void 0:o.parsedCommandLine;return n.config?(n.config.parsedCommandLine=u,n.config.watchedDirectoriesStale=!0,n.config.updateLevel=void 0):n.config={parsedCommandLine:u,cachedDirectoryStructureHost:s,projects:new Map},m||isJsonEqual(this.getWatchOptionsFromProjectWatchOptions(void 0,p),this.getWatchOptionsFromProjectWatchOptions(u.watchOptions,p))||(null==(a=n.watcher)||a.close(),n.watcher=void 0),this.createConfigFileWatcherForParsedConfig(e,t,r),updateSharedExtendedConfigFileWatcher(t,u.options,this.sharedExtendedConfigFileWatchers,(t,n)=>this.watchFactory.watchFile(t,()=>{var e;cleanExtendedConfigCache(this.extendedConfigCache,n,e=>this.toPath(e));let r=!1;null==(e=this.sharedExtendedConfigFileWatchers.get(n))||e.projects.forEach(e=>{r=this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(e,`Change in extended config file ${t} detected`)||r}),r&&this.delayEnsureProjectForOpenFiles()},2e3,this.hostConfiguration.watchOptions,Ya.ExtendedConfigFile,e),e=>this.toPath(e)),n}watchWildcards(e,{exists:t,config:n},r){if(n.projects.set(r.canonicalConfigFilePath,!0),t){if(n.watchedDirectories&&!n.watchedDirectoriesStale)return;n.watchedDirectoriesStale=!1,updateWatchingWildcardDirectories(n.watchedDirectories||(n.watchedDirectories=new Map),n.parsedCommandLine.wildcardDirectories,(t,r)=>this.watchWildcardDirectory(t,r,e,n))}else{if(n.watchedDirectoriesStale=!1,!n.watchedDirectories)return;clearMap(n.watchedDirectories,closeFileWatcherOf),n.watchedDirectories=void 0}}stopWatchingWildCards(e,t){const n=this.configFileExistenceInfoCache.get(e);n.config&&n.config.projects.get(t.canonicalConfigFilePath)&&(n.config.projects.set(t.canonicalConfigFilePath,!1),forEachEntry(n.config.projects,identity)||(n.config.watchedDirectories&&(clearMap(n.config.watchedDirectories,closeFileWatcherOf),n.config.watchedDirectories=void 0),n.config.watchedDirectoriesStale=void 0))}updateNonInferredProjectFiles(e,t,n){var r;const i=e.getRootFilesMap(),o=new Map;for(const a of t){const t=n.getFileName(a),s=toNormalizedPath(t);let c;if(isDynamicFileName(s)||e.fileExists(t)){const t=n.getScriptKind(a,this.hostConfiguration.extraFileExtensions),r=n.hasMixedContent(a,this.hostConfiguration.extraFileExtensions),o=h.checkDefined(this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(s,e.currentDirectory,t,r,e.directoryStructureHost,!1));c=o.path;const l=i.get(c);l&&l.info===o?l.fileName=s:(e.addRoot(o,s),o.isScriptOpen()&&this.removeRootOfInferredProjectIfNowPartOfOtherProject(o))}else{c=normalizedPathToPath(s,this.currentDirectory,this.toCanonicalFileName);const t=i.get(c);t?((null==(r=t.info)?void 0:r.path)===c&&(e.removeFile(t.info,!1,!0),t.info=void 0),t.fileName=s):i.set(c,{fileName:s})}o.set(c,!0)}i.size>o.size&&i.forEach((t,n)=>{o.has(n)||(t.info?e.removeFile(t.info,e.fileExists(t.info.fileName),!0):i.delete(n))})}updateRootAndOptionsOfNonInferredProject(e,t,n,r,i,o,a){e.setCompilerOptions(r),e.setWatchOptions(a),void 0!==o&&(e.compileOnSaveEnabled=o),this.addFilesToNonInferredProject(e,t,n,i)}reloadFileNamesOfConfiguredProject(e){const t=this.reloadFileNamesOfParsedConfig(e.getConfigFilePath(),this.configFileExistenceInfoCache.get(e.canonicalConfigFilePath).config);return e.updateErrorOnNoInputFiles(t),this.updateNonInferredProjectFiles(e,t.fileNames.concat(e.getExternalFiles(1)),Cf),e.markAsDirty(),e.updateGraph()}reloadFileNamesOfParsedConfig(e,t){if(void 0===t.updateLevel)return t.parsedCommandLine;h.assert(1===t.updateLevel);const n=getFileNamesFromConfigSpecs(t.parsedCommandLine.options.configFile.configFileSpecs,getDirectoryPath(e),t.parsedCommandLine.options,t.cachedDirectoryStructureHost,this.hostConfiguration.extraFileExtensions);return t.parsedCommandLine={...t.parsedCommandLine,fileNames:n},t.updateLevel=void 0,t.parsedCommandLine}setFileNamesOfAutoImportProviderOrAuxillaryProject(e,t){this.updateNonInferredProjectFiles(e,t,Cf)}reloadConfiguredProjectOptimized(e,t,n){n.has(e)||(n.set(e,6),e.initialLoadPending||this.setProjectForReload(e,2,t))}reloadConfiguredProjectClearingSemanticCache(e,t,n){return 7!==n.get(e)&&(n.set(e,7),this.clearSemanticCache(e),this.reloadConfiguredProject(e,reloadReason(t)),!0)}setProjectForReload(e,t,n){2===t&&this.clearSemanticCache(e),e.pendingUpdateReason=n&&reloadReason(n),e.pendingUpdateLevel=t}reloadConfiguredProject(e,t){e.initialLoadPending=!1,this.setProjectForReload(e,0),this.loadConfiguredProject(e,t),updateWithTriggerFile(e,e.triggerFileForConfigFileDiag??e.getConfigFilePath(),!0)}clearSemanticCache(e){e.originalConfiguredProjects=void 0,e.resolutionCache.clear(),e.getLanguageService(!1).cleanupSemanticCache(),e.cleanupProgram(),e.markAsDirty()}sendConfigFileDiagEvent(e,t,n){if(!this.eventHandler||this.suppressDiagnosticEvents)return!1;const r=e.getLanguageService().getCompilerOptionsDiagnostics();return r.push(...e.getAllProjectErrors()),!(!n&&r.length===(e.configDiagDiagnosticsReported??0))&&(e.configDiagDiagnosticsReported=r.length,this.eventHandler({eventName:uf,data:{configFileName:e.getConfigFilePath(),diagnostics:r,triggerFile:t??e.getConfigFilePath()}}),!0)}getOrCreateInferredProjectForProjectRootPathIfEnabled(e,t){if(!this.useInferredProjectPerProjectRoot||e.isDynamic&&void 0===t)return;if(t){const e=this.toCanonicalFileName(t);for(const t of this.inferredProjects)if(t.projectRootPath===e)return t;return this.createInferredProject(t,!1,t)}let n;for(const t of this.inferredProjects)t.projectRootPath&&containsPath(t.projectRootPath,e.path,this.host.getCurrentDirectory(),!this.host.useCaseSensitiveFileNames)&&(n&&n.projectRootPath.length>t.projectRootPath.length||(n=t));return n}getOrCreateSingleInferredProjectIfEnabled(){if(this.useSingleInferredProject)return this.inferredProjects.length>0&&void 0===this.inferredProjects[0].projectRootPath?this.inferredProjects[0]:this.createInferredProject(this.currentDirectory,!0,void 0)}getOrCreateSingleInferredWithoutProjectRoot(e){h.assert(!this.useSingleInferredProject);const t=this.toCanonicalFileName(this.getNormalizedAbsolutePath(e));for(const e of this.inferredProjects)if(!e.projectRootPath&&e.isOrphan()&&e.canonicalCurrentDirectory===t)return e;return this.createInferredProject(e,!1,void 0)}createInferredProject(e,t,n){const r=n&&this.compilerOptionsForInferredProjectsPerProjectRoot.get(n)||this.compilerOptionsForInferredProjects;let i,o;n&&(i=this.watchOptionsForInferredProjectsPerProjectRoot.get(n),o=this.typeAcquisitionForInferredProjectsPerProjectRoot.get(n)),void 0===i&&(i=this.watchOptionsForInferredProjects),void 0===o&&(o=this.typeAcquisitionForInferredProjects),i=i||void 0;const a=new Z_(this,r,null==i?void 0:i.watchOptions,n,e,o);return a.setProjectErrors(null==i?void 0:i.errors),t?this.inferredProjects.unshift(a):this.inferredProjects.push(a),a}getOrCreateScriptInfoNotOpenedByClient(e,t,n,r){return this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(toNormalizedPath(e),t,void 0,void 0,n,r)}getScriptInfo(e){return this.getScriptInfoForNormalizedPath(toNormalizedPath(e))}getScriptInfoOrConfig(e){const t=toNormalizedPath(e),n=this.getScriptInfoForNormalizedPath(t);if(n)return n;const r=this.configuredProjects.get(this.toPath(e));return r&&r.getCompilerOptions().configFile}logErrorForScriptInfoNotFound(e){const t=arrayFrom(mapDefinedIterator(this.filenameToScriptInfo.entries(),e=>e[1].deferredDelete?void 0:e),([e,t])=>({path:e,fileName:t.fileName}));this.logger.msg(`Could not find file ${JSON.stringify(e)}.\nAll files are: ${JSON.stringify(t)}`,"Err")}getSymlinkedProjects(e){let t;if(this.realpathToScriptInfos){const t=e.getRealpathIfDifferent();t&&forEach(this.realpathToScriptInfos.get(t),combineProjects),forEach(this.realpathToScriptInfos.get(e.path),combineProjects)}return t;function combineProjects(n){if(n!==e)for(const r of n.containingProjects)!r.languageServiceEnabled||r.isOrphan()||r.getCompilerOptions().preserveSymlinks||e.isAttached(r)||(t?forEachEntry(t,(e,t)=>t!==n.path&&contains(e,r))||t.add(n.path,r):(t=createMultiMap(),t.add(n.path,r)))}}watchClosedScriptInfo(e){if(h.assert(!e.fileWatcher),!(e.isDynamicOrHasMixedContent()||this.globalCacheLocationDirectoryPath&&startsWith(e.path,this.globalCacheLocationDirectoryPath))){const t=e.fileName.indexOf("/node_modules/");this.host.getModifiedTime&&-1!==t?(e.mTime=this.getModifiedTime(e),e.fileWatcher=this.watchClosedScriptInfoInNodeModules(e.fileName.substring(0,t))):e.fileWatcher=this.watchFactory.watchFile(e.fileName,(t,n)=>this.onSourceFileChanged(e,n),500,this.hostConfiguration.watchOptions,Ya.ClosedScriptInfo)}}createNodeModulesWatcher(e,t){let n=this.watchFactory.watchDirectory(e,e=>{var n;const i=removeIgnoredPath(this.toPath(e));if(!i)return;const o=getBaseFileName(i);if(!(null==(n=r.affectedModuleSpecifierCacheProjects)?void 0:n.size)||"package.json"!==o&&"node_modules"!==o||r.affectedModuleSpecifierCacheProjects.forEach(e=>{var t;null==(t=e.getModuleSpecifierCache())||t.clear()}),r.refreshScriptInfoRefCount)if(t===i)this.refreshScriptInfosInDirectory(t);else{const e=this.filenameToScriptInfo.get(i);e?isScriptInfoWatchedFromNodeModules(e)&&this.refreshScriptInfo(e):hasExtension(i)||this.refreshScriptInfosInDirectory(i)}},1,this.hostConfiguration.watchOptions,Ya.NodeModules);const r={refreshScriptInfoRefCount:0,affectedModuleSpecifierCacheProjects:void 0,close:()=>{var e;!n||r.refreshScriptInfoRefCount||(null==(e=r.affectedModuleSpecifierCacheProjects)?void 0:e.size)||(n.close(),n=void 0,this.nodeModulesWatchers.delete(t))}};return this.nodeModulesWatchers.set(t,r),r}watchPackageJsonsInNodeModules(e,t){var n;const r=this.toPath(e),i=this.nodeModulesWatchers.get(r)||this.createNodeModulesWatcher(e,r);return h.assert(!(null==(n=i.affectedModuleSpecifierCacheProjects)?void 0:n.has(t))),(i.affectedModuleSpecifierCacheProjects||(i.affectedModuleSpecifierCacheProjects=new Set)).add(t),{close:()=>{var e;null==(e=i.affectedModuleSpecifierCacheProjects)||e.delete(t),i.close()}}}watchClosedScriptInfoInNodeModules(e){const t=e+"/node_modules",n=this.toPath(t),r=this.nodeModulesWatchers.get(n)||this.createNodeModulesWatcher(t,n);return r.refreshScriptInfoRefCount++,{close:()=>{r.refreshScriptInfoRefCount--,r.close()}}}getModifiedTime(e){return(this.host.getModifiedTime(e.fileName)||St).getTime()}refreshScriptInfo(e){const t=this.getModifiedTime(e);if(t!==e.mTime){const n=getFileWatcherEventKind(e.mTime,t);e.mTime=t,this.onSourceFileChanged(e,n)}}refreshScriptInfosInDirectory(e){e+=Ft,this.filenameToScriptInfo.forEach(t=>{isScriptInfoWatchedFromNodeModules(t)&&startsWith(t.path,e)&&this.refreshScriptInfo(t)})}stopWatchingScriptInfo(e){e.fileWatcher&&(e.fileWatcher.close(),e.fileWatcher=void 0)}getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(e,t,n,r,i,o){if(isRootedDiskPath(e)||isDynamicFileName(e))return this.getOrCreateScriptInfoWorker(e,t,!1,void 0,n,!!r,i,o);const a=this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(e));return a||void 0}getOrCreateScriptInfoForNormalizedPath(e,t,n,r,i,o){return this.getOrCreateScriptInfoWorker(e,this.currentDirectory,t,n,r,!!i,o,!1)}getOrCreateScriptInfoWorker(e,t,n,r,i,o,a,s){h.assert(void 0===r||n,"ScriptInfo needs to be opened by client to be able to set its user defined content");const c=normalizedPathToPath(e,t,this.toCanonicalFileName);let l=this.filenameToScriptInfo.get(c);if(l){if(l.deferredDelete){if(h.assert(!l.isDynamic),!n&&!(a||this.host).fileExists(e))return s?l:void 0;l.deferredDelete=void 0}}else{const r=isDynamicFileName(e);if(h.assert(isRootedDiskPath(e)||r||n,"",()=>`${JSON.stringify({fileName:e,currentDirectory:t,hostCurrentDirectory:this.currentDirectory,openKeys:arrayFrom(this.openFilesWithNonRootedDiskPath.keys())})}\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory`),h.assert(!isRootedDiskPath(e)||this.currentDirectory===t||!this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(e)),"",()=>`${JSON.stringify({fileName:e,currentDirectory:t,hostCurrentDirectory:this.currentDirectory,openKeys:arrayFrom(this.openFilesWithNonRootedDiskPath.keys())})}\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names`),h.assert(!r||this.currentDirectory===t||this.useInferredProjectPerProjectRoot,"",()=>`${JSON.stringify({fileName:e,currentDirectory:t,hostCurrentDirectory:this.currentDirectory,openKeys:arrayFrom(this.openFilesWithNonRootedDiskPath.keys())})}\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath.`),!n&&!r&&!(a||this.host).fileExists(e))return;l=new Q_(this.host,e,i,o,c,this.filenameToScriptInfoVersion.get(c)),this.filenameToScriptInfo.set(l.path,l),this.filenameToScriptInfoVersion.delete(l.path),n?isRootedDiskPath(e)||r&&this.currentDirectory===t||this.openFilesWithNonRootedDiskPath.set(this.toCanonicalFileName(e),l):this.watchClosedScriptInfo(l)}return n&&(this.stopWatchingScriptInfo(l),l.open(r),o&&l.registerFileUpdate()),l}getScriptInfoForNormalizedPath(e){return!isRootedDiskPath(e)&&this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(e))||this.getScriptInfoForPath(normalizedPathToPath(e,this.currentDirectory,this.toCanonicalFileName))}getScriptInfoForPath(e){const t=this.filenameToScriptInfo.get(e);return t&&t.deferredDelete?void 0:t}getDocumentPositionMapper(e,t,n){const r=this.getOrCreateScriptInfoNotOpenedByClient(t,e.currentDirectory,this.host,!1);if(!r)return void(n&&e.addGeneratedFileWatch(t,n));if(r.getSnapshot(),isString(r.sourceMapFilePath)){const t=this.getScriptInfoForPath(r.sourceMapFilePath);if(t&&(t.getSnapshot(),void 0!==t.documentPositionMapper))return t.sourceInfos=this.addSourceInfoToSourceMap(n,e,t.sourceInfos),t.documentPositionMapper?t.documentPositionMapper:void 0;r.sourceMapFilePath=void 0}else{if(r.sourceMapFilePath)return void(r.sourceMapFilePath.sourceInfos=this.addSourceInfoToSourceMap(n,e,r.sourceMapFilePath.sourceInfos));if(void 0!==r.sourceMapFilePath)return}let i,readMapFile=(t,n)=>{const r=this.getOrCreateScriptInfoNotOpenedByClient(t,e.currentDirectory,this.host,!0);if(i=r||n,!r||r.deferredDelete)return;const o=r.getSnapshot();return void 0!==r.documentPositionMapper?r.documentPositionMapper:getSnapshotText(o)};const o=e.projectName,a=getDocumentPositionMapper({getCanonicalFileName:this.toCanonicalFileName,log:e=>this.logger.info(e),getSourceFileLike:e=>this.getSourceFileLike(e,o,r)},r.fileName,r.textStorage.getLineInfo(),readMapFile);return readMapFile=void 0,i?isString(i)?r.sourceMapFilePath={watcher:this.addMissingSourceMapFile(e.currentDirectory===this.currentDirectory?i:getNormalizedAbsolutePath(i,e.currentDirectory),r.path),sourceInfos:this.addSourceInfoToSourceMap(n,e)}:(r.sourceMapFilePath=i.path,i.declarationInfoPath=r.path,i.deferredDelete||(i.documentPositionMapper=a||!1),i.sourceInfos=this.addSourceInfoToSourceMap(n,e,i.sourceInfos)):r.sourceMapFilePath=!1,a}addSourceInfoToSourceMap(e,t,n){if(e){const r=this.getOrCreateScriptInfoNotOpenedByClient(e,t.currentDirectory,t.directoryStructureHost,!1);(n||(n=new Set)).add(r.path)}return n}addMissingSourceMapFile(e,t){return this.watchFactory.watchFile(e,()=>{const e=this.getScriptInfoForPath(t);e&&e.sourceMapFilePath&&!isString(e.sourceMapFilePath)&&(this.delayUpdateProjectGraphs(e.containingProjects,!0),this.delayUpdateSourceInfoProjects(e.sourceMapFilePath.sourceInfos),e.closeSourceMapFileWatcher())},2e3,this.hostConfiguration.watchOptions,Ya.MissingSourceMapFile)}getSourceFileLike(e,t,n){const r=t.projectName?t:this.findProject(t);if(r){const t=r.toPath(e),n=r.getSourceFile(t);if(n&&n.resolvedPath===t)return n}const i=this.getOrCreateScriptInfoNotOpenedByClient(e,(r||this).currentDirectory,r?r.directoryStructureHost:this.host,!1);if(i){if(n&&isString(n.sourceMapFilePath)&&i!==n){const e=this.getScriptInfoForPath(n.sourceMapFilePath);e&&(e.sourceInfos??(e.sourceInfos=new Set)).add(i.path)}return i.cacheSourceFile?i.cacheSourceFile.sourceFile:(i.sourceFileLike||(i.sourceFileLike={get text(){return h.fail("shouldnt need text"),""},getLineAndCharacterOfPosition:e=>{const t=i.positionToLineOffset(e);return{line:t.line-1,character:t.offset-1}},getPositionOfLineAndCharacter:(e,t,n)=>i.lineOffsetToPosition(e+1,t+1,n)}),i.sourceFileLike)}}setPerformanceEventHandler(e){this.performanceEventHandler=e}setHostConfiguration(e){var t;if(e.file){const t=this.getScriptInfoForNormalizedPath(toNormalizedPath(e.file));t&&(t.setOptions(convertFormatOptions(e.formatOptions),e.preferences),this.logger.info(`Host configuration update for file ${e.file}`))}else{if(void 0!==e.hostInfo&&(this.hostConfiguration.hostInfo=e.hostInfo,this.logger.info(`Host information ${e.hostInfo}`)),e.formatOptions&&(this.hostConfiguration.formatCodeOptions={...this.hostConfiguration.formatCodeOptions,...convertFormatOptions(e.formatOptions)},this.logger.info("Format host information updated")),e.preferences){const{lazyConfiguredProjectsFromExternalProject:t,includePackageJsonAutoImports:n,includeCompletionsForModuleExports:r}=this.hostConfiguration.preferences;this.hostConfiguration.preferences={...this.hostConfiguration.preferences,...e.preferences},t&&!this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject&&this.externalProjectToConfiguredProjectMap.forEach(e=>e.forEach(e=>{e.deferredClose||e.isClosed()||2!==e.pendingUpdateLevel||this.hasPendingProjectUpdate(e)||e.updateGraph()})),n===e.preferences.includePackageJsonAutoImports&&!!r==!!e.preferences.includeCompletionsForModuleExports||this.forEachProject(e=>{e.onAutoImportProviderSettingsChanged()})}if(e.extraFileExtensions&&(this.hostConfiguration.extraFileExtensions=e.extraFileExtensions,this.reloadProjects(),this.logger.info("Host file extension mappings updated")),e.watchOptions){const n=null==(t=convertWatchOptions(e.watchOptions))?void 0:t.watchOptions,r=handleWatchOptionsConfigDirTemplateSubstitution(n,this.currentDirectory);this.hostConfiguration.watchOptions=r,this.hostConfiguration.beforeSubstitution=r===n?void 0:n,this.logger.info(`Host watch options changed to ${JSON.stringify(this.hostConfiguration.watchOptions)}, it will be take effect for next watches.`)}}}getWatchOptions(e){return this.getWatchOptionsFromProjectWatchOptions(e.getWatchOptions(),e.getCurrentDirectory())}getWatchOptionsFromProjectWatchOptions(e,t){const n=this.hostConfiguration.beforeSubstitution?handleWatchOptionsConfigDirTemplateSubstitution(this.hostConfiguration.beforeSubstitution,t):this.hostConfiguration.watchOptions;return e&&n?{...n,...e}:e||n}closeLog(){this.logger.close()}sendSourceFileChange(e){this.filenameToScriptInfo.forEach(t=>{if(this.openFiles.has(t.path))return;if(!t.fileWatcher)return;const n=memoize(()=>this.host.fileExists(t.fileName)?t.deferredDelete?0:1:2);if(e){if(isScriptInfoWatchedFromNodeModules(t)||!t.path.startsWith(e))return;if(2===n()&&t.deferredDelete)return;this.logger.info(`Invoking sourceFileChange on ${t.fileName}:: ${n()}`)}this.onSourceFileChanged(t,n())})}reloadProjects(){this.logger.info("reload projects."),this.sendSourceFileChange(void 0),this.pendingProjectUpdates.forEach((e,t)=>{this.throttledOperations.cancel(t),this.pendingProjectUpdates.delete(t)}),this.throttledOperations.cancel(Tf),this.pendingOpenFileProjectUpdates=void 0,this.pendingEnsureProjectForOpenFiles=!1,this.configFileExistenceInfoCache.forEach(e=>{e.config&&(e.config.updateLevel=2,e.config.cachedDirectoryStructureHost.clearCache())}),this.configFileForOpenFiles.clear(),this.externalProjects.forEach(e=>{this.clearSemanticCache(e),e.updateGraph()});const e=new Map,t=new Set;this.externalProjectToConfiguredProjectMap.forEach((t,n)=>{const r=`Reloading configured project in external project: ${n}`;t.forEach(t=>{this.getHostPreferences().lazyConfiguredProjectsFromExternalProject?this.reloadConfiguredProjectOptimized(t,r,e):this.reloadConfiguredProjectClearingSemanticCache(t,r,e)})}),this.openFiles.forEach((n,r)=>{const i=this.getScriptInfoForPath(r);find(i.containingProjects,isExternalProject)||this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(i,7,e,t)}),t.forEach(t=>e.set(t,7)),this.inferredProjects.forEach(e=>this.clearSemanticCache(e)),this.ensureProjectForOpenFiles(),this.cleanupProjectsAndScriptInfos(e,new Set(this.openFiles.keys()),new Set(this.externalProjectToConfiguredProjectMap.keys())),this.logger.info("After reloading projects.."),this.printProjects()}removeRootOfInferredProjectIfNowPartOfOtherProject(e){h.assert(e.containingProjects.length>0);const t=e.containingProjects[0];!t.isOrphan()&&isInferredProject(t)&&t.isRoot(e)&&forEach(e.containingProjects,e=>e!==t&&!e.isOrphan())&&t.removeFile(e,!0,!0)}ensureProjectForOpenFiles(){this.logger.info("Before ensureProjectForOpenFiles:"),this.printProjects();const e=this.pendingOpenFileProjectUpdates;this.pendingOpenFileProjectUpdates=void 0,null==e||e.forEach((e,t)=>this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(this.getScriptInfoForPath(t),5)),this.openFiles.forEach((e,t)=>{const n=this.getScriptInfoForPath(t);n.isOrphan()?this.assignOrphanScriptInfoToInferredProject(n,e):this.removeRootOfInferredProjectIfNowPartOfOtherProject(n)}),this.pendingEnsureProjectForOpenFiles=!1,this.inferredProjects.forEach(updateProjectIfDirty),this.logger.info("After ensureProjectForOpenFiles:"),this.printProjects()}openClientFile(e,t,n,r){return this.openClientFileWithNormalizedPath(toNormalizedPath(e),t,n,!1,r?toNormalizedPath(r):void 0)}getOriginalLocationEnsuringConfiguredProject(e,t){const n=e.isSourceOfProjectReferenceRedirect(t.fileName),r=n?t:e.getSourceMapper().tryGetSourcePosition(t);if(!r)return;const{fileName:i}=r,o=this.getScriptInfo(i);if(!o&&!this.host.fileExists(i))return;const a={fileName:toNormalizedPath(i),path:this.toPath(i)},s=this.getConfigFileNameForFile(a,!1);if(!s)return;let c=this.findConfiguredProjectByProjectName(s);if(!c){if(e.getCompilerOptions().disableReferencedProjectLoad)return n?t:(null==o?void 0:o.containingProjects.length)?r:t;c=this.createConfiguredProject(s,`Creating project for original file: ${a.fileName}${t!==r?" for location: "+t.fileName:""}`)}const l=this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(a,5,updateProjectFoundUsingFind(c,4),e=>`Creating project referenced in solution ${e.projectName} to find possible configured project for original file: ${a.fileName}${t!==r?" for location: "+t.fileName:""}`);if(!l.defaultProject)return;if(l.defaultProject===e)return r;addOriginalConfiguredProject(l.defaultProject);const d=this.getScriptInfo(i);if(d&&d.containingProjects.length)return d.containingProjects.forEach(e=>{isConfiguredProject(e)&&addOriginalConfiguredProject(e)}),r;function addOriginalConfiguredProject(t){(e.originalConfiguredProjects??(e.originalConfiguredProjects=new Set)).add(t.canonicalConfigFilePath)}}fileExists(e){return!!this.getScriptInfoForNormalizedPath(e)||this.host.fileExists(e)}findExternalProjectContainingOpenScriptInfo(e){return find(this.externalProjects,t=>(updateProjectIfDirty(t),t.containsScriptInfo(e)))}getOrCreateOpenScriptInfo(e,t,n,r,i){const o=this.getOrCreateScriptInfoWorker(e,i?this.getNormalizedAbsolutePath(i):this.currentDirectory,!0,t,n,!!r,void 0,!0);return this.openFiles.set(o.path,i),o}assignProjectToOpenedScriptInfo(e){let t,n;let r,i;if(!this.findExternalProjectContainingOpenScriptInfo(e)&&0===this.serverMode){const o=this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(e,5);o&&(r=o.seenProjects,i=o.sentConfigDiag,o.defaultProject&&(t=o.defaultProject.getConfigFilePath(),n=o.defaultProject.getAllProjectErrors()))}return e.containingProjects.forEach(updateProjectIfDirty),e.isOrphan()&&(null==r||r.forEach((t,n)=>{4===t||i.has(n)||this.sendConfigFileDiagEvent(n,e.fileName,!0)}),h.assert(this.openFiles.has(e.path)),this.assignOrphanScriptInfoToInferredProject(e,this.openFiles.get(e.path))),h.assert(!e.isOrphan()),{configFileName:t,configFileErrors:n,retainProjects:r}}findCreateOrReloadConfiguredProject(e,t,n,r,i,o,a,s,c){let l,d=c??this.findConfiguredProjectByProjectName(e,r),p=!1;switch(t){case 0:case 1:case 3:if(!d)return;break;case 2:if(!d)return;l=function configFileExistenceInfoForOptimizedReplay(e){return useConfigFileExistenceInfoForOptimizedLoading(e)?e.projectService.configFileExistenceInfoCache.get(e.canonicalConfigFilePath):void 0}(d);break;case 4:case 5:d??(d=this.createConfiguredProject(e,n)),a||({sentConfigFileDiag:p,configFileExistenceInfo:l}=updateProjectFoundUsingFind(d,t,i));break;case 6:if(d??(d=this.createConfiguredProject(e,reloadReason(n))),d.projectService.reloadConfiguredProjectOptimized(d,n,o),l=configFileExistenceInfoForOptimizedLoading(d),l)break;case 7:d??(d=this.createConfiguredProject(e,reloadReason(n))),p=!s&&this.reloadConfiguredProjectClearingSemanticCache(d,n,o),!s||s.has(d)||o.has(d)||(this.setProjectForReload(d,2,n),s.add(d));break;default:h.assertNever(t)}return{project:d,sentConfigFileDiag:p,configFileExistenceInfo:l,reason:n}}tryFindDefaultConfiguredProjectForOpenScriptInfo(e,t,n,r){const i=this.getConfigFileNameForFile(e,t<=3);if(!i)return;const o=toConfiguredProjectLoadOptimized(t),a=this.findCreateOrReloadConfiguredProject(i,o,function fileOpenReason(e){return`Creating possible configured project for ${e.fileName} to open`}(e),n,e.fileName,r);return a&&this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(e,t,a,t=>`Creating project referenced in solution ${t.projectName} to find possible configured project for ${e.fileName} to open`,n,r)}isMatchedByConfig(e,t,n){if(t.fileNames.some(e=>this.toPath(e)===n.path))return!0;if(isSupportedSourceFileName(n.fileName,t.options,this.hostConfiguration.extraFileExtensions))return!1;const{validatedFilesSpec:r,validatedIncludeSpecs:i,validatedExcludeSpecs:o}=t.options.configFile.configFileSpecs,a=toNormalizedPath(getNormalizedAbsolutePath(getDirectoryPath(e),this.currentDirectory));return!!(null==r?void 0:r.some(e=>this.toPath(getNormalizedAbsolutePath(e,a))===n.path))||!!(null==i?void 0:i.length)&&(!matchesExcludeWorker(n.fileName,o,this.host.useCaseSensitiveFileNames,this.currentDirectory,a)&&(null==i?void 0:i.some(e=>{const t=getPatternFromSpec(e,a,"files");return!!t&&getRegexFromPattern(`(${t})$`,this.host.useCaseSensitiveFileNames).test(n.fileName)})))}tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(e,t,n,r,i,o){const a=isOpenScriptInfo(e),s=toConfiguredProjectLoadOptimized(t),c=new Map;let l;const d=new Set;let p,u,m,_;return tryFindDefaultConfiguredProject(n),{defaultProject:p??u,tsconfigProject:m??_,sentConfigDiag:d,seenProjects:c,seenConfigs:l};function tryFindDefaultConfiguredProject(t){return function isDefaultProjectOptimized(e,t){e.sentConfigFileDiag&&d.add(e.project);return e.configFileExistenceInfo?isDefaultConfigFileExistenceInfo(e.configFileExistenceInfo,e.project,toNormalizedPath(e.project.getConfigFilePath()),e.reason,e.project,e.project.canonicalConfigFilePath):isDefaultProject(e.project,t)}(t,t.project)??function tryFindDefaultConfiguredProjectFromReferences(e){return e.parsedCommandLine&&forEachResolvedProjectReferenceProjectLoad(e,e.parsedCommandLine,isDefaultConfigFileExistenceInfo,s,r(e),i,o)}(t.project)??function tryFindDefaultConfiguredProjectFromAncestor(t){return a?forEachAncestorProjectLoad(e,t,tryFindDefaultConfiguredProject,s,`Creating possible configured project for ${e.fileName} to open`,i,o,!1):void 0}(t.project)}function isDefaultConfigFileExistenceInfo(n,r,a,p,u,m){if(r){if(c.has(r))return;c.set(r,s)}else{if(null==l?void 0:l.has(m))return;(l??(l=new Set)).add(m)}if(!u.projectService.isMatchedByConfig(a,n.config.parsedCommandLine,e))return void(u.languageServiceEnabled&&u.projectService.watchWildcards(a,n,u));const _=r?updateProjectFoundUsingFind(r,t,e.fileName,p,o):u.projectService.findCreateOrReloadConfiguredProject(a,t,p,i,e.fileName,o);if(_)return c.set(_.project,s),_.sentConfigFileDiag&&d.add(_.project),isDefaultProject(_.project,u);h.assert(3===t)}function isDefaultProject(n,r){if(c.get(n)===t)return;c.set(n,t);const i=a?e:n.projectService.getScriptInfo(e.fileName),o=i&&n.containsScriptInfo(i);if(o&&!n.isSourceOfProjectReferenceRedirect(i.path))return m=r,p=n;!u&&a&&o&&(_=r,u=n)}}tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(e,t,n,r){const i=1===t,o=this.tryFindDefaultConfiguredProjectForOpenScriptInfo(e,t,i,n);if(!o)return;const{defaultProject:a,tsconfigProject:s,seenProjects:c}=o;return a&&forEachAncestorProjectLoad(e,s,e=>{c.set(e.project,t)},t,`Creating project possibly referencing default composite project ${a.getProjectName()} of open file ${e.fileName}`,i,n,!0,r),o}loadAncestorProjectTree(e){e??(e=new Set(mapDefinedIterator(this.configuredProjects.entries(),([e,t])=>t.initialLoadPending?void 0:e)));const t=new Set,n=arrayFrom(this.configuredProjects.values());for(const r of n)forEachPotentialProjectReference(r,t=>e.has(t))&&updateProjectIfDirty(r),this.ensureProjectChildren(r,e,t)}ensureProjectChildren(e,t,n){var r;if(!tryAddToSet(n,e.canonicalConfigFilePath))return;if(e.getCompilerOptions().disableReferencedProjectLoad)return;const i=null==(r=e.getCurrentProgram())?void 0:r.getResolvedProjectReferences();if(i)for(const r of i){if(!r)continue;const i=forEachResolvedProjectReference(r.references,e=>t.has(e.sourceFile.path)?e:void 0);if(!i)continue;const o=toNormalizedPath(r.sourceFile.fileName),a=this.findConfiguredProjectByProjectName(o)??this.createConfiguredProject(o,`Creating project referenced by : ${e.projectName} as it references project ${i.sourceFile.fileName}`);updateProjectIfDirty(a),this.ensureProjectChildren(a,t,n)}}cleanupConfiguredProjects(e,t,n){this.getOrphanConfiguredProjects(e,n,t).forEach(e=>this.removeProject(e))}cleanupProjectsAndScriptInfos(e,t,n){this.cleanupConfiguredProjects(e,n,t);for(const e of this.inferredProjects.slice())e.isOrphan()&&this.removeProject(e);this.removeOrphanScriptInfos()}tryInvokeWildCardDirectories(e){this.configFileExistenceInfoCache.forEach((t,n)=>{var r,i;(null==(r=t.config)?void 0:r.parsedCommandLine)&&!contains(t.config.parsedCommandLine.fileNames,e.fileName,this.host.useCaseSensitiveFileNames?equateStringsCaseSensitive:equateStringsCaseInsensitive)&&(null==(i=t.config.watchedDirectories)||i.forEach((r,i)=>{containsPath(i,e.fileName,!this.host.useCaseSensitiveFileNames)&&(this.logger.info(`Invoking ${n}:: wildcard for open scriptInfo:: ${e.fileName}`),this.onWildCardDirectoryWatcherInvoke(i,n,t.config,r.watcher,e.fileName))}))})}openClientFileWithNormalizedPath(e,t,n,r,i){const o=this.getScriptInfoForPath(normalizedPathToPath(e,i?this.getNormalizedAbsolutePath(i):this.currentDirectory,this.toCanonicalFileName)),a=this.getOrCreateOpenScriptInfo(e,t,n,r,i);o||!a||a.isDynamic||this.tryInvokeWildCardDirectories(a);const{retainProjects:s,...c}=this.assignProjectToOpenedScriptInfo(a);return this.cleanupProjectsAndScriptInfos(s,new Set([a.path]),void 0),this.telemetryOnOpenFile(a),this.printProjects(),c}getOrphanConfiguredProjects(e,t,n){const r=new Set(this.configuredProjects.values()),markOriginalProjectsAsUsed=e=>{!e.originalConfiguredProjects||!isConfiguredProject(e)&&e.isOrphan()||e.originalConfiguredProjects.forEach((e,t)=>{const n=this.getConfiguredProjectByCanonicalConfigFilePath(t);return n&&retainConfiguredProject(n)})};return null==e||e.forEach((e,t)=>retainConfiguredProject(t)),r.size?(this.inferredProjects.forEach(markOriginalProjectsAsUsed),this.externalProjects.forEach(markOriginalProjectsAsUsed),this.externalProjectToConfiguredProjectMap.forEach((e,t)=>{(null==n?void 0:n.has(t))||e.forEach(retainConfiguredProject)}),r.size?(forEachEntry(this.openFiles,(e,n)=>{if(null==t?void 0:t.has(n))return;const i=this.getScriptInfoForPath(n);if(find(i.containingProjects,isExternalProject))return;const o=this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(i,1);return(null==o?void 0:o.defaultProject)&&(null==o||o.seenProjects.forEach((e,t)=>retainConfiguredProject(t)),!r.size)?r:void 0}),r.size?(forEachEntry(this.configuredProjects,e=>{if(r.has(e)&&(isPendingUpdate(e)||forEachReferencedProject(e,isRetained))&&(retainConfiguredProject(e),!r.size))return r}),r):r):r):r;function isRetained(e){return!r.has(e)||isPendingUpdate(e)}function isPendingUpdate(e){var t,n;return(e.deferredClose||e.projectService.hasPendingProjectUpdate(e))&&!!(null==(n=null==(t=e.projectService.configFileExistenceInfoCache.get(e.canonicalConfigFilePath))?void 0:t.openFilesImpactedByConfigFile)?void 0:n.size)}function retainConfiguredProject(e){r.delete(e)&&(markOriginalProjectsAsUsed(e),forEachReferencedProject(e,retainConfiguredProject))}}removeOrphanScriptInfos(){const e=new Map(this.filenameToScriptInfo);this.filenameToScriptInfo.forEach(t=>{if(!t.deferredDelete){if(!t.isScriptOpen()&&t.isOrphan()&&!scriptInfoIsContainedByDeferredClosedProject(t)&&!scriptInfoIsContainedByBackgroundProject(t)){if(!t.sourceMapFilePath)return;let e;if(isString(t.sourceMapFilePath)){const n=this.filenameToScriptInfo.get(t.sourceMapFilePath);e=null==n?void 0:n.sourceInfos}else e=t.sourceMapFilePath.sourceInfos;if(!e)return;if(!forEachKey(e,e=>{const t=this.getScriptInfoForPath(e);return!!t&&(t.isScriptOpen()||!t.isOrphan())}))return}if(e.delete(t.path),t.sourceMapFilePath){let n;if(isString(t.sourceMapFilePath)){const r=this.filenameToScriptInfo.get(t.sourceMapFilePath);(null==r?void 0:r.deferredDelete)?t.sourceMapFilePath={watcher:this.addMissingSourceMapFile(r.fileName,t.path),sourceInfos:r.sourceInfos}:e.delete(t.sourceMapFilePath),n=null==r?void 0:r.sourceInfos}else n=t.sourceMapFilePath.sourceInfos;n&&n.forEach((t,n)=>e.delete(n))}}}),e.forEach(e=>this.deleteScriptInfo(e))}telemetryOnOpenFile(e){if(0!==this.serverMode||!this.eventHandler||!e.isJavaScript()||!addToSeen(this.allJsFilesForOpenFileTelemetry,e.path))return;const t=this.ensureDefaultProjectForFile(e);if(!t.languageServiceEnabled)return;const n=t.getSourceFile(e.path),r=!!n&&!!n.checkJsDirective;this.eventHandler({eventName:ff,data:{info:{checkJs:r}}})}closeClientFile(e,t){const n=this.getScriptInfoForNormalizedPath(toNormalizedPath(e)),r=!!n&&this.closeOpenFile(n,t);return t||this.printProjects(),r}collectChanges(e,t,n,r){for(const i of t){const t=find(e,e=>e.projectName===i.getProjectName());r.push(i.getChangesSinceVersion(t&&t.version,n))}}synchronizeProjectList(e,t){const n=[];return this.collectChanges(e,this.externalProjects,t,n),this.collectChanges(e,mapDefinedIterator(this.configuredProjects.values(),e=>e.deferredClose?void 0:e),t,n),this.collectChanges(e,this.inferredProjects,t,n),n}applyChangesInOpenFiles(e,t,n){let r,i,o,a=!1;if(e)for(const t of e){(r??(r=[])).push(this.getScriptInfoForPath(normalizedPathToPath(toNormalizedPath(t.fileName),t.projectRootPath?this.getNormalizedAbsolutePath(t.projectRootPath):this.currentDirectory,this.toCanonicalFileName)));const e=this.getOrCreateOpenScriptInfo(toNormalizedPath(t.fileName),t.content,tryConvertScriptKindName(t.scriptKind),t.hasMixedContent,t.projectRootPath?toNormalizedPath(t.projectRootPath):void 0);(i||(i=[])).push(e)}if(t)for(const e of t){const t=this.getScriptInfo(e.fileName);h.assert(!!t),this.applyChangesToFile(t,e.changes)}if(n)for(const e of n)a=this.closeClientFile(e,!0)||a;forEach(r,(e,t)=>e||!i[t]||i[t].isDynamic?void 0:this.tryInvokeWildCardDirectories(i[t])),null==i||i.forEach(e=>{var t;return null==(t=this.assignProjectToOpenedScriptInfo(e).retainProjects)?void 0:t.forEach((e,t)=>(o??(o=new Map)).set(t,e))}),a&&this.assignOrphanScriptInfosToInferredProject(),i?(this.cleanupProjectsAndScriptInfos(o,new Set(i.map(e=>e.path)),void 0),i.forEach(e=>this.telemetryOnOpenFile(e)),this.printProjects()):length(n)&&this.printProjects()}applyChangesToFile(e,t){for(const n of t)e.editContent(n.span.start,n.span.start+n.span.length,n.newText)}closeExternalProject(e,t){const n=toNormalizedPath(e);if(this.externalProjectToConfiguredProjectMap.get(n))this.externalProjectToConfiguredProjectMap.delete(n);else{const t=this.findExternalProjectByProjectName(e);t&&this.removeProject(t)}t&&(this.cleanupConfiguredProjects(),this.printProjects())}openExternalProjects(e){const t=new Set(this.externalProjects.map(e=>e.getProjectName()));this.externalProjectToConfiguredProjectMap.forEach((e,n)=>t.add(n));for(const n of e)this.openExternalProject(n,!1),t.delete(n.projectFileName);t.forEach(e=>this.closeExternalProject(e,!1)),this.cleanupConfiguredProjects(),this.printProjects()}static escapeFilenameForRegex(e){return e.replace(this.filenameEscapeRegexp,"\\$&")}resetSafeList(){this.safelist=bf}applySafeList(e){const t=e.typeAcquisition;h.assert(!!t,"proj.typeAcquisition should be set by now");const n=this.applySafeListWorker(e,e.rootFiles,t);return(null==n?void 0:n.excludedFiles)??[]}applySafeListWorker(e,t,n){if(!1===n.enable||n.disableFilenameBasedTypeAcquisition)return;const r=n.include||(n.include=[]),i=[],o=t.map(e=>normalizeSlashes(e.fileName));for(const e of Object.keys(this.safelist)){const t=this.safelist[e];for(const n of o)if(t.match.test(n)){if(this.logger.info(`Excluding files based on rule ${e} matching file '${n}'`),t.types)for(const e of t.types)r.includes(e)||r.push(e);if(t.exclude)for(const r of t.exclude){const o=n.replace(t.match,(...t)=>r.map(n=>"number"==typeof n?isString(t[n])?_ProjectService.escapeFilenameForRegex(t[n]):(this.logger.info(`Incorrect RegExp specification in safelist rule ${e} - not enough groups`),"\\*"):n).join(""));i.includes(o)||i.push(o)}else{const e=_ProjectService.escapeFilenameForRegex(n);i.includes(e)||i.push(e)}}}const a=i.map(e=>new RegExp(e,"i"));let s,c;for(let e=0;et.test(o[e])))addExcludedFile(e);else{if(n.enable){const t=getBaseFileName(toFileNameLowerCase(o[e]));if(fileExtensionIs(t,"js")){const n=removeMinAndVersionNumbers(removeFileExtension(t)),i=this.legacySafelist.get(n);if(void 0!==i){this.logger.info(`Excluded '${o[e]}' because it matched ${n} from the legacy safelist`),addExcludedFile(e),r.includes(i)||r.push(i);continue}}}/^.+[.-]min\.js$/.test(o[e])?addExcludedFile(e):null==s||s.push(t[e])}return c?{rootFiles:s,excludedFiles:c}:void 0;function addExcludedFile(e){c||(h.assert(!s),s=t.slice(0,e),c=[]),c.push(o[e])}}openExternalProject(e,t){const n=this.findExternalProjectByProjectName(e.projectFileName);let r,i=[];for(const t of e.rootFiles){const n=toNormalizedPath(t.fileName);if(getBaseConfigFileName(n)){if(0===this.serverMode&&this.host.fileExists(n)){let t=this.findConfiguredProjectByProjectName(n);t||(t=this.createConfiguredProject(n,`Creating configured project in external project: ${e.projectFileName}`),this.getHostPreferences().lazyConfiguredProjectsFromExternalProject||t.updateGraph()),(r??(r=new Set)).add(t),h.assert(!t.isClosed())}}else i.push(t)}if(r)this.externalProjectToConfiguredProjectMap.set(e.projectFileName,r),n&&this.removeProject(n);else{this.externalProjectToConfiguredProjectMap.delete(e.projectFileName);const t=e.typeAcquisition||{};t.include=t.include||[],t.exclude=t.exclude||[],void 0===t.enable&&(t.enable=hasNoTypeScriptSource(i.map(e=>e.fileName)));const r=this.applySafeListWorker(e,i,t),o=(null==r?void 0:r.excludedFiles)??[];if(i=(null==r?void 0:r.rootFiles)??i,n){n.excludedFiles=o;const r=convertCompilerOptions(e.options),a=convertWatchOptions(e.options,n.getCurrentDirectory()),s=this.getFilenameForExceededTotalSizeLimitForNonTsFiles(e.projectFileName,r,i,Ef);s?n.disableLanguageService(s):n.enableLanguageService(),n.setProjectErrors(null==a?void 0:a.errors),this.updateRootAndOptionsOfNonInferredProject(n,i,Ef,r,t,e.options.compileOnSave,null==a?void 0:a.watchOptions),n.updateGraph()}else{this.createExternalProject(e.projectFileName,i,e.options,t,o).updateGraph()}}t&&(this.cleanupConfiguredProjects(r,new Set([e.projectFileName])),this.printProjects())}hasDeferredExtension(){for(const e of this.hostConfiguration.extraFileExtensions)if(7===e.scriptKind)return!0;return!1}requestEnablePlugin(e,t,n){if(this.host.importPlugin||this.host.require)if(this.logger.info(`Enabling plugin ${t.name} from candidate paths: ${n.join(",")}`),!t.name||isExternalModuleNameRelative(t.name)||/[\\/]\.\.?(?:$|[\\/])/.test(t.name))this.logger.info(`Skipped loading plugin ${t.name||JSON.stringify(t)} because only package name is allowed plugin name`);else{if(this.host.importPlugin){const r=Y_.importServicePluginAsync(t,n,this.host,e=>this.logger.info(e));this.pendingPluginEnablements??(this.pendingPluginEnablements=new Map);let i=this.pendingPluginEnablements.get(e);return i||this.pendingPluginEnablements.set(e,i=[]),void i.push(r)}this.endEnablePlugin(e,Y_.importServicePluginSync(t,n,this.host,e=>this.logger.info(e)))}else this.logger.info("Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded")}endEnablePlugin(e,{pluginConfigEntry:t,resolvedModule:n,errorLogs:r}){var i;if(n){const r=null==(i=this.currentPluginConfigOverrides)?void 0:i.get(t.name);if(r){const e=t.name;(t=r).name=e}e.enableProxy(n,t)}else forEach(r,e=>this.logger.info(e)),this.logger.info(`Couldn't find ${t.name}`)}hasNewPluginEnablementRequests(){return!!this.pendingPluginEnablements}hasPendingPluginEnablements(){return!!this.currentPluginEnablementPromise}async waitForPendingPlugins(){for(;this.currentPluginEnablementPromise;)await this.currentPluginEnablementPromise}enableRequestedPlugins(){this.pendingPluginEnablements&&this.enableRequestedPluginsAsync()}async enableRequestedPluginsAsync(){if(this.currentPluginEnablementPromise&&await this.waitForPendingPlugins(),!this.pendingPluginEnablements)return;const e=arrayFrom(this.pendingPluginEnablements.entries());this.pendingPluginEnablements=void 0,this.currentPluginEnablementPromise=this.enableRequestedPluginsWorker(e),await this.currentPluginEnablementPromise}async enableRequestedPluginsWorker(e){h.assert(void 0===this.currentPluginEnablementPromise);let t=!1;await Promise.all(map(e,async([e,n])=>{const r=await Promise.all(n);if(e.isClosed()||isProjectDeferredClose(e))this.logger.info(`Cancelling plugin enabling for ${e.getProjectName()} as it is ${e.isClosed()?"closed":"deferred close"}`);else{t=!0;for(const t of r)this.endEnablePlugin(e,t);this.delayUpdateProjectGraph(e)}})),this.currentPluginEnablementPromise=void 0,t&&this.sendProjectsUpdatedInBackgroundEvent()}configurePlugin(e){this.forEachEnabledProject(t=>t.onPluginConfigurationChanged(e.pluginName,e.configuration)),this.currentPluginConfigOverrides=this.currentPluginConfigOverrides||new Map,this.currentPluginConfigOverrides.set(e.pluginName,e.configuration)}getPackageJsonsVisibleToFile(e,t,n){const r=this.packageJsonCache,i=n&&this.toPath(n),o=[],processDirectory=e=>{switch(r.directoryHasPackageJson(e)){case 3:return r.searchDirectoryAndAncestors(e,t),processDirectory(e);case-1:const n=combinePaths(e,"package.json");this.watchPackageJsonFile(n,this.toPath(n),t);const i=r.getInDirectory(e);i&&o.push(i)}if(i&&i===e)return!0};return forEachAncestorDirectoryStoppingAtGlobalCache(t,getDirectoryPath(e),processDirectory),o}getNearestAncestorDirectoryWithPackageJson(e,t){return forEachAncestorDirectoryStoppingAtGlobalCache(t,e,e=>{switch(this.packageJsonCache.directoryHasPackageJson(e)){case-1:return e;case 0:return;case 3:return this.host.fileExists(combinePaths(e,"package.json"))?e:void 0}})}watchPackageJsonFile(e,t,n){h.assert(void 0!==n);let r=(this.packageJsonFilesMap??(this.packageJsonFilesMap=new Map)).get(t);if(!r){let n=this.watchFactory.watchFile(e,(e,n)=>{switch(n){case 0:case 1:this.packageJsonCache.addOrUpdate(e,t),this.onPackageJsonChange(r);break;case 2:this.packageJsonCache.delete(t),this.onPackageJsonChange(r),r.projects.clear(),r.close()}},250,this.hostConfiguration.watchOptions,Ya.PackageJson);r={projects:new Set,close:()=>{var e;!r.projects.size&&n&&(n.close(),n=void 0,null==(e=this.packageJsonFilesMap)||e.delete(t),this.packageJsonCache.invalidate(t))}},this.packageJsonFilesMap.set(t,r)}r.projects.add(n),(n.packageJsonWatches??(n.packageJsonWatches=new Set)).add(r)}onPackageJsonChange(e){e.projects.forEach(e=>{var t;return null==(t=e.onPackageJsonChange)?void 0:t.call(e)})}includePackageJsonAutoImports(){switch(this.hostConfiguration.preferences.includePackageJsonAutoImports){case"on":return 1;case"off":return 0;default:return 2}}getIncompleteCompletionsCache(){return this.incompleteCompletionsCache||(this.incompleteCompletionsCache=function createIncompleteCompletionsCache(){let e;return{get:()=>e,set(t){e=t},clear(){e=void 0}}}())}};Pf.filenameEscapeRegexp=/[-/\\^$*+?.()|[\]{}]/g;var Df=Pf;function isConfigFile(e){return void 0!==e.kind}function printProjectWithoutFileNames(e){e.print(!1,!1,!1)}function createModuleSpecifierCache(e){let t,n,r;const i={get(e,t,i,o){if(n&&r===key(e,i,o))return n.get(t)},set(n,r,i,o,a,s,c){if(ensureCache(n,i,o).set(r,createInfo(a,s,c,void 0,!1)),c)for(const n of s)if(n.isInNodeModules){const r=n.path.substring(0,n.path.indexOf(Mo)+Mo.length-1),i=e.toPath(r);(null==t?void 0:t.has(i))||(t||(t=new Map)).set(i,e.watchNodeModulesForPackageJsonChanges(r))}},setModulePaths(e,t,n,r,i){const o=ensureCache(e,n,r),a=o.get(t);a?a.modulePaths=i:o.set(t,createInfo(void 0,i,void 0,void 0,void 0))},setBlockedByPackageJsonDependencies(e,t,n,r,i,o){const a=ensureCache(e,n,r),s=a.get(t);s?(s.isBlockedByPackageJsonDependencies=o,s.packageName=i):a.set(t,createInfo(void 0,void 0,void 0,i,o))},clear(){null==t||t.forEach(closeFileWatcher),null==n||n.clear(),null==t||t.clear(),r=void 0},count:()=>n?n.size:0};return h.isDebugging&&Object.defineProperty(i,"__cache",{get:()=>n}),i;function ensureCache(e,t,o){const a=key(e,t,o);return n&&r!==a&&i.clear(),r=a,n||(n=new Map)}function key(e,t,n){return`${e},${t.importModuleSpecifierEnding},${t.importModuleSpecifierPreference},${n.overrideImportMode}`}function createInfo(e,t,n,r,i){return{kind:e,modulePaths:t,moduleSpecifiers:n,packageName:r,isBlockedByPackageJsonDependencies:i}}}function createPackageJsonCache(e){const t=new Map,n=new Map;return{addOrUpdate,invalidate:function invalidate(e){t.delete(e),n.delete(getDirectoryPath(e))},delete:e=>{t.delete(e),n.set(getDirectoryPath(e),!0)},getInDirectory:n=>t.get(e.toPath(combinePaths(n,"package.json")))||void 0,directoryHasPackageJson:t=>directoryHasPackageJson(e.toPath(t)),searchDirectoryAndAncestors:(t,r)=>{forEachAncestorDirectoryStoppingAtGlobalCache(r,t,t=>{const r=e.toPath(t);if(3!==directoryHasPackageJson(r))return!0;const i=combinePaths(t,"package.json");tryFileExists(e,i)?addOrUpdate(i,combinePaths(r,"package.json")):n.set(r,!0)})}};function addOrUpdate(r,i){const o=h.checkDefined(createPackageJsonInfo(r,e.host));t.set(i,o),n.delete(getDirectoryPath(i))}function directoryHasPackageJson(e){return t.has(combinePaths(e,"package.json"))?-1:n.has(e)?0:3}}var If={isCancellationRequested:()=>!1,setRequest:()=>{},resetRequest:()=>{}};function isDeclarationFileInJSOnlyNonConfiguredProject(e,t){if((isInferredProject(e)||isExternalProject(e))&&e.isJsOnlyProject()){const n=e.getScriptInfoForNormalizedPath(t);return n&&!n.isJavaScript()}return!1}function formatDiag(e,t,n){const r=t.getScriptInfoForNormalizedPath(e);return{start:r.positionToLineOffset(n.start),end:r.positionToLineOffset(n.start+n.length),text:flattenDiagnosticMessageText(n.messageText,"\n"),code:n.code,category:diagnosticCategoryName(n),reportsUnnecessary:n.reportsUnnecessary,reportsDeprecated:n.reportsDeprecated,source:n.source,relatedInformation:map(n.relatedInformation,formatRelatedInformation)}}function formatRelatedInformation(e){return e.file?{span:{start:convertToLocation(getLineAndCharacterOfPosition(e.file,e.start)),end:convertToLocation(getLineAndCharacterOfPosition(e.file,e.start+e.length)),file:e.file.fileName},message:flattenDiagnosticMessageText(e.messageText,"\n"),category:diagnosticCategoryName(e),code:e.code}:{message:flattenDiagnosticMessageText(e.messageText,"\n"),category:diagnosticCategoryName(e),code:e.code}}function convertToLocation(e){return{line:e.line+1,offset:e.character+1}}function formatDiagnosticToProtocol(e,t){const n=e.file&&convertToLocation(getLineAndCharacterOfPosition(e.file,e.start)),r=e.file&&convertToLocation(getLineAndCharacterOfPosition(e.file,e.start+e.length)),i=flattenDiagnosticMessageText(e.messageText,"\n"),{code:o,source:a}=e,s={start:n,end:r,text:i,code:o,category:diagnosticCategoryName(e),reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated,source:a,relatedInformation:map(e.relatedInformation,formatRelatedInformation)};return t?{...s,fileName:e.file&&e.file.fileName}:s}var Af=j_;function formatMessage2(e,t,n,r){const i=t.hasLevel(3),o=JSON.stringify(e);i&&t.info(`${e.type}:${stringifyIndented(e)}`);return`Content-Length: ${1+n(o,"utf8")}\r\n\r\n${o}${r}`}var Of=class{constructor(e){this.operationHost=e}startNew(e){this.complete(),this.requestId=this.operationHost.getCurrentRequestId(),this.executeAction(e)}complete(){void 0!==this.requestId&&(this.operationHost.sendRequestCompletedEvent(this.requestId,this.performanceData),this.requestId=void 0),this.setTimerHandle(void 0),this.setImmediateId(void 0),this.performanceData=void 0}immediate(e,t){const n=this.requestId;h.assert(n===this.operationHost.getCurrentRequestId(),"immediate: incorrect request id"),this.setImmediateId(this.operationHost.getServerHost().setImmediate(()=>{this.immediateId=void 0,this.operationHost.executeWithRequestId(n,()=>this.executeAction(t),this.performanceData)},e))}delay(e,t,n){const r=this.requestId;h.assert(r===this.operationHost.getCurrentRequestId(),"delay: incorrect request id"),this.setTimerHandle(this.operationHost.getServerHost().setTimeout(()=>{this.timerHandle=void 0,this.operationHost.executeWithRequestId(r,()=>this.executeAction(n),this.performanceData)},t,e))}executeAction(e){var t,n,r,i,o,a;let s=!1;try{this.operationHost.isCancellationRequested()?(s=!0,null==(t=J)||t.instant(J.Phase.Session,"stepCanceled",{seq:this.requestId,early:!0})):(null==(n=J)||n.push(J.Phase.Session,"stepAction",{seq:this.requestId}),e(this),null==(r=J)||r.pop())}catch(e){null==(i=J)||i.popAll(),s=!0,e instanceof se?null==(o=J)||o.instant(J.Phase.Session,"stepCanceled",{seq:this.requestId}):(null==(a=J)||a.instant(J.Phase.Session,"stepError",{seq:this.requestId,message:e.message}),this.operationHost.logError(e,`delayed processing of request ${this.requestId}`))}this.performanceData=this.operationHost.getPerformanceData(),!s&&this.hasPendingWork()||this.complete()}setTimerHandle(e){void 0!==this.timerHandle&&this.operationHost.getServerHost().clearTimeout(this.timerHandle),this.timerHandle=e}setImmediateId(e){void 0!==this.immediateId&&this.operationHost.getServerHost().clearImmediate(this.immediateId),this.immediateId=e}hasPendingWork(){return!!this.timerHandle||!!this.immediateId}};function toEvent(e,t){return{seq:0,type:"event",event:e,body:t}}function createDocumentSpanSet(e){return createSet(({textSpan:e})=>e.start+100003*e.length,getDocumentSpansEqualityComparer(e))}function getDefinitionLocation(e,t,n){const r=e.getLanguageService().getDefinitionAtPosition(t.fileName,t.pos,!1,n),i=r&&firstOrUndefined(r);return i&&!i.isLocal?{fileName:i.fileName,pos:i.textSpan.start}:void 0}function forEachProjectInProjects(e,t,n){for(const r of isArray(e)?e:e.projects)n(r,t);!isArray(e)&&e.symLinkedProjects&&e.symLinkedProjects.forEach((e,t)=>{for(const r of e)n(r,t)})}function getPerProjectReferences(e,t,n,r,i,o,a){const s=new Map,c=createQueue();c.enqueue({project:t,location:n}),forEachProjectInProjects(e,n.fileName,(e,t)=>{const r={fileName:t,pos:n.pos};c.enqueue({project:e,location:r})});const l=t.projectService,d=t.getCancellationToken(),p=memoize(()=>t.isSourceOfProjectReferenceRedirect(r.fileName)?r:t.getLanguageService().getSourceMapper().tryGetGeneratedPosition(r)),u=memoize(()=>t.isSourceOfProjectReferenceRedirect(r.fileName)?r:t.getLanguageService().getSourceMapper().tryGetSourcePosition(r)),m=new Set;e:for(;!c.isEmpty();){for(;!c.isEmpty();){if(d.isCancellationRequested())break e;const{project:e,location:t}=c.dequeue();if(s.has(e))continue;if(isLocationProjectReferenceRedirect(e,t))continue;if(updateProjectIfDirty(e),!e.containsFile(toNormalizedPath(t.fileName)))continue;const n=searchPosition(e,t);s.set(e,n??w_),m.add(getProjectKey(e))}r&&(l.loadAncestorProjectTree(m),l.forEachEnabledProject(e=>{if(d.isCancellationRequested())return;if(s.has(e))return;const t=i(r,e,p,u);t&&c.enqueue({project:e,location:t})}))}return 1===s.size?firstIterator(s.values()):s;function searchPosition(e,t){const n=o(e,t);if(!n||!a)return n;for(const t of n)a(t,t=>{const n=l.getOriginalLocationEnsuringConfiguredProject(e,t);if(!n)return;const r=l.getScriptInfo(n.fileName);for(const e of r.containingProjects)e.isOrphan()||s.has(e)||c.enqueue({project:e,location:n});const i=l.getSymlinkedProjects(r);i&&i.forEach((e,t)=>{for(const r of e)r.isOrphan()||s.has(r)||c.enqueue({project:r,location:{fileName:t,pos:n.pos}})})});return n}}function mapDefinitionInProjectIfFileInProject(e,t){if(t.containsFile(toNormalizedPath(e.fileName))&&!isLocationProjectReferenceRedirect(t,e))return e}function mapDefinitionInProject(e,t,n,r){const i=mapDefinitionInProjectIfFileInProject(e,t);if(i)return i;const o=n();if(o&&t.containsFile(toNormalizedPath(o.fileName)))return o;const a=r();return a&&t.containsFile(toNormalizedPath(a.fileName))?a:void 0}function isLocationProjectReferenceRedirect(e,t){if(!t)return!1;const n=e.getLanguageService().getProgram();if(!n)return!1;const r=n.getSourceFile(t.fileName);return!!r&&r.resolvedPath!==r.path&&r.resolvedPath!==e.toPath(t.fileName)}function getProjectKey(e){return isConfiguredProject(e)?e.canonicalConfigFilePath:e.getProjectName()}function documentSpanLocation({fileName:e,textSpan:t}){return{fileName:e,pos:t.start}}function getMappedLocationForProject(e,t){return getMappedLocation(e,t.getSourceMapper(),e=>t.projectService.fileExists(e))}function getMappedDocumentSpanForProject(e,t){return getMappedDocumentSpan(e,t.getSourceMapper(),e=>t.projectService.fileExists(e))}function getMappedContextSpanForProject(e,t){return getMappedContextSpan(e,t.getSourceMapper(),e=>t.projectService.fileExists(e))}var wf=["openExternalProject","openExternalProjects","closeExternalProject","synchronizeProjectList","emit-output","compileOnSaveAffectedFileList","compileOnSaveEmitFile","compilerOptionsDiagnostics-full","encodedSemanticClassifications-full","semanticDiagnosticsSync","suggestionDiagnosticsSync","geterrForProject","reload","reloadProjects","getCodeFixes","getCodeFixes-full","getCombinedCodeFix","getCombinedCodeFix-full","applyCodeActionCommand","getSupportedCodeFixes","getApplicableRefactors","getMoveToRefactoringFileSuggestions","getEditsForRefactor","getEditsForRefactor-full","organizeImports","organizeImports-full","getEditsForFileRename","getEditsForFileRename-full","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","getPasteEdits","copilotRelated"],Lf=[...wf,"definition","definition-full","definitionAndBoundSpan","definitionAndBoundSpan-full","typeDefinition","implementation","implementation-full","references","references-full","rename","renameLocations-full","rename-full","quickinfo","quickinfo-full","completionInfo","completions","completions-full","completionEntryDetails","completionEntryDetails-full","signatureHelp","signatureHelp-full","navto","navto-full","documentHighlights","documentHighlights-full","preparePasteEdits"],Mf=class _Session{constructor(e){this.changeSeq=0,this.regionDiagLineCountThreshold=500,this.handlers=new Map(Object.entries({status:()=>{const e={version:s};return this.requiredResponse(e)},openExternalProject:e=>(this.projectService.openExternalProject(e.arguments,!0),this.requiredResponse(!0)),openExternalProjects:e=>(this.projectService.openExternalProjects(e.arguments.projects),this.requiredResponse(!0)),closeExternalProject:e=>(this.projectService.closeExternalProject(e.arguments.projectFileName,!0),this.requiredResponse(!0)),synchronizeProjectList:e=>{const t=this.projectService.synchronizeProjectList(e.arguments.knownProjects,e.arguments.includeProjectReferenceRedirectInfo);if(!t.some(e=>e.projectErrors&&0!==e.projectErrors.length))return this.requiredResponse(t);const n=map(t,e=>e.projectErrors&&0!==e.projectErrors.length?{info:e.info,changes:e.changes,files:e.files,projectErrors:this.convertToDiagnosticsWithLinePosition(e.projectErrors,void 0)}:e);return this.requiredResponse(n)},updateOpen:e=>(this.changeSeq++,this.projectService.applyChangesInOpenFiles(e.arguments.openFiles&&mapIterator(e.arguments.openFiles,e=>({fileName:e.file,content:e.fileContent,scriptKind:e.scriptKindName,projectRootPath:e.projectRootPath})),e.arguments.changedFiles&&mapIterator(e.arguments.changedFiles,e=>({fileName:e.fileName,changes:mapDefinedIterator(arrayReverseIterator(e.textChanges),t=>{const n=h.checkDefined(this.projectService.getScriptInfo(e.fileName)),r=n.lineOffsetToPosition(t.start.line,t.start.offset),i=n.lineOffsetToPosition(t.end.line,t.end.offset);return r>=0?{span:{start:r,length:i-r},newText:t.newText}:void 0})})),e.arguments.closedFiles),this.requiredResponse(!0)),applyChangedToOpenFiles:e=>(this.changeSeq++,this.projectService.applyChangesInOpenFiles(e.arguments.openFiles,e.arguments.changedFiles&&mapIterator(e.arguments.changedFiles,e=>({fileName:e.fileName,changes:arrayReverseIterator(e.changes)})),e.arguments.closedFiles),this.requiredResponse(!0)),exit:()=>(this.exit(),this.notRequired(void 0)),definition:e=>this.requiredResponse(this.getDefinition(e.arguments,!0)),"definition-full":e=>this.requiredResponse(this.getDefinition(e.arguments,!1)),definitionAndBoundSpan:e=>this.requiredResponse(this.getDefinitionAndBoundSpan(e.arguments,!0)),"definitionAndBoundSpan-full":e=>this.requiredResponse(this.getDefinitionAndBoundSpan(e.arguments,!1)),findSourceDefinition:e=>this.requiredResponse(this.findSourceDefinition(e.arguments)),"emit-output":e=>this.requiredResponse(this.getEmitOutput(e.arguments)),typeDefinition:e=>this.requiredResponse(this.getTypeDefinition(e.arguments)),implementation:e=>this.requiredResponse(this.getImplementation(e.arguments,!0)),"implementation-full":e=>this.requiredResponse(this.getImplementation(e.arguments,!1)),references:e=>this.requiredResponse(this.getReferences(e.arguments,!0)),"references-full":e=>this.requiredResponse(this.getReferences(e.arguments,!1)),rename:e=>this.requiredResponse(this.getRenameLocations(e.arguments,!0)),"renameLocations-full":e=>this.requiredResponse(this.getRenameLocations(e.arguments,!1)),"rename-full":e=>this.requiredResponse(this.getRenameInfo(e.arguments)),open:e=>(this.openClientFile(toNormalizedPath(e.arguments.file),e.arguments.fileContent,convertScriptKindName(e.arguments.scriptKindName),e.arguments.projectRootPath?toNormalizedPath(e.arguments.projectRootPath):void 0),this.notRequired(e)),quickinfo:e=>this.requiredResponse(this.getQuickInfoWorker(e.arguments,!0)),"quickinfo-full":e=>this.requiredResponse(this.getQuickInfoWorker(e.arguments,!1)),getOutliningSpans:e=>this.requiredResponse(this.getOutliningSpans(e.arguments,!0)),outliningSpans:e=>this.requiredResponse(this.getOutliningSpans(e.arguments,!1)),todoComments:e=>this.requiredResponse(this.getTodoComments(e.arguments)),indentation:e=>this.requiredResponse(this.getIndentation(e.arguments)),nameOrDottedNameSpan:e=>this.requiredResponse(this.getNameOrDottedNameSpan(e.arguments)),breakpointStatement:e=>this.requiredResponse(this.getBreakpointStatement(e.arguments)),braceCompletion:e=>this.requiredResponse(this.isValidBraceCompletion(e.arguments)),docCommentTemplate:e=>this.requiredResponse(this.getDocCommentTemplate(e.arguments)),getSpanOfEnclosingComment:e=>this.requiredResponse(this.getSpanOfEnclosingComment(e.arguments)),fileReferences:e=>this.requiredResponse(this.getFileReferences(e.arguments,!0)),"fileReferences-full":e=>this.requiredResponse(this.getFileReferences(e.arguments,!1)),format:e=>this.requiredResponse(this.getFormattingEditsForRange(e.arguments)),formatonkey:e=>this.requiredResponse(this.getFormattingEditsAfterKeystroke(e.arguments)),"format-full":e=>this.requiredResponse(this.getFormattingEditsForDocumentFull(e.arguments)),"formatonkey-full":e=>this.requiredResponse(this.getFormattingEditsAfterKeystrokeFull(e.arguments)),"formatRange-full":e=>this.requiredResponse(this.getFormattingEditsForRangeFull(e.arguments)),completionInfo:e=>this.requiredResponse(this.getCompletions(e.arguments,"completionInfo")),completions:e=>this.requiredResponse(this.getCompletions(e.arguments,"completions")),"completions-full":e=>this.requiredResponse(this.getCompletions(e.arguments,"completions-full")),completionEntryDetails:e=>this.requiredResponse(this.getCompletionEntryDetails(e.arguments,!1)),"completionEntryDetails-full":e=>this.requiredResponse(this.getCompletionEntryDetails(e.arguments,!0)),compileOnSaveAffectedFileList:e=>this.requiredResponse(this.getCompileOnSaveAffectedFileList(e.arguments)),compileOnSaveEmitFile:e=>this.requiredResponse(this.emitFile(e.arguments)),signatureHelp:e=>this.requiredResponse(this.getSignatureHelpItems(e.arguments,!0)),"signatureHelp-full":e=>this.requiredResponse(this.getSignatureHelpItems(e.arguments,!1)),"compilerOptionsDiagnostics-full":e=>this.requiredResponse(this.getCompilerOptionsDiagnostics(e.arguments)),"encodedSyntacticClassifications-full":e=>this.requiredResponse(this.getEncodedSyntacticClassifications(e.arguments)),"encodedSemanticClassifications-full":e=>this.requiredResponse(this.getEncodedSemanticClassifications(e.arguments)),cleanup:()=>(this.cleanup(),this.requiredResponse(!0)),semanticDiagnosticsSync:e=>this.requiredResponse(this.getSemanticDiagnosticsSync(e.arguments)),syntacticDiagnosticsSync:e=>this.requiredResponse(this.getSyntacticDiagnosticsSync(e.arguments)),suggestionDiagnosticsSync:e=>this.requiredResponse(this.getSuggestionDiagnosticsSync(e.arguments)),geterr:e=>(this.errorCheck.startNew(t=>this.getDiagnostics(t,e.arguments.delay,e.arguments.files)),this.notRequired(void 0)),geterrForProject:e=>(this.errorCheck.startNew(t=>this.getDiagnosticsForProject(t,e.arguments.delay,e.arguments.file)),this.notRequired(void 0)),change:e=>(this.change(e.arguments),this.notRequired(e)),configure:e=>(this.projectService.setHostConfiguration(e.arguments),this.notRequired(e)),reload:e=>(this.reload(e.arguments),this.requiredResponse({reloadFinished:!0})),saveto:e=>{const t=e.arguments;return this.saveToTmp(t.file,t.tmpfile),this.notRequired(e)},close:e=>{const t=e.arguments;return this.closeClientFile(t.file),this.notRequired(e)},navto:e=>this.requiredResponse(this.getNavigateToItems(e.arguments,!0)),"navto-full":e=>this.requiredResponse(this.getNavigateToItems(e.arguments,!1)),brace:e=>this.requiredResponse(this.getBraceMatching(e.arguments,!0)),"brace-full":e=>this.requiredResponse(this.getBraceMatching(e.arguments,!1)),navbar:e=>this.requiredResponse(this.getNavigationBarItems(e.arguments,!0)),"navbar-full":e=>this.requiredResponse(this.getNavigationBarItems(e.arguments,!1)),navtree:e=>this.requiredResponse(this.getNavigationTree(e.arguments,!0)),"navtree-full":e=>this.requiredResponse(this.getNavigationTree(e.arguments,!1)),documentHighlights:e=>this.requiredResponse(this.getDocumentHighlights(e.arguments,!0)),"documentHighlights-full":e=>this.requiredResponse(this.getDocumentHighlights(e.arguments,!1)),compilerOptionsForInferredProjects:e=>(this.setCompilerOptionsForInferredProjects(e.arguments),this.requiredResponse(!0)),projectInfo:e=>this.requiredResponse(this.getProjectInfo(e.arguments)),reloadProjects:e=>(this.projectService.reloadProjects(),this.notRequired(e)),jsxClosingTag:e=>this.requiredResponse(this.getJsxClosingTag(e.arguments)),linkedEditingRange:e=>this.requiredResponse(this.getLinkedEditingRange(e.arguments)),getCodeFixes:e=>this.requiredResponse(this.getCodeFixes(e.arguments,!0)),"getCodeFixes-full":e=>this.requiredResponse(this.getCodeFixes(e.arguments,!1)),getCombinedCodeFix:e=>this.requiredResponse(this.getCombinedCodeFix(e.arguments,!0)),"getCombinedCodeFix-full":e=>this.requiredResponse(this.getCombinedCodeFix(e.arguments,!1)),applyCodeActionCommand:e=>this.requiredResponse(this.applyCodeActionCommand(e.arguments)),getSupportedCodeFixes:e=>this.requiredResponse(this.getSupportedCodeFixes(e.arguments)),getApplicableRefactors:e=>this.requiredResponse(this.getApplicableRefactors(e.arguments)),getEditsForRefactor:e=>this.requiredResponse(this.getEditsForRefactor(e.arguments,!0)),getMoveToRefactoringFileSuggestions:e=>this.requiredResponse(this.getMoveToRefactoringFileSuggestions(e.arguments)),preparePasteEdits:e=>this.requiredResponse(this.preparePasteEdits(e.arguments)),getPasteEdits:e=>this.requiredResponse(this.getPasteEdits(e.arguments)),"getEditsForRefactor-full":e=>this.requiredResponse(this.getEditsForRefactor(e.arguments,!1)),organizeImports:e=>this.requiredResponse(this.organizeImports(e.arguments,!0)),"organizeImports-full":e=>this.requiredResponse(this.organizeImports(e.arguments,!1)),getEditsForFileRename:e=>this.requiredResponse(this.getEditsForFileRename(e.arguments,!0)),"getEditsForFileRename-full":e=>this.requiredResponse(this.getEditsForFileRename(e.arguments,!1)),configurePlugin:e=>(this.configurePlugin(e.arguments),this.notRequired(e)),selectionRange:e=>this.requiredResponse(this.getSmartSelectionRange(e.arguments,!0)),"selectionRange-full":e=>this.requiredResponse(this.getSmartSelectionRange(e.arguments,!1)),prepareCallHierarchy:e=>this.requiredResponse(this.prepareCallHierarchy(e.arguments)),provideCallHierarchyIncomingCalls:e=>this.requiredResponse(this.provideCallHierarchyIncomingCalls(e.arguments)),provideCallHierarchyOutgoingCalls:e=>this.requiredResponse(this.provideCallHierarchyOutgoingCalls(e.arguments)),toggleLineComment:e=>this.requiredResponse(this.toggleLineComment(e.arguments,!0)),"toggleLineComment-full":e=>this.requiredResponse(this.toggleLineComment(e.arguments,!1)),toggleMultilineComment:e=>this.requiredResponse(this.toggleMultilineComment(e.arguments,!0)),"toggleMultilineComment-full":e=>this.requiredResponse(this.toggleMultilineComment(e.arguments,!1)),commentSelection:e=>this.requiredResponse(this.commentSelection(e.arguments,!0)),"commentSelection-full":e=>this.requiredResponse(this.commentSelection(e.arguments,!1)),uncommentSelection:e=>this.requiredResponse(this.uncommentSelection(e.arguments,!0)),"uncommentSelection-full":e=>this.requiredResponse(this.uncommentSelection(e.arguments,!1)),provideInlayHints:e=>this.requiredResponse(this.provideInlayHints(e.arguments)),mapCode:e=>this.requiredResponse(this.mapCode(e.arguments)),copilotRelated:()=>this.requiredResponse(this.getCopilotRelatedInfo())})),this.host=e.host,this.cancellationToken=e.cancellationToken,this.typingsInstaller=e.typingsInstaller||Nf,this.byteLength=e.byteLength,this.hrtime=e.hrtime,this.logger=e.logger,this.canUseEvents=e.canUseEvents,this.suppressDiagnosticEvents=e.suppressDiagnosticEvents,this.noGetErrOnBackgroundUpdate=e.noGetErrOnBackgroundUpdate;const{throttleWaitMilliseconds:t}=e;this.eventHandler=this.canUseEvents?e.eventHandler||(e=>this.defaultEventHandler(e)):void 0;const n={executeWithRequestId:(e,t,n)=>this.executeWithRequestId(e,t,n),getCurrentRequestId:()=>this.currentRequestId,getPerformanceData:()=>this.performanceData,getServerHost:()=>this.host,logError:(e,t)=>this.logError(e,t),sendRequestCompletedEvent:(e,t)=>this.sendRequestCompletedEvent(e,t),isCancellationRequested:()=>this.cancellationToken.isCancellationRequested()};this.errorCheck=new Of(n);const r={host:this.host,logger:this.logger,cancellationToken:this.cancellationToken,useSingleInferredProject:e.useSingleInferredProject,useInferredProjectPerProjectRoot:e.useInferredProjectPerProjectRoot,typingsInstaller:this.typingsInstaller,throttleWaitMilliseconds:t,eventHandler:this.eventHandler,suppressDiagnosticEvents:this.suppressDiagnosticEvents,globalPlugins:e.globalPlugins,pluginProbeLocations:e.pluginProbeLocations,allowLocalPluginLoads:e.allowLocalPluginLoads,typesMapLocation:e.typesMapLocation,serverMode:e.serverMode,session:this,canUseWatchEvents:e.canUseWatchEvents,incrementalVerifier:e.incrementalVerifier};switch(this.projectService=new Df(r),this.projectService.setPerformanceEventHandler(this.performanceEventHandler.bind(this)),this.gcTimer=new R_(this.host,7e3,this.logger),this.projectService.serverMode){case 0:break;case 1:wf.forEach(e=>this.handlers.set(e,e=>{throw new Error(`Request: ${e.command} not allowed in LanguageServiceMode.PartialSemantic`)}));break;case 2:Lf.forEach(e=>this.handlers.set(e,e=>{throw new Error(`Request: ${e.command} not allowed in LanguageServiceMode.Syntactic`)}));break;default:h.assertNever(this.projectService.serverMode)}}sendRequestCompletedEvent(e,t){this.event({request_seq:e,performanceData:t&&toProtocolPerformanceData(t)},"requestCompleted")}addPerformanceData(e,t){this.performanceData||(this.performanceData={}),this.performanceData[e]=(this.performanceData[e]??0)+t}addDiagnosticsPerformanceData(e,t,n){var r,i;this.performanceData||(this.performanceData={});let o=null==(r=this.performanceData.diagnosticsDuration)?void 0:r.get(e);o||((i=this.performanceData).diagnosticsDuration??(i.diagnosticsDuration=new Map)).set(e,o={}),o[t]=n}performanceEventHandler(e){switch(e.kind){case"UpdateGraph":this.addPerformanceData("updateGraphDurationMs",e.durationMs);break;case"CreatePackageJsonAutoImportProvider":this.addPerformanceData("createAutoImportProviderProgramDurationMs",e.durationMs)}}defaultEventHandler(e){switch(e.eventName){case cf:this.projectsUpdatedInBackgroundEvent(e.data.openFiles);break;case lf:this.event({projectName:e.data.project.getProjectName(),reason:e.data.reason},e.eventName);break;case df:this.event({projectName:e.data.project.getProjectName()},e.eventName);break;case pf:case gf:case yf:case hf:this.event(e.data,e.eventName);break;case uf:this.event({triggerFile:e.data.triggerFile,configFile:e.data.configFileName,diagnostics:map(e.data.diagnostics,e=>formatDiagnosticToProtocol(e,!0))},e.eventName);break;case mf:this.event({projectName:e.data.project.getProjectName(),languageServiceEnabled:e.data.languageServiceEnabled},e.eventName);break;case _f:{const t="telemetry";this.event({telemetryEventName:e.eventName,payload:e.data},t);break}}}projectsUpdatedInBackgroundEvent(e){this.projectService.logger.info(`got projects updated in background ${e}`),e.length&&(this.suppressDiagnosticEvents||this.noGetErrOnBackgroundUpdate||(this.projectService.logger.info(`Queueing diagnostics update for ${e}`),this.errorCheck.startNew(t=>this.updateErrorCheck(t,e,100,!0))),this.event({openFiles:e},cf))}logError(e,t){this.logErrorWorker(e,t)}logErrorWorker(e,t,n){let r="Exception on executing command "+t;if(e.message&&(r+=":\n"+indent2(e.message),e.stack&&(r+="\n"+indent2(e.stack))),this.logger.hasLevel(3)){if(n)try{const{file:e,project:t}=this.getFileAndProject(n),i=t.getScriptInfoForNormalizedPath(e);if(i){const e=getSnapshotText(i.getSnapshot());r+=`\n\nFile text of ${n.file}:${indent2(e)}\n`}}catch{}if(e.ProgramFiles){r+=`\n\nProgram files: ${JSON.stringify(e.ProgramFiles)}\n`,r+="\n\nProjects::\n";let t=0;const addProjectInfo=e=>{r+=`\nProject '${e.projectName}' (${X_[e.projectKind]}) ${t}\n`,r+=e.filesToString(!0),r+="\n-----------------------------------------------\n",t++};this.projectService.externalProjects.forEach(addProjectInfo),this.projectService.configuredProjects.forEach(addProjectInfo),this.projectService.inferredProjects.forEach(addProjectInfo)}}this.logger.msg(r,"Err")}send(e){"event"!==e.type||this.canUseEvents?this.writeMessage(e):this.logger.hasLevel(3)&&this.logger.info(`Session does not support events: ignored event: ${stringifyIndented(e)}`)}writeMessage(e){const t=formatMessage2(e,this.logger,this.byteLength,this.host.newLine);this.host.write(t)}event(e,t){this.send(toEvent(t,e))}doOutput(e,t,n,r,i,o){const a={seq:0,type:"response",command:t,request_seq:n,success:r,performanceData:i&&toProtocolPerformanceData(i)};if(r){let t;if(isArray(e))a.body=e,t=e.metadata,delete e.metadata;else if("object"==typeof e)if(e.metadata){const{metadata:n,...r}=e;a.body=r,t=n}else a.body=e;else a.body=e;t&&(a.metadata=t)}else h.assert(void 0===e);o&&(a.message=o),this.send(a)}semanticCheck(e,t){var n,r;const i=B();null==(n=J)||n.push(J.Phase.Session,"semanticCheck",{file:e,configFilePath:t.canonicalConfigFilePath});const o=isDeclarationFileInJSOnlyNonConfiguredProject(t,e)?w_:t.getLanguageService().getSemanticDiagnostics(e).filter(e=>!!e.file);this.sendDiagnosticsEvent(e,t,o,"semanticDiag",i),null==(r=J)||r.pop()}syntacticCheck(e,t){var n,r;const i=B();null==(n=J)||n.push(J.Phase.Session,"syntacticCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSyntacticDiagnostics(e),"syntaxDiag",i),null==(r=J)||r.pop()}suggestionCheck(e,t){var n,r;const i=B();null==(n=J)||n.push(J.Phase.Session,"suggestionCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSuggestionDiagnostics(e),"suggestionDiag",i),null==(r=J)||r.pop()}regionSemanticCheck(e,t,n){var r,i,o;const a=B();let s;null==(r=J)||r.push(J.Phase.Session,"regionSemanticCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.shouldDoRegionCheck(e)&&(s=t.getLanguageService().getRegionSemanticDiagnostics(e,n))?(this.sendDiagnosticsEvent(e,t,s.diagnostics,"regionSemanticDiag",a,s.spans),null==(o=J)||o.pop()):null==(i=J)||i.pop()}shouldDoRegionCheck(e){var t;const n=null==(t=this.projectService.getScriptInfoForNormalizedPath(e))?void 0:t.textStorage.getLineInfo().getLineCount();return!!(n&&n>=this.regionDiagLineCountThreshold)}sendDiagnosticsEvent(e,t,n,r,i,o){try{const a=h.checkDefined(t.getScriptInfo(e)),s=B()-i,c={file:e,diagnostics:n.map(n=>formatDiag(e,t,n)),spans:null==o?void 0:o.map(e=>toProtocolTextSpan(e,a))};this.event(c,r),this.addDiagnosticsPerformanceData(e,r,s)}catch(e){this.logError(e,r)}}updateErrorCheck(e,t,n,r=!0){if(0===t.length)return;h.assert(!this.suppressDiagnosticEvents);const i=this.changeSeq,o=Math.min(n,200);let a=0;const goNext=()=>{if(a++,t.length>a)return e.delay("checkOne",o,checkOne)},doSemanticCheck=(t,n)=>{if(this.semanticCheck(t,n),this.changeSeq===i)return this.getPreferences(t).disableSuggestions?goNext():void e.immediate("suggestionCheck",()=>{this.suggestionCheck(t,n),goNext()})},checkOne=()=>{if(this.changeSeq!==i)return;let n,o=t[a];if(isString(o)?o=this.toPendingErrorCheck(o):"ranges"in o&&(n=o.ranges,o=this.toPendingErrorCheck(o.file)),!o)return goNext();const{fileName:s,project:c}=o;return updateProjectIfDirty(c),c.containsFile(s,r)&&(this.syntacticCheck(s,c),this.changeSeq===i)?0!==c.projectService.serverMode?goNext():n?e.immediate("regionSemanticCheck",()=>{const t=this.projectService.getScriptInfoForNormalizedPath(s);t&&this.regionSemanticCheck(s,c,n.map(e=>this.getRange({file:s,...e},t))),this.changeSeq===i&&e.immediate("semanticCheck",()=>doSemanticCheck(s,c))}):void e.immediate("semanticCheck",()=>doSemanticCheck(s,c)):void 0};t.length>a&&this.changeSeq===i&&e.delay("checkOne",n,checkOne)}cleanProjects(e,t){if(t){this.logger.info(`cleaning ${e}`);for(const e of t)e.getLanguageService(!1).cleanupSemanticCache(),e.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects),this.cleanProjects("configured projects",arrayFrom(this.projectService.configuredProjects.values())),this.cleanProjects("external projects",this.projectService.externalProjects),this.host.gc&&(this.logger.info("host.gc()"),this.host.gc())}getEncodedSyntacticClassifications(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e);return n.getEncodedSyntacticClassifications(t,e)}getEncodedSemanticClassifications(e){const{file:t,project:n}=this.getFileAndProject(e),r="2020"===e.format?"2020":"original";return n.getLanguageService().getEncodedSemanticClassifications(t,e,r)}getProject(e){return void 0===e?void 0:this.projectService.findProject(e)}getConfigFileAndProject(e){const t=this.getProject(e.projectFileName),n=toNormalizedPath(e.file);return{configFile:t&&t.hasConfigFile(n)?n:void 0,project:t}}getConfigFileDiagnostics(e,t,n){const r=filter(concatenate(t.getAllProjectErrors(),t.getLanguageService().getCompilerOptionsDiagnostics()),t=>!!t.file&&t.file.fileName===e);return n?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(r):map(r,e=>formatDiagnosticToProtocol(e,!1))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(e){return e.map(e=>({message:flattenDiagnosticMessageText(e.messageText,this.host.newLine),start:e.start,length:e.length,category:diagnosticCategoryName(e),code:e.code,source:e.source,startLocation:e.file&&convertToLocation(getLineAndCharacterOfPosition(e.file,e.start)),endLocation:e.file&&convertToLocation(getLineAndCharacterOfPosition(e.file,e.start+e.length)),reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated,relatedInformation:map(e.relatedInformation,formatRelatedInformation)}))}getCompilerOptionsDiagnostics(e){const t=this.getProject(e.projectFileName);return this.convertToDiagnosticsWithLinePosition(filter(t.getLanguageService().getCompilerOptionsDiagnostics(),e=>!e.file),void 0)}convertToDiagnosticsWithLinePosition(e,t){return e.map(e=>({message:flattenDiagnosticMessageText(e.messageText,this.host.newLine),start:e.start,length:e.length,category:diagnosticCategoryName(e),code:e.code,source:e.source,startLocation:t&&t.positionToLineOffset(e.start),endLocation:t&&t.positionToLineOffset(e.start+e.length),reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated,relatedInformation:map(e.relatedInformation,formatRelatedInformation)}))}getDiagnosticsWorker(e,t,n,r){const{project:i,file:o}=this.getFileAndProject(e);if(t&&isDeclarationFileInJSOnlyNonConfiguredProject(i,o))return w_;const a=i.getScriptInfoForNormalizedPath(o),s=n(i,o);return r?this.convertToDiagnosticsWithLinePosition(s,a):s.map(e=>formatDiag(o,i,e))}getDefinition(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.getPositionInFile(e,n),o=this.mapDefinitionInfoLocations(r.getLanguageService().getDefinitionAtPosition(n,i)||w_,r);return t?this.mapDefinitionInfo(o,r):o.map(_Session.mapToOriginalLocation)}mapDefinitionInfoLocations(e,t){return e.map(e=>{const n=getMappedDocumentSpanForProject(e,t);return n?{...n,containerKind:e.containerKind,containerName:e.containerName,kind:e.kind,name:e.name,failedAliasResolution:e.failedAliasResolution,...e.unverified&&{unverified:e.unverified}}:e})}getDefinitionAndBoundSpan(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.getPositionInFile(e,n),o=h.checkDefined(r.getScriptInfo(n)),a=r.getLanguageService().getDefinitionAndBoundSpan(n,i);if(!a||!a.definitions)return{definitions:w_,textSpan:void 0};const s=this.mapDefinitionInfoLocations(a.definitions,r),{textSpan:c}=a;return t?{definitions:this.mapDefinitionInfo(s,r),textSpan:toProtocolTextSpan(c,o)}:{definitions:s.map(_Session.mapToOriginalLocation),textSpan:c}}findSourceDefinition(e){var t;const{file:n,project:r}=this.getFileAndProject(e),i=this.getPositionInFile(e,n),o=r.getLanguageService().getDefinitionAtPosition(n,i);let a=this.mapDefinitionInfoLocations(o||w_,r).slice();if(0===this.projectService.serverMode&&(!some(a,e=>toNormalizedPath(e.fileName)!==n&&!e.isAmbient)||some(a,e=>!!e.failedAliasResolution))){const e=createSet(e=>e.textSpan.start,getDocumentSpansEqualityComparer(this.host.useCaseSensitiveFileNames));null==a||a.forEach(t=>e.add(t));const o=r.getNoDtsResolutionProject(n),s=o.getLanguageService(),c=null==(t=s.getDefinitionAtPosition(n,i,!0,!1))?void 0:t.filter(e=>toNormalizedPath(e.fileName)!==n);if(some(c))for(const t of c){if(t.unverified){const n=tryRefineDefinition(t,r.getLanguageService().getProgram(),s.getProgram());if(some(n)){for(const t of n)e.add(t);continue}}e.add(t)}else{const t=a.filter(e=>toNormalizedPath(e.fileName)!==n&&e.isAmbient);for(const a of some(t)?t:function getAmbientCandidatesByClimbingAccessChain(){const e=r.getLanguageService(),t=e.getProgram(),o=getTouchingPropertyName(t.getSourceFile(n),i);if((isStringLiteralLike(o)||isIdentifier(o))&&isAccessExpression(o.parent))return forEachNameInAccessChainWalkingLeft(o,t=>{var r;if(t===o)return;const i=null==(r=e.getDefinitionAtPosition(n,t.getStart(),!0,!1))?void 0:r.filter(e=>toNormalizedPath(e.fileName)!==n&&e.isAmbient).map(e=>({fileName:e.fileName,name:getTextOfIdentifierOrLiteral(o)}));return some(i)?i:void 0})||w_;return w_}()){const t=findImplementationFileFromDtsFileName(a.fileName,n,o);if(!t)continue;const r=this.projectService.getOrCreateScriptInfoNotOpenedByClient(t,o.currentDirectory,o.directoryStructureHost,!1);if(!r)continue;o.containsScriptInfo(r)||(o.addRoot(r),o.updateGraph());const i=s.getProgram(),c=h.checkDefined(i.getSourceFile(t));for(const t of searchForDeclaration(a.name,c,i))e.add(t)}}a=arrayFrom(e.values())}return a=a.filter(e=>!e.isAmbient&&!e.failedAliasResolution),this.mapDefinitionInfo(a,r);function findImplementationFileFromDtsFileName(e,t,n){var i,o,a;const s=getNodeModulePathParts(e);if(s&&e.lastIndexOf(Mo)===s.topLevelNodeModulesIndex){const c=e.substring(0,s.packageRootIndex),l=null==(i=r.getModuleResolutionCache())?void 0:i.getPackageJsonInfoCache(),d=r.getCompilationSettings(),p=getPackageScopeForPath(getNormalizedAbsolutePath(c,r.getCurrentDirectory()),getTemporaryModuleResolutionState(l,r,d));if(!p)return;const u=getEntrypointsFromPackageJsonInfo(p,{moduleResolution:2},r,r.getModuleResolutionCache()),m=getPackageNameFromTypesPackageName(unmangleScopedPackageName(e.substring(s.topLevelPackageNameIndex+1,s.packageRootIndex))),_=r.toPath(e);if(u&&some(u,e=>r.toPath(e)===_))return null==(o=n.resolutionCache.resolveSingleModuleNameWithoutWatching(m,t).resolvedModule)?void 0:o.resolvedFileName;{const r=`${m}/${removeFileExtension(e.substring(s.packageRootIndex+1))}`;return null==(a=n.resolutionCache.resolveSingleModuleNameWithoutWatching(r,t).resolvedModule)?void 0:a.resolvedFileName}}}function tryRefineDefinition(e,t,r){var o;const a=r.getSourceFile(e.fileName);if(!a)return;const s=getTouchingPropertyName(t.getSourceFile(n),i),c=t.getTypeChecker().getSymbolAtLocation(s),l=c&&getDeclarationOfKind(c,277);if(!l)return;return searchForDeclaration((null==(o=l.propertyName)?void 0:o.text)||l.name.text,a,r)}function searchForDeclaration(e,t,n){return mapDefined(vm.Core.getTopMostDeclarationNamesInFile(e,t),e=>{const t=n.getTypeChecker().getSymbolAtLocation(e),r=getDeclarationFromName(e);if(t&&r)return Pm.createDefinitionInfo(r,n.getTypeChecker(),t,r,!0)})}}getEmitOutput(e){const{file:t,project:n}=this.getFileAndProject(e);if(!n.shouldEmitFile(n.getScriptInfo(t)))return{emitSkipped:!0,outputFiles:[],diagnostics:[]};const r=n.getLanguageService().getEmitOutput(t);return e.richResponse?{...r,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(r.diagnostics):r.diagnostics.map(e=>formatDiagnosticToProtocol(e,!0))}:r}mapJSDocTagInfo(e,t,n){return e?e.map(e=>{var r;return{...e,text:n?this.mapDisplayParts(e.text,t):null==(r=e.text)?void 0:r.map(e=>e.text).join("")}}):[]}mapDisplayParts(e,t){return e?e.map(e=>"linkName"!==e.kind?e:{...e,target:this.toFileSpan(e.target.fileName,e.target.textSpan,t)}):[]}mapSignatureHelpItems(e,t,n){return e.map(e=>({...e,documentation:this.mapDisplayParts(e.documentation,t),parameters:e.parameters.map(e=>({...e,documentation:this.mapDisplayParts(e.documentation,t)})),tags:this.mapJSDocTagInfo(e.tags,t,n)}))}mapDefinitionInfo(e,t){return e.map(e=>({...this.toFileSpanWithContext(e.fileName,e.textSpan,e.contextSpan,t),...e.unverified&&{unverified:e.unverified}}))}static mapToOriginalLocation(e){return e.originalFileName?(h.assert(void 0!==e.originalTextSpan,"originalTextSpan should be present if originalFileName is"),{...e,fileName:e.originalFileName,textSpan:e.originalTextSpan,targetFileName:e.fileName,targetTextSpan:e.textSpan,contextSpan:e.originalContextSpan,targetContextSpan:e.contextSpan}):e}toFileSpan(e,t,n){const r=n.getLanguageService(),i=r.toLineColumnOffset(e,t.start),o=r.toLineColumnOffset(e,textSpanEnd(t));return{file:e,start:{line:i.line+1,offset:i.character+1},end:{line:o.line+1,offset:o.character+1}}}toFileSpanWithContext(e,t,n,r){const i=this.toFileSpan(e,t,r),o=n&&this.toFileSpan(e,n,r);return o?{...i,contextStart:o.start,contextEnd:o.end}:i}getTypeDefinition(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.getPositionInFile(e,t),i=this.mapDefinitionInfoLocations(n.getLanguageService().getTypeDefinitionAtPosition(t,r)||w_,n);return this.mapDefinitionInfo(i,n)}mapImplementationLocations(e,t){return e.map(e=>{const n=getMappedDocumentSpanForProject(e,t);return n?{...n,kind:e.kind,displayParts:e.displayParts}:e})}getImplementation(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.getPositionInFile(e,n),o=this.mapImplementationLocations(r.getLanguageService().getImplementationAtPosition(n,i)||w_,r);return t?o.map(({fileName:e,textSpan:t,contextSpan:n})=>this.toFileSpanWithContext(e,t,n,r)):o.map(_Session.mapToOriginalLocation)}getSyntacticDiagnosticsSync(e){const{configFile:t}=this.getConfigFileAndProject(e);return t?w_:this.getDiagnosticsWorker(e,!1,(e,t)=>e.getLanguageService().getSyntacticDiagnostics(t),!!e.includeLinePosition)}getSemanticDiagnosticsSync(e){const{configFile:t,project:n}=this.getConfigFileAndProject(e);return t?this.getConfigFileDiagnostics(t,n,!!e.includeLinePosition):this.getDiagnosticsWorker(e,!0,(e,t)=>e.getLanguageService().getSemanticDiagnostics(t).filter(e=>!!e.file),!!e.includeLinePosition)}getSuggestionDiagnosticsSync(e){const{configFile:t}=this.getConfigFileAndProject(e);return t?w_:this.getDiagnosticsWorker(e,!0,(e,t)=>e.getLanguageService().getSuggestionDiagnostics(t),!!e.includeLinePosition)}getJsxClosingTag(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t),i=n.getJsxClosingTagAtPosition(t,r);return void 0===i?void 0:{newText:i.newText,caretOffset:0}}getLinkedEditingRange(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t),i=n.getLinkedEditingRangeAtPosition(t,r),o=this.projectService.getScriptInfoForNormalizedPath(t);if(void 0!==o&&void 0!==i)return function convertLinkedEditInfoToRanges(e,t){const n=e.ranges.map(e=>({start:t.positionToLineOffset(e.start),end:t.positionToLineOffset(e.start+e.length)}));return e.wordPattern?{ranges:n,wordPattern:e.wordPattern}:{ranges:n}}(i,o)}getDocumentHighlights(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.getPositionInFile(e,n),o=r.getLanguageService().getDocumentHighlights(n,i,e.filesToSearch);return o?t?o.map(({fileName:e,highlightSpans:t})=>{const n=r.getScriptInfo(e);return{file:e,highlightSpans:t.map(({textSpan:e,kind:t,contextSpan:r})=>({...toProtocolTextSpanWithContext(e,r,n),kind:t}))}}):o:w_}provideInlayHints(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.projectService.getScriptInfoForNormalizedPath(t);return n.getLanguageService().provideInlayHints(t,e,this.getPreferences(t)).map(e=>{const{position:t,displayParts:n}=e;return{...e,position:r.positionToLineOffset(t),displayParts:null==n?void 0:n.map(({text:e,span:t,file:n})=>{if(t){h.assertIsDefined(n,"Target file should be defined together with its span.");const r=this.projectService.getScriptInfo(n);return{text:e,span:{start:r.positionToLineOffset(t.start),end:r.positionToLineOffset(t.start+t.length),file:n}}}return{text:e}})}})}mapCode(e){var t;const n=this.getHostFormatOptions(),r=this.getHostPreferences(),{file:i,languageService:o}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=this.projectService.getScriptInfoForNormalizedPath(i),s=null==(t=e.mapping.focusLocations)?void 0:t.map(e=>e.map(e=>{const t=a.lineOffsetToPosition(e.start.line,e.start.offset);return{start:t,length:a.lineOffsetToPosition(e.end.line,e.end.offset)-t}})),c=o.mapCode(i,e.mapping.contents,s,n,r);return this.mapTextChangesToCodeEdits(c)}getCopilotRelatedInfo(){return{relatedFiles:[]}}setCompilerOptionsForInferredProjects(e){this.projectService.setCompilerOptionsForInferredProjects(e.options,e.projectRootPath)}getProjectInfo(e){return this.getProjectInfoWorker(e.file,e.projectFileName,e.needFileNameList,e.needDefaultConfiguredProjectInfo,!1)}getProjectInfoWorker(e,t,n,r,i){const{project:o}=this.getFileAndProjectWorker(e,t);updateProjectIfDirty(o);return{configFileName:o.getProjectName(),languageServiceDisabled:!o.languageServiceEnabled,fileNames:n?o.getFileNames(!1,i):void 0,configuredProjectInfo:r?this.getDefaultConfiguredProjectInfo(e):void 0}}getDefaultConfiguredProjectInfo(e){var t;const n=this.projectService.getScriptInfo(e);if(!n)return;const r=this.projectService.findDefaultConfiguredProjectWorker(n,3);if(!r)return;let i,o;return r.seenProjects.forEach((e,t)=>{t!==r.defaultProject&&(3!==e?(i??(i=[])).push(toNormalizedPath(t.getConfigFilePath())):(o??(o=[])).push(toNormalizedPath(t.getConfigFilePath())))}),null==(t=r.seenConfigs)||t.forEach(e=>(i??(i=[])).push(e)),{notMatchedByConfig:i,notInProject:o,defaultProject:r.defaultProject&&toNormalizedPath(r.defaultProject.getConfigFilePath())}}getRenameInfo(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.getPositionInFile(e,t),i=this.getPreferences(t);return n.getLanguageService().getRenameInfo(t,r,i)}getProjects(e,t,n){let r,i;if(e.projectFileName){const t=this.getProject(e.projectFileName);t&&(r=[t])}else{const o=t?this.projectService.getScriptInfoEnsuringProjectsUptoDate(e.file):this.projectService.getScriptInfo(e.file);if(!o)return n?w_:(this.projectService.logErrorForScriptInfoNotFound(e.file),I_.ThrowNoProject());t||this.projectService.ensureDefaultProjectForFile(o),r=o.containingProjects,i=this.projectService.getSymlinkedProjects(o)}return r=filter(r,e=>e.languageServiceEnabled&&!e.isOrphan()),n||r&&r.length||i?i?{projects:r,symLinkedProjects:i}:r:(this.projectService.logErrorForScriptInfoNotFound(e.file??e.projectFileName),I_.ThrowNoProject())}getDefaultProject(e){if(e.projectFileName){const t=this.getProject(e.projectFileName);if(t)return t;if(!e.file)return I_.ThrowNoProject()}return this.projectService.getScriptInfo(e.file).getDefaultProject()}getRenameLocations(e,t){const n=toNormalizedPath(e.file),r=this.getPositionInFile(e,n),i=this.getProjects(e),o=this.getDefaultProject(e),a=this.getPreferences(n),s=this.mapRenameInfo(o.getLanguageService().getRenameInfo(n,r,a),h.checkDefined(this.projectService.getScriptInfo(n)));if(!s.canRename)return t?{info:s,locs:[]}:[];const c=function getRenameLocationsWorker(e,t,n,r,i,o,a){const s=getPerProjectReferences(e,t,n,getDefinitionLocation(t,n,!0),mapDefinitionInProject,(e,t)=>e.getLanguageService().findRenameLocations(t.fileName,t.pos,r,i,o),(e,t)=>t(documentSpanLocation(e)));if(isArray(s))return s;const c=[],l=createDocumentSpanSet(a);return s.forEach((e,t)=>{for(const n of e)l.has(n)||getMappedLocationForProject(documentSpanLocation(n),t)||(c.push(n),l.add(n))}),c}(i,o,{fileName:e.file,pos:r},!!e.findInStrings,!!e.findInComments,a,this.host.useCaseSensitiveFileNames);return t?{info:s,locs:this.toSpanGroups(c)}:c}mapRenameInfo(e,t){if(e.canRename){const{canRename:n,fileToRename:r,displayName:i,fullDisplayName:o,kind:a,kindModifiers:s,triggerSpan:c}=e;return{canRename:n,fileToRename:r,displayName:i,fullDisplayName:o,kind:a,kindModifiers:s,triggerSpan:toProtocolTextSpan(c,t)}}return e}toSpanGroups(e){const t=new Map;for(const{fileName:n,textSpan:r,contextSpan:i,originalContextSpan:o,originalTextSpan:a,originalFileName:s,...c}of e){let e=t.get(n);e||t.set(n,e={file:n,locs:[]});const o=h.checkDefined(this.projectService.getScriptInfo(n));e.locs.push({...toProtocolTextSpanWithContext(r,i,o),...c})}return arrayFrom(t.values())}getReferences(e,t){const n=toNormalizedPath(e.file),r=this.getProjects(e),i=this.getPositionInFile(e,n),o=function getReferencesWorker(e,t,n,r,i){var o,a;const s=getPerProjectReferences(e,t,n,getDefinitionLocation(t,n,!1),mapDefinitionInProject,(e,t)=>(i.info(`Finding references to ${t.fileName} position ${t.pos} in project ${e.getProjectName()}`),e.getLanguageService().findReferences(t.fileName,t.pos)),(e,t)=>{t(documentSpanLocation(e.definition));for(const n of e.references)t(documentSpanLocation(n))});if(isArray(s))return s;const c=s.get(t);if(void 0===(null==(a=null==(o=null==c?void 0:c[0])?void 0:o.references[0])?void 0:a.isDefinition))s.forEach(e=>{for(const t of e)for(const e of t.references)delete e.isDefinition});else{const e=createDocumentSpanSet(r);for(const t of c)for(const n of t.references)if(n.isDefinition){e.add(n);break}const t=new Set;for(;;){let n=!1;if(s.forEach((r,i)=>{t.has(i)||i.getLanguageService().updateIsDefinitionOfReferencedSymbols(r,e)&&(t.add(i),n=!0)}),!n)break}s.forEach((e,n)=>{if(!t.has(n))for(const t of e)for(const e of t.references)e.isDefinition=!1})}const l=[],d=createDocumentSpanSet(r);return s.forEach((e,t)=>{for(const n of e){const e=getMappedLocationForProject(documentSpanLocation(n.definition),t),i=void 0===e?n.definition:{...n.definition,textSpan:createTextSpan(e.pos,n.definition.textSpan.length),fileName:e.fileName,contextSpan:getMappedContextSpanForProject(n.definition,t)};let o=find(l,e=>documentSpansEqual(e.definition,i,r));o||(o={definition:i,references:[]},l.push(o));for(const e of n.references)d.has(e)||getMappedLocationForProject(documentSpanLocation(e),t)||(d.add(e),o.references.push(e))}}),l.filter(e=>0!==e.references.length)}(r,this.getDefaultProject(e),{fileName:e.file,pos:i},this.host.useCaseSensitiveFileNames,this.logger);if(!t)return o;const a=this.getPreferences(n),s=this.getDefaultProject(e),c=s.getScriptInfoForNormalizedPath(n),l=s.getLanguageService().getQuickInfoAtPosition(n,i),d=l?displayPartsToString(l.displayParts):"",p=l&&l.textSpan,u=p?c.positionToLineOffset(p.start).offset:0,m=p?c.getSnapshot().getText(p.start,textSpanEnd(p)):"";return{refs:flatMap(o,e=>e.references.map(e=>referenceEntryToReferencesResponseItem(this.projectService,e,a))),symbolName:m,symbolStartOffset:u,symbolDisplayString:d}}getFileReferences(e,t){const n=this.getProjects(e),r=toNormalizedPath(e.file),i=this.getPreferences(r),o={fileName:r,pos:0},a=getPerProjectReferences(n,this.getDefaultProject(e),o,o,mapDefinitionInProjectIfFileInProject,e=>(this.logger.info(`Finding references to file ${r} in project ${e.getProjectName()}`),e.getLanguageService().getFileReferences(r)));let s;if(isArray(a))s=a;else{s=[];const e=createDocumentSpanSet(this.host.useCaseSensitiveFileNames);a.forEach(t=>{for(const n of t)e.has(n)||(s.push(n),e.add(n))})}if(!t)return s;return{refs:s.map(e=>referenceEntryToReferencesResponseItem(this.projectService,e,i)),symbolName:`"${e.file}"`}}openClientFile(e,t,n,r){this.projectService.openClientFileWithNormalizedPath(e,t,n,!1,r)}getPosition(e,t){return void 0!==e.position?e.position:t.lineOffsetToPosition(e.line,e.offset)}getPositionInFile(e,t){const n=this.projectService.getScriptInfoForNormalizedPath(t);return this.getPosition(e,n)}getFileAndProject(e){return this.getFileAndProjectWorker(e.file,e.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(e){const{file:t,project:n}=this.getFileAndProject(e);return{file:t,languageService:n.getLanguageService(!1)}}getFileAndProjectWorker(e,t){const n=toNormalizedPath(e);return{file:n,project:this.getProject(t)||this.projectService.ensureDefaultProjectForFile(n)}}getOutliningSpans(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=r.getOutliningSpans(n);if(t){const e=this.projectService.getScriptInfoForNormalizedPath(n);return i.map(t=>({textSpan:toProtocolTextSpan(t.textSpan,e),hintSpan:toProtocolTextSpan(t.hintSpan,e),bannerText:t.bannerText,autoCollapse:t.autoCollapse,kind:t.kind}))}return i}getTodoComments(e){const{file:t,project:n}=this.getFileAndProject(e);return n.getLanguageService().getTodoComments(t,e.descriptors)}getDocCommentTemplate(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t);return n.getDocCommentTemplateAtPosition(t,r,this.getPreferences(t),this.getFormatOptions(t))}getSpanOfEnclosingComment(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=e.onlyMultiLine,i=this.getPositionInFile(e,t);return n.getSpanOfEnclosingComment(t,i,r)}getIndentation(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t),i=e.options?convertFormatOptions(e.options):this.getFormatOptions(t);return{position:r,indentation:n.getIndentationAtPosition(t,r,i)}}getBreakpointStatement(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t);return n.getBreakpointStatementAtPosition(t,r)}getNameOrDottedNameSpan(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t);return n.getNameOrDottedNameSpan(t,r,r)}isValidBraceCompletion(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.getPositionInFile(e,t);return n.isValidBraceCompletionAtPosition(t,r,e.openingBrace.charCodeAt(0))}getQuickInfoWorker(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getPreferences(n),a=r.getLanguageService().getQuickInfoAtPosition(n,this.getPosition(e,i),o.maximumHoverLength,e.verbosityLevel);if(!a)return;const s=!!o.displayPartsForJSDoc;if(t){const e=displayPartsToString(a.displayParts);return{kind:a.kind,kindModifiers:a.kindModifiers,start:i.positionToLineOffset(a.textSpan.start),end:i.positionToLineOffset(textSpanEnd(a.textSpan)),displayString:e,documentation:s?this.mapDisplayParts(a.documentation,r):displayPartsToString(a.documentation),tags:this.mapJSDocTagInfo(a.tags,r,s),canIncreaseVerbosityLevel:a.canIncreaseVerbosityLevel}}return s?a:{...a,tags:this.mapJSDocTagInfo(a.tags,r,!1)}}getFormattingEditsForRange(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.projectService.getScriptInfoForNormalizedPath(t),i=r.lineOffsetToPosition(e.line,e.offset),o=r.lineOffsetToPosition(e.endLine,e.endOffset),a=n.getFormattingEditsForRange(t,i,o,this.getFormatOptions(t));if(a)return a.map(e=>this.convertTextChangeToCodeEdit(e,r))}getFormattingEditsForRangeFull(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=e.options?convertFormatOptions(e.options):this.getFormatOptions(t);return n.getFormattingEditsForRange(t,e.position,e.endPosition,r)}getFormattingEditsForDocumentFull(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=e.options?convertFormatOptions(e.options):this.getFormatOptions(t);return n.getFormattingEditsForDocument(t,r)}getFormattingEditsAfterKeystrokeFull(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=e.options?convertFormatOptions(e.options):this.getFormatOptions(t);return n.getFormattingEditsAfterKeystroke(t,e.position,e.key,r)}getFormattingEditsAfterKeystroke(e){const{file:t,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=this.projectService.getScriptInfoForNormalizedPath(t),i=r.lineOffsetToPosition(e.line,e.offset),o=this.getFormatOptions(t),a=n.getFormattingEditsAfterKeystroke(t,i,e.key,o);if("\n"===e.key&&(!a||0===a.length||function allEditsBeforePos(e,t){return e.every(e=>textSpanEnd(e.span)({start:r.positionToLineOffset(e.span.start),end:r.positionToLineOffset(textSpanEnd(e.span)),newText:e.newText?e.newText:""}))}getCompletions(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getPosition(e,i),a=r.getLanguageService().getCompletionsAtPosition(n,o,{...convertUserPreferences(this.getPreferences(n)),triggerCharacter:e.triggerCharacter,triggerKind:e.triggerKind,includeExternalModuleExports:e.includeExternalModuleExports,includeInsertTextCompletions:e.includeInsertTextCompletions},r.projectService.getFormatCodeOptions(n));if(void 0===a)return;if("completions-full"===t)return a;const s=e.prefix||"",c=mapDefined(a.entries,e=>{if(a.isMemberCompletion||startsWith(e.name.toLowerCase(),s.toLowerCase())){const t=e.replacementSpan?toProtocolTextSpan(e.replacementSpan,i):void 0;return{...e,replacementSpan:t,hasAction:e.hasAction||void 0,symbol:void 0}}});if("completions"===t)return a.metadata&&(c.metadata=a.metadata),c;return{...a,optionalReplacementSpan:a.optionalReplacementSpan&&toProtocolTextSpan(a.optionalReplacementSpan,i),entries:c}}getCompletionEntryDetails(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getPosition(e,i),a=r.projectService.getFormatCodeOptions(n),s=!!this.getPreferences(n).displayPartsForJSDoc,c=mapDefined(e.entryNames,e=>{const{name:t,source:i,data:s}="string"==typeof e?{name:e,source:void 0,data:void 0}:e;return r.getLanguageService().getCompletionEntryDetails(n,o,t,a,i,this.getPreferences(n),s?cast(s,isCompletionEntryData):void 0)});return t?s?c:c.map(e=>({...e,tags:this.mapJSDocTagInfo(e.tags,r,!1)})):c.map(e=>({...e,codeActions:map(e.codeActions,e=>this.mapCodeAction(e)),documentation:this.mapDisplayParts(e.documentation,r),tags:this.mapJSDocTagInfo(e.tags,r,s)}))}getCompileOnSaveAffectedFileList(e){const t=this.getProjects(e,!0,!0),n=this.projectService.getScriptInfo(e.file);return n?function combineProjectOutput(e,t,n,r){const i=flatMapToMutable(isArray(n)?n:n.projects,t=>r(t,e));return!isArray(n)&&n.symLinkedProjects&&n.symLinkedProjects.forEach((e,n)=>{const o=t(n);i.push(...flatMap(e,e=>r(e,o)))}),deduplicate(i,equateValues)}(n,e=>this.projectService.getScriptInfoForPath(e),t,(e,t)=>{if(!e.compileOnSaveEnabled||!e.languageServiceEnabled||e.isOrphan())return;const n=e.getCompilationSettings();return n.noEmit||isDeclarationFileName(t.fileName)&&!function dtsChangeCanAffectEmit(e){return Zn(e)||!!e.emitDecoratorMetadata}(n)?void 0:{projectFileName:e.getProjectName(),fileNames:e.getCompileOnSaveAffectedFileList(t),projectUsesOutFile:!!n.outFile}}):w_}emitFile(e){const{file:t,project:n}=this.getFileAndProject(e);if(n||I_.ThrowNoProject(),!n.languageServiceEnabled)return!!e.richResponse&&{emitSkipped:!0,diagnostics:[]};const r=n.getScriptInfo(t),{emitSkipped:i,diagnostics:o}=n.emitFile(r,(e,t,n)=>this.host.writeFile(e,t,n));return e.richResponse?{emitSkipped:i,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(o):o.map(e=>formatDiagnosticToProtocol(e,!0))}:!i}getSignatureHelpItems(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getPosition(e,i),a=r.getLanguageService().getSignatureHelpItems(n,o,e),s=!!this.getPreferences(n).displayPartsForJSDoc;if(a&&t){const e=a.applicableSpan;return{...a,applicableSpan:{start:i.positionToLineOffset(e.start),end:i.positionToLineOffset(e.start+e.length)},items:this.mapSignatureHelpItems(a.items,r,s)}}return s||!a?a:{...a,items:a.items.map(e=>({...e,tags:this.mapJSDocTagInfo(e.tags,r,!1)}))}}toPendingErrorCheck(e){const t=toNormalizedPath(e),n=this.projectService.tryGetDefaultProjectForFile(t);return n&&{fileName:t,project:n}}getDiagnostics(e,t,n){this.suppressDiagnosticEvents||n.length>0&&this.updateErrorCheck(e,n,t)}change(e){const t=this.projectService.getScriptInfo(e.file);h.assert(!!t),t.textStorage.switchToScriptVersionCache();const n=t.lineOffsetToPosition(e.line,e.offset),r=t.lineOffsetToPosition(e.endLine,e.endOffset);n>=0&&(this.changeSeq++,this.projectService.applyChangesToFile(t,singleIterator({span:{start:n,length:r-n},newText:e.insertString})))}reload(e){const t=toNormalizedPath(e.file),n=void 0===e.tmpfile?void 0:toNormalizedPath(e.tmpfile),r=this.projectService.getScriptInfoForNormalizedPath(t);r&&(this.changeSeq++,r.reloadFromFile(n))}saveToTmp(e,t){const n=this.projectService.getScriptInfo(e);n&&n.saveTo(t)}closeClientFile(e){if(!e)return;const t=normalizePath(e);this.projectService.closeClientFile(t)}mapLocationNavigationBarItems(e,t){return map(e,e=>({text:e.text,kind:e.kind,kindModifiers:e.kindModifiers,spans:e.spans.map(e=>toProtocolTextSpan(e,t)),childItems:this.mapLocationNavigationBarItems(e.childItems,t),indent:e.indent}))}getNavigationBarItems(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=r.getNavigationBarItems(n);return i?t?this.mapLocationNavigationBarItems(i,this.projectService.getScriptInfoForNormalizedPath(n)):i:void 0}toLocationNavigationTree(e,t){return{text:e.text,kind:e.kind,kindModifiers:e.kindModifiers,spans:e.spans.map(e=>toProtocolTextSpan(e,t)),nameSpan:e.nameSpan&&toProtocolTextSpan(e.nameSpan,t),childItems:map(e.childItems,e=>this.toLocationNavigationTree(e,t))}}getNavigationTree(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=r.getNavigationTree(n);return i?t?this.toLocationNavigationTree(i,this.projectService.getScriptInfoForNormalizedPath(n)):i:void 0}getNavigateToItems(e,t){const n=this.getFullNavigateToItems(e);return flatMap(n,t?({project:e,navigateToItems:t})=>t.map(t=>{const n=e.getScriptInfo(t.fileName),r={name:t.name,kind:t.kind,kindModifiers:t.kindModifiers,isCaseSensitive:t.isCaseSensitive,matchKind:t.matchKind,file:t.fileName,start:n.positionToLineOffset(t.textSpan.start),end:n.positionToLineOffset(textSpanEnd(t.textSpan))};return t.kindModifiers&&""!==t.kindModifiers&&(r.kindModifiers=t.kindModifiers),t.containerName&&t.containerName.length>0&&(r.containerName=t.containerName),t.containerKind&&t.containerKind.length>0&&(r.containerKind=t.containerKind),r}):({navigateToItems:e})=>e)}getFullNavigateToItems(e){const{currentFileOnly:t,searchValue:n,maxResultCount:r,projectFileName:i}=e;if(t){h.assertIsDefined(e.file);const{file:t,project:i}=this.getFileAndProject(e);return[{project:i,navigateToItems:i.getLanguageService().getNavigateToItems(n,r,t)}]}const o=this.getHostPreferences(),a=[],s=new Map;if(e.file||i){forEachProjectInProjects(this.getProjects(e),void 0,e=>addItemsForProject(e))}else this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(e=>addItemsForProject(e));return a;function addItemsForProject(e){const t=filter(e.getLanguageService().getNavigateToItems(n,r,void 0,e.isNonTsProject(),o.excludeLibrarySymbolsInNavTo),t=>function tryAddSeenItem(e){const t=e.name;if(!s.has(t))return s.set(t,[e]),!0;const n=s.get(t);for(const t of n)if(navigateToItemIsEqualTo(t,e))return!1;return n.push(e),!0}(t)&&!getMappedLocationForProject(documentSpanLocation(t),e));t.length&&a.push({project:e,navigateToItems:t})}function navigateToItemIsEqualTo(e,t){return e===t||!(!e||!t)&&(e.containerKind===t.containerKind&&e.containerName===t.containerName&&e.fileName===t.fileName&&e.isCaseSensitive===t.isCaseSensitive&&e.kind===t.kind&&e.kindModifiers===t.kindModifiers&&e.matchKind===t.matchKind&&e.name===t.name&&e.textSpan.start===t.textSpan.start&&e.textSpan.length===t.textSpan.length)}}getSupportedCodeFixes(e){if(!e)return getSupportedCodeFixes();if(e.file){const{file:t,project:n}=this.getFileAndProject(e);return n.getLanguageService().getSupportedCodeFixes(t)}const t=this.getProject(e.projectFileName);return t||I_.ThrowNoProject(),t.getLanguageService().getSupportedCodeFixes()}isLocation(e){return void 0!==e.line}extractPositionOrRange(e,t){let n,r;return this.isLocation(e)?n=function getPosition(e){return void 0!==e.position?e.position:t.lineOffsetToPosition(e.line,e.offset)}(e):r=this.getRange(e,t),h.checkDefined(void 0===n?r:n)}getRange(e,t){const{startPosition:n,endPosition:r}=this.getStartAndEndPosition(e,t);return{pos:n,end:r}}getApplicableRefactors(e){const{file:t,project:n}=this.getFileAndProject(e),r=n.getScriptInfoForNormalizedPath(t);return n.getLanguageService().getApplicableRefactors(t,this.extractPositionOrRange(e,r),this.getPreferences(t),e.triggerReason,e.kind,e.includeInteractiveActions).map(e=>({...e,actions:e.actions.map(e=>({...e,range:e.range?{start:convertToLocation({line:e.range.start.line,character:e.range.start.offset}),end:convertToLocation({line:e.range.end.line,character:e.range.end.offset})}:void 0}))}))}getEditsForRefactor(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=r.getScriptInfoForNormalizedPath(n),o=r.getLanguageService().getEditsForRefactor(n,this.getFormatOptions(n),this.extractPositionOrRange(e,i),e.refactor,e.action,this.getPreferences(n),e.interactiveRefactorArguments);if(void 0===o)return{edits:[]};if(t){const{renameFilename:e,renameLocation:t,edits:n}=o;let i;if(void 0!==e&&void 0!==t){i=getLocationInNewDocument(getSnapshotText(r.getScriptInfoForNormalizedPath(toNormalizedPath(e)).getSnapshot()),e,t,n)}return{renameLocation:i,renameFilename:e,edits:this.mapTextChangesToCodeEdits(n),notApplicableReason:o.notApplicableReason}}return o}getMoveToRefactoringFileSuggestions(e){const{file:t,project:n}=this.getFileAndProject(e),r=n.getScriptInfoForNormalizedPath(t);return n.getLanguageService().getMoveToRefactoringFileSuggestions(t,this.extractPositionOrRange(e,r),this.getPreferences(t))}preparePasteEdits(e){const{file:t,project:n}=this.getFileAndProject(e);return n.getLanguageService().preparePasteEditsForFile(t,e.copiedTextSpan.map(e=>this.getRange({file:t,startLine:e.start.line,startOffset:e.start.offset,endLine:e.end.line,endOffset:e.end.offset},this.projectService.getScriptInfoForNormalizedPath(t))))}getPasteEdits(e){const{file:t,project:n}=this.getFileAndProject(e);if(isDynamicFileName(t))return;const r=e.copiedFrom?{file:e.copiedFrom.file,range:e.copiedFrom.spans.map(t=>this.getRange({file:e.copiedFrom.file,startLine:t.start.line,startOffset:t.start.offset,endLine:t.end.line,endOffset:t.end.offset},n.getScriptInfoForNormalizedPath(toNormalizedPath(e.copiedFrom.file))))}:void 0,i=n.getLanguageService().getPasteEdits({targetFile:t,pastedText:e.pastedText,pasteLocations:e.pasteLocations.map(e=>this.getRange({file:t,startLine:e.start.line,startOffset:e.start.offset,endLine:e.end.line,endOffset:e.end.offset},n.getScriptInfoForNormalizedPath(t))),copiedFrom:r,preferences:this.getPreferences(t)},this.getFormatOptions(t));return i&&this.mapPasteEditsAction(i)}organizeImports(e,t){h.assert("file"===e.scope.type);const{file:n,project:r}=this.getFileAndProject(e.scope.args),i=r.getLanguageService().organizeImports({fileName:n,mode:e.mode??(e.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(n),this.getPreferences(n));return t?this.mapTextChangesToCodeEdits(i):i}getEditsForFileRename(e,t){const n=toNormalizedPath(e.oldFilePath),r=toNormalizedPath(e.newFilePath),i=this.getHostFormatOptions(),o=this.getHostPreferences(),a=new Set,s=[];return this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(e=>{const t=e.getLanguageService().getEditsForFileRename(n,r,i,o),c=[];for(const e of t)a.has(e.fileName)||(s.push(e),c.push(e.fileName));for(const e of c)a.add(e)}),t?s.map(e=>this.mapTextChangeToCodeEdit(e)):s}getCodeFixes(e,t){const{file:n,project:r}=this.getFileAndProject(e),i=r.getScriptInfoForNormalizedPath(n),{startPosition:o,endPosition:a}=this.getStartAndEndPosition(e,i);let s;try{s=r.getLanguageService().getCodeFixesAtPosition(n,o,a,e.errorCodes,this.getFormatOptions(n),this.getPreferences(n))}catch(t){const i=t instanceof Error?t:new Error(t),s=r.getLanguageService(),c=[...s.getSyntacticDiagnostics(n),...s.getSemanticDiagnostics(n),...s.getSuggestionDiagnostics(n)].filter(e=>decodedTextSpanIntersectsWith(o,a-o,e.start,e.length)).map(e=>e.code),l=e.errorCodes.find(e=>!c.includes(e));throw void 0!==l&&(i.message+=`\nAdditional information: BADCLIENT: Bad error code, ${l} not found in range ${o}..${a} (found: ${c.join(", ")})`),i}return t?s.map(e=>this.mapCodeFixAction(e)):s}getCombinedCodeFix({scope:e,fixId:t},n){h.assert("file"===e.type);const{file:r,project:i}=this.getFileAndProject(e.args),o=i.getLanguageService().getCombinedCodeFix({type:"file",fileName:r},t,this.getFormatOptions(r),this.getPreferences(r));return n?{changes:this.mapTextChangesToCodeEdits(o.changes),commands:o.commands}:o}applyCodeActionCommand(e){const t=e.command;for(const e of toArray(t)){const{file:t,project:n}=this.getFileAndProject(e);n.getLanguageService().applyCodeActionCommand(e,this.getFormatOptions(t)).then(e=>{},e=>{})}return{}}getStartAndEndPosition(e,t){let n,r;return void 0!==e.startPosition?n=e.startPosition:(n=t.lineOffsetToPosition(e.startLine,e.startOffset),e.startPosition=n),void 0!==e.endPosition?r=e.endPosition:(r=t.lineOffsetToPosition(e.endLine,e.endOffset),e.endPosition=r),{startPosition:n,endPosition:r}}mapCodeAction({description:e,changes:t,commands:n}){return{description:e,changes:this.mapTextChangesToCodeEdits(t),commands:n}}mapCodeFixAction({fixName:e,description:t,changes:n,commands:r,fixId:i,fixAllDescription:o}){return{fixName:e,description:t,changes:this.mapTextChangesToCodeEdits(n),commands:r,fixId:i,fixAllDescription:o}}mapPasteEditsAction({edits:e,fixId:t}){return{edits:this.mapTextChangesToCodeEdits(e),fixId:t}}mapTextChangesToCodeEdits(e){return e.map(e=>this.mapTextChangeToCodeEdit(e))}mapTextChangeToCodeEdit(e){const t=this.projectService.getScriptInfoOrConfig(e.fileName);return!!e.isNewFile==!!t&&(t||this.projectService.logErrorForScriptInfoNotFound(e.fileName),h.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!e.isNewFile,hasScriptInfo:!!t}))),t?{fileName:e.fileName,textChanges:e.textChanges.map(e=>function convertTextChangeToCodeEdit(e,t){return{start:positionToLineOffset(t,e.span.start),end:positionToLineOffset(t,textSpanEnd(e.span)),newText:e.newText}}(e,t))}:function convertNewFileTextChangeToCodeEdit(e){h.assert(1===e.textChanges.length);const t=first(e.textChanges);return h.assert(0===t.span.start&&0===t.span.length),{fileName:e.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:t.newText}]}}(e)}convertTextChangeToCodeEdit(e,t){return{start:t.positionToLineOffset(e.span.start),end:t.positionToLineOffset(e.span.start+e.span.length),newText:e.newText?e.newText:""}}getBraceMatching(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getPosition(e,i),a=r.getBraceMatchingAtPosition(n,o);return a?t?a.map(e=>toProtocolTextSpan(e,i)):a:void 0}getDiagnosticsForProject(e,t,n){if(this.suppressDiagnosticEvents)return;const{fileNames:r,languageServiceDisabled:i}=this.getProjectInfoWorker(n,void 0,!0,void 0,!0);if(i)return;const o=r.filter(e=>!e.includes("lib.d.ts"));if(0===o.length)return;const a=[],s=[],c=[],l=[],d=toNormalizedPath(n),p=this.projectService.ensureDefaultProjectForFile(d);for(const e of o)if(this.getCanonicalFileName(e)===this.getCanonicalFileName(n))a.push(e);else{this.projectService.getScriptInfo(e).isScriptOpen()?s.push(e):isDeclarationFileName(e)?l.push(e):c.push(e)}const u=[...a,...s,...c,...l].map(e=>({fileName:e,project:p}));this.updateErrorCheck(e,u,t,!1)}configurePlugin(e){this.projectService.configurePlugin(e)}getSmartSelectionRange(e,t){const{locations:n}=e,{file:r,languageService:i}=this.getFileAndLanguageServiceForSyntacticOperation(e),o=h.checkDefined(this.projectService.getScriptInfo(r));return map(n,e=>{const n=this.getPosition(e,o),a=i.getSmartSelectionRange(r,n);return t?this.mapSelectionRange(a,o):a})}toggleLineComment(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfo(n),o=this.getRange(e,i),a=r.toggleLineComment(n,o);if(t){const e=this.projectService.getScriptInfoForNormalizedPath(n);return a.map(t=>this.convertTextChangeToCodeEdit(t,e))}return a}toggleMultilineComment(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getRange(e,i),a=r.toggleMultilineComment(n,o);if(t){const e=this.projectService.getScriptInfoForNormalizedPath(n);return a.map(t=>this.convertTextChangeToCodeEdit(t,e))}return a}commentSelection(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getRange(e,i),a=r.commentSelection(n,o);if(t){const e=this.projectService.getScriptInfoForNormalizedPath(n);return a.map(t=>this.convertTextChangeToCodeEdit(t,e))}return a}uncommentSelection(e,t){const{file:n,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(n),o=this.getRange(e,i),a=r.uncommentSelection(n,o);if(t){const e=this.projectService.getScriptInfoForNormalizedPath(n);return a.map(t=>this.convertTextChangeToCodeEdit(t,e))}return a}mapSelectionRange(e,t){const n={textSpan:toProtocolTextSpan(e.textSpan,t)};return e.parent&&(n.parent=this.mapSelectionRange(e.parent,t)),n}getScriptInfoFromProjectService(e){const t=toNormalizedPath(e),n=this.projectService.getScriptInfoForNormalizedPath(t);return n||(this.projectService.logErrorForScriptInfoNotFound(t),I_.ThrowNoProject())}toProtocolCallHierarchyItem(e){const t=this.getScriptInfoFromProjectService(e.file);return{name:e.name,kind:e.kind,kindModifiers:e.kindModifiers,file:e.file,containerName:e.containerName,span:toProtocolTextSpan(e.span,t),selectionSpan:toProtocolTextSpan(e.selectionSpan,t)}}toProtocolCallHierarchyIncomingCall(e){const t=this.getScriptInfoFromProjectService(e.from.file);return{from:this.toProtocolCallHierarchyItem(e.from),fromSpans:e.fromSpans.map(e=>toProtocolTextSpan(e,t))}}toProtocolCallHierarchyOutgoingCall(e,t){return{to:this.toProtocolCallHierarchyItem(e.to),fromSpans:e.fromSpans.map(e=>toProtocolTextSpan(e,t))}}prepareCallHierarchy(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.projectService.getScriptInfoForNormalizedPath(t);if(r){const i=this.getPosition(e,r),o=n.getLanguageService().prepareCallHierarchy(t,i);return o&&mapOneOrMany(o,e=>this.toProtocolCallHierarchyItem(e))}}provideCallHierarchyIncomingCalls(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.getScriptInfoFromProjectService(t);return n.getLanguageService().provideCallHierarchyIncomingCalls(t,this.getPosition(e,r)).map(e=>this.toProtocolCallHierarchyIncomingCall(e))}provideCallHierarchyOutgoingCalls(e){const{file:t,project:n}=this.getFileAndProject(e),r=this.getScriptInfoFromProjectService(t);return n.getLanguageService().provideCallHierarchyOutgoingCalls(t,this.getPosition(e,r)).map(e=>this.toProtocolCallHierarchyOutgoingCall(e,r))}getCanonicalFileName(e){return normalizePath(this.host.useCaseSensitiveFileNames?e:toFileNameLowerCase(e))}exit(){}notRequired(e){return e&&this.doOutput(void 0,e.command,e.seq,!0,this.performanceData),{responseRequired:!1,performanceData:this.performanceData}}requiredResponse(e){return{response:e,responseRequired:!0,performanceData:this.performanceData}}addProtocolHandler(e,t){if(this.handlers.has(e))throw new Error(`Protocol handler already exists for command "${e}"`);this.handlers.set(e,t)}setCurrentRequest(e){h.assert(void 0===this.currentRequestId),this.currentRequestId=e,this.cancellationToken.setRequest(e)}resetCurrentRequest(e){h.assert(this.currentRequestId===e),this.currentRequestId=void 0,this.cancellationToken.resetRequest(e)}executeWithRequestId(e,t,n){const r=this.performanceData;try{return this.performanceData=n,this.setCurrentRequest(e),t()}finally{this.resetCurrentRequest(e),this.performanceData=r}}executeCommand(e){const t=this.handlers.get(e.command);if(t){const n=this.executeWithRequestId(e.seq,()=>t(e),void 0);return this.projectService.enableRequestedPlugins(),n}return this.logger.msg(`Unrecognized JSON command:${stringifyIndented(e)}`,"Err"),this.doOutput(void 0,"unknown",e.seq,!1,void 0,`Unrecognized JSON command: ${e.command}`),{responseRequired:!1}}onMessage(e){var t,n,r,i,o,a,s;let c;this.gcTimer.scheduleCollect();const l=this.performanceData;let d,p;this.logger.hasLevel(2)&&(c=this.hrtime(),this.logger.hasLevel(3)&&this.logger.info(`request:${indent2(this.toStringMessage(e))}`));try{d=this.parseMessage(e),p=d.arguments&&d.arguments.file?d.arguments:void 0,null==(t=J)||t.instant(J.Phase.Session,"request",{seq:d.seq,command:d.command}),null==(n=J)||n.push(J.Phase.Session,"executeCommand",{seq:d.seq,command:d.command},!0);const{response:o,responseRequired:a,performanceData:s}=this.executeCommand(d);if(null==(r=J)||r.pop(),this.logger.hasLevel(2)){const e=function hrTimeToMilliseconds(e){return(1e9*e[0]+e[1])/1e6}(this.hrtime(c)).toFixed(4);a?this.logger.perftrc(`${d.seq}::${d.command}: elapsed time (in milliseconds) ${e}`):this.logger.perftrc(`${d.seq}::${d.command}: async elapsed time (in milliseconds) ${e}`)}null==(i=J)||i.instant(J.Phase.Session,"response",{seq:d.seq,command:d.command,success:!!o}),o?this.doOutput(o,d.command,d.seq,!0,s):a&&this.doOutput(void 0,d.command,d.seq,!1,s,"No content available.")}catch(t){if(null==(o=J)||o.popAll(),t instanceof se)return null==(a=J)||a.instant(J.Phase.Session,"commandCanceled",{seq:null==d?void 0:d.seq,command:null==d?void 0:d.command}),void this.doOutput({canceled:!0},d.command,d.seq,!0,this.performanceData);this.logErrorWorker(t,this.toStringMessage(e),p),null==(s=J)||s.instant(J.Phase.Session,"commandError",{seq:null==d?void 0:d.seq,command:null==d?void 0:d.command,message:t.message}),this.doOutput(void 0,d?d.command:"unknown",d?d.seq:0,!1,this.performanceData,"Error processing request. "+t.message+"\n"+t.stack)}finally{this.performanceData=l}}parseMessage(e){return JSON.parse(e)}toStringMessage(e){return e}getFormatOptions(e){return this.projectService.getFormatCodeOptions(e)}getPreferences(e){return this.projectService.getPreferences(e)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function toProtocolPerformanceData(e){const t=e.diagnosticsDuration&&arrayFrom(e.diagnosticsDuration,([e,t])=>({...t,file:e}));return{...e,diagnosticsDuration:t}}function toProtocolTextSpan(e,t){return{start:t.positionToLineOffset(e.start),end:t.positionToLineOffset(textSpanEnd(e))}}function toProtocolTextSpanWithContext(e,t,n){const r=toProtocolTextSpan(e,n),i=t&&toProtocolTextSpan(t,n);return i?{...r,contextStart:i.start,contextEnd:i.end}:r}function positionToLineOffset(e,t){return isConfigFile(e)?function locationFromLineAndCharacter(e){return{line:e.line+1,offset:e.character+1}}(e.getLineAndCharacterOfPosition(t)):e.positionToLineOffset(t)}function getLocationInNewDocument(e,t,n,r){const i=function applyEdits(e,t,n){for(const{fileName:r,textChanges:i}of n)if(r===t)for(let t=i.length-1;t>=0;t--){const{newText:n,span:{start:r,length:o}}=i[t];e=e.slice(0,r)+n+e.slice(r+o)}return e}(e,t,r),{line:o,character:a}=computeLineAndCharacterOfPosition(computeLineStarts(i),n);return{line:o+1,offset:a+1}}function referenceEntryToReferencesResponseItem(e,{fileName:t,textSpan:n,contextSpan:r,isWriteAccess:i,isDefinition:o},{disableLineTextInReferences:a}){const s=h.checkDefined(e.getScriptInfo(t)),c=toProtocolTextSpanWithContext(n,r,s),l=a?void 0:function getLineText(e,t){const n=e.lineToTextSpan(t.start.line-1);return e.getSnapshot().getText(n.start,textSpanEnd(n)).replace(/\r|\n/g,"")}(s,c);return{file:t,...c,lineText:l,isWriteAccess:i,isDefinition:o}}function isCompletionEntryData(e){return void 0===e||e&&"object"==typeof e&&"string"==typeof e.exportName&&(void 0===e.fileName||"string"==typeof e.fileName)&&(void 0===e.ambientModuleName||"string"==typeof e.ambientModuleName&&(void 0===e.isPackageJsonImport||"boolean"==typeof e.isPackageJsonImport))}var Rf=(e=>(e[e.PreStart=0]="PreStart",e[e.Start=1]="Start",e[e.Entire=2]="Entire",e[e.Mid=3]="Mid",e[e.End=4]="End",e[e.PostEnd=5]="PostEnd",e))(Rf||{}),Bf=class{constructor(){this.goSubtree=!0,this.lineIndex=new zf,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new Vf,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(e,t){t&&(this.trailingText=""),e=e?this.initialText+e+this.trailingText:this.initialText+this.trailingText;const n=zf.linesFromText(e).lines;let r,i;n.length>1&&""===n[n.length-1]&&n.pop();for(let e=this.endBranch.length-1;e>=0;e--)this.endBranch[e].updateCounts(),0===this.endBranch[e].charCount()&&(i=this.endBranch[e],r=e>0?this.endBranch[e-1]:this.branchNode);i&&r.remove(i);const o=this.startPath[this.startPath.length-1];if(n.length>0)if(o.text=n[0],n.length>1){let e=new Array(n.length-1),t=o;for(let t=1;t=0;){const n=this.startPath[r];e=n.insertAt(t,e),r--,t=n}let i=e.length;for(;i>0;){const t=new Vf;t.add(this.lineIndex.root),e=t.insertAt(this.lineIndex.root,e),i=e.length,this.lineIndex.root=t}this.lineIndex.root.updateCounts()}else for(let e=this.startPath.length-2;e>=0;e--)this.startPath[e].updateCounts();else{this.startPath[this.startPath.length-2].remove(o);for(let e=this.startPath.length-2;e>=0;e--)this.startPath[e].updateCounts()}return this.lineIndex}post(e,t,n){n===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(e,t,n,r,i){const o=this.stack[this.stack.length-1];let a;function fresh(e){return e.isLeaf()?new qf(""):new Vf}switch(2===this.state&&1===i&&(this.state=1,this.branchNode=o,this.lineCollectionAtBranch=n),i){case 0:this.goSubtree=!1,4!==this.state&&o.add(n);break;case 1:4===this.state?this.goSubtree=!1:(a=fresh(n),o.add(a),this.startPath.push(a));break;case 2:4!==this.state?(a=fresh(n),o.add(a),this.startPath.push(a)):n.isLeaf()||(a=fresh(n),o.add(a),this.endBranch.push(a));break;case 3:this.goSubtree=!1;break;case 4:4!==this.state?this.goSubtree=!1:n.isLeaf()||(a=fresh(n),o.add(a),this.endBranch.push(a));break;case 5:this.goSubtree=!1,1!==this.state&&o.add(n)}this.goSubtree&&this.stack.push(a)}leaf(e,t,n){1===this.state?this.initialText=n.text.substring(0,e):2===this.state?(this.initialText=n.text.substring(0,e),this.trailingText=n.text.substring(e+t)):this.trailingText=n.text.substring(e+t)}},jf=class{constructor(e,t,n){this.pos=e,this.deleteLen=t,this.insertedText=n}getTextChangeRange(){return createTextChangeRange(createTextSpan(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},Jf=class _ScriptVersionCache{constructor(){this.changes=[],this.versions=new Array(_ScriptVersionCache.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(e){if(!(ethis.currentVersion))return e%_ScriptVersionCache.maxVersions}currentVersionToIndex(){return this.currentVersion%_ScriptVersionCache.maxVersions}edit(e,t,n){this.changes.push(new jf(e,t,n)),(this.changes.length>_ScriptVersionCache.changeNumberThreshold||t>_ScriptVersionCache.changeLengthThreshold||n&&n.length>_ScriptVersionCache.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let e=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let t=e.index;for(const e of this.changes)t=t.edit(e.pos,e.deleteLen,e.insertedText);e=new Uf(this.currentVersion+1,this,t,this.changes),this.currentVersion=e.version,this.versions[this.currentVersionToIndex()]=e,this.changes=[],this.currentVersion-this.minVersion>=_ScriptVersionCache.maxVersions&&(this.minVersion=this.currentVersion-_ScriptVersionCache.maxVersions+1)}return e}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(e){return this._getSnapshot().index.lineNumberToInfo(e)}lineOffsetToPosition(e,t){return this._getSnapshot().index.absolutePositionOfStartOfLine(e)+(t-1)}positionToLineOffset(e){return this._getSnapshot().index.positionToLineOffset(e)}lineToTextSpan(e){const t=this._getSnapshot().index,{lineText:n,absolutePosition:r}=t.lineNumberToInfo(e+1);return createTextSpan(r,void 0!==n?n.length:t.absolutePositionOfStartOfLine(e+2)-r)}getTextChangesBetweenVersions(e,t){if(!(e=this.minVersion){const n=[];for(let r=e+1;r<=t;r++){const e=this.versions[this.versionToIndex(r)];for(const t of e.changesSincePreviousVersion)n.push(t.getTextChangeRange())}return collapseTextChangeRangesAcrossMultipleVersions(n)}}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(e){const t=new _ScriptVersionCache,n=new Uf(0,t,new zf);t.versions[t.currentVersion]=n;const r=zf.linesFromText(e);return n.index.load(r.lines),t}};Jf.changeNumberThreshold=8,Jf.changeLengthThreshold=256,Jf.maxVersions=8;var Wf=Jf,Uf=class _LineIndexSnapshot{constructor(e,t,n,r=w_){this.version=e,this.cache=t,this.index=n,this.changesSincePreviousVersion=r}getText(e,t){return this.index.getText(e,t-e)}getLength(){return this.index.getLength()}getChangeRange(e){if(e instanceof _LineIndexSnapshot&&this.cache===e.cache)return this.version<=e.version?nn:this.cache.getTextChangesBetweenVersions(e.version,this.version)}},zf=class _LineIndex{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(e){return this.lineNumberToInfo(e).absolutePosition}positionToLineOffset(e){const{oneBasedLine:t,zeroBasedColumn:n}=this.root.charOffsetToLineInfo(1,e);return{line:t,offset:n+1}}positionToColumnAndLineText(e){return this.root.charOffsetToLineInfo(1,e)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(e){if(e<=this.getLineCount()){const{position:t,leaf:n}=this.root.lineNumberToInfo(e,0);return{absolutePosition:t,lineText:n&&n.text}}return{absolutePosition:this.root.charCount(),lineText:void 0}}load(e){if(e.length>0){const t=[];for(let n=0;n0&&e{n=n.concat(r.text.substring(e,e+t))}}),n}getLength(){return this.root.charCount()}every(e,t,n){n||(n=this.root.charCount());const r={goSubtree:!0,done:!1,leaf(t,n,r){e(r,t,n)||(this.done=!0)}};return this.walk(t,n-t,r),!r.done}edit(e,t,n){if(0===this.root.charCount())return h.assert(0===t),void 0!==n?(this.load(_LineIndex.linesFromText(n).lines),this):void 0;{let r;if(this.checkEdits){const i=this.getText(0,this.root.charCount());r=i.slice(0,e)+n+i.slice(e+t)}const i=new Bf;let o=!1;if(e>=this.root.charCount()){e=this.root.charCount()-1;const r=this.getText(e,1);n=n?r+n:r,t=0,o=!0}else if(t>0){const r=e+t,{zeroBasedColumn:i,lineText:o}=this.positionToColumnAndLineText(r);0===i&&(t+=o.length,n=n?n+o:o)}if(this.root.walk(e,t,i),i.insertLines(n,o),this.checkEdits){const e=i.lineIndex.getText(0,i.lineIndex.getLength());h.assert(r===e,"buffer edit mismatch")}return i.lineIndex}}static buildTreeFromBottom(e){if(e.length<4)return new Vf(e);const t=new Array(Math.ceil(e.length/4));let n=0;for(let r=0;r0?n[r]=i:n.pop(),{lines:n,lineMap:t}}},Vf=class _LineNode{constructor(e=[]){this.children=e,this.totalChars=0,this.totalLines=0,e.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(const e of this.children)this.totalChars+=e.charCount(),this.totalLines+=e.lineCount()}execWalk(e,t,n,r,i){return n.pre&&n.pre(e,t,this.children[r],this,i),n.goSubtree?(this.children[r].walk(e,t,n),n.post&&n.post(e,t,this.children[r],this,i)):n.goSubtree=!0,n.done}skipChild(e,t,n,r,i){r.pre&&!r.done&&(r.pre(e,t,this.children[n],this,i),r.goSubtree=!0)}walk(e,t,n){if(0===this.children.length)return;let r=0,i=this.children[r].charCount(),o=e;for(;o>=i;)this.skipChild(o,t,r,n,0),o-=i,r++,i=this.children[r].charCount();if(o+t<=i){if(this.execWalk(o,t,n,r,2))return}else{if(this.execWalk(o,i-o,n,r,1))return;let e=t-(i-o);r++;for(i=this.children[r].charCount();e>i;){if(this.execWalk(0,i,n,r,3))return;e-=i,r++,i=this.children[r].charCount()}if(e>0&&this.execWalk(0,e,n,r,4))return}if(n.pre){const e=this.children.length;if(rt)return n.isLeaf()?{oneBasedLine:e,zeroBasedColumn:t,lineText:n.text}:n.charOffsetToLineInfo(e,t);t-=n.charCount(),e+=n.lineCount()}const n=this.lineCount();if(0===n)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};return{oneBasedLine:n,zeroBasedColumn:h.checkDefined(this.lineNumberToInfo(n,0).leaf).charCount(),lineText:void 0}}lineNumberToInfo(e,t){for(const n of this.children){const r=n.lineCount();if(r>=e)return n.isLeaf()?{position:t,leaf:n}:n.lineNumberToInfo(e,t);e-=r,t+=n.charCount()}return{position:t,leaf:void 0}}splitAfter(e){let t;const n=this.children.length,r=++e;if(e=0;e--)0===o[e].children.length&&o.pop()}e&&o.push(e),this.updateCounts();for(let e=0;e{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:e,reject:t})});return this.installer.send(t),n}attach(e){this.projectService=e,this.installer=this.createInstallerProcess()}onProjectClosed(e){this.installer.send({projectName:e.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(e,t,n){const r=createInstallTypingsRequest(e,t,n);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(r)}`),this.activeRequestCount0?this.activeRequestCount--:h.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){const e=this.requestQueue.dequeue();if(this.requestMap.get(e.projectName)===e){this.requestMap.delete(e.projectName),this.scheduleRequest(e);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${e.projectName}`)}this.projectService.updateTypingsForProject(e),this.event(e,"setTypings");break;case ys:this.projectService.watchTypingLocations(e)}}scheduleRequest(e){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${e.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(e)}`),this.installer.send(e)},_TypingsInstallerAdapter.requestDelayMillis,`${e.projectName}::${e.kind}`)}};Hf.requestDelayMillis=100;var Kf=Hf,Gf={};i(Gf,{ActionInvalidate:()=>ps,ActionPackageInstalled:()=>us,ActionSet:()=>ds,ActionWatchTypingLocations:()=>ys,Arguments:()=>cs,AutoImportProviderProject:()=>nf,AuxiliaryProject:()=>ef,CharRangeSection:()=>Rf,CloseFileWatcherEvent:()=>hf,CommandNames:()=>Af,ConfigFileDiagEvent:()=>uf,ConfiguredProject:()=>rf,ConfiguredProjectLoadKind:()=>Ff,CreateDirectoryWatcherEvent:()=>yf,CreateFileWatcherEvent:()=>gf,Errors:()=>I_,EventBeginInstallTypes:()=>_s,EventEndInstallTypes:()=>fs,EventInitializationFailed:()=>gs,EventTypesRegistry:()=>ms,ExternalProject:()=>of,GcTimer:()=>R_,InferredProject:()=>Z_,LargeFileReferencedEvent:()=>pf,LineIndex:()=>zf,LineLeaf:()=>qf,LineNode:()=>Vf,LogLevel:()=>O_,Msg:()=>L_,OpenFileInfoTelemetryEvent:()=>ff,Project:()=>Y_,ProjectInfoTelemetryEvent:()=>_f,ProjectKind:()=>X_,ProjectLanguageServiceStateEvent:()=>mf,ProjectLoadingFinishEvent:()=>df,ProjectLoadingStartEvent:()=>lf,ProjectService:()=>Df,ProjectsUpdatedInBackgroundEvent:()=>cf,ScriptInfo:()=>Q_,ScriptVersionCache:()=>Wf,Session:()=>Mf,TextStorage:()=>$_,ThrottledOperations:()=>M_,TypingsInstallerAdapter:()=>Kf,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:()=>w_,findArgument:()=>findArgument,formatDiagnosticToProtocol:()=>formatDiagnosticToProtocol,formatMessage:()=>formatMessage2,getBaseConfigFileName:()=>getBaseConfigFileName,getDetailWatchInfo:()=>getDetailWatchInfo,getLocationInNewDocument:()=>getLocationInNewDocument,hasArgument:()=>hasArgument,hasNoTypeScriptSource:()=>hasNoTypeScriptSource,indent:()=>indent2,isBackgroundProject:()=>isBackgroundProject,isConfigFile:()=>isConfigFile,isConfiguredProject:()=>isConfiguredProject,isDynamicFileName:()=>isDynamicFileName,isExternalProject:()=>isExternalProject,isInferredProject:()=>isInferredProject,isInferredProjectName:()=>isInferredProjectName,isProjectDeferredClose:()=>isProjectDeferredClose,makeAutoImportProviderProjectName:()=>makeAutoImportProviderProjectName,makeAuxiliaryProjectName:()=>makeAuxiliaryProjectName,makeInferredProjectName:()=>makeInferredProjectName,maxFileSize:()=>sf,maxProgramSizeForNonTsFiles:()=>af,normalizedPathToPath:()=>normalizedPathToPath,nowString:()=>nowString,nullCancellationToken:()=>If,nullTypingsInstaller:()=>Nf,protocol:()=>B_,scriptInfoIsContainedByBackgroundProject:()=>scriptInfoIsContainedByBackgroundProject,scriptInfoIsContainedByDeferredClosedProject:()=>scriptInfoIsContainedByDeferredClosedProject,stringifyIndented:()=>stringifyIndented,toEvent:()=>toEvent,toNormalizedPath:()=>toNormalizedPath,tryConvertScriptKindName:()=>tryConvertScriptKindName,typingsInstaller:()=>F_,updateProjectIfDirty:()=>updateProjectIfDirty}),"undefined"!=typeof console&&(h.loggingHost={log(e,t){switch(e){case 1:return console.error(t);case 2:return console.warn(t);case 3:case 4:return console.log(t)}}})})({get exports(){return i},set exports(t){i=t,e.exports&&(e.exports=t)}})}},t={};function __webpack_require__(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,__webpack_require__),i.exports}__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";__webpack_require__.r(n),__webpack_require__.d(n,{compileTest:()=>compileTest});var e=__webpack_require__(843);const t="/User/test/JetStream/";class CompilerHost{constructor(e,t){this.options=e,this.srcFileData=t,this.outFileData=Object.create(null)}getSourceFile(t,n,r,i){const o=this.readFile(t);return e.createSourceFile(t,o,n)}resolveModuleNames(t,n){const r=[];for(const i of t){const t=e.resolveModuleName(i,n,this.options,this);t.resolvedModule?r.push(t.resolvedModule):r.push(void 0)}return r}getDefaultLibFileName(){return"lib.d.ts"}getCurrentDirectory(){return""}getCanonicalFileName(e){return e.toLowerCase()}useCaseSensitiveFileNames(){return!0}getNewLine(){return"\n"}fileExists(e){return e in this.srcFileData}readFile(e){const t=this.srcFileData[e.toLowerCase()];if(void 0===t)throw new Error(`"${e}" does not exist.`);return t}writeFile(e,t,n){this.outFileData[e]=t}}function compileTest(n,r){const i=e.convertCompilerOptionsFromJson(n.compilerOptions,t).options;i.lib=[...i.lib||[],"dom"];const o=new CompilerHost(i,r),a=e.createProgram(Object.keys(r),i,o),s=a.emit(),c=function formatDiagnostics(t,n){const r=e.getPreEmitDiagnostics(t).concat(n.diagnostics);r.length>0&&console.log(`Found ${r.length} errors:`);const i=r.map(t=>{if(t.file){const{line:n,character:r}=e.getLineAndCharacterOfPosition(t.file,t.start),i=e.flattenDiagnosticMessageText(t.messageText,"\n");return`${t.file.fileName} (${n+1},${r+1}): ${i}`}return e.flattenDiagnosticMessageText(t.messageText,"\n")});return i.slice(0,20).map(e=>console.log(e)),i}(a,s);return{diagnostics:c,resultFilesCount:Object.keys(o.outFileData).length}}})(),TypeScriptCompileTest=n})(); +//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/TypeScript/dist/bundle.js.map b/TypeScript/dist/bundle.js.map new file mode 100644 index 00000000..e790e194 --- /dev/null +++ b/TypeScript/dist/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","mappings":"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M,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACjiJC,GAA2B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1tKC,GAA+B,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC5rRC,GAA8B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,O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SxwB,sBAAsBwwB,IAAS3wB,WAAW2wB,KAAUA,EAAK2+G,YAAa,CAC/G,MAAMA,EAAc/8H,gBAAgBoe,EAAK2+G,aACzC,QAAS65iB,kBAAkB75iB,IAAgBl9I,gBAAgBk9I,IAAgBt7I,0BAA0Bs7I,IAAgBp2J,sBAAsBo2J,GAC7I,CACA,OAAO,CACT,CACA,SAASs6iB,mBAAmBhqqB,EAAM+Q,GAChC,MAAM8F,EAAa9F,EAAK67R,gBACxB,MAAO,CACL5sS,OACAwpH,KAAM98K,uBAAuBqkE,EAAM8F,GACnCsT,KAAMtT,EAAW7L,SAErB,CACF,CAGA,IAAIj2E,GAAmB,CAAC,EACxBpF,EAASoF,GAAkB,CACzBqiqB,gCAAiC,IAAMA,gCACvCspD,uCAAwC,IAAMA,uCAC9CjJ,iCAAkC,IAAMA,iCACxCgJ,6BAA8B,IAAMA,6BACpCjJ,uBAAwB,IAAMA,uBAC9BgJ,iCAAkC,IAAMA,GACxClJ,2BAA4B,IAAMA,2BAClC1tD,iCAAkC,IAAMA,iCACxCH,6BAA8B,IAAMA,+BAItC,IAsFIshF,GACAC,GAvFAC,GAAgB,CAClB,WACA,SACA,QACA,WACA,QACA,WACA,SACA,UACA,WACA,QACA,YACA,WACA,cACA,aACA,YACA,UACA,aACA,cACA,QACA,OACA,QACA,UACA,UACA,UACA,WACA,QACA,OACA,eACA,QACA,WACA,YACA,SACA,kBACA,OACA,SACA,aACA,SACA,aACA,QACA,WACA,YACA,OACA,QACA,UACA,OACA,WACA,YACA,UACA,SACA,WACA,SACA,QACA,SACA,OACA,YACA,WACA,WACA,UACA,QACA,UACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,YACA,MACA,QACA,SACA,UACA,WACA,OACA,SACA,OACA,WACA,OACA,UACA,MACA,YACA,UACA,UACA,UAIF,SAASrhF,iCAAiC33kB,EAAcsD,GACtD,MAAMmhM,EAAQ,GAgBd,OAfA3gQ,cAAck8D,EAAei6G,IAC3B,IAAK,MAAMg/iB,KAmBf,SAASC,sBAAsBj/iB,GAC7B,OAAQA,EAAY98G,MAClB,KAAK,IACL,KAA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","sources":["webpack://TypeScriptCompileTest/./node_modules/typescript/lib/ sync","webpack://TypeScriptCompileTest/./node_modules/typescript/lib/typescript.js","webpack://TypeScriptCompileTest/webpack/bootstrap","webpack://TypeScriptCompileTest/webpack/runtime/define property getters","webpack://TypeScriptCompileTest/webpack/runtime/global","webpack://TypeScriptCompileTest/webpack/runtime/hasOwnProperty shorthand","webpack://TypeScriptCompileTest/webpack/runtime/make namespace object","webpack://TypeScriptCompileTest/./src/test.mjs"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 387;\nmodule.exports = webpackEmptyContext;","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\nvar ts = {}; ((module) => {\n\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => (__copyProps, mod); // Modified helper to skip setting __esModule.\n\n// src/typescript/typescript.ts\nvar typescript_exports = {};\n__export(typescript_exports, {\n ANONYMOUS: () => ANONYMOUS,\n AccessFlags: () => AccessFlags,\n AssertionLevel: () => AssertionLevel,\n AssignmentDeclarationKind: () => AssignmentDeclarationKind,\n AssignmentKind: () => AssignmentKind,\n Associativity: () => Associativity,\n BreakpointResolver: () => ts_BreakpointResolver_exports,\n BuilderFileEmit: () => BuilderFileEmit,\n BuilderProgramKind: () => BuilderProgramKind,\n BuilderState: () => BuilderState,\n CallHierarchy: () => ts_CallHierarchy_exports,\n CharacterCodes: () => CharacterCodes,\n CheckFlags: () => CheckFlags,\n CheckMode: () => CheckMode,\n ClassificationType: () => ClassificationType,\n ClassificationTypeNames: () => ClassificationTypeNames,\n CommentDirectiveType: () => CommentDirectiveType,\n Comparison: () => Comparison,\n CompletionInfoFlags: () => CompletionInfoFlags,\n CompletionTriggerKind: () => CompletionTriggerKind,\n Completions: () => ts_Completions_exports,\n ContainerFlags: () => ContainerFlags,\n ContextFlags: () => ContextFlags,\n Debug: () => Debug,\n DiagnosticCategory: () => DiagnosticCategory,\n Diagnostics: () => Diagnostics,\n DocumentHighlights: () => DocumentHighlights,\n ElementFlags: () => ElementFlags,\n EmitFlags: () => EmitFlags,\n EmitHint: () => EmitHint,\n EmitOnly: () => EmitOnly,\n EndOfLineState: () => EndOfLineState,\n ExitStatus: () => ExitStatus,\n ExportKind: () => ExportKind,\n Extension: () => Extension,\n ExternalEmitHelpers: () => ExternalEmitHelpers,\n FileIncludeKind: () => FileIncludeKind,\n FilePreprocessingDiagnosticsKind: () => FilePreprocessingDiagnosticsKind,\n FileSystemEntryKind: () => FileSystemEntryKind,\n FileWatcherEventKind: () => FileWatcherEventKind,\n FindAllReferences: () => ts_FindAllReferences_exports,\n FlattenLevel: () => FlattenLevel,\n FlowFlags: () => FlowFlags,\n ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences,\n FunctionFlags: () => FunctionFlags,\n GeneratedIdentifierFlags: () => GeneratedIdentifierFlags,\n GetLiteralTextFlags: () => GetLiteralTextFlags,\n GoToDefinition: () => ts_GoToDefinition_exports,\n HighlightSpanKind: () => HighlightSpanKind,\n IdentifierNameMap: () => IdentifierNameMap,\n ImportKind: () => ImportKind,\n ImportsNotUsedAsValues: () => ImportsNotUsedAsValues,\n IndentStyle: () => IndentStyle,\n IndexFlags: () => IndexFlags,\n IndexKind: () => IndexKind,\n InferenceFlags: () => InferenceFlags,\n InferencePriority: () => InferencePriority,\n InlayHintKind: () => InlayHintKind2,\n InlayHints: () => ts_InlayHints_exports,\n InternalEmitFlags: () => InternalEmitFlags,\n InternalNodeBuilderFlags: () => InternalNodeBuilderFlags,\n InternalSymbolName: () => InternalSymbolName,\n IntersectionFlags: () => IntersectionFlags,\n InvalidatedProjectKind: () => InvalidatedProjectKind,\n JSDocParsingMode: () => JSDocParsingMode,\n JsDoc: () => ts_JsDoc_exports,\n JsTyping: () => ts_JsTyping_exports,\n JsxEmit: () => JsxEmit,\n JsxFlags: () => JsxFlags,\n JsxReferenceKind: () => JsxReferenceKind,\n LanguageFeatureMinimumTarget: () => LanguageFeatureMinimumTarget,\n LanguageServiceMode: () => LanguageServiceMode,\n LanguageVariant: () => LanguageVariant,\n LexicalEnvironmentFlags: () => LexicalEnvironmentFlags,\n ListFormat: () => ListFormat,\n LogLevel: () => LogLevel,\n MapCode: () => ts_MapCode_exports,\n MemberOverrideStatus: () => MemberOverrideStatus,\n ModifierFlags: () => ModifierFlags,\n ModuleDetectionKind: () => ModuleDetectionKind,\n ModuleInstanceState: () => ModuleInstanceState,\n ModuleKind: () => ModuleKind,\n ModuleResolutionKind: () => ModuleResolutionKind,\n ModuleSpecifierEnding: () => ModuleSpecifierEnding,\n NavigateTo: () => ts_NavigateTo_exports,\n NavigationBar: () => ts_NavigationBar_exports,\n NewLineKind: () => NewLineKind,\n NodeBuilderFlags: () => NodeBuilderFlags,\n NodeCheckFlags: () => NodeCheckFlags,\n NodeFactoryFlags: () => NodeFactoryFlags,\n NodeFlags: () => NodeFlags,\n NodeResolutionFeatures: () => NodeResolutionFeatures,\n ObjectFlags: () => ObjectFlags,\n OperationCanceledException: () => OperationCanceledException,\n OperatorPrecedence: () => OperatorPrecedence,\n OrganizeImports: () => ts_OrganizeImports_exports,\n OrganizeImportsMode: () => OrganizeImportsMode,\n OuterExpressionKinds: () => OuterExpressionKinds,\n OutliningElementsCollector: () => ts_OutliningElementsCollector_exports,\n OutliningSpanKind: () => OutliningSpanKind,\n OutputFileType: () => OutputFileType,\n PackageJsonAutoImportPreference: () => PackageJsonAutoImportPreference,\n PackageJsonDependencyGroup: () => PackageJsonDependencyGroup,\n PatternMatchKind: () => PatternMatchKind,\n PollingInterval: () => PollingInterval,\n PollingWatchKind: () => PollingWatchKind,\n PragmaKindFlags: () => PragmaKindFlags,\n PredicateSemantics: () => PredicateSemantics,\n PreparePasteEdits: () => ts_preparePasteEdits_exports,\n PrivateIdentifierKind: () => PrivateIdentifierKind,\n ProcessLevel: () => ProcessLevel,\n ProgramUpdateLevel: () => ProgramUpdateLevel,\n QuotePreference: () => QuotePreference,\n RegularExpressionFlags: () => RegularExpressionFlags,\n RelationComparisonResult: () => RelationComparisonResult,\n Rename: () => ts_Rename_exports,\n ScriptElementKind: () => ScriptElementKind,\n ScriptElementKindModifier: () => ScriptElementKindModifier,\n ScriptKind: () => ScriptKind,\n ScriptSnapshot: () => ScriptSnapshot,\n ScriptTarget: () => ScriptTarget,\n SemanticClassificationFormat: () => SemanticClassificationFormat,\n SemanticMeaning: () => SemanticMeaning,\n SemicolonPreference: () => SemicolonPreference,\n SignatureCheckMode: () => SignatureCheckMode,\n SignatureFlags: () => SignatureFlags,\n SignatureHelp: () => ts_SignatureHelp_exports,\n SignatureInfo: () => SignatureInfo,\n SignatureKind: () => SignatureKind,\n SmartSelectionRange: () => ts_SmartSelectionRange_exports,\n SnippetKind: () => SnippetKind,\n StatisticType: () => StatisticType,\n StructureIsReused: () => StructureIsReused,\n SymbolAccessibility: () => SymbolAccessibility,\n SymbolDisplay: () => ts_SymbolDisplay_exports,\n SymbolDisplayPartKind: () => SymbolDisplayPartKind,\n SymbolFlags: () => SymbolFlags,\n SymbolFormatFlags: () => SymbolFormatFlags,\n SyntaxKind: () => SyntaxKind,\n Ternary: () => Ternary,\n ThrottledCancellationToken: () => ThrottledCancellationToken,\n TokenClass: () => TokenClass,\n TokenFlags: () => TokenFlags,\n TransformFlags: () => TransformFlags,\n TypeFacts: () => TypeFacts,\n TypeFlags: () => TypeFlags,\n TypeFormatFlags: () => TypeFormatFlags,\n TypeMapKind: () => TypeMapKind,\n TypePredicateKind: () => TypePredicateKind,\n TypeReferenceSerializationKind: () => TypeReferenceSerializationKind,\n UnionReduction: () => UnionReduction,\n UpToDateStatusType: () => UpToDateStatusType,\n VarianceFlags: () => VarianceFlags,\n Version: () => Version,\n VersionRange: () => VersionRange,\n WatchDirectoryFlags: () => WatchDirectoryFlags,\n WatchDirectoryKind: () => WatchDirectoryKind,\n WatchFileKind: () => WatchFileKind,\n WatchLogLevel: () => WatchLogLevel,\n WatchType: () => WatchType,\n accessPrivateIdentifier: () => accessPrivateIdentifier,\n addEmitFlags: () => addEmitFlags,\n addEmitHelper: () => addEmitHelper,\n addEmitHelpers: () => addEmitHelpers,\n addInternalEmitFlags: () => addInternalEmitFlags,\n addNodeFactoryPatcher: () => addNodeFactoryPatcher,\n addObjectAllocatorPatcher: () => addObjectAllocatorPatcher,\n addRange: () => addRange,\n addRelatedInfo: () => addRelatedInfo,\n addSyntheticLeadingComment: () => addSyntheticLeadingComment,\n addSyntheticTrailingComment: () => addSyntheticTrailingComment,\n addToSeen: () => addToSeen,\n advancedAsyncSuperHelper: () => advancedAsyncSuperHelper,\n affectsDeclarationPathOptionDeclarations: () => affectsDeclarationPathOptionDeclarations,\n affectsEmitOptionDeclarations: () => affectsEmitOptionDeclarations,\n allKeysStartWithDot: () => allKeysStartWithDot,\n altDirectorySeparator: () => altDirectorySeparator,\n and: () => and,\n append: () => append,\n appendIfUnique: () => appendIfUnique,\n arrayFrom: () => arrayFrom,\n arrayIsEqualTo: () => arrayIsEqualTo,\n arrayIsHomogeneous: () => arrayIsHomogeneous,\n arrayOf: () => arrayOf,\n arrayReverseIterator: () => arrayReverseIterator,\n arrayToMap: () => arrayToMap,\n arrayToMultiMap: () => arrayToMultiMap,\n arrayToNumericMap: () => arrayToNumericMap,\n assertType: () => assertType,\n assign: () => assign,\n asyncSuperHelper: () => asyncSuperHelper,\n attachFileToDiagnostics: () => attachFileToDiagnostics,\n base64decode: () => base64decode,\n base64encode: () => base64encode,\n binarySearch: () => binarySearch,\n binarySearchKey: () => binarySearchKey,\n bindSourceFile: () => bindSourceFile,\n breakIntoCharacterSpans: () => breakIntoCharacterSpans,\n breakIntoWordSpans: () => breakIntoWordSpans,\n buildLinkParts: () => buildLinkParts,\n buildOpts: () => buildOpts,\n buildOverload: () => buildOverload,\n bundlerModuleNameResolver: () => bundlerModuleNameResolver,\n canBeConvertedToAsync: () => canBeConvertedToAsync,\n canHaveDecorators: () => canHaveDecorators,\n canHaveExportModifier: () => canHaveExportModifier,\n canHaveFlowNode: () => canHaveFlowNode,\n canHaveIllegalDecorators: () => canHaveIllegalDecorators,\n canHaveIllegalModifiers: () => canHaveIllegalModifiers,\n canHaveIllegalType: () => canHaveIllegalType,\n canHaveIllegalTypeParameters: () => canHaveIllegalTypeParameters,\n canHaveJSDoc: () => canHaveJSDoc,\n canHaveLocals: () => canHaveLocals,\n canHaveModifiers: () => canHaveModifiers,\n canHaveModuleSpecifier: () => canHaveModuleSpecifier,\n canHaveSymbol: () => canHaveSymbol,\n canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,\n canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,\n canProduceDiagnostics: () => canProduceDiagnostics,\n canUsePropertyAccess: () => canUsePropertyAccess,\n canWatchAffectingLocation: () => canWatchAffectingLocation,\n canWatchAtTypes: () => canWatchAtTypes,\n canWatchDirectoryOrFile: () => canWatchDirectoryOrFile,\n canWatchDirectoryOrFilePath: () => canWatchDirectoryOrFilePath,\n cartesianProduct: () => cartesianProduct,\n cast: () => cast,\n chainBundle: () => chainBundle,\n chainDiagnosticMessages: () => chainDiagnosticMessages,\n changeAnyExtension: () => changeAnyExtension,\n changeCompilerHostLikeToUseCache: () => changeCompilerHostLikeToUseCache,\n changeExtension: () => changeExtension,\n changeFullExtension: () => changeFullExtension,\n changesAffectModuleResolution: () => changesAffectModuleResolution,\n changesAffectingProgramStructure: () => changesAffectingProgramStructure,\n characterCodeToRegularExpressionFlag: () => characterCodeToRegularExpressionFlag,\n childIsDecorated: () => childIsDecorated,\n classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,\n classHasClassThisAssignment: () => classHasClassThisAssignment,\n classHasDeclaredOrExplicitlyAssignedName: () => classHasDeclaredOrExplicitlyAssignedName,\n classHasExplicitlyAssignedName: () => classHasExplicitlyAssignedName,\n classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated,\n classicNameResolver: () => classicNameResolver,\n classifier: () => ts_classifier_exports,\n cleanExtendedConfigCache: () => cleanExtendedConfigCache,\n clear: () => clear,\n clearMap: () => clearMap,\n clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher,\n climbPastPropertyAccess: () => climbPastPropertyAccess,\n clone: () => clone,\n cloneCompilerOptions: () => cloneCompilerOptions,\n closeFileWatcher: () => closeFileWatcher,\n closeFileWatcherOf: () => closeFileWatcherOf,\n codefix: () => ts_codefix_exports,\n collapseTextChangeRangesAcrossMultipleVersions: () => collapseTextChangeRangesAcrossMultipleVersions,\n collectExternalModuleInfo: () => collectExternalModuleInfo,\n combine: () => combine,\n combinePaths: () => combinePaths,\n commandLineOptionOfCustomType: () => commandLineOptionOfCustomType,\n commentPragmas: () => commentPragmas,\n commonOptionsWithBuild: () => commonOptionsWithBuild,\n compact: () => compact,\n compareBooleans: () => compareBooleans,\n compareDataObjects: () => compareDataObjects,\n compareDiagnostics: () => compareDiagnostics,\n compareEmitHelpers: () => compareEmitHelpers,\n compareNumberOfDirectorySeparators: () => compareNumberOfDirectorySeparators,\n comparePaths: () => comparePaths,\n comparePathsCaseInsensitive: () => comparePathsCaseInsensitive,\n comparePathsCaseSensitive: () => comparePathsCaseSensitive,\n comparePatternKeys: () => comparePatternKeys,\n compareProperties: () => compareProperties,\n compareStringsCaseInsensitive: () => compareStringsCaseInsensitive,\n compareStringsCaseInsensitiveEslintCompatible: () => compareStringsCaseInsensitiveEslintCompatible,\n compareStringsCaseSensitive: () => compareStringsCaseSensitive,\n compareStringsCaseSensitiveUI: () => compareStringsCaseSensitiveUI,\n compareTextSpans: () => compareTextSpans,\n compareValues: () => compareValues,\n compilerOptionsAffectDeclarationPath: () => compilerOptionsAffectDeclarationPath,\n compilerOptionsAffectEmit: () => compilerOptionsAffectEmit,\n compilerOptionsAffectSemanticDiagnostics: () => compilerOptionsAffectSemanticDiagnostics,\n compilerOptionsDidYouMeanDiagnostics: () => compilerOptionsDidYouMeanDiagnostics,\n compilerOptionsIndicateEsModules: () => compilerOptionsIndicateEsModules,\n computeCommonSourceDirectoryOfFilenames: () => computeCommonSourceDirectoryOfFilenames,\n computeLineAndCharacterOfPosition: () => computeLineAndCharacterOfPosition,\n computeLineOfPosition: () => computeLineOfPosition,\n computeLineStarts: () => computeLineStarts,\n computePositionOfLineAndCharacter: () => computePositionOfLineAndCharacter,\n computeSignatureWithDiagnostics: () => computeSignatureWithDiagnostics,\n computeSuggestionDiagnostics: () => computeSuggestionDiagnostics,\n computedOptions: () => computedOptions,\n concatenate: () => concatenate,\n concatenateDiagnosticMessageChains: () => concatenateDiagnosticMessageChains,\n consumesNodeCoreModules: () => consumesNodeCoreModules,\n contains: () => contains,\n containsIgnoredPath: () => containsIgnoredPath,\n containsObjectRestOrSpread: () => containsObjectRestOrSpread,\n containsParseError: () => containsParseError,\n containsPath: () => containsPath,\n convertCompilerOptionsForTelemetry: () => convertCompilerOptionsForTelemetry,\n convertCompilerOptionsFromJson: () => convertCompilerOptionsFromJson,\n convertJsonOption: () => convertJsonOption,\n convertToBase64: () => convertToBase64,\n convertToJson: () => convertToJson,\n convertToObject: () => convertToObject,\n convertToOptionsWithAbsolutePaths: () => convertToOptionsWithAbsolutePaths,\n convertToRelativePath: () => convertToRelativePath,\n convertToTSConfig: () => convertToTSConfig,\n convertTypeAcquisitionFromJson: () => convertTypeAcquisitionFromJson,\n copyComments: () => copyComments,\n copyEntries: () => copyEntries,\n copyLeadingComments: () => copyLeadingComments,\n copyProperties: () => copyProperties,\n copyTrailingAsLeadingComments: () => copyTrailingAsLeadingComments,\n copyTrailingComments: () => copyTrailingComments,\n couldStartTrivia: () => couldStartTrivia,\n countWhere: () => countWhere,\n createAbstractBuilder: () => createAbstractBuilder,\n createAccessorPropertyBackingField: () => createAccessorPropertyBackingField,\n createAccessorPropertyGetRedirector: () => createAccessorPropertyGetRedirector,\n createAccessorPropertySetRedirector: () => createAccessorPropertySetRedirector,\n createBaseNodeFactory: () => createBaseNodeFactory,\n createBinaryExpressionTrampoline: () => createBinaryExpressionTrampoline,\n createBuilderProgram: () => createBuilderProgram,\n createBuilderProgramUsingIncrementalBuildInfo: () => createBuilderProgramUsingIncrementalBuildInfo,\n createBuilderStatusReporter: () => createBuilderStatusReporter,\n createCacheableExportInfoMap: () => createCacheableExportInfoMap,\n createCachedDirectoryStructureHost: () => createCachedDirectoryStructureHost,\n createClassifier: () => createClassifier,\n createCommentDirectivesMap: () => createCommentDirectivesMap,\n createCompilerDiagnostic: () => createCompilerDiagnostic,\n createCompilerDiagnosticForInvalidCustomType: () => createCompilerDiagnosticForInvalidCustomType,\n createCompilerDiagnosticFromMessageChain: () => createCompilerDiagnosticFromMessageChain,\n createCompilerHost: () => createCompilerHost,\n createCompilerHostFromProgramHost: () => createCompilerHostFromProgramHost,\n createCompilerHostWorker: () => createCompilerHostWorker,\n createDetachedDiagnostic: () => createDetachedDiagnostic,\n createDiagnosticCollection: () => createDiagnosticCollection,\n createDiagnosticForFileFromMessageChain: () => createDiagnosticForFileFromMessageChain,\n createDiagnosticForNode: () => createDiagnosticForNode,\n createDiagnosticForNodeArray: () => createDiagnosticForNodeArray,\n createDiagnosticForNodeArrayFromMessageChain: () => createDiagnosticForNodeArrayFromMessageChain,\n createDiagnosticForNodeFromMessageChain: () => createDiagnosticForNodeFromMessageChain,\n createDiagnosticForNodeInSourceFile: () => createDiagnosticForNodeInSourceFile,\n createDiagnosticForRange: () => createDiagnosticForRange,\n createDiagnosticMessageChainFromDiagnostic: () => createDiagnosticMessageChainFromDiagnostic,\n createDiagnosticReporter: () => createDiagnosticReporter,\n createDocumentPositionMapper: () => createDocumentPositionMapper,\n createDocumentRegistry: () => createDocumentRegistry,\n createDocumentRegistryInternal: () => createDocumentRegistryInternal,\n createEmitAndSemanticDiagnosticsBuilderProgram: () => createEmitAndSemanticDiagnosticsBuilderProgram,\n createEmitHelperFactory: () => createEmitHelperFactory,\n createEmptyExports: () => createEmptyExports,\n createEvaluator: () => createEvaluator,\n createExpressionForJsxElement: () => createExpressionForJsxElement,\n createExpressionForJsxFragment: () => createExpressionForJsxFragment,\n createExpressionForObjectLiteralElementLike: () => createExpressionForObjectLiteralElementLike,\n createExpressionForPropertyName: () => createExpressionForPropertyName,\n createExpressionFromEntityName: () => createExpressionFromEntityName,\n createExternalHelpersImportDeclarationIfNeeded: () => createExternalHelpersImportDeclarationIfNeeded,\n createFileDiagnostic: () => createFileDiagnostic,\n createFileDiagnosticFromMessageChain: () => createFileDiagnosticFromMessageChain,\n createFlowNode: () => createFlowNode,\n createForOfBindingStatement: () => createForOfBindingStatement,\n createFutureSourceFile: () => createFutureSourceFile,\n createGetCanonicalFileName: () => createGetCanonicalFileName,\n createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,\n createGetSourceFile: () => createGetSourceFile,\n createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,\n createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,\n createGetSymbolWalker: () => createGetSymbolWalker,\n createIncrementalCompilerHost: () => createIncrementalCompilerHost,\n createIncrementalProgram: () => createIncrementalProgram,\n createJsxFactoryExpression: () => createJsxFactoryExpression,\n createLanguageService: () => createLanguageService,\n createLanguageServiceSourceFile: () => createLanguageServiceSourceFile,\n createMemberAccessForPropertyName: () => createMemberAccessForPropertyName,\n createModeAwareCache: () => createModeAwareCache,\n createModeAwareCacheKey: () => createModeAwareCacheKey,\n createModeMismatchDetails: () => createModeMismatchDetails,\n createModuleNotFoundChain: () => createModuleNotFoundChain,\n createModuleResolutionCache: () => createModuleResolutionCache,\n createModuleResolutionLoader: () => createModuleResolutionLoader,\n createModuleResolutionLoaderUsingGlobalCache: () => createModuleResolutionLoaderUsingGlobalCache,\n createModuleSpecifierResolutionHost: () => createModuleSpecifierResolutionHost,\n createMultiMap: () => createMultiMap,\n createNameResolver: () => createNameResolver,\n createNodeConverters: () => createNodeConverters,\n createNodeFactory: () => createNodeFactory,\n createOptionNameMap: () => createOptionNameMap,\n createOverload: () => createOverload,\n createPackageJsonImportFilter: () => createPackageJsonImportFilter,\n createPackageJsonInfo: () => createPackageJsonInfo,\n createParenthesizerRules: () => createParenthesizerRules,\n createPatternMatcher: () => createPatternMatcher,\n createPrinter: () => createPrinter,\n createPrinterWithDefaults: () => createPrinterWithDefaults,\n createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,\n createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,\n createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n createProgram: () => createProgram,\n createProgramDiagnostics: () => createProgramDiagnostics,\n createProgramHost: () => createProgramHost,\n createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,\n createQueue: () => createQueue,\n createRange: () => createRange,\n createRedirectedBuilderProgram: () => createRedirectedBuilderProgram,\n createResolutionCache: () => createResolutionCache,\n createRuntimeTypeSerializer: () => createRuntimeTypeSerializer,\n createScanner: () => createScanner,\n createSemanticDiagnosticsBuilderProgram: () => createSemanticDiagnosticsBuilderProgram,\n createSet: () => createSet,\n createSolutionBuilder: () => createSolutionBuilder,\n createSolutionBuilderHost: () => createSolutionBuilderHost,\n createSolutionBuilderWithWatch: () => createSolutionBuilderWithWatch,\n createSolutionBuilderWithWatchHost: () => createSolutionBuilderWithWatchHost,\n createSortedArray: () => createSortedArray,\n createSourceFile: () => createSourceFile,\n createSourceMapGenerator: () => createSourceMapGenerator,\n createSourceMapSource: () => createSourceMapSource,\n createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,\n createSymbolTable: () => createSymbolTable,\n createSymlinkCache: () => createSymlinkCache,\n createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,\n createSystemWatchFunctions: () => createSystemWatchFunctions,\n createTextChange: () => createTextChange,\n createTextChangeFromStartLength: () => createTextChangeFromStartLength,\n createTextChangeRange: () => createTextChangeRange,\n createTextRangeFromNode: () => createTextRangeFromNode,\n createTextRangeFromSpan: () => createTextRangeFromSpan,\n createTextSpan: () => createTextSpan,\n createTextSpanFromBounds: () => createTextSpanFromBounds,\n createTextSpanFromNode: () => createTextSpanFromNode,\n createTextSpanFromRange: () => createTextSpanFromRange,\n createTextSpanFromStringLiteralLikeContent: () => createTextSpanFromStringLiteralLikeContent,\n createTextWriter: () => createTextWriter,\n createTokenRange: () => createTokenRange,\n createTypeChecker: () => createTypeChecker,\n createTypeReferenceDirectiveResolutionCache: () => createTypeReferenceDirectiveResolutionCache,\n createTypeReferenceResolutionLoader: () => createTypeReferenceResolutionLoader,\n createWatchCompilerHost: () => createWatchCompilerHost2,\n createWatchCompilerHostOfConfigFile: () => createWatchCompilerHostOfConfigFile,\n createWatchCompilerHostOfFilesAndCompilerOptions: () => createWatchCompilerHostOfFilesAndCompilerOptions,\n createWatchFactory: () => createWatchFactory,\n createWatchHost: () => createWatchHost,\n createWatchProgram: () => createWatchProgram,\n createWatchStatusReporter: () => createWatchStatusReporter,\n createWriteFileMeasuringIO: () => createWriteFileMeasuringIO,\n declarationNameToString: () => declarationNameToString,\n decodeMappings: () => decodeMappings,\n decodedTextSpanIntersectsWith: () => decodedTextSpanIntersectsWith,\n deduplicate: () => deduplicate,\n defaultHoverMaximumTruncationLength: () => defaultHoverMaximumTruncationLength,\n defaultInitCompilerOptions: () => defaultInitCompilerOptions,\n defaultMaximumTruncationLength: () => defaultMaximumTruncationLength,\n diagnosticCategoryName: () => diagnosticCategoryName,\n diagnosticToString: () => diagnosticToString,\n diagnosticsEqualityComparer: () => diagnosticsEqualityComparer,\n directoryProbablyExists: () => directoryProbablyExists,\n directorySeparator: () => directorySeparator,\n displayPart: () => displayPart,\n displayPartsToString: () => displayPartsToString,\n disposeEmitNodes: () => disposeEmitNodes,\n documentSpansEqual: () => documentSpansEqual,\n dumpTracingLegend: () => dumpTracingLegend,\n elementAt: () => elementAt,\n elideNodes: () => elideNodes,\n emitDetachedComments: () => emitDetachedComments,\n emitFiles: () => emitFiles,\n emitFilesAndReportErrors: () => emitFilesAndReportErrors,\n emitFilesAndReportErrorsAndGetExitStatus: () => emitFilesAndReportErrorsAndGetExitStatus,\n emitModuleKindIsNonNodeESM: () => emitModuleKindIsNonNodeESM,\n emitNewLineBeforeLeadingCommentOfPosition: () => emitNewLineBeforeLeadingCommentOfPosition,\n emitResolverSkipsTypeChecking: () => emitResolverSkipsTypeChecking,\n emitSkippedWithNoDiagnostics: () => emitSkippedWithNoDiagnostics,\n emptyArray: () => emptyArray,\n emptyFileSystemEntries: () => emptyFileSystemEntries,\n emptyMap: () => emptyMap,\n emptyOptions: () => emptyOptions,\n endsWith: () => endsWith,\n ensurePathIsNonModuleName: () => ensurePathIsNonModuleName,\n ensureScriptKind: () => ensureScriptKind,\n ensureTrailingDirectorySeparator: () => ensureTrailingDirectorySeparator,\n entityNameToString: () => entityNameToString,\n enumerateInsertsAndDeletes: () => enumerateInsertsAndDeletes,\n equalOwnProperties: () => equalOwnProperties,\n equateStringsCaseInsensitive: () => equateStringsCaseInsensitive,\n equateStringsCaseSensitive: () => equateStringsCaseSensitive,\n equateValues: () => equateValues,\n escapeJsxAttributeString: () => escapeJsxAttributeString,\n escapeLeadingUnderscores: () => escapeLeadingUnderscores,\n escapeNonAsciiString: () => escapeNonAsciiString,\n escapeSnippetText: () => escapeSnippetText,\n escapeString: () => escapeString,\n escapeTemplateSubstitution: () => escapeTemplateSubstitution,\n evaluatorResult: () => evaluatorResult,\n every: () => every,\n exclusivelyPrefixedNodeCoreModules: () => exclusivelyPrefixedNodeCoreModules,\n executeCommandLine: () => executeCommandLine,\n expandPreOrPostfixIncrementOrDecrementExpression: () => expandPreOrPostfixIncrementOrDecrementExpression,\n explainFiles: () => explainFiles,\n explainIfFileIsRedirectAndImpliedFormat: () => explainIfFileIsRedirectAndImpliedFormat,\n exportAssignmentIsAlias: () => exportAssignmentIsAlias,\n expressionResultIsUnused: () => expressionResultIsUnused,\n extend: () => extend,\n extensionFromPath: () => extensionFromPath,\n extensionIsTS: () => extensionIsTS,\n extensionsNotSupportingExtensionlessResolution: () => extensionsNotSupportingExtensionlessResolution,\n externalHelpersModuleNameText: () => externalHelpersModuleNameText,\n factory: () => factory,\n fileExtensionIs: () => fileExtensionIs,\n fileExtensionIsOneOf: () => fileExtensionIsOneOf,\n fileIncludeReasonToDiagnostics: () => fileIncludeReasonToDiagnostics,\n fileShouldUseJavaScriptRequire: () => fileShouldUseJavaScriptRequire,\n filter: () => filter,\n filterMutate: () => filterMutate,\n filterSemanticDiagnostics: () => filterSemanticDiagnostics,\n find: () => find,\n findAncestor: () => findAncestor,\n findBestPatternMatch: () => findBestPatternMatch,\n findChildOfKind: () => findChildOfKind,\n findComputedPropertyNameCacheAssignment: () => findComputedPropertyNameCacheAssignment,\n findConfigFile: () => findConfigFile,\n findConstructorDeclaration: () => findConstructorDeclaration,\n findContainingList: () => findContainingList,\n findDiagnosticForNode: () => findDiagnosticForNode,\n findFirstNonJsxWhitespaceToken: () => findFirstNonJsxWhitespaceToken,\n findIndex: () => findIndex,\n findLast: () => findLast,\n findLastIndex: () => findLastIndex,\n findListItemInfo: () => findListItemInfo,\n findModifier: () => findModifier,\n findNextToken: () => findNextToken,\n findPackageJson: () => findPackageJson,\n findPackageJsons: () => findPackageJsons,\n findPrecedingMatchingToken: () => findPrecedingMatchingToken,\n findPrecedingToken: () => findPrecedingToken,\n findSuperStatementIndexPath: () => findSuperStatementIndexPath,\n findTokenOnLeftOfPosition: () => findTokenOnLeftOfPosition,\n findUseStrictPrologue: () => findUseStrictPrologue,\n first: () => first,\n firstDefined: () => firstDefined,\n firstDefinedIterator: () => firstDefinedIterator,\n firstIterator: () => firstIterator,\n firstOrOnly: () => firstOrOnly,\n firstOrUndefined: () => firstOrUndefined,\n firstOrUndefinedIterator: () => firstOrUndefinedIterator,\n fixupCompilerOptions: () => fixupCompilerOptions,\n flatMap: () => flatMap,\n flatMapIterator: () => flatMapIterator,\n flatMapToMutable: () => flatMapToMutable,\n flatten: () => flatten,\n flattenCommaList: () => flattenCommaList,\n flattenDestructuringAssignment: () => flattenDestructuringAssignment,\n flattenDestructuringBinding: () => flattenDestructuringBinding,\n flattenDiagnosticMessageText: () => flattenDiagnosticMessageText,\n forEach: () => forEach,\n forEachAncestor: () => forEachAncestor,\n forEachAncestorDirectory: () => forEachAncestorDirectory,\n forEachAncestorDirectoryStoppingAtGlobalCache: () => forEachAncestorDirectoryStoppingAtGlobalCache,\n forEachChild: () => forEachChild,\n forEachChildRecursively: () => forEachChildRecursively,\n forEachDynamicImportOrRequireCall: () => forEachDynamicImportOrRequireCall,\n forEachEmittedFile: () => forEachEmittedFile,\n forEachEnclosingBlockScopeContainer: () => forEachEnclosingBlockScopeContainer,\n forEachEntry: () => forEachEntry,\n forEachExternalModuleToImportFrom: () => forEachExternalModuleToImportFrom,\n forEachImportClauseDeclaration: () => forEachImportClauseDeclaration,\n forEachKey: () => forEachKey,\n forEachLeadingCommentRange: () => forEachLeadingCommentRange,\n forEachNameInAccessChainWalkingLeft: () => forEachNameInAccessChainWalkingLeft,\n forEachNameOfDefaultExport: () => forEachNameOfDefaultExport,\n forEachOptionsSyntaxByName: () => forEachOptionsSyntaxByName,\n forEachProjectReference: () => forEachProjectReference,\n forEachPropertyAssignment: () => forEachPropertyAssignment,\n forEachResolvedProjectReference: () => forEachResolvedProjectReference,\n forEachReturnStatement: () => forEachReturnStatement,\n forEachRight: () => forEachRight,\n forEachTrailingCommentRange: () => forEachTrailingCommentRange,\n forEachTsConfigPropArray: () => forEachTsConfigPropArray,\n forEachUnique: () => forEachUnique,\n forEachYieldExpression: () => forEachYieldExpression,\n formatColorAndReset: () => formatColorAndReset,\n formatDiagnostic: () => formatDiagnostic,\n formatDiagnostics: () => formatDiagnostics,\n formatDiagnosticsWithColorAndContext: () => formatDiagnosticsWithColorAndContext,\n formatGeneratedName: () => formatGeneratedName,\n formatGeneratedNamePart: () => formatGeneratedNamePart,\n formatLocation: () => formatLocation,\n formatMessage: () => formatMessage,\n formatStringFromArgs: () => formatStringFromArgs,\n formatting: () => ts_formatting_exports,\n generateDjb2Hash: () => generateDjb2Hash,\n generateTSConfig: () => generateTSConfig,\n getAdjustedReferenceLocation: () => getAdjustedReferenceLocation,\n getAdjustedRenameLocation: () => getAdjustedRenameLocation,\n getAliasDeclarationFromName: () => getAliasDeclarationFromName,\n getAllAccessorDeclarations: () => getAllAccessorDeclarations,\n getAllDecoratorsOfClass: () => getAllDecoratorsOfClass,\n getAllDecoratorsOfClassElement: () => getAllDecoratorsOfClassElement,\n getAllJSDocTags: () => getAllJSDocTags,\n getAllJSDocTagsOfKind: () => getAllJSDocTagsOfKind,\n getAllKeys: () => getAllKeys,\n getAllProjectOutputs: () => getAllProjectOutputs,\n getAllSuperTypeNodes: () => getAllSuperTypeNodes,\n getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,\n getAllowJSCompilerOption: () => getAllowJSCompilerOption,\n getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,\n getAncestor: () => getAncestor,\n getAnyExtensionFromPath: () => getAnyExtensionFromPath,\n getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,\n getAssignedExpandoInitializer: () => getAssignedExpandoInitializer,\n getAssignedName: () => getAssignedName,\n getAssignmentDeclarationKind: () => getAssignmentDeclarationKind,\n getAssignmentDeclarationPropertyAccessKind: () => getAssignmentDeclarationPropertyAccessKind,\n getAssignmentTargetKind: () => getAssignmentTargetKind,\n getAutomaticTypeDirectiveNames: () => getAutomaticTypeDirectiveNames,\n getBaseFileName: () => getBaseFileName,\n getBinaryOperatorPrecedence: () => getBinaryOperatorPrecedence,\n getBuildInfo: () => getBuildInfo,\n getBuildInfoFileVersionMap: () => getBuildInfoFileVersionMap,\n getBuildInfoText: () => getBuildInfoText,\n getBuildOrderFromAnyBuildOrder: () => getBuildOrderFromAnyBuildOrder,\n getBuilderCreationParameters: () => getBuilderCreationParameters,\n getBuilderFileEmit: () => getBuilderFileEmit,\n getCanonicalDiagnostic: () => getCanonicalDiagnostic,\n getCheckFlags: () => getCheckFlags,\n getClassExtendsHeritageElement: () => getClassExtendsHeritageElement,\n getClassLikeDeclarationOfSymbol: () => getClassLikeDeclarationOfSymbol,\n getCombinedLocalAndExportSymbolFlags: () => getCombinedLocalAndExportSymbolFlags,\n getCombinedModifierFlags: () => getCombinedModifierFlags,\n getCombinedNodeFlags: () => getCombinedNodeFlags,\n getCombinedNodeFlagsAlwaysIncludeJSDoc: () => getCombinedNodeFlagsAlwaysIncludeJSDoc,\n getCommentRange: () => getCommentRange,\n getCommonSourceDirectory: () => getCommonSourceDirectory,\n getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,\n getCompilerOptionValue: () => getCompilerOptionValue,\n getConditions: () => getConditions,\n getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,\n getConstantValue: () => getConstantValue,\n getContainerFlags: () => getContainerFlags,\n getContainerNode: () => getContainerNode,\n getContainingClass: () => getContainingClass,\n getContainingClassExcludingClassDecorators: () => getContainingClassExcludingClassDecorators,\n getContainingClassStaticBlock: () => getContainingClassStaticBlock,\n getContainingFunction: () => getContainingFunction,\n getContainingFunctionDeclaration: () => getContainingFunctionDeclaration,\n getContainingFunctionOrClassStaticBlock: () => getContainingFunctionOrClassStaticBlock,\n getContainingNodeArray: () => getContainingNodeArray,\n getContainingObjectLiteralElement: () => getContainingObjectLiteralElement,\n getContextualTypeFromParent: () => getContextualTypeFromParent,\n getContextualTypeFromParentOrAncestorTypeNode: () => getContextualTypeFromParentOrAncestorTypeNode,\n getDeclarationDiagnostics: () => getDeclarationDiagnostics,\n getDeclarationEmitExtensionForPath: () => getDeclarationEmitExtensionForPath,\n getDeclarationEmitOutputFilePath: () => getDeclarationEmitOutputFilePath,\n getDeclarationEmitOutputFilePathWorker: () => getDeclarationEmitOutputFilePathWorker,\n getDeclarationFileExtension: () => getDeclarationFileExtension,\n getDeclarationFromName: () => getDeclarationFromName,\n getDeclarationModifierFlagsFromSymbol: () => getDeclarationModifierFlagsFromSymbol,\n getDeclarationOfKind: () => getDeclarationOfKind,\n getDeclarationsOfKind: () => getDeclarationsOfKind,\n getDeclaredExpandoInitializer: () => getDeclaredExpandoInitializer,\n getDecorators: () => getDecorators,\n getDefaultCompilerOptions: () => getDefaultCompilerOptions2,\n getDefaultFormatCodeSettings: () => getDefaultFormatCodeSettings,\n getDefaultLibFileName: () => getDefaultLibFileName,\n getDefaultLibFilePath: () => getDefaultLibFilePath,\n getDefaultLikeExportInfo: () => getDefaultLikeExportInfo,\n getDefaultLikeExportNameFromDeclaration: () => getDefaultLikeExportNameFromDeclaration,\n getDefaultResolutionModeForFileWorker: () => getDefaultResolutionModeForFileWorker,\n getDiagnosticText: () => getDiagnosticText,\n getDiagnosticsWithinSpan: () => getDiagnosticsWithinSpan,\n getDirectoryPath: () => getDirectoryPath,\n getDirectoryToWatchFailedLookupLocation: () => getDirectoryToWatchFailedLookupLocation,\n getDirectoryToWatchFailedLookupLocationFromTypeRoot: () => getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n getDocumentPositionMapper: () => getDocumentPositionMapper,\n getDocumentSpansEqualityComparer: () => getDocumentSpansEqualityComparer,\n getESModuleInterop: () => getESModuleInterop,\n getEditsForFileRename: () => getEditsForFileRename,\n getEffectiveBaseTypeNode: () => getEffectiveBaseTypeNode,\n getEffectiveConstraintOfTypeParameter: () => getEffectiveConstraintOfTypeParameter,\n getEffectiveContainerForJSDocTemplateTag: () => getEffectiveContainerForJSDocTemplateTag,\n getEffectiveImplementsTypeNodes: () => getEffectiveImplementsTypeNodes,\n getEffectiveInitializer: () => getEffectiveInitializer,\n getEffectiveJSDocHost: () => getEffectiveJSDocHost,\n getEffectiveModifierFlags: () => getEffectiveModifierFlags,\n getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n getEffectiveModifierFlagsNoCache: () => getEffectiveModifierFlagsNoCache,\n getEffectiveReturnTypeNode: () => getEffectiveReturnTypeNode,\n getEffectiveSetAccessorTypeAnnotationNode: () => getEffectiveSetAccessorTypeAnnotationNode,\n getEffectiveTypeAnnotationNode: () => getEffectiveTypeAnnotationNode,\n getEffectiveTypeParameterDeclarations: () => getEffectiveTypeParameterDeclarations,\n getEffectiveTypeRoots: () => getEffectiveTypeRoots,\n getElementOrPropertyAccessArgumentExpressionOrName: () => getElementOrPropertyAccessArgumentExpressionOrName,\n getElementOrPropertyAccessName: () => getElementOrPropertyAccessName,\n getElementsOfBindingOrAssignmentPattern: () => getElementsOfBindingOrAssignmentPattern,\n getEmitDeclarations: () => getEmitDeclarations,\n getEmitFlags: () => getEmitFlags,\n getEmitHelpers: () => getEmitHelpers,\n getEmitModuleDetectionKind: () => getEmitModuleDetectionKind,\n getEmitModuleFormatOfFileWorker: () => getEmitModuleFormatOfFileWorker,\n getEmitModuleKind: () => getEmitModuleKind,\n getEmitModuleResolutionKind: () => getEmitModuleResolutionKind,\n getEmitScriptTarget: () => getEmitScriptTarget,\n getEmitStandardClassFields: () => getEmitStandardClassFields,\n getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer,\n getEnclosingContainer: () => getEnclosingContainer,\n getEncodedSemanticClassifications: () => getEncodedSemanticClassifications,\n getEncodedSyntacticClassifications: () => getEncodedSyntacticClassifications,\n getEndLinePosition: () => getEndLinePosition,\n getEntityNameFromTypeNode: () => getEntityNameFromTypeNode,\n getEntrypointsFromPackageJsonInfo: () => getEntrypointsFromPackageJsonInfo,\n getErrorCountForSummary: () => getErrorCountForSummary,\n getErrorSpanForNode: () => getErrorSpanForNode,\n getErrorSummaryText: () => getErrorSummaryText,\n getEscapedTextOfIdentifierOrLiteral: () => getEscapedTextOfIdentifierOrLiteral,\n getEscapedTextOfJsxAttributeName: () => getEscapedTextOfJsxAttributeName,\n getEscapedTextOfJsxNamespacedName: () => getEscapedTextOfJsxNamespacedName,\n getExpandoInitializer: () => getExpandoInitializer,\n getExportAssignmentExpression: () => getExportAssignmentExpression,\n getExportInfoMap: () => getExportInfoMap,\n getExportNeedsImportStarHelper: () => getExportNeedsImportStarHelper,\n getExpressionAssociativity: () => getExpressionAssociativity,\n getExpressionPrecedence: () => getExpressionPrecedence,\n getExternalHelpersModuleName: () => getExternalHelpersModuleName,\n getExternalModuleImportEqualsDeclarationExpression: () => getExternalModuleImportEqualsDeclarationExpression,\n getExternalModuleName: () => getExternalModuleName,\n getExternalModuleNameFromDeclaration: () => getExternalModuleNameFromDeclaration,\n getExternalModuleNameFromPath: () => getExternalModuleNameFromPath,\n getExternalModuleNameLiteral: () => getExternalModuleNameLiteral,\n getExternalModuleRequireArgument: () => getExternalModuleRequireArgument,\n getFallbackOptions: () => getFallbackOptions,\n getFileEmitOutput: () => getFileEmitOutput,\n getFileMatcherPatterns: () => getFileMatcherPatterns,\n getFileNamesFromConfigSpecs: () => getFileNamesFromConfigSpecs,\n getFileWatcherEventKind: () => getFileWatcherEventKind,\n getFilesInErrorForSummary: () => getFilesInErrorForSummary,\n getFirstConstructorWithBody: () => getFirstConstructorWithBody,\n getFirstIdentifier: () => getFirstIdentifier,\n getFirstNonSpaceCharacterPosition: () => getFirstNonSpaceCharacterPosition,\n getFirstProjectOutput: () => getFirstProjectOutput,\n getFixableErrorSpanExpression: () => getFixableErrorSpanExpression,\n getFormatCodeSettingsForWriting: () => getFormatCodeSettingsForWriting,\n getFullWidth: () => getFullWidth,\n getFunctionFlags: () => getFunctionFlags,\n getHeritageClause: () => getHeritageClause,\n getHostSignatureFromJSDoc: () => getHostSignatureFromJSDoc,\n getIdentifierAutoGenerate: () => getIdentifierAutoGenerate,\n getIdentifierGeneratedImportReference: () => getIdentifierGeneratedImportReference,\n getIdentifierTypeArguments: () => getIdentifierTypeArguments,\n getImmediatelyInvokedFunctionExpression: () => getImmediatelyInvokedFunctionExpression,\n getImpliedNodeFormatForEmitWorker: () => getImpliedNodeFormatForEmitWorker,\n getImpliedNodeFormatForFile: () => getImpliedNodeFormatForFile,\n getImpliedNodeFormatForFileWorker: () => getImpliedNodeFormatForFileWorker,\n getImportNeedsImportDefaultHelper: () => getImportNeedsImportDefaultHelper,\n getImportNeedsImportStarHelper: () => getImportNeedsImportStarHelper,\n getIndentString: () => getIndentString,\n getInferredLibraryNameResolveFrom: () => getInferredLibraryNameResolveFrom,\n getInitializedVariables: () => getInitializedVariables,\n getInitializerOfBinaryExpression: () => getInitializerOfBinaryExpression,\n getInitializerOfBindingOrAssignmentElement: () => getInitializerOfBindingOrAssignmentElement,\n getInterfaceBaseTypeNodes: () => getInterfaceBaseTypeNodes,\n getInternalEmitFlags: () => getInternalEmitFlags,\n getInvokedExpression: () => getInvokedExpression,\n getIsFileExcluded: () => getIsFileExcluded,\n getIsolatedModules: () => getIsolatedModules,\n getJSDocAugmentsTag: () => getJSDocAugmentsTag,\n getJSDocClassTag: () => getJSDocClassTag,\n getJSDocCommentRanges: () => getJSDocCommentRanges,\n getJSDocCommentsAndTags: () => getJSDocCommentsAndTags,\n getJSDocDeprecatedTag: () => getJSDocDeprecatedTag,\n getJSDocDeprecatedTagNoCache: () => getJSDocDeprecatedTagNoCache,\n getJSDocEnumTag: () => getJSDocEnumTag,\n getJSDocHost: () => getJSDocHost,\n getJSDocImplementsTags: () => getJSDocImplementsTags,\n getJSDocOverloadTags: () => getJSDocOverloadTags,\n getJSDocOverrideTagNoCache: () => getJSDocOverrideTagNoCache,\n getJSDocParameterTags: () => getJSDocParameterTags,\n getJSDocParameterTagsNoCache: () => getJSDocParameterTagsNoCache,\n getJSDocPrivateTag: () => getJSDocPrivateTag,\n getJSDocPrivateTagNoCache: () => getJSDocPrivateTagNoCache,\n getJSDocProtectedTag: () => getJSDocProtectedTag,\n getJSDocProtectedTagNoCache: () => getJSDocProtectedTagNoCache,\n getJSDocPublicTag: () => getJSDocPublicTag,\n getJSDocPublicTagNoCache: () => getJSDocPublicTagNoCache,\n getJSDocReadonlyTag: () => getJSDocReadonlyTag,\n getJSDocReadonlyTagNoCache: () => getJSDocReadonlyTagNoCache,\n getJSDocReturnTag: () => getJSDocReturnTag,\n getJSDocReturnType: () => getJSDocReturnType,\n getJSDocRoot: () => getJSDocRoot,\n getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,\n getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,\n getJSDocTags: () => getJSDocTags,\n getJSDocTemplateTag: () => getJSDocTemplateTag,\n getJSDocThisTag: () => getJSDocThisTag,\n getJSDocType: () => getJSDocType,\n getJSDocTypeAliasName: () => getJSDocTypeAliasName,\n getJSDocTypeAssertionType: () => getJSDocTypeAssertionType,\n getJSDocTypeParameterDeclarations: () => getJSDocTypeParameterDeclarations,\n getJSDocTypeParameterTags: () => getJSDocTypeParameterTags,\n getJSDocTypeParameterTagsNoCache: () => getJSDocTypeParameterTagsNoCache,\n getJSDocTypeTag: () => getJSDocTypeTag,\n getJSXImplicitImportBase: () => getJSXImplicitImportBase,\n getJSXRuntimeImport: () => getJSXRuntimeImport,\n getJSXTransformEnabled: () => getJSXTransformEnabled,\n getKeyForCompilerOptions: () => getKeyForCompilerOptions,\n getLanguageVariant: () => getLanguageVariant,\n getLastChild: () => getLastChild,\n getLeadingCommentRanges: () => getLeadingCommentRanges,\n getLeadingCommentRangesOfNode: () => getLeadingCommentRangesOfNode,\n getLeftmostAccessExpression: () => getLeftmostAccessExpression,\n getLeftmostExpression: () => getLeftmostExpression,\n getLibFileNameFromLibReference: () => getLibFileNameFromLibReference,\n getLibNameFromLibReference: () => getLibNameFromLibReference,\n getLibraryNameFromLibFileName: () => getLibraryNameFromLibFileName,\n getLineAndCharacterOfPosition: () => getLineAndCharacterOfPosition,\n getLineInfo: () => getLineInfo,\n getLineOfLocalPosition: () => getLineOfLocalPosition,\n getLineStartPositionForPosition: () => getLineStartPositionForPosition,\n getLineStarts: () => getLineStarts,\n getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n getLinesBetweenPositions: () => getLinesBetweenPositions,\n getLinesBetweenRangeEndAndRangeStart: () => getLinesBetweenRangeEndAndRangeStart,\n getLinesBetweenRangeEndPositions: () => getLinesBetweenRangeEndPositions,\n getLiteralText: () => getLiteralText,\n getLocalNameForExternalImport: () => getLocalNameForExternalImport,\n getLocalSymbolForExportDefault: () => getLocalSymbolForExportDefault,\n getLocaleSpecificMessage: () => getLocaleSpecificMessage,\n getLocaleTimeString: () => getLocaleTimeString,\n getMappedContextSpan: () => getMappedContextSpan,\n getMappedDocumentSpan: () => getMappedDocumentSpan,\n getMappedLocation: () => getMappedLocation,\n getMatchedFileSpec: () => getMatchedFileSpec,\n getMatchedIncludeSpec: () => getMatchedIncludeSpec,\n getMeaningFromDeclaration: () => getMeaningFromDeclaration,\n getMeaningFromLocation: () => getMeaningFromLocation,\n getMembersOfDeclaration: () => getMembersOfDeclaration,\n getModeForFileReference: () => getModeForFileReference,\n getModeForResolutionAtIndex: () => getModeForResolutionAtIndex,\n getModeForUsageLocation: () => getModeForUsageLocation,\n getModifiedTime: () => getModifiedTime,\n getModifiers: () => getModifiers,\n getModuleInstanceState: () => getModuleInstanceState,\n getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,\n getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,\n getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,\n getNameForExportedSymbol: () => getNameForExportedSymbol,\n getNameFromImportAttribute: () => getNameFromImportAttribute,\n getNameFromIndexInfo: () => getNameFromIndexInfo,\n getNameFromPropertyName: () => getNameFromPropertyName,\n getNameOfAccessExpression: () => getNameOfAccessExpression,\n getNameOfCompilerOptionValue: () => getNameOfCompilerOptionValue,\n getNameOfDeclaration: () => getNameOfDeclaration,\n getNameOfExpando: () => getNameOfExpando,\n getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,\n getNameOfScriptTarget: () => getNameOfScriptTarget,\n getNameOrArgument: () => getNameOrArgument,\n getNameTable: () => getNameTable,\n getNamespaceDeclarationNode: () => getNamespaceDeclarationNode,\n getNewLineCharacter: () => getNewLineCharacter,\n getNewLineKind: () => getNewLineKind,\n getNewLineOrDefaultFromHost: () => getNewLineOrDefaultFromHost,\n getNewTargetContainer: () => getNewTargetContainer,\n getNextJSDocCommentLocation: () => getNextJSDocCommentLocation,\n getNodeChildren: () => getNodeChildren,\n getNodeForGeneratedName: () => getNodeForGeneratedName,\n getNodeId: () => getNodeId,\n getNodeKind: () => getNodeKind,\n getNodeModifiers: () => getNodeModifiers,\n getNodeModulePathParts: () => getNodeModulePathParts,\n getNonAssignedNameOfDeclaration: () => getNonAssignedNameOfDeclaration,\n getNonAssignmentOperatorForCompoundAssignment: () => getNonAssignmentOperatorForCompoundAssignment,\n getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,\n getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,\n getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,\n getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,\n getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,\n getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,\n getNormalizedPathComponents: () => getNormalizedPathComponents,\n getObjectFlags: () => getObjectFlags,\n getOperatorAssociativity: () => getOperatorAssociativity,\n getOperatorPrecedence: () => getOperatorPrecedence,\n getOptionFromName: () => getOptionFromName,\n getOptionsForLibraryResolution: () => getOptionsForLibraryResolution,\n getOptionsNameMap: () => getOptionsNameMap,\n getOptionsSyntaxByArrayElementValue: () => getOptionsSyntaxByArrayElementValue,\n getOptionsSyntaxByValue: () => getOptionsSyntaxByValue,\n getOrCreateEmitNode: () => getOrCreateEmitNode,\n getOrUpdate: () => getOrUpdate,\n getOriginalNode: () => getOriginalNode,\n getOriginalNodeId: () => getOriginalNodeId,\n getOutputDeclarationFileName: () => getOutputDeclarationFileName,\n getOutputDeclarationFileNameWorker: () => getOutputDeclarationFileNameWorker,\n getOutputExtension: () => getOutputExtension,\n getOutputFileNames: () => getOutputFileNames,\n getOutputJSFileNameWorker: () => getOutputJSFileNameWorker,\n getOutputPathsFor: () => getOutputPathsFor,\n getOwnEmitOutputFilePath: () => getOwnEmitOutputFilePath,\n getOwnKeys: () => getOwnKeys,\n getOwnValues: () => getOwnValues,\n getPackageJsonTypesVersionsPaths: () => getPackageJsonTypesVersionsPaths,\n getPackageNameFromTypesPackageName: () => getPackageNameFromTypesPackageName,\n getPackageScopeForPath: () => getPackageScopeForPath,\n getParameterSymbolFromJSDoc: () => getParameterSymbolFromJSDoc,\n getParentNodeInSpan: () => getParentNodeInSpan,\n getParseTreeNode: () => getParseTreeNode,\n getParsedCommandLineOfConfigFile: () => getParsedCommandLineOfConfigFile,\n getPathComponents: () => getPathComponents,\n getPathFromPathComponents: () => getPathFromPathComponents,\n getPathUpdater: () => getPathUpdater,\n getPathsBasePath: () => getPathsBasePath,\n getPatternFromSpec: () => getPatternFromSpec,\n getPendingEmitKindWithSeen: () => getPendingEmitKindWithSeen,\n getPositionOfLineAndCharacter: () => getPositionOfLineAndCharacter,\n getPossibleGenericSignatures: () => getPossibleGenericSignatures,\n getPossibleOriginalInputExtensionForExtension: () => getPossibleOriginalInputExtensionForExtension,\n getPossibleOriginalInputPathWithoutChangingExt: () => getPossibleOriginalInputPathWithoutChangingExt,\n getPossibleTypeArgumentsInfo: () => getPossibleTypeArgumentsInfo,\n getPreEmitDiagnostics: () => getPreEmitDiagnostics,\n getPrecedingNonSpaceCharacterPosition: () => getPrecedingNonSpaceCharacterPosition,\n getPrivateIdentifier: () => getPrivateIdentifier,\n getProperties: () => getProperties,\n getProperty: () => getProperty,\n getPropertyAssignmentAliasLikeExpression: () => getPropertyAssignmentAliasLikeExpression,\n getPropertyNameForPropertyNameNode: () => getPropertyNameForPropertyNameNode,\n getPropertyNameFromType: () => getPropertyNameFromType,\n getPropertyNameOfBindingOrAssignmentElement: () => getPropertyNameOfBindingOrAssignmentElement,\n getPropertySymbolFromBindingElement: () => getPropertySymbolFromBindingElement,\n getPropertySymbolsFromContextualType: () => getPropertySymbolsFromContextualType,\n getQuoteFromPreference: () => getQuoteFromPreference,\n getQuotePreference: () => getQuotePreference,\n getRangesWhere: () => getRangesWhere,\n getRefactorContextSpan: () => getRefactorContextSpan,\n getReferencedFileLocation: () => getReferencedFileLocation,\n getRegexFromPattern: () => getRegexFromPattern,\n getRegularExpressionForWildcard: () => getRegularExpressionForWildcard,\n getRegularExpressionsForWildcards: () => getRegularExpressionsForWildcards,\n getRelativePathFromDirectory: () => getRelativePathFromDirectory,\n getRelativePathFromFile: () => getRelativePathFromFile,\n getRelativePathToDirectoryOrUrl: () => getRelativePathToDirectoryOrUrl,\n getRenameLocation: () => getRenameLocation,\n getReplacementSpanForContextToken: () => getReplacementSpanForContextToken,\n getResolutionDiagnostic: () => getResolutionDiagnostic,\n getResolutionModeOverride: () => getResolutionModeOverride,\n getResolveJsonModule: () => getResolveJsonModule,\n getResolvePackageJsonExports: () => getResolvePackageJsonExports,\n getResolvePackageJsonImports: () => getResolvePackageJsonImports,\n getResolvedExternalModuleName: () => getResolvedExternalModuleName,\n getResolvedModuleFromResolution: () => getResolvedModuleFromResolution,\n getResolvedTypeReferenceDirectiveFromResolution: () => getResolvedTypeReferenceDirectiveFromResolution,\n getRestIndicatorOfBindingOrAssignmentElement: () => getRestIndicatorOfBindingOrAssignmentElement,\n getRestParameterElementType: () => getRestParameterElementType,\n getRightMostAssignedExpression: () => getRightMostAssignedExpression,\n getRootDeclaration: () => getRootDeclaration,\n getRootDirectoryOfResolutionCache: () => getRootDirectoryOfResolutionCache,\n getRootLength: () => getRootLength,\n getScriptKind: () => getScriptKind,\n getScriptKindFromFileName: () => getScriptKindFromFileName,\n getScriptTargetFeatures: () => getScriptTargetFeatures,\n getSelectedEffectiveModifierFlags: () => getSelectedEffectiveModifierFlags,\n getSelectedSyntacticModifierFlags: () => getSelectedSyntacticModifierFlags,\n getSemanticClassifications: () => getSemanticClassifications,\n getSemanticJsxChildren: () => getSemanticJsxChildren,\n getSetAccessorTypeAnnotationNode: () => getSetAccessorTypeAnnotationNode,\n getSetAccessorValueParameter: () => getSetAccessorValueParameter,\n getSetExternalModuleIndicator: () => getSetExternalModuleIndicator,\n getShebang: () => getShebang,\n getSingleVariableOfVariableStatement: () => getSingleVariableOfVariableStatement,\n getSnapshotText: () => getSnapshotText,\n getSnippetElement: () => getSnippetElement,\n getSourceFileOfModule: () => getSourceFileOfModule,\n getSourceFileOfNode: () => getSourceFileOfNode,\n getSourceFilePathInNewDir: () => getSourceFilePathInNewDir,\n getSourceFileVersionAsHashFromText: () => getSourceFileVersionAsHashFromText,\n getSourceFilesToEmit: () => getSourceFilesToEmit,\n getSourceMapRange: () => getSourceMapRange,\n getSourceMapper: () => getSourceMapper,\n getSourceTextOfNodeFromSourceFile: () => getSourceTextOfNodeFromSourceFile,\n getSpanOfTokenAtPosition: () => getSpanOfTokenAtPosition,\n getSpellingSuggestion: () => getSpellingSuggestion,\n getStartPositionOfLine: () => getStartPositionOfLine,\n getStartPositionOfRange: () => getStartPositionOfRange,\n getStartsOnNewLine: () => getStartsOnNewLine,\n getStaticPropertiesAndClassStaticBlock: () => getStaticPropertiesAndClassStaticBlock,\n getStrictOptionValue: () => getStrictOptionValue,\n getStringComparer: () => getStringComparer,\n getSubPatternFromSpec: () => getSubPatternFromSpec,\n getSuperCallFromStatement: () => getSuperCallFromStatement,\n getSuperContainer: () => getSuperContainer,\n getSupportedCodeFixes: () => getSupportedCodeFixes,\n getSupportedExtensions: () => getSupportedExtensions,\n getSupportedExtensionsWithJsonIfResolveJsonModule: () => getSupportedExtensionsWithJsonIfResolveJsonModule,\n getSwitchedType: () => getSwitchedType,\n getSymbolId: () => getSymbolId,\n getSymbolNameForPrivateIdentifier: () => getSymbolNameForPrivateIdentifier,\n getSymbolTarget: () => getSymbolTarget,\n getSyntacticClassifications: () => getSyntacticClassifications,\n getSyntacticModifierFlags: () => getSyntacticModifierFlags,\n getSyntacticModifierFlagsNoCache: () => getSyntacticModifierFlagsNoCache,\n getSynthesizedDeepClone: () => getSynthesizedDeepClone,\n getSynthesizedDeepCloneWithReplacements: () => getSynthesizedDeepCloneWithReplacements,\n getSynthesizedDeepClones: () => getSynthesizedDeepClones,\n getSynthesizedDeepClonesWithReplacements: () => getSynthesizedDeepClonesWithReplacements,\n getSyntheticLeadingComments: () => getSyntheticLeadingComments,\n getSyntheticTrailingComments: () => getSyntheticTrailingComments,\n getTargetLabel: () => getTargetLabel,\n getTargetOfBindingOrAssignmentElement: () => getTargetOfBindingOrAssignmentElement,\n getTemporaryModuleResolutionState: () => getTemporaryModuleResolutionState,\n getTextOfConstantValue: () => getTextOfConstantValue,\n getTextOfIdentifierOrLiteral: () => getTextOfIdentifierOrLiteral,\n getTextOfJSDocComment: () => getTextOfJSDocComment,\n getTextOfJsxAttributeName: () => getTextOfJsxAttributeName,\n getTextOfJsxNamespacedName: () => getTextOfJsxNamespacedName,\n getTextOfNode: () => getTextOfNode,\n getTextOfNodeFromSourceText: () => getTextOfNodeFromSourceText,\n getTextOfPropertyName: () => getTextOfPropertyName,\n getThisContainer: () => getThisContainer,\n getThisParameter: () => getThisParameter,\n getTokenAtPosition: () => getTokenAtPosition,\n getTokenPosOfNode: () => getTokenPosOfNode,\n getTokenSourceMapRange: () => getTokenSourceMapRange,\n getTouchingPropertyName: () => getTouchingPropertyName,\n getTouchingToken: () => getTouchingToken,\n getTrailingCommentRanges: () => getTrailingCommentRanges,\n getTrailingSemicolonDeferringWriter: () => getTrailingSemicolonDeferringWriter,\n getTransformers: () => getTransformers,\n getTsBuildInfoEmitOutputFilePath: () => getTsBuildInfoEmitOutputFilePath,\n getTsConfigObjectLiteralExpression: () => getTsConfigObjectLiteralExpression,\n getTsConfigPropArrayElementValue: () => getTsConfigPropArrayElementValue,\n getTypeAnnotationNode: () => getTypeAnnotationNode,\n getTypeArgumentOrTypeParameterList: () => getTypeArgumentOrTypeParameterList,\n getTypeKeywordOfTypeOnlyImport: () => getTypeKeywordOfTypeOnlyImport,\n getTypeNode: () => getTypeNode,\n getTypeNodeIfAccessible: () => getTypeNodeIfAccessible,\n getTypeParameterFromJsDoc: () => getTypeParameterFromJsDoc,\n getTypeParameterOwner: () => getTypeParameterOwner,\n getTypesPackageName: () => getTypesPackageName,\n getUILocale: () => getUILocale,\n getUniqueName: () => getUniqueName,\n getUniqueSymbolId: () => getUniqueSymbolId,\n getUseDefineForClassFields: () => getUseDefineForClassFields,\n getWatchErrorSummaryDiagnosticMessage: () => getWatchErrorSummaryDiagnosticMessage,\n getWatchFactory: () => getWatchFactory,\n group: () => group,\n groupBy: () => groupBy,\n guessIndentation: () => guessIndentation,\n handleNoEmitOptions: () => handleNoEmitOptions,\n handleWatchOptionsConfigDirTemplateSubstitution: () => handleWatchOptionsConfigDirTemplateSubstitution,\n hasAbstractModifier: () => hasAbstractModifier,\n hasAccessorModifier: () => hasAccessorModifier,\n hasAmbientModifier: () => hasAmbientModifier,\n hasChangesInResolutions: () => hasChangesInResolutions,\n hasContextSensitiveParameters: () => hasContextSensitiveParameters,\n hasDecorators: () => hasDecorators,\n hasDocComment: () => hasDocComment,\n hasDynamicName: () => hasDynamicName,\n hasEffectiveModifier: () => hasEffectiveModifier,\n hasEffectiveModifiers: () => hasEffectiveModifiers,\n hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,\n hasExtension: () => hasExtension,\n hasImplementationTSFileExtension: () => hasImplementationTSFileExtension,\n hasIndexSignature: () => hasIndexSignature,\n hasInferredType: () => hasInferredType,\n hasInitializer: () => hasInitializer,\n hasInvalidEscape: () => hasInvalidEscape,\n hasJSDocNodes: () => hasJSDocNodes,\n hasJSDocParameterTags: () => hasJSDocParameterTags,\n hasJSFileExtension: () => hasJSFileExtension,\n hasJsonModuleEmitEnabled: () => hasJsonModuleEmitEnabled,\n hasOnlyExpressionInitializer: () => hasOnlyExpressionInitializer,\n hasOverrideModifier: () => hasOverrideModifier,\n hasPossibleExternalModuleReference: () => hasPossibleExternalModuleReference,\n hasProperty: () => hasProperty,\n hasPropertyAccessExpressionWithName: () => hasPropertyAccessExpressionWithName,\n hasQuestionToken: () => hasQuestionToken,\n hasRecordedExternalHelpers: () => hasRecordedExternalHelpers,\n hasResolutionModeOverride: () => hasResolutionModeOverride,\n hasRestParameter: () => hasRestParameter,\n hasScopeMarker: () => hasScopeMarker,\n hasStaticModifier: () => hasStaticModifier,\n hasSyntacticModifier: () => hasSyntacticModifier,\n hasSyntacticModifiers: () => hasSyntacticModifiers,\n hasTSFileExtension: () => hasTSFileExtension,\n hasTabstop: () => hasTabstop,\n hasTrailingDirectorySeparator: () => hasTrailingDirectorySeparator,\n hasType: () => hasType,\n hasTypeArguments: () => hasTypeArguments,\n hasZeroOrOneAsteriskCharacter: () => hasZeroOrOneAsteriskCharacter,\n hostGetCanonicalFileName: () => hostGetCanonicalFileName,\n hostUsesCaseSensitiveFileNames: () => hostUsesCaseSensitiveFileNames,\n idText: () => idText,\n identifierIsThisKeyword: () => identifierIsThisKeyword,\n identifierToKeywordKind: () => identifierToKeywordKind,\n identity: () => identity,\n identitySourceMapConsumer: () => identitySourceMapConsumer,\n ignoreSourceNewlines: () => ignoreSourceNewlines,\n ignoredPaths: () => ignoredPaths,\n importFromModuleSpecifier: () => importFromModuleSpecifier,\n importSyntaxAffectsModuleResolution: () => importSyntaxAffectsModuleResolution,\n indexOfAnyCharCode: () => indexOfAnyCharCode,\n indexOfNode: () => indexOfNode,\n indicesOf: () => indicesOf,\n inferredTypesContainingFile: () => inferredTypesContainingFile,\n injectClassNamedEvaluationHelperBlockIfMissing: () => injectClassNamedEvaluationHelperBlockIfMissing,\n injectClassThisAssignmentIfMissing: () => injectClassThisAssignmentIfMissing,\n insertImports: () => insertImports,\n insertSorted: () => insertSorted,\n insertStatementAfterCustomPrologue: () => insertStatementAfterCustomPrologue,\n insertStatementAfterStandardPrologue: () => insertStatementAfterStandardPrologue,\n insertStatementsAfterCustomPrologue: () => insertStatementsAfterCustomPrologue,\n insertStatementsAfterStandardPrologue: () => insertStatementsAfterStandardPrologue,\n intersperse: () => intersperse,\n intrinsicTagNameToString: () => intrinsicTagNameToString,\n introducesArgumentsExoticObject: () => introducesArgumentsExoticObject,\n inverseJsxOptionMap: () => inverseJsxOptionMap,\n isAbstractConstructorSymbol: () => isAbstractConstructorSymbol,\n isAbstractModifier: () => isAbstractModifier,\n isAccessExpression: () => isAccessExpression,\n isAccessibilityModifier: () => isAccessibilityModifier,\n isAccessor: () => isAccessor,\n isAccessorModifier: () => isAccessorModifier,\n isAliasableExpression: () => isAliasableExpression,\n isAmbientModule: () => isAmbientModule,\n isAmbientPropertyDeclaration: () => isAmbientPropertyDeclaration,\n isAnyDirectorySeparator: () => isAnyDirectorySeparator,\n isAnyImportOrBareOrAccessedRequire: () => isAnyImportOrBareOrAccessedRequire,\n isAnyImportOrReExport: () => isAnyImportOrReExport,\n isAnyImportOrRequireStatement: () => isAnyImportOrRequireStatement,\n isAnyImportSyntax: () => isAnyImportSyntax,\n isAnySupportedFileExtension: () => isAnySupportedFileExtension,\n isApplicableVersionedTypesKey: () => isApplicableVersionedTypesKey,\n isArgumentExpressionOfElementAccess: () => isArgumentExpressionOfElementAccess,\n isArray: () => isArray,\n isArrayBindingElement: () => isArrayBindingElement,\n isArrayBindingOrAssignmentElement: () => isArrayBindingOrAssignmentElement,\n isArrayBindingOrAssignmentPattern: () => isArrayBindingOrAssignmentPattern,\n isArrayBindingPattern: () => isArrayBindingPattern,\n isArrayLiteralExpression: () => isArrayLiteralExpression,\n isArrayLiteralOrObjectLiteralDestructuringPattern: () => isArrayLiteralOrObjectLiteralDestructuringPattern,\n isArrayTypeNode: () => isArrayTypeNode,\n isArrowFunction: () => isArrowFunction,\n isAsExpression: () => isAsExpression,\n isAssertClause: () => isAssertClause,\n isAssertEntry: () => isAssertEntry,\n isAssertionExpression: () => isAssertionExpression,\n isAssertsKeyword: () => isAssertsKeyword,\n isAssignmentDeclaration: () => isAssignmentDeclaration,\n isAssignmentExpression: () => isAssignmentExpression,\n isAssignmentOperator: () => isAssignmentOperator,\n isAssignmentPattern: () => isAssignmentPattern,\n isAssignmentTarget: () => isAssignmentTarget,\n isAsteriskToken: () => isAsteriskToken,\n isAsyncFunction: () => isAsyncFunction,\n isAsyncModifier: () => isAsyncModifier,\n isAutoAccessorPropertyDeclaration: () => isAutoAccessorPropertyDeclaration,\n isAwaitExpression: () => isAwaitExpression,\n isAwaitKeyword: () => isAwaitKeyword,\n isBigIntLiteral: () => isBigIntLiteral,\n isBinaryExpression: () => isBinaryExpression,\n isBinaryLogicalOperator: () => isBinaryLogicalOperator,\n isBinaryOperatorToken: () => isBinaryOperatorToken,\n isBindableObjectDefinePropertyCall: () => isBindableObjectDefinePropertyCall,\n isBindableStaticAccessExpression: () => isBindableStaticAccessExpression,\n isBindableStaticElementAccessExpression: () => isBindableStaticElementAccessExpression,\n isBindableStaticNameExpression: () => isBindableStaticNameExpression,\n isBindingElement: () => isBindingElement,\n isBindingElementOfBareOrAccessedRequire: () => isBindingElementOfBareOrAccessedRequire,\n isBindingName: () => isBindingName,\n isBindingOrAssignmentElement: () => isBindingOrAssignmentElement,\n isBindingOrAssignmentPattern: () => isBindingOrAssignmentPattern,\n isBindingPattern: () => isBindingPattern,\n isBlock: () => isBlock,\n isBlockLike: () => isBlockLike,\n isBlockOrCatchScoped: () => isBlockOrCatchScoped,\n isBlockScope: () => isBlockScope,\n isBlockScopedContainerTopLevel: () => isBlockScopedContainerTopLevel,\n isBooleanLiteral: () => isBooleanLiteral,\n isBreakOrContinueStatement: () => isBreakOrContinueStatement,\n isBreakStatement: () => isBreakStatement,\n isBuildCommand: () => isBuildCommand,\n isBuildInfoFile: () => isBuildInfoFile,\n isBuilderProgram: () => isBuilderProgram,\n isBundle: () => isBundle,\n isCallChain: () => isCallChain,\n isCallExpression: () => isCallExpression,\n isCallExpressionTarget: () => isCallExpressionTarget,\n isCallLikeExpression: () => isCallLikeExpression,\n isCallLikeOrFunctionLikeExpression: () => isCallLikeOrFunctionLikeExpression,\n isCallOrNewExpression: () => isCallOrNewExpression,\n isCallOrNewExpressionTarget: () => isCallOrNewExpressionTarget,\n isCallSignatureDeclaration: () => isCallSignatureDeclaration,\n isCallToHelper: () => isCallToHelper,\n isCaseBlock: () => isCaseBlock,\n isCaseClause: () => isCaseClause,\n isCaseKeyword: () => isCaseKeyword,\n isCaseOrDefaultClause: () => isCaseOrDefaultClause,\n isCatchClause: () => isCatchClause,\n isCatchClauseVariableDeclaration: () => isCatchClauseVariableDeclaration,\n isCatchClauseVariableDeclarationOrBindingElement: () => isCatchClauseVariableDeclarationOrBindingElement,\n isCheckJsEnabledForFile: () => isCheckJsEnabledForFile,\n isCircularBuildOrder: () => isCircularBuildOrder,\n isClassDeclaration: () => isClassDeclaration,\n isClassElement: () => isClassElement,\n isClassExpression: () => isClassExpression,\n isClassInstanceProperty: () => isClassInstanceProperty,\n isClassLike: () => isClassLike,\n isClassMemberModifier: () => isClassMemberModifier,\n isClassNamedEvaluationHelperBlock: () => isClassNamedEvaluationHelperBlock,\n isClassOrTypeElement: () => isClassOrTypeElement,\n isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration,\n isClassThisAssignmentBlock: () => isClassThisAssignmentBlock,\n isColonToken: () => isColonToken,\n isCommaExpression: () => isCommaExpression,\n isCommaListExpression: () => isCommaListExpression,\n isCommaSequence: () => isCommaSequence,\n isCommaToken: () => isCommaToken,\n isComment: () => isComment,\n isCommonJsExportPropertyAssignment: () => isCommonJsExportPropertyAssignment,\n isCommonJsExportedExpression: () => isCommonJsExportedExpression,\n isCompoundAssignment: () => isCompoundAssignment,\n isComputedNonLiteralName: () => isComputedNonLiteralName,\n isComputedPropertyName: () => isComputedPropertyName,\n isConciseBody: () => isConciseBody,\n isConditionalExpression: () => isConditionalExpression,\n isConditionalTypeNode: () => isConditionalTypeNode,\n isConstAssertion: () => isConstAssertion,\n isConstTypeReference: () => isConstTypeReference,\n isConstructSignatureDeclaration: () => isConstructSignatureDeclaration,\n isConstructorDeclaration: () => isConstructorDeclaration,\n isConstructorTypeNode: () => isConstructorTypeNode,\n isContextualKeyword: () => isContextualKeyword,\n isContinueStatement: () => isContinueStatement,\n isCustomPrologue: () => isCustomPrologue,\n isDebuggerStatement: () => isDebuggerStatement,\n isDeclaration: () => isDeclaration,\n isDeclarationBindingElement: () => isDeclarationBindingElement,\n isDeclarationFileName: () => isDeclarationFileName,\n isDeclarationName: () => isDeclarationName,\n isDeclarationNameOfEnumOrNamespace: () => isDeclarationNameOfEnumOrNamespace,\n isDeclarationReadonly: () => isDeclarationReadonly,\n isDeclarationStatement: () => isDeclarationStatement,\n isDeclarationWithTypeParameterChildren: () => isDeclarationWithTypeParameterChildren,\n isDeclarationWithTypeParameters: () => isDeclarationWithTypeParameters,\n isDecorator: () => isDecorator,\n isDecoratorTarget: () => isDecoratorTarget,\n isDefaultClause: () => isDefaultClause,\n isDefaultImport: () => isDefaultImport,\n isDefaultModifier: () => isDefaultModifier,\n isDefaultedExpandoInitializer: () => isDefaultedExpandoInitializer,\n isDeleteExpression: () => isDeleteExpression,\n isDeleteTarget: () => isDeleteTarget,\n isDeprecatedDeclaration: () => isDeprecatedDeclaration,\n isDestructuringAssignment: () => isDestructuringAssignment,\n isDiskPathRoot: () => isDiskPathRoot,\n isDoStatement: () => isDoStatement,\n isDocumentRegistryEntry: () => isDocumentRegistryEntry,\n isDotDotDotToken: () => isDotDotDotToken,\n isDottedName: () => isDottedName,\n isDynamicName: () => isDynamicName,\n isEffectiveExternalModule: () => isEffectiveExternalModule,\n isEffectiveStrictModeSourceFile: () => isEffectiveStrictModeSourceFile,\n isElementAccessChain: () => isElementAccessChain,\n isElementAccessExpression: () => isElementAccessExpression,\n isEmittedFileOfProgram: () => isEmittedFileOfProgram,\n isEmptyArrayLiteral: () => isEmptyArrayLiteral,\n isEmptyBindingElement: () => isEmptyBindingElement,\n isEmptyBindingPattern: () => isEmptyBindingPattern,\n isEmptyObjectLiteral: () => isEmptyObjectLiteral,\n isEmptyStatement: () => isEmptyStatement,\n isEmptyStringLiteral: () => isEmptyStringLiteral,\n isEntityName: () => isEntityName,\n isEntityNameExpression: () => isEntityNameExpression,\n isEnumConst: () => isEnumConst,\n isEnumDeclaration: () => isEnumDeclaration,\n isEnumMember: () => isEnumMember,\n isEqualityOperatorKind: () => isEqualityOperatorKind,\n isEqualsGreaterThanToken: () => isEqualsGreaterThanToken,\n isExclamationToken: () => isExclamationToken,\n isExcludedFile: () => isExcludedFile,\n isExclusivelyTypeOnlyImportOrExport: () => isExclusivelyTypeOnlyImportOrExport,\n isExpandoPropertyDeclaration: () => isExpandoPropertyDeclaration,\n isExportAssignment: () => isExportAssignment,\n isExportDeclaration: () => isExportDeclaration,\n isExportModifier: () => isExportModifier,\n isExportName: () => isExportName,\n isExportNamespaceAsDefaultDeclaration: () => isExportNamespaceAsDefaultDeclaration,\n isExportOrDefaultModifier: () => isExportOrDefaultModifier,\n isExportSpecifier: () => isExportSpecifier,\n isExportsIdentifier: () => isExportsIdentifier,\n isExportsOrModuleExportsOrAlias: () => isExportsOrModuleExportsOrAlias,\n isExpression: () => isExpression,\n isExpressionNode: () => isExpressionNode,\n isExpressionOfExternalModuleImportEqualsDeclaration: () => isExpressionOfExternalModuleImportEqualsDeclaration,\n isExpressionOfOptionalChainRoot: () => isExpressionOfOptionalChainRoot,\n isExpressionStatement: () => isExpressionStatement,\n isExpressionWithTypeArguments: () => isExpressionWithTypeArguments,\n isExpressionWithTypeArgumentsInClassExtendsClause: () => isExpressionWithTypeArgumentsInClassExtendsClause,\n isExternalModule: () => isExternalModule,\n isExternalModuleAugmentation: () => isExternalModuleAugmentation,\n isExternalModuleImportEqualsDeclaration: () => isExternalModuleImportEqualsDeclaration,\n isExternalModuleIndicator: () => isExternalModuleIndicator,\n isExternalModuleNameRelative: () => isExternalModuleNameRelative,\n isExternalModuleReference: () => isExternalModuleReference,\n isExternalModuleSymbol: () => isExternalModuleSymbol,\n isExternalOrCommonJsModule: () => isExternalOrCommonJsModule,\n isFileLevelReservedGeneratedIdentifier: () => isFileLevelReservedGeneratedIdentifier,\n isFileLevelUniqueName: () => isFileLevelUniqueName,\n isFileProbablyExternalModule: () => isFileProbablyExternalModule,\n isFirstDeclarationOfSymbolParameter: () => isFirstDeclarationOfSymbolParameter,\n isFixablePromiseHandler: () => isFixablePromiseHandler,\n isForInOrOfStatement: () => isForInOrOfStatement,\n isForInStatement: () => isForInStatement,\n isForInitializer: () => isForInitializer,\n isForOfStatement: () => isForOfStatement,\n isForStatement: () => isForStatement,\n isFullSourceFile: () => isFullSourceFile,\n isFunctionBlock: () => isFunctionBlock,\n isFunctionBody: () => isFunctionBody,\n isFunctionDeclaration: () => isFunctionDeclaration,\n isFunctionExpression: () => isFunctionExpression,\n isFunctionExpressionOrArrowFunction: () => isFunctionExpressionOrArrowFunction,\n isFunctionLike: () => isFunctionLike,\n isFunctionLikeDeclaration: () => isFunctionLikeDeclaration,\n isFunctionLikeKind: () => isFunctionLikeKind,\n isFunctionLikeOrClassStaticBlockDeclaration: () => isFunctionLikeOrClassStaticBlockDeclaration,\n isFunctionOrConstructorTypeNode: () => isFunctionOrConstructorTypeNode,\n isFunctionOrModuleBlock: () => isFunctionOrModuleBlock,\n isFunctionSymbol: () => isFunctionSymbol,\n isFunctionTypeNode: () => isFunctionTypeNode,\n isGeneratedIdentifier: () => isGeneratedIdentifier,\n isGeneratedPrivateIdentifier: () => isGeneratedPrivateIdentifier,\n isGetAccessor: () => isGetAccessor,\n isGetAccessorDeclaration: () => isGetAccessorDeclaration,\n isGetOrSetAccessorDeclaration: () => isGetOrSetAccessorDeclaration,\n isGlobalScopeAugmentation: () => isGlobalScopeAugmentation,\n isGlobalSourceFile: () => isGlobalSourceFile,\n isGrammarError: () => isGrammarError,\n isHeritageClause: () => isHeritageClause,\n isHoistedFunction: () => isHoistedFunction,\n isHoistedVariableStatement: () => isHoistedVariableStatement,\n isIdentifier: () => isIdentifier,\n isIdentifierANonContextualKeyword: () => isIdentifierANonContextualKeyword,\n isIdentifierName: () => isIdentifierName,\n isIdentifierOrThisTypeNode: () => isIdentifierOrThisTypeNode,\n isIdentifierPart: () => isIdentifierPart,\n isIdentifierStart: () => isIdentifierStart,\n isIdentifierText: () => isIdentifierText,\n isIdentifierTypePredicate: () => isIdentifierTypePredicate,\n isIdentifierTypeReference: () => isIdentifierTypeReference,\n isIfStatement: () => isIfStatement,\n isIgnoredFileFromWildCardWatching: () => isIgnoredFileFromWildCardWatching,\n isImplicitGlob: () => isImplicitGlob,\n isImportAttribute: () => isImportAttribute,\n isImportAttributeName: () => isImportAttributeName,\n isImportAttributes: () => isImportAttributes,\n isImportCall: () => isImportCall,\n isImportClause: () => isImportClause,\n isImportDeclaration: () => isImportDeclaration,\n isImportEqualsDeclaration: () => isImportEqualsDeclaration,\n isImportKeyword: () => isImportKeyword,\n isImportMeta: () => isImportMeta,\n isImportOrExportSpecifier: () => isImportOrExportSpecifier,\n isImportOrExportSpecifierName: () => isImportOrExportSpecifierName,\n isImportSpecifier: () => isImportSpecifier,\n isImportTypeAssertionContainer: () => isImportTypeAssertionContainer,\n isImportTypeNode: () => isImportTypeNode,\n isImportable: () => isImportable,\n isInComment: () => isInComment,\n isInCompoundLikeAssignment: () => isInCompoundLikeAssignment,\n isInExpressionContext: () => isInExpressionContext,\n isInJSDoc: () => isInJSDoc,\n isInJSFile: () => isInJSFile,\n isInJSXText: () => isInJSXText,\n isInJsonFile: () => isInJsonFile,\n isInNonReferenceComment: () => isInNonReferenceComment,\n isInReferenceComment: () => isInReferenceComment,\n isInRightSideOfInternalImportEqualsDeclaration: () => isInRightSideOfInternalImportEqualsDeclaration,\n isInString: () => isInString,\n isInTemplateString: () => isInTemplateString,\n isInTopLevelContext: () => isInTopLevelContext,\n isInTypeQuery: () => isInTypeQuery,\n isIncrementalBuildInfo: () => isIncrementalBuildInfo,\n isIncrementalBundleEmitBuildInfo: () => isIncrementalBundleEmitBuildInfo,\n isIncrementalCompilation: () => isIncrementalCompilation,\n isIndexSignatureDeclaration: () => isIndexSignatureDeclaration,\n isIndexedAccessTypeNode: () => isIndexedAccessTypeNode,\n isInferTypeNode: () => isInferTypeNode,\n isInfinityOrNaNString: () => isInfinityOrNaNString,\n isInitializedProperty: () => isInitializedProperty,\n isInitializedVariable: () => isInitializedVariable,\n isInsideJsxElement: () => isInsideJsxElement,\n isInsideJsxElementOrAttribute: () => isInsideJsxElementOrAttribute,\n isInsideNodeModules: () => isInsideNodeModules,\n isInsideTemplateLiteral: () => isInsideTemplateLiteral,\n isInstanceOfExpression: () => isInstanceOfExpression,\n isInstantiatedModule: () => isInstantiatedModule,\n isInterfaceDeclaration: () => isInterfaceDeclaration,\n isInternalDeclaration: () => isInternalDeclaration,\n isInternalModuleImportEqualsDeclaration: () => isInternalModuleImportEqualsDeclaration,\n isInternalName: () => isInternalName,\n isIntersectionTypeNode: () => isIntersectionTypeNode,\n isIntrinsicJsxName: () => isIntrinsicJsxName,\n isIterationStatement: () => isIterationStatement,\n isJSDoc: () => isJSDoc,\n isJSDocAllType: () => isJSDocAllType,\n isJSDocAugmentsTag: () => isJSDocAugmentsTag,\n isJSDocAuthorTag: () => isJSDocAuthorTag,\n isJSDocCallbackTag: () => isJSDocCallbackTag,\n isJSDocClassTag: () => isJSDocClassTag,\n isJSDocCommentContainingNode: () => isJSDocCommentContainingNode,\n isJSDocConstructSignature: () => isJSDocConstructSignature,\n isJSDocDeprecatedTag: () => isJSDocDeprecatedTag,\n isJSDocEnumTag: () => isJSDocEnumTag,\n isJSDocFunctionType: () => isJSDocFunctionType,\n isJSDocImplementsTag: () => isJSDocImplementsTag,\n isJSDocImportTag: () => isJSDocImportTag,\n isJSDocIndexSignature: () => isJSDocIndexSignature,\n isJSDocLikeText: () => isJSDocLikeText,\n isJSDocLink: () => isJSDocLink,\n isJSDocLinkCode: () => isJSDocLinkCode,\n isJSDocLinkLike: () => isJSDocLinkLike,\n isJSDocLinkPlain: () => isJSDocLinkPlain,\n isJSDocMemberName: () => isJSDocMemberName,\n isJSDocNameReference: () => isJSDocNameReference,\n isJSDocNamepathType: () => isJSDocNamepathType,\n isJSDocNamespaceBody: () => isJSDocNamespaceBody,\n isJSDocNode: () => isJSDocNode,\n isJSDocNonNullableType: () => isJSDocNonNullableType,\n isJSDocNullableType: () => isJSDocNullableType,\n isJSDocOptionalParameter: () => isJSDocOptionalParameter,\n isJSDocOptionalType: () => isJSDocOptionalType,\n isJSDocOverloadTag: () => isJSDocOverloadTag,\n isJSDocOverrideTag: () => isJSDocOverrideTag,\n isJSDocParameterTag: () => isJSDocParameterTag,\n isJSDocPrivateTag: () => isJSDocPrivateTag,\n isJSDocPropertyLikeTag: () => isJSDocPropertyLikeTag,\n isJSDocPropertyTag: () => isJSDocPropertyTag,\n isJSDocProtectedTag: () => isJSDocProtectedTag,\n isJSDocPublicTag: () => isJSDocPublicTag,\n isJSDocReadonlyTag: () => isJSDocReadonlyTag,\n isJSDocReturnTag: () => isJSDocReturnTag,\n isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,\n isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,\n isJSDocSeeTag: () => isJSDocSeeTag,\n isJSDocSignature: () => isJSDocSignature,\n isJSDocTag: () => isJSDocTag,\n isJSDocTemplateTag: () => isJSDocTemplateTag,\n isJSDocThisTag: () => isJSDocThisTag,\n isJSDocThrowsTag: () => isJSDocThrowsTag,\n isJSDocTypeAlias: () => isJSDocTypeAlias,\n isJSDocTypeAssertion: () => isJSDocTypeAssertion,\n isJSDocTypeExpression: () => isJSDocTypeExpression,\n isJSDocTypeLiteral: () => isJSDocTypeLiteral,\n isJSDocTypeTag: () => isJSDocTypeTag,\n isJSDocTypedefTag: () => isJSDocTypedefTag,\n isJSDocUnknownTag: () => isJSDocUnknownTag,\n isJSDocUnknownType: () => isJSDocUnknownType,\n isJSDocVariadicType: () => isJSDocVariadicType,\n isJSXTagName: () => isJSXTagName,\n isJsonEqual: () => isJsonEqual,\n isJsonSourceFile: () => isJsonSourceFile,\n isJsxAttribute: () => isJsxAttribute,\n isJsxAttributeLike: () => isJsxAttributeLike,\n isJsxAttributeName: () => isJsxAttributeName,\n isJsxAttributes: () => isJsxAttributes,\n isJsxCallLike: () => isJsxCallLike,\n isJsxChild: () => isJsxChild,\n isJsxClosingElement: () => isJsxClosingElement,\n isJsxClosingFragment: () => isJsxClosingFragment,\n isJsxElement: () => isJsxElement,\n isJsxExpression: () => isJsxExpression,\n isJsxFragment: () => isJsxFragment,\n isJsxNamespacedName: () => isJsxNamespacedName,\n isJsxOpeningElement: () => isJsxOpeningElement,\n isJsxOpeningFragment: () => isJsxOpeningFragment,\n isJsxOpeningLikeElement: () => isJsxOpeningLikeElement,\n isJsxOpeningLikeElementTagName: () => isJsxOpeningLikeElementTagName,\n isJsxSelfClosingElement: () => isJsxSelfClosingElement,\n isJsxSpreadAttribute: () => isJsxSpreadAttribute,\n isJsxTagNameExpression: () => isJsxTagNameExpression,\n isJsxText: () => isJsxText,\n isJumpStatementTarget: () => isJumpStatementTarget,\n isKeyword: () => isKeyword,\n isKeywordOrPunctuation: () => isKeywordOrPunctuation,\n isKnownSymbol: () => isKnownSymbol,\n isLabelName: () => isLabelName,\n isLabelOfLabeledStatement: () => isLabelOfLabeledStatement,\n isLabeledStatement: () => isLabeledStatement,\n isLateVisibilityPaintedStatement: () => isLateVisibilityPaintedStatement,\n isLeftHandSideExpression: () => isLeftHandSideExpression,\n isLet: () => isLet,\n isLineBreak: () => isLineBreak,\n isLiteralComputedPropertyDeclarationName: () => isLiteralComputedPropertyDeclarationName,\n isLiteralExpression: () => isLiteralExpression,\n isLiteralExpressionOfObject: () => isLiteralExpressionOfObject,\n isLiteralImportTypeNode: () => isLiteralImportTypeNode,\n isLiteralKind: () => isLiteralKind,\n isLiteralNameOfPropertyDeclarationOrIndexAccess: () => isLiteralNameOfPropertyDeclarationOrIndexAccess,\n isLiteralTypeLiteral: () => isLiteralTypeLiteral,\n isLiteralTypeNode: () => isLiteralTypeNode,\n isLocalName: () => isLocalName,\n isLogicalOperator: () => isLogicalOperator,\n isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,\n isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,\n isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,\n isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,\n isMappedTypeNode: () => isMappedTypeNode,\n isMemberName: () => isMemberName,\n isMetaProperty: () => isMetaProperty,\n isMethodDeclaration: () => isMethodDeclaration,\n isMethodOrAccessor: () => isMethodOrAccessor,\n isMethodSignature: () => isMethodSignature,\n isMinusToken: () => isMinusToken,\n isMissingDeclaration: () => isMissingDeclaration,\n isMissingPackageJsonInfo: () => isMissingPackageJsonInfo,\n isModifier: () => isModifier,\n isModifierKind: () => isModifierKind,\n isModifierLike: () => isModifierLike,\n isModuleAugmentationExternal: () => isModuleAugmentationExternal,\n isModuleBlock: () => isModuleBlock,\n isModuleBody: () => isModuleBody,\n isModuleDeclaration: () => isModuleDeclaration,\n isModuleExportName: () => isModuleExportName,\n isModuleExportsAccessExpression: () => isModuleExportsAccessExpression,\n isModuleIdentifier: () => isModuleIdentifier,\n isModuleName: () => isModuleName,\n isModuleOrEnumDeclaration: () => isModuleOrEnumDeclaration,\n isModuleReference: () => isModuleReference,\n isModuleSpecifierLike: () => isModuleSpecifierLike,\n isModuleWithStringLiteralName: () => isModuleWithStringLiteralName,\n isNameOfFunctionDeclaration: () => isNameOfFunctionDeclaration,\n isNameOfModuleDeclaration: () => isNameOfModuleDeclaration,\n isNamedDeclaration: () => isNamedDeclaration,\n isNamedEvaluation: () => isNamedEvaluation,\n isNamedEvaluationSource: () => isNamedEvaluationSource,\n isNamedExportBindings: () => isNamedExportBindings,\n isNamedExports: () => isNamedExports,\n isNamedImportBindings: () => isNamedImportBindings,\n isNamedImports: () => isNamedImports,\n isNamedImportsOrExports: () => isNamedImportsOrExports,\n isNamedTupleMember: () => isNamedTupleMember,\n isNamespaceBody: () => isNamespaceBody,\n isNamespaceExport: () => isNamespaceExport,\n isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,\n isNamespaceImport: () => isNamespaceImport,\n isNamespaceReexportDeclaration: () => isNamespaceReexportDeclaration,\n isNewExpression: () => isNewExpression,\n isNewExpressionTarget: () => isNewExpressionTarget,\n isNewScopeNode: () => isNewScopeNode,\n isNoSubstitutionTemplateLiteral: () => isNoSubstitutionTemplateLiteral,\n isNodeArray: () => isNodeArray,\n isNodeArrayMultiLine: () => isNodeArrayMultiLine,\n isNodeDescendantOf: () => isNodeDescendantOf,\n isNodeKind: () => isNodeKind,\n isNodeLikeSystem: () => isNodeLikeSystem,\n isNodeModulesDirectory: () => isNodeModulesDirectory,\n isNodeWithPossibleHoistedDeclaration: () => isNodeWithPossibleHoistedDeclaration,\n isNonContextualKeyword: () => isNonContextualKeyword,\n isNonGlobalAmbientModule: () => isNonGlobalAmbientModule,\n isNonNullAccess: () => isNonNullAccess,\n isNonNullChain: () => isNonNullChain,\n isNonNullExpression: () => isNonNullExpression,\n isNonStaticMethodOrAccessorWithPrivateName: () => isNonStaticMethodOrAccessorWithPrivateName,\n isNotEmittedStatement: () => isNotEmittedStatement,\n isNullishCoalesce: () => isNullishCoalesce,\n isNumber: () => isNumber,\n isNumericLiteral: () => isNumericLiteral,\n isNumericLiteralName: () => isNumericLiteralName,\n isObjectBindingElementWithoutPropertyName: () => isObjectBindingElementWithoutPropertyName,\n isObjectBindingOrAssignmentElement: () => isObjectBindingOrAssignmentElement,\n isObjectBindingOrAssignmentPattern: () => isObjectBindingOrAssignmentPattern,\n isObjectBindingPattern: () => isObjectBindingPattern,\n isObjectLiteralElement: () => isObjectLiteralElement,\n isObjectLiteralElementLike: () => isObjectLiteralElementLike,\n isObjectLiteralExpression: () => isObjectLiteralExpression,\n isObjectLiteralMethod: () => isObjectLiteralMethod,\n isObjectLiteralOrClassExpressionMethodOrAccessor: () => isObjectLiteralOrClassExpressionMethodOrAccessor,\n isObjectTypeDeclaration: () => isObjectTypeDeclaration,\n isOmittedExpression: () => isOmittedExpression,\n isOptionalChain: () => isOptionalChain,\n isOptionalChainRoot: () => isOptionalChainRoot,\n isOptionalDeclaration: () => isOptionalDeclaration,\n isOptionalJSDocPropertyLikeTag: () => isOptionalJSDocPropertyLikeTag,\n isOptionalTypeNode: () => isOptionalTypeNode,\n isOuterExpression: () => isOuterExpression,\n isOutermostOptionalChain: () => isOutermostOptionalChain,\n isOverrideModifier: () => isOverrideModifier,\n isPackageJsonInfo: () => isPackageJsonInfo,\n isPackedArrayLiteral: () => isPackedArrayLiteral,\n isParameter: () => isParameter,\n isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,\n isParameterPropertyModifier: () => isParameterPropertyModifier,\n isParenthesizedExpression: () => isParenthesizedExpression,\n isParenthesizedTypeNode: () => isParenthesizedTypeNode,\n isParseTreeNode: () => isParseTreeNode,\n isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,\n isPartOfTypeNode: () => isPartOfTypeNode,\n isPartOfTypeOnlyImportOrExportDeclaration: () => isPartOfTypeOnlyImportOrExportDeclaration,\n isPartOfTypeQuery: () => isPartOfTypeQuery,\n isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,\n isPatternMatch: () => isPatternMatch,\n isPinnedComment: () => isPinnedComment,\n isPlainJsFile: () => isPlainJsFile,\n isPlusToken: () => isPlusToken,\n isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,\n isPostfixUnaryExpression: () => isPostfixUnaryExpression,\n isPrefixUnaryExpression: () => isPrefixUnaryExpression,\n isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,\n isPrivateIdentifier: () => isPrivateIdentifier,\n isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,\n isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,\n isPrivateIdentifierSymbol: () => isPrivateIdentifierSymbol,\n isProgramUptoDate: () => isProgramUptoDate,\n isPrologueDirective: () => isPrologueDirective,\n isPropertyAccessChain: () => isPropertyAccessChain,\n isPropertyAccessEntityNameExpression: () => isPropertyAccessEntityNameExpression,\n isPropertyAccessExpression: () => isPropertyAccessExpression,\n isPropertyAccessOrQualifiedName: () => isPropertyAccessOrQualifiedName,\n isPropertyAccessOrQualifiedNameOrImportTypeNode: () => isPropertyAccessOrQualifiedNameOrImportTypeNode,\n isPropertyAssignment: () => isPropertyAssignment,\n isPropertyDeclaration: () => isPropertyDeclaration,\n isPropertyName: () => isPropertyName,\n isPropertyNameLiteral: () => isPropertyNameLiteral,\n isPropertySignature: () => isPropertySignature,\n isPrototypeAccess: () => isPrototypeAccess,\n isPrototypePropertyAssignment: () => isPrototypePropertyAssignment,\n isPunctuation: () => isPunctuation,\n isPushOrUnshiftIdentifier: () => isPushOrUnshiftIdentifier,\n isQualifiedName: () => isQualifiedName,\n isQuestionDotToken: () => isQuestionDotToken,\n isQuestionOrExclamationToken: () => isQuestionOrExclamationToken,\n isQuestionOrPlusOrMinusToken: () => isQuestionOrPlusOrMinusToken,\n isQuestionToken: () => isQuestionToken,\n isReadonlyKeyword: () => isReadonlyKeyword,\n isReadonlyKeywordOrPlusOrMinusToken: () => isReadonlyKeywordOrPlusOrMinusToken,\n isRecognizedTripleSlashComment: () => isRecognizedTripleSlashComment,\n isReferenceFileLocation: () => isReferenceFileLocation,\n isReferencedFile: () => isReferencedFile,\n isRegularExpressionLiteral: () => isRegularExpressionLiteral,\n isRequireCall: () => isRequireCall,\n isRequireVariableStatement: () => isRequireVariableStatement,\n isRestParameter: () => isRestParameter,\n isRestTypeNode: () => isRestTypeNode,\n isReturnStatement: () => isReturnStatement,\n isReturnStatementWithFixablePromiseHandler: () => isReturnStatementWithFixablePromiseHandler,\n isRightSideOfAccessExpression: () => isRightSideOfAccessExpression,\n isRightSideOfInstanceofExpression: () => isRightSideOfInstanceofExpression,\n isRightSideOfPropertyAccess: () => isRightSideOfPropertyAccess,\n isRightSideOfQualifiedName: () => isRightSideOfQualifiedName,\n isRightSideOfQualifiedNameOrPropertyAccess: () => isRightSideOfQualifiedNameOrPropertyAccess,\n isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n isRootedDiskPath: () => isRootedDiskPath,\n isSameEntityName: () => isSameEntityName,\n isSatisfiesExpression: () => isSatisfiesExpression,\n isSemicolonClassElement: () => isSemicolonClassElement,\n isSetAccessor: () => isSetAccessor,\n isSetAccessorDeclaration: () => isSetAccessorDeclaration,\n isShiftOperatorOrHigher: () => isShiftOperatorOrHigher,\n isShorthandAmbientModuleSymbol: () => isShorthandAmbientModuleSymbol,\n isShorthandPropertyAssignment: () => isShorthandPropertyAssignment,\n isSideEffectImport: () => isSideEffectImport,\n isSignedNumericLiteral: () => isSignedNumericLiteral,\n isSimpleCopiableExpression: () => isSimpleCopiableExpression,\n isSimpleInlineableExpression: () => isSimpleInlineableExpression,\n isSimpleParameterList: () => isSimpleParameterList,\n isSingleOrDoubleQuote: () => isSingleOrDoubleQuote,\n isSolutionConfig: () => isSolutionConfig,\n isSourceElement: () => isSourceElement,\n isSourceFile: () => isSourceFile,\n isSourceFileFromLibrary: () => isSourceFileFromLibrary,\n isSourceFileJS: () => isSourceFileJS,\n isSourceFileNotJson: () => isSourceFileNotJson,\n isSourceMapping: () => isSourceMapping,\n isSpecialPropertyDeclaration: () => isSpecialPropertyDeclaration,\n isSpreadAssignment: () => isSpreadAssignment,\n isSpreadElement: () => isSpreadElement,\n isStatement: () => isStatement,\n isStatementButNotDeclaration: () => isStatementButNotDeclaration,\n isStatementOrBlock: () => isStatementOrBlock,\n isStatementWithLocals: () => isStatementWithLocals,\n isStatic: () => isStatic,\n isStaticModifier: () => isStaticModifier,\n isString: () => isString,\n isStringANonContextualKeyword: () => isStringANonContextualKeyword,\n isStringAndEmptyAnonymousObjectIntersection: () => isStringAndEmptyAnonymousObjectIntersection,\n isStringDoubleQuoted: () => isStringDoubleQuoted,\n isStringLiteral: () => isStringLiteral,\n isStringLiteralLike: () => isStringLiteralLike,\n isStringLiteralOrJsxExpression: () => isStringLiteralOrJsxExpression,\n isStringLiteralOrTemplate: () => isStringLiteralOrTemplate,\n isStringOrNumericLiteralLike: () => isStringOrNumericLiteralLike,\n isStringOrRegularExpressionOrTemplateLiteral: () => isStringOrRegularExpressionOrTemplateLiteral,\n isStringTextContainingNode: () => isStringTextContainingNode,\n isSuperCall: () => isSuperCall,\n isSuperKeyword: () => isSuperKeyword,\n isSuperProperty: () => isSuperProperty,\n isSupportedSourceFileName: () => isSupportedSourceFileName,\n isSwitchStatement: () => isSwitchStatement,\n isSyntaxList: () => isSyntaxList,\n isSyntheticExpression: () => isSyntheticExpression,\n isSyntheticReference: () => isSyntheticReference,\n isTagName: () => isTagName,\n isTaggedTemplateExpression: () => isTaggedTemplateExpression,\n isTaggedTemplateTag: () => isTaggedTemplateTag,\n isTemplateExpression: () => isTemplateExpression,\n isTemplateHead: () => isTemplateHead,\n isTemplateLiteral: () => isTemplateLiteral,\n isTemplateLiteralKind: () => isTemplateLiteralKind,\n isTemplateLiteralToken: () => isTemplateLiteralToken,\n isTemplateLiteralTypeNode: () => isTemplateLiteralTypeNode,\n isTemplateLiteralTypeSpan: () => isTemplateLiteralTypeSpan,\n isTemplateMiddle: () => isTemplateMiddle,\n isTemplateMiddleOrTemplateTail: () => isTemplateMiddleOrTemplateTail,\n isTemplateSpan: () => isTemplateSpan,\n isTemplateTail: () => isTemplateTail,\n isTextWhiteSpaceLike: () => isTextWhiteSpaceLike,\n isThis: () => isThis,\n isThisContainerOrFunctionBlock: () => isThisContainerOrFunctionBlock,\n isThisIdentifier: () => isThisIdentifier,\n isThisInTypeQuery: () => isThisInTypeQuery,\n isThisInitializedDeclaration: () => isThisInitializedDeclaration,\n isThisInitializedObjectBindingExpression: () => isThisInitializedObjectBindingExpression,\n isThisProperty: () => isThisProperty,\n isThisTypeNode: () => isThisTypeNode,\n isThisTypeParameter: () => isThisTypeParameter,\n isThisTypePredicate: () => isThisTypePredicate,\n isThrowStatement: () => isThrowStatement,\n isToken: () => isToken,\n isTokenKind: () => isTokenKind,\n isTraceEnabled: () => isTraceEnabled,\n isTransientSymbol: () => isTransientSymbol,\n isTrivia: () => isTrivia,\n isTryStatement: () => isTryStatement,\n isTupleTypeNode: () => isTupleTypeNode,\n isTypeAlias: () => isTypeAlias,\n isTypeAliasDeclaration: () => isTypeAliasDeclaration,\n isTypeAssertionExpression: () => isTypeAssertionExpression,\n isTypeDeclaration: () => isTypeDeclaration,\n isTypeElement: () => isTypeElement,\n isTypeKeyword: () => isTypeKeyword,\n isTypeKeywordTokenOrIdentifier: () => isTypeKeywordTokenOrIdentifier,\n isTypeLiteralNode: () => isTypeLiteralNode,\n isTypeNode: () => isTypeNode,\n isTypeNodeKind: () => isTypeNodeKind,\n isTypeOfExpression: () => isTypeOfExpression,\n isTypeOnlyExportDeclaration: () => isTypeOnlyExportDeclaration,\n isTypeOnlyImportDeclaration: () => isTypeOnlyImportDeclaration,\n isTypeOnlyImportOrExportDeclaration: () => isTypeOnlyImportOrExportDeclaration,\n isTypeOperatorNode: () => isTypeOperatorNode,\n isTypeParameterDeclaration: () => isTypeParameterDeclaration,\n isTypePredicateNode: () => isTypePredicateNode,\n isTypeQueryNode: () => isTypeQueryNode,\n isTypeReferenceNode: () => isTypeReferenceNode,\n isTypeReferenceType: () => isTypeReferenceType,\n isTypeUsableAsPropertyName: () => isTypeUsableAsPropertyName,\n isUMDExportSymbol: () => isUMDExportSymbol,\n isUnaryExpression: () => isUnaryExpression,\n isUnaryExpressionWithWrite: () => isUnaryExpressionWithWrite,\n isUnicodeIdentifierStart: () => isUnicodeIdentifierStart,\n isUnionTypeNode: () => isUnionTypeNode,\n isUrl: () => isUrl,\n isValidBigIntString: () => isValidBigIntString,\n isValidESSymbolDeclaration: () => isValidESSymbolDeclaration,\n isValidTypeOnlyAliasUseSite: () => isValidTypeOnlyAliasUseSite,\n isValueSignatureDeclaration: () => isValueSignatureDeclaration,\n isVarAwaitUsing: () => isVarAwaitUsing,\n isVarConst: () => isVarConst,\n isVarConstLike: () => isVarConstLike,\n isVarUsing: () => isVarUsing,\n isVariableDeclaration: () => isVariableDeclaration,\n isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,\n isVariableDeclarationInitializedToBareOrAccessedRequire: () => isVariableDeclarationInitializedToBareOrAccessedRequire,\n isVariableDeclarationInitializedToRequire: () => isVariableDeclarationInitializedToRequire,\n isVariableDeclarationList: () => isVariableDeclarationList,\n isVariableLike: () => isVariableLike,\n isVariableStatement: () => isVariableStatement,\n isVoidExpression: () => isVoidExpression,\n isWatchSet: () => isWatchSet,\n isWhileStatement: () => isWhileStatement,\n isWhiteSpaceLike: () => isWhiteSpaceLike,\n isWhiteSpaceSingleLine: () => isWhiteSpaceSingleLine,\n isWithStatement: () => isWithStatement,\n isWriteAccess: () => isWriteAccess,\n isWriteOnlyAccess: () => isWriteOnlyAccess,\n isYieldExpression: () => isYieldExpression,\n jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,\n keywordPart: () => keywordPart,\n last: () => last,\n lastOrUndefined: () => lastOrUndefined,\n length: () => length,\n libMap: () => libMap,\n libs: () => libs,\n lineBreakPart: () => lineBreakPart,\n loadModuleFromGlobalCache: () => loadModuleFromGlobalCache,\n loadWithModeAwareCache: () => loadWithModeAwareCache,\n makeIdentifierFromModuleName: () => makeIdentifierFromModuleName,\n makeImport: () => makeImport,\n makeStringLiteral: () => makeStringLiteral,\n mangleScopedPackageName: () => mangleScopedPackageName,\n map: () => map,\n mapAllOrFail: () => mapAllOrFail,\n mapDefined: () => mapDefined,\n mapDefinedIterator: () => mapDefinedIterator,\n mapEntries: () => mapEntries,\n mapIterator: () => mapIterator,\n mapOneOrMany: () => mapOneOrMany,\n mapToDisplayParts: () => mapToDisplayParts,\n matchFiles: () => matchFiles,\n matchPatternOrExact: () => matchPatternOrExact,\n matchedText: () => matchedText,\n matchesExclude: () => matchesExclude,\n matchesExcludeWorker: () => matchesExcludeWorker,\n maxBy: () => maxBy,\n maybeBind: () => maybeBind,\n maybeSetLocalizedDiagnosticMessages: () => maybeSetLocalizedDiagnosticMessages,\n memoize: () => memoize,\n memoizeOne: () => memoizeOne,\n min: () => min,\n minAndMax: () => minAndMax,\n missingFileModifiedTime: () => missingFileModifiedTime,\n modifierToFlag: () => modifierToFlag,\n modifiersToFlags: () => modifiersToFlags,\n moduleExportNameIsDefault: () => moduleExportNameIsDefault,\n moduleExportNameTextEscaped: () => moduleExportNameTextEscaped,\n moduleExportNameTextUnescaped: () => moduleExportNameTextUnescaped,\n moduleOptionDeclaration: () => moduleOptionDeclaration,\n moduleResolutionIsEqualTo: () => moduleResolutionIsEqualTo,\n moduleResolutionNameAndModeGetter: () => moduleResolutionNameAndModeGetter,\n moduleResolutionOptionDeclarations: () => moduleResolutionOptionDeclarations,\n moduleResolutionSupportsPackageJsonExportsAndImports: () => moduleResolutionSupportsPackageJsonExportsAndImports,\n moduleResolutionUsesNodeModules: () => moduleResolutionUsesNodeModules,\n moduleSpecifierToValidIdentifier: () => moduleSpecifierToValidIdentifier,\n moduleSpecifiers: () => ts_moduleSpecifiers_exports,\n moduleSupportsImportAttributes: () => moduleSupportsImportAttributes,\n moduleSymbolToValidIdentifier: () => moduleSymbolToValidIdentifier,\n moveEmitHelpers: () => moveEmitHelpers,\n moveRangeEnd: () => moveRangeEnd,\n moveRangePastDecorators: () => moveRangePastDecorators,\n moveRangePastModifiers: () => moveRangePastModifiers,\n moveRangePos: () => moveRangePos,\n moveSyntheticComments: () => moveSyntheticComments,\n mutateMap: () => mutateMap,\n mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,\n needsParentheses: () => needsParentheses,\n needsScopeMarker: () => needsScopeMarker,\n newCaseClauseTracker: () => newCaseClauseTracker,\n newPrivateEnvironment: () => newPrivateEnvironment,\n noEmitNotification: () => noEmitNotification,\n noEmitSubstitution: () => noEmitSubstitution,\n noTransformers: () => noTransformers,\n noTruncationMaximumTruncationLength: () => noTruncationMaximumTruncationLength,\n nodeCanBeDecorated: () => nodeCanBeDecorated,\n nodeCoreModules: () => nodeCoreModules,\n nodeHasName: () => nodeHasName,\n nodeIsDecorated: () => nodeIsDecorated,\n nodeIsMissing: () => nodeIsMissing,\n nodeIsPresent: () => nodeIsPresent,\n nodeIsSynthesized: () => nodeIsSynthesized,\n nodeModuleNameResolver: () => nodeModuleNameResolver,\n nodeModulesPathPart: () => nodeModulesPathPart,\n nodeNextJsonConfigResolver: () => nodeNextJsonConfigResolver,\n nodeOrChildIsDecorated: () => nodeOrChildIsDecorated,\n nodeOverlapsWithStartEnd: () => nodeOverlapsWithStartEnd,\n nodePosToString: () => nodePosToString,\n nodeSeenTracker: () => nodeSeenTracker,\n nodeStartsNewLexicalEnvironment: () => nodeStartsNewLexicalEnvironment,\n noop: () => noop,\n noopFileWatcher: () => noopFileWatcher,\n normalizePath: () => normalizePath,\n normalizeSlashes: () => normalizeSlashes,\n normalizeSpans: () => normalizeSpans,\n not: () => not,\n notImplemented: () => notImplemented,\n notImplementedResolver: () => notImplementedResolver,\n nullNodeConverters: () => nullNodeConverters,\n nullParenthesizerRules: () => nullParenthesizerRules,\n nullTransformationContext: () => nullTransformationContext,\n objectAllocator: () => objectAllocator,\n operatorPart: () => operatorPart,\n optionDeclarations: () => optionDeclarations,\n optionMapToObject: () => optionMapToObject,\n optionsAffectingProgramStructure: () => optionsAffectingProgramStructure,\n optionsForBuild: () => optionsForBuild,\n optionsForWatch: () => optionsForWatch,\n optionsHaveChanges: () => optionsHaveChanges,\n or: () => or,\n orderedRemoveItem: () => orderedRemoveItem,\n orderedRemoveItemAt: () => orderedRemoveItemAt,\n packageIdToPackageName: () => packageIdToPackageName,\n packageIdToString: () => packageIdToString,\n parameterIsThisKeyword: () => parameterIsThisKeyword,\n parameterNamePart: () => parameterNamePart,\n parseBaseNodeFactory: () => parseBaseNodeFactory,\n parseBigInt: () => parseBigInt,\n parseBuildCommand: () => parseBuildCommand,\n parseCommandLine: () => parseCommandLine,\n parseCommandLineWorker: () => parseCommandLineWorker,\n parseConfigFileTextToJson: () => parseConfigFileTextToJson,\n parseConfigFileWithSystem: () => parseConfigFileWithSystem,\n parseConfigHostFromCompilerHostLike: () => parseConfigHostFromCompilerHostLike,\n parseCustomTypeOption: () => parseCustomTypeOption,\n parseIsolatedEntityName: () => parseIsolatedEntityName,\n parseIsolatedJSDocComment: () => parseIsolatedJSDocComment,\n parseJSDocTypeExpressionForTests: () => parseJSDocTypeExpressionForTests,\n parseJsonConfigFileContent: () => parseJsonConfigFileContent,\n parseJsonSourceFileConfigFileContent: () => parseJsonSourceFileConfigFileContent,\n parseJsonText: () => parseJsonText,\n parseListTypeOption: () => parseListTypeOption,\n parseNodeFactory: () => parseNodeFactory,\n parseNodeModuleFromPath: () => parseNodeModuleFromPath,\n parsePackageName: () => parsePackageName,\n parsePseudoBigInt: () => parsePseudoBigInt,\n parseValidBigInt: () => parseValidBigInt,\n pasteEdits: () => ts_PasteEdits_exports,\n patchWriteFileEnsuringDirectory: () => patchWriteFileEnsuringDirectory,\n pathContainsNodeModules: () => pathContainsNodeModules,\n pathIsAbsolute: () => pathIsAbsolute,\n pathIsBareSpecifier: () => pathIsBareSpecifier,\n pathIsRelative: () => pathIsRelative,\n patternText: () => patternText,\n performIncrementalCompilation: () => performIncrementalCompilation,\n performance: () => ts_performance_exports,\n positionBelongsToNode: () => positionBelongsToNode,\n positionIsASICandidate: () => positionIsASICandidate,\n positionIsSynthesized: () => positionIsSynthesized,\n positionsAreOnSameLine: () => positionsAreOnSameLine,\n preProcessFile: () => preProcessFile,\n probablyUsesSemicolons: () => probablyUsesSemicolons,\n processCommentPragmas: () => processCommentPragmas,\n processPragmasIntoFields: () => processPragmasIntoFields,\n processTaggedTemplateExpression: () => processTaggedTemplateExpression,\n programContainsEsModules: () => programContainsEsModules,\n programContainsModules: () => programContainsModules,\n projectReferenceIsEqualTo: () => projectReferenceIsEqualTo,\n propertyNamePart: () => propertyNamePart,\n pseudoBigIntToString: () => pseudoBigIntToString,\n punctuationPart: () => punctuationPart,\n pushIfUnique: () => pushIfUnique,\n quote: () => quote,\n quotePreferenceFromString: () => quotePreferenceFromString,\n rangeContainsPosition: () => rangeContainsPosition,\n rangeContainsPositionExclusive: () => rangeContainsPositionExclusive,\n rangeContainsRange: () => rangeContainsRange,\n rangeContainsRangeExclusive: () => rangeContainsRangeExclusive,\n rangeContainsStartEnd: () => rangeContainsStartEnd,\n rangeEndIsOnSameLineAsRangeStart: () => rangeEndIsOnSameLineAsRangeStart,\n rangeEndPositionsAreOnSameLine: () => rangeEndPositionsAreOnSameLine,\n rangeEquals: () => rangeEquals,\n rangeIsOnSingleLine: () => rangeIsOnSingleLine,\n rangeOfNode: () => rangeOfNode,\n rangeOfTypeParameters: () => rangeOfTypeParameters,\n rangeOverlapsWithStartEnd: () => rangeOverlapsWithStartEnd,\n rangeStartIsOnSameLineAsRangeEnd: () => rangeStartIsOnSameLineAsRangeEnd,\n rangeStartPositionsAreOnSameLine: () => rangeStartPositionsAreOnSameLine,\n readBuilderProgram: () => readBuilderProgram,\n readConfigFile: () => readConfigFile,\n readJson: () => readJson,\n readJsonConfigFile: () => readJsonConfigFile,\n readJsonOrUndefined: () => readJsonOrUndefined,\n reduceEachLeadingCommentRange: () => reduceEachLeadingCommentRange,\n reduceEachTrailingCommentRange: () => reduceEachTrailingCommentRange,\n reduceLeft: () => reduceLeft,\n reduceLeftIterator: () => reduceLeftIterator,\n reducePathComponents: () => reducePathComponents,\n refactor: () => ts_refactor_exports,\n regExpEscape: () => regExpEscape,\n regularExpressionFlagToCharacterCode: () => regularExpressionFlagToCharacterCode,\n relativeComplement: () => relativeComplement,\n removeAllComments: () => removeAllComments,\n removeEmitHelper: () => removeEmitHelper,\n removeExtension: () => removeExtension,\n removeFileExtension: () => removeFileExtension,\n removeIgnoredPath: () => removeIgnoredPath,\n removeMinAndVersionNumbers: () => removeMinAndVersionNumbers,\n removePrefix: () => removePrefix,\n removeSuffix: () => removeSuffix,\n removeTrailingDirectorySeparator: () => removeTrailingDirectorySeparator,\n repeatString: () => repeatString,\n replaceElement: () => replaceElement,\n replaceFirstStar: () => replaceFirstStar,\n resolutionExtensionIsTSOrJson: () => resolutionExtensionIsTSOrJson,\n resolveConfigFileProjectName: () => resolveConfigFileProjectName,\n resolveJSModule: () => resolveJSModule,\n resolveLibrary: () => resolveLibrary,\n resolveModuleName: () => resolveModuleName,\n resolveModuleNameFromCache: () => resolveModuleNameFromCache,\n resolvePackageNameToPackageJson: () => resolvePackageNameToPackageJson,\n resolvePath: () => resolvePath,\n resolveProjectReferencePath: () => resolveProjectReferencePath,\n resolveTripleslashReference: () => resolveTripleslashReference,\n resolveTypeReferenceDirective: () => resolveTypeReferenceDirective,\n resolvingEmptyArray: () => resolvingEmptyArray,\n returnFalse: () => returnFalse,\n returnNoopFileWatcher: () => returnNoopFileWatcher,\n returnTrue: () => returnTrue,\n returnUndefined: () => returnUndefined,\n returnsPromise: () => returnsPromise,\n rewriteModuleSpecifier: () => rewriteModuleSpecifier,\n sameFlatMap: () => sameFlatMap,\n sameMap: () => sameMap,\n sameMapping: () => sameMapping,\n scanTokenAtPosition: () => scanTokenAtPosition,\n scanner: () => scanner,\n semanticDiagnosticsOptionDeclarations: () => semanticDiagnosticsOptionDeclarations,\n serializeCompilerOptions: () => serializeCompilerOptions,\n server: () => ts_server_exports4,\n servicesVersion: () => servicesVersion,\n setCommentRange: () => setCommentRange,\n setConfigFileInOptions: () => setConfigFileInOptions,\n setConstantValue: () => setConstantValue,\n setEmitFlags: () => setEmitFlags,\n setGetSourceFileAsHashVersioned: () => setGetSourceFileAsHashVersioned,\n setIdentifierAutoGenerate: () => setIdentifierAutoGenerate,\n setIdentifierGeneratedImportReference: () => setIdentifierGeneratedImportReference,\n setIdentifierTypeArguments: () => setIdentifierTypeArguments,\n setInternalEmitFlags: () => setInternalEmitFlags,\n setLocalizedDiagnosticMessages: () => setLocalizedDiagnosticMessages,\n setNodeChildren: () => setNodeChildren,\n setNodeFlags: () => setNodeFlags,\n setObjectAllocator: () => setObjectAllocator,\n setOriginalNode: () => setOriginalNode,\n setParent: () => setParent,\n setParentRecursive: () => setParentRecursive,\n setPrivateIdentifier: () => setPrivateIdentifier,\n setSnippetElement: () => setSnippetElement,\n setSourceMapRange: () => setSourceMapRange,\n setStackTraceLimit: () => setStackTraceLimit,\n setStartsOnNewLine: () => setStartsOnNewLine,\n setSyntheticLeadingComments: () => setSyntheticLeadingComments,\n setSyntheticTrailingComments: () => setSyntheticTrailingComments,\n setSys: () => setSys,\n setSysLog: () => setSysLog,\n setTextRange: () => setTextRange,\n setTextRangeEnd: () => setTextRangeEnd,\n setTextRangePos: () => setTextRangePos,\n setTextRangePosEnd: () => setTextRangePosEnd,\n setTextRangePosWidth: () => setTextRangePosWidth,\n setTokenSourceMapRange: () => setTokenSourceMapRange,\n setTypeNode: () => setTypeNode,\n setUILocale: () => setUILocale,\n setValueDeclaration: () => setValueDeclaration,\n shouldAllowImportingTsExtension: () => shouldAllowImportingTsExtension,\n shouldPreserveConstEnums: () => shouldPreserveConstEnums,\n shouldRewriteModuleSpecifier: () => shouldRewriteModuleSpecifier,\n shouldUseUriStyleNodeCoreModules: () => shouldUseUriStyleNodeCoreModules,\n showModuleSpecifier: () => showModuleSpecifier,\n signatureHasRestParameter: () => signatureHasRestParameter,\n signatureToDisplayParts: () => signatureToDisplayParts,\n single: () => single,\n singleElementArray: () => singleElementArray,\n singleIterator: () => singleIterator,\n singleOrMany: () => singleOrMany,\n singleOrUndefined: () => singleOrUndefined,\n skipAlias: () => skipAlias,\n skipConstraint: () => skipConstraint,\n skipOuterExpressions: () => skipOuterExpressions,\n skipParentheses: () => skipParentheses,\n skipPartiallyEmittedExpressions: () => skipPartiallyEmittedExpressions,\n skipTrivia: () => skipTrivia,\n skipTypeChecking: () => skipTypeChecking,\n skipTypeCheckingIgnoringNoCheck: () => skipTypeCheckingIgnoringNoCheck,\n skipTypeParentheses: () => skipTypeParentheses,\n skipWhile: () => skipWhile,\n sliceAfter: () => sliceAfter,\n some: () => some,\n sortAndDeduplicate: () => sortAndDeduplicate,\n sortAndDeduplicateDiagnostics: () => sortAndDeduplicateDiagnostics,\n sourceFileAffectingCompilerOptions: () => sourceFileAffectingCompilerOptions,\n sourceFileMayBeEmitted: () => sourceFileMayBeEmitted,\n sourceMapCommentRegExp: () => sourceMapCommentRegExp,\n sourceMapCommentRegExpDontCareLineStart: () => sourceMapCommentRegExpDontCareLineStart,\n spacePart: () => spacePart,\n spanMap: () => spanMap,\n startEndContainsRange: () => startEndContainsRange,\n startEndOverlapsWithStartEnd: () => startEndOverlapsWithStartEnd,\n startOnNewLine: () => startOnNewLine,\n startTracing: () => startTracing,\n startsWith: () => startsWith,\n startsWithDirectory: () => startsWithDirectory,\n startsWithUnderscore: () => startsWithUnderscore,\n startsWithUseStrict: () => startsWithUseStrict,\n stringContainsAt: () => stringContainsAt,\n stringToToken: () => stringToToken,\n stripQuotes: () => stripQuotes,\n supportedDeclarationExtensions: () => supportedDeclarationExtensions,\n supportedJSExtensionsFlat: () => supportedJSExtensionsFlat,\n supportedLocaleDirectories: () => supportedLocaleDirectories,\n supportedTSExtensionsFlat: () => supportedTSExtensionsFlat,\n supportedTSImplementationExtensions: () => supportedTSImplementationExtensions,\n suppressLeadingAndTrailingTrivia: () => suppressLeadingAndTrailingTrivia,\n suppressLeadingTrivia: () => suppressLeadingTrivia,\n suppressTrailingTrivia: () => suppressTrailingTrivia,\n symbolEscapedNameNoDefault: () => symbolEscapedNameNoDefault,\n symbolName: () => symbolName,\n symbolNameNoDefault: () => symbolNameNoDefault,\n symbolToDisplayParts: () => symbolToDisplayParts,\n sys: () => sys,\n sysLog: () => sysLog,\n tagNamesAreEquivalent: () => tagNamesAreEquivalent,\n takeWhile: () => takeWhile,\n targetOptionDeclaration: () => targetOptionDeclaration,\n targetToLibMap: () => targetToLibMap,\n testFormatSettings: () => testFormatSettings,\n textChangeRangeIsUnchanged: () => textChangeRangeIsUnchanged,\n textChangeRangeNewSpan: () => textChangeRangeNewSpan,\n textChanges: () => ts_textChanges_exports,\n textOrKeywordPart: () => textOrKeywordPart,\n textPart: () => textPart,\n textRangeContainsPositionInclusive: () => textRangeContainsPositionInclusive,\n textRangeContainsTextSpan: () => textRangeContainsTextSpan,\n textRangeIntersectsWithTextSpan: () => textRangeIntersectsWithTextSpan,\n textSpanContainsPosition: () => textSpanContainsPosition,\n textSpanContainsTextRange: () => textSpanContainsTextRange,\n textSpanContainsTextSpan: () => textSpanContainsTextSpan,\n textSpanEnd: () => textSpanEnd,\n textSpanIntersection: () => textSpanIntersection,\n textSpanIntersectsWith: () => textSpanIntersectsWith,\n textSpanIntersectsWithPosition: () => textSpanIntersectsWithPosition,\n textSpanIntersectsWithTextSpan: () => textSpanIntersectsWithTextSpan,\n textSpanIsEmpty: () => textSpanIsEmpty,\n textSpanOverlap: () => textSpanOverlap,\n textSpanOverlapsWith: () => textSpanOverlapsWith,\n textSpansEqual: () => textSpansEqual,\n textToKeywordObj: () => textToKeywordObj,\n timestamp: () => timestamp,\n toArray: () => toArray,\n toBuilderFileEmit: () => toBuilderFileEmit,\n toBuilderStateFileInfoForMultiEmit: () => toBuilderStateFileInfoForMultiEmit,\n toEditorSettings: () => toEditorSettings,\n toFileNameLowerCase: () => toFileNameLowerCase,\n toPath: () => toPath,\n toProgramEmitPending: () => toProgramEmitPending,\n toSorted: () => toSorted,\n tokenIsIdentifierOrKeyword: () => tokenIsIdentifierOrKeyword,\n tokenIsIdentifierOrKeywordOrGreaterThan: () => tokenIsIdentifierOrKeywordOrGreaterThan,\n tokenToString: () => tokenToString,\n trace: () => trace,\n tracing: () => tracing,\n tracingEnabled: () => tracingEnabled,\n transferSourceFileChildren: () => transferSourceFileChildren,\n transform: () => transform,\n transformClassFields: () => transformClassFields,\n transformDeclarations: () => transformDeclarations,\n transformECMAScriptModule: () => transformECMAScriptModule,\n transformES2015: () => transformES2015,\n transformES2016: () => transformES2016,\n transformES2017: () => transformES2017,\n transformES2018: () => transformES2018,\n transformES2019: () => transformES2019,\n transformES2020: () => transformES2020,\n transformES2021: () => transformES2021,\n transformESDecorators: () => transformESDecorators,\n transformESNext: () => transformESNext,\n transformGenerators: () => transformGenerators,\n transformImpliedNodeFormatDependentModule: () => transformImpliedNodeFormatDependentModule,\n transformJsx: () => transformJsx,\n transformLegacyDecorators: () => transformLegacyDecorators,\n transformModule: () => transformModule,\n transformNamedEvaluation: () => transformNamedEvaluation,\n transformNodes: () => transformNodes,\n transformSystemModule: () => transformSystemModule,\n transformTypeScript: () => transformTypeScript,\n transpile: () => transpile,\n transpileDeclaration: () => transpileDeclaration,\n transpileModule: () => transpileModule,\n transpileOptionValueCompilerOptions: () => transpileOptionValueCompilerOptions,\n tryAddToSet: () => tryAddToSet,\n tryAndIgnoreErrors: () => tryAndIgnoreErrors,\n tryCast: () => tryCast,\n tryDirectoryExists: () => tryDirectoryExists,\n tryExtractTSExtension: () => tryExtractTSExtension,\n tryFileExists: () => tryFileExists,\n tryGetClassExtendingExpressionWithTypeArguments: () => tryGetClassExtendingExpressionWithTypeArguments,\n tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n tryGetDirectories: () => tryGetDirectories,\n tryGetExtensionFromPath: () => tryGetExtensionFromPath2,\n tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,\n tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,\n tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,\n tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,\n tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,\n tryGetPropertyAccessOrIdentifierToString: () => tryGetPropertyAccessOrIdentifierToString,\n tryGetPropertyNameOfBindingOrAssignmentElement: () => tryGetPropertyNameOfBindingOrAssignmentElement,\n tryGetSourceMappingURL: () => tryGetSourceMappingURL,\n tryGetTextOfPropertyName: () => tryGetTextOfPropertyName,\n tryParseJson: () => tryParseJson,\n tryParsePattern: () => tryParsePattern,\n tryParsePatterns: () => tryParsePatterns,\n tryParseRawSourceMap: () => tryParseRawSourceMap,\n tryReadDirectory: () => tryReadDirectory,\n tryReadFile: () => tryReadFile,\n tryRemoveDirectoryPrefix: () => tryRemoveDirectoryPrefix,\n tryRemoveExtension: () => tryRemoveExtension,\n tryRemovePrefix: () => tryRemovePrefix,\n tryRemoveSuffix: () => tryRemoveSuffix,\n tscBuildOption: () => tscBuildOption,\n typeAcquisitionDeclarations: () => typeAcquisitionDeclarations,\n typeAliasNamePart: () => typeAliasNamePart,\n typeDirectiveIsEqualTo: () => typeDirectiveIsEqualTo,\n typeKeywords: () => typeKeywords,\n typeParameterNamePart: () => typeParameterNamePart,\n typeToDisplayParts: () => typeToDisplayParts,\n unchangedPollThresholds: () => unchangedPollThresholds,\n unchangedTextChangeRange: () => unchangedTextChangeRange,\n unescapeLeadingUnderscores: () => unescapeLeadingUnderscores,\n unmangleScopedPackageName: () => unmangleScopedPackageName,\n unorderedRemoveItem: () => unorderedRemoveItem,\n unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,\n unreachableCodeIsError: () => unreachableCodeIsError,\n unsetNodeChildren: () => unsetNodeChildren,\n unusedLabelIsError: () => unusedLabelIsError,\n unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,\n unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,\n updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,\n updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,\n updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,\n updateResolutionField: () => updateResolutionField,\n updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,\n updateSourceFile: () => updateSourceFile,\n updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,\n usingSingleLineStringWriter: () => usingSingleLineStringWriter,\n utf16EncodeAsString: () => utf16EncodeAsString,\n validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,\n version: () => version,\n versionMajorMinor: () => versionMajorMinor,\n visitArray: () => visitArray,\n visitCommaListElements: () => visitCommaListElements,\n visitEachChild: () => visitEachChild,\n visitFunctionBody: () => visitFunctionBody,\n visitIterationBody: () => visitIterationBody,\n visitLexicalEnvironment: () => visitLexicalEnvironment,\n visitNode: () => visitNode,\n visitNodes: () => visitNodes2,\n visitParameterList: () => visitParameterList,\n walkUpBindingElementsAndPatterns: () => walkUpBindingElementsAndPatterns,\n walkUpOuterExpressions: () => walkUpOuterExpressions,\n walkUpParenthesizedExpressions: () => walkUpParenthesizedExpressions,\n walkUpParenthesizedTypes: () => walkUpParenthesizedTypes,\n walkUpParenthesizedTypesAndGetParentAndChild: () => walkUpParenthesizedTypesAndGetParentAndChild,\n whitespaceOrMapCommentRegExp: () => whitespaceOrMapCommentRegExp,\n writeCommentRange: () => writeCommentRange,\n writeFile: () => writeFile,\n writeFileEnsuringDirectories: () => writeFileEnsuringDirectories,\n zipWith: () => zipWith\n});\nmodule.exports = __toCommonJS(typescript_exports);\n\n// src/compiler/corePublic.ts\nvar versionMajorMinor = \"5.9\";\nvar version = \"5.9.2\";\nvar Comparison = /* @__PURE__ */ ((Comparison3) => {\n Comparison3[Comparison3[\"LessThan\"] = -1] = \"LessThan\";\n Comparison3[Comparison3[\"EqualTo\"] = 0] = \"EqualTo\";\n Comparison3[Comparison3[\"GreaterThan\"] = 1] = \"GreaterThan\";\n return Comparison3;\n})(Comparison || {});\n\n// src/compiler/core.ts\nvar emptyArray = [];\nvar emptyMap = /* @__PURE__ */ new Map();\nfunction length(array) {\n return array !== void 0 ? array.length : 0;\n}\nfunction forEach(array, callback) {\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const result = callback(array[i], i);\n if (result) {\n return result;\n }\n }\n }\n return void 0;\n}\nfunction forEachRight(array, callback) {\n if (array !== void 0) {\n for (let i = array.length - 1; i >= 0; i--) {\n const result = callback(array[i], i);\n if (result) {\n return result;\n }\n }\n }\n return void 0;\n}\nfunction firstDefined(array, callback) {\n if (array === void 0) {\n return void 0;\n }\n for (let i = 0; i < array.length; i++) {\n const result = callback(array[i], i);\n if (result !== void 0) {\n return result;\n }\n }\n return void 0;\n}\nfunction firstDefinedIterator(iter, callback) {\n for (const value of iter) {\n const result = callback(value);\n if (result !== void 0) {\n return result;\n }\n }\n return void 0;\n}\nfunction reduceLeftIterator(iterator, f, initial) {\n let result = initial;\n if (iterator) {\n let pos = 0;\n for (const value of iterator) {\n result = f(result, value, pos);\n pos++;\n }\n }\n return result;\n}\nfunction zipWith(arrayA, arrayB, callback) {\n const result = [];\n Debug.assertEqual(arrayA.length, arrayB.length);\n for (let i = 0; i < arrayA.length; i++) {\n result.push(callback(arrayA[i], arrayB[i], i));\n }\n return result;\n}\nfunction intersperse(input, element) {\n if (input.length <= 1) {\n return input;\n }\n const result = [];\n for (let i = 0, n = input.length; i < n; i++) {\n if (i !== 0) result.push(element);\n result.push(input[i]);\n }\n return result;\n}\nfunction every(array, callback) {\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n if (!callback(array[i], i)) {\n return false;\n }\n }\n }\n return true;\n}\nfunction find(array, predicate, startIndex) {\n if (array === void 0) return void 0;\n for (let i = startIndex ?? 0; i < array.length; i++) {\n const value = array[i];\n if (predicate(value, i)) {\n return value;\n }\n }\n return void 0;\n}\nfunction findLast(array, predicate, startIndex) {\n if (array === void 0) return void 0;\n for (let i = startIndex ?? array.length - 1; i >= 0; i--) {\n const value = array[i];\n if (predicate(value, i)) {\n return value;\n }\n }\n return void 0;\n}\nfunction findIndex(array, predicate, startIndex) {\n if (array === void 0) return -1;\n for (let i = startIndex ?? 0; i < array.length; i++) {\n if (predicate(array[i], i)) {\n return i;\n }\n }\n return -1;\n}\nfunction findLastIndex(array, predicate, startIndex) {\n if (array === void 0) return -1;\n for (let i = startIndex ?? array.length - 1; i >= 0; i--) {\n if (predicate(array[i], i)) {\n return i;\n }\n }\n return -1;\n}\nfunction contains(array, value, equalityComparer = equateValues) {\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n if (equalityComparer(array[i], value)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction indexOfAnyCharCode(text, charCodes, start) {\n for (let i = start ?? 0; i < text.length; i++) {\n if (contains(charCodes, text.charCodeAt(i))) {\n return i;\n }\n }\n return -1;\n}\nfunction countWhere(array, predicate) {\n let count = 0;\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const v = array[i];\n if (predicate(v, i)) {\n count++;\n }\n }\n }\n return count;\n}\nfunction filter(array, f) {\n if (array !== void 0) {\n const len = array.length;\n let i = 0;\n while (i < len && f(array[i])) i++;\n if (i < len) {\n const result = array.slice(0, i);\n i++;\n while (i < len) {\n const item = array[i];\n if (f(item)) {\n result.push(item);\n }\n i++;\n }\n return result;\n }\n }\n return array;\n}\nfunction filterMutate(array, f) {\n let outIndex = 0;\n for (let i = 0; i < array.length; i++) {\n if (f(array[i], i, array)) {\n array[outIndex] = array[i];\n outIndex++;\n }\n }\n array.length = outIndex;\n}\nfunction clear(array) {\n array.length = 0;\n}\nfunction map(array, f) {\n let result;\n if (array !== void 0) {\n result = [];\n for (let i = 0; i < array.length; i++) {\n result.push(f(array[i], i));\n }\n }\n return result;\n}\nfunction* mapIterator(iter, mapFn) {\n for (const x of iter) {\n yield mapFn(x);\n }\n}\nfunction sameMap(array, f) {\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const item = array[i];\n const mapped = f(item, i);\n if (item !== mapped) {\n const result = array.slice(0, i);\n result.push(mapped);\n for (i++; i < array.length; i++) {\n result.push(f(array[i], i));\n }\n return result;\n }\n }\n }\n return array;\n}\nfunction flatten(array) {\n const result = [];\n for (let i = 0; i < array.length; i++) {\n const v = array[i];\n if (v) {\n if (isArray(v)) {\n addRange(result, v);\n } else {\n result.push(v);\n }\n }\n }\n return result;\n}\nfunction flatMap(array, mapfn) {\n let result;\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const v = mapfn(array[i], i);\n if (v) {\n if (isArray(v)) {\n result = addRange(result, v);\n } else {\n result = append(result, v);\n }\n }\n }\n }\n return result ?? emptyArray;\n}\nfunction flatMapToMutable(array, mapfn) {\n const result = [];\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const v = mapfn(array[i], i);\n if (v) {\n if (isArray(v)) {\n addRange(result, v);\n } else {\n result.push(v);\n }\n }\n }\n }\n return result;\n}\nfunction* flatMapIterator(iter, mapfn) {\n for (const x of iter) {\n const iter2 = mapfn(x);\n if (!iter2) continue;\n yield* iter2;\n }\n}\nfunction sameFlatMap(array, mapfn) {\n let result;\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const item = array[i];\n const mapped = mapfn(item, i);\n if (result || item !== mapped || isArray(mapped)) {\n if (!result) {\n result = array.slice(0, i);\n }\n if (isArray(mapped)) {\n addRange(result, mapped);\n } else {\n result.push(mapped);\n }\n }\n }\n }\n return result ?? array;\n}\nfunction mapAllOrFail(array, mapFn) {\n const result = [];\n for (let i = 0; i < array.length; i++) {\n const mapped = mapFn(array[i], i);\n if (mapped === void 0) {\n return void 0;\n }\n result.push(mapped);\n }\n return result;\n}\nfunction mapDefined(array, mapFn) {\n const result = [];\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const mapped = mapFn(array[i], i);\n if (mapped !== void 0) {\n result.push(mapped);\n }\n }\n }\n return result;\n}\nfunction* mapDefinedIterator(iter, mapFn) {\n for (const x of iter) {\n const value = mapFn(x);\n if (value !== void 0) {\n yield value;\n }\n }\n}\nfunction getOrUpdate(map2, key, callback) {\n if (map2.has(key)) {\n return map2.get(key);\n }\n const value = callback();\n map2.set(key, value);\n return value;\n}\nfunction tryAddToSet(set, value) {\n if (!set.has(value)) {\n set.add(value);\n return true;\n }\n return false;\n}\nfunction* singleIterator(value) {\n yield value;\n}\nfunction spanMap(array, keyfn, mapfn) {\n let result;\n if (array !== void 0) {\n result = [];\n const len = array.length;\n let previousKey;\n let key;\n let start = 0;\n let pos = 0;\n while (start < len) {\n while (pos < len) {\n const value = array[pos];\n key = keyfn(value, pos);\n if (pos === 0) {\n previousKey = key;\n } else if (key !== previousKey) {\n break;\n }\n pos++;\n }\n if (start < pos) {\n const v = mapfn(array.slice(start, pos), previousKey, start, pos);\n if (v) {\n result.push(v);\n }\n start = pos;\n }\n previousKey = key;\n pos++;\n }\n }\n return result;\n}\nfunction mapEntries(map2, f) {\n if (map2 === void 0) {\n return void 0;\n }\n const result = /* @__PURE__ */ new Map();\n map2.forEach((value, key) => {\n const [newKey, newValue] = f(key, value);\n result.set(newKey, newValue);\n });\n return result;\n}\nfunction some(array, predicate) {\n if (array !== void 0) {\n if (predicate !== void 0) {\n for (let i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return true;\n }\n }\n } else {\n return array.length > 0;\n }\n }\n return false;\n}\nfunction getRangesWhere(arr, pred, cb) {\n let start;\n for (let i = 0; i < arr.length; i++) {\n if (pred(arr[i])) {\n start = start === void 0 ? i : start;\n } else {\n if (start !== void 0) {\n cb(start, i);\n start = void 0;\n }\n }\n }\n if (start !== void 0) cb(start, arr.length);\n}\nfunction concatenate(array1, array2) {\n if (array2 === void 0 || array2.length === 0) return array1;\n if (array1 === void 0 || array1.length === 0) return array2;\n return [...array1, ...array2];\n}\nfunction selectIndex(_, i) {\n return i;\n}\nfunction indicesOf(array) {\n return array.map(selectIndex);\n}\nfunction deduplicateRelational(array, equalityComparer, comparer) {\n const indices = indicesOf(array);\n stableSortIndices(array, indices, comparer);\n let last2 = array[indices[0]];\n const deduplicated = [indices[0]];\n for (let i = 1; i < indices.length; i++) {\n const index = indices[i];\n const item = array[index];\n if (!equalityComparer(last2, item)) {\n deduplicated.push(index);\n last2 = item;\n }\n }\n deduplicated.sort();\n return deduplicated.map((i) => array[i]);\n}\nfunction deduplicateEquality(array, equalityComparer) {\n const result = [];\n for (let i = 0; i < array.length; i++) {\n pushIfUnique(result, array[i], equalityComparer);\n }\n return result;\n}\nfunction deduplicate(array, equalityComparer, comparer) {\n return array.length === 0 ? [] : array.length === 1 ? array.slice() : comparer ? deduplicateRelational(array, equalityComparer, comparer) : deduplicateEquality(array, equalityComparer);\n}\nfunction deduplicateSorted(array, comparer) {\n if (array.length === 0) return emptyArray;\n let last2 = array[0];\n const deduplicated = [last2];\n for (let i = 1; i < array.length; i++) {\n const next = array[i];\n switch (comparer(next, last2)) {\n // equality comparison\n case true:\n // relational comparison\n // falls through\n case 0 /* EqualTo */:\n continue;\n case -1 /* LessThan */:\n return Debug.fail(\"Array is unsorted.\");\n }\n deduplicated.push(last2 = next);\n }\n return deduplicated;\n}\nfunction createSortedArray() {\n return [];\n}\nfunction insertSorted(array, insert, compare, equalityComparer, allowDuplicates) {\n if (array.length === 0) {\n array.push(insert);\n return true;\n }\n const insertIndex = binarySearch(array, insert, identity, compare);\n if (insertIndex < 0) {\n if (equalityComparer && !allowDuplicates) {\n const idx = ~insertIndex;\n if (idx > 0 && equalityComparer(insert, array[idx - 1])) {\n return false;\n }\n if (idx < array.length && equalityComparer(insert, array[idx])) {\n array.splice(idx, 1, insert);\n return true;\n }\n }\n array.splice(~insertIndex, 0, insert);\n return true;\n }\n if (allowDuplicates) {\n array.splice(insertIndex, 0, insert);\n return true;\n }\n return false;\n}\nfunction sortAndDeduplicate(array, comparer, equalityComparer) {\n return deduplicateSorted(toSorted(array, comparer), equalityComparer ?? comparer ?? compareStringsCaseSensitive);\n}\nfunction arrayIsEqualTo(array1, array2, equalityComparer = equateValues) {\n if (array1 === void 0 || array2 === void 0) {\n return array1 === array2;\n }\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length; i++) {\n if (!equalityComparer(array1[i], array2[i], i)) {\n return false;\n }\n }\n return true;\n}\nfunction compact(array) {\n let result;\n if (array !== void 0) {\n for (let i = 0; i < array.length; i++) {\n const v = array[i];\n if (result ?? !v) {\n result ?? (result = array.slice(0, i));\n if (v) {\n result.push(v);\n }\n }\n }\n }\n return result ?? array;\n}\nfunction relativeComplement(arrayA, arrayB, comparer) {\n if (!arrayB || !arrayA || arrayB.length === 0 || arrayA.length === 0) return arrayB;\n const result = [];\n loopB:\n for (let offsetA = 0, offsetB = 0; offsetB < arrayB.length; offsetB++) {\n if (offsetB > 0) {\n Debug.assertGreaterThanOrEqual(comparer(arrayB[offsetB], arrayB[offsetB - 1]), 0 /* EqualTo */);\n }\n loopA:\n for (const startA = offsetA; offsetA < arrayA.length; offsetA++) {\n if (offsetA > startA) {\n Debug.assertGreaterThanOrEqual(comparer(arrayA[offsetA], arrayA[offsetA - 1]), 0 /* EqualTo */);\n }\n switch (comparer(arrayB[offsetB], arrayA[offsetA])) {\n case -1 /* LessThan */:\n result.push(arrayB[offsetB]);\n continue loopB;\n case 0 /* EqualTo */:\n continue loopB;\n case 1 /* GreaterThan */:\n continue loopA;\n }\n }\n }\n return result;\n}\nfunction append(to, value) {\n if (value === void 0) return to;\n if (to === void 0) return [value];\n to.push(value);\n return to;\n}\nfunction combine(xs, ys) {\n if (xs === void 0) return ys;\n if (ys === void 0) return xs;\n if (isArray(xs)) return isArray(ys) ? concatenate(xs, ys) : append(xs, ys);\n if (isArray(ys)) return append(ys, xs);\n return [xs, ys];\n}\nfunction toOffset(array, offset) {\n return offset < 0 ? array.length + offset : offset;\n}\nfunction addRange(to, from, start, end) {\n if (from === void 0 || from.length === 0) return to;\n if (to === void 0) return from.slice(start, end);\n start = start === void 0 ? 0 : toOffset(from, start);\n end = end === void 0 ? from.length : toOffset(from, end);\n for (let i = start; i < end && i < from.length; i++) {\n if (from[i] !== void 0) {\n to.push(from[i]);\n }\n }\n return to;\n}\nfunction pushIfUnique(array, toAdd, equalityComparer) {\n if (contains(array, toAdd, equalityComparer)) {\n return false;\n } else {\n array.push(toAdd);\n return true;\n }\n}\nfunction appendIfUnique(array, toAdd, equalityComparer) {\n if (array !== void 0) {\n pushIfUnique(array, toAdd, equalityComparer);\n return array;\n } else {\n return [toAdd];\n }\n}\nfunction stableSortIndices(array, indices, comparer) {\n indices.sort((x, y) => comparer(array[x], array[y]) || compareValues(x, y));\n}\nfunction toSorted(array, comparer) {\n return array.length === 0 ? emptyArray : array.slice().sort(comparer);\n}\nfunction* arrayReverseIterator(array) {\n for (let i = array.length - 1; i >= 0; i--) {\n yield array[i];\n }\n}\nfunction rangeEquals(array1, array2, pos, end) {\n while (pos < end) {\n if (array1[pos] !== array2[pos]) {\n return false;\n }\n pos++;\n }\n return true;\n}\nvar elementAt = !!Array.prototype.at ? (array, offset) => array == null ? void 0 : array.at(offset) : (array, offset) => {\n if (array !== void 0) {\n offset = toOffset(array, offset);\n if (offset < array.length) {\n return array[offset];\n }\n }\n return void 0;\n};\nfunction firstOrUndefined(array) {\n return array === void 0 || array.length === 0 ? void 0 : array[0];\n}\nfunction firstOrUndefinedIterator(iter) {\n if (iter !== void 0) {\n for (const value of iter) {\n return value;\n }\n }\n return void 0;\n}\nfunction first(array) {\n Debug.assert(array.length !== 0);\n return array[0];\n}\nfunction firstIterator(iter) {\n for (const value of iter) {\n return value;\n }\n Debug.fail(\"iterator is empty\");\n}\nfunction lastOrUndefined(array) {\n return array === void 0 || array.length === 0 ? void 0 : array[array.length - 1];\n}\nfunction last(array) {\n Debug.assert(array.length !== 0);\n return array[array.length - 1];\n}\nfunction singleOrUndefined(array) {\n return array !== void 0 && array.length === 1 ? array[0] : void 0;\n}\nfunction single(array) {\n return Debug.checkDefined(singleOrUndefined(array));\n}\nfunction singleOrMany(array) {\n return array !== void 0 && array.length === 1 ? array[0] : array;\n}\nfunction replaceElement(array, index, value) {\n const result = array.slice(0);\n result[index] = value;\n return result;\n}\nfunction binarySearch(array, value, keySelector, keyComparer, offset) {\n return binarySearchKey(array, keySelector(value), keySelector, keyComparer, offset);\n}\nfunction binarySearchKey(array, key, keySelector, keyComparer, offset) {\n if (!some(array)) {\n return -1;\n }\n let low = offset ?? 0;\n let high = array.length - 1;\n while (low <= high) {\n const middle = low + (high - low >> 1);\n const midKey = keySelector(array[middle], middle);\n switch (keyComparer(midKey, key)) {\n case -1 /* LessThan */:\n low = middle + 1;\n break;\n case 0 /* EqualTo */:\n return middle;\n case 1 /* GreaterThan */:\n high = middle - 1;\n break;\n }\n }\n return ~low;\n}\nfunction reduceLeft(array, f, initial, start, count) {\n if (array && array.length > 0) {\n const size = array.length;\n if (size > 0) {\n let pos = start === void 0 || start < 0 ? 0 : start;\n const end = count === void 0 || pos + count > size - 1 ? size - 1 : pos + count;\n let result;\n if (arguments.length <= 2) {\n result = array[pos];\n pos++;\n } else {\n result = initial;\n }\n while (pos <= end) {\n result = f(result, array[pos], pos);\n pos++;\n }\n return result;\n }\n }\n return initial;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasProperty(map2, key) {\n return hasOwnProperty.call(map2, key);\n}\nfunction getProperty(map2, key) {\n return hasOwnProperty.call(map2, key) ? map2[key] : void 0;\n}\nfunction getOwnKeys(map2) {\n const keys = [];\n for (const key in map2) {\n if (hasOwnProperty.call(map2, key)) {\n keys.push(key);\n }\n }\n return keys;\n}\nfunction getAllKeys(obj) {\n const result = [];\n do {\n const names = Object.getOwnPropertyNames(obj);\n for (const name of names) {\n pushIfUnique(result, name);\n }\n } while (obj = Object.getPrototypeOf(obj));\n return result;\n}\nfunction getOwnValues(collection) {\n const values = [];\n for (const key in collection) {\n if (hasOwnProperty.call(collection, key)) {\n values.push(collection[key]);\n }\n }\n return values;\n}\nfunction arrayOf(count, f) {\n const result = new Array(count);\n for (let i = 0; i < count; i++) {\n result[i] = f(i);\n }\n return result;\n}\nfunction arrayFrom(iterator, map2) {\n const result = [];\n for (const value of iterator) {\n result.push(map2 ? map2(value) : value);\n }\n return result;\n}\nfunction assign(t, ...args) {\n for (const arg of args) {\n if (arg === void 0) continue;\n for (const p in arg) {\n if (hasProperty(arg, p)) {\n t[p] = arg[p];\n }\n }\n }\n return t;\n}\nfunction equalOwnProperties(left, right, equalityComparer = equateValues) {\n if (left === right) return true;\n if (!left || !right) return false;\n for (const key in left) {\n if (hasOwnProperty.call(left, key)) {\n if (!hasOwnProperty.call(right, key)) return false;\n if (!equalityComparer(left[key], right[key])) return false;\n }\n }\n for (const key in right) {\n if (hasOwnProperty.call(right, key)) {\n if (!hasOwnProperty.call(left, key)) return false;\n }\n }\n return true;\n}\nfunction arrayToMap(array, makeKey, makeValue = identity) {\n const result = /* @__PURE__ */ new Map();\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n const key = makeKey(value);\n if (key !== void 0) result.set(key, makeValue(value));\n }\n return result;\n}\nfunction arrayToNumericMap(array, makeKey, makeValue = identity) {\n const result = [];\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[makeKey(value)] = makeValue(value);\n }\n return result;\n}\nfunction arrayToMultiMap(values, makeKey, makeValue = identity) {\n const result = createMultiMap();\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n result.add(makeKey(value), makeValue(value));\n }\n return result;\n}\nfunction group(values, getGroupId, resultSelector = identity) {\n return arrayFrom(arrayToMultiMap(values, getGroupId).values(), resultSelector);\n}\nfunction groupBy(values, keySelector) {\n const result = {};\n if (values !== void 0) {\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const key = `${keySelector(value)}`;\n const array = result[key] ?? (result[key] = []);\n array.push(value);\n }\n }\n return result;\n}\nfunction clone(object) {\n const result = {};\n for (const id in object) {\n if (hasOwnProperty.call(object, id)) {\n result[id] = object[id];\n }\n }\n return result;\n}\nfunction extend(first2, second) {\n const result = {};\n for (const id in second) {\n if (hasOwnProperty.call(second, id)) {\n result[id] = second[id];\n }\n }\n for (const id in first2) {\n if (hasOwnProperty.call(first2, id)) {\n result[id] = first2[id];\n }\n }\n return result;\n}\nfunction copyProperties(first2, second) {\n for (const id in second) {\n if (hasOwnProperty.call(second, id)) {\n first2[id] = second[id];\n }\n }\n}\nfunction maybeBind(obj, fn) {\n return fn == null ? void 0 : fn.bind(obj);\n}\nfunction createMultiMap() {\n const map2 = /* @__PURE__ */ new Map();\n map2.add = multiMapAdd;\n map2.remove = multiMapRemove;\n return map2;\n}\nfunction multiMapAdd(key, value) {\n let values = this.get(key);\n if (values !== void 0) {\n values.push(value);\n } else {\n this.set(key, values = [value]);\n }\n return values;\n}\nfunction multiMapRemove(key, value) {\n const values = this.get(key);\n if (values !== void 0) {\n unorderedRemoveItem(values, value);\n if (!values.length) {\n this.delete(key);\n }\n }\n}\nfunction createQueue(items) {\n const elements = (items == null ? void 0 : items.slice()) ?? [];\n let headIndex = 0;\n function isEmpty() {\n return headIndex === elements.length;\n }\n function enqueue(...items2) {\n elements.push(...items2);\n }\n function dequeue() {\n if (isEmpty()) {\n throw new Error(\"Queue is empty\");\n }\n const result = elements[headIndex];\n elements[headIndex] = void 0;\n headIndex++;\n if (headIndex > 100 && headIndex > elements.length >> 1) {\n const newLength = elements.length - headIndex;\n elements.copyWithin(\n /*target*/\n 0,\n /*start*/\n headIndex\n );\n elements.length = newLength;\n headIndex = 0;\n }\n return result;\n }\n return {\n enqueue,\n dequeue,\n isEmpty\n };\n}\nfunction createSet(getHashCode, equals) {\n const multiMap = /* @__PURE__ */ new Map();\n let size = 0;\n function* getElementIterator() {\n for (const value of multiMap.values()) {\n if (isArray(value)) {\n yield* value;\n } else {\n yield value;\n }\n }\n }\n const set = {\n has(element) {\n const hash = getHashCode(element);\n if (!multiMap.has(hash)) return false;\n const candidates = multiMap.get(hash);\n if (isArray(candidates)) return contains(candidates, element, equals);\n return equals(candidates, element);\n },\n add(element) {\n const hash = getHashCode(element);\n if (multiMap.has(hash)) {\n const values = multiMap.get(hash);\n if (isArray(values)) {\n if (!contains(values, element, equals)) {\n values.push(element);\n size++;\n }\n } else {\n const value = values;\n if (!equals(value, element)) {\n multiMap.set(hash, [value, element]);\n size++;\n }\n }\n } else {\n multiMap.set(hash, element);\n size++;\n }\n return this;\n },\n delete(element) {\n const hash = getHashCode(element);\n if (!multiMap.has(hash)) return false;\n const candidates = multiMap.get(hash);\n if (isArray(candidates)) {\n for (let i = 0; i < candidates.length; i++) {\n if (equals(candidates[i], element)) {\n if (candidates.length === 1) {\n multiMap.delete(hash);\n } else if (candidates.length === 2) {\n multiMap.set(hash, candidates[1 - i]);\n } else {\n unorderedRemoveItemAt(candidates, i);\n }\n size--;\n return true;\n }\n }\n } else {\n const candidate = candidates;\n if (equals(candidate, element)) {\n multiMap.delete(hash);\n size--;\n return true;\n }\n }\n return false;\n },\n clear() {\n multiMap.clear();\n size = 0;\n },\n get size() {\n return size;\n },\n forEach(action) {\n for (const elements of arrayFrom(multiMap.values())) {\n if (isArray(elements)) {\n for (const element of elements) {\n action(element, element, set);\n }\n } else {\n const element = elements;\n action(element, element, set);\n }\n }\n },\n keys() {\n return getElementIterator();\n },\n values() {\n return getElementIterator();\n },\n *entries() {\n for (const value of getElementIterator()) {\n yield [value, value];\n }\n },\n [Symbol.iterator]: () => {\n return getElementIterator();\n },\n [Symbol.toStringTag]: multiMap[Symbol.toStringTag]\n };\n return set;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\nfunction isString(text) {\n return typeof text === \"string\";\n}\nfunction isNumber(x) {\n return typeof x === \"number\";\n}\nfunction tryCast(value, test) {\n return value !== void 0 && test(value) ? value : void 0;\n}\nfunction cast(value, test) {\n if (value !== void 0 && test(value)) return value;\n return Debug.fail(`Invalid cast. The supplied value ${value} did not pass the test '${Debug.getFunctionName(test)}'.`);\n}\nfunction noop(_) {\n}\nfunction returnFalse() {\n return false;\n}\nfunction returnTrue() {\n return true;\n}\nfunction returnUndefined() {\n return void 0;\n}\nfunction identity(x) {\n return x;\n}\nfunction toLowerCase(x) {\n return x.toLowerCase();\n}\nvar fileNameLowerCaseRegExp = /[^\\u0130\\u0131\\u00DFa-z0-9\\\\/:\\-_. ]+/g;\nfunction toFileNameLowerCase(x) {\n return fileNameLowerCaseRegExp.test(x) ? x.replace(fileNameLowerCaseRegExp, toLowerCase) : x;\n}\nfunction notImplemented() {\n throw new Error(\"Not implemented\");\n}\nfunction memoize(callback) {\n let value;\n return () => {\n if (callback) {\n value = callback();\n callback = void 0;\n }\n return value;\n };\n}\nfunction memoizeOne(callback) {\n const map2 = /* @__PURE__ */ new Map();\n return (arg) => {\n const key = `${typeof arg}:${arg}`;\n let value = map2.get(key);\n if (value === void 0 && !map2.has(key)) {\n value = callback(arg);\n map2.set(key, value);\n }\n return value;\n };\n}\nvar AssertionLevel = /* @__PURE__ */ ((AssertionLevel2) => {\n AssertionLevel2[AssertionLevel2[\"None\"] = 0] = \"None\";\n AssertionLevel2[AssertionLevel2[\"Normal\"] = 1] = \"Normal\";\n AssertionLevel2[AssertionLevel2[\"Aggressive\"] = 2] = \"Aggressive\";\n AssertionLevel2[AssertionLevel2[\"VeryAggressive\"] = 3] = \"VeryAggressive\";\n return AssertionLevel2;\n})(AssertionLevel || {});\nfunction equateValues(a, b) {\n return a === b;\n}\nfunction equateStringsCaseInsensitive(a, b) {\n return a === b || a !== void 0 && b !== void 0 && a.toUpperCase() === b.toUpperCase();\n}\nfunction equateStringsCaseSensitive(a, b) {\n return equateValues(a, b);\n}\nfunction compareComparableValues(a, b) {\n return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : a < b ? -1 /* LessThan */ : 1 /* GreaterThan */;\n}\nfunction compareValues(a, b) {\n return compareComparableValues(a, b);\n}\nfunction compareTextSpans(a, b) {\n return compareValues(a == null ? void 0 : a.start, b == null ? void 0 : b.start) || compareValues(a == null ? void 0 : a.length, b == null ? void 0 : b.length);\n}\nfunction maxBy(arr, init, mapper) {\n for (let i = 0; i < arr.length; i++) {\n init = Math.max(init, mapper(arr[i]));\n }\n return init;\n}\nfunction min(items, compare) {\n return reduceLeft(items, (x, y) => compare(x, y) === -1 /* LessThan */ ? x : y);\n}\nfunction compareStringsCaseInsensitive(a, b) {\n if (a === b) return 0 /* EqualTo */;\n if (a === void 0) return -1 /* LessThan */;\n if (b === void 0) return 1 /* GreaterThan */;\n a = a.toUpperCase();\n b = b.toUpperCase();\n return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n}\nfunction compareStringsCaseInsensitiveEslintCompatible(a, b) {\n if (a === b) return 0 /* EqualTo */;\n if (a === void 0) return -1 /* LessThan */;\n if (b === void 0) return 1 /* GreaterThan */;\n a = a.toLowerCase();\n b = b.toLowerCase();\n return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n}\nfunction compareStringsCaseSensitive(a, b) {\n return compareComparableValues(a, b);\n}\nfunction getStringComparer(ignoreCase) {\n return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive;\n}\nvar createUIStringComparer = /* @__PURE__ */ (() => {\n return createIntlCollatorStringComparer;\n function compareWithCallback(a, b, comparer) {\n if (a === b) return 0 /* EqualTo */;\n if (a === void 0) return -1 /* LessThan */;\n if (b === void 0) return 1 /* GreaterThan */;\n const value = comparer(a, b);\n return value < 0 ? -1 /* LessThan */ : value > 0 ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n }\n function createIntlCollatorStringComparer(locale) {\n const comparer = new Intl.Collator(locale, { usage: \"sort\", sensitivity: \"variant\", numeric: true }).compare;\n return (a, b) => compareWithCallback(a, b, comparer);\n }\n})();\nvar uiComparerCaseSensitive;\nvar uiLocale;\nfunction getUILocale() {\n return uiLocale;\n}\nfunction setUILocale(value) {\n if (uiLocale !== value) {\n uiLocale = value;\n uiComparerCaseSensitive = void 0;\n }\n}\nfunction compareStringsCaseSensitiveUI(a, b) {\n uiComparerCaseSensitive ?? (uiComparerCaseSensitive = createUIStringComparer(uiLocale));\n return uiComparerCaseSensitive(a, b);\n}\nfunction compareProperties(a, b, key, comparer) {\n return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : comparer(a[key], b[key]);\n}\nfunction compareBooleans(a, b) {\n return compareValues(a ? 1 : 0, b ? 1 : 0);\n}\nfunction getSpellingSuggestion(name, candidates, getName) {\n const maximumLengthDifference = Math.max(2, Math.floor(name.length * 0.34));\n let bestDistance = Math.floor(name.length * 0.4) + 1;\n let bestCandidate;\n for (const candidate of candidates) {\n const candidateName = getName(candidate);\n if (candidateName !== void 0 && Math.abs(candidateName.length - name.length) <= maximumLengthDifference) {\n if (candidateName === name) {\n continue;\n }\n if (candidateName.length < 3 && candidateName.toLowerCase() !== name.toLowerCase()) {\n continue;\n }\n const distance = levenshteinWithMax(name, candidateName, bestDistance - 0.1);\n if (distance === void 0) {\n continue;\n }\n Debug.assert(distance < bestDistance);\n bestDistance = distance;\n bestCandidate = candidate;\n }\n }\n return bestCandidate;\n}\nfunction levenshteinWithMax(s1, s2, max) {\n let previous = new Array(s2.length + 1);\n let current = new Array(s2.length + 1);\n const big = max + 0.01;\n for (let i = 0; i <= s2.length; i++) {\n previous[i] = i;\n }\n for (let i = 1; i <= s1.length; i++) {\n const c1 = s1.charCodeAt(i - 1);\n const minJ = Math.ceil(i > max ? i - max : 1);\n const maxJ = Math.floor(s2.length > max + i ? max + i : s2.length);\n current[0] = i;\n let colMin = i;\n for (let j = 1; j < minJ; j++) {\n current[j] = big;\n }\n for (let j = minJ; j <= maxJ; j++) {\n const substitutionDistance = s1[i - 1].toLowerCase() === s2[j - 1].toLowerCase() ? previous[j - 1] + 0.1 : previous[j - 1] + 2;\n const dist = c1 === s2.charCodeAt(j - 1) ? previous[j - 1] : Math.min(\n /*delete*/\n previous[j] + 1,\n /*insert*/\n current[j - 1] + 1,\n /*substitute*/\n substitutionDistance\n );\n current[j] = dist;\n colMin = Math.min(colMin, dist);\n }\n for (let j = maxJ + 1; j <= s2.length; j++) {\n current[j] = big;\n }\n if (colMin > max) {\n return void 0;\n }\n const temp = previous;\n previous = current;\n current = temp;\n }\n const res = previous[s2.length];\n return res > max ? void 0 : res;\n}\nfunction endsWith(str, suffix, ignoreCase) {\n const expectedPos = str.length - suffix.length;\n return expectedPos >= 0 && (ignoreCase ? equateStringsCaseInsensitive(str.slice(expectedPos), suffix) : str.indexOf(suffix, expectedPos) === expectedPos);\n}\nfunction removeSuffix(str, suffix) {\n return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : str;\n}\nfunction tryRemoveSuffix(str, suffix) {\n return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : void 0;\n}\nfunction removeMinAndVersionNumbers(fileName) {\n let end = fileName.length;\n for (let pos = end - 1; pos > 0; pos--) {\n let ch = fileName.charCodeAt(pos);\n if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) {\n do {\n --pos;\n ch = fileName.charCodeAt(pos);\n } while (pos > 0 && ch >= 48 /* _0 */ && ch <= 57 /* _9 */);\n } else if (pos > 4 && (ch === 110 /* n */ || ch === 78 /* N */)) {\n --pos;\n ch = fileName.charCodeAt(pos);\n if (ch !== 105 /* i */ && ch !== 73 /* I */) {\n break;\n }\n --pos;\n ch = fileName.charCodeAt(pos);\n if (ch !== 109 /* m */ && ch !== 77 /* M */) {\n break;\n }\n --pos;\n ch = fileName.charCodeAt(pos);\n } else {\n break;\n }\n if (ch !== 45 /* minus */ && ch !== 46 /* dot */) {\n break;\n }\n end = pos;\n }\n return end === fileName.length ? fileName : fileName.slice(0, end);\n}\nfunction orderedRemoveItem(array, item) {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === item) {\n orderedRemoveItemAt(array, i);\n return true;\n }\n }\n return false;\n}\nfunction orderedRemoveItemAt(array, index) {\n for (let i = index; i < array.length - 1; i++) {\n array[i] = array[i + 1];\n }\n array.pop();\n}\nfunction unorderedRemoveItemAt(array, index) {\n array[index] = array[array.length - 1];\n array.pop();\n}\nfunction unorderedRemoveItem(array, item) {\n return unorderedRemoveFirstItemWhere(array, (element) => element === item);\n}\nfunction unorderedRemoveFirstItemWhere(array, predicate) {\n for (let i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n unorderedRemoveItemAt(array, i);\n return true;\n }\n }\n return false;\n}\nfunction createGetCanonicalFileName(useCaseSensitiveFileNames2) {\n return useCaseSensitiveFileNames2 ? identity : toFileNameLowerCase;\n}\nfunction patternText({ prefix, suffix }) {\n return `${prefix}*${suffix}`;\n}\nfunction matchedText(pattern, candidate) {\n Debug.assert(isPatternMatch(pattern, candidate));\n return candidate.substring(pattern.prefix.length, candidate.length - pattern.suffix.length);\n}\nfunction findBestPatternMatch(values, getPattern, candidate) {\n let matchedValue;\n let longestMatchPrefixLength = -1;\n for (let i = 0; i < values.length; i++) {\n const v = values[i];\n const pattern = getPattern(v);\n if (pattern.prefix.length > longestMatchPrefixLength && isPatternMatch(pattern, candidate)) {\n longestMatchPrefixLength = pattern.prefix.length;\n matchedValue = v;\n }\n }\n return matchedValue;\n}\nfunction startsWith(str, prefix, ignoreCase) {\n return ignoreCase ? equateStringsCaseInsensitive(str.slice(0, prefix.length), prefix) : str.lastIndexOf(prefix, 0) === 0;\n}\nfunction removePrefix(str, prefix) {\n return startsWith(str, prefix) ? str.substr(prefix.length) : str;\n}\nfunction tryRemovePrefix(str, prefix, getCanonicalFileName = identity) {\n return startsWith(getCanonicalFileName(str), getCanonicalFileName(prefix)) ? str.substring(prefix.length) : void 0;\n}\nfunction isPatternMatch({ prefix, suffix }, candidate) {\n return candidate.length >= prefix.length + suffix.length && startsWith(candidate, prefix) && endsWith(candidate, suffix);\n}\nfunction and(f, g) {\n return (arg) => f(arg) && g(arg);\n}\nfunction or(...fs) {\n return (...args) => {\n let lastResult;\n for (const f of fs) {\n lastResult = f(...args);\n if (lastResult) {\n return lastResult;\n }\n }\n return lastResult;\n };\n}\nfunction not(fn) {\n return (...args) => !fn(...args);\n}\nfunction assertType(_) {\n}\nfunction singleElementArray(t) {\n return t === void 0 ? void 0 : [t];\n}\nfunction enumerateInsertsAndDeletes(newItems, oldItems, comparer, inserted, deleted, unchanged) {\n unchanged ?? (unchanged = noop);\n let newIndex = 0;\n let oldIndex = 0;\n const newLen = newItems.length;\n const oldLen = oldItems.length;\n let hasChanges = false;\n while (newIndex < newLen && oldIndex < oldLen) {\n const newItem = newItems[newIndex];\n const oldItem = oldItems[oldIndex];\n const compareResult = comparer(newItem, oldItem);\n if (compareResult === -1 /* LessThan */) {\n inserted(newItem);\n newIndex++;\n hasChanges = true;\n } else if (compareResult === 1 /* GreaterThan */) {\n deleted(oldItem);\n oldIndex++;\n hasChanges = true;\n } else {\n unchanged(oldItem, newItem);\n newIndex++;\n oldIndex++;\n }\n }\n while (newIndex < newLen) {\n inserted(newItems[newIndex++]);\n hasChanges = true;\n }\n while (oldIndex < oldLen) {\n deleted(oldItems[oldIndex++]);\n hasChanges = true;\n }\n return hasChanges;\n}\nfunction cartesianProduct(arrays) {\n const result = [];\n cartesianProductWorker(\n arrays,\n result,\n /*outer*/\n void 0,\n 0\n );\n return result;\n}\nfunction cartesianProductWorker(arrays, result, outer, index) {\n for (const element of arrays[index]) {\n let inner;\n if (outer) {\n inner = outer.slice();\n inner.push(element);\n } else {\n inner = [element];\n }\n if (index === arrays.length - 1) {\n result.push(inner);\n } else {\n cartesianProductWorker(arrays, result, inner, index + 1);\n }\n }\n}\nfunction takeWhile(array, predicate) {\n if (array !== void 0) {\n const len = array.length;\n let index = 0;\n while (index < len && predicate(array[index])) {\n index++;\n }\n return array.slice(0, index);\n }\n}\nfunction skipWhile(array, predicate) {\n if (array !== void 0) {\n const len = array.length;\n let index = 0;\n while (index < len && predicate(array[index])) {\n index++;\n }\n return array.slice(index);\n }\n}\nfunction isNodeLikeSystem() {\n return typeof process !== \"undefined\" && !!process.nextTick && !process.browser && typeof require !== \"undefined\";\n}\n\n// src/compiler/debug.ts\nvar LogLevel = /* @__PURE__ */ ((LogLevel3) => {\n LogLevel3[LogLevel3[\"Off\"] = 0] = \"Off\";\n LogLevel3[LogLevel3[\"Error\"] = 1] = \"Error\";\n LogLevel3[LogLevel3[\"Warning\"] = 2] = \"Warning\";\n LogLevel3[LogLevel3[\"Info\"] = 3] = \"Info\";\n LogLevel3[LogLevel3[\"Verbose\"] = 4] = \"Verbose\";\n return LogLevel3;\n})(LogLevel || {});\nvar Debug;\n((Debug2) => {\n let currentAssertionLevel = 0 /* None */;\n Debug2.currentLogLevel = 2 /* Warning */;\n Debug2.isDebugging = false;\n function shouldLog(level) {\n return Debug2.currentLogLevel <= level;\n }\n Debug2.shouldLog = shouldLog;\n function logMessage(level, s) {\n if (Debug2.loggingHost && shouldLog(level)) {\n Debug2.loggingHost.log(level, s);\n }\n }\n function log(s) {\n logMessage(3 /* Info */, s);\n }\n Debug2.log = log;\n ((_log) => {\n function error2(s) {\n logMessage(1 /* Error */, s);\n }\n _log.error = error2;\n function warn(s) {\n logMessage(2 /* Warning */, s);\n }\n _log.warn = warn;\n function log2(s) {\n logMessage(3 /* Info */, s);\n }\n _log.log = log2;\n function trace2(s) {\n logMessage(4 /* Verbose */, s);\n }\n _log.trace = trace2;\n })(log = Debug2.log || (Debug2.log = {}));\n const assertionCache = {};\n function getAssertionLevel() {\n return currentAssertionLevel;\n }\n Debug2.getAssertionLevel = getAssertionLevel;\n function setAssertionLevel(level) {\n const prevAssertionLevel = currentAssertionLevel;\n currentAssertionLevel = level;\n if (level > prevAssertionLevel) {\n for (const key of getOwnKeys(assertionCache)) {\n const cachedFunc = assertionCache[key];\n if (cachedFunc !== void 0 && Debug2[key] !== cachedFunc.assertion && level >= cachedFunc.level) {\n Debug2[key] = cachedFunc;\n assertionCache[key] = void 0;\n }\n }\n }\n }\n Debug2.setAssertionLevel = setAssertionLevel;\n function shouldAssert(level) {\n return currentAssertionLevel >= level;\n }\n Debug2.shouldAssert = shouldAssert;\n function shouldAssertFunction(level, name) {\n if (!shouldAssert(level)) {\n assertionCache[name] = { level, assertion: Debug2[name] };\n Debug2[name] = noop;\n return false;\n }\n return true;\n }\n function fail(message, stackCrawlMark) {\n debugger;\n const e = new Error(message ? `Debug Failure. ${message}` : \"Debug Failure.\");\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, stackCrawlMark || fail);\n }\n throw e;\n }\n Debug2.fail = fail;\n function failBadSyntaxKind(node, message, stackCrawlMark) {\n return fail(\n `${message || \"Unexpected node.\"}\\r\nNode ${formatSyntaxKind(node.kind)} was unexpected.`,\n stackCrawlMark || failBadSyntaxKind\n );\n }\n Debug2.failBadSyntaxKind = failBadSyntaxKind;\n function assert(expression, message, verboseDebugInfo, stackCrawlMark) {\n if (!expression) {\n message = message ? `False expression: ${message}` : \"False expression.\";\n if (verboseDebugInfo) {\n message += \"\\r\\nVerbose Debug Information: \" + (typeof verboseDebugInfo === \"string\" ? verboseDebugInfo : verboseDebugInfo());\n }\n fail(message, stackCrawlMark || assert);\n }\n }\n Debug2.assert = assert;\n function assertEqual(a, b, msg, msg2, stackCrawlMark) {\n if (a !== b) {\n const message = msg ? msg2 ? `${msg} ${msg2}` : msg : \"\";\n fail(`Expected ${a} === ${b}. ${message}`, stackCrawlMark || assertEqual);\n }\n }\n Debug2.assertEqual = assertEqual;\n function assertLessThan(a, b, msg, stackCrawlMark) {\n if (a >= b) {\n fail(`Expected ${a} < ${b}. ${msg || \"\"}`, stackCrawlMark || assertLessThan);\n }\n }\n Debug2.assertLessThan = assertLessThan;\n function assertLessThanOrEqual(a, b, stackCrawlMark) {\n if (a > b) {\n fail(`Expected ${a} <= ${b}`, stackCrawlMark || assertLessThanOrEqual);\n }\n }\n Debug2.assertLessThanOrEqual = assertLessThanOrEqual;\n function assertGreaterThanOrEqual(a, b, stackCrawlMark) {\n if (a < b) {\n fail(`Expected ${a} >= ${b}`, stackCrawlMark || assertGreaterThanOrEqual);\n }\n }\n Debug2.assertGreaterThanOrEqual = assertGreaterThanOrEqual;\n function assertIsDefined(value, message, stackCrawlMark) {\n if (value === void 0 || value === null) {\n fail(message, stackCrawlMark || assertIsDefined);\n }\n }\n Debug2.assertIsDefined = assertIsDefined;\n function checkDefined(value, message, stackCrawlMark) {\n assertIsDefined(value, message, stackCrawlMark || checkDefined);\n return value;\n }\n Debug2.checkDefined = checkDefined;\n function assertEachIsDefined(value, message, stackCrawlMark) {\n for (const v of value) {\n assertIsDefined(v, message, stackCrawlMark || assertEachIsDefined);\n }\n }\n Debug2.assertEachIsDefined = assertEachIsDefined;\n function checkEachDefined(value, message, stackCrawlMark) {\n assertEachIsDefined(value, message, stackCrawlMark || checkEachDefined);\n return value;\n }\n Debug2.checkEachDefined = checkEachDefined;\n function assertNever(member, message = \"Illegal value:\", stackCrawlMark) {\n const detail = typeof member === \"object\" && hasProperty(member, \"kind\") && hasProperty(member, \"pos\") ? \"SyntaxKind: \" + formatSyntaxKind(member.kind) : JSON.stringify(member);\n return fail(`${message} ${detail}`, stackCrawlMark || assertNever);\n }\n Debug2.assertNever = assertNever;\n function assertEachNode(nodes, test, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertEachNode\")) {\n assert(\n test === void 0 || every(nodes, test),\n message || \"Unexpected node.\",\n () => `Node array did not pass test '${getFunctionName(test)}'.`,\n stackCrawlMark || assertEachNode\n );\n }\n }\n Debug2.assertEachNode = assertEachNode;\n function assertNode(node, test, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertNode\")) {\n assert(\n node !== void 0 && (test === void 0 || test(node)),\n message || \"Unexpected node.\",\n () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} did not pass test '${getFunctionName(test)}'.`,\n stackCrawlMark || assertNode\n );\n }\n }\n Debug2.assertNode = assertNode;\n function assertNotNode(node, test, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertNotNode\")) {\n assert(\n node === void 0 || test === void 0 || !test(node),\n message || \"Unexpected node.\",\n () => `Node ${formatSyntaxKind(node.kind)} should not have passed test '${getFunctionName(test)}'.`,\n stackCrawlMark || assertNotNode\n );\n }\n }\n Debug2.assertNotNode = assertNotNode;\n function assertOptionalNode(node, test, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertOptionalNode\")) {\n assert(\n test === void 0 || node === void 0 || test(node),\n message || \"Unexpected node.\",\n () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} did not pass test '${getFunctionName(test)}'.`,\n stackCrawlMark || assertOptionalNode\n );\n }\n }\n Debug2.assertOptionalNode = assertOptionalNode;\n function assertOptionalToken(node, kind, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertOptionalToken\")) {\n assert(\n kind === void 0 || node === void 0 || node.kind === kind,\n message || \"Unexpected node.\",\n () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} was not a '${formatSyntaxKind(kind)}' token.`,\n stackCrawlMark || assertOptionalToken\n );\n }\n }\n Debug2.assertOptionalToken = assertOptionalToken;\n function assertMissingNode(node, message, stackCrawlMark) {\n if (shouldAssertFunction(1 /* Normal */, \"assertMissingNode\")) {\n assert(\n node === void 0,\n message || \"Unexpected node.\",\n () => `Node ${formatSyntaxKind(node.kind)} was unexpected'.`,\n stackCrawlMark || assertMissingNode\n );\n }\n }\n Debug2.assertMissingNode = assertMissingNode;\n function type(_value) {\n }\n Debug2.type = type;\n function getFunctionName(func) {\n if (typeof func !== \"function\") {\n return \"\";\n } else if (hasProperty(func, \"name\")) {\n return func.name;\n } else {\n const text = Function.prototype.toString.call(func);\n const match = /^function\\s+([\\w$]+)\\s*\\(/.exec(text);\n return match ? match[1] : \"\";\n }\n }\n Debug2.getFunctionName = getFunctionName;\n function formatSymbol(symbol) {\n return `{ name: ${unescapeLeadingUnderscores(symbol.escapedName)}; flags: ${formatSymbolFlags(symbol.flags)}; declarations: ${map(symbol.declarations, (node) => formatSyntaxKind(node.kind))} }`;\n }\n Debug2.formatSymbol = formatSymbol;\n function formatEnum(value = 0, enumObject, isFlags) {\n const members = getEnumMembers(enumObject);\n if (value === 0) {\n return members.length > 0 && members[0][0] === 0 ? members[0][1] : \"0\";\n }\n if (isFlags) {\n const result = [];\n let remainingFlags = value;\n for (const [enumValue, enumName] of members) {\n if (enumValue > value) {\n break;\n }\n if (enumValue !== 0 && enumValue & value) {\n result.push(enumName);\n remainingFlags &= ~enumValue;\n }\n }\n if (remainingFlags === 0) {\n return result.join(\"|\");\n }\n } else {\n for (const [enumValue, enumName] of members) {\n if (enumValue === value) {\n return enumName;\n }\n }\n }\n return value.toString();\n }\n Debug2.formatEnum = formatEnum;\n const enumMemberCache = /* @__PURE__ */ new Map();\n function getEnumMembers(enumObject) {\n const existing = enumMemberCache.get(enumObject);\n if (existing) {\n return existing;\n }\n const result = [];\n for (const name in enumObject) {\n const value = enumObject[name];\n if (typeof value === \"number\") {\n result.push([value, name]);\n }\n }\n const sorted = toSorted(result, (x, y) => compareValues(x[0], y[0]));\n enumMemberCache.set(enumObject, sorted);\n return sorted;\n }\n function formatSyntaxKind(kind) {\n return formatEnum(\n kind,\n SyntaxKind,\n /*isFlags*/\n false\n );\n }\n Debug2.formatSyntaxKind = formatSyntaxKind;\n function formatSnippetKind(kind) {\n return formatEnum(\n kind,\n SnippetKind,\n /*isFlags*/\n false\n );\n }\n Debug2.formatSnippetKind = formatSnippetKind;\n function formatScriptKind(kind) {\n return formatEnum(\n kind,\n ScriptKind,\n /*isFlags*/\n false\n );\n }\n Debug2.formatScriptKind = formatScriptKind;\n function formatNodeFlags(flags) {\n return formatEnum(\n flags,\n NodeFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatNodeFlags = formatNodeFlags;\n function formatNodeCheckFlags(flags) {\n return formatEnum(\n flags,\n NodeCheckFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatNodeCheckFlags = formatNodeCheckFlags;\n function formatModifierFlags(flags) {\n return formatEnum(\n flags,\n ModifierFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatModifierFlags = formatModifierFlags;\n function formatTransformFlags(flags) {\n return formatEnum(\n flags,\n TransformFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatTransformFlags = formatTransformFlags;\n function formatEmitFlags(flags) {\n return formatEnum(\n flags,\n EmitFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatEmitFlags = formatEmitFlags;\n function formatSymbolFlags(flags) {\n return formatEnum(\n flags,\n SymbolFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatSymbolFlags = formatSymbolFlags;\n function formatTypeFlags(flags) {\n return formatEnum(\n flags,\n TypeFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatTypeFlags = formatTypeFlags;\n function formatSignatureFlags(flags) {\n return formatEnum(\n flags,\n SignatureFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatSignatureFlags = formatSignatureFlags;\n function formatObjectFlags(flags) {\n return formatEnum(\n flags,\n ObjectFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatObjectFlags = formatObjectFlags;\n function formatFlowFlags(flags) {\n return formatEnum(\n flags,\n FlowFlags,\n /*isFlags*/\n true\n );\n }\n Debug2.formatFlowFlags = formatFlowFlags;\n function formatRelationComparisonResult(result) {\n return formatEnum(\n result,\n RelationComparisonResult,\n /*isFlags*/\n true\n );\n }\n Debug2.formatRelationComparisonResult = formatRelationComparisonResult;\n function formatCheckMode(mode) {\n return formatEnum(\n mode,\n CheckMode,\n /*isFlags*/\n true\n );\n }\n Debug2.formatCheckMode = formatCheckMode;\n function formatSignatureCheckMode(mode) {\n return formatEnum(\n mode,\n SignatureCheckMode,\n /*isFlags*/\n true\n );\n }\n Debug2.formatSignatureCheckMode = formatSignatureCheckMode;\n function formatTypeFacts(facts) {\n return formatEnum(\n facts,\n TypeFacts,\n /*isFlags*/\n true\n );\n }\n Debug2.formatTypeFacts = formatTypeFacts;\n let isDebugInfoEnabled = false;\n let flowNodeProto;\n function attachFlowNodeDebugInfoWorker(flowNode) {\n if (!(\"__debugFlowFlags\" in flowNode)) {\n Object.defineProperties(flowNode, {\n // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n __tsDebuggerDisplay: {\n value() {\n const flowHeader = this.flags & 2 /* Start */ ? \"FlowStart\" : this.flags & 4 /* BranchLabel */ ? \"FlowBranchLabel\" : this.flags & 8 /* LoopLabel */ ? \"FlowLoopLabel\" : this.flags & 16 /* Assignment */ ? \"FlowAssignment\" : this.flags & 32 /* TrueCondition */ ? \"FlowTrueCondition\" : this.flags & 64 /* FalseCondition */ ? \"FlowFalseCondition\" : this.flags & 128 /* SwitchClause */ ? \"FlowSwitchClause\" : this.flags & 256 /* ArrayMutation */ ? \"FlowArrayMutation\" : this.flags & 512 /* Call */ ? \"FlowCall\" : this.flags & 1024 /* ReduceLabel */ ? \"FlowReduceLabel\" : this.flags & 1 /* Unreachable */ ? \"FlowUnreachable\" : \"UnknownFlow\";\n const remainingFlags = this.flags & ~(2048 /* Referenced */ - 1);\n return `${flowHeader}${remainingFlags ? ` (${formatFlowFlags(remainingFlags)})` : \"\"}`;\n }\n },\n __debugFlowFlags: {\n get() {\n return formatEnum(\n this.flags,\n FlowFlags,\n /*isFlags*/\n true\n );\n }\n },\n __debugToString: {\n value() {\n return formatControlFlowGraph(this);\n }\n }\n });\n }\n }\n function attachFlowNodeDebugInfo(flowNode) {\n if (isDebugInfoEnabled) {\n if (typeof Object.setPrototypeOf === \"function\") {\n if (!flowNodeProto) {\n flowNodeProto = Object.create(Object.prototype);\n attachFlowNodeDebugInfoWorker(flowNodeProto);\n }\n Object.setPrototypeOf(flowNode, flowNodeProto);\n } else {\n attachFlowNodeDebugInfoWorker(flowNode);\n }\n }\n return flowNode;\n }\n Debug2.attachFlowNodeDebugInfo = attachFlowNodeDebugInfo;\n let nodeArrayProto;\n function attachNodeArrayDebugInfoWorker(array) {\n if (!(\"__tsDebuggerDisplay\" in array)) {\n Object.defineProperties(array, {\n __tsDebuggerDisplay: {\n value(defaultValue) {\n defaultValue = String(defaultValue).replace(/(?:,[\\s\\w]+:[^,]+)+\\]$/, \"]\");\n return `NodeArray ${defaultValue}`;\n }\n }\n });\n }\n }\n function attachNodeArrayDebugInfo(array) {\n if (isDebugInfoEnabled) {\n if (typeof Object.setPrototypeOf === \"function\") {\n if (!nodeArrayProto) {\n nodeArrayProto = Object.create(Array.prototype);\n attachNodeArrayDebugInfoWorker(nodeArrayProto);\n }\n Object.setPrototypeOf(array, nodeArrayProto);\n } else {\n attachNodeArrayDebugInfoWorker(array);\n }\n }\n }\n Debug2.attachNodeArrayDebugInfo = attachNodeArrayDebugInfo;\n function enableDebugInfo() {\n if (isDebugInfoEnabled) return;\n const weakTypeTextMap = /* @__PURE__ */ new WeakMap();\n const weakNodeTextMap = /* @__PURE__ */ new WeakMap();\n Object.defineProperties(objectAllocator.getSymbolConstructor().prototype, {\n // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n __tsDebuggerDisplay: {\n value() {\n const symbolHeader = this.flags & 33554432 /* Transient */ ? \"TransientSymbol\" : \"Symbol\";\n const remainingSymbolFlags = this.flags & ~33554432 /* Transient */;\n return `${symbolHeader} '${symbolName(this)}'${remainingSymbolFlags ? ` (${formatSymbolFlags(remainingSymbolFlags)})` : \"\"}`;\n }\n },\n __debugFlags: {\n get() {\n return formatSymbolFlags(this.flags);\n }\n }\n });\n Object.defineProperties(objectAllocator.getTypeConstructor().prototype, {\n // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n __tsDebuggerDisplay: {\n value() {\n const typeHeader = this.flags & 67359327 /* Intrinsic */ ? `IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName ? ` (${this.debugIntrinsicName})` : \"\"}` : this.flags & 98304 /* Nullable */ ? \"NullableType\" : this.flags & 384 /* StringOrNumberLiteral */ ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 2048 /* BigIntLiteral */ ? `LiteralType ${this.value.negative ? \"-\" : \"\"}${this.value.base10Value}n` : this.flags & 8192 /* UniqueESSymbol */ ? \"UniqueESSymbolType\" : this.flags & 32 /* Enum */ ? \"EnumType\" : this.flags & 1048576 /* Union */ ? \"UnionType\" : this.flags & 2097152 /* Intersection */ ? \"IntersectionType\" : this.flags & 4194304 /* Index */ ? \"IndexType\" : this.flags & 8388608 /* IndexedAccess */ ? \"IndexedAccessType\" : this.flags & 16777216 /* Conditional */ ? \"ConditionalType\" : this.flags & 33554432 /* Substitution */ ? \"SubstitutionType\" : this.flags & 262144 /* TypeParameter */ ? \"TypeParameter\" : this.flags & 524288 /* Object */ ? this.objectFlags & 3 /* ClassOrInterface */ ? \"InterfaceType\" : this.objectFlags & 4 /* Reference */ ? \"TypeReference\" : this.objectFlags & 8 /* Tuple */ ? \"TupleType\" : this.objectFlags & 16 /* Anonymous */ ? \"AnonymousType\" : this.objectFlags & 32 /* Mapped */ ? \"MappedType\" : this.objectFlags & 1024 /* ReverseMapped */ ? \"ReverseMappedType\" : this.objectFlags & 256 /* EvolvingArray */ ? \"EvolvingArrayType\" : \"ObjectType\" : \"Type\";\n const remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0;\n return `${typeHeader}${this.symbol ? ` '${symbolName(this.symbol)}'` : \"\"}${remainingObjectFlags ? ` (${formatObjectFlags(remainingObjectFlags)})` : \"\"}`;\n }\n },\n __debugFlags: {\n get() {\n return formatTypeFlags(this.flags);\n }\n },\n __debugObjectFlags: {\n get() {\n return this.flags & 524288 /* Object */ ? formatObjectFlags(this.objectFlags) : \"\";\n }\n },\n __debugTypeToString: {\n value() {\n let text = weakTypeTextMap.get(this);\n if (text === void 0) {\n text = this.checker.typeToString(this);\n weakTypeTextMap.set(this, text);\n }\n return text;\n }\n }\n });\n Object.defineProperties(objectAllocator.getSignatureConstructor().prototype, {\n __debugFlags: {\n get() {\n return formatSignatureFlags(this.flags);\n }\n },\n __debugSignatureToString: {\n value() {\n var _a;\n return (_a = this.checker) == null ? void 0 : _a.signatureToString(this);\n }\n }\n });\n const nodeConstructors = [\n objectAllocator.getNodeConstructor(),\n objectAllocator.getIdentifierConstructor(),\n objectAllocator.getTokenConstructor(),\n objectAllocator.getSourceFileConstructor()\n ];\n for (const ctor of nodeConstructors) {\n if (!hasProperty(ctor.prototype, \"__debugKind\")) {\n Object.defineProperties(ctor.prototype, {\n // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n __tsDebuggerDisplay: {\n value() {\n const nodeHeader = isGeneratedIdentifier(this) ? \"GeneratedIdentifier\" : isIdentifier(this) ? `Identifier '${idText(this)}'` : isPrivateIdentifier(this) ? `PrivateIdentifier '${idText(this)}'` : isStringLiteral(this) ? `StringLiteral ${JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + \"...\")}` : isNumericLiteral(this) ? `NumericLiteral ${this.text}` : isBigIntLiteral(this) ? `BigIntLiteral ${this.text}n` : isTypeParameterDeclaration(this) ? \"TypeParameterDeclaration\" : isParameter(this) ? \"ParameterDeclaration\" : isConstructorDeclaration(this) ? \"ConstructorDeclaration\" : isGetAccessorDeclaration(this) ? \"GetAccessorDeclaration\" : isSetAccessorDeclaration(this) ? \"SetAccessorDeclaration\" : isCallSignatureDeclaration(this) ? \"CallSignatureDeclaration\" : isConstructSignatureDeclaration(this) ? \"ConstructSignatureDeclaration\" : isIndexSignatureDeclaration(this) ? \"IndexSignatureDeclaration\" : isTypePredicateNode(this) ? \"TypePredicateNode\" : isTypeReferenceNode(this) ? \"TypeReferenceNode\" : isFunctionTypeNode(this) ? \"FunctionTypeNode\" : isConstructorTypeNode(this) ? \"ConstructorTypeNode\" : isTypeQueryNode(this) ? \"TypeQueryNode\" : isTypeLiteralNode(this) ? \"TypeLiteralNode\" : isArrayTypeNode(this) ? \"ArrayTypeNode\" : isTupleTypeNode(this) ? \"TupleTypeNode\" : isOptionalTypeNode(this) ? \"OptionalTypeNode\" : isRestTypeNode(this) ? \"RestTypeNode\" : isUnionTypeNode(this) ? \"UnionTypeNode\" : isIntersectionTypeNode(this) ? \"IntersectionTypeNode\" : isConditionalTypeNode(this) ? \"ConditionalTypeNode\" : isInferTypeNode(this) ? \"InferTypeNode\" : isParenthesizedTypeNode(this) ? \"ParenthesizedTypeNode\" : isThisTypeNode(this) ? \"ThisTypeNode\" : isTypeOperatorNode(this) ? \"TypeOperatorNode\" : isIndexedAccessTypeNode(this) ? \"IndexedAccessTypeNode\" : isMappedTypeNode(this) ? \"MappedTypeNode\" : isLiteralTypeNode(this) ? \"LiteralTypeNode\" : isNamedTupleMember(this) ? \"NamedTupleMember\" : isImportTypeNode(this) ? \"ImportTypeNode\" : formatSyntaxKind(this.kind);\n return `${nodeHeader}${this.flags ? ` (${formatNodeFlags(this.flags)})` : \"\"}`;\n }\n },\n __debugKind: {\n get() {\n return formatSyntaxKind(this.kind);\n }\n },\n __debugNodeFlags: {\n get() {\n return formatNodeFlags(this.flags);\n }\n },\n __debugModifierFlags: {\n get() {\n return formatModifierFlags(getEffectiveModifierFlagsNoCache(this));\n }\n },\n __debugTransformFlags: {\n get() {\n return formatTransformFlags(this.transformFlags);\n }\n },\n __debugIsParseTreeNode: {\n get() {\n return isParseTreeNode(this);\n }\n },\n __debugEmitFlags: {\n get() {\n return formatEmitFlags(getEmitFlags(this));\n }\n },\n __debugGetText: {\n value(includeTrivia) {\n if (nodeIsSynthesized(this)) return \"\";\n let text = weakNodeTextMap.get(this);\n if (text === void 0) {\n const parseNode = getParseTreeNode(this);\n const sourceFile = parseNode && getSourceFileOfNode(parseNode);\n text = sourceFile ? getSourceTextOfNodeFromSourceFile(sourceFile, parseNode, includeTrivia) : \"\";\n weakNodeTextMap.set(this, text);\n }\n return text;\n }\n }\n });\n }\n }\n isDebugInfoEnabled = true;\n }\n Debug2.enableDebugInfo = enableDebugInfo;\n function formatVariance(varianceFlags) {\n const variance = varianceFlags & 7 /* VarianceMask */;\n let result = variance === 0 /* Invariant */ ? \"in out\" : variance === 3 /* Bivariant */ ? \"[bivariant]\" : variance === 2 /* Contravariant */ ? \"in\" : variance === 1 /* Covariant */ ? \"out\" : variance === 4 /* Independent */ ? \"[independent]\" : \"\";\n if (varianceFlags & 8 /* Unmeasurable */) {\n result += \" (unmeasurable)\";\n } else if (varianceFlags & 16 /* Unreliable */) {\n result += \" (unreliable)\";\n }\n return result;\n }\n Debug2.formatVariance = formatVariance;\n class DebugTypeMapper {\n __debugToString() {\n var _a;\n type(this);\n switch (this.kind) {\n case 3 /* Function */:\n return ((_a = this.debugInfo) == null ? void 0 : _a.call(this)) || \"(function mapper)\";\n case 0 /* Simple */:\n return `${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;\n case 1 /* Array */:\n return zipWith(\n this.sources,\n this.targets || map(this.sources, () => \"any\"),\n (s, t) => `${s.__debugTypeToString()} -> ${typeof t === \"string\" ? t : t.__debugTypeToString()}`\n ).join(\", \");\n case 2 /* Deferred */:\n return zipWith(\n this.sources,\n this.targets,\n (s, t) => `${s.__debugTypeToString()} -> ${t().__debugTypeToString()}`\n ).join(\", \");\n case 5 /* Merged */:\n case 4 /* Composite */:\n return `m1: ${this.mapper1.__debugToString().split(\"\\n\").join(\"\\n \")}\nm2: ${this.mapper2.__debugToString().split(\"\\n\").join(\"\\n \")}`;\n default:\n return assertNever(this);\n }\n }\n }\n Debug2.DebugTypeMapper = DebugTypeMapper;\n function attachDebugPrototypeIfDebug(mapper) {\n if (Debug2.isDebugging) {\n return Object.setPrototypeOf(mapper, DebugTypeMapper.prototype);\n }\n return mapper;\n }\n Debug2.attachDebugPrototypeIfDebug = attachDebugPrototypeIfDebug;\n function printControlFlowGraph(flowNode) {\n return console.log(formatControlFlowGraph(flowNode));\n }\n Debug2.printControlFlowGraph = printControlFlowGraph;\n function formatControlFlowGraph(flowNode) {\n let nextDebugFlowId = -1;\n function getDebugFlowNodeId(f) {\n if (!f.id) {\n f.id = nextDebugFlowId;\n nextDebugFlowId--;\n }\n return f.id;\n }\n let BoxCharacter;\n ((BoxCharacter2) => {\n BoxCharacter2[\"lr\"] = \"\\u2500\";\n BoxCharacter2[\"ud\"] = \"\\u2502\";\n BoxCharacter2[\"dr\"] = \"\\u256D\";\n BoxCharacter2[\"dl\"] = \"\\u256E\";\n BoxCharacter2[\"ul\"] = \"\\u256F\";\n BoxCharacter2[\"ur\"] = \"\\u2570\";\n BoxCharacter2[\"udr\"] = \"\\u251C\";\n BoxCharacter2[\"udl\"] = \"\\u2524\";\n BoxCharacter2[\"dlr\"] = \"\\u252C\";\n BoxCharacter2[\"ulr\"] = \"\\u2534\";\n BoxCharacter2[\"udlr\"] = \"\\u256B\";\n })(BoxCharacter || (BoxCharacter = {}));\n let Connection;\n ((Connection2) => {\n Connection2[Connection2[\"None\"] = 0] = \"None\";\n Connection2[Connection2[\"Up\"] = 1] = \"Up\";\n Connection2[Connection2[\"Down\"] = 2] = \"Down\";\n Connection2[Connection2[\"Left\"] = 4] = \"Left\";\n Connection2[Connection2[\"Right\"] = 8] = \"Right\";\n Connection2[Connection2[\"UpDown\"] = 3] = \"UpDown\";\n Connection2[Connection2[\"LeftRight\"] = 12] = \"LeftRight\";\n Connection2[Connection2[\"UpLeft\"] = 5] = \"UpLeft\";\n Connection2[Connection2[\"UpRight\"] = 9] = \"UpRight\";\n Connection2[Connection2[\"DownLeft\"] = 6] = \"DownLeft\";\n Connection2[Connection2[\"DownRight\"] = 10] = \"DownRight\";\n Connection2[Connection2[\"UpDownLeft\"] = 7] = \"UpDownLeft\";\n Connection2[Connection2[\"UpDownRight\"] = 11] = \"UpDownRight\";\n Connection2[Connection2[\"UpLeftRight\"] = 13] = \"UpLeftRight\";\n Connection2[Connection2[\"DownLeftRight\"] = 14] = \"DownLeftRight\";\n Connection2[Connection2[\"UpDownLeftRight\"] = 15] = \"UpDownLeftRight\";\n Connection2[Connection2[\"NoChildren\"] = 16] = \"NoChildren\";\n })(Connection || (Connection = {}));\n const hasAntecedentFlags = 16 /* Assignment */ | 96 /* Condition */ | 128 /* SwitchClause */ | 256 /* ArrayMutation */ | 512 /* Call */ | 1024 /* ReduceLabel */;\n const hasNodeFlags = 2 /* Start */ | 16 /* Assignment */ | 512 /* Call */ | 96 /* Condition */ | 256 /* ArrayMutation */;\n const links = /* @__PURE__ */ Object.create(\n /*o*/\n null\n );\n const nodes = [];\n const edges = [];\n const root = buildGraphNode(flowNode, /* @__PURE__ */ new Set());\n for (const node of nodes) {\n node.text = renderFlowNode(node.flowNode, node.circular);\n computeLevel(node);\n }\n const height = computeHeight(root);\n const columnWidths = computeColumnWidths(height);\n computeLanes(root, 0);\n return renderGraph();\n function isFlowSwitchClause(f) {\n return !!(f.flags & 128 /* SwitchClause */);\n }\n function hasAntecedents(f) {\n return !!(f.flags & 12 /* Label */) && !!f.antecedent;\n }\n function hasAntecedent(f) {\n return !!(f.flags & hasAntecedentFlags);\n }\n function hasNode(f) {\n return !!(f.flags & hasNodeFlags);\n }\n function getChildren(node) {\n const children = [];\n for (const edge of node.edges) {\n if (edge.source === node) {\n children.push(edge.target);\n }\n }\n return children;\n }\n function getParents(node) {\n const parents = [];\n for (const edge of node.edges) {\n if (edge.target === node) {\n parents.push(edge.source);\n }\n }\n return parents;\n }\n function buildGraphNode(flowNode2, seen) {\n const id = getDebugFlowNodeId(flowNode2);\n let graphNode = links[id];\n if (graphNode && seen.has(flowNode2)) {\n graphNode.circular = true;\n graphNode = {\n id: -1,\n flowNode: flowNode2,\n edges: [],\n text: \"\",\n lane: -1,\n endLane: -1,\n level: -1,\n circular: \"circularity\"\n };\n nodes.push(graphNode);\n return graphNode;\n }\n seen.add(flowNode2);\n if (!graphNode) {\n links[id] = graphNode = { id, flowNode: flowNode2, edges: [], text: \"\", lane: -1, endLane: -1, level: -1, circular: false };\n nodes.push(graphNode);\n if (hasAntecedents(flowNode2)) {\n for (const antecedent of flowNode2.antecedent) {\n buildGraphEdge(graphNode, antecedent, seen);\n }\n } else if (hasAntecedent(flowNode2)) {\n buildGraphEdge(graphNode, flowNode2.antecedent, seen);\n }\n }\n seen.delete(flowNode2);\n return graphNode;\n }\n function buildGraphEdge(source, antecedent, seen) {\n const target = buildGraphNode(antecedent, seen);\n const edge = { source, target };\n edges.push(edge);\n source.edges.push(edge);\n target.edges.push(edge);\n }\n function computeLevel(node) {\n if (node.level !== -1) {\n return node.level;\n }\n let level = 0;\n for (const parent2 of getParents(node)) {\n level = Math.max(level, computeLevel(parent2) + 1);\n }\n return node.level = level;\n }\n function computeHeight(node) {\n let height2 = 0;\n for (const child of getChildren(node)) {\n height2 = Math.max(height2, computeHeight(child));\n }\n return height2 + 1;\n }\n function computeColumnWidths(height2) {\n const columns = fill(Array(height2), 0);\n for (const node of nodes) {\n columns[node.level] = Math.max(columns[node.level], node.text.length);\n }\n return columns;\n }\n function computeLanes(node, lane) {\n if (node.lane === -1) {\n node.lane = lane;\n node.endLane = lane;\n const children = getChildren(node);\n for (let i = 0; i < children.length; i++) {\n if (i > 0) lane++;\n const child = children[i];\n computeLanes(child, lane);\n if (child.endLane > node.endLane) {\n lane = child.endLane;\n }\n }\n node.endLane = lane;\n }\n }\n function getHeader2(flags) {\n if (flags & 2 /* Start */) return \"Start\";\n if (flags & 4 /* BranchLabel */) return \"Branch\";\n if (flags & 8 /* LoopLabel */) return \"Loop\";\n if (flags & 16 /* Assignment */) return \"Assignment\";\n if (flags & 32 /* TrueCondition */) return \"True\";\n if (flags & 64 /* FalseCondition */) return \"False\";\n if (flags & 128 /* SwitchClause */) return \"SwitchClause\";\n if (flags & 256 /* ArrayMutation */) return \"ArrayMutation\";\n if (flags & 512 /* Call */) return \"Call\";\n if (flags & 1024 /* ReduceLabel */) return \"ReduceLabel\";\n if (flags & 1 /* Unreachable */) return \"Unreachable\";\n throw new Error();\n }\n function getNodeText(node) {\n const sourceFile = getSourceFileOfNode(node);\n return getSourceTextOfNodeFromSourceFile(\n sourceFile,\n node,\n /*includeTrivia*/\n false\n );\n }\n function renderFlowNode(flowNode2, circular) {\n let text = getHeader2(flowNode2.flags);\n if (circular) {\n text = `${text}#${getDebugFlowNodeId(flowNode2)}`;\n }\n if (isFlowSwitchClause(flowNode2)) {\n const clauses = [];\n const { switchStatement, clauseStart, clauseEnd } = flowNode2.node;\n for (let i = clauseStart; i < clauseEnd; i++) {\n const clause = switchStatement.caseBlock.clauses[i];\n if (isDefaultClause(clause)) {\n clauses.push(\"default\");\n } else {\n clauses.push(getNodeText(clause.expression));\n }\n }\n text += ` (${clauses.join(\", \")})`;\n } else if (hasNode(flowNode2)) {\n if (flowNode2.node) {\n text += ` (${getNodeText(flowNode2.node)})`;\n }\n }\n return circular === \"circularity\" ? `Circular(${text})` : text;\n }\n function renderGraph() {\n const columnCount = columnWidths.length;\n const laneCount = maxBy(nodes, 0, (n) => n.lane) + 1;\n const lanes = fill(Array(laneCount), \"\");\n const grid = columnWidths.map(() => Array(laneCount));\n const connectors = columnWidths.map(() => fill(Array(laneCount), 0));\n for (const node of nodes) {\n grid[node.level][node.lane] = node;\n const children = getChildren(node);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n let connector = 8 /* Right */;\n if (child.lane === node.lane) connector |= 4 /* Left */;\n if (i > 0) connector |= 1 /* Up */;\n if (i < children.length - 1) connector |= 2 /* Down */;\n connectors[node.level][child.lane] |= connector;\n }\n if (children.length === 0) {\n connectors[node.level][node.lane] |= 16 /* NoChildren */;\n }\n const parents = getParents(node);\n for (let i = 0; i < parents.length; i++) {\n const parent2 = parents[i];\n let connector = 4 /* Left */;\n if (i > 0) connector |= 1 /* Up */;\n if (i < parents.length - 1) connector |= 2 /* Down */;\n connectors[node.level - 1][parent2.lane] |= connector;\n }\n }\n for (let column = 0; column < columnCount; column++) {\n for (let lane = 0; lane < laneCount; lane++) {\n const left = column > 0 ? connectors[column - 1][lane] : 0;\n const above = lane > 0 ? connectors[column][lane - 1] : 0;\n let connector = connectors[column][lane];\n if (!connector) {\n if (left & 8 /* Right */) connector |= 12 /* LeftRight */;\n if (above & 2 /* Down */) connector |= 3 /* UpDown */;\n connectors[column][lane] = connector;\n }\n }\n }\n for (let column = 0; column < columnCount; column++) {\n for (let lane = 0; lane < lanes.length; lane++) {\n const connector = connectors[column][lane];\n const fill2 = connector & 4 /* Left */ ? \"\\u2500\" /* lr */ : \" \";\n const node = grid[column][lane];\n if (!node) {\n if (column < columnCount - 1) {\n writeLane(lane, repeat(fill2, columnWidths[column] + 1));\n }\n } else {\n writeLane(lane, node.text);\n if (column < columnCount - 1) {\n writeLane(lane, \" \");\n writeLane(lane, repeat(fill2, columnWidths[column] - node.text.length));\n }\n }\n writeLane(lane, getBoxCharacter(connector));\n writeLane(lane, connector & 8 /* Right */ && column < columnCount - 1 && !grid[column + 1][lane] ? \"\\u2500\" /* lr */ : \" \");\n }\n }\n return `\n${lanes.join(\"\\n\")}\n`;\n function writeLane(lane, text) {\n lanes[lane] += text;\n }\n }\n function getBoxCharacter(connector) {\n switch (connector) {\n case 3 /* UpDown */:\n return \"\\u2502\" /* ud */;\n case 12 /* LeftRight */:\n return \"\\u2500\" /* lr */;\n case 5 /* UpLeft */:\n return \"\\u256F\" /* ul */;\n case 9 /* UpRight */:\n return \"\\u2570\" /* ur */;\n case 6 /* DownLeft */:\n return \"\\u256E\" /* dl */;\n case 10 /* DownRight */:\n return \"\\u256D\" /* dr */;\n case 7 /* UpDownLeft */:\n return \"\\u2524\" /* udl */;\n case 11 /* UpDownRight */:\n return \"\\u251C\" /* udr */;\n case 13 /* UpLeftRight */:\n return \"\\u2534\" /* ulr */;\n case 14 /* DownLeftRight */:\n return \"\\u252C\" /* dlr */;\n case 15 /* UpDownLeftRight */:\n return \"\\u256B\" /* udlr */;\n }\n return \" \";\n }\n function fill(array, value) {\n if (array.fill) {\n array.fill(value);\n } else {\n for (let i = 0; i < array.length; i++) {\n array[i] = value;\n }\n }\n return array;\n }\n function repeat(ch, length2) {\n if (ch.repeat) {\n return length2 > 0 ? ch.repeat(length2) : \"\";\n }\n let s = \"\";\n while (s.length < length2) {\n s += ch;\n }\n return s;\n }\n }\n Debug2.formatControlFlowGraph = formatControlFlowGraph;\n})(Debug || (Debug = {}));\n\n// src/compiler/semver.ts\nvar versionRegExp = /^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i;\nvar prereleaseRegExp = /^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i;\nvar prereleasePartRegExp = /^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)$/i;\nvar buildRegExp = /^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i;\nvar buildPartRegExp = /^[a-z0-9-]+$/i;\nvar numericIdentifierRegExp = /^(?:0|[1-9]\\d*)$/;\nvar _Version = class _Version {\n constructor(major, minor = 0, patch = 0, prerelease = \"\", build2 = \"\") {\n if (typeof major === \"string\") {\n const result = Debug.checkDefined(tryParseComponents(major), \"Invalid version\");\n ({ major, minor, patch, prerelease, build: build2 } = result);\n }\n Debug.assert(major >= 0, \"Invalid argument: major\");\n Debug.assert(minor >= 0, \"Invalid argument: minor\");\n Debug.assert(patch >= 0, \"Invalid argument: patch\");\n const prereleaseArray = prerelease ? isArray(prerelease) ? prerelease : prerelease.split(\".\") : emptyArray;\n const buildArray = build2 ? isArray(build2) ? build2 : build2.split(\".\") : emptyArray;\n Debug.assert(every(prereleaseArray, (s) => prereleasePartRegExp.test(s)), \"Invalid argument: prerelease\");\n Debug.assert(every(buildArray, (s) => buildPartRegExp.test(s)), \"Invalid argument: build\");\n this.major = major;\n this.minor = minor;\n this.patch = patch;\n this.prerelease = prereleaseArray;\n this.build = buildArray;\n }\n static tryParse(text) {\n const result = tryParseComponents(text);\n if (!result) return void 0;\n const { major, minor, patch, prerelease, build: build2 } = result;\n return new _Version(major, minor, patch, prerelease, build2);\n }\n compareTo(other) {\n if (this === other) return 0 /* EqualTo */;\n if (other === void 0) return 1 /* GreaterThan */;\n return compareValues(this.major, other.major) || compareValues(this.minor, other.minor) || compareValues(this.patch, other.patch) || comparePrereleaseIdentifiers(this.prerelease, other.prerelease);\n }\n increment(field) {\n switch (field) {\n case \"major\":\n return new _Version(this.major + 1, 0, 0);\n case \"minor\":\n return new _Version(this.major, this.minor + 1, 0);\n case \"patch\":\n return new _Version(this.major, this.minor, this.patch + 1);\n default:\n return Debug.assertNever(field);\n }\n }\n with(fields) {\n const {\n major = this.major,\n minor = this.minor,\n patch = this.patch,\n prerelease = this.prerelease,\n build: build2 = this.build\n } = fields;\n return new _Version(major, minor, patch, prerelease, build2);\n }\n toString() {\n let result = `${this.major}.${this.minor}.${this.patch}`;\n if (some(this.prerelease)) result += `-${this.prerelease.join(\".\")}`;\n if (some(this.build)) result += `+${this.build.join(\".\")}`;\n return result;\n }\n};\n_Version.zero = new _Version(0, 0, 0, [\"0\"]);\nvar Version = _Version;\nfunction tryParseComponents(text) {\n const match = versionRegExp.exec(text);\n if (!match) return void 0;\n const [, major, minor = \"0\", patch = \"0\", prerelease = \"\", build2 = \"\"] = match;\n if (prerelease && !prereleaseRegExp.test(prerelease)) return void 0;\n if (build2 && !buildRegExp.test(build2)) return void 0;\n return {\n major: parseInt(major, 10),\n minor: parseInt(minor, 10),\n patch: parseInt(patch, 10),\n prerelease,\n build: build2\n };\n}\nfunction comparePrereleaseIdentifiers(left, right) {\n if (left === right) return 0 /* EqualTo */;\n if (left.length === 0) return right.length === 0 ? 0 /* EqualTo */ : 1 /* GreaterThan */;\n if (right.length === 0) return -1 /* LessThan */;\n const length2 = Math.min(left.length, right.length);\n for (let i = 0; i < length2; i++) {\n const leftIdentifier = left[i];\n const rightIdentifier = right[i];\n if (leftIdentifier === rightIdentifier) continue;\n const leftIsNumeric = numericIdentifierRegExp.test(leftIdentifier);\n const rightIsNumeric = numericIdentifierRegExp.test(rightIdentifier);\n if (leftIsNumeric || rightIsNumeric) {\n if (leftIsNumeric !== rightIsNumeric) return leftIsNumeric ? -1 /* LessThan */ : 1 /* GreaterThan */;\n const result = compareValues(+leftIdentifier, +rightIdentifier);\n if (result) return result;\n } else {\n const result = compareStringsCaseSensitive(leftIdentifier, rightIdentifier);\n if (result) return result;\n }\n }\n return compareValues(left.length, right.length);\n}\nvar VersionRange = class _VersionRange {\n constructor(spec) {\n this._alternatives = spec ? Debug.checkDefined(parseRange(spec), \"Invalid range spec.\") : emptyArray;\n }\n static tryParse(text) {\n const sets = parseRange(text);\n if (sets) {\n const range = new _VersionRange(\"\");\n range._alternatives = sets;\n return range;\n }\n return void 0;\n }\n /**\n * Tests whether a version matches the range. This is equivalent to `satisfies(version, range, { includePrerelease: true })`.\n * in `node-semver`.\n */\n test(version2) {\n if (typeof version2 === \"string\") version2 = new Version(version2);\n return testDisjunction(version2, this._alternatives);\n }\n toString() {\n return formatDisjunction(this._alternatives);\n }\n};\nvar logicalOrRegExp = /\\|\\|/;\nvar whitespaceRegExp = /\\s+/;\nvar partialRegExp = /^([x*0]|[1-9]\\d*)(?:\\.([x*0]|[1-9]\\d*)(?:\\.([x*0]|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i;\nvar hyphenRegExp = /^\\s*([a-z0-9-+.*]+)\\s+-\\s+([a-z0-9-+.*]+)\\s*$/i;\nvar rangeRegExp = /^([~^<>=]|<=|>=)?\\s*([a-z0-9-+.*]+)$/i;\nfunction parseRange(text) {\n const alternatives = [];\n for (let range of text.trim().split(logicalOrRegExp)) {\n if (!range) continue;\n const comparators = [];\n range = range.trim();\n const match = hyphenRegExp.exec(range);\n if (match) {\n if (!parseHyphen(match[1], match[2], comparators)) return void 0;\n } else {\n for (const simple of range.split(whitespaceRegExp)) {\n const match2 = rangeRegExp.exec(simple.trim());\n if (!match2 || !parseComparator(match2[1], match2[2], comparators)) return void 0;\n }\n }\n alternatives.push(comparators);\n }\n return alternatives;\n}\nfunction parsePartial(text) {\n const match = partialRegExp.exec(text);\n if (!match) return void 0;\n const [, major, minor = \"*\", patch = \"*\", prerelease, build2] = match;\n const version2 = new Version(\n isWildcard(major) ? 0 : parseInt(major, 10),\n isWildcard(major) || isWildcard(minor) ? 0 : parseInt(minor, 10),\n isWildcard(major) || isWildcard(minor) || isWildcard(patch) ? 0 : parseInt(patch, 10),\n prerelease,\n build2\n );\n return { version: version2, major, minor, patch };\n}\nfunction parseHyphen(left, right, comparators) {\n const leftResult = parsePartial(left);\n if (!leftResult) return false;\n const rightResult = parsePartial(right);\n if (!rightResult) return false;\n if (!isWildcard(leftResult.major)) {\n comparators.push(createComparator(\">=\", leftResult.version));\n }\n if (!isWildcard(rightResult.major)) {\n comparators.push(\n isWildcard(rightResult.minor) ? createComparator(\"<\", rightResult.version.increment(\"major\")) : isWildcard(rightResult.patch) ? createComparator(\"<\", rightResult.version.increment(\"minor\")) : createComparator(\"<=\", rightResult.version)\n );\n }\n return true;\n}\nfunction parseComparator(operator, text, comparators) {\n const result = parsePartial(text);\n if (!result) return false;\n const { version: version2, major, minor, patch } = result;\n if (!isWildcard(major)) {\n switch (operator) {\n case \"~\":\n comparators.push(createComparator(\">=\", version2));\n comparators.push(createComparator(\n \"<\",\n version2.increment(\n isWildcard(minor) ? \"major\" : \"minor\"\n )\n ));\n break;\n case \"^\":\n comparators.push(createComparator(\">=\", version2));\n comparators.push(createComparator(\n \"<\",\n version2.increment(\n version2.major > 0 || isWildcard(minor) ? \"major\" : version2.minor > 0 || isWildcard(patch) ? \"minor\" : \"patch\"\n )\n ));\n break;\n case \"<\":\n case \">=\":\n comparators.push(\n isWildcard(minor) || isWildcard(patch) ? createComparator(operator, version2.with({ prerelease: \"0\" })) : createComparator(operator, version2)\n );\n break;\n case \"<=\":\n case \">\":\n comparators.push(\n isWildcard(minor) ? createComparator(operator === \"<=\" ? \"<\" : \">=\", version2.increment(\"major\").with({ prerelease: \"0\" })) : isWildcard(patch) ? createComparator(operator === \"<=\" ? \"<\" : \">=\", version2.increment(\"minor\").with({ prerelease: \"0\" })) : createComparator(operator, version2)\n );\n break;\n case \"=\":\n case void 0:\n if (isWildcard(minor) || isWildcard(patch)) {\n comparators.push(createComparator(\">=\", version2.with({ prerelease: \"0\" })));\n comparators.push(createComparator(\"<\", version2.increment(isWildcard(minor) ? \"major\" : \"minor\").with({ prerelease: \"0\" })));\n } else {\n comparators.push(createComparator(\"=\", version2));\n }\n break;\n default:\n return false;\n }\n } else if (operator === \"<\" || operator === \">\") {\n comparators.push(createComparator(\"<\", Version.zero));\n }\n return true;\n}\nfunction isWildcard(part) {\n return part === \"*\" || part === \"x\" || part === \"X\";\n}\nfunction createComparator(operator, operand) {\n return { operator, operand };\n}\nfunction testDisjunction(version2, alternatives) {\n if (alternatives.length === 0) return true;\n for (const alternative of alternatives) {\n if (testAlternative(version2, alternative)) return true;\n }\n return false;\n}\nfunction testAlternative(version2, comparators) {\n for (const comparator of comparators) {\n if (!testComparator(version2, comparator.operator, comparator.operand)) return false;\n }\n return true;\n}\nfunction testComparator(version2, operator, operand) {\n const cmp = version2.compareTo(operand);\n switch (operator) {\n case \"<\":\n return cmp < 0;\n case \"<=\":\n return cmp <= 0;\n case \">\":\n return cmp > 0;\n case \">=\":\n return cmp >= 0;\n case \"=\":\n return cmp === 0;\n default:\n return Debug.assertNever(operator);\n }\n}\nfunction formatDisjunction(alternatives) {\n return map(alternatives, formatAlternative).join(\" || \") || \"*\";\n}\nfunction formatAlternative(comparators) {\n return map(comparators, formatComparator).join(\" \");\n}\nfunction formatComparator(comparator) {\n return `${comparator.operator}${comparator.operand}`;\n}\n\n// src/compiler/performanceCore.ts\nfunction tryGetPerformance() {\n if (isNodeLikeSystem()) {\n try {\n const { performance: performance2 } = require(\"perf_hooks\");\n if (performance2) {\n return {\n shouldWriteNativeEvents: false,\n performance: performance2\n };\n }\n } catch {\n }\n }\n if (typeof performance === \"object\") {\n return {\n shouldWriteNativeEvents: true,\n performance\n };\n }\n return void 0;\n}\nfunction tryGetPerformanceHooks() {\n const p = tryGetPerformance();\n if (!p) return void 0;\n const { shouldWriteNativeEvents, performance: performance2 } = p;\n const hooks = {\n shouldWriteNativeEvents,\n performance: void 0,\n performanceTime: void 0\n };\n if (typeof performance2.timeOrigin === \"number\" && typeof performance2.now === \"function\") {\n hooks.performanceTime = performance2;\n }\n if (hooks.performanceTime && typeof performance2.mark === \"function\" && typeof performance2.measure === \"function\" && typeof performance2.clearMarks === \"function\" && typeof performance2.clearMeasures === \"function\") {\n hooks.performance = performance2;\n }\n return hooks;\n}\nvar nativePerformanceHooks = tryGetPerformanceHooks();\nvar nativePerformanceTime = nativePerformanceHooks == null ? void 0 : nativePerformanceHooks.performanceTime;\nfunction tryGetNativePerformanceHooks() {\n return nativePerformanceHooks;\n}\nvar timestamp = nativePerformanceTime ? () => nativePerformanceTime.now() : Date.now;\n\n// src/compiler/_namespaces/ts.performance.ts\nvar ts_performance_exports = {};\n__export(ts_performance_exports, {\n clearMarks: () => clearMarks,\n clearMeasures: () => clearMeasures,\n createTimer: () => createTimer,\n createTimerIf: () => createTimerIf,\n disable: () => disable,\n enable: () => enable,\n forEachMark: () => forEachMark,\n forEachMeasure: () => forEachMeasure,\n getCount: () => getCount,\n getDuration: () => getDuration,\n isEnabled: () => isEnabled,\n mark: () => mark,\n measure: () => measure,\n nullTimer: () => nullTimer\n});\n\n// src/compiler/performance.ts\nvar perfHooks;\nvar performanceImpl;\nfunction createTimerIf(condition, measureName, startMarkName, endMarkName) {\n return condition ? createTimer(measureName, startMarkName, endMarkName) : nullTimer;\n}\nfunction createTimer(measureName, startMarkName, endMarkName) {\n let enterCount = 0;\n return {\n enter,\n exit\n };\n function enter() {\n if (++enterCount === 1) {\n mark(startMarkName);\n }\n }\n function exit() {\n if (--enterCount === 0) {\n mark(endMarkName);\n measure(measureName, startMarkName, endMarkName);\n } else if (enterCount < 0) {\n Debug.fail(\"enter/exit count does not match.\");\n }\n }\n}\nvar nullTimer = { enter: noop, exit: noop };\nvar enabled = false;\nvar timeorigin = timestamp();\nvar marks = /* @__PURE__ */ new Map();\nvar counts = /* @__PURE__ */ new Map();\nvar durations = /* @__PURE__ */ new Map();\nfunction mark(markName) {\n if (enabled) {\n const count = counts.get(markName) ?? 0;\n counts.set(markName, count + 1);\n marks.set(markName, timestamp());\n performanceImpl == null ? void 0 : performanceImpl.mark(markName);\n if (typeof onProfilerEvent === \"function\") {\n onProfilerEvent(markName);\n }\n }\n}\nfunction measure(measureName, startMarkName, endMarkName) {\n if (enabled) {\n const end = (endMarkName !== void 0 ? marks.get(endMarkName) : void 0) ?? timestamp();\n const start = (startMarkName !== void 0 ? marks.get(startMarkName) : void 0) ?? timeorigin;\n const previousDuration = durations.get(measureName) || 0;\n durations.set(measureName, previousDuration + (end - start));\n performanceImpl == null ? void 0 : performanceImpl.measure(measureName, startMarkName, endMarkName);\n }\n}\nfunction getCount(markName) {\n return counts.get(markName) || 0;\n}\nfunction getDuration(measureName) {\n return durations.get(measureName) || 0;\n}\nfunction forEachMeasure(cb) {\n durations.forEach((duration, measureName) => cb(measureName, duration));\n}\nfunction forEachMark(cb) {\n marks.forEach((_time, markName) => cb(markName));\n}\nfunction clearMeasures(name) {\n if (name !== void 0) durations.delete(name);\n else durations.clear();\n performanceImpl == null ? void 0 : performanceImpl.clearMeasures(name);\n}\nfunction clearMarks(name) {\n if (name !== void 0) {\n counts.delete(name);\n marks.delete(name);\n } else {\n counts.clear();\n marks.clear();\n }\n performanceImpl == null ? void 0 : performanceImpl.clearMarks(name);\n}\nfunction isEnabled() {\n return enabled;\n}\nfunction enable(system = sys) {\n var _a;\n if (!enabled) {\n enabled = true;\n perfHooks || (perfHooks = tryGetNativePerformanceHooks());\n if (perfHooks == null ? void 0 : perfHooks.performance) {\n timeorigin = perfHooks.performance.timeOrigin;\n if (perfHooks.shouldWriteNativeEvents || ((_a = system == null ? void 0 : system.cpuProfilingEnabled) == null ? void 0 : _a.call(system)) || (system == null ? void 0 : system.debugMode)) {\n performanceImpl = perfHooks.performance;\n }\n }\n }\n return true;\n}\nfunction disable() {\n if (enabled) {\n marks.clear();\n counts.clear();\n durations.clear();\n performanceImpl = void 0;\n enabled = false;\n }\n}\n\n// src/compiler/tracing.ts\nvar tracing;\nvar tracingEnabled;\n((tracingEnabled2) => {\n let fs;\n let traceCount = 0;\n let traceFd = 0;\n let mode;\n const typeCatalog = [];\n let legendPath;\n const legend = [];\n function startTracing2(tracingMode, traceDir, configFilePath) {\n Debug.assert(!tracing, \"Tracing already started\");\n if (fs === void 0) {\n try {\n fs = require(\"fs\");\n } catch (e) {\n throw new Error(`tracing requires having fs\n(original error: ${e.message || e})`);\n }\n }\n mode = tracingMode;\n typeCatalog.length = 0;\n if (legendPath === void 0) {\n legendPath = combinePaths(traceDir, \"legend.json\");\n }\n if (!fs.existsSync(traceDir)) {\n fs.mkdirSync(traceDir, { recursive: true });\n }\n const countPart = mode === \"build\" ? `.${process.pid}-${++traceCount}` : mode === \"server\" ? `.${process.pid}` : ``;\n const tracePath = combinePaths(traceDir, `trace${countPart}.json`);\n const typesPath = combinePaths(traceDir, `types${countPart}.json`);\n legend.push({\n configFilePath,\n tracePath,\n typesPath\n });\n traceFd = fs.openSync(tracePath, \"w\");\n tracing = tracingEnabled2;\n const meta = { cat: \"__metadata\", ph: \"M\", ts: 1e3 * timestamp(), pid: 1, tid: 1 };\n fs.writeSync(\n traceFd,\n \"[\\n\" + [{ name: \"process_name\", args: { name: \"tsc\" }, ...meta }, { name: \"thread_name\", args: { name: \"Main\" }, ...meta }, { name: \"TracingStartedInBrowser\", ...meta, cat: \"disabled-by-default-devtools.timeline\" }].map((v) => JSON.stringify(v)).join(\",\\n\")\n );\n }\n tracingEnabled2.startTracing = startTracing2;\n function stopTracing() {\n Debug.assert(tracing, \"Tracing is not in progress\");\n Debug.assert(!!typeCatalog.length === (mode !== \"server\"));\n fs.writeSync(traceFd, `\n]\n`);\n fs.closeSync(traceFd);\n tracing = void 0;\n if (typeCatalog.length) {\n dumpTypes(typeCatalog);\n } else {\n legend[legend.length - 1].typesPath = void 0;\n }\n }\n tracingEnabled2.stopTracing = stopTracing;\n function recordType(type) {\n if (mode !== \"server\") {\n typeCatalog.push(type);\n }\n }\n tracingEnabled2.recordType = recordType;\n let Phase;\n ((Phase2) => {\n Phase2[\"Parse\"] = \"parse\";\n Phase2[\"Program\"] = \"program\";\n Phase2[\"Bind\"] = \"bind\";\n Phase2[\"Check\"] = \"check\";\n Phase2[\"CheckTypes\"] = \"checkTypes\";\n Phase2[\"Emit\"] = \"emit\";\n Phase2[\"Session\"] = \"session\";\n })(Phase = tracingEnabled2.Phase || (tracingEnabled2.Phase = {}));\n function instant(phase, name, args) {\n writeEvent(\"I\", phase, name, args, `\"s\":\"g\"`);\n }\n tracingEnabled2.instant = instant;\n const eventStack = [];\n function push(phase, name, args, separateBeginAndEnd = false) {\n if (separateBeginAndEnd) {\n writeEvent(\"B\", phase, name, args);\n }\n eventStack.push({ phase, name, args, time: 1e3 * timestamp(), separateBeginAndEnd });\n }\n tracingEnabled2.push = push;\n function pop(results) {\n Debug.assert(eventStack.length > 0);\n writeStackEvent(eventStack.length - 1, 1e3 * timestamp(), results);\n eventStack.length--;\n }\n tracingEnabled2.pop = pop;\n function popAll() {\n const endTime = 1e3 * timestamp();\n for (let i = eventStack.length - 1; i >= 0; i--) {\n writeStackEvent(i, endTime);\n }\n eventStack.length = 0;\n }\n tracingEnabled2.popAll = popAll;\n const sampleInterval = 1e3 * 10;\n function writeStackEvent(index, endTime, results) {\n const { phase, name, args, time, separateBeginAndEnd } = eventStack[index];\n if (separateBeginAndEnd) {\n Debug.assert(!results, \"`results` are not supported for events with `separateBeginAndEnd`\");\n writeEvent(\n \"E\",\n phase,\n name,\n args,\n /*extras*/\n void 0,\n endTime\n );\n } else if (sampleInterval - time % sampleInterval <= endTime - time) {\n writeEvent(\"X\", phase, name, { ...args, results }, `\"dur\":${endTime - time}`, time);\n }\n }\n function writeEvent(eventType, phase, name, args, extras, time = 1e3 * timestamp()) {\n if (mode === \"server\" && phase === \"checkTypes\" /* CheckTypes */) return;\n mark(\"beginTracing\");\n fs.writeSync(traceFd, `,\n{\"pid\":1,\"tid\":1,\"ph\":\"${eventType}\",\"cat\":\"${phase}\",\"ts\":${time},\"name\":\"${name}\"`);\n if (extras) fs.writeSync(traceFd, `,${extras}`);\n if (args) fs.writeSync(traceFd, `,\"args\":${JSON.stringify(args)}`);\n fs.writeSync(traceFd, `}`);\n mark(\"endTracing\");\n measure(\"Tracing\", \"beginTracing\", \"endTracing\");\n }\n function getLocation(node) {\n const file = getSourceFileOfNode(node);\n return !file ? void 0 : {\n path: file.path,\n start: indexFromOne(getLineAndCharacterOfPosition(file, node.pos)),\n end: indexFromOne(getLineAndCharacterOfPosition(file, node.end))\n };\n function indexFromOne(lc) {\n return {\n line: lc.line + 1,\n character: lc.character + 1\n };\n }\n }\n function dumpTypes(types) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;\n mark(\"beginDumpTypes\");\n const typesPath = legend[legend.length - 1].typesPath;\n const typesFd = fs.openSync(typesPath, \"w\");\n const recursionIdentityMap = /* @__PURE__ */ new Map();\n fs.writeSync(typesFd, \"[\");\n const numTypes = types.length;\n for (let i = 0; i < numTypes; i++) {\n const type = types[i];\n const objectFlags = type.objectFlags;\n const symbol = type.aliasSymbol ?? type.symbol;\n let display;\n if (objectFlags & 16 /* Anonymous */ | type.flags & 2944 /* Literal */) {\n try {\n display = (_a = type.checker) == null ? void 0 : _a.typeToString(type);\n } catch {\n display = void 0;\n }\n }\n let indexedAccessProperties = {};\n if (type.flags & 8388608 /* IndexedAccess */) {\n const indexedAccessType = type;\n indexedAccessProperties = {\n indexedAccessObjectType: (_b = indexedAccessType.objectType) == null ? void 0 : _b.id,\n indexedAccessIndexType: (_c = indexedAccessType.indexType) == null ? void 0 : _c.id\n };\n }\n let referenceProperties = {};\n if (objectFlags & 4 /* Reference */) {\n const referenceType = type;\n referenceProperties = {\n instantiatedType: (_d = referenceType.target) == null ? void 0 : _d.id,\n typeArguments: (_e = referenceType.resolvedTypeArguments) == null ? void 0 : _e.map((t) => t.id),\n referenceLocation: getLocation(referenceType.node)\n };\n }\n let conditionalProperties = {};\n if (type.flags & 16777216 /* Conditional */) {\n const conditionalType = type;\n conditionalProperties = {\n conditionalCheckType: (_f = conditionalType.checkType) == null ? void 0 : _f.id,\n conditionalExtendsType: (_g = conditionalType.extendsType) == null ? void 0 : _g.id,\n conditionalTrueType: ((_h = conditionalType.resolvedTrueType) == null ? void 0 : _h.id) ?? -1,\n conditionalFalseType: ((_i = conditionalType.resolvedFalseType) == null ? void 0 : _i.id) ?? -1\n };\n }\n let substitutionProperties = {};\n if (type.flags & 33554432 /* Substitution */) {\n const substitutionType = type;\n substitutionProperties = {\n substitutionBaseType: (_j = substitutionType.baseType) == null ? void 0 : _j.id,\n constraintType: (_k = substitutionType.constraint) == null ? void 0 : _k.id\n };\n }\n let reverseMappedProperties = {};\n if (objectFlags & 1024 /* ReverseMapped */) {\n const reverseMappedType = type;\n reverseMappedProperties = {\n reverseMappedSourceType: (_l = reverseMappedType.source) == null ? void 0 : _l.id,\n reverseMappedMappedType: (_m = reverseMappedType.mappedType) == null ? void 0 : _m.id,\n reverseMappedConstraintType: (_n = reverseMappedType.constraintType) == null ? void 0 : _n.id\n };\n }\n let evolvingArrayProperties = {};\n if (objectFlags & 256 /* EvolvingArray */) {\n const evolvingArrayType = type;\n evolvingArrayProperties = {\n evolvingArrayElementType: evolvingArrayType.elementType.id,\n evolvingArrayFinalType: (_o = evolvingArrayType.finalArrayType) == null ? void 0 : _o.id\n };\n }\n let recursionToken;\n const recursionIdentity = type.checker.getRecursionIdentity(type);\n if (recursionIdentity) {\n recursionToken = recursionIdentityMap.get(recursionIdentity);\n if (!recursionToken) {\n recursionToken = recursionIdentityMap.size;\n recursionIdentityMap.set(recursionIdentity, recursionToken);\n }\n }\n const descriptor = {\n id: type.id,\n intrinsicName: type.intrinsicName,\n symbolName: (symbol == null ? void 0 : symbol.escapedName) && unescapeLeadingUnderscores(symbol.escapedName),\n recursionId: recursionToken,\n isTuple: objectFlags & 8 /* Tuple */ ? true : void 0,\n unionTypes: type.flags & 1048576 /* Union */ ? (_p = type.types) == null ? void 0 : _p.map((t) => t.id) : void 0,\n intersectionTypes: type.flags & 2097152 /* Intersection */ ? type.types.map((t) => t.id) : void 0,\n aliasTypeArguments: (_q = type.aliasTypeArguments) == null ? void 0 : _q.map((t) => t.id),\n keyofType: type.flags & 4194304 /* Index */ ? (_r = type.type) == null ? void 0 : _r.id : void 0,\n ...indexedAccessProperties,\n ...referenceProperties,\n ...conditionalProperties,\n ...substitutionProperties,\n ...reverseMappedProperties,\n ...evolvingArrayProperties,\n destructuringPattern: getLocation(type.pattern),\n firstDeclaration: getLocation((_s = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _s[0]),\n flags: Debug.formatTypeFlags(type.flags).split(\"|\"),\n display\n };\n fs.writeSync(typesFd, JSON.stringify(descriptor));\n if (i < numTypes - 1) {\n fs.writeSync(typesFd, \",\\n\");\n }\n }\n fs.writeSync(typesFd, \"]\\n\");\n fs.closeSync(typesFd);\n mark(\"endDumpTypes\");\n measure(\"Dump types\", \"beginDumpTypes\", \"endDumpTypes\");\n }\n function dumpLegend() {\n if (!legendPath) {\n return;\n }\n fs.writeFileSync(legendPath, JSON.stringify(legend));\n }\n tracingEnabled2.dumpLegend = dumpLegend;\n})(tracingEnabled || (tracingEnabled = {}));\nvar startTracing = tracingEnabled.startTracing;\nvar dumpTracingLegend = tracingEnabled.dumpLegend;\n\n// src/compiler/types.ts\nvar SyntaxKind = /* @__PURE__ */ ((SyntaxKind5) => {\n SyntaxKind5[SyntaxKind5[\"Unknown\"] = 0] = \"Unknown\";\n SyntaxKind5[SyntaxKind5[\"EndOfFileToken\"] = 1] = \"EndOfFileToken\";\n SyntaxKind5[SyntaxKind5[\"SingleLineCommentTrivia\"] = 2] = \"SingleLineCommentTrivia\";\n SyntaxKind5[SyntaxKind5[\"MultiLineCommentTrivia\"] = 3] = \"MultiLineCommentTrivia\";\n SyntaxKind5[SyntaxKind5[\"NewLineTrivia\"] = 4] = \"NewLineTrivia\";\n SyntaxKind5[SyntaxKind5[\"WhitespaceTrivia\"] = 5] = \"WhitespaceTrivia\";\n SyntaxKind5[SyntaxKind5[\"ShebangTrivia\"] = 6] = \"ShebangTrivia\";\n SyntaxKind5[SyntaxKind5[\"ConflictMarkerTrivia\"] = 7] = \"ConflictMarkerTrivia\";\n SyntaxKind5[SyntaxKind5[\"NonTextFileMarkerTrivia\"] = 8] = \"NonTextFileMarkerTrivia\";\n SyntaxKind5[SyntaxKind5[\"NumericLiteral\"] = 9] = \"NumericLiteral\";\n SyntaxKind5[SyntaxKind5[\"BigIntLiteral\"] = 10] = \"BigIntLiteral\";\n SyntaxKind5[SyntaxKind5[\"StringLiteral\"] = 11] = \"StringLiteral\";\n SyntaxKind5[SyntaxKind5[\"JsxText\"] = 12] = \"JsxText\";\n SyntaxKind5[SyntaxKind5[\"JsxTextAllWhiteSpaces\"] = 13] = \"JsxTextAllWhiteSpaces\";\n SyntaxKind5[SyntaxKind5[\"RegularExpressionLiteral\"] = 14] = \"RegularExpressionLiteral\";\n SyntaxKind5[SyntaxKind5[\"NoSubstitutionTemplateLiteral\"] = 15] = \"NoSubstitutionTemplateLiteral\";\n SyntaxKind5[SyntaxKind5[\"TemplateHead\"] = 16] = \"TemplateHead\";\n SyntaxKind5[SyntaxKind5[\"TemplateMiddle\"] = 17] = \"TemplateMiddle\";\n SyntaxKind5[SyntaxKind5[\"TemplateTail\"] = 18] = \"TemplateTail\";\n SyntaxKind5[SyntaxKind5[\"OpenBraceToken\"] = 19] = \"OpenBraceToken\";\n SyntaxKind5[SyntaxKind5[\"CloseBraceToken\"] = 20] = \"CloseBraceToken\";\n SyntaxKind5[SyntaxKind5[\"OpenParenToken\"] = 21] = \"OpenParenToken\";\n SyntaxKind5[SyntaxKind5[\"CloseParenToken\"] = 22] = \"CloseParenToken\";\n SyntaxKind5[SyntaxKind5[\"OpenBracketToken\"] = 23] = \"OpenBracketToken\";\n SyntaxKind5[SyntaxKind5[\"CloseBracketToken\"] = 24] = \"CloseBracketToken\";\n SyntaxKind5[SyntaxKind5[\"DotToken\"] = 25] = \"DotToken\";\n SyntaxKind5[SyntaxKind5[\"DotDotDotToken\"] = 26] = \"DotDotDotToken\";\n SyntaxKind5[SyntaxKind5[\"SemicolonToken\"] = 27] = \"SemicolonToken\";\n SyntaxKind5[SyntaxKind5[\"CommaToken\"] = 28] = \"CommaToken\";\n SyntaxKind5[SyntaxKind5[\"QuestionDotToken\"] = 29] = \"QuestionDotToken\";\n SyntaxKind5[SyntaxKind5[\"LessThanToken\"] = 30] = \"LessThanToken\";\n SyntaxKind5[SyntaxKind5[\"LessThanSlashToken\"] = 31] = \"LessThanSlashToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanToken\"] = 32] = \"GreaterThanToken\";\n SyntaxKind5[SyntaxKind5[\"LessThanEqualsToken\"] = 33] = \"LessThanEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanEqualsToken\"] = 34] = \"GreaterThanEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"EqualsEqualsToken\"] = 35] = \"EqualsEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"ExclamationEqualsToken\"] = 36] = \"ExclamationEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"EqualsEqualsEqualsToken\"] = 37] = \"EqualsEqualsEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"ExclamationEqualsEqualsToken\"] = 38] = \"ExclamationEqualsEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"EqualsGreaterThanToken\"] = 39] = \"EqualsGreaterThanToken\";\n SyntaxKind5[SyntaxKind5[\"PlusToken\"] = 40] = \"PlusToken\";\n SyntaxKind5[SyntaxKind5[\"MinusToken\"] = 41] = \"MinusToken\";\n SyntaxKind5[SyntaxKind5[\"AsteriskToken\"] = 42] = \"AsteriskToken\";\n SyntaxKind5[SyntaxKind5[\"AsteriskAsteriskToken\"] = 43] = \"AsteriskAsteriskToken\";\n SyntaxKind5[SyntaxKind5[\"SlashToken\"] = 44] = \"SlashToken\";\n SyntaxKind5[SyntaxKind5[\"PercentToken\"] = 45] = \"PercentToken\";\n SyntaxKind5[SyntaxKind5[\"PlusPlusToken\"] = 46] = \"PlusPlusToken\";\n SyntaxKind5[SyntaxKind5[\"MinusMinusToken\"] = 47] = \"MinusMinusToken\";\n SyntaxKind5[SyntaxKind5[\"LessThanLessThanToken\"] = 48] = \"LessThanLessThanToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanToken\"] = 49] = \"GreaterThanGreaterThanToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanGreaterThanToken\"] = 50] = \"GreaterThanGreaterThanGreaterThanToken\";\n SyntaxKind5[SyntaxKind5[\"AmpersandToken\"] = 51] = \"AmpersandToken\";\n SyntaxKind5[SyntaxKind5[\"BarToken\"] = 52] = \"BarToken\";\n SyntaxKind5[SyntaxKind5[\"CaretToken\"] = 53] = \"CaretToken\";\n SyntaxKind5[SyntaxKind5[\"ExclamationToken\"] = 54] = \"ExclamationToken\";\n SyntaxKind5[SyntaxKind5[\"TildeToken\"] = 55] = \"TildeToken\";\n SyntaxKind5[SyntaxKind5[\"AmpersandAmpersandToken\"] = 56] = \"AmpersandAmpersandToken\";\n SyntaxKind5[SyntaxKind5[\"BarBarToken\"] = 57] = \"BarBarToken\";\n SyntaxKind5[SyntaxKind5[\"QuestionToken\"] = 58] = \"QuestionToken\";\n SyntaxKind5[SyntaxKind5[\"ColonToken\"] = 59] = \"ColonToken\";\n SyntaxKind5[SyntaxKind5[\"AtToken\"] = 60] = \"AtToken\";\n SyntaxKind5[SyntaxKind5[\"QuestionQuestionToken\"] = 61] = \"QuestionQuestionToken\";\n SyntaxKind5[SyntaxKind5[\"BacktickToken\"] = 62] = \"BacktickToken\";\n SyntaxKind5[SyntaxKind5[\"HashToken\"] = 63] = \"HashToken\";\n SyntaxKind5[SyntaxKind5[\"EqualsToken\"] = 64] = \"EqualsToken\";\n SyntaxKind5[SyntaxKind5[\"PlusEqualsToken\"] = 65] = \"PlusEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"MinusEqualsToken\"] = 66] = \"MinusEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"AsteriskEqualsToken\"] = 67] = \"AsteriskEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"AsteriskAsteriskEqualsToken\"] = 68] = \"AsteriskAsteriskEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"SlashEqualsToken\"] = 69] = \"SlashEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"PercentEqualsToken\"] = 70] = \"PercentEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"LessThanLessThanEqualsToken\"] = 71] = \"LessThanLessThanEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanEqualsToken\"] = 72] = \"GreaterThanGreaterThanEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanGreaterThanEqualsToken\"] = 73] = \"GreaterThanGreaterThanGreaterThanEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"AmpersandEqualsToken\"] = 74] = \"AmpersandEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"BarEqualsToken\"] = 75] = \"BarEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"BarBarEqualsToken\"] = 76] = \"BarBarEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"AmpersandAmpersandEqualsToken\"] = 77] = \"AmpersandAmpersandEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"QuestionQuestionEqualsToken\"] = 78] = \"QuestionQuestionEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"CaretEqualsToken\"] = 79] = \"CaretEqualsToken\";\n SyntaxKind5[SyntaxKind5[\"Identifier\"] = 80] = \"Identifier\";\n SyntaxKind5[SyntaxKind5[\"PrivateIdentifier\"] = 81] = \"PrivateIdentifier\";\n SyntaxKind5[SyntaxKind5[\"JSDocCommentTextToken\"] = 82] = \"JSDocCommentTextToken\";\n SyntaxKind5[SyntaxKind5[\"BreakKeyword\"] = 83] = \"BreakKeyword\";\n SyntaxKind5[SyntaxKind5[\"CaseKeyword\"] = 84] = \"CaseKeyword\";\n SyntaxKind5[SyntaxKind5[\"CatchKeyword\"] = 85] = \"CatchKeyword\";\n SyntaxKind5[SyntaxKind5[\"ClassKeyword\"] = 86] = \"ClassKeyword\";\n SyntaxKind5[SyntaxKind5[\"ConstKeyword\"] = 87] = \"ConstKeyword\";\n SyntaxKind5[SyntaxKind5[\"ContinueKeyword\"] = 88] = \"ContinueKeyword\";\n SyntaxKind5[SyntaxKind5[\"DebuggerKeyword\"] = 89] = \"DebuggerKeyword\";\n SyntaxKind5[SyntaxKind5[\"DefaultKeyword\"] = 90] = \"DefaultKeyword\";\n SyntaxKind5[SyntaxKind5[\"DeleteKeyword\"] = 91] = \"DeleteKeyword\";\n SyntaxKind5[SyntaxKind5[\"DoKeyword\"] = 92] = \"DoKeyword\";\n SyntaxKind5[SyntaxKind5[\"ElseKeyword\"] = 93] = \"ElseKeyword\";\n SyntaxKind5[SyntaxKind5[\"EnumKeyword\"] = 94] = \"EnumKeyword\";\n SyntaxKind5[SyntaxKind5[\"ExportKeyword\"] = 95] = \"ExportKeyword\";\n SyntaxKind5[SyntaxKind5[\"ExtendsKeyword\"] = 96] = \"ExtendsKeyword\";\n SyntaxKind5[SyntaxKind5[\"FalseKeyword\"] = 97] = \"FalseKeyword\";\n SyntaxKind5[SyntaxKind5[\"FinallyKeyword\"] = 98] = \"FinallyKeyword\";\n SyntaxKind5[SyntaxKind5[\"ForKeyword\"] = 99] = \"ForKeyword\";\n SyntaxKind5[SyntaxKind5[\"FunctionKeyword\"] = 100] = \"FunctionKeyword\";\n SyntaxKind5[SyntaxKind5[\"IfKeyword\"] = 101] = \"IfKeyword\";\n SyntaxKind5[SyntaxKind5[\"ImportKeyword\"] = 102] = \"ImportKeyword\";\n SyntaxKind5[SyntaxKind5[\"InKeyword\"] = 103] = \"InKeyword\";\n SyntaxKind5[SyntaxKind5[\"InstanceOfKeyword\"] = 104] = \"InstanceOfKeyword\";\n SyntaxKind5[SyntaxKind5[\"NewKeyword\"] = 105] = \"NewKeyword\";\n SyntaxKind5[SyntaxKind5[\"NullKeyword\"] = 106] = \"NullKeyword\";\n SyntaxKind5[SyntaxKind5[\"ReturnKeyword\"] = 107] = \"ReturnKeyword\";\n SyntaxKind5[SyntaxKind5[\"SuperKeyword\"] = 108] = \"SuperKeyword\";\n SyntaxKind5[SyntaxKind5[\"SwitchKeyword\"] = 109] = \"SwitchKeyword\";\n SyntaxKind5[SyntaxKind5[\"ThisKeyword\"] = 110] = \"ThisKeyword\";\n SyntaxKind5[SyntaxKind5[\"ThrowKeyword\"] = 111] = \"ThrowKeyword\";\n SyntaxKind5[SyntaxKind5[\"TrueKeyword\"] = 112] = \"TrueKeyword\";\n SyntaxKind5[SyntaxKind5[\"TryKeyword\"] = 113] = \"TryKeyword\";\n SyntaxKind5[SyntaxKind5[\"TypeOfKeyword\"] = 114] = \"TypeOfKeyword\";\n SyntaxKind5[SyntaxKind5[\"VarKeyword\"] = 115] = \"VarKeyword\";\n SyntaxKind5[SyntaxKind5[\"VoidKeyword\"] = 116] = \"VoidKeyword\";\n SyntaxKind5[SyntaxKind5[\"WhileKeyword\"] = 117] = \"WhileKeyword\";\n SyntaxKind5[SyntaxKind5[\"WithKeyword\"] = 118] = \"WithKeyword\";\n SyntaxKind5[SyntaxKind5[\"ImplementsKeyword\"] = 119] = \"ImplementsKeyword\";\n SyntaxKind5[SyntaxKind5[\"InterfaceKeyword\"] = 120] = \"InterfaceKeyword\";\n SyntaxKind5[SyntaxKind5[\"LetKeyword\"] = 121] = \"LetKeyword\";\n SyntaxKind5[SyntaxKind5[\"PackageKeyword\"] = 122] = \"PackageKeyword\";\n SyntaxKind5[SyntaxKind5[\"PrivateKeyword\"] = 123] = \"PrivateKeyword\";\n SyntaxKind5[SyntaxKind5[\"ProtectedKeyword\"] = 124] = \"ProtectedKeyword\";\n SyntaxKind5[SyntaxKind5[\"PublicKeyword\"] = 125] = \"PublicKeyword\";\n SyntaxKind5[SyntaxKind5[\"StaticKeyword\"] = 126] = \"StaticKeyword\";\n SyntaxKind5[SyntaxKind5[\"YieldKeyword\"] = 127] = \"YieldKeyword\";\n SyntaxKind5[SyntaxKind5[\"AbstractKeyword\"] = 128] = \"AbstractKeyword\";\n SyntaxKind5[SyntaxKind5[\"AccessorKeyword\"] = 129] = \"AccessorKeyword\";\n SyntaxKind5[SyntaxKind5[\"AsKeyword\"] = 130] = \"AsKeyword\";\n SyntaxKind5[SyntaxKind5[\"AssertsKeyword\"] = 131] = \"AssertsKeyword\";\n SyntaxKind5[SyntaxKind5[\"AssertKeyword\"] = 132] = \"AssertKeyword\";\n SyntaxKind5[SyntaxKind5[\"AnyKeyword\"] = 133] = \"AnyKeyword\";\n SyntaxKind5[SyntaxKind5[\"AsyncKeyword\"] = 134] = \"AsyncKeyword\";\n SyntaxKind5[SyntaxKind5[\"AwaitKeyword\"] = 135] = \"AwaitKeyword\";\n SyntaxKind5[SyntaxKind5[\"BooleanKeyword\"] = 136] = \"BooleanKeyword\";\n SyntaxKind5[SyntaxKind5[\"ConstructorKeyword\"] = 137] = \"ConstructorKeyword\";\n SyntaxKind5[SyntaxKind5[\"DeclareKeyword\"] = 138] = \"DeclareKeyword\";\n SyntaxKind5[SyntaxKind5[\"GetKeyword\"] = 139] = \"GetKeyword\";\n SyntaxKind5[SyntaxKind5[\"InferKeyword\"] = 140] = \"InferKeyword\";\n SyntaxKind5[SyntaxKind5[\"IntrinsicKeyword\"] = 141] = \"IntrinsicKeyword\";\n SyntaxKind5[SyntaxKind5[\"IsKeyword\"] = 142] = \"IsKeyword\";\n SyntaxKind5[SyntaxKind5[\"KeyOfKeyword\"] = 143] = \"KeyOfKeyword\";\n SyntaxKind5[SyntaxKind5[\"ModuleKeyword\"] = 144] = \"ModuleKeyword\";\n SyntaxKind5[SyntaxKind5[\"NamespaceKeyword\"] = 145] = \"NamespaceKeyword\";\n SyntaxKind5[SyntaxKind5[\"NeverKeyword\"] = 146] = \"NeverKeyword\";\n SyntaxKind5[SyntaxKind5[\"OutKeyword\"] = 147] = \"OutKeyword\";\n SyntaxKind5[SyntaxKind5[\"ReadonlyKeyword\"] = 148] = \"ReadonlyKeyword\";\n SyntaxKind5[SyntaxKind5[\"RequireKeyword\"] = 149] = \"RequireKeyword\";\n SyntaxKind5[SyntaxKind5[\"NumberKeyword\"] = 150] = \"NumberKeyword\";\n SyntaxKind5[SyntaxKind5[\"ObjectKeyword\"] = 151] = \"ObjectKeyword\";\n SyntaxKind5[SyntaxKind5[\"SatisfiesKeyword\"] = 152] = \"SatisfiesKeyword\";\n SyntaxKind5[SyntaxKind5[\"SetKeyword\"] = 153] = \"SetKeyword\";\n SyntaxKind5[SyntaxKind5[\"StringKeyword\"] = 154] = \"StringKeyword\";\n SyntaxKind5[SyntaxKind5[\"SymbolKeyword\"] = 155] = \"SymbolKeyword\";\n SyntaxKind5[SyntaxKind5[\"TypeKeyword\"] = 156] = \"TypeKeyword\";\n SyntaxKind5[SyntaxKind5[\"UndefinedKeyword\"] = 157] = \"UndefinedKeyword\";\n SyntaxKind5[SyntaxKind5[\"UniqueKeyword\"] = 158] = \"UniqueKeyword\";\n SyntaxKind5[SyntaxKind5[\"UnknownKeyword\"] = 159] = \"UnknownKeyword\";\n SyntaxKind5[SyntaxKind5[\"UsingKeyword\"] = 160] = \"UsingKeyword\";\n SyntaxKind5[SyntaxKind5[\"FromKeyword\"] = 161] = \"FromKeyword\";\n SyntaxKind5[SyntaxKind5[\"GlobalKeyword\"] = 162] = \"GlobalKeyword\";\n SyntaxKind5[SyntaxKind5[\"BigIntKeyword\"] = 163] = \"BigIntKeyword\";\n SyntaxKind5[SyntaxKind5[\"OverrideKeyword\"] = 164] = \"OverrideKeyword\";\n SyntaxKind5[SyntaxKind5[\"OfKeyword\"] = 165] = \"OfKeyword\";\n SyntaxKind5[SyntaxKind5[\"DeferKeyword\"] = 166] = \"DeferKeyword\";\n SyntaxKind5[SyntaxKind5[\"QualifiedName\"] = 167] = \"QualifiedName\";\n SyntaxKind5[SyntaxKind5[\"ComputedPropertyName\"] = 168] = \"ComputedPropertyName\";\n SyntaxKind5[SyntaxKind5[\"TypeParameter\"] = 169] = \"TypeParameter\";\n SyntaxKind5[SyntaxKind5[\"Parameter\"] = 170] = \"Parameter\";\n SyntaxKind5[SyntaxKind5[\"Decorator\"] = 171] = \"Decorator\";\n SyntaxKind5[SyntaxKind5[\"PropertySignature\"] = 172] = \"PropertySignature\";\n SyntaxKind5[SyntaxKind5[\"PropertyDeclaration\"] = 173] = \"PropertyDeclaration\";\n SyntaxKind5[SyntaxKind5[\"MethodSignature\"] = 174] = \"MethodSignature\";\n SyntaxKind5[SyntaxKind5[\"MethodDeclaration\"] = 175] = \"MethodDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ClassStaticBlockDeclaration\"] = 176] = \"ClassStaticBlockDeclaration\";\n SyntaxKind5[SyntaxKind5[\"Constructor\"] = 177] = \"Constructor\";\n SyntaxKind5[SyntaxKind5[\"GetAccessor\"] = 178] = \"GetAccessor\";\n SyntaxKind5[SyntaxKind5[\"SetAccessor\"] = 179] = \"SetAccessor\";\n SyntaxKind5[SyntaxKind5[\"CallSignature\"] = 180] = \"CallSignature\";\n SyntaxKind5[SyntaxKind5[\"ConstructSignature\"] = 181] = \"ConstructSignature\";\n SyntaxKind5[SyntaxKind5[\"IndexSignature\"] = 182] = \"IndexSignature\";\n SyntaxKind5[SyntaxKind5[\"TypePredicate\"] = 183] = \"TypePredicate\";\n SyntaxKind5[SyntaxKind5[\"TypeReference\"] = 184] = \"TypeReference\";\n SyntaxKind5[SyntaxKind5[\"FunctionType\"] = 185] = \"FunctionType\";\n SyntaxKind5[SyntaxKind5[\"ConstructorType\"] = 186] = \"ConstructorType\";\n SyntaxKind5[SyntaxKind5[\"TypeQuery\"] = 187] = \"TypeQuery\";\n SyntaxKind5[SyntaxKind5[\"TypeLiteral\"] = 188] = \"TypeLiteral\";\n SyntaxKind5[SyntaxKind5[\"ArrayType\"] = 189] = \"ArrayType\";\n SyntaxKind5[SyntaxKind5[\"TupleType\"] = 190] = \"TupleType\";\n SyntaxKind5[SyntaxKind5[\"OptionalType\"] = 191] = \"OptionalType\";\n SyntaxKind5[SyntaxKind5[\"RestType\"] = 192] = \"RestType\";\n SyntaxKind5[SyntaxKind5[\"UnionType\"] = 193] = \"UnionType\";\n SyntaxKind5[SyntaxKind5[\"IntersectionType\"] = 194] = \"IntersectionType\";\n SyntaxKind5[SyntaxKind5[\"ConditionalType\"] = 195] = \"ConditionalType\";\n SyntaxKind5[SyntaxKind5[\"InferType\"] = 196] = \"InferType\";\n SyntaxKind5[SyntaxKind5[\"ParenthesizedType\"] = 197] = \"ParenthesizedType\";\n SyntaxKind5[SyntaxKind5[\"ThisType\"] = 198] = \"ThisType\";\n SyntaxKind5[SyntaxKind5[\"TypeOperator\"] = 199] = \"TypeOperator\";\n SyntaxKind5[SyntaxKind5[\"IndexedAccessType\"] = 200] = \"IndexedAccessType\";\n SyntaxKind5[SyntaxKind5[\"MappedType\"] = 201] = \"MappedType\";\n SyntaxKind5[SyntaxKind5[\"LiteralType\"] = 202] = \"LiteralType\";\n SyntaxKind5[SyntaxKind5[\"NamedTupleMember\"] = 203] = \"NamedTupleMember\";\n SyntaxKind5[SyntaxKind5[\"TemplateLiteralType\"] = 204] = \"TemplateLiteralType\";\n SyntaxKind5[SyntaxKind5[\"TemplateLiteralTypeSpan\"] = 205] = \"TemplateLiteralTypeSpan\";\n SyntaxKind5[SyntaxKind5[\"ImportType\"] = 206] = \"ImportType\";\n SyntaxKind5[SyntaxKind5[\"ObjectBindingPattern\"] = 207] = \"ObjectBindingPattern\";\n SyntaxKind5[SyntaxKind5[\"ArrayBindingPattern\"] = 208] = \"ArrayBindingPattern\";\n SyntaxKind5[SyntaxKind5[\"BindingElement\"] = 209] = \"BindingElement\";\n SyntaxKind5[SyntaxKind5[\"ArrayLiteralExpression\"] = 210] = \"ArrayLiteralExpression\";\n SyntaxKind5[SyntaxKind5[\"ObjectLiteralExpression\"] = 211] = \"ObjectLiteralExpression\";\n SyntaxKind5[SyntaxKind5[\"PropertyAccessExpression\"] = 212] = \"PropertyAccessExpression\";\n SyntaxKind5[SyntaxKind5[\"ElementAccessExpression\"] = 213] = \"ElementAccessExpression\";\n SyntaxKind5[SyntaxKind5[\"CallExpression\"] = 214] = \"CallExpression\";\n SyntaxKind5[SyntaxKind5[\"NewExpression\"] = 215] = \"NewExpression\";\n SyntaxKind5[SyntaxKind5[\"TaggedTemplateExpression\"] = 216] = \"TaggedTemplateExpression\";\n SyntaxKind5[SyntaxKind5[\"TypeAssertionExpression\"] = 217] = \"TypeAssertionExpression\";\n SyntaxKind5[SyntaxKind5[\"ParenthesizedExpression\"] = 218] = \"ParenthesizedExpression\";\n SyntaxKind5[SyntaxKind5[\"FunctionExpression\"] = 219] = \"FunctionExpression\";\n SyntaxKind5[SyntaxKind5[\"ArrowFunction\"] = 220] = \"ArrowFunction\";\n SyntaxKind5[SyntaxKind5[\"DeleteExpression\"] = 221] = \"DeleteExpression\";\n SyntaxKind5[SyntaxKind5[\"TypeOfExpression\"] = 222] = \"TypeOfExpression\";\n SyntaxKind5[SyntaxKind5[\"VoidExpression\"] = 223] = \"VoidExpression\";\n SyntaxKind5[SyntaxKind5[\"AwaitExpression\"] = 224] = \"AwaitExpression\";\n SyntaxKind5[SyntaxKind5[\"PrefixUnaryExpression\"] = 225] = \"PrefixUnaryExpression\";\n SyntaxKind5[SyntaxKind5[\"PostfixUnaryExpression\"] = 226] = \"PostfixUnaryExpression\";\n SyntaxKind5[SyntaxKind5[\"BinaryExpression\"] = 227] = \"BinaryExpression\";\n SyntaxKind5[SyntaxKind5[\"ConditionalExpression\"] = 228] = \"ConditionalExpression\";\n SyntaxKind5[SyntaxKind5[\"TemplateExpression\"] = 229] = \"TemplateExpression\";\n SyntaxKind5[SyntaxKind5[\"YieldExpression\"] = 230] = \"YieldExpression\";\n SyntaxKind5[SyntaxKind5[\"SpreadElement\"] = 231] = \"SpreadElement\";\n SyntaxKind5[SyntaxKind5[\"ClassExpression\"] = 232] = \"ClassExpression\";\n SyntaxKind5[SyntaxKind5[\"OmittedExpression\"] = 233] = \"OmittedExpression\";\n SyntaxKind5[SyntaxKind5[\"ExpressionWithTypeArguments\"] = 234] = \"ExpressionWithTypeArguments\";\n SyntaxKind5[SyntaxKind5[\"AsExpression\"] = 235] = \"AsExpression\";\n SyntaxKind5[SyntaxKind5[\"NonNullExpression\"] = 236] = \"NonNullExpression\";\n SyntaxKind5[SyntaxKind5[\"MetaProperty\"] = 237] = \"MetaProperty\";\n SyntaxKind5[SyntaxKind5[\"SyntheticExpression\"] = 238] = \"SyntheticExpression\";\n SyntaxKind5[SyntaxKind5[\"SatisfiesExpression\"] = 239] = \"SatisfiesExpression\";\n SyntaxKind5[SyntaxKind5[\"TemplateSpan\"] = 240] = \"TemplateSpan\";\n SyntaxKind5[SyntaxKind5[\"SemicolonClassElement\"] = 241] = \"SemicolonClassElement\";\n SyntaxKind5[SyntaxKind5[\"Block\"] = 242] = \"Block\";\n SyntaxKind5[SyntaxKind5[\"EmptyStatement\"] = 243] = \"EmptyStatement\";\n SyntaxKind5[SyntaxKind5[\"VariableStatement\"] = 244] = \"VariableStatement\";\n SyntaxKind5[SyntaxKind5[\"ExpressionStatement\"] = 245] = \"ExpressionStatement\";\n SyntaxKind5[SyntaxKind5[\"IfStatement\"] = 246] = \"IfStatement\";\n SyntaxKind5[SyntaxKind5[\"DoStatement\"] = 247] = \"DoStatement\";\n SyntaxKind5[SyntaxKind5[\"WhileStatement\"] = 248] = \"WhileStatement\";\n SyntaxKind5[SyntaxKind5[\"ForStatement\"] = 249] = \"ForStatement\";\n SyntaxKind5[SyntaxKind5[\"ForInStatement\"] = 250] = \"ForInStatement\";\n SyntaxKind5[SyntaxKind5[\"ForOfStatement\"] = 251] = \"ForOfStatement\";\n SyntaxKind5[SyntaxKind5[\"ContinueStatement\"] = 252] = \"ContinueStatement\";\n SyntaxKind5[SyntaxKind5[\"BreakStatement\"] = 253] = \"BreakStatement\";\n SyntaxKind5[SyntaxKind5[\"ReturnStatement\"] = 254] = \"ReturnStatement\";\n SyntaxKind5[SyntaxKind5[\"WithStatement\"] = 255] = \"WithStatement\";\n SyntaxKind5[SyntaxKind5[\"SwitchStatement\"] = 256] = \"SwitchStatement\";\n SyntaxKind5[SyntaxKind5[\"LabeledStatement\"] = 257] = \"LabeledStatement\";\n SyntaxKind5[SyntaxKind5[\"ThrowStatement\"] = 258] = \"ThrowStatement\";\n SyntaxKind5[SyntaxKind5[\"TryStatement\"] = 259] = \"TryStatement\";\n SyntaxKind5[SyntaxKind5[\"DebuggerStatement\"] = 260] = \"DebuggerStatement\";\n SyntaxKind5[SyntaxKind5[\"VariableDeclaration\"] = 261] = \"VariableDeclaration\";\n SyntaxKind5[SyntaxKind5[\"VariableDeclarationList\"] = 262] = \"VariableDeclarationList\";\n SyntaxKind5[SyntaxKind5[\"FunctionDeclaration\"] = 263] = \"FunctionDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ClassDeclaration\"] = 264] = \"ClassDeclaration\";\n SyntaxKind5[SyntaxKind5[\"InterfaceDeclaration\"] = 265] = \"InterfaceDeclaration\";\n SyntaxKind5[SyntaxKind5[\"TypeAliasDeclaration\"] = 266] = \"TypeAliasDeclaration\";\n SyntaxKind5[SyntaxKind5[\"EnumDeclaration\"] = 267] = \"EnumDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ModuleDeclaration\"] = 268] = \"ModuleDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ModuleBlock\"] = 269] = \"ModuleBlock\";\n SyntaxKind5[SyntaxKind5[\"CaseBlock\"] = 270] = \"CaseBlock\";\n SyntaxKind5[SyntaxKind5[\"NamespaceExportDeclaration\"] = 271] = \"NamespaceExportDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ImportEqualsDeclaration\"] = 272] = \"ImportEqualsDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ImportDeclaration\"] = 273] = \"ImportDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ImportClause\"] = 274] = \"ImportClause\";\n SyntaxKind5[SyntaxKind5[\"NamespaceImport\"] = 275] = \"NamespaceImport\";\n SyntaxKind5[SyntaxKind5[\"NamedImports\"] = 276] = \"NamedImports\";\n SyntaxKind5[SyntaxKind5[\"ImportSpecifier\"] = 277] = \"ImportSpecifier\";\n SyntaxKind5[SyntaxKind5[\"ExportAssignment\"] = 278] = \"ExportAssignment\";\n SyntaxKind5[SyntaxKind5[\"ExportDeclaration\"] = 279] = \"ExportDeclaration\";\n SyntaxKind5[SyntaxKind5[\"NamedExports\"] = 280] = \"NamedExports\";\n SyntaxKind5[SyntaxKind5[\"NamespaceExport\"] = 281] = \"NamespaceExport\";\n SyntaxKind5[SyntaxKind5[\"ExportSpecifier\"] = 282] = \"ExportSpecifier\";\n SyntaxKind5[SyntaxKind5[\"MissingDeclaration\"] = 283] = \"MissingDeclaration\";\n SyntaxKind5[SyntaxKind5[\"ExternalModuleReference\"] = 284] = \"ExternalModuleReference\";\n SyntaxKind5[SyntaxKind5[\"JsxElement\"] = 285] = \"JsxElement\";\n SyntaxKind5[SyntaxKind5[\"JsxSelfClosingElement\"] = 286] = \"JsxSelfClosingElement\";\n SyntaxKind5[SyntaxKind5[\"JsxOpeningElement\"] = 287] = \"JsxOpeningElement\";\n SyntaxKind5[SyntaxKind5[\"JsxClosingElement\"] = 288] = \"JsxClosingElement\";\n SyntaxKind5[SyntaxKind5[\"JsxFragment\"] = 289] = \"JsxFragment\";\n SyntaxKind5[SyntaxKind5[\"JsxOpeningFragment\"] = 290] = \"JsxOpeningFragment\";\n SyntaxKind5[SyntaxKind5[\"JsxClosingFragment\"] = 291] = \"JsxClosingFragment\";\n SyntaxKind5[SyntaxKind5[\"JsxAttribute\"] = 292] = \"JsxAttribute\";\n SyntaxKind5[SyntaxKind5[\"JsxAttributes\"] = 293] = \"JsxAttributes\";\n SyntaxKind5[SyntaxKind5[\"JsxSpreadAttribute\"] = 294] = \"JsxSpreadAttribute\";\n SyntaxKind5[SyntaxKind5[\"JsxExpression\"] = 295] = \"JsxExpression\";\n SyntaxKind5[SyntaxKind5[\"JsxNamespacedName\"] = 296] = \"JsxNamespacedName\";\n SyntaxKind5[SyntaxKind5[\"CaseClause\"] = 297] = \"CaseClause\";\n SyntaxKind5[SyntaxKind5[\"DefaultClause\"] = 298] = \"DefaultClause\";\n SyntaxKind5[SyntaxKind5[\"HeritageClause\"] = 299] = \"HeritageClause\";\n SyntaxKind5[SyntaxKind5[\"CatchClause\"] = 300] = \"CatchClause\";\n SyntaxKind5[SyntaxKind5[\"ImportAttributes\"] = 301] = \"ImportAttributes\";\n SyntaxKind5[SyntaxKind5[\"ImportAttribute\"] = 302] = \"ImportAttribute\";\n SyntaxKind5[SyntaxKind5[\"AssertClause\"] = 301 /* ImportAttributes */] = \"AssertClause\";\n SyntaxKind5[SyntaxKind5[\"AssertEntry\"] = 302 /* ImportAttribute */] = \"AssertEntry\";\n SyntaxKind5[SyntaxKind5[\"ImportTypeAssertionContainer\"] = 303] = \"ImportTypeAssertionContainer\";\n SyntaxKind5[SyntaxKind5[\"PropertyAssignment\"] = 304] = \"PropertyAssignment\";\n SyntaxKind5[SyntaxKind5[\"ShorthandPropertyAssignment\"] = 305] = \"ShorthandPropertyAssignment\";\n SyntaxKind5[SyntaxKind5[\"SpreadAssignment\"] = 306] = \"SpreadAssignment\";\n SyntaxKind5[SyntaxKind5[\"EnumMember\"] = 307] = \"EnumMember\";\n SyntaxKind5[SyntaxKind5[\"SourceFile\"] = 308] = \"SourceFile\";\n SyntaxKind5[SyntaxKind5[\"Bundle\"] = 309] = \"Bundle\";\n SyntaxKind5[SyntaxKind5[\"JSDocTypeExpression\"] = 310] = \"JSDocTypeExpression\";\n SyntaxKind5[SyntaxKind5[\"JSDocNameReference\"] = 311] = \"JSDocNameReference\";\n SyntaxKind5[SyntaxKind5[\"JSDocMemberName\"] = 312] = \"JSDocMemberName\";\n SyntaxKind5[SyntaxKind5[\"JSDocAllType\"] = 313] = \"JSDocAllType\";\n SyntaxKind5[SyntaxKind5[\"JSDocUnknownType\"] = 314] = \"JSDocUnknownType\";\n SyntaxKind5[SyntaxKind5[\"JSDocNullableType\"] = 315] = \"JSDocNullableType\";\n SyntaxKind5[SyntaxKind5[\"JSDocNonNullableType\"] = 316] = \"JSDocNonNullableType\";\n SyntaxKind5[SyntaxKind5[\"JSDocOptionalType\"] = 317] = \"JSDocOptionalType\";\n SyntaxKind5[SyntaxKind5[\"JSDocFunctionType\"] = 318] = \"JSDocFunctionType\";\n SyntaxKind5[SyntaxKind5[\"JSDocVariadicType\"] = 319] = \"JSDocVariadicType\";\n SyntaxKind5[SyntaxKind5[\"JSDocNamepathType\"] = 320] = \"JSDocNamepathType\";\n SyntaxKind5[SyntaxKind5[\"JSDoc\"] = 321] = \"JSDoc\";\n SyntaxKind5[SyntaxKind5[\"JSDocComment\"] = 321 /* JSDoc */] = \"JSDocComment\";\n SyntaxKind5[SyntaxKind5[\"JSDocText\"] = 322] = \"JSDocText\";\n SyntaxKind5[SyntaxKind5[\"JSDocTypeLiteral\"] = 323] = \"JSDocTypeLiteral\";\n SyntaxKind5[SyntaxKind5[\"JSDocSignature\"] = 324] = \"JSDocSignature\";\n SyntaxKind5[SyntaxKind5[\"JSDocLink\"] = 325] = \"JSDocLink\";\n SyntaxKind5[SyntaxKind5[\"JSDocLinkCode\"] = 326] = \"JSDocLinkCode\";\n SyntaxKind5[SyntaxKind5[\"JSDocLinkPlain\"] = 327] = \"JSDocLinkPlain\";\n SyntaxKind5[SyntaxKind5[\"JSDocTag\"] = 328] = \"JSDocTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocAugmentsTag\"] = 329] = \"JSDocAugmentsTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocImplementsTag\"] = 330] = \"JSDocImplementsTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocAuthorTag\"] = 331] = \"JSDocAuthorTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocDeprecatedTag\"] = 332] = \"JSDocDeprecatedTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocClassTag\"] = 333] = \"JSDocClassTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocPublicTag\"] = 334] = \"JSDocPublicTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocPrivateTag\"] = 335] = \"JSDocPrivateTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocProtectedTag\"] = 336] = \"JSDocProtectedTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocReadonlyTag\"] = 337] = \"JSDocReadonlyTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocOverrideTag\"] = 338] = \"JSDocOverrideTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocCallbackTag\"] = 339] = \"JSDocCallbackTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocOverloadTag\"] = 340] = \"JSDocOverloadTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocEnumTag\"] = 341] = \"JSDocEnumTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocParameterTag\"] = 342] = \"JSDocParameterTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocReturnTag\"] = 343] = \"JSDocReturnTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocThisTag\"] = 344] = \"JSDocThisTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocTypeTag\"] = 345] = \"JSDocTypeTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocTemplateTag\"] = 346] = \"JSDocTemplateTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocTypedefTag\"] = 347] = \"JSDocTypedefTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocSeeTag\"] = 348] = \"JSDocSeeTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocPropertyTag\"] = 349] = \"JSDocPropertyTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocThrowsTag\"] = 350] = \"JSDocThrowsTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocSatisfiesTag\"] = 351] = \"JSDocSatisfiesTag\";\n SyntaxKind5[SyntaxKind5[\"JSDocImportTag\"] = 352] = \"JSDocImportTag\";\n SyntaxKind5[SyntaxKind5[\"SyntaxList\"] = 353] = \"SyntaxList\";\n SyntaxKind5[SyntaxKind5[\"NotEmittedStatement\"] = 354] = \"NotEmittedStatement\";\n SyntaxKind5[SyntaxKind5[\"NotEmittedTypeElement\"] = 355] = \"NotEmittedTypeElement\";\n SyntaxKind5[SyntaxKind5[\"PartiallyEmittedExpression\"] = 356] = \"PartiallyEmittedExpression\";\n SyntaxKind5[SyntaxKind5[\"CommaListExpression\"] = 357] = \"CommaListExpression\";\n SyntaxKind5[SyntaxKind5[\"SyntheticReferenceExpression\"] = 358] = \"SyntheticReferenceExpression\";\n SyntaxKind5[SyntaxKind5[\"Count\"] = 359] = \"Count\";\n SyntaxKind5[SyntaxKind5[\"FirstAssignment\"] = 64 /* EqualsToken */] = \"FirstAssignment\";\n SyntaxKind5[SyntaxKind5[\"LastAssignment\"] = 79 /* CaretEqualsToken */] = \"LastAssignment\";\n SyntaxKind5[SyntaxKind5[\"FirstCompoundAssignment\"] = 65 /* PlusEqualsToken */] = \"FirstCompoundAssignment\";\n SyntaxKind5[SyntaxKind5[\"LastCompoundAssignment\"] = 79 /* CaretEqualsToken */] = \"LastCompoundAssignment\";\n SyntaxKind5[SyntaxKind5[\"FirstReservedWord\"] = 83 /* BreakKeyword */] = \"FirstReservedWord\";\n SyntaxKind5[SyntaxKind5[\"LastReservedWord\"] = 118 /* WithKeyword */] = \"LastReservedWord\";\n SyntaxKind5[SyntaxKind5[\"FirstKeyword\"] = 83 /* BreakKeyword */] = \"FirstKeyword\";\n SyntaxKind5[SyntaxKind5[\"LastKeyword\"] = 166 /* DeferKeyword */] = \"LastKeyword\";\n SyntaxKind5[SyntaxKind5[\"FirstFutureReservedWord\"] = 119 /* ImplementsKeyword */] = \"FirstFutureReservedWord\";\n SyntaxKind5[SyntaxKind5[\"LastFutureReservedWord\"] = 127 /* YieldKeyword */] = \"LastFutureReservedWord\";\n SyntaxKind5[SyntaxKind5[\"FirstTypeNode\"] = 183 /* TypePredicate */] = \"FirstTypeNode\";\n SyntaxKind5[SyntaxKind5[\"LastTypeNode\"] = 206 /* ImportType */] = \"LastTypeNode\";\n SyntaxKind5[SyntaxKind5[\"FirstPunctuation\"] = 19 /* OpenBraceToken */] = \"FirstPunctuation\";\n SyntaxKind5[SyntaxKind5[\"LastPunctuation\"] = 79 /* CaretEqualsToken */] = \"LastPunctuation\";\n SyntaxKind5[SyntaxKind5[\"FirstToken\"] = 0 /* Unknown */] = \"FirstToken\";\n SyntaxKind5[SyntaxKind5[\"LastToken\"] = 166 /* LastKeyword */] = \"LastToken\";\n SyntaxKind5[SyntaxKind5[\"FirstTriviaToken\"] = 2 /* SingleLineCommentTrivia */] = \"FirstTriviaToken\";\n SyntaxKind5[SyntaxKind5[\"LastTriviaToken\"] = 7 /* ConflictMarkerTrivia */] = \"LastTriviaToken\";\n SyntaxKind5[SyntaxKind5[\"FirstLiteralToken\"] = 9 /* NumericLiteral */] = \"FirstLiteralToken\";\n SyntaxKind5[SyntaxKind5[\"LastLiteralToken\"] = 15 /* NoSubstitutionTemplateLiteral */] = \"LastLiteralToken\";\n SyntaxKind5[SyntaxKind5[\"FirstTemplateToken\"] = 15 /* NoSubstitutionTemplateLiteral */] = \"FirstTemplateToken\";\n SyntaxKind5[SyntaxKind5[\"LastTemplateToken\"] = 18 /* TemplateTail */] = \"LastTemplateToken\";\n SyntaxKind5[SyntaxKind5[\"FirstBinaryOperator\"] = 30 /* LessThanToken */] = \"FirstBinaryOperator\";\n SyntaxKind5[SyntaxKind5[\"LastBinaryOperator\"] = 79 /* CaretEqualsToken */] = \"LastBinaryOperator\";\n SyntaxKind5[SyntaxKind5[\"FirstStatement\"] = 244 /* VariableStatement */] = \"FirstStatement\";\n SyntaxKind5[SyntaxKind5[\"LastStatement\"] = 260 /* DebuggerStatement */] = \"LastStatement\";\n SyntaxKind5[SyntaxKind5[\"FirstNode\"] = 167 /* QualifiedName */] = \"FirstNode\";\n SyntaxKind5[SyntaxKind5[\"FirstJSDocNode\"] = 310 /* JSDocTypeExpression */] = \"FirstJSDocNode\";\n SyntaxKind5[SyntaxKind5[\"LastJSDocNode\"] = 352 /* JSDocImportTag */] = \"LastJSDocNode\";\n SyntaxKind5[SyntaxKind5[\"FirstJSDocTagNode\"] = 328 /* JSDocTag */] = \"FirstJSDocTagNode\";\n SyntaxKind5[SyntaxKind5[\"LastJSDocTagNode\"] = 352 /* JSDocImportTag */] = \"LastJSDocTagNode\";\n SyntaxKind5[SyntaxKind5[\"FirstContextualKeyword\"] = 128 /* AbstractKeyword */] = \"FirstContextualKeyword\";\n SyntaxKind5[SyntaxKind5[\"LastContextualKeyword\"] = 166 /* LastKeyword */] = \"LastContextualKeyword\";\n return SyntaxKind5;\n})(SyntaxKind || {});\nvar NodeFlags = /* @__PURE__ */ ((NodeFlags3) => {\n NodeFlags3[NodeFlags3[\"None\"] = 0] = \"None\";\n NodeFlags3[NodeFlags3[\"Let\"] = 1] = \"Let\";\n NodeFlags3[NodeFlags3[\"Const\"] = 2] = \"Const\";\n NodeFlags3[NodeFlags3[\"Using\"] = 4] = \"Using\";\n NodeFlags3[NodeFlags3[\"AwaitUsing\"] = 6] = \"AwaitUsing\";\n NodeFlags3[NodeFlags3[\"NestedNamespace\"] = 8] = \"NestedNamespace\";\n NodeFlags3[NodeFlags3[\"Synthesized\"] = 16] = \"Synthesized\";\n NodeFlags3[NodeFlags3[\"Namespace\"] = 32] = \"Namespace\";\n NodeFlags3[NodeFlags3[\"OptionalChain\"] = 64] = \"OptionalChain\";\n NodeFlags3[NodeFlags3[\"ExportContext\"] = 128] = \"ExportContext\";\n NodeFlags3[NodeFlags3[\"ContainsThis\"] = 256] = \"ContainsThis\";\n NodeFlags3[NodeFlags3[\"HasImplicitReturn\"] = 512] = \"HasImplicitReturn\";\n NodeFlags3[NodeFlags3[\"HasExplicitReturn\"] = 1024] = \"HasExplicitReturn\";\n NodeFlags3[NodeFlags3[\"GlobalAugmentation\"] = 2048] = \"GlobalAugmentation\";\n NodeFlags3[NodeFlags3[\"HasAsyncFunctions\"] = 4096] = \"HasAsyncFunctions\";\n NodeFlags3[NodeFlags3[\"DisallowInContext\"] = 8192] = \"DisallowInContext\";\n NodeFlags3[NodeFlags3[\"YieldContext\"] = 16384] = \"YieldContext\";\n NodeFlags3[NodeFlags3[\"DecoratorContext\"] = 32768] = \"DecoratorContext\";\n NodeFlags3[NodeFlags3[\"AwaitContext\"] = 65536] = \"AwaitContext\";\n NodeFlags3[NodeFlags3[\"DisallowConditionalTypesContext\"] = 131072] = \"DisallowConditionalTypesContext\";\n NodeFlags3[NodeFlags3[\"ThisNodeHasError\"] = 262144] = \"ThisNodeHasError\";\n NodeFlags3[NodeFlags3[\"JavaScriptFile\"] = 524288] = \"JavaScriptFile\";\n NodeFlags3[NodeFlags3[\"ThisNodeOrAnySubNodesHasError\"] = 1048576] = \"ThisNodeOrAnySubNodesHasError\";\n NodeFlags3[NodeFlags3[\"HasAggregatedChildData\"] = 2097152] = \"HasAggregatedChildData\";\n NodeFlags3[NodeFlags3[\"PossiblyContainsDynamicImport\"] = 4194304] = \"PossiblyContainsDynamicImport\";\n NodeFlags3[NodeFlags3[\"PossiblyContainsImportMeta\"] = 8388608] = \"PossiblyContainsImportMeta\";\n NodeFlags3[NodeFlags3[\"JSDoc\"] = 16777216] = \"JSDoc\";\n NodeFlags3[NodeFlags3[\"Ambient\"] = 33554432] = \"Ambient\";\n NodeFlags3[NodeFlags3[\"InWithStatement\"] = 67108864] = \"InWithStatement\";\n NodeFlags3[NodeFlags3[\"JsonFile\"] = 134217728] = \"JsonFile\";\n NodeFlags3[NodeFlags3[\"TypeCached\"] = 268435456] = \"TypeCached\";\n NodeFlags3[NodeFlags3[\"Deprecated\"] = 536870912] = \"Deprecated\";\n NodeFlags3[NodeFlags3[\"BlockScoped\"] = 7] = \"BlockScoped\";\n NodeFlags3[NodeFlags3[\"Constant\"] = 6] = \"Constant\";\n NodeFlags3[NodeFlags3[\"ReachabilityCheckFlags\"] = 1536] = \"ReachabilityCheckFlags\";\n NodeFlags3[NodeFlags3[\"ReachabilityAndEmitFlags\"] = 5632] = \"ReachabilityAndEmitFlags\";\n NodeFlags3[NodeFlags3[\"ContextFlags\"] = 101441536] = \"ContextFlags\";\n NodeFlags3[NodeFlags3[\"TypeExcludesFlags\"] = 81920] = \"TypeExcludesFlags\";\n NodeFlags3[NodeFlags3[\"PermanentlySetIncrementalFlags\"] = 12582912] = \"PermanentlySetIncrementalFlags\";\n NodeFlags3[NodeFlags3[\"IdentifierHasExtendedUnicodeEscape\"] = 256 /* ContainsThis */] = \"IdentifierHasExtendedUnicodeEscape\";\n NodeFlags3[NodeFlags3[\"IdentifierIsInJSDocNamespace\"] = 4096 /* HasAsyncFunctions */] = \"IdentifierIsInJSDocNamespace\";\n return NodeFlags3;\n})(NodeFlags || {});\nvar ModifierFlags = /* @__PURE__ */ ((ModifierFlags3) => {\n ModifierFlags3[ModifierFlags3[\"None\"] = 0] = \"None\";\n ModifierFlags3[ModifierFlags3[\"Public\"] = 1] = \"Public\";\n ModifierFlags3[ModifierFlags3[\"Private\"] = 2] = \"Private\";\n ModifierFlags3[ModifierFlags3[\"Protected\"] = 4] = \"Protected\";\n ModifierFlags3[ModifierFlags3[\"Readonly\"] = 8] = \"Readonly\";\n ModifierFlags3[ModifierFlags3[\"Override\"] = 16] = \"Override\";\n ModifierFlags3[ModifierFlags3[\"Export\"] = 32] = \"Export\";\n ModifierFlags3[ModifierFlags3[\"Abstract\"] = 64] = \"Abstract\";\n ModifierFlags3[ModifierFlags3[\"Ambient\"] = 128] = \"Ambient\";\n ModifierFlags3[ModifierFlags3[\"Static\"] = 256] = \"Static\";\n ModifierFlags3[ModifierFlags3[\"Accessor\"] = 512] = \"Accessor\";\n ModifierFlags3[ModifierFlags3[\"Async\"] = 1024] = \"Async\";\n ModifierFlags3[ModifierFlags3[\"Default\"] = 2048] = \"Default\";\n ModifierFlags3[ModifierFlags3[\"Const\"] = 4096] = \"Const\";\n ModifierFlags3[ModifierFlags3[\"In\"] = 8192] = \"In\";\n ModifierFlags3[ModifierFlags3[\"Out\"] = 16384] = \"Out\";\n ModifierFlags3[ModifierFlags3[\"Decorator\"] = 32768] = \"Decorator\";\n ModifierFlags3[ModifierFlags3[\"Deprecated\"] = 65536] = \"Deprecated\";\n ModifierFlags3[ModifierFlags3[\"JSDocPublic\"] = 8388608] = \"JSDocPublic\";\n ModifierFlags3[ModifierFlags3[\"JSDocPrivate\"] = 16777216] = \"JSDocPrivate\";\n ModifierFlags3[ModifierFlags3[\"JSDocProtected\"] = 33554432] = \"JSDocProtected\";\n ModifierFlags3[ModifierFlags3[\"JSDocReadonly\"] = 67108864] = \"JSDocReadonly\";\n ModifierFlags3[ModifierFlags3[\"JSDocOverride\"] = 134217728] = \"JSDocOverride\";\n ModifierFlags3[ModifierFlags3[\"SyntacticOrJSDocModifiers\"] = 31] = \"SyntacticOrJSDocModifiers\";\n ModifierFlags3[ModifierFlags3[\"SyntacticOnlyModifiers\"] = 65504] = \"SyntacticOnlyModifiers\";\n ModifierFlags3[ModifierFlags3[\"SyntacticModifiers\"] = 65535] = \"SyntacticModifiers\";\n ModifierFlags3[ModifierFlags3[\"JSDocCacheOnlyModifiers\"] = 260046848] = \"JSDocCacheOnlyModifiers\";\n ModifierFlags3[ModifierFlags3[\"JSDocOnlyModifiers\"] = 65536 /* Deprecated */] = \"JSDocOnlyModifiers\";\n ModifierFlags3[ModifierFlags3[\"NonCacheOnlyModifiers\"] = 131071] = \"NonCacheOnlyModifiers\";\n ModifierFlags3[ModifierFlags3[\"HasComputedJSDocModifiers\"] = 268435456] = \"HasComputedJSDocModifiers\";\n ModifierFlags3[ModifierFlags3[\"HasComputedFlags\"] = 536870912] = \"HasComputedFlags\";\n ModifierFlags3[ModifierFlags3[\"AccessibilityModifier\"] = 7] = \"AccessibilityModifier\";\n ModifierFlags3[ModifierFlags3[\"ParameterPropertyModifier\"] = 31] = \"ParameterPropertyModifier\";\n ModifierFlags3[ModifierFlags3[\"NonPublicAccessibilityModifier\"] = 6] = \"NonPublicAccessibilityModifier\";\n ModifierFlags3[ModifierFlags3[\"TypeScriptModifier\"] = 28895] = \"TypeScriptModifier\";\n ModifierFlags3[ModifierFlags3[\"ExportDefault\"] = 2080] = \"ExportDefault\";\n ModifierFlags3[ModifierFlags3[\"All\"] = 131071] = \"All\";\n ModifierFlags3[ModifierFlags3[\"Modifier\"] = 98303] = \"Modifier\";\n return ModifierFlags3;\n})(ModifierFlags || {});\nvar JsxFlags = /* @__PURE__ */ ((JsxFlags2) => {\n JsxFlags2[JsxFlags2[\"None\"] = 0] = \"None\";\n JsxFlags2[JsxFlags2[\"IntrinsicNamedElement\"] = 1] = \"IntrinsicNamedElement\";\n JsxFlags2[JsxFlags2[\"IntrinsicIndexedElement\"] = 2] = \"IntrinsicIndexedElement\";\n JsxFlags2[JsxFlags2[\"IntrinsicElement\"] = 3] = \"IntrinsicElement\";\n return JsxFlags2;\n})(JsxFlags || {});\nvar RelationComparisonResult = /* @__PURE__ */ ((RelationComparisonResult3) => {\n RelationComparisonResult3[RelationComparisonResult3[\"None\"] = 0] = \"None\";\n RelationComparisonResult3[RelationComparisonResult3[\"Succeeded\"] = 1] = \"Succeeded\";\n RelationComparisonResult3[RelationComparisonResult3[\"Failed\"] = 2] = \"Failed\";\n RelationComparisonResult3[RelationComparisonResult3[\"ReportsUnmeasurable\"] = 8] = \"ReportsUnmeasurable\";\n RelationComparisonResult3[RelationComparisonResult3[\"ReportsUnreliable\"] = 16] = \"ReportsUnreliable\";\n RelationComparisonResult3[RelationComparisonResult3[\"ReportsMask\"] = 24] = \"ReportsMask\";\n RelationComparisonResult3[RelationComparisonResult3[\"ComplexityOverflow\"] = 32] = \"ComplexityOverflow\";\n RelationComparisonResult3[RelationComparisonResult3[\"StackDepthOverflow\"] = 64] = \"StackDepthOverflow\";\n RelationComparisonResult3[RelationComparisonResult3[\"Overflow\"] = 96] = \"Overflow\";\n return RelationComparisonResult3;\n})(RelationComparisonResult || {});\nvar PredicateSemantics = /* @__PURE__ */ ((PredicateSemantics2) => {\n PredicateSemantics2[PredicateSemantics2[\"None\"] = 0] = \"None\";\n PredicateSemantics2[PredicateSemantics2[\"Always\"] = 1] = \"Always\";\n PredicateSemantics2[PredicateSemantics2[\"Never\"] = 2] = \"Never\";\n PredicateSemantics2[PredicateSemantics2[\"Sometimes\"] = 3] = \"Sometimes\";\n return PredicateSemantics2;\n})(PredicateSemantics || {});\nvar GeneratedIdentifierFlags = /* @__PURE__ */ ((GeneratedIdentifierFlags2) => {\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"None\"] = 0] = \"None\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Auto\"] = 1] = \"Auto\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Loop\"] = 2] = \"Loop\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Unique\"] = 3] = \"Unique\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Node\"] = 4] = \"Node\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"KindMask\"] = 7] = \"KindMask\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"ReservedInNestedScopes\"] = 8] = \"ReservedInNestedScopes\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Optimistic\"] = 16] = \"Optimistic\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"FileLevel\"] = 32] = \"FileLevel\";\n GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"AllowNameSubstitution\"] = 64] = \"AllowNameSubstitution\";\n return GeneratedIdentifierFlags2;\n})(GeneratedIdentifierFlags || {});\nvar RegularExpressionFlags = /* @__PURE__ */ ((RegularExpressionFlags2) => {\n RegularExpressionFlags2[RegularExpressionFlags2[\"None\"] = 0] = \"None\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"HasIndices\"] = 1] = \"HasIndices\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"Global\"] = 2] = \"Global\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"IgnoreCase\"] = 4] = \"IgnoreCase\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"Multiline\"] = 8] = \"Multiline\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"DotAll\"] = 16] = \"DotAll\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"Unicode\"] = 32] = \"Unicode\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"UnicodeSets\"] = 64] = \"UnicodeSets\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"Sticky\"] = 128] = \"Sticky\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"AnyUnicodeMode\"] = 96] = \"AnyUnicodeMode\";\n RegularExpressionFlags2[RegularExpressionFlags2[\"Modifiers\"] = 28] = \"Modifiers\";\n return RegularExpressionFlags2;\n})(RegularExpressionFlags || {});\nvar TokenFlags = /* @__PURE__ */ ((TokenFlags2) => {\n TokenFlags2[TokenFlags2[\"None\"] = 0] = \"None\";\n TokenFlags2[TokenFlags2[\"PrecedingLineBreak\"] = 1] = \"PrecedingLineBreak\";\n TokenFlags2[TokenFlags2[\"PrecedingJSDocComment\"] = 2] = \"PrecedingJSDocComment\";\n TokenFlags2[TokenFlags2[\"Unterminated\"] = 4] = \"Unterminated\";\n TokenFlags2[TokenFlags2[\"ExtendedUnicodeEscape\"] = 8] = \"ExtendedUnicodeEscape\";\n TokenFlags2[TokenFlags2[\"Scientific\"] = 16] = \"Scientific\";\n TokenFlags2[TokenFlags2[\"Octal\"] = 32] = \"Octal\";\n TokenFlags2[TokenFlags2[\"HexSpecifier\"] = 64] = \"HexSpecifier\";\n TokenFlags2[TokenFlags2[\"BinarySpecifier\"] = 128] = \"BinarySpecifier\";\n TokenFlags2[TokenFlags2[\"OctalSpecifier\"] = 256] = \"OctalSpecifier\";\n TokenFlags2[TokenFlags2[\"ContainsSeparator\"] = 512] = \"ContainsSeparator\";\n TokenFlags2[TokenFlags2[\"UnicodeEscape\"] = 1024] = \"UnicodeEscape\";\n TokenFlags2[TokenFlags2[\"ContainsInvalidEscape\"] = 2048] = \"ContainsInvalidEscape\";\n TokenFlags2[TokenFlags2[\"HexEscape\"] = 4096] = \"HexEscape\";\n TokenFlags2[TokenFlags2[\"ContainsLeadingZero\"] = 8192] = \"ContainsLeadingZero\";\n TokenFlags2[TokenFlags2[\"ContainsInvalidSeparator\"] = 16384] = \"ContainsInvalidSeparator\";\n TokenFlags2[TokenFlags2[\"PrecedingJSDocLeadingAsterisks\"] = 32768] = \"PrecedingJSDocLeadingAsterisks\";\n TokenFlags2[TokenFlags2[\"BinaryOrOctalSpecifier\"] = 384] = \"BinaryOrOctalSpecifier\";\n TokenFlags2[TokenFlags2[\"WithSpecifier\"] = 448] = \"WithSpecifier\";\n TokenFlags2[TokenFlags2[\"StringLiteralFlags\"] = 7176] = \"StringLiteralFlags\";\n TokenFlags2[TokenFlags2[\"NumericLiteralFlags\"] = 25584] = \"NumericLiteralFlags\";\n TokenFlags2[TokenFlags2[\"TemplateLiteralLikeFlags\"] = 7176] = \"TemplateLiteralLikeFlags\";\n TokenFlags2[TokenFlags2[\"IsInvalid\"] = 26656] = \"IsInvalid\";\n return TokenFlags2;\n})(TokenFlags || {});\nvar FlowFlags = /* @__PURE__ */ ((FlowFlags2) => {\n FlowFlags2[FlowFlags2[\"Unreachable\"] = 1] = \"Unreachable\";\n FlowFlags2[FlowFlags2[\"Start\"] = 2] = \"Start\";\n FlowFlags2[FlowFlags2[\"BranchLabel\"] = 4] = \"BranchLabel\";\n FlowFlags2[FlowFlags2[\"LoopLabel\"] = 8] = \"LoopLabel\";\n FlowFlags2[FlowFlags2[\"Assignment\"] = 16] = \"Assignment\";\n FlowFlags2[FlowFlags2[\"TrueCondition\"] = 32] = \"TrueCondition\";\n FlowFlags2[FlowFlags2[\"FalseCondition\"] = 64] = \"FalseCondition\";\n FlowFlags2[FlowFlags2[\"SwitchClause\"] = 128] = \"SwitchClause\";\n FlowFlags2[FlowFlags2[\"ArrayMutation\"] = 256] = \"ArrayMutation\";\n FlowFlags2[FlowFlags2[\"Call\"] = 512] = \"Call\";\n FlowFlags2[FlowFlags2[\"ReduceLabel\"] = 1024] = \"ReduceLabel\";\n FlowFlags2[FlowFlags2[\"Referenced\"] = 2048] = \"Referenced\";\n FlowFlags2[FlowFlags2[\"Shared\"] = 4096] = \"Shared\";\n FlowFlags2[FlowFlags2[\"Label\"] = 12] = \"Label\";\n FlowFlags2[FlowFlags2[\"Condition\"] = 96] = \"Condition\";\n return FlowFlags2;\n})(FlowFlags || {});\nvar CommentDirectiveType = /* @__PURE__ */ ((CommentDirectiveType2) => {\n CommentDirectiveType2[CommentDirectiveType2[\"ExpectError\"] = 0] = \"ExpectError\";\n CommentDirectiveType2[CommentDirectiveType2[\"Ignore\"] = 1] = \"Ignore\";\n return CommentDirectiveType2;\n})(CommentDirectiveType || {});\nvar OperationCanceledException = class {\n};\nvar FileIncludeKind = /* @__PURE__ */ ((FileIncludeKind2) => {\n FileIncludeKind2[FileIncludeKind2[\"RootFile\"] = 0] = \"RootFile\";\n FileIncludeKind2[FileIncludeKind2[\"SourceFromProjectReference\"] = 1] = \"SourceFromProjectReference\";\n FileIncludeKind2[FileIncludeKind2[\"OutputFromProjectReference\"] = 2] = \"OutputFromProjectReference\";\n FileIncludeKind2[FileIncludeKind2[\"Import\"] = 3] = \"Import\";\n FileIncludeKind2[FileIncludeKind2[\"ReferenceFile\"] = 4] = \"ReferenceFile\";\n FileIncludeKind2[FileIncludeKind2[\"TypeReferenceDirective\"] = 5] = \"TypeReferenceDirective\";\n FileIncludeKind2[FileIncludeKind2[\"LibFile\"] = 6] = \"LibFile\";\n FileIncludeKind2[FileIncludeKind2[\"LibReferenceDirective\"] = 7] = \"LibReferenceDirective\";\n FileIncludeKind2[FileIncludeKind2[\"AutomaticTypeDirectiveFile\"] = 8] = \"AutomaticTypeDirectiveFile\";\n return FileIncludeKind2;\n})(FileIncludeKind || {});\nvar FilePreprocessingDiagnosticsKind = /* @__PURE__ */ ((FilePreprocessingDiagnosticsKind2) => {\n FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"FilePreprocessingLibReferenceDiagnostic\"] = 0] = \"FilePreprocessingLibReferenceDiagnostic\";\n FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"FilePreprocessingFileExplainingDiagnostic\"] = 1] = \"FilePreprocessingFileExplainingDiagnostic\";\n FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"ResolutionDiagnostics\"] = 2] = \"ResolutionDiagnostics\";\n return FilePreprocessingDiagnosticsKind2;\n})(FilePreprocessingDiagnosticsKind || {});\nvar EmitOnly = /* @__PURE__ */ ((EmitOnly4) => {\n EmitOnly4[EmitOnly4[\"Js\"] = 0] = \"Js\";\n EmitOnly4[EmitOnly4[\"Dts\"] = 1] = \"Dts\";\n EmitOnly4[EmitOnly4[\"BuilderSignature\"] = 2] = \"BuilderSignature\";\n return EmitOnly4;\n})(EmitOnly || {});\nvar StructureIsReused = /* @__PURE__ */ ((StructureIsReused2) => {\n StructureIsReused2[StructureIsReused2[\"Not\"] = 0] = \"Not\";\n StructureIsReused2[StructureIsReused2[\"SafeModules\"] = 1] = \"SafeModules\";\n StructureIsReused2[StructureIsReused2[\"Completely\"] = 2] = \"Completely\";\n return StructureIsReused2;\n})(StructureIsReused || {});\nvar ExitStatus = /* @__PURE__ */ ((ExitStatus2) => {\n ExitStatus2[ExitStatus2[\"Success\"] = 0] = \"Success\";\n ExitStatus2[ExitStatus2[\"DiagnosticsPresent_OutputsSkipped\"] = 1] = \"DiagnosticsPresent_OutputsSkipped\";\n ExitStatus2[ExitStatus2[\"DiagnosticsPresent_OutputsGenerated\"] = 2] = \"DiagnosticsPresent_OutputsGenerated\";\n ExitStatus2[ExitStatus2[\"InvalidProject_OutputsSkipped\"] = 3] = \"InvalidProject_OutputsSkipped\";\n ExitStatus2[ExitStatus2[\"ProjectReferenceCycle_OutputsSkipped\"] = 4] = \"ProjectReferenceCycle_OutputsSkipped\";\n return ExitStatus2;\n})(ExitStatus || {});\nvar MemberOverrideStatus = /* @__PURE__ */ ((MemberOverrideStatus2) => {\n MemberOverrideStatus2[MemberOverrideStatus2[\"Ok\"] = 0] = \"Ok\";\n MemberOverrideStatus2[MemberOverrideStatus2[\"NeedsOverride\"] = 1] = \"NeedsOverride\";\n MemberOverrideStatus2[MemberOverrideStatus2[\"HasInvalidOverride\"] = 2] = \"HasInvalidOverride\";\n return MemberOverrideStatus2;\n})(MemberOverrideStatus || {});\nvar UnionReduction = /* @__PURE__ */ ((UnionReduction2) => {\n UnionReduction2[UnionReduction2[\"None\"] = 0] = \"None\";\n UnionReduction2[UnionReduction2[\"Literal\"] = 1] = \"Literal\";\n UnionReduction2[UnionReduction2[\"Subtype\"] = 2] = \"Subtype\";\n return UnionReduction2;\n})(UnionReduction || {});\nvar IntersectionFlags = /* @__PURE__ */ ((IntersectionFlags2) => {\n IntersectionFlags2[IntersectionFlags2[\"None\"] = 0] = \"None\";\n IntersectionFlags2[IntersectionFlags2[\"NoSupertypeReduction\"] = 1] = \"NoSupertypeReduction\";\n IntersectionFlags2[IntersectionFlags2[\"NoConstraintReduction\"] = 2] = \"NoConstraintReduction\";\n return IntersectionFlags2;\n})(IntersectionFlags || {});\nvar ContextFlags = /* @__PURE__ */ ((ContextFlags3) => {\n ContextFlags3[ContextFlags3[\"None\"] = 0] = \"None\";\n ContextFlags3[ContextFlags3[\"Signature\"] = 1] = \"Signature\";\n ContextFlags3[ContextFlags3[\"NoConstraints\"] = 2] = \"NoConstraints\";\n ContextFlags3[ContextFlags3[\"Completions\"] = 4] = \"Completions\";\n ContextFlags3[ContextFlags3[\"SkipBindingPatterns\"] = 8] = \"SkipBindingPatterns\";\n return ContextFlags3;\n})(ContextFlags || {});\nvar NodeBuilderFlags = /* @__PURE__ */ ((NodeBuilderFlags2) => {\n NodeBuilderFlags2[NodeBuilderFlags2[\"None\"] = 0] = \"None\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"NoTruncation\"] = 1] = \"NoTruncation\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"WriteArrayAsGenericType\"] = 2] = \"WriteArrayAsGenericType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"GenerateNamesForShadowedTypeParams\"] = 4] = \"GenerateNamesForShadowedTypeParams\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseStructuralFallback\"] = 8] = \"UseStructuralFallback\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"ForbidIndexedAccessSymbolReferences\"] = 16] = \"ForbidIndexedAccessSymbolReferences\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"WriteTypeArgumentsOfSignature\"] = 32] = \"WriteTypeArgumentsOfSignature\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseFullyQualifiedType\"] = 64] = \"UseFullyQualifiedType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseOnlyExternalAliasing\"] = 128] = \"UseOnlyExternalAliasing\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"SuppressAnyReturnType\"] = 256] = \"SuppressAnyReturnType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"WriteTypeParametersInQualifiedName\"] = 512] = \"WriteTypeParametersInQualifiedName\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"MultilineObjectLiterals\"] = 1024] = \"MultilineObjectLiterals\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"WriteClassExpressionAsTypeLiteral\"] = 2048] = \"WriteClassExpressionAsTypeLiteral\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseTypeOfFunction\"] = 4096] = \"UseTypeOfFunction\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"OmitParameterModifiers\"] = 8192] = \"OmitParameterModifiers\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 16384] = \"UseAliasDefinedOutsideCurrentScope\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"UseSingleQuotesForStringLiteralType\"] = 268435456] = \"UseSingleQuotesForStringLiteralType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"NoTypeReduction\"] = 536870912] = \"NoTypeReduction\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"OmitThisParameter\"] = 33554432] = \"OmitThisParameter\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowThisInObjectLiteral\"] = 32768] = \"AllowThisInObjectLiteral\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowQualifiedNameInPlaceOfIdentifier\"] = 65536] = \"AllowQualifiedNameInPlaceOfIdentifier\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowAnonymousIdentifier\"] = 131072] = \"AllowAnonymousIdentifier\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyUnionOrIntersection\"] = 262144] = \"AllowEmptyUnionOrIntersection\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyTuple\"] = 524288] = \"AllowEmptyTuple\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowUniqueESSymbolType\"] = 1048576] = \"AllowUniqueESSymbolType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyIndexInfoType\"] = 2097152] = \"AllowEmptyIndexInfoType\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"AllowNodeModulesRelativePaths\"] = 67108864] = \"AllowNodeModulesRelativePaths\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"IgnoreErrors\"] = 70221824] = \"IgnoreErrors\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"InObjectTypeLiteral\"] = 4194304] = \"InObjectTypeLiteral\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"InTypeAlias\"] = 8388608] = \"InTypeAlias\";\n NodeBuilderFlags2[NodeBuilderFlags2[\"InInitialEntityName\"] = 16777216] = \"InInitialEntityName\";\n return NodeBuilderFlags2;\n})(NodeBuilderFlags || {});\nvar InternalNodeBuilderFlags = /* @__PURE__ */ ((InternalNodeBuilderFlags2) => {\n InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"None\"] = 0] = \"None\";\n InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"WriteComputedProps\"] = 1] = \"WriteComputedProps\";\n InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"NoSyntacticPrinter\"] = 2] = \"NoSyntacticPrinter\";\n InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"DoNotIncludeSymbolChain\"] = 4] = \"DoNotIncludeSymbolChain\";\n InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"AllowUnresolvedNames\"] = 8] = \"AllowUnresolvedNames\";\n return InternalNodeBuilderFlags2;\n})(InternalNodeBuilderFlags || {});\nvar TypeFormatFlags = /* @__PURE__ */ ((TypeFormatFlags2) => {\n TypeFormatFlags2[TypeFormatFlags2[\"None\"] = 0] = \"None\";\n TypeFormatFlags2[TypeFormatFlags2[\"NoTruncation\"] = 1] = \"NoTruncation\";\n TypeFormatFlags2[TypeFormatFlags2[\"WriteArrayAsGenericType\"] = 2] = \"WriteArrayAsGenericType\";\n TypeFormatFlags2[TypeFormatFlags2[\"GenerateNamesForShadowedTypeParams\"] = 4] = \"GenerateNamesForShadowedTypeParams\";\n TypeFormatFlags2[TypeFormatFlags2[\"UseStructuralFallback\"] = 8] = \"UseStructuralFallback\";\n TypeFormatFlags2[TypeFormatFlags2[\"WriteTypeArgumentsOfSignature\"] = 32] = \"WriteTypeArgumentsOfSignature\";\n TypeFormatFlags2[TypeFormatFlags2[\"UseFullyQualifiedType\"] = 64] = \"UseFullyQualifiedType\";\n TypeFormatFlags2[TypeFormatFlags2[\"SuppressAnyReturnType\"] = 256] = \"SuppressAnyReturnType\";\n TypeFormatFlags2[TypeFormatFlags2[\"MultilineObjectLiterals\"] = 1024] = \"MultilineObjectLiterals\";\n TypeFormatFlags2[TypeFormatFlags2[\"WriteClassExpressionAsTypeLiteral\"] = 2048] = \"WriteClassExpressionAsTypeLiteral\";\n TypeFormatFlags2[TypeFormatFlags2[\"UseTypeOfFunction\"] = 4096] = \"UseTypeOfFunction\";\n TypeFormatFlags2[TypeFormatFlags2[\"OmitParameterModifiers\"] = 8192] = \"OmitParameterModifiers\";\n TypeFormatFlags2[TypeFormatFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 16384] = \"UseAliasDefinedOutsideCurrentScope\";\n TypeFormatFlags2[TypeFormatFlags2[\"UseSingleQuotesForStringLiteralType\"] = 268435456] = \"UseSingleQuotesForStringLiteralType\";\n TypeFormatFlags2[TypeFormatFlags2[\"NoTypeReduction\"] = 536870912] = \"NoTypeReduction\";\n TypeFormatFlags2[TypeFormatFlags2[\"OmitThisParameter\"] = 33554432] = \"OmitThisParameter\";\n TypeFormatFlags2[TypeFormatFlags2[\"AllowUniqueESSymbolType\"] = 1048576] = \"AllowUniqueESSymbolType\";\n TypeFormatFlags2[TypeFormatFlags2[\"AddUndefined\"] = 131072] = \"AddUndefined\";\n TypeFormatFlags2[TypeFormatFlags2[\"WriteArrowStyleSignature\"] = 262144] = \"WriteArrowStyleSignature\";\n TypeFormatFlags2[TypeFormatFlags2[\"InArrayType\"] = 524288] = \"InArrayType\";\n TypeFormatFlags2[TypeFormatFlags2[\"InElementType\"] = 2097152] = \"InElementType\";\n TypeFormatFlags2[TypeFormatFlags2[\"InFirstTypeArgument\"] = 4194304] = \"InFirstTypeArgument\";\n TypeFormatFlags2[TypeFormatFlags2[\"InTypeAlias\"] = 8388608] = \"InTypeAlias\";\n TypeFormatFlags2[TypeFormatFlags2[\"NodeBuilderFlagsMask\"] = 848330095] = \"NodeBuilderFlagsMask\";\n return TypeFormatFlags2;\n})(TypeFormatFlags || {});\nvar SymbolFormatFlags = /* @__PURE__ */ ((SymbolFormatFlags2) => {\n SymbolFormatFlags2[SymbolFormatFlags2[\"None\"] = 0] = \"None\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"WriteTypeParametersOrArguments\"] = 1] = \"WriteTypeParametersOrArguments\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"UseOnlyExternalAliasing\"] = 2] = \"UseOnlyExternalAliasing\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"AllowAnyNodeKind\"] = 4] = \"AllowAnyNodeKind\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 8] = \"UseAliasDefinedOutsideCurrentScope\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"WriteComputedProps\"] = 16] = \"WriteComputedProps\";\n SymbolFormatFlags2[SymbolFormatFlags2[\"DoNotIncludeSymbolChain\"] = 32] = \"DoNotIncludeSymbolChain\";\n return SymbolFormatFlags2;\n})(SymbolFormatFlags || {});\nvar SymbolAccessibility = /* @__PURE__ */ ((SymbolAccessibility2) => {\n SymbolAccessibility2[SymbolAccessibility2[\"Accessible\"] = 0] = \"Accessible\";\n SymbolAccessibility2[SymbolAccessibility2[\"NotAccessible\"] = 1] = \"NotAccessible\";\n SymbolAccessibility2[SymbolAccessibility2[\"CannotBeNamed\"] = 2] = \"CannotBeNamed\";\n SymbolAccessibility2[SymbolAccessibility2[\"NotResolved\"] = 3] = \"NotResolved\";\n return SymbolAccessibility2;\n})(SymbolAccessibility || {});\nvar TypePredicateKind = /* @__PURE__ */ ((TypePredicateKind2) => {\n TypePredicateKind2[TypePredicateKind2[\"This\"] = 0] = \"This\";\n TypePredicateKind2[TypePredicateKind2[\"Identifier\"] = 1] = \"Identifier\";\n TypePredicateKind2[TypePredicateKind2[\"AssertsThis\"] = 2] = \"AssertsThis\";\n TypePredicateKind2[TypePredicateKind2[\"AssertsIdentifier\"] = 3] = \"AssertsIdentifier\";\n return TypePredicateKind2;\n})(TypePredicateKind || {});\nvar TypeReferenceSerializationKind = /* @__PURE__ */ ((TypeReferenceSerializationKind2) => {\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"Unknown\"] = 0] = \"Unknown\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"TypeWithConstructSignatureAndValue\"] = 1] = \"TypeWithConstructSignatureAndValue\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"VoidNullableOrNeverType\"] = 2] = \"VoidNullableOrNeverType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"NumberLikeType\"] = 3] = \"NumberLikeType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"BigIntLikeType\"] = 4] = \"BigIntLikeType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"StringLikeType\"] = 5] = \"StringLikeType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"BooleanType\"] = 6] = \"BooleanType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ArrayLikeType\"] = 7] = \"ArrayLikeType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ESSymbolType\"] = 8] = \"ESSymbolType\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"Promise\"] = 9] = \"Promise\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"TypeWithCallSignature\"] = 10] = \"TypeWithCallSignature\";\n TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ObjectType\"] = 11] = \"ObjectType\";\n return TypeReferenceSerializationKind2;\n})(TypeReferenceSerializationKind || {});\nvar SymbolFlags = /* @__PURE__ */ ((SymbolFlags3) => {\n SymbolFlags3[SymbolFlags3[\"None\"] = 0] = \"None\";\n SymbolFlags3[SymbolFlags3[\"FunctionScopedVariable\"] = 1] = \"FunctionScopedVariable\";\n SymbolFlags3[SymbolFlags3[\"BlockScopedVariable\"] = 2] = \"BlockScopedVariable\";\n SymbolFlags3[SymbolFlags3[\"Property\"] = 4] = \"Property\";\n SymbolFlags3[SymbolFlags3[\"EnumMember\"] = 8] = \"EnumMember\";\n SymbolFlags3[SymbolFlags3[\"Function\"] = 16] = \"Function\";\n SymbolFlags3[SymbolFlags3[\"Class\"] = 32] = \"Class\";\n SymbolFlags3[SymbolFlags3[\"Interface\"] = 64] = \"Interface\";\n SymbolFlags3[SymbolFlags3[\"ConstEnum\"] = 128] = \"ConstEnum\";\n SymbolFlags3[SymbolFlags3[\"RegularEnum\"] = 256] = \"RegularEnum\";\n SymbolFlags3[SymbolFlags3[\"ValueModule\"] = 512] = \"ValueModule\";\n SymbolFlags3[SymbolFlags3[\"NamespaceModule\"] = 1024] = \"NamespaceModule\";\n SymbolFlags3[SymbolFlags3[\"TypeLiteral\"] = 2048] = \"TypeLiteral\";\n SymbolFlags3[SymbolFlags3[\"ObjectLiteral\"] = 4096] = \"ObjectLiteral\";\n SymbolFlags3[SymbolFlags3[\"Method\"] = 8192] = \"Method\";\n SymbolFlags3[SymbolFlags3[\"Constructor\"] = 16384] = \"Constructor\";\n SymbolFlags3[SymbolFlags3[\"GetAccessor\"] = 32768] = \"GetAccessor\";\n SymbolFlags3[SymbolFlags3[\"SetAccessor\"] = 65536] = \"SetAccessor\";\n SymbolFlags3[SymbolFlags3[\"Signature\"] = 131072] = \"Signature\";\n SymbolFlags3[SymbolFlags3[\"TypeParameter\"] = 262144] = \"TypeParameter\";\n SymbolFlags3[SymbolFlags3[\"TypeAlias\"] = 524288] = \"TypeAlias\";\n SymbolFlags3[SymbolFlags3[\"ExportValue\"] = 1048576] = \"ExportValue\";\n SymbolFlags3[SymbolFlags3[\"Alias\"] = 2097152] = \"Alias\";\n SymbolFlags3[SymbolFlags3[\"Prototype\"] = 4194304] = \"Prototype\";\n SymbolFlags3[SymbolFlags3[\"ExportStar\"] = 8388608] = \"ExportStar\";\n SymbolFlags3[SymbolFlags3[\"Optional\"] = 16777216] = \"Optional\";\n SymbolFlags3[SymbolFlags3[\"Transient\"] = 33554432] = \"Transient\";\n SymbolFlags3[SymbolFlags3[\"Assignment\"] = 67108864] = \"Assignment\";\n SymbolFlags3[SymbolFlags3[\"ModuleExports\"] = 134217728] = \"ModuleExports\";\n SymbolFlags3[SymbolFlags3[\"All\"] = -1] = \"All\";\n SymbolFlags3[SymbolFlags3[\"Enum\"] = 384] = \"Enum\";\n SymbolFlags3[SymbolFlags3[\"Variable\"] = 3] = \"Variable\";\n SymbolFlags3[SymbolFlags3[\"Value\"] = 111551] = \"Value\";\n SymbolFlags3[SymbolFlags3[\"Type\"] = 788968] = \"Type\";\n SymbolFlags3[SymbolFlags3[\"Namespace\"] = 1920] = \"Namespace\";\n SymbolFlags3[SymbolFlags3[\"Module\"] = 1536] = \"Module\";\n SymbolFlags3[SymbolFlags3[\"Accessor\"] = 98304] = \"Accessor\";\n SymbolFlags3[SymbolFlags3[\"FunctionScopedVariableExcludes\"] = 111550] = \"FunctionScopedVariableExcludes\";\n SymbolFlags3[SymbolFlags3[\"BlockScopedVariableExcludes\"] = 111551 /* Value */] = \"BlockScopedVariableExcludes\";\n SymbolFlags3[SymbolFlags3[\"ParameterExcludes\"] = 111551 /* Value */] = \"ParameterExcludes\";\n SymbolFlags3[SymbolFlags3[\"PropertyExcludes\"] = 0 /* None */] = \"PropertyExcludes\";\n SymbolFlags3[SymbolFlags3[\"EnumMemberExcludes\"] = 900095] = \"EnumMemberExcludes\";\n SymbolFlags3[SymbolFlags3[\"FunctionExcludes\"] = 110991] = \"FunctionExcludes\";\n SymbolFlags3[SymbolFlags3[\"ClassExcludes\"] = 899503] = \"ClassExcludes\";\n SymbolFlags3[SymbolFlags3[\"InterfaceExcludes\"] = 788872] = \"InterfaceExcludes\";\n SymbolFlags3[SymbolFlags3[\"RegularEnumExcludes\"] = 899327] = \"RegularEnumExcludes\";\n SymbolFlags3[SymbolFlags3[\"ConstEnumExcludes\"] = 899967] = \"ConstEnumExcludes\";\n SymbolFlags3[SymbolFlags3[\"ValueModuleExcludes\"] = 110735] = \"ValueModuleExcludes\";\n SymbolFlags3[SymbolFlags3[\"NamespaceModuleExcludes\"] = 0] = \"NamespaceModuleExcludes\";\n SymbolFlags3[SymbolFlags3[\"MethodExcludes\"] = 103359] = \"MethodExcludes\";\n SymbolFlags3[SymbolFlags3[\"GetAccessorExcludes\"] = 46015] = \"GetAccessorExcludes\";\n SymbolFlags3[SymbolFlags3[\"SetAccessorExcludes\"] = 78783] = \"SetAccessorExcludes\";\n SymbolFlags3[SymbolFlags3[\"AccessorExcludes\"] = 13247] = \"AccessorExcludes\";\n SymbolFlags3[SymbolFlags3[\"TypeParameterExcludes\"] = 526824] = \"TypeParameterExcludes\";\n SymbolFlags3[SymbolFlags3[\"TypeAliasExcludes\"] = 788968 /* Type */] = \"TypeAliasExcludes\";\n SymbolFlags3[SymbolFlags3[\"AliasExcludes\"] = 2097152 /* Alias */] = \"AliasExcludes\";\n SymbolFlags3[SymbolFlags3[\"ModuleMember\"] = 2623475] = \"ModuleMember\";\n SymbolFlags3[SymbolFlags3[\"ExportHasLocal\"] = 944] = \"ExportHasLocal\";\n SymbolFlags3[SymbolFlags3[\"BlockScoped\"] = 418] = \"BlockScoped\";\n SymbolFlags3[SymbolFlags3[\"PropertyOrAccessor\"] = 98308] = \"PropertyOrAccessor\";\n SymbolFlags3[SymbolFlags3[\"ClassMember\"] = 106500] = \"ClassMember\";\n SymbolFlags3[SymbolFlags3[\"ExportSupportsDefaultModifier\"] = 112] = \"ExportSupportsDefaultModifier\";\n SymbolFlags3[SymbolFlags3[\"ExportDoesNotSupportDefaultModifier\"] = -113] = \"ExportDoesNotSupportDefaultModifier\";\n SymbolFlags3[SymbolFlags3[\"Classifiable\"] = 2885600] = \"Classifiable\";\n SymbolFlags3[SymbolFlags3[\"LateBindingContainer\"] = 6256] = \"LateBindingContainer\";\n return SymbolFlags3;\n})(SymbolFlags || {});\nvar CheckFlags = /* @__PURE__ */ ((CheckFlags2) => {\n CheckFlags2[CheckFlags2[\"None\"] = 0] = \"None\";\n CheckFlags2[CheckFlags2[\"Instantiated\"] = 1] = \"Instantiated\";\n CheckFlags2[CheckFlags2[\"SyntheticProperty\"] = 2] = \"SyntheticProperty\";\n CheckFlags2[CheckFlags2[\"SyntheticMethod\"] = 4] = \"SyntheticMethod\";\n CheckFlags2[CheckFlags2[\"Readonly\"] = 8] = \"Readonly\";\n CheckFlags2[CheckFlags2[\"ReadPartial\"] = 16] = \"ReadPartial\";\n CheckFlags2[CheckFlags2[\"WritePartial\"] = 32] = \"WritePartial\";\n CheckFlags2[CheckFlags2[\"HasNonUniformType\"] = 64] = \"HasNonUniformType\";\n CheckFlags2[CheckFlags2[\"HasLiteralType\"] = 128] = \"HasLiteralType\";\n CheckFlags2[CheckFlags2[\"ContainsPublic\"] = 256] = \"ContainsPublic\";\n CheckFlags2[CheckFlags2[\"ContainsProtected\"] = 512] = \"ContainsProtected\";\n CheckFlags2[CheckFlags2[\"ContainsPrivate\"] = 1024] = \"ContainsPrivate\";\n CheckFlags2[CheckFlags2[\"ContainsStatic\"] = 2048] = \"ContainsStatic\";\n CheckFlags2[CheckFlags2[\"Late\"] = 4096] = \"Late\";\n CheckFlags2[CheckFlags2[\"ReverseMapped\"] = 8192] = \"ReverseMapped\";\n CheckFlags2[CheckFlags2[\"OptionalParameter\"] = 16384] = \"OptionalParameter\";\n CheckFlags2[CheckFlags2[\"RestParameter\"] = 32768] = \"RestParameter\";\n CheckFlags2[CheckFlags2[\"DeferredType\"] = 65536] = \"DeferredType\";\n CheckFlags2[CheckFlags2[\"HasNeverType\"] = 131072] = \"HasNeverType\";\n CheckFlags2[CheckFlags2[\"Mapped\"] = 262144] = \"Mapped\";\n CheckFlags2[CheckFlags2[\"StripOptional\"] = 524288] = \"StripOptional\";\n CheckFlags2[CheckFlags2[\"Unresolved\"] = 1048576] = \"Unresolved\";\n CheckFlags2[CheckFlags2[\"Synthetic\"] = 6] = \"Synthetic\";\n CheckFlags2[CheckFlags2[\"Discriminant\"] = 192] = \"Discriminant\";\n CheckFlags2[CheckFlags2[\"Partial\"] = 48] = \"Partial\";\n return CheckFlags2;\n})(CheckFlags || {});\nvar InternalSymbolName = /* @__PURE__ */ ((InternalSymbolName2) => {\n InternalSymbolName2[\"Call\"] = \"__call\";\n InternalSymbolName2[\"Constructor\"] = \"__constructor\";\n InternalSymbolName2[\"New\"] = \"__new\";\n InternalSymbolName2[\"Index\"] = \"__index\";\n InternalSymbolName2[\"ExportStar\"] = \"__export\";\n InternalSymbolName2[\"Global\"] = \"__global\";\n InternalSymbolName2[\"Missing\"] = \"__missing\";\n InternalSymbolName2[\"Type\"] = \"__type\";\n InternalSymbolName2[\"Object\"] = \"__object\";\n InternalSymbolName2[\"JSXAttributes\"] = \"__jsxAttributes\";\n InternalSymbolName2[\"Class\"] = \"__class\";\n InternalSymbolName2[\"Function\"] = \"__function\";\n InternalSymbolName2[\"Computed\"] = \"__computed\";\n InternalSymbolName2[\"Resolving\"] = \"__resolving__\";\n InternalSymbolName2[\"ExportEquals\"] = \"export=\";\n InternalSymbolName2[\"Default\"] = \"default\";\n InternalSymbolName2[\"This\"] = \"this\";\n InternalSymbolName2[\"InstantiationExpression\"] = \"__instantiationExpression\";\n InternalSymbolName2[\"ImportAttributes\"] = \"__importAttributes\";\n return InternalSymbolName2;\n})(InternalSymbolName || {});\nvar NodeCheckFlags = /* @__PURE__ */ ((NodeCheckFlags3) => {\n NodeCheckFlags3[NodeCheckFlags3[\"None\"] = 0] = \"None\";\n NodeCheckFlags3[NodeCheckFlags3[\"TypeChecked\"] = 1] = \"TypeChecked\";\n NodeCheckFlags3[NodeCheckFlags3[\"LexicalThis\"] = 2] = \"LexicalThis\";\n NodeCheckFlags3[NodeCheckFlags3[\"CaptureThis\"] = 4] = \"CaptureThis\";\n NodeCheckFlags3[NodeCheckFlags3[\"CaptureNewTarget\"] = 8] = \"CaptureNewTarget\";\n NodeCheckFlags3[NodeCheckFlags3[\"SuperInstance\"] = 16] = \"SuperInstance\";\n NodeCheckFlags3[NodeCheckFlags3[\"SuperStatic\"] = 32] = \"SuperStatic\";\n NodeCheckFlags3[NodeCheckFlags3[\"ContextChecked\"] = 64] = \"ContextChecked\";\n NodeCheckFlags3[NodeCheckFlags3[\"MethodWithSuperPropertyAccessInAsync\"] = 128] = \"MethodWithSuperPropertyAccessInAsync\";\n NodeCheckFlags3[NodeCheckFlags3[\"MethodWithSuperPropertyAssignmentInAsync\"] = 256] = \"MethodWithSuperPropertyAssignmentInAsync\";\n NodeCheckFlags3[NodeCheckFlags3[\"CaptureArguments\"] = 512] = \"CaptureArguments\";\n NodeCheckFlags3[NodeCheckFlags3[\"EnumValuesComputed\"] = 1024] = \"EnumValuesComputed\";\n NodeCheckFlags3[NodeCheckFlags3[\"LexicalModuleMergesWithClass\"] = 2048] = \"LexicalModuleMergesWithClass\";\n NodeCheckFlags3[NodeCheckFlags3[\"LoopWithCapturedBlockScopedBinding\"] = 4096] = \"LoopWithCapturedBlockScopedBinding\";\n NodeCheckFlags3[NodeCheckFlags3[\"ContainsCapturedBlockScopeBinding\"] = 8192] = \"ContainsCapturedBlockScopeBinding\";\n NodeCheckFlags3[NodeCheckFlags3[\"CapturedBlockScopedBinding\"] = 16384] = \"CapturedBlockScopedBinding\";\n NodeCheckFlags3[NodeCheckFlags3[\"BlockScopedBindingInLoop\"] = 32768] = \"BlockScopedBindingInLoop\";\n NodeCheckFlags3[NodeCheckFlags3[\"NeedsLoopOutParameter\"] = 65536] = \"NeedsLoopOutParameter\";\n NodeCheckFlags3[NodeCheckFlags3[\"AssignmentsMarked\"] = 131072] = \"AssignmentsMarked\";\n NodeCheckFlags3[NodeCheckFlags3[\"ContainsConstructorReference\"] = 262144] = \"ContainsConstructorReference\";\n NodeCheckFlags3[NodeCheckFlags3[\"ConstructorReference\"] = 536870912] = \"ConstructorReference\";\n NodeCheckFlags3[NodeCheckFlags3[\"ContainsClassWithPrivateIdentifiers\"] = 1048576] = \"ContainsClassWithPrivateIdentifiers\";\n NodeCheckFlags3[NodeCheckFlags3[\"ContainsSuperPropertyInStaticInitializer\"] = 2097152] = \"ContainsSuperPropertyInStaticInitializer\";\n NodeCheckFlags3[NodeCheckFlags3[\"InCheckIdentifier\"] = 4194304] = \"InCheckIdentifier\";\n NodeCheckFlags3[NodeCheckFlags3[\"PartiallyTypeChecked\"] = 8388608] = \"PartiallyTypeChecked\";\n NodeCheckFlags3[NodeCheckFlags3[\"LazyFlags\"] = 539358128] = \"LazyFlags\";\n return NodeCheckFlags3;\n})(NodeCheckFlags || {});\nvar TypeFlags = /* @__PURE__ */ ((TypeFlags2) => {\n TypeFlags2[TypeFlags2[\"Any\"] = 1] = \"Any\";\n TypeFlags2[TypeFlags2[\"Unknown\"] = 2] = \"Unknown\";\n TypeFlags2[TypeFlags2[\"String\"] = 4] = \"String\";\n TypeFlags2[TypeFlags2[\"Number\"] = 8] = \"Number\";\n TypeFlags2[TypeFlags2[\"Boolean\"] = 16] = \"Boolean\";\n TypeFlags2[TypeFlags2[\"Enum\"] = 32] = \"Enum\";\n TypeFlags2[TypeFlags2[\"BigInt\"] = 64] = \"BigInt\";\n TypeFlags2[TypeFlags2[\"StringLiteral\"] = 128] = \"StringLiteral\";\n TypeFlags2[TypeFlags2[\"NumberLiteral\"] = 256] = \"NumberLiteral\";\n TypeFlags2[TypeFlags2[\"BooleanLiteral\"] = 512] = \"BooleanLiteral\";\n TypeFlags2[TypeFlags2[\"EnumLiteral\"] = 1024] = \"EnumLiteral\";\n TypeFlags2[TypeFlags2[\"BigIntLiteral\"] = 2048] = \"BigIntLiteral\";\n TypeFlags2[TypeFlags2[\"ESSymbol\"] = 4096] = \"ESSymbol\";\n TypeFlags2[TypeFlags2[\"UniqueESSymbol\"] = 8192] = \"UniqueESSymbol\";\n TypeFlags2[TypeFlags2[\"Void\"] = 16384] = \"Void\";\n TypeFlags2[TypeFlags2[\"Undefined\"] = 32768] = \"Undefined\";\n TypeFlags2[TypeFlags2[\"Null\"] = 65536] = \"Null\";\n TypeFlags2[TypeFlags2[\"Never\"] = 131072] = \"Never\";\n TypeFlags2[TypeFlags2[\"TypeParameter\"] = 262144] = \"TypeParameter\";\n TypeFlags2[TypeFlags2[\"Object\"] = 524288] = \"Object\";\n TypeFlags2[TypeFlags2[\"Union\"] = 1048576] = \"Union\";\n TypeFlags2[TypeFlags2[\"Intersection\"] = 2097152] = \"Intersection\";\n TypeFlags2[TypeFlags2[\"Index\"] = 4194304] = \"Index\";\n TypeFlags2[TypeFlags2[\"IndexedAccess\"] = 8388608] = \"IndexedAccess\";\n TypeFlags2[TypeFlags2[\"Conditional\"] = 16777216] = \"Conditional\";\n TypeFlags2[TypeFlags2[\"Substitution\"] = 33554432] = \"Substitution\";\n TypeFlags2[TypeFlags2[\"NonPrimitive\"] = 67108864] = \"NonPrimitive\";\n TypeFlags2[TypeFlags2[\"TemplateLiteral\"] = 134217728] = \"TemplateLiteral\";\n TypeFlags2[TypeFlags2[\"StringMapping\"] = 268435456] = \"StringMapping\";\n TypeFlags2[TypeFlags2[\"Reserved1\"] = 536870912] = \"Reserved1\";\n TypeFlags2[TypeFlags2[\"Reserved2\"] = 1073741824] = \"Reserved2\";\n TypeFlags2[TypeFlags2[\"AnyOrUnknown\"] = 3] = \"AnyOrUnknown\";\n TypeFlags2[TypeFlags2[\"Nullable\"] = 98304] = \"Nullable\";\n TypeFlags2[TypeFlags2[\"Literal\"] = 2944] = \"Literal\";\n TypeFlags2[TypeFlags2[\"Unit\"] = 109472] = \"Unit\";\n TypeFlags2[TypeFlags2[\"Freshable\"] = 2976] = \"Freshable\";\n TypeFlags2[TypeFlags2[\"StringOrNumberLiteral\"] = 384] = \"StringOrNumberLiteral\";\n TypeFlags2[TypeFlags2[\"StringOrNumberLiteralOrUnique\"] = 8576] = \"StringOrNumberLiteralOrUnique\";\n TypeFlags2[TypeFlags2[\"DefinitelyFalsy\"] = 117632] = \"DefinitelyFalsy\";\n TypeFlags2[TypeFlags2[\"PossiblyFalsy\"] = 117724] = \"PossiblyFalsy\";\n TypeFlags2[TypeFlags2[\"Intrinsic\"] = 67359327] = \"Intrinsic\";\n TypeFlags2[TypeFlags2[\"StringLike\"] = 402653316] = \"StringLike\";\n TypeFlags2[TypeFlags2[\"NumberLike\"] = 296] = \"NumberLike\";\n TypeFlags2[TypeFlags2[\"BigIntLike\"] = 2112] = \"BigIntLike\";\n TypeFlags2[TypeFlags2[\"BooleanLike\"] = 528] = \"BooleanLike\";\n TypeFlags2[TypeFlags2[\"EnumLike\"] = 1056] = \"EnumLike\";\n TypeFlags2[TypeFlags2[\"ESSymbolLike\"] = 12288] = \"ESSymbolLike\";\n TypeFlags2[TypeFlags2[\"VoidLike\"] = 49152] = \"VoidLike\";\n TypeFlags2[TypeFlags2[\"Primitive\"] = 402784252] = \"Primitive\";\n TypeFlags2[TypeFlags2[\"DefinitelyNonNullable\"] = 470302716] = \"DefinitelyNonNullable\";\n TypeFlags2[TypeFlags2[\"DisjointDomains\"] = 469892092] = \"DisjointDomains\";\n TypeFlags2[TypeFlags2[\"UnionOrIntersection\"] = 3145728] = \"UnionOrIntersection\";\n TypeFlags2[TypeFlags2[\"StructuredType\"] = 3670016] = \"StructuredType\";\n TypeFlags2[TypeFlags2[\"TypeVariable\"] = 8650752] = \"TypeVariable\";\n TypeFlags2[TypeFlags2[\"InstantiableNonPrimitive\"] = 58982400] = \"InstantiableNonPrimitive\";\n TypeFlags2[TypeFlags2[\"InstantiablePrimitive\"] = 406847488] = \"InstantiablePrimitive\";\n TypeFlags2[TypeFlags2[\"Instantiable\"] = 465829888] = \"Instantiable\";\n TypeFlags2[TypeFlags2[\"StructuredOrInstantiable\"] = 469499904] = \"StructuredOrInstantiable\";\n TypeFlags2[TypeFlags2[\"ObjectFlagsType\"] = 3899393] = \"ObjectFlagsType\";\n TypeFlags2[TypeFlags2[\"Simplifiable\"] = 25165824] = \"Simplifiable\";\n TypeFlags2[TypeFlags2[\"Singleton\"] = 67358815] = \"Singleton\";\n TypeFlags2[TypeFlags2[\"Narrowable\"] = 536624127] = \"Narrowable\";\n TypeFlags2[TypeFlags2[\"IncludesMask\"] = 473694207] = \"IncludesMask\";\n TypeFlags2[TypeFlags2[\"IncludesMissingType\"] = 262144 /* TypeParameter */] = \"IncludesMissingType\";\n TypeFlags2[TypeFlags2[\"IncludesNonWideningType\"] = 4194304 /* Index */] = \"IncludesNonWideningType\";\n TypeFlags2[TypeFlags2[\"IncludesWildcard\"] = 8388608 /* IndexedAccess */] = \"IncludesWildcard\";\n TypeFlags2[TypeFlags2[\"IncludesEmptyObject\"] = 16777216 /* Conditional */] = \"IncludesEmptyObject\";\n TypeFlags2[TypeFlags2[\"IncludesInstantiable\"] = 33554432 /* Substitution */] = \"IncludesInstantiable\";\n TypeFlags2[TypeFlags2[\"IncludesConstrainedTypeVariable\"] = 536870912 /* Reserved1 */] = \"IncludesConstrainedTypeVariable\";\n TypeFlags2[TypeFlags2[\"IncludesError\"] = 1073741824 /* Reserved2 */] = \"IncludesError\";\n TypeFlags2[TypeFlags2[\"NotPrimitiveUnion\"] = 36323331] = \"NotPrimitiveUnion\";\n return TypeFlags2;\n})(TypeFlags || {});\nvar ObjectFlags = /* @__PURE__ */ ((ObjectFlags3) => {\n ObjectFlags3[ObjectFlags3[\"None\"] = 0] = \"None\";\n ObjectFlags3[ObjectFlags3[\"Class\"] = 1] = \"Class\";\n ObjectFlags3[ObjectFlags3[\"Interface\"] = 2] = \"Interface\";\n ObjectFlags3[ObjectFlags3[\"Reference\"] = 4] = \"Reference\";\n ObjectFlags3[ObjectFlags3[\"Tuple\"] = 8] = \"Tuple\";\n ObjectFlags3[ObjectFlags3[\"Anonymous\"] = 16] = \"Anonymous\";\n ObjectFlags3[ObjectFlags3[\"Mapped\"] = 32] = \"Mapped\";\n ObjectFlags3[ObjectFlags3[\"Instantiated\"] = 64] = \"Instantiated\";\n ObjectFlags3[ObjectFlags3[\"ObjectLiteral\"] = 128] = \"ObjectLiteral\";\n ObjectFlags3[ObjectFlags3[\"EvolvingArray\"] = 256] = \"EvolvingArray\";\n ObjectFlags3[ObjectFlags3[\"ObjectLiteralPatternWithComputedProperties\"] = 512] = \"ObjectLiteralPatternWithComputedProperties\";\n ObjectFlags3[ObjectFlags3[\"ReverseMapped\"] = 1024] = \"ReverseMapped\";\n ObjectFlags3[ObjectFlags3[\"JsxAttributes\"] = 2048] = \"JsxAttributes\";\n ObjectFlags3[ObjectFlags3[\"JSLiteral\"] = 4096] = \"JSLiteral\";\n ObjectFlags3[ObjectFlags3[\"FreshLiteral\"] = 8192] = \"FreshLiteral\";\n ObjectFlags3[ObjectFlags3[\"ArrayLiteral\"] = 16384] = \"ArrayLiteral\";\n ObjectFlags3[ObjectFlags3[\"PrimitiveUnion\"] = 32768] = \"PrimitiveUnion\";\n ObjectFlags3[ObjectFlags3[\"ContainsWideningType\"] = 65536] = \"ContainsWideningType\";\n ObjectFlags3[ObjectFlags3[\"ContainsObjectOrArrayLiteral\"] = 131072] = \"ContainsObjectOrArrayLiteral\";\n ObjectFlags3[ObjectFlags3[\"NonInferrableType\"] = 262144] = \"NonInferrableType\";\n ObjectFlags3[ObjectFlags3[\"CouldContainTypeVariablesComputed\"] = 524288] = \"CouldContainTypeVariablesComputed\";\n ObjectFlags3[ObjectFlags3[\"CouldContainTypeVariables\"] = 1048576] = \"CouldContainTypeVariables\";\n ObjectFlags3[ObjectFlags3[\"SingleSignatureType\"] = 134217728] = \"SingleSignatureType\";\n ObjectFlags3[ObjectFlags3[\"ClassOrInterface\"] = 3] = \"ClassOrInterface\";\n ObjectFlags3[ObjectFlags3[\"RequiresWidening\"] = 196608] = \"RequiresWidening\";\n ObjectFlags3[ObjectFlags3[\"PropagatingFlags\"] = 458752] = \"PropagatingFlags\";\n ObjectFlags3[ObjectFlags3[\"InstantiatedMapped\"] = 96] = \"InstantiatedMapped\";\n ObjectFlags3[ObjectFlags3[\"ObjectTypeKindMask\"] = 1343] = \"ObjectTypeKindMask\";\n ObjectFlags3[ObjectFlags3[\"ContainsSpread\"] = 2097152] = \"ContainsSpread\";\n ObjectFlags3[ObjectFlags3[\"ObjectRestType\"] = 4194304] = \"ObjectRestType\";\n ObjectFlags3[ObjectFlags3[\"InstantiationExpressionType\"] = 8388608] = \"InstantiationExpressionType\";\n ObjectFlags3[ObjectFlags3[\"IsClassInstanceClone\"] = 16777216] = \"IsClassInstanceClone\";\n ObjectFlags3[ObjectFlags3[\"IdenticalBaseTypeCalculated\"] = 33554432] = \"IdenticalBaseTypeCalculated\";\n ObjectFlags3[ObjectFlags3[\"IdenticalBaseTypeExists\"] = 67108864] = \"IdenticalBaseTypeExists\";\n ObjectFlags3[ObjectFlags3[\"IsGenericTypeComputed\"] = 2097152] = \"IsGenericTypeComputed\";\n ObjectFlags3[ObjectFlags3[\"IsGenericObjectType\"] = 4194304] = \"IsGenericObjectType\";\n ObjectFlags3[ObjectFlags3[\"IsGenericIndexType\"] = 8388608] = \"IsGenericIndexType\";\n ObjectFlags3[ObjectFlags3[\"IsGenericType\"] = 12582912] = \"IsGenericType\";\n ObjectFlags3[ObjectFlags3[\"ContainsIntersections\"] = 16777216] = \"ContainsIntersections\";\n ObjectFlags3[ObjectFlags3[\"IsUnknownLikeUnionComputed\"] = 33554432] = \"IsUnknownLikeUnionComputed\";\n ObjectFlags3[ObjectFlags3[\"IsUnknownLikeUnion\"] = 67108864] = \"IsUnknownLikeUnion\";\n ObjectFlags3[ObjectFlags3[\"IsNeverIntersectionComputed\"] = 16777216] = \"IsNeverIntersectionComputed\";\n ObjectFlags3[ObjectFlags3[\"IsNeverIntersection\"] = 33554432] = \"IsNeverIntersection\";\n ObjectFlags3[ObjectFlags3[\"IsConstrainedTypeVariable\"] = 67108864] = \"IsConstrainedTypeVariable\";\n return ObjectFlags3;\n})(ObjectFlags || {});\nvar VarianceFlags = /* @__PURE__ */ ((VarianceFlags2) => {\n VarianceFlags2[VarianceFlags2[\"Invariant\"] = 0] = \"Invariant\";\n VarianceFlags2[VarianceFlags2[\"Covariant\"] = 1] = \"Covariant\";\n VarianceFlags2[VarianceFlags2[\"Contravariant\"] = 2] = \"Contravariant\";\n VarianceFlags2[VarianceFlags2[\"Bivariant\"] = 3] = \"Bivariant\";\n VarianceFlags2[VarianceFlags2[\"Independent\"] = 4] = \"Independent\";\n VarianceFlags2[VarianceFlags2[\"VarianceMask\"] = 7] = \"VarianceMask\";\n VarianceFlags2[VarianceFlags2[\"Unmeasurable\"] = 8] = \"Unmeasurable\";\n VarianceFlags2[VarianceFlags2[\"Unreliable\"] = 16] = \"Unreliable\";\n VarianceFlags2[VarianceFlags2[\"AllowsStructuralFallback\"] = 24] = \"AllowsStructuralFallback\";\n return VarianceFlags2;\n})(VarianceFlags || {});\nvar ElementFlags = /* @__PURE__ */ ((ElementFlags2) => {\n ElementFlags2[ElementFlags2[\"Required\"] = 1] = \"Required\";\n ElementFlags2[ElementFlags2[\"Optional\"] = 2] = \"Optional\";\n ElementFlags2[ElementFlags2[\"Rest\"] = 4] = \"Rest\";\n ElementFlags2[ElementFlags2[\"Variadic\"] = 8] = \"Variadic\";\n ElementFlags2[ElementFlags2[\"Fixed\"] = 3] = \"Fixed\";\n ElementFlags2[ElementFlags2[\"Variable\"] = 12] = \"Variable\";\n ElementFlags2[ElementFlags2[\"NonRequired\"] = 14] = \"NonRequired\";\n ElementFlags2[ElementFlags2[\"NonRest\"] = 11] = \"NonRest\";\n return ElementFlags2;\n})(ElementFlags || {});\nvar AccessFlags = /* @__PURE__ */ ((AccessFlags2) => {\n AccessFlags2[AccessFlags2[\"None\"] = 0] = \"None\";\n AccessFlags2[AccessFlags2[\"IncludeUndefined\"] = 1] = \"IncludeUndefined\";\n AccessFlags2[AccessFlags2[\"NoIndexSignatures\"] = 2] = \"NoIndexSignatures\";\n AccessFlags2[AccessFlags2[\"Writing\"] = 4] = \"Writing\";\n AccessFlags2[AccessFlags2[\"CacheSymbol\"] = 8] = \"CacheSymbol\";\n AccessFlags2[AccessFlags2[\"AllowMissing\"] = 16] = \"AllowMissing\";\n AccessFlags2[AccessFlags2[\"ExpressionPosition\"] = 32] = \"ExpressionPosition\";\n AccessFlags2[AccessFlags2[\"ReportDeprecated\"] = 64] = \"ReportDeprecated\";\n AccessFlags2[AccessFlags2[\"SuppressNoImplicitAnyError\"] = 128] = \"SuppressNoImplicitAnyError\";\n AccessFlags2[AccessFlags2[\"Contextual\"] = 256] = \"Contextual\";\n AccessFlags2[AccessFlags2[\"Persistent\"] = 1 /* IncludeUndefined */] = \"Persistent\";\n return AccessFlags2;\n})(AccessFlags || {});\nvar IndexFlags = /* @__PURE__ */ ((IndexFlags2) => {\n IndexFlags2[IndexFlags2[\"None\"] = 0] = \"None\";\n IndexFlags2[IndexFlags2[\"StringsOnly\"] = 1] = \"StringsOnly\";\n IndexFlags2[IndexFlags2[\"NoIndexSignatures\"] = 2] = \"NoIndexSignatures\";\n IndexFlags2[IndexFlags2[\"NoReducibleCheck\"] = 4] = \"NoReducibleCheck\";\n return IndexFlags2;\n})(IndexFlags || {});\nvar JsxReferenceKind = /* @__PURE__ */ ((JsxReferenceKind2) => {\n JsxReferenceKind2[JsxReferenceKind2[\"Component\"] = 0] = \"Component\";\n JsxReferenceKind2[JsxReferenceKind2[\"Function\"] = 1] = \"Function\";\n JsxReferenceKind2[JsxReferenceKind2[\"Mixed\"] = 2] = \"Mixed\";\n return JsxReferenceKind2;\n})(JsxReferenceKind || {});\nvar SignatureKind = /* @__PURE__ */ ((SignatureKind2) => {\n SignatureKind2[SignatureKind2[\"Call\"] = 0] = \"Call\";\n SignatureKind2[SignatureKind2[\"Construct\"] = 1] = \"Construct\";\n return SignatureKind2;\n})(SignatureKind || {});\nvar SignatureFlags = /* @__PURE__ */ ((SignatureFlags5) => {\n SignatureFlags5[SignatureFlags5[\"None\"] = 0] = \"None\";\n SignatureFlags5[SignatureFlags5[\"HasRestParameter\"] = 1] = \"HasRestParameter\";\n SignatureFlags5[SignatureFlags5[\"HasLiteralTypes\"] = 2] = \"HasLiteralTypes\";\n SignatureFlags5[SignatureFlags5[\"Abstract\"] = 4] = \"Abstract\";\n SignatureFlags5[SignatureFlags5[\"IsInnerCallChain\"] = 8] = \"IsInnerCallChain\";\n SignatureFlags5[SignatureFlags5[\"IsOuterCallChain\"] = 16] = \"IsOuterCallChain\";\n SignatureFlags5[SignatureFlags5[\"IsUntypedSignatureInJSFile\"] = 32] = \"IsUntypedSignatureInJSFile\";\n SignatureFlags5[SignatureFlags5[\"IsNonInferrable\"] = 64] = \"IsNonInferrable\";\n SignatureFlags5[SignatureFlags5[\"IsSignatureCandidateForOverloadFailure\"] = 128] = \"IsSignatureCandidateForOverloadFailure\";\n SignatureFlags5[SignatureFlags5[\"PropagatingFlags\"] = 167] = \"PropagatingFlags\";\n SignatureFlags5[SignatureFlags5[\"CallChainFlags\"] = 24] = \"CallChainFlags\";\n return SignatureFlags5;\n})(SignatureFlags || {});\nvar IndexKind = /* @__PURE__ */ ((IndexKind2) => {\n IndexKind2[IndexKind2[\"String\"] = 0] = \"String\";\n IndexKind2[IndexKind2[\"Number\"] = 1] = \"Number\";\n return IndexKind2;\n})(IndexKind || {});\nvar TypeMapKind = /* @__PURE__ */ ((TypeMapKind2) => {\n TypeMapKind2[TypeMapKind2[\"Simple\"] = 0] = \"Simple\";\n TypeMapKind2[TypeMapKind2[\"Array\"] = 1] = \"Array\";\n TypeMapKind2[TypeMapKind2[\"Deferred\"] = 2] = \"Deferred\";\n TypeMapKind2[TypeMapKind2[\"Function\"] = 3] = \"Function\";\n TypeMapKind2[TypeMapKind2[\"Composite\"] = 4] = \"Composite\";\n TypeMapKind2[TypeMapKind2[\"Merged\"] = 5] = \"Merged\";\n return TypeMapKind2;\n})(TypeMapKind || {});\nvar InferencePriority = /* @__PURE__ */ ((InferencePriority2) => {\n InferencePriority2[InferencePriority2[\"None\"] = 0] = \"None\";\n InferencePriority2[InferencePriority2[\"NakedTypeVariable\"] = 1] = \"NakedTypeVariable\";\n InferencePriority2[InferencePriority2[\"SpeculativeTuple\"] = 2] = \"SpeculativeTuple\";\n InferencePriority2[InferencePriority2[\"SubstituteSource\"] = 4] = \"SubstituteSource\";\n InferencePriority2[InferencePriority2[\"HomomorphicMappedType\"] = 8] = \"HomomorphicMappedType\";\n InferencePriority2[InferencePriority2[\"PartialHomomorphicMappedType\"] = 16] = \"PartialHomomorphicMappedType\";\n InferencePriority2[InferencePriority2[\"MappedTypeConstraint\"] = 32] = \"MappedTypeConstraint\";\n InferencePriority2[InferencePriority2[\"ContravariantConditional\"] = 64] = \"ContravariantConditional\";\n InferencePriority2[InferencePriority2[\"ReturnType\"] = 128] = \"ReturnType\";\n InferencePriority2[InferencePriority2[\"LiteralKeyof\"] = 256] = \"LiteralKeyof\";\n InferencePriority2[InferencePriority2[\"NoConstraints\"] = 512] = \"NoConstraints\";\n InferencePriority2[InferencePriority2[\"AlwaysStrict\"] = 1024] = \"AlwaysStrict\";\n InferencePriority2[InferencePriority2[\"MaxValue\"] = 2048] = \"MaxValue\";\n InferencePriority2[InferencePriority2[\"PriorityImpliesCombination\"] = 416] = \"PriorityImpliesCombination\";\n InferencePriority2[InferencePriority2[\"Circularity\"] = -1] = \"Circularity\";\n return InferencePriority2;\n})(InferencePriority || {});\nvar InferenceFlags = /* @__PURE__ */ ((InferenceFlags2) => {\n InferenceFlags2[InferenceFlags2[\"None\"] = 0] = \"None\";\n InferenceFlags2[InferenceFlags2[\"NoDefault\"] = 1] = \"NoDefault\";\n InferenceFlags2[InferenceFlags2[\"AnyDefault\"] = 2] = \"AnyDefault\";\n InferenceFlags2[InferenceFlags2[\"SkippedGenericFunction\"] = 4] = \"SkippedGenericFunction\";\n return InferenceFlags2;\n})(InferenceFlags || {});\nvar Ternary = /* @__PURE__ */ ((Ternary2) => {\n Ternary2[Ternary2[\"False\"] = 0] = \"False\";\n Ternary2[Ternary2[\"Unknown\"] = 1] = \"Unknown\";\n Ternary2[Ternary2[\"Maybe\"] = 3] = \"Maybe\";\n Ternary2[Ternary2[\"True\"] = -1] = \"True\";\n return Ternary2;\n})(Ternary || {});\nvar AssignmentDeclarationKind = /* @__PURE__ */ ((AssignmentDeclarationKind2) => {\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"None\"] = 0] = \"None\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ExportsProperty\"] = 1] = \"ExportsProperty\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ModuleExports\"] = 2] = \"ModuleExports\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"PrototypeProperty\"] = 3] = \"PrototypeProperty\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ThisProperty\"] = 4] = \"ThisProperty\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"Property\"] = 5] = \"Property\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"Prototype\"] = 6] = \"Prototype\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePropertyValue\"] = 7] = \"ObjectDefinePropertyValue\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePropertyExports\"] = 8] = \"ObjectDefinePropertyExports\";\n AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePrototypeProperty\"] = 9] = \"ObjectDefinePrototypeProperty\";\n return AssignmentDeclarationKind2;\n})(AssignmentDeclarationKind || {});\nvar DiagnosticCategory = /* @__PURE__ */ ((DiagnosticCategory2) => {\n DiagnosticCategory2[DiagnosticCategory2[\"Warning\"] = 0] = \"Warning\";\n DiagnosticCategory2[DiagnosticCategory2[\"Error\"] = 1] = \"Error\";\n DiagnosticCategory2[DiagnosticCategory2[\"Suggestion\"] = 2] = \"Suggestion\";\n DiagnosticCategory2[DiagnosticCategory2[\"Message\"] = 3] = \"Message\";\n return DiagnosticCategory2;\n})(DiagnosticCategory || {});\nfunction diagnosticCategoryName(d, lowerCase = true) {\n const name = DiagnosticCategory[d.category];\n return lowerCase ? name.toLowerCase() : name;\n}\nvar ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind3) => {\n ModuleResolutionKind3[ModuleResolutionKind3[\"Classic\"] = 1] = \"Classic\";\n ModuleResolutionKind3[ModuleResolutionKind3[\"NodeJs\"] = 2] = \"NodeJs\";\n ModuleResolutionKind3[ModuleResolutionKind3[\"Node10\"] = 2] = \"Node10\";\n ModuleResolutionKind3[ModuleResolutionKind3[\"Node16\"] = 3] = \"Node16\";\n ModuleResolutionKind3[ModuleResolutionKind3[\"NodeNext\"] = 99] = \"NodeNext\";\n ModuleResolutionKind3[ModuleResolutionKind3[\"Bundler\"] = 100] = \"Bundler\";\n return ModuleResolutionKind3;\n})(ModuleResolutionKind || {});\nvar ModuleDetectionKind = /* @__PURE__ */ ((ModuleDetectionKind2) => {\n ModuleDetectionKind2[ModuleDetectionKind2[\"Legacy\"] = 1] = \"Legacy\";\n ModuleDetectionKind2[ModuleDetectionKind2[\"Auto\"] = 2] = \"Auto\";\n ModuleDetectionKind2[ModuleDetectionKind2[\"Force\"] = 3] = \"Force\";\n return ModuleDetectionKind2;\n})(ModuleDetectionKind || {});\nvar WatchFileKind = /* @__PURE__ */ ((WatchFileKind3) => {\n WatchFileKind3[WatchFileKind3[\"FixedPollingInterval\"] = 0] = \"FixedPollingInterval\";\n WatchFileKind3[WatchFileKind3[\"PriorityPollingInterval\"] = 1] = \"PriorityPollingInterval\";\n WatchFileKind3[WatchFileKind3[\"DynamicPriorityPolling\"] = 2] = \"DynamicPriorityPolling\";\n WatchFileKind3[WatchFileKind3[\"FixedChunkSizePolling\"] = 3] = \"FixedChunkSizePolling\";\n WatchFileKind3[WatchFileKind3[\"UseFsEvents\"] = 4] = \"UseFsEvents\";\n WatchFileKind3[WatchFileKind3[\"UseFsEventsOnParentDirectory\"] = 5] = \"UseFsEventsOnParentDirectory\";\n return WatchFileKind3;\n})(WatchFileKind || {});\nvar WatchDirectoryKind = /* @__PURE__ */ ((WatchDirectoryKind3) => {\n WatchDirectoryKind3[WatchDirectoryKind3[\"UseFsEvents\"] = 0] = \"UseFsEvents\";\n WatchDirectoryKind3[WatchDirectoryKind3[\"FixedPollingInterval\"] = 1] = \"FixedPollingInterval\";\n WatchDirectoryKind3[WatchDirectoryKind3[\"DynamicPriorityPolling\"] = 2] = \"DynamicPriorityPolling\";\n WatchDirectoryKind3[WatchDirectoryKind3[\"FixedChunkSizePolling\"] = 3] = \"FixedChunkSizePolling\";\n return WatchDirectoryKind3;\n})(WatchDirectoryKind || {});\nvar PollingWatchKind = /* @__PURE__ */ ((PollingWatchKind3) => {\n PollingWatchKind3[PollingWatchKind3[\"FixedInterval\"] = 0] = \"FixedInterval\";\n PollingWatchKind3[PollingWatchKind3[\"PriorityInterval\"] = 1] = \"PriorityInterval\";\n PollingWatchKind3[PollingWatchKind3[\"DynamicPriority\"] = 2] = \"DynamicPriority\";\n PollingWatchKind3[PollingWatchKind3[\"FixedChunkSize\"] = 3] = \"FixedChunkSize\";\n return PollingWatchKind3;\n})(PollingWatchKind || {});\nvar ModuleKind = /* @__PURE__ */ ((ModuleKind3) => {\n ModuleKind3[ModuleKind3[\"None\"] = 0] = \"None\";\n ModuleKind3[ModuleKind3[\"CommonJS\"] = 1] = \"CommonJS\";\n ModuleKind3[ModuleKind3[\"AMD\"] = 2] = \"AMD\";\n ModuleKind3[ModuleKind3[\"UMD\"] = 3] = \"UMD\";\n ModuleKind3[ModuleKind3[\"System\"] = 4] = \"System\";\n ModuleKind3[ModuleKind3[\"ES2015\"] = 5] = \"ES2015\";\n ModuleKind3[ModuleKind3[\"ES2020\"] = 6] = \"ES2020\";\n ModuleKind3[ModuleKind3[\"ES2022\"] = 7] = \"ES2022\";\n ModuleKind3[ModuleKind3[\"ESNext\"] = 99] = \"ESNext\";\n ModuleKind3[ModuleKind3[\"Node16\"] = 100] = \"Node16\";\n ModuleKind3[ModuleKind3[\"Node18\"] = 101] = \"Node18\";\n ModuleKind3[ModuleKind3[\"Node20\"] = 102] = \"Node20\";\n ModuleKind3[ModuleKind3[\"NodeNext\"] = 199] = \"NodeNext\";\n ModuleKind3[ModuleKind3[\"Preserve\"] = 200] = \"Preserve\";\n return ModuleKind3;\n})(ModuleKind || {});\nvar JsxEmit = /* @__PURE__ */ ((JsxEmit3) => {\n JsxEmit3[JsxEmit3[\"None\"] = 0] = \"None\";\n JsxEmit3[JsxEmit3[\"Preserve\"] = 1] = \"Preserve\";\n JsxEmit3[JsxEmit3[\"React\"] = 2] = \"React\";\n JsxEmit3[JsxEmit3[\"ReactNative\"] = 3] = \"ReactNative\";\n JsxEmit3[JsxEmit3[\"ReactJSX\"] = 4] = \"ReactJSX\";\n JsxEmit3[JsxEmit3[\"ReactJSXDev\"] = 5] = \"ReactJSXDev\";\n return JsxEmit3;\n})(JsxEmit || {});\nvar ImportsNotUsedAsValues = /* @__PURE__ */ ((ImportsNotUsedAsValues2) => {\n ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Remove\"] = 0] = \"Remove\";\n ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Preserve\"] = 1] = \"Preserve\";\n ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Error\"] = 2] = \"Error\";\n return ImportsNotUsedAsValues2;\n})(ImportsNotUsedAsValues || {});\nvar NewLineKind = /* @__PURE__ */ ((NewLineKind3) => {\n NewLineKind3[NewLineKind3[\"CarriageReturnLineFeed\"] = 0] = \"CarriageReturnLineFeed\";\n NewLineKind3[NewLineKind3[\"LineFeed\"] = 1] = \"LineFeed\";\n return NewLineKind3;\n})(NewLineKind || {});\nvar ScriptKind = /* @__PURE__ */ ((ScriptKind7) => {\n ScriptKind7[ScriptKind7[\"Unknown\"] = 0] = \"Unknown\";\n ScriptKind7[ScriptKind7[\"JS\"] = 1] = \"JS\";\n ScriptKind7[ScriptKind7[\"JSX\"] = 2] = \"JSX\";\n ScriptKind7[ScriptKind7[\"TS\"] = 3] = \"TS\";\n ScriptKind7[ScriptKind7[\"TSX\"] = 4] = \"TSX\";\n ScriptKind7[ScriptKind7[\"External\"] = 5] = \"External\";\n ScriptKind7[ScriptKind7[\"JSON\"] = 6] = \"JSON\";\n ScriptKind7[ScriptKind7[\"Deferred\"] = 7] = \"Deferred\";\n return ScriptKind7;\n})(ScriptKind || {});\nvar ScriptTarget = /* @__PURE__ */ ((ScriptTarget12) => {\n ScriptTarget12[ScriptTarget12[\"ES3\"] = 0] = \"ES3\";\n ScriptTarget12[ScriptTarget12[\"ES5\"] = 1] = \"ES5\";\n ScriptTarget12[ScriptTarget12[\"ES2015\"] = 2] = \"ES2015\";\n ScriptTarget12[ScriptTarget12[\"ES2016\"] = 3] = \"ES2016\";\n ScriptTarget12[ScriptTarget12[\"ES2017\"] = 4] = \"ES2017\";\n ScriptTarget12[ScriptTarget12[\"ES2018\"] = 5] = \"ES2018\";\n ScriptTarget12[ScriptTarget12[\"ES2019\"] = 6] = \"ES2019\";\n ScriptTarget12[ScriptTarget12[\"ES2020\"] = 7] = \"ES2020\";\n ScriptTarget12[ScriptTarget12[\"ES2021\"] = 8] = \"ES2021\";\n ScriptTarget12[ScriptTarget12[\"ES2022\"] = 9] = \"ES2022\";\n ScriptTarget12[ScriptTarget12[\"ES2023\"] = 10] = \"ES2023\";\n ScriptTarget12[ScriptTarget12[\"ES2024\"] = 11] = \"ES2024\";\n ScriptTarget12[ScriptTarget12[\"ESNext\"] = 99] = \"ESNext\";\n ScriptTarget12[ScriptTarget12[\"JSON\"] = 100] = \"JSON\";\n ScriptTarget12[ScriptTarget12[\"Latest\"] = 99 /* ESNext */] = \"Latest\";\n return ScriptTarget12;\n})(ScriptTarget || {});\nvar LanguageVariant = /* @__PURE__ */ ((LanguageVariant3) => {\n LanguageVariant3[LanguageVariant3[\"Standard\"] = 0] = \"Standard\";\n LanguageVariant3[LanguageVariant3[\"JSX\"] = 1] = \"JSX\";\n return LanguageVariant3;\n})(LanguageVariant || {});\nvar WatchDirectoryFlags = /* @__PURE__ */ ((WatchDirectoryFlags3) => {\n WatchDirectoryFlags3[WatchDirectoryFlags3[\"None\"] = 0] = \"None\";\n WatchDirectoryFlags3[WatchDirectoryFlags3[\"Recursive\"] = 1] = \"Recursive\";\n return WatchDirectoryFlags3;\n})(WatchDirectoryFlags || {});\nvar CharacterCodes = /* @__PURE__ */ ((CharacterCodes2) => {\n CharacterCodes2[CharacterCodes2[\"EOF\"] = -1] = \"EOF\";\n CharacterCodes2[CharacterCodes2[\"nullCharacter\"] = 0] = \"nullCharacter\";\n CharacterCodes2[CharacterCodes2[\"maxAsciiCharacter\"] = 127] = \"maxAsciiCharacter\";\n CharacterCodes2[CharacterCodes2[\"lineFeed\"] = 10] = \"lineFeed\";\n CharacterCodes2[CharacterCodes2[\"carriageReturn\"] = 13] = \"carriageReturn\";\n CharacterCodes2[CharacterCodes2[\"lineSeparator\"] = 8232] = \"lineSeparator\";\n CharacterCodes2[CharacterCodes2[\"paragraphSeparator\"] = 8233] = \"paragraphSeparator\";\n CharacterCodes2[CharacterCodes2[\"nextLine\"] = 133] = \"nextLine\";\n CharacterCodes2[CharacterCodes2[\"space\"] = 32] = \"space\";\n CharacterCodes2[CharacterCodes2[\"nonBreakingSpace\"] = 160] = \"nonBreakingSpace\";\n CharacterCodes2[CharacterCodes2[\"enQuad\"] = 8192] = \"enQuad\";\n CharacterCodes2[CharacterCodes2[\"emQuad\"] = 8193] = \"emQuad\";\n CharacterCodes2[CharacterCodes2[\"enSpace\"] = 8194] = \"enSpace\";\n CharacterCodes2[CharacterCodes2[\"emSpace\"] = 8195] = \"emSpace\";\n CharacterCodes2[CharacterCodes2[\"threePerEmSpace\"] = 8196] = \"threePerEmSpace\";\n CharacterCodes2[CharacterCodes2[\"fourPerEmSpace\"] = 8197] = \"fourPerEmSpace\";\n CharacterCodes2[CharacterCodes2[\"sixPerEmSpace\"] = 8198] = \"sixPerEmSpace\";\n CharacterCodes2[CharacterCodes2[\"figureSpace\"] = 8199] = \"figureSpace\";\n CharacterCodes2[CharacterCodes2[\"punctuationSpace\"] = 8200] = \"punctuationSpace\";\n CharacterCodes2[CharacterCodes2[\"thinSpace\"] = 8201] = \"thinSpace\";\n CharacterCodes2[CharacterCodes2[\"hairSpace\"] = 8202] = \"hairSpace\";\n CharacterCodes2[CharacterCodes2[\"zeroWidthSpace\"] = 8203] = \"zeroWidthSpace\";\n CharacterCodes2[CharacterCodes2[\"narrowNoBreakSpace\"] = 8239] = \"narrowNoBreakSpace\";\n CharacterCodes2[CharacterCodes2[\"ideographicSpace\"] = 12288] = \"ideographicSpace\";\n CharacterCodes2[CharacterCodes2[\"mathematicalSpace\"] = 8287] = \"mathematicalSpace\";\n CharacterCodes2[CharacterCodes2[\"ogham\"] = 5760] = \"ogham\";\n CharacterCodes2[CharacterCodes2[\"replacementCharacter\"] = 65533] = \"replacementCharacter\";\n CharacterCodes2[CharacterCodes2[\"_\"] = 95] = \"_\";\n CharacterCodes2[CharacterCodes2[\"$\"] = 36] = \"$\";\n CharacterCodes2[CharacterCodes2[\"_0\"] = 48] = \"_0\";\n CharacterCodes2[CharacterCodes2[\"_1\"] = 49] = \"_1\";\n CharacterCodes2[CharacterCodes2[\"_2\"] = 50] = \"_2\";\n CharacterCodes2[CharacterCodes2[\"_3\"] = 51] = \"_3\";\n CharacterCodes2[CharacterCodes2[\"_4\"] = 52] = \"_4\";\n CharacterCodes2[CharacterCodes2[\"_5\"] = 53] = \"_5\";\n CharacterCodes2[CharacterCodes2[\"_6\"] = 54] = \"_6\";\n CharacterCodes2[CharacterCodes2[\"_7\"] = 55] = \"_7\";\n CharacterCodes2[CharacterCodes2[\"_8\"] = 56] = \"_8\";\n CharacterCodes2[CharacterCodes2[\"_9\"] = 57] = \"_9\";\n CharacterCodes2[CharacterCodes2[\"a\"] = 97] = \"a\";\n CharacterCodes2[CharacterCodes2[\"b\"] = 98] = \"b\";\n CharacterCodes2[CharacterCodes2[\"c\"] = 99] = \"c\";\n CharacterCodes2[CharacterCodes2[\"d\"] = 100] = \"d\";\n CharacterCodes2[CharacterCodes2[\"e\"] = 101] = \"e\";\n CharacterCodes2[CharacterCodes2[\"f\"] = 102] = \"f\";\n CharacterCodes2[CharacterCodes2[\"g\"] = 103] = \"g\";\n CharacterCodes2[CharacterCodes2[\"h\"] = 104] = \"h\";\n CharacterCodes2[CharacterCodes2[\"i\"] = 105] = \"i\";\n CharacterCodes2[CharacterCodes2[\"j\"] = 106] = \"j\";\n CharacterCodes2[CharacterCodes2[\"k\"] = 107] = \"k\";\n CharacterCodes2[CharacterCodes2[\"l\"] = 108] = \"l\";\n CharacterCodes2[CharacterCodes2[\"m\"] = 109] = \"m\";\n CharacterCodes2[CharacterCodes2[\"n\"] = 110] = \"n\";\n CharacterCodes2[CharacterCodes2[\"o\"] = 111] = \"o\";\n CharacterCodes2[CharacterCodes2[\"p\"] = 112] = \"p\";\n CharacterCodes2[CharacterCodes2[\"q\"] = 113] = \"q\";\n CharacterCodes2[CharacterCodes2[\"r\"] = 114] = \"r\";\n CharacterCodes2[CharacterCodes2[\"s\"] = 115] = \"s\";\n CharacterCodes2[CharacterCodes2[\"t\"] = 116] = \"t\";\n CharacterCodes2[CharacterCodes2[\"u\"] = 117] = \"u\";\n CharacterCodes2[CharacterCodes2[\"v\"] = 118] = \"v\";\n CharacterCodes2[CharacterCodes2[\"w\"] = 119] = \"w\";\n CharacterCodes2[CharacterCodes2[\"x\"] = 120] = \"x\";\n CharacterCodes2[CharacterCodes2[\"y\"] = 121] = \"y\";\n CharacterCodes2[CharacterCodes2[\"z\"] = 122] = \"z\";\n CharacterCodes2[CharacterCodes2[\"A\"] = 65] = \"A\";\n CharacterCodes2[CharacterCodes2[\"B\"] = 66] = \"B\";\n CharacterCodes2[CharacterCodes2[\"C\"] = 67] = \"C\";\n CharacterCodes2[CharacterCodes2[\"D\"] = 68] = \"D\";\n CharacterCodes2[CharacterCodes2[\"E\"] = 69] = \"E\";\n CharacterCodes2[CharacterCodes2[\"F\"] = 70] = \"F\";\n CharacterCodes2[CharacterCodes2[\"G\"] = 71] = \"G\";\n CharacterCodes2[CharacterCodes2[\"H\"] = 72] = \"H\";\n CharacterCodes2[CharacterCodes2[\"I\"] = 73] = \"I\";\n CharacterCodes2[CharacterCodes2[\"J\"] = 74] = \"J\";\n CharacterCodes2[CharacterCodes2[\"K\"] = 75] = \"K\";\n CharacterCodes2[CharacterCodes2[\"L\"] = 76] = \"L\";\n CharacterCodes2[CharacterCodes2[\"M\"] = 77] = \"M\";\n CharacterCodes2[CharacterCodes2[\"N\"] = 78] = \"N\";\n CharacterCodes2[CharacterCodes2[\"O\"] = 79] = \"O\";\n CharacterCodes2[CharacterCodes2[\"P\"] = 80] = \"P\";\n CharacterCodes2[CharacterCodes2[\"Q\"] = 81] = \"Q\";\n CharacterCodes2[CharacterCodes2[\"R\"] = 82] = \"R\";\n CharacterCodes2[CharacterCodes2[\"S\"] = 83] = \"S\";\n CharacterCodes2[CharacterCodes2[\"T\"] = 84] = \"T\";\n CharacterCodes2[CharacterCodes2[\"U\"] = 85] = \"U\";\n CharacterCodes2[CharacterCodes2[\"V\"] = 86] = \"V\";\n CharacterCodes2[CharacterCodes2[\"W\"] = 87] = \"W\";\n CharacterCodes2[CharacterCodes2[\"X\"] = 88] = \"X\";\n CharacterCodes2[CharacterCodes2[\"Y\"] = 89] = \"Y\";\n CharacterCodes2[CharacterCodes2[\"Z\"] = 90] = \"Z\";\n CharacterCodes2[CharacterCodes2[\"ampersand\"] = 38] = \"ampersand\";\n CharacterCodes2[CharacterCodes2[\"asterisk\"] = 42] = \"asterisk\";\n CharacterCodes2[CharacterCodes2[\"at\"] = 64] = \"at\";\n CharacterCodes2[CharacterCodes2[\"backslash\"] = 92] = \"backslash\";\n CharacterCodes2[CharacterCodes2[\"backtick\"] = 96] = \"backtick\";\n CharacterCodes2[CharacterCodes2[\"bar\"] = 124] = \"bar\";\n CharacterCodes2[CharacterCodes2[\"caret\"] = 94] = \"caret\";\n CharacterCodes2[CharacterCodes2[\"closeBrace\"] = 125] = \"closeBrace\";\n CharacterCodes2[CharacterCodes2[\"closeBracket\"] = 93] = \"closeBracket\";\n CharacterCodes2[CharacterCodes2[\"closeParen\"] = 41] = \"closeParen\";\n CharacterCodes2[CharacterCodes2[\"colon\"] = 58] = \"colon\";\n CharacterCodes2[CharacterCodes2[\"comma\"] = 44] = \"comma\";\n CharacterCodes2[CharacterCodes2[\"dot\"] = 46] = \"dot\";\n CharacterCodes2[CharacterCodes2[\"doubleQuote\"] = 34] = \"doubleQuote\";\n CharacterCodes2[CharacterCodes2[\"equals\"] = 61] = \"equals\";\n CharacterCodes2[CharacterCodes2[\"exclamation\"] = 33] = \"exclamation\";\n CharacterCodes2[CharacterCodes2[\"greaterThan\"] = 62] = \"greaterThan\";\n CharacterCodes2[CharacterCodes2[\"hash\"] = 35] = \"hash\";\n CharacterCodes2[CharacterCodes2[\"lessThan\"] = 60] = \"lessThan\";\n CharacterCodes2[CharacterCodes2[\"minus\"] = 45] = \"minus\";\n CharacterCodes2[CharacterCodes2[\"openBrace\"] = 123] = \"openBrace\";\n CharacterCodes2[CharacterCodes2[\"openBracket\"] = 91] = \"openBracket\";\n CharacterCodes2[CharacterCodes2[\"openParen\"] = 40] = \"openParen\";\n CharacterCodes2[CharacterCodes2[\"percent\"] = 37] = \"percent\";\n CharacterCodes2[CharacterCodes2[\"plus\"] = 43] = \"plus\";\n CharacterCodes2[CharacterCodes2[\"question\"] = 63] = \"question\";\n CharacterCodes2[CharacterCodes2[\"semicolon\"] = 59] = \"semicolon\";\n CharacterCodes2[CharacterCodes2[\"singleQuote\"] = 39] = \"singleQuote\";\n CharacterCodes2[CharacterCodes2[\"slash\"] = 47] = \"slash\";\n CharacterCodes2[CharacterCodes2[\"tilde\"] = 126] = \"tilde\";\n CharacterCodes2[CharacterCodes2[\"backspace\"] = 8] = \"backspace\";\n CharacterCodes2[CharacterCodes2[\"formFeed\"] = 12] = \"formFeed\";\n CharacterCodes2[CharacterCodes2[\"byteOrderMark\"] = 65279] = \"byteOrderMark\";\n CharacterCodes2[CharacterCodes2[\"tab\"] = 9] = \"tab\";\n CharacterCodes2[CharacterCodes2[\"verticalTab\"] = 11] = \"verticalTab\";\n return CharacterCodes2;\n})(CharacterCodes || {});\nvar Extension = /* @__PURE__ */ ((Extension2) => {\n Extension2[\"Ts\"] = \".ts\";\n Extension2[\"Tsx\"] = \".tsx\";\n Extension2[\"Dts\"] = \".d.ts\";\n Extension2[\"Js\"] = \".js\";\n Extension2[\"Jsx\"] = \".jsx\";\n Extension2[\"Json\"] = \".json\";\n Extension2[\"TsBuildInfo\"] = \".tsbuildinfo\";\n Extension2[\"Mjs\"] = \".mjs\";\n Extension2[\"Mts\"] = \".mts\";\n Extension2[\"Dmts\"] = \".d.mts\";\n Extension2[\"Cjs\"] = \".cjs\";\n Extension2[\"Cts\"] = \".cts\";\n Extension2[\"Dcts\"] = \".d.cts\";\n return Extension2;\n})(Extension || {});\nvar TransformFlags = /* @__PURE__ */ ((TransformFlags3) => {\n TransformFlags3[TransformFlags3[\"None\"] = 0] = \"None\";\n TransformFlags3[TransformFlags3[\"ContainsTypeScript\"] = 1] = \"ContainsTypeScript\";\n TransformFlags3[TransformFlags3[\"ContainsJsx\"] = 2] = \"ContainsJsx\";\n TransformFlags3[TransformFlags3[\"ContainsESNext\"] = 4] = \"ContainsESNext\";\n TransformFlags3[TransformFlags3[\"ContainsES2022\"] = 8] = \"ContainsES2022\";\n TransformFlags3[TransformFlags3[\"ContainsES2021\"] = 16] = \"ContainsES2021\";\n TransformFlags3[TransformFlags3[\"ContainsES2020\"] = 32] = \"ContainsES2020\";\n TransformFlags3[TransformFlags3[\"ContainsES2019\"] = 64] = \"ContainsES2019\";\n TransformFlags3[TransformFlags3[\"ContainsES2018\"] = 128] = \"ContainsES2018\";\n TransformFlags3[TransformFlags3[\"ContainsES2017\"] = 256] = \"ContainsES2017\";\n TransformFlags3[TransformFlags3[\"ContainsES2016\"] = 512] = \"ContainsES2016\";\n TransformFlags3[TransformFlags3[\"ContainsES2015\"] = 1024] = \"ContainsES2015\";\n TransformFlags3[TransformFlags3[\"ContainsGenerator\"] = 2048] = \"ContainsGenerator\";\n TransformFlags3[TransformFlags3[\"ContainsDestructuringAssignment\"] = 4096] = \"ContainsDestructuringAssignment\";\n TransformFlags3[TransformFlags3[\"ContainsTypeScriptClassSyntax\"] = 8192] = \"ContainsTypeScriptClassSyntax\";\n TransformFlags3[TransformFlags3[\"ContainsLexicalThis\"] = 16384] = \"ContainsLexicalThis\";\n TransformFlags3[TransformFlags3[\"ContainsRestOrSpread\"] = 32768] = \"ContainsRestOrSpread\";\n TransformFlags3[TransformFlags3[\"ContainsObjectRestOrSpread\"] = 65536] = \"ContainsObjectRestOrSpread\";\n TransformFlags3[TransformFlags3[\"ContainsComputedPropertyName\"] = 131072] = \"ContainsComputedPropertyName\";\n TransformFlags3[TransformFlags3[\"ContainsBlockScopedBinding\"] = 262144] = \"ContainsBlockScopedBinding\";\n TransformFlags3[TransformFlags3[\"ContainsBindingPattern\"] = 524288] = \"ContainsBindingPattern\";\n TransformFlags3[TransformFlags3[\"ContainsYield\"] = 1048576] = \"ContainsYield\";\n TransformFlags3[TransformFlags3[\"ContainsAwait\"] = 2097152] = \"ContainsAwait\";\n TransformFlags3[TransformFlags3[\"ContainsHoistedDeclarationOrCompletion\"] = 4194304] = \"ContainsHoistedDeclarationOrCompletion\";\n TransformFlags3[TransformFlags3[\"ContainsDynamicImport\"] = 8388608] = \"ContainsDynamicImport\";\n TransformFlags3[TransformFlags3[\"ContainsClassFields\"] = 16777216] = \"ContainsClassFields\";\n TransformFlags3[TransformFlags3[\"ContainsDecorators\"] = 33554432] = \"ContainsDecorators\";\n TransformFlags3[TransformFlags3[\"ContainsPossibleTopLevelAwait\"] = 67108864] = \"ContainsPossibleTopLevelAwait\";\n TransformFlags3[TransformFlags3[\"ContainsLexicalSuper\"] = 134217728] = \"ContainsLexicalSuper\";\n TransformFlags3[TransformFlags3[\"ContainsUpdateExpressionForIdentifier\"] = 268435456] = \"ContainsUpdateExpressionForIdentifier\";\n TransformFlags3[TransformFlags3[\"ContainsPrivateIdentifierInExpression\"] = 536870912] = \"ContainsPrivateIdentifierInExpression\";\n TransformFlags3[TransformFlags3[\"HasComputedFlags\"] = -2147483648] = \"HasComputedFlags\";\n TransformFlags3[TransformFlags3[\"AssertTypeScript\"] = 1 /* ContainsTypeScript */] = \"AssertTypeScript\";\n TransformFlags3[TransformFlags3[\"AssertJsx\"] = 2 /* ContainsJsx */] = \"AssertJsx\";\n TransformFlags3[TransformFlags3[\"AssertESNext\"] = 4 /* ContainsESNext */] = \"AssertESNext\";\n TransformFlags3[TransformFlags3[\"AssertES2022\"] = 8 /* ContainsES2022 */] = \"AssertES2022\";\n TransformFlags3[TransformFlags3[\"AssertES2021\"] = 16 /* ContainsES2021 */] = \"AssertES2021\";\n TransformFlags3[TransformFlags3[\"AssertES2020\"] = 32 /* ContainsES2020 */] = \"AssertES2020\";\n TransformFlags3[TransformFlags3[\"AssertES2019\"] = 64 /* ContainsES2019 */] = \"AssertES2019\";\n TransformFlags3[TransformFlags3[\"AssertES2018\"] = 128 /* ContainsES2018 */] = \"AssertES2018\";\n TransformFlags3[TransformFlags3[\"AssertES2017\"] = 256 /* ContainsES2017 */] = \"AssertES2017\";\n TransformFlags3[TransformFlags3[\"AssertES2016\"] = 512 /* ContainsES2016 */] = \"AssertES2016\";\n TransformFlags3[TransformFlags3[\"AssertES2015\"] = 1024 /* ContainsES2015 */] = \"AssertES2015\";\n TransformFlags3[TransformFlags3[\"AssertGenerator\"] = 2048 /* ContainsGenerator */] = \"AssertGenerator\";\n TransformFlags3[TransformFlags3[\"AssertDestructuringAssignment\"] = 4096 /* ContainsDestructuringAssignment */] = \"AssertDestructuringAssignment\";\n TransformFlags3[TransformFlags3[\"OuterExpressionExcludes\"] = -2147483648 /* HasComputedFlags */] = \"OuterExpressionExcludes\";\n TransformFlags3[TransformFlags3[\"PropertyAccessExcludes\"] = -2147483648 /* OuterExpressionExcludes */] = \"PropertyAccessExcludes\";\n TransformFlags3[TransformFlags3[\"NodeExcludes\"] = -2147483648 /* PropertyAccessExcludes */] = \"NodeExcludes\";\n TransformFlags3[TransformFlags3[\"ArrowFunctionExcludes\"] = -2072174592] = \"ArrowFunctionExcludes\";\n TransformFlags3[TransformFlags3[\"FunctionExcludes\"] = -1937940480] = \"FunctionExcludes\";\n TransformFlags3[TransformFlags3[\"ConstructorExcludes\"] = -1937948672] = \"ConstructorExcludes\";\n TransformFlags3[TransformFlags3[\"MethodOrAccessorExcludes\"] = -2005057536] = \"MethodOrAccessorExcludes\";\n TransformFlags3[TransformFlags3[\"PropertyExcludes\"] = -2013249536] = \"PropertyExcludes\";\n TransformFlags3[TransformFlags3[\"ClassExcludes\"] = -2147344384] = \"ClassExcludes\";\n TransformFlags3[TransformFlags3[\"ModuleExcludes\"] = -1941676032] = \"ModuleExcludes\";\n TransformFlags3[TransformFlags3[\"TypeExcludes\"] = -2] = \"TypeExcludes\";\n TransformFlags3[TransformFlags3[\"ObjectLiteralExcludes\"] = -2147278848] = \"ObjectLiteralExcludes\";\n TransformFlags3[TransformFlags3[\"ArrayLiteralOrCallOrNewExcludes\"] = -2147450880] = \"ArrayLiteralOrCallOrNewExcludes\";\n TransformFlags3[TransformFlags3[\"VariableDeclarationListExcludes\"] = -2146893824] = \"VariableDeclarationListExcludes\";\n TransformFlags3[TransformFlags3[\"ParameterExcludes\"] = -2147483648 /* NodeExcludes */] = \"ParameterExcludes\";\n TransformFlags3[TransformFlags3[\"CatchClauseExcludes\"] = -2147418112] = \"CatchClauseExcludes\";\n TransformFlags3[TransformFlags3[\"BindingPatternExcludes\"] = -2147450880] = \"BindingPatternExcludes\";\n TransformFlags3[TransformFlags3[\"ContainsLexicalThisOrSuper\"] = 134234112] = \"ContainsLexicalThisOrSuper\";\n TransformFlags3[TransformFlags3[\"PropertyNamePropagatingFlags\"] = 134234112] = \"PropertyNamePropagatingFlags\";\n return TransformFlags3;\n})(TransformFlags || {});\nvar SnippetKind = /* @__PURE__ */ ((SnippetKind3) => {\n SnippetKind3[SnippetKind3[\"TabStop\"] = 0] = \"TabStop\";\n SnippetKind3[SnippetKind3[\"Placeholder\"] = 1] = \"Placeholder\";\n SnippetKind3[SnippetKind3[\"Choice\"] = 2] = \"Choice\";\n SnippetKind3[SnippetKind3[\"Variable\"] = 3] = \"Variable\";\n return SnippetKind3;\n})(SnippetKind || {});\nvar EmitFlags = /* @__PURE__ */ ((EmitFlags3) => {\n EmitFlags3[EmitFlags3[\"None\"] = 0] = \"None\";\n EmitFlags3[EmitFlags3[\"SingleLine\"] = 1] = \"SingleLine\";\n EmitFlags3[EmitFlags3[\"MultiLine\"] = 2] = \"MultiLine\";\n EmitFlags3[EmitFlags3[\"AdviseOnEmitNode\"] = 4] = \"AdviseOnEmitNode\";\n EmitFlags3[EmitFlags3[\"NoSubstitution\"] = 8] = \"NoSubstitution\";\n EmitFlags3[EmitFlags3[\"CapturesThis\"] = 16] = \"CapturesThis\";\n EmitFlags3[EmitFlags3[\"NoLeadingSourceMap\"] = 32] = \"NoLeadingSourceMap\";\n EmitFlags3[EmitFlags3[\"NoTrailingSourceMap\"] = 64] = \"NoTrailingSourceMap\";\n EmitFlags3[EmitFlags3[\"NoSourceMap\"] = 96] = \"NoSourceMap\";\n EmitFlags3[EmitFlags3[\"NoNestedSourceMaps\"] = 128] = \"NoNestedSourceMaps\";\n EmitFlags3[EmitFlags3[\"NoTokenLeadingSourceMaps\"] = 256] = \"NoTokenLeadingSourceMaps\";\n EmitFlags3[EmitFlags3[\"NoTokenTrailingSourceMaps\"] = 512] = \"NoTokenTrailingSourceMaps\";\n EmitFlags3[EmitFlags3[\"NoTokenSourceMaps\"] = 768] = \"NoTokenSourceMaps\";\n EmitFlags3[EmitFlags3[\"NoLeadingComments\"] = 1024] = \"NoLeadingComments\";\n EmitFlags3[EmitFlags3[\"NoTrailingComments\"] = 2048] = \"NoTrailingComments\";\n EmitFlags3[EmitFlags3[\"NoComments\"] = 3072] = \"NoComments\";\n EmitFlags3[EmitFlags3[\"NoNestedComments\"] = 4096] = \"NoNestedComments\";\n EmitFlags3[EmitFlags3[\"HelperName\"] = 8192] = \"HelperName\";\n EmitFlags3[EmitFlags3[\"ExportName\"] = 16384] = \"ExportName\";\n EmitFlags3[EmitFlags3[\"LocalName\"] = 32768] = \"LocalName\";\n EmitFlags3[EmitFlags3[\"InternalName\"] = 65536] = \"InternalName\";\n EmitFlags3[EmitFlags3[\"Indented\"] = 131072] = \"Indented\";\n EmitFlags3[EmitFlags3[\"NoIndentation\"] = 262144] = \"NoIndentation\";\n EmitFlags3[EmitFlags3[\"AsyncFunctionBody\"] = 524288] = \"AsyncFunctionBody\";\n EmitFlags3[EmitFlags3[\"ReuseTempVariableScope\"] = 1048576] = \"ReuseTempVariableScope\";\n EmitFlags3[EmitFlags3[\"CustomPrologue\"] = 2097152] = \"CustomPrologue\";\n EmitFlags3[EmitFlags3[\"NoHoisting\"] = 4194304] = \"NoHoisting\";\n EmitFlags3[EmitFlags3[\"Iterator\"] = 8388608] = \"Iterator\";\n EmitFlags3[EmitFlags3[\"NoAsciiEscaping\"] = 16777216] = \"NoAsciiEscaping\";\n return EmitFlags3;\n})(EmitFlags || {});\nvar InternalEmitFlags = /* @__PURE__ */ ((InternalEmitFlags3) => {\n InternalEmitFlags3[InternalEmitFlags3[\"None\"] = 0] = \"None\";\n InternalEmitFlags3[InternalEmitFlags3[\"TypeScriptClassWrapper\"] = 1] = \"TypeScriptClassWrapper\";\n InternalEmitFlags3[InternalEmitFlags3[\"NeverApplyImportHelper\"] = 2] = \"NeverApplyImportHelper\";\n InternalEmitFlags3[InternalEmitFlags3[\"IgnoreSourceNewlines\"] = 4] = \"IgnoreSourceNewlines\";\n InternalEmitFlags3[InternalEmitFlags3[\"Immutable\"] = 8] = \"Immutable\";\n InternalEmitFlags3[InternalEmitFlags3[\"IndirectCall\"] = 16] = \"IndirectCall\";\n InternalEmitFlags3[InternalEmitFlags3[\"TransformPrivateStaticElements\"] = 32] = \"TransformPrivateStaticElements\";\n return InternalEmitFlags3;\n})(InternalEmitFlags || {});\nvar LanguageFeatureMinimumTarget = {\n Classes: 2 /* ES2015 */,\n ForOf: 2 /* ES2015 */,\n Generators: 2 /* ES2015 */,\n Iteration: 2 /* ES2015 */,\n SpreadElements: 2 /* ES2015 */,\n RestElements: 2 /* ES2015 */,\n TaggedTemplates: 2 /* ES2015 */,\n DestructuringAssignment: 2 /* ES2015 */,\n BindingPatterns: 2 /* ES2015 */,\n ArrowFunctions: 2 /* ES2015 */,\n BlockScopedVariables: 2 /* ES2015 */,\n ObjectAssign: 2 /* ES2015 */,\n RegularExpressionFlagsUnicode: 2 /* ES2015 */,\n RegularExpressionFlagsSticky: 2 /* ES2015 */,\n Exponentiation: 3 /* ES2016 */,\n AsyncFunctions: 4 /* ES2017 */,\n ForAwaitOf: 5 /* ES2018 */,\n AsyncGenerators: 5 /* ES2018 */,\n AsyncIteration: 5 /* ES2018 */,\n ObjectSpreadRest: 5 /* ES2018 */,\n RegularExpressionFlagsDotAll: 5 /* ES2018 */,\n BindinglessCatch: 6 /* ES2019 */,\n BigInt: 7 /* ES2020 */,\n NullishCoalesce: 7 /* ES2020 */,\n OptionalChaining: 7 /* ES2020 */,\n LogicalAssignment: 8 /* ES2021 */,\n TopLevelAwait: 9 /* ES2022 */,\n ClassFields: 9 /* ES2022 */,\n PrivateNamesAndClassStaticBlocks: 9 /* ES2022 */,\n RegularExpressionFlagsHasIndices: 9 /* ES2022 */,\n ShebangComments: 10 /* ES2023 */,\n RegularExpressionFlagsUnicodeSets: 11 /* ES2024 */,\n UsingAndAwaitUsing: 99 /* ESNext */,\n ClassAndClassElementDecorators: 99 /* ESNext */\n};\nvar ExternalEmitHelpers = /* @__PURE__ */ ((ExternalEmitHelpers2) => {\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Extends\"] = 1] = \"Extends\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Assign\"] = 2] = \"Assign\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Rest\"] = 4] = \"Rest\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Decorate\"] = 8] = \"Decorate\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ESDecorateAndRunInitializers\"] = 8 /* Decorate */] = \"ESDecorateAndRunInitializers\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Metadata\"] = 16] = \"Metadata\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Param\"] = 32] = \"Param\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Awaiter\"] = 64] = \"Awaiter\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Generator\"] = 128] = \"Generator\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Values\"] = 256] = \"Values\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Read\"] = 512] = \"Read\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"SpreadArray\"] = 1024] = \"SpreadArray\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"Await\"] = 2048] = \"Await\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncGenerator\"] = 4096] = \"AsyncGenerator\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncDelegator\"] = 8192] = \"AsyncDelegator\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncValues\"] = 16384] = \"AsyncValues\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ExportStar\"] = 32768] = \"ExportStar\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ImportStar\"] = 65536] = \"ImportStar\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ImportDefault\"] = 131072] = \"ImportDefault\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"MakeTemplateObject\"] = 262144] = \"MakeTemplateObject\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldGet\"] = 524288] = \"ClassPrivateFieldGet\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldSet\"] = 1048576] = \"ClassPrivateFieldSet\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldIn\"] = 2097152] = \"ClassPrivateFieldIn\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"SetFunctionName\"] = 4194304] = \"SetFunctionName\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"PropKey\"] = 8388608] = \"PropKey\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AddDisposableResourceAndDisposeResources\"] = 16777216] = \"AddDisposableResourceAndDisposeResources\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"RewriteRelativeImportExtension\"] = 33554432] = \"RewriteRelativeImportExtension\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"FirstEmitHelper\"] = 1 /* Extends */] = \"FirstEmitHelper\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"LastEmitHelper\"] = 16777216 /* AddDisposableResourceAndDisposeResources */] = \"LastEmitHelper\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ForOfIncludes\"] = 256 /* Values */] = \"ForOfIncludes\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"ForAwaitOfIncludes\"] = 16384 /* AsyncValues */] = \"ForAwaitOfIncludes\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncGeneratorIncludes\"] = 6144] = \"AsyncGeneratorIncludes\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncDelegatorIncludes\"] = 26624] = \"AsyncDelegatorIncludes\";\n ExternalEmitHelpers2[ExternalEmitHelpers2[\"SpreadIncludes\"] = 1536] = \"SpreadIncludes\";\n return ExternalEmitHelpers2;\n})(ExternalEmitHelpers || {});\nvar EmitHint = /* @__PURE__ */ ((EmitHint5) => {\n EmitHint5[EmitHint5[\"SourceFile\"] = 0] = \"SourceFile\";\n EmitHint5[EmitHint5[\"Expression\"] = 1] = \"Expression\";\n EmitHint5[EmitHint5[\"IdentifierName\"] = 2] = \"IdentifierName\";\n EmitHint5[EmitHint5[\"MappedTypeParameter\"] = 3] = \"MappedTypeParameter\";\n EmitHint5[EmitHint5[\"Unspecified\"] = 4] = \"Unspecified\";\n EmitHint5[EmitHint5[\"EmbeddedStatement\"] = 5] = \"EmbeddedStatement\";\n EmitHint5[EmitHint5[\"JsxAttributeValue\"] = 6] = \"JsxAttributeValue\";\n EmitHint5[EmitHint5[\"ImportTypeNodeAttributes\"] = 7] = \"ImportTypeNodeAttributes\";\n return EmitHint5;\n})(EmitHint || {});\nvar OuterExpressionKinds = /* @__PURE__ */ ((OuterExpressionKinds2) => {\n OuterExpressionKinds2[OuterExpressionKinds2[\"Parentheses\"] = 1] = \"Parentheses\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"TypeAssertions\"] = 2] = \"TypeAssertions\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"NonNullAssertions\"] = 4] = \"NonNullAssertions\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"PartiallyEmittedExpressions\"] = 8] = \"PartiallyEmittedExpressions\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"ExpressionsWithTypeArguments\"] = 16] = \"ExpressionsWithTypeArguments\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"Satisfies\"] = 32] = \"Satisfies\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"Assertions\"] = 38] = \"Assertions\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"All\"] = 63] = \"All\";\n OuterExpressionKinds2[OuterExpressionKinds2[\"ExcludeJSDocTypeAssertion\"] = -2147483648] = \"ExcludeJSDocTypeAssertion\";\n return OuterExpressionKinds2;\n})(OuterExpressionKinds || {});\nvar LexicalEnvironmentFlags = /* @__PURE__ */ ((LexicalEnvironmentFlags2) => {\n LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"None\"] = 0] = \"None\";\n LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"InParameters\"] = 1] = \"InParameters\";\n LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"VariablesHoistedInParameters\"] = 2] = \"VariablesHoistedInParameters\";\n return LexicalEnvironmentFlags2;\n})(LexicalEnvironmentFlags || {});\nvar ListFormat = /* @__PURE__ */ ((ListFormat2) => {\n ListFormat2[ListFormat2[\"None\"] = 0] = \"None\";\n ListFormat2[ListFormat2[\"SingleLine\"] = 0] = \"SingleLine\";\n ListFormat2[ListFormat2[\"MultiLine\"] = 1] = \"MultiLine\";\n ListFormat2[ListFormat2[\"PreserveLines\"] = 2] = \"PreserveLines\";\n ListFormat2[ListFormat2[\"LinesMask\"] = 3] = \"LinesMask\";\n ListFormat2[ListFormat2[\"NotDelimited\"] = 0] = \"NotDelimited\";\n ListFormat2[ListFormat2[\"BarDelimited\"] = 4] = \"BarDelimited\";\n ListFormat2[ListFormat2[\"AmpersandDelimited\"] = 8] = \"AmpersandDelimited\";\n ListFormat2[ListFormat2[\"CommaDelimited\"] = 16] = \"CommaDelimited\";\n ListFormat2[ListFormat2[\"AsteriskDelimited\"] = 32] = \"AsteriskDelimited\";\n ListFormat2[ListFormat2[\"DelimitersMask\"] = 60] = \"DelimitersMask\";\n ListFormat2[ListFormat2[\"AllowTrailingComma\"] = 64] = \"AllowTrailingComma\";\n ListFormat2[ListFormat2[\"Indented\"] = 128] = \"Indented\";\n ListFormat2[ListFormat2[\"SpaceBetweenBraces\"] = 256] = \"SpaceBetweenBraces\";\n ListFormat2[ListFormat2[\"SpaceBetweenSiblings\"] = 512] = \"SpaceBetweenSiblings\";\n ListFormat2[ListFormat2[\"Braces\"] = 1024] = \"Braces\";\n ListFormat2[ListFormat2[\"Parenthesis\"] = 2048] = \"Parenthesis\";\n ListFormat2[ListFormat2[\"AngleBrackets\"] = 4096] = \"AngleBrackets\";\n ListFormat2[ListFormat2[\"SquareBrackets\"] = 8192] = \"SquareBrackets\";\n ListFormat2[ListFormat2[\"BracketsMask\"] = 15360] = \"BracketsMask\";\n ListFormat2[ListFormat2[\"OptionalIfUndefined\"] = 16384] = \"OptionalIfUndefined\";\n ListFormat2[ListFormat2[\"OptionalIfEmpty\"] = 32768] = \"OptionalIfEmpty\";\n ListFormat2[ListFormat2[\"Optional\"] = 49152] = \"Optional\";\n ListFormat2[ListFormat2[\"PreferNewLine\"] = 65536] = \"PreferNewLine\";\n ListFormat2[ListFormat2[\"NoTrailingNewLine\"] = 131072] = \"NoTrailingNewLine\";\n ListFormat2[ListFormat2[\"NoInterveningComments\"] = 262144] = \"NoInterveningComments\";\n ListFormat2[ListFormat2[\"NoSpaceIfEmpty\"] = 524288] = \"NoSpaceIfEmpty\";\n ListFormat2[ListFormat2[\"SingleElement\"] = 1048576] = \"SingleElement\";\n ListFormat2[ListFormat2[\"SpaceAfterList\"] = 2097152] = \"SpaceAfterList\";\n ListFormat2[ListFormat2[\"Modifiers\"] = 2359808] = \"Modifiers\";\n ListFormat2[ListFormat2[\"HeritageClauses\"] = 512] = \"HeritageClauses\";\n ListFormat2[ListFormat2[\"SingleLineTypeLiteralMembers\"] = 768] = \"SingleLineTypeLiteralMembers\";\n ListFormat2[ListFormat2[\"MultiLineTypeLiteralMembers\"] = 32897] = \"MultiLineTypeLiteralMembers\";\n ListFormat2[ListFormat2[\"SingleLineTupleTypeElements\"] = 528] = \"SingleLineTupleTypeElements\";\n ListFormat2[ListFormat2[\"MultiLineTupleTypeElements\"] = 657] = \"MultiLineTupleTypeElements\";\n ListFormat2[ListFormat2[\"UnionTypeConstituents\"] = 516] = \"UnionTypeConstituents\";\n ListFormat2[ListFormat2[\"IntersectionTypeConstituents\"] = 520] = \"IntersectionTypeConstituents\";\n ListFormat2[ListFormat2[\"ObjectBindingPatternElements\"] = 525136] = \"ObjectBindingPatternElements\";\n ListFormat2[ListFormat2[\"ArrayBindingPatternElements\"] = 524880] = \"ArrayBindingPatternElements\";\n ListFormat2[ListFormat2[\"ObjectLiteralExpressionProperties\"] = 526226] = \"ObjectLiteralExpressionProperties\";\n ListFormat2[ListFormat2[\"ImportAttributes\"] = 526226] = \"ImportAttributes\";\n ListFormat2[ListFormat2[\"ImportClauseEntries\"] = 526226 /* ImportAttributes */] = \"ImportClauseEntries\";\n ListFormat2[ListFormat2[\"ArrayLiteralExpressionElements\"] = 8914] = \"ArrayLiteralExpressionElements\";\n ListFormat2[ListFormat2[\"CommaListElements\"] = 528] = \"CommaListElements\";\n ListFormat2[ListFormat2[\"CallExpressionArguments\"] = 2576] = \"CallExpressionArguments\";\n ListFormat2[ListFormat2[\"NewExpressionArguments\"] = 18960] = \"NewExpressionArguments\";\n ListFormat2[ListFormat2[\"TemplateExpressionSpans\"] = 262144] = \"TemplateExpressionSpans\";\n ListFormat2[ListFormat2[\"SingleLineBlockStatements\"] = 768] = \"SingleLineBlockStatements\";\n ListFormat2[ListFormat2[\"MultiLineBlockStatements\"] = 129] = \"MultiLineBlockStatements\";\n ListFormat2[ListFormat2[\"VariableDeclarationList\"] = 528] = \"VariableDeclarationList\";\n ListFormat2[ListFormat2[\"SingleLineFunctionBodyStatements\"] = 768] = \"SingleLineFunctionBodyStatements\";\n ListFormat2[ListFormat2[\"MultiLineFunctionBodyStatements\"] = 1 /* MultiLine */] = \"MultiLineFunctionBodyStatements\";\n ListFormat2[ListFormat2[\"ClassHeritageClauses\"] = 0 /* SingleLine */] = \"ClassHeritageClauses\";\n ListFormat2[ListFormat2[\"ClassMembers\"] = 129] = \"ClassMembers\";\n ListFormat2[ListFormat2[\"InterfaceMembers\"] = 129] = \"InterfaceMembers\";\n ListFormat2[ListFormat2[\"EnumMembers\"] = 145] = \"EnumMembers\";\n ListFormat2[ListFormat2[\"CaseBlockClauses\"] = 129] = \"CaseBlockClauses\";\n ListFormat2[ListFormat2[\"NamedImportsOrExportsElements\"] = 525136] = \"NamedImportsOrExportsElements\";\n ListFormat2[ListFormat2[\"JsxElementOrFragmentChildren\"] = 262144] = \"JsxElementOrFragmentChildren\";\n ListFormat2[ListFormat2[\"JsxElementAttributes\"] = 262656] = \"JsxElementAttributes\";\n ListFormat2[ListFormat2[\"CaseOrDefaultClauseStatements\"] = 163969] = \"CaseOrDefaultClauseStatements\";\n ListFormat2[ListFormat2[\"HeritageClauseTypes\"] = 528] = \"HeritageClauseTypes\";\n ListFormat2[ListFormat2[\"SourceFileStatements\"] = 131073] = \"SourceFileStatements\";\n ListFormat2[ListFormat2[\"Decorators\"] = 2146305] = \"Decorators\";\n ListFormat2[ListFormat2[\"TypeArguments\"] = 53776] = \"TypeArguments\";\n ListFormat2[ListFormat2[\"TypeParameters\"] = 53776] = \"TypeParameters\";\n ListFormat2[ListFormat2[\"Parameters\"] = 2576] = \"Parameters\";\n ListFormat2[ListFormat2[\"IndexSignatureParameters\"] = 8848] = \"IndexSignatureParameters\";\n ListFormat2[ListFormat2[\"JSDocComment\"] = 33] = \"JSDocComment\";\n return ListFormat2;\n})(ListFormat || {});\nvar PragmaKindFlags = /* @__PURE__ */ ((PragmaKindFlags2) => {\n PragmaKindFlags2[PragmaKindFlags2[\"None\"] = 0] = \"None\";\n PragmaKindFlags2[PragmaKindFlags2[\"TripleSlashXML\"] = 1] = \"TripleSlashXML\";\n PragmaKindFlags2[PragmaKindFlags2[\"SingleLine\"] = 2] = \"SingleLine\";\n PragmaKindFlags2[PragmaKindFlags2[\"MultiLine\"] = 4] = \"MultiLine\";\n PragmaKindFlags2[PragmaKindFlags2[\"All\"] = 7] = \"All\";\n PragmaKindFlags2[PragmaKindFlags2[\"Default\"] = 7 /* All */] = \"Default\";\n return PragmaKindFlags2;\n})(PragmaKindFlags || {});\nvar commentPragmas = {\n \"reference\": {\n args: [\n { name: \"types\", optional: true, captureSpan: true },\n { name: \"lib\", optional: true, captureSpan: true },\n { name: \"path\", optional: true, captureSpan: true },\n { name: \"no-default-lib\", optional: true },\n { name: \"resolution-mode\", optional: true },\n { name: \"preserve\", optional: true }\n ],\n kind: 1 /* TripleSlashXML */\n },\n \"amd-dependency\": {\n args: [{ name: \"path\" }, { name: \"name\", optional: true }],\n kind: 1 /* TripleSlashXML */\n },\n \"amd-module\": {\n args: [{ name: \"name\" }],\n kind: 1 /* TripleSlashXML */\n },\n \"ts-check\": {\n kind: 2 /* SingleLine */\n },\n \"ts-nocheck\": {\n kind: 2 /* SingleLine */\n },\n \"jsx\": {\n args: [{ name: \"factory\" }],\n kind: 4 /* MultiLine */\n },\n \"jsxfrag\": {\n args: [{ name: \"factory\" }],\n kind: 4 /* MultiLine */\n },\n \"jsximportsource\": {\n args: [{ name: \"factory\" }],\n kind: 4 /* MultiLine */\n },\n \"jsxruntime\": {\n args: [{ name: \"factory\" }],\n kind: 4 /* MultiLine */\n }\n};\nvar JSDocParsingMode = /* @__PURE__ */ ((JSDocParsingMode6) => {\n JSDocParsingMode6[JSDocParsingMode6[\"ParseAll\"] = 0] = \"ParseAll\";\n JSDocParsingMode6[JSDocParsingMode6[\"ParseNone\"] = 1] = \"ParseNone\";\n JSDocParsingMode6[JSDocParsingMode6[\"ParseForTypeErrors\"] = 2] = \"ParseForTypeErrors\";\n JSDocParsingMode6[JSDocParsingMode6[\"ParseForTypeInfo\"] = 3] = \"ParseForTypeInfo\";\n return JSDocParsingMode6;\n})(JSDocParsingMode || {});\n\n// src/compiler/sys.ts\nfunction generateDjb2Hash(data) {\n let acc = 5381;\n for (let i = 0; i < data.length; i++) {\n acc = (acc << 5) + acc + data.charCodeAt(i);\n }\n return acc.toString();\n}\nfunction setStackTraceLimit() {\n if (Error.stackTraceLimit < 100) {\n Error.stackTraceLimit = 100;\n }\n}\nvar FileWatcherEventKind = /* @__PURE__ */ ((FileWatcherEventKind2) => {\n FileWatcherEventKind2[FileWatcherEventKind2[\"Created\"] = 0] = \"Created\";\n FileWatcherEventKind2[FileWatcherEventKind2[\"Changed\"] = 1] = \"Changed\";\n FileWatcherEventKind2[FileWatcherEventKind2[\"Deleted\"] = 2] = \"Deleted\";\n return FileWatcherEventKind2;\n})(FileWatcherEventKind || {});\nvar PollingInterval = /* @__PURE__ */ ((PollingInterval3) => {\n PollingInterval3[PollingInterval3[\"High\"] = 2e3] = \"High\";\n PollingInterval3[PollingInterval3[\"Medium\"] = 500] = \"Medium\";\n PollingInterval3[PollingInterval3[\"Low\"] = 250] = \"Low\";\n return PollingInterval3;\n})(PollingInterval || {});\nvar missingFileModifiedTime = /* @__PURE__ */ new Date(0);\nfunction getModifiedTime(host, fileName) {\n return host.getModifiedTime(fileName) || missingFileModifiedTime;\n}\nfunction createPollingIntervalBasedLevels(levels) {\n return {\n [250 /* Low */]: levels.Low,\n [500 /* Medium */]: levels.Medium,\n [2e3 /* High */]: levels.High\n };\n}\nvar defaultChunkLevels = { Low: 32, Medium: 64, High: 256 };\nvar pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels);\nvar unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels);\nfunction setCustomPollingValues(system) {\n if (!system.getEnvironmentVariable) {\n return;\n }\n const pollingIntervalChanged = setCustomLevels(\"TSC_WATCH_POLLINGINTERVAL\", PollingInterval);\n pollingChunkSize = getCustomPollingBasedLevels(\"TSC_WATCH_POLLINGCHUNKSIZE\", defaultChunkLevels) || pollingChunkSize;\n unchangedPollThresholds = getCustomPollingBasedLevels(\"TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS\", defaultChunkLevels) || unchangedPollThresholds;\n function getLevel(envVar, level) {\n return system.getEnvironmentVariable(`${envVar}_${level.toUpperCase()}`);\n }\n function getCustomLevels(baseVariable) {\n let customLevels;\n setCustomLevel(\"Low\");\n setCustomLevel(\"Medium\");\n setCustomLevel(\"High\");\n return customLevels;\n function setCustomLevel(level) {\n const customLevel = getLevel(baseVariable, level);\n if (customLevel) {\n (customLevels || (customLevels = {}))[level] = Number(customLevel);\n }\n }\n }\n function setCustomLevels(baseVariable, levels) {\n const customLevels = getCustomLevels(baseVariable);\n if (customLevels) {\n setLevel(\"Low\");\n setLevel(\"Medium\");\n setLevel(\"High\");\n return true;\n }\n return false;\n function setLevel(level) {\n levels[level] = customLevels[level] || levels[level];\n }\n }\n function getCustomPollingBasedLevels(baseVariable, defaultLevels) {\n const customLevels = getCustomLevels(baseVariable);\n return (pollingIntervalChanged || customLevels) && createPollingIntervalBasedLevels(customLevels ? { ...defaultLevels, ...customLevels } : defaultLevels);\n }\n}\nfunction pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {\n let definedValueCopyToIndex = pollIndex;\n for (let canVisit = queue.length; chunkSize && canVisit; nextPollIndex(), canVisit--) {\n const watchedFile = queue[pollIndex];\n if (!watchedFile) {\n continue;\n } else if (watchedFile.isClosed) {\n queue[pollIndex] = void 0;\n continue;\n }\n chunkSize--;\n const fileChanged = onWatchedFileStat(watchedFile, getModifiedTime(host, watchedFile.fileName));\n if (watchedFile.isClosed) {\n queue[pollIndex] = void 0;\n continue;\n }\n callbackOnWatchFileStat == null ? void 0 : callbackOnWatchFileStat(watchedFile, pollIndex, fileChanged);\n if (queue[pollIndex]) {\n if (definedValueCopyToIndex < pollIndex) {\n queue[definedValueCopyToIndex] = watchedFile;\n queue[pollIndex] = void 0;\n }\n definedValueCopyToIndex++;\n }\n }\n return pollIndex;\n function nextPollIndex() {\n pollIndex++;\n if (pollIndex === queue.length) {\n if (definedValueCopyToIndex < pollIndex) {\n queue.length = definedValueCopyToIndex;\n }\n pollIndex = 0;\n definedValueCopyToIndex = 0;\n }\n }\n}\nfunction createDynamicPriorityPollingWatchFile(host) {\n const watchedFiles = [];\n const changedFilesInLastPoll = [];\n const lowPollingIntervalQueue = createPollingIntervalQueue(250 /* Low */);\n const mediumPollingIntervalQueue = createPollingIntervalQueue(500 /* Medium */);\n const highPollingIntervalQueue = createPollingIntervalQueue(2e3 /* High */);\n return watchFile2;\n function watchFile2(fileName, callback, defaultPollingInterval) {\n const file = {\n fileName,\n callback,\n unchangedPolls: 0,\n mtime: getModifiedTime(host, fileName)\n };\n watchedFiles.push(file);\n addToPollingIntervalQueue(file, defaultPollingInterval);\n return {\n close: () => {\n file.isClosed = true;\n unorderedRemoveItem(watchedFiles, file);\n }\n };\n }\n function createPollingIntervalQueue(pollingInterval) {\n const queue = [];\n queue.pollingInterval = pollingInterval;\n queue.pollIndex = 0;\n queue.pollScheduled = false;\n return queue;\n }\n function pollPollingIntervalQueue(_timeoutType, queue) {\n queue.pollIndex = pollQueue(queue, queue.pollingInterval, queue.pollIndex, pollingChunkSize[queue.pollingInterval]);\n if (queue.length) {\n scheduleNextPoll(queue.pollingInterval);\n } else {\n Debug.assert(queue.pollIndex === 0);\n queue.pollScheduled = false;\n }\n }\n function pollLowPollingIntervalQueue(_timeoutType, queue) {\n pollQueue(\n changedFilesInLastPoll,\n 250 /* Low */,\n /*pollIndex*/\n 0,\n changedFilesInLastPoll.length\n );\n pollPollingIntervalQueue(_timeoutType, queue);\n if (!queue.pollScheduled && changedFilesInLastPoll.length) {\n scheduleNextPoll(250 /* Low */);\n }\n }\n function pollQueue(queue, pollingInterval, pollIndex, chunkSize) {\n return pollWatchedFileQueue(\n host,\n queue,\n pollIndex,\n chunkSize,\n onWatchFileStat\n );\n function onWatchFileStat(watchedFile, pollIndex2, fileChanged) {\n if (fileChanged) {\n watchedFile.unchangedPolls = 0;\n if (queue !== changedFilesInLastPoll) {\n queue[pollIndex2] = void 0;\n addChangedFileToLowPollingIntervalQueue(watchedFile);\n }\n } else if (watchedFile.unchangedPolls !== unchangedPollThresholds[pollingInterval]) {\n watchedFile.unchangedPolls++;\n } else if (queue === changedFilesInLastPoll) {\n watchedFile.unchangedPolls = 1;\n queue[pollIndex2] = void 0;\n addToPollingIntervalQueue(watchedFile, 250 /* Low */);\n } else if (pollingInterval !== 2e3 /* High */) {\n watchedFile.unchangedPolls++;\n queue[pollIndex2] = void 0;\n addToPollingIntervalQueue(watchedFile, pollingInterval === 250 /* Low */ ? 500 /* Medium */ : 2e3 /* High */);\n }\n }\n }\n function pollingIntervalQueue(pollingInterval) {\n switch (pollingInterval) {\n case 250 /* Low */:\n return lowPollingIntervalQueue;\n case 500 /* Medium */:\n return mediumPollingIntervalQueue;\n case 2e3 /* High */:\n return highPollingIntervalQueue;\n }\n }\n function addToPollingIntervalQueue(file, pollingInterval) {\n pollingIntervalQueue(pollingInterval).push(file);\n scheduleNextPollIfNotAlreadyScheduled(pollingInterval);\n }\n function addChangedFileToLowPollingIntervalQueue(file) {\n changedFilesInLastPoll.push(file);\n scheduleNextPollIfNotAlreadyScheduled(250 /* Low */);\n }\n function scheduleNextPollIfNotAlreadyScheduled(pollingInterval) {\n if (!pollingIntervalQueue(pollingInterval).pollScheduled) {\n scheduleNextPoll(pollingInterval);\n }\n }\n function scheduleNextPoll(pollingInterval) {\n pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === 250 /* Low */ ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingInterval === 250 /* Low */ ? \"pollLowPollingIntervalQueue\" : \"pollPollingIntervalQueue\", pollingIntervalQueue(pollingInterval));\n }\n}\nfunction createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2, getModifiedTime3, fsWatchWithTimestamp) {\n const fileWatcherCallbacks = createMultiMap();\n const fileTimestamps = fsWatchWithTimestamp ? /* @__PURE__ */ new Map() : void 0;\n const dirWatchers = /* @__PURE__ */ new Map();\n const toCanonicalName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n return nonPollingWatchFile;\n function nonPollingWatchFile(fileName, callback, _pollingInterval, fallbackOptions) {\n const filePath = toCanonicalName(fileName);\n if (fileWatcherCallbacks.add(filePath, callback).length === 1 && fileTimestamps) {\n fileTimestamps.set(filePath, getModifiedTime3(fileName) || missingFileModifiedTime);\n }\n const dirPath = getDirectoryPath(filePath) || \".\";\n const watcher = dirWatchers.get(dirPath) || createDirectoryWatcher(getDirectoryPath(fileName) || \".\", dirPath, fallbackOptions);\n watcher.referenceCount++;\n return {\n close: () => {\n if (watcher.referenceCount === 1) {\n watcher.close();\n dirWatchers.delete(dirPath);\n } else {\n watcher.referenceCount--;\n }\n fileWatcherCallbacks.remove(filePath, callback);\n }\n };\n }\n function createDirectoryWatcher(dirName, dirPath, fallbackOptions) {\n const watcher = fsWatch(\n dirName,\n 1 /* Directory */,\n (eventName, relativeFileName) => {\n if (!isString(relativeFileName)) return;\n const fileName = getNormalizedAbsolutePath(relativeFileName, dirName);\n const filePath = toCanonicalName(fileName);\n const callbacks = fileName && fileWatcherCallbacks.get(filePath);\n if (callbacks) {\n let currentModifiedTime;\n let eventKind = 1 /* Changed */;\n if (fileTimestamps) {\n const existingTime = fileTimestamps.get(filePath);\n if (eventName === \"change\") {\n currentModifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime;\n if (currentModifiedTime.getTime() === existingTime.getTime()) return;\n }\n currentModifiedTime || (currentModifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime);\n fileTimestamps.set(filePath, currentModifiedTime);\n if (existingTime === missingFileModifiedTime) eventKind = 0 /* Created */;\n else if (currentModifiedTime === missingFileModifiedTime) eventKind = 2 /* Deleted */;\n }\n for (const fileCallback of callbacks) {\n fileCallback(fileName, eventKind, currentModifiedTime);\n }\n }\n },\n /*recursive*/\n false,\n 500 /* Medium */,\n fallbackOptions\n );\n watcher.referenceCount = 0;\n dirWatchers.set(dirPath, watcher);\n return watcher;\n }\n}\nfunction createFixedChunkSizePollingWatchFile(host) {\n const watchedFiles = [];\n let pollIndex = 0;\n let pollScheduled;\n return watchFile2;\n function watchFile2(fileName, callback) {\n const file = {\n fileName,\n callback,\n mtime: getModifiedTime(host, fileName)\n };\n watchedFiles.push(file);\n scheduleNextPoll();\n return {\n close: () => {\n file.isClosed = true;\n unorderedRemoveItem(watchedFiles, file);\n }\n };\n }\n function pollQueue() {\n pollScheduled = void 0;\n pollIndex = pollWatchedFileQueue(host, watchedFiles, pollIndex, pollingChunkSize[250 /* Low */]);\n scheduleNextPoll();\n }\n function scheduleNextPoll() {\n if (!watchedFiles.length || pollScheduled) return;\n pollScheduled = host.setTimeout(pollQueue, 2e3 /* High */, \"pollQueue\");\n }\n}\nfunction createSingleWatcherPerName(cache, useCaseSensitiveFileNames2, name, callback, createWatcher) {\n const toCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n const path = toCanonicalFileName(name);\n const existing = cache.get(path);\n if (existing) {\n existing.callbacks.push(callback);\n } else {\n cache.set(path, {\n watcher: createWatcher(\n // Cant infer types correctly so lets satisfy checker\n (param1, param2, param3) => {\n var _a;\n return (_a = cache.get(path)) == null ? void 0 : _a.callbacks.slice().forEach((cb) => cb(param1, param2, param3));\n }\n ),\n callbacks: [callback]\n });\n }\n return {\n close: () => {\n const watcher = cache.get(path);\n if (!watcher) return;\n if (!orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length) return;\n cache.delete(path);\n closeFileWatcherOf(watcher);\n }\n };\n}\nfunction onWatchedFileStat(watchedFile, modifiedTime) {\n const oldTime = watchedFile.mtime.getTime();\n const newTime = modifiedTime.getTime();\n if (oldTime !== newTime) {\n watchedFile.mtime = modifiedTime;\n watchedFile.callback(watchedFile.fileName, getFileWatcherEventKind(oldTime, newTime), modifiedTime);\n return true;\n }\n return false;\n}\nfunction getFileWatcherEventKind(oldTime, newTime) {\n return oldTime === 0 ? 0 /* Created */ : newTime === 0 ? 2 /* Deleted */ : 1 /* Changed */;\n}\nvar ignoredPaths = [\"/node_modules/.\", \"/.git\", \"/.#\"];\nvar curSysLog = noop;\nfunction sysLog(s) {\n return curSysLog(s);\n}\nfunction setSysLog(logger) {\n curSysLog = logger;\n}\nfunction createDirectoryWatcherSupportingRecursive({\n watchDirectory,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n getCurrentDirectory,\n getAccessibleSortedChildDirectories,\n fileSystemEntryExists,\n realpath,\n setTimeout: setTimeout2,\n clearTimeout: clearTimeout2\n}) {\n const cache = /* @__PURE__ */ new Map();\n const callbackCache = createMultiMap();\n const cacheToUpdateChildWatches = /* @__PURE__ */ new Map();\n let timerToUpdateChildWatches;\n const filePathComparer = getStringComparer(!useCaseSensitiveFileNames2);\n const toCanonicalFilePath = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n return (dirName, callback, recursive, options) => recursive ? createDirectoryWatcher(dirName, options, callback) : watchDirectory(dirName, callback, recursive, options);\n function createDirectoryWatcher(dirName, options, callback, link) {\n const dirPath = toCanonicalFilePath(dirName);\n let directoryWatcher = cache.get(dirPath);\n if (directoryWatcher) {\n directoryWatcher.refCount++;\n } else {\n directoryWatcher = {\n watcher: watchDirectory(\n dirName,\n (fileName) => {\n var _a;\n if (isIgnoredPath(fileName, options)) return;\n if (options == null ? void 0 : options.synchronousWatchDirectory) {\n if (!((_a = cache.get(dirPath)) == null ? void 0 : _a.targetWatcher)) invokeCallbacks(dirName, dirPath, fileName);\n updateChildWatches(dirName, dirPath, options);\n } else {\n nonSyncUpdateChildWatches(dirName, dirPath, fileName, options);\n }\n },\n /*recursive*/\n false,\n options\n ),\n refCount: 1,\n childWatches: emptyArray,\n targetWatcher: void 0,\n links: void 0\n };\n cache.set(dirPath, directoryWatcher);\n updateChildWatches(dirName, dirPath, options);\n }\n if (link) (directoryWatcher.links ?? (directoryWatcher.links = /* @__PURE__ */ new Set())).add(link);\n const callbackToAdd = callback && { dirName, callback };\n if (callbackToAdd) {\n callbackCache.add(dirPath, callbackToAdd);\n }\n return {\n dirName,\n close: () => {\n var _a;\n const directoryWatcher2 = Debug.checkDefined(cache.get(dirPath));\n if (callbackToAdd) callbackCache.remove(dirPath, callbackToAdd);\n if (link) (_a = directoryWatcher2.links) == null ? void 0 : _a.delete(link);\n directoryWatcher2.refCount--;\n if (directoryWatcher2.refCount) return;\n cache.delete(dirPath);\n directoryWatcher2.links = void 0;\n closeFileWatcherOf(directoryWatcher2);\n closeTargetWatcher(directoryWatcher2);\n directoryWatcher2.childWatches.forEach(closeFileWatcher);\n }\n };\n }\n function invokeCallbacks(dirName, dirPath, fileNameOrInvokeMap, fileNames) {\n var _a, _b;\n let fileName;\n let invokeMap;\n if (isString(fileNameOrInvokeMap)) {\n fileName = fileNameOrInvokeMap;\n } else {\n invokeMap = fileNameOrInvokeMap;\n }\n callbackCache.forEach((callbacks, rootDirName) => {\n if (invokeMap && invokeMap.get(rootDirName) === true) return;\n if (rootDirName === dirPath || startsWith(dirPath, rootDirName) && dirPath[rootDirName.length] === directorySeparator) {\n if (invokeMap) {\n if (fileNames) {\n const existing = invokeMap.get(rootDirName);\n if (existing) {\n existing.push(...fileNames);\n } else {\n invokeMap.set(rootDirName, fileNames.slice());\n }\n } else {\n invokeMap.set(rootDirName, true);\n }\n } else {\n callbacks.forEach(({ callback }) => callback(fileName));\n }\n }\n });\n (_b = (_a = cache.get(dirPath)) == null ? void 0 : _a.links) == null ? void 0 : _b.forEach((link) => {\n const toPathInLink = (fileName2) => combinePaths(link, getRelativePathFromDirectory(dirName, fileName2, toCanonicalFilePath));\n if (invokeMap) {\n invokeCallbacks(link, toCanonicalFilePath(link), invokeMap, fileNames == null ? void 0 : fileNames.map(toPathInLink));\n } else {\n invokeCallbacks(link, toCanonicalFilePath(link), toPathInLink(fileName));\n }\n });\n }\n function nonSyncUpdateChildWatches(dirName, dirPath, fileName, options) {\n const parentWatcher = cache.get(dirPath);\n if (parentWatcher && fileSystemEntryExists(dirName, 1 /* Directory */)) {\n scheduleUpdateChildWatches(dirName, dirPath, fileName, options);\n return;\n }\n invokeCallbacks(dirName, dirPath, fileName);\n closeTargetWatcher(parentWatcher);\n removeChildWatches(parentWatcher);\n }\n function scheduleUpdateChildWatches(dirName, dirPath, fileName, options) {\n const existing = cacheToUpdateChildWatches.get(dirPath);\n if (existing) {\n existing.fileNames.push(fileName);\n } else {\n cacheToUpdateChildWatches.set(dirPath, { dirName, options, fileNames: [fileName] });\n }\n if (timerToUpdateChildWatches) {\n clearTimeout2(timerToUpdateChildWatches);\n timerToUpdateChildWatches = void 0;\n }\n timerToUpdateChildWatches = setTimeout2(onTimerToUpdateChildWatches, 1e3, \"timerToUpdateChildWatches\");\n }\n function onTimerToUpdateChildWatches() {\n var _a;\n timerToUpdateChildWatches = void 0;\n sysLog(`sysLog:: onTimerToUpdateChildWatches:: ${cacheToUpdateChildWatches.size}`);\n const start = timestamp();\n const invokeMap = /* @__PURE__ */ new Map();\n while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {\n const result = cacheToUpdateChildWatches.entries().next();\n Debug.assert(!result.done);\n const { value: [dirPath, { dirName, options, fileNames }] } = result;\n cacheToUpdateChildWatches.delete(dirPath);\n const hasChanges = updateChildWatches(dirName, dirPath, options);\n if (!((_a = cache.get(dirPath)) == null ? void 0 : _a.targetWatcher)) invokeCallbacks(dirName, dirPath, invokeMap, hasChanges ? void 0 : fileNames);\n }\n sysLog(`sysLog:: invokingWatchers:: Elapsed:: ${timestamp() - start}ms:: ${cacheToUpdateChildWatches.size}`);\n callbackCache.forEach((callbacks, rootDirName) => {\n const existing = invokeMap.get(rootDirName);\n if (existing) {\n callbacks.forEach(({ callback, dirName }) => {\n if (isArray(existing)) {\n existing.forEach(callback);\n } else {\n callback(dirName);\n }\n });\n }\n });\n const elapsed = timestamp() - start;\n sysLog(`sysLog:: Elapsed:: ${elapsed}ms:: onTimerToUpdateChildWatches:: ${cacheToUpdateChildWatches.size} ${timerToUpdateChildWatches}`);\n }\n function removeChildWatches(parentWatcher) {\n if (!parentWatcher) return;\n const existingChildWatches = parentWatcher.childWatches;\n parentWatcher.childWatches = emptyArray;\n for (const childWatcher of existingChildWatches) {\n childWatcher.close();\n removeChildWatches(cache.get(toCanonicalFilePath(childWatcher.dirName)));\n }\n }\n function closeTargetWatcher(watcher) {\n if (watcher == null ? void 0 : watcher.targetWatcher) {\n watcher.targetWatcher.close();\n watcher.targetWatcher = void 0;\n }\n }\n function updateChildWatches(parentDir, parentDirPath, options) {\n const parentWatcher = cache.get(parentDirPath);\n if (!parentWatcher) return false;\n const target = normalizePath(realpath(parentDir));\n let hasChanges;\n let newChildWatches;\n if (filePathComparer(target, parentDir) === 0 /* EqualTo */) {\n hasChanges = enumerateInsertsAndDeletes(\n fileSystemEntryExists(parentDir, 1 /* Directory */) ? mapDefined(getAccessibleSortedChildDirectories(parentDir), (child) => {\n const childFullName = getNormalizedAbsolutePath(child, parentDir);\n return !isIgnoredPath(childFullName, options) && filePathComparer(childFullName, normalizePath(realpath(childFullName))) === 0 /* EqualTo */ ? childFullName : void 0;\n }) : emptyArray,\n parentWatcher.childWatches,\n (child, childWatcher) => filePathComparer(child, childWatcher.dirName),\n createAndAddChildDirectoryWatcher,\n closeFileWatcher,\n addChildDirectoryWatcher\n );\n } else if (parentWatcher.targetWatcher && filePathComparer(target, parentWatcher.targetWatcher.dirName) === 0 /* EqualTo */) {\n hasChanges = false;\n Debug.assert(parentWatcher.childWatches === emptyArray);\n } else {\n closeTargetWatcher(parentWatcher);\n parentWatcher.targetWatcher = createDirectoryWatcher(\n target,\n options,\n /*callback*/\n void 0,\n parentDir\n );\n parentWatcher.childWatches.forEach(closeFileWatcher);\n hasChanges = true;\n }\n parentWatcher.childWatches = newChildWatches || emptyArray;\n return hasChanges;\n function createAndAddChildDirectoryWatcher(childName) {\n const result = createDirectoryWatcher(childName, options);\n addChildDirectoryWatcher(result);\n }\n function addChildDirectoryWatcher(childWatcher) {\n (newChildWatches || (newChildWatches = [])).push(childWatcher);\n }\n }\n function isIgnoredPath(path, options) {\n return some(ignoredPaths, (searchPath) => isInPath(path, searchPath)) || isIgnoredByWatchOptions(path, options, useCaseSensitiveFileNames2, getCurrentDirectory);\n }\n function isInPath(path, searchPath) {\n if (path.includes(searchPath)) return true;\n if (useCaseSensitiveFileNames2) return false;\n return toCanonicalFilePath(path).includes(searchPath);\n }\n}\nvar FileSystemEntryKind = /* @__PURE__ */ ((FileSystemEntryKind2) => {\n FileSystemEntryKind2[FileSystemEntryKind2[\"File\"] = 0] = \"File\";\n FileSystemEntryKind2[FileSystemEntryKind2[\"Directory\"] = 1] = \"Directory\";\n return FileSystemEntryKind2;\n})(FileSystemEntryKind || {});\nfunction createFileWatcherCallback(callback) {\n return (_fileName, eventKind, modifiedTime) => callback(eventKind === 1 /* Changed */ ? \"change\" : \"rename\", \"\", modifiedTime);\n}\nfunction createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3) {\n return (eventName, _relativeFileName, modifiedTime) => {\n if (eventName === \"rename\") {\n modifiedTime || (modifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime);\n callback(fileName, modifiedTime !== missingFileModifiedTime ? 0 /* Created */ : 2 /* Deleted */, modifiedTime);\n } else {\n callback(fileName, 1 /* Changed */, modifiedTime);\n }\n };\n}\nfunction isIgnoredByWatchOptions(pathToCheck, options, useCaseSensitiveFileNames2, getCurrentDirectory) {\n return ((options == null ? void 0 : options.excludeDirectories) || (options == null ? void 0 : options.excludeFiles)) && (matchesExclude(pathToCheck, options == null ? void 0 : options.excludeFiles, useCaseSensitiveFileNames2, getCurrentDirectory()) || matchesExclude(pathToCheck, options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2, getCurrentDirectory()));\n}\nfunction createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory) {\n return (eventName, relativeFileName) => {\n if (eventName === \"rename\") {\n const fileName = !relativeFileName ? directoryName : normalizePath(combinePaths(directoryName, relativeFileName));\n if (!relativeFileName || !isIgnoredByWatchOptions(fileName, options, useCaseSensitiveFileNames2, getCurrentDirectory)) {\n callback(fileName);\n }\n }\n };\n}\nfunction createSystemWatchFunctions({\n pollingWatchFileWorker,\n getModifiedTime: getModifiedTime3,\n setTimeout: setTimeout2,\n clearTimeout: clearTimeout2,\n fsWatchWorker,\n fileSystemEntryExists,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n getCurrentDirectory,\n fsSupportsRecursiveFsWatch,\n getAccessibleSortedChildDirectories,\n realpath,\n tscWatchFile,\n useNonPollingWatchers,\n tscWatchDirectory,\n inodeWatching,\n fsWatchWithTimestamp,\n sysLog: sysLog2\n}) {\n const pollingWatches = /* @__PURE__ */ new Map();\n const fsWatches = /* @__PURE__ */ new Map();\n const fsWatchesRecursive = /* @__PURE__ */ new Map();\n let dynamicPollingWatchFile;\n let fixedChunkSizePollingWatchFile;\n let nonPollingWatchFile;\n let hostRecursiveDirectoryWatcher;\n let hitSystemWatcherLimit = false;\n return {\n watchFile: watchFile2,\n watchDirectory\n };\n function watchFile2(fileName, callback, pollingInterval, options) {\n options = updateOptionsForWatchFile(options, useNonPollingWatchers);\n const watchFileKind = Debug.checkDefined(options.watchFile);\n switch (watchFileKind) {\n case 0 /* FixedPollingInterval */:\n return pollingWatchFile(\n fileName,\n callback,\n 250 /* Low */,\n /*options*/\n void 0\n );\n case 1 /* PriorityPollingInterval */:\n return pollingWatchFile(\n fileName,\n callback,\n pollingInterval,\n /*options*/\n void 0\n );\n case 2 /* DynamicPriorityPolling */:\n return ensureDynamicPollingWatchFile()(\n fileName,\n callback,\n pollingInterval,\n /*options*/\n void 0\n );\n case 3 /* FixedChunkSizePolling */:\n return ensureFixedChunkSizePollingWatchFile()(\n fileName,\n callback,\n /* pollingInterval */\n void 0,\n /*options*/\n void 0\n );\n case 4 /* UseFsEvents */:\n return fsWatch(\n fileName,\n 0 /* File */,\n createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3),\n /*recursive*/\n false,\n pollingInterval,\n getFallbackOptions(options)\n );\n case 5 /* UseFsEventsOnParentDirectory */:\n if (!nonPollingWatchFile) {\n nonPollingWatchFile = createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2, getModifiedTime3, fsWatchWithTimestamp);\n }\n return nonPollingWatchFile(fileName, callback, pollingInterval, getFallbackOptions(options));\n default:\n Debug.assertNever(watchFileKind);\n }\n }\n function ensureDynamicPollingWatchFile() {\n return dynamicPollingWatchFile || (dynamicPollingWatchFile = createDynamicPriorityPollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 }));\n }\n function ensureFixedChunkSizePollingWatchFile() {\n return fixedChunkSizePollingWatchFile || (fixedChunkSizePollingWatchFile = createFixedChunkSizePollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 }));\n }\n function updateOptionsForWatchFile(options, useNonPollingWatchers2) {\n if (options && options.watchFile !== void 0) return options;\n switch (tscWatchFile) {\n case \"PriorityPollingInterval\":\n return { watchFile: 1 /* PriorityPollingInterval */ };\n case \"DynamicPriorityPolling\":\n return { watchFile: 2 /* DynamicPriorityPolling */ };\n case \"UseFsEvents\":\n return generateWatchFileOptions(4 /* UseFsEvents */, 1 /* PriorityInterval */, options);\n case \"UseFsEventsWithFallbackDynamicPolling\":\n return generateWatchFileOptions(4 /* UseFsEvents */, 2 /* DynamicPriority */, options);\n case \"UseFsEventsOnParentDirectory\":\n useNonPollingWatchers2 = true;\n // fall through\n default:\n return useNonPollingWatchers2 ? (\n // Use notifications from FS to watch with falling back to fs.watchFile\n generateWatchFileOptions(5 /* UseFsEventsOnParentDirectory */, 1 /* PriorityInterval */, options)\n ) : (\n // Default to using fs events\n { watchFile: 4 /* UseFsEvents */ }\n );\n }\n }\n function generateWatchFileOptions(watchFile3, fallbackPolling, options) {\n const defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling;\n return {\n watchFile: watchFile3,\n fallbackPolling: defaultFallbackPolling === void 0 ? fallbackPolling : defaultFallbackPolling\n };\n }\n function watchDirectory(directoryName, callback, recursive, options) {\n if (fsSupportsRecursiveFsWatch) {\n return fsWatch(\n directoryName,\n 1 /* Directory */,\n createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory),\n recursive,\n 500 /* Medium */,\n getFallbackOptions(options)\n );\n }\n if (!hostRecursiveDirectoryWatcher) {\n hostRecursiveDirectoryWatcher = createDirectoryWatcherSupportingRecursive({\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n getCurrentDirectory,\n fileSystemEntryExists,\n getAccessibleSortedChildDirectories,\n watchDirectory: nonRecursiveWatchDirectory,\n realpath,\n setTimeout: setTimeout2,\n clearTimeout: clearTimeout2\n });\n }\n return hostRecursiveDirectoryWatcher(directoryName, callback, recursive, options);\n }\n function nonRecursiveWatchDirectory(directoryName, callback, recursive, options) {\n Debug.assert(!recursive);\n const watchDirectoryOptions = updateOptionsForWatchDirectory(options);\n const watchDirectoryKind = Debug.checkDefined(watchDirectoryOptions.watchDirectory);\n switch (watchDirectoryKind) {\n case 1 /* FixedPollingInterval */:\n return pollingWatchFile(\n directoryName,\n () => callback(directoryName),\n 500 /* Medium */,\n /*options*/\n void 0\n );\n case 2 /* DynamicPriorityPolling */:\n return ensureDynamicPollingWatchFile()(\n directoryName,\n () => callback(directoryName),\n 500 /* Medium */,\n /*options*/\n void 0\n );\n case 3 /* FixedChunkSizePolling */:\n return ensureFixedChunkSizePollingWatchFile()(\n directoryName,\n () => callback(directoryName),\n /* pollingInterval */\n void 0,\n /*options*/\n void 0\n );\n case 0 /* UseFsEvents */:\n return fsWatch(\n directoryName,\n 1 /* Directory */,\n createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory),\n recursive,\n 500 /* Medium */,\n getFallbackOptions(watchDirectoryOptions)\n );\n default:\n Debug.assertNever(watchDirectoryKind);\n }\n }\n function updateOptionsForWatchDirectory(options) {\n if (options && options.watchDirectory !== void 0) return options;\n switch (tscWatchDirectory) {\n case \"RecursiveDirectoryUsingFsWatchFile\":\n return { watchDirectory: 1 /* FixedPollingInterval */ };\n case \"RecursiveDirectoryUsingDynamicPriorityPolling\":\n return { watchDirectory: 2 /* DynamicPriorityPolling */ };\n default:\n const defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling;\n return {\n watchDirectory: 0 /* UseFsEvents */,\n fallbackPolling: defaultFallbackPolling !== void 0 ? defaultFallbackPolling : void 0\n };\n }\n }\n function pollingWatchFile(fileName, callback, pollingInterval, options) {\n return createSingleWatcherPerName(\n pollingWatches,\n useCaseSensitiveFileNames2,\n fileName,\n callback,\n (cb) => pollingWatchFileWorker(fileName, cb, pollingInterval, options)\n );\n }\n function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {\n return createSingleWatcherPerName(\n recursive ? fsWatchesRecursive : fsWatches,\n useCaseSensitiveFileNames2,\n fileOrDirectory,\n callback,\n (cb) => fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions)\n );\n }\n function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {\n let lastDirectoryPartWithDirectorySeparator;\n let lastDirectoryPart;\n if (inodeWatching) {\n lastDirectoryPartWithDirectorySeparator = fileOrDirectory.substring(fileOrDirectory.lastIndexOf(directorySeparator));\n lastDirectoryPart = lastDirectoryPartWithDirectorySeparator.slice(directorySeparator.length);\n }\n let watcher = !fileSystemEntryExists(fileOrDirectory, entryKind) ? watchMissingFileSystemEntry() : watchPresentFileSystemEntry();\n return {\n close: () => {\n if (watcher) {\n watcher.close();\n watcher = void 0;\n }\n }\n };\n function updateWatcher(createWatcher) {\n if (watcher) {\n sysLog2(`sysLog:: ${fileOrDirectory}:: Changing watcher to ${createWatcher === watchPresentFileSystemEntry ? \"Present\" : \"Missing\"}FileSystemEntryWatcher`);\n watcher.close();\n watcher = createWatcher();\n }\n }\n function watchPresentFileSystemEntry() {\n if (hitSystemWatcherLimit) {\n sysLog2(`sysLog:: ${fileOrDirectory}:: Defaulting to watchFile`);\n return watchPresentFileSystemEntryWithFsWatchFile();\n }\n try {\n const presentWatcher = (entryKind === 1 /* Directory */ || !fsWatchWithTimestamp ? fsWatchWorker : fsWatchWorkerHandlingTimestamp)(\n fileOrDirectory,\n recursive,\n inodeWatching ? callbackChangingToMissingFileSystemEntry : callback\n );\n presentWatcher.on(\"error\", () => {\n callback(\"rename\", \"\");\n updateWatcher(watchMissingFileSystemEntry);\n });\n return presentWatcher;\n } catch (e) {\n hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === \"ENOSPC\");\n sysLog2(`sysLog:: ${fileOrDirectory}:: Changing to watchFile`);\n return watchPresentFileSystemEntryWithFsWatchFile();\n }\n }\n function callbackChangingToMissingFileSystemEntry(event, relativeName) {\n let originalRelativeName;\n if (relativeName && endsWith(relativeName, \"~\")) {\n originalRelativeName = relativeName;\n relativeName = relativeName.slice(0, relativeName.length - 1);\n }\n if (event === \"rename\" && (!relativeName || relativeName === lastDirectoryPart || endsWith(relativeName, lastDirectoryPartWithDirectorySeparator))) {\n const modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n if (originalRelativeName) callback(event, originalRelativeName, modifiedTime);\n callback(event, relativeName, modifiedTime);\n if (inodeWatching) {\n updateWatcher(modifiedTime === missingFileModifiedTime ? watchMissingFileSystemEntry : watchPresentFileSystemEntry);\n } else if (modifiedTime === missingFileModifiedTime) {\n updateWatcher(watchMissingFileSystemEntry);\n }\n } else {\n if (originalRelativeName) callback(event, originalRelativeName);\n callback(event, relativeName);\n }\n }\n function watchPresentFileSystemEntryWithFsWatchFile() {\n return watchFile2(\n fileOrDirectory,\n createFileWatcherCallback(callback),\n fallbackPollingInterval,\n fallbackOptions\n );\n }\n function watchMissingFileSystemEntry() {\n return watchFile2(\n fileOrDirectory,\n (_fileName, eventKind, modifiedTime) => {\n if (eventKind === 0 /* Created */) {\n modifiedTime || (modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime);\n if (modifiedTime !== missingFileModifiedTime) {\n callback(\"rename\", \"\", modifiedTime);\n updateWatcher(watchPresentFileSystemEntry);\n }\n }\n },\n fallbackPollingInterval,\n fallbackOptions\n );\n }\n }\n function fsWatchWorkerHandlingTimestamp(fileOrDirectory, recursive, callback) {\n let modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n return fsWatchWorker(fileOrDirectory, recursive, (eventName, relativeFileName, currentModifiedTime) => {\n if (eventName === \"change\") {\n currentModifiedTime || (currentModifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime);\n if (currentModifiedTime.getTime() === modifiedTime.getTime()) return;\n }\n modifiedTime = currentModifiedTime || getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n callback(eventName, relativeFileName, modifiedTime);\n });\n }\n}\nfunction patchWriteFileEnsuringDirectory(sys2) {\n const originalWriteFile = sys2.writeFile;\n sys2.writeFile = (path, data, writeBom) => writeFileEnsuringDirectories(\n path,\n data,\n !!writeBom,\n (path2, data2, writeByteOrderMark) => originalWriteFile.call(sys2, path2, data2, writeByteOrderMark),\n (path2) => sys2.createDirectory(path2),\n (path2) => sys2.directoryExists(path2)\n );\n}\nvar sys = (() => {\n const byteOrderMarkIndicator = \"\\uFEFF\";\n function getNodeSystem() {\n const nativePattern = /^native |^\\([^)]+\\)$|^(?:internal[\\\\/]|[\\w\\s]+(?:\\.js)?$)/;\n const _fs = require(\"fs\");\n const _path = require(\"path\");\n const _os = require(\"os\");\n let _crypto;\n try {\n _crypto = require(\"crypto\");\n } catch {\n _crypto = void 0;\n }\n let activeSession;\n let profilePath = \"./profile.cpuprofile\";\n const isMacOs = process.platform === \"darwin\";\n const isLinuxOrMacOs = process.platform === \"linux\" || isMacOs;\n const statSyncOptions = { throwIfNoEntry: false };\n const platform = _os.platform();\n const useCaseSensitiveFileNames2 = isFileSystemCaseSensitive();\n const fsRealpath = !!_fs.realpathSync.native ? process.platform === \"win32\" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync;\n const executingFilePath = __filename.endsWith(\"sys.js\") ? _path.join(_path.dirname(__dirname), \"__fake__.js\") : __filename;\n const fsSupportsRecursiveFsWatch = process.platform === \"win32\" || isMacOs;\n const getCurrentDirectory = memoize(() => process.cwd());\n const { watchFile: watchFile2, watchDirectory } = createSystemWatchFunctions({\n pollingWatchFileWorker: fsWatchFileWorker,\n getModifiedTime: getModifiedTime3,\n setTimeout,\n clearTimeout,\n fsWatchWorker,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n getCurrentDirectory,\n fileSystemEntryExists,\n // Node 4.0 `fs.watch` function supports the \"recursive\" option on both OSX and Windows\n // (ref: https://github.com/nodejs/node/pull/2649 and https://github.com/Microsoft/TypeScript/issues/4643)\n fsSupportsRecursiveFsWatch,\n getAccessibleSortedChildDirectories: (path) => getAccessibleFileSystemEntries(path).directories,\n realpath,\n tscWatchFile: process.env.TSC_WATCHFILE,\n useNonPollingWatchers: !!process.env.TSC_NONPOLLING_WATCHER,\n tscWatchDirectory: process.env.TSC_WATCHDIRECTORY,\n inodeWatching: isLinuxOrMacOs,\n fsWatchWithTimestamp: isMacOs,\n sysLog\n });\n const nodeSystem = {\n args: process.argv.slice(2),\n newLine: _os.EOL,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n write(s) {\n process.stdout.write(s);\n },\n getWidthOfTerminal() {\n return process.stdout.columns;\n },\n writeOutputIsTTY() {\n return process.stdout.isTTY;\n },\n readFile,\n writeFile: writeFile2,\n watchFile: watchFile2,\n watchDirectory,\n preferNonRecursiveWatch: !fsSupportsRecursiveFsWatch,\n resolvePath: (path) => _path.resolve(path),\n fileExists,\n directoryExists,\n getAccessibleFileSystemEntries,\n createDirectory(directoryName) {\n if (!nodeSystem.directoryExists(directoryName)) {\n try {\n _fs.mkdirSync(directoryName);\n } catch (e) {\n if (e.code !== \"EEXIST\") {\n throw e;\n }\n }\n }\n },\n getExecutingFilePath() {\n return executingFilePath;\n },\n getCurrentDirectory,\n getDirectories,\n getEnvironmentVariable(name) {\n return process.env[name] || \"\";\n },\n readDirectory,\n getModifiedTime: getModifiedTime3,\n setModifiedTime,\n deleteFile,\n createHash: _crypto ? createSHA256Hash : generateDjb2Hash,\n createSHA256Hash: _crypto ? createSHA256Hash : void 0,\n getMemoryUsage() {\n if (global.gc) {\n global.gc();\n }\n return process.memoryUsage().heapUsed;\n },\n getFileSize(path) {\n const stat = statSync(path);\n if (stat == null ? void 0 : stat.isFile()) {\n return stat.size;\n }\n return 0;\n },\n exit(exitCode) {\n disableCPUProfiler(() => process.exit(exitCode));\n },\n enableCPUProfiler,\n disableCPUProfiler,\n cpuProfilingEnabled: () => !!activeSession || contains(process.execArgv, \"--cpu-prof\") || contains(process.execArgv, \"--prof\"),\n realpath,\n debugMode: !!process.env.NODE_INSPECTOR_IPC || !!process.env.VSCODE_INSPECTOR_OPTIONS || some(process.execArgv, (arg) => /^--(?:inspect|debug)(?:-brk)?(?:=\\d+)?$/i.test(arg)) || !!process.recordreplay,\n tryEnableSourceMapsForHost() {\n try {\n require(\"source-map-support\").install();\n } catch {\n }\n },\n setTimeout,\n clearTimeout,\n clearScreen: () => {\n process.stdout.write(\"\\x1B[2J\\x1B[3J\\x1B[H\");\n },\n setBlocking: () => {\n var _a;\n const handle = (_a = process.stdout) == null ? void 0 : _a._handle;\n if (handle && handle.setBlocking) {\n handle.setBlocking(true);\n }\n },\n base64decode: (input) => Buffer.from(input, \"base64\").toString(\"utf8\"),\n base64encode: (input) => Buffer.from(input).toString(\"base64\"),\n require: (baseDir, moduleName) => {\n try {\n const modulePath = resolveJSModule(moduleName, baseDir, nodeSystem);\n return { module: require(modulePath), modulePath, error: void 0 };\n } catch (error2) {\n return { module: void 0, modulePath: void 0, error: error2 };\n }\n }\n };\n return nodeSystem;\n function statSync(path) {\n try {\n return _fs.statSync(path, statSyncOptions);\n } catch {\n return void 0;\n }\n }\n function enableCPUProfiler(path, cb) {\n if (activeSession) {\n cb();\n return false;\n }\n const inspector = require(\"inspector\");\n if (!inspector || !inspector.Session) {\n cb();\n return false;\n }\n const session = new inspector.Session();\n session.connect();\n session.post(\"Profiler.enable\", () => {\n session.post(\"Profiler.start\", () => {\n activeSession = session;\n profilePath = path;\n cb();\n });\n });\n return true;\n }\n function cleanupPaths(profile) {\n let externalFileCounter = 0;\n const remappedPaths = /* @__PURE__ */ new Map();\n const normalizedDir = normalizeSlashes(_path.dirname(executingFilePath));\n const fileUrlRoot = `file://${getRootLength(normalizedDir) === 1 ? \"\" : \"/\"}${normalizedDir}`;\n for (const node of profile.nodes) {\n if (node.callFrame.url) {\n const url = normalizeSlashes(node.callFrame.url);\n if (containsPath(fileUrlRoot, url, useCaseSensitiveFileNames2)) {\n node.callFrame.url = getRelativePathToDirectoryOrUrl(\n fileUrlRoot,\n url,\n fileUrlRoot,\n createGetCanonicalFileName(useCaseSensitiveFileNames2),\n /*isAbsolutePathAnUrl*/\n true\n );\n } else if (!nativePattern.test(url)) {\n node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, `external${externalFileCounter}.js`)).get(url);\n externalFileCounter++;\n }\n }\n }\n return profile;\n }\n function disableCPUProfiler(cb) {\n if (activeSession && activeSession !== \"stopping\") {\n const s = activeSession;\n activeSession.post(\"Profiler.stop\", (err, { profile }) => {\n var _a;\n if (!err) {\n if ((_a = statSync(profilePath)) == null ? void 0 : _a.isDirectory()) {\n profilePath = _path.join(profilePath, `${(/* @__PURE__ */ new Date()).toISOString().replace(/:/g, \"-\")}+P${process.pid}.cpuprofile`);\n }\n try {\n _fs.mkdirSync(_path.dirname(profilePath), { recursive: true });\n } catch {\n }\n _fs.writeFileSync(profilePath, JSON.stringify(cleanupPaths(profile)));\n }\n activeSession = void 0;\n s.disconnect();\n cb();\n });\n activeSession = \"stopping\";\n return true;\n } else {\n cb();\n return false;\n }\n }\n function isFileSystemCaseSensitive() {\n if (platform === \"win32\" || platform === \"win64\") {\n return false;\n }\n return !fileExists(swapCase(__filename));\n }\n function swapCase(s) {\n return s.replace(/\\w/g, (ch) => {\n const up = ch.toUpperCase();\n return ch === up ? ch.toLowerCase() : up;\n });\n }\n function fsWatchFileWorker(fileName, callback, pollingInterval) {\n _fs.watchFile(fileName, { persistent: true, interval: pollingInterval }, fileChanged);\n let eventKind;\n return {\n close: () => _fs.unwatchFile(fileName, fileChanged)\n };\n function fileChanged(curr, prev) {\n const isPreviouslyDeleted = +prev.mtime === 0 || eventKind === 2 /* Deleted */;\n if (+curr.mtime === 0) {\n if (isPreviouslyDeleted) {\n return;\n }\n eventKind = 2 /* Deleted */;\n } else if (isPreviouslyDeleted) {\n eventKind = 0 /* Created */;\n } else if (+curr.mtime === +prev.mtime) {\n return;\n } else {\n eventKind = 1 /* Changed */;\n }\n callback(fileName, eventKind, curr.mtime);\n }\n }\n function fsWatchWorker(fileOrDirectory, recursive, callback) {\n return _fs.watch(\n fileOrDirectory,\n fsSupportsRecursiveFsWatch ? { persistent: true, recursive: !!recursive } : { persistent: true },\n callback\n );\n }\n function readFile(fileName, _encoding) {\n let buffer;\n try {\n buffer = _fs.readFileSync(fileName);\n } catch {\n return void 0;\n }\n let len = buffer.length;\n if (len >= 2 && buffer[0] === 254 && buffer[1] === 255) {\n len &= ~1;\n for (let i = 0; i < len; i += 2) {\n const temp = buffer[i];\n buffer[i] = buffer[i + 1];\n buffer[i + 1] = temp;\n }\n return buffer.toString(\"utf16le\", 2);\n }\n if (len >= 2 && buffer[0] === 255 && buffer[1] === 254) {\n return buffer.toString(\"utf16le\", 2);\n }\n if (len >= 3 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) {\n return buffer.toString(\"utf8\", 3);\n }\n return buffer.toString(\"utf8\");\n }\n function writeFile2(fileName, data, writeByteOrderMark) {\n if (writeByteOrderMark) {\n data = byteOrderMarkIndicator + data;\n }\n let fd;\n try {\n fd = _fs.openSync(fileName, \"w\");\n _fs.writeSync(\n fd,\n data,\n /*position*/\n void 0,\n \"utf8\"\n );\n } finally {\n if (fd !== void 0) {\n _fs.closeSync(fd);\n }\n }\n }\n function getAccessibleFileSystemEntries(path) {\n try {\n const entries = _fs.readdirSync(path || \".\", { withFileTypes: true });\n const files = [];\n const directories = [];\n for (const dirent of entries) {\n const entry = typeof dirent === \"string\" ? dirent : dirent.name;\n if (entry === \".\" || entry === \"..\") {\n continue;\n }\n let stat;\n if (typeof dirent === \"string\" || dirent.isSymbolicLink()) {\n const name = combinePaths(path, entry);\n stat = statSync(name);\n if (!stat) {\n continue;\n }\n } else {\n stat = dirent;\n }\n if (stat.isFile()) {\n files.push(entry);\n } else if (stat.isDirectory()) {\n directories.push(entry);\n }\n }\n files.sort();\n directories.sort();\n return { files, directories };\n } catch {\n return emptyFileSystemEntries;\n }\n }\n function readDirectory(path, extensions, excludes, includes, depth) {\n return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, process.cwd(), depth, getAccessibleFileSystemEntries, realpath);\n }\n function fileSystemEntryExists(path, entryKind) {\n const stat = statSync(path);\n if (!stat) {\n return false;\n }\n switch (entryKind) {\n case 0 /* File */:\n return stat.isFile();\n case 1 /* Directory */:\n return stat.isDirectory();\n default:\n return false;\n }\n }\n function fileExists(path) {\n return fileSystemEntryExists(path, 0 /* File */);\n }\n function directoryExists(path) {\n return fileSystemEntryExists(path, 1 /* Directory */);\n }\n function getDirectories(path) {\n return getAccessibleFileSystemEntries(path).directories.slice();\n }\n function fsRealPathHandlingLongPath(path) {\n return path.length < 260 ? _fs.realpathSync.native(path) : _fs.realpathSync(path);\n }\n function realpath(path) {\n try {\n return fsRealpath(path);\n } catch {\n return path;\n }\n }\n function getModifiedTime3(path) {\n var _a;\n return (_a = statSync(path)) == null ? void 0 : _a.mtime;\n }\n function setModifiedTime(path, time) {\n try {\n _fs.utimesSync(path, time, time);\n } catch {\n return;\n }\n }\n function deleteFile(path) {\n try {\n return _fs.unlinkSync(path);\n } catch {\n return;\n }\n }\n function createSHA256Hash(data) {\n const hash = _crypto.createHash(\"sha256\");\n hash.update(data);\n return hash.digest(\"hex\");\n }\n }\n let sys2;\n if (isNodeLikeSystem()) {\n sys2 = getNodeSystem();\n }\n if (sys2) {\n patchWriteFileEnsuringDirectory(sys2);\n }\n return sys2;\n})();\nfunction setSys(s) {\n sys = s;\n}\nif (sys && sys.getEnvironmentVariable) {\n setCustomPollingValues(sys);\n Debug.setAssertionLevel(\n /^development$/i.test(sys.getEnvironmentVariable(\"NODE_ENV\")) ? 1 /* Normal */ : 0 /* None */\n );\n}\nif (sys && sys.debugMode) {\n Debug.isDebugging = true;\n}\n\n// src/compiler/path.ts\nvar directorySeparator = \"/\";\nvar altDirectorySeparator = \"\\\\\";\nvar urlSchemeSeparator = \"://\";\nvar backslashRegExp = /\\\\/g;\nfunction isAnyDirectorySeparator(charCode) {\n return charCode === 47 /* slash */ || charCode === 92 /* backslash */;\n}\nfunction isUrl(path) {\n return getEncodedRootLength(path) < 0;\n}\nfunction isRootedDiskPath(path) {\n return getEncodedRootLength(path) > 0;\n}\nfunction isDiskPathRoot(path) {\n const rootLength = getEncodedRootLength(path);\n return rootLength > 0 && rootLength === path.length;\n}\nfunction pathIsAbsolute(path) {\n return getEncodedRootLength(path) !== 0;\n}\nfunction pathIsRelative(path) {\n return /^\\.\\.?(?:$|[\\\\/])/.test(path);\n}\nfunction pathIsBareSpecifier(path) {\n return !pathIsAbsolute(path) && !pathIsRelative(path);\n}\nfunction hasExtension(fileName) {\n return getBaseFileName(fileName).includes(\".\");\n}\nfunction fileExtensionIs(path, extension) {\n return path.length > extension.length && endsWith(path, extension);\n}\nfunction fileExtensionIsOneOf(path, extensions) {\n for (const extension of extensions) {\n if (fileExtensionIs(path, extension)) {\n return true;\n }\n }\n return false;\n}\nfunction hasTrailingDirectorySeparator(path) {\n return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1));\n}\nfunction isVolumeCharacter(charCode) {\n return charCode >= 97 /* a */ && charCode <= 122 /* z */ || charCode >= 65 /* A */ && charCode <= 90 /* Z */;\n}\nfunction getFileUrlVolumeSeparatorEnd(url, start) {\n const ch0 = url.charCodeAt(start);\n if (ch0 === 58 /* colon */) return start + 1;\n if (ch0 === 37 /* percent */ && url.charCodeAt(start + 1) === 51 /* _3 */) {\n const ch2 = url.charCodeAt(start + 2);\n if (ch2 === 97 /* a */ || ch2 === 65 /* A */) return start + 3;\n }\n return -1;\n}\nfunction getEncodedRootLength(path) {\n if (!path) return 0;\n const ch0 = path.charCodeAt(0);\n if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) {\n if (path.charCodeAt(1) !== ch0) return 1;\n const p1 = path.indexOf(ch0 === 47 /* slash */ ? directorySeparator : altDirectorySeparator, 2);\n if (p1 < 0) return path.length;\n return p1 + 1;\n }\n if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) {\n const ch2 = path.charCodeAt(2);\n if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */) return 3;\n if (path.length === 2) return 2;\n }\n const schemeEnd = path.indexOf(urlSchemeSeparator);\n if (schemeEnd !== -1) {\n const authorityStart = schemeEnd + urlSchemeSeparator.length;\n const authorityEnd = path.indexOf(directorySeparator, authorityStart);\n if (authorityEnd !== -1) {\n const scheme = path.slice(0, schemeEnd);\n const authority = path.slice(authorityStart, authorityEnd);\n if (scheme === \"file\" && (authority === \"\" || authority === \"localhost\") && isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {\n const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);\n if (volumeSeparatorEnd !== -1) {\n if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) {\n return ~(volumeSeparatorEnd + 1);\n }\n if (volumeSeparatorEnd === path.length) {\n return ~volumeSeparatorEnd;\n }\n }\n }\n return ~(authorityEnd + 1);\n }\n return ~path.length;\n }\n return 0;\n}\nfunction getRootLength(path) {\n const rootLength = getEncodedRootLength(path);\n return rootLength < 0 ? ~rootLength : rootLength;\n}\nfunction getDirectoryPath(path) {\n path = normalizeSlashes(path);\n const rootLength = getRootLength(path);\n if (rootLength === path.length) return path;\n path = removeTrailingDirectorySeparator(path);\n return path.slice(0, Math.max(rootLength, path.lastIndexOf(directorySeparator)));\n}\nfunction getBaseFileName(path, extensions, ignoreCase) {\n path = normalizeSlashes(path);\n const rootLength = getRootLength(path);\n if (rootLength === path.length) return \"\";\n path = removeTrailingDirectorySeparator(path);\n const name = path.slice(Math.max(getRootLength(path), path.lastIndexOf(directorySeparator) + 1));\n const extension = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(name, extensions, ignoreCase) : void 0;\n return extension ? name.slice(0, name.length - extension.length) : name;\n}\nfunction tryGetExtensionFromPath(path, extension, stringEqualityComparer) {\n if (!startsWith(extension, \".\")) extension = \".\" + extension;\n if (path.length >= extension.length && path.charCodeAt(path.length - extension.length) === 46 /* dot */) {\n const pathExtension = path.slice(path.length - extension.length);\n if (stringEqualityComparer(pathExtension, extension)) {\n return pathExtension;\n }\n }\n}\nfunction getAnyExtensionFromPathWorker(path, extensions, stringEqualityComparer) {\n if (typeof extensions === \"string\") {\n return tryGetExtensionFromPath(path, extensions, stringEqualityComparer) || \"\";\n }\n for (const extension of extensions) {\n const result = tryGetExtensionFromPath(path, extension, stringEqualityComparer);\n if (result) return result;\n }\n return \"\";\n}\nfunction getAnyExtensionFromPath(path, extensions, ignoreCase) {\n if (extensions) {\n return getAnyExtensionFromPathWorker(removeTrailingDirectorySeparator(path), extensions, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive);\n }\n const baseFileName = getBaseFileName(path);\n const extensionIndex = baseFileName.lastIndexOf(\".\");\n if (extensionIndex >= 0) {\n return baseFileName.substring(extensionIndex);\n }\n return \"\";\n}\nfunction pathComponents(path, rootLength) {\n const root = path.substring(0, rootLength);\n const rest = path.substring(rootLength).split(directorySeparator);\n if (rest.length && !lastOrUndefined(rest)) rest.pop();\n return [root, ...rest];\n}\nfunction getPathComponents(path, currentDirectory = \"\") {\n path = combinePaths(currentDirectory, path);\n return pathComponents(path, getRootLength(path));\n}\nfunction getPathFromPathComponents(pathComponents2, length2) {\n if (pathComponents2.length === 0) return \"\";\n const root = pathComponents2[0] && ensureTrailingDirectorySeparator(pathComponents2[0]);\n return root + pathComponents2.slice(1, length2).join(directorySeparator);\n}\nfunction normalizeSlashes(path) {\n return path.includes(\"\\\\\") ? path.replace(backslashRegExp, directorySeparator) : path;\n}\nfunction reducePathComponents(components) {\n if (!some(components)) return [];\n const reduced = [components[0]];\n for (let i = 1; i < components.length; i++) {\n const component = components[i];\n if (!component) continue;\n if (component === \".\") continue;\n if (component === \"..\") {\n if (reduced.length > 1) {\n if (reduced[reduced.length - 1] !== \"..\") {\n reduced.pop();\n continue;\n }\n } else if (reduced[0]) continue;\n }\n reduced.push(component);\n }\n return reduced;\n}\nfunction combinePaths(path, ...paths) {\n if (path) path = normalizeSlashes(path);\n for (let relativePath of paths) {\n if (!relativePath) continue;\n relativePath = normalizeSlashes(relativePath);\n if (!path || getRootLength(relativePath) !== 0) {\n path = relativePath;\n } else {\n path = ensureTrailingDirectorySeparator(path) + relativePath;\n }\n }\n return path;\n}\nfunction resolvePath(path, ...paths) {\n return normalizePath(some(paths) ? combinePaths(path, ...paths) : normalizeSlashes(path));\n}\nfunction getNormalizedPathComponents(path, currentDirectory) {\n return reducePathComponents(getPathComponents(path, currentDirectory));\n}\nfunction getNormalizedAbsolutePath(path, currentDirectory) {\n let rootLength = getRootLength(path);\n if (rootLength === 0 && currentDirectory) {\n path = combinePaths(currentDirectory, path);\n rootLength = getRootLength(path);\n } else {\n path = normalizeSlashes(path);\n }\n const simpleNormalized = simpleNormalizePath(path);\n if (simpleNormalized !== void 0) {\n return simpleNormalized.length > rootLength ? removeTrailingDirectorySeparator(simpleNormalized) : simpleNormalized;\n }\n const length2 = path.length;\n const root = path.substring(0, rootLength);\n let normalized;\n let index = rootLength;\n let segmentStart = index;\n let normalizedUpTo = index;\n let seenNonDotDotSegment = rootLength !== 0;\n while (index < length2) {\n segmentStart = index;\n let ch = path.charCodeAt(index);\n while (ch === 47 /* slash */ && index + 1 < length2) {\n index++;\n ch = path.charCodeAt(index);\n }\n if (index > segmentStart) {\n normalized ?? (normalized = path.substring(0, segmentStart - 1));\n segmentStart = index;\n }\n let segmentEnd = path.indexOf(directorySeparator, index + 1);\n if (segmentEnd === -1) {\n segmentEnd = length2;\n }\n const segmentLength = segmentEnd - segmentStart;\n if (segmentLength === 1 && path.charCodeAt(index) === 46 /* dot */) {\n normalized ?? (normalized = path.substring(0, normalizedUpTo));\n } else if (segmentLength === 2 && path.charCodeAt(index) === 46 /* dot */ && path.charCodeAt(index + 1) === 46 /* dot */) {\n if (!seenNonDotDotSegment) {\n if (normalized !== void 0) {\n normalized += normalized.length === rootLength ? \"..\" : \"/..\";\n } else {\n normalizedUpTo = index + 2;\n }\n } else if (normalized === void 0) {\n if (normalizedUpTo - 2 >= 0) {\n normalized = path.substring(0, Math.max(rootLength, path.lastIndexOf(directorySeparator, normalizedUpTo - 2)));\n } else {\n normalized = path.substring(0, normalizedUpTo);\n }\n } else {\n const lastSlash = normalized.lastIndexOf(directorySeparator);\n if (lastSlash !== -1) {\n normalized = normalized.substring(0, Math.max(rootLength, lastSlash));\n } else {\n normalized = root;\n }\n if (normalized.length === rootLength) {\n seenNonDotDotSegment = rootLength !== 0;\n }\n }\n } else if (normalized !== void 0) {\n if (normalized.length !== rootLength) {\n normalized += directorySeparator;\n }\n seenNonDotDotSegment = true;\n normalized += path.substring(segmentStart, segmentEnd);\n } else {\n seenNonDotDotSegment = true;\n normalizedUpTo = segmentEnd;\n }\n index = segmentEnd + 1;\n }\n return normalized ?? (length2 > rootLength ? removeTrailingDirectorySeparator(path) : path);\n}\nfunction normalizePath(path) {\n path = normalizeSlashes(path);\n let normalized = simpleNormalizePath(path);\n if (normalized !== void 0) {\n return normalized;\n }\n normalized = getNormalizedAbsolutePath(path, \"\");\n return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized;\n}\nfunction simpleNormalizePath(path) {\n if (!relativePathSegmentRegExp.test(path)) {\n return path;\n }\n let simplified = path.replace(/\\/\\.\\//g, \"/\");\n if (simplified.startsWith(\"./\")) {\n simplified = simplified.slice(2);\n }\n if (simplified !== path) {\n path = simplified;\n if (!relativePathSegmentRegExp.test(path)) {\n return path;\n }\n }\n return void 0;\n}\nfunction getPathWithoutRoot(pathComponents2) {\n if (pathComponents2.length === 0) return \"\";\n return pathComponents2.slice(1).join(directorySeparator);\n}\nfunction getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory) {\n return getPathWithoutRoot(getNormalizedPathComponents(fileName, currentDirectory));\n}\nfunction toPath(fileName, basePath, getCanonicalFileName) {\n const nonCanonicalizedPath = isRootedDiskPath(fileName) ? normalizePath(fileName) : getNormalizedAbsolutePath(fileName, basePath);\n return getCanonicalFileName(nonCanonicalizedPath);\n}\nfunction removeTrailingDirectorySeparator(path) {\n if (hasTrailingDirectorySeparator(path)) {\n return path.substr(0, path.length - 1);\n }\n return path;\n}\nfunction ensureTrailingDirectorySeparator(path) {\n if (!hasTrailingDirectorySeparator(path)) {\n return path + directorySeparator;\n }\n return path;\n}\nfunction ensurePathIsNonModuleName(path) {\n return !pathIsAbsolute(path) && !pathIsRelative(path) ? \"./\" + path : path;\n}\nfunction changeAnyExtension(path, ext, extensions, ignoreCase) {\n const pathext = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(path, extensions, ignoreCase) : getAnyExtensionFromPath(path);\n return pathext ? path.slice(0, path.length - pathext.length) + (startsWith(ext, \".\") ? ext : \".\" + ext) : path;\n}\nfunction changeFullExtension(path, newExtension) {\n const declarationExtension = getDeclarationFileExtension(path);\n if (declarationExtension) {\n return path.slice(0, path.length - declarationExtension.length) + (startsWith(newExtension, \".\") ? newExtension : \".\" + newExtension);\n }\n return changeAnyExtension(path, newExtension);\n}\nvar relativePathSegmentRegExp = /\\/\\/|(?:^|\\/)\\.\\.?(?:$|\\/)/;\nfunction comparePathsWorker(a, b, componentComparer) {\n if (a === b) return 0 /* EqualTo */;\n if (a === void 0) return -1 /* LessThan */;\n if (b === void 0) return 1 /* GreaterThan */;\n const aRoot = a.substring(0, getRootLength(a));\n const bRoot = b.substring(0, getRootLength(b));\n const result = compareStringsCaseInsensitive(aRoot, bRoot);\n if (result !== 0 /* EqualTo */) {\n return result;\n }\n const aRest = a.substring(aRoot.length);\n const bRest = b.substring(bRoot.length);\n if (!relativePathSegmentRegExp.test(aRest) && !relativePathSegmentRegExp.test(bRest)) {\n return componentComparer(aRest, bRest);\n }\n const aComponents = reducePathComponents(getPathComponents(a));\n const bComponents = reducePathComponents(getPathComponents(b));\n const sharedLength = Math.min(aComponents.length, bComponents.length);\n for (let i = 1; i < sharedLength; i++) {\n const result2 = componentComparer(aComponents[i], bComponents[i]);\n if (result2 !== 0 /* EqualTo */) {\n return result2;\n }\n }\n return compareValues(aComponents.length, bComponents.length);\n}\nfunction comparePathsCaseSensitive(a, b) {\n return comparePathsWorker(a, b, compareStringsCaseSensitive);\n}\nfunction comparePathsCaseInsensitive(a, b) {\n return comparePathsWorker(a, b, compareStringsCaseInsensitive);\n}\nfunction comparePaths(a, b, currentDirectory, ignoreCase) {\n if (typeof currentDirectory === \"string\") {\n a = combinePaths(currentDirectory, a);\n b = combinePaths(currentDirectory, b);\n } else if (typeof currentDirectory === \"boolean\") {\n ignoreCase = currentDirectory;\n }\n return comparePathsWorker(a, b, getStringComparer(ignoreCase));\n}\nfunction containsPath(parent2, child, currentDirectory, ignoreCase) {\n if (typeof currentDirectory === \"string\") {\n parent2 = combinePaths(currentDirectory, parent2);\n child = combinePaths(currentDirectory, child);\n } else if (typeof currentDirectory === \"boolean\") {\n ignoreCase = currentDirectory;\n }\n if (parent2 === void 0 || child === void 0) return false;\n if (parent2 === child) return true;\n const parentComponents = reducePathComponents(getPathComponents(parent2));\n const childComponents = reducePathComponents(getPathComponents(child));\n if (childComponents.length < parentComponents.length) {\n return false;\n }\n const componentEqualityComparer = ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive;\n for (let i = 0; i < parentComponents.length; i++) {\n const equalityComparer = i === 0 ? equateStringsCaseInsensitive : componentEqualityComparer;\n if (!equalityComparer(parentComponents[i], childComponents[i])) {\n return false;\n }\n }\n return true;\n}\nfunction startsWithDirectory(fileName, directoryName, getCanonicalFileName) {\n const canonicalFileName = getCanonicalFileName(fileName);\n const canonicalDirectoryName = getCanonicalFileName(directoryName);\n return startsWith(canonicalFileName, canonicalDirectoryName + \"/\") || startsWith(canonicalFileName, canonicalDirectoryName + \"\\\\\");\n}\nfunction getPathComponentsRelativeTo(from, to, stringEqualityComparer, getCanonicalFileName) {\n const fromComponents = reducePathComponents(getPathComponents(from));\n const toComponents = reducePathComponents(getPathComponents(to));\n let start;\n for (start = 0; start < fromComponents.length && start < toComponents.length; start++) {\n const fromComponent = getCanonicalFileName(fromComponents[start]);\n const toComponent = getCanonicalFileName(toComponents[start]);\n const comparer = start === 0 ? equateStringsCaseInsensitive : stringEqualityComparer;\n if (!comparer(fromComponent, toComponent)) break;\n }\n if (start === 0) {\n return toComponents;\n }\n const components = toComponents.slice(start);\n const relative = [];\n for (; start < fromComponents.length; start++) {\n relative.push(\"..\");\n }\n return [\"\", ...relative, ...components];\n}\nfunction getRelativePathFromDirectory(fromDirectory, to, getCanonicalFileNameOrIgnoreCase) {\n Debug.assert(getRootLength(fromDirectory) > 0 === getRootLength(to) > 0, \"Paths must either both be absolute or both be relative\");\n const getCanonicalFileName = typeof getCanonicalFileNameOrIgnoreCase === \"function\" ? getCanonicalFileNameOrIgnoreCase : identity;\n const ignoreCase = typeof getCanonicalFileNameOrIgnoreCase === \"boolean\" ? getCanonicalFileNameOrIgnoreCase : false;\n const pathComponents2 = getPathComponentsRelativeTo(fromDirectory, to, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive, getCanonicalFileName);\n return getPathFromPathComponents(pathComponents2);\n}\nfunction convertToRelativePath(absoluteOrRelativePath, basePath, getCanonicalFileName) {\n return !isRootedDiskPath(absoluteOrRelativePath) ? absoluteOrRelativePath : getRelativePathToDirectoryOrUrl(\n basePath,\n absoluteOrRelativePath,\n basePath,\n getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n false\n );\n}\nfunction getRelativePathFromFile(from, to, getCanonicalFileName) {\n return ensurePathIsNonModuleName(getRelativePathFromDirectory(getDirectoryPath(from), to, getCanonicalFileName));\n}\nfunction getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) {\n const pathComponents2 = getPathComponentsRelativeTo(\n resolvePath(currentDirectory, directoryPathOrUrl),\n resolvePath(currentDirectory, relativeOrAbsolutePath),\n equateStringsCaseSensitive,\n getCanonicalFileName\n );\n const firstComponent = pathComponents2[0];\n if (isAbsolutePathAnUrl && isRootedDiskPath(firstComponent)) {\n const prefix = firstComponent.charAt(0) === directorySeparator ? \"file://\" : \"file:///\";\n pathComponents2[0] = prefix + firstComponent;\n }\n return getPathFromPathComponents(pathComponents2);\n}\nfunction forEachAncestorDirectory(directory, callback) {\n while (true) {\n const result = callback(directory);\n if (result !== void 0) {\n return result;\n }\n const parentPath = getDirectoryPath(directory);\n if (parentPath === directory) {\n return void 0;\n }\n directory = parentPath;\n }\n}\nfunction isNodeModulesDirectory(dirPath) {\n return endsWith(dirPath, \"/node_modules\");\n}\n\n// src/compiler/diagnosticInformationMap.generated.ts\nfunction diag(code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated) {\n return { code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated };\n}\nvar Diagnostics = {\n Unterminated_string_literal: diag(1002, 1 /* Error */, \"Unterminated_string_literal_1002\", \"Unterminated string literal.\"),\n Identifier_expected: diag(1003, 1 /* Error */, \"Identifier_expected_1003\", \"Identifier expected.\"),\n _0_expected: diag(1005, 1 /* Error */, \"_0_expected_1005\", \"'{0}' expected.\"),\n A_file_cannot_have_a_reference_to_itself: diag(1006, 1 /* Error */, \"A_file_cannot_have_a_reference_to_itself_1006\", \"A file cannot have a reference to itself.\"),\n The_parser_expected_to_find_a_1_to_match_the_0_token_here: diag(1007, 1 /* Error */, \"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007\", \"The parser expected to find a '{1}' to match the '{0}' token here.\"),\n Trailing_comma_not_allowed: diag(1009, 1 /* Error */, \"Trailing_comma_not_allowed_1009\", \"Trailing comma not allowed.\"),\n Asterisk_Slash_expected: diag(1010, 1 /* Error */, \"Asterisk_Slash_expected_1010\", \"'*/' expected.\"),\n An_element_access_expression_should_take_an_argument: diag(1011, 1 /* Error */, \"An_element_access_expression_should_take_an_argument_1011\", \"An element access expression should take an argument.\"),\n Unexpected_token: diag(1012, 1 /* Error */, \"Unexpected_token_1012\", \"Unexpected token.\"),\n A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma: diag(1013, 1 /* Error */, \"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\", \"A rest parameter or binding pattern may not have a trailing comma.\"),\n A_rest_parameter_must_be_last_in_a_parameter_list: diag(1014, 1 /* Error */, \"A_rest_parameter_must_be_last_in_a_parameter_list_1014\", \"A rest parameter must be last in a parameter list.\"),\n Parameter_cannot_have_question_mark_and_initializer: diag(1015, 1 /* Error */, \"Parameter_cannot_have_question_mark_and_initializer_1015\", \"Parameter cannot have question mark and initializer.\"),\n A_required_parameter_cannot_follow_an_optional_parameter: diag(1016, 1 /* Error */, \"A_required_parameter_cannot_follow_an_optional_parameter_1016\", \"A required parameter cannot follow an optional parameter.\"),\n An_index_signature_cannot_have_a_rest_parameter: diag(1017, 1 /* Error */, \"An_index_signature_cannot_have_a_rest_parameter_1017\", \"An index signature cannot have a rest parameter.\"),\n An_index_signature_parameter_cannot_have_an_accessibility_modifier: diag(1018, 1 /* Error */, \"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\", \"An index signature parameter cannot have an accessibility modifier.\"),\n An_index_signature_parameter_cannot_have_a_question_mark: diag(1019, 1 /* Error */, \"An_index_signature_parameter_cannot_have_a_question_mark_1019\", \"An index signature parameter cannot have a question mark.\"),\n An_index_signature_parameter_cannot_have_an_initializer: diag(1020, 1 /* Error */, \"An_index_signature_parameter_cannot_have_an_initializer_1020\", \"An index signature parameter cannot have an initializer.\"),\n An_index_signature_must_have_a_type_annotation: diag(1021, 1 /* Error */, \"An_index_signature_must_have_a_type_annotation_1021\", \"An index signature must have a type annotation.\"),\n An_index_signature_parameter_must_have_a_type_annotation: diag(1022, 1 /* Error */, \"An_index_signature_parameter_must_have_a_type_annotation_1022\", \"An index signature parameter must have a type annotation.\"),\n readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: diag(1024, 1 /* Error */, \"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\", \"'readonly' modifier can only appear on a property declaration or index signature.\"),\n An_index_signature_cannot_have_a_trailing_comma: diag(1025, 1 /* Error */, \"An_index_signature_cannot_have_a_trailing_comma_1025\", \"An index signature cannot have a trailing comma.\"),\n Accessibility_modifier_already_seen: diag(1028, 1 /* Error */, \"Accessibility_modifier_already_seen_1028\", \"Accessibility modifier already seen.\"),\n _0_modifier_must_precede_1_modifier: diag(1029, 1 /* Error */, \"_0_modifier_must_precede_1_modifier_1029\", \"'{0}' modifier must precede '{1}' modifier.\"),\n _0_modifier_already_seen: diag(1030, 1 /* Error */, \"_0_modifier_already_seen_1030\", \"'{0}' modifier already seen.\"),\n _0_modifier_cannot_appear_on_class_elements_of_this_kind: diag(1031, 1 /* Error */, \"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031\", \"'{0}' modifier cannot appear on class elements of this kind.\"),\n super_must_be_followed_by_an_argument_list_or_member_access: diag(1034, 1 /* Error */, \"super_must_be_followed_by_an_argument_list_or_member_access_1034\", \"'super' must be followed by an argument list or member access.\"),\n Only_ambient_modules_can_use_quoted_names: diag(1035, 1 /* Error */, \"Only_ambient_modules_can_use_quoted_names_1035\", \"Only ambient modules can use quoted names.\"),\n Statements_are_not_allowed_in_ambient_contexts: diag(1036, 1 /* Error */, \"Statements_are_not_allowed_in_ambient_contexts_1036\", \"Statements are not allowed in ambient contexts.\"),\n A_declare_modifier_cannot_be_used_in_an_already_ambient_context: diag(1038, 1 /* Error */, \"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\", \"A 'declare' modifier cannot be used in an already ambient context.\"),\n Initializers_are_not_allowed_in_ambient_contexts: diag(1039, 1 /* Error */, \"Initializers_are_not_allowed_in_ambient_contexts_1039\", \"Initializers are not allowed in ambient contexts.\"),\n _0_modifier_cannot_be_used_in_an_ambient_context: diag(1040, 1 /* Error */, \"_0_modifier_cannot_be_used_in_an_ambient_context_1040\", \"'{0}' modifier cannot be used in an ambient context.\"),\n _0_modifier_cannot_be_used_here: diag(1042, 1 /* Error */, \"_0_modifier_cannot_be_used_here_1042\", \"'{0}' modifier cannot be used here.\"),\n _0_modifier_cannot_appear_on_a_module_or_namespace_element: diag(1044, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\", \"'{0}' modifier cannot appear on a module or namespace element.\"),\n Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier: diag(1046, 1 /* Error */, \"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\", \"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),\n A_rest_parameter_cannot_be_optional: diag(1047, 1 /* Error */, \"A_rest_parameter_cannot_be_optional_1047\", \"A rest parameter cannot be optional.\"),\n A_rest_parameter_cannot_have_an_initializer: diag(1048, 1 /* Error */, \"A_rest_parameter_cannot_have_an_initializer_1048\", \"A rest parameter cannot have an initializer.\"),\n A_set_accessor_must_have_exactly_one_parameter: diag(1049, 1 /* Error */, \"A_set_accessor_must_have_exactly_one_parameter_1049\", \"A 'set' accessor must have exactly one parameter.\"),\n A_set_accessor_cannot_have_an_optional_parameter: diag(1051, 1 /* Error */, \"A_set_accessor_cannot_have_an_optional_parameter_1051\", \"A 'set' accessor cannot have an optional parameter.\"),\n A_set_accessor_parameter_cannot_have_an_initializer: diag(1052, 1 /* Error */, \"A_set_accessor_parameter_cannot_have_an_initializer_1052\", \"A 'set' accessor parameter cannot have an initializer.\"),\n A_set_accessor_cannot_have_rest_parameter: diag(1053, 1 /* Error */, \"A_set_accessor_cannot_have_rest_parameter_1053\", \"A 'set' accessor cannot have rest parameter.\"),\n A_get_accessor_cannot_have_parameters: diag(1054, 1 /* Error */, \"A_get_accessor_cannot_have_parameters_1054\", \"A 'get' accessor cannot have parameters.\"),\n Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: diag(1055, 1 /* Error */, \"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055\", \"Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.\"),\n Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: diag(1056, 1 /* Error */, \"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\", \"Accessors are only available when targeting ECMAScript 5 and higher.\"),\n The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1058, 1 /* Error */, \"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\", \"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),\n A_promise_must_have_a_then_method: diag(1059, 1 /* Error */, \"A_promise_must_have_a_then_method_1059\", \"A promise must have a 'then' method.\"),\n The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback: diag(1060, 1 /* Error */, \"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\", \"The first parameter of the 'then' method of a promise must be a callback.\"),\n Enum_member_must_have_initializer: diag(1061, 1 /* Error */, \"Enum_member_must_have_initializer_1061\", \"Enum member must have initializer.\"),\n Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, \"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\", \"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),\n An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, \"An_export_assignment_cannot_be_used_in_a_namespace_1063\", \"An export assignment cannot be used in a namespace.\"),\n The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, \"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064\", \"The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?\"),\n The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, \"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065\", \"The return type of an async function or method must be the global Promise type.\"),\n In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, \"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\", \"In ambient enum declarations member initializer must be constant expression.\"),\n Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, \"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\", \"Unexpected token. A constructor, method, accessor, or property was expected.\"),\n Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, \"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\", \"Unexpected token. A type parameter name was expected without curly braces.\"),\n _0_modifier_cannot_appear_on_a_type_member: diag(1070, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_type_member_1070\", \"'{0}' modifier cannot appear on a type member.\"),\n _0_modifier_cannot_appear_on_an_index_signature: diag(1071, 1 /* Error */, \"_0_modifier_cannot_appear_on_an_index_signature_1071\", \"'{0}' modifier cannot appear on an index signature.\"),\n A_0_modifier_cannot_be_used_with_an_import_declaration: diag(1079, 1 /* Error */, \"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\", \"A '{0}' modifier cannot be used with an import declaration.\"),\n Invalid_reference_directive_syntax: diag(1084, 1 /* Error */, \"Invalid_reference_directive_syntax_1084\", \"Invalid 'reference' directive syntax.\"),\n _0_modifier_cannot_appear_on_a_constructor_declaration: diag(1089, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\", \"'{0}' modifier cannot appear on a constructor declaration.\"),\n _0_modifier_cannot_appear_on_a_parameter: diag(1090, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_parameter_1090\", \"'{0}' modifier cannot appear on a parameter.\"),\n Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: diag(1091, 1 /* Error */, \"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\", \"Only a single variable declaration is allowed in a 'for...in' statement.\"),\n Type_parameters_cannot_appear_on_a_constructor_declaration: diag(1092, 1 /* Error */, \"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\", \"Type parameters cannot appear on a constructor declaration.\"),\n Type_annotation_cannot_appear_on_a_constructor_declaration: diag(1093, 1 /* Error */, \"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\", \"Type annotation cannot appear on a constructor declaration.\"),\n An_accessor_cannot_have_type_parameters: diag(1094, 1 /* Error */, \"An_accessor_cannot_have_type_parameters_1094\", \"An accessor cannot have type parameters.\"),\n A_set_accessor_cannot_have_a_return_type_annotation: diag(1095, 1 /* Error */, \"A_set_accessor_cannot_have_a_return_type_annotation_1095\", \"A 'set' accessor cannot have a return type annotation.\"),\n An_index_signature_must_have_exactly_one_parameter: diag(1096, 1 /* Error */, \"An_index_signature_must_have_exactly_one_parameter_1096\", \"An index signature must have exactly one parameter.\"),\n _0_list_cannot_be_empty: diag(1097, 1 /* Error */, \"_0_list_cannot_be_empty_1097\", \"'{0}' list cannot be empty.\"),\n Type_parameter_list_cannot_be_empty: diag(1098, 1 /* Error */, \"Type_parameter_list_cannot_be_empty_1098\", \"Type parameter list cannot be empty.\"),\n Type_argument_list_cannot_be_empty: diag(1099, 1 /* Error */, \"Type_argument_list_cannot_be_empty_1099\", \"Type argument list cannot be empty.\"),\n Invalid_use_of_0_in_strict_mode: diag(1100, 1 /* Error */, \"Invalid_use_of_0_in_strict_mode_1100\", \"Invalid use of '{0}' in strict mode.\"),\n with_statements_are_not_allowed_in_strict_mode: diag(1101, 1 /* Error */, \"with_statements_are_not_allowed_in_strict_mode_1101\", \"'with' statements are not allowed in strict mode.\"),\n delete_cannot_be_called_on_an_identifier_in_strict_mode: diag(1102, 1 /* Error */, \"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\", \"'delete' cannot be called on an identifier in strict mode.\"),\n for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1103, 1 /* Error */, \"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103\", \"'for await' loops are only allowed within async functions and at the top levels of modules.\"),\n A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: diag(1104, 1 /* Error */, \"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\", \"A 'continue' statement can only be used within an enclosing iteration statement.\"),\n A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: diag(1105, 1 /* Error */, \"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\", \"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),\n The_left_hand_side_of_a_for_of_statement_may_not_be_async: diag(1106, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106\", \"The left-hand side of a 'for...of' statement may not be 'async'.\"),\n Jump_target_cannot_cross_function_boundary: diag(1107, 1 /* Error */, \"Jump_target_cannot_cross_function_boundary_1107\", \"Jump target cannot cross function boundary.\"),\n A_return_statement_can_only_be_used_within_a_function_body: diag(1108, 1 /* Error */, \"A_return_statement_can_only_be_used_within_a_function_body_1108\", \"A 'return' statement can only be used within a function body.\"),\n Expression_expected: diag(1109, 1 /* Error */, \"Expression_expected_1109\", \"Expression expected.\"),\n Type_expected: diag(1110, 1 /* Error */, \"Type_expected_1110\", \"Type expected.\"),\n Private_field_0_must_be_declared_in_an_enclosing_class: diag(1111, 1 /* Error */, \"Private_field_0_must_be_declared_in_an_enclosing_class_1111\", \"Private field '{0}' must be declared in an enclosing class.\"),\n A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: diag(1113, 1 /* Error */, \"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\", \"A 'default' clause cannot appear more than once in a 'switch' statement.\"),\n Duplicate_label_0: diag(1114, 1 /* Error */, \"Duplicate_label_0_1114\", \"Duplicate label '{0}'.\"),\n A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: diag(1115, 1 /* Error */, \"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\", \"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),\n A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: diag(1116, 1 /* Error */, \"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\", \"A 'break' statement can only jump to a label of an enclosing statement.\"),\n An_object_literal_cannot_have_multiple_properties_with_the_same_name: diag(1117, 1 /* Error */, \"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117\", \"An object literal cannot have multiple properties with the same name.\"),\n An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: diag(1118, 1 /* Error */, \"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\", \"An object literal cannot have multiple get/set accessors with the same name.\"),\n An_object_literal_cannot_have_property_and_accessor_with_the_same_name: diag(1119, 1 /* Error */, \"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\", \"An object literal cannot have property and accessor with the same name.\"),\n An_export_assignment_cannot_have_modifiers: diag(1120, 1 /* Error */, \"An_export_assignment_cannot_have_modifiers_1120\", \"An export assignment cannot have modifiers.\"),\n Octal_literals_are_not_allowed_Use_the_syntax_0: diag(1121, 1 /* Error */, \"Octal_literals_are_not_allowed_Use_the_syntax_0_1121\", \"Octal literals are not allowed. Use the syntax '{0}'.\"),\n Variable_declaration_list_cannot_be_empty: diag(1123, 1 /* Error */, \"Variable_declaration_list_cannot_be_empty_1123\", \"Variable declaration list cannot be empty.\"),\n Digit_expected: diag(1124, 1 /* Error */, \"Digit_expected_1124\", \"Digit expected.\"),\n Hexadecimal_digit_expected: diag(1125, 1 /* Error */, \"Hexadecimal_digit_expected_1125\", \"Hexadecimal digit expected.\"),\n Unexpected_end_of_text: diag(1126, 1 /* Error */, \"Unexpected_end_of_text_1126\", \"Unexpected end of text.\"),\n Invalid_character: diag(1127, 1 /* Error */, \"Invalid_character_1127\", \"Invalid character.\"),\n Declaration_or_statement_expected: diag(1128, 1 /* Error */, \"Declaration_or_statement_expected_1128\", \"Declaration or statement expected.\"),\n Statement_expected: diag(1129, 1 /* Error */, \"Statement_expected_1129\", \"Statement expected.\"),\n case_or_default_expected: diag(1130, 1 /* Error */, \"case_or_default_expected_1130\", \"'case' or 'default' expected.\"),\n Property_or_signature_expected: diag(1131, 1 /* Error */, \"Property_or_signature_expected_1131\", \"Property or signature expected.\"),\n Enum_member_expected: diag(1132, 1 /* Error */, \"Enum_member_expected_1132\", \"Enum member expected.\"),\n Variable_declaration_expected: diag(1134, 1 /* Error */, \"Variable_declaration_expected_1134\", \"Variable declaration expected.\"),\n Argument_expression_expected: diag(1135, 1 /* Error */, \"Argument_expression_expected_1135\", \"Argument expression expected.\"),\n Property_assignment_expected: diag(1136, 1 /* Error */, \"Property_assignment_expected_1136\", \"Property assignment expected.\"),\n Expression_or_comma_expected: diag(1137, 1 /* Error */, \"Expression_or_comma_expected_1137\", \"Expression or comma expected.\"),\n Parameter_declaration_expected: diag(1138, 1 /* Error */, \"Parameter_declaration_expected_1138\", \"Parameter declaration expected.\"),\n Type_parameter_declaration_expected: diag(1139, 1 /* Error */, \"Type_parameter_declaration_expected_1139\", \"Type parameter declaration expected.\"),\n Type_argument_expected: diag(1140, 1 /* Error */, \"Type_argument_expected_1140\", \"Type argument expected.\"),\n String_literal_expected: diag(1141, 1 /* Error */, \"String_literal_expected_1141\", \"String literal expected.\"),\n Line_break_not_permitted_here: diag(1142, 1 /* Error */, \"Line_break_not_permitted_here_1142\", \"Line break not permitted here.\"),\n or_expected: diag(1144, 1 /* Error */, \"or_expected_1144\", \"'{' or ';' expected.\"),\n or_JSX_element_expected: diag(1145, 1 /* Error */, \"or_JSX_element_expected_1145\", \"'{' or JSX element expected.\"),\n Declaration_expected: diag(1146, 1 /* Error */, \"Declaration_expected_1146\", \"Declaration expected.\"),\n Import_declarations_in_a_namespace_cannot_reference_a_module: diag(1147, 1 /* Error */, \"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\", \"Import declarations in a namespace cannot reference a module.\"),\n Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: diag(1148, 1 /* Error */, \"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\", \"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),\n File_name_0_differs_from_already_included_file_name_1_only_in_casing: diag(1149, 1 /* Error */, \"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\", \"File name '{0}' differs from already included file name '{1}' only in casing.\"),\n _0_declarations_must_be_initialized: diag(1155, 1 /* Error */, \"_0_declarations_must_be_initialized_1155\", \"'{0}' declarations must be initialized.\"),\n _0_declarations_can_only_be_declared_inside_a_block: diag(1156, 1 /* Error */, \"_0_declarations_can_only_be_declared_inside_a_block_1156\", \"'{0}' declarations can only be declared inside a block.\"),\n Unterminated_template_literal: diag(1160, 1 /* Error */, \"Unterminated_template_literal_1160\", \"Unterminated template literal.\"),\n Unterminated_regular_expression_literal: diag(1161, 1 /* Error */, \"Unterminated_regular_expression_literal_1161\", \"Unterminated regular expression literal.\"),\n An_object_member_cannot_be_declared_optional: diag(1162, 1 /* Error */, \"An_object_member_cannot_be_declared_optional_1162\", \"An object member cannot be declared optional.\"),\n A_yield_expression_is_only_allowed_in_a_generator_body: diag(1163, 1 /* Error */, \"A_yield_expression_is_only_allowed_in_a_generator_body_1163\", \"A 'yield' expression is only allowed in a generator body.\"),\n Computed_property_names_are_not_allowed_in_enums: diag(1164, 1 /* Error */, \"Computed_property_names_are_not_allowed_in_enums_1164\", \"Computed property names are not allowed in enums.\"),\n A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1165, 1 /* Error */, \"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\", \"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type: diag(1166, 1 /* Error */, \"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166\", \"A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.\"),\n A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1168, 1 /* Error */, \"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\", \"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1169, 1 /* Error */, \"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\", \"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1170, 1 /* Error */, \"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\", \"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n A_comma_expression_is_not_allowed_in_a_computed_property_name: diag(1171, 1 /* Error */, \"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\", \"A comma expression is not allowed in a computed property name.\"),\n extends_clause_already_seen: diag(1172, 1 /* Error */, \"extends_clause_already_seen_1172\", \"'extends' clause already seen.\"),\n extends_clause_must_precede_implements_clause: diag(1173, 1 /* Error */, \"extends_clause_must_precede_implements_clause_1173\", \"'extends' clause must precede 'implements' clause.\"),\n Classes_can_only_extend_a_single_class: diag(1174, 1 /* Error */, \"Classes_can_only_extend_a_single_class_1174\", \"Classes can only extend a single class.\"),\n implements_clause_already_seen: diag(1175, 1 /* Error */, \"implements_clause_already_seen_1175\", \"'implements' clause already seen.\"),\n Interface_declaration_cannot_have_implements_clause: diag(1176, 1 /* Error */, \"Interface_declaration_cannot_have_implements_clause_1176\", \"Interface declaration cannot have 'implements' clause.\"),\n Binary_digit_expected: diag(1177, 1 /* Error */, \"Binary_digit_expected_1177\", \"Binary digit expected.\"),\n Octal_digit_expected: diag(1178, 1 /* Error */, \"Octal_digit_expected_1178\", \"Octal digit expected.\"),\n Unexpected_token_expected: diag(1179, 1 /* Error */, \"Unexpected_token_expected_1179\", \"Unexpected token. '{' expected.\"),\n Property_destructuring_pattern_expected: diag(1180, 1 /* Error */, \"Property_destructuring_pattern_expected_1180\", \"Property destructuring pattern expected.\"),\n Array_element_destructuring_pattern_expected: diag(1181, 1 /* Error */, \"Array_element_destructuring_pattern_expected_1181\", \"Array element destructuring pattern expected.\"),\n A_destructuring_declaration_must_have_an_initializer: diag(1182, 1 /* Error */, \"A_destructuring_declaration_must_have_an_initializer_1182\", \"A destructuring declaration must have an initializer.\"),\n An_implementation_cannot_be_declared_in_ambient_contexts: diag(1183, 1 /* Error */, \"An_implementation_cannot_be_declared_in_ambient_contexts_1183\", \"An implementation cannot be declared in ambient contexts.\"),\n Modifiers_cannot_appear_here: diag(1184, 1 /* Error */, \"Modifiers_cannot_appear_here_1184\", \"Modifiers cannot appear here.\"),\n Merge_conflict_marker_encountered: diag(1185, 1 /* Error */, \"Merge_conflict_marker_encountered_1185\", \"Merge conflict marker encountered.\"),\n A_rest_element_cannot_have_an_initializer: diag(1186, 1 /* Error */, \"A_rest_element_cannot_have_an_initializer_1186\", \"A rest element cannot have an initializer.\"),\n A_parameter_property_may_not_be_declared_using_a_binding_pattern: diag(1187, 1 /* Error */, \"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\", \"A parameter property may not be declared using a binding pattern.\"),\n Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: diag(1188, 1 /* Error */, \"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\", \"Only a single variable declaration is allowed in a 'for...of' statement.\"),\n The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: diag(1189, 1 /* Error */, \"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\", \"The variable declaration of a 'for...in' statement cannot have an initializer.\"),\n The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: diag(1190, 1 /* Error */, \"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\", \"The variable declaration of a 'for...of' statement cannot have an initializer.\"),\n An_import_declaration_cannot_have_modifiers: diag(1191, 1 /* Error */, \"An_import_declaration_cannot_have_modifiers_1191\", \"An import declaration cannot have modifiers.\"),\n Module_0_has_no_default_export: diag(1192, 1 /* Error */, \"Module_0_has_no_default_export_1192\", \"Module '{0}' has no default export.\"),\n An_export_declaration_cannot_have_modifiers: diag(1193, 1 /* Error */, \"An_export_declaration_cannot_have_modifiers_1193\", \"An export declaration cannot have modifiers.\"),\n Export_declarations_are_not_permitted_in_a_namespace: diag(1194, 1 /* Error */, \"Export_declarations_are_not_permitted_in_a_namespace_1194\", \"Export declarations are not permitted in a namespace.\"),\n export_Asterisk_does_not_re_export_a_default: diag(1195, 1 /* Error */, \"export_Asterisk_does_not_re_export_a_default_1195\", \"'export *' does not re-export a default.\"),\n Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: diag(1196, 1 /* Error */, \"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196\", \"Catch clause variable type annotation must be 'any' or 'unknown' if specified.\"),\n Catch_clause_variable_cannot_have_an_initializer: diag(1197, 1 /* Error */, \"Catch_clause_variable_cannot_have_an_initializer_1197\", \"Catch clause variable cannot have an initializer.\"),\n An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: diag(1198, 1 /* Error */, \"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\", \"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),\n Unterminated_Unicode_escape_sequence: diag(1199, 1 /* Error */, \"Unterminated_Unicode_escape_sequence_1199\", \"Unterminated Unicode escape sequence.\"),\n Line_terminator_not_permitted_before_arrow: diag(1200, 1 /* Error */, \"Line_terminator_not_permitted_before_arrow_1200\", \"Line terminator not permitted before arrow.\"),\n Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: diag(1202, 1 /* Error */, \"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\", `Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.`),\n Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead: diag(1203, 1 /* Error */, \"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\", \"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),\n Re_exporting_a_type_when_0_is_enabled_requires_using_export_type: diag(1205, 1 /* Error */, \"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205\", \"Re-exporting a type when '{0}' is enabled requires using 'export type'.\"),\n Decorators_are_not_valid_here: diag(1206, 1 /* Error */, \"Decorators_are_not_valid_here_1206\", \"Decorators are not valid here.\"),\n Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: diag(1207, 1 /* Error */, \"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\", \"Decorators cannot be applied to multiple get/set accessors of the same name.\"),\n Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0: diag(1209, 1 /* Error */, \"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209\", \"Invalid optional chain from new expression. Did you mean to call '{0}()'?\"),\n Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode: diag(1210, 1 /* Error */, \"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210\", \"Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.\"),\n A_class_declaration_without_the_default_modifier_must_have_a_name: diag(1211, 1 /* Error */, \"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\", \"A class declaration without the 'default' modifier must have a name.\"),\n Identifier_expected_0_is_a_reserved_word_in_strict_mode: diag(1212, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\", \"Identifier expected. '{0}' is a reserved word in strict mode.\"),\n Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: diag(1213, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\", \"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),\n Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: diag(1214, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\", \"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),\n Invalid_use_of_0_Modules_are_automatically_in_strict_mode: diag(1215, 1 /* Error */, \"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\", \"Invalid use of '{0}'. Modules are automatically in strict mode.\"),\n Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules: diag(1216, 1 /* Error */, \"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\", \"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),\n Export_assignment_is_not_supported_when_module_flag_is_system: diag(1218, 1 /* Error */, \"Export_assignment_is_not_supported_when_module_flag_is_system_1218\", \"Export assignment is not supported when '--module' flag is 'system'.\"),\n Generators_are_not_allowed_in_an_ambient_context: diag(1221, 1 /* Error */, \"Generators_are_not_allowed_in_an_ambient_context_1221\", \"Generators are not allowed in an ambient context.\"),\n An_overload_signature_cannot_be_declared_as_a_generator: diag(1222, 1 /* Error */, \"An_overload_signature_cannot_be_declared_as_a_generator_1222\", \"An overload signature cannot be declared as a generator.\"),\n _0_tag_already_specified: diag(1223, 1 /* Error */, \"_0_tag_already_specified_1223\", \"'{0}' tag already specified.\"),\n Signature_0_must_be_a_type_predicate: diag(1224, 1 /* Error */, \"Signature_0_must_be_a_type_predicate_1224\", \"Signature '{0}' must be a type predicate.\"),\n Cannot_find_parameter_0: diag(1225, 1 /* Error */, \"Cannot_find_parameter_0_1225\", \"Cannot find parameter '{0}'.\"),\n Type_predicate_0_is_not_assignable_to_1: diag(1226, 1 /* Error */, \"Type_predicate_0_is_not_assignable_to_1_1226\", \"Type predicate '{0}' is not assignable to '{1}'.\"),\n Parameter_0_is_not_in_the_same_position_as_parameter_1: diag(1227, 1 /* Error */, \"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\", \"Parameter '{0}' is not in the same position as parameter '{1}'.\"),\n A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: diag(1228, 1 /* Error */, \"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\", \"A type predicate is only allowed in return type position for functions and methods.\"),\n A_type_predicate_cannot_reference_a_rest_parameter: diag(1229, 1 /* Error */, \"A_type_predicate_cannot_reference_a_rest_parameter_1229\", \"A type predicate cannot reference a rest parameter.\"),\n A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: diag(1230, 1 /* Error */, \"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\", \"A type predicate cannot reference element '{0}' in a binding pattern.\"),\n An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1231, 1 /* Error */, \"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231\", \"An export assignment must be at the top level of a file or module declaration.\"),\n An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1232, 1 /* Error */, \"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232\", \"An import declaration can only be used at the top level of a namespace or module.\"),\n An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1233, 1 /* Error */, \"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233\", \"An export declaration can only be used at the top level of a namespace or module.\"),\n An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: diag(1234, 1 /* Error */, \"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\", \"An ambient module declaration is only allowed at the top level in a file.\"),\n A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module: diag(1235, 1 /* Error */, \"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235\", \"A namespace declaration is only allowed at the top level of a namespace or module.\"),\n The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: diag(1236, 1 /* Error */, \"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\", \"The return type of a property decorator function must be either 'void' or 'any'.\"),\n The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: diag(1237, 1 /* Error */, \"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\", \"The return type of a parameter decorator function must be either 'void' or 'any'.\"),\n Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: diag(1238, 1 /* Error */, \"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\", \"Unable to resolve signature of class decorator when called as an expression.\"),\n Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: diag(1239, 1 /* Error */, \"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\", \"Unable to resolve signature of parameter decorator when called as an expression.\"),\n Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: diag(1240, 1 /* Error */, \"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\", \"Unable to resolve signature of property decorator when called as an expression.\"),\n Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: diag(1241, 1 /* Error */, \"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\", \"Unable to resolve signature of method decorator when called as an expression.\"),\n abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: diag(1242, 1 /* Error */, \"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\", \"'abstract' modifier can only appear on a class, method, or property declaration.\"),\n _0_modifier_cannot_be_used_with_1_modifier: diag(1243, 1 /* Error */, \"_0_modifier_cannot_be_used_with_1_modifier_1243\", \"'{0}' modifier cannot be used with '{1}' modifier.\"),\n Abstract_methods_can_only_appear_within_an_abstract_class: diag(1244, 1 /* Error */, \"Abstract_methods_can_only_appear_within_an_abstract_class_1244\", \"Abstract methods can only appear within an abstract class.\"),\n Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: diag(1245, 1 /* Error */, \"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\", \"Method '{0}' cannot have an implementation because it is marked abstract.\"),\n An_interface_property_cannot_have_an_initializer: diag(1246, 1 /* Error */, \"An_interface_property_cannot_have_an_initializer_1246\", \"An interface property cannot have an initializer.\"),\n A_type_literal_property_cannot_have_an_initializer: diag(1247, 1 /* Error */, \"A_type_literal_property_cannot_have_an_initializer_1247\", \"A type literal property cannot have an initializer.\"),\n A_class_member_cannot_have_the_0_keyword: diag(1248, 1 /* Error */, \"A_class_member_cannot_have_the_0_keyword_1248\", \"A class member cannot have the '{0}' keyword.\"),\n A_decorator_can_only_decorate_a_method_implementation_not_an_overload: diag(1249, 1 /* Error */, \"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\", \"A decorator can only decorate a method implementation, not an overload.\"),\n Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5: diag(1250, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.\"),\n Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode: diag(1251, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.\"),\n Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode: diag(1252, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.\"),\n Abstract_properties_can_only_appear_within_an_abstract_class: diag(1253, 1 /* Error */, \"Abstract_properties_can_only_appear_within_an_abstract_class_1253\", \"Abstract properties can only appear within an abstract class.\"),\n A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference: diag(1254, 1 /* Error */, \"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\", \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),\n A_definite_assignment_assertion_is_not_permitted_in_this_context: diag(1255, 1 /* Error */, \"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\", \"A definite assignment assertion '!' is not permitted in this context.\"),\n A_required_element_cannot_follow_an_optional_element: diag(1257, 1 /* Error */, \"A_required_element_cannot_follow_an_optional_element_1257\", \"A required element cannot follow an optional element.\"),\n A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1258, 1 /* Error */, \"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258\", \"A default export must be at the top level of a file or module declaration.\"),\n Module_0_can_only_be_default_imported_using_the_1_flag: diag(1259, 1 /* Error */, \"Module_0_can_only_be_default_imported_using_the_1_flag_1259\", \"Module '{0}' can only be default-imported using the '{1}' flag\"),\n Keywords_cannot_contain_escape_characters: diag(1260, 1 /* Error */, \"Keywords_cannot_contain_escape_characters_1260\", \"Keywords cannot contain escape characters.\"),\n Already_included_file_name_0_differs_from_file_name_1_only_in_casing: diag(1261, 1 /* Error */, \"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261\", \"Already included file name '{0}' differs from file name '{1}' only in casing.\"),\n Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module: diag(1262, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262\", \"Identifier expected. '{0}' is a reserved word at the top-level of a module.\"),\n Declarations_with_initializers_cannot_also_have_definite_assignment_assertions: diag(1263, 1 /* Error */, \"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263\", \"Declarations with initializers cannot also have definite assignment assertions.\"),\n Declarations_with_definite_assignment_assertions_must_also_have_type_annotations: diag(1264, 1 /* Error */, \"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264\", \"Declarations with definite assignment assertions must also have type annotations.\"),\n A_rest_element_cannot_follow_another_rest_element: diag(1265, 1 /* Error */, \"A_rest_element_cannot_follow_another_rest_element_1265\", \"A rest element cannot follow another rest element.\"),\n An_optional_element_cannot_follow_a_rest_element: diag(1266, 1 /* Error */, \"An_optional_element_cannot_follow_a_rest_element_1266\", \"An optional element cannot follow a rest element.\"),\n Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: diag(1267, 1 /* Error */, \"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267\", \"Property '{0}' cannot have an initializer because it is marked abstract.\"),\n An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: diag(1268, 1 /* Error */, \"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268\", \"An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.\"),\n Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled: diag(1269, 1 /* Error */, \"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269\", \"Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.\"),\n Decorator_function_return_type_0_is_not_assignable_to_type_1: diag(1270, 1 /* Error */, \"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270\", \"Decorator function return type '{0}' is not assignable to type '{1}'.\"),\n Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: diag(1271, 1 /* Error */, \"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271\", \"Decorator function return type is '{0}' but is expected to be 'void' or 'any'.\"),\n A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled: diag(1272, 1 /* Error */, \"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272\", \"A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.\"),\n _0_modifier_cannot_appear_on_a_type_parameter: diag(1273, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_type_parameter_1273\", \"'{0}' modifier cannot appear on a type parameter\"),\n _0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias: diag(1274, 1 /* Error */, \"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274\", \"'{0}' modifier can only appear on a type parameter of a class, interface or type alias\"),\n accessor_modifier_can_only_appear_on_a_property_declaration: diag(1275, 1 /* Error */, \"accessor_modifier_can_only_appear_on_a_property_declaration_1275\", \"'accessor' modifier can only appear on a property declaration.\"),\n An_accessor_property_cannot_be_declared_optional: diag(1276, 1 /* Error */, \"An_accessor_property_cannot_be_declared_optional_1276\", \"An 'accessor' property cannot be declared optional.\"),\n _0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class: diag(1277, 1 /* Error */, \"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277\", \"'{0}' modifier can only appear on a type parameter of a function, method or class\"),\n The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0: diag(1278, 1 /* Error */, \"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278\", \"The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.\"),\n The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0: diag(1279, 1 /* Error */, \"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279\", \"The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.\"),\n Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement: diag(1280, 1 /* Error */, \"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280\", \"Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.\"),\n Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead: diag(1281, 1 /* Error */, \"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281\", \"Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.\"),\n An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1282, 1 /* Error */, \"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282\", \"An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),\n An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1283, 1 /* Error */, \"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283\", \"An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),\n An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1284, 1 /* Error */, \"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284\", \"An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),\n An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1285, 1 /* Error */, \"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285\", \"An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),\n ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax: diag(1286, 1 /* Error */, \"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_1286\", \"ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'.\"),\n A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: diag(1287, 1 /* Error */, \"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287\", \"A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.\"),\n An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled: diag(1288, 1 /* Error */, \"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288\", \"An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.\"),\n _0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported: diag(1289, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289\", \"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),\n _0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default: diag(1290, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290\", \"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),\n _0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported: diag(1291, 1 /* Error */, \"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291\", \"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),\n _0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default: diag(1292, 1 /* Error */, \"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292\", \"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),\n ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve: diag(1293, 1 /* Error */, \"ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293\", \"ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.\"),\n This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled: diag(1294, 1 /* Error */, \"This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled_1294\", \"This syntax is not allowed when 'erasableSyntaxOnly' is enabled.\"),\n ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript: diag(1295, 1 /* Error */, \"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjus_1295\", \"ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript.\"),\n with_statements_are_not_allowed_in_an_async_function_block: diag(1300, 1 /* Error */, \"with_statements_are_not_allowed_in_an_async_function_block_1300\", \"'with' statements are not allowed in an async function block.\"),\n await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1308, 1 /* Error */, \"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308\", \"'await' expressions are only allowed within async functions and at the top levels of modules.\"),\n The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level: diag(1309, 1 /* Error */, \"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309\", \"The current file is a CommonJS module and cannot use 'await' at the top level.\"),\n Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: diag(1312, 1 /* Error */, \"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312\", \"Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.\"),\n The_body_of_an_if_statement_cannot_be_the_empty_statement: diag(1313, 1 /* Error */, \"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\", \"The body of an 'if' statement cannot be the empty statement.\"),\n Global_module_exports_may_only_appear_in_module_files: diag(1314, 1 /* Error */, \"Global_module_exports_may_only_appear_in_module_files_1314\", \"Global module exports may only appear in module files.\"),\n Global_module_exports_may_only_appear_in_declaration_files: diag(1315, 1 /* Error */, \"Global_module_exports_may_only_appear_in_declaration_files_1315\", \"Global module exports may only appear in declaration files.\"),\n Global_module_exports_may_only_appear_at_top_level: diag(1316, 1 /* Error */, \"Global_module_exports_may_only_appear_at_top_level_1316\", \"Global module exports may only appear at top level.\"),\n A_parameter_property_cannot_be_declared_using_a_rest_parameter: diag(1317, 1 /* Error */, \"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\", \"A parameter property cannot be declared using a rest parameter.\"),\n An_abstract_accessor_cannot_have_an_implementation: diag(1318, 1 /* Error */, \"An_abstract_accessor_cannot_have_an_implementation_1318\", \"An abstract accessor cannot have an implementation.\"),\n A_default_export_can_only_be_used_in_an_ECMAScript_style_module: diag(1319, 1 /* Error */, \"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\", \"A default export can only be used in an ECMAScript-style module.\"),\n Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1320, 1 /* Error */, \"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\", \"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),\n Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1321, 1 /* Error */, \"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\", \"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),\n Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1322, 1 /* Error */, \"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\", \"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),\n Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext: diag(1323, 1 /* Error */, \"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323\", \"Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'.\"),\n Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve: diag(1324, 1 /* Error */, \"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_1324\", \"Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n Argument_of_dynamic_import_cannot_be_spread_element: diag(1325, 1 /* Error */, \"Argument_of_dynamic_import_cannot_be_spread_element_1325\", \"Argument of dynamic import cannot be spread element.\"),\n This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments: diag(1326, 1 /* Error */, \"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326\", \"This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.\"),\n String_literal_with_double_quotes_expected: diag(1327, 1 /* Error */, \"String_literal_with_double_quotes_expected_1327\", \"String literal with double quotes expected.\"),\n Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal: diag(1328, 1 /* Error */, \"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\", \"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),\n _0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0: diag(1329, 1 /* Error */, \"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\", \"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),\n A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly: diag(1330, 1 /* Error */, \"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\", \"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),\n A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly: diag(1331, 1 /* Error */, \"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\", \"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),\n A_variable_whose_type_is_a_unique_symbol_type_must_be_const: diag(1332, 1 /* Error */, \"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\", \"A variable whose type is a 'unique symbol' type must be 'const'.\"),\n unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name: diag(1333, 1 /* Error */, \"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\", \"'unique symbol' types may not be used on a variable declaration with a binding name.\"),\n unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement: diag(1334, 1 /* Error */, \"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\", \"'unique symbol' types are only allowed on variables in a variable statement.\"),\n unique_symbol_types_are_not_allowed_here: diag(1335, 1 /* Error */, \"unique_symbol_types_are_not_allowed_here_1335\", \"'unique symbol' types are not allowed here.\"),\n An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead: diag(1337, 1 /* Error */, \"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337\", \"An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.\"),\n infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type: diag(1338, 1 /* Error */, \"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\", \"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),\n Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here: diag(1339, 1 /* Error */, \"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\", \"Module '{0}' does not refer to a value, but is used as a value here.\"),\n Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0: diag(1340, 1 /* Error */, \"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\", \"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),\n Class_constructor_may_not_be_an_accessor: diag(1341, 1 /* Error */, \"Class_constructor_may_not_be_an_accessor_1341\", \"Class constructor may not be an accessor.\"),\n The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext: diag(1343, 1 /* Error */, \"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343\", \"The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'.\"),\n A_label_is_not_allowed_here: diag(1344, 1 /* Error */, \"A_label_is_not_allowed_here_1344\", \"'A label is not allowed here.\"),\n An_expression_of_type_void_cannot_be_tested_for_truthiness: diag(1345, 1 /* Error */, \"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\", \"An expression of type 'void' cannot be tested for truthiness.\"),\n This_parameter_is_not_allowed_with_use_strict_directive: diag(1346, 1 /* Error */, \"This_parameter_is_not_allowed_with_use_strict_directive_1346\", \"This parameter is not allowed with 'use strict' directive.\"),\n use_strict_directive_cannot_be_used_with_non_simple_parameter_list: diag(1347, 1 /* Error */, \"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\", \"'use strict' directive cannot be used with non-simple parameter list.\"),\n Non_simple_parameter_declared_here: diag(1348, 1 /* Error */, \"Non_simple_parameter_declared_here_1348\", \"Non-simple parameter declared here.\"),\n use_strict_directive_used_here: diag(1349, 1 /* Error */, \"use_strict_directive_used_here_1349\", \"'use strict' directive used here.\"),\n Print_the_final_configuration_instead_of_building: diag(1350, 3 /* Message */, \"Print_the_final_configuration_instead_of_building_1350\", \"Print the final configuration instead of building.\"),\n An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal: diag(1351, 1 /* Error */, \"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\", \"An identifier or keyword cannot immediately follow a numeric literal.\"),\n A_bigint_literal_cannot_use_exponential_notation: diag(1352, 1 /* Error */, \"A_bigint_literal_cannot_use_exponential_notation_1352\", \"A bigint literal cannot use exponential notation.\"),\n A_bigint_literal_must_be_an_integer: diag(1353, 1 /* Error */, \"A_bigint_literal_must_be_an_integer_1353\", \"A bigint literal must be an integer.\"),\n readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: diag(1354, 1 /* Error */, \"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\", \"'readonly' type modifier is only permitted on array and tuple literal types.\"),\n A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: diag(1355, 1 /* Error */, \"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\", \"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),\n Did_you_mean_to_mark_this_function_as_async: diag(1356, 1 /* Error */, \"Did_you_mean_to_mark_this_function_as_async_1356\", \"Did you mean to mark this function as 'async'?\"),\n An_enum_member_name_must_be_followed_by_a_or: diag(1357, 1 /* Error */, \"An_enum_member_name_must_be_followed_by_a_or_1357\", \"An enum member name must be followed by a ',', '=', or '}'.\"),\n Tagged_template_expressions_are_not_permitted_in_an_optional_chain: diag(1358, 1 /* Error */, \"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\", \"Tagged template expressions are not permitted in an optional chain.\"),\n Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here: diag(1359, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\", \"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),\n Type_0_does_not_satisfy_the_expected_type_1: diag(1360, 1 /* Error */, \"Type_0_does_not_satisfy_the_expected_type_1_1360\", \"Type '{0}' does not satisfy the expected type '{1}'.\"),\n _0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type: diag(1361, 1 /* Error */, \"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361\", \"'{0}' cannot be used as a value because it was imported using 'import type'.\"),\n _0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type: diag(1362, 1 /* Error */, \"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362\", \"'{0}' cannot be used as a value because it was exported using 'export type'.\"),\n A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both: diag(1363, 1 /* Error */, \"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363\", \"A type-only import can specify a default import or named bindings, but not both.\"),\n Convert_to_type_only_export: diag(1364, 3 /* Message */, \"Convert_to_type_only_export_1364\", \"Convert to type-only export\"),\n Convert_all_re_exported_types_to_type_only_exports: diag(1365, 3 /* Message */, \"Convert_all_re_exported_types_to_type_only_exports_1365\", \"Convert all re-exported types to type-only exports\"),\n Split_into_two_separate_import_declarations: diag(1366, 3 /* Message */, \"Split_into_two_separate_import_declarations_1366\", \"Split into two separate import declarations\"),\n Split_all_invalid_type_only_imports: diag(1367, 3 /* Message */, \"Split_all_invalid_type_only_imports_1367\", \"Split all invalid type-only imports\"),\n Class_constructor_may_not_be_a_generator: diag(1368, 1 /* Error */, \"Class_constructor_may_not_be_a_generator_1368\", \"Class constructor may not be a generator.\"),\n Did_you_mean_0: diag(1369, 3 /* Message */, \"Did_you_mean_0_1369\", \"Did you mean '{0}'?\"),\n await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1375, 1 /* Error */, \"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375\", \"'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n _0_was_imported_here: diag(1376, 3 /* Message */, \"_0_was_imported_here_1376\", \"'{0}' was imported here.\"),\n _0_was_exported_here: diag(1377, 3 /* Message */, \"_0_was_exported_here_1377\", \"'{0}' was exported here.\"),\n Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(1378, 1 /* Error */, \"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378\", \"Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type: diag(1379, 1 /* Error */, \"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379\", \"An import alias cannot reference a declaration that was exported using 'export type'.\"),\n An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type: diag(1380, 1 /* Error */, \"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380\", \"An import alias cannot reference a declaration that was imported using 'import type'.\"),\n Unexpected_token_Did_you_mean_or_rbrace: diag(1381, 1 /* Error */, \"Unexpected_token_Did_you_mean_or_rbrace_1381\", \"Unexpected token. Did you mean `{'}'}` or `}`?\"),\n Unexpected_token_Did_you_mean_or_gt: diag(1382, 1 /* Error */, \"Unexpected_token_Did_you_mean_or_gt_1382\", \"Unexpected token. Did you mean `{'>'}` or `>`?\"),\n Function_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1385, 1 /* Error */, \"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385\", \"Function type notation must be parenthesized when used in a union type.\"),\n Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1386, 1 /* Error */, \"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386\", \"Constructor type notation must be parenthesized when used in a union type.\"),\n Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1387, 1 /* Error */, \"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387\", \"Function type notation must be parenthesized when used in an intersection type.\"),\n Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1388, 1 /* Error */, \"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388\", \"Constructor type notation must be parenthesized when used in an intersection type.\"),\n _0_is_not_allowed_as_a_variable_declaration_name: diag(1389, 1 /* Error */, \"_0_is_not_allowed_as_a_variable_declaration_name_1389\", \"'{0}' is not allowed as a variable declaration name.\"),\n _0_is_not_allowed_as_a_parameter_name: diag(1390, 1 /* Error */, \"_0_is_not_allowed_as_a_parameter_name_1390\", \"'{0}' is not allowed as a parameter name.\"),\n An_import_alias_cannot_use_import_type: diag(1392, 1 /* Error */, \"An_import_alias_cannot_use_import_type_1392\", \"An import alias cannot use 'import type'\"),\n Imported_via_0_from_file_1: diag(1393, 3 /* Message */, \"Imported_via_0_from_file_1_1393\", \"Imported via {0} from file '{1}'\"),\n Imported_via_0_from_file_1_with_packageId_2: diag(1394, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_1394\", \"Imported via {0} from file '{1}' with packageId '{2}'\"),\n Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions: diag(1395, 3 /* Message */, \"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395\", \"Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions\"),\n Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions: diag(1396, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396\", \"Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions\"),\n Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions: diag(1397, 3 /* Message */, \"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397\", \"Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions\"),\n Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions: diag(1398, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398\", \"Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions\"),\n File_is_included_via_import_here: diag(1399, 3 /* Message */, \"File_is_included_via_import_here_1399\", \"File is included via import here.\"),\n Referenced_via_0_from_file_1: diag(1400, 3 /* Message */, \"Referenced_via_0_from_file_1_1400\", \"Referenced via '{0}' from file '{1}'\"),\n File_is_included_via_reference_here: diag(1401, 3 /* Message */, \"File_is_included_via_reference_here_1401\", \"File is included via reference here.\"),\n Type_library_referenced_via_0_from_file_1: diag(1402, 3 /* Message */, \"Type_library_referenced_via_0_from_file_1_1402\", \"Type library referenced via '{0}' from file '{1}'\"),\n Type_library_referenced_via_0_from_file_1_with_packageId_2: diag(1403, 3 /* Message */, \"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403\", \"Type library referenced via '{0}' from file '{1}' with packageId '{2}'\"),\n File_is_included_via_type_library_reference_here: diag(1404, 3 /* Message */, \"File_is_included_via_type_library_reference_here_1404\", \"File is included via type library reference here.\"),\n Library_referenced_via_0_from_file_1: diag(1405, 3 /* Message */, \"Library_referenced_via_0_from_file_1_1405\", \"Library referenced via '{0}' from file '{1}'\"),\n File_is_included_via_library_reference_here: diag(1406, 3 /* Message */, \"File_is_included_via_library_reference_here_1406\", \"File is included via library reference here.\"),\n Matched_by_include_pattern_0_in_1: diag(1407, 3 /* Message */, \"Matched_by_include_pattern_0_in_1_1407\", \"Matched by include pattern '{0}' in '{1}'\"),\n File_is_matched_by_include_pattern_specified_here: diag(1408, 3 /* Message */, \"File_is_matched_by_include_pattern_specified_here_1408\", \"File is matched by include pattern specified here.\"),\n Part_of_files_list_in_tsconfig_json: diag(1409, 3 /* Message */, \"Part_of_files_list_in_tsconfig_json_1409\", \"Part of 'files' list in tsconfig.json\"),\n File_is_matched_by_files_list_specified_here: diag(1410, 3 /* Message */, \"File_is_matched_by_files_list_specified_here_1410\", \"File is matched by 'files' list specified here.\"),\n Output_from_referenced_project_0_included_because_1_specified: diag(1411, 3 /* Message */, \"Output_from_referenced_project_0_included_because_1_specified_1411\", \"Output from referenced project '{0}' included because '{1}' specified\"),\n Output_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1412, 3 /* Message */, \"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412\", \"Output from referenced project '{0}' included because '--module' is specified as 'none'\"),\n File_is_output_from_referenced_project_specified_here: diag(1413, 3 /* Message */, \"File_is_output_from_referenced_project_specified_here_1413\", \"File is output from referenced project specified here.\"),\n Source_from_referenced_project_0_included_because_1_specified: diag(1414, 3 /* Message */, \"Source_from_referenced_project_0_included_because_1_specified_1414\", \"Source from referenced project '{0}' included because '{1}' specified\"),\n Source_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1415, 3 /* Message */, \"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415\", \"Source from referenced project '{0}' included because '--module' is specified as 'none'\"),\n File_is_source_from_referenced_project_specified_here: diag(1416, 3 /* Message */, \"File_is_source_from_referenced_project_specified_here_1416\", \"File is source from referenced project specified here.\"),\n Entry_point_of_type_library_0_specified_in_compilerOptions: diag(1417, 3 /* Message */, \"Entry_point_of_type_library_0_specified_in_compilerOptions_1417\", \"Entry point of type library '{0}' specified in compilerOptions\"),\n Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1: diag(1418, 3 /* Message */, \"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418\", \"Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'\"),\n File_is_entry_point_of_type_library_specified_here: diag(1419, 3 /* Message */, \"File_is_entry_point_of_type_library_specified_here_1419\", \"File is entry point of type library specified here.\"),\n Entry_point_for_implicit_type_library_0: diag(1420, 3 /* Message */, \"Entry_point_for_implicit_type_library_0_1420\", \"Entry point for implicit type library '{0}'\"),\n Entry_point_for_implicit_type_library_0_with_packageId_1: diag(1421, 3 /* Message */, \"Entry_point_for_implicit_type_library_0_with_packageId_1_1421\", \"Entry point for implicit type library '{0}' with packageId '{1}'\"),\n Library_0_specified_in_compilerOptions: diag(1422, 3 /* Message */, \"Library_0_specified_in_compilerOptions_1422\", \"Library '{0}' specified in compilerOptions\"),\n File_is_library_specified_here: diag(1423, 3 /* Message */, \"File_is_library_specified_here_1423\", \"File is library specified here.\"),\n Default_library: diag(1424, 3 /* Message */, \"Default_library_1424\", \"Default library\"),\n Default_library_for_target_0: diag(1425, 3 /* Message */, \"Default_library_for_target_0_1425\", \"Default library for target '{0}'\"),\n File_is_default_library_for_target_specified_here: diag(1426, 3 /* Message */, \"File_is_default_library_for_target_specified_here_1426\", \"File is default library for target specified here.\"),\n Root_file_specified_for_compilation: diag(1427, 3 /* Message */, \"Root_file_specified_for_compilation_1427\", \"Root file specified for compilation\"),\n File_is_output_of_project_reference_source_0: diag(1428, 3 /* Message */, \"File_is_output_of_project_reference_source_0_1428\", \"File is output of project reference source '{0}'\"),\n File_redirects_to_file_0: diag(1429, 3 /* Message */, \"File_redirects_to_file_0_1429\", \"File redirects to file '{0}'\"),\n The_file_is_in_the_program_because_Colon: diag(1430, 3 /* Message */, \"The_file_is_in_the_program_because_Colon_1430\", \"The file is in the program because:\"),\n for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1431, 1 /* Error */, \"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431\", \"'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(1432, 1 /* Error */, \"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432\", \"Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters: diag(1433, 1 /* Error */, \"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433\", \"Neither decorators nor modifiers may be applied to 'this' parameters.\"),\n Unexpected_keyword_or_identifier: diag(1434, 1 /* Error */, \"Unexpected_keyword_or_identifier_1434\", \"Unexpected keyword or identifier.\"),\n Unknown_keyword_or_identifier_Did_you_mean_0: diag(1435, 1 /* Error */, \"Unknown_keyword_or_identifier_Did_you_mean_0_1435\", \"Unknown keyword or identifier. Did you mean '{0}'?\"),\n Decorators_must_precede_the_name_and_all_keywords_of_property_declarations: diag(1436, 1 /* Error */, \"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436\", \"Decorators must precede the name and all keywords of property declarations.\"),\n Namespace_must_be_given_a_name: diag(1437, 1 /* Error */, \"Namespace_must_be_given_a_name_1437\", \"Namespace must be given a name.\"),\n Interface_must_be_given_a_name: diag(1438, 1 /* Error */, \"Interface_must_be_given_a_name_1438\", \"Interface must be given a name.\"),\n Type_alias_must_be_given_a_name: diag(1439, 1 /* Error */, \"Type_alias_must_be_given_a_name_1439\", \"Type alias must be given a name.\"),\n Variable_declaration_not_allowed_at_this_location: diag(1440, 1 /* Error */, \"Variable_declaration_not_allowed_at_this_location_1440\", \"Variable declaration not allowed at this location.\"),\n Cannot_start_a_function_call_in_a_type_annotation: diag(1441, 1 /* Error */, \"Cannot_start_a_function_call_in_a_type_annotation_1441\", \"Cannot start a function call in a type annotation.\"),\n Expected_for_property_initializer: diag(1442, 1 /* Error */, \"Expected_for_property_initializer_1442\", \"Expected '=' for property initializer.\"),\n Module_declaration_names_may_only_use_or_quoted_strings: diag(1443, 1 /* Error */, \"Module_declaration_names_may_only_use_or_quoted_strings_1443\", `Module declaration names may only use ' or \" quoted strings.`),\n _0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled: diag(1448, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448\", \"'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.\"),\n Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed: diag(1449, 3 /* Message */, \"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449\", \"Preserve unused imported values in the JavaScript output that would otherwise be removed.\"),\n Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments: diag(1450, 3 /* Message */, \"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450\", \"Dynamic imports can only accept a module specifier and an optional set of attributes as arguments\"),\n Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression: diag(1451, 1 /* Error */, \"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451\", \"Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression\"),\n resolution_mode_should_be_either_require_or_import: diag(1453, 1 /* Error */, \"resolution_mode_should_be_either_require_or_import_1453\", \"`resolution-mode` should be either `require` or `import`.\"),\n resolution_mode_can_only_be_set_for_type_only_imports: diag(1454, 1 /* Error */, \"resolution_mode_can_only_be_set_for_type_only_imports_1454\", \"`resolution-mode` can only be set for type-only imports.\"),\n resolution_mode_is_the_only_valid_key_for_type_import_assertions: diag(1455, 1 /* Error */, \"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455\", \"`resolution-mode` is the only valid key for type import assertions.\"),\n Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: diag(1456, 1 /* Error */, \"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456\", \"Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.\"),\n Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk: diag(1457, 3 /* Message */, \"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457\", \"Matched by default include pattern '**/*'\"),\n File_is_ECMAScript_module_because_0_has_field_type_with_value_module: diag(1458, 3 /* Message */, \"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458\", `File is ECMAScript module because '{0}' has field \"type\" with value \"module\"`),\n File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module: diag(1459, 3 /* Message */, \"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459\", `File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"`),\n File_is_CommonJS_module_because_0_does_not_have_field_type: diag(1460, 3 /* Message */, \"File_is_CommonJS_module_because_0_does_not_have_field_type_1460\", `File is CommonJS module because '{0}' does not have field \"type\"`),\n File_is_CommonJS_module_because_package_json_was_not_found: diag(1461, 3 /* Message */, \"File_is_CommonJS_module_because_package_json_was_not_found_1461\", \"File is CommonJS module because 'package.json' was not found\"),\n resolution_mode_is_the_only_valid_key_for_type_import_attributes: diag(1463, 1 /* Error */, \"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463\", \"'resolution-mode' is the only valid key for type import attributes.\"),\n Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: diag(1464, 1 /* Error */, \"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464\", \"Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.\"),\n The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output: diag(1470, 1 /* Error */, \"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470\", \"The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.\"),\n Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead: diag(1471, 1 /* Error */, \"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471\", \"Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.\"),\n catch_or_finally_expected: diag(1472, 1 /* Error */, \"catch_or_finally_expected_1472\", \"'catch' or 'finally' expected.\"),\n An_import_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1473, 1 /* Error */, \"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473\", \"An import declaration can only be used at the top level of a module.\"),\n An_export_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1474, 1 /* Error */, \"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474\", \"An export declaration can only be used at the top level of a module.\"),\n Control_what_method_is_used_to_detect_module_format_JS_files: diag(1475, 3 /* Message */, \"Control_what_method_is_used_to_detect_module_format_JS_files_1475\", \"Control what method is used to detect module-format JS files.\"),\n auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules: diag(1476, 3 /* Message */, \"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476\", '\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),\n An_instantiation_expression_cannot_be_followed_by_a_property_access: diag(1477, 1 /* Error */, \"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477\", \"An instantiation expression cannot be followed by a property access.\"),\n Identifier_or_string_literal_expected: diag(1478, 1 /* Error */, \"Identifier_or_string_literal_expected_1478\", \"Identifier or string literal expected.\"),\n The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead: diag(1479, 1 /* Error */, \"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479\", `The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.`),\n To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module: diag(1480, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480\", 'To convert this file to an ECMAScript module, change its file extension to \\'{0}\\' or create a local package.json file with `{ \"type\": \"module\" }`.'),\n To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1: diag(1481, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481\", `To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \\`\"type\": \"module\"\\` to '{1}'.`),\n To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0: diag(1482, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482\", 'To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to \\'{0}\\'.'),\n To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module: diag(1483, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483\", 'To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.'),\n _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1484, 1 /* Error */, \"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484\", \"'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),\n _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1485, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485\", \"'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),\n Decorator_used_before_export_here: diag(1486, 1 /* Error */, \"Decorator_used_before_export_here_1486\", \"Decorator used before 'export' here.\"),\n Octal_escape_sequences_are_not_allowed_Use_the_syntax_0: diag(1487, 1 /* Error */, \"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487\", \"Octal escape sequences are not allowed. Use the syntax '{0}'.\"),\n Escape_sequence_0_is_not_allowed: diag(1488, 1 /* Error */, \"Escape_sequence_0_is_not_allowed_1488\", \"Escape sequence '{0}' is not allowed.\"),\n Decimals_with_leading_zeros_are_not_allowed: diag(1489, 1 /* Error */, \"Decimals_with_leading_zeros_are_not_allowed_1489\", \"Decimals with leading zeros are not allowed.\"),\n File_appears_to_be_binary: diag(1490, 1 /* Error */, \"File_appears_to_be_binary_1490\", \"File appears to be binary.\"),\n _0_modifier_cannot_appear_on_a_using_declaration: diag(1491, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_using_declaration_1491\", \"'{0}' modifier cannot appear on a 'using' declaration.\"),\n _0_declarations_may_not_have_binding_patterns: diag(1492, 1 /* Error */, \"_0_declarations_may_not_have_binding_patterns_1492\", \"'{0}' declarations may not have binding patterns.\"),\n The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration: diag(1493, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493\", \"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.\"),\n The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: diag(1494, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494\", \"The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.\"),\n _0_modifier_cannot_appear_on_an_await_using_declaration: diag(1495, 1 /* Error */, \"_0_modifier_cannot_appear_on_an_await_using_declaration_1495\", \"'{0}' modifier cannot appear on an 'await using' declaration.\"),\n Identifier_string_literal_or_number_literal_expected: diag(1496, 1 /* Error */, \"Identifier_string_literal_or_number_literal_expected_1496\", \"Identifier, string literal, or number literal expected.\"),\n Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator: diag(1497, 1 /* Error */, \"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497\", \"Expression must be enclosed in parentheses to be used as a decorator.\"),\n Invalid_syntax_in_decorator: diag(1498, 1 /* Error */, \"Invalid_syntax_in_decorator_1498\", \"Invalid syntax in decorator.\"),\n Unknown_regular_expression_flag: diag(1499, 1 /* Error */, \"Unknown_regular_expression_flag_1499\", \"Unknown regular expression flag.\"),\n Duplicate_regular_expression_flag: diag(1500, 1 /* Error */, \"Duplicate_regular_expression_flag_1500\", \"Duplicate regular expression flag.\"),\n This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1501, 1 /* Error */, \"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501\", \"This regular expression flag is only available when targeting '{0}' or later.\"),\n The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1502, 1 /* Error */, \"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502\", \"The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.\"),\n Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1503, 1 /* Error */, \"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503\", \"Named capturing groups are only available when targeting 'ES2018' or later.\"),\n Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1504, 1 /* Error */, \"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504\", \"Subpattern flags must be present when there is a minus sign.\"),\n Incomplete_quantifier_Digit_expected: diag(1505, 1 /* Error */, \"Incomplete_quantifier_Digit_expected_1505\", \"Incomplete quantifier. Digit expected.\"),\n Numbers_out_of_order_in_quantifier: diag(1506, 1 /* Error */, \"Numbers_out_of_order_in_quantifier_1506\", \"Numbers out of order in quantifier.\"),\n There_is_nothing_available_for_repetition: diag(1507, 1 /* Error */, \"There_is_nothing_available_for_repetition_1507\", \"There is nothing available for repetition.\"),\n Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1508, 1 /* Error */, \"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508\", \"Unexpected '{0}'. Did you mean to escape it with backslash?\"),\n This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1509, 1 /* Error */, \"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509\", \"This regular expression flag cannot be toggled within a subpattern.\"),\n k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1510, 1 /* Error */, \"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510\", \"'\\\\k' must be followed by a capturing group name enclosed in angle brackets.\"),\n q_is_only_available_inside_character_class: diag(1511, 1 /* Error */, \"q_is_only_available_inside_character_class_1511\", \"'\\\\q' is only available inside character class.\"),\n c_must_be_followed_by_an_ASCII_letter: diag(1512, 1 /* Error */, \"c_must_be_followed_by_an_ASCII_letter_1512\", \"'\\\\c' must be followed by an ASCII letter.\"),\n Undetermined_character_escape: diag(1513, 1 /* Error */, \"Undetermined_character_escape_1513\", \"Undetermined character escape.\"),\n Expected_a_capturing_group_name: diag(1514, 1 /* Error */, \"Expected_a_capturing_group_name_1514\", \"Expected a capturing group name.\"),\n Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1515, 1 /* Error */, \"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515\", \"Named capturing groups with the same name must be mutually exclusive to each other.\"),\n A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1516, 1 /* Error */, \"A_character_class_range_must_not_be_bounded_by_another_character_class_1516\", \"A character class range must not be bounded by another character class.\"),\n Range_out_of_order_in_character_class: diag(1517, 1 /* Error */, \"Range_out_of_order_in_character_class_1517\", \"Range out of order in character class.\"),\n Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1518, 1 /* Error */, \"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518\", \"Anything that would possibly match more than a single character is invalid inside a negated character class.\"),\n Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1519, 1 /* Error */, \"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519\", \"Operators must not be mixed within a character class. Wrap it in a nested class instead.\"),\n Expected_a_class_set_operand: diag(1520, 1 /* Error */, \"Expected_a_class_set_operand_1520\", \"Expected a class set operand.\"),\n q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1521, 1 /* Error */, \"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521\", \"'\\\\q' must be followed by string alternatives enclosed in braces.\"),\n A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1522, 1 /* Error */, \"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522\", \"A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?\"),\n Expected_a_Unicode_property_name: diag(1523, 1 /* Error */, \"Expected_a_Unicode_property_name_1523\", \"Expected a Unicode property name.\"),\n Unknown_Unicode_property_name: diag(1524, 1 /* Error */, \"Unknown_Unicode_property_name_1524\", \"Unknown Unicode property name.\"),\n Expected_a_Unicode_property_value: diag(1525, 1 /* Error */, \"Expected_a_Unicode_property_value_1525\", \"Expected a Unicode property value.\"),\n Unknown_Unicode_property_value: diag(1526, 1 /* Error */, \"Unknown_Unicode_property_value_1526\", \"Unknown Unicode property value.\"),\n Expected_a_Unicode_property_name_or_value: diag(1527, 1 /* Error */, \"Expected_a_Unicode_property_name_or_value_1527\", \"Expected a Unicode property name or value.\"),\n Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, \"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528\", \"Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.\"),\n Unknown_Unicode_property_name_or_value: diag(1529, 1 /* Error */, \"Unknown_Unicode_property_name_or_value_1529\", \"Unknown Unicode property name or value.\"),\n Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1530, 1 /* Error */, \"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530\", \"Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),\n _0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1531, 1 /* Error */, \"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531\", \"'\\\\{0}' must be followed by a Unicode property value expression enclosed in braces.\"),\n There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1532, 1 /* Error */, \"There_is_no_capturing_group_named_0_in_this_regular_expression_1532\", \"There is no capturing group named '{0}' in this regular expression.\"),\n This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1533, 1 /* Error */, \"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533\", \"This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.\"),\n This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression: diag(1534, 1 /* Error */, \"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534\", \"This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.\"),\n This_character_cannot_be_escaped_in_a_regular_expression: diag(1535, 1 /* Error */, \"This_character_cannot_be_escaped_in_a_regular_expression_1535\", \"This character cannot be escaped in a regular expression.\"),\n Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead: diag(1536, 1 /* Error */, \"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536\", \"Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.\"),\n Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class: diag(1537, 1 /* Error */, \"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537\", \"Decimal escape sequences and backreferences are not allowed in a character class.\"),\n Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1538, 1 /* Error */, \"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538\", \"Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),\n A_bigint_literal_cannot_be_used_as_a_property_name: diag(1539, 1 /* Error */, \"A_bigint_literal_cannot_be_used_as_a_property_name_1539\", \"A 'bigint' literal cannot be used as a property name.\"),\n A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead: diag(\n 1540,\n 2 /* Suggestion */,\n \"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540\",\n \"A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n void 0,\n /*reportsDeprecated*/\n true\n ),\n Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1541, 1 /* Error */, \"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541\", \"Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),\n Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1542, 1 /* Error */, \"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542\", \"Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),\n Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0: diag(1543, 1 /* Error */, \"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543\", `Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.`),\n Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0: diag(1544, 1 /* Error */, \"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544\", \"Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.\"),\n using_declarations_are_not_allowed_in_ambient_contexts: diag(1545, 1 /* Error */, \"using_declarations_are_not_allowed_in_ambient_contexts_1545\", \"'using' declarations are not allowed in ambient contexts.\"),\n await_using_declarations_are_not_allowed_in_ambient_contexts: diag(1546, 1 /* Error */, \"await_using_declarations_are_not_allowed_in_ambient_contexts_1546\", \"'await using' declarations are not allowed in ambient contexts.\"),\n The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, \"The_types_of_0_are_incompatible_between_these_types_2200\", \"The types of '{0}' are incompatible between these types.\"),\n The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, \"The_types_returned_by_0_are_incompatible_between_these_types_2201\", \"The types returned by '{0}' are incompatible between these types.\"),\n Call_signature_return_types_0_and_1_are_incompatible: diag(\n 2202,\n 1 /* Error */,\n \"Call_signature_return_types_0_and_1_are_incompatible_2202\",\n \"Call signature return types '{0}' and '{1}' are incompatible.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n true\n ),\n Construct_signature_return_types_0_and_1_are_incompatible: diag(\n 2203,\n 1 /* Error */,\n \"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\n \"Construct signature return types '{0}' and '{1}' are incompatible.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n true\n ),\n Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(\n 2204,\n 1 /* Error */,\n \"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\n \"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n true\n ),\n Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(\n 2205,\n 1 /* Error */,\n \"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\n \"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n true\n ),\n The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement: diag(2206, 1 /* Error */, \"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206\", \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),\n The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement: diag(2207, 1 /* Error */, \"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207\", \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),\n This_type_parameter_might_need_an_extends_0_constraint: diag(2208, 1 /* Error */, \"This_type_parameter_might_need_an_extends_0_constraint_2208\", \"This type parameter might need an `extends {0}` constraint.\"),\n The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2209, 1 /* Error */, \"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209\", \"The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),\n The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2210, 1 /* Error */, \"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210\", \"The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),\n Add_extends_constraint: diag(2211, 3 /* Message */, \"Add_extends_constraint_2211\", \"Add `extends` constraint.\"),\n Add_extends_constraint_to_all_type_parameters: diag(2212, 3 /* Message */, \"Add_extends_constraint_to_all_type_parameters_2212\", \"Add `extends` constraint to all type parameters\"),\n Duplicate_identifier_0: diag(2300, 1 /* Error */, \"Duplicate_identifier_0_2300\", \"Duplicate identifier '{0}'.\"),\n Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2301, 1 /* Error */, \"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\", \"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),\n Static_members_cannot_reference_class_type_parameters: diag(2302, 1 /* Error */, \"Static_members_cannot_reference_class_type_parameters_2302\", \"Static members cannot reference class type parameters.\"),\n Circular_definition_of_import_alias_0: diag(2303, 1 /* Error */, \"Circular_definition_of_import_alias_0_2303\", \"Circular definition of import alias '{0}'.\"),\n Cannot_find_name_0: diag(2304, 1 /* Error */, \"Cannot_find_name_0_2304\", \"Cannot find name '{0}'.\"),\n Module_0_has_no_exported_member_1: diag(2305, 1 /* Error */, \"Module_0_has_no_exported_member_1_2305\", \"Module '{0}' has no exported member '{1}'.\"),\n File_0_is_not_a_module: diag(2306, 1 /* Error */, \"File_0_is_not_a_module_2306\", \"File '{0}' is not a module.\"),\n Cannot_find_module_0_or_its_corresponding_type_declarations: diag(2307, 1 /* Error */, \"Cannot_find_module_0_or_its_corresponding_type_declarations_2307\", \"Cannot find module '{0}' or its corresponding type declarations.\"),\n Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: diag(2308, 1 /* Error */, \"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\", \"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),\n An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: diag(2309, 1 /* Error */, \"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\", \"An export assignment cannot be used in a module with other exported elements.\"),\n Type_0_recursively_references_itself_as_a_base_type: diag(2310, 1 /* Error */, \"Type_0_recursively_references_itself_as_a_base_type_2310\", \"Type '{0}' recursively references itself as a base type.\"),\n Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function: diag(2311, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311\", \"Cannot find name '{0}'. Did you mean to write this in an async function?\"),\n An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2312, 1 /* Error */, \"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\", \"An interface can only extend an object type or intersection of object types with statically known members.\"),\n Type_parameter_0_has_a_circular_constraint: diag(2313, 1 /* Error */, \"Type_parameter_0_has_a_circular_constraint_2313\", \"Type parameter '{0}' has a circular constraint.\"),\n Generic_type_0_requires_1_type_argument_s: diag(2314, 1 /* Error */, \"Generic_type_0_requires_1_type_argument_s_2314\", \"Generic type '{0}' requires {1} type argument(s).\"),\n Type_0_is_not_generic: diag(2315, 1 /* Error */, \"Type_0_is_not_generic_2315\", \"Type '{0}' is not generic.\"),\n Global_type_0_must_be_a_class_or_interface_type: diag(2316, 1 /* Error */, \"Global_type_0_must_be_a_class_or_interface_type_2316\", \"Global type '{0}' must be a class or interface type.\"),\n Global_type_0_must_have_1_type_parameter_s: diag(2317, 1 /* Error */, \"Global_type_0_must_have_1_type_parameter_s_2317\", \"Global type '{0}' must have {1} type parameter(s).\"),\n Cannot_find_global_type_0: diag(2318, 1 /* Error */, \"Cannot_find_global_type_0_2318\", \"Cannot find global type '{0}'.\"),\n Named_property_0_of_types_1_and_2_are_not_identical: diag(2319, 1 /* Error */, \"Named_property_0_of_types_1_and_2_are_not_identical_2319\", \"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),\n Interface_0_cannot_simultaneously_extend_types_1_and_2: diag(2320, 1 /* Error */, \"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\", \"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),\n Excessive_stack_depth_comparing_types_0_and_1: diag(2321, 1 /* Error */, \"Excessive_stack_depth_comparing_types_0_and_1_2321\", \"Excessive stack depth comparing types '{0}' and '{1}'.\"),\n Type_0_is_not_assignable_to_type_1: diag(2322, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_2322\", \"Type '{0}' is not assignable to type '{1}'.\"),\n Cannot_redeclare_exported_variable_0: diag(2323, 1 /* Error */, \"Cannot_redeclare_exported_variable_0_2323\", \"Cannot redeclare exported variable '{0}'.\"),\n Property_0_is_missing_in_type_1: diag(2324, 1 /* Error */, \"Property_0_is_missing_in_type_1_2324\", \"Property '{0}' is missing in type '{1}'.\"),\n Property_0_is_private_in_type_1_but_not_in_type_2: diag(2325, 1 /* Error */, \"Property_0_is_private_in_type_1_but_not_in_type_2_2325\", \"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),\n Types_of_property_0_are_incompatible: diag(2326, 1 /* Error */, \"Types_of_property_0_are_incompatible_2326\", \"Types of property '{0}' are incompatible.\"),\n Property_0_is_optional_in_type_1_but_required_in_type_2: diag(2327, 1 /* Error */, \"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\", \"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),\n Types_of_parameters_0_and_1_are_incompatible: diag(2328, 1 /* Error */, \"Types_of_parameters_0_and_1_are_incompatible_2328\", \"Types of parameters '{0}' and '{1}' are incompatible.\"),\n Index_signature_for_type_0_is_missing_in_type_1: diag(2329, 1 /* Error */, \"Index_signature_for_type_0_is_missing_in_type_1_2329\", \"Index signature for type '{0}' is missing in type '{1}'.\"),\n _0_and_1_index_signatures_are_incompatible: diag(2330, 1 /* Error */, \"_0_and_1_index_signatures_are_incompatible_2330\", \"'{0}' and '{1}' index signatures are incompatible.\"),\n this_cannot_be_referenced_in_a_module_or_namespace_body: diag(2331, 1 /* Error */, \"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\", \"'this' cannot be referenced in a module or namespace body.\"),\n this_cannot_be_referenced_in_current_location: diag(2332, 1 /* Error */, \"this_cannot_be_referenced_in_current_location_2332\", \"'this' cannot be referenced in current location.\"),\n this_cannot_be_referenced_in_a_static_property_initializer: diag(2334, 1 /* Error */, \"this_cannot_be_referenced_in_a_static_property_initializer_2334\", \"'this' cannot be referenced in a static property initializer.\"),\n super_can_only_be_referenced_in_a_derived_class: diag(2335, 1 /* Error */, \"super_can_only_be_referenced_in_a_derived_class_2335\", \"'super' can only be referenced in a derived class.\"),\n super_cannot_be_referenced_in_constructor_arguments: diag(2336, 1 /* Error */, \"super_cannot_be_referenced_in_constructor_arguments_2336\", \"'super' cannot be referenced in constructor arguments.\"),\n Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: diag(2337, 1 /* Error */, \"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\", \"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),\n super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: diag(2338, 1 /* Error */, \"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\", \"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),\n Property_0_does_not_exist_on_type_1: diag(2339, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_2339\", \"Property '{0}' does not exist on type '{1}'.\"),\n Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: diag(2340, 1 /* Error */, \"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\", \"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),\n Property_0_is_private_and_only_accessible_within_class_1: diag(2341, 1 /* Error */, \"Property_0_is_private_and_only_accessible_within_class_1_2341\", \"Property '{0}' is private and only accessible within class '{1}'.\"),\n This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0: diag(2343, 1 /* Error */, \"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\", \"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),\n Type_0_does_not_satisfy_the_constraint_1: diag(2344, 1 /* Error */, \"Type_0_does_not_satisfy_the_constraint_1_2344\", \"Type '{0}' does not satisfy the constraint '{1}'.\"),\n Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: diag(2345, 1 /* Error */, \"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\", \"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),\n Call_target_does_not_contain_any_signatures: diag(2346, 1 /* Error */, \"Call_target_does_not_contain_any_signatures_2346\", \"Call target does not contain any signatures.\"),\n Untyped_function_calls_may_not_accept_type_arguments: diag(2347, 1 /* Error */, \"Untyped_function_calls_may_not_accept_type_arguments_2347\", \"Untyped function calls may not accept type arguments.\"),\n Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: diag(2348, 1 /* Error */, \"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\", \"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),\n This_expression_is_not_callable: diag(2349, 1 /* Error */, \"This_expression_is_not_callable_2349\", \"This expression is not callable.\"),\n Only_a_void_function_can_be_called_with_the_new_keyword: diag(2350, 1 /* Error */, \"Only_a_void_function_can_be_called_with_the_new_keyword_2350\", \"Only a void function can be called with the 'new' keyword.\"),\n This_expression_is_not_constructable: diag(2351, 1 /* Error */, \"This_expression_is_not_constructable_2351\", \"This expression is not constructable.\"),\n Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first: diag(2352, 1 /* Error */, \"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\", \"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),\n Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: diag(2353, 1 /* Error */, \"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\", \"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),\n This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found: diag(2354, 1 /* Error */, \"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\", \"This syntax requires an imported helper but module '{0}' cannot be found.\"),\n A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value: diag(2355, 1 /* Error */, \"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355\", \"A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\"),\n An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2356, 1 /* Error */, \"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\", \"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),\n The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: diag(2357, 1 /* Error */, \"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\", \"The operand of an increment or decrement operator must be a variable or a property access.\"),\n The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: diag(2358, 1 /* Error */, \"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\", \"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),\n The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method: diag(2359, 1 /* Error */, \"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359\", \"The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.\"),\n The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2362, 1 /* Error */, \"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\", \"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),\n The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2363, 1 /* Error */, \"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\", \"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),\n The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: diag(2364, 1 /* Error */, \"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\", \"The left-hand side of an assignment expression must be a variable or a property access.\"),\n Operator_0_cannot_be_applied_to_types_1_and_2: diag(2365, 1 /* Error */, \"Operator_0_cannot_be_applied_to_types_1_and_2_2365\", \"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),\n Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: diag(2366, 1 /* Error */, \"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\", \"Function lacks ending return statement and return type does not include 'undefined'.\"),\n This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap: diag(2367, 1 /* Error */, \"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367\", \"This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.\"),\n Type_parameter_name_cannot_be_0: diag(2368, 1 /* Error */, \"Type_parameter_name_cannot_be_0_2368\", \"Type parameter name cannot be '{0}'.\"),\n A_parameter_property_is_only_allowed_in_a_constructor_implementation: diag(2369, 1 /* Error */, \"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\", \"A parameter property is only allowed in a constructor implementation.\"),\n A_rest_parameter_must_be_of_an_array_type: diag(2370, 1 /* Error */, \"A_rest_parameter_must_be_of_an_array_type_2370\", \"A rest parameter must be of an array type.\"),\n A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: diag(2371, 1 /* Error */, \"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\", \"A parameter initializer is only allowed in a function or constructor implementation.\"),\n Parameter_0_cannot_reference_itself: diag(2372, 1 /* Error */, \"Parameter_0_cannot_reference_itself_2372\", \"Parameter '{0}' cannot reference itself.\"),\n Parameter_0_cannot_reference_identifier_1_declared_after_it: diag(2373, 1 /* Error */, \"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373\", \"Parameter '{0}' cannot reference identifier '{1}' declared after it.\"),\n Duplicate_index_signature_for_type_0: diag(2374, 1 /* Error */, \"Duplicate_index_signature_for_type_0_2374\", \"Duplicate index signature for type '{0}'.\"),\n Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2375, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375\", \"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),\n A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2376, 1 /* Error */, \"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376\", \"A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.\"),\n Constructors_for_derived_classes_must_contain_a_super_call: diag(2377, 1 /* Error */, \"Constructors_for_derived_classes_must_contain_a_super_call_2377\", \"Constructors for derived classes must contain a 'super' call.\"),\n A_get_accessor_must_return_a_value: diag(2378, 1 /* Error */, \"A_get_accessor_must_return_a_value_2378\", \"A 'get' accessor must return a value.\"),\n Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2379, 1 /* Error */, \"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379\", \"Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),\n Overload_signatures_must_all_be_exported_or_non_exported: diag(2383, 1 /* Error */, \"Overload_signatures_must_all_be_exported_or_non_exported_2383\", \"Overload signatures must all be exported or non-exported.\"),\n Overload_signatures_must_all_be_ambient_or_non_ambient: diag(2384, 1 /* Error */, \"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\", \"Overload signatures must all be ambient or non-ambient.\"),\n Overload_signatures_must_all_be_public_private_or_protected: diag(2385, 1 /* Error */, \"Overload_signatures_must_all_be_public_private_or_protected_2385\", \"Overload signatures must all be public, private or protected.\"),\n Overload_signatures_must_all_be_optional_or_required: diag(2386, 1 /* Error */, \"Overload_signatures_must_all_be_optional_or_required_2386\", \"Overload signatures must all be optional or required.\"),\n Function_overload_must_be_static: diag(2387, 1 /* Error */, \"Function_overload_must_be_static_2387\", \"Function overload must be static.\"),\n Function_overload_must_not_be_static: diag(2388, 1 /* Error */, \"Function_overload_must_not_be_static_2388\", \"Function overload must not be static.\"),\n Function_implementation_name_must_be_0: diag(2389, 1 /* Error */, \"Function_implementation_name_must_be_0_2389\", \"Function implementation name must be '{0}'.\"),\n Constructor_implementation_is_missing: diag(2390, 1 /* Error */, \"Constructor_implementation_is_missing_2390\", \"Constructor implementation is missing.\"),\n Function_implementation_is_missing_or_not_immediately_following_the_declaration: diag(2391, 1 /* Error */, \"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\", \"Function implementation is missing or not immediately following the declaration.\"),\n Multiple_constructor_implementations_are_not_allowed: diag(2392, 1 /* Error */, \"Multiple_constructor_implementations_are_not_allowed_2392\", \"Multiple constructor implementations are not allowed.\"),\n Duplicate_function_implementation: diag(2393, 1 /* Error */, \"Duplicate_function_implementation_2393\", \"Duplicate function implementation.\"),\n This_overload_signature_is_not_compatible_with_its_implementation_signature: diag(2394, 1 /* Error */, \"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\", \"This overload signature is not compatible with its implementation signature.\"),\n Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: diag(2395, 1 /* Error */, \"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\", \"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),\n Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: diag(2396, 1 /* Error */, \"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\", \"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),\n Declaration_name_conflicts_with_built_in_global_identifier_0: diag(2397, 1 /* Error */, \"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\", \"Declaration name conflicts with built-in global identifier '{0}'.\"),\n constructor_cannot_be_used_as_a_parameter_property_name: diag(2398, 1 /* Error */, \"constructor_cannot_be_used_as_a_parameter_property_name_2398\", \"'constructor' cannot be used as a parameter property name.\"),\n Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: diag(2399, 1 /* Error */, \"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\", \"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),\n Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: diag(2400, 1 /* Error */, \"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\", \"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),\n A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2401, 1 /* Error */, \"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401\", \"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"),\n Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: diag(2402, 1 /* Error */, \"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\", \"Expression resolves to '_super' that compiler uses to capture base class reference.\"),\n Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: diag(2403, 1 /* Error */, \"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\", \"Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),\n The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: diag(2404, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\", \"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),\n The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: diag(2405, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\", \"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),\n The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: diag(2406, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\", \"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),\n The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0: diag(2407, 1 /* Error */, \"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\", \"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),\n Setters_cannot_return_a_value: diag(2408, 1 /* Error */, \"Setters_cannot_return_a_value_2408\", \"Setters cannot return a value.\"),\n Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: diag(2409, 1 /* Error */, \"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\", \"Return type of constructor signature must be assignable to the instance type of the class.\"),\n The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: diag(2410, 1 /* Error */, \"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\", \"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),\n Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target: diag(2412, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412\", \"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.\"),\n Property_0_of_type_1_is_not_assignable_to_2_index_type_3: diag(2411, 1 /* Error */, \"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411\", \"Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.\"),\n _0_index_type_1_is_not_assignable_to_2_index_type_3: diag(2413, 1 /* Error */, \"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413\", \"'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.\"),\n Class_name_cannot_be_0: diag(2414, 1 /* Error */, \"Class_name_cannot_be_0_2414\", \"Class name cannot be '{0}'.\"),\n Class_0_incorrectly_extends_base_class_1: diag(2415, 1 /* Error */, \"Class_0_incorrectly_extends_base_class_1_2415\", \"Class '{0}' incorrectly extends base class '{1}'.\"),\n Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2: diag(2416, 1 /* Error */, \"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\", \"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),\n Class_static_side_0_incorrectly_extends_base_class_static_side_1: diag(2417, 1 /* Error */, \"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\", \"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),\n Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1: diag(2418, 1 /* Error */, \"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\", \"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),\n Types_of_construct_signatures_are_incompatible: diag(2419, 1 /* Error */, \"Types_of_construct_signatures_are_incompatible_2419\", \"Types of construct signatures are incompatible.\"),\n Class_0_incorrectly_implements_interface_1: diag(2420, 1 /* Error */, \"Class_0_incorrectly_implements_interface_1_2420\", \"Class '{0}' incorrectly implements interface '{1}'.\"),\n A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2422, 1 /* Error */, \"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\", \"A class can only implement an object type or intersection of object types with statically known members.\"),\n Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: diag(2423, 1 /* Error */, \"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\", \"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),\n Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2425, 1 /* Error */, \"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\", \"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),\n Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2426, 1 /* Error */, \"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\", \"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),\n Interface_name_cannot_be_0: diag(2427, 1 /* Error */, \"Interface_name_cannot_be_0_2427\", \"Interface name cannot be '{0}'.\"),\n All_declarations_of_0_must_have_identical_type_parameters: diag(2428, 1 /* Error */, \"All_declarations_of_0_must_have_identical_type_parameters_2428\", \"All declarations of '{0}' must have identical type parameters.\"),\n Interface_0_incorrectly_extends_interface_1: diag(2430, 1 /* Error */, \"Interface_0_incorrectly_extends_interface_1_2430\", \"Interface '{0}' incorrectly extends interface '{1}'.\"),\n Enum_name_cannot_be_0: diag(2431, 1 /* Error */, \"Enum_name_cannot_be_0_2431\", \"Enum name cannot be '{0}'.\"),\n In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: diag(2432, 1 /* Error */, \"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\", \"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),\n A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: diag(2433, 1 /* Error */, \"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\", \"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),\n A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: diag(2434, 1 /* Error */, \"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\", \"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),\n Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: diag(2435, 1 /* Error */, \"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\", \"Ambient modules cannot be nested in other modules or namespaces.\"),\n Ambient_module_declaration_cannot_specify_relative_module_name: diag(2436, 1 /* Error */, \"Ambient_module_declaration_cannot_specify_relative_module_name_2436\", \"Ambient module declaration cannot specify relative module name.\"),\n Module_0_is_hidden_by_a_local_declaration_with_the_same_name: diag(2437, 1 /* Error */, \"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\", \"Module '{0}' is hidden by a local declaration with the same name.\"),\n Import_name_cannot_be_0: diag(2438, 1 /* Error */, \"Import_name_cannot_be_0_2438\", \"Import name cannot be '{0}'.\"),\n Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: diag(2439, 1 /* Error */, \"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\", \"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),\n Import_declaration_conflicts_with_local_declaration_of_0: diag(2440, 1 /* Error */, \"Import_declaration_conflicts_with_local_declaration_of_0_2440\", \"Import declaration conflicts with local declaration of '{0}'.\"),\n Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: diag(2441, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),\n Types_have_separate_declarations_of_a_private_property_0: diag(2442, 1 /* Error */, \"Types_have_separate_declarations_of_a_private_property_0_2442\", \"Types have separate declarations of a private property '{0}'.\"),\n Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: diag(2443, 1 /* Error */, \"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\", \"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),\n Property_0_is_protected_in_type_1_but_public_in_type_2: diag(2444, 1 /* Error */, \"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\", \"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),\n Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: diag(2445, 1 /* Error */, \"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\", \"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),\n Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2: diag(2446, 1 /* Error */, \"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446\", \"Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.\"),\n The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: diag(2447, 1 /* Error */, \"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\", \"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),\n Block_scoped_variable_0_used_before_its_declaration: diag(2448, 1 /* Error */, \"Block_scoped_variable_0_used_before_its_declaration_2448\", \"Block-scoped variable '{0}' used before its declaration.\"),\n Class_0_used_before_its_declaration: diag(2449, 1 /* Error */, \"Class_0_used_before_its_declaration_2449\", \"Class '{0}' used before its declaration.\"),\n Enum_0_used_before_its_declaration: diag(2450, 1 /* Error */, \"Enum_0_used_before_its_declaration_2450\", \"Enum '{0}' used before its declaration.\"),\n Cannot_redeclare_block_scoped_variable_0: diag(2451, 1 /* Error */, \"Cannot_redeclare_block_scoped_variable_0_2451\", \"Cannot redeclare block-scoped variable '{0}'.\"),\n An_enum_member_cannot_have_a_numeric_name: diag(2452, 1 /* Error */, \"An_enum_member_cannot_have_a_numeric_name_2452\", \"An enum member cannot have a numeric name.\"),\n Variable_0_is_used_before_being_assigned: diag(2454, 1 /* Error */, \"Variable_0_is_used_before_being_assigned_2454\", \"Variable '{0}' is used before being assigned.\"),\n Type_alias_0_circularly_references_itself: diag(2456, 1 /* Error */, \"Type_alias_0_circularly_references_itself_2456\", \"Type alias '{0}' circularly references itself.\"),\n Type_alias_name_cannot_be_0: diag(2457, 1 /* Error */, \"Type_alias_name_cannot_be_0_2457\", \"Type alias name cannot be '{0}'.\"),\n An_AMD_module_cannot_have_multiple_name_assignments: diag(2458, 1 /* Error */, \"An_AMD_module_cannot_have_multiple_name_assignments_2458\", \"An AMD module cannot have multiple name assignments.\"),\n Module_0_declares_1_locally_but_it_is_not_exported: diag(2459, 1 /* Error */, \"Module_0_declares_1_locally_but_it_is_not_exported_2459\", \"Module '{0}' declares '{1}' locally, but it is not exported.\"),\n Module_0_declares_1_locally_but_it_is_exported_as_2: diag(2460, 1 /* Error */, \"Module_0_declares_1_locally_but_it_is_exported_as_2_2460\", \"Module '{0}' declares '{1}' locally, but it is exported as '{2}'.\"),\n Type_0_is_not_an_array_type: diag(2461, 1 /* Error */, \"Type_0_is_not_an_array_type_2461\", \"Type '{0}' is not an array type.\"),\n A_rest_element_must_be_last_in_a_destructuring_pattern: diag(2462, 1 /* Error */, \"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\", \"A rest element must be last in a destructuring pattern.\"),\n A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: diag(2463, 1 /* Error */, \"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\", \"A binding pattern parameter cannot be optional in an implementation signature.\"),\n A_computed_property_name_must_be_of_type_string_number_symbol_or_any: diag(2464, 1 /* Error */, \"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\", \"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),\n this_cannot_be_referenced_in_a_computed_property_name: diag(2465, 1 /* Error */, \"this_cannot_be_referenced_in_a_computed_property_name_2465\", \"'this' cannot be referenced in a computed property name.\"),\n super_cannot_be_referenced_in_a_computed_property_name: diag(2466, 1 /* Error */, \"super_cannot_be_referenced_in_a_computed_property_name_2466\", \"'super' cannot be referenced in a computed property name.\"),\n A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: diag(2467, 1 /* Error */, \"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\", \"A computed property name cannot reference a type parameter from its containing type.\"),\n Cannot_find_global_value_0: diag(2468, 1 /* Error */, \"Cannot_find_global_value_0_2468\", \"Cannot find global value '{0}'.\"),\n The_0_operator_cannot_be_applied_to_type_symbol: diag(2469, 1 /* Error */, \"The_0_operator_cannot_be_applied_to_type_symbol_2469\", \"The '{0}' operator cannot be applied to type 'symbol'.\"),\n Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: diag(2472, 1 /* Error */, \"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\", \"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),\n Enum_declarations_must_all_be_const_or_non_const: diag(2473, 1 /* Error */, \"Enum_declarations_must_all_be_const_or_non_const_2473\", \"Enum declarations must all be const or non-const.\"),\n const_enum_member_initializers_must_be_constant_expressions: diag(2474, 1 /* Error */, \"const_enum_member_initializers_must_be_constant_expressions_2474\", \"const enum member initializers must be constant expressions.\"),\n const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query: diag(2475, 1 /* Error */, \"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\", \"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),\n A_const_enum_member_can_only_be_accessed_using_a_string_literal: diag(2476, 1 /* Error */, \"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\", \"A const enum member can only be accessed using a string literal.\"),\n const_enum_member_initializer_was_evaluated_to_a_non_finite_value: diag(2477, 1 /* Error */, \"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\", \"'const' enum member initializer was evaluated to a non-finite value.\"),\n const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: diag(2478, 1 /* Error */, \"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\", \"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),\n let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: diag(2480, 1 /* Error */, \"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\", \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),\n Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: diag(2481, 1 /* Error */, \"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\", \"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),\n The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: diag(2483, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\", \"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),\n Export_declaration_conflicts_with_exported_declaration_of_0: diag(2484, 1 /* Error */, \"Export_declaration_conflicts_with_exported_declaration_of_0_2484\", \"Export declaration conflicts with exported declaration of '{0}'.\"),\n The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: diag(2487, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\", \"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),\n Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2488, 1 /* Error */, \"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\", \"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),\n An_iterator_must_have_a_next_method: diag(2489, 1 /* Error */, \"An_iterator_must_have_a_next_method_2489\", \"An iterator must have a 'next()' method.\"),\n The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property: diag(2490, 1 /* Error */, \"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\", \"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),\n The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: diag(2491, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\", \"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),\n Cannot_redeclare_identifier_0_in_catch_clause: diag(2492, 1 /* Error */, \"Cannot_redeclare_identifier_0_in_catch_clause_2492\", \"Cannot redeclare identifier '{0}' in catch clause.\"),\n Tuple_type_0_of_length_1_has_no_element_at_index_2: diag(2493, 1 /* Error */, \"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\", \"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),\n Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: diag(2494, 1 /* Error */, \"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\", \"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),\n Type_0_is_not_an_array_type_or_a_string_type: diag(2495, 1 /* Error */, \"Type_0_is_not_an_array_type_or_a_string_type_2495\", \"Type '{0}' is not an array type or a string type.\"),\n The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression: diag(2496, 1 /* Error */, \"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496\", \"The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.\"),\n This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export: diag(2497, 1 /* Error */, \"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\", \"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),\n Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: diag(2498, 1 /* Error */, \"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\", \"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),\n An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2499, 1 /* Error */, \"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\", \"An interface can only extend an identifier/qualified-name with optional type arguments.\"),\n A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2500, 1 /* Error */, \"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\", \"A class can only implement an identifier/qualified-name with optional type arguments.\"),\n A_rest_element_cannot_contain_a_binding_pattern: diag(2501, 1 /* Error */, \"A_rest_element_cannot_contain_a_binding_pattern_2501\", \"A rest element cannot contain a binding pattern.\"),\n _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: diag(2502, 1 /* Error */, \"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\", \"'{0}' is referenced directly or indirectly in its own type annotation.\"),\n Cannot_find_namespace_0: diag(2503, 1 /* Error */, \"Cannot_find_namespace_0_2503\", \"Cannot find namespace '{0}'.\"),\n Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator: diag(2504, 1 /* Error */, \"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\", \"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),\n A_generator_cannot_have_a_void_type_annotation: diag(2505, 1 /* Error */, \"A_generator_cannot_have_a_void_type_annotation_2505\", \"A generator cannot have a 'void' type annotation.\"),\n _0_is_referenced_directly_or_indirectly_in_its_own_base_expression: diag(2506, 1 /* Error */, \"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\", \"'{0}' is referenced directly or indirectly in its own base expression.\"),\n Type_0_is_not_a_constructor_function_type: diag(2507, 1 /* Error */, \"Type_0_is_not_a_constructor_function_type_2507\", \"Type '{0}' is not a constructor function type.\"),\n No_base_constructor_has_the_specified_number_of_type_arguments: diag(2508, 1 /* Error */, \"No_base_constructor_has_the_specified_number_of_type_arguments_2508\", \"No base constructor has the specified number of type arguments.\"),\n Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2509, 1 /* Error */, \"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\", \"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),\n Base_constructors_must_all_have_the_same_return_type: diag(2510, 1 /* Error */, \"Base_constructors_must_all_have_the_same_return_type_2510\", \"Base constructors must all have the same return type.\"),\n Cannot_create_an_instance_of_an_abstract_class: diag(2511, 1 /* Error */, \"Cannot_create_an_instance_of_an_abstract_class_2511\", \"Cannot create an instance of an abstract class.\"),\n Overload_signatures_must_all_be_abstract_or_non_abstract: diag(2512, 1 /* Error */, \"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\", \"Overload signatures must all be abstract or non-abstract.\"),\n Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: diag(2513, 1 /* Error */, \"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\", \"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),\n A_tuple_type_cannot_be_indexed_with_a_negative_value: diag(2514, 1 /* Error */, \"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514\", \"A tuple type cannot be indexed with a negative value.\"),\n Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: diag(2515, 1 /* Error */, \"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\", \"Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.\"),\n All_declarations_of_an_abstract_method_must_be_consecutive: diag(2516, 1 /* Error */, \"All_declarations_of_an_abstract_method_must_be_consecutive_2516\", \"All declarations of an abstract method must be consecutive.\"),\n Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: diag(2517, 1 /* Error */, \"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\", \"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),\n A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: diag(2518, 1 /* Error */, \"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\", \"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),\n An_async_iterator_must_have_a_next_method: diag(2519, 1 /* Error */, \"An_async_iterator_must_have_a_next_method_2519\", \"An async iterator must have a 'next()' method.\"),\n Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: diag(2520, 1 /* Error */, \"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\", \"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),\n The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method: diag(2522, 1 /* Error */, \"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522\", \"The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.\"),\n yield_expressions_cannot_be_used_in_a_parameter_initializer: diag(2523, 1 /* Error */, \"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\", \"'yield' expressions cannot be used in a parameter initializer.\"),\n await_expressions_cannot_be_used_in_a_parameter_initializer: diag(2524, 1 /* Error */, \"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\", \"'await' expressions cannot be used in a parameter initializer.\"),\n A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: diag(2526, 1 /* Error */, \"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\", \"A 'this' type is available only in a non-static member of a class or interface.\"),\n The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary: diag(2527, 1 /* Error */, \"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\", \"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),\n A_module_cannot_have_multiple_default_exports: diag(2528, 1 /* Error */, \"A_module_cannot_have_multiple_default_exports_2528\", \"A module cannot have multiple default exports.\"),\n Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: diag(2529, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),\n Property_0_is_incompatible_with_index_signature: diag(2530, 1 /* Error */, \"Property_0_is_incompatible_with_index_signature_2530\", \"Property '{0}' is incompatible with index signature.\"),\n Object_is_possibly_null: diag(2531, 1 /* Error */, \"Object_is_possibly_null_2531\", \"Object is possibly 'null'.\"),\n Object_is_possibly_undefined: diag(2532, 1 /* Error */, \"Object_is_possibly_undefined_2532\", \"Object is possibly 'undefined'.\"),\n Object_is_possibly_null_or_undefined: diag(2533, 1 /* Error */, \"Object_is_possibly_null_or_undefined_2533\", \"Object is possibly 'null' or 'undefined'.\"),\n A_function_returning_never_cannot_have_a_reachable_end_point: diag(2534, 1 /* Error */, \"A_function_returning_never_cannot_have_a_reachable_end_point_2534\", \"A function returning 'never' cannot have a reachable end point.\"),\n Type_0_cannot_be_used_to_index_type_1: diag(2536, 1 /* Error */, \"Type_0_cannot_be_used_to_index_type_1_2536\", \"Type '{0}' cannot be used to index type '{1}'.\"),\n Type_0_has_no_matching_index_signature_for_type_1: diag(2537, 1 /* Error */, \"Type_0_has_no_matching_index_signature_for_type_1_2537\", \"Type '{0}' has no matching index signature for type '{1}'.\"),\n Type_0_cannot_be_used_as_an_index_type: diag(2538, 1 /* Error */, \"Type_0_cannot_be_used_as_an_index_type_2538\", \"Type '{0}' cannot be used as an index type.\"),\n Cannot_assign_to_0_because_it_is_not_a_variable: diag(2539, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_not_a_variable_2539\", \"Cannot assign to '{0}' because it is not a variable.\"),\n Cannot_assign_to_0_because_it_is_a_read_only_property: diag(2540, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\", \"Cannot assign to '{0}' because it is a read-only property.\"),\n Index_signature_in_type_0_only_permits_reading: diag(2542, 1 /* Error */, \"Index_signature_in_type_0_only_permits_reading_2542\", \"Index signature in type '{0}' only permits reading.\"),\n Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference: diag(2543, 1 /* Error */, \"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\", \"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),\n Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference: diag(2544, 1 /* Error */, \"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\", \"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),\n A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any: diag(2545, 1 /* Error */, \"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\", \"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),\n The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property: diag(2547, 1 /* Error */, \"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\", \"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),\n Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2548, 1 /* Error */, \"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\", \"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),\n Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2549, 1 /* Error */, \"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\", \"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),\n Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later: diag(2550, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550\", \"Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.\"),\n Property_0_does_not_exist_on_type_1_Did_you_mean_2: diag(2551, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\", \"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),\n Cannot_find_name_0_Did_you_mean_1: diag(2552, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_1_2552\", \"Cannot find name '{0}'. Did you mean '{1}'?\"),\n Computed_values_are_not_permitted_in_an_enum_with_string_valued_members: diag(2553, 1 /* Error */, \"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\", \"Computed values are not permitted in an enum with string valued members.\"),\n Expected_0_arguments_but_got_1: diag(2554, 1 /* Error */, \"Expected_0_arguments_but_got_1_2554\", \"Expected {0} arguments, but got {1}.\"),\n Expected_at_least_0_arguments_but_got_1: diag(2555, 1 /* Error */, \"Expected_at_least_0_arguments_but_got_1_2555\", \"Expected at least {0} arguments, but got {1}.\"),\n A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter: diag(2556, 1 /* Error */, \"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556\", \"A spread argument must either have a tuple type or be passed to a rest parameter.\"),\n Expected_0_type_arguments_but_got_1: diag(2558, 1 /* Error */, \"Expected_0_type_arguments_but_got_1_2558\", \"Expected {0} type arguments, but got {1}.\"),\n Type_0_has_no_properties_in_common_with_type_1: diag(2559, 1 /* Error */, \"Type_0_has_no_properties_in_common_with_type_1_2559\", \"Type '{0}' has no properties in common with type '{1}'.\"),\n Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it: diag(2560, 1 /* Error */, \"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\", \"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),\n Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2: diag(2561, 1 /* Error */, \"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\", \"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),\n Base_class_expressions_cannot_reference_class_type_parameters: diag(2562, 1 /* Error */, \"Base_class_expressions_cannot_reference_class_type_parameters_2562\", \"Base class expressions cannot reference class type parameters.\"),\n The_containing_function_or_module_body_is_too_large_for_control_flow_analysis: diag(2563, 1 /* Error */, \"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\", \"The containing function or module body is too large for control flow analysis.\"),\n Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor: diag(2564, 1 /* Error */, \"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\", \"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),\n Property_0_is_used_before_being_assigned: diag(2565, 1 /* Error */, \"Property_0_is_used_before_being_assigned_2565\", \"Property '{0}' is used before being assigned.\"),\n A_rest_element_cannot_have_a_property_name: diag(2566, 1 /* Error */, \"A_rest_element_cannot_have_a_property_name_2566\", \"A rest element cannot have a property name.\"),\n Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations: diag(2567, 1 /* Error */, \"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\", \"Enum declarations can only merge with namespace or other enum declarations.\"),\n Property_0_may_not_exist_on_type_1_Did_you_mean_2: diag(2568, 1 /* Error */, \"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568\", \"Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?\"),\n Could_not_find_name_0_Did_you_mean_1: diag(2570, 1 /* Error */, \"Could_not_find_name_0_Did_you_mean_1_2570\", \"Could not find name '{0}'. Did you mean '{1}'?\"),\n Object_is_of_type_unknown: diag(2571, 1 /* Error */, \"Object_is_of_type_unknown_2571\", \"Object is of type 'unknown'.\"),\n A_rest_element_type_must_be_an_array_type: diag(2574, 1 /* Error */, \"A_rest_element_type_must_be_an_array_type_2574\", \"A rest element type must be an array type.\"),\n No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments: diag(2575, 1 /* Error */, \"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\", \"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),\n Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead: diag(2576, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576\", \"Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?\"),\n Return_type_annotation_circularly_references_itself: diag(2577, 1 /* Error */, \"Return_type_annotation_circularly_references_itself_2577\", \"Return type annotation circularly references itself.\"),\n Unused_ts_expect_error_directive: diag(2578, 1 /* Error */, \"Unused_ts_expect_error_directive_2578\", \"Unused '@ts-expect-error' directive.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode: diag(2580, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580\", \"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery: diag(2581, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581\", \"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha: diag(2582, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582\", \"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.\"),\n Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later: diag(2583, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\", \"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.\"),\n Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: diag(2584, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\", \"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.\"),\n _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: diag(2585, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\", \"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.\"),\n Cannot_assign_to_0_because_it_is_a_constant: diag(2588, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_constant_2588\", \"Cannot assign to '{0}' because it is a constant.\"),\n Type_instantiation_is_excessively_deep_and_possibly_infinite: diag(2589, 1 /* Error */, \"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\", \"Type instantiation is excessively deep and possibly infinite.\"),\n Expression_produces_a_union_type_that_is_too_complex_to_represent: diag(2590, 1 /* Error */, \"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\", \"Expression produces a union type that is too complex to represent.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: diag(2591, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591\", \"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: diag(2592, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592\", \"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: diag(2593, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593\", \"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.\"),\n This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: diag(2594, 1 /* Error */, \"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594\", \"This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.\"),\n _0_can_only_be_imported_by_using_a_default_import: diag(2595, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_default_import_2595\", \"'{0}' can only be imported by using a default import.\"),\n _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2596, 1 /* Error */, \"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596\", \"'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.\"),\n _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: diag(2597, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597\", \"'{0}' can only be imported by using a 'require' call or by using a default import.\"),\n _0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2598, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598\", \"'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.\"),\n JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: diag(2602, 1 /* Error */, \"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\", \"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),\n Property_0_in_type_1_is_not_assignable_to_type_2: diag(2603, 1 /* Error */, \"Property_0_in_type_1_is_not_assignable_to_type_2_2603\", \"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),\n JSX_element_type_0_does_not_have_any_construct_or_call_signatures: diag(2604, 1 /* Error */, \"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\", \"JSX element type '{0}' does not have any construct or call signatures.\"),\n Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: diag(2606, 1 /* Error */, \"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\", \"Property '{0}' of JSX spread attribute is not assignable to target property.\"),\n JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: diag(2607, 1 /* Error */, \"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\", \"JSX element class does not support attributes because it does not have a '{0}' property.\"),\n The_global_type_JSX_0_may_not_have_more_than_one_property: diag(2608, 1 /* Error */, \"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\", \"The global type 'JSX.{0}' may not have more than one property.\"),\n JSX_spread_child_must_be_an_array_type: diag(2609, 1 /* Error */, \"JSX_spread_child_must_be_an_array_type_2609\", \"JSX spread child must be an array type.\"),\n _0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property: diag(2610, 1 /* Error */, \"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610\", \"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.\"),\n _0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor: diag(2611, 1 /* Error */, \"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611\", \"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.\"),\n Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration: diag(2612, 1 /* Error */, \"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\", \"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),\n Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead: diag(2613, 1 /* Error */, \"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\", \"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),\n Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead: diag(2614, 1 /* Error */, \"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\", \"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),\n Type_of_property_0_circularly_references_itself_in_mapped_type_1: diag(2615, 1 /* Error */, \"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615\", \"Type of property '{0}' circularly references itself in mapped type '{1}'.\"),\n _0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import: diag(2616, 1 /* Error */, \"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616\", \"'{0}' can only be imported by using 'import {1} = require({2})' or a default import.\"),\n _0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2617, 1 /* Error */, \"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617\", \"'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.\"),\n Source_has_0_element_s_but_target_requires_1: diag(2618, 1 /* Error */, \"Source_has_0_element_s_but_target_requires_1_2618\", \"Source has {0} element(s) but target requires {1}.\"),\n Source_has_0_element_s_but_target_allows_only_1: diag(2619, 1 /* Error */, \"Source_has_0_element_s_but_target_allows_only_1_2619\", \"Source has {0} element(s) but target allows only {1}.\"),\n Target_requires_0_element_s_but_source_may_have_fewer: diag(2620, 1 /* Error */, \"Target_requires_0_element_s_but_source_may_have_fewer_2620\", \"Target requires {0} element(s) but source may have fewer.\"),\n Target_allows_only_0_element_s_but_source_may_have_more: diag(2621, 1 /* Error */, \"Target_allows_only_0_element_s_but_source_may_have_more_2621\", \"Target allows only {0} element(s) but source may have more.\"),\n Source_provides_no_match_for_required_element_at_position_0_in_target: diag(2623, 1 /* Error */, \"Source_provides_no_match_for_required_element_at_position_0_in_target_2623\", \"Source provides no match for required element at position {0} in target.\"),\n Source_provides_no_match_for_variadic_element_at_position_0_in_target: diag(2624, 1 /* Error */, \"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624\", \"Source provides no match for variadic element at position {0} in target.\"),\n Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target: diag(2625, 1 /* Error */, \"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625\", \"Variadic element at position {0} in source does not match element at position {1} in target.\"),\n Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target: diag(2626, 1 /* Error */, \"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626\", \"Type at position {0} in source is not compatible with type at position {1} in target.\"),\n Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target: diag(2627, 1 /* Error */, \"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627\", \"Type at positions {0} through {1} in source is not compatible with type at position {2} in target.\"),\n Cannot_assign_to_0_because_it_is_an_enum: diag(2628, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_an_enum_2628\", \"Cannot assign to '{0}' because it is an enum.\"),\n Cannot_assign_to_0_because_it_is_a_class: diag(2629, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_class_2629\", \"Cannot assign to '{0}' because it is a class.\"),\n Cannot_assign_to_0_because_it_is_a_function: diag(2630, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_function_2630\", \"Cannot assign to '{0}' because it is a function.\"),\n Cannot_assign_to_0_because_it_is_a_namespace: diag(2631, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_namespace_2631\", \"Cannot assign to '{0}' because it is a namespace.\"),\n Cannot_assign_to_0_because_it_is_an_import: diag(2632, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_an_import_2632\", \"Cannot assign to '{0}' because it is an import.\"),\n JSX_property_access_expressions_cannot_include_JSX_namespace_names: diag(2633, 1 /* Error */, \"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633\", \"JSX property access expressions cannot include JSX namespace names\"),\n _0_index_signatures_are_incompatible: diag(2634, 1 /* Error */, \"_0_index_signatures_are_incompatible_2634\", \"'{0}' index signatures are incompatible.\"),\n Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: diag(2635, 1 /* Error */, \"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635\", \"Type '{0}' has no signatures for which the type argument list is applicable.\"),\n Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: diag(2636, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636\", \"Type '{0}' is not assignable to type '{1}' as implied by variance annotation.\"),\n Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: diag(2637, 1 /* Error */, \"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637\", \"Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.\"),\n Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator: diag(2638, 1 /* Error */, \"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638\", \"Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.\"),\n React_components_cannot_include_JSX_namespace_names: diag(2639, 1 /* Error */, \"React_components_cannot_include_JSX_namespace_names_2639\", \"React components cannot include JSX namespace names\"),\n Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: diag(2649, 1 /* Error */, \"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\", \"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),\n Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more: diag(2650, 1 /* Error */, \"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650\", \"Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.\"),\n A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: diag(2651, 1 /* Error */, \"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\", \"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),\n Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: diag(2652, 1 /* Error */, \"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\", \"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),\n Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: diag(2653, 1 /* Error */, \"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\", \"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),\n Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2: diag(2654, 1 /* Error */, \"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654\", \"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.\"),\n Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more: diag(2655, 1 /* Error */, \"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655\", \"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.\"),\n Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1: diag(2656, 1 /* Error */, \"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656\", \"Non-abstract class expression is missing implementations for the following members of '{0}': {1}.\"),\n JSX_expressions_must_have_one_parent_element: diag(2657, 1 /* Error */, \"JSX_expressions_must_have_one_parent_element_2657\", \"JSX expressions must have one parent element.\"),\n Type_0_provides_no_match_for_the_signature_1: diag(2658, 1 /* Error */, \"Type_0_provides_no_match_for_the_signature_1_2658\", \"Type '{0}' provides no match for the signature '{1}'.\"),\n super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: diag(2659, 1 /* Error */, \"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\", \"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),\n super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: diag(2660, 1 /* Error */, \"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\", \"'super' can only be referenced in members of derived classes or object literal expressions.\"),\n Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: diag(2661, 1 /* Error */, \"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\", \"Cannot export '{0}'. Only local declarations can be exported from a module.\"),\n Cannot_find_name_0_Did_you_mean_the_static_member_1_0: diag(2662, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\", \"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),\n Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: diag(2663, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\", \"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),\n Invalid_module_name_in_augmentation_module_0_cannot_be_found: diag(2664, 1 /* Error */, \"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\", \"Invalid module name in augmentation, module '{0}' cannot be found.\"),\n Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: diag(2665, 1 /* Error */, \"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\", \"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),\n Exports_and_export_assignments_are_not_permitted_in_module_augmentations: diag(2666, 1 /* Error */, \"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\", \"Exports and export assignments are not permitted in module augmentations.\"),\n Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: diag(2667, 1 /* Error */, \"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\", \"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),\n export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: diag(2668, 1 /* Error */, \"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\", \"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),\n Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: diag(2669, 1 /* Error */, \"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\", \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),\n Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: diag(2670, 1 /* Error */, \"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\", \"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),\n Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: diag(2671, 1 /* Error */, \"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\", \"Cannot augment module '{0}' because it resolves to a non-module entity.\"),\n Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: diag(2672, 1 /* Error */, \"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\", \"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),\n Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: diag(2673, 1 /* Error */, \"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\", \"Constructor of class '{0}' is private and only accessible within the class declaration.\"),\n Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: diag(2674, 1 /* Error */, \"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\", \"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),\n Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: diag(2675, 1 /* Error */, \"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\", \"Cannot extend a class '{0}'. Class constructor is marked as private.\"),\n Accessors_must_both_be_abstract_or_non_abstract: diag(2676, 1 /* Error */, \"Accessors_must_both_be_abstract_or_non_abstract_2676\", \"Accessors must both be abstract or non-abstract.\"),\n A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: diag(2677, 1 /* Error */, \"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\", \"A type predicate's type must be assignable to its parameter's type.\"),\n Type_0_is_not_comparable_to_type_1: diag(2678, 1 /* Error */, \"Type_0_is_not_comparable_to_type_1_2678\", \"Type '{0}' is not comparable to type '{1}'.\"),\n A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: diag(2679, 1 /* Error */, \"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\", \"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),\n A_0_parameter_must_be_the_first_parameter: diag(2680, 1 /* Error */, \"A_0_parameter_must_be_the_first_parameter_2680\", \"A '{0}' parameter must be the first parameter.\"),\n A_constructor_cannot_have_a_this_parameter: diag(2681, 1 /* Error */, \"A_constructor_cannot_have_a_this_parameter_2681\", \"A constructor cannot have a 'this' parameter.\"),\n this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: diag(2683, 1 /* Error */, \"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\", \"'this' implicitly has type 'any' because it does not have a type annotation.\"),\n The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: diag(2684, 1 /* Error */, \"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\", \"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),\n The_this_types_of_each_signature_are_incompatible: diag(2685, 1 /* Error */, \"The_this_types_of_each_signature_are_incompatible_2685\", \"The 'this' types of each signature are incompatible.\"),\n _0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: diag(2686, 1 /* Error */, \"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\", \"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),\n All_declarations_of_0_must_have_identical_modifiers: diag(2687, 1 /* Error */, \"All_declarations_of_0_must_have_identical_modifiers_2687\", \"All declarations of '{0}' must have identical modifiers.\"),\n Cannot_find_type_definition_file_for_0: diag(2688, 1 /* Error */, \"Cannot_find_type_definition_file_for_0_2688\", \"Cannot find type definition file for '{0}'.\"),\n Cannot_extend_an_interface_0_Did_you_mean_implements: diag(2689, 1 /* Error */, \"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\", \"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),\n _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0: diag(2690, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690\", \"'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?\"),\n _0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: diag(2692, 1 /* Error */, \"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\", \"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),\n _0_only_refers_to_a_type_but_is_being_used_as_a_value_here: diag(2693, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\", \"'{0}' only refers to a type, but is being used as a value here.\"),\n Namespace_0_has_no_exported_member_1: diag(2694, 1 /* Error */, \"Namespace_0_has_no_exported_member_1_2694\", \"Namespace '{0}' has no exported member '{1}'.\"),\n Left_side_of_comma_operator_is_unused_and_has_no_side_effects: diag(\n 2695,\n 1 /* Error */,\n \"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\n \"Left side of comma operator is unused and has no side effects.\",\n /*reportsUnnecessary*/\n true\n ),\n The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: diag(2696, 1 /* Error */, \"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\", \"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),\n An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2697, 1 /* Error */, \"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\", \"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),\n Spread_types_may_only_be_created_from_object_types: diag(2698, 1 /* Error */, \"Spread_types_may_only_be_created_from_object_types_2698\", \"Spread types may only be created from object types.\"),\n Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1: diag(2699, 1 /* Error */, \"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\", \"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),\n Rest_types_may_only_be_created_from_object_types: diag(2700, 1 /* Error */, \"Rest_types_may_only_be_created_from_object_types_2700\", \"Rest types may only be created from object types.\"),\n The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access: diag(2701, 1 /* Error */, \"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\", \"The target of an object rest assignment must be a variable or a property access.\"),\n _0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here: diag(2702, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\", \"'{0}' only refers to a type, but is being used as a namespace here.\"),\n The_operand_of_a_delete_operator_must_be_a_property_reference: diag(2703, 1 /* Error */, \"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\", \"The operand of a 'delete' operator must be a property reference.\"),\n The_operand_of_a_delete_operator_cannot_be_a_read_only_property: diag(2704, 1 /* Error */, \"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\", \"The operand of a 'delete' operator cannot be a read-only property.\"),\n An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2705, 1 /* Error */, \"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705\", \"An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),\n Required_type_parameters_may_not_follow_optional_type_parameters: diag(2706, 1 /* Error */, \"Required_type_parameters_may_not_follow_optional_type_parameters_2706\", \"Required type parameters may not follow optional type parameters.\"),\n Generic_type_0_requires_between_1_and_2_type_arguments: diag(2707, 1 /* Error */, \"Generic_type_0_requires_between_1_and_2_type_arguments_2707\", \"Generic type '{0}' requires between {1} and {2} type arguments.\"),\n Cannot_use_namespace_0_as_a_value: diag(2708, 1 /* Error */, \"Cannot_use_namespace_0_as_a_value_2708\", \"Cannot use namespace '{0}' as a value.\"),\n Cannot_use_namespace_0_as_a_type: diag(2709, 1 /* Error */, \"Cannot_use_namespace_0_as_a_type_2709\", \"Cannot use namespace '{0}' as a type.\"),\n _0_are_specified_twice_The_attribute_named_0_will_be_overwritten: diag(2710, 1 /* Error */, \"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\", \"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),\n A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2711, 1 /* Error */, \"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\", \"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),\n A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2712, 1 /* Error */, \"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712\", \"A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),\n Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1: diag(2713, 1 /* Error */, \"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\", `Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?`),\n The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context: diag(2714, 1 /* Error */, \"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\", \"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),\n Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor: diag(2715, 1 /* Error */, \"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\", \"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),\n Type_parameter_0_has_a_circular_default: diag(2716, 1 /* Error */, \"Type_parameter_0_has_a_circular_default_2716\", \"Type parameter '{0}' has a circular default.\"),\n Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2: diag(2717, 1 /* Error */, \"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\", \"Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.\"),\n Duplicate_property_0: diag(2718, 1 /* Error */, \"Duplicate_property_0_2718\", \"Duplicate property '{0}'.\"),\n Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: diag(2719, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\", \"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),\n Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass: diag(2720, 1 /* Error */, \"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\", \"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),\n Cannot_invoke_an_object_which_is_possibly_null: diag(2721, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_null_2721\", \"Cannot invoke an object which is possibly 'null'.\"),\n Cannot_invoke_an_object_which_is_possibly_undefined: diag(2722, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_undefined_2722\", \"Cannot invoke an object which is possibly 'undefined'.\"),\n Cannot_invoke_an_object_which_is_possibly_null_or_undefined: diag(2723, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\", \"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),\n _0_has_no_exported_member_named_1_Did_you_mean_2: diag(2724, 1 /* Error */, \"_0_has_no_exported_member_named_1_Did_you_mean_2_2724\", \"'{0}' has no exported member named '{1}'. Did you mean '{2}'?\"),\n Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0: diag(2725, 1 /* Error */, \"Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0_2725\", \"Class name cannot be 'Object' when targeting ES5 and above with module {0}.\"),\n Cannot_find_lib_definition_for_0: diag(2726, 1 /* Error */, \"Cannot_find_lib_definition_for_0_2726\", \"Cannot find lib definition for '{0}'.\"),\n Cannot_find_lib_definition_for_0_Did_you_mean_1: diag(2727, 1 /* Error */, \"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\", \"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),\n _0_is_declared_here: diag(2728, 3 /* Message */, \"_0_is_declared_here_2728\", \"'{0}' is declared here.\"),\n Property_0_is_used_before_its_initialization: diag(2729, 1 /* Error */, \"Property_0_is_used_before_its_initialization_2729\", \"Property '{0}' is used before its initialization.\"),\n An_arrow_function_cannot_have_a_this_parameter: diag(2730, 1 /* Error */, \"An_arrow_function_cannot_have_a_this_parameter_2730\", \"An arrow function cannot have a 'this' parameter.\"),\n Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String: diag(2731, 1 /* Error */, \"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\", \"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),\n Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension: diag(2732, 1 /* Error */, \"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\", \"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.\"),\n Property_0_was_also_declared_here: diag(2733, 1 /* Error */, \"Property_0_was_also_declared_here_2733\", \"Property '{0}' was also declared here.\"),\n Are_you_missing_a_semicolon: diag(2734, 1 /* Error */, \"Are_you_missing_a_semicolon_2734\", \"Are you missing a semicolon?\"),\n Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1: diag(2735, 1 /* Error */, \"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\", \"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),\n Operator_0_cannot_be_applied_to_type_1: diag(2736, 1 /* Error */, \"Operator_0_cannot_be_applied_to_type_1_2736\", \"Operator '{0}' cannot be applied to type '{1}'.\"),\n BigInt_literals_are_not_available_when_targeting_lower_than_ES2020: diag(2737, 1 /* Error */, \"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737\", \"BigInt literals are not available when targeting lower than ES2020.\"),\n An_outer_value_of_this_is_shadowed_by_this_container: diag(2738, 3 /* Message */, \"An_outer_value_of_this_is_shadowed_by_this_container_2738\", \"An outer value of 'this' is shadowed by this container.\"),\n Type_0_is_missing_the_following_properties_from_type_1_Colon_2: diag(2739, 1 /* Error */, \"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\", \"Type '{0}' is missing the following properties from type '{1}': {2}\"),\n Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more: diag(2740, 1 /* Error */, \"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\", \"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),\n Property_0_is_missing_in_type_1_but_required_in_type_2: diag(2741, 1 /* Error */, \"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\", \"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),\n The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary: diag(2742, 1 /* Error */, \"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\", \"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),\n No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments: diag(2743, 1 /* Error */, \"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\", \"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),\n Type_parameter_defaults_can_only_reference_previously_declared_type_parameters: diag(2744, 1 /* Error */, \"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\", \"Type parameter defaults can only reference previously declared type parameters.\"),\n This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided: diag(2745, 1 /* Error */, \"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\", \"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),\n This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided: diag(2746, 1 /* Error */, \"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\", \"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),\n _0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2: diag(2747, 1 /* Error */, \"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\", \"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),\n Cannot_access_ambient_const_enums_when_0_is_enabled: diag(2748, 1 /* Error */, \"Cannot_access_ambient_const_enums_when_0_is_enabled_2748\", \"Cannot access ambient const enums when '{0}' is enabled.\"),\n _0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0: diag(2749, 1 /* Error */, \"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749\", \"'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?\"),\n The_implementation_signature_is_declared_here: diag(2750, 1 /* Error */, \"The_implementation_signature_is_declared_here_2750\", \"The implementation signature is declared here.\"),\n Circularity_originates_in_type_at_this_location: diag(2751, 1 /* Error */, \"Circularity_originates_in_type_at_this_location_2751\", \"Circularity originates in type at this location.\"),\n The_first_export_default_is_here: diag(2752, 1 /* Error */, \"The_first_export_default_is_here_2752\", \"The first export default is here.\"),\n Another_export_default_is_here: diag(2753, 1 /* Error */, \"Another_export_default_is_here_2753\", \"Another export default is here.\"),\n super_may_not_use_type_arguments: diag(2754, 1 /* Error */, \"super_may_not_use_type_arguments_2754\", \"'super' may not use type arguments.\"),\n No_constituent_of_type_0_is_callable: diag(2755, 1 /* Error */, \"No_constituent_of_type_0_is_callable_2755\", \"No constituent of type '{0}' is callable.\"),\n Not_all_constituents_of_type_0_are_callable: diag(2756, 1 /* Error */, \"Not_all_constituents_of_type_0_are_callable_2756\", \"Not all constituents of type '{0}' are callable.\"),\n Type_0_has_no_call_signatures: diag(2757, 1 /* Error */, \"Type_0_has_no_call_signatures_2757\", \"Type '{0}' has no call signatures.\"),\n Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2758, 1 /* Error */, \"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\", \"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),\n No_constituent_of_type_0_is_constructable: diag(2759, 1 /* Error */, \"No_constituent_of_type_0_is_constructable_2759\", \"No constituent of type '{0}' is constructable.\"),\n Not_all_constituents_of_type_0_are_constructable: diag(2760, 1 /* Error */, \"Not_all_constituents_of_type_0_are_constructable_2760\", \"Not all constituents of type '{0}' are constructable.\"),\n Type_0_has_no_construct_signatures: diag(2761, 1 /* Error */, \"Type_0_has_no_construct_signatures_2761\", \"Type '{0}' has no construct signatures.\"),\n Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2762, 1 /* Error */, \"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\", \"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),\n Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0: diag(2763, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),\n Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0: diag(2764, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),\n Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0: diag(2765, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),\n Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0: diag(2766, 1 /* Error */, \"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\", \"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),\n The_0_property_of_an_iterator_must_be_a_method: diag(2767, 1 /* Error */, \"The_0_property_of_an_iterator_must_be_a_method_2767\", \"The '{0}' property of an iterator must be a method.\"),\n The_0_property_of_an_async_iterator_must_be_a_method: diag(2768, 1 /* Error */, \"The_0_property_of_an_async_iterator_must_be_a_method_2768\", \"The '{0}' property of an async iterator must be a method.\"),\n No_overload_matches_this_call: diag(2769, 1 /* Error */, \"No_overload_matches_this_call_2769\", \"No overload matches this call.\"),\n The_last_overload_gave_the_following_error: diag(2770, 1 /* Error */, \"The_last_overload_gave_the_following_error_2770\", \"The last overload gave the following error.\"),\n The_last_overload_is_declared_here: diag(2771, 1 /* Error */, \"The_last_overload_is_declared_here_2771\", \"The last overload is declared here.\"),\n Overload_0_of_1_2_gave_the_following_error: diag(2772, 1 /* Error */, \"Overload_0_of_1_2_gave_the_following_error_2772\", \"Overload {0} of {1}, '{2}', gave the following error.\"),\n Did_you_forget_to_use_await: diag(2773, 1 /* Error */, \"Did_you_forget_to_use_await_2773\", \"Did you forget to use 'await'?\"),\n This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead: diag(2774, 1 /* Error */, \"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774\", \"This condition will always return true since this function is always defined. Did you mean to call it instead?\"),\n Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation: diag(2775, 1 /* Error */, \"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\", \"Assertions require every name in the call target to be declared with an explicit type annotation.\"),\n Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name: diag(2776, 1 /* Error */, \"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\", \"Assertions require the call target to be an identifier or qualified name.\"),\n The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access: diag(2777, 1 /* Error */, \"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\", \"The operand of an increment or decrement operator may not be an optional property access.\"),\n The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access: diag(2778, 1 /* Error */, \"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\", \"The target of an object rest assignment may not be an optional property access.\"),\n The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access: diag(2779, 1 /* Error */, \"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\", \"The left-hand side of an assignment expression may not be an optional property access.\"),\n The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access: diag(2780, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\", \"The left-hand side of a 'for...in' statement may not be an optional property access.\"),\n The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access: diag(2781, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\", \"The left-hand side of a 'for...of' statement may not be an optional property access.\"),\n _0_needs_an_explicit_type_annotation: diag(2782, 3 /* Message */, \"_0_needs_an_explicit_type_annotation_2782\", \"'{0}' needs an explicit type annotation.\"),\n _0_is_specified_more_than_once_so_this_usage_will_be_overwritten: diag(2783, 1 /* Error */, \"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783\", \"'{0}' is specified more than once, so this usage will be overwritten.\"),\n get_and_set_accessors_cannot_declare_this_parameters: diag(2784, 1 /* Error */, \"get_and_set_accessors_cannot_declare_this_parameters_2784\", \"'get' and 'set' accessors cannot declare 'this' parameters.\"),\n This_spread_always_overwrites_this_property: diag(2785, 1 /* Error */, \"This_spread_always_overwrites_this_property_2785\", \"This spread always overwrites this property.\"),\n _0_cannot_be_used_as_a_JSX_component: diag(2786, 1 /* Error */, \"_0_cannot_be_used_as_a_JSX_component_2786\", \"'{0}' cannot be used as a JSX component.\"),\n Its_return_type_0_is_not_a_valid_JSX_element: diag(2787, 1 /* Error */, \"Its_return_type_0_is_not_a_valid_JSX_element_2787\", \"Its return type '{0}' is not a valid JSX element.\"),\n Its_instance_type_0_is_not_a_valid_JSX_element: diag(2788, 1 /* Error */, \"Its_instance_type_0_is_not_a_valid_JSX_element_2788\", \"Its instance type '{0}' is not a valid JSX element.\"),\n Its_element_type_0_is_not_a_valid_JSX_element: diag(2789, 1 /* Error */, \"Its_element_type_0_is_not_a_valid_JSX_element_2789\", \"Its element type '{0}' is not a valid JSX element.\"),\n The_operand_of_a_delete_operator_must_be_optional: diag(2790, 1 /* Error */, \"The_operand_of_a_delete_operator_must_be_optional_2790\", \"The operand of a 'delete' operator must be optional.\"),\n Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later: diag(2791, 1 /* Error */, \"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791\", \"Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.\"),\n Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option: diag(2792, 1 /* Error */, \"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792\", \"Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?\"),\n The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible: diag(2793, 1 /* Error */, \"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793\", \"The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.\"),\n Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise: diag(2794, 1 /* Error */, \"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794\", \"Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?\"),\n The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types: diag(2795, 1 /* Error */, \"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795\", \"The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.\"),\n It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked: diag(2796, 1 /* Error */, \"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796\", \"It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.\"),\n A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract: diag(2797, 1 /* Error */, \"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797\", \"A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.\"),\n The_declaration_was_marked_as_deprecated_here: diag(2798, 1 /* Error */, \"The_declaration_was_marked_as_deprecated_here_2798\", \"The declaration was marked as deprecated here.\"),\n Type_produces_a_tuple_type_that_is_too_large_to_represent: diag(2799, 1 /* Error */, \"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799\", \"Type produces a tuple type that is too large to represent.\"),\n Expression_produces_a_tuple_type_that_is_too_large_to_represent: diag(2800, 1 /* Error */, \"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800\", \"Expression produces a tuple type that is too large to represent.\"),\n This_condition_will_always_return_true_since_this_0_is_always_defined: diag(2801, 1 /* Error */, \"This_condition_will_always_return_true_since_this_0_is_always_defined_2801\", \"This condition will always return true since this '{0}' is always defined.\"),\n Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher: diag(2802, 1 /* Error */, \"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802\", \"Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\"),\n Cannot_assign_to_private_method_0_Private_methods_are_not_writable: diag(2803, 1 /* Error */, \"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803\", \"Cannot assign to private method '{0}'. Private methods are not writable.\"),\n Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name: diag(2804, 1 /* Error */, \"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804\", \"Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.\"),\n Private_accessor_was_defined_without_a_getter: diag(2806, 1 /* Error */, \"Private_accessor_was_defined_without_a_getter_2806\", \"Private accessor was defined without a getter.\"),\n This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0: diag(2807, 1 /* Error */, \"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807\", \"This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.\"),\n A_get_accessor_must_be_at_least_as_accessible_as_the_setter: diag(2808, 1 /* Error */, \"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808\", \"A get accessor must be at least as accessible as the setter\"),\n Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses: diag(2809, 1 /* Error */, \"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809\", \"Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.\"),\n Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments: diag(2810, 1 /* Error */, \"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810\", \"Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.\"),\n Initializer_for_property_0: diag(2811, 1 /* Error */, \"Initializer_for_property_0_2811\", \"Initializer for property '{0}'\"),\n Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom: diag(2812, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812\", \"Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.\"),\n Class_declaration_cannot_implement_overload_list_for_0: diag(2813, 1 /* Error */, \"Class_declaration_cannot_implement_overload_list_for_0_2813\", \"Class declaration cannot implement overload list for '{0}'.\"),\n Function_with_bodies_can_only_merge_with_classes_that_are_ambient: diag(2814, 1 /* Error */, \"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814\", \"Function with bodies can only merge with classes that are ambient.\"),\n arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks: diag(2815, 1 /* Error */, \"arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks_2815\", \"'arguments' cannot be referenced in property initializers or class static initialization blocks.\"),\n Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class: diag(2816, 1 /* Error */, \"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816\", \"Cannot use 'this' in a static property initializer of a decorated class.\"),\n Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block: diag(2817, 1 /* Error */, \"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817\", \"Property '{0}' has no initializer and is not definitely assigned in a class static block.\"),\n Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers: diag(2818, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.\"),\n Namespace_name_cannot_be_0: diag(2819, 1 /* Error */, \"Namespace_name_cannot_be_0_2819\", \"Namespace name cannot be '{0}'.\"),\n Type_0_is_not_assignable_to_type_1_Did_you_mean_2: diag(2820, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820\", \"Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?\"),\n Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve: diag(2821, 1 /* Error */, \"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2821\", \"Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n Import_assertions_cannot_be_used_with_type_only_imports_or_exports: diag(2822, 1 /* Error */, \"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822\", \"Import assertions cannot be used with type-only imports or exports.\"),\n Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve: diag(2823, 1 /* Error */, \"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2823\", \"Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n Cannot_find_namespace_0_Did_you_mean_1: diag(2833, 1 /* Error */, \"Cannot_find_namespace_0_Did_you_mean_1_2833\", \"Cannot find namespace '{0}'. Did you mean '{1}'?\"),\n Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path: diag(2834, 1 /* Error */, \"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834\", \"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.\"),\n Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0: diag(2835, 1 /* Error */, \"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835\", \"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?\"),\n Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls: diag(2836, 1 /* Error */, \"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836\", \"Import assertions are not allowed on statements that compile to CommonJS 'require' calls.\"),\n Import_assertion_values_must_be_string_literal_expressions: diag(2837, 1 /* Error */, \"Import_assertion_values_must_be_string_literal_expressions_2837\", \"Import assertion values must be string literal expressions.\"),\n All_declarations_of_0_must_have_identical_constraints: diag(2838, 1 /* Error */, \"All_declarations_of_0_must_have_identical_constraints_2838\", \"All declarations of '{0}' must have identical constraints.\"),\n This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: diag(2839, 1 /* Error */, \"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839\", \"This condition will always return '{0}' since JavaScript compares objects by reference, not value.\"),\n An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types: diag(2840, 1 /* Error */, \"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840\", \"An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.\"),\n _0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: diag(2842, 1 /* Error */, \"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842\", \"'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?\"),\n We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: diag(2843, 1 /* Error */, \"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843\", \"We can only write a type for '{0}' by adding a type for the entire parameter here.\"),\n Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2844, 1 /* Error */, \"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844\", \"Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),\n This_condition_will_always_return_0: diag(2845, 1 /* Error */, \"This_condition_will_always_return_0_2845\", \"This condition will always return '{0}'.\"),\n A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead: diag(2846, 1 /* Error */, \"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846\", \"A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?\"),\n The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression: diag(2848, 1 /* Error */, \"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848\", \"The right-hand side of an 'instanceof' expression must not be an instantiation expression.\"),\n Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1: diag(2849, 1 /* Error */, \"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849\", \"Target signature provides too few arguments. Expected {0} or more, but got {1}.\"),\n The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined: diag(2850, 1 /* Error */, \"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850\", \"The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),\n The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined: diag(2851, 1 /* Error */, \"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851\", \"The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),\n await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(2852, 1 /* Error */, \"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852\", \"'await using' statements are only allowed within async functions and at the top levels of modules.\"),\n await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(2853, 1 /* Error */, \"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853\", \"'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(2854, 1 /* Error */, \"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854\", \"Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super: diag(2855, 1 /* Error */, \"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855\", \"Class field '{0}' defined by the parent class is not accessible in the child class via super.\"),\n Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls: diag(2856, 1 /* Error */, \"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856\", \"Import attributes are not allowed on statements that compile to CommonJS 'require' calls.\"),\n Import_attributes_cannot_be_used_with_type_only_imports_or_exports: diag(2857, 1 /* Error */, \"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857\", \"Import attributes cannot be used with type-only imports or exports.\"),\n Import_attribute_values_must_be_string_literal_expressions: diag(2858, 1 /* Error */, \"Import_attribute_values_must_be_string_literal_expressions_2858\", \"Import attribute values must be string literal expressions.\"),\n Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, \"Excessive_complexity_comparing_types_0_and_1_2859\", \"Excessive complexity comparing types '{0}' and '{1}'.\"),\n The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, \"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860\", \"The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.\"),\n An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, \"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861\", \"An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.\"),\n Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, \"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862\", \"Type '{0}' is generic and can only be indexed for reading.\"),\n A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values: diag(2863, 1 /* Error */, \"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863\", \"A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.\"),\n A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types: diag(2864, 1 /* Error */, \"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864\", \"A class cannot implement a primitive type like '{0}'. It can only implement other named object types.\"),\n Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2865, 1 /* Error */, \"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865\", \"Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),\n Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2866, 1 /* Error */, \"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866\", \"Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun: diag(2867, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867\", \"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.\"),\n Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig: diag(2868, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868\", \"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.\"),\n Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish: diag(2869, 1 /* Error */, \"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869\", \"Right operand of ?? is unreachable because the left operand is never nullish.\"),\n This_binary_expression_is_never_nullish_Are_you_missing_parentheses: diag(2870, 1 /* Error */, \"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870\", \"This binary expression is never nullish. Are you missing parentheses?\"),\n This_expression_is_always_nullish: diag(2871, 1 /* Error */, \"This_expression_is_always_nullish_2871\", \"This expression is always nullish.\"),\n This_kind_of_expression_is_always_truthy: diag(2872, 1 /* Error */, \"This_kind_of_expression_is_always_truthy_2872\", \"This kind of expression is always truthy.\"),\n This_kind_of_expression_is_always_falsy: diag(2873, 1 /* Error */, \"This_kind_of_expression_is_always_falsy_2873\", \"This kind of expression is always falsy.\"),\n This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found: diag(2874, 1 /* Error */, \"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874\", \"This JSX tag requires '{0}' to be in scope, but it could not be found.\"),\n This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed: diag(2875, 1 /* Error */, \"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875\", \"This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.\"),\n This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0: diag(2876, 1 /* Error */, \"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876\", 'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".'),\n This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path: diag(2877, 1 /* Error */, \"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877\", \"This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.\"),\n This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files: diag(2878, 1 /* Error */, \"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878\", \"This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.\"),\n Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found: diag(2879, 1 /* Error */, \"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879\", \"Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.\"),\n Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert: diag(2880, 1 /* Error */, \"Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert_2880\", \"Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'.\"),\n This_expression_is_never_nullish: diag(2881, 1 /* Error */, \"This_expression_is_never_nullish_2881\", \"This expression is never nullish.\"),\n Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, \"Import_declaration_0_is_using_private_name_1_4000\", \"Import declaration '{0}' is using private name '{1}'.\"),\n Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, \"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\", \"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),\n Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, \"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\", \"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),\n Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4006, 1 /* Error */, \"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\", \"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),\n Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4008, 1 /* Error */, \"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\", \"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),\n Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4010, 1 /* Error */, \"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\", \"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),\n Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4012, 1 /* Error */, \"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\", \"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),\n Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4014, 1 /* Error */, \"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\", \"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),\n Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4016, 1 /* Error */, \"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\", \"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),\n Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4019, 1 /* Error */, \"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\", \"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),\n extends_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4020, 1 /* Error */, \"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\", \"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),\n extends_clause_of_exported_class_has_or_is_using_private_name_0: diag(4021, 1 /* Error */, \"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021\", \"'extends' clause of exported class has or is using private name '{0}'.\"),\n extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: diag(4022, 1 /* Error */, \"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\", \"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),\n Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4023, 1 /* Error */, \"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\", \"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),\n Exported_variable_0_has_or_is_using_name_1_from_private_module_2: diag(4024, 1 /* Error */, \"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\", \"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),\n Exported_variable_0_has_or_is_using_private_name_1: diag(4025, 1 /* Error */, \"Exported_variable_0_has_or_is_using_private_name_1_4025\", \"Exported variable '{0}' has or is using private name '{1}'.\"),\n Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4026, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\", \"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4027, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\", \"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4028, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\", \"Public static property '{0}' of exported class has or is using private name '{1}'.\"),\n Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4029, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\", \"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4030, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\", \"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n Public_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4031, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\", \"Public property '{0}' of exported class has or is using private name '{1}'.\"),\n Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4032, 1 /* Error */, \"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\", \"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),\n Property_0_of_exported_interface_has_or_is_using_private_name_1: diag(4033, 1 /* Error */, \"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\", \"Property '{0}' of exported interface has or is using private name '{1}'.\"),\n Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4034, 1 /* Error */, \"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\", \"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4035, 1 /* Error */, \"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\", \"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),\n Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4036, 1 /* Error */, \"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\", \"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4037, 1 /* Error */, \"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\", \"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),\n Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4038, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\", \"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4039, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\", \"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4040, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\", \"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),\n Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4041, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\", \"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4042, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\", \"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4043, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\", \"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),\n Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4044, 1 /* Error */, \"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\", \"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4045, 1 /* Error */, \"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\", \"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),\n Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4046, 1 /* Error */, \"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\", \"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4047, 1 /* Error */, \"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\", \"Return type of call signature from exported interface has or is using private name '{0}'.\"),\n Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4048, 1 /* Error */, \"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\", \"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4049, 1 /* Error */, \"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\", \"Return type of index signature from exported interface has or is using private name '{0}'.\"),\n Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4050, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\", \"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),\n Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4051, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\", \"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: diag(4052, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\", \"Return type of public static method from exported class has or is using private name '{0}'.\"),\n Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4053, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\", \"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),\n Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4054, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\", \"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: diag(4055, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\", \"Return type of public method from exported class has or is using private name '{0}'.\"),\n Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4056, 1 /* Error */, \"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\", \"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: diag(4057, 1 /* Error */, \"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\", \"Return type of method from exported interface has or is using private name '{0}'.\"),\n Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4058, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\", \"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),\n Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: diag(4059, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\", \"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),\n Return_type_of_exported_function_has_or_is_using_private_name_0: diag(4060, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\", \"Return type of exported function has or is using private name '{0}'.\"),\n Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4061, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\", \"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4062, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\", \"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: diag(4063, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\", \"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),\n Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4064, 1 /* Error */, \"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\", \"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4065, 1 /* Error */, \"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\", \"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),\n Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4066, 1 /* Error */, \"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\", \"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4067, 1 /* Error */, \"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\", \"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),\n Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4068, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\", \"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4069, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\", \"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4070, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\", \"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),\n Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4071, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\", \"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4072, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\", \"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4073, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\", \"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),\n Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4074, 1 /* Error */, \"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\", \"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4075, 1 /* Error */, \"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\", \"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),\n Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4076, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\", \"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),\n Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: diag(4077, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\", \"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4078, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\", \"Parameter '{0}' of exported function has or is using private name '{1}'.\"),\n Exported_type_alias_0_has_or_is_using_private_name_1: diag(4081, 1 /* Error */, \"Exported_type_alias_0_has_or_is_using_private_name_1_4081\", \"Exported type alias '{0}' has or is using private name '{1}'.\"),\n Default_export_of_the_module_has_or_is_using_private_name_0: diag(4082, 1 /* Error */, \"Default_export_of_the_module_has_or_is_using_private_name_0_4082\", \"Default export of the module has or is using private name '{0}'.\"),\n Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1: diag(4083, 1 /* Error */, \"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\", \"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),\n Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2: diag(4084, 1 /* Error */, \"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084\", \"Exported type alias '{0}' has or is using private name '{1}' from module {2}.\"),\n Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1: diag(4085, 1 /* Error */, \"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085\", \"Extends clause for inferred type '{0}' has or is using private name '{1}'.\"),\n Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4091, 1 /* Error */, \"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\", \"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4092, 1 /* Error */, \"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\", \"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),\n Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected: diag(4094, 1 /* Error */, \"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094\", \"Property '{0}' of exported anonymous class type may not be private or protected.\"),\n Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4095, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\", \"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4096, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\", \"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n Public_static_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4097, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\", \"Public static method '{0}' of exported class has or is using private name '{1}'.\"),\n Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4098, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\", \"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4099, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\", \"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n Public_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4100, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\", \"Public method '{0}' of exported class has or is using private name '{1}'.\"),\n Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4101, 1 /* Error */, \"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\", \"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),\n Method_0_of_exported_interface_has_or_is_using_private_name_1: diag(4102, 1 /* Error */, \"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\", \"Method '{0}' of exported interface has or is using private name '{1}'.\"),\n Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1: diag(4103, 1 /* Error */, \"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\", \"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),\n The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1: diag(4104, 1 /* Error */, \"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\", \"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),\n Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter: diag(4105, 1 /* Error */, \"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\", \"Private or protected member '{0}' cannot be accessed on a type parameter.\"),\n Parameter_0_of_accessor_has_or_is_using_private_name_1: diag(4106, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\", \"Parameter '{0}' of accessor has or is using private name '{1}'.\"),\n Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2: diag(4107, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\", \"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),\n Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4108, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\", \"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),\n Type_arguments_for_0_circularly_reference_themselves: diag(4109, 1 /* Error */, \"Type_arguments_for_0_circularly_reference_themselves_4109\", \"Type arguments for '{0}' circularly reference themselves.\"),\n Tuple_type_arguments_circularly_reference_themselves: diag(4110, 1 /* Error */, \"Tuple_type_arguments_circularly_reference_themselves_4110\", \"Tuple type arguments circularly reference themselves.\"),\n Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0: diag(4111, 1 /* Error */, \"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111\", \"Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].\"),\n This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: diag(4112, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112\", \"This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.\"),\n This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: diag(4113, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113\", \"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.\"),\n This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: diag(4114, 1 /* Error */, \"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114\", \"This member must have an 'override' modifier because it overrides a member in the base class '{0}'.\"),\n This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: diag(4115, 1 /* Error */, \"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115\", \"This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.\"),\n This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: diag(4116, 1 /* Error */, \"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116\", \"This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.\"),\n This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4117, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117\", \"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),\n The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized: diag(4118, 1 /* Error */, \"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118\", \"The type of this node cannot be serialized because its property '{0}' cannot be serialized.\"),\n This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4119, 1 /* Error */, \"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119\", \"This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),\n This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4120, 1 /* Error */, \"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120\", \"This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),\n This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: diag(4121, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121\", \"This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.\"),\n This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: diag(4122, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122\", \"This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.\"),\n This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4123, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123\", \"This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),\n Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(4124, 1 /* Error */, \"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124\", \"Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),\n Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given: diag(4125, 1 /* Error */, \"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125\", \"Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.\"),\n One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value: diag(4126, 1 /* Error */, \"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126\", \"One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.\"),\n This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic: diag(4127, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic_4127\", \"This member cannot have an 'override' modifier because its name is dynamic.\"),\n This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic: diag(4128, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic_4128\", \"This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic.\"),\n The_current_host_does_not_support_the_0_option: diag(5001, 1 /* Error */, \"The_current_host_does_not_support_the_0_option_5001\", \"The current host does not support the '{0}' option.\"),\n Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, 1 /* Error */, \"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\", \"Cannot find the common subdirectory path for the input files.\"),\n File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5010, 1 /* Error */, \"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\", \"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),\n Cannot_read_file_0_Colon_1: diag(5012, 1 /* Error */, \"Cannot_read_file_0_Colon_1_5012\", \"Cannot read file '{0}': {1}.\"),\n Unknown_compiler_option_0: diag(5023, 1 /* Error */, \"Unknown_compiler_option_0_5023\", \"Unknown compiler option '{0}'.\"),\n Compiler_option_0_requires_a_value_of_type_1: diag(5024, 1 /* Error */, \"Compiler_option_0_requires_a_value_of_type_1_5024\", \"Compiler option '{0}' requires a value of type {1}.\"),\n Unknown_compiler_option_0_Did_you_mean_1: diag(5025, 1 /* Error */, \"Unknown_compiler_option_0_Did_you_mean_1_5025\", \"Unknown compiler option '{0}'. Did you mean '{1}'?\"),\n Could_not_write_file_0_Colon_1: diag(5033, 1 /* Error */, \"Could_not_write_file_0_Colon_1_5033\", \"Could not write file '{0}': {1}.\"),\n Option_project_cannot_be_mixed_with_source_files_on_a_command_line: diag(5042, 1 /* Error */, \"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\", \"Option 'project' cannot be mixed with source files on a command line.\"),\n Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: diag(5047, 1 /* Error */, \"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\", \"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),\n Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: diag(5051, 1 /* Error */, \"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\", \"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),\n Option_0_cannot_be_specified_without_specifying_option_1: diag(5052, 1 /* Error */, \"Option_0_cannot_be_specified_without_specifying_option_1_5052\", \"Option '{0}' cannot be specified without specifying option '{1}'.\"),\n Option_0_cannot_be_specified_with_option_1: diag(5053, 1 /* Error */, \"Option_0_cannot_be_specified_with_option_1_5053\", \"Option '{0}' cannot be specified with option '{1}'.\"),\n A_tsconfig_json_file_is_already_defined_at_Colon_0: diag(5054, 1 /* Error */, \"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\", \"A 'tsconfig.json' file is already defined at: '{0}'.\"),\n Cannot_write_file_0_because_it_would_overwrite_input_file: diag(5055, 1 /* Error */, \"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\", \"Cannot write file '{0}' because it would overwrite input file.\"),\n Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: diag(5056, 1 /* Error */, \"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\", \"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),\n Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: diag(5057, 1 /* Error */, \"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\", \"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),\n The_specified_path_does_not_exist_Colon_0: diag(5058, 1 /* Error */, \"The_specified_path_does_not_exist_Colon_0_5058\", \"The specified path does not exist: '{0}'.\"),\n Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: diag(5059, 1 /* Error */, \"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\", \"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),\n Pattern_0_can_have_at_most_one_Asterisk_character: diag(5061, 1 /* Error */, \"Pattern_0_can_have_at_most_one_Asterisk_character_5061\", \"Pattern '{0}' can have at most one '*' character.\"),\n Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character: diag(5062, 1 /* Error */, \"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\", \"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),\n Substitutions_for_pattern_0_should_be_an_array: diag(5063, 1 /* Error */, \"Substitutions_for_pattern_0_should_be_an_array_5063\", \"Substitutions for pattern '{0}' should be an array.\"),\n Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: diag(5064, 1 /* Error */, \"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\", \"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),\n File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5065, 1 /* Error */, \"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\", \"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),\n Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: diag(5066, 1 /* Error */, \"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\", \"Substitutions for pattern '{0}' shouldn't be an empty array.\"),\n Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(5067, 1 /* Error */, \"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\", \"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),\n Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: diag(5068, 1 /* Error */, \"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\", \"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),\n Option_0_cannot_be_specified_without_specifying_option_1_or_option_2: diag(5069, 1 /* Error */, \"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\", \"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),\n Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic: diag(5070, 1 /* Error */, \"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070\", \"Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.\"),\n Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd: diag(5071, 1 /* Error */, \"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071\", \"Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.\"),\n Unknown_build_option_0: diag(5072, 1 /* Error */, \"Unknown_build_option_0_5072\", \"Unknown build option '{0}'.\"),\n Build_option_0_requires_a_value_of_type_1: diag(5073, 1 /* Error */, \"Build_option_0_requires_a_value_of_type_1_5073\", \"Build option '{0}' requires a value of type {1}.\"),\n Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified: diag(5074, 1 /* Error */, \"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\", \"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.\"),\n _0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2: diag(5075, 1 /* Error */, \"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\", \"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),\n _0_and_1_operations_cannot_be_mixed_without_parentheses: diag(5076, 1 /* Error */, \"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\", \"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),\n Unknown_build_option_0_Did_you_mean_1: diag(5077, 1 /* Error */, \"Unknown_build_option_0_Did_you_mean_1_5077\", \"Unknown build option '{0}'. Did you mean '{1}'?\"),\n Unknown_watch_option_0: diag(5078, 1 /* Error */, \"Unknown_watch_option_0_5078\", \"Unknown watch option '{0}'.\"),\n Unknown_watch_option_0_Did_you_mean_1: diag(5079, 1 /* Error */, \"Unknown_watch_option_0_Did_you_mean_1_5079\", \"Unknown watch option '{0}'. Did you mean '{1}'?\"),\n Watch_option_0_requires_a_value_of_type_1: diag(5080, 1 /* Error */, \"Watch_option_0_requires_a_value_of_type_1_5080\", \"Watch option '{0}' requires a value of type {1}.\"),\n Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: diag(5081, 1 /* Error */, \"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081\", \"Cannot find a tsconfig.json file at the current directory: {0}.\"),\n _0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: diag(5082, 1 /* Error */, \"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082\", \"'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.\"),\n Cannot_read_file_0: diag(5083, 1 /* Error */, \"Cannot_read_file_0_5083\", \"Cannot read file '{0}'.\"),\n A_tuple_member_cannot_be_both_optional_and_rest: diag(5085, 1 /* Error */, \"A_tuple_member_cannot_be_both_optional_and_rest_5085\", \"A tuple member cannot be both optional and rest.\"),\n A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type: diag(5086, 1 /* Error */, \"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086\", \"A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.\"),\n A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type: diag(5087, 1 /* Error */, \"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087\", \"A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.\"),\n The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: diag(5088, 1 /* Error */, \"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088\", \"The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.\"),\n Option_0_cannot_be_specified_when_option_jsx_is_1: diag(5089, 1 /* Error */, \"Option_0_cannot_be_specified_when_option_jsx_is_1_5089\", \"Option '{0}' cannot be specified when option 'jsx' is '{1}'.\"),\n Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash: diag(5090, 1 /* Error */, \"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090\", \"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\"),\n Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled: diag(5091, 1 /* Error */, \"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091\", \"Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.\"),\n The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1 /* Error */, \"The_root_value_of_a_0_file_must_be_an_object_5092\", \"The root value of a '{0}' file must be an object.\"),\n Compiler_option_0_may_only_be_used_with_build: diag(5093, 1 /* Error */, \"Compiler_option_0_may_only_be_used_with_build_5093\", \"Compiler option '--{0}' may only be used with '--build'.\"),\n Compiler_option_0_may_not_be_used_with_build: diag(5094, 1 /* Error */, \"Compiler_option_0_may_not_be_used_with_build_5094\", \"Compiler option '--{0}' may not be used with '--build'.\"),\n Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later: diag(5095, 1 /* Error */, \"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095\", \"Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later.\"),\n Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, \"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096\", \"Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set.\"),\n An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1 /* Error */, \"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097\", \"An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.\"),\n Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1 /* Error */, \"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098\", \"Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.\"),\n Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1 /* Error */, \"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101\", `Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.`),\n Option_0_has_been_removed_Please_remove_it_from_your_configuration: diag(5102, 1 /* Error */, \"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102\", \"Option '{0}' has been removed. Please remove it from your configuration.\"),\n Invalid_value_for_ignoreDeprecations: diag(5103, 1 /* Error */, \"Invalid_value_for_ignoreDeprecations_5103\", \"Invalid value for '--ignoreDeprecations'.\"),\n Option_0_is_redundant_and_cannot_be_specified_with_option_1: diag(5104, 1 /* Error */, \"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104\", \"Option '{0}' is redundant and cannot be specified with option '{1}'.\"),\n Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System: diag(5105, 1 /* Error */, \"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105\", \"Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.\"),\n Use_0_instead: diag(5106, 3 /* Message */, \"Use_0_instead_5106\", \"Use '{0}' instead.\"),\n Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error: diag(5107, 1 /* Error */, \"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107\", `Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.`),\n Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: diag(5108, 1 /* Error */, \"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108\", \"Option '{0}={1}' has been removed. Please remove it from your configuration.\"),\n Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1: diag(5109, 1 /* Error */, \"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109\", \"Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.\"),\n Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1: diag(5110, 1 /* Error */, \"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110\", \"Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.\"),\n Generates_a_sourcemap_for_each_corresponding_d_ts_file: diag(6e3, 3 /* Message */, \"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\", \"Generates a sourcemap for each corresponding '.d.ts' file.\"),\n Concatenate_and_emit_output_to_single_file: diag(6001, 3 /* Message */, \"Concatenate_and_emit_output_to_single_file_6001\", \"Concatenate and emit output to single file.\"),\n Generates_corresponding_d_ts_file: diag(6002, 3 /* Message */, \"Generates_corresponding_d_ts_file_6002\", \"Generates corresponding '.d.ts' file.\"),\n Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: diag(6004, 3 /* Message */, \"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\", \"Specify the location where debugger should locate TypeScript files instead of source locations.\"),\n Watch_input_files: diag(6005, 3 /* Message */, \"Watch_input_files_6005\", \"Watch input files.\"),\n Redirect_output_structure_to_the_directory: diag(6006, 3 /* Message */, \"Redirect_output_structure_to_the_directory_6006\", \"Redirect output structure to the directory.\"),\n Do_not_erase_const_enum_declarations_in_generated_code: diag(6007, 3 /* Message */, \"Do_not_erase_const_enum_declarations_in_generated_code_6007\", \"Do not erase const enum declarations in generated code.\"),\n Do_not_emit_outputs_if_any_errors_were_reported: diag(6008, 3 /* Message */, \"Do_not_emit_outputs_if_any_errors_were_reported_6008\", \"Do not emit outputs if any errors were reported.\"),\n Do_not_emit_comments_to_output: diag(6009, 3 /* Message */, \"Do_not_emit_comments_to_output_6009\", \"Do not emit comments to output.\"),\n Do_not_emit_outputs: diag(6010, 3 /* Message */, \"Do_not_emit_outputs_6010\", \"Do not emit outputs.\"),\n Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: diag(6011, 3 /* Message */, \"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\", \"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),\n Skip_type_checking_of_declaration_files: diag(6012, 3 /* Message */, \"Skip_type_checking_of_declaration_files_6012\", \"Skip type checking of declaration files.\"),\n Do_not_resolve_the_real_path_of_symlinks: diag(6013, 3 /* Message */, \"Do_not_resolve_the_real_path_of_symlinks_6013\", \"Do not resolve the real path of symlinks.\"),\n Only_emit_d_ts_declaration_files: diag(6014, 3 /* Message */, \"Only_emit_d_ts_declaration_files_6014\", \"Only emit '.d.ts' declaration files.\"),\n Specify_ECMAScript_target_version: diag(6015, 3 /* Message */, \"Specify_ECMAScript_target_version_6015\", \"Specify ECMAScript target version.\"),\n Specify_module_code_generation: diag(6016, 3 /* Message */, \"Specify_module_code_generation_6016\", \"Specify module code generation.\"),\n Print_this_message: diag(6017, 3 /* Message */, \"Print_this_message_6017\", \"Print this message.\"),\n Print_the_compiler_s_version: diag(6019, 3 /* Message */, \"Print_the_compiler_s_version_6019\", \"Print the compiler's version.\"),\n Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json: diag(6020, 3 /* Message */, \"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\", \"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),\n Syntax_Colon_0: diag(6023, 3 /* Message */, \"Syntax_Colon_0_6023\", \"Syntax: {0}\"),\n options: diag(6024, 3 /* Message */, \"options_6024\", \"options\"),\n file: diag(6025, 3 /* Message */, \"file_6025\", \"file\"),\n Examples_Colon_0: diag(6026, 3 /* Message */, \"Examples_Colon_0_6026\", \"Examples: {0}\"),\n Options_Colon: diag(6027, 3 /* Message */, \"Options_Colon_6027\", \"Options:\"),\n Version_0: diag(6029, 3 /* Message */, \"Version_0_6029\", \"Version {0}\"),\n Insert_command_line_options_and_files_from_a_file: diag(6030, 3 /* Message */, \"Insert_command_line_options_and_files_from_a_file_6030\", \"Insert command line options and files from a file.\"),\n Starting_compilation_in_watch_mode: diag(6031, 3 /* Message */, \"Starting_compilation_in_watch_mode_6031\", \"Starting compilation in watch mode...\"),\n File_change_detected_Starting_incremental_compilation: diag(6032, 3 /* Message */, \"File_change_detected_Starting_incremental_compilation_6032\", \"File change detected. Starting incremental compilation...\"),\n KIND: diag(6034, 3 /* Message */, \"KIND_6034\", \"KIND\"),\n FILE: diag(6035, 3 /* Message */, \"FILE_6035\", \"FILE\"),\n VERSION: diag(6036, 3 /* Message */, \"VERSION_6036\", \"VERSION\"),\n LOCATION: diag(6037, 3 /* Message */, \"LOCATION_6037\", \"LOCATION\"),\n DIRECTORY: diag(6038, 3 /* Message */, \"DIRECTORY_6038\", \"DIRECTORY\"),\n STRATEGY: diag(6039, 3 /* Message */, \"STRATEGY_6039\", \"STRATEGY\"),\n FILE_OR_DIRECTORY: diag(6040, 3 /* Message */, \"FILE_OR_DIRECTORY_6040\", \"FILE OR DIRECTORY\"),\n Errors_Files: diag(6041, 3 /* Message */, \"Errors_Files_6041\", \"Errors Files\"),\n Generates_corresponding_map_file: diag(6043, 3 /* Message */, \"Generates_corresponding_map_file_6043\", \"Generates corresponding '.map' file.\"),\n Compiler_option_0_expects_an_argument: diag(6044, 1 /* Error */, \"Compiler_option_0_expects_an_argument_6044\", \"Compiler option '{0}' expects an argument.\"),\n Unterminated_quoted_string_in_response_file_0: diag(6045, 1 /* Error */, \"Unterminated_quoted_string_in_response_file_0_6045\", \"Unterminated quoted string in response file '{0}'.\"),\n Argument_for_0_option_must_be_Colon_1: diag(6046, 1 /* Error */, \"Argument_for_0_option_must_be_Colon_1_6046\", \"Argument for '{0}' option must be: {1}.\"),\n Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: diag(6048, 1 /* Error */, \"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\", \"Locale must be of the form or -. For example '{0}' or '{1}'.\"),\n Unable_to_open_file_0: diag(6050, 1 /* Error */, \"Unable_to_open_file_0_6050\", \"Unable to open file '{0}'.\"),\n Corrupted_locale_file_0: diag(6051, 1 /* Error */, \"Corrupted_locale_file_0_6051\", \"Corrupted locale file {0}.\"),\n Raise_error_on_expressions_and_declarations_with_an_implied_any_type: diag(6052, 3 /* Message */, \"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\", \"Raise error on expressions and declarations with an implied 'any' type.\"),\n File_0_not_found: diag(6053, 1 /* Error */, \"File_0_not_found_6053\", \"File '{0}' not found.\"),\n File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1: diag(6054, 1 /* Error */, \"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054\", \"File '{0}' has an unsupported extension. The only supported extensions are {1}.\"),\n Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: diag(6055, 3 /* Message */, \"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\", \"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),\n Do_not_emit_declarations_for_code_that_has_an_internal_annotation: diag(6056, 3 /* Message */, \"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\", \"Do not emit declarations for code that has an '@internal' annotation.\"),\n Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: diag(6058, 3 /* Message */, \"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\", \"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),\n File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: diag(6059, 1 /* Error */, \"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\", \"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),\n Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: diag(6060, 3 /* Message */, \"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\", \"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),\n NEWLINE: diag(6061, 3 /* Message */, \"NEWLINE_6061\", \"NEWLINE\"),\n Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line: diag(6064, 1 /* Error */, \"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064\", \"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.\"),\n Enables_experimental_support_for_ES7_decorators: diag(6065, 3 /* Message */, \"Enables_experimental_support_for_ES7_decorators_6065\", \"Enables experimental support for ES7 decorators.\"),\n Enables_experimental_support_for_emitting_type_metadata_for_decorators: diag(6066, 3 /* Message */, \"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\", \"Enables experimental support for emitting type metadata for decorators.\"),\n Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: diag(6070, 3 /* Message */, \"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\", \"Initializes a TypeScript project and creates a tsconfig.json file.\"),\n Successfully_created_a_tsconfig_json_file: diag(6071, 3 /* Message */, \"Successfully_created_a_tsconfig_json_file_6071\", \"Successfully created a tsconfig.json file.\"),\n Suppress_excess_property_checks_for_object_literals: diag(6072, 3 /* Message */, \"Suppress_excess_property_checks_for_object_literals_6072\", \"Suppress excess property checks for object literals.\"),\n Stylize_errors_and_messages_using_color_and_context_experimental: diag(6073, 3 /* Message */, \"Stylize_errors_and_messages_using_color_and_context_experimental_6073\", \"Stylize errors and messages using color and context (experimental).\"),\n Do_not_report_errors_on_unused_labels: diag(6074, 3 /* Message */, \"Do_not_report_errors_on_unused_labels_6074\", \"Do not report errors on unused labels.\"),\n Report_error_when_not_all_code_paths_in_function_return_a_value: diag(6075, 3 /* Message */, \"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\", \"Report error when not all code paths in function return a value.\"),\n Report_errors_for_fallthrough_cases_in_switch_statement: diag(6076, 3 /* Message */, \"Report_errors_for_fallthrough_cases_in_switch_statement_6076\", \"Report errors for fallthrough cases in switch statement.\"),\n Do_not_report_errors_on_unreachable_code: diag(6077, 3 /* Message */, \"Do_not_report_errors_on_unreachable_code_6077\", \"Do not report errors on unreachable code.\"),\n Disallow_inconsistently_cased_references_to_the_same_file: diag(6078, 3 /* Message */, \"Disallow_inconsistently_cased_references_to_the_same_file_6078\", \"Disallow inconsistently-cased references to the same file.\"),\n Specify_library_files_to_be_included_in_the_compilation: diag(6079, 3 /* Message */, \"Specify_library_files_to_be_included_in_the_compilation_6079\", \"Specify library files to be included in the compilation.\"),\n Specify_JSX_code_generation: diag(6080, 3 /* Message */, \"Specify_JSX_code_generation_6080\", \"Specify JSX code generation.\"),\n Only_amd_and_system_modules_are_supported_alongside_0: diag(6082, 1 /* Error */, \"Only_amd_and_system_modules_are_supported_alongside_0_6082\", \"Only 'amd' and 'system' modules are supported alongside --{0}.\"),\n Base_directory_to_resolve_non_absolute_module_names: diag(6083, 3 /* Message */, \"Base_directory_to_resolve_non_absolute_module_names_6083\", \"Base directory to resolve non-absolute module names.\"),\n Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit: diag(6084, 3 /* Message */, \"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\", \"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),\n Enable_tracing_of_the_name_resolution_process: diag(6085, 3 /* Message */, \"Enable_tracing_of_the_name_resolution_process_6085\", \"Enable tracing of the name resolution process.\"),\n Resolving_module_0_from_1: diag(6086, 3 /* Message */, \"Resolving_module_0_from_1_6086\", \"======== Resolving module '{0}' from '{1}'. ========\"),\n Explicitly_specified_module_resolution_kind_Colon_0: diag(6087, 3 /* Message */, \"Explicitly_specified_module_resolution_kind_Colon_0_6087\", \"Explicitly specified module resolution kind: '{0}'.\"),\n Module_resolution_kind_is_not_specified_using_0: diag(6088, 3 /* Message */, \"Module_resolution_kind_is_not_specified_using_0_6088\", \"Module resolution kind is not specified, using '{0}'.\"),\n Module_name_0_was_successfully_resolved_to_1: diag(6089, 3 /* Message */, \"Module_name_0_was_successfully_resolved_to_1_6089\", \"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),\n Module_name_0_was_not_resolved: diag(6090, 3 /* Message */, \"Module_name_0_was_not_resolved_6090\", \"======== Module name '{0}' was not resolved. ========\"),\n paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: diag(6091, 3 /* Message */, \"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\", \"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),\n Module_name_0_matched_pattern_1: diag(6092, 3 /* Message */, \"Module_name_0_matched_pattern_1_6092\", \"Module name '{0}', matched pattern '{1}'.\"),\n Trying_substitution_0_candidate_module_location_Colon_1: diag(6093, 3 /* Message */, \"Trying_substitution_0_candidate_module_location_Colon_1_6093\", \"Trying substitution '{0}', candidate module location: '{1}'.\"),\n Resolving_module_name_0_relative_to_base_url_1_2: diag(6094, 3 /* Message */, \"Resolving_module_name_0_relative_to_base_url_1_2_6094\", \"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),\n Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1: diag(6095, 3 /* Message */, \"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095\", \"Loading module as file / folder, candidate module location '{0}', target file types: {1}.\"),\n File_0_does_not_exist: diag(6096, 3 /* Message */, \"File_0_does_not_exist_6096\", \"File '{0}' does not exist.\"),\n File_0_exists_use_it_as_a_name_resolution_result: diag(6097, 3 /* Message */, \"File_0_exists_use_it_as_a_name_resolution_result_6097\", \"File '{0}' exists - use it as a name resolution result.\"),\n Loading_module_0_from_node_modules_folder_target_file_types_Colon_1: diag(6098, 3 /* Message */, \"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098\", \"Loading module '{0}' from 'node_modules' folder, target file types: {1}.\"),\n Found_package_json_at_0: diag(6099, 3 /* Message */, \"Found_package_json_at_0_6099\", \"Found 'package.json' at '{0}'.\"),\n package_json_does_not_have_a_0_field: diag(6100, 3 /* Message */, \"package_json_does_not_have_a_0_field_6100\", \"'package.json' does not have a '{0}' field.\"),\n package_json_has_0_field_1_that_references_2: diag(6101, 3 /* Message */, \"package_json_has_0_field_1_that_references_2_6101\", \"'package.json' has '{0}' field '{1}' that references '{2}'.\"),\n Allow_javascript_files_to_be_compiled: diag(6102, 3 /* Message */, \"Allow_javascript_files_to_be_compiled_6102\", \"Allow javascript files to be compiled.\"),\n Checking_if_0_is_the_longest_matching_prefix_for_1_2: diag(6104, 3 /* Message */, \"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\", \"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),\n Expected_type_of_0_field_in_package_json_to_be_1_got_2: diag(6105, 3 /* Message */, \"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\", \"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),\n baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: diag(6106, 3 /* Message */, \"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\", \"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),\n rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: diag(6107, 3 /* Message */, \"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\", \"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),\n Longest_matching_prefix_for_0_is_1: diag(6108, 3 /* Message */, \"Longest_matching_prefix_for_0_is_1_6108\", \"Longest matching prefix for '{0}' is '{1}'.\"),\n Loading_0_from_the_root_dir_1_candidate_location_2: diag(6109, 3 /* Message */, \"Loading_0_from_the_root_dir_1_candidate_location_2_6109\", \"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),\n Trying_other_entries_in_rootDirs: diag(6110, 3 /* Message */, \"Trying_other_entries_in_rootDirs_6110\", \"Trying other entries in 'rootDirs'.\"),\n Module_resolution_using_rootDirs_has_failed: diag(6111, 3 /* Message */, \"Module_resolution_using_rootDirs_has_failed_6111\", \"Module resolution using 'rootDirs' has failed.\"),\n Do_not_emit_use_strict_directives_in_module_output: diag(6112, 3 /* Message */, \"Do_not_emit_use_strict_directives_in_module_output_6112\", \"Do not emit 'use strict' directives in module output.\"),\n Enable_strict_null_checks: diag(6113, 3 /* Message */, \"Enable_strict_null_checks_6113\", \"Enable strict null checks.\"),\n Unknown_option_excludes_Did_you_mean_exclude: diag(6114, 1 /* Error */, \"Unknown_option_excludes_Did_you_mean_exclude_6114\", \"Unknown option 'excludes'. Did you mean 'exclude'?\"),\n Raise_error_on_this_expressions_with_an_implied_any_type: diag(6115, 3 /* Message */, \"Raise_error_on_this_expressions_with_an_implied_any_type_6115\", \"Raise error on 'this' expressions with an implied 'any' type.\"),\n Resolving_type_reference_directive_0_containing_file_1_root_directory_2: diag(6116, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\", \"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),\n Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: diag(6119, 3 /* Message */, \"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\", \"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),\n Type_reference_directive_0_was_not_resolved: diag(6120, 3 /* Message */, \"Type_reference_directive_0_was_not_resolved_6120\", \"======== Type reference directive '{0}' was not resolved. ========\"),\n Resolving_with_primary_search_path_0: diag(6121, 3 /* Message */, \"Resolving_with_primary_search_path_0_6121\", \"Resolving with primary search path '{0}'.\"),\n Root_directory_cannot_be_determined_skipping_primary_search_paths: diag(6122, 3 /* Message */, \"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\", \"Root directory cannot be determined, skipping primary search paths.\"),\n Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: diag(6123, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\", \"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),\n Type_declaration_files_to_be_included_in_compilation: diag(6124, 3 /* Message */, \"Type_declaration_files_to_be_included_in_compilation_6124\", \"Type declaration files to be included in compilation.\"),\n Looking_up_in_node_modules_folder_initial_location_0: diag(6125, 3 /* Message */, \"Looking_up_in_node_modules_folder_initial_location_0_6125\", \"Looking up in 'node_modules' folder, initial location '{0}'.\"),\n Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: diag(6126, 3 /* Message */, \"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\", \"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),\n Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: diag(6127, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\", \"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),\n Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: diag(6128, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\", \"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),\n Resolving_real_path_for_0_result_1: diag(6130, 3 /* Message */, \"Resolving_real_path_for_0_result_1_6130\", \"Resolving real path for '{0}', result '{1}'.\"),\n Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: diag(6131, 1 /* Error */, \"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\", \"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),\n File_name_0_has_a_1_extension_stripping_it: diag(6132, 3 /* Message */, \"File_name_0_has_a_1_extension_stripping_it_6132\", \"File name '{0}' has a '{1}' extension - stripping it.\"),\n _0_is_declared_but_its_value_is_never_read: diag(\n 6133,\n 1 /* Error */,\n \"_0_is_declared_but_its_value_is_never_read_6133\",\n \"'{0}' is declared but its value is never read.\",\n /*reportsUnnecessary*/\n true\n ),\n Report_errors_on_unused_locals: diag(6134, 3 /* Message */, \"Report_errors_on_unused_locals_6134\", \"Report errors on unused locals.\"),\n Report_errors_on_unused_parameters: diag(6135, 3 /* Message */, \"Report_errors_on_unused_parameters_6135\", \"Report errors on unused parameters.\"),\n The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: diag(6136, 3 /* Message */, \"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\", \"The maximum dependency depth to search under node_modules and load JavaScript files.\"),\n Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1: diag(6137, 1 /* Error */, \"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\", \"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),\n Property_0_is_declared_but_its_value_is_never_read: diag(\n 6138,\n 1 /* Error */,\n \"Property_0_is_declared_but_its_value_is_never_read_6138\",\n \"Property '{0}' is declared but its value is never read.\",\n /*reportsUnnecessary*/\n true\n ),\n Import_emit_helpers_from_tslib: diag(6139, 3 /* Message */, \"Import_emit_helpers_from_tslib_6139\", \"Import emit helpers from 'tslib'.\"),\n Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: diag(6140, 1 /* Error */, \"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\", \"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),\n Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: diag(6141, 3 /* Message */, \"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\", 'Parse in strict mode and emit \"use strict\" for each source file.'),\n Module_0_was_resolved_to_1_but_jsx_is_not_set: diag(6142, 1 /* Error */, \"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\", \"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),\n Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: diag(6144, 3 /* Message */, \"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\", \"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),\n Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: diag(6146, 3 /* Message */, \"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\", \"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),\n Resolution_for_module_0_was_found_in_cache_from_location_1: diag(6147, 3 /* Message */, \"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\", \"Resolution for module '{0}' was found in cache from location '{1}'.\"),\n Directory_0_does_not_exist_skipping_all_lookups_in_it: diag(6148, 3 /* Message */, \"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\", \"Directory '{0}' does not exist, skipping all lookups in it.\"),\n Show_diagnostic_information: diag(6149, 3 /* Message */, \"Show_diagnostic_information_6149\", \"Show diagnostic information.\"),\n Show_verbose_diagnostic_information: diag(6150, 3 /* Message */, \"Show_verbose_diagnostic_information_6150\", \"Show verbose diagnostic information.\"),\n Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file: diag(6151, 3 /* Message */, \"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\", \"Emit a single file with source maps instead of having a separate file.\"),\n Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set: diag(6152, 3 /* Message */, \"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\", \"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),\n Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule: diag(6153, 3 /* Message */, \"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\", \"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),\n Print_names_of_generated_files_part_of_the_compilation: diag(6154, 3 /* Message */, \"Print_names_of_generated_files_part_of_the_compilation_6154\", \"Print names of generated files part of the compilation.\"),\n Print_names_of_files_part_of_the_compilation: diag(6155, 3 /* Message */, \"Print_names_of_files_part_of_the_compilation_6155\", \"Print names of files part of the compilation.\"),\n The_locale_used_when_displaying_messages_to_the_user_e_g_en_us: diag(6156, 3 /* Message */, \"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\", \"The locale used when displaying messages to the user (e.g. 'en-us')\"),\n Do_not_generate_custom_helper_functions_like_extends_in_compiled_output: diag(6157, 3 /* Message */, \"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\", \"Do not generate custom helper functions like '__extends' in compiled output.\"),\n Do_not_include_the_default_library_file_lib_d_ts: diag(6158, 3 /* Message */, \"Do_not_include_the_default_library_file_lib_d_ts_6158\", \"Do not include the default library file (lib.d.ts).\"),\n Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files: diag(6159, 3 /* Message */, \"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\", \"Do not add triple-slash references or imported modules to the list of compiled files.\"),\n Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files: diag(6160, 3 /* Message */, \"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\", \"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),\n List_of_folders_to_include_type_definitions_from: diag(6161, 3 /* Message */, \"List_of_folders_to_include_type_definitions_from_6161\", \"List of folders to include type definitions from.\"),\n Disable_size_limitations_on_JavaScript_projects: diag(6162, 3 /* Message */, \"Disable_size_limitations_on_JavaScript_projects_6162\", \"Disable size limitations on JavaScript projects.\"),\n The_character_set_of_the_input_files: diag(6163, 3 /* Message */, \"The_character_set_of_the_input_files_6163\", \"The character set of the input files.\"),\n Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1: diag(6164, 3 /* Message */, \"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164\", \"Skipping module '{0}' that looks like an absolute URI, target file types: {1}.\"),\n Do_not_truncate_error_messages: diag(6165, 3 /* Message */, \"Do_not_truncate_error_messages_6165\", \"Do not truncate error messages.\"),\n Output_directory_for_generated_declaration_files: diag(6166, 3 /* Message */, \"Output_directory_for_generated_declaration_files_6166\", \"Output directory for generated declaration files.\"),\n A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl: diag(6167, 3 /* Message */, \"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\", \"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),\n List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime: diag(6168, 3 /* Message */, \"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\", \"List of root folders whose combined content represents the structure of the project at runtime.\"),\n Show_all_compiler_options: diag(6169, 3 /* Message */, \"Show_all_compiler_options_6169\", \"Show all compiler options.\"),\n Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file: diag(6170, 3 /* Message */, \"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\", \"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),\n Command_line_Options: diag(6171, 3 /* Message */, \"Command_line_Options_6171\", \"Command-line Options\"),\n Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5: diag(6179, 3 /* Message */, \"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179\", \"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.\"),\n Enable_all_strict_type_checking_options: diag(6180, 3 /* Message */, \"Enable_all_strict_type_checking_options_6180\", \"Enable all strict type-checking options.\"),\n Scoped_package_detected_looking_in_0: diag(6182, 3 /* Message */, \"Scoped_package_detected_looking_in_0_6182\", \"Scoped package detected, looking in '{0}'\"),\n Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6183, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),\n Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6184, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),\n Enable_strict_checking_of_function_types: diag(6186, 3 /* Message */, \"Enable_strict_checking_of_function_types_6186\", \"Enable strict checking of function types.\"),\n Enable_strict_checking_of_property_initialization_in_classes: diag(6187, 3 /* Message */, \"Enable_strict_checking_of_property_initialization_in_classes_6187\", \"Enable strict checking of property initialization in classes.\"),\n Numeric_separators_are_not_allowed_here: diag(6188, 1 /* Error */, \"Numeric_separators_are_not_allowed_here_6188\", \"Numeric separators are not allowed here.\"),\n Multiple_consecutive_numeric_separators_are_not_permitted: diag(6189, 1 /* Error */, \"Multiple_consecutive_numeric_separators_are_not_permitted_6189\", \"Multiple consecutive numeric separators are not permitted.\"),\n Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen: diag(6191, 3 /* Message */, \"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\", \"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),\n All_imports_in_import_declaration_are_unused: diag(\n 6192,\n 1 /* Error */,\n \"All_imports_in_import_declaration_are_unused_6192\",\n \"All imports in import declaration are unused.\",\n /*reportsUnnecessary*/\n true\n ),\n Found_1_error_Watching_for_file_changes: diag(6193, 3 /* Message */, \"Found_1_error_Watching_for_file_changes_6193\", \"Found 1 error. Watching for file changes.\"),\n Found_0_errors_Watching_for_file_changes: diag(6194, 3 /* Message */, \"Found_0_errors_Watching_for_file_changes_6194\", \"Found {0} errors. Watching for file changes.\"),\n Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols: diag(6195, 3 /* Message */, \"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\", \"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),\n _0_is_declared_but_never_used: diag(\n 6196,\n 1 /* Error */,\n \"_0_is_declared_but_never_used_6196\",\n \"'{0}' is declared but never used.\",\n /*reportsUnnecessary*/\n true\n ),\n Include_modules_imported_with_json_extension: diag(6197, 3 /* Message */, \"Include_modules_imported_with_json_extension_6197\", \"Include modules imported with '.json' extension\"),\n All_destructured_elements_are_unused: diag(\n 6198,\n 1 /* Error */,\n \"All_destructured_elements_are_unused_6198\",\n \"All destructured elements are unused.\",\n /*reportsUnnecessary*/\n true\n ),\n All_variables_are_unused: diag(\n 6199,\n 1 /* Error */,\n \"All_variables_are_unused_6199\",\n \"All variables are unused.\",\n /*reportsUnnecessary*/\n true\n ),\n Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0: diag(6200, 1 /* Error */, \"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\", \"Definitions of the following identifiers conflict with those in another file: {0}\"),\n Conflicts_are_in_this_file: diag(6201, 3 /* Message */, \"Conflicts_are_in_this_file_6201\", \"Conflicts are in this file.\"),\n Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0: diag(6202, 1 /* Error */, \"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\", \"Project references may not form a circular graph. Cycle detected: {0}\"),\n _0_was_also_declared_here: diag(6203, 3 /* Message */, \"_0_was_also_declared_here_6203\", \"'{0}' was also declared here.\"),\n and_here: diag(6204, 3 /* Message */, \"and_here_6204\", \"and here.\"),\n All_type_parameters_are_unused: diag(6205, 1 /* Error */, \"All_type_parameters_are_unused_6205\", \"All type parameters are unused.\"),\n package_json_has_a_typesVersions_field_with_version_specific_path_mappings: diag(6206, 3 /* Message */, \"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\", \"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),\n package_json_does_not_have_a_typesVersions_entry_that_matches_version_0: diag(6207, 3 /* Message */, \"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\", \"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),\n package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2: diag(6208, 3 /* Message */, \"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\", \"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),\n package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range: diag(6209, 3 /* Message */, \"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\", \"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),\n An_argument_for_0_was_not_provided: diag(6210, 3 /* Message */, \"An_argument_for_0_was_not_provided_6210\", \"An argument for '{0}' was not provided.\"),\n An_argument_matching_this_binding_pattern_was_not_provided: diag(6211, 3 /* Message */, \"An_argument_matching_this_binding_pattern_was_not_provided_6211\", \"An argument matching this binding pattern was not provided.\"),\n Did_you_mean_to_call_this_expression: diag(6212, 3 /* Message */, \"Did_you_mean_to_call_this_expression_6212\", \"Did you mean to call this expression?\"),\n Did_you_mean_to_use_new_with_this_expression: diag(6213, 3 /* Message */, \"Did_you_mean_to_use_new_with_this_expression_6213\", \"Did you mean to use 'new' with this expression?\"),\n Enable_strict_bind_call_and_apply_methods_on_functions: diag(6214, 3 /* Message */, \"Enable_strict_bind_call_and_apply_methods_on_functions_6214\", \"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),\n Using_compiler_options_of_project_reference_redirect_0: diag(6215, 3 /* Message */, \"Using_compiler_options_of_project_reference_redirect_0_6215\", \"Using compiler options of project reference redirect '{0}'.\"),\n Found_1_error: diag(6216, 3 /* Message */, \"Found_1_error_6216\", \"Found 1 error.\"),\n Found_0_errors: diag(6217, 3 /* Message */, \"Found_0_errors_6217\", \"Found {0} errors.\"),\n Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2: diag(6218, 3 /* Message */, \"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\", \"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),\n Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3: diag(6219, 3 /* Message */, \"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\", \"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),\n package_json_had_a_falsy_0_field: diag(6220, 3 /* Message */, \"package_json_had_a_falsy_0_field_6220\", \"'package.json' had a falsy '{0}' field.\"),\n Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects: diag(6221, 3 /* Message */, \"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\", \"Disable use of source files instead of declaration files from referenced projects.\"),\n Emit_class_fields_with_Define_instead_of_Set: diag(6222, 3 /* Message */, \"Emit_class_fields_with_Define_instead_of_Set_6222\", \"Emit class fields with Define instead of Set.\"),\n Generates_a_CPU_profile: diag(6223, 3 /* Message */, \"Generates_a_CPU_profile_6223\", \"Generates a CPU profile.\"),\n Disable_solution_searching_for_this_project: diag(6224, 3 /* Message */, \"Disable_solution_searching_for_this_project_6224\", \"Disable solution searching for this project.\"),\n Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory: diag(6225, 3 /* Message */, \"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225\", \"Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.\"),\n Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling: diag(6226, 3 /* Message */, \"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226\", \"Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.\"),\n Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize: diag(6227, 3 /* Message */, \"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227\", \"Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.\"),\n Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3: diag(6229, 1 /* Error */, \"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229\", \"Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.\"),\n Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line: diag(6230, 1 /* Error */, \"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230\", \"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.\"),\n Could_not_resolve_the_path_0_with_the_extensions_Colon_1: diag(6231, 1 /* Error */, \"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231\", \"Could not resolve the path '{0}' with the extensions: {1}.\"),\n Declaration_augments_declaration_in_another_file_This_cannot_be_serialized: diag(6232, 1 /* Error */, \"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232\", \"Declaration augments declaration in another file. This cannot be serialized.\"),\n This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file: diag(6233, 1 /* Error */, \"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233\", \"This is the declaration being augmented. Consider moving the augmenting declaration into the same file.\"),\n This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without: diag(6234, 1 /* Error */, \"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234\", \"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?\"),\n Disable_loading_referenced_projects: diag(6235, 3 /* Message */, \"Disable_loading_referenced_projects_6235\", \"Disable loading referenced projects.\"),\n Arguments_for_the_rest_parameter_0_were_not_provided: diag(6236, 1 /* Error */, \"Arguments_for_the_rest_parameter_0_were_not_provided_6236\", \"Arguments for the rest parameter '{0}' were not provided.\"),\n Generates_an_event_trace_and_a_list_of_types: diag(6237, 3 /* Message */, \"Generates_an_event_trace_and_a_list_of_types_6237\", \"Generates an event trace and a list of types.\"),\n Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react: diag(6238, 1 /* Error */, \"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238\", \"Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react\"),\n File_0_exists_according_to_earlier_cached_lookups: diag(6239, 3 /* Message */, \"File_0_exists_according_to_earlier_cached_lookups_6239\", \"File '{0}' exists according to earlier cached lookups.\"),\n File_0_does_not_exist_according_to_earlier_cached_lookups: diag(6240, 3 /* Message */, \"File_0_does_not_exist_according_to_earlier_cached_lookups_6240\", \"File '{0}' does not exist according to earlier cached lookups.\"),\n Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1: diag(6241, 3 /* Message */, \"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241\", \"Resolution for type reference directive '{0}' was found in cache from location '{1}'.\"),\n Resolving_type_reference_directive_0_containing_file_1: diag(6242, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_6242\", \"======== Resolving type reference directive '{0}', containing file '{1}'. ========\"),\n Interpret_optional_property_types_as_written_rather_than_adding_undefined: diag(6243, 3 /* Message */, \"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243\", \"Interpret optional property types as written, rather than adding 'undefined'.\"),\n Modules: diag(6244, 3 /* Message */, \"Modules_6244\", \"Modules\"),\n File_Management: diag(6245, 3 /* Message */, \"File_Management_6245\", \"File Management\"),\n Emit: diag(6246, 3 /* Message */, \"Emit_6246\", \"Emit\"),\n JavaScript_Support: diag(6247, 3 /* Message */, \"JavaScript_Support_6247\", \"JavaScript Support\"),\n Type_Checking: diag(6248, 3 /* Message */, \"Type_Checking_6248\", \"Type Checking\"),\n Editor_Support: diag(6249, 3 /* Message */, \"Editor_Support_6249\", \"Editor Support\"),\n Watch_and_Build_Modes: diag(6250, 3 /* Message */, \"Watch_and_Build_Modes_6250\", \"Watch and Build Modes\"),\n Compiler_Diagnostics: diag(6251, 3 /* Message */, \"Compiler_Diagnostics_6251\", \"Compiler Diagnostics\"),\n Interop_Constraints: diag(6252, 3 /* Message */, \"Interop_Constraints_6252\", \"Interop Constraints\"),\n Backwards_Compatibility: diag(6253, 3 /* Message */, \"Backwards_Compatibility_6253\", \"Backwards Compatibility\"),\n Language_and_Environment: diag(6254, 3 /* Message */, \"Language_and_Environment_6254\", \"Language and Environment\"),\n Projects: diag(6255, 3 /* Message */, \"Projects_6255\", \"Projects\"),\n Output_Formatting: diag(6256, 3 /* Message */, \"Output_Formatting_6256\", \"Output Formatting\"),\n Completeness: diag(6257, 3 /* Message */, \"Completeness_6257\", \"Completeness\"),\n _0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file: diag(6258, 1 /* Error */, \"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258\", \"'{0}' should be set inside the 'compilerOptions' object of the config json file\"),\n Found_1_error_in_0: diag(6259, 3 /* Message */, \"Found_1_error_in_0_6259\", \"Found 1 error in {0}\"),\n Found_0_errors_in_the_same_file_starting_at_Colon_1: diag(6260, 3 /* Message */, \"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260\", \"Found {0} errors in the same file, starting at: {1}\"),\n Found_0_errors_in_1_files: diag(6261, 3 /* Message */, \"Found_0_errors_in_1_files_6261\", \"Found {0} errors in {1} files.\"),\n File_name_0_has_a_1_extension_looking_up_2_instead: diag(6262, 3 /* Message */, \"File_name_0_has_a_1_extension_looking_up_2_instead_6262\", \"File name '{0}' has a '{1}' extension - looking up '{2}' instead.\"),\n Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set: diag(6263, 1 /* Error */, \"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263\", \"Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.\"),\n Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present: diag(6264, 3 /* Message */, \"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264\", \"Enable importing files with any extension, provided a declaration file is present.\"),\n Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder: diag(6265, 3 /* Message */, \"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265\", \"Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.\"),\n Option_0_can_only_be_specified_on_command_line: diag(6266, 1 /* Error */, \"Option_0_can_only_be_specified_on_command_line_6266\", \"Option '{0}' can only be specified on command line.\"),\n Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve: diag(6270, 3 /* Message */, \"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270\", \"Directory '{0}' has no containing package.json scope. Imports will not resolve.\"),\n Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6271, 3 /* Message */, \"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271\", \"Import specifier '{0}' does not exist in package.json scope at path '{1}'.\"),\n Invalid_import_specifier_0_has_no_possible_resolutions: diag(6272, 3 /* Message */, \"Invalid_import_specifier_0_has_no_possible_resolutions_6272\", \"Invalid import specifier '{0}' has no possible resolutions.\"),\n package_json_scope_0_has_no_imports_defined: diag(6273, 3 /* Message */, \"package_json_scope_0_has_no_imports_defined_6273\", \"package.json scope '{0}' has no imports defined.\"),\n package_json_scope_0_explicitly_maps_specifier_1_to_null: diag(6274, 3 /* Message */, \"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274\", \"package.json scope '{0}' explicitly maps specifier '{1}' to null.\"),\n package_json_scope_0_has_invalid_type_for_target_of_specifier_1: diag(6275, 3 /* Message */, \"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275\", \"package.json scope '{0}' has invalid type for target of specifier '{1}'\"),\n Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6276, 3 /* Message */, \"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276\", \"Export specifier '{0}' does not exist in package.json scope at path '{1}'.\"),\n Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update: diag(6277, 3 /* Message */, \"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277\", \"Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.\"),\n There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: diag(6278, 3 /* Message */, \"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278\", `There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.`),\n Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update: diag(6279, 3 /* Message */, \"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279\", \"Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.\"),\n There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler: diag(6280, 3 /* Message */, \"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280\", \"There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.\"),\n package_json_has_a_peerDependencies_field: diag(6281, 3 /* Message */, \"package_json_has_a_peerDependencies_field_6281\", \"'package.json' has a 'peerDependencies' field.\"),\n Found_peerDependency_0_with_1_version: diag(6282, 3 /* Message */, \"Found_peerDependency_0_with_1_version_6282\", \"Found peerDependency '{0}' with '{1}' version.\"),\n Failed_to_find_peerDependency_0: diag(6283, 3 /* Message */, \"Failed_to_find_peerDependency_0_6283\", \"Failed to find peerDependency '{0}'.\"),\n File_Layout: diag(6284, 3 /* Message */, \"File_Layout_6284\", \"File Layout\"),\n Environment_Settings: diag(6285, 3 /* Message */, \"Environment_Settings_6285\", \"Environment Settings\"),\n See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule: diag(6286, 3 /* Message */, \"See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule_6286\", \"See also https://aka.ms/tsconfig/module\"),\n For_nodejs_Colon: diag(6287, 3 /* Message */, \"For_nodejs_Colon_6287\", \"For nodejs:\"),\n and_npm_install_D_types_Slashnode: diag(6290, 3 /* Message */, \"and_npm_install_D_types_Slashnode_6290\", \"and npm install -D @types/node\"),\n Other_Outputs: diag(6291, 3 /* Message */, \"Other_Outputs_6291\", \"Other Outputs\"),\n Stricter_Typechecking_Options: diag(6292, 3 /* Message */, \"Stricter_Typechecking_Options_6292\", \"Stricter Typechecking Options\"),\n Style_Options: diag(6293, 3 /* Message */, \"Style_Options_6293\", \"Style Options\"),\n Recommended_Options: diag(6294, 3 /* Message */, \"Recommended_Options_6294\", \"Recommended Options\"),\n Enable_project_compilation: diag(6302, 3 /* Message */, \"Enable_project_compilation_6302\", \"Enable project compilation\"),\n Composite_projects_may_not_disable_declaration_emit: diag(6304, 1 /* Error */, \"Composite_projects_may_not_disable_declaration_emit_6304\", \"Composite projects may not disable declaration emit.\"),\n Output_file_0_has_not_been_built_from_source_file_1: diag(6305, 1 /* Error */, \"Output_file_0_has_not_been_built_from_source_file_1_6305\", \"Output file '{0}' has not been built from source file '{1}'.\"),\n Referenced_project_0_must_have_setting_composite_Colon_true: diag(6306, 1 /* Error */, \"Referenced_project_0_must_have_setting_composite_Colon_true_6306\", `Referenced project '{0}' must have setting \"composite\": true.`),\n File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern: diag(6307, 1 /* Error */, \"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\", \"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),\n Referenced_project_0_may_not_disable_emit: diag(6310, 1 /* Error */, \"Referenced_project_0_may_not_disable_emit_6310\", \"Referenced project '{0}' may not disable emit.\"),\n Project_0_is_out_of_date_because_output_1_is_older_than_input_2: diag(6350, 3 /* Message */, \"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350\", \"Project '{0}' is out of date because output '{1}' is older than input '{2}'\"),\n Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2: diag(6351, 3 /* Message */, \"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351\", \"Project '{0}' is up to date because newest input '{1}' is older than output '{2}'\"),\n Project_0_is_out_of_date_because_output_file_1_does_not_exist: diag(6352, 3 /* Message */, \"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\", \"Project '{0}' is out of date because output file '{1}' does not exist\"),\n Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date: diag(6353, 3 /* Message */, \"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\", \"Project '{0}' is out of date because its dependency '{1}' is out of date\"),\n Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies: diag(6354, 3 /* Message */, \"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\", \"Project '{0}' is up to date with .d.ts files from its dependencies\"),\n Projects_in_this_build_Colon_0: diag(6355, 3 /* Message */, \"Projects_in_this_build_Colon_0_6355\", \"Projects in this build: {0}\"),\n A_non_dry_build_would_delete_the_following_files_Colon_0: diag(6356, 3 /* Message */, \"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\", \"A non-dry build would delete the following files: {0}\"),\n A_non_dry_build_would_build_project_0: diag(6357, 3 /* Message */, \"A_non_dry_build_would_build_project_0_6357\", \"A non-dry build would build project '{0}'\"),\n Building_project_0: diag(6358, 3 /* Message */, \"Building_project_0_6358\", \"Building project '{0}'...\"),\n Updating_output_timestamps_of_project_0: diag(6359, 3 /* Message */, \"Updating_output_timestamps_of_project_0_6359\", \"Updating output timestamps of project '{0}'...\"),\n Project_0_is_up_to_date: diag(6361, 3 /* Message */, \"Project_0_is_up_to_date_6361\", \"Project '{0}' is up to date\"),\n Skipping_build_of_project_0_because_its_dependency_1_has_errors: diag(6362, 3 /* Message */, \"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\", \"Skipping build of project '{0}' because its dependency '{1}' has errors\"),\n Project_0_can_t_be_built_because_its_dependency_1_has_errors: diag(6363, 3 /* Message */, \"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\", \"Project '{0}' can't be built because its dependency '{1}' has errors\"),\n Build_one_or_more_projects_and_their_dependencies_if_out_of_date: diag(6364, 3 /* Message */, \"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\", \"Build one or more projects and their dependencies, if out of date\"),\n Delete_the_outputs_of_all_projects: diag(6365, 3 /* Message */, \"Delete_the_outputs_of_all_projects_6365\", \"Delete the outputs of all projects.\"),\n Show_what_would_be_built_or_deleted_if_specified_with_clean: diag(6367, 3 /* Message */, \"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\", \"Show what would be built (or deleted, if specified with '--clean')\"),\n Option_build_must_be_the_first_command_line_argument: diag(6369, 1 /* Error */, \"Option_build_must_be_the_first_command_line_argument_6369\", \"Option '--build' must be the first command line argument.\"),\n Options_0_and_1_cannot_be_combined: diag(6370, 1 /* Error */, \"Options_0_and_1_cannot_be_combined_6370\", \"Options '{0}' and '{1}' cannot be combined.\"),\n Updating_unchanged_output_timestamps_of_project_0: diag(6371, 3 /* Message */, \"Updating_unchanged_output_timestamps_of_project_0_6371\", \"Updating unchanged output timestamps of project '{0}'...\"),\n A_non_dry_build_would_update_timestamps_for_output_of_project_0: diag(6374, 3 /* Message */, \"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\", \"A non-dry build would update timestamps for output of project '{0}'\"),\n Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1: diag(6377, 1 /* Error */, \"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\", \"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),\n Composite_projects_may_not_disable_incremental_compilation: diag(6379, 1 /* Error */, \"Composite_projects_may_not_disable_incremental_compilation_6379\", \"Composite projects may not disable incremental compilation.\"),\n Specify_file_to_store_incremental_compilation_information: diag(6380, 3 /* Message */, \"Specify_file_to_store_incremental_compilation_information_6380\", \"Specify file to store incremental compilation information\"),\n Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2: diag(6381, 3 /* Message */, \"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\", \"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),\n Skipping_build_of_project_0_because_its_dependency_1_was_not_built: diag(6382, 3 /* Message */, \"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\", \"Skipping build of project '{0}' because its dependency '{1}' was not built\"),\n Project_0_can_t_be_built_because_its_dependency_1_was_not_built: diag(6383, 3 /* Message */, \"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\", \"Project '{0}' can't be built because its dependency '{1}' was not built\"),\n Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6384, 3 /* Message */, \"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384\", \"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.\"),\n _0_is_deprecated: diag(\n 6385,\n 2 /* Suggestion */,\n \"_0_is_deprecated_6385\",\n \"'{0}' is deprecated.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n void 0,\n /*reportsDeprecated*/\n true\n ),\n Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found: diag(6386, 3 /* Message */, \"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386\", \"Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.\"),\n The_signature_0_of_1_is_deprecated: diag(\n 6387,\n 2 /* Suggestion */,\n \"The_signature_0_of_1_is_deprecated_6387\",\n \"The signature '{0}' of '{1}' is deprecated.\",\n /*reportsUnnecessary*/\n void 0,\n /*elidedInCompatabilityPyramid*/\n void 0,\n /*reportsDeprecated*/\n true\n ),\n Project_0_is_being_forcibly_rebuilt: diag(6388, 3 /* Message */, \"Project_0_is_being_forcibly_rebuilt_6388\", \"Project '{0}' is being forcibly rebuilt\"),\n Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved: diag(6389, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6390, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6391, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved: diag(6392, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.\"),\n Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6393, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),\n Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6394, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),\n Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6395, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6396, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6397, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),\n Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6398, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),\n Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: diag(6399, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted\"),\n Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: diag(6400, 3 /* Message */, \"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400\", \"Project '{0}' is up to date but needs to update timestamps of output files that are older than input files\"),\n Project_0_is_out_of_date_because_there_was_error_reading_file_1: diag(6401, 3 /* Message */, \"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401\", \"Project '{0}' is out of date because there was error reading file '{1}'\"),\n Resolving_in_0_mode_with_conditions_1: diag(6402, 3 /* Message */, \"Resolving_in_0_mode_with_conditions_1_6402\", \"Resolving in {0} mode with conditions {1}.\"),\n Matched_0_condition_1: diag(6403, 3 /* Message */, \"Matched_0_condition_1_6403\", \"Matched '{0}' condition '{1}'.\"),\n Using_0_subpath_1_with_target_2: diag(6404, 3 /* Message */, \"Using_0_subpath_1_with_target_2_6404\", \"Using '{0}' subpath '{1}' with target '{2}'.\"),\n Saw_non_matching_condition_0: diag(6405, 3 /* Message */, \"Saw_non_matching_condition_0_6405\", \"Saw non-matching condition '{0}'.\"),\n Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: diag(6406, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions\"),\n Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set: diag(6407, 3 /* Message */, \"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407\", \"Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.\"),\n Use_the_package_json_exports_field_when_resolving_package_imports: diag(6408, 3 /* Message */, \"Use_the_package_json_exports_field_when_resolving_package_imports_6408\", \"Use the package.json 'exports' field when resolving package imports.\"),\n Use_the_package_json_imports_field_when_resolving_imports: diag(6409, 3 /* Message */, \"Use_the_package_json_imports_field_when_resolving_imports_6409\", \"Use the package.json 'imports' field when resolving imports.\"),\n Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: diag(6410, 3 /* Message */, \"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410\", \"Conditions to set in addition to the resolver-specific defaults when resolving imports.\"),\n true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: diag(6411, 3 /* Message */, \"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411\", \"`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.\"),\n Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: diag(6412, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.\"),\n Entering_conditional_exports: diag(6413, 3 /* Message */, \"Entering_conditional_exports_6413\", \"Entering conditional exports.\"),\n Resolved_under_condition_0: diag(6414, 3 /* Message */, \"Resolved_under_condition_0_6414\", \"Resolved under condition '{0}'.\"),\n Failed_to_resolve_under_condition_0: diag(6415, 3 /* Message */, \"Failed_to_resolve_under_condition_0_6415\", \"Failed to resolve under condition '{0}'.\"),\n Exiting_conditional_exports: diag(6416, 3 /* Message */, \"Exiting_conditional_exports_6416\", \"Exiting conditional exports.\"),\n Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0: diag(6417, 3 /* Message */, \"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417\", \"Searching all ancestor node_modules directories for preferred extensions: {0}.\"),\n Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0: diag(6418, 3 /* Message */, \"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418\", \"Searching all ancestor node_modules directories for fallback extensions: {0}.\"),\n Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors: diag(6419, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.\"),\n Project_0_is_out_of_date_because_1: diag(6420, 3 /* Message */, \"Project_0_is_out_of_date_because_1_6420\", \"Project '{0}' is out of date because {1}.\"),\n Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files: diag(6421, 3 /* Message */, \"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421\", \"Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.\"),\n The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: diag(6500, 3 /* Message */, \"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\", \"The expected type comes from property '{0}' which is declared here on type '{1}'\"),\n The_expected_type_comes_from_this_index_signature: diag(6501, 3 /* Message */, \"The_expected_type_comes_from_this_index_signature_6501\", \"The expected type comes from this index signature.\"),\n The_expected_type_comes_from_the_return_type_of_this_signature: diag(6502, 3 /* Message */, \"The_expected_type_comes_from_the_return_type_of_this_signature_6502\", \"The expected type comes from the return type of this signature.\"),\n Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing: diag(6503, 3 /* Message */, \"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\", \"Print names of files that are part of the compilation and then stop processing.\"),\n File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option: diag(6504, 1 /* Error */, \"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504\", \"File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?\"),\n Print_names_of_files_and_the_reason_they_are_part_of_the_compilation: diag(6505, 3 /* Message */, \"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505\", \"Print names of files and the reason they are part of the compilation.\"),\n Consider_adding_a_declare_modifier_to_this_class: diag(6506, 3 /* Message */, \"Consider_adding_a_declare_modifier_to_this_class_6506\", \"Consider adding a 'declare' modifier to this class.\"),\n Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files: diag(6600, 3 /* Message */, \"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these__6600\", \"Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files.\"),\n Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export: diag(6601, 3 /* Message */, \"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601\", \"Allow 'import x from y' when a module doesn't have a default export.\"),\n Allow_accessing_UMD_globals_from_modules: diag(6602, 3 /* Message */, \"Allow_accessing_UMD_globals_from_modules_6602\", \"Allow accessing UMD globals from modules.\"),\n Disable_error_reporting_for_unreachable_code: diag(6603, 3 /* Message */, \"Disable_error_reporting_for_unreachable_code_6603\", \"Disable error reporting for unreachable code.\"),\n Disable_error_reporting_for_unused_labels: diag(6604, 3 /* Message */, \"Disable_error_reporting_for_unused_labels_6604\", \"Disable error reporting for unused labels.\"),\n Ensure_use_strict_is_always_emitted: diag(6605, 3 /* Message */, \"Ensure_use_strict_is_always_emitted_6605\", \"Ensure 'use strict' is always emitted.\"),\n Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6606, 3 /* Message */, \"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606\", \"Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.\"),\n Specify_the_base_directory_to_resolve_non_relative_module_names: diag(6607, 3 /* Message */, \"Specify_the_base_directory_to_resolve_non_relative_module_names_6607\", \"Specify the base directory to resolve non-relative module names.\"),\n No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files: diag(6608, 3 /* Message */, \"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608\", \"No longer supported. In early versions, manually set the text encoding for reading files.\"),\n Enable_error_reporting_in_type_checked_JavaScript_files: diag(6609, 3 /* Message */, \"Enable_error_reporting_in_type_checked_JavaScript_files_6609\", \"Enable error reporting in type-checked JavaScript files.\"),\n Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references: diag(6611, 3 /* Message */, \"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611\", \"Enable constraints that allow a TypeScript project to be used with project references.\"),\n Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project: diag(6612, 3 /* Message */, \"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612\", \"Generate .d.ts files from TypeScript and JavaScript files in your project.\"),\n Specify_the_output_directory_for_generated_declaration_files: diag(6613, 3 /* Message */, \"Specify_the_output_directory_for_generated_declaration_files_6613\", \"Specify the output directory for generated declaration files.\"),\n Create_sourcemaps_for_d_ts_files: diag(6614, 3 /* Message */, \"Create_sourcemaps_for_d_ts_files_6614\", \"Create sourcemaps for d.ts files.\"),\n Output_compiler_performance_information_after_building: diag(6615, 3 /* Message */, \"Output_compiler_performance_information_after_building_6615\", \"Output compiler performance information after building.\"),\n Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project: diag(6616, 3 /* Message */, \"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616\", \"Disables inference for type acquisition by looking at filenames in a project.\"),\n Reduce_the_number_of_projects_loaded_automatically_by_TypeScript: diag(6617, 3 /* Message */, \"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617\", \"Reduce the number of projects loaded automatically by TypeScript.\"),\n Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server: diag(6618, 3 /* Message */, \"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618\", \"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\"),\n Opt_a_project_out_of_multi_project_reference_checking_when_editing: diag(6619, 3 /* Message */, \"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619\", \"Opt a project out of multi-project reference checking when editing.\"),\n Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects: diag(6620, 3 /* Message */, \"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620\", \"Disable preferring source files instead of declaration files when referencing composite projects.\"),\n Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration: diag(6621, 3 /* Message */, \"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621\", \"Emit more compliant, but verbose and less performant JavaScript for iteration.\"),\n Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files: diag(6622, 3 /* Message */, \"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622\", \"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),\n Only_output_d_ts_files_and_not_JavaScript_files: diag(6623, 3 /* Message */, \"Only_output_d_ts_files_and_not_JavaScript_files_6623\", \"Only output d.ts files and not JavaScript files.\"),\n Emit_design_type_metadata_for_decorated_declarations_in_source_files: diag(6624, 3 /* Message */, \"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624\", \"Emit design-type metadata for decorated declarations in source files.\"),\n Disable_the_type_acquisition_for_JavaScript_projects: diag(6625, 3 /* Message */, \"Disable_the_type_acquisition_for_JavaScript_projects_6625\", \"Disable the type acquisition for JavaScript projects\"),\n Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility: diag(6626, 3 /* Message */, \"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626\", \"Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.\"),\n Filters_results_from_the_include_option: diag(6627, 3 /* Message */, \"Filters_results_from_the_include_option_6627\", \"Filters results from the `include` option.\"),\n Remove_a_list_of_directories_from_the_watch_process: diag(6628, 3 /* Message */, \"Remove_a_list_of_directories_from_the_watch_process_6628\", \"Remove a list of directories from the watch process.\"),\n Remove_a_list_of_files_from_the_watch_mode_s_processing: diag(6629, 3 /* Message */, \"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629\", \"Remove a list of files from the watch mode's processing.\"),\n Enable_experimental_support_for_legacy_experimental_decorators: diag(6630, 3 /* Message */, \"Enable_experimental_support_for_legacy_experimental_decorators_6630\", \"Enable experimental support for legacy experimental decorators.\"),\n Print_files_read_during_the_compilation_including_why_it_was_included: diag(6631, 3 /* Message */, \"Print_files_read_during_the_compilation_including_why_it_was_included_6631\", \"Print files read during the compilation including why it was included.\"),\n Output_more_detailed_compiler_performance_information_after_building: diag(6632, 3 /* Message */, \"Output_more_detailed_compiler_performance_information_after_building_6632\", \"Output more detailed compiler performance information after building.\"),\n Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited: diag(6633, 3 /* Message */, \"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633\", \"Specify one or more path or node module references to base configuration files from which settings are inherited.\"),\n Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers: diag(6634, 3 /* Message */, \"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634\", \"Specify what approach the watcher should use if the system runs out of native file watchers.\"),\n Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include: diag(6635, 3 /* Message */, \"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635\", \"Include a list of files. This does not support glob patterns, as opposed to `include`.\"),\n Build_all_projects_including_those_that_appear_to_be_up_to_date: diag(6636, 3 /* Message */, \"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636\", \"Build all projects, including those that appear to be up to date.\"),\n Ensure_that_casing_is_correct_in_imports: diag(6637, 3 /* Message */, \"Ensure_that_casing_is_correct_in_imports_6637\", \"Ensure that casing is correct in imports.\"),\n Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging: diag(6638, 3 /* Message */, \"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638\", \"Emit a v8 CPU profile of the compiler run for debugging.\"),\n Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file: diag(6639, 3 /* Message */, \"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639\", \"Allow importing helper functions from tslib once per project, instead of including them per-file.\"),\n Skip_building_downstream_projects_on_error_in_upstream_project: diag(6640, 3 /* Message */, \"Skip_building_downstream_projects_on_error_in_upstream_project_6640\", \"Skip building downstream projects on error in upstream project.\"),\n Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation: diag(6641, 3 /* Message */, \"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641\", \"Specify a list of glob patterns that match files to be included in compilation.\"),\n Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects: diag(6642, 3 /* Message */, \"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642\", \"Save .tsbuildinfo files to allow for incremental compilation of projects.\"),\n Include_sourcemap_files_inside_the_emitted_JavaScript: diag(6643, 3 /* Message */, \"Include_sourcemap_files_inside_the_emitted_JavaScript_6643\", \"Include sourcemap files inside the emitted JavaScript.\"),\n Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript: diag(6644, 3 /* Message */, \"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644\", \"Include source code in the sourcemaps inside the emitted JavaScript.\"),\n Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports: diag(6645, 3 /* Message */, \"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645\", \"Ensure that each file can be safely transpiled without relying on other imports.\"),\n Specify_what_JSX_code_is_generated: diag(6646, 3 /* Message */, \"Specify_what_JSX_code_is_generated_6646\", \"Specify what JSX code is generated.\"),\n Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h: diag(6647, 3 /* Message */, \"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647\", \"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.\"),\n Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment: diag(6648, 3 /* Message */, \"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648\", \"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\"),\n Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk: diag(6649, 3 /* Message */, \"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649\", \"Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.\"),\n Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option: diag(6650, 3 /* Message */, \"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650\", \"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\"),\n Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment: diag(6651, 3 /* Message */, \"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651\", \"Specify a set of bundled library declaration files that describe the target runtime environment.\"),\n Print_the_names_of_emitted_files_after_a_compilation: diag(6652, 3 /* Message */, \"Print_the_names_of_emitted_files_after_a_compilation_6652\", \"Print the names of emitted files after a compilation.\"),\n Print_all_of_the_files_read_during_the_compilation: diag(6653, 3 /* Message */, \"Print_all_of_the_files_read_during_the_compilation_6653\", \"Print all of the files read during the compilation.\"),\n Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit: diag(6654, 3 /* Message */, \"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654\", \"Set the language of the messaging from TypeScript. This does not affect emit.\"),\n Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: diag(6655, 3 /* Message */, \"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655\", \"Specify the location where debugger should locate map files instead of generated locations.\"),\n Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs: diag(6656, 3 /* Message */, \"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656\", \"Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.\"),\n Specify_what_module_code_is_generated: diag(6657, 3 /* Message */, \"Specify_what_module_code_is_generated_6657\", \"Specify what module code is generated.\"),\n Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier: diag(6658, 3 /* Message */, \"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658\", \"Specify how TypeScript looks up a file from a given module specifier.\"),\n Set_the_newline_character_for_emitting_files: diag(6659, 3 /* Message */, \"Set_the_newline_character_for_emitting_files_6659\", \"Set the newline character for emitting files.\"),\n Disable_emitting_files_from_a_compilation: diag(6660, 3 /* Message */, \"Disable_emitting_files_from_a_compilation_6660\", \"Disable emitting files from a compilation.\"),\n Disable_generating_custom_helper_functions_like_extends_in_compiled_output: diag(6661, 3 /* Message */, \"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661\", \"Disable generating custom helper functions like '__extends' in compiled output.\"),\n Disable_emitting_files_if_any_type_checking_errors_are_reported: diag(6662, 3 /* Message */, \"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662\", \"Disable emitting files if any type checking errors are reported.\"),\n Disable_truncating_types_in_error_messages: diag(6663, 3 /* Message */, \"Disable_truncating_types_in_error_messages_6663\", \"Disable truncating types in error messages.\"),\n Enable_error_reporting_for_fallthrough_cases_in_switch_statements: diag(6664, 3 /* Message */, \"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664\", \"Enable error reporting for fallthrough cases in switch statements.\"),\n Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type: diag(6665, 3 /* Message */, \"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665\", \"Enable error reporting for expressions and declarations with an implied 'any' type.\"),\n Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier: diag(6666, 3 /* Message */, \"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666\", \"Ensure overriding members in derived classes are marked with an override modifier.\"),\n Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function: diag(6667, 3 /* Message */, \"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667\", \"Enable error reporting for codepaths that do not explicitly return in a function.\"),\n Enable_error_reporting_when_this_is_given_the_type_any: diag(6668, 3 /* Message */, \"Enable_error_reporting_when_this_is_given_the_type_any_6668\", \"Enable error reporting when 'this' is given the type 'any'.\"),\n Disable_adding_use_strict_directives_in_emitted_JavaScript_files: diag(6669, 3 /* Message */, \"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669\", \"Disable adding 'use strict' directives in emitted JavaScript files.\"),\n Disable_including_any_library_files_including_the_default_lib_d_ts: diag(6670, 3 /* Message */, \"Disable_including_any_library_files_including_the_default_lib_d_ts_6670\", \"Disable including any library files, including the default lib.d.ts.\"),\n Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type: diag(6671, 3 /* Message */, \"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671\", \"Enforces using indexed accessors for keys declared using an indexed type.\"),\n Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project: diag(6672, 3 /* Message */, \"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672\", \"Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.\"),\n Disable_strict_checking_of_generic_signatures_in_function_types: diag(6673, 3 /* Message */, \"Disable_strict_checking_of_generic_signatures_in_function_types_6673\", \"Disable strict checking of generic signatures in function types.\"),\n Add_undefined_to_a_type_when_accessed_using_an_index: diag(6674, 3 /* Message */, \"Add_undefined_to_a_type_when_accessed_using_an_index_6674\", \"Add 'undefined' to a type when accessed using an index.\"),\n Enable_error_reporting_when_local_variables_aren_t_read: diag(6675, 3 /* Message */, \"Enable_error_reporting_when_local_variables_aren_t_read_6675\", \"Enable error reporting when local variables aren't read.\"),\n Raise_an_error_when_a_function_parameter_isn_t_read: diag(6676, 3 /* Message */, \"Raise_an_error_when_a_function_parameter_isn_t_read_6676\", \"Raise an error when a function parameter isn't read.\"),\n Deprecated_setting_Use_outFile_instead: diag(6677, 3 /* Message */, \"Deprecated_setting_Use_outFile_instead_6677\", \"Deprecated setting. Use 'outFile' instead.\"),\n Specify_an_output_folder_for_all_emitted_files: diag(6678, 3 /* Message */, \"Specify_an_output_folder_for_all_emitted_files_6678\", \"Specify an output folder for all emitted files.\"),\n Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output: diag(6679, 3 /* Message */, \"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679\", \"Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.\"),\n Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations: diag(6680, 3 /* Message */, \"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680\", \"Specify a set of entries that re-map imports to additional lookup locations.\"),\n Specify_a_list_of_language_service_plugins_to_include: diag(6681, 3 /* Message */, \"Specify_a_list_of_language_service_plugins_to_include_6681\", \"Specify a list of language service plugins to include.\"),\n Disable_erasing_const_enum_declarations_in_generated_code: diag(6682, 3 /* Message */, \"Disable_erasing_const_enum_declarations_in_generated_code_6682\", \"Disable erasing 'const enum' declarations in generated code.\"),\n Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node: diag(6683, 3 /* Message */, \"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683\", \"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\"),\n Disable_wiping_the_console_in_watch_mode: diag(6684, 3 /* Message */, \"Disable_wiping_the_console_in_watch_mode_6684\", \"Disable wiping the console in watch mode.\"),\n Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read: diag(6685, 3 /* Message */, \"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685\", \"Enable color and formatting in TypeScript's output to make compiler errors easier to read.\"),\n Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit: diag(6686, 3 /* Message */, \"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686\", \"Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.\"),\n Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references: diag(6687, 3 /* Message */, \"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687\", \"Specify an array of objects that specify paths for projects. Used in project references.\"),\n Disable_emitting_comments: diag(6688, 3 /* Message */, \"Disable_emitting_comments_6688\", \"Disable emitting comments.\"),\n Enable_importing_json_files: diag(6689, 3 /* Message */, \"Enable_importing_json_files_6689\", \"Enable importing .json files.\"),\n Specify_the_root_folder_within_your_source_files: diag(6690, 3 /* Message */, \"Specify_the_root_folder_within_your_source_files_6690\", \"Specify the root folder within your source files.\"),\n Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules: diag(6691, 3 /* Message */, \"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691\", \"Allow multiple folders to be treated as one when resolving modules.\"),\n Skip_type_checking_d_ts_files_that_are_included_with_TypeScript: diag(6692, 3 /* Message */, \"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692\", \"Skip type checking .d.ts files that are included with TypeScript.\"),\n Skip_type_checking_all_d_ts_files: diag(6693, 3 /* Message */, \"Skip_type_checking_all_d_ts_files_6693\", \"Skip type checking all .d.ts files.\"),\n Create_source_map_files_for_emitted_JavaScript_files: diag(6694, 3 /* Message */, \"Create_source_map_files_for_emitted_JavaScript_files_6694\", \"Create source map files for emitted JavaScript files.\"),\n Specify_the_root_path_for_debuggers_to_find_the_reference_source_code: diag(6695, 3 /* Message */, \"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695\", \"Specify the root path for debuggers to find the reference source code.\"),\n Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function: diag(6697, 3 /* Message */, \"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697\", \"Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.\"),\n When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible: diag(6698, 3 /* Message */, \"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698\", \"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\"),\n When_type_checking_take_into_account_null_and_undefined: diag(6699, 3 /* Message */, \"When_type_checking_take_into_account_null_and_undefined_6699\", \"When type checking, take into account 'null' and 'undefined'.\"),\n Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor: diag(6700, 3 /* Message */, \"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700\", \"Check for class properties that are declared but not set in the constructor.\"),\n Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments: diag(6701, 3 /* Message */, \"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701\", \"Disable emitting declarations that have '@internal' in their JSDoc comments.\"),\n Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals: diag(6702, 3 /* Message */, \"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702\", \"Disable reporting of excess property errors during the creation of object literals.\"),\n Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures: diag(6703, 3 /* Message */, \"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703\", \"Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.\"),\n Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively: diag(6704, 3 /* Message */, \"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704\", \"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\"),\n Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations: diag(6705, 3 /* Message */, \"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705\", \"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\"),\n Log_paths_used_during_the_moduleResolution_process: diag(6706, 3 /* Message */, \"Log_paths_used_during_the_moduleResolution_process_6706\", \"Log paths used during the 'moduleResolution' process.\"),\n Specify_the_path_to_tsbuildinfo_incremental_compilation_file: diag(6707, 3 /* Message */, \"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707\", \"Specify the path to .tsbuildinfo incremental compilation file.\"),\n Specify_options_for_automatic_acquisition_of_declaration_files: diag(6709, 3 /* Message */, \"Specify_options_for_automatic_acquisition_of_declaration_files_6709\", \"Specify options for automatic acquisition of declaration files.\"),\n Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types: diag(6710, 3 /* Message */, \"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710\", \"Specify multiple folders that act like './node_modules/@types'.\"),\n Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file: diag(6711, 3 /* Message */, \"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711\", \"Specify type package names to be included without being referenced in a source file.\"),\n Emit_ECMAScript_standard_compliant_class_fields: diag(6712, 3 /* Message */, \"Emit_ECMAScript_standard_compliant_class_fields_6712\", \"Emit ECMAScript-standard-compliant class fields.\"),\n Enable_verbose_logging: diag(6713, 3 /* Message */, \"Enable_verbose_logging_6713\", \"Enable verbose logging.\"),\n Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality: diag(6714, 3 /* Message */, \"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714\", \"Specify how directories are watched on systems that lack recursive file-watching functionality.\"),\n Specify_how_the_TypeScript_watch_mode_works: diag(6715, 3 /* Message */, \"Specify_how_the_TypeScript_watch_mode_works_6715\", \"Specify how the TypeScript watch mode works.\"),\n Require_undeclared_properties_from_index_signatures_to_use_element_accesses: diag(6717, 3 /* Message */, \"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717\", \"Require undeclared properties from index signatures to use element accesses.\"),\n Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: diag(6718, 3 /* Message */, \"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718\", \"Specify emit/checking behavior for imports that are only used for types.\"),\n Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files: diag(6719, 3 /* Message */, \"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719\", \"Require sufficient annotation on exports so other tools can trivially generate declaration files.\"),\n Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any: diag(6720, 3 /* Message */, \"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720\", \"Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.\"),\n Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript: diag(6721, 3 /* Message */, \"Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript_6721\", \"Do not allow runtime constructs that are not part of ECMAScript.\"),\n Default_catch_clause_variables_as_unknown_instead_of_any: diag(6803, 3 /* Message */, \"Default_catch_clause_variables_as_unknown_instead_of_any_6803\", \"Default catch clause variables as 'unknown' instead of 'any'.\"),\n Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: diag(6804, 3 /* Message */, \"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804\", \"Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.\"),\n Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported: diag(6805, 3 /* Message */, \"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805\", \"Disable full type checking (only critical parse and emit errors will be reported).\"),\n Check_side_effect_imports: diag(6806, 3 /* Message */, \"Check_side_effect_imports_6806\", \"Check side effect imports.\"),\n This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2: diag(6807, 1 /* Error */, \"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807\", \"This operation can be simplified. This shift is identical to `{0} {1} {2}`.\"),\n Enable_lib_replacement: diag(6808, 3 /* Message */, \"Enable_lib_replacement_6808\", \"Enable lib replacement.\"),\n one_of_Colon: diag(6900, 3 /* Message */, \"one_of_Colon_6900\", \"one of:\"),\n one_or_more_Colon: diag(6901, 3 /* Message */, \"one_or_more_Colon_6901\", \"one or more:\"),\n type_Colon: diag(6902, 3 /* Message */, \"type_Colon_6902\", \"type:\"),\n default_Colon: diag(6903, 3 /* Message */, \"default_Colon_6903\", \"default:\"),\n module_system_or_esModuleInterop: diag(6904, 3 /* Message */, \"module_system_or_esModuleInterop_6904\", 'module === \"system\" or esModuleInterop'),\n false_unless_strict_is_set: diag(6905, 3 /* Message */, \"false_unless_strict_is_set_6905\", \"`false`, unless `strict` is set\"),\n false_unless_composite_is_set: diag(6906, 3 /* Message */, \"false_unless_composite_is_set_6906\", \"`false`, unless `composite` is set\"),\n node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: diag(6907, 3 /* Message */, \"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907\", '`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.'),\n if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: diag(6908, 3 /* Message */, \"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908\", '`[]` if `files` is specified, otherwise `[\"**/*\"]`'),\n true_if_composite_false_otherwise: diag(6909, 3 /* Message */, \"true_if_composite_false_otherwise_6909\", \"`true` if `composite`, `false` otherwise\"),\n module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: diag(69010, 3 /* Message */, \"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010\", \"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`\"),\n Computed_from_the_list_of_input_files: diag(6911, 3 /* Message */, \"Computed_from_the_list_of_input_files_6911\", \"Computed from the list of input files\"),\n Platform_specific: diag(6912, 3 /* Message */, \"Platform_specific_6912\", \"Platform specific\"),\n You_can_learn_about_all_of_the_compiler_options_at_0: diag(6913, 3 /* Message */, \"You_can_learn_about_all_of_the_compiler_options_at_0_6913\", \"You can learn about all of the compiler options at {0}\"),\n Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon: diag(6914, 3 /* Message */, \"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914\", \"Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:\"),\n Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0: diag(6915, 3 /* Message */, \"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915\", \"Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}\"),\n COMMON_COMMANDS: diag(6916, 3 /* Message */, \"COMMON_COMMANDS_6916\", \"COMMON COMMANDS\"),\n ALL_COMPILER_OPTIONS: diag(6917, 3 /* Message */, \"ALL_COMPILER_OPTIONS_6917\", \"ALL COMPILER OPTIONS\"),\n WATCH_OPTIONS: diag(6918, 3 /* Message */, \"WATCH_OPTIONS_6918\", \"WATCH OPTIONS\"),\n BUILD_OPTIONS: diag(6919, 3 /* Message */, \"BUILD_OPTIONS_6919\", \"BUILD OPTIONS\"),\n COMMON_COMPILER_OPTIONS: diag(6920, 3 /* Message */, \"COMMON_COMPILER_OPTIONS_6920\", \"COMMON COMPILER OPTIONS\"),\n COMMAND_LINE_FLAGS: diag(6921, 3 /* Message */, \"COMMAND_LINE_FLAGS_6921\", \"COMMAND LINE FLAGS\"),\n tsc_Colon_The_TypeScript_Compiler: diag(6922, 3 /* Message */, \"tsc_Colon_The_TypeScript_Compiler_6922\", \"tsc: The TypeScript Compiler\"),\n Compiles_the_current_project_tsconfig_json_in_the_working_directory: diag(6923, 3 /* Message */, \"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923\", \"Compiles the current project (tsconfig.json in the working directory.)\"),\n Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options: diag(6924, 3 /* Message */, \"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924\", \"Ignoring tsconfig.json, compiles the specified files with default compiler options.\"),\n Build_a_composite_project_in_the_working_directory: diag(6925, 3 /* Message */, \"Build_a_composite_project_in_the_working_directory_6925\", \"Build a composite project in the working directory.\"),\n Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory: diag(6926, 3 /* Message */, \"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926\", \"Creates a tsconfig.json with the recommended settings in the working directory.\"),\n Compiles_the_TypeScript_project_located_at_the_specified_path: diag(6927, 3 /* Message */, \"Compiles_the_TypeScript_project_located_at_the_specified_path_6927\", \"Compiles the TypeScript project located at the specified path.\"),\n An_expanded_version_of_this_information_showing_all_possible_compiler_options: diag(6928, 3 /* Message */, \"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928\", \"An expanded version of this information, showing all possible compiler options\"),\n Compiles_the_current_project_with_additional_settings: diag(6929, 3 /* Message */, \"Compiles_the_current_project_with_additional_settings_6929\", \"Compiles the current project, with additional settings.\"),\n true_for_ES2022_and_above_including_ESNext: diag(6930, 3 /* Message */, \"true_for_ES2022_and_above_including_ESNext_6930\", \"`true` for ES2022 and above, including ESNext.\"),\n List_of_file_name_suffixes_to_search_when_resolving_a_module: diag(6931, 1 /* Error */, \"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931\", \"List of file name suffixes to search when resolving a module.\"),\n Variable_0_implicitly_has_an_1_type: diag(7005, 1 /* Error */, \"Variable_0_implicitly_has_an_1_type_7005\", \"Variable '{0}' implicitly has an '{1}' type.\"),\n Parameter_0_implicitly_has_an_1_type: diag(7006, 1 /* Error */, \"Parameter_0_implicitly_has_an_1_type_7006\", \"Parameter '{0}' implicitly has an '{1}' type.\"),\n Member_0_implicitly_has_an_1_type: diag(7008, 1 /* Error */, \"Member_0_implicitly_has_an_1_type_7008\", \"Member '{0}' implicitly has an '{1}' type.\"),\n new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: diag(7009, 1 /* Error */, \"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\", \"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),\n _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: diag(7010, 1 /* Error */, \"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\", \"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),\n Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7011, 1 /* Error */, \"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\", \"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),\n This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation: diag(7012, 1 /* Error */, \"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012\", \"This overload implicitly returns the type '{0}' because it lacks a return type annotation.\"),\n Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7013, 1 /* Error */, \"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\", \"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),\n Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7014, 1 /* Error */, \"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\", \"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),\n Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: diag(7015, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\", \"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),\n Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: diag(7016, 1 /* Error */, \"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\", \"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),\n Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: diag(7017, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\", \"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),\n Object_literal_s_property_0_implicitly_has_an_1_type: diag(7018, 1 /* Error */, \"Object_literal_s_property_0_implicitly_has_an_1_type_7018\", \"Object literal's property '{0}' implicitly has an '{1}' type.\"),\n Rest_parameter_0_implicitly_has_an_any_type: diag(7019, 1 /* Error */, \"Rest_parameter_0_implicitly_has_an_any_type_7019\", \"Rest parameter '{0}' implicitly has an 'any[]' type.\"),\n Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7020, 1 /* Error */, \"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\", \"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),\n _0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: diag(7022, 1 /* Error */, \"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\", \"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),\n _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7023, 1 /* Error */, \"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\", \"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),\n Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7024, 1 /* Error */, \"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\", \"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),\n Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation: diag(7025, 1 /* Error */, \"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025\", \"Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.\"),\n JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: diag(7026, 1 /* Error */, \"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\", \"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),\n Unreachable_code_detected: diag(\n 7027,\n 1 /* Error */,\n \"Unreachable_code_detected_7027\",\n \"Unreachable code detected.\",\n /*reportsUnnecessary*/\n true\n ),\n Unused_label: diag(\n 7028,\n 1 /* Error */,\n \"Unused_label_7028\",\n \"Unused label.\",\n /*reportsUnnecessary*/\n true\n ),\n Fallthrough_case_in_switch: diag(7029, 1 /* Error */, \"Fallthrough_case_in_switch_7029\", \"Fallthrough case in switch.\"),\n Not_all_code_paths_return_a_value: diag(7030, 1 /* Error */, \"Not_all_code_paths_return_a_value_7030\", \"Not all code paths return a value.\"),\n Binding_element_0_implicitly_has_an_1_type: diag(7031, 1 /* Error */, \"Binding_element_0_implicitly_has_an_1_type_7031\", \"Binding element '{0}' implicitly has an '{1}' type.\"),\n Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: diag(7032, 1 /* Error */, \"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\", \"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),\n Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: diag(7033, 1 /* Error */, \"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\", \"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),\n Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: diag(7034, 1 /* Error */, \"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\", \"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),\n Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0: diag(7035, 1 /* Error */, \"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035\", \"Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),\n Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0: diag(7036, 1 /* Error */, \"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\", \"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),\n Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports: diag(7037, 3 /* Message */, \"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\", \"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),\n Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead: diag(7038, 3 /* Message */, \"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\", \"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),\n Mapped_object_type_implicitly_has_an_any_template_type: diag(7039, 1 /* Error */, \"Mapped_object_type_implicitly_has_an_any_template_type_7039\", \"Mapped object type implicitly has an 'any' template type.\"),\n If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1: diag(7040, 1 /* Error */, \"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\", \"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'\"),\n The_containing_arrow_function_captures_the_global_value_of_this: diag(7041, 1 /* Error */, \"The_containing_arrow_function_captures_the_global_value_of_this_7041\", \"The containing arrow function captures the global value of 'this'.\"),\n Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used: diag(7042, 1 /* Error */, \"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\", \"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),\n Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7043, 2 /* Suggestion */, \"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\", \"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7044, 2 /* Suggestion */, \"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\", \"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7045, 2 /* Suggestion */, \"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\", \"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage: diag(7046, 2 /* Suggestion */, \"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\", \"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),\n Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage: diag(7047, 2 /* Suggestion */, \"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\", \"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),\n Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage: diag(7048, 2 /* Suggestion */, \"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\", \"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),\n Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage: diag(7049, 2 /* Suggestion */, \"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\", \"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),\n _0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage: diag(7050, 2 /* Suggestion */, \"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\", \"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),\n Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1: diag(7051, 1 /* Error */, \"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\", \"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),\n Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1: diag(7052, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\", \"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?\"),\n Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1: diag(7053, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\", \"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),\n No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1: diag(7054, 1 /* Error */, \"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\", \"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),\n _0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type: diag(7055, 1 /* Error */, \"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\", \"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),\n The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed: diag(7056, 1 /* Error */, \"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056\", \"The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.\"),\n yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation: diag(7057, 1 /* Error */, \"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057\", \"'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.\"),\n If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: diag(7058, 1 /* Error */, \"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058\", \"If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`\"),\n This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: diag(7059, 1 /* Error */, \"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059\", \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),\n This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: diag(7060, 1 /* Error */, \"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060\", \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.\"),\n A_mapped_type_may_not_declare_properties_or_methods: diag(7061, 1 /* Error */, \"A_mapped_type_may_not_declare_properties_or_methods_7061\", \"A mapped type may not declare properties or methods.\"),\n You_cannot_rename_this_element: diag(8e3, 1 /* Error */, \"You_cannot_rename_this_element_8000\", \"You cannot rename this element.\"),\n You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: diag(8001, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\", \"You cannot rename elements that are defined in the standard TypeScript library.\"),\n import_can_only_be_used_in_TypeScript_files: diag(8002, 1 /* Error */, \"import_can_only_be_used_in_TypeScript_files_8002\", \"'import ... =' can only be used in TypeScript files.\"),\n export_can_only_be_used_in_TypeScript_files: diag(8003, 1 /* Error */, \"export_can_only_be_used_in_TypeScript_files_8003\", \"'export =' can only be used in TypeScript files.\"),\n Type_parameter_declarations_can_only_be_used_in_TypeScript_files: diag(8004, 1 /* Error */, \"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004\", \"Type parameter declarations can only be used in TypeScript files.\"),\n implements_clauses_can_only_be_used_in_TypeScript_files: diag(8005, 1 /* Error */, \"implements_clauses_can_only_be_used_in_TypeScript_files_8005\", \"'implements' clauses can only be used in TypeScript files.\"),\n _0_declarations_can_only_be_used_in_TypeScript_files: diag(8006, 1 /* Error */, \"_0_declarations_can_only_be_used_in_TypeScript_files_8006\", \"'{0}' declarations can only be used in TypeScript files.\"),\n Type_aliases_can_only_be_used_in_TypeScript_files: diag(8008, 1 /* Error */, \"Type_aliases_can_only_be_used_in_TypeScript_files_8008\", \"Type aliases can only be used in TypeScript files.\"),\n The_0_modifier_can_only_be_used_in_TypeScript_files: diag(8009, 1 /* Error */, \"The_0_modifier_can_only_be_used_in_TypeScript_files_8009\", \"The '{0}' modifier can only be used in TypeScript files.\"),\n Type_annotations_can_only_be_used_in_TypeScript_files: diag(8010, 1 /* Error */, \"Type_annotations_can_only_be_used_in_TypeScript_files_8010\", \"Type annotations can only be used in TypeScript files.\"),\n Type_arguments_can_only_be_used_in_TypeScript_files: diag(8011, 1 /* Error */, \"Type_arguments_can_only_be_used_in_TypeScript_files_8011\", \"Type arguments can only be used in TypeScript files.\"),\n Parameter_modifiers_can_only_be_used_in_TypeScript_files: diag(8012, 1 /* Error */, \"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012\", \"Parameter modifiers can only be used in TypeScript files.\"),\n Non_null_assertions_can_only_be_used_in_TypeScript_files: diag(8013, 1 /* Error */, \"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013\", \"Non-null assertions can only be used in TypeScript files.\"),\n Type_assertion_expressions_can_only_be_used_in_TypeScript_files: diag(8016, 1 /* Error */, \"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016\", \"Type assertion expressions can only be used in TypeScript files.\"),\n Signature_declarations_can_only_be_used_in_TypeScript_files: diag(8017, 1 /* Error */, \"Signature_declarations_can_only_be_used_in_TypeScript_files_8017\", \"Signature declarations can only be used in TypeScript files.\"),\n Report_errors_in_js_files: diag(8019, 3 /* Message */, \"Report_errors_in_js_files_8019\", \"Report errors in .js files.\"),\n JSDoc_types_can_only_be_used_inside_documentation_comments: diag(8020, 1 /* Error */, \"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\", \"JSDoc types can only be used inside documentation comments.\"),\n JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags: diag(8021, 1 /* Error */, \"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\", \"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),\n JSDoc_0_is_not_attached_to_a_class: diag(8022, 1 /* Error */, \"JSDoc_0_is_not_attached_to_a_class_8022\", \"JSDoc '@{0}' is not attached to a class.\"),\n JSDoc_0_1_does_not_match_the_extends_2_clause: diag(8023, 1 /* Error */, \"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\", \"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),\n JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name: diag(8024, 1 /* Error */, \"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\", \"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),\n Class_declarations_cannot_have_more_than_one_augments_or_extends_tag: diag(8025, 1 /* Error */, \"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\", \"Class declarations cannot have more than one '@augments' or '@extends' tag.\"),\n Expected_0_type_arguments_provide_these_with_an_extends_tag: diag(8026, 1 /* Error */, \"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\", \"Expected {0} type arguments; provide these with an '@extends' tag.\"),\n Expected_0_1_type_arguments_provide_these_with_an_extends_tag: diag(8027, 1 /* Error */, \"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\", \"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),\n JSDoc_may_only_appear_in_the_last_parameter_of_a_signature: diag(8028, 1 /* Error */, \"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\", \"JSDoc '...' may only appear in the last parameter of a signature.\"),\n JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type: diag(8029, 1 /* Error */, \"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\", \"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),\n The_type_of_a_function_declaration_must_match_the_function_s_signature: diag(8030, 1 /* Error */, \"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\", \"The type of a function declaration must match the function's signature.\"),\n You_cannot_rename_a_module_via_a_global_import: diag(8031, 1 /* Error */, \"You_cannot_rename_a_module_via_a_global_import_8031\", \"You cannot rename a module via a global import.\"),\n Qualified_name_0_is_not_allowed_without_a_leading_param_object_1: diag(8032, 1 /* Error */, \"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\", \"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),\n A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags: diag(8033, 1 /* Error */, \"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033\", \"A JSDoc '@typedef' comment may not contain multiple '@type' tags.\"),\n The_tag_was_first_specified_here: diag(8034, 1 /* Error */, \"The_tag_was_first_specified_here_8034\", \"The tag was first specified here.\"),\n You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder: diag(8035, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035\", \"You cannot rename elements that are defined in a 'node_modules' folder.\"),\n You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder: diag(8036, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036\", \"You cannot rename elements that are defined in another 'node_modules' folder.\"),\n Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files: diag(8037, 1 /* Error */, \"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037\", \"Type satisfaction expressions can only be used in TypeScript files.\"),\n Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export: diag(8038, 1 /* Error */, \"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038\", \"Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.\"),\n A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: diag(8039, 1 /* Error */, \"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039\", \"A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag\"),\n Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9005, 1 /* Error */, \"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\", \"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),\n Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9006, 1 /* Error */, \"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\", \"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),\n Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9007, 1 /* Error */, \"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007\", \"Function must have an explicit return type annotation with --isolatedDeclarations.\"),\n Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9008, 1 /* Error */, \"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008\", \"Method must have an explicit return type annotation with --isolatedDeclarations.\"),\n At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9009, 1 /* Error */, \"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009\", \"At least one accessor must have an explicit type annotation with --isolatedDeclarations.\"),\n Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9010, 1 /* Error */, \"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010\", \"Variable must have an explicit type annotation with --isolatedDeclarations.\"),\n Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9011, 1 /* Error */, \"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011\", \"Parameter must have an explicit type annotation with --isolatedDeclarations.\"),\n Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9012, 1 /* Error */, \"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012\", \"Property must have an explicit type annotation with --isolatedDeclarations.\"),\n Expression_type_can_t_be_inferred_with_isolatedDeclarations: diag(9013, 1 /* Error */, \"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013\", \"Expression type can't be inferred with --isolatedDeclarations.\"),\n Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations: diag(9014, 1 /* Error */, \"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014\", \"Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.\"),\n Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations: diag(9015, 1 /* Error */, \"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015\", \"Objects that contain spread assignments can't be inferred with --isolatedDeclarations.\"),\n Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations: diag(9016, 1 /* Error */, \"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016\", \"Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.\"),\n Only_const_arrays_can_be_inferred_with_isolatedDeclarations: diag(9017, 1 /* Error */, \"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017\", \"Only const arrays can be inferred with --isolatedDeclarations.\"),\n Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations: diag(9018, 1 /* Error */, \"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018\", \"Arrays with spread elements can't inferred with --isolatedDeclarations.\"),\n Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations: diag(9019, 1 /* Error */, \"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019\", \"Binding elements can't be exported directly with --isolatedDeclarations.\"),\n Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations: diag(9020, 1 /* Error */, \"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020\", \"Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.\"),\n Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations: diag(9021, 1 /* Error */, \"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021\", \"Extends clause can't contain an expression with --isolatedDeclarations.\"),\n Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations: diag(9022, 1 /* Error */, \"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022\", \"Inference from class expressions is not supported with --isolatedDeclarations.\"),\n Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function: diag(9023, 1 /* Error */, \"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023\", \"Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.\"),\n Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations: diag(9025, 1 /* Error */, \"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025\", \"Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.\"),\n Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations: diag(9026, 1 /* Error */, \"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026\", \"Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.\"),\n Add_a_type_annotation_to_the_variable_0: diag(9027, 1 /* Error */, \"Add_a_type_annotation_to_the_variable_0_9027\", \"Add a type annotation to the variable {0}.\"),\n Add_a_type_annotation_to_the_parameter_0: diag(9028, 1 /* Error */, \"Add_a_type_annotation_to_the_parameter_0_9028\", \"Add a type annotation to the parameter {0}.\"),\n Add_a_type_annotation_to_the_property_0: diag(9029, 1 /* Error */, \"Add_a_type_annotation_to_the_property_0_9029\", \"Add a type annotation to the property {0}.\"),\n Add_a_return_type_to_the_function_expression: diag(9030, 1 /* Error */, \"Add_a_return_type_to_the_function_expression_9030\", \"Add a return type to the function expression.\"),\n Add_a_return_type_to_the_function_declaration: diag(9031, 1 /* Error */, \"Add_a_return_type_to_the_function_declaration_9031\", \"Add a return type to the function declaration.\"),\n Add_a_return_type_to_the_get_accessor_declaration: diag(9032, 1 /* Error */, \"Add_a_return_type_to_the_get_accessor_declaration_9032\", \"Add a return type to the get accessor declaration.\"),\n Add_a_type_to_parameter_of_the_set_accessor_declaration: diag(9033, 1 /* Error */, \"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033\", \"Add a type to parameter of the set accessor declaration.\"),\n Add_a_return_type_to_the_method: diag(9034, 1 /* Error */, \"Add_a_return_type_to_the_method_9034\", \"Add a return type to the method\"),\n Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit: diag(9035, 1 /* Error */, \"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035\", \"Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.\"),\n Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it: diag(9036, 1 /* Error */, \"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036\", \"Move the expression in default export to a variable and add a type annotation to it.\"),\n Default_exports_can_t_be_inferred_with_isolatedDeclarations: diag(9037, 1 /* Error */, \"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037\", \"Default exports can't be inferred with --isolatedDeclarations.\"),\n Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations: diag(9038, 1 /* Error */, \"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038\", \"Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.\"),\n Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations: diag(9039, 1 /* Error */, \"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039\", \"Type containing private name '{0}' can't be used with --isolatedDeclarations.\"),\n JSX_attributes_must_only_be_assigned_a_non_empty_expression: diag(17e3, 1 /* Error */, \"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\", \"JSX attributes must only be assigned a non-empty 'expression'.\"),\n JSX_elements_cannot_have_multiple_attributes_with_the_same_name: diag(17001, 1 /* Error */, \"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\", \"JSX elements cannot have multiple attributes with the same name.\"),\n Expected_corresponding_JSX_closing_tag_for_0: diag(17002, 1 /* Error */, \"Expected_corresponding_JSX_closing_tag_for_0_17002\", \"Expected corresponding JSX closing tag for '{0}'.\"),\n Cannot_use_JSX_unless_the_jsx_flag_is_provided: diag(17004, 1 /* Error */, \"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\", \"Cannot use JSX unless the '--jsx' flag is provided.\"),\n A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: diag(17005, 1 /* Error */, \"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\", \"A constructor cannot contain a 'super' call when its class extends 'null'.\"),\n An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17006, 1 /* Error */, \"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\", \"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),\n A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17007, 1 /* Error */, \"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\", \"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),\n JSX_element_0_has_no_corresponding_closing_tag: diag(17008, 1 /* Error */, \"JSX_element_0_has_no_corresponding_closing_tag_17008\", \"JSX element '{0}' has no corresponding closing tag.\"),\n super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: diag(17009, 1 /* Error */, \"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\", \"'super' must be called before accessing 'this' in the constructor of a derived class.\"),\n Unknown_type_acquisition_option_0: diag(17010, 1 /* Error */, \"Unknown_type_acquisition_option_0_17010\", \"Unknown type acquisition option '{0}'.\"),\n super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class: diag(17011, 1 /* Error */, \"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\", \"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),\n _0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2: diag(17012, 1 /* Error */, \"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\", \"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),\n Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor: diag(17013, 1 /* Error */, \"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\", \"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),\n JSX_fragment_has_no_corresponding_closing_tag: diag(17014, 1 /* Error */, \"JSX_fragment_has_no_corresponding_closing_tag_17014\", \"JSX fragment has no corresponding closing tag.\"),\n Expected_corresponding_closing_tag_for_JSX_fragment: diag(17015, 1 /* Error */, \"Expected_corresponding_closing_tag_for_JSX_fragment_17015\", \"Expected corresponding closing tag for JSX fragment.\"),\n The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option: diag(17016, 1 /* Error */, \"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016\", \"The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.\"),\n An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments: diag(17017, 1 /* Error */, \"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017\", \"An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.\"),\n Unknown_type_acquisition_option_0_Did_you_mean_1: diag(17018, 1 /* Error */, \"Unknown_type_acquisition_option_0_Did_you_mean_1_17018\", \"Unknown type acquisition option '{0}'. Did you mean '{1}'?\"),\n _0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17019, 1 /* Error */, \"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019\", \"'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),\n _0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17020, 1 /* Error */, \"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020\", \"'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),\n Unicode_escape_sequence_cannot_appear_here: diag(17021, 1 /* Error */, \"Unicode_escape_sequence_cannot_appear_here_17021\", \"Unicode escape sequence cannot appear here.\"),\n Circularity_detected_while_resolving_configuration_Colon_0: diag(18e3, 1 /* Error */, \"Circularity_detected_while_resolving_configuration_Colon_0_18000\", \"Circularity detected while resolving configuration: {0}\"),\n The_files_list_in_config_file_0_is_empty: diag(18002, 1 /* Error */, \"The_files_list_in_config_file_0_is_empty_18002\", \"The 'files' list in config file '{0}' is empty.\"),\n No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: diag(18003, 1 /* Error */, \"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\", \"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),\n File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module: diag(80001, 2 /* Suggestion */, \"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001\", \"File is a CommonJS module; it may be converted to an ES module.\"),\n This_constructor_function_may_be_converted_to_a_class_declaration: diag(80002, 2 /* Suggestion */, \"This_constructor_function_may_be_converted_to_a_class_declaration_80002\", \"This constructor function may be converted to a class declaration.\"),\n Import_may_be_converted_to_a_default_import: diag(80003, 2 /* Suggestion */, \"Import_may_be_converted_to_a_default_import_80003\", \"Import may be converted to a default import.\"),\n JSDoc_types_may_be_moved_to_TypeScript_types: diag(80004, 2 /* Suggestion */, \"JSDoc_types_may_be_moved_to_TypeScript_types_80004\", \"JSDoc types may be moved to TypeScript types.\"),\n require_call_may_be_converted_to_an_import: diag(80005, 2 /* Suggestion */, \"require_call_may_be_converted_to_an_import_80005\", \"'require' call may be converted to an import.\"),\n This_may_be_converted_to_an_async_function: diag(80006, 2 /* Suggestion */, \"This_may_be_converted_to_an_async_function_80006\", \"This may be converted to an async function.\"),\n await_has_no_effect_on_the_type_of_this_expression: diag(80007, 2 /* Suggestion */, \"await_has_no_effect_on_the_type_of_this_expression_80007\", \"'await' has no effect on the type of this expression.\"),\n Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers: diag(80008, 2 /* Suggestion */, \"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\", \"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),\n JSDoc_typedef_may_be_converted_to_TypeScript_type: diag(80009, 2 /* Suggestion */, \"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009\", \"JSDoc typedef may be converted to TypeScript type.\"),\n JSDoc_typedefs_may_be_converted_to_TypeScript_types: diag(80010, 2 /* Suggestion */, \"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010\", \"JSDoc typedefs may be converted to TypeScript types.\"),\n Add_missing_super_call: diag(90001, 3 /* Message */, \"Add_missing_super_call_90001\", \"Add missing 'super()' call\"),\n Make_super_call_the_first_statement_in_the_constructor: diag(90002, 3 /* Message */, \"Make_super_call_the_first_statement_in_the_constructor_90002\", \"Make 'super()' call the first statement in the constructor\"),\n Change_extends_to_implements: diag(90003, 3 /* Message */, \"Change_extends_to_implements_90003\", \"Change 'extends' to 'implements'\"),\n Remove_unused_declaration_for_Colon_0: diag(90004, 3 /* Message */, \"Remove_unused_declaration_for_Colon_0_90004\", \"Remove unused declaration for: '{0}'\"),\n Remove_import_from_0: diag(90005, 3 /* Message */, \"Remove_import_from_0_90005\", \"Remove import from '{0}'\"),\n Implement_interface_0: diag(90006, 3 /* Message */, \"Implement_interface_0_90006\", \"Implement interface '{0}'\"),\n Implement_inherited_abstract_class: diag(90007, 3 /* Message */, \"Implement_inherited_abstract_class_90007\", \"Implement inherited abstract class\"),\n Add_0_to_unresolved_variable: diag(90008, 3 /* Message */, \"Add_0_to_unresolved_variable_90008\", \"Add '{0}.' to unresolved variable\"),\n Remove_variable_statement: diag(90010, 3 /* Message */, \"Remove_variable_statement_90010\", \"Remove variable statement\"),\n Remove_template_tag: diag(90011, 3 /* Message */, \"Remove_template_tag_90011\", \"Remove template tag\"),\n Remove_type_parameters: diag(90012, 3 /* Message */, \"Remove_type_parameters_90012\", \"Remove type parameters\"),\n Import_0_from_1: diag(90013, 3 /* Message */, \"Import_0_from_1_90013\", `Import '{0}' from \"{1}\"`),\n Change_0_to_1: diag(90014, 3 /* Message */, \"Change_0_to_1_90014\", \"Change '{0}' to '{1}'\"),\n Declare_property_0: diag(90016, 3 /* Message */, \"Declare_property_0_90016\", \"Declare property '{0}'\"),\n Add_index_signature_for_property_0: diag(90017, 3 /* Message */, \"Add_index_signature_for_property_0_90017\", \"Add index signature for property '{0}'\"),\n Disable_checking_for_this_file: diag(90018, 3 /* Message */, \"Disable_checking_for_this_file_90018\", \"Disable checking for this file\"),\n Ignore_this_error_message: diag(90019, 3 /* Message */, \"Ignore_this_error_message_90019\", \"Ignore this error message\"),\n Initialize_property_0_in_the_constructor: diag(90020, 3 /* Message */, \"Initialize_property_0_in_the_constructor_90020\", \"Initialize property '{0}' in the constructor\"),\n Initialize_static_property_0: diag(90021, 3 /* Message */, \"Initialize_static_property_0_90021\", \"Initialize static property '{0}'\"),\n Change_spelling_to_0: diag(90022, 3 /* Message */, \"Change_spelling_to_0_90022\", \"Change spelling to '{0}'\"),\n Declare_method_0: diag(90023, 3 /* Message */, \"Declare_method_0_90023\", \"Declare method '{0}'\"),\n Declare_static_method_0: diag(90024, 3 /* Message */, \"Declare_static_method_0_90024\", \"Declare static method '{0}'\"),\n Prefix_0_with_an_underscore: diag(90025, 3 /* Message */, \"Prefix_0_with_an_underscore_90025\", \"Prefix '{0}' with an underscore\"),\n Rewrite_as_the_indexed_access_type_0: diag(90026, 3 /* Message */, \"Rewrite_as_the_indexed_access_type_0_90026\", \"Rewrite as the indexed access type '{0}'\"),\n Declare_static_property_0: diag(90027, 3 /* Message */, \"Declare_static_property_0_90027\", \"Declare static property '{0}'\"),\n Call_decorator_expression: diag(90028, 3 /* Message */, \"Call_decorator_expression_90028\", \"Call decorator expression\"),\n Add_async_modifier_to_containing_function: diag(90029, 3 /* Message */, \"Add_async_modifier_to_containing_function_90029\", \"Add async modifier to containing function\"),\n Replace_infer_0_with_unknown: diag(90030, 3 /* Message */, \"Replace_infer_0_with_unknown_90030\", \"Replace 'infer {0}' with 'unknown'\"),\n Replace_all_unused_infer_with_unknown: diag(90031, 3 /* Message */, \"Replace_all_unused_infer_with_unknown_90031\", \"Replace all unused 'infer' with 'unknown'\"),\n Add_parameter_name: diag(90034, 3 /* Message */, \"Add_parameter_name_90034\", \"Add parameter name\"),\n Declare_private_property_0: diag(90035, 3 /* Message */, \"Declare_private_property_0_90035\", \"Declare private property '{0}'\"),\n Replace_0_with_Promise_1: diag(90036, 3 /* Message */, \"Replace_0_with_Promise_1_90036\", \"Replace '{0}' with 'Promise<{1}>'\"),\n Fix_all_incorrect_return_type_of_an_async_functions: diag(90037, 3 /* Message */, \"Fix_all_incorrect_return_type_of_an_async_functions_90037\", \"Fix all incorrect return type of an async functions\"),\n Declare_private_method_0: diag(90038, 3 /* Message */, \"Declare_private_method_0_90038\", \"Declare private method '{0}'\"),\n Remove_unused_destructuring_declaration: diag(90039, 3 /* Message */, \"Remove_unused_destructuring_declaration_90039\", \"Remove unused destructuring declaration\"),\n Remove_unused_declarations_for_Colon_0: diag(90041, 3 /* Message */, \"Remove_unused_declarations_for_Colon_0_90041\", \"Remove unused declarations for: '{0}'\"),\n Declare_a_private_field_named_0: diag(90053, 3 /* Message */, \"Declare_a_private_field_named_0_90053\", \"Declare a private field named '{0}'.\"),\n Includes_imports_of_types_referenced_by_0: diag(90054, 3 /* Message */, \"Includes_imports_of_types_referenced_by_0_90054\", \"Includes imports of types referenced by '{0}'\"),\n Remove_type_from_import_declaration_from_0: diag(90055, 3 /* Message */, \"Remove_type_from_import_declaration_from_0_90055\", `Remove 'type' from import declaration from \"{0}\"`),\n Remove_type_from_import_of_0_from_1: diag(90056, 3 /* Message */, \"Remove_type_from_import_of_0_from_1_90056\", `Remove 'type' from import of '{0}' from \"{1}\"`),\n Add_import_from_0: diag(90057, 3 /* Message */, \"Add_import_from_0_90057\", 'Add import from \"{0}\"'),\n Update_import_from_0: diag(90058, 3 /* Message */, \"Update_import_from_0_90058\", 'Update import from \"{0}\"'),\n Export_0_from_module_1: diag(90059, 3 /* Message */, \"Export_0_from_module_1_90059\", \"Export '{0}' from module '{1}'\"),\n Export_all_referenced_locals: diag(90060, 3 /* Message */, \"Export_all_referenced_locals_90060\", \"Export all referenced locals\"),\n Update_modifiers_of_0: diag(90061, 3 /* Message */, \"Update_modifiers_of_0_90061\", \"Update modifiers of '{0}'\"),\n Add_annotation_of_type_0: diag(90062, 3 /* Message */, \"Add_annotation_of_type_0_90062\", \"Add annotation of type '{0}'\"),\n Add_return_type_0: diag(90063, 3 /* Message */, \"Add_return_type_0_90063\", \"Add return type '{0}'\"),\n Extract_base_class_to_variable: diag(90064, 3 /* Message */, \"Extract_base_class_to_variable_90064\", \"Extract base class to variable\"),\n Extract_default_export_to_variable: diag(90065, 3 /* Message */, \"Extract_default_export_to_variable_90065\", \"Extract default export to variable\"),\n Extract_binding_expressions_to_variable: diag(90066, 3 /* Message */, \"Extract_binding_expressions_to_variable_90066\", \"Extract binding expressions to variable\"),\n Add_all_missing_type_annotations: diag(90067, 3 /* Message */, \"Add_all_missing_type_annotations_90067\", \"Add all missing type annotations\"),\n Add_satisfies_and_an_inline_type_assertion_with_0: diag(90068, 3 /* Message */, \"Add_satisfies_and_an_inline_type_assertion_with_0_90068\", \"Add satisfies and an inline type assertion with '{0}'\"),\n Extract_to_variable_and_replace_with_0_as_typeof_0: diag(90069, 3 /* Message */, \"Extract_to_variable_and_replace_with_0_as_typeof_0_90069\", \"Extract to variable and replace with '{0} as typeof {0}'\"),\n Mark_array_literal_as_const: diag(90070, 3 /* Message */, \"Mark_array_literal_as_const_90070\", \"Mark array literal as const\"),\n Annotate_types_of_properties_expando_function_in_a_namespace: diag(90071, 3 /* Message */, \"Annotate_types_of_properties_expando_function_in_a_namespace_90071\", \"Annotate types of properties expando function in a namespace\"),\n Convert_function_to_an_ES2015_class: diag(95001, 3 /* Message */, \"Convert_function_to_an_ES2015_class_95001\", \"Convert function to an ES2015 class\"),\n Convert_0_to_1_in_0: diag(95003, 3 /* Message */, \"Convert_0_to_1_in_0_95003\", \"Convert '{0}' to '{1} in {0}'\"),\n Extract_to_0_in_1: diag(95004, 3 /* Message */, \"Extract_to_0_in_1_95004\", \"Extract to {0} in {1}\"),\n Extract_function: diag(95005, 3 /* Message */, \"Extract_function_95005\", \"Extract function\"),\n Extract_constant: diag(95006, 3 /* Message */, \"Extract_constant_95006\", \"Extract constant\"),\n Extract_to_0_in_enclosing_scope: diag(95007, 3 /* Message */, \"Extract_to_0_in_enclosing_scope_95007\", \"Extract to {0} in enclosing scope\"),\n Extract_to_0_in_1_scope: diag(95008, 3 /* Message */, \"Extract_to_0_in_1_scope_95008\", \"Extract to {0} in {1} scope\"),\n Annotate_with_type_from_JSDoc: diag(95009, 3 /* Message */, \"Annotate_with_type_from_JSDoc_95009\", \"Annotate with type from JSDoc\"),\n Infer_type_of_0_from_usage: diag(95011, 3 /* Message */, \"Infer_type_of_0_from_usage_95011\", \"Infer type of '{0}' from usage\"),\n Infer_parameter_types_from_usage: diag(95012, 3 /* Message */, \"Infer_parameter_types_from_usage_95012\", \"Infer parameter types from usage\"),\n Convert_to_default_import: diag(95013, 3 /* Message */, \"Convert_to_default_import_95013\", \"Convert to default import\"),\n Install_0: diag(95014, 3 /* Message */, \"Install_0_95014\", \"Install '{0}'\"),\n Replace_import_with_0: diag(95015, 3 /* Message */, \"Replace_import_with_0_95015\", \"Replace import with '{0}'.\"),\n Use_synthetic_default_member: diag(95016, 3 /* Message */, \"Use_synthetic_default_member_95016\", \"Use synthetic 'default' member.\"),\n Convert_to_ES_module: diag(95017, 3 /* Message */, \"Convert_to_ES_module_95017\", \"Convert to ES module\"),\n Add_undefined_type_to_property_0: diag(95018, 3 /* Message */, \"Add_undefined_type_to_property_0_95018\", \"Add 'undefined' type to property '{0}'\"),\n Add_initializer_to_property_0: diag(95019, 3 /* Message */, \"Add_initializer_to_property_0_95019\", \"Add initializer to property '{0}'\"),\n Add_definite_assignment_assertion_to_property_0: diag(95020, 3 /* Message */, \"Add_definite_assignment_assertion_to_property_0_95020\", \"Add definite assignment assertion to property '{0}'\"),\n Convert_all_type_literals_to_mapped_type: diag(95021, 3 /* Message */, \"Convert_all_type_literals_to_mapped_type_95021\", \"Convert all type literals to mapped type\"),\n Add_all_missing_members: diag(95022, 3 /* Message */, \"Add_all_missing_members_95022\", \"Add all missing members\"),\n Infer_all_types_from_usage: diag(95023, 3 /* Message */, \"Infer_all_types_from_usage_95023\", \"Infer all types from usage\"),\n Delete_all_unused_declarations: diag(95024, 3 /* Message */, \"Delete_all_unused_declarations_95024\", \"Delete all unused declarations\"),\n Prefix_all_unused_declarations_with_where_possible: diag(95025, 3 /* Message */, \"Prefix_all_unused_declarations_with_where_possible_95025\", \"Prefix all unused declarations with '_' where possible\"),\n Fix_all_detected_spelling_errors: diag(95026, 3 /* Message */, \"Fix_all_detected_spelling_errors_95026\", \"Fix all detected spelling errors\"),\n Add_initializers_to_all_uninitialized_properties: diag(95027, 3 /* Message */, \"Add_initializers_to_all_uninitialized_properties_95027\", \"Add initializers to all uninitialized properties\"),\n Add_definite_assignment_assertions_to_all_uninitialized_properties: diag(95028, 3 /* Message */, \"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\", \"Add definite assignment assertions to all uninitialized properties\"),\n Add_undefined_type_to_all_uninitialized_properties: diag(95029, 3 /* Message */, \"Add_undefined_type_to_all_uninitialized_properties_95029\", \"Add undefined type to all uninitialized properties\"),\n Change_all_jsdoc_style_types_to_TypeScript: diag(95030, 3 /* Message */, \"Change_all_jsdoc_style_types_to_TypeScript_95030\", \"Change all jsdoc-style types to TypeScript\"),\n Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types: diag(95031, 3 /* Message */, \"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\", \"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),\n Implement_all_unimplemented_interfaces: diag(95032, 3 /* Message */, \"Implement_all_unimplemented_interfaces_95032\", \"Implement all unimplemented interfaces\"),\n Install_all_missing_types_packages: diag(95033, 3 /* Message */, \"Install_all_missing_types_packages_95033\", \"Install all missing types packages\"),\n Rewrite_all_as_indexed_access_types: diag(95034, 3 /* Message */, \"Rewrite_all_as_indexed_access_types_95034\", \"Rewrite all as indexed access types\"),\n Convert_all_to_default_imports: diag(95035, 3 /* Message */, \"Convert_all_to_default_imports_95035\", \"Convert all to default imports\"),\n Make_all_super_calls_the_first_statement_in_their_constructor: diag(95036, 3 /* Message */, \"Make_all_super_calls_the_first_statement_in_their_constructor_95036\", \"Make all 'super()' calls the first statement in their constructor\"),\n Add_qualifier_to_all_unresolved_variables_matching_a_member_name: diag(95037, 3 /* Message */, \"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\", \"Add qualifier to all unresolved variables matching a member name\"),\n Change_all_extended_interfaces_to_implements: diag(95038, 3 /* Message */, \"Change_all_extended_interfaces_to_implements_95038\", \"Change all extended interfaces to 'implements'\"),\n Add_all_missing_super_calls: diag(95039, 3 /* Message */, \"Add_all_missing_super_calls_95039\", \"Add all missing super calls\"),\n Implement_all_inherited_abstract_classes: diag(95040, 3 /* Message */, \"Implement_all_inherited_abstract_classes_95040\", \"Implement all inherited abstract classes\"),\n Add_all_missing_async_modifiers: diag(95041, 3 /* Message */, \"Add_all_missing_async_modifiers_95041\", \"Add all missing 'async' modifiers\"),\n Add_ts_ignore_to_all_error_messages: diag(95042, 3 /* Message */, \"Add_ts_ignore_to_all_error_messages_95042\", \"Add '@ts-ignore' to all error messages\"),\n Annotate_everything_with_types_from_JSDoc: diag(95043, 3 /* Message */, \"Annotate_everything_with_types_from_JSDoc_95043\", \"Annotate everything with types from JSDoc\"),\n Add_to_all_uncalled_decorators: diag(95044, 3 /* Message */, \"Add_to_all_uncalled_decorators_95044\", \"Add '()' to all uncalled decorators\"),\n Convert_all_constructor_functions_to_classes: diag(95045, 3 /* Message */, \"Convert_all_constructor_functions_to_classes_95045\", \"Convert all constructor functions to classes\"),\n Generate_get_and_set_accessors: diag(95046, 3 /* Message */, \"Generate_get_and_set_accessors_95046\", \"Generate 'get' and 'set' accessors\"),\n Convert_require_to_import: diag(95047, 3 /* Message */, \"Convert_require_to_import_95047\", \"Convert 'require' to 'import'\"),\n Convert_all_require_to_import: diag(95048, 3 /* Message */, \"Convert_all_require_to_import_95048\", \"Convert all 'require' to 'import'\"),\n Move_to_a_new_file: diag(95049, 3 /* Message */, \"Move_to_a_new_file_95049\", \"Move to a new file\"),\n Remove_unreachable_code: diag(95050, 3 /* Message */, \"Remove_unreachable_code_95050\", \"Remove unreachable code\"),\n Remove_all_unreachable_code: diag(95051, 3 /* Message */, \"Remove_all_unreachable_code_95051\", \"Remove all unreachable code\"),\n Add_missing_typeof: diag(95052, 3 /* Message */, \"Add_missing_typeof_95052\", \"Add missing 'typeof'\"),\n Remove_unused_label: diag(95053, 3 /* Message */, \"Remove_unused_label_95053\", \"Remove unused label\"),\n Remove_all_unused_labels: diag(95054, 3 /* Message */, \"Remove_all_unused_labels_95054\", \"Remove all unused labels\"),\n Convert_0_to_mapped_object_type: diag(95055, 3 /* Message */, \"Convert_0_to_mapped_object_type_95055\", \"Convert '{0}' to mapped object type\"),\n Convert_namespace_import_to_named_imports: diag(95056, 3 /* Message */, \"Convert_namespace_import_to_named_imports_95056\", \"Convert namespace import to named imports\"),\n Convert_named_imports_to_namespace_import: diag(95057, 3 /* Message */, \"Convert_named_imports_to_namespace_import_95057\", \"Convert named imports to namespace import\"),\n Add_or_remove_braces_in_an_arrow_function: diag(95058, 3 /* Message */, \"Add_or_remove_braces_in_an_arrow_function_95058\", \"Add or remove braces in an arrow function\"),\n Add_braces_to_arrow_function: diag(95059, 3 /* Message */, \"Add_braces_to_arrow_function_95059\", \"Add braces to arrow function\"),\n Remove_braces_from_arrow_function: diag(95060, 3 /* Message */, \"Remove_braces_from_arrow_function_95060\", \"Remove braces from arrow function\"),\n Convert_default_export_to_named_export: diag(95061, 3 /* Message */, \"Convert_default_export_to_named_export_95061\", \"Convert default export to named export\"),\n Convert_named_export_to_default_export: diag(95062, 3 /* Message */, \"Convert_named_export_to_default_export_95062\", \"Convert named export to default export\"),\n Add_missing_enum_member_0: diag(95063, 3 /* Message */, \"Add_missing_enum_member_0_95063\", \"Add missing enum member '{0}'\"),\n Add_all_missing_imports: diag(95064, 3 /* Message */, \"Add_all_missing_imports_95064\", \"Add all missing imports\"),\n Convert_to_async_function: diag(95065, 3 /* Message */, \"Convert_to_async_function_95065\", \"Convert to async function\"),\n Convert_all_to_async_functions: diag(95066, 3 /* Message */, \"Convert_all_to_async_functions_95066\", \"Convert all to async functions\"),\n Add_missing_call_parentheses: diag(95067, 3 /* Message */, \"Add_missing_call_parentheses_95067\", \"Add missing call parentheses\"),\n Add_all_missing_call_parentheses: diag(95068, 3 /* Message */, \"Add_all_missing_call_parentheses_95068\", \"Add all missing call parentheses\"),\n Add_unknown_conversion_for_non_overlapping_types: diag(95069, 3 /* Message */, \"Add_unknown_conversion_for_non_overlapping_types_95069\", \"Add 'unknown' conversion for non-overlapping types\"),\n Add_unknown_to_all_conversions_of_non_overlapping_types: diag(95070, 3 /* Message */, \"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\", \"Add 'unknown' to all conversions of non-overlapping types\"),\n Add_missing_new_operator_to_call: diag(95071, 3 /* Message */, \"Add_missing_new_operator_to_call_95071\", \"Add missing 'new' operator to call\"),\n Add_missing_new_operator_to_all_calls: diag(95072, 3 /* Message */, \"Add_missing_new_operator_to_all_calls_95072\", \"Add missing 'new' operator to all calls\"),\n Add_names_to_all_parameters_without_names: diag(95073, 3 /* Message */, \"Add_names_to_all_parameters_without_names_95073\", \"Add names to all parameters without names\"),\n Enable_the_experimentalDecorators_option_in_your_configuration_file: diag(95074, 3 /* Message */, \"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\", \"Enable the 'experimentalDecorators' option in your configuration file\"),\n Convert_parameters_to_destructured_object: diag(95075, 3 /* Message */, \"Convert_parameters_to_destructured_object_95075\", \"Convert parameters to destructured object\"),\n Extract_type: diag(95077, 3 /* Message */, \"Extract_type_95077\", \"Extract type\"),\n Extract_to_type_alias: diag(95078, 3 /* Message */, \"Extract_to_type_alias_95078\", \"Extract to type alias\"),\n Extract_to_typedef: diag(95079, 3 /* Message */, \"Extract_to_typedef_95079\", \"Extract to typedef\"),\n Infer_this_type_of_0_from_usage: diag(95080, 3 /* Message */, \"Infer_this_type_of_0_from_usage_95080\", \"Infer 'this' type of '{0}' from usage\"),\n Add_const_to_unresolved_variable: diag(95081, 3 /* Message */, \"Add_const_to_unresolved_variable_95081\", \"Add 'const' to unresolved variable\"),\n Add_const_to_all_unresolved_variables: diag(95082, 3 /* Message */, \"Add_const_to_all_unresolved_variables_95082\", \"Add 'const' to all unresolved variables\"),\n Add_await: diag(95083, 3 /* Message */, \"Add_await_95083\", \"Add 'await'\"),\n Add_await_to_initializer_for_0: diag(95084, 3 /* Message */, \"Add_await_to_initializer_for_0_95084\", \"Add 'await' to initializer for '{0}'\"),\n Fix_all_expressions_possibly_missing_await: diag(95085, 3 /* Message */, \"Fix_all_expressions_possibly_missing_await_95085\", \"Fix all expressions possibly missing 'await'\"),\n Remove_unnecessary_await: diag(95086, 3 /* Message */, \"Remove_unnecessary_await_95086\", \"Remove unnecessary 'await'\"),\n Remove_all_unnecessary_uses_of_await: diag(95087, 3 /* Message */, \"Remove_all_unnecessary_uses_of_await_95087\", \"Remove all unnecessary uses of 'await'\"),\n Enable_the_jsx_flag_in_your_configuration_file: diag(95088, 3 /* Message */, \"Enable_the_jsx_flag_in_your_configuration_file_95088\", \"Enable the '--jsx' flag in your configuration file\"),\n Add_await_to_initializers: diag(95089, 3 /* Message */, \"Add_await_to_initializers_95089\", \"Add 'await' to initializers\"),\n Extract_to_interface: diag(95090, 3 /* Message */, \"Extract_to_interface_95090\", \"Extract to interface\"),\n Convert_to_a_bigint_numeric_literal: diag(95091, 3 /* Message */, \"Convert_to_a_bigint_numeric_literal_95091\", \"Convert to a bigint numeric literal\"),\n Convert_all_to_bigint_numeric_literals: diag(95092, 3 /* Message */, \"Convert_all_to_bigint_numeric_literals_95092\", \"Convert all to bigint numeric literals\"),\n Convert_const_to_let: diag(95093, 3 /* Message */, \"Convert_const_to_let_95093\", \"Convert 'const' to 'let'\"),\n Prefix_with_declare: diag(95094, 3 /* Message */, \"Prefix_with_declare_95094\", \"Prefix with 'declare'\"),\n Prefix_all_incorrect_property_declarations_with_declare: diag(95095, 3 /* Message */, \"Prefix_all_incorrect_property_declarations_with_declare_95095\", \"Prefix all incorrect property declarations with 'declare'\"),\n Convert_to_template_string: diag(95096, 3 /* Message */, \"Convert_to_template_string_95096\", \"Convert to template string\"),\n Add_export_to_make_this_file_into_a_module: diag(95097, 3 /* Message */, \"Add_export_to_make_this_file_into_a_module_95097\", \"Add 'export {}' to make this file into a module\"),\n Set_the_target_option_in_your_configuration_file_to_0: diag(95098, 3 /* Message */, \"Set_the_target_option_in_your_configuration_file_to_0_95098\", \"Set the 'target' option in your configuration file to '{0}'\"),\n Set_the_module_option_in_your_configuration_file_to_0: diag(95099, 3 /* Message */, \"Set_the_module_option_in_your_configuration_file_to_0_95099\", \"Set the 'module' option in your configuration file to '{0}'\"),\n Convert_invalid_character_to_its_html_entity_code: diag(95100, 3 /* Message */, \"Convert_invalid_character_to_its_html_entity_code_95100\", \"Convert invalid character to its html entity code\"),\n Convert_all_invalid_characters_to_HTML_entity_code: diag(95101, 3 /* Message */, \"Convert_all_invalid_characters_to_HTML_entity_code_95101\", \"Convert all invalid characters to HTML entity code\"),\n Convert_all_const_to_let: diag(95102, 3 /* Message */, \"Convert_all_const_to_let_95102\", \"Convert all 'const' to 'let'\"),\n Convert_function_expression_0_to_arrow_function: diag(95105, 3 /* Message */, \"Convert_function_expression_0_to_arrow_function_95105\", \"Convert function expression '{0}' to arrow function\"),\n Convert_function_declaration_0_to_arrow_function: diag(95106, 3 /* Message */, \"Convert_function_declaration_0_to_arrow_function_95106\", \"Convert function declaration '{0}' to arrow function\"),\n Fix_all_implicit_this_errors: diag(95107, 3 /* Message */, \"Fix_all_implicit_this_errors_95107\", \"Fix all implicit-'this' errors\"),\n Wrap_invalid_character_in_an_expression_container: diag(95108, 3 /* Message */, \"Wrap_invalid_character_in_an_expression_container_95108\", \"Wrap invalid character in an expression container\"),\n Wrap_all_invalid_characters_in_an_expression_container: diag(95109, 3 /* Message */, \"Wrap_all_invalid_characters_in_an_expression_container_95109\", \"Wrap all invalid characters in an expression container\"),\n Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file: diag(95110, 3 /* Message */, \"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110\", \"Visit https://aka.ms/tsconfig to read more about this file\"),\n Add_a_return_statement: diag(95111, 3 /* Message */, \"Add_a_return_statement_95111\", \"Add a return statement\"),\n Remove_braces_from_arrow_function_body: diag(95112, 3 /* Message */, \"Remove_braces_from_arrow_function_body_95112\", \"Remove braces from arrow function body\"),\n Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal: diag(95113, 3 /* Message */, \"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113\", \"Wrap the following body with parentheses which should be an object literal\"),\n Add_all_missing_return_statement: diag(95114, 3 /* Message */, \"Add_all_missing_return_statement_95114\", \"Add all missing return statement\"),\n Remove_braces_from_all_arrow_function_bodies_with_relevant_issues: diag(95115, 3 /* Message */, \"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115\", \"Remove braces from all arrow function bodies with relevant issues\"),\n Wrap_all_object_literal_with_parentheses: diag(95116, 3 /* Message */, \"Wrap_all_object_literal_with_parentheses_95116\", \"Wrap all object literal with parentheses\"),\n Move_labeled_tuple_element_modifiers_to_labels: diag(95117, 3 /* Message */, \"Move_labeled_tuple_element_modifiers_to_labels_95117\", \"Move labeled tuple element modifiers to labels\"),\n Convert_overload_list_to_single_signature: diag(95118, 3 /* Message */, \"Convert_overload_list_to_single_signature_95118\", \"Convert overload list to single signature\"),\n Generate_get_and_set_accessors_for_all_overriding_properties: diag(95119, 3 /* Message */, \"Generate_get_and_set_accessors_for_all_overriding_properties_95119\", \"Generate 'get' and 'set' accessors for all overriding properties\"),\n Wrap_in_JSX_fragment: diag(95120, 3 /* Message */, \"Wrap_in_JSX_fragment_95120\", \"Wrap in JSX fragment\"),\n Wrap_all_unparented_JSX_in_JSX_fragment: diag(95121, 3 /* Message */, \"Wrap_all_unparented_JSX_in_JSX_fragment_95121\", \"Wrap all unparented JSX in JSX fragment\"),\n Convert_arrow_function_or_function_expression: diag(95122, 3 /* Message */, \"Convert_arrow_function_or_function_expression_95122\", \"Convert arrow function or function expression\"),\n Convert_to_anonymous_function: diag(95123, 3 /* Message */, \"Convert_to_anonymous_function_95123\", \"Convert to anonymous function\"),\n Convert_to_named_function: diag(95124, 3 /* Message */, \"Convert_to_named_function_95124\", \"Convert to named function\"),\n Convert_to_arrow_function: diag(95125, 3 /* Message */, \"Convert_to_arrow_function_95125\", \"Convert to arrow function\"),\n Remove_parentheses: diag(95126, 3 /* Message */, \"Remove_parentheses_95126\", \"Remove parentheses\"),\n Could_not_find_a_containing_arrow_function: diag(95127, 3 /* Message */, \"Could_not_find_a_containing_arrow_function_95127\", \"Could not find a containing arrow function\"),\n Containing_function_is_not_an_arrow_function: diag(95128, 3 /* Message */, \"Containing_function_is_not_an_arrow_function_95128\", \"Containing function is not an arrow function\"),\n Could_not_find_export_statement: diag(95129, 3 /* Message */, \"Could_not_find_export_statement_95129\", \"Could not find export statement\"),\n This_file_already_has_a_default_export: diag(95130, 3 /* Message */, \"This_file_already_has_a_default_export_95130\", \"This file already has a default export\"),\n Could_not_find_import_clause: diag(95131, 3 /* Message */, \"Could_not_find_import_clause_95131\", \"Could not find import clause\"),\n Could_not_find_namespace_import_or_named_imports: diag(95132, 3 /* Message */, \"Could_not_find_namespace_import_or_named_imports_95132\", \"Could not find namespace import or named imports\"),\n Selection_is_not_a_valid_type_node: diag(95133, 3 /* Message */, \"Selection_is_not_a_valid_type_node_95133\", \"Selection is not a valid type node\"),\n No_type_could_be_extracted_from_this_type_node: diag(95134, 3 /* Message */, \"No_type_could_be_extracted_from_this_type_node_95134\", \"No type could be extracted from this type node\"),\n Could_not_find_property_for_which_to_generate_accessor: diag(95135, 3 /* Message */, \"Could_not_find_property_for_which_to_generate_accessor_95135\", \"Could not find property for which to generate accessor\"),\n Name_is_not_valid: diag(95136, 3 /* Message */, \"Name_is_not_valid_95136\", \"Name is not valid\"),\n Can_only_convert_property_with_modifier: diag(95137, 3 /* Message */, \"Can_only_convert_property_with_modifier_95137\", \"Can only convert property with modifier\"),\n Switch_each_misused_0_to_1: diag(95138, 3 /* Message */, \"Switch_each_misused_0_to_1_95138\", \"Switch each misused '{0}' to '{1}'\"),\n Convert_to_optional_chain_expression: diag(95139, 3 /* Message */, \"Convert_to_optional_chain_expression_95139\", \"Convert to optional chain expression\"),\n Could_not_find_convertible_access_expression: diag(95140, 3 /* Message */, \"Could_not_find_convertible_access_expression_95140\", \"Could not find convertible access expression\"),\n Could_not_find_matching_access_expressions: diag(95141, 3 /* Message */, \"Could_not_find_matching_access_expressions_95141\", \"Could not find matching access expressions\"),\n Can_only_convert_logical_AND_access_chains: diag(95142, 3 /* Message */, \"Can_only_convert_logical_AND_access_chains_95142\", \"Can only convert logical AND access chains\"),\n Add_void_to_Promise_resolved_without_a_value: diag(95143, 3 /* Message */, \"Add_void_to_Promise_resolved_without_a_value_95143\", \"Add 'void' to Promise resolved without a value\"),\n Add_void_to_all_Promises_resolved_without_a_value: diag(95144, 3 /* Message */, \"Add_void_to_all_Promises_resolved_without_a_value_95144\", \"Add 'void' to all Promises resolved without a value\"),\n Use_element_access_for_0: diag(95145, 3 /* Message */, \"Use_element_access_for_0_95145\", \"Use element access for '{0}'\"),\n Use_element_access_for_all_undeclared_properties: diag(95146, 3 /* Message */, \"Use_element_access_for_all_undeclared_properties_95146\", \"Use element access for all undeclared properties.\"),\n Delete_all_unused_imports: diag(95147, 3 /* Message */, \"Delete_all_unused_imports_95147\", \"Delete all unused imports\"),\n Infer_function_return_type: diag(95148, 3 /* Message */, \"Infer_function_return_type_95148\", \"Infer function return type\"),\n Return_type_must_be_inferred_from_a_function: diag(95149, 3 /* Message */, \"Return_type_must_be_inferred_from_a_function_95149\", \"Return type must be inferred from a function\"),\n Could_not_determine_function_return_type: diag(95150, 3 /* Message */, \"Could_not_determine_function_return_type_95150\", \"Could not determine function return type\"),\n Could_not_convert_to_arrow_function: diag(95151, 3 /* Message */, \"Could_not_convert_to_arrow_function_95151\", \"Could not convert to arrow function\"),\n Could_not_convert_to_named_function: diag(95152, 3 /* Message */, \"Could_not_convert_to_named_function_95152\", \"Could not convert to named function\"),\n Could_not_convert_to_anonymous_function: diag(95153, 3 /* Message */, \"Could_not_convert_to_anonymous_function_95153\", \"Could not convert to anonymous function\"),\n Can_only_convert_string_concatenations_and_string_literals: diag(95154, 3 /* Message */, \"Can_only_convert_string_concatenations_and_string_literals_95154\", \"Can only convert string concatenations and string literals\"),\n Selection_is_not_a_valid_statement_or_statements: diag(95155, 3 /* Message */, \"Selection_is_not_a_valid_statement_or_statements_95155\", \"Selection is not a valid statement or statements\"),\n Add_missing_function_declaration_0: diag(95156, 3 /* Message */, \"Add_missing_function_declaration_0_95156\", \"Add missing function declaration '{0}'\"),\n Add_all_missing_function_declarations: diag(95157, 3 /* Message */, \"Add_all_missing_function_declarations_95157\", \"Add all missing function declarations\"),\n Method_not_implemented: diag(95158, 3 /* Message */, \"Method_not_implemented_95158\", \"Method not implemented.\"),\n Function_not_implemented: diag(95159, 3 /* Message */, \"Function_not_implemented_95159\", \"Function not implemented.\"),\n Add_override_modifier: diag(95160, 3 /* Message */, \"Add_override_modifier_95160\", \"Add 'override' modifier\"),\n Remove_override_modifier: diag(95161, 3 /* Message */, \"Remove_override_modifier_95161\", \"Remove 'override' modifier\"),\n Add_all_missing_override_modifiers: diag(95162, 3 /* Message */, \"Add_all_missing_override_modifiers_95162\", \"Add all missing 'override' modifiers\"),\n Remove_all_unnecessary_override_modifiers: diag(95163, 3 /* Message */, \"Remove_all_unnecessary_override_modifiers_95163\", \"Remove all unnecessary 'override' modifiers\"),\n Can_only_convert_named_export: diag(95164, 3 /* Message */, \"Can_only_convert_named_export_95164\", \"Can only convert named export\"),\n Add_missing_properties: diag(95165, 3 /* Message */, \"Add_missing_properties_95165\", \"Add missing properties\"),\n Add_all_missing_properties: diag(95166, 3 /* Message */, \"Add_all_missing_properties_95166\", \"Add all missing properties\"),\n Add_missing_attributes: diag(95167, 3 /* Message */, \"Add_missing_attributes_95167\", \"Add missing attributes\"),\n Add_all_missing_attributes: diag(95168, 3 /* Message */, \"Add_all_missing_attributes_95168\", \"Add all missing attributes\"),\n Add_undefined_to_optional_property_type: diag(95169, 3 /* Message */, \"Add_undefined_to_optional_property_type_95169\", \"Add 'undefined' to optional property type\"),\n Convert_named_imports_to_default_import: diag(95170, 3 /* Message */, \"Convert_named_imports_to_default_import_95170\", \"Convert named imports to default import\"),\n Delete_unused_param_tag_0: diag(95171, 3 /* Message */, \"Delete_unused_param_tag_0_95171\", \"Delete unused '@param' tag '{0}'\"),\n Delete_all_unused_param_tags: diag(95172, 3 /* Message */, \"Delete_all_unused_param_tags_95172\", \"Delete all unused '@param' tags\"),\n Rename_param_tag_name_0_to_1: diag(95173, 3 /* Message */, \"Rename_param_tag_name_0_to_1_95173\", \"Rename '@param' tag name '{0}' to '{1}'\"),\n Use_0: diag(95174, 3 /* Message */, \"Use_0_95174\", \"Use `{0}`.\"),\n Use_Number_isNaN_in_all_conditions: diag(95175, 3 /* Message */, \"Use_Number_isNaN_in_all_conditions_95175\", \"Use `Number.isNaN` in all conditions.\"),\n Convert_typedef_to_TypeScript_type: diag(95176, 3 /* Message */, \"Convert_typedef_to_TypeScript_type_95176\", \"Convert typedef to TypeScript type.\"),\n Convert_all_typedef_to_TypeScript_types: diag(95177, 3 /* Message */, \"Convert_all_typedef_to_TypeScript_types_95177\", \"Convert all typedef to TypeScript types.\"),\n Move_to_file: diag(95178, 3 /* Message */, \"Move_to_file_95178\", \"Move to file\"),\n Cannot_move_to_file_selected_file_is_invalid: diag(95179, 3 /* Message */, \"Cannot_move_to_file_selected_file_is_invalid_95179\", \"Cannot move to file, selected file is invalid\"),\n Use_import_type: diag(95180, 3 /* Message */, \"Use_import_type_95180\", \"Use 'import type'\"),\n Use_type_0: diag(95181, 3 /* Message */, \"Use_type_0_95181\", \"Use 'type {0}'\"),\n Fix_all_with_type_only_imports: diag(95182, 3 /* Message */, \"Fix_all_with_type_only_imports_95182\", \"Fix all with type-only imports\"),\n Cannot_move_statements_to_the_selected_file: diag(95183, 3 /* Message */, \"Cannot_move_statements_to_the_selected_file_95183\", \"Cannot move statements to the selected file\"),\n Inline_variable: diag(95184, 3 /* Message */, \"Inline_variable_95184\", \"Inline variable\"),\n Could_not_find_variable_to_inline: diag(95185, 3 /* Message */, \"Could_not_find_variable_to_inline_95185\", \"Could not find variable to inline.\"),\n Variables_with_multiple_declarations_cannot_be_inlined: diag(95186, 3 /* Message */, \"Variables_with_multiple_declarations_cannot_be_inlined_95186\", \"Variables with multiple declarations cannot be inlined.\"),\n Add_missing_comma_for_object_member_completion_0: diag(95187, 3 /* Message */, \"Add_missing_comma_for_object_member_completion_0_95187\", \"Add missing comma for object member completion '{0}'.\"),\n Add_missing_parameter_to_0: diag(95188, 3 /* Message */, \"Add_missing_parameter_to_0_95188\", \"Add missing parameter to '{0}'\"),\n Add_missing_parameters_to_0: diag(95189, 3 /* Message */, \"Add_missing_parameters_to_0_95189\", \"Add missing parameters to '{0}'\"),\n Add_all_missing_parameters: diag(95190, 3 /* Message */, \"Add_all_missing_parameters_95190\", \"Add all missing parameters\"),\n Add_optional_parameter_to_0: diag(95191, 3 /* Message */, \"Add_optional_parameter_to_0_95191\", \"Add optional parameter to '{0}'\"),\n Add_optional_parameters_to_0: diag(95192, 3 /* Message */, \"Add_optional_parameters_to_0_95192\", \"Add optional parameters to '{0}'\"),\n Add_all_optional_parameters: diag(95193, 3 /* Message */, \"Add_all_optional_parameters_95193\", \"Add all optional parameters\"),\n Wrap_in_parentheses: diag(95194, 3 /* Message */, \"Wrap_in_parentheses_95194\", \"Wrap in parentheses\"),\n Wrap_all_invalid_decorator_expressions_in_parentheses: diag(95195, 3 /* Message */, \"Wrap_all_invalid_decorator_expressions_in_parentheses_95195\", \"Wrap all invalid decorator expressions in parentheses\"),\n Add_resolution_mode_import_attribute: diag(95196, 3 /* Message */, \"Add_resolution_mode_import_attribute_95196\", \"Add 'resolution-mode' import attribute\"),\n Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it: diag(95197, 3 /* Message */, \"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197\", \"Add 'resolution-mode' import attribute to all type-only imports that need it\"),\n No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: diag(18004, 1 /* Error */, \"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\", \"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),\n Classes_may_not_have_a_field_named_constructor: diag(18006, 1 /* Error */, \"Classes_may_not_have_a_field_named_constructor_18006\", \"Classes may not have a field named 'constructor'.\"),\n JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: diag(18007, 1 /* Error */, \"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\", \"JSX expressions may not use the comma operator. Did you mean to write an array?\"),\n Private_identifiers_cannot_be_used_as_parameters: diag(18009, 1 /* Error */, \"Private_identifiers_cannot_be_used_as_parameters_18009\", \"Private identifiers cannot be used as parameters.\"),\n An_accessibility_modifier_cannot_be_used_with_a_private_identifier: diag(18010, 1 /* Error */, \"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010\", \"An accessibility modifier cannot be used with a private identifier.\"),\n The_operand_of_a_delete_operator_cannot_be_a_private_identifier: diag(18011, 1 /* Error */, \"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011\", \"The operand of a 'delete' operator cannot be a private identifier.\"),\n constructor_is_a_reserved_word: diag(18012, 1 /* Error */, \"constructor_is_a_reserved_word_18012\", \"'#constructor' is a reserved word.\"),\n Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier: diag(18013, 1 /* Error */, \"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013\", \"Property '{0}' is not accessible outside class '{1}' because it has a private identifier.\"),\n The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling: diag(18014, 1 /* Error */, \"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014\", \"The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.\"),\n Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2: diag(18015, 1 /* Error */, \"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015\", \"Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.\"),\n Private_identifiers_are_not_allowed_outside_class_bodies: diag(18016, 1 /* Error */, \"Private_identifiers_are_not_allowed_outside_class_bodies_18016\", \"Private identifiers are not allowed outside class bodies.\"),\n The_shadowing_declaration_of_0_is_defined_here: diag(18017, 1 /* Error */, \"The_shadowing_declaration_of_0_is_defined_here_18017\", \"The shadowing declaration of '{0}' is defined here\"),\n The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here: diag(18018, 1 /* Error */, \"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018\", \"The declaration of '{0}' that you probably intended to use is defined here\"),\n _0_modifier_cannot_be_used_with_a_private_identifier: diag(18019, 1 /* Error */, \"_0_modifier_cannot_be_used_with_a_private_identifier_18019\", \"'{0}' modifier cannot be used with a private identifier.\"),\n An_enum_member_cannot_be_named_with_a_private_identifier: diag(18024, 1 /* Error */, \"An_enum_member_cannot_be_named_with_a_private_identifier_18024\", \"An enum member cannot be named with a private identifier.\"),\n can_only_be_used_at_the_start_of_a_file: diag(18026, 1 /* Error */, \"can_only_be_used_at_the_start_of_a_file_18026\", \"'#!' can only be used at the start of a file.\"),\n Compiler_reserves_name_0_when_emitting_private_identifier_downlevel: diag(18027, 1 /* Error */, \"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027\", \"Compiler reserves name '{0}' when emitting private identifier downlevel.\"),\n Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18028, 1 /* Error */, \"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028\", \"Private identifiers are only available when targeting ECMAScript 2015 and higher.\"),\n Private_identifiers_are_not_allowed_in_variable_declarations: diag(18029, 1 /* Error */, \"Private_identifiers_are_not_allowed_in_variable_declarations_18029\", \"Private identifiers are not allowed in variable declarations.\"),\n An_optional_chain_cannot_contain_private_identifiers: diag(18030, 1 /* Error */, \"An_optional_chain_cannot_contain_private_identifiers_18030\", \"An optional chain cannot contain private identifiers.\"),\n The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents: diag(18031, 1 /* Error */, \"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031\", \"The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.\"),\n The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some: diag(18032, 1 /* Error */, \"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032\", \"The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.\"),\n Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values: diag(18033, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033\", \"Type '{0}' is not assignable to type '{1}' as required for computed enum member values.\"),\n Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment: diag(18034, 3 /* Message */, \"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034\", \"Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.\"),\n Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(18035, 1 /* Error */, \"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035\", \"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.\"),\n Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator: diag(18036, 1 /* Error */, \"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036\", \"Class decorators can't be used with static private identifier. Consider removing the experimental decorator.\"),\n await_expression_cannot_be_used_inside_a_class_static_block: diag(18037, 1 /* Error */, \"await_expression_cannot_be_used_inside_a_class_static_block_18037\", \"'await' expression cannot be used inside a class static block.\"),\n for_await_loops_cannot_be_used_inside_a_class_static_block: diag(18038, 1 /* Error */, \"for_await_loops_cannot_be_used_inside_a_class_static_block_18038\", \"'for await' loops cannot be used inside a class static block.\"),\n Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: diag(18039, 1 /* Error */, \"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039\", \"Invalid use of '{0}'. It cannot be used inside a class static block.\"),\n A_return_statement_cannot_be_used_inside_a_class_static_block: diag(18041, 1 /* Error */, \"A_return_statement_cannot_be_used_inside_a_class_static_block_18041\", \"A 'return' statement cannot be used inside a class static block.\"),\n _0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: diag(18042, 1 /* Error */, \"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042\", \"'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.\"),\n Types_cannot_appear_in_export_declarations_in_JavaScript_files: diag(18043, 1 /* Error */, \"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043\", \"Types cannot appear in export declarations in JavaScript files.\"),\n _0_is_automatically_exported_here: diag(18044, 3 /* Message */, \"_0_is_automatically_exported_here_18044\", \"'{0}' is automatically exported here.\"),\n Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18045, 1 /* Error */, \"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045\", \"Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.\"),\n _0_is_of_type_unknown: diag(18046, 1 /* Error */, \"_0_is_of_type_unknown_18046\", \"'{0}' is of type 'unknown'.\"),\n _0_is_possibly_null: diag(18047, 1 /* Error */, \"_0_is_possibly_null_18047\", \"'{0}' is possibly 'null'.\"),\n _0_is_possibly_undefined: diag(18048, 1 /* Error */, \"_0_is_possibly_undefined_18048\", \"'{0}' is possibly 'undefined'.\"),\n _0_is_possibly_null_or_undefined: diag(18049, 1 /* Error */, \"_0_is_possibly_null_or_undefined_18049\", \"'{0}' is possibly 'null' or 'undefined'.\"),\n The_value_0_cannot_be_used_here: diag(18050, 1 /* Error */, \"The_value_0_cannot_be_used_here_18050\", \"The value '{0}' cannot be used here.\"),\n Compiler_option_0_cannot_be_given_an_empty_string: diag(18051, 1 /* Error */, \"Compiler_option_0_cannot_be_given_an_empty_string_18051\", \"Compiler option '{0}' cannot be given an empty string.\"),\n Its_type_0_is_not_a_valid_JSX_element_type: diag(18053, 1 /* Error */, \"Its_type_0_is_not_a_valid_JSX_element_type_18053\", \"Its type '{0}' is not a valid JSX element type.\"),\n await_using_statements_cannot_be_used_inside_a_class_static_block: diag(18054, 1 /* Error */, \"await_using_statements_cannot_be_used_inside_a_class_static_block_18054\", \"'await using' statements cannot be used inside a class static block.\"),\n _0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled: diag(18055, 1 /* Error */, \"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055\", \"'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.\"),\n Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled: diag(18056, 1 /* Error */, \"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056\", \"Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.\"),\n String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020: diag(18057, 1 /* Error */, \"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057\", \"String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.\"),\n Default_imports_are_not_allowed_in_a_deferred_import: diag(18058, 1 /* Error */, \"Default_imports_are_not_allowed_in_a_deferred_import_18058\", \"Default imports are not allowed in a deferred import.\"),\n Named_imports_are_not_allowed_in_a_deferred_import: diag(18059, 1 /* Error */, \"Named_imports_are_not_allowed_in_a_deferred_import_18059\", \"Named imports are not allowed in a deferred import.\"),\n Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve: diag(18060, 1 /* Error */, \"Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve_18060\", \"Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.\"),\n _0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer: diag(18061, 1 /* Error */, \"_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer_18061\", \"'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?\")\n};\n\n// src/compiler/scanner.ts\nfunction tokenIsIdentifierOrKeyword(token) {\n return token >= 80 /* Identifier */;\n}\nfunction tokenIsIdentifierOrKeywordOrGreaterThan(token) {\n return token === 32 /* GreaterThanToken */ || tokenIsIdentifierOrKeyword(token);\n}\nvar textToKeywordObj = {\n abstract: 128 /* AbstractKeyword */,\n accessor: 129 /* AccessorKeyword */,\n any: 133 /* AnyKeyword */,\n as: 130 /* AsKeyword */,\n asserts: 131 /* AssertsKeyword */,\n assert: 132 /* AssertKeyword */,\n bigint: 163 /* BigIntKeyword */,\n boolean: 136 /* BooleanKeyword */,\n break: 83 /* BreakKeyword */,\n case: 84 /* CaseKeyword */,\n catch: 85 /* CatchKeyword */,\n class: 86 /* ClassKeyword */,\n continue: 88 /* ContinueKeyword */,\n const: 87 /* ConstKeyword */,\n [\"constructor\"]: 137 /* ConstructorKeyword */,\n debugger: 89 /* DebuggerKeyword */,\n declare: 138 /* DeclareKeyword */,\n default: 90 /* DefaultKeyword */,\n defer: 166 /* DeferKeyword */,\n delete: 91 /* DeleteKeyword */,\n do: 92 /* DoKeyword */,\n else: 93 /* ElseKeyword */,\n enum: 94 /* EnumKeyword */,\n export: 95 /* ExportKeyword */,\n extends: 96 /* ExtendsKeyword */,\n false: 97 /* FalseKeyword */,\n finally: 98 /* FinallyKeyword */,\n for: 99 /* ForKeyword */,\n from: 161 /* FromKeyword */,\n function: 100 /* FunctionKeyword */,\n get: 139 /* GetKeyword */,\n if: 101 /* IfKeyword */,\n implements: 119 /* ImplementsKeyword */,\n import: 102 /* ImportKeyword */,\n in: 103 /* InKeyword */,\n infer: 140 /* InferKeyword */,\n instanceof: 104 /* InstanceOfKeyword */,\n interface: 120 /* InterfaceKeyword */,\n intrinsic: 141 /* IntrinsicKeyword */,\n is: 142 /* IsKeyword */,\n keyof: 143 /* KeyOfKeyword */,\n let: 121 /* LetKeyword */,\n module: 144 /* ModuleKeyword */,\n namespace: 145 /* NamespaceKeyword */,\n never: 146 /* NeverKeyword */,\n new: 105 /* NewKeyword */,\n null: 106 /* NullKeyword */,\n number: 150 /* NumberKeyword */,\n object: 151 /* ObjectKeyword */,\n package: 122 /* PackageKeyword */,\n private: 123 /* PrivateKeyword */,\n protected: 124 /* ProtectedKeyword */,\n public: 125 /* PublicKeyword */,\n override: 164 /* OverrideKeyword */,\n out: 147 /* OutKeyword */,\n readonly: 148 /* ReadonlyKeyword */,\n require: 149 /* RequireKeyword */,\n global: 162 /* GlobalKeyword */,\n return: 107 /* ReturnKeyword */,\n satisfies: 152 /* SatisfiesKeyword */,\n set: 153 /* SetKeyword */,\n static: 126 /* StaticKeyword */,\n string: 154 /* StringKeyword */,\n super: 108 /* SuperKeyword */,\n switch: 109 /* SwitchKeyword */,\n symbol: 155 /* SymbolKeyword */,\n this: 110 /* ThisKeyword */,\n throw: 111 /* ThrowKeyword */,\n true: 112 /* TrueKeyword */,\n try: 113 /* TryKeyword */,\n type: 156 /* TypeKeyword */,\n typeof: 114 /* TypeOfKeyword */,\n undefined: 157 /* UndefinedKeyword */,\n unique: 158 /* UniqueKeyword */,\n unknown: 159 /* UnknownKeyword */,\n using: 160 /* UsingKeyword */,\n var: 115 /* VarKeyword */,\n void: 116 /* VoidKeyword */,\n while: 117 /* WhileKeyword */,\n with: 118 /* WithKeyword */,\n yield: 127 /* YieldKeyword */,\n async: 134 /* AsyncKeyword */,\n await: 135 /* AwaitKeyword */,\n of: 165 /* OfKeyword */\n};\nvar textToKeyword = new Map(Object.entries(textToKeywordObj));\nvar textToToken = new Map(Object.entries({\n ...textToKeywordObj,\n \"{\": 19 /* OpenBraceToken */,\n \"}\": 20 /* CloseBraceToken */,\n \"(\": 21 /* OpenParenToken */,\n \")\": 22 /* CloseParenToken */,\n \"[\": 23 /* OpenBracketToken */,\n \"]\": 24 /* CloseBracketToken */,\n \".\": 25 /* DotToken */,\n \"...\": 26 /* DotDotDotToken */,\n \";\": 27 /* SemicolonToken */,\n \",\": 28 /* CommaToken */,\n \"<\": 30 /* LessThanToken */,\n \">\": 32 /* GreaterThanToken */,\n \"<=\": 33 /* LessThanEqualsToken */,\n \">=\": 34 /* GreaterThanEqualsToken */,\n \"==\": 35 /* EqualsEqualsToken */,\n \"!=\": 36 /* ExclamationEqualsToken */,\n \"===\": 37 /* EqualsEqualsEqualsToken */,\n \"!==\": 38 /* ExclamationEqualsEqualsToken */,\n \"=>\": 39 /* EqualsGreaterThanToken */,\n \"+\": 40 /* PlusToken */,\n \"-\": 41 /* MinusToken */,\n \"**\": 43 /* AsteriskAsteriskToken */,\n \"*\": 42 /* AsteriskToken */,\n \"/\": 44 /* SlashToken */,\n \"%\": 45 /* PercentToken */,\n \"++\": 46 /* PlusPlusToken */,\n \"--\": 47 /* MinusMinusToken */,\n \"<<\": 48 /* LessThanLessThanToken */,\n \">\": 49 /* GreaterThanGreaterThanToken */,\n \">>>\": 50 /* GreaterThanGreaterThanGreaterThanToken */,\n \"&\": 51 /* AmpersandToken */,\n \"|\": 52 /* BarToken */,\n \"^\": 53 /* CaretToken */,\n \"!\": 54 /* ExclamationToken */,\n \"~\": 55 /* TildeToken */,\n \"&&\": 56 /* AmpersandAmpersandToken */,\n \"||\": 57 /* BarBarToken */,\n \"?\": 58 /* QuestionToken */,\n \"??\": 61 /* QuestionQuestionToken */,\n \"?.\": 29 /* QuestionDotToken */,\n \":\": 59 /* ColonToken */,\n \"=\": 64 /* EqualsToken */,\n \"+=\": 65 /* PlusEqualsToken */,\n \"-=\": 66 /* MinusEqualsToken */,\n \"*=\": 67 /* AsteriskEqualsToken */,\n \"**=\": 68 /* AsteriskAsteriskEqualsToken */,\n \"/=\": 69 /* SlashEqualsToken */,\n \"%=\": 70 /* PercentEqualsToken */,\n \"<<=\": 71 /* LessThanLessThanEqualsToken */,\n \">>=\": 72 /* GreaterThanGreaterThanEqualsToken */,\n \">>>=\": 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */,\n \"&=\": 74 /* AmpersandEqualsToken */,\n \"|=\": 75 /* BarEqualsToken */,\n \"^=\": 79 /* CaretEqualsToken */,\n \"||=\": 76 /* BarBarEqualsToken */,\n \"&&=\": 77 /* AmpersandAmpersandEqualsToken */,\n \"??=\": 78 /* QuestionQuestionEqualsToken */,\n \"@\": 60 /* AtToken */,\n \"#\": 63 /* HashToken */,\n \"`\": 62 /* BacktickToken */\n}));\nvar charCodeToRegExpFlag = /* @__PURE__ */ new Map([\n [100 /* d */, 1 /* HasIndices */],\n [103 /* g */, 2 /* Global */],\n [105 /* i */, 4 /* IgnoreCase */],\n [109 /* m */, 8 /* Multiline */],\n [115 /* s */, 16 /* DotAll */],\n [117 /* u */, 32 /* Unicode */],\n [118 /* v */, 64 /* UnicodeSets */],\n [121 /* y */, 128 /* Sticky */]\n]);\nvar regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([\n [1 /* HasIndices */, LanguageFeatureMinimumTarget.RegularExpressionFlagsHasIndices],\n [16 /* DotAll */, LanguageFeatureMinimumTarget.RegularExpressionFlagsDotAll],\n [32 /* Unicode */, LanguageFeatureMinimumTarget.RegularExpressionFlagsUnicode],\n [64 /* UnicodeSets */, LanguageFeatureMinimumTarget.RegularExpressionFlagsUnicodeSets],\n [128 /* Sticky */, LanguageFeatureMinimumTarget.RegularExpressionFlagsSticky]\n]);\nvar unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];\nvar unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];\nvar unicodeESNextIdentifierStart = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2160, 2183, 2185, 2190, 2208, 2249, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3165, 3165, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3293, 3294, 3296, 3297, 3313, 3314, 3332, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5905, 5919, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6988, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69248, 69289, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69445, 69488, 69505, 69552, 69572, 69600, 69622, 69635, 69687, 69745, 69746, 69749, 69749, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69959, 69959, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70207, 70208, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70753, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71488, 71494, 71680, 71723, 71840, 71903, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71983, 71999, 71999, 72001, 72001, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73474, 73474, 73476, 73488, 73490, 73523, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78895, 78913, 78918, 82944, 83526, 92160, 92728, 92736, 92766, 92784, 92862, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 122624, 122654, 122661, 122666, 122928, 122989, 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, 123584, 123627, 124112, 124139, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 191472, 192093, 194560, 195101, 196608, 201546, 201552, 205743];\nvar unicodeESNextIdentifierPart = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2160, 2183, 2185, 2190, 2200, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3132, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3293, 3294, 3296, 3299, 3302, 3311, 3313, 3315, 3328, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3457, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3790, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5909, 5919, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6159, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6847, 6862, 6912, 6988, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43047, 43052, 43052, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69248, 69289, 69291, 69292, 69296, 69297, 69373, 69404, 69415, 69415, 69424, 69456, 69488, 69509, 69552, 69572, 69600, 69622, 69632, 69702, 69734, 69749, 69759, 69818, 69826, 69826, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69959, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70094, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70209, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70753, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71488, 71494, 71680, 71738, 71840, 71913, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71989, 71991, 71992, 71995, 72003, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73472, 73488, 73490, 73530, 73534, 73538, 73552, 73561, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78895, 78912, 78933, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92784, 92862, 92864, 92873, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122624, 122654, 122661, 122666, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 122928, 122989, 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123536, 123566, 123584, 123641, 124112, 124153, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 191472, 192093, 194560, 195101, 196608, 201546, 201552, 205743, 917760, 917999];\nvar commentDirectiveRegExSingleLine = /^\\/\\/\\/?\\s*@(ts-expect-error|ts-ignore)/;\nvar commentDirectiveRegExMultiLine = /^(?:\\/|\\*)*\\s*@(ts-expect-error|ts-ignore)/;\nvar jsDocSeeOrLink = /@(?:see|link)/i;\nfunction lookupInUnicodeMap(code, map2) {\n if (code < map2[0]) {\n return false;\n }\n let lo = 0;\n let hi = map2.length;\n let mid;\n while (lo + 1 < hi) {\n mid = lo + (hi - lo) / 2;\n mid -= mid % 2;\n if (map2[mid] <= code && code <= map2[mid + 1]) {\n return true;\n }\n if (code < map2[mid]) {\n hi = mid;\n } else {\n lo = mid + 2;\n }\n }\n return false;\n}\nfunction isUnicodeIdentifierStart(code, languageVersion) {\n return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart);\n}\nfunction isUnicodeIdentifierPart(code, languageVersion) {\n return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart);\n}\nfunction makeReverseMap(source) {\n const result = [];\n source.forEach((value, name) => {\n result[value] = name;\n });\n return result;\n}\nvar tokenStrings = makeReverseMap(textToToken);\nfunction tokenToString(t) {\n return tokenStrings[t];\n}\nfunction stringToToken(s) {\n return textToToken.get(s);\n}\nvar regExpFlagCharCodes = makeReverseMap(charCodeToRegExpFlag);\nfunction regularExpressionFlagToCharacterCode(f) {\n return regExpFlagCharCodes[f];\n}\nfunction characterCodeToRegularExpressionFlag(ch) {\n return charCodeToRegExpFlag.get(ch);\n}\nfunction computeLineStarts(text) {\n const result = [];\n let pos = 0;\n let lineStart = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n pos++;\n switch (ch) {\n case 13 /* carriageReturn */:\n if (text.charCodeAt(pos) === 10 /* lineFeed */) {\n pos++;\n }\n // falls through\n case 10 /* lineFeed */:\n result.push(lineStart);\n lineStart = pos;\n break;\n default:\n if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) {\n result.push(lineStart);\n lineStart = pos;\n }\n break;\n }\n }\n result.push(lineStart);\n return result;\n}\nfunction getPositionOfLineAndCharacter(sourceFile, line, character, allowEdits) {\n return sourceFile.getPositionOfLineAndCharacter ? sourceFile.getPositionOfLineAndCharacter(line, character, allowEdits) : computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text, allowEdits);\n}\nfunction computePositionOfLineAndCharacter(lineStarts, line, character, debugText, allowEdits) {\n if (line < 0 || line >= lineStarts.length) {\n if (allowEdits) {\n line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;\n } else {\n Debug.fail(`Bad line number. Line: ${line}, lineStarts.length: ${lineStarts.length} , line map is correct? ${debugText !== void 0 ? arrayIsEqualTo(lineStarts, computeLineStarts(debugText)) : \"unknown\"}`);\n }\n }\n const res = lineStarts[line] + character;\n if (allowEdits) {\n return res > lineStarts[line + 1] ? lineStarts[line + 1] : typeof debugText === \"string\" && res > debugText.length ? debugText.length : res;\n }\n if (line < lineStarts.length - 1) {\n Debug.assert(res < lineStarts[line + 1]);\n } else if (debugText !== void 0) {\n Debug.assert(res <= debugText.length);\n }\n return res;\n}\nfunction getLineStarts(sourceFile) {\n return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text));\n}\nfunction computeLineAndCharacterOfPosition(lineStarts, position) {\n const lineNumber = computeLineOfPosition(lineStarts, position);\n return {\n line: lineNumber,\n character: position - lineStarts[lineNumber]\n };\n}\nfunction computeLineOfPosition(lineStarts, position, lowerBound) {\n let lineNumber = binarySearch(lineStarts, position, identity, compareValues, lowerBound);\n if (lineNumber < 0) {\n lineNumber = ~lineNumber - 1;\n Debug.assert(lineNumber !== -1, \"position cannot precede the beginning of the file\");\n }\n return lineNumber;\n}\nfunction getLinesBetweenPositions(sourceFile, pos1, pos2) {\n if (pos1 === pos2) return 0;\n const lineStarts = getLineStarts(sourceFile);\n const lower = Math.min(pos1, pos2);\n const isNegative = lower === pos2;\n const upper = isNegative ? pos1 : pos2;\n const lowerLine = computeLineOfPosition(lineStarts, lower);\n const upperLine = computeLineOfPosition(lineStarts, upper, lowerLine);\n return isNegative ? lowerLine - upperLine : upperLine - lowerLine;\n}\nfunction getLineAndCharacterOfPosition(sourceFile, position) {\n return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position);\n}\nfunction isWhiteSpaceLike(ch) {\n return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nfunction isWhiteSpaceSingleLine(ch) {\n return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 133 /* nextLine */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */;\n}\nfunction isLineBreak(ch) {\n return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */;\n}\nfunction isDigit(ch) {\n return ch >= 48 /* _0 */ && ch <= 57 /* _9 */;\n}\nfunction isHexDigit(ch) {\n return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;\n}\nfunction isASCIILetter(ch) {\n return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;\n}\nfunction isWordCharacter(ch) {\n return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;\n}\nfunction isOctalDigit(ch) {\n return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;\n}\nfunction couldStartTrivia(text, pos) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 13 /* carriageReturn */:\n case 10 /* lineFeed */:\n case 9 /* tab */:\n case 11 /* verticalTab */:\n case 12 /* formFeed */:\n case 32 /* space */:\n case 47 /* slash */:\n // starts of normal trivia\n // falls through\n case 60 /* lessThan */:\n case 124 /* bar */:\n case 61 /* equals */:\n case 62 /* greaterThan */:\n return true;\n case 35 /* hash */:\n return pos === 0;\n default:\n return ch > 127 /* maxAsciiCharacter */;\n }\n}\nfunction skipTrivia(text, pos, stopAfterLineBreak, stopAtComments, inJSDoc) {\n if (positionIsSynthesized(pos)) {\n return pos;\n }\n let canConsumeStar = false;\n while (true) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 13 /* carriageReturn */:\n if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) {\n pos++;\n }\n // falls through\n case 10 /* lineFeed */:\n pos++;\n if (stopAfterLineBreak) {\n return pos;\n }\n canConsumeStar = !!inJSDoc;\n continue;\n case 9 /* tab */:\n case 11 /* verticalTab */:\n case 12 /* formFeed */:\n case 32 /* space */:\n pos++;\n continue;\n case 47 /* slash */:\n if (stopAtComments) {\n break;\n }\n if (text.charCodeAt(pos + 1) === 47 /* slash */) {\n pos += 2;\n while (pos < text.length) {\n if (isLineBreak(text.charCodeAt(pos))) {\n break;\n }\n pos++;\n }\n canConsumeStar = false;\n continue;\n }\n if (text.charCodeAt(pos + 1) === 42 /* asterisk */) {\n pos += 2;\n while (pos < text.length) {\n if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) {\n pos += 2;\n break;\n }\n pos++;\n }\n canConsumeStar = false;\n continue;\n }\n break;\n case 60 /* lessThan */:\n case 124 /* bar */:\n case 61 /* equals */:\n case 62 /* greaterThan */:\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos);\n canConsumeStar = false;\n continue;\n }\n break;\n case 35 /* hash */:\n if (pos === 0 && isShebangTrivia(text, pos)) {\n pos = scanShebangTrivia(text, pos);\n canConsumeStar = false;\n continue;\n }\n break;\n case 42 /* asterisk */:\n if (canConsumeStar) {\n pos++;\n canConsumeStar = false;\n continue;\n }\n break;\n default:\n if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) {\n pos++;\n continue;\n }\n break;\n }\n return pos;\n }\n}\nvar mergeConflictMarkerLength = \"<<<<<<<\".length;\nfunction isConflictMarkerTrivia(text, pos) {\n Debug.assert(pos >= 0);\n if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) {\n const ch = text.charCodeAt(pos);\n if (pos + mergeConflictMarkerLength < text.length) {\n for (let i = 0; i < mergeConflictMarkerLength; i++) {\n if (text.charCodeAt(pos + i) !== ch) {\n return false;\n }\n }\n return ch === 61 /* equals */ || text.charCodeAt(pos + mergeConflictMarkerLength) === 32 /* space */;\n }\n }\n return false;\n}\nfunction scanConflictMarkerTrivia(text, pos, error2) {\n if (error2) {\n error2(Diagnostics.Merge_conflict_marker_encountered, pos, mergeConflictMarkerLength);\n }\n const ch = text.charCodeAt(pos);\n const len = text.length;\n if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) {\n while (pos < len && !isLineBreak(text.charCodeAt(pos))) {\n pos++;\n }\n } else {\n Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */);\n while (pos < len) {\n const currentChar = text.charCodeAt(pos);\n if ((currentChar === 61 /* equals */ || currentChar === 62 /* greaterThan */) && currentChar !== ch && isConflictMarkerTrivia(text, pos)) {\n break;\n }\n pos++;\n }\n }\n return pos;\n}\nvar shebangTriviaRegex = /^#!.*/;\nfunction isShebangTrivia(text, pos) {\n Debug.assert(pos === 0);\n return shebangTriviaRegex.test(text);\n}\nfunction scanShebangTrivia(text, pos) {\n const shebang = shebangTriviaRegex.exec(text)[0];\n pos = pos + shebang.length;\n return pos;\n}\nfunction iterateCommentRanges(reduce, text, pos, trailing, cb, state, initial) {\n let pendingPos;\n let pendingEnd;\n let pendingKind;\n let pendingHasTrailingNewLine;\n let hasPendingCommentRange = false;\n let collecting = trailing;\n let accumulator = initial;\n if (pos === 0) {\n collecting = true;\n const shebang = getShebang(text);\n if (shebang) {\n pos = shebang.length;\n }\n }\n scan:\n while (pos >= 0 && pos < text.length) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 13 /* carriageReturn */:\n if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) {\n pos++;\n }\n // falls through\n case 10 /* lineFeed */:\n pos++;\n if (trailing) {\n break scan;\n }\n collecting = true;\n if (hasPendingCommentRange) {\n pendingHasTrailingNewLine = true;\n }\n continue;\n case 9 /* tab */:\n case 11 /* verticalTab */:\n case 12 /* formFeed */:\n case 32 /* space */:\n pos++;\n continue;\n case 47 /* slash */:\n const nextChar = text.charCodeAt(pos + 1);\n let hasTrailingNewLine = false;\n if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) {\n const kind = nextChar === 47 /* slash */ ? 2 /* SingleLineCommentTrivia */ : 3 /* MultiLineCommentTrivia */;\n const startPos = pos;\n pos += 2;\n if (nextChar === 47 /* slash */) {\n while (pos < text.length) {\n if (isLineBreak(text.charCodeAt(pos))) {\n hasTrailingNewLine = true;\n break;\n }\n pos++;\n }\n } else {\n while (pos < text.length) {\n if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) {\n pos += 2;\n break;\n }\n pos++;\n }\n }\n if (collecting) {\n if (hasPendingCommentRange) {\n accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator);\n if (!reduce && accumulator) {\n return accumulator;\n }\n }\n pendingPos = startPos;\n pendingEnd = pos;\n pendingKind = kind;\n pendingHasTrailingNewLine = hasTrailingNewLine;\n hasPendingCommentRange = true;\n }\n continue;\n }\n break scan;\n default:\n if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) {\n if (hasPendingCommentRange && isLineBreak(ch)) {\n pendingHasTrailingNewLine = true;\n }\n pos++;\n continue;\n }\n break scan;\n }\n }\n if (hasPendingCommentRange) {\n accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator);\n }\n return accumulator;\n}\nfunction forEachLeadingCommentRange(text, pos, cb, state) {\n return iterateCommentRanges(\n /*reduce*/\n false,\n text,\n pos,\n /*trailing*/\n false,\n cb,\n state\n );\n}\nfunction forEachTrailingCommentRange(text, pos, cb, state) {\n return iterateCommentRanges(\n /*reduce*/\n false,\n text,\n pos,\n /*trailing*/\n true,\n cb,\n state\n );\n}\nfunction reduceEachLeadingCommentRange(text, pos, cb, state, initial) {\n return iterateCommentRanges(\n /*reduce*/\n true,\n text,\n pos,\n /*trailing*/\n false,\n cb,\n state,\n initial\n );\n}\nfunction reduceEachTrailingCommentRange(text, pos, cb, state, initial) {\n return iterateCommentRanges(\n /*reduce*/\n true,\n text,\n pos,\n /*trailing*/\n true,\n cb,\n state,\n initial\n );\n}\nfunction appendCommentRange(pos, end, kind, hasTrailingNewLine, _state, comments = []) {\n comments.push({ kind, pos, end, hasTrailingNewLine });\n return comments;\n}\nfunction getLeadingCommentRanges(text, pos) {\n return reduceEachLeadingCommentRange(\n text,\n pos,\n appendCommentRange,\n /*state*/\n void 0,\n /*initial*/\n void 0\n );\n}\nfunction getTrailingCommentRanges(text, pos) {\n return reduceEachTrailingCommentRange(\n text,\n pos,\n appendCommentRange,\n /*state*/\n void 0,\n /*initial*/\n void 0\n );\n}\nfunction getShebang(text) {\n const match = shebangTriviaRegex.exec(text);\n if (match) {\n return match[0];\n }\n}\nfunction isIdentifierStart(ch, languageVersion) {\n return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);\n}\nfunction isIdentifierPart(ch, languageVersion, identifierVariant) {\n return isWordCharacter(ch) || ch === 36 /* $ */ || // \"-\" and \":\" are valid in JSX Identifiers\n (identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);\n}\nfunction isIdentifierText(name, languageVersion, identifierVariant) {\n let ch = codePointAt(name, 0);\n if (!isIdentifierStart(ch, languageVersion)) {\n return false;\n }\n for (let i = charSize(ch); i < name.length; i += charSize(ch)) {\n if (!isIdentifierPart(ch = codePointAt(name, i), languageVersion, identifierVariant)) {\n return false;\n }\n }\n return true;\n}\nfunction createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Standard */, textInitial, onError, start, length2) {\n var text = textInitial;\n var pos;\n var end;\n var fullStartPos;\n var tokenStart;\n var token;\n var tokenValue;\n var tokenFlags;\n var commentDirectives;\n var skipJsDocLeadingAsterisks = 0;\n var scriptKind = 0 /* Unknown */;\n var jsDocParsingMode = 0 /* ParseAll */;\n setText(text, start, length2);\n var scanner2 = {\n getTokenFullStart: () => fullStartPos,\n getStartPos: () => fullStartPos,\n getTokenEnd: () => pos,\n getTextPos: () => pos,\n getToken: () => token,\n getTokenStart: () => tokenStart,\n getTokenPos: () => tokenStart,\n getTokenText: () => text.substring(tokenStart, pos),\n getTokenValue: () => tokenValue,\n hasUnicodeEscape: () => (tokenFlags & 1024 /* UnicodeEscape */) !== 0,\n hasExtendedUnicodeEscape: () => (tokenFlags & 8 /* ExtendedUnicodeEscape */) !== 0,\n hasPrecedingLineBreak: () => (tokenFlags & 1 /* PrecedingLineBreak */) !== 0,\n hasPrecedingJSDocComment: () => (tokenFlags & 2 /* PrecedingJSDocComment */) !== 0,\n hasPrecedingJSDocLeadingAsterisks: () => (tokenFlags & 32768 /* PrecedingJSDocLeadingAsterisks */) !== 0,\n isIdentifier: () => token === 80 /* Identifier */ || token > 118 /* LastReservedWord */,\n isReservedWord: () => token >= 83 /* FirstReservedWord */ && token <= 118 /* LastReservedWord */,\n isUnterminated: () => (tokenFlags & 4 /* Unterminated */) !== 0,\n getCommentDirectives: () => commentDirectives,\n getNumericLiteralFlags: () => tokenFlags & 25584 /* NumericLiteralFlags */,\n getTokenFlags: () => tokenFlags,\n reScanGreaterToken,\n reScanAsteriskEqualsToken,\n reScanSlashToken,\n reScanTemplateToken,\n reScanTemplateHeadOrNoSubstitutionTemplate,\n scanJsxIdentifier,\n scanJsxAttributeValue,\n reScanJsxAttributeValue,\n reScanJsxToken,\n reScanLessThanToken,\n reScanHashToken,\n reScanQuestionToken,\n reScanInvalidIdentifier,\n scanJsxToken,\n scanJsDocToken,\n scanJSDocCommentTextToken,\n scan,\n getText,\n clearCommentDirectives,\n setText,\n setScriptTarget,\n setLanguageVariant,\n setScriptKind,\n setJSDocParsingMode,\n setOnError,\n resetTokenState,\n setTextPos: resetTokenState,\n setSkipJsDocLeadingAsterisks,\n tryScan,\n lookAhead,\n scanRange\n };\n if (Debug.isDebugging) {\n Object.defineProperty(scanner2, \"__debugShowCurrentPositionInText\", {\n get: () => {\n const text2 = scanner2.getText();\n return text2.slice(0, scanner2.getTokenFullStart()) + \"\\u2551\" + text2.slice(scanner2.getTokenFullStart());\n }\n });\n }\n return scanner2;\n function codePointUnchecked(pos2) {\n return codePointAt(text, pos2);\n }\n function codePointChecked(pos2) {\n return pos2 >= 0 && pos2 < end ? codePointUnchecked(pos2) : -1 /* EOF */;\n }\n function charCodeUnchecked(pos2) {\n return text.charCodeAt(pos2);\n }\n function charCodeChecked(pos2) {\n return pos2 >= 0 && pos2 < end ? charCodeUnchecked(pos2) : -1 /* EOF */;\n }\n function error2(message, errPos = pos, length3, arg0) {\n if (onError) {\n const oldPos = pos;\n pos = errPos;\n onError(message, length3 || 0, arg0);\n pos = oldPos;\n }\n }\n function scanNumberFragment() {\n let start2 = pos;\n let allowSeparator = false;\n let isPreviousTokenSeparator = false;\n let result = \"\";\n while (true) {\n const ch = charCodeUnchecked(pos);\n if (ch === 95 /* _ */) {\n tokenFlags |= 512 /* ContainsSeparator */;\n if (allowSeparator) {\n allowSeparator = false;\n isPreviousTokenSeparator = true;\n result += text.substring(start2, pos);\n } else {\n tokenFlags |= 16384 /* ContainsInvalidSeparator */;\n if (isPreviousTokenSeparator) {\n error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n } else {\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n }\n }\n pos++;\n start2 = pos;\n continue;\n }\n if (isDigit(ch)) {\n allowSeparator = true;\n isPreviousTokenSeparator = false;\n pos++;\n continue;\n }\n break;\n }\n if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n tokenFlags |= 16384 /* ContainsInvalidSeparator */;\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n }\n return result + text.substring(start2, pos);\n }\n function scanNumber() {\n let start2 = pos;\n let mainFragment;\n if (charCodeUnchecked(pos) === 48 /* _0 */) {\n pos++;\n if (charCodeUnchecked(pos) === 95 /* _ */) {\n tokenFlags |= 512 /* ContainsSeparator */ | 16384 /* ContainsInvalidSeparator */;\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n pos--;\n mainFragment = scanNumberFragment();\n } else if (!scanDigits()) {\n tokenFlags |= 8192 /* ContainsLeadingZero */;\n mainFragment = \"\" + +tokenValue;\n } else if (!tokenValue) {\n mainFragment = \"0\";\n } else {\n tokenValue = \"\" + parseInt(tokenValue, 8);\n tokenFlags |= 32 /* Octal */;\n const withMinus = token === 41 /* MinusToken */;\n const literal = (withMinus ? \"-\" : \"\") + \"0o\" + (+tokenValue).toString(8);\n if (withMinus) start2--;\n error2(Diagnostics.Octal_literals_are_not_allowed_Use_the_syntax_0, start2, pos - start2, literal);\n return 9 /* NumericLiteral */;\n }\n } else {\n mainFragment = scanNumberFragment();\n }\n let decimalFragment;\n let scientificFragment;\n if (charCodeUnchecked(pos) === 46 /* dot */) {\n pos++;\n decimalFragment = scanNumberFragment();\n }\n let end2 = pos;\n if (charCodeUnchecked(pos) === 69 /* E */ || charCodeUnchecked(pos) === 101 /* e */) {\n pos++;\n tokenFlags |= 16 /* Scientific */;\n if (charCodeUnchecked(pos) === 43 /* plus */ || charCodeUnchecked(pos) === 45 /* minus */) pos++;\n const preNumericPart = pos;\n const finalFragment = scanNumberFragment();\n if (!finalFragment) {\n error2(Diagnostics.Digit_expected);\n } else {\n scientificFragment = text.substring(end2, preNumericPart) + finalFragment;\n end2 = pos;\n }\n }\n let result;\n if (tokenFlags & 512 /* ContainsSeparator */) {\n result = mainFragment;\n if (decimalFragment) {\n result += \".\" + decimalFragment;\n }\n if (scientificFragment) {\n result += scientificFragment;\n }\n } else {\n result = text.substring(start2, end2);\n }\n if (tokenFlags & 8192 /* ContainsLeadingZero */) {\n error2(Diagnostics.Decimals_with_leading_zeros_are_not_allowed, start2, end2 - start2);\n tokenValue = \"\" + +result;\n return 9 /* NumericLiteral */;\n }\n if (decimalFragment !== void 0 || tokenFlags & 16 /* Scientific */) {\n checkForIdentifierStartAfterNumericLiteral(start2, decimalFragment === void 0 && !!(tokenFlags & 16 /* Scientific */));\n tokenValue = \"\" + +result;\n return 9 /* NumericLiteral */;\n } else {\n tokenValue = result;\n const type = checkBigIntSuffix();\n checkForIdentifierStartAfterNumericLiteral(start2);\n return type;\n }\n }\n function checkForIdentifierStartAfterNumericLiteral(numericStart, isScientific) {\n if (!isIdentifierStart(codePointUnchecked(pos), languageVersion)) {\n return;\n }\n const identifierStart = pos;\n const { length: length3 } = scanIdentifierParts();\n if (length3 === 1 && text[identifierStart] === \"n\") {\n if (isScientific) {\n error2(Diagnostics.A_bigint_literal_cannot_use_exponential_notation, numericStart, identifierStart - numericStart + 1);\n } else {\n error2(Diagnostics.A_bigint_literal_must_be_an_integer, numericStart, identifierStart - numericStart + 1);\n }\n } else {\n error2(Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, identifierStart, length3);\n pos = identifierStart;\n }\n }\n function scanDigits() {\n const start2 = pos;\n let isOctal = true;\n while (isDigit(charCodeChecked(pos))) {\n if (!isOctalDigit(charCodeUnchecked(pos))) {\n isOctal = false;\n }\n pos++;\n }\n tokenValue = text.substring(start2, pos);\n return isOctal;\n }\n function scanExactNumberOfHexDigits(count, canHaveSeparators) {\n const valueString = scanHexDigits(\n /*minCount*/\n count,\n /*scanAsManyAsPossible*/\n false,\n canHaveSeparators\n );\n return valueString ? parseInt(valueString, 16) : -1;\n }\n function scanMinimumNumberOfHexDigits(count, canHaveSeparators) {\n return scanHexDigits(\n /*minCount*/\n count,\n /*scanAsManyAsPossible*/\n true,\n canHaveSeparators\n );\n }\n function scanHexDigits(minCount, scanAsManyAsPossible, canHaveSeparators) {\n let valueChars = [];\n let allowSeparator = false;\n let isPreviousTokenSeparator = false;\n while (valueChars.length < minCount || scanAsManyAsPossible) {\n let ch = charCodeUnchecked(pos);\n if (canHaveSeparators && ch === 95 /* _ */) {\n tokenFlags |= 512 /* ContainsSeparator */;\n if (allowSeparator) {\n allowSeparator = false;\n isPreviousTokenSeparator = true;\n } else if (isPreviousTokenSeparator) {\n error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n } else {\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n }\n pos++;\n continue;\n }\n allowSeparator = canHaveSeparators;\n if (ch >= 65 /* A */ && ch <= 70 /* F */) {\n ch += 97 /* a */ - 65 /* A */;\n } else if (!(ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch >= 97 /* a */ && ch <= 102 /* f */)) {\n break;\n }\n valueChars.push(ch);\n pos++;\n isPreviousTokenSeparator = false;\n }\n if (valueChars.length < minCount) {\n valueChars = [];\n }\n if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n }\n return String.fromCharCode(...valueChars);\n }\n function scanString(jsxAttributeString = false) {\n const quote2 = charCodeUnchecked(pos);\n pos++;\n let result = \"\";\n let start2 = pos;\n while (true) {\n if (pos >= end) {\n result += text.substring(start2, pos);\n tokenFlags |= 4 /* Unterminated */;\n error2(Diagnostics.Unterminated_string_literal);\n break;\n }\n const ch = charCodeUnchecked(pos);\n if (ch === quote2) {\n result += text.substring(start2, pos);\n pos++;\n break;\n }\n if (ch === 92 /* backslash */ && !jsxAttributeString) {\n result += text.substring(start2, pos);\n result += scanEscapeSequence(1 /* String */ | 2 /* ReportErrors */);\n start2 = pos;\n continue;\n }\n if ((ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */) && !jsxAttributeString) {\n result += text.substring(start2, pos);\n tokenFlags |= 4 /* Unterminated */;\n error2(Diagnostics.Unterminated_string_literal);\n break;\n }\n pos++;\n }\n return result;\n }\n function scanTemplateAndSetTokenValue(shouldEmitInvalidEscapeError) {\n const startedWithBacktick = charCodeUnchecked(pos) === 96 /* backtick */;\n pos++;\n let start2 = pos;\n let contents = \"\";\n let resultingToken;\n while (true) {\n if (pos >= end) {\n contents += text.substring(start2, pos);\n tokenFlags |= 4 /* Unterminated */;\n error2(Diagnostics.Unterminated_template_literal);\n resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */;\n break;\n }\n const currChar = charCodeUnchecked(pos);\n if (currChar === 96 /* backtick */) {\n contents += text.substring(start2, pos);\n pos++;\n resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */;\n break;\n }\n if (currChar === 36 /* $ */ && pos + 1 < end && charCodeUnchecked(pos + 1) === 123 /* openBrace */) {\n contents += text.substring(start2, pos);\n pos += 2;\n resultingToken = startedWithBacktick ? 16 /* TemplateHead */ : 17 /* TemplateMiddle */;\n break;\n }\n if (currChar === 92 /* backslash */) {\n contents += text.substring(start2, pos);\n contents += scanEscapeSequence(1 /* String */ | (shouldEmitInvalidEscapeError ? 2 /* ReportErrors */ : 0));\n start2 = pos;\n continue;\n }\n if (currChar === 13 /* carriageReturn */) {\n contents += text.substring(start2, pos);\n pos++;\n if (pos < end && charCodeUnchecked(pos) === 10 /* lineFeed */) {\n pos++;\n }\n contents += \"\\n\";\n start2 = pos;\n continue;\n }\n pos++;\n }\n Debug.assert(resultingToken !== void 0);\n tokenValue = contents;\n return resultingToken;\n }\n function scanEscapeSequence(flags) {\n const start2 = pos;\n pos++;\n if (pos >= end) {\n error2(Diagnostics.Unexpected_end_of_text);\n return \"\";\n }\n const ch = charCodeUnchecked(pos);\n pos++;\n switch (ch) {\n case 48 /* _0 */:\n if (pos >= end || !isDigit(charCodeUnchecked(pos))) {\n return \"\\0\";\n }\n // '\\01', '\\011'\n // falls through\n case 49 /* _1 */:\n case 50 /* _2 */:\n case 51 /* _3 */:\n if (pos < end && isOctalDigit(charCodeUnchecked(pos))) {\n pos++;\n }\n // '\\17', '\\177'\n // falls through\n case 52 /* _4 */:\n case 53 /* _5 */:\n case 54 /* _6 */:\n case 55 /* _7 */:\n if (pos < end && isOctalDigit(charCodeUnchecked(pos))) {\n pos++;\n }\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n if (flags & 6 /* ReportInvalidEscapeErrors */) {\n const code = parseInt(text.substring(start2 + 1, pos), 8);\n if (flags & 4 /* RegularExpression */ && !(flags & 32 /* AtomEscape */) && ch !== 48 /* _0 */) {\n error2(Diagnostics.Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead, start2, pos - start2, \"\\\\x\" + code.toString(16).padStart(2, \"0\"));\n } else {\n error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start2, pos - start2, \"\\\\x\" + code.toString(16).padStart(2, \"0\"));\n }\n return String.fromCharCode(code);\n }\n return text.substring(start2, pos);\n case 56 /* _8 */:\n case 57 /* _9 */:\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n if (flags & 6 /* ReportInvalidEscapeErrors */) {\n if (flags & 4 /* RegularExpression */ && !(flags & 32 /* AtomEscape */)) {\n error2(Diagnostics.Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class, start2, pos - start2);\n } else {\n error2(Diagnostics.Escape_sequence_0_is_not_allowed, start2, pos - start2, text.substring(start2, pos));\n }\n return String.fromCharCode(ch);\n }\n return text.substring(start2, pos);\n case 98 /* b */:\n return \"\\b\";\n case 116 /* t */:\n return \"\t\";\n case 110 /* n */:\n return \"\\n\";\n case 118 /* v */:\n return \"\\v\";\n case 102 /* f */:\n return \"\\f\";\n case 114 /* r */:\n return \"\\r\";\n case 39 /* singleQuote */:\n return \"'\";\n case 34 /* doubleQuote */:\n return '\"';\n case 117 /* u */:\n if (pos < end && charCodeUnchecked(pos) === 123 /* openBrace */) {\n pos -= 2;\n const result = scanExtendedUnicodeEscape(!!(flags & 6 /* ReportInvalidEscapeErrors */));\n if (!(flags & 17 /* AllowExtendedUnicodeEscape */)) {\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n if (flags & 6 /* ReportInvalidEscapeErrors */) {\n error2(Diagnostics.Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);\n }\n }\n return result;\n }\n for (; pos < start2 + 6; pos++) {\n if (!(pos < end && isHexDigit(charCodeUnchecked(pos)))) {\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n if (flags & 6 /* ReportInvalidEscapeErrors */) {\n error2(Diagnostics.Hexadecimal_digit_expected);\n }\n return text.substring(start2, pos);\n }\n }\n tokenFlags |= 1024 /* UnicodeEscape */;\n const escapedValue = parseInt(text.substring(start2 + 2, pos), 16);\n const escapedValueString = String.fromCharCode(escapedValue);\n if (flags & 16 /* AnyUnicodeMode */ && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === \"\\\\u\" && charCodeUnchecked(pos + 2) !== 123 /* openBrace */) {\n const nextStart = pos;\n let nextPos = pos + 2;\n for (; nextPos < nextStart + 6; nextPos++) {\n if (!isHexDigit(charCodeUnchecked(nextPos))) {\n return escapedValueString;\n }\n }\n const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);\n if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {\n pos = nextPos;\n return escapedValueString + String.fromCharCode(nextEscapedValue);\n }\n }\n return escapedValueString;\n case 120 /* x */:\n for (; pos < start2 + 4; pos++) {\n if (!(pos < end && isHexDigit(charCodeUnchecked(pos)))) {\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n if (flags & 6 /* ReportInvalidEscapeErrors */) {\n error2(Diagnostics.Hexadecimal_digit_expected);\n }\n return text.substring(start2, pos);\n }\n }\n tokenFlags |= 4096 /* HexEscape */;\n return String.fromCharCode(parseInt(text.substring(start2 + 2, pos), 16));\n // when encountering a LineContinuation (i.e. a backslash and a line terminator sequence),\n // the line terminator is interpreted to be \"the empty code unit sequence\".\n case 13 /* carriageReturn */:\n if (pos < end && charCodeUnchecked(pos) === 10 /* lineFeed */) {\n pos++;\n }\n // falls through\n case 10 /* lineFeed */:\n case 8232 /* lineSeparator */:\n case 8233 /* paragraphSeparator */:\n return \"\";\n default:\n if (flags & 16 /* AnyUnicodeMode */ || flags & 4 /* RegularExpression */ && !(flags & 8 /* AnnexB */) && isIdentifierPart(ch, languageVersion)) {\n error2(Diagnostics.This_character_cannot_be_escaped_in_a_regular_expression, pos - 2, 2);\n }\n return String.fromCharCode(ch);\n }\n }\n function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError) {\n const start2 = pos;\n pos += 3;\n const escapedStart = pos;\n const escapedValueString = scanMinimumNumberOfHexDigits(\n 1,\n /*canHaveSeparators*/\n false\n );\n const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;\n let isInvalidExtendedEscape = false;\n if (escapedValue < 0) {\n if (shouldEmitInvalidEscapeError) {\n error2(Diagnostics.Hexadecimal_digit_expected);\n }\n isInvalidExtendedEscape = true;\n } else if (escapedValue > 1114111) {\n if (shouldEmitInvalidEscapeError) {\n error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);\n }\n isInvalidExtendedEscape = true;\n }\n if (pos >= end) {\n if (shouldEmitInvalidEscapeError) {\n error2(Diagnostics.Unexpected_end_of_text);\n }\n isInvalidExtendedEscape = true;\n } else if (charCodeUnchecked(pos) === 125 /* closeBrace */) {\n pos++;\n } else {\n if (shouldEmitInvalidEscapeError) {\n error2(Diagnostics.Unterminated_Unicode_escape_sequence);\n }\n isInvalidExtendedEscape = true;\n }\n if (isInvalidExtendedEscape) {\n tokenFlags |= 2048 /* ContainsInvalidEscape */;\n return text.substring(start2, pos);\n }\n tokenFlags |= 8 /* ExtendedUnicodeEscape */;\n return utf16EncodeAsString(escapedValue);\n }\n function peekUnicodeEscape() {\n if (pos + 5 < end && charCodeUnchecked(pos + 1) === 117 /* u */) {\n const start2 = pos;\n pos += 2;\n const value = scanExactNumberOfHexDigits(\n 4,\n /*canHaveSeparators*/\n false\n );\n pos = start2;\n return value;\n }\n return -1;\n }\n function peekExtendedUnicodeEscape() {\n if (codePointUnchecked(pos + 1) === 117 /* u */ && codePointUnchecked(pos + 2) === 123 /* openBrace */) {\n const start2 = pos;\n pos += 3;\n const escapedValueString = scanMinimumNumberOfHexDigits(\n 1,\n /*canHaveSeparators*/\n false\n );\n const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;\n pos = start2;\n return escapedValue;\n }\n return -1;\n }\n function scanIdentifierParts() {\n let result = \"\";\n let start2 = pos;\n while (pos < end) {\n let ch = codePointUnchecked(pos);\n if (isIdentifierPart(ch, languageVersion)) {\n pos += charSize(ch);\n } else if (ch === 92 /* backslash */) {\n ch = peekExtendedUnicodeEscape();\n if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {\n result += scanExtendedUnicodeEscape(\n /*shouldEmitInvalidEscapeError*/\n true\n );\n start2 = pos;\n continue;\n }\n ch = peekUnicodeEscape();\n if (!(ch >= 0 && isIdentifierPart(ch, languageVersion))) {\n break;\n }\n tokenFlags |= 1024 /* UnicodeEscape */;\n result += text.substring(start2, pos);\n result += utf16EncodeAsString(ch);\n pos += 6;\n start2 = pos;\n } else {\n break;\n }\n }\n result += text.substring(start2, pos);\n return result;\n }\n function getIdentifierToken() {\n const len = tokenValue.length;\n if (len >= 2 && len <= 12) {\n const ch = tokenValue.charCodeAt(0);\n if (ch >= 97 /* a */ && ch <= 122 /* z */) {\n const keyword = textToKeyword.get(tokenValue);\n if (keyword !== void 0) {\n return token = keyword;\n }\n }\n }\n return token = 80 /* Identifier */;\n }\n function scanBinaryOrOctalDigits(base) {\n let value = \"\";\n let separatorAllowed = false;\n let isPreviousTokenSeparator = false;\n while (true) {\n const ch = charCodeUnchecked(pos);\n if (ch === 95 /* _ */) {\n tokenFlags |= 512 /* ContainsSeparator */;\n if (separatorAllowed) {\n separatorAllowed = false;\n isPreviousTokenSeparator = true;\n } else if (isPreviousTokenSeparator) {\n error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n } else {\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n }\n pos++;\n continue;\n }\n separatorAllowed = true;\n if (!isDigit(ch) || ch - 48 /* _0 */ >= base) {\n break;\n }\n value += text[pos];\n pos++;\n isPreviousTokenSeparator = false;\n }\n if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n }\n return value;\n }\n function checkBigIntSuffix() {\n if (charCodeUnchecked(pos) === 110 /* n */) {\n tokenValue += \"n\";\n if (tokenFlags & 384 /* BinaryOrOctalSpecifier */) {\n tokenValue = parsePseudoBigInt(tokenValue) + \"n\";\n }\n pos++;\n return 10 /* BigIntLiteral */;\n } else {\n const numericValue = tokenFlags & 128 /* BinarySpecifier */ ? parseInt(tokenValue.slice(2), 2) : tokenFlags & 256 /* OctalSpecifier */ ? parseInt(tokenValue.slice(2), 8) : +tokenValue;\n tokenValue = \"\" + numericValue;\n return 9 /* NumericLiteral */;\n }\n }\n function scan() {\n fullStartPos = pos;\n tokenFlags = 0 /* None */;\n while (true) {\n tokenStart = pos;\n if (pos >= end) {\n return token = 1 /* EndOfFileToken */;\n }\n const ch = codePointUnchecked(pos);\n if (pos === 0) {\n if (ch === 35 /* hash */ && isShebangTrivia(text, pos)) {\n pos = scanShebangTrivia(text, pos);\n if (skipTrivia2) {\n continue;\n } else {\n return token = 6 /* ShebangTrivia */;\n }\n }\n }\n switch (ch) {\n case 10 /* lineFeed */:\n case 13 /* carriageReturn */:\n tokenFlags |= 1 /* PrecedingLineBreak */;\n if (skipTrivia2) {\n pos++;\n continue;\n } else {\n if (ch === 13 /* carriageReturn */ && pos + 1 < end && charCodeUnchecked(pos + 1) === 10 /* lineFeed */) {\n pos += 2;\n } else {\n pos++;\n }\n return token = 4 /* NewLineTrivia */;\n }\n case 9 /* tab */:\n case 11 /* verticalTab */:\n case 12 /* formFeed */:\n case 32 /* space */:\n case 160 /* nonBreakingSpace */:\n case 5760 /* ogham */:\n case 8192 /* enQuad */:\n case 8193 /* emQuad */:\n case 8194 /* enSpace */:\n case 8195 /* emSpace */:\n case 8196 /* threePerEmSpace */:\n case 8197 /* fourPerEmSpace */:\n case 8198 /* sixPerEmSpace */:\n case 8199 /* figureSpace */:\n case 8200 /* punctuationSpace */:\n case 8201 /* thinSpace */:\n case 8202 /* hairSpace */:\n case 8203 /* zeroWidthSpace */:\n case 8239 /* narrowNoBreakSpace */:\n case 8287 /* mathematicalSpace */:\n case 12288 /* ideographicSpace */:\n case 65279 /* byteOrderMark */:\n if (skipTrivia2) {\n pos++;\n continue;\n } else {\n while (pos < end && isWhiteSpaceSingleLine(charCodeUnchecked(pos))) {\n pos++;\n }\n return token = 5 /* WhitespaceTrivia */;\n }\n case 33 /* exclamation */:\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 38 /* ExclamationEqualsEqualsToken */;\n }\n return pos += 2, token = 36 /* ExclamationEqualsToken */;\n }\n pos++;\n return token = 54 /* ExclamationToken */;\n case 34 /* doubleQuote */:\n case 39 /* singleQuote */:\n tokenValue = scanString();\n return token = 11 /* StringLiteral */;\n case 96 /* backtick */:\n return token = scanTemplateAndSetTokenValue(\n /*shouldEmitInvalidEscapeError*/\n false\n );\n case 37 /* percent */:\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 70 /* PercentEqualsToken */;\n }\n pos++;\n return token = 45 /* PercentToken */;\n case 38 /* ampersand */:\n if (charCodeUnchecked(pos + 1) === 38 /* ampersand */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 77 /* AmpersandAmpersandEqualsToken */;\n }\n return pos += 2, token = 56 /* AmpersandAmpersandToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 74 /* AmpersandEqualsToken */;\n }\n pos++;\n return token = 51 /* AmpersandToken */;\n case 40 /* openParen */:\n pos++;\n return token = 21 /* OpenParenToken */;\n case 41 /* closeParen */:\n pos++;\n return token = 22 /* CloseParenToken */;\n case 42 /* asterisk */:\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 67 /* AsteriskEqualsToken */;\n }\n if (charCodeUnchecked(pos + 1) === 42 /* asterisk */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 68 /* AsteriskAsteriskEqualsToken */;\n }\n return pos += 2, token = 43 /* AsteriskAsteriskToken */;\n }\n pos++;\n if (skipJsDocLeadingAsterisks && (tokenFlags & 32768 /* PrecedingJSDocLeadingAsterisks */) === 0 && tokenFlags & 1 /* PrecedingLineBreak */) {\n tokenFlags |= 32768 /* PrecedingJSDocLeadingAsterisks */;\n continue;\n }\n return token = 42 /* AsteriskToken */;\n case 43 /* plus */:\n if (charCodeUnchecked(pos + 1) === 43 /* plus */) {\n return pos += 2, token = 46 /* PlusPlusToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 65 /* PlusEqualsToken */;\n }\n pos++;\n return token = 40 /* PlusToken */;\n case 44 /* comma */:\n pos++;\n return token = 28 /* CommaToken */;\n case 45 /* minus */:\n if (charCodeUnchecked(pos + 1) === 45 /* minus */) {\n return pos += 2, token = 47 /* MinusMinusToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 66 /* MinusEqualsToken */;\n }\n pos++;\n return token = 41 /* MinusToken */;\n case 46 /* dot */:\n if (isDigit(charCodeUnchecked(pos + 1))) {\n scanNumber();\n return token = 9 /* NumericLiteral */;\n }\n if (charCodeUnchecked(pos + 1) === 46 /* dot */ && charCodeUnchecked(pos + 2) === 46 /* dot */) {\n return pos += 3, token = 26 /* DotDotDotToken */;\n }\n pos++;\n return token = 25 /* DotToken */;\n case 47 /* slash */:\n if (charCodeUnchecked(pos + 1) === 47 /* slash */) {\n pos += 2;\n while (pos < end) {\n if (isLineBreak(charCodeUnchecked(pos))) {\n break;\n }\n pos++;\n }\n commentDirectives = appendIfCommentDirective(\n commentDirectives,\n text.slice(tokenStart, pos),\n commentDirectiveRegExSingleLine,\n tokenStart\n );\n if (skipTrivia2) {\n continue;\n } else {\n return token = 2 /* SingleLineCommentTrivia */;\n }\n }\n if (charCodeUnchecked(pos + 1) === 42 /* asterisk */) {\n pos += 2;\n const isJSDoc2 = charCodeUnchecked(pos) === 42 /* asterisk */ && charCodeUnchecked(pos + 1) !== 47 /* slash */;\n let commentClosed = false;\n let lastLineStart = tokenStart;\n while (pos < end) {\n const ch2 = charCodeUnchecked(pos);\n if (ch2 === 42 /* asterisk */ && charCodeUnchecked(pos + 1) === 47 /* slash */) {\n pos += 2;\n commentClosed = true;\n break;\n }\n pos++;\n if (isLineBreak(ch2)) {\n lastLineStart = pos;\n tokenFlags |= 1 /* PrecedingLineBreak */;\n }\n }\n if (isJSDoc2 && shouldParseJSDoc()) {\n tokenFlags |= 2 /* PrecedingJSDocComment */;\n }\n commentDirectives = appendIfCommentDirective(commentDirectives, text.slice(lastLineStart, pos), commentDirectiveRegExMultiLine, lastLineStart);\n if (!commentClosed) {\n error2(Diagnostics.Asterisk_Slash_expected);\n }\n if (skipTrivia2) {\n continue;\n } else {\n if (!commentClosed) {\n tokenFlags |= 4 /* Unterminated */;\n }\n return token = 3 /* MultiLineCommentTrivia */;\n }\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 69 /* SlashEqualsToken */;\n }\n pos++;\n return token = 44 /* SlashToken */;\n case 48 /* _0 */:\n if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 88 /* X */ || charCodeUnchecked(pos + 1) === 120 /* x */)) {\n pos += 2;\n tokenValue = scanMinimumNumberOfHexDigits(\n 1,\n /*canHaveSeparators*/\n true\n );\n if (!tokenValue) {\n error2(Diagnostics.Hexadecimal_digit_expected);\n tokenValue = \"0\";\n }\n tokenValue = \"0x\" + tokenValue;\n tokenFlags |= 64 /* HexSpecifier */;\n return token = checkBigIntSuffix();\n } else if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 66 /* B */ || charCodeUnchecked(pos + 1) === 98 /* b */)) {\n pos += 2;\n tokenValue = scanBinaryOrOctalDigits(\n /* base */\n 2\n );\n if (!tokenValue) {\n error2(Diagnostics.Binary_digit_expected);\n tokenValue = \"0\";\n }\n tokenValue = \"0b\" + tokenValue;\n tokenFlags |= 128 /* BinarySpecifier */;\n return token = checkBigIntSuffix();\n } else if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 79 /* O */ || charCodeUnchecked(pos + 1) === 111 /* o */)) {\n pos += 2;\n tokenValue = scanBinaryOrOctalDigits(\n /* base */\n 8\n );\n if (!tokenValue) {\n error2(Diagnostics.Octal_digit_expected);\n tokenValue = \"0\";\n }\n tokenValue = \"0o\" + tokenValue;\n tokenFlags |= 256 /* OctalSpecifier */;\n return token = checkBigIntSuffix();\n }\n // falls through\n case 49 /* _1 */:\n case 50 /* _2 */:\n case 51 /* _3 */:\n case 52 /* _4 */:\n case 53 /* _5 */:\n case 54 /* _6 */:\n case 55 /* _7 */:\n case 56 /* _8 */:\n case 57 /* _9 */:\n return token = scanNumber();\n case 58 /* colon */:\n pos++;\n return token = 59 /* ColonToken */;\n case 59 /* semicolon */:\n pos++;\n return token = 27 /* SemicolonToken */;\n case 60 /* lessThan */:\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos, error2);\n if (skipTrivia2) {\n continue;\n } else {\n return token = 7 /* ConflictMarkerTrivia */;\n }\n }\n if (charCodeUnchecked(pos + 1) === 60 /* lessThan */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 71 /* LessThanLessThanEqualsToken */;\n }\n return pos += 2, token = 48 /* LessThanLessThanToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 33 /* LessThanEqualsToken */;\n }\n if (languageVariant === 1 /* JSX */ && charCodeUnchecked(pos + 1) === 47 /* slash */ && charCodeUnchecked(pos + 2) !== 42 /* asterisk */) {\n return pos += 2, token = 31 /* LessThanSlashToken */;\n }\n pos++;\n return token = 30 /* LessThanToken */;\n case 61 /* equals */:\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos, error2);\n if (skipTrivia2) {\n continue;\n } else {\n return token = 7 /* ConflictMarkerTrivia */;\n }\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 37 /* EqualsEqualsEqualsToken */;\n }\n return pos += 2, token = 35 /* EqualsEqualsToken */;\n }\n if (charCodeUnchecked(pos + 1) === 62 /* greaterThan */) {\n return pos += 2, token = 39 /* EqualsGreaterThanToken */;\n }\n pos++;\n return token = 64 /* EqualsToken */;\n case 62 /* greaterThan */:\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos, error2);\n if (skipTrivia2) {\n continue;\n } else {\n return token = 7 /* ConflictMarkerTrivia */;\n }\n }\n pos++;\n return token = 32 /* GreaterThanToken */;\n case 63 /* question */:\n if (charCodeUnchecked(pos + 1) === 46 /* dot */ && !isDigit(charCodeUnchecked(pos + 2))) {\n return pos += 2, token = 29 /* QuestionDotToken */;\n }\n if (charCodeUnchecked(pos + 1) === 63 /* question */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 78 /* QuestionQuestionEqualsToken */;\n }\n return pos += 2, token = 61 /* QuestionQuestionToken */;\n }\n pos++;\n return token = 58 /* QuestionToken */;\n case 91 /* openBracket */:\n pos++;\n return token = 23 /* OpenBracketToken */;\n case 93 /* closeBracket */:\n pos++;\n return token = 24 /* CloseBracketToken */;\n case 94 /* caret */:\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 79 /* CaretEqualsToken */;\n }\n pos++;\n return token = 53 /* CaretToken */;\n case 123 /* openBrace */:\n pos++;\n return token = 19 /* OpenBraceToken */;\n case 124 /* bar */:\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos, error2);\n if (skipTrivia2) {\n continue;\n } else {\n return token = 7 /* ConflictMarkerTrivia */;\n }\n }\n if (charCodeUnchecked(pos + 1) === 124 /* bar */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 76 /* BarBarEqualsToken */;\n }\n return pos += 2, token = 57 /* BarBarToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 75 /* BarEqualsToken */;\n }\n pos++;\n return token = 52 /* BarToken */;\n case 125 /* closeBrace */:\n pos++;\n return token = 20 /* CloseBraceToken */;\n case 126 /* tilde */:\n pos++;\n return token = 55 /* TildeToken */;\n case 64 /* at */:\n pos++;\n return token = 60 /* AtToken */;\n case 92 /* backslash */:\n const extendedCookedChar = peekExtendedUnicodeEscape();\n if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {\n tokenValue = scanExtendedUnicodeEscape(\n /*shouldEmitInvalidEscapeError*/\n true\n ) + scanIdentifierParts();\n return token = getIdentifierToken();\n }\n const cookedChar = peekUnicodeEscape();\n if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) {\n pos += 6;\n tokenFlags |= 1024 /* UnicodeEscape */;\n tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts();\n return token = getIdentifierToken();\n }\n error2(Diagnostics.Invalid_character);\n pos++;\n return token = 0 /* Unknown */;\n case 35 /* hash */:\n if (pos !== 0 && text[pos + 1] === \"!\") {\n error2(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);\n pos++;\n return token = 0 /* Unknown */;\n }\n const charAfterHash = codePointUnchecked(pos + 1);\n if (charAfterHash === 92 /* backslash */) {\n pos++;\n const extendedCookedChar2 = peekExtendedUnicodeEscape();\n if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {\n tokenValue = \"#\" + scanExtendedUnicodeEscape(\n /*shouldEmitInvalidEscapeError*/\n true\n ) + scanIdentifierParts();\n return token = 81 /* PrivateIdentifier */;\n }\n const cookedChar2 = peekUnicodeEscape();\n if (cookedChar2 >= 0 && isIdentifierStart(cookedChar2, languageVersion)) {\n pos += 6;\n tokenFlags |= 1024 /* UnicodeEscape */;\n tokenValue = \"#\" + String.fromCharCode(cookedChar2) + scanIdentifierParts();\n return token = 81 /* PrivateIdentifier */;\n }\n pos--;\n }\n if (isIdentifierStart(charAfterHash, languageVersion)) {\n pos++;\n scanIdentifier(charAfterHash, languageVersion);\n } else {\n tokenValue = \"#\";\n error2(Diagnostics.Invalid_character, pos++, charSize(ch));\n }\n return token = 81 /* PrivateIdentifier */;\n case 65533 /* replacementCharacter */:\n error2(Diagnostics.File_appears_to_be_binary, 0, 0);\n pos = end;\n return token = 8 /* NonTextFileMarkerTrivia */;\n default:\n const identifierKind = scanIdentifier(ch, languageVersion);\n if (identifierKind) {\n return token = identifierKind;\n } else if (isWhiteSpaceSingleLine(ch)) {\n pos += charSize(ch);\n continue;\n } else if (isLineBreak(ch)) {\n tokenFlags |= 1 /* PrecedingLineBreak */;\n pos += charSize(ch);\n continue;\n }\n const size = charSize(ch);\n error2(Diagnostics.Invalid_character, pos, size);\n pos += size;\n return token = 0 /* Unknown */;\n }\n }\n }\n function shouldParseJSDoc() {\n switch (jsDocParsingMode) {\n case 0 /* ParseAll */:\n return true;\n case 1 /* ParseNone */:\n return false;\n }\n if (scriptKind !== 3 /* TS */ && scriptKind !== 4 /* TSX */) {\n return true;\n }\n if (jsDocParsingMode === 3 /* ParseForTypeInfo */) {\n return false;\n }\n return jsDocSeeOrLink.test(text.slice(fullStartPos, pos));\n }\n function reScanInvalidIdentifier() {\n Debug.assert(token === 0 /* Unknown */, \"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'.\");\n pos = tokenStart = fullStartPos;\n tokenFlags = 0;\n const ch = codePointUnchecked(pos);\n const identifierKind = scanIdentifier(ch, 99 /* ESNext */);\n if (identifierKind) {\n return token = identifierKind;\n }\n pos += charSize(ch);\n return token;\n }\n function scanIdentifier(startCharacter, languageVersion2) {\n let ch = startCharacter;\n if (isIdentifierStart(ch, languageVersion2)) {\n pos += charSize(ch);\n while (pos < end && isIdentifierPart(ch = codePointUnchecked(pos), languageVersion2)) pos += charSize(ch);\n tokenValue = text.substring(tokenStart, pos);\n if (ch === 92 /* backslash */) {\n tokenValue += scanIdentifierParts();\n }\n return getIdentifierToken();\n }\n }\n function reScanGreaterToken() {\n if (token === 32 /* GreaterThanToken */) {\n if (charCodeUnchecked(pos) === 62 /* greaterThan */) {\n if (charCodeUnchecked(pos + 1) === 62 /* greaterThan */) {\n if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n return pos += 3, token = 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */;\n }\n return pos += 2, token = 50 /* GreaterThanGreaterThanGreaterThanToken */;\n }\n if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n return pos += 2, token = 72 /* GreaterThanGreaterThanEqualsToken */;\n }\n pos++;\n return token = 49 /* GreaterThanGreaterThanToken */;\n }\n if (charCodeUnchecked(pos) === 61 /* equals */) {\n pos++;\n return token = 34 /* GreaterThanEqualsToken */;\n }\n }\n return token;\n }\n function reScanAsteriskEqualsToken() {\n Debug.assert(token === 67 /* AsteriskEqualsToken */, \"'reScanAsteriskEqualsToken' should only be called on a '*='\");\n pos = tokenStart + 1;\n return token = 64 /* EqualsToken */;\n }\n function reScanSlashToken(reportErrors2) {\n if (token === 44 /* SlashToken */ || token === 69 /* SlashEqualsToken */) {\n const startOfRegExpBody = tokenStart + 1;\n pos = startOfRegExpBody;\n let inEscape = false;\n let namedCaptureGroups = false;\n let inCharacterClass = false;\n while (true) {\n const ch = charCodeChecked(pos);\n if (ch === -1 /* EOF */ || isLineBreak(ch)) {\n tokenFlags |= 4 /* Unterminated */;\n break;\n }\n if (inEscape) {\n inEscape = false;\n } else if (ch === 47 /* slash */ && !inCharacterClass) {\n break;\n } else if (ch === 91 /* openBracket */) {\n inCharacterClass = true;\n } else if (ch === 92 /* backslash */) {\n inEscape = true;\n } else if (ch === 93 /* closeBracket */) {\n inCharacterClass = false;\n } else if (!inCharacterClass && ch === 40 /* openParen */ && charCodeChecked(pos + 1) === 63 /* question */ && charCodeChecked(pos + 2) === 60 /* lessThan */ && charCodeChecked(pos + 3) !== 61 /* equals */ && charCodeChecked(pos + 3) !== 33 /* exclamation */) {\n namedCaptureGroups = true;\n }\n pos++;\n }\n const endOfRegExpBody = pos;\n if (tokenFlags & 4 /* Unterminated */) {\n pos = startOfRegExpBody;\n inEscape = false;\n let characterClassDepth = 0;\n let inDecimalQuantifier = false;\n let groupDepth = 0;\n while (pos < endOfRegExpBody) {\n const ch = charCodeUnchecked(pos);\n if (inEscape) {\n inEscape = false;\n } else if (ch === 92 /* backslash */) {\n inEscape = true;\n } else if (ch === 91 /* openBracket */) {\n characterClassDepth++;\n } else if (ch === 93 /* closeBracket */ && characterClassDepth) {\n characterClassDepth--;\n } else if (!characterClassDepth) {\n if (ch === 123 /* openBrace */) {\n inDecimalQuantifier = true;\n } else if (ch === 125 /* closeBrace */ && inDecimalQuantifier) {\n inDecimalQuantifier = false;\n } else if (!inDecimalQuantifier) {\n if (ch === 40 /* openParen */) {\n groupDepth++;\n } else if (ch === 41 /* closeParen */ && groupDepth) {\n groupDepth--;\n } else if (ch === 41 /* closeParen */ || ch === 93 /* closeBracket */ || ch === 125 /* closeBrace */) {\n break;\n }\n }\n }\n pos++;\n }\n while (isWhiteSpaceLike(charCodeChecked(pos - 1)) || charCodeChecked(pos - 1) === 59 /* semicolon */) pos--;\n error2(Diagnostics.Unterminated_regular_expression_literal, tokenStart, pos - tokenStart);\n } else {\n pos++;\n let regExpFlags = 0 /* None */;\n while (true) {\n const ch = codePointChecked(pos);\n if (ch === -1 /* EOF */ || !isIdentifierPart(ch, languageVersion)) {\n break;\n }\n const size = charSize(ch);\n if (reportErrors2) {\n const flag = characterCodeToRegularExpressionFlag(ch);\n if (flag === void 0) {\n error2(Diagnostics.Unknown_regular_expression_flag, pos, size);\n } else if (regExpFlags & flag) {\n error2(Diagnostics.Duplicate_regular_expression_flag, pos, size);\n } else if (((regExpFlags | flag) & 96 /* AnyUnicodeMode */) === 96 /* AnyUnicodeMode */) {\n error2(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, pos, size);\n } else {\n regExpFlags |= flag;\n checkRegularExpressionFlagAvailability(flag, size);\n }\n }\n pos += size;\n }\n if (reportErrors2) {\n scanRange(startOfRegExpBody, endOfRegExpBody - startOfRegExpBody, () => {\n scanRegularExpressionWorker(\n regExpFlags,\n /*annexB*/\n true,\n namedCaptureGroups\n );\n });\n }\n }\n tokenValue = text.substring(tokenStart, pos);\n token = 14 /* RegularExpressionLiteral */;\n }\n return token;\n }\n function scanRegularExpressionWorker(regExpFlags, annexB, namedCaptureGroups) {\n var unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);\n var anyUnicodeMode = !!(regExpFlags & 96 /* AnyUnicodeMode */);\n var anyUnicodeModeOrNonAnnexB = anyUnicodeMode || !annexB;\n var mayContainStrings = false;\n var numberOfCapturingGroups = 0;\n var groupSpecifiers;\n var groupNameReferences;\n var decimalEscapes;\n var namedCapturingGroupsScopeStack = [];\n var topNamedCapturingGroupsScope;\n function scanDisjunction(isInGroup) {\n while (true) {\n namedCapturingGroupsScopeStack.push(topNamedCapturingGroupsScope);\n topNamedCapturingGroupsScope = void 0;\n scanAlternative(isInGroup);\n topNamedCapturingGroupsScope = namedCapturingGroupsScopeStack.pop();\n if (charCodeChecked(pos) !== 124 /* bar */) {\n return;\n }\n pos++;\n }\n }\n function scanAlternative(isInGroup) {\n let isPreviousTermQuantifiable = false;\n while (true) {\n const start2 = pos;\n const ch = charCodeChecked(pos);\n switch (ch) {\n case -1 /* EOF */:\n return;\n case 94 /* caret */:\n case 36 /* $ */:\n pos++;\n isPreviousTermQuantifiable = false;\n break;\n case 92 /* backslash */:\n pos++;\n switch (charCodeChecked(pos)) {\n case 98 /* b */:\n case 66 /* B */:\n pos++;\n isPreviousTermQuantifiable = false;\n break;\n default:\n scanAtomEscape();\n isPreviousTermQuantifiable = true;\n break;\n }\n break;\n case 40 /* openParen */:\n pos++;\n if (charCodeChecked(pos) === 63 /* question */) {\n pos++;\n switch (charCodeChecked(pos)) {\n case 61 /* equals */:\n case 33 /* exclamation */:\n pos++;\n isPreviousTermQuantifiable = !anyUnicodeModeOrNonAnnexB;\n break;\n case 60 /* lessThan */:\n const groupNameStart = pos;\n pos++;\n switch (charCodeChecked(pos)) {\n case 61 /* equals */:\n case 33 /* exclamation */:\n pos++;\n isPreviousTermQuantifiable = false;\n break;\n default:\n scanGroupName(\n /*isReference*/\n false\n );\n scanExpectedChar(62 /* greaterThan */);\n if (languageVersion < 5 /* ES2018 */) {\n error2(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);\n }\n numberOfCapturingGroups++;\n isPreviousTermQuantifiable = true;\n break;\n }\n break;\n default:\n const start3 = pos;\n const setFlags = scanPatternModifiers(0 /* None */);\n if (charCodeChecked(pos) === 45 /* minus */) {\n pos++;\n scanPatternModifiers(setFlags);\n if (pos === start3 + 1) {\n error2(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start3, pos - start3);\n }\n }\n scanExpectedChar(58 /* colon */);\n isPreviousTermQuantifiable = true;\n break;\n }\n } else {\n numberOfCapturingGroups++;\n isPreviousTermQuantifiable = true;\n }\n scanDisjunction(\n /*isInGroup*/\n true\n );\n scanExpectedChar(41 /* closeParen */);\n break;\n case 123 /* openBrace */:\n pos++;\n const digitsStart = pos;\n scanDigits();\n const min2 = tokenValue;\n if (!anyUnicodeModeOrNonAnnexB && !min2) {\n isPreviousTermQuantifiable = true;\n break;\n }\n if (charCodeChecked(pos) === 44 /* comma */) {\n pos++;\n scanDigits();\n const max = tokenValue;\n if (!min2) {\n if (max || charCodeChecked(pos) === 125 /* closeBrace */) {\n error2(Diagnostics.Incomplete_quantifier_Digit_expected, digitsStart, 0);\n } else {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));\n isPreviousTermQuantifiable = true;\n break;\n }\n } else if (max && Number.parseInt(min2) > Number.parseInt(max) && (anyUnicodeModeOrNonAnnexB || charCodeChecked(pos) === 125 /* closeBrace */)) {\n error2(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);\n }\n } else if (!min2) {\n if (anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));\n }\n isPreviousTermQuantifiable = true;\n break;\n }\n if (charCodeChecked(pos) !== 125 /* closeBrace */) {\n if (anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(125 /* closeBrace */));\n pos--;\n } else {\n isPreviousTermQuantifiable = true;\n break;\n }\n }\n // falls through\n case 42 /* asterisk */:\n case 43 /* plus */:\n case 63 /* question */:\n pos++;\n if (charCodeChecked(pos) === 63 /* question */) {\n pos++;\n }\n if (!isPreviousTermQuantifiable) {\n error2(Diagnostics.There_is_nothing_available_for_repetition, start2, pos - start2);\n }\n isPreviousTermQuantifiable = false;\n break;\n case 46 /* dot */:\n pos++;\n isPreviousTermQuantifiable = true;\n break;\n case 91 /* openBracket */:\n pos++;\n if (unicodeSetsMode) {\n scanClassSetExpression();\n } else {\n scanClassRanges();\n }\n scanExpectedChar(93 /* closeBracket */);\n isPreviousTermQuantifiable = true;\n break;\n case 41 /* closeParen */:\n if (isInGroup) {\n return;\n }\n // falls through\n case 93 /* closeBracket */:\n case 125 /* closeBrace */:\n if (anyUnicodeModeOrNonAnnexB || ch === 41 /* closeParen */) {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n }\n pos++;\n isPreviousTermQuantifiable = true;\n break;\n case 47 /* slash */:\n case 124 /* bar */:\n return;\n default:\n scanSourceCharacter();\n isPreviousTermQuantifiable = true;\n break;\n }\n }\n }\n function scanPatternModifiers(currFlags) {\n while (true) {\n const ch = codePointChecked(pos);\n if (ch === -1 /* EOF */ || !isIdentifierPart(ch, languageVersion)) {\n break;\n }\n const size = charSize(ch);\n const flag = characterCodeToRegularExpressionFlag(ch);\n if (flag === void 0) {\n error2(Diagnostics.Unknown_regular_expression_flag, pos, size);\n } else if (currFlags & flag) {\n error2(Diagnostics.Duplicate_regular_expression_flag, pos, size);\n } else if (!(flag & 28 /* Modifiers */)) {\n error2(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, size);\n } else {\n currFlags |= flag;\n checkRegularExpressionFlagAvailability(flag, size);\n }\n pos += size;\n }\n return currFlags;\n }\n function scanAtomEscape() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n switch (charCodeChecked(pos)) {\n case 107 /* k */:\n pos++;\n if (charCodeChecked(pos) === 60 /* lessThan */) {\n pos++;\n scanGroupName(\n /*isReference*/\n true\n );\n scanExpectedChar(62 /* greaterThan */);\n } else if (anyUnicodeModeOrNonAnnexB || namedCaptureGroups) {\n error2(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);\n }\n break;\n case 113 /* q */:\n if (unicodeSetsMode) {\n pos++;\n error2(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);\n break;\n }\n // falls through\n default:\n Debug.assert(scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape(\n /*atomEscape*/\n true\n ));\n break;\n }\n }\n function scanDecimalEscape() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n const ch = charCodeChecked(pos);\n if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {\n const start2 = pos;\n scanDigits();\n decimalEscapes = append(decimalEscapes, { pos: start2, end: pos, value: +tokenValue });\n return true;\n }\n return false;\n }\n function scanCharacterEscape(atomEscape) {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n let ch = charCodeChecked(pos);\n switch (ch) {\n case -1 /* EOF */:\n error2(Diagnostics.Undetermined_character_escape, pos - 1, 1);\n return \"\\\\\";\n case 99 /* c */:\n pos++;\n ch = charCodeChecked(pos);\n if (isASCIILetter(ch)) {\n pos++;\n return String.fromCharCode(ch & 31);\n }\n if (anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);\n } else if (atomEscape) {\n pos--;\n return \"\\\\\";\n }\n return String.fromCharCode(ch);\n case 94 /* caret */:\n case 36 /* $ */:\n case 47 /* slash */:\n case 92 /* backslash */:\n case 46 /* dot */:\n case 42 /* asterisk */:\n case 43 /* plus */:\n case 63 /* question */:\n case 40 /* openParen */:\n case 41 /* closeParen */:\n case 91 /* openBracket */:\n case 93 /* closeBracket */:\n case 123 /* openBrace */:\n case 125 /* closeBrace */:\n case 124 /* bar */:\n pos++;\n return String.fromCharCode(ch);\n default:\n pos--;\n return scanEscapeSequence(\n 4 /* RegularExpression */ | (annexB ? 8 /* AnnexB */ : 0) | (anyUnicodeMode ? 16 /* AnyUnicodeMode */ : 0) | (atomEscape ? 32 /* AtomEscape */ : 0)\n );\n }\n }\n function scanGroupName(isReference) {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 60 /* lessThan */);\n tokenStart = pos;\n scanIdentifier(codePointChecked(pos), languageVersion);\n if (pos === tokenStart) {\n error2(Diagnostics.Expected_a_capturing_group_name);\n } else if (isReference) {\n groupNameReferences = append(groupNameReferences, { pos: tokenStart, end: pos, name: tokenValue });\n } else if ((topNamedCapturingGroupsScope == null ? void 0 : topNamedCapturingGroupsScope.has(tokenValue)) || namedCapturingGroupsScopeStack.some((group2) => group2 == null ? void 0 : group2.has(tokenValue))) {\n error2(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);\n } else {\n topNamedCapturingGroupsScope ?? (topNamedCapturingGroupsScope = /* @__PURE__ */ new Set());\n topNamedCapturingGroupsScope.add(tokenValue);\n groupSpecifiers ?? (groupSpecifiers = /* @__PURE__ */ new Set());\n groupSpecifiers.add(tokenValue);\n }\n }\n function isClassContentExit(ch) {\n return ch === 93 /* closeBracket */ || ch === -1 /* EOF */ || pos >= end;\n }\n function scanClassRanges() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 91 /* openBracket */);\n if (charCodeChecked(pos) === 94 /* caret */) {\n pos++;\n }\n while (true) {\n const ch = charCodeChecked(pos);\n if (isClassContentExit(ch)) {\n return;\n }\n const minStart = pos;\n const minCharacter = scanClassAtom();\n if (charCodeChecked(pos) === 45 /* minus */) {\n pos++;\n const ch2 = charCodeChecked(pos);\n if (isClassContentExit(ch2)) {\n return;\n }\n if (!minCharacter && anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);\n }\n const maxStart = pos;\n const maxCharacter = scanClassAtom();\n if (!maxCharacter && anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);\n continue;\n }\n if (!minCharacter) {\n continue;\n }\n const minCharacterValue = codePointAt(minCharacter, 0);\n const maxCharacterValue = codePointAt(maxCharacter, 0);\n if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {\n error2(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);\n }\n }\n }\n }\n function scanClassSetExpression() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 91 /* openBracket */);\n let isCharacterComplement = false;\n if (charCodeChecked(pos) === 94 /* caret */) {\n pos++;\n isCharacterComplement = true;\n }\n let expressionMayContainStrings = false;\n let ch = charCodeChecked(pos);\n if (isClassContentExit(ch)) {\n return;\n }\n let start2 = pos;\n let operand;\n switch (text.slice(pos, pos + 2)) {\n // TODO: don't use slice\n case \"--\":\n case \"&&\":\n error2(Diagnostics.Expected_a_class_set_operand);\n mayContainStrings = false;\n break;\n default:\n operand = scanClassSetOperand();\n break;\n }\n switch (charCodeChecked(pos)) {\n case 45 /* minus */:\n if (charCodeChecked(pos + 1) === 45 /* minus */) {\n if (isCharacterComplement && mayContainStrings) {\n error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n }\n expressionMayContainStrings = mayContainStrings;\n scanClassSetSubExpression(3 /* ClassSubtraction */);\n mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n return;\n }\n break;\n case 38 /* ampersand */:\n if (charCodeChecked(pos + 1) === 38 /* ampersand */) {\n scanClassSetSubExpression(2 /* ClassIntersection */);\n if (isCharacterComplement && mayContainStrings) {\n error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n }\n expressionMayContainStrings = mayContainStrings;\n mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n return;\n } else {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n }\n break;\n default:\n if (isCharacterComplement && mayContainStrings) {\n error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n }\n expressionMayContainStrings = mayContainStrings;\n break;\n }\n while (true) {\n ch = charCodeChecked(pos);\n if (ch === -1 /* EOF */) {\n break;\n }\n switch (ch) {\n case 45 /* minus */:\n pos++;\n ch = charCodeChecked(pos);\n if (isClassContentExit(ch)) {\n mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n return;\n }\n if (ch === 45 /* minus */) {\n pos++;\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n start2 = pos - 2;\n operand = text.slice(start2, pos);\n continue;\n } else {\n if (!operand) {\n error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start2, pos - 1 - start2);\n }\n const secondStart = pos;\n const secondOperand = scanClassSetOperand();\n if (isCharacterComplement && mayContainStrings) {\n error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);\n }\n expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);\n if (!secondOperand) {\n error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);\n break;\n }\n if (!operand) {\n break;\n }\n const minCharacterValue = codePointAt(operand, 0);\n const maxCharacterValue = codePointAt(secondOperand, 0);\n if (operand.length === charSize(minCharacterValue) && secondOperand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {\n error2(Diagnostics.Range_out_of_order_in_character_class, start2, pos - start2);\n }\n }\n break;\n case 38 /* ampersand */:\n start2 = pos;\n pos++;\n if (charCodeChecked(pos) === 38 /* ampersand */) {\n pos++;\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n if (charCodeChecked(pos) === 38 /* ampersand */) {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n pos++;\n }\n } else {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));\n }\n operand = text.slice(start2, pos);\n continue;\n }\n if (isClassContentExit(charCodeChecked(pos))) {\n break;\n }\n start2 = pos;\n switch (text.slice(pos, pos + 2)) {\n // TODO: don't use slice\n case \"--\":\n case \"&&\":\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);\n pos += 2;\n operand = text.slice(start2, pos);\n break;\n default:\n operand = scanClassSetOperand();\n break;\n }\n }\n mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n }\n function scanClassSetSubExpression(expressionType) {\n let expressionMayContainStrings = mayContainStrings;\n while (true) {\n let ch = charCodeChecked(pos);\n if (isClassContentExit(ch)) {\n break;\n }\n switch (ch) {\n case 45 /* minus */:\n pos++;\n if (charCodeChecked(pos) === 45 /* minus */) {\n pos++;\n if (expressionType !== 3 /* ClassSubtraction */) {\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n }\n } else {\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);\n }\n break;\n case 38 /* ampersand */:\n pos++;\n if (charCodeChecked(pos) === 38 /* ampersand */) {\n pos++;\n if (expressionType !== 2 /* ClassIntersection */) {\n error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n }\n if (charCodeChecked(pos) === 38 /* ampersand */) {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n pos++;\n }\n } else {\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));\n }\n break;\n default:\n switch (expressionType) {\n case 3 /* ClassSubtraction */:\n error2(Diagnostics._0_expected, pos, 0, \"--\");\n break;\n case 2 /* ClassIntersection */:\n error2(Diagnostics._0_expected, pos, 0, \"&&\");\n break;\n default:\n break;\n }\n break;\n }\n ch = charCodeChecked(pos);\n if (isClassContentExit(ch)) {\n error2(Diagnostics.Expected_a_class_set_operand);\n break;\n }\n scanClassSetOperand();\n expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);\n }\n mayContainStrings = expressionMayContainStrings;\n }\n function scanClassSetOperand() {\n mayContainStrings = false;\n switch (charCodeChecked(pos)) {\n case -1 /* EOF */:\n return \"\";\n case 91 /* openBracket */:\n pos++;\n scanClassSetExpression();\n scanExpectedChar(93 /* closeBracket */);\n return \"\";\n case 92 /* backslash */:\n pos++;\n if (scanCharacterClassEscape()) {\n return \"\";\n } else if (charCodeChecked(pos) === 113 /* q */) {\n pos++;\n if (charCodeChecked(pos) === 123 /* openBrace */) {\n pos++;\n scanClassStringDisjunctionContents();\n scanExpectedChar(125 /* closeBrace */);\n return \"\";\n } else {\n error2(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);\n return \"q\";\n }\n }\n pos--;\n // falls through\n default:\n return scanClassSetCharacter();\n }\n }\n function scanClassStringDisjunctionContents() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 123 /* openBrace */);\n let characterCount = 0;\n while (true) {\n const ch = charCodeChecked(pos);\n switch (ch) {\n case -1 /* EOF */:\n return;\n case 125 /* closeBrace */:\n if (characterCount !== 1) {\n mayContainStrings = true;\n }\n return;\n case 124 /* bar */:\n if (characterCount !== 1) {\n mayContainStrings = true;\n }\n pos++;\n start = pos;\n characterCount = 0;\n break;\n default:\n scanClassSetCharacter();\n characterCount++;\n break;\n }\n }\n }\n function scanClassSetCharacter() {\n const ch = charCodeChecked(pos);\n if (ch === -1 /* EOF */) {\n return \"\";\n }\n if (ch === 92 /* backslash */) {\n pos++;\n const ch2 = charCodeChecked(pos);\n switch (ch2) {\n case 98 /* b */:\n pos++;\n return \"\\b\";\n case 38 /* ampersand */:\n case 45 /* minus */:\n case 33 /* exclamation */:\n case 35 /* hash */:\n case 37 /* percent */:\n case 44 /* comma */:\n case 58 /* colon */:\n case 59 /* semicolon */:\n case 60 /* lessThan */:\n case 61 /* equals */:\n case 62 /* greaterThan */:\n case 64 /* at */:\n case 96 /* backtick */:\n case 126 /* tilde */:\n pos++;\n return String.fromCharCode(ch2);\n default:\n return scanCharacterEscape(\n /*atomEscape*/\n false\n );\n }\n } else if (ch === charCodeChecked(pos + 1)) {\n switch (ch) {\n case 38 /* ampersand */:\n case 33 /* exclamation */:\n case 35 /* hash */:\n case 37 /* percent */:\n case 42 /* asterisk */:\n case 43 /* plus */:\n case 44 /* comma */:\n case 46 /* dot */:\n case 58 /* colon */:\n case 59 /* semicolon */:\n case 60 /* lessThan */:\n case 61 /* equals */:\n case 62 /* greaterThan */:\n case 63 /* question */:\n case 64 /* at */:\n case 96 /* backtick */:\n case 126 /* tilde */:\n error2(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);\n pos += 2;\n return text.substring(pos - 2, pos);\n }\n }\n switch (ch) {\n case 47 /* slash */:\n case 40 /* openParen */:\n case 41 /* closeParen */:\n case 91 /* openBracket */:\n case 93 /* closeBracket */:\n case 123 /* openBrace */:\n case 125 /* closeBrace */:\n case 45 /* minus */:\n case 124 /* bar */:\n error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n pos++;\n return String.fromCharCode(ch);\n }\n return scanSourceCharacter();\n }\n function scanClassAtom() {\n if (charCodeChecked(pos) === 92 /* backslash */) {\n pos++;\n const ch = charCodeChecked(pos);\n switch (ch) {\n case 98 /* b */:\n pos++;\n return \"\\b\";\n case 45 /* minus */:\n pos++;\n return String.fromCharCode(ch);\n default:\n if (scanCharacterClassEscape()) {\n return \"\";\n }\n return scanCharacterEscape(\n /*atomEscape*/\n false\n );\n }\n } else {\n return scanSourceCharacter();\n }\n }\n function scanCharacterClassEscape() {\n Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n let isCharacterComplement = false;\n const start2 = pos - 1;\n const ch = charCodeChecked(pos);\n switch (ch) {\n case 100 /* d */:\n case 68 /* D */:\n case 115 /* s */:\n case 83 /* S */:\n case 119 /* w */:\n case 87 /* W */:\n pos++;\n return true;\n case 80 /* P */:\n isCharacterComplement = true;\n // falls through\n case 112 /* p */:\n pos++;\n if (charCodeChecked(pos) === 123 /* openBrace */) {\n pos++;\n const propertyNameOrValueStart = pos;\n const propertyNameOrValue = scanWordCharacters();\n if (charCodeChecked(pos) === 61 /* equals */) {\n const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);\n if (pos === propertyNameOrValueStart) {\n error2(Diagnostics.Expected_a_Unicode_property_name);\n } else if (propertyName === void 0) {\n error2(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);\n if (suggestion) {\n error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);\n }\n }\n pos++;\n const propertyValueStart = pos;\n const propertyValue = scanWordCharacters();\n if (pos === propertyValueStart) {\n error2(Diagnostics.Expected_a_Unicode_property_value);\n } else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {\n error2(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);\n const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);\n if (suggestion) {\n error2(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);\n }\n }\n } else {\n if (pos === propertyNameOrValueStart) {\n error2(Diagnostics.Expected_a_Unicode_property_name_or_value);\n } else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {\n if (!unicodeSetsMode) {\n error2(Diagnostics.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n } else if (isCharacterComplement) {\n error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n } else {\n mayContainStrings = true;\n }\n } else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {\n error2(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);\n if (suggestion) {\n error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);\n }\n }\n }\n scanExpectedChar(125 /* closeBrace */);\n if (!anyUnicodeMode) {\n error2(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);\n }\n } else if (anyUnicodeModeOrNonAnnexB) {\n error2(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));\n } else {\n pos--;\n return false;\n }\n return true;\n }\n return false;\n }\n function scanWordCharacters() {\n let value = \"\";\n while (true) {\n const ch = charCodeChecked(pos);\n if (ch === -1 /* EOF */ || !isWordCharacter(ch)) {\n break;\n }\n value += String.fromCharCode(ch);\n pos++;\n }\n return value;\n }\n function scanSourceCharacter() {\n const size = anyUnicodeMode ? charSize(codePointChecked(pos)) : 1;\n pos += size;\n return size > 0 ? text.substring(pos - size, pos) : \"\";\n }\n function scanExpectedChar(ch) {\n if (charCodeChecked(pos) === ch) {\n pos++;\n } else {\n error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));\n }\n }\n scanDisjunction(\n /*isInGroup*/\n false\n );\n forEach(groupNameReferences, (reference) => {\n if (!(groupSpecifiers == null ? void 0 : groupSpecifiers.has(reference.name))) {\n error2(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);\n if (groupSpecifiers) {\n const suggestion = getSpellingSuggestion(reference.name, groupSpecifiers, identity);\n if (suggestion) {\n error2(Diagnostics.Did_you_mean_0, reference.pos, reference.end - reference.pos, suggestion);\n }\n }\n }\n });\n forEach(decimalEscapes, (escape) => {\n if (escape.value > numberOfCapturingGroups) {\n if (numberOfCapturingGroups) {\n error2(Diagnostics.This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos, numberOfCapturingGroups);\n } else {\n error2(Diagnostics.This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos);\n }\n }\n });\n }\n function checkRegularExpressionFlagAvailability(flag, size) {\n const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);\n if (availableFrom && languageVersion < availableFrom) {\n error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, size, getNameOfScriptTarget(availableFrom));\n }\n }\n function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {\n const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);\n if (type === void 0) {\n return commentDirectives2;\n }\n return append(\n commentDirectives2,\n {\n range: { pos: lineStart, end: pos },\n type\n }\n );\n }\n function getDirectiveFromComment(text2, commentDirectiveRegEx) {\n const match = commentDirectiveRegEx.exec(text2);\n if (!match) {\n return void 0;\n }\n switch (match[1]) {\n case \"ts-expect-error\":\n return 0 /* ExpectError */;\n case \"ts-ignore\":\n return 1 /* Ignore */;\n }\n return void 0;\n }\n function reScanTemplateToken(isTaggedTemplate) {\n pos = tokenStart;\n return token = scanTemplateAndSetTokenValue(!isTaggedTemplate);\n }\n function reScanTemplateHeadOrNoSubstitutionTemplate() {\n pos = tokenStart;\n return token = scanTemplateAndSetTokenValue(\n /*shouldEmitInvalidEscapeError*/\n true\n );\n }\n function reScanJsxToken(allowMultilineJsxText = true) {\n pos = tokenStart = fullStartPos;\n return token = scanJsxToken(allowMultilineJsxText);\n }\n function reScanLessThanToken() {\n if (token === 48 /* LessThanLessThanToken */) {\n pos = tokenStart + 1;\n return token = 30 /* LessThanToken */;\n }\n return token;\n }\n function reScanHashToken() {\n if (token === 81 /* PrivateIdentifier */) {\n pos = tokenStart + 1;\n return token = 63 /* HashToken */;\n }\n return token;\n }\n function reScanQuestionToken() {\n Debug.assert(token === 61 /* QuestionQuestionToken */, \"'reScanQuestionToken' should only be called on a '??'\");\n pos = tokenStart + 1;\n return token = 58 /* QuestionToken */;\n }\n function scanJsxToken(allowMultilineJsxText = true) {\n fullStartPos = tokenStart = pos;\n if (pos >= end) {\n return token = 1 /* EndOfFileToken */;\n }\n let char = charCodeUnchecked(pos);\n if (char === 60 /* lessThan */) {\n if (charCodeUnchecked(pos + 1) === 47 /* slash */) {\n pos += 2;\n return token = 31 /* LessThanSlashToken */;\n }\n pos++;\n return token = 30 /* LessThanToken */;\n }\n if (char === 123 /* openBrace */) {\n pos++;\n return token = 19 /* OpenBraceToken */;\n }\n let firstNonWhitespace = 0;\n while (pos < end) {\n char = charCodeUnchecked(pos);\n if (char === 123 /* openBrace */) {\n break;\n }\n if (char === 60 /* lessThan */) {\n if (isConflictMarkerTrivia(text, pos)) {\n pos = scanConflictMarkerTrivia(text, pos, error2);\n return token = 7 /* ConflictMarkerTrivia */;\n }\n break;\n }\n if (char === 62 /* greaterThan */) {\n error2(Diagnostics.Unexpected_token_Did_you_mean_or_gt, pos, 1);\n }\n if (char === 125 /* closeBrace */) {\n error2(Diagnostics.Unexpected_token_Did_you_mean_or_rbrace, pos, 1);\n }\n if (isLineBreak(char) && firstNonWhitespace === 0) {\n firstNonWhitespace = -1;\n } else if (!allowMultilineJsxText && isLineBreak(char) && firstNonWhitespace > 0) {\n break;\n } else if (!isWhiteSpaceLike(char)) {\n firstNonWhitespace = pos;\n }\n pos++;\n }\n tokenValue = text.substring(fullStartPos, pos);\n return firstNonWhitespace === -1 ? 13 /* JsxTextAllWhiteSpaces */ : 12 /* JsxText */;\n }\n function scanJsxIdentifier() {\n if (tokenIsIdentifierOrKeyword(token)) {\n while (pos < end) {\n const ch = charCodeUnchecked(pos);\n if (ch === 45 /* minus */) {\n tokenValue += \"-\";\n pos++;\n continue;\n }\n const oldPos = pos;\n tokenValue += scanIdentifierParts();\n if (pos === oldPos) {\n break;\n }\n }\n return getIdentifierToken();\n }\n return token;\n }\n function scanJsxAttributeValue() {\n fullStartPos = pos;\n switch (charCodeUnchecked(pos)) {\n case 34 /* doubleQuote */:\n case 39 /* singleQuote */:\n tokenValue = scanString(\n /*jsxAttributeString*/\n true\n );\n return token = 11 /* StringLiteral */;\n default:\n return scan();\n }\n }\n function reScanJsxAttributeValue() {\n pos = tokenStart = fullStartPos;\n return scanJsxAttributeValue();\n }\n function scanJSDocCommentTextToken(inBackticks) {\n fullStartPos = tokenStart = pos;\n tokenFlags = 0 /* None */;\n if (pos >= end) {\n return token = 1 /* EndOfFileToken */;\n }\n for (let ch = charCodeUnchecked(pos); pos < end && (!isLineBreak(ch) && ch !== 96 /* backtick */); ch = codePointUnchecked(++pos)) {\n if (!inBackticks) {\n if (ch === 123 /* openBrace */) {\n break;\n } else if (ch === 64 /* at */ && pos - 1 >= 0 && isWhiteSpaceSingleLine(charCodeUnchecked(pos - 1)) && !(pos + 1 < end && isWhiteSpaceLike(charCodeUnchecked(pos + 1)))) {\n break;\n }\n }\n }\n if (pos === tokenStart) {\n return scanJsDocToken();\n }\n tokenValue = text.substring(tokenStart, pos);\n return token = 82 /* JSDocCommentTextToken */;\n }\n function scanJsDocToken() {\n fullStartPos = tokenStart = pos;\n tokenFlags = 0 /* None */;\n if (pos >= end) {\n return token = 1 /* EndOfFileToken */;\n }\n const ch = codePointUnchecked(pos);\n pos += charSize(ch);\n switch (ch) {\n case 9 /* tab */:\n case 11 /* verticalTab */:\n case 12 /* formFeed */:\n case 32 /* space */:\n while (pos < end && isWhiteSpaceSingleLine(charCodeUnchecked(pos))) {\n pos++;\n }\n return token = 5 /* WhitespaceTrivia */;\n case 64 /* at */:\n return token = 60 /* AtToken */;\n case 13 /* carriageReturn */:\n if (charCodeUnchecked(pos) === 10 /* lineFeed */) {\n pos++;\n }\n // falls through\n case 10 /* lineFeed */:\n tokenFlags |= 1 /* PrecedingLineBreak */;\n return token = 4 /* NewLineTrivia */;\n case 42 /* asterisk */:\n return token = 42 /* AsteriskToken */;\n case 123 /* openBrace */:\n return token = 19 /* OpenBraceToken */;\n case 125 /* closeBrace */:\n return token = 20 /* CloseBraceToken */;\n case 91 /* openBracket */:\n return token = 23 /* OpenBracketToken */;\n case 93 /* closeBracket */:\n return token = 24 /* CloseBracketToken */;\n case 40 /* openParen */:\n return token = 21 /* OpenParenToken */;\n case 41 /* closeParen */:\n return token = 22 /* CloseParenToken */;\n case 60 /* lessThan */:\n return token = 30 /* LessThanToken */;\n case 62 /* greaterThan */:\n return token = 32 /* GreaterThanToken */;\n case 61 /* equals */:\n return token = 64 /* EqualsToken */;\n case 44 /* comma */:\n return token = 28 /* CommaToken */;\n case 46 /* dot */:\n return token = 25 /* DotToken */;\n case 96 /* backtick */:\n return token = 62 /* BacktickToken */;\n case 35 /* hash */:\n return token = 63 /* HashToken */;\n case 92 /* backslash */:\n pos--;\n const extendedCookedChar = peekExtendedUnicodeEscape();\n if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {\n tokenValue = scanExtendedUnicodeEscape(\n /*shouldEmitInvalidEscapeError*/\n true\n ) + scanIdentifierParts();\n return token = getIdentifierToken();\n }\n const cookedChar = peekUnicodeEscape();\n if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) {\n pos += 6;\n tokenFlags |= 1024 /* UnicodeEscape */;\n tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts();\n return token = getIdentifierToken();\n }\n pos++;\n return token = 0 /* Unknown */;\n }\n if (isIdentifierStart(ch, languageVersion)) {\n let char = ch;\n while (pos < end && isIdentifierPart(char = codePointUnchecked(pos), languageVersion) || char === 45 /* minus */) pos += charSize(char);\n tokenValue = text.substring(tokenStart, pos);\n if (char === 92 /* backslash */) {\n tokenValue += scanIdentifierParts();\n }\n return token = getIdentifierToken();\n } else {\n return token = 0 /* Unknown */;\n }\n }\n function speculationHelper(callback, isLookahead) {\n const savePos = pos;\n const saveStartPos = fullStartPos;\n const saveTokenPos = tokenStart;\n const saveToken = token;\n const saveTokenValue = tokenValue;\n const saveTokenFlags = tokenFlags;\n const result = callback();\n if (!result || isLookahead) {\n pos = savePos;\n fullStartPos = saveStartPos;\n tokenStart = saveTokenPos;\n token = saveToken;\n tokenValue = saveTokenValue;\n tokenFlags = saveTokenFlags;\n }\n return result;\n }\n function scanRange(start2, length3, callback) {\n const saveEnd = end;\n const savePos = pos;\n const saveStartPos = fullStartPos;\n const saveTokenPos = tokenStart;\n const saveToken = token;\n const saveTokenValue = tokenValue;\n const saveTokenFlags = tokenFlags;\n const saveErrorExpectations = commentDirectives;\n setText(text, start2, length3);\n const result = callback();\n end = saveEnd;\n pos = savePos;\n fullStartPos = saveStartPos;\n tokenStart = saveTokenPos;\n token = saveToken;\n tokenValue = saveTokenValue;\n tokenFlags = saveTokenFlags;\n commentDirectives = saveErrorExpectations;\n return result;\n }\n function lookAhead(callback) {\n return speculationHelper(\n callback,\n /*isLookahead*/\n true\n );\n }\n function tryScan(callback) {\n return speculationHelper(\n callback,\n /*isLookahead*/\n false\n );\n }\n function getText() {\n return text;\n }\n function clearCommentDirectives() {\n commentDirectives = void 0;\n }\n function setText(newText, start2, length3) {\n text = newText || \"\";\n end = length3 === void 0 ? text.length : start2 + length3;\n resetTokenState(start2 || 0);\n }\n function setOnError(errorCallback) {\n onError = errorCallback;\n }\n function setScriptTarget(scriptTarget) {\n languageVersion = scriptTarget;\n }\n function setLanguageVariant(variant) {\n languageVariant = variant;\n }\n function setScriptKind(kind) {\n scriptKind = kind;\n }\n function setJSDocParsingMode(kind) {\n jsDocParsingMode = kind;\n }\n function resetTokenState(position) {\n Debug.assert(position >= 0);\n pos = position;\n fullStartPos = position;\n tokenStart = position;\n token = 0 /* Unknown */;\n tokenValue = void 0;\n tokenFlags = 0 /* None */;\n }\n function setSkipJsDocLeadingAsterisks(skip) {\n skipJsDocLeadingAsterisks += skip ? 1 : -1;\n }\n}\nfunction codePointAt(s, i) {\n return s.codePointAt(i);\n}\nfunction charSize(ch) {\n if (ch >= 65536) {\n return 2;\n }\n if (ch === -1 /* EOF */) {\n return 0;\n }\n return 1;\n}\nfunction utf16EncodeAsStringFallback(codePoint) {\n Debug.assert(0 <= codePoint && codePoint <= 1114111);\n if (codePoint <= 65535) {\n return String.fromCharCode(codePoint);\n }\n const codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 55296;\n const codeUnit2 = (codePoint - 65536) % 1024 + 56320;\n return String.fromCharCode(codeUnit1, codeUnit2);\n}\nvar utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fromCodePoint(codePoint) : utf16EncodeAsStringFallback;\nfunction utf16EncodeAsString(codePoint) {\n return utf16EncodeAsStringWorker(codePoint);\n}\nvar nonBinaryUnicodeProperties = new Map(Object.entries({\n General_Category: \"General_Category\",\n gc: \"General_Category\",\n Script: \"Script\",\n sc: \"Script\",\n Script_Extensions: \"Script_Extensions\",\n scx: \"Script_Extensions\"\n}));\nvar binaryUnicodeProperties = /* @__PURE__ */ new Set([\"ASCII\", \"ASCII_Hex_Digit\", \"AHex\", \"Alphabetic\", \"Alpha\", \"Any\", \"Assigned\", \"Bidi_Control\", \"Bidi_C\", \"Bidi_Mirrored\", \"Bidi_M\", \"Case_Ignorable\", \"CI\", \"Cased\", \"Changes_When_Casefolded\", \"CWCF\", \"Changes_When_Casemapped\", \"CWCM\", \"Changes_When_Lowercased\", \"CWL\", \"Changes_When_NFKC_Casefolded\", \"CWKCF\", \"Changes_When_Titlecased\", \"CWT\", \"Changes_When_Uppercased\", \"CWU\", \"Dash\", \"Default_Ignorable_Code_Point\", \"DI\", \"Deprecated\", \"Dep\", \"Diacritic\", \"Dia\", \"Emoji\", \"Emoji_Component\", \"EComp\", \"Emoji_Modifier\", \"EMod\", \"Emoji_Modifier_Base\", \"EBase\", \"Emoji_Presentation\", \"EPres\", \"Extended_Pictographic\", \"ExtPict\", \"Extender\", \"Ext\", \"Grapheme_Base\", \"Gr_Base\", \"Grapheme_Extend\", \"Gr_Ext\", \"Hex_Digit\", \"Hex\", \"IDS_Binary_Operator\", \"IDSB\", \"IDS_Trinary_Operator\", \"IDST\", \"ID_Continue\", \"IDC\", \"ID_Start\", \"IDS\", \"Ideographic\", \"Ideo\", \"Join_Control\", \"Join_C\", \"Logical_Order_Exception\", \"LOE\", \"Lowercase\", \"Lower\", \"Math\", \"Noncharacter_Code_Point\", \"NChar\", \"Pattern_Syntax\", \"Pat_Syn\", \"Pattern_White_Space\", \"Pat_WS\", \"Quotation_Mark\", \"QMark\", \"Radical\", \"Regional_Indicator\", \"RI\", \"Sentence_Terminal\", \"STerm\", \"Soft_Dotted\", \"SD\", \"Terminal_Punctuation\", \"Term\", \"Unified_Ideograph\", \"UIdeo\", \"Uppercase\", \"Upper\", \"Variation_Selector\", \"VS\", \"White_Space\", \"space\", \"XID_Continue\", \"XIDC\", \"XID_Start\", \"XIDS\"]);\nvar binaryUnicodePropertiesOfStrings = /* @__PURE__ */ new Set([\"Basic_Emoji\", \"Emoji_Keycap_Sequence\", \"RGI_Emoji_Modifier_Sequence\", \"RGI_Emoji_Flag_Sequence\", \"RGI_Emoji_Tag_Sequence\", \"RGI_Emoji_ZWJ_Sequence\", \"RGI_Emoji\"]);\nvar valuesOfNonBinaryUnicodeProperties = {\n General_Category: /* @__PURE__ */ new Set([\"C\", \"Other\", \"Cc\", \"Control\", \"cntrl\", \"Cf\", \"Format\", \"Cn\", \"Unassigned\", \"Co\", \"Private_Use\", \"Cs\", \"Surrogate\", \"L\", \"Letter\", \"LC\", \"Cased_Letter\", \"Ll\", \"Lowercase_Letter\", \"Lm\", \"Modifier_Letter\", \"Lo\", \"Other_Letter\", \"Lt\", \"Titlecase_Letter\", \"Lu\", \"Uppercase_Letter\", \"M\", \"Mark\", \"Combining_Mark\", \"Mc\", \"Spacing_Mark\", \"Me\", \"Enclosing_Mark\", \"Mn\", \"Nonspacing_Mark\", \"N\", \"Number\", \"Nd\", \"Decimal_Number\", \"digit\", \"Nl\", \"Letter_Number\", \"No\", \"Other_Number\", \"P\", \"Punctuation\", \"punct\", \"Pc\", \"Connector_Punctuation\", \"Pd\", \"Dash_Punctuation\", \"Pe\", \"Close_Punctuation\", \"Pf\", \"Final_Punctuation\", \"Pi\", \"Initial_Punctuation\", \"Po\", \"Other_Punctuation\", \"Ps\", \"Open_Punctuation\", \"S\", \"Symbol\", \"Sc\", \"Currency_Symbol\", \"Sk\", \"Modifier_Symbol\", \"Sm\", \"Math_Symbol\", \"So\", \"Other_Symbol\", \"Z\", \"Separator\", \"Zl\", \"Line_Separator\", \"Zp\", \"Paragraph_Separator\", \"Zs\", \"Space_Separator\"]),\n Script: /* @__PURE__ */ new Set([\"Adlm\", \"Adlam\", \"Aghb\", \"Caucasian_Albanian\", \"Ahom\", \"Arab\", \"Arabic\", \"Armi\", \"Imperial_Aramaic\", \"Armn\", \"Armenian\", \"Avst\", \"Avestan\", \"Bali\", \"Balinese\", \"Bamu\", \"Bamum\", \"Bass\", \"Bassa_Vah\", \"Batk\", \"Batak\", \"Beng\", \"Bengali\", \"Bhks\", \"Bhaiksuki\", \"Bopo\", \"Bopomofo\", \"Brah\", \"Brahmi\", \"Brai\", \"Braille\", \"Bugi\", \"Buginese\", \"Buhd\", \"Buhid\", \"Cakm\", \"Chakma\", \"Cans\", \"Canadian_Aboriginal\", \"Cari\", \"Carian\", \"Cham\", \"Cher\", \"Cherokee\", \"Chrs\", \"Chorasmian\", \"Copt\", \"Coptic\", \"Qaac\", \"Cpmn\", \"Cypro_Minoan\", \"Cprt\", \"Cypriot\", \"Cyrl\", \"Cyrillic\", \"Deva\", \"Devanagari\", \"Diak\", \"Dives_Akuru\", \"Dogr\", \"Dogra\", \"Dsrt\", \"Deseret\", \"Dupl\", \"Duployan\", \"Egyp\", \"Egyptian_Hieroglyphs\", \"Elba\", \"Elbasan\", \"Elym\", \"Elymaic\", \"Ethi\", \"Ethiopic\", \"Geor\", \"Georgian\", \"Glag\", \"Glagolitic\", \"Gong\", \"Gunjala_Gondi\", \"Gonm\", \"Masaram_Gondi\", \"Goth\", \"Gothic\", \"Gran\", \"Grantha\", \"Grek\", \"Greek\", \"Gujr\", \"Gujarati\", \"Guru\", \"Gurmukhi\", \"Hang\", \"Hangul\", \"Hani\", \"Han\", \"Hano\", \"Hanunoo\", \"Hatr\", \"Hatran\", \"Hebr\", \"Hebrew\", \"Hira\", \"Hiragana\", \"Hluw\", \"Anatolian_Hieroglyphs\", \"Hmng\", \"Pahawh_Hmong\", \"Hmnp\", \"Nyiakeng_Puachue_Hmong\", \"Hrkt\", \"Katakana_Or_Hiragana\", \"Hung\", \"Old_Hungarian\", \"Ital\", \"Old_Italic\", \"Java\", \"Javanese\", \"Kali\", \"Kayah_Li\", \"Kana\", \"Katakana\", \"Kawi\", \"Khar\", \"Kharoshthi\", \"Khmr\", \"Khmer\", \"Khoj\", \"Khojki\", \"Kits\", \"Khitan_Small_Script\", \"Knda\", \"Kannada\", \"Kthi\", \"Kaithi\", \"Lana\", \"Tai_Tham\", \"Laoo\", \"Lao\", \"Latn\", \"Latin\", \"Lepc\", \"Lepcha\", \"Limb\", \"Limbu\", \"Lina\", \"Linear_A\", \"Linb\", \"Linear_B\", \"Lisu\", \"Lyci\", \"Lycian\", \"Lydi\", \"Lydian\", \"Mahj\", \"Mahajani\", \"Maka\", \"Makasar\", \"Mand\", \"Mandaic\", \"Mani\", \"Manichaean\", \"Marc\", \"Marchen\", \"Medf\", \"Medefaidrin\", \"Mend\", \"Mende_Kikakui\", \"Merc\", \"Meroitic_Cursive\", \"Mero\", \"Meroitic_Hieroglyphs\", \"Mlym\", \"Malayalam\", \"Modi\", \"Mong\", \"Mongolian\", \"Mroo\", \"Mro\", \"Mtei\", \"Meetei_Mayek\", \"Mult\", \"Multani\", \"Mymr\", \"Myanmar\", \"Nagm\", \"Nag_Mundari\", \"Nand\", \"Nandinagari\", \"Narb\", \"Old_North_Arabian\", \"Nbat\", \"Nabataean\", \"Newa\", \"Nkoo\", \"Nko\", \"Nshu\", \"Nushu\", \"Ogam\", \"Ogham\", \"Olck\", \"Ol_Chiki\", \"Orkh\", \"Old_Turkic\", \"Orya\", \"Oriya\", \"Osge\", \"Osage\", \"Osma\", \"Osmanya\", \"Ougr\", \"Old_Uyghur\", \"Palm\", \"Palmyrene\", \"Pauc\", \"Pau_Cin_Hau\", \"Perm\", \"Old_Permic\", \"Phag\", \"Phags_Pa\", \"Phli\", \"Inscriptional_Pahlavi\", \"Phlp\", \"Psalter_Pahlavi\", \"Phnx\", \"Phoenician\", \"Plrd\", \"Miao\", \"Prti\", \"Inscriptional_Parthian\", \"Rjng\", \"Rejang\", \"Rohg\", \"Hanifi_Rohingya\", \"Runr\", \"Runic\", \"Samr\", \"Samaritan\", \"Sarb\", \"Old_South_Arabian\", \"Saur\", \"Saurashtra\", \"Sgnw\", \"SignWriting\", \"Shaw\", \"Shavian\", \"Shrd\", \"Sharada\", \"Sidd\", \"Siddham\", \"Sind\", \"Khudawadi\", \"Sinh\", \"Sinhala\", \"Sogd\", \"Sogdian\", \"Sogo\", \"Old_Sogdian\", \"Sora\", \"Sora_Sompeng\", \"Soyo\", \"Soyombo\", \"Sund\", \"Sundanese\", \"Sylo\", \"Syloti_Nagri\", \"Syrc\", \"Syriac\", \"Tagb\", \"Tagbanwa\", \"Takr\", \"Takri\", \"Tale\", \"Tai_Le\", \"Talu\", \"New_Tai_Lue\", \"Taml\", \"Tamil\", \"Tang\", \"Tangut\", \"Tavt\", \"Tai_Viet\", \"Telu\", \"Telugu\", \"Tfng\", \"Tifinagh\", \"Tglg\", \"Tagalog\", \"Thaa\", \"Thaana\", \"Thai\", \"Tibt\", \"Tibetan\", \"Tirh\", \"Tirhuta\", \"Tnsa\", \"Tangsa\", \"Toto\", \"Ugar\", \"Ugaritic\", \"Vaii\", \"Vai\", \"Vith\", \"Vithkuqi\", \"Wara\", \"Warang_Citi\", \"Wcho\", \"Wancho\", \"Xpeo\", \"Old_Persian\", \"Xsux\", \"Cuneiform\", \"Yezi\", \"Yezidi\", \"Yiii\", \"Yi\", \"Zanb\", \"Zanabazar_Square\", \"Zinh\", \"Inherited\", \"Qaai\", \"Zyyy\", \"Common\", \"Zzzz\", \"Unknown\"]),\n Script_Extensions: void 0\n};\nvaluesOfNonBinaryUnicodeProperties.Script_Extensions = valuesOfNonBinaryUnicodeProperties.Script;\n\n// src/compiler/utilitiesPublic.ts\nfunction isExternalModuleNameRelative(moduleName) {\n return pathIsRelative(moduleName) || isRootedDiskPath(moduleName);\n}\nfunction sortAndDeduplicateDiagnostics(diagnostics) {\n return sortAndDeduplicate(diagnostics, compareDiagnostics, diagnosticsEqualityComparer);\n}\nvar targetToLibMap = /* @__PURE__ */ new Map([\n [99 /* ESNext */, \"lib.esnext.full.d.ts\"],\n [11 /* ES2024 */, \"lib.es2024.full.d.ts\"],\n [10 /* ES2023 */, \"lib.es2023.full.d.ts\"],\n [9 /* ES2022 */, \"lib.es2022.full.d.ts\"],\n [8 /* ES2021 */, \"lib.es2021.full.d.ts\"],\n [7 /* ES2020 */, \"lib.es2020.full.d.ts\"],\n [6 /* ES2019 */, \"lib.es2019.full.d.ts\"],\n [5 /* ES2018 */, \"lib.es2018.full.d.ts\"],\n [4 /* ES2017 */, \"lib.es2017.full.d.ts\"],\n [3 /* ES2016 */, \"lib.es2016.full.d.ts\"],\n [2 /* ES2015 */, \"lib.es6.d.ts\"]\n // We don't use lib.es2015.full.d.ts due to breaking change.\n]);\nfunction getDefaultLibFileName(options) {\n const target = getEmitScriptTarget(options);\n switch (target) {\n case 99 /* ESNext */:\n case 11 /* ES2024 */:\n case 10 /* ES2023 */:\n case 9 /* ES2022 */:\n case 8 /* ES2021 */:\n case 7 /* ES2020 */:\n case 6 /* ES2019 */:\n case 5 /* ES2018 */:\n case 4 /* ES2017 */:\n case 3 /* ES2016 */:\n case 2 /* ES2015 */:\n return targetToLibMap.get(target);\n default:\n return \"lib.d.ts\";\n }\n}\nfunction textSpanEnd(span) {\n return span.start + span.length;\n}\nfunction textSpanIsEmpty(span) {\n return span.length === 0;\n}\nfunction textSpanContainsPosition(span, position) {\n return position >= span.start && position < textSpanEnd(span);\n}\nfunction textRangeContainsPositionInclusive(range, position) {\n return position >= range.pos && position <= range.end;\n}\nfunction textSpanContainsTextSpan(span, other) {\n return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span);\n}\nfunction textSpanContainsTextRange(span, range) {\n return range.pos >= span.start && range.end <= textSpanEnd(span);\n}\nfunction textRangeContainsTextSpan(range, span) {\n return span.start >= range.pos && textSpanEnd(span) <= range.end;\n}\nfunction textSpanOverlapsWith(span, other) {\n return textSpanOverlap(span, other) !== void 0;\n}\nfunction textSpanOverlap(span1, span2) {\n const overlap = textSpanIntersection(span1, span2);\n return overlap && overlap.length === 0 ? void 0 : overlap;\n}\nfunction textSpanIntersectsWithTextSpan(span, other) {\n return decodedTextSpanIntersectsWith(span.start, span.length, other.start, other.length);\n}\nfunction textSpanIntersectsWith(span, start, length2) {\n return decodedTextSpanIntersectsWith(span.start, span.length, start, length2);\n}\nfunction decodedTextSpanIntersectsWith(start1, length1, start2, length2) {\n const end1 = start1 + length1;\n const end2 = start2 + length2;\n return start2 <= end1 && end2 >= start1;\n}\nfunction textSpanIntersectsWithPosition(span, position) {\n return position <= textSpanEnd(span) && position >= span.start;\n}\nfunction textRangeIntersectsWithTextSpan(range, span) {\n return textSpanIntersectsWith(span, range.pos, range.end - range.pos);\n}\nfunction textSpanIntersection(span1, span2) {\n const start = Math.max(span1.start, span2.start);\n const end = Math.min(textSpanEnd(span1), textSpanEnd(span2));\n return start <= end ? createTextSpanFromBounds(start, end) : void 0;\n}\nfunction normalizeSpans(spans) {\n spans = spans.filter((span) => span.length > 0).sort((a, b) => {\n return a.start !== b.start ? a.start - b.start : a.length - b.length;\n });\n const result = [];\n let i = 0;\n while (i < spans.length) {\n let span = spans[i];\n let j = i + 1;\n while (j < spans.length && textSpanIntersectsWithTextSpan(span, spans[j])) {\n const start = Math.min(span.start, spans[j].start);\n const end = Math.max(textSpanEnd(span), textSpanEnd(spans[j]));\n span = createTextSpanFromBounds(start, end);\n j++;\n }\n i = j;\n result.push(span);\n }\n return result;\n}\nfunction createTextSpan(start, length2) {\n if (start < 0) {\n throw new Error(\"start < 0\");\n }\n if (length2 < 0) {\n throw new Error(\"length < 0\");\n }\n return { start, length: length2 };\n}\nfunction createTextSpanFromBounds(start, end) {\n return createTextSpan(start, end - start);\n}\nfunction textChangeRangeNewSpan(range) {\n return createTextSpan(range.span.start, range.newLength);\n}\nfunction textChangeRangeIsUnchanged(range) {\n return textSpanIsEmpty(range.span) && range.newLength === 0;\n}\nfunction createTextChangeRange(span, newLength) {\n if (newLength < 0) {\n throw new Error(\"newLength < 0\");\n }\n return { span, newLength };\n}\nvar unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0);\nfunction collapseTextChangeRangesAcrossMultipleVersions(changes) {\n if (changes.length === 0) {\n return unchangedTextChangeRange;\n }\n if (changes.length === 1) {\n return changes[0];\n }\n const change0 = changes[0];\n let oldStartN = change0.span.start;\n let oldEndN = textSpanEnd(change0.span);\n let newEndN = oldStartN + change0.newLength;\n for (let i = 1; i < changes.length; i++) {\n const nextChange = changes[i];\n const oldStart1 = oldStartN;\n const oldEnd1 = oldEndN;\n const newEnd1 = newEndN;\n const oldStart2 = nextChange.span.start;\n const oldEnd2 = textSpanEnd(nextChange.span);\n const newEnd2 = oldStart2 + nextChange.newLength;\n oldStartN = Math.min(oldStart1, oldStart2);\n oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1));\n newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2));\n }\n return createTextChangeRange(\n createTextSpanFromBounds(oldStartN, oldEndN),\n /*newLength*/\n newEndN - oldStartN\n );\n}\nfunction getTypeParameterOwner(d) {\n if (d && d.kind === 169 /* TypeParameter */) {\n for (let current = d; current; current = current.parent) {\n if (isFunctionLike(current) || isClassLike(current) || current.kind === 265 /* InterfaceDeclaration */) {\n return current;\n }\n }\n }\n}\nfunction isParameterPropertyDeclaration(node, parent2) {\n return isParameter(node) && hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */) && parent2.kind === 177 /* Constructor */;\n}\nfunction isEmptyBindingPattern(node) {\n if (isBindingPattern(node)) {\n return every(node.elements, isEmptyBindingElement);\n }\n return false;\n}\nfunction isEmptyBindingElement(node) {\n if (isOmittedExpression(node)) {\n return true;\n }\n return isEmptyBindingPattern(node.name);\n}\nfunction walkUpBindingElementsAndPatterns(binding) {\n let node = binding.parent;\n while (isBindingElement(node.parent)) {\n node = node.parent.parent;\n }\n return node.parent;\n}\nfunction getCombinedFlags(node, getFlags) {\n if (isBindingElement(node)) {\n node = walkUpBindingElementsAndPatterns(node);\n }\n let flags = getFlags(node);\n if (node.kind === 261 /* VariableDeclaration */) {\n node = node.parent;\n }\n if (node && node.kind === 262 /* VariableDeclarationList */) {\n flags |= getFlags(node);\n node = node.parent;\n }\n if (node && node.kind === 244 /* VariableStatement */) {\n flags |= getFlags(node);\n }\n return flags;\n}\nfunction getCombinedModifierFlags(node) {\n return getCombinedFlags(node, getEffectiveModifierFlags);\n}\nfunction getCombinedNodeFlagsAlwaysIncludeJSDoc(node) {\n return getCombinedFlags(node, getEffectiveModifierFlagsAlwaysIncludeJSDoc);\n}\nfunction getCombinedNodeFlags(node) {\n return getCombinedFlags(node, getNodeFlags);\n}\nfunction getNodeFlags(node) {\n return node.flags;\n}\nvar supportedLocaleDirectories = [\"cs\", \"de\", \"es\", \"fr\", \"it\", \"ja\", \"ko\", \"pl\", \"pt-br\", \"ru\", \"tr\", \"zh-cn\", \"zh-tw\"];\nfunction validateLocaleAndSetLanguage(locale, sys2, errors) {\n const lowerCaseLocale = locale.toLowerCase();\n const matchResult = /^([a-z]+)(?:[_-]([a-z]+))?$/.exec(lowerCaseLocale);\n if (!matchResult) {\n if (errors) {\n errors.push(createCompilerDiagnostic(Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, \"en\", \"ja-jp\"));\n }\n return;\n }\n const language = matchResult[1];\n const territory = matchResult[2];\n if (contains(supportedLocaleDirectories, lowerCaseLocale) && !trySetLanguageAndTerritory(language, territory, errors)) {\n trySetLanguageAndTerritory(\n language,\n /*territory*/\n void 0,\n errors\n );\n }\n setUILocale(locale);\n function trySetLanguageAndTerritory(language2, territory2, errors2) {\n const compilerFilePath = normalizePath(sys2.getExecutingFilePath());\n const containingDirectoryPath = getDirectoryPath(compilerFilePath);\n let filePath = combinePaths(containingDirectoryPath, language2);\n if (territory2) {\n filePath = filePath + \"-\" + territory2;\n }\n filePath = sys2.resolvePath(combinePaths(filePath, \"diagnosticMessages.generated.json\"));\n if (!sys2.fileExists(filePath)) {\n return false;\n }\n let fileContents = \"\";\n try {\n fileContents = sys2.readFile(filePath);\n } catch {\n if (errors2) {\n errors2.push(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, filePath));\n }\n return false;\n }\n try {\n setLocalizedDiagnosticMessages(JSON.parse(fileContents));\n } catch {\n if (errors2) {\n errors2.push(createCompilerDiagnostic(Diagnostics.Corrupted_locale_file_0, filePath));\n }\n return false;\n }\n return true;\n }\n}\nfunction getOriginalNode(node, nodeTest) {\n if (node) {\n while (node.original !== void 0) {\n node = node.original;\n }\n }\n if (!node || !nodeTest) {\n return node;\n }\n return nodeTest(node) ? node : void 0;\n}\nfunction findAncestor(node, callback) {\n while (node) {\n const result = callback(node);\n if (result === \"quit\") {\n return void 0;\n } else if (result) {\n return node;\n }\n node = node.parent;\n }\n return void 0;\n}\nfunction isParseTreeNode(node) {\n return (node.flags & 16 /* Synthesized */) === 0;\n}\nfunction getParseTreeNode(node, nodeTest) {\n if (node === void 0 || isParseTreeNode(node)) {\n return node;\n }\n node = node.original;\n while (node) {\n if (isParseTreeNode(node)) {\n return !nodeTest || nodeTest(node) ? node : void 0;\n }\n node = node.original;\n }\n}\nfunction escapeLeadingUnderscores(identifier) {\n return identifier.length >= 2 && identifier.charCodeAt(0) === 95 /* _ */ && identifier.charCodeAt(1) === 95 /* _ */ ? \"_\" + identifier : identifier;\n}\nfunction unescapeLeadingUnderscores(identifier) {\n const id = identifier;\n return id.length >= 3 && id.charCodeAt(0) === 95 /* _ */ && id.charCodeAt(1) === 95 /* _ */ && id.charCodeAt(2) === 95 /* _ */ ? id.substr(1) : id;\n}\nfunction idText(identifierOrPrivateName) {\n return unescapeLeadingUnderscores(identifierOrPrivateName.escapedText);\n}\nfunction identifierToKeywordKind(node) {\n const token = stringToToken(node.escapedText);\n return token ? tryCast(token, isKeyword) : void 0;\n}\nfunction symbolName(symbol) {\n if (symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) {\n return idText(symbol.valueDeclaration.name);\n }\n return unescapeLeadingUnderscores(symbol.escapedName);\n}\nfunction nameForNamelessJSDocTypedef(declaration) {\n const hostNode = declaration.parent.parent;\n if (!hostNode) {\n return void 0;\n }\n if (isDeclaration(hostNode)) {\n return getDeclarationIdentifier(hostNode);\n }\n switch (hostNode.kind) {\n case 244 /* VariableStatement */:\n if (hostNode.declarationList && hostNode.declarationList.declarations[0]) {\n return getDeclarationIdentifier(hostNode.declarationList.declarations[0]);\n }\n break;\n case 245 /* ExpressionStatement */:\n let expr = hostNode.expression;\n if (expr.kind === 227 /* BinaryExpression */ && expr.operatorToken.kind === 64 /* EqualsToken */) {\n expr = expr.left;\n }\n switch (expr.kind) {\n case 212 /* PropertyAccessExpression */:\n return expr.name;\n case 213 /* ElementAccessExpression */:\n const arg = expr.argumentExpression;\n if (isIdentifier(arg)) {\n return arg;\n }\n }\n break;\n case 218 /* ParenthesizedExpression */: {\n return getDeclarationIdentifier(hostNode.expression);\n }\n case 257 /* LabeledStatement */: {\n if (isDeclaration(hostNode.statement) || isExpression(hostNode.statement)) {\n return getDeclarationIdentifier(hostNode.statement);\n }\n break;\n }\n }\n}\nfunction getDeclarationIdentifier(node) {\n const name = getNameOfDeclaration(node);\n return name && isIdentifier(name) ? name : void 0;\n}\nfunction nodeHasName(statement, name) {\n if (isNamedDeclaration(statement) && isIdentifier(statement.name) && idText(statement.name) === idText(name)) {\n return true;\n }\n if (isVariableStatement(statement) && some(statement.declarationList.declarations, (d) => nodeHasName(d, name))) {\n return true;\n }\n return false;\n}\nfunction getNameOfJSDocTypedef(declaration) {\n return declaration.name || nameForNamelessJSDocTypedef(declaration);\n}\nfunction isNamedDeclaration(node) {\n return !!node.name;\n}\nfunction getNonAssignedNameOfDeclaration(declaration) {\n switch (declaration.kind) {\n case 80 /* Identifier */:\n return declaration;\n case 349 /* JSDocPropertyTag */:\n case 342 /* JSDocParameterTag */: {\n const { name } = declaration;\n if (name.kind === 167 /* QualifiedName */) {\n return name.right;\n }\n break;\n }\n case 214 /* CallExpression */:\n case 227 /* BinaryExpression */: {\n const expr2 = declaration;\n switch (getAssignmentDeclarationKind(expr2)) {\n case 1 /* ExportsProperty */:\n case 4 /* ThisProperty */:\n case 5 /* Property */:\n case 3 /* PrototypeProperty */:\n return getElementOrPropertyAccessArgumentExpressionOrName(expr2.left);\n case 7 /* ObjectDefinePropertyValue */:\n case 8 /* ObjectDefinePropertyExports */:\n case 9 /* ObjectDefinePrototypeProperty */:\n return expr2.arguments[1];\n default:\n return void 0;\n }\n }\n case 347 /* JSDocTypedefTag */:\n return getNameOfJSDocTypedef(declaration);\n case 341 /* JSDocEnumTag */:\n return nameForNamelessJSDocTypedef(declaration);\n case 278 /* ExportAssignment */: {\n const { expression } = declaration;\n return isIdentifier(expression) ? expression : void 0;\n }\n case 213 /* ElementAccessExpression */:\n const expr = declaration;\n if (isBindableStaticElementAccessExpression(expr)) {\n return expr.argumentExpression;\n }\n }\n return declaration.name;\n}\nfunction getNameOfDeclaration(declaration) {\n if (declaration === void 0) return void 0;\n return getNonAssignedNameOfDeclaration(declaration) || (isFunctionExpression(declaration) || isArrowFunction(declaration) || isClassExpression(declaration) ? getAssignedName(declaration) : void 0);\n}\nfunction getAssignedName(node) {\n if (!node.parent) {\n return void 0;\n } else if (isPropertyAssignment(node.parent) || isBindingElement(node.parent)) {\n return node.parent.name;\n } else if (isBinaryExpression(node.parent) && node === node.parent.right) {\n if (isIdentifier(node.parent.left)) {\n return node.parent.left;\n } else if (isAccessExpression(node.parent.left)) {\n return getElementOrPropertyAccessArgumentExpressionOrName(node.parent.left);\n }\n } else if (isVariableDeclaration(node.parent) && isIdentifier(node.parent.name)) {\n return node.parent.name;\n }\n}\nfunction getDecorators(node) {\n if (hasDecorators(node)) {\n return filter(node.modifiers, isDecorator);\n }\n}\nfunction getModifiers(node) {\n if (hasSyntacticModifier(node, 98303 /* Modifier */)) {\n return filter(node.modifiers, isModifier);\n }\n}\nfunction getJSDocParameterTagsWorker(param, noCache) {\n if (param.name) {\n if (isIdentifier(param.name)) {\n const name = param.name.escapedText;\n return getJSDocTagsWorker(param.parent, noCache).filter((tag) => isJSDocParameterTag(tag) && isIdentifier(tag.name) && tag.name.escapedText === name);\n } else {\n const i = param.parent.parameters.indexOf(param);\n Debug.assert(i > -1, \"Parameters should always be in their parents' parameter list\");\n const paramTags = getJSDocTagsWorker(param.parent, noCache).filter(isJSDocParameterTag);\n if (i < paramTags.length) {\n return [paramTags[i]];\n }\n }\n }\n return emptyArray;\n}\nfunction getJSDocParameterTags(param) {\n return getJSDocParameterTagsWorker(\n param,\n /*noCache*/\n false\n );\n}\nfunction getJSDocParameterTagsNoCache(param) {\n return getJSDocParameterTagsWorker(\n param,\n /*noCache*/\n true\n );\n}\nfunction getJSDocTypeParameterTagsWorker(param, noCache) {\n const name = param.name.escapedText;\n return getJSDocTagsWorker(param.parent, noCache).filter((tag) => isJSDocTemplateTag(tag) && tag.typeParameters.some((tp) => tp.name.escapedText === name));\n}\nfunction getJSDocTypeParameterTags(param) {\n return getJSDocTypeParameterTagsWorker(\n param,\n /*noCache*/\n false\n );\n}\nfunction getJSDocTypeParameterTagsNoCache(param) {\n return getJSDocTypeParameterTagsWorker(\n param,\n /*noCache*/\n true\n );\n}\nfunction hasJSDocParameterTags(node) {\n return !!getFirstJSDocTag(node, isJSDocParameterTag);\n}\nfunction getJSDocAugmentsTag(node) {\n return getFirstJSDocTag(node, isJSDocAugmentsTag);\n}\nfunction getJSDocImplementsTags(node) {\n return getAllJSDocTags(node, isJSDocImplementsTag);\n}\nfunction getJSDocClassTag(node) {\n return getFirstJSDocTag(node, isJSDocClassTag);\n}\nfunction getJSDocPublicTag(node) {\n return getFirstJSDocTag(node, isJSDocPublicTag);\n}\nfunction getJSDocPublicTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocPublicTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocPrivateTag(node) {\n return getFirstJSDocTag(node, isJSDocPrivateTag);\n}\nfunction getJSDocPrivateTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocPrivateTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocProtectedTag(node) {\n return getFirstJSDocTag(node, isJSDocProtectedTag);\n}\nfunction getJSDocProtectedTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocProtectedTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocReadonlyTag(node) {\n return getFirstJSDocTag(node, isJSDocReadonlyTag);\n}\nfunction getJSDocReadonlyTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocReadonlyTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocOverrideTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocOverrideTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocDeprecatedTag(node) {\n return getFirstJSDocTag(node, isJSDocDeprecatedTag);\n}\nfunction getJSDocDeprecatedTagNoCache(node) {\n return getFirstJSDocTag(\n node,\n isJSDocDeprecatedTag,\n /*noCache*/\n true\n );\n}\nfunction getJSDocEnumTag(node) {\n return getFirstJSDocTag(node, isJSDocEnumTag);\n}\nfunction getJSDocThisTag(node) {\n return getFirstJSDocTag(node, isJSDocThisTag);\n}\nfunction getJSDocReturnTag(node) {\n return getFirstJSDocTag(node, isJSDocReturnTag);\n}\nfunction getJSDocTemplateTag(node) {\n return getFirstJSDocTag(node, isJSDocTemplateTag);\n}\nfunction getJSDocSatisfiesTag(node) {\n return getFirstJSDocTag(node, isJSDocSatisfiesTag);\n}\nfunction getJSDocTypeTag(node) {\n const tag = getFirstJSDocTag(node, isJSDocTypeTag);\n if (tag && tag.typeExpression && tag.typeExpression.type) {\n return tag;\n }\n return void 0;\n}\nfunction getJSDocType(node) {\n let tag = getFirstJSDocTag(node, isJSDocTypeTag);\n if (!tag && isParameter(node)) {\n tag = find(getJSDocParameterTags(node), (tag2) => !!tag2.typeExpression);\n }\n return tag && tag.typeExpression && tag.typeExpression.type;\n}\nfunction getJSDocReturnType(node) {\n const returnTag = getJSDocReturnTag(node);\n if (returnTag && returnTag.typeExpression) {\n return returnTag.typeExpression.type;\n }\n const typeTag = getJSDocTypeTag(node);\n if (typeTag && typeTag.typeExpression) {\n const type = typeTag.typeExpression.type;\n if (isTypeLiteralNode(type)) {\n const sig = find(type.members, isCallSignatureDeclaration);\n return sig && sig.type;\n }\n if (isFunctionTypeNode(type) || isJSDocFunctionType(type)) {\n return type.type;\n }\n }\n}\nfunction getJSDocTagsWorker(node, noCache) {\n var _a;\n if (!canHaveJSDoc(node)) return emptyArray;\n let tags = (_a = node.jsDoc) == null ? void 0 : _a.jsDocCache;\n if (tags === void 0 || noCache) {\n const comments = getJSDocCommentsAndTags(node, noCache);\n Debug.assert(comments.length < 2 || comments[0] !== comments[1]);\n tags = flatMap(comments, (j) => isJSDoc(j) ? j.tags : j);\n if (!noCache) {\n node.jsDoc ?? (node.jsDoc = []);\n node.jsDoc.jsDocCache = tags;\n }\n }\n return tags;\n}\nfunction getJSDocTags(node) {\n return getJSDocTagsWorker(\n node,\n /*noCache*/\n false\n );\n}\nfunction getFirstJSDocTag(node, predicate, noCache) {\n return find(getJSDocTagsWorker(node, noCache), predicate);\n}\nfunction getAllJSDocTags(node, predicate) {\n return getJSDocTags(node).filter(predicate);\n}\nfunction getAllJSDocTagsOfKind(node, kind) {\n return getJSDocTags(node).filter((doc) => doc.kind === kind);\n}\nfunction getTextOfJSDocComment(comment) {\n return typeof comment === \"string\" ? comment : comment == null ? void 0 : comment.map((c) => c.kind === 322 /* JSDocText */ ? c.text : formatJSDocLink(c)).join(\"\");\n}\nfunction formatJSDocLink(link) {\n const kind = link.kind === 325 /* JSDocLink */ ? \"link\" : link.kind === 326 /* JSDocLinkCode */ ? \"linkcode\" : \"linkplain\";\n const name = link.name ? entityNameToString(link.name) : \"\";\n const space = link.name && (link.text === \"\" || link.text.startsWith(\"://\")) ? \"\" : \" \";\n return `{@${kind} ${name}${space}${link.text}}`;\n}\nfunction getEffectiveTypeParameterDeclarations(node) {\n if (isJSDocSignature(node)) {\n if (isJSDocOverloadTag(node.parent)) {\n const jsDoc = getJSDocRoot(node.parent);\n if (jsDoc && length(jsDoc.tags)) {\n return flatMap(jsDoc.tags, (tag) => isJSDocTemplateTag(tag) ? tag.typeParameters : void 0);\n }\n }\n return emptyArray;\n }\n if (isJSDocTypeAlias(node)) {\n Debug.assert(node.parent.kind === 321 /* JSDoc */);\n return flatMap(node.parent.tags, (tag) => isJSDocTemplateTag(tag) ? tag.typeParameters : void 0);\n }\n if (node.typeParameters) {\n return node.typeParameters;\n }\n if (canHaveIllegalTypeParameters(node) && node.typeParameters) {\n return node.typeParameters;\n }\n if (isInJSFile(node)) {\n const decls = getJSDocTypeParameterDeclarations(node);\n if (decls.length) {\n return decls;\n }\n const typeTag = getJSDocType(node);\n if (typeTag && isFunctionTypeNode(typeTag) && typeTag.typeParameters) {\n return typeTag.typeParameters;\n }\n }\n return emptyArray;\n}\nfunction getEffectiveConstraintOfTypeParameter(node) {\n return node.constraint ? node.constraint : isJSDocTemplateTag(node.parent) && node === node.parent.typeParameters[0] ? node.parent.constraint : void 0;\n}\nfunction isMemberName(node) {\n return node.kind === 80 /* Identifier */ || node.kind === 81 /* PrivateIdentifier */;\n}\nfunction isGetOrSetAccessorDeclaration(node) {\n return node.kind === 179 /* SetAccessor */ || node.kind === 178 /* GetAccessor */;\n}\nfunction isPropertyAccessChain(node) {\n return isPropertyAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isElementAccessChain(node) {\n return isElementAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isCallChain(node) {\n return isCallExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isOptionalChain(node) {\n const kind = node.kind;\n return !!(node.flags & 64 /* OptionalChain */) && (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */ || kind === 214 /* CallExpression */ || kind === 236 /* NonNullExpression */);\n}\nfunction isOptionalChainRoot(node) {\n return isOptionalChain(node) && !isNonNullExpression(node) && !!node.questionDotToken;\n}\nfunction isExpressionOfOptionalChainRoot(node) {\n return isOptionalChainRoot(node.parent) && node.parent.expression === node;\n}\nfunction isOutermostOptionalChain(node) {\n return !isOptionalChain(node.parent) || isOptionalChainRoot(node.parent) || node !== node.parent.expression;\n}\nfunction isNullishCoalesce(node) {\n return node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 61 /* QuestionQuestionToken */;\n}\nfunction isConstTypeReference(node) {\n return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"const\" && !node.typeArguments;\n}\nfunction skipPartiallyEmittedExpressions(node) {\n return skipOuterExpressions(node, 8 /* PartiallyEmittedExpressions */);\n}\nfunction isNonNullChain(node) {\n return isNonNullExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isBreakOrContinueStatement(node) {\n return node.kind === 253 /* BreakStatement */ || node.kind === 252 /* ContinueStatement */;\n}\nfunction isNamedExportBindings(node) {\n return node.kind === 281 /* NamespaceExport */ || node.kind === 280 /* NamedExports */;\n}\nfunction isJSDocPropertyLikeTag(node) {\n return node.kind === 349 /* JSDocPropertyTag */ || node.kind === 342 /* JSDocParameterTag */;\n}\nfunction isNodeKind(kind) {\n return kind >= 167 /* FirstNode */;\n}\nfunction isTokenKind(kind) {\n return kind >= 0 /* FirstToken */ && kind <= 166 /* LastToken */;\n}\nfunction isToken(n) {\n return isTokenKind(n.kind);\n}\nfunction isNodeArray(array) {\n return hasProperty(array, \"pos\") && hasProperty(array, \"end\");\n}\nfunction isLiteralKind(kind) {\n return 9 /* FirstLiteralToken */ <= kind && kind <= 15 /* LastLiteralToken */;\n}\nfunction isLiteralExpression(node) {\n return isLiteralKind(node.kind);\n}\nfunction isLiteralExpressionOfObject(node) {\n switch (node.kind) {\n case 211 /* ObjectLiteralExpression */:\n case 210 /* ArrayLiteralExpression */:\n case 14 /* RegularExpressionLiteral */:\n case 219 /* FunctionExpression */:\n case 232 /* ClassExpression */:\n return true;\n }\n return false;\n}\nfunction isTemplateLiteralKind(kind) {\n return 15 /* FirstTemplateToken */ <= kind && kind <= 18 /* LastTemplateToken */;\n}\nfunction isTemplateLiteralToken(node) {\n return isTemplateLiteralKind(node.kind);\n}\nfunction isTemplateMiddleOrTemplateTail(node) {\n const kind = node.kind;\n return kind === 17 /* TemplateMiddle */ || kind === 18 /* TemplateTail */;\n}\nfunction isImportOrExportSpecifier(node) {\n return isImportSpecifier(node) || isExportSpecifier(node);\n}\nfunction isTypeOnlyImportDeclaration(node) {\n switch (node.kind) {\n case 277 /* ImportSpecifier */:\n return node.isTypeOnly || node.parent.parent.phaseModifier === 156 /* TypeKeyword */;\n case 275 /* NamespaceImport */:\n return node.parent.phaseModifier === 156 /* TypeKeyword */;\n case 274 /* ImportClause */:\n return node.phaseModifier === 156 /* TypeKeyword */;\n case 272 /* ImportEqualsDeclaration */:\n return node.isTypeOnly;\n }\n return false;\n}\nfunction isTypeOnlyExportDeclaration(node) {\n switch (node.kind) {\n case 282 /* ExportSpecifier */:\n return node.isTypeOnly || node.parent.parent.isTypeOnly;\n case 279 /* ExportDeclaration */:\n return node.isTypeOnly && !!node.moduleSpecifier && !node.exportClause;\n case 281 /* NamespaceExport */:\n return node.parent.isTypeOnly;\n }\n return false;\n}\nfunction isTypeOnlyImportOrExportDeclaration(node) {\n return isTypeOnlyImportDeclaration(node) || isTypeOnlyExportDeclaration(node);\n}\nfunction isPartOfTypeOnlyImportOrExportDeclaration(node) {\n return findAncestor(node, isTypeOnlyImportOrExportDeclaration) !== void 0;\n}\nfunction isStringTextContainingNode(node) {\n return node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind);\n}\nfunction isImportAttributeName(node) {\n return isStringLiteral(node) || isIdentifier(node);\n}\nfunction isGeneratedIdentifier(node) {\n var _a;\n return isIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0;\n}\nfunction isGeneratedPrivateIdentifier(node) {\n var _a;\n return isPrivateIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0;\n}\nfunction isFileLevelReservedGeneratedIdentifier(node) {\n const flags = node.emitNode.autoGenerate.flags;\n return !!(flags & 32 /* FileLevel */) && !!(flags & 16 /* Optimistic */) && !!(flags & 8 /* ReservedInNestedScopes */);\n}\nfunction isPrivateIdentifierClassElementDeclaration(node) {\n return (isPropertyDeclaration(node) || isMethodOrAccessor(node)) && isPrivateIdentifier(node.name);\n}\nfunction isPrivateIdentifierPropertyAccessExpression(node) {\n return isPropertyAccessExpression(node) && isPrivateIdentifier(node.name);\n}\nfunction isModifierKind(token) {\n switch (token) {\n case 128 /* AbstractKeyword */:\n case 129 /* AccessorKeyword */:\n case 134 /* AsyncKeyword */:\n case 87 /* ConstKeyword */:\n case 138 /* DeclareKeyword */:\n case 90 /* DefaultKeyword */:\n case 95 /* ExportKeyword */:\n case 103 /* InKeyword */:\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 126 /* StaticKeyword */:\n case 147 /* OutKeyword */:\n case 164 /* OverrideKeyword */:\n return true;\n }\n return false;\n}\nfunction isParameterPropertyModifier(kind) {\n return !!(modifierToFlag(kind) & 31 /* ParameterPropertyModifier */);\n}\nfunction isClassMemberModifier(idToken) {\n return isParameterPropertyModifier(idToken) || idToken === 126 /* StaticKeyword */ || idToken === 164 /* OverrideKeyword */ || idToken === 129 /* AccessorKeyword */;\n}\nfunction isModifier(node) {\n return isModifierKind(node.kind);\n}\nfunction isEntityName(node) {\n const kind = node.kind;\n return kind === 167 /* QualifiedName */ || kind === 80 /* Identifier */;\n}\nfunction isPropertyName(node) {\n const kind = node.kind;\n return kind === 80 /* Identifier */ || kind === 81 /* PrivateIdentifier */ || kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */ || kind === 168 /* ComputedPropertyName */;\n}\nfunction isBindingName(node) {\n const kind = node.kind;\n return kind === 80 /* Identifier */ || kind === 207 /* ObjectBindingPattern */ || kind === 208 /* ArrayBindingPattern */;\n}\nfunction isFunctionLike(node) {\n return !!node && isFunctionLikeKind(node.kind);\n}\nfunction isFunctionLikeOrClassStaticBlockDeclaration(node) {\n return !!node && (isFunctionLikeKind(node.kind) || isClassStaticBlockDeclaration(node));\n}\nfunction isFunctionLikeDeclaration(node) {\n return node && isFunctionLikeDeclarationKind(node.kind);\n}\nfunction isBooleanLiteral(node) {\n return node.kind === 112 /* TrueKeyword */ || node.kind === 97 /* FalseKeyword */;\n}\nfunction isFunctionLikeDeclarationKind(kind) {\n switch (kind) {\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return true;\n default:\n return false;\n }\n}\nfunction isFunctionLikeKind(kind) {\n switch (kind) {\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 324 /* JSDocSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n case 185 /* FunctionType */:\n case 318 /* JSDocFunctionType */:\n case 186 /* ConstructorType */:\n return true;\n default:\n return isFunctionLikeDeclarationKind(kind);\n }\n}\nfunction isFunctionOrModuleBlock(node) {\n return isSourceFile(node) || isModuleBlock(node) || isBlock(node) && isFunctionLike(node.parent);\n}\nfunction isClassElement(node) {\n const kind = node.kind;\n return kind === 177 /* Constructor */ || kind === 173 /* PropertyDeclaration */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 182 /* IndexSignature */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 241 /* SemicolonClassElement */;\n}\nfunction isClassLike(node) {\n return node && (node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */);\n}\nfunction isAccessor(node) {\n return node && (node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */);\n}\nfunction isAutoAccessorPropertyDeclaration(node) {\n return isPropertyDeclaration(node) && hasAccessorModifier(node);\n}\nfunction isClassInstanceProperty(node) {\n if (isInJSFile(node) && isExpandoPropertyDeclaration(node)) {\n return (!isBindableStaticAccessExpression(node) || !isPrototypeAccess(node.expression)) && !isBindableStaticNameExpression(\n node,\n /*excludeThisKeyword*/\n true\n );\n }\n return node.parent && isClassLike(node.parent) && isPropertyDeclaration(node) && !hasAccessorModifier(node);\n}\nfunction isMethodOrAccessor(node) {\n switch (node.kind) {\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return true;\n default:\n return false;\n }\n}\nfunction isModifierLike(node) {\n return isModifier(node) || isDecorator(node);\n}\nfunction isTypeElement(node) {\n const kind = node.kind;\n return kind === 181 /* ConstructSignature */ || kind === 180 /* CallSignature */ || kind === 172 /* PropertySignature */ || kind === 174 /* MethodSignature */ || kind === 182 /* IndexSignature */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 355 /* NotEmittedTypeElement */;\n}\nfunction isClassOrTypeElement(node) {\n return isTypeElement(node) || isClassElement(node);\n}\nfunction isObjectLiteralElementLike(node) {\n const kind = node.kind;\n return kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 306 /* SpreadAssignment */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction isTypeNode(node) {\n return isTypeNodeKind(node.kind);\n}\nfunction isFunctionOrConstructorTypeNode(node) {\n switch (node.kind) {\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n return true;\n }\n return false;\n}\nfunction isBindingPattern(node) {\n if (node) {\n const kind = node.kind;\n return kind === 208 /* ArrayBindingPattern */ || kind === 207 /* ObjectBindingPattern */;\n }\n return false;\n}\nfunction isAssignmentPattern(node) {\n const kind = node.kind;\n return kind === 210 /* ArrayLiteralExpression */ || kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isArrayBindingElement(node) {\n const kind = node.kind;\n return kind === 209 /* BindingElement */ || kind === 233 /* OmittedExpression */;\n}\nfunction isDeclarationBindingElement(bindingElement) {\n switch (bindingElement.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n return true;\n }\n return false;\n}\nfunction isBindingOrAssignmentElement(node) {\n return isVariableDeclaration(node) || isParameter(node) || isObjectBindingOrAssignmentElement(node) || isArrayBindingOrAssignmentElement(node);\n}\nfunction isBindingOrAssignmentPattern(node) {\n return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node);\n}\nfunction isObjectBindingOrAssignmentPattern(node) {\n switch (node.kind) {\n case 207 /* ObjectBindingPattern */:\n case 211 /* ObjectLiteralExpression */:\n return true;\n }\n return false;\n}\nfunction isObjectBindingOrAssignmentElement(node) {\n switch (node.kind) {\n case 209 /* BindingElement */:\n case 304 /* PropertyAssignment */:\n // AssignmentProperty\n case 305 /* ShorthandPropertyAssignment */:\n // AssignmentProperty\n case 306 /* SpreadAssignment */:\n return true;\n }\n return false;\n}\nfunction isArrayBindingOrAssignmentPattern(node) {\n switch (node.kind) {\n case 208 /* ArrayBindingPattern */:\n case 210 /* ArrayLiteralExpression */:\n return true;\n }\n return false;\n}\nfunction isArrayBindingOrAssignmentElement(node) {\n switch (node.kind) {\n case 209 /* BindingElement */:\n case 233 /* OmittedExpression */:\n // Elision\n case 231 /* SpreadElement */:\n // AssignmentRestElement\n case 210 /* ArrayLiteralExpression */:\n // ArrayAssignmentPattern\n case 211 /* ObjectLiteralExpression */:\n // ObjectAssignmentPattern\n case 80 /* Identifier */:\n // DestructuringAssignmentTarget\n case 212 /* PropertyAccessExpression */:\n // DestructuringAssignmentTarget\n case 213 /* ElementAccessExpression */:\n return true;\n }\n return isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n );\n}\nfunction isPropertyAccessOrQualifiedNameOrImportTypeNode(node) {\n const kind = node.kind;\n return kind === 212 /* PropertyAccessExpression */ || kind === 167 /* QualifiedName */ || kind === 206 /* ImportType */;\n}\nfunction isPropertyAccessOrQualifiedName(node) {\n const kind = node.kind;\n return kind === 212 /* PropertyAccessExpression */ || kind === 167 /* QualifiedName */;\n}\nfunction isCallLikeOrFunctionLikeExpression(node) {\n return isCallLikeExpression(node) || isFunctionExpressionOrArrowFunction(node);\n}\nfunction isCallLikeExpression(node) {\n switch (node.kind) {\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 216 /* TaggedTemplateExpression */:\n case 171 /* Decorator */:\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n case 290 /* JsxOpeningFragment */:\n return true;\n case 227 /* BinaryExpression */:\n return node.operatorToken.kind === 104 /* InstanceOfKeyword */;\n default:\n return false;\n }\n}\nfunction isCallOrNewExpression(node) {\n return node.kind === 214 /* CallExpression */ || node.kind === 215 /* NewExpression */;\n}\nfunction isTemplateLiteral(node) {\n const kind = node.kind;\n return kind === 229 /* TemplateExpression */ || kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isLeftHandSideExpression(node) {\n return isLeftHandSideExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isLeftHandSideExpressionKind(kind) {\n switch (kind) {\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n case 215 /* NewExpression */:\n case 214 /* CallExpression */:\n case 285 /* JsxElement */:\n case 286 /* JsxSelfClosingElement */:\n case 289 /* JsxFragment */:\n case 216 /* TaggedTemplateExpression */:\n case 210 /* ArrayLiteralExpression */:\n case 218 /* ParenthesizedExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n // technically this is only an Expression if it's in a `#field in expr` BinaryExpression\n case 14 /* RegularExpressionLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 229 /* TemplateExpression */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n case 110 /* ThisKeyword */:\n case 112 /* TrueKeyword */:\n case 108 /* SuperKeyword */:\n case 236 /* NonNullExpression */:\n case 234 /* ExpressionWithTypeArguments */:\n case 237 /* MetaProperty */:\n case 102 /* ImportKeyword */:\n // technically this is only an Expression if it's in a CallExpression\n case 283 /* MissingDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction isUnaryExpression(node) {\n return isUnaryExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isUnaryExpressionKind(kind) {\n switch (kind) {\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n case 221 /* DeleteExpression */:\n case 222 /* TypeOfExpression */:\n case 223 /* VoidExpression */:\n case 224 /* AwaitExpression */:\n case 217 /* TypeAssertionExpression */:\n return true;\n default:\n return isLeftHandSideExpressionKind(kind);\n }\n}\nfunction isUnaryExpressionWithWrite(expr) {\n switch (expr.kind) {\n case 226 /* PostfixUnaryExpression */:\n return true;\n case 225 /* PrefixUnaryExpression */:\n return expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */;\n default:\n return false;\n }\n}\nfunction isLiteralTypeLiteral(node) {\n switch (node.kind) {\n case 106 /* NullKeyword */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 225 /* PrefixUnaryExpression */:\n return true;\n default:\n return isLiteralExpression(node);\n }\n}\nfunction isExpression(node) {\n return isExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isExpressionKind(kind) {\n switch (kind) {\n case 228 /* ConditionalExpression */:\n case 230 /* YieldExpression */:\n case 220 /* ArrowFunction */:\n case 227 /* BinaryExpression */:\n case 231 /* SpreadElement */:\n case 235 /* AsExpression */:\n case 233 /* OmittedExpression */:\n case 357 /* CommaListExpression */:\n case 356 /* PartiallyEmittedExpression */:\n case 239 /* SatisfiesExpression */:\n return true;\n default:\n return isUnaryExpressionKind(kind);\n }\n}\nfunction isAssertionExpression(node) {\n const kind = node.kind;\n return kind === 217 /* TypeAssertionExpression */ || kind === 235 /* AsExpression */;\n}\nfunction isIterationStatement(node, lookInLabeledStatements) {\n switch (node.kind) {\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n return true;\n case 257 /* LabeledStatement */:\n return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);\n }\n return false;\n}\nfunction isScopeMarker(node) {\n return isExportAssignment(node) || isExportDeclaration(node);\n}\nfunction hasScopeMarker(statements) {\n return some(statements, isScopeMarker);\n}\nfunction needsScopeMarker(result) {\n return !isAnyImportOrReExport(result) && !isExportAssignment(result) && !hasSyntacticModifier(result, 32 /* Export */) && !isAmbientModule(result);\n}\nfunction isExternalModuleIndicator(result) {\n return isAnyImportOrReExport(result) || isExportAssignment(result) || hasSyntacticModifier(result, 32 /* Export */);\n}\nfunction isForInOrOfStatement(node) {\n return node.kind === 250 /* ForInStatement */ || node.kind === 251 /* ForOfStatement */;\n}\nfunction isConciseBody(node) {\n return isBlock(node) || isExpression(node);\n}\nfunction isFunctionBody(node) {\n return isBlock(node);\n}\nfunction isForInitializer(node) {\n return isVariableDeclarationList(node) || isExpression(node);\n}\nfunction isModuleBody(node) {\n const kind = node.kind;\n return kind === 269 /* ModuleBlock */ || kind === 268 /* ModuleDeclaration */ || kind === 80 /* Identifier */;\n}\nfunction isNamespaceBody(node) {\n const kind = node.kind;\n return kind === 269 /* ModuleBlock */ || kind === 268 /* ModuleDeclaration */;\n}\nfunction isJSDocNamespaceBody(node) {\n const kind = node.kind;\n return kind === 80 /* Identifier */ || kind === 268 /* ModuleDeclaration */;\n}\nfunction isNamedImportBindings(node) {\n const kind = node.kind;\n return kind === 276 /* NamedImports */ || kind === 275 /* NamespaceImport */;\n}\nfunction isModuleOrEnumDeclaration(node) {\n return node.kind === 268 /* ModuleDeclaration */ || node.kind === 267 /* EnumDeclaration */;\n}\nfunction canHaveSymbol(node) {\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n case 227 /* BinaryExpression */:\n case 209 /* BindingElement */:\n case 214 /* CallExpression */:\n case 180 /* CallSignature */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 177 /* Constructor */:\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n case 213 /* ElementAccessExpression */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 278 /* ExportAssignment */:\n case 279 /* ExportDeclaration */:\n case 282 /* ExportSpecifier */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 185 /* FunctionType */:\n case 178 /* GetAccessor */:\n case 80 /* Identifier */:\n case 274 /* ImportClause */:\n case 272 /* ImportEqualsDeclaration */:\n case 277 /* ImportSpecifier */:\n case 182 /* IndexSignature */:\n case 265 /* InterfaceDeclaration */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n case 318 /* JSDocFunctionType */:\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n case 324 /* JSDocSignature */:\n case 347 /* JSDocTypedefTag */:\n case 323 /* JSDocTypeLiteral */:\n case 292 /* JsxAttribute */:\n case 293 /* JsxAttributes */:\n case 294 /* JsxSpreadAttribute */:\n case 201 /* MappedType */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 268 /* ModuleDeclaration */:\n case 203 /* NamedTupleMember */:\n case 281 /* NamespaceExport */:\n case 271 /* NamespaceExportDeclaration */:\n case 275 /* NamespaceImport */:\n case 215 /* NewExpression */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n case 211 /* ObjectLiteralExpression */:\n case 170 /* Parameter */:\n case 212 /* PropertyAccessExpression */:\n case 304 /* PropertyAssignment */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 179 /* SetAccessor */:\n case 305 /* ShorthandPropertyAssignment */:\n case 308 /* SourceFile */:\n case 306 /* SpreadAssignment */:\n case 11 /* StringLiteral */:\n case 266 /* TypeAliasDeclaration */:\n case 188 /* TypeLiteral */:\n case 169 /* TypeParameter */:\n case 261 /* VariableDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction canHaveLocals(node) {\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n case 242 /* Block */:\n case 180 /* CallSignature */:\n case 270 /* CaseBlock */:\n case 300 /* CatchClause */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 195 /* ConditionalType */:\n case 177 /* Constructor */:\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 185 /* FunctionType */:\n case 178 /* GetAccessor */:\n case 182 /* IndexSignature */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n case 318 /* JSDocFunctionType */:\n case 324 /* JSDocSignature */:\n case 347 /* JSDocTypedefTag */:\n case 201 /* MappedType */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 268 /* ModuleDeclaration */:\n case 179 /* SetAccessor */:\n case 308 /* SourceFile */:\n case 266 /* TypeAliasDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction isDeclarationKind(kind) {\n return kind === 220 /* ArrowFunction */ || kind === 209 /* BindingElement */ || kind === 264 /* ClassDeclaration */ || kind === 232 /* ClassExpression */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 177 /* Constructor */ || kind === 267 /* EnumDeclaration */ || kind === 307 /* EnumMember */ || kind === 282 /* ExportSpecifier */ || kind === 263 /* FunctionDeclaration */ || kind === 219 /* FunctionExpression */ || kind === 178 /* GetAccessor */ || kind === 274 /* ImportClause */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 277 /* ImportSpecifier */ || kind === 265 /* InterfaceDeclaration */ || kind === 292 /* JsxAttribute */ || kind === 175 /* MethodDeclaration */ || kind === 174 /* MethodSignature */ || kind === 268 /* ModuleDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 275 /* NamespaceImport */ || kind === 281 /* NamespaceExport */ || kind === 170 /* Parameter */ || kind === 304 /* PropertyAssignment */ || kind === 173 /* PropertyDeclaration */ || kind === 172 /* PropertySignature */ || kind === 179 /* SetAccessor */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 266 /* TypeAliasDeclaration */ || kind === 169 /* TypeParameter */ || kind === 261 /* VariableDeclaration */ || kind === 347 /* JSDocTypedefTag */ || kind === 339 /* JSDocCallbackTag */ || kind === 349 /* JSDocPropertyTag */ || kind === 203 /* NamedTupleMember */;\n}\nfunction isDeclarationStatementKind(kind) {\n return kind === 263 /* FunctionDeclaration */ || kind === 283 /* MissingDeclaration */ || kind === 264 /* ClassDeclaration */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 278 /* ExportAssignment */ || kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isStatementKindButNotDeclarationKind(kind) {\n return kind === 253 /* BreakStatement */ || kind === 252 /* ContinueStatement */ || kind === 260 /* DebuggerStatement */ || kind === 247 /* DoStatement */ || kind === 245 /* ExpressionStatement */ || kind === 243 /* EmptyStatement */ || kind === 250 /* ForInStatement */ || kind === 251 /* ForOfStatement */ || kind === 249 /* ForStatement */ || kind === 246 /* IfStatement */ || kind === 257 /* LabeledStatement */ || kind === 254 /* ReturnStatement */ || kind === 256 /* SwitchStatement */ || kind === 258 /* ThrowStatement */ || kind === 259 /* TryStatement */ || kind === 244 /* VariableStatement */ || kind === 248 /* WhileStatement */ || kind === 255 /* WithStatement */ || kind === 354 /* NotEmittedStatement */;\n}\nfunction isDeclaration(node) {\n if (node.kind === 169 /* TypeParameter */) {\n return node.parent && node.parent.kind !== 346 /* JSDocTemplateTag */ || isInJSFile(node);\n }\n return isDeclarationKind(node.kind);\n}\nfunction isDeclarationStatement(node) {\n return isDeclarationStatementKind(node.kind);\n}\nfunction isStatementButNotDeclaration(node) {\n return isStatementKindButNotDeclarationKind(node.kind);\n}\nfunction isStatement(node) {\n const kind = node.kind;\n return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || isBlockStatement(node);\n}\nfunction isBlockStatement(node) {\n if (node.kind !== 242 /* Block */) return false;\n if (node.parent !== void 0) {\n if (node.parent.kind === 259 /* TryStatement */ || node.parent.kind === 300 /* CatchClause */) {\n return false;\n }\n }\n return !isFunctionBlock(node);\n}\nfunction isStatementOrBlock(node) {\n const kind = node.kind;\n return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || kind === 242 /* Block */;\n}\nfunction isModuleReference(node) {\n const kind = node.kind;\n return kind === 284 /* ExternalModuleReference */ || kind === 167 /* QualifiedName */ || kind === 80 /* Identifier */;\n}\nfunction isJsxTagNameExpression(node) {\n const kind = node.kind;\n return kind === 110 /* ThisKeyword */ || kind === 80 /* Identifier */ || kind === 212 /* PropertyAccessExpression */ || kind === 296 /* JsxNamespacedName */;\n}\nfunction isJsxChild(node) {\n const kind = node.kind;\n return kind === 285 /* JsxElement */ || kind === 295 /* JsxExpression */ || kind === 286 /* JsxSelfClosingElement */ || kind === 12 /* JsxText */ || kind === 289 /* JsxFragment */;\n}\nfunction isJsxAttributeLike(node) {\n const kind = node.kind;\n return kind === 292 /* JsxAttribute */ || kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isStringLiteralOrJsxExpression(node) {\n const kind = node.kind;\n return kind === 11 /* StringLiteral */ || kind === 295 /* JsxExpression */;\n}\nfunction isJsxOpeningLikeElement(node) {\n const kind = node.kind;\n return kind === 287 /* JsxOpeningElement */ || kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isJsxCallLike(node) {\n const kind = node.kind;\n return kind === 287 /* JsxOpeningElement */ || kind === 286 /* JsxSelfClosingElement */ || kind === 290 /* JsxOpeningFragment */;\n}\nfunction isCaseOrDefaultClause(node) {\n const kind = node.kind;\n return kind === 297 /* CaseClause */ || kind === 298 /* DefaultClause */;\n}\nfunction isJSDocNode(node) {\n return node.kind >= 310 /* FirstJSDocNode */ && node.kind <= 352 /* LastJSDocNode */;\n}\nfunction isJSDocCommentContainingNode(node) {\n return node.kind === 321 /* JSDoc */ || node.kind === 320 /* JSDocNamepathType */ || node.kind === 322 /* JSDocText */ || isJSDocLinkLike(node) || isJSDocTag(node) || isJSDocTypeLiteral(node) || isJSDocSignature(node);\n}\nfunction isJSDocTag(node) {\n return node.kind >= 328 /* FirstJSDocTagNode */ && node.kind <= 352 /* LastJSDocTagNode */;\n}\nfunction isSetAccessor(node) {\n return node.kind === 179 /* SetAccessor */;\n}\nfunction isGetAccessor(node) {\n return node.kind === 178 /* GetAccessor */;\n}\nfunction hasJSDocNodes(node) {\n if (!canHaveJSDoc(node)) return false;\n const { jsDoc } = node;\n return !!jsDoc && jsDoc.length > 0;\n}\nfunction hasType(node) {\n return !!node.type;\n}\nfunction hasInitializer(node) {\n return !!node.initializer;\n}\nfunction hasOnlyExpressionInitializer(node) {\n switch (node.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 173 /* PropertyDeclaration */:\n case 304 /* PropertyAssignment */:\n case 307 /* EnumMember */:\n return true;\n default:\n return false;\n }\n}\nfunction isObjectLiteralElement(node) {\n return node.kind === 292 /* JsxAttribute */ || node.kind === 294 /* JsxSpreadAttribute */ || isObjectLiteralElementLike(node);\n}\nfunction isTypeReferenceType(node) {\n return node.kind === 184 /* TypeReference */ || node.kind === 234 /* ExpressionWithTypeArguments */;\n}\nvar MAX_SMI_X86 = 1073741823;\nfunction guessIndentation(lines) {\n let indentation = MAX_SMI_X86;\n for (const line of lines) {\n if (!line.length) {\n continue;\n }\n let i = 0;\n for (; i < line.length && i < indentation; i++) {\n if (!isWhiteSpaceLike(line.charCodeAt(i))) {\n break;\n }\n }\n if (i < indentation) {\n indentation = i;\n }\n if (indentation === 0) {\n return 0;\n }\n }\n return indentation === MAX_SMI_X86 ? void 0 : indentation;\n}\nfunction isStringLiteralLike(node) {\n return node.kind === 11 /* StringLiteral */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isJSDocLinkLike(node) {\n return node.kind === 325 /* JSDocLink */ || node.kind === 326 /* JSDocLinkCode */ || node.kind === 327 /* JSDocLinkPlain */;\n}\nfunction hasRestParameter(s) {\n const last2 = lastOrUndefined(s.parameters);\n return !!last2 && isRestParameter(last2);\n}\nfunction isRestParameter(node) {\n const type = isJSDocParameterTag(node) ? node.typeExpression && node.typeExpression.type : node.type;\n return node.dotDotDotToken !== void 0 || !!type && type.kind === 319 /* JSDocVariadicType */;\n}\nfunction hasInternalAnnotation(range, sourceFile) {\n const comment = sourceFile.text.substring(range.pos, range.end);\n return comment.includes(\"@internal\");\n}\nfunction isInternalDeclaration(node, sourceFile) {\n sourceFile ?? (sourceFile = getSourceFileOfNode(node));\n const parseTreeNode = getParseTreeNode(node);\n if (parseTreeNode && parseTreeNode.kind === 170 /* Parameter */) {\n const paramIdx = parseTreeNode.parent.parameters.indexOf(parseTreeNode);\n const previousSibling = paramIdx > 0 ? parseTreeNode.parent.parameters[paramIdx - 1] : void 0;\n const text = sourceFile.text;\n const commentRanges = previousSibling ? concatenate(\n // to handle\n // ... parameters, /** @internal */\n // public param: string\n getTrailingCommentRanges(text, skipTrivia(\n text,\n previousSibling.end + 1,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n )),\n getLeadingCommentRanges(text, node.pos)\n ) : getTrailingCommentRanges(text, skipTrivia(\n text,\n node.pos,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n ));\n return some(commentRanges) && hasInternalAnnotation(last(commentRanges), sourceFile);\n }\n const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, sourceFile);\n return !!forEach(leadingCommentRanges, (range) => {\n return hasInternalAnnotation(range, sourceFile);\n });\n}\n\n// src/compiler/utilities.ts\nvar resolvingEmptyArray = [];\nvar externalHelpersModuleNameText = \"tslib\";\nvar defaultMaximumTruncationLength = 160;\nvar noTruncationMaximumTruncationLength = 1e6;\nvar defaultHoverMaximumTruncationLength = 500;\nfunction getDeclarationOfKind(symbol, kind) {\n const declarations = symbol.declarations;\n if (declarations) {\n for (const declaration of declarations) {\n if (declaration.kind === kind) {\n return declaration;\n }\n }\n }\n return void 0;\n}\nfunction getDeclarationsOfKind(symbol, kind) {\n return filter(symbol.declarations || emptyArray, (d) => d.kind === kind);\n}\nfunction createSymbolTable(symbols) {\n const result = /* @__PURE__ */ new Map();\n if (symbols) {\n for (const symbol of symbols) {\n result.set(symbol.escapedName, symbol);\n }\n }\n return result;\n}\nfunction isTransientSymbol(symbol) {\n return (symbol.flags & 33554432 /* Transient */) !== 0;\n}\nfunction isExternalModuleSymbol(moduleSymbol) {\n return !!(moduleSymbol.flags & 1536 /* Module */) && moduleSymbol.escapedName.charCodeAt(0) === 34 /* doubleQuote */;\n}\nvar stringWriter = createSingleLineStringWriter();\nfunction createSingleLineStringWriter() {\n var str = \"\";\n const writeText = (text) => str += text;\n return {\n getText: () => str,\n write: writeText,\n rawWrite: writeText,\n writeKeyword: writeText,\n writeOperator: writeText,\n writePunctuation: writeText,\n writeSpace: writeText,\n writeStringLiteral: writeText,\n writeLiteral: writeText,\n writeParameter: writeText,\n writeProperty: writeText,\n writeSymbol: (s, _) => writeText(s),\n writeTrailingSemicolon: writeText,\n writeComment: writeText,\n getTextPos: () => str.length,\n getLine: () => 0,\n getColumn: () => 0,\n getIndent: () => 0,\n isAtStartOfLine: () => false,\n hasTrailingComment: () => false,\n hasTrailingWhitespace: () => !!str.length && isWhiteSpaceLike(str.charCodeAt(str.length - 1)),\n // Completely ignore indentation for string writers. And map newlines to\n // a single space.\n writeLine: () => str += \" \",\n increaseIndent: noop,\n decreaseIndent: noop,\n clear: () => str = \"\"\n };\n}\nfunction changesAffectModuleResolution(oldOptions, newOptions) {\n return oldOptions.configFilePath !== newOptions.configFilePath || optionsHaveModuleResolutionChanges(oldOptions, newOptions);\n}\nfunction optionsHaveModuleResolutionChanges(oldOptions, newOptions) {\n return optionsHaveChanges(oldOptions, newOptions, moduleResolutionOptionDeclarations);\n}\nfunction changesAffectingProgramStructure(oldOptions, newOptions) {\n return optionsHaveChanges(oldOptions, newOptions, optionsAffectingProgramStructure);\n}\nfunction optionsHaveChanges(oldOptions, newOptions, optionDeclarations2) {\n return oldOptions !== newOptions && optionDeclarations2.some((o) => !isJsonEqual(getCompilerOptionValue(oldOptions, o), getCompilerOptionValue(newOptions, o)));\n}\nfunction forEachAncestor(node, callback) {\n while (true) {\n const res = callback(node);\n if (res === \"quit\") return void 0;\n if (res !== void 0) return res;\n if (isSourceFile(node)) return void 0;\n node = node.parent;\n }\n}\nfunction forEachEntry(map2, callback) {\n const iterator = map2.entries();\n for (const [key, value] of iterator) {\n const result = callback(value, key);\n if (result) {\n return result;\n }\n }\n return void 0;\n}\nfunction forEachKey(map2, callback) {\n const iterator = map2.keys();\n for (const key of iterator) {\n const result = callback(key);\n if (result) {\n return result;\n }\n }\n return void 0;\n}\nfunction copyEntries(source, target) {\n source.forEach((value, key) => {\n target.set(key, value);\n });\n}\nfunction usingSingleLineStringWriter(action) {\n const oldString = stringWriter.getText();\n try {\n action(stringWriter);\n return stringWriter.getText();\n } finally {\n stringWriter.clear();\n stringWriter.writeKeyword(oldString);\n }\n}\nfunction getFullWidth(node) {\n return node.end - node.pos;\n}\nfunction projectReferenceIsEqualTo(oldRef, newRef) {\n return oldRef.path === newRef.path && !oldRef.prepend === !newRef.prepend && !oldRef.circular === !newRef.circular;\n}\nfunction moduleResolutionIsEqualTo(oldResolution, newResolution) {\n return oldResolution === newResolution || oldResolution.resolvedModule === newResolution.resolvedModule || !!oldResolution.resolvedModule && !!newResolution.resolvedModule && oldResolution.resolvedModule.isExternalLibraryImport === newResolution.resolvedModule.isExternalLibraryImport && oldResolution.resolvedModule.extension === newResolution.resolvedModule.extension && oldResolution.resolvedModule.resolvedFileName === newResolution.resolvedModule.resolvedFileName && oldResolution.resolvedModule.originalPath === newResolution.resolvedModule.originalPath && packageIdIsEqual(oldResolution.resolvedModule.packageId, newResolution.resolvedModule.packageId) && oldResolution.alternateResult === newResolution.alternateResult;\n}\nfunction getResolvedModuleFromResolution(resolution) {\n return resolution.resolvedModule;\n}\nfunction getResolvedTypeReferenceDirectiveFromResolution(resolution) {\n return resolution.resolvedTypeReferenceDirective;\n}\nfunction createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageName) {\n var _a;\n const alternateResult = (_a = host.getResolvedModule(sourceFile, moduleReference, mode)) == null ? void 0 : _a.alternateResult;\n const alternateResultMessage = alternateResult && (getEmitModuleResolutionKind(host.getCompilerOptions()) === 2 /* Node10 */ ? [Diagnostics.There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler, [alternateResult]] : [\n Diagnostics.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings,\n [alternateResult, alternateResult.includes(nodeModulesPathPart + \"@types/\") ? `@types/${mangleScopedPackageName(packageName)}` : packageName]\n ]);\n const result = alternateResultMessage ? chainDiagnosticMessages(\n /*details*/\n void 0,\n alternateResultMessage[0],\n ...alternateResultMessage[1]\n ) : host.typesPackageExists(packageName) ? chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,\n packageName,\n mangleScopedPackageName(packageName)\n ) : host.packageBundlesTypes(packageName) ? chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,\n packageName,\n moduleReference\n ) : chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,\n moduleReference,\n mangleScopedPackageName(packageName)\n );\n if (result) result.repopulateInfo = () => ({ moduleReference, mode, packageName: packageName === moduleReference ? void 0 : packageName });\n return result;\n}\nfunction createModeMismatchDetails(currentSourceFile) {\n const ext = tryGetExtensionFromPath2(currentSourceFile.fileName);\n const scope = currentSourceFile.packageJsonScope;\n const targetExt = ext === \".ts\" /* Ts */ ? \".mts\" /* Mts */ : ext === \".js\" /* Js */ ? \".mjs\" /* Mjs */ : void 0;\n const result = scope && !scope.contents.packageJsonContent.type ? targetExt ? chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1,\n targetExt,\n combinePaths(scope.packageDirectory, \"package.json\")\n ) : chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0,\n combinePaths(scope.packageDirectory, \"package.json\")\n ) : targetExt ? chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module,\n targetExt\n ) : chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module\n );\n result.repopulateInfo = () => true;\n return result;\n}\nfunction packageIdIsEqual(a, b) {\n return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version && a.peerDependencies === b.peerDependencies;\n}\nfunction packageIdToPackageName({ name, subModuleName }) {\n return subModuleName ? `${name}/${subModuleName}` : name;\n}\nfunction packageIdToString(packageId) {\n return `${packageIdToPackageName(packageId)}@${packageId.version}${packageId.peerDependencies ?? \"\"}`;\n}\nfunction typeDirectiveIsEqualTo(oldResolution, newResolution) {\n return oldResolution === newResolution || oldResolution.resolvedTypeReferenceDirective === newResolution.resolvedTypeReferenceDirective || !!oldResolution.resolvedTypeReferenceDirective && !!newResolution.resolvedTypeReferenceDirective && oldResolution.resolvedTypeReferenceDirective.resolvedFileName === newResolution.resolvedTypeReferenceDirective.resolvedFileName && !!oldResolution.resolvedTypeReferenceDirective.primary === !!newResolution.resolvedTypeReferenceDirective.primary && oldResolution.resolvedTypeReferenceDirective.originalPath === newResolution.resolvedTypeReferenceDirective.originalPath;\n}\nfunction hasChangesInResolutions(names, newResolutions, getOldResolution, comparer) {\n Debug.assert(names.length === newResolutions.length);\n for (let i = 0; i < names.length; i++) {\n const newResolution = newResolutions[i];\n const entry = names[i];\n const oldResolution = getOldResolution(entry);\n const changed = oldResolution ? !newResolution || !comparer(oldResolution, newResolution) : newResolution;\n if (changed) {\n return true;\n }\n }\n return false;\n}\nfunction containsParseError(node) {\n aggregateChildData(node);\n return (node.flags & 1048576 /* ThisNodeOrAnySubNodesHasError */) !== 0;\n}\nfunction aggregateChildData(node) {\n if (!(node.flags & 2097152 /* HasAggregatedChildData */)) {\n const thisNodeOrAnySubNodesHasError = (node.flags & 262144 /* ThisNodeHasError */) !== 0 || forEachChild(node, containsParseError);\n if (thisNodeOrAnySubNodesHasError) {\n node.flags |= 1048576 /* ThisNodeOrAnySubNodesHasError */;\n }\n node.flags |= 2097152 /* HasAggregatedChildData */;\n }\n}\nfunction getSourceFileOfNode(node) {\n while (node && node.kind !== 308 /* SourceFile */) {\n node = node.parent;\n }\n return node;\n}\nfunction getSourceFileOfModule(module2) {\n return getSourceFileOfNode(module2.valueDeclaration || getNonAugmentationDeclaration(module2));\n}\nfunction isPlainJsFile(file, checkJs) {\n return !!file && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */) && !file.checkJsDirective && checkJs === void 0;\n}\nfunction isStatementWithLocals(node) {\n switch (node.kind) {\n case 242 /* Block */:\n case 270 /* CaseBlock */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n return true;\n }\n return false;\n}\nfunction getStartPositionOfLine(line, sourceFile) {\n Debug.assert(line >= 0);\n return getLineStarts(sourceFile)[line];\n}\nfunction nodePosToString(node) {\n const file = getSourceFileOfNode(node);\n const loc = getLineAndCharacterOfPosition(file, node.pos);\n return `${file.fileName}(${loc.line + 1},${loc.character + 1})`;\n}\nfunction getEndLinePosition(line, sourceFile) {\n Debug.assert(line >= 0);\n const lineStarts = getLineStarts(sourceFile);\n const lineIndex = line;\n const sourceText = sourceFile.text;\n if (lineIndex + 1 === lineStarts.length) {\n return sourceText.length - 1;\n } else {\n const start = lineStarts[lineIndex];\n let pos = lineStarts[lineIndex + 1] - 1;\n Debug.assert(isLineBreak(sourceText.charCodeAt(pos)));\n while (start <= pos && isLineBreak(sourceText.charCodeAt(pos))) {\n pos--;\n }\n return pos;\n }\n}\nfunction isFileLevelUniqueName(sourceFile, name, hasGlobalName) {\n return !(hasGlobalName && hasGlobalName(name)) && !sourceFile.identifiers.has(name);\n}\nfunction nodeIsMissing(node) {\n if (node === void 0) {\n return true;\n }\n return node.pos === node.end && node.pos >= 0 && node.kind !== 1 /* EndOfFileToken */;\n}\nfunction nodeIsPresent(node) {\n return !nodeIsMissing(node);\n}\nfunction isGrammarError(parent2, child) {\n if (isTypeParameterDeclaration(parent2)) return child === parent2.expression;\n if (isClassStaticBlockDeclaration(parent2)) return child === parent2.modifiers;\n if (isPropertySignature(parent2)) return child === parent2.initializer;\n if (isPropertyDeclaration(parent2)) return child === parent2.questionToken && isAutoAccessorPropertyDeclaration(parent2);\n if (isPropertyAssignment(parent2)) return child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n if (isShorthandPropertyAssignment(parent2)) return child === parent2.equalsToken || child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n if (isMethodDeclaration(parent2)) return child === parent2.exclamationToken;\n if (isConstructorDeclaration(parent2)) return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n if (isGetAccessorDeclaration(parent2)) return child === parent2.typeParameters || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n if (isSetAccessorDeclaration(parent2)) return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n if (isNamespaceExportDeclaration(parent2)) return child === parent2.modifiers || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n return false;\n}\nfunction isGrammarErrorElement(nodeArray, child, isElement) {\n if (!nodeArray || isArray(child) || !isElement(child)) return false;\n return contains(nodeArray, child);\n}\nfunction insertStatementsAfterPrologue(to, from, isPrologueDirective2) {\n if (from === void 0 || from.length === 0) return to;\n let statementIndex = 0;\n for (; statementIndex < to.length; ++statementIndex) {\n if (!isPrologueDirective2(to[statementIndex])) {\n break;\n }\n }\n to.splice(statementIndex, 0, ...from);\n return to;\n}\nfunction insertStatementAfterPrologue(to, statement, isPrologueDirective2) {\n if (statement === void 0) return to;\n let statementIndex = 0;\n for (; statementIndex < to.length; ++statementIndex) {\n if (!isPrologueDirective2(to[statementIndex])) {\n break;\n }\n }\n to.splice(statementIndex, 0, statement);\n return to;\n}\nfunction isAnyPrologueDirective(node) {\n return isPrologueDirective(node) || !!(getEmitFlags(node) & 2097152 /* CustomPrologue */);\n}\nfunction insertStatementsAfterStandardPrologue(to, from) {\n return insertStatementsAfterPrologue(to, from, isPrologueDirective);\n}\nfunction insertStatementsAfterCustomPrologue(to, from) {\n return insertStatementsAfterPrologue(to, from, isAnyPrologueDirective);\n}\nfunction insertStatementAfterStandardPrologue(to, statement) {\n return insertStatementAfterPrologue(to, statement, isPrologueDirective);\n}\nfunction insertStatementAfterCustomPrologue(to, statement) {\n return insertStatementAfterPrologue(to, statement, isAnyPrologueDirective);\n}\nfunction isRecognizedTripleSlashComment(text, commentPos, commentEnd) {\n if (text.charCodeAt(commentPos + 1) === 47 /* slash */ && commentPos + 2 < commentEnd && text.charCodeAt(commentPos + 2) === 47 /* slash */) {\n const textSubStr = text.substring(commentPos, commentEnd);\n return fullTripleSlashReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDModuleRegEx.test(textSubStr) || fullTripleSlashReferenceTypeReferenceDirectiveRegEx.test(textSubStr) || fullTripleSlashLibReferenceRegEx.test(textSubStr) || defaultLibReferenceRegEx.test(textSubStr) ? true : false;\n }\n return false;\n}\nfunction isPinnedComment(text, start) {\n return text.charCodeAt(start + 1) === 42 /* asterisk */ && text.charCodeAt(start + 2) === 33 /* exclamation */;\n}\nfunction createCommentDirectivesMap(sourceFile, commentDirectives) {\n const directivesByLine = new Map(\n commentDirectives.map((commentDirective) => [\n `${getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line}`,\n commentDirective\n ])\n );\n const usedLines = /* @__PURE__ */ new Map();\n return { getUnusedExpectations, markUsed };\n function getUnusedExpectations() {\n return arrayFrom(directivesByLine.entries()).filter(([line, directive]) => directive.type === 0 /* ExpectError */ && !usedLines.get(line)).map(([_, directive]) => directive);\n }\n function markUsed(line) {\n if (!directivesByLine.has(`${line}`)) {\n return false;\n }\n usedLines.set(`${line}`, true);\n return true;\n }\n}\nfunction getTokenPosOfNode(node, sourceFile, includeJsDoc) {\n if (nodeIsMissing(node)) {\n return node.pos;\n }\n if (isJSDocNode(node) || node.kind === 12 /* JsxText */) {\n return skipTrivia(\n (sourceFile ?? getSourceFileOfNode(node)).text,\n node.pos,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n );\n }\n if (includeJsDoc && hasJSDocNodes(node)) {\n return getTokenPosOfNode(node.jsDoc[0], sourceFile);\n }\n if (node.kind === 353 /* SyntaxList */) {\n sourceFile ?? (sourceFile = getSourceFileOfNode(node));\n const first2 = firstOrUndefined(getNodeChildren(node, sourceFile));\n if (first2) {\n return getTokenPosOfNode(first2, sourceFile, includeJsDoc);\n }\n }\n return skipTrivia(\n (sourceFile ?? getSourceFileOfNode(node)).text,\n node.pos,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n false,\n isInJSDoc(node)\n );\n}\nfunction getNonDecoratorTokenPosOfNode(node, sourceFile) {\n const lastDecorator = !nodeIsMissing(node) && canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0;\n if (!lastDecorator) {\n return getTokenPosOfNode(node, sourceFile);\n }\n return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, lastDecorator.end);\n}\nfunction getNonModifierTokenPosOfNode(node, sourceFile) {\n const lastModifier = !nodeIsMissing(node) && canHaveModifiers(node) && node.modifiers ? last(node.modifiers) : void 0;\n if (!lastModifier) {\n return getTokenPosOfNode(node, sourceFile);\n }\n return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, lastModifier.end);\n}\nfunction getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia = false) {\n return getTextOfNodeFromSourceText(sourceFile.text, node, includeTrivia);\n}\nfunction isJSDocTypeExpressionOrChild(node) {\n return !!findAncestor(node, isJSDocTypeExpression);\n}\nfunction isExportNamespaceAsDefaultDeclaration(node) {\n return !!(isExportDeclaration(node) && node.exportClause && isNamespaceExport(node.exportClause) && moduleExportNameIsDefault(node.exportClause.name));\n}\nfunction moduleExportNameTextUnescaped(node) {\n return node.kind === 11 /* StringLiteral */ ? node.text : unescapeLeadingUnderscores(node.escapedText);\n}\nfunction moduleExportNameTextEscaped(node) {\n return node.kind === 11 /* StringLiteral */ ? escapeLeadingUnderscores(node.text) : node.escapedText;\n}\nfunction moduleExportNameIsDefault(node) {\n return (node.kind === 11 /* StringLiteral */ ? node.text : node.escapedText) === \"default\" /* Default */;\n}\nfunction getTextOfNodeFromSourceText(sourceText, node, includeTrivia = false) {\n if (nodeIsMissing(node)) {\n return \"\";\n }\n let text = sourceText.substring(includeTrivia ? node.pos : skipTrivia(sourceText, node.pos), node.end);\n if (isJSDocTypeExpressionOrChild(node)) {\n text = text.split(/\\r\\n|\\n|\\r/).map((line) => line.replace(/^\\s*\\*/, \"\").trimStart()).join(\"\\n\");\n }\n return text;\n}\nfunction getTextOfNode(node, includeTrivia = false) {\n return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node, includeTrivia);\n}\nfunction getPos(range) {\n return range.pos;\n}\nfunction indexOfNode(nodeArray, node) {\n return binarySearch(nodeArray, node, getPos, compareValues);\n}\nfunction getEmitFlags(node) {\n const emitNode = node.emitNode;\n return emitNode && emitNode.flags || 0;\n}\nfunction getInternalEmitFlags(node) {\n const emitNode = node.emitNode;\n return emitNode && emitNode.internalFlags || 0;\n}\nvar getScriptTargetFeatures = /* @__PURE__ */ memoize(\n () => new Map(Object.entries({\n Array: new Map(Object.entries({\n es2015: [\n \"find\",\n \"findIndex\",\n \"fill\",\n \"copyWithin\",\n \"entries\",\n \"keys\",\n \"values\"\n ],\n es2016: [\n \"includes\"\n ],\n es2019: [\n \"flat\",\n \"flatMap\"\n ],\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Iterator: new Map(Object.entries({\n es2015: emptyArray\n })),\n AsyncIterator: new Map(Object.entries({\n es2015: emptyArray\n })),\n ArrayBuffer: new Map(Object.entries({\n es2024: [\n \"maxByteLength\",\n \"resizable\",\n \"resize\",\n \"detached\",\n \"transfer\",\n \"transferToFixedLength\"\n ]\n })),\n Atomics: new Map(Object.entries({\n es2017: [\n \"add\",\n \"and\",\n \"compareExchange\",\n \"exchange\",\n \"isLockFree\",\n \"load\",\n \"or\",\n \"store\",\n \"sub\",\n \"wait\",\n \"notify\",\n \"xor\"\n ],\n es2024: [\n \"waitAsync\"\n ],\n esnext: [\n \"pause\"\n ]\n })),\n SharedArrayBuffer: new Map(Object.entries({\n es2017: [\n \"byteLength\",\n \"slice\"\n ],\n es2024: [\n \"growable\",\n \"maxByteLength\",\n \"grow\"\n ]\n })),\n AsyncIterable: new Map(Object.entries({\n es2018: emptyArray\n })),\n AsyncIterableIterator: new Map(Object.entries({\n es2018: emptyArray\n })),\n AsyncGenerator: new Map(Object.entries({\n es2018: emptyArray\n })),\n AsyncGeneratorFunction: new Map(Object.entries({\n es2018: emptyArray\n })),\n RegExp: new Map(Object.entries({\n es2015: [\n \"flags\",\n \"sticky\",\n \"unicode\"\n ],\n es2018: [\n \"dotAll\"\n ],\n es2024: [\n \"unicodeSets\"\n ]\n })),\n Reflect: new Map(Object.entries({\n es2015: [\n \"apply\",\n \"construct\",\n \"defineProperty\",\n \"deleteProperty\",\n \"get\",\n \"getOwnPropertyDescriptor\",\n \"getPrototypeOf\",\n \"has\",\n \"isExtensible\",\n \"ownKeys\",\n \"preventExtensions\",\n \"set\",\n \"setPrototypeOf\"\n ]\n })),\n ArrayConstructor: new Map(Object.entries({\n es2015: [\n \"from\",\n \"of\"\n ],\n esnext: [\n \"fromAsync\"\n ]\n })),\n ObjectConstructor: new Map(Object.entries({\n es2015: [\n \"assign\",\n \"getOwnPropertySymbols\",\n \"keys\",\n \"is\",\n \"setPrototypeOf\"\n ],\n es2017: [\n \"values\",\n \"entries\",\n \"getOwnPropertyDescriptors\"\n ],\n es2019: [\n \"fromEntries\"\n ],\n es2022: [\n \"hasOwn\"\n ],\n es2024: [\n \"groupBy\"\n ]\n })),\n NumberConstructor: new Map(Object.entries({\n es2015: [\n \"isFinite\",\n \"isInteger\",\n \"isNaN\",\n \"isSafeInteger\",\n \"parseFloat\",\n \"parseInt\"\n ]\n })),\n Math: new Map(Object.entries({\n es2015: [\n \"clz32\",\n \"imul\",\n \"sign\",\n \"log10\",\n \"log2\",\n \"log1p\",\n \"expm1\",\n \"cosh\",\n \"sinh\",\n \"tanh\",\n \"acosh\",\n \"asinh\",\n \"atanh\",\n \"hypot\",\n \"trunc\",\n \"fround\",\n \"cbrt\"\n ],\n esnext: [\n \"f16round\"\n ]\n })),\n Map: new Map(Object.entries({\n es2015: [\n \"entries\",\n \"keys\",\n \"values\"\n ]\n })),\n MapConstructor: new Map(Object.entries({\n es2024: [\n \"groupBy\"\n ]\n })),\n Set: new Map(Object.entries({\n es2015: [\n \"entries\",\n \"keys\",\n \"values\"\n ],\n esnext: [\n \"union\",\n \"intersection\",\n \"difference\",\n \"symmetricDifference\",\n \"isSubsetOf\",\n \"isSupersetOf\",\n \"isDisjointFrom\"\n ]\n })),\n PromiseConstructor: new Map(Object.entries({\n es2015: [\n \"all\",\n \"race\",\n \"reject\",\n \"resolve\"\n ],\n es2020: [\n \"allSettled\"\n ],\n es2021: [\n \"any\"\n ],\n es2024: [\n \"withResolvers\"\n ]\n })),\n Symbol: new Map(Object.entries({\n es2015: [\n \"for\",\n \"keyFor\"\n ],\n es2019: [\n \"description\"\n ]\n })),\n WeakMap: new Map(Object.entries({\n es2015: [\n \"entries\",\n \"keys\",\n \"values\"\n ]\n })),\n WeakSet: new Map(Object.entries({\n es2015: [\n \"entries\",\n \"keys\",\n \"values\"\n ]\n })),\n String: new Map(Object.entries({\n es2015: [\n \"codePointAt\",\n \"includes\",\n \"endsWith\",\n \"normalize\",\n \"repeat\",\n \"startsWith\",\n \"anchor\",\n \"big\",\n \"blink\",\n \"bold\",\n \"fixed\",\n \"fontcolor\",\n \"fontsize\",\n \"italics\",\n \"link\",\n \"small\",\n \"strike\",\n \"sub\",\n \"sup\"\n ],\n es2017: [\n \"padStart\",\n \"padEnd\"\n ],\n es2019: [\n \"trimStart\",\n \"trimEnd\",\n \"trimLeft\",\n \"trimRight\"\n ],\n es2020: [\n \"matchAll\"\n ],\n es2021: [\n \"replaceAll\"\n ],\n es2022: [\n \"at\"\n ],\n es2024: [\n \"isWellFormed\",\n \"toWellFormed\"\n ]\n })),\n StringConstructor: new Map(Object.entries({\n es2015: [\n \"fromCodePoint\",\n \"raw\"\n ]\n })),\n DateTimeFormat: new Map(Object.entries({\n es2017: [\n \"formatToParts\"\n ]\n })),\n Promise: new Map(Object.entries({\n es2015: emptyArray,\n es2018: [\n \"finally\"\n ]\n })),\n RegExpMatchArray: new Map(Object.entries({\n es2018: [\n \"groups\"\n ]\n })),\n RegExpExecArray: new Map(Object.entries({\n es2018: [\n \"groups\"\n ]\n })),\n Intl: new Map(Object.entries({\n es2018: [\n \"PluralRules\"\n ]\n })),\n NumberFormat: new Map(Object.entries({\n es2018: [\n \"formatToParts\"\n ]\n })),\n SymbolConstructor: new Map(Object.entries({\n es2020: [\n \"matchAll\"\n ],\n esnext: [\n \"metadata\",\n \"dispose\",\n \"asyncDispose\"\n ]\n })),\n DataView: new Map(Object.entries({\n es2020: [\n \"setBigInt64\",\n \"setBigUint64\",\n \"getBigInt64\",\n \"getBigUint64\"\n ],\n esnext: [\n \"setFloat16\",\n \"getFloat16\"\n ]\n })),\n BigInt: new Map(Object.entries({\n es2020: emptyArray\n })),\n RelativeTimeFormat: new Map(Object.entries({\n es2020: [\n \"format\",\n \"formatToParts\",\n \"resolvedOptions\"\n ]\n })),\n Int8Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Uint8Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Uint8ClampedArray: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Int16Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Uint16Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Int32Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Uint32Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Float16Array: new Map(Object.entries({\n esnext: emptyArray\n })),\n Float32Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Float64Array: new Map(Object.entries({\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n BigInt64Array: new Map(Object.entries({\n es2020: emptyArray,\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n BigUint64Array: new Map(Object.entries({\n es2020: emptyArray,\n es2022: [\n \"at\"\n ],\n es2023: [\n \"findLastIndex\",\n \"findLast\",\n \"toReversed\",\n \"toSorted\",\n \"toSpliced\",\n \"with\"\n ]\n })),\n Error: new Map(Object.entries({\n es2022: [\n \"cause\"\n ]\n }))\n }))\n);\nvar GetLiteralTextFlags = /* @__PURE__ */ ((GetLiteralTextFlags2) => {\n GetLiteralTextFlags2[GetLiteralTextFlags2[\"None\"] = 0] = \"None\";\n GetLiteralTextFlags2[GetLiteralTextFlags2[\"NeverAsciiEscape\"] = 1] = \"NeverAsciiEscape\";\n GetLiteralTextFlags2[GetLiteralTextFlags2[\"JsxAttributeEscape\"] = 2] = \"JsxAttributeEscape\";\n GetLiteralTextFlags2[GetLiteralTextFlags2[\"TerminateUnterminatedLiterals\"] = 4] = \"TerminateUnterminatedLiterals\";\n GetLiteralTextFlags2[GetLiteralTextFlags2[\"AllowNumericSeparator\"] = 8] = \"AllowNumericSeparator\";\n return GetLiteralTextFlags2;\n})(GetLiteralTextFlags || {});\nfunction getLiteralText(node, sourceFile, flags) {\n if (sourceFile && canUseOriginalText(node, flags)) {\n return getSourceTextOfNodeFromSourceFile(sourceFile, node);\n }\n switch (node.kind) {\n case 11 /* StringLiteral */: {\n const escapeText = flags & 2 /* JsxAttributeEscape */ ? escapeJsxAttributeString : flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString;\n if (node.singleQuote) {\n return \"'\" + escapeText(node.text, 39 /* singleQuote */) + \"'\";\n } else {\n return '\"' + escapeText(node.text, 34 /* doubleQuote */) + '\"';\n }\n }\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 16 /* TemplateHead */:\n case 17 /* TemplateMiddle */:\n case 18 /* TemplateTail */: {\n const escapeText = flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString;\n const rawText = node.rawText ?? escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));\n switch (node.kind) {\n case 15 /* NoSubstitutionTemplateLiteral */:\n return \"`\" + rawText + \"`\";\n case 16 /* TemplateHead */:\n return \"`\" + rawText + \"${\";\n case 17 /* TemplateMiddle */:\n return \"}\" + rawText + \"${\";\n case 18 /* TemplateTail */:\n return \"}\" + rawText + \"`\";\n }\n break;\n }\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n return node.text;\n case 14 /* RegularExpressionLiteral */:\n if (flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) {\n return node.text + (node.text.charCodeAt(node.text.length - 1) === 92 /* backslash */ ? \" /\" : \"/\");\n }\n return node.text;\n }\n return Debug.fail(`Literal kind '${node.kind}' not accounted for.`);\n}\nfunction canUseOriginalText(node, flags) {\n if (nodeIsSynthesized(node) || !node.parent || flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) {\n return false;\n }\n if (isNumericLiteral(node)) {\n if (node.numericLiteralFlags & 26656 /* IsInvalid */) {\n return false;\n }\n if (node.numericLiteralFlags & 512 /* ContainsSeparator */) {\n return !!(flags & 8 /* AllowNumericSeparator */);\n }\n }\n return !isBigIntLiteral(node);\n}\nfunction getTextOfConstantValue(value) {\n return isString(value) ? `\"${escapeString(value)}\"` : \"\" + value;\n}\nfunction makeIdentifierFromModuleName(moduleName) {\n return getBaseFileName(moduleName).replace(/^(\\d)/, \"_$1\").replace(/\\W/g, \"_\");\n}\nfunction isBlockOrCatchScoped(declaration) {\n return (getCombinedNodeFlags(declaration) & 7 /* BlockScoped */) !== 0 || isCatchClauseVariableDeclarationOrBindingElement(declaration);\n}\nfunction isCatchClauseVariableDeclarationOrBindingElement(declaration) {\n const node = getRootDeclaration(declaration);\n return node.kind === 261 /* VariableDeclaration */ && node.parent.kind === 300 /* CatchClause */;\n}\nfunction isAmbientModule(node) {\n return isModuleDeclaration(node) && (node.name.kind === 11 /* StringLiteral */ || isGlobalScopeAugmentation(node));\n}\nfunction isModuleWithStringLiteralName(node) {\n return isModuleDeclaration(node) && node.name.kind === 11 /* StringLiteral */;\n}\nfunction isNonGlobalAmbientModule(node) {\n return isModuleDeclaration(node) && isStringLiteral(node.name);\n}\nfunction isEffectiveModuleDeclaration(node) {\n return isModuleDeclaration(node) || isIdentifier(node);\n}\nfunction isShorthandAmbientModuleSymbol(moduleSymbol) {\n return isShorthandAmbientModule(moduleSymbol.valueDeclaration);\n}\nfunction isShorthandAmbientModule(node) {\n return !!node && node.kind === 268 /* ModuleDeclaration */ && !node.body;\n}\nfunction isBlockScopedContainerTopLevel(node) {\n return node.kind === 308 /* SourceFile */ || node.kind === 268 /* ModuleDeclaration */ || isFunctionLikeOrClassStaticBlockDeclaration(node);\n}\nfunction isGlobalScopeAugmentation(module2) {\n return !!(module2.flags & 2048 /* GlobalAugmentation */);\n}\nfunction isExternalModuleAugmentation(node) {\n return isAmbientModule(node) && isModuleAugmentationExternal(node);\n}\nfunction isModuleAugmentationExternal(node) {\n switch (node.parent.kind) {\n case 308 /* SourceFile */:\n return isExternalModule(node.parent);\n case 269 /* ModuleBlock */:\n return isAmbientModule(node.parent.parent) && isSourceFile(node.parent.parent.parent) && !isExternalModule(node.parent.parent.parent);\n }\n return false;\n}\nfunction getNonAugmentationDeclaration(symbol) {\n var _a;\n return (_a = symbol.declarations) == null ? void 0 : _a.find((d) => !isExternalModuleAugmentation(d) && !(isModuleDeclaration(d) && isGlobalScopeAugmentation(d)));\n}\nfunction isCommonJSContainingModuleKind(kind) {\n return kind === 1 /* CommonJS */ || 100 /* Node16 */ <= kind && kind <= 199 /* NodeNext */;\n}\nfunction isEffectiveExternalModule(node, compilerOptions) {\n return isExternalModule(node) || isCommonJSContainingModuleKind(getEmitModuleKind(compilerOptions)) && !!node.commonJsModuleIndicator;\n}\nfunction isEffectiveStrictModeSourceFile(node, compilerOptions) {\n switch (node.scriptKind) {\n case 1 /* JS */:\n case 3 /* TS */:\n case 2 /* JSX */:\n case 4 /* TSX */:\n break;\n default:\n return false;\n }\n if (node.isDeclarationFile) {\n return false;\n }\n if (getStrictOptionValue(compilerOptions, \"alwaysStrict\")) {\n return true;\n }\n if (startsWithUseStrict(node.statements)) {\n return true;\n }\n if (isExternalModule(node) || getIsolatedModules(compilerOptions)) {\n return true;\n }\n return false;\n}\nfunction isAmbientPropertyDeclaration(node) {\n return !!(node.flags & 33554432 /* Ambient */) || hasSyntacticModifier(node, 128 /* Ambient */);\n}\nfunction isBlockScope(node, parentNode) {\n switch (node.kind) {\n case 308 /* SourceFile */:\n case 270 /* CaseBlock */:\n case 300 /* CatchClause */:\n case 268 /* ModuleDeclaration */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 173 /* PropertyDeclaration */:\n case 176 /* ClassStaticBlockDeclaration */:\n return true;\n case 242 /* Block */:\n return !isFunctionLikeOrClassStaticBlockDeclaration(parentNode);\n }\n return false;\n}\nfunction isDeclarationWithTypeParameters(node) {\n Debug.type(node);\n switch (node.kind) {\n case 339 /* JSDocCallbackTag */:\n case 347 /* JSDocTypedefTag */:\n case 324 /* JSDocSignature */:\n return true;\n default:\n assertType(node);\n return isDeclarationWithTypeParameterChildren(node);\n }\n}\nfunction isDeclarationWithTypeParameterChildren(node) {\n Debug.type(node);\n switch (node.kind) {\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 174 /* MethodSignature */:\n case 182 /* IndexSignature */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 318 /* JSDocFunctionType */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 346 /* JSDocTemplateTag */:\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return true;\n default:\n assertType(node);\n return false;\n }\n}\nfunction isAnyImportSyntax(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction isAnyImportOrBareOrAccessedRequire(node) {\n return isAnyImportSyntax(node) || isVariableDeclarationInitializedToBareOrAccessedRequire(node);\n}\nfunction isAnyImportOrRequireStatement(node) {\n return isAnyImportSyntax(node) || isRequireVariableStatement(node);\n}\nfunction isLateVisibilityPaintedStatement(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 244 /* VariableStatement */:\n case 264 /* ClassDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction hasPossibleExternalModuleReference(node) {\n return isAnyImportOrReExport(node) || isModuleDeclaration(node) || isImportTypeNode(node) || isImportCall(node);\n}\nfunction isAnyImportOrReExport(node) {\n return isAnyImportSyntax(node) || isExportDeclaration(node);\n}\nfunction getEnclosingContainer(node) {\n return findAncestor(node.parent, (n) => !!(getContainerFlags(n) & 1 /* IsContainer */));\n}\nfunction getEnclosingBlockScopeContainer(node) {\n return findAncestor(node.parent, (current) => isBlockScope(current, current.parent));\n}\nfunction forEachEnclosingBlockScopeContainer(node, cb) {\n let container = getEnclosingBlockScopeContainer(node);\n while (container) {\n cb(container);\n container = getEnclosingBlockScopeContainer(container);\n }\n}\nfunction declarationNameToString(name) {\n return !name || getFullWidth(name) === 0 ? \"(Missing)\" : getTextOfNode(name);\n}\nfunction getNameFromIndexInfo(info) {\n return info.declaration ? declarationNameToString(info.declaration.parameters[0].name) : void 0;\n}\nfunction isComputedNonLiteralName(name) {\n return name.kind === 168 /* ComputedPropertyName */ && !isStringOrNumericLiteralLike(name.expression);\n}\nfunction tryGetTextOfPropertyName(name) {\n var _a;\n switch (name.kind) {\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n return ((_a = name.emitNode) == null ? void 0 : _a.autoGenerate) ? void 0 : name.escapedText;\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return escapeLeadingUnderscores(name.text);\n case 168 /* ComputedPropertyName */:\n if (isStringOrNumericLiteralLike(name.expression)) return escapeLeadingUnderscores(name.expression.text);\n return void 0;\n case 296 /* JsxNamespacedName */:\n return getEscapedTextOfJsxNamespacedName(name);\n default:\n return Debug.assertNever(name);\n }\n}\nfunction getTextOfPropertyName(name) {\n return Debug.checkDefined(tryGetTextOfPropertyName(name));\n}\nfunction entityNameToString(name) {\n switch (name.kind) {\n case 110 /* ThisKeyword */:\n return \"this\";\n case 81 /* PrivateIdentifier */:\n case 80 /* Identifier */:\n return getFullWidth(name) === 0 ? idText(name) : getTextOfNode(name);\n case 167 /* QualifiedName */:\n return entityNameToString(name.left) + \".\" + entityNameToString(name.right);\n case 212 /* PropertyAccessExpression */:\n if (isIdentifier(name.name) || isPrivateIdentifier(name.name)) {\n return entityNameToString(name.expression) + \".\" + entityNameToString(name.name);\n } else {\n return Debug.assertNever(name.name);\n }\n case 312 /* JSDocMemberName */:\n return entityNameToString(name.left) + \"#\" + entityNameToString(name.right);\n case 296 /* JsxNamespacedName */:\n return entityNameToString(name.namespace) + \":\" + entityNameToString(name.name);\n default:\n return Debug.assertNever(name);\n }\n}\nfunction createDiagnosticForNode(node, message, ...args) {\n const sourceFile = getSourceFileOfNode(node);\n return createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args);\n}\nfunction createDiagnosticForNodeArray(sourceFile, nodes, message, ...args) {\n const start = skipTrivia(sourceFile.text, nodes.pos);\n return createFileDiagnostic(sourceFile, start, nodes.end - start, message, ...args);\n}\nfunction createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args) {\n const span = getErrorSpanForNode(sourceFile, node);\n return createFileDiagnostic(sourceFile, span.start, span.length, message, ...args);\n}\nfunction createDiagnosticForNodeFromMessageChain(sourceFile, node, messageChain, relatedInformation) {\n const span = getErrorSpanForNode(sourceFile, node);\n return createFileDiagnosticFromMessageChain(sourceFile, span.start, span.length, messageChain, relatedInformation);\n}\nfunction createDiagnosticForNodeArrayFromMessageChain(sourceFile, nodes, messageChain, relatedInformation) {\n const start = skipTrivia(sourceFile.text, nodes.pos);\n return createFileDiagnosticFromMessageChain(sourceFile, start, nodes.end - start, messageChain, relatedInformation);\n}\nfunction assertDiagnosticLocation(sourceText, start, length2) {\n Debug.assertGreaterThanOrEqual(start, 0);\n Debug.assertGreaterThanOrEqual(length2, 0);\n Debug.assertLessThanOrEqual(start, sourceText.length);\n Debug.assertLessThanOrEqual(start + length2, sourceText.length);\n}\nfunction createFileDiagnosticFromMessageChain(file, start, length2, messageChain, relatedInformation) {\n assertDiagnosticLocation(file.text, start, length2);\n return {\n file,\n start,\n length: length2,\n code: messageChain.code,\n category: messageChain.category,\n messageText: messageChain.next ? messageChain : messageChain.messageText,\n relatedInformation,\n canonicalHead: messageChain.canonicalHead\n };\n}\nfunction createDiagnosticForFileFromMessageChain(sourceFile, messageChain, relatedInformation) {\n return {\n file: sourceFile,\n start: 0,\n length: 0,\n code: messageChain.code,\n category: messageChain.category,\n messageText: messageChain.next ? messageChain : messageChain.messageText,\n relatedInformation\n };\n}\nfunction createDiagnosticMessageChainFromDiagnostic(diagnostic) {\n return typeof diagnostic.messageText === \"string\" ? {\n code: diagnostic.code,\n category: diagnostic.category,\n messageText: diagnostic.messageText,\n next: diagnostic.next\n } : diagnostic.messageText;\n}\nfunction createDiagnosticForRange(sourceFile, range, message) {\n return {\n file: sourceFile,\n start: range.pos,\n length: range.end - range.pos,\n code: message.code,\n category: message.category,\n messageText: message.message\n };\n}\nfunction getCanonicalDiagnostic(message, ...args) {\n return {\n code: message.code,\n messageText: formatMessage(message, ...args)\n };\n}\nfunction getSpanOfTokenAtPosition(sourceFile, pos) {\n const scanner2 = createScanner(\n sourceFile.languageVersion,\n /*skipTrivia*/\n true,\n sourceFile.languageVariant,\n sourceFile.text,\n /*onError*/\n void 0,\n pos\n );\n scanner2.scan();\n const start = scanner2.getTokenStart();\n return createTextSpanFromBounds(start, scanner2.getTokenEnd());\n}\nfunction scanTokenAtPosition(sourceFile, pos) {\n const scanner2 = createScanner(\n sourceFile.languageVersion,\n /*skipTrivia*/\n true,\n sourceFile.languageVariant,\n sourceFile.text,\n /*onError*/\n void 0,\n pos\n );\n scanner2.scan();\n return scanner2.getToken();\n}\nfunction getErrorSpanForArrowFunction(sourceFile, node) {\n const pos = skipTrivia(sourceFile.text, node.pos);\n if (node.body && node.body.kind === 242 /* Block */) {\n const { line: startLine } = getLineAndCharacterOfPosition(sourceFile, node.body.pos);\n const { line: endLine } = getLineAndCharacterOfPosition(sourceFile, node.body.end);\n if (startLine < endLine) {\n return createTextSpan(pos, getEndLinePosition(startLine, sourceFile) - pos + 1);\n }\n }\n return createTextSpanFromBounds(pos, node.end);\n}\nfunction getErrorSpanForNode(sourceFile, node) {\n let errorNode = node;\n switch (node.kind) {\n case 308 /* SourceFile */: {\n const pos2 = skipTrivia(\n sourceFile.text,\n 0,\n /*stopAfterLineBreak*/\n false\n );\n if (pos2 === sourceFile.text.length) {\n return createTextSpan(0, 0);\n }\n return getSpanOfTokenAtPosition(sourceFile, pos2);\n }\n // This list is a work in progress. Add missing node kinds to improve their error\n // spans.\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 266 /* TypeAliasDeclaration */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 275 /* NamespaceImport */:\n errorNode = node.name;\n break;\n case 220 /* ArrowFunction */:\n return getErrorSpanForArrowFunction(sourceFile, node);\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */: {\n const start = skipTrivia(sourceFile.text, node.pos);\n const end = node.statements.length > 0 ? node.statements[0].pos : node.end;\n return createTextSpanFromBounds(start, end);\n }\n case 254 /* ReturnStatement */:\n case 230 /* YieldExpression */: {\n const pos2 = skipTrivia(sourceFile.text, node.pos);\n return getSpanOfTokenAtPosition(sourceFile, pos2);\n }\n case 239 /* SatisfiesExpression */: {\n const pos2 = skipTrivia(sourceFile.text, node.expression.end);\n return getSpanOfTokenAtPosition(sourceFile, pos2);\n }\n case 351 /* JSDocSatisfiesTag */: {\n const pos2 = skipTrivia(sourceFile.text, node.tagName.pos);\n return getSpanOfTokenAtPosition(sourceFile, pos2);\n }\n case 177 /* Constructor */: {\n const constructorDeclaration = node;\n const start = skipTrivia(sourceFile.text, constructorDeclaration.pos);\n const scanner2 = createScanner(\n sourceFile.languageVersion,\n /*skipTrivia*/\n true,\n sourceFile.languageVariant,\n sourceFile.text,\n /*onError*/\n void 0,\n start\n );\n let token = scanner2.scan();\n while (token !== 137 /* ConstructorKeyword */ && token !== 1 /* EndOfFileToken */) {\n token = scanner2.scan();\n }\n const end = scanner2.getTokenEnd();\n return createTextSpanFromBounds(start, end);\n }\n }\n if (errorNode === void 0) {\n return getSpanOfTokenAtPosition(sourceFile, node.pos);\n }\n Debug.assert(!isJSDoc(errorNode));\n const isMissing = nodeIsMissing(errorNode);\n const pos = isMissing || isJsxText(node) ? errorNode.pos : skipTrivia(sourceFile.text, errorNode.pos);\n if (isMissing) {\n Debug.assert(pos === errorNode.pos, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n Debug.assert(pos === errorNode.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n } else {\n Debug.assert(pos >= errorNode.pos, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n Debug.assert(pos <= errorNode.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n }\n return createTextSpanFromBounds(pos, errorNode.end);\n}\nfunction isGlobalSourceFile(node) {\n return node.kind === 308 /* SourceFile */ && !isExternalOrCommonJsModule(node);\n}\nfunction isExternalOrCommonJsModule(file) {\n return (file.externalModuleIndicator || file.commonJsModuleIndicator) !== void 0;\n}\nfunction isJsonSourceFile(file) {\n return file.scriptKind === 6 /* JSON */;\n}\nfunction isEnumConst(node) {\n return !!(getCombinedModifierFlags(node) & 4096 /* Const */);\n}\nfunction isDeclarationReadonly(declaration) {\n return !!(getCombinedModifierFlags(declaration) & 8 /* Readonly */ && !isParameterPropertyDeclaration(declaration, declaration.parent));\n}\nfunction isVarAwaitUsing(node) {\n return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 6 /* AwaitUsing */;\n}\nfunction isVarUsing(node) {\n return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 4 /* Using */;\n}\nfunction isVarConst(node) {\n return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 2 /* Const */;\n}\nfunction isVarConstLike(node) {\n const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;\n return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;\n}\nfunction isLet(node) {\n return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 1 /* Let */;\n}\nfunction isSuperCall(n) {\n return n.kind === 214 /* CallExpression */ && n.expression.kind === 108 /* SuperKeyword */;\n}\nfunction isImportCall(n) {\n if (n.kind !== 214 /* CallExpression */) return false;\n const e = n.expression;\n return e.kind === 102 /* ImportKeyword */ || isMetaProperty(e) && e.keywordToken === 102 /* ImportKeyword */ && e.name.escapedText === \"defer\";\n}\nfunction isImportMeta(n) {\n return isMetaProperty(n) && n.keywordToken === 102 /* ImportKeyword */ && n.name.escapedText === \"meta\";\n}\nfunction isLiteralImportTypeNode(n) {\n return isImportTypeNode(n) && isLiteralTypeNode(n.argument) && isStringLiteral(n.argument.literal);\n}\nfunction isPrologueDirective(node) {\n return node.kind === 245 /* ExpressionStatement */ && node.expression.kind === 11 /* StringLiteral */;\n}\nfunction isCustomPrologue(node) {\n return !!(getEmitFlags(node) & 2097152 /* CustomPrologue */);\n}\nfunction isHoistedFunction(node) {\n return isCustomPrologue(node) && isFunctionDeclaration(node);\n}\nfunction isHoistedVariable(node) {\n return isIdentifier(node.name) && !node.initializer;\n}\nfunction isHoistedVariableStatement(node) {\n return isCustomPrologue(node) && isVariableStatement(node) && every(node.declarationList.declarations, isHoistedVariable);\n}\nfunction getLeadingCommentRangesOfNode(node, sourceFileOfNode) {\n return node.kind !== 12 /* JsxText */ ? getLeadingCommentRanges(sourceFileOfNode.text, node.pos) : void 0;\n}\nfunction getJSDocCommentRanges(node, text) {\n const commentRanges = node.kind === 170 /* Parameter */ || node.kind === 169 /* TypeParameter */ || node.kind === 219 /* FunctionExpression */ || node.kind === 220 /* ArrowFunction */ || node.kind === 218 /* ParenthesizedExpression */ || node.kind === 261 /* VariableDeclaration */ || node.kind === 282 /* ExportSpecifier */ ? concatenate(getTrailingCommentRanges(text, node.pos), getLeadingCommentRanges(text, node.pos)) : getLeadingCommentRanges(text, node.pos);\n return filter(commentRanges, (comment) => comment.end <= node.end && // Due to parse errors sometime empty parameter may get comments assigned to it that end up not in parameter range\n text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 3) !== 47 /* slash */);\n}\nvar fullTripleSlashReferencePathRegEx = /^\\/\\/\\/\\s*/;\nvar fullTripleSlashReferenceTypeReferenceDirectiveRegEx = /^\\/\\/\\/\\s*/;\nvar fullTripleSlashLibReferenceRegEx = /^\\/\\/\\/\\s*/;\nvar fullTripleSlashAMDReferencePathRegEx = /^\\/\\/\\/\\s*/;\nvar fullTripleSlashAMDModuleRegEx = /^\\/\\/\\/\\s*/;\nvar defaultLibReferenceRegEx = /^\\/\\/\\/\\s*/;\nfunction isPartOfTypeNode(node) {\n if (183 /* FirstTypeNode */ <= node.kind && node.kind <= 206 /* LastTypeNode */) {\n return true;\n }\n switch (node.kind) {\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 154 /* StringKeyword */:\n case 136 /* BooleanKeyword */:\n case 155 /* SymbolKeyword */:\n case 151 /* ObjectKeyword */:\n case 157 /* UndefinedKeyword */:\n case 106 /* NullKeyword */:\n case 146 /* NeverKeyword */:\n return true;\n case 116 /* VoidKeyword */:\n return node.parent.kind !== 223 /* VoidExpression */;\n case 234 /* ExpressionWithTypeArguments */:\n return isPartOfTypeExpressionWithTypeArguments(node);\n case 169 /* TypeParameter */:\n return node.parent.kind === 201 /* MappedType */ || node.parent.kind === 196 /* InferType */;\n // Identifiers and qualified names may be type nodes, depending on their context. Climb\n // above them to find the lowest container\n case 80 /* Identifier */:\n if (node.parent.kind === 167 /* QualifiedName */ && node.parent.right === node) {\n node = node.parent;\n } else if (node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.name === node) {\n node = node.parent;\n }\n Debug.assert(node.kind === 80 /* Identifier */ || node.kind === 167 /* QualifiedName */ || node.kind === 212 /* PropertyAccessExpression */, \"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");\n // falls through\n case 167 /* QualifiedName */:\n case 212 /* PropertyAccessExpression */:\n case 110 /* ThisKeyword */: {\n const { parent: parent2 } = node;\n if (parent2.kind === 187 /* TypeQuery */) {\n return false;\n }\n if (parent2.kind === 206 /* ImportType */) {\n return !parent2.isTypeOf;\n }\n if (183 /* FirstTypeNode */ <= parent2.kind && parent2.kind <= 206 /* LastTypeNode */) {\n return true;\n }\n switch (parent2.kind) {\n case 234 /* ExpressionWithTypeArguments */:\n return isPartOfTypeExpressionWithTypeArguments(parent2);\n case 169 /* TypeParameter */:\n return node === parent2.constraint;\n case 346 /* JSDocTemplateTag */:\n return node === parent2.constraint;\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 170 /* Parameter */:\n case 261 /* VariableDeclaration */:\n return node === parent2.type;\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return node === parent2.type;\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n return node === parent2.type;\n case 217 /* TypeAssertionExpression */:\n return node === parent2.type;\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 216 /* TaggedTemplateExpression */:\n return contains(parent2.typeArguments, node);\n }\n }\n }\n return false;\n}\nfunction isPartOfTypeExpressionWithTypeArguments(node) {\n return isJSDocImplementsTag(node.parent) || isJSDocAugmentsTag(node.parent) || isHeritageClause(node.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(node);\n}\nfunction forEachReturnStatement(body, visitor) {\n return traverse(body);\n function traverse(node) {\n switch (node.kind) {\n case 254 /* ReturnStatement */:\n return visitor(node);\n case 270 /* CaseBlock */:\n case 242 /* Block */:\n case 246 /* IfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 255 /* WithStatement */:\n case 256 /* SwitchStatement */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n case 257 /* LabeledStatement */:\n case 259 /* TryStatement */:\n case 300 /* CatchClause */:\n return forEachChild(node, traverse);\n }\n }\n}\nfunction forEachYieldExpression(body, visitor) {\n return traverse(body);\n function traverse(node) {\n switch (node.kind) {\n case 230 /* YieldExpression */:\n visitor(node);\n const operand = node.expression;\n if (operand) {\n traverse(operand);\n }\n return;\n case 267 /* EnumDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return;\n default:\n if (isFunctionLike(node)) {\n if (node.name && node.name.kind === 168 /* ComputedPropertyName */) {\n traverse(node.name.expression);\n return;\n }\n } else if (!isPartOfTypeNode(node)) {\n forEachChild(node, traverse);\n }\n }\n }\n}\nfunction getRestParameterElementType(node) {\n if (node && node.kind === 189 /* ArrayType */) {\n return node.elementType;\n } else if (node && node.kind === 184 /* TypeReference */) {\n return singleOrUndefined(node.typeArguments);\n } else {\n return void 0;\n }\n}\nfunction getMembersOfDeclaration(node) {\n switch (node.kind) {\n case 265 /* InterfaceDeclaration */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 188 /* TypeLiteral */:\n return node.members;\n case 211 /* ObjectLiteralExpression */:\n return node.properties;\n }\n}\nfunction isVariableLike(node) {\n if (node) {\n switch (node.kind) {\n case 209 /* BindingElement */:\n case 307 /* EnumMember */:\n case 170 /* Parameter */:\n case 304 /* PropertyAssignment */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 305 /* ShorthandPropertyAssignment */:\n case 261 /* VariableDeclaration */:\n return true;\n }\n }\n return false;\n}\nfunction isVariableDeclarationInVariableStatement(node) {\n return node.parent.kind === 262 /* VariableDeclarationList */ && node.parent.parent.kind === 244 /* VariableStatement */;\n}\nfunction isCommonJsExportedExpression(node) {\n if (!isInJSFile(node)) return false;\n return isObjectLiteralExpression(node.parent) && isBinaryExpression(node.parent.parent) && getAssignmentDeclarationKind(node.parent.parent) === 2 /* ModuleExports */ || isCommonJsExportPropertyAssignment(node.parent);\n}\nfunction isCommonJsExportPropertyAssignment(node) {\n if (!isInJSFile(node)) return false;\n return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 1 /* ExportsProperty */;\n}\nfunction isValidESSymbolDeclaration(node) {\n return (isVariableDeclaration(node) ? isVarConst(node) && isIdentifier(node.name) && isVariableDeclarationInVariableStatement(node) : isPropertyDeclaration(node) ? hasEffectiveReadonlyModifier(node) && hasStaticModifier(node) : isPropertySignature(node) && hasEffectiveReadonlyModifier(node)) || isCommonJsExportPropertyAssignment(node);\n}\nfunction introducesArgumentsExoticObject(node) {\n switch (node.kind) {\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return true;\n }\n return false;\n}\nfunction unwrapInnermostStatementOfLabel(node, beforeUnwrapLabelCallback) {\n while (true) {\n if (beforeUnwrapLabelCallback) {\n beforeUnwrapLabelCallback(node);\n }\n if (node.statement.kind !== 257 /* LabeledStatement */) {\n return node.statement;\n }\n node = node.statement;\n }\n}\nfunction isFunctionBlock(node) {\n return node && node.kind === 242 /* Block */ && isFunctionLike(node.parent);\n}\nfunction isObjectLiteralMethod(node) {\n return node && node.kind === 175 /* MethodDeclaration */ && node.parent.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isObjectLiteralOrClassExpressionMethodOrAccessor(node) {\n return (node.kind === 175 /* MethodDeclaration */ || node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */) && (node.parent.kind === 211 /* ObjectLiteralExpression */ || node.parent.kind === 232 /* ClassExpression */);\n}\nfunction isIdentifierTypePredicate(predicate) {\n return predicate && predicate.kind === 1 /* Identifier */;\n}\nfunction isThisTypePredicate(predicate) {\n return predicate && predicate.kind === 0 /* This */;\n}\nfunction forEachPropertyAssignment(objectLiteral, key, callback, key2) {\n return forEach(objectLiteral == null ? void 0 : objectLiteral.properties, (property) => {\n if (!isPropertyAssignment(property)) return void 0;\n const propName = tryGetTextOfPropertyName(property.name);\n return key === propName || key2 && key2 === propName ? callback(property) : void 0;\n });\n}\nfunction getTsConfigObjectLiteralExpression(tsConfigSourceFile) {\n if (tsConfigSourceFile && tsConfigSourceFile.statements.length) {\n const expression = tsConfigSourceFile.statements[0].expression;\n return tryCast(expression, isObjectLiteralExpression);\n }\n}\nfunction getTsConfigPropArrayElementValue(tsConfigSourceFile, propKey, elementValue) {\n return forEachTsConfigPropArray(tsConfigSourceFile, propKey, (property) => isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, (element) => isStringLiteral(element) && element.text === elementValue) : void 0);\n}\nfunction forEachTsConfigPropArray(tsConfigSourceFile, propKey, callback) {\n return forEachPropertyAssignment(getTsConfigObjectLiteralExpression(tsConfigSourceFile), propKey, callback);\n}\nfunction getContainingFunction(node) {\n return findAncestor(node.parent, isFunctionLike);\n}\nfunction getContainingFunctionDeclaration(node) {\n return findAncestor(node.parent, isFunctionLikeDeclaration);\n}\nfunction getContainingClass(node) {\n return findAncestor(node.parent, isClassLike);\n}\nfunction getContainingClassStaticBlock(node) {\n return findAncestor(node.parent, (n) => {\n if (isClassLike(n) || isFunctionLike(n)) {\n return \"quit\";\n }\n return isClassStaticBlockDeclaration(n);\n });\n}\nfunction getContainingFunctionOrClassStaticBlock(node) {\n return findAncestor(node.parent, isFunctionLikeOrClassStaticBlockDeclaration);\n}\nfunction getContainingClassExcludingClassDecorators(node) {\n const decorator = findAncestor(node.parent, (n) => isClassLike(n) ? \"quit\" : isDecorator(n));\n return decorator && isClassLike(decorator.parent) ? getContainingClass(decorator.parent) : getContainingClass(decorator ?? node);\n}\nfunction getThisContainer(node, includeArrowFunctions, includeClassComputedPropertyName) {\n Debug.assert(node.kind !== 308 /* SourceFile */);\n while (true) {\n node = node.parent;\n if (!node) {\n return Debug.fail();\n }\n switch (node.kind) {\n case 168 /* ComputedPropertyName */:\n if (includeClassComputedPropertyName && isClassLike(node.parent.parent)) {\n return node;\n }\n node = node.parent.parent;\n break;\n case 171 /* Decorator */:\n if (node.parent.kind === 170 /* Parameter */ && isClassElement(node.parent.parent)) {\n node = node.parent.parent;\n } else if (isClassElement(node.parent)) {\n node = node.parent;\n }\n break;\n case 220 /* ArrowFunction */:\n if (!includeArrowFunctions) {\n continue;\n }\n // falls through\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 268 /* ModuleDeclaration */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n case 267 /* EnumDeclaration */:\n case 308 /* SourceFile */:\n return node;\n }\n }\n}\nfunction isThisContainerOrFunctionBlock(node) {\n switch (node.kind) {\n // Arrow functions use the same scope, but may do so in a \"delayed\" manner\n // For example, `const getThis = () => this` may be before a super() call in a derived constructor\n case 220 /* ArrowFunction */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 173 /* PropertyDeclaration */:\n return true;\n case 242 /* Block */:\n switch (node.parent.kind) {\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return true;\n default:\n return false;\n }\n default:\n return false;\n }\n}\nfunction isInTopLevelContext(node) {\n if (isIdentifier(node) && (isClassDeclaration(node.parent) || isFunctionDeclaration(node.parent)) && node.parent.name === node) {\n node = node.parent;\n }\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n true,\n /*includeClassComputedPropertyName*/\n false\n );\n return isSourceFile(container);\n}\nfunction getNewTargetContainer(node) {\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (container) {\n switch (container.kind) {\n case 177 /* Constructor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return container;\n }\n }\n return void 0;\n}\nfunction getSuperContainer(node, stopOnFunctions) {\n while (true) {\n node = node.parent;\n if (!node) {\n return void 0;\n }\n switch (node.kind) {\n case 168 /* ComputedPropertyName */:\n node = node.parent;\n break;\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n if (!stopOnFunctions) {\n continue;\n }\n // falls through\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return node;\n case 171 /* Decorator */:\n if (node.parent.kind === 170 /* Parameter */ && isClassElement(node.parent.parent)) {\n node = node.parent.parent;\n } else if (isClassElement(node.parent)) {\n node = node.parent;\n }\n break;\n }\n }\n}\nfunction getImmediatelyInvokedFunctionExpression(func) {\n if (func.kind === 219 /* FunctionExpression */ || func.kind === 220 /* ArrowFunction */) {\n let prev = func;\n let parent2 = func.parent;\n while (parent2.kind === 218 /* ParenthesizedExpression */) {\n prev = parent2;\n parent2 = parent2.parent;\n }\n if (parent2.kind === 214 /* CallExpression */ && parent2.expression === prev) {\n return parent2;\n }\n }\n}\nfunction isSuperProperty(node) {\n const kind = node.kind;\n return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && node.expression.kind === 108 /* SuperKeyword */;\n}\nfunction isThisProperty(node) {\n const kind = node.kind;\n return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && node.expression.kind === 110 /* ThisKeyword */;\n}\nfunction isThisInitializedDeclaration(node) {\n var _a;\n return !!node && isVariableDeclaration(node) && ((_a = node.initializer) == null ? void 0 : _a.kind) === 110 /* ThisKeyword */;\n}\nfunction isThisInitializedObjectBindingExpression(node) {\n return !!node && (isShorthandPropertyAssignment(node) || isPropertyAssignment(node)) && isBinaryExpression(node.parent.parent) && node.parent.parent.operatorToken.kind === 64 /* EqualsToken */ && node.parent.parent.right.kind === 110 /* ThisKeyword */;\n}\nfunction getEntityNameFromTypeNode(node) {\n switch (node.kind) {\n case 184 /* TypeReference */:\n return node.typeName;\n case 234 /* ExpressionWithTypeArguments */:\n return isEntityNameExpression(node.expression) ? node.expression : void 0;\n // TODO(rbuckton): These aren't valid TypeNodes, but we treat them as such because of `isPartOfTypeNode`, which returns `true` for things that aren't `TypeNode`s.\n case 80 /* Identifier */:\n case 167 /* QualifiedName */:\n return node;\n }\n return void 0;\n}\nfunction getInvokedExpression(node) {\n switch (node.kind) {\n case 216 /* TaggedTemplateExpression */:\n return node.tag;\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n return node.tagName;\n case 227 /* BinaryExpression */:\n return node.right;\n case 290 /* JsxOpeningFragment */:\n return node;\n default:\n return node.expression;\n }\n}\nfunction nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent) {\n if (useLegacyDecorators && isNamedDeclaration(node) && isPrivateIdentifier(node.name)) {\n return false;\n }\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n return true;\n case 232 /* ClassExpression */:\n return !useLegacyDecorators;\n case 173 /* PropertyDeclaration */:\n return parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2) && !hasAbstractModifier(node) && !hasAmbientModifier(node));\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n return node.body !== void 0 && parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2));\n case 170 /* Parameter */:\n if (!useLegacyDecorators) return false;\n return parent2 !== void 0 && parent2.body !== void 0 && (parent2.kind === 177 /* Constructor */ || parent2.kind === 175 /* MethodDeclaration */ || parent2.kind === 179 /* SetAccessor */) && getThisParameter(parent2) !== node && grandparent !== void 0 && grandparent.kind === 264 /* ClassDeclaration */;\n }\n return false;\n}\nfunction nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) {\n return hasDecorators(node) && nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent);\n}\nfunction nodeOrChildIsDecorated(useLegacyDecorators, node, parent2, grandparent) {\n return nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) || childIsDecorated(useLegacyDecorators, node, parent2);\n}\nfunction childIsDecorated(useLegacyDecorators, node, parent2) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n return some(node.members, (m) => nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2));\n case 232 /* ClassExpression */:\n return !useLegacyDecorators && some(node.members, (m) => nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2));\n case 175 /* MethodDeclaration */:\n case 179 /* SetAccessor */:\n case 177 /* Constructor */:\n return some(node.parameters, (p) => nodeIsDecorated(useLegacyDecorators, p, node, parent2));\n default:\n return false;\n }\n}\nfunction classOrConstructorParameterIsDecorated(useLegacyDecorators, node) {\n if (nodeIsDecorated(useLegacyDecorators, node)) return true;\n const constructor = getFirstConstructorWithBody(node);\n return !!constructor && childIsDecorated(useLegacyDecorators, constructor, node);\n}\nfunction classElementOrClassElementParameterIsDecorated(useLegacyDecorators, node, parent2) {\n let parameters;\n if (isAccessor(node)) {\n const { firstAccessor, secondAccessor, setAccessor } = getAllAccessorDeclarations(parent2.members, node);\n const firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0;\n if (!firstAccessorWithDecorators || node !== firstAccessorWithDecorators) {\n return false;\n }\n parameters = setAccessor == null ? void 0 : setAccessor.parameters;\n } else if (isMethodDeclaration(node)) {\n parameters = node.parameters;\n }\n if (nodeIsDecorated(useLegacyDecorators, node, parent2)) {\n return true;\n }\n if (parameters) {\n for (const parameter of parameters) {\n if (parameterIsThisKeyword(parameter)) continue;\n if (nodeIsDecorated(useLegacyDecorators, parameter, node, parent2)) return true;\n }\n }\n return false;\n}\nfunction isEmptyStringLiteral(node) {\n if (node.textSourceNode) {\n switch (node.textSourceNode.kind) {\n case 11 /* StringLiteral */:\n return isEmptyStringLiteral(node.textSourceNode);\n case 15 /* NoSubstitutionTemplateLiteral */:\n return node.text === \"\";\n }\n return false;\n }\n return node.text === \"\";\n}\nfunction isJSXTagName(node) {\n const { parent: parent2 } = node;\n if (parent2.kind === 287 /* JsxOpeningElement */ || parent2.kind === 286 /* JsxSelfClosingElement */ || parent2.kind === 288 /* JsxClosingElement */) {\n return parent2.tagName === node;\n }\n return false;\n}\nfunction isExpressionNode(node) {\n switch (node.kind) {\n case 108 /* SuperKeyword */:\n case 106 /* NullKeyword */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 14 /* RegularExpressionLiteral */:\n case 210 /* ArrayLiteralExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 216 /* TaggedTemplateExpression */:\n case 235 /* AsExpression */:\n case 217 /* TypeAssertionExpression */:\n case 239 /* SatisfiesExpression */:\n case 236 /* NonNullExpression */:\n case 218 /* ParenthesizedExpression */:\n case 219 /* FunctionExpression */:\n case 232 /* ClassExpression */:\n case 220 /* ArrowFunction */:\n case 223 /* VoidExpression */:\n case 221 /* DeleteExpression */:\n case 222 /* TypeOfExpression */:\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n case 227 /* BinaryExpression */:\n case 228 /* ConditionalExpression */:\n case 231 /* SpreadElement */:\n case 229 /* TemplateExpression */:\n case 233 /* OmittedExpression */:\n case 285 /* JsxElement */:\n case 286 /* JsxSelfClosingElement */:\n case 289 /* JsxFragment */:\n case 230 /* YieldExpression */:\n case 224 /* AwaitExpression */:\n return true;\n case 237 /* MetaProperty */:\n return !isImportCall(node.parent) || node.parent.expression !== node;\n case 234 /* ExpressionWithTypeArguments */:\n return !isHeritageClause(node.parent) && !isJSDocAugmentsTag(node.parent);\n case 167 /* QualifiedName */:\n while (node.parent.kind === 167 /* QualifiedName */) {\n node = node.parent;\n }\n return node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node);\n case 312 /* JSDocMemberName */:\n while (isJSDocMemberName(node.parent)) {\n node = node.parent;\n }\n return node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node);\n case 81 /* PrivateIdentifier */:\n return isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 103 /* InKeyword */;\n case 80 /* Identifier */:\n if (node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node)) {\n return true;\n }\n // falls through\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 110 /* ThisKeyword */:\n return isInExpressionContext(node);\n default:\n return false;\n }\n}\nfunction isInExpressionContext(node) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 307 /* EnumMember */:\n case 304 /* PropertyAssignment */:\n case 209 /* BindingElement */:\n return parent2.initializer === node;\n case 245 /* ExpressionStatement */:\n case 246 /* IfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 254 /* ReturnStatement */:\n case 255 /* WithStatement */:\n case 256 /* SwitchStatement */:\n case 297 /* CaseClause */:\n case 258 /* ThrowStatement */:\n return parent2.expression === node;\n case 249 /* ForStatement */:\n const forStatement = parent2;\n return forStatement.initializer === node && forStatement.initializer.kind !== 262 /* VariableDeclarationList */ || forStatement.condition === node || forStatement.incrementor === node;\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n const forInOrOfStatement = parent2;\n return forInOrOfStatement.initializer === node && forInOrOfStatement.initializer.kind !== 262 /* VariableDeclarationList */ || forInOrOfStatement.expression === node;\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n return node === parent2.expression;\n case 240 /* TemplateSpan */:\n return node === parent2.expression;\n case 168 /* ComputedPropertyName */:\n return node === parent2.expression;\n case 171 /* Decorator */:\n case 295 /* JsxExpression */:\n case 294 /* JsxSpreadAttribute */:\n case 306 /* SpreadAssignment */:\n return true;\n case 234 /* ExpressionWithTypeArguments */:\n return parent2.expression === node && !isPartOfTypeNode(parent2);\n case 305 /* ShorthandPropertyAssignment */:\n return parent2.objectAssignmentInitializer === node;\n case 239 /* SatisfiesExpression */:\n return node === parent2.expression;\n default:\n return isExpressionNode(parent2);\n }\n}\nfunction isPartOfTypeQuery(node) {\n while (node.kind === 167 /* QualifiedName */ || node.kind === 80 /* Identifier */) {\n node = node.parent;\n }\n return node.kind === 187 /* TypeQuery */;\n}\nfunction isNamespaceReexportDeclaration(node) {\n return isNamespaceExport(node) && !!node.parent.moduleSpecifier;\n}\nfunction isExternalModuleImportEqualsDeclaration(node) {\n return node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 284 /* ExternalModuleReference */;\n}\nfunction getExternalModuleImportEqualsDeclarationExpression(node) {\n Debug.assert(isExternalModuleImportEqualsDeclaration(node));\n return node.moduleReference.expression;\n}\nfunction getExternalModuleRequireArgument(node) {\n return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];\n}\nfunction isInternalModuleImportEqualsDeclaration(node) {\n return node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind !== 284 /* ExternalModuleReference */;\n}\nfunction isFullSourceFile(sourceFile) {\n return (sourceFile == null ? void 0 : sourceFile.kind) === 308 /* SourceFile */;\n}\nfunction isSourceFileJS(file) {\n return isInJSFile(file);\n}\nfunction isInJSFile(node) {\n return !!node && !!(node.flags & 524288 /* JavaScriptFile */);\n}\nfunction isInJsonFile(node) {\n return !!node && !!(node.flags & 134217728 /* JsonFile */);\n}\nfunction isSourceFileNotJson(file) {\n return !isJsonSourceFile(file);\n}\nfunction isInJSDoc(node) {\n return !!node && !!(node.flags & 16777216 /* JSDoc */);\n}\nfunction isJSDocIndexSignature(node) {\n return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"Object\" && node.typeArguments && node.typeArguments.length === 2 && (node.typeArguments[0].kind === 154 /* StringKeyword */ || node.typeArguments[0].kind === 150 /* NumberKeyword */);\n}\nfunction isRequireCall(callExpression, requireStringLiteralLikeArgument) {\n if (callExpression.kind !== 214 /* CallExpression */) {\n return false;\n }\n const { expression, arguments: args } = callExpression;\n if (expression.kind !== 80 /* Identifier */ || expression.escapedText !== \"require\") {\n return false;\n }\n if (args.length !== 1) {\n return false;\n }\n const arg = args[0];\n return !requireStringLiteralLikeArgument || isStringLiteralLike(arg);\n}\nfunction isVariableDeclarationInitializedToRequire(node) {\n return isVariableDeclarationInitializedWithRequireHelper(\n node,\n /*allowAccessedRequire*/\n false\n );\n}\nfunction isVariableDeclarationInitializedToBareOrAccessedRequire(node) {\n return isVariableDeclarationInitializedWithRequireHelper(\n node,\n /*allowAccessedRequire*/\n true\n );\n}\nfunction isBindingElementOfBareOrAccessedRequire(node) {\n return isBindingElement(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);\n}\nfunction isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {\n return isVariableDeclaration(node) && !!node.initializer && isRequireCall(\n allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer,\n /*requireStringLiteralLikeArgument*/\n true\n );\n}\nfunction isRequireVariableStatement(node) {\n return isVariableStatement(node) && node.declarationList.declarations.length > 0 && every(node.declarationList.declarations, (decl) => isVariableDeclarationInitializedToRequire(decl));\n}\nfunction isSingleOrDoubleQuote(charCode) {\n return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */;\n}\nfunction isStringDoubleQuoted(str, sourceFile) {\n return getSourceTextOfNodeFromSourceFile(sourceFile, str).charCodeAt(0) === 34 /* doubleQuote */;\n}\nfunction isAssignmentDeclaration(decl) {\n return isBinaryExpression(decl) || isAccessExpression(decl) || isIdentifier(decl) || isCallExpression(decl);\n}\nfunction getEffectiveInitializer(node) {\n if (isInJSFile(node) && node.initializer && isBinaryExpression(node.initializer) && (node.initializer.operatorToken.kind === 57 /* BarBarToken */ || node.initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && node.name && isEntityNameExpression(node.name) && isSameEntityName(node.name, node.initializer.left)) {\n return node.initializer.right;\n }\n return node.initializer;\n}\nfunction getDeclaredExpandoInitializer(node) {\n const init = getEffectiveInitializer(node);\n return init && getExpandoInitializer(init, isPrototypeAccess(node.name));\n}\nfunction hasExpandoValueProperty(node, isPrototypeAssignment) {\n return forEach(node.properties, (p) => isPropertyAssignment(p) && isIdentifier(p.name) && p.name.escapedText === \"value\" && p.initializer && getExpandoInitializer(p.initializer, isPrototypeAssignment));\n}\nfunction getAssignedExpandoInitializer(node) {\n if (node && node.parent && isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */) {\n const isPrototypeAssignment = isPrototypeAccess(node.parent.left);\n return getExpandoInitializer(node.parent.right, isPrototypeAssignment) || getDefaultedExpandoInitializer(node.parent.left, node.parent.right, isPrototypeAssignment);\n }\n if (node && isCallExpression(node) && isBindableObjectDefinePropertyCall(node)) {\n const result = hasExpandoValueProperty(node.arguments[2], node.arguments[1].text === \"prototype\");\n if (result) {\n return result;\n }\n }\n}\nfunction getExpandoInitializer(initializer, isPrototypeAssignment) {\n if (isCallExpression(initializer)) {\n const e = skipParentheses(initializer.expression);\n return e.kind === 219 /* FunctionExpression */ || e.kind === 220 /* ArrowFunction */ ? initializer : void 0;\n }\n if (initializer.kind === 219 /* FunctionExpression */ || initializer.kind === 232 /* ClassExpression */ || initializer.kind === 220 /* ArrowFunction */) {\n return initializer;\n }\n if (isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAssignment)) {\n return initializer;\n }\n}\nfunction getDefaultedExpandoInitializer(name, initializer, isPrototypeAssignment) {\n const e = isBinaryExpression(initializer) && (initializer.operatorToken.kind === 57 /* BarBarToken */ || initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && getExpandoInitializer(initializer.right, isPrototypeAssignment);\n if (e && isSameEntityName(name, initializer.left)) {\n return e;\n }\n}\nfunction isDefaultedExpandoInitializer(node) {\n const name = isVariableDeclaration(node.parent) ? node.parent.name : isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */ ? node.parent.left : void 0;\n return name && getExpandoInitializer(node.right, isPrototypeAccess(name)) && isEntityNameExpression(name) && isSameEntityName(name, node.left);\n}\nfunction getNameOfExpando(node) {\n if (isBinaryExpression(node.parent)) {\n const parent2 = (node.parent.operatorToken.kind === 57 /* BarBarToken */ || node.parent.operatorToken.kind === 61 /* QuestionQuestionToken */) && isBinaryExpression(node.parent.parent) ? node.parent.parent : node.parent;\n if (parent2.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(parent2.left)) {\n return parent2.left;\n }\n } else if (isVariableDeclaration(node.parent)) {\n return node.parent.name;\n }\n}\nfunction isSameEntityName(name, initializer) {\n if (isPropertyNameLiteral(name) && isPropertyNameLiteral(initializer)) {\n return getTextOfIdentifierOrLiteral(name) === getTextOfIdentifierOrLiteral(initializer);\n }\n if (isMemberName(name) && isLiteralLikeAccess(initializer) && (initializer.expression.kind === 110 /* ThisKeyword */ || isIdentifier(initializer.expression) && (initializer.expression.escapedText === \"window\" || initializer.expression.escapedText === \"self\" || initializer.expression.escapedText === \"global\"))) {\n return isSameEntityName(name, getNameOrArgument(initializer));\n }\n if (isLiteralLikeAccess(name) && isLiteralLikeAccess(initializer)) {\n return getElementOrPropertyAccessName(name) === getElementOrPropertyAccessName(initializer) && isSameEntityName(name.expression, initializer.expression);\n }\n return false;\n}\nfunction getRightMostAssignedExpression(node) {\n while (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n )) {\n node = node.right;\n }\n return node;\n}\nfunction isExportsIdentifier(node) {\n return isIdentifier(node) && node.escapedText === \"exports\";\n}\nfunction isModuleIdentifier(node) {\n return isIdentifier(node) && node.escapedText === \"module\";\n}\nfunction isModuleExportsAccessExpression(node) {\n return (isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node)) && isModuleIdentifier(node.expression) && getElementOrPropertyAccessName(node) === \"exports\";\n}\nfunction getAssignmentDeclarationKind(expr) {\n const special = getAssignmentDeclarationKindWorker(expr);\n return special === 5 /* Property */ || isInJSFile(expr) ? special : 0 /* None */;\n}\nfunction isBindableObjectDefinePropertyCall(expr) {\n return length(expr.arguments) === 3 && isPropertyAccessExpression(expr.expression) && isIdentifier(expr.expression.expression) && idText(expr.expression.expression) === \"Object\" && idText(expr.expression.name) === \"defineProperty\" && isStringOrNumericLiteralLike(expr.arguments[1]) && isBindableStaticNameExpression(\n expr.arguments[0],\n /*excludeThisKeyword*/\n true\n );\n}\nfunction isLiteralLikeAccess(node) {\n return isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node);\n}\nfunction isLiteralLikeElementAccess(node) {\n return isElementAccessExpression(node) && isStringOrNumericLiteralLike(node.argumentExpression);\n}\nfunction isBindableStaticAccessExpression(node, excludeThisKeyword) {\n return isPropertyAccessExpression(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isIdentifier(node.name) && isBindableStaticNameExpression(\n node.expression,\n /*excludeThisKeyword*/\n true\n )) || isBindableStaticElementAccessExpression(node, excludeThisKeyword);\n}\nfunction isBindableStaticElementAccessExpression(node, excludeThisKeyword) {\n return isLiteralLikeElementAccess(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isEntityNameExpression(node.expression) || isBindableStaticAccessExpression(\n node.expression,\n /*excludeThisKeyword*/\n true\n ));\n}\nfunction isBindableStaticNameExpression(node, excludeThisKeyword) {\n return isEntityNameExpression(node) || isBindableStaticAccessExpression(node, excludeThisKeyword);\n}\nfunction getNameOrArgument(expr) {\n if (isPropertyAccessExpression(expr)) {\n return expr.name;\n }\n return expr.argumentExpression;\n}\nfunction getAssignmentDeclarationKindWorker(expr) {\n if (isCallExpression(expr)) {\n if (!isBindableObjectDefinePropertyCall(expr)) {\n return 0 /* None */;\n }\n const entityName = expr.arguments[0];\n if (isExportsIdentifier(entityName) || isModuleExportsAccessExpression(entityName)) {\n return 8 /* ObjectDefinePropertyExports */;\n }\n if (isBindableStaticAccessExpression(entityName) && getElementOrPropertyAccessName(entityName) === \"prototype\") {\n return 9 /* ObjectDefinePrototypeProperty */;\n }\n return 7 /* ObjectDefinePropertyValue */;\n }\n if (expr.operatorToken.kind !== 64 /* EqualsToken */ || !isAccessExpression(expr.left) || isVoidZero(getRightMostAssignedExpression(expr))) {\n return 0 /* None */;\n }\n if (isBindableStaticNameExpression(\n expr.left.expression,\n /*excludeThisKeyword*/\n true\n ) && getElementOrPropertyAccessName(expr.left) === \"prototype\" && isObjectLiteralExpression(getInitializerOfBinaryExpression(expr))) {\n return 6 /* Prototype */;\n }\n return getAssignmentDeclarationPropertyAccessKind(expr.left);\n}\nfunction isVoidZero(node) {\n return isVoidExpression(node) && isNumericLiteral(node.expression) && node.expression.text === \"0\";\n}\nfunction getElementOrPropertyAccessArgumentExpressionOrName(node) {\n if (isPropertyAccessExpression(node)) {\n return node.name;\n }\n const arg = skipParentheses(node.argumentExpression);\n if (isNumericLiteral(arg) || isStringLiteralLike(arg)) {\n return arg;\n }\n return node;\n}\nfunction getElementOrPropertyAccessName(node) {\n const name = getElementOrPropertyAccessArgumentExpressionOrName(node);\n if (name) {\n if (isIdentifier(name)) {\n return name.escapedText;\n }\n if (isStringLiteralLike(name) || isNumericLiteral(name)) {\n return escapeLeadingUnderscores(name.text);\n }\n }\n return void 0;\n}\nfunction getAssignmentDeclarationPropertyAccessKind(lhs) {\n if (lhs.expression.kind === 110 /* ThisKeyword */) {\n return 4 /* ThisProperty */;\n } else if (isModuleExportsAccessExpression(lhs)) {\n return 2 /* ModuleExports */;\n } else if (isBindableStaticNameExpression(\n lhs.expression,\n /*excludeThisKeyword*/\n true\n )) {\n if (isPrototypeAccess(lhs.expression)) {\n return 3 /* PrototypeProperty */;\n }\n let nextToLast = lhs;\n while (!isIdentifier(nextToLast.expression)) {\n nextToLast = nextToLast.expression;\n }\n const id = nextToLast.expression;\n if ((id.escapedText === \"exports\" || id.escapedText === \"module\" && getElementOrPropertyAccessName(nextToLast) === \"exports\") && // ExportsProperty does not support binding with computed names\n isBindableStaticAccessExpression(lhs)) {\n return 1 /* ExportsProperty */;\n }\n if (isBindableStaticNameExpression(\n lhs,\n /*excludeThisKeyword*/\n true\n ) || isElementAccessExpression(lhs) && isDynamicName(lhs)) {\n return 5 /* Property */;\n }\n }\n return 0 /* None */;\n}\nfunction getInitializerOfBinaryExpression(expr) {\n while (isBinaryExpression(expr.right)) {\n expr = expr.right;\n }\n return expr.right;\n}\nfunction isPrototypePropertyAssignment(node) {\n return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 3 /* PrototypeProperty */;\n}\nfunction isSpecialPropertyDeclaration(expr) {\n return isInJSFile(expr) && expr.parent && expr.parent.kind === 245 /* ExpressionStatement */ && (!isElementAccessExpression(expr) || isLiteralLikeElementAccess(expr)) && !!getJSDocTypeTag(expr.parent);\n}\nfunction setValueDeclaration(symbol, node) {\n const { valueDeclaration } = symbol;\n if (!valueDeclaration || !(node.flags & 33554432 /* Ambient */ && !isInJSFile(node) && !(valueDeclaration.flags & 33554432 /* Ambient */)) && (isAssignmentDeclaration(valueDeclaration) && !isAssignmentDeclaration(node)) || valueDeclaration.kind !== node.kind && isEffectiveModuleDeclaration(valueDeclaration)) {\n symbol.valueDeclaration = node;\n }\n}\nfunction isFunctionSymbol(symbol) {\n if (!symbol || !symbol.valueDeclaration) {\n return false;\n }\n const decl = symbol.valueDeclaration;\n return decl.kind === 263 /* FunctionDeclaration */ || isVariableDeclaration(decl) && decl.initializer && isFunctionLike(decl.initializer);\n}\nfunction canHaveModuleSpecifier(node) {\n switch (node == null ? void 0 : node.kind) {\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */:\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 274 /* ImportClause */:\n case 281 /* NamespaceExport */:\n case 275 /* NamespaceImport */:\n case 282 /* ExportSpecifier */:\n case 277 /* ImportSpecifier */:\n case 206 /* ImportType */:\n return true;\n }\n return false;\n}\nfunction tryGetModuleSpecifierFromDeclaration(node) {\n var _a, _b;\n switch (node.kind) {\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */:\n return (_a = findAncestor(node.initializer, (node2) => isRequireCall(\n node2,\n /*requireStringLiteralLikeArgument*/\n true\n ))) == null ? void 0 : _a.arguments[0];\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 352 /* JSDocImportTag */:\n return tryCast(node.moduleSpecifier, isStringLiteralLike);\n case 272 /* ImportEqualsDeclaration */:\n return tryCast((_b = tryCast(node.moduleReference, isExternalModuleReference)) == null ? void 0 : _b.expression, isStringLiteralLike);\n case 274 /* ImportClause */:\n case 281 /* NamespaceExport */:\n return tryCast(node.parent.moduleSpecifier, isStringLiteralLike);\n case 275 /* NamespaceImport */:\n case 282 /* ExportSpecifier */:\n return tryCast(node.parent.parent.moduleSpecifier, isStringLiteralLike);\n case 277 /* ImportSpecifier */:\n return tryCast(node.parent.parent.parent.moduleSpecifier, isStringLiteralLike);\n case 206 /* ImportType */:\n return isLiteralImportTypeNode(node) ? node.argument.literal : void 0;\n default:\n Debug.assertNever(node);\n }\n}\nfunction importFromModuleSpecifier(node) {\n return tryGetImportFromModuleSpecifier(node) || Debug.failBadSyntaxKind(node.parent);\n}\nfunction tryGetImportFromModuleSpecifier(node) {\n switch (node.parent.kind) {\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 352 /* JSDocImportTag */:\n return node.parent;\n case 284 /* ExternalModuleReference */:\n return node.parent.parent;\n case 214 /* CallExpression */:\n return isImportCall(node.parent) || isRequireCall(\n node.parent,\n /*requireStringLiteralLikeArgument*/\n false\n ) ? node.parent : void 0;\n case 202 /* LiteralType */:\n if (!isStringLiteral(node)) {\n break;\n }\n return tryCast(node.parent.parent, isImportTypeNode);\n default:\n return void 0;\n }\n}\nfunction shouldRewriteModuleSpecifier(specifier, compilerOptions) {\n return !!compilerOptions.rewriteRelativeImportExtensions && pathIsRelative(specifier) && !isDeclarationFileName(specifier) && hasTSFileExtension(specifier);\n}\nfunction getExternalModuleName(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 352 /* JSDocImportTag */:\n return node.moduleSpecifier;\n case 272 /* ImportEqualsDeclaration */:\n return node.moduleReference.kind === 284 /* ExternalModuleReference */ ? node.moduleReference.expression : void 0;\n case 206 /* ImportType */:\n return isLiteralImportTypeNode(node) ? node.argument.literal : void 0;\n case 214 /* CallExpression */:\n return node.arguments[0];\n case 268 /* ModuleDeclaration */:\n return node.name.kind === 11 /* StringLiteral */ ? node.name : void 0;\n default:\n return Debug.assertNever(node);\n }\n}\nfunction getNamespaceDeclarationNode(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return node.importClause && tryCast(node.importClause.namedBindings, isNamespaceImport);\n case 272 /* ImportEqualsDeclaration */:\n return node;\n case 279 /* ExportDeclaration */:\n return node.exportClause && tryCast(node.exportClause, isNamespaceExport);\n default:\n return Debug.assertNever(node);\n }\n}\nfunction isDefaultImport(node) {\n return (node.kind === 273 /* ImportDeclaration */ || node.kind === 352 /* JSDocImportTag */) && !!node.importClause && !!node.importClause.name;\n}\nfunction forEachImportClauseDeclaration(node, action) {\n if (node.name) {\n const result = action(node);\n if (result) return result;\n }\n if (node.namedBindings) {\n const result = isNamespaceImport(node.namedBindings) ? action(node.namedBindings) : forEach(node.namedBindings.elements, action);\n if (result) return result;\n }\n}\nfunction hasQuestionToken(node) {\n switch (node.kind) {\n case 170 /* Parameter */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 305 /* ShorthandPropertyAssignment */:\n case 304 /* PropertyAssignment */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return node.questionToken !== void 0;\n }\n return false;\n}\nfunction isJSDocConstructSignature(node) {\n const param = isJSDocFunctionType(node) ? firstOrUndefined(node.parameters) : void 0;\n const name = tryCast(param && param.name, isIdentifier);\n return !!name && name.escapedText === \"new\";\n}\nfunction isJSDocTypeAlias(node) {\n return node.kind === 347 /* JSDocTypedefTag */ || node.kind === 339 /* JSDocCallbackTag */ || node.kind === 341 /* JSDocEnumTag */;\n}\nfunction isTypeAlias(node) {\n return isJSDocTypeAlias(node) || isTypeAliasDeclaration(node);\n}\nfunction getSourceOfAssignment(node) {\n return isExpressionStatement(node) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 64 /* EqualsToken */ ? getRightMostAssignedExpression(node.expression) : void 0;\n}\nfunction getSourceOfDefaultedAssignment(node) {\n return isExpressionStatement(node) && isBinaryExpression(node.expression) && getAssignmentDeclarationKind(node.expression) !== 0 /* None */ && isBinaryExpression(node.expression.right) && (node.expression.right.operatorToken.kind === 57 /* BarBarToken */ || node.expression.right.operatorToken.kind === 61 /* QuestionQuestionToken */) ? node.expression.right.right : void 0;\n}\nfunction getSingleInitializerOfVariableStatementOrPropertyDeclaration(node) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n const v = getSingleVariableOfVariableStatement(node);\n return v && v.initializer;\n case 173 /* PropertyDeclaration */:\n return node.initializer;\n case 304 /* PropertyAssignment */:\n return node.initializer;\n }\n}\nfunction getSingleVariableOfVariableStatement(node) {\n return isVariableStatement(node) ? firstOrUndefined(node.declarationList.declarations) : void 0;\n}\nfunction getNestedModuleDeclaration(node) {\n return isModuleDeclaration(node) && node.body && node.body.kind === 268 /* ModuleDeclaration */ ? node.body : void 0;\n}\nfunction canHaveFlowNode(node) {\n if (node.kind >= 244 /* FirstStatement */ && node.kind <= 260 /* LastStatement */) {\n return true;\n }\n switch (node.kind) {\n case 80 /* Identifier */:\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 167 /* QualifiedName */:\n case 237 /* MetaProperty */:\n case 213 /* ElementAccessExpression */:\n case 212 /* PropertyAccessExpression */:\n case 209 /* BindingElement */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return true;\n default:\n return false;\n }\n}\nfunction canHaveJSDoc(node) {\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n case 227 /* BinaryExpression */:\n case 242 /* Block */:\n case 253 /* BreakStatement */:\n case 180 /* CallSignature */:\n case 297 /* CaseClause */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 177 /* Constructor */:\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n case 252 /* ContinueStatement */:\n case 260 /* DebuggerStatement */:\n case 247 /* DoStatement */:\n case 213 /* ElementAccessExpression */:\n case 243 /* EmptyStatement */:\n case 1 /* EndOfFileToken */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 278 /* ExportAssignment */:\n case 279 /* ExportDeclaration */:\n case 282 /* ExportSpecifier */:\n case 245 /* ExpressionStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 249 /* ForStatement */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 185 /* FunctionType */:\n case 178 /* GetAccessor */:\n case 80 /* Identifier */:\n case 246 /* IfStatement */:\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 182 /* IndexSignature */:\n case 265 /* InterfaceDeclaration */:\n case 318 /* JSDocFunctionType */:\n case 324 /* JSDocSignature */:\n case 257 /* LabeledStatement */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 268 /* ModuleDeclaration */:\n case 203 /* NamedTupleMember */:\n case 271 /* NamespaceExportDeclaration */:\n case 211 /* ObjectLiteralExpression */:\n case 170 /* Parameter */:\n case 218 /* ParenthesizedExpression */:\n case 212 /* PropertyAccessExpression */:\n case 304 /* PropertyAssignment */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 254 /* ReturnStatement */:\n case 241 /* SemicolonClassElement */:\n case 179 /* SetAccessor */:\n case 305 /* ShorthandPropertyAssignment */:\n case 306 /* SpreadAssignment */:\n case 256 /* SwitchStatement */:\n case 258 /* ThrowStatement */:\n case 259 /* TryStatement */:\n case 266 /* TypeAliasDeclaration */:\n case 169 /* TypeParameter */:\n case 261 /* VariableDeclaration */:\n case 244 /* VariableStatement */:\n case 248 /* WhileStatement */:\n case 255 /* WithStatement */:\n return true;\n default:\n return false;\n }\n}\nfunction getJSDocCommentsAndTags(hostNode, noCache) {\n let result;\n if (isVariableLike(hostNode) && hasInitializer(hostNode) && hasJSDocNodes(hostNode.initializer)) {\n result = addRange(result, filterOwnedJSDocTags(hostNode, hostNode.initializer.jsDoc));\n }\n let node = hostNode;\n while (node && node.parent) {\n if (hasJSDocNodes(node)) {\n result = addRange(result, filterOwnedJSDocTags(hostNode, node.jsDoc));\n }\n if (node.kind === 170 /* Parameter */) {\n result = addRange(result, (noCache ? getJSDocParameterTagsNoCache : getJSDocParameterTags)(node));\n break;\n }\n if (node.kind === 169 /* TypeParameter */) {\n result = addRange(result, (noCache ? getJSDocTypeParameterTagsNoCache : getJSDocTypeParameterTags)(node));\n break;\n }\n node = getNextJSDocCommentLocation(node);\n }\n return result || emptyArray;\n}\nfunction filterOwnedJSDocTags(hostNode, comments) {\n const lastJsDoc = last(comments);\n return flatMap(comments, (jsDoc) => {\n if (jsDoc === lastJsDoc) {\n const ownedTags = filter(jsDoc.tags, (tag) => ownsJSDocTag(hostNode, tag));\n return jsDoc.tags === ownedTags ? [jsDoc] : ownedTags;\n } else {\n return filter(jsDoc.tags, isJSDocOverloadTag);\n }\n });\n}\nfunction ownsJSDocTag(hostNode, tag) {\n return !(isJSDocTypeTag(tag) || isJSDocSatisfiesTag(tag)) || !tag.parent || !isJSDoc(tag.parent) || !isParenthesizedExpression(tag.parent.parent) || tag.parent.parent === hostNode;\n}\nfunction getNextJSDocCommentLocation(node) {\n const parent2 = node.parent;\n if (parent2.kind === 304 /* PropertyAssignment */ || parent2.kind === 278 /* ExportAssignment */ || parent2.kind === 173 /* PropertyDeclaration */ || parent2.kind === 245 /* ExpressionStatement */ && node.kind === 212 /* PropertyAccessExpression */ || parent2.kind === 254 /* ReturnStatement */ || getNestedModuleDeclaration(parent2) || isAssignmentExpression(node)) {\n return parent2;\n } else if (parent2.parent && (getSingleVariableOfVariableStatement(parent2.parent) === node || isAssignmentExpression(parent2))) {\n return parent2.parent;\n } else if (parent2.parent && parent2.parent.parent && (getSingleVariableOfVariableStatement(parent2.parent.parent) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent2.parent.parent) === node || getSourceOfDefaultedAssignment(parent2.parent.parent))) {\n return parent2.parent.parent;\n }\n}\nfunction getParameterSymbolFromJSDoc(node) {\n if (node.symbol) {\n return node.symbol;\n }\n if (!isIdentifier(node.name)) {\n return void 0;\n }\n const name = node.name.escapedText;\n const decl = getHostSignatureFromJSDoc(node);\n if (!decl) {\n return void 0;\n }\n const parameter = find(decl.parameters, (p) => p.name.kind === 80 /* Identifier */ && p.name.escapedText === name);\n return parameter && parameter.symbol;\n}\nfunction getEffectiveContainerForJSDocTemplateTag(node) {\n if (isJSDoc(node.parent) && node.parent.tags) {\n const typeAlias = find(node.parent.tags, isJSDocTypeAlias);\n if (typeAlias) {\n return typeAlias;\n }\n }\n return getHostSignatureFromJSDoc(node);\n}\nfunction getJSDocOverloadTags(node) {\n return getAllJSDocTags(node, isJSDocOverloadTag);\n}\nfunction getHostSignatureFromJSDoc(node) {\n const host = getEffectiveJSDocHost(node);\n if (host) {\n return isPropertySignature(host) && host.type && isFunctionLike(host.type) ? host.type : isFunctionLike(host) ? host : void 0;\n }\n return void 0;\n}\nfunction getEffectiveJSDocHost(node) {\n const host = getJSDocHost(node);\n if (host) {\n return getSourceOfDefaultedAssignment(host) || getSourceOfAssignment(host) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(host) || getSingleVariableOfVariableStatement(host) || getNestedModuleDeclaration(host) || host;\n }\n}\nfunction getJSDocHost(node) {\n const jsDoc = getJSDocRoot(node);\n if (!jsDoc) {\n return void 0;\n }\n const host = jsDoc.parent;\n if (host && host.jsDoc && jsDoc === lastOrUndefined(host.jsDoc)) {\n return host;\n }\n}\nfunction getJSDocRoot(node) {\n return findAncestor(node.parent, isJSDoc);\n}\nfunction getTypeParameterFromJsDoc(node) {\n const name = node.name.escapedText;\n const { typeParameters } = node.parent.parent.parent;\n return typeParameters && find(typeParameters, (p) => p.name.escapedText === name);\n}\nfunction hasTypeArguments(node) {\n return !!node.typeArguments;\n}\nvar AssignmentKind = /* @__PURE__ */ ((AssignmentKind2) => {\n AssignmentKind2[AssignmentKind2[\"None\"] = 0] = \"None\";\n AssignmentKind2[AssignmentKind2[\"Definite\"] = 1] = \"Definite\";\n AssignmentKind2[AssignmentKind2[\"Compound\"] = 2] = \"Compound\";\n return AssignmentKind2;\n})(AssignmentKind || {});\nfunction getAssignmentTarget(node) {\n let parent2 = node.parent;\n while (true) {\n switch (parent2.kind) {\n case 227 /* BinaryExpression */:\n const binaryExpression = parent2;\n const binaryOperator = binaryExpression.operatorToken.kind;\n return isAssignmentOperator(binaryOperator) && binaryExpression.left === node ? binaryExpression : void 0;\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n const unaryExpression = parent2;\n const unaryOperator = unaryExpression.operator;\n return unaryOperator === 46 /* PlusPlusToken */ || unaryOperator === 47 /* MinusMinusToken */ ? unaryExpression : void 0;\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n const forInOrOfStatement = parent2;\n return forInOrOfStatement.initializer === node ? forInOrOfStatement : void 0;\n case 218 /* ParenthesizedExpression */:\n case 210 /* ArrayLiteralExpression */:\n case 231 /* SpreadElement */:\n case 236 /* NonNullExpression */:\n node = parent2;\n break;\n case 306 /* SpreadAssignment */:\n node = parent2.parent;\n break;\n case 305 /* ShorthandPropertyAssignment */:\n if (parent2.name !== node) {\n return void 0;\n }\n node = parent2.parent;\n break;\n case 304 /* PropertyAssignment */:\n if (parent2.name === node) {\n return void 0;\n }\n node = parent2.parent;\n break;\n default:\n return void 0;\n }\n parent2 = node.parent;\n }\n}\nfunction getAssignmentTargetKind(node) {\n const target = getAssignmentTarget(node);\n if (!target) {\n return 0 /* None */;\n }\n switch (target.kind) {\n case 227 /* BinaryExpression */:\n const binaryOperator = target.operatorToken.kind;\n return binaryOperator === 64 /* EqualsToken */ || isLogicalOrCoalescingAssignmentOperator(binaryOperator) ? 1 /* Definite */ : 2 /* Compound */;\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return 2 /* Compound */;\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n return 1 /* Definite */;\n }\n}\nfunction isAssignmentTarget(node) {\n return !!getAssignmentTarget(node);\n}\nfunction isCompoundLikeAssignment(assignment) {\n const right = skipParentheses(assignment.right);\n return right.kind === 227 /* BinaryExpression */ && isShiftOperatorOrHigher(right.operatorToken.kind);\n}\nfunction isInCompoundLikeAssignment(node) {\n const target = getAssignmentTarget(node);\n return !!target && isAssignmentExpression(\n target,\n /*excludeCompoundAssignment*/\n true\n ) && isCompoundLikeAssignment(target);\n}\nfunction isNodeWithPossibleHoistedDeclaration(node) {\n switch (node.kind) {\n case 242 /* Block */:\n case 244 /* VariableStatement */:\n case 255 /* WithStatement */:\n case 246 /* IfStatement */:\n case 256 /* SwitchStatement */:\n case 270 /* CaseBlock */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n case 257 /* LabeledStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 259 /* TryStatement */:\n case 300 /* CatchClause */:\n return true;\n }\n return false;\n}\nfunction isValueSignatureDeclaration(node) {\n return isFunctionExpression(node) || isArrowFunction(node) || isMethodOrAccessor(node) || isFunctionDeclaration(node) || isConstructorDeclaration(node);\n}\nfunction walkUp(node, kind) {\n while (node && node.kind === kind) {\n node = node.parent;\n }\n return node;\n}\nfunction walkUpParenthesizedTypes(node) {\n return walkUp(node, 197 /* ParenthesizedType */);\n}\nfunction walkUpParenthesizedExpressions(node) {\n return walkUp(node, 218 /* ParenthesizedExpression */);\n}\nfunction walkUpParenthesizedTypesAndGetParentAndChild(node) {\n let child;\n while (node && node.kind === 197 /* ParenthesizedType */) {\n child = node;\n node = node.parent;\n }\n return [child, node];\n}\nfunction skipTypeParentheses(node) {\n while (isParenthesizedTypeNode(node)) node = node.type;\n return node;\n}\nfunction skipParentheses(node, excludeJSDocTypeAssertions) {\n const flags = excludeJSDocTypeAssertions ? 1 /* Parentheses */ | -2147483648 /* ExcludeJSDocTypeAssertion */ : 1 /* Parentheses */;\n return skipOuterExpressions(node, flags);\n}\nfunction isDeleteTarget(node) {\n if (node.kind !== 212 /* PropertyAccessExpression */ && node.kind !== 213 /* ElementAccessExpression */) {\n return false;\n }\n node = walkUpParenthesizedExpressions(node.parent);\n return node && node.kind === 221 /* DeleteExpression */;\n}\nfunction isNodeDescendantOf(node, ancestor) {\n while (node) {\n if (node === ancestor) return true;\n node = node.parent;\n }\n return false;\n}\nfunction isDeclarationName(name) {\n return !isSourceFile(name) && !isBindingPattern(name) && isDeclaration(name.parent) && name.parent.name === name;\n}\nfunction getDeclarationFromName(name) {\n const parent2 = name.parent;\n switch (name.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n if (isComputedPropertyName(parent2)) return parent2.parent;\n // falls through\n case 80 /* Identifier */:\n if (isDeclaration(parent2)) {\n return parent2.name === name ? parent2 : void 0;\n } else if (isQualifiedName(parent2)) {\n const tag = parent2.parent;\n return isJSDocParameterTag(tag) && tag.name === parent2 ? tag : void 0;\n } else {\n const binExp = parent2.parent;\n return isBinaryExpression(binExp) && getAssignmentDeclarationKind(binExp) !== 0 /* None */ && (binExp.left.symbol || binExp.symbol) && getNameOfDeclaration(binExp) === name ? binExp : void 0;\n }\n case 81 /* PrivateIdentifier */:\n return isDeclaration(parent2) && parent2.name === name ? parent2 : void 0;\n default:\n return void 0;\n }\n}\nfunction isLiteralComputedPropertyDeclarationName(node) {\n return isStringOrNumericLiteralLike(node) && node.parent.kind === 168 /* ComputedPropertyName */ && isDeclaration(node.parent.parent);\n}\nfunction isIdentifierName(node) {\n const parent2 = node.parent;\n switch (parent2.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 307 /* EnumMember */:\n case 304 /* PropertyAssignment */:\n case 212 /* PropertyAccessExpression */:\n return parent2.name === node;\n case 167 /* QualifiedName */:\n return parent2.right === node;\n case 209 /* BindingElement */:\n case 277 /* ImportSpecifier */:\n return parent2.propertyName === node;\n case 282 /* ExportSpecifier */:\n case 292 /* JsxAttribute */:\n case 286 /* JsxSelfClosingElement */:\n case 287 /* JsxOpeningElement */:\n case 288 /* JsxClosingElement */:\n return true;\n }\n return false;\n}\nfunction getAliasDeclarationFromName(node) {\n switch (node.parent.kind) {\n case 274 /* ImportClause */:\n case 277 /* ImportSpecifier */:\n case 275 /* NamespaceImport */:\n case 282 /* ExportSpecifier */:\n case 278 /* ExportAssignment */:\n case 272 /* ImportEqualsDeclaration */:\n case 281 /* NamespaceExport */:\n return node.parent;\n case 167 /* QualifiedName */:\n do {\n node = node.parent;\n } while (node.parent.kind === 167 /* QualifiedName */);\n return getAliasDeclarationFromName(node);\n }\n}\nfunction isAliasableExpression(e) {\n return isEntityNameExpression(e) || isClassExpression(e);\n}\nfunction exportAssignmentIsAlias(node) {\n const e = getExportAssignmentExpression(node);\n return isAliasableExpression(e);\n}\nfunction getExportAssignmentExpression(node) {\n return isExportAssignment(node) ? node.expression : node.right;\n}\nfunction getPropertyAssignmentAliasLikeExpression(node) {\n return node.kind === 305 /* ShorthandPropertyAssignment */ ? node.name : node.kind === 304 /* PropertyAssignment */ ? node.initializer : node.parent.right;\n}\nfunction getEffectiveBaseTypeNode(node) {\n const baseType = getClassExtendsHeritageElement(node);\n if (baseType && isInJSFile(node)) {\n const tag = getJSDocAugmentsTag(node);\n if (tag) {\n return tag.class;\n }\n }\n return baseType;\n}\nfunction getClassExtendsHeritageElement(node) {\n const heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : void 0;\n}\nfunction getEffectiveImplementsTypeNodes(node) {\n if (isInJSFile(node)) {\n return getJSDocImplementsTags(node).map((n) => n.class);\n } else {\n const heritageClause = getHeritageClause(node.heritageClauses, 119 /* ImplementsKeyword */);\n return heritageClause == null ? void 0 : heritageClause.types;\n }\n}\nfunction getAllSuperTypeNodes(node) {\n return isInterfaceDeclaration(node) ? getInterfaceBaseTypeNodes(node) || emptyArray : isClassLike(node) ? concatenate(singleElementArray(getEffectiveBaseTypeNode(node)), getEffectiveImplementsTypeNodes(node)) || emptyArray : emptyArray;\n}\nfunction getInterfaceBaseTypeNodes(node) {\n const heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n return heritageClause ? heritageClause.types : void 0;\n}\nfunction getHeritageClause(clauses, kind) {\n if (clauses) {\n for (const clause of clauses) {\n if (clause.token === kind) {\n return clause;\n }\n }\n }\n return void 0;\n}\nfunction getAncestor(node, kind) {\n while (node) {\n if (node.kind === kind) {\n return node;\n }\n node = node.parent;\n }\n return void 0;\n}\nfunction isKeyword(token) {\n return 83 /* FirstKeyword */ <= token && token <= 166 /* LastKeyword */;\n}\nfunction isPunctuation(token) {\n return 19 /* FirstPunctuation */ <= token && token <= 79 /* LastPunctuation */;\n}\nfunction isKeywordOrPunctuation(token) {\n return isKeyword(token) || isPunctuation(token);\n}\nfunction isContextualKeyword(token) {\n return 128 /* FirstContextualKeyword */ <= token && token <= 166 /* LastContextualKeyword */;\n}\nfunction isNonContextualKeyword(token) {\n return isKeyword(token) && !isContextualKeyword(token);\n}\nfunction isStringANonContextualKeyword(name) {\n const token = stringToToken(name);\n return token !== void 0 && isNonContextualKeyword(token);\n}\nfunction isIdentifierANonContextualKeyword(node) {\n const originalKeywordKind = identifierToKeywordKind(node);\n return !!originalKeywordKind && !isContextualKeyword(originalKeywordKind);\n}\nfunction isTrivia(token) {\n return 2 /* FirstTriviaToken */ <= token && token <= 7 /* LastTriviaToken */;\n}\nvar FunctionFlags = /* @__PURE__ */ ((FunctionFlags2) => {\n FunctionFlags2[FunctionFlags2[\"Normal\"] = 0] = \"Normal\";\n FunctionFlags2[FunctionFlags2[\"Generator\"] = 1] = \"Generator\";\n FunctionFlags2[FunctionFlags2[\"Async\"] = 2] = \"Async\";\n FunctionFlags2[FunctionFlags2[\"Invalid\"] = 4] = \"Invalid\";\n FunctionFlags2[FunctionFlags2[\"AsyncGenerator\"] = 3] = \"AsyncGenerator\";\n return FunctionFlags2;\n})(FunctionFlags || {});\nfunction getFunctionFlags(node) {\n if (!node) {\n return 4 /* Invalid */;\n }\n let flags = 0 /* Normal */;\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n if (node.asteriskToken) {\n flags |= 1 /* Generator */;\n }\n // falls through\n case 220 /* ArrowFunction */:\n if (hasSyntacticModifier(node, 1024 /* Async */)) {\n flags |= 2 /* Async */;\n }\n break;\n }\n if (!node.body) {\n flags |= 4 /* Invalid */;\n }\n return flags;\n}\nfunction isAsyncFunction(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n return node.body !== void 0 && node.asteriskToken === void 0 && hasSyntacticModifier(node, 1024 /* Async */);\n }\n return false;\n}\nfunction isStringOrNumericLiteralLike(node) {\n return isStringLiteralLike(node) || isNumericLiteral(node);\n}\nfunction isSignedNumericLiteral(node) {\n return isPrefixUnaryExpression(node) && (node.operator === 40 /* PlusToken */ || node.operator === 41 /* MinusToken */) && isNumericLiteral(node.operand);\n}\nfunction hasDynamicName(declaration) {\n const name = getNameOfDeclaration(declaration);\n return !!name && isDynamicName(name);\n}\nfunction isDynamicName(name) {\n if (!(name.kind === 168 /* ComputedPropertyName */ || name.kind === 213 /* ElementAccessExpression */)) {\n return false;\n }\n const expr = isElementAccessExpression(name) ? skipParentheses(name.argumentExpression) : name.expression;\n return !isStringOrNumericLiteralLike(expr) && !isSignedNumericLiteral(expr);\n}\nfunction getPropertyNameForPropertyNameNode(name) {\n switch (name.kind) {\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n return name.escapedText;\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n return escapeLeadingUnderscores(name.text);\n case 168 /* ComputedPropertyName */:\n const nameExpression = name.expression;\n if (isStringOrNumericLiteralLike(nameExpression)) {\n return escapeLeadingUnderscores(nameExpression.text);\n } else if (isSignedNumericLiteral(nameExpression)) {\n if (nameExpression.operator === 41 /* MinusToken */) {\n return tokenToString(nameExpression.operator) + nameExpression.operand.text;\n }\n return nameExpression.operand.text;\n }\n return void 0;\n case 296 /* JsxNamespacedName */:\n return getEscapedTextOfJsxNamespacedName(name);\n default:\n return Debug.assertNever(name);\n }\n}\nfunction isPropertyNameLiteral(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n return true;\n default:\n return false;\n }\n}\nfunction getTextOfIdentifierOrLiteral(node) {\n return isMemberName(node) ? idText(node) : isJsxNamespacedName(node) ? getTextOfJsxNamespacedName(node) : node.text;\n}\nfunction getEscapedTextOfIdentifierOrLiteral(node) {\n return isMemberName(node) ? node.escapedText : isJsxNamespacedName(node) ? getEscapedTextOfJsxNamespacedName(node) : escapeLeadingUnderscores(node.text);\n}\nfunction getSymbolNameForPrivateIdentifier(containingClassSymbol, description3) {\n return `__#${getSymbolId(containingClassSymbol)}@${description3}`;\n}\nfunction isKnownSymbol(symbol) {\n return startsWith(symbol.escapedName, \"__@\");\n}\nfunction isPrivateIdentifierSymbol(symbol) {\n return startsWith(symbol.escapedName, \"__#\");\n}\nfunction isProtoSetter(node) {\n return isIdentifier(node) ? idText(node) === \"__proto__\" : isStringLiteral(node) && node.text === \"__proto__\";\n}\nfunction isAnonymousFunctionDefinition(node, cb) {\n node = skipOuterExpressions(node);\n switch (node.kind) {\n case 232 /* ClassExpression */:\n if (classHasDeclaredOrExplicitlyAssignedName(node)) {\n return false;\n }\n break;\n case 219 /* FunctionExpression */:\n if (node.name) {\n return false;\n }\n break;\n case 220 /* ArrowFunction */:\n break;\n default:\n return false;\n }\n return typeof cb === \"function\" ? cb(node) : true;\n}\nfunction isNamedEvaluationSource(node) {\n switch (node.kind) {\n case 304 /* PropertyAssignment */:\n return !isProtoSetter(node.name);\n case 305 /* ShorthandPropertyAssignment */:\n return !!node.objectAssignmentInitializer;\n case 261 /* VariableDeclaration */:\n return isIdentifier(node.name) && !!node.initializer;\n case 170 /* Parameter */:\n return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken;\n case 209 /* BindingElement */:\n return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken;\n case 173 /* PropertyDeclaration */:\n return !!node.initializer;\n case 227 /* BinaryExpression */:\n switch (node.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return isIdentifier(node.left);\n }\n break;\n case 278 /* ExportAssignment */:\n return true;\n }\n return false;\n}\nfunction isNamedEvaluation(node, cb) {\n if (!isNamedEvaluationSource(node)) return false;\n switch (node.kind) {\n case 304 /* PropertyAssignment */:\n return isAnonymousFunctionDefinition(node.initializer, cb);\n case 305 /* ShorthandPropertyAssignment */:\n return isAnonymousFunctionDefinition(node.objectAssignmentInitializer, cb);\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 173 /* PropertyDeclaration */:\n return isAnonymousFunctionDefinition(node.initializer, cb);\n case 227 /* BinaryExpression */:\n return isAnonymousFunctionDefinition(node.right, cb);\n case 278 /* ExportAssignment */:\n return isAnonymousFunctionDefinition(node.expression, cb);\n }\n}\nfunction isPushOrUnshiftIdentifier(node) {\n return node.escapedText === \"push\" || node.escapedText === \"unshift\";\n}\nfunction isPartOfParameterDeclaration(node) {\n const root = getRootDeclaration(node);\n return root.kind === 170 /* Parameter */;\n}\nfunction getRootDeclaration(node) {\n while (node.kind === 209 /* BindingElement */) {\n node = node.parent.parent;\n }\n return node;\n}\nfunction nodeStartsNewLexicalEnvironment(node) {\n const kind = node.kind;\n return kind === 177 /* Constructor */ || kind === 219 /* FunctionExpression */ || kind === 263 /* FunctionDeclaration */ || kind === 220 /* ArrowFunction */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 268 /* ModuleDeclaration */ || kind === 308 /* SourceFile */;\n}\nfunction nodeIsSynthesized(range) {\n return positionIsSynthesized(range.pos) || positionIsSynthesized(range.end);\n}\nvar Associativity = /* @__PURE__ */ ((Associativity2) => {\n Associativity2[Associativity2[\"Left\"] = 0] = \"Left\";\n Associativity2[Associativity2[\"Right\"] = 1] = \"Right\";\n return Associativity2;\n})(Associativity || {});\nfunction getExpressionAssociativity(expression) {\n const operator = getOperator(expression);\n const hasArguments = expression.kind === 215 /* NewExpression */ && expression.arguments !== void 0;\n return getOperatorAssociativity(expression.kind, operator, hasArguments);\n}\nfunction getOperatorAssociativity(kind, operator, hasArguments) {\n switch (kind) {\n case 215 /* NewExpression */:\n return hasArguments ? 0 /* Left */ : 1 /* Right */;\n case 225 /* PrefixUnaryExpression */:\n case 222 /* TypeOfExpression */:\n case 223 /* VoidExpression */:\n case 221 /* DeleteExpression */:\n case 224 /* AwaitExpression */:\n case 228 /* ConditionalExpression */:\n case 230 /* YieldExpression */:\n return 1 /* Right */;\n case 227 /* BinaryExpression */:\n switch (operator) {\n case 43 /* AsteriskAsteriskToken */:\n case 64 /* EqualsToken */:\n case 65 /* PlusEqualsToken */:\n case 66 /* MinusEqualsToken */:\n case 68 /* AsteriskAsteriskEqualsToken */:\n case 67 /* AsteriskEqualsToken */:\n case 69 /* SlashEqualsToken */:\n case 70 /* PercentEqualsToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 74 /* AmpersandEqualsToken */:\n case 79 /* CaretEqualsToken */:\n case 75 /* BarEqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return 1 /* Right */;\n }\n }\n return 0 /* Left */;\n}\nfunction getExpressionPrecedence(expression) {\n const operator = getOperator(expression);\n const hasArguments = expression.kind === 215 /* NewExpression */ && expression.arguments !== void 0;\n return getOperatorPrecedence(expression.kind, operator, hasArguments);\n}\nfunction getOperator(expression) {\n if (expression.kind === 227 /* BinaryExpression */) {\n return expression.operatorToken.kind;\n } else if (expression.kind === 225 /* PrefixUnaryExpression */ || expression.kind === 226 /* PostfixUnaryExpression */) {\n return expression.operator;\n } else {\n return expression.kind;\n }\n}\nvar OperatorPrecedence = /* @__PURE__ */ ((OperatorPrecedence2) => {\n OperatorPrecedence2[OperatorPrecedence2[\"Comma\"] = 0] = \"Comma\";\n OperatorPrecedence2[OperatorPrecedence2[\"Spread\"] = 1] = \"Spread\";\n OperatorPrecedence2[OperatorPrecedence2[\"Yield\"] = 2] = \"Yield\";\n OperatorPrecedence2[OperatorPrecedence2[\"Assignment\"] = 3] = \"Assignment\";\n OperatorPrecedence2[OperatorPrecedence2[\"Conditional\"] = 4] = \"Conditional\";\n OperatorPrecedence2[OperatorPrecedence2[\"LogicalOR\"] = 5] = \"LogicalOR\";\n OperatorPrecedence2[OperatorPrecedence2[\"Coalesce\"] = 5 /* LogicalOR */] = \"Coalesce\";\n OperatorPrecedence2[OperatorPrecedence2[\"LogicalAND\"] = 6] = \"LogicalAND\";\n OperatorPrecedence2[OperatorPrecedence2[\"BitwiseOR\"] = 7] = \"BitwiseOR\";\n OperatorPrecedence2[OperatorPrecedence2[\"BitwiseXOR\"] = 8] = \"BitwiseXOR\";\n OperatorPrecedence2[OperatorPrecedence2[\"BitwiseAND\"] = 9] = \"BitwiseAND\";\n OperatorPrecedence2[OperatorPrecedence2[\"Equality\"] = 10] = \"Equality\";\n OperatorPrecedence2[OperatorPrecedence2[\"Relational\"] = 11] = \"Relational\";\n OperatorPrecedence2[OperatorPrecedence2[\"Shift\"] = 12] = \"Shift\";\n OperatorPrecedence2[OperatorPrecedence2[\"Additive\"] = 13] = \"Additive\";\n OperatorPrecedence2[OperatorPrecedence2[\"Multiplicative\"] = 14] = \"Multiplicative\";\n OperatorPrecedence2[OperatorPrecedence2[\"Exponentiation\"] = 15] = \"Exponentiation\";\n OperatorPrecedence2[OperatorPrecedence2[\"Unary\"] = 16] = \"Unary\";\n OperatorPrecedence2[OperatorPrecedence2[\"Update\"] = 17] = \"Update\";\n OperatorPrecedence2[OperatorPrecedence2[\"LeftHandSide\"] = 18] = \"LeftHandSide\";\n OperatorPrecedence2[OperatorPrecedence2[\"Member\"] = 19] = \"Member\";\n OperatorPrecedence2[OperatorPrecedence2[\"Primary\"] = 20] = \"Primary\";\n OperatorPrecedence2[OperatorPrecedence2[\"Highest\"] = 20 /* Primary */] = \"Highest\";\n OperatorPrecedence2[OperatorPrecedence2[\"Lowest\"] = 0 /* Comma */] = \"Lowest\";\n OperatorPrecedence2[OperatorPrecedence2[\"Invalid\"] = -1] = \"Invalid\";\n return OperatorPrecedence2;\n})(OperatorPrecedence || {});\nfunction getOperatorPrecedence(nodeKind, operatorKind, hasArguments) {\n switch (nodeKind) {\n case 357 /* CommaListExpression */:\n return 0 /* Comma */;\n case 231 /* SpreadElement */:\n return 1 /* Spread */;\n case 230 /* YieldExpression */:\n return 2 /* Yield */;\n case 228 /* ConditionalExpression */:\n return 4 /* Conditional */;\n case 227 /* BinaryExpression */:\n switch (operatorKind) {\n case 28 /* CommaToken */:\n return 0 /* Comma */;\n case 64 /* EqualsToken */:\n case 65 /* PlusEqualsToken */:\n case 66 /* MinusEqualsToken */:\n case 68 /* AsteriskAsteriskEqualsToken */:\n case 67 /* AsteriskEqualsToken */:\n case 69 /* SlashEqualsToken */:\n case 70 /* PercentEqualsToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 74 /* AmpersandEqualsToken */:\n case 79 /* CaretEqualsToken */:\n case 75 /* BarEqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return 3 /* Assignment */;\n default:\n return getBinaryOperatorPrecedence(operatorKind);\n }\n // TODO: Should prefix `++` and `--` be moved to the `Update` precedence?\n case 217 /* TypeAssertionExpression */:\n case 236 /* NonNullExpression */:\n case 225 /* PrefixUnaryExpression */:\n case 222 /* TypeOfExpression */:\n case 223 /* VoidExpression */:\n case 221 /* DeleteExpression */:\n case 224 /* AwaitExpression */:\n return 16 /* Unary */;\n case 226 /* PostfixUnaryExpression */:\n return 17 /* Update */;\n case 214 /* CallExpression */:\n return 18 /* LeftHandSide */;\n case 215 /* NewExpression */:\n return hasArguments ? 19 /* Member */ : 18 /* LeftHandSide */;\n case 216 /* TaggedTemplateExpression */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n case 237 /* MetaProperty */:\n return 19 /* Member */;\n case 235 /* AsExpression */:\n case 239 /* SatisfiesExpression */:\n return 11 /* Relational */;\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n case 106 /* NullKeyword */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n case 210 /* ArrayLiteralExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 232 /* ClassExpression */:\n case 14 /* RegularExpressionLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 229 /* TemplateExpression */:\n case 218 /* ParenthesizedExpression */:\n case 233 /* OmittedExpression */:\n case 285 /* JsxElement */:\n case 286 /* JsxSelfClosingElement */:\n case 289 /* JsxFragment */:\n return 20 /* Primary */;\n default:\n return -1 /* Invalid */;\n }\n}\nfunction getBinaryOperatorPrecedence(kind) {\n switch (kind) {\n case 61 /* QuestionQuestionToken */:\n return 5 /* Coalesce */;\n case 57 /* BarBarToken */:\n return 5 /* LogicalOR */;\n case 56 /* AmpersandAmpersandToken */:\n return 6 /* LogicalAND */;\n case 52 /* BarToken */:\n return 7 /* BitwiseOR */;\n case 53 /* CaretToken */:\n return 8 /* BitwiseXOR */;\n case 51 /* AmpersandToken */:\n return 9 /* BitwiseAND */;\n case 35 /* EqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n return 10 /* Equality */;\n case 30 /* LessThanToken */:\n case 32 /* GreaterThanToken */:\n case 33 /* LessThanEqualsToken */:\n case 34 /* GreaterThanEqualsToken */:\n case 104 /* InstanceOfKeyword */:\n case 103 /* InKeyword */:\n case 130 /* AsKeyword */:\n case 152 /* SatisfiesKeyword */:\n return 11 /* Relational */;\n case 48 /* LessThanLessThanToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n return 12 /* Shift */;\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n return 13 /* Additive */;\n case 42 /* AsteriskToken */:\n case 44 /* SlashToken */:\n case 45 /* PercentToken */:\n return 14 /* Multiplicative */;\n case 43 /* AsteriskAsteriskToken */:\n return 15 /* Exponentiation */;\n }\n return -1;\n}\nfunction getSemanticJsxChildren(children) {\n return filter(children, (i) => {\n switch (i.kind) {\n case 295 /* JsxExpression */:\n return !!i.expression;\n case 12 /* JsxText */:\n return !i.containsOnlyTriviaWhiteSpaces;\n default:\n return true;\n }\n });\n}\nfunction createDiagnosticCollection() {\n let nonFileDiagnostics = [];\n const filesWithDiagnostics = [];\n const fileDiagnostics = /* @__PURE__ */ new Map();\n let hasReadNonFileDiagnostics = false;\n return {\n add,\n lookup,\n getGlobalDiagnostics,\n getDiagnostics: getDiagnostics2\n };\n function lookup(diagnostic) {\n let diagnostics;\n if (diagnostic.file) {\n diagnostics = fileDiagnostics.get(diagnostic.file.fileName);\n } else {\n diagnostics = nonFileDiagnostics;\n }\n if (!diagnostics) {\n return void 0;\n }\n const result = binarySearch(diagnostics, diagnostic, identity, compareDiagnosticsSkipRelatedInformation);\n if (result >= 0) {\n return diagnostics[result];\n }\n if (~result > 0 && diagnosticsEqualityComparer(diagnostic, diagnostics[~result - 1])) {\n return diagnostics[~result - 1];\n }\n return void 0;\n }\n function add(diagnostic) {\n let diagnostics;\n if (diagnostic.file) {\n diagnostics = fileDiagnostics.get(diagnostic.file.fileName);\n if (!diagnostics) {\n diagnostics = [];\n fileDiagnostics.set(diagnostic.file.fileName, diagnostics);\n insertSorted(filesWithDiagnostics, diagnostic.file.fileName, compareStringsCaseSensitive);\n }\n } else {\n if (hasReadNonFileDiagnostics) {\n hasReadNonFileDiagnostics = false;\n nonFileDiagnostics = nonFileDiagnostics.slice();\n }\n diagnostics = nonFileDiagnostics;\n }\n insertSorted(diagnostics, diagnostic, compareDiagnosticsSkipRelatedInformation, diagnosticsEqualityComparer);\n }\n function getGlobalDiagnostics() {\n hasReadNonFileDiagnostics = true;\n return nonFileDiagnostics;\n }\n function getDiagnostics2(fileName) {\n if (fileName) {\n return fileDiagnostics.get(fileName) || [];\n }\n const fileDiags = flatMapToMutable(filesWithDiagnostics, (f) => fileDiagnostics.get(f));\n if (!nonFileDiagnostics.length) {\n return fileDiags;\n }\n fileDiags.unshift(...nonFileDiagnostics);\n return fileDiags;\n }\n}\nvar templateSubstitutionRegExp = /\\$\\{/g;\nfunction escapeTemplateSubstitution(str) {\n return str.replace(templateSubstitutionRegExp, \"\\\\${\");\n}\nfunction containsInvalidEscapeFlag(node) {\n return !!((node.templateFlags || 0) & 2048 /* ContainsInvalidEscape */);\n}\nfunction hasInvalidEscape(template) {\n return template && !!(isNoSubstitutionTemplateLiteral(template) ? containsInvalidEscapeFlag(template) : containsInvalidEscapeFlag(template.head) || some(template.templateSpans, (span) => containsInvalidEscapeFlag(span.literal)));\n}\nvar doubleQuoteEscapedCharsRegExp = /[\\\\\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar singleQuoteEscapedCharsRegExp = /[\\\\'\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar backtickQuoteEscapedCharsRegExp = /\\r\\n|[\\\\`\\u0000-\\u0009\\u000b-\\u001f\\u2028\\u2029\\u0085]/g;\nvar escapedCharsMap = new Map(Object.entries({\n \"\t\": \"\\\\t\",\n \"\\v\": \"\\\\v\",\n \"\\f\": \"\\\\f\",\n \"\\b\": \"\\\\b\",\n \"\\r\": \"\\\\r\",\n \"\\n\": \"\\\\n\",\n \"\\\\\": \"\\\\\\\\\",\n '\"': '\\\\\"',\n \"'\": \"\\\\'\",\n \"`\": \"\\\\`\",\n \"\\u2028\": \"\\\\u2028\",\n // lineSeparator\n \"\\u2029\": \"\\\\u2029\",\n // paragraphSeparator\n \"\\x85\": \"\\\\u0085\",\n // nextLine\n \"\\r\\n\": \"\\\\r\\\\n\"\n // special case for CRLFs in backticks\n}));\nfunction encodeUtf16EscapeSequence(charCode) {\n const hexCharCode = charCode.toString(16).toUpperCase();\n const paddedHexCode = (\"0000\" + hexCharCode).slice(-4);\n return \"\\\\u\" + paddedHexCode;\n}\nfunction getReplacement(c, offset, input) {\n if (c.charCodeAt(0) === 0 /* nullCharacter */) {\n const lookAhead = input.charCodeAt(offset + c.length);\n if (lookAhead >= 48 /* _0 */ && lookAhead <= 57 /* _9 */) {\n return \"\\\\x00\";\n }\n return \"\\\\0\";\n }\n return escapedCharsMap.get(c) || encodeUtf16EscapeSequence(c.charCodeAt(0));\n}\nfunction escapeString(s, quoteChar) {\n const escapedCharsRegExp = quoteChar === 96 /* backtick */ ? backtickQuoteEscapedCharsRegExp : quoteChar === 39 /* singleQuote */ ? singleQuoteEscapedCharsRegExp : doubleQuoteEscapedCharsRegExp;\n return s.replace(escapedCharsRegExp, getReplacement);\n}\nvar nonAsciiCharacters = /[^\\u0000-\\u007F]/g;\nfunction escapeNonAsciiString(s, quoteChar) {\n s = escapeString(s, quoteChar);\n return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, (c) => encodeUtf16EscapeSequence(c.charCodeAt(0))) : s;\n}\nvar jsxDoubleQuoteEscapedCharsRegExp = /[\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar jsxSingleQuoteEscapedCharsRegExp = /['\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar jsxEscapedCharsMap = new Map(Object.entries({\n '\"': \""\",\n \"'\": \"'\"\n}));\nfunction encodeJsxCharacterEntity(charCode) {\n const hexCharCode = charCode.toString(16).toUpperCase();\n return \"&#x\" + hexCharCode + \";\";\n}\nfunction getJsxAttributeStringReplacement(c) {\n if (c.charCodeAt(0) === 0 /* nullCharacter */) {\n return \"�\";\n }\n return jsxEscapedCharsMap.get(c) || encodeJsxCharacterEntity(c.charCodeAt(0));\n}\nfunction escapeJsxAttributeString(s, quoteChar) {\n const escapedCharsRegExp = quoteChar === 39 /* singleQuote */ ? jsxSingleQuoteEscapedCharsRegExp : jsxDoubleQuoteEscapedCharsRegExp;\n return s.replace(escapedCharsRegExp, getJsxAttributeStringReplacement);\n}\nfunction stripQuotes(name) {\n const length2 = name.length;\n if (length2 >= 2 && name.charCodeAt(0) === name.charCodeAt(length2 - 1) && isQuoteOrBacktick(name.charCodeAt(0))) {\n return name.substring(1, length2 - 1);\n }\n return name;\n}\nfunction isQuoteOrBacktick(charCode) {\n return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */ || charCode === 96 /* backtick */;\n}\nfunction isIntrinsicJsxName(name) {\n const ch = name.charCodeAt(0);\n return ch >= 97 /* a */ && ch <= 122 /* z */ || name.includes(\"-\");\n}\nvar indentStrings = [\"\", \" \"];\nfunction getIndentString(level) {\n const singleLevel = indentStrings[1];\n for (let current = indentStrings.length; current <= level; current++) {\n indentStrings.push(indentStrings[current - 1] + singleLevel);\n }\n return indentStrings[level];\n}\nfunction getIndentSize() {\n return indentStrings[1].length;\n}\nfunction createTextWriter(newLine) {\n var output;\n var indent3;\n var lineStart;\n var lineCount;\n var linePos;\n var hasTrailingComment = false;\n function updateLineCountAndPosFor(s) {\n const lineStartsOfS = computeLineStarts(s);\n if (lineStartsOfS.length > 1) {\n lineCount = lineCount + lineStartsOfS.length - 1;\n linePos = output.length - s.length + last(lineStartsOfS);\n lineStart = linePos - output.length === 0;\n } else {\n lineStart = false;\n }\n }\n function writeText(s) {\n if (s && s.length) {\n if (lineStart) {\n s = getIndentString(indent3) + s;\n lineStart = false;\n }\n output += s;\n updateLineCountAndPosFor(s);\n }\n }\n function write(s) {\n if (s) hasTrailingComment = false;\n writeText(s);\n }\n function writeComment(s) {\n if (s) hasTrailingComment = true;\n writeText(s);\n }\n function reset2() {\n output = \"\";\n indent3 = 0;\n lineStart = true;\n lineCount = 0;\n linePos = 0;\n hasTrailingComment = false;\n }\n function rawWrite(s) {\n if (s !== void 0) {\n output += s;\n updateLineCountAndPosFor(s);\n hasTrailingComment = false;\n }\n }\n function writeLiteral(s) {\n if (s && s.length) {\n write(s);\n }\n }\n function writeLine(force) {\n if (!lineStart || force) {\n output += newLine;\n lineCount++;\n linePos = output.length;\n lineStart = true;\n hasTrailingComment = false;\n }\n }\n reset2();\n return {\n write,\n rawWrite,\n writeLiteral,\n writeLine,\n increaseIndent: () => {\n indent3++;\n },\n decreaseIndent: () => {\n indent3--;\n },\n getIndent: () => indent3,\n getTextPos: () => output.length,\n getLine: () => lineCount,\n getColumn: () => lineStart ? indent3 * getIndentSize() : output.length - linePos,\n getText: () => output,\n isAtStartOfLine: () => lineStart,\n hasTrailingComment: () => hasTrailingComment,\n hasTrailingWhitespace: () => !!output.length && isWhiteSpaceLike(output.charCodeAt(output.length - 1)),\n clear: reset2,\n writeKeyword: write,\n writeOperator: write,\n writeParameter: write,\n writeProperty: write,\n writePunctuation: write,\n writeSpace: write,\n writeStringLiteral: write,\n writeSymbol: (s, _) => write(s),\n writeTrailingSemicolon: write,\n writeComment\n };\n}\nfunction getTrailingSemicolonDeferringWriter(writer) {\n let pendingTrailingSemicolon = false;\n function commitPendingTrailingSemicolon() {\n if (pendingTrailingSemicolon) {\n writer.writeTrailingSemicolon(\";\");\n pendingTrailingSemicolon = false;\n }\n }\n return {\n ...writer,\n writeTrailingSemicolon() {\n pendingTrailingSemicolon = true;\n },\n writeLiteral(s) {\n commitPendingTrailingSemicolon();\n writer.writeLiteral(s);\n },\n writeStringLiteral(s) {\n commitPendingTrailingSemicolon();\n writer.writeStringLiteral(s);\n },\n writeSymbol(s, sym) {\n commitPendingTrailingSemicolon();\n writer.writeSymbol(s, sym);\n },\n writePunctuation(s) {\n commitPendingTrailingSemicolon();\n writer.writePunctuation(s);\n },\n writeKeyword(s) {\n commitPendingTrailingSemicolon();\n writer.writeKeyword(s);\n },\n writeOperator(s) {\n commitPendingTrailingSemicolon();\n writer.writeOperator(s);\n },\n writeParameter(s) {\n commitPendingTrailingSemicolon();\n writer.writeParameter(s);\n },\n writeSpace(s) {\n commitPendingTrailingSemicolon();\n writer.writeSpace(s);\n },\n writeProperty(s) {\n commitPendingTrailingSemicolon();\n writer.writeProperty(s);\n },\n writeComment(s) {\n commitPendingTrailingSemicolon();\n writer.writeComment(s);\n },\n writeLine() {\n commitPendingTrailingSemicolon();\n writer.writeLine();\n },\n increaseIndent() {\n commitPendingTrailingSemicolon();\n writer.increaseIndent();\n },\n decreaseIndent() {\n commitPendingTrailingSemicolon();\n writer.decreaseIndent();\n }\n };\n}\nfunction hostUsesCaseSensitiveFileNames(host) {\n return host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : false;\n}\nfunction hostGetCanonicalFileName(host) {\n return createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(host));\n}\nfunction getResolvedExternalModuleName(host, file, referenceFile) {\n return file.moduleName || getExternalModuleNameFromPath(host, file.fileName, referenceFile && referenceFile.fileName);\n}\nfunction getCanonicalAbsolutePath(host, path) {\n return host.getCanonicalFileName(getNormalizedAbsolutePath(path, host.getCurrentDirectory()));\n}\nfunction getExternalModuleNameFromDeclaration(host, resolver, declaration) {\n const file = resolver.getExternalModuleFileFromDeclaration(declaration);\n if (!file || file.isDeclarationFile) {\n return void 0;\n }\n const specifier = getExternalModuleName(declaration);\n if (specifier && isStringLiteralLike(specifier) && !pathIsRelative(specifier.text) && !getCanonicalAbsolutePath(host, file.path).includes(getCanonicalAbsolutePath(host, ensureTrailingDirectorySeparator(host.getCommonSourceDirectory())))) {\n return void 0;\n }\n return getResolvedExternalModuleName(host, file);\n}\nfunction getExternalModuleNameFromPath(host, fileName, referencePath) {\n const getCanonicalFileName = (f) => host.getCanonicalFileName(f);\n const dir = toPath(referencePath ? getDirectoryPath(referencePath) : host.getCommonSourceDirectory(), host.getCurrentDirectory(), getCanonicalFileName);\n const filePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory());\n const relativePath = getRelativePathToDirectoryOrUrl(\n dir,\n filePath,\n dir,\n getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n false\n );\n const extensionless = removeFileExtension(relativePath);\n return referencePath ? ensurePathIsNonModuleName(extensionless) : extensionless;\n}\nfunction getOwnEmitOutputFilePath(fileName, host, extension) {\n const compilerOptions = host.getCompilerOptions();\n let emitOutputFilePathWithoutExtension;\n if (compilerOptions.outDir) {\n emitOutputFilePathWithoutExtension = removeFileExtension(getSourceFilePathInNewDir(fileName, host, compilerOptions.outDir));\n } else {\n emitOutputFilePathWithoutExtension = removeFileExtension(fileName);\n }\n return emitOutputFilePathWithoutExtension + extension;\n}\nfunction getDeclarationEmitOutputFilePath(fileName, host) {\n return getDeclarationEmitOutputFilePathWorker(fileName, host.getCompilerOptions(), host);\n}\nfunction getDeclarationEmitOutputFilePathWorker(fileName, options, host) {\n const outputDir = options.declarationDir || options.outDir;\n const path = outputDir ? getSourceFilePathInNewDirWorker(fileName, outputDir, host.getCurrentDirectory(), host.getCommonSourceDirectory(), (f) => host.getCanonicalFileName(f)) : fileName;\n const declarationExtension = getDeclarationEmitExtensionForPath(path);\n return removeFileExtension(path) + declarationExtension;\n}\nfunction getDeclarationEmitExtensionForPath(path) {\n return fileExtensionIsOneOf(path, [\".mjs\" /* Mjs */, \".mts\" /* Mts */]) ? \".d.mts\" /* Dmts */ : fileExtensionIsOneOf(path, [\".cjs\" /* Cjs */, \".cts\" /* Cts */]) ? \".d.cts\" /* Dcts */ : fileExtensionIsOneOf(path, [\".json\" /* Json */]) ? `.d.json.ts` : (\n // Drive-by redefinition of json declaration file output name so if it's ever enabled, it behaves well\n \".d.ts\" /* Dts */\n );\n}\nfunction getPossibleOriginalInputExtensionForExtension(path) {\n return fileExtensionIsOneOf(path, [\".d.mts\" /* Dmts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */]) ? [\".mts\" /* Mts */, \".mjs\" /* Mjs */] : fileExtensionIsOneOf(path, [\".d.cts\" /* Dcts */, \".cjs\" /* Cjs */, \".cts\" /* Cts */]) ? [\".cts\" /* Cts */, \".cjs\" /* Cjs */] : fileExtensionIsOneOf(path, [`.d.json.ts`]) ? [\".json\" /* Json */] : [\".tsx\" /* Tsx */, \".ts\" /* Ts */, \".jsx\" /* Jsx */, \".js\" /* Js */];\n}\nfunction getPossibleOriginalInputPathWithoutChangingExt(filePath, ignoreCase, outputDir, getCommonSourceDirectory2) {\n return outputDir ? resolvePath(\n getCommonSourceDirectory2(),\n getRelativePathFromDirectory(outputDir, filePath, ignoreCase)\n ) : filePath;\n}\nfunction getPathsBasePath(options, host) {\n var _a;\n if (!options.paths) return void 0;\n return options.baseUrl ?? Debug.checkDefined(options.pathsBasePath || ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)), \"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.\");\n}\nfunction getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit) {\n const options = host.getCompilerOptions();\n if (options.outFile) {\n const moduleKind = getEmitModuleKind(options);\n const moduleEmitEnabled = options.emitDeclarationOnly || moduleKind === 2 /* AMD */ || moduleKind === 4 /* System */;\n return filter(\n host.getSourceFiles(),\n (sourceFile) => (moduleEmitEnabled || !isExternalModule(sourceFile)) && sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit)\n );\n } else {\n const sourceFiles = targetSourceFile === void 0 ? host.getSourceFiles() : [targetSourceFile];\n return filter(\n sourceFiles,\n (sourceFile) => sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit)\n );\n }\n}\nfunction sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit) {\n const options = host.getCompilerOptions();\n if (options.noEmitForJsFiles && isSourceFileJS(sourceFile)) return false;\n if (sourceFile.isDeclarationFile) return false;\n if (host.isSourceFileFromExternalLibrary(sourceFile)) return false;\n if (forceDtsEmit) return true;\n if (host.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) return false;\n if (!isJsonSourceFile(sourceFile)) return true;\n if (host.getRedirectFromSourceFile(sourceFile.fileName)) return false;\n if (options.outFile) return true;\n if (!options.outDir) return false;\n if (options.rootDir || options.composite && options.configFilePath) {\n const commonDir = getNormalizedAbsolutePath(getCommonSourceDirectory(options, () => [], host.getCurrentDirectory(), host.getCanonicalFileName), host.getCurrentDirectory());\n const outputPath = getSourceFilePathInNewDirWorker(sourceFile.fileName, options.outDir, host.getCurrentDirectory(), commonDir, host.getCanonicalFileName);\n if (comparePaths(sourceFile.fileName, outputPath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */) return false;\n }\n return true;\n}\nfunction getSourceFilePathInNewDir(fileName, host, newDirPath) {\n return getSourceFilePathInNewDirWorker(fileName, newDirPath, host.getCurrentDirectory(), host.getCommonSourceDirectory(), (f) => host.getCanonicalFileName(f));\n}\nfunction getSourceFilePathInNewDirWorker(fileName, newDirPath, currentDirectory, commonSourceDirectory, getCanonicalFileName) {\n let sourceFilePath = getNormalizedAbsolutePath(fileName, currentDirectory);\n const isSourceFileInCommonSourceDirectory = getCanonicalFileName(sourceFilePath).indexOf(getCanonicalFileName(commonSourceDirectory)) === 0;\n sourceFilePath = isSourceFileInCommonSourceDirectory ? sourceFilePath.substring(commonSourceDirectory.length) : sourceFilePath;\n return combinePaths(newDirPath, sourceFilePath);\n}\nfunction writeFile(host, diagnostics, fileName, text, writeByteOrderMark, sourceFiles, data) {\n host.writeFile(\n fileName,\n text,\n writeByteOrderMark,\n (hostErrorMessage) => {\n diagnostics.add(createCompilerDiagnostic(Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage));\n },\n sourceFiles,\n data\n );\n}\nfunction ensureDirectoriesExist(directoryPath, createDirectory, directoryExists) {\n if (directoryPath.length > getRootLength(directoryPath) && !directoryExists(directoryPath)) {\n const parentDirectory = getDirectoryPath(directoryPath);\n ensureDirectoriesExist(parentDirectory, createDirectory, directoryExists);\n createDirectory(directoryPath);\n }\n}\nfunction writeFileEnsuringDirectories(path, data, writeByteOrderMark, writeFile2, createDirectory, directoryExists) {\n try {\n writeFile2(path, data, writeByteOrderMark);\n } catch {\n ensureDirectoriesExist(getDirectoryPath(normalizePath(path)), createDirectory, directoryExists);\n writeFile2(path, data, writeByteOrderMark);\n }\n}\nfunction getLineOfLocalPosition(sourceFile, pos) {\n const lineStarts = getLineStarts(sourceFile);\n return computeLineOfPosition(lineStarts, pos);\n}\nfunction getLineOfLocalPositionFromLineMap(lineMap, pos) {\n return computeLineOfPosition(lineMap, pos);\n}\nfunction getFirstConstructorWithBody(node) {\n return find(node.members, (member) => isConstructorDeclaration(member) && nodeIsPresent(member.body));\n}\nfunction getSetAccessorValueParameter(accessor) {\n if (accessor && accessor.parameters.length > 0) {\n const hasThis = accessor.parameters.length === 2 && parameterIsThisKeyword(accessor.parameters[0]);\n return accessor.parameters[hasThis ? 1 : 0];\n }\n}\nfunction getSetAccessorTypeAnnotationNode(accessor) {\n const parameter = getSetAccessorValueParameter(accessor);\n return parameter && parameter.type;\n}\nfunction getThisParameter(signature) {\n if (signature.parameters.length && !isJSDocSignature(signature)) {\n const thisParameter = signature.parameters[0];\n if (parameterIsThisKeyword(thisParameter)) {\n return thisParameter;\n }\n }\n}\nfunction parameterIsThisKeyword(parameter) {\n return isThisIdentifier(parameter.name);\n}\nfunction isThisIdentifier(node) {\n return !!node && node.kind === 80 /* Identifier */ && identifierIsThisKeyword(node);\n}\nfunction isInTypeQuery(node) {\n return !!findAncestor(\n node,\n (n) => n.kind === 187 /* TypeQuery */ ? true : n.kind === 80 /* Identifier */ || n.kind === 167 /* QualifiedName */ ? false : \"quit\"\n );\n}\nfunction isThisInTypeQuery(node) {\n if (!isThisIdentifier(node)) {\n return false;\n }\n while (isQualifiedName(node.parent) && node.parent.left === node) {\n node = node.parent;\n }\n return node.parent.kind === 187 /* TypeQuery */;\n}\nfunction identifierIsThisKeyword(id) {\n return id.escapedText === \"this\";\n}\nfunction getAllAccessorDeclarations(declarations, accessor) {\n let firstAccessor;\n let secondAccessor;\n let getAccessor;\n let setAccessor;\n if (hasDynamicName(accessor)) {\n firstAccessor = accessor;\n if (accessor.kind === 178 /* GetAccessor */) {\n getAccessor = accessor;\n } else if (accessor.kind === 179 /* SetAccessor */) {\n setAccessor = accessor;\n } else {\n Debug.fail(\"Accessor has wrong kind\");\n }\n } else {\n forEach(declarations, (member) => {\n if (isAccessor(member) && isStatic(member) === isStatic(accessor)) {\n const memberName = getPropertyNameForPropertyNameNode(member.name);\n const accessorName = getPropertyNameForPropertyNameNode(accessor.name);\n if (memberName === accessorName) {\n if (!firstAccessor) {\n firstAccessor = member;\n } else if (!secondAccessor) {\n secondAccessor = member;\n }\n if (member.kind === 178 /* GetAccessor */ && !getAccessor) {\n getAccessor = member;\n }\n if (member.kind === 179 /* SetAccessor */ && !setAccessor) {\n setAccessor = member;\n }\n }\n }\n });\n }\n return {\n firstAccessor,\n secondAccessor,\n getAccessor,\n setAccessor\n };\n}\nfunction getEffectiveTypeAnnotationNode(node) {\n if (!isInJSFile(node) && isFunctionDeclaration(node)) return void 0;\n if (isTypeAliasDeclaration(node)) return void 0;\n const type = node.type;\n if (type || !isInJSFile(node)) return type;\n return isJSDocPropertyLikeTag(node) ? node.typeExpression && node.typeExpression.type : getJSDocType(node);\n}\nfunction getTypeAnnotationNode(node) {\n return node.type;\n}\nfunction getEffectiveReturnTypeNode(node) {\n return isJSDocSignature(node) ? node.type && node.type.typeExpression && node.type.typeExpression.type : node.type || (isInJSFile(node) ? getJSDocReturnType(node) : void 0);\n}\nfunction getJSDocTypeParameterDeclarations(node) {\n return flatMap(getJSDocTags(node), (tag) => isNonTypeAliasTemplate(tag) ? tag.typeParameters : void 0);\n}\nfunction isNonTypeAliasTemplate(tag) {\n return isJSDocTemplateTag(tag) && !(tag.parent.kind === 321 /* JSDoc */ && (tag.parent.tags.some(isJSDocTypeAlias) || tag.parent.tags.some(isJSDocOverloadTag)));\n}\nfunction getEffectiveSetAccessorTypeAnnotationNode(node) {\n const parameter = getSetAccessorValueParameter(node);\n return parameter && getEffectiveTypeAnnotationNode(parameter);\n}\nfunction emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments) {\n emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, node.pos, leadingComments);\n}\nfunction emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, pos, leadingComments) {\n if (leadingComments && leadingComments.length && pos !== leadingComments[0].pos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, leadingComments[0].pos)) {\n writer.writeLine();\n }\n}\nfunction emitNewLineBeforeLeadingCommentOfPosition(lineMap, writer, pos, commentPos) {\n if (pos !== commentPos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, commentPos)) {\n writer.writeLine();\n }\n}\nfunction emitComments(text, lineMap, writer, comments, leadingSeparator, trailingSeparator, newLine, writeComment) {\n if (comments && comments.length > 0) {\n if (leadingSeparator) {\n writer.writeSpace(\" \");\n }\n let emitInterveningSeparator = false;\n for (const comment of comments) {\n if (emitInterveningSeparator) {\n writer.writeSpace(\" \");\n emitInterveningSeparator = false;\n }\n writeComment(text, lineMap, writer, comment.pos, comment.end, newLine);\n if (comment.hasTrailingNewLine) {\n writer.writeLine();\n } else {\n emitInterveningSeparator = true;\n }\n }\n if (emitInterveningSeparator && trailingSeparator) {\n writer.writeSpace(\" \");\n }\n }\n}\nfunction emitDetachedComments(text, lineMap, writer, writeComment, node, newLine, removeComments) {\n let leadingComments;\n let currentDetachedCommentInfo;\n if (removeComments) {\n if (node.pos === 0) {\n leadingComments = filter(getLeadingCommentRanges(text, node.pos), isPinnedCommentLocal);\n }\n } else {\n leadingComments = getLeadingCommentRanges(text, node.pos);\n }\n if (leadingComments) {\n const detachedComments = [];\n let lastComment;\n for (const comment of leadingComments) {\n if (lastComment) {\n const lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, lastComment.end);\n const commentLine = getLineOfLocalPositionFromLineMap(lineMap, comment.pos);\n if (commentLine >= lastCommentLine + 2) {\n break;\n }\n }\n detachedComments.push(comment);\n lastComment = comment;\n }\n if (detachedComments.length) {\n const lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, last(detachedComments).end);\n const nodeLine = getLineOfLocalPositionFromLineMap(lineMap, skipTrivia(text, node.pos));\n if (nodeLine >= lastCommentLine + 2) {\n emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments);\n emitComments(\n text,\n lineMap,\n writer,\n detachedComments,\n /*leadingSeparator*/\n false,\n /*trailingSeparator*/\n true,\n newLine,\n writeComment\n );\n currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: last(detachedComments).end };\n }\n }\n }\n return currentDetachedCommentInfo;\n function isPinnedCommentLocal(comment) {\n return isPinnedComment(text, comment.pos);\n }\n}\nfunction writeCommentRange(text, lineMap, writer, commentPos, commentEnd, newLine) {\n if (text.charCodeAt(commentPos + 1) === 42 /* asterisk */) {\n const firstCommentLineAndCharacter = computeLineAndCharacterOfPosition(lineMap, commentPos);\n const lineCount = lineMap.length;\n let firstCommentLineIndent;\n for (let pos = commentPos, currentLine = firstCommentLineAndCharacter.line; pos < commentEnd; currentLine++) {\n const nextLineStart = currentLine + 1 === lineCount ? text.length + 1 : lineMap[currentLine + 1];\n if (pos !== commentPos) {\n if (firstCommentLineIndent === void 0) {\n firstCommentLineIndent = calculateIndent(text, lineMap[firstCommentLineAndCharacter.line], commentPos);\n }\n const currentWriterIndentSpacing = writer.getIndent() * getIndentSize();\n const spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(text, pos, nextLineStart);\n if (spacesToEmit > 0) {\n let numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize();\n const indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize());\n writer.rawWrite(indentSizeSpaceString);\n while (numberOfSingleSpacesToEmit) {\n writer.rawWrite(\" \");\n numberOfSingleSpacesToEmit--;\n }\n } else {\n writer.rawWrite(\"\");\n }\n }\n writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart);\n pos = nextLineStart;\n }\n } else {\n writer.writeComment(text.substring(commentPos, commentEnd));\n }\n}\nfunction writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart) {\n const end = Math.min(commentEnd, nextLineStart - 1);\n const currentLineText = text.substring(pos, end).trim();\n if (currentLineText) {\n writer.writeComment(currentLineText);\n if (end !== commentEnd) {\n writer.writeLine();\n }\n } else {\n writer.rawWrite(newLine);\n }\n}\nfunction calculateIndent(text, pos, end) {\n let currentLineIndent = 0;\n for (; pos < end && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) {\n if (text.charCodeAt(pos) === 9 /* tab */) {\n currentLineIndent += getIndentSize() - currentLineIndent % getIndentSize();\n } else {\n currentLineIndent++;\n }\n }\n return currentLineIndent;\n}\nfunction hasEffectiveModifiers(node) {\n return getEffectiveModifierFlags(node) !== 0 /* None */;\n}\nfunction hasSyntacticModifiers(node) {\n return getSyntacticModifierFlags(node) !== 0 /* None */;\n}\nfunction hasEffectiveModifier(node, flags) {\n return !!getSelectedEffectiveModifierFlags(node, flags);\n}\nfunction hasSyntacticModifier(node, flags) {\n return !!getSelectedSyntacticModifierFlags(node, flags);\n}\nfunction isStatic(node) {\n return isClassElement(node) && hasStaticModifier(node) || isClassStaticBlockDeclaration(node);\n}\nfunction hasStaticModifier(node) {\n return hasSyntacticModifier(node, 256 /* Static */);\n}\nfunction hasOverrideModifier(node) {\n return hasEffectiveModifier(node, 16 /* Override */);\n}\nfunction hasAbstractModifier(node) {\n return hasSyntacticModifier(node, 64 /* Abstract */);\n}\nfunction hasAmbientModifier(node) {\n return hasSyntacticModifier(node, 128 /* Ambient */);\n}\nfunction hasAccessorModifier(node) {\n return hasSyntacticModifier(node, 512 /* Accessor */);\n}\nfunction hasEffectiveReadonlyModifier(node) {\n return hasEffectiveModifier(node, 8 /* Readonly */);\n}\nfunction hasDecorators(node) {\n return hasSyntacticModifier(node, 32768 /* Decorator */);\n}\nfunction getSelectedEffectiveModifierFlags(node, flags) {\n return getEffectiveModifierFlags(node) & flags;\n}\nfunction getSelectedSyntacticModifierFlags(node, flags) {\n return getSyntacticModifierFlags(node) & flags;\n}\nfunction getModifierFlagsWorker(node, includeJSDoc, alwaysIncludeJSDoc) {\n if (node.kind >= 0 /* FirstToken */ && node.kind <= 166 /* LastToken */) {\n return 0 /* None */;\n }\n if (!(node.modifierFlagsCache & 536870912 /* HasComputedFlags */)) {\n node.modifierFlagsCache = getSyntacticModifierFlagsNoCache(node) | 536870912 /* HasComputedFlags */;\n }\n if (alwaysIncludeJSDoc || includeJSDoc && isInJSFile(node)) {\n if (!(node.modifierFlagsCache & 268435456 /* HasComputedJSDocModifiers */) && node.parent) {\n node.modifierFlagsCache |= getRawJSDocModifierFlagsNoCache(node) | 268435456 /* HasComputedJSDocModifiers */;\n }\n return selectEffectiveModifierFlags(node.modifierFlagsCache);\n }\n return selectSyntacticModifierFlags(node.modifierFlagsCache);\n}\nfunction getEffectiveModifierFlags(node) {\n return getModifierFlagsWorker(\n node,\n /*includeJSDoc*/\n true\n );\n}\nfunction getEffectiveModifierFlagsAlwaysIncludeJSDoc(node) {\n return getModifierFlagsWorker(\n node,\n /*includeJSDoc*/\n true,\n /*alwaysIncludeJSDoc*/\n true\n );\n}\nfunction getSyntacticModifierFlags(node) {\n return getModifierFlagsWorker(\n node,\n /*includeJSDoc*/\n false\n );\n}\nfunction getRawJSDocModifierFlagsNoCache(node) {\n let flags = 0 /* None */;\n if (!!node.parent && !isParameter(node)) {\n if (isInJSFile(node)) {\n if (getJSDocPublicTagNoCache(node)) flags |= 8388608 /* JSDocPublic */;\n if (getJSDocPrivateTagNoCache(node)) flags |= 16777216 /* JSDocPrivate */;\n if (getJSDocProtectedTagNoCache(node)) flags |= 33554432 /* JSDocProtected */;\n if (getJSDocReadonlyTagNoCache(node)) flags |= 67108864 /* JSDocReadonly */;\n if (getJSDocOverrideTagNoCache(node)) flags |= 134217728 /* JSDocOverride */;\n }\n if (getJSDocDeprecatedTagNoCache(node)) flags |= 65536 /* Deprecated */;\n }\n return flags;\n}\nfunction selectSyntacticModifierFlags(flags) {\n return flags & 65535 /* SyntacticModifiers */;\n}\nfunction selectEffectiveModifierFlags(flags) {\n return flags & 131071 /* NonCacheOnlyModifiers */ | (flags & 260046848 /* JSDocCacheOnlyModifiers */) >>> 23;\n}\nfunction getJSDocModifierFlagsNoCache(node) {\n return selectEffectiveModifierFlags(getRawJSDocModifierFlagsNoCache(node));\n}\nfunction getEffectiveModifierFlagsNoCache(node) {\n return getSyntacticModifierFlagsNoCache(node) | getJSDocModifierFlagsNoCache(node);\n}\nfunction getSyntacticModifierFlagsNoCache(node) {\n let flags = canHaveModifiers(node) ? modifiersToFlags(node.modifiers) : 0 /* None */;\n if (node.flags & 8 /* NestedNamespace */ || node.kind === 80 /* Identifier */ && node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n flags |= 32 /* Export */;\n }\n return flags;\n}\nfunction modifiersToFlags(modifiers) {\n let flags = 0 /* None */;\n if (modifiers) {\n for (const modifier of modifiers) {\n flags |= modifierToFlag(modifier.kind);\n }\n }\n return flags;\n}\nfunction modifierToFlag(token) {\n switch (token) {\n case 126 /* StaticKeyword */:\n return 256 /* Static */;\n case 125 /* PublicKeyword */:\n return 1 /* Public */;\n case 124 /* ProtectedKeyword */:\n return 4 /* Protected */;\n case 123 /* PrivateKeyword */:\n return 2 /* Private */;\n case 128 /* AbstractKeyword */:\n return 64 /* Abstract */;\n case 129 /* AccessorKeyword */:\n return 512 /* Accessor */;\n case 95 /* ExportKeyword */:\n return 32 /* Export */;\n case 138 /* DeclareKeyword */:\n return 128 /* Ambient */;\n case 87 /* ConstKeyword */:\n return 4096 /* Const */;\n case 90 /* DefaultKeyword */:\n return 2048 /* Default */;\n case 134 /* AsyncKeyword */:\n return 1024 /* Async */;\n case 148 /* ReadonlyKeyword */:\n return 8 /* Readonly */;\n case 164 /* OverrideKeyword */:\n return 16 /* Override */;\n case 103 /* InKeyword */:\n return 8192 /* In */;\n case 147 /* OutKeyword */:\n return 16384 /* Out */;\n case 171 /* Decorator */:\n return 32768 /* Decorator */;\n }\n return 0 /* None */;\n}\nfunction isBinaryLogicalOperator(token) {\n return token === 57 /* BarBarToken */ || token === 56 /* AmpersandAmpersandToken */;\n}\nfunction isLogicalOperator(token) {\n return isBinaryLogicalOperator(token) || token === 54 /* ExclamationToken */;\n}\nfunction isLogicalOrCoalescingAssignmentOperator(token) {\n return token === 76 /* BarBarEqualsToken */ || token === 77 /* AmpersandAmpersandEqualsToken */ || token === 78 /* QuestionQuestionEqualsToken */;\n}\nfunction isLogicalOrCoalescingAssignmentExpression(expr) {\n return isBinaryExpression(expr) && isLogicalOrCoalescingAssignmentOperator(expr.operatorToken.kind);\n}\nfunction isLogicalOrCoalescingBinaryOperator(token) {\n return isBinaryLogicalOperator(token) || token === 61 /* QuestionQuestionToken */;\n}\nfunction isLogicalOrCoalescingBinaryExpression(expr) {\n return isBinaryExpression(expr) && isLogicalOrCoalescingBinaryOperator(expr.operatorToken.kind);\n}\nfunction isAssignmentOperator(token) {\n return token >= 64 /* FirstAssignment */ && token <= 79 /* LastAssignment */;\n}\nfunction tryGetClassExtendingExpressionWithTypeArguments(node) {\n const cls = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node);\n return cls && !cls.isImplements ? cls.class : void 0;\n}\nfunction tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node) {\n if (isExpressionWithTypeArguments(node)) {\n if (isHeritageClause(node.parent) && isClassLike(node.parent.parent)) {\n return { class: node.parent.parent, isImplements: node.parent.token === 119 /* ImplementsKeyword */ };\n }\n if (isJSDocAugmentsTag(node.parent)) {\n const host = getEffectiveJSDocHost(node.parent);\n if (host && isClassLike(host)) {\n return { class: host, isImplements: false };\n }\n }\n }\n return void 0;\n}\nfunction isAssignmentExpression(node, excludeCompoundAssignment) {\n return isBinaryExpression(node) && (excludeCompoundAssignment ? node.operatorToken.kind === 64 /* EqualsToken */ : isAssignmentOperator(node.operatorToken.kind)) && isLeftHandSideExpression(node.left);\n}\nfunction isDestructuringAssignment(node) {\n if (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n )) {\n const kind = node.left.kind;\n return kind === 211 /* ObjectLiteralExpression */ || kind === 210 /* ArrayLiteralExpression */;\n }\n return false;\n}\nfunction isExpressionWithTypeArgumentsInClassExtendsClause(node) {\n return tryGetClassExtendingExpressionWithTypeArguments(node) !== void 0;\n}\nfunction isEntityNameExpression(node) {\n return node.kind === 80 /* Identifier */ || isPropertyAccessEntityNameExpression(node);\n}\nfunction getFirstIdentifier(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return node;\n case 167 /* QualifiedName */:\n do {\n node = node.left;\n } while (node.kind !== 80 /* Identifier */);\n return node;\n case 212 /* PropertyAccessExpression */:\n do {\n node = node.expression;\n } while (node.kind !== 80 /* Identifier */);\n return node;\n }\n}\nfunction isDottedName(node) {\n return node.kind === 80 /* Identifier */ || node.kind === 110 /* ThisKeyword */ || node.kind === 108 /* SuperKeyword */ || node.kind === 237 /* MetaProperty */ || node.kind === 212 /* PropertyAccessExpression */ && isDottedName(node.expression) || node.kind === 218 /* ParenthesizedExpression */ && isDottedName(node.expression);\n}\nfunction isPropertyAccessEntityNameExpression(node) {\n return isPropertyAccessExpression(node) && isIdentifier(node.name) && isEntityNameExpression(node.expression);\n}\nfunction tryGetPropertyAccessOrIdentifierToString(expr) {\n if (isPropertyAccessExpression(expr)) {\n const baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n if (baseStr !== void 0) {\n return baseStr + \".\" + entityNameToString(expr.name);\n }\n } else if (isElementAccessExpression(expr)) {\n const baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n if (baseStr !== void 0 && isPropertyName(expr.argumentExpression)) {\n return baseStr + \".\" + getPropertyNameForPropertyNameNode(expr.argumentExpression);\n }\n } else if (isIdentifier(expr)) {\n return unescapeLeadingUnderscores(expr.escapedText);\n } else if (isJsxNamespacedName(expr)) {\n return getTextOfJsxNamespacedName(expr);\n }\n return void 0;\n}\nfunction isPrototypeAccess(node) {\n return isBindableStaticAccessExpression(node) && getElementOrPropertyAccessName(node) === \"prototype\";\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccess(node) {\n return node.parent.kind === 167 /* QualifiedName */ && node.parent.right === node || node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.name === node || node.parent.kind === 237 /* MetaProperty */ && node.parent.name === node;\n}\nfunction isRightSideOfAccessExpression(node) {\n return !!node.parent && (isPropertyAccessExpression(node.parent) && node.parent.name === node || isElementAccessExpression(node.parent) && node.parent.argumentExpression === node);\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(node) {\n return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node || isJSDocMemberName(node.parent) && node.parent.right === node;\n}\nfunction isInstanceOfExpression(node) {\n return isBinaryExpression(node) && node.operatorToken.kind === 104 /* InstanceOfKeyword */;\n}\nfunction isRightSideOfInstanceofExpression(node) {\n return isInstanceOfExpression(node.parent) && node === node.parent.right;\n}\nfunction isEmptyObjectLiteral(expression) {\n return expression.kind === 211 /* ObjectLiteralExpression */ && expression.properties.length === 0;\n}\nfunction isEmptyArrayLiteral(expression) {\n return expression.kind === 210 /* ArrayLiteralExpression */ && expression.elements.length === 0;\n}\nfunction getLocalSymbolForExportDefault(symbol) {\n if (!isExportDefaultSymbol(symbol) || !symbol.declarations) return void 0;\n for (const decl of symbol.declarations) {\n if (decl.localSymbol) return decl.localSymbol;\n }\n return void 0;\n}\nfunction isExportDefaultSymbol(symbol) {\n return symbol && length(symbol.declarations) > 0 && hasSyntacticModifier(symbol.declarations[0], 2048 /* Default */);\n}\nfunction tryExtractTSExtension(fileName) {\n return find(supportedTSExtensionsForExtractExtension, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction getExpandedCharCodes(input) {\n const output = [];\n const length2 = input.length;\n for (let i = 0; i < length2; i++) {\n const charCode = input.charCodeAt(i);\n if (charCode < 128) {\n output.push(charCode);\n } else if (charCode < 2048) {\n output.push(charCode >> 6 | 192);\n output.push(charCode & 63 | 128);\n } else if (charCode < 65536) {\n output.push(charCode >> 12 | 224);\n output.push(charCode >> 6 & 63 | 128);\n output.push(charCode & 63 | 128);\n } else if (charCode < 131072) {\n output.push(charCode >> 18 | 240);\n output.push(charCode >> 12 & 63 | 128);\n output.push(charCode >> 6 & 63 | 128);\n output.push(charCode & 63 | 128);\n } else {\n Debug.assert(false, \"Unexpected code point\");\n }\n }\n return output;\n}\nvar base64Digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction convertToBase64(input) {\n let result = \"\";\n const charCodes = getExpandedCharCodes(input);\n let i = 0;\n const length2 = charCodes.length;\n let byte1, byte2, byte3, byte4;\n while (i < length2) {\n byte1 = charCodes[i] >> 2;\n byte2 = (charCodes[i] & 3) << 4 | charCodes[i + 1] >> 4;\n byte3 = (charCodes[i + 1] & 15) << 2 | charCodes[i + 2] >> 6;\n byte4 = charCodes[i + 2] & 63;\n if (i + 1 >= length2) {\n byte3 = byte4 = 64;\n } else if (i + 2 >= length2) {\n byte4 = 64;\n }\n result += base64Digits.charAt(byte1) + base64Digits.charAt(byte2) + base64Digits.charAt(byte3) + base64Digits.charAt(byte4);\n i += 3;\n }\n return result;\n}\nfunction getStringFromExpandedCharCodes(codes) {\n let output = \"\";\n let i = 0;\n const length2 = codes.length;\n while (i < length2) {\n const charCode = codes[i];\n if (charCode < 128) {\n output += String.fromCharCode(charCode);\n i++;\n } else if ((charCode & 192) === 192) {\n let value = charCode & 63;\n i++;\n let nextCode = codes[i];\n while ((nextCode & 192) === 128) {\n value = value << 6 | nextCode & 63;\n i++;\n nextCode = codes[i];\n }\n output += String.fromCharCode(value);\n } else {\n output += String.fromCharCode(charCode);\n i++;\n }\n }\n return output;\n}\nfunction base64encode(host, input) {\n if (host && host.base64encode) {\n return host.base64encode(input);\n }\n return convertToBase64(input);\n}\nfunction base64decode(host, input) {\n if (host && host.base64decode) {\n return host.base64decode(input);\n }\n const length2 = input.length;\n const expandedCharCodes = [];\n let i = 0;\n while (i < length2) {\n if (input.charCodeAt(i) === base64Digits.charCodeAt(64)) {\n break;\n }\n const ch1 = base64Digits.indexOf(input[i]);\n const ch2 = base64Digits.indexOf(input[i + 1]);\n const ch3 = base64Digits.indexOf(input[i + 2]);\n const ch4 = base64Digits.indexOf(input[i + 3]);\n const code1 = (ch1 & 63) << 2 | ch2 >> 4 & 3;\n const code2 = (ch2 & 15) << 4 | ch3 >> 2 & 15;\n const code3 = (ch3 & 3) << 6 | ch4 & 63;\n if (code2 === 0 && ch3 !== 0) {\n expandedCharCodes.push(code1);\n } else if (code3 === 0 && ch4 !== 0) {\n expandedCharCodes.push(code1, code2);\n } else {\n expandedCharCodes.push(code1, code2, code3);\n }\n i += 4;\n }\n return getStringFromExpandedCharCodes(expandedCharCodes);\n}\nfunction readJsonOrUndefined(path, hostOrText) {\n const jsonText = isString(hostOrText) ? hostOrText : hostOrText.readFile(path);\n if (!jsonText) return void 0;\n let result = tryParseJson(jsonText);\n if (result === void 0) {\n const looseResult = parseConfigFileTextToJson(path, jsonText);\n if (!looseResult.error) {\n result = looseResult.config;\n }\n }\n return result;\n}\nfunction readJson(path, host) {\n return readJsonOrUndefined(path, host) || {};\n}\nfunction tryParseJson(text) {\n try {\n return JSON.parse(text);\n } catch {\n return void 0;\n }\n}\nfunction directoryProbablyExists(directoryName, host) {\n return !host.directoryExists || host.directoryExists(directoryName);\n}\nvar carriageReturnLineFeed = \"\\r\\n\";\nvar lineFeed = \"\\n\";\nfunction getNewLineCharacter(options) {\n switch (options.newLine) {\n case 0 /* CarriageReturnLineFeed */:\n return carriageReturnLineFeed;\n case 1 /* LineFeed */:\n case void 0:\n return lineFeed;\n }\n}\nfunction createRange(pos, end = pos) {\n Debug.assert(end >= pos || end === -1);\n return { pos, end };\n}\nfunction moveRangeEnd(range, end) {\n return createRange(range.pos, end);\n}\nfunction moveRangePos(range, pos) {\n return createRange(pos, range.end);\n}\nfunction moveRangePastDecorators(node) {\n const lastDecorator = canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0;\n return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? moveRangePos(node, lastDecorator.end) : node;\n}\nfunction moveRangePastModifiers(node) {\n if (isPropertyDeclaration(node) || isMethodDeclaration(node)) {\n return moveRangePos(node, node.name.pos);\n }\n const lastModifier = canHaveModifiers(node) ? lastOrUndefined(node.modifiers) : void 0;\n return lastModifier && !positionIsSynthesized(lastModifier.end) ? moveRangePos(node, lastModifier.end) : moveRangePastDecorators(node);\n}\nfunction createTokenRange(pos, token) {\n return createRange(pos, pos + tokenToString(token).length);\n}\nfunction rangeIsOnSingleLine(range, sourceFile) {\n return rangeStartIsOnSameLineAsRangeEnd(range, range, sourceFile);\n}\nfunction rangeStartPositionsAreOnSameLine(range1, range2, sourceFile) {\n return positionsAreOnSameLine(\n getStartPositionOfRange(\n range1,\n sourceFile,\n /*includeComments*/\n false\n ),\n getStartPositionOfRange(\n range2,\n sourceFile,\n /*includeComments*/\n false\n ),\n sourceFile\n );\n}\nfunction rangeEndPositionsAreOnSameLine(range1, range2, sourceFile) {\n return positionsAreOnSameLine(range1.end, range2.end, sourceFile);\n}\nfunction rangeStartIsOnSameLineAsRangeEnd(range1, range2, sourceFile) {\n return positionsAreOnSameLine(getStartPositionOfRange(\n range1,\n sourceFile,\n /*includeComments*/\n false\n ), range2.end, sourceFile);\n}\nfunction rangeEndIsOnSameLineAsRangeStart(range1, range2, sourceFile) {\n return positionsAreOnSameLine(range1.end, getStartPositionOfRange(\n range2,\n sourceFile,\n /*includeComments*/\n false\n ), sourceFile);\n}\nfunction getLinesBetweenRangeEndAndRangeStart(range1, range2, sourceFile, includeSecondRangeComments) {\n const range2Start = getStartPositionOfRange(range2, sourceFile, includeSecondRangeComments);\n return getLinesBetweenPositions(sourceFile, range1.end, range2Start);\n}\nfunction getLinesBetweenRangeEndPositions(range1, range2, sourceFile) {\n return getLinesBetweenPositions(sourceFile, range1.end, range2.end);\n}\nfunction isNodeArrayMultiLine(list, sourceFile) {\n return !positionsAreOnSameLine(list.pos, list.end, sourceFile);\n}\nfunction positionsAreOnSameLine(pos1, pos2, sourceFile) {\n return getLinesBetweenPositions(sourceFile, pos1, pos2) === 0;\n}\nfunction getStartPositionOfRange(range, sourceFile, includeComments) {\n return positionIsSynthesized(range.pos) ? -1 : skipTrivia(\n sourceFile.text,\n range.pos,\n /*stopAfterLineBreak*/\n false,\n includeComments\n );\n}\nfunction getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) {\n const startPos = skipTrivia(\n sourceFile.text,\n pos,\n /*stopAfterLineBreak*/\n false,\n includeComments\n );\n const prevPos = getPreviousNonWhitespacePosition(startPos, stopPos, sourceFile);\n return getLinesBetweenPositions(sourceFile, prevPos ?? stopPos, startPos);\n}\nfunction getLinesBetweenPositionAndNextNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) {\n const nextPos = skipTrivia(\n sourceFile.text,\n pos,\n /*stopAfterLineBreak*/\n false,\n includeComments\n );\n return getLinesBetweenPositions(sourceFile, pos, Math.min(stopPos, nextPos));\n}\nfunction rangeContainsRange(r1, r2) {\n return startEndContainsRange(r1.pos, r1.end, r2);\n}\nfunction startEndContainsRange(start, end, range) {\n return start <= range.pos && end >= range.end;\n}\nfunction getPreviousNonWhitespacePosition(pos, stopPos = 0, sourceFile) {\n while (pos-- > stopPos) {\n if (!isWhiteSpaceLike(sourceFile.text.charCodeAt(pos))) {\n return pos;\n }\n }\n}\nfunction isDeclarationNameOfEnumOrNamespace(node) {\n const parseNode = getParseTreeNode(node);\n if (parseNode) {\n switch (parseNode.parent.kind) {\n case 267 /* EnumDeclaration */:\n case 268 /* ModuleDeclaration */:\n return parseNode === parseNode.parent.name;\n }\n }\n return false;\n}\nfunction getInitializedVariables(node) {\n return filter(node.declarations, isInitializedVariable);\n}\nfunction isInitializedVariable(node) {\n return isVariableDeclaration(node) && node.initializer !== void 0;\n}\nfunction isWatchSet(options) {\n return options.watch && hasProperty(options, \"watch\");\n}\nfunction closeFileWatcher(watcher) {\n watcher.close();\n}\nfunction getCheckFlags(symbol) {\n return symbol.flags & 33554432 /* Transient */ ? symbol.links.checkFlags : 0;\n}\nfunction getDeclarationModifierFlagsFromSymbol(s, isWrite = false) {\n if (s.valueDeclaration) {\n const declaration = isWrite && s.declarations && find(s.declarations, isSetAccessorDeclaration) || s.flags & 32768 /* GetAccessor */ && find(s.declarations, isGetAccessorDeclaration) || s.valueDeclaration;\n const flags = getCombinedModifierFlags(declaration);\n return s.parent && s.parent.flags & 32 /* Class */ ? flags : flags & ~7 /* AccessibilityModifier */;\n }\n if (getCheckFlags(s) & 6 /* Synthetic */) {\n const checkFlags = s.links.checkFlags;\n const accessModifier = checkFlags & 1024 /* ContainsPrivate */ ? 2 /* Private */ : checkFlags & 256 /* ContainsPublic */ ? 1 /* Public */ : 4 /* Protected */;\n const staticModifier = checkFlags & 2048 /* ContainsStatic */ ? 256 /* Static */ : 0;\n return accessModifier | staticModifier;\n }\n if (s.flags & 4194304 /* Prototype */) {\n return 1 /* Public */ | 256 /* Static */;\n }\n return 0;\n}\nfunction skipAlias(symbol, checker) {\n return symbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(symbol) : symbol;\n}\nfunction getCombinedLocalAndExportSymbolFlags(symbol) {\n return symbol.exportSymbol ? symbol.exportSymbol.flags | symbol.flags : symbol.flags;\n}\nfunction isWriteOnlyAccess(node) {\n return accessKind(node) === 1 /* Write */;\n}\nfunction isWriteAccess(node) {\n return accessKind(node) !== 0 /* Read */;\n}\nfunction accessKind(node) {\n const { parent: parent2 } = node;\n switch (parent2 == null ? void 0 : parent2.kind) {\n case 218 /* ParenthesizedExpression */:\n return accessKind(parent2);\n case 226 /* PostfixUnaryExpression */:\n case 225 /* PrefixUnaryExpression */:\n const { operator } = parent2;\n return operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;\n case 227 /* BinaryExpression */:\n const { left, operatorToken } = parent2;\n return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 64 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;\n case 212 /* PropertyAccessExpression */:\n return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);\n case 304 /* PropertyAssignment */: {\n const parentAccess = accessKind(parent2.parent);\n return node === parent2.name ? reverseAccessKind(parentAccess) : parentAccess;\n }\n case 305 /* ShorthandPropertyAssignment */:\n return node === parent2.objectAssignmentInitializer ? 0 /* Read */ : accessKind(parent2.parent);\n case 210 /* ArrayLiteralExpression */:\n return accessKind(parent2);\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n return node === parent2.initializer ? 1 /* Write */ : 0 /* Read */;\n default:\n return 0 /* Read */;\n }\n}\nfunction reverseAccessKind(a) {\n switch (a) {\n case 0 /* Read */:\n return 1 /* Write */;\n case 1 /* Write */:\n return 0 /* Read */;\n case 2 /* ReadWrite */:\n return 2 /* ReadWrite */;\n default:\n return Debug.assertNever(a);\n }\n}\nfunction compareDataObjects(dst, src) {\n if (!dst || !src || Object.keys(dst).length !== Object.keys(src).length) {\n return false;\n }\n for (const e in dst) {\n if (typeof dst[e] === \"object\") {\n if (!compareDataObjects(dst[e], src[e])) {\n return false;\n }\n } else if (typeof dst[e] !== \"function\") {\n if (dst[e] !== src[e]) {\n return false;\n }\n }\n }\n return true;\n}\nfunction clearMap(map2, onDeleteValue) {\n map2.forEach(onDeleteValue);\n map2.clear();\n}\nfunction mutateMapSkippingNewValues(map2, newMap, options) {\n const { onDeleteValue, onExistingValue } = options;\n map2.forEach((existingValue, key) => {\n var _a;\n if (!(newMap == null ? void 0 : newMap.has(key))) {\n map2.delete(key);\n onDeleteValue(existingValue, key);\n } else if (onExistingValue) {\n onExistingValue(existingValue, (_a = newMap.get) == null ? void 0 : _a.call(newMap, key), key);\n }\n });\n}\nfunction mutateMap(map2, newMap, options) {\n mutateMapSkippingNewValues(map2, newMap, options);\n const { createNewValue } = options;\n newMap == null ? void 0 : newMap.forEach((valueInNewMap, key) => {\n if (!map2.has(key)) {\n map2.set(key, createNewValue(key, valueInNewMap));\n }\n });\n}\nfunction isAbstractConstructorSymbol(symbol) {\n if (symbol.flags & 32 /* Class */) {\n const declaration = getClassLikeDeclarationOfSymbol(symbol);\n return !!declaration && hasSyntacticModifier(declaration, 64 /* Abstract */);\n }\n return false;\n}\nfunction getClassLikeDeclarationOfSymbol(symbol) {\n var _a;\n return (_a = symbol.declarations) == null ? void 0 : _a.find(isClassLike);\n}\nfunction getObjectFlags(type) {\n return type.flags & 3899393 /* ObjectFlagsType */ ? type.objectFlags : 0;\n}\nfunction isUMDExportSymbol(symbol) {\n return !!symbol && !!symbol.declarations && !!symbol.declarations[0] && isNamespaceExportDeclaration(symbol.declarations[0]);\n}\nfunction showModuleSpecifier({ moduleSpecifier }) {\n return isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : getTextOfNode(moduleSpecifier);\n}\nfunction getLastChild(node) {\n let lastChild;\n forEachChild(node, (child) => {\n if (nodeIsPresent(child)) lastChild = child;\n }, (children) => {\n for (let i = children.length - 1; i >= 0; i--) {\n if (nodeIsPresent(children[i])) {\n lastChild = children[i];\n break;\n }\n }\n });\n return lastChild;\n}\nfunction addToSeen(seen, key) {\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n}\nfunction isObjectTypeDeclaration(node) {\n return isClassLike(node) || isInterfaceDeclaration(node) || isTypeLiteralNode(node);\n}\nfunction isTypeNodeKind(kind) {\n return kind >= 183 /* FirstTypeNode */ && kind <= 206 /* LastTypeNode */ || kind === 133 /* AnyKeyword */ || kind === 159 /* UnknownKeyword */ || kind === 150 /* NumberKeyword */ || kind === 163 /* BigIntKeyword */ || kind === 151 /* ObjectKeyword */ || kind === 136 /* BooleanKeyword */ || kind === 154 /* StringKeyword */ || kind === 155 /* SymbolKeyword */ || kind === 116 /* VoidKeyword */ || kind === 157 /* UndefinedKeyword */ || kind === 146 /* NeverKeyword */ || kind === 141 /* IntrinsicKeyword */ || kind === 234 /* ExpressionWithTypeArguments */ || kind === 313 /* JSDocAllType */ || kind === 314 /* JSDocUnknownType */ || kind === 315 /* JSDocNullableType */ || kind === 316 /* JSDocNonNullableType */ || kind === 317 /* JSDocOptionalType */ || kind === 318 /* JSDocFunctionType */ || kind === 319 /* JSDocVariadicType */;\n}\nfunction isAccessExpression(node) {\n return node.kind === 212 /* PropertyAccessExpression */ || node.kind === 213 /* ElementAccessExpression */;\n}\nfunction getNameOfAccessExpression(node) {\n if (node.kind === 212 /* PropertyAccessExpression */) {\n return node.name;\n }\n Debug.assert(node.kind === 213 /* ElementAccessExpression */);\n return node.argumentExpression;\n}\nfunction isNamedImportsOrExports(node) {\n return node.kind === 276 /* NamedImports */ || node.kind === 280 /* NamedExports */;\n}\nfunction getLeftmostAccessExpression(expr) {\n while (isAccessExpression(expr)) {\n expr = expr.expression;\n }\n return expr;\n}\nfunction forEachNameInAccessChainWalkingLeft(name, action) {\n if (isAccessExpression(name.parent) && isRightSideOfAccessExpression(name)) {\n return walkAccessExpression(name.parent);\n }\n function walkAccessExpression(access) {\n if (access.kind === 212 /* PropertyAccessExpression */) {\n const res = action(access.name);\n if (res !== void 0) {\n return res;\n }\n } else if (access.kind === 213 /* ElementAccessExpression */) {\n if (isIdentifier(access.argumentExpression) || isStringLiteralLike(access.argumentExpression)) {\n const res = action(access.argumentExpression);\n if (res !== void 0) {\n return res;\n }\n } else {\n return void 0;\n }\n }\n if (isAccessExpression(access.expression)) {\n return walkAccessExpression(access.expression);\n }\n if (isIdentifier(access.expression)) {\n return action(access.expression);\n }\n return void 0;\n }\n}\nfunction getLeftmostExpression(node, stopAtCallExpressions) {\n while (true) {\n switch (node.kind) {\n case 226 /* PostfixUnaryExpression */:\n node = node.operand;\n continue;\n case 227 /* BinaryExpression */:\n node = node.left;\n continue;\n case 228 /* ConditionalExpression */:\n node = node.condition;\n continue;\n case 216 /* TaggedTemplateExpression */:\n node = node.tag;\n continue;\n case 214 /* CallExpression */:\n if (stopAtCallExpressions) {\n return node;\n }\n // falls through\n case 235 /* AsExpression */:\n case 213 /* ElementAccessExpression */:\n case 212 /* PropertyAccessExpression */:\n case 236 /* NonNullExpression */:\n case 356 /* PartiallyEmittedExpression */:\n case 239 /* SatisfiesExpression */:\n node = node.expression;\n continue;\n }\n return node;\n }\n}\nfunction Symbol4(flags, name) {\n this.flags = flags;\n this.escapedName = name;\n this.declarations = void 0;\n this.valueDeclaration = void 0;\n this.id = 0;\n this.mergeId = 0;\n this.parent = void 0;\n this.members = void 0;\n this.exports = void 0;\n this.exportSymbol = void 0;\n this.constEnumOnlyModule = void 0;\n this.isReferenced = void 0;\n this.lastAssignmentPos = void 0;\n this.links = void 0;\n}\nfunction Type3(checker, flags) {\n this.flags = flags;\n if (Debug.isDebugging || tracing) {\n this.checker = checker;\n }\n}\nfunction Signature2(checker, flags) {\n this.flags = flags;\n if (Debug.isDebugging) {\n this.checker = checker;\n }\n}\nfunction Node4(kind, pos, end) {\n this.pos = pos;\n this.end = end;\n this.kind = kind;\n this.id = 0;\n this.flags = 0 /* None */;\n this.modifierFlagsCache = 0 /* None */;\n this.transformFlags = 0 /* None */;\n this.parent = void 0;\n this.original = void 0;\n this.emitNode = void 0;\n}\nfunction Token(kind, pos, end) {\n this.pos = pos;\n this.end = end;\n this.kind = kind;\n this.id = 0;\n this.flags = 0 /* None */;\n this.transformFlags = 0 /* None */;\n this.parent = void 0;\n this.emitNode = void 0;\n}\nfunction Identifier2(kind, pos, end) {\n this.pos = pos;\n this.end = end;\n this.kind = kind;\n this.id = 0;\n this.flags = 0 /* None */;\n this.transformFlags = 0 /* None */;\n this.parent = void 0;\n this.original = void 0;\n this.emitNode = void 0;\n}\nfunction SourceMapSource(fileName, text, skipTrivia2) {\n this.fileName = fileName;\n this.text = text;\n this.skipTrivia = skipTrivia2 || ((pos) => pos);\n}\nvar objectAllocator = {\n getNodeConstructor: () => Node4,\n getTokenConstructor: () => Token,\n getIdentifierConstructor: () => Identifier2,\n getPrivateIdentifierConstructor: () => Node4,\n getSourceFileConstructor: () => Node4,\n getSymbolConstructor: () => Symbol4,\n getTypeConstructor: () => Type3,\n getSignatureConstructor: () => Signature2,\n getSourceMapSourceConstructor: () => SourceMapSource\n};\nvar objectAllocatorPatchers = [];\nfunction addObjectAllocatorPatcher(fn) {\n objectAllocatorPatchers.push(fn);\n fn(objectAllocator);\n}\nfunction setObjectAllocator(alloc) {\n Object.assign(objectAllocator, alloc);\n forEach(objectAllocatorPatchers, (fn) => fn(objectAllocator));\n}\nfunction formatStringFromArgs(text, args) {\n return text.replace(/\\{(\\d+)\\}/g, (_match, index) => \"\" + Debug.checkDefined(args[+index]));\n}\nvar localizedDiagnosticMessages;\nfunction setLocalizedDiagnosticMessages(messages) {\n localizedDiagnosticMessages = messages;\n}\nfunction maybeSetLocalizedDiagnosticMessages(getMessages) {\n if (!localizedDiagnosticMessages && getMessages) {\n localizedDiagnosticMessages = getMessages();\n }\n}\nfunction getLocaleSpecificMessage(message) {\n return localizedDiagnosticMessages && localizedDiagnosticMessages[message.key] || message.message;\n}\nfunction createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args) {\n if (start + length2 > sourceText.length) {\n length2 = sourceText.length - start;\n }\n assertDiagnosticLocation(sourceText, start, length2);\n let text = getLocaleSpecificMessage(message);\n if (some(args)) {\n text = formatStringFromArgs(text, args);\n }\n return {\n file: void 0,\n start,\n length: length2,\n messageText: text,\n category: message.category,\n code: message.code,\n reportsUnnecessary: message.reportsUnnecessary,\n fileName\n };\n}\nfunction isDiagnosticWithDetachedLocation(diagnostic) {\n return diagnostic.file === void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0 && typeof diagnostic.fileName === \"string\";\n}\nfunction attachFileToDiagnostic(diagnostic, file) {\n const fileName = file.fileName || \"\";\n const length2 = file.text.length;\n Debug.assertEqual(diagnostic.fileName, fileName);\n Debug.assertLessThanOrEqual(diagnostic.start, length2);\n Debug.assertLessThanOrEqual(diagnostic.start + diagnostic.length, length2);\n const diagnosticWithLocation = {\n file,\n start: diagnostic.start,\n length: diagnostic.length,\n messageText: diagnostic.messageText,\n category: diagnostic.category,\n code: diagnostic.code,\n reportsUnnecessary: diagnostic.reportsUnnecessary\n };\n if (diagnostic.relatedInformation) {\n diagnosticWithLocation.relatedInformation = [];\n for (const related of diagnostic.relatedInformation) {\n if (isDiagnosticWithDetachedLocation(related) && related.fileName === fileName) {\n Debug.assertLessThanOrEqual(related.start, length2);\n Debug.assertLessThanOrEqual(related.start + related.length, length2);\n diagnosticWithLocation.relatedInformation.push(attachFileToDiagnostic(related, file));\n } else {\n diagnosticWithLocation.relatedInformation.push(related);\n }\n }\n }\n return diagnosticWithLocation;\n}\nfunction attachFileToDiagnostics(diagnostics, file) {\n const diagnosticsWithLocation = [];\n for (const diagnostic of diagnostics) {\n diagnosticsWithLocation.push(attachFileToDiagnostic(diagnostic, file));\n }\n return diagnosticsWithLocation;\n}\nfunction createFileDiagnostic(file, start, length2, message, ...args) {\n assertDiagnosticLocation(file.text, start, length2);\n let text = getLocaleSpecificMessage(message);\n if (some(args)) {\n text = formatStringFromArgs(text, args);\n }\n return {\n file,\n start,\n length: length2,\n messageText: text,\n category: message.category,\n code: message.code,\n reportsUnnecessary: message.reportsUnnecessary,\n reportsDeprecated: message.reportsDeprecated\n };\n}\nfunction formatMessage(message, ...args) {\n let text = getLocaleSpecificMessage(message);\n if (some(args)) {\n text = formatStringFromArgs(text, args);\n }\n return text;\n}\nfunction createCompilerDiagnostic(message, ...args) {\n let text = getLocaleSpecificMessage(message);\n if (some(args)) {\n text = formatStringFromArgs(text, args);\n }\n return {\n file: void 0,\n start: void 0,\n length: void 0,\n messageText: text,\n category: message.category,\n code: message.code,\n reportsUnnecessary: message.reportsUnnecessary,\n reportsDeprecated: message.reportsDeprecated\n };\n}\nfunction createCompilerDiagnosticFromMessageChain(chain, relatedInformation) {\n return {\n file: void 0,\n start: void 0,\n length: void 0,\n code: chain.code,\n category: chain.category,\n messageText: chain.next ? chain : chain.messageText,\n relatedInformation\n };\n}\nfunction chainDiagnosticMessages(details, message, ...args) {\n let text = getLocaleSpecificMessage(message);\n if (some(args)) {\n text = formatStringFromArgs(text, args);\n }\n return {\n messageText: text,\n category: message.category,\n code: message.code,\n next: details === void 0 || Array.isArray(details) ? details : [details]\n };\n}\nfunction concatenateDiagnosticMessageChains(headChain, tailChain) {\n let lastChain = headChain;\n while (lastChain.next) {\n lastChain = lastChain.next[0];\n }\n lastChain.next = [tailChain];\n}\nfunction getDiagnosticFilePath(diagnostic) {\n return diagnostic.file ? diagnostic.file.path : void 0;\n}\nfunction compareDiagnostics(d1, d2) {\n return compareDiagnosticsSkipRelatedInformation(d1, d2) || compareRelatedInformation(d1, d2) || 0 /* EqualTo */;\n}\nfunction compareDiagnosticsSkipRelatedInformation(d1, d2) {\n const code1 = getDiagnosticCode(d1);\n const code2 = getDiagnosticCode(d2);\n return compareStringsCaseSensitive(getDiagnosticFilePath(d1), getDiagnosticFilePath(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(code1, code2) || compareMessageText(d1, d2) || 0 /* EqualTo */;\n}\nfunction compareRelatedInformation(d1, d2) {\n if (!d1.relatedInformation && !d2.relatedInformation) {\n return 0 /* EqualTo */;\n }\n if (d1.relatedInformation && d2.relatedInformation) {\n return compareValues(d2.relatedInformation.length, d1.relatedInformation.length) || forEach(d1.relatedInformation, (d1i, index) => {\n const d2i = d2.relatedInformation[index];\n return compareDiagnostics(d1i, d2i);\n }) || 0 /* EqualTo */;\n }\n return d1.relatedInformation ? -1 /* LessThan */ : 1 /* GreaterThan */;\n}\nfunction compareMessageText(d1, d2) {\n let headMsg1 = getDiagnosticMessage(d1);\n let headMsg2 = getDiagnosticMessage(d2);\n if (typeof headMsg1 !== \"string\") {\n headMsg1 = headMsg1.messageText;\n }\n if (typeof headMsg2 !== \"string\") {\n headMsg2 = headMsg2.messageText;\n }\n const chain1 = typeof d1.messageText !== \"string\" ? d1.messageText.next : void 0;\n const chain2 = typeof d2.messageText !== \"string\" ? d2.messageText.next : void 0;\n let res = compareStringsCaseSensitive(headMsg1, headMsg2);\n if (res) {\n return res;\n }\n res = compareMessageChain(chain1, chain2);\n if (res) {\n return res;\n }\n if (d1.canonicalHead && !d2.canonicalHead) {\n return -1 /* LessThan */;\n }\n if (d2.canonicalHead && !d1.canonicalHead) {\n return 1 /* GreaterThan */;\n }\n return 0 /* EqualTo */;\n}\nfunction compareMessageChain(c1, c2) {\n if (c1 === void 0 && c2 === void 0) {\n return 0 /* EqualTo */;\n }\n if (c1 === void 0) {\n return 1 /* GreaterThan */;\n }\n if (c2 === void 0) {\n return -1 /* LessThan */;\n }\n return compareMessageChainSize(c1, c2) || compareMessageChainContent(c1, c2);\n}\nfunction compareMessageChainSize(c1, c2) {\n if (c1 === void 0 && c2 === void 0) {\n return 0 /* EqualTo */;\n }\n if (c1 === void 0) {\n return 1 /* GreaterThan */;\n }\n if (c2 === void 0) {\n return -1 /* LessThan */;\n }\n let res = compareValues(c2.length, c1.length);\n if (res) {\n return res;\n }\n for (let i = 0; i < c2.length; i++) {\n res = compareMessageChainSize(c1[i].next, c2[i].next);\n if (res) {\n return res;\n }\n }\n return 0 /* EqualTo */;\n}\nfunction compareMessageChainContent(c1, c2) {\n let res;\n for (let i = 0; i < c2.length; i++) {\n res = compareStringsCaseSensitive(c1[i].messageText, c2[i].messageText);\n if (res) {\n return res;\n }\n if (c1[i].next === void 0) {\n continue;\n }\n res = compareMessageChainContent(c1[i].next, c2[i].next);\n if (res) {\n return res;\n }\n }\n return 0 /* EqualTo */;\n}\nfunction diagnosticsEqualityComparer(d1, d2) {\n const code1 = getDiagnosticCode(d1);\n const code2 = getDiagnosticCode(d2);\n const msg1 = getDiagnosticMessage(d1);\n const msg2 = getDiagnosticMessage(d2);\n return compareStringsCaseSensitive(getDiagnosticFilePath(d1), getDiagnosticFilePath(d2)) === 0 /* EqualTo */ && compareValues(d1.start, d2.start) === 0 /* EqualTo */ && compareValues(d1.length, d2.length) === 0 /* EqualTo */ && compareValues(code1, code2) === 0 /* EqualTo */ && messageTextEqualityComparer(msg1, msg2);\n}\nfunction getDiagnosticCode(d) {\n var _a;\n return ((_a = d.canonicalHead) == null ? void 0 : _a.code) || d.code;\n}\nfunction getDiagnosticMessage(d) {\n var _a;\n return ((_a = d.canonicalHead) == null ? void 0 : _a.messageText) || d.messageText;\n}\nfunction messageTextEqualityComparer(m1, m2) {\n const t1 = typeof m1 === \"string\" ? m1 : m1.messageText;\n const t2 = typeof m2 === \"string\" ? m2 : m2.messageText;\n return compareStringsCaseSensitive(t1, t2) === 0 /* EqualTo */;\n}\nfunction getLanguageVariant(scriptKind) {\n return scriptKind === 4 /* TSX */ || scriptKind === 2 /* JSX */ || scriptKind === 1 /* JS */ || scriptKind === 6 /* JSON */ ? 1 /* JSX */ : 0 /* Standard */;\n}\nfunction walkTreeForJSXTags(node) {\n if (!(node.transformFlags & 2 /* ContainsJsx */)) return void 0;\n return isJsxOpeningLikeElement(node) || isJsxFragment(node) ? node : forEachChild(node, walkTreeForJSXTags);\n}\nfunction isFileModuleFromUsingJSXTag(file) {\n return !file.isDeclarationFile ? walkTreeForJSXTags(file) : void 0;\n}\nfunction isFileForcedToBeModuleByFormat(file, options) {\n return (getImpliedNodeFormatForEmitWorker(file, options) === 99 /* ESNext */ || fileExtensionIsOneOf(file.fileName, [\".cjs\" /* Cjs */, \".cts\" /* Cts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */])) && !file.isDeclarationFile ? true : void 0;\n}\nfunction getSetExternalModuleIndicator(options) {\n switch (getEmitModuleDetectionKind(options)) {\n case 3 /* Force */:\n return (file) => {\n file.externalModuleIndicator = isFileProbablyExternalModule(file) || !file.isDeclarationFile || void 0;\n };\n case 1 /* Legacy */:\n return (file) => {\n file.externalModuleIndicator = isFileProbablyExternalModule(file);\n };\n case 2 /* Auto */:\n const checks = [isFileProbablyExternalModule];\n if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n checks.push(isFileModuleFromUsingJSXTag);\n }\n checks.push(isFileForcedToBeModuleByFormat);\n const combined = or(...checks);\n const callback = (file) => void (file.externalModuleIndicator = combined(file, options));\n return callback;\n }\n}\nfunction importSyntaxAffectsModuleResolution(options) {\n const moduleResolution = getEmitModuleResolutionKind(options);\n return 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */ || getResolvePackageJsonExports(options) || getResolvePackageJsonImports(options);\n}\nfunction createComputedCompilerOptions(options) {\n return options;\n}\nvar _computedOptions = createComputedCompilerOptions({\n allowImportingTsExtensions: {\n dependencies: [\"rewriteRelativeImportExtensions\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.allowImportingTsExtensions || compilerOptions.rewriteRelativeImportExtensions);\n }\n },\n target: {\n dependencies: [\"module\"],\n computeValue: (compilerOptions) => {\n const target = compilerOptions.target === 0 /* ES3 */ ? void 0 : compilerOptions.target;\n return target ?? (compilerOptions.module === 100 /* Node16 */ && 9 /* ES2022 */ || compilerOptions.module === 101 /* Node18 */ && 9 /* ES2022 */ || compilerOptions.module === 102 /* Node20 */ && 10 /* ES2023 */ || compilerOptions.module === 199 /* NodeNext */ && 99 /* ESNext */ || 1 /* ES5 */);\n }\n },\n module: {\n dependencies: [\"target\"],\n computeValue: (compilerOptions) => {\n return typeof compilerOptions.module === \"number\" ? compilerOptions.module : _computedOptions.target.computeValue(compilerOptions) >= 2 /* ES2015 */ ? 5 /* ES2015 */ : 1 /* CommonJS */;\n }\n },\n moduleResolution: {\n dependencies: [\"module\", \"target\"],\n computeValue: (compilerOptions) => {\n let moduleResolution = compilerOptions.moduleResolution;\n if (moduleResolution === void 0) {\n switch (_computedOptions.module.computeValue(compilerOptions)) {\n case 1 /* CommonJS */:\n moduleResolution = 2 /* Node10 */;\n break;\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n moduleResolution = 3 /* Node16 */;\n break;\n case 199 /* NodeNext */:\n moduleResolution = 99 /* NodeNext */;\n break;\n case 200 /* Preserve */:\n moduleResolution = 100 /* Bundler */;\n break;\n default:\n moduleResolution = 1 /* Classic */;\n break;\n }\n }\n return moduleResolution;\n }\n },\n moduleDetection: {\n dependencies: [\"module\", \"target\"],\n computeValue: (compilerOptions) => {\n if (compilerOptions.moduleDetection !== void 0) {\n return compilerOptions.moduleDetection;\n }\n const moduleKind = _computedOptions.module.computeValue(compilerOptions);\n return 100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ ? 3 /* Force */ : 2 /* Auto */;\n }\n },\n isolatedModules: {\n dependencies: [\"verbatimModuleSyntax\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.isolatedModules || compilerOptions.verbatimModuleSyntax);\n }\n },\n esModuleInterop: {\n dependencies: [\"module\", \"target\"],\n computeValue: (compilerOptions) => {\n if (compilerOptions.esModuleInterop !== void 0) {\n return compilerOptions.esModuleInterop;\n }\n switch (_computedOptions.module.computeValue(compilerOptions)) {\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n case 200 /* Preserve */:\n return true;\n }\n return false;\n }\n },\n allowSyntheticDefaultImports: {\n dependencies: [\"module\", \"target\", \"moduleResolution\"],\n computeValue: (compilerOptions) => {\n if (compilerOptions.allowSyntheticDefaultImports !== void 0) {\n return compilerOptions.allowSyntheticDefaultImports;\n }\n return _computedOptions.esModuleInterop.computeValue(compilerOptions) || _computedOptions.module.computeValue(compilerOptions) === 4 /* System */ || _computedOptions.moduleResolution.computeValue(compilerOptions) === 100 /* Bundler */;\n }\n },\n resolvePackageJsonExports: {\n dependencies: [\"moduleResolution\"],\n computeValue: (compilerOptions) => {\n const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);\n if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n return false;\n }\n if (compilerOptions.resolvePackageJsonExports !== void 0) {\n return compilerOptions.resolvePackageJsonExports;\n }\n switch (moduleResolution) {\n case 3 /* Node16 */:\n case 99 /* NodeNext */:\n case 100 /* Bundler */:\n return true;\n }\n return false;\n }\n },\n resolvePackageJsonImports: {\n dependencies: [\"moduleResolution\", \"resolvePackageJsonExports\"],\n computeValue: (compilerOptions) => {\n const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);\n if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n return false;\n }\n if (compilerOptions.resolvePackageJsonImports !== void 0) {\n return compilerOptions.resolvePackageJsonImports;\n }\n switch (moduleResolution) {\n case 3 /* Node16 */:\n case 99 /* NodeNext */:\n case 100 /* Bundler */:\n return true;\n }\n return false;\n }\n },\n resolveJsonModule: {\n dependencies: [\"moduleResolution\", \"module\", \"target\"],\n computeValue: (compilerOptions) => {\n if (compilerOptions.resolveJsonModule !== void 0) {\n return compilerOptions.resolveJsonModule;\n }\n switch (_computedOptions.module.computeValue(compilerOptions)) {\n // TODO in 6.0: uncomment\n // case ModuleKind.Node16:\n // case ModuleKind.Node18:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n return true;\n }\n return _computedOptions.moduleResolution.computeValue(compilerOptions) === 100 /* Bundler */;\n }\n },\n declaration: {\n dependencies: [\"composite\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.declaration || compilerOptions.composite);\n }\n },\n preserveConstEnums: {\n dependencies: [\"isolatedModules\", \"verbatimModuleSyntax\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.preserveConstEnums || _computedOptions.isolatedModules.computeValue(compilerOptions));\n }\n },\n incremental: {\n dependencies: [\"composite\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.incremental || compilerOptions.composite);\n }\n },\n declarationMap: {\n dependencies: [\"declaration\", \"composite\"],\n computeValue: (compilerOptions) => {\n return !!(compilerOptions.declarationMap && _computedOptions.declaration.computeValue(compilerOptions));\n }\n },\n allowJs: {\n dependencies: [\"checkJs\"],\n computeValue: (compilerOptions) => {\n return compilerOptions.allowJs === void 0 ? !!compilerOptions.checkJs : compilerOptions.allowJs;\n }\n },\n useDefineForClassFields: {\n dependencies: [\"target\", \"module\"],\n computeValue: (compilerOptions) => {\n return compilerOptions.useDefineForClassFields === void 0 ? _computedOptions.target.computeValue(compilerOptions) >= 9 /* ES2022 */ : compilerOptions.useDefineForClassFields;\n }\n },\n noImplicitAny: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"noImplicitAny\");\n }\n },\n noImplicitThis: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"noImplicitThis\");\n }\n },\n strictNullChecks: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n }\n },\n strictFunctionTypes: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"strictFunctionTypes\");\n }\n },\n strictBindCallApply: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"strictBindCallApply\");\n }\n },\n strictPropertyInitialization: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"strictPropertyInitialization\");\n }\n },\n strictBuiltinIteratorReturn: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"strictBuiltinIteratorReturn\");\n }\n },\n alwaysStrict: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"alwaysStrict\");\n }\n },\n useUnknownInCatchVariables: {\n dependencies: [\"strict\"],\n computeValue: (compilerOptions) => {\n return getStrictOptionValue(compilerOptions, \"useUnknownInCatchVariables\");\n }\n }\n});\nvar computedOptions = _computedOptions;\nvar getAllowImportingTsExtensions = _computedOptions.allowImportingTsExtensions.computeValue;\nvar getEmitScriptTarget = _computedOptions.target.computeValue;\nvar getEmitModuleKind = _computedOptions.module.computeValue;\nvar getEmitModuleResolutionKind = _computedOptions.moduleResolution.computeValue;\nvar getEmitModuleDetectionKind = _computedOptions.moduleDetection.computeValue;\nvar getIsolatedModules = _computedOptions.isolatedModules.computeValue;\nvar getESModuleInterop = _computedOptions.esModuleInterop.computeValue;\nvar getAllowSyntheticDefaultImports = _computedOptions.allowSyntheticDefaultImports.computeValue;\nvar getResolvePackageJsonExports = _computedOptions.resolvePackageJsonExports.computeValue;\nvar getResolvePackageJsonImports = _computedOptions.resolvePackageJsonImports.computeValue;\nvar getResolveJsonModule = _computedOptions.resolveJsonModule.computeValue;\nvar getEmitDeclarations = _computedOptions.declaration.computeValue;\nvar shouldPreserveConstEnums = _computedOptions.preserveConstEnums.computeValue;\nvar isIncrementalCompilation = _computedOptions.incremental.computeValue;\nvar getAreDeclarationMapsEnabled = _computedOptions.declarationMap.computeValue;\nvar getAllowJSCompilerOption = _computedOptions.allowJs.computeValue;\nvar getUseDefineForClassFields = _computedOptions.useDefineForClassFields.computeValue;\nfunction emitModuleKindIsNonNodeESM(moduleKind) {\n return moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */;\n}\nfunction hasJsonModuleEmitEnabled(options) {\n switch (getEmitModuleKind(options)) {\n case 0 /* None */:\n case 4 /* System */:\n case 3 /* UMD */:\n return false;\n }\n return true;\n}\nfunction unreachableCodeIsError(options) {\n return options.allowUnreachableCode === false;\n}\nfunction unusedLabelIsError(options) {\n return options.allowUnusedLabels === false;\n}\nfunction moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution) {\n return moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */;\n}\nfunction moduleSupportsImportAttributes(moduleKind) {\n return 101 /* Node18 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ || moduleKind === 200 /* Preserve */ || moduleKind === 99 /* ESNext */;\n}\nfunction getStrictOptionValue(compilerOptions, flag) {\n return compilerOptions[flag] === void 0 ? !!compilerOptions.strict : !!compilerOptions[flag];\n}\nfunction getNameOfScriptTarget(scriptTarget) {\n return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : void 0);\n}\nfunction getEmitStandardClassFields(compilerOptions) {\n return compilerOptions.useDefineForClassFields !== false && getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */;\n}\nfunction compilerOptionsAffectSemanticDiagnostics(newOptions, oldOptions) {\n return optionsHaveChanges(oldOptions, newOptions, semanticDiagnosticsOptionDeclarations);\n}\nfunction compilerOptionsAffectEmit(newOptions, oldOptions) {\n return optionsHaveChanges(oldOptions, newOptions, affectsEmitOptionDeclarations);\n}\nfunction compilerOptionsAffectDeclarationPath(newOptions, oldOptions) {\n return optionsHaveChanges(oldOptions, newOptions, affectsDeclarationPathOptionDeclarations);\n}\nfunction getCompilerOptionValue(options, option) {\n return option.strictFlag ? getStrictOptionValue(options, option.name) : option.allowJsFlag ? getAllowJSCompilerOption(options) : options[option.name];\n}\nfunction getJSXTransformEnabled(options) {\n const jsx = options.jsx;\n return jsx === 2 /* React */ || jsx === 4 /* ReactJSX */ || jsx === 5 /* ReactJSXDev */;\n}\nfunction getJSXImplicitImportBase(compilerOptions, file) {\n const jsxImportSourcePragmas = file == null ? void 0 : file.pragmas.get(\"jsximportsource\");\n const jsxImportSourcePragma = isArray(jsxImportSourcePragmas) ? jsxImportSourcePragmas[jsxImportSourcePragmas.length - 1] : jsxImportSourcePragmas;\n const jsxRuntimePragmas = file == null ? void 0 : file.pragmas.get(\"jsxruntime\");\n const jsxRuntimePragma = isArray(jsxRuntimePragmas) ? jsxRuntimePragmas[jsxRuntimePragmas.length - 1] : jsxRuntimePragmas;\n if ((jsxRuntimePragma == null ? void 0 : jsxRuntimePragma.arguments.factory) === \"classic\") {\n return void 0;\n }\n return compilerOptions.jsx === 4 /* ReactJSX */ || compilerOptions.jsx === 5 /* ReactJSXDev */ || compilerOptions.jsxImportSource || jsxImportSourcePragma || (jsxRuntimePragma == null ? void 0 : jsxRuntimePragma.arguments.factory) === \"automatic\" ? (jsxImportSourcePragma == null ? void 0 : jsxImportSourcePragma.arguments.factory) || compilerOptions.jsxImportSource || \"react\" : void 0;\n}\nfunction getJSXRuntimeImport(base, options) {\n return base ? `${base}/${options.jsx === 5 /* ReactJSXDev */ ? \"jsx-dev-runtime\" : \"jsx-runtime\"}` : void 0;\n}\nfunction hasZeroOrOneAsteriskCharacter(str) {\n let seenAsterisk = false;\n for (let i = 0; i < str.length; i++) {\n if (str.charCodeAt(i) === 42 /* asterisk */) {\n if (!seenAsterisk) {\n seenAsterisk = true;\n } else {\n return false;\n }\n }\n }\n return true;\n}\nfunction createSymlinkCache(cwd, getCanonicalFileName) {\n let symlinkedDirectories;\n let symlinkedDirectoriesByRealpath;\n let symlinkedFiles;\n let hasProcessedResolutions = false;\n return {\n getSymlinkedFiles: () => symlinkedFiles,\n getSymlinkedDirectories: () => symlinkedDirectories,\n getSymlinkedDirectoriesByRealpath: () => symlinkedDirectoriesByRealpath,\n setSymlinkedFile: (path, real) => (symlinkedFiles || (symlinkedFiles = /* @__PURE__ */ new Map())).set(path, real),\n setSymlinkedDirectory: (symlink, real) => {\n let symlinkPath = toPath(symlink, cwd, getCanonicalFileName);\n if (!containsIgnoredPath(symlinkPath)) {\n symlinkPath = ensureTrailingDirectorySeparator(symlinkPath);\n if (real !== false && !(symlinkedDirectories == null ? void 0 : symlinkedDirectories.has(symlinkPath))) {\n (symlinkedDirectoriesByRealpath || (symlinkedDirectoriesByRealpath = createMultiMap())).add(real.realPath, symlink);\n }\n (symlinkedDirectories || (symlinkedDirectories = /* @__PURE__ */ new Map())).set(symlinkPath, real);\n }\n },\n setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, typeReferenceDirectives) {\n Debug.assert(!hasProcessedResolutions);\n hasProcessedResolutions = true;\n forEachResolvedModule((resolution) => processResolution(this, resolution.resolvedModule));\n forEachResolvedTypeReferenceDirective((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));\n typeReferenceDirectives.forEach((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));\n },\n hasProcessedResolutions: () => hasProcessedResolutions,\n setSymlinksFromResolution(resolution) {\n processResolution(this, resolution);\n },\n hasAnySymlinks\n };\n function hasAnySymlinks() {\n return !!(symlinkedFiles == null ? void 0 : symlinkedFiles.size) || !!symlinkedDirectories && !!forEachEntry(symlinkedDirectories, (value) => !!value);\n }\n function processResolution(cache, resolution) {\n if (!resolution || !resolution.originalPath || !resolution.resolvedFileName) return;\n const { resolvedFileName, originalPath } = resolution;\n cache.setSymlinkedFile(toPath(originalPath, cwd, getCanonicalFileName), resolvedFileName);\n const [commonResolved, commonOriginal] = guessDirectorySymlink(resolvedFileName, originalPath, cwd, getCanonicalFileName) || emptyArray;\n if (commonResolved && commonOriginal) {\n cache.setSymlinkedDirectory(\n commonOriginal,\n {\n real: ensureTrailingDirectorySeparator(commonResolved),\n realPath: ensureTrailingDirectorySeparator(toPath(commonResolved, cwd, getCanonicalFileName))\n }\n );\n }\n }\n}\nfunction guessDirectorySymlink(a, b, cwd, getCanonicalFileName) {\n const aParts = getPathComponents(getNormalizedAbsolutePath(a, cwd));\n const bParts = getPathComponents(getNormalizedAbsolutePath(b, cwd));\n let isDirectory = false;\n while (aParts.length >= 2 && bParts.length >= 2 && !isNodeModulesOrScopedPackageDirectory(aParts[aParts.length - 2], getCanonicalFileName) && !isNodeModulesOrScopedPackageDirectory(bParts[bParts.length - 2], getCanonicalFileName) && getCanonicalFileName(aParts[aParts.length - 1]) === getCanonicalFileName(bParts[bParts.length - 1])) {\n aParts.pop();\n bParts.pop();\n isDirectory = true;\n }\n return isDirectory ? [getPathFromPathComponents(aParts), getPathFromPathComponents(bParts)] : void 0;\n}\nfunction isNodeModulesOrScopedPackageDirectory(s, getCanonicalFileName) {\n return s !== void 0 && (getCanonicalFileName(s) === \"node_modules\" || startsWith(s, \"@\"));\n}\nfunction stripLeadingDirectorySeparator(s) {\n return isAnyDirectorySeparator(s.charCodeAt(0)) ? s.slice(1) : void 0;\n}\nfunction tryRemoveDirectoryPrefix(path, dirPath, getCanonicalFileName) {\n const withoutPrefix = tryRemovePrefix(path, dirPath, getCanonicalFileName);\n return withoutPrefix === void 0 ? void 0 : stripLeadingDirectorySeparator(withoutPrefix);\n}\nvar reservedCharacterPattern = /[^\\w\\s/]/g;\nfunction regExpEscape(text) {\n return text.replace(reservedCharacterPattern, escapeRegExpCharacter);\n}\nfunction escapeRegExpCharacter(match) {\n return \"\\\\\" + match;\n}\nvar wildcardCharCodes = [42 /* asterisk */, 63 /* question */];\nvar commonPackageFolders = [\"node_modules\", \"bower_components\", \"jspm_packages\"];\nvar implicitExcludePathRegexPattern = `(?!(?:${commonPackageFolders.join(\"|\")})(?:/|$))`;\nvar filesMatcher = {\n /**\n * Matches any single directory segment unless it is the last segment and a .min.js file\n * Breakdown:\n * [^./] # matches everything up to the first . character (excluding directory separators)\n * (\\\\.(?!min\\\\.js$))? # matches . characters but not if they are part of the .min.js file extension\n */\n singleAsteriskRegexFragment: \"(?:[^./]|(?:\\\\.(?!min\\\\.js$))?)*\",\n /**\n * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n * files or directories, does not match subdirectories that start with a . character\n */\n doubleAsteriskRegexFragment: `(?:/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment)\n};\nvar directoriesMatcher = {\n singleAsteriskRegexFragment: \"[^/]*\",\n /**\n * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n * files or directories, does not match subdirectories that start with a . character\n */\n doubleAsteriskRegexFragment: `(?:/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment)\n};\nvar excludeMatcher = {\n singleAsteriskRegexFragment: \"[^/]*\",\n doubleAsteriskRegexFragment: \"(?:/.+?)?\",\n replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment)\n};\nvar wildcardMatchers = {\n files: filesMatcher,\n directories: directoriesMatcher,\n exclude: excludeMatcher\n};\nfunction getRegularExpressionForWildcard(specs, basePath, usage) {\n const patterns = getRegularExpressionsForWildcards(specs, basePath, usage);\n if (!patterns || !patterns.length) {\n return void 0;\n }\n const pattern = patterns.map((pattern2) => `(?:${pattern2})`).join(\"|\");\n const terminator = usage === \"exclude\" ? \"(?:$|/)\" : \"$\";\n return `^(?:${pattern})${terminator}`;\n}\nfunction getRegularExpressionsForWildcards(specs, basePath, usage) {\n if (specs === void 0 || specs.length === 0) {\n return void 0;\n }\n return flatMap(specs, (spec) => spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]));\n}\nfunction isImplicitGlob(lastPathComponent) {\n return !/[.*?]/.test(lastPathComponent);\n}\nfunction getPatternFromSpec(spec, basePath, usage) {\n const pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);\n return pattern && `^(?:${pattern})${usage === \"exclude\" ? \"(?:$|/)\" : \"$\"}`;\n}\nfunction getSubPatternFromSpec(spec, basePath, usage, { singleAsteriskRegexFragment, doubleAsteriskRegexFragment, replaceWildcardCharacter: replaceWildcardCharacter2 } = wildcardMatchers[usage]) {\n let subpattern = \"\";\n let hasWrittenComponent = false;\n const components = getNormalizedPathComponents(spec, basePath);\n const lastComponent = last(components);\n if (usage !== \"exclude\" && lastComponent === \"**\") {\n return void 0;\n }\n components[0] = removeTrailingDirectorySeparator(components[0]);\n if (isImplicitGlob(lastComponent)) {\n components.push(\"**\", \"*\");\n }\n let optionalCount = 0;\n for (let component of components) {\n if (component === \"**\") {\n subpattern += doubleAsteriskRegexFragment;\n } else {\n if (usage === \"directories\") {\n subpattern += \"(?:\";\n optionalCount++;\n }\n if (hasWrittenComponent) {\n subpattern += directorySeparator;\n }\n if (usage !== \"exclude\") {\n let componentPattern = \"\";\n if (component.charCodeAt(0) === 42 /* asterisk */) {\n componentPattern += \"(?:[^./]\" + singleAsteriskRegexFragment + \")?\";\n component = component.substr(1);\n } else if (component.charCodeAt(0) === 63 /* question */) {\n componentPattern += \"[^./]\";\n component = component.substr(1);\n }\n componentPattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2);\n if (componentPattern !== component) {\n subpattern += implicitExcludePathRegexPattern;\n }\n subpattern += componentPattern;\n } else {\n subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2);\n }\n }\n hasWrittenComponent = true;\n }\n while (optionalCount > 0) {\n subpattern += \")?\";\n optionalCount--;\n }\n return subpattern;\n}\nfunction replaceWildcardCharacter(match, singleAsteriskRegexFragment) {\n return match === \"*\" ? singleAsteriskRegexFragment : match === \"?\" ? \"[^/]\" : \"\\\\\" + match;\n}\nfunction getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory) {\n path = normalizePath(path);\n currentDirectory = normalizePath(currentDirectory);\n const absolutePath = combinePaths(currentDirectory, path);\n return {\n includeFilePatterns: map(getRegularExpressionsForWildcards(includes, absolutePath, \"files\"), (pattern) => `^${pattern}$`),\n includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, \"files\"),\n includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, \"directories\"),\n excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, \"exclude\"),\n basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames2)\n };\n}\nfunction getRegexFromPattern(pattern, useCaseSensitiveFileNames2) {\n return new RegExp(pattern, useCaseSensitiveFileNames2 ? \"\" : \"i\");\n}\nfunction matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath) {\n path = normalizePath(path);\n currentDirectory = normalizePath(currentDirectory);\n const patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory);\n const includeFileRegexes = patterns.includeFilePatterns && patterns.includeFilePatterns.map((pattern) => getRegexFromPattern(pattern, useCaseSensitiveFileNames2));\n const includeDirectoryRegex = patterns.includeDirectoryPattern && getRegexFromPattern(patterns.includeDirectoryPattern, useCaseSensitiveFileNames2);\n const excludeRegex = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, useCaseSensitiveFileNames2);\n const results = includeFileRegexes ? includeFileRegexes.map(() => []) : [[]];\n const visited = /* @__PURE__ */ new Map();\n const toCanonical = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n for (const basePath of patterns.basePaths) {\n visitDirectory(basePath, combinePaths(currentDirectory, basePath), depth);\n }\n return flatten(results);\n function visitDirectory(path2, absolutePath, depth2) {\n const canonicalPath = toCanonical(realpath(absolutePath));\n if (visited.has(canonicalPath)) return;\n visited.set(canonicalPath, true);\n const { files, directories } = getFileSystemEntries(path2);\n for (const current of toSorted(files, compareStringsCaseSensitive)) {\n const name = combinePaths(path2, current);\n const absoluteName = combinePaths(absolutePath, current);\n if (extensions && !fileExtensionIsOneOf(name, extensions)) continue;\n if (excludeRegex && excludeRegex.test(absoluteName)) continue;\n if (!includeFileRegexes) {\n results[0].push(name);\n } else {\n const includeIndex = findIndex(includeFileRegexes, (re) => re.test(absoluteName));\n if (includeIndex !== -1) {\n results[includeIndex].push(name);\n }\n }\n }\n if (depth2 !== void 0) {\n depth2--;\n if (depth2 === 0) {\n return;\n }\n }\n for (const current of toSorted(directories, compareStringsCaseSensitive)) {\n const name = combinePaths(path2, current);\n const absoluteName = combinePaths(absolutePath, current);\n if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) && (!excludeRegex || !excludeRegex.test(absoluteName))) {\n visitDirectory(name, absoluteName, depth2);\n }\n }\n }\n}\nfunction getBasePaths(path, includes, useCaseSensitiveFileNames2) {\n const basePaths = [path];\n if (includes) {\n const includeBasePaths = [];\n for (const include of includes) {\n const absolute = isRootedDiskPath(include) ? include : normalizePath(combinePaths(path, include));\n includeBasePaths.push(getIncludeBasePath(absolute));\n }\n includeBasePaths.sort(getStringComparer(!useCaseSensitiveFileNames2));\n for (const includeBasePath of includeBasePaths) {\n if (every(basePaths, (basePath) => !containsPath(basePath, includeBasePath, path, !useCaseSensitiveFileNames2))) {\n basePaths.push(includeBasePath);\n }\n }\n }\n return basePaths;\n}\nfunction getIncludeBasePath(absolute) {\n const wildcardOffset = indexOfAnyCharCode(absolute, wildcardCharCodes);\n if (wildcardOffset < 0) {\n return !hasExtension(absolute) ? absolute : removeTrailingDirectorySeparator(getDirectoryPath(absolute));\n }\n return absolute.substring(0, absolute.lastIndexOf(directorySeparator, wildcardOffset));\n}\nfunction ensureScriptKind(fileName, scriptKind) {\n return scriptKind || getScriptKindFromFileName(fileName) || 3 /* TS */;\n}\nfunction getScriptKindFromFileName(fileName) {\n const ext = fileName.substr(fileName.lastIndexOf(\".\"));\n switch (ext.toLowerCase()) {\n case \".js\" /* Js */:\n case \".cjs\" /* Cjs */:\n case \".mjs\" /* Mjs */:\n return 1 /* JS */;\n case \".jsx\" /* Jsx */:\n return 2 /* JSX */;\n case \".ts\" /* Ts */:\n case \".cts\" /* Cts */:\n case \".mts\" /* Mts */:\n return 3 /* TS */;\n case \".tsx\" /* Tsx */:\n return 4 /* TSX */;\n case \".json\" /* Json */:\n return 6 /* JSON */;\n default:\n return 0 /* Unknown */;\n }\n}\nvar supportedTSExtensions = [[\".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */], [\".cts\" /* Cts */, \".d.cts\" /* Dcts */], [\".mts\" /* Mts */, \".d.mts\" /* Dmts */]];\nvar supportedTSExtensionsFlat = flatten(supportedTSExtensions);\nvar supportedTSExtensionsWithJson = [...supportedTSExtensions, [\".json\" /* Json */]];\nvar supportedTSExtensionsForExtractExtension = [\".d.ts\" /* Dts */, \".d.cts\" /* Dcts */, \".d.mts\" /* Dmts */, \".cts\" /* Cts */, \".mts\" /* Mts */, \".ts\" /* Ts */, \".tsx\" /* Tsx */];\nvar supportedJSExtensions = [[\".js\" /* Js */, \".jsx\" /* Jsx */], [\".mjs\" /* Mjs */], [\".cjs\" /* Cjs */]];\nvar supportedJSExtensionsFlat = flatten(supportedJSExtensions);\nvar allSupportedExtensions = [[\".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */, \".js\" /* Js */, \".jsx\" /* Jsx */], [\".cts\" /* Cts */, \".d.cts\" /* Dcts */, \".cjs\" /* Cjs */], [\".mts\" /* Mts */, \".d.mts\" /* Dmts */, \".mjs\" /* Mjs */]];\nvar allSupportedExtensionsWithJson = [...allSupportedExtensions, [\".json\" /* Json */]];\nvar supportedDeclarationExtensions = [\".d.ts\" /* Dts */, \".d.cts\" /* Dcts */, \".d.mts\" /* Dmts */];\nvar supportedTSImplementationExtensions = [\".ts\" /* Ts */, \".cts\" /* Cts */, \".mts\" /* Mts */, \".tsx\" /* Tsx */];\nvar extensionsNotSupportingExtensionlessResolution = [\".mts\" /* Mts */, \".d.mts\" /* Dmts */, \".mjs\" /* Mjs */, \".cts\" /* Cts */, \".d.cts\" /* Dcts */, \".cjs\" /* Cjs */];\nfunction getSupportedExtensions(options, extraFileExtensions) {\n const needJsExtensions = options && getAllowJSCompilerOption(options);\n if (!extraFileExtensions || extraFileExtensions.length === 0) {\n return needJsExtensions ? allSupportedExtensions : supportedTSExtensions;\n }\n const builtins = needJsExtensions ? allSupportedExtensions : supportedTSExtensions;\n const flatBuiltins = flatten(builtins);\n const extensions = [\n ...builtins,\n ...mapDefined(extraFileExtensions, (x) => x.scriptKind === 7 /* Deferred */ || needJsExtensions && isJSLike(x.scriptKind) && !flatBuiltins.includes(x.extension) ? [x.extension] : void 0)\n ];\n return extensions;\n}\nfunction getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions) {\n if (!options || !getResolveJsonModule(options)) return supportedExtensions;\n if (supportedExtensions === allSupportedExtensions) return allSupportedExtensionsWithJson;\n if (supportedExtensions === supportedTSExtensions) return supportedTSExtensionsWithJson;\n return [...supportedExtensions, [\".json\" /* Json */]];\n}\nfunction isJSLike(scriptKind) {\n return scriptKind === 1 /* JS */ || scriptKind === 2 /* JSX */;\n}\nfunction hasJSFileExtension(fileName) {\n return some(supportedJSExtensionsFlat, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction hasTSFileExtension(fileName) {\n return some(supportedTSExtensionsFlat, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction hasImplementationTSFileExtension(fileName) {\n return some(supportedTSImplementationExtensions, (extension) => fileExtensionIs(fileName, extension)) && !isDeclarationFileName(fileName);\n}\nvar ModuleSpecifierEnding = /* @__PURE__ */ ((ModuleSpecifierEnding2) => {\n ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"Minimal\"] = 0] = \"Minimal\";\n ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"Index\"] = 1] = \"Index\";\n ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"JsExtension\"] = 2] = \"JsExtension\";\n ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"TsExtension\"] = 3] = \"TsExtension\";\n return ModuleSpecifierEnding2;\n})(ModuleSpecifierEnding || {});\nfunction usesExtensionsOnImports({ imports }, hasExtension2 = or(hasJSFileExtension, hasTSFileExtension)) {\n return firstDefined(imports, ({ text }) => pathIsRelative(text) && !fileExtensionIsOneOf(text, extensionsNotSupportingExtensionlessResolution) ? hasExtension2(text) : void 0) || false;\n}\nfunction getModuleSpecifierEndingPreference(preference, resolutionMode, compilerOptions, sourceFile) {\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n const moduleResolutionIsNodeNext = 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */;\n if (preference === \"js\" || resolutionMode === 99 /* ESNext */ && moduleResolutionIsNodeNext) {\n if (!shouldAllowImportingTsExtension(compilerOptions)) {\n return 2 /* JsExtension */;\n }\n return inferPreference() !== 2 /* JsExtension */ ? 3 /* TsExtension */ : 2 /* JsExtension */;\n }\n if (preference === \"minimal\") {\n return 0 /* Minimal */;\n }\n if (preference === \"index\") {\n return 1 /* Index */;\n }\n if (!shouldAllowImportingTsExtension(compilerOptions)) {\n return sourceFile && usesExtensionsOnImports(sourceFile) ? 2 /* JsExtension */ : 0 /* Minimal */;\n }\n return inferPreference();\n function inferPreference() {\n let usesJsExtensions = false;\n const specifiers = (sourceFile == null ? void 0 : sourceFile.imports.length) ? sourceFile.imports : sourceFile && isSourceFileJS(sourceFile) ? getRequiresAtTopOfFile(sourceFile).map((r) => r.arguments[0]) : emptyArray;\n for (const specifier of specifiers) {\n if (pathIsRelative(specifier.text)) {\n if (moduleResolutionIsNodeNext && resolutionMode === 1 /* CommonJS */ && getModeForUsageLocation(sourceFile, specifier, compilerOptions) === 99 /* ESNext */) {\n continue;\n }\n if (fileExtensionIsOneOf(specifier.text, extensionsNotSupportingExtensionlessResolution)) {\n continue;\n }\n if (hasTSFileExtension(specifier.text)) {\n return 3 /* TsExtension */;\n }\n if (hasJSFileExtension(specifier.text)) {\n usesJsExtensions = true;\n }\n }\n }\n return usesJsExtensions ? 2 /* JsExtension */ : 0 /* Minimal */;\n }\n}\nfunction getRequiresAtTopOfFile(sourceFile) {\n let nonRequireStatementCount = 0;\n let requires;\n for (const statement of sourceFile.statements) {\n if (nonRequireStatementCount > 3) {\n break;\n }\n if (isRequireVariableStatement(statement)) {\n requires = concatenate(requires, statement.declarationList.declarations.map((d) => d.initializer));\n } else if (isExpressionStatement(statement) && isRequireCall(\n statement.expression,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n requires = append(requires, statement.expression);\n } else {\n nonRequireStatementCount++;\n }\n }\n return requires || emptyArray;\n}\nfunction isSupportedSourceFileName(fileName, compilerOptions, extraFileExtensions) {\n if (!fileName) return false;\n const supportedExtensions = getSupportedExtensions(compilerOptions, extraFileExtensions);\n for (const extension of flatten(getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, supportedExtensions))) {\n if (fileExtensionIs(fileName, extension)) {\n return true;\n }\n }\n return false;\n}\nfunction numberOfDirectorySeparators(str) {\n const match = str.match(/\\//g);\n return match ? match.length : 0;\n}\nfunction compareNumberOfDirectorySeparators(path1, path2) {\n return compareValues(\n numberOfDirectorySeparators(path1),\n numberOfDirectorySeparators(path2)\n );\n}\nvar extensionsToRemove = [\".d.ts\" /* Dts */, \".d.mts\" /* Dmts */, \".d.cts\" /* Dcts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */, \".cjs\" /* Cjs */, \".cts\" /* Cts */, \".ts\" /* Ts */, \".js\" /* Js */, \".tsx\" /* Tsx */, \".jsx\" /* Jsx */, \".json\" /* Json */];\nfunction removeFileExtension(path) {\n for (const ext of extensionsToRemove) {\n const extensionless = tryRemoveExtension(path, ext);\n if (extensionless !== void 0) {\n return extensionless;\n }\n }\n return path;\n}\nfunction tryRemoveExtension(path, extension) {\n return fileExtensionIs(path, extension) ? removeExtension(path, extension) : void 0;\n}\nfunction removeExtension(path, extension) {\n return path.substring(0, path.length - extension.length);\n}\nfunction changeExtension(path, newExtension) {\n return changeAnyExtension(\n path,\n newExtension,\n extensionsToRemove,\n /*ignoreCase*/\n false\n );\n}\nfunction tryParsePattern(pattern) {\n const indexOfStar = pattern.indexOf(\"*\");\n if (indexOfStar === -1) {\n return pattern;\n }\n return pattern.indexOf(\"*\", indexOfStar + 1) !== -1 ? void 0 : {\n prefix: pattern.substr(0, indexOfStar),\n suffix: pattern.substr(indexOfStar + 1)\n };\n}\nvar parsedPatternsCache = /* @__PURE__ */ new WeakMap();\nfunction tryParsePatterns(paths) {\n let result = parsedPatternsCache.get(paths);\n if (result !== void 0) {\n return result;\n }\n let matchableStringSet;\n let patterns;\n const pathList = getOwnKeys(paths);\n for (const path of pathList) {\n const patternOrStr = tryParsePattern(path);\n if (patternOrStr === void 0) {\n continue;\n } else if (typeof patternOrStr === \"string\") {\n (matchableStringSet ?? (matchableStringSet = /* @__PURE__ */ new Set())).add(patternOrStr);\n } else {\n (patterns ?? (patterns = [])).push(patternOrStr);\n }\n }\n parsedPatternsCache.set(\n paths,\n result = {\n matchableStringSet,\n patterns\n }\n );\n return result;\n}\nfunction positionIsSynthesized(pos) {\n return !(pos >= 0);\n}\nfunction extensionIsTS(ext) {\n return ext === \".ts\" /* Ts */ || ext === \".tsx\" /* Tsx */ || ext === \".d.ts\" /* Dts */ || ext === \".cts\" /* Cts */ || ext === \".mts\" /* Mts */ || ext === \".d.mts\" /* Dmts */ || ext === \".d.cts\" /* Dcts */ || startsWith(ext, \".d.\") && endsWith(ext, \".ts\");\n}\nfunction resolutionExtensionIsTSOrJson(ext) {\n return extensionIsTS(ext) || ext === \".json\" /* Json */;\n}\nfunction extensionFromPath(path) {\n const ext = tryGetExtensionFromPath2(path);\n return ext !== void 0 ? ext : Debug.fail(`File ${path} has unknown extension.`);\n}\nfunction isAnySupportedFileExtension(path) {\n return tryGetExtensionFromPath2(path) !== void 0;\n}\nfunction tryGetExtensionFromPath2(path) {\n return find(extensionsToRemove, (e) => fileExtensionIs(path, e));\n}\nfunction isCheckJsEnabledForFile(sourceFile, compilerOptions) {\n return sourceFile.checkJsDirective ? sourceFile.checkJsDirective.enabled : compilerOptions.checkJs;\n}\nvar emptyFileSystemEntries = {\n files: emptyArray,\n directories: emptyArray\n};\nfunction matchPatternOrExact(parsedPatterns, candidate) {\n const { matchableStringSet, patterns } = parsedPatterns;\n if (matchableStringSet == null ? void 0 : matchableStringSet.has(candidate)) {\n return candidate;\n }\n if (patterns === void 0 || patterns.length === 0) {\n return void 0;\n }\n return findBestPatternMatch(patterns, (_) => _, candidate);\n}\nfunction sliceAfter(arr, value) {\n const index = arr.indexOf(value);\n Debug.assert(index !== -1);\n return arr.slice(index);\n}\nfunction addRelatedInfo(diagnostic, ...relatedInformation) {\n if (!relatedInformation.length) {\n return diagnostic;\n }\n if (!diagnostic.relatedInformation) {\n diagnostic.relatedInformation = [];\n }\n Debug.assert(diagnostic.relatedInformation !== emptyArray, \"Diagnostic had empty array singleton for related info, but is still being constructed!\");\n diagnostic.relatedInformation.push(...relatedInformation);\n return diagnostic;\n}\nfunction minAndMax(arr, getValue) {\n Debug.assert(arr.length !== 0);\n let min2 = getValue(arr[0]);\n let max = min2;\n for (let i = 1; i < arr.length; i++) {\n const value = getValue(arr[i]);\n if (value < min2) {\n min2 = value;\n } else if (value > max) {\n max = value;\n }\n }\n return { min: min2, max };\n}\nfunction rangeOfNode(node) {\n return { pos: getTokenPosOfNode(node), end: node.end };\n}\nfunction rangeOfTypeParameters(sourceFile, typeParameters) {\n const pos = typeParameters.pos - 1;\n const end = Math.min(sourceFile.text.length, skipTrivia(sourceFile.text, typeParameters.end) + 1);\n return { pos, end };\n}\nfunction skipTypeChecking(sourceFile, options, host) {\n return skipTypeCheckingWorker(\n sourceFile,\n options,\n host,\n /*ignoreNoCheck*/\n false\n );\n}\nfunction skipTypeCheckingIgnoringNoCheck(sourceFile, options, host) {\n return skipTypeCheckingWorker(\n sourceFile,\n options,\n host,\n /*ignoreNoCheck*/\n true\n );\n}\nfunction skipTypeCheckingWorker(sourceFile, options, host, ignoreNoCheck) {\n return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib || !ignoreNoCheck && options.noCheck || host.isSourceOfProjectReferenceRedirect(sourceFile.fileName) || !canIncludeBindAndCheckDiagnostics(sourceFile, options);\n}\nfunction canIncludeBindAndCheckDiagnostics(sourceFile, options) {\n if (!!sourceFile.checkJsDirective && sourceFile.checkJsDirective.enabled === false) return false;\n if (sourceFile.scriptKind === 3 /* TS */ || sourceFile.scriptKind === 4 /* TSX */ || sourceFile.scriptKind === 5 /* External */) return true;\n const isJs = sourceFile.scriptKind === 1 /* JS */ || sourceFile.scriptKind === 2 /* JSX */;\n const isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options);\n const isPlainJs = isPlainJsFile(sourceFile, options.checkJs);\n return isPlainJs || isCheckJs || sourceFile.scriptKind === 7 /* Deferred */;\n}\nfunction isJsonEqual(a, b) {\n return a === b || typeof a === \"object\" && a !== null && typeof b === \"object\" && b !== null && equalOwnProperties(a, b, isJsonEqual);\n}\nfunction parsePseudoBigInt(stringValue) {\n let log2Base;\n switch (stringValue.charCodeAt(1)) {\n // \"x\" in \"0x123\"\n case 98 /* b */:\n case 66 /* B */:\n log2Base = 1;\n break;\n case 111 /* o */:\n case 79 /* O */:\n log2Base = 3;\n break;\n case 120 /* x */:\n case 88 /* X */:\n log2Base = 4;\n break;\n default:\n const nIndex = stringValue.length - 1;\n let nonZeroStart = 0;\n while (stringValue.charCodeAt(nonZeroStart) === 48 /* _0 */) {\n nonZeroStart++;\n }\n return stringValue.slice(nonZeroStart, nIndex) || \"0\";\n }\n const startIndex = 2, endIndex = stringValue.length - 1;\n const bitsNeeded = (endIndex - startIndex) * log2Base;\n const segments = new Uint16Array((bitsNeeded >>> 4) + (bitsNeeded & 15 ? 1 : 0));\n for (let i = endIndex - 1, bitOffset = 0; i >= startIndex; i--, bitOffset += log2Base) {\n const segment = bitOffset >>> 4;\n const digitChar = stringValue.charCodeAt(i);\n const digit = digitChar <= 57 /* _9 */ ? digitChar - 48 /* _0 */ : 10 + digitChar - (digitChar <= 70 /* F */ ? 65 /* A */ : 97 /* a */);\n const shiftedDigit = digit << (bitOffset & 15);\n segments[segment] |= shiftedDigit;\n const residual = shiftedDigit >>> 16;\n if (residual) segments[segment + 1] |= residual;\n }\n let base10Value = \"\";\n let firstNonzeroSegment = segments.length - 1;\n let segmentsRemaining = true;\n while (segmentsRemaining) {\n let mod10 = 0;\n segmentsRemaining = false;\n for (let segment = firstNonzeroSegment; segment >= 0; segment--) {\n const newSegment = mod10 << 16 | segments[segment];\n const segmentValue = newSegment / 10 | 0;\n segments[segment] = segmentValue;\n mod10 = newSegment - segmentValue * 10;\n if (segmentValue && !segmentsRemaining) {\n firstNonzeroSegment = segment;\n segmentsRemaining = true;\n }\n }\n base10Value = mod10 + base10Value;\n }\n return base10Value;\n}\nfunction pseudoBigIntToString({ negative, base10Value }) {\n return (negative && base10Value !== \"0\" ? \"-\" : \"\") + base10Value;\n}\nfunction parseBigInt(text) {\n if (!isValidBigIntString(\n text,\n /*roundTripOnly*/\n false\n )) {\n return void 0;\n }\n return parseValidBigInt(text);\n}\nfunction parseValidBigInt(text) {\n const negative = text.startsWith(\"-\");\n const base10Value = parsePseudoBigInt(`${negative ? text.slice(1) : text}n`);\n return { negative, base10Value };\n}\nfunction isValidBigIntString(s, roundTripOnly) {\n if (s === \"\") return false;\n const scanner2 = createScanner(\n 99 /* ESNext */,\n /*skipTrivia*/\n false\n );\n let success = true;\n scanner2.setOnError(() => success = false);\n scanner2.setText(s + \"n\");\n let result = scanner2.scan();\n const negative = result === 41 /* MinusToken */;\n if (negative) {\n result = scanner2.scan();\n }\n const flags = scanner2.getTokenFlags();\n return success && result === 10 /* BigIntLiteral */ && scanner2.getTokenEnd() === s.length + 1 && !(flags & 512 /* ContainsSeparator */) && (!roundTripOnly || s === pseudoBigIntToString({ negative, base10Value: parsePseudoBigInt(scanner2.getTokenValue()) }));\n}\nfunction isValidTypeOnlyAliasUseSite(useSite) {\n return !!(useSite.flags & 33554432 /* Ambient */) || isInJSDoc(useSite) || isPartOfTypeQuery(useSite) || isIdentifierInNonEmittingHeritageClause(useSite) || isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(useSite) || !(isExpressionNode(useSite) || isShorthandPropertyNameUseSite(useSite));\n}\nfunction isShorthandPropertyNameUseSite(useSite) {\n return isIdentifier(useSite) && isShorthandPropertyAssignment(useSite.parent) && useSite.parent.name === useSite;\n}\nfunction isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(node) {\n while (node.kind === 80 /* Identifier */ || node.kind === 212 /* PropertyAccessExpression */) {\n node = node.parent;\n }\n if (node.kind !== 168 /* ComputedPropertyName */) {\n return false;\n }\n if (hasSyntacticModifier(node.parent, 64 /* Abstract */)) {\n return true;\n }\n const containerKind = node.parent.parent.kind;\n return containerKind === 265 /* InterfaceDeclaration */ || containerKind === 188 /* TypeLiteral */;\n}\nfunction isIdentifierInNonEmittingHeritageClause(node) {\n if (node.kind !== 80 /* Identifier */) return false;\n const heritageClause = findAncestor(node.parent, (parent2) => {\n switch (parent2.kind) {\n case 299 /* HeritageClause */:\n return true;\n case 212 /* PropertyAccessExpression */:\n case 234 /* ExpressionWithTypeArguments */:\n return false;\n default:\n return \"quit\";\n }\n });\n return (heritageClause == null ? void 0 : heritageClause.token) === 119 /* ImplementsKeyword */ || (heritageClause == null ? void 0 : heritageClause.parent.kind) === 265 /* InterfaceDeclaration */;\n}\nfunction isIdentifierTypeReference(node) {\n return isTypeReferenceNode(node) && isIdentifier(node.typeName);\n}\nfunction arrayIsHomogeneous(array, comparer = equateValues) {\n if (array.length < 2) return true;\n const first2 = array[0];\n for (let i = 1, length2 = array.length; i < length2; i++) {\n const target = array[i];\n if (!comparer(first2, target)) return false;\n }\n return true;\n}\nfunction setTextRangePos(range, pos) {\n range.pos = pos;\n return range;\n}\nfunction setTextRangeEnd(range, end) {\n range.end = end;\n return range;\n}\nfunction setTextRangePosEnd(range, pos, end) {\n return setTextRangeEnd(setTextRangePos(range, pos), end);\n}\nfunction setTextRangePosWidth(range, pos, width) {\n return setTextRangePosEnd(range, pos, pos + width);\n}\nfunction setNodeFlags(node, newFlags) {\n if (node) {\n node.flags = newFlags;\n }\n return node;\n}\nfunction setParent(child, parent2) {\n if (child && parent2) {\n child.parent = parent2;\n }\n return child;\n}\nfunction setParentRecursive(rootNode, incremental) {\n if (!rootNode) return rootNode;\n forEachChildRecursively(rootNode, isJSDocNode(rootNode) ? bindParentToChildIgnoringJSDoc : bindParentToChild);\n return rootNode;\n function bindParentToChildIgnoringJSDoc(child, parent2) {\n if (incremental && child.parent === parent2) {\n return \"skip\";\n }\n setParent(child, parent2);\n }\n function bindJSDoc(child) {\n if (hasJSDocNodes(child)) {\n for (const doc of child.jsDoc) {\n bindParentToChildIgnoringJSDoc(doc, child);\n forEachChildRecursively(doc, bindParentToChildIgnoringJSDoc);\n }\n }\n }\n function bindParentToChild(child, parent2) {\n return bindParentToChildIgnoringJSDoc(child, parent2) || bindJSDoc(child);\n }\n}\nfunction isPackedElement(node) {\n return !isOmittedExpression(node);\n}\nfunction isPackedArrayLiteral(node) {\n return isArrayLiteralExpression(node) && every(node.elements, isPackedElement);\n}\nfunction expressionResultIsUnused(node) {\n Debug.assertIsDefined(node.parent);\n while (true) {\n const parent2 = node.parent;\n if (isParenthesizedExpression(parent2)) {\n node = parent2;\n continue;\n }\n if (isExpressionStatement(parent2) || isVoidExpression(parent2) || isForStatement(parent2) && (parent2.initializer === node || parent2.incrementor === node)) {\n return true;\n }\n if (isCommaListExpression(parent2)) {\n if (node !== last(parent2.elements)) return true;\n node = parent2;\n continue;\n }\n if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 28 /* CommaToken */) {\n if (node === parent2.left) return true;\n node = parent2;\n continue;\n }\n return false;\n }\n}\nfunction containsIgnoredPath(path) {\n return some(ignoredPaths, (p) => path.includes(p));\n}\nfunction getContainingNodeArray(node) {\n if (!node.parent) return void 0;\n switch (node.kind) {\n case 169 /* TypeParameter */:\n const { parent: parent3 } = node;\n return parent3.kind === 196 /* InferType */ ? void 0 : parent3.typeParameters;\n case 170 /* Parameter */:\n return node.parent.parameters;\n case 205 /* TemplateLiteralTypeSpan */:\n return node.parent.templateSpans;\n case 240 /* TemplateSpan */:\n return node.parent.templateSpans;\n case 171 /* Decorator */: {\n const { parent: parent4 } = node;\n return canHaveDecorators(parent4) ? parent4.modifiers : void 0;\n }\n case 299 /* HeritageClause */:\n return node.parent.heritageClauses;\n }\n const { parent: parent2 } = node;\n if (isJSDocTag(node)) {\n return isJSDocTypeLiteral(node.parent) ? void 0 : node.parent.tags;\n }\n switch (parent2.kind) {\n case 188 /* TypeLiteral */:\n case 265 /* InterfaceDeclaration */:\n return isTypeElement(node) ? parent2.members : void 0;\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n return parent2.types;\n case 190 /* TupleType */:\n case 210 /* ArrayLiteralExpression */:\n case 357 /* CommaListExpression */:\n case 276 /* NamedImports */:\n case 280 /* NamedExports */:\n return parent2.elements;\n case 211 /* ObjectLiteralExpression */:\n case 293 /* JsxAttributes */:\n return parent2.properties;\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n return isTypeNode(node) ? parent2.typeArguments : parent2.expression === node ? void 0 : parent2.arguments;\n case 285 /* JsxElement */:\n case 289 /* JsxFragment */:\n return isJsxChild(node) ? parent2.children : void 0;\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n return isTypeNode(node) ? parent2.typeArguments : void 0;\n case 242 /* Block */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n case 269 /* ModuleBlock */:\n return parent2.statements;\n case 270 /* CaseBlock */:\n return parent2.clauses;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return isClassElement(node) ? parent2.members : void 0;\n case 267 /* EnumDeclaration */:\n return isEnumMember(node) ? parent2.members : void 0;\n case 308 /* SourceFile */:\n return parent2.statements;\n }\n}\nfunction hasContextSensitiveParameters(node) {\n if (!node.typeParameters) {\n if (some(node.parameters, (p) => !getEffectiveTypeAnnotationNode(p))) {\n return true;\n }\n if (node.kind !== 220 /* ArrowFunction */) {\n const parameter = firstOrUndefined(node.parameters);\n if (!(parameter && parameterIsThisKeyword(parameter))) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isInfinityOrNaNString(name) {\n return name === \"Infinity\" || name === \"-Infinity\" || name === \"NaN\";\n}\nfunction isCatchClauseVariableDeclaration(node) {\n return node.kind === 261 /* VariableDeclaration */ && node.parent.kind === 300 /* CatchClause */;\n}\nfunction isFunctionExpressionOrArrowFunction(node) {\n return node.kind === 219 /* FunctionExpression */ || node.kind === 220 /* ArrowFunction */;\n}\nfunction escapeSnippetText(text) {\n return text.replace(/\\$/g, () => \"\\\\$\");\n}\nfunction isNumericLiteralName(name) {\n return (+name).toString() === name;\n}\nfunction createPropertyNameNodeForIdentifierOrLiteral(name, target, singleQuote, stringNamed, isMethod) {\n const isMethodNamedNew = isMethod && name === \"new\";\n return !isMethodNamedNew && isIdentifierText(name, target) ? factory.createIdentifier(name) : !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : factory.createStringLiteral(name, !!singleQuote);\n}\nfunction isThisTypeParameter(type) {\n return !!(type.flags & 262144 /* TypeParameter */ && type.isThisType);\n}\nfunction getNodeModulePathParts(fullPath) {\n let topLevelNodeModulesIndex = 0;\n let topLevelPackageNameIndex = 0;\n let packageRootIndex = 0;\n let fileNameIndex = 0;\n let States;\n ((States2) => {\n States2[States2[\"BeforeNodeModules\"] = 0] = \"BeforeNodeModules\";\n States2[States2[\"NodeModules\"] = 1] = \"NodeModules\";\n States2[States2[\"Scope\"] = 2] = \"Scope\";\n States2[States2[\"PackageContent\"] = 3] = \"PackageContent\";\n })(States || (States = {}));\n let partStart = 0;\n let partEnd = 0;\n let state = 0 /* BeforeNodeModules */;\n while (partEnd >= 0) {\n partStart = partEnd;\n partEnd = fullPath.indexOf(\"/\", partStart + 1);\n switch (state) {\n case 0 /* BeforeNodeModules */:\n if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) {\n topLevelNodeModulesIndex = partStart;\n topLevelPackageNameIndex = partEnd;\n state = 1 /* NodeModules */;\n }\n break;\n case 1 /* NodeModules */:\n case 2 /* Scope */:\n if (state === 1 /* NodeModules */ && fullPath.charAt(partStart + 1) === \"@\") {\n state = 2 /* Scope */;\n } else {\n packageRootIndex = partEnd;\n state = 3 /* PackageContent */;\n }\n break;\n case 3 /* PackageContent */:\n if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) {\n state = 1 /* NodeModules */;\n } else {\n state = 3 /* PackageContent */;\n }\n break;\n }\n }\n fileNameIndex = partStart;\n return state > 1 /* NodeModules */ ? { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex, fileNameIndex } : void 0;\n}\nfunction isTypeDeclaration(node) {\n switch (node.kind) {\n case 169 /* TypeParameter */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n return true;\n case 274 /* ImportClause */:\n return node.phaseModifier === 156 /* TypeKeyword */;\n case 277 /* ImportSpecifier */:\n return node.parent.parent.phaseModifier === 156 /* TypeKeyword */;\n case 282 /* ExportSpecifier */:\n return node.parent.parent.isTypeOnly;\n default:\n return false;\n }\n}\nfunction canHaveExportModifier(node) {\n return isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isTypeDeclaration(node) || isModuleDeclaration(node) && !isExternalModuleAugmentation(node) && !isGlobalScopeAugmentation(node);\n}\nfunction isOptionalJSDocPropertyLikeTag(node) {\n if (!isJSDocPropertyLikeTag(node)) {\n return false;\n }\n const { isBracketed, typeExpression } = node;\n return isBracketed || !!typeExpression && typeExpression.type.kind === 317 /* JSDocOptionalType */;\n}\nfunction canUsePropertyAccess(name, languageVersion) {\n if (name.length === 0) {\n return false;\n }\n const firstChar = name.charCodeAt(0);\n return firstChar === 35 /* hash */ ? name.length > 1 && isIdentifierStart(name.charCodeAt(1), languageVersion) : isIdentifierStart(firstChar, languageVersion);\n}\nfunction hasTabstop(node) {\n var _a;\n return ((_a = getSnippetElement(node)) == null ? void 0 : _a.kind) === 0 /* TabStop */;\n}\nfunction isJSDocOptionalParameter(node) {\n return isInJSFile(node) && // node.type should only be a JSDocOptionalType when node is a parameter of a JSDocFunctionType\n (node.type && node.type.kind === 317 /* JSDocOptionalType */ || getJSDocParameterTags(node).some(isOptionalJSDocPropertyLikeTag));\n}\nfunction isOptionalDeclaration(declaration) {\n switch (declaration.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return !!declaration.questionToken;\n case 170 /* Parameter */:\n return !!declaration.questionToken || isJSDocOptionalParameter(declaration);\n case 349 /* JSDocPropertyTag */:\n case 342 /* JSDocParameterTag */:\n return isOptionalJSDocPropertyLikeTag(declaration);\n default:\n return false;\n }\n}\nfunction isNonNullAccess(node) {\n const kind = node.kind;\n return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && isNonNullExpression(node.expression);\n}\nfunction isJSDocSatisfiesExpression(node) {\n return isInJSFile(node) && isParenthesizedExpression(node) && hasJSDocNodes(node) && !!getJSDocSatisfiesTag(node);\n}\nfunction getJSDocSatisfiesExpressionType(node) {\n return Debug.checkDefined(tryGetJSDocSatisfiesTypeNode(node));\n}\nfunction tryGetJSDocSatisfiesTypeNode(node) {\n const tag = getJSDocSatisfiesTag(node);\n return tag && tag.typeExpression && tag.typeExpression.type;\n}\nfunction getEscapedTextOfJsxAttributeName(node) {\n return isIdentifier(node) ? node.escapedText : getEscapedTextOfJsxNamespacedName(node);\n}\nfunction getTextOfJsxAttributeName(node) {\n return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);\n}\nfunction isJsxAttributeName(node) {\n const kind = node.kind;\n return kind === 80 /* Identifier */ || kind === 296 /* JsxNamespacedName */;\n}\nfunction getEscapedTextOfJsxNamespacedName(node) {\n return `${node.namespace.escapedText}:${idText(node.name)}`;\n}\nfunction getTextOfJsxNamespacedName(node) {\n return `${idText(node.namespace)}:${idText(node.name)}`;\n}\nfunction intrinsicTagNameToString(node) {\n return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);\n}\nfunction isTypeUsableAsPropertyName(type) {\n return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);\n}\nfunction getPropertyNameFromType(type) {\n if (type.flags & 8192 /* UniqueESSymbol */) {\n return type.escapedName;\n }\n if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n return escapeLeadingUnderscores(\"\" + type.value);\n }\n return Debug.fail();\n}\nfunction isExpandoPropertyDeclaration(declaration) {\n return !!declaration && (isPropertyAccessExpression(declaration) || isElementAccessExpression(declaration) || isBinaryExpression(declaration));\n}\nfunction hasResolutionModeOverride(node) {\n if (node === void 0) {\n return false;\n }\n return !!getResolutionModeOverride(node.attributes);\n}\nvar stringReplace = String.prototype.replace;\nfunction replaceFirstStar(s, replacement) {\n return stringReplace.call(s, \"*\", replacement);\n}\nfunction getNameFromImportAttribute(node) {\n return isIdentifier(node.name) ? node.name.escapedText : escapeLeadingUnderscores(node.name.text);\n}\nfunction isSourceElement(node) {\n switch (node.kind) {\n case 169 /* TypeParameter */:\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 186 /* ConstructorType */:\n case 185 /* FunctionType */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 184 /* TypeReference */:\n case 183 /* TypePredicate */:\n case 187 /* TypeQuery */:\n case 188 /* TypeLiteral */:\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n case 197 /* ParenthesizedType */:\n case 191 /* OptionalType */:\n case 192 /* RestType */:\n case 198 /* ThisType */:\n case 199 /* TypeOperator */:\n case 195 /* ConditionalType */:\n case 196 /* InferType */:\n case 204 /* TemplateLiteralType */:\n case 206 /* ImportType */:\n case 203 /* NamedTupleMember */:\n case 329 /* JSDocAugmentsTag */:\n case 330 /* JSDocImplementsTag */:\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n case 346 /* JSDocTemplateTag */:\n case 345 /* JSDocTypeTag */:\n case 325 /* JSDocLink */:\n case 326 /* JSDocLinkCode */:\n case 327 /* JSDocLinkPlain */:\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n case 318 /* JSDocFunctionType */:\n case 316 /* JSDocNonNullableType */:\n case 315 /* JSDocNullableType */:\n case 313 /* JSDocAllType */:\n case 314 /* JSDocUnknownType */:\n case 323 /* JSDocTypeLiteral */:\n case 319 /* JSDocVariadicType */:\n case 310 /* JSDocTypeExpression */:\n case 334 /* JSDocPublicTag */:\n case 336 /* JSDocProtectedTag */:\n case 335 /* JSDocPrivateTag */:\n case 351 /* JSDocSatisfiesTag */:\n case 344 /* JSDocThisTag */:\n case 200 /* IndexedAccessType */:\n case 201 /* MappedType */:\n case 263 /* FunctionDeclaration */:\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n case 244 /* VariableStatement */:\n case 245 /* ExpressionStatement */:\n case 246 /* IfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 252 /* ContinueStatement */:\n case 253 /* BreakStatement */:\n case 254 /* ReturnStatement */:\n case 255 /* WithStatement */:\n case 256 /* SwitchStatement */:\n case 257 /* LabeledStatement */:\n case 258 /* ThrowStatement */:\n case 259 /* TryStatement */:\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 279 /* ExportDeclaration */:\n case 278 /* ExportAssignment */:\n case 243 /* EmptyStatement */:\n case 260 /* DebuggerStatement */:\n case 283 /* MissingDeclaration */:\n return true;\n }\n return false;\n}\nfunction evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false, hasExternalReferences = false) {\n return { value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences };\n}\nfunction createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameExpression }) {\n function evaluate(expr, location) {\n let isSyntacticallyString = false;\n let resolvedOtherFiles = false;\n let hasExternalReferences = false;\n expr = skipParentheses(expr);\n switch (expr.kind) {\n case 225 /* PrefixUnaryExpression */:\n const result = evaluate(expr.operand, location);\n resolvedOtherFiles = result.resolvedOtherFiles;\n hasExternalReferences = result.hasExternalReferences;\n if (typeof result.value === \"number\") {\n switch (expr.operator) {\n case 40 /* PlusToken */:\n return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 41 /* MinusToken */:\n return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 55 /* TildeToken */:\n return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n }\n }\n break;\n case 227 /* BinaryExpression */: {\n const left = evaluate(expr.left, location);\n const right = evaluate(expr.right, location);\n isSyntacticallyString = (left.isSyntacticallyString || right.isSyntacticallyString) && expr.operatorToken.kind === 40 /* PlusToken */;\n resolvedOtherFiles = left.resolvedOtherFiles || right.resolvedOtherFiles;\n hasExternalReferences = left.hasExternalReferences || right.hasExternalReferences;\n if (typeof left.value === \"number\" && typeof right.value === \"number\") {\n switch (expr.operatorToken.kind) {\n case 52 /* BarToken */:\n return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 51 /* AmpersandToken */:\n return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 49 /* GreaterThanGreaterThanToken */:\n return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 48 /* LessThanLessThanToken */:\n return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 53 /* CaretToken */:\n return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 42 /* AsteriskToken */:\n return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 44 /* SlashToken */:\n return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 40 /* PlusToken */:\n return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 41 /* MinusToken */:\n return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 45 /* PercentToken */:\n return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n case 43 /* AsteriskAsteriskToken */:\n return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n }\n } else if ((typeof left.value === \"string\" || typeof left.value === \"number\") && (typeof right.value === \"string\" || typeof right.value === \"number\") && expr.operatorToken.kind === 40 /* PlusToken */) {\n return evaluatorResult(\n \"\" + left.value + right.value,\n isSyntacticallyString,\n resolvedOtherFiles,\n hasExternalReferences\n );\n }\n break;\n }\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return evaluatorResult(\n expr.text,\n /*isSyntacticallyString*/\n true\n );\n case 229 /* TemplateExpression */:\n return evaluateTemplateExpression(expr, location);\n case 9 /* NumericLiteral */:\n return evaluatorResult(+expr.text);\n case 80 /* Identifier */:\n return evaluateEntityNameExpression(expr, location);\n case 212 /* PropertyAccessExpression */:\n if (isEntityNameExpression(expr)) {\n return evaluateEntityNameExpression(expr, location);\n }\n break;\n case 213 /* ElementAccessExpression */:\n return evaluateElementAccessExpression(expr, location);\n }\n return evaluatorResult(\n /*value*/\n void 0,\n isSyntacticallyString,\n resolvedOtherFiles,\n hasExternalReferences\n );\n }\n function evaluateTemplateExpression(expr, location) {\n let result = expr.head.text;\n let resolvedOtherFiles = false;\n let hasExternalReferences = false;\n for (const span of expr.templateSpans) {\n const spanResult = evaluate(span.expression, location);\n if (spanResult.value === void 0) {\n return evaluatorResult(\n /*value*/\n void 0,\n /*isSyntacticallyString*/\n true\n );\n }\n result += spanResult.value;\n result += span.literal.text;\n resolvedOtherFiles || (resolvedOtherFiles = spanResult.resolvedOtherFiles);\n hasExternalReferences || (hasExternalReferences = spanResult.hasExternalReferences);\n }\n return evaluatorResult(\n result,\n /*isSyntacticallyString*/\n true,\n resolvedOtherFiles,\n hasExternalReferences\n );\n }\n return evaluate;\n}\nfunction isConstAssertion(location) {\n return isAssertionExpression(location) && isConstTypeReference(location.type) || isJSDocTypeTag(location) && isConstTypeReference(location.typeExpression);\n}\nfunction findConstructorDeclaration(node) {\n const members = node.members;\n for (const member of members) {\n if (member.kind === 177 /* Constructor */ && nodeIsPresent(member.body)) {\n return member;\n }\n }\n}\nfunction createNameResolver({\n compilerOptions,\n requireSymbol,\n argumentsSymbol,\n error: error2,\n getSymbolOfDeclaration,\n globals,\n lookup,\n setRequiresScopeChangeCache = returnUndefined,\n getRequiresScopeChangeCache = returnUndefined,\n onPropertyWithInvalidInitializer = returnFalse,\n onFailedToResolveSymbol = returnUndefined,\n onSuccessfullyResolvedSymbol = returnUndefined\n}) {\n var isolatedModulesLikeFlagName = compilerOptions.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\";\n var emitStandardClassFields = getEmitStandardClassFields(compilerOptions);\n var emptySymbols = createSymbolTable();\n return resolveNameHelper;\n function resolveNameHelper(location, nameArg, meaning, nameNotFoundMessage, isUse, excludeGlobals) {\n var _a, _b, _c;\n const originalLocation = location;\n let result;\n let lastLocation;\n let lastSelfReferenceLocation;\n let propertyWithInvalidInitializer;\n let associatedDeclarationForContainingInitializerOrBindingName;\n let withinDeferredContext = false;\n let grandparent;\n const name = isString(nameArg) ? nameArg : nameArg.escapedText;\n loop:\n while (location) {\n if (name === \"const\" && isConstAssertion(location)) {\n return void 0;\n }\n if (isModuleOrEnumDeclaration(location) && lastLocation && location.name === lastLocation) {\n lastLocation = location;\n location = location.parent;\n }\n if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n if (result = lookup(location.locals, name, meaning)) {\n let useResult = true;\n if (isFunctionLike(location) && lastLocation && lastLocation !== location.body) {\n if (meaning & result.flags & 788968 /* Type */ && lastLocation.kind !== 321 /* JSDoc */) {\n useResult = result.flags & 262144 /* TypeParameter */ ? !!(lastLocation.flags & 16 /* Synthesized */) || // Synthetic fake scopes are added for signatures so type parameters are accessible from them\n lastLocation === location.type || lastLocation.kind === 170 /* Parameter */ || lastLocation.kind === 342 /* JSDocParameterTag */ || lastLocation.kind === 343 /* JSDocReturnTag */ || lastLocation.kind === 169 /* TypeParameter */ : false;\n }\n if (meaning & result.flags & 3 /* Variable */) {\n if (useOuterVariableScopeInParameter(result, location, lastLocation)) {\n useResult = false;\n } else if (result.flags & 1 /* FunctionScopedVariable */) {\n useResult = lastLocation.kind === 170 /* Parameter */ || !!(lastLocation.flags & 16 /* Synthesized */) || // Synthetic fake scopes are added for signatures so parameters are accessible from them\n lastLocation === location.type && !!findAncestor(result.valueDeclaration, isParameter);\n }\n }\n } else if (location.kind === 195 /* ConditionalType */) {\n useResult = lastLocation === location.trueType;\n }\n if (useResult) {\n break loop;\n } else {\n result = void 0;\n }\n }\n }\n withinDeferredContext = withinDeferredContext || getIsDeferredContext(location, lastLocation);\n switch (location.kind) {\n case 308 /* SourceFile */:\n if (!isExternalOrCommonJsModule(location)) break;\n // falls through\n case 268 /* ModuleDeclaration */:\n const moduleExports = ((_a = getSymbolOfDeclaration(location)) == null ? void 0 : _a.exports) || emptySymbols;\n if (location.kind === 308 /* SourceFile */ || isModuleDeclaration(location) && location.flags & 33554432 /* Ambient */ && !isGlobalScopeAugmentation(location)) {\n if (result = moduleExports.get(\"default\" /* Default */)) {\n const localSymbol = getLocalSymbolForExportDefault(result);\n if (localSymbol && result.flags & meaning && localSymbol.escapedName === name) {\n break loop;\n }\n result = void 0;\n }\n const moduleExport = moduleExports.get(name);\n if (moduleExport && moduleExport.flags === 2097152 /* Alias */ && (getDeclarationOfKind(moduleExport, 282 /* ExportSpecifier */) || getDeclarationOfKind(moduleExport, 281 /* NamespaceExport */))) {\n break;\n }\n }\n if (name !== \"default\" /* Default */ && (result = lookup(moduleExports, name, meaning & 2623475 /* ModuleMember */))) {\n if (isSourceFile(location) && location.commonJsModuleIndicator && !((_b = result.declarations) == null ? void 0 : _b.some(isJSDocTypeAlias))) {\n result = void 0;\n } else {\n break loop;\n }\n }\n break;\n case 267 /* EnumDeclaration */:\n if (result = lookup(((_c = getSymbolOfDeclaration(location)) == null ? void 0 : _c.exports) || emptySymbols, name, meaning & 8 /* EnumMember */)) {\n if (nameNotFoundMessage && getIsolatedModules(compilerOptions) && !(location.flags & 33554432 /* Ambient */) && getSourceFileOfNode(location) !== getSourceFileOfNode(result.valueDeclaration)) {\n error2(\n originalLocation,\n Diagnostics.Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead,\n unescapeLeadingUnderscores(name),\n isolatedModulesLikeFlagName,\n `${unescapeLeadingUnderscores(getSymbolOfDeclaration(location).escapedName)}.${unescapeLeadingUnderscores(name)}`\n );\n }\n break loop;\n }\n break;\n case 173 /* PropertyDeclaration */:\n if (!isStatic(location)) {\n const ctor = findConstructorDeclaration(location.parent);\n if (ctor && ctor.locals) {\n if (lookup(ctor.locals, name, meaning & 111551 /* Value */)) {\n Debug.assertNode(location, isPropertyDeclaration);\n propertyWithInvalidInitializer = location;\n }\n }\n }\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n if (result = lookup(getSymbolOfDeclaration(location).members || emptySymbols, name, meaning & 788968 /* Type */)) {\n if (!isTypeParameterSymbolDeclaredInContainer(result, location)) {\n result = void 0;\n break;\n }\n if (lastLocation && isStatic(lastLocation)) {\n if (nameNotFoundMessage) {\n error2(originalLocation, Diagnostics.Static_members_cannot_reference_class_type_parameters);\n }\n return void 0;\n }\n break loop;\n }\n if (isClassExpression(location) && meaning & 32 /* Class */) {\n const className = location.name;\n if (className && name === className.escapedText) {\n result = location.symbol;\n break loop;\n }\n }\n break;\n case 234 /* ExpressionWithTypeArguments */:\n if (lastLocation === location.expression && location.parent.token === 96 /* ExtendsKeyword */) {\n const container = location.parent.parent;\n if (isClassLike(container) && (result = lookup(getSymbolOfDeclaration(container).members, name, meaning & 788968 /* Type */))) {\n if (nameNotFoundMessage) {\n error2(originalLocation, Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);\n }\n return void 0;\n }\n }\n break;\n // It is not legal to reference a class's own type parameters from a computed property name that\n // belongs to the class. For example:\n //\n // function foo() { return '' }\n // class C { // <-- Class's own type parameter T\n // [foo()]() { } // <-- Reference to T from class's own computed property\n // }\n //\n case 168 /* ComputedPropertyName */:\n grandparent = location.parent.parent;\n if (isClassLike(grandparent) || grandparent.kind === 265 /* InterfaceDeclaration */) {\n if (result = lookup(getSymbolOfDeclaration(grandparent).members, name, meaning & 788968 /* Type */)) {\n if (nameNotFoundMessage) {\n error2(originalLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);\n }\n return void 0;\n }\n }\n break;\n case 220 /* ArrowFunction */:\n if (getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */) {\n break;\n }\n // falls through\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n if (meaning & 3 /* Variable */ && name === \"arguments\") {\n result = argumentsSymbol;\n break loop;\n }\n break;\n case 219 /* FunctionExpression */:\n if (meaning & 3 /* Variable */ && name === \"arguments\") {\n result = argumentsSymbol;\n break loop;\n }\n if (meaning & 16 /* Function */) {\n const functionName = location.name;\n if (functionName && name === functionName.escapedText) {\n result = location.symbol;\n break loop;\n }\n }\n break;\n case 171 /* Decorator */:\n if (location.parent && location.parent.kind === 170 /* Parameter */) {\n location = location.parent;\n }\n if (location.parent && (isClassElement(location.parent) || location.parent.kind === 264 /* ClassDeclaration */)) {\n location = location.parent;\n }\n break;\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n case 352 /* JSDocImportTag */:\n const root = getJSDocRoot(location);\n if (root) {\n location = root.parent;\n }\n break;\n case 170 /* Parameter */:\n if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {\n if (!associatedDeclarationForContainingInitializerOrBindingName) {\n associatedDeclarationForContainingInitializerOrBindingName = location;\n }\n }\n break;\n case 209 /* BindingElement */:\n if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {\n if (isPartOfParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) {\n associatedDeclarationForContainingInitializerOrBindingName = location;\n }\n }\n break;\n case 196 /* InferType */:\n if (meaning & 262144 /* TypeParameter */) {\n const parameterName = location.typeParameter.name;\n if (parameterName && name === parameterName.escapedText) {\n result = location.typeParameter.symbol;\n break loop;\n }\n }\n break;\n case 282 /* ExportSpecifier */:\n if (lastLocation && lastLocation === location.propertyName && location.parent.parent.moduleSpecifier) {\n location = location.parent.parent.parent;\n }\n break;\n }\n if (isSelfReferenceLocation(location, lastLocation)) {\n lastSelfReferenceLocation = location;\n }\n lastLocation = location;\n location = isJSDocTemplateTag(location) ? getEffectiveContainerForJSDocTemplateTag(location) || location.parent : isJSDocParameterTag(location) || isJSDocReturnTag(location) ? getHostSignatureFromJSDoc(location) || location.parent : location.parent;\n }\n if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol)) {\n result.isReferenced |= meaning;\n }\n if (!result) {\n if (lastLocation) {\n Debug.assertNode(lastLocation, isSourceFile);\n if (lastLocation.commonJsModuleIndicator && name === \"exports\" && meaning & lastLocation.symbol.flags) {\n return lastLocation.symbol;\n }\n }\n if (!excludeGlobals) {\n result = lookup(globals, name, meaning);\n }\n }\n if (!result) {\n if (originalLocation && isInJSFile(originalLocation) && originalLocation.parent) {\n if (isRequireCall(\n originalLocation.parent,\n /*requireStringLiteralLikeArgument*/\n false\n )) {\n return requireSymbol;\n }\n }\n }\n if (nameNotFoundMessage) {\n if (propertyWithInvalidInitializer && onPropertyWithInvalidInitializer(originalLocation, name, propertyWithInvalidInitializer, result)) {\n return void 0;\n }\n if (!result) {\n onFailedToResolveSymbol(originalLocation, nameArg, meaning, nameNotFoundMessage);\n } else {\n onSuccessfullyResolvedSymbol(originalLocation, result, meaning, lastLocation, associatedDeclarationForContainingInitializerOrBindingName, withinDeferredContext);\n }\n }\n return result;\n }\n function useOuterVariableScopeInParameter(result, location, lastLocation) {\n const target = getEmitScriptTarget(compilerOptions);\n const functionLocation = location;\n if (isParameter(lastLocation) && functionLocation.body && result.valueDeclaration && result.valueDeclaration.pos >= functionLocation.body.pos && result.valueDeclaration.end <= functionLocation.body.end) {\n if (target >= 2 /* ES2015 */) {\n let declarationRequiresScopeChange = getRequiresScopeChangeCache(functionLocation);\n if (declarationRequiresScopeChange === void 0) {\n declarationRequiresScopeChange = forEach(functionLocation.parameters, requiresScopeChange) || false;\n setRequiresScopeChangeCache(functionLocation, declarationRequiresScopeChange);\n }\n return !declarationRequiresScopeChange;\n }\n }\n return false;\n function requiresScopeChange(node) {\n return requiresScopeChangeWorker(node.name) || !!node.initializer && requiresScopeChangeWorker(node.initializer);\n }\n function requiresScopeChangeWorker(node) {\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 177 /* Constructor */:\n return false;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 304 /* PropertyAssignment */:\n return requiresScopeChangeWorker(node.name);\n case 173 /* PropertyDeclaration */:\n if (hasStaticModifier(node)) {\n return !emitStandardClassFields;\n }\n return requiresScopeChangeWorker(node.name);\n default:\n if (isNullishCoalesce(node) || isOptionalChain(node)) {\n return target < 7 /* ES2020 */;\n }\n if (isBindingElement(node) && node.dotDotDotToken && isObjectBindingPattern(node.parent)) {\n return target < 4 /* ES2017 */;\n }\n if (isTypeNode(node)) return false;\n return forEachChild(node, requiresScopeChangeWorker) || false;\n }\n }\n }\n function getIsDeferredContext(location, lastLocation) {\n if (location.kind !== 220 /* ArrowFunction */ && location.kind !== 219 /* FunctionExpression */) {\n return isTypeQueryNode(location) || (isFunctionLikeDeclaration(location) || location.kind === 173 /* PropertyDeclaration */ && !isStatic(location)) && (!lastLocation || lastLocation !== location.name);\n }\n if (lastLocation && lastLocation === location.name) {\n return false;\n }\n if (location.asteriskToken || hasSyntacticModifier(location, 1024 /* Async */)) {\n return true;\n }\n return !getImmediatelyInvokedFunctionExpression(location);\n }\n function isSelfReferenceLocation(node, lastLocation) {\n switch (node.kind) {\n case 170 /* Parameter */:\n return !!lastLocation && lastLocation === node.name;\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 268 /* ModuleDeclaration */:\n return true;\n default:\n return false;\n }\n }\n function isTypeParameterSymbolDeclaredInContainer(symbol, container) {\n if (symbol.declarations) {\n for (const decl of symbol.declarations) {\n if (decl.kind === 169 /* TypeParameter */) {\n const parent2 = isJSDocTemplateTag(decl.parent) ? getJSDocHost(decl.parent) : decl.parent;\n if (parent2 === container) {\n return !(isJSDocTemplateTag(decl.parent) && find(decl.parent.parent.tags, isJSDocTypeAlias));\n }\n }\n }\n }\n return false;\n }\n}\nfunction isPrimitiveLiteralValue(node, includeBigInt = true) {\n Debug.type(node);\n switch (node.kind) {\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 9 /* NumericLiteral */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return true;\n case 10 /* BigIntLiteral */:\n return includeBigInt;\n case 225 /* PrefixUnaryExpression */:\n if (node.operator === 41 /* MinusToken */) {\n return isNumericLiteral(node.operand) || includeBigInt && isBigIntLiteral(node.operand);\n }\n if (node.operator === 40 /* PlusToken */) {\n return isNumericLiteral(node.operand);\n }\n return false;\n default:\n assertType(node);\n return false;\n }\n}\nfunction unwrapParenthesizedExpression(o) {\n while (o.kind === 218 /* ParenthesizedExpression */) {\n o = o.expression;\n }\n return o;\n}\nfunction hasInferredType(node) {\n Debug.type(node);\n switch (node.kind) {\n case 170 /* Parameter */:\n case 172 /* PropertySignature */:\n case 173 /* PropertyDeclaration */:\n case 209 /* BindingElement */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n case 227 /* BinaryExpression */:\n case 261 /* VariableDeclaration */:\n case 278 /* ExportAssignment */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n return true;\n default:\n assertType(node);\n return false;\n }\n}\nfunction isSideEffectImport(node) {\n const ancestor = findAncestor(node, isImportDeclaration);\n return !!ancestor && !ancestor.importClause;\n}\nvar unprefixedNodeCoreModulesList = [\n \"assert\",\n \"assert/strict\",\n \"async_hooks\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"console\",\n \"constants\",\n \"crypto\",\n \"dgram\",\n \"diagnostics_channel\",\n \"dns\",\n \"dns/promises\",\n \"domain\",\n \"events\",\n \"fs\",\n \"fs/promises\",\n \"http\",\n \"http2\",\n \"https\",\n \"inspector\",\n \"inspector/promises\",\n \"module\",\n \"net\",\n \"os\",\n \"path\",\n \"path/posix\",\n \"path/win32\",\n \"perf_hooks\",\n \"process\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"readline/promises\",\n \"repl\",\n \"stream\",\n \"stream/consumers\",\n \"stream/promises\",\n \"stream/web\",\n \"string_decoder\",\n \"sys\",\n \"test/mock_loader\",\n \"timers\",\n \"timers/promises\",\n \"tls\",\n \"trace_events\",\n \"tty\",\n \"url\",\n \"util\",\n \"util/types\",\n \"v8\",\n \"vm\",\n \"wasi\",\n \"worker_threads\",\n \"zlib\"\n];\nvar unprefixedNodeCoreModules = new Set(unprefixedNodeCoreModulesList);\nvar exclusivelyPrefixedNodeCoreModules = /* @__PURE__ */ new Set([\n \"node:sea\",\n \"node:sqlite\",\n \"node:test\",\n \"node:test/reporters\"\n]);\nvar nodeCoreModules = /* @__PURE__ */ new Set([\n ...unprefixedNodeCoreModulesList,\n ...unprefixedNodeCoreModulesList.map((name) => `node:${name}`),\n ...exclusivelyPrefixedNodeCoreModules\n]);\nfunction forEachDynamicImportOrRequireCall(file, includeTypeSpaceImports, requireStringLiteralLikeArgument, cb) {\n const isJavaScriptFile = isInJSFile(file);\n const r = /import|require/g;\n while (r.exec(file.text) !== null) {\n const node = getNodeAtPosition(\n file,\n r.lastIndex,\n /*includeJSDoc*/\n includeTypeSpaceImports\n );\n if (isJavaScriptFile && isRequireCall(node, requireStringLiteralLikeArgument)) {\n cb(node, node.arguments[0]);\n } else if (isImportCall(node) && node.arguments.length >= 1 && (!requireStringLiteralLikeArgument || isStringLiteralLike(node.arguments[0]))) {\n cb(node, node.arguments[0]);\n } else if (includeTypeSpaceImports && isLiteralImportTypeNode(node)) {\n cb(node, node.argument.literal);\n } else if (includeTypeSpaceImports && isJSDocImportTag(node)) {\n const moduleNameExpr = getExternalModuleName(node);\n if (moduleNameExpr && isStringLiteral(moduleNameExpr) && moduleNameExpr.text) {\n cb(node, moduleNameExpr);\n }\n }\n }\n}\nfunction getNodeAtPosition(sourceFile, position, includeJSDoc) {\n const isJavaScriptFile = isInJSFile(sourceFile);\n let current = sourceFile;\n const getContainingChild = (child) => {\n if (child.pos <= position && (position < child.end || position === child.end && child.kind === 1 /* EndOfFileToken */)) {\n return child;\n }\n };\n while (true) {\n const child = isJavaScriptFile && includeJSDoc && hasJSDocNodes(current) && forEach(current.jsDoc, getContainingChild) || forEachChild(current, getContainingChild);\n if (!child || isMetaProperty(child)) {\n return current;\n }\n current = child;\n }\n}\nfunction isNewScopeNode(node) {\n return isFunctionLike(node) || isJSDocSignature(node) || isMappedTypeNode(node);\n}\nfunction getLibNameFromLibReference(libReference) {\n return toFileNameLowerCase(libReference.fileName);\n}\nfunction getLibFileNameFromLibReference(libReference) {\n const libName = getLibNameFromLibReference(libReference);\n return libMap.get(libName);\n}\nfunction forEachResolvedProjectReference(resolvedProjectReferences, cb) {\n return forEachProjectReference(\n /*projectReferences*/\n void 0,\n resolvedProjectReferences,\n (resolvedRef) => resolvedRef && cb(resolvedRef)\n );\n}\nfunction forEachProjectReference(projectReferences, resolvedProjectReferences, cbResolvedRef, cbRef) {\n let seenResolvedRefs;\n return worker(\n projectReferences,\n resolvedProjectReferences,\n /*parent*/\n void 0\n );\n function worker(projectReferences2, resolvedProjectReferences2, parent2) {\n if (cbRef) {\n const result = cbRef(projectReferences2, parent2);\n if (result) return result;\n }\n let skipChildren;\n return forEach(\n resolvedProjectReferences2,\n (resolvedRef, index) => {\n if (resolvedRef && (seenResolvedRefs == null ? void 0 : seenResolvedRefs.has(resolvedRef.sourceFile.path))) {\n (skipChildren ?? (skipChildren = /* @__PURE__ */ new Set())).add(resolvedRef);\n return void 0;\n }\n const result = cbResolvedRef(resolvedRef, parent2, index);\n if (result || !resolvedRef) return result;\n (seenResolvedRefs || (seenResolvedRefs = /* @__PURE__ */ new Set())).add(resolvedRef.sourceFile.path);\n }\n ) || forEach(\n resolvedProjectReferences2,\n (resolvedRef) => resolvedRef && !(skipChildren == null ? void 0 : skipChildren.has(resolvedRef)) ? worker(resolvedRef.commandLine.projectReferences, resolvedRef.references, resolvedRef) : void 0\n );\n }\n}\nfunction getOptionsSyntaxByArrayElementValue(optionsObject, name, value) {\n return optionsObject && getPropertyArrayElementValue(optionsObject, name, value);\n}\nfunction getPropertyArrayElementValue(objectLiteral, propKey, elementValue) {\n return forEachPropertyAssignment(objectLiteral, propKey, (property) => isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, (element) => isStringLiteral(element) && element.text === elementValue) : void 0);\n}\nfunction getOptionsSyntaxByValue(optionsObject, name, value) {\n return forEachOptionsSyntaxByName(optionsObject, name, (property) => isStringLiteral(property.initializer) && property.initializer.text === value ? property.initializer : void 0);\n}\nfunction forEachOptionsSyntaxByName(optionsObject, name, callback) {\n return forEachPropertyAssignment(optionsObject, name, callback);\n}\nfunction getSynthesizedDeepClone(node, includeTrivia = true) {\n const clone2 = node && getSynthesizedDeepCloneWorker(node);\n if (clone2 && !includeTrivia) suppressLeadingAndTrailingTrivia(clone2);\n return setParentRecursive(\n clone2,\n /*incremental*/\n false\n );\n}\nfunction getSynthesizedDeepCloneWithReplacements(node, includeTrivia, replaceNode) {\n let clone2 = replaceNode(node);\n if (clone2) {\n setOriginalNode(clone2, node);\n } else {\n clone2 = getSynthesizedDeepCloneWorker(node, replaceNode);\n }\n if (clone2 && !includeTrivia) suppressLeadingAndTrailingTrivia(clone2);\n return clone2;\n}\nfunction getSynthesizedDeepCloneWorker(node, replaceNode) {\n const nodeClone = replaceNode ? (n) => getSynthesizedDeepCloneWithReplacements(\n n,\n /*includeTrivia*/\n true,\n replaceNode\n ) : getSynthesizedDeepClone;\n const nodesClone = replaceNode ? (ns) => ns && getSynthesizedDeepClonesWithReplacements(\n ns,\n /*includeTrivia*/\n true,\n replaceNode\n ) : (ns) => ns && getSynthesizedDeepClones(ns);\n const visited = visitEachChild(\n node,\n nodeClone,\n /*context*/\n void 0,\n nodesClone,\n nodeClone\n );\n if (visited === node) {\n const clone2 = isStringLiteral(node) ? setOriginalNode(factory.createStringLiteralFromNode(node), node) : isNumericLiteral(node) ? setOriginalNode(factory.createNumericLiteral(node.text, node.numericLiteralFlags), node) : factory.cloneNode(node);\n return setTextRange(clone2, node);\n }\n visited.parent = void 0;\n return visited;\n}\nfunction getSynthesizedDeepClones(nodes, includeTrivia = true) {\n if (nodes) {\n const cloned = factory.createNodeArray(nodes.map((n) => getSynthesizedDeepClone(n, includeTrivia)), nodes.hasTrailingComma);\n setTextRange(cloned, nodes);\n return cloned;\n }\n return nodes;\n}\nfunction getSynthesizedDeepClonesWithReplacements(nodes, includeTrivia, replaceNode) {\n return factory.createNodeArray(nodes.map((n) => getSynthesizedDeepCloneWithReplacements(n, includeTrivia, replaceNode)), nodes.hasTrailingComma);\n}\nfunction suppressLeadingAndTrailingTrivia(node) {\n suppressLeadingTrivia(node);\n suppressTrailingTrivia(node);\n}\nfunction suppressLeadingTrivia(node) {\n addEmitFlagsRecursively(node, 1024 /* NoLeadingComments */, getFirstChild);\n}\nfunction suppressTrailingTrivia(node) {\n addEmitFlagsRecursively(node, 2048 /* NoTrailingComments */, getLastChild);\n}\nfunction addEmitFlagsRecursively(node, flag, getChild) {\n addEmitFlags(node, flag);\n const child = getChild(node);\n if (child) addEmitFlagsRecursively(child, flag, getChild);\n}\nfunction getFirstChild(node) {\n return forEachChild(node, (child) => child);\n}\n\n// src/compiler/factory/baseNodeFactory.ts\nfunction createBaseNodeFactory() {\n let NodeConstructor2;\n let TokenConstructor2;\n let IdentifierConstructor2;\n let PrivateIdentifierConstructor2;\n let SourceFileConstructor2;\n return {\n createBaseSourceFileNode,\n createBaseIdentifierNode,\n createBasePrivateIdentifierNode,\n createBaseTokenNode,\n createBaseNode\n };\n function createBaseSourceFileNode(kind) {\n return new (SourceFileConstructor2 || (SourceFileConstructor2 = objectAllocator.getSourceFileConstructor()))(\n kind,\n /*pos*/\n -1,\n /*end*/\n -1\n );\n }\n function createBaseIdentifierNode(kind) {\n return new (IdentifierConstructor2 || (IdentifierConstructor2 = objectAllocator.getIdentifierConstructor()))(\n kind,\n /*pos*/\n -1,\n /*end*/\n -1\n );\n }\n function createBasePrivateIdentifierNode(kind) {\n return new (PrivateIdentifierConstructor2 || (PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor()))(\n kind,\n /*pos*/\n -1,\n /*end*/\n -1\n );\n }\n function createBaseTokenNode(kind) {\n return new (TokenConstructor2 || (TokenConstructor2 = objectAllocator.getTokenConstructor()))(\n kind,\n /*pos*/\n -1,\n /*end*/\n -1\n );\n }\n function createBaseNode(kind) {\n return new (NodeConstructor2 || (NodeConstructor2 = objectAllocator.getNodeConstructor()))(\n kind,\n /*pos*/\n -1,\n /*end*/\n -1\n );\n }\n}\n\n// src/compiler/factory/parenthesizerRules.ts\nfunction createParenthesizerRules(factory2) {\n let binaryLeftOperandParenthesizerCache;\n let binaryRightOperandParenthesizerCache;\n return {\n getParenthesizeLeftSideOfBinaryForOperator,\n getParenthesizeRightSideOfBinaryForOperator,\n parenthesizeLeftSideOfBinary,\n parenthesizeRightSideOfBinary,\n parenthesizeExpressionOfComputedPropertyName,\n parenthesizeConditionOfConditionalExpression,\n parenthesizeBranchOfConditionalExpression,\n parenthesizeExpressionOfExportDefault,\n parenthesizeExpressionOfNew,\n parenthesizeLeftSideOfAccess,\n parenthesizeOperandOfPostfixUnary,\n parenthesizeOperandOfPrefixUnary,\n parenthesizeExpressionsOfCommaDelimitedList,\n parenthesizeExpressionForDisallowedComma,\n parenthesizeExpressionOfExpressionStatement,\n parenthesizeConciseBodyOfArrowFunction,\n parenthesizeCheckTypeOfConditionalType,\n parenthesizeExtendsTypeOfConditionalType,\n parenthesizeConstituentTypesOfUnionType,\n parenthesizeConstituentTypeOfUnionType,\n parenthesizeConstituentTypesOfIntersectionType,\n parenthesizeConstituentTypeOfIntersectionType,\n parenthesizeOperandOfTypeOperator,\n parenthesizeOperandOfReadonlyTypeOperator,\n parenthesizeNonArrayTypeOfPostfixType,\n parenthesizeElementTypesOfTupleType,\n parenthesizeElementTypeOfTupleType,\n parenthesizeTypeOfOptionalType,\n parenthesizeTypeArguments,\n parenthesizeLeadingTypeArgument\n };\n function getParenthesizeLeftSideOfBinaryForOperator(operatorKind) {\n binaryLeftOperandParenthesizerCache || (binaryLeftOperandParenthesizerCache = /* @__PURE__ */ new Map());\n let parenthesizerRule = binaryLeftOperandParenthesizerCache.get(operatorKind);\n if (!parenthesizerRule) {\n parenthesizerRule = (node) => parenthesizeLeftSideOfBinary(operatorKind, node);\n binaryLeftOperandParenthesizerCache.set(operatorKind, parenthesizerRule);\n }\n return parenthesizerRule;\n }\n function getParenthesizeRightSideOfBinaryForOperator(operatorKind) {\n binaryRightOperandParenthesizerCache || (binaryRightOperandParenthesizerCache = /* @__PURE__ */ new Map());\n let parenthesizerRule = binaryRightOperandParenthesizerCache.get(operatorKind);\n if (!parenthesizerRule) {\n parenthesizerRule = (node) => parenthesizeRightSideOfBinary(\n operatorKind,\n /*leftSide*/\n void 0,\n node\n );\n binaryRightOperandParenthesizerCache.set(operatorKind, parenthesizerRule);\n }\n return parenthesizerRule;\n }\n function binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) {\n const binaryOperatorPrecedence = getOperatorPrecedence(227 /* BinaryExpression */, binaryOperator);\n const binaryOperatorAssociativity = getOperatorAssociativity(227 /* BinaryExpression */, binaryOperator);\n const emittedOperand = skipPartiallyEmittedExpressions(operand);\n if (!isLeftSideOfBinary && operand.kind === 220 /* ArrowFunction */ && binaryOperatorPrecedence > 3 /* Assignment */) {\n return true;\n }\n const operandPrecedence = getExpressionPrecedence(emittedOperand);\n switch (compareValues(operandPrecedence, binaryOperatorPrecedence)) {\n case -1 /* LessThan */:\n if (!isLeftSideOfBinary && binaryOperatorAssociativity === 1 /* Right */ && operand.kind === 230 /* YieldExpression */) {\n return false;\n }\n return true;\n case 1 /* GreaterThan */:\n return false;\n case 0 /* EqualTo */:\n if (isLeftSideOfBinary) {\n return binaryOperatorAssociativity === 1 /* Right */;\n } else {\n if (isBinaryExpression(emittedOperand) && emittedOperand.operatorToken.kind === binaryOperator) {\n if (operatorHasAssociativeProperty(binaryOperator)) {\n return false;\n }\n if (binaryOperator === 40 /* PlusToken */) {\n const leftKind = leftOperand ? getLiteralKindOfBinaryPlusOperand(leftOperand) : 0 /* Unknown */;\n if (isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(emittedOperand)) {\n return false;\n }\n }\n }\n const operandAssociativity = getExpressionAssociativity(emittedOperand);\n return operandAssociativity === 0 /* Left */;\n }\n }\n }\n function operatorHasAssociativeProperty(binaryOperator) {\n return binaryOperator === 42 /* AsteriskToken */ || binaryOperator === 52 /* BarToken */ || binaryOperator === 51 /* AmpersandToken */ || binaryOperator === 53 /* CaretToken */ || binaryOperator === 28 /* CommaToken */;\n }\n function getLiteralKindOfBinaryPlusOperand(node) {\n node = skipPartiallyEmittedExpressions(node);\n if (isLiteralKind(node.kind)) {\n return node.kind;\n }\n if (node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 40 /* PlusToken */) {\n if (node.cachedLiteralKind !== void 0) {\n return node.cachedLiteralKind;\n }\n const leftKind = getLiteralKindOfBinaryPlusOperand(node.left);\n const literalKind = isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(node.right) ? leftKind : 0 /* Unknown */;\n node.cachedLiteralKind = literalKind;\n return literalKind;\n }\n return 0 /* Unknown */;\n }\n function parenthesizeBinaryOperand(binaryOperator, operand, isLeftSideOfBinary, leftOperand) {\n const skipped = skipPartiallyEmittedExpressions(operand);\n if (skipped.kind === 218 /* ParenthesizedExpression */) {\n return operand;\n }\n return binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) ? factory2.createParenthesizedExpression(operand) : operand;\n }\n function parenthesizeLeftSideOfBinary(binaryOperator, leftSide) {\n return parenthesizeBinaryOperand(\n binaryOperator,\n leftSide,\n /*isLeftSideOfBinary*/\n true\n );\n }\n function parenthesizeRightSideOfBinary(binaryOperator, leftSide, rightSide) {\n return parenthesizeBinaryOperand(\n binaryOperator,\n rightSide,\n /*isLeftSideOfBinary*/\n false,\n leftSide\n );\n }\n function parenthesizeExpressionOfComputedPropertyName(expression) {\n return isCommaSequence(expression) ? factory2.createParenthesizedExpression(expression) : expression;\n }\n function parenthesizeConditionOfConditionalExpression(condition) {\n const conditionalPrecedence = getOperatorPrecedence(228 /* ConditionalExpression */, 58 /* QuestionToken */);\n const emittedCondition = skipPartiallyEmittedExpressions(condition);\n const conditionPrecedence = getExpressionPrecedence(emittedCondition);\n if (compareValues(conditionPrecedence, conditionalPrecedence) !== 1 /* GreaterThan */) {\n return factory2.createParenthesizedExpression(condition);\n }\n return condition;\n }\n function parenthesizeBranchOfConditionalExpression(branch) {\n const emittedExpression = skipPartiallyEmittedExpressions(branch);\n return isCommaSequence(emittedExpression) ? factory2.createParenthesizedExpression(branch) : branch;\n }\n function parenthesizeExpressionOfExportDefault(expression) {\n const check = skipPartiallyEmittedExpressions(expression);\n let needsParens = isCommaSequence(check);\n if (!needsParens) {\n switch (getLeftmostExpression(\n check,\n /*stopAtCallExpressions*/\n false\n ).kind) {\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n needsParens = true;\n }\n }\n return needsParens ? factory2.createParenthesizedExpression(expression) : expression;\n }\n function parenthesizeExpressionOfNew(expression) {\n const leftmostExpr = getLeftmostExpression(\n expression,\n /*stopAtCallExpressions*/\n true\n );\n switch (leftmostExpr.kind) {\n case 214 /* CallExpression */:\n return factory2.createParenthesizedExpression(expression);\n case 215 /* NewExpression */:\n return !leftmostExpr.arguments ? factory2.createParenthesizedExpression(expression) : expression;\n }\n return parenthesizeLeftSideOfAccess(expression);\n }\n function parenthesizeLeftSideOfAccess(expression, optionalChain) {\n const emittedExpression = skipPartiallyEmittedExpressions(expression);\n if (isLeftHandSideExpression(emittedExpression) && (emittedExpression.kind !== 215 /* NewExpression */ || emittedExpression.arguments) && (optionalChain || !isOptionalChain(emittedExpression))) {\n return expression;\n }\n return setTextRange(factory2.createParenthesizedExpression(expression), expression);\n }\n function parenthesizeOperandOfPostfixUnary(operand) {\n return isLeftHandSideExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand);\n }\n function parenthesizeOperandOfPrefixUnary(operand) {\n return isUnaryExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand);\n }\n function parenthesizeExpressionsOfCommaDelimitedList(elements) {\n const result = sameMap(elements, parenthesizeExpressionForDisallowedComma);\n return setTextRange(factory2.createNodeArray(result, elements.hasTrailingComma), elements);\n }\n function parenthesizeExpressionForDisallowedComma(expression) {\n const emittedExpression = skipPartiallyEmittedExpressions(expression);\n const expressionPrecedence = getExpressionPrecedence(emittedExpression);\n const commaPrecedence = getOperatorPrecedence(227 /* BinaryExpression */, 28 /* CommaToken */);\n return expressionPrecedence > commaPrecedence ? expression : setTextRange(factory2.createParenthesizedExpression(expression), expression);\n }\n function parenthesizeExpressionOfExpressionStatement(expression) {\n const emittedExpression = skipPartiallyEmittedExpressions(expression);\n if (isCallExpression(emittedExpression)) {\n const callee = emittedExpression.expression;\n const kind = skipPartiallyEmittedExpressions(callee).kind;\n if (kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */) {\n const updated = factory2.updateCallExpression(\n emittedExpression,\n setTextRange(factory2.createParenthesizedExpression(callee), callee),\n emittedExpression.typeArguments,\n emittedExpression.arguments\n );\n return factory2.restoreOuterExpressions(expression, updated, 8 /* PartiallyEmittedExpressions */);\n }\n }\n const leftmostExpressionKind = getLeftmostExpression(\n emittedExpression,\n /*stopAtCallExpressions*/\n false\n ).kind;\n if (leftmostExpressionKind === 211 /* ObjectLiteralExpression */ || leftmostExpressionKind === 219 /* FunctionExpression */) {\n return setTextRange(factory2.createParenthesizedExpression(expression), expression);\n }\n return expression;\n }\n function parenthesizeConciseBodyOfArrowFunction(body) {\n if (!isBlock(body) && (isCommaSequence(body) || getLeftmostExpression(\n body,\n /*stopAtCallExpressions*/\n false\n ).kind === 211 /* ObjectLiteralExpression */)) {\n return setTextRange(factory2.createParenthesizedExpression(body), body);\n }\n return body;\n }\n function parenthesizeCheckTypeOfConditionalType(checkType) {\n switch (checkType.kind) {\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 195 /* ConditionalType */:\n return factory2.createParenthesizedType(checkType);\n }\n return checkType;\n }\n function parenthesizeExtendsTypeOfConditionalType(extendsType) {\n switch (extendsType.kind) {\n case 195 /* ConditionalType */:\n return factory2.createParenthesizedType(extendsType);\n }\n return extendsType;\n }\n function parenthesizeConstituentTypeOfUnionType(type) {\n switch (type.kind) {\n case 193 /* UnionType */:\n // Not strictly necessary, but a union containing a union should have been flattened\n case 194 /* IntersectionType */:\n return factory2.createParenthesizedType(type);\n }\n return parenthesizeCheckTypeOfConditionalType(type);\n }\n function parenthesizeConstituentTypesOfUnionType(members) {\n return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfUnionType));\n }\n function parenthesizeConstituentTypeOfIntersectionType(type) {\n switch (type.kind) {\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n return factory2.createParenthesizedType(type);\n }\n return parenthesizeConstituentTypeOfUnionType(type);\n }\n function parenthesizeConstituentTypesOfIntersectionType(members) {\n return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfIntersectionType));\n }\n function parenthesizeOperandOfTypeOperator(type) {\n switch (type.kind) {\n case 194 /* IntersectionType */:\n return factory2.createParenthesizedType(type);\n }\n return parenthesizeConstituentTypeOfIntersectionType(type);\n }\n function parenthesizeOperandOfReadonlyTypeOperator(type) {\n switch (type.kind) {\n case 199 /* TypeOperator */:\n return factory2.createParenthesizedType(type);\n }\n return parenthesizeOperandOfTypeOperator(type);\n }\n function parenthesizeNonArrayTypeOfPostfixType(type) {\n switch (type.kind) {\n case 196 /* InferType */:\n case 199 /* TypeOperator */:\n case 187 /* TypeQuery */:\n return factory2.createParenthesizedType(type);\n }\n return parenthesizeOperandOfTypeOperator(type);\n }\n function parenthesizeElementTypesOfTupleType(types) {\n return factory2.createNodeArray(sameMap(types, parenthesizeElementTypeOfTupleType));\n }\n function parenthesizeElementTypeOfTupleType(type) {\n if (hasJSDocPostfixQuestion(type)) return factory2.createParenthesizedType(type);\n return type;\n }\n function hasJSDocPostfixQuestion(type) {\n if (isJSDocNullableType(type)) return type.postfix;\n if (isNamedTupleMember(type)) return hasJSDocPostfixQuestion(type.type);\n if (isFunctionTypeNode(type) || isConstructorTypeNode(type) || isTypeOperatorNode(type)) return hasJSDocPostfixQuestion(type.type);\n if (isConditionalTypeNode(type)) return hasJSDocPostfixQuestion(type.falseType);\n if (isUnionTypeNode(type)) return hasJSDocPostfixQuestion(last(type.types));\n if (isIntersectionTypeNode(type)) return hasJSDocPostfixQuestion(last(type.types));\n if (isInferTypeNode(type)) return !!type.typeParameter.constraint && hasJSDocPostfixQuestion(type.typeParameter.constraint);\n return false;\n }\n function parenthesizeTypeOfOptionalType(type) {\n if (hasJSDocPostfixQuestion(type)) return factory2.createParenthesizedType(type);\n return parenthesizeNonArrayTypeOfPostfixType(type);\n }\n function parenthesizeLeadingTypeArgument(node) {\n return isFunctionOrConstructorTypeNode(node) && node.typeParameters ? factory2.createParenthesizedType(node) : node;\n }\n function parenthesizeOrdinalTypeArgument(node, i) {\n return i === 0 ? parenthesizeLeadingTypeArgument(node) : node;\n }\n function parenthesizeTypeArguments(typeArguments) {\n if (some(typeArguments)) {\n return factory2.createNodeArray(sameMap(typeArguments, parenthesizeOrdinalTypeArgument));\n }\n }\n}\nvar nullParenthesizerRules = {\n getParenthesizeLeftSideOfBinaryForOperator: (_) => identity,\n getParenthesizeRightSideOfBinaryForOperator: (_) => identity,\n parenthesizeLeftSideOfBinary: (_binaryOperator, leftSide) => leftSide,\n parenthesizeRightSideOfBinary: (_binaryOperator, _leftSide, rightSide) => rightSide,\n parenthesizeExpressionOfComputedPropertyName: identity,\n parenthesizeConditionOfConditionalExpression: identity,\n parenthesizeBranchOfConditionalExpression: identity,\n parenthesizeExpressionOfExportDefault: identity,\n parenthesizeExpressionOfNew: (expression) => cast(expression, isLeftHandSideExpression),\n parenthesizeLeftSideOfAccess: (expression) => cast(expression, isLeftHandSideExpression),\n parenthesizeOperandOfPostfixUnary: (operand) => cast(operand, isLeftHandSideExpression),\n parenthesizeOperandOfPrefixUnary: (operand) => cast(operand, isUnaryExpression),\n parenthesizeExpressionsOfCommaDelimitedList: (nodes) => cast(nodes, isNodeArray),\n parenthesizeExpressionForDisallowedComma: identity,\n parenthesizeExpressionOfExpressionStatement: identity,\n parenthesizeConciseBodyOfArrowFunction: identity,\n parenthesizeCheckTypeOfConditionalType: identity,\n parenthesizeExtendsTypeOfConditionalType: identity,\n parenthesizeConstituentTypesOfUnionType: (nodes) => cast(nodes, isNodeArray),\n parenthesizeConstituentTypeOfUnionType: identity,\n parenthesizeConstituentTypesOfIntersectionType: (nodes) => cast(nodes, isNodeArray),\n parenthesizeConstituentTypeOfIntersectionType: identity,\n parenthesizeOperandOfTypeOperator: identity,\n parenthesizeOperandOfReadonlyTypeOperator: identity,\n parenthesizeNonArrayTypeOfPostfixType: identity,\n parenthesizeElementTypesOfTupleType: (nodes) => cast(nodes, isNodeArray),\n parenthesizeElementTypeOfTupleType: identity,\n parenthesizeTypeOfOptionalType: identity,\n parenthesizeTypeArguments: (nodes) => nodes && cast(nodes, isNodeArray),\n parenthesizeLeadingTypeArgument: identity\n};\n\n// src/compiler/factory/nodeConverters.ts\nfunction createNodeConverters(factory2) {\n return {\n convertToFunctionBlock,\n convertToFunctionExpression,\n convertToClassExpression,\n convertToArrayAssignmentElement,\n convertToObjectAssignmentElement,\n convertToAssignmentPattern,\n convertToObjectAssignmentPattern,\n convertToArrayAssignmentPattern,\n convertToAssignmentElementTarget\n };\n function convertToFunctionBlock(node, multiLine) {\n if (isBlock(node)) return node;\n const returnStatement = factory2.createReturnStatement(node);\n setTextRange(returnStatement, node);\n const body = factory2.createBlock([returnStatement], multiLine);\n setTextRange(body, node);\n return body;\n }\n function convertToFunctionExpression(node) {\n var _a;\n if (!node.body) return Debug.fail(`Cannot convert a FunctionDeclaration without a body`);\n const updated = factory2.createFunctionExpression(\n (_a = getModifiers(node)) == null ? void 0 : _a.filter((modifier) => !isExportModifier(modifier) && !isDefaultModifier(modifier)),\n node.asteriskToken,\n node.name,\n node.typeParameters,\n node.parameters,\n node.type,\n node.body\n );\n setOriginalNode(updated, node);\n setTextRange(updated, node);\n if (getStartsOnNewLine(node)) {\n setStartsOnNewLine(\n updated,\n /*newLine*/\n true\n );\n }\n return updated;\n }\n function convertToClassExpression(node) {\n var _a;\n const updated = factory2.createClassExpression(\n (_a = node.modifiers) == null ? void 0 : _a.filter((modifier) => !isExportModifier(modifier) && !isDefaultModifier(modifier)),\n node.name,\n node.typeParameters,\n node.heritageClauses,\n node.members\n );\n setOriginalNode(updated, node);\n setTextRange(updated, node);\n if (getStartsOnNewLine(node)) {\n setStartsOnNewLine(\n updated,\n /*newLine*/\n true\n );\n }\n return updated;\n }\n function convertToArrayAssignmentElement(element) {\n if (isBindingElement(element)) {\n if (element.dotDotDotToken) {\n Debug.assertNode(element.name, isIdentifier);\n return setOriginalNode(setTextRange(factory2.createSpreadElement(element.name), element), element);\n }\n const expression = convertToAssignmentElementTarget(element.name);\n return element.initializer ? setOriginalNode(\n setTextRange(\n factory2.createAssignment(expression, element.initializer),\n element\n ),\n element\n ) : expression;\n }\n return cast(element, isExpression);\n }\n function convertToObjectAssignmentElement(element) {\n if (isBindingElement(element)) {\n if (element.dotDotDotToken) {\n Debug.assertNode(element.name, isIdentifier);\n return setOriginalNode(setTextRange(factory2.createSpreadAssignment(element.name), element), element);\n }\n if (element.propertyName) {\n const expression = convertToAssignmentElementTarget(element.name);\n return setOriginalNode(setTextRange(factory2.createPropertyAssignment(element.propertyName, element.initializer ? factory2.createAssignment(expression, element.initializer) : expression), element), element);\n }\n Debug.assertNode(element.name, isIdentifier);\n return setOriginalNode(setTextRange(factory2.createShorthandPropertyAssignment(element.name, element.initializer), element), element);\n }\n return cast(element, isObjectLiteralElementLike);\n }\n function convertToAssignmentPattern(node) {\n switch (node.kind) {\n case 208 /* ArrayBindingPattern */:\n case 210 /* ArrayLiteralExpression */:\n return convertToArrayAssignmentPattern(node);\n case 207 /* ObjectBindingPattern */:\n case 211 /* ObjectLiteralExpression */:\n return convertToObjectAssignmentPattern(node);\n }\n }\n function convertToObjectAssignmentPattern(node) {\n if (isObjectBindingPattern(node)) {\n return setOriginalNode(\n setTextRange(\n factory2.createObjectLiteralExpression(map(node.elements, convertToObjectAssignmentElement)),\n node\n ),\n node\n );\n }\n return cast(node, isObjectLiteralExpression);\n }\n function convertToArrayAssignmentPattern(node) {\n if (isArrayBindingPattern(node)) {\n return setOriginalNode(\n setTextRange(\n factory2.createArrayLiteralExpression(map(node.elements, convertToArrayAssignmentElement)),\n node\n ),\n node\n );\n }\n return cast(node, isArrayLiteralExpression);\n }\n function convertToAssignmentElementTarget(node) {\n if (isBindingPattern(node)) {\n return convertToAssignmentPattern(node);\n }\n return cast(node, isExpression);\n }\n}\nvar nullNodeConverters = {\n convertToFunctionBlock: notImplemented,\n convertToFunctionExpression: notImplemented,\n convertToClassExpression: notImplemented,\n convertToArrayAssignmentElement: notImplemented,\n convertToObjectAssignmentElement: notImplemented,\n convertToAssignmentPattern: notImplemented,\n convertToObjectAssignmentPattern: notImplemented,\n convertToArrayAssignmentPattern: notImplemented,\n convertToAssignmentElementTarget: notImplemented\n};\n\n// src/compiler/factory/nodeFactory.ts\nvar nextAutoGenerateId = 0;\nvar NodeFactoryFlags = /* @__PURE__ */ ((NodeFactoryFlags2) => {\n NodeFactoryFlags2[NodeFactoryFlags2[\"None\"] = 0] = \"None\";\n NodeFactoryFlags2[NodeFactoryFlags2[\"NoParenthesizerRules\"] = 1] = \"NoParenthesizerRules\";\n NodeFactoryFlags2[NodeFactoryFlags2[\"NoNodeConverters\"] = 2] = \"NoNodeConverters\";\n NodeFactoryFlags2[NodeFactoryFlags2[\"NoIndentationOnFreshPropertyAccess\"] = 4] = \"NoIndentationOnFreshPropertyAccess\";\n NodeFactoryFlags2[NodeFactoryFlags2[\"NoOriginalNode\"] = 8] = \"NoOriginalNode\";\n return NodeFactoryFlags2;\n})(NodeFactoryFlags || {});\nvar nodeFactoryPatchers = [];\nfunction addNodeFactoryPatcher(fn) {\n nodeFactoryPatchers.push(fn);\n}\nfunction createNodeFactory(flags, baseFactory2) {\n const setOriginal = flags & 8 /* NoOriginalNode */ ? identity : setOriginalNode;\n const parenthesizerRules = memoize(() => flags & 1 /* NoParenthesizerRules */ ? nullParenthesizerRules : createParenthesizerRules(factory2));\n const converters = memoize(() => flags & 2 /* NoNodeConverters */ ? nullNodeConverters : createNodeConverters(factory2));\n const getBinaryCreateFunction = memoizeOne((operator) => (left, right) => createBinaryExpression(left, operator, right));\n const getPrefixUnaryCreateFunction = memoizeOne((operator) => (operand) => createPrefixUnaryExpression(operator, operand));\n const getPostfixUnaryCreateFunction = memoizeOne((operator) => (operand) => createPostfixUnaryExpression(operand, operator));\n const getJSDocPrimaryTypeCreateFunction = memoizeOne((kind) => () => createJSDocPrimaryTypeWorker(kind));\n const getJSDocUnaryTypeCreateFunction = memoizeOne((kind) => (type) => createJSDocUnaryTypeWorker(kind, type));\n const getJSDocUnaryTypeUpdateFunction = memoizeOne((kind) => (node, type) => updateJSDocUnaryTypeWorker(kind, node, type));\n const getJSDocPrePostfixUnaryTypeCreateFunction = memoizeOne((kind) => (type, postfix) => createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix));\n const getJSDocPrePostfixUnaryTypeUpdateFunction = memoizeOne((kind) => (node, type) => updateJSDocPrePostfixUnaryTypeWorker(kind, node, type));\n const getJSDocSimpleTagCreateFunction = memoizeOne((kind) => (tagName, comment) => createJSDocSimpleTagWorker(kind, tagName, comment));\n const getJSDocSimpleTagUpdateFunction = memoizeOne((kind) => (node, tagName, comment) => updateJSDocSimpleTagWorker(kind, node, tagName, comment));\n const getJSDocTypeLikeTagCreateFunction = memoizeOne((kind) => (tagName, typeExpression, comment) => createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment));\n const getJSDocTypeLikeTagUpdateFunction = memoizeOne((kind) => (node, tagName, typeExpression, comment) => updateJSDocTypeLikeTagWorker(kind, node, tagName, typeExpression, comment));\n const factory2 = {\n get parenthesizer() {\n return parenthesizerRules();\n },\n get converters() {\n return converters();\n },\n baseFactory: baseFactory2,\n flags,\n createNodeArray,\n createNumericLiteral,\n createBigIntLiteral,\n createStringLiteral,\n createStringLiteralFromNode,\n createRegularExpressionLiteral,\n createLiteralLikeNode,\n createIdentifier,\n createTempVariable,\n createLoopVariable,\n createUniqueName,\n getGeneratedNameForNode,\n createPrivateIdentifier,\n createUniquePrivateName,\n getGeneratedPrivateNameForNode,\n createToken,\n createSuper,\n createThis,\n createNull,\n createTrue,\n createFalse,\n createModifier,\n createModifiersFromModifierFlags,\n createQualifiedName,\n updateQualifiedName,\n createComputedPropertyName,\n updateComputedPropertyName,\n createTypeParameterDeclaration,\n updateTypeParameterDeclaration,\n createParameterDeclaration,\n updateParameterDeclaration,\n createDecorator,\n updateDecorator,\n createPropertySignature,\n updatePropertySignature,\n createPropertyDeclaration,\n updatePropertyDeclaration: updatePropertyDeclaration2,\n createMethodSignature,\n updateMethodSignature,\n createMethodDeclaration,\n updateMethodDeclaration,\n createConstructorDeclaration,\n updateConstructorDeclaration,\n createGetAccessorDeclaration,\n updateGetAccessorDeclaration,\n createSetAccessorDeclaration,\n updateSetAccessorDeclaration,\n createCallSignature,\n updateCallSignature,\n createConstructSignature,\n updateConstructSignature,\n createIndexSignature,\n updateIndexSignature,\n createClassStaticBlockDeclaration,\n updateClassStaticBlockDeclaration,\n createTemplateLiteralTypeSpan,\n updateTemplateLiteralTypeSpan,\n createKeywordTypeNode,\n createTypePredicateNode,\n updateTypePredicateNode,\n createTypeReferenceNode,\n updateTypeReferenceNode,\n createFunctionTypeNode,\n updateFunctionTypeNode,\n createConstructorTypeNode,\n updateConstructorTypeNode,\n createTypeQueryNode,\n updateTypeQueryNode,\n createTypeLiteralNode,\n updateTypeLiteralNode,\n createArrayTypeNode,\n updateArrayTypeNode,\n createTupleTypeNode,\n updateTupleTypeNode,\n createNamedTupleMember,\n updateNamedTupleMember,\n createOptionalTypeNode,\n updateOptionalTypeNode,\n createRestTypeNode,\n updateRestTypeNode,\n createUnionTypeNode,\n updateUnionTypeNode,\n createIntersectionTypeNode,\n updateIntersectionTypeNode,\n createConditionalTypeNode,\n updateConditionalTypeNode,\n createInferTypeNode,\n updateInferTypeNode,\n createImportTypeNode,\n updateImportTypeNode,\n createParenthesizedType,\n updateParenthesizedType,\n createThisTypeNode,\n createTypeOperatorNode,\n updateTypeOperatorNode,\n createIndexedAccessTypeNode,\n updateIndexedAccessTypeNode,\n createMappedTypeNode,\n updateMappedTypeNode,\n createLiteralTypeNode,\n updateLiteralTypeNode,\n createTemplateLiteralType,\n updateTemplateLiteralType,\n createObjectBindingPattern,\n updateObjectBindingPattern,\n createArrayBindingPattern,\n updateArrayBindingPattern,\n createBindingElement,\n updateBindingElement,\n createArrayLiteralExpression,\n updateArrayLiteralExpression,\n createObjectLiteralExpression,\n updateObjectLiteralExpression,\n createPropertyAccessExpression: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? (expression, name) => setEmitFlags(createPropertyAccessExpression(expression, name), 262144 /* NoIndentation */) : createPropertyAccessExpression,\n updatePropertyAccessExpression,\n createPropertyAccessChain: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? (expression, questionDotToken, name) => setEmitFlags(createPropertyAccessChain(expression, questionDotToken, name), 262144 /* NoIndentation */) : createPropertyAccessChain,\n updatePropertyAccessChain,\n createElementAccessExpression,\n updateElementAccessExpression,\n createElementAccessChain,\n updateElementAccessChain,\n createCallExpression,\n updateCallExpression,\n createCallChain,\n updateCallChain,\n createNewExpression,\n updateNewExpression,\n createTaggedTemplateExpression,\n updateTaggedTemplateExpression,\n createTypeAssertion,\n updateTypeAssertion,\n createParenthesizedExpression,\n updateParenthesizedExpression,\n createFunctionExpression,\n updateFunctionExpression,\n createArrowFunction,\n updateArrowFunction,\n createDeleteExpression,\n updateDeleteExpression,\n createTypeOfExpression,\n updateTypeOfExpression,\n createVoidExpression,\n updateVoidExpression,\n createAwaitExpression,\n updateAwaitExpression,\n createPrefixUnaryExpression,\n updatePrefixUnaryExpression,\n createPostfixUnaryExpression,\n updatePostfixUnaryExpression,\n createBinaryExpression,\n updateBinaryExpression,\n createConditionalExpression,\n updateConditionalExpression,\n createTemplateExpression,\n updateTemplateExpression,\n createTemplateHead,\n createTemplateMiddle,\n createTemplateTail,\n createNoSubstitutionTemplateLiteral,\n createTemplateLiteralLikeNode,\n createYieldExpression,\n updateYieldExpression,\n createSpreadElement,\n updateSpreadElement,\n createClassExpression,\n updateClassExpression,\n createOmittedExpression,\n createExpressionWithTypeArguments,\n updateExpressionWithTypeArguments,\n createAsExpression,\n updateAsExpression,\n createNonNullExpression,\n updateNonNullExpression,\n createSatisfiesExpression,\n updateSatisfiesExpression,\n createNonNullChain,\n updateNonNullChain,\n createMetaProperty,\n updateMetaProperty,\n createTemplateSpan,\n updateTemplateSpan,\n createSemicolonClassElement,\n createBlock,\n updateBlock,\n createVariableStatement,\n updateVariableStatement,\n createEmptyStatement,\n createExpressionStatement,\n updateExpressionStatement,\n createIfStatement,\n updateIfStatement,\n createDoStatement,\n updateDoStatement,\n createWhileStatement,\n updateWhileStatement,\n createForStatement,\n updateForStatement,\n createForInStatement,\n updateForInStatement,\n createForOfStatement,\n updateForOfStatement,\n createContinueStatement,\n updateContinueStatement,\n createBreakStatement,\n updateBreakStatement,\n createReturnStatement,\n updateReturnStatement,\n createWithStatement,\n updateWithStatement,\n createSwitchStatement,\n updateSwitchStatement,\n createLabeledStatement,\n updateLabeledStatement,\n createThrowStatement,\n updateThrowStatement,\n createTryStatement,\n updateTryStatement,\n createDebuggerStatement,\n createVariableDeclaration,\n updateVariableDeclaration,\n createVariableDeclarationList,\n updateVariableDeclarationList,\n createFunctionDeclaration,\n updateFunctionDeclaration,\n createClassDeclaration,\n updateClassDeclaration,\n createInterfaceDeclaration,\n updateInterfaceDeclaration,\n createTypeAliasDeclaration,\n updateTypeAliasDeclaration,\n createEnumDeclaration,\n updateEnumDeclaration,\n createModuleDeclaration,\n updateModuleDeclaration,\n createModuleBlock,\n updateModuleBlock,\n createCaseBlock,\n updateCaseBlock,\n createNamespaceExportDeclaration,\n updateNamespaceExportDeclaration,\n createImportEqualsDeclaration,\n updateImportEqualsDeclaration,\n createImportDeclaration,\n updateImportDeclaration,\n createImportClause: createImportClause2,\n updateImportClause,\n createAssertClause,\n updateAssertClause,\n createAssertEntry,\n updateAssertEntry,\n createImportTypeAssertionContainer,\n updateImportTypeAssertionContainer,\n createImportAttributes,\n updateImportAttributes,\n createImportAttribute,\n updateImportAttribute,\n createNamespaceImport,\n updateNamespaceImport,\n createNamespaceExport,\n updateNamespaceExport,\n createNamedImports,\n updateNamedImports,\n createImportSpecifier,\n updateImportSpecifier,\n createExportAssignment: createExportAssignment2,\n updateExportAssignment,\n createExportDeclaration,\n updateExportDeclaration,\n createNamedExports,\n updateNamedExports,\n createExportSpecifier,\n updateExportSpecifier,\n createMissingDeclaration,\n createExternalModuleReference,\n updateExternalModuleReference,\n // lazily load factory members for JSDoc types with similar structure\n get createJSDocAllType() {\n return getJSDocPrimaryTypeCreateFunction(313 /* JSDocAllType */);\n },\n get createJSDocUnknownType() {\n return getJSDocPrimaryTypeCreateFunction(314 /* JSDocUnknownType */);\n },\n get createJSDocNonNullableType() {\n return getJSDocPrePostfixUnaryTypeCreateFunction(316 /* JSDocNonNullableType */);\n },\n get updateJSDocNonNullableType() {\n return getJSDocPrePostfixUnaryTypeUpdateFunction(316 /* JSDocNonNullableType */);\n },\n get createJSDocNullableType() {\n return getJSDocPrePostfixUnaryTypeCreateFunction(315 /* JSDocNullableType */);\n },\n get updateJSDocNullableType() {\n return getJSDocPrePostfixUnaryTypeUpdateFunction(315 /* JSDocNullableType */);\n },\n get createJSDocOptionalType() {\n return getJSDocUnaryTypeCreateFunction(317 /* JSDocOptionalType */);\n },\n get updateJSDocOptionalType() {\n return getJSDocUnaryTypeUpdateFunction(317 /* JSDocOptionalType */);\n },\n get createJSDocVariadicType() {\n return getJSDocUnaryTypeCreateFunction(319 /* JSDocVariadicType */);\n },\n get updateJSDocVariadicType() {\n return getJSDocUnaryTypeUpdateFunction(319 /* JSDocVariadicType */);\n },\n get createJSDocNamepathType() {\n return getJSDocUnaryTypeCreateFunction(320 /* JSDocNamepathType */);\n },\n get updateJSDocNamepathType() {\n return getJSDocUnaryTypeUpdateFunction(320 /* JSDocNamepathType */);\n },\n createJSDocFunctionType,\n updateJSDocFunctionType,\n createJSDocTypeLiteral,\n updateJSDocTypeLiteral,\n createJSDocTypeExpression,\n updateJSDocTypeExpression,\n createJSDocSignature,\n updateJSDocSignature,\n createJSDocTemplateTag,\n updateJSDocTemplateTag,\n createJSDocTypedefTag,\n updateJSDocTypedefTag,\n createJSDocParameterTag,\n updateJSDocParameterTag,\n createJSDocPropertyTag,\n updateJSDocPropertyTag,\n createJSDocCallbackTag,\n updateJSDocCallbackTag,\n createJSDocOverloadTag,\n updateJSDocOverloadTag,\n createJSDocAugmentsTag,\n updateJSDocAugmentsTag,\n createJSDocImplementsTag,\n updateJSDocImplementsTag,\n createJSDocSeeTag,\n updateJSDocSeeTag,\n createJSDocImportTag,\n updateJSDocImportTag,\n createJSDocNameReference,\n updateJSDocNameReference,\n createJSDocMemberName,\n updateJSDocMemberName,\n createJSDocLink,\n updateJSDocLink,\n createJSDocLinkCode,\n updateJSDocLinkCode,\n createJSDocLinkPlain,\n updateJSDocLinkPlain,\n // lazily load factory members for JSDoc tags with similar structure\n get createJSDocTypeTag() {\n return getJSDocTypeLikeTagCreateFunction(345 /* JSDocTypeTag */);\n },\n get updateJSDocTypeTag() {\n return getJSDocTypeLikeTagUpdateFunction(345 /* JSDocTypeTag */);\n },\n get createJSDocReturnTag() {\n return getJSDocTypeLikeTagCreateFunction(343 /* JSDocReturnTag */);\n },\n get updateJSDocReturnTag() {\n return getJSDocTypeLikeTagUpdateFunction(343 /* JSDocReturnTag */);\n },\n get createJSDocThisTag() {\n return getJSDocTypeLikeTagCreateFunction(344 /* JSDocThisTag */);\n },\n get updateJSDocThisTag() {\n return getJSDocTypeLikeTagUpdateFunction(344 /* JSDocThisTag */);\n },\n get createJSDocAuthorTag() {\n return getJSDocSimpleTagCreateFunction(331 /* JSDocAuthorTag */);\n },\n get updateJSDocAuthorTag() {\n return getJSDocSimpleTagUpdateFunction(331 /* JSDocAuthorTag */);\n },\n get createJSDocClassTag() {\n return getJSDocSimpleTagCreateFunction(333 /* JSDocClassTag */);\n },\n get updateJSDocClassTag() {\n return getJSDocSimpleTagUpdateFunction(333 /* JSDocClassTag */);\n },\n get createJSDocPublicTag() {\n return getJSDocSimpleTagCreateFunction(334 /* JSDocPublicTag */);\n },\n get updateJSDocPublicTag() {\n return getJSDocSimpleTagUpdateFunction(334 /* JSDocPublicTag */);\n },\n get createJSDocPrivateTag() {\n return getJSDocSimpleTagCreateFunction(335 /* JSDocPrivateTag */);\n },\n get updateJSDocPrivateTag() {\n return getJSDocSimpleTagUpdateFunction(335 /* JSDocPrivateTag */);\n },\n get createJSDocProtectedTag() {\n return getJSDocSimpleTagCreateFunction(336 /* JSDocProtectedTag */);\n },\n get updateJSDocProtectedTag() {\n return getJSDocSimpleTagUpdateFunction(336 /* JSDocProtectedTag */);\n },\n get createJSDocReadonlyTag() {\n return getJSDocSimpleTagCreateFunction(337 /* JSDocReadonlyTag */);\n },\n get updateJSDocReadonlyTag() {\n return getJSDocSimpleTagUpdateFunction(337 /* JSDocReadonlyTag */);\n },\n get createJSDocOverrideTag() {\n return getJSDocSimpleTagCreateFunction(338 /* JSDocOverrideTag */);\n },\n get updateJSDocOverrideTag() {\n return getJSDocSimpleTagUpdateFunction(338 /* JSDocOverrideTag */);\n },\n get createJSDocDeprecatedTag() {\n return getJSDocSimpleTagCreateFunction(332 /* JSDocDeprecatedTag */);\n },\n get updateJSDocDeprecatedTag() {\n return getJSDocSimpleTagUpdateFunction(332 /* JSDocDeprecatedTag */);\n },\n get createJSDocThrowsTag() {\n return getJSDocTypeLikeTagCreateFunction(350 /* JSDocThrowsTag */);\n },\n get updateJSDocThrowsTag() {\n return getJSDocTypeLikeTagUpdateFunction(350 /* JSDocThrowsTag */);\n },\n get createJSDocSatisfiesTag() {\n return getJSDocTypeLikeTagCreateFunction(351 /* JSDocSatisfiesTag */);\n },\n get updateJSDocSatisfiesTag() {\n return getJSDocTypeLikeTagUpdateFunction(351 /* JSDocSatisfiesTag */);\n },\n createJSDocEnumTag,\n updateJSDocEnumTag,\n createJSDocUnknownTag,\n updateJSDocUnknownTag,\n createJSDocText,\n updateJSDocText,\n createJSDocComment,\n updateJSDocComment,\n createJsxElement,\n updateJsxElement,\n createJsxSelfClosingElement,\n updateJsxSelfClosingElement,\n createJsxOpeningElement,\n updateJsxOpeningElement,\n createJsxClosingElement,\n updateJsxClosingElement,\n createJsxFragment,\n createJsxText,\n updateJsxText,\n createJsxOpeningFragment,\n createJsxJsxClosingFragment,\n updateJsxFragment,\n createJsxAttribute,\n updateJsxAttribute,\n createJsxAttributes,\n updateJsxAttributes,\n createJsxSpreadAttribute,\n updateJsxSpreadAttribute,\n createJsxExpression,\n updateJsxExpression,\n createJsxNamespacedName,\n updateJsxNamespacedName,\n createCaseClause,\n updateCaseClause,\n createDefaultClause,\n updateDefaultClause,\n createHeritageClause,\n updateHeritageClause,\n createCatchClause,\n updateCatchClause,\n createPropertyAssignment,\n updatePropertyAssignment,\n createShorthandPropertyAssignment,\n updateShorthandPropertyAssignment,\n createSpreadAssignment,\n updateSpreadAssignment,\n createEnumMember,\n updateEnumMember,\n createSourceFile: createSourceFile2,\n updateSourceFile: updateSourceFile2,\n createRedirectedSourceFile,\n createBundle,\n updateBundle,\n createSyntheticExpression,\n createSyntaxList: createSyntaxList3,\n createNotEmittedStatement,\n createNotEmittedTypeElement,\n createPartiallyEmittedExpression,\n updatePartiallyEmittedExpression,\n createCommaListExpression,\n updateCommaListExpression,\n createSyntheticReferenceExpression,\n updateSyntheticReferenceExpression,\n cloneNode,\n // Lazily load factory methods for common operator factories and utilities\n get createComma() {\n return getBinaryCreateFunction(28 /* CommaToken */);\n },\n get createAssignment() {\n return getBinaryCreateFunction(64 /* EqualsToken */);\n },\n get createLogicalOr() {\n return getBinaryCreateFunction(57 /* BarBarToken */);\n },\n get createLogicalAnd() {\n return getBinaryCreateFunction(56 /* AmpersandAmpersandToken */);\n },\n get createBitwiseOr() {\n return getBinaryCreateFunction(52 /* BarToken */);\n },\n get createBitwiseXor() {\n return getBinaryCreateFunction(53 /* CaretToken */);\n },\n get createBitwiseAnd() {\n return getBinaryCreateFunction(51 /* AmpersandToken */);\n },\n get createStrictEquality() {\n return getBinaryCreateFunction(37 /* EqualsEqualsEqualsToken */);\n },\n get createStrictInequality() {\n return getBinaryCreateFunction(38 /* ExclamationEqualsEqualsToken */);\n },\n get createEquality() {\n return getBinaryCreateFunction(35 /* EqualsEqualsToken */);\n },\n get createInequality() {\n return getBinaryCreateFunction(36 /* ExclamationEqualsToken */);\n },\n get createLessThan() {\n return getBinaryCreateFunction(30 /* LessThanToken */);\n },\n get createLessThanEquals() {\n return getBinaryCreateFunction(33 /* LessThanEqualsToken */);\n },\n get createGreaterThan() {\n return getBinaryCreateFunction(32 /* GreaterThanToken */);\n },\n get createGreaterThanEquals() {\n return getBinaryCreateFunction(34 /* GreaterThanEqualsToken */);\n },\n get createLeftShift() {\n return getBinaryCreateFunction(48 /* LessThanLessThanToken */);\n },\n get createRightShift() {\n return getBinaryCreateFunction(49 /* GreaterThanGreaterThanToken */);\n },\n get createUnsignedRightShift() {\n return getBinaryCreateFunction(50 /* GreaterThanGreaterThanGreaterThanToken */);\n },\n get createAdd() {\n return getBinaryCreateFunction(40 /* PlusToken */);\n },\n get createSubtract() {\n return getBinaryCreateFunction(41 /* MinusToken */);\n },\n get createMultiply() {\n return getBinaryCreateFunction(42 /* AsteriskToken */);\n },\n get createDivide() {\n return getBinaryCreateFunction(44 /* SlashToken */);\n },\n get createModulo() {\n return getBinaryCreateFunction(45 /* PercentToken */);\n },\n get createExponent() {\n return getBinaryCreateFunction(43 /* AsteriskAsteriskToken */);\n },\n get createPrefixPlus() {\n return getPrefixUnaryCreateFunction(40 /* PlusToken */);\n },\n get createPrefixMinus() {\n return getPrefixUnaryCreateFunction(41 /* MinusToken */);\n },\n get createPrefixIncrement() {\n return getPrefixUnaryCreateFunction(46 /* PlusPlusToken */);\n },\n get createPrefixDecrement() {\n return getPrefixUnaryCreateFunction(47 /* MinusMinusToken */);\n },\n get createBitwiseNot() {\n return getPrefixUnaryCreateFunction(55 /* TildeToken */);\n },\n get createLogicalNot() {\n return getPrefixUnaryCreateFunction(54 /* ExclamationToken */);\n },\n get createPostfixIncrement() {\n return getPostfixUnaryCreateFunction(46 /* PlusPlusToken */);\n },\n get createPostfixDecrement() {\n return getPostfixUnaryCreateFunction(47 /* MinusMinusToken */);\n },\n // Compound nodes\n createImmediatelyInvokedFunctionExpression,\n createImmediatelyInvokedArrowFunction,\n createVoidZero,\n createExportDefault,\n createExternalModuleExport,\n createTypeCheck,\n createIsNotTypeCheck,\n createMethodCall,\n createGlobalMethodCall,\n createFunctionBindCall,\n createFunctionCallCall,\n createFunctionApplyCall,\n createArraySliceCall,\n createArrayConcatCall,\n createObjectDefinePropertyCall,\n createObjectGetOwnPropertyDescriptorCall,\n createReflectGetCall,\n createReflectSetCall,\n createPropertyDescriptor,\n createCallBinding,\n createAssignmentTargetWrapper,\n // Utilities\n inlineExpressions,\n getInternalName,\n getLocalName,\n getExportName,\n getDeclarationName,\n getNamespaceMemberName,\n getExternalModuleOrNamespaceExportName,\n restoreOuterExpressions,\n restoreEnclosingLabel,\n createUseStrictPrologue,\n copyPrologue,\n copyStandardPrologue,\n copyCustomPrologue,\n ensureUseStrict,\n liftToBlock,\n mergeLexicalEnvironment,\n replaceModifiers,\n replaceDecoratorsAndModifiers,\n replacePropertyName\n };\n forEach(nodeFactoryPatchers, (fn) => fn(factory2));\n return factory2;\n function createNodeArray(elements, hasTrailingComma) {\n if (elements === void 0 || elements === emptyArray) {\n elements = [];\n } else if (isNodeArray(elements)) {\n if (hasTrailingComma === void 0 || elements.hasTrailingComma === hasTrailingComma) {\n if (elements.transformFlags === void 0) {\n aggregateChildrenFlags(elements);\n }\n Debug.attachNodeArrayDebugInfo(elements);\n return elements;\n }\n const array2 = elements.slice();\n array2.pos = elements.pos;\n array2.end = elements.end;\n array2.hasTrailingComma = hasTrailingComma;\n array2.transformFlags = elements.transformFlags;\n Debug.attachNodeArrayDebugInfo(array2);\n return array2;\n }\n const length2 = elements.length;\n const array = length2 >= 1 && length2 <= 4 ? elements.slice() : elements;\n array.pos = -1;\n array.end = -1;\n array.hasTrailingComma = !!hasTrailingComma;\n array.transformFlags = 0 /* None */;\n aggregateChildrenFlags(array);\n Debug.attachNodeArrayDebugInfo(array);\n return array;\n }\n function createBaseNode(kind) {\n return baseFactory2.createBaseNode(kind);\n }\n function createBaseDeclaration(kind) {\n const node = createBaseNode(kind);\n node.symbol = void 0;\n node.localSymbol = void 0;\n return node;\n }\n function finishUpdateBaseSignatureDeclaration(updated, original) {\n if (updated !== original) {\n updated.typeArguments = original.typeArguments;\n }\n return update(updated, original);\n }\n function createNumericLiteral(value, numericLiteralFlags = 0 /* None */) {\n const text = typeof value === \"number\" ? value + \"\" : value;\n Debug.assert(text.charCodeAt(0) !== 45 /* minus */, \"Negative numbers should be created in combination with createPrefixUnaryExpression\");\n const node = createBaseDeclaration(9 /* NumericLiteral */);\n node.text = text;\n node.numericLiteralFlags = numericLiteralFlags;\n if (numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) node.transformFlags |= 1024 /* ContainsES2015 */;\n return node;\n }\n function createBigIntLiteral(value) {\n const node = createBaseToken(10 /* BigIntLiteral */);\n node.text = typeof value === \"string\" ? value : pseudoBigIntToString(value) + \"n\";\n node.transformFlags |= 32 /* ContainsES2020 */;\n return node;\n }\n function createBaseStringLiteral(text, isSingleQuote) {\n const node = createBaseDeclaration(11 /* StringLiteral */);\n node.text = text;\n node.singleQuote = isSingleQuote;\n return node;\n }\n function createStringLiteral(text, isSingleQuote, hasExtendedUnicodeEscape) {\n const node = createBaseStringLiteral(text, isSingleQuote);\n node.hasExtendedUnicodeEscape = hasExtendedUnicodeEscape;\n if (hasExtendedUnicodeEscape) node.transformFlags |= 1024 /* ContainsES2015 */;\n return node;\n }\n function createStringLiteralFromNode(sourceNode) {\n const node = createBaseStringLiteral(\n getTextOfIdentifierOrLiteral(sourceNode),\n /*isSingleQuote*/\n void 0\n );\n node.textSourceNode = sourceNode;\n return node;\n }\n function createRegularExpressionLiteral(text) {\n const node = createBaseToken(14 /* RegularExpressionLiteral */);\n node.text = text;\n return node;\n }\n function createLiteralLikeNode(kind, text) {\n switch (kind) {\n case 9 /* NumericLiteral */:\n return createNumericLiteral(\n text,\n /*numericLiteralFlags*/\n 0\n );\n case 10 /* BigIntLiteral */:\n return createBigIntLiteral(text);\n case 11 /* StringLiteral */:\n return createStringLiteral(\n text,\n /*isSingleQuote*/\n void 0\n );\n case 12 /* JsxText */:\n return createJsxText(\n text,\n /*containsOnlyTriviaWhiteSpaces*/\n false\n );\n case 13 /* JsxTextAllWhiteSpaces */:\n return createJsxText(\n text,\n /*containsOnlyTriviaWhiteSpaces*/\n true\n );\n case 14 /* RegularExpressionLiteral */:\n return createRegularExpressionLiteral(text);\n case 15 /* NoSubstitutionTemplateLiteral */:\n return createTemplateLiteralLikeNode(\n kind,\n text,\n /*rawText*/\n void 0,\n /*templateFlags*/\n 0\n );\n }\n }\n function createBaseIdentifier(escapedText) {\n const node = baseFactory2.createBaseIdentifierNode(80 /* Identifier */);\n node.escapedText = escapedText;\n node.jsDoc = void 0;\n node.flowNode = void 0;\n node.symbol = void 0;\n return node;\n }\n function createBaseGeneratedIdentifier(text, autoGenerateFlags, prefix, suffix) {\n const node = createBaseIdentifier(escapeLeadingUnderscores(text));\n setIdentifierAutoGenerate(node, {\n flags: autoGenerateFlags,\n id: nextAutoGenerateId,\n prefix,\n suffix\n });\n nextAutoGenerateId++;\n return node;\n }\n function createIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape) {\n if (originalKeywordKind === void 0 && text) {\n originalKeywordKind = stringToToken(text);\n }\n if (originalKeywordKind === 80 /* Identifier */) {\n originalKeywordKind = void 0;\n }\n const node = createBaseIdentifier(escapeLeadingUnderscores(text));\n if (hasExtendedUnicodeEscape) node.flags |= 256 /* IdentifierHasExtendedUnicodeEscape */;\n if (node.escapedText === \"await\") {\n node.transformFlags |= 67108864 /* ContainsPossibleTopLevelAwait */;\n }\n if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) {\n node.transformFlags |= 1024 /* ContainsES2015 */;\n }\n return node;\n }\n function createTempVariable(recordTempVariable, reservedInNestedScopes, prefix, suffix) {\n let flags2 = 1 /* Auto */;\n if (reservedInNestedScopes) flags2 |= 8 /* ReservedInNestedScopes */;\n const name = createBaseGeneratedIdentifier(\"\", flags2, prefix, suffix);\n if (recordTempVariable) {\n recordTempVariable(name);\n }\n return name;\n }\n function createLoopVariable(reservedInNestedScopes) {\n let flags2 = 2 /* Loop */;\n if (reservedInNestedScopes) flags2 |= 8 /* ReservedInNestedScopes */;\n return createBaseGeneratedIdentifier(\n \"\",\n flags2,\n /*prefix*/\n void 0,\n /*suffix*/\n void 0\n );\n }\n function createUniqueName(text, flags2 = 0 /* None */, prefix, suffix) {\n Debug.assert(!(flags2 & 7 /* KindMask */), \"Argument out of range: flags\");\n Debug.assert((flags2 & (16 /* Optimistic */ | 32 /* FileLevel */)) !== 32 /* FileLevel */, \"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic\");\n return createBaseGeneratedIdentifier(text, 3 /* Unique */ | flags2, prefix, suffix);\n }\n function getGeneratedNameForNode(node, flags2 = 0, prefix, suffix) {\n Debug.assert(!(flags2 & 7 /* KindMask */), \"Argument out of range: flags\");\n const text = !node ? \"\" : isMemberName(node) ? formatGeneratedName(\n /*privateName*/\n false,\n prefix,\n node,\n suffix,\n idText\n ) : `generated@${getNodeId(node)}`;\n if (prefix || suffix) flags2 |= 16 /* Optimistic */;\n const name = createBaseGeneratedIdentifier(text, 4 /* Node */ | flags2, prefix, suffix);\n name.original = node;\n return name;\n }\n function createBasePrivateIdentifier(escapedText) {\n const node = baseFactory2.createBasePrivateIdentifierNode(81 /* PrivateIdentifier */);\n node.escapedText = escapedText;\n node.transformFlags |= 16777216 /* ContainsClassFields */;\n return node;\n }\n function createPrivateIdentifier(text) {\n if (!startsWith(text, \"#\")) Debug.fail(\"First character of private identifier must be #: \" + text);\n return createBasePrivateIdentifier(escapeLeadingUnderscores(text));\n }\n function createBaseGeneratedPrivateIdentifier(text, autoGenerateFlags, prefix, suffix) {\n const node = createBasePrivateIdentifier(escapeLeadingUnderscores(text));\n setIdentifierAutoGenerate(node, {\n flags: autoGenerateFlags,\n id: nextAutoGenerateId,\n prefix,\n suffix\n });\n nextAutoGenerateId++;\n return node;\n }\n function createUniquePrivateName(text, prefix, suffix) {\n if (text && !startsWith(text, \"#\")) Debug.fail(\"First character of private identifier must be #: \" + text);\n const autoGenerateFlags = 8 /* ReservedInNestedScopes */ | (text ? 3 /* Unique */ : 1 /* Auto */);\n return createBaseGeneratedPrivateIdentifier(text ?? \"\", autoGenerateFlags, prefix, suffix);\n }\n function getGeneratedPrivateNameForNode(node, prefix, suffix) {\n const text = isMemberName(node) ? formatGeneratedName(\n /*privateName*/\n true,\n prefix,\n node,\n suffix,\n idText\n ) : `#generated@${getNodeId(node)}`;\n const flags2 = prefix || suffix ? 16 /* Optimistic */ : 0 /* None */;\n const name = createBaseGeneratedPrivateIdentifier(text, 4 /* Node */ | flags2, prefix, suffix);\n name.original = node;\n return name;\n }\n function createBaseToken(kind) {\n return baseFactory2.createBaseTokenNode(kind);\n }\n function createToken(token) {\n Debug.assert(token >= 0 /* FirstToken */ && token <= 166 /* LastToken */, \"Invalid token\");\n Debug.assert(token <= 15 /* FirstTemplateToken */ || token >= 18 /* LastTemplateToken */, \"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals.\");\n Debug.assert(token <= 9 /* FirstLiteralToken */ || token >= 15 /* LastLiteralToken */, \"Invalid token. Use 'createLiteralLikeNode' to create literals.\");\n Debug.assert(token !== 80 /* Identifier */, \"Invalid token. Use 'createIdentifier' to create identifiers\");\n const node = createBaseToken(token);\n let transformFlags = 0 /* None */;\n switch (token) {\n case 134 /* AsyncKeyword */:\n transformFlags = 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n break;\n case 160 /* UsingKeyword */:\n transformFlags = 4 /* ContainsESNext */;\n break;\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 128 /* AbstractKeyword */:\n case 138 /* DeclareKeyword */:\n case 87 /* ConstKeyword */:\n case 133 /* AnyKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 146 /* NeverKeyword */:\n case 151 /* ObjectKeyword */:\n case 103 /* InKeyword */:\n case 147 /* OutKeyword */:\n case 164 /* OverrideKeyword */:\n case 154 /* StringKeyword */:\n case 136 /* BooleanKeyword */:\n case 155 /* SymbolKeyword */:\n case 116 /* VoidKeyword */:\n case 159 /* UnknownKeyword */:\n case 157 /* UndefinedKeyword */:\n transformFlags = 1 /* ContainsTypeScript */;\n break;\n case 108 /* SuperKeyword */:\n transformFlags = 1024 /* ContainsES2015 */ | 134217728 /* ContainsLexicalSuper */;\n node.flowNode = void 0;\n break;\n case 126 /* StaticKeyword */:\n transformFlags = 1024 /* ContainsES2015 */;\n break;\n case 129 /* AccessorKeyword */:\n transformFlags = 16777216 /* ContainsClassFields */;\n break;\n case 110 /* ThisKeyword */:\n transformFlags = 16384 /* ContainsLexicalThis */;\n node.flowNode = void 0;\n break;\n }\n if (transformFlags) {\n node.transformFlags |= transformFlags;\n }\n return node;\n }\n function createSuper() {\n return createToken(108 /* SuperKeyword */);\n }\n function createThis() {\n return createToken(110 /* ThisKeyword */);\n }\n function createNull() {\n return createToken(106 /* NullKeyword */);\n }\n function createTrue() {\n return createToken(112 /* TrueKeyword */);\n }\n function createFalse() {\n return createToken(97 /* FalseKeyword */);\n }\n function createModifier(kind) {\n return createToken(kind);\n }\n function createModifiersFromModifierFlags(flags2) {\n const result = [];\n if (flags2 & 32 /* Export */) result.push(createModifier(95 /* ExportKeyword */));\n if (flags2 & 128 /* Ambient */) result.push(createModifier(138 /* DeclareKeyword */));\n if (flags2 & 2048 /* Default */) result.push(createModifier(90 /* DefaultKeyword */));\n if (flags2 & 4096 /* Const */) result.push(createModifier(87 /* ConstKeyword */));\n if (flags2 & 1 /* Public */) result.push(createModifier(125 /* PublicKeyword */));\n if (flags2 & 2 /* Private */) result.push(createModifier(123 /* PrivateKeyword */));\n if (flags2 & 4 /* Protected */) result.push(createModifier(124 /* ProtectedKeyword */));\n if (flags2 & 64 /* Abstract */) result.push(createModifier(128 /* AbstractKeyword */));\n if (flags2 & 256 /* Static */) result.push(createModifier(126 /* StaticKeyword */));\n if (flags2 & 16 /* Override */) result.push(createModifier(164 /* OverrideKeyword */));\n if (flags2 & 8 /* Readonly */) result.push(createModifier(148 /* ReadonlyKeyword */));\n if (flags2 & 512 /* Accessor */) result.push(createModifier(129 /* AccessorKeyword */));\n if (flags2 & 1024 /* Async */) result.push(createModifier(134 /* AsyncKeyword */));\n if (flags2 & 8192 /* In */) result.push(createModifier(103 /* InKeyword */));\n if (flags2 & 16384 /* Out */) result.push(createModifier(147 /* OutKeyword */));\n return result.length ? result : void 0;\n }\n function createQualifiedName(left, right) {\n const node = createBaseNode(167 /* QualifiedName */);\n node.left = left;\n node.right = asName(right);\n node.transformFlags |= propagateChildFlags(node.left) | propagateIdentifierNameFlags(node.right);\n node.flowNode = void 0;\n return node;\n }\n function updateQualifiedName(node, left, right) {\n return node.left !== left || node.right !== right ? update(createQualifiedName(left, right), node) : node;\n }\n function createComputedPropertyName(expression) {\n const node = createBaseNode(168 /* ComputedPropertyName */);\n node.expression = parenthesizerRules().parenthesizeExpressionOfComputedPropertyName(expression);\n node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 131072 /* ContainsComputedPropertyName */;\n return node;\n }\n function updateComputedPropertyName(node, expression) {\n return node.expression !== expression ? update(createComputedPropertyName(expression), node) : node;\n }\n function createTypeParameterDeclaration(modifiers, name, constraint, defaultType) {\n const node = createBaseDeclaration(169 /* TypeParameter */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.constraint = constraint;\n node.default = defaultType;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.expression = void 0;\n node.jsDoc = void 0;\n return node;\n }\n function updateTypeParameterDeclaration(node, modifiers, name, constraint, defaultType) {\n return node.modifiers !== modifiers || node.name !== name || node.constraint !== constraint || node.default !== defaultType ? update(createTypeParameterDeclaration(modifiers, name, constraint, defaultType), node) : node;\n }\n function createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer) {\n const node = createBaseDeclaration(170 /* Parameter */);\n node.modifiers = asNodeArray(modifiers);\n node.dotDotDotToken = dotDotDotToken;\n node.name = asName(name);\n node.questionToken = questionToken;\n node.type = type;\n node.initializer = asInitializer(initializer);\n if (isThisIdentifier(node.name)) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.initializer) | (node.questionToken ?? node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (node.dotDotDotToken ?? node.initializer ? 1024 /* ContainsES2015 */ : 0 /* None */) | (modifiersToFlags(node.modifiers) & 31 /* ParameterPropertyModifier */ ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */);\n }\n node.jsDoc = void 0;\n return node;\n }\n function updateParameterDeclaration(node, modifiers, dotDotDotToken, name, questionToken, type, initializer) {\n return node.modifiers !== modifiers || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type || node.initializer !== initializer ? update(createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer), node) : node;\n }\n function createDecorator(expression) {\n const node = createBaseNode(171 /* Decorator */);\n node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n );\n node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */ | 8192 /* ContainsTypeScriptClassSyntax */ | 33554432 /* ContainsDecorators */;\n return node;\n }\n function updateDecorator(node, expression) {\n return node.expression !== expression ? update(createDecorator(expression), node) : node;\n }\n function createPropertySignature(modifiers, name, questionToken, type) {\n const node = createBaseDeclaration(172 /* PropertySignature */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.type = type;\n node.questionToken = questionToken;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.initializer = void 0;\n node.jsDoc = void 0;\n return node;\n }\n function updatePropertySignature(node, modifiers, name, questionToken, type) {\n return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.type !== type ? finishUpdatePropertySignature(createPropertySignature(modifiers, name, questionToken, type), node) : node;\n }\n function finishUpdatePropertySignature(updated, original) {\n if (updated !== original) {\n updated.initializer = original.initializer;\n }\n return update(updated, original);\n }\n function createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer) {\n const node = createBaseDeclaration(173 /* PropertyDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.questionToken = questionOrExclamationToken && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0;\n node.exclamationToken = questionOrExclamationToken && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0;\n node.type = type;\n node.initializer = asInitializer(initializer);\n const isAmbient = node.flags & 33554432 /* Ambient */ || modifiersToFlags(node.modifiers) & 128 /* Ambient */;\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (isAmbient || node.questionToken || node.exclamationToken || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isComputedPropertyName(node.name) || modifiersToFlags(node.modifiers) & 256 /* Static */ && node.initializer ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */) | 16777216 /* ContainsClassFields */;\n node.jsDoc = void 0;\n return node;\n }\n function updatePropertyDeclaration2(node, modifiers, name, questionOrExclamationToken, type, initializer) {\n return node.modifiers !== modifiers || node.name !== name || node.questionToken !== (questionOrExclamationToken !== void 0 && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.exclamationToken !== (questionOrExclamationToken !== void 0 && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.type !== type || node.initializer !== initializer ? update(createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer), node) : node;\n }\n function createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type) {\n const node = createBaseDeclaration(174 /* MethodSignature */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.questionToken = questionToken;\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateMethodSignature(node, modifiers, name, questionToken, typeParameters, parameters, type) {\n return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type), node) : node;\n }\n function createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) {\n const node = createBaseDeclaration(175 /* MethodDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.asteriskToken = asteriskToken;\n node.name = asName(name);\n node.questionToken = questionToken;\n node.exclamationToken = void 0;\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.body = body;\n if (!node.body) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n const isGenerator = !!node.asteriskToken;\n const isAsyncGenerator = isAsync && isGenerator;\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.questionToken || node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n }\n node.typeArguments = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateMethodDeclaration(node, modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) {\n return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateMethodDeclaration(createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body), node) : node;\n }\n function finishUpdateMethodDeclaration(updated, original) {\n if (updated !== original) {\n updated.exclamationToken = original.exclamationToken;\n }\n return update(updated, original);\n }\n function createClassStaticBlockDeclaration(body) {\n const node = createBaseDeclaration(176 /* ClassStaticBlockDeclaration */);\n node.body = body;\n node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */;\n node.modifiers = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateClassStaticBlockDeclaration(node, body) {\n return node.body !== body ? finishUpdateClassStaticBlockDeclaration(createClassStaticBlockDeclaration(body), node) : node;\n }\n function finishUpdateClassStaticBlockDeclaration(updated, original) {\n if (updated !== original) {\n updated.modifiers = original.modifiers;\n }\n return update(updated, original);\n }\n function createConstructorDeclaration(modifiers, parameters, body) {\n const node = createBaseDeclaration(177 /* Constructor */);\n node.modifiers = asNodeArray(modifiers);\n node.parameters = createNodeArray(parameters);\n node.body = body;\n if (!node.body) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | 1024 /* ContainsES2015 */;\n }\n node.typeParameters = void 0;\n node.type = void 0;\n node.typeArguments = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateConstructorDeclaration(node, modifiers, parameters, body) {\n return node.modifiers !== modifiers || node.parameters !== parameters || node.body !== body ? finishUpdateConstructorDeclaration(createConstructorDeclaration(modifiers, parameters, body), node) : node;\n }\n function finishUpdateConstructorDeclaration(updated, original) {\n if (updated !== original) {\n updated.typeParameters = original.typeParameters;\n updated.type = original.type;\n }\n return finishUpdateBaseSignatureDeclaration(updated, original);\n }\n function createGetAccessorDeclaration(modifiers, name, parameters, type, body) {\n const node = createBaseDeclaration(178 /* GetAccessor */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.body = body;\n if (!node.body) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n }\n node.typeArguments = void 0;\n node.typeParameters = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateGetAccessorDeclaration(node, modifiers, name, parameters, type, body) {\n return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateGetAccessorDeclaration(createGetAccessorDeclaration(modifiers, name, parameters, type, body), node) : node;\n }\n function finishUpdateGetAccessorDeclaration(updated, original) {\n if (updated !== original) {\n updated.typeParameters = original.typeParameters;\n }\n return finishUpdateBaseSignatureDeclaration(updated, original);\n }\n function createSetAccessorDeclaration(modifiers, name, parameters, body) {\n const node = createBaseDeclaration(179 /* SetAccessor */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.parameters = createNodeArray(parameters);\n node.body = body;\n if (!node.body) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n }\n node.typeArguments = void 0;\n node.typeParameters = void 0;\n node.type = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateSetAccessorDeclaration(node, modifiers, name, parameters, body) {\n return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.body !== body ? finishUpdateSetAccessorDeclaration(createSetAccessorDeclaration(modifiers, name, parameters, body), node) : node;\n }\n function finishUpdateSetAccessorDeclaration(updated, original) {\n if (updated !== original) {\n updated.typeParameters = original.typeParameters;\n updated.type = original.type;\n }\n return finishUpdateBaseSignatureDeclaration(updated, original);\n }\n function createCallSignature(typeParameters, parameters, type) {\n const node = createBaseDeclaration(180 /* CallSignature */);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateCallSignature(node, typeParameters, parameters, type) {\n return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createCallSignature(typeParameters, parameters, type), node) : node;\n }\n function createConstructSignature(typeParameters, parameters, type) {\n const node = createBaseDeclaration(181 /* ConstructSignature */);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateConstructSignature(node, typeParameters, parameters, type) {\n return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructSignature(typeParameters, parameters, type), node) : node;\n }\n function createIndexSignature(modifiers, parameters, type) {\n const node = createBaseDeclaration(182 /* IndexSignature */);\n node.modifiers = asNodeArray(modifiers);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateIndexSignature(node, modifiers, parameters, type) {\n return node.parameters !== parameters || node.type !== type || node.modifiers !== modifiers ? finishUpdateBaseSignatureDeclaration(createIndexSignature(modifiers, parameters, type), node) : node;\n }\n function createTemplateLiteralTypeSpan(type, literal) {\n const node = createBaseNode(205 /* TemplateLiteralTypeSpan */);\n node.type = type;\n node.literal = literal;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTemplateLiteralTypeSpan(node, type, literal) {\n return node.type !== type || node.literal !== literal ? update(createTemplateLiteralTypeSpan(type, literal), node) : node;\n }\n function createKeywordTypeNode(kind) {\n return createToken(kind);\n }\n function createTypePredicateNode(assertsModifier, parameterName, type) {\n const node = createBaseNode(183 /* TypePredicate */);\n node.assertsModifier = assertsModifier;\n node.parameterName = asName(parameterName);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypePredicateNode(node, assertsModifier, parameterName, type) {\n return node.assertsModifier !== assertsModifier || node.parameterName !== parameterName || node.type !== type ? update(createTypePredicateNode(assertsModifier, parameterName, type), node) : node;\n }\n function createTypeReferenceNode(typeName, typeArguments) {\n const node = createBaseNode(184 /* TypeReference */);\n node.typeName = asName(typeName);\n node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(createNodeArray(typeArguments));\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypeReferenceNode(node, typeName, typeArguments) {\n return node.typeName !== typeName || node.typeArguments !== typeArguments ? update(createTypeReferenceNode(typeName, typeArguments), node) : node;\n }\n function createFunctionTypeNode(typeParameters, parameters, type) {\n const node = createBaseDeclaration(185 /* FunctionType */);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.modifiers = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateFunctionTypeNode(node, typeParameters, parameters, type) {\n return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateFunctionTypeNode(createFunctionTypeNode(typeParameters, parameters, type), node) : node;\n }\n function finishUpdateFunctionTypeNode(updated, original) {\n if (updated !== original) {\n updated.modifiers = original.modifiers;\n }\n return finishUpdateBaseSignatureDeclaration(updated, original);\n }\n function createConstructorTypeNode(...args) {\n return args.length === 4 ? createConstructorTypeNode1(...args) : args.length === 3 ? createConstructorTypeNode2(...args) : Debug.fail(\"Incorrect number of arguments specified.\");\n }\n function createConstructorTypeNode1(modifiers, typeParameters, parameters, type) {\n const node = createBaseDeclaration(186 /* ConstructorType */);\n node.modifiers = asNodeArray(modifiers);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function createConstructorTypeNode2(typeParameters, parameters, type) {\n return createConstructorTypeNode1(\n /*modifiers*/\n void 0,\n typeParameters,\n parameters,\n type\n );\n }\n function updateConstructorTypeNode(...args) {\n return args.length === 5 ? updateConstructorTypeNode1(...args) : args.length === 4 ? updateConstructorTypeNode2(...args) : Debug.fail(\"Incorrect number of arguments specified.\");\n }\n function updateConstructorTypeNode1(node, modifiers, typeParameters, parameters, type) {\n return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructorTypeNode(modifiers, typeParameters, parameters, type), node) : node;\n }\n function updateConstructorTypeNode2(node, typeParameters, parameters, type) {\n return updateConstructorTypeNode1(node, node.modifiers, typeParameters, parameters, type);\n }\n function createTypeQueryNode(exprName, typeArguments) {\n const node = createBaseNode(187 /* TypeQuery */);\n node.exprName = exprName;\n node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypeQueryNode(node, exprName, typeArguments) {\n return node.exprName !== exprName || node.typeArguments !== typeArguments ? update(createTypeQueryNode(exprName, typeArguments), node) : node;\n }\n function createTypeLiteralNode(members) {\n const node = createBaseDeclaration(188 /* TypeLiteral */);\n node.members = createNodeArray(members);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypeLiteralNode(node, members) {\n return node.members !== members ? update(createTypeLiteralNode(members), node) : node;\n }\n function createArrayTypeNode(elementType) {\n const node = createBaseNode(189 /* ArrayType */);\n node.elementType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(elementType);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateArrayTypeNode(node, elementType) {\n return node.elementType !== elementType ? update(createArrayTypeNode(elementType), node) : node;\n }\n function createTupleTypeNode(elements) {\n const node = createBaseNode(190 /* TupleType */);\n node.elements = createNodeArray(parenthesizerRules().parenthesizeElementTypesOfTupleType(elements));\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTupleTypeNode(node, elements) {\n return node.elements !== elements ? update(createTupleTypeNode(elements), node) : node;\n }\n function createNamedTupleMember(dotDotDotToken, name, questionToken, type) {\n const node = createBaseDeclaration(203 /* NamedTupleMember */);\n node.dotDotDotToken = dotDotDotToken;\n node.name = name;\n node.questionToken = questionToken;\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n return node;\n }\n function updateNamedTupleMember(node, dotDotDotToken, name, questionToken, type) {\n return node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type ? update(createNamedTupleMember(dotDotDotToken, name, questionToken, type), node) : node;\n }\n function createOptionalTypeNode(type) {\n const node = createBaseNode(191 /* OptionalType */);\n node.type = parenthesizerRules().parenthesizeTypeOfOptionalType(type);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateOptionalTypeNode(node, type) {\n return node.type !== type ? update(createOptionalTypeNode(type), node) : node;\n }\n function createRestTypeNode(type) {\n const node = createBaseNode(192 /* RestType */);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateRestTypeNode(node, type) {\n return node.type !== type ? update(createRestTypeNode(type), node) : node;\n }\n function createUnionOrIntersectionTypeNode(kind, types, parenthesize) {\n const node = createBaseNode(kind);\n node.types = factory2.createNodeArray(parenthesize(types));\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateUnionOrIntersectionTypeNode(node, types, parenthesize) {\n return node.types !== types ? update(createUnionOrIntersectionTypeNode(node.kind, types, parenthesize), node) : node;\n }\n function createUnionTypeNode(types) {\n return createUnionOrIntersectionTypeNode(193 /* UnionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType);\n }\n function updateUnionTypeNode(node, types) {\n return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType);\n }\n function createIntersectionTypeNode(types) {\n return createUnionOrIntersectionTypeNode(194 /* IntersectionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType);\n }\n function updateIntersectionTypeNode(node, types) {\n return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType);\n }\n function createConditionalTypeNode(checkType, extendsType, trueType, falseType) {\n const node = createBaseNode(195 /* ConditionalType */);\n node.checkType = parenthesizerRules().parenthesizeCheckTypeOfConditionalType(checkType);\n node.extendsType = parenthesizerRules().parenthesizeExtendsTypeOfConditionalType(extendsType);\n node.trueType = trueType;\n node.falseType = falseType;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateConditionalTypeNode(node, checkType, extendsType, trueType, falseType) {\n return node.checkType !== checkType || node.extendsType !== extendsType || node.trueType !== trueType || node.falseType !== falseType ? update(createConditionalTypeNode(checkType, extendsType, trueType, falseType), node) : node;\n }\n function createInferTypeNode(typeParameter) {\n const node = createBaseNode(196 /* InferType */);\n node.typeParameter = typeParameter;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateInferTypeNode(node, typeParameter) {\n return node.typeParameter !== typeParameter ? update(createInferTypeNode(typeParameter), node) : node;\n }\n function createTemplateLiteralType(head, templateSpans) {\n const node = createBaseNode(204 /* TemplateLiteralType */);\n node.head = head;\n node.templateSpans = createNodeArray(templateSpans);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTemplateLiteralType(node, head, templateSpans) {\n return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateLiteralType(head, templateSpans), node) : node;\n }\n function createImportTypeNode(argument, attributes, qualifier, typeArguments, isTypeOf = false) {\n const node = createBaseNode(206 /* ImportType */);\n node.argument = argument;\n node.attributes = attributes;\n if (node.assertions && node.assertions.assertClause && node.attributes) {\n node.assertions.assertClause = node.attributes;\n }\n node.qualifier = qualifier;\n node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n node.isTypeOf = isTypeOf;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateImportTypeNode(node, argument, attributes, qualifier, typeArguments, isTypeOf = node.isTypeOf) {\n return node.argument !== argument || node.attributes !== attributes || node.qualifier !== qualifier || node.typeArguments !== typeArguments || node.isTypeOf !== isTypeOf ? update(createImportTypeNode(argument, attributes, qualifier, typeArguments, isTypeOf), node) : node;\n }\n function createParenthesizedType(type) {\n const node = createBaseNode(197 /* ParenthesizedType */);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateParenthesizedType(node, type) {\n return node.type !== type ? update(createParenthesizedType(type), node) : node;\n }\n function createThisTypeNode() {\n const node = createBaseNode(198 /* ThisType */);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function createTypeOperatorNode(operator, type) {\n const node = createBaseNode(199 /* TypeOperator */);\n node.operator = operator;\n node.type = operator === 148 /* ReadonlyKeyword */ ? parenthesizerRules().parenthesizeOperandOfReadonlyTypeOperator(type) : parenthesizerRules().parenthesizeOperandOfTypeOperator(type);\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypeOperatorNode(node, type) {\n return node.type !== type ? update(createTypeOperatorNode(node.operator, type), node) : node;\n }\n function createIndexedAccessTypeNode(objectType, indexType) {\n const node = createBaseNode(200 /* IndexedAccessType */);\n node.objectType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(objectType);\n node.indexType = indexType;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateIndexedAccessTypeNode(node, objectType, indexType) {\n return node.objectType !== objectType || node.indexType !== indexType ? update(createIndexedAccessTypeNode(objectType, indexType), node) : node;\n }\n function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) {\n const node = createBaseDeclaration(201 /* MappedType */);\n node.readonlyToken = readonlyToken;\n node.typeParameter = typeParameter;\n node.nameType = nameType;\n node.questionToken = questionToken;\n node.type = type;\n node.members = members && createNodeArray(members);\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) {\n return node.readonlyToken !== readonlyToken || node.typeParameter !== typeParameter || node.nameType !== nameType || node.questionToken !== questionToken || node.type !== type || node.members !== members ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), node) : node;\n }\n function createLiteralTypeNode(literal) {\n const node = createBaseNode(202 /* LiteralType */);\n node.literal = literal;\n node.transformFlags = 1 /* ContainsTypeScript */;\n return node;\n }\n function updateLiteralTypeNode(node, literal) {\n return node.literal !== literal ? update(createLiteralTypeNode(literal), node) : node;\n }\n function createObjectBindingPattern(elements) {\n const node = createBaseNode(207 /* ObjectBindingPattern */);\n node.elements = createNodeArray(elements);\n node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */;\n if (node.transformFlags & 32768 /* ContainsRestOrSpread */) {\n node.transformFlags |= 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */;\n }\n return node;\n }\n function updateObjectBindingPattern(node, elements) {\n return node.elements !== elements ? update(createObjectBindingPattern(elements), node) : node;\n }\n function createArrayBindingPattern(elements) {\n const node = createBaseNode(208 /* ArrayBindingPattern */);\n node.elements = createNodeArray(elements);\n node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */;\n return node;\n }\n function updateArrayBindingPattern(node, elements) {\n return node.elements !== elements ? update(createArrayBindingPattern(elements), node) : node;\n }\n function createBindingElement(dotDotDotToken, propertyName, name, initializer) {\n const node = createBaseDeclaration(209 /* BindingElement */);\n node.dotDotDotToken = dotDotDotToken;\n node.propertyName = asName(propertyName);\n node.name = asName(name);\n node.initializer = asInitializer(initializer);\n node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.propertyName) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (node.dotDotDotToken ? 32768 /* ContainsRestOrSpread */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n node.flowNode = void 0;\n return node;\n }\n function updateBindingElement(node, dotDotDotToken, propertyName, name, initializer) {\n return node.propertyName !== propertyName || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.initializer !== initializer ? update(createBindingElement(dotDotDotToken, propertyName, name, initializer), node) : node;\n }\n function createArrayLiteralExpression(elements, multiLine) {\n const node = createBaseNode(210 /* ArrayLiteralExpression */);\n const lastElement = elements && lastOrUndefined(elements);\n const elementsArray = createNodeArray(elements, lastElement && isOmittedExpression(lastElement) ? true : void 0);\n node.elements = parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(elementsArray);\n node.multiLine = multiLine;\n node.transformFlags |= propagateChildrenFlags(node.elements);\n return node;\n }\n function updateArrayLiteralExpression(node, elements) {\n return node.elements !== elements ? update(createArrayLiteralExpression(elements, node.multiLine), node) : node;\n }\n function createObjectLiteralExpression(properties, multiLine) {\n const node = createBaseDeclaration(211 /* ObjectLiteralExpression */);\n node.properties = createNodeArray(properties);\n node.multiLine = multiLine;\n node.transformFlags |= propagateChildrenFlags(node.properties);\n node.jsDoc = void 0;\n return node;\n }\n function updateObjectLiteralExpression(node, properties) {\n return node.properties !== properties ? update(createObjectLiteralExpression(properties, node.multiLine), node) : node;\n }\n function createBasePropertyAccessExpression(expression, questionDotToken, name) {\n const node = createBaseDeclaration(212 /* PropertyAccessExpression */);\n node.expression = expression;\n node.questionDotToken = questionDotToken;\n node.name = name;\n node.transformFlags = propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | (isIdentifier(node.name) ? propagateIdentifierNameFlags(node.name) : propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function createPropertyAccessExpression(expression, name) {\n const node = createBasePropertyAccessExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n ),\n /*questionDotToken*/\n void 0,\n asName(name)\n );\n if (isSuperKeyword(expression)) {\n node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n }\n return node;\n }\n function updatePropertyAccessExpression(node, expression, name) {\n if (isPropertyAccessChain(node)) {\n return updatePropertyAccessChain(node, expression, node.questionDotToken, cast(name, isIdentifier));\n }\n return node.expression !== expression || node.name !== name ? update(createPropertyAccessExpression(expression, name), node) : node;\n }\n function createPropertyAccessChain(expression, questionDotToken, name) {\n const node = createBasePropertyAccessExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n true\n ),\n questionDotToken,\n asName(name)\n );\n node.flags |= 64 /* OptionalChain */;\n node.transformFlags |= 32 /* ContainsES2020 */;\n return node;\n }\n function updatePropertyAccessChain(node, expression, questionDotToken, name) {\n Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead.\");\n return node.expression !== expression || node.questionDotToken !== questionDotToken || node.name !== name ? update(createPropertyAccessChain(expression, questionDotToken, name), node) : node;\n }\n function createBaseElementAccessExpression(expression, questionDotToken, argumentExpression) {\n const node = createBaseDeclaration(213 /* ElementAccessExpression */);\n node.expression = expression;\n node.questionDotToken = questionDotToken;\n node.argumentExpression = argumentExpression;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildFlags(node.argumentExpression);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function createElementAccessExpression(expression, index) {\n const node = createBaseElementAccessExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n ),\n /*questionDotToken*/\n void 0,\n asExpression(index)\n );\n if (isSuperKeyword(expression)) {\n node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n }\n return node;\n }\n function updateElementAccessExpression(node, expression, argumentExpression) {\n if (isElementAccessChain(node)) {\n return updateElementAccessChain(node, expression, node.questionDotToken, argumentExpression);\n }\n return node.expression !== expression || node.argumentExpression !== argumentExpression ? update(createElementAccessExpression(expression, argumentExpression), node) : node;\n }\n function createElementAccessChain(expression, questionDotToken, index) {\n const node = createBaseElementAccessExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n true\n ),\n questionDotToken,\n asExpression(index)\n );\n node.flags |= 64 /* OptionalChain */;\n node.transformFlags |= 32 /* ContainsES2020 */;\n return node;\n }\n function updateElementAccessChain(node, expression, questionDotToken, argumentExpression) {\n Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead.\");\n return node.expression !== expression || node.questionDotToken !== questionDotToken || node.argumentExpression !== argumentExpression ? update(createElementAccessChain(expression, questionDotToken, argumentExpression), node) : node;\n }\n function createBaseCallExpression(expression, questionDotToken, typeArguments, argumentsArray) {\n const node = createBaseDeclaration(214 /* CallExpression */);\n node.expression = expression;\n node.questionDotToken = questionDotToken;\n node.typeArguments = typeArguments;\n node.arguments = argumentsArray;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments);\n if (node.typeArguments) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n if (isSuperProperty(node.expression)) {\n node.transformFlags |= 16384 /* ContainsLexicalThis */;\n }\n return node;\n }\n function createCallExpression(expression, typeArguments, argumentsArray) {\n const node = createBaseCallExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n ),\n /*questionDotToken*/\n void 0,\n asNodeArray(typeArguments),\n parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))\n );\n if (isImportKeyword(node.expression)) {\n node.transformFlags |= 8388608 /* ContainsDynamicImport */;\n }\n return node;\n }\n function updateCallExpression(node, expression, typeArguments, argumentsArray) {\n if (isCallChain(node)) {\n return updateCallChain(node, expression, node.questionDotToken, typeArguments, argumentsArray);\n }\n return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallExpression(expression, typeArguments, argumentsArray), node) : node;\n }\n function createCallChain(expression, questionDotToken, typeArguments, argumentsArray) {\n const node = createBaseCallExpression(\n parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n true\n ),\n questionDotToken,\n asNodeArray(typeArguments),\n parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))\n );\n node.flags |= 64 /* OptionalChain */;\n node.transformFlags |= 32 /* ContainsES2020 */;\n return node;\n }\n function updateCallChain(node, expression, questionDotToken, typeArguments, argumentsArray) {\n Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a CallExpression using updateCallChain. Use updateCall instead.\");\n return node.expression !== expression || node.questionDotToken !== questionDotToken || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallChain(expression, questionDotToken, typeArguments, argumentsArray), node) : node;\n }\n function createNewExpression(expression, typeArguments, argumentsArray) {\n const node = createBaseDeclaration(215 /* NewExpression */);\n node.expression = parenthesizerRules().parenthesizeExpressionOfNew(expression);\n node.typeArguments = asNodeArray(typeArguments);\n node.arguments = argumentsArray ? parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(argumentsArray) : void 0;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments) | 32 /* ContainsES2020 */;\n if (node.typeArguments) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n return node;\n }\n function updateNewExpression(node, expression, typeArguments, argumentsArray) {\n return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createNewExpression(expression, typeArguments, argumentsArray), node) : node;\n }\n function createTaggedTemplateExpression(tag, typeArguments, template) {\n const node = createBaseNode(216 /* TaggedTemplateExpression */);\n node.tag = parenthesizerRules().parenthesizeLeftSideOfAccess(\n tag,\n /*optionalChain*/\n false\n );\n node.typeArguments = asNodeArray(typeArguments);\n node.template = template;\n node.transformFlags |= propagateChildFlags(node.tag) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.template) | 1024 /* ContainsES2015 */;\n if (node.typeArguments) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n if (hasInvalidEscape(node.template)) {\n node.transformFlags |= 128 /* ContainsES2018 */;\n }\n return node;\n }\n function updateTaggedTemplateExpression(node, tag, typeArguments, template) {\n return node.tag !== tag || node.typeArguments !== typeArguments || node.template !== template ? update(createTaggedTemplateExpression(tag, typeArguments, template), node) : node;\n }\n function createTypeAssertion(type, expression) {\n const node = createBaseNode(217 /* TypeAssertionExpression */);\n node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n node.type = type;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n return node;\n }\n function updateTypeAssertion(node, type, expression) {\n return node.type !== type || node.expression !== expression ? update(createTypeAssertion(type, expression), node) : node;\n }\n function createParenthesizedExpression(expression) {\n const node = createBaseNode(218 /* ParenthesizedExpression */);\n node.expression = expression;\n node.transformFlags = propagateChildFlags(node.expression);\n node.jsDoc = void 0;\n return node;\n }\n function updateParenthesizedExpression(node, expression) {\n return node.expression !== expression ? update(createParenthesizedExpression(expression), node) : node;\n }\n function createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n const node = createBaseDeclaration(219 /* FunctionExpression */);\n node.modifiers = asNodeArray(modifiers);\n node.asteriskToken = asteriskToken;\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.body = body;\n const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n const isGenerator = !!node.asteriskToken;\n const isAsyncGenerator = isAsync && isGenerator;\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n node.typeArguments = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateFunctionExpression(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n return node.name !== name || node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateBaseSignatureDeclaration(createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node;\n }\n function createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {\n const node = createBaseDeclaration(220 /* ArrowFunction */);\n node.modifiers = asNodeArray(modifiers);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.equalsGreaterThanToken = equalsGreaterThanToken ?? createToken(39 /* EqualsGreaterThanToken */);\n node.body = parenthesizerRules().parenthesizeConciseBodyOfArrowFunction(body);\n const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.equalsGreaterThanToken) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isAsync ? 256 /* ContainsES2017 */ | 16384 /* ContainsLexicalThis */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n node.typeArguments = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateArrowFunction(node, modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {\n return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.equalsGreaterThanToken !== equalsGreaterThanToken || node.body !== body ? finishUpdateBaseSignatureDeclaration(createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body), node) : node;\n }\n function createDeleteExpression(expression) {\n const node = createBaseNode(221 /* DeleteExpression */);\n node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n node.transformFlags |= propagateChildFlags(node.expression);\n return node;\n }\n function updateDeleteExpression(node, expression) {\n return node.expression !== expression ? update(createDeleteExpression(expression), node) : node;\n }\n function createTypeOfExpression(expression) {\n const node = createBaseNode(222 /* TypeOfExpression */);\n node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n node.transformFlags |= propagateChildFlags(node.expression);\n return node;\n }\n function updateTypeOfExpression(node, expression) {\n return node.expression !== expression ? update(createTypeOfExpression(expression), node) : node;\n }\n function createVoidExpression(expression) {\n const node = createBaseNode(223 /* VoidExpression */);\n node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n node.transformFlags |= propagateChildFlags(node.expression);\n return node;\n }\n function updateVoidExpression(node, expression) {\n return node.expression !== expression ? update(createVoidExpression(expression), node) : node;\n }\n function createAwaitExpression(expression) {\n const node = createBaseNode(224 /* AwaitExpression */);\n node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n node.transformFlags |= propagateChildFlags(node.expression) | 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */ | 2097152 /* ContainsAwait */;\n return node;\n }\n function updateAwaitExpression(node, expression) {\n return node.expression !== expression ? update(createAwaitExpression(expression), node) : node;\n }\n function createPrefixUnaryExpression(operator, operand) {\n const node = createBaseNode(225 /* PrefixUnaryExpression */);\n node.operator = operator;\n node.operand = parenthesizerRules().parenthesizeOperandOfPrefixUnary(operand);\n node.transformFlags |= propagateChildFlags(node.operand);\n if ((operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) {\n node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */;\n }\n return node;\n }\n function updatePrefixUnaryExpression(node, operand) {\n return node.operand !== operand ? update(createPrefixUnaryExpression(node.operator, operand), node) : node;\n }\n function createPostfixUnaryExpression(operand, operator) {\n const node = createBaseNode(226 /* PostfixUnaryExpression */);\n node.operator = operator;\n node.operand = parenthesizerRules().parenthesizeOperandOfPostfixUnary(operand);\n node.transformFlags |= propagateChildFlags(node.operand);\n if (isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) {\n node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */;\n }\n return node;\n }\n function updatePostfixUnaryExpression(node, operand) {\n return node.operand !== operand ? update(createPostfixUnaryExpression(operand, node.operator), node) : node;\n }\n function createBinaryExpression(left, operator, right) {\n const node = createBaseDeclaration(227 /* BinaryExpression */);\n const operatorToken = asToken(operator);\n const operatorKind = operatorToken.kind;\n node.left = parenthesizerRules().parenthesizeLeftSideOfBinary(operatorKind, left);\n node.operatorToken = operatorToken;\n node.right = parenthesizerRules().parenthesizeRightSideOfBinary(operatorKind, node.left, right);\n node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.operatorToken) | propagateChildFlags(node.right);\n if (operatorKind === 61 /* QuestionQuestionToken */) {\n node.transformFlags |= 32 /* ContainsES2020 */;\n } else if (operatorKind === 64 /* EqualsToken */) {\n if (isObjectLiteralExpression(node.left)) {\n node.transformFlags |= 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left);\n } else if (isArrayLiteralExpression(node.left)) {\n node.transformFlags |= 1024 /* ContainsES2015 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left);\n }\n } else if (operatorKind === 43 /* AsteriskAsteriskToken */ || operatorKind === 68 /* AsteriskAsteriskEqualsToken */) {\n node.transformFlags |= 512 /* ContainsES2016 */;\n } else if (isLogicalOrCoalescingAssignmentOperator(operatorKind)) {\n node.transformFlags |= 16 /* ContainsES2021 */;\n }\n if (operatorKind === 103 /* InKeyword */ && isPrivateIdentifier(node.left)) {\n node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;\n }\n node.jsDoc = void 0;\n return node;\n }\n function propagateAssignmentPatternFlags(node) {\n return containsObjectRestOrSpread(node) ? 65536 /* ContainsObjectRestOrSpread */ : 0 /* None */;\n }\n function updateBinaryExpression(node, left, operator, right) {\n return node.left !== left || node.operatorToken !== operator || node.right !== right ? update(createBinaryExpression(left, operator, right), node) : node;\n }\n function createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse) {\n const node = createBaseNode(228 /* ConditionalExpression */);\n node.condition = parenthesizerRules().parenthesizeConditionOfConditionalExpression(condition);\n node.questionToken = questionToken ?? createToken(58 /* QuestionToken */);\n node.whenTrue = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenTrue);\n node.colonToken = colonToken ?? createToken(59 /* ColonToken */);\n node.whenFalse = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenFalse);\n node.transformFlags |= propagateChildFlags(node.condition) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.whenTrue) | propagateChildFlags(node.colonToken) | propagateChildFlags(node.whenFalse);\n node.flowNodeWhenFalse = void 0;\n node.flowNodeWhenTrue = void 0;\n return node;\n }\n function updateConditionalExpression(node, condition, questionToken, whenTrue, colonToken, whenFalse) {\n return node.condition !== condition || node.questionToken !== questionToken || node.whenTrue !== whenTrue || node.colonToken !== colonToken || node.whenFalse !== whenFalse ? update(createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse), node) : node;\n }\n function createTemplateExpression(head, templateSpans) {\n const node = createBaseNode(229 /* TemplateExpression */);\n node.head = head;\n node.templateSpans = createNodeArray(templateSpans);\n node.transformFlags |= propagateChildFlags(node.head) | propagateChildrenFlags(node.templateSpans) | 1024 /* ContainsES2015 */;\n return node;\n }\n function updateTemplateExpression(node, head, templateSpans) {\n return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateExpression(head, templateSpans), node) : node;\n }\n function checkTemplateLiteralLikeNode(kind, text, rawText, templateFlags = 0 /* None */) {\n Debug.assert(!(templateFlags & ~7176 /* TemplateLiteralLikeFlags */), \"Unsupported template flags.\");\n let cooked = void 0;\n if (rawText !== void 0 && rawText !== text) {\n cooked = getCookedText(kind, rawText);\n if (typeof cooked === \"object\") {\n return Debug.fail(\"Invalid raw text\");\n }\n }\n if (text === void 0) {\n if (cooked === void 0) {\n return Debug.fail(\"Arguments 'text' and 'rawText' may not both be undefined.\");\n }\n text = cooked;\n } else if (cooked !== void 0) {\n Debug.assert(text === cooked, \"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.\");\n }\n return text;\n }\n function getTransformFlagsOfTemplateLiteralLike(templateFlags) {\n let transformFlags = 1024 /* ContainsES2015 */;\n if (templateFlags) {\n transformFlags |= 128 /* ContainsES2018 */;\n }\n return transformFlags;\n }\n function createTemplateLiteralLikeToken(kind, text, rawText, templateFlags) {\n const node = createBaseToken(kind);\n node.text = text;\n node.rawText = rawText;\n node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */;\n node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags);\n return node;\n }\n function createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags) {\n const node = createBaseDeclaration(kind);\n node.text = text;\n node.rawText = rawText;\n node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */;\n node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags);\n return node;\n }\n function createTemplateLiteralLikeNode(kind, text, rawText, templateFlags) {\n if (kind === 15 /* NoSubstitutionTemplateLiteral */) {\n return createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags);\n }\n return createTemplateLiteralLikeToken(kind, text, rawText, templateFlags);\n }\n function createTemplateHead(text, rawText, templateFlags) {\n text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n return createTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n }\n function createTemplateMiddle(text, rawText, templateFlags) {\n text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n return createTemplateLiteralLikeNode(17 /* TemplateMiddle */, text, rawText, templateFlags);\n }\n function createTemplateTail(text, rawText, templateFlags) {\n text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n return createTemplateLiteralLikeNode(18 /* TemplateTail */, text, rawText, templateFlags);\n }\n function createNoSubstitutionTemplateLiteral(text, rawText, templateFlags) {\n text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n return createTemplateLiteralLikeDeclaration(15 /* NoSubstitutionTemplateLiteral */, text, rawText, templateFlags);\n }\n function createYieldExpression(asteriskToken, expression) {\n Debug.assert(!asteriskToken || !!expression, \"A `YieldExpression` with an asteriskToken must have an expression.\");\n const node = createBaseNode(230 /* YieldExpression */);\n node.expression = expression && parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.asteriskToken = asteriskToken;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.asteriskToken) | 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 1048576 /* ContainsYield */;\n return node;\n }\n function updateYieldExpression(node, asteriskToken, expression) {\n return node.expression !== expression || node.asteriskToken !== asteriskToken ? update(createYieldExpression(asteriskToken, expression), node) : node;\n }\n function createSpreadElement(expression) {\n const node = createBaseNode(231 /* SpreadElement */);\n node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 32768 /* ContainsRestOrSpread */;\n return node;\n }\n function updateSpreadElement(node, expression) {\n return node.expression !== expression ? update(createSpreadElement(expression), node) : node;\n }\n function createClassExpression(modifiers, name, typeParameters, heritageClauses, members) {\n const node = createBaseDeclaration(232 /* ClassExpression */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.heritageClauses = asNodeArray(heritageClauses);\n node.members = createNodeArray(members);\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n node.jsDoc = void 0;\n return node;\n }\n function updateClassExpression(node, modifiers, name, typeParameters, heritageClauses, members) {\n return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassExpression(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n }\n function createOmittedExpression() {\n return createBaseNode(233 /* OmittedExpression */);\n }\n function createExpressionWithTypeArguments(expression, typeArguments) {\n const node = createBaseNode(234 /* ExpressionWithTypeArguments */);\n node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n );\n node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | 1024 /* ContainsES2015 */;\n return node;\n }\n function updateExpressionWithTypeArguments(node, expression, typeArguments) {\n return node.expression !== expression || node.typeArguments !== typeArguments ? update(createExpressionWithTypeArguments(expression, typeArguments), node) : node;\n }\n function createAsExpression(expression, type) {\n const node = createBaseNode(235 /* AsExpression */);\n node.expression = expression;\n node.type = type;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n return node;\n }\n function updateAsExpression(node, expression, type) {\n return node.expression !== expression || node.type !== type ? update(createAsExpression(expression, type), node) : node;\n }\n function createNonNullExpression(expression) {\n const node = createBaseNode(236 /* NonNullExpression */);\n node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n );\n node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n return node;\n }\n function updateNonNullExpression(node, expression) {\n if (isNonNullChain(node)) {\n return updateNonNullChain(node, expression);\n }\n return node.expression !== expression ? update(createNonNullExpression(expression), node) : node;\n }\n function createSatisfiesExpression(expression, type) {\n const node = createBaseNode(239 /* SatisfiesExpression */);\n node.expression = expression;\n node.type = type;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n return node;\n }\n function updateSatisfiesExpression(node, expression, type) {\n return node.expression !== expression || node.type !== type ? update(createSatisfiesExpression(expression, type), node) : node;\n }\n function createNonNullChain(expression) {\n const node = createBaseNode(236 /* NonNullExpression */);\n node.flags |= 64 /* OptionalChain */;\n node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n true\n );\n node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n return node;\n }\n function updateNonNullChain(node, expression) {\n Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead.\");\n return node.expression !== expression ? update(createNonNullChain(expression), node) : node;\n }\n function createMetaProperty(keywordToken, name) {\n const node = createBaseNode(237 /* MetaProperty */);\n node.keywordToken = keywordToken;\n node.name = name;\n node.transformFlags |= propagateChildFlags(node.name);\n switch (keywordToken) {\n case 105 /* NewKeyword */:\n node.transformFlags |= 1024 /* ContainsES2015 */;\n break;\n case 102 /* ImportKeyword */:\n node.transformFlags |= 32 /* ContainsES2020 */;\n break;\n default:\n return Debug.assertNever(keywordToken);\n }\n node.flowNode = void 0;\n return node;\n }\n function updateMetaProperty(node, name) {\n return node.name !== name ? update(createMetaProperty(node.keywordToken, name), node) : node;\n }\n function createTemplateSpan(expression, literal) {\n const node = createBaseNode(240 /* TemplateSpan */);\n node.expression = expression;\n node.literal = literal;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.literal) | 1024 /* ContainsES2015 */;\n return node;\n }\n function updateTemplateSpan(node, expression, literal) {\n return node.expression !== expression || node.literal !== literal ? update(createTemplateSpan(expression, literal), node) : node;\n }\n function createSemicolonClassElement() {\n const node = createBaseNode(241 /* SemicolonClassElement */);\n node.transformFlags |= 1024 /* ContainsES2015 */;\n return node;\n }\n function createBlock(statements, multiLine) {\n const node = createBaseNode(242 /* Block */);\n node.statements = createNodeArray(statements);\n node.multiLine = multiLine;\n node.transformFlags |= propagateChildrenFlags(node.statements);\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateBlock(node, statements) {\n return node.statements !== statements ? update(createBlock(statements, node.multiLine), node) : node;\n }\n function createVariableStatement(modifiers, declarationList) {\n const node = createBaseNode(244 /* VariableStatement */);\n node.modifiers = asNodeArray(modifiers);\n node.declarationList = isArray(declarationList) ? createVariableDeclarationList(declarationList) : declarationList;\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.declarationList);\n if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n }\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateVariableStatement(node, modifiers, declarationList) {\n return node.modifiers !== modifiers || node.declarationList !== declarationList ? update(createVariableStatement(modifiers, declarationList), node) : node;\n }\n function createEmptyStatement() {\n const node = createBaseNode(243 /* EmptyStatement */);\n node.jsDoc = void 0;\n return node;\n }\n function createExpressionStatement(expression) {\n const node = createBaseNode(245 /* ExpressionStatement */);\n node.expression = parenthesizerRules().parenthesizeExpressionOfExpressionStatement(expression);\n node.transformFlags |= propagateChildFlags(node.expression);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateExpressionStatement(node, expression) {\n return node.expression !== expression ? update(createExpressionStatement(expression), node) : node;\n }\n function createIfStatement(expression, thenStatement, elseStatement) {\n const node = createBaseNode(246 /* IfStatement */);\n node.expression = expression;\n node.thenStatement = asEmbeddedStatement(thenStatement);\n node.elseStatement = asEmbeddedStatement(elseStatement);\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thenStatement) | propagateChildFlags(node.elseStatement);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateIfStatement(node, expression, thenStatement, elseStatement) {\n return node.expression !== expression || node.thenStatement !== thenStatement || node.elseStatement !== elseStatement ? update(createIfStatement(expression, thenStatement, elseStatement), node) : node;\n }\n function createDoStatement(statement, expression) {\n const node = createBaseNode(247 /* DoStatement */);\n node.statement = asEmbeddedStatement(statement);\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.statement) | propagateChildFlags(node.expression);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateDoStatement(node, statement, expression) {\n return node.statement !== statement || node.expression !== expression ? update(createDoStatement(statement, expression), node) : node;\n }\n function createWhileStatement(expression, statement) {\n const node = createBaseNode(248 /* WhileStatement */);\n node.expression = expression;\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateWhileStatement(node, expression, statement) {\n return node.expression !== expression || node.statement !== statement ? update(createWhileStatement(expression, statement), node) : node;\n }\n function createForStatement(initializer, condition, incrementor, statement) {\n const node = createBaseNode(249 /* ForStatement */);\n node.initializer = initializer;\n node.condition = condition;\n node.incrementor = incrementor;\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.condition) | propagateChildFlags(node.incrementor) | propagateChildFlags(node.statement);\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateForStatement(node, initializer, condition, incrementor, statement) {\n return node.initializer !== initializer || node.condition !== condition || node.incrementor !== incrementor || node.statement !== statement ? update(createForStatement(initializer, condition, incrementor, statement), node) : node;\n }\n function createForInStatement(initializer, expression, statement) {\n const node = createBaseNode(250 /* ForInStatement */);\n node.initializer = initializer;\n node.expression = expression;\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateForInStatement(node, initializer, expression, statement) {\n return node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForInStatement(initializer, expression, statement), node) : node;\n }\n function createForOfStatement(awaitModifier, initializer, expression, statement) {\n const node = createBaseNode(251 /* ForOfStatement */);\n node.awaitModifier = awaitModifier;\n node.initializer = initializer;\n node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.awaitModifier) | propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement) | 1024 /* ContainsES2015 */;\n if (awaitModifier) node.transformFlags |= 128 /* ContainsES2018 */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateForOfStatement(node, awaitModifier, initializer, expression, statement) {\n return node.awaitModifier !== awaitModifier || node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForOfStatement(awaitModifier, initializer, expression, statement), node) : node;\n }\n function createContinueStatement(label) {\n const node = createBaseNode(252 /* ContinueStatement */);\n node.label = asName(label);\n node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateContinueStatement(node, label) {\n return node.label !== label ? update(createContinueStatement(label), node) : node;\n }\n function createBreakStatement(label) {\n const node = createBaseNode(253 /* BreakStatement */);\n node.label = asName(label);\n node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateBreakStatement(node, label) {\n return node.label !== label ? update(createBreakStatement(label), node) : node;\n }\n function createReturnStatement(expression) {\n const node = createBaseNode(254 /* ReturnStatement */);\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateReturnStatement(node, expression) {\n return node.expression !== expression ? update(createReturnStatement(expression), node) : node;\n }\n function createWithStatement(expression, statement) {\n const node = createBaseNode(255 /* WithStatement */);\n node.expression = expression;\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateWithStatement(node, expression, statement) {\n return node.expression !== expression || node.statement !== statement ? update(createWithStatement(expression, statement), node) : node;\n }\n function createSwitchStatement(expression, caseBlock) {\n const node = createBaseNode(256 /* SwitchStatement */);\n node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.caseBlock = caseBlock;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.caseBlock);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n node.possiblyExhaustive = false;\n return node;\n }\n function updateSwitchStatement(node, expression, caseBlock) {\n return node.expression !== expression || node.caseBlock !== caseBlock ? update(createSwitchStatement(expression, caseBlock), node) : node;\n }\n function createLabeledStatement(label, statement) {\n const node = createBaseNode(257 /* LabeledStatement */);\n node.label = asName(label);\n node.statement = asEmbeddedStatement(statement);\n node.transformFlags |= propagateChildFlags(node.label) | propagateChildFlags(node.statement);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateLabeledStatement(node, label, statement) {\n return node.label !== label || node.statement !== statement ? update(createLabeledStatement(label, statement), node) : node;\n }\n function createThrowStatement(expression) {\n const node = createBaseNode(258 /* ThrowStatement */);\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.expression);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateThrowStatement(node, expression) {\n return node.expression !== expression ? update(createThrowStatement(expression), node) : node;\n }\n function createTryStatement(tryBlock, catchClause, finallyBlock) {\n const node = createBaseNode(259 /* TryStatement */);\n node.tryBlock = tryBlock;\n node.catchClause = catchClause;\n node.finallyBlock = finallyBlock;\n node.transformFlags |= propagateChildFlags(node.tryBlock) | propagateChildFlags(node.catchClause) | propagateChildFlags(node.finallyBlock);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function updateTryStatement(node, tryBlock, catchClause, finallyBlock) {\n return node.tryBlock !== tryBlock || node.catchClause !== catchClause || node.finallyBlock !== finallyBlock ? update(createTryStatement(tryBlock, catchClause, finallyBlock), node) : node;\n }\n function createDebuggerStatement() {\n const node = createBaseNode(260 /* DebuggerStatement */);\n node.jsDoc = void 0;\n node.flowNode = void 0;\n return node;\n }\n function createVariableDeclaration(name, exclamationToken, type, initializer) {\n const node = createBaseDeclaration(261 /* VariableDeclaration */);\n node.name = asName(name);\n node.exclamationToken = exclamationToken;\n node.type = type;\n node.initializer = asInitializer(initializer);\n node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (node.exclamationToken ?? node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n node.jsDoc = void 0;\n return node;\n }\n function updateVariableDeclaration(node, name, exclamationToken, type, initializer) {\n return node.name !== name || node.type !== type || node.exclamationToken !== exclamationToken || node.initializer !== initializer ? update(createVariableDeclaration(name, exclamationToken, type, initializer), node) : node;\n }\n function createVariableDeclarationList(declarations, flags2 = 0 /* None */) {\n const node = createBaseNode(262 /* VariableDeclarationList */);\n node.flags |= flags2 & 7 /* BlockScoped */;\n node.declarations = createNodeArray(declarations);\n node.transformFlags |= propagateChildrenFlags(node.declarations) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n if (flags2 & 7 /* BlockScoped */) {\n node.transformFlags |= 1024 /* ContainsES2015 */ | 262144 /* ContainsBlockScopedBinding */;\n }\n if (flags2 & 4 /* Using */) {\n node.transformFlags |= 4 /* ContainsESNext */;\n }\n return node;\n }\n function updateVariableDeclarationList(node, declarations) {\n return node.declarations !== declarations ? update(createVariableDeclarationList(declarations, node.flags), node) : node;\n }\n function createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n const node = createBaseDeclaration(263 /* FunctionDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.asteriskToken = asteriskToken;\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.body = body;\n if (!node.body || modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n const isGenerator = !!node.asteriskToken;\n const isAsyncGenerator = isAsync && isGenerator;\n node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n }\n node.typeArguments = void 0;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.endFlowNode = void 0;\n node.returnFlowNode = void 0;\n return node;\n }\n function updateFunctionDeclaration(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateFunctionDeclaration(createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node;\n }\n function finishUpdateFunctionDeclaration(updated, original) {\n if (updated !== original) {\n if (updated.modifiers === original.modifiers) {\n updated.modifiers = original.modifiers;\n }\n }\n return finishUpdateBaseSignatureDeclaration(updated, original);\n }\n function createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) {\n const node = createBaseDeclaration(264 /* ClassDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.heritageClauses = asNodeArray(heritageClauses);\n node.members = createNodeArray(members);\n if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n if (node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n }\n node.jsDoc = void 0;\n return node;\n }\n function updateClassDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {\n return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n }\n function createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members) {\n const node = createBaseDeclaration(265 /* InterfaceDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.heritageClauses = asNodeArray(heritageClauses);\n node.members = createNodeArray(members);\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n return node;\n }\n function updateInterfaceDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {\n return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n }\n function createTypeAliasDeclaration(modifiers, name, typeParameters, type) {\n const node = createBaseDeclaration(266 /* TypeAliasDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.typeParameters = asNodeArray(typeParameters);\n node.type = type;\n node.transformFlags = 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateTypeAliasDeclaration(node, modifiers, name, typeParameters, type) {\n return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.type !== type ? update(createTypeAliasDeclaration(modifiers, name, typeParameters, type), node) : node;\n }\n function createEnumDeclaration(modifiers, name, members) {\n const node = createBaseDeclaration(267 /* EnumDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.members = createNodeArray(members);\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildrenFlags(node.members) | 1 /* ContainsTypeScript */;\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateEnumDeclaration(node, modifiers, name, members) {\n return node.modifiers !== modifiers || node.name !== name || node.members !== members ? update(createEnumDeclaration(modifiers, name, members), node) : node;\n }\n function createModuleDeclaration(modifiers, name, body, flags2 = 0 /* None */) {\n const node = createBaseDeclaration(268 /* ModuleDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.flags |= flags2 & (32 /* Namespace */ | 8 /* NestedNamespace */ | 2048 /* GlobalAugmentation */);\n node.name = name;\n node.body = body;\n if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n node.transformFlags = 1 /* ContainsTypeScript */;\n } else {\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildFlags(node.body) | 1 /* ContainsTypeScript */;\n }\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateModuleDeclaration(node, modifiers, name, body) {\n return node.modifiers !== modifiers || node.name !== name || node.body !== body ? update(createModuleDeclaration(modifiers, name, body, node.flags), node) : node;\n }\n function createModuleBlock(statements) {\n const node = createBaseNode(269 /* ModuleBlock */);\n node.statements = createNodeArray(statements);\n node.transformFlags |= propagateChildrenFlags(node.statements);\n node.jsDoc = void 0;\n return node;\n }\n function updateModuleBlock(node, statements) {\n return node.statements !== statements ? update(createModuleBlock(statements), node) : node;\n }\n function createCaseBlock(clauses) {\n const node = createBaseNode(270 /* CaseBlock */);\n node.clauses = createNodeArray(clauses);\n node.transformFlags |= propagateChildrenFlags(node.clauses);\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateCaseBlock(node, clauses) {\n return node.clauses !== clauses ? update(createCaseBlock(clauses), node) : node;\n }\n function createNamespaceExportDeclaration(name) {\n const node = createBaseDeclaration(271 /* NamespaceExportDeclaration */);\n node.name = asName(name);\n node.transformFlags |= propagateIdentifierNameFlags(node.name) | 1 /* ContainsTypeScript */;\n node.modifiers = void 0;\n node.jsDoc = void 0;\n return node;\n }\n function updateNamespaceExportDeclaration(node, name) {\n return node.name !== name ? finishUpdateNamespaceExportDeclaration(createNamespaceExportDeclaration(name), node) : node;\n }\n function finishUpdateNamespaceExportDeclaration(updated, original) {\n if (updated !== original) {\n updated.modifiers = original.modifiers;\n }\n return update(updated, original);\n }\n function createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference) {\n const node = createBaseDeclaration(272 /* ImportEqualsDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.name = asName(name);\n node.isTypeOnly = isTypeOnly;\n node.moduleReference = moduleReference;\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.moduleReference);\n if (!isExternalModuleReference(node.moduleReference)) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateImportEqualsDeclaration(node, modifiers, isTypeOnly, name, moduleReference) {\n return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.name !== name || node.moduleReference !== moduleReference ? update(createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference), node) : node;\n }\n function createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes) {\n const node = createBaseNode(273 /* ImportDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.importClause = importClause;\n node.moduleSpecifier = moduleSpecifier;\n node.attributes = node.assertClause = attributes;\n node.transformFlags |= propagateChildFlags(node.importClause) | propagateChildFlags(node.moduleSpecifier);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, attributes) {\n return node.modifiers !== modifiers || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? update(createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes), node) : node;\n }\n function createImportClause2(phaseModifier, name, namedBindings) {\n const node = createBaseDeclaration(274 /* ImportClause */);\n if (typeof phaseModifier === \"boolean\") {\n phaseModifier = phaseModifier ? 156 /* TypeKeyword */ : void 0;\n }\n node.isTypeOnly = phaseModifier === 156 /* TypeKeyword */;\n node.phaseModifier = phaseModifier;\n node.name = name;\n node.namedBindings = namedBindings;\n node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.namedBindings);\n if (phaseModifier === 156 /* TypeKeyword */) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateImportClause(node, phaseModifier, name, namedBindings) {\n if (typeof phaseModifier === \"boolean\") {\n phaseModifier = phaseModifier ? 156 /* TypeKeyword */ : void 0;\n }\n return node.phaseModifier !== phaseModifier || node.name !== name || node.namedBindings !== namedBindings ? update(createImportClause2(phaseModifier, name, namedBindings), node) : node;\n }\n function createAssertClause(elements, multiLine) {\n const node = createBaseNode(301 /* AssertClause */);\n node.elements = createNodeArray(elements);\n node.multiLine = multiLine;\n node.token = 132 /* AssertKeyword */;\n node.transformFlags |= 4 /* ContainsESNext */;\n return node;\n }\n function updateAssertClause(node, elements, multiLine) {\n return node.elements !== elements || node.multiLine !== multiLine ? update(createAssertClause(elements, multiLine), node) : node;\n }\n function createAssertEntry(name, value) {\n const node = createBaseNode(302 /* AssertEntry */);\n node.name = name;\n node.value = value;\n node.transformFlags |= 4 /* ContainsESNext */;\n return node;\n }\n function updateAssertEntry(node, name, value) {\n return node.name !== name || node.value !== value ? update(createAssertEntry(name, value), node) : node;\n }\n function createImportTypeAssertionContainer(clause, multiLine) {\n const node = createBaseNode(303 /* ImportTypeAssertionContainer */);\n node.assertClause = clause;\n node.multiLine = multiLine;\n return node;\n }\n function updateImportTypeAssertionContainer(node, clause, multiLine) {\n return node.assertClause !== clause || node.multiLine !== multiLine ? update(createImportTypeAssertionContainer(clause, multiLine), node) : node;\n }\n function createImportAttributes(elements, multiLine, token) {\n const node = createBaseNode(301 /* ImportAttributes */);\n node.token = token ?? 118 /* WithKeyword */;\n node.elements = createNodeArray(elements);\n node.multiLine = multiLine;\n node.transformFlags |= 4 /* ContainsESNext */;\n return node;\n }\n function updateImportAttributes(node, elements, multiLine) {\n return node.elements !== elements || node.multiLine !== multiLine ? update(createImportAttributes(elements, multiLine, node.token), node) : node;\n }\n function createImportAttribute(name, value) {\n const node = createBaseNode(302 /* ImportAttribute */);\n node.name = name;\n node.value = value;\n node.transformFlags |= 4 /* ContainsESNext */;\n return node;\n }\n function updateImportAttribute(node, name, value) {\n return node.name !== name || node.value !== value ? update(createImportAttribute(name, value), node) : node;\n }\n function createNamespaceImport(name) {\n const node = createBaseDeclaration(275 /* NamespaceImport */);\n node.name = name;\n node.transformFlags |= propagateChildFlags(node.name);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateNamespaceImport(node, name) {\n return node.name !== name ? update(createNamespaceImport(name), node) : node;\n }\n function createNamespaceExport(name) {\n const node = createBaseDeclaration(281 /* NamespaceExport */);\n node.name = name;\n node.transformFlags |= propagateChildFlags(node.name) | 32 /* ContainsES2020 */;\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateNamespaceExport(node, name) {\n return node.name !== name ? update(createNamespaceExport(name), node) : node;\n }\n function createNamedImports(elements) {\n const node = createBaseNode(276 /* NamedImports */);\n node.elements = createNodeArray(elements);\n node.transformFlags |= propagateChildrenFlags(node.elements);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateNamedImports(node, elements) {\n return node.elements !== elements ? update(createNamedImports(elements), node) : node;\n }\n function createImportSpecifier(isTypeOnly, propertyName, name) {\n const node = createBaseDeclaration(277 /* ImportSpecifier */);\n node.isTypeOnly = isTypeOnly;\n node.propertyName = propertyName;\n node.name = name;\n node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateImportSpecifier(node, isTypeOnly, propertyName, name) {\n return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createImportSpecifier(isTypeOnly, propertyName, name), node) : node;\n }\n function createExportAssignment2(modifiers, isExportEquals, expression) {\n const node = createBaseDeclaration(278 /* ExportAssignment */);\n node.modifiers = asNodeArray(modifiers);\n node.isExportEquals = isExportEquals;\n node.expression = isExportEquals ? parenthesizerRules().parenthesizeRightSideOfBinary(\n 64 /* EqualsToken */,\n /*leftSide*/\n void 0,\n expression\n ) : parenthesizerRules().parenthesizeExpressionOfExportDefault(expression);\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateExportAssignment(node, modifiers, expression) {\n return node.modifiers !== modifiers || node.expression !== expression ? update(createExportAssignment2(modifiers, node.isExportEquals, expression), node) : node;\n }\n function createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes) {\n const node = createBaseDeclaration(279 /* ExportDeclaration */);\n node.modifiers = asNodeArray(modifiers);\n node.isTypeOnly = isTypeOnly;\n node.exportClause = exportClause;\n node.moduleSpecifier = moduleSpecifier;\n node.attributes = node.assertClause = attributes;\n node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.exportClause) | propagateChildFlags(node.moduleSpecifier);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateExportDeclaration(node, modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes) {\n return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.exportClause !== exportClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? finishUpdateExportDeclaration(createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes), node) : node;\n }\n function finishUpdateExportDeclaration(updated, original) {\n if (updated !== original) {\n if (updated.modifiers === original.modifiers) {\n updated.modifiers = original.modifiers;\n }\n }\n return update(updated, original);\n }\n function createNamedExports(elements) {\n const node = createBaseNode(280 /* NamedExports */);\n node.elements = createNodeArray(elements);\n node.transformFlags |= propagateChildrenFlags(node.elements);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateNamedExports(node, elements) {\n return node.elements !== elements ? update(createNamedExports(elements), node) : node;\n }\n function createExportSpecifier(isTypeOnly, propertyName, name) {\n const node = createBaseNode(282 /* ExportSpecifier */);\n node.isTypeOnly = isTypeOnly;\n node.propertyName = asName(propertyName);\n node.name = asName(name);\n node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n node.jsDoc = void 0;\n return node;\n }\n function updateExportSpecifier(node, isTypeOnly, propertyName, name) {\n return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createExportSpecifier(isTypeOnly, propertyName, name), node) : node;\n }\n function createMissingDeclaration() {\n const node = createBaseDeclaration(283 /* MissingDeclaration */);\n node.jsDoc = void 0;\n return node;\n }\n function createExternalModuleReference(expression) {\n const node = createBaseNode(284 /* ExternalModuleReference */);\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.expression);\n node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n return node;\n }\n function updateExternalModuleReference(node, expression) {\n return node.expression !== expression ? update(createExternalModuleReference(expression), node) : node;\n }\n function createJSDocPrimaryTypeWorker(kind) {\n return createBaseNode(kind);\n }\n function createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix = false) {\n const node = createJSDocUnaryTypeWorker(\n kind,\n postfix ? type && parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(type) : type\n );\n node.postfix = postfix;\n return node;\n }\n function createJSDocUnaryTypeWorker(kind, type) {\n const node = createBaseNode(kind);\n node.type = type;\n return node;\n }\n function updateJSDocPrePostfixUnaryTypeWorker(kind, node, type) {\n return node.type !== type ? update(createJSDocPrePostfixUnaryTypeWorker(kind, type, node.postfix), node) : node;\n }\n function updateJSDocUnaryTypeWorker(kind, node, type) {\n return node.type !== type ? update(createJSDocUnaryTypeWorker(kind, type), node) : node;\n }\n function createJSDocFunctionType(parameters, type) {\n const node = createBaseDeclaration(318 /* JSDocFunctionType */);\n node.parameters = asNodeArray(parameters);\n node.type = type;\n node.transformFlags = propagateChildrenFlags(node.parameters) | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n node.typeArguments = void 0;\n return node;\n }\n function updateJSDocFunctionType(node, parameters, type) {\n return node.parameters !== parameters || node.type !== type ? update(createJSDocFunctionType(parameters, type), node) : node;\n }\n function createJSDocTypeLiteral(propertyTags, isArrayType = false) {\n const node = createBaseDeclaration(323 /* JSDocTypeLiteral */);\n node.jsDocPropertyTags = asNodeArray(propertyTags);\n node.isArrayType = isArrayType;\n return node;\n }\n function updateJSDocTypeLiteral(node, propertyTags, isArrayType) {\n return node.jsDocPropertyTags !== propertyTags || node.isArrayType !== isArrayType ? update(createJSDocTypeLiteral(propertyTags, isArrayType), node) : node;\n }\n function createJSDocTypeExpression(type) {\n const node = createBaseNode(310 /* JSDocTypeExpression */);\n node.type = type;\n return node;\n }\n function updateJSDocTypeExpression(node, type) {\n return node.type !== type ? update(createJSDocTypeExpression(type), node) : node;\n }\n function createJSDocSignature(typeParameters, parameters, type) {\n const node = createBaseDeclaration(324 /* JSDocSignature */);\n node.typeParameters = asNodeArray(typeParameters);\n node.parameters = createNodeArray(parameters);\n node.type = type;\n node.jsDoc = void 0;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateJSDocSignature(node, typeParameters, parameters, type) {\n return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? update(createJSDocSignature(typeParameters, parameters, type), node) : node;\n }\n function getDefaultTagName(node) {\n const defaultTagName = getDefaultTagNameForKind(node.kind);\n return node.tagName.escapedText === escapeLeadingUnderscores(defaultTagName) ? node.tagName : createIdentifier(defaultTagName);\n }\n function createBaseJSDocTag(kind, tagName, comment) {\n const node = createBaseNode(kind);\n node.tagName = tagName;\n node.comment = comment;\n return node;\n }\n function createBaseJSDocTagDeclaration(kind, tagName, comment) {\n const node = createBaseDeclaration(kind);\n node.tagName = tagName;\n node.comment = comment;\n return node;\n }\n function createJSDocTemplateTag(tagName, constraint, typeParameters, comment) {\n const node = createBaseJSDocTag(346 /* JSDocTemplateTag */, tagName ?? createIdentifier(\"template\"), comment);\n node.constraint = constraint;\n node.typeParameters = createNodeArray(typeParameters);\n return node;\n }\n function updateJSDocTemplateTag(node, tagName = getDefaultTagName(node), constraint, typeParameters, comment) {\n return node.tagName !== tagName || node.constraint !== constraint || node.typeParameters !== typeParameters || node.comment !== comment ? update(createJSDocTemplateTag(tagName, constraint, typeParameters, comment), node) : node;\n }\n function createJSDocTypedefTag(tagName, typeExpression, fullName, comment) {\n const node = createBaseJSDocTagDeclaration(347 /* JSDocTypedefTag */, tagName ?? createIdentifier(\"typedef\"), comment);\n node.typeExpression = typeExpression;\n node.fullName = fullName;\n node.name = getJSDocTypeAliasName(fullName);\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateJSDocTypedefTag(node, tagName = getDefaultTagName(node), typeExpression, fullName, comment) {\n return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocTypedefTag(tagName, typeExpression, fullName, comment), node) : node;\n }\n function createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {\n const node = createBaseJSDocTagDeclaration(342 /* JSDocParameterTag */, tagName ?? createIdentifier(\"param\"), comment);\n node.typeExpression = typeExpression;\n node.name = name;\n node.isNameFirst = !!isNameFirst;\n node.isBracketed = isBracketed;\n return node;\n }\n function updateJSDocParameterTag(node, tagName = getDefaultTagName(node), name, isBracketed, typeExpression, isNameFirst, comment) {\n return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node;\n }\n function createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {\n const node = createBaseJSDocTagDeclaration(349 /* JSDocPropertyTag */, tagName ?? createIdentifier(\"prop\"), comment);\n node.typeExpression = typeExpression;\n node.name = name;\n node.isNameFirst = !!isNameFirst;\n node.isBracketed = isBracketed;\n return node;\n }\n function updateJSDocPropertyTag(node, tagName = getDefaultTagName(node), name, isBracketed, typeExpression, isNameFirst, comment) {\n return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node;\n }\n function createJSDocCallbackTag(tagName, typeExpression, fullName, comment) {\n const node = createBaseJSDocTagDeclaration(339 /* JSDocCallbackTag */, tagName ?? createIdentifier(\"callback\"), comment);\n node.typeExpression = typeExpression;\n node.fullName = fullName;\n node.name = getJSDocTypeAliasName(fullName);\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateJSDocCallbackTag(node, tagName = getDefaultTagName(node), typeExpression, fullName, comment) {\n return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocCallbackTag(tagName, typeExpression, fullName, comment), node) : node;\n }\n function createJSDocOverloadTag(tagName, typeExpression, comment) {\n const node = createBaseJSDocTag(340 /* JSDocOverloadTag */, tagName ?? createIdentifier(\"overload\"), comment);\n node.typeExpression = typeExpression;\n return node;\n }\n function updateJSDocOverloadTag(node, tagName = getDefaultTagName(node), typeExpression, comment) {\n return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocOverloadTag(tagName, typeExpression, comment), node) : node;\n }\n function createJSDocAugmentsTag(tagName, className, comment) {\n const node = createBaseJSDocTag(329 /* JSDocAugmentsTag */, tagName ?? createIdentifier(\"augments\"), comment);\n node.class = className;\n return node;\n }\n function updateJSDocAugmentsTag(node, tagName = getDefaultTagName(node), className, comment) {\n return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocAugmentsTag(tagName, className, comment), node) : node;\n }\n function createJSDocImplementsTag(tagName, className, comment) {\n const node = createBaseJSDocTag(330 /* JSDocImplementsTag */, tagName ?? createIdentifier(\"implements\"), comment);\n node.class = className;\n return node;\n }\n function createJSDocSeeTag(tagName, name, comment) {\n const node = createBaseJSDocTag(348 /* JSDocSeeTag */, tagName ?? createIdentifier(\"see\"), comment);\n node.name = name;\n return node;\n }\n function updateJSDocSeeTag(node, tagName, name, comment) {\n return node.tagName !== tagName || node.name !== name || node.comment !== comment ? update(createJSDocSeeTag(tagName, name, comment), node) : node;\n }\n function createJSDocNameReference(name) {\n const node = createBaseNode(311 /* JSDocNameReference */);\n node.name = name;\n return node;\n }\n function updateJSDocNameReference(node, name) {\n return node.name !== name ? update(createJSDocNameReference(name), node) : node;\n }\n function createJSDocMemberName(left, right) {\n const node = createBaseNode(312 /* JSDocMemberName */);\n node.left = left;\n node.right = right;\n node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.right);\n return node;\n }\n function updateJSDocMemberName(node, left, right) {\n return node.left !== left || node.right !== right ? update(createJSDocMemberName(left, right), node) : node;\n }\n function createJSDocLink(name, text) {\n const node = createBaseNode(325 /* JSDocLink */);\n node.name = name;\n node.text = text;\n return node;\n }\n function updateJSDocLink(node, name, text) {\n return node.name !== name ? update(createJSDocLink(name, text), node) : node;\n }\n function createJSDocLinkCode(name, text) {\n const node = createBaseNode(326 /* JSDocLinkCode */);\n node.name = name;\n node.text = text;\n return node;\n }\n function updateJSDocLinkCode(node, name, text) {\n return node.name !== name ? update(createJSDocLinkCode(name, text), node) : node;\n }\n function createJSDocLinkPlain(name, text) {\n const node = createBaseNode(327 /* JSDocLinkPlain */);\n node.name = name;\n node.text = text;\n return node;\n }\n function updateJSDocLinkPlain(node, name, text) {\n return node.name !== name ? update(createJSDocLinkPlain(name, text), node) : node;\n }\n function updateJSDocImplementsTag(node, tagName = getDefaultTagName(node), className, comment) {\n return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocImplementsTag(tagName, className, comment), node) : node;\n }\n function createJSDocSimpleTagWorker(kind, tagName, comment) {\n const node = createBaseJSDocTag(kind, tagName ?? createIdentifier(getDefaultTagNameForKind(kind)), comment);\n return node;\n }\n function updateJSDocSimpleTagWorker(kind, node, tagName = getDefaultTagName(node), comment) {\n return node.tagName !== tagName || node.comment !== comment ? update(createJSDocSimpleTagWorker(kind, tagName, comment), node) : node;\n }\n function createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment) {\n const node = createBaseJSDocTag(kind, tagName ?? createIdentifier(getDefaultTagNameForKind(kind)), comment);\n node.typeExpression = typeExpression;\n return node;\n }\n function updateJSDocTypeLikeTagWorker(kind, node, tagName = getDefaultTagName(node), typeExpression, comment) {\n return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment), node) : node;\n }\n function createJSDocUnknownTag(tagName, comment) {\n const node = createBaseJSDocTag(328 /* JSDocTag */, tagName, comment);\n return node;\n }\n function updateJSDocUnknownTag(node, tagName, comment) {\n return node.tagName !== tagName || node.comment !== comment ? update(createJSDocUnknownTag(tagName, comment), node) : node;\n }\n function createJSDocEnumTag(tagName, typeExpression, comment) {\n const node = createBaseJSDocTagDeclaration(341 /* JSDocEnumTag */, tagName ?? createIdentifier(getDefaultTagNameForKind(341 /* JSDocEnumTag */)), comment);\n node.typeExpression = typeExpression;\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateJSDocEnumTag(node, tagName = getDefaultTagName(node), typeExpression, comment) {\n return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocEnumTag(tagName, typeExpression, comment), node) : node;\n }\n function createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment) {\n const node = createBaseJSDocTag(352 /* JSDocImportTag */, tagName ?? createIdentifier(\"import\"), comment);\n node.importClause = importClause;\n node.moduleSpecifier = moduleSpecifier;\n node.attributes = attributes;\n node.comment = comment;\n return node;\n }\n function updateJSDocImportTag(node, tagName, importClause, moduleSpecifier, attributes, comment) {\n return node.tagName !== tagName || node.comment !== comment || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? update(createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment), node) : node;\n }\n function createJSDocText(text) {\n const node = createBaseNode(322 /* JSDocText */);\n node.text = text;\n return node;\n }\n function updateJSDocText(node, text) {\n return node.text !== text ? update(createJSDocText(text), node) : node;\n }\n function createJSDocComment(comment, tags) {\n const node = createBaseNode(321 /* JSDoc */);\n node.comment = comment;\n node.tags = asNodeArray(tags);\n return node;\n }\n function updateJSDocComment(node, comment, tags) {\n return node.comment !== comment || node.tags !== tags ? update(createJSDocComment(comment, tags), node) : node;\n }\n function createJsxElement(openingElement, children, closingElement) {\n const node = createBaseNode(285 /* JsxElement */);\n node.openingElement = openingElement;\n node.children = createNodeArray(children);\n node.closingElement = closingElement;\n node.transformFlags |= propagateChildFlags(node.openingElement) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingElement) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxElement(node, openingElement, children, closingElement) {\n return node.openingElement !== openingElement || node.children !== children || node.closingElement !== closingElement ? update(createJsxElement(openingElement, children, closingElement), node) : node;\n }\n function createJsxSelfClosingElement(tagName, typeArguments, attributes) {\n const node = createBaseNode(286 /* JsxSelfClosingElement */);\n node.tagName = tagName;\n node.typeArguments = asNodeArray(typeArguments);\n node.attributes = attributes;\n node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */;\n if (node.typeArguments) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n return node;\n }\n function updateJsxSelfClosingElement(node, tagName, typeArguments, attributes) {\n return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxSelfClosingElement(tagName, typeArguments, attributes), node) : node;\n }\n function createJsxOpeningElement(tagName, typeArguments, attributes) {\n const node = createBaseNode(287 /* JsxOpeningElement */);\n node.tagName = tagName;\n node.typeArguments = asNodeArray(typeArguments);\n node.attributes = attributes;\n node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */;\n if (typeArguments) {\n node.transformFlags |= 1 /* ContainsTypeScript */;\n }\n return node;\n }\n function updateJsxOpeningElement(node, tagName, typeArguments, attributes) {\n return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxOpeningElement(tagName, typeArguments, attributes), node) : node;\n }\n function createJsxClosingElement(tagName) {\n const node = createBaseNode(288 /* JsxClosingElement */);\n node.tagName = tagName;\n node.transformFlags |= propagateChildFlags(node.tagName) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxClosingElement(node, tagName) {\n return node.tagName !== tagName ? update(createJsxClosingElement(tagName), node) : node;\n }\n function createJsxFragment(openingFragment, children, closingFragment) {\n const node = createBaseNode(289 /* JsxFragment */);\n node.openingFragment = openingFragment;\n node.children = createNodeArray(children);\n node.closingFragment = closingFragment;\n node.transformFlags |= propagateChildFlags(node.openingFragment) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingFragment) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxFragment(node, openingFragment, children, closingFragment) {\n return node.openingFragment !== openingFragment || node.children !== children || node.closingFragment !== closingFragment ? update(createJsxFragment(openingFragment, children, closingFragment), node) : node;\n }\n function createJsxText(text, containsOnlyTriviaWhiteSpaces) {\n const node = createBaseNode(12 /* JsxText */);\n node.text = text;\n node.containsOnlyTriviaWhiteSpaces = !!containsOnlyTriviaWhiteSpaces;\n node.transformFlags |= 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxText(node, text, containsOnlyTriviaWhiteSpaces) {\n return node.text !== text || node.containsOnlyTriviaWhiteSpaces !== containsOnlyTriviaWhiteSpaces ? update(createJsxText(text, containsOnlyTriviaWhiteSpaces), node) : node;\n }\n function createJsxOpeningFragment() {\n const node = createBaseNode(290 /* JsxOpeningFragment */);\n node.transformFlags |= 2 /* ContainsJsx */;\n return node;\n }\n function createJsxJsxClosingFragment() {\n const node = createBaseNode(291 /* JsxClosingFragment */);\n node.transformFlags |= 2 /* ContainsJsx */;\n return node;\n }\n function createJsxAttribute(name, initializer) {\n const node = createBaseDeclaration(292 /* JsxAttribute */);\n node.name = name;\n node.initializer = initializer;\n node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxAttribute(node, name, initializer) {\n return node.name !== name || node.initializer !== initializer ? update(createJsxAttribute(name, initializer), node) : node;\n }\n function createJsxAttributes(properties) {\n const node = createBaseDeclaration(293 /* JsxAttributes */);\n node.properties = createNodeArray(properties);\n node.transformFlags |= propagateChildrenFlags(node.properties) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxAttributes(node, properties) {\n return node.properties !== properties ? update(createJsxAttributes(properties), node) : node;\n }\n function createJsxSpreadAttribute(expression) {\n const node = createBaseNode(294 /* JsxSpreadAttribute */);\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.expression) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxSpreadAttribute(node, expression) {\n return node.expression !== expression ? update(createJsxSpreadAttribute(expression), node) : node;\n }\n function createJsxExpression(dotDotDotToken, expression) {\n const node = createBaseNode(295 /* JsxExpression */);\n node.dotDotDotToken = dotDotDotToken;\n node.expression = expression;\n node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateChildFlags(node.expression) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxExpression(node, expression) {\n return node.expression !== expression ? update(createJsxExpression(node.dotDotDotToken, expression), node) : node;\n }\n function createJsxNamespacedName(namespace, name) {\n const node = createBaseNode(296 /* JsxNamespacedName */);\n node.namespace = namespace;\n node.name = name;\n node.transformFlags |= propagateChildFlags(node.namespace) | propagateChildFlags(node.name) | 2 /* ContainsJsx */;\n return node;\n }\n function updateJsxNamespacedName(node, namespace, name) {\n return node.namespace !== namespace || node.name !== name ? update(createJsxNamespacedName(namespace, name), node) : node;\n }\n function createCaseClause(expression, statements) {\n const node = createBaseNode(297 /* CaseClause */);\n node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.statements = createNodeArray(statements);\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.statements);\n node.jsDoc = void 0;\n return node;\n }\n function updateCaseClause(node, expression, statements) {\n return node.expression !== expression || node.statements !== statements ? update(createCaseClause(expression, statements), node) : node;\n }\n function createDefaultClause(statements) {\n const node = createBaseNode(298 /* DefaultClause */);\n node.statements = createNodeArray(statements);\n node.transformFlags = propagateChildrenFlags(node.statements);\n return node;\n }\n function updateDefaultClause(node, statements) {\n return node.statements !== statements ? update(createDefaultClause(statements), node) : node;\n }\n function createHeritageClause(token, types) {\n const node = createBaseNode(299 /* HeritageClause */);\n node.token = token;\n node.types = createNodeArray(types);\n node.transformFlags |= propagateChildrenFlags(node.types);\n switch (token) {\n case 96 /* ExtendsKeyword */:\n node.transformFlags |= 1024 /* ContainsES2015 */;\n break;\n case 119 /* ImplementsKeyword */:\n node.transformFlags |= 1 /* ContainsTypeScript */;\n break;\n default:\n return Debug.assertNever(token);\n }\n return node;\n }\n function updateHeritageClause(node, types) {\n return node.types !== types ? update(createHeritageClause(node.token, types), node) : node;\n }\n function createCatchClause(variableDeclaration, block) {\n const node = createBaseNode(300 /* CatchClause */);\n node.variableDeclaration = asVariableDeclaration(variableDeclaration);\n node.block = block;\n node.transformFlags |= propagateChildFlags(node.variableDeclaration) | propagateChildFlags(node.block) | (!variableDeclaration ? 64 /* ContainsES2019 */ : 0 /* None */);\n node.locals = void 0;\n node.nextContainer = void 0;\n return node;\n }\n function updateCatchClause(node, variableDeclaration, block) {\n return node.variableDeclaration !== variableDeclaration || node.block !== block ? update(createCatchClause(variableDeclaration, block), node) : node;\n }\n function createPropertyAssignment(name, initializer) {\n const node = createBaseDeclaration(304 /* PropertyAssignment */);\n node.name = asName(name);\n node.initializer = parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer);\n node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer);\n node.modifiers = void 0;\n node.questionToken = void 0;\n node.exclamationToken = void 0;\n node.jsDoc = void 0;\n return node;\n }\n function updatePropertyAssignment(node, name, initializer) {\n return node.name !== name || node.initializer !== initializer ? finishUpdatePropertyAssignment(createPropertyAssignment(name, initializer), node) : node;\n }\n function finishUpdatePropertyAssignment(updated, original) {\n if (updated !== original) {\n updated.modifiers = original.modifiers;\n updated.questionToken = original.questionToken;\n updated.exclamationToken = original.exclamationToken;\n }\n return update(updated, original);\n }\n function createShorthandPropertyAssignment(name, objectAssignmentInitializer) {\n const node = createBaseDeclaration(305 /* ShorthandPropertyAssignment */);\n node.name = asName(name);\n node.objectAssignmentInitializer = objectAssignmentInitializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(objectAssignmentInitializer);\n node.transformFlags |= propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.objectAssignmentInitializer) | 1024 /* ContainsES2015 */;\n node.equalsToken = void 0;\n node.modifiers = void 0;\n node.questionToken = void 0;\n node.exclamationToken = void 0;\n node.jsDoc = void 0;\n return node;\n }\n function updateShorthandPropertyAssignment(node, name, objectAssignmentInitializer) {\n return node.name !== name || node.objectAssignmentInitializer !== objectAssignmentInitializer ? finishUpdateShorthandPropertyAssignment(createShorthandPropertyAssignment(name, objectAssignmentInitializer), node) : node;\n }\n function finishUpdateShorthandPropertyAssignment(updated, original) {\n if (updated !== original) {\n updated.modifiers = original.modifiers;\n updated.questionToken = original.questionToken;\n updated.exclamationToken = original.exclamationToken;\n updated.equalsToken = original.equalsToken;\n }\n return update(updated, original);\n }\n function createSpreadAssignment(expression) {\n const node = createBaseDeclaration(306 /* SpreadAssignment */);\n node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */;\n node.jsDoc = void 0;\n return node;\n }\n function updateSpreadAssignment(node, expression) {\n return node.expression !== expression ? update(createSpreadAssignment(expression), node) : node;\n }\n function createEnumMember(name, initializer) {\n const node = createBaseDeclaration(307 /* EnumMember */);\n node.name = asName(name);\n node.initializer = initializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer);\n node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 1 /* ContainsTypeScript */;\n node.jsDoc = void 0;\n return node;\n }\n function updateEnumMember(node, name, initializer) {\n return node.name !== name || node.initializer !== initializer ? update(createEnumMember(name, initializer), node) : node;\n }\n function createSourceFile2(statements, endOfFileToken, flags2) {\n const node = baseFactory2.createBaseSourceFileNode(308 /* SourceFile */);\n node.statements = createNodeArray(statements);\n node.endOfFileToken = endOfFileToken;\n node.flags |= flags2;\n node.text = \"\";\n node.fileName = \"\";\n node.path = \"\";\n node.resolvedPath = \"\";\n node.originalFileName = \"\";\n node.languageVersion = 1 /* ES5 */;\n node.languageVariant = 0;\n node.scriptKind = 0;\n node.isDeclarationFile = false;\n node.hasNoDefaultLib = false;\n node.transformFlags |= propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken);\n node.locals = void 0;\n node.nextContainer = void 0;\n node.endFlowNode = void 0;\n node.nodeCount = 0;\n node.identifierCount = 0;\n node.symbolCount = 0;\n node.parseDiagnostics = void 0;\n node.bindDiagnostics = void 0;\n node.bindSuggestionDiagnostics = void 0;\n node.lineMap = void 0;\n node.externalModuleIndicator = void 0;\n node.setExternalModuleIndicator = void 0;\n node.pragmas = void 0;\n node.checkJsDirective = void 0;\n node.referencedFiles = void 0;\n node.typeReferenceDirectives = void 0;\n node.libReferenceDirectives = void 0;\n node.amdDependencies = void 0;\n node.commentDirectives = void 0;\n node.identifiers = void 0;\n node.packageJsonLocations = void 0;\n node.packageJsonScope = void 0;\n node.imports = void 0;\n node.moduleAugmentations = void 0;\n node.ambientModuleNames = void 0;\n node.classifiableNames = void 0;\n node.impliedNodeFormat = void 0;\n return node;\n }\n function createRedirectedSourceFile(redirectInfo) {\n const node = Object.create(redirectInfo.redirectTarget);\n Object.defineProperties(node, {\n id: {\n get() {\n return this.redirectInfo.redirectTarget.id;\n },\n set(value) {\n this.redirectInfo.redirectTarget.id = value;\n }\n },\n symbol: {\n get() {\n return this.redirectInfo.redirectTarget.symbol;\n },\n set(value) {\n this.redirectInfo.redirectTarget.symbol = value;\n }\n }\n });\n node.redirectInfo = redirectInfo;\n return node;\n }\n function cloneRedirectedSourceFile(source) {\n const node = createRedirectedSourceFile(source.redirectInfo);\n node.flags |= source.flags & ~16 /* Synthesized */;\n node.fileName = source.fileName;\n node.path = source.path;\n node.resolvedPath = source.resolvedPath;\n node.originalFileName = source.originalFileName;\n node.packageJsonLocations = source.packageJsonLocations;\n node.packageJsonScope = source.packageJsonScope;\n node.emitNode = void 0;\n return node;\n }\n function cloneSourceFileWorker(source) {\n const node = baseFactory2.createBaseSourceFileNode(308 /* SourceFile */);\n node.flags |= source.flags & ~16 /* Synthesized */;\n for (const p in source) {\n if (hasProperty(node, p) || !hasProperty(source, p)) {\n continue;\n }\n if (p === \"emitNode\") {\n node.emitNode = void 0;\n continue;\n }\n node[p] = source[p];\n }\n return node;\n }\n function cloneSourceFile(source) {\n const node = source.redirectInfo ? cloneRedirectedSourceFile(source) : cloneSourceFileWorker(source);\n setOriginal(node, source);\n return node;\n }\n function cloneSourceFileWithChanges(source, statements, isDeclarationFile, referencedFiles, typeReferences, hasNoDefaultLib, libReferences) {\n const node = cloneSourceFile(source);\n node.statements = createNodeArray(statements);\n node.isDeclarationFile = isDeclarationFile;\n node.referencedFiles = referencedFiles;\n node.typeReferenceDirectives = typeReferences;\n node.hasNoDefaultLib = hasNoDefaultLib;\n node.libReferenceDirectives = libReferences;\n node.transformFlags = propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken);\n return node;\n }\n function updateSourceFile2(node, statements, isDeclarationFile = node.isDeclarationFile, referencedFiles = node.referencedFiles, typeReferenceDirectives = node.typeReferenceDirectives, hasNoDefaultLib = node.hasNoDefaultLib, libReferenceDirectives = node.libReferenceDirectives) {\n return node.statements !== statements || node.isDeclarationFile !== isDeclarationFile || node.referencedFiles !== referencedFiles || node.typeReferenceDirectives !== typeReferenceDirectives || node.hasNoDefaultLib !== hasNoDefaultLib || node.libReferenceDirectives !== libReferenceDirectives ? update(cloneSourceFileWithChanges(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, hasNoDefaultLib, libReferenceDirectives), node) : node;\n }\n function createBundle(sourceFiles) {\n const node = createBaseNode(309 /* Bundle */);\n node.sourceFiles = sourceFiles;\n node.syntheticFileReferences = void 0;\n node.syntheticTypeReferences = void 0;\n node.syntheticLibReferences = void 0;\n node.hasNoDefaultLib = void 0;\n return node;\n }\n function updateBundle(node, sourceFiles) {\n return node.sourceFiles !== sourceFiles ? update(createBundle(sourceFiles), node) : node;\n }\n function createSyntheticExpression(type, isSpread = false, tupleNameSource) {\n const node = createBaseNode(238 /* SyntheticExpression */);\n node.type = type;\n node.isSpread = isSpread;\n node.tupleNameSource = tupleNameSource;\n return node;\n }\n function createSyntaxList3(children) {\n const node = createBaseNode(353 /* SyntaxList */);\n node._children = children;\n return node;\n }\n function createNotEmittedStatement(original) {\n const node = createBaseNode(354 /* NotEmittedStatement */);\n node.original = original;\n setTextRange(node, original);\n return node;\n }\n function createPartiallyEmittedExpression(expression, original) {\n const node = createBaseNode(356 /* PartiallyEmittedExpression */);\n node.expression = expression;\n node.original = original;\n node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n setTextRange(node, original);\n return node;\n }\n function updatePartiallyEmittedExpression(node, expression) {\n return node.expression !== expression ? update(createPartiallyEmittedExpression(expression, node.original), node) : node;\n }\n function createNotEmittedTypeElement() {\n return createBaseNode(355 /* NotEmittedTypeElement */);\n }\n function flattenCommaElements(node) {\n if (nodeIsSynthesized(node) && !isParseTreeNode(node) && !node.original && !node.emitNode && !node.id) {\n if (isCommaListExpression(node)) {\n return node.elements;\n }\n if (isBinaryExpression(node) && isCommaToken(node.operatorToken)) {\n return [node.left, node.right];\n }\n }\n return node;\n }\n function createCommaListExpression(elements) {\n const node = createBaseNode(357 /* CommaListExpression */);\n node.elements = createNodeArray(sameFlatMap(elements, flattenCommaElements));\n node.transformFlags |= propagateChildrenFlags(node.elements);\n return node;\n }\n function updateCommaListExpression(node, elements) {\n return node.elements !== elements ? update(createCommaListExpression(elements), node) : node;\n }\n function createSyntheticReferenceExpression(expression, thisArg) {\n const node = createBaseNode(358 /* SyntheticReferenceExpression */);\n node.expression = expression;\n node.thisArg = thisArg;\n node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thisArg);\n return node;\n }\n function updateSyntheticReferenceExpression(node, expression, thisArg) {\n return node.expression !== expression || node.thisArg !== thisArg ? update(createSyntheticReferenceExpression(expression, thisArg), node) : node;\n }\n function cloneGeneratedIdentifier(node) {\n const clone2 = createBaseIdentifier(node.escapedText);\n clone2.flags |= node.flags & ~16 /* Synthesized */;\n clone2.transformFlags = node.transformFlags;\n setOriginal(clone2, node);\n setIdentifierAutoGenerate(clone2, { ...node.emitNode.autoGenerate });\n return clone2;\n }\n function cloneIdentifier(node) {\n const clone2 = createBaseIdentifier(node.escapedText);\n clone2.flags |= node.flags & ~16 /* Synthesized */;\n clone2.jsDoc = node.jsDoc;\n clone2.flowNode = node.flowNode;\n clone2.symbol = node.symbol;\n clone2.transformFlags = node.transformFlags;\n setOriginal(clone2, node);\n const typeArguments = getIdentifierTypeArguments(node);\n if (typeArguments) setIdentifierTypeArguments(clone2, typeArguments);\n return clone2;\n }\n function cloneGeneratedPrivateIdentifier(node) {\n const clone2 = createBasePrivateIdentifier(node.escapedText);\n clone2.flags |= node.flags & ~16 /* Synthesized */;\n clone2.transformFlags = node.transformFlags;\n setOriginal(clone2, node);\n setIdentifierAutoGenerate(clone2, { ...node.emitNode.autoGenerate });\n return clone2;\n }\n function clonePrivateIdentifier(node) {\n const clone2 = createBasePrivateIdentifier(node.escapedText);\n clone2.flags |= node.flags & ~16 /* Synthesized */;\n clone2.transformFlags = node.transformFlags;\n setOriginal(clone2, node);\n return clone2;\n }\n function cloneNode(node) {\n if (node === void 0) {\n return node;\n }\n if (isSourceFile(node)) {\n return cloneSourceFile(node);\n }\n if (isGeneratedIdentifier(node)) {\n return cloneGeneratedIdentifier(node);\n }\n if (isIdentifier(node)) {\n return cloneIdentifier(node);\n }\n if (isGeneratedPrivateIdentifier(node)) {\n return cloneGeneratedPrivateIdentifier(node);\n }\n if (isPrivateIdentifier(node)) {\n return clonePrivateIdentifier(node);\n }\n const clone2 = !isNodeKind(node.kind) ? baseFactory2.createBaseTokenNode(node.kind) : baseFactory2.createBaseNode(node.kind);\n clone2.flags |= node.flags & ~16 /* Synthesized */;\n clone2.transformFlags = node.transformFlags;\n setOriginal(clone2, node);\n for (const key in node) {\n if (hasProperty(clone2, key) || !hasProperty(node, key)) {\n continue;\n }\n clone2[key] = node[key];\n }\n return clone2;\n }\n function createImmediatelyInvokedFunctionExpression(statements, param, paramValue) {\n return createCallExpression(\n createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n param ? [param] : [],\n /*type*/\n void 0,\n createBlock(\n statements,\n /*multiLine*/\n true\n )\n ),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n paramValue ? [paramValue] : []\n );\n }\n function createImmediatelyInvokedArrowFunction(statements, param, paramValue) {\n return createCallExpression(\n createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n param ? [param] : [],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n createBlock(\n statements,\n /*multiLine*/\n true\n )\n ),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n paramValue ? [paramValue] : []\n );\n }\n function createVoidZero() {\n return createVoidExpression(createNumericLiteral(\"0\"));\n }\n function createExportDefault(expression) {\n return createExportAssignment2(\n /*modifiers*/\n void 0,\n /*isExportEquals*/\n false,\n expression\n );\n }\n function createExternalModuleExport(exportName) {\n return createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n createNamedExports([\n createExportSpecifier(\n /*isTypeOnly*/\n false,\n /*propertyName*/\n void 0,\n exportName\n )\n ])\n );\n }\n function createTypeCheck(value, tag) {\n return tag === \"null\" ? factory2.createStrictEquality(value, createNull()) : tag === \"undefined\" ? factory2.createStrictEquality(value, createVoidZero()) : factory2.createStrictEquality(createTypeOfExpression(value), createStringLiteral(tag));\n }\n function createIsNotTypeCheck(value, tag) {\n return tag === \"null\" ? factory2.createStrictInequality(value, createNull()) : tag === \"undefined\" ? factory2.createStrictInequality(value, createVoidZero()) : factory2.createStrictInequality(createTypeOfExpression(value), createStringLiteral(tag));\n }\n function createMethodCall(object, methodName, argumentsList) {\n if (isCallChain(object)) {\n return createCallChain(\n createPropertyAccessChain(\n object,\n /*questionDotToken*/\n void 0,\n methodName\n ),\n /*questionDotToken*/\n void 0,\n /*typeArguments*/\n void 0,\n argumentsList\n );\n }\n return createCallExpression(\n createPropertyAccessExpression(object, methodName),\n /*typeArguments*/\n void 0,\n argumentsList\n );\n }\n function createFunctionBindCall(target, thisArg, argumentsList) {\n return createMethodCall(target, \"bind\", [thisArg, ...argumentsList]);\n }\n function createFunctionCallCall(target, thisArg, argumentsList) {\n return createMethodCall(target, \"call\", [thisArg, ...argumentsList]);\n }\n function createFunctionApplyCall(target, thisArg, argumentsExpression) {\n return createMethodCall(target, \"apply\", [thisArg, argumentsExpression]);\n }\n function createGlobalMethodCall(globalObjectName, methodName, argumentsList) {\n return createMethodCall(createIdentifier(globalObjectName), methodName, argumentsList);\n }\n function createArraySliceCall(array, start) {\n return createMethodCall(array, \"slice\", start === void 0 ? [] : [asExpression(start)]);\n }\n function createArrayConcatCall(array, argumentsList) {\n return createMethodCall(array, \"concat\", argumentsList);\n }\n function createObjectDefinePropertyCall(target, propertyName, attributes) {\n return createGlobalMethodCall(\"Object\", \"defineProperty\", [target, asExpression(propertyName), attributes]);\n }\n function createObjectGetOwnPropertyDescriptorCall(target, propertyName) {\n return createGlobalMethodCall(\"Object\", \"getOwnPropertyDescriptor\", [target, asExpression(propertyName)]);\n }\n function createReflectGetCall(target, propertyKey, receiver) {\n return createGlobalMethodCall(\"Reflect\", \"get\", receiver ? [target, propertyKey, receiver] : [target, propertyKey]);\n }\n function createReflectSetCall(target, propertyKey, value, receiver) {\n return createGlobalMethodCall(\"Reflect\", \"set\", receiver ? [target, propertyKey, value, receiver] : [target, propertyKey, value]);\n }\n function tryAddPropertyAssignment(properties, propertyName, expression) {\n if (expression) {\n properties.push(createPropertyAssignment(propertyName, expression));\n return true;\n }\n return false;\n }\n function createPropertyDescriptor(attributes, singleLine) {\n const properties = [];\n tryAddPropertyAssignment(properties, \"enumerable\", asExpression(attributes.enumerable));\n tryAddPropertyAssignment(properties, \"configurable\", asExpression(attributes.configurable));\n let isData = tryAddPropertyAssignment(properties, \"writable\", asExpression(attributes.writable));\n isData = tryAddPropertyAssignment(properties, \"value\", attributes.value) || isData;\n let isAccessor2 = tryAddPropertyAssignment(properties, \"get\", attributes.get);\n isAccessor2 = tryAddPropertyAssignment(properties, \"set\", attributes.set) || isAccessor2;\n Debug.assert(!(isData && isAccessor2), \"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor.\");\n return createObjectLiteralExpression(properties, !singleLine);\n }\n function updateOuterExpression(outerExpression, expression) {\n switch (outerExpression.kind) {\n case 218 /* ParenthesizedExpression */:\n return updateParenthesizedExpression(outerExpression, expression);\n case 217 /* TypeAssertionExpression */:\n return updateTypeAssertion(outerExpression, outerExpression.type, expression);\n case 235 /* AsExpression */:\n return updateAsExpression(outerExpression, expression, outerExpression.type);\n case 239 /* SatisfiesExpression */:\n return updateSatisfiesExpression(outerExpression, expression, outerExpression.type);\n case 236 /* NonNullExpression */:\n return updateNonNullExpression(outerExpression, expression);\n case 234 /* ExpressionWithTypeArguments */:\n return updateExpressionWithTypeArguments(outerExpression, expression, outerExpression.typeArguments);\n case 356 /* PartiallyEmittedExpression */:\n return updatePartiallyEmittedExpression(outerExpression, expression);\n }\n }\n function isIgnorableParen(node) {\n return isParenthesizedExpression(node) && nodeIsSynthesized(node) && nodeIsSynthesized(getSourceMapRange(node)) && nodeIsSynthesized(getCommentRange(node)) && !some(getSyntheticLeadingComments(node)) && !some(getSyntheticTrailingComments(node));\n }\n function restoreOuterExpressions(outerExpression, innerExpression, kinds = 63 /* All */) {\n if (outerExpression && isOuterExpression(outerExpression, kinds) && !isIgnorableParen(outerExpression)) {\n return updateOuterExpression(\n outerExpression,\n restoreOuterExpressions(outerExpression.expression, innerExpression)\n );\n }\n return innerExpression;\n }\n function restoreEnclosingLabel(node, outermostLabeledStatement, afterRestoreLabelCallback) {\n if (!outermostLabeledStatement) {\n return node;\n }\n const updated = updateLabeledStatement(\n outermostLabeledStatement,\n outermostLabeledStatement.label,\n isLabeledStatement(outermostLabeledStatement.statement) ? restoreEnclosingLabel(node, outermostLabeledStatement.statement) : node\n );\n if (afterRestoreLabelCallback) {\n afterRestoreLabelCallback(outermostLabeledStatement);\n }\n return updated;\n }\n function shouldBeCapturedInTempVariable(node, cacheIdentifiers) {\n const target = skipParentheses(node);\n switch (target.kind) {\n case 80 /* Identifier */:\n return cacheIdentifiers;\n case 110 /* ThisKeyword */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n return false;\n case 210 /* ArrayLiteralExpression */:\n const elements = target.elements;\n if (elements.length === 0) {\n return false;\n }\n return true;\n case 211 /* ObjectLiteralExpression */:\n return target.properties.length > 0;\n default:\n return true;\n }\n }\n function createCallBinding(expression, recordTempVariable, languageVersion, cacheIdentifiers = false) {\n const callee = skipOuterExpressions(expression, 63 /* All */);\n let thisArg;\n let target;\n if (isSuperProperty(callee)) {\n thisArg = createThis();\n target = callee;\n } else if (isSuperKeyword(callee)) {\n thisArg = createThis();\n target = languageVersion !== void 0 && languageVersion < 2 /* ES2015 */ ? setTextRange(createIdentifier(\"_super\"), callee) : callee;\n } else if (getEmitFlags(callee) & 8192 /* HelperName */) {\n thisArg = createVoidZero();\n target = parenthesizerRules().parenthesizeLeftSideOfAccess(\n callee,\n /*optionalChain*/\n false\n );\n } else if (isPropertyAccessExpression(callee)) {\n if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) {\n thisArg = createTempVariable(recordTempVariable);\n target = createPropertyAccessExpression(\n setTextRange(\n factory2.createAssignment(\n thisArg,\n callee.expression\n ),\n callee.expression\n ),\n callee.name\n );\n setTextRange(target, callee);\n } else {\n thisArg = callee.expression;\n target = callee;\n }\n } else if (isElementAccessExpression(callee)) {\n if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) {\n thisArg = createTempVariable(recordTempVariable);\n target = createElementAccessExpression(\n setTextRange(\n factory2.createAssignment(\n thisArg,\n callee.expression\n ),\n callee.expression\n ),\n callee.argumentExpression\n );\n setTextRange(target, callee);\n } else {\n thisArg = callee.expression;\n target = callee;\n }\n } else {\n thisArg = createVoidZero();\n target = parenthesizerRules().parenthesizeLeftSideOfAccess(\n expression,\n /*optionalChain*/\n false\n );\n }\n return { target, thisArg };\n }\n function createAssignmentTargetWrapper(paramName, expression) {\n return createPropertyAccessExpression(\n // Explicit parens required because of v8 regression (https://bugs.chromium.org/p/v8/issues/detail?id=9560)\n createParenthesizedExpression(\n createObjectLiteralExpression([\n createSetAccessorDeclaration(\n /*modifiers*/\n void 0,\n \"value\",\n [createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n paramName,\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n )],\n createBlock([\n createExpressionStatement(expression)\n ])\n )\n ])\n ),\n \"value\"\n );\n }\n function inlineExpressions(expressions) {\n return expressions.length > 10 ? createCommaListExpression(expressions) : reduceLeft(expressions, factory2.createComma);\n }\n function getName(node, allowComments, allowSourceMaps, emitFlags = 0, ignoreAssignedName) {\n const nodeName = ignoreAssignedName ? node && getNonAssignedNameOfDeclaration(node) : getNameOfDeclaration(node);\n if (nodeName && isIdentifier(nodeName) && !isGeneratedIdentifier(nodeName)) {\n const name = setParent(setTextRange(cloneNode(nodeName), nodeName), nodeName.parent);\n emitFlags |= getEmitFlags(nodeName);\n if (!allowSourceMaps) emitFlags |= 96 /* NoSourceMap */;\n if (!allowComments) emitFlags |= 3072 /* NoComments */;\n if (emitFlags) setEmitFlags(name, emitFlags);\n return name;\n }\n return getGeneratedNameForNode(node);\n }\n function getInternalName(node, allowComments, allowSourceMaps) {\n return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */ | 65536 /* InternalName */);\n }\n function getLocalName(node, allowComments, allowSourceMaps, ignoreAssignedName) {\n return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */, ignoreAssignedName);\n }\n function getExportName(node, allowComments, allowSourceMaps) {\n return getName(node, allowComments, allowSourceMaps, 16384 /* ExportName */);\n }\n function getDeclarationName(node, allowComments, allowSourceMaps) {\n return getName(node, allowComments, allowSourceMaps);\n }\n function getNamespaceMemberName(ns, name, allowComments, allowSourceMaps) {\n const qualifiedName = createPropertyAccessExpression(ns, nodeIsSynthesized(name) ? name : cloneNode(name));\n setTextRange(qualifiedName, name);\n let emitFlags = 0;\n if (!allowSourceMaps) emitFlags |= 96 /* NoSourceMap */;\n if (!allowComments) emitFlags |= 3072 /* NoComments */;\n if (emitFlags) setEmitFlags(qualifiedName, emitFlags);\n return qualifiedName;\n }\n function getExternalModuleOrNamespaceExportName(ns, node, allowComments, allowSourceMaps) {\n if (ns && hasSyntacticModifier(node, 32 /* Export */)) {\n return getNamespaceMemberName(ns, getName(node), allowComments, allowSourceMaps);\n }\n return getExportName(node, allowComments, allowSourceMaps);\n }\n function copyPrologue(source, target, ensureUseStrict2, visitor) {\n const offset = copyStandardPrologue(source, target, 0, ensureUseStrict2);\n return copyCustomPrologue(source, target, offset, visitor);\n }\n function isUseStrictPrologue2(node) {\n return isStringLiteral(node.expression) && node.expression.text === \"use strict\";\n }\n function createUseStrictPrologue() {\n return startOnNewLine(createExpressionStatement(createStringLiteral(\"use strict\")));\n }\n function copyStandardPrologue(source, target, statementOffset = 0, ensureUseStrict2) {\n Debug.assert(target.length === 0, \"Prologue directives should be at the first statement in the target statements array\");\n let foundUseStrict = false;\n const numStatements = source.length;\n while (statementOffset < numStatements) {\n const statement = source[statementOffset];\n if (isPrologueDirective(statement)) {\n if (isUseStrictPrologue2(statement)) {\n foundUseStrict = true;\n }\n target.push(statement);\n } else {\n break;\n }\n statementOffset++;\n }\n if (ensureUseStrict2 && !foundUseStrict) {\n target.push(createUseStrictPrologue());\n }\n return statementOffset;\n }\n function copyCustomPrologue(source, target, statementOffset, visitor, filter2 = returnTrue) {\n const numStatements = source.length;\n while (statementOffset !== void 0 && statementOffset < numStatements) {\n const statement = source[statementOffset];\n if (getEmitFlags(statement) & 2097152 /* CustomPrologue */ && filter2(statement)) {\n append(target, visitor ? visitNode(statement, visitor, isStatement) : statement);\n } else {\n break;\n }\n statementOffset++;\n }\n return statementOffset;\n }\n function ensureUseStrict(statements) {\n const foundUseStrict = findUseStrictPrologue(statements);\n if (!foundUseStrict) {\n return setTextRange(createNodeArray([createUseStrictPrologue(), ...statements]), statements);\n }\n return statements;\n }\n function liftToBlock(nodes) {\n Debug.assert(every(nodes, isStatementOrBlock), \"Cannot lift nodes to a Block.\");\n return singleOrUndefined(nodes) || createBlock(nodes);\n }\n function findSpanEnd(array, test, start) {\n let i = start;\n while (i < array.length && test(array[i])) {\n i++;\n }\n return i;\n }\n function mergeLexicalEnvironment(statements, declarations) {\n if (!some(declarations)) {\n return statements;\n }\n const leftStandardPrologueEnd = findSpanEnd(statements, isPrologueDirective, 0);\n const leftHoistedFunctionsEnd = findSpanEnd(statements, isHoistedFunction, leftStandardPrologueEnd);\n const leftHoistedVariablesEnd = findSpanEnd(statements, isHoistedVariableStatement, leftHoistedFunctionsEnd);\n const rightStandardPrologueEnd = findSpanEnd(declarations, isPrologueDirective, 0);\n const rightHoistedFunctionsEnd = findSpanEnd(declarations, isHoistedFunction, rightStandardPrologueEnd);\n const rightHoistedVariablesEnd = findSpanEnd(declarations, isHoistedVariableStatement, rightHoistedFunctionsEnd);\n const rightCustomPrologueEnd = findSpanEnd(declarations, isCustomPrologue, rightHoistedVariablesEnd);\n Debug.assert(rightCustomPrologueEnd === declarations.length, \"Expected declarations to be valid standard or custom prologues\");\n const left = isNodeArray(statements) ? statements.slice() : statements;\n if (rightCustomPrologueEnd > rightHoistedVariablesEnd) {\n left.splice(leftHoistedVariablesEnd, 0, ...declarations.slice(rightHoistedVariablesEnd, rightCustomPrologueEnd));\n }\n if (rightHoistedVariablesEnd > rightHoistedFunctionsEnd) {\n left.splice(leftHoistedFunctionsEnd, 0, ...declarations.slice(rightHoistedFunctionsEnd, rightHoistedVariablesEnd));\n }\n if (rightHoistedFunctionsEnd > rightStandardPrologueEnd) {\n left.splice(leftStandardPrologueEnd, 0, ...declarations.slice(rightStandardPrologueEnd, rightHoistedFunctionsEnd));\n }\n if (rightStandardPrologueEnd > 0) {\n if (leftStandardPrologueEnd === 0) {\n left.splice(0, 0, ...declarations.slice(0, rightStandardPrologueEnd));\n } else {\n const leftPrologues = /* @__PURE__ */ new Map();\n for (let i = 0; i < leftStandardPrologueEnd; i++) {\n const leftPrologue = statements[i];\n leftPrologues.set(leftPrologue.expression.text, true);\n }\n for (let i = rightStandardPrologueEnd - 1; i >= 0; i--) {\n const rightPrologue = declarations[i];\n if (!leftPrologues.has(rightPrologue.expression.text)) {\n left.unshift(rightPrologue);\n }\n }\n }\n }\n if (isNodeArray(statements)) {\n return setTextRange(createNodeArray(left, statements.hasTrailingComma), statements);\n }\n return statements;\n }\n function replaceModifiers(node, modifiers) {\n let modifierArray;\n if (typeof modifiers === \"number\") {\n modifierArray = createModifiersFromModifierFlags(modifiers);\n } else {\n modifierArray = modifiers;\n }\n return isTypeParameterDeclaration(node) ? updateTypeParameterDeclaration(node, modifierArray, node.name, node.constraint, node.default) : isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isConstructorTypeNode(node) ? updateConstructorTypeNode1(node, modifierArray, node.typeParameters, node.parameters, node.type) : isPropertySignature(node) ? updatePropertySignature(node, modifierArray, node.name, node.questionToken, node.type) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : isMethodSignature(node) ? updateMethodSignature(node, modifierArray, node.name, node.questionToken, node.typeParameters, node.parameters, node.type) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isConstructorDeclaration(node) ? updateConstructorDeclaration(node, modifierArray, node.parameters, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isIndexSignatureDeclaration(node) ? updateIndexSignature(node, modifierArray, node.parameters, node.type) : isFunctionExpression(node) ? updateFunctionExpression(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isArrowFunction(node) ? updateArrowFunction(node, modifierArray, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isVariableStatement(node) ? updateVariableStatement(node, modifierArray, node.declarationList) : isFunctionDeclaration(node) ? updateFunctionDeclaration(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isInterfaceDeclaration(node) ? updateInterfaceDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isTypeAliasDeclaration(node) ? updateTypeAliasDeclaration(node, modifierArray, node.name, node.typeParameters, node.type) : isEnumDeclaration(node) ? updateEnumDeclaration(node, modifierArray, node.name, node.members) : isModuleDeclaration(node) ? updateModuleDeclaration(node, modifierArray, node.name, node.body) : isImportEqualsDeclaration(node) ? updateImportEqualsDeclaration(node, modifierArray, node.isTypeOnly, node.name, node.moduleReference) : isImportDeclaration(node) ? updateImportDeclaration(node, modifierArray, node.importClause, node.moduleSpecifier, node.attributes) : isExportAssignment(node) ? updateExportAssignment(node, modifierArray, node.expression) : isExportDeclaration(node) ? updateExportDeclaration(node, modifierArray, node.isTypeOnly, node.exportClause, node.moduleSpecifier, node.attributes) : Debug.assertNever(node);\n }\n function replaceDecoratorsAndModifiers(node, modifierArray) {\n return isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : Debug.assertNever(node);\n }\n function replacePropertyName(node, name) {\n switch (node.kind) {\n case 178 /* GetAccessor */:\n return updateGetAccessorDeclaration(node, node.modifiers, name, node.parameters, node.type, node.body);\n case 179 /* SetAccessor */:\n return updateSetAccessorDeclaration(node, node.modifiers, name, node.parameters, node.body);\n case 175 /* MethodDeclaration */:\n return updateMethodDeclaration(node, node.modifiers, node.asteriskToken, name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body);\n case 174 /* MethodSignature */:\n return updateMethodSignature(node, node.modifiers, name, node.questionToken, node.typeParameters, node.parameters, node.type);\n case 173 /* PropertyDeclaration */:\n return updatePropertyDeclaration2(node, node.modifiers, name, node.questionToken ?? node.exclamationToken, node.type, node.initializer);\n case 172 /* PropertySignature */:\n return updatePropertySignature(node, node.modifiers, name, node.questionToken, node.type);\n case 304 /* PropertyAssignment */:\n return updatePropertyAssignment(node, name, node.initializer);\n }\n }\n function asNodeArray(array) {\n return array ? createNodeArray(array) : void 0;\n }\n function asName(name) {\n return typeof name === \"string\" ? createIdentifier(name) : name;\n }\n function asExpression(value) {\n return typeof value === \"string\" ? createStringLiteral(value) : typeof value === \"number\" ? createNumericLiteral(value) : typeof value === \"boolean\" ? value ? createTrue() : createFalse() : value;\n }\n function asInitializer(node) {\n return node && parenthesizerRules().parenthesizeExpressionForDisallowedComma(node);\n }\n function asToken(value) {\n return typeof value === \"number\" ? createToken(value) : value;\n }\n function asEmbeddedStatement(statement) {\n return statement && isNotEmittedStatement(statement) ? setTextRange(setOriginal(createEmptyStatement(), statement), statement) : statement;\n }\n function asVariableDeclaration(variableDeclaration) {\n if (typeof variableDeclaration === \"string\" || variableDeclaration && !isVariableDeclaration(variableDeclaration)) {\n return createVariableDeclaration(\n variableDeclaration,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n }\n return variableDeclaration;\n }\n function update(updated, original) {\n if (updated !== original) {\n setOriginal(updated, original);\n setTextRange(updated, original);\n }\n return updated;\n }\n}\nfunction getDefaultTagNameForKind(kind) {\n switch (kind) {\n case 345 /* JSDocTypeTag */:\n return \"type\";\n case 343 /* JSDocReturnTag */:\n return \"returns\";\n case 344 /* JSDocThisTag */:\n return \"this\";\n case 341 /* JSDocEnumTag */:\n return \"enum\";\n case 331 /* JSDocAuthorTag */:\n return \"author\";\n case 333 /* JSDocClassTag */:\n return \"class\";\n case 334 /* JSDocPublicTag */:\n return \"public\";\n case 335 /* JSDocPrivateTag */:\n return \"private\";\n case 336 /* JSDocProtectedTag */:\n return \"protected\";\n case 337 /* JSDocReadonlyTag */:\n return \"readonly\";\n case 338 /* JSDocOverrideTag */:\n return \"override\";\n case 346 /* JSDocTemplateTag */:\n return \"template\";\n case 347 /* JSDocTypedefTag */:\n return \"typedef\";\n case 342 /* JSDocParameterTag */:\n return \"param\";\n case 349 /* JSDocPropertyTag */:\n return \"prop\";\n case 339 /* JSDocCallbackTag */:\n return \"callback\";\n case 340 /* JSDocOverloadTag */:\n return \"overload\";\n case 329 /* JSDocAugmentsTag */:\n return \"augments\";\n case 330 /* JSDocImplementsTag */:\n return \"implements\";\n case 352 /* JSDocImportTag */:\n return \"import\";\n default:\n return Debug.fail(`Unsupported kind: ${Debug.formatSyntaxKind(kind)}`);\n }\n}\nvar rawTextScanner;\nvar invalidValueSentinel = {};\nfunction getCookedText(kind, rawText) {\n if (!rawTextScanner) {\n rawTextScanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false,\n 0 /* Standard */\n );\n }\n switch (kind) {\n case 15 /* NoSubstitutionTemplateLiteral */:\n rawTextScanner.setText(\"`\" + rawText + \"`\");\n break;\n case 16 /* TemplateHead */:\n rawTextScanner.setText(\"`\" + rawText + \"${\");\n break;\n case 17 /* TemplateMiddle */:\n rawTextScanner.setText(\"}\" + rawText + \"${\");\n break;\n case 18 /* TemplateTail */:\n rawTextScanner.setText(\"}\" + rawText + \"`\");\n break;\n }\n let token = rawTextScanner.scan();\n if (token === 20 /* CloseBraceToken */) {\n token = rawTextScanner.reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n );\n }\n if (rawTextScanner.isUnterminated()) {\n rawTextScanner.setText(void 0);\n return invalidValueSentinel;\n }\n let tokenValue;\n switch (token) {\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 16 /* TemplateHead */:\n case 17 /* TemplateMiddle */:\n case 18 /* TemplateTail */:\n tokenValue = rawTextScanner.getTokenValue();\n break;\n }\n if (tokenValue === void 0 || rawTextScanner.scan() !== 1 /* EndOfFileToken */) {\n rawTextScanner.setText(void 0);\n return invalidValueSentinel;\n }\n rawTextScanner.setText(void 0);\n return tokenValue;\n}\nfunction propagateNameFlags(node) {\n return node && isIdentifier(node) ? propagateIdentifierNameFlags(node) : propagateChildFlags(node);\n}\nfunction propagateIdentifierNameFlags(node) {\n return propagateChildFlags(node) & ~67108864 /* ContainsPossibleTopLevelAwait */;\n}\nfunction propagatePropertyNameFlagsOfChild(node, transformFlags) {\n return transformFlags | node.transformFlags & 134234112 /* PropertyNamePropagatingFlags */;\n}\nfunction propagateChildFlags(child) {\n if (!child) return 0 /* None */;\n const childFlags = child.transformFlags & ~getTransformFlagsSubtreeExclusions(child.kind);\n return isNamedDeclaration(child) && isPropertyName(child.name) ? propagatePropertyNameFlagsOfChild(child.name, childFlags) : childFlags;\n}\nfunction propagateChildrenFlags(children) {\n return children ? children.transformFlags : 0 /* None */;\n}\nfunction aggregateChildrenFlags(children) {\n let subtreeFlags = 0 /* None */;\n for (const child of children) {\n subtreeFlags |= propagateChildFlags(child);\n }\n children.transformFlags = subtreeFlags;\n}\nfunction getTransformFlagsSubtreeExclusions(kind) {\n if (kind >= 183 /* FirstTypeNode */ && kind <= 206 /* LastTypeNode */) {\n return -2 /* TypeExcludes */;\n }\n switch (kind) {\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 210 /* ArrayLiteralExpression */:\n return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;\n case 268 /* ModuleDeclaration */:\n return -1941676032 /* ModuleExcludes */;\n case 170 /* Parameter */:\n return -2147483648 /* ParameterExcludes */;\n case 220 /* ArrowFunction */:\n return -2072174592 /* ArrowFunctionExcludes */;\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n return -1937940480 /* FunctionExcludes */;\n case 262 /* VariableDeclarationList */:\n return -2146893824 /* VariableDeclarationListExcludes */;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return -2147344384 /* ClassExcludes */;\n case 177 /* Constructor */:\n return -1937948672 /* ConstructorExcludes */;\n case 173 /* PropertyDeclaration */:\n return -2013249536 /* PropertyExcludes */;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return -2005057536 /* MethodOrAccessorExcludes */;\n case 133 /* AnyKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 146 /* NeverKeyword */:\n case 154 /* StringKeyword */:\n case 151 /* ObjectKeyword */:\n case 136 /* BooleanKeyword */:\n case 155 /* SymbolKeyword */:\n case 116 /* VoidKeyword */:\n case 169 /* TypeParameter */:\n case 172 /* PropertySignature */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return -2 /* TypeExcludes */;\n case 211 /* ObjectLiteralExpression */:\n return -2147278848 /* ObjectLiteralExcludes */;\n case 300 /* CatchClause */:\n return -2147418112 /* CatchClauseExcludes */;\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n return -2147450880 /* BindingPatternExcludes */;\n case 217 /* TypeAssertionExpression */:\n case 239 /* SatisfiesExpression */:\n case 235 /* AsExpression */:\n case 356 /* PartiallyEmittedExpression */:\n case 218 /* ParenthesizedExpression */:\n case 108 /* SuperKeyword */:\n return -2147483648 /* OuterExpressionExcludes */;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return -2147483648 /* PropertyAccessExcludes */;\n default:\n return -2147483648 /* NodeExcludes */;\n }\n}\nvar baseFactory = createBaseNodeFactory();\nfunction makeSynthetic(node) {\n node.flags |= 16 /* Synthesized */;\n return node;\n}\nvar syntheticFactory = {\n createBaseSourceFileNode: (kind) => makeSynthetic(baseFactory.createBaseSourceFileNode(kind)),\n createBaseIdentifierNode: (kind) => makeSynthetic(baseFactory.createBaseIdentifierNode(kind)),\n createBasePrivateIdentifierNode: (kind) => makeSynthetic(baseFactory.createBasePrivateIdentifierNode(kind)),\n createBaseTokenNode: (kind) => makeSynthetic(baseFactory.createBaseTokenNode(kind)),\n createBaseNode: (kind) => makeSynthetic(baseFactory.createBaseNode(kind))\n};\nvar factory = createNodeFactory(4 /* NoIndentationOnFreshPropertyAccess */, syntheticFactory);\nvar SourceMapSource2;\nfunction createSourceMapSource(fileName, text, skipTrivia2) {\n return new (SourceMapSource2 || (SourceMapSource2 = objectAllocator.getSourceMapSourceConstructor()))(fileName, text, skipTrivia2);\n}\nfunction setOriginalNode(node, original) {\n if (node.original !== original) {\n node.original = original;\n if (original) {\n const emitNode = original.emitNode;\n if (emitNode) node.emitNode = mergeEmitNode(emitNode, node.emitNode);\n }\n }\n return node;\n}\nfunction mergeEmitNode(sourceEmitNode, destEmitNode) {\n const {\n flags,\n internalFlags,\n leadingComments,\n trailingComments,\n commentRange,\n sourceMapRange,\n tokenSourceMapRanges,\n constantValue,\n helpers,\n startsOnNewLine,\n snippetElement,\n classThis,\n assignedName\n } = sourceEmitNode;\n if (!destEmitNode) destEmitNode = {};\n if (flags) {\n destEmitNode.flags = flags;\n }\n if (internalFlags) {\n destEmitNode.internalFlags = internalFlags & ~8 /* Immutable */;\n }\n if (leadingComments) {\n destEmitNode.leadingComments = addRange(leadingComments.slice(), destEmitNode.leadingComments);\n }\n if (trailingComments) {\n destEmitNode.trailingComments = addRange(trailingComments.slice(), destEmitNode.trailingComments);\n }\n if (commentRange) {\n destEmitNode.commentRange = commentRange;\n }\n if (sourceMapRange) {\n destEmitNode.sourceMapRange = sourceMapRange;\n }\n if (tokenSourceMapRanges) {\n destEmitNode.tokenSourceMapRanges = mergeTokenSourceMapRanges(tokenSourceMapRanges, destEmitNode.tokenSourceMapRanges);\n }\n if (constantValue !== void 0) {\n destEmitNode.constantValue = constantValue;\n }\n if (helpers) {\n for (const helper of helpers) {\n destEmitNode.helpers = appendIfUnique(destEmitNode.helpers, helper);\n }\n }\n if (startsOnNewLine !== void 0) {\n destEmitNode.startsOnNewLine = startsOnNewLine;\n }\n if (snippetElement !== void 0) {\n destEmitNode.snippetElement = snippetElement;\n }\n if (classThis) {\n destEmitNode.classThis = classThis;\n }\n if (assignedName) {\n destEmitNode.assignedName = assignedName;\n }\n return destEmitNode;\n}\nfunction mergeTokenSourceMapRanges(sourceRanges, destRanges) {\n if (!destRanges) destRanges = [];\n for (const key in sourceRanges) {\n destRanges[key] = sourceRanges[key];\n }\n return destRanges;\n}\n\n// src/compiler/factory/emitNode.ts\nfunction getOrCreateEmitNode(node) {\n if (!node.emitNode) {\n if (isParseTreeNode(node)) {\n if (node.kind === 308 /* SourceFile */) {\n return node.emitNode = { annotatedNodes: [node] };\n }\n const sourceFile = getSourceFileOfNode(getParseTreeNode(getSourceFileOfNode(node))) ?? Debug.fail(\"Could not determine parsed source file.\");\n getOrCreateEmitNode(sourceFile).annotatedNodes.push(node);\n }\n node.emitNode = {};\n } else {\n Debug.assert(!(node.emitNode.internalFlags & 8 /* Immutable */), \"Invalid attempt to mutate an immutable node.\");\n }\n return node.emitNode;\n}\nfunction disposeEmitNodes(sourceFile) {\n var _a, _b;\n const annotatedNodes = (_b = (_a = getSourceFileOfNode(getParseTreeNode(sourceFile))) == null ? void 0 : _a.emitNode) == null ? void 0 : _b.annotatedNodes;\n if (annotatedNodes) {\n for (const node of annotatedNodes) {\n node.emitNode = void 0;\n }\n }\n}\nfunction removeAllComments(node) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.flags |= 3072 /* NoComments */;\n emitNode.leadingComments = void 0;\n emitNode.trailingComments = void 0;\n return node;\n}\nfunction setEmitFlags(node, emitFlags) {\n getOrCreateEmitNode(node).flags = emitFlags;\n return node;\n}\nfunction addEmitFlags(node, emitFlags) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.flags = emitNode.flags | emitFlags;\n return node;\n}\nfunction setInternalEmitFlags(node, emitFlags) {\n getOrCreateEmitNode(node).internalFlags = emitFlags;\n return node;\n}\nfunction addInternalEmitFlags(node, emitFlags) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.internalFlags = emitNode.internalFlags | emitFlags;\n return node;\n}\nfunction getSourceMapRange(node) {\n var _a;\n return ((_a = node.emitNode) == null ? void 0 : _a.sourceMapRange) ?? node;\n}\nfunction setSourceMapRange(node, range) {\n getOrCreateEmitNode(node).sourceMapRange = range;\n return node;\n}\nfunction getTokenSourceMapRange(node, token) {\n var _a, _b;\n return (_b = (_a = node.emitNode) == null ? void 0 : _a.tokenSourceMapRanges) == null ? void 0 : _b[token];\n}\nfunction setTokenSourceMapRange(node, token, range) {\n const emitNode = getOrCreateEmitNode(node);\n const tokenSourceMapRanges = emitNode.tokenSourceMapRanges ?? (emitNode.tokenSourceMapRanges = []);\n tokenSourceMapRanges[token] = range;\n return node;\n}\nfunction getStartsOnNewLine(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.startsOnNewLine;\n}\nfunction setStartsOnNewLine(node, newLine) {\n getOrCreateEmitNode(node).startsOnNewLine = newLine;\n return node;\n}\nfunction getCommentRange(node) {\n var _a;\n return ((_a = node.emitNode) == null ? void 0 : _a.commentRange) ?? node;\n}\nfunction setCommentRange(node, range) {\n getOrCreateEmitNode(node).commentRange = range;\n return node;\n}\nfunction getSyntheticLeadingComments(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.leadingComments;\n}\nfunction setSyntheticLeadingComments(node, comments) {\n getOrCreateEmitNode(node).leadingComments = comments;\n return node;\n}\nfunction addSyntheticLeadingComment(node, kind, text, hasTrailingNewLine) {\n return setSyntheticLeadingComments(node, append(getSyntheticLeadingComments(node), { kind, pos: -1, end: -1, hasTrailingNewLine, text }));\n}\nfunction getSyntheticTrailingComments(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.trailingComments;\n}\nfunction setSyntheticTrailingComments(node, comments) {\n getOrCreateEmitNode(node).trailingComments = comments;\n return node;\n}\nfunction addSyntheticTrailingComment(node, kind, text, hasTrailingNewLine) {\n return setSyntheticTrailingComments(node, append(getSyntheticTrailingComments(node), { kind, pos: -1, end: -1, hasTrailingNewLine, text }));\n}\nfunction moveSyntheticComments(node, original) {\n setSyntheticLeadingComments(node, getSyntheticLeadingComments(original));\n setSyntheticTrailingComments(node, getSyntheticTrailingComments(original));\n const emit = getOrCreateEmitNode(original);\n emit.leadingComments = void 0;\n emit.trailingComments = void 0;\n return node;\n}\nfunction getConstantValue(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.constantValue;\n}\nfunction setConstantValue(node, value) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.constantValue = value;\n return node;\n}\nfunction addEmitHelper(node, helper) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.helpers = append(emitNode.helpers, helper);\n return node;\n}\nfunction addEmitHelpers(node, helpers) {\n if (some(helpers)) {\n const emitNode = getOrCreateEmitNode(node);\n for (const helper of helpers) {\n emitNode.helpers = appendIfUnique(emitNode.helpers, helper);\n }\n }\n return node;\n}\nfunction removeEmitHelper(node, helper) {\n var _a;\n const helpers = (_a = node.emitNode) == null ? void 0 : _a.helpers;\n if (helpers) {\n return orderedRemoveItem(helpers, helper);\n }\n return false;\n}\nfunction getEmitHelpers(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.helpers;\n}\nfunction moveEmitHelpers(source, target, predicate) {\n const sourceEmitNode = source.emitNode;\n const sourceEmitHelpers = sourceEmitNode && sourceEmitNode.helpers;\n if (!some(sourceEmitHelpers)) return;\n const targetEmitNode = getOrCreateEmitNode(target);\n let helpersRemoved = 0;\n for (let i = 0; i < sourceEmitHelpers.length; i++) {\n const helper = sourceEmitHelpers[i];\n if (predicate(helper)) {\n helpersRemoved++;\n targetEmitNode.helpers = appendIfUnique(targetEmitNode.helpers, helper);\n } else if (helpersRemoved > 0) {\n sourceEmitHelpers[i - helpersRemoved] = helper;\n }\n }\n if (helpersRemoved > 0) {\n sourceEmitHelpers.length -= helpersRemoved;\n }\n}\nfunction getSnippetElement(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.snippetElement;\n}\nfunction setSnippetElement(node, snippet) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.snippetElement = snippet;\n return node;\n}\nfunction ignoreSourceNewlines(node) {\n getOrCreateEmitNode(node).internalFlags |= 4 /* IgnoreSourceNewlines */;\n return node;\n}\nfunction setTypeNode(node, type) {\n const emitNode = getOrCreateEmitNode(node);\n emitNode.typeNode = type;\n return node;\n}\nfunction getTypeNode(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.typeNode;\n}\nfunction setIdentifierTypeArguments(node, typeArguments) {\n getOrCreateEmitNode(node).identifierTypeArguments = typeArguments;\n return node;\n}\nfunction getIdentifierTypeArguments(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.identifierTypeArguments;\n}\nfunction setIdentifierAutoGenerate(node, autoGenerate) {\n getOrCreateEmitNode(node).autoGenerate = autoGenerate;\n return node;\n}\nfunction getIdentifierAutoGenerate(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.autoGenerate;\n}\nfunction setIdentifierGeneratedImportReference(node, value) {\n getOrCreateEmitNode(node).generatedImportReference = value;\n return node;\n}\nfunction getIdentifierGeneratedImportReference(node) {\n var _a;\n return (_a = node.emitNode) == null ? void 0 : _a.generatedImportReference;\n}\n\n// src/compiler/factory/emitHelpers.ts\nvar PrivateIdentifierKind = /* @__PURE__ */ ((PrivateIdentifierKind2) => {\n PrivateIdentifierKind2[\"Field\"] = \"f\";\n PrivateIdentifierKind2[\"Method\"] = \"m\";\n PrivateIdentifierKind2[\"Accessor\"] = \"a\";\n return PrivateIdentifierKind2;\n})(PrivateIdentifierKind || {});\nfunction createEmitHelperFactory(context) {\n const factory2 = context.factory;\n const immutableTrue = memoize(() => setInternalEmitFlags(factory2.createTrue(), 8 /* Immutable */));\n const immutableFalse = memoize(() => setInternalEmitFlags(factory2.createFalse(), 8 /* Immutable */));\n return {\n getUnscopedHelperName,\n // TypeScript Helpers\n createDecorateHelper,\n createMetadataHelper,\n createParamHelper,\n // ES Decorators Helpers\n createESDecorateHelper,\n createRunInitializersHelper,\n // ES2018 Helpers\n createAssignHelper,\n createAwaitHelper,\n createAsyncGeneratorHelper,\n createAsyncDelegatorHelper,\n createAsyncValuesHelper,\n // ES2018 Destructuring Helpers\n createRestHelper,\n // ES2017 Helpers\n createAwaiterHelper,\n // ES2015 Helpers\n createExtendsHelper,\n createTemplateObjectHelper,\n createSpreadArrayHelper,\n createPropKeyHelper,\n createSetFunctionNameHelper,\n // ES2015 Destructuring Helpers\n createValuesHelper,\n createReadHelper,\n // ES2015 Generator Helpers\n createGeneratorHelper,\n // ES Module Helpers\n createImportStarHelper,\n createImportStarCallbackHelper,\n createImportDefaultHelper,\n createExportStarHelper,\n // Class Fields Helpers\n createClassPrivateFieldGetHelper,\n createClassPrivateFieldSetHelper,\n createClassPrivateFieldInHelper,\n // 'using' helpers\n createAddDisposableResourceHelper,\n createDisposeResourcesHelper,\n // --rewriteRelativeImportExtensions helpers\n createRewriteRelativeImportExtensionsHelper\n };\n function getUnscopedHelperName(name) {\n return setEmitFlags(factory2.createIdentifier(name), 8192 /* HelperName */ | 4 /* AdviseOnEmitNode */);\n }\n function createDecorateHelper(decoratorExpressions, target, memberName, descriptor) {\n context.requestEmitHelper(decorateHelper);\n const argumentsArray = [];\n argumentsArray.push(factory2.createArrayLiteralExpression(\n decoratorExpressions,\n /*multiLine*/\n true\n ));\n argumentsArray.push(target);\n if (memberName) {\n argumentsArray.push(memberName);\n if (descriptor) {\n argumentsArray.push(descriptor);\n }\n }\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__decorate\"),\n /*typeArguments*/\n void 0,\n argumentsArray\n );\n }\n function createMetadataHelper(metadataKey, metadataValue) {\n context.requestEmitHelper(metadataHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__metadata\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createStringLiteral(metadataKey),\n metadataValue\n ]\n );\n }\n function createParamHelper(expression, parameterOffset, location) {\n context.requestEmitHelper(paramHelper);\n return setTextRange(\n factory2.createCallExpression(\n getUnscopedHelperName(\"__param\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createNumericLiteral(parameterOffset + \"\"),\n expression\n ]\n ),\n location\n );\n }\n function createESDecorateClassContextObject(contextIn) {\n const properties = [\n factory2.createPropertyAssignment(factory2.createIdentifier(\"kind\"), factory2.createStringLiteral(\"class\")),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"name\"), contextIn.name),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"metadata\"), contextIn.metadata)\n ];\n return factory2.createObjectLiteralExpression(properties);\n }\n function createESDecorateClassElementAccessGetMethod(elementName) {\n const accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name);\n return factory2.createPropertyAssignment(\n \"get\",\n factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.createIdentifier(\"obj\")\n )],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n accessor\n )\n );\n }\n function createESDecorateClassElementAccessSetMethod(elementName) {\n const accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name);\n return factory2.createPropertyAssignment(\n \"set\",\n factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.createIdentifier(\"obj\")\n ),\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.createIdentifier(\"value\")\n )\n ],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(\n accessor,\n factory2.createIdentifier(\"value\")\n )\n )\n ])\n )\n );\n }\n function createESDecorateClassElementAccessHasMethod(elementName) {\n const propertyName = elementName.computed ? elementName.name : isIdentifier(elementName.name) ? factory2.createStringLiteralFromNode(elementName.name) : elementName.name;\n return factory2.createPropertyAssignment(\n \"has\",\n factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.createIdentifier(\"obj\")\n )],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n factory2.createBinaryExpression(\n propertyName,\n 103 /* InKeyword */,\n factory2.createIdentifier(\"obj\")\n )\n )\n );\n }\n function createESDecorateClassElementAccessObject(name, access) {\n const properties = [];\n properties.push(createESDecorateClassElementAccessHasMethod(name));\n if (access.get) properties.push(createESDecorateClassElementAccessGetMethod(name));\n if (access.set) properties.push(createESDecorateClassElementAccessSetMethod(name));\n return factory2.createObjectLiteralExpression(properties);\n }\n function createESDecorateClassElementContextObject(contextIn) {\n const properties = [\n factory2.createPropertyAssignment(factory2.createIdentifier(\"kind\"), factory2.createStringLiteral(contextIn.kind)),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"name\"), contextIn.name.computed ? contextIn.name.name : factory2.createStringLiteralFromNode(contextIn.name.name)),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"static\"), contextIn.static ? factory2.createTrue() : factory2.createFalse()),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"private\"), contextIn.private ? factory2.createTrue() : factory2.createFalse()),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"access\"), createESDecorateClassElementAccessObject(contextIn.name, contextIn.access)),\n factory2.createPropertyAssignment(factory2.createIdentifier(\"metadata\"), contextIn.metadata)\n ];\n return factory2.createObjectLiteralExpression(properties);\n }\n function createESDecorateContextObject(contextIn) {\n return contextIn.kind === \"class\" ? createESDecorateClassContextObject(contextIn) : createESDecorateClassElementContextObject(contextIn);\n }\n function createESDecorateHelper(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n context.requestEmitHelper(esDecorateHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__esDecorate\"),\n /*typeArguments*/\n void 0,\n [\n ctor ?? factory2.createNull(),\n descriptorIn ?? factory2.createNull(),\n decorators,\n createESDecorateContextObject(contextIn),\n initializers,\n extraInitializers\n ]\n );\n }\n function createRunInitializersHelper(thisArg, initializers, value) {\n context.requestEmitHelper(runInitializersHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__runInitializers\"),\n /*typeArguments*/\n void 0,\n value ? [thisArg, initializers, value] : [thisArg, initializers]\n );\n }\n function createAssignHelper(attributesSegments) {\n if (getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) {\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"assign\"),\n /*typeArguments*/\n void 0,\n attributesSegments\n );\n }\n context.requestEmitHelper(assignHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__assign\"),\n /*typeArguments*/\n void 0,\n attributesSegments\n );\n }\n function createAwaitHelper(expression) {\n context.requestEmitHelper(awaitHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__await\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createAsyncGeneratorHelper(generatorFunc, hasLexicalThis) {\n context.requestEmitHelper(awaitHelper);\n context.requestEmitHelper(asyncGeneratorHelper);\n (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */;\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__asyncGenerator\"),\n /*typeArguments*/\n void 0,\n [\n hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(),\n factory2.createIdentifier(\"arguments\"),\n generatorFunc\n ]\n );\n }\n function createAsyncDelegatorHelper(expression) {\n context.requestEmitHelper(awaitHelper);\n context.requestEmitHelper(asyncDelegator);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__asyncDelegator\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createAsyncValuesHelper(expression) {\n context.requestEmitHelper(asyncValues);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__asyncValues\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createRestHelper(value, elements, computedTempVariables, location) {\n context.requestEmitHelper(restHelper);\n const propertyNames = [];\n let computedTempVariableOffset = 0;\n for (let i = 0; i < elements.length - 1; i++) {\n const propertyName = getPropertyNameOfBindingOrAssignmentElement(elements[i]);\n if (propertyName) {\n if (isComputedPropertyName(propertyName)) {\n Debug.assertIsDefined(computedTempVariables, \"Encountered computed property name but 'computedTempVariables' argument was not provided.\");\n const temp = computedTempVariables[computedTempVariableOffset];\n computedTempVariableOffset++;\n propertyNames.push(\n factory2.createConditionalExpression(\n factory2.createTypeCheck(temp, \"symbol\"),\n /*questionToken*/\n void 0,\n temp,\n /*colonToken*/\n void 0,\n factory2.createAdd(temp, factory2.createStringLiteral(\"\"))\n )\n );\n } else {\n propertyNames.push(factory2.createStringLiteralFromNode(propertyName));\n }\n }\n }\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__rest\"),\n /*typeArguments*/\n void 0,\n [\n value,\n setTextRange(\n factory2.createArrayLiteralExpression(propertyNames),\n location\n )\n ]\n );\n }\n function createAwaiterHelper(hasLexicalThis, argumentsExpression, promiseConstructor, parameters, body) {\n context.requestEmitHelper(awaiterHelper);\n const generatorFunc = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n factory2.createToken(42 /* AsteriskToken */),\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters ?? [],\n /*type*/\n void 0,\n body\n );\n (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */;\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__awaiter\"),\n /*typeArguments*/\n void 0,\n [\n hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(),\n argumentsExpression ?? factory2.createVoidZero(),\n promiseConstructor ? createExpressionFromEntityName(factory2, promiseConstructor) : factory2.createVoidZero(),\n generatorFunc\n ]\n );\n }\n function createExtendsHelper(name) {\n context.requestEmitHelper(extendsHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__extends\"),\n /*typeArguments*/\n void 0,\n [name, factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */)]\n );\n }\n function createTemplateObjectHelper(cooked, raw) {\n context.requestEmitHelper(templateObjectHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__makeTemplateObject\"),\n /*typeArguments*/\n void 0,\n [cooked, raw]\n );\n }\n function createSpreadArrayHelper(to, from, packFrom) {\n context.requestEmitHelper(spreadArrayHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__spreadArray\"),\n /*typeArguments*/\n void 0,\n [to, from, packFrom ? immutableTrue() : immutableFalse()]\n );\n }\n function createPropKeyHelper(expr) {\n context.requestEmitHelper(propKeyHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__propKey\"),\n /*typeArguments*/\n void 0,\n [expr]\n );\n }\n function createSetFunctionNameHelper(f, name, prefix) {\n context.requestEmitHelper(setFunctionNameHelper);\n return context.factory.createCallExpression(\n getUnscopedHelperName(\"__setFunctionName\"),\n /*typeArguments*/\n void 0,\n prefix ? [f, name, context.factory.createStringLiteral(prefix)] : [f, name]\n );\n }\n function createValuesHelper(expression) {\n context.requestEmitHelper(valuesHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__values\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createReadHelper(iteratorRecord, count) {\n context.requestEmitHelper(readHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__read\"),\n /*typeArguments*/\n void 0,\n count !== void 0 ? [iteratorRecord, factory2.createNumericLiteral(count + \"\")] : [iteratorRecord]\n );\n }\n function createGeneratorHelper(body) {\n context.requestEmitHelper(generatorHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__generator\"),\n /*typeArguments*/\n void 0,\n [factory2.createThis(), body]\n );\n }\n function createImportStarHelper(expression) {\n context.requestEmitHelper(importStarHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__importStar\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createImportStarCallbackHelper() {\n context.requestEmitHelper(importStarHelper);\n return getUnscopedHelperName(\"__importStar\");\n }\n function createImportDefaultHelper(expression) {\n context.requestEmitHelper(importDefaultHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__importDefault\"),\n /*typeArguments*/\n void 0,\n [expression]\n );\n }\n function createExportStarHelper(moduleExpression, exportsExpression = factory2.createIdentifier(\"exports\")) {\n context.requestEmitHelper(exportStarHelper);\n context.requestEmitHelper(createBindingHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__exportStar\"),\n /*typeArguments*/\n void 0,\n [moduleExpression, exportsExpression]\n );\n }\n function createClassPrivateFieldGetHelper(receiver, state, kind, f) {\n context.requestEmitHelper(classPrivateFieldGetHelper);\n let args;\n if (!f) {\n args = [receiver, state, factory2.createStringLiteral(kind)];\n } else {\n args = [receiver, state, factory2.createStringLiteral(kind), f];\n }\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__classPrivateFieldGet\"),\n /*typeArguments*/\n void 0,\n args\n );\n }\n function createClassPrivateFieldSetHelper(receiver, state, value, kind, f) {\n context.requestEmitHelper(classPrivateFieldSetHelper);\n let args;\n if (!f) {\n args = [receiver, state, value, factory2.createStringLiteral(kind)];\n } else {\n args = [receiver, state, value, factory2.createStringLiteral(kind), f];\n }\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__classPrivateFieldSet\"),\n /*typeArguments*/\n void 0,\n args\n );\n }\n function createClassPrivateFieldInHelper(state, receiver) {\n context.requestEmitHelper(classPrivateFieldInHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__classPrivateFieldIn\"),\n /*typeArguments*/\n void 0,\n [state, receiver]\n );\n }\n function createAddDisposableResourceHelper(envBinding, value, async) {\n context.requestEmitHelper(addDisposableResourceHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__addDisposableResource\"),\n /*typeArguments*/\n void 0,\n [envBinding, value, async ? factory2.createTrue() : factory2.createFalse()]\n );\n }\n function createDisposeResourcesHelper(envBinding) {\n context.requestEmitHelper(disposeResourcesHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__disposeResources\"),\n /*typeArguments*/\n void 0,\n [envBinding]\n );\n }\n function createRewriteRelativeImportExtensionsHelper(expression) {\n context.requestEmitHelper(rewriteRelativeImportExtensionsHelper);\n return factory2.createCallExpression(\n getUnscopedHelperName(\"__rewriteRelativeImportExtension\"),\n /*typeArguments*/\n void 0,\n context.getCompilerOptions().jsx === 1 /* Preserve */ ? [expression, factory2.createTrue()] : [expression]\n );\n }\n}\nfunction compareEmitHelpers(x, y) {\n if (x === y) return 0 /* EqualTo */;\n if (x.priority === y.priority) return 0 /* EqualTo */;\n if (x.priority === void 0) return 1 /* GreaterThan */;\n if (y.priority === void 0) return -1 /* LessThan */;\n return compareValues(x.priority, y.priority);\n}\nfunction helperString(input, ...args) {\n return (uniqueName) => {\n let result = \"\";\n for (let i = 0; i < args.length; i++) {\n result += input[i];\n result += uniqueName(args[i]);\n }\n result += input[input.length - 1];\n return result;\n };\n}\nvar decorateHelper = {\n name: \"typescript:decorate\",\n importName: \"__decorate\",\n scoped: false,\n priority: 2,\n text: `\n var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };`\n};\nvar metadataHelper = {\n name: \"typescript:metadata\",\n importName: \"__metadata\",\n scoped: false,\n priority: 3,\n text: `\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n };`\n};\nvar paramHelper = {\n name: \"typescript:param\",\n importName: \"__param\",\n scoped: false,\n priority: 4,\n text: `\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };`\n};\nvar esDecorateHelper = {\n name: \"typescript:esDecorate\",\n importName: \"__esDecorate\",\n scoped: false,\n priority: 2,\n text: `\n var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n };`\n};\nvar runInitializersHelper = {\n name: \"typescript:runInitializers\",\n importName: \"__runInitializers\",\n scoped: false,\n priority: 2,\n text: `\n var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n };`\n};\nvar assignHelper = {\n name: \"typescript:assign\",\n importName: \"__assign\",\n scoped: false,\n priority: 1,\n text: `\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };`\n};\nvar awaitHelper = {\n name: \"typescript:await\",\n importName: \"__await\",\n scoped: false,\n text: `\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`\n};\nvar asyncGeneratorHelper = {\n name: \"typescript:asyncGenerator\",\n importName: \"__asyncGenerator\",\n scoped: false,\n dependencies: [awaitHelper],\n text: `\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };`\n};\nvar asyncDelegator = {\n name: \"typescript:asyncDelegator\",\n importName: \"__asyncDelegator\",\n scoped: false,\n dependencies: [awaitHelper],\n text: `\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n };`\n};\nvar asyncValues = {\n name: \"typescript:asyncValues\",\n importName: \"__asyncValues\",\n scoped: false,\n text: `\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };`\n};\nvar restHelper = {\n name: \"typescript:rest\",\n importName: \"__rest\",\n scoped: false,\n text: `\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };`\n};\nvar awaiterHelper = {\n name: \"typescript:awaiter\",\n importName: \"__awaiter\",\n scoped: false,\n priority: 5,\n text: `\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };`\n};\nvar extendsHelper = {\n name: \"typescript:extends\",\n importName: \"__extends\",\n scoped: false,\n priority: 0,\n text: `\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();`\n};\nvar templateObjectHelper = {\n name: \"typescript:makeTemplateObject\",\n importName: \"__makeTemplateObject\",\n scoped: false,\n priority: 0,\n text: `\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };`\n};\nvar readHelper = {\n name: \"typescript:read\",\n importName: \"__read\",\n scoped: false,\n text: `\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };`\n};\nvar spreadArrayHelper = {\n name: \"typescript:spreadArray\",\n importName: \"__spreadArray\",\n scoped: false,\n text: `\n var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };`\n};\nvar propKeyHelper = {\n name: \"typescript:propKey\",\n importName: \"__propKey\",\n scoped: false,\n text: `\n var __propKey = (this && this.__propKey) || function (x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n };`\n};\nvar setFunctionNameHelper = {\n name: \"typescript:setFunctionName\",\n importName: \"__setFunctionName\",\n scoped: false,\n text: `\n var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n };`\n};\nvar valuesHelper = {\n name: \"typescript:values\",\n importName: \"__values\",\n scoped: false,\n text: `\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };`\n};\nvar generatorHelper = {\n name: \"typescript:generator\",\n importName: \"__generator\",\n scoped: false,\n priority: 6,\n text: `\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };`\n};\nvar createBindingHelper = {\n name: \"typescript:commonjscreatebinding\",\n importName: \"__createBinding\",\n scoped: false,\n priority: 1,\n text: `\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));`\n};\nvar setModuleDefaultHelper = {\n name: \"typescript:commonjscreatevalue\",\n importName: \"__setModuleDefault\",\n scoped: false,\n priority: 1,\n text: `\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function(o, v) {\n o[\"default\"] = v;\n });`\n};\nvar importStarHelper = {\n name: \"typescript:commonjsimportstar\",\n importName: \"__importStar\",\n scoped: false,\n dependencies: [createBindingHelper, setModuleDefaultHelper],\n priority: 2,\n text: `\n var __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n })();`\n};\nvar importDefaultHelper = {\n name: \"typescript:commonjsimportdefault\",\n importName: \"__importDefault\",\n scoped: false,\n text: `\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };`\n};\nvar exportStarHelper = {\n name: \"typescript:export-star\",\n importName: \"__exportStar\",\n scoped: false,\n dependencies: [createBindingHelper],\n priority: 2,\n text: `\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };`\n};\nvar classPrivateFieldGetHelper = {\n name: \"typescript:classPrivateFieldGet\",\n importName: \"__classPrivateFieldGet\",\n scoped: false,\n text: `\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };`\n};\nvar classPrivateFieldSetHelper = {\n name: \"typescript:classPrivateFieldSet\",\n importName: \"__classPrivateFieldSet\",\n scoped: false,\n text: `\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };`\n};\nvar classPrivateFieldInHelper = {\n name: \"typescript:classPrivateFieldIn\",\n importName: \"__classPrivateFieldIn\",\n scoped: false,\n text: `\n var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };`\n};\nvar addDisposableResourceHelper = {\n name: \"typescript:addDisposableResource\",\n importName: \"__addDisposableResource\",\n scoped: false,\n text: `\n var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n };`\n};\nvar disposeResourcesHelper = {\n name: \"typescript:disposeResources\",\n importName: \"__disposeResources\",\n scoped: false,\n text: `\n var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n })(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n });`\n};\nvar rewriteRelativeImportExtensionsHelper = {\n name: \"typescript:rewriteRelativeImportExtensions\",\n importName: \"__rewriteRelativeImportExtension\",\n scoped: false,\n text: `\n var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n if (typeof path === \"string\" && /^\\\\.\\\\.?\\\\//.test(path)) {\n return path.replace(/\\\\.(tsx)$|((?:\\\\.d)?)((?:\\\\.[^./]+?)?)\\\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n };`\n};\nvar asyncSuperHelper = {\n name: \"typescript:async-super\",\n scoped: true,\n text: helperString`\n const ${\"_superIndex\"} = name => super[name];`\n};\nvar advancedAsyncSuperHelper = {\n name: \"typescript:advanced-async-super\",\n scoped: true,\n text: helperString`\n const ${\"_superIndex\"} = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);`\n};\nfunction isCallToHelper(firstSegment, helperName) {\n return isCallExpression(firstSegment) && isIdentifier(firstSegment.expression) && (getEmitFlags(firstSegment.expression) & 8192 /* HelperName */) !== 0 && firstSegment.expression.escapedText === helperName;\n}\n\n// src/compiler/factory/nodeTests.ts\nfunction isNumericLiteral(node) {\n return node.kind === 9 /* NumericLiteral */;\n}\nfunction isBigIntLiteral(node) {\n return node.kind === 10 /* BigIntLiteral */;\n}\nfunction isStringLiteral(node) {\n return node.kind === 11 /* StringLiteral */;\n}\nfunction isJsxText(node) {\n return node.kind === 12 /* JsxText */;\n}\nfunction isRegularExpressionLiteral(node) {\n return node.kind === 14 /* RegularExpressionLiteral */;\n}\nfunction isNoSubstitutionTemplateLiteral(node) {\n return node.kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isTemplateHead(node) {\n return node.kind === 16 /* TemplateHead */;\n}\nfunction isTemplateMiddle(node) {\n return node.kind === 17 /* TemplateMiddle */;\n}\nfunction isTemplateTail(node) {\n return node.kind === 18 /* TemplateTail */;\n}\nfunction isDotDotDotToken(node) {\n return node.kind === 26 /* DotDotDotToken */;\n}\nfunction isCommaToken(node) {\n return node.kind === 28 /* CommaToken */;\n}\nfunction isPlusToken(node) {\n return node.kind === 40 /* PlusToken */;\n}\nfunction isMinusToken(node) {\n return node.kind === 41 /* MinusToken */;\n}\nfunction isAsteriskToken(node) {\n return node.kind === 42 /* AsteriskToken */;\n}\nfunction isExclamationToken(node) {\n return node.kind === 54 /* ExclamationToken */;\n}\nfunction isQuestionToken(node) {\n return node.kind === 58 /* QuestionToken */;\n}\nfunction isColonToken(node) {\n return node.kind === 59 /* ColonToken */;\n}\nfunction isQuestionDotToken(node) {\n return node.kind === 29 /* QuestionDotToken */;\n}\nfunction isEqualsGreaterThanToken(node) {\n return node.kind === 39 /* EqualsGreaterThanToken */;\n}\nfunction isIdentifier(node) {\n return node.kind === 80 /* Identifier */;\n}\nfunction isPrivateIdentifier(node) {\n return node.kind === 81 /* PrivateIdentifier */;\n}\nfunction isExportModifier(node) {\n return node.kind === 95 /* ExportKeyword */;\n}\nfunction isDefaultModifier(node) {\n return node.kind === 90 /* DefaultKeyword */;\n}\nfunction isAsyncModifier(node) {\n return node.kind === 134 /* AsyncKeyword */;\n}\nfunction isAssertsKeyword(node) {\n return node.kind === 131 /* AssertsKeyword */;\n}\nfunction isAwaitKeyword(node) {\n return node.kind === 135 /* AwaitKeyword */;\n}\nfunction isReadonlyKeyword(node) {\n return node.kind === 148 /* ReadonlyKeyword */;\n}\nfunction isStaticModifier(node) {\n return node.kind === 126 /* StaticKeyword */;\n}\nfunction isAbstractModifier(node) {\n return node.kind === 128 /* AbstractKeyword */;\n}\nfunction isOverrideModifier(node) {\n return node.kind === 164 /* OverrideKeyword */;\n}\nfunction isAccessorModifier(node) {\n return node.kind === 129 /* AccessorKeyword */;\n}\nfunction isSuperKeyword(node) {\n return node.kind === 108 /* SuperKeyword */;\n}\nfunction isImportKeyword(node) {\n return node.kind === 102 /* ImportKeyword */;\n}\nfunction isCaseKeyword(node) {\n return node.kind === 84 /* CaseKeyword */;\n}\nfunction isQualifiedName(node) {\n return node.kind === 167 /* QualifiedName */;\n}\nfunction isComputedPropertyName(node) {\n return node.kind === 168 /* ComputedPropertyName */;\n}\nfunction isTypeParameterDeclaration(node) {\n return node.kind === 169 /* TypeParameter */;\n}\nfunction isParameter(node) {\n return node.kind === 170 /* Parameter */;\n}\nfunction isDecorator(node) {\n return node.kind === 171 /* Decorator */;\n}\nfunction isPropertySignature(node) {\n return node.kind === 172 /* PropertySignature */;\n}\nfunction isPropertyDeclaration(node) {\n return node.kind === 173 /* PropertyDeclaration */;\n}\nfunction isMethodSignature(node) {\n return node.kind === 174 /* MethodSignature */;\n}\nfunction isMethodDeclaration(node) {\n return node.kind === 175 /* MethodDeclaration */;\n}\nfunction isClassStaticBlockDeclaration(node) {\n return node.kind === 176 /* ClassStaticBlockDeclaration */;\n}\nfunction isConstructorDeclaration(node) {\n return node.kind === 177 /* Constructor */;\n}\nfunction isGetAccessorDeclaration(node) {\n return node.kind === 178 /* GetAccessor */;\n}\nfunction isSetAccessorDeclaration(node) {\n return node.kind === 179 /* SetAccessor */;\n}\nfunction isCallSignatureDeclaration(node) {\n return node.kind === 180 /* CallSignature */;\n}\nfunction isConstructSignatureDeclaration(node) {\n return node.kind === 181 /* ConstructSignature */;\n}\nfunction isIndexSignatureDeclaration(node) {\n return node.kind === 182 /* IndexSignature */;\n}\nfunction isTypePredicateNode(node) {\n return node.kind === 183 /* TypePredicate */;\n}\nfunction isTypeReferenceNode(node) {\n return node.kind === 184 /* TypeReference */;\n}\nfunction isFunctionTypeNode(node) {\n return node.kind === 185 /* FunctionType */;\n}\nfunction isConstructorTypeNode(node) {\n return node.kind === 186 /* ConstructorType */;\n}\nfunction isTypeQueryNode(node) {\n return node.kind === 187 /* TypeQuery */;\n}\nfunction isTypeLiteralNode(node) {\n return node.kind === 188 /* TypeLiteral */;\n}\nfunction isArrayTypeNode(node) {\n return node.kind === 189 /* ArrayType */;\n}\nfunction isTupleTypeNode(node) {\n return node.kind === 190 /* TupleType */;\n}\nfunction isNamedTupleMember(node) {\n return node.kind === 203 /* NamedTupleMember */;\n}\nfunction isOptionalTypeNode(node) {\n return node.kind === 191 /* OptionalType */;\n}\nfunction isRestTypeNode(node) {\n return node.kind === 192 /* RestType */;\n}\nfunction isUnionTypeNode(node) {\n return node.kind === 193 /* UnionType */;\n}\nfunction isIntersectionTypeNode(node) {\n return node.kind === 194 /* IntersectionType */;\n}\nfunction isConditionalTypeNode(node) {\n return node.kind === 195 /* ConditionalType */;\n}\nfunction isInferTypeNode(node) {\n return node.kind === 196 /* InferType */;\n}\nfunction isParenthesizedTypeNode(node) {\n return node.kind === 197 /* ParenthesizedType */;\n}\nfunction isThisTypeNode(node) {\n return node.kind === 198 /* ThisType */;\n}\nfunction isTypeOperatorNode(node) {\n return node.kind === 199 /* TypeOperator */;\n}\nfunction isIndexedAccessTypeNode(node) {\n return node.kind === 200 /* IndexedAccessType */;\n}\nfunction isMappedTypeNode(node) {\n return node.kind === 201 /* MappedType */;\n}\nfunction isLiteralTypeNode(node) {\n return node.kind === 202 /* LiteralType */;\n}\nfunction isImportTypeNode(node) {\n return node.kind === 206 /* ImportType */;\n}\nfunction isTemplateLiteralTypeSpan(node) {\n return node.kind === 205 /* TemplateLiteralTypeSpan */;\n}\nfunction isTemplateLiteralTypeNode(node) {\n return node.kind === 204 /* TemplateLiteralType */;\n}\nfunction isObjectBindingPattern(node) {\n return node.kind === 207 /* ObjectBindingPattern */;\n}\nfunction isArrayBindingPattern(node) {\n return node.kind === 208 /* ArrayBindingPattern */;\n}\nfunction isBindingElement(node) {\n return node.kind === 209 /* BindingElement */;\n}\nfunction isArrayLiteralExpression(node) {\n return node.kind === 210 /* ArrayLiteralExpression */;\n}\nfunction isObjectLiteralExpression(node) {\n return node.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isPropertyAccessExpression(node) {\n return node.kind === 212 /* PropertyAccessExpression */;\n}\nfunction isElementAccessExpression(node) {\n return node.kind === 213 /* ElementAccessExpression */;\n}\nfunction isCallExpression(node) {\n return node.kind === 214 /* CallExpression */;\n}\nfunction isNewExpression(node) {\n return node.kind === 215 /* NewExpression */;\n}\nfunction isTaggedTemplateExpression(node) {\n return node.kind === 216 /* TaggedTemplateExpression */;\n}\nfunction isTypeAssertionExpression(node) {\n return node.kind === 217 /* TypeAssertionExpression */;\n}\nfunction isParenthesizedExpression(node) {\n return node.kind === 218 /* ParenthesizedExpression */;\n}\nfunction isFunctionExpression(node) {\n return node.kind === 219 /* FunctionExpression */;\n}\nfunction isArrowFunction(node) {\n return node.kind === 220 /* ArrowFunction */;\n}\nfunction isDeleteExpression(node) {\n return node.kind === 221 /* DeleteExpression */;\n}\nfunction isTypeOfExpression(node) {\n return node.kind === 222 /* TypeOfExpression */;\n}\nfunction isVoidExpression(node) {\n return node.kind === 223 /* VoidExpression */;\n}\nfunction isAwaitExpression(node) {\n return node.kind === 224 /* AwaitExpression */;\n}\nfunction isPrefixUnaryExpression(node) {\n return node.kind === 225 /* PrefixUnaryExpression */;\n}\nfunction isPostfixUnaryExpression(node) {\n return node.kind === 226 /* PostfixUnaryExpression */;\n}\nfunction isBinaryExpression(node) {\n return node.kind === 227 /* BinaryExpression */;\n}\nfunction isConditionalExpression(node) {\n return node.kind === 228 /* ConditionalExpression */;\n}\nfunction isTemplateExpression(node) {\n return node.kind === 229 /* TemplateExpression */;\n}\nfunction isYieldExpression(node) {\n return node.kind === 230 /* YieldExpression */;\n}\nfunction isSpreadElement(node) {\n return node.kind === 231 /* SpreadElement */;\n}\nfunction isClassExpression(node) {\n return node.kind === 232 /* ClassExpression */;\n}\nfunction isOmittedExpression(node) {\n return node.kind === 233 /* OmittedExpression */;\n}\nfunction isExpressionWithTypeArguments(node) {\n return node.kind === 234 /* ExpressionWithTypeArguments */;\n}\nfunction isAsExpression(node) {\n return node.kind === 235 /* AsExpression */;\n}\nfunction isSatisfiesExpression(node) {\n return node.kind === 239 /* SatisfiesExpression */;\n}\nfunction isNonNullExpression(node) {\n return node.kind === 236 /* NonNullExpression */;\n}\nfunction isMetaProperty(node) {\n return node.kind === 237 /* MetaProperty */;\n}\nfunction isSyntheticExpression(node) {\n return node.kind === 238 /* SyntheticExpression */;\n}\nfunction isPartiallyEmittedExpression(node) {\n return node.kind === 356 /* PartiallyEmittedExpression */;\n}\nfunction isCommaListExpression(node) {\n return node.kind === 357 /* CommaListExpression */;\n}\nfunction isTemplateSpan(node) {\n return node.kind === 240 /* TemplateSpan */;\n}\nfunction isSemicolonClassElement(node) {\n return node.kind === 241 /* SemicolonClassElement */;\n}\nfunction isBlock(node) {\n return node.kind === 242 /* Block */;\n}\nfunction isVariableStatement(node) {\n return node.kind === 244 /* VariableStatement */;\n}\nfunction isEmptyStatement(node) {\n return node.kind === 243 /* EmptyStatement */;\n}\nfunction isExpressionStatement(node) {\n return node.kind === 245 /* ExpressionStatement */;\n}\nfunction isIfStatement(node) {\n return node.kind === 246 /* IfStatement */;\n}\nfunction isDoStatement(node) {\n return node.kind === 247 /* DoStatement */;\n}\nfunction isWhileStatement(node) {\n return node.kind === 248 /* WhileStatement */;\n}\nfunction isForStatement(node) {\n return node.kind === 249 /* ForStatement */;\n}\nfunction isForInStatement(node) {\n return node.kind === 250 /* ForInStatement */;\n}\nfunction isForOfStatement(node) {\n return node.kind === 251 /* ForOfStatement */;\n}\nfunction isContinueStatement(node) {\n return node.kind === 252 /* ContinueStatement */;\n}\nfunction isBreakStatement(node) {\n return node.kind === 253 /* BreakStatement */;\n}\nfunction isReturnStatement(node) {\n return node.kind === 254 /* ReturnStatement */;\n}\nfunction isWithStatement(node) {\n return node.kind === 255 /* WithStatement */;\n}\nfunction isSwitchStatement(node) {\n return node.kind === 256 /* SwitchStatement */;\n}\nfunction isLabeledStatement(node) {\n return node.kind === 257 /* LabeledStatement */;\n}\nfunction isThrowStatement(node) {\n return node.kind === 258 /* ThrowStatement */;\n}\nfunction isTryStatement(node) {\n return node.kind === 259 /* TryStatement */;\n}\nfunction isDebuggerStatement(node) {\n return node.kind === 260 /* DebuggerStatement */;\n}\nfunction isVariableDeclaration(node) {\n return node.kind === 261 /* VariableDeclaration */;\n}\nfunction isVariableDeclarationList(node) {\n return node.kind === 262 /* VariableDeclarationList */;\n}\nfunction isFunctionDeclaration(node) {\n return node.kind === 263 /* FunctionDeclaration */;\n}\nfunction isClassDeclaration(node) {\n return node.kind === 264 /* ClassDeclaration */;\n}\nfunction isInterfaceDeclaration(node) {\n return node.kind === 265 /* InterfaceDeclaration */;\n}\nfunction isTypeAliasDeclaration(node) {\n return node.kind === 266 /* TypeAliasDeclaration */;\n}\nfunction isEnumDeclaration(node) {\n return node.kind === 267 /* EnumDeclaration */;\n}\nfunction isModuleDeclaration(node) {\n return node.kind === 268 /* ModuleDeclaration */;\n}\nfunction isModuleBlock(node) {\n return node.kind === 269 /* ModuleBlock */;\n}\nfunction isCaseBlock(node) {\n return node.kind === 270 /* CaseBlock */;\n}\nfunction isNamespaceExportDeclaration(node) {\n return node.kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isImportEqualsDeclaration(node) {\n return node.kind === 272 /* ImportEqualsDeclaration */;\n}\nfunction isImportDeclaration(node) {\n return node.kind === 273 /* ImportDeclaration */;\n}\nfunction isImportClause(node) {\n return node.kind === 274 /* ImportClause */;\n}\nfunction isImportTypeAssertionContainer(node) {\n return node.kind === 303 /* ImportTypeAssertionContainer */;\n}\nfunction isAssertClause(node) {\n return node.kind === 301 /* AssertClause */;\n}\nfunction isAssertEntry(node) {\n return node.kind === 302 /* AssertEntry */;\n}\nfunction isImportAttributes(node) {\n return node.kind === 301 /* ImportAttributes */;\n}\nfunction isImportAttribute(node) {\n return node.kind === 302 /* ImportAttribute */;\n}\nfunction isNamespaceImport(node) {\n return node.kind === 275 /* NamespaceImport */;\n}\nfunction isNamespaceExport(node) {\n return node.kind === 281 /* NamespaceExport */;\n}\nfunction isNamedImports(node) {\n return node.kind === 276 /* NamedImports */;\n}\nfunction isImportSpecifier(node) {\n return node.kind === 277 /* ImportSpecifier */;\n}\nfunction isExportAssignment(node) {\n return node.kind === 278 /* ExportAssignment */;\n}\nfunction isExportDeclaration(node) {\n return node.kind === 279 /* ExportDeclaration */;\n}\nfunction isNamedExports(node) {\n return node.kind === 280 /* NamedExports */;\n}\nfunction isExportSpecifier(node) {\n return node.kind === 282 /* ExportSpecifier */;\n}\nfunction isModuleExportName(node) {\n return node.kind === 80 /* Identifier */ || node.kind === 11 /* StringLiteral */;\n}\nfunction isMissingDeclaration(node) {\n return node.kind === 283 /* MissingDeclaration */;\n}\nfunction isNotEmittedStatement(node) {\n return node.kind === 354 /* NotEmittedStatement */;\n}\nfunction isSyntheticReference(node) {\n return node.kind === 358 /* SyntheticReferenceExpression */;\n}\nfunction isExternalModuleReference(node) {\n return node.kind === 284 /* ExternalModuleReference */;\n}\nfunction isJsxElement(node) {\n return node.kind === 285 /* JsxElement */;\n}\nfunction isJsxSelfClosingElement(node) {\n return node.kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isJsxOpeningElement(node) {\n return node.kind === 287 /* JsxOpeningElement */;\n}\nfunction isJsxClosingElement(node) {\n return node.kind === 288 /* JsxClosingElement */;\n}\nfunction isJsxFragment(node) {\n return node.kind === 289 /* JsxFragment */;\n}\nfunction isJsxOpeningFragment(node) {\n return node.kind === 290 /* JsxOpeningFragment */;\n}\nfunction isJsxClosingFragment(node) {\n return node.kind === 291 /* JsxClosingFragment */;\n}\nfunction isJsxAttribute(node) {\n return node.kind === 292 /* JsxAttribute */;\n}\nfunction isJsxAttributes(node) {\n return node.kind === 293 /* JsxAttributes */;\n}\nfunction isJsxSpreadAttribute(node) {\n return node.kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isJsxExpression(node) {\n return node.kind === 295 /* JsxExpression */;\n}\nfunction isJsxNamespacedName(node) {\n return node.kind === 296 /* JsxNamespacedName */;\n}\nfunction isCaseClause(node) {\n return node.kind === 297 /* CaseClause */;\n}\nfunction isDefaultClause(node) {\n return node.kind === 298 /* DefaultClause */;\n}\nfunction isHeritageClause(node) {\n return node.kind === 299 /* HeritageClause */;\n}\nfunction isCatchClause(node) {\n return node.kind === 300 /* CatchClause */;\n}\nfunction isPropertyAssignment(node) {\n return node.kind === 304 /* PropertyAssignment */;\n}\nfunction isShorthandPropertyAssignment(node) {\n return node.kind === 305 /* ShorthandPropertyAssignment */;\n}\nfunction isSpreadAssignment(node) {\n return node.kind === 306 /* SpreadAssignment */;\n}\nfunction isEnumMember(node) {\n return node.kind === 307 /* EnumMember */;\n}\nfunction isSourceFile(node) {\n return node.kind === 308 /* SourceFile */;\n}\nfunction isBundle(node) {\n return node.kind === 309 /* Bundle */;\n}\nfunction isJSDocTypeExpression(node) {\n return node.kind === 310 /* JSDocTypeExpression */;\n}\nfunction isJSDocNameReference(node) {\n return node.kind === 311 /* JSDocNameReference */;\n}\nfunction isJSDocMemberName(node) {\n return node.kind === 312 /* JSDocMemberName */;\n}\nfunction isJSDocLink(node) {\n return node.kind === 325 /* JSDocLink */;\n}\nfunction isJSDocLinkCode(node) {\n return node.kind === 326 /* JSDocLinkCode */;\n}\nfunction isJSDocLinkPlain(node) {\n return node.kind === 327 /* JSDocLinkPlain */;\n}\nfunction isJSDocAllType(node) {\n return node.kind === 313 /* JSDocAllType */;\n}\nfunction isJSDocUnknownType(node) {\n return node.kind === 314 /* JSDocUnknownType */;\n}\nfunction isJSDocNullableType(node) {\n return node.kind === 315 /* JSDocNullableType */;\n}\nfunction isJSDocNonNullableType(node) {\n return node.kind === 316 /* JSDocNonNullableType */;\n}\nfunction isJSDocOptionalType(node) {\n return node.kind === 317 /* JSDocOptionalType */;\n}\nfunction isJSDocFunctionType(node) {\n return node.kind === 318 /* JSDocFunctionType */;\n}\nfunction isJSDocVariadicType(node) {\n return node.kind === 319 /* JSDocVariadicType */;\n}\nfunction isJSDocNamepathType(node) {\n return node.kind === 320 /* JSDocNamepathType */;\n}\nfunction isJSDoc(node) {\n return node.kind === 321 /* JSDoc */;\n}\nfunction isJSDocTypeLiteral(node) {\n return node.kind === 323 /* JSDocTypeLiteral */;\n}\nfunction isJSDocSignature(node) {\n return node.kind === 324 /* JSDocSignature */;\n}\nfunction isJSDocAugmentsTag(node) {\n return node.kind === 329 /* JSDocAugmentsTag */;\n}\nfunction isJSDocAuthorTag(node) {\n return node.kind === 331 /* JSDocAuthorTag */;\n}\nfunction isJSDocClassTag(node) {\n return node.kind === 333 /* JSDocClassTag */;\n}\nfunction isJSDocCallbackTag(node) {\n return node.kind === 339 /* JSDocCallbackTag */;\n}\nfunction isJSDocPublicTag(node) {\n return node.kind === 334 /* JSDocPublicTag */;\n}\nfunction isJSDocPrivateTag(node) {\n return node.kind === 335 /* JSDocPrivateTag */;\n}\nfunction isJSDocProtectedTag(node) {\n return node.kind === 336 /* JSDocProtectedTag */;\n}\nfunction isJSDocReadonlyTag(node) {\n return node.kind === 337 /* JSDocReadonlyTag */;\n}\nfunction isJSDocOverrideTag(node) {\n return node.kind === 338 /* JSDocOverrideTag */;\n}\nfunction isJSDocOverloadTag(node) {\n return node.kind === 340 /* JSDocOverloadTag */;\n}\nfunction isJSDocDeprecatedTag(node) {\n return node.kind === 332 /* JSDocDeprecatedTag */;\n}\nfunction isJSDocSeeTag(node) {\n return node.kind === 348 /* JSDocSeeTag */;\n}\nfunction isJSDocEnumTag(node) {\n return node.kind === 341 /* JSDocEnumTag */;\n}\nfunction isJSDocParameterTag(node) {\n return node.kind === 342 /* JSDocParameterTag */;\n}\nfunction isJSDocReturnTag(node) {\n return node.kind === 343 /* JSDocReturnTag */;\n}\nfunction isJSDocThisTag(node) {\n return node.kind === 344 /* JSDocThisTag */;\n}\nfunction isJSDocTypeTag(node) {\n return node.kind === 345 /* JSDocTypeTag */;\n}\nfunction isJSDocTemplateTag(node) {\n return node.kind === 346 /* JSDocTemplateTag */;\n}\nfunction isJSDocTypedefTag(node) {\n return node.kind === 347 /* JSDocTypedefTag */;\n}\nfunction isJSDocUnknownTag(node) {\n return node.kind === 328 /* JSDocTag */;\n}\nfunction isJSDocPropertyTag(node) {\n return node.kind === 349 /* JSDocPropertyTag */;\n}\nfunction isJSDocImplementsTag(node) {\n return node.kind === 330 /* JSDocImplementsTag */;\n}\nfunction isJSDocSatisfiesTag(node) {\n return node.kind === 351 /* JSDocSatisfiesTag */;\n}\nfunction isJSDocThrowsTag(node) {\n return node.kind === 350 /* JSDocThrowsTag */;\n}\nfunction isJSDocImportTag(node) {\n return node.kind === 352 /* JSDocImportTag */;\n}\nfunction isSyntaxList(n) {\n return n.kind === 353 /* SyntaxList */;\n}\n\n// src/compiler/factory/nodeChildren.ts\nvar sourceFileToNodeChildren = /* @__PURE__ */ new WeakMap();\nfunction getNodeChildren(node, sourceFile) {\n var _a;\n const kind = node.kind;\n if (!isNodeKind(kind)) {\n return emptyArray;\n }\n if (kind === 353 /* SyntaxList */) {\n return node._children;\n }\n return (_a = sourceFileToNodeChildren.get(sourceFile)) == null ? void 0 : _a.get(node);\n}\nfunction setNodeChildren(node, sourceFile, children) {\n if (node.kind === 353 /* SyntaxList */) {\n Debug.fail(\"Should not need to re-set the children of a SyntaxList.\");\n }\n let map2 = sourceFileToNodeChildren.get(sourceFile);\n if (map2 === void 0) {\n map2 = /* @__PURE__ */ new WeakMap();\n sourceFileToNodeChildren.set(sourceFile, map2);\n }\n map2.set(node, children);\n return children;\n}\nfunction unsetNodeChildren(node, origSourceFile) {\n var _a;\n if (node.kind === 353 /* SyntaxList */) {\n Debug.fail(\"Did not expect to unset the children of a SyntaxList.\");\n }\n (_a = sourceFileToNodeChildren.get(origSourceFile)) == null ? void 0 : _a.delete(node);\n}\nfunction transferSourceFileChildren(sourceFile, targetSourceFile) {\n const map2 = sourceFileToNodeChildren.get(sourceFile);\n if (map2 !== void 0) {\n sourceFileToNodeChildren.delete(sourceFile);\n sourceFileToNodeChildren.set(targetSourceFile, map2);\n }\n}\n\n// src/compiler/factory/utilities.ts\nfunction createEmptyExports(factory2) {\n return factory2.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory2.createNamedExports([]),\n /*moduleSpecifier*/\n void 0\n );\n}\nfunction createMemberAccessForPropertyName(factory2, target, memberName, location) {\n if (isComputedPropertyName(memberName)) {\n return setTextRange(factory2.createElementAccessExpression(target, memberName.expression), location);\n } else {\n const expression = setTextRange(\n isMemberName(memberName) ? factory2.createPropertyAccessExpression(target, memberName) : factory2.createElementAccessExpression(target, memberName),\n memberName\n );\n addEmitFlags(expression, 128 /* NoNestedSourceMaps */);\n return expression;\n }\n}\nfunction createReactNamespace(reactNamespace, parent2) {\n const react = parseNodeFactory.createIdentifier(reactNamespace || \"React\");\n setParent(react, getParseTreeNode(parent2));\n return react;\n}\nfunction createJsxFactoryExpressionFromEntityName(factory2, jsxFactory, parent2) {\n if (isQualifiedName(jsxFactory)) {\n const left = createJsxFactoryExpressionFromEntityName(factory2, jsxFactory.left, parent2);\n const right = factory2.createIdentifier(idText(jsxFactory.right));\n right.escapedText = jsxFactory.right.escapedText;\n return factory2.createPropertyAccessExpression(left, right);\n } else {\n return createReactNamespace(idText(jsxFactory), parent2);\n }\n}\nfunction createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parent2) {\n return jsxFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFactoryEntity, parent2) : factory2.createPropertyAccessExpression(\n createReactNamespace(reactNamespace, parent2),\n \"createElement\"\n );\n}\nfunction createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parent2) {\n return jsxFragmentFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFragmentFactoryEntity, parent2) : factory2.createPropertyAccessExpression(\n createReactNamespace(reactNamespace, parent2),\n \"Fragment\"\n );\n}\nfunction createExpressionForJsxElement(factory2, callee, tagName, props, children, location) {\n const argumentsList = [tagName];\n if (props) {\n argumentsList.push(props);\n }\n if (children && children.length > 0) {\n if (!props) {\n argumentsList.push(factory2.createNull());\n }\n if (children.length > 1) {\n for (const child of children) {\n startOnNewLine(child);\n argumentsList.push(child);\n }\n } else {\n argumentsList.push(children[0]);\n }\n }\n return setTextRange(\n factory2.createCallExpression(\n callee,\n /*typeArguments*/\n void 0,\n argumentsList\n ),\n location\n );\n}\nfunction createExpressionForJsxFragment(factory2, jsxFactoryEntity, jsxFragmentFactoryEntity, reactNamespace, children, parentElement, location) {\n const tagName = createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parentElement);\n const argumentsList = [tagName, factory2.createNull()];\n if (children && children.length > 0) {\n if (children.length > 1) {\n for (const child of children) {\n startOnNewLine(child);\n argumentsList.push(child);\n }\n } else {\n argumentsList.push(children[0]);\n }\n }\n return setTextRange(\n factory2.createCallExpression(\n createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parentElement),\n /*typeArguments*/\n void 0,\n argumentsList\n ),\n location\n );\n}\nfunction createForOfBindingStatement(factory2, node, boundValue) {\n if (isVariableDeclarationList(node)) {\n const firstDeclaration = first(node.declarations);\n const updatedDeclaration = factory2.updateVariableDeclaration(\n firstDeclaration,\n firstDeclaration.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n boundValue\n );\n return setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.updateVariableDeclarationList(node, [updatedDeclaration])\n ),\n /*location*/\n node\n );\n } else {\n const updatedExpression = setTextRange(\n factory2.createAssignment(node, boundValue),\n /*location*/\n node\n );\n return setTextRange(\n factory2.createExpressionStatement(updatedExpression),\n /*location*/\n node\n );\n }\n}\nfunction createExpressionFromEntityName(factory2, node) {\n if (isQualifiedName(node)) {\n const left = createExpressionFromEntityName(factory2, node.left);\n const right = setParent(setTextRange(factory2.cloneNode(node.right), node.right), node.right.parent);\n return setTextRange(factory2.createPropertyAccessExpression(left, right), node);\n } else {\n return setParent(setTextRange(factory2.cloneNode(node), node), node.parent);\n }\n}\nfunction createExpressionForPropertyName(factory2, memberName) {\n if (isIdentifier(memberName)) {\n return factory2.createStringLiteralFromNode(memberName);\n } else if (isComputedPropertyName(memberName)) {\n return setParent(setTextRange(factory2.cloneNode(memberName.expression), memberName.expression), memberName.expression.parent);\n } else {\n return setParent(setTextRange(factory2.cloneNode(memberName), memberName), memberName.parent);\n }\n}\nfunction createExpressionForAccessorDeclaration(factory2, properties, property, receiver, multiLine) {\n const { firstAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(properties, property);\n if (property === firstAccessor) {\n return setTextRange(\n factory2.createObjectDefinePropertyCall(\n receiver,\n createExpressionForPropertyName(factory2, property.name),\n factory2.createPropertyDescriptor({\n enumerable: factory2.createFalse(),\n configurable: true,\n get: getAccessor && setTextRange(\n setOriginalNode(\n factory2.createFunctionExpression(\n getModifiers(getAccessor),\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n getAccessor.parameters,\n /*type*/\n void 0,\n getAccessor.body\n // TODO: GH#18217\n ),\n getAccessor\n ),\n getAccessor\n ),\n set: setAccessor && setTextRange(\n setOriginalNode(\n factory2.createFunctionExpression(\n getModifiers(setAccessor),\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n setAccessor.parameters,\n /*type*/\n void 0,\n setAccessor.body\n // TODO: GH#18217\n ),\n setAccessor\n ),\n setAccessor\n )\n }, !multiLine)\n ),\n firstAccessor\n );\n }\n return void 0;\n}\nfunction createExpressionForPropertyAssignment(factory2, property, receiver) {\n return setOriginalNode(\n setTextRange(\n factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n property.name,\n /*location*/\n property.name\n ),\n property.initializer\n ),\n property\n ),\n property\n );\n}\nfunction createExpressionForShorthandPropertyAssignment(factory2, property, receiver) {\n return setOriginalNode(\n setTextRange(\n factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n property.name,\n /*location*/\n property.name\n ),\n factory2.cloneNode(property.name)\n ),\n /*location*/\n property\n ),\n /*original*/\n property\n );\n}\nfunction createExpressionForMethodDeclaration(factory2, method, receiver) {\n return setOriginalNode(\n setTextRange(\n factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n method.name,\n /*location*/\n method.name\n ),\n setOriginalNode(\n setTextRange(\n factory2.createFunctionExpression(\n getModifiers(method),\n method.asteriskToken,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n method.parameters,\n /*type*/\n void 0,\n method.body\n // TODO: GH#18217\n ),\n /*location*/\n method\n ),\n /*original*/\n method\n )\n ),\n /*location*/\n method\n ),\n /*original*/\n method\n );\n}\nfunction createExpressionForObjectLiteralElementLike(factory2, node, property, receiver) {\n if (property.name && isPrivateIdentifier(property.name)) {\n Debug.failBadSyntaxKind(property.name, \"Private identifiers are not allowed in object literals.\");\n }\n switch (property.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return createExpressionForAccessorDeclaration(factory2, node.properties, property, receiver, !!node.multiLine);\n case 304 /* PropertyAssignment */:\n return createExpressionForPropertyAssignment(factory2, property, receiver);\n case 305 /* ShorthandPropertyAssignment */:\n return createExpressionForShorthandPropertyAssignment(factory2, property, receiver);\n case 175 /* MethodDeclaration */:\n return createExpressionForMethodDeclaration(factory2, property, receiver);\n }\n}\nfunction expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, recordTempVariable, resultVariable) {\n const operator = node.operator;\n Debug.assert(operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */, \"Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression\");\n const temp = factory2.createTempVariable(recordTempVariable);\n expression = factory2.createAssignment(temp, expression);\n setTextRange(expression, node.operand);\n let operation = isPrefixUnaryExpression(node) ? factory2.createPrefixUnaryExpression(operator, temp) : factory2.createPostfixUnaryExpression(temp, operator);\n setTextRange(operation, node);\n if (resultVariable) {\n operation = factory2.createAssignment(resultVariable, operation);\n setTextRange(operation, node);\n }\n expression = factory2.createComma(expression, operation);\n setTextRange(expression, node);\n if (isPostfixUnaryExpression(node)) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n}\nfunction isInternalName(node) {\n return (getEmitFlags(node) & 65536 /* InternalName */) !== 0;\n}\nfunction isLocalName(node) {\n return (getEmitFlags(node) & 32768 /* LocalName */) !== 0;\n}\nfunction isExportName(node) {\n return (getEmitFlags(node) & 16384 /* ExportName */) !== 0;\n}\nfunction isUseStrictPrologue(node) {\n return isStringLiteral(node.expression) && node.expression.text === \"use strict\";\n}\nfunction findUseStrictPrologue(statements) {\n for (const statement of statements) {\n if (isPrologueDirective(statement)) {\n if (isUseStrictPrologue(statement)) {\n return statement;\n }\n } else {\n break;\n }\n }\n return void 0;\n}\nfunction startsWithUseStrict(statements) {\n const firstStatement = firstOrUndefined(statements);\n return firstStatement !== void 0 && isPrologueDirective(firstStatement) && isUseStrictPrologue(firstStatement);\n}\nfunction isCommaExpression(node) {\n return node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 28 /* CommaToken */;\n}\nfunction isCommaSequence(node) {\n return isCommaExpression(node) || isCommaListExpression(node);\n}\nfunction isJSDocTypeAssertion(node) {\n return isParenthesizedExpression(node) && isInJSFile(node) && !!getJSDocTypeTag(node);\n}\nfunction getJSDocTypeAssertionType(node) {\n const type = getJSDocType(node);\n Debug.assertIsDefined(type);\n return type;\n}\nfunction isOuterExpression(node, kinds = 63 /* All */) {\n switch (node.kind) {\n case 218 /* ParenthesizedExpression */:\n if (kinds & -2147483648 /* ExcludeJSDocTypeAssertion */ && isJSDocTypeAssertion(node)) {\n return false;\n }\n return (kinds & 1 /* Parentheses */) !== 0;\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n return (kinds & 2 /* TypeAssertions */) !== 0;\n case 239 /* SatisfiesExpression */:\n return (kinds & (2 /* TypeAssertions */ | 32 /* Satisfies */)) !== 0;\n case 234 /* ExpressionWithTypeArguments */:\n return (kinds & 16 /* ExpressionsWithTypeArguments */) !== 0;\n case 236 /* NonNullExpression */:\n return (kinds & 4 /* NonNullAssertions */) !== 0;\n case 356 /* PartiallyEmittedExpression */:\n return (kinds & 8 /* PartiallyEmittedExpressions */) !== 0;\n }\n return false;\n}\nfunction skipOuterExpressions(node, kinds = 63 /* All */) {\n while (isOuterExpression(node, kinds)) {\n node = node.expression;\n }\n return node;\n}\nfunction walkUpOuterExpressions(node, kinds = 63 /* All */) {\n let parent2 = node.parent;\n while (isOuterExpression(parent2, kinds)) {\n parent2 = parent2.parent;\n Debug.assert(parent2);\n }\n return parent2;\n}\nfunction startOnNewLine(node) {\n return setStartsOnNewLine(\n node,\n /*newLine*/\n true\n );\n}\nfunction getExternalHelpersModuleName(node) {\n const parseNode = getOriginalNode(node, isSourceFile);\n const emitNode = parseNode && parseNode.emitNode;\n return emitNode && emitNode.externalHelpersModuleName;\n}\nfunction hasRecordedExternalHelpers(sourceFile) {\n const parseNode = getOriginalNode(sourceFile, isSourceFile);\n const emitNode = parseNode && parseNode.emitNode;\n return !!emitNode && (!!emitNode.externalHelpersModuleName || !!emitNode.externalHelpers);\n}\nfunction createExternalHelpersImportDeclarationIfNeeded(nodeFactory, helperFactory, sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault) {\n if (compilerOptions.importHelpers && isEffectiveExternalModule(sourceFile, compilerOptions)) {\n const moduleKind = getEmitModuleKind(compilerOptions);\n const impliedModuleKind = getImpliedNodeFormatForEmitWorker(sourceFile, compilerOptions);\n const helpers = getImportedHelpers(sourceFile);\n if (impliedModuleKind !== 1 /* CommonJS */ && (moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */ || impliedModuleKind === 99 /* ESNext */ || impliedModuleKind === void 0 && moduleKind === 200 /* Preserve */)) {\n if (helpers) {\n const helperNames = [];\n for (const helper of helpers) {\n const importName = helper.importName;\n if (importName) {\n pushIfUnique(helperNames, importName);\n }\n }\n if (some(helperNames)) {\n helperNames.sort(compareStringsCaseSensitive);\n const namedBindings = nodeFactory.createNamedImports(\n map(helperNames, (name) => isFileLevelUniqueName(sourceFile, name) ? nodeFactory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n /*propertyName*/\n void 0,\n nodeFactory.createIdentifier(name)\n ) : nodeFactory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n nodeFactory.createIdentifier(name),\n helperFactory.getUnscopedHelperName(name)\n ))\n );\n const parseNode = getOriginalNode(sourceFile, isSourceFile);\n const emitNode = getOrCreateEmitNode(parseNode);\n emitNode.externalHelpers = true;\n const externalHelpersImportDeclaration = nodeFactory.createImportDeclaration(\n /*modifiers*/\n void 0,\n nodeFactory.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n namedBindings\n ),\n nodeFactory.createStringLiteral(externalHelpersModuleNameText),\n /*attributes*/\n void 0\n );\n addInternalEmitFlags(externalHelpersImportDeclaration, 2 /* NeverApplyImportHelper */);\n return externalHelpersImportDeclaration;\n }\n }\n } else {\n const externalHelpersModuleName = getOrCreateExternalHelpersModuleNameIfNeeded(nodeFactory, sourceFile, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStar || hasImportDefault);\n if (externalHelpersModuleName) {\n const externalHelpersImportDeclaration = nodeFactory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n externalHelpersModuleName,\n nodeFactory.createExternalModuleReference(nodeFactory.createStringLiteral(externalHelpersModuleNameText))\n );\n addInternalEmitFlags(externalHelpersImportDeclaration, 2 /* NeverApplyImportHelper */);\n return externalHelpersImportDeclaration;\n }\n }\n }\n}\nfunction getImportedHelpers(sourceFile) {\n return filter(getEmitHelpers(sourceFile), (helper) => !helper.scoped);\n}\nfunction getOrCreateExternalHelpersModuleNameIfNeeded(factory2, node, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStarOrImportDefault) {\n const externalHelpersModuleName = getExternalHelpersModuleName(node);\n if (externalHelpersModuleName) {\n return externalHelpersModuleName;\n }\n const create = some(helpers) || (hasExportStarsToExportValues || getESModuleInterop(compilerOptions) && hasImportStarOrImportDefault) && getEmitModuleFormatOfFileWorker(node, compilerOptions) < 4 /* System */;\n if (create) {\n const parseNode = getOriginalNode(node, isSourceFile);\n const emitNode = getOrCreateEmitNode(parseNode);\n return emitNode.externalHelpersModuleName || (emitNode.externalHelpersModuleName = factory2.createUniqueName(externalHelpersModuleNameText));\n }\n}\nfunction getLocalNameForExternalImport(factory2, node, sourceFile) {\n const namespaceDeclaration = getNamespaceDeclarationNode(node);\n if (namespaceDeclaration && !isDefaultImport(node) && !isExportNamespaceAsDefaultDeclaration(node)) {\n const name = namespaceDeclaration.name;\n if (name.kind === 11 /* StringLiteral */) {\n return factory2.getGeneratedNameForNode(node);\n }\n return isGeneratedIdentifier(name) ? name : factory2.createIdentifier(getSourceTextOfNodeFromSourceFile(sourceFile, name) || idText(name));\n }\n if (node.kind === 273 /* ImportDeclaration */ && node.importClause) {\n return factory2.getGeneratedNameForNode(node);\n }\n if (node.kind === 279 /* ExportDeclaration */ && node.moduleSpecifier) {\n return factory2.getGeneratedNameForNode(node);\n }\n return void 0;\n}\nfunction getExternalModuleNameLiteral(factory2, importNode, sourceFile, host, resolver, compilerOptions) {\n const moduleName = getExternalModuleName(importNode);\n if (moduleName && isStringLiteral(moduleName)) {\n return tryGetModuleNameFromDeclaration(importNode, host, factory2, resolver, compilerOptions) || tryRenameExternalModule(factory2, moduleName, sourceFile) || factory2.cloneNode(moduleName);\n }\n return void 0;\n}\nfunction tryRenameExternalModule(factory2, moduleName, sourceFile) {\n const rename = sourceFile.renamedDependencies && sourceFile.renamedDependencies.get(moduleName.text);\n return rename ? factory2.createStringLiteral(rename) : void 0;\n}\nfunction tryGetModuleNameFromFile(factory2, file, host, options) {\n if (!file) {\n return void 0;\n }\n if (file.moduleName) {\n return factory2.createStringLiteral(file.moduleName);\n }\n if (!file.isDeclarationFile && options.outFile) {\n return factory2.createStringLiteral(getExternalModuleNameFromPath(host, file.fileName));\n }\n return void 0;\n}\nfunction tryGetModuleNameFromDeclaration(declaration, host, factory2, resolver, compilerOptions) {\n return tryGetModuleNameFromFile(factory2, resolver.getExternalModuleFileFromDeclaration(declaration), host, compilerOptions);\n}\nfunction getInitializerOfBindingOrAssignmentElement(bindingElement) {\n if (isDeclarationBindingElement(bindingElement)) {\n return bindingElement.initializer;\n }\n if (isPropertyAssignment(bindingElement)) {\n const initializer = bindingElement.initializer;\n return isAssignmentExpression(\n initializer,\n /*excludeCompoundAssignment*/\n true\n ) ? initializer.right : void 0;\n }\n if (isShorthandPropertyAssignment(bindingElement)) {\n return bindingElement.objectAssignmentInitializer;\n }\n if (isAssignmentExpression(\n bindingElement,\n /*excludeCompoundAssignment*/\n true\n )) {\n return bindingElement.right;\n }\n if (isSpreadElement(bindingElement)) {\n return getInitializerOfBindingOrAssignmentElement(bindingElement.expression);\n }\n}\nfunction getTargetOfBindingOrAssignmentElement(bindingElement) {\n if (isDeclarationBindingElement(bindingElement)) {\n return bindingElement.name;\n }\n if (isObjectLiteralElementLike(bindingElement)) {\n switch (bindingElement.kind) {\n case 304 /* PropertyAssignment */:\n return getTargetOfBindingOrAssignmentElement(bindingElement.initializer);\n case 305 /* ShorthandPropertyAssignment */:\n return bindingElement.name;\n case 306 /* SpreadAssignment */:\n return getTargetOfBindingOrAssignmentElement(bindingElement.expression);\n }\n return void 0;\n }\n if (isAssignmentExpression(\n bindingElement,\n /*excludeCompoundAssignment*/\n true\n )) {\n return getTargetOfBindingOrAssignmentElement(bindingElement.left);\n }\n if (isSpreadElement(bindingElement)) {\n return getTargetOfBindingOrAssignmentElement(bindingElement.expression);\n }\n return bindingElement;\n}\nfunction getRestIndicatorOfBindingOrAssignmentElement(bindingElement) {\n switch (bindingElement.kind) {\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n return bindingElement.dotDotDotToken;\n case 231 /* SpreadElement */:\n case 306 /* SpreadAssignment */:\n return bindingElement;\n }\n return void 0;\n}\nfunction getPropertyNameOfBindingOrAssignmentElement(bindingElement) {\n const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement);\n Debug.assert(!!propertyName || isSpreadAssignment(bindingElement), \"Invalid property name for binding element.\");\n return propertyName;\n}\nfunction tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement) {\n switch (bindingElement.kind) {\n case 209 /* BindingElement */:\n if (bindingElement.propertyName) {\n const propertyName = bindingElement.propertyName;\n if (isPrivateIdentifier(propertyName)) {\n return Debug.failBadSyntaxKind(propertyName);\n }\n return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName;\n }\n break;\n case 304 /* PropertyAssignment */:\n if (bindingElement.name) {\n const propertyName = bindingElement.name;\n if (isPrivateIdentifier(propertyName)) {\n return Debug.failBadSyntaxKind(propertyName);\n }\n return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName;\n }\n break;\n case 306 /* SpreadAssignment */:\n if (bindingElement.name && isPrivateIdentifier(bindingElement.name)) {\n return Debug.failBadSyntaxKind(bindingElement.name);\n }\n return bindingElement.name;\n }\n const target = getTargetOfBindingOrAssignmentElement(bindingElement);\n if (target && isPropertyName(target)) {\n return target;\n }\n}\nfunction isStringOrNumericLiteral(node) {\n const kind = node.kind;\n return kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */;\n}\nfunction getElementsOfBindingOrAssignmentPattern(name) {\n switch (name.kind) {\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n case 210 /* ArrayLiteralExpression */:\n return name.elements;\n case 211 /* ObjectLiteralExpression */:\n return name.properties;\n }\n}\nfunction getJSDocTypeAliasName(fullName) {\n if (fullName) {\n let rightNode = fullName;\n while (true) {\n if (isIdentifier(rightNode) || !rightNode.body) {\n return isIdentifier(rightNode) ? rightNode : rightNode.name;\n }\n rightNode = rightNode.body;\n }\n }\n}\nfunction canHaveIllegalType(node) {\n const kind = node.kind;\n return kind === 177 /* Constructor */ || kind === 179 /* SetAccessor */;\n}\nfunction canHaveIllegalTypeParameters(node) {\n const kind = node.kind;\n return kind === 177 /* Constructor */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction canHaveIllegalDecorators(node) {\n const kind = node.kind;\n return kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 263 /* FunctionDeclaration */ || kind === 177 /* Constructor */ || kind === 182 /* IndexSignature */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 283 /* MissingDeclaration */ || kind === 244 /* VariableStatement */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 278 /* ExportAssignment */;\n}\nfunction canHaveIllegalModifiers(node) {\n const kind = node.kind;\n return kind === 176 /* ClassStaticBlockDeclaration */ || kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 283 /* MissingDeclaration */ || kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isQuestionOrExclamationToken(node) {\n return isQuestionToken(node) || isExclamationToken(node);\n}\nfunction isIdentifierOrThisTypeNode(node) {\n return isIdentifier(node) || isThisTypeNode(node);\n}\nfunction isReadonlyKeywordOrPlusOrMinusToken(node) {\n return isReadonlyKeyword(node) || isPlusToken(node) || isMinusToken(node);\n}\nfunction isQuestionOrPlusOrMinusToken(node) {\n return isQuestionToken(node) || isPlusToken(node) || isMinusToken(node);\n}\nfunction isModuleName(node) {\n return isIdentifier(node) || isStringLiteral(node);\n}\nfunction isExponentiationOperator(kind) {\n return kind === 43 /* AsteriskAsteriskToken */;\n}\nfunction isMultiplicativeOperator(kind) {\n return kind === 42 /* AsteriskToken */ || kind === 44 /* SlashToken */ || kind === 45 /* PercentToken */;\n}\nfunction isMultiplicativeOperatorOrHigher(kind) {\n return isExponentiationOperator(kind) || isMultiplicativeOperator(kind);\n}\nfunction isAdditiveOperator(kind) {\n return kind === 40 /* PlusToken */ || kind === 41 /* MinusToken */;\n}\nfunction isAdditiveOperatorOrHigher(kind) {\n return isAdditiveOperator(kind) || isMultiplicativeOperatorOrHigher(kind);\n}\nfunction isShiftOperator(kind) {\n return kind === 48 /* LessThanLessThanToken */ || kind === 49 /* GreaterThanGreaterThanToken */ || kind === 50 /* GreaterThanGreaterThanGreaterThanToken */;\n}\nfunction isShiftOperatorOrHigher(kind) {\n return isShiftOperator(kind) || isAdditiveOperatorOrHigher(kind);\n}\nfunction isRelationalOperator(kind) {\n return kind === 30 /* LessThanToken */ || kind === 33 /* LessThanEqualsToken */ || kind === 32 /* GreaterThanToken */ || kind === 34 /* GreaterThanEqualsToken */ || kind === 104 /* InstanceOfKeyword */ || kind === 103 /* InKeyword */;\n}\nfunction isRelationalOperatorOrHigher(kind) {\n return isRelationalOperator(kind) || isShiftOperatorOrHigher(kind);\n}\nfunction isEqualityOperator(kind) {\n return kind === 35 /* EqualsEqualsToken */ || kind === 37 /* EqualsEqualsEqualsToken */ || kind === 36 /* ExclamationEqualsToken */ || kind === 38 /* ExclamationEqualsEqualsToken */;\n}\nfunction isEqualityOperatorOrHigher(kind) {\n return isEqualityOperator(kind) || isRelationalOperatorOrHigher(kind);\n}\nfunction isBitwiseOperator(kind) {\n return kind === 51 /* AmpersandToken */ || kind === 52 /* BarToken */ || kind === 53 /* CaretToken */;\n}\nfunction isBitwiseOperatorOrHigher(kind) {\n return isBitwiseOperator(kind) || isEqualityOperatorOrHigher(kind);\n}\nfunction isLogicalOperator2(kind) {\n return kind === 56 /* AmpersandAmpersandToken */ || kind === 57 /* BarBarToken */;\n}\nfunction isLogicalOperatorOrHigher(kind) {\n return isLogicalOperator2(kind) || isBitwiseOperatorOrHigher(kind);\n}\nfunction isAssignmentOperatorOrHigher(kind) {\n return kind === 61 /* QuestionQuestionToken */ || isLogicalOperatorOrHigher(kind) || isAssignmentOperator(kind);\n}\nfunction isBinaryOperator(kind) {\n return isAssignmentOperatorOrHigher(kind) || kind === 28 /* CommaToken */;\n}\nfunction isBinaryOperatorToken(node) {\n return isBinaryOperator(node.kind);\n}\nvar BinaryExpressionState;\n((BinaryExpressionState2) => {\n function enter(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, outerState) {\n const prevUserState = stackIndex > 0 ? userStateStack[stackIndex - 1] : void 0;\n Debug.assertEqual(stateStack[stackIndex], enter);\n userStateStack[stackIndex] = machine.onEnter(nodeStack[stackIndex], prevUserState, outerState);\n stateStack[stackIndex] = nextState(machine, enter);\n return stackIndex;\n }\n BinaryExpressionState2.enter = enter;\n function left(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n Debug.assertEqual(stateStack[stackIndex], left);\n Debug.assertIsDefined(machine.onLeft);\n stateStack[stackIndex] = nextState(machine, left);\n const nextNode = machine.onLeft(nodeStack[stackIndex].left, userStateStack[stackIndex], nodeStack[stackIndex]);\n if (nextNode) {\n checkCircularity(stackIndex, nodeStack, nextNode);\n return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode);\n }\n return stackIndex;\n }\n BinaryExpressionState2.left = left;\n function operator(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n Debug.assertEqual(stateStack[stackIndex], operator);\n Debug.assertIsDefined(machine.onOperator);\n stateStack[stackIndex] = nextState(machine, operator);\n machine.onOperator(nodeStack[stackIndex].operatorToken, userStateStack[stackIndex], nodeStack[stackIndex]);\n return stackIndex;\n }\n BinaryExpressionState2.operator = operator;\n function right(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n Debug.assertEqual(stateStack[stackIndex], right);\n Debug.assertIsDefined(machine.onRight);\n stateStack[stackIndex] = nextState(machine, right);\n const nextNode = machine.onRight(nodeStack[stackIndex].right, userStateStack[stackIndex], nodeStack[stackIndex]);\n if (nextNode) {\n checkCircularity(stackIndex, nodeStack, nextNode);\n return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode);\n }\n return stackIndex;\n }\n BinaryExpressionState2.right = right;\n function exit(machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, _outerState) {\n Debug.assertEqual(stateStack[stackIndex], exit);\n stateStack[stackIndex] = nextState(machine, exit);\n const result = machine.onExit(nodeStack[stackIndex], userStateStack[stackIndex]);\n if (stackIndex > 0) {\n stackIndex--;\n if (machine.foldState) {\n const side = stateStack[stackIndex] === exit ? \"right\" : \"left\";\n userStateStack[stackIndex] = machine.foldState(userStateStack[stackIndex], result, side);\n }\n } else {\n resultHolder.value = result;\n }\n return stackIndex;\n }\n BinaryExpressionState2.exit = exit;\n function done(_machine, stackIndex, stateStack, _nodeStack, _userStateStack, _resultHolder, _outerState) {\n Debug.assertEqual(stateStack[stackIndex], done);\n return stackIndex;\n }\n BinaryExpressionState2.done = done;\n function nextState(machine, currentState) {\n switch (currentState) {\n case enter:\n if (machine.onLeft) return left;\n // falls through\n case left:\n if (machine.onOperator) return operator;\n // falls through\n case operator:\n if (machine.onRight) return right;\n // falls through\n case right:\n return exit;\n case exit:\n return done;\n case done:\n return done;\n default:\n Debug.fail(\"Invalid state\");\n }\n }\n BinaryExpressionState2.nextState = nextState;\n function pushStack(stackIndex, stateStack, nodeStack, userStateStack, node) {\n stackIndex++;\n stateStack[stackIndex] = enter;\n nodeStack[stackIndex] = node;\n userStateStack[stackIndex] = void 0;\n return stackIndex;\n }\n function checkCircularity(stackIndex, nodeStack, node) {\n if (Debug.shouldAssert(2 /* Aggressive */)) {\n while (stackIndex >= 0) {\n Debug.assert(nodeStack[stackIndex] !== node, \"Circular traversal detected.\");\n stackIndex--;\n }\n }\n }\n})(BinaryExpressionState || (BinaryExpressionState = {}));\nvar BinaryExpressionStateMachine = class {\n constructor(onEnter, onLeft, onOperator, onRight, onExit, foldState) {\n this.onEnter = onEnter;\n this.onLeft = onLeft;\n this.onOperator = onOperator;\n this.onRight = onRight;\n this.onExit = onExit;\n this.foldState = foldState;\n }\n};\nfunction createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState) {\n const machine = new BinaryExpressionStateMachine(onEnter, onLeft, onOperator, onRight, onExit, foldState);\n return trampoline;\n function trampoline(node, outerState) {\n const resultHolder = { value: void 0 };\n const stateStack = [BinaryExpressionState.enter];\n const nodeStack = [node];\n const userStateStack = [void 0];\n let stackIndex = 0;\n while (stateStack[stackIndex] !== BinaryExpressionState.done) {\n stackIndex = stateStack[stackIndex](machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, outerState);\n }\n Debug.assertEqual(stackIndex, 0);\n return resultHolder.value;\n }\n}\nfunction isExportOrDefaultKeywordKind(kind) {\n return kind === 95 /* ExportKeyword */ || kind === 90 /* DefaultKeyword */;\n}\nfunction isExportOrDefaultModifier(node) {\n const kind = node.kind;\n return isExportOrDefaultKeywordKind(kind);\n}\nfunction elideNodes(factory2, nodes) {\n if (nodes === void 0) return void 0;\n if (nodes.length === 0) return nodes;\n return setTextRange(factory2.createNodeArray([], nodes.hasTrailingComma), nodes);\n}\nfunction getNodeForGeneratedName(name) {\n var _a;\n const autoGenerate = name.emitNode.autoGenerate;\n if (autoGenerate.flags & 4 /* Node */) {\n const autoGenerateId = autoGenerate.id;\n let node = name;\n let original = node.original;\n while (original) {\n node = original;\n const autoGenerate2 = (_a = node.emitNode) == null ? void 0 : _a.autoGenerate;\n if (isMemberName(node) && (autoGenerate2 === void 0 || !!(autoGenerate2.flags & 4 /* Node */) && autoGenerate2.id !== autoGenerateId)) {\n break;\n }\n original = node.original;\n }\n return node;\n }\n return name;\n}\nfunction formatGeneratedNamePart(part, generateName) {\n return typeof part === \"object\" ? formatGeneratedName(\n /*privateName*/\n false,\n part.prefix,\n part.node,\n part.suffix,\n generateName\n ) : typeof part === \"string\" ? part.length > 0 && part.charCodeAt(0) === 35 /* hash */ ? part.slice(1) : part : \"\";\n}\nfunction formatIdentifier(name, generateName) {\n return typeof name === \"string\" ? name : formatIdentifierWorker(name, Debug.checkDefined(generateName));\n}\nfunction formatIdentifierWorker(node, generateName) {\n return isGeneratedPrivateIdentifier(node) ? generateName(node).slice(1) : isGeneratedIdentifier(node) ? generateName(node) : isPrivateIdentifier(node) ? node.escapedText.slice(1) : idText(node);\n}\nfunction formatGeneratedName(privateName, prefix, baseName, suffix, generateName) {\n prefix = formatGeneratedNamePart(prefix, generateName);\n suffix = formatGeneratedNamePart(suffix, generateName);\n baseName = formatIdentifier(baseName, generateName);\n return `${privateName ? \"#\" : \"\"}${prefix}${baseName}${suffix}`;\n}\nfunction createAccessorPropertyBackingField(factory2, node, modifiers, initializer) {\n return factory2.updatePropertyDeclaration(\n node,\n modifiers,\n factory2.getGeneratedPrivateNameForNode(\n node.name,\n /*prefix*/\n void 0,\n \"_accessor_storage\"\n ),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n );\n}\nfunction createAccessorPropertyGetRedirector(factory2, node, modifiers, name, receiver = factory2.createThis()) {\n return factory2.createGetAccessorDeclaration(\n modifiers,\n name,\n [],\n /*type*/\n void 0,\n factory2.createBlock([\n factory2.createReturnStatement(\n factory2.createPropertyAccessExpression(\n receiver,\n factory2.getGeneratedPrivateNameForNode(\n node.name,\n /*prefix*/\n void 0,\n \"_accessor_storage\"\n )\n )\n )\n ])\n );\n}\nfunction createAccessorPropertySetRedirector(factory2, node, modifiers, name, receiver = factory2.createThis()) {\n return factory2.createSetAccessorDeclaration(\n modifiers,\n name,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"value\"\n )],\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(\n receiver,\n factory2.getGeneratedPrivateNameForNode(\n node.name,\n /*prefix*/\n void 0,\n \"_accessor_storage\"\n )\n ),\n factory2.createIdentifier(\"value\")\n )\n )\n ])\n );\n}\nfunction findComputedPropertyNameCacheAssignment(name) {\n let node = name.expression;\n while (true) {\n node = skipOuterExpressions(node);\n if (isCommaListExpression(node)) {\n node = last(node.elements);\n continue;\n }\n if (isCommaExpression(node)) {\n node = node.right;\n continue;\n }\n if (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n ) && isGeneratedIdentifier(node.left)) {\n return node;\n }\n break;\n }\n}\nfunction isSyntheticParenthesizedExpression(node) {\n return isParenthesizedExpression(node) && nodeIsSynthesized(node) && !node.emitNode;\n}\nfunction flattenCommaListWorker(node, expressions) {\n if (isSyntheticParenthesizedExpression(node)) {\n flattenCommaListWorker(node.expression, expressions);\n } else if (isCommaExpression(node)) {\n flattenCommaListWorker(node.left, expressions);\n flattenCommaListWorker(node.right, expressions);\n } else if (isCommaListExpression(node)) {\n for (const child of node.elements) {\n flattenCommaListWorker(child, expressions);\n }\n } else {\n expressions.push(node);\n }\n}\nfunction flattenCommaList(node) {\n const expressions = [];\n flattenCommaListWorker(node, expressions);\n return expressions;\n}\nfunction containsObjectRestOrSpread(node) {\n if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) return true;\n if (node.transformFlags & 128 /* ContainsES2018 */) {\n for (const element of getElementsOfBindingOrAssignmentPattern(node)) {\n const target = getTargetOfBindingOrAssignmentElement(element);\n if (target && isAssignmentPattern(target)) {\n if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n return true;\n }\n if (target.transformFlags & 128 /* ContainsES2018 */) {\n if (containsObjectRestOrSpread(target)) return true;\n }\n }\n }\n }\n return false;\n}\n\n// src/compiler/factory/utilitiesPublic.ts\nfunction setTextRange(range, location) {\n return location ? setTextRangePosEnd(range, location.pos, location.end) : range;\n}\nfunction canHaveModifiers(node) {\n const kind = node.kind;\n return kind === 169 /* TypeParameter */ || kind === 170 /* Parameter */ || kind === 172 /* PropertySignature */ || kind === 173 /* PropertyDeclaration */ || kind === 174 /* MethodSignature */ || kind === 175 /* MethodDeclaration */ || kind === 177 /* Constructor */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 182 /* IndexSignature */ || kind === 186 /* ConstructorType */ || kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */ || kind === 232 /* ClassExpression */ || kind === 244 /* VariableStatement */ || kind === 263 /* FunctionDeclaration */ || kind === 264 /* ClassDeclaration */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 278 /* ExportAssignment */ || kind === 279 /* ExportDeclaration */;\n}\nfunction canHaveDecorators(node) {\n const kind = node.kind;\n return kind === 170 /* Parameter */ || kind === 173 /* PropertyDeclaration */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 232 /* ClassExpression */ || kind === 264 /* ClassDeclaration */;\n}\n\n// src/compiler/parser.ts\nvar NodeConstructor;\nvar TokenConstructor;\nvar IdentifierConstructor;\nvar PrivateIdentifierConstructor;\nvar SourceFileConstructor;\nvar parseBaseNodeFactory = {\n createBaseSourceFileNode: (kind) => new (SourceFileConstructor || (SourceFileConstructor = objectAllocator.getSourceFileConstructor()))(kind, -1, -1),\n createBaseIdentifierNode: (kind) => new (IdentifierConstructor || (IdentifierConstructor = objectAllocator.getIdentifierConstructor()))(kind, -1, -1),\n createBasePrivateIdentifierNode: (kind) => new (PrivateIdentifierConstructor || (PrivateIdentifierConstructor = objectAllocator.getPrivateIdentifierConstructor()))(kind, -1, -1),\n createBaseTokenNode: (kind) => new (TokenConstructor || (TokenConstructor = objectAllocator.getTokenConstructor()))(kind, -1, -1),\n createBaseNode: (kind) => new (NodeConstructor || (NodeConstructor = objectAllocator.getNodeConstructor()))(kind, -1, -1)\n};\nvar parseNodeFactory = createNodeFactory(1 /* NoParenthesizerRules */, parseBaseNodeFactory);\nfunction visitNode2(cbNode, node) {\n return node && cbNode(node);\n}\nfunction visitNodes(cbNode, cbNodes, nodes) {\n if (nodes) {\n if (cbNodes) {\n return cbNodes(nodes);\n }\n for (const node of nodes) {\n const result = cbNode(node);\n if (result) {\n return result;\n }\n }\n }\n}\nfunction isJSDocLikeText(text, start) {\n return text.charCodeAt(start + 1) === 42 /* asterisk */ && text.charCodeAt(start + 2) === 42 /* asterisk */ && text.charCodeAt(start + 3) !== 47 /* slash */;\n}\nfunction isFileProbablyExternalModule(sourceFile) {\n return forEach(sourceFile.statements, isAnExternalModuleIndicatorNode) || getImportMetaIfNecessary(sourceFile);\n}\nfunction isAnExternalModuleIndicatorNode(node) {\n return canHaveModifiers(node) && hasModifierOfKind(node, 95 /* ExportKeyword */) || isImportEqualsDeclaration(node) && isExternalModuleReference(node.moduleReference) || isImportDeclaration(node) || isExportAssignment(node) || isExportDeclaration(node) ? node : void 0;\n}\nfunction getImportMetaIfNecessary(sourceFile) {\n return sourceFile.flags & 8388608 /* PossiblyContainsImportMeta */ ? walkTreeForImportMeta(sourceFile) : void 0;\n}\nfunction walkTreeForImportMeta(node) {\n return isImportMeta2(node) ? node : forEachChild(node, walkTreeForImportMeta);\n}\nfunction hasModifierOfKind(node, kind) {\n return some(node.modifiers, (m) => m.kind === kind);\n}\nfunction isImportMeta2(node) {\n return isMetaProperty(node) && node.keywordToken === 102 /* ImportKeyword */ && node.name.escapedText === \"meta\";\n}\nvar forEachChildTable = {\n [167 /* QualifiedName */]: function forEachChildInQualifiedName(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right);\n },\n [169 /* TypeParameter */]: function forEachChildInTypeParameter(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.constraint) || visitNode2(cbNode, node.default) || visitNode2(cbNode, node.expression);\n },\n [305 /* ShorthandPropertyAssignment */]: function forEachChildInShorthandPropertyAssignment(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.equalsToken) || visitNode2(cbNode, node.objectAssignmentInitializer);\n },\n [306 /* SpreadAssignment */]: function forEachChildInSpreadAssignment(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [170 /* Parameter */]: function forEachChildInParameter(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n },\n [173 /* PropertyDeclaration */]: function forEachChildInPropertyDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n },\n [172 /* PropertySignature */]: function forEachChildInPropertySignature(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n },\n [304 /* PropertyAssignment */]: function forEachChildInPropertyAssignment(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.initializer);\n },\n [261 /* VariableDeclaration */]: function forEachChildInVariableDeclaration(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n },\n [209 /* BindingElement */]: function forEachChildInBindingElement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n },\n [182 /* IndexSignature */]: function forEachChildInIndexSignature(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n },\n [186 /* ConstructorType */]: function forEachChildInConstructorType(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n },\n [185 /* FunctionType */]: function forEachChildInFunctionType(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n },\n [180 /* CallSignature */]: forEachChildInCallOrConstructSignature,\n [181 /* ConstructSignature */]: forEachChildInCallOrConstructSignature,\n [175 /* MethodDeclaration */]: function forEachChildInMethodDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [174 /* MethodSignature */]: function forEachChildInMethodSignature(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n },\n [177 /* Constructor */]: function forEachChildInConstructor(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [178 /* GetAccessor */]: function forEachChildInGetAccessor(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [179 /* SetAccessor */]: function forEachChildInSetAccessor(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [263 /* FunctionDeclaration */]: function forEachChildInFunctionDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [219 /* FunctionExpression */]: function forEachChildInFunctionExpression(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n },\n [220 /* ArrowFunction */]: function forEachChildInArrowFunction(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.equalsGreaterThanToken) || visitNode2(cbNode, node.body);\n },\n [176 /* ClassStaticBlockDeclaration */]: function forEachChildInClassStaticBlockDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.body);\n },\n [184 /* TypeReference */]: function forEachChildInTypeReference(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.typeName) || visitNodes(cbNode, cbNodes, node.typeArguments);\n },\n [183 /* TypePredicate */]: function forEachChildInTypePredicate(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.assertsModifier) || visitNode2(cbNode, node.parameterName) || visitNode2(cbNode, node.type);\n },\n [187 /* TypeQuery */]: function forEachChildInTypeQuery(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.exprName) || visitNodes(cbNode, cbNodes, node.typeArguments);\n },\n [188 /* TypeLiteral */]: function forEachChildInTypeLiteral(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.members);\n },\n [189 /* ArrayType */]: function forEachChildInArrayType(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.elementType);\n },\n [190 /* TupleType */]: function forEachChildInTupleType(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n },\n [193 /* UnionType */]: forEachChildInUnionOrIntersectionType,\n [194 /* IntersectionType */]: forEachChildInUnionOrIntersectionType,\n [195 /* ConditionalType */]: function forEachChildInConditionalType(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.checkType) || visitNode2(cbNode, node.extendsType) || visitNode2(cbNode, node.trueType) || visitNode2(cbNode, node.falseType);\n },\n [196 /* InferType */]: function forEachChildInInferType(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.typeParameter);\n },\n [206 /* ImportType */]: function forEachChildInImportType(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.argument) || visitNode2(cbNode, node.attributes) || visitNode2(cbNode, node.qualifier) || visitNodes(cbNode, cbNodes, node.typeArguments);\n },\n [303 /* ImportTypeAssertionContainer */]: function forEachChildInImportTypeAssertionContainer(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.assertClause);\n },\n [197 /* ParenthesizedType */]: forEachChildInParenthesizedTypeOrTypeOperator,\n [199 /* TypeOperator */]: forEachChildInParenthesizedTypeOrTypeOperator,\n [200 /* IndexedAccessType */]: function forEachChildInIndexedAccessType(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.objectType) || visitNode2(cbNode, node.indexType);\n },\n [201 /* MappedType */]: function forEachChildInMappedType(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.readonlyToken) || visitNode2(cbNode, node.typeParameter) || visitNode2(cbNode, node.nameType) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNodes(cbNode, cbNodes, node.members);\n },\n [202 /* LiteralType */]: function forEachChildInLiteralType(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.literal);\n },\n [203 /* NamedTupleMember */]: function forEachChildInNamedTupleMember(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type);\n },\n [207 /* ObjectBindingPattern */]: forEachChildInObjectOrArrayBindingPattern,\n [208 /* ArrayBindingPattern */]: forEachChildInObjectOrArrayBindingPattern,\n [210 /* ArrayLiteralExpression */]: function forEachChildInArrayLiteralExpression(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n },\n [211 /* ObjectLiteralExpression */]: function forEachChildInObjectLiteralExpression(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.properties);\n },\n [212 /* PropertyAccessExpression */]: function forEachChildInPropertyAccessExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.name);\n },\n [213 /* ElementAccessExpression */]: function forEachChildInElementAccessExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.argumentExpression);\n },\n [214 /* CallExpression */]: forEachChildInCallOrNewExpression,\n [215 /* NewExpression */]: forEachChildInCallOrNewExpression,\n [216 /* TaggedTemplateExpression */]: function forEachChildInTaggedTemplateExpression(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tag) || visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.template);\n },\n [217 /* TypeAssertionExpression */]: function forEachChildInTypeAssertionExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.expression);\n },\n [218 /* ParenthesizedExpression */]: function forEachChildInParenthesizedExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [221 /* DeleteExpression */]: function forEachChildInDeleteExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [222 /* TypeOfExpression */]: function forEachChildInTypeOfExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [223 /* VoidExpression */]: function forEachChildInVoidExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [225 /* PrefixUnaryExpression */]: function forEachChildInPrefixUnaryExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.operand);\n },\n [230 /* YieldExpression */]: function forEachChildInYieldExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.expression);\n },\n [224 /* AwaitExpression */]: function forEachChildInAwaitExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [226 /* PostfixUnaryExpression */]: function forEachChildInPostfixUnaryExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.operand);\n },\n [227 /* BinaryExpression */]: function forEachChildInBinaryExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.operatorToken) || visitNode2(cbNode, node.right);\n },\n [235 /* AsExpression */]: function forEachChildInAsExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type);\n },\n [236 /* NonNullExpression */]: function forEachChildInNonNullExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [239 /* SatisfiesExpression */]: function forEachChildInSatisfiesExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type);\n },\n [237 /* MetaProperty */]: function forEachChildInMetaProperty(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name);\n },\n [228 /* ConditionalExpression */]: function forEachChildInConditionalExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.whenTrue) || visitNode2(cbNode, node.colonToken) || visitNode2(cbNode, node.whenFalse);\n },\n [231 /* SpreadElement */]: function forEachChildInSpreadElement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [242 /* Block */]: forEachChildInBlock,\n [269 /* ModuleBlock */]: forEachChildInBlock,\n [308 /* SourceFile */]: function forEachChildInSourceFile(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.statements) || visitNode2(cbNode, node.endOfFileToken);\n },\n [244 /* VariableStatement */]: function forEachChildInVariableStatement(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.declarationList);\n },\n [262 /* VariableDeclarationList */]: function forEachChildInVariableDeclarationList(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.declarations);\n },\n [245 /* ExpressionStatement */]: function forEachChildInExpressionStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [246 /* IfStatement */]: function forEachChildInIfStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.thenStatement) || visitNode2(cbNode, node.elseStatement);\n },\n [247 /* DoStatement */]: function forEachChildInDoStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.statement) || visitNode2(cbNode, node.expression);\n },\n [248 /* WhileStatement */]: function forEachChildInWhileStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n },\n [249 /* ForStatement */]: function forEachChildInForStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.incrementor) || visitNode2(cbNode, node.statement);\n },\n [250 /* ForInStatement */]: function forEachChildInForInStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n },\n [251 /* ForOfStatement */]: function forEachChildInForOfStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.awaitModifier) || visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n },\n [252 /* ContinueStatement */]: forEachChildInContinueOrBreakStatement,\n [253 /* BreakStatement */]: forEachChildInContinueOrBreakStatement,\n [254 /* ReturnStatement */]: function forEachChildInReturnStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [255 /* WithStatement */]: function forEachChildInWithStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n },\n [256 /* SwitchStatement */]: function forEachChildInSwitchStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.caseBlock);\n },\n [270 /* CaseBlock */]: function forEachChildInCaseBlock(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.clauses);\n },\n [297 /* CaseClause */]: function forEachChildInCaseClause(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.statements);\n },\n [298 /* DefaultClause */]: function forEachChildInDefaultClause(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.statements);\n },\n [257 /* LabeledStatement */]: function forEachChildInLabeledStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.label) || visitNode2(cbNode, node.statement);\n },\n [258 /* ThrowStatement */]: function forEachChildInThrowStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [259 /* TryStatement */]: function forEachChildInTryStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.tryBlock) || visitNode2(cbNode, node.catchClause) || visitNode2(cbNode, node.finallyBlock);\n },\n [300 /* CatchClause */]: function forEachChildInCatchClause(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.variableDeclaration) || visitNode2(cbNode, node.block);\n },\n [171 /* Decorator */]: function forEachChildInDecorator(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [264 /* ClassDeclaration */]: forEachChildInClassDeclarationOrExpression,\n [232 /* ClassExpression */]: forEachChildInClassDeclarationOrExpression,\n [265 /* InterfaceDeclaration */]: function forEachChildInInterfaceDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members);\n },\n [266 /* TypeAliasDeclaration */]: function forEachChildInTypeAliasDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNode2(cbNode, node.type);\n },\n [267 /* EnumDeclaration */]: function forEachChildInEnumDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.members);\n },\n [307 /* EnumMember */]: function forEachChildInEnumMember(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n },\n [268 /* ModuleDeclaration */]: function forEachChildInModuleDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.body);\n },\n [272 /* ImportEqualsDeclaration */]: function forEachChildInImportEqualsDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.moduleReference);\n },\n [273 /* ImportDeclaration */]: function forEachChildInImportDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.importClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes);\n },\n [274 /* ImportClause */]: function forEachChildInImportClause(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.namedBindings);\n },\n [301 /* ImportAttributes */]: function forEachChildInImportAttributes(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n },\n [302 /* ImportAttribute */]: function forEachChildInImportAttribute(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.value);\n },\n [271 /* NamespaceExportDeclaration */]: function forEachChildInNamespaceExportDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name);\n },\n [275 /* NamespaceImport */]: function forEachChildInNamespaceImport(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name);\n },\n [281 /* NamespaceExport */]: function forEachChildInNamespaceExport(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name);\n },\n [276 /* NamedImports */]: forEachChildInNamedImportsOrExports,\n [280 /* NamedExports */]: forEachChildInNamedImportsOrExports,\n [279 /* ExportDeclaration */]: function forEachChildInExportDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.exportClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes);\n },\n [277 /* ImportSpecifier */]: forEachChildInImportOrExportSpecifier,\n [282 /* ExportSpecifier */]: forEachChildInImportOrExportSpecifier,\n [278 /* ExportAssignment */]: function forEachChildInExportAssignment(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.expression);\n },\n [229 /* TemplateExpression */]: function forEachChildInTemplateExpression(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans);\n },\n [240 /* TemplateSpan */]: function forEachChildInTemplateSpan(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.literal);\n },\n [204 /* TemplateLiteralType */]: function forEachChildInTemplateLiteralType(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans);\n },\n [205 /* TemplateLiteralTypeSpan */]: function forEachChildInTemplateLiteralTypeSpan(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.literal);\n },\n [168 /* ComputedPropertyName */]: function forEachChildInComputedPropertyName(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [299 /* HeritageClause */]: function forEachChildInHeritageClause(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.types);\n },\n [234 /* ExpressionWithTypeArguments */]: function forEachChildInExpressionWithTypeArguments(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.typeArguments);\n },\n [284 /* ExternalModuleReference */]: function forEachChildInExternalModuleReference(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [283 /* MissingDeclaration */]: function forEachChildInMissingDeclaration(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers);\n },\n [357 /* CommaListExpression */]: function forEachChildInCommaListExpression(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n },\n [285 /* JsxElement */]: function forEachChildInJsxElement(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.openingElement) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingElement);\n },\n [289 /* JsxFragment */]: function forEachChildInJsxFragment(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.openingFragment) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingFragment);\n },\n [286 /* JsxSelfClosingElement */]: forEachChildInJsxOpeningOrSelfClosingElement,\n [287 /* JsxOpeningElement */]: forEachChildInJsxOpeningOrSelfClosingElement,\n [293 /* JsxAttributes */]: function forEachChildInJsxAttributes(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.properties);\n },\n [292 /* JsxAttribute */]: function forEachChildInJsxAttribute(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n },\n [294 /* JsxSpreadAttribute */]: function forEachChildInJsxSpreadAttribute(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n },\n [295 /* JsxExpression */]: function forEachChildInJsxExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.expression);\n },\n [288 /* JsxClosingElement */]: function forEachChildInJsxClosingElement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.tagName);\n },\n [296 /* JsxNamespacedName */]: function forEachChildInJsxNamespacedName(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.namespace) || visitNode2(cbNode, node.name);\n },\n [191 /* OptionalType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [192 /* RestType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [310 /* JSDocTypeExpression */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [316 /* JSDocNonNullableType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [315 /* JSDocNullableType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [317 /* JSDocOptionalType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [319 /* JSDocVariadicType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n [318 /* JSDocFunctionType */]: function forEachChildInJSDocFunctionType(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n },\n [321 /* JSDoc */]: function forEachChildInJSDoc(node, cbNode, cbNodes) {\n return (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) || visitNodes(cbNode, cbNodes, node.tags);\n },\n [348 /* JSDocSeeTag */]: function forEachChildInJSDocSeeTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.name) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [311 /* JSDocNameReference */]: function forEachChildInJSDocNameReference(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name);\n },\n [312 /* JSDocMemberName */]: function forEachChildInJSDocMemberName(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right);\n },\n [342 /* JSDocParameterTag */]: forEachChildInJSDocParameterOrPropertyTag,\n [349 /* JSDocPropertyTag */]: forEachChildInJSDocParameterOrPropertyTag,\n [331 /* JSDocAuthorTag */]: function forEachChildInJSDocAuthorTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [330 /* JSDocImplementsTag */]: function forEachChildInJSDocImplementsTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [329 /* JSDocAugmentsTag */]: function forEachChildInJSDocAugmentsTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [346 /* JSDocTemplateTag */]: function forEachChildInJSDocTemplateTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.constraint) || visitNodes(cbNode, cbNodes, node.typeParameters) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [347 /* JSDocTypedefTag */]: function forEachChildInJSDocTypedefTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || (node.typeExpression && node.typeExpression.kind === 310 /* JSDocTypeExpression */ ? visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.fullName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) : visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)));\n },\n [339 /* JSDocCallbackTag */]: function forEachChildInJSDocCallbackTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n },\n [343 /* JSDocReturnTag */]: forEachChildInJSDocTypeLikeTag,\n [345 /* JSDocTypeTag */]: forEachChildInJSDocTypeLikeTag,\n [344 /* JSDocThisTag */]: forEachChildInJSDocTypeLikeTag,\n [341 /* JSDocEnumTag */]: forEachChildInJSDocTypeLikeTag,\n [351 /* JSDocSatisfiesTag */]: forEachChildInJSDocTypeLikeTag,\n [350 /* JSDocThrowsTag */]: forEachChildInJSDocTypeLikeTag,\n [340 /* JSDocOverloadTag */]: forEachChildInJSDocTypeLikeTag,\n [324 /* JSDocSignature */]: function forEachChildInJSDocSignature(node, cbNode, _cbNodes) {\n return forEach(node.typeParameters, cbNode) || forEach(node.parameters, cbNode) || visitNode2(cbNode, node.type);\n },\n [325 /* JSDocLink */]: forEachChildInJSDocLinkCodeOrPlain,\n [326 /* JSDocLinkCode */]: forEachChildInJSDocLinkCodeOrPlain,\n [327 /* JSDocLinkPlain */]: forEachChildInJSDocLinkCodeOrPlain,\n [323 /* JSDocTypeLiteral */]: function forEachChildInJSDocTypeLiteral(node, cbNode, _cbNodes) {\n return forEach(node.jsDocPropertyTags, cbNode);\n },\n [328 /* JSDocTag */]: forEachChildInJSDocTag,\n [333 /* JSDocClassTag */]: forEachChildInJSDocTag,\n [334 /* JSDocPublicTag */]: forEachChildInJSDocTag,\n [335 /* JSDocPrivateTag */]: forEachChildInJSDocTag,\n [336 /* JSDocProtectedTag */]: forEachChildInJSDocTag,\n [337 /* JSDocReadonlyTag */]: forEachChildInJSDocTag,\n [332 /* JSDocDeprecatedTag */]: forEachChildInJSDocTag,\n [338 /* JSDocOverrideTag */]: forEachChildInJSDocTag,\n [352 /* JSDocImportTag */]: forEachChildInJSDocImportTag,\n [356 /* PartiallyEmittedExpression */]: forEachChildInPartiallyEmittedExpression\n};\nfunction forEachChildInCallOrConstructSignature(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n}\nfunction forEachChildInUnionOrIntersectionType(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.types);\n}\nfunction forEachChildInParenthesizedTypeOrTypeOperator(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.type);\n}\nfunction forEachChildInObjectOrArrayBindingPattern(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n}\nfunction forEachChildInCallOrNewExpression(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.expression) || // TODO: should we separate these branches out?\n visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNodes(cbNode, cbNodes, node.arguments);\n}\nfunction forEachChildInBlock(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.statements);\n}\nfunction forEachChildInContinueOrBreakStatement(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.label);\n}\nfunction forEachChildInClassDeclarationOrExpression(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members);\n}\nfunction forEachChildInNamedImportsOrExports(node, cbNode, cbNodes) {\n return visitNodes(cbNode, cbNodes, node.elements);\n}\nfunction forEachChildInImportOrExportSpecifier(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name);\n}\nfunction forEachChildInJsxOpeningOrSelfClosingElement(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.attributes);\n}\nfunction forEachChildInOptionalRestOrJSDocParameterModifier(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.type);\n}\nfunction forEachChildInJSDocParameterOrPropertyTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || (node.isNameFirst ? visitNode2(cbNode, node.name) || visitNode2(cbNode, node.typeExpression) : visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.name)) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocTypeLikeTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocLinkCodeOrPlain(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.name);\n}\nfunction forEachChildInJSDocTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocImportTag(node, cbNode, cbNodes) {\n return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.importClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInPartiallyEmittedExpression(node, cbNode, _cbNodes) {\n return visitNode2(cbNode, node.expression);\n}\nfunction forEachChild(node, cbNode, cbNodes) {\n if (node === void 0 || node.kind <= 166 /* LastToken */) {\n return;\n }\n const fn = forEachChildTable[node.kind];\n return fn === void 0 ? void 0 : fn(node, cbNode, cbNodes);\n}\nfunction forEachChildRecursively(rootNode, cbNode, cbNodes) {\n const queue = gatherPossibleChildren(rootNode);\n const parents = [];\n while (parents.length < queue.length) {\n parents.push(rootNode);\n }\n while (queue.length !== 0) {\n const current = queue.pop();\n const parent2 = parents.pop();\n if (isArray(current)) {\n if (cbNodes) {\n const res = cbNodes(current, parent2);\n if (res) {\n if (res === \"skip\") continue;\n return res;\n }\n }\n for (let i = current.length - 1; i >= 0; --i) {\n queue.push(current[i]);\n parents.push(parent2);\n }\n } else {\n const res = cbNode(current, parent2);\n if (res) {\n if (res === \"skip\") continue;\n return res;\n }\n if (current.kind >= 167 /* FirstNode */) {\n for (const child of gatherPossibleChildren(current)) {\n queue.push(child);\n parents.push(current);\n }\n }\n }\n }\n}\nfunction gatherPossibleChildren(node) {\n const children = [];\n forEachChild(node, addWorkItem, addWorkItem);\n return children;\n function addWorkItem(n) {\n children.unshift(n);\n }\n}\nfunction setExternalModuleIndicator(sourceFile) {\n sourceFile.externalModuleIndicator = isFileProbablyExternalModule(sourceFile);\n}\nfunction createSourceFile(fileName, sourceText, languageVersionOrOptions, setParentNodes = false, scriptKind) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(\n tracing.Phase.Parse,\n \"createSourceFile\",\n { path: fileName },\n /*separateBeginAndEnd*/\n true\n );\n mark(\"beforeParse\");\n let result;\n const {\n languageVersion,\n setExternalModuleIndicator: overrideSetExternalModuleIndicator,\n impliedNodeFormat: format,\n jsDocParsingMode\n } = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions : { languageVersion: languageVersionOrOptions };\n if (languageVersion === 100 /* JSON */) {\n result = Parser.parseSourceFile(\n fileName,\n sourceText,\n languageVersion,\n /*syntaxCursor*/\n void 0,\n setParentNodes,\n 6 /* JSON */,\n noop,\n jsDocParsingMode\n );\n } else {\n const setIndicator = format === void 0 ? overrideSetExternalModuleIndicator : (file) => {\n file.impliedNodeFormat = format;\n return (overrideSetExternalModuleIndicator || setExternalModuleIndicator)(file);\n };\n result = Parser.parseSourceFile(\n fileName,\n sourceText,\n languageVersion,\n /*syntaxCursor*/\n void 0,\n setParentNodes,\n scriptKind,\n setIndicator,\n jsDocParsingMode\n );\n }\n mark(\"afterParse\");\n measure(\"Parse\", \"beforeParse\", \"afterParse\");\n (_b = tracing) == null ? void 0 : _b.pop();\n return result;\n}\nfunction parseIsolatedEntityName(text, languageVersion) {\n return Parser.parseIsolatedEntityName(text, languageVersion);\n}\nfunction parseJsonText(fileName, sourceText) {\n return Parser.parseJsonText(fileName, sourceText);\n}\nfunction isExternalModule(file) {\n return file.externalModuleIndicator !== void 0;\n}\nfunction updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks = false) {\n const newSourceFile = IncrementalParser.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);\n newSourceFile.flags |= sourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */;\n return newSourceFile;\n}\nfunction parseIsolatedJSDocComment(content, start, length2) {\n const result = Parser.JSDocParser.parseIsolatedJSDocComment(content, start, length2);\n if (result && result.jsDoc) {\n Parser.fixupParentReferences(result.jsDoc);\n }\n return result;\n}\nfunction parseJSDocTypeExpressionForTests(content, start, length2) {\n return Parser.JSDocParser.parseJSDocTypeExpressionForTests(content, start, length2);\n}\nvar Parser;\n((Parser2) => {\n var scanner2 = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n true\n );\n var disallowInAndDecoratorContext = 8192 /* DisallowInContext */ | 32768 /* DecoratorContext */;\n var NodeConstructor2;\n var TokenConstructor2;\n var IdentifierConstructor2;\n var PrivateIdentifierConstructor2;\n var SourceFileConstructor2;\n function countNode(node) {\n nodeCount++;\n return node;\n }\n var baseNodeFactory = {\n createBaseSourceFileNode: (kind) => countNode(new SourceFileConstructor2(\n kind,\n /*pos*/\n 0,\n /*end*/\n 0\n )),\n createBaseIdentifierNode: (kind) => countNode(new IdentifierConstructor2(\n kind,\n /*pos*/\n 0,\n /*end*/\n 0\n )),\n createBasePrivateIdentifierNode: (kind) => countNode(new PrivateIdentifierConstructor2(\n kind,\n /*pos*/\n 0,\n /*end*/\n 0\n )),\n createBaseTokenNode: (kind) => countNode(new TokenConstructor2(\n kind,\n /*pos*/\n 0,\n /*end*/\n 0\n )),\n createBaseNode: (kind) => countNode(new NodeConstructor2(\n kind,\n /*pos*/\n 0,\n /*end*/\n 0\n ))\n };\n var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);\n var {\n createNodeArray: factoryCreateNodeArray,\n createNumericLiteral: factoryCreateNumericLiteral,\n createStringLiteral: factoryCreateStringLiteral,\n createLiteralLikeNode: factoryCreateLiteralLikeNode,\n createIdentifier: factoryCreateIdentifier,\n createPrivateIdentifier: factoryCreatePrivateIdentifier,\n createToken: factoryCreateToken,\n createArrayLiteralExpression: factoryCreateArrayLiteralExpression,\n createObjectLiteralExpression: factoryCreateObjectLiteralExpression,\n createPropertyAccessExpression: factoryCreatePropertyAccessExpression,\n createPropertyAccessChain: factoryCreatePropertyAccessChain,\n createElementAccessExpression: factoryCreateElementAccessExpression,\n createElementAccessChain: factoryCreateElementAccessChain,\n createCallExpression: factoryCreateCallExpression,\n createCallChain: factoryCreateCallChain,\n createNewExpression: factoryCreateNewExpression,\n createParenthesizedExpression: factoryCreateParenthesizedExpression,\n createBlock: factoryCreateBlock,\n createVariableStatement: factoryCreateVariableStatement,\n createExpressionStatement: factoryCreateExpressionStatement,\n createIfStatement: factoryCreateIfStatement,\n createWhileStatement: factoryCreateWhileStatement,\n createForStatement: factoryCreateForStatement,\n createForOfStatement: factoryCreateForOfStatement,\n createVariableDeclaration: factoryCreateVariableDeclaration,\n createVariableDeclarationList: factoryCreateVariableDeclarationList\n } = factory2;\n var fileName;\n var sourceFlags;\n var sourceText;\n var languageVersion;\n var scriptKind;\n var languageVariant;\n var parseDiagnostics;\n var jsDocDiagnostics;\n var syntaxCursor;\n var currentToken;\n var nodeCount;\n var identifiers;\n var identifierCount;\n var parsingContext;\n var notParenthesizedArrow;\n var contextFlags;\n var topLevel = true;\n var parseErrorBeforeNextFinishedNode = false;\n function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride, jsDocParsingMode = 0 /* ParseAll */) {\n var _a;\n scriptKind2 = ensureScriptKind(fileName2, scriptKind2);\n if (scriptKind2 === 6 /* JSON */) {\n const result2 = parseJsonText2(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes);\n convertToJson(\n result2,\n (_a = result2.statements[0]) == null ? void 0 : _a.expression,\n result2.parseDiagnostics,\n /*returnValue*/\n false,\n /*jsonConversionNotifier*/\n void 0\n );\n result2.referencedFiles = emptyArray;\n result2.typeReferenceDirectives = emptyArray;\n result2.libReferenceDirectives = emptyArray;\n result2.amdDependencies = emptyArray;\n result2.hasNoDefaultLib = false;\n result2.pragmas = emptyMap;\n return result2;\n }\n initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, scriptKind2, jsDocParsingMode);\n const result = parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicatorOverride || setExternalModuleIndicator, jsDocParsingMode);\n clearState();\n return result;\n }\n Parser2.parseSourceFile = parseSourceFile;\n function parseIsolatedEntityName2(content, languageVersion2) {\n initializeState(\n \"\",\n content,\n languageVersion2,\n /*syntaxCursor*/\n void 0,\n 1 /* JS */,\n 0 /* ParseAll */\n );\n nextToken();\n const entityName = parseEntityName(\n /*allowReservedWords*/\n true\n );\n const isValid = token() === 1 /* EndOfFileToken */ && !parseDiagnostics.length;\n clearState();\n return isValid ? entityName : void 0;\n }\n Parser2.parseIsolatedEntityName = parseIsolatedEntityName2;\n function parseJsonText2(fileName2, sourceText2, languageVersion2 = 2 /* ES2015 */, syntaxCursor2, setParentNodes = false) {\n initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, 6 /* JSON */, 0 /* ParseAll */);\n sourceFlags = contextFlags;\n nextToken();\n const pos = getNodePos();\n let statements, endOfFileToken;\n if (token() === 1 /* EndOfFileToken */) {\n statements = createNodeArray([], pos, pos);\n endOfFileToken = parseTokenNode();\n } else {\n let expressions;\n while (token() !== 1 /* EndOfFileToken */) {\n let expression2;\n switch (token()) {\n case 23 /* OpenBracketToken */:\n expression2 = parseArrayLiteralExpression();\n break;\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n expression2 = parseTokenNode();\n break;\n case 41 /* MinusToken */:\n if (lookAhead(() => nextToken() === 9 /* NumericLiteral */ && nextToken() !== 59 /* ColonToken */)) {\n expression2 = parsePrefixUnaryExpression();\n } else {\n expression2 = parseObjectLiteralExpression();\n }\n break;\n case 9 /* NumericLiteral */:\n case 11 /* StringLiteral */:\n if (lookAhead(() => nextToken() !== 59 /* ColonToken */)) {\n expression2 = parseLiteralNode();\n break;\n }\n // falls through\n default:\n expression2 = parseObjectLiteralExpression();\n break;\n }\n if (expressions && isArray(expressions)) {\n expressions.push(expression2);\n } else if (expressions) {\n expressions = [expressions, expression2];\n } else {\n expressions = expression2;\n if (token() !== 1 /* EndOfFileToken */) {\n parseErrorAtCurrentToken(Diagnostics.Unexpected_token);\n }\n }\n }\n const expression = isArray(expressions) ? finishNode(factoryCreateArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);\n const statement = factoryCreateExpressionStatement(expression);\n finishNode(statement, pos);\n statements = createNodeArray([statement], pos);\n endOfFileToken = parseExpectedToken(1 /* EndOfFileToken */, Diagnostics.Unexpected_token);\n }\n const sourceFile = createSourceFile2(\n fileName2,\n 2 /* ES2015 */,\n 6 /* JSON */,\n /*isDeclarationFile*/\n false,\n statements,\n endOfFileToken,\n sourceFlags,\n noop\n );\n if (setParentNodes) {\n fixupParentReferences(sourceFile);\n }\n sourceFile.nodeCount = nodeCount;\n sourceFile.identifierCount = identifierCount;\n sourceFile.identifiers = identifiers;\n sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n if (jsDocDiagnostics) {\n sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n }\n const result = sourceFile;\n clearState();\n return result;\n }\n Parser2.parseJsonText = parseJsonText2;\n function initializeState(_fileName, _sourceText, _languageVersion, _syntaxCursor, _scriptKind, _jsDocParsingMode) {\n NodeConstructor2 = objectAllocator.getNodeConstructor();\n TokenConstructor2 = objectAllocator.getTokenConstructor();\n IdentifierConstructor2 = objectAllocator.getIdentifierConstructor();\n PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor();\n SourceFileConstructor2 = objectAllocator.getSourceFileConstructor();\n fileName = normalizePath(_fileName);\n sourceText = _sourceText;\n languageVersion = _languageVersion;\n syntaxCursor = _syntaxCursor;\n scriptKind = _scriptKind;\n languageVariant = getLanguageVariant(_scriptKind);\n parseDiagnostics = [];\n parsingContext = 0;\n identifiers = /* @__PURE__ */ new Map();\n identifierCount = 0;\n nodeCount = 0;\n sourceFlags = 0;\n topLevel = true;\n switch (scriptKind) {\n case 1 /* JS */:\n case 2 /* JSX */:\n contextFlags = 524288 /* JavaScriptFile */;\n break;\n case 6 /* JSON */:\n contextFlags = 524288 /* JavaScriptFile */ | 134217728 /* JsonFile */;\n break;\n default:\n contextFlags = 0 /* None */;\n break;\n }\n parseErrorBeforeNextFinishedNode = false;\n scanner2.setText(sourceText);\n scanner2.setOnError(scanError);\n scanner2.setScriptTarget(languageVersion);\n scanner2.setLanguageVariant(languageVariant);\n scanner2.setScriptKind(scriptKind);\n scanner2.setJSDocParsingMode(_jsDocParsingMode);\n }\n function clearState() {\n scanner2.clearCommentDirectives();\n scanner2.setText(\"\");\n scanner2.setOnError(void 0);\n scanner2.setScriptKind(0 /* Unknown */);\n scanner2.setJSDocParsingMode(0 /* ParseAll */);\n sourceText = void 0;\n languageVersion = void 0;\n syntaxCursor = void 0;\n scriptKind = void 0;\n languageVariant = void 0;\n sourceFlags = 0;\n parseDiagnostics = void 0;\n jsDocDiagnostics = void 0;\n parsingContext = 0;\n identifiers = void 0;\n notParenthesizedArrow = void 0;\n topLevel = true;\n }\n function parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicator2, jsDocParsingMode) {\n const isDeclarationFile = isDeclarationFileName(fileName);\n if (isDeclarationFile) {\n contextFlags |= 33554432 /* Ambient */;\n }\n sourceFlags = contextFlags;\n nextToken();\n const statements = parseList(0 /* SourceElements */, parseStatement);\n Debug.assert(token() === 1 /* EndOfFileToken */);\n const endHasJSDoc = hasPrecedingJSDocComment();\n const endOfFileToken = withJSDoc(parseTokenNode(), endHasJSDoc);\n const sourceFile = createSourceFile2(fileName, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator2);\n processCommentPragmas(sourceFile, sourceText);\n processPragmasIntoFields(sourceFile, reportPragmaDiagnostic);\n sourceFile.commentDirectives = scanner2.getCommentDirectives();\n sourceFile.nodeCount = nodeCount;\n sourceFile.identifierCount = identifierCount;\n sourceFile.identifiers = identifiers;\n sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n sourceFile.jsDocParsingMode = jsDocParsingMode;\n if (jsDocDiagnostics) {\n sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n }\n if (setParentNodes) {\n fixupParentReferences(sourceFile);\n }\n return sourceFile;\n function reportPragmaDiagnostic(pos, end, diagnostic) {\n parseDiagnostics.push(createDetachedDiagnostic(fileName, sourceText, pos, end, diagnostic));\n }\n }\n let hasDeprecatedTag = false;\n function withJSDoc(node, hasJSDoc) {\n if (!hasJSDoc) {\n return node;\n }\n Debug.assert(!node.jsDoc);\n const jsDoc = mapDefined(getJSDocCommentRanges(node, sourceText), (comment) => JSDocParser.parseJSDocComment(node, comment.pos, comment.end - comment.pos));\n if (jsDoc.length) node.jsDoc = jsDoc;\n if (hasDeprecatedTag) {\n hasDeprecatedTag = false;\n node.flags |= 536870912 /* Deprecated */;\n }\n return node;\n }\n function reparseTopLevelAwait(sourceFile) {\n const savedSyntaxCursor = syntaxCursor;\n const baseSyntaxCursor = IncrementalParser.createSyntaxCursor(sourceFile);\n syntaxCursor = { currentNode: currentNode2 };\n const statements = [];\n const savedParseDiagnostics = parseDiagnostics;\n parseDiagnostics = [];\n let pos = 0;\n let start = findNextStatementWithAwait(sourceFile.statements, 0);\n while (start !== -1) {\n const prevStatement = sourceFile.statements[pos];\n const nextStatement = sourceFile.statements[start];\n addRange(statements, sourceFile.statements, pos, start);\n pos = findNextStatementWithoutAwait(sourceFile.statements, start);\n const diagnosticStart = findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= prevStatement.pos);\n const diagnosticEnd = diagnosticStart >= 0 ? findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= nextStatement.pos, diagnosticStart) : -1;\n if (diagnosticStart >= 0) {\n addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart, diagnosticEnd >= 0 ? diagnosticEnd : void 0);\n }\n speculationHelper(() => {\n const savedContextFlags = contextFlags;\n contextFlags |= 65536 /* AwaitContext */;\n scanner2.resetTokenState(nextStatement.pos);\n nextToken();\n while (token() !== 1 /* EndOfFileToken */) {\n const startPos = scanner2.getTokenFullStart();\n const statement = parseListElement(0 /* SourceElements */, parseStatement);\n statements.push(statement);\n if (startPos === scanner2.getTokenFullStart()) {\n nextToken();\n }\n if (pos >= 0) {\n const nonAwaitStatement = sourceFile.statements[pos];\n if (statement.end === nonAwaitStatement.pos) {\n break;\n }\n if (statement.end > nonAwaitStatement.pos) {\n pos = findNextStatementWithoutAwait(sourceFile.statements, pos + 1);\n }\n }\n }\n contextFlags = savedContextFlags;\n }, 2 /* Reparse */);\n start = pos >= 0 ? findNextStatementWithAwait(sourceFile.statements, pos) : -1;\n }\n if (pos >= 0) {\n const prevStatement = sourceFile.statements[pos];\n addRange(statements, sourceFile.statements, pos);\n const diagnosticStart = findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= prevStatement.pos);\n if (diagnosticStart >= 0) {\n addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart);\n }\n }\n syntaxCursor = savedSyntaxCursor;\n return factory2.updateSourceFile(sourceFile, setTextRange(factoryCreateNodeArray(statements), sourceFile.statements));\n function containsPossibleTopLevelAwait(node) {\n return !(node.flags & 65536 /* AwaitContext */) && !!(node.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */);\n }\n function findNextStatementWithAwait(statements2, start2) {\n for (let i = start2; i < statements2.length; i++) {\n if (containsPossibleTopLevelAwait(statements2[i])) {\n return i;\n }\n }\n return -1;\n }\n function findNextStatementWithoutAwait(statements2, start2) {\n for (let i = start2; i < statements2.length; i++) {\n if (!containsPossibleTopLevelAwait(statements2[i])) {\n return i;\n }\n }\n return -1;\n }\n function currentNode2(position) {\n const node = baseSyntaxCursor.currentNode(position);\n if (topLevel && node && containsPossibleTopLevelAwait(node)) {\n markAsIntersectingIncrementalChange(node);\n }\n return node;\n }\n }\n function fixupParentReferences(rootNode) {\n setParentRecursive(\n rootNode,\n /*incremental*/\n true\n );\n }\n Parser2.fixupParentReferences = fixupParentReferences;\n function createSourceFile2(fileName2, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, flags, setExternalModuleIndicator2) {\n let sourceFile = factory2.createSourceFile(statements, endOfFileToken, flags);\n setTextRangePosWidth(sourceFile, 0, sourceText.length);\n setFields(sourceFile);\n if (!isDeclarationFile && isExternalModule(sourceFile) && sourceFile.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */) {\n const oldSourceFile = sourceFile;\n sourceFile = reparseTopLevelAwait(sourceFile);\n if (oldSourceFile !== sourceFile) setFields(sourceFile);\n }\n return sourceFile;\n function setFields(sourceFile2) {\n sourceFile2.text = sourceText;\n sourceFile2.bindDiagnostics = [];\n sourceFile2.bindSuggestionDiagnostics = void 0;\n sourceFile2.languageVersion = languageVersion2;\n sourceFile2.fileName = fileName2;\n sourceFile2.languageVariant = getLanguageVariant(scriptKind2);\n sourceFile2.isDeclarationFile = isDeclarationFile;\n sourceFile2.scriptKind = scriptKind2;\n setExternalModuleIndicator2(sourceFile2);\n sourceFile2.setExternalModuleIndicator = setExternalModuleIndicator2;\n }\n }\n function setContextFlag(val, flag) {\n if (val) {\n contextFlags |= flag;\n } else {\n contextFlags &= ~flag;\n }\n }\n function setDisallowInContext(val) {\n setContextFlag(val, 8192 /* DisallowInContext */);\n }\n function setYieldContext(val) {\n setContextFlag(val, 16384 /* YieldContext */);\n }\n function setDecoratorContext(val) {\n setContextFlag(val, 32768 /* DecoratorContext */);\n }\n function setAwaitContext(val) {\n setContextFlag(val, 65536 /* AwaitContext */);\n }\n function doOutsideOfContext(context, func) {\n const contextFlagsToClear = context & contextFlags;\n if (contextFlagsToClear) {\n setContextFlag(\n /*val*/\n false,\n contextFlagsToClear\n );\n const result = func();\n setContextFlag(\n /*val*/\n true,\n contextFlagsToClear\n );\n return result;\n }\n return func();\n }\n function doInsideOfContext(context, func) {\n const contextFlagsToSet = context & ~contextFlags;\n if (contextFlagsToSet) {\n setContextFlag(\n /*val*/\n true,\n contextFlagsToSet\n );\n const result = func();\n setContextFlag(\n /*val*/\n false,\n contextFlagsToSet\n );\n return result;\n }\n return func();\n }\n function allowInAnd(func) {\n return doOutsideOfContext(8192 /* DisallowInContext */, func);\n }\n function disallowInAnd(func) {\n return doInsideOfContext(8192 /* DisallowInContext */, func);\n }\n function allowConditionalTypesAnd(func) {\n return doOutsideOfContext(131072 /* DisallowConditionalTypesContext */, func);\n }\n function disallowConditionalTypesAnd(func) {\n return doInsideOfContext(131072 /* DisallowConditionalTypesContext */, func);\n }\n function doInYieldContext(func) {\n return doInsideOfContext(16384 /* YieldContext */, func);\n }\n function doInDecoratorContext(func) {\n return doInsideOfContext(32768 /* DecoratorContext */, func);\n }\n function doInAwaitContext(func) {\n return doInsideOfContext(65536 /* AwaitContext */, func);\n }\n function doOutsideOfAwaitContext(func) {\n return doOutsideOfContext(65536 /* AwaitContext */, func);\n }\n function doInYieldAndAwaitContext(func) {\n return doInsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func);\n }\n function doOutsideOfYieldAndAwaitContext(func) {\n return doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func);\n }\n function inContext(flags) {\n return (contextFlags & flags) !== 0;\n }\n function inYieldContext() {\n return inContext(16384 /* YieldContext */);\n }\n function inDisallowInContext() {\n return inContext(8192 /* DisallowInContext */);\n }\n function inDisallowConditionalTypesContext() {\n return inContext(131072 /* DisallowConditionalTypesContext */);\n }\n function inDecoratorContext() {\n return inContext(32768 /* DecoratorContext */);\n }\n function inAwaitContext() {\n return inContext(65536 /* AwaitContext */);\n }\n function parseErrorAtCurrentToken(message, ...args) {\n return parseErrorAt(scanner2.getTokenStart(), scanner2.getTokenEnd(), message, ...args);\n }\n function parseErrorAtPosition(start, length2, message, ...args) {\n const lastError = lastOrUndefined(parseDiagnostics);\n let result;\n if (!lastError || start !== lastError.start) {\n result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);\n parseDiagnostics.push(result);\n }\n parseErrorBeforeNextFinishedNode = true;\n return result;\n }\n function parseErrorAt(start, end, message, ...args) {\n return parseErrorAtPosition(start, end - start, message, ...args);\n }\n function parseErrorAtRange(range, message, ...args) {\n parseErrorAt(range.pos, range.end, message, ...args);\n }\n function scanError(message, length2, arg0) {\n parseErrorAtPosition(scanner2.getTokenEnd(), length2, message, arg0);\n }\n function getNodePos() {\n return scanner2.getTokenFullStart();\n }\n function hasPrecedingJSDocComment() {\n return scanner2.hasPrecedingJSDocComment();\n }\n function token() {\n return currentToken;\n }\n function nextTokenWithoutCheck() {\n return currentToken = scanner2.scan();\n }\n function nextTokenAnd(func) {\n nextToken();\n return func();\n }\n function nextToken() {\n if (isKeyword(currentToken) && (scanner2.hasUnicodeEscape() || scanner2.hasExtendedUnicodeEscape())) {\n parseErrorAt(scanner2.getTokenStart(), scanner2.getTokenEnd(), Diagnostics.Keywords_cannot_contain_escape_characters);\n }\n return nextTokenWithoutCheck();\n }\n function nextTokenJSDoc() {\n return currentToken = scanner2.scanJsDocToken();\n }\n function nextJSDocCommentTextToken(inBackticks) {\n return currentToken = scanner2.scanJSDocCommentTextToken(inBackticks);\n }\n function reScanGreaterToken() {\n return currentToken = scanner2.reScanGreaterToken();\n }\n function reScanSlashToken() {\n return currentToken = scanner2.reScanSlashToken();\n }\n function reScanTemplateToken(isTaggedTemplate) {\n return currentToken = scanner2.reScanTemplateToken(isTaggedTemplate);\n }\n function reScanLessThanToken() {\n return currentToken = scanner2.reScanLessThanToken();\n }\n function reScanHashToken() {\n return currentToken = scanner2.reScanHashToken();\n }\n function scanJsxIdentifier() {\n return currentToken = scanner2.scanJsxIdentifier();\n }\n function scanJsxText() {\n return currentToken = scanner2.scanJsxToken();\n }\n function scanJsxAttributeValue() {\n return currentToken = scanner2.scanJsxAttributeValue();\n }\n function speculationHelper(callback, speculationKind) {\n const saveToken = currentToken;\n const saveParseDiagnosticsLength = parseDiagnostics.length;\n const saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode;\n const saveContextFlags = contextFlags;\n const result = speculationKind !== 0 /* TryParse */ ? scanner2.lookAhead(callback) : scanner2.tryScan(callback);\n Debug.assert(saveContextFlags === contextFlags);\n if (!result || speculationKind !== 0 /* TryParse */) {\n currentToken = saveToken;\n if (speculationKind !== 2 /* Reparse */) {\n parseDiagnostics.length = saveParseDiagnosticsLength;\n }\n parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode;\n }\n return result;\n }\n function lookAhead(callback) {\n return speculationHelper(callback, 1 /* Lookahead */);\n }\n function tryParse(callback) {\n return speculationHelper(callback, 0 /* TryParse */);\n }\n function isBindingIdentifier() {\n if (token() === 80 /* Identifier */) {\n return true;\n }\n return token() > 118 /* LastReservedWord */;\n }\n function isIdentifier2() {\n if (token() === 80 /* Identifier */) {\n return true;\n }\n if (token() === 127 /* YieldKeyword */ && inYieldContext()) {\n return false;\n }\n if (token() === 135 /* AwaitKeyword */ && inAwaitContext()) {\n return false;\n }\n return token() > 118 /* LastReservedWord */;\n }\n function parseExpected(kind, diagnosticMessage, shouldAdvance = true) {\n if (token() === kind) {\n if (shouldAdvance) {\n nextToken();\n }\n return true;\n }\n if (diagnosticMessage) {\n parseErrorAtCurrentToken(diagnosticMessage);\n } else {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind));\n }\n return false;\n }\n const viableKeywordSuggestions = Object.keys(textToKeywordObj).filter((keyword) => keyword.length > 2);\n function parseErrorForMissingSemicolonAfter(node) {\n if (isTaggedTemplateExpression(node)) {\n parseErrorAt(skipTrivia(sourceText, node.template.pos), node.template.end, Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);\n return;\n }\n const expressionText = isIdentifier(node) ? idText(node) : void 0;\n if (!expressionText || !isIdentifierText(expressionText, languageVersion)) {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n return;\n }\n const pos = skipTrivia(sourceText, node.pos);\n switch (expressionText) {\n case \"const\":\n case \"let\":\n case \"var\":\n parseErrorAt(pos, node.end, Diagnostics.Variable_declaration_not_allowed_at_this_location);\n return;\n case \"declare\":\n return;\n case \"interface\":\n parseErrorForInvalidName(Diagnostics.Interface_name_cannot_be_0, Diagnostics.Interface_must_be_given_a_name, 19 /* OpenBraceToken */);\n return;\n case \"is\":\n parseErrorAt(pos, scanner2.getTokenStart(), Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);\n return;\n case \"module\":\n case \"namespace\":\n parseErrorForInvalidName(Diagnostics.Namespace_name_cannot_be_0, Diagnostics.Namespace_must_be_given_a_name, 19 /* OpenBraceToken */);\n return;\n case \"type\":\n parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);\n return;\n }\n const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);\n if (suggestion) {\n parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);\n return;\n }\n if (token() === 0 /* Unknown */) {\n return;\n }\n parseErrorAt(pos, node.end, Diagnostics.Unexpected_keyword_or_identifier);\n }\n function parseErrorForInvalidName(nameDiagnostic, blankDiagnostic, tokenIfBlankName) {\n if (token() === tokenIfBlankName) {\n parseErrorAtCurrentToken(blankDiagnostic);\n } else {\n parseErrorAtCurrentToken(nameDiagnostic, scanner2.getTokenValue());\n }\n }\n function getSpaceSuggestion(expressionText) {\n for (const keyword of viableKeywordSuggestions) {\n if (expressionText.length > keyword.length + 2 && startsWith(expressionText, keyword)) {\n return `${keyword} ${expressionText.slice(keyword.length)}`;\n }\n }\n return void 0;\n }\n function parseSemicolonAfterPropertyName(name, type, initializer) {\n if (token() === 60 /* AtToken */ && !scanner2.hasPrecedingLineBreak()) {\n parseErrorAtCurrentToken(Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);\n return;\n }\n if (token() === 21 /* OpenParenToken */) {\n parseErrorAtCurrentToken(Diagnostics.Cannot_start_a_function_call_in_a_type_annotation);\n nextToken();\n return;\n }\n if (type && !canParseSemicolon()) {\n if (initializer) {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n } else {\n parseErrorAtCurrentToken(Diagnostics.Expected_for_property_initializer);\n }\n return;\n }\n if (tryParseSemicolon()) {\n return;\n }\n if (initializer) {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n return;\n }\n parseErrorForMissingSemicolonAfter(name);\n }\n function parseExpectedJSDoc(kind) {\n if (token() === kind) {\n nextTokenJSDoc();\n return true;\n }\n Debug.assert(isKeywordOrPunctuation(kind));\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind));\n return false;\n }\n function parseExpectedMatchingBrackets(openKind, closeKind, openParsed, openPosition) {\n if (token() === closeKind) {\n nextToken();\n return;\n }\n const lastError = parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(closeKind));\n if (!openParsed) {\n return;\n }\n if (lastError) {\n addRelatedInfo(\n lastError,\n createDetachedDiagnostic(fileName, sourceText, openPosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, tokenToString(openKind), tokenToString(closeKind))\n );\n }\n }\n function parseOptional(t) {\n if (token() === t) {\n nextToken();\n return true;\n }\n return false;\n }\n function parseOptionalToken(t) {\n if (token() === t) {\n return parseTokenNode();\n }\n return void 0;\n }\n function parseOptionalTokenJSDoc(t) {\n if (token() === t) {\n return parseTokenNodeJSDoc();\n }\n return void 0;\n }\n function parseExpectedToken(t, diagnosticMessage, arg0) {\n return parseOptionalToken(t) || createMissingNode(\n t,\n /*reportAtCurrentPosition*/\n false,\n diagnosticMessage || Diagnostics._0_expected,\n arg0 || tokenToString(t)\n );\n }\n function parseExpectedTokenJSDoc(t) {\n const optional = parseOptionalTokenJSDoc(t);\n if (optional) return optional;\n Debug.assert(isKeywordOrPunctuation(t));\n return createMissingNode(\n t,\n /*reportAtCurrentPosition*/\n false,\n Diagnostics._0_expected,\n tokenToString(t)\n );\n }\n function parseTokenNode() {\n const pos = getNodePos();\n const kind = token();\n nextToken();\n return finishNode(factoryCreateToken(kind), pos);\n }\n function parseTokenNodeJSDoc() {\n const pos = getNodePos();\n const kind = token();\n nextTokenJSDoc();\n return finishNode(factoryCreateToken(kind), pos);\n }\n function canParseSemicolon() {\n if (token() === 27 /* SemicolonToken */) {\n return true;\n }\n return token() === 20 /* CloseBraceToken */ || token() === 1 /* EndOfFileToken */ || scanner2.hasPrecedingLineBreak();\n }\n function tryParseSemicolon() {\n if (!canParseSemicolon()) {\n return false;\n }\n if (token() === 27 /* SemicolonToken */) {\n nextToken();\n }\n return true;\n }\n function parseSemicolon() {\n return tryParseSemicolon() || parseExpected(27 /* SemicolonToken */);\n }\n function createNodeArray(elements, pos, end, hasTrailingComma) {\n const array = factoryCreateNodeArray(elements, hasTrailingComma);\n setTextRangePosEnd(array, pos, end ?? scanner2.getTokenFullStart());\n return array;\n }\n function finishNode(node, pos, end) {\n setTextRangePosEnd(node, pos, end ?? scanner2.getTokenFullStart());\n if (contextFlags) {\n node.flags |= contextFlags;\n }\n if (parseErrorBeforeNextFinishedNode) {\n parseErrorBeforeNextFinishedNode = false;\n node.flags |= 262144 /* ThisNodeHasError */;\n }\n return node;\n }\n function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage, ...args) {\n if (reportAtCurrentPosition) {\n parseErrorAtPosition(scanner2.getTokenFullStart(), 0, diagnosticMessage, ...args);\n } else if (diagnosticMessage) {\n parseErrorAtCurrentToken(diagnosticMessage, ...args);\n }\n const pos = getNodePos();\n const result = kind === 80 /* Identifier */ ? factoryCreateIdentifier(\n \"\",\n /*originalKeywordKind*/\n void 0\n ) : isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(\n kind,\n \"\",\n \"\",\n /*templateFlags*/\n void 0\n ) : kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral(\n \"\",\n /*numericLiteralFlags*/\n void 0\n ) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral(\n \"\",\n /*isSingleQuote*/\n void 0\n ) : kind === 283 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factoryCreateToken(kind);\n return finishNode(result, pos);\n }\n function internIdentifier(text) {\n let identifier = identifiers.get(text);\n if (identifier === void 0) {\n identifiers.set(text, identifier = text);\n }\n return identifier;\n }\n function createIdentifier(isIdentifier3, diagnosticMessage, privateIdentifierDiagnosticMessage) {\n if (isIdentifier3) {\n identifierCount++;\n const pos = scanner2.hasPrecedingJSDocLeadingAsterisks() ? scanner2.getTokenStart() : getNodePos();\n const originalKeywordKind = token();\n const text = internIdentifier(scanner2.getTokenValue());\n const hasExtendedUnicodeEscape = scanner2.hasExtendedUnicodeEscape();\n nextTokenWithoutCheck();\n return finishNode(factoryCreateIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);\n }\n if (token() === 81 /* PrivateIdentifier */) {\n parseErrorAtCurrentToken(privateIdentifierDiagnosticMessage || Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n return createIdentifier(\n /*isIdentifier*/\n true\n );\n }\n if (token() === 0 /* Unknown */ && scanner2.tryScan(() => scanner2.reScanInvalidIdentifier() === 80 /* Identifier */)) {\n return createIdentifier(\n /*isIdentifier*/\n true\n );\n }\n identifierCount++;\n const reportAtCurrentPosition = token() === 1 /* EndOfFileToken */;\n const isReservedWord = scanner2.isReservedWord();\n const msgArg = scanner2.getTokenText();\n const defaultMessage = isReservedWord ? Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : Diagnostics.Identifier_expected;\n return createMissingNode(80 /* Identifier */, reportAtCurrentPosition, diagnosticMessage || defaultMessage, msgArg);\n }\n function parseBindingIdentifier(privateIdentifierDiagnosticMessage) {\n return createIdentifier(\n isBindingIdentifier(),\n /*diagnosticMessage*/\n void 0,\n privateIdentifierDiagnosticMessage\n );\n }\n function parseIdentifier(diagnosticMessage, privateIdentifierDiagnosticMessage) {\n return createIdentifier(isIdentifier2(), diagnosticMessage, privateIdentifierDiagnosticMessage);\n }\n function parseIdentifierName(diagnosticMessage) {\n return createIdentifier(tokenIsIdentifierOrKeyword(token()), diagnosticMessage);\n }\n function parseIdentifierNameErrorOnUnicodeEscapeSequence() {\n if (scanner2.hasUnicodeEscape() || scanner2.hasExtendedUnicodeEscape()) {\n parseErrorAtCurrentToken(Diagnostics.Unicode_escape_sequence_cannot_appear_here);\n }\n return createIdentifier(tokenIsIdentifierOrKeyword(token()));\n }\n function isLiteralPropertyName() {\n return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */;\n }\n function isImportAttributeName2() {\n return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */;\n }\n function parsePropertyNameWorker(allowComputedPropertyNames) {\n if (token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */) {\n const node = parseLiteralNode();\n node.text = internIdentifier(node.text);\n return node;\n }\n if (allowComputedPropertyNames && token() === 23 /* OpenBracketToken */) {\n return parseComputedPropertyName();\n }\n if (token() === 81 /* PrivateIdentifier */) {\n return parsePrivateIdentifier();\n }\n return parseIdentifierName();\n }\n function parsePropertyName() {\n return parsePropertyNameWorker(\n /*allowComputedPropertyNames*/\n true\n );\n }\n function parseComputedPropertyName() {\n const pos = getNodePos();\n parseExpected(23 /* OpenBracketToken */);\n const expression = allowInAnd(parseExpression);\n parseExpected(24 /* CloseBracketToken */);\n return finishNode(factory2.createComputedPropertyName(expression), pos);\n }\n function parsePrivateIdentifier() {\n const pos = getNodePos();\n const node = factoryCreatePrivateIdentifier(internIdentifier(scanner2.getTokenValue()));\n nextToken();\n return finishNode(node, pos);\n }\n function parseContextualModifier(t) {\n return token() === t && tryParse(nextTokenCanFollowModifier);\n }\n function nextTokenIsOnSameLineAndCanFollowModifier() {\n nextToken();\n if (scanner2.hasPrecedingLineBreak()) {\n return false;\n }\n return canFollowModifier();\n }\n function nextTokenCanFollowModifier() {\n switch (token()) {\n case 87 /* ConstKeyword */:\n return nextToken() === 94 /* EnumKeyword */;\n case 95 /* ExportKeyword */:\n nextToken();\n if (token() === 90 /* DefaultKeyword */) {\n return lookAhead(nextTokenCanFollowDefaultKeyword);\n }\n if (token() === 156 /* TypeKeyword */) {\n return lookAhead(nextTokenCanFollowExportModifier);\n }\n return canFollowExportModifier();\n case 90 /* DefaultKeyword */:\n return nextTokenCanFollowDefaultKeyword();\n case 126 /* StaticKeyword */:\n nextToken();\n return canFollowModifier();\n case 139 /* GetKeyword */:\n case 153 /* SetKeyword */:\n nextToken();\n return canFollowGetOrSetKeyword();\n default:\n return nextTokenIsOnSameLineAndCanFollowModifier();\n }\n }\n function canFollowExportModifier() {\n return token() === 60 /* AtToken */ || token() !== 42 /* AsteriskToken */ && token() !== 130 /* AsKeyword */ && token() !== 19 /* OpenBraceToken */ && canFollowModifier();\n }\n function nextTokenCanFollowExportModifier() {\n nextToken();\n return canFollowExportModifier();\n }\n function parseAnyContextualModifier() {\n return isModifierKind(token()) && tryParse(nextTokenCanFollowModifier);\n }\n function canFollowModifier() {\n return token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */ || token() === 42 /* AsteriskToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName();\n }\n function canFollowGetOrSetKeyword() {\n return token() === 23 /* OpenBracketToken */ || isLiteralPropertyName();\n }\n function nextTokenCanFollowDefaultKeyword() {\n nextToken();\n return token() === 86 /* ClassKeyword */ || token() === 100 /* FunctionKeyword */ || token() === 120 /* InterfaceKeyword */ || token() === 60 /* AtToken */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsClassKeywordOnSameLine) || token() === 134 /* AsyncKeyword */ && lookAhead(nextTokenIsFunctionKeywordOnSameLine);\n }\n function isListElement2(parsingContext2, inErrorRecovery) {\n const node = currentNode(parsingContext2);\n if (node) {\n return true;\n }\n switch (parsingContext2) {\n case 0 /* SourceElements */:\n case 1 /* BlockStatements */:\n case 3 /* SwitchClauseStatements */:\n return !(token() === 27 /* SemicolonToken */ && inErrorRecovery) && isStartOfStatement();\n case 2 /* SwitchClauses */:\n return token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */;\n case 4 /* TypeMembers */:\n return lookAhead(isTypeMemberStart);\n case 5 /* ClassMembers */:\n return lookAhead(isClassMemberStart) || token() === 27 /* SemicolonToken */ && !inErrorRecovery;\n case 6 /* EnumMembers */:\n return token() === 23 /* OpenBracketToken */ || isLiteralPropertyName();\n case 12 /* ObjectLiteralMembers */:\n switch (token()) {\n case 23 /* OpenBracketToken */:\n case 42 /* AsteriskToken */:\n case 26 /* DotDotDotToken */:\n case 25 /* DotToken */:\n return true;\n default:\n return isLiteralPropertyName();\n }\n case 18 /* RestProperties */:\n return isLiteralPropertyName();\n case 9 /* ObjectBindingElements */:\n return token() === 23 /* OpenBracketToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName();\n case 24 /* ImportAttributes */:\n return isImportAttributeName2();\n case 7 /* HeritageClauseElement */:\n if (token() === 19 /* OpenBraceToken */) {\n return lookAhead(isValidHeritageClauseObjectLiteral);\n }\n if (!inErrorRecovery) {\n return isStartOfLeftHandSideExpression() && !isHeritageClauseExtendsOrImplementsKeyword();\n } else {\n return isIdentifier2() && !isHeritageClauseExtendsOrImplementsKeyword();\n }\n case 8 /* VariableDeclarations */:\n return isBindingIdentifierOrPrivateIdentifierOrPattern();\n case 10 /* ArrayBindingElements */:\n return token() === 28 /* CommaToken */ || token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern();\n case 19 /* TypeParameters */:\n return token() === 103 /* InKeyword */ || token() === 87 /* ConstKeyword */ || isIdentifier2();\n case 15 /* ArrayLiteralMembers */:\n switch (token()) {\n case 28 /* CommaToken */:\n case 25 /* DotToken */:\n return true;\n }\n // falls through\n case 11 /* ArgumentExpressions */:\n return token() === 26 /* DotDotDotToken */ || isStartOfExpression();\n case 16 /* Parameters */:\n return isStartOfParameter(\n /*isJSDocParameter*/\n false\n );\n case 17 /* JSDocParameters */:\n return isStartOfParameter(\n /*isJSDocParameter*/\n true\n );\n case 20 /* TypeArguments */:\n case 21 /* TupleElementTypes */:\n return token() === 28 /* CommaToken */ || isStartOfType();\n case 22 /* HeritageClauses */:\n return isHeritageClause2();\n case 23 /* ImportOrExportSpecifiers */:\n if (token() === 161 /* FromKeyword */ && lookAhead(nextTokenIsStringLiteral)) {\n return false;\n }\n if (token() === 11 /* StringLiteral */) {\n return true;\n }\n return tokenIsIdentifierOrKeyword(token());\n case 13 /* JsxAttributes */:\n return tokenIsIdentifierOrKeyword(token()) || token() === 19 /* OpenBraceToken */;\n case 14 /* JsxChildren */:\n return true;\n case 25 /* JSDocComment */:\n return true;\n case 26 /* Count */:\n return Debug.fail(\"ParsingContext.Count used as a context\");\n // Not a real context, only a marker.\n default:\n Debug.assertNever(parsingContext2, \"Non-exhaustive case in 'isListElement'.\");\n }\n }\n function isValidHeritageClauseObjectLiteral() {\n Debug.assert(token() === 19 /* OpenBraceToken */);\n if (nextToken() === 20 /* CloseBraceToken */) {\n const next = nextToken();\n return next === 28 /* CommaToken */ || next === 19 /* OpenBraceToken */ || next === 96 /* ExtendsKeyword */ || next === 119 /* ImplementsKeyword */;\n }\n return true;\n }\n function nextTokenIsIdentifier() {\n nextToken();\n return isIdentifier2();\n }\n function nextTokenIsIdentifierOrKeyword() {\n nextToken();\n return tokenIsIdentifierOrKeyword(token());\n }\n function nextTokenIsIdentifierOrKeywordOrGreaterThan() {\n nextToken();\n return tokenIsIdentifierOrKeywordOrGreaterThan(token());\n }\n function isHeritageClauseExtendsOrImplementsKeyword() {\n if (token() === 119 /* ImplementsKeyword */ || token() === 96 /* ExtendsKeyword */) {\n return lookAhead(nextTokenIsStartOfExpression);\n }\n return false;\n }\n function nextTokenIsStartOfExpression() {\n nextToken();\n return isStartOfExpression();\n }\n function nextTokenIsStartOfType() {\n nextToken();\n return isStartOfType();\n }\n function isListTerminator(kind) {\n if (token() === 1 /* EndOfFileToken */) {\n return true;\n }\n switch (kind) {\n case 1 /* BlockStatements */:\n case 2 /* SwitchClauses */:\n case 4 /* TypeMembers */:\n case 5 /* ClassMembers */:\n case 6 /* EnumMembers */:\n case 12 /* ObjectLiteralMembers */:\n case 9 /* ObjectBindingElements */:\n case 23 /* ImportOrExportSpecifiers */:\n case 24 /* ImportAttributes */:\n return token() === 20 /* CloseBraceToken */;\n case 3 /* SwitchClauseStatements */:\n return token() === 20 /* CloseBraceToken */ || token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */;\n case 7 /* HeritageClauseElement */:\n return token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n case 8 /* VariableDeclarations */:\n return isVariableDeclaratorListTerminator();\n case 19 /* TypeParameters */:\n return token() === 32 /* GreaterThanToken */ || token() === 21 /* OpenParenToken */ || token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n case 11 /* ArgumentExpressions */:\n return token() === 22 /* CloseParenToken */ || token() === 27 /* SemicolonToken */;\n case 15 /* ArrayLiteralMembers */:\n case 21 /* TupleElementTypes */:\n case 10 /* ArrayBindingElements */:\n return token() === 24 /* CloseBracketToken */;\n case 17 /* JSDocParameters */:\n case 16 /* Parameters */:\n case 18 /* RestProperties */:\n return token() === 22 /* CloseParenToken */ || token() === 24 /* CloseBracketToken */;\n case 20 /* TypeArguments */:\n return token() !== 28 /* CommaToken */;\n case 22 /* HeritageClauses */:\n return token() === 19 /* OpenBraceToken */ || token() === 20 /* CloseBraceToken */;\n case 13 /* JsxAttributes */:\n return token() === 32 /* GreaterThanToken */ || token() === 44 /* SlashToken */;\n case 14 /* JsxChildren */:\n return token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsSlash);\n default:\n return false;\n }\n }\n function isVariableDeclaratorListTerminator() {\n if (canParseSemicolon()) {\n return true;\n }\n if (isInOrOfKeyword(token())) {\n return true;\n }\n if (token() === 39 /* EqualsGreaterThanToken */) {\n return true;\n }\n return false;\n }\n function isInSomeParsingContext() {\n Debug.assert(parsingContext, \"Missing parsing context\");\n for (let kind = 0; kind < 26 /* Count */; kind++) {\n if (parsingContext & 1 << kind) {\n if (isListElement2(\n kind,\n /*inErrorRecovery*/\n true\n ) || isListTerminator(kind)) {\n return true;\n }\n }\n }\n return false;\n }\n function parseList(kind, parseElement) {\n const saveParsingContext = parsingContext;\n parsingContext |= 1 << kind;\n const list = [];\n const listPos = getNodePos();\n while (!isListTerminator(kind)) {\n if (isListElement2(\n kind,\n /*inErrorRecovery*/\n false\n )) {\n list.push(parseListElement(kind, parseElement));\n continue;\n }\n if (abortParsingListOrMoveToNextToken(kind)) {\n break;\n }\n }\n parsingContext = saveParsingContext;\n return createNodeArray(list, listPos);\n }\n function parseListElement(parsingContext2, parseElement) {\n const node = currentNode(parsingContext2);\n if (node) {\n return consumeNode(node);\n }\n return parseElement();\n }\n function currentNode(parsingContext2, pos) {\n var _a;\n if (!syntaxCursor || !isReusableParsingContext(parsingContext2) || parseErrorBeforeNextFinishedNode) {\n return void 0;\n }\n const node = syntaxCursor.currentNode(pos ?? scanner2.getTokenFullStart());\n if (nodeIsMissing(node) || intersectsIncrementalChange(node) || containsParseError(node)) {\n return void 0;\n }\n const nodeContextFlags = node.flags & 101441536 /* ContextFlags */;\n if (nodeContextFlags !== contextFlags) {\n return void 0;\n }\n if (!canReuseNode(node, parsingContext2)) {\n return void 0;\n }\n if (canHaveJSDoc(node) && ((_a = node.jsDoc) == null ? void 0 : _a.jsDocCache)) {\n node.jsDoc.jsDocCache = void 0;\n }\n return node;\n }\n function consumeNode(node) {\n scanner2.resetTokenState(node.end);\n nextToken();\n return node;\n }\n function isReusableParsingContext(parsingContext2) {\n switch (parsingContext2) {\n case 5 /* ClassMembers */:\n case 2 /* SwitchClauses */:\n case 0 /* SourceElements */:\n case 1 /* BlockStatements */:\n case 3 /* SwitchClauseStatements */:\n case 6 /* EnumMembers */:\n case 4 /* TypeMembers */:\n case 8 /* VariableDeclarations */:\n case 17 /* JSDocParameters */:\n case 16 /* Parameters */:\n return true;\n }\n return false;\n }\n function canReuseNode(node, parsingContext2) {\n switch (parsingContext2) {\n case 5 /* ClassMembers */:\n return isReusableClassMember(node);\n case 2 /* SwitchClauses */:\n return isReusableSwitchClause(node);\n case 0 /* SourceElements */:\n case 1 /* BlockStatements */:\n case 3 /* SwitchClauseStatements */:\n return isReusableStatement(node);\n case 6 /* EnumMembers */:\n return isReusableEnumMember(node);\n case 4 /* TypeMembers */:\n return isReusableTypeMember(node);\n case 8 /* VariableDeclarations */:\n return isReusableVariableDeclaration(node);\n case 17 /* JSDocParameters */:\n case 16 /* Parameters */:\n return isReusableParameter(node);\n }\n return false;\n }\n function isReusableClassMember(node) {\n if (node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n case 182 /* IndexSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 173 /* PropertyDeclaration */:\n case 241 /* SemicolonClassElement */:\n return true;\n case 175 /* MethodDeclaration */:\n const methodDeclaration = node;\n const nameIsConstructor = methodDeclaration.name.kind === 80 /* Identifier */ && methodDeclaration.name.escapedText === \"constructor\";\n return !nameIsConstructor;\n }\n }\n return false;\n }\n function isReusableSwitchClause(node) {\n if (node) {\n switch (node.kind) {\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n return true;\n }\n }\n return false;\n }\n function isReusableStatement(node) {\n if (node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 244 /* VariableStatement */:\n case 242 /* Block */:\n case 246 /* IfStatement */:\n case 245 /* ExpressionStatement */:\n case 258 /* ThrowStatement */:\n case 254 /* ReturnStatement */:\n case 256 /* SwitchStatement */:\n case 253 /* BreakStatement */:\n case 252 /* ContinueStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 249 /* ForStatement */:\n case 248 /* WhileStatement */:\n case 255 /* WithStatement */:\n case 243 /* EmptyStatement */:\n case 259 /* TryStatement */:\n case 257 /* LabeledStatement */:\n case 247 /* DoStatement */:\n case 260 /* DebuggerStatement */:\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 279 /* ExportDeclaration */:\n case 278 /* ExportAssignment */:\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return true;\n }\n }\n return false;\n }\n function isReusableEnumMember(node) {\n return node.kind === 307 /* EnumMember */;\n }\n function isReusableTypeMember(node) {\n if (node) {\n switch (node.kind) {\n case 181 /* ConstructSignature */:\n case 174 /* MethodSignature */:\n case 182 /* IndexSignature */:\n case 172 /* PropertySignature */:\n case 180 /* CallSignature */:\n return true;\n }\n }\n return false;\n }\n function isReusableVariableDeclaration(node) {\n if (node.kind !== 261 /* VariableDeclaration */) {\n return false;\n }\n const variableDeclarator = node;\n return variableDeclarator.initializer === void 0;\n }\n function isReusableParameter(node) {\n if (node.kind !== 170 /* Parameter */) {\n return false;\n }\n const parameter = node;\n return parameter.initializer === void 0;\n }\n function abortParsingListOrMoveToNextToken(kind) {\n parsingContextErrors(kind);\n if (isInSomeParsingContext()) {\n return true;\n }\n nextToken();\n return false;\n }\n function parsingContextErrors(context) {\n switch (context) {\n case 0 /* SourceElements */:\n return token() === 90 /* DefaultKeyword */ ? parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(95 /* ExportKeyword */)) : parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);\n case 1 /* BlockStatements */:\n return parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);\n case 2 /* SwitchClauses */:\n return parseErrorAtCurrentToken(Diagnostics.case_or_default_expected);\n case 3 /* SwitchClauseStatements */:\n return parseErrorAtCurrentToken(Diagnostics.Statement_expected);\n case 18 /* RestProperties */:\n // fallthrough\n case 4 /* TypeMembers */:\n return parseErrorAtCurrentToken(Diagnostics.Property_or_signature_expected);\n case 5 /* ClassMembers */:\n return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected);\n case 6 /* EnumMembers */:\n return parseErrorAtCurrentToken(Diagnostics.Enum_member_expected);\n case 7 /* HeritageClauseElement */:\n return parseErrorAtCurrentToken(Diagnostics.Expression_expected);\n case 8 /* VariableDeclarations */:\n return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_variable_declaration_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Variable_declaration_expected);\n case 9 /* ObjectBindingElements */:\n return parseErrorAtCurrentToken(Diagnostics.Property_destructuring_pattern_expected);\n case 10 /* ArrayBindingElements */:\n return parseErrorAtCurrentToken(Diagnostics.Array_element_destructuring_pattern_expected);\n case 11 /* ArgumentExpressions */:\n return parseErrorAtCurrentToken(Diagnostics.Argument_expression_expected);\n case 12 /* ObjectLiteralMembers */:\n return parseErrorAtCurrentToken(Diagnostics.Property_assignment_expected);\n case 15 /* ArrayLiteralMembers */:\n return parseErrorAtCurrentToken(Diagnostics.Expression_or_comma_expected);\n case 17 /* JSDocParameters */:\n return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);\n case 16 /* Parameters */:\n return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_parameter_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);\n case 19 /* TypeParameters */:\n return parseErrorAtCurrentToken(Diagnostics.Type_parameter_declaration_expected);\n case 20 /* TypeArguments */:\n return parseErrorAtCurrentToken(Diagnostics.Type_argument_expected);\n case 21 /* TupleElementTypes */:\n return parseErrorAtCurrentToken(Diagnostics.Type_expected);\n case 22 /* HeritageClauses */:\n return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_expected);\n case 23 /* ImportOrExportSpecifiers */:\n if (token() === 161 /* FromKeyword */) {\n return parseErrorAtCurrentToken(Diagnostics._0_expected, \"}\");\n }\n return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n case 13 /* JsxAttributes */:\n return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n case 14 /* JsxChildren */:\n return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n case 24 /* ImportAttributes */:\n return parseErrorAtCurrentToken(Diagnostics.Identifier_or_string_literal_expected);\n case 25 /* JSDocComment */:\n return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n case 26 /* Count */:\n return Debug.fail(\"ParsingContext.Count used as a context\");\n // Not a real context, only a marker.\n default:\n Debug.assertNever(context);\n }\n }\n function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimiter) {\n const saveParsingContext = parsingContext;\n parsingContext |= 1 << kind;\n const list = [];\n const listPos = getNodePos();\n let commaStart = -1;\n while (true) {\n if (isListElement2(\n kind,\n /*inErrorRecovery*/\n false\n )) {\n const startPos = scanner2.getTokenFullStart();\n const result = parseListElement(kind, parseElement);\n if (!result) {\n parsingContext = saveParsingContext;\n return void 0;\n }\n list.push(result);\n commaStart = scanner2.getTokenStart();\n if (parseOptional(28 /* CommaToken */)) {\n continue;\n }\n commaStart = -1;\n if (isListTerminator(kind)) {\n break;\n }\n parseExpected(28 /* CommaToken */, getExpectedCommaDiagnostic(kind));\n if (considerSemicolonAsDelimiter && token() === 27 /* SemicolonToken */ && !scanner2.hasPrecedingLineBreak()) {\n nextToken();\n }\n if (startPos === scanner2.getTokenFullStart()) {\n nextToken();\n }\n continue;\n }\n if (isListTerminator(kind)) {\n break;\n }\n if (abortParsingListOrMoveToNextToken(kind)) {\n break;\n }\n }\n parsingContext = saveParsingContext;\n return createNodeArray(\n list,\n listPos,\n /*end*/\n void 0,\n commaStart >= 0\n );\n }\n function getExpectedCommaDiagnostic(kind) {\n return kind === 6 /* EnumMembers */ ? Diagnostics.An_enum_member_name_must_be_followed_by_a_or : void 0;\n }\n function createMissingList() {\n const list = createNodeArray([], getNodePos());\n list.isMissingList = true;\n return list;\n }\n function isMissingList(arr) {\n return !!arr.isMissingList;\n }\n function parseBracketedList(kind, parseElement, open, close) {\n if (parseExpected(open)) {\n const result = parseDelimitedList(kind, parseElement);\n parseExpected(close);\n return result;\n }\n return createMissingList();\n }\n function parseEntityName(allowReservedWords, diagnosticMessage) {\n const pos = getNodePos();\n let entity = allowReservedWords ? parseIdentifierName(diagnosticMessage) : parseIdentifier(diagnosticMessage);\n while (parseOptional(25 /* DotToken */)) {\n if (token() === 30 /* LessThanToken */) {\n break;\n }\n entity = finishNode(\n factory2.createQualifiedName(\n entity,\n parseRightSideOfDot(\n allowReservedWords,\n /*allowPrivateIdentifiers*/\n false,\n /*allowUnicodeEscapeSequenceInIdentifierName*/\n true\n )\n ),\n pos\n );\n }\n return entity;\n }\n function createQualifiedName(entity, name) {\n return finishNode(factory2.createQualifiedName(entity, name), entity.pos);\n }\n function parseRightSideOfDot(allowIdentifierNames, allowPrivateIdentifiers, allowUnicodeEscapeSequenceInIdentifierName) {\n if (scanner2.hasPrecedingLineBreak() && tokenIsIdentifierOrKeyword(token())) {\n const matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);\n if (matchesPattern) {\n return createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.Identifier_expected\n );\n }\n }\n if (token() === 81 /* PrivateIdentifier */) {\n const node = parsePrivateIdentifier();\n return allowPrivateIdentifiers ? node : createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.Identifier_expected\n );\n }\n if (allowIdentifierNames) {\n return allowUnicodeEscapeSequenceInIdentifierName ? parseIdentifierName() : parseIdentifierNameErrorOnUnicodeEscapeSequence();\n }\n return parseIdentifier();\n }\n function parseTemplateSpans(isTaggedTemplate) {\n const pos = getNodePos();\n const list = [];\n let node;\n do {\n node = parseTemplateSpan(isTaggedTemplate);\n list.push(node);\n } while (node.literal.kind === 17 /* TemplateMiddle */);\n return createNodeArray(list, pos);\n }\n function parseTemplateExpression(isTaggedTemplate) {\n const pos = getNodePos();\n return finishNode(\n factory2.createTemplateExpression(\n parseTemplateHead(isTaggedTemplate),\n parseTemplateSpans(isTaggedTemplate)\n ),\n pos\n );\n }\n function parseTemplateType() {\n const pos = getNodePos();\n return finishNode(\n factory2.createTemplateLiteralType(\n parseTemplateHead(\n /*isTaggedTemplate*/\n false\n ),\n parseTemplateTypeSpans()\n ),\n pos\n );\n }\n function parseTemplateTypeSpans() {\n const pos = getNodePos();\n const list = [];\n let node;\n do {\n node = parseTemplateTypeSpan();\n list.push(node);\n } while (node.literal.kind === 17 /* TemplateMiddle */);\n return createNodeArray(list, pos);\n }\n function parseTemplateTypeSpan() {\n const pos = getNodePos();\n return finishNode(\n factory2.createTemplateLiteralTypeSpan(\n parseType(),\n parseLiteralOfTemplateSpan(\n /*isTaggedTemplate*/\n false\n )\n ),\n pos\n );\n }\n function parseLiteralOfTemplateSpan(isTaggedTemplate) {\n if (token() === 20 /* CloseBraceToken */) {\n reScanTemplateToken(isTaggedTemplate);\n return parseTemplateMiddleOrTemplateTail();\n } else {\n return parseExpectedToken(18 /* TemplateTail */, Diagnostics._0_expected, tokenToString(20 /* CloseBraceToken */));\n }\n }\n function parseTemplateSpan(isTaggedTemplate) {\n const pos = getNodePos();\n return finishNode(\n factory2.createTemplateSpan(\n allowInAnd(parseExpression),\n parseLiteralOfTemplateSpan(isTaggedTemplate)\n ),\n pos\n );\n }\n function parseLiteralNode() {\n return parseLiteralLikeNode(token());\n }\n function parseTemplateHead(isTaggedTemplate) {\n if (!isTaggedTemplate && scanner2.getTokenFlags() & 26656 /* IsInvalid */) {\n reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n );\n }\n const fragment = parseLiteralLikeNode(token());\n Debug.assert(fragment.kind === 16 /* TemplateHead */, \"Template head has wrong token kind\");\n return fragment;\n }\n function parseTemplateMiddleOrTemplateTail() {\n const fragment = parseLiteralLikeNode(token());\n Debug.assert(fragment.kind === 17 /* TemplateMiddle */ || fragment.kind === 18 /* TemplateTail */, \"Template fragment has wrong token kind\");\n return fragment;\n }\n function getTemplateLiteralRawText(kind) {\n const isLast = kind === 15 /* NoSubstitutionTemplateLiteral */ || kind === 18 /* TemplateTail */;\n const tokenText = scanner2.getTokenText();\n return tokenText.substring(1, tokenText.length - (scanner2.isUnterminated() ? 0 : isLast ? 1 : 2));\n }\n function parseLiteralLikeNode(kind) {\n const pos = getNodePos();\n const node = isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(kind, scanner2.getTokenValue(), getTemplateLiteralRawText(kind), scanner2.getTokenFlags() & 7176 /* TemplateLiteralLikeFlags */) : (\n // Note that theoretically the following condition would hold true literals like 009,\n // which is not octal. But because of how the scanner separates the tokens, we would\n // never get a token like this. Instead, we would get 00 and 9 as two separate tokens.\n // We also do not need to check for negatives because any prefix operator would be part of a\n // parent unary expression.\n kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral(scanner2.getTokenValue(), scanner2.getNumericLiteralFlags()) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral(\n scanner2.getTokenValue(),\n /*isSingleQuote*/\n void 0,\n scanner2.hasExtendedUnicodeEscape()\n ) : isLiteralKind(kind) ? factoryCreateLiteralLikeNode(kind, scanner2.getTokenValue()) : Debug.fail()\n );\n if (scanner2.hasExtendedUnicodeEscape()) {\n node.hasExtendedUnicodeEscape = true;\n }\n if (scanner2.isUnterminated()) {\n node.isUnterminated = true;\n }\n nextToken();\n return finishNode(node, pos);\n }\n function parseEntityNameOfTypeReference() {\n return parseEntityName(\n /*allowReservedWords*/\n true,\n Diagnostics.Type_expected\n );\n }\n function parseTypeArgumentsOfTypeReference() {\n if (!scanner2.hasPrecedingLineBreak() && reScanLessThanToken() === 30 /* LessThanToken */) {\n return parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */);\n }\n }\n function parseTypeReference() {\n const pos = getNodePos();\n return finishNode(\n factory2.createTypeReferenceNode(\n parseEntityNameOfTypeReference(),\n parseTypeArgumentsOfTypeReference()\n ),\n pos\n );\n }\n function typeHasArrowFunctionBlockingParseError(node) {\n switch (node.kind) {\n case 184 /* TypeReference */:\n return nodeIsMissing(node.typeName);\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */: {\n const { parameters, type } = node;\n return isMissingList(parameters) || typeHasArrowFunctionBlockingParseError(type);\n }\n case 197 /* ParenthesizedType */:\n return typeHasArrowFunctionBlockingParseError(node.type);\n default:\n return false;\n }\n }\n function parseThisTypePredicate(lhs) {\n nextToken();\n return finishNode(factory2.createTypePredicateNode(\n /*assertsModifier*/\n void 0,\n lhs,\n parseType()\n ), lhs.pos);\n }\n function parseThisTypeNode() {\n const pos = getNodePos();\n nextToken();\n return finishNode(factory2.createThisTypeNode(), pos);\n }\n function parseJSDocAllType() {\n const pos = getNodePos();\n nextToken();\n return finishNode(factory2.createJSDocAllType(), pos);\n }\n function parseJSDocNonNullableType() {\n const pos = getNodePos();\n nextToken();\n return finishNode(factory2.createJSDocNonNullableType(\n parseNonArrayType(),\n /*postfix*/\n false\n ), pos);\n }\n function parseJSDocUnknownOrNullableType() {\n const pos = getNodePos();\n nextToken();\n if (token() === 28 /* CommaToken */ || token() === 20 /* CloseBraceToken */ || token() === 22 /* CloseParenToken */ || token() === 32 /* GreaterThanToken */ || token() === 64 /* EqualsToken */ || token() === 52 /* BarToken */) {\n return finishNode(factory2.createJSDocUnknownType(), pos);\n } else {\n return finishNode(factory2.createJSDocNullableType(\n parseType(),\n /*postfix*/\n false\n ), pos);\n }\n }\n function parseJSDocFunctionType() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n if (tryParse(nextTokenIsOpenParen)) {\n const parameters = parseParameters(4 /* Type */ | 32 /* JSDoc */);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n return withJSDoc(finishNode(factory2.createJSDocFunctionType(parameters, type), pos), hasJSDoc);\n }\n return finishNode(factory2.createTypeReferenceNode(\n parseIdentifierName(),\n /*typeArguments*/\n void 0\n ), pos);\n }\n function parseJSDocParameter() {\n const pos = getNodePos();\n let name;\n if (token() === 110 /* ThisKeyword */ || token() === 105 /* NewKeyword */) {\n name = parseIdentifierName();\n parseExpected(59 /* ColonToken */);\n }\n return finishNode(\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n // TODO(rbuckton): JSDoc parameters don't have names (except `this`/`new`), should we manufacture an empty identifier?\n name,\n /*questionToken*/\n void 0,\n parseJSDocType(),\n /*initializer*/\n void 0\n ),\n pos\n );\n }\n function parseJSDocType() {\n scanner2.setSkipJsDocLeadingAsterisks(true);\n const pos = getNodePos();\n if (parseOptional(144 /* ModuleKeyword */)) {\n const moduleTag = factory2.createJSDocNamepathType(\n /*type*/\n void 0\n );\n terminate:\n while (true) {\n switch (token()) {\n case 20 /* CloseBraceToken */:\n case 1 /* EndOfFileToken */:\n case 28 /* CommaToken */:\n case 5 /* WhitespaceTrivia */:\n break terminate;\n default:\n nextTokenJSDoc();\n }\n }\n scanner2.setSkipJsDocLeadingAsterisks(false);\n return finishNode(moduleTag, pos);\n }\n const hasDotDotDot = parseOptional(26 /* DotDotDotToken */);\n let type = parseTypeOrTypePredicate();\n scanner2.setSkipJsDocLeadingAsterisks(false);\n if (hasDotDotDot) {\n type = finishNode(factory2.createJSDocVariadicType(type), pos);\n }\n if (token() === 64 /* EqualsToken */) {\n nextToken();\n return finishNode(factory2.createJSDocOptionalType(type), pos);\n }\n return type;\n }\n function parseTypeQuery() {\n const pos = getNodePos();\n parseExpected(114 /* TypeOfKeyword */);\n const entityName = parseEntityName(\n /*allowReservedWords*/\n true\n );\n const typeArguments = !scanner2.hasPrecedingLineBreak() ? tryParseTypeArguments() : void 0;\n return finishNode(factory2.createTypeQueryNode(entityName, typeArguments), pos);\n }\n function parseTypeParameter() {\n const pos = getNodePos();\n const modifiers = parseModifiers(\n /*allowDecorators*/\n false,\n /*permitConstAsModifier*/\n true\n );\n const name = parseIdentifier();\n let constraint;\n let expression;\n if (parseOptional(96 /* ExtendsKeyword */)) {\n if (isStartOfType() || !isStartOfExpression()) {\n constraint = parseType();\n } else {\n expression = parseUnaryExpressionOrHigher();\n }\n }\n const defaultType = parseOptional(64 /* EqualsToken */) ? parseType() : void 0;\n const node = factory2.createTypeParameterDeclaration(modifiers, name, constraint, defaultType);\n node.expression = expression;\n return finishNode(node, pos);\n }\n function parseTypeParameters() {\n if (token() === 30 /* LessThanToken */) {\n return parseBracketedList(19 /* TypeParameters */, parseTypeParameter, 30 /* LessThanToken */, 32 /* GreaterThanToken */);\n }\n }\n function isStartOfParameter(isJSDocParameter) {\n return token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern() || isModifierKind(token()) || token() === 60 /* AtToken */ || isStartOfType(\n /*inStartOfParameter*/\n !isJSDocParameter\n );\n }\n function parseNameOfParameter(modifiers) {\n const name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_cannot_be_used_as_parameters);\n if (getFullWidth(name) === 0 && !some(modifiers) && isModifierKind(token())) {\n nextToken();\n }\n return name;\n }\n function isParameterNameStart() {\n return isBindingIdentifier() || token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */;\n }\n function parseParameter(inOuterAwaitContext) {\n return parseParameterWorker(inOuterAwaitContext);\n }\n function parseParameterForSpeculation(inOuterAwaitContext) {\n return parseParameterWorker(\n inOuterAwaitContext,\n /*allowAmbiguity*/\n false\n );\n }\n function parseParameterWorker(inOuterAwaitContext, allowAmbiguity = true) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = inOuterAwaitContext ? doInAwaitContext(() => parseModifiers(\n /*allowDecorators*/\n true\n )) : doOutsideOfAwaitContext(() => parseModifiers(\n /*allowDecorators*/\n true\n ));\n if (token() === 110 /* ThisKeyword */) {\n const node2 = factory2.createParameterDeclaration(\n modifiers,\n /*dotDotDotToken*/\n void 0,\n createIdentifier(\n /*isIdentifier*/\n true\n ),\n /*questionToken*/\n void 0,\n parseTypeAnnotation(),\n /*initializer*/\n void 0\n );\n const modifier = firstOrUndefined(modifiers);\n if (modifier) {\n parseErrorAtRange(modifier, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);\n }\n return withJSDoc(finishNode(node2, pos), hasJSDoc);\n }\n const savedTopLevel = topLevel;\n topLevel = false;\n const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n if (!allowAmbiguity && !isParameterNameStart()) {\n return void 0;\n }\n const node = withJSDoc(\n finishNode(\n factory2.createParameterDeclaration(\n modifiers,\n dotDotDotToken,\n parseNameOfParameter(modifiers),\n parseOptionalToken(58 /* QuestionToken */),\n parseTypeAnnotation(),\n parseInitializer()\n ),\n pos\n ),\n hasJSDoc\n );\n topLevel = savedTopLevel;\n return node;\n }\n function parseReturnType(returnToken, isType) {\n if (shouldParseReturnType(returnToken, isType)) {\n return allowConditionalTypesAnd(parseTypeOrTypePredicate);\n }\n }\n function shouldParseReturnType(returnToken, isType) {\n if (returnToken === 39 /* EqualsGreaterThanToken */) {\n parseExpected(returnToken);\n return true;\n } else if (parseOptional(59 /* ColonToken */)) {\n return true;\n } else if (isType && token() === 39 /* EqualsGreaterThanToken */) {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(59 /* ColonToken */));\n nextToken();\n return true;\n }\n return false;\n }\n function parseParametersWorker(flags, allowAmbiguity) {\n const savedYieldContext = inYieldContext();\n const savedAwaitContext = inAwaitContext();\n setYieldContext(!!(flags & 1 /* Yield */));\n setAwaitContext(!!(flags & 2 /* Await */));\n const parameters = flags & 32 /* JSDoc */ ? parseDelimitedList(17 /* JSDocParameters */, parseJSDocParameter) : parseDelimitedList(16 /* Parameters */, () => allowAmbiguity ? parseParameter(savedAwaitContext) : parseParameterForSpeculation(savedAwaitContext));\n setYieldContext(savedYieldContext);\n setAwaitContext(savedAwaitContext);\n return parameters;\n }\n function parseParameters(flags) {\n if (!parseExpected(21 /* OpenParenToken */)) {\n return createMissingList();\n }\n const parameters = parseParametersWorker(\n flags,\n /*allowAmbiguity*/\n true\n );\n parseExpected(22 /* CloseParenToken */);\n return parameters;\n }\n function parseTypeMemberSemicolon() {\n if (parseOptional(28 /* CommaToken */)) {\n return;\n }\n parseSemicolon();\n }\n function parseSignatureMember(kind) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n if (kind === 181 /* ConstructSignature */) {\n parseExpected(105 /* NewKeyword */);\n }\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(4 /* Type */);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n true\n );\n parseTypeMemberSemicolon();\n const node = kind === 180 /* CallSignature */ ? factory2.createCallSignature(typeParameters, parameters, type) : factory2.createConstructSignature(typeParameters, parameters, type);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function isIndexSignature() {\n return token() === 23 /* OpenBracketToken */ && lookAhead(isUnambiguouslyIndexSignature);\n }\n function isUnambiguouslyIndexSignature() {\n nextToken();\n if (token() === 26 /* DotDotDotToken */ || token() === 24 /* CloseBracketToken */) {\n return true;\n }\n if (isModifierKind(token())) {\n nextToken();\n if (isIdentifier2()) {\n return true;\n }\n } else if (!isIdentifier2()) {\n return false;\n } else {\n nextToken();\n }\n if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */) {\n return true;\n }\n if (token() !== 58 /* QuestionToken */) {\n return false;\n }\n nextToken();\n return token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 24 /* CloseBracketToken */;\n }\n function parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers) {\n const parameters = parseBracketedList(16 /* Parameters */, () => parseParameter(\n /*inOuterAwaitContext*/\n false\n ), 23 /* OpenBracketToken */, 24 /* CloseBracketToken */);\n const type = parseTypeAnnotation();\n parseTypeMemberSemicolon();\n const node = factory2.createIndexSignature(modifiers, parameters, type);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) {\n const name = parsePropertyName();\n const questionToken = parseOptionalToken(58 /* QuestionToken */);\n let node;\n if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(4 /* Type */);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n true\n );\n node = factory2.createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type);\n } else {\n const type = parseTypeAnnotation();\n node = factory2.createPropertySignature(modifiers, name, questionToken, type);\n if (token() === 64 /* EqualsToken */) node.initializer = parseInitializer();\n }\n parseTypeMemberSemicolon();\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function isTypeMemberStart() {\n if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 139 /* GetKeyword */ || token() === 153 /* SetKeyword */) {\n return true;\n }\n let idToken = false;\n while (isModifierKind(token())) {\n idToken = true;\n nextToken();\n }\n if (token() === 23 /* OpenBracketToken */) {\n return true;\n }\n if (isLiteralPropertyName()) {\n idToken = true;\n nextToken();\n }\n if (idToken) {\n return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 58 /* QuestionToken */ || token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || canParseSemicolon();\n }\n return false;\n }\n function parseTypeMember() {\n if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n return parseSignatureMember(180 /* CallSignature */);\n }\n if (token() === 105 /* NewKeyword */ && lookAhead(nextTokenIsOpenParenOrLessThan)) {\n return parseSignatureMember(181 /* ConstructSignature */);\n }\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiers(\n /*allowDecorators*/\n false\n );\n if (parseContextualModifier(139 /* GetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 4 /* Type */);\n }\n if (parseContextualModifier(153 /* SetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 4 /* Type */);\n }\n if (isIndexSignature()) {\n return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers);\n }\n return parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers);\n }\n function nextTokenIsOpenParenOrLessThan() {\n nextToken();\n return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */;\n }\n function nextTokenIsDot() {\n return nextToken() === 25 /* DotToken */;\n }\n function nextTokenIsOpenParenOrLessThanOrDot() {\n switch (nextToken()) {\n case 21 /* OpenParenToken */:\n case 30 /* LessThanToken */:\n case 25 /* DotToken */:\n return true;\n }\n return false;\n }\n function parseTypeLiteral() {\n const pos = getNodePos();\n return finishNode(factory2.createTypeLiteralNode(parseObjectTypeMembers()), pos);\n }\n function parseObjectTypeMembers() {\n let members;\n if (parseExpected(19 /* OpenBraceToken */)) {\n members = parseList(4 /* TypeMembers */, parseTypeMember);\n parseExpected(20 /* CloseBraceToken */);\n } else {\n members = createMissingList();\n }\n return members;\n }\n function isStartOfMappedType() {\n nextToken();\n if (token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n return nextToken() === 148 /* ReadonlyKeyword */;\n }\n if (token() === 148 /* ReadonlyKeyword */) {\n nextToken();\n }\n return token() === 23 /* OpenBracketToken */ && nextTokenIsIdentifier() && nextToken() === 103 /* InKeyword */;\n }\n function parseMappedTypeParameter() {\n const pos = getNodePos();\n const name = parseIdentifierName();\n parseExpected(103 /* InKeyword */);\n const type = parseType();\n return finishNode(factory2.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n name,\n type,\n /*defaultType*/\n void 0\n ), pos);\n }\n function parseMappedType() {\n const pos = getNodePos();\n parseExpected(19 /* OpenBraceToken */);\n let readonlyToken;\n if (token() === 148 /* ReadonlyKeyword */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n readonlyToken = parseTokenNode();\n if (readonlyToken.kind !== 148 /* ReadonlyKeyword */) {\n parseExpected(148 /* ReadonlyKeyword */);\n }\n }\n parseExpected(23 /* OpenBracketToken */);\n const typeParameter = parseMappedTypeParameter();\n const nameType = parseOptional(130 /* AsKeyword */) ? parseType() : void 0;\n parseExpected(24 /* CloseBracketToken */);\n let questionToken;\n if (token() === 58 /* QuestionToken */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n questionToken = parseTokenNode();\n if (questionToken.kind !== 58 /* QuestionToken */) {\n parseExpected(58 /* QuestionToken */);\n }\n }\n const type = parseTypeAnnotation();\n parseSemicolon();\n const members = parseList(4 /* TypeMembers */, parseTypeMember);\n parseExpected(20 /* CloseBraceToken */);\n return finishNode(factory2.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos);\n }\n function parseTupleElementType() {\n const pos = getNodePos();\n if (parseOptional(26 /* DotDotDotToken */)) {\n return finishNode(factory2.createRestTypeNode(parseType()), pos);\n }\n const type = parseType();\n if (isJSDocNullableType(type) && type.pos === type.type.pos) {\n const node = factory2.createOptionalTypeNode(type.type);\n setTextRange(node, type);\n node.flags = type.flags;\n return node;\n }\n return type;\n }\n function isNextTokenColonOrQuestionColon() {\n return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;\n }\n function isTupleElementName() {\n if (token() === 26 /* DotDotDotToken */) {\n return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();\n }\n return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();\n }\n function parseTupleElementNameOrTupleElementType() {\n if (lookAhead(isTupleElementName)) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n const name = parseIdentifierName();\n const questionToken = parseOptionalToken(58 /* QuestionToken */);\n parseExpected(59 /* ColonToken */);\n const type = parseTupleElementType();\n const node = factory2.createNamedTupleMember(dotDotDotToken, name, questionToken, type);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n return parseTupleElementType();\n }\n function parseTupleType() {\n const pos = getNodePos();\n return finishNode(\n factory2.createTupleTypeNode(\n parseBracketedList(21 /* TupleElementTypes */, parseTupleElementNameOrTupleElementType, 23 /* OpenBracketToken */, 24 /* CloseBracketToken */)\n ),\n pos\n );\n }\n function parseParenthesizedType() {\n const pos = getNodePos();\n parseExpected(21 /* OpenParenToken */);\n const type = parseType();\n parseExpected(22 /* CloseParenToken */);\n return finishNode(factory2.createParenthesizedType(type), pos);\n }\n function parseModifiersForConstructorType() {\n let modifiers;\n if (token() === 128 /* AbstractKeyword */) {\n const pos = getNodePos();\n nextToken();\n const modifier = finishNode(factoryCreateToken(128 /* AbstractKeyword */), pos);\n modifiers = createNodeArray([modifier], pos);\n }\n return modifiers;\n }\n function parseFunctionOrConstructorType() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiersForConstructorType();\n const isConstructorType = parseOptional(105 /* NewKeyword */);\n Debug.assert(!modifiers || isConstructorType, \"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.\");\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(4 /* Type */);\n const type = parseReturnType(\n 39 /* EqualsGreaterThanToken */,\n /*isType*/\n false\n );\n const node = isConstructorType ? factory2.createConstructorTypeNode(modifiers, typeParameters, parameters, type) : factory2.createFunctionTypeNode(typeParameters, parameters, type);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseKeywordAndNoDot() {\n const node = parseTokenNode();\n return token() === 25 /* DotToken */ ? void 0 : node;\n }\n function parseLiteralTypeNode(negative) {\n const pos = getNodePos();\n if (negative) {\n nextToken();\n }\n let expression = token() === 112 /* TrueKeyword */ || token() === 97 /* FalseKeyword */ || token() === 106 /* NullKeyword */ ? parseTokenNode() : parseLiteralLikeNode(token());\n if (negative) {\n expression = finishNode(factory2.createPrefixUnaryExpression(41 /* MinusToken */, expression), pos);\n }\n return finishNode(factory2.createLiteralTypeNode(expression), pos);\n }\n function isStartOfTypeOfImportType() {\n nextToken();\n return token() === 102 /* ImportKeyword */;\n }\n function parseImportType() {\n sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n const pos = getNodePos();\n const isTypeOf = parseOptional(114 /* TypeOfKeyword */);\n parseExpected(102 /* ImportKeyword */);\n parseExpected(21 /* OpenParenToken */);\n const type = parseType();\n let attributes;\n if (parseOptional(28 /* CommaToken */)) {\n const openBracePosition = scanner2.getTokenStart();\n parseExpected(19 /* OpenBraceToken */);\n const currentToken2 = token();\n if (currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) {\n nextToken();\n } else {\n parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(118 /* WithKeyword */));\n }\n parseExpected(59 /* ColonToken */);\n attributes = parseImportAttributes(\n currentToken2,\n /*skipKeyword*/\n true\n );\n parseOptional(28 /* CommaToken */);\n if (!parseExpected(20 /* CloseBraceToken */)) {\n const lastError = lastOrUndefined(parseDiagnostics);\n if (lastError && lastError.code === Diagnostics._0_expected.code) {\n addRelatedInfo(\n lastError,\n createDetachedDiagnostic(fileName, sourceText, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, \"{\", \"}\")\n );\n }\n }\n }\n parseExpected(22 /* CloseParenToken */);\n const qualifier = parseOptional(25 /* DotToken */) ? parseEntityNameOfTypeReference() : void 0;\n const typeArguments = parseTypeArgumentsOfTypeReference();\n return finishNode(factory2.createImportTypeNode(type, attributes, qualifier, typeArguments, isTypeOf), pos);\n }\n function nextTokenIsNumericOrBigIntLiteral() {\n nextToken();\n return token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */;\n }\n function parseNonArrayType() {\n switch (token()) {\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 154 /* StringKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 155 /* SymbolKeyword */:\n case 136 /* BooleanKeyword */:\n case 157 /* UndefinedKeyword */:\n case 146 /* NeverKeyword */:\n case 151 /* ObjectKeyword */:\n return tryParse(parseKeywordAndNoDot) || parseTypeReference();\n case 67 /* AsteriskEqualsToken */:\n scanner2.reScanAsteriskEqualsToken();\n // falls through\n case 42 /* AsteriskToken */:\n return parseJSDocAllType();\n case 61 /* QuestionQuestionToken */:\n scanner2.reScanQuestionToken();\n // falls through\n case 58 /* QuestionToken */:\n return parseJSDocUnknownOrNullableType();\n case 100 /* FunctionKeyword */:\n return parseJSDocFunctionType();\n case 54 /* ExclamationToken */:\n return parseJSDocNonNullableType();\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n return parseLiteralTypeNode();\n case 41 /* MinusToken */:\n return lookAhead(nextTokenIsNumericOrBigIntLiteral) ? parseLiteralTypeNode(\n /*negative*/\n true\n ) : parseTypeReference();\n case 116 /* VoidKeyword */:\n return parseTokenNode();\n case 110 /* ThisKeyword */: {\n const thisKeyword = parseThisTypeNode();\n if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) {\n return parseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n case 114 /* TypeOfKeyword */:\n return lookAhead(isStartOfTypeOfImportType) ? parseImportType() : parseTypeQuery();\n case 19 /* OpenBraceToken */:\n return lookAhead(isStartOfMappedType) ? parseMappedType() : parseTypeLiteral();\n case 23 /* OpenBracketToken */:\n return parseTupleType();\n case 21 /* OpenParenToken */:\n return parseParenthesizedType();\n case 102 /* ImportKeyword */:\n return parseImportType();\n case 131 /* AssertsKeyword */:\n return lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine) ? parseAssertsTypePredicate() : parseTypeReference();\n case 16 /* TemplateHead */:\n return parseTemplateType();\n default:\n return parseTypeReference();\n }\n }\n function isStartOfType(inStartOfParameter) {\n switch (token()) {\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 154 /* StringKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 136 /* BooleanKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 155 /* SymbolKeyword */:\n case 158 /* UniqueKeyword */:\n case 116 /* VoidKeyword */:\n case 157 /* UndefinedKeyword */:\n case 106 /* NullKeyword */:\n case 110 /* ThisKeyword */:\n case 114 /* TypeOfKeyword */:\n case 146 /* NeverKeyword */:\n case 19 /* OpenBraceToken */:\n case 23 /* OpenBracketToken */:\n case 30 /* LessThanToken */:\n case 52 /* BarToken */:\n case 51 /* AmpersandToken */:\n case 105 /* NewKeyword */:\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 151 /* ObjectKeyword */:\n case 42 /* AsteriskToken */:\n case 58 /* QuestionToken */:\n case 54 /* ExclamationToken */:\n case 26 /* DotDotDotToken */:\n case 140 /* InferKeyword */:\n case 102 /* ImportKeyword */:\n case 131 /* AssertsKeyword */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 16 /* TemplateHead */:\n return true;\n case 100 /* FunctionKeyword */:\n return !inStartOfParameter;\n case 41 /* MinusToken */:\n return !inStartOfParameter && lookAhead(nextTokenIsNumericOrBigIntLiteral);\n case 21 /* OpenParenToken */:\n return !inStartOfParameter && lookAhead(isStartOfParenthesizedOrFunctionType);\n default:\n return isIdentifier2();\n }\n }\n function isStartOfParenthesizedOrFunctionType() {\n nextToken();\n return token() === 22 /* CloseParenToken */ || isStartOfParameter(\n /*isJSDocParameter*/\n false\n ) || isStartOfType();\n }\n function parsePostfixTypeOrHigher() {\n const pos = getNodePos();\n let type = parseNonArrayType();\n while (!scanner2.hasPrecedingLineBreak()) {\n switch (token()) {\n case 54 /* ExclamationToken */:\n nextToken();\n type = finishNode(factory2.createJSDocNonNullableType(\n type,\n /*postfix*/\n true\n ), pos);\n break;\n case 58 /* QuestionToken */:\n if (lookAhead(nextTokenIsStartOfType)) {\n return type;\n }\n nextToken();\n type = finishNode(factory2.createJSDocNullableType(\n type,\n /*postfix*/\n true\n ), pos);\n break;\n case 23 /* OpenBracketToken */:\n parseExpected(23 /* OpenBracketToken */);\n if (isStartOfType()) {\n const indexType = parseType();\n parseExpected(24 /* CloseBracketToken */);\n type = finishNode(factory2.createIndexedAccessTypeNode(type, indexType), pos);\n } else {\n parseExpected(24 /* CloseBracketToken */);\n type = finishNode(factory2.createArrayTypeNode(type), pos);\n }\n break;\n default:\n return type;\n }\n }\n return type;\n }\n function parseTypeOperator(operator) {\n const pos = getNodePos();\n parseExpected(operator);\n return finishNode(factory2.createTypeOperatorNode(operator, parseTypeOperatorOrHigher()), pos);\n }\n function tryParseConstraintOfInferType() {\n if (parseOptional(96 /* ExtendsKeyword */)) {\n const constraint = disallowConditionalTypesAnd(parseType);\n if (inDisallowConditionalTypesContext() || token() !== 58 /* QuestionToken */) {\n return constraint;\n }\n }\n }\n function parseTypeParameterOfInferType() {\n const pos = getNodePos();\n const name = parseIdentifier();\n const constraint = tryParse(tryParseConstraintOfInferType);\n const node = factory2.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n name,\n constraint\n );\n return finishNode(node, pos);\n }\n function parseInferType() {\n const pos = getNodePos();\n parseExpected(140 /* InferKeyword */);\n return finishNode(factory2.createInferTypeNode(parseTypeParameterOfInferType()), pos);\n }\n function parseTypeOperatorOrHigher() {\n const operator = token();\n switch (operator) {\n case 143 /* KeyOfKeyword */:\n case 158 /* UniqueKeyword */:\n case 148 /* ReadonlyKeyword */:\n return parseTypeOperator(operator);\n case 140 /* InferKeyword */:\n return parseInferType();\n }\n return allowConditionalTypesAnd(parsePostfixTypeOrHigher);\n }\n function parseFunctionOrConstructorTypeToError(isInUnionType) {\n if (isStartOfFunctionTypeOrConstructorType()) {\n const type = parseFunctionOrConstructorType();\n let diagnostic;\n if (isFunctionTypeNode(type)) {\n diagnostic = isInUnionType ? Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type;\n } else {\n diagnostic = isInUnionType ? Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type;\n }\n parseErrorAtRange(type, diagnostic);\n return type;\n }\n return void 0;\n }\n function parseUnionOrIntersectionType(operator, parseConstituentType, createTypeNode) {\n const pos = getNodePos();\n const isUnionType = operator === 52 /* BarToken */;\n const hasLeadingOperator = parseOptional(operator);\n let type = hasLeadingOperator && parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType();\n if (token() === operator || hasLeadingOperator) {\n const types = [type];\n while (parseOptional(operator)) {\n types.push(parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType());\n }\n type = finishNode(createTypeNode(createNodeArray(types, pos)), pos);\n }\n return type;\n }\n function parseIntersectionTypeOrHigher() {\n return parseUnionOrIntersectionType(51 /* AmpersandToken */, parseTypeOperatorOrHigher, factory2.createIntersectionTypeNode);\n }\n function parseUnionTypeOrHigher() {\n return parseUnionOrIntersectionType(52 /* BarToken */, parseIntersectionTypeOrHigher, factory2.createUnionTypeNode);\n }\n function nextTokenIsNewKeyword() {\n nextToken();\n return token() === 105 /* NewKeyword */;\n }\n function isStartOfFunctionTypeOrConstructorType() {\n if (token() === 30 /* LessThanToken */) {\n return true;\n }\n if (token() === 21 /* OpenParenToken */ && lookAhead(isUnambiguouslyStartOfFunctionType)) {\n return true;\n }\n return token() === 105 /* NewKeyword */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsNewKeyword);\n }\n function skipParameterStart() {\n if (isModifierKind(token())) {\n parseModifiers(\n /*allowDecorators*/\n false\n );\n }\n if (isIdentifier2() || token() === 110 /* ThisKeyword */) {\n nextToken();\n return true;\n }\n if (token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */) {\n const previousErrorCount = parseDiagnostics.length;\n parseIdentifierOrPattern();\n return previousErrorCount === parseDiagnostics.length;\n }\n return false;\n }\n function isUnambiguouslyStartOfFunctionType() {\n nextToken();\n if (token() === 22 /* CloseParenToken */ || token() === 26 /* DotDotDotToken */) {\n return true;\n }\n if (skipParameterStart()) {\n if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 58 /* QuestionToken */ || token() === 64 /* EqualsToken */) {\n return true;\n }\n if (token() === 22 /* CloseParenToken */) {\n nextToken();\n if (token() === 39 /* EqualsGreaterThanToken */) {\n return true;\n }\n }\n }\n return false;\n }\n function parseTypeOrTypePredicate() {\n const pos = getNodePos();\n const typePredicateVariable = isIdentifier2() && tryParse(parseTypePredicatePrefix);\n const type = parseType();\n if (typePredicateVariable) {\n return finishNode(factory2.createTypePredicateNode(\n /*assertsModifier*/\n void 0,\n typePredicateVariable,\n type\n ), pos);\n } else {\n return type;\n }\n }\n function parseTypePredicatePrefix() {\n const id = parseIdentifier();\n if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) {\n nextToken();\n return id;\n }\n }\n function parseAssertsTypePredicate() {\n const pos = getNodePos();\n const assertsModifier = parseExpectedToken(131 /* AssertsKeyword */);\n const parameterName = token() === 110 /* ThisKeyword */ ? parseThisTypeNode() : parseIdentifier();\n const type = parseOptional(142 /* IsKeyword */) ? parseType() : void 0;\n return finishNode(factory2.createTypePredicateNode(assertsModifier, parameterName, type), pos);\n }\n function parseType() {\n if (contextFlags & 81920 /* TypeExcludesFlags */) {\n return doOutsideOfContext(81920 /* TypeExcludesFlags */, parseType);\n }\n if (isStartOfFunctionTypeOrConstructorType()) {\n return parseFunctionOrConstructorType();\n }\n const pos = getNodePos();\n const type = parseUnionTypeOrHigher();\n if (!inDisallowConditionalTypesContext() && !scanner2.hasPrecedingLineBreak() && parseOptional(96 /* ExtendsKeyword */)) {\n const extendsType = disallowConditionalTypesAnd(parseType);\n parseExpected(58 /* QuestionToken */);\n const trueType = allowConditionalTypesAnd(parseType);\n parseExpected(59 /* ColonToken */);\n const falseType = allowConditionalTypesAnd(parseType);\n return finishNode(factory2.createConditionalTypeNode(type, extendsType, trueType, falseType), pos);\n }\n return type;\n }\n function parseTypeAnnotation() {\n return parseOptional(59 /* ColonToken */) ? parseType() : void 0;\n }\n function isStartOfLeftHandSideExpression() {\n switch (token()) {\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 106 /* NullKeyword */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 16 /* TemplateHead */:\n case 21 /* OpenParenToken */:\n case 23 /* OpenBracketToken */:\n case 19 /* OpenBraceToken */:\n case 100 /* FunctionKeyword */:\n case 86 /* ClassKeyword */:\n case 105 /* NewKeyword */:\n case 44 /* SlashToken */:\n case 69 /* SlashEqualsToken */:\n case 80 /* Identifier */:\n return true;\n case 102 /* ImportKeyword */:\n return lookAhead(nextTokenIsOpenParenOrLessThanOrDot);\n default:\n return isIdentifier2();\n }\n }\n function isStartOfExpression() {\n if (isStartOfLeftHandSideExpression()) {\n return true;\n }\n switch (token()) {\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n case 54 /* ExclamationToken */:\n case 91 /* DeleteKeyword */:\n case 114 /* TypeOfKeyword */:\n case 116 /* VoidKeyword */:\n case 46 /* PlusPlusToken */:\n case 47 /* MinusMinusToken */:\n case 30 /* LessThanToken */:\n case 135 /* AwaitKeyword */:\n case 127 /* YieldKeyword */:\n case 81 /* PrivateIdentifier */:\n case 60 /* AtToken */:\n return true;\n default:\n if (isBinaryOperator2()) {\n return true;\n }\n return isIdentifier2();\n }\n }\n function isStartOfExpressionStatement() {\n return token() !== 19 /* OpenBraceToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && token() !== 60 /* AtToken */ && isStartOfExpression();\n }\n function parseExpression() {\n const saveDecoratorContext = inDecoratorContext();\n if (saveDecoratorContext) {\n setDecoratorContext(\n /*val*/\n false\n );\n }\n const pos = getNodePos();\n let expr = parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n let operatorToken;\n while (operatorToken = parseOptionalToken(28 /* CommaToken */)) {\n expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n ), pos);\n }\n if (saveDecoratorContext) {\n setDecoratorContext(\n /*val*/\n true\n );\n }\n return expr;\n }\n function parseInitializer() {\n return parseOptional(64 /* EqualsToken */) ? parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n ) : void 0;\n }\n function parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) {\n if (isYieldExpression2()) {\n return parseYieldExpression();\n }\n const arrowExpression = tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction);\n if (arrowExpression) {\n return arrowExpression;\n }\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n if (expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) {\n return parseSimpleArrowFunctionExpression(\n pos,\n expr,\n allowReturnTypeInArrowFunction,\n hasJSDoc,\n /*asyncModifier*/\n void 0\n );\n }\n if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) {\n return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction), pos);\n }\n return parseConditionalExpressionRest(expr, pos, allowReturnTypeInArrowFunction);\n }\n function isYieldExpression2() {\n if (token() === 127 /* YieldKeyword */) {\n if (inYieldContext()) {\n return true;\n }\n return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine);\n }\n return false;\n }\n function nextTokenIsIdentifierOnSameLine() {\n nextToken();\n return !scanner2.hasPrecedingLineBreak() && isIdentifier2();\n }\n function parseYieldExpression() {\n const pos = getNodePos();\n nextToken();\n if (!scanner2.hasPrecedingLineBreak() && (token() === 42 /* AsteriskToken */ || isStartOfExpression())) {\n return finishNode(\n factory2.createYieldExpression(\n parseOptionalToken(42 /* AsteriskToken */),\n parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n )\n ),\n pos\n );\n } else {\n return finishNode(factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n /*expression*/\n void 0\n ), pos);\n }\n }\n function parseSimpleArrowFunctionExpression(pos, identifier, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier) {\n Debug.assert(token() === 39 /* EqualsGreaterThanToken */, \"parseSimpleArrowFunctionExpression should only have been called if we had a =>\");\n const parameter = factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n identifier,\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n finishNode(parameter, identifier.pos);\n const parameters = createNodeArray([parameter], parameter.pos, parameter.end);\n const equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */);\n const body = parseArrowFunctionExpressionBody(\n /*isAsync*/\n !!asyncModifier,\n allowReturnTypeInArrowFunction\n );\n const node = factory2.createArrowFunction(\n asyncModifier,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n equalsGreaterThanToken,\n body\n );\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n const triState = isParenthesizedArrowFunctionExpression();\n if (triState === 0 /* False */) {\n return void 0;\n }\n return triState === 1 /* True */ ? parseParenthesizedArrowFunctionExpression(\n /*allowAmbiguity*/\n true,\n /*allowReturnTypeInArrowFunction*/\n true\n ) : tryParse(() => parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction));\n }\n function isParenthesizedArrowFunctionExpression() {\n if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 134 /* AsyncKeyword */) {\n return lookAhead(isParenthesizedArrowFunctionExpressionWorker);\n }\n if (token() === 39 /* EqualsGreaterThanToken */) {\n return 1 /* True */;\n }\n return 0 /* False */;\n }\n function isParenthesizedArrowFunctionExpressionWorker() {\n if (token() === 134 /* AsyncKeyword */) {\n nextToken();\n if (scanner2.hasPrecedingLineBreak()) {\n return 0 /* False */;\n }\n if (token() !== 21 /* OpenParenToken */ && token() !== 30 /* LessThanToken */) {\n return 0 /* False */;\n }\n }\n const first2 = token();\n const second = nextToken();\n if (first2 === 21 /* OpenParenToken */) {\n if (second === 22 /* CloseParenToken */) {\n const third = nextToken();\n switch (third) {\n case 39 /* EqualsGreaterThanToken */:\n case 59 /* ColonToken */:\n case 19 /* OpenBraceToken */:\n return 1 /* True */;\n default:\n return 0 /* False */;\n }\n }\n if (second === 23 /* OpenBracketToken */ || second === 19 /* OpenBraceToken */) {\n return 2 /* Unknown */;\n }\n if (second === 26 /* DotDotDotToken */) {\n return 1 /* True */;\n }\n if (isModifierKind(second) && second !== 134 /* AsyncKeyword */ && lookAhead(nextTokenIsIdentifier)) {\n if (nextToken() === 130 /* AsKeyword */) {\n return 0 /* False */;\n }\n return 1 /* True */;\n }\n if (!isIdentifier2() && second !== 110 /* ThisKeyword */) {\n return 0 /* False */;\n }\n switch (nextToken()) {\n case 59 /* ColonToken */:\n return 1 /* True */;\n case 58 /* QuestionToken */:\n nextToken();\n if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 64 /* EqualsToken */ || token() === 22 /* CloseParenToken */) {\n return 1 /* True */;\n }\n return 0 /* False */;\n case 28 /* CommaToken */:\n case 64 /* EqualsToken */:\n case 22 /* CloseParenToken */:\n return 2 /* Unknown */;\n }\n return 0 /* False */;\n } else {\n Debug.assert(first2 === 30 /* LessThanToken */);\n if (!isIdentifier2() && token() !== 87 /* ConstKeyword */) {\n return 0 /* False */;\n }\n if (languageVariant === 1 /* JSX */) {\n const isArrowFunctionInJsx = lookAhead(() => {\n parseOptional(87 /* ConstKeyword */);\n const third = nextToken();\n if (third === 96 /* ExtendsKeyword */) {\n const fourth = nextToken();\n switch (fourth) {\n case 64 /* EqualsToken */:\n case 32 /* GreaterThanToken */:\n case 44 /* SlashToken */:\n return false;\n default:\n return true;\n }\n } else if (third === 28 /* CommaToken */ || third === 64 /* EqualsToken */) {\n return true;\n }\n return false;\n });\n if (isArrowFunctionInJsx) {\n return 1 /* True */;\n }\n return 0 /* False */;\n }\n return 2 /* Unknown */;\n }\n }\n function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n const tokenPos = scanner2.getTokenStart();\n if (notParenthesizedArrow == null ? void 0 : notParenthesizedArrow.has(tokenPos)) {\n return void 0;\n }\n const result = parseParenthesizedArrowFunctionExpression(\n /*allowAmbiguity*/\n false,\n allowReturnTypeInArrowFunction\n );\n if (!result) {\n (notParenthesizedArrow || (notParenthesizedArrow = /* @__PURE__ */ new Set())).add(tokenPos);\n }\n return result;\n }\n function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n if (token() === 134 /* AsyncKeyword */) {\n if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const asyncModifier = parseModifiersForArrowFunction();\n const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier);\n }\n }\n return void 0;\n }\n function isUnParenthesizedAsyncArrowFunctionWorker() {\n if (token() === 134 /* AsyncKeyword */) {\n nextToken();\n if (scanner2.hasPrecedingLineBreak() || token() === 39 /* EqualsGreaterThanToken */) {\n return 0 /* False */;\n }\n const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n if (!scanner2.hasPrecedingLineBreak() && expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) {\n return 1 /* True */;\n }\n }\n return 0 /* False */;\n }\n function parseParenthesizedArrowFunctionExpression(allowAmbiguity, allowReturnTypeInArrowFunction) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiersForArrowFunction();\n const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n const typeParameters = parseTypeParameters();\n let parameters;\n if (!parseExpected(21 /* OpenParenToken */)) {\n if (!allowAmbiguity) {\n return void 0;\n }\n parameters = createMissingList();\n } else {\n if (!allowAmbiguity) {\n const maybeParameters = parseParametersWorker(isAsync, allowAmbiguity);\n if (!maybeParameters) {\n return void 0;\n }\n parameters = maybeParameters;\n } else {\n parameters = parseParametersWorker(isAsync, allowAmbiguity);\n }\n if (!parseExpected(22 /* CloseParenToken */) && !allowAmbiguity) {\n return void 0;\n }\n }\n const hasReturnColon = token() === 59 /* ColonToken */;\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) {\n return void 0;\n }\n let unwrappedType = type;\n while ((unwrappedType == null ? void 0 : unwrappedType.kind) === 197 /* ParenthesizedType */) {\n unwrappedType = unwrappedType.type;\n }\n const hasJSDocFunctionType = unwrappedType && isJSDocFunctionType(unwrappedType);\n if (!allowAmbiguity && token() !== 39 /* EqualsGreaterThanToken */ && (hasJSDocFunctionType || token() !== 19 /* OpenBraceToken */)) {\n return void 0;\n }\n const lastToken = token();\n const equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */);\n const body = lastToken === 39 /* EqualsGreaterThanToken */ || lastToken === 19 /* OpenBraceToken */ ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier), allowReturnTypeInArrowFunction) : parseIdentifier();\n if (!allowReturnTypeInArrowFunction && hasReturnColon) {\n if (token() !== 59 /* ColonToken */) {\n return void 0;\n }\n }\n const node = factory2.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseArrowFunctionExpressionBody(isAsync, allowReturnTypeInArrowFunction) {\n if (token() === 19 /* OpenBraceToken */) {\n return parseFunctionBlock(isAsync ? 2 /* Await */ : 0 /* None */);\n }\n if (token() !== 27 /* SemicolonToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && isStartOfStatement() && !isStartOfExpressionStatement()) {\n return parseFunctionBlock(16 /* IgnoreMissingOpenBrace */ | (isAsync ? 2 /* Await */ : 0 /* None */));\n }\n const savedYieldContext = inYieldContext();\n setYieldContext(false);\n const savedTopLevel = topLevel;\n topLevel = false;\n const node = isAsync ? doInAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction)) : doOutsideOfAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction));\n topLevel = savedTopLevel;\n setYieldContext(savedYieldContext);\n return node;\n }\n function parseConditionalExpressionRest(leftOperand, pos, allowReturnTypeInArrowFunction) {\n const questionToken = parseOptionalToken(58 /* QuestionToken */);\n if (!questionToken) {\n return leftOperand;\n }\n let colonToken;\n return finishNode(\n factory2.createConditionalExpression(\n leftOperand,\n questionToken,\n doOutsideOfContext(disallowInAndDecoratorContext, () => parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n false\n )),\n colonToken = parseExpectedToken(59 /* ColonToken */),\n nodeIsPresent(colonToken) ? parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) : createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n false,\n Diagnostics._0_expected,\n tokenToString(59 /* ColonToken */)\n )\n ),\n pos\n );\n }\n function parseBinaryExpressionOrHigher(precedence) {\n const pos = getNodePos();\n const leftOperand = parseUnaryExpressionOrHigher();\n return parseBinaryExpressionRest(precedence, leftOperand, pos);\n }\n function isInOrOfKeyword(t) {\n return t === 103 /* InKeyword */ || t === 165 /* OfKeyword */;\n }\n function parseBinaryExpressionRest(precedence, leftOperand, pos) {\n while (true) {\n reScanGreaterToken();\n const newPrecedence = getBinaryOperatorPrecedence(token());\n const consumeCurrentOperator = token() === 43 /* AsteriskAsteriskToken */ ? newPrecedence >= precedence : newPrecedence > precedence;\n if (!consumeCurrentOperator) {\n break;\n }\n if (token() === 103 /* InKeyword */ && inDisallowInContext()) {\n break;\n }\n if (token() === 130 /* AsKeyword */ || token() === 152 /* SatisfiesKeyword */) {\n if (scanner2.hasPrecedingLineBreak()) {\n break;\n } else {\n const keywordKind = token();\n nextToken();\n leftOperand = keywordKind === 152 /* SatisfiesKeyword */ ? makeSatisfiesExpression(leftOperand, parseType()) : makeAsExpression(leftOperand, parseType());\n }\n } else {\n leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence), pos);\n }\n }\n return leftOperand;\n }\n function isBinaryOperator2() {\n if (inDisallowInContext() && token() === 103 /* InKeyword */) {\n return false;\n }\n return getBinaryOperatorPrecedence(token()) > 0;\n }\n function makeSatisfiesExpression(left, right) {\n return finishNode(factory2.createSatisfiesExpression(left, right), left.pos);\n }\n function makeBinaryExpression(left, operatorToken, right, pos) {\n return finishNode(factory2.createBinaryExpression(left, operatorToken, right), pos);\n }\n function makeAsExpression(left, right) {\n return finishNode(factory2.createAsExpression(left, right), left.pos);\n }\n function parsePrefixUnaryExpression() {\n const pos = getNodePos();\n return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseSimpleUnaryExpression)), pos);\n }\n function parseDeleteExpression() {\n const pos = getNodePos();\n return finishNode(factory2.createDeleteExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n }\n function parseTypeOfExpression() {\n const pos = getNodePos();\n return finishNode(factory2.createTypeOfExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n }\n function parseVoidExpression() {\n const pos = getNodePos();\n return finishNode(factory2.createVoidExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n }\n function isAwaitExpression2() {\n if (token() === 135 /* AwaitKeyword */) {\n if (inAwaitContext()) {\n return true;\n }\n return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine);\n }\n return false;\n }\n function parseAwaitExpression() {\n const pos = getNodePos();\n return finishNode(factory2.createAwaitExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n }\n function parseUnaryExpressionOrHigher() {\n if (isUpdateExpression()) {\n const pos = getNodePos();\n const updateExpression = parseUpdateExpression();\n return token() === 43 /* AsteriskAsteriskToken */ ? parseBinaryExpressionRest(getBinaryOperatorPrecedence(token()), updateExpression, pos) : updateExpression;\n }\n const unaryOperator = token();\n const simpleUnaryExpression = parseSimpleUnaryExpression();\n if (token() === 43 /* AsteriskAsteriskToken */) {\n const pos = skipTrivia(sourceText, simpleUnaryExpression.pos);\n const { end } = simpleUnaryExpression;\n if (simpleUnaryExpression.kind === 217 /* TypeAssertionExpression */) {\n parseErrorAt(pos, end, Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);\n } else {\n Debug.assert(isKeywordOrPunctuation(unaryOperator));\n parseErrorAt(pos, end, Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, tokenToString(unaryOperator));\n }\n }\n return simpleUnaryExpression;\n }\n function parseSimpleUnaryExpression() {\n switch (token()) {\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n case 54 /* ExclamationToken */:\n return parsePrefixUnaryExpression();\n case 91 /* DeleteKeyword */:\n return parseDeleteExpression();\n case 114 /* TypeOfKeyword */:\n return parseTypeOfExpression();\n case 116 /* VoidKeyword */:\n return parseVoidExpression();\n case 30 /* LessThanToken */:\n if (languageVariant === 1 /* JSX */) {\n return parseJsxElementOrSelfClosingElementOrFragment(\n /*inExpressionContext*/\n true,\n /*topInvalidNodePosition*/\n void 0,\n /*openingTag*/\n void 0,\n /*mustBeUnary*/\n true\n );\n }\n return parseTypeAssertion();\n case 135 /* AwaitKeyword */:\n if (isAwaitExpression2()) {\n return parseAwaitExpression();\n }\n // falls through\n default:\n return parseUpdateExpression();\n }\n }\n function isUpdateExpression() {\n switch (token()) {\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n case 54 /* ExclamationToken */:\n case 91 /* DeleteKeyword */:\n case 114 /* TypeOfKeyword */:\n case 116 /* VoidKeyword */:\n case 135 /* AwaitKeyword */:\n return false;\n case 30 /* LessThanToken */:\n if (languageVariant !== 1 /* JSX */) {\n return false;\n }\n // We are in JSX context and the token is part of JSXElement.\n // falls through\n default:\n return true;\n }\n }\n function parseUpdateExpression() {\n if (token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) {\n const pos = getNodePos();\n return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseLeftHandSideExpressionOrHigher)), pos);\n } else if (languageVariant === 1 /* JSX */ && token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrGreaterThan)) {\n return parseJsxElementOrSelfClosingElementOrFragment(\n /*inExpressionContext*/\n true\n );\n }\n const expression = parseLeftHandSideExpressionOrHigher();\n Debug.assert(isLeftHandSideExpression(expression));\n if ((token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) && !scanner2.hasPrecedingLineBreak()) {\n const operator = token();\n nextToken();\n return finishNode(factory2.createPostfixUnaryExpression(expression, operator), expression.pos);\n }\n return expression;\n }\n function parseLeftHandSideExpressionOrHigher() {\n const pos = getNodePos();\n let expression;\n if (token() === 102 /* ImportKeyword */) {\n if (lookAhead(nextTokenIsOpenParenOrLessThan)) {\n sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n expression = parseTokenNode();\n } else if (lookAhead(nextTokenIsDot)) {\n nextToken();\n nextToken();\n expression = finishNode(factory2.createMetaProperty(102 /* ImportKeyword */, parseIdentifierName()), pos);\n if (expression.name.escapedText === \"defer\") {\n if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n }\n } else {\n sourceFlags |= 8388608 /* PossiblyContainsImportMeta */;\n }\n } else {\n expression = parseMemberExpressionOrHigher();\n }\n } else {\n expression = token() === 108 /* SuperKeyword */ ? parseSuperExpression() : parseMemberExpressionOrHigher();\n }\n return parseCallExpressionRest(pos, expression);\n }\n function parseMemberExpressionOrHigher() {\n const pos = getNodePos();\n const expression = parsePrimaryExpression();\n return parseMemberExpressionRest(\n pos,\n expression,\n /*allowOptionalChain*/\n true\n );\n }\n function parseSuperExpression() {\n const pos = getNodePos();\n let expression = parseTokenNode();\n if (token() === 30 /* LessThanToken */) {\n const startPos = getNodePos();\n const typeArguments = tryParse(parseTypeArgumentsInExpression);\n if (typeArguments !== void 0) {\n parseErrorAt(startPos, getNodePos(), Diagnostics.super_may_not_use_type_arguments);\n if (!isTemplateStartOfTaggedTemplate()) {\n expression = factory2.createExpressionWithTypeArguments(expression, typeArguments);\n }\n }\n }\n if (token() === 21 /* OpenParenToken */ || token() === 25 /* DotToken */ || token() === 23 /* OpenBracketToken */) {\n return expression;\n }\n parseExpectedToken(25 /* DotToken */, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);\n return finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(\n /*allowIdentifierNames*/\n true,\n /*allowPrivateIdentifiers*/\n true,\n /*allowUnicodeEscapeSequenceInIdentifierName*/\n true\n )), pos);\n }\n function parseJsxElementOrSelfClosingElementOrFragment(inExpressionContext, topInvalidNodePosition, openingTag, mustBeUnary = false) {\n const pos = getNodePos();\n const opening = parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext);\n let result;\n if (opening.kind === 287 /* JsxOpeningElement */) {\n let children = parseJsxChildren(opening);\n let closingElement;\n const lastChild = children[children.length - 1];\n if ((lastChild == null ? void 0 : lastChild.kind) === 285 /* JsxElement */ && !tagNamesAreEquivalent(lastChild.openingElement.tagName, lastChild.closingElement.tagName) && tagNamesAreEquivalent(opening.tagName, lastChild.closingElement.tagName)) {\n const end = lastChild.children.end;\n const newLast = finishNode(\n factory2.createJsxElement(\n lastChild.openingElement,\n lastChild.children,\n finishNode(factory2.createJsxClosingElement(finishNode(factoryCreateIdentifier(\"\"), end, end)), end, end)\n ),\n lastChild.openingElement.pos,\n end\n );\n children = createNodeArray([...children.slice(0, children.length - 1), newLast], children.pos, end);\n closingElement = lastChild.closingElement;\n } else {\n closingElement = parseJsxClosingElement(opening, inExpressionContext);\n if (!tagNamesAreEquivalent(opening.tagName, closingElement.tagName)) {\n if (openingTag && isJsxOpeningElement(openingTag) && tagNamesAreEquivalent(closingElement.tagName, openingTag.tagName)) {\n parseErrorAtRange(opening.tagName, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, opening.tagName));\n } else {\n parseErrorAtRange(closingElement.tagName, Diagnostics.Expected_corresponding_JSX_closing_tag_for_0, getTextOfNodeFromSourceText(sourceText, opening.tagName));\n }\n }\n }\n result = finishNode(factory2.createJsxElement(opening, children, closingElement), pos);\n } else if (opening.kind === 290 /* JsxOpeningFragment */) {\n result = finishNode(factory2.createJsxFragment(opening, parseJsxChildren(opening), parseJsxClosingFragment(inExpressionContext)), pos);\n } else {\n Debug.assert(opening.kind === 286 /* JsxSelfClosingElement */);\n result = opening;\n }\n if (!mustBeUnary && inExpressionContext && token() === 30 /* LessThanToken */) {\n const topBadPos = typeof topInvalidNodePosition === \"undefined\" ? result.pos : topInvalidNodePosition;\n const invalidElement = tryParse(() => parseJsxElementOrSelfClosingElementOrFragment(\n /*inExpressionContext*/\n true,\n topBadPos\n ));\n if (invalidElement) {\n const operatorToken = createMissingNode(\n 28 /* CommaToken */,\n /*reportAtCurrentPosition*/\n false\n );\n setTextRangePosWidth(operatorToken, invalidElement.pos, 0);\n parseErrorAt(skipTrivia(sourceText, topBadPos), invalidElement.end, Diagnostics.JSX_expressions_must_have_one_parent_element);\n return finishNode(factory2.createBinaryExpression(result, operatorToken, invalidElement), pos);\n }\n }\n return result;\n }\n function parseJsxText() {\n const pos = getNodePos();\n const node = factory2.createJsxText(scanner2.getTokenValue(), currentToken === 13 /* JsxTextAllWhiteSpaces */);\n currentToken = scanner2.scanJsxToken();\n return finishNode(node, pos);\n }\n function parseJsxChild(openingTag, token2) {\n switch (token2) {\n case 1 /* EndOfFileToken */:\n if (isJsxOpeningFragment(openingTag)) {\n parseErrorAtRange(openingTag, Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);\n } else {\n const tag = openingTag.tagName;\n const start = Math.min(skipTrivia(sourceText, tag.pos), tag.end);\n parseErrorAt(start, tag.end, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, openingTag.tagName));\n }\n return void 0;\n case 31 /* LessThanSlashToken */:\n case 7 /* ConflictMarkerTrivia */:\n return void 0;\n case 12 /* JsxText */:\n case 13 /* JsxTextAllWhiteSpaces */:\n return parseJsxText();\n case 19 /* OpenBraceToken */:\n return parseJsxExpression(\n /*inExpressionContext*/\n false\n );\n case 30 /* LessThanToken */:\n return parseJsxElementOrSelfClosingElementOrFragment(\n /*inExpressionContext*/\n false,\n /*topInvalidNodePosition*/\n void 0,\n openingTag\n );\n default:\n return Debug.assertNever(token2);\n }\n }\n function parseJsxChildren(openingTag) {\n const list = [];\n const listPos = getNodePos();\n const saveParsingContext = parsingContext;\n parsingContext |= 1 << 14 /* JsxChildren */;\n while (true) {\n const child = parseJsxChild(openingTag, currentToken = scanner2.reScanJsxToken());\n if (!child) break;\n list.push(child);\n if (isJsxOpeningElement(openingTag) && (child == null ? void 0 : child.kind) === 285 /* JsxElement */ && !tagNamesAreEquivalent(child.openingElement.tagName, child.closingElement.tagName) && tagNamesAreEquivalent(openingTag.tagName, child.closingElement.tagName)) {\n break;\n }\n }\n parsingContext = saveParsingContext;\n return createNodeArray(list, listPos);\n }\n function parseJsxAttributes() {\n const pos = getNodePos();\n return finishNode(factory2.createJsxAttributes(parseList(13 /* JsxAttributes */, parseJsxAttribute)), pos);\n }\n function parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext) {\n const pos = getNodePos();\n parseExpected(30 /* LessThanToken */);\n if (token() === 32 /* GreaterThanToken */) {\n scanJsxText();\n return finishNode(factory2.createJsxOpeningFragment(), pos);\n }\n const tagName = parseJsxElementName();\n const typeArguments = (contextFlags & 524288 /* JavaScriptFile */) === 0 ? tryParseTypeArguments() : void 0;\n const attributes = parseJsxAttributes();\n let node;\n if (token() === 32 /* GreaterThanToken */) {\n scanJsxText();\n node = factory2.createJsxOpeningElement(tagName, typeArguments, attributes);\n } else {\n parseExpected(44 /* SlashToken */);\n if (parseExpected(\n 32 /* GreaterThanToken */,\n /*diagnosticMessage*/\n void 0,\n /*shouldAdvance*/\n false\n )) {\n if (inExpressionContext) {\n nextToken();\n } else {\n scanJsxText();\n }\n }\n node = factory2.createJsxSelfClosingElement(tagName, typeArguments, attributes);\n }\n return finishNode(node, pos);\n }\n function parseJsxElementName() {\n const pos = getNodePos();\n const initialExpression = parseJsxTagName();\n if (isJsxNamespacedName(initialExpression)) {\n return initialExpression;\n }\n let expression = initialExpression;\n while (parseOptional(25 /* DotToken */)) {\n expression = finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(\n /*allowIdentifierNames*/\n true,\n /*allowPrivateIdentifiers*/\n false,\n /*allowUnicodeEscapeSequenceInIdentifierName*/\n false\n )), pos);\n }\n return expression;\n }\n function parseJsxTagName() {\n const pos = getNodePos();\n scanJsxIdentifier();\n const isThis2 = token() === 110 /* ThisKeyword */;\n const tagName = parseIdentifierNameErrorOnUnicodeEscapeSequence();\n if (parseOptional(59 /* ColonToken */)) {\n scanJsxIdentifier();\n return finishNode(factory2.createJsxNamespacedName(tagName, parseIdentifierNameErrorOnUnicodeEscapeSequence()), pos);\n }\n return isThis2 ? finishNode(factory2.createToken(110 /* ThisKeyword */), pos) : tagName;\n }\n function parseJsxExpression(inExpressionContext) {\n const pos = getNodePos();\n if (!parseExpected(19 /* OpenBraceToken */)) {\n return void 0;\n }\n let dotDotDotToken;\n let expression;\n if (token() !== 20 /* CloseBraceToken */) {\n if (!inExpressionContext) {\n dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n }\n expression = parseExpression();\n }\n if (inExpressionContext) {\n parseExpected(20 /* CloseBraceToken */);\n } else {\n if (parseExpected(\n 20 /* CloseBraceToken */,\n /*diagnosticMessage*/\n void 0,\n /*shouldAdvance*/\n false\n )) {\n scanJsxText();\n }\n }\n return finishNode(factory2.createJsxExpression(dotDotDotToken, expression), pos);\n }\n function parseJsxAttribute() {\n if (token() === 19 /* OpenBraceToken */) {\n return parseJsxSpreadAttribute();\n }\n const pos = getNodePos();\n return finishNode(factory2.createJsxAttribute(parseJsxAttributeName(), parseJsxAttributeValue()), pos);\n }\n function parseJsxAttributeValue() {\n if (token() === 64 /* EqualsToken */) {\n if (scanJsxAttributeValue() === 11 /* StringLiteral */) {\n return parseLiteralNode();\n }\n if (token() === 19 /* OpenBraceToken */) {\n return parseJsxExpression(\n /*inExpressionContext*/\n true\n );\n }\n if (token() === 30 /* LessThanToken */) {\n return parseJsxElementOrSelfClosingElementOrFragment(\n /*inExpressionContext*/\n true\n );\n }\n parseErrorAtCurrentToken(Diagnostics.or_JSX_element_expected);\n }\n return void 0;\n }\n function parseJsxAttributeName() {\n const pos = getNodePos();\n scanJsxIdentifier();\n const attrName = parseIdentifierNameErrorOnUnicodeEscapeSequence();\n if (parseOptional(59 /* ColonToken */)) {\n scanJsxIdentifier();\n return finishNode(factory2.createJsxNamespacedName(attrName, parseIdentifierNameErrorOnUnicodeEscapeSequence()), pos);\n }\n return attrName;\n }\n function parseJsxSpreadAttribute() {\n const pos = getNodePos();\n parseExpected(19 /* OpenBraceToken */);\n parseExpected(26 /* DotDotDotToken */);\n const expression = parseExpression();\n parseExpected(20 /* CloseBraceToken */);\n return finishNode(factory2.createJsxSpreadAttribute(expression), pos);\n }\n function parseJsxClosingElement(open, inExpressionContext) {\n const pos = getNodePos();\n parseExpected(31 /* LessThanSlashToken */);\n const tagName = parseJsxElementName();\n if (parseExpected(\n 32 /* GreaterThanToken */,\n /*diagnosticMessage*/\n void 0,\n /*shouldAdvance*/\n false\n )) {\n if (inExpressionContext || !tagNamesAreEquivalent(open.tagName, tagName)) {\n nextToken();\n } else {\n scanJsxText();\n }\n }\n return finishNode(factory2.createJsxClosingElement(tagName), pos);\n }\n function parseJsxClosingFragment(inExpressionContext) {\n const pos = getNodePos();\n parseExpected(31 /* LessThanSlashToken */);\n if (parseExpected(\n 32 /* GreaterThanToken */,\n Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment,\n /*shouldAdvance*/\n false\n )) {\n if (inExpressionContext) {\n nextToken();\n } else {\n scanJsxText();\n }\n }\n return finishNode(factory2.createJsxJsxClosingFragment(), pos);\n }\n function parseTypeAssertion() {\n Debug.assert(languageVariant !== 1 /* JSX */, \"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.\");\n const pos = getNodePos();\n parseExpected(30 /* LessThanToken */);\n const type = parseType();\n parseExpected(32 /* GreaterThanToken */);\n const expression = parseSimpleUnaryExpression();\n return finishNode(factory2.createTypeAssertion(type, expression), pos);\n }\n function nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate() {\n nextToken();\n return tokenIsIdentifierOrKeyword(token()) || token() === 23 /* OpenBracketToken */ || isTemplateStartOfTaggedTemplate();\n }\n function isStartOfOptionalPropertyOrElementAccessChain() {\n return token() === 29 /* QuestionDotToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate);\n }\n function tryReparseOptionalChain(node) {\n if (node.flags & 64 /* OptionalChain */) {\n return true;\n }\n if (isNonNullExpression(node)) {\n let expr = node.expression;\n while (isNonNullExpression(expr) && !(expr.flags & 64 /* OptionalChain */)) {\n expr = expr.expression;\n }\n if (expr.flags & 64 /* OptionalChain */) {\n while (isNonNullExpression(node)) {\n node.flags |= 64 /* OptionalChain */;\n node = node.expression;\n }\n return true;\n }\n }\n return false;\n }\n function parsePropertyAccessExpressionRest(pos, expression, questionDotToken) {\n const name = parseRightSideOfDot(\n /*allowIdentifierNames*/\n true,\n /*allowPrivateIdentifiers*/\n true,\n /*allowUnicodeEscapeSequenceInIdentifierName*/\n true\n );\n const isOptionalChain2 = questionDotToken || tryReparseOptionalChain(expression);\n const propertyAccess = isOptionalChain2 ? factoryCreatePropertyAccessChain(expression, questionDotToken, name) : factoryCreatePropertyAccessExpression(expression, name);\n if (isOptionalChain2 && isPrivateIdentifier(propertyAccess.name)) {\n parseErrorAtRange(propertyAccess.name, Diagnostics.An_optional_chain_cannot_contain_private_identifiers);\n }\n if (isExpressionWithTypeArguments(expression) && expression.typeArguments) {\n const pos2 = expression.typeArguments.pos - 1;\n const end = skipTrivia(sourceText, expression.typeArguments.end) + 1;\n parseErrorAt(pos2, end, Diagnostics.An_instantiation_expression_cannot_be_followed_by_a_property_access);\n }\n return finishNode(propertyAccess, pos);\n }\n function parseElementAccessExpressionRest(pos, expression, questionDotToken) {\n let argumentExpression;\n if (token() === 24 /* CloseBracketToken */) {\n argumentExpression = createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.An_element_access_expression_should_take_an_argument\n );\n } else {\n const argument = allowInAnd(parseExpression);\n if (isStringOrNumericLiteralLike(argument)) {\n argument.text = internIdentifier(argument.text);\n }\n argumentExpression = argument;\n }\n parseExpected(24 /* CloseBracketToken */);\n const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateElementAccessChain(expression, questionDotToken, argumentExpression) : factoryCreateElementAccessExpression(expression, argumentExpression);\n return finishNode(indexedAccess, pos);\n }\n function parseMemberExpressionRest(pos, expression, allowOptionalChain) {\n while (true) {\n let questionDotToken;\n let isPropertyAccess = false;\n if (allowOptionalChain && isStartOfOptionalPropertyOrElementAccessChain()) {\n questionDotToken = parseExpectedToken(29 /* QuestionDotToken */);\n isPropertyAccess = tokenIsIdentifierOrKeyword(token());\n } else {\n isPropertyAccess = parseOptional(25 /* DotToken */);\n }\n if (isPropertyAccess) {\n expression = parsePropertyAccessExpressionRest(pos, expression, questionDotToken);\n continue;\n }\n if ((questionDotToken || !inDecoratorContext()) && parseOptional(23 /* OpenBracketToken */)) {\n expression = parseElementAccessExpressionRest(pos, expression, questionDotToken);\n continue;\n }\n if (isTemplateStartOfTaggedTemplate()) {\n expression = !questionDotToken && expression.kind === 234 /* ExpressionWithTypeArguments */ ? parseTaggedTemplateRest(pos, expression.expression, questionDotToken, expression.typeArguments) : parseTaggedTemplateRest(\n pos,\n expression,\n questionDotToken,\n /*typeArguments*/\n void 0\n );\n continue;\n }\n if (!questionDotToken) {\n if (token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) {\n nextToken();\n expression = finishNode(factory2.createNonNullExpression(expression), pos);\n continue;\n }\n const typeArguments = tryParse(parseTypeArgumentsInExpression);\n if (typeArguments) {\n expression = finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos);\n continue;\n }\n }\n return expression;\n }\n }\n function isTemplateStartOfTaggedTemplate() {\n return token() === 15 /* NoSubstitutionTemplateLiteral */ || token() === 16 /* TemplateHead */;\n }\n function parseTaggedTemplateRest(pos, tag, questionDotToken, typeArguments) {\n const tagExpression = factory2.createTaggedTemplateExpression(\n tag,\n typeArguments,\n token() === 15 /* NoSubstitutionTemplateLiteral */ ? (reScanTemplateToken(\n /*isTaggedTemplate*/\n true\n ), parseLiteralNode()) : parseTemplateExpression(\n /*isTaggedTemplate*/\n true\n )\n );\n if (questionDotToken || tag.flags & 64 /* OptionalChain */) {\n tagExpression.flags |= 64 /* OptionalChain */;\n }\n tagExpression.questionDotToken = questionDotToken;\n return finishNode(tagExpression, pos);\n }\n function parseCallExpressionRest(pos, expression) {\n while (true) {\n expression = parseMemberExpressionRest(\n pos,\n expression,\n /*allowOptionalChain*/\n true\n );\n let typeArguments;\n const questionDotToken = parseOptionalToken(29 /* QuestionDotToken */);\n if (questionDotToken) {\n typeArguments = tryParse(parseTypeArgumentsInExpression);\n if (isTemplateStartOfTaggedTemplate()) {\n expression = parseTaggedTemplateRest(pos, expression, questionDotToken, typeArguments);\n continue;\n }\n }\n if (typeArguments || token() === 21 /* OpenParenToken */) {\n if (!questionDotToken && expression.kind === 234 /* ExpressionWithTypeArguments */) {\n typeArguments = expression.typeArguments;\n expression = expression.expression;\n }\n const argumentList = parseArgumentList();\n const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateCallChain(expression, questionDotToken, typeArguments, argumentList) : factoryCreateCallExpression(expression, typeArguments, argumentList);\n expression = finishNode(callExpr, pos);\n continue;\n }\n if (questionDotToken) {\n const name = createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n false,\n Diagnostics.Identifier_expected\n );\n expression = finishNode(factoryCreatePropertyAccessChain(expression, questionDotToken, name), pos);\n }\n break;\n }\n return expression;\n }\n function parseArgumentList() {\n parseExpected(21 /* OpenParenToken */);\n const result = parseDelimitedList(11 /* ArgumentExpressions */, parseArgumentExpression);\n parseExpected(22 /* CloseParenToken */);\n return result;\n }\n function parseTypeArgumentsInExpression() {\n if ((contextFlags & 524288 /* JavaScriptFile */) !== 0) {\n return void 0;\n }\n if (reScanLessThanToken() !== 30 /* LessThanToken */) {\n return void 0;\n }\n nextToken();\n const typeArguments = parseDelimitedList(20 /* TypeArguments */, parseType);\n if (reScanGreaterToken() !== 32 /* GreaterThanToken */) {\n return void 0;\n }\n nextToken();\n return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : void 0;\n }\n function canFollowTypeArgumentsInExpression() {\n switch (token()) {\n // These tokens can follow a type argument list in a call expression.\n case 21 /* OpenParenToken */:\n // foo(\n case 15 /* NoSubstitutionTemplateLiteral */:\n // foo `...`\n case 16 /* TemplateHead */:\n return true;\n // A type argument list followed by `<` never makes sense, and a type argument list followed\n // by `>` is ambiguous with a (re-scanned) `>>` operator, so we disqualify both. Also, in\n // this context, `+` and `-` are unary operators, not binary operators.\n case 30 /* LessThanToken */:\n case 32 /* GreaterThanToken */:\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n return false;\n }\n return scanner2.hasPrecedingLineBreak() || isBinaryOperator2() || !isStartOfExpression();\n }\n function parsePrimaryExpression() {\n switch (token()) {\n case 15 /* NoSubstitutionTemplateLiteral */:\n if (scanner2.getTokenFlags() & 26656 /* IsInvalid */) {\n reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n );\n }\n // falls through\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 11 /* StringLiteral */:\n return parseLiteralNode();\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 106 /* NullKeyword */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n return parseTokenNode();\n case 21 /* OpenParenToken */:\n return parseParenthesizedExpression();\n case 23 /* OpenBracketToken */:\n return parseArrayLiteralExpression();\n case 19 /* OpenBraceToken */:\n return parseObjectLiteralExpression();\n case 134 /* AsyncKeyword */:\n if (!lookAhead(nextTokenIsFunctionKeywordOnSameLine)) {\n break;\n }\n return parseFunctionExpression();\n case 60 /* AtToken */:\n return parseDecoratedExpression();\n case 86 /* ClassKeyword */:\n return parseClassExpression();\n case 100 /* FunctionKeyword */:\n return parseFunctionExpression();\n case 105 /* NewKeyword */:\n return parseNewExpressionOrNewDotTarget();\n case 44 /* SlashToken */:\n case 69 /* SlashEqualsToken */:\n if (reScanSlashToken() === 14 /* RegularExpressionLiteral */) {\n return parseLiteralNode();\n }\n break;\n case 16 /* TemplateHead */:\n return parseTemplateExpression(\n /*isTaggedTemplate*/\n false\n );\n case 81 /* PrivateIdentifier */:\n return parsePrivateIdentifier();\n }\n return parseIdentifier(Diagnostics.Expression_expected);\n }\n function parseParenthesizedExpression() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpected(22 /* CloseParenToken */);\n return withJSDoc(finishNode(factoryCreateParenthesizedExpression(expression), pos), hasJSDoc);\n }\n function parseSpreadElement() {\n const pos = getNodePos();\n parseExpected(26 /* DotDotDotToken */);\n const expression = parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n return finishNode(factory2.createSpreadElement(expression), pos);\n }\n function parseArgumentOrArrayLiteralElement() {\n return token() === 26 /* DotDotDotToken */ ? parseSpreadElement() : token() === 28 /* CommaToken */ ? finishNode(factory2.createOmittedExpression(), getNodePos()) : parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n }\n function parseArgumentExpression() {\n return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);\n }\n function parseArrayLiteralExpression() {\n const pos = getNodePos();\n const openBracketPosition = scanner2.getTokenStart();\n const openBracketParsed = parseExpected(23 /* OpenBracketToken */);\n const multiLine = scanner2.hasPrecedingLineBreak();\n const elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);\n parseExpectedMatchingBrackets(23 /* OpenBracketToken */, 24 /* CloseBracketToken */, openBracketParsed, openBracketPosition);\n return finishNode(factoryCreateArrayLiteralExpression(elements, multiLine), pos);\n }\n function parseObjectLiteralElement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n if (parseOptionalToken(26 /* DotDotDotToken */)) {\n const expression = parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n return withJSDoc(finishNode(factory2.createSpreadAssignment(expression), pos), hasJSDoc);\n }\n const modifiers = parseModifiers(\n /*allowDecorators*/\n true\n );\n if (parseContextualModifier(139 /* GetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 0 /* None */);\n }\n if (parseContextualModifier(153 /* SetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 0 /* None */);\n }\n const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n const tokenIsIdentifier = isIdentifier2();\n const name = parsePropertyName();\n const questionToken = parseOptionalToken(58 /* QuestionToken */);\n const exclamationToken = parseOptionalToken(54 /* ExclamationToken */);\n if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n return parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken);\n }\n let node;\n const isShorthandPropertyAssignment2 = tokenIsIdentifier && token() !== 59 /* ColonToken */;\n if (isShorthandPropertyAssignment2) {\n const equalsToken = parseOptionalToken(64 /* EqualsToken */);\n const objectAssignmentInitializer = equalsToken ? allowInAnd(() => parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n )) : void 0;\n node = factory2.createShorthandPropertyAssignment(name, objectAssignmentInitializer);\n node.equalsToken = equalsToken;\n } else {\n parseExpected(59 /* ColonToken */);\n const initializer = allowInAnd(() => parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n ));\n node = factory2.createPropertyAssignment(name, initializer);\n }\n node.modifiers = modifiers;\n node.questionToken = questionToken;\n node.exclamationToken = exclamationToken;\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseObjectLiteralExpression() {\n const pos = getNodePos();\n const openBracePosition = scanner2.getTokenStart();\n const openBraceParsed = parseExpected(19 /* OpenBraceToken */);\n const multiLine = scanner2.hasPrecedingLineBreak();\n const properties = parseDelimitedList(\n 12 /* ObjectLiteralMembers */,\n parseObjectLiteralElement,\n /*considerSemicolonAsDelimiter*/\n true\n );\n parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition);\n return finishNode(factoryCreateObjectLiteralExpression(properties, multiLine), pos);\n }\n function parseFunctionExpression() {\n const savedDecoratorContext = inDecoratorContext();\n setDecoratorContext(\n /*val*/\n false\n );\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiers(\n /*allowDecorators*/\n false\n );\n parseExpected(100 /* FunctionKeyword */);\n const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n const name = isGenerator && isAsync ? doInYieldAndAwaitContext(parseOptionalBindingIdentifier) : isGenerator ? doInYieldContext(parseOptionalBindingIdentifier) : isAsync ? doInAwaitContext(parseOptionalBindingIdentifier) : parseOptionalBindingIdentifier();\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(isGenerator | isAsync);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n const body = parseFunctionBlock(isGenerator | isAsync);\n setDecoratorContext(savedDecoratorContext);\n const node = factory2.createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseOptionalBindingIdentifier() {\n return isBindingIdentifier() ? parseBindingIdentifier() : void 0;\n }\n function parseNewExpressionOrNewDotTarget() {\n const pos = getNodePos();\n parseExpected(105 /* NewKeyword */);\n if (parseOptional(25 /* DotToken */)) {\n const name = parseIdentifierName();\n return finishNode(factory2.createMetaProperty(105 /* NewKeyword */, name), pos);\n }\n const expressionPos = getNodePos();\n let expression = parseMemberExpressionRest(\n expressionPos,\n parsePrimaryExpression(),\n /*allowOptionalChain*/\n false\n );\n let typeArguments;\n if (expression.kind === 234 /* ExpressionWithTypeArguments */) {\n typeArguments = expression.typeArguments;\n expression = expression.expression;\n }\n if (token() === 29 /* QuestionDotToken */) {\n parseErrorAtCurrentToken(Diagnostics.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, getTextOfNodeFromSourceText(sourceText, expression));\n }\n const argumentList = token() === 21 /* OpenParenToken */ ? parseArgumentList() : void 0;\n return finishNode(factoryCreateNewExpression(expression, typeArguments, argumentList), pos);\n }\n function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const openBracePosition = scanner2.getTokenStart();\n const openBraceParsed = parseExpected(19 /* OpenBraceToken */, diagnosticMessage);\n if (openBraceParsed || ignoreMissingOpenBrace) {\n const multiLine = scanner2.hasPrecedingLineBreak();\n const statements = parseList(1 /* BlockStatements */, parseStatement);\n parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition);\n const result = withJSDoc(finishNode(factoryCreateBlock(statements, multiLine), pos), hasJSDoc);\n if (token() === 64 /* EqualsToken */) {\n parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses);\n nextToken();\n }\n return result;\n } else {\n const statements = createMissingList();\n return withJSDoc(finishNode(factoryCreateBlock(\n statements,\n /*multiLine*/\n void 0\n ), pos), hasJSDoc);\n }\n }\n function parseFunctionBlock(flags, diagnosticMessage) {\n const savedYieldContext = inYieldContext();\n setYieldContext(!!(flags & 1 /* Yield */));\n const savedAwaitContext = inAwaitContext();\n setAwaitContext(!!(flags & 2 /* Await */));\n const savedTopLevel = topLevel;\n topLevel = false;\n const saveDecoratorContext = inDecoratorContext();\n if (saveDecoratorContext) {\n setDecoratorContext(\n /*val*/\n false\n );\n }\n const block = parseBlock(!!(flags & 16 /* IgnoreMissingOpenBrace */), diagnosticMessage);\n if (saveDecoratorContext) {\n setDecoratorContext(\n /*val*/\n true\n );\n }\n topLevel = savedTopLevel;\n setYieldContext(savedYieldContext);\n setAwaitContext(savedAwaitContext);\n return block;\n }\n function parseEmptyStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(27 /* SemicolonToken */);\n return withJSDoc(finishNode(factory2.createEmptyStatement(), pos), hasJSDoc);\n }\n function parseIfStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(101 /* IfKeyword */);\n const openParenPosition = scanner2.getTokenStart();\n const openParenParsed = parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n const thenStatement = parseStatement();\n const elseStatement = parseOptional(93 /* ElseKeyword */) ? parseStatement() : void 0;\n return withJSDoc(finishNode(factoryCreateIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);\n }\n function parseDoStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(92 /* DoKeyword */);\n const statement = parseStatement();\n parseExpected(117 /* WhileKeyword */);\n const openParenPosition = scanner2.getTokenStart();\n const openParenParsed = parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n parseOptional(27 /* SemicolonToken */);\n return withJSDoc(finishNode(factory2.createDoStatement(statement, expression), pos), hasJSDoc);\n }\n function parseWhileStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(117 /* WhileKeyword */);\n const openParenPosition = scanner2.getTokenStart();\n const openParenParsed = parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n const statement = parseStatement();\n return withJSDoc(finishNode(factoryCreateWhileStatement(expression, statement), pos), hasJSDoc);\n }\n function parseForOrForInOrForOfStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(99 /* ForKeyword */);\n const awaitToken = parseOptionalToken(135 /* AwaitKeyword */);\n parseExpected(21 /* OpenParenToken */);\n let initializer;\n if (token() !== 27 /* SemicolonToken */) {\n if (token() === 115 /* VarKeyword */ || token() === 121 /* LetKeyword */ || token() === 87 /* ConstKeyword */ || token() === 160 /* UsingKeyword */ && lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf) || // this one is meant to allow of\n token() === 135 /* AwaitKeyword */ && lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine)) {\n initializer = parseVariableDeclarationList(\n /*inForStatementInitializer*/\n true\n );\n } else {\n initializer = disallowInAnd(parseExpression);\n }\n }\n let node;\n if (awaitToken ? parseExpected(165 /* OfKeyword */) : parseOptional(165 /* OfKeyword */)) {\n const expression = allowInAnd(() => parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n ));\n parseExpected(22 /* CloseParenToken */);\n node = factoryCreateForOfStatement(awaitToken, initializer, expression, parseStatement());\n } else if (parseOptional(103 /* InKeyword */)) {\n const expression = allowInAnd(parseExpression);\n parseExpected(22 /* CloseParenToken */);\n node = factory2.createForInStatement(initializer, expression, parseStatement());\n } else {\n parseExpected(27 /* SemicolonToken */);\n const condition = token() !== 27 /* SemicolonToken */ && token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;\n parseExpected(27 /* SemicolonToken */);\n const incrementor = token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;\n parseExpected(22 /* CloseParenToken */);\n node = factoryCreateForStatement(initializer, condition, incrementor, parseStatement());\n }\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseBreakOrContinueStatement(kind) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(kind === 253 /* BreakStatement */ ? 83 /* BreakKeyword */ : 88 /* ContinueKeyword */);\n const label = canParseSemicolon() ? void 0 : parseIdentifier();\n parseSemicolon();\n const node = kind === 253 /* BreakStatement */ ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseReturnStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(107 /* ReturnKeyword */);\n const expression = canParseSemicolon() ? void 0 : allowInAnd(parseExpression);\n parseSemicolon();\n return withJSDoc(finishNode(factory2.createReturnStatement(expression), pos), hasJSDoc);\n }\n function parseWithStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(118 /* WithKeyword */);\n const openParenPosition = scanner2.getTokenStart();\n const openParenParsed = parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n const statement = doInsideOfContext(67108864 /* InWithStatement */, parseStatement);\n return withJSDoc(finishNode(factory2.createWithStatement(expression, statement), pos), hasJSDoc);\n }\n function parseCaseClause() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(84 /* CaseKeyword */);\n const expression = allowInAnd(parseExpression);\n parseExpected(59 /* ColonToken */);\n const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);\n return withJSDoc(finishNode(factory2.createCaseClause(expression, statements), pos), hasJSDoc);\n }\n function parseDefaultClause() {\n const pos = getNodePos();\n parseExpected(90 /* DefaultKeyword */);\n parseExpected(59 /* ColonToken */);\n const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);\n return finishNode(factory2.createDefaultClause(statements), pos);\n }\n function parseCaseOrDefaultClause() {\n return token() === 84 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause();\n }\n function parseCaseBlock() {\n const pos = getNodePos();\n parseExpected(19 /* OpenBraceToken */);\n const clauses = parseList(2 /* SwitchClauses */, parseCaseOrDefaultClause);\n parseExpected(20 /* CloseBraceToken */);\n return finishNode(factory2.createCaseBlock(clauses), pos);\n }\n function parseSwitchStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(109 /* SwitchKeyword */);\n parseExpected(21 /* OpenParenToken */);\n const expression = allowInAnd(parseExpression);\n parseExpected(22 /* CloseParenToken */);\n const caseBlock = parseCaseBlock();\n return withJSDoc(finishNode(factory2.createSwitchStatement(expression, caseBlock), pos), hasJSDoc);\n }\n function parseThrowStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(111 /* ThrowKeyword */);\n let expression = scanner2.hasPrecedingLineBreak() ? void 0 : allowInAnd(parseExpression);\n if (expression === void 0) {\n identifierCount++;\n expression = finishNode(factoryCreateIdentifier(\"\"), getNodePos());\n }\n if (!tryParseSemicolon()) {\n parseErrorForMissingSemicolonAfter(expression);\n }\n return withJSDoc(finishNode(factory2.createThrowStatement(expression), pos), hasJSDoc);\n }\n function parseTryStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(113 /* TryKeyword */);\n const tryBlock = parseBlock(\n /*ignoreMissingOpenBrace*/\n false\n );\n const catchClause = token() === 85 /* CatchKeyword */ ? parseCatchClause() : void 0;\n let finallyBlock;\n if (!catchClause || token() === 98 /* FinallyKeyword */) {\n parseExpected(98 /* FinallyKeyword */, Diagnostics.catch_or_finally_expected);\n finallyBlock = parseBlock(\n /*ignoreMissingOpenBrace*/\n false\n );\n }\n return withJSDoc(finishNode(factory2.createTryStatement(tryBlock, catchClause, finallyBlock), pos), hasJSDoc);\n }\n function parseCatchClause() {\n const pos = getNodePos();\n parseExpected(85 /* CatchKeyword */);\n let variableDeclaration;\n if (parseOptional(21 /* OpenParenToken */)) {\n variableDeclaration = parseVariableDeclaration();\n parseExpected(22 /* CloseParenToken */);\n } else {\n variableDeclaration = void 0;\n }\n const block = parseBlock(\n /*ignoreMissingOpenBrace*/\n false\n );\n return finishNode(factory2.createCatchClause(variableDeclaration, block), pos);\n }\n function parseDebuggerStatement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n parseExpected(89 /* DebuggerKeyword */);\n parseSemicolon();\n return withJSDoc(finishNode(factory2.createDebuggerStatement(), pos), hasJSDoc);\n }\n function parseExpressionOrLabeledStatement() {\n const pos = getNodePos();\n let hasJSDoc = hasPrecedingJSDocComment();\n let node;\n const hasParen = token() === 21 /* OpenParenToken */;\n const expression = allowInAnd(parseExpression);\n if (isIdentifier(expression) && parseOptional(59 /* ColonToken */)) {\n node = factory2.createLabeledStatement(expression, parseStatement());\n } else {\n if (!tryParseSemicolon()) {\n parseErrorForMissingSemicolonAfter(expression);\n }\n node = factoryCreateExpressionStatement(expression);\n if (hasParen) {\n hasJSDoc = false;\n }\n }\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function nextTokenIsIdentifierOrKeywordOnSameLine() {\n nextToken();\n return tokenIsIdentifierOrKeyword(token()) && !scanner2.hasPrecedingLineBreak();\n }\n function nextTokenIsClassKeywordOnSameLine() {\n nextToken();\n return token() === 86 /* ClassKeyword */ && !scanner2.hasPrecedingLineBreak();\n }\n function nextTokenIsFunctionKeywordOnSameLine() {\n nextToken();\n return token() === 100 /* FunctionKeyword */ && !scanner2.hasPrecedingLineBreak();\n }\n function nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine() {\n nextToken();\n return (tokenIsIdentifierOrKeyword(token()) || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */ || token() === 11 /* StringLiteral */) && !scanner2.hasPrecedingLineBreak();\n }\n function isDeclaration2() {\n while (true) {\n switch (token()) {\n case 115 /* VarKeyword */:\n case 121 /* LetKeyword */:\n case 87 /* ConstKeyword */:\n case 100 /* FunctionKeyword */:\n case 86 /* ClassKeyword */:\n case 94 /* EnumKeyword */:\n return true;\n case 160 /* UsingKeyword */:\n return isUsingDeclaration();\n case 135 /* AwaitKeyword */:\n return isAwaitUsingDeclaration();\n // 'declare', 'module', 'namespace', 'interface'* and 'type' are all legal JavaScript identifiers;\n // however, an identifier cannot be followed by another identifier on the same line. This is what we\n // count on to parse out the respective declarations. For instance, we exploit this to say that\n //\n // namespace n\n //\n // can be none other than the beginning of a namespace declaration, but need to respect that JavaScript sees\n //\n // namespace\n // n\n //\n // as the identifier 'namespace' on one line followed by the identifier 'n' on another.\n // We need to look one token ahead to see if it permissible to try parsing a declaration.\n //\n // *Note*: 'interface' is actually a strict mode reserved word. So while\n //\n // \"use strict\"\n // interface\n // I {}\n //\n // could be legal, it would add complexity for very little gain.\n case 120 /* InterfaceKeyword */:\n case 156 /* TypeKeyword */:\n case 166 /* DeferKeyword */:\n return nextTokenIsIdentifierOnSameLine();\n case 144 /* ModuleKeyword */:\n case 145 /* NamespaceKeyword */:\n return nextTokenIsIdentifierOrStringLiteralOnSameLine();\n case 128 /* AbstractKeyword */:\n case 129 /* AccessorKeyword */:\n case 134 /* AsyncKeyword */:\n case 138 /* DeclareKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 125 /* PublicKeyword */:\n case 148 /* ReadonlyKeyword */:\n const previousToken = token();\n nextToken();\n if (scanner2.hasPrecedingLineBreak()) {\n return false;\n }\n if (previousToken === 138 /* DeclareKeyword */ && token() === 156 /* TypeKeyword */) {\n return true;\n }\n continue;\n case 162 /* GlobalKeyword */:\n nextToken();\n return token() === 19 /* OpenBraceToken */ || token() === 80 /* Identifier */ || token() === 95 /* ExportKeyword */;\n case 102 /* ImportKeyword */:\n nextToken();\n return token() === 166 /* DeferKeyword */ || token() === 11 /* StringLiteral */ || token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */ || tokenIsIdentifierOrKeyword(token());\n case 95 /* ExportKeyword */:\n let currentToken2 = nextToken();\n if (currentToken2 === 156 /* TypeKeyword */) {\n currentToken2 = lookAhead(nextToken);\n }\n if (currentToken2 === 64 /* EqualsToken */ || currentToken2 === 42 /* AsteriskToken */ || currentToken2 === 19 /* OpenBraceToken */ || currentToken2 === 90 /* DefaultKeyword */ || currentToken2 === 130 /* AsKeyword */ || currentToken2 === 60 /* AtToken */) {\n return true;\n }\n continue;\n case 126 /* StaticKeyword */:\n nextToken();\n continue;\n default:\n return false;\n }\n }\n }\n function isStartOfDeclaration() {\n return lookAhead(isDeclaration2);\n }\n function isStartOfStatement() {\n switch (token()) {\n case 60 /* AtToken */:\n case 27 /* SemicolonToken */:\n case 19 /* OpenBraceToken */:\n case 115 /* VarKeyword */:\n case 121 /* LetKeyword */:\n case 160 /* UsingKeyword */:\n case 100 /* FunctionKeyword */:\n case 86 /* ClassKeyword */:\n case 94 /* EnumKeyword */:\n case 101 /* IfKeyword */:\n case 92 /* DoKeyword */:\n case 117 /* WhileKeyword */:\n case 99 /* ForKeyword */:\n case 88 /* ContinueKeyword */:\n case 83 /* BreakKeyword */:\n case 107 /* ReturnKeyword */:\n case 118 /* WithKeyword */:\n case 109 /* SwitchKeyword */:\n case 111 /* ThrowKeyword */:\n case 113 /* TryKeyword */:\n case 89 /* DebuggerKeyword */:\n // 'catch' and 'finally' do not actually indicate that the code is part of a statement,\n // however, we say they are here so that we may gracefully parse them and error later.\n // falls through\n case 85 /* CatchKeyword */:\n case 98 /* FinallyKeyword */:\n return true;\n case 102 /* ImportKeyword */:\n return isStartOfDeclaration() || lookAhead(nextTokenIsOpenParenOrLessThanOrDot);\n case 87 /* ConstKeyword */:\n case 95 /* ExportKeyword */:\n return isStartOfDeclaration();\n case 134 /* AsyncKeyword */:\n case 138 /* DeclareKeyword */:\n case 120 /* InterfaceKeyword */:\n case 144 /* ModuleKeyword */:\n case 145 /* NamespaceKeyword */:\n case 156 /* TypeKeyword */:\n case 162 /* GlobalKeyword */:\n case 166 /* DeferKeyword */:\n return true;\n case 129 /* AccessorKeyword */:\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 126 /* StaticKeyword */:\n case 148 /* ReadonlyKeyword */:\n return isStartOfDeclaration() || !lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);\n default:\n return isStartOfExpression();\n }\n }\n function nextTokenIsBindingIdentifierOrStartOfDestructuring() {\n nextToken();\n return isBindingIdentifier() || token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */;\n }\n function isLetDeclaration() {\n return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuring);\n }\n function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf() {\n return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(\n /*disallowOf*/\n true\n );\n }\n function nextTokenIsEqualsOrSemicolonOrColonToken() {\n nextToken();\n return token() === 64 /* EqualsToken */ || token() === 27 /* SemicolonToken */ || token() === 59 /* ColonToken */;\n }\n function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf) {\n nextToken();\n if (disallowOf && token() === 165 /* OfKeyword */) {\n return lookAhead(nextTokenIsEqualsOrSemicolonOrColonToken);\n }\n return (isBindingIdentifier() || token() === 19 /* OpenBraceToken */) && !scanner2.hasPrecedingLineBreak();\n }\n function isUsingDeclaration() {\n return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine);\n }\n function nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine(disallowOf) {\n if (nextToken() === 160 /* UsingKeyword */) {\n return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf);\n }\n return false;\n }\n function isAwaitUsingDeclaration() {\n return lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine);\n }\n function parseStatement() {\n switch (token()) {\n case 27 /* SemicolonToken */:\n return parseEmptyStatement();\n case 19 /* OpenBraceToken */:\n return parseBlock(\n /*ignoreMissingOpenBrace*/\n false\n );\n case 115 /* VarKeyword */:\n return parseVariableStatement(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n case 121 /* LetKeyword */:\n if (isLetDeclaration()) {\n return parseVariableStatement(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n }\n break;\n case 135 /* AwaitKeyword */:\n if (isAwaitUsingDeclaration()) {\n return parseVariableStatement(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n }\n break;\n case 160 /* UsingKeyword */:\n if (isUsingDeclaration()) {\n return parseVariableStatement(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n }\n break;\n case 100 /* FunctionKeyword */:\n return parseFunctionDeclaration(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n case 86 /* ClassKeyword */:\n return parseClassDeclaration(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0\n );\n case 101 /* IfKeyword */:\n return parseIfStatement();\n case 92 /* DoKeyword */:\n return parseDoStatement();\n case 117 /* WhileKeyword */:\n return parseWhileStatement();\n case 99 /* ForKeyword */:\n return parseForOrForInOrForOfStatement();\n case 88 /* ContinueKeyword */:\n return parseBreakOrContinueStatement(252 /* ContinueStatement */);\n case 83 /* BreakKeyword */:\n return parseBreakOrContinueStatement(253 /* BreakStatement */);\n case 107 /* ReturnKeyword */:\n return parseReturnStatement();\n case 118 /* WithKeyword */:\n return parseWithStatement();\n case 109 /* SwitchKeyword */:\n return parseSwitchStatement();\n case 111 /* ThrowKeyword */:\n return parseThrowStatement();\n case 113 /* TryKeyword */:\n // Include 'catch' and 'finally' for error recovery.\n // falls through\n case 85 /* CatchKeyword */:\n case 98 /* FinallyKeyword */:\n return parseTryStatement();\n case 89 /* DebuggerKeyword */:\n return parseDebuggerStatement();\n case 60 /* AtToken */:\n return parseDeclaration();\n case 134 /* AsyncKeyword */:\n case 120 /* InterfaceKeyword */:\n case 156 /* TypeKeyword */:\n case 144 /* ModuleKeyword */:\n case 145 /* NamespaceKeyword */:\n case 138 /* DeclareKeyword */:\n case 87 /* ConstKeyword */:\n case 94 /* EnumKeyword */:\n case 95 /* ExportKeyword */:\n case 102 /* ImportKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 125 /* PublicKeyword */:\n case 128 /* AbstractKeyword */:\n case 129 /* AccessorKeyword */:\n case 126 /* StaticKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 162 /* GlobalKeyword */:\n if (isStartOfDeclaration()) {\n return parseDeclaration();\n }\n break;\n }\n return parseExpressionOrLabeledStatement();\n }\n function isDeclareModifier(modifier) {\n return modifier.kind === 138 /* DeclareKeyword */;\n }\n function parseDeclaration() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiers(\n /*allowDecorators*/\n true\n );\n const isAmbient = some(modifiers, isDeclareModifier);\n if (isAmbient) {\n const node = tryReuseAmbientDeclaration(pos);\n if (node) {\n return node;\n }\n for (const m of modifiers) {\n m.flags |= 33554432 /* Ambient */;\n }\n return doInsideOfContext(33554432 /* Ambient */, () => parseDeclarationWorker(pos, hasJSDoc, modifiers));\n } else {\n return parseDeclarationWorker(pos, hasJSDoc, modifiers);\n }\n }\n function tryReuseAmbientDeclaration(pos) {\n return doInsideOfContext(33554432 /* Ambient */, () => {\n const node = currentNode(parsingContext, pos);\n if (node) {\n return consumeNode(node);\n }\n });\n }\n function parseDeclarationWorker(pos, hasJSDoc, modifiersIn) {\n switch (token()) {\n case 115 /* VarKeyword */:\n case 121 /* LetKeyword */:\n case 87 /* ConstKeyword */:\n case 160 /* UsingKeyword */:\n case 135 /* AwaitKeyword */:\n return parseVariableStatement(pos, hasJSDoc, modifiersIn);\n case 100 /* FunctionKeyword */:\n return parseFunctionDeclaration(pos, hasJSDoc, modifiersIn);\n case 86 /* ClassKeyword */:\n return parseClassDeclaration(pos, hasJSDoc, modifiersIn);\n case 120 /* InterfaceKeyword */:\n return parseInterfaceDeclaration(pos, hasJSDoc, modifiersIn);\n case 156 /* TypeKeyword */:\n return parseTypeAliasDeclaration(pos, hasJSDoc, modifiersIn);\n case 94 /* EnumKeyword */:\n return parseEnumDeclaration(pos, hasJSDoc, modifiersIn);\n case 162 /* GlobalKeyword */:\n case 144 /* ModuleKeyword */:\n case 145 /* NamespaceKeyword */:\n return parseModuleDeclaration(pos, hasJSDoc, modifiersIn);\n case 102 /* ImportKeyword */:\n return parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiersIn);\n case 95 /* ExportKeyword */:\n nextToken();\n switch (token()) {\n case 90 /* DefaultKeyword */:\n case 64 /* EqualsToken */:\n return parseExportAssignment(pos, hasJSDoc, modifiersIn);\n case 130 /* AsKeyword */:\n return parseNamespaceExportDeclaration(pos, hasJSDoc, modifiersIn);\n default:\n return parseExportDeclaration(pos, hasJSDoc, modifiersIn);\n }\n default:\n if (modifiersIn) {\n const missing = createMissingNode(\n 283 /* MissingDeclaration */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.Declaration_expected\n );\n setTextRangePos(missing, pos);\n missing.modifiers = modifiersIn;\n return missing;\n }\n return void 0;\n }\n }\n function nextTokenIsStringLiteral() {\n return nextToken() === 11 /* StringLiteral */;\n }\n function nextTokenIsFromKeywordOrEqualsToken() {\n nextToken();\n return token() === 161 /* FromKeyword */ || token() === 64 /* EqualsToken */;\n }\n function nextTokenIsIdentifierOrStringLiteralOnSameLine() {\n nextToken();\n return !scanner2.hasPrecedingLineBreak() && (isIdentifier2() || token() === 11 /* StringLiteral */);\n }\n function parseFunctionBlockOrSemicolon(flags, diagnosticMessage) {\n if (token() !== 19 /* OpenBraceToken */) {\n if (flags & 4 /* Type */) {\n parseTypeMemberSemicolon();\n return;\n }\n if (canParseSemicolon()) {\n parseSemicolon();\n return;\n }\n }\n return parseFunctionBlock(flags, diagnosticMessage);\n }\n function parseArrayBindingElement() {\n const pos = getNodePos();\n if (token() === 28 /* CommaToken */) {\n return finishNode(factory2.createOmittedExpression(), pos);\n }\n const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n const name = parseIdentifierOrPattern();\n const initializer = parseInitializer();\n return finishNode(factory2.createBindingElement(\n dotDotDotToken,\n /*propertyName*/\n void 0,\n name,\n initializer\n ), pos);\n }\n function parseObjectBindingElement() {\n const pos = getNodePos();\n const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n const tokenIsIdentifier = isBindingIdentifier();\n let propertyName = parsePropertyName();\n let name;\n if (tokenIsIdentifier && token() !== 59 /* ColonToken */) {\n name = propertyName;\n propertyName = void 0;\n } else {\n parseExpected(59 /* ColonToken */);\n name = parseIdentifierOrPattern();\n }\n const initializer = parseInitializer();\n return finishNode(factory2.createBindingElement(dotDotDotToken, propertyName, name, initializer), pos);\n }\n function parseObjectBindingPattern() {\n const pos = getNodePos();\n parseExpected(19 /* OpenBraceToken */);\n const elements = allowInAnd(() => parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement));\n parseExpected(20 /* CloseBraceToken */);\n return finishNode(factory2.createObjectBindingPattern(elements), pos);\n }\n function parseArrayBindingPattern() {\n const pos = getNodePos();\n parseExpected(23 /* OpenBracketToken */);\n const elements = allowInAnd(() => parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement));\n parseExpected(24 /* CloseBracketToken */);\n return finishNode(factory2.createArrayBindingPattern(elements), pos);\n }\n function isBindingIdentifierOrPrivateIdentifierOrPattern() {\n return token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */ || token() === 81 /* PrivateIdentifier */ || isBindingIdentifier();\n }\n function parseIdentifierOrPattern(privateIdentifierDiagnosticMessage) {\n if (token() === 23 /* OpenBracketToken */) {\n return parseArrayBindingPattern();\n }\n if (token() === 19 /* OpenBraceToken */) {\n return parseObjectBindingPattern();\n }\n return parseBindingIdentifier(privateIdentifierDiagnosticMessage);\n }\n function parseVariableDeclarationAllowExclamation() {\n return parseVariableDeclaration(\n /*allowExclamation*/\n true\n );\n }\n function parseVariableDeclaration(allowExclamation) {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_are_not_allowed_in_variable_declarations);\n let exclamationToken;\n if (allowExclamation && name.kind === 80 /* Identifier */ && token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) {\n exclamationToken = parseTokenNode();\n }\n const type = parseTypeAnnotation();\n const initializer = isInOrOfKeyword(token()) ? void 0 : parseInitializer();\n const node = factoryCreateVariableDeclaration(name, exclamationToken, type, initializer);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseVariableDeclarationList(inForStatementInitializer) {\n const pos = getNodePos();\n let flags = 0;\n switch (token()) {\n case 115 /* VarKeyword */:\n break;\n case 121 /* LetKeyword */:\n flags |= 1 /* Let */;\n break;\n case 87 /* ConstKeyword */:\n flags |= 2 /* Const */;\n break;\n case 160 /* UsingKeyword */:\n flags |= 4 /* Using */;\n break;\n case 135 /* AwaitKeyword */:\n Debug.assert(isAwaitUsingDeclaration());\n flags |= 6 /* AwaitUsing */;\n nextToken();\n break;\n default:\n Debug.fail();\n }\n nextToken();\n let declarations;\n if (token() === 165 /* OfKeyword */ && lookAhead(canFollowContextualOfKeyword)) {\n declarations = createMissingList();\n } else {\n const savedDisallowIn = inDisallowInContext();\n setDisallowInContext(inForStatementInitializer);\n declarations = parseDelimitedList(\n 8 /* VariableDeclarations */,\n inForStatementInitializer ? parseVariableDeclaration : parseVariableDeclarationAllowExclamation\n );\n setDisallowInContext(savedDisallowIn);\n }\n return finishNode(factoryCreateVariableDeclarationList(declarations, flags), pos);\n }\n function canFollowContextualOfKeyword() {\n return nextTokenIsIdentifier() && nextToken() === 22 /* CloseParenToken */;\n }\n function parseVariableStatement(pos, hasJSDoc, modifiers) {\n const declarationList = parseVariableDeclarationList(\n /*inForStatementInitializer*/\n false\n );\n parseSemicolon();\n const node = factoryCreateVariableStatement(modifiers, declarationList);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseFunctionDeclaration(pos, hasJSDoc, modifiers) {\n const savedAwaitContext = inAwaitContext();\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(100 /* FunctionKeyword */);\n const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n const name = modifierFlags & 2048 /* Default */ ? parseOptionalBindingIdentifier() : parseBindingIdentifier();\n const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n const isAsync = modifierFlags & 1024 /* Async */ ? 2 /* Await */ : 0 /* None */;\n const typeParameters = parseTypeParameters();\n if (modifierFlags & 32 /* Export */) setAwaitContext(\n /*value*/\n true\n );\n const parameters = parseParameters(isGenerator | isAsync);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n const body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, Diagnostics.or_expected);\n setAwaitContext(savedAwaitContext);\n const node = factory2.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseConstructorName() {\n if (token() === 137 /* ConstructorKeyword */) {\n return parseExpected(137 /* ConstructorKeyword */);\n }\n if (token() === 11 /* StringLiteral */ && lookAhead(nextToken) === 21 /* OpenParenToken */) {\n return tryParse(() => {\n const literalNode = parseLiteralNode();\n return literalNode.text === \"constructor\" ? literalNode : void 0;\n });\n }\n }\n function tryParseConstructorDeclaration(pos, hasJSDoc, modifiers) {\n return tryParse(() => {\n if (parseConstructorName()) {\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(0 /* None */);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n const body = parseFunctionBlockOrSemicolon(0 /* None */, Diagnostics.or_expected);\n const node = factory2.createConstructorDeclaration(modifiers, parameters, body);\n node.typeParameters = typeParameters;\n node.type = type;\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n });\n }\n function parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken, diagnosticMessage) {\n const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(isGenerator | isAsync);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n const body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, diagnosticMessage);\n const node = factory2.createMethodDeclaration(\n modifiers,\n asteriskToken,\n name,\n questionToken,\n typeParameters,\n parameters,\n type,\n body\n );\n node.exclamationToken = exclamationToken;\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken) {\n const exclamationToken = !questionToken && !scanner2.hasPrecedingLineBreak() ? parseOptionalToken(54 /* ExclamationToken */) : void 0;\n const type = parseTypeAnnotation();\n const initializer = doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */ | 8192 /* DisallowInContext */, parseInitializer);\n parseSemicolonAfterPropertyName(name, type, initializer);\n const node = factory2.createPropertyDeclaration(\n modifiers,\n name,\n questionToken || exclamationToken,\n type,\n initializer\n );\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers) {\n const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n const name = parsePropertyName();\n const questionToken = parseOptionalToken(58 /* QuestionToken */);\n if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n return parseMethodDeclaration(\n pos,\n hasJSDoc,\n modifiers,\n asteriskToken,\n name,\n questionToken,\n /*exclamationToken*/\n void 0,\n Diagnostics.or_expected\n );\n }\n return parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken);\n }\n function parseAccessorDeclaration(pos, hasJSDoc, modifiers, kind, flags) {\n const name = parsePropertyName();\n const typeParameters = parseTypeParameters();\n const parameters = parseParameters(0 /* None */);\n const type = parseReturnType(\n 59 /* ColonToken */,\n /*isType*/\n false\n );\n const body = parseFunctionBlockOrSemicolon(flags);\n const node = kind === 178 /* GetAccessor */ ? factory2.createGetAccessorDeclaration(modifiers, name, parameters, type, body) : factory2.createSetAccessorDeclaration(modifiers, name, parameters, body);\n node.typeParameters = typeParameters;\n if (isSetAccessorDeclaration(node)) node.type = type;\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function isClassMemberStart() {\n let idToken;\n if (token() === 60 /* AtToken */) {\n return true;\n }\n while (isModifierKind(token())) {\n idToken = token();\n if (isClassMemberModifier(idToken)) {\n return true;\n }\n nextToken();\n }\n if (token() === 42 /* AsteriskToken */) {\n return true;\n }\n if (isLiteralPropertyName()) {\n idToken = token();\n nextToken();\n }\n if (token() === 23 /* OpenBracketToken */) {\n return true;\n }\n if (idToken !== void 0) {\n if (!isKeyword(idToken) || idToken === 153 /* SetKeyword */ || idToken === 139 /* GetKeyword */) {\n return true;\n }\n switch (token()) {\n case 21 /* OpenParenToken */:\n // Method declaration\n case 30 /* LessThanToken */:\n // Generic Method declaration\n case 54 /* ExclamationToken */:\n // Non-null assertion on property name\n case 59 /* ColonToken */:\n // Type Annotation for declaration\n case 64 /* EqualsToken */:\n // Initializer for declaration\n case 58 /* QuestionToken */:\n return true;\n default:\n return canParseSemicolon();\n }\n }\n return false;\n }\n function parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers) {\n parseExpectedToken(126 /* StaticKeyword */);\n const body = parseClassStaticBlockBody();\n const node = withJSDoc(finishNode(factory2.createClassStaticBlockDeclaration(body), pos), hasJSDoc);\n node.modifiers = modifiers;\n return node;\n }\n function parseClassStaticBlockBody() {\n const savedYieldContext = inYieldContext();\n const savedAwaitContext = inAwaitContext();\n setYieldContext(false);\n setAwaitContext(true);\n const body = parseBlock(\n /*ignoreMissingOpenBrace*/\n false\n );\n setYieldContext(savedYieldContext);\n setAwaitContext(savedAwaitContext);\n return body;\n }\n function parseDecoratorExpression() {\n if (inAwaitContext() && token() === 135 /* AwaitKeyword */) {\n const pos = getNodePos();\n const awaitExpression = parseIdentifier(Diagnostics.Expression_expected);\n nextToken();\n const memberExpression = parseMemberExpressionRest(\n pos,\n awaitExpression,\n /*allowOptionalChain*/\n true\n );\n return parseCallExpressionRest(pos, memberExpression);\n }\n return parseLeftHandSideExpressionOrHigher();\n }\n function tryParseDecorator() {\n const pos = getNodePos();\n if (!parseOptional(60 /* AtToken */)) {\n return void 0;\n }\n const expression = doInDecoratorContext(parseDecoratorExpression);\n return finishNode(factory2.createDecorator(expression), pos);\n }\n function tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock) {\n const pos = getNodePos();\n const kind = token();\n if (token() === 87 /* ConstKeyword */ && permitConstAsModifier) {\n if (!tryParse(nextTokenIsOnSameLineAndCanFollowModifier)) {\n return void 0;\n }\n } else if (stopOnStartOfClassStaticBlock && token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) {\n return void 0;\n } else if (hasSeenStaticModifier && token() === 126 /* StaticKeyword */) {\n return void 0;\n } else {\n if (!parseAnyContextualModifier()) {\n return void 0;\n }\n }\n return finishNode(factoryCreateToken(kind), pos);\n }\n function parseModifiers(allowDecorators, permitConstAsModifier, stopOnStartOfClassStaticBlock) {\n const pos = getNodePos();\n let list;\n let decorator, modifier, hasSeenStaticModifier = false, hasLeadingModifier = false, hasTrailingDecorator = false;\n if (allowDecorators && token() === 60 /* AtToken */) {\n while (decorator = tryParseDecorator()) {\n list = append(list, decorator);\n }\n }\n while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) {\n if (modifier.kind === 126 /* StaticKeyword */) hasSeenStaticModifier = true;\n list = append(list, modifier);\n hasLeadingModifier = true;\n }\n if (hasLeadingModifier && allowDecorators && token() === 60 /* AtToken */) {\n while (decorator = tryParseDecorator()) {\n list = append(list, decorator);\n hasTrailingDecorator = true;\n }\n }\n if (hasTrailingDecorator) {\n while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) {\n if (modifier.kind === 126 /* StaticKeyword */) hasSeenStaticModifier = true;\n list = append(list, modifier);\n }\n }\n return list && createNodeArray(list, pos);\n }\n function parseModifiersForArrowFunction() {\n let modifiers;\n if (token() === 134 /* AsyncKeyword */) {\n const pos = getNodePos();\n nextToken();\n const modifier = finishNode(factoryCreateToken(134 /* AsyncKeyword */), pos);\n modifiers = createNodeArray([modifier], pos);\n }\n return modifiers;\n }\n function parseClassElement() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n if (token() === 27 /* SemicolonToken */) {\n nextToken();\n return withJSDoc(finishNode(factory2.createSemicolonClassElement(), pos), hasJSDoc);\n }\n const modifiers = parseModifiers(\n /*allowDecorators*/\n true,\n /*permitConstAsModifier*/\n true,\n /*stopOnStartOfClassStaticBlock*/\n true\n );\n if (token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) {\n return parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers);\n }\n if (parseContextualModifier(139 /* GetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 0 /* None */);\n }\n if (parseContextualModifier(153 /* SetKeyword */)) {\n return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 0 /* None */);\n }\n if (token() === 137 /* ConstructorKeyword */ || token() === 11 /* StringLiteral */) {\n const constructorDeclaration = tryParseConstructorDeclaration(pos, hasJSDoc, modifiers);\n if (constructorDeclaration) {\n return constructorDeclaration;\n }\n }\n if (isIndexSignature()) {\n return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers);\n }\n if (tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */ || token() === 42 /* AsteriskToken */ || token() === 23 /* OpenBracketToken */) {\n const isAmbient = some(modifiers, isDeclareModifier);\n if (isAmbient) {\n for (const m of modifiers) {\n m.flags |= 33554432 /* Ambient */;\n }\n return doInsideOfContext(33554432 /* Ambient */, () => parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers));\n } else {\n return parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers);\n }\n }\n if (modifiers) {\n const name = createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.Declaration_expected\n );\n return parsePropertyDeclaration(\n pos,\n hasJSDoc,\n modifiers,\n name,\n /*questionToken*/\n void 0\n );\n }\n return Debug.fail(\"Should not have attempted to parse class member declaration.\");\n }\n function parseDecoratedExpression() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const modifiers = parseModifiers(\n /*allowDecorators*/\n true\n );\n if (token() === 86 /* ClassKeyword */) {\n return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 232 /* ClassExpression */);\n }\n const missing = createMissingNode(\n 283 /* MissingDeclaration */,\n /*reportAtCurrentPosition*/\n true,\n Diagnostics.Expression_expected\n );\n setTextRangePos(missing, pos);\n missing.modifiers = modifiers;\n return missing;\n }\n function parseClassExpression() {\n return parseClassDeclarationOrExpression(\n getNodePos(),\n hasPrecedingJSDocComment(),\n /*modifiers*/\n void 0,\n 232 /* ClassExpression */\n );\n }\n function parseClassDeclaration(pos, hasJSDoc, modifiers) {\n return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 264 /* ClassDeclaration */);\n }\n function parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, kind) {\n const savedAwaitContext = inAwaitContext();\n parseExpected(86 /* ClassKeyword */);\n const name = parseNameOfClassDeclarationOrExpression();\n const typeParameters = parseTypeParameters();\n if (some(modifiers, isExportModifier)) setAwaitContext(\n /*value*/\n true\n );\n const heritageClauses = parseHeritageClauses();\n let members;\n if (parseExpected(19 /* OpenBraceToken */)) {\n members = parseClassMembers();\n parseExpected(20 /* CloseBraceToken */);\n } else {\n members = createMissingList();\n }\n setAwaitContext(savedAwaitContext);\n const node = kind === 264 /* ClassDeclaration */ ? factory2.createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) : factory2.createClassExpression(modifiers, name, typeParameters, heritageClauses, members);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseNameOfClassDeclarationOrExpression() {\n return isBindingIdentifier() && !isImplementsClause() ? createIdentifier(isBindingIdentifier()) : void 0;\n }\n function isImplementsClause() {\n return token() === 119 /* ImplementsKeyword */ && lookAhead(nextTokenIsIdentifierOrKeyword);\n }\n function parseHeritageClauses() {\n if (isHeritageClause2()) {\n return parseList(22 /* HeritageClauses */, parseHeritageClause);\n }\n return void 0;\n }\n function parseHeritageClause() {\n const pos = getNodePos();\n const tok = token();\n Debug.assert(tok === 96 /* ExtendsKeyword */ || tok === 119 /* ImplementsKeyword */);\n nextToken();\n const types = parseDelimitedList(7 /* HeritageClauseElement */, parseExpressionWithTypeArguments);\n return finishNode(factory2.createHeritageClause(tok, types), pos);\n }\n function parseExpressionWithTypeArguments() {\n const pos = getNodePos();\n const expression = parseLeftHandSideExpressionOrHigher();\n if (expression.kind === 234 /* ExpressionWithTypeArguments */) {\n return expression;\n }\n const typeArguments = tryParseTypeArguments();\n return finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos);\n }\n function tryParseTypeArguments() {\n return token() === 30 /* LessThanToken */ ? parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */) : void 0;\n }\n function isHeritageClause2() {\n return token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n }\n function parseClassMembers() {\n return parseList(5 /* ClassMembers */, parseClassElement);\n }\n function parseInterfaceDeclaration(pos, hasJSDoc, modifiers) {\n parseExpected(120 /* InterfaceKeyword */);\n const name = parseIdentifier();\n const typeParameters = parseTypeParameters();\n const heritageClauses = parseHeritageClauses();\n const members = parseObjectTypeMembers();\n const node = factory2.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseTypeAliasDeclaration(pos, hasJSDoc, modifiers) {\n parseExpected(156 /* TypeKeyword */);\n if (scanner2.hasPrecedingLineBreak()) {\n parseErrorAtCurrentToken(Diagnostics.Line_break_not_permitted_here);\n }\n const name = parseIdentifier();\n const typeParameters = parseTypeParameters();\n parseExpected(64 /* EqualsToken */);\n const type = token() === 141 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType();\n parseSemicolon();\n const node = factory2.createTypeAliasDeclaration(modifiers, name, typeParameters, type);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseEnumMember() {\n const pos = getNodePos();\n const hasJSDoc = hasPrecedingJSDocComment();\n const name = parsePropertyName();\n const initializer = allowInAnd(parseInitializer);\n return withJSDoc(finishNode(factory2.createEnumMember(name, initializer), pos), hasJSDoc);\n }\n function parseEnumDeclaration(pos, hasJSDoc, modifiers) {\n parseExpected(94 /* EnumKeyword */);\n const name = parseIdentifier();\n let members;\n if (parseExpected(19 /* OpenBraceToken */)) {\n members = doOutsideOfYieldAndAwaitContext(() => parseDelimitedList(6 /* EnumMembers */, parseEnumMember));\n parseExpected(20 /* CloseBraceToken */);\n } else {\n members = createMissingList();\n }\n const node = factory2.createEnumDeclaration(modifiers, name, members);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseModuleBlock() {\n const pos = getNodePos();\n let statements;\n if (parseExpected(19 /* OpenBraceToken */)) {\n statements = parseList(1 /* BlockStatements */, parseStatement);\n parseExpected(20 /* CloseBraceToken */);\n } else {\n statements = createMissingList();\n }\n return finishNode(factory2.createModuleBlock(statements), pos);\n }\n function parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiers, flags) {\n const namespaceFlag = flags & 32 /* Namespace */;\n const name = flags & 8 /* NestedNamespace */ ? parseIdentifierName() : parseIdentifier();\n const body = parseOptional(25 /* DotToken */) ? parseModuleOrNamespaceDeclaration(\n getNodePos(),\n /*hasJSDoc*/\n false,\n /*modifiers*/\n void 0,\n 8 /* NestedNamespace */ | namespaceFlag\n ) : parseModuleBlock();\n const node = factory2.createModuleDeclaration(modifiers, name, body, flags);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn) {\n let flags = 0;\n let name;\n if (token() === 162 /* GlobalKeyword */) {\n name = parseIdentifier();\n flags |= 2048 /* GlobalAugmentation */;\n } else {\n name = parseLiteralNode();\n name.text = internIdentifier(name.text);\n }\n let body;\n if (token() === 19 /* OpenBraceToken */) {\n body = parseModuleBlock();\n } else {\n parseSemicolon();\n }\n const node = factory2.createModuleDeclaration(modifiersIn, name, body, flags);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseModuleDeclaration(pos, hasJSDoc, modifiersIn) {\n let flags = 0;\n if (token() === 162 /* GlobalKeyword */) {\n return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn);\n } else if (parseOptional(145 /* NamespaceKeyword */)) {\n flags |= 32 /* Namespace */;\n } else {\n parseExpected(144 /* ModuleKeyword */);\n if (token() === 11 /* StringLiteral */) {\n return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn);\n }\n }\n return parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiersIn, flags);\n }\n function isExternalModuleReference2() {\n return token() === 149 /* RequireKeyword */ && lookAhead(nextTokenIsOpenParen);\n }\n function nextTokenIsOpenParen() {\n return nextToken() === 21 /* OpenParenToken */;\n }\n function nextTokenIsOpenBrace() {\n return nextToken() === 19 /* OpenBraceToken */;\n }\n function nextTokenIsSlash() {\n return nextToken() === 44 /* SlashToken */;\n }\n function parseNamespaceExportDeclaration(pos, hasJSDoc, modifiers) {\n parseExpected(130 /* AsKeyword */);\n parseExpected(145 /* NamespaceKeyword */);\n const name = parseIdentifier();\n parseSemicolon();\n const node = factory2.createNamespaceExportDeclaration(name);\n node.modifiers = modifiers;\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiers) {\n parseExpected(102 /* ImportKeyword */);\n const afterImportPos = scanner2.getTokenFullStart();\n let identifier;\n if (isIdentifier2()) {\n identifier = parseIdentifier();\n }\n let phaseModifier;\n if ((identifier == null ? void 0 : identifier.escapedText) === \"type\" && (token() !== 161 /* FromKeyword */ || isIdentifier2() && lookAhead(nextTokenIsFromKeywordOrEqualsToken)) && (isIdentifier2() || tokenAfterImportDefinitelyProducesImportDeclaration())) {\n phaseModifier = 156 /* TypeKeyword */;\n identifier = isIdentifier2() ? parseIdentifier() : void 0;\n } else if ((identifier == null ? void 0 : identifier.escapedText) === \"defer\" && (token() === 161 /* FromKeyword */ ? !lookAhead(nextTokenIsStringLiteral) : token() !== 28 /* CommaToken */ && token() !== 64 /* EqualsToken */)) {\n phaseModifier = 166 /* DeferKeyword */;\n identifier = isIdentifier2() ? parseIdentifier() : void 0;\n }\n if (identifier && !tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() && phaseModifier !== 166 /* DeferKeyword */) {\n return parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, phaseModifier === 156 /* TypeKeyword */);\n }\n const importClause = tryParseImportClause(\n identifier,\n afterImportPos,\n phaseModifier,\n /*skipJsDocLeadingAsterisks*/\n void 0\n );\n const moduleSpecifier = parseModuleSpecifier();\n const attributes = tryParseImportAttributes();\n parseSemicolon();\n const node = factory2.createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function tryParseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks = false) {\n let importClause;\n if (identifier || // import id\n token() === 42 /* AsteriskToken */ || // import *\n token() === 19 /* OpenBraceToken */) {\n importClause = parseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks);\n parseExpected(161 /* FromKeyword */);\n }\n return importClause;\n }\n function tryParseImportAttributes() {\n const currentToken2 = token();\n if ((currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) && !scanner2.hasPrecedingLineBreak()) {\n return parseImportAttributes(currentToken2);\n }\n }\n function parseImportAttribute() {\n const pos = getNodePos();\n const name = tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(11 /* StringLiteral */);\n parseExpected(59 /* ColonToken */);\n const value = parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n return finishNode(factory2.createImportAttribute(name, value), pos);\n }\n function parseImportAttributes(token2, skipKeyword) {\n const pos = getNodePos();\n if (!skipKeyword) {\n parseExpected(token2);\n }\n const openBracePosition = scanner2.getTokenStart();\n if (parseExpected(19 /* OpenBraceToken */)) {\n const multiLine = scanner2.hasPrecedingLineBreak();\n const elements = parseDelimitedList(\n 24 /* ImportAttributes */,\n parseImportAttribute,\n /*considerSemicolonAsDelimiter*/\n true\n );\n if (!parseExpected(20 /* CloseBraceToken */)) {\n const lastError = lastOrUndefined(parseDiagnostics);\n if (lastError && lastError.code === Diagnostics._0_expected.code) {\n addRelatedInfo(\n lastError,\n createDetachedDiagnostic(fileName, sourceText, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, \"{\", \"}\")\n );\n }\n }\n return finishNode(factory2.createImportAttributes(elements, multiLine, token2), pos);\n } else {\n const elements = createNodeArray(\n [],\n getNodePos(),\n /*end*/\n void 0,\n /*hasTrailingComma*/\n false\n );\n return finishNode(factory2.createImportAttributes(\n elements,\n /*multiLine*/\n false,\n token2\n ), pos);\n }\n }\n function tokenAfterImportDefinitelyProducesImportDeclaration() {\n return token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */;\n }\n function tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() {\n return token() === 28 /* CommaToken */ || token() === 161 /* FromKeyword */;\n }\n function parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, isTypeOnly) {\n parseExpected(64 /* EqualsToken */);\n const moduleReference = parseModuleReference();\n parseSemicolon();\n const node = factory2.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference);\n const finished = withJSDoc(finishNode(node, pos), hasJSDoc);\n return finished;\n }\n function parseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks) {\n let namedBindings;\n if (!identifier || parseOptional(28 /* CommaToken */)) {\n if (skipJsDocLeadingAsterisks) scanner2.setSkipJsDocLeadingAsterisks(true);\n if (token() === 42 /* AsteriskToken */) {\n namedBindings = parseNamespaceImport();\n } else {\n namedBindings = parseNamedImportsOrExports(276 /* NamedImports */);\n }\n if (skipJsDocLeadingAsterisks) scanner2.setSkipJsDocLeadingAsterisks(false);\n }\n return finishNode(factory2.createImportClause(phaseModifier, identifier, namedBindings), pos);\n }\n function parseModuleReference() {\n return isExternalModuleReference2() ? parseExternalModuleReference() : parseEntityName(\n /*allowReservedWords*/\n false\n );\n }\n function parseExternalModuleReference() {\n const pos = getNodePos();\n parseExpected(149 /* RequireKeyword */);\n parseExpected(21 /* OpenParenToken */);\n const expression = parseModuleSpecifier();\n parseExpected(22 /* CloseParenToken */);\n return finishNode(factory2.createExternalModuleReference(expression), pos);\n }\n function parseModuleSpecifier() {\n if (token() === 11 /* StringLiteral */) {\n const result = parseLiteralNode();\n result.text = internIdentifier(result.text);\n return result;\n } else {\n return parseExpression();\n }\n }\n function parseNamespaceImport() {\n const pos = getNodePos();\n parseExpected(42 /* AsteriskToken */);\n parseExpected(130 /* AsKeyword */);\n const name = parseIdentifier();\n return finishNode(factory2.createNamespaceImport(name), pos);\n }\n function canParseModuleExportName() {\n return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */;\n }\n function parseModuleExportName(parseName) {\n return token() === 11 /* StringLiteral */ ? parseLiteralNode() : parseName();\n }\n function parseNamedImportsOrExports(kind) {\n const pos = getNodePos();\n const node = kind === 276 /* NamedImports */ ? factory2.createNamedImports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseImportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */)) : factory2.createNamedExports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseExportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */));\n return finishNode(node, pos);\n }\n function parseExportSpecifier() {\n const hasJSDoc = hasPrecedingJSDocComment();\n return withJSDoc(parseImportOrExportSpecifier(282 /* ExportSpecifier */), hasJSDoc);\n }\n function parseImportSpecifier() {\n return parseImportOrExportSpecifier(277 /* ImportSpecifier */);\n }\n function parseImportOrExportSpecifier(kind) {\n const pos = getNodePos();\n let checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2();\n let checkIdentifierStart = scanner2.getTokenStart();\n let checkIdentifierEnd = scanner2.getTokenEnd();\n let isTypeOnly = false;\n let propertyName;\n let canParseAsKeyword = true;\n let name = parseModuleExportName(parseIdentifierName);\n if (name.kind === 80 /* Identifier */ && name.escapedText === \"type\") {\n if (token() === 130 /* AsKeyword */) {\n const firstAs = parseIdentifierName();\n if (token() === 130 /* AsKeyword */) {\n const secondAs = parseIdentifierName();\n if (canParseModuleExportName()) {\n isTypeOnly = true;\n propertyName = firstAs;\n name = parseModuleExportName(parseNameWithKeywordCheck);\n canParseAsKeyword = false;\n } else {\n propertyName = name;\n name = secondAs;\n canParseAsKeyword = false;\n }\n } else if (canParseModuleExportName()) {\n propertyName = name;\n canParseAsKeyword = false;\n name = parseModuleExportName(parseNameWithKeywordCheck);\n } else {\n isTypeOnly = true;\n name = firstAs;\n }\n } else if (canParseModuleExportName()) {\n isTypeOnly = true;\n name = parseModuleExportName(parseNameWithKeywordCheck);\n }\n }\n if (canParseAsKeyword && token() === 130 /* AsKeyword */) {\n propertyName = name;\n parseExpected(130 /* AsKeyword */);\n name = parseModuleExportName(parseNameWithKeywordCheck);\n }\n if (kind === 277 /* ImportSpecifier */) {\n if (name.kind !== 80 /* Identifier */) {\n parseErrorAt(skipTrivia(sourceText, name.pos), name.end, Diagnostics.Identifier_expected);\n name = setTextRangePosEnd(createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n false\n ), name.pos, name.pos);\n } else if (checkIdentifierIsKeyword) {\n parseErrorAt(checkIdentifierStart, checkIdentifierEnd, Diagnostics.Identifier_expected);\n }\n }\n const node = kind === 277 /* ImportSpecifier */ ? factory2.createImportSpecifier(isTypeOnly, propertyName, name) : factory2.createExportSpecifier(isTypeOnly, propertyName, name);\n return finishNode(node, pos);\n function parseNameWithKeywordCheck() {\n checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2();\n checkIdentifierStart = scanner2.getTokenStart();\n checkIdentifierEnd = scanner2.getTokenEnd();\n return parseIdentifierName();\n }\n }\n function parseNamespaceExport(pos) {\n return finishNode(factory2.createNamespaceExport(parseModuleExportName(parseIdentifierName)), pos);\n }\n function parseExportDeclaration(pos, hasJSDoc, modifiers) {\n const savedAwaitContext = inAwaitContext();\n setAwaitContext(\n /*value*/\n true\n );\n let exportClause;\n let moduleSpecifier;\n let attributes;\n const isTypeOnly = parseOptional(156 /* TypeKeyword */);\n const namespaceExportPos = getNodePos();\n if (parseOptional(42 /* AsteriskToken */)) {\n if (parseOptional(130 /* AsKeyword */)) {\n exportClause = parseNamespaceExport(namespaceExportPos);\n }\n parseExpected(161 /* FromKeyword */);\n moduleSpecifier = parseModuleSpecifier();\n } else {\n exportClause = parseNamedImportsOrExports(280 /* NamedExports */);\n if (token() === 161 /* FromKeyword */ || token() === 11 /* StringLiteral */ && !scanner2.hasPrecedingLineBreak()) {\n parseExpected(161 /* FromKeyword */);\n moduleSpecifier = parseModuleSpecifier();\n }\n }\n const currentToken2 = token();\n if (moduleSpecifier && (currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) && !scanner2.hasPrecedingLineBreak()) {\n attributes = parseImportAttributes(currentToken2);\n }\n parseSemicolon();\n setAwaitContext(savedAwaitContext);\n const node = factory2.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n function parseExportAssignment(pos, hasJSDoc, modifiers) {\n const savedAwaitContext = inAwaitContext();\n setAwaitContext(\n /*value*/\n true\n );\n let isExportEquals;\n if (parseOptional(64 /* EqualsToken */)) {\n isExportEquals = true;\n } else {\n parseExpected(90 /* DefaultKeyword */);\n }\n const expression = parseAssignmentExpressionOrHigher(\n /*allowReturnTypeInArrowFunction*/\n true\n );\n parseSemicolon();\n setAwaitContext(savedAwaitContext);\n const node = factory2.createExportAssignment(modifiers, isExportEquals, expression);\n return withJSDoc(finishNode(node, pos), hasJSDoc);\n }\n let ParsingContext;\n ((ParsingContext2) => {\n ParsingContext2[ParsingContext2[\"SourceElements\"] = 0] = \"SourceElements\";\n ParsingContext2[ParsingContext2[\"BlockStatements\"] = 1] = \"BlockStatements\";\n ParsingContext2[ParsingContext2[\"SwitchClauses\"] = 2] = \"SwitchClauses\";\n ParsingContext2[ParsingContext2[\"SwitchClauseStatements\"] = 3] = \"SwitchClauseStatements\";\n ParsingContext2[ParsingContext2[\"TypeMembers\"] = 4] = \"TypeMembers\";\n ParsingContext2[ParsingContext2[\"ClassMembers\"] = 5] = \"ClassMembers\";\n ParsingContext2[ParsingContext2[\"EnumMembers\"] = 6] = \"EnumMembers\";\n ParsingContext2[ParsingContext2[\"HeritageClauseElement\"] = 7] = \"HeritageClauseElement\";\n ParsingContext2[ParsingContext2[\"VariableDeclarations\"] = 8] = \"VariableDeclarations\";\n ParsingContext2[ParsingContext2[\"ObjectBindingElements\"] = 9] = \"ObjectBindingElements\";\n ParsingContext2[ParsingContext2[\"ArrayBindingElements\"] = 10] = \"ArrayBindingElements\";\n ParsingContext2[ParsingContext2[\"ArgumentExpressions\"] = 11] = \"ArgumentExpressions\";\n ParsingContext2[ParsingContext2[\"ObjectLiteralMembers\"] = 12] = \"ObjectLiteralMembers\";\n ParsingContext2[ParsingContext2[\"JsxAttributes\"] = 13] = \"JsxAttributes\";\n ParsingContext2[ParsingContext2[\"JsxChildren\"] = 14] = \"JsxChildren\";\n ParsingContext2[ParsingContext2[\"ArrayLiteralMembers\"] = 15] = \"ArrayLiteralMembers\";\n ParsingContext2[ParsingContext2[\"Parameters\"] = 16] = \"Parameters\";\n ParsingContext2[ParsingContext2[\"JSDocParameters\"] = 17] = \"JSDocParameters\";\n ParsingContext2[ParsingContext2[\"RestProperties\"] = 18] = \"RestProperties\";\n ParsingContext2[ParsingContext2[\"TypeParameters\"] = 19] = \"TypeParameters\";\n ParsingContext2[ParsingContext2[\"TypeArguments\"] = 20] = \"TypeArguments\";\n ParsingContext2[ParsingContext2[\"TupleElementTypes\"] = 21] = \"TupleElementTypes\";\n ParsingContext2[ParsingContext2[\"HeritageClauses\"] = 22] = \"HeritageClauses\";\n ParsingContext2[ParsingContext2[\"ImportOrExportSpecifiers\"] = 23] = \"ImportOrExportSpecifiers\";\n ParsingContext2[ParsingContext2[\"ImportAttributes\"] = 24] = \"ImportAttributes\";\n ParsingContext2[ParsingContext2[\"JSDocComment\"] = 25] = \"JSDocComment\";\n ParsingContext2[ParsingContext2[\"Count\"] = 26] = \"Count\";\n })(ParsingContext || (ParsingContext = {}));\n let Tristate;\n ((Tristate2) => {\n Tristate2[Tristate2[\"False\"] = 0] = \"False\";\n Tristate2[Tristate2[\"True\"] = 1] = \"True\";\n Tristate2[Tristate2[\"Unknown\"] = 2] = \"Unknown\";\n })(Tristate || (Tristate = {}));\n let JSDocParser;\n ((JSDocParser2) => {\n function parseJSDocTypeExpressionForTests2(content, start, length2) {\n initializeState(\n \"file.js\",\n content,\n 99 /* Latest */,\n /*syntaxCursor*/\n void 0,\n 1 /* JS */,\n 0 /* ParseAll */\n );\n scanner2.setText(content, start, length2);\n currentToken = scanner2.scan();\n const jsDocTypeExpression = parseJSDocTypeExpression();\n const sourceFile = createSourceFile2(\n \"file.js\",\n 99 /* Latest */,\n 1 /* JS */,\n /*isDeclarationFile*/\n false,\n [],\n factoryCreateToken(1 /* EndOfFileToken */),\n 0 /* None */,\n noop\n );\n const diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n if (jsDocDiagnostics) {\n sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n }\n clearState();\n return jsDocTypeExpression ? { jsDocTypeExpression, diagnostics } : void 0;\n }\n JSDocParser2.parseJSDocTypeExpressionForTests = parseJSDocTypeExpressionForTests2;\n function parseJSDocTypeExpression(mayOmitBraces) {\n const pos = getNodePos();\n const hasBrace = (mayOmitBraces ? parseOptional : parseExpected)(19 /* OpenBraceToken */);\n const type = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType);\n if (!mayOmitBraces || hasBrace) {\n parseExpectedJSDoc(20 /* CloseBraceToken */);\n }\n const result = factory2.createJSDocTypeExpression(type);\n fixupParentReferences(result);\n return finishNode(result, pos);\n }\n JSDocParser2.parseJSDocTypeExpression = parseJSDocTypeExpression;\n function parseJSDocNameReference() {\n const pos = getNodePos();\n const hasBrace = parseOptional(19 /* OpenBraceToken */);\n const p2 = getNodePos();\n let entityName = parseEntityName(\n /*allowReservedWords*/\n false\n );\n while (token() === 81 /* PrivateIdentifier */) {\n reScanHashToken();\n nextTokenJSDoc();\n entityName = finishNode(factory2.createJSDocMemberName(entityName, parseIdentifier()), p2);\n }\n if (hasBrace) {\n parseExpectedJSDoc(20 /* CloseBraceToken */);\n }\n const result = factory2.createJSDocNameReference(entityName);\n fixupParentReferences(result);\n return finishNode(result, pos);\n }\n JSDocParser2.parseJSDocNameReference = parseJSDocNameReference;\n function parseIsolatedJSDocComment2(content, start, length2) {\n initializeState(\n \"\",\n content,\n 99 /* Latest */,\n /*syntaxCursor*/\n void 0,\n 1 /* JS */,\n 0 /* ParseAll */\n );\n const jsDoc = doInsideOfContext(16777216 /* JSDoc */, () => parseJSDocCommentWorker(start, length2));\n const sourceFile = { languageVariant: 0 /* Standard */, text: content };\n const diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n clearState();\n return jsDoc ? { jsDoc, diagnostics } : void 0;\n }\n JSDocParser2.parseIsolatedJSDocComment = parseIsolatedJSDocComment2;\n function parseJSDocComment(parent2, start, length2) {\n const saveToken = currentToken;\n const saveParseDiagnosticsLength = parseDiagnostics.length;\n const saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode;\n const comment = doInsideOfContext(16777216 /* JSDoc */, () => parseJSDocCommentWorker(start, length2));\n setParent(comment, parent2);\n if (contextFlags & 524288 /* JavaScriptFile */) {\n if (!jsDocDiagnostics) {\n jsDocDiagnostics = [];\n }\n addRange(jsDocDiagnostics, parseDiagnostics, saveParseDiagnosticsLength);\n }\n currentToken = saveToken;\n parseDiagnostics.length = saveParseDiagnosticsLength;\n parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode;\n return comment;\n }\n JSDocParser2.parseJSDocComment = parseJSDocComment;\n let JSDocState;\n ((JSDocState2) => {\n JSDocState2[JSDocState2[\"BeginningOfLine\"] = 0] = \"BeginningOfLine\";\n JSDocState2[JSDocState2[\"SawAsterisk\"] = 1] = \"SawAsterisk\";\n JSDocState2[JSDocState2[\"SavingComments\"] = 2] = \"SavingComments\";\n JSDocState2[JSDocState2[\"SavingBackticks\"] = 3] = \"SavingBackticks\";\n })(JSDocState || (JSDocState = {}));\n let PropertyLikeParse;\n ((PropertyLikeParse2) => {\n PropertyLikeParse2[PropertyLikeParse2[\"Property\"] = 1] = \"Property\";\n PropertyLikeParse2[PropertyLikeParse2[\"Parameter\"] = 2] = \"Parameter\";\n PropertyLikeParse2[PropertyLikeParse2[\"CallbackParameter\"] = 4] = \"CallbackParameter\";\n })(PropertyLikeParse || (PropertyLikeParse = {}));\n function parseJSDocCommentWorker(start = 0, length2) {\n const content = sourceText;\n const end = length2 === void 0 ? content.length : start + length2;\n length2 = end - start;\n Debug.assert(start >= 0);\n Debug.assert(start <= end);\n Debug.assert(end <= content.length);\n if (!isJSDocLikeText(content, start)) {\n return void 0;\n }\n let tags;\n let tagsPos;\n let tagsEnd;\n let linkEnd;\n let commentsPos;\n let comments = [];\n const parts = [];\n const saveParsingContext = parsingContext;\n parsingContext |= 1 << 25 /* JSDocComment */;\n const result = scanner2.scanRange(start + 3, length2 - 5, doJSDocScan);\n parsingContext = saveParsingContext;\n return result;\n function doJSDocScan() {\n let state = 1 /* SawAsterisk */;\n let margin;\n let indent3 = start - (content.lastIndexOf(\"\\n\", start) + 1) + 4;\n function pushComment(text) {\n if (!margin) {\n margin = indent3;\n }\n comments.push(text);\n indent3 += text.length;\n }\n nextTokenJSDoc();\n while (parseOptionalJsdoc(5 /* WhitespaceTrivia */)) ;\n if (parseOptionalJsdoc(4 /* NewLineTrivia */)) {\n state = 0 /* BeginningOfLine */;\n indent3 = 0;\n }\n loop:\n while (true) {\n switch (token()) {\n case 60 /* AtToken */:\n removeTrailingWhitespace(comments);\n if (!commentsPos) commentsPos = getNodePos();\n addTag(parseTag(indent3));\n state = 0 /* BeginningOfLine */;\n margin = void 0;\n break;\n case 4 /* NewLineTrivia */:\n comments.push(scanner2.getTokenText());\n state = 0 /* BeginningOfLine */;\n indent3 = 0;\n break;\n case 42 /* AsteriskToken */:\n const asterisk = scanner2.getTokenText();\n if (state === 1 /* SawAsterisk */) {\n state = 2 /* SavingComments */;\n pushComment(asterisk);\n } else {\n Debug.assert(state === 0 /* BeginningOfLine */);\n state = 1 /* SawAsterisk */;\n indent3 += asterisk.length;\n }\n break;\n case 5 /* WhitespaceTrivia */:\n Debug.assert(state !== 2 /* SavingComments */, \"whitespace shouldn't come from the scanner while saving top-level comment text\");\n const whitespace = scanner2.getTokenText();\n if (margin !== void 0 && indent3 + whitespace.length > margin) {\n comments.push(whitespace.slice(margin - indent3));\n }\n indent3 += whitespace.length;\n break;\n case 1 /* EndOfFileToken */:\n break loop;\n case 82 /* JSDocCommentTextToken */:\n state = 2 /* SavingComments */;\n pushComment(scanner2.getTokenValue());\n break;\n case 19 /* OpenBraceToken */:\n state = 2 /* SavingComments */;\n const commentEnd = scanner2.getTokenFullStart();\n const linkStart = scanner2.getTokenEnd() - 1;\n const link = parseJSDocLink(linkStart);\n if (link) {\n if (!linkEnd) {\n removeLeadingNewlines(comments);\n }\n parts.push(finishNode(factory2.createJSDocText(comments.join(\"\")), linkEnd ?? start, commentEnd));\n parts.push(link);\n comments = [];\n linkEnd = scanner2.getTokenEnd();\n break;\n }\n // fallthrough if it's not a {@link sequence\n default:\n state = 2 /* SavingComments */;\n pushComment(scanner2.getTokenText());\n break;\n }\n if (state === 2 /* SavingComments */) {\n nextJSDocCommentTextToken(\n /*inBackticks*/\n false\n );\n } else {\n nextTokenJSDoc();\n }\n }\n const trimmedComments = comments.join(\"\").trimEnd();\n if (parts.length && trimmedComments.length) {\n parts.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd ?? start, commentsPos));\n }\n if (parts.length && tags) Debug.assertIsDefined(commentsPos, \"having parsed tags implies that the end of the comment span should be set\");\n const tagsArray = tags && createNodeArray(tags, tagsPos, tagsEnd);\n return finishNode(factory2.createJSDocComment(parts.length ? createNodeArray(parts, start, commentsPos) : trimmedComments.length ? trimmedComments : void 0, tagsArray), start, end);\n }\n function removeLeadingNewlines(comments2) {\n while (comments2.length && (comments2[0] === \"\\n\" || comments2[0] === \"\\r\")) {\n comments2.shift();\n }\n }\n function removeTrailingWhitespace(comments2) {\n while (comments2.length) {\n const trimmed = comments2[comments2.length - 1].trimEnd();\n if (trimmed === \"\") {\n comments2.pop();\n } else if (trimmed.length < comments2[comments2.length - 1].length) {\n comments2[comments2.length - 1] = trimmed;\n break;\n } else {\n break;\n }\n }\n }\n function isNextNonwhitespaceTokenEndOfFile() {\n while (true) {\n nextTokenJSDoc();\n if (token() === 1 /* EndOfFileToken */) {\n return true;\n }\n if (!(token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */)) {\n return false;\n }\n }\n }\n function skipWhitespace() {\n if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) {\n return;\n }\n }\n while (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n nextTokenJSDoc();\n }\n }\n function skipWhitespaceOrAsterisk() {\n if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) {\n return \"\";\n }\n }\n let precedingLineBreak = scanner2.hasPrecedingLineBreak();\n let seenLineBreak = false;\n let indentText = \"\";\n while (precedingLineBreak && token() === 42 /* AsteriskToken */ || token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n indentText += scanner2.getTokenText();\n if (token() === 4 /* NewLineTrivia */) {\n precedingLineBreak = true;\n seenLineBreak = true;\n indentText = \"\";\n } else if (token() === 42 /* AsteriskToken */) {\n precedingLineBreak = false;\n }\n nextTokenJSDoc();\n }\n return seenLineBreak ? indentText : \"\";\n }\n function parseTag(margin) {\n Debug.assert(token() === 60 /* AtToken */);\n const start2 = scanner2.getTokenStart();\n nextTokenJSDoc();\n const tagName = parseJSDocIdentifierName(\n /*message*/\n void 0\n );\n const indentText = skipWhitespaceOrAsterisk();\n let tag;\n switch (tagName.escapedText) {\n case \"author\":\n tag = parseAuthorTag(start2, tagName, margin, indentText);\n break;\n case \"implements\":\n tag = parseImplementsTag(start2, tagName, margin, indentText);\n break;\n case \"augments\":\n case \"extends\":\n tag = parseAugmentsTag(start2, tagName, margin, indentText);\n break;\n case \"class\":\n case \"constructor\":\n tag = parseSimpleTag(start2, factory2.createJSDocClassTag, tagName, margin, indentText);\n break;\n case \"public\":\n tag = parseSimpleTag(start2, factory2.createJSDocPublicTag, tagName, margin, indentText);\n break;\n case \"private\":\n tag = parseSimpleTag(start2, factory2.createJSDocPrivateTag, tagName, margin, indentText);\n break;\n case \"protected\":\n tag = parseSimpleTag(start2, factory2.createJSDocProtectedTag, tagName, margin, indentText);\n break;\n case \"readonly\":\n tag = parseSimpleTag(start2, factory2.createJSDocReadonlyTag, tagName, margin, indentText);\n break;\n case \"override\":\n tag = parseSimpleTag(start2, factory2.createJSDocOverrideTag, tagName, margin, indentText);\n break;\n case \"deprecated\":\n hasDeprecatedTag = true;\n tag = parseSimpleTag(start2, factory2.createJSDocDeprecatedTag, tagName, margin, indentText);\n break;\n case \"this\":\n tag = parseThisTag(start2, tagName, margin, indentText);\n break;\n case \"enum\":\n tag = parseEnumTag(start2, tagName, margin, indentText);\n break;\n case \"arg\":\n case \"argument\":\n case \"param\":\n return parseParameterOrPropertyTag(start2, tagName, 2 /* Parameter */, margin);\n case \"return\":\n case \"returns\":\n tag = parseReturnTag(start2, tagName, margin, indentText);\n break;\n case \"template\":\n tag = parseTemplateTag(start2, tagName, margin, indentText);\n break;\n case \"type\":\n tag = parseTypeTag(start2, tagName, margin, indentText);\n break;\n case \"typedef\":\n tag = parseTypedefTag(start2, tagName, margin, indentText);\n break;\n case \"callback\":\n tag = parseCallbackTag(start2, tagName, margin, indentText);\n break;\n case \"overload\":\n tag = parseOverloadTag(start2, tagName, margin, indentText);\n break;\n case \"satisfies\":\n tag = parseSatisfiesTag(start2, tagName, margin, indentText);\n break;\n case \"see\":\n tag = parseSeeTag(start2, tagName, margin, indentText);\n break;\n case \"exception\":\n case \"throws\":\n tag = parseThrowsTag(start2, tagName, margin, indentText);\n break;\n case \"import\":\n tag = parseImportTag(start2, tagName, margin, indentText);\n break;\n default:\n tag = parseUnknownTag(start2, tagName, margin, indentText);\n break;\n }\n return tag;\n }\n function parseTrailingTagComments(pos, end2, margin, indentText) {\n if (!indentText) {\n margin += end2 - pos;\n }\n return parseTagComments(margin, indentText.slice(margin));\n }\n function parseTagComments(indent3, initialMargin) {\n const commentsPos2 = getNodePos();\n let comments2 = [];\n const parts2 = [];\n let linkEnd2;\n let state = 0 /* BeginningOfLine */;\n let margin;\n function pushComment(text) {\n if (!margin) {\n margin = indent3;\n }\n comments2.push(text);\n indent3 += text.length;\n }\n if (initialMargin !== void 0) {\n if (initialMargin !== \"\") {\n pushComment(initialMargin);\n }\n state = 1 /* SawAsterisk */;\n }\n let tok = token();\n loop:\n while (true) {\n switch (tok) {\n case 4 /* NewLineTrivia */:\n state = 0 /* BeginningOfLine */;\n comments2.push(scanner2.getTokenText());\n indent3 = 0;\n break;\n case 60 /* AtToken */:\n scanner2.resetTokenState(scanner2.getTokenEnd() - 1);\n break loop;\n case 1 /* EndOfFileToken */:\n break loop;\n case 5 /* WhitespaceTrivia */:\n Debug.assert(state !== 2 /* SavingComments */ && state !== 3 /* SavingBackticks */, \"whitespace shouldn't come from the scanner while saving comment text\");\n const whitespace = scanner2.getTokenText();\n if (margin !== void 0 && indent3 + whitespace.length > margin) {\n comments2.push(whitespace.slice(margin - indent3));\n state = 2 /* SavingComments */;\n }\n indent3 += whitespace.length;\n break;\n case 19 /* OpenBraceToken */:\n state = 2 /* SavingComments */;\n const commentEnd = scanner2.getTokenFullStart();\n const linkStart = scanner2.getTokenEnd() - 1;\n const link = parseJSDocLink(linkStart);\n if (link) {\n parts2.push(finishNode(factory2.createJSDocText(comments2.join(\"\")), linkEnd2 ?? commentsPos2, commentEnd));\n parts2.push(link);\n comments2 = [];\n linkEnd2 = scanner2.getTokenEnd();\n } else {\n pushComment(scanner2.getTokenText());\n }\n break;\n case 62 /* BacktickToken */:\n if (state === 3 /* SavingBackticks */) {\n state = 2 /* SavingComments */;\n } else {\n state = 3 /* SavingBackticks */;\n }\n pushComment(scanner2.getTokenText());\n break;\n case 82 /* JSDocCommentTextToken */:\n if (state !== 3 /* SavingBackticks */) {\n state = 2 /* SavingComments */;\n }\n pushComment(scanner2.getTokenValue());\n break;\n case 42 /* AsteriskToken */:\n if (state === 0 /* BeginningOfLine */) {\n state = 1 /* SawAsterisk */;\n indent3 += 1;\n break;\n }\n // record the * as a comment\n // falls through\n default:\n if (state !== 3 /* SavingBackticks */) {\n state = 2 /* SavingComments */;\n }\n pushComment(scanner2.getTokenText());\n break;\n }\n if (state === 2 /* SavingComments */ || state === 3 /* SavingBackticks */) {\n tok = nextJSDocCommentTextToken(state === 3 /* SavingBackticks */);\n } else {\n tok = nextTokenJSDoc();\n }\n }\n removeLeadingNewlines(comments2);\n const trimmedComments = comments2.join(\"\").trimEnd();\n if (parts2.length) {\n if (trimmedComments.length) {\n parts2.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd2 ?? commentsPos2));\n }\n return createNodeArray(parts2, commentsPos2, scanner2.getTokenEnd());\n } else if (trimmedComments.length) {\n return trimmedComments;\n }\n }\n function parseJSDocLink(start2) {\n const linkType = tryParse(parseJSDocLinkPrefix);\n if (!linkType) {\n return void 0;\n }\n nextTokenJSDoc();\n skipWhitespace();\n const name = parseJSDocLinkName();\n const text = [];\n while (token() !== 20 /* CloseBraceToken */ && token() !== 4 /* NewLineTrivia */ && token() !== 1 /* EndOfFileToken */) {\n text.push(scanner2.getTokenText());\n nextTokenJSDoc();\n }\n const create = linkType === \"link\" ? factory2.createJSDocLink : linkType === \"linkcode\" ? factory2.createJSDocLinkCode : factory2.createJSDocLinkPlain;\n return finishNode(create(name, text.join(\"\")), start2, scanner2.getTokenEnd());\n }\n function parseJSDocLinkName() {\n if (tokenIsIdentifierOrKeyword(token())) {\n const pos = getNodePos();\n let name = parseIdentifierName();\n while (parseOptional(25 /* DotToken */)) {\n name = finishNode(factory2.createQualifiedName(name, token() === 81 /* PrivateIdentifier */ ? createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n false\n ) : parseIdentifierName()), pos);\n }\n while (token() === 81 /* PrivateIdentifier */) {\n reScanHashToken();\n nextTokenJSDoc();\n name = finishNode(factory2.createJSDocMemberName(name, parseIdentifier()), pos);\n }\n return name;\n }\n return void 0;\n }\n function parseJSDocLinkPrefix() {\n skipWhitespaceOrAsterisk();\n if (token() === 19 /* OpenBraceToken */ && nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc())) {\n const kind = scanner2.getTokenValue();\n if (isJSDocLinkTag(kind)) return kind;\n }\n }\n function isJSDocLinkTag(kind) {\n return kind === \"link\" || kind === \"linkcode\" || kind === \"linkplain\";\n }\n function parseUnknownTag(start2, tagName, indent3, indentText) {\n return finishNode(factory2.createJSDocUnknownTag(tagName, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n }\n function addTag(tag) {\n if (!tag) {\n return;\n }\n if (!tags) {\n tags = [tag];\n tagsPos = tag.pos;\n } else {\n tags.push(tag);\n }\n tagsEnd = tag.end;\n }\n function tryParseTypeExpression() {\n skipWhitespaceOrAsterisk();\n return token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0;\n }\n function parseBracketNameInPropertyAndParamTag() {\n const isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */);\n if (isBracketed) {\n skipWhitespace();\n }\n const isBackquoted = parseOptionalJsdoc(62 /* BacktickToken */);\n const name = parseJSDocEntityName();\n if (isBackquoted) {\n parseExpectedTokenJSDoc(62 /* BacktickToken */);\n }\n if (isBracketed) {\n skipWhitespace();\n if (parseOptionalToken(64 /* EqualsToken */)) {\n parseExpression();\n }\n parseExpected(24 /* CloseBracketToken */);\n }\n return { name, isBracketed };\n }\n function isObjectOrObjectArrayTypeReference(node) {\n switch (node.kind) {\n case 151 /* ObjectKeyword */:\n return true;\n case 189 /* ArrayType */:\n return isObjectOrObjectArrayTypeReference(node.elementType);\n default:\n return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"Object\" && !node.typeArguments;\n }\n }\n function parseParameterOrPropertyTag(start2, tagName, target, indent3) {\n let typeExpression = tryParseTypeExpression();\n let isNameFirst = !typeExpression;\n skipWhitespaceOrAsterisk();\n const { name, isBracketed } = parseBracketNameInPropertyAndParamTag();\n const indentText = skipWhitespaceOrAsterisk();\n if (isNameFirst && !lookAhead(parseJSDocLinkPrefix)) {\n typeExpression = tryParseTypeExpression();\n }\n const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target, indent3);\n if (nestedTypeLiteral) {\n typeExpression = nestedTypeLiteral;\n isNameFirst = true;\n }\n const result2 = target === 1 /* Property */ ? factory2.createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) : factory2.createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment);\n return finishNode(result2, start2);\n }\n function parseNestedTypeLiteral(typeExpression, name, target, indent3) {\n if (typeExpression && isObjectOrObjectArrayTypeReference(typeExpression.type)) {\n const pos = getNodePos();\n let child;\n let children;\n while (child = tryParse(() => parseChildParameterOrPropertyTag(target, indent3, name))) {\n if (child.kind === 342 /* JSDocParameterTag */ || child.kind === 349 /* JSDocPropertyTag */) {\n children = append(children, child);\n } else if (child.kind === 346 /* JSDocTemplateTag */) {\n parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);\n }\n }\n if (children) {\n const literal = finishNode(factory2.createJSDocTypeLiteral(children, typeExpression.type.kind === 189 /* ArrayType */), pos);\n return finishNode(factory2.createJSDocTypeExpression(literal), pos);\n }\n }\n }\n function parseReturnTag(start2, tagName, indent3, indentText) {\n if (some(tags, isJSDocReturnTag)) {\n parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));\n }\n const typeExpression = tryParseTypeExpression();\n return finishNode(factory2.createJSDocReturnTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n }\n function parseTypeTag(start2, tagName, indent3, indentText) {\n if (some(tags, isJSDocTypeTag)) {\n parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));\n }\n const typeExpression = parseJSDocTypeExpression(\n /*mayOmitBraces*/\n true\n );\n const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;\n return finishNode(factory2.createJSDocTypeTag(tagName, typeExpression, comments2), start2);\n }\n function parseSeeTag(start2, tagName, indent3, indentText) {\n const isMarkdownOrJSDocLink = token() === 23 /* OpenBracketToken */ || lookAhead(() => nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner2.getTokenValue()));\n const nameExpression = isMarkdownOrJSDocLink ? void 0 : parseJSDocNameReference();\n const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;\n return finishNode(factory2.createJSDocSeeTag(tagName, nameExpression, comments2), start2);\n }\n function parseThrowsTag(start2, tagName, indent3, indentText) {\n const typeExpression = tryParseTypeExpression();\n const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n return finishNode(factory2.createJSDocThrowsTag(tagName, typeExpression, comment), start2);\n }\n function parseAuthorTag(start2, tagName, indent3, indentText) {\n const commentStart = getNodePos();\n const textOnly = parseAuthorNameAndEmail();\n let commentEnd = scanner2.getTokenFullStart();\n const comments2 = parseTrailingTagComments(start2, commentEnd, indent3, indentText);\n if (!comments2) {\n commentEnd = scanner2.getTokenFullStart();\n }\n const allParts = typeof comments2 !== \"string\" ? createNodeArray(concatenate([finishNode(textOnly, commentStart, commentEnd)], comments2), commentStart) : textOnly.text + comments2;\n return finishNode(factory2.createJSDocAuthorTag(tagName, allParts), start2);\n }\n function parseAuthorNameAndEmail() {\n const comments2 = [];\n let inEmail = false;\n let token2 = scanner2.getToken();\n while (token2 !== 1 /* EndOfFileToken */ && token2 !== 4 /* NewLineTrivia */) {\n if (token2 === 30 /* LessThanToken */) {\n inEmail = true;\n } else if (token2 === 60 /* AtToken */ && !inEmail) {\n break;\n } else if (token2 === 32 /* GreaterThanToken */ && inEmail) {\n comments2.push(scanner2.getTokenText());\n scanner2.resetTokenState(scanner2.getTokenEnd());\n break;\n }\n comments2.push(scanner2.getTokenText());\n token2 = nextTokenJSDoc();\n }\n return factory2.createJSDocText(comments2.join(\"\"));\n }\n function parseImplementsTag(start2, tagName, margin, indentText) {\n const className = parseExpressionWithTypeArgumentsForAugments();\n return finishNode(factory2.createJSDocImplementsTag(tagName, className, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n }\n function parseAugmentsTag(start2, tagName, margin, indentText) {\n const className = parseExpressionWithTypeArgumentsForAugments();\n return finishNode(factory2.createJSDocAugmentsTag(tagName, className, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n }\n function parseSatisfiesTag(start2, tagName, margin, indentText) {\n const typeExpression = parseJSDocTypeExpression(\n /*mayOmitBraces*/\n false\n );\n const comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), margin, indentText) : void 0;\n return finishNode(factory2.createJSDocSatisfiesTag(tagName, typeExpression, comments2), start2);\n }\n function parseImportTag(start2, tagName, margin, indentText) {\n const afterImportTagPos = scanner2.getTokenFullStart();\n let identifier;\n if (isIdentifier2()) {\n identifier = parseIdentifier();\n }\n const importClause = tryParseImportClause(\n identifier,\n afterImportTagPos,\n 156 /* TypeKeyword */,\n /*skipJsDocLeadingAsterisks*/\n true\n );\n const moduleSpecifier = parseModuleSpecifier();\n const attributes = tryParseImportAttributes();\n const comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), margin, indentText) : void 0;\n return finishNode(factory2.createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comments2), start2);\n }\n function parseExpressionWithTypeArgumentsForAugments() {\n const usedBrace = parseOptional(19 /* OpenBraceToken */);\n const pos = getNodePos();\n const expression = parsePropertyAccessEntityNameExpression();\n scanner2.setSkipJsDocLeadingAsterisks(true);\n const typeArguments = tryParseTypeArguments();\n scanner2.setSkipJsDocLeadingAsterisks(false);\n const node = factory2.createExpressionWithTypeArguments(expression, typeArguments);\n const res = finishNode(node, pos);\n if (usedBrace) {\n skipWhitespace();\n parseExpected(20 /* CloseBraceToken */);\n }\n return res;\n }\n function parsePropertyAccessEntityNameExpression() {\n const pos = getNodePos();\n let node = parseJSDocIdentifierName();\n while (parseOptional(25 /* DotToken */)) {\n const name = parseJSDocIdentifierName();\n node = finishNode(factoryCreatePropertyAccessExpression(node, name), pos);\n }\n return node;\n }\n function parseSimpleTag(start2, createTag, tagName, margin, indentText) {\n return finishNode(createTag(tagName, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n }\n function parseThisTag(start2, tagName, margin, indentText) {\n const typeExpression = parseJSDocTypeExpression(\n /*mayOmitBraces*/\n true\n );\n skipWhitespace();\n return finishNode(factory2.createJSDocThisTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n }\n function parseEnumTag(start2, tagName, margin, indentText) {\n const typeExpression = parseJSDocTypeExpression(\n /*mayOmitBraces*/\n true\n );\n skipWhitespace();\n return finishNode(factory2.createJSDocEnumTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n }\n function parseTypedefTag(start2, tagName, indent3, indentText) {\n let typeExpression = tryParseTypeExpression();\n skipWhitespaceOrAsterisk();\n const fullName = parseJSDocTypeNameWithNamespace();\n skipWhitespace();\n let comment = parseTagComments(indent3);\n let end2;\n if (!typeExpression || isObjectOrObjectArrayTypeReference(typeExpression.type)) {\n let child;\n let childTypeTag;\n let jsDocPropertyTags;\n let hasChildren = false;\n while (child = tryParse(() => parseChildPropertyTag(indent3))) {\n if (child.kind === 346 /* JSDocTemplateTag */) {\n break;\n }\n hasChildren = true;\n if (child.kind === 345 /* JSDocTypeTag */) {\n if (childTypeTag) {\n const lastError = parseErrorAtCurrentToken(Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);\n if (lastError) {\n addRelatedInfo(lastError, createDetachedDiagnostic(fileName, sourceText, 0, 0, Diagnostics.The_tag_was_first_specified_here));\n }\n break;\n } else {\n childTypeTag = child;\n }\n } else {\n jsDocPropertyTags = append(jsDocPropertyTags, child);\n }\n }\n if (hasChildren) {\n const isArrayType = typeExpression && typeExpression.type.kind === 189 /* ArrayType */;\n const jsdocTypeLiteral = factory2.createJSDocTypeLiteral(jsDocPropertyTags, isArrayType);\n typeExpression = childTypeTag && childTypeTag.typeExpression && !isObjectOrObjectArrayTypeReference(childTypeTag.typeExpression.type) ? childTypeTag.typeExpression : finishNode(jsdocTypeLiteral, start2);\n end2 = typeExpression.end;\n }\n }\n end2 = end2 || comment !== void 0 ? getNodePos() : (fullName ?? typeExpression ?? tagName).end;\n if (!comment) {\n comment = parseTrailingTagComments(start2, end2, indent3, indentText);\n }\n const typedefTag = factory2.createJSDocTypedefTag(tagName, typeExpression, fullName, comment);\n return finishNode(typedefTag, start2, end2);\n }\n function parseJSDocTypeNameWithNamespace(nested) {\n const start2 = scanner2.getTokenStart();\n if (!tokenIsIdentifierOrKeyword(token())) {\n return void 0;\n }\n const typeNameOrNamespaceName = parseJSDocIdentifierName();\n if (parseOptional(25 /* DotToken */)) {\n const body = parseJSDocTypeNameWithNamespace(\n /*nested*/\n true\n );\n const jsDocNamespaceNode = factory2.createModuleDeclaration(\n /*modifiers*/\n void 0,\n typeNameOrNamespaceName,\n body,\n nested ? 8 /* NestedNamespace */ : void 0\n );\n return finishNode(jsDocNamespaceNode, start2);\n }\n if (nested) {\n typeNameOrNamespaceName.flags |= 4096 /* IdentifierIsInJSDocNamespace */;\n }\n return typeNameOrNamespaceName;\n }\n function parseCallbackTagParameters(indent3) {\n const pos = getNodePos();\n let child;\n let parameters;\n while (child = tryParse(() => parseChildParameterOrPropertyTag(4 /* CallbackParameter */, indent3))) {\n if (child.kind === 346 /* JSDocTemplateTag */) {\n parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);\n break;\n }\n parameters = append(parameters, child);\n }\n return createNodeArray(parameters || [], pos);\n }\n function parseJSDocSignature(start2, indent3) {\n const parameters = parseCallbackTagParameters(indent3);\n const returnTag = tryParse(() => {\n if (parseOptionalJsdoc(60 /* AtToken */)) {\n const tag = parseTag(indent3);\n if (tag && tag.kind === 343 /* JSDocReturnTag */) {\n return tag;\n }\n }\n });\n return finishNode(factory2.createJSDocSignature(\n /*typeParameters*/\n void 0,\n parameters,\n returnTag\n ), start2);\n }\n function parseCallbackTag(start2, tagName, indent3, indentText) {\n const fullName = parseJSDocTypeNameWithNamespace();\n skipWhitespace();\n let comment = parseTagComments(indent3);\n const typeExpression = parseJSDocSignature(start2, indent3);\n if (!comment) {\n comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n }\n const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;\n return finishNode(factory2.createJSDocCallbackTag(tagName, typeExpression, fullName, comment), start2, end2);\n }\n function parseOverloadTag(start2, tagName, indent3, indentText) {\n skipWhitespace();\n let comment = parseTagComments(indent3);\n const typeExpression = parseJSDocSignature(start2, indent3);\n if (!comment) {\n comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n }\n const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;\n return finishNode(factory2.createJSDocOverloadTag(tagName, typeExpression, comment), start2, end2);\n }\n function escapedTextsEqual(a, b) {\n while (!isIdentifier(a) || !isIdentifier(b)) {\n if (!isIdentifier(a) && !isIdentifier(b) && a.right.escapedText === b.right.escapedText) {\n a = a.left;\n b = b.left;\n } else {\n return false;\n }\n }\n return a.escapedText === b.escapedText;\n }\n function parseChildPropertyTag(indent3) {\n return parseChildParameterOrPropertyTag(1 /* Property */, indent3);\n }\n function parseChildParameterOrPropertyTag(target, indent3, name) {\n let canParseTag = true;\n let seenAsterisk = false;\n while (true) {\n switch (nextTokenJSDoc()) {\n case 60 /* AtToken */:\n if (canParseTag) {\n const child = tryParseChildTag(target, indent3);\n if (child && (child.kind === 342 /* JSDocParameterTag */ || child.kind === 349 /* JSDocPropertyTag */) && name && (isIdentifier(child.name) || !escapedTextsEqual(name, child.name.left))) {\n return false;\n }\n return child;\n }\n seenAsterisk = false;\n break;\n case 4 /* NewLineTrivia */:\n canParseTag = true;\n seenAsterisk = false;\n break;\n case 42 /* AsteriskToken */:\n if (seenAsterisk) {\n canParseTag = false;\n }\n seenAsterisk = true;\n break;\n case 80 /* Identifier */:\n canParseTag = false;\n break;\n case 1 /* EndOfFileToken */:\n return false;\n }\n }\n }\n function tryParseChildTag(target, indent3) {\n Debug.assert(token() === 60 /* AtToken */);\n const start2 = scanner2.getTokenFullStart();\n nextTokenJSDoc();\n const tagName = parseJSDocIdentifierName();\n const indentText = skipWhitespaceOrAsterisk();\n let t;\n switch (tagName.escapedText) {\n case \"type\":\n return target === 1 /* Property */ && parseTypeTag(start2, tagName);\n case \"prop\":\n case \"property\":\n t = 1 /* Property */;\n break;\n case \"arg\":\n case \"argument\":\n case \"param\":\n t = 2 /* Parameter */ | 4 /* CallbackParameter */;\n break;\n case \"template\":\n return parseTemplateTag(start2, tagName, indent3, indentText);\n case \"this\":\n return parseThisTag(start2, tagName, indent3, indentText);\n default:\n return false;\n }\n if (!(target & t)) {\n return false;\n }\n return parseParameterOrPropertyTag(start2, tagName, target, indent3);\n }\n function parseTemplateTagTypeParameter() {\n const typeParameterPos = getNodePos();\n const isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */);\n if (isBracketed) {\n skipWhitespace();\n }\n const modifiers = parseModifiers(\n /*allowDecorators*/\n false,\n /*permitConstAsModifier*/\n true\n );\n const name = parseJSDocIdentifierName(Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);\n let defaultType;\n if (isBracketed) {\n skipWhitespace();\n parseExpected(64 /* EqualsToken */);\n defaultType = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType);\n parseExpected(24 /* CloseBracketToken */);\n }\n if (nodeIsMissing(name)) {\n return void 0;\n }\n return finishNode(factory2.createTypeParameterDeclaration(\n modifiers,\n name,\n /*constraint*/\n void 0,\n defaultType\n ), typeParameterPos);\n }\n function parseTemplateTagTypeParameters() {\n const pos = getNodePos();\n const typeParameters = [];\n do {\n skipWhitespace();\n const node = parseTemplateTagTypeParameter();\n if (node !== void 0) {\n typeParameters.push(node);\n }\n skipWhitespaceOrAsterisk();\n } while (parseOptionalJsdoc(28 /* CommaToken */));\n return createNodeArray(typeParameters, pos);\n }\n function parseTemplateTag(start2, tagName, indent3, indentText) {\n const constraint = token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0;\n const typeParameters = parseTemplateTagTypeParameters();\n return finishNode(factory2.createJSDocTemplateTag(tagName, constraint, typeParameters, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n }\n function parseOptionalJsdoc(t) {\n if (token() === t) {\n nextTokenJSDoc();\n return true;\n }\n return false;\n }\n function parseJSDocEntityName() {\n let entity = parseJSDocIdentifierName();\n if (parseOptional(23 /* OpenBracketToken */)) {\n parseExpected(24 /* CloseBracketToken */);\n }\n while (parseOptional(25 /* DotToken */)) {\n const name = parseJSDocIdentifierName();\n if (parseOptional(23 /* OpenBracketToken */)) {\n parseExpected(24 /* CloseBracketToken */);\n }\n entity = createQualifiedName(entity, name);\n }\n return entity;\n }\n function parseJSDocIdentifierName(message) {\n if (!tokenIsIdentifierOrKeyword(token())) {\n return createMissingNode(\n 80 /* Identifier */,\n /*reportAtCurrentPosition*/\n !message,\n message || Diagnostics.Identifier_expected\n );\n }\n identifierCount++;\n const start2 = scanner2.getTokenStart();\n const end2 = scanner2.getTokenEnd();\n const originalKeywordKind = token();\n const text = internIdentifier(scanner2.getTokenValue());\n const result2 = finishNode(factoryCreateIdentifier(text, originalKeywordKind), start2, end2);\n nextTokenJSDoc();\n return result2;\n }\n }\n })(JSDocParser = Parser2.JSDocParser || (Parser2.JSDocParser = {}));\n})(Parser || (Parser = {}));\nvar incrementallyParsedFiles = /* @__PURE__ */ new WeakSet();\nfunction markAsIncrementallyParsed(sourceFile) {\n if (incrementallyParsedFiles.has(sourceFile)) {\n Debug.fail(\"Source file has already been incrementally parsed\");\n }\n incrementallyParsedFiles.add(sourceFile);\n}\nvar intersectingChangeSet = /* @__PURE__ */ new WeakSet();\nfunction intersectsIncrementalChange(node) {\n return intersectingChangeSet.has(node);\n}\nfunction markAsIntersectingIncrementalChange(node) {\n intersectingChangeSet.add(node);\n}\nvar IncrementalParser;\n((IncrementalParser2) => {\n function updateSourceFile2(sourceFile, newText, textChangeRange, aggressiveChecks) {\n aggressiveChecks = aggressiveChecks || Debug.shouldAssert(2 /* Aggressive */);\n checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks);\n if (textChangeRangeIsUnchanged(textChangeRange)) {\n return sourceFile;\n }\n if (sourceFile.statements.length === 0) {\n return Parser.parseSourceFile(\n sourceFile.fileName,\n newText,\n sourceFile.languageVersion,\n /*syntaxCursor*/\n void 0,\n /*setParentNodes*/\n true,\n sourceFile.scriptKind,\n sourceFile.setExternalModuleIndicator,\n sourceFile.jsDocParsingMode\n );\n }\n markAsIncrementallyParsed(sourceFile);\n Parser.fixupParentReferences(sourceFile);\n const oldText = sourceFile.text;\n const syntaxCursor = createSyntaxCursor(sourceFile);\n const changeRange = extendToAffectedRange(sourceFile, textChangeRange);\n checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks);\n Debug.assert(changeRange.span.start <= textChangeRange.span.start);\n Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span));\n Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange)));\n const delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length;\n updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);\n const result = Parser.parseSourceFile(\n sourceFile.fileName,\n newText,\n sourceFile.languageVersion,\n syntaxCursor,\n /*setParentNodes*/\n true,\n sourceFile.scriptKind,\n sourceFile.setExternalModuleIndicator,\n sourceFile.jsDocParsingMode\n );\n result.commentDirectives = getNewCommentDirectives(\n sourceFile.commentDirectives,\n result.commentDirectives,\n changeRange.span.start,\n textSpanEnd(changeRange.span),\n delta,\n oldText,\n newText,\n aggressiveChecks\n );\n result.impliedNodeFormat = sourceFile.impliedNodeFormat;\n transferSourceFileChildren(sourceFile, result);\n return result;\n }\n IncrementalParser2.updateSourceFile = updateSourceFile2;\n function getNewCommentDirectives(oldDirectives, newDirectives, changeStart, changeRangeOldEnd, delta, oldText, newText, aggressiveChecks) {\n if (!oldDirectives) return newDirectives;\n let commentDirectives;\n let addedNewlyScannedDirectives = false;\n for (const directive of oldDirectives) {\n const { range, type } = directive;\n if (range.end < changeStart) {\n commentDirectives = append(commentDirectives, directive);\n } else if (range.pos > changeRangeOldEnd) {\n addNewlyScannedDirectives();\n const updatedDirective = {\n range: { pos: range.pos + delta, end: range.end + delta },\n type\n };\n commentDirectives = append(commentDirectives, updatedDirective);\n if (aggressiveChecks) {\n Debug.assert(oldText.substring(range.pos, range.end) === newText.substring(updatedDirective.range.pos, updatedDirective.range.end));\n }\n }\n }\n addNewlyScannedDirectives();\n return commentDirectives;\n function addNewlyScannedDirectives() {\n if (addedNewlyScannedDirectives) return;\n addedNewlyScannedDirectives = true;\n if (!commentDirectives) {\n commentDirectives = newDirectives;\n } else if (newDirectives) {\n commentDirectives.push(...newDirectives);\n }\n }\n }\n function moveElementEntirelyPastChangeRange(element, origSourceFile, isArray2, delta, oldText, newText, aggressiveChecks) {\n if (isArray2) {\n visitArray2(element);\n } else {\n visitNode3(element);\n }\n return;\n function visitNode3(node) {\n let text = \"\";\n if (aggressiveChecks && shouldCheckNode(node)) {\n text = oldText.substring(node.pos, node.end);\n }\n unsetNodeChildren(node, origSourceFile);\n setTextRangePosEnd(node, node.pos + delta, node.end + delta);\n if (aggressiveChecks && shouldCheckNode(node)) {\n Debug.assert(text === newText.substring(node.pos, node.end));\n }\n forEachChild(node, visitNode3, visitArray2);\n if (hasJSDocNodes(node)) {\n for (const jsDocComment of node.jsDoc) {\n visitNode3(jsDocComment);\n }\n }\n checkNodePositions(node, aggressiveChecks);\n }\n function visitArray2(array) {\n setTextRangePosEnd(array, array.pos + delta, array.end + delta);\n for (const node of array) {\n visitNode3(node);\n }\n }\n }\n function shouldCheckNode(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 80 /* Identifier */:\n return true;\n }\n return false;\n }\n function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) {\n Debug.assert(element.end >= changeStart, \"Adjusting an element that was entirely before the change range\");\n Debug.assert(element.pos <= changeRangeOldEnd, \"Adjusting an element that was entirely after the change range\");\n Debug.assert(element.pos <= element.end);\n const pos = Math.min(element.pos, changeRangeNewEnd);\n const end = element.end >= changeRangeOldEnd ? (\n // Element ends after the change range. Always adjust the end pos.\n element.end + delta\n ) : (\n // Element ends in the change range. The element will keep its position if\n // possible. Or Move backward to the new-end if it's in the 'Y' range.\n Math.min(element.end, changeRangeNewEnd)\n );\n Debug.assert(pos <= end);\n if (element.parent) {\n const parent2 = element.parent;\n Debug.assertGreaterThanOrEqual(pos, parent2.pos);\n Debug.assertLessThanOrEqual(end, parent2.end);\n }\n setTextRangePosEnd(element, pos, end);\n }\n function checkNodePositions(node, aggressiveChecks) {\n if (aggressiveChecks) {\n let pos = node.pos;\n const visitNode3 = (child) => {\n Debug.assert(child.pos >= pos);\n pos = child.end;\n };\n if (hasJSDocNodes(node)) {\n for (const jsDocComment of node.jsDoc) {\n visitNode3(jsDocComment);\n }\n }\n forEachChild(node, visitNode3);\n Debug.assert(pos <= node.end);\n }\n }\n function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) {\n visitNode3(sourceFile);\n return;\n function visitNode3(child) {\n Debug.assert(child.pos <= child.end);\n if (child.pos > changeRangeOldEnd) {\n moveElementEntirelyPastChangeRange(\n child,\n sourceFile,\n /*isArray*/\n false,\n delta,\n oldText,\n newText,\n aggressiveChecks\n );\n return;\n }\n const fullEnd = child.end;\n if (fullEnd >= changeStart) {\n markAsIntersectingIncrementalChange(child);\n unsetNodeChildren(child, sourceFile);\n adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);\n forEachChild(child, visitNode3, visitArray2);\n if (hasJSDocNodes(child)) {\n for (const jsDocComment of child.jsDoc) {\n visitNode3(jsDocComment);\n }\n }\n checkNodePositions(child, aggressiveChecks);\n return;\n }\n Debug.assert(fullEnd < changeStart);\n }\n function visitArray2(array) {\n Debug.assert(array.pos <= array.end);\n if (array.pos > changeRangeOldEnd) {\n moveElementEntirelyPastChangeRange(\n array,\n sourceFile,\n /*isArray*/\n true,\n delta,\n oldText,\n newText,\n aggressiveChecks\n );\n return;\n }\n const fullEnd = array.end;\n if (fullEnd >= changeStart) {\n markAsIntersectingIncrementalChange(array);\n adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);\n for (const node of array) {\n visitNode3(node);\n }\n return;\n }\n Debug.assert(fullEnd < changeStart);\n }\n }\n function extendToAffectedRange(sourceFile, changeRange) {\n const maxLookahead = 1;\n let start = changeRange.span.start;\n for (let i = 0; start > 0 && i <= maxLookahead; i++) {\n const nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start);\n Debug.assert(nearestNode.pos <= start);\n const position = nearestNode.pos;\n start = Math.max(0, position - 1);\n }\n const finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span));\n const finalLength = changeRange.newLength + (changeRange.span.start - start);\n return createTextChangeRange(finalSpan, finalLength);\n }\n function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) {\n let bestResult = sourceFile;\n let lastNodeEntirelyBeforePosition;\n forEachChild(sourceFile, visit);\n if (lastNodeEntirelyBeforePosition) {\n const lastChildOfLastEntireNodeBeforePosition = getLastDescendant(lastNodeEntirelyBeforePosition);\n if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) {\n bestResult = lastChildOfLastEntireNodeBeforePosition;\n }\n }\n return bestResult;\n function getLastDescendant(node) {\n while (true) {\n const lastChild = getLastChild(node);\n if (lastChild) {\n node = lastChild;\n } else {\n return node;\n }\n }\n }\n function visit(child) {\n if (nodeIsMissing(child)) {\n return;\n }\n if (child.pos <= position) {\n if (child.pos >= bestResult.pos) {\n bestResult = child;\n }\n if (position < child.end) {\n forEachChild(child, visit);\n return true;\n } else {\n Debug.assert(child.end <= position);\n lastNodeEntirelyBeforePosition = child;\n }\n } else {\n Debug.assert(child.pos > position);\n return true;\n }\n }\n }\n function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) {\n const oldText = sourceFile.text;\n if (textChangeRange) {\n Debug.assert(oldText.length - textChangeRange.span.length + textChangeRange.newLength === newText.length);\n if (aggressiveChecks || Debug.shouldAssert(3 /* VeryAggressive */)) {\n const oldTextPrefix = oldText.substr(0, textChangeRange.span.start);\n const newTextPrefix = newText.substr(0, textChangeRange.span.start);\n Debug.assert(oldTextPrefix === newTextPrefix);\n const oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length);\n const newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length);\n Debug.assert(oldTextSuffix === newTextSuffix);\n }\n }\n }\n function createSyntaxCursor(sourceFile) {\n let currentArray = sourceFile.statements;\n let currentArrayIndex = 0;\n Debug.assert(currentArrayIndex < currentArray.length);\n let current = currentArray[currentArrayIndex];\n let lastQueriedPosition = -1 /* Value */;\n return {\n currentNode(position) {\n if (position !== lastQueriedPosition) {\n if (current && current.end === position && currentArrayIndex < currentArray.length - 1) {\n currentArrayIndex++;\n current = currentArray[currentArrayIndex];\n }\n if (!current || current.pos !== position) {\n findHighestListElementThatStartsAtPosition(position);\n }\n }\n lastQueriedPosition = position;\n Debug.assert(!current || current.pos === position);\n return current;\n }\n };\n function findHighestListElementThatStartsAtPosition(position) {\n currentArray = void 0;\n currentArrayIndex = -1 /* Value */;\n current = void 0;\n forEachChild(sourceFile, visitNode3, visitArray2);\n return;\n function visitNode3(node) {\n if (position >= node.pos && position < node.end) {\n forEachChild(node, visitNode3, visitArray2);\n return true;\n }\n return false;\n }\n function visitArray2(array) {\n if (position >= array.pos && position < array.end) {\n for (let i = 0; i < array.length; i++) {\n const child = array[i];\n if (child) {\n if (child.pos === position) {\n currentArray = array;\n currentArrayIndex = i;\n current = child;\n return true;\n } else {\n if (child.pos < position && position < child.end) {\n forEachChild(child, visitNode3, visitArray2);\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n }\n }\n IncrementalParser2.createSyntaxCursor = createSyntaxCursor;\n let InvalidPosition;\n ((InvalidPosition2) => {\n InvalidPosition2[InvalidPosition2[\"Value\"] = -1] = \"Value\";\n })(InvalidPosition || (InvalidPosition = {}));\n})(IncrementalParser || (IncrementalParser = {}));\nfunction isDeclarationFileName(fileName) {\n return getDeclarationFileExtension(fileName) !== void 0;\n}\nfunction getDeclarationFileExtension(fileName) {\n const standardExtension = getAnyExtensionFromPath(\n fileName,\n supportedDeclarationExtensions,\n /*ignoreCase*/\n false\n );\n if (standardExtension) {\n return standardExtension;\n }\n if (fileExtensionIs(fileName, \".ts\" /* Ts */)) {\n const baseName = getBaseFileName(fileName);\n const index = baseName.lastIndexOf(\".d.\");\n if (index >= 0) {\n return baseName.substring(index);\n }\n }\n return void 0;\n}\nfunction parseResolutionMode(mode, pos, end, reportDiagnostic) {\n if (!mode) {\n return void 0;\n }\n if (mode === \"import\") {\n return 99 /* ESNext */;\n }\n if (mode === \"require\") {\n return 1 /* CommonJS */;\n }\n reportDiagnostic(pos, end - pos, Diagnostics.resolution_mode_should_be_either_require_or_import);\n return void 0;\n}\nfunction processCommentPragmas(context, sourceText) {\n const pragmas = [];\n for (const range of getLeadingCommentRanges(sourceText, 0) || emptyArray) {\n const comment = sourceText.substring(range.pos, range.end);\n extractPragmas(pragmas, range, comment);\n }\n context.pragmas = /* @__PURE__ */ new Map();\n for (const pragma of pragmas) {\n if (context.pragmas.has(pragma.name)) {\n const currentValue = context.pragmas.get(pragma.name);\n if (currentValue instanceof Array) {\n currentValue.push(pragma.args);\n } else {\n context.pragmas.set(pragma.name, [currentValue, pragma.args]);\n }\n continue;\n }\n context.pragmas.set(pragma.name, pragma.args);\n }\n}\nfunction processPragmasIntoFields(context, reportDiagnostic) {\n context.checkJsDirective = void 0;\n context.referencedFiles = [];\n context.typeReferenceDirectives = [];\n context.libReferenceDirectives = [];\n context.amdDependencies = [];\n context.hasNoDefaultLib = false;\n context.pragmas.forEach((entryOrList, key) => {\n switch (key) {\n case \"reference\": {\n const referencedFiles = context.referencedFiles;\n const typeReferenceDirectives = context.typeReferenceDirectives;\n const libReferenceDirectives = context.libReferenceDirectives;\n forEach(toArray(entryOrList), (arg) => {\n const { types, lib, path, [\"resolution-mode\"]: res, preserve: _preserve } = arg.arguments;\n const preserve = _preserve === \"true\" ? true : void 0;\n if (arg.arguments[\"no-default-lib\"] === \"true\") {\n context.hasNoDefaultLib = true;\n } else if (types) {\n const parsed = parseResolutionMode(res, types.pos, types.end, reportDiagnostic);\n typeReferenceDirectives.push({ pos: types.pos, end: types.end, fileName: types.value, ...parsed ? { resolutionMode: parsed } : {}, ...preserve ? { preserve } : {} });\n } else if (lib) {\n libReferenceDirectives.push({ pos: lib.pos, end: lib.end, fileName: lib.value, ...preserve ? { preserve } : {} });\n } else if (path) {\n referencedFiles.push({ pos: path.pos, end: path.end, fileName: path.value, ...preserve ? { preserve } : {} });\n } else {\n reportDiagnostic(arg.range.pos, arg.range.end - arg.range.pos, Diagnostics.Invalid_reference_directive_syntax);\n }\n });\n break;\n }\n case \"amd-dependency\": {\n context.amdDependencies = map(\n toArray(entryOrList),\n (x) => ({ name: x.arguments.name, path: x.arguments.path })\n );\n break;\n }\n case \"amd-module\": {\n if (entryOrList instanceof Array) {\n for (const entry of entryOrList) {\n if (context.moduleName) {\n reportDiagnostic(entry.range.pos, entry.range.end - entry.range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments);\n }\n context.moduleName = entry.arguments.name;\n }\n } else {\n context.moduleName = entryOrList.arguments.name;\n }\n break;\n }\n case \"ts-nocheck\":\n case \"ts-check\": {\n forEach(toArray(entryOrList), (entry) => {\n if (!context.checkJsDirective || entry.range.pos > context.checkJsDirective.pos) {\n context.checkJsDirective = {\n enabled: key === \"ts-check\",\n end: entry.range.end,\n pos: entry.range.pos\n };\n }\n });\n break;\n }\n case \"jsx\":\n case \"jsxfrag\":\n case \"jsximportsource\":\n case \"jsxruntime\":\n return;\n // Accessed directly\n default:\n Debug.fail(\"Unhandled pragma kind\");\n }\n });\n}\nvar namedArgRegExCache = /* @__PURE__ */ new Map();\nfunction getNamedArgRegEx(name) {\n if (namedArgRegExCache.has(name)) {\n return namedArgRegExCache.get(name);\n }\n const result = new RegExp(`(\\\\s${name}\\\\s*=\\\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))`, \"im\");\n namedArgRegExCache.set(name, result);\n return result;\n}\nvar tripleSlashXMLCommentStartRegEx = /^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/m;\nvar singleLinePragmaRegEx = /^\\/\\/\\/?\\s*@([^\\s:]+)((?:[^\\S\\r\\n]|:).*)?$/m;\nfunction extractPragmas(pragmas, range, text) {\n const tripleSlash = range.kind === 2 /* SingleLineCommentTrivia */ && tripleSlashXMLCommentStartRegEx.exec(text);\n if (tripleSlash) {\n const name = tripleSlash[1].toLowerCase();\n const pragma = commentPragmas[name];\n if (!pragma || !(pragma.kind & 1 /* TripleSlashXML */)) {\n return;\n }\n if (pragma.args) {\n const argument = {};\n for (const arg of pragma.args) {\n const matcher = getNamedArgRegEx(arg.name);\n const matchResult = matcher.exec(text);\n if (!matchResult && !arg.optional) {\n return;\n } else if (matchResult) {\n const value = matchResult[2] || matchResult[3];\n if (arg.captureSpan) {\n const startPos = range.pos + matchResult.index + matchResult[1].length + 1;\n argument[arg.name] = {\n value,\n pos: startPos,\n end: startPos + value.length\n };\n } else {\n argument[arg.name] = value;\n }\n }\n }\n pragmas.push({ name, args: { arguments: argument, range } });\n } else {\n pragmas.push({ name, args: { arguments: {}, range } });\n }\n return;\n }\n const singleLine = range.kind === 2 /* SingleLineCommentTrivia */ && singleLinePragmaRegEx.exec(text);\n if (singleLine) {\n return addPragmaForMatch(pragmas, range, 2 /* SingleLine */, singleLine);\n }\n if (range.kind === 3 /* MultiLineCommentTrivia */) {\n const multiLinePragmaRegEx = /@(\\S+)(\\s+(?:\\S.*)?)?$/gm;\n let multiLineMatch;\n while (multiLineMatch = multiLinePragmaRegEx.exec(text)) {\n addPragmaForMatch(pragmas, range, 4 /* MultiLine */, multiLineMatch);\n }\n }\n}\nfunction addPragmaForMatch(pragmas, range, kind, match) {\n if (!match) return;\n const name = match[1].toLowerCase();\n const pragma = commentPragmas[name];\n if (!pragma || !(pragma.kind & kind)) {\n return;\n }\n const args = match[2];\n const argument = getNamedPragmaArguments(pragma, args);\n if (argument === \"fail\") return;\n pragmas.push({ name, args: { arguments: argument, range } });\n return;\n}\nfunction getNamedPragmaArguments(pragma, text) {\n if (!text) return {};\n if (!pragma.args) return {};\n const args = text.trim().split(/\\s+/);\n const argMap = {};\n for (let i = 0; i < pragma.args.length; i++) {\n const argument = pragma.args[i];\n if (!args[i] && !argument.optional) {\n return \"fail\";\n }\n if (argument.captureSpan) {\n return Debug.fail(\"Capture spans not yet implemented for non-xml pragmas\");\n }\n argMap[argument.name] = args[i];\n }\n return argMap;\n}\nfunction tagNamesAreEquivalent(lhs, rhs) {\n if (lhs.kind !== rhs.kind) {\n return false;\n }\n if (lhs.kind === 80 /* Identifier */) {\n return lhs.escapedText === rhs.escapedText;\n }\n if (lhs.kind === 110 /* ThisKeyword */) {\n return true;\n }\n if (lhs.kind === 296 /* JsxNamespacedName */) {\n return lhs.namespace.escapedText === rhs.namespace.escapedText && lhs.name.escapedText === rhs.name.escapedText;\n }\n return lhs.name.escapedText === rhs.name.escapedText && tagNamesAreEquivalent(lhs.expression, rhs.expression);\n}\n\n// src/compiler/commandLineParser.ts\nvar compileOnSaveCommandLineOption = {\n name: \"compileOnSave\",\n type: \"boolean\",\n defaultValueDescription: false\n};\nvar jsxOptionMap = new Map(Object.entries({\n \"preserve\": 1 /* Preserve */,\n \"react-native\": 3 /* ReactNative */,\n \"react-jsx\": 4 /* ReactJSX */,\n \"react-jsxdev\": 5 /* ReactJSXDev */,\n \"react\": 2 /* React */\n}));\nvar inverseJsxOptionMap = new Map(mapIterator(jsxOptionMap.entries(), ([key, value]) => [\"\" + value, key]));\nvar libEntries = [\n // JavaScript only\n [\"es5\", \"lib.es5.d.ts\"],\n [\"es6\", \"lib.es2015.d.ts\"],\n [\"es2015\", \"lib.es2015.d.ts\"],\n [\"es7\", \"lib.es2016.d.ts\"],\n [\"es2016\", \"lib.es2016.d.ts\"],\n [\"es2017\", \"lib.es2017.d.ts\"],\n [\"es2018\", \"lib.es2018.d.ts\"],\n [\"es2019\", \"lib.es2019.d.ts\"],\n [\"es2020\", \"lib.es2020.d.ts\"],\n [\"es2021\", \"lib.es2021.d.ts\"],\n [\"es2022\", \"lib.es2022.d.ts\"],\n [\"es2023\", \"lib.es2023.d.ts\"],\n [\"es2024\", \"lib.es2024.d.ts\"],\n [\"esnext\", \"lib.esnext.d.ts\"],\n // Host only\n [\"dom\", \"lib.dom.d.ts\"],\n [\"dom.iterable\", \"lib.dom.iterable.d.ts\"],\n [\"dom.asynciterable\", \"lib.dom.asynciterable.d.ts\"],\n [\"webworker\", \"lib.webworker.d.ts\"],\n [\"webworker.importscripts\", \"lib.webworker.importscripts.d.ts\"],\n [\"webworker.iterable\", \"lib.webworker.iterable.d.ts\"],\n [\"webworker.asynciterable\", \"lib.webworker.asynciterable.d.ts\"],\n [\"scripthost\", \"lib.scripthost.d.ts\"],\n // ES2015 Or ESNext By-feature options\n [\"es2015.core\", \"lib.es2015.core.d.ts\"],\n [\"es2015.collection\", \"lib.es2015.collection.d.ts\"],\n [\"es2015.generator\", \"lib.es2015.generator.d.ts\"],\n [\"es2015.iterable\", \"lib.es2015.iterable.d.ts\"],\n [\"es2015.promise\", \"lib.es2015.promise.d.ts\"],\n [\"es2015.proxy\", \"lib.es2015.proxy.d.ts\"],\n [\"es2015.reflect\", \"lib.es2015.reflect.d.ts\"],\n [\"es2015.symbol\", \"lib.es2015.symbol.d.ts\"],\n [\"es2015.symbol.wellknown\", \"lib.es2015.symbol.wellknown.d.ts\"],\n [\"es2016.array.include\", \"lib.es2016.array.include.d.ts\"],\n [\"es2016.intl\", \"lib.es2016.intl.d.ts\"],\n [\"es2017.arraybuffer\", \"lib.es2017.arraybuffer.d.ts\"],\n [\"es2017.date\", \"lib.es2017.date.d.ts\"],\n [\"es2017.object\", \"lib.es2017.object.d.ts\"],\n [\"es2017.sharedmemory\", \"lib.es2017.sharedmemory.d.ts\"],\n [\"es2017.string\", \"lib.es2017.string.d.ts\"],\n [\"es2017.intl\", \"lib.es2017.intl.d.ts\"],\n [\"es2017.typedarrays\", \"lib.es2017.typedarrays.d.ts\"],\n [\"es2018.asyncgenerator\", \"lib.es2018.asyncgenerator.d.ts\"],\n [\"es2018.asynciterable\", \"lib.es2018.asynciterable.d.ts\"],\n [\"es2018.intl\", \"lib.es2018.intl.d.ts\"],\n [\"es2018.promise\", \"lib.es2018.promise.d.ts\"],\n [\"es2018.regexp\", \"lib.es2018.regexp.d.ts\"],\n [\"es2019.array\", \"lib.es2019.array.d.ts\"],\n [\"es2019.object\", \"lib.es2019.object.d.ts\"],\n [\"es2019.string\", \"lib.es2019.string.d.ts\"],\n [\"es2019.symbol\", \"lib.es2019.symbol.d.ts\"],\n [\"es2019.intl\", \"lib.es2019.intl.d.ts\"],\n [\"es2020.bigint\", \"lib.es2020.bigint.d.ts\"],\n [\"es2020.date\", \"lib.es2020.date.d.ts\"],\n [\"es2020.promise\", \"lib.es2020.promise.d.ts\"],\n [\"es2020.sharedmemory\", \"lib.es2020.sharedmemory.d.ts\"],\n [\"es2020.string\", \"lib.es2020.string.d.ts\"],\n [\"es2020.symbol.wellknown\", \"lib.es2020.symbol.wellknown.d.ts\"],\n [\"es2020.intl\", \"lib.es2020.intl.d.ts\"],\n [\"es2020.number\", \"lib.es2020.number.d.ts\"],\n [\"es2021.promise\", \"lib.es2021.promise.d.ts\"],\n [\"es2021.string\", \"lib.es2021.string.d.ts\"],\n [\"es2021.weakref\", \"lib.es2021.weakref.d.ts\"],\n [\"es2021.intl\", \"lib.es2021.intl.d.ts\"],\n [\"es2022.array\", \"lib.es2022.array.d.ts\"],\n [\"es2022.error\", \"lib.es2022.error.d.ts\"],\n [\"es2022.intl\", \"lib.es2022.intl.d.ts\"],\n [\"es2022.object\", \"lib.es2022.object.d.ts\"],\n [\"es2022.string\", \"lib.es2022.string.d.ts\"],\n [\"es2022.regexp\", \"lib.es2022.regexp.d.ts\"],\n [\"es2023.array\", \"lib.es2023.array.d.ts\"],\n [\"es2023.collection\", \"lib.es2023.collection.d.ts\"],\n [\"es2023.intl\", \"lib.es2023.intl.d.ts\"],\n [\"es2024.arraybuffer\", \"lib.es2024.arraybuffer.d.ts\"],\n [\"es2024.collection\", \"lib.es2024.collection.d.ts\"],\n [\"es2024.object\", \"lib.es2024.object.d.ts\"],\n [\"es2024.promise\", \"lib.es2024.promise.d.ts\"],\n [\"es2024.regexp\", \"lib.es2024.regexp.d.ts\"],\n [\"es2024.sharedmemory\", \"lib.es2024.sharedmemory.d.ts\"],\n [\"es2024.string\", \"lib.es2024.string.d.ts\"],\n [\"esnext.array\", \"lib.es2023.array.d.ts\"],\n [\"esnext.collection\", \"lib.esnext.collection.d.ts\"],\n [\"esnext.symbol\", \"lib.es2019.symbol.d.ts\"],\n [\"esnext.asynciterable\", \"lib.es2018.asynciterable.d.ts\"],\n [\"esnext.intl\", \"lib.esnext.intl.d.ts\"],\n [\"esnext.disposable\", \"lib.esnext.disposable.d.ts\"],\n [\"esnext.bigint\", \"lib.es2020.bigint.d.ts\"],\n [\"esnext.string\", \"lib.es2022.string.d.ts\"],\n [\"esnext.promise\", \"lib.es2024.promise.d.ts\"],\n [\"esnext.weakref\", \"lib.es2021.weakref.d.ts\"],\n [\"esnext.decorators\", \"lib.esnext.decorators.d.ts\"],\n [\"esnext.object\", \"lib.es2024.object.d.ts\"],\n [\"esnext.array\", \"lib.esnext.array.d.ts\"],\n [\"esnext.regexp\", \"lib.es2024.regexp.d.ts\"],\n [\"esnext.string\", \"lib.es2024.string.d.ts\"],\n [\"esnext.iterator\", \"lib.esnext.iterator.d.ts\"],\n [\"esnext.promise\", \"lib.esnext.promise.d.ts\"],\n [\"esnext.float16\", \"lib.esnext.float16.d.ts\"],\n [\"esnext.error\", \"lib.esnext.error.d.ts\"],\n [\"esnext.sharedmemory\", \"lib.esnext.sharedmemory.d.ts\"],\n [\"decorators\", \"lib.decorators.d.ts\"],\n [\"decorators.legacy\", \"lib.decorators.legacy.d.ts\"]\n];\nvar libs = libEntries.map((entry) => entry[0]);\nvar libMap = new Map(libEntries);\nvar optionsForWatch = [\n {\n name: \"watchFile\",\n type: new Map(Object.entries({\n fixedpollinginterval: 0 /* FixedPollingInterval */,\n prioritypollinginterval: 1 /* PriorityPollingInterval */,\n dynamicprioritypolling: 2 /* DynamicPriorityPolling */,\n fixedchunksizepolling: 3 /* FixedChunkSizePolling */,\n usefsevents: 4 /* UseFsEvents */,\n usefseventsonparentdirectory: 5 /* UseFsEventsOnParentDirectory */\n })),\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Specify_how_the_TypeScript_watch_mode_works,\n defaultValueDescription: 4 /* UseFsEvents */\n },\n {\n name: \"watchDirectory\",\n type: new Map(Object.entries({\n usefsevents: 0 /* UseFsEvents */,\n fixedpollinginterval: 1 /* FixedPollingInterval */,\n dynamicprioritypolling: 2 /* DynamicPriorityPolling */,\n fixedchunksizepolling: 3 /* FixedChunkSizePolling */\n })),\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality,\n defaultValueDescription: 0 /* UseFsEvents */\n },\n {\n name: \"fallbackPolling\",\n type: new Map(Object.entries({\n fixedinterval: 0 /* FixedInterval */,\n priorityinterval: 1 /* PriorityInterval */,\n dynamicpriority: 2 /* DynamicPriority */,\n fixedchunksize: 3 /* FixedChunkSize */\n })),\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers,\n defaultValueDescription: 1 /* PriorityInterval */\n },\n {\n name: \"synchronousWatchDirectory\",\n type: \"boolean\",\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,\n defaultValueDescription: false\n },\n {\n name: \"excludeDirectories\",\n type: \"list\",\n element: {\n name: \"excludeDirectory\",\n type: \"string\",\n isFilePath: true,\n extraValidation: specToDiagnostic\n },\n allowConfigDirTemplateSubstitution: true,\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Remove_a_list_of_directories_from_the_watch_process\n },\n {\n name: \"excludeFiles\",\n type: \"list\",\n element: {\n name: \"excludeFile\",\n type: \"string\",\n isFilePath: true,\n extraValidation: specToDiagnostic\n },\n allowConfigDirTemplateSubstitution: true,\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Remove_a_list_of_files_from_the_watch_mode_s_processing\n }\n];\nvar commonOptionsWithBuild = [\n {\n name: \"help\",\n shortName: \"h\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n isCommandLineOnly: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Print_this_message,\n defaultValueDescription: false\n },\n {\n name: \"help\",\n shortName: \"?\",\n type: \"boolean\",\n isCommandLineOnly: true,\n category: Diagnostics.Command_line_Options,\n defaultValueDescription: false\n },\n {\n name: \"watch\",\n shortName: \"w\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n isCommandLineOnly: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Watch_input_files,\n defaultValueDescription: false\n },\n {\n name: \"preserveWatchOutput\",\n type: \"boolean\",\n showInSimplifiedHelpView: false,\n category: Diagnostics.Output_Formatting,\n description: Diagnostics.Disable_wiping_the_console_in_watch_mode,\n defaultValueDescription: false\n },\n {\n name: \"listFiles\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Print_all_of_the_files_read_during_the_compilation,\n defaultValueDescription: false\n },\n {\n name: \"explainFiles\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,\n defaultValueDescription: false\n },\n {\n name: \"listEmittedFiles\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Print_the_names_of_emitted_files_after_a_compilation,\n defaultValueDescription: false\n },\n {\n name: \"pretty\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Output_Formatting,\n description: Diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,\n defaultValueDescription: true\n },\n {\n name: \"traceResolution\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Log_paths_used_during_the_moduleResolution_process,\n defaultValueDescription: false\n },\n {\n name: \"diagnostics\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Output_compiler_performance_information_after_building,\n defaultValueDescription: false\n },\n {\n name: \"extendedDiagnostics\",\n type: \"boolean\",\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Output_more_detailed_compiler_performance_information_after_building,\n defaultValueDescription: false\n },\n {\n name: \"generateCpuProfile\",\n type: \"string\",\n isFilePath: true,\n paramType: Diagnostics.FILE_OR_DIRECTORY,\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging,\n defaultValueDescription: \"profile.cpuprofile\"\n },\n {\n name: \"generateTrace\",\n type: \"string\",\n isFilePath: true,\n paramType: Diagnostics.DIRECTORY,\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Generates_an_event_trace_and_a_list_of_types\n },\n {\n name: \"incremental\",\n shortName: \"i\",\n type: \"boolean\",\n category: Diagnostics.Projects,\n description: Diagnostics.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects,\n transpileOptionValue: void 0,\n defaultValueDescription: Diagnostics.false_unless_composite_is_set\n },\n {\n name: \"declaration\",\n shortName: \"d\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n transpileOptionValue: void 0,\n description: Diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,\n defaultValueDescription: Diagnostics.false_unless_composite_is_set\n },\n {\n name: \"declarationMap\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n defaultValueDescription: false,\n description: Diagnostics.Create_sourcemaps_for_d_ts_files\n },\n {\n name: \"emitDeclarationOnly\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,\n transpileOptionValue: void 0,\n defaultValueDescription: false\n },\n {\n name: \"sourceMap\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n defaultValueDescription: false,\n description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files\n },\n {\n name: \"inlineSourceMap\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,\n defaultValueDescription: false\n },\n {\n name: \"noCheck\",\n type: \"boolean\",\n showInSimplifiedHelpView: false,\n category: Diagnostics.Compiler_Diagnostics,\n description: Diagnostics.Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported,\n transpileOptionValue: true,\n defaultValueDescription: false\n // Not setting affectsSemanticDiagnostics or affectsBuildInfo because we dont want all diagnostics to go away, its handled in builder\n },\n {\n name: \"noEmit\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Disable_emitting_files_from_a_compilation,\n transpileOptionValue: void 0,\n defaultValueDescription: false\n },\n {\n name: \"assumeChangesOnlyAffectDirectDependencies\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Watch_and_Build_Modes,\n description: Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,\n defaultValueDescription: false\n },\n {\n name: \"locale\",\n type: \"string\",\n category: Diagnostics.Command_line_Options,\n isCommandLineOnly: true,\n description: Diagnostics.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,\n defaultValueDescription: Diagnostics.Platform_specific\n }\n];\nvar targetOptionDeclaration = {\n name: \"target\",\n shortName: \"t\",\n type: new Map(Object.entries({\n es3: 0 /* ES3 */,\n es5: 1 /* ES5 */,\n es6: 2 /* ES2015 */,\n es2015: 2 /* ES2015 */,\n es2016: 3 /* ES2016 */,\n es2017: 4 /* ES2017 */,\n es2018: 5 /* ES2018 */,\n es2019: 6 /* ES2019 */,\n es2020: 7 /* ES2020 */,\n es2021: 8 /* ES2021 */,\n es2022: 9 /* ES2022 */,\n es2023: 10 /* ES2023 */,\n es2024: 11 /* ES2024 */,\n esnext: 99 /* ESNext */\n })),\n affectsSourceFile: true,\n affectsModuleResolution: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n deprecatedKeys: /* @__PURE__ */ new Set([\"es3\"]),\n paramType: Diagnostics.VERSION,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,\n defaultValueDescription: 1 /* ES5 */\n};\nvar moduleOptionDeclaration = {\n name: \"module\",\n shortName: \"m\",\n type: new Map(Object.entries({\n none: 0 /* None */,\n commonjs: 1 /* CommonJS */,\n amd: 2 /* AMD */,\n system: 4 /* System */,\n umd: 3 /* UMD */,\n es6: 5 /* ES2015 */,\n es2015: 5 /* ES2015 */,\n es2020: 6 /* ES2020 */,\n es2022: 7 /* ES2022 */,\n esnext: 99 /* ESNext */,\n node16: 100 /* Node16 */,\n node18: 101 /* Node18 */,\n node20: 102 /* Node20 */,\n nodenext: 199 /* NodeNext */,\n preserve: 200 /* Preserve */\n })),\n affectsSourceFile: true,\n affectsModuleResolution: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n paramType: Diagnostics.KIND,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_what_module_code_is_generated,\n defaultValueDescription: void 0\n};\nvar commandOptionsWithoutBuild = [\n // CommandLine only options\n {\n name: \"all\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Show_all_compiler_options,\n defaultValueDescription: false\n },\n {\n name: \"version\",\n shortName: \"v\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Print_the_compiler_s_version,\n defaultValueDescription: false\n },\n {\n name: \"init\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,\n defaultValueDescription: false\n },\n {\n name: \"project\",\n shortName: \"p\",\n type: \"string\",\n isFilePath: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n paramType: Diagnostics.FILE_OR_DIRECTORY,\n description: Diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json\n },\n {\n name: \"showConfig\",\n type: \"boolean\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n isCommandLineOnly: true,\n description: Diagnostics.Print_the_final_configuration_instead_of_building,\n defaultValueDescription: false\n },\n {\n name: \"listFilesOnly\",\n type: \"boolean\",\n category: Diagnostics.Command_line_Options,\n isCommandLineOnly: true,\n description: Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,\n defaultValueDescription: false\n },\n // Basic\n targetOptionDeclaration,\n moduleOptionDeclaration,\n {\n name: \"lib\",\n type: \"list\",\n element: {\n name: \"lib\",\n type: libMap,\n defaultValueDescription: void 0\n },\n affectsProgramStructure: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment,\n transpileOptionValue: void 0\n },\n {\n name: \"allowJs\",\n type: \"boolean\",\n allowJsFlag: true,\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.JavaScript_Support,\n description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files,\n defaultValueDescription: false\n },\n {\n name: \"checkJs\",\n type: \"boolean\",\n affectsModuleResolution: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.JavaScript_Support,\n description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,\n defaultValueDescription: false\n },\n {\n name: \"jsx\",\n type: jsxOptionMap,\n affectsSourceFile: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsModuleResolution: true,\n // The checker emits an error when it sees JSX but this option is not set in compilerOptions.\n // This is effectively a semantic error, so mark this option as affecting semantic diagnostics\n // so we know to refresh errors when this option is changed.\n affectsSemanticDiagnostics: true,\n paramType: Diagnostics.KIND,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_what_JSX_code_is_generated,\n defaultValueDescription: void 0\n },\n {\n name: \"outFile\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsDeclarationPath: true,\n isFilePath: true,\n paramType: Diagnostics.FILE,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,\n transpileOptionValue: void 0\n },\n {\n name: \"outDir\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsDeclarationPath: true,\n isFilePath: true,\n paramType: Diagnostics.DIRECTORY,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Specify_an_output_folder_for_all_emitted_files\n },\n {\n name: \"rootDir\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsDeclarationPath: true,\n isFilePath: true,\n paramType: Diagnostics.LOCATION,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_the_root_folder_within_your_source_files,\n defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files\n },\n {\n name: \"composite\",\n type: \"boolean\",\n // Not setting affectsEmit because we calculate this flag might not affect full emit\n affectsBuildInfo: true,\n isTSConfigOnly: true,\n category: Diagnostics.Projects,\n transpileOptionValue: void 0,\n defaultValueDescription: false,\n description: Diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references\n },\n {\n name: \"tsBuildInfoFile\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n isFilePath: true,\n paramType: Diagnostics.FILE,\n category: Diagnostics.Projects,\n transpileOptionValue: void 0,\n defaultValueDescription: \".tsbuildinfo\",\n description: Diagnostics.Specify_the_path_to_tsbuildinfo_incremental_compilation_file\n },\n {\n name: \"removeComments\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Emit,\n defaultValueDescription: false,\n description: Diagnostics.Disable_emitting_comments\n },\n {\n name: \"importHelpers\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsSourceFile: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,\n defaultValueDescription: false\n },\n {\n name: \"importsNotUsedAsValues\",\n type: new Map(Object.entries({\n remove: 0 /* Remove */,\n preserve: 1 /* Preserve */,\n error: 2 /* Error */\n })),\n affectsEmit: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,\n defaultValueDescription: 0 /* Remove */\n },\n {\n name: \"downlevelIteration\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,\n defaultValueDescription: false\n },\n {\n name: \"isolatedModules\",\n type: \"boolean\",\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,\n transpileOptionValue: true,\n defaultValueDescription: false\n },\n {\n name: \"verbatimModuleSyntax\",\n type: \"boolean\",\n affectsEmit: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,\n defaultValueDescription: false\n },\n {\n name: \"isolatedDeclarations\",\n type: \"boolean\",\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,\n defaultValueDescription: false,\n affectsBuildInfo: true,\n affectsSemanticDiagnostics: true\n },\n {\n name: \"erasableSyntaxOnly\",\n type: \"boolean\",\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript,\n defaultValueDescription: false,\n affectsBuildInfo: true,\n affectsSemanticDiagnostics: true\n },\n {\n name: \"libReplacement\",\n type: \"boolean\",\n affectsProgramStructure: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Enable_lib_replacement,\n defaultValueDescription: true\n },\n // Strict Type Checks\n {\n name: \"strict\",\n type: \"boolean\",\n // Though this affects semantic diagnostics, affectsSemanticDiagnostics is not set here\n // The value of each strictFlag depends on own strictFlag value or this and never accessed directly.\n // But we need to store `strict` in builf info, even though it won't be examined directly, so that the\n // flags it controls (e.g. `strictNullChecks`) will be retrieved correctly\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_all_strict_type_checking_options,\n defaultValueDescription: false\n },\n {\n name: \"noImplicitAny\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"strictNullChecks\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.When_type_checking_take_into_account_null_and_undefined,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"strictFunctionTypes\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"strictBindCallApply\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"strictPropertyInitialization\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"strictBuiltinIteratorReturn\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"noImplicitThis\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_error_reporting_when_this_is_given_the_type_any,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"useUnknownInCatchVariables\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n {\n name: \"alwaysStrict\",\n type: \"boolean\",\n affectsSourceFile: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n strictFlag: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Ensure_use_strict_is_always_emitted,\n defaultValueDescription: Diagnostics.false_unless_strict_is_set\n },\n // Additional Checks\n {\n name: \"noUnusedLocals\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_error_reporting_when_local_variables_aren_t_read,\n defaultValueDescription: false\n },\n {\n name: \"noUnusedParameters\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read,\n defaultValueDescription: false\n },\n {\n name: \"exactOptionalPropertyTypes\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,\n defaultValueDescription: false\n },\n {\n name: \"noImplicitReturns\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,\n defaultValueDescription: false\n },\n {\n name: \"noFallthroughCasesInSwitch\",\n type: \"boolean\",\n affectsBindDiagnostics: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,\n defaultValueDescription: false\n },\n {\n name: \"noUncheckedIndexedAccess\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index,\n defaultValueDescription: false\n },\n {\n name: \"noImplicitOverride\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,\n defaultValueDescription: false\n },\n {\n name: \"noPropertyAccessFromIndexSignature\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n showInSimplifiedHelpView: false,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,\n defaultValueDescription: false\n },\n // Module Resolution\n {\n name: \"moduleResolution\",\n type: new Map(Object.entries({\n // N.B. The first entry specifies the value shown in `tsc --init`\n node10: 2 /* Node10 */,\n node: 2 /* Node10 */,\n classic: 1 /* Classic */,\n node16: 3 /* Node16 */,\n nodenext: 99 /* NodeNext */,\n bundler: 100 /* Bundler */\n })),\n deprecatedKeys: /* @__PURE__ */ new Set([\"node\"]),\n affectsSourceFile: true,\n affectsModuleResolution: true,\n paramType: Diagnostics.STRATEGY,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,\n defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node\n },\n {\n name: \"baseUrl\",\n type: \"string\",\n affectsModuleResolution: true,\n isFilePath: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_the_base_directory_to_resolve_non_relative_module_names\n },\n {\n // this option can only be specified in tsconfig.json\n // use type = object to copy the value as-is\n name: \"paths\",\n type: \"object\",\n affectsModuleResolution: true,\n allowConfigDirTemplateSubstitution: true,\n isTSConfigOnly: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations,\n transpileOptionValue: void 0\n },\n {\n // this option can only be specified in tsconfig.json\n // use type = object to copy the value as-is\n name: \"rootDirs\",\n type: \"list\",\n isTSConfigOnly: true,\n element: {\n name: \"rootDirs\",\n type: \"string\",\n isFilePath: true\n },\n affectsModuleResolution: true,\n allowConfigDirTemplateSubstitution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules,\n transpileOptionValue: void 0,\n defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files\n },\n {\n name: \"typeRoots\",\n type: \"list\",\n element: {\n name: \"typeRoots\",\n type: \"string\",\n isFilePath: true\n },\n affectsModuleResolution: true,\n allowConfigDirTemplateSubstitution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types\n },\n {\n name: \"types\",\n type: \"list\",\n element: {\n name: \"types\",\n type: \"string\"\n },\n affectsProgramStructure: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file,\n transpileOptionValue: void 0\n },\n {\n name: \"allowSyntheticDefaultImports\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,\n defaultValueDescription: Diagnostics.module_system_or_esModuleInterop\n },\n {\n name: \"esModuleInterop\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n showInSimplifiedHelpView: true,\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,\n defaultValueDescription: false\n },\n {\n name: \"preserveSymlinks\",\n type: \"boolean\",\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,\n defaultValueDescription: false\n },\n {\n name: \"allowUmdGlobalAccess\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Allow_accessing_UMD_globals_from_modules,\n defaultValueDescription: false\n },\n {\n name: \"moduleSuffixes\",\n type: \"list\",\n element: {\n name: \"suffix\",\n type: \"string\"\n },\n listPreserveFalsyValues: true,\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.List_of_file_name_suffixes_to_search_when_resolving_a_module\n },\n {\n name: \"allowImportingTsExtensions\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,\n defaultValueDescription: false,\n transpileOptionValue: void 0\n },\n {\n name: \"rewriteRelativeImportExtensions\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files,\n defaultValueDescription: false\n },\n {\n name: \"resolvePackageJsonExports\",\n type: \"boolean\",\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Use_the_package_json_exports_field_when_resolving_package_imports,\n defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false\n },\n {\n name: \"resolvePackageJsonImports\",\n type: \"boolean\",\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Use_the_package_json_imports_field_when_resolving_imports,\n defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false\n },\n {\n name: \"customConditions\",\n type: \"list\",\n element: {\n name: \"condition\",\n type: \"string\"\n },\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports\n },\n {\n name: \"noUncheckedSideEffectImports\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Check_side_effect_imports,\n defaultValueDescription: false\n },\n // Source Maps\n {\n name: \"sourceRoot\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n paramType: Diagnostics.LOCATION,\n category: Diagnostics.Emit,\n description: Diagnostics.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code\n },\n {\n name: \"mapRoot\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n paramType: Diagnostics.LOCATION,\n category: Diagnostics.Emit,\n description: Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations\n },\n {\n name: \"inlineSources\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,\n defaultValueDescription: false\n },\n // Experimental\n {\n name: \"experimentalDecorators\",\n type: \"boolean\",\n affectsEmit: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Enable_experimental_support_for_legacy_experimental_decorators,\n defaultValueDescription: false\n },\n {\n name: \"emitDecoratorMetadata\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,\n defaultValueDescription: false\n },\n // Advanced\n {\n name: \"jsxFactory\",\n type: \"string\",\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h,\n defaultValueDescription: \"`React.createElement`\"\n },\n {\n name: \"jsxFragmentFactory\",\n type: \"string\",\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment,\n defaultValueDescription: \"React.Fragment\"\n },\n {\n name: \"jsxImportSource\",\n type: \"string\",\n affectsSemanticDiagnostics: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsModuleResolution: true,\n affectsSourceFile: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,\n defaultValueDescription: \"react\"\n },\n {\n name: \"resolveJsonModule\",\n type: \"boolean\",\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Enable_importing_json_files,\n defaultValueDescription: false\n },\n {\n name: \"allowArbitraryExtensions\",\n type: \"boolean\",\n affectsProgramStructure: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,\n defaultValueDescription: false\n },\n {\n name: \"out\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsDeclarationPath: true,\n isFilePath: false,\n // This is intentionally broken to support compatibility with existing tsconfig files\n // for correct behaviour, please use outFile\n category: Diagnostics.Backwards_Compatibility,\n paramType: Diagnostics.FILE,\n transpileOptionValue: void 0,\n description: Diagnostics.Deprecated_setting_Use_outFile_instead\n },\n {\n name: \"reactNamespace\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,\n defaultValueDescription: \"`React`\"\n },\n {\n name: \"skipDefaultLibCheck\",\n type: \"boolean\",\n // We need to store these to determine whether `lib` files need to be rechecked\n affectsBuildInfo: true,\n category: Diagnostics.Completeness,\n description: Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,\n defaultValueDescription: false\n },\n {\n name: \"charset\",\n type: \"string\",\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files,\n defaultValueDescription: \"utf8\"\n },\n {\n name: \"emitBOM\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,\n defaultValueDescription: false\n },\n {\n name: \"newLine\",\n type: new Map(Object.entries({\n crlf: 0 /* CarriageReturnLineFeed */,\n lf: 1 /* LineFeed */\n })),\n affectsEmit: true,\n affectsBuildInfo: true,\n paramType: Diagnostics.NEWLINE,\n category: Diagnostics.Emit,\n description: Diagnostics.Set_the_newline_character_for_emitting_files,\n defaultValueDescription: \"lf\"\n },\n {\n name: \"noErrorTruncation\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Output_Formatting,\n description: Diagnostics.Disable_truncating_types_in_error_messages,\n defaultValueDescription: false\n },\n {\n name: \"noLib\",\n type: \"boolean\",\n category: Diagnostics.Language_and_Environment,\n affectsProgramStructure: true,\n description: Diagnostics.Disable_including_any_library_files_including_the_default_lib_d_ts,\n // We are not returning a sourceFile for lib file when asked by the program,\n // so pass --noLib to avoid reporting a file not found error.\n transpileOptionValue: true,\n defaultValueDescription: false\n },\n {\n name: \"noResolve\",\n type: \"boolean\",\n affectsModuleResolution: true,\n category: Diagnostics.Modules,\n description: Diagnostics.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project,\n // We are not doing a full typecheck, we are not resolving the whole context,\n // so pass --noResolve to avoid reporting missing file errors.\n transpileOptionValue: true,\n defaultValueDescription: false\n },\n {\n name: \"stripInternal\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,\n defaultValueDescription: false\n },\n {\n name: \"disableSizeLimit\",\n type: \"boolean\",\n affectsProgramStructure: true,\n category: Diagnostics.Editor_Support,\n description: Diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,\n defaultValueDescription: false\n },\n {\n name: \"disableSourceOfProjectReferenceRedirect\",\n type: \"boolean\",\n isTSConfigOnly: true,\n category: Diagnostics.Projects,\n description: Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,\n defaultValueDescription: false\n },\n {\n name: \"disableSolutionSearching\",\n type: \"boolean\",\n isTSConfigOnly: true,\n category: Diagnostics.Projects,\n description: Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,\n defaultValueDescription: false\n },\n {\n name: \"disableReferencedProjectLoad\",\n type: \"boolean\",\n isTSConfigOnly: true,\n category: Diagnostics.Projects,\n description: Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,\n defaultValueDescription: false\n },\n {\n name: \"noImplicitUseStrict\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,\n defaultValueDescription: false\n },\n {\n name: \"noEmitHelpers\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,\n defaultValueDescription: false\n },\n {\n name: \"noEmitOnError\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n transpileOptionValue: void 0,\n description: Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported,\n defaultValueDescription: false\n },\n {\n name: \"preserveConstEnums\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Emit,\n description: Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,\n defaultValueDescription: false\n },\n {\n name: \"declarationDir\",\n type: \"string\",\n affectsEmit: true,\n affectsBuildInfo: true,\n affectsDeclarationPath: true,\n isFilePath: true,\n paramType: Diagnostics.DIRECTORY,\n category: Diagnostics.Emit,\n transpileOptionValue: void 0,\n description: Diagnostics.Specify_the_output_directory_for_generated_declaration_files\n },\n {\n name: \"skipLibCheck\",\n type: \"boolean\",\n // We need to store these to determine whether `lib` files need to be rechecked\n affectsBuildInfo: true,\n category: Diagnostics.Completeness,\n description: Diagnostics.Skip_type_checking_all_d_ts_files,\n defaultValueDescription: false\n },\n {\n name: \"allowUnusedLabels\",\n type: \"boolean\",\n affectsBindDiagnostics: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Disable_error_reporting_for_unused_labels,\n defaultValueDescription: void 0\n },\n {\n name: \"allowUnreachableCode\",\n type: \"boolean\",\n affectsBindDiagnostics: true,\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Type_Checking,\n description: Diagnostics.Disable_error_reporting_for_unreachable_code,\n defaultValueDescription: void 0\n },\n {\n name: \"suppressExcessPropertyErrors\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,\n defaultValueDescription: false\n },\n {\n name: \"suppressImplicitAnyIndexErrors\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,\n defaultValueDescription: false\n },\n {\n name: \"forceConsistentCasingInFileNames\",\n type: \"boolean\",\n affectsModuleResolution: true,\n category: Diagnostics.Interop_Constraints,\n description: Diagnostics.Ensure_that_casing_is_correct_in_imports,\n defaultValueDescription: true\n },\n {\n name: \"maxNodeModuleJsDepth\",\n type: \"number\",\n affectsModuleResolution: true,\n category: Diagnostics.JavaScript_Support,\n description: Diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,\n defaultValueDescription: 0\n },\n {\n name: \"noStrictGenericChecks\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types,\n defaultValueDescription: false\n },\n {\n name: \"useDefineForClassFields\",\n type: \"boolean\",\n affectsSemanticDiagnostics: true,\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Language_and_Environment,\n description: Diagnostics.Emit_ECMAScript_standard_compliant_class_fields,\n defaultValueDescription: Diagnostics.true_for_ES2022_and_above_including_ESNext\n },\n {\n name: \"preserveValueImports\",\n type: \"boolean\",\n affectsEmit: true,\n affectsBuildInfo: true,\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,\n defaultValueDescription: false\n },\n {\n name: \"keyofStringsOnly\",\n type: \"boolean\",\n category: Diagnostics.Backwards_Compatibility,\n description: Diagnostics.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option,\n defaultValueDescription: false\n },\n {\n // A list of plugins to load in the language service\n name: \"plugins\",\n type: \"list\",\n isTSConfigOnly: true,\n element: {\n name: \"plugin\",\n type: \"object\"\n },\n description: Diagnostics.Specify_a_list_of_language_service_plugins_to_include,\n category: Diagnostics.Editor_Support\n },\n {\n name: \"moduleDetection\",\n type: new Map(Object.entries({\n auto: 2 /* Auto */,\n legacy: 1 /* Legacy */,\n force: 3 /* Force */\n })),\n affectsSourceFile: true,\n affectsModuleResolution: true,\n description: Diagnostics.Control_what_method_is_used_to_detect_module_format_JS_files,\n category: Diagnostics.Language_and_Environment,\n defaultValueDescription: Diagnostics.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules\n },\n {\n name: \"ignoreDeprecations\",\n type: \"string\",\n defaultValueDescription: void 0\n }\n];\nvar optionDeclarations = [\n ...commonOptionsWithBuild,\n ...commandOptionsWithoutBuild\n];\nvar semanticDiagnosticsOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsSemanticDiagnostics);\nvar affectsEmitOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsEmit);\nvar affectsDeclarationPathOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsDeclarationPath);\nvar moduleResolutionOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsModuleResolution);\nvar sourceFileAffectingCompilerOptions = optionDeclarations.filter((option) => !!option.affectsSourceFile || !!option.affectsBindDiagnostics);\nvar optionsAffectingProgramStructure = optionDeclarations.filter((option) => !!option.affectsProgramStructure);\nvar transpileOptionValueCompilerOptions = optionDeclarations.filter((option) => hasProperty(option, \"transpileOptionValue\"));\nvar configDirTemplateSubstitutionOptions = optionDeclarations.filter(\n (option) => option.allowConfigDirTemplateSubstitution || !option.isCommandLineOnly && option.isFilePath\n);\nvar configDirTemplateSubstitutionWatchOptions = optionsForWatch.filter(\n (option) => option.allowConfigDirTemplateSubstitution || !option.isCommandLineOnly && option.isFilePath\n);\nvar commandLineOptionOfCustomType = optionDeclarations.filter(isCommandLineOptionOfCustomType);\nfunction isCommandLineOptionOfCustomType(option) {\n return !isString(option.type);\n}\nvar tscBuildOption = {\n name: \"build\",\n type: \"boolean\",\n shortName: \"b\",\n showInSimplifiedHelpView: true,\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,\n defaultValueDescription: false\n};\nvar optionsForBuild = [\n tscBuildOption,\n {\n name: \"verbose\",\n shortName: \"v\",\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Enable_verbose_logging,\n type: \"boolean\",\n defaultValueDescription: false\n },\n {\n name: \"dry\",\n shortName: \"d\",\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,\n type: \"boolean\",\n defaultValueDescription: false\n },\n {\n name: \"force\",\n shortName: \"f\",\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,\n type: \"boolean\",\n defaultValueDescription: false\n },\n {\n name: \"clean\",\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Delete_the_outputs_of_all_projects,\n type: \"boolean\",\n defaultValueDescription: false\n },\n {\n name: \"stopBuildOnErrors\",\n category: Diagnostics.Command_line_Options,\n description: Diagnostics.Skip_building_downstream_projects_on_error_in_upstream_project,\n type: \"boolean\",\n defaultValueDescription: false\n }\n];\nvar buildOpts = [\n ...commonOptionsWithBuild,\n ...optionsForBuild\n];\nvar typeAcquisitionDeclarations = [\n {\n name: \"enable\",\n type: \"boolean\",\n defaultValueDescription: false\n },\n {\n name: \"include\",\n type: \"list\",\n element: {\n name: \"include\",\n type: \"string\"\n }\n },\n {\n name: \"exclude\",\n type: \"list\",\n element: {\n name: \"exclude\",\n type: \"string\"\n }\n },\n {\n name: \"disableFilenameBasedTypeAcquisition\",\n type: \"boolean\",\n defaultValueDescription: false\n }\n];\nfunction createOptionNameMap(optionDeclarations2) {\n const optionsNameMap = /* @__PURE__ */ new Map();\n const shortOptionNames = /* @__PURE__ */ new Map();\n forEach(optionDeclarations2, (option) => {\n optionsNameMap.set(option.name.toLowerCase(), option);\n if (option.shortName) {\n shortOptionNames.set(option.shortName, option.name);\n }\n });\n return { optionsNameMap, shortOptionNames };\n}\nvar optionsNameMapCache;\nfunction getOptionsNameMap() {\n return optionsNameMapCache || (optionsNameMapCache = createOptionNameMap(optionDeclarations));\n}\nvar compilerOptionsAlternateMode = {\n diagnostic: Diagnostics.Compiler_option_0_may_only_be_used_with_build,\n getOptionsNameMap: getBuildOptionsNameMap\n};\nvar defaultInitCompilerOptions = {\n module: 1 /* CommonJS */,\n target: 3 /* ES2016 */,\n strict: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n skipLibCheck: true\n};\nfunction createCompilerDiagnosticForInvalidCustomType(opt) {\n return createDiagnosticForInvalidCustomType(opt, createCompilerDiagnostic);\n}\nfunction createDiagnosticForInvalidCustomType(opt, createDiagnostic) {\n const namesOfType = arrayFrom(opt.type.keys());\n const stringNames = (opt.deprecatedKeys ? namesOfType.filter((k) => !opt.deprecatedKeys.has(k)) : namesOfType).map((key) => `'${key}'`).join(\", \");\n return createDiagnostic(Diagnostics.Argument_for_0_option_must_be_Colon_1, `--${opt.name}`, stringNames);\n}\nfunction parseCustomTypeOption(opt, value, errors) {\n return convertJsonOptionOfCustomType(opt, (value ?? \"\").trim(), errors);\n}\nfunction parseListTypeOption(opt, value = \"\", errors) {\n value = value.trim();\n if (startsWith(value, \"-\")) {\n return void 0;\n }\n if (opt.type === \"listOrElement\" && !value.includes(\",\")) {\n return validateJsonOptionValue(opt, value, errors);\n }\n if (value === \"\") {\n return [];\n }\n const values = value.split(\",\");\n switch (opt.element.type) {\n case \"number\":\n return mapDefined(values, (v) => validateJsonOptionValue(opt.element, parseInt(v), errors));\n case \"string\":\n return mapDefined(values, (v) => validateJsonOptionValue(opt.element, v || \"\", errors));\n case \"boolean\":\n case \"object\":\n return Debug.fail(`List of ${opt.element.type} is not yet supported.`);\n default:\n return mapDefined(values, (v) => parseCustomTypeOption(opt.element, v, errors));\n }\n}\nfunction getOptionName(option) {\n return option.name;\n}\nfunction createUnknownOptionError(unknownOption, diagnostics, unknownOptionErrorText, node, sourceFile) {\n var _a;\n const otherOption = (_a = diagnostics.alternateMode) == null ? void 0 : _a.getOptionsNameMap().optionsNameMap.get(unknownOption.toLowerCase());\n if (otherOption) {\n return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(\n sourceFile,\n node,\n otherOption !== tscBuildOption ? diagnostics.alternateMode.diagnostic : Diagnostics.Option_build_must_be_the_first_command_line_argument,\n unknownOption\n );\n }\n const possibleOption = getSpellingSuggestion(unknownOption, diagnostics.optionDeclarations, getOptionName);\n return possibleOption ? createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownDidYouMeanDiagnostic, unknownOptionErrorText || unknownOption, possibleOption.name) : createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownOptionDiagnostic, unknownOptionErrorText || unknownOption);\n}\nfunction parseCommandLineWorker(diagnostics, commandLine, readFile) {\n const options = {};\n let watchOptions;\n const fileNames = [];\n const errors = [];\n parseStrings(commandLine);\n return {\n options,\n watchOptions,\n fileNames,\n errors\n };\n function parseStrings(args) {\n let i = 0;\n while (i < args.length) {\n const s = args[i];\n i++;\n if (s.charCodeAt(0) === 64 /* at */) {\n parseResponseFile(s.slice(1));\n } else if (s.charCodeAt(0) === 45 /* minus */) {\n const inputOptionName = s.slice(s.charCodeAt(1) === 45 /* minus */ ? 2 : 1);\n const opt = getOptionDeclarationFromName(\n diagnostics.getOptionsNameMap,\n inputOptionName,\n /*allowShort*/\n true\n );\n if (opt) {\n i = parseOptionValue(args, i, diagnostics, opt, options, errors);\n } else {\n const watchOpt = getOptionDeclarationFromName(\n watchOptionsDidYouMeanDiagnostics.getOptionsNameMap,\n inputOptionName,\n /*allowShort*/\n true\n );\n if (watchOpt) {\n i = parseOptionValue(args, i, watchOptionsDidYouMeanDiagnostics, watchOpt, watchOptions || (watchOptions = {}), errors);\n } else {\n errors.push(createUnknownOptionError(inputOptionName, diagnostics, s));\n }\n }\n } else {\n fileNames.push(s);\n }\n }\n }\n function parseResponseFile(fileName) {\n const text = tryReadFile(fileName, readFile || ((fileName2) => sys.readFile(fileName2)));\n if (!isString(text)) {\n errors.push(text);\n return;\n }\n const args = [];\n let pos = 0;\n while (true) {\n while (pos < text.length && text.charCodeAt(pos) <= 32 /* space */) pos++;\n if (pos >= text.length) break;\n const start = pos;\n if (text.charCodeAt(start) === 34 /* doubleQuote */) {\n pos++;\n while (pos < text.length && text.charCodeAt(pos) !== 34 /* doubleQuote */) pos++;\n if (pos < text.length) {\n args.push(text.substring(start + 1, pos));\n pos++;\n } else {\n errors.push(createCompilerDiagnostic(Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName));\n }\n } else {\n while (text.charCodeAt(pos) > 32 /* space */) pos++;\n args.push(text.substring(start, pos));\n }\n }\n parseStrings(args);\n }\n}\nfunction parseOptionValue(args, i, diagnostics, opt, options, errors) {\n if (opt.isTSConfigOnly) {\n const optValue = args[i];\n if (optValue === \"null\") {\n options[opt.name] = void 0;\n i++;\n } else if (opt.type === \"boolean\") {\n if (optValue === \"false\") {\n options[opt.name] = validateJsonOptionValue(\n opt,\n /*value*/\n false,\n errors\n );\n i++;\n } else {\n if (optValue === \"true\") i++;\n errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line, opt.name));\n }\n } else {\n errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line, opt.name));\n if (optValue && !startsWith(optValue, \"-\")) i++;\n }\n } else {\n if (!args[i] && opt.type !== \"boolean\") {\n errors.push(createCompilerDiagnostic(diagnostics.optionTypeMismatchDiagnostic, opt.name, getCompilerOptionValueTypeString(opt)));\n }\n if (args[i] !== \"null\") {\n switch (opt.type) {\n case \"number\":\n options[opt.name] = validateJsonOptionValue(opt, parseInt(args[i]), errors);\n i++;\n break;\n case \"boolean\":\n const optValue = args[i];\n options[opt.name] = validateJsonOptionValue(opt, optValue !== \"false\", errors);\n if (optValue === \"false\" || optValue === \"true\") {\n i++;\n }\n break;\n case \"string\":\n options[opt.name] = validateJsonOptionValue(opt, args[i] || \"\", errors);\n i++;\n break;\n case \"list\":\n const result = parseListTypeOption(opt, args[i], errors);\n options[opt.name] = result || [];\n if (result) {\n i++;\n }\n break;\n case \"listOrElement\":\n Debug.fail(\"listOrElement not supported here\");\n break;\n // If not a primitive, the possible types are specified in what is effectively a map of options.\n default:\n options[opt.name] = parseCustomTypeOption(opt, args[i], errors);\n i++;\n break;\n }\n } else {\n options[opt.name] = void 0;\n i++;\n }\n }\n return i;\n}\nvar compilerOptionsDidYouMeanDiagnostics = {\n alternateMode: compilerOptionsAlternateMode,\n getOptionsNameMap,\n optionDeclarations,\n unknownOptionDiagnostic: Diagnostics.Unknown_compiler_option_0,\n unknownDidYouMeanDiagnostic: Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,\n optionTypeMismatchDiagnostic: Diagnostics.Compiler_option_0_expects_an_argument\n};\nfunction parseCommandLine(commandLine, readFile) {\n return parseCommandLineWorker(compilerOptionsDidYouMeanDiagnostics, commandLine, readFile);\n}\nfunction getOptionFromName(optionName, allowShort) {\n return getOptionDeclarationFromName(getOptionsNameMap, optionName, allowShort);\n}\nfunction getOptionDeclarationFromName(getOptionNameMap, optionName, allowShort = false) {\n optionName = optionName.toLowerCase();\n const { optionsNameMap, shortOptionNames } = getOptionNameMap();\n if (allowShort) {\n const short = shortOptionNames.get(optionName);\n if (short !== void 0) {\n optionName = short;\n }\n }\n return optionsNameMap.get(optionName);\n}\nvar buildOptionsNameMapCache;\nfunction getBuildOptionsNameMap() {\n return buildOptionsNameMapCache || (buildOptionsNameMapCache = createOptionNameMap(buildOpts));\n}\nvar buildOptionsAlternateMode = {\n diagnostic: Diagnostics.Compiler_option_0_may_not_be_used_with_build,\n getOptionsNameMap\n};\nvar buildOptionsDidYouMeanDiagnostics = {\n alternateMode: buildOptionsAlternateMode,\n getOptionsNameMap: getBuildOptionsNameMap,\n optionDeclarations: buildOpts,\n unknownOptionDiagnostic: Diagnostics.Unknown_build_option_0,\n unknownDidYouMeanDiagnostic: Diagnostics.Unknown_build_option_0_Did_you_mean_1,\n optionTypeMismatchDiagnostic: Diagnostics.Build_option_0_requires_a_value_of_type_1\n};\nfunction parseBuildCommand(commandLine) {\n const { options, watchOptions, fileNames: projects, errors } = parseCommandLineWorker(\n buildOptionsDidYouMeanDiagnostics,\n commandLine\n );\n const buildOptions = options;\n if (projects.length === 0) {\n projects.push(\".\");\n }\n if (buildOptions.clean && buildOptions.force) {\n errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"force\"));\n }\n if (buildOptions.clean && buildOptions.verbose) {\n errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"verbose\"));\n }\n if (buildOptions.clean && buildOptions.watch) {\n errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"watch\"));\n }\n if (buildOptions.watch && buildOptions.dry) {\n errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"watch\", \"dry\"));\n }\n return { buildOptions, watchOptions, projects, errors };\n}\nfunction getDiagnosticText(message, ...args) {\n return cast(createCompilerDiagnostic(message, ...args).messageText, isString);\n}\nfunction getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend, extraFileExtensions) {\n const configFileText = tryReadFile(configFileName, (fileName) => host.readFile(fileName));\n if (!isString(configFileText)) {\n host.onUnRecoverableConfigFileDiagnostic(configFileText);\n return void 0;\n }\n const result = parseJsonText(configFileName, configFileText);\n const cwd = host.getCurrentDirectory();\n result.path = toPath(configFileName, cwd, createGetCanonicalFileName(host.useCaseSensitiveFileNames));\n result.resolvedPath = result.path;\n result.originalFileName = result.fileName;\n return parseJsonSourceFileConfigFileContent(\n result,\n host,\n getNormalizedAbsolutePath(getDirectoryPath(configFileName), cwd),\n optionsToExtend,\n getNormalizedAbsolutePath(configFileName, cwd),\n /*resolutionStack*/\n void 0,\n extraFileExtensions,\n extendedConfigCache,\n watchOptionsToExtend\n );\n}\nfunction readConfigFile(fileName, readFile) {\n const textOrDiagnostic = tryReadFile(fileName, readFile);\n return isString(textOrDiagnostic) ? parseConfigFileTextToJson(fileName, textOrDiagnostic) : { config: {}, error: textOrDiagnostic };\n}\nfunction parseConfigFileTextToJson(fileName, jsonText) {\n const jsonSourceFile = parseJsonText(fileName, jsonText);\n return {\n config: convertConfigFileToObject(\n jsonSourceFile,\n jsonSourceFile.parseDiagnostics,\n /*jsonConversionNotifier*/\n void 0\n ),\n error: jsonSourceFile.parseDiagnostics.length ? jsonSourceFile.parseDiagnostics[0] : void 0\n };\n}\nfunction readJsonConfigFile(fileName, readFile) {\n const textOrDiagnostic = tryReadFile(fileName, readFile);\n return isString(textOrDiagnostic) ? parseJsonText(fileName, textOrDiagnostic) : { fileName, parseDiagnostics: [textOrDiagnostic] };\n}\nfunction tryReadFile(fileName, readFile) {\n let text;\n try {\n text = readFile(fileName);\n } catch (e) {\n return createCompilerDiagnostic(Diagnostics.Cannot_read_file_0_Colon_1, fileName, e.message);\n }\n return text === void 0 ? createCompilerDiagnostic(Diagnostics.Cannot_read_file_0, fileName) : text;\n}\nfunction commandLineOptionsToMap(options) {\n return arrayToMap(options, getOptionName);\n}\nvar typeAcquisitionDidYouMeanDiagnostics = {\n optionDeclarations: typeAcquisitionDeclarations,\n unknownOptionDiagnostic: Diagnostics.Unknown_type_acquisition_option_0,\n unknownDidYouMeanDiagnostic: Diagnostics.Unknown_type_acquisition_option_0_Did_you_mean_1\n};\nvar watchOptionsNameMapCache;\nfunction getWatchOptionsNameMap() {\n return watchOptionsNameMapCache || (watchOptionsNameMapCache = createOptionNameMap(optionsForWatch));\n}\nvar watchOptionsDidYouMeanDiagnostics = {\n getOptionsNameMap: getWatchOptionsNameMap,\n optionDeclarations: optionsForWatch,\n unknownOptionDiagnostic: Diagnostics.Unknown_watch_option_0,\n unknownDidYouMeanDiagnostic: Diagnostics.Unknown_watch_option_0_Did_you_mean_1,\n optionTypeMismatchDiagnostic: Diagnostics.Watch_option_0_requires_a_value_of_type_1\n};\nvar commandLineCompilerOptionsMapCache;\nfunction getCommandLineCompilerOptionsMap() {\n return commandLineCompilerOptionsMapCache || (commandLineCompilerOptionsMapCache = commandLineOptionsToMap(optionDeclarations));\n}\nvar commandLineWatchOptionsMapCache;\nfunction getCommandLineWatchOptionsMap() {\n return commandLineWatchOptionsMapCache || (commandLineWatchOptionsMapCache = commandLineOptionsToMap(optionsForWatch));\n}\nvar commandLineTypeAcquisitionMapCache;\nfunction getCommandLineTypeAcquisitionMap() {\n return commandLineTypeAcquisitionMapCache || (commandLineTypeAcquisitionMapCache = commandLineOptionsToMap(typeAcquisitionDeclarations));\n}\nvar extendsOptionDeclaration = {\n name: \"extends\",\n type: \"listOrElement\",\n element: {\n name: \"extends\",\n type: \"string\"\n },\n category: Diagnostics.File_Management,\n disallowNullOrUndefined: true\n};\nvar compilerOptionsDeclaration = {\n name: \"compilerOptions\",\n type: \"object\",\n elementOptions: getCommandLineCompilerOptionsMap(),\n extraKeyDiagnostics: compilerOptionsDidYouMeanDiagnostics\n};\nvar watchOptionsDeclaration = {\n name: \"watchOptions\",\n type: \"object\",\n elementOptions: getCommandLineWatchOptionsMap(),\n extraKeyDiagnostics: watchOptionsDidYouMeanDiagnostics\n};\nvar typeAcquisitionDeclaration = {\n name: \"typeAcquisition\",\n type: \"object\",\n elementOptions: getCommandLineTypeAcquisitionMap(),\n extraKeyDiagnostics: typeAcquisitionDidYouMeanDiagnostics\n};\nvar _tsconfigRootOptions;\nfunction getTsconfigRootOptionsMap() {\n if (_tsconfigRootOptions === void 0) {\n _tsconfigRootOptions = {\n name: void 0,\n // should never be needed since this is root\n type: \"object\",\n elementOptions: commandLineOptionsToMap([\n compilerOptionsDeclaration,\n watchOptionsDeclaration,\n typeAcquisitionDeclaration,\n extendsOptionDeclaration,\n {\n name: \"references\",\n type: \"list\",\n element: {\n name: \"references\",\n type: \"object\"\n },\n category: Diagnostics.Projects\n },\n {\n name: \"files\",\n type: \"list\",\n element: {\n name: \"files\",\n type: \"string\"\n },\n category: Diagnostics.File_Management\n },\n {\n name: \"include\",\n type: \"list\",\n element: {\n name: \"include\",\n type: \"string\"\n },\n category: Diagnostics.File_Management,\n defaultValueDescription: Diagnostics.if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk\n },\n {\n name: \"exclude\",\n type: \"list\",\n element: {\n name: \"exclude\",\n type: \"string\"\n },\n category: Diagnostics.File_Management,\n defaultValueDescription: Diagnostics.node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified\n },\n compileOnSaveCommandLineOption\n ])\n };\n }\n return _tsconfigRootOptions;\n}\nfunction convertConfigFileToObject(sourceFile, errors, jsonConversionNotifier) {\n var _a;\n const rootExpression = (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression;\n if (rootExpression && rootExpression.kind !== 211 /* ObjectLiteralExpression */) {\n errors.push(createDiagnosticForNodeInSourceFile(\n sourceFile,\n rootExpression,\n Diagnostics.The_root_value_of_a_0_file_must_be_an_object,\n getBaseFileName(sourceFile.fileName) === \"jsconfig.json\" ? \"jsconfig.json\" : \"tsconfig.json\"\n ));\n if (isArrayLiteralExpression(rootExpression)) {\n const firstObject = find(rootExpression.elements, isObjectLiteralExpression);\n if (firstObject) {\n return convertToJson(\n sourceFile,\n firstObject,\n errors,\n /*returnValue*/\n true,\n jsonConversionNotifier\n );\n }\n }\n return {};\n }\n return convertToJson(\n sourceFile,\n rootExpression,\n errors,\n /*returnValue*/\n true,\n jsonConversionNotifier\n );\n}\nfunction convertToObject(sourceFile, errors) {\n var _a;\n return convertToJson(\n sourceFile,\n (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression,\n errors,\n /*returnValue*/\n true,\n /*jsonConversionNotifier*/\n void 0\n );\n}\nfunction convertToJson(sourceFile, rootExpression, errors, returnValue, jsonConversionNotifier) {\n if (!rootExpression) {\n return returnValue ? {} : void 0;\n }\n return convertPropertyValueToJson(rootExpression, jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.rootOptions);\n function convertObjectLiteralExpressionToJson(node, objectOption) {\n var _a;\n const result = returnValue ? {} : void 0;\n for (const element of node.properties) {\n if (element.kind !== 304 /* PropertyAssignment */) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element, Diagnostics.Property_assignment_expected));\n continue;\n }\n if (element.questionToken) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.questionToken, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, \"?\"));\n }\n if (!isDoubleQuotedString(element.name)) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.name, Diagnostics.String_literal_with_double_quotes_expected));\n }\n const textOfKey = isComputedNonLiteralName(element.name) ? void 0 : getTextOfPropertyName(element.name);\n const keyText = textOfKey && unescapeLeadingUnderscores(textOfKey);\n const option = keyText ? (_a = objectOption == null ? void 0 : objectOption.elementOptions) == null ? void 0 : _a.get(keyText) : void 0;\n const value = convertPropertyValueToJson(element.initializer, option);\n if (typeof keyText !== \"undefined\") {\n if (returnValue) {\n result[keyText] = value;\n }\n jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.onPropertySet(keyText, value, element, objectOption, option);\n }\n }\n return result;\n }\n function convertArrayLiteralExpressionToJson(elements, elementOption) {\n if (!returnValue) {\n elements.forEach((element) => convertPropertyValueToJson(element, elementOption));\n return void 0;\n }\n return filter(elements.map((element) => convertPropertyValueToJson(element, elementOption)), (v) => v !== void 0);\n }\n function convertPropertyValueToJson(valueExpression, option) {\n switch (valueExpression.kind) {\n case 112 /* TrueKeyword */:\n return true;\n case 97 /* FalseKeyword */:\n return false;\n case 106 /* NullKeyword */:\n return null;\n // eslint-disable-line no-restricted-syntax\n case 11 /* StringLiteral */:\n if (!isDoubleQuotedString(valueExpression)) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.String_literal_with_double_quotes_expected));\n }\n return valueExpression.text;\n case 9 /* NumericLiteral */:\n return Number(valueExpression.text);\n case 225 /* PrefixUnaryExpression */:\n if (valueExpression.operator !== 41 /* MinusToken */ || valueExpression.operand.kind !== 9 /* NumericLiteral */) {\n break;\n }\n return -Number(valueExpression.operand.text);\n case 211 /* ObjectLiteralExpression */:\n const objectLiteralExpression = valueExpression;\n return convertObjectLiteralExpressionToJson(objectLiteralExpression, option);\n case 210 /* ArrayLiteralExpression */:\n return convertArrayLiteralExpressionToJson(\n valueExpression.elements,\n option && option.element\n );\n }\n if (option) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, option.name, getCompilerOptionValueTypeString(option)));\n } else {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal));\n }\n return void 0;\n }\n function isDoubleQuotedString(node) {\n return isStringLiteral(node) && isStringDoubleQuoted(node, sourceFile);\n }\n}\nfunction getCompilerOptionValueTypeString(option) {\n return option.type === \"listOrElement\" ? `${getCompilerOptionValueTypeString(option.element)} or Array` : option.type === \"list\" ? \"Array\" : isString(option.type) ? option.type : \"string\";\n}\nfunction isCompilerOptionsValue(option, value) {\n if (option) {\n if (isNullOrUndefined(value)) return !option.disallowNullOrUndefined;\n if (option.type === \"list\") {\n return isArray(value);\n }\n if (option.type === \"listOrElement\") {\n return isArray(value) || isCompilerOptionsValue(option.element, value);\n }\n const expectedType = isString(option.type) ? option.type : \"string\";\n return typeof value === expectedType;\n }\n return false;\n}\nfunction convertToTSConfig(configParseResult, configFileName, host) {\n var _a, _b, _c;\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames);\n const files = map(\n filter(\n configParseResult.fileNames,\n !((_b = (_a = configParseResult.options.configFile) == null ? void 0 : _a.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs) ? returnTrue : matchesSpecs(\n configFileName,\n configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs,\n configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs,\n host\n )\n ),\n (f) => getRelativePathFromFile(getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName)\n );\n const pathOptions = { configFilePath: getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames };\n const optionMap = serializeCompilerOptions(configParseResult.options, pathOptions);\n const watchOptionMap = configParseResult.watchOptions && serializeWatchOptions(configParseResult.watchOptions);\n const config = {\n compilerOptions: {\n ...optionMapToObject(optionMap),\n showConfig: void 0,\n configFile: void 0,\n configFilePath: void 0,\n help: void 0,\n init: void 0,\n listFiles: void 0,\n listEmittedFiles: void 0,\n project: void 0,\n build: void 0,\n version: void 0\n },\n watchOptions: watchOptionMap && optionMapToObject(watchOptionMap),\n references: map(configParseResult.projectReferences, (r) => ({ ...r, path: r.originalPath ? r.originalPath : \"\", originalPath: void 0 })),\n files: length(files) ? files : void 0,\n ...((_c = configParseResult.options.configFile) == null ? void 0 : _c.configFileSpecs) ? {\n include: filterSameAsDefaultInclude(configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs),\n exclude: configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs\n } : {},\n compileOnSave: !!configParseResult.compileOnSave ? true : void 0\n };\n const providedKeys = new Set(optionMap.keys());\n const impliedCompilerOptions = {};\n for (const option in computedOptions) {\n if (!providedKeys.has(option) && optionDependsOn(option, providedKeys)) {\n const implied = computedOptions[option].computeValue(configParseResult.options);\n const defaultValue = computedOptions[option].computeValue({});\n if (implied !== defaultValue) {\n impliedCompilerOptions[option] = computedOptions[option].computeValue(configParseResult.options);\n }\n }\n }\n assign(config.compilerOptions, optionMapToObject(serializeCompilerOptions(impliedCompilerOptions, pathOptions)));\n return config;\n}\nfunction optionDependsOn(option, dependsOn) {\n const seen = /* @__PURE__ */ new Set();\n return optionDependsOnRecursive(option);\n function optionDependsOnRecursive(option2) {\n var _a;\n if (addToSeen(seen, option2)) {\n return some((_a = computedOptions[option2]) == null ? void 0 : _a.dependencies, (dep) => dependsOn.has(dep) || optionDependsOnRecursive(dep));\n }\n return false;\n }\n}\nfunction optionMapToObject(optionMap) {\n return Object.fromEntries(optionMap);\n}\nfunction filterSameAsDefaultInclude(specs) {\n if (!length(specs)) return void 0;\n if (length(specs) !== 1) return specs;\n if (specs[0] === defaultIncludeSpec) return void 0;\n return specs;\n}\nfunction matchesSpecs(path, includeSpecs, excludeSpecs, host) {\n if (!includeSpecs) return returnTrue;\n const patterns = getFileMatcherPatterns(path, excludeSpecs, includeSpecs, host.useCaseSensitiveFileNames, host.getCurrentDirectory());\n const excludeRe = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, host.useCaseSensitiveFileNames);\n const includeRe = patterns.includeFilePattern && getRegexFromPattern(patterns.includeFilePattern, host.useCaseSensitiveFileNames);\n if (includeRe) {\n if (excludeRe) {\n return (path2) => !(includeRe.test(path2) && !excludeRe.test(path2));\n }\n return (path2) => !includeRe.test(path2);\n }\n if (excludeRe) {\n return (path2) => excludeRe.test(path2);\n }\n return returnTrue;\n}\nfunction getCustomTypeMapOfCommandLineOption(optionDefinition) {\n switch (optionDefinition.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"object\":\n return void 0;\n case \"list\":\n case \"listOrElement\":\n return getCustomTypeMapOfCommandLineOption(optionDefinition.element);\n default:\n return optionDefinition.type;\n }\n}\nfunction getNameOfCompilerOptionValue(value, customTypeMap) {\n return forEachEntry(customTypeMap, (mapValue, key) => {\n if (mapValue === value) {\n return key;\n }\n });\n}\nfunction serializeCompilerOptions(options, pathOptions) {\n return serializeOptionBaseObject(options, getOptionsNameMap(), pathOptions);\n}\nfunction serializeWatchOptions(options) {\n return serializeOptionBaseObject(options, getWatchOptionsNameMap());\n}\nfunction serializeOptionBaseObject(options, { optionsNameMap }, pathOptions) {\n const result = /* @__PURE__ */ new Map();\n const getCanonicalFileName = pathOptions && createGetCanonicalFileName(pathOptions.useCaseSensitiveFileNames);\n for (const name in options) {\n if (hasProperty(options, name)) {\n if (optionsNameMap.has(name) && (optionsNameMap.get(name).category === Diagnostics.Command_line_Options || optionsNameMap.get(name).category === Diagnostics.Output_Formatting)) {\n continue;\n }\n const value = options[name];\n const optionDefinition = optionsNameMap.get(name.toLowerCase());\n if (optionDefinition) {\n Debug.assert(optionDefinition.type !== \"listOrElement\");\n const customTypeMap = getCustomTypeMapOfCommandLineOption(optionDefinition);\n if (!customTypeMap) {\n if (pathOptions && optionDefinition.isFilePath) {\n result.set(name, getRelativePathFromFile(pathOptions.configFilePath, getNormalizedAbsolutePath(value, getDirectoryPath(pathOptions.configFilePath)), getCanonicalFileName));\n } else if (pathOptions && optionDefinition.type === \"list\" && optionDefinition.element.isFilePath) {\n result.set(name, value.map((v) => getRelativePathFromFile(pathOptions.configFilePath, getNormalizedAbsolutePath(v, getDirectoryPath(pathOptions.configFilePath)), getCanonicalFileName)));\n } else {\n result.set(name, value);\n }\n } else {\n if (optionDefinition.type === \"list\") {\n result.set(name, value.map((element) => getNameOfCompilerOptionValue(element, customTypeMap)));\n } else {\n result.set(name, getNameOfCompilerOptionValue(value, customTypeMap));\n }\n }\n }\n }\n }\n return result;\n}\nfunction generateTSConfig(options, newLine) {\n const tab = \" \";\n const result = [];\n const allSetOptions = Object.keys(options).filter((k) => k !== \"init\" && k !== \"help\" && k !== \"watch\");\n result.push(`{`);\n result.push(`${tab}// ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)}`);\n result.push(`${tab}\"compilerOptions\": {`);\n emitHeader(Diagnostics.File_Layout);\n emitOption(\"rootDir\", \"./src\", \"optional\");\n emitOption(\"outDir\", \"./dist\", \"optional\");\n newline();\n emitHeader(Diagnostics.Environment_Settings);\n emitHeader(Diagnostics.See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule);\n emitOption(\"module\", 199 /* NodeNext */);\n emitOption(\"target\", 99 /* ESNext */);\n emitOption(\"types\", []);\n if (options.lib) {\n emitOption(\"lib\", options.lib);\n }\n emitHeader(Diagnostics.For_nodejs_Colon);\n result.push(`${tab}${tab}// \"lib\": [\"esnext\"],`);\n result.push(`${tab}${tab}// \"types\": [\"node\"],`);\n emitHeader(Diagnostics.and_npm_install_D_types_Slashnode);\n newline();\n emitHeader(Diagnostics.Other_Outputs);\n emitOption(\n \"sourceMap\",\n /*defaultValue*/\n true\n );\n emitOption(\n \"declaration\",\n /*defaultValue*/\n true\n );\n emitOption(\n \"declarationMap\",\n /*defaultValue*/\n true\n );\n newline();\n emitHeader(Diagnostics.Stricter_Typechecking_Options);\n emitOption(\n \"noUncheckedIndexedAccess\",\n /*defaultValue*/\n true\n );\n emitOption(\n \"exactOptionalPropertyTypes\",\n /*defaultValue*/\n true\n );\n newline();\n emitHeader(Diagnostics.Style_Options);\n emitOption(\n \"noImplicitReturns\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n emitOption(\n \"noImplicitOverride\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n emitOption(\n \"noUnusedLocals\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n emitOption(\n \"noUnusedParameters\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n emitOption(\n \"noFallthroughCasesInSwitch\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n emitOption(\n \"noPropertyAccessFromIndexSignature\",\n /*defaultValue*/\n true,\n \"optional\"\n );\n newline();\n emitHeader(Diagnostics.Recommended_Options);\n emitOption(\n \"strict\",\n /*defaultValue*/\n true\n );\n emitOption(\"jsx\", 4 /* ReactJSX */);\n emitOption(\n \"verbatimModuleSyntax\",\n /*defaultValue*/\n true\n );\n emitOption(\n \"isolatedModules\",\n /*defaultValue*/\n true\n );\n emitOption(\n \"noUncheckedSideEffectImports\",\n /*defaultValue*/\n true\n );\n emitOption(\"moduleDetection\", 3 /* Force */);\n emitOption(\n \"skipLibCheck\",\n /*defaultValue*/\n true\n );\n if (allSetOptions.length > 0) {\n newline();\n while (allSetOptions.length > 0) {\n emitOption(allSetOptions[0], options[allSetOptions[0]]);\n }\n }\n function newline() {\n result.push(\"\");\n }\n function emitHeader(header) {\n result.push(`${tab}${tab}// ${getLocaleSpecificMessage(header)}`);\n }\n function emitOption(setting, defaultValue, commented = \"never\") {\n const existingOptionIndex = allSetOptions.indexOf(setting);\n if (existingOptionIndex >= 0) {\n allSetOptions.splice(existingOptionIndex, 1);\n }\n let comment;\n if (commented === \"always\") {\n comment = true;\n } else if (commented === \"never\") {\n comment = false;\n } else {\n comment = !hasProperty(options, setting);\n }\n const value = options[setting] ?? defaultValue;\n if (comment) {\n result.push(`${tab}${tab}// \"${setting}\": ${formatValueOrArray(setting, value)},`);\n } else {\n result.push(`${tab}${tab}\"${setting}\": ${formatValueOrArray(setting, value)},`);\n }\n }\n function formatValueOrArray(settingName, value) {\n const option = optionDeclarations.filter((c) => c.name === settingName)[0];\n if (!option) Debug.fail(`No option named ${settingName}?`);\n const map2 = option.type instanceof Map ? option.type : void 0;\n if (isArray(value)) {\n const map3 = \"element\" in option && option.element.type instanceof Map ? option.element.type : void 0;\n return `[${value.map((v) => formatSingleValue(v, map3)).join(\", \")}]`;\n } else {\n return formatSingleValue(value, map2);\n }\n }\n function formatSingleValue(value, map2) {\n if (map2) {\n value = getNameOfCompilerOptionValue(value, map2) ?? Debug.fail(`No matching value of ${value}`);\n }\n return JSON.stringify(value);\n }\n result.push(`${tab}}`);\n result.push(`}`);\n result.push(``);\n return result.join(newLine);\n}\nfunction convertToOptionsWithAbsolutePaths(options, toAbsolutePath) {\n const result = {};\n const optionsNameMap = getOptionsNameMap().optionsNameMap;\n for (const name in options) {\n if (hasProperty(options, name)) {\n result[name] = convertToOptionValueWithAbsolutePaths(\n optionsNameMap.get(name.toLowerCase()),\n options[name],\n toAbsolutePath\n );\n }\n }\n if (result.configFilePath) {\n result.configFilePath = toAbsolutePath(result.configFilePath);\n }\n return result;\n}\nfunction convertToOptionValueWithAbsolutePaths(option, value, toAbsolutePath) {\n if (option && !isNullOrUndefined(value)) {\n if (option.type === \"list\") {\n const values = value;\n if (option.element.isFilePath && values.length) {\n return values.map(toAbsolutePath);\n }\n } else if (option.isFilePath) {\n return toAbsolutePath(value);\n }\n Debug.assert(option.type !== \"listOrElement\");\n }\n return value;\n}\nfunction parseJsonConfigFileContent(json, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) {\n return parseJsonConfigFileContentWorker(\n json,\n /*sourceFile*/\n void 0,\n host,\n basePath,\n existingOptions,\n existingWatchOptions,\n configFileName,\n resolutionStack,\n extraFileExtensions,\n extendedConfigCache\n );\n}\nfunction parseJsonSourceFileConfigFileContent(sourceFile, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Parse, \"parseJsonSourceFileConfigFileContent\", { path: sourceFile.fileName });\n const result = parseJsonConfigFileContentWorker(\n /*json*/\n void 0,\n sourceFile,\n host,\n basePath,\n existingOptions,\n existingWatchOptions,\n configFileName,\n resolutionStack,\n extraFileExtensions,\n extendedConfigCache\n );\n (_b = tracing) == null ? void 0 : _b.pop();\n return result;\n}\nfunction setConfigFileInOptions(options, configFile) {\n if (configFile) {\n Object.defineProperty(options, \"configFile\", { enumerable: false, writable: false, value: configFile });\n }\n}\nfunction isNullOrUndefined(x) {\n return x === void 0 || x === null;\n}\nfunction directoryOfCombinedPath(fileName, basePath) {\n return getDirectoryPath(getNormalizedAbsolutePath(fileName, basePath));\n}\nvar defaultIncludeSpec = \"**/*\";\nfunction parseJsonConfigFileContentWorker(json, sourceFile, host, basePath, existingOptions = {}, existingWatchOptions, configFileName, resolutionStack = [], extraFileExtensions = [], extendedConfigCache) {\n Debug.assert(json === void 0 && sourceFile !== void 0 || json !== void 0 && sourceFile === void 0);\n const errors = [];\n const parsedConfig = parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache);\n const { raw } = parsedConfig;\n const options = handleOptionConfigDirTemplateSubstitution(\n extend(existingOptions, parsedConfig.options || {}),\n configDirTemplateSubstitutionOptions,\n basePath\n );\n const watchOptions = handleWatchOptionsConfigDirTemplateSubstitution(\n existingWatchOptions && parsedConfig.watchOptions ? extend(existingWatchOptions, parsedConfig.watchOptions) : parsedConfig.watchOptions || existingWatchOptions,\n basePath\n );\n options.configFilePath = configFileName && normalizeSlashes(configFileName);\n const basePathForFileNames = normalizePath(configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath);\n const configFileSpecs = getConfigFileSpecs();\n if (sourceFile) sourceFile.configFileSpecs = configFileSpecs;\n setConfigFileInOptions(options, sourceFile);\n return {\n options,\n watchOptions,\n fileNames: getFileNames(basePathForFileNames),\n projectReferences: getProjectReferences(basePathForFileNames),\n typeAcquisition: parsedConfig.typeAcquisition || getDefaultTypeAcquisition(),\n raw,\n errors,\n // Wildcard directories (provided as part of a wildcard path) are stored in a\n // file map that marks whether it was a regular wildcard match (with a `*` or `?` token),\n // or a recursive directory. This information is used by filesystem watchers to monitor for\n // new entries in these paths.\n wildcardDirectories: getWildcardDirectories(configFileSpecs, basePathForFileNames, host.useCaseSensitiveFileNames),\n compileOnSave: !!raw.compileOnSave\n };\n function getConfigFileSpecs() {\n const referencesOfRaw = getPropFromRaw(\"references\", (element) => typeof element === \"object\", \"object\");\n const filesSpecs = toPropValue(getSpecsFromRaw(\"files\"));\n if (filesSpecs) {\n const hasZeroOrNoReferences = referencesOfRaw === \"no-prop\" || isArray(referencesOfRaw) && referencesOfRaw.length === 0;\n const hasExtends = hasProperty(raw, \"extends\");\n if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {\n if (sourceFile) {\n const fileName = configFileName || \"tsconfig.json\";\n const diagnosticMessage = Diagnostics.The_files_list_in_config_file_0_is_empty;\n const nodeValue = forEachTsConfigPropArray(sourceFile, \"files\", (property) => property.initializer);\n const error2 = createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, nodeValue, diagnosticMessage, fileName);\n errors.push(error2);\n } else {\n createCompilerDiagnosticOnlyIfJson(Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || \"tsconfig.json\");\n }\n }\n }\n let includeSpecs = toPropValue(getSpecsFromRaw(\"include\"));\n const excludeOfRaw = getSpecsFromRaw(\"exclude\");\n let isDefaultIncludeSpec = false;\n let excludeSpecs = toPropValue(excludeOfRaw);\n if (excludeOfRaw === \"no-prop\") {\n const outDir = options.outDir;\n const declarationDir = options.declarationDir;\n if (outDir || declarationDir) {\n excludeSpecs = filter([outDir, declarationDir], (d) => !!d);\n }\n }\n if (filesSpecs === void 0 && includeSpecs === void 0) {\n includeSpecs = [defaultIncludeSpec];\n isDefaultIncludeSpec = true;\n }\n let validatedIncludeSpecsBeforeSubstitution, validatedExcludeSpecsBeforeSubstitution;\n let validatedIncludeSpecs, validatedExcludeSpecs;\n if (includeSpecs) {\n validatedIncludeSpecsBeforeSubstitution = validateSpecs(\n includeSpecs,\n errors,\n /*disallowTrailingRecursion*/\n true,\n sourceFile,\n \"include\"\n );\n validatedIncludeSpecs = getSubstitutedStringArrayWithConfigDirTemplate(\n validatedIncludeSpecsBeforeSubstitution,\n basePathForFileNames\n ) || validatedIncludeSpecsBeforeSubstitution;\n }\n if (excludeSpecs) {\n validatedExcludeSpecsBeforeSubstitution = validateSpecs(\n excludeSpecs,\n errors,\n /*disallowTrailingRecursion*/\n false,\n sourceFile,\n \"exclude\"\n );\n validatedExcludeSpecs = getSubstitutedStringArrayWithConfigDirTemplate(\n validatedExcludeSpecsBeforeSubstitution,\n basePathForFileNames\n ) || validatedExcludeSpecsBeforeSubstitution;\n }\n const validatedFilesSpecBeforeSubstitution = filter(filesSpecs, isString);\n const validatedFilesSpec = getSubstitutedStringArrayWithConfigDirTemplate(\n validatedFilesSpecBeforeSubstitution,\n basePathForFileNames\n ) || validatedFilesSpecBeforeSubstitution;\n return {\n filesSpecs,\n includeSpecs,\n excludeSpecs,\n validatedFilesSpec,\n validatedIncludeSpecs,\n validatedExcludeSpecs,\n validatedFilesSpecBeforeSubstitution,\n validatedIncludeSpecsBeforeSubstitution,\n validatedExcludeSpecsBeforeSubstitution,\n isDefaultIncludeSpec\n };\n }\n function getFileNames(basePath2) {\n const fileNames = getFileNamesFromConfigSpecs(configFileSpecs, basePath2, options, host, extraFileExtensions);\n if (shouldReportNoInputFiles(fileNames, canJsonReportNoInputFiles(raw), resolutionStack)) {\n errors.push(getErrorForNoInputFiles(configFileSpecs, configFileName));\n }\n return fileNames;\n }\n function getProjectReferences(basePath2) {\n let projectReferences;\n const referencesOfRaw = getPropFromRaw(\"references\", (element) => typeof element === \"object\", \"object\");\n if (isArray(referencesOfRaw)) {\n for (const ref of referencesOfRaw) {\n if (typeof ref.path !== \"string\") {\n createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, \"reference.path\", \"string\");\n } else {\n (projectReferences || (projectReferences = [])).push({\n path: getNormalizedAbsolutePath(ref.path, basePath2),\n originalPath: ref.path,\n prepend: ref.prepend,\n circular: ref.circular\n });\n }\n }\n }\n return projectReferences;\n }\n function toPropValue(specResult) {\n return isArray(specResult) ? specResult : void 0;\n }\n function getSpecsFromRaw(prop) {\n return getPropFromRaw(prop, isString, \"string\");\n }\n function getPropFromRaw(prop, validateElement, elementTypeName) {\n if (hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {\n if (isArray(raw[prop])) {\n const result = raw[prop];\n if (!sourceFile && !every(result, validateElement)) {\n errors.push(createCompilerDiagnostic(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));\n }\n return result;\n } else {\n createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, \"Array\");\n return \"not-array\";\n }\n }\n return \"no-prop\";\n }\n function createCompilerDiagnosticOnlyIfJson(message, ...args) {\n if (!sourceFile) {\n errors.push(createCompilerDiagnostic(message, ...args));\n }\n }\n}\nfunction handleWatchOptionsConfigDirTemplateSubstitution(watchOptions, basePath) {\n return handleOptionConfigDirTemplateSubstitution(watchOptions, configDirTemplateSubstitutionWatchOptions, basePath);\n}\nfunction handleOptionConfigDirTemplateSubstitution(options, optionDeclarations2, basePath) {\n if (!options) return options;\n let result;\n for (const option of optionDeclarations2) {\n if (options[option.name] !== void 0) {\n const value = options[option.name];\n switch (option.type) {\n case \"string\":\n Debug.assert(option.isFilePath);\n if (startsWithConfigDirTemplate(value)) {\n setOptionValue(option, getSubstitutedPathWithConfigDirTemplate(value, basePath));\n }\n break;\n case \"list\":\n Debug.assert(option.element.isFilePath);\n const listResult = getSubstitutedStringArrayWithConfigDirTemplate(value, basePath);\n if (listResult) setOptionValue(option, listResult);\n break;\n case \"object\":\n Debug.assert(option.name === \"paths\");\n const objectResult = getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(value, basePath);\n if (objectResult) setOptionValue(option, objectResult);\n break;\n default:\n Debug.fail(\"option type not supported\");\n }\n }\n }\n return result || options;\n function setOptionValue(option, value) {\n (result ?? (result = assign({}, options)))[option.name] = value;\n }\n}\nvar configDirTemplate = `\\${configDir}`;\nfunction startsWithConfigDirTemplate(value) {\n return isString(value) && startsWith(\n value,\n configDirTemplate,\n /*ignoreCase*/\n true\n );\n}\nfunction getSubstitutedPathWithConfigDirTemplate(value, basePath) {\n return getNormalizedAbsolutePath(value.replace(configDirTemplate, \"./\"), basePath);\n}\nfunction getSubstitutedStringArrayWithConfigDirTemplate(list, basePath) {\n if (!list) return list;\n let result;\n list.forEach((element, index) => {\n if (!startsWithConfigDirTemplate(element)) return;\n (result ?? (result = list.slice()))[index] = getSubstitutedPathWithConfigDirTemplate(element, basePath);\n });\n return result;\n}\nfunction getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(mapLike, basePath) {\n let result;\n const ownKeys = getOwnKeys(mapLike);\n ownKeys.forEach((key) => {\n if (!isArray(mapLike[key])) return;\n const subStitution = getSubstitutedStringArrayWithConfigDirTemplate(mapLike[key], basePath);\n if (!subStitution) return;\n (result ?? (result = assign({}, mapLike)))[key] = subStitution;\n });\n return result;\n}\nfunction isErrorNoInputFiles(error2) {\n return error2.code === Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code;\n}\nfunction getErrorForNoInputFiles({ includeSpecs, excludeSpecs }, configFileName) {\n return createCompilerDiagnostic(\n Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2,\n configFileName || \"tsconfig.json\",\n JSON.stringify(includeSpecs || []),\n JSON.stringify(excludeSpecs || [])\n );\n}\nfunction shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles, resolutionStack) {\n return fileNames.length === 0 && canJsonReportNoInutFiles && (!resolutionStack || resolutionStack.length === 0);\n}\nfunction isSolutionConfig(config) {\n return !config.fileNames.length && hasProperty(config.raw, \"references\");\n}\nfunction canJsonReportNoInputFiles(raw) {\n return !hasProperty(raw, \"files\") && !hasProperty(raw, \"references\");\n}\nfunction updateErrorForNoInputFiles(fileNames, configFileName, configFileSpecs, configParseDiagnostics, canJsonReportNoInutFiles) {\n const existingErrors = configParseDiagnostics.length;\n if (shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles)) {\n configParseDiagnostics.push(getErrorForNoInputFiles(configFileSpecs, configFileName));\n } else {\n filterMutate(configParseDiagnostics, (error2) => !isErrorNoInputFiles(error2));\n }\n return existingErrors !== configParseDiagnostics.length;\n}\nfunction isSuccessfulParsedTsconfig(value) {\n return !!value.options;\n}\nfunction parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache) {\n var _a;\n basePath = normalizeSlashes(basePath);\n const resolvedPath = getNormalizedAbsolutePath(configFileName || \"\", basePath);\n if (resolutionStack.includes(resolvedPath)) {\n errors.push(createCompilerDiagnostic(Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0, [...resolutionStack, resolvedPath].join(\" -> \")));\n return { raw: json || convertToObject(sourceFile, errors) };\n }\n const ownConfig = json ? parseOwnConfigOfJson(json, host, basePath, configFileName, errors) : parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors);\n if ((_a = ownConfig.options) == null ? void 0 : _a.paths) {\n ownConfig.options.pathsBasePath = basePath;\n }\n if (ownConfig.extendedConfigPath) {\n resolutionStack = resolutionStack.concat([resolvedPath]);\n const result = { options: {} };\n if (isString(ownConfig.extendedConfigPath)) {\n applyExtendedConfig(result, ownConfig.extendedConfigPath);\n } else {\n ownConfig.extendedConfigPath.forEach((extendedConfigPath) => applyExtendedConfig(result, extendedConfigPath));\n }\n if (result.include) ownConfig.raw.include = result.include;\n if (result.exclude) ownConfig.raw.exclude = result.exclude;\n if (result.files) ownConfig.raw.files = result.files;\n if (ownConfig.raw.compileOnSave === void 0 && result.compileOnSave) ownConfig.raw.compileOnSave = result.compileOnSave;\n if (sourceFile && result.extendedSourceFiles) sourceFile.extendedSourceFiles = arrayFrom(result.extendedSourceFiles.keys());\n ownConfig.options = assign(result.options, ownConfig.options);\n ownConfig.watchOptions = ownConfig.watchOptions && result.watchOptions ? assignWatchOptions(result, ownConfig.watchOptions) : ownConfig.watchOptions || result.watchOptions;\n }\n return ownConfig;\n function applyExtendedConfig(result, extendedConfigPath) {\n const extendedConfig = getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result);\n if (extendedConfig && isSuccessfulParsedTsconfig(extendedConfig)) {\n const extendsRaw = extendedConfig.raw;\n let relativeDifference;\n const setPropertyInResultIfNotUndefined = (propertyName) => {\n if (ownConfig.raw[propertyName]) return;\n if (extendsRaw[propertyName]) {\n result[propertyName] = map(extendsRaw[propertyName], (path) => startsWithConfigDirTemplate(path) || isRootedDiskPath(path) ? path : combinePaths(\n relativeDifference || (relativeDifference = convertToRelativePath(getDirectoryPath(extendedConfigPath), basePath, createGetCanonicalFileName(host.useCaseSensitiveFileNames))),\n path\n ));\n }\n };\n setPropertyInResultIfNotUndefined(\"include\");\n setPropertyInResultIfNotUndefined(\"exclude\");\n setPropertyInResultIfNotUndefined(\"files\");\n if (extendsRaw.compileOnSave !== void 0) {\n result.compileOnSave = extendsRaw.compileOnSave;\n }\n assign(result.options, extendedConfig.options);\n result.watchOptions = result.watchOptions && extendedConfig.watchOptions ? assignWatchOptions(result, extendedConfig.watchOptions) : result.watchOptions || extendedConfig.watchOptions;\n }\n }\n function assignWatchOptions(result, watchOptions) {\n if (result.watchOptionsCopied) return assign(result.watchOptions, watchOptions);\n result.watchOptionsCopied = true;\n return assign({}, result.watchOptions, watchOptions);\n }\n}\nfunction parseOwnConfigOfJson(json, host, basePath, configFileName, errors) {\n if (hasProperty(json, \"excludes\")) {\n errors.push(createCompilerDiagnostic(Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));\n }\n const options = convertCompilerOptionsFromJsonWorker(json.compilerOptions, basePath, errors, configFileName);\n const typeAcquisition = convertTypeAcquisitionFromJsonWorker(json.typeAcquisition, basePath, errors, configFileName);\n const watchOptions = convertWatchOptionsFromJsonWorker(json.watchOptions, basePath, errors);\n json.compileOnSave = convertCompileOnSaveOptionFromJson(json, basePath, errors);\n const extendedConfigPath = json.extends || json.extends === \"\" ? getExtendsConfigPathOrArray(json.extends, host, basePath, configFileName, errors) : void 0;\n return { raw: json, options, watchOptions, typeAcquisition, extendedConfigPath };\n}\nfunction getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, valueExpression, sourceFile) {\n let extendedConfigPath;\n const newBase = configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath;\n if (isString(value)) {\n extendedConfigPath = getExtendsConfigPath(\n value,\n host,\n newBase,\n errors,\n valueExpression,\n sourceFile\n );\n } else if (isArray(value)) {\n extendedConfigPath = [];\n for (let index = 0; index < value.length; index++) {\n const fileName = value[index];\n if (isString(fileName)) {\n extendedConfigPath = append(\n extendedConfigPath,\n getExtendsConfigPath(\n fileName,\n host,\n newBase,\n errors,\n valueExpression == null ? void 0 : valueExpression.elements[index],\n sourceFile\n )\n );\n } else {\n convertJsonOption(extendsOptionDeclaration.element, value, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile);\n }\n }\n } else {\n convertJsonOption(extendsOptionDeclaration, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n }\n return extendedConfigPath;\n}\nfunction parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors) {\n const options = getDefaultCompilerOptions(configFileName);\n let typeAcquisition;\n let watchOptions;\n let extendedConfigPath;\n let rootCompilerOptions;\n const rootOptions = getTsconfigRootOptionsMap();\n const json = convertConfigFileToObject(\n sourceFile,\n errors,\n { rootOptions, onPropertySet }\n );\n if (!typeAcquisition) {\n typeAcquisition = getDefaultTypeAcquisition(configFileName);\n }\n if (rootCompilerOptions && json && json.compilerOptions === void 0) {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, rootCompilerOptions[0], Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file, getTextOfPropertyName(rootCompilerOptions[0])));\n }\n return { raw: json, options, watchOptions, typeAcquisition, extendedConfigPath };\n function onPropertySet(keyText, value, propertyAssignment, parentOption, option) {\n if (option && option !== extendsOptionDeclaration) value = convertJsonOption(option, value, basePath, errors, propertyAssignment, propertyAssignment.initializer, sourceFile);\n if (parentOption == null ? void 0 : parentOption.name) {\n if (option) {\n let currentOption;\n if (parentOption === compilerOptionsDeclaration) currentOption = options;\n else if (parentOption === watchOptionsDeclaration) currentOption = watchOptions ?? (watchOptions = {});\n else if (parentOption === typeAcquisitionDeclaration) currentOption = typeAcquisition ?? (typeAcquisition = getDefaultTypeAcquisition(configFileName));\n else Debug.fail(\"Unknown option\");\n currentOption[option.name] = value;\n } else if (keyText && (parentOption == null ? void 0 : parentOption.extraKeyDiagnostics)) {\n if (parentOption.elementOptions) {\n errors.push(createUnknownOptionError(\n keyText,\n parentOption.extraKeyDiagnostics,\n /*unknownOptionErrorText*/\n void 0,\n propertyAssignment.name,\n sourceFile\n ));\n } else {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, parentOption.extraKeyDiagnostics.unknownOptionDiagnostic, keyText));\n }\n }\n } else if (parentOption === rootOptions) {\n if (option === extendsOptionDeclaration) {\n extendedConfigPath = getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, propertyAssignment.initializer, sourceFile);\n } else if (!option) {\n if (keyText === \"excludes\") {\n errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));\n }\n if (find(commandOptionsWithoutBuild, (opt) => opt.name === keyText)) {\n rootCompilerOptions = append(rootCompilerOptions, propertyAssignment.name);\n }\n }\n }\n }\n}\nfunction getExtendsConfigPath(extendedConfig, host, basePath, errors, valueExpression, sourceFile) {\n extendedConfig = normalizeSlashes(extendedConfig);\n if (isRootedDiskPath(extendedConfig) || startsWith(extendedConfig, \"./\") || startsWith(extendedConfig, \"../\")) {\n let extendedConfigPath = getNormalizedAbsolutePath(extendedConfig, basePath);\n if (!host.fileExists(extendedConfigPath) && !endsWith(extendedConfigPath, \".json\" /* Json */)) {\n extendedConfigPath = `${extendedConfigPath}.json`;\n if (!host.fileExists(extendedConfigPath)) {\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig));\n return void 0;\n }\n }\n return extendedConfigPath;\n }\n const resolved = nodeNextJsonConfigResolver(extendedConfig, combinePaths(basePath, \"tsconfig.json\"), host);\n if (resolved.resolvedModule) {\n return resolved.resolvedModule.resolvedFileName;\n }\n if (extendedConfig === \"\") {\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_cannot_be_given_an_empty_string, \"extends\"));\n } else {\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig));\n }\n return void 0;\n}\nfunction getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result) {\n const path = host.useCaseSensitiveFileNames ? extendedConfigPath : toFileNameLowerCase(extendedConfigPath);\n let value;\n let extendedResult;\n let extendedConfig;\n if (extendedConfigCache && (value = extendedConfigCache.get(path))) {\n ({ extendedResult, extendedConfig } = value);\n } else {\n extendedResult = readJsonConfigFile(extendedConfigPath, (path2) => host.readFile(path2));\n if (!extendedResult.parseDiagnostics.length) {\n extendedConfig = parseConfig(\n /*json*/\n void 0,\n extendedResult,\n host,\n getDirectoryPath(extendedConfigPath),\n getBaseFileName(extendedConfigPath),\n resolutionStack,\n errors,\n extendedConfigCache\n );\n }\n if (extendedConfigCache) {\n extendedConfigCache.set(path, { extendedResult, extendedConfig });\n }\n }\n if (sourceFile) {\n (result.extendedSourceFiles ?? (result.extendedSourceFiles = /* @__PURE__ */ new Set())).add(extendedResult.fileName);\n if (extendedResult.extendedSourceFiles) {\n for (const extenedSourceFile of extendedResult.extendedSourceFiles) {\n result.extendedSourceFiles.add(extenedSourceFile);\n }\n }\n }\n if (extendedResult.parseDiagnostics.length) {\n errors.push(...extendedResult.parseDiagnostics);\n return void 0;\n }\n return extendedConfig;\n}\nfunction convertCompileOnSaveOptionFromJson(jsonOption, basePath, errors) {\n if (!hasProperty(jsonOption, compileOnSaveCommandLineOption.name)) {\n return false;\n }\n const result = convertJsonOption(compileOnSaveCommandLineOption, jsonOption.compileOnSave, basePath, errors);\n return typeof result === \"boolean\" && result;\n}\nfunction convertCompilerOptionsFromJson(jsonOptions, basePath, configFileName) {\n const errors = [];\n const options = convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName);\n return { options, errors };\n}\nfunction convertTypeAcquisitionFromJson(jsonOptions, basePath, configFileName) {\n const errors = [];\n const options = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName);\n return { options, errors };\n}\nfunction getDefaultCompilerOptions(configFileName) {\n const options = configFileName && getBaseFileName(configFileName) === \"jsconfig.json\" ? { allowJs: true, maxNodeModuleJsDepth: 2, allowSyntheticDefaultImports: true, skipLibCheck: true, noEmit: true } : {};\n return options;\n}\nfunction convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName) {\n const options = getDefaultCompilerOptions(configFileName);\n convertOptionsFromJson(getCommandLineCompilerOptionsMap(), jsonOptions, basePath, options, compilerOptionsDidYouMeanDiagnostics, errors);\n if (configFileName) {\n options.configFilePath = normalizeSlashes(configFileName);\n }\n return options;\n}\nfunction getDefaultTypeAcquisition(configFileName) {\n return { enable: !!configFileName && getBaseFileName(configFileName) === \"jsconfig.json\", include: [], exclude: [] };\n}\nfunction convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName) {\n const options = getDefaultTypeAcquisition(configFileName);\n convertOptionsFromJson(getCommandLineTypeAcquisitionMap(), jsonOptions, basePath, options, typeAcquisitionDidYouMeanDiagnostics, errors);\n return options;\n}\nfunction convertWatchOptionsFromJsonWorker(jsonOptions, basePath, errors) {\n return convertOptionsFromJson(\n getCommandLineWatchOptionsMap(),\n jsonOptions,\n basePath,\n /*defaultOptions*/\n void 0,\n watchOptionsDidYouMeanDiagnostics,\n errors\n );\n}\nfunction convertOptionsFromJson(optionsNameMap, jsonOptions, basePath, defaultOptions, diagnostics, errors) {\n if (!jsonOptions) {\n return;\n }\n for (const id in jsonOptions) {\n const opt = optionsNameMap.get(id);\n if (opt) {\n (defaultOptions || (defaultOptions = {}))[opt.name] = convertJsonOption(opt, jsonOptions[id], basePath, errors);\n } else {\n errors.push(createUnknownOptionError(id, diagnostics));\n }\n }\n return defaultOptions;\n}\nfunction createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, message, ...args) {\n return sourceFile && node ? createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args) : createCompilerDiagnostic(message, ...args);\n}\nfunction convertJsonOption(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) {\n if (opt.isCommandLineOnly) {\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, propertyAssignment == null ? void 0 : propertyAssignment.name, Diagnostics.Option_0_can_only_be_specified_on_command_line, opt.name));\n return void 0;\n }\n if (isCompilerOptionsValue(opt, value)) {\n const optType = opt.type;\n if (optType === \"list\" && isArray(value)) {\n return convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n } else if (optType === \"listOrElement\") {\n return isArray(value) ? convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) : convertJsonOption(opt.element, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n } else if (!isString(opt.type)) {\n return convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile);\n }\n const validatedValue = validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile);\n return isNullOrUndefined(validatedValue) ? validatedValue : normalizeNonListOptionValue(opt, basePath, validatedValue);\n } else {\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, opt.name, getCompilerOptionValueTypeString(opt)));\n }\n}\nfunction normalizeNonListOptionValue(option, basePath, value) {\n if (option.isFilePath) {\n value = normalizeSlashes(value);\n value = !startsWithConfigDirTemplate(value) ? getNormalizedAbsolutePath(value, basePath) : value;\n if (value === \"\") {\n value = \".\";\n }\n }\n return value;\n}\nfunction validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile) {\n var _a;\n if (isNullOrUndefined(value)) return void 0;\n const d = (_a = opt.extraValidation) == null ? void 0 : _a.call(opt, value);\n if (!d) return value;\n errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, ...d));\n return void 0;\n}\nfunction convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile) {\n if (isNullOrUndefined(value)) return void 0;\n const key = value.toLowerCase();\n const val = opt.type.get(key);\n if (val !== void 0) {\n return validateJsonOptionValue(opt, val, errors, valueExpression, sourceFile);\n } else {\n errors.push(createDiagnosticForInvalidCustomType(opt, (message, ...args) => createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, message, ...args)));\n }\n}\nfunction convertJsonOptionOfListType(option, values, basePath, errors, propertyAssignment, valueExpression, sourceFile) {\n return filter(map(values, (v, index) => convertJsonOption(option.element, v, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile)), (v) => option.listPreserveFalsyValues ? true : !!v);\n}\nvar invalidTrailingRecursionPattern = /(?:^|\\/)\\*\\*\\/?$/;\nvar wildcardDirectoryPattern = /^[^*?]*(?=\\/[^/]*[*?])/;\nfunction getFileNamesFromConfigSpecs(configFileSpecs, basePath, options, host, extraFileExtensions = emptyArray) {\n basePath = normalizePath(basePath);\n const keyMapper = createGetCanonicalFileName(host.useCaseSensitiveFileNames);\n const literalFileMap = /* @__PURE__ */ new Map();\n const wildcardFileMap = /* @__PURE__ */ new Map();\n const wildCardJsonFileMap = /* @__PURE__ */ new Map();\n const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = configFileSpecs;\n const supportedExtensions = getSupportedExtensions(options, extraFileExtensions);\n const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);\n if (validatedFilesSpec) {\n for (const fileName of validatedFilesSpec) {\n const file = getNormalizedAbsolutePath(fileName, basePath);\n literalFileMap.set(keyMapper(file), file);\n }\n }\n let jsonOnlyIncludeRegexes;\n if (validatedIncludeSpecs && validatedIncludeSpecs.length > 0) {\n for (const file of host.readDirectory(\n basePath,\n flatten(supportedExtensionsWithJsonIfResolveJsonModule),\n validatedExcludeSpecs,\n validatedIncludeSpecs,\n /*depth*/\n void 0\n )) {\n if (fileExtensionIs(file, \".json\" /* Json */)) {\n if (!jsonOnlyIncludeRegexes) {\n const includes = validatedIncludeSpecs.filter((s) => endsWith(s, \".json\" /* Json */));\n const includeFilePatterns = map(getRegularExpressionsForWildcards(includes, basePath, \"files\"), (pattern) => `^${pattern}$`);\n jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map((pattern) => getRegexFromPattern(pattern, host.useCaseSensitiveFileNames)) : emptyArray;\n }\n const includeIndex = findIndex(jsonOnlyIncludeRegexes, (re) => re.test(file));\n if (includeIndex !== -1) {\n const key2 = keyMapper(file);\n if (!literalFileMap.has(key2) && !wildCardJsonFileMap.has(key2)) {\n wildCardJsonFileMap.set(key2, file);\n }\n }\n continue;\n }\n if (hasFileWithHigherPriorityExtension(file, literalFileMap, wildcardFileMap, supportedExtensions, keyMapper)) {\n continue;\n }\n removeWildcardFilesWithLowerPriorityExtension(file, wildcardFileMap, supportedExtensions, keyMapper);\n const key = keyMapper(file);\n if (!literalFileMap.has(key) && !wildcardFileMap.has(key)) {\n wildcardFileMap.set(key, file);\n }\n }\n }\n const literalFiles = arrayFrom(literalFileMap.values());\n const wildcardFiles = arrayFrom(wildcardFileMap.values());\n return literalFiles.concat(wildcardFiles, arrayFrom(wildCardJsonFileMap.values()));\n}\nfunction isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames2, currentDirectory) {\n const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = spec;\n if (!length(validatedIncludeSpecs) || !length(validatedExcludeSpecs)) return false;\n basePath = normalizePath(basePath);\n const keyMapper = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n if (validatedFilesSpec) {\n for (const fileName of validatedFilesSpec) {\n if (keyMapper(getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck) return false;\n }\n }\n return matchesExcludeWorker(pathToCheck, validatedExcludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath);\n}\nfunction invalidDotDotAfterRecursiveWildcard(s) {\n const wildcardIndex = startsWith(s, \"**/\") ? 0 : s.indexOf(\"/**/\");\n if (wildcardIndex === -1) {\n return false;\n }\n const lastDotIndex = endsWith(s, \"/..\") ? s.length : s.lastIndexOf(\"/../\");\n return lastDotIndex > wildcardIndex;\n}\nfunction matchesExclude(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory) {\n return matchesExcludeWorker(\n pathToCheck,\n filter(excludeSpecs, (spec) => !invalidDotDotAfterRecursiveWildcard(spec)),\n useCaseSensitiveFileNames2,\n currentDirectory\n );\n}\nfunction matchesExcludeWorker(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath) {\n const excludePattern = getRegularExpressionForWildcard(excludeSpecs, combinePaths(normalizePath(currentDirectory), basePath), \"exclude\");\n const excludeRegex = excludePattern && getRegexFromPattern(excludePattern, useCaseSensitiveFileNames2);\n if (!excludeRegex) return false;\n if (excludeRegex.test(pathToCheck)) return true;\n return !hasExtension(pathToCheck) && excludeRegex.test(ensureTrailingDirectorySeparator(pathToCheck));\n}\nfunction validateSpecs(specs, errors, disallowTrailingRecursion, jsonSourceFile, specKey) {\n return specs.filter((spec) => {\n if (!isString(spec)) return false;\n const diag2 = specToDiagnostic(spec, disallowTrailingRecursion);\n if (diag2 !== void 0) {\n errors.push(createDiagnostic(...diag2));\n }\n return diag2 === void 0;\n });\n function createDiagnostic(message, spec) {\n const element = getTsConfigPropArrayElementValue(jsonSourceFile, specKey, spec);\n return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(jsonSourceFile, element, message, spec);\n }\n}\nfunction specToDiagnostic(spec, disallowTrailingRecursion) {\n Debug.assert(typeof spec === \"string\");\n if (disallowTrailingRecursion && invalidTrailingRecursionPattern.test(spec)) {\n return [Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec];\n } else if (invalidDotDotAfterRecursiveWildcard(spec)) {\n return [Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec];\n }\n}\nfunction getWildcardDirectories({ validatedIncludeSpecs: include, validatedExcludeSpecs: exclude }, basePath, useCaseSensitiveFileNames2) {\n const rawExcludeRegex = getRegularExpressionForWildcard(exclude, basePath, \"exclude\");\n const excludeRegex = rawExcludeRegex && new RegExp(rawExcludeRegex, useCaseSensitiveFileNames2 ? \"\" : \"i\");\n const wildcardDirectories = {};\n const wildCardKeyToPath = /* @__PURE__ */ new Map();\n if (include !== void 0) {\n const recursiveKeys = [];\n for (const file of include) {\n const spec = normalizePath(combinePaths(basePath, file));\n if (excludeRegex && excludeRegex.test(spec)) {\n continue;\n }\n const match = getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2);\n if (match) {\n const { key, path, flags } = match;\n const existingPath = wildCardKeyToPath.get(key);\n const existingFlags = existingPath !== void 0 ? wildcardDirectories[existingPath] : void 0;\n if (existingFlags === void 0 || existingFlags < flags) {\n wildcardDirectories[existingPath !== void 0 ? existingPath : path] = flags;\n if (existingPath === void 0) wildCardKeyToPath.set(key, path);\n if (flags === 1 /* Recursive */) {\n recursiveKeys.push(key);\n }\n }\n }\n }\n for (const path in wildcardDirectories) {\n if (hasProperty(wildcardDirectories, path)) {\n for (const recursiveKey of recursiveKeys) {\n const key = toCanonicalKey(path, useCaseSensitiveFileNames2);\n if (key !== recursiveKey && containsPath(recursiveKey, key, basePath, !useCaseSensitiveFileNames2)) {\n delete wildcardDirectories[path];\n }\n }\n }\n }\n }\n return wildcardDirectories;\n}\nfunction toCanonicalKey(path, useCaseSensitiveFileNames2) {\n return useCaseSensitiveFileNames2 ? path : toFileNameLowerCase(path);\n}\nfunction getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2) {\n const match = wildcardDirectoryPattern.exec(spec);\n if (match) {\n const questionWildcardIndex = spec.indexOf(\"?\");\n const starWildcardIndex = spec.indexOf(\"*\");\n const lastDirectorySeperatorIndex = spec.lastIndexOf(directorySeparator);\n return {\n key: toCanonicalKey(match[0], useCaseSensitiveFileNames2),\n path: match[0],\n flags: questionWildcardIndex !== -1 && questionWildcardIndex < lastDirectorySeperatorIndex || starWildcardIndex !== -1 && starWildcardIndex < lastDirectorySeperatorIndex ? 1 /* Recursive */ : 0 /* None */\n };\n }\n if (isImplicitGlob(spec.substring(spec.lastIndexOf(directorySeparator) + 1))) {\n const path = removeTrailingDirectorySeparator(spec);\n return {\n key: toCanonicalKey(path, useCaseSensitiveFileNames2),\n path,\n flags: 1 /* Recursive */\n };\n }\n return void 0;\n}\nfunction hasFileWithHigherPriorityExtension(file, literalFiles, wildcardFiles, extensions, keyMapper) {\n const extensionGroup = forEach(extensions, (group2) => fileExtensionIsOneOf(file, group2) ? group2 : void 0);\n if (!extensionGroup) {\n return false;\n }\n for (const ext of extensionGroup) {\n if (fileExtensionIs(file, ext) && (ext !== \".ts\" /* Ts */ || !fileExtensionIs(file, \".d.ts\" /* Dts */))) {\n return false;\n }\n const higherPriorityPath = keyMapper(changeExtension(file, ext));\n if (literalFiles.has(higherPriorityPath) || wildcardFiles.has(higherPriorityPath)) {\n if (ext === \".d.ts\" /* Dts */ && (fileExtensionIs(file, \".js\" /* Js */) || fileExtensionIs(file, \".jsx\" /* Jsx */))) {\n continue;\n }\n return true;\n }\n }\n return false;\n}\nfunction removeWildcardFilesWithLowerPriorityExtension(file, wildcardFiles, extensions, keyMapper) {\n const extensionGroup = forEach(extensions, (group2) => fileExtensionIsOneOf(file, group2) ? group2 : void 0);\n if (!extensionGroup) {\n return;\n }\n for (let i = extensionGroup.length - 1; i >= 0; i--) {\n const ext = extensionGroup[i];\n if (fileExtensionIs(file, ext)) {\n return;\n }\n const lowerPriorityPath = keyMapper(changeExtension(file, ext));\n wildcardFiles.delete(lowerPriorityPath);\n }\n}\nfunction convertCompilerOptionsForTelemetry(opts) {\n const out = {};\n for (const key in opts) {\n if (hasProperty(opts, key)) {\n const type = getOptionFromName(key);\n if (type !== void 0) {\n out[key] = getOptionValueWithEmptyStrings(opts[key], type);\n }\n }\n }\n return out;\n}\nfunction getOptionValueWithEmptyStrings(value, option) {\n if (value === void 0) return value;\n switch (option.type) {\n case \"object\":\n return \"\";\n case \"string\":\n return \"\";\n case \"number\":\n return typeof value === \"number\" ? value : \"\";\n case \"boolean\":\n return typeof value === \"boolean\" ? value : \"\";\n case \"listOrElement\":\n if (!isArray(value)) return getOptionValueWithEmptyStrings(value, option.element);\n // fall through to list\n case \"list\":\n const elementType = option.element;\n return isArray(value) ? mapDefined(value, (v) => getOptionValueWithEmptyStrings(v, elementType)) : \"\";\n default:\n return forEachEntry(option.type, (optionEnumValue, optionStringValue) => {\n if (optionEnumValue === value) {\n return optionStringValue;\n }\n });\n }\n}\n\n// src/compiler/moduleNameResolver.ts\nfunction trace(host, message, ...args) {\n host.trace(formatMessage(message, ...args));\n}\nfunction isTraceEnabled(compilerOptions, host) {\n return !!compilerOptions.traceResolution && host.trace !== void 0;\n}\nfunction withPackageId(packageInfo, r, state) {\n let packageId;\n if (r && packageInfo) {\n const packageJsonContent = packageInfo.contents.packageJsonContent;\n if (typeof packageJsonContent.name === \"string\" && typeof packageJsonContent.version === \"string\") {\n packageId = {\n name: packageJsonContent.name,\n subModuleName: r.path.slice(packageInfo.packageDirectory.length + directorySeparator.length),\n version: packageJsonContent.version,\n peerDependencies: getPeerDependenciesOfPackageJsonInfo(packageInfo, state)\n };\n }\n }\n return r && { path: r.path, extension: r.ext, packageId, resolvedUsingTsExtension: r.resolvedUsingTsExtension };\n}\nfunction noPackageId(r) {\n return withPackageId(\n /*packageInfo*/\n void 0,\n r,\n /*state*/\n void 0\n );\n}\nfunction removeIgnoredPackageId(r) {\n if (r) {\n Debug.assert(r.packageId === void 0);\n return { path: r.path, ext: r.extension, resolvedUsingTsExtension: r.resolvedUsingTsExtension };\n }\n}\nfunction formatExtensions(extensions) {\n const result = [];\n if (extensions & 1 /* TypeScript */) result.push(\"TypeScript\");\n if (extensions & 2 /* JavaScript */) result.push(\"JavaScript\");\n if (extensions & 4 /* Declaration */) result.push(\"Declaration\");\n if (extensions & 8 /* Json */) result.push(\"JSON\");\n return result.join(\", \");\n}\nfunction extensionsToExtensionsArray(extensions) {\n const result = [];\n if (extensions & 1 /* TypeScript */) result.push(...supportedTSImplementationExtensions);\n if (extensions & 2 /* JavaScript */) result.push(...supportedJSExtensionsFlat);\n if (extensions & 4 /* Declaration */) result.push(...supportedDeclarationExtensions);\n if (extensions & 8 /* Json */) result.push(\".json\" /* Json */);\n return result;\n}\nfunction resolvedTypeScriptOnly(resolved) {\n if (!resolved) {\n return void 0;\n }\n Debug.assert(extensionIsTS(resolved.extension));\n return { fileName: resolved.path, packageId: resolved.packageId };\n}\nfunction createResolvedModuleWithFailedLookupLocationsHandlingSymlink(moduleName, resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, state, cache, alternateResult) {\n if (!state.resultFromCache && !state.compilerOptions.preserveSymlinks && resolved && isExternalLibraryImport && !resolved.originalPath && !isExternalModuleNameRelative(moduleName)) {\n const { resolvedFileName, originalPath } = getOriginalAndResolvedFileName(resolved.path, state.host, state.traceEnabled);\n if (originalPath) resolved = { ...resolved, path: resolvedFileName, originalPath };\n }\n return createResolvedModuleWithFailedLookupLocations(\n resolved,\n isExternalLibraryImport,\n failedLookupLocations,\n affectingLocations,\n diagnostics,\n state.resultFromCache,\n cache,\n alternateResult\n );\n}\nfunction createResolvedModuleWithFailedLookupLocations(resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, resultFromCache, cache, alternateResult) {\n if (resultFromCache) {\n if (!(cache == null ? void 0 : cache.isReadonly)) {\n resultFromCache.failedLookupLocations = updateResolutionField(resultFromCache.failedLookupLocations, failedLookupLocations);\n resultFromCache.affectingLocations = updateResolutionField(resultFromCache.affectingLocations, affectingLocations);\n resultFromCache.resolutionDiagnostics = updateResolutionField(resultFromCache.resolutionDiagnostics, diagnostics);\n return resultFromCache;\n } else {\n return {\n ...resultFromCache,\n failedLookupLocations: initializeResolutionFieldForReadonlyCache(resultFromCache.failedLookupLocations, failedLookupLocations),\n affectingLocations: initializeResolutionFieldForReadonlyCache(resultFromCache.affectingLocations, affectingLocations),\n resolutionDiagnostics: initializeResolutionFieldForReadonlyCache(resultFromCache.resolutionDiagnostics, diagnostics)\n };\n }\n }\n return {\n resolvedModule: resolved && {\n resolvedFileName: resolved.path,\n originalPath: resolved.originalPath === true ? void 0 : resolved.originalPath,\n extension: resolved.extension,\n isExternalLibraryImport,\n packageId: resolved.packageId,\n resolvedUsingTsExtension: !!resolved.resolvedUsingTsExtension\n },\n failedLookupLocations: initializeResolutionField(failedLookupLocations),\n affectingLocations: initializeResolutionField(affectingLocations),\n resolutionDiagnostics: initializeResolutionField(diagnostics),\n alternateResult\n };\n}\nfunction initializeResolutionField(value) {\n return value.length ? value : void 0;\n}\nfunction updateResolutionField(to, value) {\n if (!(value == null ? void 0 : value.length)) return to;\n if (!(to == null ? void 0 : to.length)) return value;\n to.push(...value);\n return to;\n}\nfunction initializeResolutionFieldForReadonlyCache(fromCache, value) {\n if (!(fromCache == null ? void 0 : fromCache.length)) return initializeResolutionField(value);\n if (!value.length) return fromCache.slice();\n return [...fromCache, ...value];\n}\nfunction readPackageJsonField(jsonContent, fieldName, typeOfTag, state) {\n if (!hasProperty(jsonContent, fieldName)) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_does_not_have_a_0_field, fieldName);\n }\n return;\n }\n const value = jsonContent[fieldName];\n if (typeof value !== typeOfTag || value === null) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, fieldName, typeOfTag, value === null ? \"null\" : typeof value);\n }\n return;\n }\n return value;\n}\nfunction readPackageJsonPathField(jsonContent, fieldName, baseDirectory, state) {\n const fileName = readPackageJsonField(jsonContent, fieldName, \"string\", state);\n if (fileName === void 0) {\n return;\n }\n if (!fileName) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_had_a_falsy_0_field, fieldName);\n }\n return;\n }\n const path = normalizePath(combinePaths(baseDirectory, fileName));\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_has_0_field_1_that_references_2, fieldName, fileName, path);\n }\n return path;\n}\nfunction readPackageJsonTypesFields(jsonContent, baseDirectory, state) {\n return readPackageJsonPathField(jsonContent, \"typings\", baseDirectory, state) || readPackageJsonPathField(jsonContent, \"types\", baseDirectory, state);\n}\nfunction readPackageJsonTSConfigField(jsonContent, baseDirectory, state) {\n return readPackageJsonPathField(jsonContent, \"tsconfig\", baseDirectory, state);\n}\nfunction readPackageJsonMainField(jsonContent, baseDirectory, state) {\n return readPackageJsonPathField(jsonContent, \"main\", baseDirectory, state);\n}\nfunction readPackageJsonTypesVersionsField(jsonContent, state) {\n const typesVersions = readPackageJsonField(jsonContent, \"typesVersions\", \"object\", state);\n if (typesVersions === void 0) return;\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings);\n }\n return typesVersions;\n}\nfunction readPackageJsonTypesVersionPaths(jsonContent, state) {\n const typesVersions = readPackageJsonTypesVersionsField(jsonContent, state);\n if (typesVersions === void 0) return;\n if (state.traceEnabled) {\n for (const key in typesVersions) {\n if (hasProperty(typesVersions, key) && !VersionRange.tryParse(key)) {\n trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range, key);\n }\n }\n }\n const result = getPackageJsonTypesVersionsPaths(typesVersions);\n if (!result) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0, versionMajorMinor);\n }\n return;\n }\n const { version: bestVersionKey, paths: bestVersionPaths } = result;\n if (typeof bestVersionPaths !== \"object\") {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, `typesVersions['${bestVersionKey}']`, \"object\", typeof bestVersionPaths);\n }\n return;\n }\n return result;\n}\nvar typeScriptVersion;\nfunction getPackageJsonTypesVersionsPaths(typesVersions) {\n if (!typeScriptVersion) typeScriptVersion = new Version(version);\n for (const key in typesVersions) {\n if (!hasProperty(typesVersions, key)) continue;\n const keyRange = VersionRange.tryParse(key);\n if (keyRange === void 0) {\n continue;\n }\n if (keyRange.test(typeScriptVersion)) {\n return { version: key, paths: typesVersions[key] };\n }\n }\n}\nfunction getEffectiveTypeRoots(options, host) {\n if (options.typeRoots) {\n return options.typeRoots;\n }\n let currentDirectory;\n if (options.configFilePath) {\n currentDirectory = getDirectoryPath(options.configFilePath);\n } else if (host.getCurrentDirectory) {\n currentDirectory = host.getCurrentDirectory();\n }\n if (currentDirectory !== void 0) {\n return getDefaultTypeRoots(currentDirectory);\n }\n}\nfunction getDefaultTypeRoots(currentDirectory) {\n let typeRoots;\n forEachAncestorDirectory(normalizePath(currentDirectory), (directory) => {\n const atTypes = combinePaths(directory, nodeModulesAtTypes);\n (typeRoots ?? (typeRoots = [])).push(atTypes);\n });\n return typeRoots;\n}\nvar nodeModulesAtTypes = combinePaths(\"node_modules\", \"@types\");\nfunction arePathsEqual(path1, path2, host) {\n const useCaseSensitiveFileNames2 = typeof host.useCaseSensitiveFileNames === \"function\" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames;\n return comparePaths(path1, path2, !useCaseSensitiveFileNames2) === 0 /* EqualTo */;\n}\nfunction getOriginalAndResolvedFileName(fileName, host, traceEnabled) {\n const resolvedFileName = realPath(fileName, host, traceEnabled);\n const pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);\n return {\n // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames\n resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,\n originalPath: pathsAreEqual ? void 0 : fileName\n };\n}\nfunction getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState) {\n const nameForLookup = endsWith(typeRoot, \"/node_modules/@types\") || endsWith(typeRoot, \"/node_modules/@types/\") ? mangleScopedPackageNameWithTrace(typeReferenceDirectiveName, moduleResolutionState) : typeReferenceDirectiveName;\n return combinePaths(typeRoot, nameForLookup);\n}\nfunction resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFile, options, host, redirectedReference, cache, resolutionMode) {\n Debug.assert(typeof typeReferenceDirectiveName === \"string\", \"Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.\");\n const traceEnabled = isTraceEnabled(options, host);\n if (redirectedReference) {\n options = redirectedReference.commandLine.options;\n }\n const containingDirectory = containingFile ? getDirectoryPath(containingFile) : void 0;\n let result = containingDirectory ? cache == null ? void 0 : cache.getFromDirectoryCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference) : void 0;\n if (!result && containingDirectory && !isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n result = cache == null ? void 0 : cache.getFromNonRelativeNameCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference);\n }\n if (result) {\n if (traceEnabled) {\n trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1, typeReferenceDirectiveName, containingFile);\n if (redirectedReference) trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n trace(host, Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, typeReferenceDirectiveName, containingDirectory);\n traceResult(result);\n }\n return result;\n }\n const typeRoots = getEffectiveTypeRoots(options, host);\n if (traceEnabled) {\n if (containingFile === void 0) {\n if (typeRoots === void 0) {\n trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set, typeReferenceDirectiveName);\n } else {\n trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1, typeReferenceDirectiveName, typeRoots);\n }\n } else {\n if (typeRoots === void 0) {\n trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set, typeReferenceDirectiveName, containingFile);\n } else {\n trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, typeReferenceDirectiveName, containingFile, typeRoots);\n }\n }\n if (redirectedReference) {\n trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n }\n }\n const failedLookupLocations = [];\n const affectingLocations = [];\n let features = getNodeResolutionFeatures(options);\n if (resolutionMode !== void 0) {\n features |= 30 /* AllFeatures */;\n }\n const moduleResolution = getEmitModuleResolutionKind(options);\n if (resolutionMode === 99 /* ESNext */ && (3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */)) {\n features |= 32 /* EsmMode */;\n }\n const conditions = features & 8 /* Exports */ ? getConditions(options, resolutionMode) : [];\n const diagnostics = [];\n const moduleResolutionState = {\n compilerOptions: options,\n host,\n traceEnabled,\n failedLookupLocations,\n affectingLocations,\n packageJsonInfoCache: cache,\n features,\n conditions,\n requestContainingDirectory: containingDirectory,\n reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n isConfigLookup: false,\n candidateIsFromPackageJsonField: false,\n resolvedPackageDirectory: false\n };\n let resolved = primaryLookup();\n let primary = true;\n if (!resolved) {\n resolved = secondaryLookup();\n primary = false;\n }\n let resolvedTypeReferenceDirective;\n if (resolved) {\n const { fileName, packageId } = resolved;\n let resolvedFileName = fileName, originalPath;\n if (!options.preserveSymlinks) ({ resolvedFileName, originalPath } = getOriginalAndResolvedFileName(fileName, host, traceEnabled));\n resolvedTypeReferenceDirective = {\n primary,\n resolvedFileName,\n originalPath,\n packageId,\n isExternalLibraryImport: pathContainsNodeModules(fileName)\n };\n }\n result = {\n resolvedTypeReferenceDirective,\n failedLookupLocations: initializeResolutionField(failedLookupLocations),\n affectingLocations: initializeResolutionField(affectingLocations),\n resolutionDiagnostics: initializeResolutionField(diagnostics)\n };\n if (containingDirectory && cache && !cache.isReadonly) {\n cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(\n typeReferenceDirectiveName,\n /*mode*/\n resolutionMode,\n result\n );\n if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n cache.getOrCreateCacheForNonRelativeName(typeReferenceDirectiveName, resolutionMode, redirectedReference).set(containingDirectory, result);\n }\n }\n if (traceEnabled) traceResult(result);\n return result;\n function traceResult(result2) {\n var _a;\n if (!((_a = result2.resolvedTypeReferenceDirective) == null ? void 0 : _a.resolvedFileName)) {\n trace(host, Diagnostics.Type_reference_directive_0_was_not_resolved, typeReferenceDirectiveName);\n } else if (result2.resolvedTypeReferenceDirective.packageId) {\n trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, packageIdToString(result2.resolvedTypeReferenceDirective.packageId), result2.resolvedTypeReferenceDirective.primary);\n } else {\n trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, result2.resolvedTypeReferenceDirective.primary);\n }\n }\n function primaryLookup() {\n if (typeRoots && typeRoots.length) {\n if (traceEnabled) {\n trace(host, Diagnostics.Resolving_with_primary_search_path_0, typeRoots.join(\", \"));\n }\n return firstDefined(typeRoots, (typeRoot) => {\n const candidate = getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState);\n const directoryExists = directoryProbablyExists(typeRoot, host);\n if (!directoryExists && traceEnabled) {\n trace(host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot);\n }\n if (options.typeRoots) {\n const resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState);\n if (resolvedFromFile) {\n const packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path);\n const packageInfo = packageDirectory ? getPackageJsonInfo(\n packageDirectory,\n /*onlyRecordFailures*/\n false,\n moduleResolutionState\n ) : void 0;\n return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile, moduleResolutionState));\n }\n }\n return resolvedTypeScriptOnly(\n loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState)\n );\n });\n } else {\n if (traceEnabled) {\n trace(host, Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths);\n }\n }\n }\n function secondaryLookup() {\n const initialLocationForSecondaryLookup = containingFile && getDirectoryPath(containingFile);\n if (initialLocationForSecondaryLookup !== void 0) {\n let result2;\n if (!options.typeRoots || !endsWith(containingFile, inferredTypesContainingFile)) {\n if (traceEnabled) {\n trace(host, Diagnostics.Looking_up_in_node_modules_folder_initial_location_0, initialLocationForSecondaryLookup);\n }\n if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n const searchResult = loadModuleFromNearestNodeModulesDirectory(\n 4 /* Declaration */,\n typeReferenceDirectiveName,\n initialLocationForSecondaryLookup,\n moduleResolutionState,\n /*cache*/\n void 0,\n /*redirectedReference*/\n void 0\n );\n result2 = searchResult && searchResult.value;\n } else {\n const { path: candidate } = normalizePathForCJSResolution(initialLocationForSecondaryLookup, typeReferenceDirectiveName);\n result2 = nodeLoadModuleByRelativeName(\n 4 /* Declaration */,\n candidate,\n /*onlyRecordFailures*/\n false,\n moduleResolutionState,\n /*considerPackageJson*/\n true\n );\n }\n } else if (traceEnabled) {\n trace(host, Diagnostics.Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder);\n }\n return resolvedTypeScriptOnly(result2);\n } else {\n if (traceEnabled) {\n trace(host, Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder);\n }\n }\n }\n}\nfunction getNodeResolutionFeatures(options) {\n let features = 0 /* None */;\n switch (getEmitModuleResolutionKind(options)) {\n case 3 /* Node16 */:\n features = 30 /* Node16Default */;\n break;\n case 99 /* NodeNext */:\n features = 30 /* NodeNextDefault */;\n break;\n case 100 /* Bundler */:\n features = 30 /* BundlerDefault */;\n break;\n }\n if (options.resolvePackageJsonExports) {\n features |= 8 /* Exports */;\n } else if (options.resolvePackageJsonExports === false) {\n features &= ~8 /* Exports */;\n }\n if (options.resolvePackageJsonImports) {\n features |= 2 /* Imports */;\n } else if (options.resolvePackageJsonImports === false) {\n features &= ~2 /* Imports */;\n }\n return features;\n}\nfunction getConditions(options, resolutionMode) {\n const moduleResolution = getEmitModuleResolutionKind(options);\n if (resolutionMode === void 0) {\n if (moduleResolution === 100 /* Bundler */) {\n resolutionMode = 99 /* ESNext */;\n } else if (moduleResolution === 2 /* Node10 */) {\n return [];\n }\n }\n const conditions = resolutionMode === 99 /* ESNext */ ? [\"import\"] : [\"require\"];\n if (!options.noDtsResolution) {\n conditions.push(\"types\");\n }\n if (moduleResolution !== 100 /* Bundler */) {\n conditions.push(\"node\");\n }\n return concatenate(conditions, options.customConditions);\n}\nfunction resolvePackageNameToPackageJson(packageName, containingDirectory, options, host, cache) {\n const moduleResolutionState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options);\n return forEachAncestorDirectoryStoppingAtGlobalCache(host, containingDirectory, (ancestorDirectory) => {\n if (getBaseFileName(ancestorDirectory) !== \"node_modules\") {\n const nodeModulesFolder = combinePaths(ancestorDirectory, \"node_modules\");\n const candidate = combinePaths(nodeModulesFolder, packageName);\n return getPackageJsonInfo(\n candidate,\n /*onlyRecordFailures*/\n false,\n moduleResolutionState\n );\n }\n });\n}\nfunction getAutomaticTypeDirectiveNames(options, host) {\n if (options.types) {\n return options.types;\n }\n const result = [];\n if (host.directoryExists && host.getDirectories) {\n const typeRoots = getEffectiveTypeRoots(options, host);\n if (typeRoots) {\n for (const root of typeRoots) {\n if (host.directoryExists(root)) {\n for (const typeDirectivePath of host.getDirectories(root)) {\n const normalized = normalizePath(typeDirectivePath);\n const packageJsonPath = combinePaths(root, normalized, \"package.json\");\n const isNotNeededPackage = host.fileExists(packageJsonPath) && readJson(packageJsonPath, host).typings === null;\n if (!isNotNeededPackage) {\n const baseFileName = getBaseFileName(normalized);\n if (baseFileName.charCodeAt(0) !== 46 /* dot */) {\n result.push(baseFileName);\n }\n }\n }\n }\n }\n }\n }\n return result;\n}\nfunction isPackageJsonInfo(entry) {\n return !!(entry == null ? void 0 : entry.contents);\n}\nfunction isMissingPackageJsonInfo(entry) {\n return !!entry && !entry.contents;\n}\nfunction compilerOptionValueToString(value) {\n var _a;\n if (value === null || typeof value !== \"object\") {\n return \"\" + value;\n }\n if (isArray(value)) {\n return `[${(_a = value.map((e) => compilerOptionValueToString(e))) == null ? void 0 : _a.join(\",\")}]`;\n }\n let str = \"{\";\n for (const key in value) {\n if (hasProperty(value, key)) {\n str += `${key}: ${compilerOptionValueToString(value[key])}`;\n }\n }\n return str + \"}\";\n}\nfunction getKeyForCompilerOptions(options, affectingOptionDeclarations) {\n return affectingOptionDeclarations.map((option) => compilerOptionValueToString(getCompilerOptionValue(options, option))).join(\"|\") + `|${options.pathsBasePath}`;\n}\nfunction createCacheWithRedirects(ownOptions, optionsToRedirectsKey) {\n const redirectsMap = /* @__PURE__ */ new Map();\n const redirectsKeyToMap = /* @__PURE__ */ new Map();\n let ownMap = /* @__PURE__ */ new Map();\n if (ownOptions) redirectsMap.set(ownOptions, ownMap);\n return {\n getMapOfCacheRedirects,\n getOrCreateMapOfCacheRedirects,\n update,\n clear: clear2,\n getOwnMap: () => ownMap\n };\n function getMapOfCacheRedirects(redirectedReference) {\n return redirectedReference ? getOrCreateMap(\n redirectedReference.commandLine.options,\n /*create*/\n false\n ) : ownMap;\n }\n function getOrCreateMapOfCacheRedirects(redirectedReference) {\n return redirectedReference ? getOrCreateMap(\n redirectedReference.commandLine.options,\n /*create*/\n true\n ) : ownMap;\n }\n function update(newOptions) {\n if (ownOptions !== newOptions) {\n if (ownOptions) ownMap = getOrCreateMap(\n newOptions,\n /*create*/\n true\n );\n else redirectsMap.set(newOptions, ownMap);\n ownOptions = newOptions;\n }\n }\n function getOrCreateMap(redirectOptions, create) {\n let result = redirectsMap.get(redirectOptions);\n if (result) return result;\n const key = getRedirectsCacheKey(redirectOptions);\n result = redirectsKeyToMap.get(key);\n if (!result) {\n if (ownOptions) {\n const ownKey = getRedirectsCacheKey(ownOptions);\n if (ownKey === key) result = ownMap;\n else if (!redirectsKeyToMap.has(ownKey)) redirectsKeyToMap.set(ownKey, ownMap);\n }\n if (create) result ?? (result = /* @__PURE__ */ new Map());\n if (result) redirectsKeyToMap.set(key, result);\n }\n if (result) redirectsMap.set(redirectOptions, result);\n return result;\n }\n function clear2() {\n const ownKey = ownOptions && optionsToRedirectsKey.get(ownOptions);\n ownMap.clear();\n redirectsMap.clear();\n optionsToRedirectsKey.clear();\n redirectsKeyToMap.clear();\n if (ownOptions) {\n if (ownKey) optionsToRedirectsKey.set(ownOptions, ownKey);\n redirectsMap.set(ownOptions, ownMap);\n }\n }\n function getRedirectsCacheKey(options) {\n let result = optionsToRedirectsKey.get(options);\n if (!result) {\n optionsToRedirectsKey.set(options, result = getKeyForCompilerOptions(options, moduleResolutionOptionDeclarations));\n }\n return result;\n }\n}\nfunction createPackageJsonInfoCache(currentDirectory, getCanonicalFileName) {\n let cache;\n return { getPackageJsonInfo: getPackageJsonInfo2, setPackageJsonInfo, clear: clear2, getInternalMap };\n function getPackageJsonInfo2(packageJsonPath) {\n return cache == null ? void 0 : cache.get(toPath(packageJsonPath, currentDirectory, getCanonicalFileName));\n }\n function setPackageJsonInfo(packageJsonPath, info) {\n (cache || (cache = /* @__PURE__ */ new Map())).set(toPath(packageJsonPath, currentDirectory, getCanonicalFileName), info);\n }\n function clear2() {\n cache = void 0;\n }\n function getInternalMap() {\n return cache;\n }\n}\nfunction getOrCreateCache(cacheWithRedirects, redirectedReference, key, create) {\n const cache = cacheWithRedirects.getOrCreateMapOfCacheRedirects(redirectedReference);\n let result = cache.get(key);\n if (!result) {\n result = create();\n cache.set(key, result);\n }\n return result;\n}\nfunction createPerDirectoryResolutionCache(currentDirectory, getCanonicalFileName, options, optionsToRedirectsKey) {\n const directoryToModuleNameMap = createCacheWithRedirects(options, optionsToRedirectsKey);\n return {\n getFromDirectoryCache,\n getOrCreateCacheForDirectory,\n clear: clear2,\n update,\n directoryToModuleNameMap\n };\n function clear2() {\n directoryToModuleNameMap.clear();\n }\n function update(options2) {\n directoryToModuleNameMap.update(options2);\n }\n function getOrCreateCacheForDirectory(directoryName, redirectedReference) {\n const path = toPath(directoryName, currentDirectory, getCanonicalFileName);\n return getOrCreateCache(directoryToModuleNameMap, redirectedReference, path, () => createModeAwareCache());\n }\n function getFromDirectoryCache(name, mode, directoryName, redirectedReference) {\n var _a, _b;\n const path = toPath(directoryName, currentDirectory, getCanonicalFileName);\n return (_b = (_a = directoryToModuleNameMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(path)) == null ? void 0 : _b.get(name, mode);\n }\n}\nfunction createModeAwareCacheKey(specifier, mode) {\n return mode === void 0 ? specifier : `${mode}|${specifier}`;\n}\nfunction createModeAwareCache() {\n const underlying = /* @__PURE__ */ new Map();\n const memoizedReverseKeys = /* @__PURE__ */ new Map();\n const cache = {\n get(specifier, mode) {\n return underlying.get(getUnderlyingCacheKey(specifier, mode));\n },\n set(specifier, mode, value) {\n underlying.set(getUnderlyingCacheKey(specifier, mode), value);\n return cache;\n },\n delete(specifier, mode) {\n underlying.delete(getUnderlyingCacheKey(specifier, mode));\n return cache;\n },\n has(specifier, mode) {\n return underlying.has(getUnderlyingCacheKey(specifier, mode));\n },\n forEach(cb) {\n return underlying.forEach((elem, key) => {\n const [specifier, mode] = memoizedReverseKeys.get(key);\n return cb(elem, specifier, mode);\n });\n },\n size() {\n return underlying.size;\n }\n };\n return cache;\n function getUnderlyingCacheKey(specifier, mode) {\n const result = createModeAwareCacheKey(specifier, mode);\n memoizedReverseKeys.set(result, [specifier, mode]);\n return result;\n }\n}\nfunction getOriginalOrResolvedModuleFileName(result) {\n return result.resolvedModule && (result.resolvedModule.originalPath || result.resolvedModule.resolvedFileName);\n}\nfunction getOriginalOrResolvedTypeReferenceFileName(result) {\n return result.resolvedTypeReferenceDirective && (result.resolvedTypeReferenceDirective.originalPath || result.resolvedTypeReferenceDirective.resolvedFileName);\n}\nfunction createNonRelativeNameResolutionCache(currentDirectory, getCanonicalFileName, options, getResolvedFileName, optionsToRedirectsKey) {\n const moduleNameToDirectoryMap = createCacheWithRedirects(options, optionsToRedirectsKey);\n return {\n getFromNonRelativeNameCache,\n getOrCreateCacheForNonRelativeName,\n clear: clear2,\n update\n };\n function clear2() {\n moduleNameToDirectoryMap.clear();\n }\n function update(options2) {\n moduleNameToDirectoryMap.update(options2);\n }\n function getFromNonRelativeNameCache(nonRelativeModuleName, mode, directoryName, redirectedReference) {\n var _a, _b;\n Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));\n return (_b = (_a = moduleNameToDirectoryMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(createModeAwareCacheKey(nonRelativeModuleName, mode))) == null ? void 0 : _b.get(directoryName);\n }\n function getOrCreateCacheForNonRelativeName(nonRelativeModuleName, mode, redirectedReference) {\n Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));\n return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, createModeAwareCacheKey(nonRelativeModuleName, mode), createPerModuleNameCache);\n }\n function createPerModuleNameCache() {\n const directoryPathMap = /* @__PURE__ */ new Map();\n return { get, set };\n function get(directory) {\n return directoryPathMap.get(toPath(directory, currentDirectory, getCanonicalFileName));\n }\n function set(directory, result) {\n const path = toPath(directory, currentDirectory, getCanonicalFileName);\n if (directoryPathMap.has(path)) {\n return;\n }\n directoryPathMap.set(path, result);\n const resolvedFileName = getResolvedFileName(result);\n const commonPrefix = resolvedFileName && getCommonPrefix(path, resolvedFileName);\n let current = path;\n while (current !== commonPrefix) {\n const parent2 = getDirectoryPath(current);\n if (parent2 === current || directoryPathMap.has(parent2)) {\n break;\n }\n directoryPathMap.set(parent2, result);\n current = parent2;\n }\n }\n function getCommonPrefix(directory, resolution) {\n const resolutionDirectory = toPath(getDirectoryPath(resolution), currentDirectory, getCanonicalFileName);\n let i = 0;\n const limit = Math.min(directory.length, resolutionDirectory.length);\n while (i < limit && directory.charCodeAt(i) === resolutionDirectory.charCodeAt(i)) {\n i++;\n }\n if (i === directory.length && (resolutionDirectory.length === i || resolutionDirectory[i] === directorySeparator)) {\n return directory;\n }\n const rootLength = getRootLength(directory);\n if (i < rootLength) {\n return void 0;\n }\n const sep = directory.lastIndexOf(directorySeparator, i - 1);\n if (sep === -1) {\n return void 0;\n }\n return directory.substr(0, Math.max(sep, rootLength));\n }\n }\n}\nfunction createModuleOrTypeReferenceResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, getResolvedFileName, optionsToRedirectsKey) {\n optionsToRedirectsKey ?? (optionsToRedirectsKey = /* @__PURE__ */ new Map());\n const perDirectoryResolutionCache = createPerDirectoryResolutionCache(\n currentDirectory,\n getCanonicalFileName,\n options,\n optionsToRedirectsKey\n );\n const nonRelativeNameResolutionCache = createNonRelativeNameResolutionCache(\n currentDirectory,\n getCanonicalFileName,\n options,\n getResolvedFileName,\n optionsToRedirectsKey\n );\n packageJsonInfoCache ?? (packageJsonInfoCache = createPackageJsonInfoCache(currentDirectory, getCanonicalFileName));\n return {\n ...packageJsonInfoCache,\n ...perDirectoryResolutionCache,\n ...nonRelativeNameResolutionCache,\n clear: clear2,\n update,\n getPackageJsonInfoCache: () => packageJsonInfoCache,\n clearAllExceptPackageJsonInfoCache,\n optionsToRedirectsKey\n };\n function clear2() {\n clearAllExceptPackageJsonInfoCache();\n packageJsonInfoCache.clear();\n }\n function clearAllExceptPackageJsonInfoCache() {\n perDirectoryResolutionCache.clear();\n nonRelativeNameResolutionCache.clear();\n }\n function update(options2) {\n perDirectoryResolutionCache.update(options2);\n nonRelativeNameResolutionCache.update(options2);\n }\n}\nfunction createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, optionsToRedirectsKey) {\n const result = createModuleOrTypeReferenceResolutionCache(\n currentDirectory,\n getCanonicalFileName,\n options,\n packageJsonInfoCache,\n getOriginalOrResolvedModuleFileName,\n optionsToRedirectsKey\n );\n result.getOrCreateCacheForModuleName = (nonRelativeName, mode, redirectedReference) => result.getOrCreateCacheForNonRelativeName(nonRelativeName, mode, redirectedReference);\n return result;\n}\nfunction createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, optionsToRedirectsKey) {\n return createModuleOrTypeReferenceResolutionCache(\n currentDirectory,\n getCanonicalFileName,\n options,\n packageJsonInfoCache,\n getOriginalOrResolvedTypeReferenceFileName,\n optionsToRedirectsKey\n );\n}\nfunction getOptionsForLibraryResolution(options) {\n return { moduleResolution: 2 /* Node10 */, traceResolution: options.traceResolution };\n}\nfunction resolveLibrary(libraryName, resolveFrom, compilerOptions, host, cache) {\n return resolveModuleName(libraryName, resolveFrom, getOptionsForLibraryResolution(compilerOptions), host, cache);\n}\nfunction resolveModuleNameFromCache(moduleName, containingFile, cache, mode) {\n const containingDirectory = getDirectoryPath(containingFile);\n return cache.getFromDirectoryCache(\n moduleName,\n mode,\n containingDirectory,\n /*redirectedReference*/\n void 0\n );\n}\nfunction resolveModuleName(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n const traceEnabled = isTraceEnabled(compilerOptions, host);\n if (redirectedReference) {\n compilerOptions = redirectedReference.commandLine.options;\n }\n if (traceEnabled) {\n trace(host, Diagnostics.Resolving_module_0_from_1, moduleName, containingFile);\n if (redirectedReference) {\n trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n }\n }\n const containingDirectory = getDirectoryPath(containingFile);\n let result = cache == null ? void 0 : cache.getFromDirectoryCache(moduleName, resolutionMode, containingDirectory, redirectedReference);\n if (result) {\n if (traceEnabled) {\n trace(host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory);\n }\n } else {\n let moduleResolution = compilerOptions.moduleResolution;\n if (moduleResolution === void 0) {\n moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n if (traceEnabled) {\n trace(host, Diagnostics.Module_resolution_kind_is_not_specified_using_0, ModuleResolutionKind[moduleResolution]);\n }\n } else {\n if (traceEnabled) {\n trace(host, Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0, ModuleResolutionKind[moduleResolution]);\n }\n }\n switch (moduleResolution) {\n case 3 /* Node16 */:\n result = node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);\n break;\n case 99 /* NodeNext */:\n result = nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);\n break;\n case 2 /* Node10 */:\n result = nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode ? getConditions(compilerOptions, resolutionMode) : void 0);\n break;\n case 1 /* Classic */:\n result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);\n break;\n case 100 /* Bundler */:\n result = bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode ? getConditions(compilerOptions, resolutionMode) : void 0);\n break;\n default:\n return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);\n }\n if (cache && !cache.isReadonly) {\n cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(moduleName, resolutionMode, result);\n if (!isExternalModuleNameRelative(moduleName)) {\n cache.getOrCreateCacheForNonRelativeName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result);\n }\n }\n }\n if (traceEnabled) {\n if (result.resolvedModule) {\n if (result.resolvedModule.packageId) {\n trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2, moduleName, result.resolvedModule.resolvedFileName, packageIdToString(result.resolvedModule.packageId));\n } else {\n trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1, moduleName, result.resolvedModule.resolvedFileName);\n }\n } else {\n trace(host, Diagnostics.Module_name_0_was_not_resolved, moduleName);\n }\n }\n return result;\n}\nfunction tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loader, state) {\n const resolved = tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state);\n if (resolved) return resolved.value;\n if (!isExternalModuleNameRelative(moduleName)) {\n return tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state);\n } else {\n return tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state);\n }\n}\nfunction tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state) {\n const { baseUrl, paths } = state.compilerOptions;\n if (paths && !pathIsRelative(moduleName)) {\n if (state.traceEnabled) {\n if (baseUrl) {\n trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName);\n }\n trace(state.host, Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0, moduleName);\n }\n const baseDirectory = getPathsBasePath(state.compilerOptions, state.host);\n const pathPatterns = tryParsePatterns(paths);\n return tryLoadModuleUsingPaths(\n extensions,\n moduleName,\n baseDirectory,\n paths,\n pathPatterns,\n loader,\n /*onlyRecordFailures*/\n false,\n state\n );\n }\n}\nfunction tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state) {\n if (!state.compilerOptions.rootDirs) {\n return void 0;\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0, moduleName);\n }\n const candidate = normalizePath(combinePaths(containingDirectory, moduleName));\n let matchedRootDir;\n let matchedNormalizedPrefix;\n for (const rootDir of state.compilerOptions.rootDirs) {\n let normalizedRoot = normalizePath(rootDir);\n if (!endsWith(normalizedRoot, directorySeparator)) {\n normalizedRoot += directorySeparator;\n }\n const isLongestMatchingPrefix = startsWith(candidate, normalizedRoot) && (matchedNormalizedPrefix === void 0 || matchedNormalizedPrefix.length < normalizedRoot.length);\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Checking_if_0_is_the_longest_matching_prefix_for_1_2, normalizedRoot, candidate, isLongestMatchingPrefix);\n }\n if (isLongestMatchingPrefix) {\n matchedNormalizedPrefix = normalizedRoot;\n matchedRootDir = rootDir;\n }\n }\n if (matchedNormalizedPrefix) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Longest_matching_prefix_for_0_is_1, candidate, matchedNormalizedPrefix);\n }\n const suffix = candidate.substr(matchedNormalizedPrefix.length);\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, matchedNormalizedPrefix, candidate);\n }\n const resolvedFileName = loader(extensions, candidate, !directoryProbablyExists(containingDirectory, state.host), state);\n if (resolvedFileName) {\n return resolvedFileName;\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Trying_other_entries_in_rootDirs);\n }\n for (const rootDir of state.compilerOptions.rootDirs) {\n if (rootDir === matchedRootDir) {\n continue;\n }\n const candidate2 = combinePaths(normalizePath(rootDir), suffix);\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, rootDir, candidate2);\n }\n const baseDirectory = getDirectoryPath(candidate2);\n const resolvedFileName2 = loader(extensions, candidate2, !directoryProbablyExists(baseDirectory, state.host), state);\n if (resolvedFileName2) {\n return resolvedFileName2;\n }\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Module_resolution_using_rootDirs_has_failed);\n }\n }\n return void 0;\n}\nfunction tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state) {\n const { baseUrl } = state.compilerOptions;\n if (!baseUrl) {\n return void 0;\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName);\n }\n const candidate = normalizePath(combinePaths(baseUrl, moduleName));\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2, moduleName, baseUrl, candidate);\n }\n return loader(extensions, candidate, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state);\n}\nfunction resolveJSModule(moduleName, initialDir, host) {\n const { resolvedModule, failedLookupLocations } = tryResolveJSModuleWorker(moduleName, initialDir, host);\n if (!resolvedModule) {\n throw new Error(`Could not resolve JS module '${moduleName}' starting at '${initialDir}'. Looked in: ${failedLookupLocations == null ? void 0 : failedLookupLocations.join(\", \")}`);\n }\n return resolvedModule.resolvedFileName;\n}\nvar NodeResolutionFeatures = /* @__PURE__ */ ((NodeResolutionFeatures2) => {\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"None\"] = 0] = \"None\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"Imports\"] = 2] = \"Imports\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"SelfName\"] = 4] = \"SelfName\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"Exports\"] = 8] = \"Exports\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"ExportsPatternTrailers\"] = 16] = \"ExportsPatternTrailers\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"AllFeatures\"] = 30] = \"AllFeatures\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"Node16Default\"] = 30] = \"Node16Default\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"NodeNextDefault\"] = 30 /* AllFeatures */] = \"NodeNextDefault\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"BundlerDefault\"] = 30] = \"BundlerDefault\";\n NodeResolutionFeatures2[NodeResolutionFeatures2[\"EsmMode\"] = 32] = \"EsmMode\";\n return NodeResolutionFeatures2;\n})(NodeResolutionFeatures || {});\nfunction node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n return nodeNextModuleNameResolverWorker(\n 30 /* Node16Default */,\n moduleName,\n containingFile,\n compilerOptions,\n host,\n cache,\n redirectedReference,\n resolutionMode\n );\n}\nfunction nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n return nodeNextModuleNameResolverWorker(\n 30 /* NodeNextDefault */,\n moduleName,\n containingFile,\n compilerOptions,\n host,\n cache,\n redirectedReference,\n resolutionMode\n );\n}\nfunction nodeNextModuleNameResolverWorker(features, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode, conditions) {\n const containingDirectory = getDirectoryPath(containingFile);\n const esmMode = resolutionMode === 99 /* ESNext */ ? 32 /* EsmMode */ : 0;\n let extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n if (getResolveJsonModule(compilerOptions)) {\n extensions |= 8 /* Json */;\n }\n return nodeModuleNameResolverWorker(\n features | esmMode,\n moduleName,\n containingDirectory,\n compilerOptions,\n host,\n cache,\n extensions,\n /*isConfigLookup*/\n false,\n redirectedReference,\n conditions\n );\n}\nfunction tryResolveJSModuleWorker(moduleName, initialDir, host) {\n return nodeModuleNameResolverWorker(\n 0 /* None */,\n moduleName,\n initialDir,\n { moduleResolution: 2 /* Node10 */, allowJs: true },\n host,\n /*cache*/\n void 0,\n 2 /* JavaScript */,\n /*isConfigLookup*/\n false,\n /*redirectedReference*/\n void 0,\n /*conditions*/\n void 0\n );\n}\nfunction bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, conditions) {\n const containingDirectory = getDirectoryPath(containingFile);\n let extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n if (getResolveJsonModule(compilerOptions)) {\n extensions |= 8 /* Json */;\n }\n return nodeModuleNameResolverWorker(\n getNodeResolutionFeatures(compilerOptions),\n moduleName,\n containingDirectory,\n compilerOptions,\n host,\n cache,\n extensions,\n /*isConfigLookup*/\n false,\n redirectedReference,\n conditions\n );\n}\nfunction nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, conditions, isConfigLookup) {\n let extensions;\n if (isConfigLookup) {\n extensions = 8 /* Json */;\n } else if (compilerOptions.noDtsResolution) {\n extensions = 3 /* ImplementationFiles */;\n if (getResolveJsonModule(compilerOptions)) extensions |= 8 /* Json */;\n } else {\n extensions = getResolveJsonModule(compilerOptions) ? 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */ | 8 /* Json */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n }\n return nodeModuleNameResolverWorker(conditions ? 30 /* AllFeatures */ : 0 /* None */, moduleName, getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, !!isConfigLookup, redirectedReference, conditions);\n}\nfunction nodeNextJsonConfigResolver(moduleName, containingFile, host) {\n return nodeModuleNameResolverWorker(\n 30 /* NodeNextDefault */,\n moduleName,\n getDirectoryPath(containingFile),\n { moduleResolution: 99 /* NodeNext */ },\n host,\n /*cache*/\n void 0,\n 8 /* Json */,\n /*isConfigLookup*/\n true,\n /*redirectedReference*/\n void 0,\n /*conditions*/\n void 0\n );\n}\nfunction nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, isConfigLookup, redirectedReference, conditions) {\n var _a, _b, _c, _d, _e;\n const traceEnabled = isTraceEnabled(compilerOptions, host);\n const failedLookupLocations = [];\n const affectingLocations = [];\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n conditions ?? (conditions = getConditions(\n compilerOptions,\n moduleResolution === 100 /* Bundler */ || moduleResolution === 2 /* Node10 */ ? void 0 : features & 32 /* EsmMode */ ? 99 /* ESNext */ : 1 /* CommonJS */\n ));\n const diagnostics = [];\n const state = {\n compilerOptions,\n host,\n traceEnabled,\n failedLookupLocations,\n affectingLocations,\n packageJsonInfoCache: cache,\n features,\n conditions: conditions ?? emptyArray,\n requestContainingDirectory: containingDirectory,\n reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n isConfigLookup,\n candidateIsFromPackageJsonField: false,\n resolvedPackageDirectory: false\n };\n if (traceEnabled && moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n trace(host, Diagnostics.Resolving_in_0_mode_with_conditions_1, features & 32 /* EsmMode */ ? \"ESM\" : \"CJS\", state.conditions.map((c) => `'${c}'`).join(\", \"));\n }\n let result;\n if (moduleResolution === 2 /* Node10 */) {\n const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n result = priorityExtensions && tryResolve(priorityExtensions, state) || secondaryExtensions && tryResolve(secondaryExtensions, state) || void 0;\n } else {\n result = tryResolve(extensions, state);\n }\n let alternateResult;\n if (state.resolvedPackageDirectory && !isConfigLookup && !isExternalModuleNameRelative(moduleName)) {\n const wantedTypesButGotJs = (result == null ? void 0 : result.value) && extensions & (1 /* TypeScript */ | 4 /* Declaration */) && !extensionIsOk(1 /* TypeScript */ | 4 /* Declaration */, result.value.resolved.extension);\n if (((_a = result == null ? void 0 : result.value) == null ? void 0 : _a.isExternalLibraryImport) && wantedTypesButGotJs && features & 8 /* Exports */ && (conditions == null ? void 0 : conditions.includes(\"import\"))) {\n traceIfEnabled(state, Diagnostics.Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update);\n const diagnosticState = {\n ...state,\n features: state.features & ~8 /* Exports */,\n reportDiagnostic: noop\n };\n const diagnosticResult = tryResolve(extensions & (1 /* TypeScript */ | 4 /* Declaration */), diagnosticState);\n if ((_b = diagnosticResult == null ? void 0 : diagnosticResult.value) == null ? void 0 : _b.isExternalLibraryImport) {\n alternateResult = diagnosticResult.value.resolved.path;\n }\n } else if ((!(result == null ? void 0 : result.value) || wantedTypesButGotJs) && moduleResolution === 2 /* Node10 */) {\n traceIfEnabled(state, Diagnostics.Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update);\n const diagnosticsCompilerOptions = { ...state.compilerOptions, moduleResolution: 100 /* Bundler */ };\n const diagnosticState = {\n ...state,\n compilerOptions: diagnosticsCompilerOptions,\n features: 30 /* BundlerDefault */,\n conditions: getConditions(diagnosticsCompilerOptions),\n reportDiagnostic: noop\n };\n const diagnosticResult = tryResolve(extensions & (1 /* TypeScript */ | 4 /* Declaration */), diagnosticState);\n if ((_c = diagnosticResult == null ? void 0 : diagnosticResult.value) == null ? void 0 : _c.isExternalLibraryImport) {\n alternateResult = diagnosticResult.value.resolved.path;\n }\n }\n }\n return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(\n moduleName,\n (_d = result == null ? void 0 : result.value) == null ? void 0 : _d.resolved,\n (_e = result == null ? void 0 : result.value) == null ? void 0 : _e.isExternalLibraryImport,\n failedLookupLocations,\n affectingLocations,\n diagnostics,\n state,\n cache,\n alternateResult\n );\n function tryResolve(extensions2, state2) {\n const loader = (extensions3, candidate, onlyRecordFailures, state3) => nodeLoadModuleByRelativeName(\n extensions3,\n candidate,\n onlyRecordFailures,\n state3,\n /*considerPackageJson*/\n true\n );\n const resolved = tryLoadModuleUsingOptionalResolutionSettings(extensions2, moduleName, containingDirectory, loader, state2);\n if (resolved) {\n return toSearchResult({ resolved, isExternalLibraryImport: pathContainsNodeModules(resolved.path) });\n }\n if (!isExternalModuleNameRelative(moduleName)) {\n if (features & 2 /* Imports */ && startsWith(moduleName, \"#\")) {\n const resolved3 = loadModuleFromImports(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n if (resolved3) {\n return resolved3.value && { value: { resolved: resolved3.value, isExternalLibraryImport: false } };\n }\n }\n if (features & 4 /* SelfName */) {\n const resolved3 = loadModuleFromSelfNameReference(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n if (resolved3) {\n return resolved3.value && { value: { resolved: resolved3.value, isExternalLibraryImport: false } };\n }\n }\n if (moduleName.includes(\":\")) {\n if (traceEnabled) {\n trace(host, Diagnostics.Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1, moduleName, formatExtensions(extensions2));\n }\n return void 0;\n }\n if (traceEnabled) {\n trace(host, Diagnostics.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1, moduleName, formatExtensions(extensions2));\n }\n let resolved2 = loadModuleFromNearestNodeModulesDirectory(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n if (extensions2 & 4 /* Declaration */) {\n resolved2 ?? (resolved2 = resolveFromTypeRoot(moduleName, state2));\n }\n return resolved2 && { value: resolved2.value && { resolved: resolved2.value, isExternalLibraryImport: true } };\n } else {\n const { path: candidate, parts } = normalizePathForCJSResolution(containingDirectory, moduleName);\n const resolved2 = nodeLoadModuleByRelativeName(\n extensions2,\n candidate,\n /*onlyRecordFailures*/\n false,\n state2,\n /*considerPackageJson*/\n true\n );\n return resolved2 && toSearchResult({ resolved: resolved2, isExternalLibraryImport: contains(parts, \"node_modules\") });\n }\n }\n}\nfunction normalizePathForCJSResolution(containingDirectory, moduleName) {\n const combined = combinePaths(containingDirectory, moduleName);\n const parts = getPathComponents(combined);\n const lastPart = lastOrUndefined(parts);\n const path = lastPart === \".\" || lastPart === \"..\" ? ensureTrailingDirectorySeparator(normalizePath(combined)) : normalizePath(combined);\n return { path, parts };\n}\nfunction realPath(path, host, traceEnabled) {\n if (!host.realpath) {\n return path;\n }\n const real = normalizePath(host.realpath(path));\n if (traceEnabled) {\n trace(host, Diagnostics.Resolving_real_path_for_0_result_1, path, real);\n }\n return real;\n}\nfunction nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1, candidate, formatExtensions(extensions));\n }\n if (!hasTrailingDirectorySeparator(candidate)) {\n if (!onlyRecordFailures) {\n const parentOfCandidate = getDirectoryPath(candidate);\n if (!directoryProbablyExists(parentOfCandidate, state.host)) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, parentOfCandidate);\n }\n onlyRecordFailures = true;\n }\n }\n const resolvedFromFile = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state);\n if (resolvedFromFile) {\n const packageDirectory = considerPackageJson ? parseNodeModuleFromPath(resolvedFromFile.path) : void 0;\n const packageInfo = packageDirectory ? getPackageJsonInfo(\n packageDirectory,\n /*onlyRecordFailures*/\n false,\n state\n ) : void 0;\n return withPackageId(packageInfo, resolvedFromFile, state);\n }\n }\n if (!onlyRecordFailures) {\n const candidateExists = directoryProbablyExists(candidate, state.host);\n if (!candidateExists) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, candidate);\n }\n onlyRecordFailures = true;\n }\n }\n if (!(state.features & 32 /* EsmMode */)) {\n return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson);\n }\n return void 0;\n}\nvar nodeModulesPathPart = \"/node_modules/\";\nfunction pathContainsNodeModules(path) {\n return path.includes(nodeModulesPathPart);\n}\nfunction parseNodeModuleFromPath(resolved, isFolder) {\n const path = normalizePath(resolved);\n const idx = path.lastIndexOf(nodeModulesPathPart);\n if (idx === -1) {\n return void 0;\n }\n const indexAfterNodeModules = idx + nodeModulesPathPart.length;\n let indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterNodeModules, isFolder);\n if (path.charCodeAt(indexAfterNodeModules) === 64 /* at */) {\n indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterPackageName, isFolder);\n }\n return path.slice(0, indexAfterPackageName);\n}\nfunction moveToNextDirectorySeparatorIfAvailable(path, prevSeparatorIndex, isFolder) {\n const nextSeparatorIndex = path.indexOf(directorySeparator, prevSeparatorIndex + 1);\n return nextSeparatorIndex === -1 ? isFolder ? path.length : prevSeparatorIndex : nextSeparatorIndex;\n}\nfunction loadModuleFromFileNoPackageId(extensions, candidate, onlyRecordFailures, state) {\n return noPackageId(loadModuleFromFile(extensions, candidate, onlyRecordFailures, state));\n}\nfunction loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) {\n const resolvedByReplacingExtension = loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);\n if (resolvedByReplacingExtension) {\n return resolvedByReplacingExtension;\n }\n if (!(state.features & 32 /* EsmMode */)) {\n const resolvedByAddingExtension = tryAddingExtensions(candidate, extensions, \"\", onlyRecordFailures, state);\n if (resolvedByAddingExtension) {\n return resolvedByAddingExtension;\n }\n }\n}\nfunction loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state) {\n const filename = getBaseFileName(candidate);\n if (!filename.includes(\".\")) {\n return void 0;\n }\n let extensionless = removeFileExtension(candidate);\n if (extensionless === candidate) {\n extensionless = candidate.substring(0, candidate.lastIndexOf(\".\"));\n }\n const extension = candidate.substring(extensionless.length);\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.File_name_0_has_a_1_extension_stripping_it, candidate, extension);\n }\n return tryAddingExtensions(extensionless, extensions, extension, onlyRecordFailures, state);\n}\nfunction loadFileNameFromPackageJsonField(extensions, candidate, packageJsonValue, onlyRecordFailures, state) {\n if (extensions & 1 /* TypeScript */ && fileExtensionIsOneOf(candidate, supportedTSImplementationExtensions) || extensions & 4 /* Declaration */ && fileExtensionIsOneOf(candidate, supportedDeclarationExtensions)) {\n const result = tryFile(candidate, onlyRecordFailures, state);\n const ext = tryExtractTSExtension(candidate);\n return result !== void 0 ? { path: candidate, ext, resolvedUsingTsExtension: packageJsonValue ? !endsWith(packageJsonValue, ext) : void 0 } : void 0;\n }\n if (state.isConfigLookup && extensions === 8 /* Json */ && fileExtensionIs(candidate, \".json\" /* Json */)) {\n const result = tryFile(candidate, onlyRecordFailures, state);\n return result !== void 0 ? { path: candidate, ext: \".json\" /* Json */, resolvedUsingTsExtension: void 0 } : void 0;\n }\n return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);\n}\nfunction tryAddingExtensions(candidate, extensions, originalExtension, onlyRecordFailures, state) {\n if (!onlyRecordFailures) {\n const directory = getDirectoryPath(candidate);\n if (directory) {\n onlyRecordFailures = !directoryProbablyExists(directory, state.host);\n }\n }\n switch (originalExtension) {\n case \".mjs\" /* Mjs */:\n case \".mts\" /* Mts */:\n case \".d.mts\" /* Dmts */:\n return extensions & 1 /* TypeScript */ && tryExtension(\".mts\" /* Mts */, originalExtension === \".mts\" /* Mts */ || originalExtension === \".d.mts\" /* Dmts */) || extensions & 4 /* Declaration */ && tryExtension(\".d.mts\" /* Dmts */, originalExtension === \".mts\" /* Mts */ || originalExtension === \".d.mts\" /* Dmts */) || extensions & 2 /* JavaScript */ && tryExtension(\".mjs\" /* Mjs */) || void 0;\n case \".cjs\" /* Cjs */:\n case \".cts\" /* Cts */:\n case \".d.cts\" /* Dcts */:\n return extensions & 1 /* TypeScript */ && tryExtension(\".cts\" /* Cts */, originalExtension === \".cts\" /* Cts */ || originalExtension === \".d.cts\" /* Dcts */) || extensions & 4 /* Declaration */ && tryExtension(\".d.cts\" /* Dcts */, originalExtension === \".cts\" /* Cts */ || originalExtension === \".d.cts\" /* Dcts */) || extensions & 2 /* JavaScript */ && tryExtension(\".cjs\" /* Cjs */) || void 0;\n case \".json\" /* Json */:\n return extensions & 4 /* Declaration */ && tryExtension(\".d.json.ts\") || extensions & 8 /* Json */ && tryExtension(\".json\" /* Json */) || void 0;\n case \".tsx\" /* Tsx */:\n case \".jsx\" /* Jsx */:\n return extensions & 1 /* TypeScript */ && (tryExtension(\".tsx\" /* Tsx */, originalExtension === \".tsx\" /* Tsx */) || tryExtension(\".ts\" /* Ts */, originalExtension === \".tsx\" /* Tsx */)) || extensions & 4 /* Declaration */ && tryExtension(\".d.ts\" /* Dts */, originalExtension === \".tsx\" /* Tsx */) || extensions & 2 /* JavaScript */ && (tryExtension(\".jsx\" /* Jsx */) || tryExtension(\".js\" /* Js */)) || void 0;\n case \".ts\" /* Ts */:\n case \".d.ts\" /* Dts */:\n case \".js\" /* Js */:\n case \"\":\n return extensions & 1 /* TypeScript */ && (tryExtension(\".ts\" /* Ts */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */) || tryExtension(\".tsx\" /* Tsx */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */)) || extensions & 4 /* Declaration */ && tryExtension(\".d.ts\" /* Dts */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */) || extensions & 2 /* JavaScript */ && (tryExtension(\".js\" /* Js */) || tryExtension(\".jsx\" /* Jsx */)) || state.isConfigLookup && tryExtension(\".json\" /* Json */) || void 0;\n default:\n return extensions & 4 /* Declaration */ && !isDeclarationFileName(candidate + originalExtension) && tryExtension(`.d${originalExtension}.ts`) || void 0;\n }\n function tryExtension(ext, resolvedUsingTsExtension) {\n const path = tryFile(candidate + ext, onlyRecordFailures, state);\n return path === void 0 ? void 0 : { path, ext, resolvedUsingTsExtension: !state.candidateIsFromPackageJsonField && resolvedUsingTsExtension };\n }\n}\nfunction tryFile(fileName, onlyRecordFailures, state) {\n var _a;\n if (!((_a = state.compilerOptions.moduleSuffixes) == null ? void 0 : _a.length)) {\n return tryFileLookup(fileName, onlyRecordFailures, state);\n }\n const ext = tryGetExtensionFromPath2(fileName) ?? \"\";\n const fileNameNoExtension = ext ? removeExtension(fileName, ext) : fileName;\n return forEach(state.compilerOptions.moduleSuffixes, (suffix) => tryFileLookup(fileNameNoExtension + suffix + ext, onlyRecordFailures, state));\n}\nfunction tryFileLookup(fileName, onlyRecordFailures, state) {\n var _a;\n if (!onlyRecordFailures) {\n if (state.host.fileExists(fileName)) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.File_0_exists_use_it_as_a_name_resolution_result, fileName);\n }\n return fileName;\n } else {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.File_0_does_not_exist, fileName);\n }\n }\n }\n (_a = state.failedLookupLocations) == null ? void 0 : _a.push(fileName);\n return void 0;\n}\nfunction loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson = true) {\n const packageInfo = considerPackageJson ? getPackageJsonInfo(candidate, onlyRecordFailures, state) : void 0;\n return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageInfo), state);\n}\nfunction getEntrypointsFromPackageJsonInfo(packageJsonInfo, options, host, cache, resolveJs) {\n if (!resolveJs && packageJsonInfo.contents.resolvedEntrypoints !== void 0) {\n return packageJsonInfo.contents.resolvedEntrypoints;\n }\n let entrypoints;\n const extensions = 1 /* TypeScript */ | 4 /* Declaration */ | (resolveJs ? 2 /* JavaScript */ : 0);\n const features = getNodeResolutionFeatures(options);\n const loadPackageJsonMainState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options);\n loadPackageJsonMainState.conditions = getConditions(options);\n loadPackageJsonMainState.requestContainingDirectory = packageJsonInfo.packageDirectory;\n const mainResolution = loadNodeModuleFromDirectoryWorker(\n extensions,\n packageJsonInfo.packageDirectory,\n /*onlyRecordFailures*/\n false,\n loadPackageJsonMainState,\n packageJsonInfo\n );\n entrypoints = append(entrypoints, mainResolution == null ? void 0 : mainResolution.path);\n if (features & 8 /* Exports */ && packageJsonInfo.contents.packageJsonContent.exports) {\n const conditionSets = deduplicate(\n [getConditions(options, 99 /* ESNext */), getConditions(options, 1 /* CommonJS */)],\n arrayIsEqualTo\n );\n for (const conditions of conditionSets) {\n const loadPackageJsonExportsState = { ...loadPackageJsonMainState, failedLookupLocations: [], conditions, host };\n const exportResolutions = loadEntrypointsFromExportMap(\n packageJsonInfo,\n packageJsonInfo.contents.packageJsonContent.exports,\n loadPackageJsonExportsState,\n extensions\n );\n if (exportResolutions) {\n for (const resolution of exportResolutions) {\n entrypoints = appendIfUnique(entrypoints, resolution.path);\n }\n }\n }\n }\n return packageJsonInfo.contents.resolvedEntrypoints = entrypoints || false;\n}\nfunction loadEntrypointsFromExportMap(scope, exports2, state, extensions) {\n let entrypoints;\n if (isArray(exports2)) {\n for (const target of exports2) {\n loadEntrypointsFromTargetExports(target);\n }\n } else if (typeof exports2 === \"object\" && exports2 !== null && allKeysStartWithDot(exports2)) {\n for (const key in exports2) {\n loadEntrypointsFromTargetExports(exports2[key]);\n }\n } else {\n loadEntrypointsFromTargetExports(exports2);\n }\n return entrypoints;\n function loadEntrypointsFromTargetExports(target) {\n var _a, _b;\n if (typeof target === \"string\" && startsWith(target, \"./\")) {\n if (target.includes(\"*\") && state.host.readDirectory) {\n if (target.indexOf(\"*\") !== target.lastIndexOf(\"*\")) {\n return false;\n }\n state.host.readDirectory(\n scope.packageDirectory,\n extensionsToExtensionsArray(extensions),\n /*excludes*/\n void 0,\n [\n changeFullExtension(replaceFirstStar(target, \"**/*\"), \".*\")\n ]\n ).forEach((entry) => {\n entrypoints = appendIfUnique(entrypoints, {\n path: entry,\n ext: getAnyExtensionFromPath(entry),\n resolvedUsingTsExtension: void 0\n });\n });\n } else {\n const partsAfterFirst = getPathComponents(target).slice(2);\n if (partsAfterFirst.includes(\"..\") || partsAfterFirst.includes(\".\") || partsAfterFirst.includes(\"node_modules\")) {\n return false;\n }\n const resolvedTarget = combinePaths(scope.packageDirectory, target);\n const finalPath = getNormalizedAbsolutePath(resolvedTarget, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n const result = loadFileNameFromPackageJsonField(\n extensions,\n finalPath,\n target,\n /*onlyRecordFailures*/\n false,\n state\n );\n if (result) {\n entrypoints = appendIfUnique(entrypoints, result, (a, b) => a.path === b.path);\n return true;\n }\n }\n } else if (Array.isArray(target)) {\n for (const t of target) {\n const success = loadEntrypointsFromTargetExports(t);\n if (success) {\n return true;\n }\n }\n } else if (typeof target === \"object\" && target !== null) {\n return forEach(getOwnKeys(target), (key) => {\n if (key === \"default\" || contains(state.conditions, key) || isApplicableVersionedTypesKey(state.conditions, key)) {\n loadEntrypointsFromTargetExports(target[key]);\n return true;\n }\n });\n }\n }\n}\nfunction getTemporaryModuleResolutionState(packageJsonInfoCache, host, options) {\n return {\n host,\n compilerOptions: options,\n traceEnabled: isTraceEnabled(options, host),\n failedLookupLocations: void 0,\n affectingLocations: void 0,\n packageJsonInfoCache,\n features: 0 /* None */,\n conditions: emptyArray,\n requestContainingDirectory: void 0,\n reportDiagnostic: noop,\n isConfigLookup: false,\n candidateIsFromPackageJsonField: false,\n resolvedPackageDirectory: false\n };\n}\nfunction getPackageScopeForPath(directory, state) {\n return forEachAncestorDirectoryStoppingAtGlobalCache(\n state.host,\n directory,\n (dir) => getPackageJsonInfo(\n dir,\n /*onlyRecordFailures*/\n false,\n state\n )\n );\n}\nfunction getVersionPathsOfPackageJsonInfo(packageJsonInfo, state) {\n if (packageJsonInfo.contents.versionPaths === void 0) {\n packageJsonInfo.contents.versionPaths = readPackageJsonTypesVersionPaths(packageJsonInfo.contents.packageJsonContent, state) || false;\n }\n return packageJsonInfo.contents.versionPaths || void 0;\n}\nfunction getPeerDependenciesOfPackageJsonInfo(packageJsonInfo, state) {\n if (packageJsonInfo.contents.peerDependencies === void 0) {\n packageJsonInfo.contents.peerDependencies = readPackageJsonPeerDependencies(packageJsonInfo, state) || false;\n }\n return packageJsonInfo.contents.peerDependencies || void 0;\n}\nfunction readPackageJsonPeerDependencies(packageJsonInfo, state) {\n const peerDependencies = readPackageJsonField(packageJsonInfo.contents.packageJsonContent, \"peerDependencies\", \"object\", state);\n if (peerDependencies === void 0) return void 0;\n if (state.traceEnabled) trace(state.host, Diagnostics.package_json_has_a_peerDependencies_field);\n const packageDirectory = realPath(packageJsonInfo.packageDirectory, state.host, state.traceEnabled);\n const nodeModules = packageDirectory.substring(0, packageDirectory.lastIndexOf(\"node_modules\") + \"node_modules\".length) + directorySeparator;\n let result = \"\";\n for (const key in peerDependencies) {\n if (hasProperty(peerDependencies, key)) {\n const peerPackageJson = getPackageJsonInfo(\n nodeModules + key,\n /*onlyRecordFailures*/\n false,\n state\n );\n if (peerPackageJson) {\n const version2 = peerPackageJson.contents.packageJsonContent.version;\n result += `+${key}@${version2}`;\n if (state.traceEnabled) trace(state.host, Diagnostics.Found_peerDependency_0_with_1_version, key, version2);\n } else {\n if (state.traceEnabled) trace(state.host, Diagnostics.Failed_to_find_peerDependency_0, key);\n }\n }\n }\n return result;\n}\nfunction getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {\n var _a, _b, _c, _d, _e, _f;\n const { host, traceEnabled } = state;\n const packageJsonPath = combinePaths(packageDirectory, \"package.json\");\n if (onlyRecordFailures) {\n (_a = state.failedLookupLocations) == null ? void 0 : _a.push(packageJsonPath);\n return void 0;\n }\n const existing = (_b = state.packageJsonInfoCache) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n if (existing !== void 0) {\n if (isPackageJsonInfo(existing)) {\n if (traceEnabled) trace(host, Diagnostics.File_0_exists_according_to_earlier_cached_lookups, packageJsonPath);\n (_c = state.affectingLocations) == null ? void 0 : _c.push(packageJsonPath);\n return existing.packageDirectory === packageDirectory ? existing : { packageDirectory, contents: existing.contents };\n } else {\n if (existing.directoryExists && traceEnabled) trace(host, Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups, packageJsonPath);\n (_d = state.failedLookupLocations) == null ? void 0 : _d.push(packageJsonPath);\n return void 0;\n }\n }\n const directoryExists = directoryProbablyExists(packageDirectory, host);\n if (directoryExists && host.fileExists(packageJsonPath)) {\n const packageJsonContent = readJson(packageJsonPath, host);\n if (traceEnabled) {\n trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);\n }\n const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0, peerDependencies: void 0 } };\n if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly) state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, result);\n (_e = state.affectingLocations) == null ? void 0 : _e.push(packageJsonPath);\n return result;\n } else {\n if (directoryExists && traceEnabled) {\n trace(host, Diagnostics.File_0_does_not_exist, packageJsonPath);\n }\n if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly) state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, { packageDirectory, directoryExists });\n (_f = state.failedLookupLocations) == null ? void 0 : _f.push(packageJsonPath);\n }\n}\nfunction loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJson) {\n const versionPaths = packageJson && getVersionPathsOfPackageJsonInfo(packageJson, state);\n let packageFile;\n if (packageJson && arePathsEqual(packageJson == null ? void 0 : packageJson.packageDirectory, candidate, state.host)) {\n if (state.isConfigLookup) {\n packageFile = readPackageJsonTSConfigField(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state);\n } else {\n packageFile = extensions & 4 /* Declaration */ && readPackageJsonTypesFields(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state) || extensions & (3 /* ImplementationFiles */ | 4 /* Declaration */) && readPackageJsonMainField(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state) || void 0;\n }\n }\n const loader = (extensions2, candidate2, onlyRecordFailures2, state2) => {\n const fromFile = loadFileNameFromPackageJsonField(\n extensions2,\n candidate2,\n /*packageJsonValue*/\n void 0,\n onlyRecordFailures2,\n state2\n );\n if (fromFile) {\n return noPackageId(fromFile);\n }\n const expandedExtensions = extensions2 === 4 /* Declaration */ ? 1 /* TypeScript */ | 4 /* Declaration */ : extensions2;\n const features = state2.features;\n const candidateIsFromPackageJsonField = state2.candidateIsFromPackageJsonField;\n state2.candidateIsFromPackageJsonField = true;\n if ((packageJson == null ? void 0 : packageJson.contents.packageJsonContent.type) !== \"module\") {\n state2.features &= ~32 /* EsmMode */;\n }\n const result = nodeLoadModuleByRelativeName(\n expandedExtensions,\n candidate2,\n onlyRecordFailures2,\n state2,\n /*considerPackageJson*/\n false\n );\n state2.features = features;\n state2.candidateIsFromPackageJsonField = candidateIsFromPackageJsonField;\n return result;\n };\n const onlyRecordFailuresForPackageFile = packageFile ? !directoryProbablyExists(getDirectoryPath(packageFile), state.host) : void 0;\n const onlyRecordFailuresForIndex = onlyRecordFailures || !directoryProbablyExists(candidate, state.host);\n const indexPath = combinePaths(candidate, state.isConfigLookup ? \"tsconfig\" : \"index\");\n if (versionPaths && (!packageFile || containsPath(candidate, packageFile))) {\n const moduleName = getRelativePathFromDirectory(\n candidate,\n packageFile || indexPath,\n /*ignoreCase*/\n false\n );\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, moduleName);\n }\n const pathPatterns = tryParsePatterns(versionPaths.paths);\n const result = tryLoadModuleUsingPaths(extensions, moduleName, candidate, versionPaths.paths, pathPatterns, loader, onlyRecordFailuresForPackageFile || onlyRecordFailuresForIndex, state);\n if (result) {\n return removeIgnoredPackageId(result.value);\n }\n }\n const packageFileResult = packageFile && removeIgnoredPackageId(loader(extensions, packageFile, onlyRecordFailuresForPackageFile, state));\n if (packageFileResult) return packageFileResult;\n if (!(state.features & 32 /* EsmMode */)) {\n return loadModuleFromFile(extensions, indexPath, onlyRecordFailuresForIndex, state);\n }\n}\nfunction extensionIsOk(extensions, extension) {\n return extensions & 2 /* JavaScript */ && (extension === \".js\" /* Js */ || extension === \".jsx\" /* Jsx */ || extension === \".mjs\" /* Mjs */ || extension === \".cjs\" /* Cjs */) || extensions & 1 /* TypeScript */ && (extension === \".ts\" /* Ts */ || extension === \".tsx\" /* Tsx */ || extension === \".mts\" /* Mts */ || extension === \".cts\" /* Cts */) || extensions & 4 /* Declaration */ && (extension === \".d.ts\" /* Dts */ || extension === \".d.mts\" /* Dmts */ || extension === \".d.cts\" /* Dcts */) || extensions & 8 /* Json */ && extension === \".json\" /* Json */ || false;\n}\nfunction parsePackageName(moduleName) {\n let idx = moduleName.indexOf(directorySeparator);\n if (moduleName[0] === \"@\") {\n idx = moduleName.indexOf(directorySeparator, idx + 1);\n }\n return idx === -1 ? { packageName: moduleName, rest: \"\" } : { packageName: moduleName.slice(0, idx), rest: moduleName.slice(idx + 1) };\n}\nfunction allKeysStartWithDot(obj) {\n return every(getOwnKeys(obj), (k) => startsWith(k, \".\"));\n}\nfunction noKeyStartsWithDot(obj) {\n return !some(getOwnKeys(obj), (k) => startsWith(k, \".\"));\n}\nfunction loadModuleFromSelfNameReference(extensions, moduleName, directory, state, cache, redirectedReference) {\n var _a, _b;\n const directoryPath = getNormalizedAbsolutePath(directory, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n const scope = getPackageScopeForPath(directoryPath, state);\n if (!scope || !scope.contents.packageJsonContent.exports) {\n return void 0;\n }\n if (typeof scope.contents.packageJsonContent.name !== \"string\") {\n return void 0;\n }\n const parts = getPathComponents(moduleName);\n const nameParts = getPathComponents(scope.contents.packageJsonContent.name);\n if (!every(nameParts, (p, i) => parts[i] === p)) {\n return void 0;\n }\n const trailingParts = parts.slice(nameParts.length);\n const subpath = !length(trailingParts) ? \".\" : `.${directorySeparator}${trailingParts.join(directorySeparator)}`;\n if (getAllowJSCompilerOption(state.compilerOptions) && !pathContainsNodeModules(directory)) {\n return loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference);\n }\n const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n return loadModuleFromExports(scope, priorityExtensions, subpath, state, cache, redirectedReference) || loadModuleFromExports(scope, secondaryExtensions, subpath, state, cache, redirectedReference);\n}\nfunction loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {\n if (!scope.contents.packageJsonContent.exports) {\n return void 0;\n }\n if (subpath === \".\") {\n let mainExport;\n if (typeof scope.contents.packageJsonContent.exports === \"string\" || Array.isArray(scope.contents.packageJsonContent.exports) || typeof scope.contents.packageJsonContent.exports === \"object\" && noKeyStartsWithDot(scope.contents.packageJsonContent.exports)) {\n mainExport = scope.contents.packageJsonContent.exports;\n } else if (hasProperty(scope.contents.packageJsonContent.exports, \".\")) {\n mainExport = scope.contents.packageJsonContent.exports[\".\"];\n }\n if (mainExport) {\n const loadModuleFromTargetExportOrImport = getLoadModuleFromTargetExportOrImport(\n extensions,\n state,\n cache,\n redirectedReference,\n subpath,\n scope,\n /*isImports*/\n false\n );\n return loadModuleFromTargetExportOrImport(\n mainExport,\n \"\",\n /*pattern*/\n false,\n \".\"\n );\n }\n } else if (allKeysStartWithDot(scope.contents.packageJsonContent.exports)) {\n if (typeof scope.contents.packageJsonContent.exports !== \"object\") {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n const result = loadModuleFromExportsOrImports(\n extensions,\n state,\n cache,\n redirectedReference,\n subpath,\n scope.contents.packageJsonContent.exports,\n scope,\n /*isImports*/\n false\n );\n if (result) {\n return result;\n }\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n}\nfunction loadModuleFromImports(extensions, moduleName, directory, state, cache, redirectedReference) {\n var _a, _b;\n if (moduleName === \"#\" || startsWith(moduleName, \"#/\")) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n const directoryPath = getNormalizedAbsolutePath(directory, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n const scope = getPackageScopeForPath(directoryPath, state);\n if (!scope) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve, directoryPath);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n if (!scope.contents.packageJsonContent.imports) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_no_imports_defined, scope.packageDirectory);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n const result = loadModuleFromExportsOrImports(\n extensions,\n state,\n cache,\n redirectedReference,\n moduleName,\n scope.contents.packageJsonContent.imports,\n scope,\n /*isImports*/\n true\n );\n if (result) {\n return result;\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1, moduleName, scope.packageDirectory);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n}\nfunction comparePatternKeys(a, b) {\n const aPatternIndex = a.indexOf(\"*\");\n const bPatternIndex = b.indexOf(\"*\");\n const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLenA > baseLenB) return -1 /* LessThan */;\n if (baseLenB > baseLenA) return 1 /* GreaterThan */;\n if (aPatternIndex === -1) return 1 /* GreaterThan */;\n if (bPatternIndex === -1) return -1 /* LessThan */;\n if (a.length > b.length) return -1 /* LessThan */;\n if (b.length > a.length) return 1 /* GreaterThan */;\n return 0 /* EqualTo */;\n}\nfunction loadModuleFromExportsOrImports(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports) {\n const loadModuleFromTargetExportOrImport = getLoadModuleFromTargetExportOrImport(extensions, state, cache, redirectedReference, moduleName, scope, isImports);\n if (!endsWith(moduleName, directorySeparator) && !moduleName.includes(\"*\") && hasProperty(lookupTable, moduleName)) {\n const target = lookupTable[moduleName];\n return loadModuleFromTargetExportOrImport(\n target,\n /*subpath*/\n \"\",\n /*pattern*/\n false,\n moduleName\n );\n }\n const expandingKeys = toSorted(filter(getOwnKeys(lookupTable), (k) => hasOneAsterisk(k) || endsWith(k, \"/\")), comparePatternKeys);\n for (const potentialTarget of expandingKeys) {\n if (state.features & 16 /* ExportsPatternTrailers */ && matchesPatternWithTrailer(potentialTarget, moduleName)) {\n const target = lookupTable[potentialTarget];\n const starPos = potentialTarget.indexOf(\"*\");\n const subpath = moduleName.substring(potentialTarget.substring(0, starPos).length, moduleName.length - (potentialTarget.length - 1 - starPos));\n return loadModuleFromTargetExportOrImport(\n target,\n subpath,\n /*pattern*/\n true,\n potentialTarget\n );\n } else if (endsWith(potentialTarget, \"*\") && startsWith(moduleName, potentialTarget.substring(0, potentialTarget.length - 1))) {\n const target = lookupTable[potentialTarget];\n const subpath = moduleName.substring(potentialTarget.length - 1);\n return loadModuleFromTargetExportOrImport(\n target,\n subpath,\n /*pattern*/\n true,\n potentialTarget\n );\n } else if (startsWith(moduleName, potentialTarget)) {\n const target = lookupTable[potentialTarget];\n const subpath = moduleName.substring(potentialTarget.length);\n return loadModuleFromTargetExportOrImport(\n target,\n subpath,\n /*pattern*/\n false,\n potentialTarget\n );\n }\n }\n function matchesPatternWithTrailer(target, name) {\n if (endsWith(target, \"*\")) return false;\n const starPos = target.indexOf(\"*\");\n if (starPos === -1) return false;\n return startsWith(name, target.substring(0, starPos)) && endsWith(name, target.substring(starPos + 1));\n }\n}\nfunction hasOneAsterisk(patternKey) {\n const firstStar = patternKey.indexOf(\"*\");\n return firstStar !== -1 && firstStar === patternKey.lastIndexOf(\"*\");\n}\nfunction getLoadModuleFromTargetExportOrImport(extensions, state, cache, redirectedReference, moduleName, scope, isImports) {\n return loadModuleFromTargetExportOrImport;\n function loadModuleFromTargetExportOrImport(target, subpath, pattern, key) {\n var _a, _b;\n if (typeof target === \"string\") {\n if (!pattern && subpath.length > 0 && !endsWith(target, \"/\")) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n if (!startsWith(target, \"./\")) {\n if (isImports && !startsWith(target, \"../\") && !startsWith(target, \"/\") && !isRootedDiskPath(target)) {\n const combinedLookup = pattern ? target.replace(/\\*/g, subpath) : target + subpath;\n traceIfEnabled(state, Diagnostics.Using_0_subpath_1_with_target_2, \"imports\", key, combinedLookup);\n traceIfEnabled(state, Diagnostics.Resolving_module_0_from_1, combinedLookup, scope.packageDirectory + \"/\");\n const result = nodeModuleNameResolverWorker(\n state.features,\n combinedLookup,\n scope.packageDirectory + \"/\",\n state.compilerOptions,\n state.host,\n cache,\n extensions,\n /*isConfigLookup*/\n false,\n redirectedReference,\n state.conditions\n );\n (_a = state.failedLookupLocations) == null ? void 0 : _a.push(...result.failedLookupLocations ?? emptyArray);\n (_b = state.affectingLocations) == null ? void 0 : _b.push(...result.affectingLocations ?? emptyArray);\n return toSearchResult(\n result.resolvedModule ? {\n path: result.resolvedModule.resolvedFileName,\n extension: result.resolvedModule.extension,\n packageId: result.resolvedModule.packageId,\n originalPath: result.resolvedModule.originalPath,\n resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension\n } : void 0\n );\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n const parts = pathIsRelative(target) ? getPathComponents(target).slice(1) : getPathComponents(target);\n const partsAfterFirst = parts.slice(1);\n if (partsAfterFirst.includes(\"..\") || partsAfterFirst.includes(\".\") || partsAfterFirst.includes(\"node_modules\")) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n const resolvedTarget = combinePaths(scope.packageDirectory, target);\n const subpathParts = getPathComponents(subpath);\n if (subpathParts.includes(\"..\") || subpathParts.includes(\".\") || subpathParts.includes(\"node_modules\")) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Using_0_subpath_1_with_target_2, isImports ? \"imports\" : \"exports\", key, pattern ? target.replace(/\\*/g, subpath) : target + subpath);\n }\n const finalPath = toAbsolutePath(pattern ? resolvedTarget.replace(/\\*/g, subpath) : resolvedTarget + subpath);\n const inputLink = tryLoadInputFileForPath(finalPath, subpath, combinePaths(scope.packageDirectory, \"package.json\"), isImports);\n if (inputLink) return inputLink;\n return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(\n extensions,\n finalPath,\n target,\n /*onlyRecordFailures*/\n false,\n state\n ), state));\n } else if (typeof target === \"object\" && target !== null) {\n if (!Array.isArray(target)) {\n traceIfEnabled(state, Diagnostics.Entering_conditional_exports);\n for (const condition of getOwnKeys(target)) {\n if (condition === \"default\" || state.conditions.includes(condition) || isApplicableVersionedTypesKey(state.conditions, condition)) {\n traceIfEnabled(state, Diagnostics.Matched_0_condition_1, isImports ? \"imports\" : \"exports\", condition);\n const subTarget = target[condition];\n const result = loadModuleFromTargetExportOrImport(subTarget, subpath, pattern, key);\n if (result) {\n traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition);\n traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);\n return result;\n } else {\n traceIfEnabled(state, Diagnostics.Failed_to_resolve_under_condition_0, condition);\n }\n } else {\n traceIfEnabled(state, Diagnostics.Saw_non_matching_condition_0, condition);\n }\n }\n traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);\n return void 0;\n } else {\n if (!length(target)) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n for (const elem of target) {\n const result = loadModuleFromTargetExportOrImport(elem, subpath, pattern, key);\n if (result) {\n return result;\n }\n }\n }\n } else if (target === null) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n }\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n }\n return toSearchResult(\n /*value*/\n void 0\n );\n function toAbsolutePath(path) {\n var _a2, _b2;\n if (path === void 0) return path;\n return getNormalizedAbsolutePath(path, (_b2 = (_a2 = state.host).getCurrentDirectory) == null ? void 0 : _b2.call(_a2));\n }\n function combineDirectoryPath(root, dir) {\n return ensureTrailingDirectorySeparator(combinePaths(root, dir));\n }\n function tryLoadInputFileForPath(finalPath, entry, packagePath, isImports2) {\n var _a2, _b2, _c, _d;\n if (!state.isConfigLookup && (state.compilerOptions.declarationDir || state.compilerOptions.outDir) && !finalPath.includes(\"/node_modules/\") && (state.compilerOptions.configFile ? containsPath(scope.packageDirectory, toAbsolutePath(state.compilerOptions.configFile.fileName), !useCaseSensitiveFileNames(state)) : true)) {\n const getCanonicalFileName = hostGetCanonicalFileName({ useCaseSensitiveFileNames: () => useCaseSensitiveFileNames(state) });\n const commonSourceDirGuesses = [];\n if (state.compilerOptions.rootDir || state.compilerOptions.composite && state.compilerOptions.configFilePath) {\n const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [], ((_b2 = (_a2 = state.host).getCurrentDirectory) == null ? void 0 : _b2.call(_a2)) || \"\", getCanonicalFileName));\n commonSourceDirGuesses.push(commonDir);\n } else if (state.requestContainingDirectory) {\n const requestingFile = toAbsolutePath(combinePaths(state.requestContainingDirectory, \"index.ts\"));\n const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [requestingFile, toAbsolutePath(packagePath)], ((_d = (_c = state.host).getCurrentDirectory) == null ? void 0 : _d.call(_c)) || \"\", getCanonicalFileName));\n commonSourceDirGuesses.push(commonDir);\n let fragment = ensureTrailingDirectorySeparator(commonDir);\n while (fragment && fragment.length > 1) {\n const parts = getPathComponents(fragment);\n parts.pop();\n const commonDir2 = getPathFromPathComponents(parts);\n commonSourceDirGuesses.unshift(commonDir2);\n fragment = ensureTrailingDirectorySeparator(commonDir2);\n }\n }\n if (commonSourceDirGuesses.length > 1) {\n state.reportDiagnostic(createCompilerDiagnostic(\n isImports2 ? Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate : Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,\n entry === \"\" ? \".\" : entry,\n // replace empty string with `.` - the reverse of the operation done when entries are built - so main entrypoint errors don't look weird\n packagePath\n ));\n }\n for (const commonSourceDirGuess of commonSourceDirGuesses) {\n const candidateDirectories = getOutputDirectoriesForBaseDirectory(commonSourceDirGuess);\n for (const candidateDir of candidateDirectories) {\n if (containsPath(candidateDir, finalPath, !useCaseSensitiveFileNames(state))) {\n const pathFragment = finalPath.slice(candidateDir.length + 1);\n const possibleInputBase = combinePaths(commonSourceDirGuess, pathFragment);\n const jsAndDtsExtensions = [\".mjs\" /* Mjs */, \".cjs\" /* Cjs */, \".js\" /* Js */, \".json\" /* Json */, \".d.mts\" /* Dmts */, \".d.cts\" /* Dcts */, \".d.ts\" /* Dts */];\n for (const ext of jsAndDtsExtensions) {\n if (fileExtensionIs(possibleInputBase, ext)) {\n const inputExts = getPossibleOriginalInputExtensionForExtension(possibleInputBase);\n for (const possibleExt of inputExts) {\n if (!extensionIsOk(extensions, possibleExt)) continue;\n const possibleInputWithInputExtension = changeAnyExtension(possibleInputBase, possibleExt, ext, !useCaseSensitiveFileNames(state));\n if (state.host.fileExists(possibleInputWithInputExtension)) {\n return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(\n extensions,\n possibleInputWithInputExtension,\n /*packageJsonValue*/\n void 0,\n /*onlyRecordFailures*/\n false,\n state\n ), state));\n }\n }\n }\n }\n }\n }\n }\n }\n return void 0;\n function getOutputDirectoriesForBaseDirectory(commonSourceDirGuess) {\n var _a3, _b3;\n const currentDir = state.compilerOptions.configFile ? ((_b3 = (_a3 = state.host).getCurrentDirectory) == null ? void 0 : _b3.call(_a3)) || \"\" : commonSourceDirGuess;\n const candidateDirectories = [];\n if (state.compilerOptions.declarationDir) {\n candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.declarationDir)));\n }\n if (state.compilerOptions.outDir && state.compilerOptions.outDir !== state.compilerOptions.declarationDir) {\n candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.outDir)));\n }\n return candidateDirectories;\n }\n }\n }\n}\nfunction isApplicableVersionedTypesKey(conditions, key) {\n if (!conditions.includes(\"types\")) return false;\n if (!startsWith(key, \"types@\")) return false;\n const range = VersionRange.tryParse(key.substring(\"types@\".length));\n if (!range) return false;\n return range.test(version);\n}\nfunction loadModuleFromNearestNodeModulesDirectory(extensions, moduleName, directory, state, cache, redirectedReference) {\n return loadModuleFromNearestNodeModulesDirectoryWorker(\n extensions,\n moduleName,\n directory,\n state,\n /*typesScopeOnly*/\n false,\n cache,\n redirectedReference\n );\n}\nfunction loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, directory, state) {\n return loadModuleFromNearestNodeModulesDirectoryWorker(\n 4 /* Declaration */,\n moduleName,\n directory,\n state,\n /*typesScopeOnly*/\n true,\n /*cache*/\n void 0,\n /*redirectedReference*/\n void 0\n );\n}\nfunction loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) {\n const mode = state.features === 0 ? void 0 : state.features & 32 /* EsmMode */ || state.conditions.includes(\"import\") ? 99 /* ESNext */ : 1 /* CommonJS */;\n const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n if (priorityExtensions) {\n traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0, formatExtensions(priorityExtensions));\n const result = lookup(priorityExtensions);\n if (result) return result;\n }\n if (secondaryExtensions && !typesScopeOnly) {\n traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0, formatExtensions(secondaryExtensions));\n return lookup(secondaryExtensions);\n }\n function lookup(extensions2) {\n return forEachAncestorDirectoryStoppingAtGlobalCache(\n state.host,\n normalizeSlashes(directory),\n (ancestorDirectory) => {\n if (getBaseFileName(ancestorDirectory) !== \"node_modules\") {\n const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, ancestorDirectory, redirectedReference, state);\n if (resolutionFromCache) {\n return resolutionFromCache;\n }\n return toSearchResult(loadModuleFromImmediateNodeModulesDirectory(extensions2, moduleName, ancestorDirectory, state, typesScopeOnly, cache, redirectedReference));\n }\n }\n );\n }\n}\nfunction forEachAncestorDirectoryStoppingAtGlobalCache(host, directory, callback) {\n var _a;\n const globalCache = (_a = host == null ? void 0 : host.getGlobalTypingsCacheLocation) == null ? void 0 : _a.call(host);\n return forEachAncestorDirectory(directory, (ancestorDirectory) => {\n const result = callback(ancestorDirectory);\n if (result !== void 0) return result;\n if (ancestorDirectory === globalCache) return false;\n }) || void 0;\n}\nfunction loadModuleFromImmediateNodeModulesDirectory(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) {\n const nodeModulesFolder = combinePaths(directory, \"node_modules\");\n const nodeModulesFolderExists = directoryProbablyExists(nodeModulesFolder, state.host);\n if (!nodeModulesFolderExists && state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesFolder);\n }\n if (!typesScopeOnly) {\n const packageResult = loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesFolder, nodeModulesFolderExists, state, cache, redirectedReference);\n if (packageResult) {\n return packageResult;\n }\n }\n if (extensions & 4 /* Declaration */) {\n const nodeModulesAtTypes2 = combinePaths(nodeModulesFolder, \"@types\");\n let nodeModulesAtTypesExists = nodeModulesFolderExists;\n if (nodeModulesFolderExists && !directoryProbablyExists(nodeModulesAtTypes2, state.host)) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesAtTypes2);\n }\n nodeModulesAtTypesExists = false;\n }\n return loadModuleFromSpecificNodeModulesDirectory(4 /* Declaration */, mangleScopedPackageNameWithTrace(moduleName, state), nodeModulesAtTypes2, nodeModulesAtTypesExists, state, cache, redirectedReference);\n }\n}\nfunction loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) {\n var _a, _b;\n const candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName));\n const { packageName, rest } = parsePackageName(moduleName);\n const packageDirectory = combinePaths(nodeModulesDirectory, packageName);\n let rootPackageInfo;\n let packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state);\n if (rest !== \"\" && packageInfo && (!(state.features & 8 /* Exports */) || !hasProperty(((_a = rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state)) == null ? void 0 : _a.contents.packageJsonContent) ?? emptyArray, \"exports\"))) {\n const fromFile = loadModuleFromFile(extensions, candidate, !nodeModulesDirectoryExists, state);\n if (fromFile) {\n return noPackageId(fromFile);\n }\n const fromDirectory = loadNodeModuleFromDirectoryWorker(\n extensions,\n candidate,\n !nodeModulesDirectoryExists,\n state,\n packageInfo\n );\n return withPackageId(packageInfo, fromDirectory, state);\n }\n const loader = (extensions2, candidate2, onlyRecordFailures, state2) => {\n let pathAndExtension = (rest || !(state2.features & 32 /* EsmMode */)) && loadModuleFromFile(extensions2, candidate2, onlyRecordFailures, state2) || loadNodeModuleFromDirectoryWorker(\n extensions2,\n candidate2,\n onlyRecordFailures,\n state2,\n packageInfo\n );\n if (!pathAndExtension && !rest && packageInfo && (packageInfo.contents.packageJsonContent.exports === void 0 || packageInfo.contents.packageJsonContent.exports === null) && state2.features & 32 /* EsmMode */) {\n pathAndExtension = loadModuleFromFile(extensions2, combinePaths(candidate2, \"index.js\"), onlyRecordFailures, state2);\n }\n return withPackageId(packageInfo, pathAndExtension, state2);\n };\n if (rest !== \"\") {\n packageInfo = rootPackageInfo ?? getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);\n }\n if (packageInfo) {\n state.resolvedPackageDirectory = true;\n }\n if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & 8 /* Exports */) {\n return (_b = loadModuleFromExports(packageInfo, extensions, combinePaths(\".\", rest), state, cache, redirectedReference)) == null ? void 0 : _b.value;\n }\n const versionPaths = rest !== \"\" && packageInfo ? getVersionPathsOfPackageJsonInfo(packageInfo, state) : void 0;\n if (versionPaths) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, rest);\n }\n const packageDirectoryExists = nodeModulesDirectoryExists && directoryProbablyExists(packageDirectory, state.host);\n const pathPatterns = tryParsePatterns(versionPaths.paths);\n const fromPaths = tryLoadModuleUsingPaths(extensions, rest, packageDirectory, versionPaths.paths, pathPatterns, loader, !packageDirectoryExists, state);\n if (fromPaths) {\n return fromPaths.value;\n }\n }\n return loader(extensions, candidate, !nodeModulesDirectoryExists, state);\n}\nfunction tryLoadModuleUsingPaths(extensions, moduleName, baseDirectory, paths, pathPatterns, loader, onlyRecordFailures, state) {\n const matchedPattern = matchPatternOrExact(pathPatterns, moduleName);\n if (matchedPattern) {\n const matchedStar = isString(matchedPattern) ? void 0 : matchedText(matchedPattern, moduleName);\n const matchedPatternText = isString(matchedPattern) ? matchedPattern : patternText(matchedPattern);\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Module_name_0_matched_pattern_1, moduleName, matchedPatternText);\n }\n const resolved = forEach(paths[matchedPatternText], (subst) => {\n const path = matchedStar ? replaceFirstStar(subst, matchedStar) : subst;\n const candidate = normalizePath(combinePaths(baseDirectory, path));\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1, subst, path);\n }\n const extension = tryGetExtensionFromPath2(subst);\n if (extension !== void 0) {\n const path2 = tryFile(candidate, onlyRecordFailures, state);\n if (path2 !== void 0) {\n return noPackageId({ path: path2, ext: extension, resolvedUsingTsExtension: void 0 });\n }\n }\n return loader(extensions, candidate, onlyRecordFailures || !directoryProbablyExists(getDirectoryPath(candidate), state.host), state);\n });\n return { value: resolved };\n }\n}\nvar mangledScopedPackageSeparator = \"__\";\nfunction mangleScopedPackageNameWithTrace(packageName, state) {\n const mangled = mangleScopedPackageName(packageName);\n if (state.traceEnabled && mangled !== packageName) {\n trace(state.host, Diagnostics.Scoped_package_detected_looking_in_0, mangled);\n }\n return mangled;\n}\nfunction getTypesPackageName(packageName) {\n return `@types/${mangleScopedPackageName(packageName)}`;\n}\nfunction mangleScopedPackageName(packageName) {\n if (startsWith(packageName, \"@\")) {\n const replaceSlash = packageName.replace(directorySeparator, mangledScopedPackageSeparator);\n if (replaceSlash !== packageName) {\n return replaceSlash.slice(1);\n }\n }\n return packageName;\n}\nfunction getPackageNameFromTypesPackageName(mangledName) {\n const withoutAtTypePrefix = removePrefix(mangledName, \"@types/\");\n if (withoutAtTypePrefix !== mangledName) {\n return unmangleScopedPackageName(withoutAtTypePrefix);\n }\n return mangledName;\n}\nfunction unmangleScopedPackageName(typesPackageName) {\n return typesPackageName.includes(mangledScopedPackageSeparator) ? \"@\" + typesPackageName.replace(mangledScopedPackageSeparator, directorySeparator) : typesPackageName;\n}\nfunction tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, containingDirectory, redirectedReference, state) {\n const result = cache && cache.getFromNonRelativeNameCache(moduleName, mode, containingDirectory, redirectedReference);\n if (result) {\n if (state.traceEnabled) {\n trace(state.host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory);\n }\n state.resultFromCache = result;\n return {\n value: result.resolvedModule && {\n path: result.resolvedModule.resolvedFileName,\n originalPath: result.resolvedModule.originalPath || true,\n extension: result.resolvedModule.extension,\n packageId: result.resolvedModule.packageId,\n resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension\n }\n };\n }\n}\nfunction classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference) {\n const traceEnabled = isTraceEnabled(compilerOptions, host);\n const failedLookupLocations = [];\n const affectingLocations = [];\n const containingDirectory = getDirectoryPath(containingFile);\n const diagnostics = [];\n const state = {\n compilerOptions,\n host,\n traceEnabled,\n failedLookupLocations,\n affectingLocations,\n packageJsonInfoCache: cache,\n features: 0 /* None */,\n conditions: [],\n requestContainingDirectory: containingDirectory,\n reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n isConfigLookup: false,\n candidateIsFromPackageJsonField: false,\n resolvedPackageDirectory: false\n };\n const resolved = tryResolve(1 /* TypeScript */ | 4 /* Declaration */) || tryResolve(2 /* JavaScript */ | (compilerOptions.resolveJsonModule ? 8 /* Json */ : 0));\n return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(\n moduleName,\n resolved && resolved.value,\n (resolved == null ? void 0 : resolved.value) && pathContainsNodeModules(resolved.value.path),\n failedLookupLocations,\n affectingLocations,\n diagnostics,\n state,\n cache\n );\n function tryResolve(extensions) {\n const resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loadModuleFromFileNoPackageId, state);\n if (resolvedUsingSettings) {\n return { value: resolvedUsingSettings };\n }\n if (!isExternalModuleNameRelative(moduleName)) {\n const resolved2 = forEachAncestorDirectoryStoppingAtGlobalCache(\n state.host,\n containingDirectory,\n (directory) => {\n const resolutionFromCache = tryFindNonRelativeModuleNameInCache(\n cache,\n moduleName,\n /*mode*/\n void 0,\n directory,\n redirectedReference,\n state\n );\n if (resolutionFromCache) {\n return resolutionFromCache;\n }\n const searchName = normalizePath(combinePaths(directory, moduleName));\n return toSearchResult(loadModuleFromFileNoPackageId(\n extensions,\n searchName,\n /*onlyRecordFailures*/\n false,\n state\n ));\n }\n );\n if (resolved2) return resolved2;\n if (extensions & (1 /* TypeScript */ | 4 /* Declaration */)) {\n let resolved3 = loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, containingDirectory, state);\n if (extensions & 4 /* Declaration */) resolved3 ?? (resolved3 = resolveFromTypeRoot(moduleName, state));\n return resolved3;\n }\n } else {\n const candidate = normalizePath(combinePaths(containingDirectory, moduleName));\n return toSearchResult(loadModuleFromFileNoPackageId(\n extensions,\n candidate,\n /*onlyRecordFailures*/\n false,\n state\n ));\n }\n }\n}\nfunction resolveFromTypeRoot(moduleName, state) {\n if (!state.compilerOptions.typeRoots) return;\n for (const typeRoot of state.compilerOptions.typeRoots) {\n const candidate = getCandidateFromTypeRoot(typeRoot, moduleName, state);\n const directoryExists = directoryProbablyExists(typeRoot, state.host);\n if (!directoryExists && state.traceEnabled) {\n trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot);\n }\n const resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, state);\n if (resolvedFromFile) {\n const packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path);\n const packageInfo = packageDirectory ? getPackageJsonInfo(\n packageDirectory,\n /*onlyRecordFailures*/\n false,\n state\n ) : void 0;\n return toSearchResult(withPackageId(packageInfo, resolvedFromFile, state));\n }\n const resolved = loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, state);\n if (resolved) return toSearchResult(resolved);\n }\n}\nfunction shouldAllowImportingTsExtension(compilerOptions, fromFileName) {\n return getAllowImportingTsExtensions(compilerOptions) || !!fromFileName && isDeclarationFileName(fromFileName);\n}\nfunction loadModuleFromGlobalCache(moduleName, projectName, compilerOptions, host, globalCache, packageJsonInfoCache) {\n const traceEnabled = isTraceEnabled(compilerOptions, host);\n if (traceEnabled) {\n trace(host, Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2, projectName, moduleName, globalCache);\n }\n const failedLookupLocations = [];\n const affectingLocations = [];\n const diagnostics = [];\n const state = {\n compilerOptions,\n host,\n traceEnabled,\n failedLookupLocations,\n affectingLocations,\n packageJsonInfoCache,\n features: 0 /* None */,\n conditions: [],\n requestContainingDirectory: void 0,\n reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n isConfigLookup: false,\n candidateIsFromPackageJsonField: false,\n resolvedPackageDirectory: false\n };\n const resolved = loadModuleFromImmediateNodeModulesDirectory(\n 4 /* Declaration */,\n moduleName,\n globalCache,\n state,\n /*typesScopeOnly*/\n false,\n /*cache*/\n void 0,\n /*redirectedReference*/\n void 0\n );\n return createResolvedModuleWithFailedLookupLocations(\n resolved,\n /*isExternalLibraryImport*/\n true,\n failedLookupLocations,\n affectingLocations,\n diagnostics,\n state.resultFromCache,\n /*cache*/\n void 0\n );\n}\nfunction toSearchResult(value) {\n return value !== void 0 ? { value } : void 0;\n}\nfunction traceIfEnabled(state, diagnostic, ...args) {\n if (state.traceEnabled) {\n trace(state.host, diagnostic, ...args);\n }\n}\nfunction useCaseSensitiveFileNames(state) {\n return !state.host.useCaseSensitiveFileNames ? true : typeof state.host.useCaseSensitiveFileNames === \"boolean\" ? state.host.useCaseSensitiveFileNames : state.host.useCaseSensitiveFileNames();\n}\n\n// src/compiler/binder.ts\nvar ModuleInstanceState = /* @__PURE__ */ ((ModuleInstanceState2) => {\n ModuleInstanceState2[ModuleInstanceState2[\"NonInstantiated\"] = 0] = \"NonInstantiated\";\n ModuleInstanceState2[ModuleInstanceState2[\"Instantiated\"] = 1] = \"Instantiated\";\n ModuleInstanceState2[ModuleInstanceState2[\"ConstEnumOnly\"] = 2] = \"ConstEnumOnly\";\n return ModuleInstanceState2;\n})(ModuleInstanceState || {});\nfunction getModuleInstanceState(node, visited) {\n if (node.body && !node.body.parent) {\n setParent(node.body, node);\n setParentRecursive(\n node.body,\n /*incremental*/\n false\n );\n }\n return node.body ? getModuleInstanceStateCached(node.body, visited) : 1 /* Instantiated */;\n}\nfunction getModuleInstanceStateCached(node, visited = /* @__PURE__ */ new Map()) {\n const nodeId = getNodeId(node);\n if (visited.has(nodeId)) {\n return visited.get(nodeId) || 0 /* NonInstantiated */;\n }\n visited.set(nodeId, void 0);\n const result = getModuleInstanceStateWorker(node, visited);\n visited.set(nodeId, result);\n return result;\n}\nfunction getModuleInstanceStateWorker(node, visited) {\n switch (node.kind) {\n // 1. interface declarations, type alias declarations\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return 0 /* NonInstantiated */;\n // 2. const enum declarations\n case 267 /* EnumDeclaration */:\n if (isEnumConst(node)) {\n return 2 /* ConstEnumOnly */;\n }\n break;\n // 3. non-exported import declarations\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n if (!hasSyntacticModifier(node, 32 /* Export */)) {\n return 0 /* NonInstantiated */;\n }\n break;\n // 4. Export alias declarations pointing at only uninstantiated modules or things uninstantiated modules contain\n case 279 /* ExportDeclaration */:\n const exportDeclaration = node;\n if (!exportDeclaration.moduleSpecifier && exportDeclaration.exportClause && exportDeclaration.exportClause.kind === 280 /* NamedExports */) {\n let state = 0 /* NonInstantiated */;\n for (const specifier of exportDeclaration.exportClause.elements) {\n const specifierState = getModuleInstanceStateForAliasTarget(specifier, visited);\n if (specifierState > state) {\n state = specifierState;\n }\n if (state === 1 /* Instantiated */) {\n return state;\n }\n }\n return state;\n }\n break;\n // 5. other uninstantiated module declarations.\n case 269 /* ModuleBlock */: {\n let state = 0 /* NonInstantiated */;\n forEachChild(node, (n) => {\n const childState = getModuleInstanceStateCached(n, visited);\n switch (childState) {\n case 0 /* NonInstantiated */:\n return;\n case 2 /* ConstEnumOnly */:\n state = 2 /* ConstEnumOnly */;\n return;\n case 1 /* Instantiated */:\n state = 1 /* Instantiated */;\n return true;\n default:\n Debug.assertNever(childState);\n }\n });\n return state;\n }\n case 268 /* ModuleDeclaration */:\n return getModuleInstanceState(node, visited);\n case 80 /* Identifier */:\n if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n return 0 /* NonInstantiated */;\n }\n }\n return 1 /* Instantiated */;\n}\nfunction getModuleInstanceStateForAliasTarget(specifier, visited) {\n const name = specifier.propertyName || specifier.name;\n if (name.kind !== 80 /* Identifier */) {\n return 1 /* Instantiated */;\n }\n let p = specifier.parent;\n while (p) {\n if (isBlock(p) || isModuleBlock(p) || isSourceFile(p)) {\n const statements = p.statements;\n let found;\n for (const statement of statements) {\n if (nodeHasName(statement, name)) {\n if (!statement.parent) {\n setParent(statement, p);\n setParentRecursive(\n statement,\n /*incremental*/\n false\n );\n }\n const state = getModuleInstanceStateCached(statement, visited);\n if (found === void 0 || state > found) {\n found = state;\n }\n if (found === 1 /* Instantiated */) {\n return found;\n }\n if (statement.kind === 272 /* ImportEqualsDeclaration */) {\n found = 1 /* Instantiated */;\n }\n }\n }\n if (found !== void 0) {\n return found;\n }\n }\n p = p.parent;\n }\n return 1 /* Instantiated */;\n}\nvar ContainerFlags = /* @__PURE__ */ ((ContainerFlags2) => {\n ContainerFlags2[ContainerFlags2[\"None\"] = 0] = \"None\";\n ContainerFlags2[ContainerFlags2[\"IsContainer\"] = 1] = \"IsContainer\";\n ContainerFlags2[ContainerFlags2[\"IsBlockScopedContainer\"] = 2] = \"IsBlockScopedContainer\";\n ContainerFlags2[ContainerFlags2[\"IsControlFlowContainer\"] = 4] = \"IsControlFlowContainer\";\n ContainerFlags2[ContainerFlags2[\"IsFunctionLike\"] = 8] = \"IsFunctionLike\";\n ContainerFlags2[ContainerFlags2[\"IsFunctionExpression\"] = 16] = \"IsFunctionExpression\";\n ContainerFlags2[ContainerFlags2[\"HasLocals\"] = 32] = \"HasLocals\";\n ContainerFlags2[ContainerFlags2[\"IsInterface\"] = 64] = \"IsInterface\";\n ContainerFlags2[ContainerFlags2[\"IsObjectLiteralOrClassExpressionMethodOrAccessor\"] = 128] = \"IsObjectLiteralOrClassExpressionMethodOrAccessor\";\n return ContainerFlags2;\n})(ContainerFlags || {});\nfunction createFlowNode(flags, node, antecedent) {\n return Debug.attachFlowNodeDebugInfo({ flags, id: 0, node, antecedent });\n}\nvar binder = /* @__PURE__ */ createBinder();\nfunction bindSourceFile(file, options) {\n mark(\"beforeBind\");\n binder(file, options);\n mark(\"afterBind\");\n measure(\"Bind\", \"beforeBind\", \"afterBind\");\n}\nfunction createBinder() {\n var file;\n var options;\n var languageVersion;\n var parent2;\n var container;\n var thisParentContainer;\n var blockScopeContainer;\n var lastContainer;\n var delayedTypeAliases;\n var seenThisKeyword;\n var jsDocImports;\n var currentFlow;\n var currentBreakTarget;\n var currentContinueTarget;\n var currentReturnTarget;\n var currentTrueTarget;\n var currentFalseTarget;\n var currentExceptionTarget;\n var preSwitchCaseFlow;\n var activeLabelList;\n var hasExplicitReturn;\n var inReturnPosition;\n var hasFlowEffects;\n var emitFlags;\n var inStrictMode;\n var inAssignmentPattern = false;\n var symbolCount = 0;\n var Symbol48;\n var classifiableNames;\n var unreachableFlow = createFlowNode(\n 1 /* Unreachable */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n var reportedUnreachableFlow = createFlowNode(\n 1 /* Unreachable */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n var bindBinaryExpressionFlow = createBindBinaryExpressionFlow();\n return bindSourceFile2;\n function createDiagnosticForNode2(node, message, ...args) {\n return createDiagnosticForNodeInSourceFile(getSourceFileOfNode(node) || file, node, message, ...args);\n }\n function bindSourceFile2(f, opts) {\n var _a, _b;\n file = f;\n options = opts;\n languageVersion = getEmitScriptTarget(options);\n inStrictMode = bindInStrictMode(file, opts);\n classifiableNames = /* @__PURE__ */ new Set();\n symbolCount = 0;\n Symbol48 = objectAllocator.getSymbolConstructor();\n Debug.attachFlowNodeDebugInfo(unreachableFlow);\n Debug.attachFlowNodeDebugInfo(reportedUnreachableFlow);\n if (!file.locals) {\n (_a = tracing) == null ? void 0 : _a.push(\n tracing.Phase.Bind,\n \"bindSourceFile\",\n { path: file.path },\n /*separateBeginAndEnd*/\n true\n );\n bind(file);\n (_b = tracing) == null ? void 0 : _b.pop();\n file.symbolCount = symbolCount;\n file.classifiableNames = classifiableNames;\n delayedBindJSDocTypedefTag();\n bindJSDocImports();\n }\n file = void 0;\n options = void 0;\n languageVersion = void 0;\n parent2 = void 0;\n container = void 0;\n thisParentContainer = void 0;\n blockScopeContainer = void 0;\n lastContainer = void 0;\n delayedTypeAliases = void 0;\n jsDocImports = void 0;\n seenThisKeyword = false;\n currentFlow = void 0;\n currentBreakTarget = void 0;\n currentContinueTarget = void 0;\n currentReturnTarget = void 0;\n currentTrueTarget = void 0;\n currentFalseTarget = void 0;\n currentExceptionTarget = void 0;\n activeLabelList = void 0;\n hasExplicitReturn = false;\n inReturnPosition = false;\n hasFlowEffects = false;\n inAssignmentPattern = false;\n emitFlags = 0 /* None */;\n }\n function bindInStrictMode(file2, opts) {\n if (getStrictOptionValue(opts, \"alwaysStrict\") && !file2.isDeclarationFile) {\n return true;\n } else {\n return !!file2.externalModuleIndicator;\n }\n }\n function createSymbol(flags, name) {\n symbolCount++;\n return new Symbol48(flags, name);\n }\n function addDeclarationToSymbol(symbol, node, symbolFlags) {\n symbol.flags |= symbolFlags;\n node.symbol = symbol;\n symbol.declarations = appendIfUnique(symbol.declarations, node);\n if (symbolFlags & (32 /* Class */ | 384 /* Enum */ | 1536 /* Module */ | 3 /* Variable */) && !symbol.exports) {\n symbol.exports = createSymbolTable();\n }\n if (symbolFlags & (32 /* Class */ | 64 /* Interface */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && !symbol.members) {\n symbol.members = createSymbolTable();\n }\n if (symbol.constEnumOnlyModule && symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) {\n symbol.constEnumOnlyModule = false;\n }\n if (symbolFlags & 111551 /* Value */) {\n setValueDeclaration(symbol, node);\n }\n }\n function getDeclarationName(node) {\n if (node.kind === 278 /* ExportAssignment */) {\n return node.isExportEquals ? \"export=\" /* ExportEquals */ : \"default\" /* Default */;\n }\n const name = getNameOfDeclaration(node);\n if (name) {\n if (isAmbientModule(node)) {\n const moduleName = getTextOfIdentifierOrLiteral(name);\n return isGlobalScopeAugmentation(node) ? \"__global\" : `\"${moduleName}\"`;\n }\n if (name.kind === 168 /* ComputedPropertyName */) {\n const nameExpression = name.expression;\n if (isStringOrNumericLiteralLike(nameExpression)) {\n return escapeLeadingUnderscores(nameExpression.text);\n }\n if (isSignedNumericLiteral(nameExpression)) {\n return tokenToString(nameExpression.operator) + nameExpression.operand.text;\n } else {\n Debug.fail(\"Only computed properties with literal names have declaration names\");\n }\n }\n if (isPrivateIdentifier(name)) {\n const containingClass = getContainingClass(node);\n if (!containingClass) {\n return void 0;\n }\n const containingClassSymbol = containingClass.symbol;\n return getSymbolNameForPrivateIdentifier(containingClassSymbol, name.escapedText);\n }\n if (isJsxNamespacedName(name)) {\n return getEscapedTextOfJsxNamespacedName(name);\n }\n return isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : void 0;\n }\n switch (node.kind) {\n case 177 /* Constructor */:\n return \"__constructor\" /* Constructor */;\n case 185 /* FunctionType */:\n case 180 /* CallSignature */:\n case 324 /* JSDocSignature */:\n return \"__call\" /* Call */;\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n return \"__new\" /* New */;\n case 182 /* IndexSignature */:\n return \"__index\" /* Index */;\n case 279 /* ExportDeclaration */:\n return \"__export\" /* ExportStar */;\n case 308 /* SourceFile */:\n return \"export=\" /* ExportEquals */;\n case 227 /* BinaryExpression */:\n if (getAssignmentDeclarationKind(node) === 2 /* ModuleExports */) {\n return \"export=\" /* ExportEquals */;\n }\n Debug.fail(\"Unknown binary declaration kind\");\n break;\n case 318 /* JSDocFunctionType */:\n return isJSDocConstructSignature(node) ? \"__new\" /* New */ : \"__call\" /* Call */;\n case 170 /* Parameter */:\n Debug.assert(node.parent.kind === 318 /* JSDocFunctionType */, \"Impossible parameter parent kind\", () => `parent is: ${Debug.formatSyntaxKind(node.parent.kind)}, expected JSDocFunctionType`);\n const functionType = node.parent;\n const index = functionType.parameters.indexOf(node);\n return \"arg\" + index;\n }\n }\n function getDisplayName(node) {\n return isNamedDeclaration(node) ? declarationNameToString(node.name) : unescapeLeadingUnderscores(Debug.checkDefined(getDeclarationName(node)));\n }\n function declareSymbol(symbolTable, parent3, node, includes, excludes, isReplaceableByMethod, isComputedName) {\n Debug.assert(isComputedName || !hasDynamicName(node));\n const isDefaultExport = hasSyntacticModifier(node, 2048 /* Default */) || isExportSpecifier(node) && moduleExportNameIsDefault(node.name);\n const name = isComputedName ? \"__computed\" /* Computed */ : isDefaultExport && parent3 ? \"default\" /* Default */ : getDeclarationName(node);\n let symbol;\n if (name === void 0) {\n symbol = createSymbol(0 /* None */, \"__missing\" /* Missing */);\n } else {\n symbol = symbolTable.get(name);\n if (includes & 2885600 /* Classifiable */) {\n classifiableNames.add(name);\n }\n if (!symbol) {\n symbolTable.set(name, symbol = createSymbol(0 /* None */, name));\n if (isReplaceableByMethod) symbol.isReplaceableByMethod = true;\n } else if (isReplaceableByMethod && !symbol.isReplaceableByMethod) {\n return symbol;\n } else if (symbol.flags & excludes) {\n if (symbol.isReplaceableByMethod) {\n symbolTable.set(name, symbol = createSymbol(0 /* None */, name));\n } else if (!(includes & 3 /* Variable */ && symbol.flags & 67108864 /* Assignment */)) {\n if (isNamedDeclaration(node)) {\n setParent(node.name, node);\n }\n let message = symbol.flags & 2 /* BlockScopedVariable */ ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n let messageNeedsName = true;\n if (symbol.flags & 384 /* Enum */ || includes & 384 /* Enum */) {\n message = Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations;\n messageNeedsName = false;\n }\n let multipleDefaultExports = false;\n if (length(symbol.declarations)) {\n if (isDefaultExport) {\n message = Diagnostics.A_module_cannot_have_multiple_default_exports;\n messageNeedsName = false;\n multipleDefaultExports = true;\n } else {\n if (symbol.declarations && symbol.declarations.length && (node.kind === 278 /* ExportAssignment */ && !node.isExportEquals)) {\n message = Diagnostics.A_module_cannot_have_multiple_default_exports;\n messageNeedsName = false;\n multipleDefaultExports = true;\n }\n }\n }\n const relatedInformation = [];\n if (isTypeAliasDeclaration(node) && nodeIsMissing(node.type) && hasSyntacticModifier(node, 32 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) {\n relatedInformation.push(createDiagnosticForNode2(node, Diagnostics.Did_you_mean_0, `export type { ${unescapeLeadingUnderscores(node.name.escapedText)} }`));\n }\n const declarationName = getNameOfDeclaration(node) || node;\n forEach(symbol.declarations, (declaration, index) => {\n const decl = getNameOfDeclaration(declaration) || declaration;\n const diag3 = messageNeedsName ? createDiagnosticForNode2(decl, message, getDisplayName(declaration)) : createDiagnosticForNode2(decl, message);\n file.bindDiagnostics.push(\n multipleDefaultExports ? addRelatedInfo(diag3, createDiagnosticForNode2(declarationName, index === 0 ? Diagnostics.Another_export_default_is_here : Diagnostics.and_here)) : diag3\n );\n if (multipleDefaultExports) {\n relatedInformation.push(createDiagnosticForNode2(decl, Diagnostics.The_first_export_default_is_here));\n }\n });\n const diag2 = messageNeedsName ? createDiagnosticForNode2(declarationName, message, getDisplayName(node)) : createDiagnosticForNode2(declarationName, message);\n file.bindDiagnostics.push(addRelatedInfo(diag2, ...relatedInformation));\n symbol = createSymbol(0 /* None */, name);\n }\n }\n }\n addDeclarationToSymbol(symbol, node, includes);\n if (symbol.parent) {\n Debug.assert(symbol.parent === parent3, \"Existing symbol parent should match new one\");\n } else {\n symbol.parent = parent3;\n }\n return symbol;\n }\n function declareModuleMember(node, symbolFlags, symbolExcludes) {\n const hasExportModifier = !!(getCombinedModifierFlags(node) & 32 /* Export */) || jsdocTreatAsExported(node);\n if (symbolFlags & 2097152 /* Alias */) {\n if (node.kind === 282 /* ExportSpecifier */ || node.kind === 272 /* ImportEqualsDeclaration */ && hasExportModifier) {\n return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n } else {\n Debug.assertNode(container, canHaveLocals);\n return declareSymbol(\n container.locals,\n /*parent*/\n void 0,\n node,\n symbolFlags,\n symbolExcludes\n );\n }\n } else {\n if (isJSDocTypeAlias(node)) Debug.assert(isInJSFile(node));\n if (!isAmbientModule(node) && (hasExportModifier || container.flags & 128 /* ExportContext */)) {\n if (!canHaveLocals(container) || !container.locals || hasSyntacticModifier(node, 2048 /* Default */) && !getDeclarationName(node)) {\n return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n }\n const exportKind = symbolFlags & 111551 /* Value */ ? 1048576 /* ExportValue */ : 0;\n const local = declareSymbol(\n container.locals,\n /*parent*/\n void 0,\n node,\n exportKind,\n symbolExcludes\n );\n local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n node.localSymbol = local;\n return local;\n } else {\n Debug.assertNode(container, canHaveLocals);\n return declareSymbol(\n container.locals,\n /*parent*/\n void 0,\n node,\n symbolFlags,\n symbolExcludes\n );\n }\n }\n }\n function jsdocTreatAsExported(node) {\n if (node.parent && isModuleDeclaration(node)) {\n node = node.parent;\n }\n if (!isJSDocTypeAlias(node)) return false;\n if (!isJSDocEnumTag(node) && !!node.fullName) return true;\n const declName = getNameOfDeclaration(node);\n if (!declName) return false;\n if (isPropertyAccessEntityNameExpression(declName.parent) && isTopLevelNamespaceAssignment(declName.parent)) return true;\n if (isDeclaration(declName.parent) && getCombinedModifierFlags(declName.parent) & 32 /* Export */) return true;\n return false;\n }\n function bindContainer(node, containerFlags) {\n const saveContainer = container;\n const saveThisParentContainer = thisParentContainer;\n const savedBlockScopeContainer = blockScopeContainer;\n const savedInReturnPosition = inReturnPosition;\n if (node.kind === 220 /* ArrowFunction */ && node.body.kind !== 242 /* Block */) inReturnPosition = true;\n if (containerFlags & 1 /* IsContainer */) {\n if (node.kind !== 220 /* ArrowFunction */) {\n thisParentContainer = container;\n }\n container = blockScopeContainer = node;\n if (containerFlags & 32 /* HasLocals */) {\n container.locals = createSymbolTable();\n addToContainerChain(container);\n }\n } else if (containerFlags & 2 /* IsBlockScopedContainer */) {\n blockScopeContainer = node;\n if (containerFlags & 32 /* HasLocals */) {\n blockScopeContainer.locals = void 0;\n }\n }\n if (containerFlags & 4 /* IsControlFlowContainer */) {\n const saveCurrentFlow = currentFlow;\n const saveBreakTarget = currentBreakTarget;\n const saveContinueTarget = currentContinueTarget;\n const saveReturnTarget = currentReturnTarget;\n const saveExceptionTarget = currentExceptionTarget;\n const saveActiveLabelList = activeLabelList;\n const saveHasExplicitReturn = hasExplicitReturn;\n const isImmediatelyInvoked = containerFlags & 16 /* IsFunctionExpression */ && !hasSyntacticModifier(node, 1024 /* Async */) && !node.asteriskToken && !!getImmediatelyInvokedFunctionExpression(node) || node.kind === 176 /* ClassStaticBlockDeclaration */;\n if (!isImmediatelyInvoked) {\n currentFlow = createFlowNode(\n 2 /* Start */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n if (containerFlags & (16 /* IsFunctionExpression */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */)) {\n currentFlow.node = node;\n }\n }\n currentReturnTarget = isImmediatelyInvoked || node.kind === 177 /* Constructor */ || isInJSFile(node) && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */) ? createBranchLabel() : void 0;\n currentExceptionTarget = void 0;\n currentBreakTarget = void 0;\n currentContinueTarget = void 0;\n activeLabelList = void 0;\n hasExplicitReturn = false;\n bindChildren(node);\n node.flags &= ~5632 /* ReachabilityAndEmitFlags */;\n if (!(currentFlow.flags & 1 /* Unreachable */) && containerFlags & 8 /* IsFunctionLike */ && nodeIsPresent(node.body)) {\n node.flags |= 512 /* HasImplicitReturn */;\n if (hasExplicitReturn) node.flags |= 1024 /* HasExplicitReturn */;\n node.endFlowNode = currentFlow;\n }\n if (node.kind === 308 /* SourceFile */) {\n node.flags |= emitFlags;\n node.endFlowNode = currentFlow;\n }\n if (currentReturnTarget) {\n addAntecedent(currentReturnTarget, currentFlow);\n currentFlow = finishFlowLabel(currentReturnTarget);\n if (node.kind === 177 /* Constructor */ || node.kind === 176 /* ClassStaticBlockDeclaration */ || isInJSFile(node) && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */)) {\n node.returnFlowNode = currentFlow;\n }\n }\n if (!isImmediatelyInvoked) {\n currentFlow = saveCurrentFlow;\n }\n currentBreakTarget = saveBreakTarget;\n currentContinueTarget = saveContinueTarget;\n currentReturnTarget = saveReturnTarget;\n currentExceptionTarget = saveExceptionTarget;\n activeLabelList = saveActiveLabelList;\n hasExplicitReturn = saveHasExplicitReturn;\n } else if (containerFlags & 64 /* IsInterface */) {\n seenThisKeyword = false;\n bindChildren(node);\n Debug.assertNotNode(node, isIdentifier);\n node.flags = seenThisKeyword ? node.flags | 256 /* ContainsThis */ : node.flags & ~256 /* ContainsThis */;\n } else {\n bindChildren(node);\n }\n inReturnPosition = savedInReturnPosition;\n container = saveContainer;\n thisParentContainer = saveThisParentContainer;\n blockScopeContainer = savedBlockScopeContainer;\n }\n function bindEachFunctionsFirst(nodes) {\n bindEach(nodes, (n) => n.kind === 263 /* FunctionDeclaration */ ? bind(n) : void 0);\n bindEach(nodes, (n) => n.kind !== 263 /* FunctionDeclaration */ ? bind(n) : void 0);\n }\n function bindEach(nodes, bindFunction = bind) {\n if (nodes === void 0) {\n return;\n }\n forEach(nodes, bindFunction);\n }\n function bindEachChild(node) {\n forEachChild(node, bind, bindEach);\n }\n function bindChildren(node) {\n const saveInAssignmentPattern = inAssignmentPattern;\n inAssignmentPattern = false;\n if (checkUnreachable(node)) {\n if (canHaveFlowNode(node) && node.flowNode) {\n node.flowNode = void 0;\n }\n bindEachChild(node);\n bindJSDoc(node);\n inAssignmentPattern = saveInAssignmentPattern;\n return;\n }\n if (node.kind >= 244 /* FirstStatement */ && node.kind <= 260 /* LastStatement */ && (!options.allowUnreachableCode || node.kind === 254 /* ReturnStatement */)) {\n node.flowNode = currentFlow;\n }\n switch (node.kind) {\n case 248 /* WhileStatement */:\n bindWhileStatement(node);\n break;\n case 247 /* DoStatement */:\n bindDoStatement(node);\n break;\n case 249 /* ForStatement */:\n bindForStatement(node);\n break;\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n bindForInOrForOfStatement(node);\n break;\n case 246 /* IfStatement */:\n bindIfStatement(node);\n break;\n case 254 /* ReturnStatement */:\n case 258 /* ThrowStatement */:\n bindReturnOrThrow(node);\n break;\n case 253 /* BreakStatement */:\n case 252 /* ContinueStatement */:\n bindBreakOrContinueStatement(node);\n break;\n case 259 /* TryStatement */:\n bindTryStatement(node);\n break;\n case 256 /* SwitchStatement */:\n bindSwitchStatement(node);\n break;\n case 270 /* CaseBlock */:\n bindCaseBlock(node);\n break;\n case 297 /* CaseClause */:\n bindCaseClause(node);\n break;\n case 245 /* ExpressionStatement */:\n bindExpressionStatement(node);\n break;\n case 257 /* LabeledStatement */:\n bindLabeledStatement(node);\n break;\n case 225 /* PrefixUnaryExpression */:\n bindPrefixUnaryExpressionFlow(node);\n break;\n case 226 /* PostfixUnaryExpression */:\n bindPostfixUnaryExpressionFlow(node);\n break;\n case 227 /* BinaryExpression */:\n if (isDestructuringAssignment(node)) {\n inAssignmentPattern = saveInAssignmentPattern;\n bindDestructuringAssignmentFlow(node);\n return;\n }\n bindBinaryExpressionFlow(node);\n break;\n case 221 /* DeleteExpression */:\n bindDeleteExpressionFlow(node);\n break;\n case 228 /* ConditionalExpression */:\n bindConditionalExpressionFlow(node);\n break;\n case 261 /* VariableDeclaration */:\n bindVariableDeclarationFlow(node);\n break;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n bindAccessExpressionFlow(node);\n break;\n case 214 /* CallExpression */:\n bindCallExpressionFlow(node);\n break;\n case 236 /* NonNullExpression */:\n bindNonNullExpressionFlow(node);\n break;\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n bindJSDocTypeAlias(node);\n break;\n case 352 /* JSDocImportTag */:\n bindJSDocImportTag(node);\n break;\n // In source files and blocks, bind functions first to match hoisting that occurs at runtime\n case 308 /* SourceFile */: {\n bindEachFunctionsFirst(node.statements);\n bind(node.endOfFileToken);\n break;\n }\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n bindEachFunctionsFirst(node.statements);\n break;\n case 209 /* BindingElement */:\n bindBindingElementFlow(node);\n break;\n case 170 /* Parameter */:\n bindParameterFlow(node);\n break;\n case 211 /* ObjectLiteralExpression */:\n case 210 /* ArrayLiteralExpression */:\n case 304 /* PropertyAssignment */:\n case 231 /* SpreadElement */:\n inAssignmentPattern = saveInAssignmentPattern;\n // falls through\n default:\n bindEachChild(node);\n break;\n }\n bindJSDoc(node);\n inAssignmentPattern = saveInAssignmentPattern;\n }\n function isNarrowingExpression(expr) {\n switch (expr.kind) {\n case 80 /* Identifier */:\n case 110 /* ThisKeyword */:\n return true;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return containsNarrowableReference(expr);\n case 214 /* CallExpression */:\n return hasNarrowableArgument(expr);\n case 218 /* ParenthesizedExpression */:\n if (isJSDocTypeAssertion(expr)) {\n return false;\n }\n // fallthrough\n case 236 /* NonNullExpression */:\n return isNarrowingExpression(expr.expression);\n case 227 /* BinaryExpression */:\n return isNarrowingBinaryExpression(expr);\n case 225 /* PrefixUnaryExpression */:\n return expr.operator === 54 /* ExclamationToken */ && isNarrowingExpression(expr.operand);\n case 222 /* TypeOfExpression */:\n return isNarrowingExpression(expr.expression);\n }\n return false;\n }\n function isNarrowableReference(expr) {\n switch (expr.kind) {\n case 80 /* Identifier */:\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 237 /* MetaProperty */:\n return true;\n case 212 /* PropertyAccessExpression */:\n case 218 /* ParenthesizedExpression */:\n case 236 /* NonNullExpression */:\n return isNarrowableReference(expr.expression);\n case 213 /* ElementAccessExpression */:\n return (isStringOrNumericLiteralLike(expr.argumentExpression) || isEntityNameExpression(expr.argumentExpression)) && isNarrowableReference(expr.expression);\n case 227 /* BinaryExpression */:\n return expr.operatorToken.kind === 28 /* CommaToken */ && isNarrowableReference(expr.right) || isAssignmentOperator(expr.operatorToken.kind) && isLeftHandSideExpression(expr.left);\n }\n return false;\n }\n function containsNarrowableReference(expr) {\n return isNarrowableReference(expr) || isOptionalChain(expr) && containsNarrowableReference(expr.expression);\n }\n function hasNarrowableArgument(expr) {\n if (expr.arguments) {\n for (const argument of expr.arguments) {\n if (containsNarrowableReference(argument)) {\n return true;\n }\n }\n }\n if (expr.expression.kind === 212 /* PropertyAccessExpression */ && containsNarrowableReference(expr.expression.expression)) {\n return true;\n }\n return false;\n }\n function isNarrowingTypeofOperands(expr1, expr2) {\n return isTypeOfExpression(expr1) && isNarrowableOperand(expr1.expression) && isStringLiteralLike(expr2);\n }\n function isNarrowingBinaryExpression(expr) {\n switch (expr.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return containsNarrowableReference(expr.left);\n case 35 /* EqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n const left = skipParentheses(expr.left);\n const right = skipParentheses(expr.right);\n return isNarrowableOperand(left) || isNarrowableOperand(right) || isNarrowingTypeofOperands(right, left) || isNarrowingTypeofOperands(left, right) || (isBooleanLiteral(right) && isNarrowingExpression(left) || isBooleanLiteral(left) && isNarrowingExpression(right));\n case 104 /* InstanceOfKeyword */:\n return isNarrowableOperand(expr.left);\n case 103 /* InKeyword */:\n return isNarrowingExpression(expr.right);\n case 28 /* CommaToken */:\n return isNarrowingExpression(expr.right);\n }\n return false;\n }\n function isNarrowableOperand(expr) {\n switch (expr.kind) {\n case 218 /* ParenthesizedExpression */:\n return isNarrowableOperand(expr.expression);\n case 227 /* BinaryExpression */:\n switch (expr.operatorToken.kind) {\n case 64 /* EqualsToken */:\n return isNarrowableOperand(expr.left);\n case 28 /* CommaToken */:\n return isNarrowableOperand(expr.right);\n }\n }\n return containsNarrowableReference(expr);\n }\n function createBranchLabel() {\n return createFlowNode(\n 4 /* BranchLabel */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n }\n function createLoopLabel() {\n return createFlowNode(\n 8 /* LoopLabel */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n }\n function createReduceLabel(target, antecedents, antecedent) {\n return createFlowNode(1024 /* ReduceLabel */, { target, antecedents }, antecedent);\n }\n function setFlowNodeReferenced(flow) {\n flow.flags |= flow.flags & 2048 /* Referenced */ ? 4096 /* Shared */ : 2048 /* Referenced */;\n }\n function addAntecedent(label, antecedent) {\n if (!(antecedent.flags & 1 /* Unreachable */) && !contains(label.antecedent, antecedent)) {\n (label.antecedent || (label.antecedent = [])).push(antecedent);\n setFlowNodeReferenced(antecedent);\n }\n }\n function createFlowCondition(flags, antecedent, expression) {\n if (antecedent.flags & 1 /* Unreachable */) {\n return antecedent;\n }\n if (!expression) {\n return flags & 32 /* TrueCondition */ ? antecedent : unreachableFlow;\n }\n if ((expression.kind === 112 /* TrueKeyword */ && flags & 64 /* FalseCondition */ || expression.kind === 97 /* FalseKeyword */ && flags & 32 /* TrueCondition */) && !isExpressionOfOptionalChainRoot(expression) && !isNullishCoalesce(expression.parent)) {\n return unreachableFlow;\n }\n if (!isNarrowingExpression(expression)) {\n return antecedent;\n }\n setFlowNodeReferenced(antecedent);\n return createFlowNode(flags, expression, antecedent);\n }\n function createFlowSwitchClause(antecedent, switchStatement, clauseStart, clauseEnd) {\n setFlowNodeReferenced(antecedent);\n return createFlowNode(128 /* SwitchClause */, { switchStatement, clauseStart, clauseEnd }, antecedent);\n }\n function createFlowMutation(flags, antecedent, node) {\n setFlowNodeReferenced(antecedent);\n hasFlowEffects = true;\n const result = createFlowNode(flags, node, antecedent);\n if (currentExceptionTarget) {\n addAntecedent(currentExceptionTarget, result);\n }\n return result;\n }\n function createFlowCall(antecedent, node) {\n setFlowNodeReferenced(antecedent);\n hasFlowEffects = true;\n return createFlowNode(512 /* Call */, node, antecedent);\n }\n function finishFlowLabel(flow) {\n const antecedents = flow.antecedent;\n if (!antecedents) {\n return unreachableFlow;\n }\n if (antecedents.length === 1) {\n return antecedents[0];\n }\n return flow;\n }\n function isStatementCondition(node) {\n const parent3 = node.parent;\n switch (parent3.kind) {\n case 246 /* IfStatement */:\n case 248 /* WhileStatement */:\n case 247 /* DoStatement */:\n return parent3.expression === node;\n case 249 /* ForStatement */:\n case 228 /* ConditionalExpression */:\n return parent3.condition === node;\n }\n return false;\n }\n function isLogicalExpression(node) {\n while (true) {\n if (node.kind === 218 /* ParenthesizedExpression */) {\n node = node.expression;\n } else if (node.kind === 225 /* PrefixUnaryExpression */ && node.operator === 54 /* ExclamationToken */) {\n node = node.operand;\n } else {\n return isLogicalOrCoalescingBinaryExpression(node);\n }\n }\n }\n function isLogicalAssignmentExpression(node) {\n return isLogicalOrCoalescingAssignmentExpression(skipParentheses(node));\n }\n function isTopLevelLogicalExpression(node) {\n while (isParenthesizedExpression(node.parent) || isPrefixUnaryExpression(node.parent) && node.parent.operator === 54 /* ExclamationToken */) {\n node = node.parent;\n }\n return !isStatementCondition(node) && !isLogicalExpression(node.parent) && !(isOptionalChain(node.parent) && node.parent.expression === node);\n }\n function doWithConditionalBranches(action, value, trueTarget, falseTarget) {\n const savedTrueTarget = currentTrueTarget;\n const savedFalseTarget = currentFalseTarget;\n currentTrueTarget = trueTarget;\n currentFalseTarget = falseTarget;\n action(value);\n currentTrueTarget = savedTrueTarget;\n currentFalseTarget = savedFalseTarget;\n }\n function bindCondition(node, trueTarget, falseTarget) {\n doWithConditionalBranches(bind, node, trueTarget, falseTarget);\n if (!node || !isLogicalAssignmentExpression(node) && !isLogicalExpression(node) && !(isOptionalChain(node) && isOutermostOptionalChain(node))) {\n addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n }\n }\n function bindIterativeStatement(node, breakTarget, continueTarget) {\n const saveBreakTarget = currentBreakTarget;\n const saveContinueTarget = currentContinueTarget;\n currentBreakTarget = breakTarget;\n currentContinueTarget = continueTarget;\n bind(node);\n currentBreakTarget = saveBreakTarget;\n currentContinueTarget = saveContinueTarget;\n }\n function setContinueTarget(node, target) {\n let label = activeLabelList;\n while (label && node.parent.kind === 257 /* LabeledStatement */) {\n label.continueTarget = target;\n label = label.next;\n node = node.parent;\n }\n return target;\n }\n function bindWhileStatement(node) {\n const preWhileLabel = setContinueTarget(node, createLoopLabel());\n const preBodyLabel = createBranchLabel();\n const postWhileLabel = createBranchLabel();\n addAntecedent(preWhileLabel, currentFlow);\n currentFlow = preWhileLabel;\n bindCondition(node.expression, preBodyLabel, postWhileLabel);\n currentFlow = finishFlowLabel(preBodyLabel);\n bindIterativeStatement(node.statement, postWhileLabel, preWhileLabel);\n addAntecedent(preWhileLabel, currentFlow);\n currentFlow = finishFlowLabel(postWhileLabel);\n }\n function bindDoStatement(node) {\n const preDoLabel = createLoopLabel();\n const preConditionLabel = setContinueTarget(node, createBranchLabel());\n const postDoLabel = createBranchLabel();\n addAntecedent(preDoLabel, currentFlow);\n currentFlow = preDoLabel;\n bindIterativeStatement(node.statement, postDoLabel, preConditionLabel);\n addAntecedent(preConditionLabel, currentFlow);\n currentFlow = finishFlowLabel(preConditionLabel);\n bindCondition(node.expression, preDoLabel, postDoLabel);\n currentFlow = finishFlowLabel(postDoLabel);\n }\n function bindForStatement(node) {\n const preLoopLabel = setContinueTarget(node, createLoopLabel());\n const preBodyLabel = createBranchLabel();\n const preIncrementorLabel = createBranchLabel();\n const postLoopLabel = createBranchLabel();\n bind(node.initializer);\n addAntecedent(preLoopLabel, currentFlow);\n currentFlow = preLoopLabel;\n bindCondition(node.condition, preBodyLabel, postLoopLabel);\n currentFlow = finishFlowLabel(preBodyLabel);\n bindIterativeStatement(node.statement, postLoopLabel, preIncrementorLabel);\n addAntecedent(preIncrementorLabel, currentFlow);\n currentFlow = finishFlowLabel(preIncrementorLabel);\n bind(node.incrementor);\n addAntecedent(preLoopLabel, currentFlow);\n currentFlow = finishFlowLabel(postLoopLabel);\n }\n function bindForInOrForOfStatement(node) {\n const preLoopLabel = setContinueTarget(node, createLoopLabel());\n const postLoopLabel = createBranchLabel();\n bind(node.expression);\n addAntecedent(preLoopLabel, currentFlow);\n currentFlow = preLoopLabel;\n if (node.kind === 251 /* ForOfStatement */) {\n bind(node.awaitModifier);\n }\n addAntecedent(postLoopLabel, currentFlow);\n bind(node.initializer);\n if (node.initializer.kind !== 262 /* VariableDeclarationList */) {\n bindAssignmentTargetFlow(node.initializer);\n }\n bindIterativeStatement(node.statement, postLoopLabel, preLoopLabel);\n addAntecedent(preLoopLabel, currentFlow);\n currentFlow = finishFlowLabel(postLoopLabel);\n }\n function bindIfStatement(node) {\n const thenLabel = createBranchLabel();\n const elseLabel = createBranchLabel();\n const postIfLabel = createBranchLabel();\n bindCondition(node.expression, thenLabel, elseLabel);\n currentFlow = finishFlowLabel(thenLabel);\n bind(node.thenStatement);\n addAntecedent(postIfLabel, currentFlow);\n currentFlow = finishFlowLabel(elseLabel);\n bind(node.elseStatement);\n addAntecedent(postIfLabel, currentFlow);\n currentFlow = finishFlowLabel(postIfLabel);\n }\n function bindReturnOrThrow(node) {\n const savedInReturnPosition = inReturnPosition;\n inReturnPosition = true;\n bind(node.expression);\n inReturnPosition = savedInReturnPosition;\n if (node.kind === 254 /* ReturnStatement */) {\n hasExplicitReturn = true;\n if (currentReturnTarget) {\n addAntecedent(currentReturnTarget, currentFlow);\n }\n }\n currentFlow = unreachableFlow;\n hasFlowEffects = true;\n }\n function findActiveLabel(name) {\n for (let label = activeLabelList; label; label = label.next) {\n if (label.name === name) {\n return label;\n }\n }\n return void 0;\n }\n function bindBreakOrContinueFlow(node, breakTarget, continueTarget) {\n const flowLabel = node.kind === 253 /* BreakStatement */ ? breakTarget : continueTarget;\n if (flowLabel) {\n addAntecedent(flowLabel, currentFlow);\n currentFlow = unreachableFlow;\n hasFlowEffects = true;\n }\n }\n function bindBreakOrContinueStatement(node) {\n bind(node.label);\n if (node.label) {\n const activeLabel = findActiveLabel(node.label.escapedText);\n if (activeLabel) {\n activeLabel.referenced = true;\n bindBreakOrContinueFlow(node, activeLabel.breakTarget, activeLabel.continueTarget);\n }\n } else {\n bindBreakOrContinueFlow(node, currentBreakTarget, currentContinueTarget);\n }\n }\n function bindTryStatement(node) {\n const saveReturnTarget = currentReturnTarget;\n const saveExceptionTarget = currentExceptionTarget;\n const normalExitLabel = createBranchLabel();\n const returnLabel = createBranchLabel();\n let exceptionLabel = createBranchLabel();\n if (node.finallyBlock) {\n currentReturnTarget = returnLabel;\n }\n addAntecedent(exceptionLabel, currentFlow);\n currentExceptionTarget = exceptionLabel;\n bind(node.tryBlock);\n addAntecedent(normalExitLabel, currentFlow);\n if (node.catchClause) {\n currentFlow = finishFlowLabel(exceptionLabel);\n exceptionLabel = createBranchLabel();\n addAntecedent(exceptionLabel, currentFlow);\n currentExceptionTarget = exceptionLabel;\n bind(node.catchClause);\n addAntecedent(normalExitLabel, currentFlow);\n }\n currentReturnTarget = saveReturnTarget;\n currentExceptionTarget = saveExceptionTarget;\n if (node.finallyBlock) {\n const finallyLabel = createBranchLabel();\n finallyLabel.antecedent = concatenate(concatenate(normalExitLabel.antecedent, exceptionLabel.antecedent), returnLabel.antecedent);\n currentFlow = finallyLabel;\n bind(node.finallyBlock);\n if (currentFlow.flags & 1 /* Unreachable */) {\n currentFlow = unreachableFlow;\n } else {\n if (currentReturnTarget && returnLabel.antecedent) {\n addAntecedent(currentReturnTarget, createReduceLabel(finallyLabel, returnLabel.antecedent, currentFlow));\n }\n if (currentExceptionTarget && exceptionLabel.antecedent) {\n addAntecedent(currentExceptionTarget, createReduceLabel(finallyLabel, exceptionLabel.antecedent, currentFlow));\n }\n currentFlow = normalExitLabel.antecedent ? createReduceLabel(finallyLabel, normalExitLabel.antecedent, currentFlow) : unreachableFlow;\n }\n } else {\n currentFlow = finishFlowLabel(normalExitLabel);\n }\n }\n function bindSwitchStatement(node) {\n const postSwitchLabel = createBranchLabel();\n bind(node.expression);\n const saveBreakTarget = currentBreakTarget;\n const savePreSwitchCaseFlow = preSwitchCaseFlow;\n currentBreakTarget = postSwitchLabel;\n preSwitchCaseFlow = currentFlow;\n bind(node.caseBlock);\n addAntecedent(postSwitchLabel, currentFlow);\n const hasDefault = forEach(node.caseBlock.clauses, (c) => c.kind === 298 /* DefaultClause */);\n node.possiblyExhaustive = !hasDefault && !postSwitchLabel.antecedent;\n if (!hasDefault) {\n addAntecedent(postSwitchLabel, createFlowSwitchClause(preSwitchCaseFlow, node, 0, 0));\n }\n currentBreakTarget = saveBreakTarget;\n preSwitchCaseFlow = savePreSwitchCaseFlow;\n currentFlow = finishFlowLabel(postSwitchLabel);\n }\n function bindCaseBlock(node) {\n const clauses = node.clauses;\n const isNarrowingSwitch = node.parent.expression.kind === 112 /* TrueKeyword */ || isNarrowingExpression(node.parent.expression);\n let fallthroughFlow = unreachableFlow;\n for (let i = 0; i < clauses.length; i++) {\n const clauseStart = i;\n while (!clauses[i].statements.length && i + 1 < clauses.length) {\n if (fallthroughFlow === unreachableFlow) {\n currentFlow = preSwitchCaseFlow;\n }\n bind(clauses[i]);\n i++;\n }\n const preCaseLabel = createBranchLabel();\n addAntecedent(preCaseLabel, isNarrowingSwitch ? createFlowSwitchClause(preSwitchCaseFlow, node.parent, clauseStart, i + 1) : preSwitchCaseFlow);\n addAntecedent(preCaseLabel, fallthroughFlow);\n currentFlow = finishFlowLabel(preCaseLabel);\n const clause = clauses[i];\n bind(clause);\n fallthroughFlow = currentFlow;\n if (!(currentFlow.flags & 1 /* Unreachable */) && i !== clauses.length - 1 && options.noFallthroughCasesInSwitch) {\n clause.fallthroughFlowNode = currentFlow;\n }\n }\n }\n function bindCaseClause(node) {\n const saveCurrentFlow = currentFlow;\n currentFlow = preSwitchCaseFlow;\n bind(node.expression);\n currentFlow = saveCurrentFlow;\n bindEach(node.statements);\n }\n function bindExpressionStatement(node) {\n bind(node.expression);\n maybeBindExpressionFlowIfCall(node.expression);\n }\n function maybeBindExpressionFlowIfCall(node) {\n if (node.kind === 214 /* CallExpression */) {\n const call = node;\n if (call.expression.kind !== 108 /* SuperKeyword */ && isDottedName(call.expression)) {\n currentFlow = createFlowCall(currentFlow, call);\n }\n }\n }\n function bindLabeledStatement(node) {\n const postStatementLabel = createBranchLabel();\n activeLabelList = {\n next: activeLabelList,\n name: node.label.escapedText,\n breakTarget: postStatementLabel,\n continueTarget: void 0,\n referenced: false\n };\n bind(node.label);\n bind(node.statement);\n if (!activeLabelList.referenced && !options.allowUnusedLabels) {\n errorOrSuggestionOnNode(unusedLabelIsError(options), node.label, Diagnostics.Unused_label);\n }\n activeLabelList = activeLabelList.next;\n addAntecedent(postStatementLabel, currentFlow);\n currentFlow = finishFlowLabel(postStatementLabel);\n }\n function bindDestructuringTargetFlow(node) {\n if (node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */) {\n bindAssignmentTargetFlow(node.left);\n } else {\n bindAssignmentTargetFlow(node);\n }\n }\n function bindAssignmentTargetFlow(node) {\n if (isNarrowableReference(node)) {\n currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node);\n } else if (node.kind === 210 /* ArrayLiteralExpression */) {\n for (const e of node.elements) {\n if (e.kind === 231 /* SpreadElement */) {\n bindAssignmentTargetFlow(e.expression);\n } else {\n bindDestructuringTargetFlow(e);\n }\n }\n } else if (node.kind === 211 /* ObjectLiteralExpression */) {\n for (const p of node.properties) {\n if (p.kind === 304 /* PropertyAssignment */) {\n bindDestructuringTargetFlow(p.initializer);\n } else if (p.kind === 305 /* ShorthandPropertyAssignment */) {\n bindAssignmentTargetFlow(p.name);\n } else if (p.kind === 306 /* SpreadAssignment */) {\n bindAssignmentTargetFlow(p.expression);\n }\n }\n }\n }\n function bindLogicalLikeExpression(node, trueTarget, falseTarget) {\n const preRightLabel = createBranchLabel();\n if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ || node.operatorToken.kind === 77 /* AmpersandAmpersandEqualsToken */) {\n bindCondition(node.left, preRightLabel, falseTarget);\n } else {\n bindCondition(node.left, trueTarget, preRightLabel);\n }\n currentFlow = finishFlowLabel(preRightLabel);\n bind(node.operatorToken);\n if (isLogicalOrCoalescingAssignmentOperator(node.operatorToken.kind)) {\n doWithConditionalBranches(bind, node.right, trueTarget, falseTarget);\n bindAssignmentTargetFlow(node.left);\n addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n } else {\n bindCondition(node.right, trueTarget, falseTarget);\n }\n }\n function bindPrefixUnaryExpressionFlow(node) {\n if (node.operator === 54 /* ExclamationToken */) {\n const saveTrueTarget = currentTrueTarget;\n currentTrueTarget = currentFalseTarget;\n currentFalseTarget = saveTrueTarget;\n bindEachChild(node);\n currentFalseTarget = currentTrueTarget;\n currentTrueTarget = saveTrueTarget;\n } else {\n bindEachChild(node);\n if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n bindAssignmentTargetFlow(node.operand);\n }\n }\n }\n function bindPostfixUnaryExpressionFlow(node) {\n bindEachChild(node);\n if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n bindAssignmentTargetFlow(node.operand);\n }\n }\n function bindDestructuringAssignmentFlow(node) {\n if (inAssignmentPattern) {\n inAssignmentPattern = false;\n bind(node.operatorToken);\n bind(node.right);\n inAssignmentPattern = true;\n bind(node.left);\n } else {\n inAssignmentPattern = true;\n bind(node.left);\n inAssignmentPattern = false;\n bind(node.operatorToken);\n bind(node.right);\n }\n bindAssignmentTargetFlow(node.left);\n }\n function createBindBinaryExpressionFlow() {\n return createBinaryExpressionTrampoline(\n onEnter,\n onLeft,\n onOperator,\n onRight,\n onExit,\n /*foldState*/\n void 0\n );\n function onEnter(node, state) {\n if (state) {\n state.stackIndex++;\n setParent(node, parent2);\n const saveInStrictMode = inStrictMode;\n bindWorker(node);\n const saveParent = parent2;\n parent2 = node;\n state.skip = false;\n state.inStrictModeStack[state.stackIndex] = saveInStrictMode;\n state.parentStack[state.stackIndex] = saveParent;\n } else {\n state = {\n stackIndex: 0,\n skip: false,\n inStrictModeStack: [void 0],\n parentStack: [void 0]\n };\n }\n const operator = node.operatorToken.kind;\n if (isLogicalOrCoalescingBinaryOperator(operator) || isLogicalOrCoalescingAssignmentOperator(operator)) {\n if (isTopLevelLogicalExpression(node)) {\n const postExpressionLabel = createBranchLabel();\n const saveCurrentFlow = currentFlow;\n const saveHasFlowEffects = hasFlowEffects;\n hasFlowEffects = false;\n bindLogicalLikeExpression(node, postExpressionLabel, postExpressionLabel);\n currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n } else {\n bindLogicalLikeExpression(node, currentTrueTarget, currentFalseTarget);\n }\n state.skip = true;\n }\n return state;\n }\n function onLeft(left, state, node) {\n if (!state.skip) {\n const maybeBound = maybeBind2(left);\n if (node.operatorToken.kind === 28 /* CommaToken */) {\n maybeBindExpressionFlowIfCall(left);\n }\n return maybeBound;\n }\n }\n function onOperator(operatorToken, state, _node) {\n if (!state.skip) {\n bind(operatorToken);\n }\n }\n function onRight(right, state, node) {\n if (!state.skip) {\n const maybeBound = maybeBind2(right);\n if (node.operatorToken.kind === 28 /* CommaToken */) {\n maybeBindExpressionFlowIfCall(right);\n }\n return maybeBound;\n }\n }\n function onExit(node, state) {\n if (!state.skip) {\n const operator = node.operatorToken.kind;\n if (isAssignmentOperator(operator) && !isAssignmentTarget(node)) {\n bindAssignmentTargetFlow(node.left);\n if (operator === 64 /* EqualsToken */ && node.left.kind === 213 /* ElementAccessExpression */) {\n const elementAccess = node.left;\n if (isNarrowableOperand(elementAccess.expression)) {\n currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node);\n }\n }\n }\n }\n const savedInStrictMode = state.inStrictModeStack[state.stackIndex];\n const savedParent = state.parentStack[state.stackIndex];\n if (savedInStrictMode !== void 0) {\n inStrictMode = savedInStrictMode;\n }\n if (savedParent !== void 0) {\n parent2 = savedParent;\n }\n state.skip = false;\n state.stackIndex--;\n }\n function maybeBind2(node) {\n if (node && isBinaryExpression(node) && !isDestructuringAssignment(node)) {\n return node;\n }\n bind(node);\n }\n }\n function bindDeleteExpressionFlow(node) {\n bindEachChild(node);\n if (node.expression.kind === 212 /* PropertyAccessExpression */) {\n bindAssignmentTargetFlow(node.expression);\n }\n }\n function bindConditionalExpressionFlow(node) {\n const trueLabel = createBranchLabel();\n const falseLabel = createBranchLabel();\n const postExpressionLabel = createBranchLabel();\n const saveCurrentFlow = currentFlow;\n const saveHasFlowEffects = hasFlowEffects;\n hasFlowEffects = false;\n bindCondition(node.condition, trueLabel, falseLabel);\n currentFlow = finishFlowLabel(trueLabel);\n if (inReturnPosition) {\n node.flowNodeWhenTrue = currentFlow;\n }\n bind(node.questionToken);\n bind(node.whenTrue);\n addAntecedent(postExpressionLabel, currentFlow);\n currentFlow = finishFlowLabel(falseLabel);\n if (inReturnPosition) {\n node.flowNodeWhenFalse = currentFlow;\n }\n bind(node.colonToken);\n bind(node.whenFalse);\n addAntecedent(postExpressionLabel, currentFlow);\n currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n }\n function bindInitializedVariableFlow(node) {\n const name = !isOmittedExpression(node) ? node.name : void 0;\n if (isBindingPattern(name)) {\n for (const child of name.elements) {\n bindInitializedVariableFlow(child);\n }\n } else {\n currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node);\n }\n }\n function bindVariableDeclarationFlow(node) {\n bindEachChild(node);\n if (node.initializer || isForInOrOfStatement(node.parent.parent)) {\n bindInitializedVariableFlow(node);\n }\n }\n function bindBindingElementFlow(node) {\n bind(node.dotDotDotToken);\n bind(node.propertyName);\n bindInitializer(node.initializer);\n bind(node.name);\n }\n function bindParameterFlow(node) {\n bindEach(node.modifiers);\n bind(node.dotDotDotToken);\n bind(node.questionToken);\n bind(node.type);\n bindInitializer(node.initializer);\n bind(node.name);\n }\n function bindInitializer(node) {\n if (!node) {\n return;\n }\n const entryFlow = currentFlow;\n bind(node);\n if (entryFlow === unreachableFlow || entryFlow === currentFlow) {\n return;\n }\n const exitFlow = createBranchLabel();\n addAntecedent(exitFlow, entryFlow);\n addAntecedent(exitFlow, currentFlow);\n currentFlow = finishFlowLabel(exitFlow);\n }\n function bindJSDocTypeAlias(node) {\n bind(node.tagName);\n if (node.kind !== 341 /* JSDocEnumTag */ && node.fullName) {\n setParent(node.fullName, node);\n setParentRecursive(\n node.fullName,\n /*incremental*/\n false\n );\n }\n if (typeof node.comment !== \"string\") {\n bindEach(node.comment);\n }\n }\n function bindJSDocClassTag(node) {\n bindEachChild(node);\n const host = getHostSignatureFromJSDoc(node);\n if (host && host.kind !== 175 /* MethodDeclaration */) {\n addDeclarationToSymbol(host.symbol, host, 32 /* Class */);\n }\n }\n function bindJSDocImportTag(node) {\n bind(node.tagName);\n bind(node.moduleSpecifier);\n bind(node.attributes);\n if (typeof node.comment !== \"string\") {\n bindEach(node.comment);\n }\n }\n function bindOptionalExpression(node, trueTarget, falseTarget) {\n doWithConditionalBranches(bind, node, trueTarget, falseTarget);\n if (!isOptionalChain(node) || isOutermostOptionalChain(node)) {\n addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n }\n }\n function bindOptionalChainRest(node) {\n switch (node.kind) {\n case 212 /* PropertyAccessExpression */:\n bind(node.questionDotToken);\n bind(node.name);\n break;\n case 213 /* ElementAccessExpression */:\n bind(node.questionDotToken);\n bind(node.argumentExpression);\n break;\n case 214 /* CallExpression */:\n bind(node.questionDotToken);\n bindEach(node.typeArguments);\n bindEach(node.arguments);\n break;\n }\n }\n function bindOptionalChain(node, trueTarget, falseTarget) {\n const preChainLabel = isOptionalChainRoot(node) ? createBranchLabel() : void 0;\n bindOptionalExpression(node.expression, preChainLabel || trueTarget, falseTarget);\n if (preChainLabel) {\n currentFlow = finishFlowLabel(preChainLabel);\n }\n doWithConditionalBranches(bindOptionalChainRest, node, trueTarget, falseTarget);\n if (isOutermostOptionalChain(node)) {\n addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n }\n }\n function bindOptionalChainFlow(node) {\n if (isTopLevelLogicalExpression(node)) {\n const postExpressionLabel = createBranchLabel();\n const saveCurrentFlow = currentFlow;\n const saveHasFlowEffects = hasFlowEffects;\n bindOptionalChain(node, postExpressionLabel, postExpressionLabel);\n currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n } else {\n bindOptionalChain(node, currentTrueTarget, currentFalseTarget);\n }\n }\n function bindNonNullExpressionFlow(node) {\n if (isOptionalChain(node)) {\n bindOptionalChainFlow(node);\n } else {\n bindEachChild(node);\n }\n }\n function bindAccessExpressionFlow(node) {\n if (isOptionalChain(node)) {\n bindOptionalChainFlow(node);\n } else {\n bindEachChild(node);\n }\n }\n function bindCallExpressionFlow(node) {\n if (isOptionalChain(node)) {\n bindOptionalChainFlow(node);\n } else {\n const expr = skipParentheses(node.expression);\n if (expr.kind === 219 /* FunctionExpression */ || expr.kind === 220 /* ArrowFunction */) {\n bindEach(node.typeArguments);\n bindEach(node.arguments);\n bind(node.expression);\n } else {\n bindEachChild(node);\n if (node.expression.kind === 108 /* SuperKeyword */) {\n currentFlow = createFlowCall(currentFlow, node);\n }\n }\n }\n if (node.expression.kind === 212 /* PropertyAccessExpression */) {\n const propertyAccess = node.expression;\n if (isIdentifier(propertyAccess.name) && isNarrowableOperand(propertyAccess.expression) && isPushOrUnshiftIdentifier(propertyAccess.name)) {\n currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node);\n }\n }\n }\n function addToContainerChain(next) {\n if (lastContainer) {\n lastContainer.nextContainer = next;\n }\n lastContainer = next;\n }\n function declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes) {\n switch (container.kind) {\n // Modules, source files, and classes need specialized handling for how their\n // members are declared (for example, a member of a class will go into a specific\n // symbol table depending on if it is static or not). We defer to specialized\n // handlers to take care of declaring these child members.\n case 268 /* ModuleDeclaration */:\n return declareModuleMember(node, symbolFlags, symbolExcludes);\n case 308 /* SourceFile */:\n return declareSourceFileMember(node, symbolFlags, symbolExcludes);\n case 232 /* ClassExpression */:\n case 264 /* ClassDeclaration */:\n return declareClassMember(node, symbolFlags, symbolExcludes);\n case 267 /* EnumDeclaration */:\n return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n case 188 /* TypeLiteral */:\n case 323 /* JSDocTypeLiteral */:\n case 211 /* ObjectLiteralExpression */:\n case 265 /* InterfaceDeclaration */:\n case 293 /* JsxAttributes */:\n return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 324 /* JSDocSignature */:\n case 182 /* IndexSignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 318 /* JSDocFunctionType */:\n case 176 /* ClassStaticBlockDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 201 /* MappedType */:\n if (container.locals) Debug.assertNode(container, canHaveLocals);\n return declareSymbol(\n container.locals,\n /*parent*/\n void 0,\n node,\n symbolFlags,\n symbolExcludes\n );\n }\n }\n function declareClassMember(node, symbolFlags, symbolExcludes) {\n return isStatic(node) ? declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes) : declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);\n }\n function declareSourceFileMember(node, symbolFlags, symbolExcludes) {\n return isExternalModule(file) ? declareModuleMember(node, symbolFlags, symbolExcludes) : declareSymbol(\n file.locals,\n /*parent*/\n void 0,\n node,\n symbolFlags,\n symbolExcludes\n );\n }\n function hasExportDeclarations(node) {\n const body = isSourceFile(node) ? node : tryCast(node.body, isModuleBlock);\n return !!body && body.statements.some((s) => isExportDeclaration(s) || isExportAssignment(s));\n }\n function setExportContextFlag(node) {\n if (node.flags & 33554432 /* Ambient */ && !hasExportDeclarations(node)) {\n node.flags |= 128 /* ExportContext */;\n } else {\n node.flags &= ~128 /* ExportContext */;\n }\n }\n function bindModuleDeclaration(node) {\n setExportContextFlag(node);\n if (isAmbientModule(node)) {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n errorOnFirstToken(node, Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);\n }\n if (isModuleAugmentationExternal(node)) {\n declareModuleSymbol(node);\n } else {\n let pattern;\n if (node.name.kind === 11 /* StringLiteral */) {\n const { text } = node.name;\n pattern = tryParsePattern(text);\n if (pattern === void 0) {\n errorOnFirstToken(node.name, Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character, text);\n }\n }\n const symbol = declareSymbolAndAddToSymbolTable(node, 512 /* ValueModule */, 110735 /* ValueModuleExcludes */);\n file.patternAmbientModules = append(file.patternAmbientModules, pattern && !isString(pattern) ? { pattern, symbol } : void 0);\n }\n } else {\n const state = declareModuleSymbol(node);\n if (state !== 0 /* NonInstantiated */) {\n const { symbol } = node;\n symbol.constEnumOnlyModule = !(symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) && state === 2 /* ConstEnumOnly */ && symbol.constEnumOnlyModule !== false;\n }\n }\n }\n function declareModuleSymbol(node) {\n const state = getModuleInstanceState(node);\n const instantiated = state !== 0 /* NonInstantiated */;\n declareSymbolAndAddToSymbolTable(\n node,\n instantiated ? 512 /* ValueModule */ : 1024 /* NamespaceModule */,\n instantiated ? 110735 /* ValueModuleExcludes */ : 0 /* NamespaceModuleExcludes */\n );\n return state;\n }\n function bindFunctionOrConstructorType(node) {\n const symbol = createSymbol(131072 /* Signature */, getDeclarationName(node));\n addDeclarationToSymbol(symbol, node, 131072 /* Signature */);\n const typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */);\n typeLiteralSymbol.members = createSymbolTable();\n typeLiteralSymbol.members.set(symbol.escapedName, symbol);\n }\n function bindObjectLiteralExpression(node) {\n return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, \"__object\" /* Object */);\n }\n function bindJsxAttributes(node) {\n return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, \"__jsxAttributes\" /* JSXAttributes */);\n }\n function bindJsxAttribute(node, symbolFlags, symbolExcludes) {\n return declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);\n }\n function bindAnonymousDeclaration(node, symbolFlags, name) {\n const symbol = createSymbol(symbolFlags, name);\n if (symbolFlags & (8 /* EnumMember */ | 106500 /* ClassMember */)) {\n symbol.parent = container.symbol;\n }\n addDeclarationToSymbol(symbol, node, symbolFlags);\n return symbol;\n }\n function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) {\n switch (blockScopeContainer.kind) {\n case 268 /* ModuleDeclaration */:\n declareModuleMember(node, symbolFlags, symbolExcludes);\n break;\n case 308 /* SourceFile */:\n if (isExternalOrCommonJsModule(container)) {\n declareModuleMember(node, symbolFlags, symbolExcludes);\n break;\n }\n // falls through\n default:\n Debug.assertNode(blockScopeContainer, canHaveLocals);\n if (!blockScopeContainer.locals) {\n blockScopeContainer.locals = createSymbolTable();\n addToContainerChain(blockScopeContainer);\n }\n declareSymbol(\n blockScopeContainer.locals,\n /*parent*/\n void 0,\n node,\n symbolFlags,\n symbolExcludes\n );\n }\n }\n function delayedBindJSDocTypedefTag() {\n if (!delayedTypeAliases) {\n return;\n }\n const saveContainer = container;\n const saveLastContainer = lastContainer;\n const saveBlockScopeContainer = blockScopeContainer;\n const saveParent = parent2;\n const saveCurrentFlow = currentFlow;\n for (const typeAlias of delayedTypeAliases) {\n const host = typeAlias.parent.parent;\n container = getEnclosingContainer(host) || file;\n blockScopeContainer = getEnclosingBlockScopeContainer(host) || file;\n currentFlow = createFlowNode(\n 2 /* Start */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n parent2 = typeAlias;\n bind(typeAlias.typeExpression);\n const declName = getNameOfDeclaration(typeAlias);\n if ((isJSDocEnumTag(typeAlias) || !typeAlias.fullName) && declName && isPropertyAccessEntityNameExpression(declName.parent)) {\n const isTopLevel = isTopLevelNamespaceAssignment(declName.parent);\n if (isTopLevel) {\n bindPotentiallyMissingNamespaces(\n file.symbol,\n declName.parent,\n isTopLevel,\n !!findAncestor(declName, (d) => isPropertyAccessExpression(d) && d.name.escapedText === \"prototype\"),\n /*containerIsClass*/\n false\n );\n const oldContainer = container;\n switch (getAssignmentDeclarationPropertyAccessKind(declName.parent)) {\n case 1 /* ExportsProperty */:\n case 2 /* ModuleExports */:\n if (!isExternalOrCommonJsModule(file)) {\n container = void 0;\n } else {\n container = file;\n }\n break;\n case 4 /* ThisProperty */:\n container = declName.parent.expression;\n break;\n case 3 /* PrototypeProperty */:\n container = declName.parent.expression.name;\n break;\n case 5 /* Property */:\n container = isExportsOrModuleExportsOrAlias(file, declName.parent.expression) ? file : isPropertyAccessExpression(declName.parent.expression) ? declName.parent.expression.name : declName.parent.expression;\n break;\n case 0 /* None */:\n return Debug.fail(\"Shouldn't have detected typedef or enum on non-assignment declaration\");\n }\n if (container) {\n declareModuleMember(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n }\n container = oldContainer;\n }\n } else if (isJSDocEnumTag(typeAlias) || !typeAlias.fullName || typeAlias.fullName.kind === 80 /* Identifier */) {\n parent2 = typeAlias.parent;\n bindBlockScopedDeclaration(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n } else {\n bind(typeAlias.fullName);\n }\n }\n container = saveContainer;\n lastContainer = saveLastContainer;\n blockScopeContainer = saveBlockScopeContainer;\n parent2 = saveParent;\n currentFlow = saveCurrentFlow;\n }\n function bindJSDocImports() {\n if (jsDocImports === void 0) {\n return;\n }\n const saveContainer = container;\n const saveLastContainer = lastContainer;\n const saveBlockScopeContainer = blockScopeContainer;\n const saveParent = parent2;\n const saveCurrentFlow = currentFlow;\n for (const jsDocImportTag of jsDocImports) {\n const host = getJSDocHost(jsDocImportTag);\n const enclosingContainer = host ? getEnclosingContainer(host) : void 0;\n const enclosingBlockScopeContainer = host ? getEnclosingBlockScopeContainer(host) : void 0;\n container = enclosingContainer || file;\n blockScopeContainer = enclosingBlockScopeContainer || file;\n currentFlow = createFlowNode(\n 2 /* Start */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n parent2 = jsDocImportTag;\n bind(jsDocImportTag.importClause);\n }\n container = saveContainer;\n lastContainer = saveLastContainer;\n blockScopeContainer = saveBlockScopeContainer;\n parent2 = saveParent;\n currentFlow = saveCurrentFlow;\n }\n function checkContextualIdentifier(node) {\n if (!file.parseDiagnostics.length && !(node.flags & 33554432 /* Ambient */) && !(node.flags & 16777216 /* JSDoc */) && !isIdentifierName(node)) {\n const originalKeywordKind = identifierToKeywordKind(node);\n if (originalKeywordKind === void 0) {\n return;\n }\n if (inStrictMode && originalKeywordKind >= 119 /* FirstFutureReservedWord */ && originalKeywordKind <= 127 /* LastFutureReservedWord */) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, getStrictModeIdentifierMessage(node), declarationNameToString(node)));\n } else if (originalKeywordKind === 135 /* AwaitKeyword */) {\n if (isExternalModule(file) && isInTopLevelContext(node)) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module, declarationNameToString(node)));\n } else if (node.flags & 65536 /* AwaitContext */) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node)));\n }\n } else if (originalKeywordKind === 127 /* YieldKeyword */ && node.flags & 16384 /* YieldContext */) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node)));\n }\n }\n }\n function getStrictModeIdentifierMessage(node) {\n if (getContainingClass(node)) {\n return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;\n }\n if (file.externalModuleIndicator) {\n return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;\n }\n return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode;\n }\n function checkPrivateIdentifier(node) {\n if (node.escapedText === \"#constructor\") {\n if (!file.parseDiagnostics.length) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.constructor_is_a_reserved_word, declarationNameToString(node)));\n }\n }\n }\n function checkStrictModeBinaryExpression(node) {\n if (inStrictMode && isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operatorToken.kind)) {\n checkStrictModeEvalOrArguments(node, node.left);\n }\n }\n function checkStrictModeCatchClause(node) {\n if (inStrictMode && node.variableDeclaration) {\n checkStrictModeEvalOrArguments(node, node.variableDeclaration.name);\n }\n }\n function checkStrictModeDeleteExpression(node) {\n if (inStrictMode && node.expression.kind === 80 /* Identifier */) {\n const span = getErrorSpanForNode(file, node.expression);\n file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode));\n }\n }\n function isEvalOrArgumentsIdentifier(node) {\n return isIdentifier(node) && (node.escapedText === \"eval\" || node.escapedText === \"arguments\");\n }\n function checkStrictModeEvalOrArguments(contextNode, name) {\n if (name && name.kind === 80 /* Identifier */) {\n const identifier = name;\n if (isEvalOrArgumentsIdentifier(identifier)) {\n const span = getErrorSpanForNode(file, name);\n file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, getStrictModeEvalOrArgumentsMessage(contextNode), idText(identifier)));\n }\n }\n }\n function getStrictModeEvalOrArgumentsMessage(node) {\n if (getContainingClass(node)) {\n return Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode;\n }\n if (file.externalModuleIndicator) {\n return Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;\n }\n return Diagnostics.Invalid_use_of_0_in_strict_mode;\n }\n function checkStrictModeFunctionName(node) {\n if (inStrictMode && !(node.flags & 33554432 /* Ambient */)) {\n checkStrictModeEvalOrArguments(node, node.name);\n }\n }\n function getStrictModeBlockScopeFunctionDeclarationMessage(node) {\n if (getContainingClass(node)) {\n return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode;\n }\n if (file.externalModuleIndicator) {\n return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode;\n }\n return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5;\n }\n function checkStrictModeFunctionDeclaration(node) {\n if (languageVersion < 2 /* ES2015 */) {\n if (blockScopeContainer.kind !== 308 /* SourceFile */ && blockScopeContainer.kind !== 268 /* ModuleDeclaration */ && !isFunctionLikeOrClassStaticBlockDeclaration(blockScopeContainer)) {\n const errorSpan = getErrorSpanForNode(file, node);\n file.bindDiagnostics.push(createFileDiagnostic(file, errorSpan.start, errorSpan.length, getStrictModeBlockScopeFunctionDeclarationMessage(node)));\n }\n }\n }\n function checkStrictModePostfixUnaryExpression(node) {\n if (inStrictMode) {\n checkStrictModeEvalOrArguments(node, node.operand);\n }\n }\n function checkStrictModePrefixUnaryExpression(node) {\n if (inStrictMode) {\n if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n checkStrictModeEvalOrArguments(node, node.operand);\n }\n }\n }\n function checkStrictModeWithStatement(node) {\n if (inStrictMode) {\n errorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_strict_mode);\n }\n }\n function checkStrictModeLabeledStatement(node) {\n if (inStrictMode && getEmitScriptTarget(options) >= 2 /* ES2015 */) {\n if (isDeclarationStatement(node.statement) || isVariableStatement(node.statement)) {\n errorOnFirstToken(node.label, Diagnostics.A_label_is_not_allowed_here);\n }\n }\n }\n function errorOnFirstToken(node, message, ...args) {\n const span = getSpanOfTokenAtPosition(file, node.pos);\n file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, message, ...args));\n }\n function errorOrSuggestionOnNode(isError, node, message) {\n errorOrSuggestionOnRange(isError, node, node, message);\n }\n function errorOrSuggestionOnRange(isError, startNode2, endNode2, message) {\n addErrorOrSuggestionDiagnostic(isError, { pos: getTokenPosOfNode(startNode2, file), end: endNode2.end }, message);\n }\n function addErrorOrSuggestionDiagnostic(isError, range, message) {\n const diag2 = createFileDiagnostic(file, range.pos, range.end - range.pos, message);\n if (isError) {\n file.bindDiagnostics.push(diag2);\n } else {\n file.bindSuggestionDiagnostics = append(file.bindSuggestionDiagnostics, { ...diag2, category: 2 /* Suggestion */ });\n }\n }\n function bind(node) {\n if (!node) {\n return;\n }\n setParent(node, parent2);\n if (tracing) node.tracingPath = file.path;\n const saveInStrictMode = inStrictMode;\n bindWorker(node);\n if (node.kind > 166 /* LastToken */) {\n const saveParent = parent2;\n parent2 = node;\n const containerFlags = getContainerFlags(node);\n if (containerFlags === 0 /* None */) {\n bindChildren(node);\n } else {\n bindContainer(node, containerFlags);\n }\n parent2 = saveParent;\n } else {\n const saveParent = parent2;\n if (node.kind === 1 /* EndOfFileToken */) parent2 = node;\n bindJSDoc(node);\n parent2 = saveParent;\n }\n inStrictMode = saveInStrictMode;\n }\n function bindJSDoc(node) {\n if (hasJSDocNodes(node)) {\n if (isInJSFile(node)) {\n for (const j of node.jsDoc) {\n bind(j);\n }\n } else {\n for (const j of node.jsDoc) {\n setParent(j, node);\n setParentRecursive(\n j,\n /*incremental*/\n false\n );\n }\n }\n }\n }\n function updateStrictModeStatementList(statements) {\n if (!inStrictMode) {\n for (const statement of statements) {\n if (!isPrologueDirective(statement)) {\n return;\n }\n if (isUseStrictPrologueDirective(statement)) {\n inStrictMode = true;\n return;\n }\n }\n }\n }\n function isUseStrictPrologueDirective(node) {\n const nodeText2 = getSourceTextOfNodeFromSourceFile(file, node.expression);\n return nodeText2 === '\"use strict\"' || nodeText2 === \"'use strict'\";\n }\n function bindWorker(node) {\n switch (node.kind) {\n /* Strict mode checks */\n case 80 /* Identifier */:\n if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n let parentNode = node.parent;\n while (parentNode && !isJSDocTypeAlias(parentNode)) {\n parentNode = parentNode.parent;\n }\n bindBlockScopedDeclaration(parentNode, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n break;\n }\n // falls through\n case 110 /* ThisKeyword */:\n if (currentFlow && (isExpression(node) || parent2.kind === 305 /* ShorthandPropertyAssignment */)) {\n node.flowNode = currentFlow;\n }\n return checkContextualIdentifier(node);\n case 167 /* QualifiedName */:\n if (currentFlow && isPartOfTypeQuery(node)) {\n node.flowNode = currentFlow;\n }\n break;\n case 237 /* MetaProperty */:\n case 108 /* SuperKeyword */:\n node.flowNode = currentFlow;\n break;\n case 81 /* PrivateIdentifier */:\n return checkPrivateIdentifier(node);\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n const expr = node;\n if (currentFlow && isNarrowableReference(expr)) {\n expr.flowNode = currentFlow;\n }\n if (isSpecialPropertyDeclaration(expr)) {\n bindSpecialPropertyDeclaration(expr);\n }\n if (isInJSFile(expr) && file.commonJsModuleIndicator && isModuleExportsAccessExpression(expr) && !lookupSymbolForName(blockScopeContainer, \"module\")) {\n declareSymbol(\n file.locals,\n /*parent*/\n void 0,\n expr.expression,\n 1 /* FunctionScopedVariable */ | 134217728 /* ModuleExports */,\n 111550 /* FunctionScopedVariableExcludes */\n );\n }\n break;\n case 227 /* BinaryExpression */:\n const specialKind = getAssignmentDeclarationKind(node);\n switch (specialKind) {\n case 1 /* ExportsProperty */:\n bindExportsPropertyAssignment(node);\n break;\n case 2 /* ModuleExports */:\n bindModuleExportsAssignment(node);\n break;\n case 3 /* PrototypeProperty */:\n bindPrototypePropertyAssignment(node.left, node);\n break;\n case 6 /* Prototype */:\n bindPrototypeAssignment(node);\n break;\n case 4 /* ThisProperty */:\n bindThisPropertyAssignment(node);\n break;\n case 5 /* Property */:\n const expression = node.left.expression;\n if (isInJSFile(node) && isIdentifier(expression)) {\n const symbol = lookupSymbolForName(blockScopeContainer, expression.escapedText);\n if (isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration)) {\n bindThisPropertyAssignment(node);\n break;\n }\n }\n bindSpecialPropertyAssignment(node);\n break;\n case 0 /* None */:\n break;\n default:\n Debug.fail(\"Unknown binary expression special property assignment kind\");\n }\n return checkStrictModeBinaryExpression(node);\n case 300 /* CatchClause */:\n return checkStrictModeCatchClause(node);\n case 221 /* DeleteExpression */:\n return checkStrictModeDeleteExpression(node);\n case 226 /* PostfixUnaryExpression */:\n return checkStrictModePostfixUnaryExpression(node);\n case 225 /* PrefixUnaryExpression */:\n return checkStrictModePrefixUnaryExpression(node);\n case 255 /* WithStatement */:\n return checkStrictModeWithStatement(node);\n case 257 /* LabeledStatement */:\n return checkStrictModeLabeledStatement(node);\n case 198 /* ThisType */:\n seenThisKeyword = true;\n return;\n case 183 /* TypePredicate */:\n break;\n // Binding the children will handle everything\n case 169 /* TypeParameter */:\n return bindTypeParameter(node);\n case 170 /* Parameter */:\n return bindParameter(node);\n case 261 /* VariableDeclaration */:\n return bindVariableDeclarationOrBindingElement(node);\n case 209 /* BindingElement */:\n node.flowNode = currentFlow;\n return bindVariableDeclarationOrBindingElement(node);\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return bindPropertyWorker(node);\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n return bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 0 /* PropertyExcludes */);\n case 307 /* EnumMember */:\n return bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 900095 /* EnumMemberExcludes */);\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n return declareSymbolAndAddToSymbolTable(node, 131072 /* Signature */, 0 /* None */);\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n return bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), isObjectLiteralMethod(node) ? 0 /* PropertyExcludes */ : 103359 /* MethodExcludes */);\n case 263 /* FunctionDeclaration */:\n return bindFunctionDeclaration(node);\n case 177 /* Constructor */:\n return declareSymbolAndAddToSymbolTable(\n node,\n 16384 /* Constructor */,\n /*symbolExcludes:*/\n 0 /* None */\n );\n case 178 /* GetAccessor */:\n return bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 46015 /* GetAccessorExcludes */);\n case 179 /* SetAccessor */:\n return bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 78783 /* SetAccessorExcludes */);\n case 185 /* FunctionType */:\n case 318 /* JSDocFunctionType */:\n case 324 /* JSDocSignature */:\n case 186 /* ConstructorType */:\n return bindFunctionOrConstructorType(node);\n case 188 /* TypeLiteral */:\n case 323 /* JSDocTypeLiteral */:\n case 201 /* MappedType */:\n return bindAnonymousTypeWorker(node);\n case 333 /* JSDocClassTag */:\n return bindJSDocClassTag(node);\n case 211 /* ObjectLiteralExpression */:\n return bindObjectLiteralExpression(node);\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return bindFunctionExpression(node);\n case 214 /* CallExpression */:\n const assignmentKind = getAssignmentDeclarationKind(node);\n switch (assignmentKind) {\n case 7 /* ObjectDefinePropertyValue */:\n return bindObjectDefinePropertyAssignment(node);\n case 8 /* ObjectDefinePropertyExports */:\n return bindObjectDefinePropertyExport(node);\n case 9 /* ObjectDefinePrototypeProperty */:\n return bindObjectDefinePrototypeProperty(node);\n case 0 /* None */:\n break;\n // Nothing to do\n default:\n return Debug.fail(\"Unknown call expression assignment declaration kind\");\n }\n if (isInJSFile(node)) {\n bindCallExpression(node);\n }\n break;\n // Members of classes, interfaces, and modules\n case 232 /* ClassExpression */:\n case 264 /* ClassDeclaration */:\n inStrictMode = true;\n return bindClassLikeDeclaration(node);\n case 265 /* InterfaceDeclaration */:\n return bindBlockScopedDeclaration(node, 64 /* Interface */, 788872 /* InterfaceExcludes */);\n case 266 /* TypeAliasDeclaration */:\n return bindBlockScopedDeclaration(node, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n case 267 /* EnumDeclaration */:\n return bindEnumDeclaration(node);\n case 268 /* ModuleDeclaration */:\n return bindModuleDeclaration(node);\n // Jsx-attributes\n case 293 /* JsxAttributes */:\n return bindJsxAttributes(node);\n case 292 /* JsxAttribute */:\n return bindJsxAttribute(node, 4 /* Property */, 0 /* PropertyExcludes */);\n // Imports and exports\n case 272 /* ImportEqualsDeclaration */:\n case 275 /* NamespaceImport */:\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n return declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n case 271 /* NamespaceExportDeclaration */:\n return bindNamespaceExportDeclaration(node);\n case 274 /* ImportClause */:\n return bindImportClause(node);\n case 279 /* ExportDeclaration */:\n return bindExportDeclaration(node);\n case 278 /* ExportAssignment */:\n return bindExportAssignment(node);\n case 308 /* SourceFile */:\n updateStrictModeStatementList(node.statements);\n return bindSourceFileIfExternalModule();\n case 242 /* Block */:\n if (!isFunctionLikeOrClassStaticBlockDeclaration(node.parent)) {\n return;\n }\n // falls through\n case 269 /* ModuleBlock */:\n return updateStrictModeStatementList(node.statements);\n case 342 /* JSDocParameterTag */:\n if (node.parent.kind === 324 /* JSDocSignature */) {\n return bindParameter(node);\n }\n if (node.parent.kind !== 323 /* JSDocTypeLiteral */) {\n break;\n }\n // falls through\n case 349 /* JSDocPropertyTag */:\n const propTag = node;\n const flags = propTag.isBracketed || propTag.typeExpression && propTag.typeExpression.type.kind === 317 /* JSDocOptionalType */ ? 4 /* Property */ | 16777216 /* Optional */ : 4 /* Property */;\n return declareSymbolAndAddToSymbolTable(propTag, flags, 0 /* PropertyExcludes */);\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n return (delayedTypeAliases || (delayedTypeAliases = [])).push(node);\n case 340 /* JSDocOverloadTag */:\n return bind(node.typeExpression);\n case 352 /* JSDocImportTag */:\n return (jsDocImports || (jsDocImports = [])).push(node);\n }\n }\n function bindPropertyWorker(node) {\n const isAutoAccessor = isAutoAccessorPropertyDeclaration(node);\n const includes = isAutoAccessor ? 98304 /* Accessor */ : 4 /* Property */;\n const excludes = isAutoAccessor ? 13247 /* AccessorExcludes */ : 0 /* PropertyExcludes */;\n return bindPropertyOrMethodOrAccessor(node, includes | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), excludes);\n }\n function bindAnonymousTypeWorker(node) {\n return bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, \"__type\" /* Type */);\n }\n function bindSourceFileIfExternalModule() {\n setExportContextFlag(file);\n if (isExternalModule(file)) {\n bindSourceFileAsExternalModule();\n } else if (isJsonSourceFile(file)) {\n bindSourceFileAsExternalModule();\n const originalSymbol = file.symbol;\n declareSymbol(file.symbol.exports, file.symbol, file, 4 /* Property */, -1 /* All */);\n file.symbol = originalSymbol;\n }\n }\n function bindSourceFileAsExternalModule() {\n bindAnonymousDeclaration(file, 512 /* ValueModule */, `\"${removeFileExtension(file.fileName)}\"`);\n }\n function bindExportAssignment(node) {\n if (!container.symbol || !container.symbol.exports) {\n bindAnonymousDeclaration(node, 111551 /* Value */, getDeclarationName(node));\n } else {\n const flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */;\n const symbol = declareSymbol(container.symbol.exports, container.symbol, node, flags, -1 /* All */);\n if (node.isExportEquals) {\n setValueDeclaration(symbol, node);\n }\n }\n }\n function bindNamespaceExportDeclaration(node) {\n if (some(node.modifiers)) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Modifiers_cannot_appear_here));\n }\n const diag2 = !isSourceFile(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_at_top_level : !isExternalModule(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_in_module_files : !node.parent.isDeclarationFile ? Diagnostics.Global_module_exports_may_only_appear_in_declaration_files : void 0;\n if (diag2) {\n file.bindDiagnostics.push(createDiagnosticForNode2(node, diag2));\n } else {\n file.symbol.globalExports = file.symbol.globalExports || createSymbolTable();\n declareSymbol(file.symbol.globalExports, file.symbol, node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n }\n }\n function bindExportDeclaration(node) {\n if (!container.symbol || !container.symbol.exports) {\n bindAnonymousDeclaration(node, 8388608 /* ExportStar */, getDeclarationName(node));\n } else if (!node.exportClause) {\n declareSymbol(container.symbol.exports, container.symbol, node, 8388608 /* ExportStar */, 0 /* None */);\n } else if (isNamespaceExport(node.exportClause)) {\n setParent(node.exportClause, node);\n declareSymbol(container.symbol.exports, container.symbol, node.exportClause, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n }\n }\n function bindImportClause(node) {\n if (node.name) {\n declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n }\n }\n function setCommonJsModuleIndicator(node) {\n if (file.externalModuleIndicator && file.externalModuleIndicator !== true) {\n return false;\n }\n if (!file.commonJsModuleIndicator) {\n file.commonJsModuleIndicator = node;\n if (!file.externalModuleIndicator) {\n bindSourceFileAsExternalModule();\n }\n }\n return true;\n }\n function bindObjectDefinePropertyExport(node) {\n if (!setCommonJsModuleIndicator(node)) {\n return;\n }\n const symbol = forEachIdentifierInEntityName(\n node.arguments[0],\n /*parent*/\n void 0,\n (id, symbol2) => {\n if (symbol2) {\n addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */);\n }\n return symbol2;\n }\n );\n if (symbol) {\n const flags = 4 /* Property */ | 1048576 /* ExportValue */;\n declareSymbol(symbol.exports, symbol, node, flags, 0 /* None */);\n }\n }\n function bindExportsPropertyAssignment(node) {\n if (!setCommonJsModuleIndicator(node)) {\n return;\n }\n const symbol = forEachIdentifierInEntityName(\n node.left.expression,\n /*parent*/\n void 0,\n (id, symbol2) => {\n if (symbol2) {\n addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */);\n }\n return symbol2;\n }\n );\n if (symbol) {\n const isAlias = isAliasableExpression(node.right) && (isExportsIdentifier(node.left.expression) || isModuleExportsAccessExpression(node.left.expression));\n const flags = isAlias ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */;\n setParent(node.left, node);\n declareSymbol(symbol.exports, symbol, node.left, flags, 0 /* None */);\n }\n }\n function bindModuleExportsAssignment(node) {\n if (!setCommonJsModuleIndicator(node)) {\n return;\n }\n const assignedExpression = getRightMostAssignedExpression(node.right);\n if (isEmptyObjectLiteral(assignedExpression) || container === file && isExportsOrModuleExportsOrAlias(file, assignedExpression)) {\n return;\n }\n if (isObjectLiteralExpression(assignedExpression) && every(assignedExpression.properties, isShorthandPropertyAssignment)) {\n forEach(assignedExpression.properties, bindExportAssignedObjectMemberAlias);\n return;\n }\n const flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */ | 512 /* ValueModule */;\n const symbol = declareSymbol(file.symbol.exports, file.symbol, node, flags | 67108864 /* Assignment */, 0 /* None */);\n setValueDeclaration(symbol, node);\n }\n function bindExportAssignedObjectMemberAlias(node) {\n declareSymbol(file.symbol.exports, file.symbol, node, 2097152 /* Alias */ | 67108864 /* Assignment */, 0 /* None */);\n }\n function bindThisPropertyAssignment(node) {\n Debug.assert(isInJSFile(node));\n const hasPrivateIdentifier = isBinaryExpression(node) && isPropertyAccessExpression(node.left) && isPrivateIdentifier(node.left.name) || isPropertyAccessExpression(node) && isPrivateIdentifier(node.name);\n if (hasPrivateIdentifier) {\n return;\n }\n const thisContainer = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n switch (thisContainer.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n let constructorSymbol = thisContainer.symbol;\n if (isBinaryExpression(thisContainer.parent) && thisContainer.parent.operatorToken.kind === 64 /* EqualsToken */) {\n const l = thisContainer.parent.left;\n if (isBindableStaticAccessExpression(l) && isPrototypeAccess(l.expression)) {\n constructorSymbol = lookupSymbolForPropertyAccess(l.expression.expression, thisParentContainer);\n }\n }\n if (constructorSymbol && constructorSymbol.valueDeclaration) {\n constructorSymbol.members = constructorSymbol.members || createSymbolTable();\n if (hasDynamicName(node)) {\n bindDynamicallyNamedThisPropertyAssignment(node, constructorSymbol, constructorSymbol.members);\n } else {\n declareSymbol(constructorSymbol.members, constructorSymbol, node, 4 /* Property */ | 67108864 /* Assignment */, 0 /* PropertyExcludes */ & ~4 /* Property */);\n }\n addDeclarationToSymbol(constructorSymbol, constructorSymbol.valueDeclaration, 32 /* Class */);\n }\n break;\n case 177 /* Constructor */:\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 176 /* ClassStaticBlockDeclaration */:\n const containingClass = thisContainer.parent;\n const symbolTable = isStatic(thisContainer) ? containingClass.symbol.exports : containingClass.symbol.members;\n if (hasDynamicName(node)) {\n bindDynamicallyNamedThisPropertyAssignment(node, containingClass.symbol, symbolTable);\n } else {\n declareSymbol(\n symbolTable,\n containingClass.symbol,\n node,\n 4 /* Property */ | 67108864 /* Assignment */,\n 0 /* None */,\n /*isReplaceableByMethod*/\n true\n );\n }\n break;\n case 308 /* SourceFile */:\n if (hasDynamicName(node)) {\n break;\n } else if (thisContainer.commonJsModuleIndicator) {\n declareSymbol(thisContainer.symbol.exports, thisContainer.symbol, node, 4 /* Property */ | 1048576 /* ExportValue */, 0 /* None */);\n } else {\n declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);\n }\n break;\n // Namespaces are not allowed in javascript files, so do nothing here\n case 268 /* ModuleDeclaration */:\n break;\n default:\n Debug.failBadSyntaxKind(thisContainer);\n }\n }\n function bindDynamicallyNamedThisPropertyAssignment(node, symbol, symbolTable) {\n declareSymbol(\n symbolTable,\n symbol,\n node,\n 4 /* Property */,\n 0 /* None */,\n /*isReplaceableByMethod*/\n true,\n /*isComputedName*/\n true\n );\n addLateBoundAssignmentDeclarationToSymbol(node, symbol);\n }\n function addLateBoundAssignmentDeclarationToSymbol(node, symbol) {\n if (symbol) {\n (symbol.assignmentDeclarationMembers || (symbol.assignmentDeclarationMembers = /* @__PURE__ */ new Map())).set(getNodeId(node), node);\n }\n }\n function bindSpecialPropertyDeclaration(node) {\n if (node.expression.kind === 110 /* ThisKeyword */) {\n bindThisPropertyAssignment(node);\n } else if (isBindableStaticAccessExpression(node) && node.parent.parent.kind === 308 /* SourceFile */) {\n if (isPrototypeAccess(node.expression)) {\n bindPrototypePropertyAssignment(node, node.parent);\n } else {\n bindStaticPropertyAssignment(node);\n }\n }\n }\n function bindPrototypeAssignment(node) {\n setParent(node.left, node);\n setParent(node.right, node);\n bindPropertyAssignment(\n node.left.expression,\n node.left,\n /*isPrototypeProperty*/\n false,\n /*containerIsClass*/\n true\n );\n }\n function bindObjectDefinePrototypeProperty(node) {\n const namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0].expression);\n if (namespaceSymbol && namespaceSymbol.valueDeclaration) {\n addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */);\n }\n bindPotentiallyNewExpandoMemberToNamespace(\n node,\n namespaceSymbol,\n /*isPrototypeProperty*/\n true\n );\n }\n function bindPrototypePropertyAssignment(lhs, parent3) {\n const classPrototype = lhs.expression;\n const constructorFunction = classPrototype.expression;\n setParent(constructorFunction, classPrototype);\n setParent(classPrototype, lhs);\n setParent(lhs, parent3);\n bindPropertyAssignment(\n constructorFunction,\n lhs,\n /*isPrototypeProperty*/\n true,\n /*containerIsClass*/\n true\n );\n }\n function bindObjectDefinePropertyAssignment(node) {\n let namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0]);\n const isToplevel = node.parent.parent.kind === 308 /* SourceFile */;\n namespaceSymbol = bindPotentiallyMissingNamespaces(\n namespaceSymbol,\n node.arguments[0],\n isToplevel,\n /*isPrototypeProperty*/\n false,\n /*containerIsClass*/\n false\n );\n bindPotentiallyNewExpandoMemberToNamespace(\n node,\n namespaceSymbol,\n /*isPrototypeProperty*/\n false\n );\n }\n function bindSpecialPropertyAssignment(node) {\n var _a;\n const parentSymbol = lookupSymbolForPropertyAccess(node.left.expression, blockScopeContainer) || lookupSymbolForPropertyAccess(node.left.expression, container);\n if (!isInJSFile(node) && !isFunctionSymbol(parentSymbol)) {\n return;\n }\n const rootExpr = getLeftmostAccessExpression(node.left);\n if (isIdentifier(rootExpr) && ((_a = lookupSymbolForName(container, rootExpr.escapedText)) == null ? void 0 : _a.flags) & 2097152 /* Alias */) {\n return;\n }\n setParent(node.left, node);\n setParent(node.right, node);\n if (isIdentifier(node.left.expression) && container === file && isExportsOrModuleExportsOrAlias(file, node.left.expression)) {\n bindExportsPropertyAssignment(node);\n } else if (hasDynamicName(node)) {\n bindAnonymousDeclaration(node, 4 /* Property */ | 67108864 /* Assignment */, \"__computed\" /* Computed */);\n const sym = bindPotentiallyMissingNamespaces(\n parentSymbol,\n node.left.expression,\n isTopLevelNamespaceAssignment(node.left),\n /*isPrototypeProperty*/\n false,\n /*containerIsClass*/\n false\n );\n addLateBoundAssignmentDeclarationToSymbol(node, sym);\n } else {\n bindStaticPropertyAssignment(cast(node.left, isBindableStaticNameExpression));\n }\n }\n function bindStaticPropertyAssignment(node) {\n Debug.assert(!isIdentifier(node));\n setParent(node.expression, node);\n bindPropertyAssignment(\n node.expression,\n node,\n /*isPrototypeProperty*/\n false,\n /*containerIsClass*/\n false\n );\n }\n function bindPotentiallyMissingNamespaces(namespaceSymbol, entityName, isToplevel, isPrototypeProperty, containerIsClass) {\n if ((namespaceSymbol == null ? void 0 : namespaceSymbol.flags) & 2097152 /* Alias */) {\n return namespaceSymbol;\n }\n if (isToplevel && !isPrototypeProperty) {\n const flags = 1536 /* Module */ | 67108864 /* Assignment */;\n const excludeFlags = 110735 /* ValueModuleExcludes */ & ~67108864 /* Assignment */;\n namespaceSymbol = forEachIdentifierInEntityName(entityName, namespaceSymbol, (id, symbol, parent3) => {\n if (symbol) {\n addDeclarationToSymbol(symbol, id, flags);\n return symbol;\n } else {\n const table = parent3 ? parent3.exports : file.jsGlobalAugmentations || (file.jsGlobalAugmentations = createSymbolTable());\n return declareSymbol(table, parent3, id, flags, excludeFlags);\n }\n });\n }\n if (containerIsClass && namespaceSymbol && namespaceSymbol.valueDeclaration) {\n addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */);\n }\n return namespaceSymbol;\n }\n function bindPotentiallyNewExpandoMemberToNamespace(declaration, namespaceSymbol, isPrototypeProperty) {\n if (!namespaceSymbol || !isExpandoSymbol(namespaceSymbol)) {\n return;\n }\n const symbolTable = isPrototypeProperty ? namespaceSymbol.members || (namespaceSymbol.members = createSymbolTable()) : namespaceSymbol.exports || (namespaceSymbol.exports = createSymbolTable());\n let includes = 0 /* None */;\n let excludes = 0 /* None */;\n if (isFunctionLikeDeclaration(getAssignedExpandoInitializer(declaration))) {\n includes = 8192 /* Method */;\n excludes = 103359 /* MethodExcludes */;\n } else if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) {\n if (some(declaration.arguments[2].properties, (p) => {\n const id = getNameOfDeclaration(p);\n return !!id && isIdentifier(id) && idText(id) === \"set\";\n })) {\n includes |= 65536 /* SetAccessor */ | 4 /* Property */;\n excludes |= 78783 /* SetAccessorExcludes */;\n }\n if (some(declaration.arguments[2].properties, (p) => {\n const id = getNameOfDeclaration(p);\n return !!id && isIdentifier(id) && idText(id) === \"get\";\n })) {\n includes |= 32768 /* GetAccessor */ | 4 /* Property */;\n excludes |= 46015 /* GetAccessorExcludes */;\n }\n }\n if (includes === 0 /* None */) {\n includes = 4 /* Property */;\n excludes = 0 /* PropertyExcludes */;\n }\n declareSymbol(symbolTable, namespaceSymbol, declaration, includes | 67108864 /* Assignment */, excludes & ~67108864 /* Assignment */);\n }\n function isTopLevelNamespaceAssignment(propertyAccess) {\n return isBinaryExpression(propertyAccess.parent) ? getParentOfBinaryExpression(propertyAccess.parent).parent.kind === 308 /* SourceFile */ : propertyAccess.parent.parent.kind === 308 /* SourceFile */;\n }\n function bindPropertyAssignment(name, propertyAccess, isPrototypeProperty, containerIsClass) {\n let namespaceSymbol = lookupSymbolForPropertyAccess(name, blockScopeContainer) || lookupSymbolForPropertyAccess(name, container);\n const isToplevel = isTopLevelNamespaceAssignment(propertyAccess);\n namespaceSymbol = bindPotentiallyMissingNamespaces(namespaceSymbol, propertyAccess.expression, isToplevel, isPrototypeProperty, containerIsClass);\n bindPotentiallyNewExpandoMemberToNamespace(propertyAccess, namespaceSymbol, isPrototypeProperty);\n }\n function isExpandoSymbol(symbol) {\n if (symbol.flags & (16 /* Function */ | 32 /* Class */ | 1024 /* NamespaceModule */)) {\n return true;\n }\n const node = symbol.valueDeclaration;\n if (node && isCallExpression(node)) {\n return !!getAssignedExpandoInitializer(node);\n }\n let init = !node ? void 0 : isVariableDeclaration(node) ? node.initializer : isBinaryExpression(node) ? node.right : isPropertyAccessExpression(node) && isBinaryExpression(node.parent) ? node.parent.right : void 0;\n init = init && getRightMostAssignedExpression(init);\n if (init) {\n const isPrototypeAssignment = isPrototypeAccess(isVariableDeclaration(node) ? node.name : isBinaryExpression(node) ? node.left : node);\n return !!getExpandoInitializer(isBinaryExpression(init) && (init.operatorToken.kind === 57 /* BarBarToken */ || init.operatorToken.kind === 61 /* QuestionQuestionToken */) ? init.right : init, isPrototypeAssignment);\n }\n return false;\n }\n function getParentOfBinaryExpression(expr) {\n while (isBinaryExpression(expr.parent)) {\n expr = expr.parent;\n }\n return expr.parent;\n }\n function lookupSymbolForPropertyAccess(node, lookupContainer = container) {\n if (isIdentifier(node)) {\n return lookupSymbolForName(lookupContainer, node.escapedText);\n } else {\n const symbol = lookupSymbolForPropertyAccess(node.expression);\n return symbol && symbol.exports && symbol.exports.get(getElementOrPropertyAccessName(node));\n }\n }\n function forEachIdentifierInEntityName(e, parent3, action) {\n if (isExportsOrModuleExportsOrAlias(file, e)) {\n return file.symbol;\n } else if (isIdentifier(e)) {\n return action(e, lookupSymbolForPropertyAccess(e), parent3);\n } else {\n const s = forEachIdentifierInEntityName(e.expression, parent3, action);\n const name = getNameOrArgument(e);\n if (isPrivateIdentifier(name)) {\n Debug.fail(\"unexpected PrivateIdentifier\");\n }\n return action(name, s && s.exports && s.exports.get(getElementOrPropertyAccessName(e)), s);\n }\n }\n function bindCallExpression(node) {\n if (!file.commonJsModuleIndicator && isRequireCall(\n node,\n /*requireStringLiteralLikeArgument*/\n false\n )) {\n setCommonJsModuleIndicator(node);\n }\n }\n function bindClassLikeDeclaration(node) {\n if (node.kind === 264 /* ClassDeclaration */) {\n bindBlockScopedDeclaration(node, 32 /* Class */, 899503 /* ClassExcludes */);\n } else {\n const bindingName = node.name ? node.name.escapedText : \"__class\" /* Class */;\n bindAnonymousDeclaration(node, 32 /* Class */, bindingName);\n if (node.name) {\n classifiableNames.add(node.name.escapedText);\n }\n }\n const { symbol } = node;\n const prototypeSymbol = createSymbol(4 /* Property */ | 4194304 /* Prototype */, \"prototype\");\n const symbolExport = symbol.exports.get(prototypeSymbol.escapedName);\n if (symbolExport) {\n if (node.name) {\n setParent(node.name, node);\n }\n file.bindDiagnostics.push(createDiagnosticForNode2(symbolExport.declarations[0], Diagnostics.Duplicate_identifier_0, symbolName(prototypeSymbol)));\n }\n symbol.exports.set(prototypeSymbol.escapedName, prototypeSymbol);\n prototypeSymbol.parent = symbol;\n }\n function bindEnumDeclaration(node) {\n return isEnumConst(node) ? bindBlockScopedDeclaration(node, 128 /* ConstEnum */, 899967 /* ConstEnumExcludes */) : bindBlockScopedDeclaration(node, 256 /* RegularEnum */, 899327 /* RegularEnumExcludes */);\n }\n function bindVariableDeclarationOrBindingElement(node) {\n if (inStrictMode) {\n checkStrictModeEvalOrArguments(node, node.name);\n }\n if (!isBindingPattern(node.name)) {\n const possibleVariableDecl = node.kind === 261 /* VariableDeclaration */ ? node : node.parent.parent;\n if (isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(possibleVariableDecl) && !getJSDocTypeTag(node) && !(getCombinedModifierFlags(node) & 32 /* Export */)) {\n declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n } else if (isBlockOrCatchScoped(node)) {\n bindBlockScopedDeclaration(node, 2 /* BlockScopedVariable */, 111551 /* BlockScopedVariableExcludes */);\n } else if (isPartOfParameterDeclaration(node)) {\n declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);\n } else {\n declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);\n }\n }\n }\n function bindParameter(node) {\n if (node.kind === 342 /* JSDocParameterTag */ && container.kind !== 324 /* JSDocSignature */) {\n return;\n }\n if (inStrictMode && !(node.flags & 33554432 /* Ambient */)) {\n checkStrictModeEvalOrArguments(node, node.name);\n }\n if (isBindingPattern(node.name)) {\n bindAnonymousDeclaration(node, 1 /* FunctionScopedVariable */, \"__\" + node.parent.parameters.indexOf(node));\n } else {\n declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);\n }\n if (isParameterPropertyDeclaration(node, node.parent)) {\n const classDeclaration = node.parent.parent;\n declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), 0 /* PropertyExcludes */);\n }\n }\n function bindFunctionDeclaration(node) {\n if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) {\n if (isAsyncFunction(node)) {\n emitFlags |= 4096 /* HasAsyncFunctions */;\n }\n }\n checkStrictModeFunctionName(node);\n if (inStrictMode) {\n checkStrictModeFunctionDeclaration(node);\n bindBlockScopedDeclaration(node, 16 /* Function */, 110991 /* FunctionExcludes */);\n } else {\n declareSymbolAndAddToSymbolTable(node, 16 /* Function */, 110991 /* FunctionExcludes */);\n }\n }\n function bindFunctionExpression(node) {\n if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) {\n if (isAsyncFunction(node)) {\n emitFlags |= 4096 /* HasAsyncFunctions */;\n }\n }\n if (currentFlow) {\n node.flowNode = currentFlow;\n }\n checkStrictModeFunctionName(node);\n const bindingName = node.name ? node.name.escapedText : \"__function\" /* Function */;\n return bindAnonymousDeclaration(node, 16 /* Function */, bindingName);\n }\n function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) {\n if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */) && isAsyncFunction(node)) {\n emitFlags |= 4096 /* HasAsyncFunctions */;\n }\n if (currentFlow && isObjectLiteralOrClassExpressionMethodOrAccessor(node)) {\n node.flowNode = currentFlow;\n }\n return hasDynamicName(node) ? bindAnonymousDeclaration(node, symbolFlags, \"__computed\" /* Computed */) : declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);\n }\n function getInferTypeContainer(node) {\n const extendsType = findAncestor(node, (n) => n.parent && isConditionalTypeNode(n.parent) && n.parent.extendsType === n);\n return extendsType && extendsType.parent;\n }\n function bindTypeParameter(node) {\n if (isJSDocTemplateTag(node.parent)) {\n const container2 = getEffectiveContainerForJSDocTemplateTag(node.parent);\n if (container2) {\n Debug.assertNode(container2, canHaveLocals);\n container2.locals ?? (container2.locals = createSymbolTable());\n declareSymbol(\n container2.locals,\n /*parent*/\n void 0,\n node,\n 262144 /* TypeParameter */,\n 526824 /* TypeParameterExcludes */\n );\n } else {\n declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */);\n }\n } else if (node.parent.kind === 196 /* InferType */) {\n const container2 = getInferTypeContainer(node.parent);\n if (container2) {\n Debug.assertNode(container2, canHaveLocals);\n container2.locals ?? (container2.locals = createSymbolTable());\n declareSymbol(\n container2.locals,\n /*parent*/\n void 0,\n node,\n 262144 /* TypeParameter */,\n 526824 /* TypeParameterExcludes */\n );\n } else {\n bindAnonymousDeclaration(node, 262144 /* TypeParameter */, getDeclarationName(node));\n }\n } else {\n declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */);\n }\n }\n function shouldReportErrorOnModuleDeclaration(node) {\n const instanceState = getModuleInstanceState(node);\n return instanceState === 1 /* Instantiated */ || instanceState === 2 /* ConstEnumOnly */ && shouldPreserveConstEnums(options);\n }\n function checkUnreachable(node) {\n if (!(currentFlow.flags & 1 /* Unreachable */)) {\n return false;\n }\n if (currentFlow === unreachableFlow) {\n const reportError = (\n // report error on all statements except empty ones\n isStatementButNotDeclaration(node) && node.kind !== 243 /* EmptyStatement */ || // report error on class declarations\n node.kind === 264 /* ClassDeclaration */ || // report errors on enums with preserved emit\n isEnumDeclarationWithPreservedEmit(node, options) || // report error on instantiated modules\n node.kind === 268 /* ModuleDeclaration */ && shouldReportErrorOnModuleDeclaration(node)\n );\n if (reportError) {\n currentFlow = reportedUnreachableFlow;\n if (!options.allowUnreachableCode) {\n const isError = unreachableCodeIsError(options) && !(node.flags & 33554432 /* Ambient */) && (!isVariableStatement(node) || !!(getCombinedNodeFlags(node.declarationList) & 7 /* BlockScoped */) || node.declarationList.declarations.some((d) => !!d.initializer));\n eachUnreachableRange(node, options, (start, end) => errorOrSuggestionOnRange(isError, start, end, Diagnostics.Unreachable_code_detected));\n }\n }\n }\n return true;\n }\n}\nfunction isEnumDeclarationWithPreservedEmit(node, options) {\n return node.kind === 267 /* EnumDeclaration */ && (!isEnumConst(node) || shouldPreserveConstEnums(options));\n}\nfunction eachUnreachableRange(node, options, cb) {\n if (isStatement(node) && isExecutableStatement(node) && isBlock(node.parent)) {\n const { statements } = node.parent;\n const slice = sliceAfter(statements, node);\n getRangesWhere(slice, isExecutableStatement, (start, afterEnd) => cb(slice[start], slice[afterEnd - 1]));\n } else {\n cb(node, node);\n }\n function isExecutableStatement(s) {\n return !isFunctionDeclaration(s) && !isPurelyTypeDeclaration(s) && // `var x;` may declare a variable used above\n !(isVariableStatement(s) && !(getCombinedNodeFlags(s) & 7 /* BlockScoped */) && s.declarationList.declarations.some((d) => !d.initializer));\n }\n function isPurelyTypeDeclaration(s) {\n switch (s.kind) {\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return true;\n case 268 /* ModuleDeclaration */:\n return getModuleInstanceState(s) !== 1 /* Instantiated */;\n case 267 /* EnumDeclaration */:\n return !isEnumDeclarationWithPreservedEmit(s, options);\n default:\n return false;\n }\n }\n}\nfunction isExportsOrModuleExportsOrAlias(sourceFile, node) {\n let i = 0;\n const q = createQueue();\n q.enqueue(node);\n while (!q.isEmpty() && i < 100) {\n i++;\n node = q.dequeue();\n if (isExportsIdentifier(node) || isModuleExportsAccessExpression(node)) {\n return true;\n } else if (isIdentifier(node)) {\n const symbol = lookupSymbolForName(sourceFile, node.escapedText);\n if (!!symbol && !!symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && !!symbol.valueDeclaration.initializer) {\n const init = symbol.valueDeclaration.initializer;\n q.enqueue(init);\n if (isAssignmentExpression(\n init,\n /*excludeCompoundAssignment*/\n true\n )) {\n q.enqueue(init.left);\n q.enqueue(init.right);\n }\n }\n }\n }\n return false;\n}\nfunction getContainerFlags(node) {\n switch (node.kind) {\n case 232 /* ClassExpression */:\n case 264 /* ClassDeclaration */:\n case 267 /* EnumDeclaration */:\n case 211 /* ObjectLiteralExpression */:\n case 188 /* TypeLiteral */:\n case 323 /* JSDocTypeLiteral */:\n case 293 /* JsxAttributes */:\n return 1 /* IsContainer */;\n case 265 /* InterfaceDeclaration */:\n return 1 /* IsContainer */ | 64 /* IsInterface */;\n case 268 /* ModuleDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 201 /* MappedType */:\n case 182 /* IndexSignature */:\n return 1 /* IsContainer */ | 32 /* HasLocals */;\n case 308 /* SourceFile */:\n return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */;\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n if (isObjectLiteralOrClassExpressionMethodOrAccessor(node)) {\n return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */;\n }\n // falls through\n case 177 /* Constructor */:\n case 263 /* FunctionDeclaration */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 324 /* JSDocSignature */:\n case 318 /* JSDocFunctionType */:\n case 185 /* FunctionType */:\n case 181 /* ConstructSignature */:\n case 186 /* ConstructorType */:\n case 176 /* ClassStaticBlockDeclaration */:\n return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */;\n case 352 /* JSDocImportTag */:\n return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */;\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 16 /* IsFunctionExpression */;\n case 269 /* ModuleBlock */:\n return 4 /* IsControlFlowContainer */;\n case 173 /* PropertyDeclaration */:\n return node.initializer ? 4 /* IsControlFlowContainer */ : 0;\n case 300 /* CatchClause */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 270 /* CaseBlock */:\n return 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */;\n case 242 /* Block */:\n return isFunctionLike(node.parent) || isClassStaticBlockDeclaration(node.parent) ? 0 /* None */ : 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */;\n }\n return 0 /* None */;\n}\nfunction lookupSymbolForName(container, name) {\n var _a, _b, _c, _d;\n const local = (_b = (_a = tryCast(container, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(name);\n if (local) {\n return local.exportSymbol ?? local;\n }\n if (isSourceFile(container) && container.jsGlobalAugmentations && container.jsGlobalAugmentations.has(name)) {\n return container.jsGlobalAugmentations.get(name);\n }\n if (canHaveSymbol(container)) {\n return (_d = (_c = container.symbol) == null ? void 0 : _c.exports) == null ? void 0 : _d.get(name);\n }\n}\n\n// src/compiler/symbolWalker.ts\nfunction createGetSymbolWalker(getRestTypeOfSignature, getTypePredicateOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getConstraintOfTypeParameter, getFirstIdentifier2, getTypeArguments) {\n return getSymbolWalker;\n function getSymbolWalker(accept = () => true) {\n const visitedTypes = [];\n const visitedSymbols = [];\n return {\n walkType: (type) => {\n try {\n visitType(type);\n return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) };\n } finally {\n clear(visitedTypes);\n clear(visitedSymbols);\n }\n },\n walkSymbol: (symbol) => {\n try {\n visitSymbol(symbol);\n return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) };\n } finally {\n clear(visitedTypes);\n clear(visitedSymbols);\n }\n }\n };\n function visitType(type) {\n if (!type) {\n return;\n }\n if (visitedTypes[type.id]) {\n return;\n }\n visitedTypes[type.id] = type;\n const shouldBail = visitSymbol(type.symbol);\n if (shouldBail) return;\n if (type.flags & 524288 /* Object */) {\n const objectType = type;\n const objectFlags = objectType.objectFlags;\n if (objectFlags & 4 /* Reference */) {\n visitTypeReference(type);\n }\n if (objectFlags & 32 /* Mapped */) {\n visitMappedType(type);\n }\n if (objectFlags & (1 /* Class */ | 2 /* Interface */)) {\n visitInterfaceType(type);\n }\n if (objectFlags & (8 /* Tuple */ | 16 /* Anonymous */)) {\n visitObjectType(objectType);\n }\n }\n if (type.flags & 262144 /* TypeParameter */) {\n visitTypeParameter(type);\n }\n if (type.flags & 3145728 /* UnionOrIntersection */) {\n visitUnionOrIntersectionType(type);\n }\n if (type.flags & 4194304 /* Index */) {\n visitIndexType(type);\n }\n if (type.flags & 8388608 /* IndexedAccess */) {\n visitIndexedAccessType(type);\n }\n }\n function visitTypeReference(type) {\n visitType(type.target);\n forEach(getTypeArguments(type), visitType);\n }\n function visitTypeParameter(type) {\n visitType(getConstraintOfTypeParameter(type));\n }\n function visitUnionOrIntersectionType(type) {\n forEach(type.types, visitType);\n }\n function visitIndexType(type) {\n visitType(type.type);\n }\n function visitIndexedAccessType(type) {\n visitType(type.objectType);\n visitType(type.indexType);\n visitType(type.constraint);\n }\n function visitMappedType(type) {\n visitType(type.typeParameter);\n visitType(type.constraintType);\n visitType(type.templateType);\n visitType(type.modifiersType);\n }\n function visitSignature(signature) {\n const typePredicate = getTypePredicateOfSignature(signature);\n if (typePredicate) {\n visitType(typePredicate.type);\n }\n forEach(signature.typeParameters, visitType);\n for (const parameter of signature.parameters) {\n visitSymbol(parameter);\n }\n visitType(getRestTypeOfSignature(signature));\n visitType(getReturnTypeOfSignature(signature));\n }\n function visitInterfaceType(interfaceT) {\n visitObjectType(interfaceT);\n forEach(interfaceT.typeParameters, visitType);\n forEach(getBaseTypes(interfaceT), visitType);\n visitType(interfaceT.thisType);\n }\n function visitObjectType(type) {\n const resolved = resolveStructuredTypeMembers(type);\n for (const info of resolved.indexInfos) {\n visitType(info.keyType);\n visitType(info.type);\n }\n for (const signature of resolved.callSignatures) {\n visitSignature(signature);\n }\n for (const signature of resolved.constructSignatures) {\n visitSignature(signature);\n }\n for (const p of resolved.properties) {\n visitSymbol(p);\n }\n }\n function visitSymbol(symbol) {\n if (!symbol) {\n return false;\n }\n const symbolId = getSymbolId(symbol);\n if (visitedSymbols[symbolId]) {\n return false;\n }\n visitedSymbols[symbolId] = symbol;\n if (!accept(symbol)) {\n return true;\n }\n const t = getTypeOfSymbol(symbol);\n visitType(t);\n if (symbol.exports) {\n symbol.exports.forEach(visitSymbol);\n }\n forEach(symbol.declarations, (d) => {\n if (d.type && d.type.kind === 187 /* TypeQuery */) {\n const query = d.type;\n const entity = getResolvedSymbol(getFirstIdentifier2(query.exprName));\n visitSymbol(entity);\n }\n });\n return false;\n }\n }\n}\n\n// src/compiler/_namespaces/ts.moduleSpecifiers.ts\nvar ts_moduleSpecifiers_exports = {};\n__export(ts_moduleSpecifiers_exports, {\n RelativePreference: () => RelativePreference,\n countPathComponents: () => countPathComponents,\n forEachFileNameOfModule: () => forEachFileNameOfModule,\n getLocalModuleSpecifierBetweenFileNames: () => getLocalModuleSpecifierBetweenFileNames,\n getModuleSpecifier: () => getModuleSpecifier,\n getModuleSpecifierPreferences: () => getModuleSpecifierPreferences,\n getModuleSpecifiers: () => getModuleSpecifiers,\n getModuleSpecifiersWithCacheInfo: () => getModuleSpecifiersWithCacheInfo,\n getNodeModulesPackageName: () => getNodeModulesPackageName,\n tryGetJSExtensionForFile: () => tryGetJSExtensionForFile,\n tryGetModuleSpecifiersFromCache: () => tryGetModuleSpecifiersFromCache,\n tryGetRealFileNameForNonJsDeclarationFileName: () => tryGetRealFileNameForNonJsDeclarationFileName,\n updateModuleSpecifier: () => updateModuleSpecifier\n});\n\n// src/compiler/moduleSpecifiers.ts\nvar stringToRegex = memoizeOne((pattern) => {\n try {\n let slash = pattern.indexOf(\"/\");\n if (slash !== 0) {\n return new RegExp(pattern);\n }\n const lastSlash = pattern.lastIndexOf(\"/\");\n if (slash === lastSlash) {\n return new RegExp(pattern);\n }\n while ((slash = pattern.indexOf(\"/\", slash + 1)) !== lastSlash) {\n if (pattern[slash - 1] !== \"\\\\\") {\n return new RegExp(pattern);\n }\n }\n const flags = pattern.substring(lastSlash + 1).replace(/[^iu]/g, \"\");\n pattern = pattern.substring(1, lastSlash);\n return new RegExp(pattern, flags);\n } catch {\n return void 0;\n }\n});\nvar RelativePreference = /* @__PURE__ */ ((RelativePreference2) => {\n RelativePreference2[RelativePreference2[\"Relative\"] = 0] = \"Relative\";\n RelativePreference2[RelativePreference2[\"NonRelative\"] = 1] = \"NonRelative\";\n RelativePreference2[RelativePreference2[\"Shortest\"] = 2] = \"Shortest\";\n RelativePreference2[RelativePreference2[\"ExternalNonRelative\"] = 3] = \"ExternalNonRelative\";\n return RelativePreference2;\n})(RelativePreference || {});\nfunction getModuleSpecifierPreferences({ importModuleSpecifierPreference, importModuleSpecifierEnding, autoImportSpecifierExcludeRegexes }, host, compilerOptions, importingSourceFile, oldImportSpecifier) {\n const filePreferredEnding = getPreferredEnding();\n return {\n excludeRegexes: autoImportSpecifierExcludeRegexes,\n relativePreference: oldImportSpecifier !== void 0 ? isExternalModuleNameRelative(oldImportSpecifier) ? 0 /* Relative */ : 1 /* NonRelative */ : importModuleSpecifierPreference === \"relative\" ? 0 /* Relative */ : importModuleSpecifierPreference === \"non-relative\" ? 1 /* NonRelative */ : importModuleSpecifierPreference === \"project-relative\" ? 3 /* ExternalNonRelative */ : 2 /* Shortest */,\n getAllowedEndingsInPreferredOrder: (syntaxImpliedNodeFormat) => {\n const impliedNodeFormat = getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions);\n const preferredEnding = syntaxImpliedNodeFormat !== impliedNodeFormat ? getPreferredEnding(syntaxImpliedNodeFormat) : filePreferredEnding;\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n if ((syntaxImpliedNodeFormat ?? impliedNodeFormat) === 99 /* ESNext */ && 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */) {\n if (shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName)) {\n return [3 /* TsExtension */, 2 /* JsExtension */];\n }\n return [2 /* JsExtension */];\n }\n if (getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */) {\n return preferredEnding === 2 /* JsExtension */ ? [2 /* JsExtension */, 1 /* Index */] : [1 /* Index */, 2 /* JsExtension */];\n }\n const allowImportingTsExtension = shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName);\n switch (preferredEnding) {\n case 2 /* JsExtension */:\n return allowImportingTsExtension ? [2 /* JsExtension */, 3 /* TsExtension */, 0 /* Minimal */, 1 /* Index */] : [2 /* JsExtension */, 0 /* Minimal */, 1 /* Index */];\n case 3 /* TsExtension */:\n return [3 /* TsExtension */, 0 /* Minimal */, 2 /* JsExtension */, 1 /* Index */];\n case 1 /* Index */:\n return allowImportingTsExtension ? [1 /* Index */, 0 /* Minimal */, 3 /* TsExtension */, 2 /* JsExtension */] : [1 /* Index */, 0 /* Minimal */, 2 /* JsExtension */];\n case 0 /* Minimal */:\n return allowImportingTsExtension ? [0 /* Minimal */, 1 /* Index */, 3 /* TsExtension */, 2 /* JsExtension */] : [0 /* Minimal */, 1 /* Index */, 2 /* JsExtension */];\n default:\n Debug.assertNever(preferredEnding);\n }\n }\n };\n function getPreferredEnding(resolutionMode) {\n if (oldImportSpecifier !== void 0) {\n if (hasJSFileExtension(oldImportSpecifier)) return 2 /* JsExtension */;\n if (endsWith(oldImportSpecifier, \"/index\")) return 1 /* Index */;\n }\n return getModuleSpecifierEndingPreference(\n importModuleSpecifierEnding,\n resolutionMode ?? getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions),\n compilerOptions,\n isFullSourceFile(importingSourceFile) ? importingSourceFile : void 0\n );\n }\n}\nfunction updateModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, oldImportSpecifier, options = {}) {\n const res = getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getModuleSpecifierPreferences({}, host, compilerOptions, importingSourceFile, oldImportSpecifier), {}, options);\n if (res === oldImportSpecifier) return void 0;\n return res;\n}\nfunction getModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, options = {}) {\n return getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getModuleSpecifierPreferences({}, host, compilerOptions, importingSourceFile), {}, options);\n}\nfunction getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeModulesFileName, host, preferences, options = {}) {\n const info = getInfo(importingSourceFile.fileName, host);\n const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, compilerOptions, options);\n return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(\n modulePath,\n info,\n importingSourceFile,\n host,\n compilerOptions,\n preferences,\n /*packageNameOnly*/\n true,\n options.overrideImportMode\n ));\n}\nfunction getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, preferences, userPreferences, options = {}) {\n const info = getInfo(importingSourceFileName, host);\n const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, compilerOptions, options);\n return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(\n modulePath,\n info,\n importingSourceFile,\n host,\n compilerOptions,\n userPreferences,\n /*packageNameOnly*/\n void 0,\n options.overrideImportMode\n )) || getLocalModuleSpecifier(toFileName2, info, compilerOptions, host, options.overrideImportMode || getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions), preferences);\n}\nfunction tryGetModuleSpecifiersFromCache(moduleSymbol, importingSourceFile, host, userPreferences, options = {}) {\n const result = tryGetModuleSpecifiersFromCacheWorker(\n moduleSymbol,\n importingSourceFile,\n host,\n userPreferences,\n options\n );\n return result[1] && { kind: result[0], moduleSpecifiers: result[1], computedWithoutCache: false };\n}\nfunction tryGetModuleSpecifiersFromCacheWorker(moduleSymbol, importingSourceFile, host, userPreferences, options = {}) {\n var _a;\n const moduleSourceFile = getSourceFileOfModule(moduleSymbol);\n if (!moduleSourceFile) {\n return emptyArray;\n }\n const cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n const cached = cache == null ? void 0 : cache.get(importingSourceFile.path, moduleSourceFile.path, userPreferences, options);\n return [cached == null ? void 0 : cached.kind, cached == null ? void 0 : cached.moduleSpecifiers, moduleSourceFile, cached == null ? void 0 : cached.modulePaths, cache];\n}\nfunction getModuleSpecifiers(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options = {}) {\n return getModuleSpecifiersWithCacheInfo(\n moduleSymbol,\n checker,\n compilerOptions,\n importingSourceFile,\n host,\n userPreferences,\n options,\n /*forAutoImport*/\n false\n ).moduleSpecifiers;\n}\nfunction getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options = {}, forAutoImport) {\n let computedWithoutCache = false;\n const ambient = tryGetModuleNameFromAmbientModule(moduleSymbol, checker);\n if (ambient) {\n return {\n kind: \"ambient\",\n moduleSpecifiers: !(forAutoImport && isExcludedByRegex(ambient, userPreferences.autoImportSpecifierExcludeRegexes)) ? [ambient] : emptyArray,\n computedWithoutCache\n };\n }\n let [kind, specifiers, moduleSourceFile, modulePaths, cache] = tryGetModuleSpecifiersFromCacheWorker(\n moduleSymbol,\n importingSourceFile,\n host,\n userPreferences,\n options\n );\n if (specifiers) return { kind, moduleSpecifiers: specifiers, computedWithoutCache };\n if (!moduleSourceFile) return { kind: void 0, moduleSpecifiers: emptyArray, computedWithoutCache };\n computedWithoutCache = true;\n modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host, compilerOptions, options));\n const result = computeModuleSpecifiers(\n modulePaths,\n compilerOptions,\n importingSourceFile,\n host,\n userPreferences,\n options,\n forAutoImport\n );\n cache == null ? void 0 : cache.set(importingSourceFile.path, moduleSourceFile.path, userPreferences, options, result.kind, modulePaths, result.moduleSpecifiers);\n return result;\n}\nfunction getLocalModuleSpecifierBetweenFileNames(importingFile, targetFileName, compilerOptions, host, preferences, options = {}) {\n const info = getInfo(importingFile.fileName, host);\n const importMode = options.overrideImportMode ?? importingFile.impliedNodeFormat;\n return getLocalModuleSpecifier(\n targetFileName,\n info,\n compilerOptions,\n host,\n importMode,\n getModuleSpecifierPreferences(preferences, host, compilerOptions, importingFile)\n );\n}\nfunction computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences, options = {}, forAutoImport) {\n const info = getInfo(importingSourceFile.fileName, host);\n const preferences = getModuleSpecifierPreferences(userPreferences, host, compilerOptions, importingSourceFile);\n const existingSpecifier = isFullSourceFile(importingSourceFile) && forEach(modulePaths, (modulePath) => forEach(\n host.getFileIncludeReasons().get(toPath(modulePath.path, host.getCurrentDirectory(), info.getCanonicalFileName)),\n (reason) => {\n if (reason.kind !== 3 /* Import */ || reason.file !== importingSourceFile.path) return void 0;\n const existingMode = host.getModeForResolutionAtIndex(importingSourceFile, reason.index);\n const targetMode = options.overrideImportMode ?? host.getDefaultResolutionModeForFile(importingSourceFile);\n if (existingMode !== targetMode && existingMode !== void 0 && targetMode !== void 0) {\n return void 0;\n }\n const specifier = getModuleNameStringLiteralAt(importingSourceFile, reason.index).text;\n return preferences.relativePreference !== 1 /* NonRelative */ || !pathIsRelative(specifier) ? specifier : void 0;\n }\n ));\n if (existingSpecifier) {\n return { kind: void 0, moduleSpecifiers: [existingSpecifier], computedWithoutCache: true };\n }\n const importedFileIsInNodeModules = some(modulePaths, (p) => p.isInNodeModules);\n let nodeModulesSpecifiers;\n let pathsSpecifiers;\n let redirectPathsSpecifiers;\n let relativeSpecifiers;\n for (const modulePath of modulePaths) {\n const specifier = modulePath.isInNodeModules ? tryGetModuleNameAsNodeModule(\n modulePath,\n info,\n importingSourceFile,\n host,\n compilerOptions,\n userPreferences,\n /*packageNameOnly*/\n void 0,\n options.overrideImportMode\n ) : void 0;\n if (specifier && !(forAutoImport && isExcludedByRegex(specifier, preferences.excludeRegexes))) {\n nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier);\n if (modulePath.isRedirect) {\n return { kind: \"node_modules\", moduleSpecifiers: nodeModulesSpecifiers, computedWithoutCache: true };\n }\n }\n const local = getLocalModuleSpecifier(\n modulePath.path,\n info,\n compilerOptions,\n host,\n options.overrideImportMode || importingSourceFile.impliedNodeFormat,\n preferences,\n /*pathsOnly*/\n modulePath.isRedirect || !!specifier\n );\n if (!local || forAutoImport && isExcludedByRegex(local, preferences.excludeRegexes)) {\n continue;\n }\n if (modulePath.isRedirect) {\n redirectPathsSpecifiers = append(redirectPathsSpecifiers, local);\n } else if (pathIsBareSpecifier(local)) {\n if (pathContainsNodeModules(local)) {\n relativeSpecifiers = append(relativeSpecifiers, local);\n } else {\n pathsSpecifiers = append(pathsSpecifiers, local);\n }\n } else if (forAutoImport || !importedFileIsInNodeModules || modulePath.isInNodeModules) {\n relativeSpecifiers = append(relativeSpecifiers, local);\n }\n }\n return (pathsSpecifiers == null ? void 0 : pathsSpecifiers.length) ? { kind: \"paths\", moduleSpecifiers: pathsSpecifiers, computedWithoutCache: true } : (redirectPathsSpecifiers == null ? void 0 : redirectPathsSpecifiers.length) ? { kind: \"redirect\", moduleSpecifiers: redirectPathsSpecifiers, computedWithoutCache: true } : (nodeModulesSpecifiers == null ? void 0 : nodeModulesSpecifiers.length) ? { kind: \"node_modules\", moduleSpecifiers: nodeModulesSpecifiers, computedWithoutCache: true } : { kind: \"relative\", moduleSpecifiers: relativeSpecifiers ?? emptyArray, computedWithoutCache: true };\n}\nfunction isExcludedByRegex(moduleSpecifier, excludeRegexes) {\n return some(excludeRegexes, (pattern) => {\n var _a;\n return !!((_a = stringToRegex(pattern)) == null ? void 0 : _a.test(moduleSpecifier));\n });\n}\nfunction getInfo(importingSourceFileName, host) {\n importingSourceFileName = getNormalizedAbsolutePath(importingSourceFileName, host.getCurrentDirectory());\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : true);\n const sourceDirectory = getDirectoryPath(importingSourceFileName);\n return {\n getCanonicalFileName,\n importingSourceFileName,\n sourceDirectory,\n canonicalSourceDirectory: getCanonicalFileName(sourceDirectory)\n };\n}\nfunction getLocalModuleSpecifier(moduleFileName, info, compilerOptions, host, importMode, { getAllowedEndingsInPreferredOrder: getAllowedEndingsInPrefererredOrder, relativePreference, excludeRegexes }, pathsOnly) {\n const { baseUrl, paths, rootDirs } = compilerOptions;\n if (pathsOnly && !paths) {\n return void 0;\n }\n const { sourceDirectory, canonicalSourceDirectory, getCanonicalFileName } = info;\n const allowedEndings = getAllowedEndingsInPrefererredOrder(importMode);\n const relativePath = rootDirs && tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) || processEnding(ensurePathIsNonModuleName(getRelativePathFromDirectory(sourceDirectory, moduleFileName, getCanonicalFileName)), allowedEndings, compilerOptions);\n if (!baseUrl && !paths && !getResolvePackageJsonImports(compilerOptions) || relativePreference === 0 /* Relative */) {\n return pathsOnly ? void 0 : relativePath;\n }\n const baseDirectory = getNormalizedAbsolutePath(getPathsBasePath(compilerOptions, host) || baseUrl, host.getCurrentDirectory());\n const relativeToBaseUrl = getRelativePathIfInSameVolume(moduleFileName, baseDirectory, getCanonicalFileName);\n if (!relativeToBaseUrl) {\n return pathsOnly ? void 0 : relativePath;\n }\n const fromPackageJsonImports = pathsOnly ? void 0 : tryGetModuleNameFromPackageJsonImports(\n moduleFileName,\n sourceDirectory,\n compilerOptions,\n host,\n importMode,\n prefersTsExtension(allowedEndings)\n );\n const fromPaths = pathsOnly || fromPackageJsonImports === void 0 ? paths && tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, baseDirectory, getCanonicalFileName, host, compilerOptions) : void 0;\n if (pathsOnly) {\n return fromPaths;\n }\n const maybeNonRelative = fromPackageJsonImports ?? (fromPaths === void 0 && baseUrl !== void 0 ? processEnding(relativeToBaseUrl, allowedEndings, compilerOptions) : fromPaths);\n if (!maybeNonRelative) {\n return relativePath;\n }\n const relativeIsExcluded = isExcludedByRegex(relativePath, excludeRegexes);\n const nonRelativeIsExcluded = isExcludedByRegex(maybeNonRelative, excludeRegexes);\n if (!relativeIsExcluded && nonRelativeIsExcluded) {\n return relativePath;\n }\n if (relativeIsExcluded && !nonRelativeIsExcluded) {\n return maybeNonRelative;\n }\n if (relativePreference === 1 /* NonRelative */ && !pathIsRelative(maybeNonRelative)) {\n return maybeNonRelative;\n }\n if (relativePreference === 3 /* ExternalNonRelative */ && !pathIsRelative(maybeNonRelative)) {\n const projectDirectory = compilerOptions.configFilePath ? toPath(getDirectoryPath(compilerOptions.configFilePath), host.getCurrentDirectory(), info.getCanonicalFileName) : info.getCanonicalFileName(host.getCurrentDirectory());\n const modulePath = toPath(moduleFileName, projectDirectory, getCanonicalFileName);\n const sourceIsInternal = startsWith(canonicalSourceDirectory, projectDirectory);\n const targetIsInternal = startsWith(modulePath, projectDirectory);\n if (sourceIsInternal && !targetIsInternal || !sourceIsInternal && targetIsInternal) {\n return maybeNonRelative;\n }\n const nearestTargetPackageJson = getNearestAncestorDirectoryWithPackageJson(host, getDirectoryPath(modulePath));\n const nearestSourcePackageJson = getNearestAncestorDirectoryWithPackageJson(host, sourceDirectory);\n const ignoreCase = !hostUsesCaseSensitiveFileNames(host);\n if (!packageJsonPathsAreEqual(nearestTargetPackageJson, nearestSourcePackageJson, ignoreCase)) {\n return maybeNonRelative;\n }\n return relativePath;\n }\n return isPathRelativeToParent(maybeNonRelative) || countPathComponents(relativePath) < countPathComponents(maybeNonRelative) ? relativePath : maybeNonRelative;\n}\nfunction packageJsonPathsAreEqual(a, b, ignoreCase) {\n if (a === b) return true;\n if (a === void 0 || b === void 0) return false;\n return comparePaths(a, b, ignoreCase) === 0 /* EqualTo */;\n}\nfunction countPathComponents(path) {\n let count = 0;\n for (let i = startsWith(path, \"./\") ? 2 : 0; i < path.length; i++) {\n if (path.charCodeAt(i) === 47 /* slash */) count++;\n }\n return count;\n}\nfunction comparePathsByRedirectAndNumberOfDirectorySeparators(a, b) {\n return compareBooleans(b.isRedirect, a.isRedirect) || compareNumberOfDirectorySeparators(a.path, b.path);\n}\nfunction getNearestAncestorDirectoryWithPackageJson(host, fileName) {\n if (host.getNearestAncestorDirectoryWithPackageJson) {\n return host.getNearestAncestorDirectoryWithPackageJson(fileName);\n }\n return forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n fileName,\n (directory) => host.fileExists(combinePaths(directory, \"package.json\")) ? directory : void 0\n );\n}\nfunction forEachFileNameOfModule(importingFileName, importedFileName, host, preferSymlinks, cb) {\n var _a, _b;\n const getCanonicalFileName = hostGetCanonicalFileName(host);\n const cwd = host.getCurrentDirectory();\n const referenceRedirect = host.isSourceOfProjectReferenceRedirect(importedFileName) ? (_a = host.getRedirectFromSourceFile(importedFileName)) == null ? void 0 : _a.outputDts : void 0;\n const importedPath = toPath(importedFileName, cwd, getCanonicalFileName);\n const redirects = host.redirectTargetsMap.get(importedPath) || emptyArray;\n const importedFileNames = [...referenceRedirect ? [referenceRedirect] : emptyArray, importedFileName, ...redirects];\n const targets = importedFileNames.map((f) => getNormalizedAbsolutePath(f, cwd));\n let shouldFilterIgnoredPaths = !every(targets, containsIgnoredPath);\n if (!preferSymlinks) {\n const result2 = forEach(targets, (p) => !(shouldFilterIgnoredPaths && containsIgnoredPath(p)) && cb(p, referenceRedirect === p));\n if (result2) return result2;\n }\n const symlinkedDirectories = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host).getSymlinkedDirectoriesByRealpath();\n const fullImportedFileName = getNormalizedAbsolutePath(importedFileName, cwd);\n const result = symlinkedDirectories && forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n getDirectoryPath(fullImportedFileName),\n (realPathDirectory) => {\n const symlinkDirectories = symlinkedDirectories.get(ensureTrailingDirectorySeparator(toPath(realPathDirectory, cwd, getCanonicalFileName)));\n if (!symlinkDirectories) return void 0;\n if (startsWithDirectory(importingFileName, realPathDirectory, getCanonicalFileName)) {\n return false;\n }\n return forEach(targets, (target) => {\n if (!startsWithDirectory(target, realPathDirectory, getCanonicalFileName)) {\n return;\n }\n const relative = getRelativePathFromDirectory(realPathDirectory, target, getCanonicalFileName);\n for (const symlinkDirectory of symlinkDirectories) {\n const option = resolvePath(symlinkDirectory, relative);\n const result2 = cb(option, target === referenceRedirect);\n shouldFilterIgnoredPaths = true;\n if (result2) return result2;\n }\n });\n }\n );\n return result || (preferSymlinks ? forEach(targets, (p) => shouldFilterIgnoredPaths && containsIgnoredPath(p) ? void 0 : cb(p, p === referenceRedirect)) : void 0);\n}\nfunction getAllModulePaths(info, importedFileName, host, preferences, compilerOptions, options = {}) {\n var _a;\n const importingFilePath = toPath(info.importingSourceFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n const importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n const cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n if (cache) {\n const cached = cache.get(importingFilePath, importedFilePath, preferences, options);\n if (cached == null ? void 0 : cached.modulePaths) return cached.modulePaths;\n }\n const modulePaths = getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options);\n if (cache) {\n cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths);\n }\n return modulePaths;\n}\nvar runtimeDependencyFields = [\"dependencies\", \"peerDependencies\", \"optionalDependencies\"];\nfunction getAllRuntimeDependencies(packageJson) {\n let result;\n for (const field of runtimeDependencyFields) {\n const deps = packageJson[field];\n if (deps && typeof deps === \"object\") {\n result = concatenate(result, getOwnKeys(deps));\n }\n }\n return result;\n}\nfunction getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options) {\n var _a, _b;\n const cache = (_a = host.getModuleResolutionCache) == null ? void 0 : _a.call(host);\n const links = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host);\n if (cache && links && host.readFile && !pathContainsNodeModules(info.importingSourceFileName)) {\n Debug.type(host);\n const state = getTemporaryModuleResolutionState(cache.getPackageJsonInfoCache(), host, {});\n const packageJson = getPackageScopeForPath(getDirectoryPath(info.importingSourceFileName), state);\n if (packageJson) {\n const toResolve = getAllRuntimeDependencies(packageJson.contents.packageJsonContent);\n for (const depName of toResolve || emptyArray) {\n const resolved = resolveModuleName(\n depName,\n combinePaths(packageJson.packageDirectory, \"package.json\"),\n compilerOptions,\n host,\n cache,\n /*redirectedReference*/\n void 0,\n options.overrideImportMode\n );\n links.setSymlinksFromResolution(resolved.resolvedModule);\n }\n }\n }\n const allFileNames = /* @__PURE__ */ new Map();\n let importedFileFromNodeModules = false;\n forEachFileNameOfModule(\n info.importingSourceFileName,\n importedFileName,\n host,\n /*preferSymlinks*/\n true,\n (path, isRedirect) => {\n const isInNodeModules = pathContainsNodeModules(path);\n allFileNames.set(path, { path: info.getCanonicalFileName(path), isRedirect, isInNodeModules });\n importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules;\n }\n );\n const sortedPaths = [];\n for (let directory = info.canonicalSourceDirectory; allFileNames.size !== 0; ) {\n const directoryStart = ensureTrailingDirectorySeparator(directory);\n let pathsInDirectory;\n allFileNames.forEach(({ path, isRedirect, isInNodeModules }, fileName) => {\n if (startsWith(path, directoryStart)) {\n (pathsInDirectory || (pathsInDirectory = [])).push({ path: fileName, isRedirect, isInNodeModules });\n allFileNames.delete(fileName);\n }\n });\n if (pathsInDirectory) {\n if (pathsInDirectory.length > 1) {\n pathsInDirectory.sort(comparePathsByRedirectAndNumberOfDirectorySeparators);\n }\n sortedPaths.push(...pathsInDirectory);\n }\n const newDirectory = getDirectoryPath(directory);\n if (newDirectory === directory) break;\n directory = newDirectory;\n }\n if (allFileNames.size) {\n const remainingPaths = arrayFrom(\n allFileNames.entries(),\n ([fileName, { isRedirect, isInNodeModules }]) => ({ path: fileName, isRedirect, isInNodeModules })\n );\n if (remainingPaths.length > 1) remainingPaths.sort(comparePathsByRedirectAndNumberOfDirectorySeparators);\n sortedPaths.push(...remainingPaths);\n }\n return sortedPaths;\n}\nfunction tryGetModuleNameFromAmbientModule(moduleSymbol, checker) {\n var _a;\n const decl = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(\n (d) => isNonGlobalAmbientModule(d) && (!isExternalModuleAugmentation(d) || !isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(d.name)))\n );\n if (decl) {\n return decl.name.text;\n }\n const ambientModuleDeclareCandidates = mapDefined(moduleSymbol.declarations, (d) => {\n var _a2, _b, _c, _d;\n if (!isModuleDeclaration(d)) return;\n const topNamespace = getTopNamespace(d);\n if (!(((_a2 = topNamespace == null ? void 0 : topNamespace.parent) == null ? void 0 : _a2.parent) && isModuleBlock(topNamespace.parent) && isAmbientModule(topNamespace.parent.parent) && isSourceFile(topNamespace.parent.parent.parent))) return;\n const exportAssignment = (_d = (_c = (_b = topNamespace.parent.parent.symbol.exports) == null ? void 0 : _b.get(\"export=\")) == null ? void 0 : _c.valueDeclaration) == null ? void 0 : _d.expression;\n if (!exportAssignment) return;\n const exportSymbol = checker.getSymbolAtLocation(exportAssignment);\n if (!exportSymbol) return;\n const originalExportSymbol = (exportSymbol == null ? void 0 : exportSymbol.flags) & 2097152 /* Alias */ ? checker.getAliasedSymbol(exportSymbol) : exportSymbol;\n if (originalExportSymbol === d.symbol) return topNamespace.parent.parent;\n function getTopNamespace(namespaceDeclaration) {\n while (namespaceDeclaration.flags & 8 /* NestedNamespace */) {\n namespaceDeclaration = namespaceDeclaration.parent;\n }\n return namespaceDeclaration;\n }\n });\n const ambientModuleDeclare = ambientModuleDeclareCandidates[0];\n if (ambientModuleDeclare) {\n return ambientModuleDeclare.name.text;\n }\n}\nfunction tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, baseDirectory, getCanonicalFileName, host, compilerOptions) {\n for (const key in paths) {\n for (const patternText2 of paths[key]) {\n const normalized = normalizePath(patternText2);\n const pattern = getRelativePathIfInSameVolume(normalized, baseDirectory, getCanonicalFileName) ?? normalized;\n const indexOfStar = pattern.indexOf(\"*\");\n const candidates = allowedEndings.map((ending) => ({\n ending,\n value: processEnding(relativeToBaseUrl, [ending], compilerOptions)\n }));\n if (tryGetExtensionFromPath2(pattern)) {\n candidates.push({ ending: void 0, value: relativeToBaseUrl });\n }\n if (indexOfStar !== -1) {\n const prefix = pattern.substring(0, indexOfStar);\n const suffix = pattern.substring(indexOfStar + 1);\n for (const { ending, value } of candidates) {\n if (value.length >= prefix.length + suffix.length && startsWith(value, prefix) && endsWith(value, suffix) && validateEnding({ ending, value })) {\n const matchedStar = value.substring(prefix.length, value.length - suffix.length);\n if (!pathIsRelative(matchedStar)) {\n return replaceFirstStar(key, matchedStar);\n }\n }\n }\n } else if (some(candidates, (c) => c.ending !== 0 /* Minimal */ && pattern === c.value) || some(candidates, (c) => c.ending === 0 /* Minimal */ && pattern === c.value && validateEnding(c))) {\n return key;\n }\n }\n }\n function validateEnding({ ending, value }) {\n return ending !== 0 /* Minimal */ || value === processEnding(relativeToBaseUrl, [ending], compilerOptions, host);\n }\n}\nfunction tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, exports2, conditions, mode, isImports, preferTsExtension) {\n if (typeof exports2 === \"string\") {\n const ignoreCase = !hostUsesCaseSensitiveFileNames(host);\n const getCommonSourceDirectory2 = () => host.getCommonSourceDirectory();\n const outputFile = isImports && getOutputJSFileNameWorker(targetFilePath, options, ignoreCase, getCommonSourceDirectory2);\n const declarationFile = isImports && getOutputDeclarationFileNameWorker(targetFilePath, options, ignoreCase, getCommonSourceDirectory2);\n const pathOrPattern = getNormalizedAbsolutePath(\n combinePaths(packageDirectory, exports2),\n /*currentDirectory*/\n void 0\n );\n const extensionSwappedTarget = hasTSFileExtension(targetFilePath) ? removeFileExtension(targetFilePath) + tryGetJSExtensionForFile(targetFilePath, options) : void 0;\n const canTryTsExtension = preferTsExtension && hasImplementationTSFileExtension(targetFilePath);\n switch (mode) {\n case 0 /* Exact */:\n if (extensionSwappedTarget && comparePaths(extensionSwappedTarget, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || comparePaths(targetFilePath, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || outputFile && comparePaths(outputFile, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || declarationFile && comparePaths(declarationFile, pathOrPattern, ignoreCase) === 0 /* EqualTo */) {\n return { moduleFileToTry: packageName };\n }\n break;\n case 1 /* Directory */:\n if (canTryTsExtension && containsPath(targetFilePath, pathOrPattern, ignoreCase)) {\n const fragment = getRelativePathFromDirectory(\n pathOrPattern,\n targetFilePath,\n /*ignoreCase*/\n false\n );\n return { moduleFileToTry: getNormalizedAbsolutePath(\n combinePaths(combinePaths(packageName, exports2), fragment),\n /*currentDirectory*/\n void 0\n ) };\n }\n if (extensionSwappedTarget && containsPath(pathOrPattern, extensionSwappedTarget, ignoreCase)) {\n const fragment = getRelativePathFromDirectory(\n pathOrPattern,\n extensionSwappedTarget,\n /*ignoreCase*/\n false\n );\n return { moduleFileToTry: getNormalizedAbsolutePath(\n combinePaths(combinePaths(packageName, exports2), fragment),\n /*currentDirectory*/\n void 0\n ) };\n }\n if (!canTryTsExtension && containsPath(pathOrPattern, targetFilePath, ignoreCase)) {\n const fragment = getRelativePathFromDirectory(\n pathOrPattern,\n targetFilePath,\n /*ignoreCase*/\n false\n );\n return { moduleFileToTry: getNormalizedAbsolutePath(\n combinePaths(combinePaths(packageName, exports2), fragment),\n /*currentDirectory*/\n void 0\n ) };\n }\n if (outputFile && containsPath(pathOrPattern, outputFile, ignoreCase)) {\n const fragment = getRelativePathFromDirectory(\n pathOrPattern,\n outputFile,\n /*ignoreCase*/\n false\n );\n return { moduleFileToTry: combinePaths(packageName, fragment) };\n }\n if (declarationFile && containsPath(pathOrPattern, declarationFile, ignoreCase)) {\n const fragment = changeFullExtension(getRelativePathFromDirectory(\n pathOrPattern,\n declarationFile,\n /*ignoreCase*/\n false\n ), getJSExtensionForFile(declarationFile, options));\n return { moduleFileToTry: combinePaths(packageName, fragment) };\n }\n break;\n case 2 /* Pattern */:\n const starPos = pathOrPattern.indexOf(\"*\");\n const leadingSlice = pathOrPattern.slice(0, starPos);\n const trailingSlice = pathOrPattern.slice(starPos + 1);\n if (canTryTsExtension && startsWith(targetFilePath, leadingSlice, ignoreCase) && endsWith(targetFilePath, trailingSlice, ignoreCase)) {\n const starReplacement = targetFilePath.slice(leadingSlice.length, targetFilePath.length - trailingSlice.length);\n return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n }\n if (extensionSwappedTarget && startsWith(extensionSwappedTarget, leadingSlice, ignoreCase) && endsWith(extensionSwappedTarget, trailingSlice, ignoreCase)) {\n const starReplacement = extensionSwappedTarget.slice(leadingSlice.length, extensionSwappedTarget.length - trailingSlice.length);\n return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n }\n if (!canTryTsExtension && startsWith(targetFilePath, leadingSlice, ignoreCase) && endsWith(targetFilePath, trailingSlice, ignoreCase)) {\n const starReplacement = targetFilePath.slice(leadingSlice.length, targetFilePath.length - trailingSlice.length);\n return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n }\n if (outputFile && startsWith(outputFile, leadingSlice, ignoreCase) && endsWith(outputFile, trailingSlice, ignoreCase)) {\n const starReplacement = outputFile.slice(leadingSlice.length, outputFile.length - trailingSlice.length);\n return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n }\n if (declarationFile && startsWith(declarationFile, leadingSlice, ignoreCase) && endsWith(declarationFile, trailingSlice, ignoreCase)) {\n const starReplacement = declarationFile.slice(leadingSlice.length, declarationFile.length - trailingSlice.length);\n const substituted = replaceFirstStar(packageName, starReplacement);\n const jsExtension = tryGetJSExtensionForFile(declarationFile, options);\n return jsExtension ? { moduleFileToTry: changeFullExtension(substituted, jsExtension) } : void 0;\n }\n break;\n }\n } else if (Array.isArray(exports2)) {\n return forEach(exports2, (e) => tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, e, conditions, mode, isImports, preferTsExtension));\n } else if (typeof exports2 === \"object\" && exports2 !== null) {\n for (const key of getOwnKeys(exports2)) {\n if (key === \"default\" || conditions.indexOf(key) >= 0 || isApplicableVersionedTypesKey(conditions, key)) {\n const subTarget = exports2[key];\n const result = tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, subTarget, conditions, mode, isImports, preferTsExtension);\n if (result) {\n return result;\n }\n }\n }\n }\n return void 0;\n}\nfunction tryGetModuleNameFromExports(options, host, targetFilePath, packageDirectory, packageName, exports2, conditions) {\n if (typeof exports2 === \"object\" && exports2 !== null && !Array.isArray(exports2) && allKeysStartWithDot(exports2)) {\n return forEach(getOwnKeys(exports2), (k) => {\n const subPackageName = getNormalizedAbsolutePath(\n combinePaths(packageName, k),\n /*currentDirectory*/\n void 0\n );\n const mode = endsWith(k, \"/\") ? 1 /* Directory */ : k.includes(\"*\") ? 2 /* Pattern */ : 0 /* Exact */;\n return tryGetModuleNameFromExportsOrImports(\n options,\n host,\n targetFilePath,\n packageDirectory,\n subPackageName,\n exports2[k],\n conditions,\n mode,\n /*isImports*/\n false,\n /*preferTsExtension*/\n false\n );\n });\n }\n return tryGetModuleNameFromExportsOrImports(\n options,\n host,\n targetFilePath,\n packageDirectory,\n packageName,\n exports2,\n conditions,\n 0 /* Exact */,\n /*isImports*/\n false,\n /*preferTsExtension*/\n false\n );\n}\nfunction tryGetModuleNameFromPackageJsonImports(moduleFileName, sourceDirectory, options, host, importMode, preferTsExtension) {\n var _a, _b, _c;\n if (!host.readFile || !getResolvePackageJsonImports(options)) {\n return void 0;\n }\n const ancestorDirectoryWithPackageJson = getNearestAncestorDirectoryWithPackageJson(host, sourceDirectory);\n if (!ancestorDirectoryWithPackageJson) {\n return void 0;\n }\n const packageJsonPath = combinePaths(ancestorDirectoryWithPackageJson, \"package.json\");\n const cachedPackageJson = (_b = (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n if (isMissingPackageJsonInfo(cachedPackageJson) || !host.fileExists(packageJsonPath)) {\n return void 0;\n }\n const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || tryParseJson(host.readFile(packageJsonPath));\n const imports = packageJsonContent == null ? void 0 : packageJsonContent.imports;\n if (!imports) {\n return void 0;\n }\n const conditions = getConditions(options, importMode);\n return (_c = forEach(getOwnKeys(imports), (k) => {\n if (!startsWith(k, \"#\") || k === \"#\" || startsWith(k, \"#/\")) return void 0;\n const mode = endsWith(k, \"/\") ? 1 /* Directory */ : k.includes(\"*\") ? 2 /* Pattern */ : 0 /* Exact */;\n return tryGetModuleNameFromExportsOrImports(\n options,\n host,\n moduleFileName,\n ancestorDirectoryWithPackageJson,\n k,\n imports[k],\n conditions,\n mode,\n /*isImports*/\n true,\n preferTsExtension\n );\n })) == null ? void 0 : _c.moduleFileToTry;\n}\nfunction tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) {\n const normalizedTargetPaths = getPathsRelativeToRootDirs(moduleFileName, rootDirs, getCanonicalFileName);\n if (normalizedTargetPaths === void 0) {\n return void 0;\n }\n const normalizedSourcePaths = getPathsRelativeToRootDirs(sourceDirectory, rootDirs, getCanonicalFileName);\n const relativePaths = flatMap(normalizedSourcePaths, (sourcePath) => {\n return map(normalizedTargetPaths, (targetPath) => ensurePathIsNonModuleName(getRelativePathFromDirectory(sourcePath, targetPath, getCanonicalFileName)));\n });\n const shortest = min(relativePaths, compareNumberOfDirectorySeparators);\n if (!shortest) {\n return void 0;\n }\n return processEnding(shortest, allowedEndings, compilerOptions);\n}\nfunction tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileName, canonicalSourceDirectory }, importingSourceFile, host, options, userPreferences, packageNameOnly, overrideMode) {\n if (!host.fileExists || !host.readFile) {\n return void 0;\n }\n const parts = getNodeModulePathParts(path);\n if (!parts) {\n return void 0;\n }\n const preferences = getModuleSpecifierPreferences(userPreferences, host, options, importingSourceFile);\n const allowedEndings = preferences.getAllowedEndingsInPreferredOrder();\n let moduleSpecifier = path;\n let isPackageRootPath = false;\n if (!packageNameOnly) {\n let packageRootIndex = parts.packageRootIndex;\n let moduleFileName;\n while (true) {\n const { moduleFileToTry, packageRootPath, blockedByExports, verbatimFromExports } = tryDirectoryWithPackageJson(packageRootIndex);\n if (getEmitModuleResolutionKind(options) !== 1 /* Classic */) {\n if (blockedByExports) {\n return void 0;\n }\n if (verbatimFromExports) {\n return moduleFileToTry;\n }\n }\n if (packageRootPath) {\n moduleSpecifier = packageRootPath;\n isPackageRootPath = true;\n break;\n }\n if (!moduleFileName) moduleFileName = moduleFileToTry;\n packageRootIndex = path.indexOf(directorySeparator, packageRootIndex + 1);\n if (packageRootIndex === -1) {\n moduleSpecifier = processEnding(moduleFileName, allowedEndings, options, host);\n break;\n }\n }\n }\n if (isRedirect && !isPackageRootPath) {\n return void 0;\n }\n const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation();\n const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex));\n if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) {\n return void 0;\n }\n const nodeModulesDirectoryName = moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1);\n const packageName = getPackageNameFromTypesPackageName(nodeModulesDirectoryName);\n return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageName === nodeModulesDirectoryName ? void 0 : packageName;\n function tryDirectoryWithPackageJson(packageRootIndex) {\n var _a, _b;\n const packageRootPath = path.substring(0, packageRootIndex);\n const packageJsonPath = combinePaths(packageRootPath, \"package.json\");\n let moduleFileToTry = path;\n let maybeBlockedByTypesVersions = false;\n const cachedPackageJson = (_b = (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n if (isPackageJsonInfo(cachedPackageJson) || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) {\n const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || tryParseJson(host.readFile(packageJsonPath));\n const importMode = overrideMode || getDefaultResolutionModeForFile(importingSourceFile, host, options);\n if (getResolvePackageJsonExports(options)) {\n const nodeModulesDirectoryName2 = packageRootPath.substring(parts.topLevelPackageNameIndex + 1);\n const packageName2 = getPackageNameFromTypesPackageName(nodeModulesDirectoryName2);\n const conditions = getConditions(options, importMode);\n const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(\n options,\n host,\n path,\n packageRootPath,\n packageName2,\n packageJsonContent.exports,\n conditions\n ) : void 0;\n if (fromExports) {\n return { ...fromExports, verbatimFromExports: true };\n }\n if (packageJsonContent == null ? void 0 : packageJsonContent.exports) {\n return { moduleFileToTry: path, blockedByExports: true };\n }\n }\n const versionPaths = (packageJsonContent == null ? void 0 : packageJsonContent.typesVersions) ? getPackageJsonTypesVersionsPaths(packageJsonContent.typesVersions) : void 0;\n if (versionPaths) {\n const subModuleName = path.slice(packageRootPath.length + 1);\n const fromPaths = tryGetModuleNameFromPaths(\n subModuleName,\n versionPaths.paths,\n allowedEndings,\n packageRootPath,\n getCanonicalFileName,\n host,\n options\n );\n if (fromPaths === void 0) {\n maybeBlockedByTypesVersions = true;\n } else {\n moduleFileToTry = combinePaths(packageRootPath, fromPaths);\n }\n }\n const mainFileRelative = (packageJsonContent == null ? void 0 : packageJsonContent.typings) || (packageJsonContent == null ? void 0 : packageJsonContent.types) || (packageJsonContent == null ? void 0 : packageJsonContent.main) || \"index.js\";\n if (isString(mainFileRelative) && !(maybeBlockedByTypesVersions && matchPatternOrExact(tryParsePatterns(versionPaths.paths), mainFileRelative))) {\n const mainExportFile = toPath(mainFileRelative, packageRootPath, getCanonicalFileName);\n const canonicalModuleFileToTry = getCanonicalFileName(moduleFileToTry);\n if (removeFileExtension(mainExportFile) === removeFileExtension(canonicalModuleFileToTry)) {\n return { packageRootPath, moduleFileToTry };\n } else if ((packageJsonContent == null ? void 0 : packageJsonContent.type) !== \"module\" && !fileExtensionIsOneOf(canonicalModuleFileToTry, extensionsNotSupportingExtensionlessResolution) && startsWith(canonicalModuleFileToTry, mainExportFile) && getDirectoryPath(canonicalModuleFileToTry) === removeTrailingDirectorySeparator(mainExportFile) && removeFileExtension(getBaseFileName(canonicalModuleFileToTry)) === \"index\") {\n return { packageRootPath, moduleFileToTry };\n }\n }\n } else {\n const fileName = getCanonicalFileName(moduleFileToTry.substring(parts.packageRootIndex + 1));\n if (fileName === \"index.d.ts\" || fileName === \"index.js\" || fileName === \"index.ts\" || fileName === \"index.tsx\") {\n return { moduleFileToTry, packageRootPath };\n }\n }\n return { moduleFileToTry };\n }\n}\nfunction tryGetAnyFileFromPath(host, path) {\n if (!host.fileExists) return;\n const extensions = flatten(getSupportedExtensions({ allowJs: true }, [{ extension: \"node\", isMixedContent: false }, { extension: \"json\", isMixedContent: false, scriptKind: 6 /* JSON */ }]));\n for (const e of extensions) {\n const fullPath = path + e;\n if (host.fileExists(fullPath)) {\n return fullPath;\n }\n }\n}\nfunction getPathsRelativeToRootDirs(path, rootDirs, getCanonicalFileName) {\n return mapDefined(rootDirs, (rootDir) => {\n const relativePath = getRelativePathIfInSameVolume(path, rootDir, getCanonicalFileName);\n return relativePath !== void 0 && isPathRelativeToParent(relativePath) ? void 0 : relativePath;\n });\n}\nfunction processEnding(fileName, allowedEndings, options, host) {\n if (fileExtensionIsOneOf(fileName, [\".json\" /* Json */, \".mjs\" /* Mjs */, \".cjs\" /* Cjs */])) {\n return fileName;\n }\n const noExtension = removeFileExtension(fileName);\n if (fileName === noExtension) {\n return fileName;\n }\n const jsPriority = allowedEndings.indexOf(2 /* JsExtension */);\n const tsPriority = allowedEndings.indexOf(3 /* TsExtension */);\n if (fileExtensionIsOneOf(fileName, [\".mts\" /* Mts */, \".cts\" /* Cts */]) && tsPriority !== -1 && tsPriority < jsPriority) {\n return fileName;\n } else if (fileExtensionIsOneOf(fileName, [\".d.mts\" /* Dmts */, \".mts\" /* Mts */, \".d.cts\" /* Dcts */, \".cts\" /* Cts */])) {\n return noExtension + getJSExtensionForFile(fileName, options);\n } else if (!fileExtensionIsOneOf(fileName, [\".d.ts\" /* Dts */]) && fileExtensionIsOneOf(fileName, [\".ts\" /* Ts */]) && fileName.includes(\".d.\")) {\n return tryGetRealFileNameForNonJsDeclarationFileName(fileName);\n }\n switch (allowedEndings[0]) {\n case 0 /* Minimal */:\n const withoutIndex = removeSuffix(noExtension, \"/index\");\n if (host && withoutIndex !== noExtension && tryGetAnyFileFromPath(host, withoutIndex)) {\n return noExtension;\n }\n return withoutIndex;\n case 1 /* Index */:\n return noExtension;\n case 2 /* JsExtension */:\n return noExtension + getJSExtensionForFile(fileName, options);\n case 3 /* TsExtension */:\n if (isDeclarationFileName(fileName)) {\n const extensionlessPriority = allowedEndings.findIndex((e) => e === 0 /* Minimal */ || e === 1 /* Index */);\n return extensionlessPriority !== -1 && extensionlessPriority < jsPriority ? noExtension : noExtension + getJSExtensionForFile(fileName, options);\n }\n return fileName;\n default:\n return Debug.assertNever(allowedEndings[0]);\n }\n}\nfunction tryGetRealFileNameForNonJsDeclarationFileName(fileName) {\n const baseName = getBaseFileName(fileName);\n if (!endsWith(fileName, \".ts\" /* Ts */) || !baseName.includes(\".d.\") || fileExtensionIsOneOf(baseName, [\".d.ts\" /* Dts */])) return void 0;\n const noExtension = removeExtension(fileName, \".ts\" /* Ts */);\n const ext = noExtension.substring(noExtension.lastIndexOf(\".\"));\n return noExtension.substring(0, noExtension.indexOf(\".d.\")) + ext;\n}\nfunction getJSExtensionForFile(fileName, options) {\n return tryGetJSExtensionForFile(fileName, options) ?? Debug.fail(`Extension ${extensionFromPath(fileName)} is unsupported:: FileName:: ${fileName}`);\n}\nfunction tryGetJSExtensionForFile(fileName, options) {\n const ext = tryGetExtensionFromPath2(fileName);\n switch (ext) {\n case \".ts\" /* Ts */:\n case \".d.ts\" /* Dts */:\n return \".js\" /* Js */;\n case \".tsx\" /* Tsx */:\n return options.jsx === 1 /* Preserve */ ? \".jsx\" /* Jsx */ : \".js\" /* Js */;\n case \".js\" /* Js */:\n case \".jsx\" /* Jsx */:\n case \".json\" /* Json */:\n return ext;\n case \".d.mts\" /* Dmts */:\n case \".mts\" /* Mts */:\n case \".mjs\" /* Mjs */:\n return \".mjs\" /* Mjs */;\n case \".d.cts\" /* Dcts */:\n case \".cts\" /* Cts */:\n case \".cjs\" /* Cjs */:\n return \".cjs\" /* Cjs */;\n default:\n return void 0;\n }\n}\nfunction getRelativePathIfInSameVolume(path, directoryPath, getCanonicalFileName) {\n const relativePath = getRelativePathToDirectoryOrUrl(\n directoryPath,\n path,\n directoryPath,\n getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n false\n );\n return isRootedDiskPath(relativePath) ? void 0 : relativePath;\n}\nfunction isPathRelativeToParent(path) {\n return startsWith(path, \"..\");\n}\nfunction getDefaultResolutionModeForFile(file, host, compilerOptions) {\n return isFullSourceFile(file) ? host.getDefaultResolutionModeForFile(file) : getDefaultResolutionModeForFileWorker(file, compilerOptions);\n}\nfunction prefersTsExtension(allowedEndings) {\n const tsPriority = allowedEndings.indexOf(3 /* TsExtension */);\n return tsPriority > -1 && tsPriority < allowedEndings.indexOf(2 /* JsExtension */);\n}\n\n// src/compiler/checker.ts\nvar ambientModuleSymbolRegex = /^\".+\"$/;\nvar anon = \"(anonymous)\";\nvar nextSymbolId = 1;\nvar nextNodeId = 1;\nvar nextMergeId = 1;\nvar nextFlowId = 1;\nvar TypeFacts = /* @__PURE__ */ ((TypeFacts3) => {\n TypeFacts3[TypeFacts3[\"None\"] = 0] = \"None\";\n TypeFacts3[TypeFacts3[\"TypeofEQString\"] = 1] = \"TypeofEQString\";\n TypeFacts3[TypeFacts3[\"TypeofEQNumber\"] = 2] = \"TypeofEQNumber\";\n TypeFacts3[TypeFacts3[\"TypeofEQBigInt\"] = 4] = \"TypeofEQBigInt\";\n TypeFacts3[TypeFacts3[\"TypeofEQBoolean\"] = 8] = \"TypeofEQBoolean\";\n TypeFacts3[TypeFacts3[\"TypeofEQSymbol\"] = 16] = \"TypeofEQSymbol\";\n TypeFacts3[TypeFacts3[\"TypeofEQObject\"] = 32] = \"TypeofEQObject\";\n TypeFacts3[TypeFacts3[\"TypeofEQFunction\"] = 64] = \"TypeofEQFunction\";\n TypeFacts3[TypeFacts3[\"TypeofEQHostObject\"] = 128] = \"TypeofEQHostObject\";\n TypeFacts3[TypeFacts3[\"TypeofNEString\"] = 256] = \"TypeofNEString\";\n TypeFacts3[TypeFacts3[\"TypeofNENumber\"] = 512] = \"TypeofNENumber\";\n TypeFacts3[TypeFacts3[\"TypeofNEBigInt\"] = 1024] = \"TypeofNEBigInt\";\n TypeFacts3[TypeFacts3[\"TypeofNEBoolean\"] = 2048] = \"TypeofNEBoolean\";\n TypeFacts3[TypeFacts3[\"TypeofNESymbol\"] = 4096] = \"TypeofNESymbol\";\n TypeFacts3[TypeFacts3[\"TypeofNEObject\"] = 8192] = \"TypeofNEObject\";\n TypeFacts3[TypeFacts3[\"TypeofNEFunction\"] = 16384] = \"TypeofNEFunction\";\n TypeFacts3[TypeFacts3[\"TypeofNEHostObject\"] = 32768] = \"TypeofNEHostObject\";\n TypeFacts3[TypeFacts3[\"EQUndefined\"] = 65536] = \"EQUndefined\";\n TypeFacts3[TypeFacts3[\"EQNull\"] = 131072] = \"EQNull\";\n TypeFacts3[TypeFacts3[\"EQUndefinedOrNull\"] = 262144] = \"EQUndefinedOrNull\";\n TypeFacts3[TypeFacts3[\"NEUndefined\"] = 524288] = \"NEUndefined\";\n TypeFacts3[TypeFacts3[\"NENull\"] = 1048576] = \"NENull\";\n TypeFacts3[TypeFacts3[\"NEUndefinedOrNull\"] = 2097152] = \"NEUndefinedOrNull\";\n TypeFacts3[TypeFacts3[\"Truthy\"] = 4194304] = \"Truthy\";\n TypeFacts3[TypeFacts3[\"Falsy\"] = 8388608] = \"Falsy\";\n TypeFacts3[TypeFacts3[\"IsUndefined\"] = 16777216] = \"IsUndefined\";\n TypeFacts3[TypeFacts3[\"IsNull\"] = 33554432] = \"IsNull\";\n TypeFacts3[TypeFacts3[\"IsUndefinedOrNull\"] = 50331648] = \"IsUndefinedOrNull\";\n TypeFacts3[TypeFacts3[\"All\"] = 134217727] = \"All\";\n TypeFacts3[TypeFacts3[\"BaseStringStrictFacts\"] = 3735041] = \"BaseStringStrictFacts\";\n TypeFacts3[TypeFacts3[\"BaseStringFacts\"] = 12582401] = \"BaseStringFacts\";\n TypeFacts3[TypeFacts3[\"StringStrictFacts\"] = 16317953] = \"StringStrictFacts\";\n TypeFacts3[TypeFacts3[\"StringFacts\"] = 16776705] = \"StringFacts\";\n TypeFacts3[TypeFacts3[\"EmptyStringStrictFacts\"] = 12123649] = \"EmptyStringStrictFacts\";\n TypeFacts3[TypeFacts3[\"EmptyStringFacts\"] = 12582401 /* BaseStringFacts */] = \"EmptyStringFacts\";\n TypeFacts3[TypeFacts3[\"NonEmptyStringStrictFacts\"] = 7929345] = \"NonEmptyStringStrictFacts\";\n TypeFacts3[TypeFacts3[\"NonEmptyStringFacts\"] = 16776705] = \"NonEmptyStringFacts\";\n TypeFacts3[TypeFacts3[\"BaseNumberStrictFacts\"] = 3734786] = \"BaseNumberStrictFacts\";\n TypeFacts3[TypeFacts3[\"BaseNumberFacts\"] = 12582146] = \"BaseNumberFacts\";\n TypeFacts3[TypeFacts3[\"NumberStrictFacts\"] = 16317698] = \"NumberStrictFacts\";\n TypeFacts3[TypeFacts3[\"NumberFacts\"] = 16776450] = \"NumberFacts\";\n TypeFacts3[TypeFacts3[\"ZeroNumberStrictFacts\"] = 12123394] = \"ZeroNumberStrictFacts\";\n TypeFacts3[TypeFacts3[\"ZeroNumberFacts\"] = 12582146 /* BaseNumberFacts */] = \"ZeroNumberFacts\";\n TypeFacts3[TypeFacts3[\"NonZeroNumberStrictFacts\"] = 7929090] = \"NonZeroNumberStrictFacts\";\n TypeFacts3[TypeFacts3[\"NonZeroNumberFacts\"] = 16776450] = \"NonZeroNumberFacts\";\n TypeFacts3[TypeFacts3[\"BaseBigIntStrictFacts\"] = 3734276] = \"BaseBigIntStrictFacts\";\n TypeFacts3[TypeFacts3[\"BaseBigIntFacts\"] = 12581636] = \"BaseBigIntFacts\";\n TypeFacts3[TypeFacts3[\"BigIntStrictFacts\"] = 16317188] = \"BigIntStrictFacts\";\n TypeFacts3[TypeFacts3[\"BigIntFacts\"] = 16775940] = \"BigIntFacts\";\n TypeFacts3[TypeFacts3[\"ZeroBigIntStrictFacts\"] = 12122884] = \"ZeroBigIntStrictFacts\";\n TypeFacts3[TypeFacts3[\"ZeroBigIntFacts\"] = 12581636 /* BaseBigIntFacts */] = \"ZeroBigIntFacts\";\n TypeFacts3[TypeFacts3[\"NonZeroBigIntStrictFacts\"] = 7928580] = \"NonZeroBigIntStrictFacts\";\n TypeFacts3[TypeFacts3[\"NonZeroBigIntFacts\"] = 16775940] = \"NonZeroBigIntFacts\";\n TypeFacts3[TypeFacts3[\"BaseBooleanStrictFacts\"] = 3733256] = \"BaseBooleanStrictFacts\";\n TypeFacts3[TypeFacts3[\"BaseBooleanFacts\"] = 12580616] = \"BaseBooleanFacts\";\n TypeFacts3[TypeFacts3[\"BooleanStrictFacts\"] = 16316168] = \"BooleanStrictFacts\";\n TypeFacts3[TypeFacts3[\"BooleanFacts\"] = 16774920] = \"BooleanFacts\";\n TypeFacts3[TypeFacts3[\"FalseStrictFacts\"] = 12121864] = \"FalseStrictFacts\";\n TypeFacts3[TypeFacts3[\"FalseFacts\"] = 12580616 /* BaseBooleanFacts */] = \"FalseFacts\";\n TypeFacts3[TypeFacts3[\"TrueStrictFacts\"] = 7927560] = \"TrueStrictFacts\";\n TypeFacts3[TypeFacts3[\"TrueFacts\"] = 16774920] = \"TrueFacts\";\n TypeFacts3[TypeFacts3[\"SymbolStrictFacts\"] = 7925520] = \"SymbolStrictFacts\";\n TypeFacts3[TypeFacts3[\"SymbolFacts\"] = 16772880] = \"SymbolFacts\";\n TypeFacts3[TypeFacts3[\"ObjectStrictFacts\"] = 7888800] = \"ObjectStrictFacts\";\n TypeFacts3[TypeFacts3[\"ObjectFacts\"] = 16736160] = \"ObjectFacts\";\n TypeFacts3[TypeFacts3[\"FunctionStrictFacts\"] = 7880640] = \"FunctionStrictFacts\";\n TypeFacts3[TypeFacts3[\"FunctionFacts\"] = 16728e3] = \"FunctionFacts\";\n TypeFacts3[TypeFacts3[\"VoidFacts\"] = 9830144] = \"VoidFacts\";\n TypeFacts3[TypeFacts3[\"UndefinedFacts\"] = 26607360] = \"UndefinedFacts\";\n TypeFacts3[TypeFacts3[\"NullFacts\"] = 42917664] = \"NullFacts\";\n TypeFacts3[TypeFacts3[\"EmptyObjectStrictFacts\"] = 83427327] = \"EmptyObjectStrictFacts\";\n TypeFacts3[TypeFacts3[\"EmptyObjectFacts\"] = 83886079] = \"EmptyObjectFacts\";\n TypeFacts3[TypeFacts3[\"UnknownFacts\"] = 83886079] = \"UnknownFacts\";\n TypeFacts3[TypeFacts3[\"AllTypeofNE\"] = 556800] = \"AllTypeofNE\";\n TypeFacts3[TypeFacts3[\"OrFactsMask\"] = 8256] = \"OrFactsMask\";\n TypeFacts3[TypeFacts3[\"AndFactsMask\"] = 134209471] = \"AndFactsMask\";\n return TypeFacts3;\n})(TypeFacts || {});\nvar typeofNEFacts = new Map(Object.entries({\n string: 256 /* TypeofNEString */,\n number: 512 /* TypeofNENumber */,\n bigint: 1024 /* TypeofNEBigInt */,\n boolean: 2048 /* TypeofNEBoolean */,\n symbol: 4096 /* TypeofNESymbol */,\n undefined: 524288 /* NEUndefined */,\n object: 8192 /* TypeofNEObject */,\n function: 16384 /* TypeofNEFunction */\n}));\nvar CheckMode = /* @__PURE__ */ ((CheckMode3) => {\n CheckMode3[CheckMode3[\"Normal\"] = 0] = \"Normal\";\n CheckMode3[CheckMode3[\"Contextual\"] = 1] = \"Contextual\";\n CheckMode3[CheckMode3[\"Inferential\"] = 2] = \"Inferential\";\n CheckMode3[CheckMode3[\"SkipContextSensitive\"] = 4] = \"SkipContextSensitive\";\n CheckMode3[CheckMode3[\"SkipGenericFunctions\"] = 8] = \"SkipGenericFunctions\";\n CheckMode3[CheckMode3[\"IsForSignatureHelp\"] = 16] = \"IsForSignatureHelp\";\n CheckMode3[CheckMode3[\"RestBindingElement\"] = 32] = \"RestBindingElement\";\n CheckMode3[CheckMode3[\"TypeOnly\"] = 64] = \"TypeOnly\";\n return CheckMode3;\n})(CheckMode || {});\nvar SignatureCheckMode = /* @__PURE__ */ ((SignatureCheckMode3) => {\n SignatureCheckMode3[SignatureCheckMode3[\"None\"] = 0] = \"None\";\n SignatureCheckMode3[SignatureCheckMode3[\"BivariantCallback\"] = 1] = \"BivariantCallback\";\n SignatureCheckMode3[SignatureCheckMode3[\"StrictCallback\"] = 2] = \"StrictCallback\";\n SignatureCheckMode3[SignatureCheckMode3[\"IgnoreReturnTypes\"] = 4] = \"IgnoreReturnTypes\";\n SignatureCheckMode3[SignatureCheckMode3[\"StrictArity\"] = 8] = \"StrictArity\";\n SignatureCheckMode3[SignatureCheckMode3[\"StrictTopSignature\"] = 16] = \"StrictTopSignature\";\n SignatureCheckMode3[SignatureCheckMode3[\"Callback\"] = 3] = \"Callback\";\n return SignatureCheckMode3;\n})(SignatureCheckMode || {});\nvar isNotOverloadAndNotAccessor = and(isNotOverload, isNotAccessor);\nvar intrinsicTypeKinds = new Map(Object.entries({\n Uppercase: 0 /* Uppercase */,\n Lowercase: 1 /* Lowercase */,\n Capitalize: 2 /* Capitalize */,\n Uncapitalize: 3 /* Uncapitalize */,\n NoInfer: 4 /* NoInfer */\n}));\nvar SymbolLinks = class {\n};\nfunction NodeLinks() {\n this.flags = 0 /* None */;\n}\nfunction getNodeId(node) {\n if (!node.id) {\n node.id = nextNodeId;\n nextNodeId++;\n }\n return node.id;\n}\nfunction getSymbolId(symbol) {\n if (!symbol.id) {\n symbol.id = nextSymbolId;\n nextSymbolId++;\n }\n return symbol.id;\n}\nfunction isInstantiatedModule(node, preserveConstEnums) {\n const moduleState = getModuleInstanceState(node);\n return moduleState === 1 /* Instantiated */ || preserveConstEnums && moduleState === 2 /* ConstEnumOnly */;\n}\nfunction createTypeChecker(host) {\n var deferredDiagnosticsCallbacks = [];\n var addLazyDiagnostic = (arg) => {\n deferredDiagnosticsCallbacks.push(arg);\n };\n var cancellationToken;\n var scanner2;\n var Symbol48 = objectAllocator.getSymbolConstructor();\n var Type29 = objectAllocator.getTypeConstructor();\n var Signature13 = objectAllocator.getSignatureConstructor();\n var typeCount = 0;\n var symbolCount = 0;\n var totalInstantiationCount = 0;\n var instantiationCount = 0;\n var instantiationDepth = 0;\n var inlineLevel = 0;\n var currentNode;\n var varianceTypeParameter;\n var isInferencePartiallyBlocked = false;\n var emptySymbols = createSymbolTable();\n var arrayVariances = [1 /* Covariant */];\n var compilerOptions = host.getCompilerOptions();\n var languageVersion = getEmitScriptTarget(compilerOptions);\n var moduleKind = getEmitModuleKind(compilerOptions);\n var legacyDecorators = !!compilerOptions.experimentalDecorators;\n var useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n var emitStandardClassFields = getEmitStandardClassFields(compilerOptions);\n var allowSyntheticDefaultImports = getAllowSyntheticDefaultImports(compilerOptions);\n var strictNullChecks = getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n var strictFunctionTypes = getStrictOptionValue(compilerOptions, \"strictFunctionTypes\");\n var strictBindCallApply = getStrictOptionValue(compilerOptions, \"strictBindCallApply\");\n var strictPropertyInitialization = getStrictOptionValue(compilerOptions, \"strictPropertyInitialization\");\n var strictBuiltinIteratorReturn = getStrictOptionValue(compilerOptions, \"strictBuiltinIteratorReturn\");\n var noImplicitAny = getStrictOptionValue(compilerOptions, \"noImplicitAny\");\n var noImplicitThis = getStrictOptionValue(compilerOptions, \"noImplicitThis\");\n var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, \"useUnknownInCatchVariables\");\n var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;\n var noUncheckedSideEffectImports = !!compilerOptions.noUncheckedSideEffectImports;\n var checkBinaryExpression = createCheckBinaryExpression();\n var emitResolver = createResolver();\n var nodeBuilder = createNodeBuilder();\n var syntacticNodeBuilder = createSyntacticTypeNodeBuilder(compilerOptions, nodeBuilder.syntacticBuilderResolver);\n var evaluate = createEvaluator({\n evaluateElementAccessExpression,\n evaluateEntityNameExpression\n });\n var globals = createSymbolTable();\n var undefinedSymbol = createSymbol(4 /* Property */, \"undefined\");\n undefinedSymbol.declarations = [];\n var globalThisSymbol = createSymbol(1536 /* Module */, \"globalThis\", 8 /* Readonly */);\n globalThisSymbol.exports = globals;\n globalThisSymbol.declarations = [];\n globals.set(globalThisSymbol.escapedName, globalThisSymbol);\n var argumentsSymbol = createSymbol(4 /* Property */, \"arguments\");\n var requireSymbol = createSymbol(4 /* Property */, \"require\");\n var isolatedModulesLikeFlagName = compilerOptions.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\";\n var canCollectSymbolAliasAccessabilityData = !compilerOptions.verbatimModuleSyntax;\n var apparentArgumentCount;\n var lastGetCombinedNodeFlagsNode;\n var lastGetCombinedNodeFlagsResult = 0 /* None */;\n var lastGetCombinedModifierFlagsNode;\n var lastGetCombinedModifierFlagsResult = 0 /* None */;\n var resolveName = createNameResolver({\n compilerOptions,\n requireSymbol,\n argumentsSymbol,\n globals,\n getSymbolOfDeclaration,\n error: error2,\n getRequiresScopeChangeCache,\n setRequiresScopeChangeCache,\n lookup: getSymbol2,\n onPropertyWithInvalidInitializer: checkAndReportErrorForInvalidInitializer,\n onFailedToResolveSymbol,\n onSuccessfullyResolvedSymbol\n });\n var resolveNameForSymbolSuggestion = createNameResolver({\n compilerOptions,\n requireSymbol,\n argumentsSymbol,\n globals,\n getSymbolOfDeclaration,\n error: error2,\n getRequiresScopeChangeCache,\n setRequiresScopeChangeCache,\n lookup: getSuggestionForSymbolNameLookup\n });\n const checker = {\n getNodeCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.nodeCount, 0),\n getIdentifierCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.identifierCount, 0),\n getSymbolCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.symbolCount, symbolCount),\n getTypeCount: () => typeCount,\n getInstantiationCount: () => totalInstantiationCount,\n getRelationCacheSizes: () => ({\n assignable: assignableRelation.size,\n identity: identityRelation.size,\n subtype: subtypeRelation.size,\n strictSubtype: strictSubtypeRelation.size\n }),\n isUndefinedSymbol: (symbol) => symbol === undefinedSymbol,\n isArgumentsSymbol: (symbol) => symbol === argumentsSymbol,\n isUnknownSymbol: (symbol) => symbol === unknownSymbol,\n getMergedSymbol,\n symbolIsValue,\n getDiagnostics: getDiagnostics2,\n getGlobalDiagnostics,\n getRecursionIdentity,\n getUnmatchedProperties,\n getTypeOfSymbolAtLocation: (symbol, locationIn) => {\n const location = getParseTreeNode(locationIn);\n return location ? getTypeOfSymbolAtLocation(symbol, location) : errorType;\n },\n getTypeOfSymbol,\n getSymbolsOfParameterPropertyDeclaration: (parameterIn, parameterName) => {\n const parameter = getParseTreeNode(parameterIn, isParameter);\n if (parameter === void 0) return Debug.fail(\"Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.\");\n Debug.assert(isParameterPropertyDeclaration(parameter, parameter.parent));\n return getSymbolsOfParameterPropertyDeclaration(parameter, escapeLeadingUnderscores(parameterName));\n },\n getDeclaredTypeOfSymbol,\n getPropertiesOfType,\n getPropertyOfType: (type, name) => getPropertyOfType(type, escapeLeadingUnderscores(name)),\n getPrivateIdentifierPropertyOfType: (leftType, name, location) => {\n const node = getParseTreeNode(location);\n if (!node) {\n return void 0;\n }\n const propName = escapeLeadingUnderscores(name);\n const lexicallyScopedIdentifier = lookupSymbolForPrivateIdentifierDeclaration(propName, node);\n return lexicallyScopedIdentifier ? getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) : void 0;\n },\n getTypeOfPropertyOfType: (type, name) => getTypeOfPropertyOfType(type, escapeLeadingUnderscores(name)),\n getIndexInfoOfType: (type, kind) => getIndexInfoOfType(type, kind === 0 /* String */ ? stringType : numberType),\n getIndexInfosOfType,\n getIndexInfosOfIndexSymbol,\n getSignaturesOfType,\n getIndexTypeOfType: (type, kind) => getIndexTypeOfType(type, kind === 0 /* String */ ? stringType : numberType),\n getIndexType: (type) => getIndexType(type),\n getBaseTypes,\n getBaseTypeOfLiteralType,\n getWidenedType,\n getWidenedLiteralType,\n fillMissingTypeArguments,\n getTypeFromTypeNode: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isTypeNode);\n return node ? getTypeFromTypeNode(node) : errorType;\n },\n getParameterType: getTypeAtPosition,\n getParameterIdentifierInfoAtPosition,\n getPromisedTypeOfPromise,\n getAwaitedType: (type) => getAwaitedType(type),\n getReturnTypeOfSignature,\n isNullableType,\n getNullableType,\n getNonNullableType,\n getNonOptionalType: removeOptionalTypeMarker,\n getTypeArguments,\n typeToTypeNode: nodeBuilder.typeToTypeNode,\n typePredicateToTypePredicateNode: nodeBuilder.typePredicateToTypePredicateNode,\n indexInfoToIndexSignatureDeclaration: nodeBuilder.indexInfoToIndexSignatureDeclaration,\n signatureToSignatureDeclaration: nodeBuilder.signatureToSignatureDeclaration,\n symbolToEntityName: nodeBuilder.symbolToEntityName,\n symbolToExpression: nodeBuilder.symbolToExpression,\n symbolToNode: nodeBuilder.symbolToNode,\n symbolToTypeParameterDeclarations: nodeBuilder.symbolToTypeParameterDeclarations,\n symbolToParameterDeclaration: nodeBuilder.symbolToParameterDeclaration,\n typeParameterToDeclaration: nodeBuilder.typeParameterToDeclaration,\n getSymbolsInScope: (locationIn, meaning) => {\n const location = getParseTreeNode(locationIn);\n return location ? getSymbolsInScope(location, meaning) : [];\n },\n getSymbolAtLocation: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node ? getSymbolAtLocation(\n node,\n /*ignoreErrors*/\n true\n ) : void 0;\n },\n getIndexInfosAtLocation: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node ? getIndexInfosAtLocation(node) : void 0;\n },\n getShorthandAssignmentValueSymbol: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node ? getShorthandAssignmentValueSymbol(node) : void 0;\n },\n getExportSpecifierLocalTargetSymbol: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isExportSpecifier);\n return node ? getExportSpecifierLocalTargetSymbol(node) : void 0;\n },\n getExportSymbolOfSymbol(symbol) {\n return getMergedSymbol(symbol.exportSymbol || symbol);\n },\n getTypeAtLocation: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node ? getTypeOfNode(node) : errorType;\n },\n getTypeOfAssignmentPattern: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isAssignmentPattern);\n return node && getTypeOfAssignmentPattern(node) || errorType;\n },\n getPropertySymbolOfDestructuringAssignment: (locationIn) => {\n const location = getParseTreeNode(locationIn, isIdentifier);\n return location ? getPropertySymbolOfDestructuringAssignment(location) : void 0;\n },\n signatureToString: (signature, enclosingDeclaration, flags, kind) => {\n return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind);\n },\n typeToString: (type, enclosingDeclaration, flags) => {\n return typeToString(type, getParseTreeNode(enclosingDeclaration), flags);\n },\n symbolToString: (symbol, enclosingDeclaration, meaning, flags) => {\n return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags);\n },\n typePredicateToString: (predicate, enclosingDeclaration, flags) => {\n return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags);\n },\n writeSignature: (signature, enclosingDeclaration, flags, kind, writer, maximumLength, verbosityLevel, out) => {\n return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind, writer, maximumLength, verbosityLevel, out);\n },\n writeType: (type, enclosingDeclaration, flags, writer, maximumLength, verbosityLevel, out) => {\n return typeToString(type, getParseTreeNode(enclosingDeclaration), flags, writer, maximumLength, verbosityLevel, out);\n },\n writeSymbol: (symbol, enclosingDeclaration, meaning, flags, writer) => {\n return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags, writer);\n },\n writeTypePredicate: (predicate, enclosingDeclaration, flags, writer) => {\n return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags, writer);\n },\n getAugmentedPropertiesOfType,\n getRootSymbols,\n getSymbolOfExpando,\n getContextualType: (nodeIn, contextFlags) => {\n const node = getParseTreeNode(nodeIn, isExpression);\n if (!node) {\n return void 0;\n }\n if (contextFlags & 4 /* Completions */) {\n return runWithInferenceBlockedFromSourceNode(node, () => getContextualType2(node, contextFlags));\n }\n return getContextualType2(node, contextFlags);\n },\n getContextualTypeForObjectLiteralElement: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isObjectLiteralElementLike);\n return node ? getContextualTypeForObjectLiteralElement(\n node,\n /*contextFlags*/\n void 0\n ) : void 0;\n },\n getContextualTypeForArgumentAtIndex: (nodeIn, argIndex) => {\n const node = getParseTreeNode(nodeIn, isCallLikeExpression);\n return node && getContextualTypeForArgumentAtIndex(node, argIndex);\n },\n getContextualTypeForJsxAttribute: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isJsxAttributeLike);\n return node && getContextualTypeForJsxAttribute(\n node,\n /*contextFlags*/\n void 0\n );\n },\n isContextSensitive,\n getTypeOfPropertyOfContextualType,\n getFullyQualifiedName,\n getResolvedSignature: (node, candidatesOutArray, argumentCount) => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 0 /* Normal */),\n getCandidateSignaturesForStringLiteralCompletions,\n getResolvedSignatureForSignatureHelp: (node, candidatesOutArray, argumentCount) => runWithoutResolvedSignatureCaching(node, () => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 16 /* IsForSignatureHelp */)),\n getExpandedParameters,\n hasEffectiveRestParameter,\n containsArgumentsReference,\n getConstantValue: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, canHaveConstantValue);\n return node ? getConstantValue2(node) : void 0;\n },\n isValidPropertyAccess: (nodeIn, propertyName) => {\n const node = getParseTreeNode(nodeIn, isPropertyAccessOrQualifiedNameOrImportTypeNode);\n return !!node && isValidPropertyAccess(node, escapeLeadingUnderscores(propertyName));\n },\n isValidPropertyAccessForCompletions: (nodeIn, type, property) => {\n const node = getParseTreeNode(nodeIn, isPropertyAccessExpression);\n return !!node && isValidPropertyAccessForCompletions(node, type, property);\n },\n getSignatureFromDeclaration: (declarationIn) => {\n const declaration = getParseTreeNode(declarationIn, isFunctionLike);\n return declaration ? getSignatureFromDeclaration(declaration) : void 0;\n },\n isImplementationOfOverload: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isFunctionLike);\n return node ? isImplementationOfOverload(node) : void 0;\n },\n getImmediateAliasedSymbol,\n getAliasedSymbol: resolveAlias,\n getEmitResolver,\n requiresAddingImplicitUndefined,\n getExportsOfModule: getExportsOfModuleAsArray,\n getExportsAndPropertiesOfModule,\n forEachExportAndPropertyOfModule,\n getSymbolWalker: createGetSymbolWalker(\n getRestTypeOfSignature,\n getTypePredicateOfSignature,\n getReturnTypeOfSignature,\n getBaseTypes,\n resolveStructuredTypeMembers,\n getTypeOfSymbol,\n getResolvedSymbol,\n getConstraintOfTypeParameter,\n getFirstIdentifier,\n getTypeArguments\n ),\n getAmbientModules,\n getJsxIntrinsicTagNamesAt,\n isOptionalParameter: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isParameter);\n return node ? isOptionalParameter(node) : false;\n },\n tryGetMemberInModuleExports: (name, symbol) => tryGetMemberInModuleExports(escapeLeadingUnderscores(name), symbol),\n tryGetMemberInModuleExportsAndProperties: (name, symbol) => tryGetMemberInModuleExportsAndProperties(escapeLeadingUnderscores(name), symbol),\n tryFindAmbientModule: (moduleName) => tryFindAmbientModule(\n moduleName,\n /*withAugmentations*/\n true\n ),\n getApparentType,\n getUnionType,\n isTypeAssignableTo,\n createAnonymousType,\n createSignature,\n createSymbol,\n createIndexInfo,\n getAnyType: () => anyType,\n getStringType: () => stringType,\n getStringLiteralType,\n getNumberType: () => numberType,\n getNumberLiteralType,\n getBigIntType: () => bigintType,\n getBigIntLiteralType,\n getUnknownType: () => unknownType,\n createPromiseType,\n createArrayType,\n getElementTypeOfArrayType,\n getBooleanType: () => booleanType,\n getFalseType: (fresh) => fresh ? falseType : regularFalseType,\n getTrueType: (fresh) => fresh ? trueType : regularTrueType,\n getVoidType: () => voidType,\n getUndefinedType: () => undefinedType,\n getNullType: () => nullType,\n getESSymbolType: () => esSymbolType,\n getNeverType: () => neverType,\n getNonPrimitiveType: () => nonPrimitiveType,\n getOptionalType: () => optionalType,\n getPromiseType: () => getGlobalPromiseType(\n /*reportErrors*/\n false\n ),\n getPromiseLikeType: () => getGlobalPromiseLikeType(\n /*reportErrors*/\n false\n ),\n getAnyAsyncIterableType: () => {\n const type = getGlobalAsyncIterableType(\n /*reportErrors*/\n false\n );\n if (type === emptyGenericType) return void 0;\n return createTypeReference(type, [anyType, anyType, anyType]);\n },\n isSymbolAccessible,\n isArrayType,\n isTupleType,\n isArrayLikeType,\n isEmptyAnonymousObjectType,\n isTypeInvalidDueToUnionDiscriminant,\n getExactOptionalProperties,\n getAllPossiblePropertiesOfTypes,\n getSuggestedSymbolForNonexistentProperty,\n getSuggestedSymbolForNonexistentJSXAttribute,\n getSuggestedSymbolForNonexistentSymbol: (location, name, meaning) => getSuggestedSymbolForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning),\n getSuggestedSymbolForNonexistentModule,\n getSuggestedSymbolForNonexistentClassMember,\n getBaseConstraintOfType,\n getDefaultFromTypeParameter: (type) => type && type.flags & 262144 /* TypeParameter */ ? getDefaultFromTypeParameter(type) : void 0,\n resolveName(name, location, meaning, excludeGlobals) {\n return resolveName(\n location,\n escapeLeadingUnderscores(name),\n meaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false,\n excludeGlobals\n );\n },\n getJsxNamespace: (n) => unescapeLeadingUnderscores(getJsxNamespace(n)),\n getJsxFragmentFactory: (n) => {\n const jsxFragmentFactory = getJsxFragmentFactoryEntity(n);\n return jsxFragmentFactory && unescapeLeadingUnderscores(getFirstIdentifier(jsxFragmentFactory).escapedText);\n },\n getAccessibleSymbolChain,\n getTypePredicateOfSignature,\n resolveExternalModuleName: (moduleSpecifierIn) => {\n const moduleSpecifier = getParseTreeNode(moduleSpecifierIn, isExpression);\n return moduleSpecifier && resolveExternalModuleName(\n moduleSpecifier,\n moduleSpecifier,\n /*ignoreErrors*/\n true\n );\n },\n resolveExternalModuleSymbol,\n tryGetThisTypeAt: (nodeIn, includeGlobalThis, container) => {\n const node = getParseTreeNode(nodeIn);\n return node && tryGetThisTypeAt(node, includeGlobalThis, container);\n },\n getTypeArgumentConstraint: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isTypeNode);\n return node && getTypeArgumentConstraint(node);\n },\n getSuggestionDiagnostics: (fileIn, ct) => {\n const file = getParseTreeNode(fileIn, isSourceFile) || Debug.fail(\"Could not determine parsed source file.\");\n if (skipTypeChecking(file, compilerOptions, host)) {\n return emptyArray;\n }\n let diagnostics2;\n try {\n cancellationToken = ct;\n checkSourceFileWithEagerDiagnostics(file);\n Debug.assert(!!(getNodeLinks(file).flags & 1 /* TypeChecked */));\n diagnostics2 = addRange(diagnostics2, suggestionDiagnostics.getDiagnostics(file.fileName));\n checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), (containingNode, kind, diag2) => {\n if (!containsParseError(containingNode) && !unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) {\n (diagnostics2 || (diagnostics2 = [])).push({ ...diag2, category: 2 /* Suggestion */ });\n }\n });\n return diagnostics2 || emptyArray;\n } finally {\n cancellationToken = void 0;\n }\n },\n runWithCancellationToken: (token, callback) => {\n try {\n cancellationToken = token;\n return callback(checker);\n } finally {\n cancellationToken = void 0;\n }\n },\n getLocalTypeParametersOfClassOrInterfaceOrTypeAlias,\n isDeclarationVisible,\n isPropertyAccessible,\n getTypeOnlyAliasDeclaration,\n getMemberOverrideModifierStatus,\n isTypeParameterPossiblyReferenced,\n typeHasCallOrConstructSignatures,\n getSymbolFlags,\n getTypeArgumentsForResolvedSignature,\n isLibType\n };\n function getTypeArgumentsForResolvedSignature(signature) {\n if (signature.mapper === void 0) return void 0;\n return instantiateTypes((signature.target || signature).typeParameters, signature.mapper);\n }\n function getCandidateSignaturesForStringLiteralCompletions(call, editingArgument) {\n const candidatesSet = /* @__PURE__ */ new Set();\n const candidates = [];\n runWithInferenceBlockedFromSourceNode(editingArgument, () => getResolvedSignatureWorker(\n call,\n candidates,\n /*argumentCount*/\n void 0,\n 0 /* Normal */\n ));\n for (const candidate of candidates) {\n candidatesSet.add(candidate);\n }\n candidates.length = 0;\n runWithoutResolvedSignatureCaching(editingArgument, () => getResolvedSignatureWorker(\n call,\n candidates,\n /*argumentCount*/\n void 0,\n 0 /* Normal */\n ));\n for (const candidate of candidates) {\n candidatesSet.add(candidate);\n }\n return arrayFrom(candidatesSet);\n }\n function runWithoutResolvedSignatureCaching(node, fn) {\n node = findAncestor(node, isCallLikeOrFunctionLikeExpression);\n if (node) {\n const cachedResolvedSignatures = [];\n const cachedTypes2 = [];\n while (node) {\n const nodeLinks2 = getNodeLinks(node);\n cachedResolvedSignatures.push([nodeLinks2, nodeLinks2.resolvedSignature]);\n nodeLinks2.resolvedSignature = void 0;\n if (isFunctionExpressionOrArrowFunction(node)) {\n const symbolLinks2 = getSymbolLinks(getSymbolOfDeclaration(node));\n const type = symbolLinks2.type;\n cachedTypes2.push([symbolLinks2, type]);\n symbolLinks2.type = void 0;\n }\n node = findAncestor(node.parent, isCallLikeOrFunctionLikeExpression);\n }\n const result = fn();\n for (const [nodeLinks2, resolvedSignature] of cachedResolvedSignatures) {\n nodeLinks2.resolvedSignature = resolvedSignature;\n }\n for (const [symbolLinks2, type] of cachedTypes2) {\n symbolLinks2.type = type;\n }\n return result;\n }\n return fn();\n }\n function runWithInferenceBlockedFromSourceNode(node, fn) {\n const containingCall = findAncestor(node, isCallLikeExpression);\n if (containingCall) {\n let toMarkSkip = node;\n do {\n getNodeLinks(toMarkSkip).skipDirectInference = true;\n toMarkSkip = toMarkSkip.parent;\n } while (toMarkSkip && toMarkSkip !== containingCall);\n }\n isInferencePartiallyBlocked = true;\n const result = runWithoutResolvedSignatureCaching(node, fn);\n isInferencePartiallyBlocked = false;\n if (containingCall) {\n let toMarkSkip = node;\n do {\n getNodeLinks(toMarkSkip).skipDirectInference = void 0;\n toMarkSkip = toMarkSkip.parent;\n } while (toMarkSkip && toMarkSkip !== containingCall);\n }\n return result;\n }\n function getResolvedSignatureWorker(nodeIn, candidatesOutArray, argumentCount, checkMode) {\n const node = getParseTreeNode(nodeIn, isCallLikeExpression);\n apparentArgumentCount = argumentCount;\n const res = !node ? void 0 : getResolvedSignature(node, candidatesOutArray, checkMode);\n apparentArgumentCount = void 0;\n return res;\n }\n var tupleTypes = /* @__PURE__ */ new Map();\n var unionTypes = /* @__PURE__ */ new Map();\n var unionOfUnionTypes = /* @__PURE__ */ new Map();\n var intersectionTypes = /* @__PURE__ */ new Map();\n var stringLiteralTypes = /* @__PURE__ */ new Map();\n var numberLiteralTypes = /* @__PURE__ */ new Map();\n var bigIntLiteralTypes = /* @__PURE__ */ new Map();\n var enumLiteralTypes = /* @__PURE__ */ new Map();\n var indexedAccessTypes = /* @__PURE__ */ new Map();\n var templateLiteralTypes = /* @__PURE__ */ new Map();\n var stringMappingTypes = /* @__PURE__ */ new Map();\n var substitutionTypes = /* @__PURE__ */ new Map();\n var subtypeReductionCache = /* @__PURE__ */ new Map();\n var decoratorContextOverrideTypeCache = /* @__PURE__ */ new Map();\n var cachedTypes = /* @__PURE__ */ new Map();\n var evolvingArrayTypes = [];\n var undefinedProperties = /* @__PURE__ */ new Map();\n var markerTypes = /* @__PURE__ */ new Set();\n var unknownSymbol = createSymbol(4 /* Property */, \"unknown\");\n var resolvingSymbol = createSymbol(0, \"__resolving__\" /* Resolving */);\n var unresolvedSymbols = /* @__PURE__ */ new Map();\n var errorTypes = /* @__PURE__ */ new Map();\n var seenIntrinsicNames = /* @__PURE__ */ new Set();\n var anyType = createIntrinsicType(1 /* Any */, \"any\");\n var autoType = createIntrinsicType(1 /* Any */, \"any\", 262144 /* NonInferrableType */, \"auto\");\n var wildcardType = createIntrinsicType(\n 1 /* Any */,\n \"any\",\n /*objectFlags*/\n void 0,\n \"wildcard\"\n );\n var blockedStringType = createIntrinsicType(\n 1 /* Any */,\n \"any\",\n /*objectFlags*/\n void 0,\n \"blocked string\"\n );\n var errorType = createIntrinsicType(1 /* Any */, \"error\");\n var unresolvedType = createIntrinsicType(1 /* Any */, \"unresolved\");\n var nonInferrableAnyType = createIntrinsicType(1 /* Any */, \"any\", 65536 /* ContainsWideningType */, \"non-inferrable\");\n var intrinsicMarkerType = createIntrinsicType(1 /* Any */, \"intrinsic\");\n var unknownType = createIntrinsicType(2 /* Unknown */, \"unknown\");\n var undefinedType = createIntrinsicType(32768 /* Undefined */, \"undefined\");\n var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, \"undefined\", 65536 /* ContainsWideningType */, \"widening\");\n var missingType = createIntrinsicType(\n 32768 /* Undefined */,\n \"undefined\",\n /*objectFlags*/\n void 0,\n \"missing\"\n );\n var undefinedOrMissingType = exactOptionalPropertyTypes ? missingType : undefinedType;\n var optionalType = createIntrinsicType(\n 32768 /* Undefined */,\n \"undefined\",\n /*objectFlags*/\n void 0,\n \"optional\"\n );\n var nullType = createIntrinsicType(65536 /* Null */, \"null\");\n var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, \"null\", 65536 /* ContainsWideningType */, \"widening\");\n var stringType = createIntrinsicType(4 /* String */, \"string\");\n var numberType = createIntrinsicType(8 /* Number */, \"number\");\n var bigintType = createIntrinsicType(64 /* BigInt */, \"bigint\");\n var falseType = createIntrinsicType(\n 512 /* BooleanLiteral */,\n \"false\",\n /*objectFlags*/\n void 0,\n \"fresh\"\n );\n var regularFalseType = createIntrinsicType(512 /* BooleanLiteral */, \"false\");\n var trueType = createIntrinsicType(\n 512 /* BooleanLiteral */,\n \"true\",\n /*objectFlags*/\n void 0,\n \"fresh\"\n );\n var regularTrueType = createIntrinsicType(512 /* BooleanLiteral */, \"true\");\n trueType.regularType = regularTrueType;\n trueType.freshType = trueType;\n regularTrueType.regularType = regularTrueType;\n regularTrueType.freshType = trueType;\n falseType.regularType = regularFalseType;\n falseType.freshType = falseType;\n regularFalseType.regularType = regularFalseType;\n regularFalseType.freshType = falseType;\n var booleanType = getUnionType([regularFalseType, regularTrueType]);\n var esSymbolType = createIntrinsicType(4096 /* ESSymbol */, \"symbol\");\n var voidType = createIntrinsicType(16384 /* Void */, \"void\");\n var neverType = createIntrinsicType(131072 /* Never */, \"never\");\n var silentNeverType = createIntrinsicType(131072 /* Never */, \"never\", 262144 /* NonInferrableType */, \"silent\");\n var implicitNeverType = createIntrinsicType(\n 131072 /* Never */,\n \"never\",\n /*objectFlags*/\n void 0,\n \"implicit\"\n );\n var unreachableNeverType = createIntrinsicType(\n 131072 /* Never */,\n \"never\",\n /*objectFlags*/\n void 0,\n \"unreachable\"\n );\n var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, \"object\");\n var stringOrNumberType = getUnionType([stringType, numberType]);\n var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);\n var numberOrBigIntType = getUnionType([numberType, bigintType]);\n var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]);\n var numericStringType = getTemplateLiteralType([\"\", \"\"], [numberType]);\n var restrictiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? getRestrictiveTypeParameter(t) : t, () => \"(restrictive mapper)\");\n var permissiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? wildcardType : t, () => \"(permissive mapper)\");\n var uniqueLiteralType = createIntrinsicType(\n 131072 /* Never */,\n \"never\",\n /*objectFlags*/\n void 0,\n \"unique literal\"\n );\n var uniqueLiteralMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? uniqueLiteralType : t, () => \"(unique literal mapper)\");\n var outofbandVarianceMarkerHandler;\n var reportUnreliableMapper = makeFunctionTypeMapper((t) => {\n if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {\n outofbandVarianceMarkerHandler(\n /*onlyUnreliable*/\n true\n );\n }\n return t;\n }, () => \"(unmeasurable reporter)\");\n var reportUnmeasurableMapper = makeFunctionTypeMapper((t) => {\n if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {\n outofbandVarianceMarkerHandler(\n /*onlyUnreliable*/\n false\n );\n }\n return t;\n }, () => \"(unreliable reporter)\");\n var emptyObjectType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n var emptyJsxObjectType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n emptyJsxObjectType.objectFlags |= 2048 /* JsxAttributes */;\n var emptyFreshJsxObjectType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n emptyFreshJsxObjectType.objectFlags |= 2048 /* JsxAttributes */ | 8192 /* FreshLiteral */ | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n var emptyTypeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n emptyTypeLiteralSymbol.members = createSymbolTable();\n var emptyTypeLiteralType = createAnonymousType(emptyTypeLiteralSymbol, emptySymbols, emptyArray, emptyArray, emptyArray);\n var unknownEmptyObjectType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n var unknownUnionType = strictNullChecks ? getUnionType([undefinedType, nullType, unknownEmptyObjectType]) : unknownType;\n var emptyGenericType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n emptyGenericType.instantiations = /* @__PURE__ */ new Map();\n var anyFunctionType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n anyFunctionType.objectFlags |= 262144 /* NonInferrableType */;\n var noConstraintType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n var circularConstraintType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n var resolvingDefaultType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n var markerSuperType = createTypeParameter();\n var markerSubType = createTypeParameter();\n markerSubType.constraint = markerSuperType;\n var markerOtherType = createTypeParameter();\n var markerSuperTypeForCheck = createTypeParameter();\n var markerSubTypeForCheck = createTypeParameter();\n markerSubTypeForCheck.constraint = markerSuperTypeForCheck;\n var noTypePredicate = createTypePredicate(1 /* Identifier */, \"<>\", 0, anyType);\n var anySignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n anyType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n var unknownSignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n errorType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n var resolvingSignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n anyType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n var silentNeverSignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n silentNeverType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n var enumNumberIndexInfo = createIndexInfo(\n numberType,\n stringType,\n /*isReadonly*/\n true\n );\n var anyBaseTypeIndexInfo = createIndexInfo(\n stringType,\n anyType,\n /*isReadonly*/\n false\n );\n var iterationTypesCache = /* @__PURE__ */ new Map();\n var noIterationTypes = {\n get yieldType() {\n return Debug.fail(\"Not supported\");\n },\n get returnType() {\n return Debug.fail(\"Not supported\");\n },\n get nextType() {\n return Debug.fail(\"Not supported\");\n }\n };\n var anyIterationTypes = createIterationTypes(anyType, anyType, anyType);\n var silentNeverIterationTypes = createIterationTypes(silentNeverType, silentNeverType, silentNeverType);\n var asyncIterationTypesResolver = {\n iterableCacheKey: \"iterationTypesOfAsyncIterable\",\n iteratorCacheKey: \"iterationTypesOfAsyncIterator\",\n iteratorSymbolName: \"asyncIterator\",\n getGlobalIteratorType: getGlobalAsyncIteratorType,\n getGlobalIterableType: getGlobalAsyncIterableType,\n getGlobalIterableIteratorType: getGlobalAsyncIterableIteratorType,\n getGlobalIteratorObjectType: getGlobalAsyncIteratorObjectType,\n getGlobalGeneratorType: getGlobalAsyncGeneratorType,\n getGlobalBuiltinIteratorTypes: getGlobalBuiltinAsyncIteratorTypes,\n resolveIterationType: (type, errorNode) => getAwaitedType(type, errorNode, Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member),\n mustHaveANextMethodDiagnostic: Diagnostics.An_async_iterator_must_have_a_next_method,\n mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,\n mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property\n };\n var syncIterationTypesResolver = {\n iterableCacheKey: \"iterationTypesOfIterable\",\n iteratorCacheKey: \"iterationTypesOfIterator\",\n iteratorSymbolName: \"iterator\",\n getGlobalIteratorType,\n getGlobalIterableType,\n getGlobalIterableIteratorType,\n getGlobalIteratorObjectType,\n getGlobalGeneratorType,\n getGlobalBuiltinIteratorTypes,\n resolveIterationType: (type, _errorNode) => type,\n mustHaveANextMethodDiagnostic: Diagnostics.An_iterator_must_have_a_next_method,\n mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_iterator_must_be_a_method,\n mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property\n };\n var amalgamatedDuplicates;\n var reverseMappedCache = /* @__PURE__ */ new Map();\n var reverseHomomorphicMappedCache = /* @__PURE__ */ new Map();\n var ambientModulesCache;\n var patternAmbientModules;\n var patternAmbientModuleAugmentations;\n var globalObjectType;\n var globalFunctionType;\n var globalCallableFunctionType;\n var globalNewableFunctionType;\n var globalArrayType;\n var globalReadonlyArrayType;\n var globalStringType;\n var globalNumberType;\n var globalBooleanType;\n var globalRegExpType;\n var globalThisType;\n var anyArrayType;\n var autoArrayType;\n var anyReadonlyArrayType;\n var deferredGlobalNonNullableTypeAlias;\n var deferredGlobalESSymbolConstructorSymbol;\n var deferredGlobalESSymbolConstructorTypeSymbol;\n var deferredGlobalESSymbolType;\n var deferredGlobalTypedPropertyDescriptorType;\n var deferredGlobalPromiseType;\n var deferredGlobalPromiseLikeType;\n var deferredGlobalPromiseConstructorSymbol;\n var deferredGlobalPromiseConstructorLikeType;\n var deferredGlobalIterableType;\n var deferredGlobalIteratorType;\n var deferredGlobalIterableIteratorType;\n var deferredGlobalIteratorObjectType;\n var deferredGlobalGeneratorType;\n var deferredGlobalIteratorYieldResultType;\n var deferredGlobalIteratorReturnResultType;\n var deferredGlobalAsyncIterableType;\n var deferredGlobalAsyncIteratorType;\n var deferredGlobalAsyncIterableIteratorType;\n var deferredGlobalBuiltinIteratorTypes;\n var deferredGlobalBuiltinAsyncIteratorTypes;\n var deferredGlobalAsyncIteratorObjectType;\n var deferredGlobalAsyncGeneratorType;\n var deferredGlobalTemplateStringsArrayType;\n var deferredGlobalImportMetaType;\n var deferredGlobalImportMetaExpressionType;\n var deferredGlobalImportCallOptionsType;\n var deferredGlobalImportAttributesType;\n var deferredGlobalDisposableType;\n var deferredGlobalAsyncDisposableType;\n var deferredGlobalExtractSymbol;\n var deferredGlobalOmitSymbol;\n var deferredGlobalAwaitedSymbol;\n var deferredGlobalBigIntType;\n var deferredGlobalNaNSymbol;\n var deferredGlobalRecordSymbol;\n var deferredGlobalClassDecoratorContextType;\n var deferredGlobalClassMethodDecoratorContextType;\n var deferredGlobalClassGetterDecoratorContextType;\n var deferredGlobalClassSetterDecoratorContextType;\n var deferredGlobalClassAccessorDecoratorContextType;\n var deferredGlobalClassAccessorDecoratorTargetType;\n var deferredGlobalClassAccessorDecoratorResultType;\n var deferredGlobalClassFieldDecoratorContextType;\n var allPotentiallyUnusedIdentifiers = /* @__PURE__ */ new Map();\n var flowLoopStart = 0;\n var flowLoopCount = 0;\n var sharedFlowCount = 0;\n var flowAnalysisDisabled = false;\n var flowInvocationCount = 0;\n var lastFlowNode;\n var lastFlowNodeReachable;\n var flowTypeCache;\n var contextualTypeNodes = [];\n var contextualTypes = [];\n var contextualIsCache = [];\n var contextualTypeCount = 0;\n var contextualBindingPatterns = [];\n var inferenceContextNodes = [];\n var inferenceContexts = [];\n var inferenceContextCount = 0;\n var activeTypeMappers = [];\n var activeTypeMappersCaches = [];\n var activeTypeMappersCount = 0;\n var emptyStringType = getStringLiteralType(\"\");\n var zeroType = getNumberLiteralType(0);\n var zeroBigIntType = getBigIntLiteralType({ negative: false, base10Value: \"0\" });\n var resolutionTargets = [];\n var resolutionResults = [];\n var resolutionPropertyNames = [];\n var resolutionStart = 0;\n var inVarianceComputation = false;\n var suggestionCount = 0;\n var maximumSuggestionCount = 10;\n var mergedSymbols = [];\n var symbolLinks = [];\n var nodeLinks = [];\n var flowLoopCaches = [];\n var flowLoopNodes = [];\n var flowLoopKeys = [];\n var flowLoopTypes = [];\n var sharedFlowNodes = [];\n var sharedFlowTypes = [];\n var flowNodeReachable = [];\n var flowNodePostSuper = [];\n var potentialThisCollisions = [];\n var potentialNewTargetCollisions = [];\n var potentialWeakMapSetCollisions = [];\n var potentialReflectCollisions = [];\n var potentialUnusedRenamedBindingElementsInTypes = [];\n var awaitedTypeStack = [];\n var reverseMappedSourceStack = [];\n var reverseMappedTargetStack = [];\n var reverseExpandingFlags = 0 /* None */;\n var diagnostics = createDiagnosticCollection();\n var suggestionDiagnostics = createDiagnosticCollection();\n var typeofType = createTypeofType();\n var _jsxNamespace;\n var _jsxFactoryEntity;\n var subtypeRelation = /* @__PURE__ */ new Map();\n var strictSubtypeRelation = /* @__PURE__ */ new Map();\n var assignableRelation = /* @__PURE__ */ new Map();\n var comparableRelation = /* @__PURE__ */ new Map();\n var identityRelation = /* @__PURE__ */ new Map();\n var enumRelation = /* @__PURE__ */ new Map();\n var suggestedExtensions = [\n [\".mts\", \".mjs\"],\n [\".ts\", \".js\"],\n [\".cts\", \".cjs\"],\n [\".mjs\", \".mjs\"],\n [\".js\", \".js\"],\n [\".cjs\", \".cjs\"],\n [\".tsx\", compilerOptions.jsx === 1 /* Preserve */ ? \".jsx\" : \".js\"],\n [\".jsx\", \".jsx\"],\n [\".json\", \".json\"]\n ];\n initializeTypeChecker();\n return checker;\n function isDefinitelyReferenceToGlobalSymbolObject(node) {\n if (!isPropertyAccessExpression(node)) return false;\n if (!isIdentifier(node.name)) return false;\n if (!isPropertyAccessExpression(node.expression) && !isIdentifier(node.expression)) return false;\n if (isIdentifier(node.expression)) {\n return idText(node.expression) === \"Symbol\" && getResolvedSymbol(node.expression) === (getGlobalSymbol(\n \"Symbol\",\n 111551 /* Value */ | 1048576 /* ExportValue */,\n /*diagnostic*/\n void 0\n ) || unknownSymbol);\n }\n if (!isIdentifier(node.expression.expression)) return false;\n return idText(node.expression.name) === \"Symbol\" && idText(node.expression.expression) === \"globalThis\" && getResolvedSymbol(node.expression.expression) === globalThisSymbol;\n }\n function getCachedType(key) {\n return key ? cachedTypes.get(key) : void 0;\n }\n function setCachedType(key, type) {\n if (key) cachedTypes.set(key, type);\n return type;\n }\n function getJsxNamespace(location) {\n if (location) {\n const file = getSourceFileOfNode(location);\n if (file) {\n if (isJsxOpeningFragment(location)) {\n if (file.localJsxFragmentNamespace) {\n return file.localJsxFragmentNamespace;\n }\n const jsxFragmentPragma = file.pragmas.get(\"jsxfrag\");\n if (jsxFragmentPragma) {\n const chosenPragma = isArray(jsxFragmentPragma) ? jsxFragmentPragma[0] : jsxFragmentPragma;\n file.localJsxFragmentFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion);\n visitNode(file.localJsxFragmentFactory, markAsSynthetic, isEntityName);\n if (file.localJsxFragmentFactory) {\n return file.localJsxFragmentNamespace = getFirstIdentifier(file.localJsxFragmentFactory).escapedText;\n }\n }\n const entity = getJsxFragmentFactoryEntity(location);\n if (entity) {\n file.localJsxFragmentFactory = entity;\n return file.localJsxFragmentNamespace = getFirstIdentifier(entity).escapedText;\n }\n } else {\n const localJsxNamespace = getLocalJsxNamespace(file);\n if (localJsxNamespace) {\n return file.localJsxNamespace = localJsxNamespace;\n }\n }\n }\n }\n if (!_jsxNamespace) {\n _jsxNamespace = \"React\";\n if (compilerOptions.jsxFactory) {\n _jsxFactoryEntity = parseIsolatedEntityName(compilerOptions.jsxFactory, languageVersion);\n visitNode(_jsxFactoryEntity, markAsSynthetic);\n if (_jsxFactoryEntity) {\n _jsxNamespace = getFirstIdentifier(_jsxFactoryEntity).escapedText;\n }\n } else if (compilerOptions.reactNamespace) {\n _jsxNamespace = escapeLeadingUnderscores(compilerOptions.reactNamespace);\n }\n }\n if (!_jsxFactoryEntity) {\n _jsxFactoryEntity = factory.createQualifiedName(factory.createIdentifier(unescapeLeadingUnderscores(_jsxNamespace)), \"createElement\");\n }\n return _jsxNamespace;\n }\n function getLocalJsxNamespace(file) {\n if (file.localJsxNamespace) {\n return file.localJsxNamespace;\n }\n const jsxPragma = file.pragmas.get(\"jsx\");\n if (jsxPragma) {\n const chosenPragma = isArray(jsxPragma) ? jsxPragma[0] : jsxPragma;\n file.localJsxFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion);\n visitNode(file.localJsxFactory, markAsSynthetic, isEntityName);\n if (file.localJsxFactory) {\n return file.localJsxNamespace = getFirstIdentifier(file.localJsxFactory).escapedText;\n }\n }\n }\n function markAsSynthetic(node) {\n setTextRangePosEnd(node, -1, -1);\n return visitEachChild(\n node,\n markAsSynthetic,\n /*context*/\n void 0\n );\n }\n function getEmitResolver(sourceFile, cancellationToken2, skipDiagnostics) {\n if (!skipDiagnostics) getDiagnostics2(sourceFile, cancellationToken2);\n return emitResolver;\n }\n function lookupOrIssueError(location, message, ...args) {\n const diagnostic = location ? createDiagnosticForNode(location, message, ...args) : createCompilerDiagnostic(message, ...args);\n const existing = diagnostics.lookup(diagnostic);\n if (existing) {\n return existing;\n } else {\n diagnostics.add(diagnostic);\n return diagnostic;\n }\n }\n function errorSkippedOn(key, location, message, ...args) {\n const diagnostic = error2(location, message, ...args);\n diagnostic.skippedOn = key;\n return diagnostic;\n }\n function createError(location, message, ...args) {\n return location ? createDiagnosticForNode(location, message, ...args) : createCompilerDiagnostic(message, ...args);\n }\n function error2(location, message, ...args) {\n const diagnostic = createError(location, message, ...args);\n diagnostics.add(diagnostic);\n return diagnostic;\n }\n function getVerbatimModuleSyntaxErrorMessage(node) {\n const sourceFile = getSourceFileOfNode(node);\n const fileName = sourceFile.fileName;\n if (fileExtensionIsOneOf(fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */])) {\n return Diagnostics.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax;\n } else {\n return Diagnostics.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript;\n }\n }\n function addErrorOrSuggestion(isError, diagnostic) {\n if (isError) {\n diagnostics.add(diagnostic);\n } else {\n suggestionDiagnostics.add({ ...diagnostic, category: 2 /* Suggestion */ });\n }\n }\n function errorOrSuggestion(isError, location, message, ...args) {\n if (location.pos < 0 || location.end < 0) {\n if (!isError) {\n return;\n }\n const file = getSourceFileOfNode(location);\n addErrorOrSuggestion(isError, \"message\" in message ? createFileDiagnostic(file, 0, 0, message, ...args) : createDiagnosticForFileFromMessageChain(file, message));\n return;\n }\n addErrorOrSuggestion(isError, \"message\" in message ? createDiagnosticForNode(location, message, ...args) : createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(location), location, message));\n }\n function errorAndMaybeSuggestAwait(location, maybeMissingAwait, message, ...args) {\n const diagnostic = error2(location, message, ...args);\n if (maybeMissingAwait) {\n const related = createDiagnosticForNode(location, Diagnostics.Did_you_forget_to_use_await);\n addRelatedInfo(diagnostic, related);\n }\n return diagnostic;\n }\n function addDeprecatedSuggestionWorker(declarations, diagnostic) {\n const deprecatedTag = Array.isArray(declarations) ? forEach(declarations, getJSDocDeprecatedTag) : getJSDocDeprecatedTag(declarations);\n if (deprecatedTag) {\n addRelatedInfo(\n diagnostic,\n createDiagnosticForNode(deprecatedTag, Diagnostics.The_declaration_was_marked_as_deprecated_here)\n );\n }\n suggestionDiagnostics.add(diagnostic);\n return diagnostic;\n }\n function isDeprecatedSymbol(symbol) {\n const parentSymbol = getParentOfSymbol(symbol);\n if (parentSymbol && length(symbol.declarations) > 1) {\n return parentSymbol.flags & 64 /* Interface */ ? some(symbol.declarations, isDeprecatedDeclaration2) : every(symbol.declarations, isDeprecatedDeclaration2);\n }\n return !!symbol.valueDeclaration && isDeprecatedDeclaration2(symbol.valueDeclaration) || length(symbol.declarations) && every(symbol.declarations, isDeprecatedDeclaration2);\n }\n function isDeprecatedDeclaration2(declaration) {\n return !!(getCombinedNodeFlagsCached(declaration) & 536870912 /* Deprecated */);\n }\n function addDeprecatedSuggestion(location, declarations, deprecatedEntity) {\n const diagnostic = createDiagnosticForNode(location, Diagnostics._0_is_deprecated, deprecatedEntity);\n return addDeprecatedSuggestionWorker(declarations, diagnostic);\n }\n function addDeprecatedSuggestionWithSignature(location, declaration, deprecatedEntity, signatureString) {\n const diagnostic = deprecatedEntity ? createDiagnosticForNode(location, Diagnostics.The_signature_0_of_1_is_deprecated, signatureString, deprecatedEntity) : createDiagnosticForNode(location, Diagnostics._0_is_deprecated, signatureString);\n return addDeprecatedSuggestionWorker(declaration, diagnostic);\n }\n function createSymbol(flags, name, checkFlags) {\n symbolCount++;\n const symbol = new Symbol48(flags | 33554432 /* Transient */, name);\n symbol.links = new SymbolLinks();\n symbol.links.checkFlags = checkFlags || 0 /* None */;\n return symbol;\n }\n function createParameter2(name, type) {\n const symbol = createSymbol(1 /* FunctionScopedVariable */, name);\n symbol.links.type = type;\n return symbol;\n }\n function createProperty(name, type) {\n const symbol = createSymbol(4 /* Property */, name);\n symbol.links.type = type;\n return symbol;\n }\n function getExcludedSymbolFlags(flags) {\n let result = 0;\n if (flags & 2 /* BlockScopedVariable */) result |= 111551 /* BlockScopedVariableExcludes */;\n if (flags & 1 /* FunctionScopedVariable */) result |= 111550 /* FunctionScopedVariableExcludes */;\n if (flags & 4 /* Property */) result |= 0 /* PropertyExcludes */;\n if (flags & 8 /* EnumMember */) result |= 900095 /* EnumMemberExcludes */;\n if (flags & 16 /* Function */) result |= 110991 /* FunctionExcludes */;\n if (flags & 32 /* Class */) result |= 899503 /* ClassExcludes */;\n if (flags & 64 /* Interface */) result |= 788872 /* InterfaceExcludes */;\n if (flags & 256 /* RegularEnum */) result |= 899327 /* RegularEnumExcludes */;\n if (flags & 128 /* ConstEnum */) result |= 899967 /* ConstEnumExcludes */;\n if (flags & 512 /* ValueModule */) result |= 110735 /* ValueModuleExcludes */;\n if (flags & 8192 /* Method */) result |= 103359 /* MethodExcludes */;\n if (flags & 32768 /* GetAccessor */) result |= 46015 /* GetAccessorExcludes */;\n if (flags & 65536 /* SetAccessor */) result |= 78783 /* SetAccessorExcludes */;\n if (flags & 262144 /* TypeParameter */) result |= 526824 /* TypeParameterExcludes */;\n if (flags & 524288 /* TypeAlias */) result |= 788968 /* TypeAliasExcludes */;\n if (flags & 2097152 /* Alias */) result |= 2097152 /* AliasExcludes */;\n return result;\n }\n function recordMergedSymbol(target, source) {\n if (!source.mergeId) {\n source.mergeId = nextMergeId;\n nextMergeId++;\n }\n mergedSymbols[source.mergeId] = target;\n }\n function cloneSymbol(symbol) {\n const result = createSymbol(symbol.flags, symbol.escapedName);\n result.declarations = symbol.declarations ? symbol.declarations.slice() : [];\n result.parent = symbol.parent;\n if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration;\n if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true;\n if (symbol.members) result.members = new Map(symbol.members);\n if (symbol.exports) result.exports = new Map(symbol.exports);\n recordMergedSymbol(result, symbol);\n return result;\n }\n function mergeSymbol(target, source, unidirectional = false) {\n if (!(target.flags & getExcludedSymbolFlags(source.flags)) || (source.flags | target.flags) & 67108864 /* Assignment */) {\n if (source === target) {\n return target;\n }\n if (!(target.flags & 33554432 /* Transient */)) {\n const resolvedTarget = resolveSymbol(target);\n if (resolvedTarget === unknownSymbol) {\n return source;\n }\n if (!(resolvedTarget.flags & getExcludedSymbolFlags(source.flags)) || (source.flags | resolvedTarget.flags) & 67108864 /* Assignment */) {\n target = cloneSymbol(resolvedTarget);\n } else {\n reportMergeSymbolError(target, source);\n return source;\n }\n }\n if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && target.constEnumOnlyModule && !source.constEnumOnlyModule) {\n target.constEnumOnlyModule = false;\n }\n target.flags |= source.flags;\n if (source.valueDeclaration) {\n setValueDeclaration(target, source.valueDeclaration);\n }\n addRange(target.declarations, source.declarations);\n if (source.members) {\n if (!target.members) target.members = createSymbolTable();\n mergeSymbolTable(target.members, source.members, unidirectional);\n }\n if (source.exports) {\n if (!target.exports) target.exports = createSymbolTable();\n mergeSymbolTable(target.exports, source.exports, unidirectional, target);\n }\n if (!unidirectional) {\n recordMergedSymbol(target, source);\n }\n } else if (target.flags & 1024 /* NamespaceModule */) {\n if (target !== globalThisSymbol) {\n error2(\n source.declarations && getNameOfDeclaration(source.declarations[0]),\n Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,\n symbolToString(target)\n );\n }\n } else {\n reportMergeSymbolError(target, source);\n }\n return target;\n function reportMergeSymbolError(target2, source2) {\n const isEitherEnum = !!(target2.flags & 384 /* Enum */ || source2.flags & 384 /* Enum */);\n const isEitherBlockScoped = !!(target2.flags & 2 /* BlockScopedVariable */ || source2.flags & 2 /* BlockScopedVariable */);\n const message = isEitherEnum ? Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations : isEitherBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n const sourceSymbolFile = source2.declarations && getSourceFileOfNode(source2.declarations[0]);\n const targetSymbolFile = target2.declarations && getSourceFileOfNode(target2.declarations[0]);\n const isSourcePlainJs = isPlainJsFile(sourceSymbolFile, compilerOptions.checkJs);\n const isTargetPlainJs = isPlainJsFile(targetSymbolFile, compilerOptions.checkJs);\n const symbolName2 = symbolToString(source2);\n if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {\n const firstFile = comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile;\n const secondFile = firstFile === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;\n const filesDuplicates = getOrUpdate(amalgamatedDuplicates, `${firstFile.path}|${secondFile.path}`, () => ({ firstFile, secondFile, conflictingSymbols: /* @__PURE__ */ new Map() }));\n const conflictingSymbolInfo = getOrUpdate(filesDuplicates.conflictingSymbols, symbolName2, () => ({ isBlockScoped: isEitherBlockScoped, firstFileLocations: [], secondFileLocations: [] }));\n if (!isSourcePlainJs) addDuplicateLocations(conflictingSymbolInfo.firstFileLocations, source2);\n if (!isTargetPlainJs) addDuplicateLocations(conflictingSymbolInfo.secondFileLocations, target2);\n } else {\n if (!isSourcePlainJs) addDuplicateDeclarationErrorsForSymbols(source2, message, symbolName2, target2);\n if (!isTargetPlainJs) addDuplicateDeclarationErrorsForSymbols(target2, message, symbolName2, source2);\n }\n }\n function addDuplicateLocations(locs, symbol) {\n if (symbol.declarations) {\n for (const decl of symbol.declarations) {\n pushIfUnique(locs, decl);\n }\n }\n }\n }\n function addDuplicateDeclarationErrorsForSymbols(target, message, symbolName2, source) {\n forEach(target.declarations, (node) => {\n addDuplicateDeclarationError(node, message, symbolName2, source.declarations);\n });\n }\n function addDuplicateDeclarationError(node, message, symbolName2, relatedNodes) {\n const errorNode = (getExpandoInitializer(\n node,\n /*isPrototypeAssignment*/\n false\n ) ? getNameOfExpando(node) : getNameOfDeclaration(node)) || node;\n const err = lookupOrIssueError(errorNode, message, symbolName2);\n for (const relatedNode of relatedNodes || emptyArray) {\n const adjustedNode = (getExpandoInitializer(\n relatedNode,\n /*isPrototypeAssignment*/\n false\n ) ? getNameOfExpando(relatedNode) : getNameOfDeclaration(relatedNode)) || relatedNode;\n if (adjustedNode === errorNode) continue;\n err.relatedInformation = err.relatedInformation || [];\n const leadingMessage = createDiagnosticForNode(adjustedNode, Diagnostics._0_was_also_declared_here, symbolName2);\n const followOnMessage = createDiagnosticForNode(adjustedNode, Diagnostics.and_here);\n if (length(err.relatedInformation) >= 5 || some(err.relatedInformation, (r) => compareDiagnostics(r, followOnMessage) === 0 /* EqualTo */ || compareDiagnostics(r, leadingMessage) === 0 /* EqualTo */)) continue;\n addRelatedInfo(err, !length(err.relatedInformation) ? leadingMessage : followOnMessage);\n }\n }\n function combineSymbolTables(first2, second) {\n if (!(first2 == null ? void 0 : first2.size)) return second;\n if (!(second == null ? void 0 : second.size)) return first2;\n const combined = createSymbolTable();\n mergeSymbolTable(combined, first2);\n mergeSymbolTable(combined, second);\n return combined;\n }\n function mergeSymbolTable(target, source, unidirectional = false, mergedParent) {\n source.forEach((sourceSymbol, id) => {\n const targetSymbol = target.get(id);\n const merged = targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : getMergedSymbol(sourceSymbol);\n if (mergedParent && targetSymbol) {\n merged.parent = mergedParent;\n }\n target.set(id, merged);\n });\n }\n function mergeModuleAugmentation(moduleName) {\n var _a, _b, _c;\n const moduleAugmentation = moduleName.parent;\n if (((_a = moduleAugmentation.symbol.declarations) == null ? void 0 : _a[0]) !== moduleAugmentation) {\n Debug.assert(moduleAugmentation.symbol.declarations.length > 1);\n return;\n }\n if (isGlobalScopeAugmentation(moduleAugmentation)) {\n mergeSymbolTable(globals, moduleAugmentation.symbol.exports);\n } else {\n const moduleNotFoundError = !(moduleName.parent.parent.flags & 33554432 /* Ambient */) ? Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found : void 0;\n let mainModule = resolveExternalModuleNameWorker(\n moduleName,\n moduleName,\n moduleNotFoundError,\n /*ignoreErrors*/\n false,\n /*isForAugmentation*/\n true\n );\n if (!mainModule) {\n return;\n }\n mainModule = resolveExternalModuleSymbol(mainModule);\n if (mainModule.flags & 1920 /* Namespace */) {\n if (some(patternAmbientModules, (module2) => mainModule === module2.symbol)) {\n const merged = mergeSymbol(\n moduleAugmentation.symbol,\n mainModule,\n /*unidirectional*/\n true\n );\n if (!patternAmbientModuleAugmentations) {\n patternAmbientModuleAugmentations = /* @__PURE__ */ new Map();\n }\n patternAmbientModuleAugmentations.set(moduleName.text, merged);\n } else {\n if (((_b = mainModule.exports) == null ? void 0 : _b.get(\"__export\" /* ExportStar */)) && ((_c = moduleAugmentation.symbol.exports) == null ? void 0 : _c.size)) {\n const resolvedExports = getResolvedMembersOrExportsOfSymbol(mainModule, \"resolvedExports\" /* resolvedExports */);\n for (const [key, value] of arrayFrom(moduleAugmentation.symbol.exports.entries())) {\n if (resolvedExports.has(key) && !mainModule.exports.has(key)) {\n mergeSymbol(resolvedExports.get(key), value);\n }\n }\n }\n mergeSymbol(mainModule, moduleAugmentation.symbol);\n }\n } else {\n error2(moduleName, Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity, moduleName.text);\n }\n }\n }\n function addUndefinedToGlobalsOrErrorOnRedeclaration() {\n const name = undefinedSymbol.escapedName;\n const targetSymbol = globals.get(name);\n if (targetSymbol) {\n forEach(targetSymbol.declarations, (declaration) => {\n if (!isTypeDeclaration(declaration)) {\n diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, unescapeLeadingUnderscores(name)));\n }\n });\n } else {\n globals.set(name, undefinedSymbol);\n }\n }\n function getSymbolLinks(symbol) {\n if (symbol.flags & 33554432 /* Transient */) return symbol.links;\n const id = getSymbolId(symbol);\n return symbolLinks[id] ?? (symbolLinks[id] = new SymbolLinks());\n }\n function getNodeLinks(node) {\n const nodeId = getNodeId(node);\n return nodeLinks[nodeId] || (nodeLinks[nodeId] = new NodeLinks());\n }\n function getSymbol2(symbols, name, meaning) {\n if (meaning) {\n const symbol = getMergedSymbol(symbols.get(name));\n if (symbol) {\n if (symbol.flags & meaning) {\n return symbol;\n }\n if (symbol.flags & 2097152 /* Alias */) {\n const targetFlags = getSymbolFlags(symbol);\n if (targetFlags & meaning) {\n return symbol;\n }\n }\n }\n }\n }\n function getSymbolsOfParameterPropertyDeclaration(parameter, parameterName) {\n const constructorDeclaration = parameter.parent;\n const classDeclaration = parameter.parent.parent;\n const parameterSymbol = getSymbol2(constructorDeclaration.locals, parameterName, 111551 /* Value */);\n const propertySymbol = getSymbol2(getMembersOfSymbol(classDeclaration.symbol), parameterName, 111551 /* Value */);\n if (parameterSymbol && propertySymbol) {\n return [parameterSymbol, propertySymbol];\n }\n return Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\");\n }\n function isBlockScopedNameDeclaredBeforeUse(declaration, usage) {\n const declarationFile = getSourceFileOfNode(declaration);\n const useFile = getSourceFileOfNode(usage);\n const declContainer = getEnclosingBlockScopeContainer(declaration);\n if (declarationFile !== useFile) {\n if (moduleKind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator) || !compilerOptions.outFile || isInTypeQuery(usage) || declaration.flags & 33554432 /* Ambient */) {\n return true;\n }\n if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {\n return true;\n }\n const sourceFiles = host.getSourceFiles();\n return sourceFiles.indexOf(declarationFile) <= sourceFiles.indexOf(useFile);\n }\n if (!!(usage.flags & 16777216 /* JSDoc */) || isInTypeQuery(usage) || isInAmbientOrTypeNode(usage)) {\n return true;\n }\n if (declaration.pos <= usage.pos && !(isPropertyDeclaration(declaration) && isThisProperty(usage.parent) && !declaration.initializer && !declaration.exclamationToken)) {\n if (declaration.kind === 209 /* BindingElement */) {\n const errorBindingElement = getAncestor(usage, 209 /* BindingElement */);\n if (errorBindingElement) {\n return findAncestor(errorBindingElement, isBindingElement) !== findAncestor(declaration, isBindingElement) || declaration.pos < errorBindingElement.pos;\n }\n return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 261 /* VariableDeclaration */), usage);\n } else if (declaration.kind === 261 /* VariableDeclaration */) {\n return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);\n } else if (isClassLike(declaration)) {\n const container = findAncestor(usage, (n) => n === declaration ? \"quit\" : isComputedPropertyName(n) ? n.parent.parent === declaration : !legacyDecorators && isDecorator(n) && (n.parent === declaration || isMethodDeclaration(n.parent) && n.parent.parent === declaration || isGetOrSetAccessorDeclaration(n.parent) && n.parent.parent === declaration || isPropertyDeclaration(n.parent) && n.parent.parent === declaration || isParameter(n.parent) && n.parent.parent.parent === declaration));\n if (!container) {\n return true;\n }\n if (!legacyDecorators && isDecorator(container)) {\n return !!findAncestor(usage, (n) => n === container ? \"quit\" : isFunctionLike(n) && !getImmediatelyInvokedFunctionExpression(n));\n }\n return false;\n } else if (isPropertyDeclaration(declaration)) {\n return !isPropertyImmediatelyReferencedWithinDeclaration(\n declaration,\n usage,\n /*stopAtAnyPropertyDeclaration*/\n false\n );\n } else if (isParameterPropertyDeclaration(declaration, declaration.parent)) {\n return !(emitStandardClassFields && getContainingClass(declaration) === getContainingClass(usage) && isUsedInFunctionOrInstanceProperty(usage, declaration));\n }\n return true;\n }\n if (usage.parent.kind === 282 /* ExportSpecifier */ || usage.parent.kind === 278 /* ExportAssignment */ && usage.parent.isExportEquals) {\n return true;\n }\n if (usage.kind === 278 /* ExportAssignment */ && usage.isExportEquals) {\n return true;\n }\n if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {\n if (emitStandardClassFields && getContainingClass(declaration) && (isPropertyDeclaration(declaration) || isParameterPropertyDeclaration(declaration, declaration.parent))) {\n return !isPropertyImmediatelyReferencedWithinDeclaration(\n declaration,\n usage,\n /*stopAtAnyPropertyDeclaration*/\n true\n );\n } else {\n return true;\n }\n }\n return false;\n function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration2, usage2) {\n switch (declaration2.parent.parent.kind) {\n case 244 /* VariableStatement */:\n case 249 /* ForStatement */:\n case 251 /* ForOfStatement */:\n if (isSameScopeDescendentOf(usage2, declaration2, declContainer)) {\n return true;\n }\n break;\n }\n const grandparent = declaration2.parent.parent;\n return isForInOrOfStatement(grandparent) && isSameScopeDescendentOf(usage2, grandparent.expression, declContainer);\n }\n function isUsedInFunctionOrInstanceProperty(usage2, declaration2) {\n return isUsedInFunctionOrInstancePropertyWorker(usage2, declaration2);\n }\n function isUsedInFunctionOrInstancePropertyWorker(usage2, declaration2) {\n return !!findAncestor(usage2, (current) => {\n if (current === declContainer) {\n return \"quit\";\n }\n if (isFunctionLike(current)) {\n return !getImmediatelyInvokedFunctionExpression(current);\n }\n if (isClassStaticBlockDeclaration(current)) {\n return declaration2.pos < usage2.pos;\n }\n const propertyDeclaration = tryCast(current.parent, isPropertyDeclaration);\n if (propertyDeclaration) {\n const initializerOfProperty = propertyDeclaration.initializer === current;\n if (initializerOfProperty) {\n if (isStatic(current.parent)) {\n if (declaration2.kind === 175 /* MethodDeclaration */) {\n return true;\n }\n if (isPropertyDeclaration(declaration2) && getContainingClass(usage2) === getContainingClass(declaration2)) {\n const propName = declaration2.name;\n if (isIdentifier(propName) || isPrivateIdentifier(propName)) {\n const type = getTypeOfSymbol(getSymbolOfDeclaration(declaration2));\n const staticBlocks = filter(declaration2.parent.members, isClassStaticBlockDeclaration);\n if (isPropertyInitializedInStaticBlocks(propName, type, staticBlocks, declaration2.parent.pos, current.pos)) {\n return true;\n }\n }\n }\n } else {\n const isDeclarationInstanceProperty = declaration2.kind === 173 /* PropertyDeclaration */ && !isStatic(declaration2);\n if (!isDeclarationInstanceProperty || getContainingClass(usage2) !== getContainingClass(declaration2)) {\n return true;\n }\n }\n }\n }\n const decorator = tryCast(current.parent, isDecorator);\n if (decorator && decorator.expression === current) {\n if (isParameter(decorator.parent)) {\n return isUsedInFunctionOrInstancePropertyWorker(decorator.parent.parent.parent, declaration2) ? true : \"quit\";\n }\n if (isMethodDeclaration(decorator.parent)) {\n return isUsedInFunctionOrInstancePropertyWorker(decorator.parent.parent, declaration2) ? true : \"quit\";\n }\n }\n return false;\n });\n }\n function isPropertyImmediatelyReferencedWithinDeclaration(declaration2, usage2, stopAtAnyPropertyDeclaration) {\n if (usage2.end > declaration2.end) {\n return false;\n }\n const ancestorChangingReferenceScope = findAncestor(usage2, (node) => {\n if (node === declaration2) {\n return \"quit\";\n }\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n return true;\n case 173 /* PropertyDeclaration */:\n return stopAtAnyPropertyDeclaration && (isPropertyDeclaration(declaration2) && node.parent === declaration2.parent || isParameterPropertyDeclaration(declaration2, declaration2.parent) && node.parent === declaration2.parent.parent) ? \"quit\" : true;\n case 242 /* Block */:\n switch (node.parent.kind) {\n case 178 /* GetAccessor */:\n case 175 /* MethodDeclaration */:\n case 179 /* SetAccessor */:\n return true;\n default:\n return false;\n }\n default:\n return false;\n }\n });\n return ancestorChangingReferenceScope === void 0;\n }\n }\n function getRequiresScopeChangeCache(node) {\n return getNodeLinks(node).declarationRequiresScopeChange;\n }\n function setRequiresScopeChangeCache(node, value) {\n getNodeLinks(node).declarationRequiresScopeChange = value;\n }\n function checkAndReportErrorForInvalidInitializer(errorLocation, name, propertyWithInvalidInitializer, result) {\n if (!emitStandardClassFields) {\n if (errorLocation && !result && checkAndReportErrorForMissingPrefix(errorLocation, name, name)) {\n return true;\n }\n error2(\n errorLocation,\n errorLocation && propertyWithInvalidInitializer.type && textRangeContainsPositionInclusive(propertyWithInvalidInitializer.type, errorLocation.pos) ? Diagnostics.Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor : Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,\n declarationNameToString(propertyWithInvalidInitializer.name),\n diagnosticName(name)\n );\n return true;\n }\n return false;\n }\n function onFailedToResolveSymbol(errorLocation, nameArg, meaning, nameNotFoundMessage) {\n const name = isString(nameArg) ? nameArg : nameArg.escapedText;\n addLazyDiagnostic(() => {\n if (!errorLocation || errorLocation.parent.kind !== 325 /* JSDocLink */ && !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) && !checkAndReportErrorForExtendingInterface(errorLocation) && !checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) && !checkAndReportErrorForExportingPrimitiveType(errorLocation, name) && !checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) {\n let suggestion;\n let suggestedLib;\n if (nameArg) {\n suggestedLib = getSuggestedLibForNonExistentName(nameArg);\n if (suggestedLib) {\n error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg), suggestedLib);\n }\n }\n if (!suggestedLib && suggestionCount < maximumSuggestionCount) {\n suggestion = getSuggestedSymbolForNonexistentSymbol(errorLocation, name, meaning);\n const isGlobalScopeAugmentationDeclaration = (suggestion == null ? void 0 : suggestion.valueDeclaration) && isAmbientModule(suggestion.valueDeclaration) && isGlobalScopeAugmentation(suggestion.valueDeclaration);\n if (isGlobalScopeAugmentationDeclaration) {\n suggestion = void 0;\n }\n if (suggestion) {\n const suggestionName = symbolToString(suggestion);\n const isUncheckedJS = isUncheckedJSSuggestion(\n errorLocation,\n suggestion,\n /*excludeClasses*/\n false\n );\n const message = meaning === 1920 /* Namespace */ || nameArg && typeof nameArg !== \"string\" && nodeIsSynthesized(nameArg) ? Diagnostics.Cannot_find_namespace_0_Did_you_mean_1 : isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 : Diagnostics.Cannot_find_name_0_Did_you_mean_1;\n const diagnostic = createError(errorLocation, message, diagnosticName(nameArg), suggestionName);\n diagnostic.canonicalHead = getCanonicalDiagnostic(nameNotFoundMessage, diagnosticName(nameArg));\n addErrorOrSuggestion(!isUncheckedJS, diagnostic);\n if (suggestion.valueDeclaration) {\n addRelatedInfo(\n diagnostic,\n createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName)\n );\n }\n }\n }\n if (!suggestion && !suggestedLib && nameArg) {\n error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg));\n }\n suggestionCount++;\n }\n });\n }\n function onSuccessfullyResolvedSymbol(errorLocation, result, meaning, lastLocation, associatedDeclarationForContainingInitializerOrBindingName, withinDeferredContext) {\n addLazyDiagnostic(() => {\n var _a;\n const name = result.escapedName;\n const isInExternalModule = lastLocation && isSourceFile(lastLocation) && isExternalOrCommonJsModule(lastLocation);\n if (errorLocation && (meaning & 2 /* BlockScopedVariable */ || (meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 111551 /* Value */) === 111551 /* Value */)) {\n const exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);\n if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) {\n checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);\n }\n }\n if (isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */ && !(errorLocation.flags & 16777216 /* JSDoc */)) {\n const merged = getMergedSymbol(result);\n if (length(merged.declarations) && every(merged.declarations, (d) => isNamespaceExportDeclaration(d) || isSourceFile(d) && !!d.symbol.globalExports)) {\n errorOrSuggestion(!compilerOptions.allowUmdGlobalAccess, errorLocation, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, unescapeLeadingUnderscores(name));\n }\n }\n if (associatedDeclarationForContainingInitializerOrBindingName && !withinDeferredContext && (meaning & 111551 /* Value */) === 111551 /* Value */) {\n const candidate = getMergedSymbol(getLateBoundSymbol(result));\n const root = getRootDeclaration(associatedDeclarationForContainingInitializerOrBindingName);\n if (candidate === getSymbolOfDeclaration(associatedDeclarationForContainingInitializerOrBindingName)) {\n error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_itself, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name));\n } else if (candidate.valueDeclaration && candidate.valueDeclaration.pos > associatedDeclarationForContainingInitializerOrBindingName.pos && root.parent.locals && getSymbol2(root.parent.locals, candidate.escapedName, meaning) === candidate) {\n error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation));\n }\n }\n if (errorLocation && meaning & 111551 /* Value */ && result.flags & 2097152 /* Alias */ && !(result.flags & 111551 /* Value */) && !isValidTypeOnlyAliasUseSite(errorLocation)) {\n const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(result, 111551 /* Value */);\n if (typeOnlyDeclaration) {\n const message = typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 281 /* NamespaceExport */ ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type;\n const unescapedName = unescapeLeadingUnderscores(name);\n addTypeOnlyDeclarationRelatedInfo(\n error2(errorLocation, message, unescapedName),\n typeOnlyDeclaration,\n unescapedName\n );\n }\n }\n if (compilerOptions.isolatedModules && result && isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */) {\n const isGlobal = getSymbol2(globals, name, meaning) === result;\n const nonValueSymbol = isGlobal && isSourceFile(lastLocation) && lastLocation.locals && getSymbol2(lastLocation.locals, name, ~111551 /* Value */);\n if (nonValueSymbol) {\n const importDecl = (_a = nonValueSymbol.declarations) == null ? void 0 : _a.find((d) => d.kind === 277 /* ImportSpecifier */ || d.kind === 274 /* ImportClause */ || d.kind === 275 /* NamespaceImport */ || d.kind === 272 /* ImportEqualsDeclaration */);\n if (importDecl && !isTypeOnlyImportDeclaration(importDecl)) {\n error2(importDecl, Diagnostics.Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled, unescapeLeadingUnderscores(name));\n }\n }\n }\n });\n }\n function addTypeOnlyDeclarationRelatedInfo(diagnostic, typeOnlyDeclaration, unescapedName) {\n if (!typeOnlyDeclaration) return diagnostic;\n return addRelatedInfo(\n diagnostic,\n createDiagnosticForNode(\n typeOnlyDeclaration,\n typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 281 /* NamespaceExport */ ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here,\n unescapedName\n )\n );\n }\n function diagnosticName(nameArg) {\n return isString(nameArg) ? unescapeLeadingUnderscores(nameArg) : declarationNameToString(nameArg);\n }\n function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) {\n if (!isIdentifier(errorLocation) || errorLocation.escapedText !== name || isTypeReferenceIdentifier(errorLocation) || isInTypeQuery(errorLocation)) {\n return false;\n }\n const container = getThisContainer(\n errorLocation,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n let location = container;\n while (location) {\n if (isClassLike(location.parent)) {\n const classSymbol = getSymbolOfDeclaration(location.parent);\n if (!classSymbol) {\n break;\n }\n const constructorType = getTypeOfSymbol(classSymbol);\n if (getPropertyOfType(constructorType, name)) {\n error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, diagnosticName(nameArg), symbolToString(classSymbol));\n return true;\n }\n if (location === container && !isStatic(location)) {\n const instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType;\n if (getPropertyOfType(instanceType, name)) {\n error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, diagnosticName(nameArg));\n return true;\n }\n }\n }\n location = location.parent;\n }\n return false;\n }\n function checkAndReportErrorForExtendingInterface(errorLocation) {\n const expression = getEntityNameForExtendingInterface(errorLocation);\n if (expression && resolveEntityName(\n expression,\n 64 /* Interface */,\n /*ignoreErrors*/\n true\n )) {\n error2(errorLocation, Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements, getTextOfNode(expression));\n return true;\n }\n return false;\n }\n function getEntityNameForExtendingInterface(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 212 /* PropertyAccessExpression */:\n return node.parent ? getEntityNameForExtendingInterface(node.parent) : void 0;\n case 234 /* ExpressionWithTypeArguments */:\n if (isEntityNameExpression(node.expression)) {\n return node.expression;\n }\n // falls through\n default:\n return void 0;\n }\n }\n function checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) {\n const namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(errorLocation) ? 111551 /* Value */ : 0);\n if (meaning === namespaceMeaning) {\n const symbol = resolveSymbol(resolveName(\n errorLocation,\n name,\n 788968 /* Type */ & ~namespaceMeaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n ));\n const parent2 = errorLocation.parent;\n if (symbol) {\n if (isQualifiedName(parent2)) {\n Debug.assert(parent2.left === errorLocation, \"Should only be resolving left side of qualified name as a namespace\");\n const propName = parent2.right.escapedText;\n const propType = getPropertyOfType(getDeclaredTypeOfSymbol(symbol), propName);\n if (propType) {\n error2(\n parent2,\n Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,\n unescapeLeadingUnderscores(name),\n unescapeLeadingUnderscores(propName)\n );\n return true;\n }\n }\n error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here, unescapeLeadingUnderscores(name));\n return true;\n }\n }\n return false;\n }\n function checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning) {\n if (meaning & (788968 /* Type */ & ~1920 /* Namespace */)) {\n const symbol = resolveSymbol(resolveName(\n errorLocation,\n name,\n ~788968 /* Type */ & 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n ));\n if (symbol && !(symbol.flags & 1920 /* Namespace */)) {\n error2(errorLocation, Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, unescapeLeadingUnderscores(name));\n return true;\n }\n }\n return false;\n }\n function isPrimitiveTypeName(name) {\n return name === \"any\" || name === \"string\" || name === \"number\" || name === \"boolean\" || name === \"never\" || name === \"unknown\";\n }\n function checkAndReportErrorForExportingPrimitiveType(errorLocation, name) {\n if (isPrimitiveTypeName(name) && errorLocation.parent.kind === 282 /* ExportSpecifier */) {\n error2(errorLocation, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, name);\n return true;\n }\n return false;\n }\n function checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) {\n if (meaning & 111551 /* Value */) {\n if (isPrimitiveTypeName(name)) {\n const grandparent = errorLocation.parent.parent;\n if (grandparent && grandparent.parent && isHeritageClause(grandparent)) {\n const heritageKind = grandparent.token;\n const containerKind = grandparent.parent.kind;\n if (containerKind === 265 /* InterfaceDeclaration */ && heritageKind === 96 /* ExtendsKeyword */) {\n error2(errorLocation, Diagnostics.An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types, unescapeLeadingUnderscores(name));\n } else if (isClassLike(grandparent.parent) && heritageKind === 96 /* ExtendsKeyword */) {\n error2(errorLocation, Diagnostics.A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values, unescapeLeadingUnderscores(name));\n } else if (isClassLike(grandparent.parent) && heritageKind === 119 /* ImplementsKeyword */) {\n error2(errorLocation, Diagnostics.A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types, unescapeLeadingUnderscores(name));\n }\n } else {\n error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, unescapeLeadingUnderscores(name));\n }\n return true;\n }\n const symbol = resolveSymbol(resolveName(\n errorLocation,\n name,\n 788968 /* Type */ & ~111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n ));\n const allFlags = symbol && getSymbolFlags(symbol);\n if (symbol && allFlags !== void 0 && !(allFlags & 111551 /* Value */)) {\n const rawName = unescapeLeadingUnderscores(name);\n if (isES2015OrLaterConstructorName(name)) {\n error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later, rawName);\n } else if (maybeMappedType(errorLocation, symbol)) {\n error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0, rawName, rawName === \"K\" ? \"P\" : \"K\");\n } else {\n error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, rawName);\n }\n return true;\n }\n }\n return false;\n }\n function maybeMappedType(node, symbol) {\n const container = findAncestor(node.parent, (n) => isComputedPropertyName(n) || isPropertySignature(n) ? false : isTypeLiteralNode(n) || \"quit\");\n if (container && container.members.length === 1) {\n const type = getDeclaredTypeOfSymbol(symbol);\n return !!(type.flags & 1048576 /* Union */) && allTypesAssignableToKind(\n type,\n 384 /* StringOrNumberLiteral */,\n /*strict*/\n true\n );\n }\n return false;\n }\n function isES2015OrLaterConstructorName(n) {\n switch (n) {\n case \"Promise\":\n case \"Symbol\":\n case \"Map\":\n case \"WeakMap\":\n case \"Set\":\n case \"WeakSet\":\n return true;\n }\n return false;\n }\n function checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) {\n if (meaning & (111551 /* Value */ & ~788968 /* Type */)) {\n const symbol = resolveSymbol(resolveName(\n errorLocation,\n name,\n 1024 /* NamespaceModule */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n ));\n if (symbol) {\n error2(\n errorLocation,\n Diagnostics.Cannot_use_namespace_0_as_a_value,\n unescapeLeadingUnderscores(name)\n );\n return true;\n }\n } else if (meaning & (788968 /* Type */ & ~111551 /* Value */)) {\n const symbol = resolveSymbol(resolveName(\n errorLocation,\n name,\n 1536 /* Module */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n ));\n if (symbol) {\n error2(errorLocation, Diagnostics.Cannot_use_namespace_0_as_a_type, unescapeLeadingUnderscores(name));\n return true;\n }\n }\n return false;\n }\n function checkResolvedBlockScopedVariable(result, errorLocation) {\n var _a;\n Debug.assert(!!(result.flags & 2 /* BlockScopedVariable */ || result.flags & 32 /* Class */ || result.flags & 384 /* Enum */));\n if (result.flags & (16 /* Function */ | 1 /* FunctionScopedVariable */ | 67108864 /* Assignment */) && result.flags & 32 /* Class */) {\n return;\n }\n const declaration = (_a = result.declarations) == null ? void 0 : _a.find(\n (d) => isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 267 /* EnumDeclaration */\n );\n if (declaration === void 0) return Debug.fail(\"checkResolvedBlockScopedVariable could not find block-scoped declaration\");\n if (!(declaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {\n let diagnosticMessage;\n const declarationName = declarationNameToString(getNameOfDeclaration(declaration));\n if (result.flags & 2 /* BlockScopedVariable */) {\n diagnosticMessage = error2(errorLocation, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);\n } else if (result.flags & 32 /* Class */) {\n diagnosticMessage = error2(errorLocation, Diagnostics.Class_0_used_before_its_declaration, declarationName);\n } else if (result.flags & 256 /* RegularEnum */) {\n diagnosticMessage = error2(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);\n } else {\n Debug.assert(!!(result.flags & 128 /* ConstEnum */));\n if (getIsolatedModules(compilerOptions)) {\n diagnosticMessage = error2(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);\n }\n }\n if (diagnosticMessage) {\n addRelatedInfo(diagnosticMessage, createDiagnosticForNode(declaration, Diagnostics._0_is_declared_here, declarationName));\n }\n }\n }\n function isSameScopeDescendentOf(initial, parent2, stopAt) {\n return !!parent2 && !!findAncestor(initial, (n) => n === parent2 || (n === stopAt || isFunctionLike(n) && (!getImmediatelyInvokedFunctionExpression(n) || getFunctionFlags(n) & 3 /* AsyncGenerator */) ? \"quit\" : false));\n }\n function getAnyImportSyntax(node) {\n switch (node.kind) {\n case 272 /* ImportEqualsDeclaration */:\n return node;\n case 274 /* ImportClause */:\n return node.parent;\n case 275 /* NamespaceImport */:\n return node.parent.parent;\n case 277 /* ImportSpecifier */:\n return node.parent.parent.parent;\n default:\n return void 0;\n }\n }\n function getDeclarationOfAliasSymbol(symbol) {\n return symbol.declarations && findLast(symbol.declarations, isAliasSymbolDeclaration);\n }\n function isAliasSymbolDeclaration(node) {\n return node.kind === 272 /* ImportEqualsDeclaration */ || node.kind === 271 /* NamespaceExportDeclaration */ || node.kind === 274 /* ImportClause */ && !!node.name || node.kind === 275 /* NamespaceImport */ || node.kind === 281 /* NamespaceExport */ || node.kind === 277 /* ImportSpecifier */ || node.kind === 282 /* ExportSpecifier */ || node.kind === 278 /* ExportAssignment */ && exportAssignmentIsAlias(node) || isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 /* ModuleExports */ && exportAssignmentIsAlias(node) || isAccessExpression(node) && isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */ && isAliasableOrJsExpression(node.parent.right) || node.kind === 305 /* ShorthandPropertyAssignment */ || node.kind === 304 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer) || node.kind === 261 /* VariableDeclaration */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node) || node.kind === 209 /* BindingElement */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);\n }\n function isAliasableOrJsExpression(e) {\n return isAliasableExpression(e) || isFunctionExpression(e) && isJSConstructor(e);\n }\n function getTargetOfImportEqualsDeclaration(node, dontResolveAlias) {\n const commonJSPropertyAccess = getCommonJSPropertyAccess(node);\n if (commonJSPropertyAccess) {\n const name = getLeftmostAccessExpression(commonJSPropertyAccess.expression).arguments[0];\n return isIdentifier(commonJSPropertyAccess.name) ? resolveSymbol(getPropertyOfType(resolveExternalModuleTypeByLiteral(name), commonJSPropertyAccess.name.escapedText)) : void 0;\n }\n if (isVariableDeclaration(node) || node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n const immediate = resolveExternalModuleName(\n node,\n getExternalModuleRequireArgument(node) || getExternalModuleImportEqualsDeclarationExpression(node)\n );\n const resolved2 = resolveExternalModuleSymbol(immediate);\n if (resolved2 && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n const moduleExports = getExportOfModule(resolved2, \"module.exports\", node, dontResolveAlias);\n if (moduleExports) {\n return moduleExports;\n }\n }\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n immediate,\n resolved2,\n /*overwriteEmpty*/\n false\n );\n return resolved2;\n }\n const resolved = getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, dontResolveAlias);\n checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved);\n return resolved;\n }\n function checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved) {\n if (markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n /*immediateTarget*/\n void 0,\n resolved,\n /*overwriteEmpty*/\n false\n ) && !node.isTypeOnly) {\n const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(getSymbolOfDeclaration(node));\n const isExport = typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */;\n const message = isExport ? Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type : Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type;\n const relatedMessage = isExport ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here;\n const name = typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ ? \"*\" : moduleExportNameTextUnescaped(typeOnlyDeclaration.name);\n addRelatedInfo(error2(node.moduleReference, message), createDiagnosticForNode(typeOnlyDeclaration, relatedMessage, name));\n }\n }\n function resolveExportByName(moduleSymbol, name, sourceNode, dontResolveAlias) {\n const exportValue = moduleSymbol.exports.get(\"export=\" /* ExportEquals */);\n const exportSymbol = exportValue ? getPropertyOfType(\n getTypeOfSymbol(exportValue),\n name,\n /*skipObjectFunctionPropertyAugment*/\n true\n ) : moduleSymbol.exports.get(name);\n const resolved = resolveSymbol(exportSymbol, dontResolveAlias);\n markSymbolOfAliasDeclarationIfTypeOnly(\n sourceNode,\n exportSymbol,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function isSyntacticDefault(node) {\n return isExportAssignment(node) && !node.isExportEquals || hasSyntacticModifier(node, 2048 /* Default */) || isExportSpecifier(node) || isNamespaceExport(node);\n }\n function getEmitSyntaxForModuleSpecifierExpression(usage) {\n return isStringLiteralLike(usage) ? host.getEmitSyntaxForUsageLocation(getSourceFileOfNode(usage), usage) : void 0;\n }\n function isESMFormatImportImportingCommonjsFormatFile(usageMode, targetMode) {\n return usageMode === 99 /* ESNext */ && targetMode === 1 /* CommonJS */;\n }\n function isOnlyImportableAsDefault(usage, resolvedModule) {\n if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n const usageMode = getEmitSyntaxForModuleSpecifierExpression(usage);\n if (usageMode === 99 /* ESNext */) {\n resolvedModule ?? (resolvedModule = resolveExternalModuleName(\n usage,\n usage,\n /*ignoreErrors*/\n true\n ));\n const targetFile = resolvedModule && getSourceFileOfModule(resolvedModule);\n return targetFile && (isJsonSourceFile(targetFile) || getDeclarationFileExtension(targetFile.fileName) === \".d.json.ts\");\n }\n }\n return false;\n }\n function canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, usage) {\n const usageMode = file && getEmitSyntaxForModuleSpecifierExpression(usage);\n if (file && usageMode !== void 0) {\n const targetMode = host.getImpliedNodeFormatForEmit(file);\n if (usageMode === 99 /* ESNext */ && targetMode === 1 /* CommonJS */ && 100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n return true;\n }\n if (usageMode === 99 /* ESNext */ && targetMode === 99 /* ESNext */) {\n return false;\n }\n }\n if (!allowSyntheticDefaultImports) {\n return false;\n }\n if (!file || file.isDeclarationFile) {\n const defaultExportSymbol = resolveExportByName(\n moduleSymbol,\n \"default\" /* Default */,\n /*sourceNode*/\n void 0,\n /*dontResolveAlias*/\n true\n );\n if (defaultExportSymbol && some(defaultExportSymbol.declarations, isSyntacticDefault)) {\n return false;\n }\n if (resolveExportByName(\n moduleSymbol,\n escapeLeadingUnderscores(\"__esModule\"),\n /*sourceNode*/\n void 0,\n dontResolveAlias\n )) {\n return false;\n }\n return true;\n }\n if (!isSourceFileJS(file)) {\n return hasExportAssignmentSymbol(moduleSymbol);\n }\n return typeof file.externalModuleIndicator !== \"object\" && !resolveExportByName(\n moduleSymbol,\n escapeLeadingUnderscores(\"__esModule\"),\n /*sourceNode*/\n void 0,\n dontResolveAlias\n );\n }\n function getTargetOfImportClause(node, dontResolveAlias) {\n const moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);\n if (moduleSymbol) {\n return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);\n }\n }\n function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) {\n var _a;\n const file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n const specifier = getModuleSpecifierForImportOrExport(node);\n let exportDefaultSymbol;\n let exportModuleDotExportsSymbol;\n if (isShorthandAmbientModuleSymbol(moduleSymbol)) {\n exportDefaultSymbol = moduleSymbol;\n } else if (file && specifier && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && getEmitSyntaxForModuleSpecifierExpression(specifier) === 1 /* CommonJS */ && host.getImpliedNodeFormatForEmit(file) === 99 /* ESNext */ && (exportModuleDotExportsSymbol = resolveExportByName(moduleSymbol, \"module.exports\", node, dontResolveAlias))) {\n if (!getESModuleInterop(compilerOptions)) {\n error2(node.name, Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), \"esModuleInterop\");\n return void 0;\n }\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n exportModuleDotExportsSymbol,\n /*finalTarget*/\n void 0,\n /*overwriteEmpty*/\n false\n );\n return exportModuleDotExportsSymbol;\n } else {\n exportDefaultSymbol = resolveExportByName(moduleSymbol, \"default\" /* Default */, node, dontResolveAlias);\n }\n if (!specifier) {\n return exportDefaultSymbol;\n }\n const hasDefaultOnly = isOnlyImportableAsDefault(specifier, moduleSymbol);\n const hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier);\n if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {\n if (hasExportAssignmentSymbol(moduleSymbol) && !allowSyntheticDefaultImports) {\n const compilerOptionName = moduleKind >= 5 /* ES2015 */ ? \"allowSyntheticDefaultImports\" : \"esModuleInterop\";\n const exportEqualsSymbol = moduleSymbol.exports.get(\"export=\" /* ExportEquals */);\n const exportAssignment = exportEqualsSymbol.valueDeclaration;\n const err = error2(node.name, Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);\n if (exportAssignment) {\n addRelatedInfo(\n err,\n createDiagnosticForNode(\n exportAssignment,\n Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,\n compilerOptionName\n )\n );\n }\n } else if (isImportClause(node)) {\n reportNonDefaultExport(moduleSymbol, node);\n } else {\n errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, isImportOrExportSpecifier(node) && node.propertyName || node.name);\n }\n } else if (hasSyntheticDefault || hasDefaultOnly) {\n const resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n moduleSymbol,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n exportDefaultSymbol,\n /*finalTarget*/\n void 0,\n /*overwriteEmpty*/\n false\n );\n return exportDefaultSymbol;\n }\n function getModuleSpecifierForImportOrExport(node) {\n switch (node.kind) {\n case 274 /* ImportClause */:\n return node.parent.moduleSpecifier;\n case 272 /* ImportEqualsDeclaration */:\n return isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : void 0;\n case 275 /* NamespaceImport */:\n return node.parent.parent.moduleSpecifier;\n case 277 /* ImportSpecifier */:\n return node.parent.parent.parent.moduleSpecifier;\n case 282 /* ExportSpecifier */:\n return node.parent.parent.moduleSpecifier;\n default:\n return Debug.assertNever(node);\n }\n }\n function reportNonDefaultExport(moduleSymbol, node) {\n var _a, _b, _c;\n if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has(node.symbol.escapedName)) {\n error2(\n node.name,\n Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,\n symbolToString(moduleSymbol),\n symbolToString(node.symbol)\n );\n } else {\n const diagnostic = error2(node.name, Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol));\n const exportStar = (_b = moduleSymbol.exports) == null ? void 0 : _b.get(\"__export\" /* ExportStar */);\n if (exportStar) {\n const defaultExport = (_c = exportStar.declarations) == null ? void 0 : _c.find(\n (decl) => {\n var _a2, _b2;\n return !!(isExportDeclaration(decl) && decl.moduleSpecifier && ((_b2 = (_a2 = resolveExternalModuleName(decl, decl.moduleSpecifier)) == null ? void 0 : _a2.exports) == null ? void 0 : _b2.has(\"default\" /* Default */)));\n }\n );\n if (defaultExport) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(defaultExport, Diagnostics.export_Asterisk_does_not_re_export_a_default));\n }\n }\n }\n }\n function getTargetOfNamespaceImport(node, dontResolveAlias) {\n const moduleSpecifier = node.parent.parent.moduleSpecifier;\n const immediate = resolveExternalModuleName(node, moduleSpecifier);\n const resolved = resolveESModuleSymbol(\n immediate,\n moduleSpecifier,\n dontResolveAlias,\n /*suppressInteropError*/\n false\n );\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n immediate,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function getTargetOfNamespaceExport(node, dontResolveAlias) {\n const moduleSpecifier = node.parent.moduleSpecifier;\n const immediate = moduleSpecifier && resolveExternalModuleName(node, moduleSpecifier);\n const resolved = moduleSpecifier && resolveESModuleSymbol(\n immediate,\n moduleSpecifier,\n dontResolveAlias,\n /*suppressInteropError*/\n false\n );\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n immediate,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function combineValueAndTypeSymbols(valueSymbol, typeSymbol) {\n if (valueSymbol === unknownSymbol && typeSymbol === unknownSymbol) {\n return unknownSymbol;\n }\n if (valueSymbol.flags & (788968 /* Type */ | 1920 /* Namespace */)) {\n return valueSymbol;\n }\n const result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.escapedName);\n Debug.assert(valueSymbol.declarations || typeSymbol.declarations);\n result.declarations = deduplicate(concatenate(valueSymbol.declarations, typeSymbol.declarations), equateValues);\n result.parent = valueSymbol.parent || typeSymbol.parent;\n if (valueSymbol.valueDeclaration) result.valueDeclaration = valueSymbol.valueDeclaration;\n if (typeSymbol.members) result.members = new Map(typeSymbol.members);\n if (valueSymbol.exports) result.exports = new Map(valueSymbol.exports);\n return result;\n }\n function getExportOfModule(symbol, nameText, specifier, dontResolveAlias) {\n var _a;\n if (symbol.flags & 1536 /* Module */) {\n const exportSymbol = getExportsOfSymbol(symbol).get(nameText);\n const resolved = resolveSymbol(exportSymbol, dontResolveAlias);\n const exportStarDeclaration = (_a = getSymbolLinks(symbol).typeOnlyExportStarMap) == null ? void 0 : _a.get(nameText);\n markSymbolOfAliasDeclarationIfTypeOnly(\n specifier,\n exportSymbol,\n resolved,\n /*overwriteEmpty*/\n false,\n exportStarDeclaration,\n nameText\n );\n return resolved;\n }\n }\n function getPropertyOfVariable(symbol, name) {\n if (symbol.flags & 3 /* Variable */) {\n const typeAnnotation = symbol.valueDeclaration.type;\n if (typeAnnotation) {\n return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name));\n }\n }\n }\n function getExternalModuleMember(node, specifier, dontResolveAlias = false) {\n var _a;\n const moduleSpecifier = getExternalModuleRequireArgument(node) || node.moduleSpecifier;\n const moduleSymbol = resolveExternalModuleName(node, moduleSpecifier);\n const name = !isPropertyAccessExpression(specifier) && specifier.propertyName || specifier.name;\n if (!isIdentifier(name) && name.kind !== 11 /* StringLiteral */) {\n return void 0;\n }\n const nameText = moduleExportNameTextEscaped(name);\n const suppressInteropError = nameText === \"default\" /* Default */ && allowSyntheticDefaultImports;\n const targetSymbol = resolveESModuleSymbol(\n moduleSymbol,\n moduleSpecifier,\n /*dontResolveAlias*/\n false,\n suppressInteropError\n );\n if (targetSymbol) {\n if (nameText || name.kind === 11 /* StringLiteral */) {\n if (isShorthandAmbientModuleSymbol(moduleSymbol)) {\n return moduleSymbol;\n }\n let symbolFromVariable;\n if (moduleSymbol && moduleSymbol.exports && moduleSymbol.exports.get(\"export=\" /* ExportEquals */)) {\n symbolFromVariable = getPropertyOfType(\n getTypeOfSymbol(targetSymbol),\n nameText,\n /*skipObjectFunctionPropertyAugment*/\n true\n );\n } else {\n symbolFromVariable = getPropertyOfVariable(targetSymbol, nameText);\n }\n symbolFromVariable = resolveSymbol(symbolFromVariable, dontResolveAlias);\n let symbolFromModule = getExportOfModule(targetSymbol, nameText, specifier, dontResolveAlias);\n if (symbolFromModule === void 0 && nameText === \"default\" /* Default */) {\n const file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n if (isOnlyImportableAsDefault(moduleSpecifier, moduleSymbol) || canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, moduleSpecifier)) {\n symbolFromModule = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);\n }\n }\n const symbol = symbolFromModule && symbolFromVariable && symbolFromModule !== symbolFromVariable ? combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) : symbolFromModule || symbolFromVariable;\n if (isImportOrExportSpecifier(specifier) && isOnlyImportableAsDefault(moduleSpecifier, moduleSymbol) && nameText !== \"default\" /* Default */) {\n error2(name, Diagnostics.Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0, ModuleKind[moduleKind]);\n } else if (!symbol) {\n errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name);\n }\n return symbol;\n }\n }\n }\n function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) {\n var _a;\n const moduleName = getFullyQualifiedName(moduleSymbol, node);\n const declarationName = declarationNameToString(name);\n const suggestion = isIdentifier(name) ? getSuggestedSymbolForNonexistentModule(name, targetSymbol) : void 0;\n if (suggestion !== void 0) {\n const suggestionName = symbolToString(suggestion);\n const diagnostic = error2(name, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);\n if (suggestion.valueDeclaration) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName));\n }\n } else {\n if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has(\"default\" /* Default */)) {\n error2(\n name,\n Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,\n moduleName,\n declarationName\n );\n } else {\n reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);\n }\n }\n }\n function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) {\n var _a, _b;\n const localSymbol = (_b = (_a = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(moduleExportNameTextEscaped(name));\n const exports2 = moduleSymbol.exports;\n if (localSymbol) {\n const exportedEqualsSymbol = exports2 == null ? void 0 : exports2.get(\"export=\" /* ExportEquals */);\n if (exportedEqualsSymbol) {\n getSymbolIfSameReference(exportedEqualsSymbol, localSymbol) ? reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) : error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName);\n } else {\n const exportedSymbol = exports2 ? find(symbolsToArray(exports2), (symbol) => !!getSymbolIfSameReference(symbol, localSymbol)) : void 0;\n const diagnostic = exportedSymbol ? error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2, moduleName, declarationName, symbolToString(exportedSymbol)) : error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported, moduleName, declarationName);\n if (localSymbol.declarations) {\n addRelatedInfo(diagnostic, ...map(localSymbol.declarations, (decl, index) => createDiagnosticForNode(decl, index === 0 ? Diagnostics._0_is_declared_here : Diagnostics.and_here, declarationName)));\n }\n }\n } else {\n error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName);\n }\n }\n function reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) {\n if (moduleKind >= 5 /* ES2015 */) {\n const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n error2(name, message, declarationName);\n } else {\n if (isInJSFile(node)) {\n const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n error2(name, message, declarationName);\n } else {\n const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import : Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n error2(name, message, declarationName, declarationName, moduleName);\n }\n }\n }\n function getTargetOfImportSpecifier(node, dontResolveAlias) {\n if (isImportSpecifier(node) && moduleExportNameIsDefault(node.propertyName || node.name)) {\n const specifier = getModuleSpecifierForImportOrExport(node);\n const moduleSymbol = specifier && resolveExternalModuleName(node, specifier);\n if (moduleSymbol) {\n return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);\n }\n }\n const root = isBindingElement(node) ? getRootDeclaration(node) : node.parent.parent.parent;\n const commonJSPropertyAccess = getCommonJSPropertyAccess(root);\n const resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);\n const name = node.propertyName || node.name;\n if (commonJSPropertyAccess && resolved && isIdentifier(name)) {\n return resolveSymbol(getPropertyOfType(getTypeOfSymbol(resolved), name.escapedText), dontResolveAlias);\n }\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n /*immediateTarget*/\n void 0,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function getCommonJSPropertyAccess(node) {\n if (isVariableDeclaration(node) && node.initializer && isPropertyAccessExpression(node.initializer)) {\n return node.initializer;\n }\n }\n function getTargetOfNamespaceExportDeclaration(node, dontResolveAlias) {\n if (canHaveSymbol(node.parent)) {\n const resolved = resolveExternalModuleSymbol(node.parent.symbol, dontResolveAlias);\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n /*immediateTarget*/\n void 0,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n }\n function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) {\n const name = node.propertyName || node.name;\n if (moduleExportNameIsDefault(name)) {\n const specifier = getModuleSpecifierForImportOrExport(node);\n const moduleSymbol = specifier && resolveExternalModuleName(node, specifier);\n if (moduleSymbol) {\n return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias);\n }\n }\n const resolved = node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node, dontResolveAlias) : name.kind === 11 /* StringLiteral */ ? void 0 : (\n // Skip for invalid syntax like this: export { \"x\" }\n resolveEntityName(\n name,\n meaning,\n /*ignoreErrors*/\n false,\n dontResolveAlias\n )\n );\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n /*immediateTarget*/\n void 0,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function getTargetOfExportAssignment(node, dontResolveAlias) {\n const expression = isExportAssignment(node) ? node.expression : node.right;\n const resolved = getTargetOfAliasLikeExpression(expression, dontResolveAlias);\n markSymbolOfAliasDeclarationIfTypeOnly(\n node,\n /*immediateTarget*/\n void 0,\n resolved,\n /*overwriteEmpty*/\n false\n );\n return resolved;\n }\n function getTargetOfAliasLikeExpression(expression, dontResolveAlias) {\n if (isClassExpression(expression)) {\n return checkExpressionCached(expression).symbol;\n }\n if (!isEntityName(expression) && !isEntityNameExpression(expression)) {\n return void 0;\n }\n const aliasLike = resolveEntityName(\n expression,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n /*ignoreErrors*/\n true,\n dontResolveAlias\n );\n if (aliasLike) {\n return aliasLike;\n }\n checkExpressionCached(expression);\n return getNodeLinks(expression).resolvedSymbol;\n }\n function getTargetOfAccessExpression(node, dontRecursivelyResolve) {\n if (!(isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */)) {\n return void 0;\n }\n return getTargetOfAliasLikeExpression(node.parent.right, dontRecursivelyResolve);\n }\n function getTargetOfAliasDeclaration(node, dontRecursivelyResolve = false) {\n switch (node.kind) {\n case 272 /* ImportEqualsDeclaration */:\n case 261 /* VariableDeclaration */:\n return getTargetOfImportEqualsDeclaration(node, dontRecursivelyResolve);\n case 274 /* ImportClause */:\n return getTargetOfImportClause(node, dontRecursivelyResolve);\n case 275 /* NamespaceImport */:\n return getTargetOfNamespaceImport(node, dontRecursivelyResolve);\n case 281 /* NamespaceExport */:\n return getTargetOfNamespaceExport(node, dontRecursivelyResolve);\n case 277 /* ImportSpecifier */:\n case 209 /* BindingElement */:\n return getTargetOfImportSpecifier(node, dontRecursivelyResolve);\n case 282 /* ExportSpecifier */:\n return getTargetOfExportSpecifier(node, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, dontRecursivelyResolve);\n case 278 /* ExportAssignment */:\n case 227 /* BinaryExpression */:\n return getTargetOfExportAssignment(node, dontRecursivelyResolve);\n case 271 /* NamespaceExportDeclaration */:\n return getTargetOfNamespaceExportDeclaration(node, dontRecursivelyResolve);\n case 305 /* ShorthandPropertyAssignment */:\n return resolveEntityName(\n node.name,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n /*ignoreErrors*/\n true,\n dontRecursivelyResolve\n );\n case 304 /* PropertyAssignment */:\n return getTargetOfAliasLikeExpression(node.initializer, dontRecursivelyResolve);\n case 213 /* ElementAccessExpression */:\n case 212 /* PropertyAccessExpression */:\n return getTargetOfAccessExpression(node, dontRecursivelyResolve);\n default:\n return Debug.fail();\n }\n }\n function isNonLocalAlias(symbol, excludes = 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */) {\n if (!symbol) return false;\n return (symbol.flags & (2097152 /* Alias */ | excludes)) === 2097152 /* Alias */ || !!(symbol.flags & 2097152 /* Alias */ && symbol.flags & 67108864 /* Assignment */);\n }\n function resolveSymbol(symbol, dontResolveAlias) {\n return !dontResolveAlias && isNonLocalAlias(symbol) ? resolveAlias(symbol) : symbol;\n }\n function resolveAlias(symbol) {\n Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, \"Should only get Alias here.\");\n const links = getSymbolLinks(symbol);\n if (!links.aliasTarget) {\n links.aliasTarget = resolvingSymbol;\n const node = getDeclarationOfAliasSymbol(symbol);\n if (!node) return Debug.fail();\n const target = getTargetOfAliasDeclaration(node);\n if (links.aliasTarget === resolvingSymbol) {\n links.aliasTarget = target || unknownSymbol;\n } else {\n error2(node, Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));\n }\n } else if (links.aliasTarget === resolvingSymbol) {\n links.aliasTarget = unknownSymbol;\n }\n return links.aliasTarget;\n }\n function tryResolveAlias(symbol) {\n const links = getSymbolLinks(symbol);\n if (links.aliasTarget !== resolvingSymbol) {\n return resolveAlias(symbol);\n }\n return void 0;\n }\n function getSymbolFlags(symbol, excludeTypeOnlyMeanings, excludeLocalMeanings) {\n const typeOnlyDeclaration = excludeTypeOnlyMeanings && getTypeOnlyAliasDeclaration(symbol);\n const typeOnlyDeclarationIsExportStar = typeOnlyDeclaration && isExportDeclaration(typeOnlyDeclaration);\n const typeOnlyResolution = typeOnlyDeclaration && (typeOnlyDeclarationIsExportStar ? resolveExternalModuleName(\n typeOnlyDeclaration.moduleSpecifier,\n typeOnlyDeclaration.moduleSpecifier,\n /*ignoreErrors*/\n true\n ) : resolveAlias(typeOnlyDeclaration.symbol));\n const typeOnlyExportStarTargets = typeOnlyDeclarationIsExportStar && typeOnlyResolution ? getExportsOfModule(typeOnlyResolution) : void 0;\n let flags = excludeLocalMeanings ? 0 /* None */ : symbol.flags;\n let seenSymbols;\n while (symbol.flags & 2097152 /* Alias */) {\n const target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol));\n if (!typeOnlyDeclarationIsExportStar && target === typeOnlyResolution || (typeOnlyExportStarTargets == null ? void 0 : typeOnlyExportStarTargets.get(target.escapedName)) === target) {\n break;\n }\n if (target === unknownSymbol) {\n return -1 /* All */;\n }\n if (target === symbol || (seenSymbols == null ? void 0 : seenSymbols.has(target))) {\n break;\n }\n if (target.flags & 2097152 /* Alias */) {\n if (seenSymbols) {\n seenSymbols.add(target);\n } else {\n seenSymbols = /* @__PURE__ */ new Set([symbol, target]);\n }\n }\n flags |= target.flags;\n symbol = target;\n }\n return flags;\n }\n function markSymbolOfAliasDeclarationIfTypeOnly(aliasDeclaration, immediateTarget, finalTarget, overwriteEmpty, exportStarDeclaration, exportStarName) {\n if (!aliasDeclaration || isPropertyAccessExpression(aliasDeclaration)) return false;\n const sourceSymbol = getSymbolOfDeclaration(aliasDeclaration);\n if (isTypeOnlyImportOrExportDeclaration(aliasDeclaration)) {\n const links2 = getSymbolLinks(sourceSymbol);\n links2.typeOnlyDeclaration = aliasDeclaration;\n return true;\n }\n if (exportStarDeclaration) {\n const links2 = getSymbolLinks(sourceSymbol);\n links2.typeOnlyDeclaration = exportStarDeclaration;\n if (sourceSymbol.escapedName !== exportStarName) {\n links2.typeOnlyExportStarName = exportStarName;\n }\n return true;\n }\n const links = getSymbolLinks(sourceSymbol);\n return markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, immediateTarget, overwriteEmpty) || markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, finalTarget, overwriteEmpty);\n }\n function markSymbolOfAliasDeclarationIfTypeOnlyWorker(aliasDeclarationLinks, target, overwriteEmpty) {\n var _a;\n if (target && (aliasDeclarationLinks.typeOnlyDeclaration === void 0 || overwriteEmpty && aliasDeclarationLinks.typeOnlyDeclaration === false)) {\n const exportSymbol = ((_a = target.exports) == null ? void 0 : _a.get(\"export=\" /* ExportEquals */)) ?? target;\n const typeOnly = exportSymbol.declarations && find(exportSymbol.declarations, isTypeOnlyImportOrExportDeclaration);\n aliasDeclarationLinks.typeOnlyDeclaration = typeOnly ?? getSymbolLinks(exportSymbol).typeOnlyDeclaration ?? false;\n }\n return !!aliasDeclarationLinks.typeOnlyDeclaration;\n }\n function getTypeOnlyAliasDeclaration(symbol, include) {\n var _a;\n if (!(symbol.flags & 2097152 /* Alias */)) {\n return void 0;\n }\n const links = getSymbolLinks(symbol);\n if (links.typeOnlyDeclaration === void 0) {\n links.typeOnlyDeclaration = false;\n const resolved = resolveSymbol(symbol);\n markSymbolOfAliasDeclarationIfTypeOnly(\n (_a = symbol.declarations) == null ? void 0 : _a[0],\n getDeclarationOfAliasSymbol(symbol) && getImmediateAliasedSymbol(symbol),\n resolved,\n /*overwriteEmpty*/\n true\n );\n }\n if (include === void 0) {\n return links.typeOnlyDeclaration || void 0;\n }\n if (links.typeOnlyDeclaration) {\n const resolved = links.typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ ? resolveSymbol(getExportsOfModule(links.typeOnlyDeclaration.symbol.parent).get(links.typeOnlyExportStarName || symbol.escapedName)) : resolveAlias(links.typeOnlyDeclaration.symbol);\n return getSymbolFlags(resolved) & include ? links.typeOnlyDeclaration : void 0;\n }\n return void 0;\n }\n function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, dontResolveAlias) {\n if (entityName.kind === 80 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {\n entityName = entityName.parent;\n }\n if (entityName.kind === 80 /* Identifier */ || entityName.parent.kind === 167 /* QualifiedName */) {\n return resolveEntityName(\n entityName,\n 1920 /* Namespace */,\n /*ignoreErrors*/\n false,\n dontResolveAlias\n );\n } else {\n Debug.assert(entityName.parent.kind === 272 /* ImportEqualsDeclaration */);\n return resolveEntityName(\n entityName,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n /*ignoreErrors*/\n false,\n dontResolveAlias\n );\n }\n }\n function getFullyQualifiedName(symbol, containingLocation) {\n return symbol.parent ? getFullyQualifiedName(symbol.parent, containingLocation) + \".\" + symbolToString(symbol) : symbolToString(\n symbol,\n containingLocation,\n /*meaning*/\n void 0,\n 32 /* DoNotIncludeSymbolChain */ | 4 /* AllowAnyNodeKind */\n );\n }\n function getContainingQualifiedNameNode(node) {\n while (isQualifiedName(node.parent)) {\n node = node.parent;\n }\n return node;\n }\n function tryGetQualifiedNameAsValue(node) {\n let left = getFirstIdentifier(node);\n let symbol = resolveName(\n left,\n left,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (!symbol) {\n return void 0;\n }\n while (isQualifiedName(left.parent)) {\n const type = getTypeOfSymbol(symbol);\n symbol = getPropertyOfType(type, left.parent.right.escapedText);\n if (!symbol) {\n return void 0;\n }\n left = left.parent;\n }\n return symbol;\n }\n function resolveEntityName(name, meaning, ignoreErrors, dontResolveAlias, location) {\n if (nodeIsMissing(name)) {\n return void 0;\n }\n const namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(name) ? meaning & 111551 /* Value */ : 0);\n let symbol;\n if (name.kind === 80 /* Identifier */) {\n const message = meaning === namespaceMeaning || nodeIsSynthesized(name) ? Diagnostics.Cannot_find_namespace_0 : getCannotFindNameDiagnosticForName(getFirstIdentifier(name));\n const symbolFromJSPrototype = isInJSFile(name) && !nodeIsSynthesized(name) ? resolveEntityNameFromAssignmentDeclaration(name, meaning) : void 0;\n symbol = getMergedSymbol(resolveName(\n location || name,\n name,\n meaning,\n ignoreErrors || symbolFromJSPrototype ? void 0 : message,\n /*isUse*/\n true,\n /*excludeGlobals*/\n false\n ));\n if (!symbol) {\n return getMergedSymbol(symbolFromJSPrototype);\n }\n } else if (name.kind === 167 /* QualifiedName */ || name.kind === 212 /* PropertyAccessExpression */) {\n const left = name.kind === 167 /* QualifiedName */ ? name.left : name.expression;\n const right = name.kind === 167 /* QualifiedName */ ? name.right : name.name;\n let namespace = resolveEntityName(\n left,\n namespaceMeaning,\n ignoreErrors,\n /*dontResolveAlias*/\n false,\n location\n );\n if (!namespace || nodeIsMissing(right)) {\n return void 0;\n } else if (namespace === unknownSymbol) {\n return namespace;\n }\n if (namespace.valueDeclaration && isInJSFile(namespace.valueDeclaration) && getEmitModuleResolutionKind(compilerOptions) !== 100 /* Bundler */ && isVariableDeclaration(namespace.valueDeclaration) && namespace.valueDeclaration.initializer && isCommonJsRequire(namespace.valueDeclaration.initializer)) {\n const moduleName = namespace.valueDeclaration.initializer.arguments[0];\n const moduleSym = resolveExternalModuleName(moduleName, moduleName);\n if (moduleSym) {\n const resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym);\n if (resolvedModuleSymbol) {\n namespace = resolvedModuleSymbol;\n }\n }\n }\n symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, meaning));\n if (!symbol && namespace.flags & 2097152 /* Alias */) {\n symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(resolveAlias(namespace)), right.escapedText, meaning));\n }\n if (!symbol) {\n if (!ignoreErrors) {\n const namespaceName = getFullyQualifiedName(namespace);\n const declarationName = declarationNameToString(right);\n const suggestionForNonexistentModule = getSuggestedSymbolForNonexistentModule(right, namespace);\n if (suggestionForNonexistentModule) {\n error2(right, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, namespaceName, declarationName, symbolToString(suggestionForNonexistentModule));\n return void 0;\n }\n const containingQualifiedName = isQualifiedName(name) && getContainingQualifiedNameNode(name);\n const canSuggestTypeof = globalObjectType && meaning & 788968 /* Type */ && containingQualifiedName && !isTypeOfExpression(containingQualifiedName.parent) && tryGetQualifiedNameAsValue(containingQualifiedName);\n if (canSuggestTypeof) {\n error2(\n containingQualifiedName,\n Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,\n entityNameToString(containingQualifiedName)\n );\n return void 0;\n }\n if (meaning & 1920 /* Namespace */ && isQualifiedName(name.parent)) {\n const exportedTypeSymbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, 788968 /* Type */));\n if (exportedTypeSymbol) {\n error2(\n name.parent.right,\n Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,\n symbolToString(exportedTypeSymbol),\n unescapeLeadingUnderscores(name.parent.right.escapedText)\n );\n return void 0;\n }\n }\n error2(right, Diagnostics.Namespace_0_has_no_exported_member_1, namespaceName, declarationName);\n }\n return void 0;\n }\n } else {\n Debug.assertNever(name, \"Unknown entity name kind.\");\n }\n if (!nodeIsSynthesized(name) && isEntityName(name) && (symbol.flags & 2097152 /* Alias */ || name.parent.kind === 278 /* ExportAssignment */)) {\n markSymbolOfAliasDeclarationIfTypeOnly(\n getAliasDeclarationFromName(name),\n symbol,\n /*finalTarget*/\n void 0,\n /*overwriteEmpty*/\n true\n );\n }\n return symbol.flags & meaning || dontResolveAlias ? symbol : resolveAlias(symbol);\n }\n function resolveEntityNameFromAssignmentDeclaration(name, meaning) {\n if (isJSDocTypeReference(name.parent)) {\n const secondaryLocation = getAssignmentDeclarationLocation(name.parent);\n if (secondaryLocation) {\n return resolveName(\n secondaryLocation,\n name,\n meaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n }\n }\n }\n function getAssignmentDeclarationLocation(node) {\n const typeAlias = findAncestor(node, (node2) => !(isJSDocNode(node2) || node2.flags & 16777216 /* JSDoc */) ? \"quit\" : isJSDocTypeAlias(node2));\n if (typeAlias) {\n return;\n }\n const host2 = getJSDocHost(node);\n if (host2 && isExpressionStatement(host2) && isPrototypePropertyAssignment(host2.expression)) {\n const symbol = getSymbolOfDeclaration(host2.expression.left);\n if (symbol) {\n return getDeclarationOfJSPrototypeContainer(symbol);\n }\n }\n if (host2 && isFunctionExpression(host2) && isPrototypePropertyAssignment(host2.parent) && isExpressionStatement(host2.parent.parent)) {\n const symbol = getSymbolOfDeclaration(host2.parent.left);\n if (symbol) {\n return getDeclarationOfJSPrototypeContainer(symbol);\n }\n }\n if (host2 && (isObjectLiteralMethod(host2) || isPropertyAssignment(host2)) && isBinaryExpression(host2.parent.parent) && getAssignmentDeclarationKind(host2.parent.parent) === 6 /* Prototype */) {\n const symbol = getSymbolOfDeclaration(host2.parent.parent.left);\n if (symbol) {\n return getDeclarationOfJSPrototypeContainer(symbol);\n }\n }\n const sig = getEffectiveJSDocHost(node);\n if (sig && isFunctionLike(sig)) {\n const symbol = getSymbolOfDeclaration(sig);\n return symbol && symbol.valueDeclaration;\n }\n }\n function getDeclarationOfJSPrototypeContainer(symbol) {\n const decl = symbol.parent.valueDeclaration;\n if (!decl) {\n return void 0;\n }\n const initializer = isAssignmentDeclaration(decl) ? getAssignedExpandoInitializer(decl) : hasOnlyExpressionInitializer(decl) ? getDeclaredExpandoInitializer(decl) : void 0;\n return initializer || decl;\n }\n function getExpandoSymbol(symbol) {\n const decl = symbol.valueDeclaration;\n if (!decl || !isInJSFile(decl) || symbol.flags & 524288 /* TypeAlias */ || getExpandoInitializer(\n decl,\n /*isPrototypeAssignment*/\n false\n )) {\n return void 0;\n }\n const init = isVariableDeclaration(decl) ? getDeclaredExpandoInitializer(decl) : getAssignedExpandoInitializer(decl);\n if (init) {\n const initSymbol = getSymbolOfNode(init);\n if (initSymbol) {\n return mergeJSSymbols(initSymbol, symbol);\n }\n }\n }\n function resolveExternalModuleName(location, moduleReferenceExpression, ignoreErrors) {\n const isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */;\n const errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;\n return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? void 0 : errorMessage, ignoreErrors);\n }\n function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError, ignoreErrors = false, isForAugmentation = false) {\n return isStringLiteralLike(moduleReferenceExpression) ? resolveExternalModule(location, moduleReferenceExpression.text, moduleNotFoundError, !ignoreErrors ? moduleReferenceExpression : void 0, isForAugmentation) : void 0;\n }\n function resolveExternalModule(location, moduleReference, moduleNotFoundError, errorNode, isForAugmentation = false) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n if (errorNode && startsWith(moduleReference, \"@types/\")) {\n const diag2 = Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1;\n const withoutAtTypePrefix = removePrefix(moduleReference, \"@types/\");\n error2(errorNode, diag2, withoutAtTypePrefix, moduleReference);\n }\n const ambientModule = tryFindAmbientModule(\n moduleReference,\n /*withAugmentations*/\n true\n );\n if (ambientModule) {\n return ambientModule;\n }\n const currentSourceFile = getSourceFileOfNode(location);\n const contextSpecifier = isStringLiteralLike(location) ? location : ((_a = isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : void 0) == null ? void 0 : _a.name) || ((_b = isLiteralImportTypeNode(location) ? location : void 0) == null ? void 0 : _b.argument.literal) || (isVariableDeclaration(location) && location.initializer && isRequireCall(\n location.initializer,\n /*requireStringLiteralLikeArgument*/\n true\n ) ? location.initializer.arguments[0] : void 0) || ((_c = findAncestor(location, isImportCall)) == null ? void 0 : _c.arguments[0]) || ((_d = findAncestor(location, or(isImportDeclaration, isJSDocImportTag, isExportDeclaration))) == null ? void 0 : _d.moduleSpecifier) || ((_e = findAncestor(location, isExternalModuleImportEqualsDeclaration)) == null ? void 0 : _e.moduleReference.expression);\n const mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? host.getModeForUsageLocation(currentSourceFile, contextSpecifier) : host.getDefaultResolutionModeForFile(currentSourceFile);\n const moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions);\n const resolvedModule = (_f = host.getResolvedModule(currentSourceFile, moduleReference, mode)) == null ? void 0 : _f.resolvedModule;\n const resolutionDiagnostic = errorNode && resolvedModule && getResolutionDiagnostic(compilerOptions, resolvedModule, currentSourceFile);\n const sourceFile = resolvedModule && (!resolutionDiagnostic || resolutionDiagnostic === Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) && host.getSourceFile(resolvedModule.resolvedFileName);\n if (sourceFile) {\n if (resolutionDiagnostic) {\n error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName);\n }\n if (resolvedModule.resolvedUsingTsExtension && isDeclarationFileName(moduleReference)) {\n const importOrExport = ((_g = findAncestor(location, isImportDeclaration)) == null ? void 0 : _g.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration));\n if (errorNode && importOrExport && !importOrExport.isTypeOnly || findAncestor(location, isImportCall)) {\n error2(\n errorNode,\n Diagnostics.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead,\n getSuggestedImportSource(Debug.checkDefined(tryExtractTSExtension(moduleReference)))\n );\n }\n } else if (resolvedModule.resolvedUsingTsExtension && !shouldAllowImportingTsExtension(compilerOptions, currentSourceFile.fileName)) {\n const importOrExport = ((_h = findAncestor(location, isImportDeclaration)) == null ? void 0 : _h.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration));\n if (errorNode && !((importOrExport == null ? void 0 : importOrExport.isTypeOnly) || findAncestor(location, isImportTypeNode))) {\n const tsExtension = Debug.checkDefined(tryExtractTSExtension(moduleReference));\n error2(errorNode, Diagnostics.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled, tsExtension);\n }\n } else if (compilerOptions.rewriteRelativeImportExtensions && !(location.flags & 33554432 /* Ambient */) && !isDeclarationFileName(moduleReference) && !isLiteralImportTypeNode(location) && !isPartOfTypeOnlyImportOrExportDeclaration(location)) {\n const shouldRewrite = shouldRewriteModuleSpecifier(moduleReference, compilerOptions);\n if (!resolvedModule.resolvedUsingTsExtension && shouldRewrite) {\n error2(\n errorNode,\n Diagnostics.This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0,\n getRelativePathFromFile(getNormalizedAbsolutePath(currentSourceFile.fileName, host.getCurrentDirectory()), resolvedModule.resolvedFileName, hostGetCanonicalFileName(host))\n );\n } else if (resolvedModule.resolvedUsingTsExtension && !shouldRewrite && sourceFileMayBeEmitted(sourceFile, host)) {\n error2(\n errorNode,\n Diagnostics.This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path,\n getAnyExtensionFromPath(moduleReference)\n );\n } else if (resolvedModule.resolvedUsingTsExtension && shouldRewrite) {\n const redirect = (_i = host.getRedirectFromSourceFile(sourceFile.path)) == null ? void 0 : _i.resolvedRef;\n if (redirect) {\n const ignoreCase = !host.useCaseSensitiveFileNames();\n const ownRootDir = host.getCommonSourceDirectory();\n const otherRootDir = getCommonSourceDirectoryOfConfig(redirect.commandLine, ignoreCase);\n const rootDirPath = getRelativePathFromDirectory(ownRootDir, otherRootDir, ignoreCase);\n const outDirPath = getRelativePathFromDirectory(compilerOptions.outDir || ownRootDir, redirect.commandLine.options.outDir || otherRootDir, ignoreCase);\n if (rootDirPath !== outDirPath) {\n error2(\n errorNode,\n Diagnostics.This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files\n );\n }\n }\n }\n }\n if (sourceFile.symbol) {\n if (errorNode && resolvedModule.isExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.extension)) {\n errorOnImplicitAnyModule(\n /*isError*/\n false,\n errorNode,\n currentSourceFile,\n mode,\n resolvedModule,\n moduleReference\n );\n }\n if (errorNode && (moduleKind === 100 /* Node16 */ || moduleKind === 101 /* Node18 */)) {\n const isSyncImport = currentSourceFile.impliedNodeFormat === 1 /* CommonJS */ && !findAncestor(location, isImportCall) || !!findAncestor(location, isImportEqualsDeclaration);\n const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l) || isJSDocImportTag(l));\n if (isSyncImport && sourceFile.impliedNodeFormat === 99 /* ESNext */ && !hasResolutionModeOverride(overrideHost)) {\n if (findAncestor(location, isImportEqualsDeclaration)) {\n error2(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, moduleReference);\n } else {\n let diagnosticDetails;\n const ext = tryGetExtensionFromPath2(currentSourceFile.fileName);\n if (ext === \".ts\" /* Ts */ || ext === \".js\" /* Js */ || ext === \".tsx\" /* Tsx */ || ext === \".jsx\" /* Jsx */) {\n diagnosticDetails = createModeMismatchDetails(currentSourceFile);\n }\n const message = (overrideHost == null ? void 0 : overrideHost.kind) === 273 /* ImportDeclaration */ && ((_j = overrideHost.importClause) == null ? void 0 : _j.isTypeOnly) ? Diagnostics.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute : (overrideHost == null ? void 0 : overrideHost.kind) === 206 /* ImportType */ ? Diagnostics.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute : Diagnostics.The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead;\n diagnostics.add(createDiagnosticForNodeFromMessageChain(\n getSourceFileOfNode(errorNode),\n errorNode,\n chainDiagnosticMessages(diagnosticDetails, message, moduleReference)\n ));\n }\n }\n }\n return getMergedSymbol(sourceFile.symbol);\n }\n if (errorNode && moduleNotFoundError && !isSideEffectImport(errorNode)) {\n error2(errorNode, Diagnostics.File_0_is_not_a_module, sourceFile.fileName);\n }\n return void 0;\n }\n if (patternAmbientModules) {\n const pattern = findBestPatternMatch(patternAmbientModules, (_) => _.pattern, moduleReference);\n if (pattern) {\n const augmentation = patternAmbientModuleAugmentations && patternAmbientModuleAugmentations.get(moduleReference);\n if (augmentation) {\n return getMergedSymbol(augmentation);\n }\n return getMergedSymbol(pattern.symbol);\n }\n }\n if (!errorNode) {\n return void 0;\n }\n if (resolvedModule && !resolutionExtensionIsTSOrJson(resolvedModule.extension) && resolutionDiagnostic === void 0 || resolutionDiagnostic === Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) {\n if (isForAugmentation) {\n const diag2 = Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;\n error2(errorNode, diag2, moduleReference, resolvedModule.resolvedFileName);\n } else {\n errorOnImplicitAnyModule(\n /*isError*/\n noImplicitAny && !!moduleNotFoundError,\n errorNode,\n currentSourceFile,\n mode,\n resolvedModule,\n moduleReference\n );\n }\n return void 0;\n }\n if (moduleNotFoundError) {\n if (resolvedModule) {\n const redirect = host.getRedirectFromSourceFile(resolvedModule.resolvedFileName);\n if (redirect == null ? void 0 : redirect.outputDts) {\n error2(errorNode, Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect.outputDts, resolvedModule.resolvedFileName);\n return void 0;\n }\n }\n if (resolutionDiagnostic) {\n error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName);\n } else {\n const isExtensionlessRelativePathImport = pathIsRelative(moduleReference) && !hasExtension(moduleReference);\n const resolutionIsNode16OrNext = moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */;\n if (!getResolveJsonModule(compilerOptions) && fileExtensionIs(moduleReference, \".json\" /* Json */) && moduleResolutionKind !== 1 /* Classic */ && hasJsonModuleEmitEnabled(compilerOptions)) {\n error2(errorNode, Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference);\n } else if (mode === 99 /* ESNext */ && resolutionIsNode16OrNext && isExtensionlessRelativePathImport) {\n const absoluteRef = getNormalizedAbsolutePath(moduleReference, getDirectoryPath(currentSourceFile.path));\n const suggestedExt = (_k = suggestedExtensions.find(([actualExt, _importExt]) => host.fileExists(absoluteRef + actualExt))) == null ? void 0 : _k[1];\n if (suggestedExt) {\n error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference + suggestedExt);\n } else {\n error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path);\n }\n } else {\n if ((_l = host.getResolvedModule(currentSourceFile, moduleReference, mode)) == null ? void 0 : _l.alternateResult) {\n const errorInfo = createModuleNotFoundChain(currentSourceFile, host, moduleReference, mode, moduleReference);\n errorOrSuggestion(\n /*isError*/\n true,\n errorNode,\n chainDiagnosticMessages(errorInfo, moduleNotFoundError, moduleReference)\n );\n } else {\n error2(errorNode, moduleNotFoundError, moduleReference);\n }\n }\n }\n }\n return void 0;\n function getSuggestedImportSource(tsExtension) {\n const importSourceWithoutExtension = removeExtension(moduleReference, tsExtension);\n if (emitModuleKindIsNonNodeESM(moduleKind) || mode === 99 /* ESNext */) {\n const preferTs = isDeclarationFileName(moduleReference) && shouldAllowImportingTsExtension(compilerOptions);\n const ext = tsExtension === \".mts\" /* Mts */ || tsExtension === \".d.mts\" /* Dmts */ ? preferTs ? \".mts\" : \".mjs\" : tsExtension === \".cts\" /* Cts */ || tsExtension === \".d.mts\" /* Dmts */ ? preferTs ? \".cts\" : \".cjs\" : preferTs ? \".ts\" : \".js\";\n return importSourceWithoutExtension + ext;\n }\n return importSourceWithoutExtension;\n }\n }\n function errorOnImplicitAnyModule(isError, errorNode, sourceFile, mode, { packageId, resolvedFileName }, moduleReference) {\n if (isSideEffectImport(errorNode)) {\n return;\n }\n let errorInfo;\n if (!isExternalModuleNameRelative(moduleReference) && packageId) {\n errorInfo = createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageId.name);\n }\n errorOrSuggestion(\n isError,\n errorNode,\n chainDiagnosticMessages(\n errorInfo,\n Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,\n moduleReference,\n resolvedFileName\n )\n );\n }\n function resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) {\n if (moduleSymbol == null ? void 0 : moduleSymbol.exports) {\n const exportEquals = resolveSymbol(moduleSymbol.exports.get(\"export=\" /* ExportEquals */), dontResolveAlias);\n const exported = getCommonJsExportEquals(getMergedSymbol(exportEquals), getMergedSymbol(moduleSymbol));\n return getMergedSymbol(exported) || moduleSymbol;\n }\n return void 0;\n }\n function getCommonJsExportEquals(exported, moduleSymbol) {\n if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports.size === 1 || exported.flags & 2097152 /* Alias */) {\n return exported;\n }\n const links = getSymbolLinks(exported);\n if (links.cjsExportMerged) {\n return links.cjsExportMerged;\n }\n const merged = exported.flags & 33554432 /* Transient */ ? exported : cloneSymbol(exported);\n merged.flags = merged.flags | 512 /* ValueModule */;\n if (merged.exports === void 0) {\n merged.exports = createSymbolTable();\n }\n moduleSymbol.exports.forEach((s, name) => {\n if (name === \"export=\" /* ExportEquals */) return;\n merged.exports.set(name, merged.exports.has(name) ? mergeSymbol(merged.exports.get(name), s) : s);\n });\n if (merged === exported) {\n getSymbolLinks(merged).resolvedExports = void 0;\n getSymbolLinks(merged).resolvedMembers = void 0;\n }\n getSymbolLinks(merged).cjsExportMerged = merged;\n return links.cjsExportMerged = merged;\n }\n function resolveESModuleSymbol(moduleSymbol, referencingLocation, dontResolveAlias, suppressInteropError) {\n var _a;\n const symbol = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias);\n if (!dontResolveAlias && symbol) {\n if (!suppressInteropError && !(symbol.flags & (1536 /* Module */ | 3 /* Variable */)) && !getDeclarationOfKind(symbol, 308 /* SourceFile */)) {\n const compilerOptionName = moduleKind >= 5 /* ES2015 */ ? \"allowSyntheticDefaultImports\" : \"esModuleInterop\";\n error2(referencingLocation, Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, compilerOptionName);\n return symbol;\n }\n const referenceParent = referencingLocation.parent;\n const namespaceImport = isImportDeclaration(referenceParent) && getNamespaceDeclarationNode(referenceParent);\n if (namespaceImport || isImportCall(referenceParent)) {\n const reference = isImportCall(referenceParent) ? referenceParent.arguments[0] : referenceParent.moduleSpecifier;\n const type = getTypeOfSymbol(symbol);\n const defaultOnlyType = getTypeWithSyntheticDefaultOnly(type, symbol, moduleSymbol, reference);\n if (defaultOnlyType) {\n return cloneTypeAsModuleType(symbol, defaultOnlyType, referenceParent);\n }\n const targetFile = (_a = moduleSymbol == null ? void 0 : moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n const usageMode = getEmitSyntaxForModuleSpecifierExpression(reference);\n let exportModuleDotExportsSymbol;\n if (namespaceImport && targetFile && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && usageMode === 1 /* CommonJS */ && host.getImpliedNodeFormatForEmit(targetFile) === 99 /* ESNext */ && (exportModuleDotExportsSymbol = resolveExportByName(symbol, \"module.exports\", namespaceImport, dontResolveAlias))) {\n if (!suppressInteropError && !(symbol.flags & (1536 /* Module */ | 3 /* Variable */))) {\n error2(referencingLocation, Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, \"esModuleInterop\");\n }\n if (getESModuleInterop(compilerOptions) && hasSignatures(type)) {\n return cloneTypeAsModuleType(exportModuleDotExportsSymbol, type, referenceParent);\n }\n return exportModuleDotExportsSymbol;\n }\n const isEsmCjsRef = targetFile && isESMFormatImportImportingCommonjsFormatFile(usageMode, host.getImpliedNodeFormatForEmit(targetFile));\n if (getESModuleInterop(compilerOptions) || isEsmCjsRef) {\n if (hasSignatures(type) || getPropertyOfType(\n type,\n \"default\" /* Default */,\n /*skipObjectFunctionPropertyAugment*/\n true\n ) || isEsmCjsRef) {\n const moduleType = type.flags & 3670016 /* StructuredType */ ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent);\n return cloneTypeAsModuleType(symbol, moduleType, referenceParent);\n }\n }\n }\n }\n return symbol;\n }\n function hasSignatures(type) {\n return some(getSignaturesOfStructuredType(type, 0 /* Call */)) || some(getSignaturesOfStructuredType(type, 1 /* Construct */));\n }\n function cloneTypeAsModuleType(symbol, moduleType, referenceParent) {\n const result = createSymbol(symbol.flags, symbol.escapedName);\n result.declarations = symbol.declarations ? symbol.declarations.slice() : [];\n result.parent = symbol.parent;\n result.links.target = symbol;\n result.links.originatingImport = referenceParent;\n if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration;\n if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true;\n if (symbol.members) result.members = new Map(symbol.members);\n if (symbol.exports) result.exports = new Map(symbol.exports);\n const resolvedModuleType = resolveStructuredTypeMembers(moduleType);\n result.links.type = createAnonymousType(result, resolvedModuleType.members, emptyArray, emptyArray, resolvedModuleType.indexInfos);\n return result;\n }\n function hasExportAssignmentSymbol(moduleSymbol) {\n return moduleSymbol.exports.get(\"export=\" /* ExportEquals */) !== void 0;\n }\n function getExportsOfModuleAsArray(moduleSymbol) {\n return symbolsToArray(getExportsOfModule(moduleSymbol));\n }\n function getExportsAndPropertiesOfModule(moduleSymbol) {\n const exports2 = getExportsOfModuleAsArray(moduleSymbol);\n const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n if (exportEquals !== moduleSymbol) {\n const type = getTypeOfSymbol(exportEquals);\n if (shouldTreatPropertiesOfExternalModuleAsExports(type)) {\n addRange(exports2, getPropertiesOfType(type));\n }\n }\n return exports2;\n }\n function forEachExportAndPropertyOfModule(moduleSymbol, cb) {\n const exports2 = getExportsOfModule(moduleSymbol);\n exports2.forEach((symbol, key) => {\n if (!isReservedMemberName(key)) {\n cb(symbol, key);\n }\n });\n const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n if (exportEquals !== moduleSymbol) {\n const type = getTypeOfSymbol(exportEquals);\n if (shouldTreatPropertiesOfExternalModuleAsExports(type)) {\n forEachPropertyOfType(type, (symbol, escapedName) => {\n cb(symbol, escapedName);\n });\n }\n }\n }\n function tryGetMemberInModuleExports(memberName, moduleSymbol) {\n const symbolTable = getExportsOfModule(moduleSymbol);\n if (symbolTable) {\n return symbolTable.get(memberName);\n }\n }\n function tryGetMemberInModuleExportsAndProperties(memberName, moduleSymbol) {\n const symbol = tryGetMemberInModuleExports(memberName, moduleSymbol);\n if (symbol) {\n return symbol;\n }\n const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n if (exportEquals === moduleSymbol) {\n return void 0;\n }\n const type = getTypeOfSymbol(exportEquals);\n return shouldTreatPropertiesOfExternalModuleAsExports(type) ? getPropertyOfType(type, memberName) : void 0;\n }\n function shouldTreatPropertiesOfExternalModuleAsExports(resolvedExternalModuleType) {\n return !(resolvedExternalModuleType.flags & 402784252 /* Primitive */ || getObjectFlags(resolvedExternalModuleType) & 1 /* Class */ || // `isArrayOrTupleLikeType` is too expensive to use in this auto-imports hot path\n isArrayType(resolvedExternalModuleType) || isTupleType(resolvedExternalModuleType));\n }\n function getExportsOfSymbol(symbol) {\n return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, \"resolvedExports\" /* resolvedExports */) : symbol.flags & 1536 /* Module */ ? getExportsOfModule(symbol) : symbol.exports || emptySymbols;\n }\n function getExportsOfModule(moduleSymbol) {\n const links = getSymbolLinks(moduleSymbol);\n if (!links.resolvedExports) {\n const { exports: exports2, typeOnlyExportStarMap } = getExportsOfModuleWorker(moduleSymbol);\n links.resolvedExports = exports2;\n links.typeOnlyExportStarMap = typeOnlyExportStarMap;\n }\n return links.resolvedExports;\n }\n function extendExportSymbols(target, source, lookupTable, exportNode) {\n if (!source) return;\n source.forEach((sourceSymbol, id) => {\n if (id === \"default\" /* Default */) return;\n const targetSymbol = target.get(id);\n if (!targetSymbol) {\n target.set(id, sourceSymbol);\n if (lookupTable && exportNode) {\n lookupTable.set(id, {\n specifierText: getTextOfNode(exportNode.moduleSpecifier)\n });\n }\n } else if (lookupTable && exportNode && targetSymbol && resolveSymbol(targetSymbol) !== resolveSymbol(sourceSymbol)) {\n const collisionTracker = lookupTable.get(id);\n if (!collisionTracker.exportsWithDuplicate) {\n collisionTracker.exportsWithDuplicate = [exportNode];\n } else {\n collisionTracker.exportsWithDuplicate.push(exportNode);\n }\n }\n });\n }\n function getExportsOfModuleWorker(moduleSymbol) {\n const visitedSymbols = [];\n let typeOnlyExportStarMap;\n const nonTypeOnlyNames = /* @__PURE__ */ new Set();\n moduleSymbol = resolveExternalModuleSymbol(moduleSymbol);\n const exports2 = visit(moduleSymbol) || emptySymbols;\n if (typeOnlyExportStarMap) {\n nonTypeOnlyNames.forEach((name) => typeOnlyExportStarMap.delete(name));\n }\n return {\n exports: exports2,\n typeOnlyExportStarMap\n };\n function visit(symbol, exportStar, isTypeOnly) {\n if (!isTypeOnly && (symbol == null ? void 0 : symbol.exports)) {\n symbol.exports.forEach((_, name) => nonTypeOnlyNames.add(name));\n }\n if (!(symbol && symbol.exports && pushIfUnique(visitedSymbols, symbol))) {\n return;\n }\n const symbols = new Map(symbol.exports);\n const exportStars = symbol.exports.get(\"__export\" /* ExportStar */);\n if (exportStars) {\n const nestedSymbols = createSymbolTable();\n const lookupTable = /* @__PURE__ */ new Map();\n if (exportStars.declarations) {\n for (const node of exportStars.declarations) {\n const resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n const exportedSymbols = visit(resolvedModule, node, isTypeOnly || node.isTypeOnly);\n extendExportSymbols(\n nestedSymbols,\n exportedSymbols,\n lookupTable,\n node\n );\n }\n }\n lookupTable.forEach(({ exportsWithDuplicate }, id) => {\n if (id === \"export=\" || !(exportsWithDuplicate && exportsWithDuplicate.length) || symbols.has(id)) {\n return;\n }\n for (const node of exportsWithDuplicate) {\n diagnostics.add(createDiagnosticForNode(\n node,\n Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity,\n lookupTable.get(id).specifierText,\n unescapeLeadingUnderscores(id)\n ));\n }\n });\n extendExportSymbols(symbols, nestedSymbols);\n }\n if (exportStar == null ? void 0 : exportStar.isTypeOnly) {\n typeOnlyExportStarMap ?? (typeOnlyExportStarMap = /* @__PURE__ */ new Map());\n symbols.forEach(\n (_, escapedName) => typeOnlyExportStarMap.set(\n escapedName,\n exportStar\n )\n );\n }\n return symbols;\n }\n }\n function getMergedSymbol(symbol) {\n let merged;\n return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol;\n }\n function getSymbolOfDeclaration(node) {\n return getMergedSymbol(node.symbol && getLateBoundSymbol(node.symbol));\n }\n function getSymbolOfNode(node) {\n return canHaveSymbol(node) ? getSymbolOfDeclaration(node) : void 0;\n }\n function getParentOfSymbol(symbol) {\n return getMergedSymbol(symbol.parent && getLateBoundSymbol(symbol.parent));\n }\n function getFunctionExpressionParentSymbolOrSymbol(symbol) {\n var _a, _b;\n return ((_a = symbol.valueDeclaration) == null ? void 0 : _a.kind) === 220 /* ArrowFunction */ || ((_b = symbol.valueDeclaration) == null ? void 0 : _b.kind) === 219 /* FunctionExpression */ ? getSymbolOfNode(symbol.valueDeclaration.parent) || symbol : symbol;\n }\n function getAlternativeContainingModules(symbol, enclosingDeclaration) {\n const containingFile = getSourceFileOfNode(enclosingDeclaration);\n const id = getNodeId(containingFile);\n const links = getSymbolLinks(symbol);\n let results;\n if (links.extendedContainersByFile && (results = links.extendedContainersByFile.get(id))) {\n return results;\n }\n if (containingFile && containingFile.imports) {\n for (const importRef of containingFile.imports) {\n if (nodeIsSynthesized(importRef)) continue;\n const resolvedModule = resolveExternalModuleName(\n enclosingDeclaration,\n importRef,\n /*ignoreErrors*/\n true\n );\n if (!resolvedModule) continue;\n const ref = getAliasForSymbolInContainer(resolvedModule, symbol);\n if (!ref) continue;\n results = append(results, resolvedModule);\n }\n if (length(results)) {\n (links.extendedContainersByFile || (links.extendedContainersByFile = /* @__PURE__ */ new Map())).set(id, results);\n return results;\n }\n }\n if (links.extendedContainers) {\n return links.extendedContainers;\n }\n const otherFiles = host.getSourceFiles();\n for (const file of otherFiles) {\n if (!isExternalModule(file)) continue;\n const sym = getSymbolOfDeclaration(file);\n const ref = getAliasForSymbolInContainer(sym, symbol);\n if (!ref) continue;\n results = append(results, sym);\n }\n return links.extendedContainers = results || emptyArray;\n }\n function getContainersOfSymbol(symbol, enclosingDeclaration, meaning) {\n const container = getParentOfSymbol(symbol);\n if (container && !(symbol.flags & 262144 /* TypeParameter */)) {\n return getWithAlternativeContainers(container);\n }\n const candidates = mapDefined(symbol.declarations, (d) => {\n if (!isAmbientModule(d) && d.parent) {\n if (hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) {\n return getSymbolOfDeclaration(d.parent);\n }\n if (isModuleBlock(d.parent) && d.parent.parent && resolveExternalModuleSymbol(getSymbolOfDeclaration(d.parent.parent)) === symbol) {\n return getSymbolOfDeclaration(d.parent.parent);\n }\n }\n if (isClassExpression(d) && isBinaryExpression(d.parent) && d.parent.operatorToken.kind === 64 /* EqualsToken */ && isAccessExpression(d.parent.left) && isEntityNameExpression(d.parent.left.expression)) {\n if (isModuleExportsAccessExpression(d.parent.left) || isExportsIdentifier(d.parent.left.expression)) {\n return getSymbolOfDeclaration(getSourceFileOfNode(d));\n }\n checkExpressionCached(d.parent.left.expression);\n return getNodeLinks(d.parent.left.expression).resolvedSymbol;\n }\n });\n if (!length(candidates)) {\n return void 0;\n }\n const containers = mapDefined(candidates, (candidate) => getAliasForSymbolInContainer(candidate, symbol) ? candidate : void 0);\n let bestContainers = [];\n let alternativeContainers = [];\n for (const container2 of containers) {\n const [bestMatch, ...rest] = getWithAlternativeContainers(container2);\n bestContainers = append(bestContainers, bestMatch);\n alternativeContainers = addRange(alternativeContainers, rest);\n }\n return concatenate(bestContainers, alternativeContainers);\n function getWithAlternativeContainers(container2) {\n const additionalContainers = mapDefined(container2.declarations, fileSymbolIfFileSymbolExportEqualsContainer);\n const reexportContainers = enclosingDeclaration && getAlternativeContainingModules(symbol, enclosingDeclaration);\n const objectLiteralContainer = getVariableDeclarationOfObjectLiteral(container2, meaning);\n if (enclosingDeclaration && container2.flags & getQualifiedLeftMeaning(meaning) && getAccessibleSymbolChain(\n container2,\n enclosingDeclaration,\n 1920 /* Namespace */,\n /*useOnlyExternalAliasing*/\n false\n )) {\n return append(concatenate(concatenate([container2], additionalContainers), reexportContainers), objectLiteralContainer);\n }\n const firstVariableMatch = !(container2.flags & getQualifiedLeftMeaning(meaning)) && container2.flags & 788968 /* Type */ && getDeclaredTypeOfSymbol(container2).flags & 524288 /* Object */ && meaning === 111551 /* Value */ ? forEachSymbolTableInScope(enclosingDeclaration, (t) => {\n return forEachEntry(t, (s) => {\n if (s.flags & getQualifiedLeftMeaning(meaning) && getTypeOfSymbol(s) === getDeclaredTypeOfSymbol(container2)) {\n return s;\n }\n });\n }) : void 0;\n let res = firstVariableMatch ? [firstVariableMatch, ...additionalContainers, container2] : [...additionalContainers, container2];\n res = append(res, objectLiteralContainer);\n res = addRange(res, reexportContainers);\n return res;\n }\n function fileSymbolIfFileSymbolExportEqualsContainer(d) {\n return container && getFileSymbolIfFileSymbolExportEqualsContainer(d, container);\n }\n }\n function getVariableDeclarationOfObjectLiteral(symbol, meaning) {\n const firstDecl = !!length(symbol.declarations) && first(symbol.declarations);\n if (meaning & 111551 /* Value */ && firstDecl && firstDecl.parent && isVariableDeclaration(firstDecl.parent)) {\n if (isObjectLiteralExpression(firstDecl) && firstDecl === firstDecl.parent.initializer || isTypeLiteralNode(firstDecl) && firstDecl === firstDecl.parent.type) {\n return getSymbolOfDeclaration(firstDecl.parent);\n }\n }\n }\n function getFileSymbolIfFileSymbolExportEqualsContainer(d, container) {\n const fileSymbol = getExternalModuleContainer(d);\n const exported = fileSymbol && fileSymbol.exports && fileSymbol.exports.get(\"export=\" /* ExportEquals */);\n return exported && getSymbolIfSameReference(exported, container) ? fileSymbol : void 0;\n }\n function getAliasForSymbolInContainer(container, symbol) {\n if (container === getParentOfSymbol(symbol)) {\n return symbol;\n }\n const exportEquals = container.exports && container.exports.get(\"export=\" /* ExportEquals */);\n if (exportEquals && getSymbolIfSameReference(exportEquals, symbol)) {\n return container;\n }\n const exports2 = getExportsOfSymbol(container);\n const quick = exports2.get(symbol.escapedName);\n if (quick && getSymbolIfSameReference(quick, symbol)) {\n return quick;\n }\n return forEachEntry(exports2, (exported) => {\n if (getSymbolIfSameReference(exported, symbol)) {\n return exported;\n }\n });\n }\n function getSymbolIfSameReference(s1, s2) {\n if (getMergedSymbol(resolveSymbol(getMergedSymbol(s1))) === getMergedSymbol(resolveSymbol(getMergedSymbol(s2)))) {\n return s1;\n }\n }\n function getExportSymbolOfValueSymbolIfExported(symbol) {\n return getMergedSymbol(symbol && (symbol.flags & 1048576 /* ExportValue */) !== 0 && symbol.exportSymbol || symbol);\n }\n function symbolIsValue(symbol, includeTypeOnlyMembers) {\n return !!(symbol.flags & 111551 /* Value */ || symbol.flags & 2097152 /* Alias */ && getSymbolFlags(symbol, !includeTypeOnlyMembers) & 111551 /* Value */);\n }\n function createType(flags) {\n var _a;\n const result = new Type29(checker, flags);\n typeCount++;\n result.id = typeCount;\n (_a = tracing) == null ? void 0 : _a.recordType(result);\n return result;\n }\n function createTypeWithSymbol(flags, symbol) {\n const result = createType(flags);\n result.symbol = symbol;\n return result;\n }\n function createOriginType(flags) {\n return new Type29(checker, flags);\n }\n function createIntrinsicType(kind, intrinsicName, objectFlags = 0 /* None */, debugIntrinsicName) {\n checkIntrinsicName(intrinsicName, debugIntrinsicName);\n const type = createType(kind);\n type.intrinsicName = intrinsicName;\n type.debugIntrinsicName = debugIntrinsicName;\n type.objectFlags = objectFlags | 524288 /* CouldContainTypeVariablesComputed */ | 2097152 /* IsGenericTypeComputed */ | 33554432 /* IsUnknownLikeUnionComputed */ | 16777216 /* IsNeverIntersectionComputed */;\n return type;\n }\n function checkIntrinsicName(name, debug) {\n const key = `${name},${debug ?? \"\"}`;\n if (seenIntrinsicNames.has(key)) {\n Debug.fail(`Duplicate intrinsic type name ${name}${debug ? ` (${debug})` : \"\"}; you may need to pass a name to createIntrinsicType.`);\n }\n seenIntrinsicNames.add(key);\n }\n function createObjectType(objectFlags, symbol) {\n const type = createTypeWithSymbol(524288 /* Object */, symbol);\n type.objectFlags = objectFlags;\n type.members = void 0;\n type.properties = void 0;\n type.callSignatures = void 0;\n type.constructSignatures = void 0;\n type.indexInfos = void 0;\n return type;\n }\n function createTypeofType() {\n return getUnionType(arrayFrom(typeofNEFacts.keys(), getStringLiteralType));\n }\n function createTypeParameter(symbol) {\n return createTypeWithSymbol(262144 /* TypeParameter */, symbol);\n }\n function isReservedMemberName(name) {\n return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) !== 95 /* _ */ && name.charCodeAt(2) !== 64 /* at */ && name.charCodeAt(2) !== 35 /* hash */;\n }\n function getNamedMembers(members) {\n let result;\n members.forEach((symbol, id) => {\n if (isNamedMember(symbol, id)) {\n (result || (result = [])).push(symbol);\n }\n });\n return result || emptyArray;\n }\n function isNamedMember(member, escapedName) {\n return !isReservedMemberName(escapedName) && symbolIsValue(member);\n }\n function getNamedOrIndexSignatureMembers(members) {\n const result = getNamedMembers(members);\n const index = getIndexSymbolFromSymbolTable(members);\n return index ? concatenate(result, [index]) : result;\n }\n function setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos) {\n const resolved = type;\n resolved.members = members;\n resolved.properties = emptyArray;\n resolved.callSignatures = callSignatures;\n resolved.constructSignatures = constructSignatures;\n resolved.indexInfos = indexInfos;\n if (members !== emptySymbols) resolved.properties = getNamedMembers(members);\n return resolved;\n }\n function createAnonymousType(symbol, members, callSignatures, constructSignatures, indexInfos) {\n return setStructuredTypeMembers(createObjectType(16 /* Anonymous */, symbol), members, callSignatures, constructSignatures, indexInfos);\n }\n function getResolvedTypeWithoutAbstractConstructSignatures(type) {\n if (type.constructSignatures.length === 0) return type;\n if (type.objectTypeWithoutAbstractConstructSignatures) return type.objectTypeWithoutAbstractConstructSignatures;\n const constructSignatures = filter(type.constructSignatures, (signature) => !(signature.flags & 4 /* Abstract */));\n if (type.constructSignatures === constructSignatures) return type;\n const typeCopy = createAnonymousType(\n type.symbol,\n type.members,\n type.callSignatures,\n some(constructSignatures) ? constructSignatures : emptyArray,\n type.indexInfos\n );\n type.objectTypeWithoutAbstractConstructSignatures = typeCopy;\n typeCopy.objectTypeWithoutAbstractConstructSignatures = typeCopy;\n return typeCopy;\n }\n function forEachSymbolTableInScope(enclosingDeclaration, callback) {\n let result;\n for (let location = enclosingDeclaration; location; location = location.parent) {\n if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n if (result = callback(\n location.locals,\n /*ignoreQualification*/\n void 0,\n /*isLocalNameLookup*/\n true,\n location\n )) {\n return result;\n }\n }\n switch (location.kind) {\n case 308 /* SourceFile */:\n if (!isExternalOrCommonJsModule(location)) {\n break;\n }\n // falls through\n case 268 /* ModuleDeclaration */:\n const sym = getSymbolOfDeclaration(location);\n if (result = callback(\n (sym == null ? void 0 : sym.exports) || emptySymbols,\n /*ignoreQualification*/\n void 0,\n /*isLocalNameLookup*/\n true,\n location\n )) {\n return result;\n }\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n let table;\n (getSymbolOfDeclaration(location).members || emptySymbols).forEach((memberSymbol, key) => {\n if (memberSymbol.flags & (788968 /* Type */ & ~67108864 /* Assignment */)) {\n (table || (table = createSymbolTable())).set(key, memberSymbol);\n }\n });\n if (table && (result = callback(\n table,\n /*ignoreQualification*/\n void 0,\n /*isLocalNameLookup*/\n false,\n location\n ))) {\n return result;\n }\n break;\n }\n }\n return callback(\n globals,\n /*ignoreQualification*/\n void 0,\n /*isLocalNameLookup*/\n true\n );\n }\n function getQualifiedLeftMeaning(rightMeaning) {\n return rightMeaning === 111551 /* Value */ ? 111551 /* Value */ : 1920 /* Namespace */;\n }\n function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing, visitedSymbolTablesMap = /* @__PURE__ */ new Map()) {\n if (!(symbol && !isPropertyOrMethodDeclarationSymbol(symbol))) {\n return void 0;\n }\n const links = getSymbolLinks(symbol);\n const cache = links.accessibleChainCache || (links.accessibleChainCache = /* @__PURE__ */ new Map());\n const firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, (_, __, ___, node) => node);\n const key = `${useOnlyExternalAliasing ? 0 : 1}|${firstRelevantLocation ? getNodeId(firstRelevantLocation) : 0}|${meaning}`;\n if (cache.has(key)) {\n return cache.get(key);\n }\n const id = getSymbolId(symbol);\n let visitedSymbolTables = visitedSymbolTablesMap.get(id);\n if (!visitedSymbolTables) {\n visitedSymbolTablesMap.set(id, visitedSymbolTables = []);\n }\n const result = forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable);\n cache.set(key, result);\n return result;\n function getAccessibleSymbolChainFromSymbolTable(symbols, ignoreQualification, isLocalNameLookup) {\n if (!pushIfUnique(visitedSymbolTables, symbols)) {\n return void 0;\n }\n const result2 = trySymbolTable(symbols, ignoreQualification, isLocalNameLookup);\n visitedSymbolTables.pop();\n return result2;\n }\n function canQualifySymbol(symbolFromSymbolTable, meaning2) {\n return !needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning2) || // If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too\n !!getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning2), useOnlyExternalAliasing, visitedSymbolTablesMap);\n }\n function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol, ignoreQualification) {\n return (symbol === (resolvedAliasSymbol || symbolFromSymbolTable) || getMergedSymbol(symbol) === getMergedSymbol(resolvedAliasSymbol || symbolFromSymbolTable)) && // if the symbolFromSymbolTable is not external module (it could be if it was determined as ambient external module and would be in globals table)\n // and if symbolFromSymbolTable or alias resolution matches the symbol,\n // check the symbol can be qualified, it is only then this symbol is accessible\n !some(symbolFromSymbolTable.declarations, hasNonGlobalAugmentationExternalModuleSymbol) && (ignoreQualification || canQualifySymbol(getMergedSymbol(symbolFromSymbolTable), meaning));\n }\n function trySymbolTable(symbols, ignoreQualification, isLocalNameLookup) {\n if (isAccessible(\n symbols.get(symbol.escapedName),\n /*resolvedAliasSymbol*/\n void 0,\n ignoreQualification\n )) {\n return [symbol];\n }\n const result2 = forEachEntry(symbols, (symbolFromSymbolTable) => {\n if (symbolFromSymbolTable.flags & 2097152 /* Alias */ && symbolFromSymbolTable.escapedName !== \"export=\" /* ExportEquals */ && symbolFromSymbolTable.escapedName !== \"default\" /* Default */ && !(isUMDExportSymbol(symbolFromSymbolTable) && enclosingDeclaration && isExternalModule(getSourceFileOfNode(enclosingDeclaration))) && (!useOnlyExternalAliasing || some(symbolFromSymbolTable.declarations, isExternalModuleImportEqualsDeclaration)) && (isLocalNameLookup ? !some(symbolFromSymbolTable.declarations, isNamespaceReexportDeclaration) : true) && (ignoreQualification || !getDeclarationOfKind(symbolFromSymbolTable, 282 /* ExportSpecifier */))) {\n const resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable);\n const candidate = getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification);\n if (candidate) {\n return candidate;\n }\n }\n if (symbolFromSymbolTable.escapedName === symbol.escapedName && symbolFromSymbolTable.exportSymbol) {\n if (isAccessible(\n getMergedSymbol(symbolFromSymbolTable.exportSymbol),\n /*resolvedAliasSymbol*/\n void 0,\n ignoreQualification\n )) {\n return [symbol];\n }\n }\n });\n return result2 || (symbols === globals ? getCandidateListForSymbol(globalThisSymbol, globalThisSymbol, ignoreQualification) : void 0);\n }\n function getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification) {\n if (isAccessible(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification)) {\n return [symbolFromSymbolTable];\n }\n const candidateTable = getExportsOfSymbol(resolvedImportedSymbol);\n const accessibleSymbolsFromExports = candidateTable && getAccessibleSymbolChainFromSymbolTable(\n candidateTable,\n /*ignoreQualification*/\n true\n );\n if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) {\n return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports);\n }\n }\n }\n function needsQualification(symbol, enclosingDeclaration, meaning) {\n let qualify = false;\n forEachSymbolTableInScope(enclosingDeclaration, (symbolTable) => {\n let symbolFromSymbolTable = getMergedSymbol(symbolTable.get(symbol.escapedName));\n if (!symbolFromSymbolTable) {\n return false;\n }\n if (symbolFromSymbolTable === symbol) {\n return true;\n }\n const shouldResolveAlias = symbolFromSymbolTable.flags & 2097152 /* Alias */ && !getDeclarationOfKind(symbolFromSymbolTable, 282 /* ExportSpecifier */);\n symbolFromSymbolTable = shouldResolveAlias ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;\n const flags = shouldResolveAlias ? getSymbolFlags(symbolFromSymbolTable) : symbolFromSymbolTable.flags;\n if (flags & meaning) {\n qualify = true;\n return true;\n }\n return false;\n });\n return qualify;\n }\n function isPropertyOrMethodDeclarationSymbol(symbol) {\n if (symbol.declarations && symbol.declarations.length) {\n for (const declaration of symbol.declarations) {\n switch (declaration.kind) {\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n continue;\n default:\n return false;\n }\n }\n return true;\n }\n return false;\n }\n function isTypeSymbolAccessible(typeSymbol, enclosingDeclaration) {\n const access = isSymbolAccessibleWorker(\n typeSymbol,\n enclosingDeclaration,\n 788968 /* Type */,\n /*shouldComputeAliasesToMakeVisible*/\n false,\n /*allowModules*/\n true\n );\n return access.accessibility === 0 /* Accessible */;\n }\n function isValueSymbolAccessible(typeSymbol, enclosingDeclaration) {\n const access = isSymbolAccessibleWorker(\n typeSymbol,\n enclosingDeclaration,\n 111551 /* Value */,\n /*shouldComputeAliasesToMakeVisible*/\n false,\n /*allowModules*/\n true\n );\n return access.accessibility === 0 /* Accessible */;\n }\n function isSymbolAccessibleByFlags(typeSymbol, enclosingDeclaration, flags) {\n const access = isSymbolAccessibleWorker(\n typeSymbol,\n enclosingDeclaration,\n flags,\n /*shouldComputeAliasesToMakeVisible*/\n false,\n /*allowModules*/\n false\n );\n return access.accessibility === 0 /* Accessible */;\n }\n function isAnySymbolAccessible(symbols, enclosingDeclaration, initialSymbol, meaning, shouldComputeAliasesToMakeVisible, allowModules) {\n if (!length(symbols)) return;\n let hadAccessibleChain;\n let earlyModuleBail = false;\n for (const symbol of symbols) {\n const accessibleSymbolChain = getAccessibleSymbolChain(\n symbol,\n enclosingDeclaration,\n meaning,\n /*useOnlyExternalAliasing*/\n false\n );\n if (accessibleSymbolChain) {\n hadAccessibleChain = symbol;\n const hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0], shouldComputeAliasesToMakeVisible);\n if (hasAccessibleDeclarations) {\n return hasAccessibleDeclarations;\n }\n }\n if (allowModules) {\n if (some(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n if (shouldComputeAliasesToMakeVisible) {\n earlyModuleBail = true;\n continue;\n }\n return {\n accessibility: 0 /* Accessible */\n };\n }\n }\n const containers = getContainersOfSymbol(symbol, enclosingDeclaration, meaning);\n const parentResult = isAnySymbolAccessible(containers, enclosingDeclaration, initialSymbol, initialSymbol === symbol ? getQualifiedLeftMeaning(meaning) : meaning, shouldComputeAliasesToMakeVisible, allowModules);\n if (parentResult) {\n return parentResult;\n }\n }\n if (earlyModuleBail) {\n return {\n accessibility: 0 /* Accessible */\n };\n }\n if (hadAccessibleChain) {\n return {\n accessibility: 1 /* NotAccessible */,\n errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),\n errorModuleName: hadAccessibleChain !== initialSymbol ? symbolToString(hadAccessibleChain, enclosingDeclaration, 1920 /* Namespace */) : void 0\n };\n }\n }\n function isSymbolAccessible(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible) {\n return isSymbolAccessibleWorker(\n symbol,\n enclosingDeclaration,\n meaning,\n shouldComputeAliasesToMakeVisible,\n /*allowModules*/\n true\n );\n }\n function isSymbolAccessibleWorker(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible, allowModules) {\n if (symbol && enclosingDeclaration) {\n const result = isAnySymbolAccessible([symbol], enclosingDeclaration, symbol, meaning, shouldComputeAliasesToMakeVisible, allowModules);\n if (result) {\n return result;\n }\n const symbolExternalModule = forEach(symbol.declarations, getExternalModuleContainer);\n if (symbolExternalModule) {\n const enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration);\n if (symbolExternalModule !== enclosingExternalModule) {\n return {\n accessibility: 2 /* CannotBeNamed */,\n errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning),\n errorModuleName: symbolToString(symbolExternalModule),\n errorNode: isInJSFile(enclosingDeclaration) ? enclosingDeclaration : void 0\n };\n }\n }\n return {\n accessibility: 1 /* NotAccessible */,\n errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning)\n };\n }\n return { accessibility: 0 /* Accessible */ };\n }\n function getExternalModuleContainer(declaration) {\n const node = findAncestor(declaration, hasExternalModuleSymbol);\n return node && getSymbolOfDeclaration(node);\n }\n function hasExternalModuleSymbol(declaration) {\n return isAmbientModule(declaration) || declaration.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(declaration);\n }\n function hasNonGlobalAugmentationExternalModuleSymbol(declaration) {\n return isModuleWithStringLiteralName(declaration) || declaration.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(declaration);\n }\n function hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) {\n let aliasesToMakeVisible;\n if (!every(filter(symbol.declarations, (d) => d.kind !== 80 /* Identifier */), getIsDeclarationVisible)) {\n return void 0;\n }\n return { accessibility: 0 /* Accessible */, aliasesToMakeVisible };\n function getIsDeclarationVisible(declaration) {\n var _a, _b;\n if (!isDeclarationVisible(declaration)) {\n const anyImportSyntax = getAnyImportSyntax(declaration);\n if (anyImportSyntax && !hasSyntacticModifier(anyImportSyntax, 32 /* Export */) && // import clause without export\n isDeclarationVisible(anyImportSyntax.parent)) {\n return addVisibleAlias(declaration, anyImportSyntax);\n } else if (isVariableDeclaration(declaration) && isVariableStatement(declaration.parent.parent) && !hasSyntacticModifier(declaration.parent.parent, 32 /* Export */) && // unexported variable statement\n isDeclarationVisible(declaration.parent.parent.parent)) {\n return addVisibleAlias(declaration, declaration.parent.parent);\n } else if (isLateVisibilityPaintedStatement(declaration) && !hasSyntacticModifier(declaration, 32 /* Export */) && isDeclarationVisible(declaration.parent)) {\n return addVisibleAlias(declaration, declaration);\n } else if (isBindingElement(declaration)) {\n if (symbol.flags & 2097152 /* Alias */ && isInJSFile(declaration) && ((_a = declaration.parent) == null ? void 0 : _a.parent) && isVariableDeclaration(declaration.parent.parent) && ((_b = declaration.parent.parent.parent) == null ? void 0 : _b.parent) && isVariableStatement(declaration.parent.parent.parent.parent) && !hasSyntacticModifier(declaration.parent.parent.parent.parent, 32 /* Export */) && declaration.parent.parent.parent.parent.parent && isDeclarationVisible(declaration.parent.parent.parent.parent.parent)) {\n return addVisibleAlias(declaration, declaration.parent.parent.parent.parent);\n } else if (symbol.flags & 2 /* BlockScopedVariable */) {\n const rootDeclaration = walkUpBindingElementsAndPatterns(declaration);\n if (rootDeclaration.kind === 170 /* Parameter */) {\n return false;\n }\n const variableStatement = rootDeclaration.parent.parent;\n if (variableStatement.kind !== 244 /* VariableStatement */) {\n return false;\n }\n if (hasSyntacticModifier(variableStatement, 32 /* Export */)) {\n return true;\n }\n if (!isDeclarationVisible(variableStatement.parent)) {\n return false;\n }\n return addVisibleAlias(declaration, variableStatement);\n }\n }\n return false;\n }\n return true;\n }\n function addVisibleAlias(declaration, aliasingStatement) {\n if (shouldComputeAliasToMakeVisible) {\n getNodeLinks(declaration).isVisible = true;\n aliasesToMakeVisible = appendIfUnique(aliasesToMakeVisible, aliasingStatement);\n }\n return true;\n }\n }\n function getMeaningOfEntityNameReference(entityName) {\n let meaning;\n if (entityName.parent.kind === 187 /* TypeQuery */ || entityName.parent.kind === 234 /* ExpressionWithTypeArguments */ && !isPartOfTypeNode(entityName.parent) || entityName.parent.kind === 168 /* ComputedPropertyName */ || entityName.parent.kind === 183 /* TypePredicate */ && entityName.parent.parameterName === entityName) {\n meaning = 111551 /* Value */ | 1048576 /* ExportValue */;\n } else if (entityName.kind === 167 /* QualifiedName */ || entityName.kind === 212 /* PropertyAccessExpression */ || entityName.parent.kind === 272 /* ImportEqualsDeclaration */ || entityName.parent.kind === 167 /* QualifiedName */ && entityName.parent.left === entityName || entityName.parent.kind === 212 /* PropertyAccessExpression */ && entityName.parent.expression === entityName || entityName.parent.kind === 213 /* ElementAccessExpression */ && entityName.parent.expression === entityName) {\n meaning = 1920 /* Namespace */;\n } else {\n meaning = 788968 /* Type */;\n }\n return meaning;\n }\n function isEntityNameVisible(entityName, enclosingDeclaration, shouldComputeAliasToMakeVisible = true) {\n const meaning = getMeaningOfEntityNameReference(entityName);\n const firstIdentifier = getFirstIdentifier(entityName);\n const symbol = resolveName(\n enclosingDeclaration,\n firstIdentifier.escapedText,\n meaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n if (symbol && symbol.flags & 262144 /* TypeParameter */ && meaning & 788968 /* Type */) {\n return { accessibility: 0 /* Accessible */ };\n }\n if (!symbol && isThisIdentifier(firstIdentifier) && isSymbolAccessible(\n getSymbolOfDeclaration(getThisContainer(\n firstIdentifier,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n )),\n firstIdentifier,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility === 0 /* Accessible */) {\n return { accessibility: 0 /* Accessible */ };\n }\n if (!symbol) {\n return {\n accessibility: 3 /* NotResolved */,\n errorSymbolName: getTextOfNode(firstIdentifier),\n errorNode: firstIdentifier\n };\n }\n return hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) || {\n accessibility: 1 /* NotAccessible */,\n errorSymbolName: getTextOfNode(firstIdentifier),\n errorNode: firstIdentifier\n };\n }\n function symbolToString(symbol, enclosingDeclaration, meaning, flags = 4 /* AllowAnyNodeKind */, writer) {\n let nodeFlags = 70221824 /* IgnoreErrors */;\n let internalNodeFlags = 0 /* None */;\n if (flags & 2 /* UseOnlyExternalAliasing */) {\n nodeFlags |= 128 /* UseOnlyExternalAliasing */;\n }\n if (flags & 1 /* WriteTypeParametersOrArguments */) {\n nodeFlags |= 512 /* WriteTypeParametersInQualifiedName */;\n }\n if (flags & 8 /* UseAliasDefinedOutsideCurrentScope */) {\n nodeFlags |= 16384 /* UseAliasDefinedOutsideCurrentScope */;\n }\n if (flags & 32 /* DoNotIncludeSymbolChain */) {\n internalNodeFlags |= 4 /* DoNotIncludeSymbolChain */;\n }\n if (flags & 16 /* WriteComputedProps */) {\n internalNodeFlags |= 1 /* WriteComputedProps */;\n }\n const builder = flags & 4 /* AllowAnyNodeKind */ ? nodeBuilder.symbolToNode : nodeBuilder.symbolToEntityName;\n return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);\n function symbolToStringWorker(writer2) {\n const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags, internalNodeFlags);\n const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();\n const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n printer.writeNode(\n 4 /* Unspecified */,\n entity,\n /*sourceFile*/\n sourceFile,\n writer2\n );\n return writer2;\n }\n }\n function signatureToString(signature, enclosingDeclaration, flags = 0 /* None */, kind, writer, maximumLength, verbosityLevel, out) {\n return writer ? signatureToStringWorker(writer).getText() : usingSingleLineStringWriter(signatureToStringWorker);\n function signatureToStringWorker(writer2) {\n let sigOutput;\n if (flags & 262144 /* WriteArrowStyleSignature */) {\n sigOutput = kind === 1 /* Construct */ ? 186 /* ConstructorType */ : 185 /* FunctionType */;\n } else {\n sigOutput = kind === 1 /* Construct */ ? 181 /* ConstructSignature */ : 180 /* CallSignature */;\n }\n const sig = nodeBuilder.signatureToSignatureDeclaration(\n signature,\n sigOutput,\n enclosingDeclaration,\n toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */,\n /*internalFlags*/\n void 0,\n /*tracker*/\n void 0,\n maximumLength,\n verbosityLevel,\n out\n );\n const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();\n const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n printer.writeNode(\n 4 /* Unspecified */,\n sig,\n /*sourceFile*/\n sourceFile,\n getTrailingSemicolonDeferringWriter(writer2)\n );\n return writer2;\n }\n }\n function typeToString(type, enclosingDeclaration, flags = 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */, writer = createTextWriter(\"\"), maximumLength, verbosityLevel, out) {\n const noTruncation = !maximumLength && compilerOptions.noErrorTruncation || flags & 1 /* NoTruncation */;\n const typeNode = nodeBuilder.typeToTypeNode(\n type,\n enclosingDeclaration,\n toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0),\n /*internalFlags*/\n void 0,\n /*tracker*/\n void 0,\n maximumLength,\n verbosityLevel,\n out\n );\n if (typeNode === void 0) return Debug.fail(\"should always get typenode\");\n const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();\n const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n printer.writeNode(\n 4 /* Unspecified */,\n typeNode,\n /*sourceFile*/\n sourceFile,\n writer\n );\n const result = writer.getText();\n const maxLength2 = maximumLength || (noTruncation ? noTruncationMaximumTruncationLength * 2 : defaultMaximumTruncationLength * 2);\n if (maxLength2 && result && result.length >= maxLength2) {\n return result.substr(0, maxLength2 - \"...\".length) + \"...\";\n }\n return result;\n }\n function getTypeNamesForErrorDisplay(left, right) {\n let leftStr = symbolValueDeclarationIsContextSensitive(left.symbol) ? typeToString(left, left.symbol.valueDeclaration) : typeToString(left);\n let rightStr = symbolValueDeclarationIsContextSensitive(right.symbol) ? typeToString(right, right.symbol.valueDeclaration) : typeToString(right);\n if (leftStr === rightStr) {\n leftStr = getTypeNameForErrorDisplay(left);\n rightStr = getTypeNameForErrorDisplay(right);\n }\n return [leftStr, rightStr];\n }\n function getTypeNameForErrorDisplay(type) {\n return typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 64 /* UseFullyQualifiedType */\n );\n }\n function symbolValueDeclarationIsContextSensitive(symbol) {\n return symbol && !!symbol.valueDeclaration && isExpression(symbol.valueDeclaration) && !isContextSensitive(symbol.valueDeclaration);\n }\n function toNodeBuilderFlags(flags = 0 /* None */) {\n return flags & 848330095 /* NodeBuilderFlagsMask */;\n }\n function isClassInstanceSide(type) {\n return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(type.flags & 524288 /* Object */) && !!(getObjectFlags(type) & 16777216 /* IsClassInstanceClone */));\n }\n function getTypeFromTypeNodeWithoutContext(node) {\n return getTypeFromTypeNode(node);\n }\n function createNodeBuilder() {\n const syntacticBuilderResolver = {\n evaluateEntityNameExpression,\n isExpandoFunctionDeclaration,\n hasLateBindableName,\n shouldRemoveDeclaration(context, node) {\n return !(context.internalFlags & 8 /* AllowUnresolvedNames */ && isEntityNameExpression(node.name.expression) && checkComputedPropertyName(node.name).flags & 1 /* Any */);\n },\n createRecoveryBoundary(context) {\n return createRecoveryBoundary(context);\n },\n isDefinitelyReferenceToGlobalSymbolObject,\n getAllAccessorDeclarations: getAllAccessorDeclarationsForDeclaration,\n requiresAddingImplicitUndefined(declaration, symbol, enclosingDeclaration) {\n var _a;\n switch (declaration.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 349 /* JSDocPropertyTag */:\n symbol ?? (symbol = getSymbolOfDeclaration(declaration));\n const type = getTypeOfSymbol(symbol);\n return !!(symbol.flags & 4 /* Property */ && symbol.flags & 16777216 /* Optional */ && isOptionalDeclaration(declaration) && ((_a = symbol.links) == null ? void 0 : _a.mappedType) && containsNonMissingUndefinedType(type));\n case 170 /* Parameter */:\n case 342 /* JSDocParameterTag */:\n return requiresAddingImplicitUndefined(declaration, enclosingDeclaration);\n default:\n Debug.assertNever(declaration);\n }\n },\n isOptionalParameter,\n isUndefinedIdentifierExpression(node) {\n return getSymbolAtLocation(node) === undefinedSymbol;\n },\n isEntityNameVisible(context, entityName, shouldComputeAliasToMakeVisible) {\n return isEntityNameVisible(entityName, context.enclosingDeclaration, shouldComputeAliasToMakeVisible);\n },\n serializeExistingTypeNode(context, typeNode, addUndefined) {\n return serializeExistingTypeNode(context, typeNode, !!addUndefined);\n },\n serializeReturnTypeForSignature(syntacticContext, signatureDeclaration, symbol) {\n const context = syntacticContext;\n const signature = getSignatureFromDeclaration(signatureDeclaration);\n symbol ?? (symbol = getSymbolOfDeclaration(signatureDeclaration));\n const returnType = context.enclosingSymbolTypes.get(getSymbolId(symbol)) ?? instantiateType(getReturnTypeOfSignature(signature), context.mapper);\n return serializeInferredReturnTypeForSignature(context, signature, returnType);\n },\n serializeTypeOfExpression(syntacticContext, expr) {\n const context = syntacticContext;\n const type = instantiateType(getWidenedType(getRegularTypeOfExpression(expr)), context.mapper);\n return typeToTypeNodeHelper(type, context);\n },\n serializeTypeOfDeclaration(syntacticContext, declaration, symbol) {\n var _a;\n const context = syntacticContext;\n symbol ?? (symbol = getSymbolOfDeclaration(declaration));\n let type = (_a = context.enclosingSymbolTypes) == null ? void 0 : _a.get(getSymbolId(symbol));\n if (type === void 0) {\n type = symbol.flags & 98304 /* Accessor */ && declaration.kind === 179 /* SetAccessor */ ? instantiateType(getWriteTypeOfSymbol(symbol), context.mapper) : symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? instantiateType(getWidenedLiteralType(getTypeOfSymbol(symbol)), context.mapper) : errorType;\n }\n const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);\n if (addUndefinedForParameter) {\n type = getOptionalType(type);\n }\n return serializeInferredTypeForDeclaration(symbol, context, type);\n },\n serializeNameOfParameter(context, parameter) {\n return parameterToParameterDeclarationName(getSymbolOfDeclaration(parameter), parameter, context);\n },\n serializeEntityName(syntacticContext, node) {\n const context = syntacticContext;\n const symbol = getSymbolAtLocation(\n node,\n /*ignoreErrors*/\n true\n );\n if (!symbol) return void 0;\n if (!isValueSymbolAccessible(symbol, context.enclosingDeclaration)) return void 0;\n return symbolToExpression(symbol, context, 111551 /* Value */ | 1048576 /* ExportValue */);\n },\n serializeTypeName(context, node, isTypeOf, typeArguments) {\n return serializeTypeName(context, node, isTypeOf, typeArguments);\n },\n getJsDocPropertyOverride(syntacticContext, jsDocTypeLiteral, jsDocProperty) {\n const context = syntacticContext;\n const name = isIdentifier(jsDocProperty.name) ? jsDocProperty.name : jsDocProperty.name.right;\n const typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode2(context, jsDocTypeLiteral), name.escapedText);\n const overrideTypeNode = typeViaParent && jsDocProperty.typeExpression && getTypeFromTypeNode2(context, jsDocProperty.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : void 0;\n return overrideTypeNode;\n },\n enterNewScope(context, node) {\n if (isFunctionLike(node) || isJSDocSignature(node)) {\n const signature = getSignatureFromDeclaration(node);\n return enterNewScope(context, node, signature.parameters, signature.typeParameters);\n } else {\n const typeParameters = isConditionalTypeNode(node) ? getInferTypeParameters(node) : [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter))];\n return enterNewScope(\n context,\n node,\n /*expandedParams*/\n void 0,\n typeParameters\n );\n }\n },\n markNodeReuse(context, range, location) {\n return setTextRange2(context, range, location);\n },\n trackExistingEntityName(context, node) {\n return trackExistingEntityName(node, context);\n },\n trackComputedName(context, accessExpression) {\n trackComputedName(accessExpression, context.enclosingDeclaration, context);\n },\n getModuleSpecifierOverride(syntacticContext, parent2, lit) {\n const context = syntacticContext;\n if (context.bundled || context.enclosingFile !== getSourceFileOfNode(lit)) {\n let name = lit.text;\n const originalName = name;\n const nodeSymbol = getNodeLinks(parent2).resolvedSymbol;\n const meaning = parent2.isTypeOf ? 111551 /* Value */ : 788968 /* Type */;\n const parentSymbol = nodeSymbol && isSymbolAccessible(\n nodeSymbol,\n context.enclosingDeclaration,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility === 0 /* Accessible */ && lookupSymbolChain(\n nodeSymbol,\n context,\n meaning,\n /*yieldModuleSymbol*/\n true\n )[0];\n if (parentSymbol && isExternalModuleSymbol(parentSymbol)) {\n name = getSpecifierForModuleSymbol(parentSymbol, context);\n } else {\n const targetFile = getExternalModuleFileFromDeclaration(parent2);\n if (targetFile) {\n name = getSpecifierForModuleSymbol(targetFile.symbol, context);\n }\n }\n if (name.includes(\"/node_modules/\")) {\n context.encounteredError = true;\n if (context.tracker.reportLikelyUnsafeImportRequiredError) {\n context.tracker.reportLikelyUnsafeImportRequiredError(name);\n }\n }\n if (name !== originalName) {\n return name;\n }\n }\n },\n canReuseTypeNode(context, typeNode) {\n return canReuseTypeNode(context, typeNode);\n },\n canReuseTypeNodeAnnotation(syntacticContext, node, existing, symbol, requiresAddingUndefined) {\n var _a;\n const context = syntacticContext;\n if (context.enclosingDeclaration === void 0) return false;\n symbol ?? (symbol = getSymbolOfDeclaration(node));\n let type = (_a = context.enclosingSymbolTypes) == null ? void 0 : _a.get(getSymbolId(symbol));\n if (type === void 0) {\n if (symbol.flags & 98304 /* Accessor */) {\n type = node.kind === 179 /* SetAccessor */ ? getWriteTypeOfSymbol(symbol) : getTypeOfAccessors(symbol);\n } else if (isValueSignatureDeclaration(node)) {\n type = getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n } else {\n type = getTypeOfSymbol(symbol);\n }\n }\n let annotationType = getTypeFromTypeNodeWithoutContext(existing);\n if (isErrorType(annotationType)) {\n return true;\n }\n if (requiresAddingUndefined && annotationType) {\n annotationType = addOptionality(annotationType, !isParameter(node));\n }\n return !!annotationType && typeNodeIsEquivalentToType(node, type, annotationType) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type);\n }\n };\n return {\n syntacticBuilderResolver,\n typeToTypeNode: (type, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => typeToTypeNodeHelper(type, context), out),\n typePredicateToTypePredicateNode: (typePredicate, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => typePredicateToTypePredicateNodeHelper(typePredicate, context)\n ),\n serializeTypeForDeclaration: (declaration, symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => syntacticNodeBuilder.serializeTypeOfDeclaration(declaration, symbol, context)\n ),\n serializeReturnTypeForSignature: (signature, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => syntacticNodeBuilder.serializeReturnTypeForSignature(signature, getSymbolOfDeclaration(signature), context)\n ),\n serializeTypeForExpression: (expr, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => syntacticNodeBuilder.serializeTypeOfExpression(expr, context)\n ),\n indexInfoToIndexSignatureDeclaration: (indexInfo, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => indexInfoToIndexSignatureDeclarationHelper(\n indexInfo,\n context,\n /*typeNode*/\n void 0\n )\n ),\n signatureToSignatureDeclaration: (signature, kind, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => signatureToSignatureDeclarationHelper(signature, kind, context), out),\n symbolToEntityName: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => symbolToName(\n symbol,\n context,\n meaning,\n /*expectsIdentifier*/\n false\n )\n ),\n symbolToExpression: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => symbolToExpression(symbol, context, meaning)\n ),\n symbolToTypeParameterDeclarations: (symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => typeParametersToTypeParameterDeclarations(symbol, context)\n ),\n symbolToParameterDeclaration: (symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => symbolToParameterDeclaration(symbol, context)\n ),\n typeParameterToDeclaration: (parameter, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => typeParameterToDeclaration(parameter, context), out),\n symbolTableToDeclarationStatements: (symbolTable, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => symbolTableToDeclarationStatements(symbolTable, context)\n ),\n symbolToNode: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n enclosingDeclaration,\n flags,\n internalFlags,\n tracker,\n /*maximumLength*/\n void 0,\n /*verbosityLevel*/\n void 0,\n (context) => symbolToNode(symbol, context, meaning)\n ),\n symbolToDeclarations\n };\n function getTypeFromTypeNode2(context, node, noMappedTypes) {\n const type = getTypeFromTypeNodeWithoutContext(node);\n if (!context.mapper) return type;\n const mappedType = instantiateType(type, context.mapper);\n return noMappedTypes && mappedType !== type ? void 0 : mappedType;\n }\n function setTextRange2(context, range, location) {\n if (!nodeIsSynthesized(range) || !(range.flags & 16 /* Synthesized */) || !context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(getOriginalNode(range))) {\n range = factory.cloneNode(range);\n }\n if (range === location) return range;\n if (!location) {\n return range;\n }\n let original = range.original;\n while (original && original !== location) {\n original = original.original;\n }\n if (!original) {\n setOriginalNode(range, location);\n }\n if (context.enclosingFile && context.enclosingFile === getSourceFileOfNode(getOriginalNode(location))) {\n return setTextRange(range, location);\n }\n return range;\n }\n function symbolToNode(symbol, context, meaning) {\n if (context.internalFlags & 1 /* WriteComputedProps */) {\n if (symbol.valueDeclaration) {\n const name = getNameOfDeclaration(symbol.valueDeclaration);\n if (name && isComputedPropertyName(name)) return name;\n }\n const nameType = getSymbolLinks(symbol).nameType;\n if (nameType && nameType.flags & (1024 /* EnumLiteral */ | 8192 /* UniqueESSymbol */)) {\n context.enclosingDeclaration = nameType.symbol.valueDeclaration;\n return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning));\n }\n }\n return symbolToExpression(symbol, context, meaning);\n }\n function symbolToDeclarations(symbol, meaning, flags, maximumLength, verbosityLevel, out) {\n const nodes = withContext2(\n /*enclosingDeclaration*/\n void 0,\n flags,\n /*internalFlags*/\n void 0,\n /*tracker*/\n void 0,\n maximumLength,\n verbosityLevel,\n (context) => symbolToDeclarationsWorker(symbol, context),\n out\n );\n return mapDefined(nodes, (node) => {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n return simplifyClassDeclaration(node, symbol);\n case 267 /* EnumDeclaration */:\n return simplifyModifiers(node, isEnumDeclaration, symbol);\n case 265 /* InterfaceDeclaration */:\n return simplifyInterfaceDeclaration(node, symbol, meaning);\n case 268 /* ModuleDeclaration */:\n return simplifyModifiers(node, isModuleDeclaration, symbol);\n default:\n return void 0;\n }\n });\n }\n function simplifyClassDeclaration(classDecl, symbol) {\n const classDeclarations = filter(symbol.declarations, isClassLike);\n const originalClassDecl = classDeclarations && classDeclarations.length > 0 ? classDeclarations[0] : classDecl;\n const modifiers = getEffectiveModifierFlags(originalClassDecl) & ~(32 /* Export */ | 128 /* Ambient */);\n const isAnonymous = isClassExpression(originalClassDecl);\n if (isAnonymous) {\n classDecl = factory.updateClassDeclaration(\n classDecl,\n classDecl.modifiers,\n /*name*/\n void 0,\n classDecl.typeParameters,\n classDecl.heritageClauses,\n classDecl.members\n );\n }\n return factory.replaceModifiers(classDecl, modifiers);\n }\n function simplifyModifiers(newDecl, isDeclKind, symbol) {\n const decls = filter(symbol.declarations, isDeclKind);\n const declWithModifiers = decls && decls.length > 0 ? decls[0] : newDecl;\n const modifiers = getEffectiveModifierFlags(declWithModifiers) & ~(32 /* Export */ | 128 /* Ambient */);\n return factory.replaceModifiers(newDecl, modifiers);\n }\n function simplifyInterfaceDeclaration(interfaceDecl, symbol, meaning) {\n if (!(meaning & 64 /* Interface */)) {\n return void 0;\n }\n return simplifyModifiers(interfaceDecl, isInterfaceDeclaration, symbol);\n }\n function symbolToDeclarationsWorker(symbol, context) {\n const type = getDeclaredTypeOfSymbol(symbol);\n context.typeStack.push(type.id);\n context.typeStack.push(-1);\n const table = createSymbolTable([symbol]);\n const statements = symbolTableToDeclarationStatements(table, context);\n context.typeStack.pop();\n context.typeStack.pop();\n return statements;\n }\n function withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, cb, out) {\n const moduleResolverHost = (tracker == null ? void 0 : tracker.trackSymbol) ? tracker.moduleResolverHost : (internalFlags || 0 /* None */) & 4 /* DoNotIncludeSymbolChain */ ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : void 0;\n flags = flags || 0 /* None */;\n const maxTruncationLength = maximumLength || (flags & 1 /* NoTruncation */ ? noTruncationMaximumTruncationLength : defaultMaximumTruncationLength);\n const context = {\n enclosingDeclaration,\n enclosingFile: enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration),\n flags,\n internalFlags: internalFlags || 0 /* None */,\n tracker: void 0,\n maxTruncationLength,\n maxExpansionDepth: verbosityLevel ?? -1,\n encounteredError: false,\n suppressReportInferenceFallback: false,\n reportedDiagnostic: false,\n visitedTypes: void 0,\n symbolDepth: void 0,\n inferTypeParameters: void 0,\n approximateLength: 0,\n trackedSymbols: void 0,\n bundled: !!compilerOptions.outFile && !!enclosingDeclaration && isExternalOrCommonJsModule(getSourceFileOfNode(enclosingDeclaration)),\n truncating: false,\n usedSymbolNames: void 0,\n remappedSymbolNames: void 0,\n remappedSymbolReferences: void 0,\n reverseMappedStack: void 0,\n mustCreateTypeParameterSymbolList: true,\n typeParameterSymbolList: void 0,\n mustCreateTypeParametersNamesLookups: true,\n typeParameterNames: void 0,\n typeParameterNamesByText: void 0,\n typeParameterNamesByTextNextNameCount: void 0,\n enclosingSymbolTypes: /* @__PURE__ */ new Map(),\n mapper: void 0,\n depth: 0,\n typeStack: [],\n out: {\n canIncreaseExpansionDepth: false,\n truncated: false\n }\n };\n context.tracker = new SymbolTrackerImpl(context, tracker, moduleResolverHost);\n const resultingNode = cb(context);\n if (context.truncating && context.flags & 1 /* NoTruncation */) {\n context.tracker.reportTruncationError();\n }\n if (out) {\n out.canIncreaseExpansionDepth = context.out.canIncreaseExpansionDepth;\n out.truncated = context.out.truncated;\n }\n return context.encounteredError ? void 0 : resultingNode;\n }\n function addSymbolTypeToContext(context, symbol, type) {\n const id = getSymbolId(symbol);\n const oldType = context.enclosingSymbolTypes.get(id);\n context.enclosingSymbolTypes.set(id, type);\n return restore;\n function restore() {\n if (oldType) {\n context.enclosingSymbolTypes.set(id, oldType);\n } else {\n context.enclosingSymbolTypes.delete(id);\n }\n }\n }\n function saveRestoreFlags(context) {\n const flags = context.flags;\n const internalFlags = context.internalFlags;\n const depth = context.depth;\n return restore;\n function restore() {\n context.flags = flags;\n context.internalFlags = internalFlags;\n context.depth = depth;\n }\n }\n function checkTruncationLengthIfExpanding(context) {\n return context.maxExpansionDepth >= 0 && checkTruncationLength(context);\n }\n function checkTruncationLength(context) {\n if (context.truncating) return context.truncating;\n return context.truncating = context.approximateLength > context.maxTruncationLength;\n }\n function canPossiblyExpandType(type, context) {\n for (let i = 0; i < context.typeStack.length - 1; i++) {\n if (context.typeStack[i] === type.id) {\n return false;\n }\n }\n return context.depth < context.maxExpansionDepth || context.depth === context.maxExpansionDepth && !context.out.canIncreaseExpansionDepth;\n }\n function shouldExpandType(type, context, isAlias = false) {\n if (!isAlias && isLibType(type)) {\n return false;\n }\n for (let i = 0; i < context.typeStack.length - 1; i++) {\n if (context.typeStack[i] === type.id) {\n return false;\n }\n }\n const result = context.depth < context.maxExpansionDepth;\n if (!result) {\n context.out.canIncreaseExpansionDepth = true;\n }\n return result;\n }\n function typeToTypeNodeHelper(type, context) {\n const restoreFlags = saveRestoreFlags(context);\n if (type) context.typeStack.push(type.id);\n const typeNode = typeToTypeNodeWorker(type, context);\n if (type) context.typeStack.pop();\n restoreFlags();\n return typeNode;\n }\n function typeToTypeNodeWorker(type, context) {\n var _a, _b;\n if (cancellationToken && cancellationToken.throwIfCancellationRequested) {\n cancellationToken.throwIfCancellationRequested();\n }\n const inTypeAlias = context.flags & 8388608 /* InTypeAlias */;\n context.flags &= ~8388608 /* InTypeAlias */;\n let expandingEnum = false;\n if (!type) {\n if (!(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) {\n context.encounteredError = true;\n return void 0;\n }\n context.approximateLength += 3;\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n if (!(context.flags & 536870912 /* NoTypeReduction */)) {\n type = getReducedType(type);\n }\n if (type.flags & 1 /* Any */) {\n if (type.aliasSymbol) {\n return factory.createTypeReferenceNode(symbolToEntityNameNode(type.aliasSymbol), mapToTypeNodes(type.aliasTypeArguments, context));\n }\n if (type === unresolvedType) {\n return addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"unresolved\");\n }\n context.approximateLength += 3;\n return factory.createKeywordTypeNode(type === intrinsicMarkerType ? 141 /* IntrinsicKeyword */ : 133 /* AnyKeyword */);\n }\n if (type.flags & 2 /* Unknown */) {\n return factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n }\n if (type.flags & 4 /* String */) {\n context.approximateLength += 6;\n return factory.createKeywordTypeNode(154 /* StringKeyword */);\n }\n if (type.flags & 8 /* Number */) {\n context.approximateLength += 6;\n return factory.createKeywordTypeNode(150 /* NumberKeyword */);\n }\n if (type.flags & 64 /* BigInt */) {\n context.approximateLength += 6;\n return factory.createKeywordTypeNode(163 /* BigIntKeyword */);\n }\n if (type.flags & 16 /* Boolean */ && !type.aliasSymbol) {\n context.approximateLength += 7;\n return factory.createKeywordTypeNode(136 /* BooleanKeyword */);\n }\n if (type.flags & 1056 /* EnumLike */) {\n if (type.symbol.flags & 8 /* EnumMember */) {\n const parentSymbol = getParentOfSymbol(type.symbol);\n const parentName = symbolToTypeNode(parentSymbol, context, 788968 /* Type */);\n if (getDeclaredTypeOfSymbol(parentSymbol) === type) {\n return parentName;\n }\n const memberName = symbolName(type.symbol);\n if (isIdentifierText(memberName, 1 /* ES5 */)) {\n return appendReferenceToType(\n parentName,\n factory.createTypeReferenceNode(\n memberName,\n /*typeArguments*/\n void 0\n )\n );\n }\n if (isImportTypeNode(parentName)) {\n parentName.isTypeOf = true;\n return factory.createIndexedAccessTypeNode(parentName, factory.createLiteralTypeNode(factory.createStringLiteral(memberName)));\n } else if (isTypeReferenceNode(parentName)) {\n return factory.createIndexedAccessTypeNode(factory.createTypeQueryNode(parentName.typeName), factory.createLiteralTypeNode(factory.createStringLiteral(memberName)));\n } else {\n return Debug.fail(\"Unhandled type node kind returned from `symbolToTypeNode`.\");\n }\n }\n if (!shouldExpandType(type, context)) {\n return symbolToTypeNode(type.symbol, context, 788968 /* Type */);\n } else {\n expandingEnum = true;\n }\n }\n if (type.flags & 128 /* StringLiteral */) {\n context.approximateLength += type.value.length + 2;\n return factory.createLiteralTypeNode(setEmitFlags(factory.createStringLiteral(type.value, !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */)), 16777216 /* NoAsciiEscaping */));\n }\n if (type.flags & 256 /* NumberLiteral */) {\n const value = type.value;\n context.approximateLength += (\"\" + value).length;\n return factory.createLiteralTypeNode(value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-value)) : factory.createNumericLiteral(value));\n }\n if (type.flags & 2048 /* BigIntLiteral */) {\n context.approximateLength += pseudoBigIntToString(type.value).length + 1;\n return factory.createLiteralTypeNode(factory.createBigIntLiteral(type.value));\n }\n if (type.flags & 512 /* BooleanLiteral */) {\n context.approximateLength += type.intrinsicName.length;\n return factory.createLiteralTypeNode(type.intrinsicName === \"true\" ? factory.createTrue() : factory.createFalse());\n }\n if (type.flags & 8192 /* UniqueESSymbol */) {\n if (!(context.flags & 1048576 /* AllowUniqueESSymbolType */)) {\n if (isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)) {\n context.approximateLength += 6;\n return symbolToTypeNode(type.symbol, context, 111551 /* Value */);\n }\n if (context.tracker.reportInaccessibleUniqueSymbolError) {\n context.tracker.reportInaccessibleUniqueSymbolError();\n }\n }\n context.approximateLength += 13;\n return factory.createTypeOperatorNode(158 /* UniqueKeyword */, factory.createKeywordTypeNode(155 /* SymbolKeyword */));\n }\n if (type.flags & 16384 /* Void */) {\n context.approximateLength += 4;\n return factory.createKeywordTypeNode(116 /* VoidKeyword */);\n }\n if (type.flags & 32768 /* Undefined */) {\n context.approximateLength += 9;\n return factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n }\n if (type.flags & 65536 /* Null */) {\n context.approximateLength += 4;\n return factory.createLiteralTypeNode(factory.createNull());\n }\n if (type.flags & 131072 /* Never */) {\n context.approximateLength += 5;\n return factory.createKeywordTypeNode(146 /* NeverKeyword */);\n }\n if (type.flags & 4096 /* ESSymbol */) {\n context.approximateLength += 6;\n return factory.createKeywordTypeNode(155 /* SymbolKeyword */);\n }\n if (type.flags & 67108864 /* NonPrimitive */) {\n context.approximateLength += 6;\n return factory.createKeywordTypeNode(151 /* ObjectKeyword */);\n }\n if (isThisTypeParameter(type)) {\n if (context.flags & 4194304 /* InObjectTypeLiteral */) {\n if (!context.encounteredError && !(context.flags & 32768 /* AllowThisInObjectLiteral */)) {\n context.encounteredError = true;\n }\n (_b = (_a = context.tracker).reportInaccessibleThisError) == null ? void 0 : _b.call(_a);\n }\n context.approximateLength += 4;\n return factory.createThisTypeNode();\n }\n if (!inTypeAlias && type.aliasSymbol && (context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */ || isTypeSymbolAccessible(type.aliasSymbol, context.enclosingDeclaration))) {\n if (!shouldExpandType(\n type,\n context,\n /*isAlias*/\n true\n )) {\n const typeArgumentNodes = mapToTypeNodes(type.aliasTypeArguments, context);\n if (isReservedMemberName(type.aliasSymbol.escapedName) && !(type.aliasSymbol.flags & 32 /* Class */)) return factory.createTypeReferenceNode(factory.createIdentifier(\"\"), typeArgumentNodes);\n if (length(typeArgumentNodes) === 1 && type.aliasSymbol === globalArrayType.symbol) {\n return factory.createArrayTypeNode(typeArgumentNodes[0]);\n }\n return symbolToTypeNode(type.aliasSymbol, context, 788968 /* Type */, typeArgumentNodes);\n }\n context.depth += 1;\n }\n const objectFlags = getObjectFlags(type);\n if (objectFlags & 4 /* Reference */) {\n Debug.assert(!!(type.flags & 524288 /* Object */));\n if (shouldExpandType(type, context)) {\n context.depth += 1;\n return createAnonymousTypeNode(\n type,\n /*forceClassExpansion*/\n true,\n /*forceExpansion*/\n true\n );\n }\n return type.node ? visitAndTransformType(type, typeReferenceToTypeNode) : typeReferenceToTypeNode(type);\n }\n if (type.flags & 262144 /* TypeParameter */ || objectFlags & 3 /* ClassOrInterface */) {\n if (type.flags & 262144 /* TypeParameter */ && contains(context.inferTypeParameters, type)) {\n context.approximateLength += symbolName(type.symbol).length + 6;\n let constraintNode;\n const constraint = getConstraintOfTypeParameter(type);\n if (constraint) {\n const inferredConstraint = getInferredTypeParameterConstraint(\n type,\n /*omitTypeReferences*/\n true\n );\n if (!(inferredConstraint && isTypeIdenticalTo(constraint, inferredConstraint))) {\n context.approximateLength += 9;\n constraintNode = constraint && typeToTypeNodeHelper(constraint, context);\n }\n }\n return factory.createInferTypeNode(typeParameterToDeclarationWithConstraint(type, context, constraintNode));\n }\n if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type.flags & 262144 /* TypeParameter */) {\n const name2 = typeParameterToName(type, context);\n context.approximateLength += idText(name2).length;\n return factory.createTypeReferenceNode(\n factory.createIdentifier(idText(name2)),\n /*typeArguments*/\n void 0\n );\n }\n if (objectFlags & 3 /* ClassOrInterface */ && shouldExpandType(type, context)) {\n context.depth += 1;\n return createAnonymousTypeNode(\n type,\n /*forceClassExpansion*/\n true,\n /*forceExpansion*/\n true\n );\n }\n if (type.symbol) {\n return symbolToTypeNode(type.symbol, context, 788968 /* Type */);\n }\n const name = (type === markerSuperTypeForCheck || type === markerSubTypeForCheck) && varianceTypeParameter && varianceTypeParameter.symbol ? (type === markerSubTypeForCheck ? \"sub-\" : \"super-\") + symbolName(varianceTypeParameter.symbol) : \"?\";\n return factory.createTypeReferenceNode(\n factory.createIdentifier(name),\n /*typeArguments*/\n void 0\n );\n }\n if (type.flags & 1048576 /* Union */ && type.origin) {\n type = type.origin;\n }\n if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) {\n const types = type.flags & 1048576 /* Union */ ? formatUnionTypes(type.types, expandingEnum) : type.types;\n if (length(types) === 1) {\n return typeToTypeNodeHelper(types[0], context);\n }\n const typeNodes = mapToTypeNodes(\n types,\n context,\n /*isBareList*/\n true\n );\n if (typeNodes && typeNodes.length > 0) {\n return type.flags & 1048576 /* Union */ ? factory.createUnionTypeNode(typeNodes) : factory.createIntersectionTypeNode(typeNodes);\n } else {\n if (!context.encounteredError && !(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) {\n context.encounteredError = true;\n }\n return void 0;\n }\n }\n if (objectFlags & (16 /* Anonymous */ | 32 /* Mapped */)) {\n Debug.assert(!!(type.flags & 524288 /* Object */));\n return createAnonymousTypeNode(type);\n }\n if (type.flags & 4194304 /* Index */) {\n const indexedType = type.type;\n context.approximateLength += 6;\n const indexTypeNode = typeToTypeNodeHelper(indexedType, context);\n return factory.createTypeOperatorNode(143 /* KeyOfKeyword */, indexTypeNode);\n }\n if (type.flags & 134217728 /* TemplateLiteral */) {\n const texts = type.texts;\n const types = type.types;\n const templateHead = factory.createTemplateHead(texts[0]);\n const templateSpans = factory.createNodeArray(\n map(types, (t, i) => factory.createTemplateLiteralTypeSpan(\n typeToTypeNodeHelper(t, context),\n (i < types.length - 1 ? factory.createTemplateMiddle : factory.createTemplateTail)(texts[i + 1])\n ))\n );\n context.approximateLength += 2;\n return factory.createTemplateLiteralType(templateHead, templateSpans);\n }\n if (type.flags & 268435456 /* StringMapping */) {\n const typeNode = typeToTypeNodeHelper(type.type, context);\n return symbolToTypeNode(type.symbol, context, 788968 /* Type */, [typeNode]);\n }\n if (type.flags & 8388608 /* IndexedAccess */) {\n const objectTypeNode = typeToTypeNodeHelper(type.objectType, context);\n const indexTypeNode = typeToTypeNodeHelper(type.indexType, context);\n context.approximateLength += 2;\n return factory.createIndexedAccessTypeNode(objectTypeNode, indexTypeNode);\n }\n if (type.flags & 16777216 /* Conditional */) {\n return visitAndTransformType(type, (type2) => conditionalTypeToTypeNode(type2));\n }\n if (type.flags & 33554432 /* Substitution */) {\n const typeNode = typeToTypeNodeHelper(type.baseType, context);\n const noInferSymbol = isNoInferType(type) && getGlobalTypeSymbol(\n \"NoInfer\",\n /*reportErrors*/\n false\n );\n return noInferSymbol ? symbolToTypeNode(noInferSymbol, context, 788968 /* Type */, [typeNode]) : typeNode;\n }\n return Debug.fail(\"Should be unreachable.\");\n function conditionalTypeToTypeNode(type2) {\n const checkTypeNode = typeToTypeNodeHelper(type2.checkType, context);\n context.approximateLength += 15;\n if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type2.root.isDistributive && !(type2.checkType.flags & 262144 /* TypeParameter */)) {\n const newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n const name = typeParameterToName(newParam, context);\n const newTypeVariable = factory.createTypeReferenceNode(name);\n context.approximateLength += 37;\n const newMapper = prependTypeMapping(type2.root.checkType, newParam, type2.mapper);\n const saveInferTypeParameters2 = context.inferTypeParameters;\n context.inferTypeParameters = type2.root.inferTypeParameters;\n const extendsTypeNode2 = typeToTypeNodeHelper(instantiateType(type2.root.extendsType, newMapper), context);\n context.inferTypeParameters = saveInferTypeParameters2;\n const trueTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(context, type2.root.node.trueType), newMapper));\n const falseTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(context, type2.root.node.falseType), newMapper));\n return factory.createConditionalTypeNode(\n checkTypeNode,\n factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n factory.cloneNode(newTypeVariable.typeName)\n )),\n factory.createConditionalTypeNode(\n factory.createTypeReferenceNode(factory.cloneNode(name)),\n typeToTypeNodeHelper(type2.checkType, context),\n factory.createConditionalTypeNode(newTypeVariable, extendsTypeNode2, trueTypeNode2, falseTypeNode2),\n factory.createKeywordTypeNode(146 /* NeverKeyword */)\n ),\n factory.createKeywordTypeNode(146 /* NeverKeyword */)\n );\n }\n const saveInferTypeParameters = context.inferTypeParameters;\n context.inferTypeParameters = type2.root.inferTypeParameters;\n const extendsTypeNode = typeToTypeNodeHelper(type2.extendsType, context);\n context.inferTypeParameters = saveInferTypeParameters;\n const trueTypeNode = typeToTypeNodeOrCircularityElision(getTrueTypeFromConditionalType(type2));\n const falseTypeNode = typeToTypeNodeOrCircularityElision(getFalseTypeFromConditionalType(type2));\n return factory.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);\n }\n function typeToTypeNodeOrCircularityElision(type2) {\n var _a2, _b2, _c;\n if (type2.flags & 1048576 /* Union */) {\n if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(getTypeId(type2))) {\n if (!(context.flags & 131072 /* AllowAnonymousIdentifier */)) {\n context.encounteredError = true;\n (_c = (_b2 = context.tracker) == null ? void 0 : _b2.reportCyclicStructureError) == null ? void 0 : _c.call(_b2);\n }\n return createElidedInformationPlaceholder(context);\n }\n return visitAndTransformType(type2, (type3) => typeToTypeNodeHelper(type3, context));\n }\n return typeToTypeNodeHelper(type2, context);\n }\n function isMappedTypeHomomorphic(type2) {\n return !!getHomomorphicTypeVariable(type2);\n }\n function isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) {\n return !!type2.target && isMappedTypeHomomorphic(type2.target) && !isMappedTypeHomomorphic(type2);\n }\n function createMappedTypeNodeFromType(type2) {\n var _a2;\n Debug.assert(!!(type2.flags & 524288 /* Object */));\n const readonlyToken = type2.declaration.readonlyToken ? factory.createToken(type2.declaration.readonlyToken.kind) : void 0;\n const questionToken = type2.declaration.questionToken ? factory.createToken(type2.declaration.questionToken.kind) : void 0;\n let appropriateConstraintTypeNode;\n let newTypeVariable;\n let templateType = getTemplateTypeFromMappedType(type2);\n const typeParameter = getTypeParameterFromMappedType(type2);\n const needsModifierPreservingWrapper = !isMappedTypeWithKeyofConstraintDeclaration(type2) && !(getModifiersTypeFromMappedType(type2).flags & 2 /* Unknown */) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && !(getConstraintTypeFromMappedType(type2).flags & 262144 /* TypeParameter */ && ((_a2 = getConstraintOfTypeParameter(getConstraintTypeFromMappedType(type2))) == null ? void 0 : _a2.flags) & 4194304 /* Index */);\n if (isMappedTypeWithKeyofConstraintDeclaration(type2)) {\n if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n const newConstraintParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n const name = typeParameterToName(newConstraintParam, context);\n const target = type2.target;\n newTypeVariable = factory.createTypeReferenceNode(name);\n templateType = instantiateType(\n getTemplateTypeFromMappedType(target),\n makeArrayTypeMapper([getTypeParameterFromMappedType(target), getModifiersTypeFromMappedType(target)], [typeParameter, newConstraintParam])\n );\n }\n appropriateConstraintTypeNode = factory.createTypeOperatorNode(143 /* KeyOfKeyword */, newTypeVariable || typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context));\n } else if (needsModifierPreservingWrapper) {\n const newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n const name = typeParameterToName(newParam, context);\n newTypeVariable = factory.createTypeReferenceNode(name);\n appropriateConstraintTypeNode = newTypeVariable;\n } else {\n appropriateConstraintTypeNode = typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context);\n }\n const typeParameterNode = typeParameterToDeclarationWithConstraint(typeParameter, context, appropriateConstraintTypeNode);\n const cleanup = enterNewScope(\n context,\n type2.declaration,\n /*expandedParams*/\n void 0,\n [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(type2.declaration.typeParameter))]\n );\n const nameTypeNode = type2.declaration.nameType ? typeToTypeNodeHelper(getNameTypeFromMappedType(type2), context) : void 0;\n const templateTypeNode = typeToTypeNodeHelper(removeMissingType(templateType, !!(getMappedTypeModifiers(type2) & 4 /* IncludeOptional */)), context);\n cleanup();\n const mappedTypeNode = factory.createMappedTypeNode(\n readonlyToken,\n typeParameterNode,\n nameTypeNode,\n questionToken,\n templateTypeNode,\n /*members*/\n void 0\n );\n context.approximateLength += 10;\n const result = setEmitFlags(mappedTypeNode, 1 /* SingleLine */);\n if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n const originalConstraint = instantiateType(getConstraintOfTypeParameter(getTypeFromTypeNode2(context, type2.declaration.typeParameter.constraint.type)) || unknownType, type2.mapper);\n return factory.createConditionalTypeNode(\n typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context),\n factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n factory.cloneNode(newTypeVariable.typeName),\n originalConstraint.flags & 2 /* Unknown */ ? void 0 : typeToTypeNodeHelper(originalConstraint, context)\n )),\n result,\n factory.createKeywordTypeNode(146 /* NeverKeyword */)\n );\n } else if (needsModifierPreservingWrapper) {\n return factory.createConditionalTypeNode(\n typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context),\n factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n factory.cloneNode(newTypeVariable.typeName),\n factory.createTypeOperatorNode(143 /* KeyOfKeyword */, typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context))\n )),\n result,\n factory.createKeywordTypeNode(146 /* NeverKeyword */)\n );\n }\n return result;\n }\n function createAnonymousTypeNode(type2, forceClassExpansion = false, forceExpansion = false) {\n var _a2, _b2;\n const typeId = type2.id;\n const symbol = type2.symbol;\n if (symbol) {\n const isInstantiationExpressionType = !!(getObjectFlags(type2) & 8388608 /* InstantiationExpressionType */);\n if (isInstantiationExpressionType) {\n const instantiationExpressionType = type2;\n const existing = instantiationExpressionType.node;\n if (isTypeQueryNode(existing) && getTypeFromTypeNode2(context, existing) === type2) {\n const typeNode = syntacticNodeBuilder.tryReuseExistingTypeNode(context, existing);\n if (typeNode) {\n return typeNode;\n }\n }\n if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(typeId)) {\n return createElidedInformationPlaceholder(context);\n }\n return visitAndTransformType(type2, createTypeNodeFromObjectType);\n }\n const isInstanceType = isClassInstanceSide(type2) ? 788968 /* Type */ : 111551 /* Value */;\n if (isJSConstructor(symbol.valueDeclaration)) {\n return symbolToTypeNode(symbol, context, isInstanceType);\n } else if (!forceExpansion && (symbol.flags & 32 /* Class */ && !forceClassExpansion && !getBaseTypeVariableOfClass(symbol) && !(symbol.valueDeclaration && isClassLike(symbol.valueDeclaration) && context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && (!isClassDeclaration(symbol.valueDeclaration) || isSymbolAccessible(\n symbol,\n context.enclosingDeclaration,\n isInstanceType,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility !== 0 /* Accessible */)) || symbol.flags & (384 /* Enum */ | 512 /* ValueModule */) || shouldWriteTypeOfFunctionSymbol())) {\n if (shouldExpandType(type2, context)) {\n context.depth += 1;\n } else {\n return symbolToTypeNode(symbol, context, isInstanceType);\n }\n }\n if ((_b2 = context.visitedTypes) == null ? void 0 : _b2.has(typeId)) {\n const typeAlias = getTypeAliasForTypeLiteral(type2);\n if (typeAlias) {\n return symbolToTypeNode(typeAlias, context, 788968 /* Type */);\n } else {\n return createElidedInformationPlaceholder(context);\n }\n } else {\n return visitAndTransformType(type2, createTypeNodeFromObjectType);\n }\n } else {\n return createTypeNodeFromObjectType(type2);\n }\n function shouldWriteTypeOfFunctionSymbol() {\n var _a3;\n const isStaticMethodSymbol = !!(symbol.flags & 8192 /* Method */) && // typeof static method\n some(symbol.declarations, (declaration) => isStatic(declaration) && !isLateBindableIndexSignature(getNameOfDeclaration(declaration)));\n const isNonLocalFunctionSymbol = !!(symbol.flags & 16 /* Function */) && (symbol.parent || // is exported function symbol\n forEach(symbol.declarations, (declaration) => declaration.parent.kind === 308 /* SourceFile */ || declaration.parent.kind === 269 /* ModuleBlock */));\n if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {\n return (!!(context.flags & 4096 /* UseTypeOfFunction */) || ((_a3 = context.visitedTypes) == null ? void 0 : _a3.has(typeId))) && // it is type of the symbol uses itself recursively\n (!(context.flags & 8 /* UseStructuralFallback */) || isValueSymbolAccessible(symbol, context.enclosingDeclaration));\n }\n }\n }\n function visitAndTransformType(type2, transform2) {\n var _a2, _b2, _c;\n const typeId = type2.id;\n const isConstructorObject = getObjectFlags(type2) & 16 /* Anonymous */ && type2.symbol && type2.symbol.flags & 32 /* Class */;\n const id = getObjectFlags(type2) & 4 /* Reference */ && type2.node ? \"N\" + getNodeId(type2.node) : type2.flags & 16777216 /* Conditional */ ? \"N\" + getNodeId(type2.root.node) : type2.symbol ? (isConstructorObject ? \"+\" : \"\") + getSymbolId(type2.symbol) : void 0;\n if (!context.visitedTypes) {\n context.visitedTypes = /* @__PURE__ */ new Set();\n }\n if (id && !context.symbolDepth) {\n context.symbolDepth = /* @__PURE__ */ new Map();\n }\n const links = context.maxExpansionDepth >= 0 ? void 0 : context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);\n const key = `${getTypeId(type2)}|${context.flags}|${context.internalFlags}`;\n if (links) {\n links.serializedTypes || (links.serializedTypes = /* @__PURE__ */ new Map());\n }\n const cachedResult = (_a2 = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _a2.get(key);\n if (cachedResult) {\n (_b2 = cachedResult.trackedSymbols) == null ? void 0 : _b2.forEach(\n ([symbol, enclosingDeclaration, meaning]) => context.tracker.trackSymbol(\n symbol,\n enclosingDeclaration,\n meaning\n )\n );\n if (cachedResult.truncating) {\n context.truncating = true;\n }\n context.approximateLength += cachedResult.addedLength;\n return deepCloneOrReuseNode(cachedResult.node);\n }\n let depth;\n if (id) {\n depth = context.symbolDepth.get(id) || 0;\n if (depth > 10) {\n return createElidedInformationPlaceholder(context);\n }\n context.symbolDepth.set(id, depth + 1);\n }\n context.visitedTypes.add(typeId);\n const prevTrackedSymbols = context.trackedSymbols;\n context.trackedSymbols = void 0;\n const startLength = context.approximateLength;\n const result = transform2(type2);\n const addedLength = context.approximateLength - startLength;\n if (!context.reportedDiagnostic && !context.encounteredError) {\n (_c = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _c.set(key, {\n node: result,\n truncating: context.truncating,\n addedLength,\n trackedSymbols: context.trackedSymbols\n });\n }\n context.visitedTypes.delete(typeId);\n if (id) {\n context.symbolDepth.set(id, depth);\n }\n context.trackedSymbols = prevTrackedSymbols;\n return result;\n function deepCloneOrReuseNode(node) {\n if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {\n return node;\n }\n return setTextRange2(context, factory.cloneNode(visitEachChild(\n node,\n deepCloneOrReuseNode,\n /*context*/\n void 0,\n deepCloneOrReuseNodes,\n deepCloneOrReuseNode\n )), node);\n }\n function deepCloneOrReuseNodes(nodes, visitor, test, start, count) {\n if (nodes && nodes.length === 0) {\n return setTextRange(factory.createNodeArray(\n /*elements*/\n void 0,\n nodes.hasTrailingComma\n ), nodes);\n }\n return visitNodes2(nodes, visitor, test, start, count);\n }\n }\n function createTypeNodeFromObjectType(type2) {\n if (isGenericMappedType(type2) || type2.containsError) {\n return createMappedTypeNodeFromType(type2);\n }\n const resolved = resolveStructuredTypeMembers(type2);\n if (!resolved.properties.length && !resolved.indexInfos.length) {\n if (!resolved.callSignatures.length && !resolved.constructSignatures.length) {\n context.approximateLength += 2;\n return setEmitFlags(factory.createTypeLiteralNode(\n /*members*/\n void 0\n ), 1 /* SingleLine */);\n }\n if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) {\n const signature = resolved.callSignatures[0];\n const signatureNode = signatureToSignatureDeclarationHelper(signature, 185 /* FunctionType */, context);\n return signatureNode;\n }\n if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) {\n const signature = resolved.constructSignatures[0];\n const signatureNode = signatureToSignatureDeclarationHelper(signature, 186 /* ConstructorType */, context);\n return signatureNode;\n }\n }\n const abstractSignatures = filter(resolved.constructSignatures, (signature) => !!(signature.flags & 4 /* Abstract */));\n if (some(abstractSignatures)) {\n const types = map(abstractSignatures, getOrCreateTypeFromSignature);\n const typeElementCount = resolved.callSignatures.length + (resolved.constructSignatures.length - abstractSignatures.length) + resolved.indexInfos.length + // exclude `prototype` when writing a class expression as a type literal, as per\n // the logic in `createTypeNodesFromResolvedType`.\n (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ ? countWhere(resolved.properties, (p) => !(p.flags & 4194304 /* Prototype */)) : length(resolved.properties));\n if (typeElementCount) {\n types.push(getResolvedTypeWithoutAbstractConstructSignatures(resolved));\n }\n return typeToTypeNodeHelper(getIntersectionType(types), context);\n }\n const restoreFlags = saveRestoreFlags(context);\n context.flags |= 4194304 /* InObjectTypeLiteral */;\n const members = createTypeNodesFromResolvedType(resolved);\n restoreFlags();\n const typeLiteralNode = factory.createTypeLiteralNode(members);\n context.approximateLength += 2;\n setEmitFlags(typeLiteralNode, context.flags & 1024 /* MultilineObjectLiterals */ ? 0 : 1 /* SingleLine */);\n return typeLiteralNode;\n }\n function typeReferenceToTypeNode(type2) {\n let typeArguments = getTypeArguments(type2);\n if (type2.target === globalArrayType || type2.target === globalReadonlyArrayType) {\n if (context.flags & 2 /* WriteArrayAsGenericType */) {\n const typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context);\n return factory.createTypeReferenceNode(type2.target === globalArrayType ? \"Array\" : \"ReadonlyArray\", [typeArgumentNode]);\n }\n const elementType = typeToTypeNodeHelper(typeArguments[0], context);\n const arrayType = factory.createArrayTypeNode(elementType);\n return type2.target === globalArrayType ? arrayType : factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, arrayType);\n } else if (type2.target.objectFlags & 8 /* Tuple */) {\n typeArguments = sameMap(typeArguments, (t, i) => removeMissingType(t, !!(type2.target.elementFlags[i] & 2 /* Optional */)));\n if (typeArguments.length > 0) {\n const arity = getTypeReferenceArity(type2);\n const tupleConstituentNodes = mapToTypeNodes(typeArguments.slice(0, arity), context);\n if (tupleConstituentNodes) {\n const { labeledElementDeclarations } = type2.target;\n for (let i = 0; i < tupleConstituentNodes.length; i++) {\n const flags = type2.target.elementFlags[i];\n const labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i];\n if (labeledElementDeclaration) {\n tupleConstituentNodes[i] = factory.createNamedTupleMember(\n flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0,\n factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))),\n flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]\n );\n } else {\n tupleConstituentNodes[i] = flags & 12 /* Variable */ ? factory.createRestTypeNode(flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]) : flags & 2 /* Optional */ ? factory.createOptionalTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i];\n }\n }\n const tupleTypeNode = setEmitFlags(factory.createTupleTypeNode(tupleConstituentNodes), 1 /* SingleLine */);\n return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode;\n }\n }\n if (context.encounteredError || context.flags & 524288 /* AllowEmptyTuple */) {\n const tupleTypeNode = setEmitFlags(factory.createTupleTypeNode([]), 1 /* SingleLine */);\n return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode;\n }\n context.encounteredError = true;\n return void 0;\n } else if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && type2.symbol.valueDeclaration && isClassLike(type2.symbol.valueDeclaration) && !isValueSymbolAccessible(type2.symbol, context.enclosingDeclaration)) {\n return createAnonymousTypeNode(type2);\n } else {\n const outerTypeParameters = type2.target.outerTypeParameters;\n let i = 0;\n let resultType;\n if (outerTypeParameters) {\n const length2 = outerTypeParameters.length;\n while (i < length2) {\n const start = i;\n const parent2 = getParentSymbolOfTypeParameter(outerTypeParameters[i]);\n do {\n i++;\n } while (i < length2 && getParentSymbolOfTypeParameter(outerTypeParameters[i]) === parent2);\n if (!rangeEquals(outerTypeParameters, typeArguments, start, i)) {\n const typeArgumentSlice = mapToTypeNodes(typeArguments.slice(start, i), context);\n const restoreFlags2 = saveRestoreFlags(context);\n context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */;\n const ref = symbolToTypeNode(parent2, context, 788968 /* Type */, typeArgumentSlice);\n restoreFlags2();\n resultType = !resultType ? ref : appendReferenceToType(resultType, ref);\n }\n }\n }\n let typeArgumentNodes;\n if (typeArguments.length > 0) {\n let typeParameterCount = 0;\n if (type2.target.typeParameters) {\n typeParameterCount = Math.min(type2.target.typeParameters.length, typeArguments.length);\n if (isReferenceToType2(type2, getGlobalIterableType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type2, getGlobalIterableIteratorType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type2, getGlobalAsyncIterableType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type2, getGlobalAsyncIterableIteratorType(\n /*reportErrors*/\n false\n ))) {\n if (!type2.node || !isTypeReferenceNode(type2.node) || !type2.node.typeArguments || type2.node.typeArguments.length < typeParameterCount) {\n while (typeParameterCount > 0) {\n const typeArgument = typeArguments[typeParameterCount - 1];\n const typeParameter = type2.target.typeParameters[typeParameterCount - 1];\n const defaultType = getDefaultFromTypeParameter(typeParameter);\n if (!defaultType || !isTypeIdenticalTo(typeArgument, defaultType)) {\n break;\n }\n typeParameterCount--;\n }\n }\n }\n }\n typeArgumentNodes = mapToTypeNodes(typeArguments.slice(i, typeParameterCount), context);\n }\n const restoreFlags = saveRestoreFlags(context);\n context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */;\n const finalRef = symbolToTypeNode(type2.symbol, context, 788968 /* Type */, typeArgumentNodes);\n restoreFlags();\n return !resultType ? finalRef : appendReferenceToType(resultType, finalRef);\n }\n }\n function appendReferenceToType(root, ref) {\n if (isImportTypeNode(root)) {\n let typeArguments = root.typeArguments;\n let qualifier = root.qualifier;\n if (qualifier) {\n if (isIdentifier(qualifier)) {\n if (typeArguments !== getIdentifierTypeArguments(qualifier)) {\n qualifier = setIdentifierTypeArguments(factory.cloneNode(qualifier), typeArguments);\n }\n } else {\n if (typeArguments !== getIdentifierTypeArguments(qualifier.right)) {\n qualifier = factory.updateQualifiedName(qualifier, qualifier.left, setIdentifierTypeArguments(factory.cloneNode(qualifier.right), typeArguments));\n }\n }\n }\n typeArguments = ref.typeArguments;\n const ids = getAccessStack(ref);\n for (const id of ids) {\n qualifier = qualifier ? factory.createQualifiedName(qualifier, id) : id;\n }\n return factory.updateImportTypeNode(\n root,\n root.argument,\n root.attributes,\n qualifier,\n typeArguments,\n root.isTypeOf\n );\n } else {\n let typeArguments = root.typeArguments;\n let typeName = root.typeName;\n if (isIdentifier(typeName)) {\n if (typeArguments !== getIdentifierTypeArguments(typeName)) {\n typeName = setIdentifierTypeArguments(factory.cloneNode(typeName), typeArguments);\n }\n } else {\n if (typeArguments !== getIdentifierTypeArguments(typeName.right)) {\n typeName = factory.updateQualifiedName(typeName, typeName.left, setIdentifierTypeArguments(factory.cloneNode(typeName.right), typeArguments));\n }\n }\n typeArguments = ref.typeArguments;\n const ids = getAccessStack(ref);\n for (const id of ids) {\n typeName = factory.createQualifiedName(typeName, id);\n }\n return factory.updateTypeReferenceNode(\n root,\n typeName,\n typeArguments\n );\n }\n }\n function getAccessStack(ref) {\n let state = ref.typeName;\n const ids = [];\n while (!isIdentifier(state)) {\n ids.unshift(state.right);\n state = state.left;\n }\n ids.unshift(state);\n return ids;\n }\n function indexInfoToObjectComputedNamesOrSignatureDeclaration(indexInfo, context2, typeNode) {\n if (indexInfo.components) {\n const allComponentComputedNamesSerializable = every(indexInfo.components, (e) => {\n var _a2;\n return !!(e.name && isComputedPropertyName(e.name) && isEntityNameExpression(e.name.expression) && context2.enclosingDeclaration && ((_a2 = isEntityNameVisible(\n e.name.expression,\n context2.enclosingDeclaration,\n /*shouldComputeAliasToMakeVisible*/\n false\n )) == null ? void 0 : _a2.accessibility) === 0 /* Accessible */);\n });\n if (allComponentComputedNamesSerializable) {\n const newComponents = filter(indexInfo.components, (e) => {\n return !hasLateBindableName(e);\n });\n return map(newComponents, (e) => {\n trackComputedName(e.name.expression, context2.enclosingDeclaration, context2);\n return setTextRange2(\n context2,\n factory.createPropertySignature(\n indexInfo.isReadonly ? [factory.createModifier(148 /* ReadonlyKeyword */)] : void 0,\n e.name,\n (isPropertySignature(e) || isPropertyDeclaration(e) || isMethodSignature(e) || isMethodDeclaration(e) || isGetAccessor(e) || isSetAccessor(e)) && e.questionToken ? factory.createToken(58 /* QuestionToken */) : void 0,\n typeNode || typeToTypeNodeHelper(getTypeOfSymbol(e.symbol), context2)\n ),\n e\n );\n });\n }\n }\n return [indexInfoToIndexSignatureDeclarationHelper(indexInfo, context2, typeNode)];\n }\n function createTypeNodesFromResolvedType(resolvedType) {\n if (checkTruncationLength(context)) {\n context.out.truncated = true;\n if (context.flags & 1 /* NoTruncation */) {\n return [addSyntheticTrailingComment(factory.createNotEmittedTypeElement(), 3 /* MultiLineCommentTrivia */, \"elided\")];\n }\n return [factory.createPropertySignature(\n /*modifiers*/\n void 0,\n \"...\",\n /*questionToken*/\n void 0,\n /*type*/\n void 0\n )];\n }\n context.typeStack.push(-1);\n const typeElements = [];\n for (const signature of resolvedType.callSignatures) {\n typeElements.push(signatureToSignatureDeclarationHelper(signature, 180 /* CallSignature */, context));\n }\n for (const signature of resolvedType.constructSignatures) {\n if (signature.flags & 4 /* Abstract */) continue;\n typeElements.push(signatureToSignatureDeclarationHelper(signature, 181 /* ConstructSignature */, context));\n }\n for (const info of resolvedType.indexInfos) {\n typeElements.push(...indexInfoToObjectComputedNamesOrSignatureDeclaration(info, context, resolvedType.objectFlags & 1024 /* ReverseMapped */ ? createElidedInformationPlaceholder(context) : void 0));\n }\n const properties = resolvedType.properties;\n if (!properties) {\n context.typeStack.pop();\n return typeElements;\n }\n let i = 0;\n for (const propertySymbol of properties) {\n if (isExpanding(context) && propertySymbol.flags & 4194304 /* Prototype */) {\n continue;\n }\n i++;\n if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */) {\n if (propertySymbol.flags & 4194304 /* Prototype */) {\n continue;\n }\n if (getDeclarationModifierFlagsFromSymbol(propertySymbol) & (2 /* Private */ | 4 /* Protected */) && context.tracker.reportPrivateInBaseOfClassExpression) {\n context.tracker.reportPrivateInBaseOfClassExpression(unescapeLeadingUnderscores(propertySymbol.escapedName));\n }\n }\n if (checkTruncationLength(context) && i + 2 < properties.length - 1) {\n context.out.truncated = true;\n if (context.flags & 1 /* NoTruncation */) {\n const typeElement = typeElements.pop();\n typeElements.push(addSyntheticTrailingComment(typeElement, 3 /* MultiLineCommentTrivia */, `... ${properties.length - i} more elided ...`));\n } else {\n typeElements.push(factory.createPropertySignature(\n /*modifiers*/\n void 0,\n `... ${properties.length - i} more ...`,\n /*questionToken*/\n void 0,\n /*type*/\n void 0\n ));\n }\n addPropertyToElementList(properties[properties.length - 1], context, typeElements);\n break;\n }\n addPropertyToElementList(propertySymbol, context, typeElements);\n }\n context.typeStack.pop();\n return typeElements.length ? typeElements : void 0;\n }\n }\n function createElidedInformationPlaceholder(context) {\n context.approximateLength += 3;\n if (!(context.flags & 1 /* NoTruncation */)) {\n return factory.createTypeReferenceNode(\n factory.createIdentifier(\"...\"),\n /*typeArguments*/\n void 0\n );\n }\n return addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"elided\");\n }\n function shouldUsePlaceholderForProperty(propertySymbol, context) {\n var _a;\n const depth = 3;\n return !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */) && (contains(context.reverseMappedStack, propertySymbol) || ((_a = context.reverseMappedStack) == null ? void 0 : _a[0]) && !(getObjectFlags(last(context.reverseMappedStack).links.propertyType) & 16 /* Anonymous */) || isDeeplyNestedReverseMappedTypeProperty());\n function isDeeplyNestedReverseMappedTypeProperty() {\n var _a2;\n if ((((_a2 = context.reverseMappedStack) == null ? void 0 : _a2.length) ?? 0) < depth) {\n return false;\n }\n for (let i = 0; i < depth; i++) {\n const prop = context.reverseMappedStack[context.reverseMappedStack.length - 1 - i];\n if (prop.links.mappedType.symbol !== propertySymbol.links.mappedType.symbol) {\n return false;\n }\n }\n return true;\n }\n }\n function addPropertyToElementList(propertySymbol, context, typeElements) {\n var _a;\n const propertyIsReverseMapped = !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */);\n const propertyType = shouldUsePlaceholderForProperty(propertySymbol, context) ? anyType : getNonMissingTypeOfSymbol(propertySymbol);\n const saveEnclosingDeclaration = context.enclosingDeclaration;\n context.enclosingDeclaration = void 0;\n if (context.tracker.canTrackSymbol && isLateBoundName(propertySymbol.escapedName)) {\n if (propertySymbol.declarations) {\n const decl = first(propertySymbol.declarations);\n if (hasLateBindableName(decl)) {\n if (isBinaryExpression(decl)) {\n const name = getNameOfDeclaration(decl);\n if (name && isElementAccessExpression(name) && isPropertyAccessEntityNameExpression(name.argumentExpression)) {\n trackComputedName(name.argumentExpression, saveEnclosingDeclaration, context);\n }\n } else {\n trackComputedName(decl.name.expression, saveEnclosingDeclaration, context);\n }\n }\n } else {\n context.tracker.reportNonSerializableProperty(symbolToString(propertySymbol));\n }\n }\n context.enclosingDeclaration = propertySymbol.valueDeclaration || ((_a = propertySymbol.declarations) == null ? void 0 : _a[0]) || saveEnclosingDeclaration;\n const propertyName = getPropertyNameNodeForSymbol(propertySymbol, context);\n context.enclosingDeclaration = saveEnclosingDeclaration;\n context.approximateLength += symbolName(propertySymbol).length + 1;\n if (propertySymbol.flags & 98304 /* Accessor */) {\n const writeType = getWriteTypeOfSymbol(propertySymbol);\n if (!isErrorType(propertyType) && !isErrorType(writeType)) {\n const symbolMapper = getSymbolLinks(propertySymbol).mapper;\n const propDeclaration = getDeclarationOfKind(propertySymbol, 173 /* PropertyDeclaration */);\n if (propertyType !== writeType || propertySymbol.parent.flags & 32 /* Class */ && !propDeclaration) {\n const getterDeclaration = getDeclarationOfKind(propertySymbol, 178 /* GetAccessor */);\n if (getterDeclaration) {\n const getterSignature = getSignatureFromDeclaration(getterDeclaration);\n typeElements.push(\n setCommentRange2(\n context,\n signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(getterSignature, symbolMapper) : getterSignature, 178 /* GetAccessor */, context, { name: propertyName }),\n getterDeclaration\n )\n );\n }\n const setterDeclaration = getDeclarationOfKind(propertySymbol, 179 /* SetAccessor */);\n if (setterDeclaration) {\n const setterSignature = getSignatureFromDeclaration(setterDeclaration);\n typeElements.push(\n setCommentRange2(\n context,\n signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(setterSignature, symbolMapper) : setterSignature, 179 /* SetAccessor */, context, { name: propertyName }),\n setterDeclaration\n )\n );\n }\n return;\n }\n if (propertySymbol.parent.flags & 32 /* Class */ && propDeclaration && find(propDeclaration.modifiers, isAccessorModifier)) {\n const fakeGetterSignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n propertyType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n typeElements.push(\n setCommentRange2(\n context,\n signatureToSignatureDeclarationHelper(fakeGetterSignature, 178 /* GetAccessor */, context, { name: propertyName }),\n propDeclaration\n )\n );\n const setterParam = createSymbol(1 /* FunctionScopedVariable */, \"arg\");\n setterParam.links.type = writeType;\n const fakeSetterSignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [setterParam],\n voidType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 0 /* None */\n );\n typeElements.push(\n signatureToSignatureDeclarationHelper(fakeSetterSignature, 179 /* SetAccessor */, context, { name: propertyName })\n );\n return;\n }\n }\n }\n const optionalToken = propertySymbol.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0;\n if (propertySymbol.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(propertyType).length && !isReadonlySymbol(propertySymbol)) {\n const signatures = getSignaturesOfType(filterType(propertyType, (t) => !(t.flags & 32768 /* Undefined */)), 0 /* Call */);\n for (const signature of signatures) {\n const methodDeclaration = signatureToSignatureDeclarationHelper(signature, 174 /* MethodSignature */, context, { name: propertyName, questionToken: optionalToken });\n typeElements.push(preserveCommentsOn(methodDeclaration, signature.declaration || propertySymbol.valueDeclaration));\n }\n if (signatures.length || !optionalToken) {\n return;\n }\n }\n let propertyTypeNode;\n if (shouldUsePlaceholderForProperty(propertySymbol, context)) {\n propertyTypeNode = createElidedInformationPlaceholder(context);\n } else {\n if (propertyIsReverseMapped) {\n context.reverseMappedStack || (context.reverseMappedStack = []);\n context.reverseMappedStack.push(propertySymbol);\n }\n propertyTypeNode = propertyType ? serializeTypeForDeclaration(\n context,\n /*declaration*/\n void 0,\n propertyType,\n propertySymbol\n ) : factory.createKeywordTypeNode(133 /* AnyKeyword */);\n if (propertyIsReverseMapped) {\n context.reverseMappedStack.pop();\n }\n }\n const modifiers = isReadonlySymbol(propertySymbol) ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0;\n if (modifiers) {\n context.approximateLength += 9;\n }\n const propertySignature = factory.createPropertySignature(\n modifiers,\n propertyName,\n optionalToken,\n propertyTypeNode\n );\n typeElements.push(preserveCommentsOn(propertySignature, propertySymbol.valueDeclaration));\n function preserveCommentsOn(node, range) {\n var _a2;\n const jsdocPropertyTag = (_a2 = propertySymbol.declarations) == null ? void 0 : _a2.find((d) => d.kind === 349 /* JSDocPropertyTag */);\n if (jsdocPropertyTag) {\n const commentText = getTextOfJSDocComment(jsdocPropertyTag.comment);\n if (commentText) {\n setSyntheticLeadingComments(node, [{ kind: 3 /* MultiLineCommentTrivia */, text: \"*\\n * \" + commentText.replace(/\\n/g, \"\\n * \") + \"\\n \", pos: -1, end: -1, hasTrailingNewLine: true }]);\n }\n } else if (range) {\n setCommentRange2(context, node, range);\n }\n return node;\n }\n }\n function setCommentRange2(context, node, range) {\n if (context.enclosingFile && context.enclosingFile === getSourceFileOfNode(range)) {\n return setCommentRange(node, range);\n }\n return node;\n }\n function mapToTypeNodes(types, context, isBareList) {\n if (some(types)) {\n if (checkTruncationLength(context)) {\n context.out.truncated = true;\n if (!isBareList) {\n return [\n context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"elided\") : factory.createTypeReferenceNode(\n \"...\",\n /*typeArguments*/\n void 0\n )\n ];\n } else if (types.length > 2) {\n return [\n typeToTypeNodeHelper(types[0], context),\n context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, `... ${types.length - 2} more elided ...`) : factory.createTypeReferenceNode(\n `... ${types.length - 2} more ...`,\n /*typeArguments*/\n void 0\n ),\n typeToTypeNodeHelper(types[types.length - 1], context)\n ];\n }\n }\n const mayHaveNameCollisions = !(context.flags & 64 /* UseFullyQualifiedType */);\n const seenNames = mayHaveNameCollisions ? createMultiMap() : void 0;\n const result = [];\n let i = 0;\n for (const type of types) {\n i++;\n if (checkTruncationLength(context) && i + 2 < types.length - 1) {\n context.out.truncated = true;\n result.push(\n context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, `... ${types.length - i} more elided ...`) : factory.createTypeReferenceNode(\n `... ${types.length - i} more ...`,\n /*typeArguments*/\n void 0\n )\n );\n const typeNode2 = typeToTypeNodeHelper(types[types.length - 1], context);\n if (typeNode2) {\n result.push(typeNode2);\n }\n break;\n }\n context.approximateLength += 2;\n const typeNode = typeToTypeNodeHelper(type, context);\n if (typeNode) {\n result.push(typeNode);\n if (seenNames && isIdentifierTypeReference(typeNode)) {\n seenNames.add(typeNode.typeName.escapedText, [type, result.length - 1]);\n }\n }\n }\n if (seenNames) {\n const restoreFlags = saveRestoreFlags(context);\n context.flags |= 64 /* UseFullyQualifiedType */;\n seenNames.forEach((types2) => {\n if (!arrayIsHomogeneous(types2, ([a], [b]) => typesAreSameReference(a, b))) {\n for (const [type, resultIndex] of types2) {\n result[resultIndex] = typeToTypeNodeHelper(type, context);\n }\n }\n });\n restoreFlags();\n }\n return result;\n }\n }\n function typesAreSameReference(a, b) {\n return a === b || !!a.symbol && a.symbol === b.symbol || !!a.aliasSymbol && a.aliasSymbol === b.aliasSymbol;\n }\n function indexInfoToIndexSignatureDeclarationHelper(indexInfo, context, typeNode) {\n const name = getNameFromIndexInfo(indexInfo) || \"x\";\n const indexerTypeNode = typeToTypeNodeHelper(indexInfo.keyType, context);\n const indexingParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n name,\n /*questionToken*/\n void 0,\n indexerTypeNode,\n /*initializer*/\n void 0\n );\n if (!typeNode) {\n typeNode = typeToTypeNodeHelper(indexInfo.type || anyType, context);\n }\n if (!indexInfo.type && !(context.flags & 2097152 /* AllowEmptyIndexInfoType */)) {\n context.encounteredError = true;\n }\n context.approximateLength += name.length + 4;\n return factory.createIndexSignature(\n indexInfo.isReadonly ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0,\n [indexingParameter],\n typeNode\n );\n }\n function signatureToSignatureDeclarationHelper(signature, kind, context, options) {\n var _a;\n let typeParameters;\n let typeArguments;\n const expandedParams = getExpandedParameters(\n signature,\n /*skipUnionExpanding*/\n true\n )[0];\n const cleanup = enterNewScope(context, signature.declaration, expandedParams, signature.typeParameters, signature.parameters, signature.mapper);\n context.approximateLength += 3;\n if (context.flags & 32 /* WriteTypeArgumentsOfSignature */ && signature.target && signature.mapper && signature.target.typeParameters) {\n typeArguments = signature.target.typeParameters.map((parameter) => typeToTypeNodeHelper(instantiateType(parameter, signature.mapper), context));\n } else {\n typeParameters = signature.typeParameters && signature.typeParameters.map((parameter) => typeParameterToDeclaration(parameter, context));\n }\n const restoreFlags = saveRestoreFlags(context);\n context.flags &= ~256 /* SuppressAnyReturnType */;\n const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 177 /* Constructor */));\n const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);\n if (thisParameter) {\n parameters.unshift(thisParameter);\n }\n restoreFlags();\n const returnTypeNode = serializeReturnTypeForSignature(context, signature);\n let modifiers = options == null ? void 0 : options.modifiers;\n if (kind === 186 /* ConstructorType */ && signature.flags & 4 /* Abstract */) {\n const flags = modifiersToFlags(modifiers);\n modifiers = factory.createModifiersFromModifierFlags(flags | 64 /* Abstract */);\n }\n const node = kind === 180 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 181 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 174 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 175 /* MethodDeclaration */ ? factory.createMethodDeclaration(\n modifiers,\n /*asteriskToken*/\n void 0,\n (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n /*questionToken*/\n void 0,\n typeParameters,\n parameters,\n returnTypeNode,\n /*body*/\n void 0\n ) : kind === 177 /* Constructor */ ? factory.createConstructorDeclaration(\n modifiers,\n parameters,\n /*body*/\n void 0\n ) : kind === 178 /* GetAccessor */ ? factory.createGetAccessorDeclaration(\n modifiers,\n (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n parameters,\n returnTypeNode,\n /*body*/\n void 0\n ) : kind === 179 /* SetAccessor */ ? factory.createSetAccessorDeclaration(\n modifiers,\n (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n parameters,\n /*body*/\n void 0\n ) : kind === 182 /* IndexSignature */ ? factory.createIndexSignature(modifiers, parameters, returnTypeNode) : kind === 318 /* JSDocFunctionType */ ? factory.createJSDocFunctionType(parameters, returnTypeNode) : kind === 185 /* FunctionType */ ? factory.createFunctionTypeNode(typeParameters, parameters, returnTypeNode ?? factory.createTypeReferenceNode(factory.createIdentifier(\"\"))) : kind === 186 /* ConstructorType */ ? factory.createConstructorTypeNode(modifiers, typeParameters, parameters, returnTypeNode ?? factory.createTypeReferenceNode(factory.createIdentifier(\"\"))) : kind === 263 /* FunctionDeclaration */ ? factory.createFunctionDeclaration(\n modifiers,\n /*asteriskToken*/\n void 0,\n (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(\"\"),\n typeParameters,\n parameters,\n returnTypeNode,\n /*body*/\n void 0\n ) : kind === 219 /* FunctionExpression */ ? factory.createFunctionExpression(\n modifiers,\n /*asteriskToken*/\n void 0,\n (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(\"\"),\n typeParameters,\n parameters,\n returnTypeNode,\n factory.createBlock([])\n ) : kind === 220 /* ArrowFunction */ ? factory.createArrowFunction(\n modifiers,\n typeParameters,\n parameters,\n returnTypeNode,\n /*equalsGreaterThanToken*/\n void 0,\n factory.createBlock([])\n ) : Debug.assertNever(kind);\n if (typeArguments) {\n node.typeArguments = factory.createNodeArray(typeArguments);\n }\n if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocSignature */ && signature.declaration.parent.kind === 340 /* JSDocOverloadTag */) {\n const comment = getTextOfNode(\n signature.declaration.parent.parent,\n /*includeTrivia*/\n true\n ).slice(2, -2).split(/\\r\\n|\\n|\\r/).map((line) => line.replace(/^\\s+/, \" \")).join(\"\\n\");\n addSyntheticLeadingComment(\n node,\n 3 /* MultiLineCommentTrivia */,\n comment,\n /*hasTrailingNewLine*/\n true\n );\n }\n cleanup == null ? void 0 : cleanup();\n return node;\n }\n function createRecoveryBoundary(context) {\n if (cancellationToken && cancellationToken.throwIfCancellationRequested) {\n cancellationToken.throwIfCancellationRequested();\n }\n let trackedSymbols;\n let unreportedErrors;\n let hadError = false;\n const oldTracker = context.tracker;\n const oldTrackedSymbols = context.trackedSymbols;\n context.trackedSymbols = void 0;\n const oldEncounteredError = context.encounteredError;\n context.tracker = new SymbolTrackerImpl(context, {\n ...oldTracker.inner,\n reportCyclicStructureError() {\n markError(() => oldTracker.reportCyclicStructureError());\n },\n reportInaccessibleThisError() {\n markError(() => oldTracker.reportInaccessibleThisError());\n },\n reportInaccessibleUniqueSymbolError() {\n markError(() => oldTracker.reportInaccessibleUniqueSymbolError());\n },\n reportLikelyUnsafeImportRequiredError(specifier) {\n markError(() => oldTracker.reportLikelyUnsafeImportRequiredError(specifier));\n },\n reportNonSerializableProperty(name) {\n markError(() => oldTracker.reportNonSerializableProperty(name));\n },\n reportPrivateInBaseOfClassExpression(propertyName) {\n markError(() => oldTracker.reportPrivateInBaseOfClassExpression(propertyName));\n },\n trackSymbol(sym, decl, meaning) {\n (trackedSymbols ?? (trackedSymbols = [])).push([sym, decl, meaning]);\n return false;\n },\n moduleResolverHost: context.tracker.moduleResolverHost\n }, context.tracker.moduleResolverHost);\n return {\n startRecoveryScope,\n finalizeBoundary,\n markError,\n hadError: () => hadError\n };\n function markError(unreportedError) {\n hadError = true;\n if (unreportedError) {\n (unreportedErrors ?? (unreportedErrors = [])).push(unreportedError);\n }\n }\n function startRecoveryScope() {\n const trackedSymbolsTop = (trackedSymbols == null ? void 0 : trackedSymbols.length) ?? 0;\n const unreportedErrorsTop = (unreportedErrors == null ? void 0 : unreportedErrors.length) ?? 0;\n return () => {\n hadError = false;\n if (trackedSymbols) {\n trackedSymbols.length = trackedSymbolsTop;\n }\n if (unreportedErrors) {\n unreportedErrors.length = unreportedErrorsTop;\n }\n };\n }\n function finalizeBoundary() {\n context.tracker = oldTracker;\n context.trackedSymbols = oldTrackedSymbols;\n context.encounteredError = oldEncounteredError;\n unreportedErrors == null ? void 0 : unreportedErrors.forEach((fn) => fn());\n if (hadError) {\n return false;\n }\n trackedSymbols == null ? void 0 : trackedSymbols.forEach(\n ([symbol, enclosingDeclaration, meaning]) => context.tracker.trackSymbol(\n symbol,\n enclosingDeclaration,\n meaning\n )\n );\n return true;\n }\n }\n function enterNewScope(context, declaration, expandedParams, typeParameters, originalParameters, mapper) {\n const cleanupContext = cloneNodeBuilderContext(context);\n let cleanupParams;\n let cleanupTypeParams;\n const oldEnclosingDecl = context.enclosingDeclaration;\n const oldMapper = context.mapper;\n if (mapper) {\n context.mapper = mapper;\n }\n if (context.enclosingDeclaration && declaration) {\n let pushFakeScope2 = function(kind, addAll) {\n Debug.assert(context.enclosingDeclaration);\n let existingFakeScope;\n if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind) {\n existingFakeScope = context.enclosingDeclaration;\n } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind) {\n existingFakeScope = context.enclosingDeclaration.parent;\n }\n Debug.assertOptionalNode(existingFakeScope, isBlock);\n const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();\n let newLocals;\n let oldLocals;\n addAll((name, symbol) => {\n if (existingFakeScope) {\n const oldSymbol = locals.get(name);\n if (!oldSymbol) {\n newLocals = append(newLocals, name);\n } else {\n oldLocals = append(oldLocals, { name, oldSymbol });\n }\n }\n locals.set(name, symbol);\n });\n if (!existingFakeScope) {\n const fakeScope = factory.createBlock(emptyArray);\n getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind;\n fakeScope.locals = locals;\n setParent(fakeScope, context.enclosingDeclaration);\n context.enclosingDeclaration = fakeScope;\n } else {\n return function undo() {\n forEach(newLocals, (s) => locals.delete(s));\n forEach(oldLocals, (s) => locals.set(s.name, s.oldSymbol));\n };\n }\n };\n var pushFakeScope = pushFakeScope2;\n cleanupParams = !some(expandedParams) ? void 0 : pushFakeScope2(\n \"params\",\n (add) => {\n if (!expandedParams) return;\n for (let pIndex = 0; pIndex < expandedParams.length; pIndex++) {\n const param = expandedParams[pIndex];\n const originalParam = originalParameters == null ? void 0 : originalParameters[pIndex];\n if (originalParameters && originalParam !== param) {\n add(param.escapedName, unknownSymbol);\n if (originalParam) {\n add(originalParam.escapedName, unknownSymbol);\n }\n } else if (!forEach(param.declarations, (d) => {\n if (isParameter(d) && isBindingPattern(d.name)) {\n bindPattern(d.name);\n return true;\n }\n return void 0;\n function bindPattern(p) {\n forEach(p.elements, (e) => {\n switch (e.kind) {\n case 233 /* OmittedExpression */:\n return;\n case 209 /* BindingElement */:\n return bindElement(e);\n default:\n return Debug.assertNever(e);\n }\n });\n }\n function bindElement(e) {\n if (isBindingPattern(e.name)) {\n return bindPattern(e.name);\n }\n const symbol = getSymbolOfDeclaration(e);\n add(symbol.escapedName, symbol);\n }\n })) {\n add(param.escapedName, param);\n }\n }\n }\n );\n if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && some(typeParameters)) {\n cleanupTypeParams = pushFakeScope2(\n \"typeParams\",\n (add) => {\n for (const typeParam of typeParameters ?? emptyArray) {\n const typeParamName = typeParameterToName(typeParam, context).escapedText;\n add(typeParamName, typeParam.symbol);\n }\n }\n );\n }\n }\n return () => {\n cleanupParams == null ? void 0 : cleanupParams();\n cleanupTypeParams == null ? void 0 : cleanupTypeParams();\n cleanupContext();\n context.enclosingDeclaration = oldEnclosingDecl;\n context.mapper = oldMapper;\n };\n }\n function tryGetThisParameterDeclaration(signature, context) {\n if (signature.thisParameter) {\n return symbolToParameterDeclaration(signature.thisParameter, context);\n }\n if (signature.declaration && isInJSFile(signature.declaration)) {\n const thisTag = getJSDocThisTag(signature.declaration);\n if (thisTag && thisTag.typeExpression) {\n return factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"this\",\n /*questionToken*/\n void 0,\n typeToTypeNodeHelper(getTypeFromTypeNode2(context, thisTag.typeExpression), context)\n );\n }\n }\n }\n function typeParameterToDeclarationWithConstraint(type, context, constraintNode) {\n const restoreFlags = saveRestoreFlags(context);\n context.flags &= ~512 /* WriteTypeParametersInQualifiedName */;\n const modifiers = factory.createModifiersFromModifierFlags(getTypeParameterModifiers(type));\n const name = typeParameterToName(type, context);\n const defaultParameter = getDefaultFromTypeParameter(type);\n const defaultParameterNode = defaultParameter && typeToTypeNodeHelper(defaultParameter, context);\n restoreFlags();\n return factory.createTypeParameterDeclaration(modifiers, name, constraintNode, defaultParameterNode);\n }\n function typeToTypeNodeHelperWithPossibleReusableTypeNode(type, typeNode, context) {\n return !canPossiblyExpandType(type, context) && typeNode && getTypeFromTypeNode2(context, typeNode) === type && syntacticNodeBuilder.tryReuseExistingTypeNode(context, typeNode) || typeToTypeNodeHelper(type, context);\n }\n function typeParameterToDeclaration(type, context, constraint = getConstraintOfTypeParameter(type)) {\n const constraintNode = constraint && typeToTypeNodeHelperWithPossibleReusableTypeNode(constraint, getConstraintDeclaration(type), context);\n return typeParameterToDeclarationWithConstraint(type, context, constraintNode);\n }\n function typePredicateToTypePredicateNodeHelper(typePredicate, context) {\n const assertsModifier = typePredicate.kind === 2 /* AssertsThis */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? factory.createToken(131 /* AssertsKeyword */) : void 0;\n const parameterName = typePredicate.kind === 1 /* Identifier */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? setEmitFlags(factory.createIdentifier(typePredicate.parameterName), 16777216 /* NoAsciiEscaping */) : factory.createThisTypeNode();\n const typeNode = typePredicate.type && typeToTypeNodeHelper(typePredicate.type, context);\n return factory.createTypePredicateNode(assertsModifier, parameterName, typeNode);\n }\n function getEffectiveParameterDeclaration(parameterSymbol) {\n const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 170 /* Parameter */);\n if (parameterDeclaration) {\n return parameterDeclaration;\n }\n if (!isTransientSymbol(parameterSymbol)) {\n return getDeclarationOfKind(parameterSymbol, 342 /* JSDocParameterTag */);\n }\n }\n function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags) {\n const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);\n const parameterType = getTypeOfSymbol(parameterSymbol);\n const parameterTypeNode = serializeTypeForDeclaration(context, parameterDeclaration, parameterType, parameterSymbol);\n const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;\n const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;\n const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;\n const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);\n const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;\n const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;\n const parameterNode = factory.createParameterDeclaration(\n modifiers,\n dotDotDotToken,\n name,\n questionToken,\n parameterTypeNode,\n /*initializer*/\n void 0\n );\n context.approximateLength += symbolName(parameterSymbol).length + 3;\n return parameterNode;\n }\n function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {\n return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 167 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);\n function cloneBindingName(node) {\n return elideInitializerAndSetEmitFlags(node);\n function elideInitializerAndSetEmitFlags(node2) {\n if (context.tracker.canTrackSymbol && isComputedPropertyName(node2) && isLateBindableName(node2)) {\n trackComputedName(node2.expression, context.enclosingDeclaration, context);\n }\n let visited = visitEachChild(\n node2,\n elideInitializerAndSetEmitFlags,\n /*context*/\n void 0,\n /*nodesVisitor*/\n void 0,\n elideInitializerAndSetEmitFlags\n );\n if (isBindingElement(visited)) {\n visited = factory.updateBindingElement(\n visited,\n visited.dotDotDotToken,\n visited.propertyName,\n visited.name,\n /*initializer*/\n void 0\n );\n }\n if (!nodeIsSynthesized(visited)) {\n visited = factory.cloneNode(visited);\n }\n return setEmitFlags(visited, 1 /* SingleLine */ | 16777216 /* NoAsciiEscaping */);\n }\n }\n }\n function trackComputedName(accessExpression, enclosingDeclaration, context) {\n if (!context.tracker.canTrackSymbol) return;\n const firstIdentifier = getFirstIdentifier(accessExpression);\n const name = resolveName(\n enclosingDeclaration,\n firstIdentifier.escapedText,\n 111551 /* Value */ | 1048576 /* ExportValue */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (name) {\n context.tracker.trackSymbol(name, enclosingDeclaration, 111551 /* Value */);\n } else {\n const fallback = resolveName(\n firstIdentifier,\n firstIdentifier.escapedText,\n 111551 /* Value */ | 1048576 /* ExportValue */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (fallback) {\n context.tracker.trackSymbol(fallback, enclosingDeclaration, 111551 /* Value */);\n }\n }\n }\n function lookupSymbolChain(symbol, context, meaning, yieldModuleSymbol) {\n context.tracker.trackSymbol(symbol, context.enclosingDeclaration, meaning);\n return lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol);\n }\n function lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol) {\n let chain;\n const isTypeParameter = symbol.flags & 262144 /* TypeParameter */;\n if (!isTypeParameter && (context.enclosingDeclaration || context.flags & 64 /* UseFullyQualifiedType */) && !(context.internalFlags & 4 /* DoNotIncludeSymbolChain */)) {\n chain = Debug.checkDefined(getSymbolChain(\n symbol,\n meaning,\n /*endOfChain*/\n true\n ));\n Debug.assert(chain && chain.length > 0);\n } else {\n chain = [symbol];\n }\n return chain;\n function getSymbolChain(symbol2, meaning2, endOfChain) {\n let accessibleSymbolChain = getAccessibleSymbolChain(symbol2, context.enclosingDeclaration, meaning2, !!(context.flags & 128 /* UseOnlyExternalAliasing */));\n let parentSpecifiers;\n if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], context.enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning2 : getQualifiedLeftMeaning(meaning2))) {\n const parents = getContainersOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol2, context.enclosingDeclaration, meaning2);\n if (length(parents)) {\n parentSpecifiers = parents.map(\n (symbol3) => some(symbol3.declarations, hasNonGlobalAugmentationExternalModuleSymbol) ? getSpecifierForModuleSymbol(symbol3, context) : void 0\n );\n const indices = parents.map((_, i) => i);\n indices.sort(sortByBestName);\n const sortedParents = indices.map((i) => parents[i]);\n for (const parent2 of sortedParents) {\n const parentChain = getSymbolChain(\n parent2,\n getQualifiedLeftMeaning(meaning2),\n /*endOfChain*/\n false\n );\n if (parentChain) {\n if (parent2.exports && parent2.exports.get(\"export=\" /* ExportEquals */) && getSymbolIfSameReference(parent2.exports.get(\"export=\" /* ExportEquals */), symbol2)) {\n accessibleSymbolChain = parentChain;\n break;\n }\n accessibleSymbolChain = parentChain.concat(accessibleSymbolChain || [getAliasForSymbolInContainer(parent2, symbol2) || symbol2]);\n break;\n }\n }\n }\n }\n if (accessibleSymbolChain) {\n return accessibleSymbolChain;\n }\n if (\n // If this is the last part of outputting the symbol, always output. The cases apply only to parent symbols.\n endOfChain || // If a parent symbol is an anonymous type, don't write it.\n !(symbol2.flags & (2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */))\n ) {\n if (!endOfChain && !yieldModuleSymbol && !!forEach(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n return;\n }\n return [symbol2];\n }\n function sortByBestName(a, b) {\n const specifierA = parentSpecifiers[a];\n const specifierB = parentSpecifiers[b];\n if (specifierA && specifierB) {\n const isBRelative = pathIsRelative(specifierB);\n if (pathIsRelative(specifierA) === isBRelative) {\n return countPathComponents(specifierA) - countPathComponents(specifierB);\n }\n if (isBRelative) {\n return -1;\n }\n return 1;\n }\n return 0;\n }\n }\n }\n function typeParametersToTypeParameterDeclarations(symbol, context) {\n let typeParameterNodes;\n const targetSymbol = getTargetSymbol(symbol);\n if (targetSymbol.flags & (32 /* Class */ | 64 /* Interface */ | 524288 /* TypeAlias */)) {\n typeParameterNodes = factory.createNodeArray(map(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol), (tp) => typeParameterToDeclaration(tp, context)));\n }\n return typeParameterNodes;\n }\n function lookupTypeParameterNodes(chain, index, context) {\n var _a;\n Debug.assert(chain && 0 <= index && index < chain.length);\n const symbol = chain[index];\n const symbolId = getSymbolId(symbol);\n if ((_a = context.typeParameterSymbolList) == null ? void 0 : _a.has(symbolId)) {\n return void 0;\n }\n if (context.mustCreateTypeParameterSymbolList) {\n context.mustCreateTypeParameterSymbolList = false;\n context.typeParameterSymbolList = new Set(context.typeParameterSymbolList);\n }\n context.typeParameterSymbolList.add(symbolId);\n let typeParameterNodes;\n if (context.flags & 512 /* WriteTypeParametersInQualifiedName */ && index < chain.length - 1) {\n const parentSymbol = symbol;\n const nextSymbol = chain[index + 1];\n if (getCheckFlags(nextSymbol) & 1 /* Instantiated */) {\n const params = getTypeParametersOfClassOrInterface(\n parentSymbol.flags & 2097152 /* Alias */ ? resolveAlias(parentSymbol) : parentSymbol\n );\n typeParameterNodes = mapToTypeNodes(map(params, (t) => getMappedType(t, nextSymbol.links.mapper)), context);\n } else {\n typeParameterNodes = typeParametersToTypeParameterDeclarations(symbol, context);\n }\n }\n return typeParameterNodes;\n }\n function getTopmostIndexedAccessType(top) {\n if (isIndexedAccessTypeNode(top.objectType)) {\n return getTopmostIndexedAccessType(top.objectType);\n }\n return top;\n }\n function getSpecifierForModuleSymbol(symbol, context, overrideImportMode) {\n let file = getDeclarationOfKind(symbol, 308 /* SourceFile */);\n if (!file) {\n const equivalentFileSymbol = firstDefined(symbol.declarations, (d) => getFileSymbolIfFileSymbolExportEqualsContainer(d, symbol));\n if (equivalentFileSymbol) {\n file = getDeclarationOfKind(equivalentFileSymbol, 308 /* SourceFile */);\n }\n }\n if (file && file.moduleName !== void 0) {\n return file.moduleName;\n }\n if (!file) {\n if (ambientModuleSymbolRegex.test(symbol.escapedName)) {\n return symbol.escapedName.substring(1, symbol.escapedName.length - 1);\n }\n }\n if (!context.enclosingFile || !context.tracker.moduleResolverHost) {\n if (ambientModuleSymbolRegex.test(symbol.escapedName)) {\n return symbol.escapedName.substring(1, symbol.escapedName.length - 1);\n }\n return getSourceFileOfNode(getNonAugmentationDeclaration(symbol)).fileName;\n }\n const enclosingDeclaration = getOriginalNode(context.enclosingDeclaration);\n const originalModuleSpecifier = canHaveModuleSpecifier(enclosingDeclaration) ? tryGetModuleSpecifierFromDeclaration(enclosingDeclaration) : void 0;\n const contextFile = context.enclosingFile;\n const resolutionMode = overrideImportMode || originalModuleSpecifier && host.getModeForUsageLocation(contextFile, originalModuleSpecifier) || contextFile && host.getDefaultResolutionModeForFile(contextFile);\n const cacheKey = createModeAwareCacheKey(contextFile.path, resolutionMode);\n const links = getSymbolLinks(symbol);\n let specifier = links.specifierCache && links.specifierCache.get(cacheKey);\n if (!specifier) {\n const isBundle2 = !!compilerOptions.outFile;\n const { moduleResolverHost } = context.tracker;\n const specifierCompilerOptions = isBundle2 ? { ...compilerOptions, baseUrl: moduleResolverHost.getCommonSourceDirectory() } : compilerOptions;\n specifier = first(getModuleSpecifiers(\n symbol,\n checker,\n specifierCompilerOptions,\n contextFile,\n moduleResolverHost,\n {\n importModuleSpecifierPreference: isBundle2 ? \"non-relative\" : \"project-relative\",\n importModuleSpecifierEnding: isBundle2 ? \"minimal\" : resolutionMode === 99 /* ESNext */ ? \"js\" : void 0\n },\n { overrideImportMode }\n ));\n links.specifierCache ?? (links.specifierCache = /* @__PURE__ */ new Map());\n links.specifierCache.set(cacheKey, specifier);\n }\n return specifier;\n }\n function symbolToEntityNameNode(symbol) {\n const identifier = factory.createIdentifier(unescapeLeadingUnderscores(symbol.escapedName));\n return symbol.parent ? factory.createQualifiedName(symbolToEntityNameNode(symbol.parent), identifier) : identifier;\n }\n function symbolToTypeNode(symbol, context, meaning, overrideTypeArguments) {\n const chain = lookupSymbolChain(symbol, context, meaning, !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */));\n const isTypeOf = meaning === 111551 /* Value */;\n if (some(chain[0].declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n const nonRootParts = chain.length > 1 ? createAccessFromSymbolChain(chain, chain.length - 1, 1) : void 0;\n const typeParameterNodes = overrideTypeArguments || lookupTypeParameterNodes(chain, 0, context);\n const contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration));\n const targetFile = getSourceFileOfModule(chain[0]);\n let specifier;\n let attributes;\n if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) {\n if ((targetFile == null ? void 0 : targetFile.impliedNodeFormat) === 99 /* ESNext */ && targetFile.impliedNodeFormat !== (contextFile == null ? void 0 : contextFile.impliedNodeFormat)) {\n specifier = getSpecifierForModuleSymbol(chain[0], context, 99 /* ESNext */);\n attributes = factory.createImportAttributes(\n factory.createNodeArray([\n factory.createImportAttribute(\n factory.createStringLiteral(\"resolution-mode\"),\n factory.createStringLiteral(\"import\")\n )\n ])\n );\n }\n }\n if (!specifier) {\n specifier = getSpecifierForModuleSymbol(chain[0], context);\n }\n if (!(context.flags & 67108864 /* AllowNodeModulesRelativePaths */) && getEmitModuleResolutionKind(compilerOptions) !== 1 /* Classic */ && specifier.includes(\"/node_modules/\")) {\n const oldSpecifier = specifier;\n if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) {\n const swappedMode = (contextFile == null ? void 0 : contextFile.impliedNodeFormat) === 99 /* ESNext */ ? 1 /* CommonJS */ : 99 /* ESNext */;\n specifier = getSpecifierForModuleSymbol(chain[0], context, swappedMode);\n if (specifier.includes(\"/node_modules/\")) {\n specifier = oldSpecifier;\n } else {\n attributes = factory.createImportAttributes(\n factory.createNodeArray([\n factory.createImportAttribute(\n factory.createStringLiteral(\"resolution-mode\"),\n factory.createStringLiteral(swappedMode === 99 /* ESNext */ ? \"import\" : \"require\")\n )\n ])\n );\n }\n }\n if (!attributes) {\n context.encounteredError = true;\n if (context.tracker.reportLikelyUnsafeImportRequiredError) {\n context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier);\n }\n }\n }\n const lit = factory.createLiteralTypeNode(factory.createStringLiteral(specifier));\n context.approximateLength += specifier.length + 10;\n if (!nonRootParts || isEntityName(nonRootParts)) {\n if (nonRootParts) {\n const lastId = isIdentifier(nonRootParts) ? nonRootParts : nonRootParts.right;\n setIdentifierTypeArguments(\n lastId,\n /*typeArguments*/\n void 0\n );\n }\n return factory.createImportTypeNode(lit, attributes, nonRootParts, typeParameterNodes, isTypeOf);\n } else {\n const splitNode = getTopmostIndexedAccessType(nonRootParts);\n const qualifier = splitNode.objectType.typeName;\n return factory.createIndexedAccessTypeNode(factory.createImportTypeNode(lit, attributes, qualifier, typeParameterNodes, isTypeOf), splitNode.indexType);\n }\n }\n const entityName = createAccessFromSymbolChain(chain, chain.length - 1, 0);\n if (isIndexedAccessTypeNode(entityName)) {\n return entityName;\n }\n if (isTypeOf) {\n return factory.createTypeQueryNode(entityName);\n } else {\n const lastId = isIdentifier(entityName) ? entityName : entityName.right;\n const lastTypeArgs = getIdentifierTypeArguments(lastId);\n setIdentifierTypeArguments(\n lastId,\n /*typeArguments*/\n void 0\n );\n return factory.createTypeReferenceNode(entityName, lastTypeArgs);\n }\n function createAccessFromSymbolChain(chain2, index, stopper) {\n const typeParameterNodes = index === chain2.length - 1 ? overrideTypeArguments : lookupTypeParameterNodes(chain2, index, context);\n const symbol2 = chain2[index];\n const parent2 = chain2[index - 1];\n let symbolName2;\n if (index === 0) {\n context.flags |= 16777216 /* InInitialEntityName */;\n symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n context.approximateLength += (symbolName2 ? symbolName2.length : 0) + 1;\n context.flags ^= 16777216 /* InInitialEntityName */;\n } else {\n if (parent2 && getExportsOfSymbol(parent2)) {\n const exports2 = getExportsOfSymbol(parent2);\n forEachEntry(exports2, (ex, name) => {\n if (getSymbolIfSameReference(ex, symbol2) && !isLateBoundName(name) && name !== \"export=\" /* ExportEquals */) {\n symbolName2 = unescapeLeadingUnderscores(name);\n return true;\n }\n });\n }\n }\n if (symbolName2 === void 0) {\n const name = firstDefined(symbol2.declarations, getNameOfDeclaration);\n if (name && isComputedPropertyName(name) && isEntityName(name.expression)) {\n const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n if (isEntityName(LHS)) {\n return factory.createIndexedAccessTypeNode(factory.createParenthesizedType(factory.createTypeQueryNode(LHS)), factory.createTypeQueryNode(name.expression));\n }\n return LHS;\n }\n symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n }\n context.approximateLength += symbolName2.length + 1;\n if (!(context.flags & 16 /* ForbidIndexedAccessSymbolReferences */) && parent2 && getMembersOfSymbol(parent2) && getMembersOfSymbol(parent2).get(symbol2.escapedName) && getSymbolIfSameReference(getMembersOfSymbol(parent2).get(symbol2.escapedName), symbol2)) {\n const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n if (isIndexedAccessTypeNode(LHS)) {\n return factory.createIndexedAccessTypeNode(LHS, factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2)));\n } else {\n return factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(LHS, typeParameterNodes), factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2)));\n }\n }\n const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n identifier.symbol = symbol2;\n if (index > stopper) {\n const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n if (!isEntityName(LHS)) {\n return Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\");\n }\n return factory.createQualifiedName(LHS, identifier);\n }\n return identifier;\n }\n }\n function typeParameterShadowsOtherTypeParameterInScope(escapedName, context, type) {\n const result = resolveName(\n context.enclosingDeclaration,\n escapedName,\n 788968 /* Type */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n if (result && result.flags & 262144 /* TypeParameter */) {\n return result !== type.symbol;\n }\n return false;\n }\n function typeParameterToName(type, context) {\n var _a, _b, _c, _d;\n if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && context.typeParameterNames) {\n const cached = context.typeParameterNames.get(getTypeId(type));\n if (cached) {\n return cached;\n }\n }\n let result = symbolToName(\n type.symbol,\n context,\n 788968 /* Type */,\n /*expectsIdentifier*/\n true\n );\n if (!(result.kind & 80 /* Identifier */)) {\n return factory.createIdentifier(\"(Missing type parameter)\");\n }\n const decl = (_b = (_a = type.symbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];\n if (decl && isTypeParameterDeclaration(decl)) {\n result = setTextRange2(context, result, decl.name);\n }\n if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n const rawtext = result.escapedText;\n let i = ((_c = context.typeParameterNamesByTextNextNameCount) == null ? void 0 : _c.get(rawtext)) || 0;\n let text = rawtext;\n while (((_d = context.typeParameterNamesByText) == null ? void 0 : _d.has(text)) || typeParameterShadowsOtherTypeParameterInScope(text, context, type)) {\n i++;\n text = `${rawtext}_${i}`;\n }\n if (text !== rawtext) {\n const typeArguments = getIdentifierTypeArguments(result);\n result = factory.createIdentifier(text);\n setIdentifierTypeArguments(result, typeArguments);\n }\n if (context.mustCreateTypeParametersNamesLookups) {\n context.mustCreateTypeParametersNamesLookups = false;\n context.typeParameterNames = new Map(context.typeParameterNames);\n context.typeParameterNamesByTextNextNameCount = new Map(context.typeParameterNamesByTextNextNameCount);\n context.typeParameterNamesByText = new Set(context.typeParameterNamesByText);\n }\n context.typeParameterNamesByTextNextNameCount.set(rawtext, i);\n context.typeParameterNames.set(getTypeId(type), result);\n context.typeParameterNamesByText.add(text);\n }\n return result;\n }\n function symbolToName(symbol, context, meaning, expectsIdentifier) {\n const chain = lookupSymbolChain(symbol, context, meaning);\n if (expectsIdentifier && chain.length !== 1 && !context.encounteredError && !(context.flags & 65536 /* AllowQualifiedNameInPlaceOfIdentifier */)) {\n context.encounteredError = true;\n }\n return createEntityNameFromSymbolChain(chain, chain.length - 1);\n function createEntityNameFromSymbolChain(chain2, index) {\n const typeParameterNodes = lookupTypeParameterNodes(chain2, index, context);\n const symbol2 = chain2[index];\n if (index === 0) {\n context.flags |= 16777216 /* InInitialEntityName */;\n }\n const symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n if (index === 0) {\n context.flags ^= 16777216 /* InInitialEntityName */;\n }\n const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n identifier.symbol = symbol2;\n return index > 0 ? factory.createQualifiedName(createEntityNameFromSymbolChain(chain2, index - 1), identifier) : identifier;\n }\n }\n function symbolToExpression(symbol, context, meaning) {\n const chain = lookupSymbolChain(symbol, context, meaning);\n return createExpressionFromSymbolChain(chain, chain.length - 1);\n function createExpressionFromSymbolChain(chain2, index) {\n const typeParameterNodes = lookupTypeParameterNodes(chain2, index, context);\n const symbol2 = chain2[index];\n if (index === 0) {\n context.flags |= 16777216 /* InInitialEntityName */;\n }\n let symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n if (index === 0) {\n context.flags ^= 16777216 /* InInitialEntityName */;\n }\n let firstChar = symbolName2.charCodeAt(0);\n if (isSingleOrDoubleQuote(firstChar) && some(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n const specifier = getSpecifierForModuleSymbol(symbol2, context);\n context.approximateLength += 2 + specifier.length;\n return factory.createStringLiteral(specifier);\n }\n if (index === 0 || canUsePropertyAccess(symbolName2, languageVersion)) {\n const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n identifier.symbol = symbol2;\n context.approximateLength += 1 + symbolName2.length;\n return index > 0 ? factory.createPropertyAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), identifier) : identifier;\n } else {\n if (firstChar === 91 /* openBracket */) {\n symbolName2 = symbolName2.substring(1, symbolName2.length - 1);\n firstChar = symbolName2.charCodeAt(0);\n }\n let expression;\n if (isSingleOrDoubleQuote(firstChar) && !(symbol2.flags & 8 /* EnumMember */)) {\n const literalText = stripQuotes(symbolName2).replace(/\\\\./g, (s) => s.substring(1));\n context.approximateLength += literalText.length + 2;\n expression = factory.createStringLiteral(literalText, firstChar === 39 /* singleQuote */);\n } else if (\"\" + +symbolName2 === symbolName2) {\n context.approximateLength += symbolName2.length;\n expression = factory.createNumericLiteral(+symbolName2);\n }\n if (!expression) {\n const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n identifier.symbol = symbol2;\n context.approximateLength += symbolName2.length;\n expression = identifier;\n }\n context.approximateLength += 2;\n return factory.createElementAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), expression);\n }\n }\n }\n function isStringNamed(d) {\n const name = getNameOfDeclaration(d);\n if (!name) {\n return false;\n }\n if (isComputedPropertyName(name)) {\n const type = checkExpression(name.expression);\n return !!(type.flags & 402653316 /* StringLike */);\n }\n if (isElementAccessExpression(name)) {\n const type = checkExpression(name.argumentExpression);\n return !!(type.flags & 402653316 /* StringLike */);\n }\n return isStringLiteral(name);\n }\n function isSingleQuotedStringNamed(d) {\n const name = getNameOfDeclaration(d);\n return !!(name && isStringLiteral(name) && (name.singleQuote || !nodeIsSynthesized(name) && startsWith(getTextOfNode(\n name,\n /*includeTrivia*/\n false\n ), \"'\")));\n }\n function getPropertyNameNodeForSymbol(symbol, context) {\n const hashPrivateName = getClonedHashPrivateName(symbol);\n if (hashPrivateName) {\n return hashPrivateName;\n }\n const stringNamed = !!length(symbol.declarations) && every(symbol.declarations, isStringNamed);\n const singleQuote = !!length(symbol.declarations) && every(symbol.declarations, isSingleQuotedStringNamed);\n const isMethod = !!(symbol.flags & 8192 /* Method */);\n const fromNameType = getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed, isMethod);\n if (fromNameType) {\n return fromNameType;\n }\n const rawName = unescapeLeadingUnderscores(symbol.escapedName);\n return createPropertyNameNodeForIdentifierOrLiteral(rawName, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed, isMethod);\n }\n function getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed, isMethod) {\n const nameType = getSymbolLinks(symbol).nameType;\n if (nameType) {\n if (nameType.flags & 384 /* StringOrNumberLiteral */) {\n const name = \"\" + nameType.value;\n if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && (stringNamed || !isNumericLiteralName(name))) {\n return factory.createStringLiteral(name, !!singleQuote);\n }\n if (isNumericLiteralName(name) && startsWith(name, \"-\")) {\n return factory.createComputedPropertyName(factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-name)));\n }\n return createPropertyNameNodeForIdentifierOrLiteral(name, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed, isMethod);\n }\n if (nameType.flags & 8192 /* UniqueESSymbol */) {\n return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, 111551 /* Value */));\n }\n }\n }\n function cloneNodeBuilderContext(context) {\n const oldMustCreateTypeParameterSymbolList = context.mustCreateTypeParameterSymbolList;\n const oldMustCreateTypeParametersNamesLookups = context.mustCreateTypeParametersNamesLookups;\n context.mustCreateTypeParameterSymbolList = true;\n context.mustCreateTypeParametersNamesLookups = true;\n const oldTypeParameterNames = context.typeParameterNames;\n const oldTypeParameterNamesByText = context.typeParameterNamesByText;\n const oldTypeParameterNamesByTextNextNameCount = context.typeParameterNamesByTextNextNameCount;\n const oldTypeParameterSymbolList = context.typeParameterSymbolList;\n return () => {\n context.typeParameterNames = oldTypeParameterNames;\n context.typeParameterNamesByText = oldTypeParameterNamesByText;\n context.typeParameterNamesByTextNextNameCount = oldTypeParameterNamesByTextNextNameCount;\n context.typeParameterSymbolList = oldTypeParameterSymbolList;\n context.mustCreateTypeParameterSymbolList = oldMustCreateTypeParameterSymbolList;\n context.mustCreateTypeParametersNamesLookups = oldMustCreateTypeParametersNamesLookups;\n };\n }\n function getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration) {\n return symbol.declarations && find(symbol.declarations, (s) => !!getNonlocalEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, (n) => n === enclosingDeclaration)));\n }\n function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {\n if (!(getObjectFlags(type) & 4 /* Reference */)) return true;\n if (!isTypeReferenceNode(existing)) return true;\n void getTypeFromTypeReference(existing);\n const symbol = getNodeLinks(existing).resolvedSymbol;\n const existingTarget = symbol && getDeclaredTypeOfSymbol(symbol);\n if (!existingTarget || existingTarget !== type.target) return true;\n return length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);\n }\n function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {\n while (getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration) {\n enclosingDeclaration = enclosingDeclaration.parent;\n }\n return enclosingDeclaration;\n }\n function serializeInferredTypeForDeclaration(symbol, context, type) {\n if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile))) {\n context.flags |= 1048576 /* AllowUniqueESSymbolType */;\n }\n const result = typeToTypeNodeHelper(type, context);\n return result;\n }\n function serializeTypeForDeclaration(context, declaration, type, symbol) {\n var _a;\n let result;\n const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);\n const decl = declaration ?? symbol.valueDeclaration ?? getDeclarationWithTypeAnnotation(symbol) ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);\n if (!canPossiblyExpandType(type, context) && decl) {\n const restore = addSymbolTypeToContext(context, symbol, type);\n if (isAccessor(decl)) {\n result = syntacticNodeBuilder.serializeTypeOfAccessor(decl, symbol, context);\n } else if (hasInferredType(decl) && !nodeIsSynthesized(decl) && !(getObjectFlags(type) & 196608 /* RequiresWidening */)) {\n result = syntacticNodeBuilder.serializeTypeOfDeclaration(decl, symbol, context);\n }\n restore();\n }\n if (!result) {\n if (addUndefinedForParameter) {\n type = getOptionalType(type);\n }\n result = serializeInferredTypeForDeclaration(symbol, context, type);\n }\n return result ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function typeNodeIsEquivalentToType(annotatedDeclaration, type, typeFromTypeNode) {\n if (typeFromTypeNode === type) {\n return true;\n }\n if (!annotatedDeclaration) {\n return false;\n }\n if ((isPropertySignature(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {\n return getTypeWithFacts(type, 524288 /* NEUndefined */) === typeFromTypeNode;\n }\n if (isParameter(annotatedDeclaration) && hasEffectiveQuestionToken(annotatedDeclaration)) {\n return getTypeWithFacts(type, 524288 /* NEUndefined */) === typeFromTypeNode;\n }\n return false;\n }\n function serializeReturnTypeForSignature(context, signature) {\n const suppressAny = context.flags & 256 /* SuppressAnyReturnType */;\n const restoreFlags = saveRestoreFlags(context);\n if (suppressAny) context.flags &= ~256 /* SuppressAnyReturnType */;\n let returnTypeNode;\n const returnType = getReturnTypeOfSignature(signature);\n if (!(suppressAny && isTypeAny(returnType))) {\n if (signature.declaration && !nodeIsSynthesized(signature.declaration) && !canPossiblyExpandType(returnType, context)) {\n const declarationSymbol = getSymbolOfDeclaration(signature.declaration);\n const restore = addSymbolTypeToContext(context, declarationSymbol, returnType);\n returnTypeNode = syntacticNodeBuilder.serializeReturnTypeForSignature(signature.declaration, declarationSymbol, context);\n restore();\n }\n if (!returnTypeNode) {\n returnTypeNode = serializeInferredReturnTypeForSignature(context, signature, returnType);\n }\n }\n if (!returnTypeNode && !suppressAny) {\n returnTypeNode = factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n restoreFlags();\n return returnTypeNode;\n }\n function serializeInferredReturnTypeForSignature(context, signature, returnType) {\n const oldSuppressReportInferenceFallback = context.suppressReportInferenceFallback;\n context.suppressReportInferenceFallback = true;\n const typePredicate = getTypePredicateOfSignature(signature);\n const returnTypeNode = typePredicate ? typePredicateToTypePredicateNodeHelper(context.mapper ? instantiateTypePredicate(typePredicate, context.mapper) : typePredicate, context) : typeToTypeNodeHelper(returnType, context);\n context.suppressReportInferenceFallback = oldSuppressReportInferenceFallback;\n return returnTypeNode;\n }\n function trackExistingEntityName(node, context, enclosingDeclaration = context.enclosingDeclaration) {\n let introducesError = false;\n const leftmost = getFirstIdentifier(node);\n if (isInJSFile(node) && (isExportsIdentifier(leftmost) || isModuleExportsAccessExpression(leftmost.parent) || isQualifiedName(leftmost.parent) && isModuleIdentifier(leftmost.parent.left) && isExportsIdentifier(leftmost.parent.right))) {\n introducesError = true;\n return { introducesError, node };\n }\n const meaning = getMeaningOfEntityNameReference(node);\n let sym;\n if (isThisIdentifier(leftmost)) {\n sym = getSymbolOfDeclaration(getThisContainer(\n leftmost,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n ));\n if (isSymbolAccessible(\n sym,\n leftmost,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility !== 0 /* Accessible */) {\n introducesError = true;\n context.tracker.reportInaccessibleThisError();\n }\n return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n }\n sym = resolveEntityName(\n leftmost,\n meaning,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true\n );\n if (context.enclosingDeclaration && !(sym && sym.flags & 262144 /* TypeParameter */)) {\n sym = getExportSymbolOfValueSymbolIfExported(sym);\n const symAtLocation = resolveEntityName(\n leftmost,\n meaning,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n context.enclosingDeclaration\n );\n if (\n // Check for unusable parameters symbols\n symAtLocation === unknownSymbol || // If the symbol is not found, but was not found in the original scope either we probably have an error, don't reuse the node\n symAtLocation === void 0 && sym !== void 0 || // If the symbol is found both in declaration scope and in current scope then it should point to the same reference\n symAtLocation && sym && !getSymbolIfSameReference(getExportSymbolOfValueSymbolIfExported(symAtLocation), sym)\n ) {\n if (symAtLocation !== unknownSymbol) {\n context.tracker.reportInferenceFallback(node);\n }\n introducesError = true;\n return { introducesError, node, sym };\n } else {\n sym = symAtLocation;\n }\n }\n if (sym) {\n if (sym.flags & 1 /* FunctionScopedVariable */ && sym.valueDeclaration) {\n if (isPartOfParameterDeclaration(sym.valueDeclaration) || isJSDocParameterTag(sym.valueDeclaration)) {\n return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n }\n }\n if (!(sym.flags & 262144 /* TypeParameter */) && // Type parameters are visible in the current context if they are are resolvable\n !isDeclarationName(node) && isSymbolAccessible(\n sym,\n enclosingDeclaration,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility !== 0 /* Accessible */) {\n context.tracker.reportInferenceFallback(node);\n introducesError = true;\n } else {\n context.tracker.trackSymbol(sym, enclosingDeclaration, meaning);\n }\n return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n }\n return { introducesError, node };\n function attachSymbolToLeftmostIdentifier(node2) {\n if (node2 === leftmost) {\n const type = getDeclaredTypeOfSymbol(sym);\n const name = sym.flags & 262144 /* TypeParameter */ ? typeParameterToName(type, context) : factory.cloneNode(node2);\n name.symbol = sym;\n return setTextRange2(context, setEmitFlags(name, 16777216 /* NoAsciiEscaping */), node2);\n }\n const updated = visitEachChild(\n node2,\n (c) => attachSymbolToLeftmostIdentifier(c),\n /*context*/\n void 0\n );\n return setTextRange2(context, updated, node2);\n }\n }\n function serializeTypeName(context, node, isTypeOf, typeArguments) {\n const meaning = isTypeOf ? 111551 /* Value */ : 788968 /* Type */;\n const symbol = resolveEntityName(\n node,\n meaning,\n /*ignoreErrors*/\n true\n );\n if (!symbol) return void 0;\n const resolvedSymbol = symbol.flags & 2097152 /* Alias */ ? resolveAlias(symbol) : symbol;\n if (isSymbolAccessible(\n symbol,\n context.enclosingDeclaration,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n ).accessibility !== 0 /* Accessible */) return void 0;\n return symbolToTypeNode(resolvedSymbol, context, meaning, typeArguments);\n }\n function canReuseTypeNode(context, existing) {\n const type = getTypeFromTypeNode2(\n context,\n existing,\n /*noMappedTypes*/\n true\n );\n if (!type) {\n return false;\n }\n if (isInJSFile(existing)) {\n if (isLiteralImportTypeNode(existing)) {\n void getTypeFromImportTypeNode(existing);\n const nodeSymbol = getNodeLinks(existing).resolvedSymbol;\n return !nodeSymbol || !// The import type resolved using jsdoc fallback logic\n (!existing.isTypeOf && !(nodeSymbol.flags & 788968 /* Type */) || // The import type had type arguments autofilled by js fallback logic\n !(length(existing.typeArguments) >= getMinTypeArgumentCount(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(nodeSymbol))));\n }\n }\n if (isTypeReferenceNode(existing)) {\n if (isConstTypeReference(existing)) return false;\n const symbol = getNodeLinks(existing).resolvedSymbol;\n if (!symbol) return false;\n if (symbol.flags & 262144 /* TypeParameter */) {\n const declaredType = getDeclaredTypeOfSymbol(symbol);\n return !(context.mapper && getMappedType(declaredType, context.mapper) !== declaredType);\n }\n if (isInJSDoc(existing)) {\n return existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) && !getIntendedTypeFromJSDocTypeReference(existing) && !!(symbol.flags & 788968 /* Type */);\n }\n }\n if (isTypeOperatorNode(existing) && existing.operator === 158 /* UniqueKeyword */ && existing.type.kind === 155 /* SymbolKeyword */) {\n const effectiveEnclosingContext = context.enclosingDeclaration && getEnclosingDeclarationIgnoringFakeScope(context.enclosingDeclaration);\n return !!findAncestor(existing, (n) => n === effectiveEnclosingContext);\n }\n return true;\n }\n function serializeExistingTypeNode(context, typeNode, addUndefined) {\n const type = getTypeFromTypeNode2(context, typeNode);\n if (addUndefined && !someType(type, (t) => !!(t.flags & 32768 /* Undefined */)) && canReuseTypeNode(context, typeNode)) {\n const clone2 = syntacticNodeBuilder.tryReuseExistingTypeNode(context, typeNode);\n if (clone2) {\n return factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n }\n return typeToTypeNodeHelper(type, context);\n }\n function symbolTableToDeclarationStatements(symbolTable, context) {\n var _a;\n const serializePropertySymbolForClass = makeSerializePropertySymbol(\n factory.createPropertyDeclaration,\n 175 /* MethodDeclaration */,\n /*useAccessors*/\n true\n );\n const serializePropertySymbolForInterfaceWorker = makeSerializePropertySymbol(\n (mods, name, question, type) => factory.createPropertySignature(mods, name, question, type),\n 174 /* MethodSignature */,\n /*useAccessors*/\n false\n );\n const enclosingDeclaration = context.enclosingDeclaration;\n let results = [];\n const visitedSymbols = /* @__PURE__ */ new Set();\n const deferredPrivatesStack = [];\n const oldcontext = context;\n context = {\n ...oldcontext,\n usedSymbolNames: new Set(oldcontext.usedSymbolNames),\n remappedSymbolNames: /* @__PURE__ */ new Map(),\n remappedSymbolReferences: new Map((_a = oldcontext.remappedSymbolReferences) == null ? void 0 : _a.entries()),\n tracker: void 0\n };\n const tracker = {\n ...oldcontext.tracker.inner,\n trackSymbol: (sym, decl, meaning) => {\n var _a2, _b;\n if ((_a2 = context.remappedSymbolNames) == null ? void 0 : _a2.has(getSymbolId(sym))) return false;\n const accessibleResult = isSymbolAccessible(\n sym,\n decl,\n meaning,\n /*shouldComputeAliasesToMakeVisible*/\n false\n );\n if (accessibleResult.accessibility === 0 /* Accessible */) {\n const chain = lookupSymbolChainWorker(sym, context, meaning);\n if (!(sym.flags & 4 /* Property */)) {\n const root = chain[0];\n const contextFile = getSourceFileOfNode(oldcontext.enclosingDeclaration);\n if (some(root.declarations, (d) => getSourceFileOfNode(d) === contextFile)) {\n includePrivateSymbol(root);\n }\n }\n } else if ((_b = oldcontext.tracker.inner) == null ? void 0 : _b.trackSymbol) {\n return oldcontext.tracker.inner.trackSymbol(sym, decl, meaning);\n }\n return false;\n }\n };\n context.tracker = new SymbolTrackerImpl(context, tracker, oldcontext.tracker.moduleResolverHost);\n forEachEntry(symbolTable, (symbol, name) => {\n const baseName = unescapeLeadingUnderscores(name);\n void getInternalSymbolName(symbol, baseName);\n });\n let addingDeclare = !context.bundled;\n const exportEquals = symbolTable.get(\"export=\" /* ExportEquals */);\n if (exportEquals && symbolTable.size > 1 && exportEquals.flags & (2097152 /* Alias */ | 1536 /* Module */)) {\n symbolTable = createSymbolTable();\n symbolTable.set(\"export=\" /* ExportEquals */, exportEquals);\n }\n visitSymbolTable(symbolTable);\n return mergeRedundantStatements(results);\n function isIdentifierAndNotUndefined(node) {\n return !!node && node.kind === 80 /* Identifier */;\n }\n function getNamesOfDeclaration(statement) {\n if (isVariableStatement(statement)) {\n return filter(map(statement.declarationList.declarations, getNameOfDeclaration), isIdentifierAndNotUndefined);\n }\n return filter([getNameOfDeclaration(statement)], isIdentifierAndNotUndefined);\n }\n function flattenExportAssignedNamespace(statements) {\n const exportAssignment = find(statements, isExportAssignment);\n const nsIndex = findIndex(statements, isModuleDeclaration);\n let ns = nsIndex !== -1 ? statements[nsIndex] : void 0;\n if (ns && exportAssignment && exportAssignment.isExportEquals && isIdentifier(exportAssignment.expression) && isIdentifier(ns.name) && idText(ns.name) === idText(exportAssignment.expression) && ns.body && isModuleBlock(ns.body)) {\n const excessExports = filter(statements, (s) => !!(getEffectiveModifierFlags(s) & 32 /* Export */));\n const name = ns.name;\n let body = ns.body;\n if (length(excessExports)) {\n ns = factory.updateModuleDeclaration(\n ns,\n ns.modifiers,\n ns.name,\n body = factory.updateModuleBlock(\n body,\n factory.createNodeArray([\n ...ns.body.statements,\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports(map(flatMap(excessExports, (e) => getNamesOfDeclaration(e)), (id) => factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n /*propertyName*/\n void 0,\n id\n ))),\n /*moduleSpecifier*/\n void 0\n )\n ])\n )\n );\n statements = [...statements.slice(0, nsIndex), ns, ...statements.slice(nsIndex + 1)];\n }\n if (!find(statements, (s) => s !== ns && nodeHasName(s, name))) {\n results = [];\n const mixinExportFlag = !some(body.statements, (s) => hasSyntacticModifier(s, 32 /* Export */) || isExportAssignment(s) || isExportDeclaration(s));\n forEach(body.statements, (s) => {\n addResult(s, mixinExportFlag ? 32 /* Export */ : 0 /* None */);\n });\n statements = [...filter(statements, (s) => s !== ns && s !== exportAssignment), ...results];\n }\n }\n return statements;\n }\n function mergeExportDeclarations(statements) {\n const exports2 = filter(statements, (d) => isExportDeclaration(d) && !d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause));\n if (length(exports2) > 1) {\n const nonExports = filter(statements, (d) => !isExportDeclaration(d) || !!d.moduleSpecifier || !d.exportClause);\n statements = [\n ...nonExports,\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports(flatMap(exports2, (e) => cast(e.exportClause, isNamedExports).elements)),\n /*moduleSpecifier*/\n void 0\n )\n ];\n }\n const reexports = filter(statements, (d) => isExportDeclaration(d) && !!d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause));\n if (length(reexports) > 1) {\n const groups = group(reexports, (decl) => isStringLiteral(decl.moduleSpecifier) ? \">\" + decl.moduleSpecifier.text : \">\");\n if (groups.length !== reexports.length) {\n for (const group2 of groups) {\n if (group2.length > 1) {\n statements = [\n ...filter(statements, (s) => !group2.includes(s)),\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports(flatMap(group2, (e) => cast(e.exportClause, isNamedExports).elements)),\n group2[0].moduleSpecifier\n )\n ];\n }\n }\n }\n }\n return statements;\n }\n function inlineExportModifiers(statements) {\n const index = findIndex(statements, (d) => isExportDeclaration(d) && !d.moduleSpecifier && !d.attributes && !!d.exportClause && isNamedExports(d.exportClause));\n if (index >= 0) {\n const exportDecl = statements[index];\n const replacements = mapDefined(exportDecl.exportClause.elements, (e) => {\n if (!e.propertyName && e.name.kind !== 11 /* StringLiteral */) {\n const name = e.name;\n const indices = indicesOf(statements);\n const associatedIndices = filter(indices, (i) => nodeHasName(statements[i], name));\n if (length(associatedIndices) && every(associatedIndices, (i) => canHaveExportModifier(statements[i]))) {\n for (const index2 of associatedIndices) {\n statements[index2] = addExportModifier(statements[index2]);\n }\n return void 0;\n }\n }\n return e;\n });\n if (!length(replacements)) {\n orderedRemoveItemAt(statements, index);\n } else {\n statements[index] = factory.updateExportDeclaration(\n exportDecl,\n exportDecl.modifiers,\n exportDecl.isTypeOnly,\n factory.updateNamedExports(\n exportDecl.exportClause,\n replacements\n ),\n exportDecl.moduleSpecifier,\n exportDecl.attributes\n );\n }\n }\n return statements;\n }\n function mergeRedundantStatements(statements) {\n statements = flattenExportAssignedNamespace(statements);\n statements = mergeExportDeclarations(statements);\n statements = inlineExportModifiers(statements);\n if (enclosingDeclaration && (isSourceFile(enclosingDeclaration) && isExternalOrCommonJsModule(enclosingDeclaration) || isModuleDeclaration(enclosingDeclaration)) && (!some(statements, isExternalModuleIndicator) || !hasScopeMarker(statements) && some(statements, needsScopeMarker))) {\n statements.push(createEmptyExports(factory));\n }\n return statements;\n }\n function addExportModifier(node) {\n const flags = (getEffectiveModifierFlags(node) | 32 /* Export */) & ~128 /* Ambient */;\n return factory.replaceModifiers(node, flags);\n }\n function removeExportModifier(node) {\n const flags = getEffectiveModifierFlags(node) & ~32 /* Export */;\n return factory.replaceModifiers(node, flags);\n }\n function visitSymbolTable(symbolTable2, suppressNewPrivateContext, propertyAsAlias) {\n if (!suppressNewPrivateContext) {\n deferredPrivatesStack.push(/* @__PURE__ */ new Map());\n }\n let i = 0;\n const symbols = Array.from(symbolTable2.values());\n for (const symbol of symbols) {\n i++;\n if (checkTruncationLengthIfExpanding(context) && i + 2 < symbolTable2.size - 1) {\n context.out.truncated = true;\n results.push(createTruncationStatement(`... (${symbolTable2.size - i} more ...)`));\n serializeSymbol(\n symbols[symbols.length - 1],\n /*isPrivate*/\n false,\n !!propertyAsAlias\n );\n break;\n }\n serializeSymbol(\n symbol,\n /*isPrivate*/\n false,\n !!propertyAsAlias\n );\n }\n if (!suppressNewPrivateContext) {\n deferredPrivatesStack[deferredPrivatesStack.length - 1].forEach((symbol) => {\n serializeSymbol(\n symbol,\n /*isPrivate*/\n true,\n !!propertyAsAlias\n );\n });\n deferredPrivatesStack.pop();\n }\n }\n function serializeSymbol(symbol, isPrivate, propertyAsAlias) {\n void getPropertiesOfType(getTypeOfSymbol(symbol));\n const visitedSym = getMergedSymbol(symbol);\n if (visitedSymbols.has(getSymbolId(visitedSym))) {\n return;\n }\n visitedSymbols.add(getSymbolId(visitedSym));\n const skipMembershipCheck = !isPrivate;\n if (skipMembershipCheck || !!length(symbol.declarations) && some(symbol.declarations, (d) => !!findAncestor(d, (n) => n === enclosingDeclaration))) {\n const scopeCleanup = cloneNodeBuilderContext(context);\n context.tracker.pushErrorFallbackNode(find(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile));\n serializeSymbolWorker(symbol, isPrivate, propertyAsAlias);\n context.tracker.popErrorFallbackNode();\n scopeCleanup();\n }\n }\n function serializeSymbolWorker(symbol, isPrivate, propertyAsAlias, escapedSymbolName = symbol.escapedName) {\n var _a2, _b, _c, _d, _e, _f, _g;\n const symbolName2 = unescapeLeadingUnderscores(escapedSymbolName);\n const isDefault = escapedSymbolName === \"default\" /* Default */;\n if (isPrivate && !(context.flags & 131072 /* AllowAnonymousIdentifier */) && isStringANonContextualKeyword(symbolName2) && !isDefault) {\n context.encounteredError = true;\n return;\n }\n let needsPostExportDefault = isDefault && !!(symbol.flags & -113 /* ExportDoesNotSupportDefaultModifier */ || symbol.flags & 16 /* Function */ && length(getPropertiesOfType(getTypeOfSymbol(symbol)))) && !(symbol.flags & 2097152 /* Alias */);\n let needsExportDeclaration = !needsPostExportDefault && !isPrivate && isStringANonContextualKeyword(symbolName2) && !isDefault;\n if (needsPostExportDefault || needsExportDeclaration) {\n isPrivate = true;\n }\n const modifierFlags = (!isPrivate ? 32 /* Export */ : 0) | (isDefault && !needsPostExportDefault ? 2048 /* Default */ : 0);\n const isConstMergedWithNS = symbol.flags & 1536 /* Module */ && symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */) && escapedSymbolName !== \"export=\" /* ExportEquals */;\n const isConstMergedWithNSPrintableAsSignatureMerge = isConstMergedWithNS && isTypeRepresentableAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol);\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */) || isConstMergedWithNSPrintableAsSignatureMerge) {\n serializeAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n }\n if (symbol.flags & 524288 /* TypeAlias */) {\n serializeTypeAlias(symbol, symbolName2, modifierFlags);\n }\n if (symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */ | 98304 /* Accessor */) && escapedSymbolName !== \"export=\" /* ExportEquals */ && !(symbol.flags & 4194304 /* Prototype */) && !(symbol.flags & 32 /* Class */) && !(symbol.flags & 8192 /* Method */) && !isConstMergedWithNSPrintableAsSignatureMerge) {\n if (propertyAsAlias) {\n const createdExport = serializeMaybeAliasAssignment(symbol);\n if (createdExport) {\n needsExportDeclaration = false;\n needsPostExportDefault = false;\n }\n } else {\n const type = getTypeOfSymbol(symbol);\n const localName = getInternalSymbolName(symbol, symbolName2);\n if (type.symbol && type.symbol !== symbol && type.symbol.flags & 16 /* Function */ && some(type.symbol.declarations, isFunctionExpressionOrArrowFunction) && (((_a2 = type.symbol.members) == null ? void 0 : _a2.size) || ((_b = type.symbol.exports) == null ? void 0 : _b.size))) {\n if (!context.remappedSymbolReferences) {\n context.remappedSymbolReferences = /* @__PURE__ */ new Map();\n }\n context.remappedSymbolReferences.set(getSymbolId(type.symbol), symbol);\n serializeSymbolWorker(type.symbol, isPrivate, propertyAsAlias, escapedSymbolName);\n context.remappedSymbolReferences.delete(getSymbolId(type.symbol));\n } else if (!(symbol.flags & 16 /* Function */) && isTypeRepresentableAsFunctionNamespaceMerge(type, symbol)) {\n serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags);\n } else {\n const flags = !(symbol.flags & 2 /* BlockScopedVariable */) ? ((_c = symbol.parent) == null ? void 0 : _c.valueDeclaration) && isSourceFile((_d = symbol.parent) == null ? void 0 : _d.valueDeclaration) ? 2 /* Const */ : void 0 : isConstantVariable(symbol) ? 2 /* Const */ : 1 /* Let */;\n const name = needsPostExportDefault || !(symbol.flags & 4 /* Property */) ? localName : getUnusedName(localName, symbol);\n let textRange = symbol.declarations && find(symbol.declarations, (d) => isVariableDeclaration(d));\n if (textRange && isVariableDeclarationList(textRange.parent) && textRange.parent.declarations.length === 1) {\n textRange = textRange.parent.parent;\n }\n const propertyAccessRequire = (_e = symbol.declarations) == null ? void 0 : _e.find(isPropertyAccessExpression);\n if (propertyAccessRequire && isBinaryExpression(propertyAccessRequire.parent) && isIdentifier(propertyAccessRequire.parent.right) && ((_f = type.symbol) == null ? void 0 : _f.valueDeclaration) && isSourceFile(type.symbol.valueDeclaration)) {\n const alias = localName === propertyAccessRequire.parent.right.escapedText ? void 0 : propertyAccessRequire.parent.right;\n context.approximateLength += 12 + (((_g = alias == null ? void 0 : alias.escapedText) == null ? void 0 : _g.length) ?? 0);\n addResult(\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n alias,\n localName\n )])\n ),\n 0 /* None */\n );\n context.tracker.trackSymbol(type.symbol, context.enclosingDeclaration, 111551 /* Value */);\n } else {\n const statement = setTextRange2(\n context,\n factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n serializeTypeForDeclaration(\n context,\n /*declaration*/\n void 0,\n type,\n symbol\n )\n )\n ], flags)\n ),\n textRange\n );\n context.approximateLength += 7 + name.length;\n addResult(statement, name !== localName ? modifierFlags & ~32 /* Export */ : modifierFlags);\n if (name !== localName && !isPrivate) {\n context.approximateLength += 16 + name.length + localName.length;\n addResult(\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n name,\n localName\n )])\n ),\n 0 /* None */\n );\n needsExportDeclaration = false;\n needsPostExportDefault = false;\n }\n }\n }\n }\n }\n if (symbol.flags & 384 /* Enum */) {\n serializeEnum(symbol, symbolName2, modifierFlags);\n }\n if (symbol.flags & 32 /* Class */) {\n if (symbol.flags & 4 /* Property */ && symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration.parent) && isClassExpression(symbol.valueDeclaration.parent.right)) {\n serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n } else {\n serializeAsClass(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n }\n }\n if (symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && (!isConstMergedWithNS || isTypeOnlyNamespace(symbol)) || isConstMergedWithNSPrintableAsSignatureMerge) {\n serializeModule(symbol, symbolName2, modifierFlags);\n }\n if (symbol.flags & 64 /* Interface */ && !(symbol.flags & 32 /* Class */)) {\n serializeInterface(symbol, symbolName2, modifierFlags);\n }\n if (symbol.flags & 2097152 /* Alias */) {\n serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n }\n if (symbol.flags & 4 /* Property */ && symbol.escapedName === \"export=\" /* ExportEquals */) {\n serializeMaybeAliasAssignment(symbol);\n }\n if (symbol.flags & 8388608 /* ExportStar */) {\n if (symbol.declarations) {\n for (const node of symbol.declarations) {\n const resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n if (!resolvedModule) continue;\n const isTypeOnly = node.isTypeOnly;\n const specifier = getSpecifierForModuleSymbol(resolvedModule, context);\n context.approximateLength += 17 + specifier.length;\n addResult(factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n isTypeOnly,\n /*exportClause*/\n void 0,\n factory.createStringLiteral(specifier)\n ), 0 /* None */);\n }\n }\n }\n if (needsPostExportDefault) {\n const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n context.approximateLength += 16 + internalSymbolName.length;\n addResult(factory.createExportAssignment(\n /*modifiers*/\n void 0,\n /*isExportEquals*/\n false,\n factory.createIdentifier(internalSymbolName)\n ), 0 /* None */);\n } else if (needsExportDeclaration) {\n const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n context.approximateLength += 22 + symbolName2.length + internalSymbolName.length;\n addResult(\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n internalSymbolName,\n symbolName2\n )])\n ),\n 0 /* None */\n );\n }\n }\n function includePrivateSymbol(symbol) {\n if (some(symbol.declarations, isPartOfParameterDeclaration)) return;\n Debug.assertIsDefined(deferredPrivatesStack[deferredPrivatesStack.length - 1]);\n getUnusedName(unescapeLeadingUnderscores(symbol.escapedName), symbol);\n const isExternalImportAlias = !!(symbol.flags & 2097152 /* Alias */) && !some(symbol.declarations, (d) => !!findAncestor(d, isExportDeclaration) || isNamespaceExport(d) || isImportEqualsDeclaration(d) && !isExternalModuleReference(d.moduleReference));\n deferredPrivatesStack[isExternalImportAlias ? 0 : deferredPrivatesStack.length - 1].set(getSymbolId(symbol), symbol);\n }\n function isExportingScope(enclosingDeclaration2) {\n return isSourceFile(enclosingDeclaration2) && (isExternalOrCommonJsModule(enclosingDeclaration2) || isJsonSourceFile(enclosingDeclaration2)) || isAmbientModule(enclosingDeclaration2) && !isGlobalScopeAugmentation(enclosingDeclaration2);\n }\n function addResult(node, additionalModifierFlags) {\n if (canHaveModifiers(node)) {\n const oldModifierFlags = getEffectiveModifierFlags(node);\n let newModifierFlags = 0 /* None */;\n const enclosingDeclaration2 = context.enclosingDeclaration && (isJSDocTypeAlias(context.enclosingDeclaration) ? getSourceFileOfNode(context.enclosingDeclaration) : context.enclosingDeclaration);\n if (additionalModifierFlags & 32 /* Export */ && enclosingDeclaration2 && (isExportingScope(enclosingDeclaration2) || isModuleDeclaration(enclosingDeclaration2)) && canHaveExportModifier(node)) {\n newModifierFlags |= 32 /* Export */;\n }\n if (addingDeclare && !(newModifierFlags & 32 /* Export */) && (!enclosingDeclaration2 || !(enclosingDeclaration2.flags & 33554432 /* Ambient */)) && (isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isModuleDeclaration(node))) {\n newModifierFlags |= 128 /* Ambient */;\n }\n if (additionalModifierFlags & 2048 /* Default */ && (isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionDeclaration(node))) {\n newModifierFlags |= 2048 /* Default */;\n }\n if (newModifierFlags) {\n node = factory.replaceModifiers(node, newModifierFlags | oldModifierFlags);\n }\n context.approximateLength += modifiersLength(newModifierFlags | oldModifierFlags);\n }\n results.push(node);\n }\n function serializeTypeAlias(symbol, symbolName2, modifierFlags) {\n var _a2;\n const aliasType = getDeclaredTypeOfTypeAlias(symbol);\n const typeParams = getSymbolLinks(symbol).typeParameters;\n const typeParamDecls = map(typeParams, (p) => typeParameterToDeclaration(p, context));\n const jsdocAliasDecl = (_a2 = symbol.declarations) == null ? void 0 : _a2.find(isJSDocTypeAlias);\n const commentText = getTextOfJSDocComment(jsdocAliasDecl ? jsdocAliasDecl.comment || jsdocAliasDecl.parent.comment : void 0);\n const restoreFlags = saveRestoreFlags(context);\n context.flags |= 8388608 /* InTypeAlias */;\n const oldEnclosingDecl = context.enclosingDeclaration;\n context.enclosingDeclaration = jsdocAliasDecl;\n const typeNode = jsdocAliasDecl && jsdocAliasDecl.typeExpression && isJSDocTypeExpression(jsdocAliasDecl.typeExpression) && syntacticNodeBuilder.tryReuseExistingTypeNode(context, jsdocAliasDecl.typeExpression.type) || typeToTypeNodeHelper(aliasType, context);\n const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n context.approximateLength += 8 + ((commentText == null ? void 0 : commentText.length) ?? 0) + internalSymbolName.length;\n addResult(\n setSyntheticLeadingComments(\n factory.createTypeAliasDeclaration(\n /*modifiers*/\n void 0,\n internalSymbolName,\n typeParamDecls,\n typeNode\n ),\n !commentText ? [] : [{ kind: 3 /* MultiLineCommentTrivia */, text: \"*\\n * \" + commentText.replace(/\\n/g, \"\\n * \") + \"\\n \", pos: -1, end: -1, hasTrailingNewLine: true }]\n ),\n modifierFlags\n );\n restoreFlags();\n context.enclosingDeclaration = oldEnclosingDecl;\n }\n function serializeInterface(symbol, symbolName2, modifierFlags) {\n const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n context.approximateLength += 14 + internalSymbolName.length;\n const interfaceType = getDeclaredTypeOfClassOrInterface(symbol);\n const localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n const typeParamDecls = map(localParams, (p) => typeParameterToDeclaration(p, context));\n const baseTypes = getBaseTypes(interfaceType);\n const baseType = length(baseTypes) ? getIntersectionType(baseTypes) : void 0;\n const members = serializePropertySymbolsForClassOrInterface(\n getPropertiesOfType(interfaceType),\n /*isClass*/\n false,\n baseType\n );\n const callSignatures = serializeSignatures(0 /* Call */, interfaceType, baseType, 180 /* CallSignature */);\n const constructSignatures = serializeSignatures(1 /* Construct */, interfaceType, baseType, 181 /* ConstructSignature */);\n const indexSignatures = serializeIndexSignatures(interfaceType, baseType);\n const heritageClauses = !length(baseTypes) ? void 0 : [factory.createHeritageClause(96 /* ExtendsKeyword */, mapDefined(baseTypes, (b) => trySerializeAsTypeReference(b, 111551 /* Value */)))];\n addResult(\n factory.createInterfaceDeclaration(\n /*modifiers*/\n void 0,\n internalSymbolName,\n typeParamDecls,\n heritageClauses,\n [...indexSignatures, ...constructSignatures, ...callSignatures, ...members]\n ),\n modifierFlags\n );\n }\n function serializePropertySymbolsForClassOrInterface(props, isClass, baseType, isStatic2) {\n const elements = [];\n let i = 0;\n for (const prop of props) {\n i++;\n if (checkTruncationLengthIfExpanding(context) && i + 2 < props.length - 1) {\n context.out.truncated = true;\n const placeholder = createTruncationProperty(`... ${props.length - i} more ... `, isClass);\n elements.push(placeholder);\n const result2 = isClass ? serializePropertySymbolForClass(props[props.length - 1], isStatic2, baseType) : serializePropertySymbolForInterface(props[props.length - 1], baseType);\n if (isArray(result2)) {\n elements.push(...result2);\n } else {\n elements.push(result2);\n }\n break;\n }\n context.approximateLength += 1;\n const result = isClass ? serializePropertySymbolForClass(prop, isStatic2, baseType) : serializePropertySymbolForInterface(prop, baseType);\n if (isArray(result)) {\n elements.push(...result);\n } else {\n elements.push(result);\n }\n }\n return elements;\n }\n function createTruncationProperty(dotDotDotText, isClass) {\n if (context.flags & 1 /* NoTruncation */) {\n return addSyntheticLeadingComment(factory.createNotEmittedTypeElement(), 3 /* MultiLineCommentTrivia */, dotDotDotText);\n }\n return isClass ? factory.createPropertyDeclaration(\n /*modifiers*/\n void 0,\n dotDotDotText,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ) : factory.createPropertySignature(\n /*modifiers*/\n void 0,\n dotDotDotText,\n /*questionToken*/\n void 0,\n /*type*/\n void 0\n );\n }\n function getNamespaceMembersForSerialization(symbol) {\n let exports2 = arrayFrom(getExportsOfSymbol(symbol).values());\n const merged = getMergedSymbol(symbol);\n if (merged !== symbol) {\n const membersSet = new Set(exports2);\n for (const exported of getExportsOfSymbol(merged).values()) {\n if (!(getSymbolFlags(resolveSymbol(exported)) & 111551 /* Value */)) {\n membersSet.add(exported);\n }\n }\n exports2 = arrayFrom(membersSet);\n }\n return filter(exports2, (m) => isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */));\n }\n function isTypeOnlyNamespace(symbol) {\n return every(getNamespaceMembersForSerialization(symbol), (m) => !(getSymbolFlags(resolveSymbol(m)) & 111551 /* Value */));\n }\n function serializeModule(symbol, symbolName2, modifierFlags) {\n const members = getNamespaceMembersForSerialization(symbol);\n const expanding = isExpanding(context);\n const locationMap = arrayToMultiMap(members, (m) => m.parent && m.parent === symbol || expanding ? \"real\" : \"merged\");\n const realMembers = locationMap.get(\"real\") || emptyArray;\n const mergedMembers = locationMap.get(\"merged\") || emptyArray;\n if (length(realMembers) || expanding) {\n let localName;\n if (expanding) {\n const oldFlags = context.flags;\n context.flags |= 512 /* WriteTypeParametersInQualifiedName */ | 2 /* UseOnlyExternalAliasing */;\n localName = symbolToNode(\n symbol,\n context,\n /*meaning*/\n -1 /* All */\n );\n context.flags = oldFlags;\n } else {\n const localText = getInternalSymbolName(symbol, symbolName2);\n localName = factory.createIdentifier(localText);\n context.approximateLength += localText.length;\n }\n serializeAsNamespaceDeclaration(realMembers, localName, modifierFlags, !!(symbol.flags & (16 /* Function */ | 67108864 /* Assignment */)));\n }\n if (length(mergedMembers)) {\n const containingFile = getSourceFileOfNode(context.enclosingDeclaration);\n const localName = getInternalSymbolName(symbol, symbolName2);\n const nsBody = factory.createModuleBlock([factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports(mapDefined(filter(mergedMembers, (n) => n.escapedName !== \"export=\" /* ExportEquals */), (s) => {\n var _a2, _b;\n const name = unescapeLeadingUnderscores(s.escapedName);\n const localName2 = getInternalSymbolName(s, name);\n const aliasDecl = s.declarations && getDeclarationOfAliasSymbol(s);\n if (containingFile && (aliasDecl ? containingFile !== getSourceFileOfNode(aliasDecl) : !some(s.declarations, (d) => getSourceFileOfNode(d) === containingFile))) {\n (_b = (_a2 = context.tracker) == null ? void 0 : _a2.reportNonlocalAugmentation) == null ? void 0 : _b.call(_a2, containingFile, symbol, s);\n return void 0;\n }\n const target = aliasDecl && getTargetOfAliasDeclaration(\n aliasDecl,\n /*dontRecursivelyResolve*/\n true\n );\n includePrivateSymbol(target || s);\n const targetName = target ? getInternalSymbolName(target, unescapeLeadingUnderscores(target.escapedName)) : localName2;\n return factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n name === targetName ? void 0 : targetName,\n name\n );\n }))\n )]);\n addResult(\n factory.createModuleDeclaration(\n /*modifiers*/\n void 0,\n factory.createIdentifier(localName),\n nsBody,\n 32 /* Namespace */\n ),\n 0 /* None */\n );\n }\n }\n function serializeEnum(symbol, symbolName2, modifierFlags) {\n const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n context.approximateLength += 9 + internalSymbolName.length;\n const members = [];\n const memberProps = filter(getPropertiesOfType(getTypeOfSymbol(symbol)), (p) => !!(p.flags & 8 /* EnumMember */));\n let i = 0;\n for (const p of memberProps) {\n i++;\n if (checkTruncationLengthIfExpanding(context) && i + 2 < memberProps.length - 1) {\n context.out.truncated = true;\n members.push(factory.createEnumMember(` ... ${memberProps.length - i} more ... `));\n const last2 = memberProps[memberProps.length - 1];\n const initializedValue = last2.declarations && last2.declarations[0] && isEnumMember(last2.declarations[0]) ? getConstantValue2(last2.declarations[0]) : void 0;\n const initializer2 = initializedValue === void 0 ? void 0 : typeof initializedValue === \"string\" ? factory.createStringLiteral(initializedValue) : factory.createNumericLiteral(initializedValue);\n const memberName2 = unescapeLeadingUnderscores(last2.escapedName);\n const member2 = factory.createEnumMember(\n memberName2,\n initializer2\n );\n members.push(member2);\n break;\n }\n const memberDecl = p.declarations && p.declarations[0] && isEnumMember(p.declarations[0]) ? p.declarations[0] : void 0;\n let initializer;\n let initializerLength;\n if (isExpanding(context) && memberDecl && memberDecl.initializer) {\n initializer = getSynthesizedDeepClone(memberDecl.initializer);\n initializerLength = memberDecl.initializer.end - memberDecl.initializer.pos;\n } else {\n const initializedValue = memberDecl && getConstantValue2(memberDecl);\n initializer = initializedValue === void 0 ? void 0 : typeof initializedValue === \"string\" ? factory.createStringLiteral(initializedValue) : factory.createNumericLiteral(initializedValue);\n initializerLength = (initializer == null ? void 0 : initializer.text.length) ?? 0;\n }\n const memberName = unescapeLeadingUnderscores(p.escapedName);\n context.approximateLength += 4 + memberName.length + initializerLength;\n const member = factory.createEnumMember(\n memberName,\n initializer\n );\n members.push(member);\n }\n addResult(\n factory.createEnumDeclaration(\n factory.createModifiersFromModifierFlags(isConstEnumSymbol(symbol) ? 4096 /* Const */ : 0),\n internalSymbolName,\n members\n ),\n modifierFlags\n );\n }\n function serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags) {\n const signatures = getSignaturesOfType(type, 0 /* Call */);\n for (const sig of signatures) {\n context.approximateLength += 1;\n const decl = signatureToSignatureDeclarationHelper(sig, 263 /* FunctionDeclaration */, context, { name: factory.createIdentifier(localName) });\n addResult(setTextRange2(context, decl, getSignatureTextRangeLocation(sig)), modifierFlags);\n }\n if (!(symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && !!symbol.exports && !!symbol.exports.size)) {\n const props = filter(getPropertiesOfType(type), isNamespaceMember);\n context.approximateLength += localName.length;\n serializeAsNamespaceDeclaration(\n props,\n factory.createIdentifier(localName),\n modifierFlags,\n /*suppressNewPrivateContext*/\n true\n );\n }\n }\n function createTruncationStatement(dotDotDotText) {\n if (context.flags & 1 /* NoTruncation */) {\n return addSyntheticLeadingComment(factory.createEmptyStatement(), 3 /* MultiLineCommentTrivia */, dotDotDotText);\n }\n return factory.createExpressionStatement(factory.createIdentifier(dotDotDotText));\n }\n function getSignatureTextRangeLocation(signature) {\n if (signature.declaration && signature.declaration.parent) {\n if (isBinaryExpression(signature.declaration.parent) && getAssignmentDeclarationKind(signature.declaration.parent) === 5 /* Property */) {\n return signature.declaration.parent;\n }\n if (isVariableDeclaration(signature.declaration.parent) && signature.declaration.parent.parent) {\n return signature.declaration.parent.parent;\n }\n }\n return signature.declaration;\n }\n function serializeAsNamespaceDeclaration(props, localName, modifierFlags, suppressNewPrivateContext) {\n const nodeFlags = isIdentifier(localName) ? 32 /* Namespace */ : 0 /* None */;\n const expanding = isExpanding(context);\n if (length(props)) {\n context.approximateLength += 14;\n const localVsRemoteMap = arrayToMultiMap(props, (p) => !length(p.declarations) || some(p.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration)) || expanding ? \"local\" : \"remote\");\n const localProps = localVsRemoteMap.get(\"local\") || emptyArray;\n let fakespace = parseNodeFactory.createModuleDeclaration(\n /*modifiers*/\n void 0,\n localName,\n factory.createModuleBlock([]),\n nodeFlags\n );\n setParent(fakespace, enclosingDeclaration);\n fakespace.locals = createSymbolTable(props);\n fakespace.symbol = props[0].parent;\n const oldResults = results;\n results = [];\n const oldAddingDeclare = addingDeclare;\n addingDeclare = false;\n const subcontext = { ...context, enclosingDeclaration: fakespace };\n const oldContext = context;\n context = subcontext;\n visitSymbolTable(\n createSymbolTable(localProps),\n suppressNewPrivateContext,\n /*propertyAsAlias*/\n true\n );\n context = oldContext;\n addingDeclare = oldAddingDeclare;\n const declarations = results;\n results = oldResults;\n const defaultReplaced = map(declarations, (d) => isExportAssignment(d) && !d.isExportEquals && isIdentifier(d.expression) ? factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n d.expression,\n factory.createIdentifier(\"default\" /* Default */)\n )])\n ) : d);\n const exportModifierStripped = every(defaultReplaced, (d) => hasSyntacticModifier(d, 32 /* Export */)) ? map(defaultReplaced, removeExportModifier) : defaultReplaced;\n fakespace = factory.updateModuleDeclaration(\n fakespace,\n fakespace.modifiers,\n fakespace.name,\n factory.createModuleBlock(exportModifierStripped)\n );\n addResult(fakespace, modifierFlags);\n } else if (expanding) {\n context.approximateLength += 14;\n addResult(\n factory.createModuleDeclaration(\n /*modifiers*/\n void 0,\n localName,\n factory.createModuleBlock([]),\n nodeFlags\n ),\n modifierFlags\n );\n }\n }\n function isNamespaceMember(p) {\n return !!(p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) || !(p.flags & 4194304 /* Prototype */ || p.escapedName === \"prototype\" || p.valueDeclaration && isStatic(p.valueDeclaration) && isClassLike(p.valueDeclaration.parent));\n }\n function sanitizeJSDocImplements(clauses) {\n const result = mapDefined(clauses, (e) => {\n const oldEnclosing = context.enclosingDeclaration;\n context.enclosingDeclaration = e;\n let expr = e.expression;\n if (isEntityNameExpression(expr)) {\n if (isIdentifier(expr) && idText(expr) === \"\") {\n return cleanup(\n /*result*/\n void 0\n );\n }\n let introducesError;\n ({ introducesError, node: expr } = trackExistingEntityName(expr, context));\n if (introducesError) {\n return cleanup(\n /*result*/\n void 0\n );\n }\n }\n return cleanup(factory.createExpressionWithTypeArguments(\n expr,\n map(e.typeArguments, (a) => syntacticNodeBuilder.tryReuseExistingTypeNode(context, a) || typeToTypeNodeHelper(getTypeFromTypeNode2(context, a), context))\n ));\n function cleanup(result2) {\n context.enclosingDeclaration = oldEnclosing;\n return result2;\n }\n });\n if (result.length === clauses.length) {\n return result;\n }\n return void 0;\n }\n function serializeAsClass(symbol, localName, modifierFlags) {\n var _a2, _b;\n context.approximateLength += 9 + localName.length;\n const originalDecl = (_a2 = symbol.declarations) == null ? void 0 : _a2.find(isClassLike);\n const oldEnclosing = context.enclosingDeclaration;\n context.enclosingDeclaration = originalDecl || oldEnclosing;\n const localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n const typeParamDecls = map(localParams, (p) => typeParameterToDeclaration(p, context));\n forEach(localParams, (p) => context.approximateLength += symbolName(p.symbol).length);\n const classType = getTypeWithThisArgument(getDeclaredTypeOfClassOrInterface(symbol));\n const baseTypes = getBaseTypes(classType);\n const originalImplements = originalDecl && getEffectiveImplementsTypeNodes(originalDecl);\n const implementsExpressions = originalImplements && sanitizeJSDocImplements(originalImplements) || mapDefined(getImplementsTypes(classType), serializeImplementedType);\n const staticType = getTypeOfSymbol(symbol);\n const isClass = !!((_b = staticType.symbol) == null ? void 0 : _b.valueDeclaration) && isClassLike(staticType.symbol.valueDeclaration);\n const staticBaseType = isClass ? getBaseConstructorTypeOfClass(staticType) : anyType;\n context.approximateLength += (length(baseTypes) ? 8 : 0) + (length(implementsExpressions) ? 11 : 0);\n const heritageClauses = [\n ...!length(baseTypes) ? [] : [factory.createHeritageClause(96 /* ExtendsKeyword */, map(baseTypes, (b) => serializeBaseType(b, staticBaseType, localName)))],\n ...!length(implementsExpressions) ? [] : [factory.createHeritageClause(119 /* ImplementsKeyword */, implementsExpressions)]\n ];\n const symbolProps = getNonInheritedProperties(classType, baseTypes, getPropertiesOfType(classType));\n const publicSymbolProps = filter(symbolProps, (s) => !isHashPrivate(s));\n const hasPrivateIdentifier = some(symbolProps, isHashPrivate);\n const privateProperties = hasPrivateIdentifier ? isExpanding(context) ? serializePropertySymbolsForClassOrInterface(\n filter(symbolProps, isHashPrivate),\n /*isClass*/\n true,\n baseTypes[0],\n /*isStatic*/\n false\n ) : [factory.createPropertyDeclaration(\n /*modifiers*/\n void 0,\n factory.createPrivateIdentifier(\"#private\"),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n )] : emptyArray;\n if (hasPrivateIdentifier && !isExpanding(context)) {\n context.approximateLength += 9;\n }\n const publicProperties = serializePropertySymbolsForClassOrInterface(\n publicSymbolProps,\n /*isClass*/\n true,\n baseTypes[0],\n /*isStatic*/\n false\n );\n const staticMembers = serializePropertySymbolsForClassOrInterface(\n filter(getPropertiesOfType(staticType), (p) => !(p.flags & 4194304 /* Prototype */) && p.escapedName !== \"prototype\" && !isNamespaceMember(p)),\n /*isClass*/\n true,\n staticBaseType,\n /*isStatic*/\n true\n );\n const isNonConstructableClassLikeInJsFile = !isClass && !!symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && !some(getSignaturesOfType(staticType, 1 /* Construct */));\n if (isNonConstructableClassLikeInJsFile) context.approximateLength += 21;\n const constructors = isNonConstructableClassLikeInJsFile ? [factory.createConstructorDeclaration(\n factory.createModifiersFromModifierFlags(2 /* Private */),\n [],\n /*body*/\n void 0\n )] : serializeSignatures(1 /* Construct */, staticType, staticBaseType, 177 /* Constructor */);\n const indexSignatures = serializeIndexSignatures(classType, baseTypes[0]);\n context.enclosingDeclaration = oldEnclosing;\n addResult(\n setTextRange2(\n context,\n factory.createClassDeclaration(\n /*modifiers*/\n void 0,\n localName,\n typeParamDecls,\n heritageClauses,\n [...indexSignatures, ...staticMembers, ...constructors, ...publicProperties, ...privateProperties]\n ),\n symbol.declarations && filter(symbol.declarations, (d) => isClassDeclaration(d) || isClassExpression(d))[0]\n ),\n modifierFlags\n );\n }\n function getSomeTargetNameFromDeclarations(declarations) {\n return firstDefined(declarations, (d) => {\n if (isImportSpecifier(d) || isExportSpecifier(d)) {\n return moduleExportNameTextUnescaped(d.propertyName || d.name);\n }\n if (isBinaryExpression(d) || isExportAssignment(d)) {\n const expression = isExportAssignment(d) ? d.expression : d.right;\n if (isPropertyAccessExpression(expression)) {\n return idText(expression.name);\n }\n }\n if (isAliasSymbolDeclaration(d)) {\n const name = getNameOfDeclaration(d);\n if (name && isIdentifier(name)) {\n return idText(name);\n }\n }\n return void 0;\n });\n }\n function serializeAsAlias(symbol, localName, modifierFlags) {\n var _a2, _b, _c, _d, _e;\n const node = getDeclarationOfAliasSymbol(symbol);\n if (!node) return Debug.fail();\n const target = getMergedSymbol(getTargetOfAliasDeclaration(\n node,\n /*dontRecursivelyResolve*/\n true\n ));\n if (!target) {\n return;\n }\n let verbatimTargetName = isShorthandAmbientModuleSymbol(target) && getSomeTargetNameFromDeclarations(symbol.declarations) || unescapeLeadingUnderscores(target.escapedName);\n if (verbatimTargetName === \"export=\" /* ExportEquals */ && allowSyntheticDefaultImports) {\n verbatimTargetName = \"default\" /* Default */;\n }\n const targetName = getInternalSymbolName(target, verbatimTargetName);\n includePrivateSymbol(target);\n switch (node.kind) {\n case 209 /* BindingElement */:\n if (((_b = (_a2 = node.parent) == null ? void 0 : _a2.parent) == null ? void 0 : _b.kind) === 261 /* VariableDeclaration */) {\n const specifier2 = getSpecifierForModuleSymbol(target.parent || target, context);\n const { propertyName } = node;\n const propertyNameText = propertyName && isIdentifier(propertyName) ? idText(propertyName) : void 0;\n context.approximateLength += 24 + localName.length + specifier2.length + ((propertyNameText == null ? void 0 : propertyNameText.length) ?? 0);\n addResult(\n factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n factory.createNamedImports([factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n propertyNameText ? factory.createIdentifier(propertyNameText) : void 0,\n factory.createIdentifier(localName)\n )])\n ),\n factory.createStringLiteral(specifier2),\n /*attributes*/\n void 0\n ),\n 0 /* None */\n );\n break;\n }\n Debug.failBadSyntaxKind(((_c = node.parent) == null ? void 0 : _c.parent) || node, \"Unhandled binding element grandparent kind in declaration serialization\");\n break;\n case 305 /* ShorthandPropertyAssignment */:\n if (((_e = (_d = node.parent) == null ? void 0 : _d.parent) == null ? void 0 : _e.kind) === 227 /* BinaryExpression */) {\n serializeExportSpecifier(\n unescapeLeadingUnderscores(symbol.escapedName),\n targetName\n );\n }\n break;\n case 261 /* VariableDeclaration */:\n if (isPropertyAccessExpression(node.initializer)) {\n const initializer = node.initializer;\n const uniqueName = factory.createUniqueName(localName);\n const specifier2 = getSpecifierForModuleSymbol(target.parent || target, context);\n context.approximateLength += 22 + specifier2.length + idText(uniqueName).length;\n addResult(\n factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n uniqueName,\n factory.createExternalModuleReference(factory.createStringLiteral(specifier2))\n ),\n 0 /* None */\n );\n context.approximateLength += 12 + localName.length + idText(uniqueName).length + idText(initializer.name).length;\n addResult(\n factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createIdentifier(localName),\n factory.createQualifiedName(uniqueName, initializer.name)\n ),\n modifierFlags\n );\n break;\n }\n // else fall through and treat commonjs require just like import=\n case 272 /* ImportEqualsDeclaration */:\n if (target.escapedName === \"export=\" /* ExportEquals */ && some(target.declarations, (d) => isSourceFile(d) && isJsonSourceFile(d))) {\n serializeMaybeAliasAssignment(symbol);\n break;\n }\n const isLocalImport = !(target.flags & 512 /* ValueModule */) && !isVariableDeclaration(node);\n context.approximateLength += 11 + localName.length + unescapeLeadingUnderscores(target.escapedName).length;\n addResult(\n factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createIdentifier(localName),\n isLocalImport ? symbolToName(\n target,\n context,\n -1 /* All */,\n /*expectsIdentifier*/\n false\n ) : factory.createExternalModuleReference(factory.createStringLiteral(getSpecifierForModuleSymbol(target, context)))\n ),\n isLocalImport ? modifierFlags : 0 /* None */\n );\n break;\n case 271 /* NamespaceExportDeclaration */:\n addResult(factory.createNamespaceExportDeclaration(idText(node.name)), 0 /* None */);\n break;\n case 274 /* ImportClause */: {\n const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.moduleSpecifier;\n const attributes = isImportDeclaration(node.parent) ? node.parent.attributes : void 0;\n const isTypeOnly = isJSDocImportTag(node.parent);\n context.approximateLength += 14 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n addResult(\n factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /* phaseModifier */\n isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n factory.createIdentifier(localName),\n /*namedBindings*/\n void 0\n ),\n specifier2,\n attributes\n ),\n 0 /* None */\n );\n break;\n }\n case 275 /* NamespaceImport */: {\n const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.moduleSpecifier;\n const isTypeOnly = isJSDocImportTag(node.parent.parent);\n context.approximateLength += 19 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n addResult(\n factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /* phaseModifier */\n isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n /*name*/\n void 0,\n factory.createNamespaceImport(factory.createIdentifier(localName))\n ),\n specifier2,\n node.parent.attributes\n ),\n 0 /* None */\n );\n break;\n }\n case 281 /* NamespaceExport */:\n context.approximateLength += 19 + localName.length + 3;\n addResult(\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamespaceExport(factory.createIdentifier(localName)),\n factory.createStringLiteral(getSpecifierForModuleSymbol(target, context))\n ),\n 0 /* None */\n );\n break;\n case 277 /* ImportSpecifier */: {\n const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.parent.moduleSpecifier;\n const isTypeOnly = isJSDocImportTag(node.parent.parent.parent);\n context.approximateLength += 19 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n addResult(\n factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /* phaseModifier */\n isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n /*name*/\n void 0,\n factory.createNamedImports([\n factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n localName !== verbatimTargetName ? factory.createIdentifier(verbatimTargetName) : void 0,\n factory.createIdentifier(localName)\n )\n ])\n ),\n specifier2,\n node.parent.parent.parent.attributes\n ),\n 0 /* None */\n );\n break;\n }\n case 282 /* ExportSpecifier */:\n const specifier = node.parent.parent.moduleSpecifier;\n if (specifier) {\n const propertyName = node.propertyName;\n if (propertyName && moduleExportNameIsDefault(propertyName)) {\n verbatimTargetName = \"default\" /* Default */;\n }\n }\n serializeExportSpecifier(\n unescapeLeadingUnderscores(symbol.escapedName),\n specifier ? verbatimTargetName : targetName,\n specifier && isStringLiteralLike(specifier) ? factory.createStringLiteral(specifier.text) : void 0\n );\n break;\n case 278 /* ExportAssignment */:\n serializeMaybeAliasAssignment(symbol);\n break;\n case 227 /* BinaryExpression */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n if (symbol.escapedName === \"default\" /* Default */ || symbol.escapedName === \"export=\" /* ExportEquals */) {\n serializeMaybeAliasAssignment(symbol);\n } else {\n serializeExportSpecifier(localName, targetName);\n }\n break;\n default:\n return Debug.failBadSyntaxKind(node, \"Unhandled alias declaration kind in symbol serializer!\");\n }\n }\n function serializeExportSpecifier(localName, targetName, specifier) {\n context.approximateLength += 16 + localName.length + (localName !== targetName ? targetName.length : 0);\n addResult(\n factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n localName !== targetName ? targetName : void 0,\n localName\n )]),\n specifier\n ),\n 0 /* None */\n );\n }\n function serializeMaybeAliasAssignment(symbol) {\n var _a2;\n if (symbol.flags & 4194304 /* Prototype */) {\n return false;\n }\n const name = unescapeLeadingUnderscores(symbol.escapedName);\n const isExportEquals = name === \"export=\" /* ExportEquals */;\n const isDefault = name === \"default\" /* Default */;\n const isExportAssignmentCompatibleSymbolName = isExportEquals || isDefault;\n const aliasDecl = symbol.declarations && getDeclarationOfAliasSymbol(symbol);\n const target = aliasDecl && getTargetOfAliasDeclaration(\n aliasDecl,\n /*dontRecursivelyResolve*/\n true\n );\n if (target && length(target.declarations) && some(target.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(enclosingDeclaration))) {\n const expr = aliasDecl && (isExportAssignment(aliasDecl) || isBinaryExpression(aliasDecl) ? getExportAssignmentExpression(aliasDecl) : getPropertyAssignmentAliasLikeExpression(aliasDecl));\n const first2 = expr && isEntityNameExpression(expr) ? getFirstNonModuleExportsIdentifier(expr) : void 0;\n const referenced = first2 && resolveEntityName(\n first2,\n -1 /* All */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n enclosingDeclaration\n );\n if (referenced || target) {\n includePrivateSymbol(referenced || target);\n }\n const prevDisableTrackSymbol = context.tracker.disableTrackSymbol;\n context.tracker.disableTrackSymbol = true;\n if (isExportAssignmentCompatibleSymbolName) {\n context.approximateLength += 10;\n results.push(factory.createExportAssignment(\n /*modifiers*/\n void 0,\n isExportEquals,\n symbolToExpression(target, context, -1 /* All */)\n ));\n } else {\n if (first2 === expr && first2) {\n serializeExportSpecifier(name, idText(first2));\n } else if (expr && isClassExpression(expr)) {\n serializeExportSpecifier(name, getInternalSymbolName(target, symbolName(target)));\n } else {\n const varName = getUnusedName(name, symbol);\n context.approximateLength += varName.length + 10;\n addResult(\n factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createIdentifier(varName),\n symbolToName(\n target,\n context,\n -1 /* All */,\n /*expectsIdentifier*/\n false\n )\n ),\n 0 /* None */\n );\n serializeExportSpecifier(name, varName);\n }\n }\n context.tracker.disableTrackSymbol = prevDisableTrackSymbol;\n return true;\n } else {\n const varName = getUnusedName(name, symbol);\n const typeToSerialize = getWidenedType(getTypeOfSymbol(getMergedSymbol(symbol)));\n if (isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, symbol)) {\n serializeAsFunctionNamespaceMerge(typeToSerialize, symbol, varName, isExportAssignmentCompatibleSymbolName ? 0 /* None */ : 32 /* Export */);\n } else {\n const flags = ((_a2 = context.enclosingDeclaration) == null ? void 0 : _a2.kind) === 268 /* ModuleDeclaration */ && (!(symbol.flags & 98304 /* Accessor */) || symbol.flags & 65536 /* SetAccessor */) ? 1 /* Let */ : 2 /* Const */;\n context.approximateLength += varName.length + 5;\n const statement = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n varName,\n /*exclamationToken*/\n void 0,\n serializeTypeForDeclaration(\n context,\n /*declaration*/\n void 0,\n typeToSerialize,\n symbol\n )\n )\n ], flags)\n );\n addResult(\n statement,\n target && target.flags & 4 /* Property */ && target.escapedName === \"export=\" /* ExportEquals */ ? 128 /* Ambient */ : name === varName ? 32 /* Export */ : 0 /* None */\n );\n }\n if (isExportAssignmentCompatibleSymbolName) {\n context.approximateLength += varName.length + 10;\n results.push(factory.createExportAssignment(\n /*modifiers*/\n void 0,\n isExportEquals,\n factory.createIdentifier(varName)\n ));\n return true;\n } else if (name !== varName) {\n serializeExportSpecifier(name, varName);\n return true;\n }\n return false;\n }\n }\n function isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, hostSymbol) {\n var _a2;\n const ctxSrc = getSourceFileOfNode(context.enclosingDeclaration);\n return getObjectFlags(typeToSerialize) & (16 /* Anonymous */ | 32 /* Mapped */) && !some((_a2 = typeToSerialize.symbol) == null ? void 0 : _a2.declarations, isTypeNode) && // If the type comes straight from a type node, we shouldn't try to break it up\n !length(getIndexInfosOfType(typeToSerialize)) && !isClassInstanceSide(typeToSerialize) && // While a class instance is potentially representable as a NS, prefer printing a reference to the instance type and serializing the class\n !!(length(filter(getPropertiesOfType(typeToSerialize), isNamespaceMember)) || length(getSignaturesOfType(typeToSerialize, 0 /* Call */))) && !length(getSignaturesOfType(typeToSerialize, 1 /* Construct */)) && // TODO: could probably serialize as function + ns + class, now that that's OK\n !getDeclarationWithTypeAnnotation(hostSymbol, enclosingDeclaration) && !(typeToSerialize.symbol && some(typeToSerialize.symbol.declarations, (d) => getSourceFileOfNode(d) !== ctxSrc)) && !some(getPropertiesOfType(typeToSerialize), (p) => isLateBoundName(p.escapedName)) && !some(getPropertiesOfType(typeToSerialize), (p) => some(p.declarations, (d) => getSourceFileOfNode(d) !== ctxSrc)) && every(getPropertiesOfType(typeToSerialize), (p) => {\n if (!isIdentifierText(symbolName(p), languageVersion)) {\n return false;\n }\n if (!(p.flags & 98304 /* Accessor */)) {\n return true;\n }\n return getNonMissingTypeOfSymbol(p) === getWriteTypeOfSymbol(p);\n });\n }\n function makeSerializePropertySymbol(createProperty2, methodKind, useAccessors) {\n return function serializePropertySymbol(p, isStatic2, baseType) {\n var _a2, _b, _c, _d, _e, _f;\n const modifierFlags = getDeclarationModifierFlagsFromSymbol(p);\n const omitType = !!(modifierFlags & 2 /* Private */) && !isExpanding(context);\n if (isStatic2 && p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) {\n return [];\n }\n if (p.flags & 4194304 /* Prototype */ || p.escapedName === \"constructor\" || baseType && getPropertyOfType(baseType, p.escapedName) && isReadonlySymbol(getPropertyOfType(baseType, p.escapedName)) === isReadonlySymbol(p) && (p.flags & 16777216 /* Optional */) === (getPropertyOfType(baseType, p.escapedName).flags & 16777216 /* Optional */) && isTypeIdenticalTo(getTypeOfSymbol(p), getTypeOfPropertyOfType(baseType, p.escapedName))) {\n return [];\n }\n const flag = modifierFlags & ~1024 /* Async */ | (isStatic2 ? 256 /* Static */ : 0);\n const name = getPropertyNameNodeForSymbol(p, context);\n const firstPropertyLikeDecl = (_a2 = p.declarations) == null ? void 0 : _a2.find(or(isPropertyDeclaration, isAccessor, isVariableDeclaration, isPropertySignature, isBinaryExpression, isPropertyAccessExpression));\n if (p.flags & 98304 /* Accessor */ && useAccessors) {\n const result = [];\n if (p.flags & 65536 /* SetAccessor */) {\n const setter = p.declarations && forEach(p.declarations, (d) => {\n if (d.kind === 179 /* SetAccessor */) {\n return d;\n }\n if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {\n return forEach(d.arguments[2].properties, (propDecl) => {\n const id = getNameOfDeclaration(propDecl);\n if (!!id && isIdentifier(id) && idText(id) === \"set\") {\n return propDecl;\n }\n });\n }\n });\n Debug.assert(!!setter);\n const paramSymbol = isFunctionLikeDeclaration(setter) ? getSignatureFromDeclaration(setter).parameters[0] : void 0;\n const setterDeclaration = (_b = p.declarations) == null ? void 0 : _b.find(isSetAccessor);\n context.approximateLength += modifiersLength(flag) + 7 + (paramSymbol ? symbolName(paramSymbol).length : 5) + (omitType ? 0 : 2);\n result.push(setTextRange2(\n context,\n factory.createSetAccessorDeclaration(\n factory.createModifiersFromModifierFlags(flag),\n name,\n [factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : \"value\",\n /*questionToken*/\n void 0,\n omitType ? void 0 : serializeTypeForDeclaration(context, setterDeclaration, getWriteTypeOfSymbol(p), p)\n )],\n /*body*/\n void 0\n ),\n setterDeclaration ?? firstPropertyLikeDecl\n ));\n }\n if (p.flags & 32768 /* GetAccessor */) {\n const getterDeclaration = (_c = p.declarations) == null ? void 0 : _c.find(isGetAccessor);\n context.approximateLength += modifiersLength(flag) + 8 + (omitType ? 0 : 2);\n result.push(setTextRange2(\n context,\n factory.createGetAccessorDeclaration(\n factory.createModifiersFromModifierFlags(flag),\n name,\n [],\n omitType ? void 0 : serializeTypeForDeclaration(context, getterDeclaration, getTypeOfSymbol(p), p),\n /*body*/\n void 0\n ),\n getterDeclaration ?? firstPropertyLikeDecl\n ));\n }\n return result;\n } else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {\n const modifierFlags2 = (isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag;\n context.approximateLength += 2 + (omitType ? 0 : 2) + modifiersLength(modifierFlags2);\n return setTextRange2(\n context,\n createProperty2(\n factory.createModifiersFromModifierFlags(modifierFlags2),\n name,\n p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n omitType ? void 0 : serializeTypeForDeclaration(context, (_d = p.declarations) == null ? void 0 : _d.find(isSetAccessorDeclaration), getWriteTypeOfSymbol(p), p),\n // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357\n // interface members can't have initializers, however class members _can_\n /*initializer*/\n void 0\n ),\n ((_e = p.declarations) == null ? void 0 : _e.find(or(isPropertyDeclaration, isVariableDeclaration))) || firstPropertyLikeDecl\n );\n }\n if (p.flags & (8192 /* Method */ | 16 /* Function */)) {\n const type = getTypeOfSymbol(p);\n const signatures = getSignaturesOfType(type, 0 /* Call */);\n if (omitType) {\n const modifierFlags2 = (isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag;\n context.approximateLength += 1 + modifiersLength(modifierFlags2);\n return setTextRange2(\n context,\n createProperty2(\n factory.createModifiersFromModifierFlags(modifierFlags2),\n name,\n p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ),\n ((_f = p.declarations) == null ? void 0 : _f.find(isFunctionLikeDeclaration)) || signatures[0] && signatures[0].declaration || p.declarations && p.declarations[0]\n );\n }\n const results2 = [];\n for (const sig of signatures) {\n context.approximateLength += 1;\n const decl = signatureToSignatureDeclarationHelper(\n sig,\n methodKind,\n context,\n {\n name,\n questionToken: p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n modifiers: flag ? factory.createModifiersFromModifierFlags(flag) : void 0\n }\n );\n const location = sig.declaration && isPrototypePropertyAssignment(sig.declaration.parent) ? sig.declaration.parent : sig.declaration;\n results2.push(setTextRange2(context, decl, location));\n }\n return results2;\n }\n return Debug.fail(`Unhandled class member kind! ${p.__debugFlags || p.flags}`);\n };\n }\n function modifiersLength(flags) {\n let result = 0;\n if (flags & 32 /* Export */) result += 7;\n if (flags & 128 /* Ambient */) result += 8;\n if (flags & 2048 /* Default */) result += 8;\n if (flags & 4096 /* Const */) result += 6;\n if (flags & 1 /* Public */) result += 7;\n if (flags & 2 /* Private */) result += 8;\n if (flags & 4 /* Protected */) result += 10;\n if (flags & 64 /* Abstract */) result += 9;\n if (flags & 256 /* Static */) result += 7;\n if (flags & 16 /* Override */) result += 9;\n if (flags & 8 /* Readonly */) result += 9;\n if (flags & 512 /* Accessor */) result += 9;\n if (flags & 1024 /* Async */) result += 6;\n if (flags & 8192 /* In */) result += 3;\n if (flags & 16384 /* Out */) result += 4;\n return result;\n }\n function serializePropertySymbolForInterface(p, baseType) {\n return serializePropertySymbolForInterfaceWorker(\n p,\n /*isStatic*/\n false,\n baseType\n );\n }\n function serializeSignatures(kind, input, baseType, outputKind) {\n const signatures = getSignaturesOfType(input, kind);\n if (kind === 1 /* Construct */) {\n if (!baseType && every(signatures, (s) => length(s.parameters) === 0)) {\n return [];\n }\n if (baseType) {\n const baseSigs = getSignaturesOfType(baseType, 1 /* Construct */);\n if (!length(baseSigs) && every(signatures, (s) => length(s.parameters) === 0)) {\n return [];\n }\n if (baseSigs.length === signatures.length) {\n let failed2 = false;\n for (let i = 0; i < baseSigs.length; i++) {\n if (!compareSignaturesIdentical(\n signatures[i],\n baseSigs[i],\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n true,\n compareTypesIdentical\n )) {\n failed2 = true;\n break;\n }\n }\n if (!failed2) {\n return [];\n }\n }\n }\n let privateProtected = 0;\n for (const s of signatures) {\n if (s.declaration) {\n privateProtected |= getSelectedEffectiveModifierFlags(s.declaration, 2 /* Private */ | 4 /* Protected */);\n }\n }\n if (privateProtected) {\n return [setTextRange2(\n context,\n factory.createConstructorDeclaration(\n factory.createModifiersFromModifierFlags(privateProtected),\n /*parameters*/\n [],\n /*body*/\n void 0\n ),\n signatures[0].declaration\n )];\n }\n }\n const results2 = [];\n for (const sig of signatures) {\n context.approximateLength += 1;\n const decl = signatureToSignatureDeclarationHelper(sig, outputKind, context);\n results2.push(setTextRange2(context, decl, sig.declaration));\n }\n return results2;\n }\n function serializeIndexSignatures(input, baseType) {\n const results2 = [];\n for (const info of getIndexInfosOfType(input)) {\n if (baseType) {\n const baseInfo = getIndexInfoOfType(baseType, info.keyType);\n if (baseInfo) {\n if (isTypeIdenticalTo(info.type, baseInfo.type)) {\n continue;\n }\n }\n }\n results2.push(indexInfoToIndexSignatureDeclarationHelper(\n info,\n context,\n /*typeNode*/\n void 0\n ));\n }\n return results2;\n }\n function serializeBaseType(t, staticType, rootName) {\n const ref = trySerializeAsTypeReference(t, 111551 /* Value */);\n if (ref) {\n return ref;\n }\n const tempName = getUnusedName(`${rootName}_base`);\n const statement = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n tempName,\n /*exclamationToken*/\n void 0,\n typeToTypeNodeHelper(staticType, context)\n )\n ], 2 /* Const */)\n );\n addResult(statement, 0 /* None */);\n return factory.createExpressionWithTypeArguments(\n factory.createIdentifier(tempName),\n /*typeArguments*/\n void 0\n );\n }\n function trySerializeAsTypeReference(t, flags) {\n let typeArgs;\n let reference;\n if (t.target && isSymbolAccessibleByFlags(t.target.symbol, enclosingDeclaration, flags)) {\n typeArgs = map(getTypeArguments(t), (t2) => typeToTypeNodeHelper(t2, context));\n reference = symbolToExpression(t.target.symbol, context, 788968 /* Type */);\n } else if (t.symbol && isSymbolAccessibleByFlags(t.symbol, enclosingDeclaration, flags)) {\n reference = symbolToExpression(t.symbol, context, 788968 /* Type */);\n }\n if (reference) {\n return factory.createExpressionWithTypeArguments(reference, typeArgs);\n }\n }\n function serializeImplementedType(t) {\n const ref = trySerializeAsTypeReference(t, 788968 /* Type */);\n if (ref) {\n return ref;\n }\n if (t.symbol) {\n return factory.createExpressionWithTypeArguments(\n symbolToExpression(t.symbol, context, 788968 /* Type */),\n /*typeArguments*/\n void 0\n );\n }\n }\n function getUnusedName(input, symbol) {\n var _a2, _b;\n const id = symbol ? getSymbolId(symbol) : void 0;\n if (id) {\n if (context.remappedSymbolNames.has(id)) {\n return context.remappedSymbolNames.get(id);\n }\n }\n if (symbol) {\n input = getNameCandidateWorker(symbol, input);\n }\n let i = 0;\n const original = input;\n while ((_a2 = context.usedSymbolNames) == null ? void 0 : _a2.has(input)) {\n i++;\n input = `${original}_${i}`;\n }\n (_b = context.usedSymbolNames) == null ? void 0 : _b.add(input);\n if (id) {\n context.remappedSymbolNames.set(id, input);\n }\n return input;\n }\n function getNameCandidateWorker(symbol, localName) {\n if (localName === \"default\" /* Default */ || localName === \"__class\" /* Class */ || localName === \"__function\" /* Function */) {\n const restoreFlags = saveRestoreFlags(context);\n context.flags |= 16777216 /* InInitialEntityName */;\n const nameCandidate = getNameOfSymbolAsWritten(symbol, context);\n restoreFlags();\n localName = nameCandidate.length > 0 && isSingleOrDoubleQuote(nameCandidate.charCodeAt(0)) ? stripQuotes(nameCandidate) : nameCandidate;\n }\n if (localName === \"default\" /* Default */) {\n localName = \"_default\";\n } else if (localName === \"export=\" /* ExportEquals */) {\n localName = \"_exports\";\n }\n localName = isIdentifierText(localName, languageVersion) && !isStringANonContextualKeyword(localName) ? localName : \"_\" + localName.replace(/[^a-z0-9]/gi, \"_\");\n return localName;\n }\n function getInternalSymbolName(symbol, localName) {\n const id = getSymbolId(symbol);\n if (context.remappedSymbolNames.has(id)) {\n return context.remappedSymbolNames.get(id);\n }\n localName = getNameCandidateWorker(symbol, localName);\n context.remappedSymbolNames.set(id, localName);\n return localName;\n }\n }\n function isExpanding(context) {\n return context.maxExpansionDepth !== -1;\n }\n function isHashPrivate(s) {\n return !!s.valueDeclaration && isNamedDeclaration(s.valueDeclaration) && isPrivateIdentifier(s.valueDeclaration.name);\n }\n function getClonedHashPrivateName(s) {\n if (s.valueDeclaration && isNamedDeclaration(s.valueDeclaration) && isPrivateIdentifier(s.valueDeclaration.name)) {\n return factory.cloneNode(s.valueDeclaration.name);\n }\n return void 0;\n }\n }\n function isLibType(type) {\n var _a;\n const symbol = (getObjectFlags(type) & 4 /* Reference */) !== 0 ? type.target.symbol : type.symbol;\n return isTupleType(type) || !!((_a = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _a.some((decl) => host.isSourceFileDefaultLibrary(getSourceFileOfNode(decl))));\n }\n function typePredicateToString(typePredicate, enclosingDeclaration, flags = 16384 /* UseAliasDefinedOutsideCurrentScope */, writer) {\n return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker);\n function typePredicateToStringWorker(writer2) {\n const nodeBuilderFlags = toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */;\n const predicate = nodeBuilder.typePredicateToTypePredicateNode(typePredicate, enclosingDeclaration, nodeBuilderFlags);\n const printer = createPrinterWithRemoveComments();\n const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n printer.writeNode(\n 4 /* Unspecified */,\n predicate,\n /*sourceFile*/\n sourceFile,\n writer2\n );\n return writer2;\n }\n }\n function formatUnionTypes(types, expandingEnum) {\n const result = [];\n let flags = 0;\n for (let i = 0; i < types.length; i++) {\n const t = types[i];\n flags |= t.flags;\n if (!(t.flags & 98304 /* Nullable */)) {\n if (t.flags & 512 /* BooleanLiteral */ || !expandingEnum && t.flags | 1056 /* EnumLike */) {\n const baseType = t.flags & 512 /* BooleanLiteral */ ? booleanType : getBaseTypeOfEnumLikeType(t);\n if (baseType.flags & 1048576 /* Union */) {\n const count = baseType.types.length;\n if (i + count <= types.length && getRegularTypeOfLiteralType(types[i + count - 1]) === getRegularTypeOfLiteralType(baseType.types[count - 1])) {\n result.push(baseType);\n i += count - 1;\n continue;\n }\n }\n }\n result.push(t);\n }\n }\n if (flags & 65536 /* Null */) result.push(nullType);\n if (flags & 32768 /* Undefined */) result.push(undefinedType);\n return result || types;\n }\n function visibilityToString(flags) {\n if (flags === 2 /* Private */) {\n return \"private\";\n }\n if (flags === 4 /* Protected */) {\n return \"protected\";\n }\n return \"public\";\n }\n function getTypeAliasForTypeLiteral(type) {\n if (type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && type.symbol.declarations) {\n const node = walkUpParenthesizedTypes(type.symbol.declarations[0].parent);\n if (isTypeAliasDeclaration(node)) {\n return getSymbolOfDeclaration(node);\n }\n }\n return void 0;\n }\n function isTopLevelInExternalModuleAugmentation(node) {\n return node && node.parent && node.parent.kind === 269 /* ModuleBlock */ && isExternalModuleAugmentation(node.parent.parent);\n }\n function isDefaultBindingContext(location) {\n return location.kind === 308 /* SourceFile */ || isAmbientModule(location);\n }\n function getNameOfSymbolFromNameType(symbol, context) {\n const nameType = getSymbolLinks(symbol).nameType;\n if (nameType) {\n if (nameType.flags & 384 /* StringOrNumberLiteral */) {\n const name = \"\" + nameType.value;\n if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && !isNumericLiteralName(name)) {\n return `\"${escapeString(name, 34 /* doubleQuote */)}\"`;\n }\n if (isNumericLiteralName(name) && startsWith(name, \"-\")) {\n return `[${name}]`;\n }\n return name;\n }\n if (nameType.flags & 8192 /* UniqueESSymbol */) {\n return `[${getNameOfSymbolAsWritten(nameType.symbol, context)}]`;\n }\n }\n }\n function getNameOfSymbolAsWritten(symbol, context) {\n var _a;\n if ((_a = context == null ? void 0 : context.remappedSymbolReferences) == null ? void 0 : _a.has(getSymbolId(symbol))) {\n symbol = context.remappedSymbolReferences.get(getSymbolId(symbol));\n }\n if (context && symbol.escapedName === \"default\" /* Default */ && !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */) && // If it's not the first part of an entity name, it must print as `default`\n (!(context.flags & 16777216 /* InInitialEntityName */) || // if the symbol is synthesized, it will only be referenced externally it must print as `default`\n !symbol.declarations || // if not in the same binding context (source file, module declaration), it must print as `default`\n context.enclosingDeclaration && findAncestor(symbol.declarations[0], isDefaultBindingContext) !== findAncestor(context.enclosingDeclaration, isDefaultBindingContext))) {\n return \"default\";\n }\n if (symbol.declarations && symbol.declarations.length) {\n let declaration = firstDefined(symbol.declarations, (d) => getNameOfDeclaration(d) ? d : void 0);\n const name2 = declaration && getNameOfDeclaration(declaration);\n if (declaration && name2) {\n if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) {\n return symbolName(symbol);\n }\n if (isComputedPropertyName(name2) && !(getCheckFlags(symbol) & 4096 /* Late */)) {\n const nameType = getSymbolLinks(symbol).nameType;\n if (nameType && nameType.flags & 384 /* StringOrNumberLiteral */) {\n const result = getNameOfSymbolFromNameType(symbol, context);\n if (result !== void 0) {\n return result;\n }\n }\n }\n return declarationNameToString(name2);\n }\n if (!declaration) {\n declaration = symbol.declarations[0];\n }\n if (declaration.parent && declaration.parent.kind === 261 /* VariableDeclaration */) {\n return declarationNameToString(declaration.parent.name);\n }\n switch (declaration.kind) {\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n if (context && !context.encounteredError && !(context.flags & 131072 /* AllowAnonymousIdentifier */)) {\n context.encounteredError = true;\n }\n return declaration.kind === 232 /* ClassExpression */ ? \"(Anonymous class)\" : \"(Anonymous function)\";\n }\n }\n const name = getNameOfSymbolFromNameType(symbol, context);\n return name !== void 0 ? name : symbolName(symbol);\n }\n function isDeclarationVisible(node) {\n if (node) {\n const links = getNodeLinks(node);\n if (links.isVisible === void 0) {\n links.isVisible = !!determineIfDeclarationIsVisible();\n }\n return links.isVisible;\n }\n return false;\n function determineIfDeclarationIsVisible() {\n switch (node.kind) {\n case 339 /* JSDocCallbackTag */:\n case 347 /* JSDocTypedefTag */:\n case 341 /* JSDocEnumTag */:\n return !!(node.parent && node.parent.parent && node.parent.parent.parent && isSourceFile(node.parent.parent.parent));\n case 209 /* BindingElement */:\n return isDeclarationVisible(node.parent.parent);\n case 261 /* VariableDeclaration */:\n if (isBindingPattern(node.name) && !node.name.elements.length) {\n return false;\n }\n // falls through\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 267 /* EnumDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n if (isExternalModuleAugmentation(node)) {\n return true;\n }\n const parent2 = getDeclarationContainer(node);\n if (!(getCombinedModifierFlagsCached(node) & 32 /* Export */) && !(node.kind !== 272 /* ImportEqualsDeclaration */ && parent2.kind !== 308 /* SourceFile */ && parent2.flags & 33554432 /* Ambient */)) {\n return isGlobalSourceFile(parent2);\n }\n return isDeclarationVisible(parent2);\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n if (hasEffectiveModifier(node, 2 /* Private */ | 4 /* Protected */)) {\n return false;\n }\n // Public properties/methods are visible if its parents are visible, so:\n // falls through\n case 177 /* Constructor */:\n case 181 /* ConstructSignature */:\n case 180 /* CallSignature */:\n case 182 /* IndexSignature */:\n case 170 /* Parameter */:\n case 269 /* ModuleBlock */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 188 /* TypeLiteral */:\n case 184 /* TypeReference */:\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n case 197 /* ParenthesizedType */:\n case 203 /* NamedTupleMember */:\n return isDeclarationVisible(node.parent);\n // Default binding, import specifier and namespace import is visible\n // only on demand so by default it is not visible\n case 274 /* ImportClause */:\n case 275 /* NamespaceImport */:\n case 277 /* ImportSpecifier */:\n return false;\n // Type parameters are always visible\n case 169 /* TypeParameter */:\n // Source file and namespace export are always visible\n // falls through\n case 308 /* SourceFile */:\n case 271 /* NamespaceExportDeclaration */:\n return true;\n // Export assignments do not create name bindings outside the module\n case 278 /* ExportAssignment */:\n return false;\n default:\n return false;\n }\n }\n }\n function collectLinkedAliases(node, setVisibility) {\n let exportSymbol;\n if (node.kind !== 11 /* StringLiteral */ && node.parent && node.parent.kind === 278 /* ExportAssignment */) {\n exportSymbol = resolveName(\n node,\n node,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n } else if (node.parent.kind === 282 /* ExportSpecifier */) {\n exportSymbol = getTargetOfExportSpecifier(node.parent, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */);\n }\n let result;\n let visited;\n if (exportSymbol) {\n visited = /* @__PURE__ */ new Set();\n visited.add(getSymbolId(exportSymbol));\n buildVisibleNodeList(exportSymbol.declarations);\n }\n return result;\n function buildVisibleNodeList(declarations) {\n forEach(declarations, (declaration) => {\n const resultNode = getAnyImportSyntax(declaration) || declaration;\n if (setVisibility) {\n getNodeLinks(declaration).isVisible = true;\n } else {\n result = result || [];\n pushIfUnique(result, resultNode);\n }\n if (isInternalModuleImportEqualsDeclaration(declaration)) {\n const internalModuleReference = declaration.moduleReference;\n const firstIdentifier = getFirstIdentifier(internalModuleReference);\n const importSymbol = resolveName(\n declaration,\n firstIdentifier.escapedText,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n if (importSymbol && visited) {\n if (tryAddToSet(visited, getSymbolId(importSymbol))) {\n buildVisibleNodeList(importSymbol.declarations);\n }\n }\n }\n });\n }\n }\n function pushTypeResolution(target, propertyName) {\n const resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName);\n if (resolutionCycleStartIndex >= 0) {\n const { length: length2 } = resolutionTargets;\n for (let i = resolutionCycleStartIndex; i < length2; i++) {\n resolutionResults[i] = false;\n }\n return false;\n }\n resolutionTargets.push(target);\n resolutionResults.push(\n /*items*/\n true\n );\n resolutionPropertyNames.push(propertyName);\n return true;\n }\n function findResolutionCycleStartIndex(target, propertyName) {\n for (let i = resolutionTargets.length - 1; i >= resolutionStart; i--) {\n if (resolutionTargetHasProperty(resolutionTargets[i], resolutionPropertyNames[i])) {\n return -1;\n }\n if (resolutionTargets[i] === target && resolutionPropertyNames[i] === propertyName) {\n return i;\n }\n }\n return -1;\n }\n function resolutionTargetHasProperty(target, propertyName) {\n switch (propertyName) {\n case 0 /* Type */:\n return !!getSymbolLinks(target).type;\n case 2 /* DeclaredType */:\n return !!getSymbolLinks(target).declaredType;\n case 1 /* ResolvedBaseConstructorType */:\n return !!target.resolvedBaseConstructorType;\n case 3 /* ResolvedReturnType */:\n return !!target.resolvedReturnType;\n case 4 /* ImmediateBaseConstraint */:\n return !!target.immediateBaseConstraint;\n case 5 /* ResolvedTypeArguments */:\n return !!target.resolvedTypeArguments;\n case 6 /* ResolvedBaseTypes */:\n return !!target.baseTypesResolved;\n case 7 /* WriteType */:\n return !!getSymbolLinks(target).writeType;\n case 8 /* ParameterInitializerContainsUndefined */:\n return getNodeLinks(target).parameterInitializerContainsUndefined !== void 0;\n }\n return Debug.assertNever(propertyName);\n }\n function popTypeResolution() {\n resolutionTargets.pop();\n resolutionPropertyNames.pop();\n return resolutionResults.pop();\n }\n function getDeclarationContainer(node) {\n return findAncestor(getRootDeclaration(node), (node2) => {\n switch (node2.kind) {\n case 261 /* VariableDeclaration */:\n case 262 /* VariableDeclarationList */:\n case 277 /* ImportSpecifier */:\n case 276 /* NamedImports */:\n case 275 /* NamespaceImport */:\n case 274 /* ImportClause */:\n return false;\n default:\n return true;\n }\n }).parent;\n }\n function getTypeOfPrototypeProperty(prototype) {\n const classType = getDeclaredTypeOfSymbol(getParentOfSymbol(prototype));\n return classType.typeParameters ? createTypeReference(classType, map(classType.typeParameters, (_) => anyType)) : classType;\n }\n function getTypeOfPropertyOfType(type, name) {\n const prop = getPropertyOfType(type, name);\n return prop ? getTypeOfSymbol(prop) : void 0;\n }\n function getTypeOfPropertyOrIndexSignatureOfType(type, name) {\n var _a;\n let propType;\n return getTypeOfPropertyOfType(type, name) || (propType = (_a = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a.type) && addOptionality(\n propType,\n /*isProperty*/\n true,\n /*isOptional*/\n true\n );\n }\n function isTypeAny(type) {\n return type && (type.flags & 1 /* Any */) !== 0;\n }\n function isErrorType(type) {\n return type === errorType || !!(type.flags & 1 /* Any */ && type.aliasSymbol);\n }\n function getTypeForBindingElementParent(node, checkMode) {\n if (checkMode !== 0 /* Normal */) {\n return getTypeForVariableLikeDeclaration(\n node,\n /*includeOptionality*/\n false,\n checkMode\n );\n }\n const symbol = getSymbolOfDeclaration(node);\n return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(\n node,\n /*includeOptionality*/\n false,\n checkMode\n );\n }\n function getRestType(source, properties, symbol) {\n source = filterType(source, (t) => !(t.flags & 98304 /* Nullable */));\n if (source.flags & 131072 /* Never */) {\n return emptyObjectType;\n }\n if (source.flags & 1048576 /* Union */) {\n return mapType(source, (t) => getRestType(t, properties, symbol));\n }\n let omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName));\n const spreadableProperties = [];\n const unspreadableToRestKeys = [];\n for (const prop of getPropertiesOfType(source)) {\n const literalTypeFromProperty = getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */);\n if (!isTypeAssignableTo(literalTypeFromProperty, omitKeyType) && !(getDeclarationModifierFlagsFromSymbol(prop) & (2 /* Private */ | 4 /* Protected */)) && isSpreadableProperty(prop)) {\n spreadableProperties.push(prop);\n } else {\n unspreadableToRestKeys.push(literalTypeFromProperty);\n }\n }\n if (isGenericObjectType(source) || isGenericIndexType(omitKeyType)) {\n if (unspreadableToRestKeys.length) {\n omitKeyType = getUnionType([omitKeyType, ...unspreadableToRestKeys]);\n }\n if (omitKeyType.flags & 131072 /* Never */) {\n return source;\n }\n const omitTypeAlias = getGlobalOmitSymbol();\n if (!omitTypeAlias) {\n return errorType;\n }\n return getTypeAliasInstantiation(omitTypeAlias, [source, omitKeyType]);\n }\n const members = createSymbolTable();\n for (const prop of spreadableProperties) {\n members.set(prop.escapedName, getSpreadSymbol(\n prop,\n /*readonly*/\n false\n ));\n }\n const result = createAnonymousType(symbol, members, emptyArray, emptyArray, getIndexInfosOfType(source));\n result.objectFlags |= 4194304 /* ObjectRestType */;\n return result;\n }\n function isGenericTypeWithUndefinedConstraint(type) {\n return !!(type.flags & 465829888 /* Instantiable */) && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 32768 /* Undefined */);\n }\n function getNonUndefinedType(type) {\n const typeOrConstraint = someType(type, isGenericTypeWithUndefinedConstraint) ? mapType(type, (t) => t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOrType(t) : t) : type;\n return getTypeWithFacts(typeOrConstraint, 524288 /* NEUndefined */);\n }\n function getFlowTypeOfDestructuring(node, declaredType) {\n const reference = getSyntheticElementAccess(node);\n return reference ? getFlowTypeOfReference(reference, declaredType) : declaredType;\n }\n function getSyntheticElementAccess(node) {\n const parentAccess = getParentElementAccess(node);\n if (parentAccess && canHaveFlowNode(parentAccess) && parentAccess.flowNode) {\n const propName = getDestructuringPropertyName(node);\n if (propName) {\n const literal = setTextRange(parseNodeFactory.createStringLiteral(propName), node);\n const lhsExpr = isLeftHandSideExpression(parentAccess) ? parentAccess : parseNodeFactory.createParenthesizedExpression(parentAccess);\n const result = setTextRange(parseNodeFactory.createElementAccessExpression(lhsExpr, literal), node);\n setParent(literal, result);\n setParent(result, node);\n if (lhsExpr !== parentAccess) {\n setParent(lhsExpr, result);\n }\n result.flowNode = parentAccess.flowNode;\n return result;\n }\n }\n }\n function getParentElementAccess(node) {\n const ancestor = node.parent.parent;\n switch (ancestor.kind) {\n case 209 /* BindingElement */:\n case 304 /* PropertyAssignment */:\n return getSyntheticElementAccess(ancestor);\n case 210 /* ArrayLiteralExpression */:\n return getSyntheticElementAccess(node.parent);\n case 261 /* VariableDeclaration */:\n return ancestor.initializer;\n case 227 /* BinaryExpression */:\n return ancestor.right;\n }\n }\n function getDestructuringPropertyName(node) {\n const parent2 = node.parent;\n if (node.kind === 209 /* BindingElement */ && parent2.kind === 207 /* ObjectBindingPattern */) {\n return getLiteralPropertyNameText(node.propertyName || node.name);\n }\n if (node.kind === 304 /* PropertyAssignment */ || node.kind === 305 /* ShorthandPropertyAssignment */) {\n return getLiteralPropertyNameText(node.name);\n }\n return \"\" + parent2.elements.indexOf(node);\n }\n function getLiteralPropertyNameText(name) {\n const type = getLiteralTypeFromPropertyName(name);\n return type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */) ? \"\" + type.value : void 0;\n }\n function getTypeForBindingElement(declaration) {\n const checkMode = declaration.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */;\n const parentType = getTypeForBindingElementParent(declaration.parent.parent, checkMode);\n return parentType && getBindingElementTypeFromParentType(\n declaration,\n parentType,\n /*noTupleBoundsCheck*/\n false\n );\n }\n function getBindingElementTypeFromParentType(declaration, parentType, noTupleBoundsCheck) {\n if (isTypeAny(parentType)) {\n return parentType;\n }\n const pattern = declaration.parent;\n if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isPartOfParameterDeclaration(declaration)) {\n parentType = getNonNullableType(parentType);\n } else if (strictNullChecks && pattern.parent.initializer && !hasTypeFacts(getTypeOfInitializer(pattern.parent.initializer), 65536 /* EQUndefined */)) {\n parentType = getTypeWithFacts(parentType, 524288 /* NEUndefined */);\n }\n const accessFlags = 32 /* ExpressionPosition */ | (noTupleBoundsCheck || hasDefaultValue(declaration) ? 16 /* AllowMissing */ : 0);\n let type;\n if (pattern.kind === 207 /* ObjectBindingPattern */) {\n if (declaration.dotDotDotToken) {\n parentType = getReducedType(parentType);\n if (parentType.flags & 2 /* Unknown */ || !isValidSpreadType(parentType)) {\n error2(declaration, Diagnostics.Rest_types_may_only_be_created_from_object_types);\n return errorType;\n }\n const literalMembers = [];\n for (const element of pattern.elements) {\n if (!element.dotDotDotToken) {\n literalMembers.push(element.propertyName || element.name);\n }\n }\n type = getRestType(parentType, literalMembers, declaration.symbol);\n } else {\n const name = declaration.propertyName || declaration.name;\n const indexType = getLiteralTypeFromPropertyName(name);\n const declaredType = getIndexedAccessType(parentType, indexType, accessFlags, name);\n type = getFlowTypeOfDestructuring(declaration, declaredType);\n }\n } else {\n const elementType = checkIteratedTypeOrElementType(65 /* Destructuring */ | (declaration.dotDotDotToken ? 0 : 128 /* PossiblyOutOfBounds */), parentType, undefinedType, pattern);\n const index = pattern.elements.indexOf(declaration);\n if (declaration.dotDotDotToken) {\n const baseConstraint = mapType(parentType, (t) => t.flags & 58982400 /* InstantiableNonPrimitive */ ? getBaseConstraintOrType(t) : t);\n type = everyType(baseConstraint, isTupleType) ? mapType(baseConstraint, (t) => sliceTupleType(t, index)) : createArrayType(elementType);\n } else if (isArrayLikeType(parentType)) {\n const indexType = getNumberLiteralType(index);\n const declaredType = getIndexedAccessTypeOrUndefined(parentType, indexType, accessFlags, declaration.name) || errorType;\n type = getFlowTypeOfDestructuring(declaration, declaredType);\n } else {\n type = elementType;\n }\n }\n if (!declaration.initializer) {\n return type;\n }\n if (getEffectiveTypeAnnotationNode(walkUpBindingElementsAndPatterns(declaration))) {\n return strictNullChecks && !hasTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */), 16777216 /* IsUndefined */) ? getNonUndefinedType(type) : type;\n }\n return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration, 0 /* Normal */)], 2 /* Subtype */));\n }\n function getTypeForDeclarationFromJSDocComment(declaration) {\n const jsdocType = getJSDocType(declaration);\n if (jsdocType) {\n return getTypeFromTypeNode(jsdocType);\n }\n return void 0;\n }\n function isNullOrUndefined3(node) {\n const expr = skipParentheses(\n node,\n /*excludeJSDocTypeAssertions*/\n true\n );\n return expr.kind === 106 /* NullKeyword */ || expr.kind === 80 /* Identifier */ && getResolvedSymbol(expr) === undefinedSymbol;\n }\n function isEmptyArrayLiteral2(node) {\n const expr = skipParentheses(\n node,\n /*excludeJSDocTypeAssertions*/\n true\n );\n return expr.kind === 210 /* ArrayLiteralExpression */ && expr.elements.length === 0;\n }\n function addOptionality(type, isProperty = false, isOptional = true) {\n return strictNullChecks && isOptional ? getOptionalType(type, isProperty) : type;\n }\n function getTypeForVariableLikeDeclaration(declaration, includeOptionality, checkMode) {\n if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 250 /* ForInStatement */) {\n const indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(\n declaration.parent.parent.expression,\n /*checkMode*/\n checkMode\n )));\n return indexType.flags & (262144 /* TypeParameter */ | 4194304 /* Index */) ? getExtractStringType(indexType) : stringType;\n }\n if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 251 /* ForOfStatement */) {\n const forOfStatement = declaration.parent.parent;\n return checkRightHandSideOfForOf(forOfStatement) || anyType;\n }\n if (isBindingPattern(declaration.parent)) {\n return getTypeForBindingElement(declaration);\n }\n const isProperty = isPropertyDeclaration(declaration) && !hasAccessorModifier(declaration) || isPropertySignature(declaration) || isJSDocPropertyTag(declaration);\n const isOptional = includeOptionality && isOptionalDeclaration(declaration);\n const declaredType = tryGetTypeFromEffectiveTypeNode(declaration);\n if (isCatchClauseVariableDeclarationOrBindingElement(declaration)) {\n if (declaredType) {\n return isTypeAny(declaredType) || declaredType === unknownType ? declaredType : errorType;\n }\n return useUnknownInCatchVariables ? unknownType : anyType;\n }\n if (declaredType) {\n return addOptionality(declaredType, isProperty, isOptional);\n }\n if ((noImplicitAny || isInJSFile(declaration)) && isVariableDeclaration(declaration) && !isBindingPattern(declaration.name) && !(getCombinedModifierFlagsCached(declaration) & 32 /* Export */) && !(declaration.flags & 33554432 /* Ambient */)) {\n if (!(getCombinedNodeFlagsCached(declaration) & 6 /* Constant */) && (!declaration.initializer || isNullOrUndefined3(declaration.initializer))) {\n return autoType;\n }\n if (declaration.initializer && isEmptyArrayLiteral2(declaration.initializer)) {\n return autoArrayType;\n }\n }\n if (isParameter(declaration)) {\n if (!declaration.symbol) {\n return;\n }\n const func = declaration.parent;\n if (func.kind === 179 /* SetAccessor */ && hasBindableName(func)) {\n const getter = getDeclarationOfKind(getSymbolOfDeclaration(declaration.parent), 178 /* GetAccessor */);\n if (getter) {\n const getterSignature = getSignatureFromDeclaration(getter);\n const thisParameter = getAccessorThisParameter(func);\n if (thisParameter && declaration === thisParameter) {\n Debug.assert(!thisParameter.type);\n return getTypeOfSymbol(getterSignature.thisParameter);\n }\n return getReturnTypeOfSignature(getterSignature);\n }\n }\n const parameterTypeOfTypeTag = getParameterTypeOfTypeTag(func, declaration);\n if (parameterTypeOfTypeTag) return parameterTypeOfTypeTag;\n const type = declaration.symbol.escapedName === \"this\" /* This */ ? getContextualThisParameterType(func) : getContextuallyTypedParameterType(declaration);\n if (type) {\n return addOptionality(\n type,\n /*isProperty*/\n false,\n isOptional\n );\n }\n }\n if (hasOnlyExpressionInitializer(declaration) && !!declaration.initializer) {\n if (isInJSFile(declaration) && !isParameter(declaration)) {\n const containerObjectType = getJSContainerObjectType(declaration, getSymbolOfDeclaration(declaration), getDeclaredExpandoInitializer(declaration));\n if (containerObjectType) {\n return containerObjectType;\n }\n }\n const type = widenTypeInferredFromInitializer(declaration, checkDeclarationInitializer(declaration, checkMode));\n return addOptionality(type, isProperty, isOptional);\n }\n if (isPropertyDeclaration(declaration) && (noImplicitAny || isInJSFile(declaration))) {\n if (!hasStaticModifier(declaration)) {\n const constructor = findConstructorDeclaration(declaration.parent);\n const type = constructor ? getFlowTypeInConstructor(declaration.symbol, constructor) : getEffectiveModifierFlags(declaration) & 128 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0;\n return type && addOptionality(\n type,\n /*isProperty*/\n true,\n isOptional\n );\n } else {\n const staticBlocks = filter(declaration.parent.members, isClassStaticBlockDeclaration);\n const type = staticBlocks.length ? getFlowTypeInStaticBlocks(declaration.symbol, staticBlocks) : getEffectiveModifierFlags(declaration) & 128 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0;\n return type && addOptionality(\n type,\n /*isProperty*/\n true,\n isOptional\n );\n }\n }\n if (isJsxAttribute(declaration)) {\n return trueType;\n }\n if (isBindingPattern(declaration.name)) {\n return getTypeFromBindingPattern(\n declaration.name,\n /*includePatternInType*/\n false,\n /*reportErrors*/\n true\n );\n }\n return void 0;\n }\n function isConstructorDeclaredProperty(symbol) {\n if (symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration)) {\n const links = getSymbolLinks(symbol);\n if (links.isConstructorDeclaredProperty === void 0) {\n links.isConstructorDeclaredProperty = false;\n links.isConstructorDeclaredProperty = !!getDeclaringConstructor(symbol) && every(symbol.declarations, (declaration) => isBinaryExpression(declaration) && isPossiblyAliasedThisProperty(declaration) && (declaration.left.kind !== 213 /* ElementAccessExpression */ || isStringOrNumericLiteralLike(declaration.left.argumentExpression)) && !getAnnotatedTypeForAssignmentDeclaration(\n /*declaredType*/\n void 0,\n declaration,\n symbol,\n declaration\n ));\n }\n return links.isConstructorDeclaredProperty;\n }\n return false;\n }\n function isAutoTypedProperty(symbol) {\n const declaration = symbol.valueDeclaration;\n return declaration && isPropertyDeclaration(declaration) && !getEffectiveTypeAnnotationNode(declaration) && !declaration.initializer && (noImplicitAny || isInJSFile(declaration));\n }\n function getDeclaringConstructor(symbol) {\n if (!symbol.declarations) {\n return;\n }\n for (const declaration of symbol.declarations) {\n const container = getThisContainer(\n declaration,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (container && (container.kind === 177 /* Constructor */ || isJSConstructor(container))) {\n return container;\n }\n }\n }\n function getFlowTypeFromCommonJSExport(symbol) {\n const file = getSourceFileOfNode(symbol.declarations[0]);\n const accessName = unescapeLeadingUnderscores(symbol.escapedName);\n const areAllModuleExports = symbol.declarations.every((d) => isInJSFile(d) && isAccessExpression(d) && isModuleExportsAccessExpression(d.expression));\n const reference = areAllModuleExports ? factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier(\"module\"), factory.createIdentifier(\"exports\")), accessName) : factory.createPropertyAccessExpression(factory.createIdentifier(\"exports\"), accessName);\n if (areAllModuleExports) {\n setParent(reference.expression.expression, reference.expression);\n }\n setParent(reference.expression, reference);\n setParent(reference, file);\n reference.flowNode = file.endFlowNode;\n return getFlowTypeOfReference(reference, autoType, undefinedType);\n }\n function getFlowTypeInStaticBlocks(symbol, staticBlocks) {\n const accessName = startsWith(symbol.escapedName, \"__#\") ? factory.createPrivateIdentifier(symbol.escapedName.split(\"@\")[1]) : unescapeLeadingUnderscores(symbol.escapedName);\n for (const staticBlock of staticBlocks) {\n const reference = factory.createPropertyAccessExpression(factory.createThis(), accessName);\n setParent(reference.expression, reference);\n setParent(reference, staticBlock);\n reference.flowNode = staticBlock.returnFlowNode;\n const flowType = getFlowTypeOfProperty(reference, symbol);\n if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) {\n error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n }\n if (everyType(flowType, isNullableType)) {\n continue;\n }\n return convertAutoToAny(flowType);\n }\n }\n function getFlowTypeInConstructor(symbol, constructor) {\n const accessName = startsWith(symbol.escapedName, \"__#\") ? factory.createPrivateIdentifier(symbol.escapedName.split(\"@\")[1]) : unescapeLeadingUnderscores(symbol.escapedName);\n const reference = factory.createPropertyAccessExpression(factory.createThis(), accessName);\n setParent(reference.expression, reference);\n setParent(reference, constructor);\n reference.flowNode = constructor.returnFlowNode;\n const flowType = getFlowTypeOfProperty(reference, symbol);\n if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) {\n error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n }\n return everyType(flowType, isNullableType) ? void 0 : convertAutoToAny(flowType);\n }\n function getFlowTypeOfProperty(reference, prop) {\n const initialType = (prop == null ? void 0 : prop.valueDeclaration) && (!isAutoTypedProperty(prop) || getEffectiveModifierFlags(prop.valueDeclaration) & 128 /* Ambient */) && getTypeOfPropertyInBaseClass(prop) || undefinedType;\n return getFlowTypeOfReference(reference, autoType, initialType);\n }\n function getWidenedTypeForAssignmentDeclaration(symbol, resolvedSymbol) {\n const container = getAssignedExpandoInitializer(symbol.valueDeclaration);\n if (container) {\n const tag = isInJSFile(container) ? getJSDocTypeTag(container) : void 0;\n if (tag && tag.typeExpression) {\n return getTypeFromTypeNode(tag.typeExpression);\n }\n const containerObjectType = symbol.valueDeclaration && getJSContainerObjectType(symbol.valueDeclaration, symbol, container);\n return containerObjectType || getWidenedLiteralType(checkExpressionCached(container));\n }\n let type;\n let definedInConstructor = false;\n let definedInMethod = false;\n if (isConstructorDeclaredProperty(symbol)) {\n type = getFlowTypeInConstructor(symbol, getDeclaringConstructor(symbol));\n }\n if (!type) {\n let types;\n if (symbol.declarations) {\n let jsdocType;\n for (const declaration of symbol.declarations) {\n const expression = isBinaryExpression(declaration) || isCallExpression(declaration) ? declaration : isAccessExpression(declaration) ? isBinaryExpression(declaration.parent) ? declaration.parent : declaration : void 0;\n if (!expression) {\n continue;\n }\n const kind = isAccessExpression(expression) ? getAssignmentDeclarationPropertyAccessKind(expression) : getAssignmentDeclarationKind(expression);\n if (kind === 4 /* ThisProperty */ || isBinaryExpression(expression) && isPossiblyAliasedThisProperty(expression, kind)) {\n if (isDeclarationInConstructor(expression)) {\n definedInConstructor = true;\n } else {\n definedInMethod = true;\n }\n }\n if (!isCallExpression(expression)) {\n jsdocType = getAnnotatedTypeForAssignmentDeclaration(jsdocType, expression, symbol, declaration);\n }\n if (!jsdocType) {\n (types || (types = [])).push(isBinaryExpression(expression) || isCallExpression(expression) ? getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) : neverType);\n }\n }\n type = jsdocType;\n }\n if (!type) {\n if (!length(types)) {\n return errorType;\n }\n let constructorTypes = definedInConstructor && symbol.declarations ? getConstructorDefinedThisAssignmentTypes(types, symbol.declarations) : void 0;\n if (definedInMethod) {\n const propType = getTypeOfPropertyInBaseClass(symbol);\n if (propType) {\n (constructorTypes || (constructorTypes = [])).push(propType);\n definedInConstructor = true;\n }\n }\n const sourceTypes = some(constructorTypes, (t) => !!(t.flags & ~98304 /* Nullable */)) ? constructorTypes : types;\n type = getUnionType(sourceTypes);\n }\n }\n const widened = getWidenedType(addOptionality(\n type,\n /*isProperty*/\n false,\n definedInMethod && !definedInConstructor\n ));\n if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {\n reportImplicitAny(symbol.valueDeclaration, anyType);\n return anyType;\n }\n return widened;\n }\n function getJSContainerObjectType(decl, symbol, init) {\n var _a, _b;\n if (!isInJSFile(decl) || !init || !isObjectLiteralExpression(init) || init.properties.length) {\n return void 0;\n }\n const exports2 = createSymbolTable();\n while (isBinaryExpression(decl) || isPropertyAccessExpression(decl)) {\n const s2 = getSymbolOfNode(decl);\n if ((_a = s2 == null ? void 0 : s2.exports) == null ? void 0 : _a.size) {\n mergeSymbolTable(exports2, s2.exports);\n }\n decl = isBinaryExpression(decl) ? decl.parent : decl.parent.parent;\n }\n const s = getSymbolOfNode(decl);\n if ((_b = s == null ? void 0 : s.exports) == null ? void 0 : _b.size) {\n mergeSymbolTable(exports2, s.exports);\n }\n const type = createAnonymousType(symbol, exports2, emptyArray, emptyArray, emptyArray);\n type.objectFlags |= 4096 /* JSLiteral */;\n return type;\n }\n function getAnnotatedTypeForAssignmentDeclaration(declaredType, expression, symbol, declaration) {\n var _a;\n const typeNode = getEffectiveTypeAnnotationNode(expression.parent);\n if (typeNode) {\n const type = getWidenedType(getTypeFromTypeNode(typeNode));\n if (!declaredType) {\n return type;\n } else if (!isErrorType(declaredType) && !isErrorType(type) && !isTypeIdenticalTo(declaredType, type)) {\n errorNextVariableOrPropertyDeclarationMustHaveSameType(\n /*firstDeclaration*/\n void 0,\n declaredType,\n declaration,\n type\n );\n }\n }\n if ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) {\n const possiblyAnnotatedSymbol = getFunctionExpressionParentSymbolOrSymbol(symbol.parent);\n if (possiblyAnnotatedSymbol.valueDeclaration) {\n const typeNode2 = getEffectiveTypeAnnotationNode(possiblyAnnotatedSymbol.valueDeclaration);\n if (typeNode2) {\n const annotationSymbol = getPropertyOfType(getTypeFromTypeNode(typeNode2), symbol.escapedName);\n if (annotationSymbol) {\n return getNonMissingTypeOfSymbol(annotationSymbol);\n }\n }\n }\n }\n return declaredType;\n }\n function getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) {\n if (isCallExpression(expression)) {\n if (resolvedSymbol) {\n return getTypeOfSymbol(resolvedSymbol);\n }\n const objectLitType = checkExpressionCached(expression.arguments[2]);\n const valueType = getTypeOfPropertyOfType(objectLitType, \"value\");\n if (valueType) {\n return valueType;\n }\n const getFunc = getTypeOfPropertyOfType(objectLitType, \"get\");\n if (getFunc) {\n const getSig = getSingleCallSignature(getFunc);\n if (getSig) {\n return getReturnTypeOfSignature(getSig);\n }\n }\n const setFunc = getTypeOfPropertyOfType(objectLitType, \"set\");\n if (setFunc) {\n const setSig = getSingleCallSignature(setFunc);\n if (setSig) {\n return getTypeOfFirstParameterOfSignature(setSig);\n }\n }\n return anyType;\n }\n if (containsSameNamedThisProperty(expression.left, expression.right)) {\n return anyType;\n }\n const isDirectExport = kind === 1 /* ExportsProperty */ && (isPropertyAccessExpression(expression.left) || isElementAccessExpression(expression.left)) && (isModuleExportsAccessExpression(expression.left.expression) || isIdentifier(expression.left.expression) && isExportsIdentifier(expression.left.expression));\n const type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) : isDirectExport ? getRegularTypeOfLiteralType(checkExpressionCached(expression.right)) : getWidenedLiteralType(checkExpressionCached(expression.right));\n if (type.flags & 524288 /* Object */ && kind === 2 /* ModuleExports */ && symbol.escapedName === \"export=\" /* ExportEquals */) {\n const exportedType = resolveStructuredTypeMembers(type);\n const members = createSymbolTable();\n copyEntries(exportedType.members, members);\n const initialSize = members.size;\n if (resolvedSymbol && !resolvedSymbol.exports) {\n resolvedSymbol.exports = createSymbolTable();\n }\n (resolvedSymbol || symbol).exports.forEach((s, name) => {\n var _a;\n const exportedMember = members.get(name);\n if (exportedMember && exportedMember !== s && !(s.flags & 2097152 /* Alias */)) {\n if (s.flags & 111551 /* Value */ && exportedMember.flags & 111551 /* Value */) {\n if (s.valueDeclaration && exportedMember.valueDeclaration && getSourceFileOfNode(s.valueDeclaration) !== getSourceFileOfNode(exportedMember.valueDeclaration)) {\n const unescapedName = unescapeLeadingUnderscores(s.escapedName);\n const exportedMemberName = ((_a = tryCast(exportedMember.valueDeclaration, isNamedDeclaration)) == null ? void 0 : _a.name) || exportedMember.valueDeclaration;\n addRelatedInfo(\n error2(s.valueDeclaration, Diagnostics.Duplicate_identifier_0, unescapedName),\n createDiagnosticForNode(exportedMemberName, Diagnostics._0_was_also_declared_here, unescapedName)\n );\n addRelatedInfo(\n error2(exportedMemberName, Diagnostics.Duplicate_identifier_0, unescapedName),\n createDiagnosticForNode(s.valueDeclaration, Diagnostics._0_was_also_declared_here, unescapedName)\n );\n }\n const union = createSymbol(s.flags | exportedMember.flags, name);\n union.links.type = getUnionType([getTypeOfSymbol(s), getTypeOfSymbol(exportedMember)]);\n union.valueDeclaration = exportedMember.valueDeclaration;\n union.declarations = concatenate(exportedMember.declarations, s.declarations);\n members.set(name, union);\n } else {\n members.set(name, mergeSymbol(s, exportedMember));\n }\n } else {\n members.set(name, s);\n }\n });\n const result = createAnonymousType(\n initialSize !== members.size ? void 0 : exportedType.symbol,\n // Only set the type's symbol if it looks to be the same as the original type\n members,\n exportedType.callSignatures,\n exportedType.constructSignatures,\n exportedType.indexInfos\n );\n if (initialSize === members.size) {\n if (type.aliasSymbol) {\n result.aliasSymbol = type.aliasSymbol;\n result.aliasTypeArguments = type.aliasTypeArguments;\n }\n if (getObjectFlags(type) & 4 /* Reference */) {\n result.aliasSymbol = type.symbol;\n const args = getTypeArguments(type);\n result.aliasTypeArguments = length(args) ? args : void 0;\n }\n }\n result.objectFlags |= getPropagatingFlagsOfTypes([type]) | getObjectFlags(type) & (4096 /* JSLiteral */ | 16384 /* ArrayLiteral */ | 128 /* ObjectLiteral */);\n if (result.symbol && result.symbol.flags & 32 /* Class */ && type === getDeclaredTypeOfClassOrInterface(result.symbol)) {\n result.objectFlags |= 16777216 /* IsClassInstanceClone */;\n }\n return result;\n }\n if (isEmptyArrayLiteralType(type)) {\n reportImplicitAny(expression, anyArrayType);\n return anyArrayType;\n }\n return type;\n }\n function containsSameNamedThisProperty(thisProperty, expression) {\n return isPropertyAccessExpression(thisProperty) && thisProperty.expression.kind === 110 /* ThisKeyword */ && forEachChildRecursively(expression, (n) => isMatchingReference(thisProperty, n));\n }\n function isDeclarationInConstructor(expression) {\n const thisContainer = getThisContainer(\n expression,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n return thisContainer.kind === 177 /* Constructor */ || thisContainer.kind === 263 /* FunctionDeclaration */ || thisContainer.kind === 219 /* FunctionExpression */ && !isPrototypePropertyAssignment(thisContainer.parent);\n }\n function getConstructorDefinedThisAssignmentTypes(types, declarations) {\n Debug.assert(types.length === declarations.length);\n return types.filter((_, i) => {\n const declaration = declarations[i];\n const expression = isBinaryExpression(declaration) ? declaration : isBinaryExpression(declaration.parent) ? declaration.parent : void 0;\n return expression && isDeclarationInConstructor(expression);\n });\n }\n function getTypeFromBindingElement(element, includePatternInType, reportErrors2) {\n if (element.initializer) {\n const contextualType = isBindingPattern(element.name) ? getTypeFromBindingPattern(\n element.name,\n /*includePatternInType*/\n true,\n /*reportErrors*/\n false\n ) : unknownType;\n return addOptionality(getWidenedLiteralTypeForInitializer(element, checkDeclarationInitializer(element, 0 /* Normal */, contextualType)));\n }\n if (isBindingPattern(element.name)) {\n return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors2);\n }\n if (reportErrors2 && !declarationBelongsToPrivateAmbientMember(element)) {\n reportImplicitAny(element, anyType);\n }\n return includePatternInType ? nonInferrableAnyType : anyType;\n }\n function getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) {\n const members = createSymbolTable();\n let stringIndexInfo;\n let objectFlags = 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n forEach(pattern.elements, (e) => {\n const name = e.propertyName || e.name;\n if (e.dotDotDotToken) {\n stringIndexInfo = createIndexInfo(\n stringType,\n anyType,\n /*isReadonly*/\n false\n );\n return;\n }\n const exprType = getLiteralTypeFromPropertyName(name);\n if (!isTypeUsableAsPropertyName(exprType)) {\n objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */;\n return;\n }\n const text = getPropertyNameFromType(exprType);\n const flags = 4 /* Property */ | (e.initializer ? 16777216 /* Optional */ : 0);\n const symbol = createSymbol(flags, text);\n symbol.links.type = getTypeFromBindingElement(e, includePatternInType, reportErrors2);\n members.set(symbol.escapedName, symbol);\n });\n const result = createAnonymousType(\n /*symbol*/\n void 0,\n members,\n emptyArray,\n emptyArray,\n stringIndexInfo ? [stringIndexInfo] : emptyArray\n );\n result.objectFlags |= objectFlags;\n if (includePatternInType) {\n result.pattern = pattern;\n result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */;\n }\n return result;\n }\n function getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2) {\n const elements = pattern.elements;\n const lastElement = lastOrUndefined(elements);\n const restElement = lastElement && lastElement.kind === 209 /* BindingElement */ && lastElement.dotDotDotToken ? lastElement : void 0;\n if (elements.length === 0 || elements.length === 1 && restElement) {\n return languageVersion >= 2 /* ES2015 */ ? createIterableType(anyType) : anyArrayType;\n }\n const elementTypes = map(elements, (e) => isOmittedExpression(e) ? anyType : getTypeFromBindingElement(e, includePatternInType, reportErrors2));\n const minLength = findLastIndex(elements, (e) => !(e === restElement || isOmittedExpression(e) || hasDefaultValue(e)), elements.length - 1) + 1;\n const elementFlags = map(elements, (e, i) => e === restElement ? 4 /* Rest */ : i >= minLength ? 2 /* Optional */ : 1 /* Required */);\n let result = createTupleType(elementTypes, elementFlags);\n if (includePatternInType) {\n result = cloneTypeReference(result);\n result.pattern = pattern;\n result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */;\n }\n return result;\n }\n function getTypeFromBindingPattern(pattern, includePatternInType = false, reportErrors2 = false) {\n if (includePatternInType) contextualBindingPatterns.push(pattern);\n const result = pattern.kind === 207 /* ObjectBindingPattern */ ? getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) : getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2);\n if (includePatternInType) contextualBindingPatterns.pop();\n return result;\n }\n function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors2) {\n return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(\n declaration,\n /*includeOptionality*/\n true,\n 0 /* Normal */\n ), declaration, reportErrors2);\n }\n function getTypeFromImportAttributes(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const symbol = createSymbol(4096 /* ObjectLiteral */, \"__importAttributes\" /* ImportAttributes */);\n const members = createSymbolTable();\n forEach(node.elements, (attr) => {\n const member = createSymbol(4 /* Property */, getNameFromImportAttribute(attr));\n member.parent = symbol;\n member.links.type = checkImportAttribute(attr);\n member.links.target = member;\n members.set(member.escapedName, member);\n });\n const type = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n type.objectFlags |= 128 /* ObjectLiteral */ | 262144 /* NonInferrableType */;\n links.resolvedType = type;\n }\n return links.resolvedType;\n }\n function isGlobalSymbolConstructor(node) {\n const symbol = getSymbolOfNode(node);\n const globalSymbol = getGlobalESSymbolConstructorTypeSymbol(\n /*reportErrors*/\n false\n );\n return globalSymbol && symbol && symbol === globalSymbol;\n }\n function widenTypeForVariableLikeDeclaration(type, declaration, reportErrors2) {\n if (type) {\n if (type.flags & 4096 /* ESSymbol */ && isGlobalSymbolConstructor(declaration.parent)) {\n type = getESSymbolLikeTypeForNode(declaration);\n }\n if (reportErrors2) {\n reportErrorsFromWidening(declaration, type);\n }\n if (type.flags & 8192 /* UniqueESSymbol */ && (isBindingElement(declaration) || !tryGetTypeFromEffectiveTypeNode(declaration)) && type.symbol !== getSymbolOfDeclaration(declaration)) {\n type = esSymbolType;\n }\n return getWidenedType(type);\n }\n type = isParameter(declaration) && declaration.dotDotDotToken ? anyArrayType : anyType;\n if (reportErrors2) {\n if (!declarationBelongsToPrivateAmbientMember(declaration)) {\n reportImplicitAny(declaration, type);\n }\n }\n return type;\n }\n function declarationBelongsToPrivateAmbientMember(declaration) {\n const root = getRootDeclaration(declaration);\n const memberDeclaration = root.kind === 170 /* Parameter */ ? root.parent : root;\n return isPrivateWithinAmbient(memberDeclaration);\n }\n function tryGetTypeFromEffectiveTypeNode(node) {\n const typeNode = getEffectiveTypeAnnotationNode(node);\n if (typeNode) {\n return getTypeFromTypeNode(typeNode);\n }\n }\n function isParameterOfContextSensitiveSignature(symbol) {\n let decl = symbol.valueDeclaration;\n if (!decl) {\n return false;\n }\n if (isBindingElement(decl)) {\n decl = walkUpBindingElementsAndPatterns(decl);\n }\n if (isParameter(decl)) {\n return isContextSensitiveFunctionOrObjectLiteralMethod(decl.parent);\n }\n return false;\n }\n function getTypeOfVariableOrParameterOrProperty(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.type) {\n const type = getTypeOfVariableOrParameterOrPropertyWorker(symbol);\n if (!links.type && !isParameterOfContextSensitiveSignature(symbol)) {\n links.type = type;\n }\n return type;\n }\n return links.type;\n }\n function getTypeOfVariableOrParameterOrPropertyWorker(symbol) {\n if (symbol.flags & 4194304 /* Prototype */) {\n return getTypeOfPrototypeProperty(symbol);\n }\n if (symbol === requireSymbol) {\n return anyType;\n }\n if (symbol.flags & 134217728 /* ModuleExports */ && symbol.valueDeclaration) {\n const fileSymbol = getSymbolOfDeclaration(getSourceFileOfNode(symbol.valueDeclaration));\n const result = createSymbol(fileSymbol.flags, \"exports\");\n result.declarations = fileSymbol.declarations ? fileSymbol.declarations.slice() : [];\n result.parent = symbol;\n result.links.target = fileSymbol;\n if (fileSymbol.valueDeclaration) result.valueDeclaration = fileSymbol.valueDeclaration;\n if (fileSymbol.members) result.members = new Map(fileSymbol.members);\n if (fileSymbol.exports) result.exports = new Map(fileSymbol.exports);\n const members = createSymbolTable();\n members.set(\"exports\", result);\n return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n }\n Debug.assertIsDefined(symbol.valueDeclaration);\n const declaration = symbol.valueDeclaration;\n if (isSourceFile(declaration) && isJsonSourceFile(declaration)) {\n if (!declaration.statements.length) {\n return emptyObjectType;\n }\n return getWidenedType(getWidenedLiteralType(checkExpression(declaration.statements[0].expression)));\n }\n if (isAccessor(declaration)) {\n return getTypeOfAccessors(symbol);\n }\n if (!pushTypeResolution(symbol, 0 /* Type */)) {\n if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {\n return getTypeOfFuncClassEnumModule(symbol);\n }\n return reportCircularityError(symbol);\n }\n let type;\n if (declaration.kind === 278 /* ExportAssignment */) {\n type = widenTypeForVariableLikeDeclaration(tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionCached(declaration.expression), declaration);\n } else if (isBinaryExpression(declaration) || isInJSFile(declaration) && (isCallExpression(declaration) || (isPropertyAccessExpression(declaration) || isBindableStaticElementAccessExpression(declaration)) && isBinaryExpression(declaration.parent))) {\n type = getWidenedTypeForAssignmentDeclaration(symbol);\n } else if (isPropertyAccessExpression(declaration) || isElementAccessExpression(declaration) || isIdentifier(declaration) || isStringLiteralLike(declaration) || isNumericLiteral(declaration) || isClassDeclaration(declaration) || isFunctionDeclaration(declaration) || isMethodDeclaration(declaration) && !isObjectLiteralMethod(declaration) || isMethodSignature(declaration) || isSourceFile(declaration)) {\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) {\n return getTypeOfFuncClassEnumModule(symbol);\n }\n type = isBinaryExpression(declaration.parent) ? getWidenedTypeForAssignmentDeclaration(symbol) : tryGetTypeFromEffectiveTypeNode(declaration) || anyType;\n } else if (isPropertyAssignment(declaration)) {\n type = tryGetTypeFromEffectiveTypeNode(declaration) || checkPropertyAssignment(declaration);\n } else if (isJsxAttribute(declaration)) {\n type = tryGetTypeFromEffectiveTypeNode(declaration) || checkJsxAttribute(declaration);\n } else if (isShorthandPropertyAssignment(declaration)) {\n type = tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionForMutableLocation(declaration.name, 0 /* Normal */);\n } else if (isObjectLiteralMethod(declaration)) {\n type = tryGetTypeFromEffectiveTypeNode(declaration) || checkObjectLiteralMethod(declaration, 0 /* Normal */);\n } else if (isParameter(declaration) || isPropertyDeclaration(declaration) || isPropertySignature(declaration) || isVariableDeclaration(declaration) || isBindingElement(declaration) || isJSDocPropertyLikeTag(declaration)) {\n type = getWidenedTypeForVariableLikeDeclaration(\n declaration,\n /*reportErrors*/\n true\n );\n } else if (isEnumDeclaration(declaration)) {\n type = getTypeOfFuncClassEnumModule(symbol);\n } else if (isEnumMember(declaration)) {\n type = getTypeOfEnumMember(symbol);\n } else {\n return Debug.fail(\"Unhandled declaration kind! \" + Debug.formatSyntaxKind(declaration.kind) + \" for \" + Debug.formatSymbol(symbol));\n }\n if (!popTypeResolution()) {\n if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {\n return getTypeOfFuncClassEnumModule(symbol);\n }\n return reportCircularityError(symbol);\n }\n return type;\n }\n function getAnnotatedAccessorTypeNode(accessor) {\n if (accessor) {\n switch (accessor.kind) {\n case 178 /* GetAccessor */:\n const getterTypeAnnotation = getEffectiveReturnTypeNode(accessor);\n return getterTypeAnnotation;\n case 179 /* SetAccessor */:\n const setterTypeAnnotation = getEffectiveSetAccessorTypeAnnotationNode(accessor);\n return setterTypeAnnotation;\n case 173 /* PropertyDeclaration */:\n Debug.assert(hasAccessorModifier(accessor));\n const accessorTypeAnnotation = getEffectiveTypeAnnotationNode(accessor);\n return accessorTypeAnnotation;\n }\n }\n return void 0;\n }\n function getAnnotatedAccessorType(accessor) {\n const node = getAnnotatedAccessorTypeNode(accessor);\n return node && getTypeFromTypeNode(node);\n }\n function getAnnotatedAccessorThisParameter(accessor) {\n const parameter = getAccessorThisParameter(accessor);\n return parameter && parameter.symbol;\n }\n function getThisTypeOfDeclaration(declaration) {\n return getThisTypeOfSignature(getSignatureFromDeclaration(declaration));\n }\n function getTypeOfAccessors(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.type) {\n if (!pushTypeResolution(symbol, 0 /* Type */)) {\n return errorType;\n }\n const getter = getDeclarationOfKind(symbol, 178 /* GetAccessor */);\n const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */);\n const accessor = tryCast(getDeclarationOfKind(symbol, 173 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration);\n let type = getter && isInJSFile(getter) && getTypeForDeclarationFromJSDocComment(getter) || getAnnotatedAccessorType(getter) || getAnnotatedAccessorType(setter) || getAnnotatedAccessorType(accessor) || getter && getter.body && getReturnTypeFromBody(getter) || accessor && getWidenedTypeForVariableLikeDeclaration(\n accessor,\n /*reportErrors*/\n true\n );\n if (!type) {\n if (setter && !isPrivateWithinAmbient(setter)) {\n errorOrSuggestion(noImplicitAny, setter, Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, symbolToString(symbol));\n } else if (getter && !isPrivateWithinAmbient(getter)) {\n errorOrSuggestion(noImplicitAny, getter, Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, symbolToString(symbol));\n } else if (accessor && !isPrivateWithinAmbient(accessor)) {\n errorOrSuggestion(noImplicitAny, accessor, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), \"any\");\n }\n type = anyType;\n }\n if (!popTypeResolution()) {\n if (getAnnotatedAccessorTypeNode(getter)) {\n error2(getter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n } else if (getAnnotatedAccessorTypeNode(setter)) {\n error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n } else if (getAnnotatedAccessorTypeNode(accessor)) {\n error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n } else if (getter && noImplicitAny) {\n error2(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));\n }\n type = anyType;\n }\n links.type ?? (links.type = type);\n }\n return links.type;\n }\n function getWriteTypeOfAccessors(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.writeType) {\n if (!pushTypeResolution(symbol, 7 /* WriteType */)) {\n return errorType;\n }\n const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */) ?? tryCast(getDeclarationOfKind(symbol, 173 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration);\n let writeType = getAnnotatedAccessorType(setter);\n if (!popTypeResolution()) {\n if (getAnnotatedAccessorTypeNode(setter)) {\n error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n }\n writeType = anyType;\n }\n links.writeType ?? (links.writeType = writeType || getTypeOfAccessors(symbol));\n }\n return links.writeType;\n }\n function getBaseTypeVariableOfClass(symbol) {\n const baseConstructorType = getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(symbol));\n return baseConstructorType.flags & 8650752 /* TypeVariable */ ? baseConstructorType : baseConstructorType.flags & 2097152 /* Intersection */ ? find(baseConstructorType.types, (t) => !!(t.flags & 8650752 /* TypeVariable */)) : void 0;\n }\n function getTypeOfFuncClassEnumModule(symbol) {\n let links = getSymbolLinks(symbol);\n const originalLinks = links;\n if (!links.type) {\n const expando = symbol.valueDeclaration && getSymbolOfExpando(\n symbol.valueDeclaration,\n /*allowDeclaration*/\n false\n );\n if (expando) {\n const merged = mergeJSSymbols(symbol, expando);\n if (merged) {\n symbol = merged;\n links = merged.links;\n }\n }\n originalLinks.type = links.type = getTypeOfFuncClassEnumModuleWorker(symbol);\n }\n return links.type;\n }\n function getTypeOfFuncClassEnumModuleWorker(symbol) {\n const declaration = symbol.valueDeclaration;\n if (symbol.flags & 1536 /* Module */ && isShorthandAmbientModuleSymbol(symbol)) {\n return anyType;\n } else if (declaration && (declaration.kind === 227 /* BinaryExpression */ || isAccessExpression(declaration) && declaration.parent.kind === 227 /* BinaryExpression */)) {\n return getWidenedTypeForAssignmentDeclaration(symbol);\n } else if (symbol.flags & 512 /* ValueModule */ && declaration && isSourceFile(declaration) && declaration.commonJsModuleIndicator) {\n const resolvedModule = resolveExternalModuleSymbol(symbol);\n if (resolvedModule !== symbol) {\n if (!pushTypeResolution(symbol, 0 /* Type */)) {\n return errorType;\n }\n const exportEquals = getMergedSymbol(symbol.exports.get(\"export=\" /* ExportEquals */));\n const type2 = getWidenedTypeForAssignmentDeclaration(exportEquals, exportEquals === resolvedModule ? void 0 : resolvedModule);\n if (!popTypeResolution()) {\n return reportCircularityError(symbol);\n }\n return type2;\n }\n }\n const type = createObjectType(16 /* Anonymous */, symbol);\n if (symbol.flags & 32 /* Class */) {\n const baseTypeVariable = getBaseTypeVariableOfClass(symbol);\n return baseTypeVariable ? getIntersectionType([type, baseTypeVariable]) : type;\n } else {\n return strictNullChecks && symbol.flags & 16777216 /* Optional */ ? getOptionalType(\n type,\n /*isProperty*/\n true\n ) : type;\n }\n }\n function getTypeOfEnumMember(symbol) {\n const links = getSymbolLinks(symbol);\n return links.type || (links.type = getDeclaredTypeOfEnumMember(symbol));\n }\n function getTypeOfAlias(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.type) {\n if (!pushTypeResolution(symbol, 0 /* Type */)) {\n return errorType;\n }\n const targetSymbol = resolveAlias(symbol);\n const exportSymbol = symbol.declarations && getTargetOfAliasDeclaration(\n getDeclarationOfAliasSymbol(symbol),\n /*dontRecursivelyResolve*/\n true\n );\n const declaredType = firstDefined(exportSymbol == null ? void 0 : exportSymbol.declarations, (d) => isExportAssignment(d) ? tryGetTypeFromEffectiveTypeNode(d) : void 0);\n links.type ?? (links.type = (exportSymbol == null ? void 0 : exportSymbol.declarations) && isDuplicatedCommonJSExport(exportSymbol.declarations) && symbol.declarations.length ? getFlowTypeFromCommonJSExport(exportSymbol) : isDuplicatedCommonJSExport(symbol.declarations) ? autoType : declaredType ? declaredType : getSymbolFlags(targetSymbol) & 111551 /* Value */ ? getTypeOfSymbol(targetSymbol) : errorType);\n if (!popTypeResolution()) {\n reportCircularityError(exportSymbol ?? symbol);\n return links.type ?? (links.type = errorType);\n }\n }\n return links.type;\n }\n function getTypeOfInstantiatedSymbol(symbol) {\n const links = getSymbolLinks(symbol);\n return links.type || (links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper));\n }\n function getWriteTypeOfInstantiatedSymbol(symbol) {\n const links = getSymbolLinks(symbol);\n return links.writeType || (links.writeType = instantiateType(getWriteTypeOfSymbol(links.target), links.mapper));\n }\n function reportCircularityError(symbol) {\n const declaration = symbol.valueDeclaration;\n if (declaration) {\n if (getEffectiveTypeAnnotationNode(declaration)) {\n error2(symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n return errorType;\n }\n if (noImplicitAny && (declaration.kind !== 170 /* Parameter */ || declaration.initializer)) {\n error2(symbol.valueDeclaration, Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer, symbolToString(symbol));\n }\n } else if (symbol.flags & 2097152 /* Alias */) {\n const node = getDeclarationOfAliasSymbol(symbol);\n if (node) {\n error2(node, Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));\n }\n }\n return anyType;\n }\n function getTypeOfSymbolWithDeferredType(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.type) {\n Debug.assertIsDefined(links.deferralParent);\n Debug.assertIsDefined(links.deferralConstituents);\n links.type = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralConstituents) : getIntersectionType(links.deferralConstituents);\n }\n return links.type;\n }\n function getWriteTypeOfSymbolWithDeferredType(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.writeType && links.deferralWriteConstituents) {\n Debug.assertIsDefined(links.deferralParent);\n Debug.assertIsDefined(links.deferralConstituents);\n links.writeType = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents);\n }\n return links.writeType;\n }\n function getWriteTypeOfSymbol(symbol) {\n const checkFlags = getCheckFlags(symbol);\n if (checkFlags & 2 /* SyntheticProperty */) {\n return checkFlags & 65536 /* DeferredType */ ? getWriteTypeOfSymbolWithDeferredType(symbol) || getTypeOfSymbolWithDeferredType(symbol) : (\n // NOTE: cast to TransientSymbol should be safe because only TransientSymbols can have CheckFlags.SyntheticProperty\n symbol.links.writeType || symbol.links.type\n );\n }\n if (symbol.flags & 4 /* Property */) {\n return removeMissingType(getTypeOfSymbol(symbol), !!(symbol.flags & 16777216 /* Optional */));\n }\n if (symbol.flags & 98304 /* Accessor */) {\n return checkFlags & 1 /* Instantiated */ ? getWriteTypeOfInstantiatedSymbol(symbol) : getWriteTypeOfAccessors(symbol);\n }\n return getTypeOfSymbol(symbol);\n }\n function getTypeOfSymbol(symbol) {\n const checkFlags = getCheckFlags(symbol);\n if (checkFlags & 65536 /* DeferredType */) {\n return getTypeOfSymbolWithDeferredType(symbol);\n }\n if (checkFlags & 1 /* Instantiated */) {\n return getTypeOfInstantiatedSymbol(symbol);\n }\n if (checkFlags & 262144 /* Mapped */) {\n return getTypeOfMappedSymbol(symbol);\n }\n if (checkFlags & 8192 /* ReverseMapped */) {\n return getTypeOfReverseMappedSymbol(symbol);\n }\n if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) {\n return getTypeOfVariableOrParameterOrProperty(symbol);\n }\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) {\n return getTypeOfFuncClassEnumModule(symbol);\n }\n if (symbol.flags & 8 /* EnumMember */) {\n return getTypeOfEnumMember(symbol);\n }\n if (symbol.flags & 98304 /* Accessor */) {\n return getTypeOfAccessors(symbol);\n }\n if (symbol.flags & 2097152 /* Alias */) {\n return getTypeOfAlias(symbol);\n }\n return errorType;\n }\n function getNonMissingTypeOfSymbol(symbol) {\n return removeMissingType(getTypeOfSymbol(symbol), !!(symbol.flags & 16777216 /* Optional */));\n }\n function isReferenceToSomeType(type, targets) {\n if (type === void 0 || (getObjectFlags(type) & 4 /* Reference */) === 0) {\n return false;\n }\n for (const target of targets) {\n if (type.target === target) {\n return true;\n }\n }\n return false;\n }\n function isReferenceToType2(type, target) {\n return type !== void 0 && target !== void 0 && (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target;\n }\n function getTargetType(type) {\n return getObjectFlags(type) & 4 /* Reference */ ? type.target : type;\n }\n function hasBaseType(type, checkBase) {\n return check(type);\n function check(type2) {\n if (getObjectFlags(type2) & (3 /* ClassOrInterface */ | 4 /* Reference */)) {\n const target = getTargetType(type2);\n return target === checkBase || some(getBaseTypes(target), check);\n } else if (type2.flags & 2097152 /* Intersection */) {\n return some(type2.types, check);\n }\n return false;\n }\n }\n function appendTypeParameters(typeParameters, declarations) {\n for (const declaration of declarations) {\n typeParameters = appendIfUnique(typeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(declaration)));\n }\n return typeParameters;\n }\n function getOuterTypeParameters(node, includeThisTypes) {\n while (true) {\n node = node.parent;\n if (node && isBinaryExpression(node)) {\n const assignmentKind = getAssignmentDeclarationKind(node);\n if (assignmentKind === 6 /* Prototype */ || assignmentKind === 3 /* PrototypeProperty */) {\n const symbol = getSymbolOfDeclaration(node.left);\n if (symbol && symbol.parent && !findAncestor(symbol.parent.valueDeclaration, (d) => node === d)) {\n node = symbol.parent.valueDeclaration;\n }\n }\n }\n if (!node) {\n return void 0;\n }\n const kind = node.kind;\n switch (kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 174 /* MethodSignature */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 318 /* JSDocFunctionType */:\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 266 /* TypeAliasDeclaration */:\n case 346 /* JSDocTemplateTag */:\n case 347 /* JSDocTypedefTag */:\n case 341 /* JSDocEnumTag */:\n case 339 /* JSDocCallbackTag */:\n case 201 /* MappedType */:\n case 195 /* ConditionalType */: {\n const outerTypeParameters = getOuterTypeParameters(node, includeThisTypes);\n if ((kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */ || isObjectLiteralMethod(node)) && isContextSensitive(node)) {\n const signature = firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(node)), 0 /* Call */));\n if (signature && signature.typeParameters) {\n return [...outerTypeParameters || emptyArray, ...signature.typeParameters];\n }\n }\n if (kind === 201 /* MappedType */) {\n return append(outerTypeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter)));\n } else if (kind === 195 /* ConditionalType */) {\n return concatenate(outerTypeParameters, getInferTypeParameters(node));\n }\n const outerAndOwnTypeParameters = appendTypeParameters(outerTypeParameters, getEffectiveTypeParameterDeclarations(node));\n const thisType = includeThisTypes && (kind === 264 /* ClassDeclaration */ || kind === 232 /* ClassExpression */ || kind === 265 /* InterfaceDeclaration */ || isJSConstructor(node)) && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node)).thisType;\n return thisType ? append(outerAndOwnTypeParameters, thisType) : outerAndOwnTypeParameters;\n }\n case 342 /* JSDocParameterTag */:\n const paramSymbol = getParameterSymbolFromJSDoc(node);\n if (paramSymbol) {\n node = paramSymbol.valueDeclaration;\n }\n break;\n case 321 /* JSDoc */: {\n const outerTypeParameters = getOuterTypeParameters(node, includeThisTypes);\n return node.tags ? appendTypeParameters(outerTypeParameters, flatMap(node.tags, (t) => isJSDocTemplateTag(t) ? t.typeParameters : void 0)) : outerTypeParameters;\n }\n }\n }\n }\n function getOuterTypeParametersOfClassOrInterface(symbol) {\n var _a;\n const declaration = symbol.flags & 32 /* Class */ || symbol.flags & 16 /* Function */ ? symbol.valueDeclaration : (_a = symbol.declarations) == null ? void 0 : _a.find((decl) => {\n if (decl.kind === 265 /* InterfaceDeclaration */) {\n return true;\n }\n if (decl.kind !== 261 /* VariableDeclaration */) {\n return false;\n }\n const initializer = decl.initializer;\n return !!initializer && (initializer.kind === 219 /* FunctionExpression */ || initializer.kind === 220 /* ArrowFunction */);\n });\n Debug.assert(!!declaration, \"Class was missing valueDeclaration -OR- non-class had no interface declarations\");\n return getOuterTypeParameters(declaration);\n }\n function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) {\n if (!symbol.declarations) {\n return;\n }\n let result;\n for (const node of symbol.declarations) {\n if (node.kind === 265 /* InterfaceDeclaration */ || node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */ || isJSConstructor(node) || isTypeAlias(node)) {\n const declaration = node;\n result = appendTypeParameters(result, getEffectiveTypeParameterDeclarations(declaration));\n }\n }\n return result;\n }\n function getTypeParametersOfClassOrInterface(symbol) {\n return concatenate(getOuterTypeParametersOfClassOrInterface(symbol), getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol));\n }\n function isMixinConstructorType(type) {\n const signatures = getSignaturesOfType(type, 1 /* Construct */);\n if (signatures.length === 1) {\n const s = signatures[0];\n if (!s.typeParameters && s.parameters.length === 1 && signatureHasRestParameter(s)) {\n const paramType = getTypeOfParameter(s.parameters[0]);\n return isTypeAny(paramType) || getElementTypeOfArrayType(paramType) === anyType;\n }\n }\n return false;\n }\n function isConstructorType(type) {\n if (getSignaturesOfType(type, 1 /* Construct */).length > 0) {\n return true;\n }\n if (type.flags & 8650752 /* TypeVariable */) {\n const constraint = getBaseConstraintOfType(type);\n return !!constraint && isMixinConstructorType(constraint);\n }\n return false;\n }\n function getBaseTypeNodeOfClass(type) {\n const decl = getClassLikeDeclarationOfSymbol(type.symbol);\n return decl && getEffectiveBaseTypeNode(decl);\n }\n function getConstructorsForTypeArguments(type, typeArgumentNodes, location) {\n const typeArgCount = length(typeArgumentNodes);\n const isJavascript = isInJSFile(location);\n return filter(getSignaturesOfType(type, 1 /* Construct */), (sig) => (isJavascript || typeArgCount >= getMinTypeArgumentCount(sig.typeParameters)) && typeArgCount <= length(sig.typeParameters));\n }\n function getInstantiatedConstructorsForTypeArguments(type, typeArgumentNodes, location) {\n const signatures = getConstructorsForTypeArguments(type, typeArgumentNodes, location);\n const typeArguments = map(typeArgumentNodes, getTypeFromTypeNode);\n return sameMap(signatures, (sig) => some(sig.typeParameters) ? getSignatureInstantiation(sig, typeArguments, isInJSFile(location)) : sig);\n }\n function getBaseConstructorTypeOfClass(type) {\n if (!type.resolvedBaseConstructorType) {\n const decl = getClassLikeDeclarationOfSymbol(type.symbol);\n const extended = decl && getEffectiveBaseTypeNode(decl);\n const baseTypeNode = getBaseTypeNodeOfClass(type);\n if (!baseTypeNode) {\n return type.resolvedBaseConstructorType = undefinedType;\n }\n if (!pushTypeResolution(type, 1 /* ResolvedBaseConstructorType */)) {\n return errorType;\n }\n const baseConstructorType = checkExpression(baseTypeNode.expression);\n if (extended && baseTypeNode !== extended) {\n Debug.assert(!extended.typeArguments);\n checkExpression(extended.expression);\n }\n if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n resolveStructuredTypeMembers(baseConstructorType);\n }\n if (!popTypeResolution()) {\n error2(type.symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression, symbolToString(type.symbol));\n return type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = errorType);\n }\n if (!(baseConstructorType.flags & 1 /* Any */) && baseConstructorType !== nullWideningType && !isConstructorType(baseConstructorType)) {\n const err = error2(baseTypeNode.expression, Diagnostics.Type_0_is_not_a_constructor_function_type, typeToString(baseConstructorType));\n if (baseConstructorType.flags & 262144 /* TypeParameter */) {\n const constraint = getConstraintFromTypeParameter(baseConstructorType);\n let ctorReturn = unknownType;\n if (constraint) {\n const ctorSig = getSignaturesOfType(constraint, 1 /* Construct */);\n if (ctorSig[0]) {\n ctorReturn = getReturnTypeOfSignature(ctorSig[0]);\n }\n }\n if (baseConstructorType.symbol.declarations) {\n addRelatedInfo(err, createDiagnosticForNode(baseConstructorType.symbol.declarations[0], Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1, symbolToString(baseConstructorType.symbol), typeToString(ctorReturn)));\n }\n }\n return type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = errorType);\n }\n type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = baseConstructorType);\n }\n return type.resolvedBaseConstructorType;\n }\n function getImplementsTypes(type) {\n let resolvedImplementsTypes = emptyArray;\n if (type.symbol.declarations) {\n for (const declaration of type.symbol.declarations) {\n const implementsTypeNodes = getEffectiveImplementsTypeNodes(declaration);\n if (!implementsTypeNodes) continue;\n for (const node of implementsTypeNodes) {\n const implementsType = getTypeFromTypeNode(node);\n if (!isErrorType(implementsType)) {\n if (resolvedImplementsTypes === emptyArray) {\n resolvedImplementsTypes = [implementsType];\n } else {\n resolvedImplementsTypes.push(implementsType);\n }\n }\n }\n }\n }\n return resolvedImplementsTypes;\n }\n function reportCircularBaseType(node, type) {\n error2(node, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 2 /* WriteArrayAsGenericType */\n ));\n }\n function getBaseTypes(type) {\n if (!type.baseTypesResolved) {\n if (pushTypeResolution(type, 6 /* ResolvedBaseTypes */)) {\n if (type.objectFlags & 8 /* Tuple */) {\n type.resolvedBaseTypes = [getTupleBaseType(type)];\n } else if (type.symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n if (type.symbol.flags & 32 /* Class */) {\n resolveBaseTypesOfClass(type);\n }\n if (type.symbol.flags & 64 /* Interface */) {\n resolveBaseTypesOfInterface(type);\n }\n } else {\n Debug.fail(\"type must be class or interface\");\n }\n if (!popTypeResolution() && type.symbol.declarations) {\n for (const declaration of type.symbol.declarations) {\n if (declaration.kind === 264 /* ClassDeclaration */ || declaration.kind === 265 /* InterfaceDeclaration */) {\n reportCircularBaseType(declaration, type);\n }\n }\n }\n }\n type.baseTypesResolved = true;\n }\n return type.resolvedBaseTypes;\n }\n function getTupleBaseType(type) {\n const elementTypes = sameMap(type.typeParameters, (t, i) => type.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t);\n return createArrayType(getUnionType(elementTypes || emptyArray), type.readonly);\n }\n function resolveBaseTypesOfClass(type) {\n type.resolvedBaseTypes = resolvingEmptyArray;\n const baseConstructorType = getApparentType(getBaseConstructorTypeOfClass(type));\n if (!(baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 1 /* Any */))) {\n return type.resolvedBaseTypes = emptyArray;\n }\n const baseTypeNode = getBaseTypeNodeOfClass(type);\n let baseType;\n const originalBaseType = baseConstructorType.symbol ? getDeclaredTypeOfSymbol(baseConstructorType.symbol) : void 0;\n if (baseConstructorType.symbol && baseConstructorType.symbol.flags & 32 /* Class */ && areAllOuterTypeParametersApplied(originalBaseType)) {\n baseType = getTypeFromClassOrInterfaceReference(baseTypeNode, baseConstructorType.symbol);\n } else if (baseConstructorType.flags & 1 /* Any */) {\n baseType = baseConstructorType;\n } else {\n const constructors = getInstantiatedConstructorsForTypeArguments(baseConstructorType, baseTypeNode.typeArguments, baseTypeNode);\n if (!constructors.length) {\n error2(baseTypeNode.expression, Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments);\n return type.resolvedBaseTypes = emptyArray;\n }\n baseType = getReturnTypeOfSignature(constructors[0]);\n }\n if (isErrorType(baseType)) {\n return type.resolvedBaseTypes = emptyArray;\n }\n const reducedBaseType = getReducedType(baseType);\n if (!isValidBaseType(reducedBaseType)) {\n const elaboration = elaborateNeverIntersection(\n /*errorInfo*/\n void 0,\n baseType\n );\n const diagnostic = chainDiagnosticMessages(elaboration, Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members, typeToString(reducedBaseType));\n diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(baseTypeNode.expression), baseTypeNode.expression, diagnostic));\n return type.resolvedBaseTypes = emptyArray;\n }\n if (type === reducedBaseType || hasBaseType(reducedBaseType, type)) {\n error2(type.symbol.valueDeclaration, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 2 /* WriteArrayAsGenericType */\n ));\n return type.resolvedBaseTypes = emptyArray;\n }\n if (type.resolvedBaseTypes === resolvingEmptyArray) {\n type.members = void 0;\n }\n return type.resolvedBaseTypes = [reducedBaseType];\n }\n function areAllOuterTypeParametersApplied(type) {\n const outerTypeParameters = type.outerTypeParameters;\n if (outerTypeParameters) {\n const last2 = outerTypeParameters.length - 1;\n const typeArguments = getTypeArguments(type);\n return outerTypeParameters[last2].symbol !== typeArguments[last2].symbol;\n }\n return true;\n }\n function isValidBaseType(type) {\n if (type.flags & 262144 /* TypeParameter */) {\n const constraint = getBaseConstraintOfType(type);\n if (constraint) {\n return isValidBaseType(constraint);\n }\n }\n return !!(type.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 1 /* Any */) && !isGenericMappedType(type) || type.flags & 2097152 /* Intersection */ && every(type.types, isValidBaseType));\n }\n function resolveBaseTypesOfInterface(type) {\n type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;\n if (type.symbol.declarations) {\n for (const declaration of type.symbol.declarations) {\n if (declaration.kind === 265 /* InterfaceDeclaration */ && getInterfaceBaseTypeNodes(declaration)) {\n for (const node of getInterfaceBaseTypeNodes(declaration)) {\n const baseType = getReducedType(getTypeFromTypeNode(node));\n if (!isErrorType(baseType)) {\n if (isValidBaseType(baseType)) {\n if (type !== baseType && !hasBaseType(baseType, type)) {\n if (type.resolvedBaseTypes === emptyArray) {\n type.resolvedBaseTypes = [baseType];\n } else {\n type.resolvedBaseTypes.push(baseType);\n }\n } else {\n reportCircularBaseType(declaration, type);\n }\n } else {\n error2(node, Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members);\n }\n }\n }\n }\n }\n }\n }\n function isThislessInterface(symbol) {\n if (!symbol.declarations) {\n return true;\n }\n for (const declaration of symbol.declarations) {\n if (declaration.kind === 265 /* InterfaceDeclaration */) {\n if (declaration.flags & 256 /* ContainsThis */) {\n return false;\n }\n const baseTypeNodes = getInterfaceBaseTypeNodes(declaration);\n if (baseTypeNodes) {\n for (const node of baseTypeNodes) {\n if (isEntityNameExpression(node.expression)) {\n const baseSymbol = resolveEntityName(\n node.expression,\n 788968 /* Type */,\n /*ignoreErrors*/\n true\n );\n if (!baseSymbol || !(baseSymbol.flags & 64 /* Interface */) || getDeclaredTypeOfClassOrInterface(baseSymbol).thisType) {\n return false;\n }\n }\n }\n }\n }\n }\n return true;\n }\n function getDeclaredTypeOfClassOrInterface(symbol) {\n let links = getSymbolLinks(symbol);\n const originalLinks = links;\n if (!links.declaredType) {\n const kind = symbol.flags & 32 /* Class */ ? 1 /* Class */ : 2 /* Interface */;\n const merged = mergeJSSymbols(symbol, symbol.valueDeclaration && getAssignedClassSymbol(symbol.valueDeclaration));\n if (merged) {\n symbol = merged;\n links = merged.links;\n }\n const type = originalLinks.declaredType = links.declaredType = createObjectType(kind, symbol);\n const outerTypeParameters = getOuterTypeParametersOfClassOrInterface(symbol);\n const localTypeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n if (outerTypeParameters || localTypeParameters || kind === 1 /* Class */ || !isThislessInterface(symbol)) {\n type.objectFlags |= 4 /* Reference */;\n type.typeParameters = concatenate(outerTypeParameters, localTypeParameters);\n type.outerTypeParameters = outerTypeParameters;\n type.localTypeParameters = localTypeParameters;\n type.instantiations = /* @__PURE__ */ new Map();\n type.instantiations.set(getTypeListId(type.typeParameters), type);\n type.target = type;\n type.resolvedTypeArguments = type.typeParameters;\n type.thisType = createTypeParameter(symbol);\n type.thisType.isThisType = true;\n type.thisType.constraint = type;\n }\n }\n return links.declaredType;\n }\n function getDeclaredTypeOfTypeAlias(symbol) {\n var _a;\n const links = getSymbolLinks(symbol);\n if (!links.declaredType) {\n if (!pushTypeResolution(symbol, 2 /* DeclaredType */)) {\n return errorType;\n }\n const declaration = Debug.checkDefined((_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias), \"Type alias symbol with no valid declaration found\");\n const typeNode = isJSDocTypeAlias(declaration) ? declaration.typeExpression : declaration.type;\n let type = typeNode ? getTypeFromTypeNode(typeNode) : errorType;\n if (popTypeResolution()) {\n const typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n if (typeParameters) {\n links.typeParameters = typeParameters;\n links.instantiations = /* @__PURE__ */ new Map();\n links.instantiations.set(getTypeListId(typeParameters), type);\n }\n if (type === intrinsicMarkerType && symbol.escapedName === \"BuiltinIteratorReturn\") {\n type = getBuiltinIteratorReturnType();\n }\n } else {\n type = errorType;\n if (declaration.kind === 341 /* JSDocEnumTag */) {\n error2(declaration.typeExpression.type, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol));\n } else {\n error2(isNamedDeclaration(declaration) ? declaration.name || declaration : declaration, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol));\n }\n }\n links.declaredType ?? (links.declaredType = type);\n }\n return links.declaredType;\n }\n function getBaseTypeOfEnumLikeType(type) {\n return type.flags & 1056 /* EnumLike */ && type.symbol.flags & 8 /* EnumMember */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type;\n }\n function getDeclaredTypeOfEnum(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.declaredType) {\n const memberTypeList = [];\n if (symbol.declarations) {\n for (const declaration of symbol.declarations) {\n if (declaration.kind === 267 /* EnumDeclaration */) {\n for (const member of declaration.members) {\n if (hasBindableName(member)) {\n const memberSymbol = getSymbolOfDeclaration(member);\n const value = getEnumMemberValue(member).value;\n const memberType = getFreshTypeOfLiteralType(\n value !== void 0 ? getEnumLiteralType(value, getSymbolId(symbol), memberSymbol) : createComputedEnumType(memberSymbol)\n );\n getSymbolLinks(memberSymbol).declaredType = memberType;\n memberTypeList.push(getRegularTypeOfLiteralType(memberType));\n }\n }\n }\n }\n }\n const enumType = memberTypeList.length ? getUnionType(\n memberTypeList,\n 1 /* Literal */,\n symbol,\n /*aliasTypeArguments*/\n void 0\n ) : createComputedEnumType(symbol);\n if (enumType.flags & 1048576 /* Union */) {\n enumType.flags |= 1024 /* EnumLiteral */;\n enumType.symbol = symbol;\n }\n links.declaredType = enumType;\n }\n return links.declaredType;\n }\n function createComputedEnumType(symbol) {\n const regularType = createTypeWithSymbol(32 /* Enum */, symbol);\n const freshType = createTypeWithSymbol(32 /* Enum */, symbol);\n regularType.regularType = regularType;\n regularType.freshType = freshType;\n freshType.regularType = regularType;\n freshType.freshType = freshType;\n return regularType;\n }\n function getDeclaredTypeOfEnumMember(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.declaredType) {\n const enumType = getDeclaredTypeOfEnum(getParentOfSymbol(symbol));\n if (!links.declaredType) {\n links.declaredType = enumType;\n }\n }\n return links.declaredType;\n }\n function getDeclaredTypeOfTypeParameter(symbol) {\n const links = getSymbolLinks(symbol);\n return links.declaredType || (links.declaredType = createTypeParameter(symbol));\n }\n function getDeclaredTypeOfAlias(symbol) {\n const links = getSymbolLinks(symbol);\n return links.declaredType || (links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol)));\n }\n function getDeclaredTypeOfSymbol(symbol) {\n return tryGetDeclaredTypeOfSymbol(symbol) || errorType;\n }\n function tryGetDeclaredTypeOfSymbol(symbol) {\n if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n return getDeclaredTypeOfClassOrInterface(symbol);\n }\n if (symbol.flags & 524288 /* TypeAlias */) {\n return getDeclaredTypeOfTypeAlias(symbol);\n }\n if (symbol.flags & 262144 /* TypeParameter */) {\n return getDeclaredTypeOfTypeParameter(symbol);\n }\n if (symbol.flags & 384 /* Enum */) {\n return getDeclaredTypeOfEnum(symbol);\n }\n if (symbol.flags & 8 /* EnumMember */) {\n return getDeclaredTypeOfEnumMember(symbol);\n }\n if (symbol.flags & 2097152 /* Alias */) {\n return getDeclaredTypeOfAlias(symbol);\n }\n return void 0;\n }\n function isThislessType(node) {\n switch (node.kind) {\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 154 /* StringKeyword */:\n case 150 /* NumberKeyword */:\n case 163 /* BigIntKeyword */:\n case 136 /* BooleanKeyword */:\n case 155 /* SymbolKeyword */:\n case 151 /* ObjectKeyword */:\n case 116 /* VoidKeyword */:\n case 157 /* UndefinedKeyword */:\n case 146 /* NeverKeyword */:\n case 202 /* LiteralType */:\n return true;\n case 189 /* ArrayType */:\n return isThislessType(node.elementType);\n case 184 /* TypeReference */:\n return !node.typeArguments || node.typeArguments.every(isThislessType);\n }\n return false;\n }\n function isThislessTypeParameter(node) {\n const constraint = getEffectiveConstraintOfTypeParameter(node);\n return !constraint || isThislessType(constraint);\n }\n function isThislessVariableLikeDeclaration(node) {\n const typeNode = getEffectiveTypeAnnotationNode(node);\n return typeNode ? isThislessType(typeNode) : !hasInitializer(node);\n }\n function isThislessFunctionLikeDeclaration(node) {\n const returnType = getEffectiveReturnTypeNode(node);\n const typeParameters = getEffectiveTypeParameterDeclarations(node);\n return (node.kind === 177 /* Constructor */ || !!returnType && isThislessType(returnType)) && node.parameters.every(isThislessVariableLikeDeclaration) && typeParameters.every(isThislessTypeParameter);\n }\n function isThisless(symbol) {\n if (symbol.declarations && symbol.declarations.length === 1) {\n const declaration = symbol.declarations[0];\n if (declaration) {\n switch (declaration.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return isThislessVariableLikeDeclaration(declaration);\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return isThislessFunctionLikeDeclaration(declaration);\n }\n }\n }\n return false;\n }\n function createInstantiatedSymbolTable(symbols, mapper, mappingThisOnly) {\n const result = createSymbolTable();\n for (const symbol of symbols) {\n result.set(symbol.escapedName, mappingThisOnly && isThisless(symbol) ? symbol : instantiateSymbol(symbol, mapper));\n }\n return result;\n }\n function addInheritedMembers(symbols, baseSymbols) {\n for (const base of baseSymbols) {\n if (isStaticPrivateIdentifierProperty(base)) {\n continue;\n }\n const derived = symbols.get(base.escapedName);\n if (!derived || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration) && !isConstructorDeclaredProperty(derived) && !getContainingClassStaticBlock(derived.valueDeclaration)) {\n symbols.set(base.escapedName, base);\n symbols.set(base.escapedName, base);\n }\n }\n }\n function isStaticPrivateIdentifierProperty(s) {\n return !!s.valueDeclaration && isPrivateIdentifierClassElementDeclaration(s.valueDeclaration) && isStatic(s.valueDeclaration);\n }\n function resolveDeclaredMembers(type) {\n if (!type.declaredProperties) {\n const symbol = type.symbol;\n const members = getMembersOfSymbol(symbol);\n type.declaredProperties = getNamedMembers(members);\n type.declaredCallSignatures = emptyArray;\n type.declaredConstructSignatures = emptyArray;\n type.declaredIndexInfos = emptyArray;\n type.declaredCallSignatures = getSignaturesOfSymbol(members.get(\"__call\" /* Call */));\n type.declaredConstructSignatures = getSignaturesOfSymbol(members.get(\"__new\" /* New */));\n type.declaredIndexInfos = getIndexInfosOfSymbol(symbol);\n }\n return type;\n }\n function isLateBindableName(node) {\n return isLateBindableAST(node) && isTypeUsableAsPropertyName(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached(node.argumentExpression));\n }\n function isLateBindableIndexSignature(node) {\n return isLateBindableAST(node) && isTypeUsableAsIndexSignature(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached(node.argumentExpression));\n }\n function isLateBindableAST(node) {\n if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) {\n return false;\n }\n const expr = isComputedPropertyName(node) ? node.expression : node.argumentExpression;\n return isEntityNameExpression(expr);\n }\n function isTypeUsableAsIndexSignature(type) {\n return isTypeAssignableTo(type, stringNumberSymbolType);\n }\n function isLateBoundName(name) {\n return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) === 64 /* at */;\n }\n function hasLateBindableName(node) {\n const name = getNameOfDeclaration(node);\n return !!name && isLateBindableName(name);\n }\n function hasLateBindableIndexSignature(node) {\n const name = getNameOfDeclaration(node);\n return !!name && isLateBindableIndexSignature(name);\n }\n function hasBindableName(node) {\n return !hasDynamicName(node) || hasLateBindableName(node);\n }\n function isNonBindableDynamicName(node) {\n return isDynamicName(node) && !isLateBindableName(node);\n }\n function addDeclarationToLateBoundSymbol(symbol, member, symbolFlags) {\n Debug.assert(!!(getCheckFlags(symbol) & 4096 /* Late */), \"Expected a late-bound symbol.\");\n symbol.flags |= symbolFlags;\n getSymbolLinks(member.symbol).lateSymbol = symbol;\n if (!symbol.declarations) {\n symbol.declarations = [member];\n } else if (!member.symbol.isReplaceableByMethod) {\n symbol.declarations.push(member);\n }\n if (symbolFlags & 111551 /* Value */) {\n setValueDeclaration(symbol, member);\n }\n }\n function lateBindMember(parent2, earlySymbols, lateSymbols, decl) {\n Debug.assert(!!decl.symbol, \"The member is expected to have a symbol.\");\n const links = getNodeLinks(decl);\n if (!links.resolvedSymbol) {\n links.resolvedSymbol = decl.symbol;\n const declName = isBinaryExpression(decl) ? decl.left : decl.name;\n const type = isElementAccessExpression(declName) ? checkExpressionCached(declName.argumentExpression) : checkComputedPropertyName(declName);\n if (isTypeUsableAsPropertyName(type)) {\n const memberName = getPropertyNameFromType(type);\n const symbolFlags = decl.symbol.flags;\n let lateSymbol = lateSymbols.get(memberName);\n if (!lateSymbol) lateSymbols.set(memberName, lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */));\n const earlySymbol = earlySymbols && earlySymbols.get(memberName);\n if (!(parent2.flags & 32 /* Class */) && lateSymbol.flags & getExcludedSymbolFlags(symbolFlags)) {\n const declarations = earlySymbol ? concatenate(earlySymbol.declarations, lateSymbol.declarations) : lateSymbol.declarations;\n const name = !(type.flags & 8192 /* UniqueESSymbol */) && unescapeLeadingUnderscores(memberName) || declarationNameToString(declName);\n forEach(declarations, (declaration) => error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Property_0_was_also_declared_here, name));\n error2(declName || decl, Diagnostics.Duplicate_property_0, name);\n lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */);\n }\n lateSymbol.links.nameType = type;\n addDeclarationToLateBoundSymbol(lateSymbol, decl, symbolFlags);\n if (lateSymbol.parent) {\n Debug.assert(lateSymbol.parent === parent2, \"Existing symbol parent should match new one\");\n } else {\n lateSymbol.parent = parent2;\n }\n return links.resolvedSymbol = lateSymbol;\n }\n }\n return links.resolvedSymbol;\n }\n function lateBindIndexSignature(parent2, earlySymbols, lateSymbols, decl) {\n let indexSymbol = lateSymbols.get(\"__index\" /* Index */);\n if (!indexSymbol) {\n const early = earlySymbols == null ? void 0 : earlySymbols.get(\"__index\" /* Index */);\n if (!early) {\n indexSymbol = createSymbol(0 /* None */, \"__index\" /* Index */, 4096 /* Late */);\n } else {\n indexSymbol = cloneSymbol(early);\n indexSymbol.links.checkFlags |= 4096 /* Late */;\n }\n lateSymbols.set(\"__index\" /* Index */, indexSymbol);\n }\n if (!indexSymbol.declarations) {\n indexSymbol.declarations = [decl];\n } else if (!decl.symbol.isReplaceableByMethod) {\n indexSymbol.declarations.push(decl);\n }\n }\n function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) {\n const links = getSymbolLinks(symbol);\n if (!links[resolutionKind]) {\n const isStatic2 = resolutionKind === \"resolvedExports\" /* resolvedExports */;\n const earlySymbols = !isStatic2 ? symbol.members : symbol.flags & 1536 /* Module */ ? getExportsOfModuleWorker(symbol).exports : symbol.exports;\n links[resolutionKind] = earlySymbols || emptySymbols;\n const lateSymbols = createSymbolTable();\n for (const decl of symbol.declarations || emptyArray) {\n const members = getMembersOfDeclaration(decl);\n if (members) {\n for (const member of members) {\n if (isStatic2 === hasStaticModifier(member)) {\n if (hasLateBindableName(member)) {\n lateBindMember(symbol, earlySymbols, lateSymbols, member);\n } else if (hasLateBindableIndexSignature(member)) {\n lateBindIndexSignature(symbol, earlySymbols, lateSymbols, member);\n }\n }\n }\n }\n }\n const assignments = getFunctionExpressionParentSymbolOrSymbol(symbol).assignmentDeclarationMembers;\n if (assignments) {\n const decls = arrayFrom(assignments.values());\n for (const member of decls) {\n const assignmentKind = getAssignmentDeclarationKind(member);\n const isInstanceMember = assignmentKind === 3 /* PrototypeProperty */ || isBinaryExpression(member) && isPossiblyAliasedThisProperty(member, assignmentKind) || assignmentKind === 9 /* ObjectDefinePrototypeProperty */ || assignmentKind === 6 /* Prototype */;\n if (isStatic2 === !isInstanceMember) {\n if (hasLateBindableName(member)) {\n lateBindMember(symbol, earlySymbols, lateSymbols, member);\n }\n }\n }\n }\n let resolved = combineSymbolTables(earlySymbols, lateSymbols);\n if (symbol.flags & 33554432 /* Transient */ && links.cjsExportMerged && symbol.declarations) {\n for (const decl of symbol.declarations) {\n const original = getSymbolLinks(decl.symbol)[resolutionKind];\n if (!resolved) {\n resolved = original;\n continue;\n }\n if (!original) continue;\n original.forEach((s, name) => {\n const existing = resolved.get(name);\n if (!existing) resolved.set(name, s);\n else if (existing === s) return;\n else resolved.set(name, mergeSymbol(existing, s));\n });\n }\n }\n links[resolutionKind] = resolved || emptySymbols;\n }\n return links[resolutionKind];\n }\n function getMembersOfSymbol(symbol) {\n return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, \"resolvedMembers\" /* resolvedMembers */) : symbol.members || emptySymbols;\n }\n function getLateBoundSymbol(symbol) {\n if (symbol.flags & 106500 /* ClassMember */ && symbol.escapedName === \"__computed\" /* Computed */) {\n const links = getSymbolLinks(symbol);\n if (!links.lateSymbol && some(symbol.declarations, hasLateBindableName)) {\n const parent2 = getMergedSymbol(symbol.parent);\n if (some(symbol.declarations, hasStaticModifier)) {\n getExportsOfSymbol(parent2);\n } else {\n getMembersOfSymbol(parent2);\n }\n }\n return links.lateSymbol || (links.lateSymbol = symbol);\n }\n return symbol;\n }\n function getTypeWithThisArgument(type, thisArgument, needApparentType) {\n if (getObjectFlags(type) & 4 /* Reference */) {\n const target = type.target;\n const typeArguments = getTypeArguments(type);\n return length(target.typeParameters) === length(typeArguments) ? createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType])) : type;\n } else if (type.flags & 2097152 /* Intersection */) {\n const types = sameMap(type.types, (t) => getTypeWithThisArgument(t, thisArgument, needApparentType));\n return types !== type.types ? getIntersectionType(types) : type;\n }\n return needApparentType ? getApparentType(type) : type;\n }\n function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) {\n let mapper;\n let members;\n let callSignatures;\n let constructSignatures;\n let indexInfos;\n if (rangeEquals(typeParameters, typeArguments, 0, typeParameters.length)) {\n members = source.symbol ? getMembersOfSymbol(source.symbol) : createSymbolTable(source.declaredProperties);\n callSignatures = source.declaredCallSignatures;\n constructSignatures = source.declaredConstructSignatures;\n indexInfos = source.declaredIndexInfos;\n } else {\n mapper = createTypeMapper(typeParameters, typeArguments);\n members = createInstantiatedSymbolTable(\n source.declaredProperties,\n mapper,\n /*mappingThisOnly*/\n typeParameters.length === 1\n );\n callSignatures = instantiateSignatures(source.declaredCallSignatures, mapper);\n constructSignatures = instantiateSignatures(source.declaredConstructSignatures, mapper);\n indexInfos = instantiateIndexInfos(source.declaredIndexInfos, mapper);\n }\n const baseTypes = getBaseTypes(source);\n if (baseTypes.length) {\n if (source.symbol && members === getMembersOfSymbol(source.symbol)) {\n const symbolTable = createSymbolTable(source.declaredProperties);\n const sourceIndex = getIndexSymbol(source.symbol);\n if (sourceIndex) {\n symbolTable.set(\"__index\" /* Index */, sourceIndex);\n }\n members = symbolTable;\n }\n setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);\n const thisArgument = lastOrUndefined(typeArguments);\n for (const baseType of baseTypes) {\n const instantiatedBaseType = thisArgument ? getTypeWithThisArgument(instantiateType(baseType, mapper), thisArgument) : baseType;\n addInheritedMembers(members, getPropertiesOfType(instantiatedBaseType));\n callSignatures = concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* Call */));\n constructSignatures = concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */));\n const inheritedIndexInfos = instantiatedBaseType !== anyType ? getIndexInfosOfType(instantiatedBaseType) : [anyBaseTypeIndexInfo];\n indexInfos = concatenate(indexInfos, filter(inheritedIndexInfos, (info) => !findIndexInfo(indexInfos, info.keyType)));\n }\n }\n setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);\n }\n function resolveClassOrInterfaceMembers(type) {\n resolveObjectTypeMembers(type, resolveDeclaredMembers(type), emptyArray, emptyArray);\n }\n function resolveTypeReferenceMembers(type) {\n const source = resolveDeclaredMembers(type.target);\n const typeParameters = concatenate(source.typeParameters, [source.thisType]);\n const typeArguments = getTypeArguments(type);\n const paddedTypeArguments = typeArguments.length === typeParameters.length ? typeArguments : concatenate(typeArguments, [type]);\n resolveObjectTypeMembers(type, source, typeParameters, paddedTypeArguments);\n }\n function createSignature(declaration, typeParameters, thisParameter, parameters, resolvedReturnType, resolvedTypePredicate, minArgumentCount, flags) {\n const sig = new Signature13(checker, flags);\n sig.declaration = declaration;\n sig.typeParameters = typeParameters;\n sig.parameters = parameters;\n sig.thisParameter = thisParameter;\n sig.resolvedReturnType = resolvedReturnType;\n sig.resolvedTypePredicate = resolvedTypePredicate;\n sig.minArgumentCount = minArgumentCount;\n sig.resolvedMinArgumentCount = void 0;\n sig.target = void 0;\n sig.mapper = void 0;\n sig.compositeSignatures = void 0;\n sig.compositeKind = void 0;\n return sig;\n }\n function cloneSignature(sig) {\n const result = createSignature(\n sig.declaration,\n sig.typeParameters,\n sig.thisParameter,\n sig.parameters,\n /*resolvedReturnType*/\n void 0,\n /*resolvedTypePredicate*/\n void 0,\n sig.minArgumentCount,\n sig.flags & 167 /* PropagatingFlags */\n );\n result.target = sig.target;\n result.mapper = sig.mapper;\n result.compositeSignatures = sig.compositeSignatures;\n result.compositeKind = sig.compositeKind;\n return result;\n }\n function createUnionSignature(signature, unionSignatures) {\n const result = cloneSignature(signature);\n result.compositeSignatures = unionSignatures;\n result.compositeKind = 1048576 /* Union */;\n result.target = void 0;\n result.mapper = void 0;\n return result;\n }\n function getOptionalCallSignature(signature, callChainFlags) {\n if ((signature.flags & 24 /* CallChainFlags */) === callChainFlags) {\n return signature;\n }\n if (!signature.optionalCallSignatureCache) {\n signature.optionalCallSignatureCache = {};\n }\n const key = callChainFlags === 8 /* IsInnerCallChain */ ? \"inner\" : \"outer\";\n return signature.optionalCallSignatureCache[key] || (signature.optionalCallSignatureCache[key] = createOptionalCallSignature(signature, callChainFlags));\n }\n function createOptionalCallSignature(signature, callChainFlags) {\n Debug.assert(callChainFlags === 8 /* IsInnerCallChain */ || callChainFlags === 16 /* IsOuterCallChain */, \"An optional call signature can either be for an inner call chain or an outer call chain, but not both.\");\n const result = cloneSignature(signature);\n result.flags |= callChainFlags;\n return result;\n }\n function getExpandedParameters(sig, skipUnionExpanding) {\n if (signatureHasRestParameter(sig)) {\n const restIndex = sig.parameters.length - 1;\n const restSymbol = sig.parameters[restIndex];\n const restType = getTypeOfSymbol(restSymbol);\n if (isTupleType(restType)) {\n return [expandSignatureParametersWithTupleMembers(restType, restIndex, restSymbol)];\n } else if (!skipUnionExpanding && restType.flags & 1048576 /* Union */ && every(restType.types, isTupleType)) {\n return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restSymbol));\n }\n }\n return [sig.parameters];\n function expandSignatureParametersWithTupleMembers(restType, restIndex, restSymbol) {\n const elementTypes = getTypeArguments(restType);\n const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restSymbol);\n const restParams = map(elementTypes, (t, i) => {\n const name = associatedNames && associatedNames[i] ? associatedNames[i] : getParameterNameAtPosition(sig, restIndex + i, restType);\n const flags = restType.target.elementFlags[i];\n const checkFlags = flags & 12 /* Variable */ ? 32768 /* RestParameter */ : flags & 2 /* Optional */ ? 16384 /* OptionalParameter */ : 0;\n const symbol = createSymbol(1 /* FunctionScopedVariable */, name, checkFlags);\n symbol.links.type = flags & 4 /* Rest */ ? createArrayType(t) : t;\n return symbol;\n });\n return concatenate(sig.parameters.slice(0, restIndex), restParams);\n }\n function getUniqAssociatedNamesFromTupleType(type, restSymbol) {\n const names = map(type.target.labeledElementDeclarations, (labeledElement, i) => getTupleElementLabel(labeledElement, i, type.target.elementFlags[i], restSymbol));\n if (names) {\n const duplicates = [];\n const uniqueNames = /* @__PURE__ */ new Set();\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (!tryAddToSet(uniqueNames, name)) {\n duplicates.push(i);\n }\n }\n const counters = /* @__PURE__ */ new Map();\n for (const i of duplicates) {\n let counter = counters.get(names[i]) ?? 1;\n let name;\n while (!tryAddToSet(uniqueNames, name = `${names[i]}_${counter}`)) {\n counter++;\n }\n names[i] = name;\n counters.set(names[i], counter + 1);\n }\n }\n return names;\n }\n }\n function getDefaultConstructSignatures(classType) {\n const baseConstructorType = getBaseConstructorTypeOfClass(classType);\n const baseSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */);\n const declaration = getClassLikeDeclarationOfSymbol(classType.symbol);\n const isAbstract = !!declaration && hasSyntacticModifier(declaration, 64 /* Abstract */);\n if (baseSignatures.length === 0) {\n return [createSignature(\n /*declaration*/\n void 0,\n classType.localTypeParameters,\n /*thisParameter*/\n void 0,\n emptyArray,\n classType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n isAbstract ? 4 /* Abstract */ : 0 /* None */\n )];\n }\n const baseTypeNode = getBaseTypeNodeOfClass(classType);\n const isJavaScript = isInJSFile(baseTypeNode);\n const typeArguments = typeArgumentsFromTypeReferenceNode(baseTypeNode);\n const typeArgCount = length(typeArguments);\n const result = [];\n for (const baseSig of baseSignatures) {\n const minTypeArgumentCount = getMinTypeArgumentCount(baseSig.typeParameters);\n const typeParamCount = length(baseSig.typeParameters);\n if (isJavaScript || typeArgCount >= minTypeArgumentCount && typeArgCount <= typeParamCount) {\n const sig = typeParamCount ? createSignatureInstantiation(baseSig, fillMissingTypeArguments(typeArguments, baseSig.typeParameters, minTypeArgumentCount, isJavaScript)) : cloneSignature(baseSig);\n sig.typeParameters = classType.localTypeParameters;\n sig.resolvedReturnType = classType;\n sig.flags = isAbstract ? sig.flags | 4 /* Abstract */ : sig.flags & ~4 /* Abstract */;\n result.push(sig);\n }\n }\n return result;\n }\n function findMatchingSignature(signatureList, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes) {\n for (const s of signatureList) {\n if (compareSignaturesIdentical(s, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes, partialMatch ? compareTypesSubtypeOf : compareTypesIdentical)) {\n return s;\n }\n }\n }\n function findMatchingSignatures(signatureLists, signature, listIndex) {\n if (signature.typeParameters) {\n if (listIndex > 0) {\n return void 0;\n }\n for (let i = 1; i < signatureLists.length; i++) {\n if (!findMatchingSignature(\n signatureLists[i],\n signature,\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n false\n )) {\n return void 0;\n }\n }\n return [signature];\n }\n let result;\n for (let i = 0; i < signatureLists.length; i++) {\n const match = i === listIndex ? signature : findMatchingSignature(\n signatureLists[i],\n signature,\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n true\n ) || findMatchingSignature(\n signatureLists[i],\n signature,\n /*partialMatch*/\n true,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n true\n );\n if (!match) {\n return void 0;\n }\n result = appendIfUnique(result, match);\n }\n return result;\n }\n function getUnionSignatures(signatureLists) {\n let result;\n let indexWithLengthOverOne;\n for (let i = 0; i < signatureLists.length; i++) {\n if (signatureLists[i].length === 0) return emptyArray;\n if (signatureLists[i].length > 1) {\n indexWithLengthOverOne = indexWithLengthOverOne === void 0 ? i : -1;\n }\n for (const signature of signatureLists[i]) {\n if (!result || !findMatchingSignature(\n result,\n signature,\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n true\n )) {\n const unionSignatures = findMatchingSignatures(signatureLists, signature, i);\n if (unionSignatures) {\n let s = signature;\n if (unionSignatures.length > 1) {\n let thisParameter = signature.thisParameter;\n const firstThisParameterOfUnionSignatures = forEach(unionSignatures, (sig) => sig.thisParameter);\n if (firstThisParameterOfUnionSignatures) {\n const thisType = getIntersectionType(mapDefined(unionSignatures, (sig) => sig.thisParameter && getTypeOfSymbol(sig.thisParameter)));\n thisParameter = createSymbolWithType(firstThisParameterOfUnionSignatures, thisType);\n }\n s = createUnionSignature(signature, unionSignatures);\n s.thisParameter = thisParameter;\n }\n (result || (result = [])).push(s);\n }\n }\n }\n }\n if (!length(result) && indexWithLengthOverOne !== -1) {\n const masterList = signatureLists[indexWithLengthOverOne !== void 0 ? indexWithLengthOverOne : 0];\n let results = masterList.slice();\n for (const signatures of signatureLists) {\n if (signatures !== masterList) {\n const signature = signatures[0];\n Debug.assert(!!signature, \"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\");\n results = !!signature.typeParameters && some(results, (s) => !!s.typeParameters && !compareTypeParametersIdentical(signature.typeParameters, s.typeParameters)) ? void 0 : map(results, (sig) => combineSignaturesOfUnionMembers(sig, signature));\n if (!results) {\n break;\n }\n }\n }\n result = results;\n }\n return result || emptyArray;\n }\n function compareTypeParametersIdentical(sourceParams, targetParams) {\n if (length(sourceParams) !== length(targetParams)) {\n return false;\n }\n if (!sourceParams || !targetParams) {\n return true;\n }\n const mapper = createTypeMapper(targetParams, sourceParams);\n for (let i = 0; i < sourceParams.length; i++) {\n const source = sourceParams[i];\n const target = targetParams[i];\n if (source === target) continue;\n if (!isTypeIdenticalTo(getConstraintFromTypeParameter(source) || unknownType, instantiateType(getConstraintFromTypeParameter(target) || unknownType, mapper))) return false;\n }\n return true;\n }\n function combineUnionThisParam(left, right, mapper) {\n if (!left || !right) {\n return left || right;\n }\n const thisType = getIntersectionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]);\n return createSymbolWithType(left, thisType);\n }\n function combineUnionParameters(left, right, mapper) {\n const leftCount = getParameterCount(left);\n const rightCount = getParameterCount(right);\n const longest = leftCount >= rightCount ? left : right;\n const shorter = longest === left ? right : left;\n const longestCount = longest === left ? leftCount : rightCount;\n const eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right);\n const needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest);\n const params = new Array(longestCount + (needsExtraRestElement ? 1 : 0));\n for (let i = 0; i < longestCount; i++) {\n let longestParamType = tryGetTypeAtPosition(longest, i);\n if (longest === right) {\n longestParamType = instantiateType(longestParamType, mapper);\n }\n let shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType;\n if (shorter === right) {\n shorterParamType = instantiateType(shorterParamType, mapper);\n }\n const unionParamType = getIntersectionType([longestParamType, shorterParamType]);\n const isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1;\n const isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter);\n const leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i);\n const rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i);\n const paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0;\n const paramSymbol = createSymbol(\n 1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0),\n paramName || `arg${i}`,\n isRestParam ? 32768 /* RestParameter */ : isOptional ? 16384 /* OptionalParameter */ : 0\n );\n paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType;\n params[i] = paramSymbol;\n }\n if (needsExtraRestElement) {\n const restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, \"args\", 32768 /* RestParameter */);\n restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount));\n if (shorter === right) {\n restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper);\n }\n params[longestCount] = restParamSymbol;\n }\n return params;\n }\n function combineSignaturesOfUnionMembers(left, right) {\n const typeParams = left.typeParameters || right.typeParameters;\n let paramMapper;\n if (left.typeParameters && right.typeParameters) {\n paramMapper = createTypeMapper(right.typeParameters, left.typeParameters);\n }\n let flags = (left.flags | right.flags) & (167 /* PropagatingFlags */ & ~1 /* HasRestParameter */);\n const declaration = left.declaration;\n const params = combineUnionParameters(left, right, paramMapper);\n const lastParam = lastOrUndefined(params);\n if (lastParam && getCheckFlags(lastParam) & 32768 /* RestParameter */) {\n flags |= 1 /* HasRestParameter */;\n }\n const thisParam = combineUnionThisParam(left.thisParameter, right.thisParameter, paramMapper);\n const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);\n const result = createSignature(\n declaration,\n typeParams,\n thisParam,\n params,\n /*resolvedReturnType*/\n void 0,\n /*resolvedTypePredicate*/\n void 0,\n minArgCount,\n flags\n );\n result.compositeKind = 1048576 /* Union */;\n result.compositeSignatures = concatenate(left.compositeKind !== 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]);\n if (paramMapper) {\n result.mapper = left.compositeKind !== 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;\n } else if (left.compositeKind !== 2097152 /* Intersection */ && left.mapper && left.compositeSignatures) {\n result.mapper = left.mapper;\n }\n return result;\n }\n function getUnionIndexInfos(types) {\n const sourceInfos = getIndexInfosOfType(types[0]);\n if (sourceInfos) {\n const result = [];\n for (const info of sourceInfos) {\n const indexType = info.keyType;\n if (every(types, (t) => !!getIndexInfoOfType(t, indexType))) {\n result.push(createIndexInfo(indexType, getUnionType(map(types, (t) => getIndexTypeOfType(t, indexType))), some(types, (t) => getIndexInfoOfType(t, indexType).isReadonly)));\n }\n }\n return result;\n }\n return emptyArray;\n }\n function resolveUnionTypeMembers(type) {\n const callSignatures = getUnionSignatures(map(type.types, (t) => t === globalFunctionType ? [unknownSignature] : getSignaturesOfType(t, 0 /* Call */)));\n const constructSignatures = getUnionSignatures(map(type.types, (t) => getSignaturesOfType(t, 1 /* Construct */)));\n const indexInfos = getUnionIndexInfos(type.types);\n setStructuredTypeMembers(type, emptySymbols, callSignatures, constructSignatures, indexInfos);\n }\n function intersectTypes(type1, type2) {\n return !type1 ? type2 : !type2 ? type1 : getIntersectionType([type1, type2]);\n }\n function findMixins(types) {\n const constructorTypeCount = countWhere(types, (t) => getSignaturesOfType(t, 1 /* Construct */).length > 0);\n const mixinFlags = map(types, isMixinConstructorType);\n if (constructorTypeCount > 0 && constructorTypeCount === countWhere(mixinFlags, (b) => b)) {\n const firstMixinIndex = mixinFlags.indexOf(\n /*searchElement*/\n true\n );\n mixinFlags[firstMixinIndex] = false;\n }\n return mixinFlags;\n }\n function includeMixinType(type, types, mixinFlags, index) {\n const mixedTypes = [];\n for (let i = 0; i < types.length; i++) {\n if (i === index) {\n mixedTypes.push(type);\n } else if (mixinFlags[i]) {\n mixedTypes.push(getReturnTypeOfSignature(getSignaturesOfType(types[i], 1 /* Construct */)[0]));\n }\n }\n return getIntersectionType(mixedTypes);\n }\n function resolveIntersectionTypeMembers(type) {\n let callSignatures;\n let constructSignatures;\n let indexInfos;\n const types = type.types;\n const mixinFlags = findMixins(types);\n const mixinCount = countWhere(mixinFlags, (b) => b);\n for (let i = 0; i < types.length; i++) {\n const t = type.types[i];\n if (!mixinFlags[i]) {\n let signatures = getSignaturesOfType(t, 1 /* Construct */);\n if (signatures.length && mixinCount > 0) {\n signatures = map(signatures, (s) => {\n const clone2 = cloneSignature(s);\n clone2.resolvedReturnType = includeMixinType(getReturnTypeOfSignature(s), types, mixinFlags, i);\n return clone2;\n });\n }\n constructSignatures = appendSignatures(constructSignatures, signatures);\n }\n callSignatures = appendSignatures(callSignatures, getSignaturesOfType(t, 0 /* Call */));\n indexInfos = reduceLeft(getIndexInfosOfType(t), (infos, newInfo) => appendIndexInfo(\n infos,\n newInfo,\n /*union*/\n false\n ), indexInfos);\n }\n setStructuredTypeMembers(type, emptySymbols, callSignatures || emptyArray, constructSignatures || emptyArray, indexInfos || emptyArray);\n }\n function appendSignatures(signatures, newSignatures) {\n for (const sig of newSignatures) {\n if (!signatures || every(signatures, (s) => !compareSignaturesIdentical(\n s,\n sig,\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n false,\n compareTypesIdentical\n ))) {\n signatures = append(signatures, sig);\n }\n }\n return signatures;\n }\n function appendIndexInfo(indexInfos, newInfo, union) {\n if (indexInfos) {\n for (let i = 0; i < indexInfos.length; i++) {\n const info = indexInfos[i];\n if (info.keyType === newInfo.keyType) {\n indexInfos[i] = createIndexInfo(info.keyType, union ? getUnionType([info.type, newInfo.type]) : getIntersectionType([info.type, newInfo.type]), union ? info.isReadonly || newInfo.isReadonly : info.isReadonly && newInfo.isReadonly);\n return indexInfos;\n }\n }\n }\n return append(indexInfos, newInfo);\n }\n function resolveAnonymousTypeMembers(type) {\n if (type.target) {\n setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n const members2 = createInstantiatedSymbolTable(\n getPropertiesOfObjectType(type.target),\n type.mapper,\n /*mappingThisOnly*/\n false\n );\n const callSignatures = instantiateSignatures(getSignaturesOfType(type.target, 0 /* Call */), type.mapper);\n const constructSignatures = instantiateSignatures(getSignaturesOfType(type.target, 1 /* Construct */), type.mapper);\n const indexInfos2 = instantiateIndexInfos(getIndexInfosOfType(type.target), type.mapper);\n setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);\n return;\n }\n const symbol = getMergedSymbol(type.symbol);\n if (symbol.flags & 2048 /* TypeLiteral */) {\n setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n const members2 = getMembersOfSymbol(symbol);\n const callSignatures = getSignaturesOfSymbol(members2.get(\"__call\" /* Call */));\n const constructSignatures = getSignaturesOfSymbol(members2.get(\"__new\" /* New */));\n const indexInfos2 = getIndexInfosOfSymbol(symbol);\n setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);\n return;\n }\n let members = getExportsOfSymbol(symbol);\n let indexInfos;\n if (symbol === globalThisSymbol) {\n const varsOnly = /* @__PURE__ */ new Map();\n members.forEach((p) => {\n var _a;\n if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {\n varsOnly.set(p.escapedName, p);\n }\n });\n members = varsOnly;\n }\n let baseConstructorIndexInfo;\n setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray);\n if (symbol.flags & 32 /* Class */) {\n const classType = getDeclaredTypeOfClassOrInterface(symbol);\n const baseConstructorType = getBaseConstructorTypeOfClass(classType);\n if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 8650752 /* TypeVariable */)) {\n members = createSymbolTable(getNamedOrIndexSignatureMembers(members));\n addInheritedMembers(members, getPropertiesOfType(baseConstructorType));\n } else if (baseConstructorType === anyType) {\n baseConstructorIndexInfo = anyBaseTypeIndexInfo;\n }\n }\n const indexSymbol = getIndexSymbolFromSymbolTable(members);\n if (indexSymbol) {\n indexInfos = getIndexInfosOfIndexSymbol(indexSymbol, arrayFrom(members.values()));\n } else {\n if (baseConstructorIndexInfo) {\n indexInfos = append(indexInfos, baseConstructorIndexInfo);\n }\n if (symbol.flags & 384 /* Enum */ && (getDeclaredTypeOfSymbol(symbol).flags & 32 /* Enum */ || some(type.properties, (prop) => !!(getTypeOfSymbol(prop).flags & 296 /* NumberLike */)))) {\n indexInfos = append(indexInfos, enumNumberIndexInfo);\n }\n }\n setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray);\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) {\n type.callSignatures = getSignaturesOfSymbol(symbol);\n }\n if (symbol.flags & 32 /* Class */) {\n const classType = getDeclaredTypeOfClassOrInterface(symbol);\n let constructSignatures = symbol.members ? getSignaturesOfSymbol(symbol.members.get(\"__constructor\" /* Constructor */)) : emptyArray;\n if (symbol.flags & 16 /* Function */) {\n constructSignatures = addRange(\n constructSignatures.slice(),\n mapDefined(\n type.callSignatures,\n (sig) => isJSConstructor(sig.declaration) ? createSignature(\n sig.declaration,\n sig.typeParameters,\n sig.thisParameter,\n sig.parameters,\n classType,\n /*resolvedTypePredicate*/\n void 0,\n sig.minArgumentCount,\n sig.flags & 167 /* PropagatingFlags */\n ) : void 0\n )\n );\n }\n if (!constructSignatures.length) {\n constructSignatures = getDefaultConstructSignatures(classType);\n }\n type.constructSignatures = constructSignatures;\n }\n }\n function replaceIndexedAccess(instantiable, type, replacement) {\n return instantiateType(instantiable, createTypeMapper([type.indexType, type.objectType], [getNumberLiteralType(0), createTupleType([replacement])]));\n }\n function getLimitedConstraint(type) {\n const constraint = getConstraintTypeFromMappedType(type.mappedType);\n if (!(constraint.flags & 1048576 /* Union */ || constraint.flags & 2097152 /* Intersection */)) {\n return;\n }\n const origin = constraint.flags & 1048576 /* Union */ ? constraint.origin : constraint;\n if (!origin || !(origin.flags & 2097152 /* Intersection */)) {\n return;\n }\n const limitedConstraint = getIntersectionType(origin.types.filter((t) => t !== type.constraintType));\n return limitedConstraint !== neverType ? limitedConstraint : void 0;\n }\n function resolveReverseMappedTypeMembers(type) {\n const indexInfo = getIndexInfoOfType(type.source, stringType);\n const modifiers = getMappedTypeModifiers(type.mappedType);\n const readonlyMask = modifiers & 1 /* IncludeReadonly */ ? false : true;\n const optionalMask = modifiers & 4 /* IncludeOptional */ ? 0 : 16777216 /* Optional */;\n const indexInfos = indexInfo ? [createIndexInfo(stringType, inferReverseMappedType(indexInfo.type, type.mappedType, type.constraintType) || unknownType, readonlyMask && indexInfo.isReadonly)] : emptyArray;\n const members = createSymbolTable();\n const limitedConstraint = getLimitedConstraint(type);\n for (const prop of getPropertiesOfType(type.source)) {\n if (limitedConstraint) {\n const propertyNameType = getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */);\n if (!isTypeAssignableTo(propertyNameType, limitedConstraint)) {\n continue;\n }\n }\n const checkFlags = 8192 /* ReverseMapped */ | (readonlyMask && isReadonlySymbol(prop) ? 8 /* Readonly */ : 0);\n const inferredProp = createSymbol(4 /* Property */ | prop.flags & optionalMask, prop.escapedName, checkFlags);\n inferredProp.declarations = prop.declarations;\n inferredProp.links.nameType = getSymbolLinks(prop).nameType;\n inferredProp.links.propertyType = getTypeOfSymbol(prop);\n if (type.constraintType.type.flags & 8388608 /* IndexedAccess */ && type.constraintType.type.objectType.flags & 262144 /* TypeParameter */ && type.constraintType.type.indexType.flags & 262144 /* TypeParameter */) {\n const newTypeParam = type.constraintType.type.objectType;\n const newMappedType = replaceIndexedAccess(type.mappedType, type.constraintType.type, newTypeParam);\n inferredProp.links.mappedType = newMappedType;\n inferredProp.links.constraintType = getIndexType(newTypeParam);\n } else {\n inferredProp.links.mappedType = type.mappedType;\n inferredProp.links.constraintType = type.constraintType;\n }\n members.set(prop.escapedName, inferredProp);\n }\n setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos);\n }\n function getLowerBoundOfKeyType(type) {\n if (type.flags & 4194304 /* Index */) {\n const t = getApparentType(type.type);\n return isGenericTupleType(t) ? getKnownKeysOfTupleType(t) : getIndexType(t);\n }\n if (type.flags & 16777216 /* Conditional */) {\n if (type.root.isDistributive) {\n const checkType = type.checkType;\n const constraint = getLowerBoundOfKeyType(checkType);\n if (constraint !== checkType) {\n return getConditionalTypeInstantiation(\n type,\n prependTypeMapping(type.root.checkType, constraint, type.mapper),\n /*forConstraint*/\n false\n );\n }\n }\n return type;\n }\n if (type.flags & 1048576 /* Union */) {\n return mapType(\n type,\n getLowerBoundOfKeyType,\n /*noReductions*/\n true\n );\n }\n if (type.flags & 2097152 /* Intersection */) {\n const types = type.types;\n if (types.length === 2 && !!(types[0].flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) && types[1] === emptyTypeLiteralType) {\n return type;\n }\n return getIntersectionType(sameMap(type.types, getLowerBoundOfKeyType));\n }\n return type;\n }\n function getIsLateCheckFlag(s) {\n return getCheckFlags(s) & 4096 /* Late */;\n }\n function forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(type, include, stringsOnly, cb) {\n for (const prop of getPropertiesOfType(type)) {\n cb(getLiteralTypeFromProperty(prop, include));\n }\n if (type.flags & 1 /* Any */) {\n cb(stringType);\n } else {\n for (const info of getIndexInfosOfType(type)) {\n if (!stringsOnly || info.keyType.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n cb(info.keyType);\n }\n }\n }\n }\n function resolveMappedTypeMembers(type) {\n const members = createSymbolTable();\n let indexInfos;\n setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n const typeParameter = getTypeParameterFromMappedType(type);\n const constraintType = getConstraintTypeFromMappedType(type);\n const mappedType = type.target || type;\n const nameType = getNameTypeFromMappedType(mappedType);\n const shouldLinkPropDeclarations = getMappedTypeNameTypeKind(mappedType) !== 2 /* Remapping */;\n const templateType = getTemplateTypeFromMappedType(mappedType);\n const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));\n const templateModifiers = getMappedTypeModifiers(type);\n const include = 8576 /* StringOrNumberLiteralOrUnique */;\n if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(\n modifiersType,\n include,\n /*stringsOnly*/\n false,\n addMemberForKeyType\n );\n } else {\n forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType);\n }\n setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray);\n function addMemberForKeyType(keyType) {\n const propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType;\n forEachType(propNameType, (t) => addMemberForKeyTypeWorker(keyType, t));\n }\n function addMemberForKeyTypeWorker(keyType, propNameType) {\n if (isTypeUsableAsPropertyName(propNameType)) {\n const propName = getPropertyNameFromType(propNameType);\n const existingProp = members.get(propName);\n if (existingProp) {\n existingProp.links.nameType = getUnionType([existingProp.links.nameType, propNameType]);\n existingProp.links.keyType = getUnionType([existingProp.links.keyType, keyType]);\n } else {\n const modifiersProp = isTypeUsableAsPropertyName(keyType) ? getPropertyOfType(modifiersType, getPropertyNameFromType(keyType)) : void 0;\n const isOptional = !!(templateModifiers & 4 /* IncludeOptional */ || !(templateModifiers & 8 /* ExcludeOptional */) && modifiersProp && modifiersProp.flags & 16777216 /* Optional */);\n const isReadonly = !!(templateModifiers & 1 /* IncludeReadonly */ || !(templateModifiers & 2 /* ExcludeReadonly */) && modifiersProp && isReadonlySymbol(modifiersProp));\n const stripOptional = strictNullChecks && !isOptional && modifiersProp && modifiersProp.flags & 16777216 /* Optional */;\n const lateFlag = modifiersProp ? getIsLateCheckFlag(modifiersProp) : 0;\n const prop = createSymbol(4 /* Property */ | (isOptional ? 16777216 /* Optional */ : 0), propName, lateFlag | 262144 /* Mapped */ | (isReadonly ? 8 /* Readonly */ : 0) | (stripOptional ? 524288 /* StripOptional */ : 0));\n prop.links.mappedType = type;\n prop.links.nameType = propNameType;\n prop.links.keyType = keyType;\n if (modifiersProp) {\n prop.links.syntheticOrigin = modifiersProp;\n prop.declarations = shouldLinkPropDeclarations ? modifiersProp.declarations : void 0;\n }\n members.set(propName, prop);\n }\n } else if (isValidIndexKeyType(propNameType) || propNameType.flags & (1 /* Any */ | 32 /* Enum */)) {\n const indexKeyType = propNameType.flags & (1 /* Any */ | 4 /* String */) ? stringType : propNameType.flags & (8 /* Number */ | 32 /* Enum */) ? numberType : propNameType;\n const propType = instantiateType(templateType, appendTypeMapping(type.mapper, typeParameter, keyType));\n const modifiersIndexInfo = getApplicableIndexInfo(modifiersType, propNameType);\n const isReadonly = !!(templateModifiers & 1 /* IncludeReadonly */ || !(templateModifiers & 2 /* ExcludeReadonly */) && (modifiersIndexInfo == null ? void 0 : modifiersIndexInfo.isReadonly));\n const indexInfo = createIndexInfo(indexKeyType, propType, isReadonly);\n indexInfos = appendIndexInfo(\n indexInfos,\n indexInfo,\n /*union*/\n true\n );\n }\n }\n }\n function getTypeOfMappedSymbol(symbol) {\n var _a;\n if (!symbol.links.type) {\n const mappedType = symbol.links.mappedType;\n if (!pushTypeResolution(symbol, 0 /* Type */)) {\n mappedType.containsError = true;\n return errorType;\n }\n const templateType = getTemplateTypeFromMappedType(mappedType.target || mappedType);\n const mapper = appendTypeMapping(mappedType.mapper, getTypeParameterFromMappedType(mappedType), symbol.links.keyType);\n const propType = instantiateType(templateType, mapper);\n let type = strictNullChecks && symbol.flags & 16777216 /* Optional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(\n propType,\n /*isProperty*/\n true\n ) : symbol.links.checkFlags & 524288 /* StripOptional */ ? removeMissingOrUndefinedType(propType) : propType;\n if (!popTypeResolution()) {\n error2(currentNode, Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1, symbolToString(symbol), typeToString(mappedType));\n type = errorType;\n }\n (_a = symbol.links).type ?? (_a.type = type);\n }\n return symbol.links.type;\n }\n function getTypeParameterFromMappedType(type) {\n return type.typeParameter || (type.typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(type.declaration.typeParameter)));\n }\n function getConstraintTypeFromMappedType(type) {\n return type.constraintType || (type.constraintType = getConstraintOfTypeParameter(getTypeParameterFromMappedType(type)) || errorType);\n }\n function getNameTypeFromMappedType(type) {\n return type.declaration.nameType ? type.nameType || (type.nameType = instantiateType(getTypeFromTypeNode(type.declaration.nameType), type.mapper)) : void 0;\n }\n function getTemplateTypeFromMappedType(type) {\n return type.templateType || (type.templateType = type.declaration.type ? instantiateType(addOptionality(\n getTypeFromTypeNode(type.declaration.type),\n /*isProperty*/\n true,\n !!(getMappedTypeModifiers(type) & 4 /* IncludeOptional */)\n ), type.mapper) : errorType);\n }\n function getConstraintDeclarationForMappedType(type) {\n return getEffectiveConstraintOfTypeParameter(type.declaration.typeParameter);\n }\n function isMappedTypeWithKeyofConstraintDeclaration(type) {\n const constraintDeclaration = getConstraintDeclarationForMappedType(type);\n return constraintDeclaration.kind === 199 /* TypeOperator */ && constraintDeclaration.operator === 143 /* KeyOfKeyword */;\n }\n function getModifiersTypeFromMappedType(type) {\n if (!type.modifiersType) {\n if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n type.modifiersType = instantiateType(getTypeFromTypeNode(getConstraintDeclarationForMappedType(type).type), type.mapper);\n } else {\n const declaredType = getTypeFromMappedTypeNode(type.declaration);\n const constraint = getConstraintTypeFromMappedType(declaredType);\n const extendedConstraint = constraint && constraint.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(constraint) : constraint;\n type.modifiersType = extendedConstraint && extendedConstraint.flags & 4194304 /* Index */ ? instantiateType(extendedConstraint.type, type.mapper) : unknownType;\n }\n }\n return type.modifiersType;\n }\n function getMappedTypeModifiers(type) {\n const declaration = type.declaration;\n return (declaration.readonlyToken ? declaration.readonlyToken.kind === 41 /* MinusToken */ ? 2 /* ExcludeReadonly */ : 1 /* IncludeReadonly */ : 0) | (declaration.questionToken ? declaration.questionToken.kind === 41 /* MinusToken */ ? 8 /* ExcludeOptional */ : 4 /* IncludeOptional */ : 0);\n }\n function getMappedTypeOptionality(type) {\n const modifiers = getMappedTypeModifiers(type);\n return modifiers & 8 /* ExcludeOptional */ ? -1 : modifiers & 4 /* IncludeOptional */ ? 1 : 0;\n }\n function getCombinedMappedTypeOptionality(type) {\n if (getObjectFlags(type) & 32 /* Mapped */) {\n return getMappedTypeOptionality(type) || getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(type));\n }\n if (type.flags & 2097152 /* Intersection */) {\n const optionality = getCombinedMappedTypeOptionality(type.types[0]);\n return every(type.types, (t, i) => i === 0 || getCombinedMappedTypeOptionality(t) === optionality) ? optionality : 0;\n }\n return 0;\n }\n function isPartialMappedType(type) {\n return !!(getObjectFlags(type) & 32 /* Mapped */ && getMappedTypeModifiers(type) & 4 /* IncludeOptional */);\n }\n function isGenericMappedType(type) {\n if (getObjectFlags(type) & 32 /* Mapped */) {\n const constraint = getConstraintTypeFromMappedType(type);\n if (isGenericIndexType(constraint)) {\n return true;\n }\n const nameType = getNameTypeFromMappedType(type);\n if (nameType && isGenericIndexType(instantiateType(nameType, makeUnaryTypeMapper(getTypeParameterFromMappedType(type), constraint)))) {\n return true;\n }\n }\n return false;\n }\n function getMappedTypeNameTypeKind(type) {\n const nameType = getNameTypeFromMappedType(type);\n if (!nameType) {\n return 0 /* None */;\n }\n return isTypeAssignableTo(nameType, getTypeParameterFromMappedType(type)) ? 1 /* Filtering */ : 2 /* Remapping */;\n }\n function resolveStructuredTypeMembers(type) {\n if (!type.members) {\n if (type.flags & 524288 /* Object */) {\n if (type.objectFlags & 4 /* Reference */) {\n resolveTypeReferenceMembers(type);\n } else if (type.objectFlags & 3 /* ClassOrInterface */) {\n resolveClassOrInterfaceMembers(type);\n } else if (type.objectFlags & 1024 /* ReverseMapped */) {\n resolveReverseMappedTypeMembers(type);\n } else if (type.objectFlags & 16 /* Anonymous */) {\n resolveAnonymousTypeMembers(type);\n } else if (type.objectFlags & 32 /* Mapped */) {\n resolveMappedTypeMembers(type);\n } else {\n Debug.fail(\"Unhandled object type \" + Debug.formatObjectFlags(type.objectFlags));\n }\n } else if (type.flags & 1048576 /* Union */) {\n resolveUnionTypeMembers(type);\n } else if (type.flags & 2097152 /* Intersection */) {\n resolveIntersectionTypeMembers(type);\n } else {\n Debug.fail(\"Unhandled type \" + Debug.formatTypeFlags(type.flags));\n }\n }\n return type;\n }\n function getPropertiesOfObjectType(type) {\n if (type.flags & 524288 /* Object */) {\n return resolveStructuredTypeMembers(type).properties;\n }\n return emptyArray;\n }\n function getPropertyOfObjectType(type, name) {\n if (type.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type);\n const symbol = resolved.members.get(name);\n if (symbol && symbolIsValue(symbol)) {\n return symbol;\n }\n }\n }\n function getPropertiesOfUnionOrIntersectionType(type) {\n if (!type.resolvedProperties) {\n const members = createSymbolTable();\n for (const current of type.types) {\n for (const prop of getPropertiesOfType(current)) {\n if (!members.has(prop.escapedName)) {\n const combinedProp = getPropertyOfUnionOrIntersectionType(\n type,\n prop.escapedName,\n /*skipObjectFunctionPropertyAugment*/\n !!(type.flags & 2097152 /* Intersection */)\n );\n if (combinedProp) {\n members.set(prop.escapedName, combinedProp);\n }\n }\n }\n if (type.flags & 1048576 /* Union */ && getIndexInfosOfType(current).length === 0) {\n break;\n }\n }\n type.resolvedProperties = getNamedMembers(members);\n }\n return type.resolvedProperties;\n }\n function getPropertiesOfType(type) {\n type = getReducedApparentType(type);\n return type.flags & 3145728 /* UnionOrIntersection */ ? getPropertiesOfUnionOrIntersectionType(type) : getPropertiesOfObjectType(type);\n }\n function forEachPropertyOfType(type, action) {\n type = getReducedApparentType(type);\n if (type.flags & 3670016 /* StructuredType */) {\n resolveStructuredTypeMembers(type).members.forEach((symbol, escapedName) => {\n if (isNamedMember(symbol, escapedName)) {\n action(symbol, escapedName);\n }\n });\n }\n }\n function isTypeInvalidDueToUnionDiscriminant(contextualType, obj) {\n const list = obj.properties;\n return list.some((property) => {\n const nameType = property.name && (isJsxNamespacedName(property.name) ? getStringLiteralType(getTextOfJsxAttributeName(property.name)) : getLiteralTypeFromPropertyName(property.name));\n const name = nameType && isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0;\n const expected = name === void 0 ? void 0 : getTypeOfPropertyOfType(contextualType, name);\n return !!expected && isLiteralType(expected) && !isTypeAssignableTo(getTypeOfNode(property), expected);\n });\n }\n function getAllPossiblePropertiesOfTypes(types) {\n const unionType = getUnionType(types);\n if (!(unionType.flags & 1048576 /* Union */)) {\n return getAugmentedPropertiesOfType(unionType);\n }\n const props = createSymbolTable();\n for (const memberType of types) {\n for (const { escapedName } of getAugmentedPropertiesOfType(memberType)) {\n if (!props.has(escapedName)) {\n const prop = createUnionOrIntersectionProperty(unionType, escapedName);\n if (prop) props.set(escapedName, prop);\n }\n }\n }\n return arrayFrom(props.values());\n }\n function getConstraintOfType(type) {\n return type.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(type) : type.flags & 8388608 /* IndexedAccess */ ? getConstraintOfIndexedAccess(type) : type.flags & 16777216 /* Conditional */ ? getConstraintOfConditionalType(type) : getBaseConstraintOfType(type);\n }\n function getConstraintOfTypeParameter(typeParameter) {\n return hasNonCircularBaseConstraint(typeParameter) ? getConstraintFromTypeParameter(typeParameter) : void 0;\n }\n function isConstMappedType(type, depth) {\n const typeVariable = getHomomorphicTypeVariable(type);\n return !!typeVariable && isConstTypeVariable(typeVariable, depth);\n }\n function isConstTypeVariable(type, depth = 0) {\n var _a;\n return depth < 5 && !!(type && (type.flags & 262144 /* TypeParameter */ && some((_a = type.symbol) == null ? void 0 : _a.declarations, (d) => hasSyntacticModifier(d, 4096 /* Const */)) || type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, (t) => isConstTypeVariable(t, depth)) || type.flags & 8388608 /* IndexedAccess */ && isConstTypeVariable(type.objectType, depth + 1) || type.flags & 16777216 /* Conditional */ && isConstTypeVariable(getConstraintOfConditionalType(type), depth + 1) || type.flags & 33554432 /* Substitution */ && isConstTypeVariable(type.baseType, depth) || getObjectFlags(type) & 32 /* Mapped */ && isConstMappedType(type, depth) || isGenericTupleType(type) && findIndex(getElementTypes(type), (t, i) => !!(type.target.elementFlags[i] & 8 /* Variadic */) && isConstTypeVariable(t, depth)) >= 0));\n }\n function getConstraintOfIndexedAccess(type) {\n return hasNonCircularBaseConstraint(type) ? getConstraintFromIndexedAccess(type) : void 0;\n }\n function getSimplifiedTypeOrConstraint(type) {\n const simplified = getSimplifiedType(\n type,\n /*writing*/\n false\n );\n return simplified !== type ? simplified : getConstraintOfType(type);\n }\n function getConstraintFromIndexedAccess(type) {\n if (isMappedTypeGenericIndexedAccess(type)) {\n return substituteIndexedMappedType(type.objectType, type.indexType);\n }\n const indexConstraint = getSimplifiedTypeOrConstraint(type.indexType);\n if (indexConstraint && indexConstraint !== type.indexType) {\n const indexedAccess = getIndexedAccessTypeOrUndefined(type.objectType, indexConstraint, type.accessFlags);\n if (indexedAccess) {\n return indexedAccess;\n }\n }\n const objectConstraint = getSimplifiedTypeOrConstraint(type.objectType);\n if (objectConstraint && objectConstraint !== type.objectType) {\n return getIndexedAccessTypeOrUndefined(objectConstraint, type.indexType, type.accessFlags);\n }\n return void 0;\n }\n function getDefaultConstraintOfConditionalType(type) {\n if (!type.resolvedDefaultConstraint) {\n const trueConstraint = getInferredTrueTypeFromConditionalType(type);\n const falseConstraint = getFalseTypeFromConditionalType(type);\n type.resolvedDefaultConstraint = isTypeAny(trueConstraint) ? falseConstraint : isTypeAny(falseConstraint) ? trueConstraint : getUnionType([trueConstraint, falseConstraint]);\n }\n return type.resolvedDefaultConstraint;\n }\n function getConstraintOfDistributiveConditionalType(type) {\n if (type.resolvedConstraintOfDistributive !== void 0) {\n return type.resolvedConstraintOfDistributive || void 0;\n }\n if (type.root.isDistributive && type.restrictiveInstantiation !== type) {\n const simplified = getSimplifiedType(\n type.checkType,\n /*writing*/\n false\n );\n const constraint = simplified === type.checkType ? getConstraintOfType(simplified) : simplified;\n if (constraint && constraint !== type.checkType) {\n const instantiated = getConditionalTypeInstantiation(\n type,\n prependTypeMapping(type.root.checkType, constraint, type.mapper),\n /*forConstraint*/\n true\n );\n if (!(instantiated.flags & 131072 /* Never */)) {\n type.resolvedConstraintOfDistributive = instantiated;\n return instantiated;\n }\n }\n }\n type.resolvedConstraintOfDistributive = false;\n return void 0;\n }\n function getConstraintFromConditionalType(type) {\n return getConstraintOfDistributiveConditionalType(type) || getDefaultConstraintOfConditionalType(type);\n }\n function getConstraintOfConditionalType(type) {\n return hasNonCircularBaseConstraint(type) ? getConstraintFromConditionalType(type) : void 0;\n }\n function getEffectiveConstraintOfIntersection(types, targetIsUnion) {\n let constraints;\n let hasDisjointDomainType = false;\n for (const t of types) {\n if (t.flags & 465829888 /* Instantiable */) {\n let constraint = getConstraintOfType(t);\n while (constraint && constraint.flags & (262144 /* TypeParameter */ | 4194304 /* Index */ | 16777216 /* Conditional */)) {\n constraint = getConstraintOfType(constraint);\n }\n if (constraint) {\n constraints = append(constraints, constraint);\n if (targetIsUnion) {\n constraints = append(constraints, t);\n }\n }\n } else if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) {\n hasDisjointDomainType = true;\n }\n }\n if (constraints && (targetIsUnion || hasDisjointDomainType)) {\n if (hasDisjointDomainType) {\n for (const t of types) {\n if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) {\n constraints = append(constraints, t);\n }\n }\n }\n return getNormalizedType(\n getIntersectionType(constraints, 2 /* NoConstraintReduction */),\n /*writing*/\n false\n );\n }\n return void 0;\n }\n function getBaseConstraintOfType(type) {\n if (type.flags & (58982400 /* InstantiableNonPrimitive */ | 3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || isGenericTupleType(type)) {\n const constraint = getResolvedBaseConstraint(type);\n return constraint !== noConstraintType && constraint !== circularConstraintType ? constraint : void 0;\n }\n return type.flags & 4194304 /* Index */ ? stringNumberSymbolType : void 0;\n }\n function getBaseConstraintOrType(type) {\n return getBaseConstraintOfType(type) || type;\n }\n function hasNonCircularBaseConstraint(type) {\n return getResolvedBaseConstraint(type) !== circularConstraintType;\n }\n function getResolvedBaseConstraint(type) {\n if (type.resolvedBaseConstraint) {\n return type.resolvedBaseConstraint;\n }\n const stack = [];\n return type.resolvedBaseConstraint = getImmediateBaseConstraint(type);\n function getImmediateBaseConstraint(t) {\n if (!t.immediateBaseConstraint) {\n if (!pushTypeResolution(t, 4 /* ImmediateBaseConstraint */)) {\n return circularConstraintType;\n }\n let result;\n const identity2 = getRecursionIdentity(t);\n if (stack.length < 10 || stack.length < 50 && !contains(stack, identity2)) {\n stack.push(identity2);\n result = computeBaseConstraint(getSimplifiedType(\n t,\n /*writing*/\n false\n ));\n stack.pop();\n }\n if (!popTypeResolution()) {\n if (t.flags & 262144 /* TypeParameter */) {\n const errorNode = getConstraintDeclaration(t);\n if (errorNode) {\n const diagnostic = error2(errorNode, Diagnostics.Type_parameter_0_has_a_circular_constraint, typeToString(t));\n if (currentNode && !isNodeDescendantOf(errorNode, currentNode) && !isNodeDescendantOf(currentNode, errorNode)) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(currentNode, Diagnostics.Circularity_originates_in_type_at_this_location));\n }\n }\n }\n result = circularConstraintType;\n }\n t.immediateBaseConstraint ?? (t.immediateBaseConstraint = result || noConstraintType);\n }\n return t.immediateBaseConstraint;\n }\n function getBaseConstraint(t) {\n const c = getImmediateBaseConstraint(t);\n return c !== noConstraintType && c !== circularConstraintType ? c : void 0;\n }\n function computeBaseConstraint(t) {\n if (t.flags & 262144 /* TypeParameter */) {\n const constraint = getConstraintFromTypeParameter(t);\n return t.isThisType || !constraint ? constraint : getBaseConstraint(constraint);\n }\n if (t.flags & 3145728 /* UnionOrIntersection */) {\n const types = t.types;\n const baseTypes = [];\n let different = false;\n for (const type2 of types) {\n const baseType = getBaseConstraint(type2);\n if (baseType) {\n if (baseType !== type2) {\n different = true;\n }\n baseTypes.push(baseType);\n } else {\n different = true;\n }\n }\n if (!different) {\n return t;\n }\n return t.flags & 1048576 /* Union */ && baseTypes.length === types.length ? getUnionType(baseTypes) : t.flags & 2097152 /* Intersection */ && baseTypes.length ? getIntersectionType(baseTypes) : void 0;\n }\n if (t.flags & 4194304 /* Index */) {\n return stringNumberSymbolType;\n }\n if (t.flags & 134217728 /* TemplateLiteral */) {\n const types = t.types;\n const constraints = mapDefined(types, getBaseConstraint);\n return constraints.length === types.length ? getTemplateLiteralType(t.texts, constraints) : stringType;\n }\n if (t.flags & 268435456 /* StringMapping */) {\n const constraint = getBaseConstraint(t.type);\n return constraint && constraint !== t.type ? getStringMappingType(t.symbol, constraint) : stringType;\n }\n if (t.flags & 8388608 /* IndexedAccess */) {\n if (isMappedTypeGenericIndexedAccess(t)) {\n return getBaseConstraint(substituteIndexedMappedType(t.objectType, t.indexType));\n }\n const baseObjectType = getBaseConstraint(t.objectType);\n const baseIndexType = getBaseConstraint(t.indexType);\n const baseIndexedAccess = baseObjectType && baseIndexType && getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, t.accessFlags);\n return baseIndexedAccess && getBaseConstraint(baseIndexedAccess);\n }\n if (t.flags & 16777216 /* Conditional */) {\n const constraint = getConstraintFromConditionalType(t);\n return constraint && getBaseConstraint(constraint);\n }\n if (t.flags & 33554432 /* Substitution */) {\n return getBaseConstraint(getSubstitutionIntersection(t));\n }\n if (isGenericTupleType(t)) {\n const newElements = map(getElementTypes(t), (v, i) => {\n const constraint = v.flags & 262144 /* TypeParameter */ && t.target.elementFlags[i] & 8 /* Variadic */ && getBaseConstraint(v) || v;\n return constraint !== v && everyType(constraint, (c) => isArrayOrTupleType(c) && !isGenericTupleType(c)) ? constraint : v;\n });\n return createTupleType(newElements, t.target.elementFlags, t.target.readonly, t.target.labeledElementDeclarations);\n }\n return t;\n }\n }\n function getApparentTypeOfIntersectionType(type, thisArgument) {\n if (type === thisArgument) {\n return type.resolvedApparentType || (type.resolvedApparentType = getTypeWithThisArgument(\n type,\n thisArgument,\n /*needApparentType*/\n true\n ));\n }\n const key = `I${getTypeId(type)},${getTypeId(thisArgument)}`;\n return getCachedType(key) ?? setCachedType(key, getTypeWithThisArgument(\n type,\n thisArgument,\n /*needApparentType*/\n true\n ));\n }\n function getResolvedTypeParameterDefault(typeParameter) {\n if (!typeParameter.default) {\n if (typeParameter.target) {\n const targetDefault = getResolvedTypeParameterDefault(typeParameter.target);\n typeParameter.default = targetDefault ? instantiateType(targetDefault, typeParameter.mapper) : noConstraintType;\n } else {\n typeParameter.default = resolvingDefaultType;\n const defaultDeclaration = typeParameter.symbol && forEach(typeParameter.symbol.declarations, (decl) => isTypeParameterDeclaration(decl) && decl.default);\n const defaultType = defaultDeclaration ? getTypeFromTypeNode(defaultDeclaration) : noConstraintType;\n if (typeParameter.default === resolvingDefaultType) {\n typeParameter.default = defaultType;\n }\n }\n } else if (typeParameter.default === resolvingDefaultType) {\n typeParameter.default = circularConstraintType;\n }\n return typeParameter.default;\n }\n function getDefaultFromTypeParameter(typeParameter) {\n const defaultType = getResolvedTypeParameterDefault(typeParameter);\n return defaultType !== noConstraintType && defaultType !== circularConstraintType ? defaultType : void 0;\n }\n function hasNonCircularTypeParameterDefault(typeParameter) {\n return getResolvedTypeParameterDefault(typeParameter) !== circularConstraintType;\n }\n function hasTypeParameterDefault(typeParameter) {\n return !!(typeParameter.symbol && forEach(typeParameter.symbol.declarations, (decl) => isTypeParameterDeclaration(decl) && decl.default));\n }\n function getApparentTypeOfMappedType(type) {\n return type.resolvedApparentType || (type.resolvedApparentType = getResolvedApparentTypeOfMappedType(type));\n }\n function getResolvedApparentTypeOfMappedType(type) {\n const target = type.target ?? type;\n const typeVariable = getHomomorphicTypeVariable(target);\n if (typeVariable && !target.declaration.nameType) {\n const modifiersType = getModifiersTypeFromMappedType(type);\n const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType);\n if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) {\n return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));\n }\n }\n return type;\n }\n function isArrayOrTupleOrIntersection(type) {\n return !!(type.flags & 2097152 /* Intersection */) && every(type.types, isArrayOrTupleType);\n }\n function isMappedTypeGenericIndexedAccess(type) {\n let objectType;\n return !!(type.flags & 8388608 /* IndexedAccess */ && getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8 /* ExcludeOptional */) && !objectType.declaration.nameType);\n }\n function getApparentType(type) {\n const t = type.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(type) || unknownType : type;\n const objectFlags = getObjectFlags(t);\n return objectFlags & 32 /* Mapped */ ? getApparentTypeOfMappedType(t) : objectFlags & 4 /* Reference */ && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 2097152 /* Intersection */ ? getApparentTypeOfIntersectionType(t, type) : t.flags & 402653316 /* StringLike */ ? globalStringType : t.flags & 296 /* NumberLike */ ? globalNumberType : t.flags & 2112 /* BigIntLike */ ? getGlobalBigIntType() : t.flags & 528 /* BooleanLike */ ? globalBooleanType : t.flags & 12288 /* ESSymbolLike */ ? getGlobalESSymbolType() : t.flags & 67108864 /* NonPrimitive */ ? emptyObjectType : t.flags & 4194304 /* Index */ ? stringNumberSymbolType : t.flags & 2 /* Unknown */ && !strictNullChecks ? emptyObjectType : t;\n }\n function getReducedApparentType(type) {\n return getReducedType(getApparentType(getReducedType(type)));\n }\n function createUnionOrIntersectionProperty(containingType, name, skipObjectFunctionPropertyAugment) {\n var _a, _b, _c;\n let propFlags = 0 /* None */;\n let singleProp;\n let propSet;\n let indexTypes;\n const isUnion = containingType.flags & 1048576 /* Union */;\n let optionalFlag;\n let syntheticFlag = 4 /* SyntheticMethod */;\n let checkFlags = isUnion ? 0 : 8 /* Readonly */;\n let mergedInstantiations = false;\n for (const current of containingType.types) {\n const type = getApparentType(current);\n if (!(isErrorType(type) || type.flags & 131072 /* Never */)) {\n const prop = getPropertyOfType(type, name, skipObjectFunctionPropertyAugment);\n const modifiers = prop ? getDeclarationModifierFlagsFromSymbol(prop) : 0;\n if (prop) {\n if (prop.flags & 106500 /* ClassMember */) {\n optionalFlag ?? (optionalFlag = isUnion ? 0 /* None */ : 16777216 /* Optional */);\n if (isUnion) {\n optionalFlag |= prop.flags & 16777216 /* Optional */;\n } else {\n optionalFlag &= prop.flags;\n }\n }\n if (!singleProp) {\n singleProp = prop;\n propFlags = prop.flags & 98304 /* Accessor */ || 4 /* Property */;\n } else if (prop !== singleProp) {\n const isInstantiation = (getTargetSymbol(prop) || prop) === (getTargetSymbol(singleProp) || singleProp);\n if (isInstantiation && compareProperties2(singleProp, prop, (a, b) => a === b ? -1 /* True */ : 0 /* False */) === -1 /* True */) {\n mergedInstantiations = !!singleProp.parent && !!length(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(singleProp.parent));\n } else {\n if (!propSet) {\n propSet = /* @__PURE__ */ new Map();\n propSet.set(getSymbolId(singleProp), singleProp);\n }\n const id = getSymbolId(prop);\n if (!propSet.has(id)) {\n propSet.set(id, prop);\n }\n }\n if (propFlags & 98304 /* Accessor */ && (prop.flags & 98304 /* Accessor */) !== (propFlags & 98304 /* Accessor */)) {\n propFlags = propFlags & ~98304 /* Accessor */ | 4 /* Property */;\n }\n }\n if (isUnion && isReadonlySymbol(prop)) {\n checkFlags |= 8 /* Readonly */;\n } else if (!isUnion && !isReadonlySymbol(prop)) {\n checkFlags &= ~8 /* Readonly */;\n }\n checkFlags |= (!(modifiers & 6 /* NonPublicAccessibilityModifier */) ? 256 /* ContainsPublic */ : 0) | (modifiers & 4 /* Protected */ ? 512 /* ContainsProtected */ : 0) | (modifiers & 2 /* Private */ ? 1024 /* ContainsPrivate */ : 0) | (modifiers & 256 /* Static */ ? 2048 /* ContainsStatic */ : 0);\n if (!isPrototypeProperty(prop)) {\n syntheticFlag = 2 /* SyntheticProperty */;\n }\n } else if (isUnion) {\n const indexInfo = !isLateBoundName(name) && getApplicableIndexInfoForName(type, name);\n if (indexInfo) {\n propFlags = propFlags & ~98304 /* Accessor */ | 4 /* Property */;\n checkFlags |= 32 /* WritePartial */ | (indexInfo.isReadonly ? 8 /* Readonly */ : 0);\n indexTypes = append(indexTypes, isTupleType(type) ? getRestTypeOfTupleType(type) || undefinedType : indexInfo.type);\n } else if (isObjectLiteralType2(type) && !(getObjectFlags(type) & 2097152 /* ContainsSpread */)) {\n checkFlags |= 32 /* WritePartial */;\n indexTypes = append(indexTypes, undefinedType);\n } else {\n checkFlags |= 16 /* ReadPartial */;\n }\n }\n }\n }\n if (!singleProp || isUnion && (propSet || checkFlags & 48 /* Partial */) && checkFlags & (1024 /* ContainsPrivate */ | 512 /* ContainsProtected */) && !(propSet && getCommonDeclarationsOfSymbols(propSet.values()))) {\n return void 0;\n }\n if (!propSet && !(checkFlags & 16 /* ReadPartial */) && !indexTypes) {\n if (mergedInstantiations) {\n const links = (_a = tryCast(singleProp, isTransientSymbol)) == null ? void 0 : _a.links;\n const clone2 = createSymbolWithType(singleProp, links == null ? void 0 : links.type);\n clone2.parent = (_c = (_b = singleProp.valueDeclaration) == null ? void 0 : _b.symbol) == null ? void 0 : _c.parent;\n clone2.links.containingType = containingType;\n clone2.links.mapper = links == null ? void 0 : links.mapper;\n clone2.links.writeType = getWriteTypeOfSymbol(singleProp);\n return clone2;\n } else {\n return singleProp;\n }\n }\n const props = propSet ? arrayFrom(propSet.values()) : [singleProp];\n let declarations;\n let firstType;\n let nameType;\n const propTypes = [];\n let writeTypes;\n let firstValueDeclaration;\n let hasNonUniformValueDeclaration = false;\n for (const prop of props) {\n if (!firstValueDeclaration) {\n firstValueDeclaration = prop.valueDeclaration;\n } else if (prop.valueDeclaration && prop.valueDeclaration !== firstValueDeclaration) {\n hasNonUniformValueDeclaration = true;\n }\n declarations = addRange(declarations, prop.declarations);\n const type = getTypeOfSymbol(prop);\n if (!firstType) {\n firstType = type;\n nameType = getSymbolLinks(prop).nameType;\n }\n const writeType = getWriteTypeOfSymbol(prop);\n if (writeTypes || writeType !== type) {\n writeTypes = append(!writeTypes ? propTypes.slice() : writeTypes, writeType);\n }\n if (type !== firstType) {\n checkFlags |= 64 /* HasNonUniformType */;\n }\n if (isLiteralType(type) || isPatternLiteralType(type)) {\n checkFlags |= 128 /* HasLiteralType */;\n }\n if (type.flags & 131072 /* Never */ && type !== uniqueLiteralType) {\n checkFlags |= 131072 /* HasNeverType */;\n }\n propTypes.push(type);\n }\n addRange(propTypes, indexTypes);\n const result = createSymbol(propFlags | (optionalFlag ?? 0), name, syntheticFlag | checkFlags);\n result.links.containingType = containingType;\n if (!hasNonUniformValueDeclaration && firstValueDeclaration) {\n result.valueDeclaration = firstValueDeclaration;\n if (firstValueDeclaration.symbol.parent) {\n result.parent = firstValueDeclaration.symbol.parent;\n }\n }\n result.declarations = declarations;\n result.links.nameType = nameType;\n if (propTypes.length > 2) {\n result.links.checkFlags |= 65536 /* DeferredType */;\n result.links.deferralParent = containingType;\n result.links.deferralConstituents = propTypes;\n result.links.deferralWriteConstituents = writeTypes;\n } else {\n result.links.type = isUnion ? getUnionType(propTypes) : getIntersectionType(propTypes);\n if (writeTypes) {\n result.links.writeType = isUnion ? getUnionType(writeTypes) : getIntersectionType(writeTypes);\n }\n }\n return result;\n }\n function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) {\n var _a, _b, _c;\n let property = skipObjectFunctionPropertyAugment ? (_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name) : (_b = type.propertyCache) == null ? void 0 : _b.get(name);\n if (!property) {\n property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment);\n if (property) {\n const properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable());\n properties.set(name, property);\n if (skipObjectFunctionPropertyAugment && !(getCheckFlags(property) & 48 /* Partial */) && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) {\n const properties2 = type.propertyCache || (type.propertyCache = createSymbolTable());\n properties2.set(name, property);\n }\n }\n }\n return property;\n }\n function getCommonDeclarationsOfSymbols(symbols) {\n let commonDeclarations;\n for (const symbol of symbols) {\n if (!symbol.declarations) {\n return void 0;\n }\n if (!commonDeclarations) {\n commonDeclarations = new Set(symbol.declarations);\n continue;\n }\n commonDeclarations.forEach((declaration) => {\n if (!contains(symbol.declarations, declaration)) {\n commonDeclarations.delete(declaration);\n }\n });\n if (commonDeclarations.size === 0) {\n return void 0;\n }\n }\n return commonDeclarations;\n }\n function getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment) {\n const property = getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment);\n return property && !(getCheckFlags(property) & 16 /* ReadPartial */) ? property : void 0;\n }\n function getReducedType(type) {\n if (type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */) {\n return type.resolvedReducedType || (type.resolvedReducedType = getReducedUnionType(type));\n } else if (type.flags & 2097152 /* Intersection */) {\n if (!(type.objectFlags & 16777216 /* IsNeverIntersectionComputed */)) {\n type.objectFlags |= 16777216 /* IsNeverIntersectionComputed */ | (some(getPropertiesOfUnionOrIntersectionType(type), isNeverReducedProperty) ? 33554432 /* IsNeverIntersection */ : 0);\n }\n return type.objectFlags & 33554432 /* IsNeverIntersection */ ? neverType : type;\n }\n return type;\n }\n function getReducedUnionType(unionType) {\n const reducedTypes = sameMap(unionType.types, getReducedType);\n if (reducedTypes === unionType.types) {\n return unionType;\n }\n const reduced = getUnionType(reducedTypes);\n if (reduced.flags & 1048576 /* Union */) {\n reduced.resolvedReducedType = reduced;\n }\n return reduced;\n }\n function isNeverReducedProperty(prop) {\n return isDiscriminantWithNeverType(prop) || isConflictingPrivateProperty(prop);\n }\n function isDiscriminantWithNeverType(prop) {\n return !(prop.flags & 16777216 /* Optional */) && (getCheckFlags(prop) & (192 /* Discriminant */ | 131072 /* HasNeverType */)) === 192 /* Discriminant */ && !!(getTypeOfSymbol(prop).flags & 131072 /* Never */);\n }\n function isConflictingPrivateProperty(prop) {\n return !prop.valueDeclaration && !!(getCheckFlags(prop) & 1024 /* ContainsPrivate */);\n }\n function isGenericReducibleType(type) {\n return !!(type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */ && some(type.types, isGenericReducibleType) || type.flags & 2097152 /* Intersection */ && isReducibleIntersection(type));\n }\n function isReducibleIntersection(type) {\n const uniqueFilled = type.uniqueLiteralFilledInstantiation || (type.uniqueLiteralFilledInstantiation = instantiateType(type, uniqueLiteralMapper));\n return getReducedType(uniqueFilled) !== uniqueFilled;\n }\n function elaborateNeverIntersection(errorInfo, type) {\n if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 33554432 /* IsNeverIntersection */) {\n const neverProp = find(getPropertiesOfUnionOrIntersectionType(type), isDiscriminantWithNeverType);\n if (neverProp) {\n return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 536870912 /* NoTypeReduction */\n ), symbolToString(neverProp));\n }\n const privateProp = find(getPropertiesOfUnionOrIntersectionType(type), isConflictingPrivateProperty);\n if (privateProp) {\n return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some, typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 536870912 /* NoTypeReduction */\n ), symbolToString(privateProp));\n }\n }\n return errorInfo;\n }\n function getPropertyOfType(type, name, skipObjectFunctionPropertyAugment, includeTypeOnlyMembers) {\n var _a, _b;\n type = getReducedApparentType(type);\n if (type.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type);\n const symbol = resolved.members.get(name);\n if (symbol && !includeTypeOnlyMembers && ((_a = type.symbol) == null ? void 0 : _a.flags) & 512 /* ValueModule */ && ((_b = getSymbolLinks(type.symbol).typeOnlyExportStarMap) == null ? void 0 : _b.has(name))) {\n return void 0;\n }\n if (symbol && symbolIsValue(symbol, includeTypeOnlyMembers)) {\n return symbol;\n }\n if (skipObjectFunctionPropertyAugment) return void 0;\n const functionType = resolved === anyFunctionType ? globalFunctionType : resolved.callSignatures.length ? globalCallableFunctionType : resolved.constructSignatures.length ? globalNewableFunctionType : void 0;\n if (functionType) {\n const symbol2 = getPropertyOfObjectType(functionType, name);\n if (symbol2) {\n return symbol2;\n }\n }\n return getPropertyOfObjectType(globalObjectType, name);\n }\n if (type.flags & 2097152 /* Intersection */) {\n const prop = getPropertyOfUnionOrIntersectionType(\n type,\n name,\n /*skipObjectFunctionPropertyAugment*/\n true\n );\n if (prop) {\n return prop;\n }\n if (!skipObjectFunctionPropertyAugment) {\n return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment);\n }\n return void 0;\n }\n if (type.flags & 1048576 /* Union */) {\n return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment);\n }\n return void 0;\n }\n function getSignaturesOfStructuredType(type, kind) {\n if (type.flags & 3670016 /* StructuredType */) {\n const resolved = resolveStructuredTypeMembers(type);\n return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures;\n }\n return emptyArray;\n }\n function getSignaturesOfType(type, kind) {\n const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);\n if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {\n if (type.arrayFallbackSignatures) {\n return type.arrayFallbackSignatures;\n }\n let memberName;\n if (everyType(type, (t) => {\n var _a;\n return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);\n })) {\n const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));\n const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));\n return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);\n }\n type.arrayFallbackSignatures = result;\n }\n return result;\n }\n function isArrayOrTupleSymbol(symbol) {\n if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {\n return false;\n }\n return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);\n }\n function isReadonlyArraySymbol(symbol) {\n if (!symbol || !globalReadonlyArrayType.symbol) {\n return false;\n }\n return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);\n }\n function findIndexInfo(indexInfos, keyType) {\n return find(indexInfos, (info) => info.keyType === keyType);\n }\n function findApplicableIndexInfo(indexInfos, keyType) {\n let stringIndexInfo;\n let applicableInfo;\n let applicableInfos;\n for (const info of indexInfos) {\n if (info.keyType === stringType) {\n stringIndexInfo = info;\n } else if (isApplicableIndexType(keyType, info.keyType)) {\n if (!applicableInfo) {\n applicableInfo = info;\n } else {\n (applicableInfos || (applicableInfos = [applicableInfo])).push(info);\n }\n }\n }\n return applicableInfos ? createIndexInfo(unknownType, getIntersectionType(map(applicableInfos, (info) => info.type)), reduceLeft(\n applicableInfos,\n (isReadonly, info) => isReadonly && info.isReadonly,\n /*initial*/\n true\n )) : applicableInfo ? applicableInfo : stringIndexInfo && isApplicableIndexType(keyType, stringType) ? stringIndexInfo : void 0;\n }\n function isApplicableIndexType(source, target) {\n return isTypeAssignableTo(source, target) || target === stringType && isTypeAssignableTo(source, numberType) || target === numberType && (source === numericStringType || !!(source.flags & 128 /* StringLiteral */) && isNumericLiteralName(source.value));\n }\n function getIndexInfosOfStructuredType(type) {\n if (type.flags & 3670016 /* StructuredType */) {\n const resolved = resolveStructuredTypeMembers(type);\n return resolved.indexInfos;\n }\n return emptyArray;\n }\n function getIndexInfosOfType(type) {\n return getIndexInfosOfStructuredType(getReducedApparentType(type));\n }\n function getIndexInfoOfType(type, keyType) {\n return findIndexInfo(getIndexInfosOfType(type), keyType);\n }\n function getIndexTypeOfType(type, keyType) {\n var _a;\n return (_a = getIndexInfoOfType(type, keyType)) == null ? void 0 : _a.type;\n }\n function getApplicableIndexInfos(type, keyType) {\n return getIndexInfosOfType(type).filter((info) => isApplicableIndexType(keyType, info.keyType));\n }\n function getApplicableIndexInfo(type, keyType) {\n return findApplicableIndexInfo(getIndexInfosOfType(type), keyType);\n }\n function getApplicableIndexInfoForName(type, name) {\n return getApplicableIndexInfo(type, isLateBoundName(name) ? esSymbolType : getStringLiteralType(unescapeLeadingUnderscores(name)));\n }\n function getTypeParametersFromDeclaration(declaration) {\n var _a;\n let result;\n for (const node of getEffectiveTypeParameterDeclarations(declaration)) {\n result = appendIfUnique(result, getDeclaredTypeOfTypeParameter(node.symbol));\n }\n return (result == null ? void 0 : result.length) ? result : isFunctionDeclaration(declaration) ? (_a = getSignatureOfTypeTag(declaration)) == null ? void 0 : _a.typeParameters : void 0;\n }\n function symbolsToArray(symbols) {\n const result = [];\n symbols.forEach((symbol, id) => {\n if (!isReservedMemberName(id)) {\n result.push(symbol);\n }\n });\n return result;\n }\n function tryFindAmbientModule(moduleName, withAugmentations) {\n if (isExternalModuleNameRelative(moduleName)) {\n return void 0;\n }\n const symbol = getSymbol2(globals, '\"' + moduleName + '\"', 512 /* ValueModule */);\n return symbol && withAugmentations ? getMergedSymbol(symbol) : symbol;\n }\n function hasEffectiveQuestionToken(node) {\n return hasQuestionToken(node) || isOptionalJSDocPropertyLikeTag(node) || isParameter(node) && isJSDocOptionalParameter(node);\n }\n function isOptionalParameter(node) {\n if (hasEffectiveQuestionToken(node)) {\n return true;\n }\n if (!isParameter(node)) {\n return false;\n }\n if (node.initializer) {\n const signature = getSignatureFromDeclaration(node.parent);\n const parameterIndex = node.parent.parameters.indexOf(node);\n Debug.assert(parameterIndex >= 0);\n return parameterIndex >= getMinArgumentCount(signature, 1 /* StrongArityForUntypedJS */ | 2 /* VoidIsNonOptional */);\n }\n const iife = getImmediatelyInvokedFunctionExpression(node.parent);\n if (iife) {\n return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= getEffectiveCallArguments(iife).length;\n }\n return false;\n }\n function isOptionalPropertyDeclaration(node) {\n return isPropertyDeclaration(node) && !hasAccessorModifier(node) && node.questionToken;\n }\n function createTypePredicate(kind, parameterName, parameterIndex, type) {\n return { kind, parameterName, parameterIndex, type };\n }\n function getMinTypeArgumentCount(typeParameters) {\n let minTypeArgumentCount = 0;\n if (typeParameters) {\n for (let i = 0; i < typeParameters.length; i++) {\n if (!hasTypeParameterDefault(typeParameters[i])) {\n minTypeArgumentCount = i + 1;\n }\n }\n }\n return minTypeArgumentCount;\n }\n function fillMissingTypeArguments(typeArguments, typeParameters, minTypeArgumentCount, isJavaScriptImplicitAny) {\n const numTypeParameters = length(typeParameters);\n if (!numTypeParameters) {\n return [];\n }\n const numTypeArguments = length(typeArguments);\n if (isJavaScriptImplicitAny || numTypeArguments >= minTypeArgumentCount && numTypeArguments <= numTypeParameters) {\n const result = typeArguments ? typeArguments.slice() : [];\n for (let i = numTypeArguments; i < numTypeParameters; i++) {\n result[i] = errorType;\n }\n const baseDefaultType = getDefaultTypeArgumentType(isJavaScriptImplicitAny);\n for (let i = numTypeArguments; i < numTypeParameters; i++) {\n let defaultType = getDefaultFromTypeParameter(typeParameters[i]);\n if (isJavaScriptImplicitAny && defaultType && (isTypeIdenticalTo(defaultType, unknownType) || isTypeIdenticalTo(defaultType, emptyObjectType))) {\n defaultType = anyType;\n }\n result[i] = defaultType ? instantiateType(defaultType, createTypeMapper(typeParameters, result)) : baseDefaultType;\n }\n result.length = typeParameters.length;\n return result;\n }\n return typeArguments && typeArguments.slice();\n }\n function getSignatureFromDeclaration(declaration) {\n const links = getNodeLinks(declaration);\n if (!links.resolvedSignature) {\n const parameters = [];\n let flags = 0 /* None */;\n let minArgumentCount = 0;\n let thisParameter;\n let thisTag = isInJSFile(declaration) ? getJSDocThisTag(declaration) : void 0;\n let hasThisParameter2 = false;\n const iife = getImmediatelyInvokedFunctionExpression(declaration);\n const isJSConstructSignature = isJSDocConstructSignature(declaration);\n const isUntypedSignatureInJSFile = !iife && isInJSFile(declaration) && isValueSignatureDeclaration(declaration) && !hasJSDocParameterTags(declaration) && !some(declaration.parameters, (p) => !!getJSDocType(p)) && !getJSDocType(declaration) && !getContextualSignatureForFunctionLikeDeclaration(declaration);\n if (isUntypedSignatureInJSFile) {\n flags |= 32 /* IsUntypedSignatureInJSFile */;\n }\n for (let i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) {\n const param = declaration.parameters[i];\n if (isInJSFile(param) && isJSDocThisTag(param)) {\n thisTag = param;\n continue;\n }\n let paramSymbol = param.symbol;\n const type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type;\n if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) {\n const resolvedSymbol = resolveName(\n param,\n paramSymbol.escapedName,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n paramSymbol = resolvedSymbol;\n }\n if (i === 0 && paramSymbol.escapedName === \"this\" /* This */) {\n hasThisParameter2 = true;\n thisParameter = param.symbol;\n } else {\n parameters.push(paramSymbol);\n }\n if (type && type.kind === 202 /* LiteralType */) {\n flags |= 2 /* HasLiteralTypes */;\n }\n const isOptionalParameter2 = hasEffectiveQuestionToken(param) || isParameter(param) && param.initializer || isRestParameter(param) || iife && parameters.length > iife.arguments.length && !type;\n if (!isOptionalParameter2) {\n minArgumentCount = parameters.length;\n }\n }\n if ((declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) && hasBindableName(declaration) && (!hasThisParameter2 || !thisParameter)) {\n const otherKind = declaration.kind === 178 /* GetAccessor */ ? 179 /* SetAccessor */ : 178 /* GetAccessor */;\n const other = getDeclarationOfKind(getSymbolOfDeclaration(declaration), otherKind);\n if (other) {\n thisParameter = getAnnotatedAccessorThisParameter(other);\n }\n }\n if (thisTag && thisTag.typeExpression) {\n thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, \"this\" /* This */), getTypeFromTypeNode(thisTag.typeExpression));\n }\n const hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration;\n const classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0;\n const typeParameters = classType ? classType.localTypeParameters : getTypeParametersFromDeclaration(declaration);\n if (hasRestParameter(declaration) || isInJSFile(declaration) && maybeAddJsSyntheticRestParameter(declaration, parameters)) {\n flags |= 1 /* HasRestParameter */;\n }\n if (isConstructorTypeNode(declaration) && hasSyntacticModifier(declaration, 64 /* Abstract */) || isConstructorDeclaration(declaration) && hasSyntacticModifier(declaration.parent, 64 /* Abstract */)) {\n flags |= 4 /* Abstract */;\n }\n links.resolvedSignature = createSignature(\n declaration,\n typeParameters,\n thisParameter,\n parameters,\n /*resolvedReturnType*/\n void 0,\n /*resolvedTypePredicate*/\n void 0,\n minArgumentCount,\n flags\n );\n }\n return links.resolvedSignature;\n }\n function maybeAddJsSyntheticRestParameter(declaration, parameters) {\n if (isJSDocSignature(declaration) || !containsArgumentsReference(declaration)) {\n return false;\n }\n const lastParam = lastOrUndefined(declaration.parameters);\n const lastParamTags = lastParam ? getJSDocParameterTags(lastParam) : getJSDocTags(declaration).filter(isJSDocParameterTag);\n const lastParamVariadicType = firstDefined(lastParamTags, (p) => p.typeExpression && isJSDocVariadicType(p.typeExpression.type) ? p.typeExpression.type : void 0);\n const syntheticArgsSymbol = createSymbol(3 /* Variable */, \"args\", 32768 /* RestParameter */);\n if (lastParamVariadicType) {\n syntheticArgsSymbol.links.type = createArrayType(getTypeFromTypeNode(lastParamVariadicType.type));\n } else {\n syntheticArgsSymbol.links.checkFlags |= 65536 /* DeferredType */;\n syntheticArgsSymbol.links.deferralParent = neverType;\n syntheticArgsSymbol.links.deferralConstituents = [anyArrayType];\n syntheticArgsSymbol.links.deferralWriteConstituents = [anyArrayType];\n }\n if (lastParamVariadicType) {\n parameters.pop();\n }\n parameters.push(syntheticArgsSymbol);\n return true;\n }\n function getSignatureOfTypeTag(node) {\n if (!(isInJSFile(node) && isFunctionLikeDeclaration(node))) return void 0;\n const typeTag = getJSDocTypeTag(node);\n return (typeTag == null ? void 0 : typeTag.typeExpression) && getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));\n }\n function getParameterTypeOfTypeTag(func, parameter) {\n const signature = getSignatureOfTypeTag(func);\n if (!signature) return void 0;\n const pos = func.parameters.indexOf(parameter);\n return parameter.dotDotDotToken ? getRestTypeAtPosition(signature, pos) : getTypeAtPosition(signature, pos);\n }\n function getReturnTypeOfTypeTag(node) {\n const signature = getSignatureOfTypeTag(node);\n return signature && getReturnTypeOfSignature(signature);\n }\n function containsArgumentsReference(declaration) {\n const links = getNodeLinks(declaration);\n if (links.containsArgumentsReference === void 0) {\n if (links.flags & 512 /* CaptureArguments */) {\n links.containsArgumentsReference = true;\n } else {\n links.containsArgumentsReference = traverse(declaration.body);\n }\n }\n return links.containsArgumentsReference;\n function traverse(node) {\n if (!node) return false;\n switch (node.kind) {\n case 80 /* Identifier */:\n return node.escapedText === argumentsSymbol.escapedName && getReferencedValueSymbol(node) === argumentsSymbol;\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return node.name.kind === 168 /* ComputedPropertyName */ && traverse(node.name);\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return traverse(node.expression);\n case 304 /* PropertyAssignment */:\n return traverse(node.initializer);\n default:\n return !nodeStartsNewLexicalEnvironment(node) && !isPartOfTypeNode(node) && !!forEachChild(node, traverse);\n }\n }\n }\n function getSignaturesOfSymbol(symbol) {\n if (!symbol || !symbol.declarations) return emptyArray;\n const result = [];\n for (let i = 0; i < symbol.declarations.length; i++) {\n const decl = symbol.declarations[i];\n if (!isFunctionLike(decl)) continue;\n if (i > 0 && decl.body) {\n const previous = symbol.declarations[i - 1];\n if (decl.parent === previous.parent && decl.kind === previous.kind && decl.pos === previous.end) {\n continue;\n }\n }\n if (isInJSFile(decl) && decl.jsDoc) {\n const tags = getJSDocOverloadTags(decl);\n if (length(tags)) {\n for (const tag of tags) {\n const jsDocSignature = tag.typeExpression;\n if (jsDocSignature.type === void 0 && !isConstructorDeclaration(decl)) {\n reportImplicitAny(jsDocSignature, anyType);\n }\n result.push(getSignatureFromDeclaration(jsDocSignature));\n }\n continue;\n }\n }\n result.push(\n !isFunctionExpressionOrArrowFunction(decl) && !isObjectLiteralMethod(decl) && getSignatureOfTypeTag(decl) || getSignatureFromDeclaration(decl)\n );\n }\n return result;\n }\n function resolveExternalModuleTypeByLiteral(name) {\n const moduleSym = resolveExternalModuleName(name, name);\n if (moduleSym) {\n const resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym);\n if (resolvedModuleSymbol) {\n return getTypeOfSymbol(resolvedModuleSymbol);\n }\n }\n return anyType;\n }\n function getThisTypeOfSignature(signature) {\n if (signature.thisParameter) {\n return getTypeOfSymbol(signature.thisParameter);\n }\n }\n function getTypePredicateOfSignature(signature) {\n if (!signature.resolvedTypePredicate) {\n if (signature.target) {\n const targetTypePredicate = getTypePredicateOfSignature(signature.target);\n signature.resolvedTypePredicate = targetTypePredicate ? instantiateTypePredicate(targetTypePredicate, signature.mapper) : noTypePredicate;\n } else if (signature.compositeSignatures) {\n signature.resolvedTypePredicate = getUnionOrIntersectionTypePredicate(signature.compositeSignatures, signature.compositeKind) || noTypePredicate;\n } else {\n const type = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);\n let jsdocPredicate;\n if (!type) {\n const jsdocSignature = getSignatureOfTypeTag(signature.declaration);\n if (jsdocSignature && signature !== jsdocSignature) {\n jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);\n }\n }\n if (type || jsdocPredicate) {\n signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;\n } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType.flags & 16 /* Boolean */) && getParameterCount(signature) > 0) {\n const { declaration } = signature;\n signature.resolvedTypePredicate = noTypePredicate;\n signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;\n } else {\n signature.resolvedTypePredicate = noTypePredicate;\n }\n }\n Debug.assert(!!signature.resolvedTypePredicate);\n }\n return signature.resolvedTypePredicate === noTypePredicate ? void 0 : signature.resolvedTypePredicate;\n }\n function createTypePredicateFromTypePredicateNode(node, signature) {\n const parameterName = node.parameterName;\n const type = node.type && getTypeFromTypeNode(node.type);\n return parameterName.kind === 198 /* ThisType */ ? createTypePredicate(\n node.assertsModifier ? 2 /* AssertsThis */ : 0 /* This */,\n /*parameterName*/\n void 0,\n /*parameterIndex*/\n void 0,\n type\n ) : createTypePredicate(node.assertsModifier ? 3 /* AssertsIdentifier */ : 1 /* Identifier */, parameterName.escapedText, findIndex(signature.parameters, (p) => p.escapedName === parameterName.escapedText), type);\n }\n function getUnionOrIntersectionType(types, kind, unionReduction) {\n return kind !== 2097152 /* Intersection */ ? getUnionType(types, unionReduction) : getIntersectionType(types);\n }\n function getReturnTypeOfSignature(signature) {\n if (!signature.resolvedReturnType) {\n if (!pushTypeResolution(signature, 3 /* ResolvedReturnType */)) {\n return errorType;\n }\n let type = signature.target ? instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper) : signature.compositeSignatures ? instantiateType(getUnionOrIntersectionType(map(signature.compositeSignatures, getReturnTypeOfSignature), signature.compositeKind, 2 /* Subtype */), signature.mapper) : getReturnTypeFromAnnotation(signature.declaration) || (nodeIsMissing(signature.declaration.body) ? anyType : getReturnTypeFromBody(signature.declaration));\n if (signature.flags & 8 /* IsInnerCallChain */) {\n type = addOptionalTypeMarker(type);\n } else if (signature.flags & 16 /* IsOuterCallChain */) {\n type = getOptionalType(type);\n }\n if (!popTypeResolution()) {\n if (signature.declaration) {\n const typeNode = getEffectiveReturnTypeNode(signature.declaration);\n if (typeNode) {\n error2(typeNode, Diagnostics.Return_type_annotation_circularly_references_itself);\n } else if (noImplicitAny) {\n const declaration = signature.declaration;\n const name = getNameOfDeclaration(declaration);\n if (name) {\n error2(name, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, declarationNameToString(name));\n } else {\n error2(declaration, Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);\n }\n }\n }\n type = anyType;\n }\n signature.resolvedReturnType ?? (signature.resolvedReturnType = type);\n }\n return signature.resolvedReturnType;\n }\n function getReturnTypeFromAnnotation(declaration) {\n if (declaration.kind === 177 /* Constructor */) {\n return getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol));\n }\n const typeNode = getEffectiveReturnTypeNode(declaration);\n if (isJSDocSignature(declaration)) {\n const root = getJSDocRoot(declaration);\n if (root && isConstructorDeclaration(root.parent) && !typeNode) {\n return getDeclaredTypeOfClassOrInterface(getMergedSymbol(root.parent.parent.symbol));\n }\n }\n if (isJSDocConstructSignature(declaration)) {\n return getTypeFromTypeNode(declaration.parameters[0].type);\n }\n if (typeNode) {\n return getTypeFromTypeNode(typeNode);\n }\n if (declaration.kind === 178 /* GetAccessor */ && hasBindableName(declaration)) {\n const jsDocType = isInJSFile(declaration) && getTypeForDeclarationFromJSDocComment(declaration);\n if (jsDocType) {\n return jsDocType;\n }\n const setter = getDeclarationOfKind(getSymbolOfDeclaration(declaration), 179 /* SetAccessor */);\n const setterType = getAnnotatedAccessorType(setter);\n if (setterType) {\n return setterType;\n }\n }\n return getReturnTypeOfTypeTag(declaration);\n }\n function isResolvingReturnTypeOfSignature(signature) {\n return signature.compositeSignatures && some(signature.compositeSignatures, isResolvingReturnTypeOfSignature) || !signature.resolvedReturnType && findResolutionCycleStartIndex(signature, 3 /* ResolvedReturnType */) >= 0;\n }\n function getRestTypeOfSignature(signature) {\n return tryGetRestTypeOfSignature(signature) || anyType;\n }\n function tryGetRestTypeOfSignature(signature) {\n if (signatureHasRestParameter(signature)) {\n const sigRestType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n const restType = isTupleType(sigRestType) ? getRestTypeOfTupleType(sigRestType) : sigRestType;\n return restType && getIndexTypeOfType(restType, numberType);\n }\n return void 0;\n }\n function getSignatureInstantiation(signature, typeArguments, isJavascript, inferredTypeParameters) {\n const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, fillMissingTypeArguments(typeArguments, signature.typeParameters, getMinTypeArgumentCount(signature.typeParameters), isJavascript));\n if (inferredTypeParameters) {\n const returnSignature = getSingleCallOrConstructSignature(getReturnTypeOfSignature(instantiatedSignature));\n if (returnSignature) {\n const newReturnSignature = cloneSignature(returnSignature);\n newReturnSignature.typeParameters = inferredTypeParameters;\n const newReturnType = getOrCreateTypeFromSignature(newReturnSignature);\n newReturnType.mapper = instantiatedSignature.mapper;\n const newInstantiatedSignature = cloneSignature(instantiatedSignature);\n newInstantiatedSignature.resolvedReturnType = newReturnType;\n return newInstantiatedSignature;\n }\n }\n return instantiatedSignature;\n }\n function getSignatureInstantiationWithoutFillingInTypeArguments(signature, typeArguments) {\n const instantiations = signature.instantiations || (signature.instantiations = /* @__PURE__ */ new Map());\n const id = getTypeListId(typeArguments);\n let instantiation = instantiations.get(id);\n if (!instantiation) {\n instantiations.set(id, instantiation = createSignatureInstantiation(signature, typeArguments));\n }\n return instantiation;\n }\n function createSignatureInstantiation(signature, typeArguments) {\n return instantiateSignature(\n signature,\n createSignatureTypeMapper(signature, typeArguments),\n /*eraseTypeParameters*/\n true\n );\n }\n function getTypeParametersForMapper(signature) {\n return sameMap(signature.typeParameters, (tp) => tp.mapper ? instantiateType(tp, tp.mapper) : tp);\n }\n function createSignatureTypeMapper(signature, typeArguments) {\n return createTypeMapper(getTypeParametersForMapper(signature), typeArguments);\n }\n function getErasedSignature(signature) {\n return signature.typeParameters ? signature.erasedSignatureCache || (signature.erasedSignatureCache = createErasedSignature(signature)) : signature;\n }\n function createErasedSignature(signature) {\n return instantiateSignature(\n signature,\n createTypeEraser(signature.typeParameters),\n /*eraseTypeParameters*/\n true\n );\n }\n function getCanonicalSignature(signature) {\n return signature.typeParameters ? signature.canonicalSignatureCache || (signature.canonicalSignatureCache = createCanonicalSignature(signature)) : signature;\n }\n function createCanonicalSignature(signature) {\n return getSignatureInstantiation(\n signature,\n map(signature.typeParameters, (tp) => tp.target && !getConstraintOfTypeParameter(tp.target) ? tp.target : tp),\n isInJSFile(signature.declaration)\n );\n }\n function getBaseSignature(signature) {\n const typeParameters = signature.typeParameters;\n if (typeParameters) {\n if (signature.baseSignatureCache) {\n return signature.baseSignatureCache;\n }\n const typeEraser = createTypeEraser(typeParameters);\n const baseConstraintMapper = createTypeMapper(typeParameters, map(typeParameters, (tp) => getConstraintOfTypeParameter(tp) || unknownType));\n let baseConstraints = map(typeParameters, (tp) => instantiateType(tp, baseConstraintMapper) || unknownType);\n for (let i = 0; i < typeParameters.length - 1; i++) {\n baseConstraints = instantiateTypes(baseConstraints, baseConstraintMapper);\n }\n baseConstraints = instantiateTypes(baseConstraints, typeEraser);\n return signature.baseSignatureCache = instantiateSignature(\n signature,\n createTypeMapper(typeParameters, baseConstraints),\n /*eraseTypeParameters*/\n true\n );\n }\n return signature;\n }\n function getOrCreateTypeFromSignature(signature) {\n var _a, _b;\n if (!signature.isolatedSignatureType) {\n const kind = (_a = signature.declaration) == null ? void 0 : _a.kind;\n const isConstructor = kind === void 0 || kind === 177 /* Constructor */ || kind === 181 /* ConstructSignature */ || kind === 186 /* ConstructorType */;\n const type = createObjectType(16 /* Anonymous */ | 134217728 /* SingleSignatureType */, (_b = signature.declaration) == null ? void 0 : _b.symbol);\n type.members = emptySymbols;\n type.properties = emptyArray;\n type.callSignatures = !isConstructor ? [signature] : emptyArray;\n type.constructSignatures = isConstructor ? [signature] : emptyArray;\n type.indexInfos = emptyArray;\n signature.isolatedSignatureType = type;\n }\n return signature.isolatedSignatureType;\n }\n function getIndexSymbol(symbol) {\n return symbol.members ? getIndexSymbolFromSymbolTable(getMembersOfSymbol(symbol)) : void 0;\n }\n function getIndexSymbolFromSymbolTable(symbolTable) {\n return symbolTable.get(\"__index\" /* Index */);\n }\n function createIndexInfo(keyType, type, isReadonly, declaration, components) {\n return { keyType, type, isReadonly, declaration, components };\n }\n function getIndexInfosOfSymbol(symbol) {\n const indexSymbol = getIndexSymbol(symbol);\n return indexSymbol ? getIndexInfosOfIndexSymbol(indexSymbol, arrayFrom(getMembersOfSymbol(symbol).values())) : emptyArray;\n }\n function getIndexInfosOfIndexSymbol(indexSymbol, siblingSymbols = indexSymbol.parent ? arrayFrom(getMembersOfSymbol(indexSymbol.parent).values()) : void 0) {\n if (indexSymbol.declarations) {\n const indexInfos = [];\n let hasComputedNumberProperty = false;\n let readonlyComputedNumberProperty = true;\n let hasComputedSymbolProperty = false;\n let readonlyComputedSymbolProperty = true;\n let hasComputedStringProperty = false;\n let readonlyComputedStringProperty = true;\n const computedPropertySymbols = [];\n for (const declaration of indexSymbol.declarations) {\n if (isIndexSignatureDeclaration(declaration)) {\n if (declaration.parameters.length === 1) {\n const parameter = declaration.parameters[0];\n if (parameter.type) {\n forEachType(getTypeFromTypeNode(parameter.type), (keyType) => {\n if (isValidIndexKeyType(keyType) && !findIndexInfo(indexInfos, keyType)) {\n indexInfos.push(createIndexInfo(keyType, declaration.type ? getTypeFromTypeNode(declaration.type) : anyType, hasEffectiveModifier(declaration, 8 /* Readonly */), declaration));\n }\n });\n }\n }\n } else if (hasLateBindableIndexSignature(declaration)) {\n const declName = isBinaryExpression(declaration) ? declaration.left : declaration.name;\n const keyType = isElementAccessExpression(declName) ? checkExpressionCached(declName.argumentExpression) : checkComputedPropertyName(declName);\n if (findIndexInfo(indexInfos, keyType)) {\n continue;\n }\n if (isTypeAssignableTo(keyType, stringNumberSymbolType)) {\n if (isTypeAssignableTo(keyType, numberType)) {\n hasComputedNumberProperty = true;\n if (!hasEffectiveReadonlyModifier(declaration)) {\n readonlyComputedNumberProperty = false;\n }\n } else if (isTypeAssignableTo(keyType, esSymbolType)) {\n hasComputedSymbolProperty = true;\n if (!hasEffectiveReadonlyModifier(declaration)) {\n readonlyComputedSymbolProperty = false;\n }\n } else {\n hasComputedStringProperty = true;\n if (!hasEffectiveReadonlyModifier(declaration)) {\n readonlyComputedStringProperty = false;\n }\n }\n computedPropertySymbols.push(declaration.symbol);\n }\n }\n }\n const allPropertySymbols = concatenate(computedPropertySymbols, filter(siblingSymbols, (s) => s !== indexSymbol));\n if (hasComputedStringProperty && !findIndexInfo(indexInfos, stringType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedStringProperty, 0, allPropertySymbols, stringType));\n if (hasComputedNumberProperty && !findIndexInfo(indexInfos, numberType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedNumberProperty, 0, allPropertySymbols, numberType));\n if (hasComputedSymbolProperty && !findIndexInfo(indexInfos, esSymbolType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedSymbolProperty, 0, allPropertySymbols, esSymbolType));\n return indexInfos;\n }\n return emptyArray;\n }\n function isValidIndexKeyType(type) {\n return !!(type.flags & (4 /* String */ | 8 /* Number */ | 4096 /* ESSymbol */)) || isPatternLiteralType(type) || !!(type.flags & 2097152 /* Intersection */) && !isGenericType(type) && some(type.types, isValidIndexKeyType);\n }\n function getConstraintDeclaration(type) {\n return mapDefined(filter(type.symbol && type.symbol.declarations, isTypeParameterDeclaration), getEffectiveConstraintOfTypeParameter)[0];\n }\n function getInferredTypeParameterConstraint(typeParameter, omitTypeReferences) {\n var _a;\n let inferences;\n if ((_a = typeParameter.symbol) == null ? void 0 : _a.declarations) {\n for (const declaration of typeParameter.symbol.declarations) {\n if (declaration.parent.kind === 196 /* InferType */) {\n const [childTypeParameter = declaration.parent, grandParent] = walkUpParenthesizedTypesAndGetParentAndChild(declaration.parent.parent);\n if (grandParent.kind === 184 /* TypeReference */ && !omitTypeReferences) {\n const typeReference = grandParent;\n const typeParameters = getTypeParametersForTypeReferenceOrImport(typeReference);\n if (typeParameters) {\n const index = typeReference.typeArguments.indexOf(childTypeParameter);\n if (index < typeParameters.length) {\n const declaredConstraint = getConstraintOfTypeParameter(typeParameters[index]);\n if (declaredConstraint) {\n const mapper = makeDeferredTypeMapper(\n typeParameters,\n typeParameters.map((_, index2) => () => {\n return getEffectiveTypeArgumentAtIndex(typeReference, typeParameters, index2);\n })\n );\n const constraint = instantiateType(declaredConstraint, mapper);\n if (constraint !== typeParameter) {\n inferences = append(inferences, constraint);\n }\n }\n }\n }\n } else if (grandParent.kind === 170 /* Parameter */ && grandParent.dotDotDotToken || grandParent.kind === 192 /* RestType */ || grandParent.kind === 203 /* NamedTupleMember */ && grandParent.dotDotDotToken) {\n inferences = append(inferences, createArrayType(unknownType));\n } else if (grandParent.kind === 205 /* TemplateLiteralTypeSpan */) {\n inferences = append(inferences, stringType);\n } else if (grandParent.kind === 169 /* TypeParameter */ && grandParent.parent.kind === 201 /* MappedType */) {\n inferences = append(inferences, stringNumberSymbolType);\n } else if (grandParent.kind === 201 /* MappedType */ && grandParent.type && skipParentheses(grandParent.type) === declaration.parent && grandParent.parent.kind === 195 /* ConditionalType */ && grandParent.parent.extendsType === grandParent && grandParent.parent.checkType.kind === 201 /* MappedType */ && grandParent.parent.checkType.type) {\n const checkMappedType2 = grandParent.parent.checkType;\n const nodeType = getTypeFromTypeNode(checkMappedType2.type);\n inferences = append(inferences, instantiateType(nodeType, makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(checkMappedType2.typeParameter)), checkMappedType2.typeParameter.constraint ? getTypeFromTypeNode(checkMappedType2.typeParameter.constraint) : stringNumberSymbolType)));\n }\n }\n }\n }\n return inferences && getIntersectionType(inferences);\n }\n function getConstraintFromTypeParameter(typeParameter) {\n if (!typeParameter.constraint) {\n if (typeParameter.target) {\n const targetConstraint = getConstraintOfTypeParameter(typeParameter.target);\n typeParameter.constraint = targetConstraint ? instantiateType(targetConstraint, typeParameter.mapper) : noConstraintType;\n } else {\n const constraintDeclaration = getConstraintDeclaration(typeParameter);\n if (!constraintDeclaration) {\n typeParameter.constraint = getInferredTypeParameterConstraint(typeParameter) || noConstraintType;\n } else {\n let type = getTypeFromTypeNode(constraintDeclaration);\n if (type.flags & 1 /* Any */ && !isErrorType(type)) {\n type = constraintDeclaration.parent.parent.kind === 201 /* MappedType */ ? stringNumberSymbolType : unknownType;\n }\n typeParameter.constraint = type;\n }\n }\n }\n return typeParameter.constraint === noConstraintType ? void 0 : typeParameter.constraint;\n }\n function getParentSymbolOfTypeParameter(typeParameter) {\n const tp = getDeclarationOfKind(typeParameter.symbol, 169 /* TypeParameter */);\n const host2 = isJSDocTemplateTag(tp.parent) ? getEffectiveContainerForJSDocTemplateTag(tp.parent) : tp.parent;\n return host2 && getSymbolOfNode(host2);\n }\n function getTypeListId(types) {\n let result = \"\";\n if (types) {\n const length2 = types.length;\n let i = 0;\n while (i < length2) {\n const startId = types[i].id;\n let count = 1;\n while (i + count < length2 && types[i + count].id === startId + count) {\n count++;\n }\n if (result.length) {\n result += \",\";\n }\n result += startId;\n if (count > 1) {\n result += \":\" + count;\n }\n i += count;\n }\n }\n return result;\n }\n function getAliasId(aliasSymbol, aliasTypeArguments) {\n return aliasSymbol ? `@${getSymbolId(aliasSymbol)}` + (aliasTypeArguments ? `:${getTypeListId(aliasTypeArguments)}` : \"\") : \"\";\n }\n function getPropagatingFlagsOfTypes(types, excludeKinds) {\n let result = 0;\n for (const type of types) {\n if (excludeKinds === void 0 || !(type.flags & excludeKinds)) {\n result |= getObjectFlags(type);\n }\n }\n return result & 458752 /* PropagatingFlags */;\n }\n function tryCreateTypeReference(target, typeArguments) {\n if (some(typeArguments) && target === emptyGenericType) {\n return unknownType;\n }\n return createTypeReference(target, typeArguments);\n }\n function createTypeReference(target, typeArguments) {\n const id = getTypeListId(typeArguments);\n let type = target.instantiations.get(id);\n if (!type) {\n type = createObjectType(4 /* Reference */, target.symbol);\n target.instantiations.set(id, type);\n type.objectFlags |= typeArguments ? getPropagatingFlagsOfTypes(typeArguments) : 0;\n type.target = target;\n type.resolvedTypeArguments = typeArguments;\n }\n return type;\n }\n function cloneTypeReference(source) {\n const type = createTypeWithSymbol(source.flags, source.symbol);\n type.objectFlags = source.objectFlags;\n type.target = source.target;\n type.resolvedTypeArguments = source.resolvedTypeArguments;\n return type;\n }\n function createDeferredTypeReference(target, node, mapper, aliasSymbol, aliasTypeArguments) {\n if (!aliasSymbol) {\n aliasSymbol = getAliasSymbolForTypeNode(node);\n const localAliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n aliasTypeArguments = mapper ? instantiateTypes(localAliasTypeArguments, mapper) : localAliasTypeArguments;\n }\n const type = createObjectType(4 /* Reference */, target.symbol);\n type.target = target;\n type.node = node;\n type.mapper = mapper;\n type.aliasSymbol = aliasSymbol;\n type.aliasTypeArguments = aliasTypeArguments;\n return type;\n }\n function getTypeArguments(type) {\n var _a, _b;\n if (!type.resolvedTypeArguments) {\n if (!pushTypeResolution(type, 5 /* ResolvedTypeArguments */)) {\n return concatenate(type.target.outerTypeParameters, (_a = type.target.localTypeParameters) == null ? void 0 : _a.map(() => errorType)) || emptyArray;\n }\n const node = type.node;\n const typeArguments = !node ? emptyArray : node.kind === 184 /* TypeReference */ ? concatenate(type.target.outerTypeParameters, getEffectiveTypeArguments2(node, type.target.localTypeParameters)) : node.kind === 189 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode);\n if (popTypeResolution()) {\n type.resolvedTypeArguments ?? (type.resolvedTypeArguments = type.mapper ? instantiateTypes(typeArguments, type.mapper) : typeArguments);\n } else {\n type.resolvedTypeArguments ?? (type.resolvedTypeArguments = concatenate(type.target.outerTypeParameters, ((_b = type.target.localTypeParameters) == null ? void 0 : _b.map(() => errorType)) || emptyArray));\n error2(\n type.node || currentNode,\n type.target.symbol ? Diagnostics.Type_arguments_for_0_circularly_reference_themselves : Diagnostics.Tuple_type_arguments_circularly_reference_themselves,\n type.target.symbol && symbolToString(type.target.symbol)\n );\n }\n }\n return type.resolvedTypeArguments;\n }\n function getTypeReferenceArity(type) {\n return length(type.target.typeParameters);\n }\n function getTypeFromClassOrInterfaceReference(node, symbol) {\n const type = getDeclaredTypeOfSymbol(getMergedSymbol(symbol));\n const typeParameters = type.localTypeParameters;\n if (typeParameters) {\n const numTypeArguments = length(node.typeArguments);\n const minTypeArgumentCount = getMinTypeArgumentCount(typeParameters);\n const isJs = isInJSFile(node);\n const isJsImplicitAny = !noImplicitAny && isJs;\n if (!isJsImplicitAny && (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length)) {\n const missingAugmentsTag = isJs && isExpressionWithTypeArguments(node) && !isJSDocAugmentsTag(node.parent);\n const diag2 = minTypeArgumentCount === typeParameters.length ? missingAugmentsTag ? Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_1_type_argument_s : missingAugmentsTag ? Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments;\n const typeStr = typeToString(\n type,\n /*enclosingDeclaration*/\n void 0,\n 2 /* WriteArrayAsGenericType */\n );\n error2(node, diag2, typeStr, minTypeArgumentCount, typeParameters.length);\n if (!isJs) {\n return errorType;\n }\n }\n if (node.kind === 184 /* TypeReference */ && isDeferredTypeReferenceNode(node, length(node.typeArguments) !== typeParameters.length)) {\n return createDeferredTypeReference(\n type,\n node,\n /*mapper*/\n void 0\n );\n }\n const typeArguments = concatenate(type.outerTypeParameters, fillMissingTypeArguments(typeArgumentsFromTypeReferenceNode(node), typeParameters, minTypeArgumentCount, isJs));\n return createTypeReference(type, typeArguments);\n }\n return checkNoTypeArguments(node, symbol) ? type : errorType;\n }\n function getTypeAliasInstantiation(symbol, typeArguments, aliasSymbol, aliasTypeArguments) {\n const type = getDeclaredTypeOfSymbol(symbol);\n if (type === intrinsicMarkerType) {\n const typeKind = intrinsicTypeKinds.get(symbol.escapedName);\n if (typeKind !== void 0 && typeArguments && typeArguments.length === 1) {\n return typeKind === 4 /* NoInfer */ ? getNoInferType(typeArguments[0]) : getStringMappingType(symbol, typeArguments[0]);\n }\n }\n const links = getSymbolLinks(symbol);\n const typeParameters = links.typeParameters;\n const id = getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments);\n let instantiation = links.instantiations.get(id);\n if (!instantiation) {\n links.instantiations.set(id, instantiation = instantiateTypeWithAlias(type, createTypeMapper(typeParameters, fillMissingTypeArguments(typeArguments, typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(symbol.valueDeclaration))), aliasSymbol, aliasTypeArguments));\n }\n return instantiation;\n }\n function getTypeFromTypeAliasReference(node, symbol) {\n if (getCheckFlags(symbol) & 1048576 /* Unresolved */) {\n const typeArguments = typeArgumentsFromTypeReferenceNode(node);\n const id = getAliasId(symbol, typeArguments);\n let errorType2 = errorTypes.get(id);\n if (!errorType2) {\n errorType2 = createIntrinsicType(\n 1 /* Any */,\n \"error\",\n /*objectFlags*/\n void 0,\n `alias ${id}`\n );\n errorType2.aliasSymbol = symbol;\n errorType2.aliasTypeArguments = typeArguments;\n errorTypes.set(id, errorType2);\n }\n return errorType2;\n }\n const type = getDeclaredTypeOfSymbol(symbol);\n const typeParameters = getSymbolLinks(symbol).typeParameters;\n if (typeParameters) {\n const numTypeArguments = length(node.typeArguments);\n const minTypeArgumentCount = getMinTypeArgumentCount(typeParameters);\n if (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length) {\n error2(\n node,\n minTypeArgumentCount === typeParameters.length ? Diagnostics.Generic_type_0_requires_1_type_argument_s : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,\n symbolToString(symbol),\n minTypeArgumentCount,\n typeParameters.length\n );\n return errorType;\n }\n const aliasSymbol = getAliasSymbolForTypeNode(node);\n let newAliasSymbol = aliasSymbol && (isLocalTypeAlias(symbol) || !isLocalTypeAlias(aliasSymbol)) ? aliasSymbol : void 0;\n let aliasTypeArguments;\n if (newAliasSymbol) {\n aliasTypeArguments = getTypeArgumentsForAliasSymbol(newAliasSymbol);\n } else if (isTypeReferenceType(node)) {\n const aliasSymbol2 = resolveTypeReferenceName(\n node,\n 2097152 /* Alias */,\n /*ignoreErrors*/\n true\n );\n if (aliasSymbol2 && aliasSymbol2 !== unknownSymbol) {\n const resolved = resolveAlias(aliasSymbol2);\n if (resolved && resolved.flags & 524288 /* TypeAlias */) {\n newAliasSymbol = resolved;\n aliasTypeArguments = typeArgumentsFromTypeReferenceNode(node) || (typeParameters ? [] : void 0);\n }\n }\n }\n return getTypeAliasInstantiation(symbol, typeArgumentsFromTypeReferenceNode(node), newAliasSymbol, aliasTypeArguments);\n }\n return checkNoTypeArguments(node, symbol) ? type : errorType;\n }\n function isLocalTypeAlias(symbol) {\n var _a;\n const declaration = (_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias);\n return !!(declaration && getContainingFunction(declaration));\n }\n function getTypeReferenceName(node) {\n switch (node.kind) {\n case 184 /* TypeReference */:\n return node.typeName;\n case 234 /* ExpressionWithTypeArguments */:\n const expr = node.expression;\n if (isEntityNameExpression(expr)) {\n return expr;\n }\n }\n return void 0;\n }\n function getSymbolPath(symbol) {\n return symbol.parent ? `${getSymbolPath(symbol.parent)}.${symbol.escapedName}` : symbol.escapedName;\n }\n function getUnresolvedSymbolForEntityName(name) {\n const identifier = name.kind === 167 /* QualifiedName */ ? name.right : name.kind === 212 /* PropertyAccessExpression */ ? name.name : name;\n const text = identifier.escapedText;\n if (text) {\n const parentSymbol = name.kind === 167 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) : name.kind === 212 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) : void 0;\n const path = parentSymbol ? `${getSymbolPath(parentSymbol)}.${text}` : text;\n let result = unresolvedSymbols.get(path);\n if (!result) {\n unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */));\n result.parent = parentSymbol;\n result.links.declaredType = unresolvedType;\n }\n return result;\n }\n return unknownSymbol;\n }\n function resolveTypeReferenceName(typeReference, meaning, ignoreErrors) {\n const name = getTypeReferenceName(typeReference);\n if (!name) {\n return unknownSymbol;\n }\n const symbol = resolveEntityName(name, meaning, ignoreErrors);\n return symbol && symbol !== unknownSymbol ? symbol : ignoreErrors ? unknownSymbol : getUnresolvedSymbolForEntityName(name);\n }\n function getTypeReferenceType(node, symbol) {\n if (symbol === unknownSymbol) {\n return errorType;\n }\n symbol = getExpandoSymbol(symbol) || symbol;\n if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n return getTypeFromClassOrInterfaceReference(node, symbol);\n }\n if (symbol.flags & 524288 /* TypeAlias */) {\n return getTypeFromTypeAliasReference(node, symbol);\n }\n const res = tryGetDeclaredTypeOfSymbol(symbol);\n if (res) {\n return checkNoTypeArguments(node, symbol) ? getRegularTypeOfLiteralType(res) : errorType;\n }\n if (symbol.flags & 111551 /* Value */ && isJSDocTypeReference(node)) {\n const jsdocType = getTypeFromJSDocValueReference(node, symbol);\n if (jsdocType) {\n return jsdocType;\n } else {\n resolveTypeReferenceName(node, 788968 /* Type */);\n return getTypeOfSymbol(symbol);\n }\n }\n return errorType;\n }\n function getTypeFromJSDocValueReference(node, symbol) {\n const links = getNodeLinks(node);\n if (!links.resolvedJSDocType) {\n const valueType = getTypeOfSymbol(symbol);\n let typeType = valueType;\n if (symbol.valueDeclaration) {\n const isImportTypeWithQualifier = node.kind === 206 /* ImportType */ && node.qualifier;\n if (valueType.symbol && valueType.symbol !== symbol && isImportTypeWithQualifier) {\n typeType = getTypeReferenceType(node, valueType.symbol);\n }\n }\n links.resolvedJSDocType = typeType;\n }\n return links.resolvedJSDocType;\n }\n function getNoInferType(type) {\n return isNoInferTargetType(type) ? getOrCreateSubstitutionType(type, unknownType) : type;\n }\n function isNoInferTargetType(type) {\n return !!(type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, isNoInferTargetType) || type.flags & 33554432 /* Substitution */ && !isNoInferType(type) && isNoInferTargetType(type.baseType) || type.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(type) || type.flags & (465829888 /* Instantiable */ & ~33554432 /* Substitution */) && !isPatternLiteralType(type));\n }\n function isNoInferType(type) {\n return !!(type.flags & 33554432 /* Substitution */ && type.constraint.flags & 2 /* Unknown */);\n }\n function getSubstitutionType(baseType, constraint) {\n return constraint.flags & 3 /* AnyOrUnknown */ || constraint === baseType || baseType.flags & 1 /* Any */ ? baseType : getOrCreateSubstitutionType(baseType, constraint);\n }\n function getOrCreateSubstitutionType(baseType, constraint) {\n const id = `${getTypeId(baseType)}>${getTypeId(constraint)}`;\n const cached = substitutionTypes.get(id);\n if (cached) {\n return cached;\n }\n const result = createType(33554432 /* Substitution */);\n result.baseType = baseType;\n result.constraint = constraint;\n substitutionTypes.set(id, result);\n return result;\n }\n function getSubstitutionIntersection(substitutionType) {\n return isNoInferType(substitutionType) ? substitutionType.baseType : getIntersectionType([substitutionType.constraint, substitutionType.baseType]);\n }\n function isUnaryTupleTypeNode(node) {\n return node.kind === 190 /* TupleType */ && node.elements.length === 1;\n }\n function getImpliedConstraint(type, checkNode, extendsNode) {\n return isUnaryTupleTypeNode(checkNode) && isUnaryTupleTypeNode(extendsNode) ? getImpliedConstraint(type, checkNode.elements[0], extendsNode.elements[0]) : getActualTypeVariable(getTypeFromTypeNode(checkNode)) === getActualTypeVariable(type) ? getTypeFromTypeNode(extendsNode) : void 0;\n }\n function getConditionalFlowTypeOfType(type, node) {\n let constraints;\n let covariant = true;\n while (node && !isStatement(node) && node.kind !== 321 /* JSDoc */) {\n const parent2 = node.parent;\n if (parent2.kind === 170 /* Parameter */) {\n covariant = !covariant;\n }\n if ((covariant || type.flags & 8650752 /* TypeVariable */) && parent2.kind === 195 /* ConditionalType */ && node === parent2.trueType) {\n const constraint = getImpliedConstraint(type, parent2.checkType, parent2.extendsType);\n if (constraint) {\n constraints = append(constraints, constraint);\n }\n } else if (type.flags & 262144 /* TypeParameter */ && parent2.kind === 201 /* MappedType */ && !parent2.nameType && node === parent2.type) {\n const mappedType = getTypeFromTypeNode(parent2);\n if (getTypeParameterFromMappedType(mappedType) === getActualTypeVariable(type)) {\n const typeParameter = getHomomorphicTypeVariable(mappedType);\n if (typeParameter) {\n const constraint = getConstraintOfTypeParameter(typeParameter);\n if (constraint && everyType(constraint, isArrayOrTupleType)) {\n constraints = append(constraints, getUnionType([numberType, numericStringType]));\n }\n }\n }\n }\n node = parent2;\n }\n return constraints ? getSubstitutionType(type, getIntersectionType(constraints)) : type;\n }\n function isJSDocTypeReference(node) {\n return !!(node.flags & 16777216 /* JSDoc */) && (node.kind === 184 /* TypeReference */ || node.kind === 206 /* ImportType */);\n }\n function checkNoTypeArguments(node, symbol) {\n if (node.typeArguments) {\n error2(node, Diagnostics.Type_0_is_not_generic, symbol ? symbolToString(symbol) : node.typeName ? declarationNameToString(node.typeName) : anon);\n return false;\n }\n return true;\n }\n function getIntendedTypeFromJSDocTypeReference(node) {\n if (isIdentifier(node.typeName)) {\n const typeArgs = node.typeArguments;\n switch (node.typeName.escapedText) {\n case \"String\":\n checkNoTypeArguments(node);\n return stringType;\n case \"Number\":\n checkNoTypeArguments(node);\n return numberType;\n case \"BigInt\":\n checkNoTypeArguments(node);\n return bigintType;\n case \"Boolean\":\n checkNoTypeArguments(node);\n return booleanType;\n case \"Void\":\n checkNoTypeArguments(node);\n return voidType;\n case \"Undefined\":\n checkNoTypeArguments(node);\n return undefinedType;\n case \"Null\":\n checkNoTypeArguments(node);\n return nullType;\n case \"Function\":\n case \"function\":\n checkNoTypeArguments(node);\n return globalFunctionType;\n case \"array\":\n return (!typeArgs || !typeArgs.length) && !noImplicitAny ? anyArrayType : void 0;\n case \"promise\":\n return (!typeArgs || !typeArgs.length) && !noImplicitAny ? createPromiseType(anyType) : void 0;\n case \"Object\":\n if (typeArgs && typeArgs.length === 2) {\n if (isJSDocIndexSignature(node)) {\n const indexed = getTypeFromTypeNode(typeArgs[0]);\n const target = getTypeFromTypeNode(typeArgs[1]);\n const indexInfo = indexed === stringType || indexed === numberType ? [createIndexInfo(\n indexed,\n target,\n /*isReadonly*/\n false\n )] : emptyArray;\n return createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n indexInfo\n );\n }\n return anyType;\n }\n checkNoTypeArguments(node);\n return !noImplicitAny ? anyType : void 0;\n }\n }\n }\n function getTypeFromJSDocNullableTypeNode(node) {\n const type = getTypeFromTypeNode(node.type);\n return strictNullChecks ? getNullableType(type, 65536 /* Null */) : type;\n }\n function getTypeFromTypeReference(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n if (isConstTypeReference(node) && isAssertionExpression(node.parent)) {\n links.resolvedSymbol = unknownSymbol;\n return links.resolvedType = checkExpressionCached(node.parent.expression);\n }\n let symbol;\n let type;\n const meaning = 788968 /* Type */;\n if (isJSDocTypeReference(node)) {\n type = getIntendedTypeFromJSDocTypeReference(node);\n if (!type) {\n symbol = resolveTypeReferenceName(\n node,\n meaning,\n /*ignoreErrors*/\n true\n );\n if (symbol === unknownSymbol) {\n symbol = resolveTypeReferenceName(node, meaning | 111551 /* Value */);\n } else {\n resolveTypeReferenceName(node, meaning);\n }\n type = getTypeReferenceType(node, symbol);\n }\n }\n if (!type) {\n symbol = resolveTypeReferenceName(node, meaning);\n type = getTypeReferenceType(node, symbol);\n }\n links.resolvedSymbol = symbol;\n links.resolvedType = type;\n }\n return links.resolvedType;\n }\n function typeArgumentsFromTypeReferenceNode(node) {\n return map(node.typeArguments, getTypeFromTypeNode);\n }\n function getTypeFromTypeQueryNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const type = checkExpressionWithTypeArguments(node);\n links.resolvedType = getRegularTypeOfLiteralType(getWidenedType(type));\n }\n return links.resolvedType;\n }\n function getTypeOfGlobalSymbol(symbol, arity) {\n function getTypeDeclaration(symbol2) {\n const declarations = symbol2.declarations;\n if (declarations) {\n for (const declaration of declarations) {\n switch (declaration.kind) {\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n return declaration;\n }\n }\n }\n }\n if (!symbol) {\n return arity ? emptyGenericType : emptyObjectType;\n }\n const type = getDeclaredTypeOfSymbol(symbol);\n if (!(type.flags & 524288 /* Object */)) {\n error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbolName(symbol));\n return arity ? emptyGenericType : emptyObjectType;\n }\n if (length(type.typeParameters) !== arity) {\n error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity);\n return arity ? emptyGenericType : emptyObjectType;\n }\n return type;\n }\n function getGlobalValueSymbol(name, reportErrors2) {\n return getGlobalSymbol(name, 111551 /* Value */, reportErrors2 ? Diagnostics.Cannot_find_global_value_0 : void 0);\n }\n function getGlobalTypeSymbol(name, reportErrors2) {\n return getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0);\n }\n function getGlobalTypeAliasSymbol(name, arity, reportErrors2) {\n const symbol = getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0);\n if (symbol) {\n getDeclaredTypeOfSymbol(symbol);\n if (length(getSymbolLinks(symbol).typeParameters) !== arity) {\n const decl = symbol.declarations && find(symbol.declarations, isTypeAliasDeclaration);\n error2(decl, Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity);\n return void 0;\n }\n }\n return symbol;\n }\n function getGlobalSymbol(name, meaning, diagnostic) {\n return resolveName(\n /*location*/\n void 0,\n name,\n meaning,\n diagnostic,\n /*isUse*/\n false,\n /*excludeGlobals*/\n false\n );\n }\n function getGlobalType(name, arity, reportErrors2) {\n const symbol = getGlobalTypeSymbol(name, reportErrors2);\n return symbol || reportErrors2 ? getTypeOfGlobalSymbol(symbol, arity) : void 0;\n }\n function getGlobalBuiltinTypes(typeNames, arity) {\n let types;\n for (const typeName of typeNames) {\n types = append(types, getGlobalType(\n typeName,\n arity,\n /*reportErrors*/\n false\n ));\n }\n return types ?? emptyArray;\n }\n function getGlobalTypedPropertyDescriptorType() {\n return deferredGlobalTypedPropertyDescriptorType || (deferredGlobalTypedPropertyDescriptorType = getGlobalType(\n \"TypedPropertyDescriptor\",\n /*arity*/\n 1,\n /*reportErrors*/\n true\n ) || emptyGenericType);\n }\n function getGlobalTemplateStringsArrayType() {\n return deferredGlobalTemplateStringsArrayType || (deferredGlobalTemplateStringsArrayType = getGlobalType(\n \"TemplateStringsArray\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n ) || emptyObjectType);\n }\n function getGlobalImportMetaType() {\n return deferredGlobalImportMetaType || (deferredGlobalImportMetaType = getGlobalType(\n \"ImportMeta\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n ) || emptyObjectType);\n }\n function getGlobalImportMetaExpressionType() {\n if (!deferredGlobalImportMetaExpressionType) {\n const symbol = createSymbol(0 /* None */, \"ImportMetaExpression\");\n const importMetaType = getGlobalImportMetaType();\n const metaPropertySymbol = createSymbol(4 /* Property */, \"meta\", 8 /* Readonly */);\n metaPropertySymbol.parent = symbol;\n metaPropertySymbol.links.type = importMetaType;\n const members = createSymbolTable([metaPropertySymbol]);\n symbol.members = members;\n deferredGlobalImportMetaExpressionType = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n }\n return deferredGlobalImportMetaExpressionType;\n }\n function getGlobalImportCallOptionsType(reportErrors2) {\n return deferredGlobalImportCallOptionsType || (deferredGlobalImportCallOptionsType = getGlobalType(\n \"ImportCallOptions\",\n /*arity*/\n 0,\n reportErrors2\n )) || emptyObjectType;\n }\n function getGlobalImportAttributesType(reportErrors2) {\n return deferredGlobalImportAttributesType || (deferredGlobalImportAttributesType = getGlobalType(\n \"ImportAttributes\",\n /*arity*/\n 0,\n reportErrors2\n )) || emptyObjectType;\n }\n function getGlobalESSymbolConstructorSymbol(reportErrors2) {\n return deferredGlobalESSymbolConstructorSymbol || (deferredGlobalESSymbolConstructorSymbol = getGlobalValueSymbol(\"Symbol\", reportErrors2));\n }\n function getGlobalESSymbolConstructorTypeSymbol(reportErrors2) {\n return deferredGlobalESSymbolConstructorTypeSymbol || (deferredGlobalESSymbolConstructorTypeSymbol = getGlobalTypeSymbol(\"SymbolConstructor\", reportErrors2));\n }\n function getGlobalESSymbolType() {\n return deferredGlobalESSymbolType || (deferredGlobalESSymbolType = getGlobalType(\n \"Symbol\",\n /*arity*/\n 0,\n /*reportErrors*/\n false\n )) || emptyObjectType;\n }\n function getGlobalPromiseType(reportErrors2) {\n return deferredGlobalPromiseType || (deferredGlobalPromiseType = getGlobalType(\n \"Promise\",\n /*arity*/\n 1,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalPromiseLikeType(reportErrors2) {\n return deferredGlobalPromiseLikeType || (deferredGlobalPromiseLikeType = getGlobalType(\n \"PromiseLike\",\n /*arity*/\n 1,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalPromiseConstructorSymbol(reportErrors2) {\n return deferredGlobalPromiseConstructorSymbol || (deferredGlobalPromiseConstructorSymbol = getGlobalValueSymbol(\"Promise\", reportErrors2));\n }\n function getGlobalPromiseConstructorLikeType(reportErrors2) {\n return deferredGlobalPromiseConstructorLikeType || (deferredGlobalPromiseConstructorLikeType = getGlobalType(\n \"PromiseConstructorLike\",\n /*arity*/\n 0,\n reportErrors2\n )) || emptyObjectType;\n }\n function getGlobalAsyncIterableType(reportErrors2) {\n return deferredGlobalAsyncIterableType || (deferredGlobalAsyncIterableType = getGlobalType(\n \"AsyncIterable\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalAsyncIteratorType(reportErrors2) {\n return deferredGlobalAsyncIteratorType || (deferredGlobalAsyncIteratorType = getGlobalType(\n \"AsyncIterator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalAsyncIterableIteratorType(reportErrors2) {\n return deferredGlobalAsyncIterableIteratorType || (deferredGlobalAsyncIterableIteratorType = getGlobalType(\n \"AsyncIterableIterator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalBuiltinAsyncIteratorTypes() {\n return deferredGlobalBuiltinAsyncIteratorTypes ?? (deferredGlobalBuiltinAsyncIteratorTypes = getGlobalBuiltinTypes([\"ReadableStreamAsyncIterator\"], 1));\n }\n function getGlobalAsyncIteratorObjectType(reportErrors2) {\n return deferredGlobalAsyncIteratorObjectType || (deferredGlobalAsyncIteratorObjectType = getGlobalType(\n \"AsyncIteratorObject\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalAsyncGeneratorType(reportErrors2) {\n return deferredGlobalAsyncGeneratorType || (deferredGlobalAsyncGeneratorType = getGlobalType(\n \"AsyncGenerator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalIterableType(reportErrors2) {\n return deferredGlobalIterableType || (deferredGlobalIterableType = getGlobalType(\n \"Iterable\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalIteratorType(reportErrors2) {\n return deferredGlobalIteratorType || (deferredGlobalIteratorType = getGlobalType(\n \"Iterator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalIterableIteratorType(reportErrors2) {\n return deferredGlobalIterableIteratorType || (deferredGlobalIterableIteratorType = getGlobalType(\n \"IterableIterator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getBuiltinIteratorReturnType() {\n return strictBuiltinIteratorReturn ? undefinedType : anyType;\n }\n function getGlobalBuiltinIteratorTypes() {\n return deferredGlobalBuiltinIteratorTypes ?? (deferredGlobalBuiltinIteratorTypes = getGlobalBuiltinTypes([\"ArrayIterator\", \"MapIterator\", \"SetIterator\", \"StringIterator\"], 1));\n }\n function getGlobalIteratorObjectType(reportErrors2) {\n return deferredGlobalIteratorObjectType || (deferredGlobalIteratorObjectType = getGlobalType(\n \"IteratorObject\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalGeneratorType(reportErrors2) {\n return deferredGlobalGeneratorType || (deferredGlobalGeneratorType = getGlobalType(\n \"Generator\",\n /*arity*/\n 3,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalIteratorYieldResultType(reportErrors2) {\n return deferredGlobalIteratorYieldResultType || (deferredGlobalIteratorYieldResultType = getGlobalType(\n \"IteratorYieldResult\",\n /*arity*/\n 1,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalIteratorReturnResultType(reportErrors2) {\n return deferredGlobalIteratorReturnResultType || (deferredGlobalIteratorReturnResultType = getGlobalType(\n \"IteratorReturnResult\",\n /*arity*/\n 1,\n reportErrors2\n )) || emptyGenericType;\n }\n function getGlobalDisposableType(reportErrors2) {\n return deferredGlobalDisposableType || (deferredGlobalDisposableType = getGlobalType(\n \"Disposable\",\n /*arity*/\n 0,\n reportErrors2\n )) || emptyObjectType;\n }\n function getGlobalAsyncDisposableType(reportErrors2) {\n return deferredGlobalAsyncDisposableType || (deferredGlobalAsyncDisposableType = getGlobalType(\n \"AsyncDisposable\",\n /*arity*/\n 0,\n reportErrors2\n )) || emptyObjectType;\n }\n function getGlobalTypeOrUndefined(name, arity = 0) {\n const symbol = getGlobalSymbol(\n name,\n 788968 /* Type */,\n /*diagnostic*/\n void 0\n );\n return symbol && getTypeOfGlobalSymbol(symbol, arity);\n }\n function getGlobalExtractSymbol() {\n deferredGlobalExtractSymbol || (deferredGlobalExtractSymbol = getGlobalTypeAliasSymbol(\n \"Extract\",\n /*arity*/\n 2,\n /*reportErrors*/\n true\n ) || unknownSymbol);\n return deferredGlobalExtractSymbol === unknownSymbol ? void 0 : deferredGlobalExtractSymbol;\n }\n function getGlobalOmitSymbol() {\n deferredGlobalOmitSymbol || (deferredGlobalOmitSymbol = getGlobalTypeAliasSymbol(\n \"Omit\",\n /*arity*/\n 2,\n /*reportErrors*/\n true\n ) || unknownSymbol);\n return deferredGlobalOmitSymbol === unknownSymbol ? void 0 : deferredGlobalOmitSymbol;\n }\n function getGlobalAwaitedSymbol(reportErrors2) {\n deferredGlobalAwaitedSymbol || (deferredGlobalAwaitedSymbol = getGlobalTypeAliasSymbol(\n \"Awaited\",\n /*arity*/\n 1,\n reportErrors2\n ) || (reportErrors2 ? unknownSymbol : void 0));\n return deferredGlobalAwaitedSymbol === unknownSymbol ? void 0 : deferredGlobalAwaitedSymbol;\n }\n function getGlobalBigIntType() {\n return deferredGlobalBigIntType || (deferredGlobalBigIntType = getGlobalType(\n \"BigInt\",\n /*arity*/\n 0,\n /*reportErrors*/\n false\n )) || emptyObjectType;\n }\n function getGlobalClassDecoratorContextType(reportErrors2) {\n return deferredGlobalClassDecoratorContextType ?? (deferredGlobalClassDecoratorContextType = getGlobalType(\n \"ClassDecoratorContext\",\n /*arity*/\n 1,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassMethodDecoratorContextType(reportErrors2) {\n return deferredGlobalClassMethodDecoratorContextType ?? (deferredGlobalClassMethodDecoratorContextType = getGlobalType(\n \"ClassMethodDecoratorContext\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassGetterDecoratorContextType(reportErrors2) {\n return deferredGlobalClassGetterDecoratorContextType ?? (deferredGlobalClassGetterDecoratorContextType = getGlobalType(\n \"ClassGetterDecoratorContext\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassSetterDecoratorContextType(reportErrors2) {\n return deferredGlobalClassSetterDecoratorContextType ?? (deferredGlobalClassSetterDecoratorContextType = getGlobalType(\n \"ClassSetterDecoratorContext\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassAccessorDecoratorContextType(reportErrors2) {\n return deferredGlobalClassAccessorDecoratorContextType ?? (deferredGlobalClassAccessorDecoratorContextType = getGlobalType(\n \"ClassAccessorDecoratorContext\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassAccessorDecoratorTargetType(reportErrors2) {\n return deferredGlobalClassAccessorDecoratorTargetType ?? (deferredGlobalClassAccessorDecoratorTargetType = getGlobalType(\n \"ClassAccessorDecoratorTarget\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassAccessorDecoratorResultType(reportErrors2) {\n return deferredGlobalClassAccessorDecoratorResultType ?? (deferredGlobalClassAccessorDecoratorResultType = getGlobalType(\n \"ClassAccessorDecoratorResult\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalClassFieldDecoratorContextType(reportErrors2) {\n return deferredGlobalClassFieldDecoratorContextType ?? (deferredGlobalClassFieldDecoratorContextType = getGlobalType(\n \"ClassFieldDecoratorContext\",\n /*arity*/\n 2,\n reportErrors2\n )) ?? emptyGenericType;\n }\n function getGlobalNaNSymbol() {\n return deferredGlobalNaNSymbol || (deferredGlobalNaNSymbol = getGlobalValueSymbol(\n \"NaN\",\n /*reportErrors*/\n false\n ));\n }\n function getGlobalRecordSymbol() {\n deferredGlobalRecordSymbol || (deferredGlobalRecordSymbol = getGlobalTypeAliasSymbol(\n \"Record\",\n /*arity*/\n 2,\n /*reportErrors*/\n true\n ) || unknownSymbol);\n return deferredGlobalRecordSymbol === unknownSymbol ? void 0 : deferredGlobalRecordSymbol;\n }\n function createTypeFromGenericGlobalType(genericGlobalType, typeArguments) {\n return genericGlobalType !== emptyGenericType ? createTypeReference(genericGlobalType, typeArguments) : emptyObjectType;\n }\n function createTypedPropertyDescriptorType(propertyType) {\n return createTypeFromGenericGlobalType(getGlobalTypedPropertyDescriptorType(), [propertyType]);\n }\n function createIterableType(iteratedType) {\n return createTypeFromGenericGlobalType(getGlobalIterableType(\n /*reportErrors*/\n true\n ), [iteratedType, voidType, undefinedType]);\n }\n function createArrayType(elementType, readonly) {\n return createTypeFromGenericGlobalType(readonly ? globalReadonlyArrayType : globalArrayType, [elementType]);\n }\n function getTupleElementFlags(node) {\n switch (node.kind) {\n case 191 /* OptionalType */:\n return 2 /* Optional */;\n case 192 /* RestType */:\n return getRestTypeElementFlags(node);\n case 203 /* NamedTupleMember */:\n return node.questionToken ? 2 /* Optional */ : node.dotDotDotToken ? getRestTypeElementFlags(node) : 1 /* Required */;\n default:\n return 1 /* Required */;\n }\n }\n function getRestTypeElementFlags(node) {\n return getArrayElementTypeNode(node.type) ? 4 /* Rest */ : 8 /* Variadic */;\n }\n function getArrayOrTupleTargetType(node) {\n const readonly = isReadonlyTypeOperator(node.parent);\n const elementType = getArrayElementTypeNode(node);\n if (elementType) {\n return readonly ? globalReadonlyArrayType : globalArrayType;\n }\n const elementFlags = map(node.elements, getTupleElementFlags);\n return getTupleTargetType(elementFlags, readonly, map(node.elements, memberIfLabeledElementDeclaration));\n }\n function memberIfLabeledElementDeclaration(member) {\n return isNamedTupleMember(member) || isParameter(member) ? member : void 0;\n }\n function isDeferredTypeReferenceNode(node, hasDefaultTypeArguments) {\n return !!getAliasSymbolForTypeNode(node) || isResolvedByTypeAlias(node) && (node.kind === 189 /* ArrayType */ ? mayResolveTypeAlias(node.elementType) : node.kind === 190 /* TupleType */ ? some(node.elements, mayResolveTypeAlias) : hasDefaultTypeArguments || some(node.typeArguments, mayResolveTypeAlias));\n }\n function isResolvedByTypeAlias(node) {\n const parent2 = node.parent;\n switch (parent2.kind) {\n case 197 /* ParenthesizedType */:\n case 203 /* NamedTupleMember */:\n case 184 /* TypeReference */:\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n case 200 /* IndexedAccessType */:\n case 195 /* ConditionalType */:\n case 199 /* TypeOperator */:\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n return isResolvedByTypeAlias(parent2);\n case 266 /* TypeAliasDeclaration */:\n return true;\n }\n return false;\n }\n function mayResolveTypeAlias(node) {\n switch (node.kind) {\n case 184 /* TypeReference */:\n return isJSDocTypeReference(node) || !!(resolveTypeReferenceName(node, 788968 /* Type */).flags & 524288 /* TypeAlias */);\n case 187 /* TypeQuery */:\n return true;\n case 199 /* TypeOperator */:\n return node.operator !== 158 /* UniqueKeyword */ && mayResolveTypeAlias(node.type);\n case 197 /* ParenthesizedType */:\n case 191 /* OptionalType */:\n case 203 /* NamedTupleMember */:\n case 317 /* JSDocOptionalType */:\n case 315 /* JSDocNullableType */:\n case 316 /* JSDocNonNullableType */:\n case 310 /* JSDocTypeExpression */:\n return mayResolveTypeAlias(node.type);\n case 192 /* RestType */:\n return node.type.kind !== 189 /* ArrayType */ || mayResolveTypeAlias(node.type.elementType);\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n return some(node.types, mayResolveTypeAlias);\n case 200 /* IndexedAccessType */:\n return mayResolveTypeAlias(node.objectType) || mayResolveTypeAlias(node.indexType);\n case 195 /* ConditionalType */:\n return mayResolveTypeAlias(node.checkType) || mayResolveTypeAlias(node.extendsType) || mayResolveTypeAlias(node.trueType) || mayResolveTypeAlias(node.falseType);\n }\n return false;\n }\n function getTypeFromArrayOrTupleTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const target = getArrayOrTupleTargetType(node);\n if (target === emptyGenericType) {\n links.resolvedType = emptyObjectType;\n } else if (!(node.kind === 190 /* TupleType */ && some(node.elements, (e) => !!(getTupleElementFlags(e) & 8 /* Variadic */))) && isDeferredTypeReferenceNode(node)) {\n links.resolvedType = node.kind === 190 /* TupleType */ && node.elements.length === 0 ? target : createDeferredTypeReference(\n target,\n node,\n /*mapper*/\n void 0\n );\n } else {\n const elementTypes = node.kind === 189 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode);\n links.resolvedType = createNormalizedTypeReference(target, elementTypes);\n }\n }\n return links.resolvedType;\n }\n function isReadonlyTypeOperator(node) {\n return isTypeOperatorNode(node) && node.operator === 148 /* ReadonlyKeyword */;\n }\n function createTupleType(elementTypes, elementFlags, readonly = false, namedMemberDeclarations = []) {\n const tupleTarget = getTupleTargetType(elementFlags || map(elementTypes, (_) => 1 /* Required */), readonly, namedMemberDeclarations);\n return tupleTarget === emptyGenericType ? emptyObjectType : elementTypes.length ? createNormalizedTypeReference(tupleTarget, elementTypes) : tupleTarget;\n }\n function getTupleTargetType(elementFlags, readonly, namedMemberDeclarations) {\n if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) {\n return readonly ? globalReadonlyArrayType : globalArrayType;\n }\n const key = map(elementFlags, (f) => f & 1 /* Required */ ? \"#\" : f & 2 /* Optional */ ? \"?\" : f & 4 /* Rest */ ? \".\" : \"*\").join() + (readonly ? \"R\" : \"\") + (some(namedMemberDeclarations, (node) => !!node) ? \",\" + map(namedMemberDeclarations, (node) => node ? getNodeId(node) : \"_\").join(\",\") : \"\");\n let type = tupleTypes.get(key);\n if (!type) {\n tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations));\n }\n return type;\n }\n function createTupleTargetType(elementFlags, readonly, namedMemberDeclarations) {\n const arity = elementFlags.length;\n const minLength = countWhere(elementFlags, (f) => !!(f & (1 /* Required */ | 8 /* Variadic */)));\n let typeParameters;\n const properties = [];\n let combinedFlags = 0;\n if (arity) {\n typeParameters = new Array(arity);\n for (let i = 0; i < arity; i++) {\n const typeParameter = typeParameters[i] = createTypeParameter();\n const flags = elementFlags[i];\n combinedFlags |= flags;\n if (!(combinedFlags & 12 /* Variable */)) {\n const property = createSymbol(4 /* Property */ | (flags & 2 /* Optional */ ? 16777216 /* Optional */ : 0), \"\" + i, readonly ? 8 /* Readonly */ : 0);\n property.links.tupleLabelDeclaration = namedMemberDeclarations == null ? void 0 : namedMemberDeclarations[i];\n property.links.type = typeParameter;\n properties.push(property);\n }\n }\n }\n const fixedLength = properties.length;\n const lengthSymbol = createSymbol(4 /* Property */, \"length\", readonly ? 8 /* Readonly */ : 0);\n if (combinedFlags & 12 /* Variable */) {\n lengthSymbol.links.type = numberType;\n } else {\n const literalTypes = [];\n for (let i = minLength; i <= arity; i++) literalTypes.push(getNumberLiteralType(i));\n lengthSymbol.links.type = getUnionType(literalTypes);\n }\n properties.push(lengthSymbol);\n const type = createObjectType(8 /* Tuple */ | 4 /* Reference */);\n type.typeParameters = typeParameters;\n type.outerTypeParameters = void 0;\n type.localTypeParameters = typeParameters;\n type.instantiations = /* @__PURE__ */ new Map();\n type.instantiations.set(getTypeListId(type.typeParameters), type);\n type.target = type;\n type.resolvedTypeArguments = type.typeParameters;\n type.thisType = createTypeParameter();\n type.thisType.isThisType = true;\n type.thisType.constraint = type;\n type.declaredProperties = properties;\n type.declaredCallSignatures = emptyArray;\n type.declaredConstructSignatures = emptyArray;\n type.declaredIndexInfos = emptyArray;\n type.elementFlags = elementFlags;\n type.minLength = minLength;\n type.fixedLength = fixedLength;\n type.hasRestElement = !!(combinedFlags & 12 /* Variable */);\n type.combinedFlags = combinedFlags;\n type.readonly = readonly;\n type.labeledElementDeclarations = namedMemberDeclarations;\n return type;\n }\n function createNormalizedTypeReference(target, typeArguments) {\n return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments);\n }\n function createNormalizedTupleType(target, elementTypes) {\n var _a, _b, _c, _d;\n if (!(target.combinedFlags & 14 /* NonRequired */)) {\n return createTypeReference(target, elementTypes);\n }\n if (target.combinedFlags & 8 /* Variadic */) {\n const unionIndex = findIndex(elementTypes, (t, i) => !!(target.elementFlags[i] & 8 /* Variadic */ && t.flags & (131072 /* Never */ | 1048576 /* Union */)));\n if (unionIndex >= 0) {\n return checkCrossProductUnion(map(elementTypes, (t, i) => target.elementFlags[i] & 8 /* Variadic */ ? t : unknownType)) ? mapType(elementTypes[unionIndex], (t) => createNormalizedTupleType(target, replaceElement(elementTypes, unionIndex, t))) : errorType;\n }\n }\n const expandedTypes = [];\n const expandedFlags = [];\n const expandedDeclarations = [];\n let lastRequiredIndex = -1;\n let firstRestIndex = -1;\n let lastOptionalOrRestIndex = -1;\n for (let i = 0; i < elementTypes.length; i++) {\n const type = elementTypes[i];\n const flags = target.elementFlags[i];\n if (flags & 8 /* Variadic */) {\n if (type.flags & 1 /* Any */) {\n addElement(type, 4 /* Rest */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);\n } else if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {\n addElement(type, 8 /* Variadic */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);\n } else if (isTupleType(type)) {\n const elements = getElementTypes(type);\n if (elements.length + expandedTypes.length >= 1e4) {\n error2(\n currentNode,\n isPartOfTypeNode(currentNode) ? Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent : Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent\n );\n return errorType;\n }\n forEach(elements, (t, n) => {\n var _a2;\n return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]);\n });\n } else {\n addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);\n }\n } else {\n addElement(type, flags, (_d = target.labeledElementDeclarations) == null ? void 0 : _d[i]);\n }\n }\n for (let i = 0; i < lastRequiredIndex; i++) {\n if (expandedFlags[i] & 2 /* Optional */) expandedFlags[i] = 1 /* Required */;\n }\n if (firstRestIndex >= 0 && firstRestIndex < lastOptionalOrRestIndex) {\n expandedTypes[firstRestIndex] = getUnionType(sameMap(expandedTypes.slice(firstRestIndex, lastOptionalOrRestIndex + 1), (t, i) => expandedFlags[firstRestIndex + i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t));\n expandedTypes.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n expandedFlags.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n expandedDeclarations.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n }\n const tupleTarget = getTupleTargetType(expandedFlags, target.readonly, expandedDeclarations);\n return tupleTarget === emptyGenericType ? emptyObjectType : expandedFlags.length ? createTypeReference(tupleTarget, expandedTypes) : tupleTarget;\n function addElement(type, flags, declaration) {\n if (flags & 1 /* Required */) {\n lastRequiredIndex = expandedFlags.length;\n }\n if (flags & 4 /* Rest */ && firstRestIndex < 0) {\n firstRestIndex = expandedFlags.length;\n }\n if (flags & (2 /* Optional */ | 4 /* Rest */)) {\n lastOptionalOrRestIndex = expandedFlags.length;\n }\n expandedTypes.push(flags & 2 /* Optional */ ? addOptionality(\n type,\n /*isProperty*/\n true\n ) : type);\n expandedFlags.push(flags);\n expandedDeclarations.push(declaration);\n }\n }\n function sliceTupleType(type, index, endSkipCount = 0) {\n const target = type.target;\n const endIndex = getTypeReferenceArity(type) - endSkipCount;\n return index > target.fixedLength ? getRestArrayTypeOfTupleType(type) || createTupleType(emptyArray) : createTupleType(\n getTypeArguments(type).slice(index, endIndex),\n target.elementFlags.slice(index, endIndex),\n /*readonly*/\n false,\n target.labeledElementDeclarations && target.labeledElementDeclarations.slice(index, endIndex)\n );\n }\n function getKnownKeysOfTupleType(type) {\n return getUnionType(append(arrayOf(type.target.fixedLength, (i) => getStringLiteralType(\"\" + i)), getIndexType(type.target.readonly ? globalReadonlyArrayType : globalArrayType)));\n }\n function getStartElementCount(type, flags) {\n const index = findIndex(type.elementFlags, (f) => !(f & flags));\n return index >= 0 ? index : type.elementFlags.length;\n }\n function getEndElementCount(type, flags) {\n return type.elementFlags.length - findLastIndex(type.elementFlags, (f) => !(f & flags)) - 1;\n }\n function getTotalFixedElementCount(type) {\n return type.fixedLength + getEndElementCount(type, 3 /* Fixed */);\n }\n function getElementTypes(type) {\n const typeArguments = getTypeArguments(type);\n const arity = getTypeReferenceArity(type);\n return typeArguments.length === arity ? typeArguments : typeArguments.slice(0, arity);\n }\n function getTypeFromOptionalTypeNode(node) {\n return addOptionality(\n getTypeFromTypeNode(node.type),\n /*isProperty*/\n true\n );\n }\n function getTypeId(type) {\n return type.id;\n }\n function containsType(types, type) {\n return binarySearch(types, type, getTypeId, compareValues) >= 0;\n }\n function insertType(types, type) {\n const index = binarySearch(types, type, getTypeId, compareValues);\n if (index < 0) {\n types.splice(~index, 0, type);\n return true;\n }\n return false;\n }\n function addTypeToUnion(typeSet, includes, type) {\n const flags = type.flags;\n if (!(flags & 131072 /* Never */)) {\n includes |= flags & 473694207 /* IncludesMask */;\n if (flags & 465829888 /* Instantiable */) includes |= 33554432 /* IncludesInstantiable */;\n if (flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) includes |= 536870912 /* IncludesConstrainedTypeVariable */;\n if (type === wildcardType) includes |= 8388608 /* IncludesWildcard */;\n if (isErrorType(type)) includes |= 1073741824 /* IncludesError */;\n if (!strictNullChecks && flags & 98304 /* Nullable */) {\n if (!(getObjectFlags(type) & 65536 /* ContainsWideningType */)) includes |= 4194304 /* IncludesNonWideningType */;\n } else {\n const len = typeSet.length;\n const index = len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues);\n if (index < 0) {\n typeSet.splice(~index, 0, type);\n }\n }\n }\n return includes;\n }\n function addTypesToUnion(typeSet, includes, types) {\n let lastType;\n for (const type of types) {\n if (type !== lastType) {\n includes = type.flags & 1048576 /* Union */ ? addTypesToUnion(typeSet, includes | (isNamedUnionType(type) ? 1048576 /* Union */ : 0), type.types) : addTypeToUnion(typeSet, includes, type);\n lastType = type;\n }\n }\n return includes;\n }\n function removeSubtypes(types, hasObjectTypes) {\n var _a;\n if (types.length < 2) {\n return types;\n }\n const id = getTypeListId(types);\n const match = subtypeReductionCache.get(id);\n if (match) {\n return match;\n }\n const hasEmptyObject = hasObjectTypes && some(types, (t) => !!(t.flags & 524288 /* Object */) && !isGenericMappedType(t) && isEmptyResolvedType(resolveStructuredTypeMembers(t)));\n const len = types.length;\n let i = len;\n let count = 0;\n while (i > 0) {\n i--;\n const source = types[i];\n if (hasEmptyObject || source.flags & 469499904 /* StructuredOrInstantiable */) {\n if (source.flags & 262144 /* TypeParameter */ && getBaseConstraintOrType(source).flags & 1048576 /* Union */) {\n if (isTypeRelatedTo(source, getUnionType(map(types, (t) => t === source ? neverType : t)), strictSubtypeRelation)) {\n orderedRemoveItemAt(types, i);\n }\n continue;\n }\n const keyProperty = source.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */) ? find(getPropertiesOfType(source), (p) => isUnitType(getTypeOfSymbol(p))) : void 0;\n const keyPropertyType = keyProperty && getRegularTypeOfLiteralType(getTypeOfSymbol(keyProperty));\n for (const target of types) {\n if (source !== target) {\n if (count === 1e5) {\n const estimatedCount = count / (len - i) * len;\n if (estimatedCount > 1e6) {\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"removeSubtypes_DepthLimit\", { typeIds: types.map((t) => t.id) });\n error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);\n return void 0;\n }\n }\n count++;\n if (keyProperty && target.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) {\n const t = getTypeOfPropertyOfType(target, keyProperty.escapedName);\n if (t && isUnitType(t) && getRegularTypeOfLiteralType(t) !== keyPropertyType) {\n continue;\n }\n }\n if (isTypeRelatedTo(source, target, strictSubtypeRelation) && (!(getObjectFlags(getTargetType(source)) & 1 /* Class */) || !(getObjectFlags(getTargetType(target)) & 1 /* Class */) || isTypeDerivedFrom(source, target))) {\n orderedRemoveItemAt(types, i);\n break;\n }\n }\n }\n }\n }\n subtypeReductionCache.set(id, types);\n return types;\n }\n function removeRedundantLiteralTypes(types, includes, reduceVoidUndefined) {\n let i = types.length;\n while (i > 0) {\n i--;\n const t = types[i];\n const flags = t.flags;\n const remove = flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && includes & 4 /* String */ || flags & 256 /* NumberLiteral */ && includes & 8 /* Number */ || flags & 2048 /* BigIntLiteral */ && includes & 64 /* BigInt */ || flags & 8192 /* UniqueESSymbol */ && includes & 4096 /* ESSymbol */ || reduceVoidUndefined && flags & 32768 /* Undefined */ && includes & 16384 /* Void */ || isFreshLiteralType(t) && containsType(types, t.regularType);\n if (remove) {\n orderedRemoveItemAt(types, i);\n }\n }\n }\n function removeStringLiteralsMatchedByTemplateLiterals(types) {\n const templates = filter(types, isPatternLiteralType);\n if (templates.length) {\n let i = types.length;\n while (i > 0) {\n i--;\n const t = types[i];\n if (t.flags & 128 /* StringLiteral */ && some(templates, (template) => isTypeMatchedByTemplateLiteralOrStringMapping(t, template))) {\n orderedRemoveItemAt(types, i);\n }\n }\n }\n }\n function isTypeMatchedByTemplateLiteralOrStringMapping(type, template) {\n return template.flags & 134217728 /* TemplateLiteral */ ? isTypeMatchedByTemplateLiteralType(type, template) : isMemberOfStringMapping(type, template);\n }\n function removeConstrainedTypeVariables(types) {\n const typeVariables = [];\n for (const type of types) {\n if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n pushIfUnique(typeVariables, type.types[index]);\n }\n }\n for (const typeVariable of typeVariables) {\n const primitives = [];\n for (const type of types) {\n if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n if (type.types[index] === typeVariable) {\n insertType(primitives, type.types[1 - index]);\n }\n }\n }\n const constraint = getBaseConstraintOfType(typeVariable);\n if (everyType(constraint, (t) => containsType(primitives, t))) {\n let i = types.length;\n while (i > 0) {\n i--;\n const type = types[i];\n if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n if (type.types[index] === typeVariable && containsType(primitives, type.types[1 - index])) {\n orderedRemoveItemAt(types, i);\n }\n }\n }\n insertType(types, typeVariable);\n }\n }\n }\n function isNamedUnionType(type) {\n return !!(type.flags & 1048576 /* Union */ && (type.aliasSymbol || type.origin));\n }\n function addNamedUnions(namedUnions, types) {\n for (const t of types) {\n if (t.flags & 1048576 /* Union */) {\n const origin = t.origin;\n if (t.aliasSymbol || origin && !(origin.flags & 1048576 /* Union */)) {\n pushIfUnique(namedUnions, t);\n } else if (origin && origin.flags & 1048576 /* Union */) {\n addNamedUnions(namedUnions, origin.types);\n }\n }\n }\n }\n function createOriginUnionOrIntersectionType(flags, types) {\n const result = createOriginType(flags);\n result.types = types;\n return result;\n }\n function getUnionType(types, unionReduction = 1 /* Literal */, aliasSymbol, aliasTypeArguments, origin) {\n if (types.length === 0) {\n return neverType;\n }\n if (types.length === 1) {\n return types[0];\n }\n if (types.length === 2 && !origin && (types[0].flags & 1048576 /* Union */ || types[1].flags & 1048576 /* Union */)) {\n const infix = unionReduction === 0 /* None */ ? \"N\" : unionReduction === 2 /* Subtype */ ? \"S\" : \"L\";\n const index = types[0].id < types[1].id ? 0 : 1;\n const id = types[index].id + infix + types[1 - index].id + getAliasId(aliasSymbol, aliasTypeArguments);\n let type = unionOfUnionTypes.get(id);\n if (!type) {\n type = getUnionTypeWorker(\n types,\n unionReduction,\n aliasSymbol,\n aliasTypeArguments,\n /*origin*/\n void 0\n );\n unionOfUnionTypes.set(id, type);\n }\n return type;\n }\n return getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin);\n }\n function getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin) {\n let typeSet = [];\n const includes = addTypesToUnion(typeSet, 0, types);\n if (unionReduction !== 0 /* None */) {\n if (includes & 3 /* AnyOrUnknown */) {\n return includes & 1 /* Any */ ? includes & 8388608 /* IncludesWildcard */ ? wildcardType : includes & 1073741824 /* IncludesError */ ? errorType : anyType : unknownType;\n }\n if (includes & 32768 /* Undefined */) {\n if (typeSet.length >= 2 && typeSet[0] === undefinedType && typeSet[1] === missingType) {\n orderedRemoveItemAt(typeSet, 1);\n }\n }\n if (includes & (32 /* Enum */ | 2944 /* Literal */ | 8192 /* UniqueESSymbol */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 16384 /* Void */ && includes & 32768 /* Undefined */) {\n removeRedundantLiteralTypes(typeSet, includes, !!(unionReduction & 2 /* Subtype */));\n }\n if (includes & 128 /* StringLiteral */ && includes & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */)) {\n removeStringLiteralsMatchedByTemplateLiterals(typeSet);\n }\n if (includes & 536870912 /* IncludesConstrainedTypeVariable */) {\n removeConstrainedTypeVariables(typeSet);\n }\n if (unionReduction === 2 /* Subtype */) {\n typeSet = removeSubtypes(typeSet, !!(includes & 524288 /* Object */));\n if (!typeSet) {\n return errorType;\n }\n }\n if (typeSet.length === 0) {\n return includes & 65536 /* Null */ ? includes & 4194304 /* IncludesNonWideningType */ ? nullType : nullWideningType : includes & 32768 /* Undefined */ ? includes & 4194304 /* IncludesNonWideningType */ ? undefinedType : undefinedWideningType : neverType;\n }\n }\n if (!origin && includes & 1048576 /* Union */) {\n const namedUnions = [];\n addNamedUnions(namedUnions, types);\n const reducedTypes = [];\n for (const t of typeSet) {\n if (!some(namedUnions, (union) => containsType(union.types, t))) {\n reducedTypes.push(t);\n }\n }\n if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) {\n return namedUnions[0];\n }\n const namedTypesCount = reduceLeft(namedUnions, (sum, union) => sum + union.types.length, 0);\n if (namedTypesCount + reducedTypes.length === typeSet.length) {\n for (const t of namedUnions) {\n insertType(reducedTypes, t);\n }\n origin = createOriginUnionOrIntersectionType(1048576 /* Union */, reducedTypes);\n }\n }\n const objectFlags = (includes & 36323331 /* NotPrimitiveUnion */ ? 0 : 32768 /* PrimitiveUnion */) | (includes & 2097152 /* Intersection */ ? 16777216 /* ContainsIntersections */ : 0);\n return getUnionTypeFromSortedList(typeSet, objectFlags, aliasSymbol, aliasTypeArguments, origin);\n }\n function getUnionOrIntersectionTypePredicate(signatures, kind) {\n let last2;\n const types = [];\n for (const sig of signatures) {\n const pred = getTypePredicateOfSignature(sig);\n if (pred) {\n if (pred.kind !== 0 /* This */ && pred.kind !== 1 /* Identifier */ || last2 && !typePredicateKindsMatch(last2, pred)) {\n return void 0;\n }\n last2 = pred;\n types.push(pred.type);\n } else {\n const returnType = kind !== 2097152 /* Intersection */ ? getReturnTypeOfSignature(sig) : void 0;\n if (returnType !== falseType && returnType !== regularFalseType) {\n return void 0;\n }\n }\n }\n if (!last2) {\n return void 0;\n }\n const compositeType = getUnionOrIntersectionType(types, kind);\n return createTypePredicate(last2.kind, last2.parameterName, last2.parameterIndex, compositeType);\n }\n function typePredicateKindsMatch(a, b) {\n return a.kind === b.kind && a.parameterIndex === b.parameterIndex;\n }\n function getUnionTypeFromSortedList(types, precomputedObjectFlags, aliasSymbol, aliasTypeArguments, origin) {\n if (types.length === 0) {\n return neverType;\n }\n if (types.length === 1) {\n return types[0];\n }\n const typeKey = !origin ? getTypeListId(types) : origin.flags & 1048576 /* Union */ ? `|${getTypeListId(origin.types)}` : origin.flags & 2097152 /* Intersection */ ? `&${getTypeListId(origin.types)}` : `#${origin.type.id}|${getTypeListId(types)}`;\n const id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);\n let type = unionTypes.get(id);\n if (!type) {\n type = createType(1048576 /* Union */);\n type.objectFlags = precomputedObjectFlags | getPropagatingFlagsOfTypes(\n types,\n /*excludeKinds*/\n 98304 /* Nullable */\n );\n type.types = types;\n type.origin = origin;\n type.aliasSymbol = aliasSymbol;\n type.aliasTypeArguments = aliasTypeArguments;\n if (types.length === 2 && types[0].flags & 512 /* BooleanLiteral */ && types[1].flags & 512 /* BooleanLiteral */) {\n type.flags |= 16 /* Boolean */;\n type.intrinsicName = \"boolean\";\n }\n unionTypes.set(id, type);\n }\n return type;\n }\n function getTypeFromUnionTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const aliasSymbol = getAliasSymbolForTypeNode(node);\n links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), 1 /* Literal */, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol));\n }\n return links.resolvedType;\n }\n function addTypeToIntersection(typeSet, includes, type) {\n const flags = type.flags;\n if (flags & 2097152 /* Intersection */) {\n return addTypesToIntersection(typeSet, includes, type.types);\n }\n if (isEmptyAnonymousObjectType(type)) {\n if (!(includes & 16777216 /* IncludesEmptyObject */)) {\n includes |= 16777216 /* IncludesEmptyObject */;\n typeSet.set(type.id.toString(), type);\n }\n } else {\n if (flags & 3 /* AnyOrUnknown */) {\n if (type === wildcardType) includes |= 8388608 /* IncludesWildcard */;\n if (isErrorType(type)) includes |= 1073741824 /* IncludesError */;\n } else if (strictNullChecks || !(flags & 98304 /* Nullable */)) {\n if (type === missingType) {\n includes |= 262144 /* IncludesMissingType */;\n type = undefinedType;\n }\n if (!typeSet.has(type.id.toString())) {\n if (type.flags & 109472 /* Unit */ && includes & 109472 /* Unit */) {\n includes |= 67108864 /* NonPrimitive */;\n }\n typeSet.set(type.id.toString(), type);\n }\n }\n includes |= flags & 473694207 /* IncludesMask */;\n }\n return includes;\n }\n function addTypesToIntersection(typeSet, includes, types) {\n for (const type of types) {\n includes = addTypeToIntersection(typeSet, includes, getRegularTypeOfLiteralType(type));\n }\n return includes;\n }\n function removeRedundantSupertypes(types, includes) {\n let i = types.length;\n while (i > 0) {\n i--;\n const t = types[i];\n const remove = t.flags & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || t.flags & 8 /* Number */ && includes & 256 /* NumberLiteral */ || t.flags & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || t.flags & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || t.flags & 16384 /* Void */ && includes & 32768 /* Undefined */ || isEmptyAnonymousObjectType(t) && includes & 470302716 /* DefinitelyNonNullable */;\n if (remove) {\n orderedRemoveItemAt(types, i);\n }\n }\n }\n function eachUnionContains(unionTypes2, type) {\n for (const u of unionTypes2) {\n if (!containsType(u.types, type)) {\n if (type === missingType) {\n return containsType(u.types, undefinedType);\n }\n if (type === undefinedType) {\n return containsType(u.types, missingType);\n }\n const primitive = type.flags & 128 /* StringLiteral */ ? stringType : type.flags & (32 /* Enum */ | 256 /* NumberLiteral */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : void 0;\n if (!primitive || !containsType(u.types, primitive)) {\n return false;\n }\n }\n }\n return true;\n }\n function extractRedundantTemplateLiterals(types) {\n let i = types.length;\n const literals = filter(types, (t) => !!(t.flags & 128 /* StringLiteral */));\n while (i > 0) {\n i--;\n const t = types[i];\n if (!(t.flags & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */))) continue;\n for (const t2 of literals) {\n if (isTypeSubtypeOf(t2, t)) {\n orderedRemoveItemAt(types, i);\n break;\n } else if (isPatternLiteralType(t)) {\n return true;\n }\n }\n }\n return false;\n }\n function removeFromEach(types, flag) {\n for (let i = 0; i < types.length; i++) {\n types[i] = filterType(types[i], (t) => !(t.flags & flag));\n }\n }\n function intersectUnionsOfPrimitiveTypes(types) {\n let unionTypes2;\n const index = findIndex(types, (t) => !!(getObjectFlags(t) & 32768 /* PrimitiveUnion */));\n if (index < 0) {\n return false;\n }\n let i = index + 1;\n while (i < types.length) {\n const t = types[i];\n if (getObjectFlags(t) & 32768 /* PrimitiveUnion */) {\n (unionTypes2 || (unionTypes2 = [types[index]])).push(t);\n orderedRemoveItemAt(types, i);\n } else {\n i++;\n }\n }\n if (!unionTypes2) {\n return false;\n }\n const checked = [];\n const result = [];\n for (const u of unionTypes2) {\n for (const t of u.types) {\n if (insertType(checked, t)) {\n if (eachUnionContains(unionTypes2, t)) {\n if (t === undefinedType && result.length && result[0] === missingType) {\n continue;\n }\n if (t === missingType && result.length && result[0] === undefinedType) {\n result[0] = missingType;\n continue;\n }\n insertType(result, t);\n }\n }\n }\n }\n types[index] = getUnionTypeFromSortedList(result, 32768 /* PrimitiveUnion */);\n return true;\n }\n function createIntersectionType(types, objectFlags, aliasSymbol, aliasTypeArguments) {\n const result = createType(2097152 /* Intersection */);\n result.objectFlags = objectFlags | getPropagatingFlagsOfTypes(\n types,\n /*excludeKinds*/\n 98304 /* Nullable */\n );\n result.types = types;\n result.aliasSymbol = aliasSymbol;\n result.aliasTypeArguments = aliasTypeArguments;\n return result;\n }\n function getIntersectionType(types, flags = 0 /* None */, aliasSymbol, aliasTypeArguments) {\n const typeMembershipMap = /* @__PURE__ */ new Map();\n const includes = addTypesToIntersection(typeMembershipMap, 0, types);\n const typeSet = arrayFrom(typeMembershipMap.values());\n let objectFlags = 0 /* None */;\n if (includes & 131072 /* Never */) {\n return contains(typeSet, silentNeverType) ? silentNeverType : neverType;\n }\n if (strictNullChecks && includes & 98304 /* Nullable */ && includes & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 16777216 /* IncludesEmptyObject */) || includes & 67108864 /* NonPrimitive */ && includes & (469892092 /* DisjointDomains */ & ~67108864 /* NonPrimitive */) || includes & 402653316 /* StringLike */ && includes & (469892092 /* DisjointDomains */ & ~402653316 /* StringLike */) || includes & 296 /* NumberLike */ && includes & (469892092 /* DisjointDomains */ & ~296 /* NumberLike */) || includes & 2112 /* BigIntLike */ && includes & (469892092 /* DisjointDomains */ & ~2112 /* BigIntLike */) || includes & 12288 /* ESSymbolLike */ && includes & (469892092 /* DisjointDomains */ & ~12288 /* ESSymbolLike */) || includes & 49152 /* VoidLike */ && includes & (469892092 /* DisjointDomains */ & ~49152 /* VoidLike */)) {\n return neverType;\n }\n if (includes & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && includes & 128 /* StringLiteral */ && extractRedundantTemplateLiterals(typeSet)) {\n return neverType;\n }\n if (includes & 1 /* Any */) {\n return includes & 8388608 /* IncludesWildcard */ ? wildcardType : includes & 1073741824 /* IncludesError */ ? errorType : anyType;\n }\n if (!strictNullChecks && includes & 98304 /* Nullable */) {\n return includes & 16777216 /* IncludesEmptyObject */ ? neverType : includes & 32768 /* Undefined */ ? undefinedType : nullType;\n }\n if (includes & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 8 /* Number */ && includes & 256 /* NumberLiteral */ || includes & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || includes & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || includes & 16384 /* Void */ && includes & 32768 /* Undefined */ || includes & 16777216 /* IncludesEmptyObject */ && includes & 470302716 /* DefinitelyNonNullable */) {\n if (!(flags & 1 /* NoSupertypeReduction */)) removeRedundantSupertypes(typeSet, includes);\n }\n if (includes & 262144 /* IncludesMissingType */) {\n typeSet[typeSet.indexOf(undefinedType)] = missingType;\n }\n if (typeSet.length === 0) {\n return unknownType;\n }\n if (typeSet.length === 1) {\n return typeSet[0];\n }\n if (typeSet.length === 2 && !(flags & 2 /* NoConstraintReduction */)) {\n const typeVarIndex = typeSet[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n const typeVariable = typeSet[typeVarIndex];\n const primitiveType = typeSet[1 - typeVarIndex];\n if (typeVariable.flags & 8650752 /* TypeVariable */ && (primitiveType.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */) && !isGenericStringLikeType(primitiveType) || includes & 16777216 /* IncludesEmptyObject */)) {\n const constraint = getBaseConstraintOfType(typeVariable);\n if (constraint && everyType(constraint, (t) => !!(t.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */)) || isEmptyAnonymousObjectType(t))) {\n if (isTypeStrictSubtypeOf(constraint, primitiveType)) {\n return typeVariable;\n }\n if (!(constraint.flags & 1048576 /* Union */ && someType(constraint, (c) => isTypeStrictSubtypeOf(c, primitiveType)))) {\n if (!isTypeStrictSubtypeOf(primitiveType, constraint)) {\n return neverType;\n }\n }\n objectFlags = 67108864 /* IsConstrainedTypeVariable */;\n }\n }\n }\n const id = getTypeListId(typeSet) + (flags & 2 /* NoConstraintReduction */ ? \"*\" : getAliasId(aliasSymbol, aliasTypeArguments));\n let result = intersectionTypes.get(id);\n if (!result) {\n if (includes & 1048576 /* Union */) {\n if (intersectUnionsOfPrimitiveTypes(typeSet)) {\n result = getIntersectionType(typeSet, flags, aliasSymbol, aliasTypeArguments);\n } else if (every(typeSet, (t) => !!(t.flags & 1048576 /* Union */ && t.types[0].flags & 32768 /* Undefined */))) {\n const containedUndefinedType = some(typeSet, containsMissingType) ? missingType : undefinedType;\n removeFromEach(typeSet, 32768 /* Undefined */);\n result = getUnionType([getIntersectionType(typeSet, flags), containedUndefinedType], 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n } else if (every(typeSet, (t) => !!(t.flags & 1048576 /* Union */ && (t.types[0].flags & 65536 /* Null */ || t.types[1].flags & 65536 /* Null */)))) {\n removeFromEach(typeSet, 65536 /* Null */);\n result = getUnionType([getIntersectionType(typeSet, flags), nullType], 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n } else if (typeSet.length >= 3 && types.length > 2) {\n const middle = Math.floor(typeSet.length / 2);\n result = getIntersectionType([getIntersectionType(typeSet.slice(0, middle), flags), getIntersectionType(typeSet.slice(middle), flags)], flags, aliasSymbol, aliasTypeArguments);\n } else {\n if (!checkCrossProductUnion(typeSet)) {\n return errorType;\n }\n const constituents = getCrossProductIntersections(typeSet, flags);\n const origin = some(constituents, (t) => !!(t.flags & 2097152 /* Intersection */)) && getConstituentCountOfTypes(constituents) > getConstituentCountOfTypes(typeSet) ? createOriginUnionOrIntersectionType(2097152 /* Intersection */, typeSet) : void 0;\n result = getUnionType(constituents, 1 /* Literal */, aliasSymbol, aliasTypeArguments, origin);\n }\n } else {\n result = createIntersectionType(typeSet, objectFlags, aliasSymbol, aliasTypeArguments);\n }\n intersectionTypes.set(id, result);\n }\n return result;\n }\n function getCrossProductUnionSize(types) {\n return reduceLeft(types, (n, t) => t.flags & 1048576 /* Union */ ? n * t.types.length : t.flags & 131072 /* Never */ ? 0 : n, 1);\n }\n function checkCrossProductUnion(types) {\n var _a;\n const size = getCrossProductUnionSize(types);\n if (size >= 1e5) {\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"checkCrossProductUnion_DepthLimit\", { typeIds: types.map((t) => t.id), size });\n error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);\n return false;\n }\n return true;\n }\n function getCrossProductIntersections(types, flags) {\n const count = getCrossProductUnionSize(types);\n const intersections = [];\n for (let i = 0; i < count; i++) {\n const constituents = types.slice();\n let n = i;\n for (let j = types.length - 1; j >= 0; j--) {\n if (types[j].flags & 1048576 /* Union */) {\n const sourceTypes = types[j].types;\n const length2 = sourceTypes.length;\n constituents[j] = sourceTypes[n % length2];\n n = Math.floor(n / length2);\n }\n }\n const t = getIntersectionType(constituents, flags);\n if (!(t.flags & 131072 /* Never */)) intersections.push(t);\n }\n return intersections;\n }\n function getConstituentCount(type) {\n return !(type.flags & 3145728 /* UnionOrIntersection */) || type.aliasSymbol ? 1 : type.flags & 1048576 /* Union */ && type.origin ? getConstituentCount(type.origin) : getConstituentCountOfTypes(type.types);\n }\n function getConstituentCountOfTypes(types) {\n return reduceLeft(types, (n, t) => n + getConstituentCount(t), 0);\n }\n function getTypeFromIntersectionTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const aliasSymbol = getAliasSymbolForTypeNode(node);\n const types = map(node.types, getTypeFromTypeNode);\n const emptyIndex = types.length === 2 ? types.indexOf(emptyTypeLiteralType) : -1;\n const t = emptyIndex >= 0 ? types[1 - emptyIndex] : unknownType;\n const noSupertypeReduction = !!(t.flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */) || t.flags & 134217728 /* TemplateLiteral */ && isPatternLiteralType(t));\n links.resolvedType = getIntersectionType(types, noSupertypeReduction ? 1 /* NoSupertypeReduction */ : 0, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol));\n }\n return links.resolvedType;\n }\n function createIndexType(type, indexFlags) {\n const result = createType(4194304 /* Index */);\n result.type = type;\n result.indexFlags = indexFlags;\n return result;\n }\n function createOriginIndexType(type) {\n const result = createOriginType(4194304 /* Index */);\n result.type = type;\n return result;\n }\n function getIndexTypeForGenericType(type, indexFlags) {\n return indexFlags & 1 /* StringsOnly */ ? type.resolvedStringIndexType || (type.resolvedStringIndexType = createIndexType(type, 1 /* StringsOnly */)) : type.resolvedIndexType || (type.resolvedIndexType = createIndexType(type, 0 /* None */));\n }\n function getIndexTypeForMappedType(type, indexFlags) {\n const typeParameter = getTypeParameterFromMappedType(type);\n const constraintType = getConstraintTypeFromMappedType(type);\n const nameType = getNameTypeFromMappedType(type.target || type);\n if (!nameType && !(indexFlags & 2 /* NoIndexSignatures */)) {\n return constraintType;\n }\n const keyTypes = [];\n if (isGenericIndexType(constraintType)) {\n if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n return getIndexTypeForGenericType(type, indexFlags);\n }\n forEachType(constraintType, addMemberForKeyType);\n } else if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));\n forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576 /* StringOrNumberLiteralOrUnique */, !!(indexFlags & 1 /* StringsOnly */), addMemberForKeyType);\n } else {\n forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType);\n }\n const result = indexFlags & 2 /* NoIndexSignatures */ ? filterType(getUnionType(keyTypes), (t) => !(t.flags & (1 /* Any */ | 4 /* String */))) : getUnionType(keyTypes);\n if (result.flags & 1048576 /* Union */ && constraintType.flags & 1048576 /* Union */ && getTypeListId(result.types) === getTypeListId(constraintType.types)) {\n return constraintType;\n }\n return result;\n function addMemberForKeyType(keyType) {\n const propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType;\n keyTypes.push(propNameType === stringType ? stringOrNumberType : propNameType);\n }\n }\n function hasDistributiveNameType(mappedType) {\n const typeVariable = getTypeParameterFromMappedType(mappedType);\n return isDistributive(getNameTypeFromMappedType(mappedType) || typeVariable);\n function isDistributive(type) {\n return type.flags & (3 /* AnyOrUnknown */ | 402784252 /* Primitive */ | 131072 /* Never */ | 262144 /* TypeParameter */ | 524288 /* Object */ | 67108864 /* NonPrimitive */) ? true : type.flags & 16777216 /* Conditional */ ? type.root.isDistributive && type.checkType === typeVariable : type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */) ? every(type.types, isDistributive) : type.flags & 8388608 /* IndexedAccess */ ? isDistributive(type.objectType) && isDistributive(type.indexType) : type.flags & 33554432 /* Substitution */ ? isDistributive(type.baseType) && isDistributive(type.constraint) : type.flags & 268435456 /* StringMapping */ ? isDistributive(type.type) : false;\n }\n }\n function getLiteralTypeFromPropertyName(name) {\n if (isPrivateIdentifier(name)) {\n return neverType;\n }\n if (isNumericLiteral(name)) {\n return getRegularTypeOfLiteralType(checkExpression(name));\n }\n if (isComputedPropertyName(name)) {\n return getRegularTypeOfLiteralType(checkComputedPropertyName(name));\n }\n const propertyName = getPropertyNameForPropertyNameNode(name);\n if (propertyName !== void 0) {\n return getStringLiteralType(unescapeLeadingUnderscores(propertyName));\n }\n if (isExpression(name)) {\n return getRegularTypeOfLiteralType(checkExpression(name));\n }\n return neverType;\n }\n function getLiteralTypeFromProperty(prop, include, includeNonPublic) {\n if (includeNonPublic || !(getDeclarationModifierFlagsFromSymbol(prop) & 6 /* NonPublicAccessibilityModifier */)) {\n let type = getSymbolLinks(getLateBoundSymbol(prop)).nameType;\n if (!type) {\n const name = getNameOfDeclaration(prop.valueDeclaration);\n type = prop.escapedName === \"default\" /* Default */ ? getStringLiteralType(\"default\") : name && getLiteralTypeFromPropertyName(name) || (!isKnownSymbol(prop) ? getStringLiteralType(symbolName(prop)) : void 0);\n }\n if (type && type.flags & include) {\n return type;\n }\n }\n return neverType;\n }\n function isKeyTypeIncluded(keyType, include) {\n return !!(keyType.flags & include || keyType.flags & 2097152 /* Intersection */ && some(keyType.types, (t) => isKeyTypeIncluded(t, include)));\n }\n function getLiteralTypeFromProperties(type, include, includeOrigin) {\n const origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0;\n const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));\n const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType);\n return getUnionType(\n concatenate(propertyTypes, indexKeyTypes),\n 1 /* Literal */,\n /*aliasSymbol*/\n void 0,\n /*aliasTypeArguments*/\n void 0,\n origin\n );\n }\n function shouldDeferIndexType(type, indexFlags = 0 /* None */) {\n return !!(type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericTupleType(type) || isGenericMappedType(type) && (!hasDistributiveNameType(type) || getMappedTypeNameTypeKind(type) === 2 /* Remapping */) || type.flags & 1048576 /* Union */ && !(indexFlags & 4 /* NoReducibleCheck */) && isGenericReducibleType(type) || type.flags & 2097152 /* Intersection */ && maybeTypeOfKind(type, 465829888 /* Instantiable */) && some(type.types, isEmptyAnonymousObjectType));\n }\n function getIndexType(type, indexFlags = 0 /* None */) {\n type = getReducedType(type);\n return isNoInferType(type) ? getNoInferType(getIndexType(type.baseType, indexFlags)) : shouldDeferIndexType(type, indexFlags) ? getIndexTypeForGenericType(type, indexFlags) : type.flags & 1048576 /* Union */ ? getIntersectionType(map(type.types, (t) => getIndexType(t, indexFlags))) : type.flags & 2097152 /* Intersection */ ? getUnionType(map(type.types, (t) => getIndexType(t, indexFlags))) : getObjectFlags(type) & 32 /* Mapped */ ? getIndexTypeForMappedType(type, indexFlags) : type === wildcardType ? wildcardType : type.flags & 2 /* Unknown */ ? neverType : type.flags & (1 /* Any */ | 131072 /* Never */) ? stringNumberSymbolType : getLiteralTypeFromProperties(type, (indexFlags & 2 /* NoIndexSignatures */ ? 128 /* StringLiteral */ : 402653316 /* StringLike */) | (indexFlags & 1 /* StringsOnly */ ? 0 : 296 /* NumberLike */ | 12288 /* ESSymbolLike */), indexFlags === 0 /* None */);\n }\n function getExtractStringType(type) {\n const extractTypeAlias = getGlobalExtractSymbol();\n return extractTypeAlias ? getTypeAliasInstantiation(extractTypeAlias, [type, stringType]) : stringType;\n }\n function getIndexTypeOrString(type) {\n const indexType = getExtractStringType(getIndexType(type));\n return indexType.flags & 131072 /* Never */ ? stringType : indexType;\n }\n function getTypeFromTypeOperatorNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n switch (node.operator) {\n case 143 /* KeyOfKeyword */:\n links.resolvedType = getIndexType(getTypeFromTypeNode(node.type));\n break;\n case 158 /* UniqueKeyword */:\n links.resolvedType = node.type.kind === 155 /* SymbolKeyword */ ? getESSymbolLikeTypeForNode(walkUpParenthesizedTypes(node.parent)) : errorType;\n break;\n case 148 /* ReadonlyKeyword */:\n links.resolvedType = getTypeFromTypeNode(node.type);\n break;\n default:\n Debug.assertNever(node.operator);\n }\n }\n return links.resolvedType;\n }\n function getTypeFromTemplateTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n links.resolvedType = getTemplateLiteralType(\n [node.head.text, ...map(node.templateSpans, (span) => span.literal.text)],\n map(node.templateSpans, (span) => getTypeFromTypeNode(span.type))\n );\n }\n return links.resolvedType;\n }\n function getTemplateLiteralType(texts, types) {\n const unionIndex = findIndex(types, (t) => !!(t.flags & (131072 /* Never */ | 1048576 /* Union */)));\n if (unionIndex >= 0) {\n return checkCrossProductUnion(types) ? mapType(types[unionIndex], (t) => getTemplateLiteralType(texts, replaceElement(types, unionIndex, t))) : errorType;\n }\n if (contains(types, wildcardType)) {\n return wildcardType;\n }\n const newTypes = [];\n const newTexts = [];\n let text = texts[0];\n if (!addSpans(texts, types)) {\n return stringType;\n }\n if (newTypes.length === 0) {\n return getStringLiteralType(text);\n }\n newTexts.push(text);\n if (every(newTexts, (t) => t === \"\")) {\n if (every(newTypes, (t) => !!(t.flags & 4 /* String */))) {\n return stringType;\n }\n if (newTypes.length === 1 && isPatternLiteralType(newTypes[0])) {\n return newTypes[0];\n }\n }\n const id = `${getTypeListId(newTypes)}|${map(newTexts, (t) => t.length).join(\",\")}|${newTexts.join(\"\")}`;\n let type = templateLiteralTypes.get(id);\n if (!type) {\n templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));\n }\n return type;\n function addSpans(texts2, types2) {\n for (let i = 0; i < types2.length; i++) {\n const t = types2[i];\n if (t.flags & (2944 /* Literal */ | 65536 /* Null */ | 32768 /* Undefined */)) {\n text += getTemplateStringForType(t) || \"\";\n text += texts2[i + 1];\n } else if (t.flags & 134217728 /* TemplateLiteral */) {\n text += t.texts[0];\n if (!addSpans(t.texts, t.types)) return false;\n text += texts2[i + 1];\n } else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t)) {\n newTypes.push(t);\n newTexts.push(text);\n text = texts2[i + 1];\n } else {\n return false;\n }\n }\n return true;\n }\n }\n function getTemplateStringForType(type) {\n return type.flags & 128 /* StringLiteral */ ? type.value : type.flags & 256 /* NumberLiteral */ ? \"\" + type.value : type.flags & 2048 /* BigIntLiteral */ ? pseudoBigIntToString(type.value) : type.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) ? type.intrinsicName : void 0;\n }\n function createTemplateLiteralType(texts, types) {\n const type = createType(134217728 /* TemplateLiteral */);\n type.texts = texts;\n type.types = types;\n return type;\n }\n function getStringMappingType(symbol, type) {\n return type.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapType(type, (t) => getStringMappingType(symbol, t)) : type.flags & 128 /* StringLiteral */ ? getStringLiteralType(applyStringMapping(symbol, type.value)) : type.flags & 134217728 /* TemplateLiteral */ ? getTemplateLiteralType(...applyTemplateStringMapping(symbol, type.texts, type.types)) : (\n // Mapping> === Mapping\n type.flags & 268435456 /* StringMapping */ && symbol === type.symbol ? type : type.flags & (1 /* Any */ | 4 /* String */ | 268435456 /* StringMapping */) || isGenericIndexType(type) ? getStringMappingTypeForGenericType(symbol, type) : (\n // This handles Mapping<`${number}`> and Mapping<`${bigint}`>\n isPatternLiteralPlaceholderType(type) ? getStringMappingTypeForGenericType(symbol, getTemplateLiteralType([\"\", \"\"], [type])) : type\n )\n );\n }\n function applyStringMapping(symbol, str) {\n switch (intrinsicTypeKinds.get(symbol.escapedName)) {\n case 0 /* Uppercase */:\n return str.toUpperCase();\n case 1 /* Lowercase */:\n return str.toLowerCase();\n case 2 /* Capitalize */:\n return str.charAt(0).toUpperCase() + str.slice(1);\n case 3 /* Uncapitalize */:\n return str.charAt(0).toLowerCase() + str.slice(1);\n }\n return str;\n }\n function applyTemplateStringMapping(symbol, texts, types) {\n switch (intrinsicTypeKinds.get(symbol.escapedName)) {\n case 0 /* Uppercase */:\n return [texts.map((t) => t.toUpperCase()), types.map((t) => getStringMappingType(symbol, t))];\n case 1 /* Lowercase */:\n return [texts.map((t) => t.toLowerCase()), types.map((t) => getStringMappingType(symbol, t))];\n case 2 /* Capitalize */:\n return [texts[0] === \"\" ? texts : [texts[0].charAt(0).toUpperCase() + texts[0].slice(1), ...texts.slice(1)], texts[0] === \"\" ? [getStringMappingType(symbol, types[0]), ...types.slice(1)] : types];\n case 3 /* Uncapitalize */:\n return [texts[0] === \"\" ? texts : [texts[0].charAt(0).toLowerCase() + texts[0].slice(1), ...texts.slice(1)], texts[0] === \"\" ? [getStringMappingType(symbol, types[0]), ...types.slice(1)] : types];\n }\n return [texts, types];\n }\n function getStringMappingTypeForGenericType(symbol, type) {\n const id = `${getSymbolId(symbol)},${getTypeId(type)}`;\n let result = stringMappingTypes.get(id);\n if (!result) {\n stringMappingTypes.set(id, result = createStringMappingType(symbol, type));\n }\n return result;\n }\n function createStringMappingType(symbol, type) {\n const result = createTypeWithSymbol(268435456 /* StringMapping */, symbol);\n result.type = type;\n return result;\n }\n function createIndexedAccessType(objectType, indexType, accessFlags, aliasSymbol, aliasTypeArguments) {\n const type = createType(8388608 /* IndexedAccess */);\n type.objectType = objectType;\n type.indexType = indexType;\n type.accessFlags = accessFlags;\n type.aliasSymbol = aliasSymbol;\n type.aliasTypeArguments = aliasTypeArguments;\n return type;\n }\n function isJSLiteralType(type) {\n if (noImplicitAny) {\n return false;\n }\n if (getObjectFlags(type) & 4096 /* JSLiteral */) {\n return true;\n }\n if (type.flags & 1048576 /* Union */) {\n return every(type.types, isJSLiteralType);\n }\n if (type.flags & 2097152 /* Intersection */) {\n return some(type.types, isJSLiteralType);\n }\n if (type.flags & 465829888 /* Instantiable */) {\n const constraint = getResolvedBaseConstraint(type);\n return constraint !== type && isJSLiteralType(constraint);\n }\n return false;\n }\n function getPropertyNameFromIndex(indexType, accessNode) {\n return isTypeUsableAsPropertyName(indexType) ? getPropertyNameFromType(indexType) : accessNode && isPropertyName(accessNode) ? (\n // late bound names are handled in the first branch, so here we only need to handle normal names\n getPropertyNameForPropertyNameNode(accessNode)\n ) : void 0;\n }\n function isUncalledFunctionReference(node, symbol) {\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) {\n const parent2 = findAncestor(node.parent, (n) => !isAccessExpression(n)) || node.parent;\n if (isCallLikeExpression(parent2)) {\n return isCallOrNewExpression(parent2) && isIdentifier(node) && hasMatchingArgument(parent2, node);\n }\n return every(symbol.declarations, (d) => !isFunctionLike(d) || isDeprecatedDeclaration2(d));\n }\n return true;\n }\n function getPropertyTypeForIndexType(originalObjectType, objectType, indexType, fullIndexType, accessNode, accessFlags) {\n const accessExpression = accessNode && accessNode.kind === 213 /* ElementAccessExpression */ ? accessNode : void 0;\n const propName = accessNode && isPrivateIdentifier(accessNode) ? void 0 : getPropertyNameFromIndex(indexType, accessNode);\n if (propName !== void 0) {\n if (accessFlags & 256 /* Contextual */) {\n return getTypeOfPropertyOfContextualType(objectType, propName) || anyType;\n }\n const prop = getPropertyOfType(objectType, propName);\n if (prop) {\n if (accessFlags & 64 /* ReportDeprecated */ && accessNode && prop.declarations && isDeprecatedSymbol(prop) && isUncalledFunctionReference(accessNode, prop)) {\n const deprecatedNode = (accessExpression == null ? void 0 : accessExpression.argumentExpression) ?? (isIndexedAccessTypeNode(accessNode) ? accessNode.indexType : accessNode);\n addDeprecatedSuggestion(deprecatedNode, prop.declarations, propName);\n }\n if (accessExpression) {\n markPropertyAsReferenced(prop, accessExpression, isSelfTypeAccess(accessExpression.expression, objectType.symbol));\n if (isAssignmentToReadonlyEntity(accessExpression, prop, getAssignmentTargetKind(accessExpression))) {\n error2(accessExpression.argumentExpression, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(prop));\n return void 0;\n }\n if (accessFlags & 8 /* CacheSymbol */) {\n getNodeLinks(accessNode).resolvedSymbol = prop;\n }\n if (isThisPropertyAccessInConstructor(accessExpression, prop)) {\n return autoType;\n }\n }\n const propType = accessFlags & 4 /* Writing */ ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);\n return accessExpression && getAssignmentTargetKind(accessExpression) !== 1 /* Definite */ ? getFlowTypeOfReference(accessExpression, propType) : accessNode && isIndexedAccessTypeNode(accessNode) && containsMissingType(propType) ? getUnionType([propType, undefinedType]) : propType;\n }\n if (everyType(objectType, isTupleType) && isNumericLiteralName(propName)) {\n const index = +propName;\n if (accessNode && everyType(objectType, (t) => !(t.target.combinedFlags & 12 /* Variable */)) && !(accessFlags & 16 /* AllowMissing */)) {\n const indexNode = getIndexNodeForAccessExpression(accessNode);\n if (isTupleType(objectType)) {\n if (index < 0) {\n error2(indexNode, Diagnostics.A_tuple_type_cannot_be_indexed_with_a_negative_value);\n return undefinedType;\n }\n error2(indexNode, Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2, typeToString(objectType), getTypeReferenceArity(objectType), unescapeLeadingUnderscores(propName));\n } else {\n error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType));\n }\n }\n if (index >= 0) {\n errorIfWritingToReadonlyIndex(getIndexInfoOfType(objectType, numberType));\n return getTupleElementTypeOutOfStartCount(objectType, index, accessFlags & 1 /* IncludeUndefined */ ? missingType : void 0);\n }\n }\n }\n if (!(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */)) {\n if (objectType.flags & (1 /* Any */ | 131072 /* Never */)) {\n return objectType;\n }\n const indexInfo = getApplicableIndexInfo(objectType, indexType) || getIndexInfoOfType(objectType, stringType);\n if (indexInfo) {\n if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) {\n if (accessExpression) {\n if (accessFlags & 4 /* Writing */) {\n error2(accessExpression, Diagnostics.Type_0_is_generic_and_can_only_be_indexed_for_reading, typeToString(originalObjectType));\n } else {\n error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));\n }\n }\n return void 0;\n }\n if (accessNode && indexInfo.keyType === stringType && !isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) {\n const indexNode = getIndexNodeForAccessExpression(accessNode);\n error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeToString(indexType));\n return accessFlags & 1 /* IncludeUndefined */ ? getUnionType([indexInfo.type, missingType]) : indexInfo.type;\n }\n errorIfWritingToReadonlyIndex(indexInfo);\n if (accessFlags & 1 /* IncludeUndefined */ && !(objectType.symbol && objectType.symbol.flags & (256 /* RegularEnum */ | 128 /* ConstEnum */) && (indexType.symbol && indexType.flags & 1024 /* EnumLiteral */ && getParentOfSymbol(indexType.symbol) === objectType.symbol))) {\n return getUnionType([indexInfo.type, missingType]);\n }\n return indexInfo.type;\n }\n if (indexType.flags & 131072 /* Never */) {\n return neverType;\n }\n if (isJSLiteralType(objectType)) {\n return anyType;\n }\n if (accessExpression && !isConstEnumObjectType(objectType)) {\n if (isObjectLiteralType2(objectType)) {\n if (noImplicitAny && indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n diagnostics.add(createDiagnosticForNode(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType)));\n return undefinedType;\n } else if (indexType.flags & (8 /* Number */ | 4 /* String */)) {\n const types = map(objectType.properties, (property) => {\n return getTypeOfSymbol(property);\n });\n return getUnionType(append(types, undefinedType));\n }\n }\n if (objectType.symbol === globalThisSymbol && propName !== void 0 && globalThisSymbol.exports.has(propName) && globalThisSymbol.exports.get(propName).flags & 418 /* BlockScoped */) {\n error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType));\n } else if (noImplicitAny && !(accessFlags & 128 /* SuppressNoImplicitAnyError */)) {\n if (propName !== void 0 && typeHasStaticProperty(propName, objectType)) {\n const typeName = typeToString(objectType);\n error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + \"[\" + getTextOfNode(accessExpression.argumentExpression) + \"]\");\n } else if (getIndexTypeOfType(objectType, numberType)) {\n error2(accessExpression.argumentExpression, Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);\n } else {\n let suggestion;\n if (propName !== void 0 && (suggestion = getSuggestionForNonexistentProperty(propName, objectType))) {\n if (suggestion !== void 0) {\n error2(accessExpression.argumentExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(objectType), suggestion);\n }\n } else {\n const suggestion2 = getSuggestionForNonexistentIndexSignature(objectType, accessExpression, indexType);\n if (suggestion2 !== void 0) {\n error2(accessExpression, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, typeToString(objectType), suggestion2);\n } else {\n let errorInfo;\n if (indexType.flags & 1024 /* EnumLiteral */) {\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Property_0_does_not_exist_on_type_1,\n \"[\" + typeToString(indexType) + \"]\",\n typeToString(objectType)\n );\n } else if (indexType.flags & 8192 /* UniqueESSymbol */) {\n const symbolName2 = getFullyQualifiedName(indexType.symbol, accessExpression);\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Property_0_does_not_exist_on_type_1,\n \"[\" + symbolName2 + \"]\",\n typeToString(objectType)\n );\n } else if (indexType.flags & 128 /* StringLiteral */) {\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Property_0_does_not_exist_on_type_1,\n indexType.value,\n typeToString(objectType)\n );\n } else if (indexType.flags & 256 /* NumberLiteral */) {\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Property_0_does_not_exist_on_type_1,\n indexType.value,\n typeToString(objectType)\n );\n } else if (indexType.flags & (8 /* Number */ | 4 /* String */)) {\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,\n typeToString(indexType),\n typeToString(objectType)\n );\n }\n errorInfo = chainDiagnosticMessages(\n errorInfo,\n Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,\n typeToString(fullIndexType),\n typeToString(objectType)\n );\n diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(accessExpression), accessExpression, errorInfo));\n }\n }\n }\n }\n return void 0;\n }\n }\n if (accessFlags & 16 /* AllowMissing */ && isObjectLiteralType2(objectType)) {\n return undefinedType;\n }\n if (isJSLiteralType(objectType)) {\n return anyType;\n }\n if (accessNode) {\n const indexNode = getIndexNodeForAccessExpression(accessNode);\n if (indexNode.kind !== 10 /* BigIntLiteral */ && indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, \"\" + indexType.value, typeToString(objectType));\n } else if (indexType.flags & (4 /* String */ | 8 /* Number */)) {\n error2(indexNode, Diagnostics.Type_0_has_no_matching_index_signature_for_type_1, typeToString(objectType), typeToString(indexType));\n } else {\n const typeString = indexNode.kind === 10 /* BigIntLiteral */ ? \"bigint\" : typeToString(indexType);\n error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeString);\n }\n }\n if (isTypeAny(indexType)) {\n return indexType;\n }\n return void 0;\n function errorIfWritingToReadonlyIndex(indexInfo) {\n if (indexInfo && indexInfo.isReadonly && accessExpression && (isAssignmentTarget(accessExpression) || isDeleteTarget(accessExpression))) {\n error2(accessExpression, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType));\n }\n }\n }\n function getIndexNodeForAccessExpression(accessNode) {\n return accessNode.kind === 213 /* ElementAccessExpression */ ? accessNode.argumentExpression : accessNode.kind === 200 /* IndexedAccessType */ ? accessNode.indexType : accessNode.kind === 168 /* ComputedPropertyName */ ? accessNode.expression : accessNode;\n }\n function isPatternLiteralPlaceholderType(type) {\n if (type.flags & 2097152 /* Intersection */) {\n let seenPlaceholder = false;\n for (const t of type.types) {\n if (t.flags & (2944 /* Literal */ | 98304 /* Nullable */) || isPatternLiteralPlaceholderType(t)) {\n seenPlaceholder = true;\n } else if (!(t.flags & 524288 /* Object */)) {\n return false;\n }\n }\n return seenPlaceholder;\n }\n return !!(type.flags & (1 /* Any */ | 4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) || isPatternLiteralType(type);\n }\n function isPatternLiteralType(type) {\n return !!(type.flags & 134217728 /* TemplateLiteral */) && every(type.types, isPatternLiteralPlaceholderType) || !!(type.flags & 268435456 /* StringMapping */) && isPatternLiteralPlaceholderType(type.type);\n }\n function isGenericStringLikeType(type) {\n return !!(type.flags & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */)) && !isPatternLiteralType(type);\n }\n function isGenericType(type) {\n return !!getGenericObjectFlags(type);\n }\n function isGenericObjectType(type) {\n return !!(getGenericObjectFlags(type) & 4194304 /* IsGenericObjectType */);\n }\n function isGenericIndexType(type) {\n return !!(getGenericObjectFlags(type) & 8388608 /* IsGenericIndexType */);\n }\n function getGenericObjectFlags(type) {\n if (type.flags & 3145728 /* UnionOrIntersection */) {\n if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) {\n type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | reduceLeft(type.types, (flags, t) => flags | getGenericObjectFlags(t), 0);\n }\n return type.objectFlags & 12582912 /* IsGenericType */;\n }\n if (type.flags & 33554432 /* Substitution */) {\n if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) {\n type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | getGenericObjectFlags(type.baseType) | getGenericObjectFlags(type.constraint);\n }\n return type.objectFlags & 12582912 /* IsGenericType */;\n }\n return (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 /* IsGenericObjectType */ : 0) | (type.flags & (58982400 /* InstantiableNonPrimitive */ | 4194304 /* Index */) || isGenericStringLikeType(type) ? 8388608 /* IsGenericIndexType */ : 0);\n }\n function getSimplifiedType(type, writing) {\n return type.flags & 8388608 /* IndexedAccess */ ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 16777216 /* Conditional */ ? getSimplifiedConditionalType(type, writing) : type;\n }\n function distributeIndexOverObjectType(objectType, indexType, writing) {\n if (objectType.flags & 1048576 /* Union */ || objectType.flags & 2097152 /* Intersection */ && !shouldDeferIndexType(objectType)) {\n const types = map(objectType.types, (t) => getSimplifiedType(getIndexedAccessType(t, indexType), writing));\n return objectType.flags & 2097152 /* Intersection */ || writing ? getIntersectionType(types) : getUnionType(types);\n }\n }\n function distributeObjectOverIndexType(objectType, indexType, writing) {\n if (indexType.flags & 1048576 /* Union */) {\n const types = map(indexType.types, (t) => getSimplifiedType(getIndexedAccessType(objectType, t), writing));\n return writing ? getIntersectionType(types) : getUnionType(types);\n }\n }\n function getSimplifiedIndexedAccessType(type, writing) {\n const cache = writing ? \"simplifiedForWriting\" : \"simplifiedForReading\";\n if (type[cache]) {\n return type[cache] === circularConstraintType ? type : type[cache];\n }\n type[cache] = circularConstraintType;\n const objectType = getSimplifiedType(type.objectType, writing);\n const indexType = getSimplifiedType(type.indexType, writing);\n const distributedOverIndex = distributeObjectOverIndexType(objectType, indexType, writing);\n if (distributedOverIndex) {\n return type[cache] = distributedOverIndex;\n }\n if (!(indexType.flags & 465829888 /* Instantiable */)) {\n const distributedOverObject = distributeIndexOverObjectType(objectType, indexType, writing);\n if (distributedOverObject) {\n return type[cache] = distributedOverObject;\n }\n }\n if (isGenericTupleType(objectType) && indexType.flags & 296 /* NumberLike */) {\n const elementType = getElementTypeOfSliceOfTupleType(\n objectType,\n indexType.flags & 8 /* Number */ ? 0 : objectType.target.fixedLength,\n /*endSkipCount*/\n 0,\n writing\n );\n if (elementType) {\n return type[cache] = elementType;\n }\n }\n if (isGenericMappedType(objectType)) {\n if (getMappedTypeNameTypeKind(objectType) !== 2 /* Remapping */) {\n return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), (t) => getSimplifiedType(t, writing));\n }\n }\n return type[cache] = type;\n }\n function getSimplifiedConditionalType(type, writing) {\n const checkType = type.checkType;\n const extendsType = type.extendsType;\n const trueType2 = getTrueTypeFromConditionalType(type);\n const falseType2 = getFalseTypeFromConditionalType(type);\n if (falseType2.flags & 131072 /* Never */ && getActualTypeVariable(trueType2) === getActualTypeVariable(checkType)) {\n if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {\n return getSimplifiedType(trueType2, writing);\n } else if (isIntersectionEmpty(checkType, extendsType)) {\n return neverType;\n }\n } else if (trueType2.flags & 131072 /* Never */ && getActualTypeVariable(falseType2) === getActualTypeVariable(checkType)) {\n if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {\n return neverType;\n } else if (checkType.flags & 1 /* Any */ || isIntersectionEmpty(checkType, extendsType)) {\n return getSimplifiedType(falseType2, writing);\n }\n }\n return type;\n }\n function isIntersectionEmpty(type1, type2) {\n return !!(getUnionType([intersectTypes(type1, type2), neverType]).flags & 131072 /* Never */);\n }\n function substituteIndexedMappedType(objectType, index) {\n const mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]);\n const templateMapper = combineTypeMappers(objectType.mapper, mapper);\n const instantiatedTemplateType = instantiateType(getTemplateTypeFromMappedType(objectType.target || objectType), templateMapper);\n const isOptional = getMappedTypeOptionality(objectType) > 0 || (isGenericType(objectType) ? getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(objectType)) > 0 : couldAccessOptionalProperty(objectType, index));\n return addOptionality(\n instantiatedTemplateType,\n /*isProperty*/\n true,\n isOptional\n );\n }\n function couldAccessOptionalProperty(objectType, indexType) {\n const indexConstraint = getBaseConstraintOfType(indexType);\n return !!indexConstraint && some(getPropertiesOfType(objectType), (p) => !!(p.flags & 16777216 /* Optional */) && isTypeAssignableTo(getLiteralTypeFromProperty(p, 8576 /* StringOrNumberLiteralOrUnique */), indexConstraint));\n }\n function getIndexedAccessType(objectType, indexType, accessFlags = 0 /* None */, accessNode, aliasSymbol, aliasTypeArguments) {\n return getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags, accessNode, aliasSymbol, aliasTypeArguments) || (accessNode ? errorType : unknownType);\n }\n function indexTypeLessThan(indexType, limit) {\n return everyType(indexType, (t) => {\n if (t.flags & 384 /* StringOrNumberLiteral */) {\n const propName = getPropertyNameFromType(t);\n if (isNumericLiteralName(propName)) {\n const index = +propName;\n return index >= 0 && index < limit;\n }\n }\n return false;\n });\n }\n function getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags = 0 /* None */, accessNode, aliasSymbol, aliasTypeArguments) {\n if (objectType === wildcardType || indexType === wildcardType) {\n return wildcardType;\n }\n objectType = getReducedType(objectType);\n if (isStringIndexSignatureOnlyType(objectType) && !(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) {\n indexType = stringType;\n }\n if (compilerOptions.noUncheckedIndexedAccess && accessFlags & 32 /* ExpressionPosition */) accessFlags |= 1 /* IncludeUndefined */;\n if (isGenericIndexType(indexType) || (accessNode && accessNode.kind !== 200 /* IndexedAccessType */ ? isGenericTupleType(objectType) && !indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target)) : isGenericObjectType(objectType) && !(isTupleType(objectType) && indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target))) || isGenericReducibleType(objectType))) {\n if (objectType.flags & 3 /* AnyOrUnknown */) {\n return objectType;\n }\n const persistentAccessFlags = accessFlags & 1 /* Persistent */;\n const id = objectType.id + \",\" + indexType.id + \",\" + persistentAccessFlags + getAliasId(aliasSymbol, aliasTypeArguments);\n let type = indexedAccessTypes.get(id);\n if (!type) {\n indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType, persistentAccessFlags, aliasSymbol, aliasTypeArguments));\n }\n return type;\n }\n const apparentObjectType = getReducedApparentType(objectType);\n if (indexType.flags & 1048576 /* Union */ && !(indexType.flags & 16 /* Boolean */)) {\n const propTypes = [];\n let wasMissingProp = false;\n for (const t of indexType.types) {\n const propType = getPropertyTypeForIndexType(objectType, apparentObjectType, t, indexType, accessNode, accessFlags | (wasMissingProp ? 128 /* SuppressNoImplicitAnyError */ : 0));\n if (propType) {\n propTypes.push(propType);\n } else if (!accessNode) {\n return void 0;\n } else {\n wasMissingProp = true;\n }\n }\n if (wasMissingProp) {\n return void 0;\n }\n return accessFlags & 4 /* Writing */ ? getIntersectionType(propTypes, 0 /* None */, aliasSymbol, aliasTypeArguments) : getUnionType(propTypes, 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n }\n return getPropertyTypeForIndexType(objectType, apparentObjectType, indexType, indexType, accessNode, accessFlags | 8 /* CacheSymbol */ | 64 /* ReportDeprecated */);\n }\n function getTypeFromIndexedAccessTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const objectType = getTypeFromTypeNode(node.objectType);\n const indexType = getTypeFromTypeNode(node.indexType);\n const potentialAlias = getAliasSymbolForTypeNode(node);\n links.resolvedType = getIndexedAccessType(objectType, indexType, 0 /* None */, node, potentialAlias, getTypeArgumentsForAliasSymbol(potentialAlias));\n }\n return links.resolvedType;\n }\n function getTypeFromMappedTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const type = createObjectType(32 /* Mapped */, node.symbol);\n type.declaration = node;\n type.aliasSymbol = getAliasSymbolForTypeNode(node);\n type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(type.aliasSymbol);\n links.resolvedType = type;\n getConstraintTypeFromMappedType(type);\n }\n return links.resolvedType;\n }\n function getActualTypeVariable(type) {\n if (type.flags & 33554432 /* Substitution */) {\n return getActualTypeVariable(type.baseType);\n }\n if (type.flags & 8388608 /* IndexedAccess */ && (type.objectType.flags & 33554432 /* Substitution */ || type.indexType.flags & 33554432 /* Substitution */)) {\n return getIndexedAccessType(getActualTypeVariable(type.objectType), getActualTypeVariable(type.indexType));\n }\n return type;\n }\n function isSimpleTupleType(node) {\n return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, (e) => isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken));\n }\n function isDeferredType(type, checkTuples) {\n return isGenericType(type) || checkTuples && isTupleType(type) && some(getElementTypes(type), isGenericType);\n }\n function getConditionalType(root, mapper, forConstraint, aliasSymbol, aliasTypeArguments) {\n let result;\n let extraTypes;\n let tailCount = 0;\n while (true) {\n if (tailCount === 1e3) {\n error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);\n return errorType;\n }\n const checkType = instantiateType(getActualTypeVariable(root.checkType), mapper);\n const extendsType = instantiateType(root.extendsType, mapper);\n if (checkType === errorType || extendsType === errorType) {\n return errorType;\n }\n if (checkType === wildcardType || extendsType === wildcardType) {\n return wildcardType;\n }\n const checkTypeNode = skipTypeParentheses(root.node.checkType);\n const extendsTypeNode = skipTypeParentheses(root.node.extendsType);\n const checkTuples = isSimpleTupleType(checkTypeNode) && isSimpleTupleType(extendsTypeNode) && length(checkTypeNode.elements) === length(extendsTypeNode.elements);\n const checkTypeDeferred = isDeferredType(checkType, checkTuples);\n let combinedMapper;\n if (root.inferTypeParameters) {\n const context = createInferenceContext(\n root.inferTypeParameters,\n /*signature*/\n void 0,\n 0 /* None */\n );\n if (mapper) {\n context.nonFixingMapper = combineTypeMappers(context.nonFixingMapper, mapper);\n }\n if (!checkTypeDeferred) {\n inferTypes(context.inferences, checkType, extendsType, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);\n }\n combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper;\n }\n const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;\n if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {\n if (!(inferredExtendsType.flags & 3 /* AnyOrUnknown */) && (checkType.flags & 1 /* Any */ || !isTypeAssignableTo(getPermissiveInstantiation(checkType), getPermissiveInstantiation(inferredExtendsType)))) {\n if (checkType.flags & 1 /* Any */ || forConstraint && !(inferredExtendsType.flags & 131072 /* Never */) && someType(getPermissiveInstantiation(inferredExtendsType), (t) => isTypeAssignableTo(t, getPermissiveInstantiation(checkType)))) {\n (extraTypes || (extraTypes = [])).push(instantiateType(getTypeFromTypeNode(root.node.trueType), combinedMapper || mapper));\n }\n const falseType2 = getTypeFromTypeNode(root.node.falseType);\n if (falseType2.flags & 16777216 /* Conditional */) {\n const newRoot = falseType2.root;\n if (newRoot.node.parent === root.node && (!newRoot.isDistributive || newRoot.checkType === root.checkType)) {\n root = newRoot;\n continue;\n }\n if (canTailRecurse(falseType2, mapper)) {\n continue;\n }\n }\n result = instantiateType(falseType2, mapper);\n break;\n }\n if (inferredExtendsType.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(inferredExtendsType))) {\n const trueType2 = getTypeFromTypeNode(root.node.trueType);\n const trueMapper = combinedMapper || mapper;\n if (canTailRecurse(trueType2, trueMapper)) {\n continue;\n }\n result = instantiateType(trueType2, trueMapper);\n break;\n }\n }\n result = createType(16777216 /* Conditional */);\n result.root = root;\n result.checkType = instantiateType(root.checkType, mapper);\n result.extendsType = instantiateType(root.extendsType, mapper);\n result.mapper = mapper;\n result.combinedMapper = combinedMapper;\n result.aliasSymbol = aliasSymbol || root.aliasSymbol;\n result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(root.aliasTypeArguments, mapper);\n break;\n }\n return extraTypes ? getUnionType(append(extraTypes, result)) : result;\n function canTailRecurse(newType, newMapper) {\n if (newType.flags & 16777216 /* Conditional */ && newMapper) {\n const newRoot = newType.root;\n if (newRoot.outerTypeParameters) {\n const typeParamMapper = combineTypeMappers(newType.mapper, newMapper);\n const typeArguments = map(newRoot.outerTypeParameters, (t) => getMappedType(t, typeParamMapper));\n const newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments);\n const newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : void 0;\n if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (1048576 /* Union */ | 131072 /* Never */))) {\n root = newRoot;\n mapper = newRootMapper;\n aliasSymbol = void 0;\n aliasTypeArguments = void 0;\n if (newRoot.aliasSymbol) {\n tailCount++;\n }\n return true;\n }\n }\n }\n return false;\n }\n }\n function getTrueTypeFromConditionalType(type) {\n return type.resolvedTrueType || (type.resolvedTrueType = instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.mapper));\n }\n function getFalseTypeFromConditionalType(type) {\n return type.resolvedFalseType || (type.resolvedFalseType = instantiateType(getTypeFromTypeNode(type.root.node.falseType), type.mapper));\n }\n function getInferredTrueTypeFromConditionalType(type) {\n return type.resolvedInferredTrueType || (type.resolvedInferredTrueType = type.combinedMapper ? instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.combinedMapper) : getTrueTypeFromConditionalType(type));\n }\n function getInferTypeParameters(node) {\n let result;\n if (node.locals) {\n node.locals.forEach((symbol) => {\n if (symbol.flags & 262144 /* TypeParameter */) {\n result = append(result, getDeclaredTypeOfSymbol(symbol));\n }\n });\n }\n return result;\n }\n function isDistributionDependent(root) {\n return root.isDistributive && (isTypeParameterPossiblyReferenced(root.checkType, root.node.trueType) || isTypeParameterPossiblyReferenced(root.checkType, root.node.falseType));\n }\n function getTypeFromConditionalTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const checkType = getTypeFromTypeNode(node.checkType);\n const aliasSymbol = getAliasSymbolForTypeNode(node);\n const aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n const allOuterTypeParameters = getOuterTypeParameters(\n node,\n /*includeThisTypes*/\n true\n );\n const outerTypeParameters = aliasTypeArguments ? allOuterTypeParameters : filter(allOuterTypeParameters, (tp) => isTypeParameterPossiblyReferenced(tp, node));\n const root = {\n node,\n checkType,\n extendsType: getTypeFromTypeNode(node.extendsType),\n isDistributive: !!(checkType.flags & 262144 /* TypeParameter */),\n inferTypeParameters: getInferTypeParameters(node),\n outerTypeParameters,\n instantiations: void 0,\n aliasSymbol,\n aliasTypeArguments\n };\n links.resolvedType = getConditionalType(\n root,\n /*mapper*/\n void 0,\n /*forConstraint*/\n false\n );\n if (outerTypeParameters) {\n root.instantiations = /* @__PURE__ */ new Map();\n root.instantiations.set(getTypeListId(outerTypeParameters), links.resolvedType);\n }\n }\n return links.resolvedType;\n }\n function getTypeFromInferTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n links.resolvedType = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter));\n }\n return links.resolvedType;\n }\n function getIdentifierChain(node) {\n if (isIdentifier(node)) {\n return [node];\n } else {\n return append(getIdentifierChain(node.left), node.right);\n }\n }\n function getTypeFromImportTypeNode(node) {\n var _a;\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n if (!isLiteralImportTypeNode(node)) {\n error2(node.argument, Diagnostics.String_literal_expected);\n links.resolvedSymbol = unknownSymbol;\n return links.resolvedType = errorType;\n }\n const targetMeaning = node.isTypeOf ? 111551 /* Value */ : node.flags & 16777216 /* JSDoc */ ? 111551 /* Value */ | 788968 /* Type */ : 788968 /* Type */;\n const innerModuleSymbol = resolveExternalModuleName(node, node.argument.literal);\n if (!innerModuleSymbol) {\n links.resolvedSymbol = unknownSymbol;\n return links.resolvedType = errorType;\n }\n const isExportEquals = !!((_a = innerModuleSymbol.exports) == null ? void 0 : _a.get(\"export=\" /* ExportEquals */));\n const moduleSymbol = resolveExternalModuleSymbol(\n innerModuleSymbol,\n /*dontResolveAlias*/\n false\n );\n if (!nodeIsMissing(node.qualifier)) {\n const nameStack = getIdentifierChain(node.qualifier);\n let currentNamespace = moduleSymbol;\n let current;\n while (current = nameStack.shift()) {\n const meaning = nameStack.length ? 1920 /* Namespace */ : targetMeaning;\n const mergedResolvedSymbol = getMergedSymbol(resolveSymbol(currentNamespace));\n const symbolFromVariable = node.isTypeOf || isInJSFile(node) && isExportEquals ? getPropertyOfType(\n getTypeOfSymbol(mergedResolvedSymbol),\n current.escapedText,\n /*skipObjectFunctionPropertyAugment*/\n false,\n /*includeTypeOnlyMembers*/\n true\n ) : void 0;\n const symbolFromModule = node.isTypeOf ? void 0 : getSymbol2(getExportsOfSymbol(mergedResolvedSymbol), current.escapedText, meaning);\n const next = symbolFromModule ?? symbolFromVariable;\n if (!next) {\n error2(current, Diagnostics.Namespace_0_has_no_exported_member_1, getFullyQualifiedName(currentNamespace), declarationNameToString(current));\n return links.resolvedType = errorType;\n }\n getNodeLinks(current).resolvedSymbol = next;\n getNodeLinks(current.parent).resolvedSymbol = next;\n currentNamespace = next;\n }\n links.resolvedType = resolveImportSymbolType(node, links, currentNamespace, targetMeaning);\n } else {\n if (moduleSymbol.flags & targetMeaning) {\n links.resolvedType = resolveImportSymbolType(node, links, moduleSymbol, targetMeaning);\n } else {\n const errorMessage = targetMeaning === 111551 /* Value */ ? Diagnostics.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here : Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0;\n error2(node, errorMessage, node.argument.literal.text);\n links.resolvedSymbol = unknownSymbol;\n links.resolvedType = errorType;\n }\n }\n }\n return links.resolvedType;\n }\n function resolveImportSymbolType(node, links, symbol, meaning) {\n const resolvedSymbol = resolveSymbol(symbol);\n links.resolvedSymbol = resolvedSymbol;\n if (meaning === 111551 /* Value */) {\n return getInstantiationExpressionType(getTypeOfSymbol(symbol), node);\n } else {\n return getTypeReferenceType(node, resolvedSymbol);\n }\n }\n function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const aliasSymbol = getAliasSymbolForTypeNode(node);\n if (!node.symbol || getMembersOfSymbol(node.symbol).size === 0 && !aliasSymbol) {\n links.resolvedType = emptyTypeLiteralType;\n } else {\n let type = createObjectType(16 /* Anonymous */, node.symbol);\n type.aliasSymbol = aliasSymbol;\n type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n if (isJSDocTypeLiteral(node) && node.isArrayType) {\n type = createArrayType(type);\n }\n links.resolvedType = type;\n }\n }\n return links.resolvedType;\n }\n function getAliasSymbolForTypeNode(node) {\n let host2 = node.parent;\n while (isParenthesizedTypeNode(host2) || isJSDocTypeExpression(host2) || isTypeOperatorNode(host2) && host2.operator === 148 /* ReadonlyKeyword */) {\n host2 = host2.parent;\n }\n return isTypeAlias(host2) ? getSymbolOfDeclaration(host2) : void 0;\n }\n function getTypeArgumentsForAliasSymbol(symbol) {\n return symbol ? getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) : void 0;\n }\n function isNonGenericObjectType(type) {\n return !!(type.flags & 524288 /* Object */) && !isGenericMappedType(type);\n }\n function isEmptyObjectTypeOrSpreadsIntoEmptyObject(type) {\n return isEmptyObjectType(type) || !!(type.flags & (65536 /* Null */ | 32768 /* Undefined */ | 528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */));\n }\n function tryMergeUnionOfObjectTypeAndEmptyObject(type, readonly) {\n if (!(type.flags & 1048576 /* Union */)) {\n return type;\n }\n if (every(type.types, isEmptyObjectTypeOrSpreadsIntoEmptyObject)) {\n return find(type.types, isEmptyObjectType) || emptyObjectType;\n }\n const firstType = find(type.types, (t) => !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t));\n if (!firstType) {\n return type;\n }\n const secondType = find(type.types, (t) => t !== firstType && !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t));\n if (secondType) {\n return type;\n }\n return getAnonymousPartialType(firstType);\n function getAnonymousPartialType(type2) {\n const members = createSymbolTable();\n for (const prop of getPropertiesOfType(type2)) {\n if (getDeclarationModifierFlagsFromSymbol(prop) & (2 /* Private */ | 4 /* Protected */)) {\n } else if (isSpreadableProperty(prop)) {\n const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n const flags = 4 /* Property */ | 16777216 /* Optional */;\n const result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0));\n result.links.type = isSetonlyAccessor ? undefinedType : addOptionality(\n getTypeOfSymbol(prop),\n /*isProperty*/\n true\n );\n result.declarations = prop.declarations;\n result.links.nameType = getSymbolLinks(prop).nameType;\n result.links.syntheticOrigin = prop;\n members.set(prop.escapedName, result);\n }\n }\n const spread = createAnonymousType(type2.symbol, members, emptyArray, emptyArray, getIndexInfosOfType(type2));\n spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n return spread;\n }\n }\n function getSpreadType(left, right, symbol, objectFlags, readonly) {\n if (left.flags & 1 /* Any */ || right.flags & 1 /* Any */) {\n return anyType;\n }\n if (left.flags & 2 /* Unknown */ || right.flags & 2 /* Unknown */) {\n return unknownType;\n }\n if (left.flags & 131072 /* Never */) {\n return right;\n }\n if (right.flags & 131072 /* Never */) {\n return left;\n }\n left = tryMergeUnionOfObjectTypeAndEmptyObject(left, readonly);\n if (left.flags & 1048576 /* Union */) {\n return checkCrossProductUnion([left, right]) ? mapType(left, (t) => getSpreadType(t, right, symbol, objectFlags, readonly)) : errorType;\n }\n right = tryMergeUnionOfObjectTypeAndEmptyObject(right, readonly);\n if (right.flags & 1048576 /* Union */) {\n return checkCrossProductUnion([left, right]) ? mapType(right, (t) => getSpreadType(left, t, symbol, objectFlags, readonly)) : errorType;\n }\n if (right.flags & (528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */)) {\n return left;\n }\n if (isGenericObjectType(left) || isGenericObjectType(right)) {\n if (isEmptyObjectType(left)) {\n return right;\n }\n if (left.flags & 2097152 /* Intersection */) {\n const types = left.types;\n const lastLeft = types[types.length - 1];\n if (isNonGenericObjectType(lastLeft) && isNonGenericObjectType(right)) {\n return getIntersectionType(concatenate(types.slice(0, types.length - 1), [getSpreadType(lastLeft, right, symbol, objectFlags, readonly)]));\n }\n }\n return getIntersectionType([left, right]);\n }\n const members = createSymbolTable();\n const skippedPrivateMembers = /* @__PURE__ */ new Set();\n const indexInfos = left === emptyObjectType ? getIndexInfosOfType(right) : getUnionIndexInfos([left, right]);\n for (const rightProp of getPropertiesOfType(right)) {\n if (getDeclarationModifierFlagsFromSymbol(rightProp) & (2 /* Private */ | 4 /* Protected */)) {\n skippedPrivateMembers.add(rightProp.escapedName);\n } else if (isSpreadableProperty(rightProp)) {\n members.set(rightProp.escapedName, getSpreadSymbol(rightProp, readonly));\n }\n }\n for (const leftProp of getPropertiesOfType(left)) {\n if (skippedPrivateMembers.has(leftProp.escapedName) || !isSpreadableProperty(leftProp)) {\n continue;\n }\n if (members.has(leftProp.escapedName)) {\n const rightProp = members.get(leftProp.escapedName);\n const rightType = getTypeOfSymbol(rightProp);\n if (rightProp.flags & 16777216 /* Optional */) {\n const declarations = concatenate(leftProp.declarations, rightProp.declarations);\n const flags = 4 /* Property */ | leftProp.flags & 16777216 /* Optional */;\n const result = createSymbol(flags, leftProp.escapedName);\n const leftType = getTypeOfSymbol(leftProp);\n const leftTypeWithoutUndefined = removeMissingOrUndefinedType(leftType);\n const rightTypeWithoutUndefined = removeMissingOrUndefinedType(rightType);\n result.links.type = leftTypeWithoutUndefined === rightTypeWithoutUndefined ? leftType : getUnionType([leftType, rightTypeWithoutUndefined], 2 /* Subtype */);\n result.links.leftSpread = leftProp;\n result.links.rightSpread = rightProp;\n result.declarations = declarations;\n result.links.nameType = getSymbolLinks(leftProp).nameType;\n members.set(leftProp.escapedName, result);\n }\n } else {\n members.set(leftProp.escapedName, getSpreadSymbol(leftProp, readonly));\n }\n }\n const spread = createAnonymousType(symbol, members, emptyArray, emptyArray, sameMap(indexInfos, (info) => getIndexInfoWithReadonly(info, readonly)));\n spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */ | 2097152 /* ContainsSpread */ | objectFlags;\n return spread;\n }\n function isSpreadableProperty(prop) {\n var _a;\n return !some(prop.declarations, isPrivateIdentifierClassElementDeclaration) && (!(prop.flags & (8192 /* Method */ | 32768 /* GetAccessor */ | 65536 /* SetAccessor */)) || !((_a = prop.declarations) == null ? void 0 : _a.some((decl) => isClassLike(decl.parent))));\n }\n function getSpreadSymbol(prop, readonly) {\n const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n if (!isSetonlyAccessor && readonly === isReadonlySymbol(prop)) {\n return prop;\n }\n const flags = 4 /* Property */ | prop.flags & 16777216 /* Optional */;\n const result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0));\n result.links.type = isSetonlyAccessor ? undefinedType : getTypeOfSymbol(prop);\n result.declarations = prop.declarations;\n result.links.nameType = getSymbolLinks(prop).nameType;\n result.links.syntheticOrigin = prop;\n return result;\n }\n function getIndexInfoWithReadonly(info, readonly) {\n return info.isReadonly !== readonly ? createIndexInfo(info.keyType, info.type, readonly, info.declaration, info.components) : info;\n }\n function createLiteralType(flags, value, symbol, regularType) {\n const type = createTypeWithSymbol(flags, symbol);\n type.value = value;\n type.regularType = regularType || type;\n return type;\n }\n function getFreshTypeOfLiteralType(type) {\n if (type.flags & 2976 /* Freshable */) {\n if (!type.freshType) {\n const freshType = createLiteralType(type.flags, type.value, type.symbol, type);\n freshType.freshType = freshType;\n type.freshType = freshType;\n }\n return type.freshType;\n }\n return type;\n }\n function getRegularTypeOfLiteralType(type) {\n return type.flags & 2976 /* Freshable */ ? type.regularType : type.flags & 1048576 /* Union */ ? type.regularType || (type.regularType = mapType(type, getRegularTypeOfLiteralType)) : type;\n }\n function isFreshLiteralType(type) {\n return !!(type.flags & 2976 /* Freshable */) && type.freshType === type;\n }\n function getStringLiteralType(value) {\n let type;\n return stringLiteralTypes.get(value) || (stringLiteralTypes.set(value, type = createLiteralType(128 /* StringLiteral */, value)), type);\n }\n function getNumberLiteralType(value) {\n let type;\n return numberLiteralTypes.get(value) || (numberLiteralTypes.set(value, type = createLiteralType(256 /* NumberLiteral */, value)), type);\n }\n function getBigIntLiteralType(value) {\n let type;\n const key = pseudoBigIntToString(value);\n return bigIntLiteralTypes.get(key) || (bigIntLiteralTypes.set(key, type = createLiteralType(2048 /* BigIntLiteral */, value)), type);\n }\n function getEnumLiteralType(value, enumId, symbol) {\n let type;\n const key = `${enumId}${typeof value === \"string\" ? \"@\" : \"#\"}${value}`;\n const flags = 1024 /* EnumLiteral */ | (typeof value === \"string\" ? 128 /* StringLiteral */ : 256 /* NumberLiteral */);\n return enumLiteralTypes.get(key) || (enumLiteralTypes.set(key, type = createLiteralType(flags, value, symbol)), type);\n }\n function getTypeFromLiteralTypeNode(node) {\n if (node.literal.kind === 106 /* NullKeyword */) {\n return nullType;\n }\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n links.resolvedType = getRegularTypeOfLiteralType(checkExpression(node.literal));\n }\n return links.resolvedType;\n }\n function createUniqueESSymbolType(symbol) {\n const type = createTypeWithSymbol(8192 /* UniqueESSymbol */, symbol);\n type.escapedName = `__@${type.symbol.escapedName}@${getSymbolId(type.symbol)}`;\n return type;\n }\n function getESSymbolLikeTypeForNode(node) {\n if (isInJSFile(node) && isJSDocTypeExpression(node)) {\n const host2 = getJSDocHost(node);\n if (host2) {\n node = getSingleVariableOfVariableStatement(host2) || host2;\n }\n }\n if (isValidESSymbolDeclaration(node)) {\n const symbol = isCommonJsExportPropertyAssignment(node) ? getSymbolOfNode(node.left) : getSymbolOfNode(node);\n if (symbol) {\n const links = getSymbolLinks(symbol);\n return links.uniqueESSymbolType || (links.uniqueESSymbolType = createUniqueESSymbolType(symbol));\n }\n }\n return esSymbolType;\n }\n function getThisType(node) {\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n const parent2 = container && container.parent;\n if (parent2 && (isClassLike(parent2) || parent2.kind === 265 /* InterfaceDeclaration */)) {\n if (!isStatic(container) && (!isConstructorDeclaration(container) || isNodeDescendantOf(node, container.body))) {\n return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(parent2)).thisType;\n }\n }\n if (parent2 && isObjectLiteralExpression(parent2) && isBinaryExpression(parent2.parent) && getAssignmentDeclarationKind(parent2.parent) === 6 /* Prototype */) {\n return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent2.parent.left).parent).thisType;\n }\n const host2 = node.flags & 16777216 /* JSDoc */ ? getHostSignatureFromJSDoc(node) : void 0;\n if (host2 && isFunctionExpression(host2) && isBinaryExpression(host2.parent) && getAssignmentDeclarationKind(host2.parent) === 3 /* PrototypeProperty */) {\n return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(host2.parent.left).parent).thisType;\n }\n if (isJSConstructor(container) && isNodeDescendantOf(node, container.body)) {\n return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(container)).thisType;\n }\n error2(node, Diagnostics.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface);\n return errorType;\n }\n function getTypeFromThisTypeNode(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n links.resolvedType = getThisType(node);\n }\n return links.resolvedType;\n }\n function getTypeFromRestTypeNode(node) {\n return getTypeFromTypeNode(getArrayElementTypeNode(node.type) || node.type);\n }\n function getArrayElementTypeNode(node) {\n switch (node.kind) {\n case 197 /* ParenthesizedType */:\n return getArrayElementTypeNode(node.type);\n case 190 /* TupleType */:\n if (node.elements.length === 1) {\n node = node.elements[0];\n if (node.kind === 192 /* RestType */ || node.kind === 203 /* NamedTupleMember */ && node.dotDotDotToken) {\n return getArrayElementTypeNode(node.type);\n }\n }\n break;\n case 189 /* ArrayType */:\n return node.elementType;\n }\n return void 0;\n }\n function getTypeFromNamedTupleTypeNode(node) {\n const links = getNodeLinks(node);\n return links.resolvedType || (links.resolvedType = node.dotDotDotToken ? getTypeFromRestTypeNode(node) : addOptionality(\n getTypeFromTypeNode(node.type),\n /*isProperty*/\n true,\n !!node.questionToken\n ));\n }\n function getTypeFromTypeNode(node) {\n return getConditionalFlowTypeOfType(getTypeFromTypeNodeWorker(node), node);\n }\n function getTypeFromTypeNodeWorker(node) {\n switch (node.kind) {\n case 133 /* AnyKeyword */:\n case 313 /* JSDocAllType */:\n case 314 /* JSDocUnknownType */:\n return anyType;\n case 159 /* UnknownKeyword */:\n return unknownType;\n case 154 /* StringKeyword */:\n return stringType;\n case 150 /* NumberKeyword */:\n return numberType;\n case 163 /* BigIntKeyword */:\n return bigintType;\n case 136 /* BooleanKeyword */:\n return booleanType;\n case 155 /* SymbolKeyword */:\n return esSymbolType;\n case 116 /* VoidKeyword */:\n return voidType;\n case 157 /* UndefinedKeyword */:\n return undefinedType;\n case 106 /* NullKeyword */:\n return nullType;\n case 146 /* NeverKeyword */:\n return neverType;\n case 151 /* ObjectKeyword */:\n return node.flags & 524288 /* JavaScriptFile */ && !noImplicitAny ? anyType : nonPrimitiveType;\n case 141 /* IntrinsicKeyword */:\n return intrinsicMarkerType;\n case 198 /* ThisType */:\n case 110 /* ThisKeyword */:\n return getTypeFromThisTypeNode(node);\n case 202 /* LiteralType */:\n return getTypeFromLiteralTypeNode(node);\n case 184 /* TypeReference */:\n return getTypeFromTypeReference(node);\n case 183 /* TypePredicate */:\n return node.assertsModifier ? voidType : booleanType;\n case 234 /* ExpressionWithTypeArguments */:\n return getTypeFromTypeReference(node);\n case 187 /* TypeQuery */:\n return getTypeFromTypeQueryNode(node);\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n return getTypeFromArrayOrTupleTypeNode(node);\n case 191 /* OptionalType */:\n return getTypeFromOptionalTypeNode(node);\n case 193 /* UnionType */:\n return getTypeFromUnionTypeNode(node);\n case 194 /* IntersectionType */:\n return getTypeFromIntersectionTypeNode(node);\n case 315 /* JSDocNullableType */:\n return getTypeFromJSDocNullableTypeNode(node);\n case 317 /* JSDocOptionalType */:\n return addOptionality(getTypeFromTypeNode(node.type));\n case 203 /* NamedTupleMember */:\n return getTypeFromNamedTupleTypeNode(node);\n case 197 /* ParenthesizedType */:\n case 316 /* JSDocNonNullableType */:\n case 310 /* JSDocTypeExpression */:\n return getTypeFromTypeNode(node.type);\n case 192 /* RestType */:\n return getTypeFromRestTypeNode(node);\n case 319 /* JSDocVariadicType */:\n return getTypeFromJSDocVariadicType(node);\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 188 /* TypeLiteral */:\n case 323 /* JSDocTypeLiteral */:\n case 318 /* JSDocFunctionType */:\n case 324 /* JSDocSignature */:\n return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);\n case 199 /* TypeOperator */:\n return getTypeFromTypeOperatorNode(node);\n case 200 /* IndexedAccessType */:\n return getTypeFromIndexedAccessTypeNode(node);\n case 201 /* MappedType */:\n return getTypeFromMappedTypeNode(node);\n case 195 /* ConditionalType */:\n return getTypeFromConditionalTypeNode(node);\n case 196 /* InferType */:\n return getTypeFromInferTypeNode(node);\n case 204 /* TemplateLiteralType */:\n return getTypeFromTemplateTypeNode(node);\n case 206 /* ImportType */:\n return getTypeFromImportTypeNode(node);\n // This function assumes that an identifier, qualified name, or property access expression is a type expression\n // Callers should first ensure this by calling `isPartOfTypeNode`\n // TODO(rbuckton): These aren't valid TypeNodes, but we treat them as such because of `isPartOfTypeNode`, which returns `true` for things that aren't `TypeNode`s.\n case 80 /* Identifier */:\n case 167 /* QualifiedName */:\n case 212 /* PropertyAccessExpression */:\n const symbol = getSymbolAtLocation(node);\n return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType;\n default:\n return errorType;\n }\n }\n function instantiateList(items, mapper, instantiator) {\n if (items && items.length) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const mapped = instantiator(item, mapper);\n if (item !== mapped) {\n const result = i === 0 ? [] : items.slice(0, i);\n result.push(mapped);\n for (i++; i < items.length; i++) {\n result.push(instantiator(items[i], mapper));\n }\n return result;\n }\n }\n }\n return items;\n }\n function instantiateTypes(types, mapper) {\n return instantiateList(types, mapper, instantiateType);\n }\n function instantiateSignatures(signatures, mapper) {\n return instantiateList(signatures, mapper, instantiateSignature);\n }\n function instantiateIndexInfos(indexInfos, mapper) {\n return instantiateList(indexInfos, mapper, instantiateIndexInfo);\n }\n function createTypeMapper(sources, targets) {\n return sources.length === 1 ? makeUnaryTypeMapper(sources[0], targets ? targets[0] : anyType) : makeArrayTypeMapper(sources, targets);\n }\n function getMappedType(type, mapper) {\n switch (mapper.kind) {\n case 0 /* Simple */:\n return type === mapper.source ? mapper.target : type;\n case 1 /* Array */: {\n const sources = mapper.sources;\n const targets = mapper.targets;\n for (let i = 0; i < sources.length; i++) {\n if (type === sources[i]) {\n return targets ? targets[i] : anyType;\n }\n }\n return type;\n }\n case 2 /* Deferred */: {\n const sources = mapper.sources;\n const targets = mapper.targets;\n for (let i = 0; i < sources.length; i++) {\n if (type === sources[i]) {\n return targets[i]();\n }\n }\n return type;\n }\n case 3 /* Function */:\n return mapper.func(type);\n case 4 /* Composite */:\n case 5 /* Merged */:\n const t1 = getMappedType(type, mapper.mapper1);\n return t1 !== type && mapper.kind === 4 /* Composite */ ? instantiateType(t1, mapper.mapper2) : getMappedType(t1, mapper.mapper2);\n }\n }\n function makeUnaryTypeMapper(source, target) {\n return Debug.attachDebugPrototypeIfDebug({ kind: 0 /* Simple */, source, target });\n }\n function makeArrayTypeMapper(sources, targets) {\n return Debug.attachDebugPrototypeIfDebug({ kind: 1 /* Array */, sources, targets });\n }\n function makeFunctionTypeMapper(func, debugInfo) {\n return Debug.attachDebugPrototypeIfDebug({ kind: 3 /* Function */, func, debugInfo: Debug.isDebugging ? debugInfo : void 0 });\n }\n function makeDeferredTypeMapper(sources, targets) {\n return Debug.attachDebugPrototypeIfDebug({ kind: 2 /* Deferred */, sources, targets });\n }\n function makeCompositeTypeMapper(kind, mapper1, mapper2) {\n return Debug.attachDebugPrototypeIfDebug({ kind, mapper1, mapper2 });\n }\n function createTypeEraser(sources) {\n return createTypeMapper(\n sources,\n /*targets*/\n void 0\n );\n }\n function createBackreferenceMapper(context, index) {\n const forwardInferences = context.inferences.slice(index);\n return createTypeMapper(map(forwardInferences, (i) => i.typeParameter), map(forwardInferences, () => unknownType));\n }\n function createOuterReturnMapper(context) {\n return context.outerReturnMapper ?? (context.outerReturnMapper = mergeTypeMappers(context.returnMapper, cloneInferenceContext(context).mapper));\n }\n function combineTypeMappers(mapper1, mapper2) {\n return mapper1 ? makeCompositeTypeMapper(4 /* Composite */, mapper1, mapper2) : mapper2;\n }\n function mergeTypeMappers(mapper1, mapper2) {\n return mapper1 ? makeCompositeTypeMapper(5 /* Merged */, mapper1, mapper2) : mapper2;\n }\n function prependTypeMapping(source, target, mapper) {\n return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, makeUnaryTypeMapper(source, target), mapper);\n }\n function appendTypeMapping(mapper, source, target) {\n return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, mapper, makeUnaryTypeMapper(source, target));\n }\n function getRestrictiveTypeParameter(tp) {\n return !tp.constraint && !getConstraintDeclaration(tp) || tp.constraint === noConstraintType ? tp : tp.restrictiveInstantiation || (tp.restrictiveInstantiation = createTypeParameter(tp.symbol), tp.restrictiveInstantiation.constraint = noConstraintType, tp.restrictiveInstantiation);\n }\n function cloneTypeParameter(typeParameter) {\n const result = createTypeParameter(typeParameter.symbol);\n result.target = typeParameter;\n return result;\n }\n function instantiateTypePredicate(predicate, mapper) {\n return createTypePredicate(predicate.kind, predicate.parameterName, predicate.parameterIndex, instantiateType(predicate.type, mapper));\n }\n function instantiateSignature(signature, mapper, eraseTypeParameters) {\n let freshTypeParameters;\n if (signature.typeParameters && !eraseTypeParameters) {\n freshTypeParameters = map(signature.typeParameters, cloneTypeParameter);\n mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper);\n for (const tp of freshTypeParameters) {\n tp.mapper = mapper;\n }\n }\n const result = createSignature(\n signature.declaration,\n freshTypeParameters,\n signature.thisParameter && instantiateSymbol(signature.thisParameter, mapper),\n instantiateList(signature.parameters, mapper, instantiateSymbol),\n /*resolvedReturnType*/\n void 0,\n /*resolvedTypePredicate*/\n void 0,\n signature.minArgumentCount,\n signature.flags & 167 /* PropagatingFlags */\n );\n result.target = signature;\n result.mapper = mapper;\n return result;\n }\n function instantiateSymbol(symbol, mapper) {\n const links = getSymbolLinks(symbol);\n if (links.type && !couldContainTypeVariables(links.type)) {\n if (!(symbol.flags & 65536 /* SetAccessor */)) {\n return symbol;\n }\n if (links.writeType && !couldContainTypeVariables(links.writeType)) {\n return symbol;\n }\n }\n if (getCheckFlags(symbol) & 1 /* Instantiated */) {\n symbol = links.target;\n mapper = combineTypeMappers(links.mapper, mapper);\n }\n const result = createSymbol(symbol.flags, symbol.escapedName, 1 /* Instantiated */ | getCheckFlags(symbol) & (8 /* Readonly */ | 4096 /* Late */ | 16384 /* OptionalParameter */ | 32768 /* RestParameter */));\n result.declarations = symbol.declarations;\n result.parent = symbol.parent;\n result.links.target = symbol;\n result.links.mapper = mapper;\n if (symbol.valueDeclaration) {\n result.valueDeclaration = symbol.valueDeclaration;\n }\n if (links.nameType) {\n result.links.nameType = links.nameType;\n }\n return result;\n }\n function getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments) {\n const declaration = type.objectFlags & 4 /* Reference */ ? type.node : type.objectFlags & 8388608 /* InstantiationExpressionType */ ? type.node : type.symbol.declarations[0];\n const links = getNodeLinks(declaration);\n const target = type.objectFlags & 4 /* Reference */ ? links.resolvedType : type.objectFlags & 64 /* Instantiated */ ? type.target : type;\n let typeParameters = links.outerTypeParameters;\n if (!typeParameters) {\n let outerTypeParameters = getOuterTypeParameters(\n declaration,\n /*includeThisTypes*/\n true\n );\n if (isJSConstructor(declaration)) {\n const templateTagParameters = getTypeParametersFromDeclaration(declaration);\n outerTypeParameters = addRange(outerTypeParameters, templateTagParameters);\n }\n typeParameters = outerTypeParameters || emptyArray;\n const allDeclarations = type.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) ? [declaration] : type.symbol.declarations;\n typeParameters = (target.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) || target.symbol.flags & 8192 /* Method */ || target.symbol.flags & 2048 /* TypeLiteral */) && !target.aliasTypeArguments ? filter(typeParameters, (tp) => some(allDeclarations, (d) => isTypeParameterPossiblyReferenced(tp, d))) : typeParameters;\n links.outerTypeParameters = typeParameters;\n }\n if (typeParameters.length) {\n const combinedMapper = combineTypeMappers(type.mapper, mapper);\n const typeArguments = map(typeParameters, (t) => getMappedType(t, combinedMapper));\n const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n const id = getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);\n if (!target.instantiations) {\n target.instantiations = /* @__PURE__ */ new Map();\n target.instantiations.set(getTypeListId(typeParameters) + getAliasId(target.aliasSymbol, target.aliasTypeArguments), target);\n }\n let result = target.instantiations.get(id);\n if (!result) {\n let newMapper = createTypeMapper(typeParameters, typeArguments);\n if (target.objectFlags & 134217728 /* SingleSignatureType */ && mapper) {\n newMapper = combineTypeMappers(newMapper, mapper);\n }\n result = target.objectFlags & 4 /* Reference */ ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 /* Mapped */ ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments);\n target.instantiations.set(id, result);\n const resultObjectFlags = getObjectFlags(result);\n if (result.flags & 3899393 /* ObjectFlagsType */ && !(resultObjectFlags & 524288 /* CouldContainTypeVariablesComputed */)) {\n const resultCouldContainTypeVariables = some(typeArguments, couldContainTypeVariables);\n if (!(getObjectFlags(result) & 524288 /* CouldContainTypeVariablesComputed */)) {\n if (resultObjectFlags & (32 /* Mapped */ | 16 /* Anonymous */ | 4 /* Reference */)) {\n result.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (resultCouldContainTypeVariables ? 1048576 /* CouldContainTypeVariables */ : 0);\n } else {\n result.objectFlags |= !resultCouldContainTypeVariables ? 524288 /* CouldContainTypeVariablesComputed */ : 0;\n }\n }\n }\n }\n return result;\n }\n return type;\n }\n function maybeTypeParameterReference(node) {\n return !(node.parent.kind === 184 /* TypeReference */ && node.parent.typeArguments && node === node.parent.typeName || node.parent.kind === 206 /* ImportType */ && node.parent.typeArguments && node === node.parent.qualifier);\n }\n function isTypeParameterPossiblyReferenced(tp, node) {\n if (tp.symbol && tp.symbol.declarations && tp.symbol.declarations.length === 1) {\n const container = tp.symbol.declarations[0].parent;\n for (let n = node; n !== container; n = n.parent) {\n if (!n || n.kind === 242 /* Block */ || n.kind === 195 /* ConditionalType */ && forEachChild(n.extendsType, containsReference)) {\n return true;\n }\n }\n return containsReference(node);\n }\n return true;\n function containsReference(node2) {\n switch (node2.kind) {\n case 198 /* ThisType */:\n return !!tp.isThisType;\n case 80 /* Identifier */:\n return !tp.isThisType && isPartOfTypeNode(node2) && maybeTypeParameterReference(node2) && getTypeFromTypeNodeWorker(node2) === tp;\n // use worker because we're looking for === equality\n case 187 /* TypeQuery */:\n const entityName = node2.exprName;\n const firstIdentifier = getFirstIdentifier(entityName);\n if (!isThisIdentifier(firstIdentifier)) {\n const firstIdentifierSymbol = getResolvedSymbol(firstIdentifier);\n const tpDeclaration = tp.symbol.declarations[0];\n const tpScope = tpDeclaration.kind === 169 /* TypeParameter */ ? tpDeclaration.parent : (\n // Type parameter is a regular type parameter, e.g. foo\n tp.isThisType ? tpDeclaration : (\n // Type parameter is the this type, and its declaration is the class declaration.\n void 0\n )\n );\n if (firstIdentifierSymbol.declarations && tpScope) {\n return some(firstIdentifierSymbol.declarations, (idDecl) => isNodeDescendantOf(idDecl, tpScope)) || some(node2.typeArguments, containsReference);\n }\n }\n return true;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n return !node2.type && !!node2.body || some(node2.typeParameters, containsReference) || some(node2.parameters, containsReference) || !!node2.type && containsReference(node2.type);\n }\n return !!forEachChild(node2, containsReference);\n }\n }\n function getHomomorphicTypeVariable(type) {\n const constraintType = getConstraintTypeFromMappedType(type);\n if (constraintType.flags & 4194304 /* Index */) {\n const typeVariable = getActualTypeVariable(constraintType.type);\n if (typeVariable.flags & 262144 /* TypeParameter */) {\n return typeVariable;\n }\n }\n return void 0;\n }\n function instantiateMappedType(type, mapper, aliasSymbol, aliasTypeArguments) {\n const typeVariable = getHomomorphicTypeVariable(type);\n if (typeVariable) {\n const mappedTypeVariable = instantiateType(typeVariable, mapper);\n if (typeVariable !== mappedTypeVariable) {\n return mapTypeWithAlias(getReducedType(mappedTypeVariable), instantiateConstituent, aliasSymbol, aliasTypeArguments);\n }\n }\n return instantiateType(getConstraintTypeFromMappedType(type), mapper) === wildcardType ? wildcardType : instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments);\n function instantiateConstituent(t) {\n if (t.flags & (3 /* AnyOrUnknown */ | 58982400 /* InstantiableNonPrimitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && t !== wildcardType && !isErrorType(t)) {\n if (!type.declaration.nameType) {\n let constraint;\n if (isArrayType(t) || t.flags & 1 /* Any */ && findResolutionCycleStartIndex(typeVariable, 4 /* ImmediateBaseConstraint */) < 0 && (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, isArrayOrTupleType)) {\n return instantiateMappedArrayType(t, type, prependTypeMapping(typeVariable, t, mapper));\n }\n if (isTupleType(t)) {\n return instantiateMappedTupleType(t, type, typeVariable, mapper);\n }\n if (isArrayOrTupleOrIntersection(t)) {\n return getIntersectionType(map(t.types, instantiateConstituent));\n }\n }\n return instantiateAnonymousType(type, prependTypeMapping(typeVariable, t, mapper));\n }\n return t;\n }\n }\n function getModifiedReadonlyState(state, modifiers) {\n return modifiers & 1 /* IncludeReadonly */ ? true : modifiers & 2 /* ExcludeReadonly */ ? false : state;\n }\n function instantiateMappedTupleType(tupleType, mappedType, typeVariable, mapper) {\n const elementFlags = tupleType.target.elementFlags;\n const fixedLength = tupleType.target.fixedLength;\n const fixedMapper = fixedLength ? prependTypeMapping(typeVariable, tupleType, mapper) : mapper;\n const newElementTypes = map(getElementTypes(tupleType), (type, i) => {\n const flags = elementFlags[i];\n return i < fixedLength ? instantiateMappedTypeTemplate(mappedType, getStringLiteralType(\"\" + i), !!(flags & 2 /* Optional */), fixedMapper) : flags & 8 /* Variadic */ ? instantiateType(mappedType, prependTypeMapping(typeVariable, type, mapper)) : getElementTypeOfArrayType(instantiateType(mappedType, prependTypeMapping(typeVariable, createArrayType(type), mapper))) ?? unknownType;\n });\n const modifiers = getMappedTypeModifiers(mappedType);\n const newElementFlags = modifiers & 4 /* IncludeOptional */ ? map(elementFlags, (f) => f & 1 /* Required */ ? 2 /* Optional */ : f) : modifiers & 8 /* ExcludeOptional */ ? map(elementFlags, (f) => f & 2 /* Optional */ ? 1 /* Required */ : f) : elementFlags;\n const newReadonly = getModifiedReadonlyState(tupleType.target.readonly, getMappedTypeModifiers(mappedType));\n return contains(newElementTypes, errorType) ? errorType : createTupleType(newElementTypes, newElementFlags, newReadonly, tupleType.target.labeledElementDeclarations);\n }\n function instantiateMappedArrayType(arrayType, mappedType, mapper) {\n const elementType = instantiateMappedTypeTemplate(\n mappedType,\n numberType,\n /*isOptional*/\n true,\n mapper\n );\n return isErrorType(elementType) ? errorType : createArrayType(elementType, getModifiedReadonlyState(isReadonlyArrayType(arrayType), getMappedTypeModifiers(mappedType)));\n }\n function instantiateMappedTypeTemplate(type, key, isOptional, mapper) {\n const templateMapper = appendTypeMapping(mapper, getTypeParameterFromMappedType(type), key);\n const propType = instantiateType(getTemplateTypeFromMappedType(type.target || type), templateMapper);\n const modifiers = getMappedTypeModifiers(type);\n return strictNullChecks && modifiers & 4 /* IncludeOptional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(\n propType,\n /*isProperty*/\n true\n ) : strictNullChecks && modifiers & 8 /* ExcludeOptional */ && isOptional ? getTypeWithFacts(propType, 524288 /* NEUndefined */) : propType;\n }\n function instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments) {\n Debug.assert(type.symbol, \"anonymous type must have symbol to be instantiated\");\n const result = createObjectType(type.objectFlags & ~(524288 /* CouldContainTypeVariablesComputed */ | 1048576 /* CouldContainTypeVariables */) | 64 /* Instantiated */, type.symbol);\n if (type.objectFlags & 32 /* Mapped */) {\n result.declaration = type.declaration;\n const origTypeParameter = getTypeParameterFromMappedType(type);\n const freshTypeParameter = cloneTypeParameter(origTypeParameter);\n result.typeParameter = freshTypeParameter;\n mapper = combineTypeMappers(makeUnaryTypeMapper(origTypeParameter, freshTypeParameter), mapper);\n freshTypeParameter.mapper = mapper;\n }\n if (type.objectFlags & 8388608 /* InstantiationExpressionType */) {\n result.node = type.node;\n }\n result.target = type;\n result.mapper = mapper;\n result.aliasSymbol = aliasSymbol || type.aliasSymbol;\n result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n result.objectFlags |= result.aliasTypeArguments ? getPropagatingFlagsOfTypes(result.aliasTypeArguments) : 0;\n return result;\n }\n function getConditionalTypeInstantiation(type, mapper, forConstraint, aliasSymbol, aliasTypeArguments) {\n const root = type.root;\n if (root.outerTypeParameters) {\n const typeArguments = map(root.outerTypeParameters, (t) => getMappedType(t, mapper));\n const id = (forConstraint ? \"C\" : \"\") + getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments);\n let result = root.instantiations.get(id);\n if (!result) {\n const newMapper = createTypeMapper(root.outerTypeParameters, typeArguments);\n const checkType = root.checkType;\n const distributionType = root.isDistributive ? getReducedType(getMappedType(checkType, newMapper)) : void 0;\n result = distributionType && checkType !== distributionType && distributionType.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapTypeWithAlias(distributionType, (t) => getConditionalType(root, prependTypeMapping(checkType, t, newMapper), forConstraint), aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper, forConstraint, aliasSymbol, aliasTypeArguments);\n root.instantiations.set(id, result);\n }\n return result;\n }\n return type;\n }\n function instantiateType(type, mapper) {\n return type && mapper ? instantiateTypeWithAlias(\n type,\n mapper,\n /*aliasSymbol*/\n void 0,\n /*aliasTypeArguments*/\n void 0\n ) : type;\n }\n function instantiateTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) {\n var _a;\n if (!couldContainTypeVariables(type)) {\n return type;\n }\n if (instantiationDepth === 100 || instantiationCount >= 5e6) {\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"instantiateType_DepthLimit\", { typeId: type.id, instantiationDepth, instantiationCount });\n error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);\n return errorType;\n }\n const index = findActiveMapper(mapper);\n if (index === -1) {\n pushActiveMapper(mapper);\n }\n const key = type.id + getAliasId(aliasSymbol, aliasTypeArguments);\n const mapperCache = activeTypeMappersCaches[index !== -1 ? index : activeTypeMappersCount - 1];\n const cached = mapperCache.get(key);\n if (cached) {\n return cached;\n }\n totalInstantiationCount++;\n instantiationCount++;\n instantiationDepth++;\n const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments);\n if (index === -1) {\n popActiveMapper();\n } else {\n mapperCache.set(key, result);\n }\n instantiationDepth--;\n return result;\n }\n function instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments) {\n const flags = type.flags;\n if (flags & 262144 /* TypeParameter */) {\n return getMappedType(type, mapper);\n }\n if (flags & 524288 /* Object */) {\n const objectFlags = type.objectFlags;\n if (objectFlags & (4 /* Reference */ | 16 /* Anonymous */ | 32 /* Mapped */)) {\n if (objectFlags & 4 /* Reference */ && !type.node) {\n const resolvedTypeArguments = type.resolvedTypeArguments;\n const newTypeArguments = instantiateTypes(resolvedTypeArguments, mapper);\n return newTypeArguments !== resolvedTypeArguments ? createNormalizedTypeReference(type.target, newTypeArguments) : type;\n }\n if (objectFlags & 1024 /* ReverseMapped */) {\n return instantiateReverseMappedType(type, mapper);\n }\n return getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments);\n }\n return type;\n }\n if (flags & 3145728 /* UnionOrIntersection */) {\n const origin = type.flags & 1048576 /* Union */ ? type.origin : void 0;\n const types = origin && origin.flags & 3145728 /* UnionOrIntersection */ ? origin.types : type.types;\n const newTypes = instantiateTypes(types, mapper);\n if (newTypes === types && aliasSymbol === type.aliasSymbol) {\n return type;\n }\n const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n return flags & 2097152 /* Intersection */ || origin && origin.flags & 2097152 /* Intersection */ ? getIntersectionType(newTypes, 0 /* None */, newAliasSymbol, newAliasTypeArguments) : getUnionType(newTypes, 1 /* Literal */, newAliasSymbol, newAliasTypeArguments);\n }\n if (flags & 4194304 /* Index */) {\n return getIndexType(instantiateType(type.type, mapper));\n }\n if (flags & 134217728 /* TemplateLiteral */) {\n return getTemplateLiteralType(type.texts, instantiateTypes(type.types, mapper));\n }\n if (flags & 268435456 /* StringMapping */) {\n return getStringMappingType(type.symbol, instantiateType(type.type, mapper));\n }\n if (flags & 8388608 /* IndexedAccess */) {\n const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n return getIndexedAccessType(\n instantiateType(type.objectType, mapper),\n instantiateType(type.indexType, mapper),\n type.accessFlags,\n /*accessNode*/\n void 0,\n newAliasSymbol,\n newAliasTypeArguments\n );\n }\n if (flags & 16777216 /* Conditional */) {\n return getConditionalTypeInstantiation(\n type,\n combineTypeMappers(type.mapper, mapper),\n /*forConstraint*/\n false,\n aliasSymbol,\n aliasTypeArguments\n );\n }\n if (flags & 33554432 /* Substitution */) {\n const newBaseType = instantiateType(type.baseType, mapper);\n if (isNoInferType(type)) {\n return getNoInferType(newBaseType);\n }\n const newConstraint = instantiateType(type.constraint, mapper);\n if (newBaseType.flags & 8650752 /* TypeVariable */ && isGenericType(newConstraint)) {\n return getSubstitutionType(newBaseType, newConstraint);\n }\n if (newConstraint.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(newBaseType), getRestrictiveInstantiation(newConstraint))) {\n return newBaseType;\n }\n return newBaseType.flags & 8650752 /* TypeVariable */ ? getSubstitutionType(newBaseType, newConstraint) : getIntersectionType([newConstraint, newBaseType]);\n }\n return type;\n }\n function instantiateReverseMappedType(type, mapper) {\n const innerMappedType = instantiateType(type.mappedType, mapper);\n if (!(getObjectFlags(innerMappedType) & 32 /* Mapped */)) {\n return type;\n }\n const innerIndexType = instantiateType(type.constraintType, mapper);\n if (!(innerIndexType.flags & 4194304 /* Index */)) {\n return type;\n }\n const instantiated = inferTypeForHomomorphicMappedType(\n instantiateType(type.source, mapper),\n innerMappedType,\n innerIndexType\n );\n if (instantiated) {\n return instantiated;\n }\n return type;\n }\n function getPermissiveInstantiation(type) {\n return type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper));\n }\n function getRestrictiveInstantiation(type) {\n if (type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */)) {\n return type;\n }\n if (type.restrictiveInstantiation) {\n return type.restrictiveInstantiation;\n }\n type.restrictiveInstantiation = instantiateType(type, restrictiveMapper);\n type.restrictiveInstantiation.restrictiveInstantiation = type.restrictiveInstantiation;\n return type.restrictiveInstantiation;\n }\n function instantiateIndexInfo(info, mapper) {\n return createIndexInfo(info.keyType, instantiateType(info.type, mapper), info.isReadonly, info.declaration, info.components);\n }\n function isContextSensitive(node) {\n Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n switch (node.kind) {\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 263 /* FunctionDeclaration */:\n return isContextSensitiveFunctionLikeDeclaration(node);\n case 211 /* ObjectLiteralExpression */:\n return some(node.properties, isContextSensitive);\n case 210 /* ArrayLiteralExpression */:\n return some(node.elements, isContextSensitive);\n case 228 /* ConditionalExpression */:\n return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse);\n case 227 /* BinaryExpression */:\n return (node.operatorToken.kind === 57 /* BarBarToken */ || node.operatorToken.kind === 61 /* QuestionQuestionToken */) && (isContextSensitive(node.left) || isContextSensitive(node.right));\n case 304 /* PropertyAssignment */:\n return isContextSensitive(node.initializer);\n case 218 /* ParenthesizedExpression */:\n return isContextSensitive(node.expression);\n case 293 /* JsxAttributes */:\n return some(node.properties, isContextSensitive) || isJsxOpeningElement(node.parent) && some(node.parent.parent.children, isContextSensitive);\n case 292 /* JsxAttribute */: {\n const { initializer } = node;\n return !!initializer && isContextSensitive(initializer);\n }\n case 295 /* JsxExpression */: {\n const { expression } = node;\n return !!expression && isContextSensitive(expression);\n }\n }\n return false;\n }\n function isContextSensitiveFunctionLikeDeclaration(node) {\n return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node);\n }\n function hasContextSensitiveReturnExpression(node) {\n if (node.typeParameters || getEffectiveReturnTypeNode(node) || !node.body) {\n return false;\n }\n if (node.body.kind !== 242 /* Block */) {\n return isContextSensitive(node.body);\n }\n return !!forEachReturnStatement(node.body, (statement) => !!statement.expression && isContextSensitive(statement.expression));\n }\n function isContextSensitiveFunctionOrObjectLiteralMethod(func) {\n return (isFunctionExpressionOrArrowFunction(func) || isObjectLiteralMethod(func)) && isContextSensitiveFunctionLikeDeclaration(func);\n }\n function getTypeWithoutSignatures(type) {\n if (type.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type);\n if (resolved.constructSignatures.length || resolved.callSignatures.length) {\n const result = createObjectType(16 /* Anonymous */, type.symbol);\n result.members = resolved.members;\n result.properties = resolved.properties;\n result.callSignatures = emptyArray;\n result.constructSignatures = emptyArray;\n result.indexInfos = emptyArray;\n return result;\n }\n } else if (type.flags & 2097152 /* Intersection */) {\n return getIntersectionType(map(type.types, getTypeWithoutSignatures));\n }\n return type;\n }\n function isTypeIdenticalTo(source, target) {\n return isTypeRelatedTo(source, target, identityRelation);\n }\n function compareTypesIdentical(source, target) {\n return isTypeRelatedTo(source, target, identityRelation) ? -1 /* True */ : 0 /* False */;\n }\n function compareTypesAssignable(source, target) {\n return isTypeRelatedTo(source, target, assignableRelation) ? -1 /* True */ : 0 /* False */;\n }\n function compareTypesSubtypeOf(source, target) {\n return isTypeRelatedTo(source, target, subtypeRelation) ? -1 /* True */ : 0 /* False */;\n }\n function isTypeSubtypeOf(source, target) {\n return isTypeRelatedTo(source, target, subtypeRelation);\n }\n function isTypeStrictSubtypeOf(source, target) {\n return isTypeRelatedTo(source, target, strictSubtypeRelation);\n }\n function isTypeAssignableTo(source, target) {\n return isTypeRelatedTo(source, target, assignableRelation);\n }\n function isTypeDerivedFrom(source, target) {\n return source.flags & 1048576 /* Union */ ? every(source.types, (t) => isTypeDerivedFrom(t, target)) : target.flags & 1048576 /* Union */ ? some(target.types, (t) => isTypeDerivedFrom(source, t)) : source.flags & 2097152 /* Intersection */ ? some(source.types, (t) => isTypeDerivedFrom(t, target)) : source.flags & 58982400 /* InstantiableNonPrimitive */ ? isTypeDerivedFrom(getBaseConstraintOfType(source) || unknownType, target) : isEmptyAnonymousObjectType(target) ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) : target === globalObjectType ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) && !isEmptyAnonymousObjectType(source) : target === globalFunctionType ? !!(source.flags & 524288 /* Object */) && isFunctionObjectType(source) : hasBaseType(source, getTargetType(target)) || isArrayType(target) && !isReadonlyArrayType(target) && isTypeDerivedFrom(source, globalReadonlyArrayType);\n }\n function isTypeComparableTo(source, target) {\n return isTypeRelatedTo(source, target, comparableRelation);\n }\n function areTypesComparable(type1, type2) {\n return isTypeComparableTo(type1, type2) || isTypeComparableTo(type2, type1);\n }\n function checkTypeAssignableTo(source, target, errorNode, headMessage, containingMessageChain, errorOutputObject) {\n return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain, errorOutputObject);\n }\n function checkTypeAssignableToAndOptionallyElaborate(source, target, errorNode, expr, headMessage, containingMessageChain) {\n return checkTypeRelatedToAndOptionallyElaborate(\n source,\n target,\n assignableRelation,\n errorNode,\n expr,\n headMessage,\n containingMessageChain,\n /*errorOutputContainer*/\n void 0\n );\n }\n function checkTypeRelatedToAndOptionallyElaborate(source, target, relation, errorNode, expr, headMessage, containingMessageChain, errorOutputContainer) {\n if (isTypeRelatedTo(source, target, relation)) return true;\n if (!errorNode || !elaborateError(expr, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) {\n return checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer);\n }\n return false;\n }\n function isOrHasGenericConditional(type) {\n return !!(type.flags & 16777216 /* Conditional */ || type.flags & 2097152 /* Intersection */ && some(type.types, isOrHasGenericConditional));\n }\n function elaborateError(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) {\n if (!node || isOrHasGenericConditional(target)) return false;\n if (!checkTypeRelatedTo(\n source,\n target,\n relation,\n /*errorNode*/\n void 0\n ) && elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) {\n return true;\n }\n switch (node.kind) {\n case 235 /* AsExpression */:\n if (!isConstAssertion(node)) {\n break;\n }\n // fallthrough\n case 295 /* JsxExpression */:\n case 218 /* ParenthesizedExpression */:\n return elaborateError(node.expression, source, target, relation, headMessage, containingMessageChain, errorOutputContainer);\n case 227 /* BinaryExpression */:\n switch (node.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 28 /* CommaToken */:\n return elaborateError(node.right, source, target, relation, headMessage, containingMessageChain, errorOutputContainer);\n }\n break;\n case 211 /* ObjectLiteralExpression */:\n return elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer);\n case 210 /* ArrayLiteralExpression */:\n return elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer);\n case 293 /* JsxAttributes */:\n return elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer);\n case 220 /* ArrowFunction */:\n return elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer);\n }\n return false;\n }\n function elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) {\n const callSignatures = getSignaturesOfType(source, 0 /* Call */);\n const constructSignatures = getSignaturesOfType(source, 1 /* Construct */);\n for (const signatures of [constructSignatures, callSignatures]) {\n if (some(signatures, (s) => {\n const returnType = getReturnTypeOfSignature(s);\n return !(returnType.flags & (1 /* Any */ | 131072 /* Never */)) && checkTypeRelatedTo(\n returnType,\n target,\n relation,\n /*errorNode*/\n void 0\n );\n })) {\n const resultObj = errorOutputContainer || {};\n checkTypeAssignableTo(source, target, node, headMessage, containingMessageChain, resultObj);\n const diagnostic = resultObj.errors[resultObj.errors.length - 1];\n addRelatedInfo(\n diagnostic,\n createDiagnosticForNode(\n node,\n signatures === constructSignatures ? Diagnostics.Did_you_mean_to_use_new_with_this_expression : Diagnostics.Did_you_mean_to_call_this_expression\n )\n );\n return true;\n }\n }\n return false;\n }\n function elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n if (isBlock(node.body)) {\n return false;\n }\n if (some(node.parameters, hasType)) {\n return false;\n }\n const sourceSig = getSingleCallSignature(source);\n if (!sourceSig) {\n return false;\n }\n const targetSignatures = getSignaturesOfType(target, 0 /* Call */);\n if (!length(targetSignatures)) {\n return false;\n }\n const returnExpression = node.body;\n const sourceReturn = getReturnTypeOfSignature(sourceSig);\n const targetReturn = getUnionType(map(targetSignatures, getReturnTypeOfSignature));\n if (!checkTypeRelatedTo(\n sourceReturn,\n targetReturn,\n relation,\n /*errorNode*/\n void 0\n )) {\n const elaborated = returnExpression && elaborateError(\n returnExpression,\n sourceReturn,\n targetReturn,\n relation,\n /*headMessage*/\n void 0,\n containingMessageChain,\n errorOutputContainer\n );\n if (elaborated) {\n return elaborated;\n }\n const resultObj = errorOutputContainer || {};\n checkTypeRelatedTo(\n sourceReturn,\n targetReturn,\n relation,\n returnExpression,\n /*headMessage*/\n void 0,\n containingMessageChain,\n resultObj\n );\n if (resultObj.errors) {\n if (target.symbol && length(target.symbol.declarations)) {\n addRelatedInfo(\n resultObj.errors[resultObj.errors.length - 1],\n createDiagnosticForNode(\n target.symbol.declarations[0],\n Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature\n )\n );\n }\n if ((getFunctionFlags(node) & 2 /* Async */) === 0 && !getTypeOfPropertyOfType(sourceReturn, \"then\") && checkTypeRelatedTo(\n createPromiseType(sourceReturn),\n targetReturn,\n relation,\n /*errorNode*/\n void 0\n )) {\n addRelatedInfo(\n resultObj.errors[resultObj.errors.length - 1],\n createDiagnosticForNode(\n node,\n Diagnostics.Did_you_mean_to_mark_this_function_as_async\n )\n );\n }\n return true;\n }\n }\n return false;\n }\n function getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType) {\n const idx = getIndexedAccessTypeOrUndefined(target, nameType);\n if (idx) {\n return idx;\n }\n if (target.flags & 1048576 /* Union */) {\n const best = getBestMatchingType(source, target);\n if (best) {\n return getIndexedAccessTypeOrUndefined(best, nameType);\n }\n }\n }\n function checkExpressionForMutableLocationWithContextualType(next, sourcePropType) {\n pushContextualType(\n next,\n sourcePropType,\n /*isCache*/\n false\n );\n const result = checkExpressionForMutableLocation(next, 1 /* Contextual */);\n popContextualType();\n return result;\n }\n function elaborateElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) {\n let reportedError = false;\n for (const value of iterator) {\n const { errorNode: prop, innerExpression: next, nameType, errorMessage } = value;\n let targetPropType = getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType);\n if (!targetPropType || targetPropType.flags & 8388608 /* IndexedAccess */) continue;\n let sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType);\n if (!sourcePropType) continue;\n const propName = getPropertyNameFromIndex(\n nameType,\n /*accessNode*/\n void 0\n );\n if (!checkTypeRelatedTo(\n sourcePropType,\n targetPropType,\n relation,\n /*errorNode*/\n void 0\n )) {\n const elaborated = next && elaborateError(\n next,\n sourcePropType,\n targetPropType,\n relation,\n /*headMessage*/\n void 0,\n containingMessageChain,\n errorOutputContainer\n );\n reportedError = true;\n if (!elaborated) {\n const resultObj = errorOutputContainer || {};\n const specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType;\n if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) {\n const diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType));\n diagnostics.add(diag2);\n resultObj.errors = [diag2];\n } else {\n const targetIsOptional = !!(propName && (getPropertyOfType(target, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n const sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n targetPropType = removeMissingType(targetPropType, targetIsOptional);\n sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional);\n const result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n if (result && specificSource !== sourcePropType) {\n checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n }\n }\n if (resultObj.errors) {\n const reportedDiag = resultObj.errors[resultObj.errors.length - 1];\n const propertyName = isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0;\n const targetProp = propertyName !== void 0 ? getPropertyOfType(target, propertyName) : void 0;\n let issuedElaboration = false;\n if (!targetProp) {\n const indexInfo = getApplicableIndexInfo(target, nameType);\n if (indexInfo && indexInfo.declaration && !getSourceFileOfNode(indexInfo.declaration).hasNoDefaultLib) {\n issuedElaboration = true;\n addRelatedInfo(reportedDiag, createDiagnosticForNode(indexInfo.declaration, Diagnostics.The_expected_type_comes_from_this_index_signature));\n }\n }\n if (!issuedElaboration && (targetProp && length(targetProp.declarations) || target.symbol && length(target.symbol.declarations))) {\n const targetNode = targetProp && length(targetProp.declarations) ? targetProp.declarations[0] : target.symbol.declarations[0];\n if (!getSourceFileOfNode(targetNode).hasNoDefaultLib) {\n addRelatedInfo(\n reportedDiag,\n createDiagnosticForNode(\n targetNode,\n Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,\n propertyName && !(nameType.flags & 8192 /* UniqueESSymbol */) ? unescapeLeadingUnderscores(propertyName) : typeToString(nameType),\n typeToString(target)\n )\n );\n }\n }\n }\n }\n }\n }\n return reportedError;\n }\n function elaborateIterableOrArrayLikeTargetElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) {\n const tupleOrArrayLikeTargetParts = filterType(target, isArrayOrTupleLikeType);\n const nonTupleOrArrayLikeTargetParts = filterType(target, (t) => !isArrayOrTupleLikeType(t));\n const iterationType = nonTupleOrArrayLikeTargetParts !== neverType ? getIterationTypeOfIterable(\n 13 /* ForOf */,\n 0 /* Yield */,\n nonTupleOrArrayLikeTargetParts,\n /*errorNode*/\n void 0\n ) : void 0;\n let reportedError = false;\n for (let status = iterator.next(); !status.done; status = iterator.next()) {\n const { errorNode: prop, innerExpression: next, nameType, errorMessage } = status.value;\n let targetPropType = iterationType;\n const targetIndexedPropType = tupleOrArrayLikeTargetParts !== neverType ? getBestMatchIndexedAccessTypeOrUndefined(source, tupleOrArrayLikeTargetParts, nameType) : void 0;\n if (targetIndexedPropType && !(targetIndexedPropType.flags & 8388608 /* IndexedAccess */)) {\n targetPropType = iterationType ? getUnionType([iterationType, targetIndexedPropType]) : targetIndexedPropType;\n }\n if (!targetPropType) continue;\n let sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType);\n if (!sourcePropType) continue;\n const propName = getPropertyNameFromIndex(\n nameType,\n /*accessNode*/\n void 0\n );\n if (!checkTypeRelatedTo(\n sourcePropType,\n targetPropType,\n relation,\n /*errorNode*/\n void 0\n )) {\n const elaborated = next && elaborateError(\n next,\n sourcePropType,\n targetPropType,\n relation,\n /*headMessage*/\n void 0,\n containingMessageChain,\n errorOutputContainer\n );\n reportedError = true;\n if (!elaborated) {\n const resultObj = errorOutputContainer || {};\n const specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType;\n if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) {\n const diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType));\n diagnostics.add(diag2);\n resultObj.errors = [diag2];\n } else {\n const targetIsOptional = !!(propName && (getPropertyOfType(tupleOrArrayLikeTargetParts, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n const sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n targetPropType = removeMissingType(targetPropType, targetIsOptional);\n sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional);\n const result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n if (result && specificSource !== sourcePropType) {\n checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n }\n }\n }\n }\n }\n return reportedError;\n }\n function* generateJsxAttributes(node) {\n if (!length(node.properties)) return;\n for (const prop of node.properties) {\n if (isJsxSpreadAttribute(prop) || isHyphenatedJsxName(getTextOfJsxAttributeName(prop.name))) continue;\n yield { errorNode: prop.name, innerExpression: prop.initializer, nameType: getStringLiteralType(getTextOfJsxAttributeName(prop.name)) };\n }\n }\n function* generateJsxChildren(node, getInvalidTextDiagnostic) {\n if (!length(node.children)) return;\n let memberOffset = 0;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const nameType = getNumberLiteralType(i - memberOffset);\n const elem = getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic);\n if (elem) {\n yield elem;\n } else {\n memberOffset++;\n }\n }\n }\n function getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic) {\n switch (child.kind) {\n case 295 /* JsxExpression */:\n return { errorNode: child, innerExpression: child.expression, nameType };\n case 12 /* JsxText */:\n if (child.containsOnlyTriviaWhiteSpaces) {\n break;\n }\n return { errorNode: child, innerExpression: void 0, nameType, errorMessage: getInvalidTextDiagnostic() };\n case 285 /* JsxElement */:\n case 286 /* JsxSelfClosingElement */:\n case 289 /* JsxFragment */:\n return { errorNode: child, innerExpression: child, nameType };\n default:\n return Debug.assertNever(child, \"Found invalid jsx child\");\n }\n }\n function elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n let result = elaborateElementwise(generateJsxAttributes(node), source, target, relation, containingMessageChain, errorOutputContainer);\n let invalidTextDiagnostic;\n if (isJsxOpeningElement(node.parent) && isJsxElement(node.parent.parent)) {\n const containingElement = node.parent.parent;\n const childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n const childrenPropName = childPropName === void 0 ? \"children\" : unescapeLeadingUnderscores(childPropName);\n const childrenNameType = getStringLiteralType(childrenPropName);\n const childrenTargetType = getIndexedAccessType(target, childrenNameType);\n const validChildren = getSemanticJsxChildren(containingElement.children);\n if (!length(validChildren)) {\n return result;\n }\n const moreThanOneRealChildren = length(validChildren) > 1;\n let arrayLikeTargetParts;\n let nonArrayLikeTargetParts;\n const iterableType = getGlobalIterableType(\n /*reportErrors*/\n false\n );\n if (iterableType !== emptyGenericType) {\n const anyIterable = createIterableType(anyType);\n arrayLikeTargetParts = filterType(childrenTargetType, (t) => isTypeAssignableTo(t, anyIterable));\n nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isTypeAssignableTo(t, anyIterable));\n } else {\n arrayLikeTargetParts = filterType(childrenTargetType, isArrayOrTupleLikeType);\n nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isArrayOrTupleLikeType(t));\n }\n if (moreThanOneRealChildren) {\n if (arrayLikeTargetParts !== neverType) {\n const realSource = createTupleType(checkJsxChildren(containingElement, 0 /* Normal */));\n const children = generateJsxChildren(containingElement, getInvalidTextualChildDiagnostic);\n result = elaborateIterableOrArrayLikeTargetElementwise(children, realSource, arrayLikeTargetParts, relation, containingMessageChain, errorOutputContainer) || result;\n } else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) {\n result = true;\n const diag2 = error2(\n containingElement.openingElement.tagName,\n Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,\n childrenPropName,\n typeToString(childrenTargetType)\n );\n if (errorOutputContainer && errorOutputContainer.skipLogging) {\n (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n }\n }\n } else {\n if (nonArrayLikeTargetParts !== neverType) {\n const child = validChildren[0];\n const elem = getElaborationElementForJsxChild(child, childrenNameType, getInvalidTextualChildDiagnostic);\n if (elem) {\n result = elaborateElementwise(\n function* () {\n yield elem;\n }(),\n source,\n target,\n relation,\n containingMessageChain,\n errorOutputContainer\n ) || result;\n }\n } else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) {\n result = true;\n const diag2 = error2(\n containingElement.openingElement.tagName,\n Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,\n childrenPropName,\n typeToString(childrenTargetType)\n );\n if (errorOutputContainer && errorOutputContainer.skipLogging) {\n (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n }\n }\n }\n }\n return result;\n function getInvalidTextualChildDiagnostic() {\n if (!invalidTextDiagnostic) {\n const tagNameText = getTextOfNode(node.parent.tagName);\n const childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n const childrenPropName = childPropName === void 0 ? \"children\" : unescapeLeadingUnderscores(childPropName);\n const childrenTargetType = getIndexedAccessType(target, getStringLiteralType(childrenPropName));\n const diagnostic = Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;\n invalidTextDiagnostic = { ...diagnostic, key: \"!!ALREADY FORMATTED!!\", message: formatMessage(diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) };\n }\n return invalidTextDiagnostic;\n }\n }\n function* generateLimitedTupleElements(node, target) {\n const len = length(node.elements);\n if (!len) return;\n for (let i = 0; i < len; i++) {\n if (isTupleLikeType(target) && !getPropertyOfType(target, \"\" + i)) continue;\n const elem = node.elements[i];\n if (isOmittedExpression(elem)) continue;\n const nameType = getNumberLiteralType(i);\n const checkNode = getEffectiveCheckNode(elem);\n yield { errorNode: checkNode, innerExpression: checkNode, nameType };\n }\n }\n function elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) return false;\n if (isTupleLikeType(source)) {\n return elaborateElementwise(generateLimitedTupleElements(node, target), source, target, relation, containingMessageChain, errorOutputContainer);\n }\n pushContextualType(\n node,\n target,\n /*isCache*/\n false\n );\n const tupleizedType = checkArrayLiteral(\n node,\n 1 /* Contextual */,\n /*forceTuple*/\n true\n );\n popContextualType();\n if (isTupleLikeType(tupleizedType)) {\n return elaborateElementwise(generateLimitedTupleElements(node, target), tupleizedType, target, relation, containingMessageChain, errorOutputContainer);\n }\n return false;\n }\n function* generateObjectLiteralElements(node) {\n if (!length(node.properties)) return;\n for (const prop of node.properties) {\n if (isSpreadAssignment(prop)) continue;\n const type = getLiteralTypeFromProperty(getSymbolOfDeclaration(prop), 8576 /* StringOrNumberLiteralOrUnique */);\n if (!type || type.flags & 131072 /* Never */) {\n continue;\n }\n switch (prop.kind) {\n case 179 /* SetAccessor */:\n case 178 /* GetAccessor */:\n case 175 /* MethodDeclaration */:\n case 305 /* ShorthandPropertyAssignment */:\n yield { errorNode: prop.name, innerExpression: void 0, nameType: type };\n break;\n case 304 /* PropertyAssignment */:\n yield { errorNode: prop.name, innerExpression: prop.initializer, nameType: type, errorMessage: isComputedNonLiteralName(prop.name) ? Diagnostics.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1 : void 0 };\n break;\n default:\n Debug.assertNever(prop);\n }\n }\n }\n function elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) return false;\n return elaborateElementwise(generateObjectLiteralElements(node), source, target, relation, containingMessageChain, errorOutputContainer);\n }\n function checkTypeComparableTo(source, target, errorNode, headMessage, containingMessageChain) {\n return checkTypeRelatedTo(source, target, comparableRelation, errorNode, headMessage, containingMessageChain);\n }\n function isSignatureAssignableTo(source, target, ignoreReturnTypes) {\n return compareSignaturesRelated(\n source,\n target,\n ignoreReturnTypes ? 4 /* IgnoreReturnTypes */ : 0 /* None */,\n /*reportErrors*/\n false,\n /*errorReporter*/\n void 0,\n /*incompatibleErrorReporter*/\n void 0,\n compareTypesAssignable,\n /*reportUnreliableMarkers*/\n void 0\n ) !== 0 /* False */;\n }\n function isTopSignature(s) {\n if (!s.typeParameters && (!s.thisParameter || isTypeAny(getTypeOfParameter(s.thisParameter))) && s.parameters.length === 1 && signatureHasRestParameter(s)) {\n const paramType = getTypeOfParameter(s.parameters[0]);\n const restType = isArrayType(paramType) ? getTypeArguments(paramType)[0] : paramType;\n return !!(restType.flags & (1 /* Any */ | 131072 /* Never */) && getReturnTypeOfSignature(s).flags & 3 /* AnyOrUnknown */);\n }\n return false;\n }\n function compareSignaturesRelated(source, target, checkMode, reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) {\n if (source === target) {\n return -1 /* True */;\n }\n if (!(checkMode & 16 /* StrictTopSignature */ && isTopSignature(source)) && isTopSignature(target)) {\n return -1 /* True */;\n }\n if (checkMode & 16 /* StrictTopSignature */ && isTopSignature(source) && !isTopSignature(target)) {\n return 0 /* False */;\n }\n const targetCount = getParameterCount(target);\n const sourceHasMoreParameters = !hasEffectiveRestParameter(target) && (checkMode & 8 /* StrictArity */ ? hasEffectiveRestParameter(source) || getParameterCount(source) > targetCount : getMinArgumentCount(source) > targetCount);\n if (sourceHasMoreParameters) {\n if (reportErrors2 && !(checkMode & 8 /* StrictArity */)) {\n errorReporter(Diagnostics.Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1, getMinArgumentCount(source), targetCount);\n }\n return 0 /* False */;\n }\n if (source.typeParameters && source.typeParameters !== target.typeParameters) {\n target = getCanonicalSignature(target);\n source = instantiateSignatureInContextOf(\n source,\n target,\n /*inferenceContext*/\n void 0,\n compareTypes\n );\n }\n const sourceCount = getParameterCount(source);\n const sourceRestType = getNonArrayRestType(source);\n const targetRestType = getNonArrayRestType(target);\n if (sourceRestType || targetRestType) {\n void instantiateType(sourceRestType || targetRestType, reportUnreliableMarkers);\n }\n const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;\n const strictVariance = !(checkMode & 3 /* Callback */) && strictFunctionTypes && kind !== 175 /* MethodDeclaration */ && kind !== 174 /* MethodSignature */ && kind !== 177 /* Constructor */;\n let result = -1 /* True */;\n const sourceThisType = getThisTypeOfSignature(source);\n if (sourceThisType && sourceThisType !== voidType) {\n const targetThisType = getThisTypeOfSignature(target);\n if (targetThisType) {\n const related = !strictVariance && compareTypes(\n sourceThisType,\n targetThisType,\n /*reportErrors*/\n false\n ) || compareTypes(targetThisType, sourceThisType, reportErrors2);\n if (!related) {\n if (reportErrors2) {\n errorReporter(Diagnostics.The_this_types_of_each_signature_are_incompatible);\n }\n return 0 /* False */;\n }\n result &= related;\n }\n }\n const paramCount = sourceRestType || targetRestType ? Math.min(sourceCount, targetCount) : Math.max(sourceCount, targetCount);\n const restIndex = sourceRestType || targetRestType ? paramCount - 1 : -1;\n for (let i = 0; i < paramCount; i++) {\n const sourceType = i === restIndex ? getRestOrAnyTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);\n const targetType = i === restIndex ? getRestOrAnyTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);\n if (sourceType && targetType && (sourceType !== targetType || checkMode & 8 /* StrictArity */)) {\n const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));\n const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));\n const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648 /* IsUndefinedOrNull */) === getTypeFacts(targetType, 50331648 /* IsUndefinedOrNull */);\n let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(\n sourceType,\n targetType,\n /*reportErrors*/\n false\n ) || compareTypes(targetType, sourceType, reportErrors2);\n if (related && checkMode & 8 /* StrictArity */ && i >= getMinArgumentCount(source) && i < getMinArgumentCount(target) && compareTypes(\n sourceType,\n targetType,\n /*reportErrors*/\n false\n )) {\n related = 0 /* False */;\n }\n if (!related) {\n if (reportErrors2) {\n errorReporter(Diagnostics.Types_of_parameters_0_and_1_are_incompatible, unescapeLeadingUnderscores(getParameterNameAtPosition(source, i)), unescapeLeadingUnderscores(getParameterNameAtPosition(target, i)));\n }\n return 0 /* False */;\n }\n result &= related;\n }\n }\n if (!(checkMode & 4 /* IgnoreReturnTypes */)) {\n const targetReturnType = isResolvingReturnTypeOfSignature(target) ? anyType : target.declaration && isJSConstructor(target.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(target.declaration.symbol)) : getReturnTypeOfSignature(target);\n if (targetReturnType === voidType || targetReturnType === anyType) {\n return result;\n }\n const sourceReturnType = isResolvingReturnTypeOfSignature(source) ? anyType : source.declaration && isJSConstructor(source.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(source.declaration.symbol)) : getReturnTypeOfSignature(source);\n const targetTypePredicate = getTypePredicateOfSignature(target);\n if (targetTypePredicate) {\n const sourceTypePredicate = getTypePredicateOfSignature(source);\n if (sourceTypePredicate) {\n result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes);\n } else if (isIdentifierTypePredicate(targetTypePredicate) || isThisTypePredicate(targetTypePredicate)) {\n if (reportErrors2) {\n errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source));\n }\n return 0 /* False */;\n }\n } else {\n result &= checkMode & 1 /* BivariantCallback */ && compareTypes(\n targetReturnType,\n sourceReturnType,\n /*reportErrors*/\n false\n ) || compareTypes(sourceReturnType, targetReturnType, reportErrors2);\n if (!result && reportErrors2 && incompatibleErrorReporter) {\n incompatibleErrorReporter(sourceReturnType, targetReturnType);\n }\n }\n }\n return result;\n }\n function compareTypePredicateRelatedTo(source, target, reportErrors2, errorReporter, compareTypes) {\n if (source.kind !== target.kind) {\n if (reportErrors2) {\n errorReporter(Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard);\n errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n }\n return 0 /* False */;\n }\n if (source.kind === 1 /* Identifier */ || source.kind === 3 /* AssertsIdentifier */) {\n if (source.parameterIndex !== target.parameterIndex) {\n if (reportErrors2) {\n errorReporter(Diagnostics.Parameter_0_is_not_in_the_same_position_as_parameter_1, source.parameterName, target.parameterName);\n errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n }\n return 0 /* False */;\n }\n }\n const related = source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type, reportErrors2) : 0 /* False */;\n if (related === 0 /* False */ && reportErrors2) {\n errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n }\n return related;\n }\n function isImplementationCompatibleWithOverload(implementation, overload) {\n const erasedSource = getErasedSignature(implementation);\n const erasedTarget = getErasedSignature(overload);\n const sourceReturnType = getReturnTypeOfSignature(erasedSource);\n const targetReturnType = getReturnTypeOfSignature(erasedTarget);\n if (targetReturnType === voidType || isTypeRelatedTo(targetReturnType, sourceReturnType, assignableRelation) || isTypeRelatedTo(sourceReturnType, targetReturnType, assignableRelation)) {\n return isSignatureAssignableTo(\n erasedSource,\n erasedTarget,\n /*ignoreReturnTypes*/\n true\n );\n }\n return false;\n }\n function isEmptyResolvedType(t) {\n return t !== anyFunctionType && t.properties.length === 0 && t.callSignatures.length === 0 && t.constructSignatures.length === 0 && t.indexInfos.length === 0;\n }\n function isEmptyObjectType(type) {\n return type.flags & 524288 /* Object */ ? !isGenericMappedType(type) && isEmptyResolvedType(resolveStructuredTypeMembers(type)) : type.flags & 67108864 /* NonPrimitive */ ? true : type.flags & 1048576 /* Union */ ? some(type.types, isEmptyObjectType) : type.flags & 2097152 /* Intersection */ ? every(type.types, isEmptyObjectType) : false;\n }\n function isEmptyAnonymousObjectType(type) {\n return !!(getObjectFlags(type) & 16 /* Anonymous */ && (type.members && isEmptyResolvedType(type) || type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && getMembersOfSymbol(type.symbol).size === 0));\n }\n function isUnknownLikeUnionType(type) {\n if (strictNullChecks && type.flags & 1048576 /* Union */) {\n if (!(type.objectFlags & 33554432 /* IsUnknownLikeUnionComputed */)) {\n const types = type.types;\n type.objectFlags |= 33554432 /* IsUnknownLikeUnionComputed */ | (types.length >= 3 && types[0].flags & 32768 /* Undefined */ && types[1].flags & 65536 /* Null */ && some(types, isEmptyAnonymousObjectType) ? 67108864 /* IsUnknownLikeUnion */ : 0);\n }\n return !!(type.objectFlags & 67108864 /* IsUnknownLikeUnion */);\n }\n return false;\n }\n function containsUndefinedType(type) {\n return !!((type.flags & 1048576 /* Union */ ? type.types[0] : type).flags & 32768 /* Undefined */);\n }\n function containsNonMissingUndefinedType(type) {\n const candidate = type.flags & 1048576 /* Union */ ? type.types[0] : type;\n return !!(candidate.flags & 32768 /* Undefined */) && candidate !== missingType;\n }\n function isStringIndexSignatureOnlyType(type) {\n return type.flags & 524288 /* Object */ && !isGenericMappedType(type) && getPropertiesOfType(type).length === 0 && getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, stringType) || type.flags & 3145728 /* UnionOrIntersection */ && every(type.types, isStringIndexSignatureOnlyType) || false;\n }\n function isEnumTypeRelatedTo(source, target, errorReporter) {\n const sourceSymbol = source.flags & 8 /* EnumMember */ ? getParentOfSymbol(source) : source;\n const targetSymbol = target.flags & 8 /* EnumMember */ ? getParentOfSymbol(target) : target;\n if (sourceSymbol === targetSymbol) {\n return true;\n }\n if (sourceSymbol.escapedName !== targetSymbol.escapedName || !(sourceSymbol.flags & 256 /* RegularEnum */) || !(targetSymbol.flags & 256 /* RegularEnum */)) {\n return false;\n }\n const id = getSymbolId(sourceSymbol) + \",\" + getSymbolId(targetSymbol);\n const entry = enumRelation.get(id);\n if (entry !== void 0 && !(entry & 2 /* Failed */ && errorReporter)) {\n return !!(entry & 1 /* Succeeded */);\n }\n const targetEnumType = getTypeOfSymbol(targetSymbol);\n for (const sourceProperty of getPropertiesOfType(getTypeOfSymbol(sourceSymbol))) {\n if (sourceProperty.flags & 8 /* EnumMember */) {\n const targetProperty = getPropertyOfType(targetEnumType, sourceProperty.escapedName);\n if (!targetProperty || !(targetProperty.flags & 8 /* EnumMember */)) {\n if (errorReporter) {\n errorReporter(Diagnostics.Property_0_is_missing_in_type_1, symbolName(sourceProperty), typeToString(\n getDeclaredTypeOfSymbol(targetSymbol),\n /*enclosingDeclaration*/\n void 0,\n 64 /* UseFullyQualifiedType */\n ));\n }\n enumRelation.set(id, 2 /* Failed */);\n return false;\n }\n const sourceValue = getEnumMemberValue(getDeclarationOfKind(sourceProperty, 307 /* EnumMember */)).value;\n const targetValue = getEnumMemberValue(getDeclarationOfKind(targetProperty, 307 /* EnumMember */)).value;\n if (sourceValue !== targetValue) {\n const sourceIsString = typeof sourceValue === \"string\";\n const targetIsString = typeof targetValue === \"string\";\n if (sourceValue !== void 0 && targetValue !== void 0) {\n if (errorReporter) {\n const escapedSource = sourceIsString ? `\"${escapeString(sourceValue)}\"` : sourceValue;\n const escapedTarget = targetIsString ? `\"${escapeString(targetValue)}\"` : targetValue;\n errorReporter(Diagnostics.Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given, symbolName(targetSymbol), symbolName(targetProperty), escapedTarget, escapedSource);\n }\n enumRelation.set(id, 2 /* Failed */);\n return false;\n }\n if (sourceIsString || targetIsString) {\n if (errorReporter) {\n const knownStringValue = sourceValue ?? targetValue;\n Debug.assert(typeof knownStringValue === \"string\");\n const escapedValue = `\"${escapeString(knownStringValue)}\"`;\n errorReporter(Diagnostics.One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value, symbolName(targetSymbol), symbolName(targetProperty), escapedValue);\n }\n enumRelation.set(id, 2 /* Failed */);\n return false;\n }\n }\n }\n }\n enumRelation.set(id, 1 /* Succeeded */);\n return true;\n }\n function isSimpleTypeRelatedTo(source, target, relation, errorReporter) {\n const s = source.flags;\n const t = target.flags;\n if (t & 1 /* Any */ || s & 131072 /* Never */ || source === wildcardType) return true;\n if (t & 2 /* Unknown */ && !(relation === strictSubtypeRelation && s & 1 /* Any */)) return true;\n if (t & 131072 /* Never */) return false;\n if (s & 402653316 /* StringLike */ && t & 4 /* String */) return true;\n if (s & 128 /* StringLiteral */ && s & 1024 /* EnumLiteral */ && t & 128 /* StringLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) return true;\n if (s & 296 /* NumberLike */ && t & 8 /* Number */) return true;\n if (s & 256 /* NumberLiteral */ && s & 1024 /* EnumLiteral */ && t & 256 /* NumberLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) return true;\n if (s & 2112 /* BigIntLike */ && t & 64 /* BigInt */) return true;\n if (s & 528 /* BooleanLike */ && t & 16 /* Boolean */) return true;\n if (s & 12288 /* ESSymbolLike */ && t & 4096 /* ESSymbol */) return true;\n if (s & 32 /* Enum */ && t & 32 /* Enum */ && source.symbol.escapedName === target.symbol.escapedName && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n if (s & 1024 /* EnumLiteral */ && t & 1024 /* EnumLiteral */) {\n if (s & 1048576 /* Union */ && t & 1048576 /* Union */ && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n if (s & 2944 /* Literal */ && t & 2944 /* Literal */ && source.value === target.value && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n }\n if (s & 32768 /* Undefined */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & (32768 /* Undefined */ | 16384 /* Void */))) return true;\n if (s & 65536 /* Null */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & 65536 /* Null */)) return true;\n if (s & 524288 /* Object */ && t & 67108864 /* NonPrimitive */ && !(relation === strictSubtypeRelation && isEmptyAnonymousObjectType(source) && !(getObjectFlags(source) & 8192 /* FreshLiteral */))) return true;\n if (relation === assignableRelation || relation === comparableRelation) {\n if (s & 1 /* Any */) return true;\n if (s & 8 /* Number */ && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */)) return true;\n if (s & 256 /* NumberLiteral */ && !(s & 1024 /* EnumLiteral */) && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */ && source.value === target.value)) return true;\n if (isUnknownLikeUnionType(target)) return true;\n }\n return false;\n }\n function isTypeRelatedTo(source, target, relation) {\n if (isFreshLiteralType(source)) {\n source = source.regularType;\n }\n if (isFreshLiteralType(target)) {\n target = target.regularType;\n }\n if (source === target) {\n return true;\n }\n if (relation !== identityRelation) {\n if (relation === comparableRelation && !(target.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation)) {\n return true;\n }\n } else if (!((source.flags | target.flags) & (3145728 /* UnionOrIntersection */ | 8388608 /* IndexedAccess */ | 16777216 /* Conditional */ | 33554432 /* Substitution */))) {\n if (source.flags !== target.flags) return false;\n if (source.flags & 67358815 /* Singleton */) return true;\n }\n if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) {\n const related = relation.get(getRelationKey(\n source,\n target,\n 0 /* None */,\n relation,\n /*ignoreConstraints*/\n false\n ));\n if (related !== void 0) {\n return !!(related & 1 /* Succeeded */);\n }\n }\n if (source.flags & 469499904 /* StructuredOrInstantiable */ || target.flags & 469499904 /* StructuredOrInstantiable */) {\n return checkTypeRelatedTo(\n source,\n target,\n relation,\n /*errorNode*/\n void 0\n );\n }\n return false;\n }\n function isIgnoredJsxProperty(source, sourceProp) {\n return getObjectFlags(source) & 2048 /* JsxAttributes */ && isHyphenatedJsxName(sourceProp.escapedName);\n }\n function getNormalizedType(type, writing) {\n while (true) {\n const t = isFreshLiteralType(type) ? type.regularType : isGenericTupleType(type) ? getNormalizedTupleType(type, writing) : getObjectFlags(type) & 4 /* Reference */ ? type.node ? createTypeReference(type.target, getTypeArguments(type)) : getSingleBaseForNonAugmentingSubtype(type) || type : type.flags & 3145728 /* UnionOrIntersection */ ? getNormalizedUnionOrIntersectionType(type, writing) : type.flags & 33554432 /* Substitution */ ? writing ? type.baseType : getSubstitutionIntersection(type) : type.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(type, writing) : type;\n if (t === type) return t;\n type = t;\n }\n }\n function getNormalizedUnionOrIntersectionType(type, writing) {\n const reduced = getReducedType(type);\n if (reduced !== type) {\n return reduced;\n }\n if (type.flags & 2097152 /* Intersection */ && shouldNormalizeIntersection(type)) {\n const normalizedTypes = sameMap(type.types, (t) => getNormalizedType(t, writing));\n if (normalizedTypes !== type.types) {\n return getIntersectionType(normalizedTypes);\n }\n }\n return type;\n }\n function shouldNormalizeIntersection(type) {\n let hasInstantiable = false;\n let hasNullableOrEmpty = false;\n for (const t of type.types) {\n hasInstantiable || (hasInstantiable = !!(t.flags & 465829888 /* Instantiable */));\n hasNullableOrEmpty || (hasNullableOrEmpty = !!(t.flags & 98304 /* Nullable */) || isEmptyAnonymousObjectType(t));\n if (hasInstantiable && hasNullableOrEmpty) return true;\n }\n return false;\n }\n function getNormalizedTupleType(type, writing) {\n const elements = getElementTypes(type);\n const normalizedElements = sameMap(elements, (t) => t.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(t, writing) : t);\n return elements !== normalizedElements ? createNormalizedTupleType(type.target, normalizedElements) : type;\n }\n function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer) {\n var _a;\n let errorInfo;\n let relatedInfo;\n let maybeKeys;\n let maybeKeysSet;\n let sourceStack;\n let targetStack;\n let maybeCount = 0;\n let sourceDepth = 0;\n let targetDepth = 0;\n let expandingFlags = 0 /* None */;\n let overflow = false;\n let overrideNextErrorInfo = 0;\n let skipParentCounter = 0;\n let lastSkippedInfo;\n let incompatibleStack;\n let relationCount = 16e6 - relation.size >> 3;\n Debug.assert(relation !== identityRelation || !errorNode, \"no error reporting in identity checking\");\n const result = isRelatedTo(\n source,\n target,\n 3 /* Both */,\n /*reportErrors*/\n !!errorNode,\n headMessage\n );\n if (incompatibleStack) {\n reportIncompatibleStack();\n }\n if (overflow) {\n const id = getRelationKey(\n source,\n target,\n /*intersectionState*/\n 0 /* None */,\n relation,\n /*ignoreConstraints*/\n false\n );\n relation.set(id, 2 /* Failed */ | (relationCount <= 0 ? 32 /* ComplexityOverflow */ : 64 /* StackDepthOverflow */));\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"checkTypeRelatedTo_DepthLimit\", { sourceId: source.id, targetId: target.id, depth: sourceDepth, targetDepth });\n const message = relationCount <= 0 ? Diagnostics.Excessive_complexity_comparing_types_0_and_1 : Diagnostics.Excessive_stack_depth_comparing_types_0_and_1;\n const diag2 = error2(errorNode || currentNode, message, typeToString(source), typeToString(target));\n if (errorOutputContainer) {\n (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n }\n } else if (errorInfo) {\n if (containingMessageChain) {\n const chain = containingMessageChain();\n if (chain) {\n concatenateDiagnosticMessageChains(chain, errorInfo);\n errorInfo = chain;\n }\n }\n let relatedInformation;\n if (headMessage && errorNode && !result && source.symbol) {\n const links = getSymbolLinks(source.symbol);\n if (links.originatingImport && !isImportCall(links.originatingImport)) {\n const helpfulRetry = checkTypeRelatedTo(\n getTypeOfSymbol(links.target),\n target,\n relation,\n /*errorNode*/\n void 0\n );\n if (helpfulRetry) {\n const diag3 = createDiagnosticForNode(links.originatingImport, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead);\n relatedInformation = append(relatedInformation, diag3);\n }\n }\n }\n const diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, errorInfo, relatedInformation);\n if (relatedInfo) {\n addRelatedInfo(diag2, ...relatedInfo);\n }\n if (errorOutputContainer) {\n (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n }\n if (!errorOutputContainer || !errorOutputContainer.skipLogging) {\n diagnostics.add(diag2);\n }\n }\n if (errorNode && errorOutputContainer && errorOutputContainer.skipLogging && result === 0 /* False */) {\n Debug.assert(!!errorOutputContainer.errors, \"missed opportunity to interact with error.\");\n }\n return result !== 0 /* False */;\n function resetErrorInfo(saved) {\n errorInfo = saved.errorInfo;\n lastSkippedInfo = saved.lastSkippedInfo;\n incompatibleStack = saved.incompatibleStack;\n overrideNextErrorInfo = saved.overrideNextErrorInfo;\n skipParentCounter = saved.skipParentCounter;\n relatedInfo = saved.relatedInfo;\n }\n function captureErrorCalculationState() {\n return {\n errorInfo,\n lastSkippedInfo,\n incompatibleStack: incompatibleStack == null ? void 0 : incompatibleStack.slice(),\n overrideNextErrorInfo,\n skipParentCounter,\n relatedInfo: relatedInfo == null ? void 0 : relatedInfo.slice()\n };\n }\n function reportIncompatibleError(message, ...args) {\n overrideNextErrorInfo++;\n lastSkippedInfo = void 0;\n (incompatibleStack || (incompatibleStack = [])).push([message, ...args]);\n }\n function reportIncompatibleStack() {\n const stack = incompatibleStack || [];\n incompatibleStack = void 0;\n const info = lastSkippedInfo;\n lastSkippedInfo = void 0;\n if (stack.length === 1) {\n reportError(...stack[0]);\n if (info) {\n reportRelationError(\n /*message*/\n void 0,\n ...info\n );\n }\n return;\n }\n let path = \"\";\n const secondaryRootErrors = [];\n while (stack.length) {\n const [msg, ...args] = stack.pop();\n switch (msg.code) {\n case Diagnostics.Types_of_property_0_are_incompatible.code: {\n if (path.indexOf(\"new \") === 0) {\n path = `(${path})`;\n }\n const str = \"\" + args[0];\n if (path.length === 0) {\n path = `${str}`;\n } else if (isIdentifierText(str, getEmitScriptTarget(compilerOptions))) {\n path = `${path}.${str}`;\n } else if (str[0] === \"[\" && str[str.length - 1] === \"]\") {\n path = `${path}${str}`;\n } else {\n path = `${path}[${str}]`;\n }\n break;\n }\n case Diagnostics.Call_signature_return_types_0_and_1_are_incompatible.code:\n case Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code:\n case Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:\n case Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code: {\n if (path.length === 0) {\n let mappedMsg = msg;\n if (msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) {\n mappedMsg = Diagnostics.Call_signature_return_types_0_and_1_are_incompatible;\n } else if (msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) {\n mappedMsg = Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible;\n }\n secondaryRootErrors.unshift([mappedMsg, args[0], args[1]]);\n } else {\n const prefix = msg.code === Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? \"new \" : \"\";\n const params = msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? \"\" : \"...\";\n path = `${prefix}${path}(${params})`;\n }\n break;\n }\n case Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code: {\n secondaryRootErrors.unshift([Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, args[0], args[1]]);\n break;\n }\n case Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target.code: {\n secondaryRootErrors.unshift([Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, args[0], args[1], args[2]]);\n break;\n }\n default:\n return Debug.fail(`Unhandled Diagnostic: ${msg.code}`);\n }\n }\n if (path) {\n reportError(\n path[path.length - 1] === \")\" ? Diagnostics.The_types_returned_by_0_are_incompatible_between_these_types : Diagnostics.The_types_of_0_are_incompatible_between_these_types,\n path\n );\n } else {\n secondaryRootErrors.shift();\n }\n for (const [msg, ...args] of secondaryRootErrors) {\n const originalValue = msg.elidedInCompatabilityPyramid;\n msg.elidedInCompatabilityPyramid = false;\n reportError(msg, ...args);\n msg.elidedInCompatabilityPyramid = originalValue;\n }\n if (info) {\n reportRelationError(\n /*message*/\n void 0,\n ...info\n );\n }\n }\n function reportError(message, ...args) {\n Debug.assert(!!errorNode);\n if (incompatibleStack) reportIncompatibleStack();\n if (message.elidedInCompatabilityPyramid) return;\n if (skipParentCounter === 0) {\n errorInfo = chainDiagnosticMessages(errorInfo, message, ...args);\n } else {\n skipParentCounter--;\n }\n }\n function reportParentSkippedError(message, ...args) {\n reportError(message, ...args);\n skipParentCounter++;\n }\n function associateRelatedInfo(info) {\n Debug.assert(!!errorInfo);\n if (!relatedInfo) {\n relatedInfo = [info];\n } else {\n relatedInfo.push(info);\n }\n }\n function reportRelationError(message, source2, target2) {\n if (incompatibleStack) reportIncompatibleStack();\n const [sourceType, targetType] = getTypeNamesForErrorDisplay(source2, target2);\n let generalizedSource = source2;\n let generalizedSourceType = sourceType;\n if (!(target2.flags & 131072 /* Never */) && isLiteralType(source2) && !typeCouldHaveTopLevelSingletonTypes(target2)) {\n generalizedSource = getBaseTypeOfLiteralType(source2);\n Debug.assert(!isTypeAssignableTo(generalizedSource, target2), \"generalized source shouldn't be assignable\");\n generalizedSourceType = getTypeNameForErrorDisplay(generalizedSource);\n }\n const targetFlags = target2.flags & 8388608 /* IndexedAccess */ && !(source2.flags & 8388608 /* IndexedAccess */) ? target2.objectType.flags : target2.flags;\n if (targetFlags & 262144 /* TypeParameter */ && target2 !== markerSuperTypeForCheck && target2 !== markerSubTypeForCheck) {\n const constraint = getBaseConstraintOfType(target2);\n let needsOriginalSource;\n if (constraint && (isTypeAssignableTo(generalizedSource, constraint) || (needsOriginalSource = isTypeAssignableTo(source2, constraint)))) {\n reportError(\n Diagnostics._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2,\n needsOriginalSource ? sourceType : generalizedSourceType,\n targetType,\n typeToString(constraint)\n );\n } else {\n errorInfo = void 0;\n reportError(\n Diagnostics._0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1,\n targetType,\n generalizedSourceType\n );\n }\n }\n if (!message) {\n if (relation === comparableRelation) {\n message = Diagnostics.Type_0_is_not_comparable_to_type_1;\n } else if (sourceType === targetType) {\n message = Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated;\n } else if (exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) {\n message = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;\n } else {\n if (source2.flags & 128 /* StringLiteral */ && target2.flags & 1048576 /* Union */) {\n const suggestedType = getSuggestedTypeForNonexistentStringLiteralType(source2, target2);\n if (suggestedType) {\n reportError(Diagnostics.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, generalizedSourceType, targetType, typeToString(suggestedType));\n return;\n }\n }\n message = Diagnostics.Type_0_is_not_assignable_to_type_1;\n }\n } else if (message === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1 && exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) {\n message = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;\n }\n reportError(message, generalizedSourceType, targetType);\n }\n function tryElaborateErrorsForPrimitivesAndObjects(source2, target2) {\n const sourceType = symbolValueDeclarationIsContextSensitive(source2.symbol) ? typeToString(source2, source2.symbol.valueDeclaration) : typeToString(source2);\n const targetType = symbolValueDeclarationIsContextSensitive(target2.symbol) ? typeToString(target2, target2.symbol.valueDeclaration) : typeToString(target2);\n if (globalStringType === source2 && stringType === target2 || globalNumberType === source2 && numberType === target2 || globalBooleanType === source2 && booleanType === target2 || getGlobalESSymbolType() === source2 && esSymbolType === target2) {\n reportError(Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, targetType, sourceType);\n }\n }\n function tryElaborateArrayLikeErrors(source2, target2, reportErrors2) {\n if (isTupleType(source2)) {\n if (source2.target.readonly && isMutableArrayOrTuple(target2)) {\n if (reportErrors2) {\n reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2));\n }\n return false;\n }\n return isArrayOrTupleType(target2);\n }\n if (isReadonlyArrayType(source2) && isMutableArrayOrTuple(target2)) {\n if (reportErrors2) {\n reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2));\n }\n return false;\n }\n if (isTupleType(target2)) {\n return isArrayType(source2);\n }\n return true;\n }\n function isRelatedToWorker(source2, target2, reportErrors2) {\n return isRelatedTo(source2, target2, 3 /* Both */, reportErrors2);\n }\n function isRelatedTo(originalSource, originalTarget, recursionFlags = 3 /* Both */, reportErrors2 = false, headMessage2, intersectionState = 0 /* None */) {\n if (originalSource === originalTarget) return -1 /* True */;\n if (originalSource.flags & 524288 /* Object */ && originalTarget.flags & 402784252 /* Primitive */) {\n if (relation === comparableRelation && !(originalTarget.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : void 0)) {\n return -1 /* True */;\n }\n if (reportErrors2) {\n reportErrorResults(originalSource, originalTarget, originalSource, originalTarget, headMessage2);\n }\n return 0 /* False */;\n }\n const source2 = getNormalizedType(\n originalSource,\n /*writing*/\n false\n );\n let target2 = getNormalizedType(\n originalTarget,\n /*writing*/\n true\n );\n if (source2 === target2) return -1 /* True */;\n if (relation === identityRelation) {\n if (source2.flags !== target2.flags) return 0 /* False */;\n if (source2.flags & 67358815 /* Singleton */) return -1 /* True */;\n traceUnionsOrIntersectionsTooLarge(source2, target2);\n return recursiveTypeRelatedTo(\n source2,\n target2,\n /*reportErrors*/\n false,\n 0 /* None */,\n recursionFlags\n );\n }\n if (source2.flags & 262144 /* TypeParameter */ && getConstraintOfType(source2) === target2) {\n return -1 /* True */;\n }\n if (source2.flags & 470302716 /* DefinitelyNonNullable */ && target2.flags & 1048576 /* Union */) {\n const types = target2.types;\n const candidate = types.length === 2 && types[0].flags & 98304 /* Nullable */ ? types[1] : types.length === 3 && types[0].flags & 98304 /* Nullable */ && types[1].flags & 98304 /* Nullable */ ? types[2] : void 0;\n if (candidate && !(candidate.flags & 98304 /* Nullable */)) {\n target2 = getNormalizedType(\n candidate,\n /*writing*/\n true\n );\n if (source2 === target2) return -1 /* True */;\n }\n }\n if (relation === comparableRelation && !(target2.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target2, source2, relation) || isSimpleTypeRelatedTo(source2, target2, relation, reportErrors2 ? reportError : void 0)) return -1 /* True */;\n if (source2.flags & 469499904 /* StructuredOrInstantiable */ || target2.flags & 469499904 /* StructuredOrInstantiable */) {\n const isPerformingExcessPropertyChecks = !(intersectionState & 2 /* Target */) && (isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */);\n if (isPerformingExcessPropertyChecks) {\n if (hasExcessProperties(source2, target2, reportErrors2)) {\n if (reportErrors2) {\n reportRelationError(headMessage2, source2, originalTarget.aliasSymbol ? originalTarget : target2);\n }\n return 0 /* False */;\n }\n }\n const isPerformingCommonPropertyChecks = (relation !== comparableRelation || isUnitType(source2)) && !(intersectionState & 2 /* Target */) && source2.flags & (402784252 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source2 !== globalObjectType && target2.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target2) && (getPropertiesOfType(source2).length > 0 || typeHasCallOrConstructSignatures(source2));\n const isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */);\n if (isPerformingCommonPropertyChecks && !hasCommonProperties(source2, target2, isComparingJsxAttributes)) {\n if (reportErrors2) {\n const sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source2);\n const targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target2);\n const calls = getSignaturesOfType(source2, 0 /* Call */);\n const constructs = getSignaturesOfType(source2, 1 /* Construct */);\n if (calls.length > 0 && isRelatedTo(\n getReturnTypeOfSignature(calls[0]),\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false\n ) || constructs.length > 0 && isRelatedTo(\n getReturnTypeOfSignature(constructs[0]),\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false\n )) {\n reportError(Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString);\n } else {\n reportError(Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString);\n }\n }\n return 0 /* False */;\n }\n traceUnionsOrIntersectionsTooLarge(source2, target2);\n const skipCaching = source2.flags & 1048576 /* Union */ && source2.types.length < 4 && !(target2.flags & 1048576 /* Union */) || target2.flags & 1048576 /* Union */ && target2.types.length < 4 && !(source2.flags & 469499904 /* StructuredOrInstantiable */);\n const result2 = skipCaching ? unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) : recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags);\n if (result2) {\n return result2;\n }\n }\n if (reportErrors2) {\n reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2);\n }\n return 0 /* False */;\n }\n function reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2) {\n var _a2, _b;\n const sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource);\n const targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget);\n source2 = originalSource.aliasSymbol || sourceHasBase ? originalSource : source2;\n target2 = originalTarget.aliasSymbol || targetHasBase ? originalTarget : target2;\n let maybeSuppress = overrideNextErrorInfo > 0;\n if (maybeSuppress) {\n overrideNextErrorInfo--;\n }\n if (source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */) {\n const currentError = errorInfo;\n tryElaborateArrayLikeErrors(\n source2,\n target2,\n /*reportErrors*/\n true\n );\n if (errorInfo !== currentError) {\n maybeSuppress = !!errorInfo;\n }\n }\n if (source2.flags & 524288 /* Object */ && target2.flags & 402784252 /* Primitive */) {\n tryElaborateErrorsForPrimitivesAndObjects(source2, target2);\n } else if (source2.symbol && source2.flags & 524288 /* Object */ && globalObjectType === source2) {\n reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);\n } else if (getObjectFlags(source2) & 2048 /* JsxAttributes */ && target2.flags & 2097152 /* Intersection */) {\n const targetTypes = target2.types;\n const intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode);\n const intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode);\n if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) && (contains(targetTypes, intrinsicAttributes) || contains(targetTypes, intrinsicClassAttributes))) {\n return;\n }\n } else {\n errorInfo = elaborateNeverIntersection(errorInfo, originalTarget);\n }\n if (!headMessage2 && maybeSuppress) {\n const savedErrorState = captureErrorCalculationState();\n reportRelationError(headMessage2, source2, target2);\n let canonical;\n if (errorInfo && errorInfo !== savedErrorState.errorInfo) {\n canonical = { code: errorInfo.code, messageText: errorInfo.messageText };\n }\n resetErrorInfo(savedErrorState);\n if (canonical && errorInfo) {\n errorInfo.canonicalHead = canonical;\n }\n lastSkippedInfo = [source2, target2];\n return;\n }\n reportRelationError(headMessage2, source2, target2);\n if (source2.flags & 262144 /* TypeParameter */ && ((_b = (_a2 = source2.symbol) == null ? void 0 : _a2.declarations) == null ? void 0 : _b[0]) && !getConstraintOfType(source2)) {\n const syntheticParam = cloneTypeParameter(source2);\n syntheticParam.constraint = instantiateType(target2, makeUnaryTypeMapper(source2, syntheticParam));\n if (hasNonCircularBaseConstraint(syntheticParam)) {\n const targetConstraintString = typeToString(target2, source2.symbol.declarations[0]);\n associateRelatedInfo(createDiagnosticForNode(source2.symbol.declarations[0], Diagnostics.This_type_parameter_might_need_an_extends_0_constraint, targetConstraintString));\n }\n }\n }\n function traceUnionsOrIntersectionsTooLarge(source2, target2) {\n if (!tracing) {\n return;\n }\n if (source2.flags & 3145728 /* UnionOrIntersection */ && target2.flags & 3145728 /* UnionOrIntersection */) {\n const sourceUnionOrIntersection = source2;\n const targetUnionOrIntersection = target2;\n if (sourceUnionOrIntersection.objectFlags & targetUnionOrIntersection.objectFlags & 32768 /* PrimitiveUnion */) {\n return;\n }\n const sourceSize = sourceUnionOrIntersection.types.length;\n const targetSize = targetUnionOrIntersection.types.length;\n if (sourceSize * targetSize > 1e6) {\n tracing.instant(tracing.Phase.CheckTypes, \"traceUnionsOrIntersectionsTooLarge_DepthLimit\", {\n sourceId: source2.id,\n sourceSize,\n targetId: target2.id,\n targetSize,\n pos: errorNode == null ? void 0 : errorNode.pos,\n end: errorNode == null ? void 0 : errorNode.end\n });\n }\n }\n }\n function getTypeOfPropertyInTypes(types, name) {\n const appendPropType = (propTypes, type) => {\n var _a2;\n type = getApparentType(type);\n const prop = type.flags & 3145728 /* UnionOrIntersection */ ? getPropertyOfUnionOrIntersectionType(type, name) : getPropertyOfObjectType(type, name);\n const propType = prop && getTypeOfSymbol(prop) || ((_a2 = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a2.type) || undefinedType;\n return append(propTypes, propType);\n };\n return getUnionType(reduceLeft(\n types,\n appendPropType,\n /*initial*/\n void 0\n ) || emptyArray);\n }\n function hasExcessProperties(source2, target2, reportErrors2) {\n var _a2;\n if (!isExcessPropertyCheckTarget(target2) || !noImplicitAny && getObjectFlags(target2) & 4096 /* JSLiteral */) {\n return false;\n }\n const isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */);\n if ((relation === assignableRelation || relation === comparableRelation) && (isTypeSubsetOf(globalObjectType, target2) || !isComparingJsxAttributes && isEmptyObjectType(target2))) {\n return false;\n }\n let reducedTarget = target2;\n let checkTypes;\n if (target2.flags & 1048576 /* Union */) {\n reducedTarget = findMatchingDiscriminantType(source2, target2, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target2);\n checkTypes = reducedTarget.flags & 1048576 /* Union */ ? reducedTarget.types : [reducedTarget];\n }\n for (const prop of getPropertiesOfType(source2)) {\n if (shouldCheckAsExcessProperty(prop, source2.symbol) && !isIgnoredJsxProperty(source2, prop)) {\n if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) {\n if (reportErrors2) {\n const errorTarget = filterType(reducedTarget, isExcessPropertyCheckTarget);\n if (!errorNode) return Debug.fail();\n if (isJsxAttributes(errorNode) || isJsxOpeningLikeElement(errorNode) || isJsxOpeningLikeElement(errorNode.parent)) {\n if (prop.valueDeclaration && isJsxAttribute(prop.valueDeclaration) && getSourceFileOfNode(errorNode) === getSourceFileOfNode(prop.valueDeclaration.name)) {\n errorNode = prop.valueDeclaration.name;\n }\n const propName = symbolToString(prop);\n const suggestionSymbol = getSuggestedSymbolForNonexistentJSXAttribute(propName, errorTarget);\n const suggestion = suggestionSymbol ? symbolToString(suggestionSymbol) : void 0;\n if (suggestion) {\n reportError(Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(errorTarget), suggestion);\n } else {\n reportError(Diagnostics.Property_0_does_not_exist_on_type_1, propName, typeToString(errorTarget));\n }\n } else {\n const objectLiteralDeclaration = ((_a2 = source2.symbol) == null ? void 0 : _a2.declarations) && firstOrUndefined(source2.symbol.declarations);\n let suggestion;\n if (prop.valueDeclaration && findAncestor(prop.valueDeclaration, (d) => d === objectLiteralDeclaration) && getSourceFileOfNode(objectLiteralDeclaration) === getSourceFileOfNode(errorNode)) {\n const propDeclaration = prop.valueDeclaration;\n Debug.assertNode(propDeclaration, isObjectLiteralElementLike);\n const name = propDeclaration.name;\n errorNode = name;\n if (isIdentifier(name)) {\n suggestion = getSuggestionForNonexistentProperty(name, errorTarget);\n }\n }\n if (suggestion !== void 0) {\n reportParentSkippedError(Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2, symbolToString(prop), typeToString(errorTarget), suggestion);\n } else {\n reportParentSkippedError(Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(errorTarget));\n }\n }\n }\n return true;\n }\n if (checkTypes && !isRelatedTo(getTypeOfSymbol(prop), getTypeOfPropertyInTypes(checkTypes, prop.escapedName), 3 /* Both */, reportErrors2)) {\n if (reportErrors2) {\n reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(prop));\n }\n return true;\n }\n }\n }\n return false;\n }\n function shouldCheckAsExcessProperty(prop, container) {\n return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration;\n }\n function unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) {\n if (source2.flags & 1048576 /* Union */) {\n if (target2.flags & 1048576 /* Union */) {\n const sourceOrigin = source2.origin;\n if (sourceOrigin && sourceOrigin.flags & 2097152 /* Intersection */ && target2.aliasSymbol && contains(sourceOrigin.types, target2)) {\n return -1 /* True */;\n }\n const targetOrigin = target2.origin;\n if (targetOrigin && targetOrigin.flags & 1048576 /* Union */ && source2.aliasSymbol && contains(targetOrigin.types, source2)) {\n return -1 /* True */;\n }\n }\n return relation === comparableRelation ? someTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState) : eachTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState);\n }\n if (target2.flags & 1048576 /* Union */) {\n return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source2), target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */) && !(target2.flags & 402784252 /* Primitive */), intersectionState);\n }\n if (target2.flags & 2097152 /* Intersection */) {\n return typeRelatedToEachType(source2, target2, reportErrors2, 2 /* Target */);\n }\n if (relation === comparableRelation && target2.flags & 402784252 /* Primitive */) {\n const constraints = sameMap(source2.types, (t) => t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(t) || unknownType : t);\n if (constraints !== source2.types) {\n source2 = getIntersectionType(constraints);\n if (source2.flags & 131072 /* Never */) {\n return 0 /* False */;\n }\n if (!(source2.flags & 2097152 /* Intersection */)) {\n return isRelatedTo(\n source2,\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false\n ) || isRelatedTo(\n target2,\n source2,\n 1 /* Source */,\n /*reportErrors*/\n false\n );\n }\n }\n }\n return someTypeRelatedToType(\n source2,\n target2,\n /*reportErrors*/\n false,\n 1 /* Source */\n );\n }\n function eachTypeRelatedToSomeType(source2, target2) {\n let result2 = -1 /* True */;\n const sourceTypes = source2.types;\n for (const sourceType of sourceTypes) {\n const related = typeRelatedToSomeType(\n sourceType,\n target2,\n /*reportErrors*/\n false,\n 0 /* None */\n );\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function typeRelatedToSomeType(source2, target2, reportErrors2, intersectionState) {\n const targetTypes = target2.types;\n if (target2.flags & 1048576 /* Union */) {\n if (containsType(targetTypes, source2)) {\n return -1 /* True */;\n }\n if (relation !== comparableRelation && getObjectFlags(target2) & 32768 /* PrimitiveUnion */ && !(source2.flags & 1024 /* EnumLiteral */) && (source2.flags & (128 /* StringLiteral */ | 512 /* BooleanLiteral */ | 2048 /* BigIntLiteral */) || (relation === subtypeRelation || relation === strictSubtypeRelation) && source2.flags & 256 /* NumberLiteral */)) {\n const alternateForm = source2 === source2.regularType ? source2.freshType : source2.regularType;\n const primitive = source2.flags & 128 /* StringLiteral */ ? stringType : source2.flags & 256 /* NumberLiteral */ ? numberType : source2.flags & 2048 /* BigIntLiteral */ ? bigintType : void 0;\n return primitive && containsType(targetTypes, primitive) || alternateForm && containsType(targetTypes, alternateForm) ? -1 /* True */ : 0 /* False */;\n }\n const match = getMatchingUnionConstituentForType(target2, source2);\n if (match) {\n const related = isRelatedTo(\n source2,\n match,\n 2 /* Target */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (related) {\n return related;\n }\n }\n }\n for (const type of targetTypes) {\n const related = isRelatedTo(\n source2,\n type,\n 2 /* Target */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (related) {\n return related;\n }\n }\n if (reportErrors2) {\n const bestMatchingType = getBestMatchingType(source2, target2, isRelatedTo);\n if (bestMatchingType) {\n isRelatedTo(\n source2,\n bestMatchingType,\n 2 /* Target */,\n /*reportErrors*/\n true,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n }\n return 0 /* False */;\n }\n function typeRelatedToEachType(source2, target2, reportErrors2, intersectionState) {\n let result2 = -1 /* True */;\n const targetTypes = target2.types;\n for (const targetType of targetTypes) {\n const related = isRelatedTo(\n source2,\n targetType,\n 2 /* Target */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function someTypeRelatedToType(source2, target2, reportErrors2, intersectionState) {\n const sourceTypes = source2.types;\n if (source2.flags & 1048576 /* Union */ && containsType(sourceTypes, target2)) {\n return -1 /* True */;\n }\n const len = sourceTypes.length;\n for (let i = 0; i < len; i++) {\n const related = isRelatedTo(\n sourceTypes[i],\n target2,\n 1 /* Source */,\n reportErrors2 && i === len - 1,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (related) {\n return related;\n }\n }\n return 0 /* False */;\n }\n function getUndefinedStrippedTargetIfNeeded(source2, target2) {\n if (source2.flags & 1048576 /* Union */ && target2.flags & 1048576 /* Union */ && !(source2.types[0].flags & 32768 /* Undefined */) && target2.types[0].flags & 32768 /* Undefined */) {\n return extractTypesOfKind(target2, ~32768 /* Undefined */);\n }\n return target2;\n }\n function eachTypeRelatedToType(source2, target2, reportErrors2, intersectionState) {\n let result2 = -1 /* True */;\n const sourceTypes = source2.types;\n const undefinedStrippedTarget = getUndefinedStrippedTargetIfNeeded(source2, target2);\n for (let i = 0; i < sourceTypes.length; i++) {\n const sourceType = sourceTypes[i];\n if (undefinedStrippedTarget.flags & 1048576 /* Union */ && sourceTypes.length >= undefinedStrippedTarget.types.length && sourceTypes.length % undefinedStrippedTarget.types.length === 0) {\n const related2 = isRelatedTo(\n sourceType,\n undefinedStrippedTarget.types[i % undefinedStrippedTarget.types.length],\n 3 /* Both */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (related2) {\n result2 &= related2;\n continue;\n }\n }\n const related = isRelatedTo(\n sourceType,\n target2,\n 1 /* Source */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function typeArgumentsRelatedTo(sources = emptyArray, targets = emptyArray, variances = emptyArray, reportErrors2, intersectionState) {\n if (sources.length !== targets.length && relation === identityRelation) {\n return 0 /* False */;\n }\n const length2 = sources.length <= targets.length ? sources.length : targets.length;\n let result2 = -1 /* True */;\n for (let i = 0; i < length2; i++) {\n const varianceFlags = i < variances.length ? variances[i] : 1 /* Covariant */;\n const variance = varianceFlags & 7 /* VarianceMask */;\n if (variance !== 4 /* Independent */) {\n const s = sources[i];\n const t = targets[i];\n let related = -1 /* True */;\n if (varianceFlags & 8 /* Unmeasurable */) {\n related = relation === identityRelation ? isRelatedTo(\n s,\n t,\n 3 /* Both */,\n /*reportErrors*/\n false\n ) : compareTypesIdentical(s, t);\n } else if (variance === 1 /* Covariant */) {\n related = isRelatedTo(\n s,\n t,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n } else if (variance === 2 /* Contravariant */) {\n related = isRelatedTo(\n t,\n s,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n } else if (variance === 3 /* Bivariant */) {\n related = isRelatedTo(\n t,\n s,\n 3 /* Both */,\n /*reportErrors*/\n false\n );\n if (!related) {\n related = isRelatedTo(\n s,\n t,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n } else {\n related = isRelatedTo(\n s,\n t,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (related) {\n related &= isRelatedTo(\n t,\n s,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n }\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n }\n return result2;\n }\n function recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags) {\n var _a2, _b, _c;\n if (overflow) {\n return 0 /* False */;\n }\n const id = getRelationKey(\n source2,\n target2,\n intersectionState,\n relation,\n /*ignoreConstraints*/\n false\n );\n const entry = relation.get(id);\n if (entry !== void 0) {\n if (reportErrors2 && entry & 2 /* Failed */ && !(entry & 96 /* Overflow */)) {\n } else {\n if (outofbandVarianceMarkerHandler) {\n const saved = entry & 24 /* ReportsMask */;\n if (saved & 8 /* ReportsUnmeasurable */) {\n instantiateType(source2, reportUnmeasurableMapper);\n }\n if (saved & 16 /* ReportsUnreliable */) {\n instantiateType(source2, reportUnreliableMapper);\n }\n }\n if (reportErrors2 && entry & 96 /* Overflow */) {\n const message = entry & 32 /* ComplexityOverflow */ ? Diagnostics.Excessive_complexity_comparing_types_0_and_1 : Diagnostics.Excessive_stack_depth_comparing_types_0_and_1;\n reportError(message, typeToString(source2), typeToString(target2));\n overrideNextErrorInfo++;\n }\n return entry & 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */;\n }\n }\n if (relationCount <= 0) {\n overflow = true;\n return 0 /* False */;\n }\n if (!maybeKeys) {\n maybeKeys = [];\n maybeKeysSet = /* @__PURE__ */ new Set();\n sourceStack = [];\n targetStack = [];\n } else {\n if (maybeKeysSet.has(id)) {\n return 3 /* Maybe */;\n }\n const broadestEquivalentId = id.startsWith(\"*\") ? getRelationKey(\n source2,\n target2,\n intersectionState,\n relation,\n /*ignoreConstraints*/\n true\n ) : void 0;\n if (broadestEquivalentId && maybeKeysSet.has(broadestEquivalentId)) {\n return 3 /* Maybe */;\n }\n if (sourceDepth === 100 || targetDepth === 100) {\n overflow = true;\n return 0 /* False */;\n }\n }\n const maybeStart = maybeCount;\n maybeKeys[maybeCount] = id;\n maybeKeysSet.add(id);\n maybeCount++;\n const saveExpandingFlags = expandingFlags;\n if (recursionFlags & 1 /* Source */) {\n sourceStack[sourceDepth] = source2;\n sourceDepth++;\n if (!(expandingFlags & 1 /* Source */) && isDeeplyNestedType(source2, sourceStack, sourceDepth)) expandingFlags |= 1 /* Source */;\n }\n if (recursionFlags & 2 /* Target */) {\n targetStack[targetDepth] = target2;\n targetDepth++;\n if (!(expandingFlags & 2 /* Target */) && isDeeplyNestedType(target2, targetStack, targetDepth)) expandingFlags |= 2 /* Target */;\n }\n let originalHandler;\n let propagatingVarianceFlags = 0;\n if (outofbandVarianceMarkerHandler) {\n originalHandler = outofbandVarianceMarkerHandler;\n outofbandVarianceMarkerHandler = (onlyUnreliable) => {\n propagatingVarianceFlags |= onlyUnreliable ? 16 /* ReportsUnreliable */ : 8 /* ReportsUnmeasurable */;\n return originalHandler(onlyUnreliable);\n };\n }\n let result2;\n if (expandingFlags === 3 /* Both */) {\n (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"recursiveTypeRelatedTo_DepthLimit\", {\n sourceId: source2.id,\n sourceIdStack: sourceStack.map((t) => t.id),\n targetId: target2.id,\n targetIdStack: targetStack.map((t) => t.id),\n depth: sourceDepth,\n targetDepth\n });\n result2 = 3 /* Maybe */;\n } else {\n (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.CheckTypes, \"structuredTypeRelatedTo\", { sourceId: source2.id, targetId: target2.id });\n result2 = structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState);\n (_c = tracing) == null ? void 0 : _c.pop();\n }\n if (outofbandVarianceMarkerHandler) {\n outofbandVarianceMarkerHandler = originalHandler;\n }\n if (recursionFlags & 1 /* Source */) {\n sourceDepth--;\n }\n if (recursionFlags & 2 /* Target */) {\n targetDepth--;\n }\n expandingFlags = saveExpandingFlags;\n if (result2) {\n if (result2 === -1 /* True */ || sourceDepth === 0 && targetDepth === 0) {\n if (result2 === -1 /* True */ || result2 === 3 /* Maybe */) {\n resetMaybeStack(\n /*markAllAsSucceeded*/\n true\n );\n } else {\n resetMaybeStack(\n /*markAllAsSucceeded*/\n false\n );\n }\n }\n } else {\n relation.set(id, 2 /* Failed */ | propagatingVarianceFlags);\n relationCount--;\n resetMaybeStack(\n /*markAllAsSucceeded*/\n false\n );\n }\n return result2;\n function resetMaybeStack(markAllAsSucceeded) {\n for (let i = maybeStart; i < maybeCount; i++) {\n maybeKeysSet.delete(maybeKeys[i]);\n if (markAllAsSucceeded) {\n relation.set(maybeKeys[i], 1 /* Succeeded */ | propagatingVarianceFlags);\n relationCount--;\n }\n }\n maybeCount = maybeStart;\n }\n }\n function structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState) {\n const saveErrorInfo = captureErrorCalculationState();\n let result2 = structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo);\n if (relation !== identityRelation) {\n if (!result2 && (source2.flags & 2097152 /* Intersection */ || source2.flags & 262144 /* TypeParameter */ && target2.flags & 1048576 /* Union */)) {\n const constraint = getEffectiveConstraintOfIntersection(source2.flags & 2097152 /* Intersection */ ? source2.types : [source2], !!(target2.flags & 1048576 /* Union */));\n if (constraint && everyType(constraint, (c) => c !== source2)) {\n result2 = isRelatedTo(\n constraint,\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n }\n if (result2 && !(intersectionState & 2 /* Target */) && target2.flags & 2097152 /* Intersection */ && !isGenericObjectType(target2) && source2.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n result2 &= propertiesRelatedTo(\n source2,\n target2,\n reportErrors2,\n /*excludedProperties*/\n void 0,\n /*optionalsOnly*/\n false,\n 0 /* None */\n );\n if (result2 && isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */) {\n result2 &= indexSignaturesRelatedTo(\n source2,\n target2,\n /*sourceIsPrimitive*/\n false,\n reportErrors2,\n 0 /* None */\n );\n }\n } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 /* Intersection */ && getApparentType(source2).flags & 3670016 /* StructuredType */ && !some(source2.types, (t) => t === target2 || !!(getObjectFlags(t) & 262144 /* NonInferrableType */))) {\n result2 &= propertiesRelatedTo(\n source2,\n target2,\n reportErrors2,\n /*excludedProperties*/\n void 0,\n /*optionalsOnly*/\n true,\n intersectionState\n );\n }\n }\n if (result2) {\n resetErrorInfo(saveErrorInfo);\n }\n return result2;\n }\n function getApparentMappedTypeKeys(nameType, targetType) {\n const modifiersType = getApparentType(getModifiersTypeFromMappedType(targetType));\n const mappedKeys = [];\n forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(\n modifiersType,\n 8576 /* StringOrNumberLiteralOrUnique */,\n /*stringsOnly*/\n false,\n (t) => void mappedKeys.push(instantiateType(nameType, appendTypeMapping(targetType.mapper, getTypeParameterFromMappedType(targetType), t)))\n );\n return getUnionType(mappedKeys);\n }\n function structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo) {\n let result2;\n let originalErrorInfo;\n let varianceCheckFailed = false;\n let sourceFlags = source2.flags;\n const targetFlags = target2.flags;\n if (relation === identityRelation) {\n if (sourceFlags & 3145728 /* UnionOrIntersection */) {\n let result3 = eachTypeRelatedToSomeType(source2, target2);\n if (result3) {\n result3 &= eachTypeRelatedToSomeType(target2, source2);\n }\n return result3;\n }\n if (sourceFlags & 4194304 /* Index */) {\n return isRelatedTo(\n source2.type,\n target2.type,\n 3 /* Both */,\n /*reportErrors*/\n false\n );\n }\n if (sourceFlags & 8388608 /* IndexedAccess */) {\n if (result2 = isRelatedTo(\n source2.objectType,\n target2.objectType,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n if (result2 &= isRelatedTo(\n source2.indexType,\n target2.indexType,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n return result2;\n }\n }\n }\n if (sourceFlags & 16777216 /* Conditional */) {\n if (source2.root.isDistributive === target2.root.isDistributive) {\n if (result2 = isRelatedTo(\n source2.checkType,\n target2.checkType,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n if (result2 &= isRelatedTo(\n source2.extendsType,\n target2.extendsType,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n if (result2 &= isRelatedTo(\n getTrueTypeFromConditionalType(source2),\n getTrueTypeFromConditionalType(target2),\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n if (result2 &= isRelatedTo(\n getFalseTypeFromConditionalType(source2),\n getFalseTypeFromConditionalType(target2),\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n return result2;\n }\n }\n }\n }\n }\n }\n if (sourceFlags & 33554432 /* Substitution */) {\n if (result2 = isRelatedTo(\n source2.baseType,\n target2.baseType,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n if (result2 &= isRelatedTo(\n source2.constraint,\n target2.constraint,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n return result2;\n }\n }\n }\n if (sourceFlags & 134217728 /* TemplateLiteral */) {\n if (arrayIsEqualTo(source2.texts, target2.texts)) {\n const sourceTypes = source2.types;\n const targetTypes = target2.types;\n result2 = -1 /* True */;\n for (let i = 0; i < sourceTypes.length; i++) {\n if (!(result2 &= isRelatedTo(\n sourceTypes[i],\n targetTypes[i],\n 3 /* Both */,\n /*reportErrors*/\n false\n ))) {\n break;\n }\n }\n return result2;\n }\n }\n if (sourceFlags & 268435456 /* StringMapping */) {\n if (source2.symbol === target2.symbol) {\n return isRelatedTo(\n source2.type,\n target2.type,\n 3 /* Both */,\n /*reportErrors*/\n false\n );\n }\n }\n if (!(sourceFlags & 524288 /* Object */)) {\n return 0 /* False */;\n }\n } else if (sourceFlags & 3145728 /* UnionOrIntersection */ || targetFlags & 3145728 /* UnionOrIntersection */) {\n if (result2 = unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState)) {\n return result2;\n }\n if (!(sourceFlags & 465829888 /* Instantiable */ || sourceFlags & 524288 /* Object */ && targetFlags & 1048576 /* Union */ || sourceFlags & 2097152 /* Intersection */ && targetFlags & (524288 /* Object */ | 1048576 /* Union */ | 465829888 /* Instantiable */))) {\n return 0 /* False */;\n }\n }\n if (sourceFlags & (524288 /* Object */ | 16777216 /* Conditional */) && source2.aliasSymbol && source2.aliasTypeArguments && source2.aliasSymbol === target2.aliasSymbol && !(isMarkerType(source2) || isMarkerType(target2))) {\n const variances = getAliasVariances(source2.aliasSymbol);\n if (variances === emptyArray) {\n return 1 /* Unknown */;\n }\n const params = getSymbolLinks(source2.aliasSymbol).typeParameters;\n const minParams = getMinTypeArgumentCount(params);\n const sourceTypes = fillMissingTypeArguments(source2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration));\n const targetTypes = fillMissingTypeArguments(target2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration));\n const varianceResult = relateVariances(sourceTypes, targetTypes, variances, intersectionState);\n if (varianceResult !== void 0) {\n return varianceResult;\n }\n }\n if (isSingleElementGenericTupleType(source2) && !source2.target.readonly && (result2 = isRelatedTo(getTypeArguments(source2)[0], target2, 1 /* Source */)) || isSingleElementGenericTupleType(target2) && (target2.target.readonly || isMutableArrayOrTuple(getBaseConstraintOfType(source2) || source2)) && (result2 = isRelatedTo(source2, getTypeArguments(target2)[0], 2 /* Target */))) {\n return result2;\n }\n if (targetFlags & 262144 /* TypeParameter */) {\n if (getObjectFlags(source2) & 32 /* Mapped */ && !source2.declaration.nameType && isRelatedTo(getIndexType(target2), getConstraintTypeFromMappedType(source2), 3 /* Both */)) {\n if (!(getMappedTypeModifiers(source2) & 4 /* IncludeOptional */)) {\n const templateType = getTemplateTypeFromMappedType(source2);\n const indexedAccessType = getIndexedAccessType(target2, getTypeParameterFromMappedType(source2));\n if (result2 = isRelatedTo(templateType, indexedAccessType, 3 /* Both */, reportErrors2)) {\n return result2;\n }\n }\n }\n if (relation === comparableRelation && sourceFlags & 262144 /* TypeParameter */) {\n let constraint = getConstraintOfTypeParameter(source2);\n if (constraint) {\n while (constraint && someType(constraint, (c) => !!(c.flags & 262144 /* TypeParameter */))) {\n if (result2 = isRelatedTo(\n constraint,\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false\n )) {\n return result2;\n }\n constraint = getConstraintOfTypeParameter(constraint);\n }\n }\n return 0 /* False */;\n }\n } else if (targetFlags & 4194304 /* Index */) {\n const targetType = target2.type;\n if (sourceFlags & 4194304 /* Index */) {\n if (result2 = isRelatedTo(\n targetType,\n source2.type,\n 3 /* Both */,\n /*reportErrors*/\n false\n )) {\n return result2;\n }\n }\n if (isTupleType(targetType)) {\n if (result2 = isRelatedTo(source2, getKnownKeysOfTupleType(targetType), 2 /* Target */, reportErrors2)) {\n return result2;\n }\n } else {\n const constraint = getSimplifiedTypeOrConstraint(targetType);\n if (constraint) {\n if (isRelatedTo(source2, getIndexType(constraint, target2.indexFlags | 4 /* NoReducibleCheck */), 2 /* Target */, reportErrors2) === -1 /* True */) {\n return -1 /* True */;\n }\n } else if (isGenericMappedType(targetType)) {\n const nameType = getNameTypeFromMappedType(targetType);\n const constraintType = getConstraintTypeFromMappedType(targetType);\n let targetKeys;\n if (nameType && isMappedTypeWithKeyofConstraintDeclaration(targetType)) {\n const mappedKeys = getApparentMappedTypeKeys(nameType, targetType);\n targetKeys = getUnionType([mappedKeys, nameType]);\n } else {\n targetKeys = nameType || constraintType;\n }\n if (isRelatedTo(source2, targetKeys, 2 /* Target */, reportErrors2) === -1 /* True */) {\n return -1 /* True */;\n }\n }\n }\n } else if (targetFlags & 8388608 /* IndexedAccess */) {\n if (sourceFlags & 8388608 /* IndexedAccess */) {\n if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3 /* Both */, reportErrors2)) {\n result2 &= isRelatedTo(source2.indexType, target2.indexType, 3 /* Both */, reportErrors2);\n }\n if (result2) {\n return result2;\n }\n if (reportErrors2) {\n originalErrorInfo = errorInfo;\n }\n }\n if (relation === assignableRelation || relation === comparableRelation) {\n const objectType = target2.objectType;\n const indexType = target2.indexType;\n const baseObjectType = getBaseConstraintOfType(objectType) || objectType;\n const baseIndexType = getBaseConstraintOfType(indexType) || indexType;\n if (!isGenericObjectType(baseObjectType) && !isGenericIndexType(baseIndexType)) {\n const accessFlags = 4 /* Writing */ | (baseObjectType !== objectType ? 2 /* NoIndexSignatures */ : 0);\n const constraint = getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, accessFlags);\n if (constraint) {\n if (reportErrors2 && originalErrorInfo) {\n resetErrorInfo(saveErrorInfo);\n }\n if (result2 = isRelatedTo(\n source2,\n constraint,\n 2 /* Target */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n )) {\n return result2;\n }\n if (reportErrors2 && originalErrorInfo && errorInfo) {\n errorInfo = countMessageChainBreadth([originalErrorInfo]) <= countMessageChainBreadth([errorInfo]) ? originalErrorInfo : errorInfo;\n }\n }\n }\n }\n if (reportErrors2) {\n originalErrorInfo = void 0;\n }\n } else if (isGenericMappedType(target2) && relation !== identityRelation) {\n const keysRemapped = !!target2.declaration.nameType;\n const templateType = getTemplateTypeFromMappedType(target2);\n const modifiers = getMappedTypeModifiers(target2);\n if (!(modifiers & 8 /* ExcludeOptional */)) {\n if (!keysRemapped && templateType.flags & 8388608 /* IndexedAccess */ && templateType.objectType === source2 && templateType.indexType === getTypeParameterFromMappedType(target2)) {\n return -1 /* True */;\n }\n if (!isGenericMappedType(source2)) {\n const targetKeys = keysRemapped ? getNameTypeFromMappedType(target2) : getConstraintTypeFromMappedType(target2);\n const sourceKeys = getIndexType(source2, 2 /* NoIndexSignatures */);\n const includeOptional = modifiers & 4 /* IncludeOptional */;\n const filteredByApplicability = includeOptional ? intersectTypes(targetKeys, sourceKeys) : void 0;\n if (includeOptional ? !(filteredByApplicability.flags & 131072 /* Never */) : isRelatedTo(targetKeys, sourceKeys, 3 /* Both */)) {\n const templateType2 = getTemplateTypeFromMappedType(target2);\n const typeParameter = getTypeParameterFromMappedType(target2);\n const nonNullComponent = extractTypesOfKind(templateType2, ~98304 /* Nullable */);\n if (!keysRemapped && nonNullComponent.flags & 8388608 /* IndexedAccess */ && nonNullComponent.indexType === typeParameter) {\n if (result2 = isRelatedTo(source2, nonNullComponent.objectType, 2 /* Target */, reportErrors2)) {\n return result2;\n }\n } else {\n const indexingType = keysRemapped ? filteredByApplicability || targetKeys : filteredByApplicability ? getIntersectionType([filteredByApplicability, typeParameter]) : typeParameter;\n const indexedAccessType = getIndexedAccessType(source2, indexingType);\n if (result2 = isRelatedTo(indexedAccessType, templateType2, 3 /* Both */, reportErrors2)) {\n return result2;\n }\n }\n }\n originalErrorInfo = errorInfo;\n resetErrorInfo(saveErrorInfo);\n }\n }\n } else if (targetFlags & 16777216 /* Conditional */) {\n if (isDeeplyNestedType(target2, targetStack, targetDepth, 10)) {\n return 3 /* Maybe */;\n }\n const c = target2;\n if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 16777216 /* Conditional */ && source2.root === c.root)) {\n const skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));\n const skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));\n if (result2 = skipTrue ? -1 /* True */ : isRelatedTo(\n source2,\n getTrueTypeFromConditionalType(c),\n 2 /* Target */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n )) {\n result2 &= skipFalse ? -1 /* True */ : isRelatedTo(\n source2,\n getFalseTypeFromConditionalType(c),\n 2 /* Target */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (result2) {\n return result2;\n }\n }\n }\n } else if (targetFlags & 134217728 /* TemplateLiteral */) {\n if (sourceFlags & 134217728 /* TemplateLiteral */) {\n if (relation === comparableRelation) {\n return templateLiteralTypesDefinitelyUnrelated(source2, target2) ? 0 /* False */ : -1 /* True */;\n }\n instantiateType(source2, reportUnreliableMapper);\n }\n if (isTypeMatchedByTemplateLiteralType(source2, target2)) {\n return -1 /* True */;\n }\n } else if (target2.flags & 268435456 /* StringMapping */) {\n if (!(source2.flags & 268435456 /* StringMapping */)) {\n if (isMemberOfStringMapping(source2, target2)) {\n return -1 /* True */;\n }\n }\n }\n if (sourceFlags & 8650752 /* TypeVariable */) {\n if (!(sourceFlags & 8388608 /* IndexedAccess */ && targetFlags & 8388608 /* IndexedAccess */)) {\n const constraint = getConstraintOfType(source2) || unknownType;\n if (result2 = isRelatedTo(\n constraint,\n target2,\n 1 /* Source */,\n /*reportErrors*/\n false,\n /*headMessage*/\n void 0,\n intersectionState\n )) {\n return result2;\n } else if (result2 = isRelatedTo(\n getTypeWithThisArgument(constraint, source2),\n target2,\n 1 /* Source */,\n reportErrors2 && constraint !== unknownType && !(targetFlags & sourceFlags & 262144 /* TypeParameter */),\n /*headMessage*/\n void 0,\n intersectionState\n )) {\n return result2;\n }\n if (isMappedTypeGenericIndexedAccess(source2)) {\n const indexConstraint = getConstraintOfType(source2.indexType);\n if (indexConstraint) {\n if (result2 = isRelatedTo(getIndexedAccessType(source2.objectType, indexConstraint), target2, 1 /* Source */, reportErrors2)) {\n return result2;\n }\n }\n }\n }\n } else if (sourceFlags & 4194304 /* Index */) {\n const isDeferredMappedIndex = shouldDeferIndexType(source2.type, source2.indexFlags) && getObjectFlags(source2.type) & 32 /* Mapped */;\n if (result2 = isRelatedTo(stringNumberSymbolType, target2, 1 /* Source */, reportErrors2 && !isDeferredMappedIndex)) {\n return result2;\n }\n if (isDeferredMappedIndex) {\n const mappedType = source2.type;\n const nameType = getNameTypeFromMappedType(mappedType);\n const sourceMappedKeys = nameType && isMappedTypeWithKeyofConstraintDeclaration(mappedType) ? getApparentMappedTypeKeys(nameType, mappedType) : nameType || getConstraintTypeFromMappedType(mappedType);\n if (result2 = isRelatedTo(sourceMappedKeys, target2, 1 /* Source */, reportErrors2)) {\n return result2;\n }\n }\n } else if (sourceFlags & 134217728 /* TemplateLiteral */ && !(targetFlags & 524288 /* Object */)) {\n if (!(targetFlags & 134217728 /* TemplateLiteral */)) {\n const constraint = getBaseConstraintOfType(source2);\n if (constraint && constraint !== source2 && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) {\n return result2;\n }\n }\n } else if (sourceFlags & 268435456 /* StringMapping */) {\n if (targetFlags & 268435456 /* StringMapping */) {\n if (source2.symbol !== target2.symbol) {\n return 0 /* False */;\n }\n if (result2 = isRelatedTo(source2.type, target2.type, 3 /* Both */, reportErrors2)) {\n return result2;\n }\n } else {\n const constraint = getBaseConstraintOfType(source2);\n if (constraint && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) {\n return result2;\n }\n }\n } else if (sourceFlags & 16777216 /* Conditional */) {\n if (isDeeplyNestedType(source2, sourceStack, sourceDepth, 10)) {\n return 3 /* Maybe */;\n }\n if (targetFlags & 16777216 /* Conditional */) {\n const sourceParams = source2.root.inferTypeParameters;\n let sourceExtends = source2.extendsType;\n let mapper;\n if (sourceParams) {\n const ctx = createInferenceContext(\n sourceParams,\n /*signature*/\n void 0,\n 0 /* None */,\n isRelatedToWorker\n );\n inferTypes(ctx.inferences, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);\n sourceExtends = instantiateType(sourceExtends, ctx.mapper);\n mapper = ctx.mapper;\n }\n if (isTypeIdenticalTo(sourceExtends, target2.extendsType) && (isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */) || isRelatedTo(target2.checkType, source2.checkType, 3 /* Both */))) {\n if (result2 = isRelatedTo(instantiateType(getTrueTypeFromConditionalType(source2), mapper), getTrueTypeFromConditionalType(target2), 3 /* Both */, reportErrors2)) {\n result2 &= isRelatedTo(getFalseTypeFromConditionalType(source2), getFalseTypeFromConditionalType(target2), 3 /* Both */, reportErrors2);\n }\n if (result2) {\n return result2;\n }\n }\n }\n const defaultConstraint = getDefaultConstraintOfConditionalType(source2);\n if (defaultConstraint) {\n if (result2 = isRelatedTo(defaultConstraint, target2, 1 /* Source */, reportErrors2)) {\n return result2;\n }\n }\n const distributiveConstraint = !(targetFlags & 16777216 /* Conditional */) && hasNonCircularBaseConstraint(source2) ? getConstraintOfDistributiveConditionalType(source2) : void 0;\n if (distributiveConstraint) {\n resetErrorInfo(saveErrorInfo);\n if (result2 = isRelatedTo(distributiveConstraint, target2, 1 /* Source */, reportErrors2)) {\n return result2;\n }\n }\n } else {\n if (relation !== subtypeRelation && relation !== strictSubtypeRelation && isPartialMappedType(target2) && isEmptyObjectType(source2)) {\n return -1 /* True */;\n }\n if (isGenericMappedType(target2)) {\n if (isGenericMappedType(source2)) {\n if (result2 = mappedTypeRelatedTo(source2, target2, reportErrors2)) {\n return result2;\n }\n }\n return 0 /* False */;\n }\n const sourceIsPrimitive = !!(sourceFlags & 402784252 /* Primitive */);\n if (relation !== identityRelation) {\n source2 = getApparentType(source2);\n sourceFlags = source2.flags;\n } else if (isGenericMappedType(source2)) {\n return 0 /* False */;\n }\n if (getObjectFlags(source2) & 4 /* Reference */ && getObjectFlags(target2) & 4 /* Reference */ && source2.target === target2.target && !isTupleType(source2) && !(isMarkerType(source2) || isMarkerType(target2))) {\n if (isEmptyArrayLiteralType(source2)) {\n return -1 /* True */;\n }\n const variances = getVariances(source2.target);\n if (variances === emptyArray) {\n return 1 /* Unknown */;\n }\n const varianceResult = relateVariances(getTypeArguments(source2), getTypeArguments(target2), variances, intersectionState);\n if (varianceResult !== void 0) {\n return varianceResult;\n }\n } else if (isReadonlyArrayType(target2) ? everyType(source2, isArrayOrTupleType) : isArrayType(target2) && everyType(source2, (t) => isTupleType(t) && !t.target.readonly)) {\n if (relation !== identityRelation) {\n return isRelatedTo(getIndexTypeOfType(source2, numberType) || anyType, getIndexTypeOfType(target2, numberType) || anyType, 3 /* Both */, reportErrors2);\n } else {\n return 0 /* False */;\n }\n } else if (isGenericTupleType(source2) && isTupleType(target2) && !isGenericTupleType(target2)) {\n const constraint = getBaseConstraintOrType(source2);\n if (constraint !== source2) {\n return isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2);\n }\n } else if ((relation === subtypeRelation || relation === strictSubtypeRelation) && isEmptyObjectType(target2) && getObjectFlags(target2) & 8192 /* FreshLiteral */ && !isEmptyObjectType(source2)) {\n return 0 /* False */;\n }\n if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 524288 /* Object */) {\n const reportStructuralErrors = reportErrors2 && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive;\n result2 = propertiesRelatedTo(\n source2,\n target2,\n reportStructuralErrors,\n /*excludedProperties*/\n void 0,\n /*optionalsOnly*/\n false,\n intersectionState\n );\n if (result2) {\n result2 &= signaturesRelatedTo(source2, target2, 0 /* Call */, reportStructuralErrors, intersectionState);\n if (result2) {\n result2 &= signaturesRelatedTo(source2, target2, 1 /* Construct */, reportStructuralErrors, intersectionState);\n if (result2) {\n result2 &= indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportStructuralErrors, intersectionState);\n }\n }\n }\n if (varianceCheckFailed && result2) {\n errorInfo = originalErrorInfo || errorInfo || saveErrorInfo.errorInfo;\n } else if (result2) {\n return result2;\n }\n }\n if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 1048576 /* Union */) {\n const objectOnlyTarget = extractTypesOfKind(target2, 524288 /* Object */ | 2097152 /* Intersection */ | 33554432 /* Substitution */);\n if (objectOnlyTarget.flags & 1048576 /* Union */) {\n const result3 = typeRelatedToDiscriminatedType(source2, objectOnlyTarget);\n if (result3) {\n return result3;\n }\n }\n }\n }\n return 0 /* False */;\n function countMessageChainBreadth(info) {\n if (!info) return 0;\n return reduceLeft(info, (value, chain) => value + 1 + countMessageChainBreadth(chain.next), 0);\n }\n function relateVariances(sourceTypeArguments, targetTypeArguments, variances, intersectionState2) {\n if (result2 = typeArgumentsRelatedTo(sourceTypeArguments, targetTypeArguments, variances, reportErrors2, intersectionState2)) {\n return result2;\n }\n if (some(variances, (v) => !!(v & 24 /* AllowsStructuralFallback */))) {\n originalErrorInfo = void 0;\n resetErrorInfo(saveErrorInfo);\n return void 0;\n }\n const allowStructuralFallback = targetTypeArguments && hasCovariantVoidArgument(targetTypeArguments, variances);\n varianceCheckFailed = !allowStructuralFallback;\n if (variances !== emptyArray && !allowStructuralFallback) {\n if (varianceCheckFailed && !(reportErrors2 && some(variances, (v) => (v & 7 /* VarianceMask */) === 0 /* Invariant */))) {\n return 0 /* False */;\n }\n originalErrorInfo = errorInfo;\n resetErrorInfo(saveErrorInfo);\n }\n }\n }\n function mappedTypeRelatedTo(source2, target2, reportErrors2) {\n const modifiersRelated = relation === comparableRelation || (relation === identityRelation ? getMappedTypeModifiers(source2) === getMappedTypeModifiers(target2) : getCombinedMappedTypeOptionality(source2) <= getCombinedMappedTypeOptionality(target2));\n if (modifiersRelated) {\n let result2;\n const targetConstraint = getConstraintTypeFromMappedType(target2);\n const sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source2), getCombinedMappedTypeOptionality(source2) < 0 ? reportUnmeasurableMapper : reportUnreliableMapper);\n if (result2 = isRelatedTo(targetConstraint, sourceConstraint, 3 /* Both */, reportErrors2)) {\n const mapper = createTypeMapper([getTypeParameterFromMappedType(source2)], [getTypeParameterFromMappedType(target2)]);\n if (instantiateType(getNameTypeFromMappedType(source2), mapper) === instantiateType(getNameTypeFromMappedType(target2), mapper)) {\n return result2 & isRelatedTo(instantiateType(getTemplateTypeFromMappedType(source2), mapper), getTemplateTypeFromMappedType(target2), 3 /* Both */, reportErrors2);\n }\n }\n }\n return 0 /* False */;\n }\n function typeRelatedToDiscriminatedType(source2, target2) {\n var _a2;\n const sourceProperties = getPropertiesOfType(source2);\n const sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target2);\n if (!sourcePropertiesFiltered) return 0 /* False */;\n let numCombinations = 1;\n for (const sourceProperty of sourcePropertiesFiltered) {\n numCombinations *= countTypes(getNonMissingTypeOfSymbol(sourceProperty));\n if (numCombinations > 25) {\n (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"typeRelatedToDiscriminatedType_DepthLimit\", { sourceId: source2.id, targetId: target2.id, numCombinations });\n return 0 /* False */;\n }\n }\n const sourceDiscriminantTypes = new Array(sourcePropertiesFiltered.length);\n const excludedProperties = /* @__PURE__ */ new Set();\n for (let i = 0; i < sourcePropertiesFiltered.length; i++) {\n const sourceProperty = sourcePropertiesFiltered[i];\n const sourcePropertyType = getNonMissingTypeOfSymbol(sourceProperty);\n sourceDiscriminantTypes[i] = sourcePropertyType.flags & 1048576 /* Union */ ? sourcePropertyType.types : [sourcePropertyType];\n excludedProperties.add(sourceProperty.escapedName);\n }\n const discriminantCombinations = cartesianProduct(sourceDiscriminantTypes);\n const matchingTypes = [];\n for (const combination of discriminantCombinations) {\n let hasMatch = false;\n outer:\n for (const type of target2.types) {\n for (let i = 0; i < sourcePropertiesFiltered.length; i++) {\n const sourceProperty = sourcePropertiesFiltered[i];\n const targetProperty = getPropertyOfType(type, sourceProperty.escapedName);\n if (!targetProperty) continue outer;\n if (sourceProperty === targetProperty) continue;\n const related = propertyRelatedTo(\n source2,\n target2,\n sourceProperty,\n targetProperty,\n (_) => combination[i],\n /*reportErrors*/\n false,\n 0 /* None */,\n /*skipOptional*/\n strictNullChecks || relation === comparableRelation\n );\n if (!related) {\n continue outer;\n }\n }\n pushIfUnique(matchingTypes, type, equateValues);\n hasMatch = true;\n }\n if (!hasMatch) {\n return 0 /* False */;\n }\n }\n let result2 = -1 /* True */;\n for (const type of matchingTypes) {\n result2 &= propertiesRelatedTo(\n source2,\n type,\n /*reportErrors*/\n false,\n excludedProperties,\n /*optionalsOnly*/\n false,\n 0 /* None */\n );\n if (result2) {\n result2 &= signaturesRelatedTo(\n source2,\n type,\n 0 /* Call */,\n /*reportErrors*/\n false,\n 0 /* None */\n );\n if (result2) {\n result2 &= signaturesRelatedTo(\n source2,\n type,\n 1 /* Construct */,\n /*reportErrors*/\n false,\n 0 /* None */\n );\n if (result2 && !(isTupleType(source2) && isTupleType(type))) {\n result2 &= indexSignaturesRelatedTo(\n source2,\n type,\n /*sourceIsPrimitive*/\n false,\n /*reportErrors*/\n false,\n 0 /* None */\n );\n }\n }\n }\n if (!result2) {\n return result2;\n }\n }\n return result2;\n }\n function excludeProperties(properties, excludedProperties) {\n if (!excludedProperties || properties.length === 0) return properties;\n let result2;\n for (let i = 0; i < properties.length; i++) {\n if (!excludedProperties.has(properties[i].escapedName)) {\n if (result2) {\n result2.push(properties[i]);\n }\n } else if (!result2) {\n result2 = properties.slice(0, i);\n }\n }\n return result2 || properties;\n }\n function isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState) {\n const targetIsOptional = strictNullChecks && !!(getCheckFlags(targetProp) & 48 /* Partial */);\n const effectiveTarget = addOptionality(\n getNonMissingTypeOfSymbol(targetProp),\n /*isProperty*/\n false,\n targetIsOptional\n );\n if (effectiveTarget.flags & (relation === strictSubtypeRelation ? 1 /* Any */ : 3 /* AnyOrUnknown */)) {\n return -1 /* True */;\n }\n const effectiveSource = getTypeOfSourceProperty(sourceProp);\n return isRelatedTo(\n effectiveSource,\n effectiveTarget,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n function propertyRelatedTo(source2, target2, sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState, skipOptional) {\n const sourcePropFlags = getDeclarationModifierFlagsFromSymbol(sourceProp);\n const targetPropFlags = getDeclarationModifierFlagsFromSymbol(targetProp);\n if (sourcePropFlags & 2 /* Private */ || targetPropFlags & 2 /* Private */) {\n if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) {\n if (reportErrors2) {\n if (sourcePropFlags & 2 /* Private */ && targetPropFlags & 2 /* Private */) {\n reportError(Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp));\n } else {\n reportError(Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourcePropFlags & 2 /* Private */ ? source2 : target2), typeToString(sourcePropFlags & 2 /* Private */ ? target2 : source2));\n }\n }\n return 0 /* False */;\n }\n } else if (targetPropFlags & 4 /* Protected */) {\n if (!isValidOverrideOf(sourceProp, targetProp)) {\n if (reportErrors2) {\n reportError(Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(getDeclaringClass(sourceProp) || source2), typeToString(getDeclaringClass(targetProp) || target2));\n }\n return 0 /* False */;\n }\n } else if (sourcePropFlags & 4 /* Protected */) {\n if (reportErrors2) {\n reportError(Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2));\n }\n return 0 /* False */;\n }\n if (relation === strictSubtypeRelation && isReadonlySymbol(sourceProp) && !isReadonlySymbol(targetProp)) {\n return 0 /* False */;\n }\n const related = isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState);\n if (!related) {\n if (reportErrors2) {\n reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp));\n }\n return 0 /* False */;\n }\n if (!skipOptional && sourceProp.flags & 16777216 /* Optional */ && targetProp.flags & 106500 /* ClassMember */ && !(targetProp.flags & 16777216 /* Optional */)) {\n if (reportErrors2) {\n reportError(Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2));\n }\n return 0 /* False */;\n }\n return related;\n }\n function reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties) {\n let shouldSkipElaboration = false;\n if (unmatchedProperty.valueDeclaration && isNamedDeclaration(unmatchedProperty.valueDeclaration) && isPrivateIdentifier(unmatchedProperty.valueDeclaration.name) && source2.symbol && source2.symbol.flags & 32 /* Class */) {\n const privateIdentifierDescription = unmatchedProperty.valueDeclaration.name.escapedText;\n const symbolTableKey = getSymbolNameForPrivateIdentifier(source2.symbol, privateIdentifierDescription);\n if (symbolTableKey && getPropertyOfType(source2, symbolTableKey)) {\n const sourceName = factory.getDeclarationName(source2.symbol.valueDeclaration);\n const targetName = factory.getDeclarationName(target2.symbol.valueDeclaration);\n reportError(\n Diagnostics.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2,\n diagnosticName(privateIdentifierDescription),\n diagnosticName(sourceName.escapedText === \"\" ? anon : sourceName),\n diagnosticName(targetName.escapedText === \"\" ? anon : targetName)\n );\n return;\n }\n }\n const props = arrayFrom(getUnmatchedProperties(\n source2,\n target2,\n requireOptionalProperties,\n /*matchDiscriminantProperties*/\n false\n ));\n if (!headMessage || headMessage.code !== Diagnostics.Class_0_incorrectly_implements_interface_1.code && headMessage.code !== Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code) {\n shouldSkipElaboration = true;\n }\n if (props.length === 1) {\n const propName = symbolToString(\n unmatchedProperty,\n /*enclosingDeclaration*/\n void 0,\n 0 /* None */,\n 4 /* AllowAnyNodeKind */ | 16 /* WriteComputedProps */\n );\n reportError(Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2, propName, ...getTypeNamesForErrorDisplay(source2, target2));\n if (length(unmatchedProperty.declarations)) {\n associateRelatedInfo(createDiagnosticForNode(unmatchedProperty.declarations[0], Diagnostics._0_is_declared_here, propName));\n }\n if (shouldSkipElaboration && errorInfo) {\n overrideNextErrorInfo++;\n }\n } else if (tryElaborateArrayLikeErrors(\n source2,\n target2,\n /*reportErrors*/\n false\n )) {\n if (props.length > 5) {\n reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more, typeToString(source2), typeToString(target2), map(props.slice(0, 4), (p) => symbolToString(p)).join(\", \"), props.length - 4);\n } else {\n reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2, typeToString(source2), typeToString(target2), map(props, (p) => symbolToString(p)).join(\", \"));\n }\n if (shouldSkipElaboration && errorInfo) {\n overrideNextErrorInfo++;\n }\n }\n }\n function propertiesRelatedTo(source2, target2, reportErrors2, excludedProperties, optionalsOnly, intersectionState) {\n if (relation === identityRelation) {\n return propertiesIdenticalTo(source2, target2, excludedProperties);\n }\n let result2 = -1 /* True */;\n if (isTupleType(target2)) {\n if (isArrayOrTupleType(source2)) {\n if (!target2.target.readonly && (isReadonlyArrayType(source2) || isTupleType(source2) && source2.target.readonly)) {\n return 0 /* False */;\n }\n const sourceArity = getTypeReferenceArity(source2);\n const targetArity = getTypeReferenceArity(target2);\n const sourceRestFlag = isTupleType(source2) ? source2.target.combinedFlags & 4 /* Rest */ : 4 /* Rest */;\n const targetHasRestElement = !!(target2.target.combinedFlags & 12 /* Variable */);\n const sourceMinLength = isTupleType(source2) ? source2.target.minLength : 0;\n const targetMinLength = target2.target.minLength;\n if (!sourceRestFlag && sourceArity < targetMinLength) {\n if (reportErrors2) {\n reportError(Diagnostics.Source_has_0_element_s_but_target_requires_1, sourceArity, targetMinLength);\n }\n return 0 /* False */;\n }\n if (!targetHasRestElement && targetArity < sourceMinLength) {\n if (reportErrors2) {\n reportError(Diagnostics.Source_has_0_element_s_but_target_allows_only_1, sourceMinLength, targetArity);\n }\n return 0 /* False */;\n }\n if (!targetHasRestElement && (sourceRestFlag || targetArity < sourceArity)) {\n if (reportErrors2) {\n if (sourceMinLength < targetMinLength) {\n reportError(Diagnostics.Target_requires_0_element_s_but_source_may_have_fewer, targetMinLength);\n } else {\n reportError(Diagnostics.Target_allows_only_0_element_s_but_source_may_have_more, targetArity);\n }\n }\n return 0 /* False */;\n }\n const sourceTypeArguments = getTypeArguments(source2);\n const targetTypeArguments = getTypeArguments(target2);\n const targetStartCount = getStartElementCount(target2.target, 11 /* NonRest */);\n const targetEndCount = getEndElementCount(target2.target, 11 /* NonRest */);\n let canExcludeDiscriminants = !!excludedProperties;\n for (let sourcePosition = 0; sourcePosition < sourceArity; sourcePosition++) {\n const sourceFlags = isTupleType(source2) ? source2.target.elementFlags[sourcePosition] : 4 /* Rest */;\n const sourcePositionFromEnd = sourceArity - 1 - sourcePosition;\n const targetPosition = targetHasRestElement && sourcePosition >= targetStartCount ? targetArity - 1 - Math.min(sourcePositionFromEnd, targetEndCount) : sourcePosition;\n const targetFlags = target2.target.elementFlags[targetPosition];\n if (targetFlags & 8 /* Variadic */ && !(sourceFlags & 8 /* Variadic */)) {\n if (reportErrors2) {\n reportError(Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target, targetPosition);\n }\n return 0 /* False */;\n }\n if (sourceFlags & 8 /* Variadic */ && !(targetFlags & 12 /* Variable */)) {\n if (reportErrors2) {\n reportError(Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target, sourcePosition, targetPosition);\n }\n return 0 /* False */;\n }\n if (targetFlags & 1 /* Required */ && !(sourceFlags & 1 /* Required */)) {\n if (reportErrors2) {\n reportError(Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target, targetPosition);\n }\n return 0 /* False */;\n }\n if (canExcludeDiscriminants) {\n if (sourceFlags & 12 /* Variable */ || targetFlags & 12 /* Variable */) {\n canExcludeDiscriminants = false;\n }\n if (canExcludeDiscriminants && (excludedProperties == null ? void 0 : excludedProperties.has(\"\" + sourcePosition))) {\n continue;\n }\n }\n const sourceType = removeMissingType(sourceTypeArguments[sourcePosition], !!(sourceFlags & targetFlags & 2 /* Optional */));\n const targetType = targetTypeArguments[targetPosition];\n const targetCheckType = sourceFlags & 8 /* Variadic */ && targetFlags & 4 /* Rest */ ? createArrayType(targetType) : removeMissingType(targetType, !!(targetFlags & 2 /* Optional */));\n const related = isRelatedTo(\n sourceType,\n targetCheckType,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (!related) {\n if (reportErrors2 && (targetArity > 1 || sourceArity > 1)) {\n if (targetHasRestElement && sourcePosition >= targetStartCount && sourcePositionFromEnd >= targetEndCount && targetStartCount !== sourceArity - targetEndCount - 1) {\n reportIncompatibleError(Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, targetStartCount, sourceArity - targetEndCount - 1, targetPosition);\n } else {\n reportIncompatibleError(Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, sourcePosition, targetPosition);\n }\n }\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n if (target2.target.combinedFlags & 12 /* Variable */) {\n return 0 /* False */;\n }\n }\n const requireOptionalProperties = (relation === subtypeRelation || relation === strictSubtypeRelation) && !isObjectLiteralType2(source2) && !isEmptyArrayLiteralType(source2) && !isTupleType(source2);\n const unmatchedProperty = getUnmatchedProperty(\n source2,\n target2,\n requireOptionalProperties,\n /*matchDiscriminantProperties*/\n false\n );\n if (unmatchedProperty) {\n if (reportErrors2 && shouldReportUnmatchedPropertyError(source2, target2)) {\n reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties);\n }\n return 0 /* False */;\n }\n if (isObjectLiteralType2(target2)) {\n for (const sourceProp of excludeProperties(getPropertiesOfType(source2), excludedProperties)) {\n if (!getPropertyOfObjectType(target2, sourceProp.escapedName)) {\n const sourceType = getTypeOfSymbol(sourceProp);\n if (!(sourceType.flags & 32768 /* Undefined */)) {\n if (reportErrors2) {\n reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target2));\n }\n return 0 /* False */;\n }\n }\n }\n }\n const properties = getPropertiesOfType(target2);\n const numericNamesOnly = isTupleType(source2) && isTupleType(target2);\n for (const targetProp of excludeProperties(properties, excludedProperties)) {\n const name = targetProp.escapedName;\n if (!(targetProp.flags & 4194304 /* Prototype */) && (!numericNamesOnly || isNumericLiteralName(name) || name === \"length\") && (!optionalsOnly || targetProp.flags & 16777216 /* Optional */)) {\n const sourceProp = getPropertyOfType(source2, name);\n if (sourceProp && sourceProp !== targetProp) {\n const related = propertyRelatedTo(source2, target2, sourceProp, targetProp, getNonMissingTypeOfSymbol, reportErrors2, intersectionState, relation === comparableRelation);\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n }\n }\n return result2;\n }\n function propertiesIdenticalTo(source2, target2, excludedProperties) {\n if (!(source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */)) {\n return 0 /* False */;\n }\n const sourceProperties = excludeProperties(getPropertiesOfObjectType(source2), excludedProperties);\n const targetProperties = excludeProperties(getPropertiesOfObjectType(target2), excludedProperties);\n if (sourceProperties.length !== targetProperties.length) {\n return 0 /* False */;\n }\n let result2 = -1 /* True */;\n for (const sourceProp of sourceProperties) {\n const targetProp = getPropertyOfObjectType(target2, sourceProp.escapedName);\n if (!targetProp) {\n return 0 /* False */;\n }\n const related = compareProperties2(sourceProp, targetProp, isRelatedTo);\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function signaturesRelatedTo(source2, target2, kind, reportErrors2, intersectionState) {\n var _a2, _b;\n if (relation === identityRelation) {\n return signaturesIdenticalTo(source2, target2, kind);\n }\n if (target2 === anyFunctionType || source2 === anyFunctionType) {\n return -1 /* True */;\n }\n const sourceIsJSConstructor = source2.symbol && isJSConstructor(source2.symbol.valueDeclaration);\n const targetIsJSConstructor = target2.symbol && isJSConstructor(target2.symbol.valueDeclaration);\n const sourceSignatures = getSignaturesOfType(\n source2,\n sourceIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind\n );\n const targetSignatures = getSignaturesOfType(\n target2,\n targetIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind\n );\n if (kind === 1 /* Construct */ && sourceSignatures.length && targetSignatures.length) {\n const sourceIsAbstract = !!(sourceSignatures[0].flags & 4 /* Abstract */);\n const targetIsAbstract = !!(targetSignatures[0].flags & 4 /* Abstract */);\n if (sourceIsAbstract && !targetIsAbstract) {\n if (reportErrors2) {\n reportError(Diagnostics.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type);\n }\n return 0 /* False */;\n }\n if (!constructorVisibilitiesAreCompatible(sourceSignatures[0], targetSignatures[0], reportErrors2)) {\n return 0 /* False */;\n }\n }\n let result2 = -1 /* True */;\n const incompatibleReporter = kind === 1 /* Construct */ ? reportIncompatibleConstructSignatureReturn : reportIncompatibleCallSignatureReturn;\n const sourceObjectFlags = getObjectFlags(source2);\n const targetObjectFlags = getObjectFlags(target2);\n if (sourceObjectFlags & 64 /* Instantiated */ && targetObjectFlags & 64 /* Instantiated */ && source2.symbol === target2.symbol || sourceObjectFlags & 4 /* Reference */ && targetObjectFlags & 4 /* Reference */ && source2.target === target2.target) {\n Debug.assertEqual(sourceSignatures.length, targetSignatures.length);\n for (let i = 0; i < targetSignatures.length; i++) {\n const related = signatureRelatedTo(\n sourceSignatures[i],\n targetSignatures[i],\n /*erase*/\n true,\n reportErrors2,\n intersectionState,\n incompatibleReporter(sourceSignatures[i], targetSignatures[i])\n );\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n } else if (sourceSignatures.length === 1 && targetSignatures.length === 1) {\n const eraseGenerics = relation === comparableRelation;\n const sourceSignature = first(sourceSignatures);\n const targetSignature = first(targetSignatures);\n result2 = signatureRelatedTo(sourceSignature, targetSignature, eraseGenerics, reportErrors2, intersectionState, incompatibleReporter(sourceSignature, targetSignature));\n if (!result2 && reportErrors2 && kind === 1 /* Construct */ && sourceObjectFlags & targetObjectFlags && (((_a2 = targetSignature.declaration) == null ? void 0 : _a2.kind) === 177 /* Constructor */ || ((_b = sourceSignature.declaration) == null ? void 0 : _b.kind) === 177 /* Constructor */)) {\n const constructSignatureToString = (signature) => signatureToString(\n signature,\n /*enclosingDeclaration*/\n void 0,\n 262144 /* WriteArrowStyleSignature */,\n kind\n );\n reportError(Diagnostics.Type_0_is_not_assignable_to_type_1, constructSignatureToString(sourceSignature), constructSignatureToString(targetSignature));\n reportError(Diagnostics.Types_of_construct_signatures_are_incompatible);\n return result2;\n }\n } else {\n outer:\n for (const t of targetSignatures) {\n const saveErrorInfo = captureErrorCalculationState();\n let shouldElaborateErrors = reportErrors2;\n for (const s of sourceSignatures) {\n const related = signatureRelatedTo(\n s,\n t,\n /*erase*/\n true,\n shouldElaborateErrors,\n intersectionState,\n incompatibleReporter(s, t)\n );\n if (related) {\n result2 &= related;\n resetErrorInfo(saveErrorInfo);\n continue outer;\n }\n shouldElaborateErrors = false;\n }\n if (shouldElaborateErrors) {\n reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source2), signatureToString(\n t,\n /*enclosingDeclaration*/\n void 0,\n /*flags*/\n void 0,\n kind\n ));\n }\n return 0 /* False */;\n }\n }\n return result2;\n }\n function shouldReportUnmatchedPropertyError(source2, target2) {\n const typeCallSignatures = getSignaturesOfStructuredType(source2, 0 /* Call */);\n const typeConstructSignatures = getSignaturesOfStructuredType(source2, 1 /* Construct */);\n const typeProperties = getPropertiesOfObjectType(source2);\n if ((typeCallSignatures.length || typeConstructSignatures.length) && !typeProperties.length) {\n if (getSignaturesOfType(target2, 0 /* Call */).length && typeCallSignatures.length || getSignaturesOfType(target2, 1 /* Construct */).length && typeConstructSignatures.length) {\n return true;\n }\n return false;\n }\n return true;\n }\n function reportIncompatibleCallSignatureReturn(siga, sigb) {\n if (siga.parameters.length === 0 && sigb.parameters.length === 0) {\n return (source2, target2) => reportIncompatibleError(Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2));\n }\n return (source2, target2) => reportIncompatibleError(Diagnostics.Call_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2));\n }\n function reportIncompatibleConstructSignatureReturn(siga, sigb) {\n if (siga.parameters.length === 0 && sigb.parameters.length === 0) {\n return (source2, target2) => reportIncompatibleError(Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2));\n }\n return (source2, target2) => reportIncompatibleError(Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2));\n }\n function signatureRelatedTo(source2, target2, erase, reportErrors2, intersectionState, incompatibleReporter) {\n const checkMode = relation === subtypeRelation ? 16 /* StrictTopSignature */ : relation === strictSubtypeRelation ? 16 /* StrictTopSignature */ | 8 /* StrictArity */ : 0 /* None */;\n return compareSignaturesRelated(erase ? getErasedSignature(source2) : source2, erase ? getErasedSignature(target2) : target2, checkMode, reportErrors2, reportError, incompatibleReporter, isRelatedToWorker2, reportUnreliableMapper);\n function isRelatedToWorker2(source3, target3, reportErrors3) {\n return isRelatedTo(\n source3,\n target3,\n 3 /* Both */,\n reportErrors3,\n /*headMessage*/\n void 0,\n intersectionState\n );\n }\n }\n function signaturesIdenticalTo(source2, target2, kind) {\n const sourceSignatures = getSignaturesOfType(source2, kind);\n const targetSignatures = getSignaturesOfType(target2, kind);\n if (sourceSignatures.length !== targetSignatures.length) {\n return 0 /* False */;\n }\n let result2 = -1 /* True */;\n for (let i = 0; i < sourceSignatures.length; i++) {\n const related = compareSignaturesIdentical(\n sourceSignatures[i],\n targetSignatures[i],\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n false,\n /*ignoreReturnTypes*/\n false,\n isRelatedTo\n );\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) {\n let result2 = -1 /* True */;\n const keyType = targetInfo.keyType;\n const props = source2.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(source2) : getPropertiesOfObjectType(source2);\n for (const prop of props) {\n if (isIgnoredJsxProperty(source2, prop)) {\n continue;\n }\n if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), keyType)) {\n const propType = getNonMissingTypeOfSymbol(prop);\n const type = exactOptionalPropertyTypes || propType.flags & 32768 /* Undefined */ || keyType === numberType || !(prop.flags & 16777216 /* Optional */) ? propType : getTypeWithFacts(propType, 524288 /* NEUndefined */);\n const related = isRelatedTo(\n type,\n targetInfo.type,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (!related) {\n if (reportErrors2) {\n reportError(Diagnostics.Property_0_is_incompatible_with_index_signature, symbolToString(prop));\n }\n return 0 /* False */;\n }\n result2 &= related;\n }\n }\n for (const info of getIndexInfosOfType(source2)) {\n if (isApplicableIndexType(info.keyType, keyType)) {\n const related = indexInfoRelatedTo(info, targetInfo, reportErrors2, intersectionState);\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n }\n return result2;\n }\n function indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState) {\n const related = isRelatedTo(\n sourceInfo.type,\n targetInfo.type,\n 3 /* Both */,\n reportErrors2,\n /*headMessage*/\n void 0,\n intersectionState\n );\n if (!related && reportErrors2) {\n if (sourceInfo.keyType === targetInfo.keyType) {\n reportError(Diagnostics._0_index_signatures_are_incompatible, typeToString(sourceInfo.keyType));\n } else {\n reportError(Diagnostics._0_and_1_index_signatures_are_incompatible, typeToString(sourceInfo.keyType), typeToString(targetInfo.keyType));\n }\n }\n return related;\n }\n function indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportErrors2, intersectionState) {\n if (relation === identityRelation) {\n return indexSignaturesIdenticalTo(source2, target2);\n }\n const indexInfos = getIndexInfosOfType(target2);\n const targetHasStringIndex = some(indexInfos, (info) => info.keyType === stringType);\n let result2 = -1 /* True */;\n for (const targetInfo of indexInfos) {\n const related = relation !== strictSubtypeRelation && !sourceIsPrimitive && targetHasStringIndex && targetInfo.type.flags & 1 /* Any */ ? -1 /* True */ : isGenericMappedType(source2) && targetHasStringIndex ? isRelatedTo(getTemplateTypeFromMappedType(source2), targetInfo.type, 3 /* Both */, reportErrors2) : typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState);\n if (!related) {\n return 0 /* False */;\n }\n result2 &= related;\n }\n return result2;\n }\n function typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) {\n const sourceInfo = getApplicableIndexInfo(source2, targetInfo.keyType);\n if (sourceInfo) {\n return indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState);\n }\n if (!(intersectionState & 1 /* Source */) && (relation !== strictSubtypeRelation || getObjectFlags(source2) & 8192 /* FreshLiteral */) && isObjectTypeWithInferableIndex(source2)) {\n return membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState);\n }\n if (reportErrors2) {\n reportError(Diagnostics.Index_signature_for_type_0_is_missing_in_type_1, typeToString(targetInfo.keyType), typeToString(source2));\n }\n return 0 /* False */;\n }\n function indexSignaturesIdenticalTo(source2, target2) {\n const sourceInfos = getIndexInfosOfType(source2);\n const targetInfos = getIndexInfosOfType(target2);\n if (sourceInfos.length !== targetInfos.length) {\n return 0 /* False */;\n }\n for (const targetInfo of targetInfos) {\n const sourceInfo = getIndexInfoOfType(source2, targetInfo.keyType);\n if (!(sourceInfo && isRelatedTo(sourceInfo.type, targetInfo.type, 3 /* Both */) && sourceInfo.isReadonly === targetInfo.isReadonly)) {\n return 0 /* False */;\n }\n }\n return -1 /* True */;\n }\n function constructorVisibilitiesAreCompatible(sourceSignature, targetSignature, reportErrors2) {\n if (!sourceSignature.declaration || !targetSignature.declaration) {\n return true;\n }\n const sourceAccessibility = getSelectedEffectiveModifierFlags(sourceSignature.declaration, 6 /* NonPublicAccessibilityModifier */);\n const targetAccessibility = getSelectedEffectiveModifierFlags(targetSignature.declaration, 6 /* NonPublicAccessibilityModifier */);\n if (targetAccessibility === 2 /* Private */) {\n return true;\n }\n if (targetAccessibility === 4 /* Protected */ && sourceAccessibility !== 2 /* Private */) {\n return true;\n }\n if (targetAccessibility !== 4 /* Protected */ && !sourceAccessibility) {\n return true;\n }\n if (reportErrors2) {\n reportError(Diagnostics.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type, visibilityToString(sourceAccessibility), visibilityToString(targetAccessibility));\n }\n return false;\n }\n }\n function typeCouldHaveTopLevelSingletonTypes(type) {\n if (type.flags & 16 /* Boolean */) {\n return false;\n }\n if (type.flags & 3145728 /* UnionOrIntersection */) {\n return !!forEach(type.types, typeCouldHaveTopLevelSingletonTypes);\n }\n if (type.flags & 465829888 /* Instantiable */) {\n const constraint = getConstraintOfType(type);\n if (constraint && constraint !== type) {\n return typeCouldHaveTopLevelSingletonTypes(constraint);\n }\n }\n return isUnitType(type) || !!(type.flags & 134217728 /* TemplateLiteral */) || !!(type.flags & 268435456 /* StringMapping */);\n }\n function getExactOptionalUnassignableProperties(source, target) {\n if (isTupleType(source) && isTupleType(target)) return emptyArray;\n return getPropertiesOfType(target).filter((targetProp) => isExactOptionalPropertyMismatch(getTypeOfPropertyOfType(source, targetProp.escapedName), getTypeOfSymbol(targetProp)));\n }\n function isExactOptionalPropertyMismatch(source, target) {\n return !!source && !!target && maybeTypeOfKind(source, 32768 /* Undefined */) && !!containsMissingType(target);\n }\n function getExactOptionalProperties(type) {\n return getPropertiesOfType(type).filter((targetProp) => containsMissingType(getTypeOfSymbol(targetProp)));\n }\n function getBestMatchingType(source, target, isRelatedTo = compareTypesAssignable) {\n return findMatchingDiscriminantType(source, target, isRelatedTo) || findMatchingTypeReferenceOrTypeAliasReference(source, target) || findBestTypeForObjectLiteral(source, target) || findBestTypeForInvokable(source, target) || findMostOverlappyType(source, target);\n }\n function discriminateTypeByDiscriminableItems(target, discriminators, related) {\n const types = target.types;\n const include = types.map((t) => t.flags & 402784252 /* Primitive */ ? 0 /* False */ : -1 /* True */);\n for (const [getDiscriminatingType, propertyName] of discriminators) {\n let matched = false;\n for (let i = 0; i < types.length; i++) {\n if (include[i]) {\n const targetType = getTypeOfPropertyOrIndexSignatureOfType(types[i], propertyName);\n if (targetType) {\n if (someType(getDiscriminatingType(), (t) => !!related(t, targetType))) {\n matched = true;\n } else {\n include[i] = 3 /* Maybe */;\n }\n }\n }\n }\n for (let i = 0; i < types.length; i++) {\n if (include[i] === 3 /* Maybe */) {\n include[i] = matched ? 0 /* False */ : -1 /* True */;\n }\n }\n }\n const filtered = contains(include, 0 /* False */) ? getUnionType(types.filter((_, i) => include[i]), 0 /* None */) : target;\n return filtered.flags & 131072 /* Never */ ? target : filtered;\n }\n function isWeakType(type) {\n if (type.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type);\n return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, (p) => !!(p.flags & 16777216 /* Optional */));\n }\n if (type.flags & 33554432 /* Substitution */) {\n return isWeakType(type.baseType);\n }\n if (type.flags & 2097152 /* Intersection */) {\n return every(type.types, isWeakType);\n }\n return false;\n }\n function hasCommonProperties(source, target, isComparingJsxAttributes) {\n for (const prop of getPropertiesOfType(source)) {\n if (isKnownProperty(target, prop.escapedName, isComparingJsxAttributes)) {\n return true;\n }\n }\n return false;\n }\n function getVariances(type) {\n return type === globalArrayType || type === globalReadonlyArrayType || type.objectFlags & 8 /* Tuple */ ? arrayVariances : getVariancesWorker(type.symbol, type.typeParameters);\n }\n function getAliasVariances(symbol) {\n return getVariancesWorker(symbol, getSymbolLinks(symbol).typeParameters);\n }\n function getVariancesWorker(symbol, typeParameters = emptyArray) {\n var _a, _b;\n const links = getSymbolLinks(symbol);\n if (!links.variances) {\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, \"getVariancesWorker\", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) });\n const oldVarianceComputation = inVarianceComputation;\n const saveResolutionStart = resolutionStart;\n if (!inVarianceComputation) {\n inVarianceComputation = true;\n resolutionStart = resolutionTargets.length;\n }\n links.variances = emptyArray;\n const variances = [];\n for (const tp of typeParameters) {\n const modifiers = getTypeParameterModifiers(tp);\n let variance = modifiers & 16384 /* Out */ ? modifiers & 8192 /* In */ ? 0 /* Invariant */ : 1 /* Covariant */ : modifiers & 8192 /* In */ ? 2 /* Contravariant */ : void 0;\n if (variance === void 0) {\n let unmeasurable = false;\n let unreliable = false;\n const oldHandler = outofbandVarianceMarkerHandler;\n outofbandVarianceMarkerHandler = (onlyUnreliable) => onlyUnreliable ? unreliable = true : unmeasurable = true;\n const typeWithSuper = createMarkerType(symbol, tp, markerSuperType);\n const typeWithSub = createMarkerType(symbol, tp, markerSubType);\n variance = (isTypeAssignableTo(typeWithSub, typeWithSuper) ? 1 /* Covariant */ : 0) | (isTypeAssignableTo(typeWithSuper, typeWithSub) ? 2 /* Contravariant */ : 0);\n if (variance === 3 /* Bivariant */ && isTypeAssignableTo(createMarkerType(symbol, tp, markerOtherType), typeWithSuper)) {\n variance = 4 /* Independent */;\n }\n outofbandVarianceMarkerHandler = oldHandler;\n if (unmeasurable || unreliable) {\n if (unmeasurable) {\n variance |= 8 /* Unmeasurable */;\n }\n if (unreliable) {\n variance |= 16 /* Unreliable */;\n }\n }\n }\n variances.push(variance);\n }\n if (!oldVarianceComputation) {\n inVarianceComputation = false;\n resolutionStart = saveResolutionStart;\n }\n links.variances = variances;\n (_b = tracing) == null ? void 0 : _b.pop({ variances: variances.map(Debug.formatVariance) });\n }\n return links.variances;\n }\n function createMarkerType(symbol, source, target) {\n const mapper = makeUnaryTypeMapper(source, target);\n const type = getDeclaredTypeOfSymbol(symbol);\n if (isErrorType(type)) {\n return type;\n }\n const result = symbol.flags & 524288 /* TypeAlias */ ? getTypeAliasInstantiation(symbol, instantiateTypes(getSymbolLinks(symbol).typeParameters, mapper)) : createTypeReference(type, instantiateTypes(type.typeParameters, mapper));\n markerTypes.add(getTypeId(result));\n return result;\n }\n function isMarkerType(type) {\n return markerTypes.has(getTypeId(type));\n }\n function getTypeParameterModifiers(tp) {\n var _a;\n return reduceLeft((_a = tp.symbol) == null ? void 0 : _a.declarations, (modifiers, d) => modifiers | getEffectiveModifierFlags(d), 0 /* None */) & (8192 /* In */ | 16384 /* Out */ | 4096 /* Const */);\n }\n function hasCovariantVoidArgument(typeArguments, variances) {\n for (let i = 0; i < variances.length; i++) {\n if ((variances[i] & 7 /* VarianceMask */) === 1 /* Covariant */ && typeArguments[i].flags & 16384 /* Void */) {\n return true;\n }\n }\n return false;\n }\n function isUnconstrainedTypeParameter(type) {\n return type.flags & 262144 /* TypeParameter */ && !getConstraintOfTypeParameter(type);\n }\n function isNonDeferredTypeReference(type) {\n return !!(getObjectFlags(type) & 4 /* Reference */) && !type.node;\n }\n function isTypeReferenceWithGenericArguments(type) {\n return isNonDeferredTypeReference(type) && some(getTypeArguments(type), (t) => !!(t.flags & 262144 /* TypeParameter */) || isTypeReferenceWithGenericArguments(t));\n }\n function getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) {\n const typeParameters = [];\n let constraintMarker = \"\";\n const sourceId = getTypeReferenceId(source, 0);\n const targetId = getTypeReferenceId(target, 0);\n return `${constraintMarker}${sourceId},${targetId}${postFix}`;\n function getTypeReferenceId(type, depth = 0) {\n let result = \"\" + type.target.id;\n for (const t of getTypeArguments(type)) {\n if (t.flags & 262144 /* TypeParameter */) {\n if (ignoreConstraints || isUnconstrainedTypeParameter(t)) {\n let index = typeParameters.indexOf(t);\n if (index < 0) {\n index = typeParameters.length;\n typeParameters.push(t);\n }\n result += \"=\" + index;\n continue;\n }\n constraintMarker = \"*\";\n } else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) {\n result += \"<\" + getTypeReferenceId(t, depth + 1) + \">\";\n continue;\n }\n result += \"-\" + t.id;\n }\n return result;\n }\n }\n function getRelationKey(source, target, intersectionState, relation, ignoreConstraints) {\n if (relation === identityRelation && source.id > target.id) {\n const temp = source;\n source = target;\n target = temp;\n }\n const postFix = intersectionState ? \":\" + intersectionState : \"\";\n return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ? getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) : `${source.id},${target.id}${postFix}`;\n }\n function forEachProperty2(prop, callback) {\n if (getCheckFlags(prop) & 6 /* Synthetic */) {\n for (const t of prop.links.containingType.types) {\n const p = getPropertyOfType(t, prop.escapedName);\n const result = p && forEachProperty2(p, callback);\n if (result) {\n return result;\n }\n }\n return void 0;\n }\n return callback(prop);\n }\n function getDeclaringClass(prop) {\n return prop.parent && prop.parent.flags & 32 /* Class */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(prop)) : void 0;\n }\n function getTypeOfPropertyInBaseClass(property) {\n const classType = getDeclaringClass(property);\n const baseClassType = classType && getBaseTypes(classType)[0];\n return baseClassType && getTypeOfPropertyOfType(baseClassType, property.escapedName);\n }\n function isPropertyInClassDerivedFrom(prop, baseClass) {\n return forEachProperty2(prop, (sp) => {\n const sourceClass = getDeclaringClass(sp);\n return sourceClass ? hasBaseType(sourceClass, baseClass) : false;\n });\n }\n function isValidOverrideOf(sourceProp, targetProp) {\n return !forEachProperty2(targetProp, (tp) => getDeclarationModifierFlagsFromSymbol(tp) & 4 /* Protected */ ? !isPropertyInClassDerivedFrom(sourceProp, getDeclaringClass(tp)) : false);\n }\n function isClassDerivedFromDeclaringClasses(checkClass, prop, writing) {\n return forEachProperty2(prop, (p) => getDeclarationModifierFlagsFromSymbol(p, writing) & 4 /* Protected */ ? !hasBaseType(checkClass, getDeclaringClass(p)) : false) ? void 0 : checkClass;\n }\n function isDeeplyNestedType(type, stack, depth, maxDepth = 3) {\n if (depth >= maxDepth) {\n if ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */) {\n type = getMappedTargetWithSymbol(type);\n }\n if (type.flags & 2097152 /* Intersection */) {\n return some(type.types, (t) => isDeeplyNestedType(t, stack, depth, maxDepth));\n }\n const identity2 = getRecursionIdentity(type);\n let count = 0;\n let lastTypeId = 0;\n for (let i = 0; i < depth; i++) {\n const t = stack[i];\n if (hasMatchingRecursionIdentity(t, identity2)) {\n if (t.id >= lastTypeId) {\n count++;\n if (count >= maxDepth) {\n return true;\n }\n }\n lastTypeId = t.id;\n }\n }\n }\n return false;\n }\n function getMappedTargetWithSymbol(type) {\n let target;\n while ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */ && (target = getModifiersTypeFromMappedType(type)) && (target.symbol || target.flags & 2097152 /* Intersection */ && some(target.types, (t) => !!t.symbol))) {\n type = target;\n }\n return type;\n }\n function hasMatchingRecursionIdentity(type, identity2) {\n if ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */) {\n type = getMappedTargetWithSymbol(type);\n }\n if (type.flags & 2097152 /* Intersection */) {\n return some(type.types, (t) => hasMatchingRecursionIdentity(t, identity2));\n }\n return getRecursionIdentity(type) === identity2;\n }\n function getRecursionIdentity(type) {\n if (type.flags & 524288 /* Object */ && !isObjectOrArrayLiteralType(type)) {\n if (getObjectFlags(type) & 4 /* Reference */ && type.node) {\n return type.node;\n }\n if (type.symbol && !(getObjectFlags(type) & 16 /* Anonymous */ && type.symbol.flags & 32 /* Class */)) {\n return type.symbol;\n }\n if (isTupleType(type)) {\n return type.target;\n }\n }\n if (type.flags & 262144 /* TypeParameter */) {\n return type.symbol;\n }\n if (type.flags & 8388608 /* IndexedAccess */) {\n do {\n type = type.objectType;\n } while (type.flags & 8388608 /* IndexedAccess */);\n return type;\n }\n if (type.flags & 16777216 /* Conditional */) {\n return type.root;\n }\n return type;\n }\n function isPropertyIdenticalTo(sourceProp, targetProp) {\n return compareProperties2(sourceProp, targetProp, compareTypesIdentical) !== 0 /* False */;\n }\n function compareProperties2(sourceProp, targetProp, compareTypes) {\n if (sourceProp === targetProp) {\n return -1 /* True */;\n }\n const sourcePropAccessibility = getDeclarationModifierFlagsFromSymbol(sourceProp) & 6 /* NonPublicAccessibilityModifier */;\n const targetPropAccessibility = getDeclarationModifierFlagsFromSymbol(targetProp) & 6 /* NonPublicAccessibilityModifier */;\n if (sourcePropAccessibility !== targetPropAccessibility) {\n return 0 /* False */;\n }\n if (sourcePropAccessibility) {\n if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) {\n return 0 /* False */;\n }\n } else {\n if ((sourceProp.flags & 16777216 /* Optional */) !== (targetProp.flags & 16777216 /* Optional */)) {\n return 0 /* False */;\n }\n }\n if (isReadonlySymbol(sourceProp) !== isReadonlySymbol(targetProp)) {\n return 0 /* False */;\n }\n return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));\n }\n function isMatchingSignature(source, target, partialMatch) {\n const sourceParameterCount = getParameterCount(source);\n const targetParameterCount = getParameterCount(target);\n const sourceMinArgumentCount = getMinArgumentCount(source);\n const targetMinArgumentCount = getMinArgumentCount(target);\n const sourceHasRestParameter = hasEffectiveRestParameter(source);\n const targetHasRestParameter = hasEffectiveRestParameter(target);\n if (sourceParameterCount === targetParameterCount && sourceMinArgumentCount === targetMinArgumentCount && sourceHasRestParameter === targetHasRestParameter) {\n return true;\n }\n if (partialMatch && sourceMinArgumentCount <= targetMinArgumentCount) {\n return true;\n }\n return false;\n }\n function compareSignaturesIdentical(source, target, partialMatch, ignoreThisTypes, ignoreReturnTypes, compareTypes) {\n if (source === target) {\n return -1 /* True */;\n }\n if (!isMatchingSignature(source, target, partialMatch)) {\n return 0 /* False */;\n }\n if (length(source.typeParameters) !== length(target.typeParameters)) {\n return 0 /* False */;\n }\n if (target.typeParameters) {\n const mapper = createTypeMapper(source.typeParameters, target.typeParameters);\n for (let i = 0; i < target.typeParameters.length; i++) {\n const s = source.typeParameters[i];\n const t = target.typeParameters[i];\n if (!(s === t || compareTypes(instantiateType(getConstraintFromTypeParameter(s), mapper) || unknownType, getConstraintFromTypeParameter(t) || unknownType) && compareTypes(instantiateType(getDefaultFromTypeParameter(s), mapper) || unknownType, getDefaultFromTypeParameter(t) || unknownType))) {\n return 0 /* False */;\n }\n }\n source = instantiateSignature(\n source,\n mapper,\n /*eraseTypeParameters*/\n true\n );\n }\n let result = -1 /* True */;\n if (!ignoreThisTypes) {\n const sourceThisType = getThisTypeOfSignature(source);\n if (sourceThisType) {\n const targetThisType = getThisTypeOfSignature(target);\n if (targetThisType) {\n const related = compareTypes(sourceThisType, targetThisType);\n if (!related) {\n return 0 /* False */;\n }\n result &= related;\n }\n }\n }\n const targetLen = getParameterCount(target);\n for (let i = 0; i < targetLen; i++) {\n const s = getTypeAtPosition(source, i);\n const t = getTypeAtPosition(target, i);\n const related = compareTypes(t, s);\n if (!related) {\n return 0 /* False */;\n }\n result &= related;\n }\n if (!ignoreReturnTypes) {\n const sourceTypePredicate = getTypePredicateOfSignature(source);\n const targetTypePredicate = getTypePredicateOfSignature(target);\n result &= sourceTypePredicate || targetTypePredicate ? compareTypePredicatesIdentical(sourceTypePredicate, targetTypePredicate, compareTypes) : compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));\n }\n return result;\n }\n function compareTypePredicatesIdentical(source, target, compareTypes) {\n return !(source && target && typePredicateKindsMatch(source, target)) ? 0 /* False */ : source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type) : 0 /* False */;\n }\n function literalTypesWithSameBaseType(types) {\n let commonBaseType;\n for (const t of types) {\n if (!(t.flags & 131072 /* Never */)) {\n const baseType = getBaseTypeOfLiteralType(t);\n commonBaseType ?? (commonBaseType = baseType);\n if (baseType === t || baseType !== commonBaseType) {\n return false;\n }\n }\n }\n return true;\n }\n function getCombinedTypeFlags(types) {\n return reduceLeft(types, (flags, t) => flags | (t.flags & 1048576 /* Union */ ? getCombinedTypeFlags(t.types) : t.flags), 0);\n }\n function getCommonSupertype(types) {\n if (types.length === 1) {\n return types[0];\n }\n const primaryTypes = strictNullChecks ? sameMap(types, (t) => filterType(t, (u) => !(u.flags & 98304 /* Nullable */))) : types;\n const superTypeOrUnion = literalTypesWithSameBaseType(primaryTypes) ? getUnionType(primaryTypes) : getSingleCommonSupertype(primaryTypes);\n return primaryTypes === types ? superTypeOrUnion : getNullableType(superTypeOrUnion, getCombinedTypeFlags(types) & 98304 /* Nullable */);\n }\n function getSingleCommonSupertype(types) {\n const candidate = reduceLeft(types, (s, t) => isTypeStrictSubtypeOf(s, t) ? t : s);\n return every(types, (t) => t === candidate || isTypeStrictSubtypeOf(t, candidate)) ? candidate : reduceLeft(types, (s, t) => isTypeSubtypeOf(s, t) ? t : s);\n }\n function getCommonSubtype(types) {\n return reduceLeft(types, (s, t) => isTypeSubtypeOf(t, s) ? t : s);\n }\n function isArrayType(type) {\n return !!(getObjectFlags(type) & 4 /* Reference */) && (type.target === globalArrayType || type.target === globalReadonlyArrayType);\n }\n function isReadonlyArrayType(type) {\n return !!(getObjectFlags(type) & 4 /* Reference */) && type.target === globalReadonlyArrayType;\n }\n function isArrayOrTupleType(type) {\n return isArrayType(type) || isTupleType(type);\n }\n function isMutableArrayOrTuple(type) {\n return isArrayType(type) && !isReadonlyArrayType(type) || isTupleType(type) && !type.target.readonly;\n }\n function getElementTypeOfArrayType(type) {\n return isArrayType(type) ? getTypeArguments(type)[0] : void 0;\n }\n function isArrayLikeType(type) {\n return isArrayType(type) || !(type.flags & 98304 /* Nullable */) && isTypeAssignableTo(type, anyReadonlyArrayType);\n }\n function isMutableArrayLikeType(type) {\n return isMutableArrayOrTuple(type) || !(type.flags & (1 /* Any */ | 98304 /* Nullable */)) && isTypeAssignableTo(type, anyArrayType);\n }\n function getSingleBaseForNonAugmentingSubtype(type) {\n if (!(getObjectFlags(type) & 4 /* Reference */) || !(getObjectFlags(type.target) & 3 /* ClassOrInterface */)) {\n return void 0;\n }\n if (getObjectFlags(type) & 33554432 /* IdenticalBaseTypeCalculated */) {\n return getObjectFlags(type) & 67108864 /* IdenticalBaseTypeExists */ ? type.cachedEquivalentBaseType : void 0;\n }\n type.objectFlags |= 33554432 /* IdenticalBaseTypeCalculated */;\n const target = type.target;\n if (getObjectFlags(target) & 1 /* Class */) {\n const baseTypeNode = getBaseTypeNodeOfClass(target);\n if (baseTypeNode && baseTypeNode.expression.kind !== 80 /* Identifier */ && baseTypeNode.expression.kind !== 212 /* PropertyAccessExpression */) {\n return void 0;\n }\n }\n const bases = getBaseTypes(target);\n if (bases.length !== 1) {\n return void 0;\n }\n if (getMembersOfSymbol(type.symbol).size) {\n return void 0;\n }\n let instantiatedBase = !length(target.typeParameters) ? bases[0] : instantiateType(bases[0], createTypeMapper(target.typeParameters, getTypeArguments(type).slice(0, target.typeParameters.length)));\n if (length(getTypeArguments(type)) > length(target.typeParameters)) {\n instantiatedBase = getTypeWithThisArgument(instantiatedBase, last(getTypeArguments(type)));\n }\n type.objectFlags |= 67108864 /* IdenticalBaseTypeExists */;\n return type.cachedEquivalentBaseType = instantiatedBase;\n }\n function isEmptyLiteralType(type) {\n return strictNullChecks ? type === implicitNeverType : type === undefinedWideningType;\n }\n function isEmptyArrayLiteralType(type) {\n const elementType = getElementTypeOfArrayType(type);\n return !!elementType && isEmptyLiteralType(elementType);\n }\n function isTupleLikeType(type) {\n let lengthType;\n return isTupleType(type) || !!getPropertyOfType(type, \"0\") || isArrayLikeType(type) && !!(lengthType = getTypeOfPropertyOfType(type, \"length\")) && everyType(lengthType, (t) => !!(t.flags & 256 /* NumberLiteral */));\n }\n function isArrayOrTupleLikeType(type) {\n return isArrayLikeType(type) || isTupleLikeType(type);\n }\n function getTupleElementType(type, index) {\n const propType = getTypeOfPropertyOfType(type, \"\" + index);\n if (propType) {\n return propType;\n }\n if (everyType(type, isTupleType)) {\n return getTupleElementTypeOutOfStartCount(type, index, compilerOptions.noUncheckedIndexedAccess ? undefinedType : void 0);\n }\n return void 0;\n }\n function isNeitherUnitTypeNorNever(type) {\n return !(type.flags & (109472 /* Unit */ | 131072 /* Never */));\n }\n function isUnitType(type) {\n return !!(type.flags & 109472 /* Unit */);\n }\n function isUnitLikeType(type) {\n const t = getBaseConstraintOrType(type);\n return t.flags & 2097152 /* Intersection */ ? some(t.types, isUnitType) : isUnitType(t);\n }\n function extractUnitType(type) {\n return type.flags & 2097152 /* Intersection */ ? find(type.types, isUnitType) || type : type;\n }\n function isLiteralType(type) {\n return type.flags & 16 /* Boolean */ ? true : type.flags & 1048576 /* Union */ ? type.flags & 1024 /* EnumLiteral */ ? true : every(type.types, isUnitType) : isUnitType(type);\n }\n function getBaseTypeOfLiteralType(type) {\n return type.flags & 1056 /* EnumLike */ ? getBaseTypeOfEnumLikeType(type) : type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & 256 /* NumberLiteral */ ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? getBaseTypeOfLiteralTypeUnion(type) : type;\n }\n function getBaseTypeOfLiteralTypeUnion(type) {\n const key = `B${getTypeId(type)}`;\n return getCachedType(key) ?? setCachedType(key, mapType(type, getBaseTypeOfLiteralType));\n }\n function getBaseTypeOfLiteralTypeForComparison(type) {\n return type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & (256 /* NumberLiteral */ | 32 /* Enum */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type;\n }\n function getWidenedLiteralType(type) {\n return type.flags & 1056 /* EnumLike */ && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 128 /* StringLiteral */ && isFreshLiteralType(type) ? stringType : type.flags & 256 /* NumberLiteral */ && isFreshLiteralType(type) ? numberType : type.flags & 2048 /* BigIntLiteral */ && isFreshLiteralType(type) ? bigintType : type.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(type) ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedLiteralType) : type;\n }\n function getWidenedUniqueESSymbolType(type) {\n return type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedUniqueESSymbolType) : type;\n }\n function getWidenedLiteralLikeTypeForContextualType(type, contextualType) {\n if (!isLiteralOfContextualType(type, contextualType)) {\n type = getWidenedUniqueESSymbolType(getWidenedLiteralType(type));\n }\n return getRegularTypeOfLiteralType(type);\n }\n function getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(type, contextualSignatureReturnType, isAsync) {\n if (type && isUnitType(type)) {\n const contextualType = !contextualSignatureReturnType ? void 0 : isAsync ? getPromisedTypeOfPromise(contextualSignatureReturnType) : contextualSignatureReturnType;\n type = getWidenedLiteralLikeTypeForContextualType(type, contextualType);\n }\n return type;\n }\n function getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(type, contextualSignatureReturnType, kind, isAsyncGenerator) {\n if (type && isUnitType(type)) {\n const contextualType = !contextualSignatureReturnType ? void 0 : getIterationTypeOfGeneratorFunctionReturnType(kind, contextualSignatureReturnType, isAsyncGenerator);\n type = getWidenedLiteralLikeTypeForContextualType(type, contextualType);\n }\n return type;\n }\n function isTupleType(type) {\n return !!(getObjectFlags(type) & 4 /* Reference */ && type.target.objectFlags & 8 /* Tuple */);\n }\n function isGenericTupleType(type) {\n return isTupleType(type) && !!(type.target.combinedFlags & 8 /* Variadic */);\n }\n function isSingleElementGenericTupleType(type) {\n return isGenericTupleType(type) && type.target.elementFlags.length === 1;\n }\n function getRestTypeOfTupleType(type) {\n return getElementTypeOfSliceOfTupleType(type, type.target.fixedLength);\n }\n function getTupleElementTypeOutOfStartCount(type, index, undefinedOrMissingType2) {\n return mapType(type, (t) => {\n const tupleType = t;\n const restType = getRestTypeOfTupleType(tupleType);\n if (!restType) {\n return undefinedType;\n }\n if (undefinedOrMissingType2 && index >= getTotalFixedElementCount(tupleType.target)) {\n return getUnionType([restType, undefinedOrMissingType2]);\n }\n return restType;\n });\n }\n function getRestArrayTypeOfTupleType(type) {\n const restType = getRestTypeOfTupleType(type);\n return restType && createArrayType(restType);\n }\n function getElementTypeOfSliceOfTupleType(type, index, endSkipCount = 0, writing = false, noReductions = false) {\n const length2 = getTypeReferenceArity(type) - endSkipCount;\n if (index < length2) {\n const typeArguments = getTypeArguments(type);\n const elementTypes = [];\n for (let i = index; i < length2; i++) {\n const t = typeArguments[i];\n elementTypes.push(type.target.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t);\n }\n return writing ? getIntersectionType(elementTypes) : getUnionType(elementTypes, noReductions ? 0 /* None */ : 1 /* Literal */);\n }\n return void 0;\n }\n function isTupleTypeStructureMatching(t1, t2) {\n return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (f, i) => (f & 12 /* Variable */) === (t2.target.elementFlags[i] & 12 /* Variable */));\n }\n function isZeroBigInt({ value }) {\n return value.base10Value === \"0\";\n }\n function removeDefinitelyFalsyTypes(type) {\n return filterType(type, (t) => hasTypeFacts(t, 4194304 /* Truthy */));\n }\n function extractDefinitelyFalsyTypes(type) {\n return mapType(type, getDefinitelyFalsyPartOfType);\n }\n function getDefinitelyFalsyPartOfType(type) {\n return type.flags & 4 /* String */ ? emptyStringType : type.flags & 8 /* Number */ ? zeroType : type.flags & 64 /* BigInt */ ? zeroBigIntType : type === regularFalseType || type === falseType || type.flags & (16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */ | 3 /* AnyOrUnknown */) || type.flags & 128 /* StringLiteral */ && type.value === \"\" || type.flags & 256 /* NumberLiteral */ && type.value === 0 || type.flags & 2048 /* BigIntLiteral */ && isZeroBigInt(type) ? type : neverType;\n }\n function getNullableType(type, flags) {\n const missing = flags & ~type.flags & (32768 /* Undefined */ | 65536 /* Null */);\n return missing === 0 ? type : missing === 32768 /* Undefined */ ? getUnionType([type, undefinedType]) : missing === 65536 /* Null */ ? getUnionType([type, nullType]) : getUnionType([type, undefinedType, nullType]);\n }\n function getOptionalType(type, isProperty = false) {\n Debug.assert(strictNullChecks);\n const missingOrUndefined = isProperty ? undefinedOrMissingType : undefinedType;\n return type === missingOrUndefined || type.flags & 1048576 /* Union */ && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]);\n }\n function getGlobalNonNullableTypeInstantiation(type) {\n if (!deferredGlobalNonNullableTypeAlias) {\n deferredGlobalNonNullableTypeAlias = getGlobalSymbol(\n \"NonNullable\",\n 524288 /* TypeAlias */,\n /*diagnostic*/\n void 0\n ) || unknownSymbol;\n }\n return deferredGlobalNonNullableTypeAlias !== unknownSymbol ? getTypeAliasInstantiation(deferredGlobalNonNullableTypeAlias, [type]) : getIntersectionType([type, emptyObjectType]);\n }\n function getNonNullableType(type) {\n return strictNullChecks ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n }\n function addOptionalTypeMarker(type) {\n return strictNullChecks ? getUnionType([type, optionalType]) : type;\n }\n function removeOptionalTypeMarker(type) {\n return strictNullChecks ? removeType(type, optionalType) : type;\n }\n function propagateOptionalTypeMarker(type, node, wasOptional) {\n return wasOptional ? isOutermostOptionalChain(node) ? getOptionalType(type) : addOptionalTypeMarker(type) : type;\n }\n function getOptionalExpressionType(exprType, expression) {\n return isExpressionOfOptionalChainRoot(expression) ? getNonNullableType(exprType) : isOptionalChain(expression) ? removeOptionalTypeMarker(exprType) : exprType;\n }\n function removeMissingType(type, isOptional) {\n return exactOptionalPropertyTypes && isOptional ? removeType(type, missingType) : type;\n }\n function containsMissingType(type) {\n return type === missingType || !!(type.flags & 1048576 /* Union */) && type.types[0] === missingType;\n }\n function removeMissingOrUndefinedType(type) {\n return exactOptionalPropertyTypes ? removeType(type, missingType) : getTypeWithFacts(type, 524288 /* NEUndefined */);\n }\n function isCoercibleUnderDoubleEquals(source, target) {\n return (source.flags & (8 /* Number */ | 4 /* String */ | 512 /* BooleanLiteral */)) !== 0 && (target.flags & (8 /* Number */ | 4 /* String */ | 16 /* Boolean */)) !== 0;\n }\n function isObjectTypeWithInferableIndex(type) {\n const objectFlags = getObjectFlags(type);\n return type.flags & 2097152 /* Intersection */ ? every(type.types, isObjectTypeWithInferableIndex) : !!(type.symbol && (type.symbol.flags & (4096 /* ObjectLiteral */ | 2048 /* TypeLiteral */ | 384 /* Enum */ | 512 /* ValueModule */)) !== 0 && !(type.symbol.flags & 32 /* Class */) && !typeHasCallOrConstructSignatures(type)) || !!(objectFlags & 4194304 /* ObjectRestType */) || !!(objectFlags & 1024 /* ReverseMapped */ && isObjectTypeWithInferableIndex(type.source));\n }\n function createSymbolWithType(source, type) {\n const symbol = createSymbol(source.flags, source.escapedName, getCheckFlags(source) & 8 /* Readonly */);\n symbol.declarations = source.declarations;\n symbol.parent = source.parent;\n symbol.links.type = type;\n symbol.links.target = source;\n if (source.valueDeclaration) {\n symbol.valueDeclaration = source.valueDeclaration;\n }\n const nameType = getSymbolLinks(source).nameType;\n if (nameType) {\n symbol.links.nameType = nameType;\n }\n return symbol;\n }\n function transformTypeOfMembers(type, f) {\n const members = createSymbolTable();\n for (const property of getPropertiesOfObjectType(type)) {\n const original = getTypeOfSymbol(property);\n const updated = f(original);\n members.set(property.escapedName, updated === original ? property : createSymbolWithType(property, updated));\n }\n return members;\n }\n function getRegularTypeOfObjectLiteral(type) {\n if (!(isObjectLiteralType2(type) && getObjectFlags(type) & 8192 /* FreshLiteral */)) {\n return type;\n }\n const regularType = type.regularType;\n if (regularType) {\n return regularType;\n }\n const resolved = type;\n const members = transformTypeOfMembers(type, getRegularTypeOfObjectLiteral);\n const regularNew = createAnonymousType(resolved.symbol, members, resolved.callSignatures, resolved.constructSignatures, resolved.indexInfos);\n regularNew.flags = resolved.flags;\n regularNew.objectFlags |= resolved.objectFlags & ~8192 /* FreshLiteral */;\n type.regularType = regularNew;\n return regularNew;\n }\n function createWideningContext(parent2, propertyName, siblings) {\n return { parent: parent2, propertyName, siblings, resolvedProperties: void 0 };\n }\n function getSiblingsOfContext(context) {\n if (!context.siblings) {\n const siblings = [];\n for (const type of getSiblingsOfContext(context.parent)) {\n if (isObjectLiteralType2(type)) {\n const prop = getPropertyOfObjectType(type, context.propertyName);\n if (prop) {\n forEachType(getTypeOfSymbol(prop), (t) => {\n siblings.push(t);\n });\n }\n }\n }\n context.siblings = siblings;\n }\n return context.siblings;\n }\n function getPropertiesOfContext(context) {\n if (!context.resolvedProperties) {\n const names = /* @__PURE__ */ new Map();\n for (const t of getSiblingsOfContext(context)) {\n if (isObjectLiteralType2(t) && !(getObjectFlags(t) & 2097152 /* ContainsSpread */)) {\n for (const prop of getPropertiesOfType(t)) {\n names.set(prop.escapedName, prop);\n }\n }\n }\n context.resolvedProperties = arrayFrom(names.values());\n }\n return context.resolvedProperties;\n }\n function getWidenedProperty(prop, context) {\n if (!(prop.flags & 4 /* Property */)) {\n return prop;\n }\n const original = getTypeOfSymbol(prop);\n const propContext = context && createWideningContext(\n context,\n prop.escapedName,\n /*siblings*/\n void 0\n );\n const widened = getWidenedTypeWithContext(original, propContext);\n return widened === original ? prop : createSymbolWithType(prop, widened);\n }\n function getUndefinedProperty(prop) {\n const cached = undefinedProperties.get(prop.escapedName);\n if (cached) {\n return cached;\n }\n const result = createSymbolWithType(prop, undefinedOrMissingType);\n result.flags |= 16777216 /* Optional */;\n undefinedProperties.set(prop.escapedName, result);\n return result;\n }\n function getWidenedTypeOfObjectLiteral(type, context) {\n const members = createSymbolTable();\n for (const prop of getPropertiesOfObjectType(type)) {\n members.set(prop.escapedName, getWidenedProperty(prop, context));\n }\n if (context) {\n for (const prop of getPropertiesOfContext(context)) {\n if (!members.has(prop.escapedName)) {\n members.set(prop.escapedName, getUndefinedProperty(prop));\n }\n }\n }\n const result = createAnonymousType(type.symbol, members, emptyArray, emptyArray, sameMap(getIndexInfosOfType(type), (info) => createIndexInfo(info.keyType, getWidenedType(info.type), info.isReadonly, info.declaration, info.components)));\n result.objectFlags |= getObjectFlags(type) & (4096 /* JSLiteral */ | 262144 /* NonInferrableType */);\n return result;\n }\n function getWidenedType(type) {\n return getWidenedTypeWithContext(\n type,\n /*context*/\n void 0\n );\n }\n function getWidenedTypeWithContext(type, context) {\n if (getObjectFlags(type) & 196608 /* RequiresWidening */) {\n if (context === void 0 && type.widened) {\n return type.widened;\n }\n let result;\n if (type.flags & (1 /* Any */ | 98304 /* Nullable */)) {\n result = anyType;\n } else if (isObjectLiteralType2(type)) {\n result = getWidenedTypeOfObjectLiteral(type, context);\n } else if (type.flags & 1048576 /* Union */) {\n const unionContext = context || createWideningContext(\n /*parent*/\n void 0,\n /*propertyName*/\n void 0,\n type.types\n );\n const widenedTypes = sameMap(type.types, (t) => t.flags & 98304 /* Nullable */ ? t : getWidenedTypeWithContext(t, unionContext));\n result = getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType) ? 2 /* Subtype */ : 1 /* Literal */);\n } else if (type.flags & 2097152 /* Intersection */) {\n result = getIntersectionType(sameMap(type.types, getWidenedType));\n } else if (isArrayOrTupleType(type)) {\n result = createTypeReference(type.target, sameMap(getTypeArguments(type), getWidenedType));\n }\n if (result && context === void 0) {\n type.widened = result;\n }\n return result || type;\n }\n return type;\n }\n function reportWideningErrorsInType(type) {\n var _a;\n let errorReported = false;\n if (getObjectFlags(type) & 65536 /* ContainsWideningType */) {\n if (type.flags & 1048576 /* Union */) {\n if (some(type.types, isEmptyObjectType)) {\n errorReported = true;\n } else {\n for (const t of type.types) {\n errorReported || (errorReported = reportWideningErrorsInType(t));\n }\n }\n } else if (isArrayOrTupleType(type)) {\n for (const t of getTypeArguments(type)) {\n errorReported || (errorReported = reportWideningErrorsInType(t));\n }\n } else if (isObjectLiteralType2(type)) {\n for (const p of getPropertiesOfObjectType(type)) {\n const t = getTypeOfSymbol(p);\n if (getObjectFlags(t) & 65536 /* ContainsWideningType */) {\n errorReported = reportWideningErrorsInType(t);\n if (!errorReported) {\n const valueDeclaration = (_a = p.declarations) == null ? void 0 : _a.find((d) => {\n var _a2;\n return ((_a2 = d.symbol.valueDeclaration) == null ? void 0 : _a2.parent) === type.symbol.valueDeclaration;\n });\n if (valueDeclaration) {\n error2(valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, symbolToString(p), typeToString(getWidenedType(t)));\n errorReported = true;\n }\n }\n }\n }\n }\n }\n return errorReported;\n }\n function reportImplicitAny(declaration, type, wideningKind) {\n const typeAsString = typeToString(getWidenedType(type));\n if (isInJSFile(declaration) && !isCheckJsEnabledForFile(getSourceFileOfNode(declaration), compilerOptions)) {\n return;\n }\n let diagnostic;\n switch (declaration.kind) {\n case 227 /* BinaryExpression */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n diagnostic = noImplicitAny ? Diagnostics.Member_0_implicitly_has_an_1_type : Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n break;\n case 170 /* Parameter */:\n const param = declaration;\n if (isIdentifier(param.name)) {\n const originalKeywordKind = identifierToKeywordKind(param.name);\n if ((isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) && param.parent.parameters.includes(param) && (resolveName(\n param,\n param.name.escapedText,\n 788968 /* Type */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n ) || originalKeywordKind && isTypeNodeKind(originalKeywordKind))) {\n const newName = \"arg\" + param.parent.parameters.indexOf(param);\n const typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? \"[]\" : \"\");\n errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName);\n return;\n }\n }\n diagnostic = declaration.dotDotDotToken ? noImplicitAny ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage : noImplicitAny ? Diagnostics.Parameter_0_implicitly_has_an_1_type : Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n break;\n case 209 /* BindingElement */:\n diagnostic = Diagnostics.Binding_element_0_implicitly_has_an_1_type;\n if (!noImplicitAny) {\n return;\n }\n break;\n case 318 /* JSDocFunctionType */:\n error2(declaration, Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);\n return;\n case 324 /* JSDocSignature */:\n if (noImplicitAny && isJSDocOverloadTag(declaration.parent)) {\n error2(declaration.parent.tagName, Diagnostics.This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation, typeAsString);\n }\n return;\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n if (noImplicitAny && !declaration.name) {\n if (wideningKind === 3 /* GeneratorYield */) {\n error2(declaration, Diagnostics.Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation, typeAsString);\n } else {\n error2(declaration, Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);\n }\n return;\n }\n diagnostic = !noImplicitAny ? Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage : wideningKind === 3 /* GeneratorYield */ ? Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type : Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type;\n break;\n case 201 /* MappedType */:\n if (noImplicitAny) {\n error2(declaration, Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);\n }\n return;\n default:\n diagnostic = noImplicitAny ? Diagnostics.Variable_0_implicitly_has_an_1_type : Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n }\n errorOrSuggestion(noImplicitAny, declaration, diagnostic, declarationNameToString(getNameOfDeclaration(declaration)), typeAsString);\n }\n function shouldReportErrorsFromWideningWithContextualSignature(declaration, wideningKind) {\n const signature = getContextualSignatureForFunctionLikeDeclaration(declaration);\n if (!signature) {\n return true;\n }\n let returnType = getReturnTypeOfSignature(signature);\n const flags = getFunctionFlags(declaration);\n switch (wideningKind) {\n case 1 /* FunctionReturn */:\n if (flags & 1 /* Generator */) {\n returnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, !!(flags & 2 /* Async */)) ?? returnType;\n } else if (flags & 2 /* Async */) {\n returnType = getAwaitedTypeNoAlias(returnType) ?? returnType;\n }\n return isGenericType(returnType);\n case 3 /* GeneratorYield */:\n const yieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, !!(flags & 2 /* Async */));\n return !!yieldType && isGenericType(yieldType);\n case 2 /* GeneratorNext */:\n const nextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, !!(flags & 2 /* Async */));\n return !!nextType && isGenericType(nextType);\n }\n return false;\n }\n function reportErrorsFromWidening(declaration, type, wideningKind) {\n addLazyDiagnostic(() => {\n if (noImplicitAny && getObjectFlags(type) & 65536 /* ContainsWideningType */) {\n if (!wideningKind || isFunctionLikeDeclaration(declaration) && shouldReportErrorsFromWideningWithContextualSignature(declaration, wideningKind)) {\n if (!reportWideningErrorsInType(type)) {\n reportImplicitAny(declaration, type, wideningKind);\n }\n }\n }\n });\n }\n function applyToParameterTypes(source, target, callback) {\n const sourceCount = getParameterCount(source);\n const targetCount = getParameterCount(target);\n const sourceRestType = getEffectiveRestType(source);\n const targetRestType = getEffectiveRestType(target);\n const targetNonRestCount = targetRestType ? targetCount - 1 : targetCount;\n const paramCount = sourceRestType ? targetNonRestCount : Math.min(sourceCount, targetNonRestCount);\n const sourceThisType = getThisTypeOfSignature(source);\n if (sourceThisType) {\n const targetThisType = getThisTypeOfSignature(target);\n if (targetThisType) {\n callback(sourceThisType, targetThisType);\n }\n }\n for (let i = 0; i < paramCount; i++) {\n callback(getTypeAtPosition(source, i), getTypeAtPosition(target, i));\n }\n if (targetRestType) {\n callback(getRestTypeAtPosition(\n source,\n paramCount,\n /*readonly*/\n isConstTypeVariable(targetRestType) && !someType(targetRestType, isMutableArrayLikeType)\n ), targetRestType);\n }\n }\n function applyToReturnTypes(source, target, callback) {\n const targetTypePredicate = getTypePredicateOfSignature(target);\n if (targetTypePredicate) {\n const sourceTypePredicate = getTypePredicateOfSignature(source);\n if (sourceTypePredicate && typePredicateKindsMatch(sourceTypePredicate, targetTypePredicate) && sourceTypePredicate.type && targetTypePredicate.type) {\n callback(sourceTypePredicate.type, targetTypePredicate.type);\n return;\n }\n }\n const targetReturnType = getReturnTypeOfSignature(target);\n if (couldContainTypeVariables(targetReturnType)) {\n callback(getReturnTypeOfSignature(source), targetReturnType);\n }\n }\n function createInferenceContext(typeParameters, signature, flags, compareTypes) {\n return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable);\n }\n function cloneInferenceContext(context, extraFlags = 0) {\n return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);\n }\n function createInferenceContextWorker(inferences, signature, flags, compareTypes) {\n const context = {\n inferences,\n signature,\n flags,\n compareTypes,\n mapper: reportUnmeasurableMapper,\n // initialize to a noop mapper so the context object is available, but the underlying object shape is right upon construction\n nonFixingMapper: reportUnmeasurableMapper\n };\n context.mapper = makeFixingMapperForContext(context);\n context.nonFixingMapper = makeNonFixingMapperForContext(context);\n return context;\n }\n function makeFixingMapperForContext(context) {\n return makeDeferredTypeMapper(\n map(context.inferences, (i) => i.typeParameter),\n map(context.inferences, (inference, i) => () => {\n if (!inference.isFixed) {\n inferFromIntraExpressionSites(context);\n clearCachedInferences(context.inferences);\n inference.isFixed = true;\n }\n return getInferredType(context, i);\n })\n );\n }\n function makeNonFixingMapperForContext(context) {\n return makeDeferredTypeMapper(\n map(context.inferences, (i) => i.typeParameter),\n map(context.inferences, (_, i) => () => {\n return getInferredType(context, i);\n })\n );\n }\n function clearCachedInferences(inferences) {\n for (const inference of inferences) {\n if (!inference.isFixed) {\n inference.inferredType = void 0;\n }\n }\n }\n function addIntraExpressionInferenceSite(context, node, type) {\n (context.intraExpressionInferenceSites ?? (context.intraExpressionInferenceSites = [])).push({ node, type });\n }\n function inferFromIntraExpressionSites(context) {\n if (context.intraExpressionInferenceSites) {\n for (const { node, type } of context.intraExpressionInferenceSites) {\n const contextualType = node.kind === 175 /* MethodDeclaration */ ? getContextualTypeForObjectLiteralMethod(node, 2 /* NoConstraints */) : getContextualType2(node, 2 /* NoConstraints */);\n if (contextualType) {\n inferTypes(context.inferences, type, contextualType);\n }\n }\n context.intraExpressionInferenceSites = void 0;\n }\n }\n function createInferenceInfo(typeParameter) {\n return {\n typeParameter,\n candidates: void 0,\n contraCandidates: void 0,\n inferredType: void 0,\n priority: void 0,\n topLevel: true,\n isFixed: false,\n impliedArity: void 0\n };\n }\n function cloneInferenceInfo(inference) {\n return {\n typeParameter: inference.typeParameter,\n candidates: inference.candidates && inference.candidates.slice(),\n contraCandidates: inference.contraCandidates && inference.contraCandidates.slice(),\n inferredType: inference.inferredType,\n priority: inference.priority,\n topLevel: inference.topLevel,\n isFixed: inference.isFixed,\n impliedArity: inference.impliedArity\n };\n }\n function cloneInferredPartOfContext(context) {\n const inferences = filter(context.inferences, hasInferenceCandidates);\n return inferences.length ? createInferenceContextWorker(map(inferences, cloneInferenceInfo), context.signature, context.flags, context.compareTypes) : void 0;\n }\n function getMapperFromContext(context) {\n return context && context.mapper;\n }\n function couldContainTypeVariables(type) {\n const objectFlags = getObjectFlags(type);\n if (objectFlags & 524288 /* CouldContainTypeVariablesComputed */) {\n return !!(objectFlags & 1048576 /* CouldContainTypeVariables */);\n }\n const result = !!(type.flags & 465829888 /* Instantiable */ || type.flags & 524288 /* Object */ && !isNonGenericTopLevelType(type) && (objectFlags & 4 /* Reference */ && (type.node || some(getTypeArguments(type), couldContainTypeVariables)) || objectFlags & 16 /* Anonymous */ && type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && type.symbol.declarations || objectFlags & (32 /* Mapped */ | 1024 /* ReverseMapped */ | 4194304 /* ObjectRestType */ | 8388608 /* InstantiationExpressionType */)) || type.flags & 3145728 /* UnionOrIntersection */ && !(type.flags & 1024 /* EnumLiteral */) && !isNonGenericTopLevelType(type) && some(type.types, couldContainTypeVariables));\n if (type.flags & 3899393 /* ObjectFlagsType */) {\n type.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (result ? 1048576 /* CouldContainTypeVariables */ : 0);\n }\n return result;\n }\n function isNonGenericTopLevelType(type) {\n if (type.aliasSymbol && !type.aliasTypeArguments) {\n const declaration = getDeclarationOfKind(type.aliasSymbol, 266 /* TypeAliasDeclaration */);\n return !!(declaration && findAncestor(declaration.parent, (n) => n.kind === 308 /* SourceFile */ ? true : n.kind === 268 /* ModuleDeclaration */ ? false : \"quit\"));\n }\n return false;\n }\n function isTypeParameterAtTopLevel(type, tp, depth = 0) {\n return !!(type === tp || type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, (t) => isTypeParameterAtTopLevel(t, tp, depth)) || depth < 3 && type.flags & 16777216 /* Conditional */ && (isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(type), tp, depth + 1) || isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(type), tp, depth + 1)));\n }\n function isTypeParameterAtTopLevelInReturnType(signature, typeParameter) {\n const typePredicate = getTypePredicateOfSignature(signature);\n return typePredicate ? !!typePredicate.type && isTypeParameterAtTopLevel(typePredicate.type, typeParameter) : isTypeParameterAtTopLevel(getReturnTypeOfSignature(signature), typeParameter);\n }\n function createEmptyObjectTypeFromStringLiteral(type) {\n const members = createSymbolTable();\n forEachType(type, (t) => {\n if (!(t.flags & 128 /* StringLiteral */)) {\n return;\n }\n const name = escapeLeadingUnderscores(t.value);\n const literalProp = createSymbol(4 /* Property */, name);\n literalProp.links.type = anyType;\n if (t.symbol) {\n literalProp.declarations = t.symbol.declarations;\n literalProp.valueDeclaration = t.symbol.valueDeclaration;\n }\n members.set(name, literalProp);\n });\n const indexInfos = type.flags & 4 /* String */ ? [createIndexInfo(\n stringType,\n emptyObjectType,\n /*isReadonly*/\n false\n )] : emptyArray;\n return createAnonymousType(\n /*symbol*/\n void 0,\n members,\n emptyArray,\n emptyArray,\n indexInfos\n );\n }\n function inferTypeForHomomorphicMappedType(source, target, constraint) {\n const cacheKey = source.id + \",\" + target.id + \",\" + constraint.id;\n if (reverseHomomorphicMappedCache.has(cacheKey)) {\n return reverseHomomorphicMappedCache.get(cacheKey);\n }\n const type = createReverseMappedType(source, target, constraint);\n reverseHomomorphicMappedCache.set(cacheKey, type);\n return type;\n }\n function isPartiallyInferableType(type) {\n return !(getObjectFlags(type) & 262144 /* NonInferrableType */) || isObjectLiteralType2(type) && some(getPropertiesOfType(type), (prop) => isPartiallyInferableType(getTypeOfSymbol(prop))) || isTupleType(type) && some(getElementTypes(type), isPartiallyInferableType);\n }\n function createReverseMappedType(source, target, constraint) {\n if (!(getIndexInfoOfType(source, stringType) || getPropertiesOfType(source).length !== 0 && isPartiallyInferableType(source))) {\n return void 0;\n }\n if (isArrayType(source)) {\n const elementType = inferReverseMappedType(getTypeArguments(source)[0], target, constraint);\n if (!elementType) {\n return void 0;\n }\n return createArrayType(elementType, isReadonlyArrayType(source));\n }\n if (isTupleType(source)) {\n const elementTypes = map(getElementTypes(source), (t) => inferReverseMappedType(t, target, constraint));\n if (!every(elementTypes, (t) => !!t)) {\n return void 0;\n }\n const elementFlags = getMappedTypeModifiers(target) & 4 /* IncludeOptional */ ? sameMap(source.target.elementFlags, (f) => f & 2 /* Optional */ ? 1 /* Required */ : f) : source.target.elementFlags;\n return createTupleType(elementTypes, elementFlags, source.target.readonly, source.target.labeledElementDeclarations);\n }\n const reversed = createObjectType(\n 1024 /* ReverseMapped */ | 16 /* Anonymous */,\n /*symbol*/\n void 0\n );\n reversed.source = source;\n reversed.mappedType = target;\n reversed.constraintType = constraint;\n return reversed;\n }\n function getTypeOfReverseMappedSymbol(symbol) {\n const links = getSymbolLinks(symbol);\n if (!links.type) {\n links.type = inferReverseMappedType(symbol.links.propertyType, symbol.links.mappedType, symbol.links.constraintType) || unknownType;\n }\n return links.type;\n }\n function inferReverseMappedTypeWorker(sourceType, target, constraint) {\n const typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target));\n const templateType = getTemplateTypeFromMappedType(target);\n const inference = createInferenceInfo(typeParameter);\n inferTypes([inference], sourceType, templateType);\n return getTypeFromInference(inference) || unknownType;\n }\n function inferReverseMappedType(source, target, constraint) {\n const cacheKey = source.id + \",\" + target.id + \",\" + constraint.id;\n if (reverseMappedCache.has(cacheKey)) {\n return reverseMappedCache.get(cacheKey) || unknownType;\n }\n reverseMappedSourceStack.push(source);\n reverseMappedTargetStack.push(target);\n const saveExpandingFlags = reverseExpandingFlags;\n if (isDeeplyNestedType(source, reverseMappedSourceStack, reverseMappedSourceStack.length, 2)) reverseExpandingFlags |= 1 /* Source */;\n if (isDeeplyNestedType(target, reverseMappedTargetStack, reverseMappedTargetStack.length, 2)) reverseExpandingFlags |= 2 /* Target */;\n let type;\n if (reverseExpandingFlags !== 3 /* Both */) {\n type = inferReverseMappedTypeWorker(source, target, constraint);\n }\n reverseMappedSourceStack.pop();\n reverseMappedTargetStack.pop();\n reverseExpandingFlags = saveExpandingFlags;\n reverseMappedCache.set(cacheKey, type);\n return type;\n }\n function* getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {\n const properties = getPropertiesOfType(target);\n for (const targetProp of properties) {\n if (isStaticPrivateIdentifierProperty(targetProp)) {\n continue;\n }\n if (requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */)) {\n const sourceProp = getPropertyOfType(source, targetProp.escapedName);\n if (!sourceProp) {\n yield targetProp;\n } else if (matchDiscriminantProperties) {\n const targetType = getTypeOfSymbol(targetProp);\n if (targetType.flags & 109472 /* Unit */) {\n const sourceType = getTypeOfSymbol(sourceProp);\n if (!(sourceType.flags & 1 /* Any */ || getRegularTypeOfLiteralType(sourceType) === getRegularTypeOfLiteralType(targetType))) {\n yield targetProp;\n }\n }\n }\n }\n }\n }\n function getUnmatchedProperty(source, target, requireOptionalProperties, matchDiscriminantProperties) {\n return firstOrUndefinedIterator(getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties));\n }\n function tupleTypesDefinitelyUnrelated(source, target) {\n return !(target.target.combinedFlags & 8 /* Variadic */) && target.target.minLength > source.target.minLength || !(target.target.combinedFlags & 12 /* Variable */) && (!!(source.target.combinedFlags & 12 /* Variable */) || target.target.fixedLength < source.target.fixedLength);\n }\n function typesDefinitelyUnrelated(source, target) {\n return isTupleType(source) && isTupleType(target) ? tupleTypesDefinitelyUnrelated(source, target) : !!getUnmatchedProperty(\n source,\n target,\n /*requireOptionalProperties*/\n false,\n /*matchDiscriminantProperties*/\n true\n ) && !!getUnmatchedProperty(\n target,\n source,\n /*requireOptionalProperties*/\n false,\n /*matchDiscriminantProperties*/\n false\n );\n }\n function getTypeFromInference(inference) {\n return inference.candidates ? getUnionType(inference.candidates, 2 /* Subtype */) : inference.contraCandidates ? getIntersectionType(inference.contraCandidates) : void 0;\n }\n function hasSkipDirectInferenceFlag(node) {\n return !!getNodeLinks(node).skipDirectInference;\n }\n function isFromInferenceBlockedSource(type) {\n return !!(type.symbol && some(type.symbol.declarations, hasSkipDirectInferenceFlag));\n }\n function templateLiteralTypesDefinitelyUnrelated(source, target) {\n const sourceStart = source.texts[0];\n const targetStart = target.texts[0];\n const sourceEnd = source.texts[source.texts.length - 1];\n const targetEnd = target.texts[target.texts.length - 1];\n const startLen = Math.min(sourceStart.length, targetStart.length);\n const endLen = Math.min(sourceEnd.length, targetEnd.length);\n return sourceStart.slice(0, startLen) !== targetStart.slice(0, startLen) || sourceEnd.slice(sourceEnd.length - endLen) !== targetEnd.slice(targetEnd.length - endLen);\n }\n function isValidNumberString(s, roundTripOnly) {\n if (s === \"\") return false;\n const n = +s;\n return isFinite(n) && (!roundTripOnly || \"\" + n === s);\n }\n function parseBigIntLiteralType(text) {\n return getBigIntLiteralType(parseValidBigInt(text));\n }\n function isMemberOfStringMapping(source, target) {\n if (target.flags & 1 /* Any */) {\n return true;\n }\n if (target.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n return isTypeAssignableTo(source, target);\n }\n if (target.flags & 268435456 /* StringMapping */) {\n const mappingStack = [];\n while (target.flags & 268435456 /* StringMapping */) {\n mappingStack.unshift(target.symbol);\n target = target.type;\n }\n const mappedSource = reduceLeft(mappingStack, (memo, value) => getStringMappingType(value, memo), source);\n return mappedSource === source && isMemberOfStringMapping(source, target);\n }\n return false;\n }\n function isValidTypeForTemplateLiteralPlaceholder(source, target) {\n if (target.flags & 2097152 /* Intersection */) {\n return every(target.types, (t) => t === emptyTypeLiteralType || isValidTypeForTemplateLiteralPlaceholder(source, t));\n }\n if (target.flags & 4 /* String */ || isTypeAssignableTo(source, target)) {\n return true;\n }\n if (source.flags & 128 /* StringLiteral */) {\n const value = source.value;\n return !!(target.flags & 8 /* Number */ && isValidNumberString(\n value,\n /*roundTripOnly*/\n false\n ) || target.flags & 64 /* BigInt */ && isValidBigIntString(\n value,\n /*roundTripOnly*/\n false\n ) || target.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) && value === target.intrinsicName || target.flags & 268435456 /* StringMapping */ && isMemberOfStringMapping(source, target) || target.flags & 134217728 /* TemplateLiteral */ && isTypeMatchedByTemplateLiteralType(source, target));\n }\n if (source.flags & 134217728 /* TemplateLiteral */) {\n const texts = source.texts;\n return texts.length === 2 && texts[0] === \"\" && texts[1] === \"\" && isTypeAssignableTo(source.types[0], target);\n }\n return false;\n }\n function inferTypesFromTemplateLiteralType(source, target) {\n return source.flags & 128 /* StringLiteral */ ? inferFromLiteralPartsToTemplateLiteral([source.value], emptyArray, target) : source.flags & 134217728 /* TemplateLiteral */ ? arrayIsEqualTo(source.texts, target.texts) ? map(source.types, (s, i) => {\n return isTypeAssignableTo(getBaseConstraintOrType(s), getBaseConstraintOrType(target.types[i])) ? s : getStringLikeTypeForType(s);\n }) : inferFromLiteralPartsToTemplateLiteral(source.texts, source.types, target) : void 0;\n }\n function isTypeMatchedByTemplateLiteralType(source, target) {\n const inferences = inferTypesFromTemplateLiteralType(source, target);\n return !!inferences && every(inferences, (r, i) => isValidTypeForTemplateLiteralPlaceholder(r, target.types[i]));\n }\n function getStringLikeTypeForType(type) {\n return type.flags & (1 /* Any */ | 402653316 /* StringLike */) ? type : getTemplateLiteralType([\"\", \"\"], [type]);\n }\n function inferFromLiteralPartsToTemplateLiteral(sourceTexts, sourceTypes, target) {\n const lastSourceIndex = sourceTexts.length - 1;\n const sourceStartText = sourceTexts[0];\n const sourceEndText = sourceTexts[lastSourceIndex];\n const targetTexts = target.texts;\n const lastTargetIndex = targetTexts.length - 1;\n const targetStartText = targetTexts[0];\n const targetEndText = targetTexts[lastTargetIndex];\n if (lastSourceIndex === 0 && sourceStartText.length < targetStartText.length + targetEndText.length || !sourceStartText.startsWith(targetStartText) || !sourceEndText.endsWith(targetEndText)) return void 0;\n const remainingEndText = sourceEndText.slice(0, sourceEndText.length - targetEndText.length);\n const matches = [];\n let seg = 0;\n let pos = targetStartText.length;\n for (let i = 1; i < lastTargetIndex; i++) {\n const delim = targetTexts[i];\n if (delim.length > 0) {\n let s = seg;\n let p = pos;\n while (true) {\n p = getSourceText(s).indexOf(delim, p);\n if (p >= 0) break;\n s++;\n if (s === sourceTexts.length) return void 0;\n p = 0;\n }\n addMatch(s, p);\n pos += delim.length;\n } else if (pos < getSourceText(seg).length) {\n addMatch(seg, pos + 1);\n } else if (seg < lastSourceIndex) {\n addMatch(seg + 1, 0);\n } else {\n return void 0;\n }\n }\n addMatch(lastSourceIndex, getSourceText(lastSourceIndex).length);\n return matches;\n function getSourceText(index) {\n return index < lastSourceIndex ? sourceTexts[index] : remainingEndText;\n }\n function addMatch(s, p) {\n const matchType = s === seg ? getStringLiteralType(getSourceText(s).slice(pos, p)) : getTemplateLiteralType(\n [sourceTexts[seg].slice(pos), ...sourceTexts.slice(seg + 1, s), getSourceText(s).slice(0, p)],\n sourceTypes.slice(seg, s)\n );\n matches.push(matchType);\n seg = s;\n pos = p;\n }\n }\n function inferTypes(inferences, originalSource, originalTarget, priority = 0 /* None */, contravariant = false) {\n let bivariant = false;\n let propagationType;\n let inferencePriority = 2048 /* MaxValue */;\n let visited;\n let sourceStack;\n let targetStack;\n let expandingFlags = 0 /* None */;\n inferFromTypes(originalSource, originalTarget);\n function inferFromTypes(source, target) {\n if (!couldContainTypeVariables(target) || isNoInferType(target)) {\n return;\n }\n if (source === wildcardType || source === blockedStringType) {\n const savePropagationType = propagationType;\n propagationType = source;\n inferFromTypes(target, target);\n propagationType = savePropagationType;\n return;\n }\n if (source.aliasSymbol && source.aliasSymbol === target.aliasSymbol) {\n if (source.aliasTypeArguments) {\n const params = getSymbolLinks(source.aliasSymbol).typeParameters;\n const minParams = getMinTypeArgumentCount(params);\n const sourceTypes = fillMissingTypeArguments(source.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration));\n const targetTypes = fillMissingTypeArguments(target.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration));\n inferFromTypeArguments(sourceTypes, targetTypes, getAliasVariances(source.aliasSymbol));\n }\n return;\n }\n if (source === target && source.flags & 3145728 /* UnionOrIntersection */) {\n for (const t of source.types) {\n inferFromTypes(t, t);\n }\n return;\n }\n if (target.flags & 1048576 /* Union */) {\n const [tempSources, tempTargets] = inferFromMatchingTypes(source.flags & 1048576 /* Union */ ? source.types : [source], target.types, isTypeOrBaseIdenticalTo);\n const [sources, targets] = inferFromMatchingTypes(tempSources, tempTargets, isTypeCloselyMatchedBy);\n if (targets.length === 0) {\n return;\n }\n target = getUnionType(targets);\n if (sources.length === 0) {\n inferWithPriority(source, target, 1 /* NakedTypeVariable */);\n return;\n }\n source = getUnionType(sources);\n } else if (target.flags & 2097152 /* Intersection */ && !every(target.types, isNonGenericObjectType)) {\n if (!(source.flags & 1048576 /* Union */)) {\n const [sources, targets] = inferFromMatchingTypes(source.flags & 2097152 /* Intersection */ ? source.types : [source], target.types, isTypeIdenticalTo);\n if (sources.length === 0 || targets.length === 0) {\n return;\n }\n source = getIntersectionType(sources);\n target = getIntersectionType(targets);\n }\n }\n if (target.flags & (8388608 /* IndexedAccess */ | 33554432 /* Substitution */)) {\n if (isNoInferType(target)) {\n return;\n }\n target = getActualTypeVariable(target);\n }\n if (target.flags & 8650752 /* TypeVariable */) {\n if (isFromInferenceBlockedSource(source)) {\n return;\n }\n const inference = getInferenceInfoForType(target);\n if (inference) {\n if (getObjectFlags(source) & 262144 /* NonInferrableType */ || source === nonInferrableAnyType) {\n return;\n }\n if (!inference.isFixed) {\n const candidate = propagationType || source;\n if (candidate === blockedStringType) {\n return;\n }\n if (inference.priority === void 0 || priority < inference.priority) {\n inference.candidates = void 0;\n inference.contraCandidates = void 0;\n inference.topLevel = true;\n inference.priority = priority;\n }\n if (priority === inference.priority) {\n if (contravariant && !bivariant) {\n if (!contains(inference.contraCandidates, candidate)) {\n inference.contraCandidates = append(inference.contraCandidates, candidate);\n clearCachedInferences(inferences);\n }\n } else if (!contains(inference.candidates, candidate)) {\n inference.candidates = append(inference.candidates, candidate);\n clearCachedInferences(inferences);\n }\n }\n if (!(priority & 128 /* ReturnType */) && target.flags & 262144 /* TypeParameter */ && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {\n inference.topLevel = false;\n clearCachedInferences(inferences);\n }\n }\n inferencePriority = Math.min(inferencePriority, priority);\n return;\n }\n const simplified = getSimplifiedType(\n target,\n /*writing*/\n false\n );\n if (simplified !== target) {\n inferFromTypes(source, simplified);\n } else if (target.flags & 8388608 /* IndexedAccess */) {\n const indexType = getSimplifiedType(\n target.indexType,\n /*writing*/\n false\n );\n if (indexType.flags & 465829888 /* Instantiable */) {\n const simplified2 = distributeIndexOverObjectType(\n getSimplifiedType(\n target.objectType,\n /*writing*/\n false\n ),\n indexType,\n /*writing*/\n false\n );\n if (simplified2 && simplified2 !== target) {\n inferFromTypes(source, simplified2);\n }\n }\n }\n }\n if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target)) && !(source.node && target.node)) {\n inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));\n } else if (source.flags & 4194304 /* Index */ && target.flags & 4194304 /* Index */) {\n inferFromContravariantTypes(source.type, target.type);\n } else if ((isLiteralType(source) || source.flags & 4 /* String */) && target.flags & 4194304 /* Index */) {\n const empty = createEmptyObjectTypeFromStringLiteral(source);\n inferFromContravariantTypesWithPriority(empty, target.type, 256 /* LiteralKeyof */);\n } else if (source.flags & 8388608 /* IndexedAccess */ && target.flags & 8388608 /* IndexedAccess */) {\n inferFromTypes(source.objectType, target.objectType);\n inferFromTypes(source.indexType, target.indexType);\n } else if (source.flags & 268435456 /* StringMapping */ && target.flags & 268435456 /* StringMapping */) {\n if (source.symbol === target.symbol) {\n inferFromTypes(source.type, target.type);\n }\n } else if (source.flags & 33554432 /* Substitution */) {\n inferFromTypes(source.baseType, target);\n inferWithPriority(getSubstitutionIntersection(source), target, 4 /* SubstituteSource */);\n } else if (target.flags & 16777216 /* Conditional */) {\n invokeOnce(source, target, inferToConditionalType);\n } else if (target.flags & 3145728 /* UnionOrIntersection */) {\n inferToMultipleTypes(source, target.types, target.flags);\n } else if (source.flags & 1048576 /* Union */) {\n const sourceTypes = source.types;\n for (const sourceType of sourceTypes) {\n inferFromTypes(sourceType, target);\n }\n } else if (target.flags & 134217728 /* TemplateLiteral */) {\n inferToTemplateLiteralType(source, target);\n } else {\n source = getReducedType(source);\n if (isGenericMappedType(source) && isGenericMappedType(target)) {\n invokeOnce(source, target, inferFromGenericMappedTypes);\n }\n if (!(priority & 512 /* NoConstraints */ && source.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */))) {\n const apparentSource = getApparentType(source);\n if (apparentSource !== source && !(apparentSource.flags & (524288 /* Object */ | 2097152 /* Intersection */))) {\n return inferFromTypes(apparentSource, target);\n }\n source = apparentSource;\n }\n if (source.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n invokeOnce(source, target, inferFromObjectTypes);\n }\n }\n }\n function inferWithPriority(source, target, newPriority) {\n const savePriority = priority;\n priority |= newPriority;\n inferFromTypes(source, target);\n priority = savePriority;\n }\n function inferFromContravariantTypesWithPriority(source, target, newPriority) {\n const savePriority = priority;\n priority |= newPriority;\n inferFromContravariantTypes(source, target);\n priority = savePriority;\n }\n function inferToMultipleTypesWithPriority(source, targets, targetFlags, newPriority) {\n const savePriority = priority;\n priority |= newPriority;\n inferToMultipleTypes(source, targets, targetFlags);\n priority = savePriority;\n }\n function invokeOnce(source, target, action) {\n const key = source.id + \",\" + target.id;\n const status = visited && visited.get(key);\n if (status !== void 0) {\n inferencePriority = Math.min(inferencePriority, status);\n return;\n }\n (visited || (visited = /* @__PURE__ */ new Map())).set(key, -1 /* Circularity */);\n const saveInferencePriority = inferencePriority;\n inferencePriority = 2048 /* MaxValue */;\n const saveExpandingFlags = expandingFlags;\n (sourceStack ?? (sourceStack = [])).push(source);\n (targetStack ?? (targetStack = [])).push(target);\n if (isDeeplyNestedType(source, sourceStack, sourceStack.length, 2)) expandingFlags |= 1 /* Source */;\n if (isDeeplyNestedType(target, targetStack, targetStack.length, 2)) expandingFlags |= 2 /* Target */;\n if (expandingFlags !== 3 /* Both */) {\n action(source, target);\n } else {\n inferencePriority = -1 /* Circularity */;\n }\n targetStack.pop();\n sourceStack.pop();\n expandingFlags = saveExpandingFlags;\n visited.set(key, inferencePriority);\n inferencePriority = Math.min(inferencePriority, saveInferencePriority);\n }\n function inferFromMatchingTypes(sources, targets, matches) {\n let matchedSources;\n let matchedTargets;\n for (const t of targets) {\n for (const s of sources) {\n if (matches(s, t)) {\n inferFromTypes(s, t);\n matchedSources = appendIfUnique(matchedSources, s);\n matchedTargets = appendIfUnique(matchedTargets, t);\n }\n }\n }\n return [\n matchedSources ? filter(sources, (t) => !contains(matchedSources, t)) : sources,\n matchedTargets ? filter(targets, (t) => !contains(matchedTargets, t)) : targets\n ];\n }\n function inferFromTypeArguments(sourceTypes, targetTypes, variances) {\n const count = sourceTypes.length < targetTypes.length ? sourceTypes.length : targetTypes.length;\n for (let i = 0; i < count; i++) {\n if (i < variances.length && (variances[i] & 7 /* VarianceMask */) === 2 /* Contravariant */) {\n inferFromContravariantTypes(sourceTypes[i], targetTypes[i]);\n } else {\n inferFromTypes(sourceTypes[i], targetTypes[i]);\n }\n }\n }\n function inferFromContravariantTypes(source, target) {\n contravariant = !contravariant;\n inferFromTypes(source, target);\n contravariant = !contravariant;\n }\n function inferFromContravariantTypesIfStrictFunctionTypes(source, target) {\n if (strictFunctionTypes || priority & 1024 /* AlwaysStrict */) {\n inferFromContravariantTypes(source, target);\n } else {\n inferFromTypes(source, target);\n }\n }\n function getInferenceInfoForType(type) {\n if (type.flags & 8650752 /* TypeVariable */) {\n for (const inference of inferences) {\n if (type === inference.typeParameter) {\n return inference;\n }\n }\n }\n return void 0;\n }\n function getSingleTypeVariableFromIntersectionTypes(types) {\n let typeVariable;\n for (const type of types) {\n const t = type.flags & 2097152 /* Intersection */ && find(type.types, (t2) => !!getInferenceInfoForType(t2));\n if (!t || typeVariable && t !== typeVariable) {\n return void 0;\n }\n typeVariable = t;\n }\n return typeVariable;\n }\n function inferToMultipleTypes(source, targets, targetFlags) {\n let typeVariableCount = 0;\n if (targetFlags & 1048576 /* Union */) {\n let nakedTypeVariable;\n const sources = source.flags & 1048576 /* Union */ ? source.types : [source];\n const matched = new Array(sources.length);\n let inferenceCircularity = false;\n for (const t of targets) {\n if (getInferenceInfoForType(t)) {\n nakedTypeVariable = t;\n typeVariableCount++;\n } else {\n for (let i = 0; i < sources.length; i++) {\n const saveInferencePriority = inferencePriority;\n inferencePriority = 2048 /* MaxValue */;\n inferFromTypes(sources[i], t);\n if (inferencePriority === priority) matched[i] = true;\n inferenceCircularity = inferenceCircularity || inferencePriority === -1 /* Circularity */;\n inferencePriority = Math.min(inferencePriority, saveInferencePriority);\n }\n }\n }\n if (typeVariableCount === 0) {\n const intersectionTypeVariable = getSingleTypeVariableFromIntersectionTypes(targets);\n if (intersectionTypeVariable) {\n inferWithPriority(source, intersectionTypeVariable, 1 /* NakedTypeVariable */);\n }\n return;\n }\n if (typeVariableCount === 1 && !inferenceCircularity) {\n const unmatched = flatMap(sources, (s, i) => matched[i] ? void 0 : s);\n if (unmatched.length) {\n inferFromTypes(getUnionType(unmatched), nakedTypeVariable);\n return;\n }\n }\n } else {\n for (const t of targets) {\n if (getInferenceInfoForType(t)) {\n typeVariableCount++;\n } else {\n inferFromTypes(source, t);\n }\n }\n }\n if (targetFlags & 2097152 /* Intersection */ ? typeVariableCount === 1 : typeVariableCount > 0) {\n for (const t of targets) {\n if (getInferenceInfoForType(t)) {\n inferWithPriority(source, t, 1 /* NakedTypeVariable */);\n }\n }\n }\n }\n function inferToMappedType(source, target, constraintType) {\n if (constraintType.flags & 1048576 /* Union */ || constraintType.flags & 2097152 /* Intersection */) {\n let result = false;\n for (const type of constraintType.types) {\n result = inferToMappedType(source, target, type) || result;\n }\n return result;\n }\n if (constraintType.flags & 4194304 /* Index */) {\n const inference = getInferenceInfoForType(constraintType.type);\n if (inference && !inference.isFixed && !isFromInferenceBlockedSource(source)) {\n const inferredType = inferTypeForHomomorphicMappedType(source, target, constraintType);\n if (inferredType) {\n inferWithPriority(\n inferredType,\n inference.typeParameter,\n getObjectFlags(source) & 262144 /* NonInferrableType */ ? 16 /* PartialHomomorphicMappedType */ : 8 /* HomomorphicMappedType */\n );\n }\n }\n return true;\n }\n if (constraintType.flags & 262144 /* TypeParameter */) {\n inferWithPriority(getIndexType(\n source,\n /*indexFlags*/\n !!source.pattern ? 2 /* NoIndexSignatures */ : 0 /* None */\n ), constraintType, 32 /* MappedTypeConstraint */);\n const extendedConstraint = getConstraintOfType(constraintType);\n if (extendedConstraint && inferToMappedType(source, target, extendedConstraint)) {\n return true;\n }\n const propTypes = map(getPropertiesOfType(source), getTypeOfSymbol);\n const indexTypes = map(getIndexInfosOfType(source), (info) => info !== enumNumberIndexInfo ? info.type : neverType);\n inferFromTypes(getUnionType(concatenate(propTypes, indexTypes)), getTemplateTypeFromMappedType(target));\n return true;\n }\n return false;\n }\n function inferToConditionalType(source, target) {\n if (source.flags & 16777216 /* Conditional */) {\n inferFromTypes(source.checkType, target.checkType);\n inferFromTypes(source.extendsType, target.extendsType);\n inferFromTypes(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target));\n inferFromTypes(getFalseTypeFromConditionalType(source), getFalseTypeFromConditionalType(target));\n } else {\n const targetTypes = [getTrueTypeFromConditionalType(target), getFalseTypeFromConditionalType(target)];\n inferToMultipleTypesWithPriority(source, targetTypes, target.flags, contravariant ? 64 /* ContravariantConditional */ : 0);\n }\n }\n function inferToTemplateLiteralType(source, target) {\n const matches = inferTypesFromTemplateLiteralType(source, target);\n const types = target.types;\n if (matches || every(target.texts, (s) => s.length === 0)) {\n for (let i = 0; i < types.length; i++) {\n const source2 = matches ? matches[i] : neverType;\n const target2 = types[i];\n if (source2.flags & 128 /* StringLiteral */ && target2.flags & 8650752 /* TypeVariable */) {\n const inferenceContext = getInferenceInfoForType(target2);\n const constraint = inferenceContext ? getBaseConstraintOfType(inferenceContext.typeParameter) : void 0;\n if (constraint && !isTypeAny(constraint)) {\n const constraintTypes = constraint.flags & 1048576 /* Union */ ? constraint.types : [constraint];\n let allTypeFlags = reduceLeft(constraintTypes, (flags, t) => flags | t.flags, 0);\n if (!(allTypeFlags & 4 /* String */)) {\n const str = source2.value;\n if (allTypeFlags & 296 /* NumberLike */ && !isValidNumberString(\n str,\n /*roundTripOnly*/\n true\n )) {\n allTypeFlags &= ~296 /* NumberLike */;\n }\n if (allTypeFlags & 2112 /* BigIntLike */ && !isValidBigIntString(\n str,\n /*roundTripOnly*/\n true\n )) {\n allTypeFlags &= ~2112 /* BigIntLike */;\n }\n const matchingType = reduceLeft(constraintTypes, (left, right) => !(right.flags & allTypeFlags) ? left : left.flags & 4 /* String */ ? left : right.flags & 4 /* String */ ? source2 : left.flags & 134217728 /* TemplateLiteral */ ? left : right.flags & 134217728 /* TemplateLiteral */ && isTypeMatchedByTemplateLiteralType(source2, right) ? source2 : left.flags & 268435456 /* StringMapping */ ? left : right.flags & 268435456 /* StringMapping */ && str === applyStringMapping(right.symbol, str) ? source2 : left.flags & 128 /* StringLiteral */ ? left : right.flags & 128 /* StringLiteral */ && right.value === str ? right : left.flags & 8 /* Number */ ? left : right.flags & 8 /* Number */ ? getNumberLiteralType(+str) : left.flags & 32 /* Enum */ ? left : right.flags & 32 /* Enum */ ? getNumberLiteralType(+str) : left.flags & 256 /* NumberLiteral */ ? left : right.flags & 256 /* NumberLiteral */ && right.value === +str ? right : left.flags & 64 /* BigInt */ ? left : right.flags & 64 /* BigInt */ ? parseBigIntLiteralType(str) : left.flags & 2048 /* BigIntLiteral */ ? left : right.flags & 2048 /* BigIntLiteral */ && pseudoBigIntToString(right.value) === str ? right : left.flags & 16 /* Boolean */ ? left : right.flags & 16 /* Boolean */ ? str === \"true\" ? trueType : str === \"false\" ? falseType : booleanType : left.flags & 512 /* BooleanLiteral */ ? left : right.flags & 512 /* BooleanLiteral */ && right.intrinsicName === str ? right : left.flags & 32768 /* Undefined */ ? left : right.flags & 32768 /* Undefined */ && right.intrinsicName === str ? right : left.flags & 65536 /* Null */ ? left : right.flags & 65536 /* Null */ && right.intrinsicName === str ? right : left, neverType);\n if (!(matchingType.flags & 131072 /* Never */)) {\n inferFromTypes(matchingType, target2);\n continue;\n }\n }\n }\n }\n inferFromTypes(source2, target2);\n }\n }\n }\n function inferFromGenericMappedTypes(source, target) {\n inferFromTypes(getConstraintTypeFromMappedType(source), getConstraintTypeFromMappedType(target));\n inferFromTypes(getTemplateTypeFromMappedType(source), getTemplateTypeFromMappedType(target));\n const sourceNameType = getNameTypeFromMappedType(source);\n const targetNameType = getNameTypeFromMappedType(target);\n if (sourceNameType && targetNameType) inferFromTypes(sourceNameType, targetNameType);\n }\n function inferFromObjectTypes(source, target) {\n var _a, _b;\n if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target))) {\n inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));\n return;\n }\n if (isGenericMappedType(source) && isGenericMappedType(target)) {\n inferFromGenericMappedTypes(source, target);\n }\n if (getObjectFlags(target) & 32 /* Mapped */ && !target.declaration.nameType) {\n const constraintType = getConstraintTypeFromMappedType(target);\n if (inferToMappedType(source, target, constraintType)) {\n return;\n }\n }\n if (!typesDefinitelyUnrelated(source, target)) {\n if (isArrayOrTupleType(source)) {\n if (isTupleType(target)) {\n const sourceArity = getTypeReferenceArity(source);\n const targetArity = getTypeReferenceArity(target);\n const elementTypes = getTypeArguments(target);\n const elementFlags = target.target.elementFlags;\n if (isTupleType(source) && isTupleTypeStructureMatching(source, target)) {\n for (let i = 0; i < targetArity; i++) {\n inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);\n }\n return;\n }\n const startLength = isTupleType(source) ? Math.min(source.target.fixedLength, target.target.fixedLength) : 0;\n const endLength = Math.min(isTupleType(source) ? getEndElementCount(source.target, 3 /* Fixed */) : 0, target.target.combinedFlags & 12 /* Variable */ ? getEndElementCount(target.target, 3 /* Fixed */) : 0);\n for (let i = 0; i < startLength; i++) {\n inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);\n }\n if (!isTupleType(source) || sourceArity - startLength - endLength === 1 && source.target.elementFlags[startLength] & 4 /* Rest */) {\n const restType = getTypeArguments(source)[startLength];\n for (let i = startLength; i < targetArity - endLength; i++) {\n inferFromTypes(elementFlags[i] & 8 /* Variadic */ ? createArrayType(restType) : restType, elementTypes[i]);\n }\n } else {\n const middleLength = targetArity - startLength - endLength;\n if (middleLength === 2) {\n if (elementFlags[startLength] & elementFlags[startLength + 1] & 8 /* Variadic */) {\n const targetInfo = getInferenceInfoForType(elementTypes[startLength]);\n if (targetInfo && targetInfo.impliedArity !== void 0) {\n inferFromTypes(sliceTupleType(source, startLength, endLength + sourceArity - targetInfo.impliedArity), elementTypes[startLength]);\n inferFromTypes(sliceTupleType(source, startLength + targetInfo.impliedArity, endLength), elementTypes[startLength + 1]);\n }\n } else if (elementFlags[startLength] & 8 /* Variadic */ && elementFlags[startLength + 1] & 4 /* Rest */) {\n const param = (_a = getInferenceInfoForType(elementTypes[startLength])) == null ? void 0 : _a.typeParameter;\n const constraint = param && getBaseConstraintOfType(param);\n if (constraint && isTupleType(constraint) && !(constraint.target.combinedFlags & 12 /* Variable */)) {\n const impliedArity = constraint.target.fixedLength;\n inferFromTypes(sliceTupleType(source, startLength, sourceArity - (startLength + impliedArity)), elementTypes[startLength]);\n inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength + impliedArity, endLength), elementTypes[startLength + 1]);\n }\n } else if (elementFlags[startLength] & 4 /* Rest */ && elementFlags[startLength + 1] & 8 /* Variadic */) {\n const param = (_b = getInferenceInfoForType(elementTypes[startLength + 1])) == null ? void 0 : _b.typeParameter;\n const constraint = param && getBaseConstraintOfType(param);\n if (constraint && isTupleType(constraint) && !(constraint.target.combinedFlags & 12 /* Variable */)) {\n const impliedArity = constraint.target.fixedLength;\n const endIndex = sourceArity - getEndElementCount(target.target, 3 /* Fixed */);\n const startIndex = endIndex - impliedArity;\n const trailingSlice = createTupleType(\n getTypeArguments(source).slice(startIndex, endIndex),\n source.target.elementFlags.slice(startIndex, endIndex),\n /*readonly*/\n false,\n source.target.labeledElementDeclarations && source.target.labeledElementDeclarations.slice(startIndex, endIndex)\n );\n inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength, endLength + impliedArity), elementTypes[startLength]);\n inferFromTypes(trailingSlice, elementTypes[startLength + 1]);\n }\n }\n } else if (middleLength === 1 && elementFlags[startLength] & 8 /* Variadic */) {\n const endsInOptional = target.target.elementFlags[targetArity - 1] & 2 /* Optional */;\n const sourceSlice = sliceTupleType(source, startLength, endLength);\n inferWithPriority(sourceSlice, elementTypes[startLength], endsInOptional ? 2 /* SpeculativeTuple */ : 0);\n } else if (middleLength === 1 && elementFlags[startLength] & 4 /* Rest */) {\n const restType = getElementTypeOfSliceOfTupleType(source, startLength, endLength);\n if (restType) {\n inferFromTypes(restType, elementTypes[startLength]);\n }\n }\n }\n for (let i = 0; i < endLength; i++) {\n inferFromTypes(getTypeArguments(source)[sourceArity - i - 1], elementTypes[targetArity - i - 1]);\n }\n return;\n }\n if (isArrayType(target)) {\n inferFromIndexTypes(source, target);\n return;\n }\n }\n inferFromProperties(source, target);\n inferFromSignatures(source, target, 0 /* Call */);\n inferFromSignatures(source, target, 1 /* Construct */);\n inferFromIndexTypes(source, target);\n }\n }\n function inferFromProperties(source, target) {\n const properties = getPropertiesOfObjectType(target);\n for (const targetProp of properties) {\n const sourceProp = getPropertyOfType(source, targetProp.escapedName);\n if (sourceProp && !some(sourceProp.declarations, hasSkipDirectInferenceFlag)) {\n inferFromTypes(\n removeMissingType(getTypeOfSymbol(sourceProp), !!(sourceProp.flags & 16777216 /* Optional */)),\n removeMissingType(getTypeOfSymbol(targetProp), !!(targetProp.flags & 16777216 /* Optional */))\n );\n }\n }\n }\n function inferFromSignatures(source, target, kind) {\n const sourceSignatures = getSignaturesOfType(source, kind);\n const sourceLen = sourceSignatures.length;\n if (sourceLen > 0) {\n const targetSignatures = getSignaturesOfType(target, kind);\n const targetLen = targetSignatures.length;\n for (let i = 0; i < targetLen; i++) {\n const sourceIndex = Math.max(sourceLen - targetLen + i, 0);\n inferFromSignature(getBaseSignature(sourceSignatures[sourceIndex]), getErasedSignature(targetSignatures[i]));\n }\n }\n }\n function inferFromSignature(source, target) {\n if (!(source.flags & 64 /* IsNonInferrable */)) {\n const saveBivariant = bivariant;\n const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;\n bivariant = bivariant || kind === 175 /* MethodDeclaration */ || kind === 174 /* MethodSignature */ || kind === 177 /* Constructor */;\n applyToParameterTypes(source, target, inferFromContravariantTypesIfStrictFunctionTypes);\n bivariant = saveBivariant;\n }\n applyToReturnTypes(source, target, inferFromTypes);\n }\n function inferFromIndexTypes(source, target) {\n const priority2 = getObjectFlags(source) & getObjectFlags(target) & 32 /* Mapped */ ? 8 /* HomomorphicMappedType */ : 0;\n const indexInfos = getIndexInfosOfType(target);\n if (isObjectTypeWithInferableIndex(source)) {\n for (const targetInfo of indexInfos) {\n const propTypes = [];\n for (const prop of getPropertiesOfType(source)) {\n if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), targetInfo.keyType)) {\n const propType = getTypeOfSymbol(prop);\n propTypes.push(prop.flags & 16777216 /* Optional */ ? removeMissingOrUndefinedType(propType) : propType);\n }\n }\n for (const info of getIndexInfosOfType(source)) {\n if (isApplicableIndexType(info.keyType, targetInfo.keyType)) {\n propTypes.push(info.type);\n }\n }\n if (propTypes.length) {\n inferWithPriority(getUnionType(propTypes), targetInfo.type, priority2);\n }\n }\n }\n for (const targetInfo of indexInfos) {\n const sourceInfo = getApplicableIndexInfo(source, targetInfo.keyType);\n if (sourceInfo) {\n inferWithPriority(sourceInfo.type, targetInfo.type, priority2);\n }\n }\n }\n }\n function isTypeOrBaseIdenticalTo(s, t) {\n return t === missingType ? s === t : isTypeIdenticalTo(s, t) || !!(t.flags & 4 /* String */ && s.flags & 128 /* StringLiteral */ || t.flags & 8 /* Number */ && s.flags & 256 /* NumberLiteral */);\n }\n function isTypeCloselyMatchedBy(s, t) {\n return !!(s.flags & 524288 /* Object */ && t.flags & 524288 /* Object */ && s.symbol && s.symbol === t.symbol || s.aliasSymbol && s.aliasTypeArguments && s.aliasSymbol === t.aliasSymbol);\n }\n function hasPrimitiveConstraint(type) {\n const constraint = getConstraintOfTypeParameter(type);\n return !!constraint && maybeTypeOfKind(constraint.flags & 16777216 /* Conditional */ ? getDefaultConstraintOfConditionalType(constraint) : constraint, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */);\n }\n function isObjectLiteralType2(type) {\n return !!(getObjectFlags(type) & 128 /* ObjectLiteral */);\n }\n function isObjectOrArrayLiteralType(type) {\n return !!(getObjectFlags(type) & (128 /* ObjectLiteral */ | 16384 /* ArrayLiteral */));\n }\n function unionObjectAndArrayLiteralCandidates(candidates) {\n if (candidates.length > 1) {\n const objectLiterals = filter(candidates, isObjectOrArrayLiteralType);\n if (objectLiterals.length) {\n const literalsType = getUnionType(objectLiterals, 2 /* Subtype */);\n return concatenate(filter(candidates, (t) => !isObjectOrArrayLiteralType(t)), [literalsType]);\n }\n }\n return candidates;\n }\n function getContravariantInference(inference) {\n return inference.priority & 416 /* PriorityImpliesCombination */ ? getIntersectionType(inference.contraCandidates) : getCommonSubtype(inference.contraCandidates);\n }\n function getCovariantInference(inference, signature) {\n const candidates = unionObjectAndArrayLiteralCandidates(inference.candidates);\n const primitiveConstraint = hasPrimitiveConstraint(inference.typeParameter) || isConstTypeVariable(inference.typeParameter);\n const widenLiteralTypes = !primitiveConstraint && inference.topLevel && (inference.isFixed || !isTypeParameterAtTopLevelInReturnType(signature, inference.typeParameter));\n const baseCandidates = primitiveConstraint ? sameMap(candidates, getRegularTypeOfLiteralType) : widenLiteralTypes ? sameMap(candidates, getWidenedLiteralType) : candidates;\n const unwidenedType = inference.priority & 416 /* PriorityImpliesCombination */ ? getUnionType(baseCandidates, 2 /* Subtype */) : getCommonSupertype(baseCandidates);\n return getWidenedType(unwidenedType);\n }\n function getInferredType(context, index) {\n const inference = context.inferences[index];\n if (!inference.inferredType) {\n let inferredType;\n let fallbackType;\n if (context.signature) {\n const inferredCovariantType = inference.candidates ? getCovariantInference(inference, context.signature) : void 0;\n const inferredContravariantType = inference.contraCandidates ? getContravariantInference(inference) : void 0;\n if (inferredCovariantType || inferredContravariantType) {\n const preferCovariantType = inferredCovariantType && (!inferredContravariantType || !(inferredCovariantType.flags & (131072 /* Never */ | 1 /* Any */)) && some(inference.contraCandidates, (t) => isTypeAssignableTo(inferredCovariantType, t)) && every(context.inferences, (other) => other !== inference && getConstraintOfTypeParameter(other.typeParameter) !== inference.typeParameter || every(other.candidates, (t) => isTypeAssignableTo(t, inferredCovariantType))));\n inferredType = preferCovariantType ? inferredCovariantType : inferredContravariantType;\n fallbackType = preferCovariantType ? inferredContravariantType : inferredCovariantType;\n } else if (context.flags & 1 /* NoDefault */) {\n inferredType = silentNeverType;\n } else {\n const defaultType = getDefaultFromTypeParameter(inference.typeParameter);\n if (defaultType) {\n inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, index), context.nonFixingMapper));\n }\n }\n } else {\n inferredType = getTypeFromInference(inference);\n }\n inference.inferredType = inferredType || getDefaultTypeArgumentType(!!(context.flags & 2 /* AnyDefault */));\n const constraint = getConstraintOfTypeParameter(inference.typeParameter);\n if (constraint) {\n const instantiatedConstraint = instantiateType(constraint, context.nonFixingMapper);\n if (!inferredType || !context.compareTypes(inferredType, getTypeWithThisArgument(instantiatedConstraint, inferredType))) {\n inference.inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint;\n }\n }\n clearActiveMapperCaches();\n }\n return inference.inferredType;\n }\n function getDefaultTypeArgumentType(isInJavaScriptFile) {\n return isInJavaScriptFile ? anyType : unknownType;\n }\n function getInferredTypes(context) {\n const result = [];\n for (let i = 0; i < context.inferences.length; i++) {\n result.push(getInferredType(context, i));\n }\n return result;\n }\n function getCannotFindNameDiagnosticForName(node) {\n switch (node.escapedText) {\n case \"document\":\n case \"console\":\n return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;\n case \"$\":\n return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery;\n case \"describe\":\n case \"suite\":\n case \"it\":\n case \"test\":\n return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha;\n case \"process\":\n case \"require\":\n case \"Buffer\":\n case \"module\":\n return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode;\n case \"Bun\":\n return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun;\n case \"Map\":\n case \"Set\":\n case \"Promise\":\n case \"Symbol\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Iterator\":\n case \"AsyncIterator\":\n case \"SharedArrayBuffer\":\n case \"Atomics\":\n case \"AsyncIterable\":\n case \"AsyncIterableIterator\":\n case \"AsyncGenerator\":\n case \"AsyncGeneratorFunction\":\n case \"BigInt\":\n case \"Reflect\":\n case \"BigInt64Array\":\n case \"BigUint64Array\":\n return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later;\n case \"await\":\n if (isCallExpression(node.parent)) {\n return Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function;\n }\n // falls through\n default:\n if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n return Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer;\n } else {\n return Diagnostics.Cannot_find_name_0;\n }\n }\n }\n function getResolvedSymbol(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedSymbol) {\n links.resolvedSymbol = !nodeIsMissing(node) && resolveName(\n node,\n node,\n 111551 /* Value */ | 1048576 /* ExportValue */,\n getCannotFindNameDiagnosticForName(node),\n !isWriteOnlyAccess(node),\n /*excludeGlobals*/\n false\n ) || unknownSymbol;\n }\n return links.resolvedSymbol;\n }\n function isInAmbientOrTypeNode(node) {\n return !!(node.flags & 33554432 /* Ambient */ || findAncestor(node, (n) => isInterfaceDeclaration(n) || isTypeAliasDeclaration(n) || isTypeLiteralNode(n)));\n }\n function getFlowCacheKey(node, declaredType, initialType, flowContainer) {\n switch (node.kind) {\n case 80 /* Identifier */:\n if (!isThisInTypeQuery(node)) {\n const symbol = getResolvedSymbol(node);\n return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : \"-1\"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : void 0;\n }\n // falls through\n case 110 /* ThisKeyword */:\n return `0|${flowContainer ? getNodeId(flowContainer) : \"-1\"}|${getTypeId(declaredType)}|${getTypeId(initialType)}`;\n case 236 /* NonNullExpression */:\n case 218 /* ParenthesizedExpression */:\n return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n case 167 /* QualifiedName */:\n const left = getFlowCacheKey(node.left, declaredType, initialType, flowContainer);\n return left && `${left}.${node.right.escapedText}`;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n const propName = getAccessedPropertyName(node);\n if (propName !== void 0) {\n const key = getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n return key && `${key}.${propName}`;\n }\n if (isElementAccessExpression(node) && isIdentifier(node.argumentExpression)) {\n const symbol = getResolvedSymbol(node.argumentExpression);\n if (isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol)) {\n const key = getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n return key && `${key}.@${getSymbolId(symbol)}`;\n }\n }\n break;\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n return `${getNodeId(node)}#${getTypeId(declaredType)}`;\n }\n return void 0;\n }\n function isMatchingReference(source, target) {\n switch (target.kind) {\n case 218 /* ParenthesizedExpression */:\n case 236 /* NonNullExpression */:\n return isMatchingReference(source, target.expression);\n case 227 /* BinaryExpression */:\n return isAssignmentExpression(target) && isMatchingReference(source, target.left) || isBinaryExpression(target) && target.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source, target.right);\n }\n switch (source.kind) {\n case 237 /* MetaProperty */:\n return target.kind === 237 /* MetaProperty */ && source.keywordToken === target.keywordToken && source.name.escapedText === target.name.escapedText;\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n return isThisInTypeQuery(source) ? target.kind === 110 /* ThisKeyword */ : target.kind === 80 /* Identifier */ && getResolvedSymbol(source) === getResolvedSymbol(target) || (isVariableDeclaration(target) || isBindingElement(target)) && getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(source)) === getSymbolOfDeclaration(target);\n case 110 /* ThisKeyword */:\n return target.kind === 110 /* ThisKeyword */;\n case 108 /* SuperKeyword */:\n return target.kind === 108 /* SuperKeyword */;\n case 236 /* NonNullExpression */:\n case 218 /* ParenthesizedExpression */:\n case 239 /* SatisfiesExpression */:\n return isMatchingReference(source.expression, target);\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n const sourcePropertyName = getAccessedPropertyName(source);\n if (sourcePropertyName !== void 0) {\n const targetPropertyName = isAccessExpression(target) ? getAccessedPropertyName(target) : void 0;\n if (targetPropertyName !== void 0) {\n return targetPropertyName === sourcePropertyName && isMatchingReference(source.expression, target.expression);\n }\n }\n if (isElementAccessExpression(source) && isElementAccessExpression(target) && isIdentifier(source.argumentExpression) && isIdentifier(target.argumentExpression)) {\n const symbol = getResolvedSymbol(source.argumentExpression);\n if (symbol === getResolvedSymbol(target.argumentExpression) && (isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol))) {\n return isMatchingReference(source.expression, target.expression);\n }\n }\n break;\n case 167 /* QualifiedName */:\n return isAccessExpression(target) && source.right.escapedText === getAccessedPropertyName(target) && isMatchingReference(source.left, target.expression);\n case 227 /* BinaryExpression */:\n return isBinaryExpression(source) && source.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source.right, target);\n }\n return false;\n }\n function getAccessedPropertyName(access) {\n if (isPropertyAccessExpression(access)) {\n return access.name.escapedText;\n }\n if (isElementAccessExpression(access)) {\n return tryGetElementAccessExpressionName(access);\n }\n if (isBindingElement(access)) {\n const name = getDestructuringPropertyName(access);\n return name ? escapeLeadingUnderscores(name) : void 0;\n }\n if (isParameter(access)) {\n return \"\" + access.parent.parameters.indexOf(access);\n }\n return void 0;\n }\n function tryGetNameFromType(type) {\n return type.flags & 8192 /* UniqueESSymbol */ ? type.escapedName : type.flags & 384 /* StringOrNumberLiteral */ ? escapeLeadingUnderscores(\"\" + type.value) : void 0;\n }\n function tryGetElementAccessExpressionName(node) {\n return isStringOrNumericLiteralLike(node.argumentExpression) ? escapeLeadingUnderscores(node.argumentExpression.text) : isEntityNameExpression(node.argumentExpression) ? tryGetNameFromEntityNameExpression(node.argumentExpression) : void 0;\n }\n function tryGetNameFromEntityNameExpression(node) {\n const symbol = resolveEntityName(\n node,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n );\n if (!symbol || !(isConstantVariable(symbol) || symbol.flags & 8 /* EnumMember */)) return void 0;\n const declaration = symbol.valueDeclaration;\n if (declaration === void 0) return void 0;\n const type = tryGetTypeFromEffectiveTypeNode(declaration);\n if (type) {\n const name = tryGetNameFromType(type);\n if (name !== void 0) {\n return name;\n }\n }\n if (hasOnlyExpressionInitializer(declaration) && isBlockScopedNameDeclaredBeforeUse(declaration, node)) {\n const initializer = getEffectiveInitializer(declaration);\n if (initializer) {\n const initializerType = isBindingPattern(declaration.parent) ? getTypeForBindingElement(declaration) : getTypeOfExpression(initializer);\n return initializerType && tryGetNameFromType(initializerType);\n }\n if (isEnumMember(declaration)) {\n return getTextOfPropertyName(declaration.name);\n }\n }\n return void 0;\n }\n function containsMatchingReference(source, target) {\n while (isAccessExpression(source)) {\n source = source.expression;\n if (isMatchingReference(source, target)) {\n return true;\n }\n }\n return false;\n }\n function optionalChainContainsReference(source, target) {\n while (isOptionalChain(source)) {\n source = source.expression;\n if (isMatchingReference(source, target)) {\n return true;\n }\n }\n return false;\n }\n function isDiscriminantProperty(type, name) {\n if (type && type.flags & 1048576 /* Union */) {\n const prop = getUnionOrIntersectionProperty(type, name);\n if (prop && getCheckFlags(prop) & 2 /* SyntheticProperty */) {\n if (prop.links.isDiscriminantProperty === void 0) {\n prop.links.isDiscriminantProperty = (prop.links.checkFlags & 192 /* Discriminant */) === 192 /* Discriminant */ && !isGenericType(getTypeOfSymbol(prop));\n }\n return !!prop.links.isDiscriminantProperty;\n }\n }\n return false;\n }\n function findDiscriminantProperties(sourceProperties, target) {\n let result;\n for (const sourceProperty of sourceProperties) {\n if (isDiscriminantProperty(target, sourceProperty.escapedName)) {\n if (result) {\n result.push(sourceProperty);\n continue;\n }\n result = [sourceProperty];\n }\n }\n return result;\n }\n function mapTypesByKeyProperty(types, name) {\n const map2 = /* @__PURE__ */ new Map();\n let count = 0;\n for (const type of types) {\n if (type.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) {\n const discriminant = getTypeOfPropertyOfType(type, name);\n if (discriminant) {\n if (!isLiteralType(discriminant)) {\n return void 0;\n }\n let duplicate = false;\n forEachType(discriminant, (t) => {\n const id = getTypeId(getRegularTypeOfLiteralType(t));\n const existing = map2.get(id);\n if (!existing) {\n map2.set(id, type);\n } else if (existing !== unknownType) {\n map2.set(id, unknownType);\n duplicate = true;\n }\n });\n if (!duplicate) count++;\n }\n }\n }\n return count >= 10 && count * 2 >= types.length ? map2 : void 0;\n }\n function getKeyPropertyName(unionType) {\n const types = unionType.types;\n if (types.length < 10 || getObjectFlags(unionType) & 32768 /* PrimitiveUnion */ || countWhere(types, (t) => !!(t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */))) < 10) {\n return void 0;\n }\n if (unionType.keyPropertyName === void 0) {\n const keyPropertyName = forEach(types, (t) => t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) ? forEach(getPropertiesOfType(t), (p) => isUnitType(getTypeOfSymbol(p)) ? p.escapedName : void 0) : void 0);\n const mapByKeyProperty = keyPropertyName && mapTypesByKeyProperty(types, keyPropertyName);\n unionType.keyPropertyName = mapByKeyProperty ? keyPropertyName : \"\";\n unionType.constituentMap = mapByKeyProperty;\n }\n return unionType.keyPropertyName.length ? unionType.keyPropertyName : void 0;\n }\n function getConstituentTypeForKeyType(unionType, keyType) {\n var _a;\n const result = (_a = unionType.constituentMap) == null ? void 0 : _a.get(getTypeId(getRegularTypeOfLiteralType(keyType)));\n return result !== unknownType ? result : void 0;\n }\n function getMatchingUnionConstituentForType(unionType, type) {\n const keyPropertyName = getKeyPropertyName(unionType);\n const propType = keyPropertyName && getTypeOfPropertyOfType(type, keyPropertyName);\n return propType && getConstituentTypeForKeyType(unionType, propType);\n }\n function getMatchingUnionConstituentForObjectLiteral(unionType, node) {\n const keyPropertyName = getKeyPropertyName(unionType);\n const propNode = keyPropertyName && find(node.properties, (p) => p.symbol && p.kind === 304 /* PropertyAssignment */ && p.symbol.escapedName === keyPropertyName && isPossiblyDiscriminantValue(p.initializer));\n const propType = propNode && getContextFreeTypeOfExpression(propNode.initializer);\n return propType && getConstituentTypeForKeyType(unionType, propType);\n }\n function isOrContainsMatchingReference(source, target) {\n return isMatchingReference(source, target) || containsMatchingReference(source, target);\n }\n function hasMatchingArgument(expression, reference) {\n if (expression.arguments) {\n for (const argument of expression.arguments) {\n if (isOrContainsMatchingReference(reference, argument) || optionalChainContainsReference(argument, reference)) {\n return true;\n }\n }\n }\n if (expression.expression.kind === 212 /* PropertyAccessExpression */ && isOrContainsMatchingReference(reference, expression.expression.expression)) {\n return true;\n }\n return false;\n }\n function getFlowNodeId(flow) {\n if (flow.id <= 0) {\n flow.id = nextFlowId;\n nextFlowId++;\n }\n return flow.id;\n }\n function typeMaybeAssignableTo(source, target) {\n if (!(source.flags & 1048576 /* Union */)) {\n return isTypeAssignableTo(source, target);\n }\n for (const t of source.types) {\n if (isTypeAssignableTo(t, target)) {\n return true;\n }\n }\n return false;\n }\n function getAssignmentReducedType(declaredType, assignedType) {\n if (declaredType === assignedType) {\n return declaredType;\n }\n if (assignedType.flags & 131072 /* Never */) {\n return assignedType;\n }\n const key = `A${getTypeId(declaredType)},${getTypeId(assignedType)}`;\n return getCachedType(key) ?? setCachedType(key, getAssignmentReducedTypeWorker(declaredType, assignedType));\n }\n function getAssignmentReducedTypeWorker(declaredType, assignedType) {\n const filteredType = filterType(declaredType, (t) => typeMaybeAssignableTo(assignedType, t));\n const reducedType = assignedType.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(assignedType) ? mapType(filteredType, getFreshTypeOfLiteralType) : filteredType;\n return isTypeAssignableTo(assignedType, reducedType) ? reducedType : declaredType;\n }\n function isFunctionObjectType(type) {\n if (getObjectFlags(type) & 256 /* EvolvingArray */) {\n return false;\n }\n const resolved = resolveStructuredTypeMembers(type);\n return !!(resolved.callSignatures.length || resolved.constructSignatures.length || resolved.members.get(\"bind\") && isTypeSubtypeOf(type, globalFunctionType));\n }\n function getTypeFacts(type, mask2) {\n return getTypeFactsWorker(type, mask2) & mask2;\n }\n function hasTypeFacts(type, mask2) {\n return getTypeFacts(type, mask2) !== 0;\n }\n function getTypeFactsWorker(type, callerOnlyNeeds) {\n if (type.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */)) {\n type = getBaseConstraintOfType(type) || unknownType;\n }\n const flags = type.flags;\n if (flags & (4 /* String */ | 268435456 /* StringMapping */)) {\n return strictNullChecks ? 16317953 /* StringStrictFacts */ : 16776705 /* StringFacts */;\n }\n if (flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */)) {\n const isEmpty = flags & 128 /* StringLiteral */ && type.value === \"\";\n return strictNullChecks ? isEmpty ? 12123649 /* EmptyStringStrictFacts */ : 7929345 /* NonEmptyStringStrictFacts */ : isEmpty ? 12582401 /* EmptyStringFacts */ : 16776705 /* NonEmptyStringFacts */;\n }\n if (flags & (8 /* Number */ | 32 /* Enum */)) {\n return strictNullChecks ? 16317698 /* NumberStrictFacts */ : 16776450 /* NumberFacts */;\n }\n if (flags & 256 /* NumberLiteral */) {\n const isZero = type.value === 0;\n return strictNullChecks ? isZero ? 12123394 /* ZeroNumberStrictFacts */ : 7929090 /* NonZeroNumberStrictFacts */ : isZero ? 12582146 /* ZeroNumberFacts */ : 16776450 /* NonZeroNumberFacts */;\n }\n if (flags & 64 /* BigInt */) {\n return strictNullChecks ? 16317188 /* BigIntStrictFacts */ : 16775940 /* BigIntFacts */;\n }\n if (flags & 2048 /* BigIntLiteral */) {\n const isZero = isZeroBigInt(type);\n return strictNullChecks ? isZero ? 12122884 /* ZeroBigIntStrictFacts */ : 7928580 /* NonZeroBigIntStrictFacts */ : isZero ? 12581636 /* ZeroBigIntFacts */ : 16775940 /* NonZeroBigIntFacts */;\n }\n if (flags & 16 /* Boolean */) {\n return strictNullChecks ? 16316168 /* BooleanStrictFacts */ : 16774920 /* BooleanFacts */;\n }\n if (flags & 528 /* BooleanLike */) {\n return strictNullChecks ? type === falseType || type === regularFalseType ? 12121864 /* FalseStrictFacts */ : 7927560 /* TrueStrictFacts */ : type === falseType || type === regularFalseType ? 12580616 /* FalseFacts */ : 16774920 /* TrueFacts */;\n }\n if (flags & 524288 /* Object */) {\n const possibleFacts = strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ | 7880640 /* FunctionStrictFacts */ | 7888800 /* ObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ | 16728e3 /* FunctionFacts */ | 16736160 /* ObjectFacts */;\n if ((callerOnlyNeeds & possibleFacts) === 0) {\n return 0;\n }\n return getObjectFlags(type) & 16 /* Anonymous */ && isEmptyObjectType(type) ? strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ : isFunctionObjectType(type) ? strictNullChecks ? 7880640 /* FunctionStrictFacts */ : 16728e3 /* FunctionFacts */ : strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */;\n }\n if (flags & 16384 /* Void */) {\n return 9830144 /* VoidFacts */;\n }\n if (flags & 32768 /* Undefined */) {\n return 26607360 /* UndefinedFacts */;\n }\n if (flags & 65536 /* Null */) {\n return 42917664 /* NullFacts */;\n }\n if (flags & 12288 /* ESSymbolLike */) {\n return strictNullChecks ? 7925520 /* SymbolStrictFacts */ : 16772880 /* SymbolFacts */;\n }\n if (flags & 67108864 /* NonPrimitive */) {\n return strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */;\n }\n if (flags & 131072 /* Never */) {\n return 0 /* None */;\n }\n if (flags & 1048576 /* Union */) {\n return reduceLeft(type.types, (facts, t) => facts | getTypeFactsWorker(t, callerOnlyNeeds), 0 /* None */);\n }\n if (flags & 2097152 /* Intersection */) {\n return getIntersectionTypeFacts(type, callerOnlyNeeds);\n }\n return 83886079 /* UnknownFacts */;\n }\n function getIntersectionTypeFacts(type, callerOnlyNeeds) {\n const ignoreObjects = maybeTypeOfKind(type, 402784252 /* Primitive */);\n let oredFacts = 0 /* None */;\n let andedFacts = 134217727 /* All */;\n for (const t of type.types) {\n if (!(ignoreObjects && t.flags & 524288 /* Object */)) {\n const f = getTypeFactsWorker(t, callerOnlyNeeds);\n oredFacts |= f;\n andedFacts &= f;\n }\n }\n return oredFacts & 8256 /* OrFactsMask */ | andedFacts & 134209471 /* AndFactsMask */;\n }\n function getTypeWithFacts(type, include) {\n return filterType(type, (t) => hasTypeFacts(t, include));\n }\n function getAdjustedTypeWithFacts(type, facts) {\n const reduced = recombineUnknownType(getTypeWithFacts(strictNullChecks && type.flags & 2 /* Unknown */ ? unknownUnionType : type, facts));\n if (strictNullChecks) {\n switch (facts) {\n case 524288 /* NEUndefined */:\n return removeNullableByIntersection(reduced, 65536 /* EQUndefined */, 131072 /* EQNull */, 33554432 /* IsNull */, nullType);\n case 1048576 /* NENull */:\n return removeNullableByIntersection(reduced, 131072 /* EQNull */, 65536 /* EQUndefined */, 16777216 /* IsUndefined */, undefinedType);\n case 2097152 /* NEUndefinedOrNull */:\n case 4194304 /* Truthy */:\n return mapType(reduced, (t) => hasTypeFacts(t, 262144 /* EQUndefinedOrNull */) ? getGlobalNonNullableTypeInstantiation(t) : t);\n }\n }\n return reduced;\n }\n function removeNullableByIntersection(type, targetFacts, otherFacts, otherIncludesFacts, otherType) {\n const facts = getTypeFacts(type, 65536 /* EQUndefined */ | 131072 /* EQNull */ | 16777216 /* IsUndefined */ | 33554432 /* IsNull */);\n if (!(facts & targetFacts)) {\n return type;\n }\n const emptyAndOtherUnion = getUnionType([emptyObjectType, otherType]);\n return mapType(type, (t) => hasTypeFacts(t, targetFacts) ? getIntersectionType([t, !(facts & otherIncludesFacts) && hasTypeFacts(t, otherFacts) ? emptyAndOtherUnion : emptyObjectType]) : t);\n }\n function recombineUnknownType(type) {\n return type === unknownUnionType ? unknownType : type;\n }\n function getTypeWithDefault(type, defaultExpression) {\n return defaultExpression ? getUnionType([getNonUndefinedType(type), getTypeOfExpression(defaultExpression)]) : type;\n }\n function getTypeOfDestructuredProperty(type, name) {\n var _a;\n const nameType = getLiteralTypeFromPropertyName(name);\n if (!isTypeUsableAsPropertyName(nameType)) return errorType;\n const text = getPropertyNameFromType(nameType);\n return getTypeOfPropertyOfType(type, text) || includeUndefinedInIndexSignature((_a = getApplicableIndexInfoForName(type, text)) == null ? void 0 : _a.type) || errorType;\n }\n function getTypeOfDestructuredArrayElement(type, index) {\n return everyType(type, isTupleLikeType) && getTupleElementType(type, index) || includeUndefinedInIndexSignature(checkIteratedTypeOrElementType(\n 65 /* Destructuring */,\n type,\n undefinedType,\n /*errorNode*/\n void 0\n )) || errorType;\n }\n function includeUndefinedInIndexSignature(type) {\n if (!type) return type;\n return compilerOptions.noUncheckedIndexedAccess ? getUnionType([type, missingType]) : type;\n }\n function getTypeOfDestructuredSpreadExpression(type) {\n return createArrayType(checkIteratedTypeOrElementType(\n 65 /* Destructuring */,\n type,\n undefinedType,\n /*errorNode*/\n void 0\n ) || errorType);\n }\n function getAssignedTypeOfBinaryExpression(node) {\n const isDestructuringDefaultAssignment = node.parent.kind === 210 /* ArrayLiteralExpression */ && isDestructuringAssignmentTarget(node.parent) || node.parent.kind === 304 /* PropertyAssignment */ && isDestructuringAssignmentTarget(node.parent.parent);\n return isDestructuringDefaultAssignment ? getTypeWithDefault(getAssignedType(node), node.right) : getTypeOfExpression(node.right);\n }\n function isDestructuringAssignmentTarget(parent2) {\n return parent2.parent.kind === 227 /* BinaryExpression */ && parent2.parent.left === parent2 || parent2.parent.kind === 251 /* ForOfStatement */ && parent2.parent.initializer === parent2;\n }\n function getAssignedTypeOfArrayLiteralElement(node, element) {\n return getTypeOfDestructuredArrayElement(getAssignedType(node), node.elements.indexOf(element));\n }\n function getAssignedTypeOfSpreadExpression(node) {\n return getTypeOfDestructuredSpreadExpression(getAssignedType(node.parent));\n }\n function getAssignedTypeOfPropertyAssignment(node) {\n return getTypeOfDestructuredProperty(getAssignedType(node.parent), node.name);\n }\n function getAssignedTypeOfShorthandPropertyAssignment(node) {\n return getTypeWithDefault(getAssignedTypeOfPropertyAssignment(node), node.objectAssignmentInitializer);\n }\n function getAssignedType(node) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 250 /* ForInStatement */:\n return stringType;\n case 251 /* ForOfStatement */:\n return checkRightHandSideOfForOf(parent2) || errorType;\n case 227 /* BinaryExpression */:\n return getAssignedTypeOfBinaryExpression(parent2);\n case 221 /* DeleteExpression */:\n return undefinedType;\n case 210 /* ArrayLiteralExpression */:\n return getAssignedTypeOfArrayLiteralElement(parent2, node);\n case 231 /* SpreadElement */:\n return getAssignedTypeOfSpreadExpression(parent2);\n case 304 /* PropertyAssignment */:\n return getAssignedTypeOfPropertyAssignment(parent2);\n case 305 /* ShorthandPropertyAssignment */:\n return getAssignedTypeOfShorthandPropertyAssignment(parent2);\n }\n return errorType;\n }\n function getInitialTypeOfBindingElement(node) {\n const pattern = node.parent;\n const parentType = getInitialType(pattern.parent);\n const type = pattern.kind === 207 /* ObjectBindingPattern */ ? getTypeOfDestructuredProperty(parentType, node.propertyName || node.name) : !node.dotDotDotToken ? getTypeOfDestructuredArrayElement(parentType, pattern.elements.indexOf(node)) : getTypeOfDestructuredSpreadExpression(parentType);\n return getTypeWithDefault(type, node.initializer);\n }\n function getTypeOfInitializer(node) {\n const links = getNodeLinks(node);\n return links.resolvedType || getTypeOfExpression(node);\n }\n function getInitialTypeOfVariableDeclaration(node) {\n if (node.initializer) {\n return getTypeOfInitializer(node.initializer);\n }\n if (node.parent.parent.kind === 250 /* ForInStatement */) {\n return stringType;\n }\n if (node.parent.parent.kind === 251 /* ForOfStatement */) {\n return checkRightHandSideOfForOf(node.parent.parent) || errorType;\n }\n return errorType;\n }\n function getInitialType(node) {\n return node.kind === 261 /* VariableDeclaration */ ? getInitialTypeOfVariableDeclaration(node) : getInitialTypeOfBindingElement(node);\n }\n function isEmptyArrayAssignment(node) {\n return node.kind === 261 /* VariableDeclaration */ && node.initializer && isEmptyArrayLiteral2(node.initializer) || node.kind !== 209 /* BindingElement */ && node.parent.kind === 227 /* BinaryExpression */ && isEmptyArrayLiteral2(node.parent.right);\n }\n function getReferenceCandidate(node) {\n switch (node.kind) {\n case 218 /* ParenthesizedExpression */:\n return getReferenceCandidate(node.expression);\n case 227 /* BinaryExpression */:\n switch (node.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return getReferenceCandidate(node.left);\n case 28 /* CommaToken */:\n return getReferenceCandidate(node.right);\n }\n }\n return node;\n }\n function getReferenceRoot(node) {\n const { parent: parent2 } = node;\n return parent2.kind === 218 /* ParenthesizedExpression */ || parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 64 /* EqualsToken */ && parent2.left === node || parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 28 /* CommaToken */ && parent2.right === node ? getReferenceRoot(parent2) : node;\n }\n function getTypeOfSwitchClause(clause) {\n if (clause.kind === 297 /* CaseClause */) {\n return getRegularTypeOfLiteralType(getTypeOfExpression(clause.expression));\n }\n return neverType;\n }\n function getSwitchClauseTypes(switchStatement) {\n const links = getNodeLinks(switchStatement);\n if (!links.switchTypes) {\n links.switchTypes = [];\n for (const clause of switchStatement.caseBlock.clauses) {\n links.switchTypes.push(getTypeOfSwitchClause(clause));\n }\n }\n return links.switchTypes;\n }\n function getSwitchClauseTypeOfWitnesses(switchStatement) {\n if (some(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* CaseClause */ && !isStringLiteralLike(clause.expression))) {\n return void 0;\n }\n const witnesses = [];\n for (const clause of switchStatement.caseBlock.clauses) {\n const text = clause.kind === 297 /* CaseClause */ ? clause.expression.text : void 0;\n witnesses.push(text && !contains(witnesses, text) ? text : void 0);\n }\n return witnesses;\n }\n function eachTypeContainedIn(source, types) {\n return source.flags & 1048576 /* Union */ ? !forEach(source.types, (t) => !contains(types, t)) : contains(types, source);\n }\n function isTypeSubsetOf(source, target) {\n return !!(source === target || source.flags & 131072 /* Never */ || target.flags & 1048576 /* Union */ && isTypeSubsetOfUnion(source, target));\n }\n function isTypeSubsetOfUnion(source, target) {\n if (source.flags & 1048576 /* Union */) {\n for (const t of source.types) {\n if (!containsType(target.types, t)) {\n return false;\n }\n }\n return true;\n }\n if (source.flags & 1056 /* EnumLike */ && getBaseTypeOfEnumLikeType(source) === target) {\n return true;\n }\n return containsType(target.types, source);\n }\n function forEachType(type, f) {\n return type.flags & 1048576 /* Union */ ? forEach(type.types, f) : f(type);\n }\n function someType(type, f) {\n return type.flags & 1048576 /* Union */ ? some(type.types, f) : f(type);\n }\n function everyType(type, f) {\n return type.flags & 1048576 /* Union */ ? every(type.types, f) : f(type);\n }\n function everyContainedType(type, f) {\n return type.flags & 3145728 /* UnionOrIntersection */ ? every(type.types, f) : f(type);\n }\n function filterType(type, f) {\n if (type.flags & 1048576 /* Union */) {\n const types = type.types;\n const filtered = filter(types, f);\n if (filtered === types) {\n return type;\n }\n const origin = type.origin;\n let newOrigin;\n if (origin && origin.flags & 1048576 /* Union */) {\n const originTypes = origin.types;\n const originFiltered = filter(originTypes, (t) => !!(t.flags & 1048576 /* Union */) || f(t));\n if (originTypes.length - originFiltered.length === types.length - filtered.length) {\n if (originFiltered.length === 1) {\n return originFiltered[0];\n }\n newOrigin = createOriginUnionOrIntersectionType(1048576 /* Union */, originFiltered);\n }\n }\n return getUnionTypeFromSortedList(\n filtered,\n type.objectFlags & (32768 /* PrimitiveUnion */ | 16777216 /* ContainsIntersections */),\n /*aliasSymbol*/\n void 0,\n /*aliasTypeArguments*/\n void 0,\n newOrigin\n );\n }\n return type.flags & 131072 /* Never */ || f(type) ? type : neverType;\n }\n function removeType(type, targetType) {\n return filterType(type, (t) => t !== targetType);\n }\n function countTypes(type) {\n return type.flags & 1048576 /* Union */ ? type.types.length : 1;\n }\n function mapType(type, mapper, noReductions) {\n if (type.flags & 131072 /* Never */) {\n return type;\n }\n if (!(type.flags & 1048576 /* Union */)) {\n return mapper(type);\n }\n const origin = type.origin;\n const types = origin && origin.flags & 1048576 /* Union */ ? origin.types : type.types;\n let mappedTypes;\n let changed = false;\n for (const t of types) {\n const mapped = t.flags & 1048576 /* Union */ ? mapType(t, mapper, noReductions) : mapper(t);\n changed || (changed = t !== mapped);\n if (mapped) {\n if (!mappedTypes) {\n mappedTypes = [mapped];\n } else {\n mappedTypes.push(mapped);\n }\n }\n }\n return changed ? mappedTypes && getUnionType(mappedTypes, noReductions ? 0 /* None */ : 1 /* Literal */) : type;\n }\n function mapTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) {\n return type.flags & 1048576 /* Union */ && aliasSymbol ? getUnionType(map(type.types, mapper), 1 /* Literal */, aliasSymbol, aliasTypeArguments) : mapType(type, mapper);\n }\n function extractTypesOfKind(type, kind) {\n return filterType(type, (t) => (t.flags & kind) !== 0);\n }\n function replacePrimitivesWithLiterals(typeWithPrimitives, typeWithLiterals) {\n if (maybeTypeOfKind(typeWithPrimitives, 4 /* String */ | 134217728 /* TemplateLiteral */ | 8 /* Number */ | 64 /* BigInt */) && maybeTypeOfKind(typeWithLiterals, 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */)) {\n return mapType(typeWithPrimitives, (t) => t.flags & 4 /* String */ ? extractTypesOfKind(typeWithLiterals, 4 /* String */ | 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) : isPatternLiteralType(t) && !maybeTypeOfKind(typeWithLiterals, 4 /* String */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? extractTypesOfKind(typeWithLiterals, 128 /* StringLiteral */) : t.flags & 8 /* Number */ ? extractTypesOfKind(typeWithLiterals, 8 /* Number */ | 256 /* NumberLiteral */) : t.flags & 64 /* BigInt */ ? extractTypesOfKind(typeWithLiterals, 64 /* BigInt */ | 2048 /* BigIntLiteral */) : t);\n }\n return typeWithPrimitives;\n }\n function isIncomplete(flowType) {\n return flowType.flags === 0;\n }\n function getTypeFromFlowType(flowType) {\n return flowType.flags === 0 ? flowType.type : flowType;\n }\n function createFlowType(type, incomplete) {\n return incomplete ? { flags: 0, type: type.flags & 131072 /* Never */ ? silentNeverType : type } : type;\n }\n function createEvolvingArrayType(elementType) {\n const result = createObjectType(256 /* EvolvingArray */);\n result.elementType = elementType;\n return result;\n }\n function getEvolvingArrayType(elementType) {\n return evolvingArrayTypes[elementType.id] || (evolvingArrayTypes[elementType.id] = createEvolvingArrayType(elementType));\n }\n function addEvolvingArrayElementType(evolvingArrayType, node) {\n const elementType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(getContextFreeTypeOfExpression(node)));\n return isTypeSubsetOf(elementType, evolvingArrayType.elementType) ? evolvingArrayType : getEvolvingArrayType(getUnionType([evolvingArrayType.elementType, elementType]));\n }\n function createFinalArrayType(elementType) {\n return elementType.flags & 131072 /* Never */ ? autoArrayType : createArrayType(\n elementType.flags & 1048576 /* Union */ ? getUnionType(elementType.types, 2 /* Subtype */) : elementType\n );\n }\n function getFinalArrayType(evolvingArrayType) {\n return evolvingArrayType.finalArrayType || (evolvingArrayType.finalArrayType = createFinalArrayType(evolvingArrayType.elementType));\n }\n function finalizeEvolvingArrayType(type) {\n return getObjectFlags(type) & 256 /* EvolvingArray */ ? getFinalArrayType(type) : type;\n }\n function getElementTypeOfEvolvingArrayType(type) {\n return getObjectFlags(type) & 256 /* EvolvingArray */ ? type.elementType : neverType;\n }\n function isEvolvingArrayTypeList(types) {\n let hasEvolvingArrayType = false;\n for (const t of types) {\n if (!(t.flags & 131072 /* Never */)) {\n if (!(getObjectFlags(t) & 256 /* EvolvingArray */)) {\n return false;\n }\n hasEvolvingArrayType = true;\n }\n }\n return hasEvolvingArrayType;\n }\n function isEvolvingArrayOperationTarget(node) {\n const root = getReferenceRoot(node);\n const parent2 = root.parent;\n const isLengthPushOrUnshift = isPropertyAccessExpression(parent2) && (parent2.name.escapedText === \"length\" || parent2.parent.kind === 214 /* CallExpression */ && isIdentifier(parent2.name) && isPushOrUnshiftIdentifier(parent2.name));\n const isElementAssignment = parent2.kind === 213 /* ElementAccessExpression */ && parent2.expression === root && parent2.parent.kind === 227 /* BinaryExpression */ && parent2.parent.operatorToken.kind === 64 /* EqualsToken */ && parent2.parent.left === parent2 && !isAssignmentTarget(parent2.parent) && isTypeAssignableToKind(getTypeOfExpression(parent2.argumentExpression), 296 /* NumberLike */);\n return isLengthPushOrUnshift || isElementAssignment;\n }\n function isDeclarationWithExplicitTypeAnnotation(node) {\n return (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isParameter(node)) && !!(getEffectiveTypeAnnotationNode(node) || isInJSFile(node) && hasInitializer(node) && node.initializer && isFunctionExpressionOrArrowFunction(node.initializer) && getEffectiveReturnTypeNode(node.initializer));\n }\n function getExplicitTypeOfSymbol(symbol, diagnostic) {\n symbol = resolveSymbol(symbol);\n if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 512 /* ValueModule */)) {\n return getTypeOfSymbol(symbol);\n }\n if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) {\n if (getCheckFlags(symbol) & 262144 /* Mapped */) {\n const origin = symbol.links.syntheticOrigin;\n if (origin && getExplicitTypeOfSymbol(origin)) {\n return getTypeOfSymbol(symbol);\n }\n }\n const declaration = symbol.valueDeclaration;\n if (declaration) {\n if (isDeclarationWithExplicitTypeAnnotation(declaration)) {\n return getTypeOfSymbol(symbol);\n }\n if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 251 /* ForOfStatement */) {\n const statement = declaration.parent.parent;\n const expressionType = getTypeOfDottedName(\n statement.expression,\n /*diagnostic*/\n void 0\n );\n if (expressionType) {\n const use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */;\n return checkIteratedTypeOrElementType(\n use,\n expressionType,\n undefinedType,\n /*errorNode*/\n void 0\n );\n }\n }\n if (diagnostic) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(declaration, Diagnostics._0_needs_an_explicit_type_annotation, symbolToString(symbol)));\n }\n }\n }\n }\n function getTypeOfDottedName(node, diagnostic) {\n if (!(node.flags & 67108864 /* InWithStatement */)) {\n switch (node.kind) {\n case 80 /* Identifier */:\n const symbol = getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(node));\n return getExplicitTypeOfSymbol(symbol, diagnostic);\n case 110 /* ThisKeyword */:\n return getExplicitThisType(node);\n case 108 /* SuperKeyword */:\n return checkSuperExpression(node);\n case 212 /* PropertyAccessExpression */: {\n const type = getTypeOfDottedName(node.expression, diagnostic);\n if (type) {\n const name = node.name;\n let prop;\n if (isPrivateIdentifier(name)) {\n if (!type.symbol) {\n return void 0;\n }\n prop = getPropertyOfType(type, getSymbolNameForPrivateIdentifier(type.symbol, name.escapedText));\n } else {\n prop = getPropertyOfType(type, name.escapedText);\n }\n return prop && getExplicitTypeOfSymbol(prop, diagnostic);\n }\n return void 0;\n }\n case 218 /* ParenthesizedExpression */:\n return getTypeOfDottedName(node.expression, diagnostic);\n }\n }\n }\n function getEffectsSignature(node) {\n const links = getNodeLinks(node);\n let signature = links.effectsSignature;\n if (signature === void 0) {\n let funcType;\n if (isBinaryExpression(node)) {\n const rightType = checkNonNullExpression(node.right);\n funcType = getSymbolHasInstanceMethodOfObjectType(rightType);\n } else if (node.parent.kind === 245 /* ExpressionStatement */) {\n funcType = getTypeOfDottedName(\n node.expression,\n /*diagnostic*/\n void 0\n );\n } else if (node.expression.kind !== 108 /* SuperKeyword */) {\n if (isOptionalChain(node)) {\n funcType = checkNonNullType(\n getOptionalExpressionType(checkExpression(node.expression), node.expression),\n node.expression\n );\n } else {\n funcType = checkNonNullExpression(node.expression);\n }\n }\n const signatures = getSignaturesOfType(funcType && getApparentType(funcType) || unknownType, 0 /* Call */);\n const candidate = signatures.length === 1 && !signatures[0].typeParameters ? signatures[0] : some(signatures, hasTypePredicateOrNeverReturnType) ? getResolvedSignature(node) : void 0;\n signature = links.effectsSignature = candidate && hasTypePredicateOrNeverReturnType(candidate) ? candidate : unknownSignature;\n }\n return signature === unknownSignature ? void 0 : signature;\n }\n function hasTypePredicateOrNeverReturnType(signature) {\n return !!(getTypePredicateOfSignature(signature) || signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 131072 /* Never */);\n }\n function getTypePredicateArgument(predicate, callExpression) {\n if (predicate.kind === 1 /* Identifier */ || predicate.kind === 3 /* AssertsIdentifier */) {\n return callExpression.arguments[predicate.parameterIndex];\n }\n const invokedExpression = skipParentheses(callExpression.expression);\n return isAccessExpression(invokedExpression) ? skipParentheses(invokedExpression.expression) : void 0;\n }\n function reportFlowControlError(node) {\n const block = findAncestor(node, isFunctionOrModuleBlock);\n const sourceFile = getSourceFileOfNode(node);\n const span = getSpanOfTokenAtPosition(sourceFile, block.statements.pos);\n diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis));\n }\n function isReachableFlowNode(flow) {\n const result = isReachableFlowNodeWorker(\n flow,\n /*noCacheCheck*/\n false\n );\n lastFlowNode = flow;\n lastFlowNodeReachable = result;\n return result;\n }\n function isFalseExpression(expr) {\n const node = skipParentheses(\n expr,\n /*excludeJSDocTypeAssertions*/\n true\n );\n return node.kind === 97 /* FalseKeyword */ || node.kind === 227 /* BinaryExpression */ && (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ && (isFalseExpression(node.left) || isFalseExpression(node.right)) || node.operatorToken.kind === 57 /* BarBarToken */ && isFalseExpression(node.left) && isFalseExpression(node.right));\n }\n function isReachableFlowNodeWorker(flow, noCacheCheck) {\n while (true) {\n if (flow === lastFlowNode) {\n return lastFlowNodeReachable;\n }\n const flags = flow.flags;\n if (flags & 4096 /* Shared */) {\n if (!noCacheCheck) {\n const id = getFlowNodeId(flow);\n const reachable = flowNodeReachable[id];\n return reachable !== void 0 ? reachable : flowNodeReachable[id] = isReachableFlowNodeWorker(\n flow,\n /*noCacheCheck*/\n true\n );\n }\n noCacheCheck = false;\n }\n if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */)) {\n flow = flow.antecedent;\n } else if (flags & 512 /* Call */) {\n const signature = getEffectsSignature(flow.node);\n if (signature) {\n const predicate = getTypePredicateOfSignature(signature);\n if (predicate && predicate.kind === 3 /* AssertsIdentifier */ && !predicate.type) {\n const predicateArgument = flow.node.arguments[predicate.parameterIndex];\n if (predicateArgument && isFalseExpression(predicateArgument)) {\n return false;\n }\n }\n if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) {\n return false;\n }\n }\n flow = flow.antecedent;\n } else if (flags & 4 /* BranchLabel */) {\n return some(flow.antecedent, (f) => isReachableFlowNodeWorker(\n f,\n /*noCacheCheck*/\n false\n ));\n } else if (flags & 8 /* LoopLabel */) {\n const antecedents = flow.antecedent;\n if (antecedents === void 0 || antecedents.length === 0) {\n return false;\n }\n flow = antecedents[0];\n } else if (flags & 128 /* SwitchClause */) {\n const data = flow.node;\n if (data.clauseStart === data.clauseEnd && isExhaustiveSwitchStatement(data.switchStatement)) {\n return false;\n }\n flow = flow.antecedent;\n } else if (flags & 1024 /* ReduceLabel */) {\n lastFlowNode = void 0;\n const target = flow.node.target;\n const saveAntecedents = target.antecedent;\n target.antecedent = flow.node.antecedents;\n const result = isReachableFlowNodeWorker(\n flow.antecedent,\n /*noCacheCheck*/\n false\n );\n target.antecedent = saveAntecedents;\n return result;\n } else {\n return !(flags & 1 /* Unreachable */);\n }\n }\n }\n function isPostSuperFlowNode(flow, noCacheCheck) {\n while (true) {\n const flags = flow.flags;\n if (flags & 4096 /* Shared */) {\n if (!noCacheCheck) {\n const id = getFlowNodeId(flow);\n const postSuper = flowNodePostSuper[id];\n return postSuper !== void 0 ? postSuper : flowNodePostSuper[id] = isPostSuperFlowNode(\n flow,\n /*noCacheCheck*/\n true\n );\n }\n noCacheCheck = false;\n }\n if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */ | 128 /* SwitchClause */)) {\n flow = flow.antecedent;\n } else if (flags & 512 /* Call */) {\n if (flow.node.expression.kind === 108 /* SuperKeyword */) {\n return true;\n }\n flow = flow.antecedent;\n } else if (flags & 4 /* BranchLabel */) {\n return every(flow.antecedent, (f) => isPostSuperFlowNode(\n f,\n /*noCacheCheck*/\n false\n ));\n } else if (flags & 8 /* LoopLabel */) {\n flow = flow.antecedent[0];\n } else if (flags & 1024 /* ReduceLabel */) {\n const target = flow.node.target;\n const saveAntecedents = target.antecedent;\n target.antecedent = flow.node.antecedents;\n const result = isPostSuperFlowNode(\n flow.antecedent,\n /*noCacheCheck*/\n false\n );\n target.antecedent = saveAntecedents;\n return result;\n } else {\n return !!(flags & 1 /* Unreachable */);\n }\n }\n }\n function isConstantReference(node) {\n switch (node.kind) {\n case 110 /* ThisKeyword */:\n return true;\n case 80 /* Identifier */:\n if (!isThisInTypeQuery(node)) {\n const symbol = getResolvedSymbol(node);\n return isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol) || !!symbol.valueDeclaration && isFunctionExpression(symbol.valueDeclaration);\n }\n break;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return isConstantReference(node.expression) && isReadonlySymbol(getNodeLinks(node).resolvedSymbol || unknownSymbol);\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n const rootDeclaration = getRootDeclaration(node.parent);\n return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) && isVarConstLike2(rootDeclaration);\n }\n return false;\n }\n function getFlowTypeOfReference(reference, declaredType, initialType = declaredType, flowContainer, flowNode = ((_a) => (_a = tryCast(reference, canHaveFlowNode)) == null ? void 0 : _a.flowNode)()) {\n let key;\n let isKeySet = false;\n let flowDepth = 0;\n if (flowAnalysisDisabled) {\n return errorType;\n }\n if (!flowNode) {\n return declaredType;\n }\n flowInvocationCount++;\n const sharedFlowStart = sharedFlowCount;\n const evolvedType = getTypeFromFlowType(getTypeAtFlowNode(flowNode));\n sharedFlowCount = sharedFlowStart;\n const resultType = getObjectFlags(evolvedType) & 256 /* EvolvingArray */ && isEvolvingArrayOperationTarget(reference) ? autoArrayType : finalizeEvolvingArrayType(evolvedType);\n if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === 236 /* NonNullExpression */ && !(resultType.flags & 131072 /* Never */) && getTypeWithFacts(resultType, 2097152 /* NEUndefinedOrNull */).flags & 131072 /* Never */) {\n return declaredType;\n }\n return resultType;\n function getOrSetCacheKey() {\n if (isKeySet) {\n return key;\n }\n isKeySet = true;\n return key = getFlowCacheKey(reference, declaredType, initialType, flowContainer);\n }\n function getTypeAtFlowNode(flow) {\n var _a2;\n if (flowDepth === 2e3) {\n (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"getTypeAtFlowNode_DepthLimit\", { flowId: flow.id });\n flowAnalysisDisabled = true;\n reportFlowControlError(reference);\n return errorType;\n }\n flowDepth++;\n let sharedFlow;\n while (true) {\n const flags = flow.flags;\n if (flags & 4096 /* Shared */) {\n for (let i = sharedFlowStart; i < sharedFlowCount; i++) {\n if (sharedFlowNodes[i] === flow) {\n flowDepth--;\n return sharedFlowTypes[i];\n }\n }\n sharedFlow = flow;\n }\n let type;\n if (flags & 16 /* Assignment */) {\n type = getTypeAtFlowAssignment(flow);\n if (!type) {\n flow = flow.antecedent;\n continue;\n }\n } else if (flags & 512 /* Call */) {\n type = getTypeAtFlowCall(flow);\n if (!type) {\n flow = flow.antecedent;\n continue;\n }\n } else if (flags & 96 /* Condition */) {\n type = getTypeAtFlowCondition(flow);\n } else if (flags & 128 /* SwitchClause */) {\n type = getTypeAtSwitchClause(flow);\n } else if (flags & 12 /* Label */) {\n if (flow.antecedent.length === 1) {\n flow = flow.antecedent[0];\n continue;\n }\n type = flags & 4 /* BranchLabel */ ? getTypeAtFlowBranchLabel(flow) : getTypeAtFlowLoopLabel(flow);\n } else if (flags & 256 /* ArrayMutation */) {\n type = getTypeAtFlowArrayMutation(flow);\n if (!type) {\n flow = flow.antecedent;\n continue;\n }\n } else if (flags & 1024 /* ReduceLabel */) {\n const target = flow.node.target;\n const saveAntecedents = target.antecedent;\n target.antecedent = flow.node.antecedents;\n type = getTypeAtFlowNode(flow.antecedent);\n target.antecedent = saveAntecedents;\n } else if (flags & 2 /* Start */) {\n const container = flow.node;\n if (container && container !== flowContainer && reference.kind !== 212 /* PropertyAccessExpression */ && reference.kind !== 213 /* ElementAccessExpression */ && !(reference.kind === 110 /* ThisKeyword */ && container.kind !== 220 /* ArrowFunction */)) {\n flow = container.flowNode;\n continue;\n }\n type = initialType;\n } else {\n type = convertAutoToAny(declaredType);\n }\n if (sharedFlow) {\n sharedFlowNodes[sharedFlowCount] = sharedFlow;\n sharedFlowTypes[sharedFlowCount] = type;\n sharedFlowCount++;\n }\n flowDepth--;\n return type;\n }\n }\n function getInitialOrAssignedType(flow) {\n const node = flow.node;\n return getNarrowableTypeForReference(\n node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */ ? getInitialType(node) : getAssignedType(node),\n reference\n );\n }\n function getTypeAtFlowAssignment(flow) {\n const node = flow.node;\n if (isMatchingReference(reference, node)) {\n if (!isReachableFlowNode(flow)) {\n return unreachableNeverType;\n }\n if (getAssignmentTargetKind(node) === 2 /* Compound */) {\n const flowType = getTypeAtFlowNode(flow.antecedent);\n return createFlowType(getBaseTypeOfLiteralType(getTypeFromFlowType(flowType)), isIncomplete(flowType));\n }\n if (declaredType === autoType || declaredType === autoArrayType) {\n if (isEmptyArrayAssignment(node)) {\n return getEvolvingArrayType(neverType);\n }\n const assignedType = getWidenedLiteralType(getInitialOrAssignedType(flow));\n return isTypeAssignableTo(assignedType, declaredType) ? assignedType : anyArrayType;\n }\n const t = isInCompoundLikeAssignment(node) ? getBaseTypeOfLiteralType(declaredType) : declaredType;\n if (t.flags & 1048576 /* Union */) {\n return getAssignmentReducedType(t, getInitialOrAssignedType(flow));\n }\n return t;\n }\n if (containsMatchingReference(reference, node)) {\n if (!isReachableFlowNode(flow)) {\n return unreachableNeverType;\n }\n if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike2(node))) {\n const init = getDeclaredExpandoInitializer(node);\n if (init && (init.kind === 219 /* FunctionExpression */ || init.kind === 220 /* ArrowFunction */)) {\n return getTypeAtFlowNode(flow.antecedent);\n }\n }\n return declaredType;\n }\n if (isVariableDeclaration(node) && node.parent.parent.kind === 250 /* ForInStatement */ && (isMatchingReference(reference, node.parent.parent.expression) || optionalChainContainsReference(node.parent.parent.expression, reference))) {\n return getNonNullableTypeIfNeeded(finalizeEvolvingArrayType(getTypeFromFlowType(getTypeAtFlowNode(flow.antecedent))));\n }\n return void 0;\n }\n function narrowTypeByAssertion(type, expr) {\n const node = skipParentheses(\n expr,\n /*excludeJSDocTypeAssertions*/\n true\n );\n if (node.kind === 97 /* FalseKeyword */) {\n return unreachableNeverType;\n }\n if (node.kind === 227 /* BinaryExpression */) {\n if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n return narrowTypeByAssertion(narrowTypeByAssertion(type, node.left), node.right);\n }\n if (node.operatorToken.kind === 57 /* BarBarToken */) {\n return getUnionType([narrowTypeByAssertion(type, node.left), narrowTypeByAssertion(type, node.right)]);\n }\n }\n return narrowType(\n type,\n node,\n /*assumeTrue*/\n true\n );\n }\n function getTypeAtFlowCall(flow) {\n const signature = getEffectsSignature(flow.node);\n if (signature) {\n const predicate = getTypePredicateOfSignature(signature);\n if (predicate && (predicate.kind === 2 /* AssertsThis */ || predicate.kind === 3 /* AssertsIdentifier */)) {\n const flowType = getTypeAtFlowNode(flow.antecedent);\n const type = finalizeEvolvingArrayType(getTypeFromFlowType(flowType));\n const narrowedType = predicate.type ? narrowTypeByTypePredicate(\n type,\n predicate,\n flow.node,\n /*assumeTrue*/\n true\n ) : predicate.kind === 3 /* AssertsIdentifier */ && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : type;\n return narrowedType === type ? flowType : createFlowType(narrowedType, isIncomplete(flowType));\n }\n if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) {\n return unreachableNeverType;\n }\n }\n return void 0;\n }\n function getTypeAtFlowArrayMutation(flow) {\n if (declaredType === autoType || declaredType === autoArrayType) {\n const node = flow.node;\n const expr = node.kind === 214 /* CallExpression */ ? node.expression.expression : node.left.expression;\n if (isMatchingReference(reference, getReferenceCandidate(expr))) {\n const flowType = getTypeAtFlowNode(flow.antecedent);\n const type = getTypeFromFlowType(flowType);\n if (getObjectFlags(type) & 256 /* EvolvingArray */) {\n let evolvedType2 = type;\n if (node.kind === 214 /* CallExpression */) {\n for (const arg of node.arguments) {\n evolvedType2 = addEvolvingArrayElementType(evolvedType2, arg);\n }\n } else {\n const indexType = getContextFreeTypeOfExpression(node.left.argumentExpression);\n if (isTypeAssignableToKind(indexType, 296 /* NumberLike */)) {\n evolvedType2 = addEvolvingArrayElementType(evolvedType2, node.right);\n }\n }\n return evolvedType2 === type ? flowType : createFlowType(evolvedType2, isIncomplete(flowType));\n }\n return flowType;\n }\n }\n return void 0;\n }\n function getTypeAtFlowCondition(flow) {\n const flowType = getTypeAtFlowNode(flow.antecedent);\n const type = getTypeFromFlowType(flowType);\n if (type.flags & 131072 /* Never */) {\n return flowType;\n }\n const assumeTrue = (flow.flags & 32 /* TrueCondition */) !== 0;\n const nonEvolvingType = finalizeEvolvingArrayType(type);\n const narrowedType = narrowType(nonEvolvingType, flow.node, assumeTrue);\n if (narrowedType === nonEvolvingType) {\n return flowType;\n }\n return createFlowType(narrowedType, isIncomplete(flowType));\n }\n function getTypeAtSwitchClause(flow) {\n const expr = skipParentheses(flow.node.switchStatement.expression);\n const flowType = getTypeAtFlowNode(flow.antecedent);\n let type = getTypeFromFlowType(flowType);\n if (isMatchingReference(reference, expr)) {\n type = narrowTypeBySwitchOnDiscriminant(type, flow.node);\n } else if (expr.kind === 222 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) {\n type = narrowTypeBySwitchOnTypeOf(type, flow.node);\n } else if (expr.kind === 112 /* TrueKeyword */) {\n type = narrowTypeBySwitchOnTrue(type, flow.node);\n } else {\n if (strictNullChecks) {\n if (optionalChainContainsReference(expr, reference)) {\n type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & (32768 /* Undefined */ | 131072 /* Never */)));\n } else if (expr.kind === 222 /* TypeOfExpression */ && optionalChainContainsReference(expr.expression, reference)) {\n type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & 131072 /* Never */ || t.flags & 128 /* StringLiteral */ && t.value === \"undefined\"));\n }\n }\n const access = getDiscriminantPropertyAccess(expr, type);\n if (access) {\n type = narrowTypeBySwitchOnDiscriminantProperty(type, access, flow.node);\n }\n }\n return createFlowType(type, isIncomplete(flowType));\n }\n function getTypeAtFlowBranchLabel(flow) {\n const antecedentTypes = [];\n let subtypeReduction = false;\n let seenIncomplete = false;\n let bypassFlow;\n for (const antecedent of flow.antecedent) {\n if (!bypassFlow && antecedent.flags & 128 /* SwitchClause */ && antecedent.node.clauseStart === antecedent.node.clauseEnd) {\n bypassFlow = antecedent;\n continue;\n }\n const flowType = getTypeAtFlowNode(antecedent);\n const type = getTypeFromFlowType(flowType);\n if (type === declaredType && declaredType === initialType) {\n return type;\n }\n pushIfUnique(antecedentTypes, type);\n if (!isTypeSubsetOf(type, initialType)) {\n subtypeReduction = true;\n }\n if (isIncomplete(flowType)) {\n seenIncomplete = true;\n }\n }\n if (bypassFlow) {\n const flowType = getTypeAtFlowNode(bypassFlow);\n const type = getTypeFromFlowType(flowType);\n if (!(type.flags & 131072 /* Never */) && !contains(antecedentTypes, type) && !isExhaustiveSwitchStatement(bypassFlow.node.switchStatement)) {\n if (type === declaredType && declaredType === initialType) {\n return type;\n }\n antecedentTypes.push(type);\n if (!isTypeSubsetOf(type, initialType)) {\n subtypeReduction = true;\n }\n if (isIncomplete(flowType)) {\n seenIncomplete = true;\n }\n }\n }\n return createFlowType(getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */), seenIncomplete);\n }\n function getTypeAtFlowLoopLabel(flow) {\n const id = getFlowNodeId(flow);\n const cache = flowLoopCaches[id] || (flowLoopCaches[id] = /* @__PURE__ */ new Map());\n const key2 = getOrSetCacheKey();\n if (!key2) {\n return declaredType;\n }\n const cached = cache.get(key2);\n if (cached) {\n return cached;\n }\n for (let i = flowLoopStart; i < flowLoopCount; i++) {\n if (flowLoopNodes[i] === flow && flowLoopKeys[i] === key2 && flowLoopTypes[i].length) {\n return createFlowType(\n getUnionOrEvolvingArrayType(flowLoopTypes[i], 1 /* Literal */),\n /*incomplete*/\n true\n );\n }\n }\n const antecedentTypes = [];\n let subtypeReduction = false;\n let firstAntecedentType;\n for (const antecedent of flow.antecedent) {\n let flowType;\n if (!firstAntecedentType) {\n flowType = firstAntecedentType = getTypeAtFlowNode(antecedent);\n } else {\n flowLoopNodes[flowLoopCount] = flow;\n flowLoopKeys[flowLoopCount] = key2;\n flowLoopTypes[flowLoopCount] = antecedentTypes;\n flowLoopCount++;\n const saveFlowTypeCache = flowTypeCache;\n flowTypeCache = void 0;\n flowType = getTypeAtFlowNode(antecedent);\n flowTypeCache = saveFlowTypeCache;\n flowLoopCount--;\n const cached2 = cache.get(key2);\n if (cached2) {\n return cached2;\n }\n }\n const type = getTypeFromFlowType(flowType);\n pushIfUnique(antecedentTypes, type);\n if (!isTypeSubsetOf(type, initialType)) {\n subtypeReduction = true;\n }\n if (type === declaredType) {\n break;\n }\n }\n const result = getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */);\n if (isIncomplete(firstAntecedentType)) {\n return createFlowType(\n result,\n /*incomplete*/\n true\n );\n }\n cache.set(key2, result);\n return result;\n }\n function getUnionOrEvolvingArrayType(types, subtypeReduction) {\n if (isEvolvingArrayTypeList(types)) {\n return getEvolvingArrayType(getUnionType(map(types, getElementTypeOfEvolvingArrayType)));\n }\n const result = recombineUnknownType(getUnionType(sameMap(types, finalizeEvolvingArrayType), subtypeReduction));\n if (result !== declaredType && result.flags & declaredType.flags & 1048576 /* Union */ && arrayIsEqualTo(result.types, declaredType.types)) {\n return declaredType;\n }\n return result;\n }\n function getCandidateDiscriminantPropertyAccess(expr) {\n if (isBindingPattern(reference) || isFunctionExpressionOrArrowFunction(reference) || isObjectLiteralMethod(reference)) {\n if (isIdentifier(expr)) {\n const symbol = getResolvedSymbol(expr);\n const declaration = getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration;\n if (declaration && (isBindingElement(declaration) || isParameter(declaration)) && reference === declaration.parent && !declaration.initializer && !declaration.dotDotDotToken) {\n return declaration;\n }\n }\n } else if (isAccessExpression(expr)) {\n if (isMatchingReference(reference, expr.expression)) {\n return expr;\n }\n } else if (isIdentifier(expr)) {\n const symbol = getResolvedSymbol(expr);\n if (isConstantVariable(symbol)) {\n const declaration = symbol.valueDeclaration;\n if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer) && isMatchingReference(reference, declaration.initializer.expression)) {\n return declaration.initializer;\n }\n if (isBindingElement(declaration) && !declaration.initializer) {\n const parent2 = declaration.parent.parent;\n if (isVariableDeclaration(parent2) && !parent2.type && parent2.initializer && (isIdentifier(parent2.initializer) || isAccessExpression(parent2.initializer)) && isMatchingReference(reference, parent2.initializer)) {\n return declaration;\n }\n }\n }\n }\n return void 0;\n }\n function getDiscriminantPropertyAccess(expr, computedType) {\n if (declaredType.flags & 1048576 /* Union */ || computedType.flags & 1048576 /* Union */) {\n const access = getCandidateDiscriminantPropertyAccess(expr);\n if (access) {\n const name = getAccessedPropertyName(access);\n if (name) {\n const type = declaredType.flags & 1048576 /* Union */ && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;\n if (isDiscriminantProperty(type, name)) {\n return access;\n }\n }\n }\n }\n return void 0;\n }\n function narrowTypeByDiscriminant(type, access, narrowType2) {\n const propName = getAccessedPropertyName(access);\n if (propName === void 0) {\n return type;\n }\n const optionalChain = isOptionalChain(access);\n const removeNullable = strictNullChecks && (optionalChain || isNonNullAccess(access)) && maybeTypeOfKind(type, 98304 /* Nullable */);\n let propType = getTypeOfPropertyOfType(removeNullable ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type, propName);\n if (!propType) {\n return type;\n }\n propType = removeNullable && optionalChain ? getOptionalType(propType) : propType;\n const narrowedPropType = narrowType2(propType);\n return filterType(type, (t) => {\n const discriminantType = getTypeOfPropertyOrIndexSignatureOfType(t, propName) || unknownType;\n return !(discriminantType.flags & 131072 /* Never */) && !(narrowedPropType.flags & 131072 /* Never */) && areTypesComparable(narrowedPropType, discriminantType);\n });\n }\n function narrowTypeByDiscriminantProperty(type, access, operator, value, assumeTrue) {\n if ((operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) && type.flags & 1048576 /* Union */) {\n const keyPropertyName = getKeyPropertyName(type);\n if (keyPropertyName && keyPropertyName === getAccessedPropertyName(access)) {\n const candidate = getConstituentTypeForKeyType(type, getTypeOfExpression(value));\n if (candidate) {\n return operator === (assumeTrue ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */) ? candidate : isUnitType(getTypeOfPropertyOfType(candidate, keyPropertyName) || unknownType) ? removeType(type, candidate) : type;\n }\n }\n }\n return narrowTypeByDiscriminant(type, access, (t) => narrowTypeByEquality(t, operator, value, assumeTrue));\n }\n function narrowTypeBySwitchOnDiscriminantProperty(type, access, data) {\n if (data.clauseStart < data.clauseEnd && type.flags & 1048576 /* Union */ && getKeyPropertyName(type) === getAccessedPropertyName(access)) {\n const clauseTypes = getSwitchClauseTypes(data.switchStatement).slice(data.clauseStart, data.clauseEnd);\n const candidate = getUnionType(map(clauseTypes, (t) => getConstituentTypeForKeyType(type, t) || unknownType));\n if (candidate !== unknownType) {\n return candidate;\n }\n }\n return narrowTypeByDiscriminant(type, access, (t) => narrowTypeBySwitchOnDiscriminant(t, data));\n }\n function narrowTypeByTruthiness(type, expr, assumeTrue) {\n if (isMatchingReference(reference, expr)) {\n return getAdjustedTypeWithFacts(type, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */);\n }\n if (strictNullChecks && assumeTrue && optionalChainContainsReference(expr, reference)) {\n type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n }\n const access = getDiscriminantPropertyAccess(expr, type);\n if (access) {\n return narrowTypeByDiscriminant(type, access, (t) => getTypeWithFacts(t, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */));\n }\n return type;\n }\n function isTypePresencePossible(type, propName, assumeTrue) {\n const prop = getPropertyOfType(type, propName);\n return prop ? !!(prop.flags & 16777216 /* Optional */ || getCheckFlags(prop) & 48 /* Partial */) || assumeTrue : !!getApplicableIndexInfoForName(type, propName) || !assumeTrue;\n }\n function narrowTypeByInKeyword(type, nameType, assumeTrue) {\n const name = getPropertyNameFromType(nameType);\n const isKnownProperty2 = someType(type, (t) => isTypePresencePossible(\n t,\n name,\n /*assumeTrue*/\n true\n ));\n if (isKnownProperty2) {\n return filterType(type, (t) => isTypePresencePossible(t, name, assumeTrue));\n }\n if (assumeTrue) {\n const recordSymbol = getGlobalRecordSymbol();\n if (recordSymbol) {\n return getIntersectionType([type, getTypeAliasInstantiation(recordSymbol, [nameType, unknownType])]);\n }\n }\n return type;\n }\n function narrowTypeByBooleanComparison(type, expr, bool, operator, assumeTrue) {\n assumeTrue = assumeTrue !== (bool.kind === 112 /* TrueKeyword */) !== (operator !== 38 /* ExclamationEqualsEqualsToken */ && operator !== 36 /* ExclamationEqualsToken */);\n return narrowType(type, expr, assumeTrue);\n }\n function narrowTypeByBinaryExpression(type, expr, assumeTrue) {\n switch (expr.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return narrowTypeByTruthiness(narrowType(type, expr.right, assumeTrue), expr.left, assumeTrue);\n case 35 /* EqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n const operator = expr.operatorToken.kind;\n const left = getReferenceCandidate(expr.left);\n const right = getReferenceCandidate(expr.right);\n if (left.kind === 222 /* TypeOfExpression */ && isStringLiteralLike(right)) {\n return narrowTypeByTypeof(type, left, operator, right, assumeTrue);\n }\n if (right.kind === 222 /* TypeOfExpression */ && isStringLiteralLike(left)) {\n return narrowTypeByTypeof(type, right, operator, left, assumeTrue);\n }\n if (isMatchingReference(reference, left)) {\n return narrowTypeByEquality(type, operator, right, assumeTrue);\n }\n if (isMatchingReference(reference, right)) {\n return narrowTypeByEquality(type, operator, left, assumeTrue);\n }\n if (strictNullChecks) {\n if (optionalChainContainsReference(left, reference)) {\n type = narrowTypeByOptionalChainContainment(type, operator, right, assumeTrue);\n } else if (optionalChainContainsReference(right, reference)) {\n type = narrowTypeByOptionalChainContainment(type, operator, left, assumeTrue);\n }\n }\n const leftAccess = getDiscriminantPropertyAccess(left, type);\n if (leftAccess) {\n return narrowTypeByDiscriminantProperty(type, leftAccess, operator, right, assumeTrue);\n }\n const rightAccess = getDiscriminantPropertyAccess(right, type);\n if (rightAccess) {\n return narrowTypeByDiscriminantProperty(type, rightAccess, operator, left, assumeTrue);\n }\n if (isMatchingConstructorReference(left)) {\n return narrowTypeByConstructor(type, operator, right, assumeTrue);\n }\n if (isMatchingConstructorReference(right)) {\n return narrowTypeByConstructor(type, operator, left, assumeTrue);\n }\n if (isBooleanLiteral(right) && !isAccessExpression(left)) {\n return narrowTypeByBooleanComparison(type, left, right, operator, assumeTrue);\n }\n if (isBooleanLiteral(left) && !isAccessExpression(right)) {\n return narrowTypeByBooleanComparison(type, right, left, operator, assumeTrue);\n }\n break;\n case 104 /* InstanceOfKeyword */:\n return narrowTypeByInstanceof(type, expr, assumeTrue);\n case 103 /* InKeyword */:\n if (isPrivateIdentifier(expr.left)) {\n return narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue);\n }\n const target = getReferenceCandidate(expr.right);\n if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target)) {\n const leftType = getTypeOfExpression(expr.left);\n if (isTypeUsableAsPropertyName(leftType) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) {\n return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);\n }\n }\n if (isMatchingReference(reference, target)) {\n const leftType = getTypeOfExpression(expr.left);\n if (isTypeUsableAsPropertyName(leftType)) {\n return narrowTypeByInKeyword(type, leftType, assumeTrue);\n }\n }\n break;\n case 28 /* CommaToken */:\n return narrowType(type, expr.right, assumeTrue);\n // Ordinarily we won't see && and || expressions in control flow analysis because the Binder breaks those\n // expressions down to individual conditional control flows. However, we may encounter them when analyzing\n // aliased conditional expressions.\n case 56 /* AmpersandAmpersandToken */:\n return assumeTrue ? narrowType(\n narrowType(\n type,\n expr.left,\n /*assumeTrue*/\n true\n ),\n expr.right,\n /*assumeTrue*/\n true\n ) : getUnionType([narrowType(\n type,\n expr.left,\n /*assumeTrue*/\n false\n ), narrowType(\n type,\n expr.right,\n /*assumeTrue*/\n false\n )]);\n case 57 /* BarBarToken */:\n return assumeTrue ? getUnionType([narrowType(\n type,\n expr.left,\n /*assumeTrue*/\n true\n ), narrowType(\n type,\n expr.right,\n /*assumeTrue*/\n true\n )]) : narrowType(\n narrowType(\n type,\n expr.left,\n /*assumeTrue*/\n false\n ),\n expr.right,\n /*assumeTrue*/\n false\n );\n }\n return type;\n }\n function narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue) {\n const target = getReferenceCandidate(expr.right);\n if (!isMatchingReference(reference, target)) {\n return type;\n }\n Debug.assertNode(expr.left, isPrivateIdentifier);\n const symbol = getSymbolForPrivateIdentifierExpression(expr.left);\n if (symbol === void 0) {\n return type;\n }\n const classSymbol = symbol.parent;\n const targetType = hasStaticModifier(Debug.checkDefined(symbol.valueDeclaration, \"should always have a declaration\")) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol);\n return getNarrowedType(\n type,\n targetType,\n assumeTrue,\n /*checkDerived*/\n true\n );\n }\n function narrowTypeByOptionalChainContainment(type, operator, value, assumeTrue) {\n const equalsOperator = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */;\n const nullableFlags = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? 98304 /* Nullable */ : 32768 /* Undefined */;\n const valueType = getTypeOfExpression(value);\n const removeNullable = equalsOperator !== assumeTrue && everyType(valueType, (t) => !!(t.flags & nullableFlags)) || equalsOperator === assumeTrue && everyType(valueType, (t) => !(t.flags & (3 /* AnyOrUnknown */ | nullableFlags)));\n return removeNullable ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n }\n function narrowTypeByEquality(type, operator, value, assumeTrue) {\n if (type.flags & 1 /* Any */) {\n return type;\n }\n if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) {\n assumeTrue = !assumeTrue;\n }\n const valueType = getTypeOfExpression(value);\n const doubleEquals = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */;\n if (valueType.flags & 98304 /* Nullable */) {\n if (!strictNullChecks) {\n return type;\n }\n const facts = doubleEquals ? assumeTrue ? 262144 /* EQUndefinedOrNull */ : 2097152 /* NEUndefinedOrNull */ : valueType.flags & 65536 /* Null */ ? assumeTrue ? 131072 /* EQNull */ : 1048576 /* NENull */ : assumeTrue ? 65536 /* EQUndefined */ : 524288 /* NEUndefined */;\n return getAdjustedTypeWithFacts(type, facts);\n }\n if (assumeTrue) {\n if (!doubleEquals && (type.flags & 2 /* Unknown */ || someType(type, isEmptyAnonymousObjectType))) {\n if (valueType.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */) || isEmptyAnonymousObjectType(valueType)) {\n return valueType;\n }\n if (valueType.flags & 524288 /* Object */) {\n return nonPrimitiveType;\n }\n }\n const filteredType = filterType(type, (t) => areTypesComparable(t, valueType) || doubleEquals && isCoercibleUnderDoubleEquals(t, valueType));\n return replacePrimitivesWithLiterals(filteredType, valueType);\n }\n if (isUnitType(valueType)) {\n return filterType(type, (t) => !(isUnitLikeType(t) && areTypesComparable(t, valueType)));\n }\n return type;\n }\n function narrowTypeByTypeof(type, typeOfExpr, operator, literal, assumeTrue) {\n if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) {\n assumeTrue = !assumeTrue;\n }\n const target = getReferenceCandidate(typeOfExpr.expression);\n if (!isMatchingReference(reference, target)) {\n if (strictNullChecks && optionalChainContainsReference(target, reference) && assumeTrue === (literal.text !== \"undefined\")) {\n type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n }\n const propertyAccess = getDiscriminantPropertyAccess(target, type);\n if (propertyAccess) {\n return narrowTypeByDiscriminant(type, propertyAccess, (t) => narrowTypeByLiteralExpression(t, literal, assumeTrue));\n }\n return type;\n }\n return narrowTypeByLiteralExpression(type, literal, assumeTrue);\n }\n function narrowTypeByLiteralExpression(type, literal, assumeTrue) {\n return assumeTrue ? narrowTypeByTypeName(type, literal.text) : getAdjustedTypeWithFacts(type, typeofNEFacts.get(literal.text) || 32768 /* TypeofNEHostObject */);\n }\n function narrowTypeBySwitchOptionalChainContainment(type, { switchStatement, clauseStart, clauseEnd }, clauseCheck) {\n const everyClauseChecks = clauseStart !== clauseEnd && every(getSwitchClauseTypes(switchStatement).slice(clauseStart, clauseEnd), clauseCheck);\n return everyClauseChecks ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n }\n function narrowTypeBySwitchOnDiscriminant(type, { switchStatement, clauseStart, clauseEnd }) {\n const switchTypes = getSwitchClauseTypes(switchStatement);\n if (!switchTypes.length) {\n return type;\n }\n const clauseTypes = switchTypes.slice(clauseStart, clauseEnd);\n const hasDefaultClause = clauseStart === clauseEnd || contains(clauseTypes, neverType);\n if (type.flags & 2 /* Unknown */ && !hasDefaultClause) {\n let groundClauseTypes;\n for (let i = 0; i < clauseTypes.length; i += 1) {\n const t = clauseTypes[i];\n if (t.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */)) {\n if (groundClauseTypes !== void 0) {\n groundClauseTypes.push(t);\n }\n } else if (t.flags & 524288 /* Object */) {\n if (groundClauseTypes === void 0) {\n groundClauseTypes = clauseTypes.slice(0, i);\n }\n groundClauseTypes.push(nonPrimitiveType);\n } else {\n return type;\n }\n }\n return getUnionType(groundClauseTypes === void 0 ? clauseTypes : groundClauseTypes);\n }\n const discriminantType = getUnionType(clauseTypes);\n const caseType = discriminantType.flags & 131072 /* Never */ ? neverType : replacePrimitivesWithLiterals(filterType(type, (t) => areTypesComparable(discriminantType, t)), discriminantType);\n if (!hasDefaultClause) {\n return caseType;\n }\n const defaultType = filterType(type, (t) => !(isUnitLikeType(t) && contains(switchTypes, t.flags & 32768 /* Undefined */ ? undefinedType : getRegularTypeOfLiteralType(extractUnitType(t)))));\n return caseType.flags & 131072 /* Never */ ? defaultType : getUnionType([caseType, defaultType]);\n }\n function narrowTypeByTypeName(type, typeName) {\n switch (typeName) {\n case \"string\":\n return narrowTypeByTypeFacts(type, stringType, 1 /* TypeofEQString */);\n case \"number\":\n return narrowTypeByTypeFacts(type, numberType, 2 /* TypeofEQNumber */);\n case \"bigint\":\n return narrowTypeByTypeFacts(type, bigintType, 4 /* TypeofEQBigInt */);\n case \"boolean\":\n return narrowTypeByTypeFacts(type, booleanType, 8 /* TypeofEQBoolean */);\n case \"symbol\":\n return narrowTypeByTypeFacts(type, esSymbolType, 16 /* TypeofEQSymbol */);\n case \"object\":\n return type.flags & 1 /* Any */ ? type : getUnionType([narrowTypeByTypeFacts(type, nonPrimitiveType, 32 /* TypeofEQObject */), narrowTypeByTypeFacts(type, nullType, 131072 /* EQNull */)]);\n case \"function\":\n return type.flags & 1 /* Any */ ? type : narrowTypeByTypeFacts(type, globalFunctionType, 64 /* TypeofEQFunction */);\n case \"undefined\":\n return narrowTypeByTypeFacts(type, undefinedType, 65536 /* EQUndefined */);\n }\n return narrowTypeByTypeFacts(type, nonPrimitiveType, 128 /* TypeofEQHostObject */);\n }\n function narrowTypeByTypeFacts(type, impliedType, facts) {\n return mapType(type, (t) => (\n // We first check if a constituent is a subtype of the implied type. If so, we either keep or eliminate\n // the constituent based on its type facts. We use the strict subtype relation because it treats `object`\n // as a subtype of `{}`, and we need the type facts check because function types are subtypes of `object`,\n // but are classified as \"function\" according to `typeof`.\n isTypeRelatedTo(t, impliedType, strictSubtypeRelation) ? hasTypeFacts(t, facts) ? t : neverType : (\n // We next check if the consituent is a supertype of the implied type. If so, we substitute the implied\n // type. This handles top types like `unknown` and `{}`, and supertypes like `{ toString(): string }`.\n isTypeSubtypeOf(impliedType, t) ? impliedType : (\n // Neither the constituent nor the implied type is a subtype of the other, however their domains may still\n // overlap. For example, an unconstrained type parameter and type `string`. If the type facts indicate\n // possible overlap, we form an intersection. Otherwise, we eliminate the constituent.\n hasTypeFacts(t, facts) ? getIntersectionType([t, impliedType]) : neverType\n )\n )\n ));\n }\n function narrowTypeBySwitchOnTypeOf(type, { switchStatement, clauseStart, clauseEnd }) {\n const witnesses = getSwitchClauseTypeOfWitnesses(switchStatement);\n if (!witnesses) {\n return type;\n }\n const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 298 /* DefaultClause */);\n const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;\n if (hasDefaultClause) {\n const notEqualFacts = getNotEqualFactsFromTypeofSwitch(clauseStart, clauseEnd, witnesses);\n return filterType(type, (t) => getTypeFacts(t, notEqualFacts) === notEqualFacts);\n }\n const clauseWitnesses = witnesses.slice(clauseStart, clauseEnd);\n return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));\n }\n function narrowTypeBySwitchOnTrue(type, { switchStatement, clauseStart, clauseEnd }) {\n const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 298 /* DefaultClause */);\n const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;\n for (let i = 0; i < clauseStart; i++) {\n const clause = switchStatement.caseBlock.clauses[i];\n if (clause.kind === 297 /* CaseClause */) {\n type = narrowType(\n type,\n clause.expression,\n /*assumeTrue*/\n false\n );\n }\n }\n if (hasDefaultClause) {\n for (let i = clauseEnd; i < switchStatement.caseBlock.clauses.length; i++) {\n const clause = switchStatement.caseBlock.clauses[i];\n if (clause.kind === 297 /* CaseClause */) {\n type = narrowType(\n type,\n clause.expression,\n /*assumeTrue*/\n false\n );\n }\n }\n return type;\n }\n const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);\n return getUnionType(map(clauses, (clause) => clause.kind === 297 /* CaseClause */ ? narrowType(\n type,\n clause.expression,\n /*assumeTrue*/\n true\n ) : neverType));\n }\n function isMatchingConstructorReference(expr) {\n return (isPropertyAccessExpression(expr) && idText(expr.name) === \"constructor\" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === \"constructor\") && isMatchingReference(reference, expr.expression);\n }\n function narrowTypeByConstructor(type, operator, identifier, assumeTrue) {\n if (assumeTrue ? operator !== 35 /* EqualsEqualsToken */ && operator !== 37 /* EqualsEqualsEqualsToken */ : operator !== 36 /* ExclamationEqualsToken */ && operator !== 38 /* ExclamationEqualsEqualsToken */) {\n return type;\n }\n const identifierType = getTypeOfExpression(identifier);\n if (!isFunctionType(identifierType) && !isConstructorType(identifierType)) {\n return type;\n }\n const prototypeProperty = getPropertyOfType(identifierType, \"prototype\");\n if (!prototypeProperty) {\n return type;\n }\n const prototypeType = getTypeOfSymbol(prototypeProperty);\n const candidate = !isTypeAny(prototypeType) ? prototypeType : void 0;\n if (!candidate || candidate === globalObjectType || candidate === globalFunctionType) {\n return type;\n }\n if (isTypeAny(type)) {\n return candidate;\n }\n return filterType(type, (t) => isConstructedBy(t, candidate));\n function isConstructedBy(source, target) {\n if (source.flags & 524288 /* Object */ && getObjectFlags(source) & 1 /* Class */ || target.flags & 524288 /* Object */ && getObjectFlags(target) & 1 /* Class */) {\n return source.symbol === target.symbol;\n }\n return isTypeSubtypeOf(source, target);\n }\n }\n function narrowTypeByInstanceof(type, expr, assumeTrue) {\n const left = getReferenceCandidate(expr.left);\n if (!isMatchingReference(reference, left)) {\n if (assumeTrue && strictNullChecks && optionalChainContainsReference(left, reference)) {\n return getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n }\n return type;\n }\n const right = expr.right;\n const rightType = getTypeOfExpression(right);\n if (!isTypeDerivedFrom(rightType, globalObjectType)) {\n return type;\n }\n const signature = getEffectsSignature(expr);\n const predicate = signature && getTypePredicateOfSignature(signature);\n if (predicate && predicate.kind === 1 /* Identifier */ && predicate.parameterIndex === 0) {\n return getNarrowedType(\n type,\n predicate.type,\n assumeTrue,\n /*checkDerived*/\n true\n );\n }\n if (!isTypeDerivedFrom(rightType, globalFunctionType)) {\n return type;\n }\n const instanceType = mapType(rightType, getInstanceType);\n if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(instanceType))) {\n return type;\n }\n return getNarrowedType(\n type,\n instanceType,\n assumeTrue,\n /*checkDerived*/\n true\n );\n }\n function getInstanceType(constructorType) {\n const prototypePropertyType = getTypeOfPropertyOfType(constructorType, \"prototype\");\n if (prototypePropertyType && !isTypeAny(prototypePropertyType)) {\n return prototypePropertyType;\n }\n const constructSignatures = getSignaturesOfType(constructorType, 1 /* Construct */);\n if (constructSignatures.length) {\n return getUnionType(map(constructSignatures, (signature) => getReturnTypeOfSignature(getErasedSignature(signature))));\n }\n return emptyObjectType;\n }\n function getNarrowedType(type, candidate, assumeTrue, checkDerived) {\n const key2 = type.flags & 1048576 /* Union */ ? `N${getTypeId(type)},${getTypeId(candidate)},${(assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)}` : void 0;\n return getCachedType(key2) ?? setCachedType(key2, getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived));\n }\n function getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived) {\n if (!assumeTrue) {\n if (type === candidate) {\n return neverType;\n }\n if (checkDerived) {\n return filterType(type, (t) => !isTypeDerivedFrom(t, candidate));\n }\n type = type.flags & 2 /* Unknown */ ? unknownUnionType : type;\n const trueType2 = getNarrowedType(\n type,\n candidate,\n /*assumeTrue*/\n true,\n /*checkDerived*/\n false\n );\n return recombineUnknownType(filterType(type, (t) => !isTypeSubsetOf(t, trueType2)));\n }\n if (type.flags & 3 /* AnyOrUnknown */) {\n return candidate;\n }\n if (type === candidate) {\n return candidate;\n }\n const isRelated = checkDerived ? isTypeDerivedFrom : isTypeSubtypeOf;\n const keyPropertyName = type.flags & 1048576 /* Union */ ? getKeyPropertyName(type) : void 0;\n const narrowedType = mapType(candidate, (c) => {\n const discriminant = keyPropertyName && getTypeOfPropertyOfType(c, keyPropertyName);\n const matching = discriminant && getConstituentTypeForKeyType(type, discriminant);\n const directlyRelated = mapType(\n matching || type,\n checkDerived ? (t) => isTypeDerivedFrom(t, c) ? t : isTypeDerivedFrom(c, t) ? c : neverType : (t) => isTypeStrictSubtypeOf(t, c) ? t : isTypeStrictSubtypeOf(c, t) ? c : isTypeSubtypeOf(t, c) ? t : isTypeSubtypeOf(c, t) ? c : neverType\n );\n return directlyRelated.flags & 131072 /* Never */ ? mapType(type, (t) => maybeTypeOfKind(t, 465829888 /* Instantiable */) && isRelated(c, getBaseConstraintOfType(t) || unknownType) ? getIntersectionType([t, c]) : neverType) : directlyRelated;\n });\n return !(narrowedType.flags & 131072 /* Never */) ? narrowedType : isTypeSubtypeOf(candidate, type) ? candidate : isTypeAssignableTo(type, candidate) ? type : isTypeAssignableTo(candidate, type) ? candidate : getIntersectionType([type, candidate]);\n }\n function narrowTypeByCallExpression(type, callExpression, assumeTrue) {\n if (hasMatchingArgument(callExpression, reference)) {\n const signature = assumeTrue || !isCallChain(callExpression) ? getEffectsSignature(callExpression) : void 0;\n const predicate = signature && getTypePredicateOfSignature(signature);\n if (predicate && (predicate.kind === 0 /* This */ || predicate.kind === 1 /* Identifier */)) {\n return narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue);\n }\n }\n if (containsMissingType(type) && isAccessExpression(reference) && isPropertyAccessExpression(callExpression.expression)) {\n const callAccess = callExpression.expression;\n if (isMatchingReference(reference.expression, getReferenceCandidate(callAccess.expression)) && isIdentifier(callAccess.name) && callAccess.name.escapedText === \"hasOwnProperty\" && callExpression.arguments.length === 1) {\n const argument = callExpression.arguments[0];\n if (isStringLiteralLike(argument) && getAccessedPropertyName(reference) === escapeLeadingUnderscores(argument.text)) {\n return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);\n }\n }\n }\n return type;\n }\n function narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue) {\n if (predicate.type && !(isTypeAny(type) && (predicate.type === globalObjectType || predicate.type === globalFunctionType))) {\n const predicateArgument = getTypePredicateArgument(predicate, callExpression);\n if (predicateArgument) {\n if (isMatchingReference(reference, predicateArgument)) {\n return getNarrowedType(\n type,\n predicate.type,\n assumeTrue,\n /*checkDerived*/\n false\n );\n }\n if (strictNullChecks && optionalChainContainsReference(predicateArgument, reference) && (assumeTrue && !hasTypeFacts(predicate.type, 65536 /* EQUndefined */) || !assumeTrue && everyType(predicate.type, isNullableType))) {\n type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n }\n const access = getDiscriminantPropertyAccess(predicateArgument, type);\n if (access) {\n return narrowTypeByDiscriminant(type, access, (t) => getNarrowedType(\n t,\n predicate.type,\n assumeTrue,\n /*checkDerived*/\n false\n ));\n }\n }\n }\n return type;\n }\n function narrowType(type, expr, assumeTrue) {\n if (isExpressionOfOptionalChainRoot(expr) || isBinaryExpression(expr.parent) && (expr.parent.operatorToken.kind === 61 /* QuestionQuestionToken */ || expr.parent.operatorToken.kind === 78 /* QuestionQuestionEqualsToken */) && expr.parent.left === expr) {\n return narrowTypeByOptionality(type, expr, assumeTrue);\n }\n switch (expr.kind) {\n case 80 /* Identifier */:\n if (!isMatchingReference(reference, expr) && inlineLevel < 5) {\n const symbol = getResolvedSymbol(expr);\n if (isConstantVariable(symbol)) {\n const declaration = symbol.valueDeclaration;\n if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isConstantReference(reference)) {\n inlineLevel++;\n const result = narrowType(type, declaration.initializer, assumeTrue);\n inlineLevel--;\n return result;\n }\n }\n }\n // falls through\n case 110 /* ThisKeyword */:\n case 108 /* SuperKeyword */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return narrowTypeByTruthiness(type, expr, assumeTrue);\n case 214 /* CallExpression */:\n return narrowTypeByCallExpression(type, expr, assumeTrue);\n case 218 /* ParenthesizedExpression */:\n case 236 /* NonNullExpression */:\n case 239 /* SatisfiesExpression */:\n return narrowType(type, expr.expression, assumeTrue);\n case 227 /* BinaryExpression */:\n return narrowTypeByBinaryExpression(type, expr, assumeTrue);\n case 225 /* PrefixUnaryExpression */:\n if (expr.operator === 54 /* ExclamationToken */) {\n return narrowType(type, expr.operand, !assumeTrue);\n }\n break;\n }\n return type;\n }\n function narrowTypeByOptionality(type, expr, assumePresent) {\n if (isMatchingReference(reference, expr)) {\n return getAdjustedTypeWithFacts(type, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */);\n }\n const access = getDiscriminantPropertyAccess(expr, type);\n if (access) {\n return narrowTypeByDiscriminant(type, access, (t) => getTypeWithFacts(t, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */));\n }\n return type;\n }\n }\n function getTypeOfSymbolAtLocation(symbol, location) {\n symbol = getExportSymbolOfValueSymbolIfExported(symbol);\n if (location.kind === 80 /* Identifier */ || location.kind === 81 /* PrivateIdentifier */) {\n if (isRightSideOfQualifiedNameOrPropertyAccess(location)) {\n location = location.parent;\n }\n if (isExpressionNode(location) && (!isAssignmentTarget(location) || isWriteAccess(location))) {\n const type = removeOptionalTypeMarker(\n isWriteAccess(location) && location.kind === 212 /* PropertyAccessExpression */ ? checkPropertyAccessExpression(\n location,\n /*checkMode*/\n void 0,\n /*writeOnly*/\n true\n ) : getTypeOfExpression(location)\n );\n if (getExportSymbolOfValueSymbolIfExported(getNodeLinks(location).resolvedSymbol) === symbol) {\n return type;\n }\n }\n }\n if (isDeclarationName(location) && isSetAccessor(location.parent) && getAnnotatedAccessorTypeNode(location.parent)) {\n return getWriteTypeOfAccessors(location.parent.symbol);\n }\n return isRightSideOfAccessExpression(location) && isWriteAccess(location.parent) ? getWriteTypeOfSymbol(symbol) : getNonMissingTypeOfSymbol(symbol);\n }\n function getControlFlowContainer(node) {\n return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 269 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 173 /* PropertyDeclaration */);\n }\n function isSymbolAssignedDefinitely(symbol) {\n if (symbol.lastAssignmentPos !== void 0) {\n return symbol.lastAssignmentPos < 0;\n }\n return isSymbolAssigned(symbol) && symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0;\n }\n function isSymbolAssigned(symbol) {\n return !isPastLastAssignment(\n symbol,\n /*location*/\n void 0\n );\n }\n function isPastLastAssignment(symbol, location) {\n const parent2 = findAncestor(symbol.valueDeclaration, isFunctionOrSourceFile);\n if (!parent2) {\n return false;\n }\n const links = getNodeLinks(parent2);\n if (!(links.flags & 131072 /* AssignmentsMarked */)) {\n links.flags |= 131072 /* AssignmentsMarked */;\n if (!hasParentWithAssignmentsMarked(parent2)) {\n markNodeAssignments(parent2);\n }\n }\n return !symbol.lastAssignmentPos || location && Math.abs(symbol.lastAssignmentPos) < location.pos;\n }\n function isSomeSymbolAssigned(rootDeclaration) {\n Debug.assert(isVariableDeclaration(rootDeclaration) || isParameter(rootDeclaration));\n return isSomeSymbolAssignedWorker(rootDeclaration.name);\n }\n function isSomeSymbolAssignedWorker(node) {\n if (node.kind === 80 /* Identifier */) {\n return isSymbolAssigned(getSymbolOfDeclaration(node.parent));\n }\n return some(node.elements, (e) => e.kind !== 233 /* OmittedExpression */ && isSomeSymbolAssignedWorker(e.name));\n }\n function hasParentWithAssignmentsMarked(node) {\n return !!findAncestor(node.parent, (node2) => isFunctionOrSourceFile(node2) && !!(getNodeLinks(node2).flags & 131072 /* AssignmentsMarked */));\n }\n function isFunctionOrSourceFile(node) {\n return isFunctionLikeDeclaration(node) || isSourceFile(node);\n }\n function markNodeAssignments(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n const assigmentTarget = getAssignmentTargetKind(node);\n if (assigmentTarget !== 0 /* None */) {\n const symbol = getResolvedSymbol(node);\n const hasDefiniteAssignment = assigmentTarget === 1 /* Definite */ || symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0;\n if (isParameterOrMutableLocalVariable(symbol)) {\n if (symbol.lastAssignmentPos === void 0 || Math.abs(symbol.lastAssignmentPos) !== Number.MAX_VALUE) {\n const referencingFunction = findAncestor(node, isFunctionOrSourceFile);\n const declaringFunction = findAncestor(symbol.valueDeclaration, isFunctionOrSourceFile);\n symbol.lastAssignmentPos = referencingFunction === declaringFunction ? extendAssignmentPosition(node, symbol.valueDeclaration) : Number.MAX_VALUE;\n }\n if (hasDefiniteAssignment && symbol.lastAssignmentPos > 0) {\n symbol.lastAssignmentPos *= -1;\n }\n }\n }\n return;\n case 282 /* ExportSpecifier */:\n const exportDeclaration = node.parent.parent;\n const name = node.propertyName || node.name;\n if (!node.isTypeOnly && !exportDeclaration.isTypeOnly && !exportDeclaration.moduleSpecifier && name.kind !== 11 /* StringLiteral */) {\n const symbol = resolveEntityName(\n name,\n 111551 /* Value */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true\n );\n if (symbol && isParameterOrMutableLocalVariable(symbol)) {\n const sign = symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0 ? -1 : 1;\n symbol.lastAssignmentPos = sign * Number.MAX_VALUE;\n }\n }\n return;\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n return;\n }\n if (isTypeNode(node)) {\n return;\n }\n forEachChild(node, markNodeAssignments);\n }\n function extendAssignmentPosition(node, declaration) {\n let pos = node.pos;\n while (node && node.pos > declaration.pos) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n case 245 /* ExpressionStatement */:\n case 246 /* IfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 255 /* WithStatement */:\n case 256 /* SwitchStatement */:\n case 259 /* TryStatement */:\n case 264 /* ClassDeclaration */:\n pos = node.end;\n }\n node = node.parent;\n }\n return pos;\n }\n function isConstantVariable(symbol) {\n return symbol.flags & 3 /* Variable */ && (getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */) !== 0;\n }\n function isParameterOrMutableLocalVariable(symbol) {\n const declaration = symbol.valueDeclaration && getRootDeclaration(symbol.valueDeclaration);\n return !!declaration && (isParameter(declaration) || isVariableDeclaration(declaration) && (isCatchClause(declaration.parent) || isMutableLocalVariableDeclaration(declaration)));\n }\n function isMutableLocalVariableDeclaration(declaration) {\n return !!(declaration.parent.flags & 1 /* Let */) && !(getCombinedModifierFlags(declaration) & 32 /* Export */ || declaration.parent.parent.kind === 244 /* VariableStatement */ && isGlobalSourceFile(declaration.parent.parent.parent));\n }\n function parameterInitializerContainsUndefined(declaration) {\n const links = getNodeLinks(declaration);\n if (links.parameterInitializerContainsUndefined === void 0) {\n if (!pushTypeResolution(declaration, 8 /* ParameterInitializerContainsUndefined */)) {\n reportCircularityError(declaration.symbol);\n return true;\n }\n const containsUndefined = !!hasTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */), 16777216 /* IsUndefined */);\n if (!popTypeResolution()) {\n reportCircularityError(declaration.symbol);\n return true;\n }\n links.parameterInitializerContainsUndefined ?? (links.parameterInitializerContainsUndefined = containsUndefined);\n }\n return links.parameterInitializerContainsUndefined;\n }\n function removeOptionalityFromDeclaredType(declaredType, declaration) {\n const removeUndefined = strictNullChecks && declaration.kind === 170 /* Parameter */ && declaration.initializer && hasTypeFacts(declaredType, 16777216 /* IsUndefined */) && !parameterInitializerContainsUndefined(declaration);\n return removeUndefined ? getTypeWithFacts(declaredType, 524288 /* NEUndefined */) : declaredType;\n }\n function isConstraintPosition(type, node) {\n const parent2 = node.parent;\n return parent2.kind === 212 /* PropertyAccessExpression */ || parent2.kind === 167 /* QualifiedName */ || parent2.kind === 214 /* CallExpression */ && parent2.expression === node || parent2.kind === 215 /* NewExpression */ && parent2.expression === node || parent2.kind === 213 /* ElementAccessExpression */ && parent2.expression === node && !(someType(type, isGenericTypeWithoutNullableConstraint) && isGenericIndexType(getTypeOfExpression(parent2.argumentExpression)));\n }\n function isGenericTypeWithUnionConstraint(type) {\n return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithUnionConstraint) : !!(type.flags & 465829888 /* Instantiable */ && getBaseConstraintOrType(type).flags & (98304 /* Nullable */ | 1048576 /* Union */));\n }\n function isGenericTypeWithoutNullableConstraint(type) {\n return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithoutNullableConstraint) : !!(type.flags & 465829888 /* Instantiable */ && !maybeTypeOfKind(getBaseConstraintOrType(type), 98304 /* Nullable */));\n }\n function hasContextualTypeWithNoGenericTypes(node, checkMode) {\n const contextualType = (isIdentifier(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node)) && !((isJsxOpeningElement(node.parent) || isJsxSelfClosingElement(node.parent)) && node.parent.tagName === node) && (checkMode && checkMode & 32 /* RestBindingElement */ ? getContextualType2(node, 8 /* SkipBindingPatterns */) : getContextualType2(\n node,\n /*contextFlags*/\n void 0\n ));\n return contextualType && !isGenericType(contextualType);\n }\n function getNarrowableTypeForReference(type, reference, checkMode) {\n if (isNoInferType(type)) {\n type = type.baseType;\n }\n const substituteConstraints = !(checkMode && checkMode & 2 /* Inferential */) && someType(type, isGenericTypeWithUnionConstraint) && (isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode));\n return substituteConstraints ? mapType(type, getBaseConstraintOrType) : type;\n }\n function isExportOrExportExpression(location) {\n return !!findAncestor(location, (n) => {\n const parent2 = n.parent;\n if (parent2 === void 0) {\n return \"quit\";\n }\n if (isExportAssignment(parent2)) {\n return parent2.expression === n && isEntityNameExpression(n);\n }\n if (isExportSpecifier(parent2)) {\n return parent2.name === n || parent2.propertyName === n;\n }\n return false;\n });\n }\n function markLinkedReferences(location, hint, propSymbol, parentType) {\n if (!canCollectSymbolAliasAccessabilityData) {\n return;\n }\n if (location.flags & 33554432 /* Ambient */ && !isPropertySignature(location) && !isPropertyDeclaration(location)) {\n return;\n }\n switch (hint) {\n case 1 /* Identifier */:\n return markIdentifierAliasReferenced(location);\n case 2 /* Property */:\n return markPropertyAliasReferenced(location, propSymbol, parentType);\n case 3 /* ExportAssignment */:\n return markExportAssignmentAliasReferenced(location);\n case 4 /* Jsx */:\n return markJsxAliasReferenced(location);\n case 5 /* AsyncFunction */:\n return markAsyncFunctionAliasReferenced(location);\n case 6 /* ExportImportEquals */:\n return markImportEqualsAliasReferenced(location);\n case 7 /* ExportSpecifier */:\n return markExportSpecifierAliasReferenced(location);\n case 8 /* Decorator */:\n return markDecoratorAliasReferenced(location);\n case 0 /* Unspecified */: {\n if (isIdentifier(location) && (isExpressionNode(location) || isShorthandPropertyAssignment(location.parent) || isImportEqualsDeclaration(location.parent) && location.parent.moduleReference === location) && shouldMarkIdentifierAliasReferenced(location)) {\n if (isPropertyAccessOrQualifiedName(location.parent)) {\n const left = isPropertyAccessExpression(location.parent) ? location.parent.expression : location.parent.left;\n if (left !== location) return;\n }\n markIdentifierAliasReferenced(location);\n return;\n }\n if (isPropertyAccessOrQualifiedName(location)) {\n let topProp = location;\n while (isPropertyAccessOrQualifiedName(topProp)) {\n if (isPartOfTypeNode(topProp)) return;\n topProp = topProp.parent;\n }\n return markPropertyAliasReferenced(location);\n }\n if (isExportAssignment(location)) {\n return markExportAssignmentAliasReferenced(location);\n }\n if (isJsxOpeningLikeElement(location) || isJsxOpeningFragment(location)) {\n return markJsxAliasReferenced(location);\n }\n if (isImportEqualsDeclaration(location)) {\n if (isInternalModuleImportEqualsDeclaration(location) || checkExternalImportOrExportDeclaration(location)) {\n return markImportEqualsAliasReferenced(location);\n }\n return;\n }\n if (isExportSpecifier(location)) {\n return markExportSpecifierAliasReferenced(location);\n }\n if (isFunctionLikeDeclaration(location) || isMethodSignature(location)) {\n markAsyncFunctionAliasReferenced(location);\n }\n if (!compilerOptions.emitDecoratorMetadata) {\n return;\n }\n if (!canHaveDecorators(location) || !hasDecorators(location) || !location.modifiers || !nodeCanBeDecorated(legacyDecorators, location, location.parent, location.parent.parent)) {\n return;\n }\n return markDecoratorAliasReferenced(location);\n }\n default:\n Debug.assertNever(hint, `Unhandled reference hint: ${hint}`);\n }\n }\n function markIdentifierAliasReferenced(location) {\n const symbol = getResolvedSymbol(location);\n if (symbol && symbol !== argumentsSymbol && symbol !== unknownSymbol && !isThisInTypeQuery(location)) {\n markAliasReferenced(symbol, location);\n }\n }\n function markPropertyAliasReferenced(location, propSymbol, parentType) {\n const left = isPropertyAccessExpression(location) ? location.expression : location.left;\n if (isThisIdentifier(left) || !isIdentifier(left)) {\n return;\n }\n const parentSymbol = getResolvedSymbol(left);\n if (!parentSymbol || parentSymbol === unknownSymbol) {\n return;\n }\n if (getIsolatedModules(compilerOptions) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(location)) {\n markAliasReferenced(parentSymbol, location);\n return;\n }\n const leftType = parentType || checkExpressionCached(left);\n if (isTypeAny(leftType) || leftType === silentNeverType) {\n markAliasReferenced(parentSymbol, location);\n return;\n }\n let prop = propSymbol;\n if (!prop && !parentType) {\n const right = isPropertyAccessExpression(location) ? location.name : location.right;\n const lexicallyScopedSymbol = isPrivateIdentifier(right) && lookupSymbolForPrivateIdentifierDeclaration(right.escapedText, right);\n const assignmentKind = getAssignmentTargetKind(location);\n const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(location) ? getWidenedType(leftType) : leftType);\n prop = isPrivateIdentifier(right) ? lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(apparentType, lexicallyScopedSymbol) || void 0 : getPropertyOfType(apparentType, right.escapedText);\n }\n if (!(prop && (isConstEnumOrConstEnumOnlyModule(prop) || prop.flags & 8 /* EnumMember */ && location.parent.kind === 307 /* EnumMember */))) {\n markAliasReferenced(parentSymbol, location);\n }\n return;\n }\n function markExportAssignmentAliasReferenced(location) {\n if (isIdentifier(location.expression)) {\n const id = location.expression;\n const sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(\n id,\n -1 /* All */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n location\n ));\n if (sym) {\n markAliasReferenced(sym, id);\n }\n }\n }\n function markJsxAliasReferenced(node) {\n if (!getJsxNamespaceContainerForImplicitImport(node)) {\n const jsxFactoryRefErr = diagnostics && compilerOptions.jsx === 2 /* React */ ? Diagnostics.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found : void 0;\n const jsxFactoryNamespace = getJsxNamespace(node);\n const jsxFactoryLocation = isJsxOpeningLikeElement(node) ? node.tagName : node;\n const shouldFactoryRefErr = compilerOptions.jsx !== 1 /* Preserve */ && compilerOptions.jsx !== 3 /* ReactNative */;\n let jsxFactorySym;\n if (!(isJsxOpeningFragment(node) && jsxFactoryNamespace === \"null\")) {\n jsxFactorySym = resolveName(\n jsxFactoryLocation,\n jsxFactoryNamespace,\n shouldFactoryRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n jsxFactoryRefErr,\n /*isUse*/\n true\n );\n }\n if (jsxFactorySym) {\n jsxFactorySym.isReferenced = -1 /* All */;\n if (canCollectSymbolAliasAccessabilityData && jsxFactorySym.flags & 2097152 /* Alias */ && !getTypeOnlyAliasDeclaration(jsxFactorySym)) {\n markAliasSymbolAsReferenced(jsxFactorySym);\n }\n }\n if (isJsxOpeningFragment(node)) {\n const file = getSourceFileOfNode(node);\n const entity = getJsxFactoryEntity(file);\n if (entity) {\n const localJsxNamespace = getFirstIdentifier(entity).escapedText;\n resolveName(\n jsxFactoryLocation,\n localJsxNamespace,\n shouldFactoryRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n jsxFactoryRefErr,\n /*isUse*/\n true\n );\n }\n }\n }\n return;\n }\n function markAsyncFunctionAliasReferenced(location) {\n if (languageVersion < 2 /* ES2015 */) {\n if (getFunctionFlags(location) & 2 /* Async */) {\n const returnTypeNode = getEffectiveReturnTypeNode(location);\n markTypeNodeAsReferenced(returnTypeNode);\n }\n }\n }\n function markImportEqualsAliasReferenced(location) {\n if (hasSyntacticModifier(location, 32 /* Export */)) {\n markExportAsReferenced(location);\n }\n }\n function markExportSpecifierAliasReferenced(location) {\n if (!location.parent.parent.moduleSpecifier && !location.isTypeOnly && !location.parent.parent.isTypeOnly) {\n const exportedName = location.propertyName || location.name;\n if (exportedName.kind === 11 /* StringLiteral */) {\n return;\n }\n const symbol = resolveName(\n exportedName,\n exportedName.escapedText,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (symbol && (symbol === undefinedSymbol || symbol === globalThisSymbol || symbol.declarations && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) {\n } else {\n const target = symbol && (symbol.flags & 2097152 /* Alias */ ? resolveAlias(symbol) : symbol);\n if (!target || getSymbolFlags(target) & 111551 /* Value */) {\n markExportAsReferenced(location);\n markIdentifierAliasReferenced(exportedName);\n }\n }\n return;\n }\n }\n function markDecoratorAliasReferenced(node) {\n if (compilerOptions.emitDecoratorMetadata) {\n const firstDecorator = find(node.modifiers, isDecorator);\n if (!firstDecorator) {\n return;\n }\n checkExternalEmitHelpers(firstDecorator, 16 /* Metadata */);\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n const constructor = getFirstConstructorWithBody(node);\n if (constructor) {\n for (const parameter of constructor.parameters) {\n markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n }\n }\n break;\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n const otherKind = node.kind === 178 /* GetAccessor */ ? 179 /* SetAccessor */ : 178 /* GetAccessor */;\n const otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(node), otherKind);\n markDecoratorMedataDataTypeNodeAsReferenced(getAnnotatedAccessorTypeNode(node) || otherAccessor && getAnnotatedAccessorTypeNode(otherAccessor));\n break;\n case 175 /* MethodDeclaration */:\n for (const parameter of node.parameters) {\n markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n }\n markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(node));\n break;\n case 173 /* PropertyDeclaration */:\n markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveTypeAnnotationNode(node));\n break;\n case 170 /* Parameter */:\n markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(node));\n const containingSignature = node.parent;\n for (const parameter of containingSignature.parameters) {\n markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n }\n markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(containingSignature));\n break;\n }\n }\n }\n function markAliasReferenced(symbol, location) {\n if (!canCollectSymbolAliasAccessabilityData) {\n return;\n }\n if (isNonLocalAlias(\n symbol,\n /*excludes*/\n 111551 /* Value */\n ) && !isInTypeQuery(location)) {\n const target = resolveAlias(symbol);\n if (getSymbolFlags(\n symbol,\n /*excludeTypeOnlyMeanings*/\n true\n ) & (111551 /* Value */ | 1048576 /* ExportValue */)) {\n if (getIsolatedModules(compilerOptions) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(location) || !isConstEnumOrConstEnumOnlyModule(getExportSymbolOfValueSymbolIfExported(target))) {\n markAliasSymbolAsReferenced(symbol);\n }\n }\n }\n }\n function markAliasSymbolAsReferenced(symbol) {\n Debug.assert(canCollectSymbolAliasAccessabilityData);\n const links = getSymbolLinks(symbol);\n if (!links.referenced) {\n links.referenced = true;\n const node = getDeclarationOfAliasSymbol(symbol);\n if (!node) return Debug.fail();\n if (isInternalModuleImportEqualsDeclaration(node)) {\n if (getSymbolFlags(resolveSymbol(symbol)) & 111551 /* Value */) {\n const left = getFirstIdentifier(node.moduleReference);\n markIdentifierAliasReferenced(left);\n }\n }\n }\n }\n function markExportAsReferenced(node) {\n const symbol = getSymbolOfDeclaration(node);\n const target = resolveAlias(symbol);\n if (target) {\n const markAlias = target === unknownSymbol || getSymbolFlags(\n symbol,\n /*excludeTypeOnlyMeanings*/\n true\n ) & 111551 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target);\n if (markAlias) {\n markAliasSymbolAsReferenced(symbol);\n }\n }\n }\n function markEntityNameOrEntityExpressionAsReference(typeName, forDecoratorMetadata) {\n if (!typeName) return;\n const rootName = getFirstIdentifier(typeName);\n const meaning = (typeName.kind === 80 /* Identifier */ ? 788968 /* Type */ : 1920 /* Namespace */) | 2097152 /* Alias */;\n const rootSymbol = resolveName(\n rootName,\n rootName.escapedText,\n meaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (rootSymbol && rootSymbol.flags & 2097152 /* Alias */) {\n if (canCollectSymbolAliasAccessabilityData && symbolIsValue(rootSymbol) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(rootSymbol)) && !getTypeOnlyAliasDeclaration(rootSymbol)) {\n markAliasSymbolAsReferenced(rootSymbol);\n } else if (forDecoratorMetadata && getIsolatedModules(compilerOptions) && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */ && !symbolIsValue(rootSymbol) && !some(rootSymbol.declarations, isTypeOnlyImportOrExportDeclaration)) {\n const diag2 = error2(typeName, Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled);\n const aliasDeclaration = find(rootSymbol.declarations || emptyArray, isAliasSymbolDeclaration);\n if (aliasDeclaration) {\n addRelatedInfo(diag2, createDiagnosticForNode(aliasDeclaration, Diagnostics._0_was_imported_here, idText(rootName)));\n }\n }\n }\n }\n function markTypeNodeAsReferenced(node) {\n markEntityNameOrEntityExpressionAsReference(\n node && getEntityNameFromTypeNode(node),\n /*forDecoratorMetadata*/\n false\n );\n }\n function markDecoratorMedataDataTypeNodeAsReferenced(node) {\n const entityName = getEntityNameForDecoratorMetadata(node);\n if (entityName && isEntityName(entityName)) {\n markEntityNameOrEntityExpressionAsReference(\n entityName,\n /*forDecoratorMetadata*/\n true\n );\n }\n }\n function getNarrowedTypeOfSymbol(symbol, location) {\n var _a;\n const type = getTypeOfSymbol(symbol);\n const declaration = symbol.valueDeclaration;\n if (declaration) {\n if (isBindingElement(declaration) && !declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) {\n const parent2 = declaration.parent.parent;\n const rootDeclaration = getRootDeclaration(parent2);\n if (rootDeclaration.kind === 261 /* VariableDeclaration */ && getCombinedNodeFlagsCached(rootDeclaration) & 6 /* Constant */ || rootDeclaration.kind === 170 /* Parameter */) {\n const links = getNodeLinks(parent2);\n if (!(links.flags & 4194304 /* InCheckIdentifier */)) {\n links.flags |= 4194304 /* InCheckIdentifier */;\n const parentType = getTypeForBindingElementParent(parent2, 0 /* Normal */);\n const parentTypeConstraint = parentType && mapType(parentType, getBaseConstraintOrType);\n links.flags &= ~4194304 /* InCheckIdentifier */;\n if (parentTypeConstraint && parentTypeConstraint.flags & 1048576 /* Union */ && !(rootDeclaration.kind === 170 /* Parameter */ && isSomeSymbolAssigned(rootDeclaration))) {\n const pattern = declaration.parent;\n const narrowedType = getFlowTypeOfReference(\n pattern,\n parentTypeConstraint,\n parentTypeConstraint,\n /*flowContainer*/\n void 0,\n location.flowNode\n );\n if (narrowedType.flags & 131072 /* Never */) {\n return neverType;\n }\n return getBindingElementTypeFromParentType(\n declaration,\n narrowedType,\n /*noTupleBoundsCheck*/\n true\n );\n }\n }\n }\n }\n if (isParameter(declaration) && !declaration.type && !declaration.initializer && !declaration.dotDotDotToken) {\n const func = declaration.parent;\n if (func.parameters.length >= 2 && isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n const contextualSignature = getContextualSignature(func);\n if (contextualSignature && contextualSignature.parameters.length === 1 && signatureHasRestParameter(contextualSignature)) {\n const restType = getReducedApparentType(instantiateType(getTypeOfSymbol(contextualSignature.parameters[0]), (_a = getInferenceContext(func)) == null ? void 0 : _a.nonFixingMapper));\n if (restType.flags & 1048576 /* Union */ && everyType(restType, isTupleType) && !some(func.parameters, isSomeSymbolAssigned)) {\n const narrowedType = getFlowTypeOfReference(\n func,\n restType,\n restType,\n /*flowContainer*/\n void 0,\n location.flowNode\n );\n const index = func.parameters.indexOf(declaration) - (getThisParameter(func) ? 1 : 0);\n return getIndexedAccessType(narrowedType, getNumberLiteralType(index));\n }\n }\n }\n }\n }\n return type;\n }\n function checkIdentifierCalculateNodeCheckFlags(node, symbol) {\n if (isThisInTypeQuery(node)) return;\n if (symbol === argumentsSymbol) {\n if (isInPropertyInitializerOrClassStaticBlock(\n node,\n /*ignoreArrowFunctions*/\n true\n )) {\n error2(node, Diagnostics.arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks);\n return;\n }\n let container = getContainingFunction(node);\n if (container) {\n if (languageVersion < 2 /* ES2015 */) {\n if (container.kind === 220 /* ArrowFunction */) {\n error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression);\n } else if (hasSyntacticModifier(container, 1024 /* Async */)) {\n error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method);\n }\n }\n getNodeLinks(container).flags |= 512 /* CaptureArguments */;\n while (container && isArrowFunction(container)) {\n container = getContainingFunction(container);\n if (container) {\n getNodeLinks(container).flags |= 512 /* CaptureArguments */;\n }\n }\n }\n return;\n }\n const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);\n const targetSymbol = resolveAliasWithDeprecationCheck(localOrExportSymbol, node);\n if (isDeprecatedSymbol(targetSymbol) && isUncalledFunctionReference(node, targetSymbol) && targetSymbol.declarations) {\n addDeprecatedSuggestion(node, targetSymbol.declarations, node.escapedText);\n }\n const declaration = localOrExportSymbol.valueDeclaration;\n if (declaration && localOrExportSymbol.flags & 32 /* Class */) {\n if (isClassLike(declaration) && declaration.name !== node) {\n let container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n while (container.kind !== 308 /* SourceFile */ && container.parent !== declaration) {\n container = getThisContainer(\n container,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n }\n if (container.kind !== 308 /* SourceFile */) {\n getNodeLinks(declaration).flags |= 262144 /* ContainsConstructorReference */;\n getNodeLinks(container).flags |= 262144 /* ContainsConstructorReference */;\n getNodeLinks(node).flags |= 536870912 /* ConstructorReference */;\n }\n }\n }\n checkNestedBlockScopedBinding(node, symbol);\n }\n function checkIdentifier(node, checkMode) {\n if (isThisInTypeQuery(node)) {\n return checkThisExpression(node);\n }\n const symbol = getResolvedSymbol(node);\n if (symbol === unknownSymbol) {\n return errorType;\n }\n checkIdentifierCalculateNodeCheckFlags(node, symbol);\n if (symbol === argumentsSymbol) {\n if (isInPropertyInitializerOrClassStaticBlock(node)) {\n return errorType;\n }\n return getTypeOfSymbol(symbol);\n }\n if (shouldMarkIdentifierAliasReferenced(node)) {\n markLinkedReferences(node, 1 /* Identifier */);\n }\n const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);\n let declaration = localOrExportSymbol.valueDeclaration;\n const immediateDeclaration = declaration;\n if (declaration && declaration.kind === 209 /* BindingElement */ && contains(contextualBindingPatterns, declaration.parent) && findAncestor(node, (parent2) => parent2 === declaration.parent)) {\n return nonInferrableAnyType;\n }\n let type = getNarrowedTypeOfSymbol(localOrExportSymbol, node);\n const assignmentKind = getAssignmentTargetKind(node);\n if (assignmentKind) {\n if (!(localOrExportSymbol.flags & 3 /* Variable */) && !(isInJSFile(node) && localOrExportSymbol.flags & 512 /* ValueModule */)) {\n const assignmentError = localOrExportSymbol.flags & 384 /* Enum */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_enum : localOrExportSymbol.flags & 32 /* Class */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_class : localOrExportSymbol.flags & 1536 /* Module */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace : localOrExportSymbol.flags & 16 /* Function */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_function : localOrExportSymbol.flags & 2097152 /* Alias */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_import : Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;\n error2(node, assignmentError, symbolToString(symbol));\n return errorType;\n }\n if (isReadonlySymbol(localOrExportSymbol)) {\n if (localOrExportSymbol.flags & 3 /* Variable */) {\n error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_constant, symbolToString(symbol));\n } else {\n error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(symbol));\n }\n return errorType;\n }\n }\n const isAlias = localOrExportSymbol.flags & 2097152 /* Alias */;\n if (localOrExportSymbol.flags & 3 /* Variable */) {\n if (assignmentKind === 1 /* Definite */) {\n return isInCompoundLikeAssignment(node) ? getBaseTypeOfLiteralType(type) : type;\n }\n } else if (isAlias) {\n declaration = getDeclarationOfAliasSymbol(symbol);\n } else {\n return type;\n }\n if (!declaration) {\n return type;\n }\n type = getNarrowableTypeForReference(type, node, checkMode);\n const isParameter2 = getRootDeclaration(declaration).kind === 170 /* Parameter */;\n const declarationContainer = getControlFlowContainer(declaration);\n let flowContainer = getControlFlowContainer(node);\n const isOuterVariable = flowContainer !== declarationContainer;\n const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent);\n const isModuleExports = symbol.flags & 134217728 /* ModuleExports */;\n const typeIsAutomatic = type === autoType || type === autoArrayType;\n const isAutomaticTypeInNonNull = typeIsAutomatic && node.parent.kind === 236 /* NonNullExpression */;\n while (flowContainer !== declarationContainer && (flowContainer.kind === 219 /* FunctionExpression */ || flowContainer.kind === 220 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstantVariable(localOrExportSymbol) && type !== autoArrayType || isParameterOrMutableLocalVariable(localOrExportSymbol) && isPastLastAssignment(localOrExportSymbol, node))) {\n flowContainer = getControlFlowContainer(flowContainer);\n }\n const isNeverInitialized = immediateDeclaration && isVariableDeclaration(immediateDeclaration) && !immediateDeclaration.initializer && !immediateDeclaration.exclamationToken && isMutableLocalVariableDeclaration(immediateDeclaration) && !isSymbolAssignedDefinitely(symbol);\n const assumeInitialized = isParameter2 || isAlias || isOuterVariable && !isNeverInitialized || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 282 /* ExportSpecifier */) || node.parent.kind === 236 /* NonNullExpression */ || declaration.kind === 261 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 33554432 /* Ambient */;\n const initialType = isAutomaticTypeInNonNull ? undefinedType : assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : typeIsAutomatic ? undefinedType : getOptionalType(type);\n const flowType = isAutomaticTypeInNonNull ? getNonNullableType(getFlowTypeOfReference(node, type, initialType, flowContainer)) : getFlowTypeOfReference(node, type, initialType, flowContainer);\n if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {\n if (flowType === autoType || flowType === autoArrayType) {\n if (noImplicitAny) {\n error2(getNameOfDeclaration(declaration), Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));\n error2(node, Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n }\n return convertAutoToAny(flowType);\n }\n } else if (!assumeInitialized && !containsUndefinedType(type) && containsUndefinedType(flowType)) {\n error2(node, Diagnostics.Variable_0_is_used_before_being_assigned, symbolToString(symbol));\n return type;\n }\n return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType;\n }\n function isSameScopedBindingElement(node, declaration) {\n if (isBindingElement(declaration)) {\n const bindingElement = findAncestor(node, isBindingElement);\n return bindingElement && getRootDeclaration(bindingElement) === getRootDeclaration(declaration);\n }\n }\n function shouldMarkIdentifierAliasReferenced(node) {\n var _a;\n const parent2 = node.parent;\n if (parent2) {\n if (isPropertyAccessExpression(parent2) && parent2.expression === node) {\n return false;\n }\n if (isExportSpecifier(parent2) && parent2.isTypeOnly) {\n return false;\n }\n const greatGrandparent = (_a = parent2.parent) == null ? void 0 : _a.parent;\n if (greatGrandparent && isExportDeclaration(greatGrandparent) && greatGrandparent.isTypeOnly) {\n return false;\n }\n }\n return true;\n }\n function isInsideFunctionOrInstancePropertyInitializer(node, threshold) {\n return !!findAncestor(node, (n) => n === threshold ? \"quit\" : isFunctionLike(n) || n.parent && isPropertyDeclaration(n.parent) && !hasStaticModifier(n.parent) && n.parent.initializer === n);\n }\n function getPartOfForStatementContainingNode(node, container) {\n return findAncestor(node, (n) => n === container ? \"quit\" : n === container.initializer || n === container.condition || n === container.incrementor || n === container.statement);\n }\n function getEnclosingIterationStatement(node) {\n return findAncestor(node, (n) => !n || nodeStartsNewLexicalEnvironment(n) ? \"quit\" : isIterationStatement(\n n,\n /*lookInLabeledStatements*/\n false\n ));\n }\n function checkNestedBlockScopedBinding(node, symbol) {\n if (languageVersion >= 2 /* ES2015 */ || (symbol.flags & (2 /* BlockScopedVariable */ | 32 /* Class */)) === 0 || !symbol.valueDeclaration || isSourceFile(symbol.valueDeclaration) || symbol.valueDeclaration.parent.kind === 300 /* CatchClause */) {\n return;\n }\n const container = getEnclosingBlockScopeContainer(symbol.valueDeclaration);\n const isCaptured = isInsideFunctionOrInstancePropertyInitializer(node, container);\n const enclosingIterationStatement = getEnclosingIterationStatement(container);\n if (enclosingIterationStatement) {\n if (isCaptured) {\n let capturesBlockScopeBindingInLoopBody = true;\n if (isForStatement(container)) {\n const varDeclList = getAncestor(symbol.valueDeclaration, 262 /* VariableDeclarationList */);\n if (varDeclList && varDeclList.parent === container) {\n const part = getPartOfForStatementContainingNode(node.parent, container);\n if (part) {\n const links = getNodeLinks(part);\n links.flags |= 8192 /* ContainsCapturedBlockScopeBinding */;\n const capturedBindings = links.capturedBlockScopeBindings || (links.capturedBlockScopeBindings = []);\n pushIfUnique(capturedBindings, symbol);\n if (part === container.initializer) {\n capturesBlockScopeBindingInLoopBody = false;\n }\n }\n }\n }\n if (capturesBlockScopeBindingInLoopBody) {\n getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n }\n }\n if (isForStatement(container)) {\n const varDeclList = getAncestor(symbol.valueDeclaration, 262 /* VariableDeclarationList */);\n if (varDeclList && varDeclList.parent === container && isAssignedInBodyOfForStatement(node, container)) {\n getNodeLinks(symbol.valueDeclaration).flags |= 65536 /* NeedsLoopOutParameter */;\n }\n }\n getNodeLinks(symbol.valueDeclaration).flags |= 32768 /* BlockScopedBindingInLoop */;\n }\n if (isCaptured) {\n getNodeLinks(symbol.valueDeclaration).flags |= 16384 /* CapturedBlockScopedBinding */;\n }\n }\n function isBindingCapturedByNode(node, decl) {\n const links = getNodeLinks(node);\n return !!links && contains(links.capturedBlockScopeBindings, getSymbolOfDeclaration(decl));\n }\n function isAssignedInBodyOfForStatement(node, container) {\n let current = node;\n while (current.parent.kind === 218 /* ParenthesizedExpression */) {\n current = current.parent;\n }\n let isAssigned = false;\n if (isAssignmentTarget(current)) {\n isAssigned = true;\n } else if (current.parent.kind === 225 /* PrefixUnaryExpression */ || current.parent.kind === 226 /* PostfixUnaryExpression */) {\n const expr = current.parent;\n isAssigned = expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */;\n }\n if (!isAssigned) {\n return false;\n }\n return !!findAncestor(current, (n) => n === container ? \"quit\" : n === container.statement);\n }\n function captureLexicalThis(node, container) {\n getNodeLinks(node).flags |= 2 /* LexicalThis */;\n if (container.kind === 173 /* PropertyDeclaration */ || container.kind === 177 /* Constructor */) {\n const classNode = container.parent;\n getNodeLinks(classNode).flags |= 4 /* CaptureThis */;\n } else {\n getNodeLinks(container).flags |= 4 /* CaptureThis */;\n }\n }\n function findFirstSuperCall(node) {\n return isSuperCall(node) ? node : isFunctionLike(node) ? void 0 : forEachChild(node, findFirstSuperCall);\n }\n function classDeclarationExtendsNull(classDecl) {\n const classSymbol = getSymbolOfDeclaration(classDecl);\n const classInstanceType = getDeclaredTypeOfSymbol(classSymbol);\n const baseConstructorType = getBaseConstructorTypeOfClass(classInstanceType);\n return baseConstructorType === nullWideningType;\n }\n function checkThisBeforeSuper(node, container, diagnosticMessage) {\n const containingClassDecl = container.parent;\n const baseTypeNode = getClassExtendsHeritageElement(containingClassDecl);\n if (baseTypeNode && !classDeclarationExtendsNull(containingClassDecl)) {\n if (canHaveFlowNode(node) && node.flowNode && !isPostSuperFlowNode(\n node.flowNode,\n /*noCacheCheck*/\n false\n )) {\n error2(node, diagnosticMessage);\n }\n }\n }\n function checkThisInStaticClassFieldInitializerInDecoratedClass(thisExpression, container) {\n if (isPropertyDeclaration(container) && hasStaticModifier(container) && legacyDecorators && container.initializer && textRangeContainsPositionInclusive(container.initializer, thisExpression.pos) && hasDecorators(container.parent)) {\n error2(thisExpression, Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class);\n }\n }\n function checkThisExpression(node) {\n const isNodeInTypeQuery = isInTypeQuery(node);\n let container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n true,\n /*includeClassComputedPropertyName*/\n true\n );\n let capturedByArrowFunction = false;\n let thisInComputedPropertyName = false;\n if (container.kind === 177 /* Constructor */) {\n checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class);\n }\n while (true) {\n if (container.kind === 220 /* ArrowFunction */) {\n container = getThisContainer(\n container,\n /*includeArrowFunctions*/\n false,\n !thisInComputedPropertyName\n );\n capturedByArrowFunction = true;\n }\n if (container.kind === 168 /* ComputedPropertyName */) {\n container = getThisContainer(\n container,\n !capturedByArrowFunction,\n /*includeClassComputedPropertyName*/\n false\n );\n thisInComputedPropertyName = true;\n continue;\n }\n break;\n }\n checkThisInStaticClassFieldInitializerInDecoratedClass(node, container);\n if (thisInComputedPropertyName) {\n error2(node, Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);\n } else {\n switch (container.kind) {\n case 268 /* ModuleDeclaration */:\n error2(node, Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);\n break;\n case 267 /* EnumDeclaration */:\n error2(node, Diagnostics.this_cannot_be_referenced_in_current_location);\n break;\n }\n }\n if (!isNodeInTypeQuery && capturedByArrowFunction && languageVersion < 2 /* ES2015 */) {\n captureLexicalThis(node, container);\n }\n const type = tryGetThisTypeAt(\n node,\n /*includeGlobalThis*/\n true,\n container\n );\n if (noImplicitThis) {\n const globalThisType2 = getTypeOfSymbol(globalThisSymbol);\n if (type === globalThisType2 && capturedByArrowFunction) {\n error2(node, Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);\n } else if (!type) {\n const diag2 = error2(node, Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);\n if (!isSourceFile(container)) {\n const outsideThis = tryGetThisTypeAt(container);\n if (outsideThis && outsideThis !== globalThisType2) {\n addRelatedInfo(diag2, createDiagnosticForNode(container, Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container));\n }\n }\n }\n }\n return type || anyType;\n }\n function tryGetThisTypeAt(node, includeGlobalThis = true, container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n )) {\n const isInJS = isInJSFile(node);\n if (isFunctionLike(container) && (!isInParameterInitializerBeforeContainingFunction(node) || getThisParameter(container))) {\n let thisType = getThisTypeOfDeclaration(container) || isInJS && getTypeForThisExpressionFromJSDoc(container);\n if (!thisType) {\n const className = getClassNameFromPrototypeMethod(container);\n if (isInJS && className) {\n const classSymbol = checkExpression(className).symbol;\n if (classSymbol && classSymbol.members && classSymbol.flags & 16 /* Function */) {\n thisType = getDeclaredTypeOfSymbol(classSymbol).thisType;\n }\n } else if (isJSConstructor(container)) {\n thisType = getDeclaredTypeOfSymbol(getMergedSymbol(container.symbol)).thisType;\n }\n thisType || (thisType = getContextualThisParameterType(container));\n }\n if (thisType) {\n return getFlowTypeOfReference(node, thisType);\n }\n }\n if (isClassLike(container.parent)) {\n const symbol = getSymbolOfDeclaration(container.parent);\n const type = isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;\n return getFlowTypeOfReference(node, type);\n }\n if (isSourceFile(container)) {\n if (container.commonJsModuleIndicator) {\n const fileSymbol = getSymbolOfDeclaration(container);\n return fileSymbol && getTypeOfSymbol(fileSymbol);\n } else if (container.externalModuleIndicator) {\n return undefinedType;\n } else if (includeGlobalThis) {\n return getTypeOfSymbol(globalThisSymbol);\n }\n }\n }\n function getExplicitThisType(node) {\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (isFunctionLike(container)) {\n const signature = getSignatureFromDeclaration(container);\n if (signature.thisParameter) {\n return getExplicitTypeOfSymbol(signature.thisParameter);\n }\n }\n if (isClassLike(container.parent)) {\n const symbol = getSymbolOfDeclaration(container.parent);\n return isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;\n }\n }\n function getClassNameFromPrototypeMethod(container) {\n if (container.kind === 219 /* FunctionExpression */ && isBinaryExpression(container.parent) && getAssignmentDeclarationKind(container.parent) === 3 /* PrototypeProperty */) {\n return container.parent.left.expression.expression;\n } else if (container.kind === 175 /* MethodDeclaration */ && container.parent.kind === 211 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent) && getAssignmentDeclarationKind(container.parent.parent) === 6 /* Prototype */) {\n return container.parent.parent.left.expression;\n } else if (container.kind === 219 /* FunctionExpression */ && container.parent.kind === 304 /* PropertyAssignment */ && container.parent.parent.kind === 211 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent.parent) && getAssignmentDeclarationKind(container.parent.parent.parent) === 6 /* Prototype */) {\n return container.parent.parent.parent.left.expression;\n } else if (container.kind === 219 /* FunctionExpression */ && isPropertyAssignment(container.parent) && isIdentifier(container.parent.name) && (container.parent.name.escapedText === \"value\" || container.parent.name.escapedText === \"get\" || container.parent.name.escapedText === \"set\") && isObjectLiteralExpression(container.parent.parent) && isCallExpression(container.parent.parent.parent) && container.parent.parent.parent.arguments[2] === container.parent.parent && getAssignmentDeclarationKind(container.parent.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) {\n return container.parent.parent.parent.arguments[0].expression;\n } else if (isMethodDeclaration(container) && isIdentifier(container.name) && (container.name.escapedText === \"value\" || container.name.escapedText === \"get\" || container.name.escapedText === \"set\") && isObjectLiteralExpression(container.parent) && isCallExpression(container.parent.parent) && container.parent.parent.arguments[2] === container.parent && getAssignmentDeclarationKind(container.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) {\n return container.parent.parent.arguments[0].expression;\n }\n }\n function getTypeForThisExpressionFromJSDoc(node) {\n const thisTag = getJSDocThisTag(node);\n if (thisTag && thisTag.typeExpression) {\n return getTypeFromTypeNode(thisTag.typeExpression);\n }\n const signature = getSignatureOfTypeTag(node);\n if (signature) {\n return getThisTypeOfSignature(signature);\n }\n }\n function isInConstructorArgumentInitializer(node, constructorDecl) {\n return !!findAncestor(node, (n) => isFunctionLikeDeclaration(n) ? \"quit\" : n.kind === 170 /* Parameter */ && n.parent === constructorDecl);\n }\n function checkSuperExpression(node) {\n const isCallExpression2 = node.parent.kind === 214 /* CallExpression */ && node.parent.expression === node;\n const immediateContainer = getSuperContainer(\n node,\n /*stopOnFunctions*/\n true\n );\n let container = immediateContainer;\n let needToCaptureLexicalThis = false;\n let inAsyncFunction = false;\n if (!isCallExpression2) {\n while (container && container.kind === 220 /* ArrowFunction */) {\n if (hasSyntacticModifier(container, 1024 /* Async */)) inAsyncFunction = true;\n container = getSuperContainer(\n container,\n /*stopOnFunctions*/\n true\n );\n needToCaptureLexicalThis = languageVersion < 2 /* ES2015 */;\n }\n if (container && hasSyntacticModifier(container, 1024 /* Async */)) inAsyncFunction = true;\n }\n let nodeCheckFlag = 0;\n if (!container || !isLegalUsageOfSuperExpression(container)) {\n const current = findAncestor(node, (n) => n === container ? \"quit\" : n.kind === 168 /* ComputedPropertyName */);\n if (current && current.kind === 168 /* ComputedPropertyName */) {\n error2(node, Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);\n } else if (isCallExpression2) {\n error2(node, Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);\n } else if (!container || !container.parent || !(isClassLike(container.parent) || container.parent.kind === 211 /* ObjectLiteralExpression */)) {\n error2(node, Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions);\n } else {\n error2(node, Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class);\n }\n return errorType;\n }\n if (!isCallExpression2 && immediateContainer.kind === 177 /* Constructor */) {\n checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class);\n }\n if (isStatic(container) || isCallExpression2) {\n nodeCheckFlag = 32 /* SuperStatic */;\n if (!isCallExpression2 && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && (isPropertyDeclaration(container) || isClassStaticBlockDeclaration(container))) {\n forEachEnclosingBlockScopeContainer(node.parent, (current) => {\n if (!isSourceFile(current) || isExternalOrCommonJsModule(current)) {\n getNodeLinks(current).flags |= 2097152 /* ContainsSuperPropertyInStaticInitializer */;\n }\n });\n }\n } else {\n nodeCheckFlag = 16 /* SuperInstance */;\n }\n getNodeLinks(node).flags |= nodeCheckFlag;\n if (container.kind === 175 /* MethodDeclaration */ && inAsyncFunction) {\n if (isSuperProperty(node.parent) && isAssignmentTarget(node.parent)) {\n getNodeLinks(container).flags |= 256 /* MethodWithSuperPropertyAssignmentInAsync */;\n } else {\n getNodeLinks(container).flags |= 128 /* MethodWithSuperPropertyAccessInAsync */;\n }\n }\n if (needToCaptureLexicalThis) {\n captureLexicalThis(node.parent, container);\n }\n if (container.parent.kind === 211 /* ObjectLiteralExpression */) {\n if (languageVersion < 2 /* ES2015 */) {\n error2(node, Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher);\n return errorType;\n } else {\n return anyType;\n }\n }\n const classLikeDeclaration = container.parent;\n if (!getClassExtendsHeritageElement(classLikeDeclaration)) {\n error2(node, Diagnostics.super_can_only_be_referenced_in_a_derived_class);\n return errorType;\n }\n if (classDeclarationExtendsNull(classLikeDeclaration)) {\n return isCallExpression2 ? errorType : nullWideningType;\n }\n const classType = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(classLikeDeclaration));\n const baseClassType = classType && getBaseTypes(classType)[0];\n if (!baseClassType) {\n return errorType;\n }\n if (container.kind === 177 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) {\n error2(node, Diagnostics.super_cannot_be_referenced_in_constructor_arguments);\n return errorType;\n }\n return nodeCheckFlag === 32 /* SuperStatic */ ? getBaseConstructorTypeOfClass(classType) : getTypeWithThisArgument(baseClassType, classType.thisType);\n function isLegalUsageOfSuperExpression(container2) {\n if (isCallExpression2) {\n return container2.kind === 177 /* Constructor */;\n } else {\n if (isClassLike(container2.parent) || container2.parent.kind === 211 /* ObjectLiteralExpression */) {\n if (isStatic(container2)) {\n return container2.kind === 175 /* MethodDeclaration */ || container2.kind === 174 /* MethodSignature */ || container2.kind === 178 /* GetAccessor */ || container2.kind === 179 /* SetAccessor */ || container2.kind === 173 /* PropertyDeclaration */ || container2.kind === 176 /* ClassStaticBlockDeclaration */;\n } else {\n return container2.kind === 175 /* MethodDeclaration */ || container2.kind === 174 /* MethodSignature */ || container2.kind === 178 /* GetAccessor */ || container2.kind === 179 /* SetAccessor */ || container2.kind === 173 /* PropertyDeclaration */ || container2.kind === 172 /* PropertySignature */ || container2.kind === 177 /* Constructor */;\n }\n }\n }\n return false;\n }\n }\n function getContainingObjectLiteral(func) {\n return (func.kind === 175 /* MethodDeclaration */ || func.kind === 178 /* GetAccessor */ || func.kind === 179 /* SetAccessor */) && func.parent.kind === 211 /* ObjectLiteralExpression */ ? func.parent : func.kind === 219 /* FunctionExpression */ && func.parent.kind === 304 /* PropertyAssignment */ ? func.parent.parent : void 0;\n }\n function getThisTypeArgument(type) {\n return getObjectFlags(type) & 4 /* Reference */ && type.target === globalThisType ? getTypeArguments(type)[0] : void 0;\n }\n function getThisTypeFromContextualType(type) {\n return mapType(type, (t) => {\n return t.flags & 2097152 /* Intersection */ ? forEach(t.types, getThisTypeArgument) : getThisTypeArgument(t);\n });\n }\n function getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType) {\n let literal = containingLiteral;\n let type = contextualType;\n while (type) {\n const thisType = getThisTypeFromContextualType(type);\n if (thisType) {\n return thisType;\n }\n if (literal.parent.kind !== 304 /* PropertyAssignment */) {\n break;\n }\n literal = literal.parent.parent;\n type = getApparentTypeOfContextualType(\n literal,\n /*contextFlags*/\n void 0\n );\n }\n }\n function getContextualThisParameterType(func) {\n if (func.kind === 220 /* ArrowFunction */) {\n return void 0;\n }\n if (isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n const contextualSignature = getContextualSignature(func);\n if (contextualSignature) {\n const thisParameter = contextualSignature.thisParameter;\n if (thisParameter) {\n return getTypeOfSymbol(thisParameter);\n }\n }\n }\n const inJs = isInJSFile(func);\n if (noImplicitThis || inJs) {\n const containingLiteral = getContainingObjectLiteral(func);\n if (containingLiteral) {\n const contextualType = getApparentTypeOfContextualType(\n containingLiteral,\n /*contextFlags*/\n void 0\n );\n const thisType = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType);\n if (thisType) {\n return instantiateType(thisType, getMapperFromContext(getInferenceContext(containingLiteral)));\n }\n return getWidenedType(contextualType ? getNonNullableType(contextualType) : checkExpressionCached(containingLiteral));\n }\n const parent2 = walkUpParenthesizedExpressions(func.parent);\n if (isAssignmentExpression(parent2)) {\n const target = parent2.left;\n if (isAccessExpression(target)) {\n const { expression } = target;\n if (inJs && isIdentifier(expression)) {\n const sourceFile = getSourceFileOfNode(parent2);\n if (sourceFile.commonJsModuleIndicator && getResolvedSymbol(expression) === sourceFile.symbol) {\n return void 0;\n }\n }\n return getWidenedType(checkExpressionCached(expression));\n }\n }\n }\n return void 0;\n }\n function getContextuallyTypedParameterType(parameter) {\n const func = parameter.parent;\n if (!isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n return void 0;\n }\n const iife = getImmediatelyInvokedFunctionExpression(func);\n if (iife && iife.arguments) {\n const args = getEffectiveCallArguments(iife);\n const indexOfParameter = func.parameters.indexOf(parameter);\n if (parameter.dotDotDotToken) {\n return getSpreadArgumentType(\n args,\n indexOfParameter,\n args.length,\n anyType,\n /*context*/\n void 0,\n 0 /* Normal */\n );\n }\n const links = getNodeLinks(iife);\n const cached = links.resolvedSignature;\n links.resolvedSignature = anySignature;\n const type = indexOfParameter < args.length ? getWidenedLiteralType(checkExpression(args[indexOfParameter])) : parameter.initializer ? void 0 : undefinedWideningType;\n links.resolvedSignature = cached;\n return type;\n }\n const contextualSignature = getContextualSignature(func);\n if (contextualSignature) {\n const index = func.parameters.indexOf(parameter) - (getThisParameter(func) ? 1 : 0);\n return parameter.dotDotDotToken && lastOrUndefined(func.parameters) === parameter ? getRestTypeAtPosition(contextualSignature, index) : tryGetTypeAtPosition(contextualSignature, index);\n }\n }\n function getContextualTypeForVariableLikeDeclaration(declaration, contextFlags) {\n const typeNode = getEffectiveTypeAnnotationNode(declaration) || (isInJSFile(declaration) ? tryGetJSDocSatisfiesTypeNode(declaration) : void 0);\n if (typeNode) {\n return getTypeFromTypeNode(typeNode);\n }\n switch (declaration.kind) {\n case 170 /* Parameter */:\n return getContextuallyTypedParameterType(declaration);\n case 209 /* BindingElement */:\n return getContextualTypeForBindingElement(declaration, contextFlags);\n case 173 /* PropertyDeclaration */:\n if (isStatic(declaration)) {\n return getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags);\n }\n }\n }\n function getContextualTypeForBindingElement(declaration, contextFlags) {\n const parent2 = declaration.parent.parent;\n const name = declaration.propertyName || declaration.name;\n const parentType = getContextualTypeForVariableLikeDeclaration(parent2, contextFlags) || parent2.kind !== 209 /* BindingElement */ && parent2.initializer && checkDeclarationInitializer(parent2, declaration.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */);\n if (!parentType || isBindingPattern(name) || isComputedNonLiteralName(name)) return void 0;\n if (parent2.name.kind === 208 /* ArrayBindingPattern */) {\n const index = indexOfNode(declaration.parent.elements, declaration);\n if (index < 0) return void 0;\n return getContextualTypeForElementExpression(parentType, index);\n }\n const nameType = getLiteralTypeFromPropertyName(name);\n if (isTypeUsableAsPropertyName(nameType)) {\n const text = getPropertyNameFromType(nameType);\n return getTypeOfPropertyOfType(parentType, text);\n }\n }\n function getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags) {\n const parentType = isExpression(declaration.parent) && getContextualType2(declaration.parent, contextFlags);\n if (!parentType) return void 0;\n return getTypeOfPropertyOfContextualType(parentType, getSymbolOfDeclaration(declaration).escapedName);\n }\n function getContextualTypeForInitializerExpression(node, contextFlags) {\n const declaration = node.parent;\n if (hasInitializer(declaration) && node === declaration.initializer) {\n const result = getContextualTypeForVariableLikeDeclaration(declaration, contextFlags);\n if (result) {\n return result;\n }\n if (!(contextFlags & 8 /* SkipBindingPatterns */) && isBindingPattern(declaration.name) && declaration.name.elements.length > 0) {\n return getTypeFromBindingPattern(\n declaration.name,\n /*includePatternInType*/\n true,\n /*reportErrors*/\n false\n );\n }\n }\n return void 0;\n }\n function getContextualTypeForReturnExpression(node, contextFlags) {\n const func = getContainingFunction(node);\n if (func) {\n let contextualReturnType = getContextualReturnType(func, contextFlags);\n if (contextualReturnType) {\n const functionFlags = getFunctionFlags(func);\n if (functionFlags & 1 /* Generator */) {\n const isAsyncGenerator = (functionFlags & 2 /* Async */) !== 0;\n if (contextualReturnType.flags & 1048576 /* Union */) {\n contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator));\n }\n const iterationReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, contextualReturnType, (functionFlags & 2 /* Async */) !== 0);\n if (!iterationReturnType) {\n return void 0;\n }\n contextualReturnType = iterationReturnType;\n }\n if (functionFlags & 2 /* Async */) {\n const contextualAwaitedType = mapType(contextualReturnType, getAwaitedTypeNoAlias);\n return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]);\n }\n return contextualReturnType;\n }\n }\n return void 0;\n }\n function getContextualTypeForAwaitOperand(node, contextFlags) {\n const contextualType = getContextualType2(node, contextFlags);\n if (contextualType) {\n const contextualAwaitedType = getAwaitedTypeNoAlias(contextualType);\n return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]);\n }\n return void 0;\n }\n function getContextualTypeForYieldOperand(node, contextFlags) {\n const func = getContainingFunction(node);\n if (func) {\n const functionFlags = getFunctionFlags(func);\n let contextualReturnType = getContextualReturnType(func, contextFlags);\n if (contextualReturnType) {\n const isAsyncGenerator = (functionFlags & 2 /* Async */) !== 0;\n if (!node.asteriskToken && contextualReturnType.flags & 1048576 /* Union */) {\n contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator));\n }\n if (node.asteriskToken) {\n const iterationTypes = getIterationTypesOfGeneratorFunctionReturnType(contextualReturnType, isAsyncGenerator);\n const yieldType = (iterationTypes == null ? void 0 : iterationTypes.yieldType) ?? silentNeverType;\n const returnType = getContextualType2(node, contextFlags) ?? silentNeverType;\n const nextType = (iterationTypes == null ? void 0 : iterationTypes.nextType) ?? unknownType;\n const generatorType = createGeneratorType(\n yieldType,\n returnType,\n nextType,\n /*isAsyncGenerator*/\n false\n );\n if (isAsyncGenerator) {\n const asyncGeneratorType = createGeneratorType(\n yieldType,\n returnType,\n nextType,\n /*isAsyncGenerator*/\n true\n );\n return getUnionType([generatorType, asyncGeneratorType]);\n }\n return generatorType;\n }\n return getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, contextualReturnType, isAsyncGenerator);\n }\n }\n return void 0;\n }\n function isInParameterInitializerBeforeContainingFunction(node) {\n let inBindingInitializer = false;\n while (node.parent && !isFunctionLike(node.parent)) {\n if (isParameter(node.parent) && (inBindingInitializer || node.parent.initializer === node)) {\n return true;\n }\n if (isBindingElement(node.parent) && node.parent.initializer === node) {\n inBindingInitializer = true;\n }\n node = node.parent;\n }\n return false;\n }\n function getContextualIterationType(kind, functionDecl) {\n const isAsync = !!(getFunctionFlags(functionDecl) & 2 /* Async */);\n const contextualReturnType = getContextualReturnType(\n functionDecl,\n /*contextFlags*/\n void 0\n );\n if (contextualReturnType) {\n return getIterationTypeOfGeneratorFunctionReturnType(kind, contextualReturnType, isAsync) || void 0;\n }\n return void 0;\n }\n function getContextualReturnType(functionDecl, contextFlags) {\n const returnType = getReturnTypeFromAnnotation(functionDecl);\n if (returnType) {\n return returnType;\n }\n const signature = getContextualSignatureForFunctionLikeDeclaration(functionDecl);\n if (signature && !isResolvingReturnTypeOfSignature(signature)) {\n const returnType2 = getReturnTypeOfSignature(signature);\n const functionFlags = getFunctionFlags(functionDecl);\n if (functionFlags & 1 /* Generator */) {\n return filterType(returnType2, (t) => {\n return !!(t.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 58982400 /* InstantiableNonPrimitive */)) || checkGeneratorInstantiationAssignabilityToReturnType(\n t,\n functionFlags,\n /*errorNode*/\n void 0\n );\n });\n }\n if (functionFlags & 2 /* Async */) {\n return filterType(returnType2, (t) => {\n return !!(t.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 58982400 /* InstantiableNonPrimitive */)) || !!getAwaitedTypeOfPromise(t);\n });\n }\n return returnType2;\n }\n const iife = getImmediatelyInvokedFunctionExpression(functionDecl);\n if (iife) {\n return getContextualType2(iife, contextFlags);\n }\n return void 0;\n }\n function getContextualTypeForArgument(callTarget, arg) {\n const args = getEffectiveCallArguments(callTarget);\n const argIndex = args.indexOf(arg);\n return argIndex === -1 ? void 0 : getContextualTypeForArgumentAtIndex(callTarget, argIndex);\n }\n function getContextualTypeForArgumentAtIndex(callTarget, argIndex) {\n if (isImportCall(callTarget)) {\n return argIndex === 0 ? stringType : argIndex === 1 ? getGlobalImportCallOptionsType(\n /*reportErrors*/\n false\n ) : anyType;\n }\n const signature = getNodeLinks(callTarget).resolvedSignature === resolvingSignature ? resolvingSignature : getResolvedSignature(callTarget);\n if (isJsxOpeningLikeElement(callTarget) && argIndex === 0) {\n return getEffectiveFirstArgumentForJsxSignature(signature, callTarget);\n }\n const restIndex = signature.parameters.length - 1;\n return signatureHasRestParameter(signature) && argIndex >= restIndex ? getIndexedAccessType(getTypeOfSymbol(signature.parameters[restIndex]), getNumberLiteralType(argIndex - restIndex), 256 /* Contextual */) : getTypeAtPosition(signature, argIndex);\n }\n function getContextualTypeForDecorator(decorator) {\n const signature = getDecoratorCallSignature(decorator);\n return signature ? getOrCreateTypeFromSignature(signature) : void 0;\n }\n function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {\n if (template.parent.kind === 216 /* TaggedTemplateExpression */) {\n return getContextualTypeForArgument(template.parent, substitutionExpression);\n }\n return void 0;\n }\n function getContextualTypeForBinaryOperand(node, contextFlags) {\n const binaryExpression = node.parent;\n const { left, operatorToken, right } = binaryExpression;\n switch (operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 76 /* BarBarEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return node === right ? getContextualTypeForAssignmentDeclaration(binaryExpression) : void 0;\n case 57 /* BarBarToken */:\n case 61 /* QuestionQuestionToken */:\n const type = getContextualType2(binaryExpression, contextFlags);\n return node === right && (type && type.pattern || !type && !isDefaultedExpandoInitializer(binaryExpression)) ? getTypeOfExpression(left) : type;\n case 56 /* AmpersandAmpersandToken */:\n case 28 /* CommaToken */:\n return node === right ? getContextualType2(binaryExpression, contextFlags) : void 0;\n default:\n return void 0;\n }\n }\n function getSymbolForExpression(e) {\n if (canHaveSymbol(e) && e.symbol) {\n return e.symbol;\n }\n if (isIdentifier(e)) {\n return getResolvedSymbol(e);\n }\n if (isPropertyAccessExpression(e)) {\n const lhsType = getTypeOfExpression(e.expression);\n return isPrivateIdentifier(e.name) ? tryGetPrivateIdentifierPropertyOfType(lhsType, e.name) : getPropertyOfType(lhsType, e.name.escapedText);\n }\n if (isElementAccessExpression(e)) {\n const propType = checkExpressionCached(e.argumentExpression);\n if (!isTypeUsableAsPropertyName(propType)) {\n return void 0;\n }\n const lhsType = getTypeOfExpression(e.expression);\n return getPropertyOfType(lhsType, getPropertyNameFromType(propType));\n }\n return void 0;\n function tryGetPrivateIdentifierPropertyOfType(type, id) {\n const lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(id.escapedText, id);\n return lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(type, lexicallyScopedSymbol);\n }\n }\n function getContextualTypeForAssignmentDeclaration(binaryExpression) {\n var _a, _b;\n const kind = getAssignmentDeclarationKind(binaryExpression);\n switch (kind) {\n case 0 /* None */:\n case 4 /* ThisProperty */:\n const lhsSymbol = getSymbolForExpression(binaryExpression.left);\n const decl = lhsSymbol && lhsSymbol.valueDeclaration;\n if (decl && (isPropertyDeclaration(decl) || isPropertySignature(decl))) {\n const overallAnnotation = getEffectiveTypeAnnotationNode(decl);\n return overallAnnotation && instantiateType(getTypeFromTypeNode(overallAnnotation), getSymbolLinks(lhsSymbol).mapper) || (isPropertyDeclaration(decl) ? decl.initializer && getTypeOfExpression(binaryExpression.left) : void 0);\n }\n if (kind === 0 /* None */) {\n return getTypeOfExpression(binaryExpression.left);\n }\n return getContextualTypeForThisPropertyAssignment(binaryExpression);\n case 5 /* Property */:\n if (isPossiblyAliasedThisProperty(binaryExpression, kind)) {\n return getContextualTypeForThisPropertyAssignment(binaryExpression);\n } else if (!canHaveSymbol(binaryExpression.left) || !binaryExpression.left.symbol) {\n return getTypeOfExpression(binaryExpression.left);\n } else {\n const decl2 = binaryExpression.left.symbol.valueDeclaration;\n if (!decl2) {\n return void 0;\n }\n const lhs = cast(binaryExpression.left, isAccessExpression);\n const overallAnnotation = getEffectiveTypeAnnotationNode(decl2);\n if (overallAnnotation) {\n return getTypeFromTypeNode(overallAnnotation);\n } else if (isIdentifier(lhs.expression)) {\n const id = lhs.expression;\n const parentSymbol = resolveName(\n id,\n id.escapedText,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (parentSymbol) {\n const annotated2 = parentSymbol.valueDeclaration && getEffectiveTypeAnnotationNode(parentSymbol.valueDeclaration);\n if (annotated2) {\n const nameStr = getElementOrPropertyAccessName(lhs);\n if (nameStr !== void 0) {\n return getTypeOfPropertyOfContextualType(getTypeFromTypeNode(annotated2), nameStr);\n }\n }\n return void 0;\n }\n }\n return isInJSFile(decl2) || decl2 === binaryExpression.left ? void 0 : getTypeOfExpression(binaryExpression.left);\n }\n case 1 /* ExportsProperty */:\n case 6 /* Prototype */:\n case 3 /* PrototypeProperty */:\n case 2 /* ModuleExports */:\n let valueDeclaration;\n if (kind !== 2 /* ModuleExports */) {\n valueDeclaration = canHaveSymbol(binaryExpression.left) ? (_a = binaryExpression.left.symbol) == null ? void 0 : _a.valueDeclaration : void 0;\n }\n valueDeclaration || (valueDeclaration = (_b = binaryExpression.symbol) == null ? void 0 : _b.valueDeclaration);\n const annotated = valueDeclaration && getEffectiveTypeAnnotationNode(valueDeclaration);\n return annotated ? getTypeFromTypeNode(annotated) : void 0;\n case 7 /* ObjectDefinePropertyValue */:\n case 8 /* ObjectDefinePropertyExports */:\n case 9 /* ObjectDefinePrototypeProperty */:\n return Debug.fail(\"Does not apply\");\n default:\n return Debug.assertNever(kind);\n }\n }\n function isPossiblyAliasedThisProperty(declaration, kind = getAssignmentDeclarationKind(declaration)) {\n if (kind === 4 /* ThisProperty */) {\n return true;\n }\n if (!isInJSFile(declaration) || kind !== 5 /* Property */ || !isIdentifier(declaration.left.expression)) {\n return false;\n }\n const name = declaration.left.expression.escapedText;\n const symbol = resolveName(\n declaration.left,\n name,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true,\n /*excludeGlobals*/\n true\n );\n return isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration);\n }\n function getContextualTypeForThisPropertyAssignment(binaryExpression) {\n if (!binaryExpression.symbol) return getTypeOfExpression(binaryExpression.left);\n if (binaryExpression.symbol.valueDeclaration) {\n const annotated = getEffectiveTypeAnnotationNode(binaryExpression.symbol.valueDeclaration);\n if (annotated) {\n const type = getTypeFromTypeNode(annotated);\n if (type) {\n return type;\n }\n }\n }\n const thisAccess = cast(binaryExpression.left, isAccessExpression);\n if (!isObjectLiteralMethod(getThisContainer(\n thisAccess.expression,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n ))) {\n return void 0;\n }\n const thisType = checkThisExpression(thisAccess.expression);\n const nameStr = getElementOrPropertyAccessName(thisAccess);\n return nameStr !== void 0 && getTypeOfPropertyOfContextualType(thisType, nameStr) || void 0;\n }\n function isCircularMappedProperty(symbol) {\n return !!(getCheckFlags(symbol) & 262144 /* Mapped */ && !symbol.links.type && findResolutionCycleStartIndex(symbol, 0 /* Type */) >= 0);\n }\n function isExcludedMappedPropertyName(constraint, propertyNameType) {\n if (constraint.flags & 16777216 /* Conditional */) {\n const type = constraint;\n return !!(getReducedType(getTrueTypeFromConditionalType(type)).flags & 131072 /* Never */) && getActualTypeVariable(getFalseTypeFromConditionalType(type)) === getActualTypeVariable(type.checkType) && isTypeAssignableTo(propertyNameType, type.extendsType);\n }\n if (constraint.flags & 2097152 /* Intersection */) {\n return some(constraint.types, (t) => isExcludedMappedPropertyName(t, propertyNameType));\n }\n return false;\n }\n function getTypeOfPropertyOfContextualType(type, name, nameType) {\n return mapType(\n type,\n (t) => {\n if (t.flags & 2097152 /* Intersection */) {\n let types;\n let indexInfoCandidates;\n let ignoreIndexInfos = false;\n for (const constituentType of t.types) {\n if (!(constituentType.flags & 524288 /* Object */)) {\n continue;\n }\n if (isGenericMappedType(constituentType) && getMappedTypeNameTypeKind(constituentType) !== 2 /* Remapping */) {\n const substitutedType = getIndexedMappedTypeSubstitutedTypeOfContextualType(constituentType, name, nameType);\n types = appendContextualPropertyTypeConstituent(types, substitutedType);\n continue;\n }\n const propertyType = getTypeOfConcretePropertyOfContextualType(constituentType, name);\n if (!propertyType) {\n if (!ignoreIndexInfos) {\n indexInfoCandidates = append(indexInfoCandidates, constituentType);\n }\n continue;\n }\n ignoreIndexInfos = true;\n indexInfoCandidates = void 0;\n types = appendContextualPropertyTypeConstituent(types, propertyType);\n }\n if (indexInfoCandidates) {\n for (const candidate of indexInfoCandidates) {\n const indexInfoType = getTypeFromIndexInfosOfContextualType(candidate, name, nameType);\n types = appendContextualPropertyTypeConstituent(types, indexInfoType);\n }\n }\n if (!types) {\n return;\n }\n if (types.length === 1) {\n return types[0];\n }\n return getIntersectionType(types);\n }\n if (!(t.flags & 524288 /* Object */)) {\n return;\n }\n return isGenericMappedType(t) && getMappedTypeNameTypeKind(t) !== 2 /* Remapping */ ? getIndexedMappedTypeSubstitutedTypeOfContextualType(t, name, nameType) : getTypeOfConcretePropertyOfContextualType(t, name) ?? getTypeFromIndexInfosOfContextualType(t, name, nameType);\n },\n /*noReductions*/\n true\n );\n }\n function appendContextualPropertyTypeConstituent(types, type) {\n return type ? append(types, type.flags & 1 /* Any */ ? unknownType : type) : types;\n }\n function getIndexedMappedTypeSubstitutedTypeOfContextualType(type, name, nameType) {\n const propertyNameType = nameType || getStringLiteralType(unescapeLeadingUnderscores(name));\n const constraint = getConstraintTypeFromMappedType(type);\n if (type.nameType && isExcludedMappedPropertyName(type.nameType, propertyNameType) || isExcludedMappedPropertyName(constraint, propertyNameType)) {\n return;\n }\n const constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint;\n if (!isTypeAssignableTo(propertyNameType, constraintOfConstraint)) {\n return;\n }\n return substituteIndexedMappedType(type, propertyNameType);\n }\n function getTypeOfConcretePropertyOfContextualType(type, name) {\n const prop = getPropertyOfType(type, name);\n if (!prop || isCircularMappedProperty(prop)) {\n return;\n }\n return removeMissingType(getTypeOfSymbol(prop), !!(prop.flags & 16777216 /* Optional */));\n }\n function getTypeFromIndexInfosOfContextualType(type, name, nameType) {\n var _a;\n if (isTupleType(type) && isNumericLiteralName(name) && +name >= 0) {\n const restType = getElementTypeOfSliceOfTupleType(\n type,\n type.target.fixedLength,\n /*endSkipCount*/\n 0,\n /*writing*/\n false,\n /*noReductions*/\n true\n );\n if (restType) {\n return restType;\n }\n }\n return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(type), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))) == null ? void 0 : _a.type;\n }\n function getContextualTypeForObjectLiteralMethod(node, contextFlags) {\n Debug.assert(isObjectLiteralMethod(node));\n if (node.flags & 67108864 /* InWithStatement */) {\n return void 0;\n }\n return getContextualTypeForObjectLiteralElement(node, contextFlags);\n }\n function getContextualTypeForObjectLiteralElement(element, contextFlags) {\n const objectLiteral = element.parent;\n const propertyAssignmentType = isPropertyAssignment(element) && getContextualTypeForVariableLikeDeclaration(element, contextFlags);\n if (propertyAssignmentType) {\n return propertyAssignmentType;\n }\n const type = getApparentTypeOfContextualType(objectLiteral, contextFlags);\n if (type) {\n if (hasBindableName(element)) {\n const symbol = getSymbolOfDeclaration(element);\n return getTypeOfPropertyOfContextualType(type, symbol.escapedName, getSymbolLinks(symbol).nameType);\n }\n if (hasDynamicName(element)) {\n const name = getNameOfDeclaration(element);\n if (name && isComputedPropertyName(name)) {\n const exprType = checkExpression(name.expression);\n const propType = isTypeUsableAsPropertyName(exprType) && getTypeOfPropertyOfContextualType(type, getPropertyNameFromType(exprType));\n if (propType) {\n return propType;\n }\n }\n }\n if (element.name) {\n const nameType = getLiteralTypeFromPropertyName(element.name);\n return mapType(\n type,\n (t) => {\n var _a;\n return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType)) == null ? void 0 : _a.type;\n },\n /*noReductions*/\n true\n );\n }\n }\n return void 0;\n }\n function getSpreadIndices(elements) {\n let first2, last2;\n for (let i = 0; i < elements.length; i++) {\n if (isSpreadElement(elements[i])) {\n first2 ?? (first2 = i);\n last2 = i;\n }\n }\n return { first: first2, last: last2 };\n }\n function getContextualTypeForElementExpression(type, index, length2, firstSpreadIndex, lastSpreadIndex) {\n return type && mapType(\n type,\n (t) => {\n if (isTupleType(t)) {\n if ((firstSpreadIndex === void 0 || index < firstSpreadIndex) && index < t.target.fixedLength) {\n return removeMissingType(getTypeArguments(t)[index], !!(t.target.elementFlags[index] && 2 /* Optional */));\n }\n const offset = length2 !== void 0 && (lastSpreadIndex === void 0 || index > lastSpreadIndex) ? length2 - index : 0;\n const fixedEndLength = offset > 0 && t.target.combinedFlags & 12 /* Variable */ ? getEndElementCount(t.target, 3 /* Fixed */) : 0;\n if (offset > 0 && offset <= fixedEndLength) {\n return getTypeArguments(t)[getTypeReferenceArity(t) - offset];\n }\n return getElementTypeOfSliceOfTupleType(\n t,\n firstSpreadIndex === void 0 ? t.target.fixedLength : Math.min(t.target.fixedLength, firstSpreadIndex),\n length2 === void 0 || lastSpreadIndex === void 0 ? fixedEndLength : Math.min(fixedEndLength, length2 - lastSpreadIndex),\n /*writing*/\n false,\n /*noReductions*/\n true\n );\n }\n return (!firstSpreadIndex || index < firstSpreadIndex) && getTypeOfPropertyOfContextualType(t, \"\" + index) || getIteratedTypeOrElementType(\n 1 /* Element */,\n t,\n undefinedType,\n /*errorNode*/\n void 0,\n /*checkAssignability*/\n false\n );\n },\n /*noReductions*/\n true\n );\n }\n function getContextualTypeForConditionalOperand(node, contextFlags) {\n const conditional = node.parent;\n return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType2(conditional, contextFlags) : void 0;\n }\n function getContextualTypeForChildJsxExpression(node, child, contextFlags) {\n const attributesType = getApparentTypeOfContextualType(node.openingElement.attributes, contextFlags);\n const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n if (!(attributesType && !isTypeAny(attributesType) && jsxChildrenPropertyName && jsxChildrenPropertyName !== \"\")) {\n return void 0;\n }\n const realChildren = getSemanticJsxChildren(node.children);\n const childIndex = realChildren.indexOf(child);\n const childFieldType = getTypeOfPropertyOfContextualType(attributesType, jsxChildrenPropertyName);\n return childFieldType && (realChildren.length === 1 ? childFieldType : mapType(\n childFieldType,\n (t) => {\n if (isArrayLikeType(t)) {\n return getIndexedAccessType(t, getNumberLiteralType(childIndex));\n } else {\n return t;\n }\n },\n /*noReductions*/\n true\n ));\n }\n function getContextualTypeForJsxExpression(node, contextFlags) {\n const exprParent = node.parent;\n return isJsxAttributeLike(exprParent) ? getContextualType2(node, contextFlags) : isJsxElement(exprParent) ? getContextualTypeForChildJsxExpression(exprParent, node, contextFlags) : void 0;\n }\n function getContextualTypeForJsxAttribute(attribute, contextFlags) {\n if (isJsxAttribute(attribute)) {\n const attributesType = getApparentTypeOfContextualType(attribute.parent, contextFlags);\n if (!attributesType || isTypeAny(attributesType)) {\n return void 0;\n }\n return getTypeOfPropertyOfContextualType(attributesType, getEscapedTextOfJsxAttributeName(attribute.name));\n } else {\n return getContextualType2(attribute.parent, contextFlags);\n }\n }\n function isPossiblyDiscriminantValue(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 229 /* TemplateExpression */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n case 80 /* Identifier */:\n case 157 /* UndefinedKeyword */:\n return true;\n case 212 /* PropertyAccessExpression */:\n case 218 /* ParenthesizedExpression */:\n return isPossiblyDiscriminantValue(node.expression);\n case 295 /* JsxExpression */:\n return !node.expression || isPossiblyDiscriminantValue(node.expression);\n }\n return false;\n }\n function discriminateContextualTypeByObjectMembers(node, contextualType) {\n const key = `D${getNodeId(node)},${getTypeId(contextualType)}`;\n return getCachedType(key) ?? setCachedType(\n key,\n getMatchingUnionConstituentForObjectLiteral(contextualType, node) ?? discriminateTypeByDiscriminableItems(\n contextualType,\n concatenate(\n map(\n filter(node.properties, (p) => {\n if (!p.symbol) {\n return false;\n }\n if (p.kind === 304 /* PropertyAssignment */) {\n return isPossiblyDiscriminantValue(p.initializer) && isDiscriminantProperty(contextualType, p.symbol.escapedName);\n }\n if (p.kind === 305 /* ShorthandPropertyAssignment */) {\n return isDiscriminantProperty(contextualType, p.symbol.escapedName);\n }\n return false;\n }),\n (prop) => [() => getContextFreeTypeOfExpression(prop.kind === 304 /* PropertyAssignment */ ? prop.initializer : prop.name), prop.symbol.escapedName]\n ),\n map(\n filter(getPropertiesOfType(contextualType), (s) => {\n var _a;\n return !!(s.flags & 16777216 /* Optional */) && !!((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members) && !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName);\n }),\n (s) => [() => undefinedType, s.escapedName]\n )\n ),\n isTypeAssignableTo\n )\n );\n }\n function discriminateContextualTypeByJSXAttributes(node, contextualType) {\n const key = `D${getNodeId(node)},${getTypeId(contextualType)}`;\n const cached = getCachedType(key);\n if (cached) return cached;\n const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n return setCachedType(\n key,\n discriminateTypeByDiscriminableItems(\n contextualType,\n concatenate(\n map(\n filter(node.properties, (p) => !!p.symbol && p.kind === 292 /* JsxAttribute */ && isDiscriminantProperty(contextualType, p.symbol.escapedName) && (!p.initializer || isPossiblyDiscriminantValue(p.initializer))),\n (prop) => [!prop.initializer ? () => trueType : () => getContextFreeTypeOfExpression(prop.initializer), prop.symbol.escapedName]\n ),\n map(\n filter(getPropertiesOfType(contextualType), (s) => {\n var _a;\n if (!(s.flags & 16777216 /* Optional */) || !((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members)) {\n return false;\n }\n const element = node.parent.parent;\n if (s.escapedName === jsxChildrenPropertyName && isJsxElement(element) && getSemanticJsxChildren(element.children).length) {\n return false;\n }\n return !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName);\n }),\n (s) => [() => undefinedType, s.escapedName]\n )\n ),\n isTypeAssignableTo\n )\n );\n }\n function getApparentTypeOfContextualType(node, contextFlags) {\n const contextualType = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node, contextFlags) : getContextualType2(node, contextFlags);\n const instantiatedType = instantiateContextualType(contextualType, node, contextFlags);\n if (instantiatedType && !(contextFlags && contextFlags & 2 /* NoConstraints */ && instantiatedType.flags & 8650752 /* TypeVariable */)) {\n const apparentType = mapType(\n instantiatedType,\n // When obtaining apparent type of *contextual* type we don't want to get apparent type of mapped types.\n // That would evaluate mapped types with array or tuple type constraints too eagerly\n // and thus it would prevent `getTypeOfPropertyOfContextualType` from obtaining per-position contextual type for elements of array literal expressions.\n // Apparent type of other mapped types is already the mapped type itself so we can just avoid calling `getApparentType` here for all mapped types.\n (t) => getObjectFlags(t) & 32 /* Mapped */ ? t : getApparentType(t),\n /*noReductions*/\n true\n );\n return apparentType.flags & 1048576 /* Union */ && isObjectLiteralExpression(node) ? discriminateContextualTypeByObjectMembers(node, apparentType) : apparentType.flags & 1048576 /* Union */ && isJsxAttributes(node) ? discriminateContextualTypeByJSXAttributes(node, apparentType) : apparentType;\n }\n }\n function instantiateContextualType(contextualType, node, contextFlags) {\n if (contextualType && maybeTypeOfKind(contextualType, 465829888 /* Instantiable */)) {\n const inferenceContext = getInferenceContext(node);\n if (inferenceContext && contextFlags & 1 /* Signature */ && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) {\n return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);\n }\n if (inferenceContext == null ? void 0 : inferenceContext.returnMapper) {\n const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper);\n return type.flags & 1048576 /* Union */ && containsType(type.types, regularFalseType) && containsType(type.types, regularTrueType) ? filterType(type, (t) => t !== regularFalseType && t !== regularTrueType) : type;\n }\n }\n return contextualType;\n }\n function instantiateInstantiableTypes(type, mapper) {\n if (type.flags & 465829888 /* Instantiable */) {\n return instantiateType(type, mapper);\n }\n if (type.flags & 1048576 /* Union */) {\n return getUnionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)), 0 /* None */);\n }\n if (type.flags & 2097152 /* Intersection */) {\n return getIntersectionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)));\n }\n return type;\n }\n function getContextualType2(node, contextFlags) {\n var _a;\n if (node.flags & 67108864 /* InWithStatement */) {\n return void 0;\n }\n const index = findContextualNode(\n node,\n /*includeCaches*/\n !contextFlags\n );\n if (index >= 0) {\n return contextualTypes[index];\n }\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 209 /* BindingElement */:\n return getContextualTypeForInitializerExpression(node, contextFlags);\n case 220 /* ArrowFunction */:\n case 254 /* ReturnStatement */:\n return getContextualTypeForReturnExpression(node, contextFlags);\n case 230 /* YieldExpression */:\n return getContextualTypeForYieldOperand(parent2, contextFlags);\n case 224 /* AwaitExpression */:\n return getContextualTypeForAwaitOperand(parent2, contextFlags);\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n return getContextualTypeForArgument(parent2, node);\n case 171 /* Decorator */:\n return getContextualTypeForDecorator(parent2);\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n return isConstTypeReference(parent2.type) ? getContextualType2(parent2, contextFlags) : getTypeFromTypeNode(parent2.type);\n case 227 /* BinaryExpression */:\n return getContextualTypeForBinaryOperand(node, contextFlags);\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n return getContextualTypeForObjectLiteralElement(parent2, contextFlags);\n case 306 /* SpreadAssignment */:\n return getContextualType2(parent2.parent, contextFlags);\n case 210 /* ArrayLiteralExpression */: {\n const arrayLiteral = parent2;\n const type = getApparentTypeOfContextualType(arrayLiteral, contextFlags);\n const elementIndex = indexOfNode(arrayLiteral.elements, node);\n const spreadIndices = (_a = getNodeLinks(arrayLiteral)).spreadIndices ?? (_a.spreadIndices = getSpreadIndices(arrayLiteral.elements));\n return getContextualTypeForElementExpression(type, elementIndex, arrayLiteral.elements.length, spreadIndices.first, spreadIndices.last);\n }\n case 228 /* ConditionalExpression */:\n return getContextualTypeForConditionalOperand(node, contextFlags);\n case 240 /* TemplateSpan */:\n Debug.assert(parent2.parent.kind === 229 /* TemplateExpression */);\n return getContextualTypeForSubstitutionExpression(parent2.parent, node);\n case 218 /* ParenthesizedExpression */: {\n if (isInJSFile(parent2)) {\n if (isJSDocSatisfiesExpression(parent2)) {\n return getTypeFromTypeNode(getJSDocSatisfiesExpressionType(parent2));\n }\n const typeTag = getJSDocTypeTag(parent2);\n if (typeTag && !isConstTypeReference(typeTag.typeExpression.type)) {\n return getTypeFromTypeNode(typeTag.typeExpression.type);\n }\n }\n return getContextualType2(parent2, contextFlags);\n }\n case 236 /* NonNullExpression */:\n return getContextualType2(parent2, contextFlags);\n case 239 /* SatisfiesExpression */:\n return getTypeFromTypeNode(parent2.type);\n case 278 /* ExportAssignment */:\n return tryGetTypeFromEffectiveTypeNode(parent2);\n case 295 /* JsxExpression */:\n return getContextualTypeForJsxExpression(parent2, contextFlags);\n case 292 /* JsxAttribute */:\n case 294 /* JsxSpreadAttribute */:\n return getContextualTypeForJsxAttribute(parent2, contextFlags);\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n return getContextualJsxElementAttributesType(parent2, contextFlags);\n case 302 /* ImportAttribute */:\n return getContextualImportAttributeType(parent2);\n }\n return void 0;\n }\n function pushCachedContextualType(node) {\n pushContextualType(\n node,\n getContextualType2(\n node,\n /*contextFlags*/\n void 0\n ),\n /*isCache*/\n true\n );\n }\n function pushContextualType(node, type, isCache) {\n contextualTypeNodes[contextualTypeCount] = node;\n contextualTypes[contextualTypeCount] = type;\n contextualIsCache[contextualTypeCount] = isCache;\n contextualTypeCount++;\n }\n function popContextualType() {\n contextualTypeCount--;\n contextualTypeNodes[contextualTypeCount] = void 0;\n contextualTypes[contextualTypeCount] = void 0;\n contextualIsCache[contextualTypeCount] = void 0;\n }\n function findContextualNode(node, includeCaches) {\n for (let i = contextualTypeCount - 1; i >= 0; i--) {\n if (node === contextualTypeNodes[i] && (includeCaches || !contextualIsCache[i])) {\n return i;\n }\n }\n return -1;\n }\n function pushInferenceContext(node, inferenceContext) {\n inferenceContextNodes[inferenceContextCount] = node;\n inferenceContexts[inferenceContextCount] = inferenceContext;\n inferenceContextCount++;\n }\n function popInferenceContext() {\n inferenceContextCount--;\n inferenceContextNodes[inferenceContextCount] = void 0;\n inferenceContexts[inferenceContextCount] = void 0;\n }\n function getInferenceContext(node) {\n for (let i = inferenceContextCount - 1; i >= 0; i--) {\n if (isNodeDescendantOf(node, inferenceContextNodes[i])) {\n return inferenceContexts[i];\n }\n }\n }\n function pushActiveMapper(mapper) {\n activeTypeMappers[activeTypeMappersCount] = mapper;\n activeTypeMappersCaches[activeTypeMappersCount] ?? (activeTypeMappersCaches[activeTypeMappersCount] = /* @__PURE__ */ new Map());\n activeTypeMappersCount++;\n }\n function popActiveMapper() {\n activeTypeMappersCount--;\n activeTypeMappers[activeTypeMappersCount] = void 0;\n activeTypeMappersCaches[activeTypeMappersCount].clear();\n }\n function findActiveMapper(mapper) {\n for (let i = activeTypeMappersCount - 1; i >= 0; i--) {\n if (mapper === activeTypeMappers[i]) {\n return i;\n }\n }\n return -1;\n }\n function clearActiveMapperCaches() {\n for (let i = activeTypeMappersCount - 1; i >= 0; i--) {\n activeTypeMappersCaches[i].clear();\n }\n }\n function getContextualImportAttributeType(node) {\n return getTypeOfPropertyOfContextualType(getGlobalImportAttributesType(\n /*reportErrors*/\n false\n ), getNameFromImportAttribute(node));\n }\n function getContextualJsxElementAttributesType(node, contextFlags) {\n if (isJsxOpeningElement(node) && contextFlags !== 4 /* Completions */) {\n const index = findContextualNode(\n node.parent,\n /*includeCaches*/\n !contextFlags\n );\n if (index >= 0) {\n return contextualTypes[index];\n }\n }\n return getContextualTypeForArgumentAtIndex(node, 0);\n }\n function getEffectiveFirstArgumentForJsxSignature(signature, node) {\n return isJsxOpeningFragment(node) || getJsxReferenceKind(node) !== 0 /* Component */ ? getJsxPropsTypeFromCallSignature(signature, node) : getJsxPropsTypeFromClassType(signature, node);\n }\n function getJsxPropsTypeFromCallSignature(sig, context) {\n let propsType = getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType);\n propsType = getJsxManagedAttributesFromLocatedAttributes(context, getJsxNamespaceAt(context), propsType);\n const intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context);\n if (!isErrorType(intrinsicAttribs)) {\n propsType = intersectTypes(intrinsicAttribs, propsType);\n }\n return propsType;\n }\n function getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation) {\n if (sig.compositeSignatures) {\n const results = [];\n for (const signature of sig.compositeSignatures) {\n const instance = getReturnTypeOfSignature(signature);\n if (isTypeAny(instance)) {\n return instance;\n }\n const propType = getTypeOfPropertyOfType(instance, forcedLookupLocation);\n if (!propType) {\n return;\n }\n results.push(propType);\n }\n return getIntersectionType(results);\n }\n const instanceType = getReturnTypeOfSignature(sig);\n return isTypeAny(instanceType) ? instanceType : getTypeOfPropertyOfType(instanceType, forcedLookupLocation);\n }\n function getStaticTypeOfReferencedJsxConstructor(context) {\n if (isJsxOpeningFragment(context)) return getJSXFragmentType(context);\n if (isJsxIntrinsicTagName(context.tagName)) {\n const result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(context);\n const fakeSignature = createSignatureForJSXIntrinsic(context, result);\n return getOrCreateTypeFromSignature(fakeSignature);\n }\n const tagType = checkExpressionCached(context.tagName);\n if (tagType.flags & 128 /* StringLiteral */) {\n const result = getIntrinsicAttributesTypeFromStringLiteralType(tagType, context);\n if (!result) {\n return errorType;\n }\n const fakeSignature = createSignatureForJSXIntrinsic(context, result);\n return getOrCreateTypeFromSignature(fakeSignature);\n }\n return tagType;\n }\n function getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType) {\n const managedSym = getJsxLibraryManagedAttributes(ns);\n if (managedSym) {\n const ctorType = getStaticTypeOfReferencedJsxConstructor(context);\n const result = instantiateAliasOrInterfaceWithDefaults(managedSym, isInJSFile(context), ctorType, attributesType);\n if (result) {\n return result;\n }\n }\n return attributesType;\n }\n function getJsxPropsTypeFromClassType(sig, context) {\n const ns = getJsxNamespaceAt(context);\n const forcedLookupLocation = getJsxElementPropertiesName(ns);\n let attributesType = forcedLookupLocation === void 0 ? getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType) : forcedLookupLocation === \"\" ? getReturnTypeOfSignature(sig) : getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation);\n if (!attributesType) {\n if (!!forcedLookupLocation && !!length(context.attributes.properties)) {\n error2(context, Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, unescapeLeadingUnderscores(forcedLookupLocation));\n }\n return unknownType;\n }\n attributesType = getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType);\n if (isTypeAny(attributesType)) {\n return attributesType;\n } else {\n let apparentAttributesType = attributesType;\n const intrinsicClassAttribs = getJsxType(JsxNames.IntrinsicClassAttributes, context);\n if (!isErrorType(intrinsicClassAttribs)) {\n const typeParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(intrinsicClassAttribs.symbol);\n const hostClassType = getReturnTypeOfSignature(sig);\n let libraryManagedAttributeType;\n if (typeParams) {\n const inferredArgs = fillMissingTypeArguments([hostClassType], typeParams, getMinTypeArgumentCount(typeParams), isInJSFile(context));\n libraryManagedAttributeType = instantiateType(intrinsicClassAttribs, createTypeMapper(typeParams, inferredArgs));\n } else libraryManagedAttributeType = intrinsicClassAttribs;\n apparentAttributesType = intersectTypes(libraryManagedAttributeType, apparentAttributesType);\n }\n const intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context);\n if (!isErrorType(intrinsicAttribs)) {\n apparentAttributesType = intersectTypes(intrinsicAttribs, apparentAttributesType);\n }\n return apparentAttributesType;\n }\n }\n function getIntersectedSignatures(signatures) {\n return getStrictOptionValue(compilerOptions, \"noImplicitAny\") ? reduceLeft(\n signatures,\n (left, right) => left === right || !left ? left : compareTypeParametersIdentical(left.typeParameters, right.typeParameters) ? combineSignaturesOfIntersectionMembers(left, right) : void 0\n ) : void 0;\n }\n function combineIntersectionThisParam(left, right, mapper) {\n if (!left || !right) {\n return left || right;\n }\n const thisType = getUnionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]);\n return createSymbolWithType(left, thisType);\n }\n function combineIntersectionParameters(left, right, mapper) {\n const leftCount = getParameterCount(left);\n const rightCount = getParameterCount(right);\n const longest = leftCount >= rightCount ? left : right;\n const shorter = longest === left ? right : left;\n const longestCount = longest === left ? leftCount : rightCount;\n const eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right);\n const needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest);\n const params = new Array(longestCount + (needsExtraRestElement ? 1 : 0));\n for (let i = 0; i < longestCount; i++) {\n let longestParamType = tryGetTypeAtPosition(longest, i);\n if (longest === right) {\n longestParamType = instantiateType(longestParamType, mapper);\n }\n let shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType;\n if (shorter === right) {\n shorterParamType = instantiateType(shorterParamType, mapper);\n }\n const unionParamType = getUnionType([longestParamType, shorterParamType]);\n const isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1;\n const isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter);\n const leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i);\n const rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i);\n const paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0;\n const paramSymbol = createSymbol(\n 1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0),\n paramName || `arg${i}`,\n isRestParam ? 32768 /* RestParameter */ : isOptional ? 16384 /* OptionalParameter */ : 0\n );\n paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType;\n params[i] = paramSymbol;\n }\n if (needsExtraRestElement) {\n const restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, \"args\", 32768 /* RestParameter */);\n restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount));\n if (shorter === right) {\n restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper);\n }\n params[longestCount] = restParamSymbol;\n }\n return params;\n }\n function combineSignaturesOfIntersectionMembers(left, right) {\n const typeParams = left.typeParameters || right.typeParameters;\n let paramMapper;\n if (left.typeParameters && right.typeParameters) {\n paramMapper = createTypeMapper(right.typeParameters, left.typeParameters);\n }\n let flags = (left.flags | right.flags) & (167 /* PropagatingFlags */ & ~1 /* HasRestParameter */);\n const declaration = left.declaration;\n const params = combineIntersectionParameters(left, right, paramMapper);\n const lastParam = lastOrUndefined(params);\n if (lastParam && getCheckFlags(lastParam) & 32768 /* RestParameter */) {\n flags |= 1 /* HasRestParameter */;\n }\n const thisParam = combineIntersectionThisParam(left.thisParameter, right.thisParameter, paramMapper);\n const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);\n const result = createSignature(\n declaration,\n typeParams,\n thisParam,\n params,\n /*resolvedReturnType*/\n void 0,\n /*resolvedTypePredicate*/\n void 0,\n minArgCount,\n flags\n );\n result.compositeKind = 2097152 /* Intersection */;\n result.compositeSignatures = concatenate(left.compositeKind === 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]);\n if (paramMapper) {\n result.mapper = left.compositeKind === 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;\n }\n return result;\n }\n function getContextualCallSignature(type, node) {\n const signatures = getSignaturesOfType(type, 0 /* Call */);\n const applicableByArity = filter(signatures, (s) => !isAritySmaller(s, node));\n return applicableByArity.length === 1 ? applicableByArity[0] : getIntersectedSignatures(applicableByArity);\n }\n function isAritySmaller(signature, target) {\n let targetParameterCount = 0;\n for (; targetParameterCount < target.parameters.length; targetParameterCount++) {\n const param = target.parameters[targetParameterCount];\n if (param.initializer || param.questionToken || param.dotDotDotToken || isJSDocOptionalParameter(param)) {\n break;\n }\n }\n if (target.parameters.length && parameterIsThisKeyword(target.parameters[0])) {\n targetParameterCount--;\n }\n return !hasEffectiveRestParameter(signature) && getParameterCount(signature) < targetParameterCount;\n }\n function getContextualSignatureForFunctionLikeDeclaration(node) {\n return isFunctionExpressionOrArrowFunction(node) || isObjectLiteralMethod(node) ? getContextualSignature(node) : void 0;\n }\n function getContextualSignature(node) {\n Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n const typeTagSignature = getSignatureOfTypeTag(node);\n if (typeTagSignature) {\n return typeTagSignature;\n }\n const type = getApparentTypeOfContextualType(node, 1 /* Signature */);\n if (!type) {\n return void 0;\n }\n if (!(type.flags & 1048576 /* Union */)) {\n return getContextualCallSignature(type, node);\n }\n let signatureList;\n const types = type.types;\n for (const current of types) {\n const signature = getContextualCallSignature(current, node);\n if (signature) {\n if (!signatureList) {\n signatureList = [signature];\n } else if (!compareSignaturesIdentical(\n signatureList[0],\n signature,\n /*partialMatch*/\n false,\n /*ignoreThisTypes*/\n true,\n /*ignoreReturnTypes*/\n true,\n compareTypesIdentical\n )) {\n return void 0;\n } else {\n signatureList.push(signature);\n }\n }\n }\n if (signatureList) {\n return signatureList.length === 1 ? signatureList[0] : createUnionSignature(signatureList[0], signatureList);\n }\n }\n function checkGrammarRegularExpressionLiteral(node) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile) && !node.isUnterminated) {\n let lastError;\n scanner2 ?? (scanner2 = createScanner(\n 99 /* ESNext */,\n /*skipTrivia*/\n true\n ));\n scanner2.setScriptTarget(sourceFile.languageVersion);\n scanner2.setLanguageVariant(sourceFile.languageVariant);\n scanner2.setOnError((message, length2, arg0) => {\n const start = scanner2.getTokenEnd();\n if (message.category === 3 /* Message */ && lastError && start === lastError.start && length2 === lastError.length) {\n const error3 = createDetachedDiagnostic(sourceFile.fileName, sourceFile.text, start, length2, message, arg0);\n addRelatedInfo(lastError, error3);\n } else if (!lastError || start !== lastError.start) {\n lastError = createFileDiagnostic(sourceFile, start, length2, message, arg0);\n diagnostics.add(lastError);\n }\n });\n scanner2.setText(sourceFile.text, node.pos, node.end - node.pos);\n try {\n scanner2.scan();\n Debug.assert(scanner2.reScanSlashToken(\n /*reportErrors*/\n true\n ) === 14 /* RegularExpressionLiteral */, \"Expected scanner to rescan RegularExpressionLiteral\");\n return !!lastError;\n } finally {\n scanner2.setText(\"\");\n scanner2.setOnError(\n /*onError*/\n void 0\n );\n }\n }\n return false;\n }\n function checkRegularExpressionLiteral(node) {\n const nodeLinks2 = getNodeLinks(node);\n if (!(nodeLinks2.flags & 1 /* TypeChecked */)) {\n nodeLinks2.flags |= 1 /* TypeChecked */;\n addLazyDiagnostic(() => checkGrammarRegularExpressionLiteral(node));\n }\n return globalRegExpType;\n }\n function checkSpreadExpression(node, checkMode) {\n if (languageVersion < LanguageFeatureMinimumTarget.SpreadElements) {\n checkExternalEmitHelpers(node, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */);\n }\n const arrayOrIterableType = checkExpression(node.expression, checkMode);\n return checkIteratedTypeOrElementType(33 /* Spread */, arrayOrIterableType, undefinedType, node.expression);\n }\n function checkSyntheticExpression(node) {\n return node.isSpread ? getIndexedAccessType(node.type, numberType) : node.type;\n }\n function hasDefaultValue(node) {\n return node.kind === 209 /* BindingElement */ && !!node.initializer || node.kind === 304 /* PropertyAssignment */ && hasDefaultValue(node.initializer) || node.kind === 305 /* ShorthandPropertyAssignment */ && !!node.objectAssignmentInitializer || node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */;\n }\n function isSpreadIntoCallOrNew(node) {\n const parent2 = walkUpParenthesizedExpressions(node.parent);\n return isSpreadElement(parent2) && isCallOrNewExpression(parent2.parent);\n }\n function checkArrayLiteral(node, checkMode, forceTuple) {\n const elements = node.elements;\n const elementCount = elements.length;\n const elementTypes = [];\n const elementFlags = [];\n pushCachedContextualType(node);\n const inDestructuringPattern = isAssignmentTarget(node);\n const inConstContext = isConstContext(node);\n const contextualType = getApparentTypeOfContextualType(\n node,\n /*contextFlags*/\n void 0\n );\n const inTupleContext = isSpreadIntoCallOrNew(node) || !!contextualType && someType(contextualType, (t) => isTupleLikeType(t) || isGenericMappedType(t) && !t.nameType && !!getHomomorphicTypeVariable(t.target || t));\n let hasOmittedExpression = false;\n for (let i = 0; i < elementCount; i++) {\n const e = elements[i];\n if (e.kind === 231 /* SpreadElement */) {\n if (languageVersion < LanguageFeatureMinimumTarget.SpreadElements) {\n checkExternalEmitHelpers(e, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */);\n }\n const spreadType = checkExpression(e.expression, checkMode, forceTuple);\n if (isArrayLikeType(spreadType)) {\n elementTypes.push(spreadType);\n elementFlags.push(8 /* Variadic */);\n } else if (inDestructuringPattern) {\n const restElementType = getIndexTypeOfType(spreadType, numberType) || getIteratedTypeOrElementType(\n 65 /* Destructuring */,\n spreadType,\n undefinedType,\n /*errorNode*/\n void 0,\n /*checkAssignability*/\n false\n ) || unknownType;\n elementTypes.push(restElementType);\n elementFlags.push(4 /* Rest */);\n } else {\n elementTypes.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, e.expression));\n elementFlags.push(4 /* Rest */);\n }\n } else if (exactOptionalPropertyTypes && e.kind === 233 /* OmittedExpression */) {\n hasOmittedExpression = true;\n elementTypes.push(undefinedOrMissingType);\n elementFlags.push(2 /* Optional */);\n } else {\n const type = checkExpressionForMutableLocation(e, checkMode, forceTuple);\n elementTypes.push(addOptionality(\n type,\n /*isProperty*/\n true,\n hasOmittedExpression\n ));\n elementFlags.push(hasOmittedExpression ? 2 /* Optional */ : 1 /* Required */);\n if (inTupleContext && checkMode && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(e)) {\n const inferenceContext = getInferenceContext(node);\n Debug.assert(inferenceContext);\n addIntraExpressionInferenceSite(inferenceContext, e, type);\n }\n }\n }\n popContextualType();\n if (inDestructuringPattern) {\n return createTupleType(elementTypes, elementFlags);\n }\n if (forceTuple || inConstContext || inTupleContext) {\n return createArrayLiteralType(createTupleType(\n elementTypes,\n elementFlags,\n /*readonly*/\n inConstContext && !(contextualType && someType(contextualType, isMutableArrayLikeType))\n ));\n }\n return createArrayLiteralType(createArrayType(\n elementTypes.length ? getUnionType(sameMap(elementTypes, (t, i) => elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessTypeOrUndefined(t, numberType) || anyType : t), 2 /* Subtype */) : strictNullChecks ? implicitNeverType : undefinedWideningType,\n inConstContext\n ));\n }\n function createArrayLiteralType(type) {\n if (!(getObjectFlags(type) & 4 /* Reference */)) {\n return type;\n }\n let literalType = type.literalType;\n if (!literalType) {\n literalType = type.literalType = cloneTypeReference(type);\n literalType.objectFlags |= 16384 /* ArrayLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n }\n return literalType;\n }\n function isNumericName(name) {\n switch (name.kind) {\n case 168 /* ComputedPropertyName */:\n return isNumericComputedName(name);\n case 80 /* Identifier */:\n return isNumericLiteralName(name.escapedText);\n case 9 /* NumericLiteral */:\n case 11 /* StringLiteral */:\n return isNumericLiteralName(name.text);\n default:\n return false;\n }\n }\n function isNumericComputedName(name) {\n return isTypeAssignableToKind(checkComputedPropertyName(name), 296 /* NumberLike */);\n }\n function checkComputedPropertyName(node) {\n const links = getNodeLinks(node.expression);\n if (!links.resolvedType) {\n if ((isTypeLiteralNode(node.parent.parent) || isClassLike(node.parent.parent) || isInterfaceDeclaration(node.parent.parent)) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 103 /* InKeyword */ && node.parent.kind !== 178 /* GetAccessor */ && node.parent.kind !== 179 /* SetAccessor */) {\n return links.resolvedType = errorType;\n }\n links.resolvedType = checkExpression(node.expression);\n if (isPropertyDeclaration(node.parent) && !hasStaticModifier(node.parent) && isClassExpression(node.parent.parent)) {\n const container = getEnclosingBlockScopeContainer(node.parent.parent);\n const enclosingIterationStatement = getEnclosingIterationStatement(container);\n if (enclosingIterationStatement) {\n getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n getNodeLinks(node).flags |= 32768 /* BlockScopedBindingInLoop */;\n getNodeLinks(node.parent.parent).flags |= 32768 /* BlockScopedBindingInLoop */;\n }\n }\n if (links.resolvedType.flags & 98304 /* Nullable */ || !isTypeAssignableToKind(links.resolvedType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */) && !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) {\n error2(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);\n }\n }\n return links.resolvedType;\n }\n function isSymbolWithNumericName(symbol) {\n var _a;\n const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n return isNumericLiteralName(symbol.escapedName) || firstDecl && isNamedDeclaration(firstDecl) && isNumericName(firstDecl.name);\n }\n function isSymbolWithSymbolName(symbol) {\n var _a;\n const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n return isKnownSymbol(symbol) || firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name) && isTypeAssignableToKind(checkComputedPropertyName(firstDecl.name), 4096 /* ESSymbol */);\n }\n function isSymbolWithComputedName(symbol) {\n var _a;\n const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n return firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name);\n }\n function getObjectLiteralIndexInfo(isReadonly, offset, properties, keyType) {\n var _a;\n const propTypes = [];\n let components;\n for (let i = offset; i < properties.length; i++) {\n const prop = properties[i];\n if (keyType === stringType && !isSymbolWithSymbolName(prop) || keyType === numberType && isSymbolWithNumericName(prop) || keyType === esSymbolType && isSymbolWithSymbolName(prop)) {\n propTypes.push(getTypeOfSymbol(properties[i]));\n if (isSymbolWithComputedName(properties[i])) {\n components = append(components, (_a = properties[i].declarations) == null ? void 0 : _a[0]);\n }\n }\n }\n const unionType = propTypes.length ? getUnionType(propTypes, 2 /* Subtype */) : undefinedType;\n return createIndexInfo(\n keyType,\n unionType,\n isReadonly,\n /*declaration*/\n void 0,\n components\n );\n }\n function getImmediateAliasedSymbol(symbol) {\n Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, \"Should only get Alias here.\");\n const links = getSymbolLinks(symbol);\n if (!links.immediateTarget) {\n const node = getDeclarationOfAliasSymbol(symbol);\n if (!node) return Debug.fail();\n links.immediateTarget = getTargetOfAliasDeclaration(\n node,\n /*dontRecursivelyResolve*/\n true\n );\n }\n return links.immediateTarget;\n }\n function checkObjectLiteral(node, checkMode = 0 /* Normal */) {\n const inDestructuringPattern = isAssignmentTarget(node);\n checkGrammarObjectLiteralExpression(node, inDestructuringPattern);\n const allPropertiesTable = strictNullChecks ? createSymbolTable() : void 0;\n let propertiesTable = createSymbolTable();\n let propertiesArray = [];\n let spread = emptyObjectType;\n pushCachedContextualType(node);\n const contextualType = getApparentTypeOfContextualType(\n node,\n /*contextFlags*/\n void 0\n );\n const contextualTypeHasPattern = contextualType && contextualType.pattern && (contextualType.pattern.kind === 207 /* ObjectBindingPattern */ || contextualType.pattern.kind === 211 /* ObjectLiteralExpression */);\n const inConstContext = isConstContext(node);\n const checkFlags = inConstContext ? 8 /* Readonly */ : 0;\n const isInJavascript = isInJSFile(node) && !isInJsonFile(node);\n const enumTag = isInJavascript ? getJSDocEnumTag(node) : void 0;\n const isJSObjectLiteral = !contextualType && isInJavascript && !enumTag;\n let objectFlags = 8192 /* FreshLiteral */;\n let patternWithComputedProperties = false;\n let hasComputedStringProperty = false;\n let hasComputedNumberProperty = false;\n let hasComputedSymbolProperty = false;\n for (const elem of node.properties) {\n if (elem.name && isComputedPropertyName(elem.name)) {\n checkComputedPropertyName(elem.name);\n }\n }\n let offset = 0;\n for (const memberDecl of node.properties) {\n let member = getSymbolOfDeclaration(memberDecl);\n const computedNameType = memberDecl.name && memberDecl.name.kind === 168 /* ComputedPropertyName */ ? checkComputedPropertyName(memberDecl.name) : void 0;\n if (memberDecl.kind === 304 /* PropertyAssignment */ || memberDecl.kind === 305 /* ShorthandPropertyAssignment */ || isObjectLiteralMethod(memberDecl)) {\n let type = memberDecl.kind === 304 /* PropertyAssignment */ ? checkPropertyAssignment(memberDecl, checkMode) : (\n // avoid resolving the left side of the ShorthandPropertyAssignment outside of the destructuring\n // for error recovery purposes. For example, if a user wrote `{ a = 100 }` instead of `{ a: 100 }`.\n // we don't want to say \"could not find 'a'\".\n memberDecl.kind === 305 /* ShorthandPropertyAssignment */ ? checkExpressionForMutableLocation(!inDestructuringPattern && memberDecl.objectAssignmentInitializer ? memberDecl.objectAssignmentInitializer : memberDecl.name, checkMode) : checkObjectLiteralMethod(memberDecl, checkMode)\n );\n if (isInJavascript) {\n const jsDocType = getTypeForDeclarationFromJSDocComment(memberDecl);\n if (jsDocType) {\n checkTypeAssignableTo(type, jsDocType, memberDecl);\n type = jsDocType;\n } else if (enumTag && enumTag.typeExpression) {\n checkTypeAssignableTo(type, getTypeFromTypeNode(enumTag.typeExpression), memberDecl);\n }\n }\n objectFlags |= getObjectFlags(type) & 458752 /* PropagatingFlags */;\n const nameType = computedNameType && isTypeUsableAsPropertyName(computedNameType) ? computedNameType : void 0;\n const prop = nameType ? createSymbol(4 /* Property */ | member.flags, getPropertyNameFromType(nameType), checkFlags | 4096 /* Late */) : createSymbol(4 /* Property */ | member.flags, member.escapedName, checkFlags);\n if (nameType) {\n prop.links.nameType = nameType;\n }\n if (inDestructuringPattern && hasDefaultValue(memberDecl)) {\n prop.flags |= 16777216 /* Optional */;\n } else if (contextualTypeHasPattern && !(getObjectFlags(contextualType) & 512 /* ObjectLiteralPatternWithComputedProperties */)) {\n const impliedProp = getPropertyOfType(contextualType, member.escapedName);\n if (impliedProp) {\n prop.flags |= impliedProp.flags & 16777216 /* Optional */;\n } else if (!getIndexInfoOfType(contextualType, stringType)) {\n error2(memberDecl.name, Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(member), typeToString(contextualType));\n }\n }\n prop.declarations = member.declarations;\n prop.parent = member.parent;\n if (member.valueDeclaration) {\n prop.valueDeclaration = member.valueDeclaration;\n }\n prop.links.type = type;\n prop.links.target = member;\n member = prop;\n allPropertiesTable == null ? void 0 : allPropertiesTable.set(prop.escapedName, prop);\n if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && (memberDecl.kind === 304 /* PropertyAssignment */ || memberDecl.kind === 175 /* MethodDeclaration */) && isContextSensitive(memberDecl)) {\n const inferenceContext = getInferenceContext(node);\n Debug.assert(inferenceContext);\n const inferenceNode = memberDecl.kind === 304 /* PropertyAssignment */ ? memberDecl.initializer : memberDecl;\n addIntraExpressionInferenceSite(inferenceContext, inferenceNode, type);\n }\n } else if (memberDecl.kind === 306 /* SpreadAssignment */) {\n if (languageVersion < LanguageFeatureMinimumTarget.ObjectAssign) {\n checkExternalEmitHelpers(memberDecl, 2 /* Assign */);\n }\n if (propertiesArray.length > 0) {\n spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext);\n propertiesArray = [];\n propertiesTable = createSymbolTable();\n hasComputedStringProperty = false;\n hasComputedNumberProperty = false;\n hasComputedSymbolProperty = false;\n }\n const type = getReducedType(checkExpression(memberDecl.expression, checkMode & 2 /* Inferential */));\n if (isValidSpreadType(type)) {\n const mergedType = tryMergeUnionOfObjectTypeAndEmptyObject(type, inConstContext);\n if (allPropertiesTable) {\n checkSpreadPropOverrides(mergedType, allPropertiesTable, memberDecl);\n }\n offset = propertiesArray.length;\n if (isErrorType(spread)) {\n continue;\n }\n spread = getSpreadType(spread, mergedType, node.symbol, objectFlags, inConstContext);\n } else {\n error2(memberDecl, Diagnostics.Spread_types_may_only_be_created_from_object_types);\n spread = errorType;\n }\n continue;\n } else {\n Debug.assert(memberDecl.kind === 178 /* GetAccessor */ || memberDecl.kind === 179 /* SetAccessor */);\n checkNodeDeferred(memberDecl);\n }\n if (computedNameType && !(computedNameType.flags & 8576 /* StringOrNumberLiteralOrUnique */)) {\n if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) {\n if (isTypeAssignableTo(computedNameType, numberType)) {\n hasComputedNumberProperty = true;\n } else if (isTypeAssignableTo(computedNameType, esSymbolType)) {\n hasComputedSymbolProperty = true;\n } else {\n hasComputedStringProperty = true;\n }\n if (inDestructuringPattern) {\n patternWithComputedProperties = true;\n }\n }\n } else {\n propertiesTable.set(member.escapedName, member);\n }\n propertiesArray.push(member);\n }\n popContextualType();\n if (isErrorType(spread)) {\n return errorType;\n }\n if (spread !== emptyObjectType) {\n if (propertiesArray.length > 0) {\n spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext);\n propertiesArray = [];\n propertiesTable = createSymbolTable();\n hasComputedStringProperty = false;\n hasComputedNumberProperty = false;\n }\n return mapType(spread, (t) => t === emptyObjectType ? createObjectLiteralType() : t);\n }\n return createObjectLiteralType();\n function createObjectLiteralType() {\n const indexInfos = [];\n const isReadonly = isConstContext(node);\n if (hasComputedStringProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, stringType));\n if (hasComputedNumberProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, numberType));\n if (hasComputedSymbolProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, esSymbolType));\n const result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, indexInfos);\n result.objectFlags |= objectFlags | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n if (isJSObjectLiteral) {\n result.objectFlags |= 4096 /* JSLiteral */;\n }\n if (patternWithComputedProperties) {\n result.objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */;\n }\n if (inDestructuringPattern) {\n result.pattern = node;\n }\n return result;\n }\n }\n function isValidSpreadType(type) {\n const t = removeDefinitelyFalsyTypes(mapType(type, getBaseConstraintOrType));\n return !!(t.flags & (1 /* Any */ | 67108864 /* NonPrimitive */ | 524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) || t.flags & 3145728 /* UnionOrIntersection */ && every(t.types, isValidSpreadType));\n }\n function checkJsxSelfClosingElementDeferred(node) {\n checkJsxOpeningLikeElementOrOpeningFragment(node);\n }\n function checkJsxSelfClosingElement(node, _checkMode) {\n checkNodeDeferred(node);\n return getJsxElementTypeAt(node) || anyType;\n }\n function checkJsxElementDeferred(node) {\n checkJsxOpeningLikeElementOrOpeningFragment(node.openingElement);\n if (isJsxIntrinsicTagName(node.closingElement.tagName)) {\n getIntrinsicTagSymbol(node.closingElement);\n } else {\n checkExpression(node.closingElement.tagName);\n }\n checkJsxChildren(node);\n }\n function checkJsxElement(node, _checkMode) {\n checkNodeDeferred(node);\n return getJsxElementTypeAt(node) || anyType;\n }\n function checkJsxFragment(node) {\n checkJsxOpeningLikeElementOrOpeningFragment(node.openingFragment);\n const nodeSourceFile = getSourceFileOfNode(node);\n if (getJSXTransformEnabled(compilerOptions) && (compilerOptions.jsxFactory || nodeSourceFile.pragmas.has(\"jsx\")) && !compilerOptions.jsxFragmentFactory && !nodeSourceFile.pragmas.has(\"jsxfrag\")) {\n error2(\n node,\n compilerOptions.jsxFactory ? Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option : Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments\n );\n }\n checkJsxChildren(node);\n const jsxElementType = getJsxElementTypeAt(node);\n return isErrorType(jsxElementType) ? anyType : jsxElementType;\n }\n function isHyphenatedJsxName(name) {\n return name.includes(\"-\");\n }\n function isJsxIntrinsicTagName(tagName) {\n return isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText) || isJsxNamespacedName(tagName);\n }\n function checkJsxAttribute(node, checkMode) {\n return node.initializer ? checkExpressionForMutableLocation(node.initializer, checkMode) : trueType;\n }\n function createJsxAttributesTypeFromAttributesProperty(openingLikeElement, checkMode = 0 /* Normal */) {\n const allAttributesTable = strictNullChecks ? createSymbolTable() : void 0;\n let attributesTable = createSymbolTable();\n let spread = emptyJsxObjectType;\n let hasSpreadAnyType = false;\n let typeToIntersect;\n let explicitlySpecifyChildrenAttribute = false;\n let objectFlags = 2048 /* JsxAttributes */;\n const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(openingLikeElement));\n const isJsxOpenFragment = isJsxOpeningFragment(openingLikeElement);\n let attributesSymbol;\n let attributeParent = openingLikeElement;\n if (!isJsxOpenFragment) {\n const attributes = openingLikeElement.attributes;\n attributesSymbol = attributes.symbol;\n attributeParent = attributes;\n const contextualType = getContextualType2(attributes, 0 /* None */);\n for (const attributeDecl of attributes.properties) {\n const member = attributeDecl.symbol;\n if (isJsxAttribute(attributeDecl)) {\n const exprType = checkJsxAttribute(attributeDecl, checkMode);\n objectFlags |= getObjectFlags(exprType) & 458752 /* PropagatingFlags */;\n const attributeSymbol = createSymbol(4 /* Property */ | member.flags, member.escapedName);\n attributeSymbol.declarations = member.declarations;\n attributeSymbol.parent = member.parent;\n if (member.valueDeclaration) {\n attributeSymbol.valueDeclaration = member.valueDeclaration;\n }\n attributeSymbol.links.type = exprType;\n attributeSymbol.links.target = member;\n attributesTable.set(attributeSymbol.escapedName, attributeSymbol);\n allAttributesTable == null ? void 0 : allAttributesTable.set(attributeSymbol.escapedName, attributeSymbol);\n if (getEscapedTextOfJsxAttributeName(attributeDecl.name) === jsxChildrenPropertyName) {\n explicitlySpecifyChildrenAttribute = true;\n }\n if (contextualType) {\n const prop = getPropertyOfType(contextualType, member.escapedName);\n if (prop && prop.declarations && isDeprecatedSymbol(prop) && isIdentifier(attributeDecl.name)) {\n addDeprecatedSuggestion(attributeDecl.name, prop.declarations, attributeDecl.name.escapedText);\n }\n }\n if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(attributeDecl)) {\n const inferenceContext = getInferenceContext(attributes);\n Debug.assert(inferenceContext);\n const inferenceNode = attributeDecl.initializer.expression;\n addIntraExpressionInferenceSite(inferenceContext, inferenceNode, exprType);\n }\n } else {\n Debug.assert(attributeDecl.kind === 294 /* JsxSpreadAttribute */);\n if (attributesTable.size > 0) {\n spread = getSpreadType(\n spread,\n createJsxAttributesTypeHelper(),\n attributes.symbol,\n objectFlags,\n /*readonly*/\n false\n );\n attributesTable = createSymbolTable();\n }\n const exprType = getReducedType(checkExpression(attributeDecl.expression, checkMode & 2 /* Inferential */));\n if (isTypeAny(exprType)) {\n hasSpreadAnyType = true;\n }\n if (isValidSpreadType(exprType)) {\n spread = getSpreadType(\n spread,\n exprType,\n attributes.symbol,\n objectFlags,\n /*readonly*/\n false\n );\n if (allAttributesTable) {\n checkSpreadPropOverrides(exprType, allAttributesTable, attributeDecl);\n }\n } else {\n error2(attributeDecl.expression, Diagnostics.Spread_types_may_only_be_created_from_object_types);\n typeToIntersect = typeToIntersect ? getIntersectionType([typeToIntersect, exprType]) : exprType;\n }\n }\n }\n if (!hasSpreadAnyType) {\n if (attributesTable.size > 0) {\n spread = getSpreadType(\n spread,\n createJsxAttributesTypeHelper(),\n attributes.symbol,\n objectFlags,\n /*readonly*/\n false\n );\n }\n }\n }\n const parent2 = openingLikeElement.parent;\n if ((isJsxElement(parent2) && parent2.openingElement === openingLikeElement || isJsxFragment(parent2) && parent2.openingFragment === openingLikeElement) && getSemanticJsxChildren(parent2.children).length > 0) {\n const childrenTypes = checkJsxChildren(parent2, checkMode);\n if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== \"\") {\n if (explicitlySpecifyChildrenAttribute) {\n error2(attributeParent, Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, unescapeLeadingUnderscores(jsxChildrenPropertyName));\n }\n const contextualType = isJsxOpeningElement(openingLikeElement) ? getApparentTypeOfContextualType(\n openingLikeElement.attributes,\n /*contextFlags*/\n void 0\n ) : void 0;\n const childrenContextualType = contextualType && getTypeOfPropertyOfContextualType(contextualType, jsxChildrenPropertyName);\n const childrenPropSymbol = createSymbol(4 /* Property */, jsxChildrenPropertyName);\n childrenPropSymbol.links.type = childrenTypes.length === 1 ? childrenTypes[0] : childrenContextualType && someType(childrenContextualType, isTupleLikeType) ? createTupleType(childrenTypes) : createArrayType(getUnionType(childrenTypes));\n childrenPropSymbol.valueDeclaration = factory.createPropertySignature(\n /*modifiers*/\n void 0,\n unescapeLeadingUnderscores(jsxChildrenPropertyName),\n /*questionToken*/\n void 0,\n /*type*/\n void 0\n );\n setParent(childrenPropSymbol.valueDeclaration, attributeParent);\n childrenPropSymbol.valueDeclaration.symbol = childrenPropSymbol;\n const childPropMap = createSymbolTable();\n childPropMap.set(jsxChildrenPropertyName, childrenPropSymbol);\n spread = getSpreadType(\n spread,\n createAnonymousType(attributesSymbol, childPropMap, emptyArray, emptyArray, emptyArray),\n attributesSymbol,\n objectFlags,\n /*readonly*/\n false\n );\n }\n }\n if (hasSpreadAnyType) {\n return anyType;\n }\n if (typeToIntersect && spread !== emptyJsxObjectType) {\n return getIntersectionType([typeToIntersect, spread]);\n }\n return typeToIntersect || (spread === emptyJsxObjectType ? createJsxAttributesTypeHelper() : spread);\n function createJsxAttributesTypeHelper() {\n objectFlags |= 8192 /* FreshLiteral */;\n return createJsxAttributesType(objectFlags, attributesSymbol, attributesTable);\n }\n }\n function createJsxAttributesType(objectFlags, attributesSymbol, attributesTable) {\n const result = createAnonymousType(attributesSymbol, attributesTable, emptyArray, emptyArray, emptyArray);\n result.objectFlags |= objectFlags | 8192 /* FreshLiteral */ | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n return result;\n }\n function checkJsxChildren(node, checkMode) {\n const childrenTypes = [];\n for (const child of node.children) {\n if (child.kind === 12 /* JsxText */) {\n if (!child.containsOnlyTriviaWhiteSpaces) {\n childrenTypes.push(stringType);\n }\n } else if (child.kind === 295 /* JsxExpression */ && !child.expression) {\n continue;\n } else {\n childrenTypes.push(checkExpressionForMutableLocation(child, checkMode));\n }\n }\n return childrenTypes;\n }\n function checkSpreadPropOverrides(type, props, spread) {\n for (const right of getPropertiesOfType(type)) {\n if (!(right.flags & 16777216 /* Optional */)) {\n const left = props.get(right.escapedName);\n if (left) {\n const diagnostic = error2(left.valueDeclaration, Diagnostics._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, unescapeLeadingUnderscores(left.escapedName));\n addRelatedInfo(diagnostic, createDiagnosticForNode(spread, Diagnostics.This_spread_always_overwrites_this_property));\n }\n }\n }\n }\n function checkJsxAttributes(node, checkMode) {\n return createJsxAttributesTypeFromAttributesProperty(node.parent, checkMode);\n }\n function getJsxType(name, location) {\n const namespace = getJsxNamespaceAt(location);\n const exports2 = namespace && getExportsOfSymbol(namespace);\n const typeSymbol = exports2 && getSymbol2(exports2, name, 788968 /* Type */);\n return typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType;\n }\n function getIntrinsicTagSymbol(node) {\n const links = getNodeLinks(node);\n if (!links.resolvedSymbol) {\n const intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, node);\n if (!isErrorType(intrinsicElementsType)) {\n if (!isIdentifier(node.tagName) && !isJsxNamespacedName(node.tagName)) return Debug.fail();\n const propName = isJsxNamespacedName(node.tagName) ? getEscapedTextOfJsxNamespacedName(node.tagName) : node.tagName.escapedText;\n const intrinsicProp = getPropertyOfType(intrinsicElementsType, propName);\n if (intrinsicProp) {\n links.jsxFlags |= 1 /* IntrinsicNamedElement */;\n return links.resolvedSymbol = intrinsicProp;\n }\n const indexSymbol = getApplicableIndexSymbol(intrinsicElementsType, getStringLiteralType(unescapeLeadingUnderscores(propName)));\n if (indexSymbol) {\n links.jsxFlags |= 2 /* IntrinsicIndexedElement */;\n return links.resolvedSymbol = indexSymbol;\n }\n if (getTypeOfPropertyOrIndexSignatureOfType(intrinsicElementsType, propName)) {\n links.jsxFlags |= 2 /* IntrinsicIndexedElement */;\n return links.resolvedSymbol = intrinsicElementsType.symbol;\n }\n error2(node, Diagnostics.Property_0_does_not_exist_on_type_1, intrinsicTagNameToString(node.tagName), \"JSX.\" + JsxNames.IntrinsicElements);\n return links.resolvedSymbol = unknownSymbol;\n } else {\n if (noImplicitAny) {\n error2(node, Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, unescapeLeadingUnderscores(JsxNames.IntrinsicElements));\n }\n return links.resolvedSymbol = unknownSymbol;\n }\n }\n return links.resolvedSymbol;\n }\n function getJsxNamespaceContainerForImplicitImport(location) {\n const file = location && getSourceFileOfNode(location);\n const links = file && getNodeLinks(file);\n if (links && links.jsxImplicitImportContainer === false) {\n return void 0;\n }\n if (links && links.jsxImplicitImportContainer) {\n return links.jsxImplicitImportContainer;\n }\n const runtimeImportSpecifier = getJSXRuntimeImport(getJSXImplicitImportBase(compilerOptions, file), compilerOptions);\n if (!runtimeImportSpecifier) {\n return void 0;\n }\n const isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */;\n const errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed;\n const specifier = getJSXRuntimeImportSpecifier(file, runtimeImportSpecifier);\n const mod = resolveExternalModule(specifier || location, runtimeImportSpecifier, errorMessage, location);\n const result = mod && mod !== unknownSymbol ? getMergedSymbol(resolveSymbol(mod)) : void 0;\n if (links) {\n links.jsxImplicitImportContainer = result || false;\n }\n return result;\n }\n function getJsxNamespaceAt(location) {\n const links = location && getNodeLinks(location);\n if (links && links.jsxNamespace) {\n return links.jsxNamespace;\n }\n if (!links || links.jsxNamespace !== false) {\n let resolvedNamespace = getJsxNamespaceContainerForImplicitImport(location);\n if (!resolvedNamespace || resolvedNamespace === unknownSymbol) {\n const namespaceName = getJsxNamespace(location);\n resolvedNamespace = resolveName(\n location,\n namespaceName,\n 1920 /* Namespace */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n }\n if (resolvedNamespace) {\n const candidate = resolveSymbol(getSymbol2(getExportsOfSymbol(resolveSymbol(resolvedNamespace)), JsxNames.JSX, 1920 /* Namespace */));\n if (candidate && candidate !== unknownSymbol) {\n if (links) {\n links.jsxNamespace = candidate;\n }\n return candidate;\n }\n }\n if (links) {\n links.jsxNamespace = false;\n }\n }\n const s = resolveSymbol(getGlobalSymbol(\n JsxNames.JSX,\n 1920 /* Namespace */,\n /*diagnostic*/\n void 0\n ));\n if (s === unknownSymbol) {\n return void 0;\n }\n return s;\n }\n function getNameFromJsxElementAttributesContainer(nameOfAttribPropContainer, jsxNamespace) {\n const jsxElementAttribPropInterfaceSym = jsxNamespace && getSymbol2(jsxNamespace.exports, nameOfAttribPropContainer, 788968 /* Type */);\n const jsxElementAttribPropInterfaceType = jsxElementAttribPropInterfaceSym && getDeclaredTypeOfSymbol(jsxElementAttribPropInterfaceSym);\n const propertiesOfJsxElementAttribPropInterface = jsxElementAttribPropInterfaceType && getPropertiesOfType(jsxElementAttribPropInterfaceType);\n if (propertiesOfJsxElementAttribPropInterface) {\n if (propertiesOfJsxElementAttribPropInterface.length === 0) {\n return \"\";\n } else if (propertiesOfJsxElementAttribPropInterface.length === 1) {\n return propertiesOfJsxElementAttribPropInterface[0].escapedName;\n } else if (propertiesOfJsxElementAttribPropInterface.length > 1 && jsxElementAttribPropInterfaceSym.declarations) {\n error2(jsxElementAttribPropInterfaceSym.declarations[0], Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property, unescapeLeadingUnderscores(nameOfAttribPropContainer));\n }\n }\n return void 0;\n }\n function getJsxLibraryManagedAttributes(jsxNamespace) {\n return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.LibraryManagedAttributes, 788968 /* Type */);\n }\n function getJsxElementTypeSymbol(jsxNamespace) {\n return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.ElementType, 788968 /* Type */);\n }\n function getJsxElementPropertiesName(jsxNamespace) {\n return getNameFromJsxElementAttributesContainer(JsxNames.ElementAttributesPropertyNameContainer, jsxNamespace);\n }\n function getJsxElementChildrenPropertyName(jsxNamespace) {\n if (compilerOptions.jsx === 4 /* ReactJSX */ || compilerOptions.jsx === 5 /* ReactJSXDev */) {\n return \"children\";\n }\n return getNameFromJsxElementAttributesContainer(JsxNames.ElementChildrenAttributeNameContainer, jsxNamespace);\n }\n function getUninstantiatedJsxSignaturesOfType(elementType, caller) {\n if (elementType.flags & 4 /* String */) {\n return [anySignature];\n } else if (elementType.flags & 128 /* StringLiteral */) {\n const intrinsicType = getIntrinsicAttributesTypeFromStringLiteralType(elementType, caller);\n if (!intrinsicType) {\n error2(caller, Diagnostics.Property_0_does_not_exist_on_type_1, elementType.value, \"JSX.\" + JsxNames.IntrinsicElements);\n return emptyArray;\n } else {\n const fakeSignature = createSignatureForJSXIntrinsic(caller, intrinsicType);\n return [fakeSignature];\n }\n }\n const apparentElemType = getApparentType(elementType);\n let signatures = getSignaturesOfType(apparentElemType, 1 /* Construct */);\n if (signatures.length === 0) {\n signatures = getSignaturesOfType(apparentElemType, 0 /* Call */);\n }\n if (signatures.length === 0 && apparentElemType.flags & 1048576 /* Union */) {\n signatures = getUnionSignatures(map(apparentElemType.types, (t) => getUninstantiatedJsxSignaturesOfType(t, caller)));\n }\n return signatures;\n }\n function getIntrinsicAttributesTypeFromStringLiteralType(type, location) {\n const intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, location);\n if (!isErrorType(intrinsicElementsType)) {\n const stringLiteralTypeName = type.value;\n const intrinsicProp = getPropertyOfType(intrinsicElementsType, escapeLeadingUnderscores(stringLiteralTypeName));\n if (intrinsicProp) {\n return getTypeOfSymbol(intrinsicProp);\n }\n const indexSignatureType = getIndexTypeOfType(intrinsicElementsType, stringType);\n if (indexSignatureType) {\n return indexSignatureType;\n }\n return void 0;\n }\n return anyType;\n }\n function checkJsxReturnAssignableToAppropriateBound(refKind, elemInstanceType, openingLikeElement) {\n if (refKind === 1 /* Function */) {\n const sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement);\n if (sfcReturnConstraint) {\n checkTypeRelatedTo(elemInstanceType, sfcReturnConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n }\n } else if (refKind === 0 /* Component */) {\n const classConstraint = getJsxElementClassTypeAt(openingLikeElement);\n if (classConstraint) {\n checkTypeRelatedTo(elemInstanceType, classConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n }\n } else {\n const sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement);\n const classConstraint = getJsxElementClassTypeAt(openingLikeElement);\n if (!sfcReturnConstraint || !classConstraint) {\n return;\n }\n const combined = getUnionType([sfcReturnConstraint, classConstraint]);\n checkTypeRelatedTo(elemInstanceType, combined, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n }\n function generateInitialErrorChain() {\n const componentName = getTextOfNode(openingLikeElement.tagName);\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics._0_cannot_be_used_as_a_JSX_component,\n componentName\n );\n }\n }\n function getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node) {\n var _a;\n Debug.assert(isJsxIntrinsicTagName(node.tagName));\n const links = getNodeLinks(node);\n if (!links.resolvedJsxElementAttributesType) {\n const symbol = getIntrinsicTagSymbol(node);\n if (links.jsxFlags & 1 /* IntrinsicNamedElement */) {\n return links.resolvedJsxElementAttributesType = getTypeOfSymbol(symbol) || errorType;\n } else if (links.jsxFlags & 2 /* IntrinsicIndexedElement */) {\n const propName = isJsxNamespacedName(node.tagName) ? getEscapedTextOfJsxNamespacedName(node.tagName) : node.tagName.escapedText;\n return links.resolvedJsxElementAttributesType = ((_a = getApplicableIndexInfoForName(getJsxType(JsxNames.IntrinsicElements, node), propName)) == null ? void 0 : _a.type) || errorType;\n } else {\n return links.resolvedJsxElementAttributesType = errorType;\n }\n }\n return links.resolvedJsxElementAttributesType;\n }\n function getJsxElementClassTypeAt(location) {\n const type = getJsxType(JsxNames.ElementClass, location);\n if (isErrorType(type)) return void 0;\n return type;\n }\n function getJsxElementTypeAt(location) {\n return getJsxType(JsxNames.Element, location);\n }\n function getJsxStatelessElementTypeAt(location) {\n const jsxElementType = getJsxElementTypeAt(location);\n if (jsxElementType) {\n return getUnionType([jsxElementType, nullType]);\n }\n }\n function getJsxElementTypeTypeAt(location) {\n const ns = getJsxNamespaceAt(location);\n if (!ns) return void 0;\n const sym = getJsxElementTypeSymbol(ns);\n if (!sym) return void 0;\n const type = instantiateAliasOrInterfaceWithDefaults(sym, isInJSFile(location));\n if (!type || isErrorType(type)) return void 0;\n return type;\n }\n function instantiateAliasOrInterfaceWithDefaults(managedSym, inJs, ...typeArguments) {\n const declaredManagedType = getDeclaredTypeOfSymbol(managedSym);\n if (managedSym.flags & 524288 /* TypeAlias */) {\n const params = getSymbolLinks(managedSym).typeParameters;\n if (length(params) >= typeArguments.length) {\n const args = fillMissingTypeArguments(typeArguments, params, typeArguments.length, inJs);\n return length(args) === 0 ? declaredManagedType : getTypeAliasInstantiation(managedSym, args);\n }\n }\n if (length(declaredManagedType.typeParameters) >= typeArguments.length) {\n const args = fillMissingTypeArguments(typeArguments, declaredManagedType.typeParameters, typeArguments.length, inJs);\n return createTypeReference(declaredManagedType, args);\n }\n return void 0;\n }\n function getJsxIntrinsicTagNamesAt(location) {\n const intrinsics = getJsxType(JsxNames.IntrinsicElements, location);\n return intrinsics ? getPropertiesOfType(intrinsics) : emptyArray;\n }\n function checkJsxPreconditions(errorNode) {\n if ((compilerOptions.jsx || 0 /* None */) === 0 /* None */) {\n error2(errorNode, Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided);\n }\n if (getJsxElementTypeAt(errorNode) === void 0) {\n if (noImplicitAny) {\n error2(errorNode, Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);\n }\n }\n }\n function checkJsxOpeningLikeElementOrOpeningFragment(node) {\n const isNodeOpeningLikeElement = isJsxOpeningLikeElement(node);\n if (isNodeOpeningLikeElement) {\n checkGrammarJsxElement(node);\n }\n checkJsxPreconditions(node);\n markJsxAliasReferenced(node);\n const sig = getResolvedSignature(node);\n checkDeprecatedSignature(sig, node);\n if (isNodeOpeningLikeElement) {\n const jsxOpeningLikeNode = node;\n const elementTypeConstraint = getJsxElementTypeTypeAt(jsxOpeningLikeNode);\n if (elementTypeConstraint !== void 0) {\n const tagName = jsxOpeningLikeNode.tagName;\n const tagType = isJsxIntrinsicTagName(tagName) ? getStringLiteralType(intrinsicTagNameToString(tagName)) : checkExpression(tagName);\n checkTypeRelatedTo(tagType, elementTypeConstraint, assignableRelation, tagName, Diagnostics.Its_type_0_is_not_a_valid_JSX_element_type, () => {\n const componentName = getTextOfNode(tagName);\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics._0_cannot_be_used_as_a_JSX_component,\n componentName\n );\n });\n } else {\n checkJsxReturnAssignableToAppropriateBound(getJsxReferenceKind(jsxOpeningLikeNode), getReturnTypeOfSignature(sig), jsxOpeningLikeNode);\n }\n }\n }\n function isKnownProperty(targetType, name, isComparingJsxAttributes) {\n if (targetType.flags & 524288 /* Object */) {\n if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) {\n return true;\n }\n }\n if (targetType.flags & 33554432 /* Substitution */) {\n return isKnownProperty(targetType.baseType, name, isComparingJsxAttributes);\n }\n if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {\n for (const t of targetType.types) {\n if (isKnownProperty(t, name, isComparingJsxAttributes)) {\n return true;\n }\n }\n }\n return false;\n }\n function isExcessPropertyCheckTarget(type) {\n return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 33554432 /* Substitution */ && isExcessPropertyCheckTarget(type.baseType) || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));\n }\n function checkJsxExpression(node, checkMode) {\n checkGrammarJsxExpression(node);\n if (node.expression) {\n const type = checkExpression(node.expression, checkMode);\n if (node.dotDotDotToken && type !== anyType && !isArrayType(type)) {\n error2(node, Diagnostics.JSX_spread_child_must_be_an_array_type);\n }\n return type;\n } else {\n return errorType;\n }\n }\n function getDeclarationNodeFlagsFromSymbol(s) {\n return s.valueDeclaration ? getCombinedNodeFlagsCached(s.valueDeclaration) : 0;\n }\n function isPrototypeProperty(symbol) {\n if (symbol.flags & 8192 /* Method */ || getCheckFlags(symbol) & 4 /* SyntheticMethod */) {\n return true;\n }\n if (isInJSFile(symbol.valueDeclaration)) {\n const parent2 = symbol.valueDeclaration.parent;\n return parent2 && isBinaryExpression(parent2) && getAssignmentDeclarationKind(parent2) === 3 /* PrototypeProperty */;\n }\n }\n function checkPropertyAccessibility(node, isSuper, writing, type, prop, reportError = true) {\n const errorNode = !reportError ? void 0 : node.kind === 167 /* QualifiedName */ ? node.right : node.kind === 206 /* ImportType */ ? node : node.kind === 209 /* BindingElement */ && node.propertyName ? node.propertyName : node.name;\n return checkPropertyAccessibilityAtLocation(node, isSuper, writing, type, prop, errorNode);\n }\n function checkPropertyAccessibilityAtLocation(location, isSuper, writing, containingType, prop, errorNode) {\n var _a;\n const flags = getDeclarationModifierFlagsFromSymbol(prop, writing);\n if (isSuper) {\n if (languageVersion < 2 /* ES2015 */) {\n if (symbolHasNonMethodDeclaration(prop)) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);\n }\n return false;\n }\n }\n if (flags & 64 /* Abstract */) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression, symbolToString(prop), typeToString(getDeclaringClass(prop)));\n }\n return false;\n }\n if (!(flags & 256 /* Static */) && ((_a = prop.declarations) == null ? void 0 : _a.some(isClassInstanceProperty))) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super, symbolToString(prop));\n }\n return false;\n }\n }\n if (flags & 64 /* Abstract */ && symbolHasNonMethodDeclaration(prop) && (isThisProperty(location) || isThisInitializedObjectBindingExpression(location) || isObjectBindingPattern(location.parent) && isThisInitializedDeclaration(location.parent.parent))) {\n const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop));\n if (declaringClassDeclaration && isNodeUsedDuringClassInitialization(location)) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, symbolToString(prop), getTextOfIdentifierOrLiteral(declaringClassDeclaration.name));\n }\n return false;\n }\n }\n if (!(flags & 6 /* NonPublicAccessibilityModifier */)) {\n return true;\n }\n if (flags & 2 /* Private */) {\n const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop));\n if (!isNodeWithinClass(location, declaringClassDeclaration)) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(getDeclaringClass(prop)));\n }\n return false;\n }\n return true;\n }\n if (isSuper) {\n return true;\n }\n let enclosingClass = forEachEnclosingClass(location, (enclosingDeclaration) => {\n const enclosingClass2 = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(enclosingDeclaration));\n return isClassDerivedFromDeclaringClasses(enclosingClass2, prop, writing);\n });\n if (!enclosingClass) {\n enclosingClass = getEnclosingClassFromThisParameter(location);\n enclosingClass = enclosingClass && isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing);\n if (flags & 256 /* Static */ || !enclosingClass) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(getDeclaringClass(prop) || containingType));\n }\n return false;\n }\n }\n if (flags & 256 /* Static */) {\n return true;\n }\n if (containingType.flags & 262144 /* TypeParameter */) {\n containingType = containingType.isThisType ? getConstraintOfTypeParameter(containingType) : getBaseConstraintOfType(containingType);\n }\n if (!containingType || !hasBaseType(containingType, enclosingClass)) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2, symbolToString(prop), typeToString(enclosingClass), typeToString(containingType));\n }\n return false;\n }\n return true;\n }\n function getEnclosingClassFromThisParameter(node) {\n const thisParameter = getThisParameterFromNodeContext(node);\n let thisType = (thisParameter == null ? void 0 : thisParameter.type) && getTypeFromTypeNode(thisParameter.type);\n if (thisType) {\n if (thisType.flags & 262144 /* TypeParameter */) {\n thisType = getConstraintOfTypeParameter(thisType);\n }\n } else {\n const thisContainer = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (isFunctionLike(thisContainer)) {\n thisType = getContextualThisParameterType(thisContainer);\n }\n }\n if (thisType && getObjectFlags(thisType) & (3 /* ClassOrInterface */ | 4 /* Reference */)) {\n return getTargetType(thisType);\n }\n return void 0;\n }\n function getThisParameterFromNodeContext(node) {\n const thisContainer = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n return thisContainer && isFunctionLike(thisContainer) ? getThisParameter(thisContainer) : void 0;\n }\n function symbolHasNonMethodDeclaration(symbol) {\n return !!forEachProperty2(symbol, (prop) => !(prop.flags & 8192 /* Method */));\n }\n function checkNonNullExpression(node) {\n return checkNonNullType(checkExpression(node), node);\n }\n function isNullableType(type) {\n return hasTypeFacts(type, 50331648 /* IsUndefinedOrNull */);\n }\n function getNonNullableTypeIfNeeded(type) {\n return isNullableType(type) ? getNonNullableType(type) : type;\n }\n function reportObjectPossiblyNullOrUndefinedError(node, facts) {\n const nodeText2 = isEntityNameExpression(node) ? entityNameToString(node) : void 0;\n if (node.kind === 106 /* NullKeyword */) {\n error2(node, Diagnostics.The_value_0_cannot_be_used_here, \"null\");\n return;\n }\n if (nodeText2 !== void 0 && nodeText2.length < 100) {\n if (isIdentifier(node) && nodeText2 === \"undefined\") {\n error2(node, Diagnostics.The_value_0_cannot_be_used_here, \"undefined\");\n return;\n }\n error2(\n node,\n facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics._0_is_possibly_null_or_undefined : Diagnostics._0_is_possibly_undefined : Diagnostics._0_is_possibly_null,\n nodeText2\n );\n } else {\n error2(\n node,\n facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Object_is_possibly_null_or_undefined : Diagnostics.Object_is_possibly_undefined : Diagnostics.Object_is_possibly_null\n );\n }\n }\n function reportCannotInvokePossiblyNullOrUndefinedError(node, facts) {\n error2(\n node,\n facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_null\n );\n }\n function checkNonNullTypeWithReporter(type, node, reportError) {\n if (strictNullChecks && type.flags & 2 /* Unknown */) {\n if (isEntityNameExpression(node)) {\n const nodeText2 = entityNameToString(node);\n if (nodeText2.length < 100) {\n error2(node, Diagnostics._0_is_of_type_unknown, nodeText2);\n return errorType;\n }\n }\n error2(node, Diagnostics.Object_is_of_type_unknown);\n return errorType;\n }\n const facts = getTypeFacts(type, 50331648 /* IsUndefinedOrNull */);\n if (facts & 50331648 /* IsUndefinedOrNull */) {\n reportError(node, facts);\n const t = getNonNullableType(type);\n return t.flags & (98304 /* Nullable */ | 131072 /* Never */) ? errorType : t;\n }\n return type;\n }\n function checkNonNullType(type, node) {\n return checkNonNullTypeWithReporter(type, node, reportObjectPossiblyNullOrUndefinedError);\n }\n function checkNonNullNonVoidType(type, node) {\n const nonNullType = checkNonNullType(type, node);\n if (nonNullType.flags & 16384 /* Void */) {\n if (isEntityNameExpression(node)) {\n const nodeText2 = entityNameToString(node);\n if (isIdentifier(node) && nodeText2 === \"undefined\") {\n error2(node, Diagnostics.The_value_0_cannot_be_used_here, nodeText2);\n return nonNullType;\n }\n if (nodeText2.length < 100) {\n error2(node, Diagnostics._0_is_possibly_undefined, nodeText2);\n return nonNullType;\n }\n }\n error2(node, Diagnostics.Object_is_possibly_undefined);\n }\n return nonNullType;\n }\n function checkPropertyAccessExpression(node, checkMode, writeOnly) {\n return node.flags & 64 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);\n }\n function checkPropertyAccessChain(node, checkMode) {\n const leftType = checkExpression(node.expression);\n const nonOptionalType = getOptionalExpressionType(leftType, node.expression);\n return propagateOptionalTypeMarker(checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullType(nonOptionalType, node.expression), node.name, checkMode), node, nonOptionalType !== leftType);\n }\n function checkQualifiedName(node, checkMode) {\n const leftType = isPartOfTypeQuery(node) && isThisIdentifier(node.left) ? checkNonNullType(checkThisExpression(node.left), node.left) : checkNonNullExpression(node.left);\n return checkPropertyAccessExpressionOrQualifiedName(node, node.left, leftType, node.right, checkMode);\n }\n function isMethodAccessForCall(node) {\n while (node.parent.kind === 218 /* ParenthesizedExpression */) {\n node = node.parent;\n }\n return isCallOrNewExpression(node.parent) && node.parent.expression === node;\n }\n function lookupSymbolForPrivateIdentifierDeclaration(propName, location) {\n for (let containingClass = getContainingClassExcludingClassDecorators(location); !!containingClass; containingClass = getContainingClass(containingClass)) {\n const { symbol } = containingClass;\n const name = getSymbolNameForPrivateIdentifier(symbol, propName);\n const prop = symbol.members && symbol.members.get(name) || symbol.exports && symbol.exports.get(name);\n if (prop) {\n return prop;\n }\n }\n }\n function checkGrammarPrivateIdentifierExpression(privId) {\n if (!getContainingClass(privId)) {\n return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n }\n if (!isForInStatement(privId.parent)) {\n if (!isExpressionNode(privId)) {\n return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression);\n }\n const isInOperation = isBinaryExpression(privId.parent) && privId.parent.operatorToken.kind === 103 /* InKeyword */;\n if (!getSymbolForPrivateIdentifierExpression(privId) && !isInOperation) {\n return grammarErrorOnNode(privId, Diagnostics.Cannot_find_name_0, idText(privId));\n }\n }\n return false;\n }\n function checkPrivateIdentifierExpression(privId) {\n checkGrammarPrivateIdentifierExpression(privId);\n const symbol = getSymbolForPrivateIdentifierExpression(privId);\n if (symbol) {\n markPropertyAsReferenced(\n symbol,\n /*nodeForCheckWriteOnly*/\n void 0,\n /*isSelfTypeAccess*/\n false\n );\n }\n return anyType;\n }\n function getSymbolForPrivateIdentifierExpression(privId) {\n if (!isExpressionNode(privId)) {\n return void 0;\n }\n const links = getNodeLinks(privId);\n if (links.resolvedSymbol === void 0) {\n links.resolvedSymbol = lookupSymbolForPrivateIdentifierDeclaration(privId.escapedText, privId);\n }\n return links.resolvedSymbol;\n }\n function getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) {\n return getPropertyOfType(leftType, lexicallyScopedIdentifier.escapedName);\n }\n function checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedIdentifier) {\n let propertyOnType;\n const properties = getPropertiesOfType(leftType);\n if (properties) {\n forEach(properties, (symbol) => {\n const decl = symbol.valueDeclaration;\n if (decl && isNamedDeclaration(decl) && isPrivateIdentifier(decl.name) && decl.name.escapedText === right.escapedText) {\n propertyOnType = symbol;\n return true;\n }\n });\n }\n const diagName = diagnosticName(right);\n if (propertyOnType) {\n const typeValueDecl = Debug.checkDefined(propertyOnType.valueDeclaration);\n const typeClass = Debug.checkDefined(getContainingClass(typeValueDecl));\n if (lexicallyScopedIdentifier == null ? void 0 : lexicallyScopedIdentifier.valueDeclaration) {\n const lexicalValueDecl = lexicallyScopedIdentifier.valueDeclaration;\n const lexicalClass = getContainingClass(lexicalValueDecl);\n Debug.assert(!!lexicalClass);\n if (findAncestor(lexicalClass, (n) => typeClass === n)) {\n const diagnostic = error2(\n right,\n Diagnostics.The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling,\n diagName,\n typeToString(leftType)\n );\n addRelatedInfo(\n diagnostic,\n createDiagnosticForNode(\n lexicalValueDecl,\n Diagnostics.The_shadowing_declaration_of_0_is_defined_here,\n diagName\n ),\n createDiagnosticForNode(\n typeValueDecl,\n Diagnostics.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here,\n diagName\n )\n );\n return true;\n }\n }\n error2(\n right,\n Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier,\n diagName,\n diagnosticName(typeClass.name || anon)\n );\n return true;\n }\n return false;\n }\n function isThisPropertyAccessInConstructor(node, prop) {\n return (isConstructorDeclaredProperty(prop) || isThisProperty(node) && isAutoTypedProperty(prop)) && getThisContainer(\n node,\n /*includeArrowFunctions*/\n true,\n /*includeClassComputedPropertyName*/\n false\n ) === getDeclaringConstructor(prop);\n }\n function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {\n const parentSymbol = getNodeLinks(left).resolvedSymbol;\n const assignmentKind = getAssignmentTargetKind(node);\n const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);\n const isAnyLike = isTypeAny(apparentType) || apparentType === silentNeverType;\n let prop;\n if (isPrivateIdentifier(right)) {\n if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n if (assignmentKind !== 0 /* None */) {\n checkExternalEmitHelpers(node, 1048576 /* ClassPrivateFieldSet */);\n }\n if (assignmentKind !== 1 /* Definite */) {\n checkExternalEmitHelpers(node, 524288 /* ClassPrivateFieldGet */);\n }\n }\n const lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(right.escapedText, right);\n if (assignmentKind && lexicallyScopedSymbol && lexicallyScopedSymbol.valueDeclaration && isMethodDeclaration(lexicallyScopedSymbol.valueDeclaration)) {\n grammarErrorOnNode(right, Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, idText(right));\n }\n if (isAnyLike) {\n if (lexicallyScopedSymbol) {\n return isErrorType(apparentType) ? errorType : apparentType;\n }\n if (getContainingClassExcludingClassDecorators(right) === void 0) {\n grammarErrorOnNode(right, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n return anyType;\n }\n }\n prop = lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedSymbol);\n if (prop === void 0) {\n if (checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedSymbol)) {\n return errorType;\n }\n const containingClass = getContainingClassExcludingClassDecorators(right);\n if (containingClass && isPlainJsFile(getSourceFileOfNode(containingClass), compilerOptions.checkJs)) {\n grammarErrorOnNode(right, Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class, idText(right));\n }\n } else {\n const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n if (isSetonlyAccessor && assignmentKind !== 1 /* Definite */) {\n error2(node, Diagnostics.Private_accessor_was_defined_without_a_getter);\n }\n }\n } else {\n if (isAnyLike) {\n if (isIdentifier(left) && parentSymbol) {\n markLinkedReferences(\n node,\n 2 /* Property */,\n /*propSymbol*/\n void 0,\n leftType\n );\n }\n return isErrorType(apparentType) ? errorType : apparentType;\n }\n prop = getPropertyOfType(\n apparentType,\n right.escapedText,\n /*skipObjectFunctionPropertyAugment*/\n isConstEnumObjectType(apparentType),\n /*includeTypeOnlyMembers*/\n node.kind === 167 /* QualifiedName */\n );\n }\n markLinkedReferences(node, 2 /* Property */, prop, leftType);\n let propType;\n if (!prop) {\n const indexInfo = !isPrivateIdentifier(right) && (assignmentKind === 0 /* None */ || !isGenericObjectType(leftType) || isThisTypeParameter(leftType)) ? getApplicableIndexInfoForName(apparentType, right.escapedText) : void 0;\n if (!(indexInfo && indexInfo.type)) {\n const isUncheckedJS = isUncheckedJSSuggestion(\n node,\n leftType.symbol,\n /*excludeClasses*/\n true\n );\n if (!isUncheckedJS && isJSLiteralType(leftType)) {\n return anyType;\n }\n if (leftType.symbol === globalThisSymbol) {\n if (globalThisSymbol.exports.has(right.escapedText) && globalThisSymbol.exports.get(right.escapedText).flags & 418 /* BlockScoped */) {\n error2(right, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(right.escapedText), typeToString(leftType));\n } else if (noImplicitAny) {\n error2(right, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature, typeToString(leftType));\n }\n return anyType;\n }\n if (right.escapedText && !checkAndReportErrorForExtendingInterface(node)) {\n reportNonexistentProperty(right, isThisTypeParameter(leftType) ? apparentType : leftType, isUncheckedJS);\n }\n return errorType;\n }\n if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {\n error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));\n }\n propType = indexInfo.type;\n if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {\n propType = getUnionType([propType, missingType]);\n }\n if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {\n error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));\n }\n if (indexInfo.declaration && isDeprecatedDeclaration2(indexInfo.declaration)) {\n addDeprecatedSuggestion(right, [indexInfo.declaration], right.escapedText);\n }\n } else {\n const targetPropSymbol = resolveAliasWithDeprecationCheck(prop, right);\n if (isDeprecatedSymbol(targetPropSymbol) && isUncalledFunctionReference(node, targetPropSymbol) && targetPropSymbol.declarations) {\n addDeprecatedSuggestion(right, targetPropSymbol.declarations, right.escapedText);\n }\n checkPropertyNotUsedBeforeDeclaration(prop, node, right);\n markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));\n getNodeLinks(node).resolvedSymbol = prop;\n checkPropertyAccessibility(node, left.kind === 108 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);\n if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {\n error2(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));\n return errorType;\n }\n propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);\n }\n return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);\n }\n function isUncheckedJSSuggestion(node, suggestion, excludeClasses) {\n var _a;\n const file = getSourceFileOfNode(node);\n if (file) {\n if (compilerOptions.checkJs === void 0 && file.checkJsDirective === void 0 && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */)) {\n const declarationFile = forEach(suggestion == null ? void 0 : suggestion.declarations, getSourceFileOfNode);\n const suggestionHasNoExtendsOrDecorators = !(suggestion == null ? void 0 : suggestion.valueDeclaration) || !isClassLike(suggestion.valueDeclaration) || ((_a = suggestion.valueDeclaration.heritageClauses) == null ? void 0 : _a.length) || classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n suggestion.valueDeclaration\n );\n return !(file !== declarationFile && !!declarationFile && isGlobalSourceFile(declarationFile)) && !(excludeClasses && suggestion && suggestion.flags & 32 /* Class */ && suggestionHasNoExtendsOrDecorators) && !(!!node && excludeClasses && isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && suggestionHasNoExtendsOrDecorators);\n }\n }\n return false;\n }\n function getFlowTypeOfAccessExpression(node, prop, propType, errorNode, checkMode) {\n const assignmentKind = getAssignmentTargetKind(node);\n if (assignmentKind === 1 /* Definite */) {\n return removeMissingType(propType, !!(prop && prop.flags & 16777216 /* Optional */));\n }\n if (prop && !(prop.flags & (3 /* Variable */ | 4 /* Property */ | 98304 /* Accessor */)) && !(prop.flags & 8192 /* Method */ && propType.flags & 1048576 /* Union */) && !isDuplicatedCommonJSExport(prop.declarations)) {\n return propType;\n }\n if (propType === autoType) {\n return getFlowTypeOfProperty(node, prop);\n }\n propType = getNarrowableTypeForReference(propType, node, checkMode);\n let assumeUninitialized = false;\n if (strictNullChecks && strictPropertyInitialization && isAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */) {\n const declaration = prop && prop.valueDeclaration;\n if (declaration && isPropertyWithoutInitializer(declaration)) {\n if (!isStatic(declaration)) {\n const flowContainer = getControlFlowContainer(node);\n if (flowContainer.kind === 177 /* Constructor */ && flowContainer.parent === declaration.parent && !(declaration.flags & 33554432 /* Ambient */)) {\n assumeUninitialized = true;\n }\n }\n }\n } else if (strictNullChecks && prop && prop.valueDeclaration && isPropertyAccessExpression(prop.valueDeclaration) && getAssignmentDeclarationPropertyAccessKind(prop.valueDeclaration) && getControlFlowContainer(node) === getControlFlowContainer(prop.valueDeclaration)) {\n assumeUninitialized = true;\n }\n const flowType = getFlowTypeOfReference(node, propType, assumeUninitialized ? getOptionalType(propType) : propType);\n if (assumeUninitialized && !containsUndefinedType(propType) && containsUndefinedType(flowType)) {\n error2(errorNode, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(prop));\n return propType;\n }\n return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType;\n }\n function checkPropertyNotUsedBeforeDeclaration(prop, node, right) {\n const { valueDeclaration } = prop;\n if (!valueDeclaration || getSourceFileOfNode(node).isDeclarationFile) {\n return;\n }\n let diagnosticMessage;\n const declarationName = idText(right);\n if (isInPropertyInitializerOrClassStaticBlock(node) && !isOptionalPropertyDeclaration(valueDeclaration) && !(isAccessExpression(node) && isAccessExpression(node.expression)) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right) && !(isMethodDeclaration(valueDeclaration) && getCombinedModifierFlagsCached(valueDeclaration) & 256 /* Static */) && (useDefineForClassFields || !isPropertyDeclaredInAncestorClass(prop))) {\n diagnosticMessage = error2(right, Diagnostics.Property_0_is_used_before_its_initialization, declarationName);\n } else if (valueDeclaration.kind === 264 /* ClassDeclaration */ && node.parent.kind !== 184 /* TypeReference */ && !(valueDeclaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right)) {\n diagnosticMessage = error2(right, Diagnostics.Class_0_used_before_its_declaration, declarationName);\n }\n if (diagnosticMessage) {\n addRelatedInfo(diagnosticMessage, createDiagnosticForNode(valueDeclaration, Diagnostics._0_is_declared_here, declarationName));\n }\n }\n function isInPropertyInitializerOrClassStaticBlock(node, ignoreArrowFunctions) {\n return !!findAncestor(node, (node2) => {\n switch (node2.kind) {\n case 173 /* PropertyDeclaration */:\n case 176 /* ClassStaticBlockDeclaration */:\n return true;\n case 187 /* TypeQuery */:\n case 288 /* JsxClosingElement */:\n return \"quit\";\n case 220 /* ArrowFunction */:\n return ignoreArrowFunctions ? false : \"quit\";\n case 242 /* Block */:\n return isFunctionLikeDeclaration(node2.parent) && node2.parent.kind !== 220 /* ArrowFunction */ ? \"quit\" : false;\n default:\n return false;\n }\n });\n }\n function isPropertyDeclaredInAncestorClass(prop) {\n if (!(prop.parent.flags & 32 /* Class */)) {\n return false;\n }\n let classType = getTypeOfSymbol(prop.parent);\n while (true) {\n classType = classType.symbol && getSuperClass(classType);\n if (!classType) {\n return false;\n }\n const superProperty = getPropertyOfType(classType, prop.escapedName);\n if (superProperty && superProperty.valueDeclaration) {\n return true;\n }\n }\n }\n function getSuperClass(classType) {\n const x = getBaseTypes(classType);\n if (x.length === 0) {\n return void 0;\n }\n return getIntersectionType(x);\n }\n function reportNonexistentProperty(propNode, containingType, isUncheckedJS) {\n const links = getNodeLinks(propNode);\n const cache = links.nonExistentPropCheckCache || (links.nonExistentPropCheckCache = /* @__PURE__ */ new Set());\n const key = `${getTypeId(containingType)}|${isUncheckedJS}`;\n if (cache.has(key)) {\n return;\n }\n cache.add(key);\n let errorInfo;\n let relatedInfo;\n if (!isPrivateIdentifier(propNode) && containingType.flags & 1048576 /* Union */ && !(containingType.flags & 402784252 /* Primitive */)) {\n for (const subtype of containingType.types) {\n if (!getPropertyOfType(subtype, propNode.escapedText) && !getApplicableIndexInfoForName(subtype, propNode.escapedText)) {\n errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(subtype));\n break;\n }\n }\n }\n if (typeHasStaticProperty(propNode.escapedText, containingType)) {\n const propName = declarationNameToString(propNode);\n const typeName = typeToString(containingType);\n errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + \".\" + propName);\n } else {\n const promisedType = getPromisedTypeOfPromise(containingType);\n if (promisedType && getPropertyOfType(promisedType, propNode.escapedText)) {\n errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(containingType));\n relatedInfo = createDiagnosticForNode(propNode, Diagnostics.Did_you_forget_to_use_await);\n } else {\n const missingProperty = declarationNameToString(propNode);\n const container = typeToString(containingType);\n const libSuggestion = getSuggestedLibForNonExistentProperty(missingProperty, containingType);\n if (libSuggestion !== void 0) {\n errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later, missingProperty, container, libSuggestion);\n } else {\n const suggestion = getSuggestedSymbolForNonexistentProperty(propNode, containingType);\n if (suggestion !== void 0) {\n const suggestedName = symbolName(suggestion);\n const message = isUncheckedJS ? Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2 : Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2;\n errorInfo = chainDiagnosticMessages(errorInfo, message, missingProperty, container, suggestedName);\n relatedInfo = suggestion.valueDeclaration && createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestedName);\n } else {\n const diagnostic = containerSeemsToBeEmptyDomElement(containingType) ? Diagnostics.Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom : Diagnostics.Property_0_does_not_exist_on_type_1;\n errorInfo = chainDiagnosticMessages(elaborateNeverIntersection(errorInfo, containingType), diagnostic, missingProperty, container);\n }\n }\n }\n }\n const resultDiagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(propNode), propNode, errorInfo);\n if (relatedInfo) {\n addRelatedInfo(resultDiagnostic, relatedInfo);\n }\n addErrorOrSuggestion(!isUncheckedJS || errorInfo.code !== Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, resultDiagnostic);\n }\n function containerSeemsToBeEmptyDomElement(containingType) {\n return compilerOptions.lib && !compilerOptions.lib.includes(\"lib.dom.d.ts\") && everyContainedType(containingType, (type) => type.symbol && /^(?:EventTarget|Node|(?:HTML[a-zA-Z]*)?Element)$/.test(unescapeLeadingUnderscores(type.symbol.escapedName))) && isEmptyObjectType(containingType);\n }\n function typeHasStaticProperty(propName, containingType) {\n const prop = containingType.symbol && getPropertyOfType(getTypeOfSymbol(containingType.symbol), propName);\n return prop !== void 0 && !!prop.valueDeclaration && isStatic(prop.valueDeclaration);\n }\n function getSuggestedLibForNonExistentName(name) {\n const missingName = diagnosticName(name);\n const allFeatures = getScriptTargetFeatures();\n const typeFeatures = allFeatures.get(missingName);\n return typeFeatures && firstIterator(typeFeatures.keys());\n }\n function getSuggestedLibForNonExistentProperty(missingProperty, containingType) {\n const container = getApparentType(containingType).symbol;\n if (!container) {\n return void 0;\n }\n const containingTypeName = symbolName(container);\n const allFeatures = getScriptTargetFeatures();\n const typeFeatures = allFeatures.get(containingTypeName);\n if (typeFeatures) {\n for (const [libTarget, featuresOfType] of typeFeatures) {\n if (contains(featuresOfType, missingProperty)) {\n return libTarget;\n }\n }\n }\n }\n function getSuggestedSymbolForNonexistentClassMember(name, baseType) {\n return getSpellingSuggestionForName(name, getPropertiesOfType(baseType), 106500 /* ClassMember */);\n }\n function getSuggestedSymbolForNonexistentProperty(name, containingType) {\n let props = getPropertiesOfType(containingType);\n if (typeof name !== \"string\") {\n const parent2 = name.parent;\n if (isPropertyAccessExpression(parent2)) {\n props = filter(props, (prop) => isValidPropertyAccessForCompletions(parent2, containingType, prop));\n }\n name = idText(name);\n }\n return getSpellingSuggestionForName(name, props, 111551 /* Value */);\n }\n function getSuggestedSymbolForNonexistentJSXAttribute(name, containingType) {\n const strName = isString(name) ? name : idText(name);\n const properties = getPropertiesOfType(containingType);\n const jsxSpecific = strName === \"for\" ? find(properties, (x) => symbolName(x) === \"htmlFor\") : strName === \"class\" ? find(properties, (x) => symbolName(x) === \"className\") : void 0;\n return jsxSpecific ?? getSpellingSuggestionForName(strName, properties, 111551 /* Value */);\n }\n function getSuggestionForNonexistentProperty(name, containingType) {\n const suggestion = getSuggestedSymbolForNonexistentProperty(name, containingType);\n return suggestion && symbolName(suggestion);\n }\n function getSuggestionForSymbolNameLookup(symbols, name, meaning) {\n const symbol = getSymbol2(symbols, name, meaning);\n if (symbol) return symbol;\n let candidates;\n if (symbols === globals) {\n const primitives = mapDefined(\n [\"string\", \"number\", \"boolean\", \"object\", \"bigint\", \"symbol\"],\n (s) => symbols.has(s.charAt(0).toUpperCase() + s.slice(1)) ? createSymbol(524288 /* TypeAlias */, s) : void 0\n );\n candidates = primitives.concat(arrayFrom(symbols.values()));\n } else {\n candidates = arrayFrom(symbols.values());\n }\n return getSpellingSuggestionForName(unescapeLeadingUnderscores(name), candidates, meaning);\n }\n function getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning) {\n Debug.assert(outerName !== void 0, \"outername should always be defined\");\n const result = resolveNameForSymbolSuggestion(\n location,\n outerName,\n meaning,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false,\n /*excludeGlobals*/\n false\n );\n return result;\n }\n function getSuggestedSymbolForNonexistentModule(name, targetModule) {\n return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule), 2623475 /* ModuleMember */);\n }\n function getSuggestionForNonexistentIndexSignature(objectType, expr, keyedType) {\n function hasProp(name) {\n const prop = getPropertyOfObjectType(objectType, name);\n if (prop) {\n const s = getSingleCallSignature(getTypeOfSymbol(prop));\n return !!s && getMinArgumentCount(s) >= 1 && isTypeAssignableTo(keyedType, getTypeAtPosition(s, 0));\n }\n return false;\n }\n const suggestedMethod = isAssignmentTarget(expr) ? \"set\" : \"get\";\n if (!hasProp(suggestedMethod)) {\n return void 0;\n }\n let suggestion = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n if (suggestion === void 0) {\n suggestion = suggestedMethod;\n } else {\n suggestion += \".\" + suggestedMethod;\n }\n return suggestion;\n }\n function getSuggestedTypeForNonexistentStringLiteralType(source, target) {\n const candidates = target.types.filter((type) => !!(type.flags & 128 /* StringLiteral */));\n return getSpellingSuggestion(source.value, candidates, (type) => type.value);\n }\n function getSpellingSuggestionForName(name, symbols, meaning) {\n return getSpellingSuggestion(name, symbols, getCandidateName);\n function getCandidateName(candidate) {\n const candidateName = symbolName(candidate);\n if (startsWith(candidateName, '\"')) {\n return void 0;\n }\n if (candidate.flags & meaning) {\n return candidateName;\n }\n if (candidate.flags & 2097152 /* Alias */) {\n const alias = tryResolveAlias(candidate);\n if (alias && alias.flags & meaning) {\n return candidateName;\n }\n }\n return void 0;\n }\n }\n function markPropertyAsReferenced(prop, nodeForCheckWriteOnly, isSelfTypeAccess2) {\n const valueDeclaration = prop && prop.flags & 106500 /* ClassMember */ && prop.valueDeclaration;\n if (!valueDeclaration) {\n return;\n }\n const hasPrivateModifier = hasEffectiveModifier(valueDeclaration, 2 /* Private */);\n const hasPrivateIdentifier = prop.valueDeclaration && isNamedDeclaration(prop.valueDeclaration) && isPrivateIdentifier(prop.valueDeclaration.name);\n if (!hasPrivateModifier && !hasPrivateIdentifier) {\n return;\n }\n if (nodeForCheckWriteOnly && isWriteOnlyAccess(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {\n return;\n }\n if (isSelfTypeAccess2) {\n const containingMethod = findAncestor(nodeForCheckWriteOnly, isFunctionLikeDeclaration);\n if (containingMethod && containingMethod.symbol === prop) {\n return;\n }\n }\n (getCheckFlags(prop) & 1 /* Instantiated */ ? getSymbolLinks(prop).target : prop).isReferenced = -1 /* All */;\n }\n function isSelfTypeAccess(name, parent2) {\n return name.kind === 110 /* ThisKeyword */ || !!parent2 && isEntityNameExpression(name) && parent2 === getResolvedSymbol(getFirstIdentifier(name));\n }\n function isValidPropertyAccess(node, propertyName) {\n switch (node.kind) {\n case 212 /* PropertyAccessExpression */:\n return isValidPropertyAccessWithType(node, node.expression.kind === 108 /* SuperKeyword */, propertyName, getWidenedType(checkExpression(node.expression)));\n case 167 /* QualifiedName */:\n return isValidPropertyAccessWithType(\n node,\n /*isSuper*/\n false,\n propertyName,\n getWidenedType(checkExpression(node.left))\n );\n case 206 /* ImportType */:\n return isValidPropertyAccessWithType(\n node,\n /*isSuper*/\n false,\n propertyName,\n getTypeFromTypeNode(node)\n );\n }\n }\n function isValidPropertyAccessForCompletions(node, type, property) {\n return isPropertyAccessible(\n node,\n node.kind === 212 /* PropertyAccessExpression */ && node.expression.kind === 108 /* SuperKeyword */,\n /*isWrite*/\n false,\n type,\n property\n );\n }\n function isValidPropertyAccessWithType(node, isSuper, propertyName, type) {\n if (isTypeAny(type)) {\n return true;\n }\n const prop = getPropertyOfType(type, propertyName);\n return !!prop && isPropertyAccessible(\n node,\n isSuper,\n /*isWrite*/\n false,\n type,\n prop\n );\n }\n function isPropertyAccessible(node, isSuper, isWrite, containingType, property) {\n if (isTypeAny(containingType)) {\n return true;\n }\n if (property.valueDeclaration && isPrivateIdentifierClassElementDeclaration(property.valueDeclaration)) {\n const declClass = getContainingClass(property.valueDeclaration);\n return !isOptionalChain(node) && !!findAncestor(node, (parent2) => parent2 === declClass);\n }\n return checkPropertyAccessibilityAtLocation(node, isSuper, isWrite, containingType, property);\n }\n function getForInVariableSymbol(node) {\n const initializer = node.initializer;\n if (initializer.kind === 262 /* VariableDeclarationList */) {\n const variable = initializer.declarations[0];\n if (variable && !isBindingPattern(variable.name)) {\n return getSymbolOfDeclaration(variable);\n }\n } else if (initializer.kind === 80 /* Identifier */) {\n return getResolvedSymbol(initializer);\n }\n return void 0;\n }\n function hasNumericPropertyNames(type) {\n return getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, numberType);\n }\n function isForInVariableForNumericPropertyNames(expr) {\n const e = skipParentheses(expr);\n if (e.kind === 80 /* Identifier */) {\n const symbol = getResolvedSymbol(e);\n if (symbol.flags & 3 /* Variable */) {\n let child = expr;\n let node = expr.parent;\n while (node) {\n if (node.kind === 250 /* ForInStatement */ && child === node.statement && getForInVariableSymbol(node) === symbol && hasNumericPropertyNames(getTypeOfExpression(node.expression))) {\n return true;\n }\n child = node;\n node = node.parent;\n }\n }\n }\n return false;\n }\n function checkIndexedAccess(node, checkMode) {\n return node.flags & 64 /* OptionalChain */ ? checkElementAccessChain(node, checkMode) : checkElementAccessExpression(node, checkNonNullExpression(node.expression), checkMode);\n }\n function checkElementAccessChain(node, checkMode) {\n const exprType = checkExpression(node.expression);\n const nonOptionalType = getOptionalExpressionType(exprType, node.expression);\n return propagateOptionalTypeMarker(checkElementAccessExpression(node, checkNonNullType(nonOptionalType, node.expression), checkMode), node, nonOptionalType !== exprType);\n }\n function checkElementAccessExpression(node, exprType, checkMode) {\n const objectType = getAssignmentTargetKind(node) !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(exprType) : exprType;\n const indexExpression = node.argumentExpression;\n const indexType = checkExpression(indexExpression);\n if (isErrorType(objectType) || objectType === silentNeverType) {\n return objectType;\n }\n if (isConstEnumObjectType(objectType) && !isStringLiteralLike(indexExpression)) {\n error2(indexExpression, Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal);\n return errorType;\n }\n const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;\n const assignmentTargetKind = getAssignmentTargetKind(node);\n let accessFlags;\n if (assignmentTargetKind === 0 /* None */) {\n accessFlags = 32 /* ExpressionPosition */;\n } else {\n accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);\n if (assignmentTargetKind === 2 /* Compound */) {\n accessFlags |= 32 /* ExpressionPosition */;\n }\n }\n const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;\n return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);\n }\n function callLikeExpressionMayHaveTypeArguments(node) {\n return isCallOrNewExpression(node) || isTaggedTemplateExpression(node) || isJsxOpeningLikeElement(node);\n }\n function resolveUntypedCall(node) {\n if (callLikeExpressionMayHaveTypeArguments(node)) {\n forEach(node.typeArguments, checkSourceElement);\n }\n if (node.kind === 216 /* TaggedTemplateExpression */) {\n checkExpression(node.template);\n } else if (isJsxOpeningLikeElement(node)) {\n checkExpression(node.attributes);\n } else if (isBinaryExpression(node)) {\n checkExpression(node.left);\n } else if (isCallOrNewExpression(node)) {\n forEach(node.arguments, (argument) => {\n checkExpression(argument);\n });\n }\n return anySignature;\n }\n function resolveErrorCall(node) {\n resolveUntypedCall(node);\n return unknownSignature;\n }\n function reorderCandidates(signatures, result, callChainFlags) {\n let lastParent;\n let lastSymbol;\n let cutoffIndex = 0;\n let index;\n let specializedIndex = -1;\n let spliceIndex;\n Debug.assert(!result.length);\n for (const signature of signatures) {\n const symbol = signature.declaration && getSymbolOfDeclaration(signature.declaration);\n const parent2 = signature.declaration && signature.declaration.parent;\n if (!lastSymbol || symbol === lastSymbol) {\n if (lastParent && parent2 === lastParent) {\n index = index + 1;\n } else {\n lastParent = parent2;\n index = cutoffIndex;\n }\n } else {\n index = cutoffIndex = result.length;\n lastParent = parent2;\n }\n lastSymbol = symbol;\n if (signatureHasLiteralTypes(signature)) {\n specializedIndex++;\n spliceIndex = specializedIndex;\n cutoffIndex++;\n } else {\n spliceIndex = index;\n }\n result.splice(spliceIndex, 0, callChainFlags ? getOptionalCallSignature(signature, callChainFlags) : signature);\n }\n }\n function isSpreadArgument(arg) {\n return !!arg && (arg.kind === 231 /* SpreadElement */ || arg.kind === 238 /* SyntheticExpression */ && arg.isSpread);\n }\n function getSpreadArgumentIndex(args) {\n return findIndex(args, isSpreadArgument);\n }\n function acceptsVoid(t) {\n return !!(t.flags & 16384 /* Void */);\n }\n function acceptsVoidUndefinedUnknownOrAny(t) {\n return !!(t.flags & (16384 /* Void */ | 32768 /* Undefined */ | 2 /* Unknown */ | 1 /* Any */));\n }\n function hasCorrectArity(node, args, signature, signatureHelpTrailingComma = false) {\n if (isJsxOpeningFragment(node)) return true;\n let argCount;\n let callIsIncomplete = false;\n let effectiveParameterCount = getParameterCount(signature);\n let effectiveMinimumArguments = getMinArgumentCount(signature);\n if (node.kind === 216 /* TaggedTemplateExpression */) {\n argCount = args.length;\n if (node.template.kind === 229 /* TemplateExpression */) {\n const lastSpan = last(node.template.templateSpans);\n callIsIncomplete = nodeIsMissing(lastSpan.literal) || !!lastSpan.literal.isUnterminated;\n } else {\n const templateLiteral = node.template;\n Debug.assert(templateLiteral.kind === 15 /* NoSubstitutionTemplateLiteral */);\n callIsIncomplete = !!templateLiteral.isUnterminated;\n }\n } else if (node.kind === 171 /* Decorator */) {\n argCount = getDecoratorArgumentCount(node, signature);\n } else if (node.kind === 227 /* BinaryExpression */) {\n argCount = 1;\n } else if (isJsxOpeningLikeElement(node)) {\n callIsIncomplete = node.attributes.end === node.end;\n if (callIsIncomplete) {\n return true;\n }\n argCount = effectiveMinimumArguments === 0 ? args.length : 1;\n effectiveParameterCount = args.length === 0 ? effectiveParameterCount : 1;\n effectiveMinimumArguments = Math.min(effectiveMinimumArguments, 1);\n } else if (!node.arguments) {\n Debug.assert(node.kind === 215 /* NewExpression */);\n return getMinArgumentCount(signature) === 0;\n } else {\n argCount = signatureHelpTrailingComma ? args.length + 1 : args.length;\n callIsIncomplete = node.arguments.end === node.end;\n const spreadArgIndex = getSpreadArgumentIndex(args);\n if (spreadArgIndex >= 0) {\n return spreadArgIndex >= getMinArgumentCount(signature) && (hasEffectiveRestParameter(signature) || spreadArgIndex < getParameterCount(signature));\n }\n }\n if (!hasEffectiveRestParameter(signature) && argCount > effectiveParameterCount) {\n return false;\n }\n if (callIsIncomplete || argCount >= effectiveMinimumArguments) {\n return true;\n }\n for (let i = argCount; i < effectiveMinimumArguments; i++) {\n const type = getTypeAtPosition(signature, i);\n if (filterType(type, isInJSFile(node) && !strictNullChecks ? acceptsVoidUndefinedUnknownOrAny : acceptsVoid).flags & 131072 /* Never */) {\n return false;\n }\n }\n return true;\n }\n function hasCorrectTypeArgumentArity(signature, typeArguments) {\n const numTypeParameters = length(signature.typeParameters);\n const minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters);\n return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters;\n }\n function isInstantiatedGenericParameter(signature, pos) {\n let type;\n return !!(signature.target && (type = tryGetTypeAtPosition(signature.target, pos)) && isGenericType(type));\n }\n function getSingleCallSignature(type) {\n return getSingleSignature(\n type,\n 0 /* Call */,\n /*allowMembers*/\n false\n );\n }\n function getSingleCallOrConstructSignature(type) {\n return getSingleSignature(\n type,\n 0 /* Call */,\n /*allowMembers*/\n false\n ) || getSingleSignature(\n type,\n 1 /* Construct */,\n /*allowMembers*/\n false\n );\n }\n function getSingleSignature(type, kind, allowMembers) {\n if (type.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type);\n if (allowMembers || resolved.properties.length === 0 && resolved.indexInfos.length === 0) {\n if (kind === 0 /* Call */ && resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0) {\n return resolved.callSignatures[0];\n }\n if (kind === 1 /* Construct */ && resolved.constructSignatures.length === 1 && resolved.callSignatures.length === 0) {\n return resolved.constructSignatures[0];\n }\n }\n }\n return void 0;\n }\n function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) {\n const context = createInferenceContext(getTypeParametersForMapper(signature), signature, 0 /* None */, compareTypes);\n const restType = getEffectiveRestType(contextualSignature);\n const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : inferenceContext.mapper);\n const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature;\n applyToParameterTypes(sourceSignature, signature, (source, target) => {\n inferTypes(context.inferences, source, target);\n });\n if (!inferenceContext) {\n applyToReturnTypes(contextualSignature, signature, (source, target) => {\n inferTypes(context.inferences, source, target, 128 /* ReturnType */);\n });\n }\n return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration));\n }\n function inferJsxTypeArguments(node, signature, checkMode, context) {\n const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);\n const checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode);\n inferTypes(context.inferences, checkAttrType, paramType);\n return getInferredTypes(context);\n }\n function getThisArgumentType(thisArgumentNode) {\n if (!thisArgumentNode) {\n return voidType;\n }\n const thisArgumentType = checkExpression(thisArgumentNode);\n return isRightSideOfInstanceofExpression(thisArgumentNode) ? thisArgumentType : isOptionalChainRoot(thisArgumentNode.parent) ? getNonNullableType(thisArgumentType) : isOptionalChain(thisArgumentNode.parent) ? removeOptionalTypeMarker(thisArgumentType) : thisArgumentType;\n }\n function inferTypeArguments(node, signature, args, checkMode, context) {\n if (isJsxOpeningLikeElement(node)) {\n return inferJsxTypeArguments(node, signature, checkMode, context);\n }\n if (node.kind !== 171 /* Decorator */ && node.kind !== 227 /* BinaryExpression */) {\n const skipBindingPatterns = every(signature.typeParameters, (p) => !!getDefaultFromTypeParameter(p));\n const contextualType = getContextualType2(node, skipBindingPatterns ? 8 /* SkipBindingPatterns */ : 0 /* None */);\n if (contextualType) {\n const inferenceTargetType = getReturnTypeOfSignature(signature);\n if (couldContainTypeVariables(inferenceTargetType)) {\n const outerContext = getInferenceContext(node);\n const isFromBindingPattern = !skipBindingPatterns && getContextualType2(node, 8 /* SkipBindingPatterns */) !== contextualType;\n if (!isFromBindingPattern) {\n const outerMapper = getMapperFromContext(cloneInferenceContext(outerContext, 1 /* NoDefault */));\n const instantiatedType = instantiateType(contextualType, outerMapper);\n const contextualSignature = getSingleCallSignature(instantiatedType);\n const inferenceSourceType = contextualSignature && contextualSignature.typeParameters ? getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType;\n inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);\n }\n const returnContext = createInferenceContext(signature.typeParameters, signature, context.flags);\n const returnSourceType = instantiateType(contextualType, outerContext && createOuterReturnMapper(outerContext));\n inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType);\n context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : void 0;\n }\n }\n }\n const restType = getNonArrayRestType(signature);\n const argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length;\n if (restType && restType.flags & 262144 /* TypeParameter */) {\n const info = find(context.inferences, (info2) => info2.typeParameter === restType);\n if (info) {\n info.impliedArity = findIndex(args, isSpreadArgument, argCount) < 0 ? args.length - argCount : void 0;\n }\n }\n const thisType = getThisTypeOfSignature(signature);\n if (thisType && couldContainTypeVariables(thisType)) {\n const thisArgumentNode = getThisArgumentOfCall(node);\n inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType);\n }\n for (let i = 0; i < argCount; i++) {\n const arg = args[i];\n if (arg.kind !== 233 /* OmittedExpression */) {\n const paramType = getTypeAtPosition(signature, i);\n if (couldContainTypeVariables(paramType)) {\n const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode);\n inferTypes(context.inferences, argType, paramType);\n }\n }\n }\n if (restType && couldContainTypeVariables(restType)) {\n const spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode);\n inferTypes(context.inferences, spreadType, restType);\n }\n return getInferredTypes(context);\n }\n function getMutableArrayOrTupleType(type) {\n return type.flags & 1048576 /* Union */ ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 /* Any */ || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(\n getElementTypes(type),\n type.target.elementFlags,\n /*readonly*/\n false,\n type.target.labeledElementDeclarations\n ) : createTupleType([type], [8 /* Variadic */]);\n }\n function getSpreadArgumentType(args, index, argCount, restType, context, checkMode) {\n const inConstContext = isConstTypeVariable(restType);\n if (index >= argCount - 1) {\n const arg = args[argCount - 1];\n if (isSpreadArgument(arg)) {\n const spreadType = arg.kind === 238 /* SyntheticExpression */ ? arg.type : checkExpressionWithContextualType(arg.expression, restType, context, checkMode);\n if (isArrayLikeType(spreadType)) {\n return getMutableArrayOrTupleType(spreadType);\n }\n return createArrayType(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 231 /* SpreadElement */ ? arg.expression : arg), inConstContext);\n }\n }\n const types = [];\n const flags = [];\n const names = [];\n for (let i = index; i < argCount; i++) {\n const arg = args[i];\n if (isSpreadArgument(arg)) {\n const spreadType = arg.kind === 238 /* SyntheticExpression */ ? arg.type : checkExpression(arg.expression);\n if (isArrayLikeType(spreadType)) {\n types.push(spreadType);\n flags.push(8 /* Variadic */);\n } else {\n types.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 231 /* SpreadElement */ ? arg.expression : arg));\n flags.push(4 /* Rest */);\n }\n } else {\n const contextualType = isTupleType(restType) ? getContextualTypeForElementExpression(restType, i - index, argCount - index) || unknownType : getIndexedAccessType(restType, getNumberLiteralType(i - index), 256 /* Contextual */);\n const argType = checkExpressionWithContextualType(arg, contextualType, context, checkMode);\n const hasPrimitiveContextualType = inConstContext || maybeTypeOfKind(contextualType, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */);\n types.push(hasPrimitiveContextualType ? getRegularTypeOfLiteralType(argType) : getWidenedLiteralType(argType));\n flags.push(1 /* Required */);\n }\n if (arg.kind === 238 /* SyntheticExpression */ && arg.tupleNameSource) {\n names.push(arg.tupleNameSource);\n } else {\n names.push(void 0);\n }\n }\n return createTupleType(types, flags, inConstContext && !someType(restType, isMutableArrayLikeType), names);\n }\n function checkTypeArguments(signature, typeArgumentNodes, reportErrors2, headMessage) {\n const isJavascript = isInJSFile(signature.declaration);\n const typeParameters = signature.typeParameters;\n const typeArgumentTypes = fillMissingTypeArguments(map(typeArgumentNodes, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isJavascript);\n let mapper;\n for (let i = 0; i < typeArgumentNodes.length; i++) {\n Debug.assert(typeParameters[i] !== void 0, \"Should not call checkTypeArguments with too many type arguments\");\n const constraint = getConstraintOfTypeParameter(typeParameters[i]);\n if (constraint) {\n const errorInfo = reportErrors2 && headMessage ? () => chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Type_0_does_not_satisfy_the_constraint_1\n ) : void 0;\n const typeArgumentHeadMessage = headMessage || Diagnostics.Type_0_does_not_satisfy_the_constraint_1;\n if (!mapper) {\n mapper = createTypeMapper(typeParameters, typeArgumentTypes);\n }\n const typeArgument = typeArgumentTypes[i];\n if (!checkTypeAssignableTo(\n typeArgument,\n getTypeWithThisArgument(instantiateType(constraint, mapper), typeArgument),\n reportErrors2 ? typeArgumentNodes[i] : void 0,\n typeArgumentHeadMessage,\n errorInfo\n )) {\n return void 0;\n }\n }\n }\n return typeArgumentTypes;\n }\n function getJsxReferenceKind(node) {\n if (isJsxIntrinsicTagName(node.tagName)) {\n return 2 /* Mixed */;\n }\n const tagType = getApparentType(checkExpression(node.tagName));\n if (length(getSignaturesOfType(tagType, 1 /* Construct */))) {\n return 0 /* Component */;\n }\n if (length(getSignaturesOfType(tagType, 0 /* Call */))) {\n return 1 /* Function */;\n }\n return 2 /* Mixed */;\n }\n function checkApplicableSignatureForJsxCallLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer) {\n const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);\n const attributesType = isJsxOpeningFragment(node) ? createJsxAttributesTypeFromAttributesProperty(node) : checkExpressionWithContextualType(\n node.attributes,\n paramType,\n /*inferenceContext*/\n void 0,\n checkMode\n );\n const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;\n return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(\n checkAttributesType,\n paramType,\n relation,\n reportErrors2 ? isJsxOpeningFragment(node) ? node : node.tagName : void 0,\n isJsxOpeningFragment(node) ? void 0 : node.attributes,\n /*headMessage*/\n void 0,\n containingMessageChain,\n errorOutputContainer\n );\n function checkTagNameDoesNotExpectTooManyArguments() {\n var _a;\n if (getJsxNamespaceContainerForImplicitImport(node)) {\n return true;\n }\n const tagType = (isJsxOpeningElement(node) || isJsxSelfClosingElement(node)) && !(isJsxIntrinsicTagName(node.tagName) || isJsxNamespacedName(node.tagName)) ? checkExpression(node.tagName) : void 0;\n if (!tagType) {\n return true;\n }\n const tagCallSignatures = getSignaturesOfType(tagType, 0 /* Call */);\n if (!length(tagCallSignatures)) {\n return true;\n }\n const factory2 = getJsxFactoryEntity(node);\n if (!factory2) {\n return true;\n }\n const factorySymbol = resolveEntityName(\n factory2,\n 111551 /* Value */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n false,\n node\n );\n if (!factorySymbol) {\n return true;\n }\n const factoryType = getTypeOfSymbol(factorySymbol);\n const callSignatures = getSignaturesOfType(factoryType, 0 /* Call */);\n if (!length(callSignatures)) {\n return true;\n }\n let hasFirstParamSignatures = false;\n let maxParamCount = 0;\n for (const sig of callSignatures) {\n const firstparam = getTypeAtPosition(sig, 0);\n const signaturesOfParam = getSignaturesOfType(firstparam, 0 /* Call */);\n if (!length(signaturesOfParam)) continue;\n for (const paramSig of signaturesOfParam) {\n hasFirstParamSignatures = true;\n if (hasEffectiveRestParameter(paramSig)) {\n return true;\n }\n const paramCount = getParameterCount(paramSig);\n if (paramCount > maxParamCount) {\n maxParamCount = paramCount;\n }\n }\n }\n if (!hasFirstParamSignatures) {\n return true;\n }\n let absoluteMinArgCount = Infinity;\n for (const tagSig of tagCallSignatures) {\n const tagRequiredArgCount = getMinArgumentCount(tagSig);\n if (tagRequiredArgCount < absoluteMinArgCount) {\n absoluteMinArgCount = tagRequiredArgCount;\n }\n }\n if (absoluteMinArgCount <= maxParamCount) {\n return true;\n }\n if (reportErrors2) {\n const tagName = node.tagName;\n const diag2 = createDiagnosticForNode(tagName, Diagnostics.Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3, entityNameToString(tagName), absoluteMinArgCount, entityNameToString(factory2), maxParamCount);\n const tagNameDeclaration = (_a = getSymbolAtLocation(tagName)) == null ? void 0 : _a.valueDeclaration;\n if (tagNameDeclaration) {\n addRelatedInfo(diag2, createDiagnosticForNode(tagNameDeclaration, Diagnostics._0_is_declared_here, entityNameToString(tagName)));\n }\n if (errorOutputContainer && errorOutputContainer.skipLogging) {\n (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n }\n if (!errorOutputContainer.skipLogging) {\n diagnostics.add(diag2);\n }\n }\n return false;\n }\n }\n function getEffectiveCheckNode(argument) {\n const flags = isInJSFile(argument) ? 1 /* Parentheses */ | 32 /* Satisfies */ | -2147483648 /* ExcludeJSDocTypeAssertion */ : 1 /* Parentheses */ | 32 /* Satisfies */;\n return skipOuterExpressions(argument, flags);\n }\n function getSignatureApplicabilityError(node, args, signature, relation, checkMode, reportErrors2, containingMessageChain) {\n const errorOutputContainer = { errors: void 0, skipLogging: true };\n if (isJsxCallLike(node)) {\n if (!checkApplicableSignatureForJsxCallLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer)) {\n Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"jsx should have errors when reporting errors\");\n return errorOutputContainer.errors || emptyArray;\n }\n return void 0;\n }\n const thisType = getThisTypeOfSignature(signature);\n if (thisType && thisType !== voidType && !(isNewExpression(node) || isCallExpression(node) && isSuperProperty(node.expression))) {\n const thisArgumentNode = getThisArgumentOfCall(node);\n const thisArgumentType = getThisArgumentType(thisArgumentNode);\n const errorNode = reportErrors2 ? thisArgumentNode || node : void 0;\n const headMessage2 = Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;\n if (!checkTypeRelatedTo(thisArgumentType, thisType, relation, errorNode, headMessage2, containingMessageChain, errorOutputContainer)) {\n Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"this parameter should have errors when reporting errors\");\n return errorOutputContainer.errors || emptyArray;\n }\n }\n const headMessage = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1;\n const restType = getNonArrayRestType(signature);\n const argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length;\n for (let i = 0; i < argCount; i++) {\n const arg = args[i];\n if (arg.kind !== 233 /* OmittedExpression */) {\n const paramType = getTypeAtPosition(signature, i);\n const argType = checkExpressionWithContextualType(\n arg,\n paramType,\n /*inferenceContext*/\n void 0,\n checkMode\n );\n const checkArgType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(argType) : argType;\n const effectiveCheckArgumentNode = getEffectiveCheckNode(arg);\n if (!checkTypeRelatedToAndOptionallyElaborate(checkArgType, paramType, relation, reportErrors2 ? effectiveCheckArgumentNode : void 0, effectiveCheckArgumentNode, headMessage, containingMessageChain, errorOutputContainer)) {\n Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"parameter should have errors when reporting errors\");\n maybeAddMissingAwaitInfo(arg, checkArgType, paramType);\n return errorOutputContainer.errors || emptyArray;\n }\n }\n }\n if (restType) {\n const spreadType = getSpreadArgumentType(\n args,\n argCount,\n args.length,\n restType,\n /*context*/\n void 0,\n checkMode\n );\n const restArgCount = args.length - argCount;\n const errorNode = !reportErrors2 ? void 0 : restArgCount === 0 ? node : restArgCount === 1 ? getEffectiveCheckNode(args[argCount]) : setTextRangePosEnd(createSyntheticExpression(node, spreadType), args[argCount].pos, args[args.length - 1].end);\n if (!checkTypeRelatedTo(\n spreadType,\n restType,\n relation,\n errorNode,\n headMessage,\n /*containingMessageChain*/\n void 0,\n errorOutputContainer\n )) {\n Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"rest parameter should have errors when reporting errors\");\n maybeAddMissingAwaitInfo(errorNode, spreadType, restType);\n return errorOutputContainer.errors || emptyArray;\n }\n }\n return void 0;\n function maybeAddMissingAwaitInfo(errorNode, source, target) {\n if (errorNode && reportErrors2 && errorOutputContainer.errors && errorOutputContainer.errors.length) {\n if (getAwaitedTypeOfPromise(target)) {\n return;\n }\n const awaitedTypeOfSource = getAwaitedTypeOfPromise(source);\n if (awaitedTypeOfSource && isTypeRelatedTo(awaitedTypeOfSource, target, relation)) {\n addRelatedInfo(errorOutputContainer.errors[0], createDiagnosticForNode(errorNode, Diagnostics.Did_you_forget_to_use_await));\n }\n }\n }\n }\n function getThisArgumentOfCall(node) {\n if (node.kind === 227 /* BinaryExpression */) {\n return node.right;\n }\n const expression = node.kind === 214 /* CallExpression */ ? node.expression : node.kind === 216 /* TaggedTemplateExpression */ ? node.tag : node.kind === 171 /* Decorator */ && !legacyDecorators ? node.expression : void 0;\n if (expression) {\n const callee = skipOuterExpressions(expression);\n if (isAccessExpression(callee)) {\n return callee.expression;\n }\n }\n }\n function createSyntheticExpression(parent2, type, isSpread, tupleNameSource) {\n const result = parseNodeFactory.createSyntheticExpression(type, isSpread, tupleNameSource);\n setTextRange(result, parent2);\n setParent(result, parent2);\n return result;\n }\n function getEffectiveCallArguments(node) {\n if (isJsxOpeningFragment(node)) {\n return [createSyntheticExpression(node, emptyFreshJsxObjectType)];\n }\n if (node.kind === 216 /* TaggedTemplateExpression */) {\n const template = node.template;\n const args2 = [createSyntheticExpression(template, getGlobalTemplateStringsArrayType())];\n if (template.kind === 229 /* TemplateExpression */) {\n forEach(template.templateSpans, (span) => {\n args2.push(span.expression);\n });\n }\n return args2;\n }\n if (node.kind === 171 /* Decorator */) {\n return getEffectiveDecoratorArguments(node);\n }\n if (node.kind === 227 /* BinaryExpression */) {\n return [node.left];\n }\n if (isJsxOpeningLikeElement(node)) {\n return node.attributes.properties.length > 0 || isJsxOpeningElement(node) && node.parent.children.length > 0 ? [node.attributes] : emptyArray;\n }\n const args = node.arguments || emptyArray;\n const spreadIndex = getSpreadArgumentIndex(args);\n if (spreadIndex >= 0) {\n const effectiveArgs = args.slice(0, spreadIndex);\n for (let i = spreadIndex; i < args.length; i++) {\n const arg = args[i];\n const spreadType = arg.kind === 231 /* SpreadElement */ && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression));\n if (spreadType && isTupleType(spreadType)) {\n forEach(getElementTypes(spreadType), (t, i2) => {\n var _a;\n const flags = spreadType.target.elementFlags[i2];\n const syntheticArg = createSyntheticExpression(arg, flags & 4 /* Rest */ ? createArrayType(t) : t, !!(flags & 12 /* Variable */), (_a = spreadType.target.labeledElementDeclarations) == null ? void 0 : _a[i2]);\n effectiveArgs.push(syntheticArg);\n });\n } else {\n effectiveArgs.push(arg);\n }\n }\n return effectiveArgs;\n }\n return args;\n }\n function getEffectiveDecoratorArguments(node) {\n const expr = node.expression;\n const signature = getDecoratorCallSignature(node);\n if (signature) {\n const args = [];\n for (const param of signature.parameters) {\n const type = getTypeOfSymbol(param);\n args.push(createSyntheticExpression(expr, type));\n }\n return args;\n }\n return Debug.fail();\n }\n function getDecoratorArgumentCount(node, signature) {\n return compilerOptions.experimentalDecorators ? getLegacyDecoratorArgumentCount(node, signature) : (\n // Allow the runtime to oversupply arguments to an ES decorator as long as there's at least one parameter.\n Math.min(Math.max(getParameterCount(signature), 1), 2)\n );\n }\n function getLegacyDecoratorArgumentCount(node, signature) {\n switch (node.parent.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return 1;\n case 173 /* PropertyDeclaration */:\n return hasAccessorModifier(node.parent) ? 3 : 2;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return signature.parameters.length <= 2 ? 2 : 3;\n case 170 /* Parameter */:\n return 3;\n default:\n return Debug.fail();\n }\n }\n function getDiagnosticSpanForCallNode(node) {\n const sourceFile = getSourceFileOfNode(node);\n const { start, length: length2 } = getErrorSpanForNode(sourceFile, isPropertyAccessExpression(node.expression) ? node.expression.name : node.expression);\n return { start, length: length2, sourceFile };\n }\n function getDiagnosticForCallNode(node, message, ...args) {\n if (isCallExpression(node)) {\n const { sourceFile, start, length: length2 } = getDiagnosticSpanForCallNode(node);\n if (\"message\" in message) {\n return createFileDiagnostic(sourceFile, start, length2, message, ...args);\n }\n return createDiagnosticForFileFromMessageChain(sourceFile, message);\n } else {\n if (\"message\" in message) {\n return createDiagnosticForNode(node, message, ...args);\n }\n return createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), node, message);\n }\n }\n function getErrorNodeForCallNode(callLike) {\n if (isCallOrNewExpression(callLike)) {\n return isPropertyAccessExpression(callLike.expression) ? callLike.expression.name : callLike.expression;\n }\n if (isTaggedTemplateExpression(callLike)) {\n return isPropertyAccessExpression(callLike.tag) ? callLike.tag.name : callLike.tag;\n }\n if (isJsxOpeningLikeElement(callLike)) {\n return callLike.tagName;\n }\n return callLike;\n }\n function isPromiseResolveArityError(node) {\n if (!isCallExpression(node) || !isIdentifier(node.expression)) return false;\n const symbol = resolveName(\n node.expression,\n node.expression.escapedText,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n const decl = symbol == null ? void 0 : symbol.valueDeclaration;\n if (!decl || !isParameter(decl) || !isFunctionExpressionOrArrowFunction(decl.parent) || !isNewExpression(decl.parent.parent) || !isIdentifier(decl.parent.parent.expression)) {\n return false;\n }\n const globalPromiseSymbol = getGlobalPromiseConstructorSymbol(\n /*reportErrors*/\n false\n );\n if (!globalPromiseSymbol) return false;\n const constructorSymbol = getSymbolAtLocation(\n decl.parent.parent.expression,\n /*ignoreErrors*/\n true\n );\n return constructorSymbol === globalPromiseSymbol;\n }\n function getArgumentArityError(node, signatures, args, headMessage) {\n var _a;\n const spreadIndex = getSpreadArgumentIndex(args);\n if (spreadIndex > -1) {\n return createDiagnosticForNode(args[spreadIndex], Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);\n }\n let min2 = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n let maxBelow = Number.NEGATIVE_INFINITY;\n let minAbove = Number.POSITIVE_INFINITY;\n let closestSignature;\n for (const sig of signatures) {\n const minParameter = getMinArgumentCount(sig);\n const maxParameter = getParameterCount(sig);\n if (minParameter < min2) {\n min2 = minParameter;\n closestSignature = sig;\n }\n max = Math.max(max, maxParameter);\n if (minParameter < args.length && minParameter > maxBelow) maxBelow = minParameter;\n if (args.length < maxParameter && maxParameter < minAbove) minAbove = maxParameter;\n }\n const hasRestParameter2 = some(signatures, hasEffectiveRestParameter);\n const parameterRange = hasRestParameter2 ? min2 : min2 < max ? min2 + \"-\" + max : min2;\n const isVoidPromiseError = !hasRestParameter2 && parameterRange === 1 && args.length === 0 && isPromiseResolveArityError(node);\n if (isVoidPromiseError && isInJSFile(node)) {\n return getDiagnosticForCallNode(node, Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments);\n }\n const error3 = isDecorator(node) ? hasRestParameter2 ? Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0 : Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0 : hasRestParameter2 ? Diagnostics.Expected_at_least_0_arguments_but_got_1 : isVoidPromiseError ? Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise : Diagnostics.Expected_0_arguments_but_got_1;\n if (min2 < args.length && args.length < max) {\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments,\n args.length,\n maxBelow,\n minAbove\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n return getDiagnosticForCallNode(node, chain);\n }\n return getDiagnosticForCallNode(node, Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, args.length, maxBelow, minAbove);\n } else if (args.length < min2) {\n let diagnostic;\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n error3,\n parameterRange,\n args.length\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n diagnostic = getDiagnosticForCallNode(node, chain);\n } else {\n diagnostic = getDiagnosticForCallNode(node, error3, parameterRange, args.length);\n }\n const parameter = (_a = closestSignature == null ? void 0 : closestSignature.declaration) == null ? void 0 : _a.parameters[closestSignature.thisParameter ? args.length + 1 : args.length];\n if (parameter) {\n const messageAndArgs = isBindingPattern(parameter.name) ? [Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided] : isRestParameter(parameter) ? [Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided, idText(getFirstIdentifier(parameter.name))] : [Diagnostics.An_argument_for_0_was_not_provided, !parameter.name ? args.length : idText(getFirstIdentifier(parameter.name))];\n const parameterError = createDiagnosticForNode(parameter, ...messageAndArgs);\n return addRelatedInfo(diagnostic, parameterError);\n }\n return diagnostic;\n } else {\n const errorSpan = factory.createNodeArray(args.slice(max));\n const pos = first(errorSpan).pos;\n let end = last(errorSpan).end;\n if (end === pos) {\n end++;\n }\n setTextRangePosEnd(errorSpan, pos, end);\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n error3,\n parameterRange,\n args.length\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), errorSpan, chain);\n }\n return createDiagnosticForNodeArray(getSourceFileOfNode(node), errorSpan, error3, parameterRange, args.length);\n }\n }\n function getTypeArgumentArityError(node, signatures, typeArguments, headMessage) {\n const argCount = typeArguments.length;\n if (signatures.length === 1) {\n const sig = signatures[0];\n const min2 = getMinTypeArgumentCount(sig.typeParameters);\n const max = length(sig.typeParameters);\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Expected_0_type_arguments_but_got_1,\n min2 < max ? min2 + \"-\" + max : min2,\n argCount\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n }\n return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, min2 < max ? min2 + \"-\" + max : min2, argCount);\n }\n let belowArgCount = -Infinity;\n let aboveArgCount = Infinity;\n for (const sig of signatures) {\n const min2 = getMinTypeArgumentCount(sig.typeParameters);\n const max = length(sig.typeParameters);\n if (min2 > argCount) {\n aboveArgCount = Math.min(aboveArgCount, min2);\n } else if (max < argCount) {\n belowArgCount = Math.max(belowArgCount, max);\n }\n }\n if (belowArgCount !== -Infinity && aboveArgCount !== Infinity) {\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments,\n argCount,\n belowArgCount,\n aboveArgCount\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n }\n return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, argCount, belowArgCount, aboveArgCount);\n }\n if (headMessage) {\n let chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Expected_0_type_arguments_but_got_1,\n belowArgCount === -Infinity ? aboveArgCount : belowArgCount,\n argCount\n );\n chain = chainDiagnosticMessages(chain, headMessage);\n return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n }\n return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, belowArgCount === -Infinity ? aboveArgCount : belowArgCount, argCount);\n }\n function resolveCall(node, signatures, candidatesOutArray, checkMode, callChainFlags, headMessage) {\n const isTaggedTemplate = node.kind === 216 /* TaggedTemplateExpression */;\n const isDecorator2 = node.kind === 171 /* Decorator */;\n const isJsxOpeningOrSelfClosingElement = isJsxOpeningLikeElement(node);\n const isJsxOpenFragment = isJsxOpeningFragment(node);\n const isInstanceof = node.kind === 227 /* BinaryExpression */;\n const reportErrors2 = !isInferencePartiallyBlocked && !candidatesOutArray;\n let candidatesForArgumentError;\n let candidateForArgumentArityError;\n let candidateForTypeArgumentError;\n let result;\n let argCheckMode = 0 /* Normal */;\n let candidates = [];\n let typeArguments;\n if (!isDecorator2 && !isInstanceof && !isSuperCall(node) && !isJsxOpenFragment) {\n typeArguments = node.typeArguments;\n if (isTaggedTemplate || isJsxOpeningOrSelfClosingElement || node.expression.kind !== 108 /* SuperKeyword */) {\n forEach(typeArguments, checkSourceElement);\n }\n }\n candidates = candidatesOutArray || [];\n reorderCandidates(signatures, candidates, callChainFlags);\n if (!isJsxOpenFragment) {\n if (!candidates.length) {\n if (reportErrors2) {\n diagnostics.add(getDiagnosticForCallNode(node, Diagnostics.Call_target_does_not_contain_any_signatures));\n }\n return resolveErrorCall(node);\n }\n }\n const args = getEffectiveCallArguments(node);\n const isSingleNonGenericCandidate = candidates.length === 1 && !candidates[0].typeParameters;\n if (!isDecorator2 && !isSingleNonGenericCandidate && some(args, isContextSensitive)) {\n argCheckMode = 4 /* SkipContextSensitive */;\n }\n const signatureHelpTrailingComma = !!(checkMode & 16 /* IsForSignatureHelp */) && node.kind === 214 /* CallExpression */ && node.arguments.hasTrailingComma;\n if (candidates.length > 1) {\n result = chooseOverload(candidates, subtypeRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma);\n }\n if (!result) {\n result = chooseOverload(candidates, assignableRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma);\n }\n const links = getNodeLinks(node);\n if (links.resolvedSignature !== resolvingSignature && !candidatesOutArray) {\n Debug.assert(links.resolvedSignature);\n return links.resolvedSignature;\n }\n if (result) {\n return result;\n }\n result = getCandidateForOverloadFailure(node, candidates, args, !!candidatesOutArray, checkMode);\n links.resolvedSignature = result;\n if (reportErrors2) {\n if (!headMessage && isInstanceof) {\n headMessage = Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method;\n }\n if (candidatesForArgumentError) {\n if (candidatesForArgumentError.length === 1 || candidatesForArgumentError.length > 3) {\n const last2 = candidatesForArgumentError[candidatesForArgumentError.length - 1];\n let chain;\n if (candidatesForArgumentError.length > 3) {\n chain = chainDiagnosticMessages(chain, Diagnostics.The_last_overload_gave_the_following_error);\n chain = chainDiagnosticMessages(chain, Diagnostics.No_overload_matches_this_call);\n }\n if (headMessage) {\n chain = chainDiagnosticMessages(chain, headMessage);\n }\n const diags = getSignatureApplicabilityError(\n node,\n args,\n last2,\n assignableRelation,\n 0 /* Normal */,\n /*reportErrors*/\n true,\n () => chain\n );\n if (diags) {\n for (const d of diags) {\n if (last2.declaration && candidatesForArgumentError.length > 3) {\n addRelatedInfo(d, createDiagnosticForNode(last2.declaration, Diagnostics.The_last_overload_is_declared_here));\n }\n addImplementationSuccessElaboration(last2, d);\n diagnostics.add(d);\n }\n } else {\n Debug.fail(\"No error for last overload signature\");\n }\n } else {\n const allDiagnostics = [];\n let max = 0;\n let min2 = Number.MAX_VALUE;\n let minIndex = 0;\n let i = 0;\n for (const c of candidatesForArgumentError) {\n const chain2 = () => chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Overload_0_of_1_2_gave_the_following_error,\n i + 1,\n candidates.length,\n signatureToString(c)\n );\n const diags2 = getSignatureApplicabilityError(\n node,\n args,\n c,\n assignableRelation,\n 0 /* Normal */,\n /*reportErrors*/\n true,\n chain2\n );\n if (diags2) {\n if (diags2.length <= min2) {\n min2 = diags2.length;\n minIndex = i;\n }\n max = Math.max(max, diags2.length);\n allDiagnostics.push(diags2);\n } else {\n Debug.fail(\"No error for 3 or fewer overload signatures\");\n }\n i++;\n }\n const diags = max > 1 ? allDiagnostics[minIndex] : flatten(allDiagnostics);\n Debug.assert(diags.length > 0, \"No errors reported for 3 or fewer overload signatures\");\n let chain = chainDiagnosticMessages(\n map(diags, createDiagnosticMessageChainFromDiagnostic),\n Diagnostics.No_overload_matches_this_call\n );\n if (headMessage) {\n chain = chainDiagnosticMessages(chain, headMessage);\n }\n const related = [...flatMap(diags, (d) => d.relatedInformation)];\n let diag2;\n if (every(diags, (d) => d.start === diags[0].start && d.length === diags[0].length && d.file === diags[0].file)) {\n const { file, start, length: length2 } = diags[0];\n diag2 = { file, start, length: length2, code: chain.code, category: chain.category, messageText: chain, relatedInformation: related };\n } else {\n diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), getErrorNodeForCallNode(node), chain, related);\n }\n addImplementationSuccessElaboration(candidatesForArgumentError[0], diag2);\n diagnostics.add(diag2);\n }\n } else if (candidateForArgumentArityError) {\n diagnostics.add(getArgumentArityError(node, [candidateForArgumentArityError], args, headMessage));\n } else if (candidateForTypeArgumentError) {\n checkTypeArguments(\n candidateForTypeArgumentError,\n node.typeArguments,\n /*reportErrors*/\n true,\n headMessage\n );\n } else if (!isJsxOpenFragment) {\n const signaturesWithCorrectTypeArgumentArity = filter(signatures, (s) => hasCorrectTypeArgumentArity(s, typeArguments));\n if (signaturesWithCorrectTypeArgumentArity.length === 0) {\n diagnostics.add(getTypeArgumentArityError(node, signatures, typeArguments, headMessage));\n } else {\n diagnostics.add(getArgumentArityError(node, signaturesWithCorrectTypeArgumentArity, args, headMessage));\n }\n }\n }\n return result;\n function addImplementationSuccessElaboration(failed2, diagnostic) {\n var _a, _b;\n const oldCandidatesForArgumentError = candidatesForArgumentError;\n const oldCandidateForArgumentArityError = candidateForArgumentArityError;\n const oldCandidateForTypeArgumentError = candidateForTypeArgumentError;\n const failedSignatureDeclarations = ((_b = (_a = failed2.declaration) == null ? void 0 : _a.symbol) == null ? void 0 : _b.declarations) || emptyArray;\n const isOverload2 = failedSignatureDeclarations.length > 1;\n const implDecl = isOverload2 ? find(failedSignatureDeclarations, (d) => isFunctionLikeDeclaration(d) && nodeIsPresent(d.body)) : void 0;\n if (implDecl) {\n const candidate = getSignatureFromDeclaration(implDecl);\n const isSingleNonGenericCandidate2 = !candidate.typeParameters;\n if (chooseOverload([candidate], assignableRelation, isSingleNonGenericCandidate2)) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(implDecl, Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible));\n }\n }\n candidatesForArgumentError = oldCandidatesForArgumentError;\n candidateForArgumentArityError = oldCandidateForArgumentArityError;\n candidateForTypeArgumentError = oldCandidateForTypeArgumentError;\n }\n function chooseOverload(candidates2, relation, isSingleNonGenericCandidate2, signatureHelpTrailingComma2 = false) {\n candidatesForArgumentError = void 0;\n candidateForArgumentArityError = void 0;\n candidateForTypeArgumentError = void 0;\n if (isSingleNonGenericCandidate2) {\n const candidate = candidates2[0];\n if (some(typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) {\n return void 0;\n }\n if (getSignatureApplicabilityError(\n node,\n args,\n candidate,\n relation,\n 0 /* Normal */,\n /*reportErrors*/\n false,\n /*containingMessageChain*/\n void 0\n )) {\n candidatesForArgumentError = [candidate];\n return void 0;\n }\n return candidate;\n }\n for (let candidateIndex = 0; candidateIndex < candidates2.length; candidateIndex++) {\n const candidate = candidates2[candidateIndex];\n if (!hasCorrectTypeArgumentArity(candidate, typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) {\n continue;\n }\n let checkCandidate;\n let inferenceContext;\n if (candidate.typeParameters) {\n let typeArgumentTypes;\n if (some(typeArguments)) {\n typeArgumentTypes = checkTypeArguments(\n candidate,\n typeArguments,\n /*reportErrors*/\n false\n );\n if (!typeArgumentTypes) {\n candidateForTypeArgumentError = candidate;\n continue;\n }\n } else {\n inferenceContext = createInferenceContext(\n candidate.typeParameters,\n candidate,\n /*flags*/\n isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */\n );\n typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext);\n argCheckMode |= inferenceContext.flags & 4 /* SkippedGenericFunction */ ? 8 /* SkipGenericFunctions */ : 0 /* Normal */;\n }\n checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters);\n if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {\n candidateForArgumentArityError = checkCandidate;\n continue;\n }\n } else {\n checkCandidate = candidate;\n }\n if (getSignatureApplicabilityError(\n node,\n args,\n checkCandidate,\n relation,\n argCheckMode,\n /*reportErrors*/\n false,\n /*containingMessageChain*/\n void 0\n )) {\n (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate);\n continue;\n }\n if (argCheckMode) {\n argCheckMode = 0 /* Normal */;\n if (inferenceContext) {\n const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext);\n checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext.inferredTypeParameters);\n if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {\n candidateForArgumentArityError = checkCandidate;\n continue;\n }\n }\n if (getSignatureApplicabilityError(\n node,\n args,\n checkCandidate,\n relation,\n argCheckMode,\n /*reportErrors*/\n false,\n /*containingMessageChain*/\n void 0\n )) {\n (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate);\n continue;\n }\n }\n candidates2[candidateIndex] = checkCandidate;\n return checkCandidate;\n }\n return void 0;\n }\n }\n function getCandidateForOverloadFailure(node, candidates, args, hasCandidatesOutArray, checkMode) {\n Debug.assert(candidates.length > 0);\n checkNodeDeferred(node);\n return hasCandidatesOutArray || candidates.length === 1 || candidates.some((c) => !!c.typeParameters) ? pickLongestCandidateSignature(node, candidates, args, checkMode) : createUnionOfSignaturesForOverloadFailure(candidates);\n }\n function createUnionOfSignaturesForOverloadFailure(candidates) {\n const thisParameters = mapDefined(candidates, (c) => c.thisParameter);\n let thisParameter;\n if (thisParameters.length) {\n thisParameter = createCombinedSymbolFromTypes(thisParameters, thisParameters.map(getTypeOfParameter));\n }\n const { min: minArgumentCount, max: maxNonRestParam } = minAndMax(candidates, getNumNonRestParameters);\n const parameters = [];\n for (let i = 0; i < maxNonRestParam; i++) {\n const symbols = mapDefined(candidates, (s) => signatureHasRestParameter(s) ? i < s.parameters.length - 1 ? s.parameters[i] : last(s.parameters) : i < s.parameters.length ? s.parameters[i] : void 0);\n Debug.assert(symbols.length !== 0);\n parameters.push(createCombinedSymbolFromTypes(symbols, mapDefined(candidates, (candidate) => tryGetTypeAtPosition(candidate, i))));\n }\n const restParameterSymbols = mapDefined(candidates, (c) => signatureHasRestParameter(c) ? last(c.parameters) : void 0);\n let flags = 128 /* IsSignatureCandidateForOverloadFailure */;\n if (restParameterSymbols.length !== 0) {\n const type = createArrayType(getUnionType(mapDefined(candidates, tryGetRestTypeOfSignature), 2 /* Subtype */));\n parameters.push(createCombinedSymbolForOverloadFailure(restParameterSymbols, type));\n flags |= 1 /* HasRestParameter */;\n }\n if (candidates.some(signatureHasLiteralTypes)) {\n flags |= 2 /* HasLiteralTypes */;\n }\n return createSignature(\n candidates[0].declaration,\n /*typeParameters*/\n void 0,\n // Before calling this we tested for `!candidates.some(c => !!c.typeParameters)`.\n thisParameter,\n parameters,\n /*resolvedReturnType*/\n getIntersectionType(candidates.map(getReturnTypeOfSignature)),\n /*resolvedTypePredicate*/\n void 0,\n minArgumentCount,\n flags\n );\n }\n function getNumNonRestParameters(signature) {\n const numParams = signature.parameters.length;\n return signatureHasRestParameter(signature) ? numParams - 1 : numParams;\n }\n function createCombinedSymbolFromTypes(sources, types) {\n return createCombinedSymbolForOverloadFailure(sources, getUnionType(types, 2 /* Subtype */));\n }\n function createCombinedSymbolForOverloadFailure(sources, type) {\n return createSymbolWithType(first(sources), type);\n }\n function pickLongestCandidateSignature(node, candidates, args, checkMode) {\n const bestIndex = getLongestCandidateIndex(candidates, apparentArgumentCount === void 0 ? args.length : apparentArgumentCount);\n const candidate = candidates[bestIndex];\n const { typeParameters } = candidate;\n if (!typeParameters) {\n return candidate;\n }\n const typeArgumentNodes = callLikeExpressionMayHaveTypeArguments(node) ? node.typeArguments : void 0;\n const instantiated = typeArgumentNodes ? createSignatureInstantiation(candidate, getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isInJSFile(node))) : inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode);\n candidates[bestIndex] = instantiated;\n return instantiated;\n }\n function getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isJs) {\n const typeArguments = typeArgumentNodes.map(getTypeOfNode);\n while (typeArguments.length > typeParameters.length) {\n typeArguments.pop();\n }\n while (typeArguments.length < typeParameters.length) {\n typeArguments.push(getDefaultFromTypeParameter(typeParameters[typeArguments.length]) || getConstraintOfTypeParameter(typeParameters[typeArguments.length]) || getDefaultTypeArgumentType(isJs));\n }\n return typeArguments;\n }\n function inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode) {\n const inferenceContext = createInferenceContext(\n typeParameters,\n candidate,\n /*flags*/\n isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */\n );\n const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext);\n return createSignatureInstantiation(candidate, typeArgumentTypes);\n }\n function getLongestCandidateIndex(candidates, argsCount) {\n let maxParamsIndex = -1;\n let maxParams = -1;\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n const paramCount = getParameterCount(candidate);\n if (hasEffectiveRestParameter(candidate) || paramCount >= argsCount) {\n return i;\n }\n if (paramCount > maxParams) {\n maxParams = paramCount;\n maxParamsIndex = i;\n }\n }\n return maxParamsIndex;\n }\n function resolveCallExpression(node, candidatesOutArray, checkMode) {\n if (node.expression.kind === 108 /* SuperKeyword */) {\n const superType = checkSuperExpression(node.expression);\n if (isTypeAny(superType)) {\n for (const arg of node.arguments) {\n checkExpression(arg);\n }\n return anySignature;\n }\n if (!isErrorType(superType)) {\n const baseTypeNode = getEffectiveBaseTypeNode(getContainingClass(node));\n if (baseTypeNode) {\n const baseConstructors = getInstantiatedConstructorsForTypeArguments(superType, baseTypeNode.typeArguments, baseTypeNode);\n return resolveCall(node, baseConstructors, candidatesOutArray, checkMode, 0 /* None */);\n }\n }\n return resolveUntypedCall(node);\n }\n let callChainFlags;\n let funcType = checkExpression(node.expression);\n if (isCallChain(node)) {\n const nonOptionalType = getOptionalExpressionType(funcType, node.expression);\n callChainFlags = nonOptionalType === funcType ? 0 /* None */ : isOutermostOptionalChain(node) ? 16 /* IsOuterCallChain */ : 8 /* IsInnerCallChain */;\n funcType = nonOptionalType;\n } else {\n callChainFlags = 0 /* None */;\n }\n funcType = checkNonNullTypeWithReporter(\n funcType,\n node.expression,\n reportCannotInvokePossiblyNullOrUndefinedError\n );\n if (funcType === silentNeverType) {\n return silentNeverSignature;\n }\n const apparentType = getApparentType(funcType);\n if (isErrorType(apparentType)) {\n return resolveErrorCall(node);\n }\n const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) {\n if (!isErrorType(funcType) && node.typeArguments) {\n error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);\n }\n return resolveUntypedCall(node);\n }\n if (!callSignatures.length) {\n if (numConstructSignatures) {\n error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType));\n } else {\n let relatedInformation;\n if (node.arguments.length === 1) {\n const text = getSourceFileOfNode(node).text;\n if (isLineBreak(text.charCodeAt(skipTrivia(\n text,\n node.expression.end,\n /*stopAfterLineBreak*/\n true\n ) - 1))) {\n relatedInformation = createDiagnosticForNode(node.expression, Diagnostics.Are_you_missing_a_semicolon);\n }\n }\n invocationError(node.expression, apparentType, 0 /* Call */, relatedInformation);\n }\n return resolveErrorCall(node);\n }\n if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {\n skippedGenericFunction(node, checkMode);\n return resolvingSignature;\n }\n if (callSignatures.some((sig) => isInJSFile(sig.declaration) && !!getJSDocClassTag(sig.declaration))) {\n error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType));\n return resolveErrorCall(node);\n }\n return resolveCall(node, callSignatures, candidatesOutArray, checkMode, callChainFlags);\n }\n function isGenericFunctionReturningFunction(signature) {\n return !!(signature.typeParameters && isFunctionType(getReturnTypeOfSignature(signature)));\n }\n function isUntypedFunctionCall(funcType, apparentFuncType, numCallSignatures, numConstructSignatures) {\n return isTypeAny(funcType) || isTypeAny(apparentFuncType) && !!(funcType.flags & 262144 /* TypeParameter */) || !numCallSignatures && !numConstructSignatures && !(apparentFuncType.flags & 1048576 /* Union */) && !(getReducedType(apparentFuncType).flags & 131072 /* Never */) && isTypeAssignableTo(funcType, globalFunctionType);\n }\n function resolveNewExpression(node, candidatesOutArray, checkMode) {\n let expressionType = checkNonNullExpression(node.expression);\n if (expressionType === silentNeverType) {\n return silentNeverSignature;\n }\n expressionType = getApparentType(expressionType);\n if (isErrorType(expressionType)) {\n return resolveErrorCall(node);\n }\n if (isTypeAny(expressionType)) {\n if (node.typeArguments) {\n error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);\n }\n return resolveUntypedCall(node);\n }\n const constructSignatures = getSignaturesOfType(expressionType, 1 /* Construct */);\n if (constructSignatures.length) {\n if (!isConstructorAccessible(node, constructSignatures[0])) {\n return resolveErrorCall(node);\n }\n if (someSignature(constructSignatures, (signature) => !!(signature.flags & 4 /* Abstract */))) {\n error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class);\n return resolveErrorCall(node);\n }\n const valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);\n if (valueDecl && hasSyntacticModifier(valueDecl, 64 /* Abstract */)) {\n error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class);\n return resolveErrorCall(node);\n }\n return resolveCall(node, constructSignatures, candidatesOutArray, checkMode, 0 /* None */);\n }\n const callSignatures = getSignaturesOfType(expressionType, 0 /* Call */);\n if (callSignatures.length) {\n const signature = resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n if (!noImplicitAny) {\n if (signature.declaration && !isJSConstructor(signature.declaration) && getReturnTypeOfSignature(signature) !== voidType) {\n error2(node, Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword);\n }\n if (getThisTypeOfSignature(signature) === voidType) {\n error2(node, Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void);\n }\n }\n return signature;\n }\n invocationError(node.expression, expressionType, 1 /* Construct */);\n return resolveErrorCall(node);\n }\n function someSignature(signatures, f) {\n if (isArray(signatures)) {\n return some(signatures, (signature) => someSignature(signature, f));\n }\n return signatures.compositeKind === 1048576 /* Union */ ? some(signatures.compositeSignatures, f) : f(signatures);\n }\n function typeHasProtectedAccessibleBase(target, type) {\n const baseTypes = getBaseTypes(type);\n if (!length(baseTypes)) {\n return false;\n }\n const firstBase = baseTypes[0];\n if (firstBase.flags & 2097152 /* Intersection */) {\n const types = firstBase.types;\n const mixinFlags = findMixins(types);\n let i = 0;\n for (const intersectionMember of firstBase.types) {\n if (!mixinFlags[i]) {\n if (getObjectFlags(intersectionMember) & (1 /* Class */ | 2 /* Interface */)) {\n if (intersectionMember.symbol === target) {\n return true;\n }\n if (typeHasProtectedAccessibleBase(target, intersectionMember)) {\n return true;\n }\n }\n }\n i++;\n }\n return false;\n }\n if (firstBase.symbol === target) {\n return true;\n }\n return typeHasProtectedAccessibleBase(target, firstBase);\n }\n function isConstructorAccessible(node, signature) {\n if (!signature || !signature.declaration) {\n return true;\n }\n const declaration = signature.declaration;\n const modifiers = getSelectedEffectiveModifierFlags(declaration, 6 /* NonPublicAccessibilityModifier */);\n if (!modifiers || declaration.kind !== 177 /* Constructor */) {\n return true;\n }\n const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(declaration.parent.symbol);\n const declaringClass = getDeclaredTypeOfSymbol(declaration.parent.symbol);\n if (!isNodeWithinClass(node, declaringClassDeclaration)) {\n const containingClass = getContainingClass(node);\n if (containingClass && modifiers & 4 /* Protected */) {\n const containingType = getTypeOfNode(containingClass);\n if (typeHasProtectedAccessibleBase(declaration.parent.symbol, containingType)) {\n return true;\n }\n }\n if (modifiers & 2 /* Private */) {\n error2(node, Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration, typeToString(declaringClass));\n }\n if (modifiers & 4 /* Protected */) {\n error2(node, Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration, typeToString(declaringClass));\n }\n return false;\n }\n return true;\n }\n function invocationErrorDetails(errorTarget, apparentType, kind) {\n let errorInfo;\n const isCall = kind === 0 /* Call */;\n const awaitedType = getAwaitedType(apparentType);\n const maybeMissingAwait = awaitedType && getSignaturesOfType(awaitedType, kind).length > 0;\n if (apparentType.flags & 1048576 /* Union */) {\n const types = apparentType.types;\n let hasSignatures2 = false;\n for (const constituent of types) {\n const signatures = getSignaturesOfType(constituent, kind);\n if (signatures.length !== 0) {\n hasSignatures2 = true;\n if (errorInfo) {\n break;\n }\n } else {\n if (!errorInfo) {\n errorInfo = chainDiagnosticMessages(\n errorInfo,\n isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures,\n typeToString(constituent)\n );\n errorInfo = chainDiagnosticMessages(\n errorInfo,\n isCall ? Diagnostics.Not_all_constituents_of_type_0_are_callable : Diagnostics.Not_all_constituents_of_type_0_are_constructable,\n typeToString(apparentType)\n );\n }\n if (hasSignatures2) {\n break;\n }\n }\n }\n if (!hasSignatures2) {\n errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n isCall ? Diagnostics.No_constituent_of_type_0_is_callable : Diagnostics.No_constituent_of_type_0_is_constructable,\n typeToString(apparentType)\n );\n }\n if (!errorInfo) {\n errorInfo = chainDiagnosticMessages(\n errorInfo,\n isCall ? Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other : Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,\n typeToString(apparentType)\n );\n }\n } else {\n errorInfo = chainDiagnosticMessages(\n errorInfo,\n isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures,\n typeToString(apparentType)\n );\n }\n let headMessage = isCall ? Diagnostics.This_expression_is_not_callable : Diagnostics.This_expression_is_not_constructable;\n if (isCallExpression(errorTarget.parent) && errorTarget.parent.arguments.length === 0) {\n const { resolvedSymbol } = getNodeLinks(errorTarget);\n if (resolvedSymbol && resolvedSymbol.flags & 32768 /* GetAccessor */) {\n headMessage = Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without;\n }\n }\n return {\n messageChain: chainDiagnosticMessages(errorInfo, headMessage),\n relatedMessage: maybeMissingAwait ? Diagnostics.Did_you_forget_to_use_await : void 0\n };\n }\n function invocationError(errorTarget, apparentType, kind, relatedInformation) {\n const { messageChain, relatedMessage: relatedInfo } = invocationErrorDetails(errorTarget, apparentType, kind);\n const diagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorTarget), errorTarget, messageChain);\n if (relatedInfo) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(errorTarget, relatedInfo));\n }\n if (isCallExpression(errorTarget.parent)) {\n const { start, length: length2 } = getDiagnosticSpanForCallNode(errorTarget.parent);\n diagnostic.start = start;\n diagnostic.length = length2;\n }\n diagnostics.add(diagnostic);\n invocationErrorRecovery(apparentType, kind, relatedInformation ? addRelatedInfo(diagnostic, relatedInformation) : diagnostic);\n }\n function invocationErrorRecovery(apparentType, kind, diagnostic) {\n if (!apparentType.symbol) {\n return;\n }\n const importNode = getSymbolLinks(apparentType.symbol).originatingImport;\n if (importNode && !isImportCall(importNode)) {\n const sigs = getSignaturesOfType(getTypeOfSymbol(getSymbolLinks(apparentType.symbol).target), kind);\n if (!sigs || !sigs.length) return;\n addRelatedInfo(diagnostic, createDiagnosticForNode(importNode, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead));\n }\n }\n function resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode) {\n const tagType = checkExpression(node.tag);\n const apparentType = getApparentType(tagType);\n if (isErrorType(apparentType)) {\n return resolveErrorCall(node);\n }\n const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n if (isUntypedFunctionCall(tagType, apparentType, callSignatures.length, numConstructSignatures)) {\n return resolveUntypedCall(node);\n }\n if (!callSignatures.length) {\n if (isArrayLiteralExpression(node.parent)) {\n const diagnostic = createDiagnosticForNode(node.tag, Diagnostics.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);\n diagnostics.add(diagnostic);\n return resolveErrorCall(node);\n }\n invocationError(node.tag, apparentType, 0 /* Call */);\n return resolveErrorCall(node);\n }\n return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n }\n function getDiagnosticHeadMessageForDecoratorResolution(node) {\n switch (node.parent.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;\n case 170 /* Parameter */:\n return Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;\n case 173 /* PropertyDeclaration */:\n return Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;\n default:\n return Debug.fail();\n }\n }\n function resolveDecorator(node, candidatesOutArray, checkMode) {\n const funcType = checkExpression(node.expression);\n const apparentType = getApparentType(funcType);\n if (isErrorType(apparentType)) {\n return resolveErrorCall(node);\n }\n const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) {\n return resolveUntypedCall(node);\n }\n if (isPotentiallyUncalledDecorator(node, callSignatures) && !isParenthesizedExpression(node.expression)) {\n const nodeStr = getTextOfNode(\n node.expression,\n /*includeTrivia*/\n false\n );\n error2(node, Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0, nodeStr);\n return resolveErrorCall(node);\n }\n const headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);\n if (!callSignatures.length) {\n const errorDetails = invocationErrorDetails(node.expression, apparentType, 0 /* Call */);\n const messageChain = chainDiagnosticMessages(errorDetails.messageChain, headMessage);\n const diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node.expression), node.expression, messageChain);\n if (errorDetails.relatedMessage) {\n addRelatedInfo(diag2, createDiagnosticForNode(node.expression, errorDetails.relatedMessage));\n }\n diagnostics.add(diag2);\n invocationErrorRecovery(apparentType, 0 /* Call */, diag2);\n return resolveErrorCall(node);\n }\n return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */, headMessage);\n }\n function createSignatureForJSXIntrinsic(node, result) {\n const namespace = getJsxNamespaceAt(node);\n const exports2 = namespace && getExportsOfSymbol(namespace);\n const typeSymbol = exports2 && getSymbol2(exports2, JsxNames.Element, 788968 /* Type */);\n const returnNode = typeSymbol && nodeBuilder.symbolToEntityName(typeSymbol, 788968 /* Type */, node);\n const declaration = factory.createFunctionTypeNode(\n /*typeParameters*/\n void 0,\n [factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"props\",\n /*questionToken*/\n void 0,\n nodeBuilder.typeToTypeNode(result, node)\n )],\n returnNode ? factory.createTypeReferenceNode(\n returnNode,\n /*typeArguments*/\n void 0\n ) : factory.createKeywordTypeNode(133 /* AnyKeyword */)\n );\n const parameterSymbol = createSymbol(1 /* FunctionScopedVariable */, \"props\");\n parameterSymbol.links.type = result;\n return createSignature(\n declaration,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [parameterSymbol],\n typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType,\n /*resolvedTypePredicate*/\n void 0,\n 1,\n 0 /* None */\n );\n }\n function getJSXFragmentType(node) {\n const sourceFileLinks = getNodeLinks(getSourceFileOfNode(node));\n if (sourceFileLinks.jsxFragmentType !== void 0) return sourceFileLinks.jsxFragmentType;\n const jsxFragmentFactoryName = getJsxNamespace(node);\n const shouldResolveFactoryReference = (compilerOptions.jsx === 2 /* React */ || compilerOptions.jsxFragmentFactory !== void 0) && jsxFragmentFactoryName !== \"null\";\n if (!shouldResolveFactoryReference) return sourceFileLinks.jsxFragmentType = anyType;\n const shouldModuleRefErr = compilerOptions.jsx !== 1 /* Preserve */ && compilerOptions.jsx !== 3 /* ReactNative */;\n const jsxFactoryRefErr = diagnostics ? Diagnostics.Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found : void 0;\n const jsxFactorySymbol = getJsxNamespaceContainerForImplicitImport(node) ?? resolveName(\n node,\n jsxFragmentFactoryName,\n shouldModuleRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n /*nameNotFoundMessage*/\n jsxFactoryRefErr,\n /*isUse*/\n true\n );\n if (jsxFactorySymbol === void 0) return sourceFileLinks.jsxFragmentType = errorType;\n if (jsxFactorySymbol.escapedName === ReactNames.Fragment) return sourceFileLinks.jsxFragmentType = getTypeOfSymbol(jsxFactorySymbol);\n const resolvedAlias = (jsxFactorySymbol.flags & 2097152 /* Alias */) === 0 ? jsxFactorySymbol : resolveAlias(jsxFactorySymbol);\n const reactExports = jsxFactorySymbol && getExportsOfSymbol(resolvedAlias);\n const typeSymbol = reactExports && getSymbol2(reactExports, ReactNames.Fragment, 2 /* BlockScopedVariable */);\n const type = typeSymbol && getTypeOfSymbol(typeSymbol);\n return sourceFileLinks.jsxFragmentType = type === void 0 ? errorType : type;\n }\n function resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode) {\n const isJsxOpenFragment = isJsxOpeningFragment(node);\n let exprTypes;\n if (!isJsxOpenFragment) {\n if (isJsxIntrinsicTagName(node.tagName)) {\n const result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node);\n const fakeSignature = createSignatureForJSXIntrinsic(node, result);\n checkTypeAssignableToAndOptionallyElaborate(checkExpressionWithContextualType(\n node.attributes,\n getEffectiveFirstArgumentForJsxSignature(fakeSignature, node),\n /*inferenceContext*/\n void 0,\n 0 /* Normal */\n ), result, node.tagName, node.attributes);\n if (length(node.typeArguments)) {\n forEach(node.typeArguments, checkSourceElement);\n diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), node.typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, 0, length(node.typeArguments)));\n }\n return fakeSignature;\n }\n exprTypes = checkExpression(node.tagName);\n } else {\n exprTypes = getJSXFragmentType(node);\n }\n const apparentType = getApparentType(exprTypes);\n if (isErrorType(apparentType)) {\n return resolveErrorCall(node);\n }\n const signatures = getUninstantiatedJsxSignaturesOfType(exprTypes, node);\n if (isUntypedFunctionCall(\n exprTypes,\n apparentType,\n signatures.length,\n /*constructSignatures*/\n 0\n )) {\n return resolveUntypedCall(node);\n }\n if (signatures.length === 0) {\n if (isJsxOpenFragment) {\n error2(node, Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, getTextOfNode(node));\n } else {\n error2(node.tagName, Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, getTextOfNode(node.tagName));\n }\n return resolveErrorCall(node);\n }\n return resolveCall(node, signatures, candidatesOutArray, checkMode, 0 /* None */);\n }\n function resolveInstanceofExpression(node, candidatesOutArray, checkMode) {\n const rightType = checkExpression(node.right);\n if (!isTypeAny(rightType)) {\n const hasInstanceMethodType = getSymbolHasInstanceMethodOfObjectType(rightType);\n if (hasInstanceMethodType) {\n const apparentType = getApparentType(hasInstanceMethodType);\n if (isErrorType(apparentType)) {\n return resolveErrorCall(node);\n }\n const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n const constructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */);\n if (isUntypedFunctionCall(hasInstanceMethodType, apparentType, callSignatures.length, constructSignatures.length)) {\n return resolveUntypedCall(node);\n }\n if (callSignatures.length) {\n return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n }\n } else if (!(typeHasCallOrConstructSignatures(rightType) || isTypeSubtypeOf(rightType, globalFunctionType))) {\n error2(node.right, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method);\n return resolveErrorCall(node);\n }\n }\n return anySignature;\n }\n function isPotentiallyUncalledDecorator(decorator, signatures) {\n return signatures.length && every(signatures, (signature) => signature.minArgumentCount === 0 && !signatureHasRestParameter(signature) && signature.parameters.length < getDecoratorArgumentCount(decorator, signature));\n }\n function resolveSignature(node, candidatesOutArray, checkMode) {\n switch (node.kind) {\n case 214 /* CallExpression */:\n return resolveCallExpression(node, candidatesOutArray, checkMode);\n case 215 /* NewExpression */:\n return resolveNewExpression(node, candidatesOutArray, checkMode);\n case 216 /* TaggedTemplateExpression */:\n return resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode);\n case 171 /* Decorator */:\n return resolveDecorator(node, candidatesOutArray, checkMode);\n case 290 /* JsxOpeningFragment */:\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n return resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode);\n case 227 /* BinaryExpression */:\n return resolveInstanceofExpression(node, candidatesOutArray, checkMode);\n }\n Debug.assertNever(node, \"Branch in 'resolveSignature' should be unreachable.\");\n }\n function getResolvedSignature(node, candidatesOutArray, checkMode) {\n const links = getNodeLinks(node);\n const cached = links.resolvedSignature;\n if (cached && cached !== resolvingSignature && !candidatesOutArray) {\n return cached;\n }\n const saveResolutionStart = resolutionStart;\n if (!cached) {\n resolutionStart = resolutionTargets.length;\n }\n links.resolvedSignature = resolvingSignature;\n const result = resolveSignature(node, candidatesOutArray, checkMode || 0 /* Normal */);\n resolutionStart = saveResolutionStart;\n if (result !== resolvingSignature) {\n links.resolvedSignature = flowLoopStart === flowLoopCount ? result : cached;\n }\n return result;\n }\n function isJSConstructor(node) {\n var _a;\n if (!node || !isInJSFile(node)) {\n return false;\n }\n const func = isFunctionDeclaration(node) || isFunctionExpression(node) ? node : (isVariableDeclaration(node) || isPropertyAssignment(node)) && node.initializer && isFunctionExpression(node.initializer) ? node.initializer : void 0;\n if (func) {\n if (getJSDocClassTag(node)) return true;\n if (isPropertyAssignment(walkUpParenthesizedExpressions(func.parent))) return false;\n const symbol = getSymbolOfDeclaration(func);\n return !!((_a = symbol == null ? void 0 : symbol.members) == null ? void 0 : _a.size);\n }\n return false;\n }\n function mergeJSSymbols(target, source) {\n var _a, _b;\n if (source) {\n const links = getSymbolLinks(source);\n if (!links.inferredClassSymbol || !links.inferredClassSymbol.has(getSymbolId(target))) {\n const inferred = isTransientSymbol(target) ? target : cloneSymbol(target);\n inferred.exports = inferred.exports || createSymbolTable();\n inferred.members = inferred.members || createSymbolTable();\n inferred.flags |= source.flags & 32 /* Class */;\n if ((_a = source.exports) == null ? void 0 : _a.size) {\n mergeSymbolTable(inferred.exports, source.exports);\n }\n if ((_b = source.members) == null ? void 0 : _b.size) {\n mergeSymbolTable(inferred.members, source.members);\n }\n (links.inferredClassSymbol || (links.inferredClassSymbol = /* @__PURE__ */ new Map())).set(getSymbolId(inferred), inferred);\n return inferred;\n }\n return links.inferredClassSymbol.get(getSymbolId(target));\n }\n }\n function getAssignedClassSymbol(decl) {\n var _a;\n const assignmentSymbol = decl && getSymbolOfExpando(\n decl,\n /*allowDeclaration*/\n true\n );\n const prototype = (_a = assignmentSymbol == null ? void 0 : assignmentSymbol.exports) == null ? void 0 : _a.get(\"prototype\");\n const init = (prototype == null ? void 0 : prototype.valueDeclaration) && getAssignedJSPrototype(prototype.valueDeclaration);\n return init ? getSymbolOfDeclaration(init) : void 0;\n }\n function getSymbolOfExpando(node, allowDeclaration) {\n if (!node.parent) {\n return void 0;\n }\n let name;\n let decl;\n if (isVariableDeclaration(node.parent) && node.parent.initializer === node) {\n if (!isInJSFile(node) && !(isVarConstLike2(node.parent) && isFunctionLikeDeclaration(node))) {\n return void 0;\n }\n name = node.parent.name;\n decl = node.parent;\n } else if (isBinaryExpression(node.parent)) {\n const parentNode = node.parent;\n const parentNodeOperator = node.parent.operatorToken.kind;\n if (parentNodeOperator === 64 /* EqualsToken */ && (allowDeclaration || parentNode.right === node)) {\n name = parentNode.left;\n decl = name;\n } else if (parentNodeOperator === 57 /* BarBarToken */ || parentNodeOperator === 61 /* QuestionQuestionToken */) {\n if (isVariableDeclaration(parentNode.parent) && parentNode.parent.initializer === parentNode) {\n name = parentNode.parent.name;\n decl = parentNode.parent;\n } else if (isBinaryExpression(parentNode.parent) && parentNode.parent.operatorToken.kind === 64 /* EqualsToken */ && (allowDeclaration || parentNode.parent.right === parentNode)) {\n name = parentNode.parent.left;\n decl = name;\n }\n if (!name || !isBindableStaticNameExpression(name) || !isSameEntityName(name, parentNode.left)) {\n return void 0;\n }\n }\n } else if (allowDeclaration && isFunctionDeclaration(node)) {\n name = node.name;\n decl = node;\n }\n if (!decl || !name || !allowDeclaration && !getExpandoInitializer(node, isPrototypeAccess(name))) {\n return void 0;\n }\n return getSymbolOfNode(decl);\n }\n function getAssignedJSPrototype(node) {\n if (!node.parent) {\n return false;\n }\n let parent2 = node.parent;\n while (parent2 && parent2.kind === 212 /* PropertyAccessExpression */) {\n parent2 = parent2.parent;\n }\n if (parent2 && isBinaryExpression(parent2) && isPrototypeAccess(parent2.left) && parent2.operatorToken.kind === 64 /* EqualsToken */) {\n const right = getInitializerOfBinaryExpression(parent2);\n return isObjectLiteralExpression(right) && right;\n }\n }\n function checkCallExpression(node, checkMode) {\n var _a, _b, _c;\n checkGrammarTypeArguments(node, node.typeArguments);\n const signature = getResolvedSignature(\n node,\n /*candidatesOutArray*/\n void 0,\n checkMode\n );\n if (signature === resolvingSignature) {\n return silentNeverType;\n }\n checkDeprecatedSignature(signature, node);\n if (node.expression.kind === 108 /* SuperKeyword */) {\n return voidType;\n }\n if (node.kind === 215 /* NewExpression */) {\n const declaration = signature.declaration;\n if (declaration && declaration.kind !== 177 /* Constructor */ && declaration.kind !== 181 /* ConstructSignature */ && declaration.kind !== 186 /* ConstructorType */ && !(isJSDocSignature(declaration) && ((_b = (_a = getJSDocRoot(declaration)) == null ? void 0 : _a.parent) == null ? void 0 : _b.kind) === 177 /* Constructor */) && !isJSDocConstructSignature(declaration) && !isJSConstructor(declaration)) {\n if (noImplicitAny) {\n error2(node, Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type);\n }\n return anyType;\n }\n }\n if (isInJSFile(node) && isCommonJsRequire(node)) {\n return resolveExternalModuleTypeByLiteral(node.arguments[0]);\n }\n const returnType = getReturnTypeOfSignature(signature);\n if (returnType.flags & 12288 /* ESSymbolLike */ && isSymbolOrSymbolForCall(node)) {\n return getESSymbolLikeTypeForNode(walkUpParenthesizedExpressions(node.parent));\n }\n if (node.kind === 214 /* CallExpression */ && !node.questionDotToken && node.parent.kind === 245 /* ExpressionStatement */ && returnType.flags & 16384 /* Void */ && getTypePredicateOfSignature(signature)) {\n if (!isDottedName(node.expression)) {\n error2(node.expression, Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);\n } else if (!getEffectsSignature(node)) {\n const diagnostic = error2(node.expression, Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);\n getTypeOfDottedName(node.expression, diagnostic);\n }\n }\n if (isInJSFile(node)) {\n const jsSymbol = getSymbolOfExpando(\n node,\n /*allowDeclaration*/\n false\n );\n if ((_c = jsSymbol == null ? void 0 : jsSymbol.exports) == null ? void 0 : _c.size) {\n const jsAssignmentType = createAnonymousType(jsSymbol, jsSymbol.exports, emptyArray, emptyArray, emptyArray);\n jsAssignmentType.objectFlags |= 4096 /* JSLiteral */;\n return getIntersectionType([returnType, jsAssignmentType]);\n }\n }\n return returnType;\n }\n function checkDeprecatedSignature(signature, node) {\n if (signature.flags & 128 /* IsSignatureCandidateForOverloadFailure */) return;\n if (signature.declaration && signature.declaration.flags & 536870912 /* Deprecated */) {\n const suggestionNode = getDeprecatedSuggestionNode(node);\n const name = tryGetPropertyAccessOrIdentifierToString(getInvokedExpression(node));\n addDeprecatedSuggestionWithSignature(suggestionNode, signature.declaration, name, signatureToString(signature));\n }\n }\n function getDeprecatedSuggestionNode(node) {\n node = skipParentheses(node);\n switch (node.kind) {\n case 214 /* CallExpression */:\n case 171 /* Decorator */:\n case 215 /* NewExpression */:\n return getDeprecatedSuggestionNode(node.expression);\n case 216 /* TaggedTemplateExpression */:\n return getDeprecatedSuggestionNode(node.tag);\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n return getDeprecatedSuggestionNode(node.tagName);\n case 213 /* ElementAccessExpression */:\n return node.argumentExpression;\n case 212 /* PropertyAccessExpression */:\n return node.name;\n case 184 /* TypeReference */:\n const typeReference = node;\n return isQualifiedName(typeReference.typeName) ? typeReference.typeName.right : typeReference;\n default:\n return node;\n }\n }\n function isSymbolOrSymbolForCall(node) {\n if (!isCallExpression(node)) return false;\n let left = node.expression;\n if (isPropertyAccessExpression(left) && left.name.escapedText === \"for\") {\n left = left.expression;\n }\n if (!isIdentifier(left) || left.escapedText !== \"Symbol\") {\n return false;\n }\n const globalESSymbol = getGlobalESSymbolConstructorSymbol(\n /*reportErrors*/\n false\n );\n if (!globalESSymbol) {\n return false;\n }\n return globalESSymbol === resolveName(\n left,\n \"Symbol\",\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n }\n function checkImportCallExpression(node) {\n checkGrammarImportCallExpression(node);\n if (node.arguments.length === 0) {\n return createPromiseReturnType(node, anyType);\n }\n const specifier = node.arguments[0];\n const specifierType = checkExpressionCached(specifier);\n const optionsType = node.arguments.length > 1 ? checkExpressionCached(node.arguments[1]) : void 0;\n for (let i = 2; i < node.arguments.length; ++i) {\n checkExpressionCached(node.arguments[i]);\n }\n if (specifierType.flags & 32768 /* Undefined */ || specifierType.flags & 65536 /* Null */ || !isTypeAssignableTo(specifierType, stringType)) {\n error2(specifier, Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, typeToString(specifierType));\n }\n if (optionsType) {\n const importCallOptionsType = getGlobalImportCallOptionsType(\n /*reportErrors*/\n true\n );\n if (importCallOptionsType !== emptyObjectType) {\n checkTypeAssignableTo(optionsType, getNullableType(importCallOptionsType, 32768 /* Undefined */), node.arguments[1]);\n }\n }\n const moduleSymbol = resolveExternalModuleName(node, specifier);\n if (moduleSymbol) {\n const esModuleSymbol = resolveESModuleSymbol(\n moduleSymbol,\n specifier,\n /*dontResolveAlias*/\n true,\n /*suppressInteropError*/\n false\n );\n if (esModuleSymbol) {\n return createPromiseReturnType(\n node,\n getTypeWithSyntheticDefaultOnly(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier) || getTypeWithSyntheticDefaultImportType(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier)\n );\n }\n }\n return createPromiseReturnType(node, anyType);\n }\n function createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol) {\n const memberTable = createSymbolTable();\n const newSymbol = createSymbol(2097152 /* Alias */, \"default\" /* Default */);\n newSymbol.parent = originalSymbol;\n newSymbol.links.nameType = getStringLiteralType(\"default\");\n newSymbol.links.aliasTarget = resolveSymbol(symbol);\n memberTable.set(\"default\" /* Default */, newSymbol);\n return createAnonymousType(anonymousSymbol, memberTable, emptyArray, emptyArray, emptyArray);\n }\n function getTypeWithSyntheticDefaultOnly(type, symbol, originalSymbol, moduleSpecifier) {\n const hasDefaultOnly = isOnlyImportableAsDefault(moduleSpecifier);\n if (hasDefaultOnly && type && !isErrorType(type)) {\n const synthType = type;\n if (!synthType.defaultOnlyType) {\n const type2 = createDefaultPropertyWrapperForModule(symbol, originalSymbol);\n synthType.defaultOnlyType = type2;\n }\n return synthType.defaultOnlyType;\n }\n return void 0;\n }\n function getTypeWithSyntheticDefaultImportType(type, symbol, originalSymbol, moduleSpecifier) {\n var _a;\n if (allowSyntheticDefaultImports && type && !isErrorType(type)) {\n const synthType = type;\n if (!synthType.syntheticType) {\n const file = (_a = originalSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n const hasSyntheticDefault = canHaveSyntheticDefault(\n file,\n originalSymbol,\n /*dontResolveAlias*/\n false,\n moduleSpecifier\n );\n if (hasSyntheticDefault) {\n const anonymousSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n const defaultContainingObject = createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol);\n anonymousSymbol.links.type = defaultContainingObject;\n synthType.syntheticType = isValidSpreadType(type) ? getSpreadType(\n type,\n defaultContainingObject,\n anonymousSymbol,\n /*objectFlags*/\n 0,\n /*readonly*/\n false\n ) : defaultContainingObject;\n } else {\n synthType.syntheticType = type;\n }\n }\n return synthType.syntheticType;\n }\n return type;\n }\n function isCommonJsRequire(node) {\n if (!isRequireCall(\n node,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n return false;\n }\n if (!isIdentifier(node.expression)) return Debug.fail();\n const resolvedRequire = resolveName(\n node.expression,\n node.expression.escapedText,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (resolvedRequire === requireSymbol) {\n return true;\n }\n if (resolvedRequire.flags & 2097152 /* Alias */) {\n return false;\n }\n const targetDeclarationKind = resolvedRequire.flags & 16 /* Function */ ? 263 /* FunctionDeclaration */ : resolvedRequire.flags & 3 /* Variable */ ? 261 /* VariableDeclaration */ : 0 /* Unknown */;\n if (targetDeclarationKind !== 0 /* Unknown */) {\n const decl = getDeclarationOfKind(resolvedRequire, targetDeclarationKind);\n return !!decl && !!(decl.flags & 33554432 /* Ambient */);\n }\n return false;\n }\n function checkTaggedTemplateExpression(node) {\n if (!checkGrammarTaggedTemplateChain(node)) checkGrammarTypeArguments(node, node.typeArguments);\n if (languageVersion < LanguageFeatureMinimumTarget.TaggedTemplates) {\n checkExternalEmitHelpers(node, 262144 /* MakeTemplateObject */);\n }\n const signature = getResolvedSignature(node);\n checkDeprecatedSignature(signature, node);\n return getReturnTypeOfSignature(signature);\n }\n function checkAssertion(node, checkMode) {\n if (node.kind === 217 /* TypeAssertionExpression */) {\n const file = getSourceFileOfNode(node);\n if (file && fileExtensionIsOneOf(file.fileName, [\".cts\" /* Cts */, \".mts\" /* Mts */])) {\n grammarErrorOnNode(node, Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead);\n }\n if (compilerOptions.erasableSyntaxOnly) {\n const start = skipTrivia(file.text, node.pos);\n const end = node.expression.pos;\n diagnostics.add(createFileDiagnostic(file, start, end - start, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled));\n }\n }\n return checkAssertionWorker(node, checkMode);\n }\n function isValidConstAssertionArgument(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 210 /* ArrayLiteralExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 229 /* TemplateExpression */:\n return true;\n case 218 /* ParenthesizedExpression */:\n return isValidConstAssertionArgument(node.expression);\n case 225 /* PrefixUnaryExpression */:\n const op = node.operator;\n const arg = node.operand;\n return op === 41 /* MinusToken */ && (arg.kind === 9 /* NumericLiteral */ || arg.kind === 10 /* BigIntLiteral */) || op === 40 /* PlusToken */ && arg.kind === 9 /* NumericLiteral */;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n const expr = skipParentheses(node.expression);\n const symbol = isEntityNameExpression(expr) ? resolveEntityName(\n expr,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n ) : void 0;\n return !!(symbol && symbol.flags & 384 /* Enum */);\n }\n return false;\n }\n function checkAssertionWorker(node, checkMode) {\n const { type, expression } = getAssertionTypeAndExpression(node);\n const exprType = checkExpression(expression, checkMode);\n if (isConstTypeReference(type)) {\n if (!isValidConstAssertionArgument(expression)) {\n error2(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);\n }\n return getRegularTypeOfLiteralType(exprType);\n }\n const links = getNodeLinks(node);\n links.assertionExpressionType = exprType;\n checkSourceElement(type);\n checkNodeDeferred(node);\n return getTypeFromTypeNode(type);\n }\n function getAssertionTypeAndExpression(node) {\n let type;\n let expression;\n switch (node.kind) {\n case 235 /* AsExpression */:\n case 217 /* TypeAssertionExpression */:\n type = node.type;\n expression = node.expression;\n break;\n case 218 /* ParenthesizedExpression */:\n type = getJSDocTypeAssertionType(node);\n expression = node.expression;\n break;\n }\n return { type, expression };\n }\n function checkAssertionDeferred(node) {\n const { type } = getAssertionTypeAndExpression(node);\n const errNode = isParenthesizedExpression(node) ? type : node;\n const links = getNodeLinks(node);\n Debug.assertIsDefined(links.assertionExpressionType);\n const exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(links.assertionExpressionType));\n const targetType = getTypeFromTypeNode(type);\n if (!isErrorType(targetType)) {\n addLazyDiagnostic(() => {\n const widenedType = getWidenedType(exprType);\n if (!isTypeComparableTo(targetType, widenedType)) {\n checkTypeComparableTo(exprType, targetType, errNode, Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first);\n }\n });\n }\n }\n function checkNonNullChain(node) {\n const leftType = checkExpression(node.expression);\n const nonOptionalType = getOptionalExpressionType(leftType, node.expression);\n return propagateOptionalTypeMarker(getNonNullableType(nonOptionalType), node, nonOptionalType !== leftType);\n }\n function checkNonNullAssertion(node) {\n return node.flags & 64 /* OptionalChain */ ? checkNonNullChain(node) : getNonNullableType(checkExpression(node.expression));\n }\n function checkExpressionWithTypeArguments(node) {\n checkGrammarExpressionWithTypeArguments(node);\n forEach(node.typeArguments, checkSourceElement);\n if (node.kind === 234 /* ExpressionWithTypeArguments */) {\n const parent2 = walkUpParenthesizedExpressions(node.parent);\n if (parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 104 /* InstanceOfKeyword */ && isNodeDescendantOf(node, parent2.right)) {\n error2(node, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression);\n }\n }\n const exprType = node.kind === 234 /* ExpressionWithTypeArguments */ ? checkExpression(node.expression) : isThisIdentifier(node.exprName) ? checkThisExpression(node.exprName) : checkExpression(node.exprName);\n return getInstantiationExpressionType(exprType, node);\n }\n function getInstantiationExpressionType(exprType, node) {\n const typeArguments = node.typeArguments;\n if (exprType === silentNeverType || isErrorType(exprType) || !some(typeArguments)) {\n return exprType;\n }\n const links = getNodeLinks(node);\n if (!links.instantiationExpressionTypes) {\n links.instantiationExpressionTypes = /* @__PURE__ */ new Map();\n }\n if (links.instantiationExpressionTypes.has(exprType.id)) {\n return links.instantiationExpressionTypes.get(exprType.id);\n }\n let hasSomeApplicableSignature = false;\n let nonApplicableType;\n const result = getInstantiatedType(exprType);\n links.instantiationExpressionTypes.set(exprType.id, result);\n const errorType2 = hasSomeApplicableSignature ? nonApplicableType : exprType;\n if (errorType2) {\n diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, typeToString(errorType2)));\n }\n return result;\n function getInstantiatedType(type) {\n let hasSignatures2 = false;\n let hasApplicableSignature = false;\n const result2 = getInstantiatedTypePart(type);\n hasSomeApplicableSignature || (hasSomeApplicableSignature = hasApplicableSignature);\n if (hasSignatures2 && !hasApplicableSignature) {\n nonApplicableType ?? (nonApplicableType = type);\n }\n return result2;\n function getInstantiatedTypePart(type2) {\n if (type2.flags & 524288 /* Object */) {\n const resolved = resolveStructuredTypeMembers(type2);\n const callSignatures = getInstantiatedSignatures(resolved.callSignatures);\n const constructSignatures = getInstantiatedSignatures(resolved.constructSignatures);\n hasSignatures2 || (hasSignatures2 = resolved.callSignatures.length !== 0 || resolved.constructSignatures.length !== 0);\n hasApplicableSignature || (hasApplicableSignature = callSignatures.length !== 0 || constructSignatures.length !== 0);\n if (callSignatures !== resolved.callSignatures || constructSignatures !== resolved.constructSignatures) {\n const result3 = createAnonymousType(createSymbol(0 /* None */, \"__instantiationExpression\" /* InstantiationExpression */), resolved.members, callSignatures, constructSignatures, resolved.indexInfos);\n result3.objectFlags |= 8388608 /* InstantiationExpressionType */;\n result3.node = node;\n return result3;\n }\n } else if (type2.flags & 58982400 /* InstantiableNonPrimitive */) {\n const constraint = getBaseConstraintOfType(type2);\n if (constraint) {\n const instantiated = getInstantiatedTypePart(constraint);\n if (instantiated !== constraint) {\n return instantiated;\n }\n }\n } else if (type2.flags & 1048576 /* Union */) {\n return mapType(type2, getInstantiatedType);\n } else if (type2.flags & 2097152 /* Intersection */) {\n return getIntersectionType(sameMap(type2.types, getInstantiatedTypePart));\n }\n return type2;\n }\n }\n function getInstantiatedSignatures(signatures) {\n const applicableSignatures = filter(signatures, (sig) => !!sig.typeParameters && hasCorrectTypeArgumentArity(sig, typeArguments));\n return sameMap(applicableSignatures, (sig) => {\n const typeArgumentTypes = checkTypeArguments(\n sig,\n typeArguments,\n /*reportErrors*/\n true\n );\n return typeArgumentTypes ? getSignatureInstantiation(sig, typeArgumentTypes, isInJSFile(sig.declaration)) : sig;\n });\n }\n }\n function checkSatisfiesExpression(node) {\n checkSourceElement(node.type);\n return checkSatisfiesExpressionWorker(node.expression, node.type);\n }\n function checkSatisfiesExpressionWorker(expression, target, checkMode) {\n const exprType = checkExpression(expression, checkMode);\n const targetType = getTypeFromTypeNode(target);\n if (isErrorType(targetType)) {\n return targetType;\n }\n const errorNode = findAncestor(target.parent, (n) => n.kind === 239 /* SatisfiesExpression */ || n.kind === 351 /* JSDocSatisfiesTag */);\n checkTypeAssignableToAndOptionallyElaborate(exprType, targetType, errorNode, expression, Diagnostics.Type_0_does_not_satisfy_the_expected_type_1);\n return exprType;\n }\n function checkMetaProperty(node) {\n checkGrammarMetaProperty(node);\n if (node.keywordToken === 105 /* NewKeyword */) {\n return checkNewTargetMetaProperty(node);\n }\n if (node.keywordToken === 102 /* ImportKeyword */) {\n if (node.name.escapedText === \"defer\") {\n Debug.assert(!isCallExpression(node.parent) || node.parent.expression !== node, \"Trying to get the type of `import.defer` in `import.defer(...)`\");\n return errorType;\n }\n return checkImportMetaProperty(node);\n }\n return Debug.assertNever(node.keywordToken);\n }\n function checkMetaPropertyKeyword(node) {\n switch (node.keywordToken) {\n case 102 /* ImportKeyword */:\n return getGlobalImportMetaExpressionType();\n case 105 /* NewKeyword */:\n const type = checkNewTargetMetaProperty(node);\n return isErrorType(type) ? errorType : createNewTargetExpressionType(type);\n default:\n Debug.assertNever(node.keywordToken);\n }\n }\n function checkNewTargetMetaProperty(node) {\n const container = getNewTargetContainer(node);\n if (!container) {\n error2(node, Diagnostics.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor, \"new.target\");\n return errorType;\n } else if (container.kind === 177 /* Constructor */) {\n const symbol = getSymbolOfDeclaration(container.parent);\n return getTypeOfSymbol(symbol);\n } else {\n const symbol = getSymbolOfDeclaration(container);\n return getTypeOfSymbol(symbol);\n }\n }\n function checkImportMetaProperty(node) {\n if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n if (getSourceFileOfNode(node).impliedNodeFormat !== 99 /* ESNext */) {\n error2(node, Diagnostics.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output);\n }\n } else if (moduleKind < 6 /* ES2020 */ && moduleKind !== 4 /* System */) {\n error2(node, Diagnostics.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext);\n }\n const file = getSourceFileOfNode(node);\n Debug.assert(!!(file.flags & 8388608 /* PossiblyContainsImportMeta */), \"Containing file is missing import meta node flag.\");\n return node.name.escapedText === \"meta\" ? getGlobalImportMetaType() : errorType;\n }\n function getTypeOfParameter(symbol) {\n const declaration = symbol.valueDeclaration;\n return addOptionality(\n getTypeOfSymbol(symbol),\n /*isProperty*/\n false,\n /*isOptional*/\n !!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))\n );\n }\n function getTupleElementLabelFromBindingElement(node, index, elementFlags) {\n switch (node.name.kind) {\n case 80 /* Identifier */: {\n const name = node.name.escapedText;\n if (node.dotDotDotToken) {\n return elementFlags & 12 /* Variable */ ? name : `${name}_${index}`;\n } else {\n return elementFlags & 3 /* Fixed */ ? name : `${name}_n`;\n }\n }\n case 208 /* ArrayBindingPattern */: {\n if (node.dotDotDotToken) {\n const elements = node.name.elements;\n const lastElement = tryCast(lastOrUndefined(elements), isBindingElement);\n const elementCount = elements.length - ((lastElement == null ? void 0 : lastElement.dotDotDotToken) ? 1 : 0);\n if (index < elementCount) {\n const element = elements[index];\n if (isBindingElement(element)) {\n return getTupleElementLabelFromBindingElement(element, index, elementFlags);\n }\n } else if (lastElement == null ? void 0 : lastElement.dotDotDotToken) {\n return getTupleElementLabelFromBindingElement(lastElement, index - elementCount, elementFlags);\n }\n }\n break;\n }\n }\n return `arg_${index}`;\n }\n function getTupleElementLabel(d, index = 0, elementFlags = 3 /* Fixed */, restSymbol) {\n if (!d) {\n const restParameter = tryCast(restSymbol == null ? void 0 : restSymbol.valueDeclaration, isParameter);\n return restParameter ? getTupleElementLabelFromBindingElement(restParameter, index, elementFlags) : `${(restSymbol == null ? void 0 : restSymbol.escapedName) ?? \"arg\"}_${index}`;\n }\n Debug.assert(isIdentifier(d.name));\n return d.name.escapedText;\n }\n function getParameterNameAtPosition(signature, pos, overrideRestType) {\n var _a;\n const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n if (pos < paramCount) {\n return signature.parameters[pos].escapedName;\n }\n const restParameter = signature.parameters[paramCount] || unknownSymbol;\n const restType = overrideRestType || getTypeOfSymbol(restParameter);\n if (isTupleType(restType)) {\n const tupleType = restType.target;\n const index = pos - paramCount;\n const associatedName = (_a = tupleType.labeledElementDeclarations) == null ? void 0 : _a[index];\n const elementFlags = tupleType.elementFlags[index];\n return getTupleElementLabel(associatedName, index, elementFlags, restParameter);\n }\n return restParameter.escapedName;\n }\n function getParameterIdentifierInfoAtPosition(signature, pos) {\n var _a;\n if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 318 /* JSDocFunctionType */) {\n return void 0;\n }\n const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n if (pos < paramCount) {\n const param = signature.parameters[pos];\n const paramIdent = getParameterDeclarationIdentifier(param);\n return paramIdent ? {\n parameter: paramIdent,\n parameterName: param.escapedName,\n isRestParameter: false\n } : void 0;\n }\n const restParameter = signature.parameters[paramCount] || unknownSymbol;\n const restIdent = getParameterDeclarationIdentifier(restParameter);\n if (!restIdent) {\n return void 0;\n }\n const restType = getTypeOfSymbol(restParameter);\n if (isTupleType(restType)) {\n const associatedNames = restType.target.labeledElementDeclarations;\n const index = pos - paramCount;\n const associatedName = associatedNames == null ? void 0 : associatedNames[index];\n const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);\n if (associatedName) {\n Debug.assert(isIdentifier(associatedName.name));\n return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };\n }\n return void 0;\n }\n if (pos === paramCount) {\n return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true };\n }\n return void 0;\n }\n function getParameterDeclarationIdentifier(symbol) {\n return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name) && symbol.valueDeclaration.name;\n }\n function isValidDeclarationForTupleLabel(d) {\n return d.kind === 203 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name);\n }\n function getNameableDeclarationAtPosition(signature, pos) {\n const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n if (pos < paramCount) {\n const decl = signature.parameters[pos].valueDeclaration;\n return decl && isValidDeclarationForTupleLabel(decl) ? decl : void 0;\n }\n const restParameter = signature.parameters[paramCount] || unknownSymbol;\n const restType = getTypeOfSymbol(restParameter);\n if (isTupleType(restType)) {\n const associatedNames = restType.target.labeledElementDeclarations;\n const index = pos - paramCount;\n return associatedNames && associatedNames[index];\n }\n return restParameter.valueDeclaration && isValidDeclarationForTupleLabel(restParameter.valueDeclaration) ? restParameter.valueDeclaration : void 0;\n }\n function getTypeAtPosition(signature, pos) {\n return tryGetTypeAtPosition(signature, pos) || anyType;\n }\n function tryGetTypeAtPosition(signature, pos) {\n const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n if (pos < paramCount) {\n return getTypeOfParameter(signature.parameters[pos]);\n }\n if (signatureHasRestParameter(signature)) {\n const restType = getTypeOfSymbol(signature.parameters[paramCount]);\n const index = pos - paramCount;\n if (!isTupleType(restType) || restType.target.combinedFlags & 12 /* Variable */ || index < restType.target.fixedLength) {\n return getIndexedAccessType(restType, getNumberLiteralType(index));\n }\n }\n return void 0;\n }\n function getRestTypeAtPosition(source, pos, readonly) {\n const parameterCount = getParameterCount(source);\n const minArgumentCount = getMinArgumentCount(source);\n const restType = getEffectiveRestType(source);\n if (restType && pos >= parameterCount - 1) {\n return pos === parameterCount - 1 ? restType : createArrayType(getIndexedAccessType(restType, numberType));\n }\n const types = [];\n const flags = [];\n const names = [];\n for (let i = pos; i < parameterCount; i++) {\n if (!restType || i < parameterCount - 1) {\n types.push(getTypeAtPosition(source, i));\n flags.push(i < minArgumentCount ? 1 /* Required */ : 2 /* Optional */);\n } else {\n types.push(restType);\n flags.push(8 /* Variadic */);\n }\n names.push(getNameableDeclarationAtPosition(source, i));\n }\n return createTupleType(types, flags, readonly, names);\n }\n function getRestOrAnyTypeAtPosition(source, pos) {\n const restType = getRestTypeAtPosition(source, pos);\n const elementType = restType && getElementTypeOfArrayType(restType);\n return elementType && isTypeAny(elementType) ? anyType : restType;\n }\n function getParameterCount(signature) {\n const length2 = signature.parameters.length;\n if (signatureHasRestParameter(signature)) {\n const restType = getTypeOfSymbol(signature.parameters[length2 - 1]);\n if (isTupleType(restType)) {\n return length2 + restType.target.fixedLength - (restType.target.combinedFlags & 12 /* Variable */ ? 0 : 1);\n }\n }\n return length2;\n }\n function getMinArgumentCount(signature, flags) {\n const strongArityForUntypedJS = flags & 1 /* StrongArityForUntypedJS */;\n const voidIsNonOptional = flags & 2 /* VoidIsNonOptional */;\n if (voidIsNonOptional || signature.resolvedMinArgumentCount === void 0) {\n let minArgumentCount;\n if (signatureHasRestParameter(signature)) {\n const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n if (isTupleType(restType)) {\n const firstOptionalIndex = findIndex(restType.target.elementFlags, (f) => !(f & 1 /* Required */));\n const requiredCount = firstOptionalIndex < 0 ? restType.target.fixedLength : firstOptionalIndex;\n if (requiredCount > 0) {\n minArgumentCount = signature.parameters.length - 1 + requiredCount;\n }\n }\n }\n if (minArgumentCount === void 0) {\n if (!strongArityForUntypedJS && signature.flags & 32 /* IsUntypedSignatureInJSFile */) {\n return 0;\n }\n minArgumentCount = signature.minArgumentCount;\n }\n if (voidIsNonOptional) {\n return minArgumentCount;\n }\n for (let i = minArgumentCount - 1; i >= 0; i--) {\n const type = getTypeAtPosition(signature, i);\n if (filterType(type, acceptsVoid).flags & 131072 /* Never */) {\n break;\n }\n minArgumentCount = i;\n }\n signature.resolvedMinArgumentCount = minArgumentCount;\n }\n return signature.resolvedMinArgumentCount;\n }\n function hasEffectiveRestParameter(signature) {\n if (signatureHasRestParameter(signature)) {\n const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n return !isTupleType(restType) || !!(restType.target.combinedFlags & 12 /* Variable */);\n }\n return false;\n }\n function getEffectiveRestType(signature) {\n if (signatureHasRestParameter(signature)) {\n const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n if (!isTupleType(restType)) {\n return isTypeAny(restType) ? anyArrayType : restType;\n }\n if (restType.target.combinedFlags & 12 /* Variable */) {\n return sliceTupleType(restType, restType.target.fixedLength);\n }\n }\n return void 0;\n }\n function getNonArrayRestType(signature) {\n const restType = getEffectiveRestType(signature);\n return restType && !isArrayType(restType) && !isTypeAny(restType) ? restType : void 0;\n }\n function getTypeOfFirstParameterOfSignature(signature) {\n return getTypeOfFirstParameterOfSignatureWithFallback(signature, neverType);\n }\n function getTypeOfFirstParameterOfSignatureWithFallback(signature, fallbackType) {\n return signature.parameters.length > 0 ? getTypeAtPosition(signature, 0) : fallbackType;\n }\n function inferFromAnnotatedParametersAndReturn(signature, context, inferenceContext) {\n const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n for (let i = 0; i < len; i++) {\n const declaration = signature.parameters[i].valueDeclaration;\n const typeNode2 = getEffectiveTypeAnnotationNode(declaration);\n if (typeNode2) {\n const source = addOptionality(\n getTypeFromTypeNode(typeNode2),\n /*isProperty*/\n false,\n isOptionalDeclaration(declaration)\n );\n const target = getTypeAtPosition(context, i);\n inferTypes(inferenceContext.inferences, source, target);\n }\n }\n const typeNode = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);\n if (typeNode) {\n const source = getTypeFromTypeNode(typeNode);\n const target = getReturnTypeOfSignature(context);\n inferTypes(inferenceContext.inferences, source, target);\n }\n }\n function assignContextualParameterTypes(signature, context) {\n if (context.typeParameters) {\n if (!signature.typeParameters) {\n signature.typeParameters = context.typeParameters;\n } else {\n return;\n }\n }\n if (context.thisParameter) {\n const parameter = signature.thisParameter;\n if (!parameter || parameter.valueDeclaration && !parameter.valueDeclaration.type) {\n if (!parameter) {\n signature.thisParameter = createSymbolWithType(\n context.thisParameter,\n /*type*/\n void 0\n );\n }\n assignParameterType(signature.thisParameter, getTypeOfSymbol(context.thisParameter));\n }\n }\n const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n for (let i = 0; i < len; i++) {\n const parameter = signature.parameters[i];\n const declaration = parameter.valueDeclaration;\n if (!getEffectiveTypeAnnotationNode(declaration)) {\n let type = tryGetTypeAtPosition(context, i);\n if (type && declaration.initializer) {\n let initializerType = checkDeclarationInitializer(declaration, 0 /* Normal */);\n if (!isTypeAssignableTo(initializerType, type) && isTypeAssignableTo(type, initializerType = widenTypeInferredFromInitializer(declaration, initializerType))) {\n type = initializerType;\n }\n }\n assignParameterType(parameter, type);\n }\n }\n if (signatureHasRestParameter(signature)) {\n const parameter = last(signature.parameters);\n if (parameter.valueDeclaration ? !getEffectiveTypeAnnotationNode(parameter.valueDeclaration) : !!(getCheckFlags(parameter) & 65536 /* DeferredType */)) {\n const contextualParameterType = getRestTypeAtPosition(context, len);\n assignParameterType(parameter, contextualParameterType);\n }\n }\n }\n function assignNonContextualParameterTypes(signature) {\n if (signature.thisParameter) {\n assignParameterType(signature.thisParameter);\n }\n for (const parameter of signature.parameters) {\n assignParameterType(parameter);\n }\n }\n function assignParameterType(parameter, contextualType) {\n const links = getSymbolLinks(parameter);\n if (!links.type) {\n const declaration = parameter.valueDeclaration;\n links.type = addOptionality(\n contextualType || (declaration ? getWidenedTypeForVariableLikeDeclaration(\n declaration,\n /*reportErrors*/\n true\n ) : getTypeOfSymbol(parameter)),\n /*isProperty*/\n false,\n /*isOptional*/\n !!declaration && !declaration.initializer && isOptionalDeclaration(declaration)\n );\n if (declaration && declaration.name.kind !== 80 /* Identifier */) {\n if (links.type === unknownType) {\n links.type = getTypeFromBindingPattern(declaration.name);\n }\n assignBindingElementTypes(declaration.name, links.type);\n }\n } else if (contextualType) {\n Debug.assertEqual(links.type, contextualType, \"Parameter symbol already has a cached type which differs from newly assigned type\");\n }\n }\n function assignBindingElementTypes(pattern, parentType) {\n for (const element of pattern.elements) {\n if (!isOmittedExpression(element)) {\n const type = getBindingElementTypeFromParentType(\n element,\n parentType,\n /*noTupleBoundsCheck*/\n false\n );\n if (element.name.kind === 80 /* Identifier */) {\n getSymbolLinks(getSymbolOfDeclaration(element)).type = type;\n } else {\n assignBindingElementTypes(element.name, type);\n }\n }\n }\n }\n function createClassDecoratorContextType(classType) {\n return tryCreateTypeReference(getGlobalClassDecoratorContextType(\n /*reportErrors*/\n true\n ), [classType]);\n }\n function createClassMethodDecoratorContextType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassMethodDecoratorContextType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassGetterDecoratorContextType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassGetterDecoratorContextType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassSetterDecoratorContextType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassSetterDecoratorContextType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassAccessorDecoratorContextType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassAccessorDecoratorContextType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassFieldDecoratorContextType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassFieldDecoratorContextType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2) {\n const key = `${isPrivate ? \"p\" : \"P\"}${isStatic2 ? \"s\" : \"S\"}${nameType.id}`;\n let overrideType = decoratorContextOverrideTypeCache.get(key);\n if (!overrideType) {\n const members = createSymbolTable();\n members.set(\"name\", createProperty(\"name\", nameType));\n members.set(\"private\", createProperty(\"private\", isPrivate ? trueType : falseType));\n members.set(\"static\", createProperty(\"static\", isStatic2 ? trueType : falseType));\n overrideType = createAnonymousType(\n /*symbol*/\n void 0,\n members,\n emptyArray,\n emptyArray,\n emptyArray\n );\n decoratorContextOverrideTypeCache.set(key, overrideType);\n }\n return overrideType;\n }\n function createClassMemberDecoratorContextTypeForNode(node, thisType, valueType) {\n const isStatic2 = hasStaticModifier(node);\n const isPrivate = isPrivateIdentifier(node.name);\n const nameType = isPrivate ? getStringLiteralType(idText(node.name)) : getLiteralTypeFromPropertyName(node.name);\n const contextType = isMethodDeclaration(node) ? createClassMethodDecoratorContextType(thisType, valueType) : isGetAccessorDeclaration(node) ? createClassGetterDecoratorContextType(thisType, valueType) : isSetAccessorDeclaration(node) ? createClassSetterDecoratorContextType(thisType, valueType) : isAutoAccessorPropertyDeclaration(node) ? createClassAccessorDecoratorContextType(thisType, valueType) : isPropertyDeclaration(node) ? createClassFieldDecoratorContextType(thisType, valueType) : Debug.failBadSyntaxKind(node);\n const overrideType = getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2);\n return getIntersectionType([contextType, overrideType]);\n }\n function createClassAccessorDecoratorTargetType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassAccessorDecoratorTargetType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassAccessorDecoratorResultType(thisType, valueType) {\n return tryCreateTypeReference(getGlobalClassAccessorDecoratorResultType(\n /*reportErrors*/\n true\n ), [thisType, valueType]);\n }\n function createClassFieldDecoratorInitializerMutatorType(thisType, valueType) {\n const thisParam = createParameter2(\"this\", thisType);\n const valueParam = createParameter2(\"value\", valueType);\n return createFunctionType(\n /*typeParameters*/\n void 0,\n thisParam,\n [valueParam],\n valueType,\n /*typePredicate*/\n void 0,\n 1\n );\n }\n function createESDecoratorCallSignature(targetType, contextType, nonOptionalReturnType) {\n const targetParam = createParameter2(\"target\", targetType);\n const contextParam = createParameter2(\"context\", contextType);\n const returnType = getUnionType([nonOptionalReturnType, voidType]);\n return createCallSignature(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [targetParam, contextParam],\n returnType\n );\n }\n function getESDecoratorCallSignature(decorator) {\n const { parent: parent2 } = decorator;\n const links = getNodeLinks(parent2);\n if (!links.decoratorSignature) {\n links.decoratorSignature = anySignature;\n switch (parent2.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */: {\n const node = parent2;\n const targetType = getTypeOfSymbol(getSymbolOfDeclaration(node));\n const contextType = createClassDecoratorContextType(targetType);\n links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, targetType);\n break;\n }\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */: {\n const node = parent2;\n if (!isClassLike(node.parent)) break;\n const valueType = isMethodDeclaration(node) ? getOrCreateTypeFromSignature(getSignatureFromDeclaration(node)) : getTypeOfNode(node);\n const thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent));\n const targetType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType;\n const contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType);\n const returnType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType;\n links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType);\n break;\n }\n case 173 /* PropertyDeclaration */: {\n const node = parent2;\n if (!isClassLike(node.parent)) break;\n const valueType = getTypeOfNode(node);\n const thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent));\n const targetType = hasAccessorModifier(node) ? createClassAccessorDecoratorTargetType(thisType, valueType) : undefinedType;\n const contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType);\n const returnType = hasAccessorModifier(node) ? createClassAccessorDecoratorResultType(thisType, valueType) : createClassFieldDecoratorInitializerMutatorType(thisType, valueType);\n links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType);\n break;\n }\n }\n }\n return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature;\n }\n function getLegacyDecoratorCallSignature(decorator) {\n const { parent: parent2 } = decorator;\n const links = getNodeLinks(parent2);\n if (!links.decoratorSignature) {\n links.decoratorSignature = anySignature;\n switch (parent2.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */: {\n const node = parent2;\n const targetType = getTypeOfSymbol(getSymbolOfDeclaration(node));\n const targetParam = createParameter2(\"target\", targetType);\n links.decoratorSignature = createCallSignature(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [targetParam],\n getUnionType([targetType, voidType])\n );\n break;\n }\n case 170 /* Parameter */: {\n const node = parent2;\n if (!isConstructorDeclaration(node.parent) && !(isMethodDeclaration(node.parent) || isSetAccessorDeclaration(node.parent) && isClassLike(node.parent.parent))) {\n break;\n }\n if (getThisParameter(node.parent) === node) {\n break;\n }\n const index = getThisParameter(node.parent) ? node.parent.parameters.indexOf(node) - 1 : node.parent.parameters.indexOf(node);\n Debug.assert(index >= 0);\n const targetType = isConstructorDeclaration(node.parent) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent.parent)) : getParentTypeOfClassElement(node.parent);\n const keyType = isConstructorDeclaration(node.parent) ? undefinedType : getClassElementPropertyKeyType(node.parent);\n const indexType = getNumberLiteralType(index);\n const targetParam = createParameter2(\"target\", targetType);\n const keyParam = createParameter2(\"propertyKey\", keyType);\n const indexParam = createParameter2(\"parameterIndex\", indexType);\n links.decoratorSignature = createCallSignature(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [targetParam, keyParam, indexParam],\n voidType\n );\n break;\n }\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 173 /* PropertyDeclaration */: {\n const node = parent2;\n if (!isClassLike(node.parent)) break;\n const targetType = getParentTypeOfClassElement(node);\n const targetParam = createParameter2(\"target\", targetType);\n const keyType = getClassElementPropertyKeyType(node);\n const keyParam = createParameter2(\"propertyKey\", keyType);\n const returnType = isPropertyDeclaration(node) ? voidType : createTypedPropertyDescriptorType(getTypeOfNode(node));\n const hasPropDesc = !isPropertyDeclaration(parent2) || hasAccessorModifier(parent2);\n if (hasPropDesc) {\n const descriptorType = createTypedPropertyDescriptorType(getTypeOfNode(node));\n const descriptorParam = createParameter2(\"descriptor\", descriptorType);\n links.decoratorSignature = createCallSignature(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [targetParam, keyParam, descriptorParam],\n getUnionType([returnType, voidType])\n );\n } else {\n links.decoratorSignature = createCallSignature(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [targetParam, keyParam],\n getUnionType([returnType, voidType])\n );\n }\n break;\n }\n }\n }\n return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature;\n }\n function getDecoratorCallSignature(decorator) {\n return legacyDecorators ? getLegacyDecoratorCallSignature(decorator) : getESDecoratorCallSignature(decorator);\n }\n function createPromiseType(promisedType) {\n const globalPromiseType = getGlobalPromiseType(\n /*reportErrors*/\n true\n );\n if (globalPromiseType !== emptyGenericType) {\n promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType;\n return createTypeReference(globalPromiseType, [promisedType]);\n }\n return unknownType;\n }\n function createPromiseLikeType(promisedType) {\n const globalPromiseLikeType = getGlobalPromiseLikeType(\n /*reportErrors*/\n true\n );\n if (globalPromiseLikeType !== emptyGenericType) {\n promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType;\n return createTypeReference(globalPromiseLikeType, [promisedType]);\n }\n return unknownType;\n }\n function createPromiseReturnType(func, promisedType) {\n const promiseType = createPromiseType(promisedType);\n if (promiseType === unknownType) {\n error2(\n func,\n isImportCall(func) ? Diagnostics.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option\n );\n return errorType;\n } else if (!getGlobalPromiseConstructorSymbol(\n /*reportErrors*/\n true\n )) {\n error2(\n func,\n isImportCall(func) ? Diagnostics.A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option\n );\n }\n return promiseType;\n }\n function createNewTargetExpressionType(targetType) {\n const symbol = createSymbol(0 /* None */, \"NewTargetExpression\");\n const targetPropertySymbol = createSymbol(4 /* Property */, \"target\", 8 /* Readonly */);\n targetPropertySymbol.parent = symbol;\n targetPropertySymbol.links.type = targetType;\n const members = createSymbolTable([targetPropertySymbol]);\n symbol.members = members;\n return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n }\n function getReturnTypeFromBody(func, checkMode) {\n if (!func.body) {\n return errorType;\n }\n const functionFlags = getFunctionFlags(func);\n const isAsync = (functionFlags & 2 /* Async */) !== 0;\n const isGenerator = (functionFlags & 1 /* Generator */) !== 0;\n let returnType;\n let yieldType;\n let nextType;\n let fallbackReturnType = voidType;\n if (func.body.kind !== 242 /* Block */) {\n returnType = checkExpressionCached(func.body, checkMode && checkMode & ~8 /* SkipGenericFunctions */);\n if (isAsync) {\n returnType = unwrapAwaitedType(checkAwaitedType(\n returnType,\n /*withAlias*/\n false,\n /*errorNode*/\n func,\n Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n ));\n }\n } else if (isGenerator) {\n const returnTypes = checkAndAggregateReturnExpressionTypes(func, checkMode);\n if (!returnTypes) {\n fallbackReturnType = neverType;\n } else if (returnTypes.length > 0) {\n returnType = getUnionType(returnTypes, 2 /* Subtype */);\n }\n const { yieldTypes, nextTypes } = checkAndAggregateYieldOperandTypes(func, checkMode);\n yieldType = some(yieldTypes) ? getUnionType(yieldTypes, 2 /* Subtype */) : void 0;\n nextType = some(nextTypes) ? getIntersectionType(nextTypes) : void 0;\n } else {\n const types = checkAndAggregateReturnExpressionTypes(func, checkMode);\n if (!types) {\n return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, neverType) : neverType;\n }\n if (types.length === 0) {\n const contextualReturnType = getContextualReturnType(\n func,\n /*contextFlags*/\n void 0\n );\n const returnType2 = contextualReturnType && (unwrapReturnType(contextualReturnType, functionFlags) || voidType).flags & 32768 /* Undefined */ ? undefinedType : voidType;\n return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, returnType2) : (\n // Async function\n returnType2\n );\n }\n returnType = getUnionType(types, 2 /* Subtype */);\n }\n if (returnType || yieldType || nextType) {\n if (yieldType) reportErrorsFromWidening(func, yieldType, 3 /* GeneratorYield */);\n if (returnType) reportErrorsFromWidening(func, returnType, 1 /* FunctionReturn */);\n if (nextType) reportErrorsFromWidening(func, nextType, 2 /* GeneratorNext */);\n if (returnType && isUnitType(returnType) || yieldType && isUnitType(yieldType) || nextType && isUnitType(nextType)) {\n const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func);\n const contextualType = !contextualSignature ? void 0 : contextualSignature === getSignatureFromDeclaration(func) ? isGenerator ? void 0 : returnType : instantiateContextualType(\n getReturnTypeOfSignature(contextualSignature),\n func,\n /*contextFlags*/\n void 0\n );\n if (isGenerator) {\n yieldType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(yieldType, contextualType, 0 /* Yield */, isAsync);\n returnType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(returnType, contextualType, 1 /* Return */, isAsync);\n nextType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(nextType, contextualType, 2 /* Next */, isAsync);\n } else {\n returnType = getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(returnType, contextualType, isAsync);\n }\n }\n if (yieldType) yieldType = getWidenedType(yieldType);\n if (returnType) returnType = getWidenedType(returnType);\n if (nextType) nextType = getWidenedType(nextType);\n }\n if (isGenerator) {\n return createGeneratorType(\n yieldType || neverType,\n returnType || fallbackReturnType,\n nextType || getContextualIterationType(2 /* Next */, func) || unknownType,\n isAsync\n );\n } else {\n return isAsync ? createPromiseType(returnType || fallbackReturnType) : returnType || fallbackReturnType;\n }\n }\n function createGeneratorType(yieldType, returnType, nextType, isAsyncGenerator) {\n const resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver;\n const globalGeneratorType = resolver.getGlobalGeneratorType(\n /*reportErrors*/\n false\n );\n yieldType = resolver.resolveIterationType(\n yieldType,\n /*errorNode*/\n void 0\n ) || unknownType;\n returnType = resolver.resolveIterationType(\n returnType,\n /*errorNode*/\n void 0\n ) || unknownType;\n if (globalGeneratorType === emptyGenericType) {\n const globalIterableIteratorType = resolver.getGlobalIterableIteratorType(\n /*reportErrors*/\n false\n );\n if (globalIterableIteratorType !== emptyGenericType) {\n return createTypeFromGenericGlobalType(globalIterableIteratorType, [yieldType, returnType, nextType]);\n }\n resolver.getGlobalIterableIteratorType(\n /*reportErrors*/\n true\n );\n return emptyObjectType;\n }\n return createTypeFromGenericGlobalType(globalGeneratorType, [yieldType, returnType, nextType]);\n }\n function checkAndAggregateYieldOperandTypes(func, checkMode) {\n const yieldTypes = [];\n const nextTypes = [];\n const isAsync = (getFunctionFlags(func) & 2 /* Async */) !== 0;\n forEachYieldExpression(func.body, (yieldExpression) => {\n const yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode) : undefinedWideningType;\n pushIfUnique(yieldTypes, getYieldedTypeOfYieldExpression(yieldExpression, yieldExpressionType, anyType, isAsync));\n let nextType;\n if (yieldExpression.asteriskToken) {\n const iterationTypes = getIterationTypesOfIterable(\n yieldExpressionType,\n isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */,\n yieldExpression.expression\n );\n nextType = iterationTypes && iterationTypes.nextType;\n } else {\n nextType = getContextualType2(\n yieldExpression,\n /*contextFlags*/\n void 0\n );\n }\n if (nextType) pushIfUnique(nextTypes, nextType);\n });\n return { yieldTypes, nextTypes };\n }\n function getYieldedTypeOfYieldExpression(node, expressionType, sentType, isAsync) {\n if (expressionType === silentNeverType) {\n return silentNeverType;\n }\n const errorNode = node.expression || node;\n const yieldedType = node.asteriskToken ? checkIteratedTypeOrElementType(isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */, expressionType, sentType, errorNode) : expressionType;\n return !isAsync ? yieldedType : getAwaitedType(\n yieldedType,\n errorNode,\n node.asteriskToken ? Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member : Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n );\n }\n function getNotEqualFactsFromTypeofSwitch(start, end, witnesses) {\n let facts = 0 /* None */;\n for (let i = 0; i < witnesses.length; i++) {\n const witness = i < start || i >= end ? witnesses[i] : void 0;\n facts |= witness !== void 0 ? typeofNEFacts.get(witness) || 32768 /* TypeofNEHostObject */ : 0;\n }\n return facts;\n }\n function isExhaustiveSwitchStatement(node) {\n const links = getNodeLinks(node);\n if (links.isExhaustive === void 0) {\n links.isExhaustive = 0;\n const exhaustive = computeExhaustiveSwitchStatement(node);\n if (links.isExhaustive === 0) {\n links.isExhaustive = exhaustive;\n }\n } else if (links.isExhaustive === 0) {\n links.isExhaustive = false;\n }\n return links.isExhaustive;\n }\n function computeExhaustiveSwitchStatement(node) {\n if (node.expression.kind === 222 /* TypeOfExpression */) {\n const witnesses = getSwitchClauseTypeOfWitnesses(node);\n if (!witnesses) {\n return false;\n }\n const operandConstraint = getBaseConstraintOrType(checkExpressionCached(node.expression.expression));\n const notEqualFacts = getNotEqualFactsFromTypeofSwitch(0, 0, witnesses);\n if (operandConstraint.flags & 3 /* AnyOrUnknown */) {\n return (556800 /* AllTypeofNE */ & notEqualFacts) === 556800 /* AllTypeofNE */;\n }\n return !someType(operandConstraint, (t) => getTypeFacts(t, notEqualFacts) === notEqualFacts);\n }\n const type = getBaseConstraintOrType(checkExpressionCached(node.expression));\n if (!isLiteralType(type)) {\n return false;\n }\n const switchTypes = getSwitchClauseTypes(node);\n if (!switchTypes.length || some(switchTypes, isNeitherUnitTypeNorNever)) {\n return false;\n }\n return eachTypeContainedIn(mapType(type, getRegularTypeOfLiteralType), switchTypes);\n }\n function functionHasImplicitReturn(func) {\n return func.endFlowNode && isReachableFlowNode(func.endFlowNode);\n }\n function checkAndAggregateReturnExpressionTypes(func, checkMode) {\n const functionFlags = getFunctionFlags(func);\n const aggregatedTypes = [];\n let hasReturnWithNoExpression = functionHasImplicitReturn(func);\n let hasReturnOfTypeNever = false;\n forEachReturnStatement(func.body, (returnStatement) => {\n let expr = returnStatement.expression;\n if (expr) {\n expr = skipParentheses(\n expr,\n /*excludeJSDocTypeAssertions*/\n true\n );\n if (functionFlags & 2 /* Async */ && expr.kind === 224 /* AwaitExpression */) {\n expr = skipParentheses(\n expr.expression,\n /*excludeJSDocTypeAssertions*/\n true\n );\n }\n if (expr.kind === 214 /* CallExpression */ && expr.expression.kind === 80 /* Identifier */ && checkExpressionCached(expr.expression).symbol === getMergedSymbol(func.symbol) && (!isFunctionExpressionOrArrowFunction(func.symbol.valueDeclaration) || isConstantReference(expr.expression))) {\n hasReturnOfTypeNever = true;\n return;\n }\n let type = checkExpressionCached(expr, checkMode && checkMode & ~8 /* SkipGenericFunctions */);\n if (functionFlags & 2 /* Async */) {\n type = unwrapAwaitedType(checkAwaitedType(\n type,\n /*withAlias*/\n false,\n func,\n Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n ));\n }\n if (type.flags & 131072 /* Never */) {\n hasReturnOfTypeNever = true;\n }\n pushIfUnique(aggregatedTypes, type);\n } else {\n hasReturnWithNoExpression = true;\n }\n });\n if (aggregatedTypes.length === 0 && !hasReturnWithNoExpression && (hasReturnOfTypeNever || mayReturnNever(func))) {\n return void 0;\n }\n if (strictNullChecks && aggregatedTypes.length && hasReturnWithNoExpression && !(isJSConstructor(func) && aggregatedTypes.some((t) => t.symbol === func.symbol))) {\n pushIfUnique(aggregatedTypes, undefinedType);\n }\n return aggregatedTypes;\n }\n function mayReturnNever(func) {\n switch (func.kind) {\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return true;\n case 175 /* MethodDeclaration */:\n return func.parent.kind === 211 /* ObjectLiteralExpression */;\n default:\n return false;\n }\n }\n function getTypePredicateFromBody(func) {\n switch (func.kind) {\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return void 0;\n }\n const functionFlags = getFunctionFlags(func);\n if (functionFlags !== 0 /* Normal */) return void 0;\n let singleReturn;\n if (func.body && func.body.kind !== 242 /* Block */) {\n singleReturn = func.body;\n } else {\n const bailedEarly = forEachReturnStatement(func.body, (returnStatement) => {\n if (singleReturn || !returnStatement.expression) return true;\n singleReturn = returnStatement.expression;\n });\n if (bailedEarly || !singleReturn || functionHasImplicitReturn(func)) return void 0;\n }\n return checkIfExpressionRefinesAnyParameter(func, singleReturn);\n }\n function checkIfExpressionRefinesAnyParameter(func, expr) {\n expr = skipParentheses(\n expr,\n /*excludeJSDocTypeAssertions*/\n true\n );\n const returnType = checkExpressionCached(expr);\n if (!(returnType.flags & 16 /* Boolean */)) return void 0;\n return forEach(func.parameters, (param, i) => {\n const initType = getTypeOfSymbol(param.symbol);\n if (!initType || initType.flags & 16 /* Boolean */ || !isIdentifier(param.name) || isSymbolAssigned(param.symbol) || isRestParameter(param)) {\n return;\n }\n const trueType2 = checkIfExpressionRefinesParameter(func, expr, param, initType);\n if (trueType2) {\n return createTypePredicate(1 /* Identifier */, unescapeLeadingUnderscores(param.name.escapedText), i, trueType2);\n }\n });\n }\n function checkIfExpressionRefinesParameter(func, expr, param, initType) {\n const antecedent = canHaveFlowNode(expr) && expr.flowNode || expr.parent.kind === 254 /* ReturnStatement */ && expr.parent.flowNode || createFlowNode(\n 2 /* Start */,\n /*node*/\n void 0,\n /*antecedent*/\n void 0\n );\n const trueCondition = createFlowNode(32 /* TrueCondition */, expr, antecedent);\n const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);\n if (trueType2 === initType) return void 0;\n const falseCondition = createFlowNode(64 /* FalseCondition */, expr, antecedent);\n const falseSubtype = getReducedType(getFlowTypeOfReference(param.name, initType, trueType2, func, falseCondition));\n return falseSubtype.flags & 131072 /* Never */ ? trueType2 : void 0;\n }\n function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {\n addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);\n return;\n function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics() {\n const functionFlags = getFunctionFlags(func);\n const type = returnType && unwrapReturnType(returnType, functionFlags);\n if (type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */))) {\n return;\n }\n if (func.kind === 174 /* MethodSignature */ || nodeIsMissing(func.body) || func.body.kind !== 242 /* Block */ || !functionHasImplicitReturn(func)) {\n return;\n }\n const hasExplicitReturn = func.flags & 1024 /* HasExplicitReturn */;\n const errorNode = getEffectiveReturnTypeNode(func) || func;\n if (type && type.flags & 131072 /* Never */) {\n error2(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point);\n } else if (type && !hasExplicitReturn) {\n error2(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value);\n } else if (type && strictNullChecks && !isTypeAssignableTo(undefinedType, type)) {\n error2(errorNode, Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);\n } else if (compilerOptions.noImplicitReturns) {\n if (!type) {\n if (!hasExplicitReturn) {\n return;\n }\n const inferredReturnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func));\n if (isUnwrappedReturnTypeUndefinedVoidOrAny(func, inferredReturnType)) {\n return;\n }\n }\n error2(errorNode, Diagnostics.Not_all_code_paths_return_a_value);\n }\n }\n }\n function checkFunctionExpressionOrObjectLiteralMethod(node, checkMode) {\n Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n checkNodeDeferred(node);\n if (isFunctionExpression(node)) {\n checkCollisionsForDeclarationName(node, node.name);\n }\n if (checkMode && checkMode & 4 /* SkipContextSensitive */ && isContextSensitive(node)) {\n if (!getEffectiveReturnTypeNode(node) && !hasContextSensitiveParameters(node)) {\n const contextualSignature = getContextualSignature(node);\n if (contextualSignature && couldContainTypeVariables(getReturnTypeOfSignature(contextualSignature))) {\n const links = getNodeLinks(node);\n if (links.contextFreeType) {\n return links.contextFreeType;\n }\n const returnType = getReturnTypeFromBody(node, checkMode);\n const returnOnlySignature = createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n returnType,\n /*resolvedTypePredicate*/\n void 0,\n 0,\n 64 /* IsNonInferrable */\n );\n const returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], emptyArray, emptyArray);\n returnOnlyType.objectFlags |= 262144 /* NonInferrableType */;\n return links.contextFreeType = returnOnlyType;\n }\n }\n return anyFunctionType;\n }\n const hasGrammarError = checkGrammarFunctionLikeDeclaration(node);\n if (!hasGrammarError && node.kind === 219 /* FunctionExpression */) {\n checkGrammarForGenerator(node);\n }\n contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n return getTypeOfSymbol(getSymbolOfDeclaration(node));\n }\n function contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode) {\n const links = getNodeLinks(node);\n if (!(links.flags & 64 /* ContextChecked */)) {\n const contextualSignature = getContextualSignature(node);\n if (!(links.flags & 64 /* ContextChecked */)) {\n links.flags |= 64 /* ContextChecked */;\n const signature = firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(node)), 0 /* Call */));\n if (!signature) {\n return;\n }\n if (isContextSensitive(node)) {\n if (contextualSignature) {\n const inferenceContext = getInferenceContext(node);\n let instantiatedContextualSignature;\n if (checkMode && checkMode & 2 /* Inferential */) {\n inferFromAnnotatedParametersAndReturn(signature, contextualSignature, inferenceContext);\n const restType = getEffectiveRestType(contextualSignature);\n if (restType && restType.flags & 262144 /* TypeParameter */) {\n instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper);\n }\n }\n instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, inferenceContext.mapper) : contextualSignature);\n assignContextualParameterTypes(signature, instantiatedContextualSignature);\n } else {\n assignNonContextualParameterTypes(signature);\n }\n } else if (contextualSignature && !node.typeParameters && contextualSignature.parameters.length > node.parameters.length) {\n const inferenceContext = getInferenceContext(node);\n if (checkMode && checkMode & 2 /* Inferential */) {\n inferFromAnnotatedParametersAndReturn(signature, contextualSignature, inferenceContext);\n }\n }\n if (contextualSignature && !getReturnTypeFromAnnotation(node) && !signature.resolvedReturnType) {\n const returnType = getReturnTypeFromBody(node, checkMode);\n if (!signature.resolvedReturnType) {\n signature.resolvedReturnType = returnType;\n }\n }\n checkSignatureDeclaration(node);\n }\n }\n }\n function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) {\n Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n const functionFlags = getFunctionFlags(node);\n const returnType = getReturnTypeFromAnnotation(node);\n checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType);\n if (node.body) {\n if (!getEffectiveReturnTypeNode(node)) {\n getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n }\n if (node.body.kind === 242 /* Block */) {\n checkSourceElement(node.body);\n } else {\n const exprType = checkExpression(node.body);\n const returnOrPromisedType = returnType && unwrapReturnType(returnType, functionFlags);\n if (returnOrPromisedType) {\n checkReturnExpression(node, returnOrPromisedType, node.body, node.body, exprType);\n }\n }\n }\n }\n function checkArithmeticOperandType(operand, type, diagnostic, isAwaitValid = false) {\n if (!isTypeAssignableTo(type, numberOrBigIntType)) {\n const awaitedType = isAwaitValid && getAwaitedTypeOfPromise(type);\n errorAndMaybeSuggestAwait(\n operand,\n !!awaitedType && isTypeAssignableTo(awaitedType, numberOrBigIntType),\n diagnostic\n );\n return false;\n }\n return true;\n }\n function isReadonlyAssignmentDeclaration(d) {\n if (!isCallExpression(d)) {\n return false;\n }\n if (!isBindableObjectDefinePropertyCall(d)) {\n return false;\n }\n const objectLitType = checkExpressionCached(d.arguments[2]);\n const valueType = getTypeOfPropertyOfType(objectLitType, \"value\");\n if (valueType) {\n const writableProp = getPropertyOfType(objectLitType, \"writable\");\n const writableType = writableProp && getTypeOfSymbol(writableProp);\n if (!writableType || writableType === falseType || writableType === regularFalseType) {\n return true;\n }\n if (writableProp && writableProp.valueDeclaration && isPropertyAssignment(writableProp.valueDeclaration)) {\n const initializer = writableProp.valueDeclaration.initializer;\n const rawOriginalType = checkExpression(initializer);\n if (rawOriginalType === falseType || rawOriginalType === regularFalseType) {\n return true;\n }\n }\n return false;\n }\n const setProp = getPropertyOfType(objectLitType, \"set\");\n return !setProp;\n }\n function isReadonlySymbol(symbol) {\n return !!(getCheckFlags(symbol) & 8 /* Readonly */ || symbol.flags & 4 /* Property */ && getDeclarationModifierFlagsFromSymbol(symbol) & 8 /* Readonly */ || symbol.flags & 3 /* Variable */ && getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */ || symbol.flags & 98304 /* Accessor */ && !(symbol.flags & 65536 /* SetAccessor */) || symbol.flags & 8 /* EnumMember */ || some(symbol.declarations, isReadonlyAssignmentDeclaration));\n }\n function isAssignmentToReadonlyEntity(expr, symbol, assignmentKind) {\n var _a, _b;\n if (assignmentKind === 0 /* None */) {\n return false;\n }\n if (isReadonlySymbol(symbol)) {\n if (symbol.flags & 4 /* Property */ && isAccessExpression(expr) && expr.expression.kind === 110 /* ThisKeyword */) {\n const ctor = getControlFlowContainer(expr);\n if (!(ctor && (ctor.kind === 177 /* Constructor */ || isJSConstructor(ctor)))) {\n return true;\n }\n if (symbol.valueDeclaration) {\n const isAssignmentDeclaration2 = isBinaryExpression(symbol.valueDeclaration);\n const isLocalPropertyDeclaration = ctor.parent === symbol.valueDeclaration.parent;\n const isLocalParameterProperty = ctor === symbol.valueDeclaration.parent;\n const isLocalThisPropertyAssignment = isAssignmentDeclaration2 && ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) === ctor.parent;\n const isLocalThisPropertyAssignmentConstructorFunction = isAssignmentDeclaration2 && ((_b = symbol.parent) == null ? void 0 : _b.valueDeclaration) === ctor;\n const isWriteableSymbol = isLocalPropertyDeclaration || isLocalParameterProperty || isLocalThisPropertyAssignment || isLocalThisPropertyAssignmentConstructorFunction;\n return !isWriteableSymbol;\n }\n }\n return true;\n }\n if (isAccessExpression(expr)) {\n const node = skipParentheses(expr.expression);\n if (node.kind === 80 /* Identifier */) {\n const symbol2 = getNodeLinks(node).resolvedSymbol;\n if (symbol2.flags & 2097152 /* Alias */) {\n const declaration = getDeclarationOfAliasSymbol(symbol2);\n return !!declaration && declaration.kind === 275 /* NamespaceImport */;\n }\n }\n }\n return false;\n }\n function checkReferenceExpression(expr, invalidReferenceMessage, invalidOptionalChainMessage) {\n const node = skipOuterExpressions(expr, 38 /* Assertions */ | 1 /* Parentheses */);\n if (node.kind !== 80 /* Identifier */ && !isAccessExpression(node)) {\n error2(expr, invalidReferenceMessage);\n return false;\n }\n if (node.flags & 64 /* OptionalChain */) {\n error2(expr, invalidOptionalChainMessage);\n return false;\n }\n return true;\n }\n function checkDeleteExpression(node) {\n checkExpression(node.expression);\n const expr = skipParentheses(node.expression);\n if (!isAccessExpression(expr)) {\n error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_a_property_reference);\n return booleanType;\n }\n if (isPropertyAccessExpression(expr) && isPrivateIdentifier(expr.name)) {\n error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_identifier);\n }\n const links = getNodeLinks(expr);\n const symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol);\n if (symbol) {\n if (isReadonlySymbol(symbol)) {\n error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);\n } else {\n checkDeleteExpressionMustBeOptional(expr, symbol);\n }\n }\n return booleanType;\n }\n function checkDeleteExpressionMustBeOptional(expr, symbol) {\n const type = getTypeOfSymbol(symbol);\n if (strictNullChecks && !(type.flags & (3 /* AnyOrUnknown */ | 131072 /* Never */)) && !(exactOptionalPropertyTypes ? symbol.flags & 16777216 /* Optional */ : hasTypeFacts(type, 16777216 /* IsUndefined */))) {\n error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_optional);\n }\n }\n function checkTypeOfExpression(node) {\n checkExpression(node.expression);\n return typeofType;\n }\n function checkVoidExpression(node) {\n checkNodeDeferred(node);\n return undefinedWideningType;\n }\n function checkAwaitGrammar(node) {\n let hasError = false;\n const container = getContainingFunctionOrClassStaticBlock(node);\n if (container && isClassStaticBlockDeclaration(container)) {\n const message = isAwaitExpression(node) ? Diagnostics.await_expression_cannot_be_used_inside_a_class_static_block : Diagnostics.await_using_statements_cannot_be_used_inside_a_class_static_block;\n error2(node, message);\n hasError = true;\n } else if (!(node.flags & 65536 /* AwaitContext */)) {\n if (isInTopLevelContext(node)) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n let span;\n if (!isEffectiveExternalModule(sourceFile, compilerOptions)) {\n span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n const message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module : Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module;\n const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message);\n diagnostics.add(diagnostic);\n hasError = true;\n }\n switch (moduleKind) {\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) {\n span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n diagnostics.add(\n createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)\n );\n hasError = true;\n break;\n }\n // fallthrough\n case 7 /* ES2022 */:\n case 99 /* ESNext */:\n case 200 /* Preserve */:\n case 4 /* System */:\n if (languageVersion >= 4 /* ES2017 */) {\n break;\n }\n // fallthrough\n default:\n span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n const message = isAwaitExpression(node) ? Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher : Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher;\n diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message));\n hasError = true;\n break;\n }\n }\n } else {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n const message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules : Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules;\n const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message);\n if (container && container.kind !== 177 /* Constructor */ && (getFunctionFlags(container) & 2 /* Async */) === 0) {\n const relatedInfo = createDiagnosticForNode(container, Diagnostics.Did_you_mean_to_mark_this_function_as_async);\n addRelatedInfo(diagnostic, relatedInfo);\n }\n diagnostics.add(diagnostic);\n hasError = true;\n }\n }\n }\n if (isAwaitExpression(node) && isInParameterInitializerBeforeContainingFunction(node)) {\n error2(node, Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer);\n hasError = true;\n }\n return hasError;\n }\n function checkAwaitExpression(node) {\n addLazyDiagnostic(() => checkAwaitGrammar(node));\n const operandType = checkExpression(node.expression);\n const awaitedType = checkAwaitedType(\n operandType,\n /*withAlias*/\n true,\n node,\n Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n );\n if (awaitedType === operandType && !isErrorType(awaitedType) && !(operandType.flags & 3 /* AnyOrUnknown */)) {\n addErrorOrSuggestion(\n /*isError*/\n false,\n createDiagnosticForNode(node, Diagnostics.await_has_no_effect_on_the_type_of_this_expression)\n );\n }\n return awaitedType;\n }\n function checkPrefixUnaryExpression(node) {\n const operandType = checkExpression(node.operand);\n if (operandType === silentNeverType) {\n return silentNeverType;\n }\n switch (node.operand.kind) {\n case 9 /* NumericLiteral */:\n switch (node.operator) {\n case 41 /* MinusToken */:\n return getFreshTypeOfLiteralType(getNumberLiteralType(-node.operand.text));\n case 40 /* PlusToken */:\n return getFreshTypeOfLiteralType(getNumberLiteralType(+node.operand.text));\n }\n break;\n case 10 /* BigIntLiteral */:\n if (node.operator === 41 /* MinusToken */) {\n return getFreshTypeOfLiteralType(getBigIntLiteralType({\n negative: true,\n base10Value: parsePseudoBigInt(node.operand.text)\n }));\n }\n }\n switch (node.operator) {\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n checkNonNullType(operandType, node.operand);\n if (maybeTypeOfKindConsideringBaseConstraint(operandType, 12288 /* ESSymbolLike */)) {\n error2(node.operand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(node.operator));\n }\n if (node.operator === 40 /* PlusToken */) {\n if (maybeTypeOfKindConsideringBaseConstraint(operandType, 2112 /* BigIntLike */)) {\n error2(node.operand, Diagnostics.Operator_0_cannot_be_applied_to_type_1, tokenToString(node.operator), typeToString(getBaseTypeOfLiteralType(operandType)));\n }\n return numberType;\n }\n return getUnaryResultType(operandType);\n case 54 /* ExclamationToken */:\n checkTruthinessOfType(operandType, node.operand);\n const facts = getTypeFacts(operandType, 4194304 /* Truthy */ | 8388608 /* Falsy */);\n return facts === 4194304 /* Truthy */ ? falseType : facts === 8388608 /* Falsy */ ? trueType : booleanType;\n case 46 /* PlusPlusToken */:\n case 47 /* MinusMinusToken */:\n const ok = checkArithmeticOperandType(node.operand, checkNonNullType(operandType, node.operand), Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);\n if (ok) {\n checkReferenceExpression(\n node.operand,\n Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,\n Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access\n );\n }\n return getUnaryResultType(operandType);\n }\n return errorType;\n }\n function checkPostfixUnaryExpression(node) {\n const operandType = checkExpression(node.operand);\n if (operandType === silentNeverType) {\n return silentNeverType;\n }\n const ok = checkArithmeticOperandType(\n node.operand,\n checkNonNullType(operandType, node.operand),\n Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type\n );\n if (ok) {\n checkReferenceExpression(\n node.operand,\n Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,\n Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access\n );\n }\n return getUnaryResultType(operandType);\n }\n function getUnaryResultType(operandType) {\n if (maybeTypeOfKind(operandType, 2112 /* BigIntLike */)) {\n return isTypeAssignableToKind(operandType, 3 /* AnyOrUnknown */) || maybeTypeOfKind(operandType, 296 /* NumberLike */) ? numberOrBigIntType : bigintType;\n }\n return numberType;\n }\n function maybeTypeOfKindConsideringBaseConstraint(type, kind) {\n if (maybeTypeOfKind(type, kind)) {\n return true;\n }\n const baseConstraint = getBaseConstraintOrType(type);\n return !!baseConstraint && maybeTypeOfKind(baseConstraint, kind);\n }\n function maybeTypeOfKind(type, kind) {\n if (type.flags & kind) {\n return true;\n }\n if (type.flags & 3145728 /* UnionOrIntersection */) {\n const types = type.types;\n for (const t of types) {\n if (maybeTypeOfKind(t, kind)) {\n return true;\n }\n }\n }\n return false;\n }\n function isTypeAssignableToKind(source, kind, strict) {\n if (source.flags & kind) {\n return true;\n }\n if (strict && source.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */)) {\n return false;\n }\n return !!(kind & 296 /* NumberLike */) && isTypeAssignableTo(source, numberType) || !!(kind & 2112 /* BigIntLike */) && isTypeAssignableTo(source, bigintType) || !!(kind & 402653316 /* StringLike */) && isTypeAssignableTo(source, stringType) || !!(kind & 528 /* BooleanLike */) && isTypeAssignableTo(source, booleanType) || !!(kind & 16384 /* Void */) && isTypeAssignableTo(source, voidType) || !!(kind & 131072 /* Never */) && isTypeAssignableTo(source, neverType) || !!(kind & 65536 /* Null */) && isTypeAssignableTo(source, nullType) || !!(kind & 32768 /* Undefined */) && isTypeAssignableTo(source, undefinedType) || !!(kind & 4096 /* ESSymbol */) && isTypeAssignableTo(source, esSymbolType) || !!(kind & 67108864 /* NonPrimitive */) && isTypeAssignableTo(source, nonPrimitiveType);\n }\n function allTypesAssignableToKind(source, kind, strict) {\n return source.flags & 1048576 /* Union */ ? every(source.types, (subType) => allTypesAssignableToKind(subType, kind, strict)) : isTypeAssignableToKind(source, kind, strict);\n }\n function isConstEnumObjectType(type) {\n return !!(getObjectFlags(type) & 16 /* Anonymous */) && !!type.symbol && isConstEnumSymbol(type.symbol);\n }\n function isConstEnumSymbol(symbol) {\n return (symbol.flags & 128 /* ConstEnum */) !== 0;\n }\n function getSymbolHasInstanceMethodOfObjectType(type) {\n const hasInstancePropertyName = getPropertyNameForKnownSymbolName(\"hasInstance\");\n if (allTypesAssignableToKind(type, 67108864 /* NonPrimitive */)) {\n const hasInstanceProperty = getPropertyOfType(type, hasInstancePropertyName);\n if (hasInstanceProperty) {\n const hasInstancePropertyType = getTypeOfSymbol(hasInstanceProperty);\n if (hasInstancePropertyType && getSignaturesOfType(hasInstancePropertyType, 0 /* Call */).length !== 0) {\n return hasInstancePropertyType;\n }\n }\n }\n }\n function checkInstanceOfExpression(left, right, leftType, rightType, checkMode) {\n if (leftType === silentNeverType || rightType === silentNeverType) {\n return silentNeverType;\n }\n if (!isTypeAny(leftType) && allTypesAssignableToKind(leftType, 402784252 /* Primitive */)) {\n error2(left, Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter);\n }\n Debug.assert(isInstanceOfExpression(left.parent));\n const signature = getResolvedSignature(\n left.parent,\n /*candidatesOutArray*/\n void 0,\n checkMode\n );\n if (signature === resolvingSignature) {\n return silentNeverType;\n }\n const returnType = getReturnTypeOfSignature(signature);\n checkTypeAssignableTo(returnType, booleanType, right, Diagnostics.An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression);\n return booleanType;\n }\n function hasEmptyObjectIntersection(type) {\n return someType(type, (t) => t === unknownEmptyObjectType || !!(t.flags & 2097152 /* Intersection */) && isEmptyAnonymousObjectType(getBaseConstraintOrType(t)));\n }\n function checkInExpression(left, right, leftType, rightType) {\n if (leftType === silentNeverType || rightType === silentNeverType) {\n return silentNeverType;\n }\n if (isPrivateIdentifier(left)) {\n if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n checkExternalEmitHelpers(left, 2097152 /* ClassPrivateFieldIn */);\n }\n if (!getNodeLinks(left).resolvedSymbol && getContainingClass(left)) {\n const isUncheckedJS = isUncheckedJSSuggestion(\n left,\n rightType.symbol,\n /*excludeClasses*/\n true\n );\n reportNonexistentProperty(left, rightType, isUncheckedJS);\n }\n } else {\n checkTypeAssignableTo(checkNonNullType(leftType, left), stringNumberSymbolType, left);\n }\n if (checkTypeAssignableTo(checkNonNullType(rightType, right), nonPrimitiveType, right)) {\n if (hasEmptyObjectIntersection(rightType)) {\n error2(right, Diagnostics.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator, typeToString(rightType));\n }\n }\n return booleanType;\n }\n function checkObjectLiteralAssignment(node, sourceType, rightIsThis) {\n const properties = node.properties;\n if (strictNullChecks && properties.length === 0) {\n return checkNonNullType(sourceType, node);\n }\n for (let i = 0; i < properties.length; i++) {\n checkObjectLiteralDestructuringPropertyAssignment(node, sourceType, i, properties, rightIsThis);\n }\n return sourceType;\n }\n function checkObjectLiteralDestructuringPropertyAssignment(node, objectLiteralType, propertyIndex, allProperties, rightIsThis = false) {\n const properties = node.properties;\n const property = properties[propertyIndex];\n if (property.kind === 304 /* PropertyAssignment */ || property.kind === 305 /* ShorthandPropertyAssignment */) {\n const name = property.name;\n const exprType = getLiteralTypeFromPropertyName(name);\n if (isTypeUsableAsPropertyName(exprType)) {\n const text = getPropertyNameFromType(exprType);\n const prop = getPropertyOfType(objectLiteralType, text);\n if (prop) {\n markPropertyAsReferenced(prop, property, rightIsThis);\n checkPropertyAccessibility(\n property,\n /*isSuper*/\n false,\n /*writing*/\n true,\n objectLiteralType,\n prop\n );\n }\n }\n const elementType = getIndexedAccessType(objectLiteralType, exprType, 32 /* ExpressionPosition */ | (hasDefaultValue(property) ? 16 /* AllowMissing */ : 0), name);\n const type = getFlowTypeOfDestructuring(property, elementType);\n return checkDestructuringAssignment(property.kind === 305 /* ShorthandPropertyAssignment */ ? property : property.initializer, type);\n } else if (property.kind === 306 /* SpreadAssignment */) {\n if (propertyIndex < properties.length - 1) {\n error2(property, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n } else {\n if (languageVersion < LanguageFeatureMinimumTarget.ObjectSpreadRest) {\n checkExternalEmitHelpers(property, 4 /* Rest */);\n }\n const nonRestNames = [];\n if (allProperties) {\n for (const otherProperty of allProperties) {\n if (!isSpreadAssignment(otherProperty)) {\n nonRestNames.push(otherProperty.name);\n }\n }\n }\n const type = getRestType(objectLiteralType, nonRestNames, objectLiteralType.symbol);\n checkGrammarForDisallowedTrailingComma(allProperties, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n return checkDestructuringAssignment(property.expression, type);\n }\n } else {\n error2(property, Diagnostics.Property_assignment_expected);\n }\n }\n function checkArrayLiteralAssignment(node, sourceType, checkMode) {\n const elements = node.elements;\n if (languageVersion < LanguageFeatureMinimumTarget.DestructuringAssignment && compilerOptions.downlevelIteration) {\n checkExternalEmitHelpers(node, 512 /* Read */);\n }\n const possiblyOutOfBoundsType = checkIteratedTypeOrElementType(65 /* Destructuring */ | 128 /* PossiblyOutOfBounds */, sourceType, undefinedType, node) || errorType;\n let inBoundsType = compilerOptions.noUncheckedIndexedAccess ? void 0 : possiblyOutOfBoundsType;\n for (let i = 0; i < elements.length; i++) {\n let type = possiblyOutOfBoundsType;\n if (node.elements[i].kind === 231 /* SpreadElement */) {\n type = inBoundsType = inBoundsType ?? (checkIteratedTypeOrElementType(65 /* Destructuring */, sourceType, undefinedType, node) || errorType);\n }\n checkArrayLiteralDestructuringElementAssignment(node, sourceType, i, type, checkMode);\n }\n return sourceType;\n }\n function checkArrayLiteralDestructuringElementAssignment(node, sourceType, elementIndex, elementType, checkMode) {\n const elements = node.elements;\n const element = elements[elementIndex];\n if (element.kind !== 233 /* OmittedExpression */) {\n if (element.kind !== 231 /* SpreadElement */) {\n const indexType = getNumberLiteralType(elementIndex);\n if (isArrayLikeType(sourceType)) {\n const accessFlags = 32 /* ExpressionPosition */ | (hasDefaultValue(element) ? 16 /* AllowMissing */ : 0);\n const elementType2 = getIndexedAccessTypeOrUndefined(sourceType, indexType, accessFlags, createSyntheticExpression(element, indexType)) || errorType;\n const assignedType = hasDefaultValue(element) ? getTypeWithFacts(elementType2, 524288 /* NEUndefined */) : elementType2;\n const type = getFlowTypeOfDestructuring(element, assignedType);\n return checkDestructuringAssignment(element, type, checkMode);\n }\n return checkDestructuringAssignment(element, elementType, checkMode);\n }\n if (elementIndex < elements.length - 1) {\n error2(element, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n } else {\n const restExpression = element.expression;\n if (restExpression.kind === 227 /* BinaryExpression */ && restExpression.operatorToken.kind === 64 /* EqualsToken */) {\n error2(restExpression.operatorToken, Diagnostics.A_rest_element_cannot_have_an_initializer);\n } else {\n checkGrammarForDisallowedTrailingComma(node.elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n const type = everyType(sourceType, isTupleType) ? mapType(sourceType, (t) => sliceTupleType(t, elementIndex)) : createArrayType(elementType);\n return checkDestructuringAssignment(restExpression, type, checkMode);\n }\n }\n }\n return void 0;\n }\n function checkDestructuringAssignment(exprOrAssignment, sourceType, checkMode, rightIsThis) {\n let target;\n if (exprOrAssignment.kind === 305 /* ShorthandPropertyAssignment */) {\n const prop = exprOrAssignment;\n if (prop.objectAssignmentInitializer) {\n if (strictNullChecks && !hasTypeFacts(checkExpression(prop.objectAssignmentInitializer), 16777216 /* IsUndefined */)) {\n sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);\n }\n checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, checkMode);\n }\n target = exprOrAssignment.name;\n } else {\n target = exprOrAssignment;\n }\n if (target.kind === 227 /* BinaryExpression */ && target.operatorToken.kind === 64 /* EqualsToken */) {\n checkBinaryExpression(target, checkMode);\n target = target.left;\n if (strictNullChecks) {\n sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);\n }\n }\n if (target.kind === 211 /* ObjectLiteralExpression */) {\n return checkObjectLiteralAssignment(target, sourceType, rightIsThis);\n }\n if (target.kind === 210 /* ArrayLiteralExpression */) {\n return checkArrayLiteralAssignment(target, sourceType, checkMode);\n }\n return checkReferenceAssignment(target, sourceType, checkMode);\n }\n function checkReferenceAssignment(target, sourceType, checkMode) {\n const targetType = checkExpression(target, checkMode);\n const error3 = target.parent.kind === 306 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access;\n const optionalError = target.parent.kind === 306 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access;\n if (checkReferenceExpression(target, error3, optionalError)) {\n checkTypeAssignableToAndOptionallyElaborate(sourceType, targetType, target, target);\n }\n if (isPrivateIdentifierPropertyAccessExpression(target)) {\n checkExternalEmitHelpers(target.parent, 1048576 /* ClassPrivateFieldSet */);\n }\n return sourceType;\n }\n function isSideEffectFree(node) {\n node = skipParentheses(node);\n switch (node.kind) {\n case 80 /* Identifier */:\n case 11 /* StringLiteral */:\n case 14 /* RegularExpressionLiteral */:\n case 216 /* TaggedTemplateExpression */:\n case 229 /* TemplateExpression */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n case 157 /* UndefinedKeyword */:\n case 219 /* FunctionExpression */:\n case 232 /* ClassExpression */:\n case 220 /* ArrowFunction */:\n case 210 /* ArrayLiteralExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 222 /* TypeOfExpression */:\n case 236 /* NonNullExpression */:\n case 286 /* JsxSelfClosingElement */:\n case 285 /* JsxElement */:\n return true;\n case 228 /* ConditionalExpression */:\n return isSideEffectFree(node.whenTrue) && isSideEffectFree(node.whenFalse);\n case 227 /* BinaryExpression */:\n if (isAssignmentOperator(node.operatorToken.kind)) {\n return false;\n }\n return isSideEffectFree(node.left) && isSideEffectFree(node.right);\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n switch (node.operator) {\n case 54 /* ExclamationToken */:\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n return true;\n }\n return false;\n // Some forms listed here for clarity\n case 223 /* VoidExpression */:\n // Explicit opt-out\n case 217 /* TypeAssertionExpression */:\n // Not SEF, but can produce useful type warnings\n case 235 /* AsExpression */:\n // Not SEF, but can produce useful type warnings\n default:\n return false;\n }\n }\n function isTypeEqualityComparableTo(source, target) {\n return (target.flags & 98304 /* Nullable */) !== 0 || isTypeComparableTo(source, target);\n }\n function createCheckBinaryExpression() {\n const trampoline = createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState);\n return (node, checkMode) => {\n const result = trampoline(node, checkMode);\n Debug.assertIsDefined(result);\n return result;\n };\n function onEnter(node, state, checkMode) {\n if (state) {\n state.stackIndex++;\n state.skip = false;\n setLeftType(\n state,\n /*type*/\n void 0\n );\n setLastResult(\n state,\n /*type*/\n void 0\n );\n } else {\n state = {\n checkMode,\n skip: false,\n stackIndex: 0,\n typeStack: [void 0, void 0]\n };\n }\n if (isInJSFile(node) && getAssignedExpandoInitializer(node)) {\n state.skip = true;\n setLastResult(state, checkExpression(node.right, checkMode));\n return state;\n }\n checkNullishCoalesceOperands(node);\n const operator = node.operatorToken.kind;\n if (operator === 64 /* EqualsToken */ && (node.left.kind === 211 /* ObjectLiteralExpression */ || node.left.kind === 210 /* ArrayLiteralExpression */)) {\n state.skip = true;\n setLastResult(state, checkDestructuringAssignment(node.left, checkExpression(node.right, checkMode), checkMode, node.right.kind === 110 /* ThisKeyword */));\n return state;\n }\n return state;\n }\n function onLeft(left, state, _node) {\n if (!state.skip) {\n return maybeCheckExpression(state, left);\n }\n }\n function onOperator(operatorToken, state, node) {\n if (!state.skip) {\n const leftType = getLastResult(state);\n Debug.assertIsDefined(leftType);\n setLeftType(state, leftType);\n setLastResult(\n state,\n /*type*/\n void 0\n );\n const operator = operatorToken.kind;\n if (isLogicalOrCoalescingBinaryOperator(operator)) {\n let parent2 = node.parent;\n while (parent2.kind === 218 /* ParenthesizedExpression */ || isLogicalOrCoalescingBinaryExpression(parent2)) {\n parent2 = parent2.parent;\n }\n if (operator === 56 /* AmpersandAmpersandToken */ || isIfStatement(parent2)) {\n checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.left, leftType, isIfStatement(parent2) ? parent2.thenStatement : void 0);\n }\n if (isBinaryLogicalOperator(operator)) {\n checkTruthinessOfType(leftType, node.left);\n }\n }\n }\n }\n function onRight(right, state, _node) {\n if (!state.skip) {\n return maybeCheckExpression(state, right);\n }\n }\n function onExit(node, state) {\n let result;\n if (state.skip) {\n result = getLastResult(state);\n } else {\n const leftType = getLeftType(state);\n Debug.assertIsDefined(leftType);\n const rightType = getLastResult(state);\n Debug.assertIsDefined(rightType);\n result = checkBinaryLikeExpressionWorker(node.left, node.operatorToken, node.right, leftType, rightType, state.checkMode, node);\n }\n state.skip = false;\n setLeftType(\n state,\n /*type*/\n void 0\n );\n setLastResult(\n state,\n /*type*/\n void 0\n );\n state.stackIndex--;\n return result;\n }\n function foldState(state, result, _side) {\n setLastResult(state, result);\n return state;\n }\n function maybeCheckExpression(state, node) {\n if (isBinaryExpression(node)) {\n return node;\n }\n setLastResult(state, checkExpression(node, state.checkMode));\n }\n function getLeftType(state) {\n return state.typeStack[state.stackIndex];\n }\n function setLeftType(state, type) {\n state.typeStack[state.stackIndex] = type;\n }\n function getLastResult(state) {\n return state.typeStack[state.stackIndex + 1];\n }\n function setLastResult(state, type) {\n state.typeStack[state.stackIndex + 1] = type;\n }\n }\n function checkNullishCoalesceOperands(node) {\n if (node.operatorToken.kind !== 61 /* QuestionQuestionToken */) {\n return;\n }\n if (isBinaryExpression(node.parent)) {\n const { left, operatorToken } = node.parent;\n if (isBinaryExpression(left) && operatorToken.kind === 57 /* BarBarToken */) {\n grammarErrorOnNode(left, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(61 /* QuestionQuestionToken */), tokenToString(operatorToken.kind));\n }\n } else if (isBinaryExpression(node.left)) {\n const { operatorToken } = node.left;\n if (operatorToken.kind === 57 /* BarBarToken */ || operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n grammarErrorOnNode(node.left, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(operatorToken.kind), tokenToString(61 /* QuestionQuestionToken */));\n }\n } else if (isBinaryExpression(node.right)) {\n const { operatorToken } = node.right;\n if (operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n grammarErrorOnNode(node.right, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(61 /* QuestionQuestionToken */), tokenToString(operatorToken.kind));\n }\n }\n checkNullishCoalesceOperandLeft(node);\n checkNullishCoalesceOperandRight(node);\n }\n function checkNullishCoalesceOperandLeft(node) {\n const leftTarget = skipOuterExpressions(node.left, 63 /* All */);\n const nullishSemantics = getSyntacticNullishnessSemantics(leftTarget);\n if (nullishSemantics !== 3 /* Sometimes */) {\n if (nullishSemantics === 1 /* Always */) {\n error2(leftTarget, Diagnostics.This_expression_is_always_nullish);\n } else {\n error2(leftTarget, Diagnostics.Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish);\n }\n }\n }\n function checkNullishCoalesceOperandRight(node) {\n const rightTarget = skipOuterExpressions(node.right, 63 /* All */);\n const nullishSemantics = getSyntacticNullishnessSemantics(rightTarget);\n if (isNotWithinNullishCoalesceExpression(node)) {\n return;\n }\n if (nullishSemantics === 1 /* Always */) {\n error2(rightTarget, Diagnostics.This_expression_is_always_nullish);\n } else if (nullishSemantics === 2 /* Never */) {\n error2(rightTarget, Diagnostics.This_expression_is_never_nullish);\n }\n }\n function isNotWithinNullishCoalesceExpression(node) {\n return !isBinaryExpression(node.parent) || node.parent.operatorToken.kind !== 61 /* QuestionQuestionToken */;\n }\n function getSyntacticNullishnessSemantics(node) {\n node = skipOuterExpressions(node);\n switch (node.kind) {\n case 224 /* AwaitExpression */:\n case 214 /* CallExpression */:\n case 216 /* TaggedTemplateExpression */:\n case 213 /* ElementAccessExpression */:\n case 237 /* MetaProperty */:\n case 215 /* NewExpression */:\n case 212 /* PropertyAccessExpression */:\n case 230 /* YieldExpression */:\n case 110 /* ThisKeyword */:\n return 3 /* Sometimes */;\n case 227 /* BinaryExpression */:\n switch (node.operatorToken.kind) {\n case 64 /* EqualsToken */:\n case 61 /* QuestionQuestionToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n case 57 /* BarBarToken */:\n case 76 /* BarBarEqualsToken */:\n case 56 /* AmpersandAmpersandToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n return 3 /* Sometimes */;\n case 28 /* CommaToken */:\n return getSyntacticNullishnessSemantics(node.right);\n }\n return 2 /* Never */;\n case 228 /* ConditionalExpression */:\n return getSyntacticNullishnessSemantics(node.whenTrue) | getSyntacticNullishnessSemantics(node.whenFalse);\n case 106 /* NullKeyword */:\n return 1 /* Always */;\n case 80 /* Identifier */:\n if (getResolvedSymbol(node) === undefinedSymbol) {\n return 1 /* Always */;\n }\n return 3 /* Sometimes */;\n }\n return 2 /* Never */;\n }\n function checkBinaryLikeExpression(left, operatorToken, right, checkMode, errorNode) {\n const operator = operatorToken.kind;\n if (operator === 64 /* EqualsToken */ && (left.kind === 211 /* ObjectLiteralExpression */ || left.kind === 210 /* ArrayLiteralExpression */)) {\n return checkDestructuringAssignment(left, checkExpression(right, checkMode), checkMode, right.kind === 110 /* ThisKeyword */);\n }\n let leftType;\n if (isBinaryLogicalOperator(operator)) {\n leftType = checkTruthinessExpression(left, checkMode);\n } else {\n leftType = checkExpression(left, checkMode);\n }\n const rightType = checkExpression(right, checkMode);\n return checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode);\n }\n function checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode) {\n const operator = operatorToken.kind;\n switch (operator) {\n case 42 /* AsteriskToken */:\n case 43 /* AsteriskAsteriskToken */:\n case 67 /* AsteriskEqualsToken */:\n case 68 /* AsteriskAsteriskEqualsToken */:\n case 44 /* SlashToken */:\n case 69 /* SlashEqualsToken */:\n case 45 /* PercentToken */:\n case 70 /* PercentEqualsToken */:\n case 41 /* MinusToken */:\n case 66 /* MinusEqualsToken */:\n case 48 /* LessThanLessThanToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 52 /* BarToken */:\n case 75 /* BarEqualsToken */:\n case 53 /* CaretToken */:\n case 79 /* CaretEqualsToken */:\n case 51 /* AmpersandToken */:\n case 74 /* AmpersandEqualsToken */:\n if (leftType === silentNeverType || rightType === silentNeverType) {\n return silentNeverType;\n }\n leftType = checkNonNullType(leftType, left);\n rightType = checkNonNullType(rightType, right);\n let suggestedOperator;\n if (leftType.flags & 528 /* BooleanLike */ && rightType.flags & 528 /* BooleanLike */ && (suggestedOperator = getSuggestedBooleanOperator(operatorToken.kind)) !== void 0) {\n error2(errorNode || operatorToken, Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, tokenToString(operatorToken.kind), tokenToString(suggestedOperator));\n return numberType;\n } else {\n const leftOk = checkArithmeticOperandType(\n left,\n leftType,\n Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,\n /*isAwaitValid*/\n true\n );\n const rightOk = checkArithmeticOperandType(\n right,\n rightType,\n Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,\n /*isAwaitValid*/\n true\n );\n let resultType2;\n if (isTypeAssignableToKind(leftType, 3 /* AnyOrUnknown */) && isTypeAssignableToKind(rightType, 3 /* AnyOrUnknown */) || // Or, if neither could be bigint, implicit coercion results in a number result\n !(maybeTypeOfKind(leftType, 2112 /* BigIntLike */) || maybeTypeOfKind(rightType, 2112 /* BigIntLike */))) {\n resultType2 = numberType;\n } else if (bothAreBigIntLike(leftType, rightType)) {\n switch (operator) {\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n reportOperatorError();\n break;\n case 43 /* AsteriskAsteriskToken */:\n case 68 /* AsteriskAsteriskEqualsToken */:\n if (languageVersion < 3 /* ES2016 */) {\n error2(errorNode, Diagnostics.Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later);\n }\n }\n resultType2 = bigintType;\n } else {\n reportOperatorError(bothAreBigIntLike);\n resultType2 = errorType;\n }\n if (leftOk && rightOk) {\n checkAssignmentOperator(resultType2);\n switch (operator) {\n case 48 /* LessThanLessThanToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n const rhsEval = evaluate(right);\n if (typeof rhsEval.value === \"number\" && Math.abs(rhsEval.value) >= 32) {\n errorOrSuggestion(\n isEnumMember(walkUpParenthesizedExpressions(right.parent.parent)),\n // elevate from suggestion to error within an enum member\n errorNode || operatorToken,\n Diagnostics.This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2,\n getTextOfNode(left),\n tokenToString(operator),\n rhsEval.value % 32\n );\n }\n break;\n default:\n break;\n }\n }\n return resultType2;\n }\n case 40 /* PlusToken */:\n case 65 /* PlusEqualsToken */:\n if (leftType === silentNeverType || rightType === silentNeverType) {\n return silentNeverType;\n }\n if (!isTypeAssignableToKind(leftType, 402653316 /* StringLike */) && !isTypeAssignableToKind(rightType, 402653316 /* StringLike */)) {\n leftType = checkNonNullType(leftType, left);\n rightType = checkNonNullType(rightType, right);\n }\n let resultType;\n if (isTypeAssignableToKind(\n leftType,\n 296 /* NumberLike */,\n /*strict*/\n true\n ) && isTypeAssignableToKind(\n rightType,\n 296 /* NumberLike */,\n /*strict*/\n true\n )) {\n resultType = numberType;\n } else if (isTypeAssignableToKind(\n leftType,\n 2112 /* BigIntLike */,\n /*strict*/\n true\n ) && isTypeAssignableToKind(\n rightType,\n 2112 /* BigIntLike */,\n /*strict*/\n true\n )) {\n resultType = bigintType;\n } else if (isTypeAssignableToKind(\n leftType,\n 402653316 /* StringLike */,\n /*strict*/\n true\n ) || isTypeAssignableToKind(\n rightType,\n 402653316 /* StringLike */,\n /*strict*/\n true\n )) {\n resultType = stringType;\n } else if (isTypeAny(leftType) || isTypeAny(rightType)) {\n resultType = isErrorType(leftType) || isErrorType(rightType) ? errorType : anyType;\n }\n if (resultType && !checkForDisallowedESSymbolOperand(operator)) {\n return resultType;\n }\n if (!resultType) {\n const closeEnoughKind = 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 3 /* AnyOrUnknown */;\n reportOperatorError(\n (left2, right2) => isTypeAssignableToKind(left2, closeEnoughKind) && isTypeAssignableToKind(right2, closeEnoughKind)\n );\n return anyType;\n }\n if (operator === 65 /* PlusEqualsToken */) {\n checkAssignmentOperator(resultType);\n }\n return resultType;\n case 30 /* LessThanToken */:\n case 32 /* GreaterThanToken */:\n case 33 /* LessThanEqualsToken */:\n case 34 /* GreaterThanEqualsToken */:\n if (checkForDisallowedESSymbolOperand(operator)) {\n leftType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(leftType, left));\n rightType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(rightType, right));\n reportOperatorErrorUnless((left2, right2) => {\n if (isTypeAny(left2) || isTypeAny(right2)) {\n return true;\n }\n const leftAssignableToNumber = isTypeAssignableTo(left2, numberOrBigIntType);\n const rightAssignableToNumber = isTypeAssignableTo(right2, numberOrBigIntType);\n return leftAssignableToNumber && rightAssignableToNumber || !leftAssignableToNumber && !rightAssignableToNumber && areTypesComparable(left2, right2);\n });\n }\n return booleanType;\n case 35 /* EqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n if (!(checkMode && checkMode & 64 /* TypeOnly */)) {\n if ((isLiteralExpressionOfObject(left) || isLiteralExpressionOfObject(right)) && // only report for === and !== in JS, not == or !=\n (!isInJSFile(left) || (operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */))) {\n const eqType = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */;\n error2(errorNode, Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, eqType ? \"false\" : \"true\");\n }\n checkNaNEquality(errorNode, operator, left, right);\n reportOperatorErrorUnless((left2, right2) => isTypeEqualityComparableTo(left2, right2) || isTypeEqualityComparableTo(right2, left2));\n }\n return booleanType;\n case 104 /* InstanceOfKeyword */:\n return checkInstanceOfExpression(left, right, leftType, rightType, checkMode);\n case 103 /* InKeyword */:\n return checkInExpression(left, right, leftType, rightType);\n case 56 /* AmpersandAmpersandToken */:\n case 77 /* AmpersandAmpersandEqualsToken */: {\n const resultType2 = hasTypeFacts(leftType, 4194304 /* Truthy */) ? getUnionType([extractDefinitelyFalsyTypes(strictNullChecks ? leftType : getBaseTypeOfLiteralType(rightType)), rightType]) : leftType;\n if (operator === 77 /* AmpersandAmpersandEqualsToken */) {\n checkAssignmentOperator(rightType);\n }\n return resultType2;\n }\n case 57 /* BarBarToken */:\n case 76 /* BarBarEqualsToken */: {\n const resultType2 = hasTypeFacts(leftType, 8388608 /* Falsy */) ? getUnionType([getNonNullableType(removeDefinitelyFalsyTypes(leftType)), rightType], 2 /* Subtype */) : leftType;\n if (operator === 76 /* BarBarEqualsToken */) {\n checkAssignmentOperator(rightType);\n }\n return resultType2;\n }\n case 61 /* QuestionQuestionToken */:\n case 78 /* QuestionQuestionEqualsToken */: {\n const resultType2 = hasTypeFacts(leftType, 262144 /* EQUndefinedOrNull */) ? getUnionType([getNonNullableType(leftType), rightType], 2 /* Subtype */) : leftType;\n if (operator === 78 /* QuestionQuestionEqualsToken */) {\n checkAssignmentOperator(rightType);\n }\n return resultType2;\n }\n case 64 /* EqualsToken */:\n const declKind = isBinaryExpression(left.parent) ? getAssignmentDeclarationKind(left.parent) : 0 /* None */;\n checkAssignmentDeclaration(declKind, rightType);\n if (isAssignmentDeclaration2(declKind)) {\n if (!(rightType.flags & 524288 /* Object */) || declKind !== 2 /* ModuleExports */ && declKind !== 6 /* Prototype */ && !isEmptyObjectType(rightType) && !isFunctionObjectType(rightType) && !(getObjectFlags(rightType) & 1 /* Class */)) {\n checkAssignmentOperator(rightType);\n }\n return leftType;\n } else {\n checkAssignmentOperator(rightType);\n return rightType;\n }\n case 28 /* CommaToken */:\n if (!compilerOptions.allowUnreachableCode && isSideEffectFree(left) && !isIndirectCall(left.parent)) {\n const sf = getSourceFileOfNode(left);\n const sourceText = sf.text;\n const start = skipTrivia(sourceText, left.pos);\n const isInDiag2657 = sf.parseDiagnostics.some((diag2) => {\n if (diag2.code !== Diagnostics.JSX_expressions_must_have_one_parent_element.code) return false;\n return textSpanContainsPosition(diag2, start);\n });\n if (!isInDiag2657) error2(left, Diagnostics.Left_side_of_comma_operator_is_unused_and_has_no_side_effects);\n }\n return rightType;\n default:\n return Debug.fail();\n }\n function bothAreBigIntLike(left2, right2) {\n return isTypeAssignableToKind(left2, 2112 /* BigIntLike */) && isTypeAssignableToKind(right2, 2112 /* BigIntLike */);\n }\n function checkAssignmentDeclaration(kind, rightType2) {\n if (kind === 2 /* ModuleExports */) {\n for (const prop of getPropertiesOfObjectType(rightType2)) {\n const propType = getTypeOfSymbol(prop);\n if (propType.symbol && propType.symbol.flags & 32 /* Class */) {\n const name = prop.escapedName;\n const symbol = resolveName(\n prop.valueDeclaration,\n name,\n 788968 /* Type */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n if ((symbol == null ? void 0 : symbol.declarations) && symbol.declarations.some(isJSDocTypedefTag)) {\n addDuplicateDeclarationErrorsForSymbols(symbol, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name), prop);\n addDuplicateDeclarationErrorsForSymbols(prop, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name), symbol);\n }\n }\n }\n }\n }\n function isIndirectCall(node) {\n return node.parent.kind === 218 /* ParenthesizedExpression */ && isNumericLiteral(node.left) && node.left.text === \"0\" && (isCallExpression(node.parent.parent) && node.parent.parent.expression === node.parent || node.parent.parent.kind === 216 /* TaggedTemplateExpression */) && // special-case for \"eval\" because it's the only non-access case where an indirect call actually affects behavior.\n (isAccessExpression(node.right) || isIdentifier(node.right) && node.right.escapedText === \"eval\");\n }\n function checkForDisallowedESSymbolOperand(operator2) {\n const offendingSymbolOperand = maybeTypeOfKindConsideringBaseConstraint(leftType, 12288 /* ESSymbolLike */) ? left : maybeTypeOfKindConsideringBaseConstraint(rightType, 12288 /* ESSymbolLike */) ? right : void 0;\n if (offendingSymbolOperand) {\n error2(offendingSymbolOperand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(operator2));\n return false;\n }\n return true;\n }\n function getSuggestedBooleanOperator(operator2) {\n switch (operator2) {\n case 52 /* BarToken */:\n case 75 /* BarEqualsToken */:\n return 57 /* BarBarToken */;\n case 53 /* CaretToken */:\n case 79 /* CaretEqualsToken */:\n return 38 /* ExclamationEqualsEqualsToken */;\n case 51 /* AmpersandToken */:\n case 74 /* AmpersandEqualsToken */:\n return 56 /* AmpersandAmpersandToken */;\n default:\n return void 0;\n }\n }\n function checkAssignmentOperator(valueType) {\n if (isAssignmentOperator(operator)) {\n addLazyDiagnostic(checkAssignmentOperatorWorker);\n }\n function checkAssignmentOperatorWorker() {\n let assigneeType = leftType;\n if (isCompoundAssignment(operatorToken.kind) && left.kind === 212 /* PropertyAccessExpression */) {\n assigneeType = checkPropertyAccessExpression(\n left,\n /*checkMode*/\n void 0,\n /*writeOnly*/\n true\n );\n }\n if (checkReferenceExpression(left, Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)) {\n let headMessage;\n if (exactOptionalPropertyTypes && isPropertyAccessExpression(left) && maybeTypeOfKind(valueType, 32768 /* Undefined */)) {\n const target = getTypeOfPropertyOfType(getTypeOfExpression(left.expression), left.name.escapedText);\n if (isExactOptionalPropertyMismatch(valueType, target)) {\n headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;\n }\n }\n checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);\n }\n }\n }\n function isAssignmentDeclaration2(kind) {\n var _a;\n switch (kind) {\n case 2 /* ModuleExports */:\n return true;\n case 1 /* ExportsProperty */:\n case 5 /* Property */:\n case 6 /* Prototype */:\n case 3 /* PrototypeProperty */:\n case 4 /* ThisProperty */:\n const symbol = getSymbolOfNode(left);\n const init = getAssignedExpandoInitializer(right);\n return !!init && isObjectLiteralExpression(init) && !!((_a = symbol == null ? void 0 : symbol.exports) == null ? void 0 : _a.size);\n default:\n return false;\n }\n }\n function reportOperatorErrorUnless(typesAreCompatible) {\n if (!typesAreCompatible(leftType, rightType)) {\n reportOperatorError(typesAreCompatible);\n return true;\n }\n return false;\n }\n function reportOperatorError(isRelated) {\n let wouldWorkWithAwait = false;\n const errNode = errorNode || operatorToken;\n if (isRelated) {\n const awaitedLeftType = getAwaitedTypeNoAlias(leftType);\n const awaitedRightType = getAwaitedTypeNoAlias(rightType);\n wouldWorkWithAwait = !(awaitedLeftType === leftType && awaitedRightType === rightType) && !!(awaitedLeftType && awaitedRightType) && isRelated(awaitedLeftType, awaitedRightType);\n }\n let effectiveLeft = leftType;\n let effectiveRight = rightType;\n if (!wouldWorkWithAwait && isRelated) {\n [effectiveLeft, effectiveRight] = getBaseTypesIfUnrelated(leftType, rightType, isRelated);\n }\n const [leftStr, rightStr] = getTypeNamesForErrorDisplay(effectiveLeft, effectiveRight);\n if (!tryGiveBetterPrimaryError(errNode, wouldWorkWithAwait, leftStr, rightStr)) {\n errorAndMaybeSuggestAwait(\n errNode,\n wouldWorkWithAwait,\n Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2,\n tokenToString(operatorToken.kind),\n leftStr,\n rightStr\n );\n }\n }\n function tryGiveBetterPrimaryError(errNode, maybeMissingAwait, leftStr, rightStr) {\n switch (operatorToken.kind) {\n case 37 /* EqualsEqualsEqualsToken */:\n case 35 /* EqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n return errorAndMaybeSuggestAwait(\n errNode,\n maybeMissingAwait,\n Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap,\n leftStr,\n rightStr\n );\n default:\n return void 0;\n }\n }\n function checkNaNEquality(errorNode2, operator2, left2, right2) {\n const isLeftNaN = isGlobalNaN(skipParentheses(left2));\n const isRightNaN = isGlobalNaN(skipParentheses(right2));\n if (isLeftNaN || isRightNaN) {\n const err = error2(errorNode2, Diagnostics.This_condition_will_always_return_0, tokenToString(operator2 === 37 /* EqualsEqualsEqualsToken */ || operator2 === 35 /* EqualsEqualsToken */ ? 97 /* FalseKeyword */ : 112 /* TrueKeyword */));\n if (isLeftNaN && isRightNaN) return;\n const operatorString = operator2 === 38 /* ExclamationEqualsEqualsToken */ || operator2 === 36 /* ExclamationEqualsToken */ ? tokenToString(54 /* ExclamationToken */) : \"\";\n const location = isLeftNaN ? right2 : left2;\n const expression = skipParentheses(location);\n addRelatedInfo(err, createDiagnosticForNode(location, Diagnostics.Did_you_mean_0, `${operatorString}Number.isNaN(${isEntityNameExpression(expression) ? entityNameToString(expression) : \"...\"})`));\n }\n }\n function isGlobalNaN(expr) {\n if (isIdentifier(expr) && expr.escapedText === \"NaN\") {\n const globalNaNSymbol = getGlobalNaNSymbol();\n return !!globalNaNSymbol && globalNaNSymbol === getResolvedSymbol(expr);\n }\n return false;\n }\n }\n function getBaseTypesIfUnrelated(leftType, rightType, isRelated) {\n let effectiveLeft = leftType;\n let effectiveRight = rightType;\n const leftBase = getBaseTypeOfLiteralType(leftType);\n const rightBase = getBaseTypeOfLiteralType(rightType);\n if (!isRelated(leftBase, rightBase)) {\n effectiveLeft = leftBase;\n effectiveRight = rightBase;\n }\n return [effectiveLeft, effectiveRight];\n }\n function checkYieldExpression(node) {\n addLazyDiagnostic(checkYieldExpressionGrammar);\n const func = getContainingFunction(node);\n if (!func) return anyType;\n const functionFlags = getFunctionFlags(func);\n if (!(functionFlags & 1 /* Generator */)) {\n return anyType;\n }\n const isAsync = (functionFlags & 2 /* Async */) !== 0;\n if (node.asteriskToken) {\n if (isAsync && languageVersion < LanguageFeatureMinimumTarget.AsyncGenerators) {\n checkExternalEmitHelpers(node, 26624 /* AsyncDelegatorIncludes */);\n }\n if (!isAsync && languageVersion < LanguageFeatureMinimumTarget.Generators && compilerOptions.downlevelIteration) {\n checkExternalEmitHelpers(node, 256 /* Values */);\n }\n }\n let returnType = getReturnTypeFromAnnotation(func);\n if (returnType && returnType.flags & 1048576 /* Union */) {\n returnType = filterType(returnType, (t) => checkGeneratorInstantiationAssignabilityToReturnType(\n t,\n functionFlags,\n /*errorNode*/\n void 0\n ));\n }\n const iterationTypes = returnType && getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsync);\n const signatureYieldType = iterationTypes && iterationTypes.yieldType || anyType;\n const signatureNextType = iterationTypes && iterationTypes.nextType || anyType;\n const yieldExpressionType = node.expression ? checkExpression(node.expression) : undefinedWideningType;\n const yieldedType = getYieldedTypeOfYieldExpression(node, yieldExpressionType, signatureNextType, isAsync);\n if (returnType && yieldedType) {\n checkTypeAssignableToAndOptionallyElaborate(yieldedType, signatureYieldType, node.expression || node, node.expression);\n }\n if (node.asteriskToken) {\n const use = isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */;\n return getIterationTypeOfIterable(use, 1 /* Return */, yieldExpressionType, node.expression) || anyType;\n } else if (returnType) {\n return getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, isAsync) || anyType;\n }\n let type = getContextualIterationType(2 /* Next */, func);\n if (!type) {\n type = anyType;\n addLazyDiagnostic(() => {\n if (noImplicitAny && !expressionResultIsUnused(node)) {\n const contextualType = getContextualType2(\n node,\n /*contextFlags*/\n void 0\n );\n if (!contextualType || isTypeAny(contextualType)) {\n error2(node, Diagnostics.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation);\n }\n }\n });\n }\n return type;\n function checkYieldExpressionGrammar() {\n if (!(node.flags & 16384 /* YieldContext */)) {\n grammarErrorOnFirstToken(node, Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body);\n }\n if (isInParameterInitializerBeforeContainingFunction(node)) {\n error2(node, Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer);\n }\n }\n }\n function checkConditionalExpression(node, checkMode) {\n const type = checkTruthinessExpression(node.condition, checkMode);\n checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.condition, type, node.whenTrue);\n const type1 = checkExpression(node.whenTrue, checkMode);\n const type2 = checkExpression(node.whenFalse, checkMode);\n return getUnionType([type1, type2], 2 /* Subtype */);\n }\n function isTemplateLiteralContext(node) {\n const parent2 = node.parent;\n return isParenthesizedExpression(parent2) && isTemplateLiteralContext(parent2) || isElementAccessExpression(parent2) && parent2.argumentExpression === node;\n }\n function checkTemplateExpression(node) {\n const texts = [node.head.text];\n const types = [];\n for (const span of node.templateSpans) {\n const type = checkExpression(span.expression);\n if (maybeTypeOfKindConsideringBaseConstraint(type, 12288 /* ESSymbolLike */)) {\n error2(span.expression, Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String);\n }\n texts.push(span.literal.text);\n types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);\n }\n const evaluated = node.parent.kind !== 216 /* TaggedTemplateExpression */ && evaluate(node).value;\n if (evaluated) {\n return getFreshTypeOfLiteralType(getStringLiteralType(evaluated));\n }\n if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(\n node,\n /*contextFlags*/\n void 0\n ) || unknownType, isTemplateLiteralContextualType)) {\n return getTemplateLiteralType(texts, types);\n }\n return stringType;\n }\n function isTemplateLiteralContextualType(type) {\n return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));\n }\n function getContextNode2(node) {\n if (isJsxAttributes(node) && !isJsxSelfClosingElement(node.parent)) {\n return node.parent.parent;\n }\n return node;\n }\n function checkExpressionWithContextualType(node, contextualType, inferenceContext, checkMode) {\n const contextNode = getContextNode2(node);\n pushContextualType(\n contextNode,\n contextualType,\n /*isCache*/\n false\n );\n pushInferenceContext(contextNode, inferenceContext);\n const type = checkExpression(node, checkMode | 1 /* Contextual */ | (inferenceContext ? 2 /* Inferential */ : 0));\n if (inferenceContext && inferenceContext.intraExpressionInferenceSites) {\n inferenceContext.intraExpressionInferenceSites = void 0;\n }\n const result = maybeTypeOfKind(type, 2944 /* Literal */) && isLiteralOfContextualType(type, instantiateContextualType(\n contextualType,\n node,\n /*contextFlags*/\n void 0\n )) ? getRegularTypeOfLiteralType(type) : type;\n popInferenceContext();\n popContextualType();\n return result;\n }\n function checkExpressionCached(node, checkMode) {\n if (checkMode) {\n return checkExpression(node, checkMode);\n }\n const links = getNodeLinks(node);\n if (!links.resolvedType) {\n const saveFlowLoopStart = flowLoopStart;\n const saveFlowTypeCache = flowTypeCache;\n flowLoopStart = flowLoopCount;\n flowTypeCache = void 0;\n links.resolvedType = checkExpression(node, checkMode);\n flowTypeCache = saveFlowTypeCache;\n flowLoopStart = saveFlowLoopStart;\n }\n return links.resolvedType;\n }\n function isTypeAssertion(node) {\n node = skipParentheses(\n node,\n /*excludeJSDocTypeAssertions*/\n true\n );\n return node.kind === 217 /* TypeAssertionExpression */ || node.kind === 235 /* AsExpression */ || isJSDocTypeAssertion(node);\n }\n function checkDeclarationInitializer(declaration, checkMode, contextualType) {\n const initializer = getEffectiveInitializer(declaration);\n if (isInJSFile(declaration)) {\n const typeNode = tryGetJSDocSatisfiesTypeNode(declaration);\n if (typeNode) {\n return checkSatisfiesExpressionWorker(initializer, typeNode, checkMode);\n }\n }\n const type = getQuickTypeOfExpression(initializer) || (contextualType ? checkExpressionWithContextualType(\n initializer,\n contextualType,\n /*inferenceContext*/\n void 0,\n checkMode || 0 /* Normal */\n ) : checkExpressionCached(initializer, checkMode));\n if (isParameter(isBindingElement(declaration) ? walkUpBindingElementsAndPatterns(declaration) : declaration)) {\n if (declaration.name.kind === 207 /* ObjectBindingPattern */ && isObjectLiteralType2(type)) {\n return padObjectLiteralType(type, declaration.name);\n }\n if (declaration.name.kind === 208 /* ArrayBindingPattern */ && isTupleType(type)) {\n return padTupleType(type, declaration.name);\n }\n }\n return type;\n }\n function padObjectLiteralType(type, pattern) {\n let missingElements;\n for (const e of pattern.elements) {\n if (e.initializer) {\n const name = getPropertyNameFromBindingElement(e);\n if (name && !getPropertyOfType(type, name)) {\n missingElements = append(missingElements, e);\n }\n }\n }\n if (!missingElements) {\n return type;\n }\n const members = createSymbolTable();\n for (const prop of getPropertiesOfObjectType(type)) {\n members.set(prop.escapedName, prop);\n }\n for (const e of missingElements) {\n const symbol = createSymbol(4 /* Property */ | 16777216 /* Optional */, getPropertyNameFromBindingElement(e));\n symbol.links.type = getTypeFromBindingElement(\n e,\n /*includePatternInType*/\n false,\n /*reportErrors*/\n false\n );\n members.set(symbol.escapedName, symbol);\n }\n const result = createAnonymousType(type.symbol, members, emptyArray, emptyArray, getIndexInfosOfType(type));\n result.objectFlags = type.objectFlags;\n return result;\n }\n function getPropertyNameFromBindingElement(e) {\n const exprType = getLiteralTypeFromPropertyName(e.propertyName || e.name);\n return isTypeUsableAsPropertyName(exprType) ? getPropertyNameFromType(exprType) : void 0;\n }\n function padTupleType(type, pattern) {\n if (type.target.combinedFlags & 12 /* Variable */ || getTypeReferenceArity(type) >= pattern.elements.length) {\n return type;\n }\n const patternElements = pattern.elements;\n const elementTypes = getElementTypes(type).slice();\n const elementFlags = type.target.elementFlags.slice();\n for (let i = getTypeReferenceArity(type); i < patternElements.length; i++) {\n const e = patternElements[i];\n if (i < patternElements.length - 1 || !(e.kind === 209 /* BindingElement */ && e.dotDotDotToken)) {\n elementTypes.push(!isOmittedExpression(e) && hasDefaultValue(e) ? getTypeFromBindingElement(\n e,\n /*includePatternInType*/\n false,\n /*reportErrors*/\n false\n ) : anyType);\n elementFlags.push(2 /* Optional */);\n if (!isOmittedExpression(e) && !hasDefaultValue(e)) {\n reportImplicitAny(e, anyType);\n }\n }\n }\n return createTupleType(elementTypes, elementFlags, type.target.readonly);\n }\n function widenTypeInferredFromInitializer(declaration, type) {\n const widened = getWidenedLiteralTypeForInitializer(declaration, type);\n if (isInJSFile(declaration)) {\n if (isEmptyLiteralType(widened)) {\n reportImplicitAny(declaration, anyType);\n return anyType;\n } else if (isEmptyArrayLiteralType(widened)) {\n reportImplicitAny(declaration, anyArrayType);\n return anyArrayType;\n }\n }\n return widened;\n }\n function getWidenedLiteralTypeForInitializer(declaration, type) {\n return getCombinedNodeFlagsCached(declaration) & 6 /* Constant */ || isDeclarationReadonly(declaration) ? type : getWidenedLiteralType(type);\n }\n function isLiteralOfContextualType(candidateType, contextualType) {\n if (contextualType) {\n if (contextualType.flags & 3145728 /* UnionOrIntersection */) {\n const types = contextualType.types;\n return some(types, (t) => isLiteralOfContextualType(candidateType, t));\n }\n if (contextualType.flags & 58982400 /* InstantiableNonPrimitive */) {\n const constraint = getBaseConstraintOfType(contextualType) || unknownType;\n return maybeTypeOfKind(constraint, 4 /* String */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || maybeTypeOfKind(constraint, 8 /* Number */) && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || maybeTypeOfKind(constraint, 64 /* BigInt */) && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || maybeTypeOfKind(constraint, 4096 /* ESSymbol */) && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */) || isLiteralOfContextualType(candidateType, constraint);\n }\n return !!(contextualType.flags & (128 /* StringLiteral */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || contextualType.flags & 256 /* NumberLiteral */ && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || contextualType.flags & 2048 /* BigIntLiteral */ && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || contextualType.flags & 512 /* BooleanLiteral */ && maybeTypeOfKind(candidateType, 512 /* BooleanLiteral */) || contextualType.flags & 8192 /* UniqueESSymbol */ && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */));\n }\n return false;\n }\n function isConstContext(node) {\n const parent2 = node.parent;\n return isAssertionExpression(parent2) && isConstTypeReference(parent2.type) || isJSDocTypeAssertion(parent2) && isConstTypeReference(getJSDocTypeAssertionType(parent2)) || isValidConstAssertionArgument(node) && isConstTypeVariable(getContextualType2(node, 0 /* None */)) || (isParenthesizedExpression(parent2) || isArrayLiteralExpression(parent2) || isSpreadElement(parent2)) && isConstContext(parent2) || (isPropertyAssignment(parent2) || isShorthandPropertyAssignment(parent2) || isTemplateSpan(parent2)) && isConstContext(parent2.parent);\n }\n function checkExpressionForMutableLocation(node, checkMode, forceTuple) {\n const type = checkExpression(node, checkMode, forceTuple);\n return isConstContext(node) || isCommonJsExportedExpression(node) ? getRegularTypeOfLiteralType(type) : isTypeAssertion(node) ? type : getWidenedLiteralLikeTypeForContextualType(type, instantiateContextualType(\n getContextualType2(\n node,\n /*contextFlags*/\n void 0\n ),\n node,\n /*contextFlags*/\n void 0\n ));\n }\n function checkPropertyAssignment(node, checkMode) {\n if (node.name.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.name);\n }\n return checkExpressionForMutableLocation(node.initializer, checkMode);\n }\n function checkObjectLiteralMethod(node, checkMode) {\n checkGrammarMethod(node);\n if (node.name.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.name);\n }\n const uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode);\n }\n function instantiateTypeWithSingleGenericCallSignature(node, type, checkMode) {\n if (checkMode && checkMode & (2 /* Inferential */ | 8 /* SkipGenericFunctions */)) {\n const callSignature = getSingleSignature(\n type,\n 0 /* Call */,\n /*allowMembers*/\n true\n );\n const constructSignature = getSingleSignature(\n type,\n 1 /* Construct */,\n /*allowMembers*/\n true\n );\n const signature = callSignature || constructSignature;\n if (signature && signature.typeParameters) {\n const contextualType = getApparentTypeOfContextualType(node, 2 /* NoConstraints */);\n if (contextualType) {\n const contextualSignature = getSingleSignature(\n getNonNullableType(contextualType),\n callSignature ? 0 /* Call */ : 1 /* Construct */,\n /*allowMembers*/\n false\n );\n if (contextualSignature && !contextualSignature.typeParameters) {\n if (checkMode & 8 /* SkipGenericFunctions */) {\n skippedGenericFunction(node, checkMode);\n return anyFunctionType;\n }\n const context = getInferenceContext(node);\n const returnType = context.signature && getReturnTypeOfSignature(context.signature);\n const returnSignature = returnType && getSingleCallOrConstructSignature(returnType);\n if (returnSignature && !returnSignature.typeParameters && !every(context.inferences, hasInferenceCandidates)) {\n const uniqueTypeParameters = getUniqueTypeParameters(context, signature.typeParameters);\n const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, uniqueTypeParameters);\n const inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));\n applyToParameterTypes(instantiatedSignature, contextualSignature, (source, target) => {\n inferTypes(\n inferences,\n source,\n target,\n /*priority*/\n 0,\n /*contravariant*/\n true\n );\n });\n if (some(inferences, hasInferenceCandidates)) {\n applyToReturnTypes(instantiatedSignature, contextualSignature, (source, target) => {\n inferTypes(inferences, source, target);\n });\n if (!hasOverlappingInferences(context.inferences, inferences)) {\n mergeInferences(context.inferences, inferences);\n context.inferredTypeParameters = concatenate(context.inferredTypeParameters, uniqueTypeParameters);\n return getOrCreateTypeFromSignature(instantiatedSignature);\n }\n }\n }\n return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, context));\n }\n }\n }\n }\n return type;\n }\n function skippedGenericFunction(node, checkMode) {\n if (checkMode & 2 /* Inferential */) {\n const context = getInferenceContext(node);\n context.flags |= 4 /* SkippedGenericFunction */;\n }\n }\n function hasInferenceCandidates(info) {\n return !!(info.candidates || info.contraCandidates);\n }\n function hasInferenceCandidatesOrDefault(info) {\n return !!(info.candidates || info.contraCandidates || hasTypeParameterDefault(info.typeParameter));\n }\n function hasOverlappingInferences(a, b) {\n for (let i = 0; i < a.length; i++) {\n if (hasInferenceCandidates(a[i]) && hasInferenceCandidates(b[i])) {\n return true;\n }\n }\n return false;\n }\n function mergeInferences(target, source) {\n for (let i = 0; i < target.length; i++) {\n if (!hasInferenceCandidates(target[i]) && hasInferenceCandidates(source[i])) {\n target[i] = source[i];\n }\n }\n }\n function getUniqueTypeParameters(context, typeParameters) {\n const result = [];\n let oldTypeParameters;\n let newTypeParameters;\n for (const tp of typeParameters) {\n const name = tp.symbol.escapedName;\n if (hasTypeParameterByName(context.inferredTypeParameters, name) || hasTypeParameterByName(result, name)) {\n const newName = getUniqueTypeParameterName(concatenate(context.inferredTypeParameters, result), name);\n const symbol = createSymbol(262144 /* TypeParameter */, newName);\n const newTypeParameter = createTypeParameter(symbol);\n newTypeParameter.target = tp;\n oldTypeParameters = append(oldTypeParameters, tp);\n newTypeParameters = append(newTypeParameters, newTypeParameter);\n result.push(newTypeParameter);\n } else {\n result.push(tp);\n }\n }\n if (newTypeParameters) {\n const mapper = createTypeMapper(oldTypeParameters, newTypeParameters);\n for (const tp of newTypeParameters) {\n tp.mapper = mapper;\n }\n }\n return result;\n }\n function hasTypeParameterByName(typeParameters, name) {\n return some(typeParameters, (tp) => tp.symbol.escapedName === name);\n }\n function getUniqueTypeParameterName(typeParameters, baseName) {\n let len = baseName.length;\n while (len > 1 && baseName.charCodeAt(len - 1) >= 48 /* _0 */ && baseName.charCodeAt(len - 1) <= 57 /* _9 */) len--;\n const s = baseName.slice(0, len);\n for (let index = 1; true; index++) {\n const augmentedName = s + index;\n if (!hasTypeParameterByName(typeParameters, augmentedName)) {\n return augmentedName;\n }\n }\n }\n function getReturnTypeOfSingleNonGenericCallSignature(funcType) {\n const signature = getSingleCallSignature(funcType);\n if (signature && !signature.typeParameters) {\n return getReturnTypeOfSignature(signature);\n }\n }\n function getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) {\n const funcType = checkExpression(expr.expression);\n const nonOptionalType = getOptionalExpressionType(funcType, expr.expression);\n const returnType = getReturnTypeOfSingleNonGenericCallSignature(funcType);\n return returnType && propagateOptionalTypeMarker(returnType, expr, nonOptionalType !== funcType);\n }\n function getTypeOfExpression(node) {\n const quickType = getQuickTypeOfExpression(node);\n if (quickType) {\n return quickType;\n }\n if (node.flags & 268435456 /* TypeCached */ && flowTypeCache) {\n const cachedType = flowTypeCache[getNodeId(node)];\n if (cachedType) {\n return cachedType;\n }\n }\n const startInvocationCount = flowInvocationCount;\n const type = checkExpression(node, 64 /* TypeOnly */);\n if (flowInvocationCount !== startInvocationCount) {\n const cache = flowTypeCache || (flowTypeCache = []);\n cache[getNodeId(node)] = type;\n setNodeFlags(node, node.flags | 268435456 /* TypeCached */);\n }\n return type;\n }\n function getQuickTypeOfExpression(node) {\n let expr = skipParentheses(\n node,\n /*excludeJSDocTypeAssertions*/\n true\n );\n if (isJSDocTypeAssertion(expr)) {\n const type = getJSDocTypeAssertionType(expr);\n if (!isConstTypeReference(type)) {\n return getTypeFromTypeNode(type);\n }\n }\n expr = skipParentheses(node);\n if (isAwaitExpression(expr)) {\n const type = getQuickTypeOfExpression(expr.expression);\n return type ? getAwaitedType(type) : void 0;\n }\n if (isCallExpression(expr) && expr.expression.kind !== 108 /* SuperKeyword */ && !isRequireCall(\n expr,\n /*requireStringLiteralLikeArgument*/\n true\n ) && !isSymbolOrSymbolForCall(expr) && !isImportCall(expr)) {\n return isCallChain(expr) ? getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) : getReturnTypeOfSingleNonGenericCallSignature(checkNonNullExpression(expr.expression));\n } else if (isAssertionExpression(expr) && !isConstTypeReference(expr.type)) {\n return getTypeFromTypeNode(expr.type);\n } else if (isLiteralExpression(node) || isBooleanLiteral(node)) {\n return checkExpression(node);\n }\n return void 0;\n }\n function getContextFreeTypeOfExpression(node) {\n const links = getNodeLinks(node);\n if (links.contextFreeType) {\n return links.contextFreeType;\n }\n pushContextualType(\n node,\n anyType,\n /*isCache*/\n false\n );\n const type = links.contextFreeType = checkExpression(node, 4 /* SkipContextSensitive */);\n popContextualType();\n return type;\n }\n function checkExpression(node, checkMode, forceTuple) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkExpression\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n const saveCurrentNode = currentNode;\n currentNode = node;\n instantiationCount = 0;\n const uninstantiatedType = checkExpressionWorker(node, checkMode, forceTuple);\n const type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode);\n if (isConstEnumObjectType(type)) {\n checkConstEnumAccess(node, type);\n }\n currentNode = saveCurrentNode;\n (_b = tracing) == null ? void 0 : _b.pop();\n return type;\n }\n function checkConstEnumAccess(node, type) {\n var _a;\n const ok = node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.expression === node || node.parent.kind === 213 /* ElementAccessExpression */ && node.parent.expression === node || ((node.kind === 80 /* Identifier */ || node.kind === 167 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node) || node.parent.kind === 187 /* TypeQuery */ && node.parent.exprName === node) || node.parent.kind === 282 /* ExportSpecifier */;\n if (!ok) {\n error2(node, Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query);\n }\n if (compilerOptions.isolatedModules || compilerOptions.verbatimModuleSyntax && ok && !resolveName(\n node,\n getFirstIdentifier(node),\n 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false,\n /*excludeGlobals*/\n true\n )) {\n Debug.assert(!!(type.symbol.flags & 128 /* ConstEnum */));\n const constEnumDeclaration = type.symbol.valueDeclaration;\n const redirect = (_a = host.getRedirectFromOutput(getSourceFileOfNode(constEnumDeclaration).resolvedPath)) == null ? void 0 : _a.resolvedRef;\n if (constEnumDeclaration.flags & 33554432 /* Ambient */ && !isValidTypeOnlyAliasUseSite(node) && (!redirect || !shouldPreserveConstEnums(redirect.commandLine.options))) {\n error2(node, Diagnostics.Cannot_access_ambient_const_enums_when_0_is_enabled, isolatedModulesLikeFlagName);\n }\n }\n }\n function checkParenthesizedExpression(node, checkMode) {\n if (hasJSDocNodes(node)) {\n if (isJSDocSatisfiesExpression(node)) {\n return checkSatisfiesExpressionWorker(node.expression, getJSDocSatisfiesExpressionType(node), checkMode);\n }\n if (isJSDocTypeAssertion(node)) {\n return checkAssertionWorker(node, checkMode);\n }\n }\n return checkExpression(node.expression, checkMode);\n }\n function checkExpressionWorker(node, checkMode, forceTuple) {\n const kind = node.kind;\n if (cancellationToken) {\n switch (kind) {\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n cancellationToken.throwIfCancellationRequested();\n }\n }\n switch (kind) {\n case 80 /* Identifier */:\n return checkIdentifier(node, checkMode);\n case 81 /* PrivateIdentifier */:\n return checkPrivateIdentifierExpression(node);\n case 110 /* ThisKeyword */:\n return checkThisExpression(node);\n case 108 /* SuperKeyword */:\n return checkSuperExpression(node);\n case 106 /* NullKeyword */:\n return nullWideningType;\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 11 /* StringLiteral */:\n return hasSkipDirectInferenceFlag(node) ? blockedStringType : getFreshTypeOfLiteralType(getStringLiteralType(node.text));\n case 9 /* NumericLiteral */:\n checkGrammarNumericLiteral(node);\n return getFreshTypeOfLiteralType(getNumberLiteralType(+node.text));\n case 10 /* BigIntLiteral */:\n checkGrammarBigIntLiteral(node);\n return getFreshTypeOfLiteralType(getBigIntLiteralType({\n negative: false,\n base10Value: parsePseudoBigInt(node.text)\n }));\n case 112 /* TrueKeyword */:\n return trueType;\n case 97 /* FalseKeyword */:\n return falseType;\n case 229 /* TemplateExpression */:\n return checkTemplateExpression(node);\n case 14 /* RegularExpressionLiteral */:\n return checkRegularExpressionLiteral(node);\n case 210 /* ArrayLiteralExpression */:\n return checkArrayLiteral(node, checkMode, forceTuple);\n case 211 /* ObjectLiteralExpression */:\n return checkObjectLiteral(node, checkMode);\n case 212 /* PropertyAccessExpression */:\n return checkPropertyAccessExpression(node, checkMode);\n case 167 /* QualifiedName */:\n return checkQualifiedName(node, checkMode);\n case 213 /* ElementAccessExpression */:\n return checkIndexedAccess(node, checkMode);\n case 214 /* CallExpression */:\n if (isImportCall(node)) {\n return checkImportCallExpression(node);\n }\n // falls through\n case 215 /* NewExpression */:\n return checkCallExpression(node, checkMode);\n case 216 /* TaggedTemplateExpression */:\n return checkTaggedTemplateExpression(node);\n case 218 /* ParenthesizedExpression */:\n return checkParenthesizedExpression(node, checkMode);\n case 232 /* ClassExpression */:\n return checkClassExpression(node);\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return checkFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n case 222 /* TypeOfExpression */:\n return checkTypeOfExpression(node);\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n return checkAssertion(node, checkMode);\n case 236 /* NonNullExpression */:\n return checkNonNullAssertion(node);\n case 234 /* ExpressionWithTypeArguments */:\n return checkExpressionWithTypeArguments(node);\n case 239 /* SatisfiesExpression */:\n return checkSatisfiesExpression(node);\n case 237 /* MetaProperty */:\n return checkMetaProperty(node);\n case 221 /* DeleteExpression */:\n return checkDeleteExpression(node);\n case 223 /* VoidExpression */:\n return checkVoidExpression(node);\n case 224 /* AwaitExpression */:\n return checkAwaitExpression(node);\n case 225 /* PrefixUnaryExpression */:\n return checkPrefixUnaryExpression(node);\n case 226 /* PostfixUnaryExpression */:\n return checkPostfixUnaryExpression(node);\n case 227 /* BinaryExpression */:\n return checkBinaryExpression(node, checkMode);\n case 228 /* ConditionalExpression */:\n return checkConditionalExpression(node, checkMode);\n case 231 /* SpreadElement */:\n return checkSpreadExpression(node, checkMode);\n case 233 /* OmittedExpression */:\n return undefinedWideningType;\n case 230 /* YieldExpression */:\n return checkYieldExpression(node);\n case 238 /* SyntheticExpression */:\n return checkSyntheticExpression(node);\n case 295 /* JsxExpression */:\n return checkJsxExpression(node, checkMode);\n case 285 /* JsxElement */:\n return checkJsxElement(node, checkMode);\n case 286 /* JsxSelfClosingElement */:\n return checkJsxSelfClosingElement(node, checkMode);\n case 289 /* JsxFragment */:\n return checkJsxFragment(node);\n case 293 /* JsxAttributes */:\n return checkJsxAttributes(node, checkMode);\n case 287 /* JsxOpeningElement */:\n Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\");\n }\n return errorType;\n }\n function checkTypeParameter(node) {\n checkGrammarModifiers(node);\n if (node.expression) {\n grammarErrorOnFirstToken(node.expression, Diagnostics.Type_expected);\n }\n checkSourceElement(node.constraint);\n checkSourceElement(node.default);\n const typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node));\n getBaseConstraintOfType(typeParameter);\n if (!hasNonCircularTypeParameterDefault(typeParameter)) {\n error2(node.default, Diagnostics.Type_parameter_0_has_a_circular_default, typeToString(typeParameter));\n }\n const constraintType = getConstraintOfTypeParameter(typeParameter);\n const defaultType = getDefaultFromTypeParameter(typeParameter);\n if (constraintType && defaultType) {\n checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, Diagnostics.Type_0_does_not_satisfy_the_constraint_1);\n }\n checkNodeDeferred(node);\n addLazyDiagnostic(() => checkTypeNameIsReserved(node.name, Diagnostics.Type_parameter_name_cannot_be_0));\n }\n function checkTypeParameterDeferred(node) {\n var _a, _b;\n if (isInterfaceDeclaration(node.parent) || isClassLike(node.parent) || isTypeAliasDeclaration(node.parent)) {\n const typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node));\n const modifiers = getTypeParameterModifiers(typeParameter) & (8192 /* In */ | 16384 /* Out */);\n if (modifiers) {\n const symbol = getSymbolOfDeclaration(node.parent);\n if (isTypeAliasDeclaration(node.parent) && !(getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 /* Anonymous */ | 32 /* Mapped */))) {\n error2(node, Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);\n } else if (modifiers === 8192 /* In */ || modifiers === 16384 /* Out */) {\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, \"checkTypeParameterDeferred\", { parent: getTypeId(getDeclaredTypeOfSymbol(symbol)), id: getTypeId(typeParameter) });\n const source = createMarkerType(symbol, typeParameter, modifiers === 16384 /* Out */ ? markerSubTypeForCheck : markerSuperTypeForCheck);\n const target = createMarkerType(symbol, typeParameter, modifiers === 16384 /* Out */ ? markerSuperTypeForCheck : markerSubTypeForCheck);\n const saveVarianceTypeParameter = typeParameter;\n varianceTypeParameter = typeParameter;\n checkTypeAssignableTo(source, target, node, Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation);\n varianceTypeParameter = saveVarianceTypeParameter;\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n }\n }\n }\n function checkParameter(node) {\n checkGrammarModifiers(node);\n checkVariableLikeDeclaration(node);\n const func = getContainingFunction(node);\n if (hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */)) {\n if (compilerOptions.erasableSyntaxOnly) {\n error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n }\n if (!(func.kind === 177 /* Constructor */ && nodeIsPresent(func.body))) {\n error2(node, Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);\n }\n if (func.kind === 177 /* Constructor */ && isIdentifier(node.name) && node.name.escapedText === \"constructor\") {\n error2(node.name, Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);\n }\n }\n if (!node.initializer && isOptionalDeclaration(node) && isBindingPattern(node.name) && func.body) {\n error2(node, Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);\n }\n if (node.name && isIdentifier(node.name) && (node.name.escapedText === \"this\" || node.name.escapedText === \"new\")) {\n if (func.parameters.indexOf(node) !== 0) {\n error2(node, Diagnostics.A_0_parameter_must_be_the_first_parameter, node.name.escapedText);\n }\n if (func.kind === 177 /* Constructor */ || func.kind === 181 /* ConstructSignature */ || func.kind === 186 /* ConstructorType */) {\n error2(node, Diagnostics.A_constructor_cannot_have_a_this_parameter);\n }\n if (func.kind === 220 /* ArrowFunction */) {\n error2(node, Diagnostics.An_arrow_function_cannot_have_a_this_parameter);\n }\n if (func.kind === 178 /* GetAccessor */ || func.kind === 179 /* SetAccessor */) {\n error2(node, Diagnostics.get_and_set_accessors_cannot_declare_this_parameters);\n }\n }\n if (node.dotDotDotToken && !isBindingPattern(node.name) && !isTypeAssignableTo(getReducedType(getTypeOfSymbol(node.symbol)), anyReadonlyArrayType)) {\n error2(node, Diagnostics.A_rest_parameter_must_be_of_an_array_type);\n }\n }\n function checkTypePredicate(node) {\n const parent2 = getTypePredicateParent(node);\n if (!parent2) {\n error2(node, Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);\n return;\n }\n const signature = getSignatureFromDeclaration(parent2);\n const typePredicate = getTypePredicateOfSignature(signature);\n if (!typePredicate) {\n return;\n }\n checkSourceElement(node.type);\n const { parameterName } = node;\n if (typePredicate.kind !== 0 /* This */ && typePredicate.kind !== 2 /* AssertsThis */) {\n if (typePredicate.parameterIndex >= 0) {\n if (signatureHasRestParameter(signature) && typePredicate.parameterIndex === signature.parameters.length - 1) {\n error2(parameterName, Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);\n } else {\n if (typePredicate.type) {\n const leadingError = () => chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type\n );\n checkTypeAssignableTo(\n typePredicate.type,\n getTypeOfSymbol(signature.parameters[typePredicate.parameterIndex]),\n node.type,\n /*headMessage*/\n void 0,\n leadingError\n );\n }\n }\n } else if (parameterName) {\n let hasReportedError = false;\n for (const { name } of parent2.parameters) {\n if (isBindingPattern(name) && checkIfTypePredicateVariableIsDeclaredInBindingPattern(name, parameterName, typePredicate.parameterName)) {\n hasReportedError = true;\n break;\n }\n }\n if (!hasReportedError) {\n error2(node.parameterName, Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);\n }\n }\n }\n }\n function getTypePredicateParent(node) {\n switch (node.parent.kind) {\n case 220 /* ArrowFunction */:\n case 180 /* CallSignature */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 185 /* FunctionType */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n const parent2 = node.parent;\n if (node === parent2.type) {\n return parent2;\n }\n }\n }\n function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) {\n for (const element of pattern.elements) {\n if (isOmittedExpression(element)) {\n continue;\n }\n const name = element.name;\n if (name.kind === 80 /* Identifier */ && name.escapedText === predicateVariableName) {\n error2(predicateVariableNode, Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName);\n return true;\n } else if (name.kind === 208 /* ArrayBindingPattern */ || name.kind === 207 /* ObjectBindingPattern */) {\n if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(\n name,\n predicateVariableNode,\n predicateVariableName\n )) {\n return true;\n }\n }\n }\n }\n function checkSignatureDeclaration(node) {\n if (node.kind === 182 /* IndexSignature */) {\n checkGrammarIndexSignature(node);\n } else if (node.kind === 185 /* FunctionType */ || node.kind === 263 /* FunctionDeclaration */ || node.kind === 186 /* ConstructorType */ || node.kind === 180 /* CallSignature */ || node.kind === 177 /* Constructor */ || node.kind === 181 /* ConstructSignature */) {\n checkGrammarFunctionLikeDeclaration(node);\n }\n const functionFlags = getFunctionFlags(node);\n if (!(functionFlags & 4 /* Invalid */)) {\n if ((functionFlags & 3 /* AsyncGenerator */) === 3 /* AsyncGenerator */ && languageVersion < LanguageFeatureMinimumTarget.AsyncGenerators) {\n checkExternalEmitHelpers(node, 6144 /* AsyncGeneratorIncludes */);\n }\n if ((functionFlags & 3 /* AsyncGenerator */) === 2 /* Async */ && languageVersion < LanguageFeatureMinimumTarget.AsyncFunctions) {\n checkExternalEmitHelpers(node, 64 /* Awaiter */);\n }\n if ((functionFlags & 3 /* AsyncGenerator */) !== 0 /* Normal */ && languageVersion < LanguageFeatureMinimumTarget.Generators) {\n checkExternalEmitHelpers(node, 128 /* Generator */);\n }\n }\n checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n checkUnmatchedJSDocParameters(node);\n forEach(node.parameters, checkParameter);\n if (node.type) {\n checkSourceElement(node.type);\n }\n addLazyDiagnostic(checkSignatureDeclarationDiagnostics);\n function checkSignatureDeclarationDiagnostics() {\n checkCollisionWithArgumentsInGeneratedCode(node);\n let returnTypeNode = getEffectiveReturnTypeNode(node);\n let returnTypeErrorLocation = returnTypeNode;\n if (isInJSFile(node)) {\n const typeTag = getJSDocTypeTag(node);\n if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {\n const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));\n if (signature && signature.declaration) {\n returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);\n returnTypeErrorLocation = typeTag.typeExpression.type;\n }\n }\n }\n if (noImplicitAny && !returnTypeNode) {\n switch (node.kind) {\n case 181 /* ConstructSignature */:\n error2(node, Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);\n break;\n case 180 /* CallSignature */:\n error2(node, Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);\n break;\n }\n }\n if (returnTypeNode && returnTypeErrorLocation) {\n const functionFlags2 = getFunctionFlags(node);\n if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {\n const returnType = getTypeFromTypeNode(returnTypeNode);\n if (returnType === voidType) {\n error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);\n } else {\n checkGeneratorInstantiationAssignabilityToReturnType(returnType, functionFlags2, returnTypeErrorLocation);\n }\n } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {\n checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);\n }\n }\n if (node.kind !== 182 /* IndexSignature */ && node.kind !== 318 /* JSDocFunctionType */) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n }\n function checkGeneratorInstantiationAssignabilityToReturnType(returnType, functionFlags, errorNode) {\n const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags & 2 /* Async */) !== 0) || anyType;\n const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags & 2 /* Async */) !== 0) || generatorYieldType;\n const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags & 2 /* Async */) !== 0) || unknownType;\n const generatorInstantiation = createGeneratorType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags & 2 /* Async */));\n return checkTypeAssignableTo(generatorInstantiation, returnType, errorNode);\n }\n function checkClassForDuplicateDeclarations(node) {\n const instanceNames = /* @__PURE__ */ new Map();\n const staticNames = /* @__PURE__ */ new Map();\n const privateIdentifiers = /* @__PURE__ */ new Map();\n for (const member of node.members) {\n if (member.kind === 177 /* Constructor */) {\n for (const param of member.parameters) {\n if (isParameterPropertyDeclaration(param, member) && !isBindingPattern(param.name)) {\n addName(instanceNames, param.name, param.name.escapedText, 3 /* GetOrSetAccessor */);\n }\n }\n } else {\n const isStaticMember = isStatic(member);\n const name = member.name;\n if (!name) {\n continue;\n }\n const isPrivate = isPrivateIdentifier(name);\n const privateStaticFlags = isPrivate && isStaticMember ? 16 /* PrivateStatic */ : 0;\n const names = isPrivate ? privateIdentifiers : isStaticMember ? staticNames : instanceNames;\n const memberName = name && getEffectivePropertyNameForPropertyNameNode(name);\n if (memberName) {\n switch (member.kind) {\n case 178 /* GetAccessor */:\n addName(names, name, memberName, 1 /* GetAccessor */ | privateStaticFlags);\n break;\n case 179 /* SetAccessor */:\n addName(names, name, memberName, 2 /* SetAccessor */ | privateStaticFlags);\n break;\n case 173 /* PropertyDeclaration */:\n addName(names, name, memberName, 3 /* GetOrSetAccessor */ | privateStaticFlags);\n break;\n case 175 /* MethodDeclaration */:\n addName(names, name, memberName, 8 /* Method */ | privateStaticFlags);\n break;\n }\n }\n }\n }\n function addName(names, location, name, meaning) {\n const prev = names.get(name);\n if (prev) {\n if ((prev & 16 /* PrivateStatic */) !== (meaning & 16 /* PrivateStatic */)) {\n error2(location, Diagnostics.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name, getTextOfNode(location));\n } else {\n const prevIsMethod = !!(prev & 8 /* Method */);\n const isMethod = !!(meaning & 8 /* Method */);\n if (prevIsMethod || isMethod) {\n if (prevIsMethod !== isMethod) {\n error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location));\n }\n } else if (prev & meaning & ~16 /* PrivateStatic */) {\n error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location));\n } else {\n names.set(name, prev | meaning);\n }\n }\n } else {\n names.set(name, meaning);\n }\n }\n }\n function checkClassForStaticPropertyNameConflicts(node) {\n for (const member of node.members) {\n const memberNameNode = member.name;\n const isStaticMember = isStatic(member);\n if (isStaticMember && memberNameNode) {\n const memberName = getEffectivePropertyNameForPropertyNameNode(memberNameNode);\n switch (memberName) {\n case \"name\":\n case \"length\":\n case \"caller\":\n case \"arguments\":\n if (useDefineForClassFields) {\n break;\n }\n // fall through\n case \"prototype\":\n const message = Diagnostics.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1;\n const className = getNameOfSymbolAsWritten(getSymbolOfDeclaration(node));\n error2(memberNameNode, message, memberName, className);\n break;\n }\n }\n }\n }\n function checkObjectTypeForDuplicateDeclarations(node) {\n const names = /* @__PURE__ */ new Map();\n for (const member of node.members) {\n if (member.kind === 172 /* PropertySignature */) {\n let memberName;\n const name = member.name;\n switch (name.kind) {\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n memberName = name.text;\n break;\n case 80 /* Identifier */:\n memberName = idText(name);\n break;\n default:\n continue;\n }\n if (names.get(memberName)) {\n error2(getNameOfDeclaration(member.symbol.valueDeclaration), Diagnostics.Duplicate_identifier_0, memberName);\n error2(member.name, Diagnostics.Duplicate_identifier_0, memberName);\n } else {\n names.set(memberName, true);\n }\n }\n }\n }\n function checkTypeForDuplicateIndexSignatures(node) {\n if (node.kind === 265 /* InterfaceDeclaration */) {\n const nodeSymbol = getSymbolOfDeclaration(node);\n if (nodeSymbol.declarations && nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) {\n return;\n }\n }\n const indexSymbol = getIndexSymbol(getSymbolOfDeclaration(node));\n if (indexSymbol == null ? void 0 : indexSymbol.declarations) {\n const indexSignatureMap = /* @__PURE__ */ new Map();\n for (const declaration of indexSymbol.declarations) {\n if (isIndexSignatureDeclaration(declaration)) {\n if (declaration.parameters.length === 1 && declaration.parameters[0].type) {\n forEachType(getTypeFromTypeNode(declaration.parameters[0].type), (type) => {\n const entry = indexSignatureMap.get(getTypeId(type));\n if (entry) {\n entry.declarations.push(declaration);\n } else {\n indexSignatureMap.set(getTypeId(type), { type, declarations: [declaration] });\n }\n });\n }\n }\n }\n indexSignatureMap.forEach((entry) => {\n if (entry.declarations.length > 1) {\n for (const declaration of entry.declarations) {\n error2(declaration, Diagnostics.Duplicate_index_signature_for_type_0, typeToString(entry.type));\n }\n }\n });\n }\n }\n function checkPropertyDeclaration(node) {\n if (!checkGrammarModifiers(node) && !checkGrammarProperty(node)) checkGrammarComputedPropertyName(node.name);\n checkVariableLikeDeclaration(node);\n setNodeLinksForPrivateIdentifierScope(node);\n if (hasSyntacticModifier(node, 64 /* Abstract */) && node.kind === 173 /* PropertyDeclaration */ && node.initializer) {\n error2(node, Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, declarationNameToString(node.name));\n }\n }\n function checkPropertySignature(node) {\n if (isPrivateIdentifier(node.name)) {\n error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n }\n return checkPropertyDeclaration(node);\n }\n function checkMethodDeclaration(node) {\n if (!checkGrammarMethod(node)) checkGrammarComputedPropertyName(node.name);\n if (isMethodDeclaration(node) && node.asteriskToken && isIdentifier(node.name) && idText(node.name) === \"constructor\") {\n error2(node.name, Diagnostics.Class_constructor_may_not_be_a_generator);\n }\n checkFunctionOrMethodDeclaration(node);\n if (hasSyntacticModifier(node, 64 /* Abstract */) && node.kind === 175 /* MethodDeclaration */ && node.body) {\n error2(node, Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract, declarationNameToString(node.name));\n }\n if (isPrivateIdentifier(node.name) && !getContainingClass(node)) {\n error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n }\n setNodeLinksForPrivateIdentifierScope(node);\n }\n function setNodeLinksForPrivateIdentifierScope(node) {\n if (isPrivateIdentifier(node.name)) {\n if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n for (let lexicalScope = getEnclosingBlockScopeContainer(node); !!lexicalScope; lexicalScope = getEnclosingBlockScopeContainer(lexicalScope)) {\n getNodeLinks(lexicalScope).flags |= 1048576 /* ContainsClassWithPrivateIdentifiers */;\n }\n if (isClassExpression(node.parent)) {\n const enclosingIterationStatement = getEnclosingIterationStatement(node.parent);\n if (enclosingIterationStatement) {\n getNodeLinks(node.name).flags |= 32768 /* BlockScopedBindingInLoop */;\n getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n }\n }\n }\n }\n }\n function checkClassStaticBlockDeclaration(node) {\n checkGrammarModifiers(node);\n forEachChild(node, checkSourceElement);\n }\n function checkConstructorDeclaration(node) {\n checkSignatureDeclaration(node);\n if (!checkGrammarConstructorTypeParameters(node)) checkGrammarConstructorTypeAnnotation(node);\n checkSourceElement(node.body);\n const symbol = getSymbolOfDeclaration(node);\n const firstDeclaration = getDeclarationOfKind(symbol, node.kind);\n if (node === firstDeclaration) {\n checkFunctionOrConstructorSymbol(symbol);\n }\n if (nodeIsMissing(node.body)) {\n return;\n }\n addLazyDiagnostic(checkConstructorDeclarationDiagnostics);\n return;\n function isInstancePropertyWithInitializerOrPrivateIdentifierProperty(n) {\n if (isPrivateIdentifierClassElementDeclaration(n)) {\n return true;\n }\n return n.kind === 173 /* PropertyDeclaration */ && !isStatic(n) && !!n.initializer;\n }\n function checkConstructorDeclarationDiagnostics() {\n const containingClassDecl = node.parent;\n if (getClassExtendsHeritageElement(containingClassDecl)) {\n captureLexicalThis(node.parent, containingClassDecl);\n const classExtendsNull = classDeclarationExtendsNull(containingClassDecl);\n const superCall = findFirstSuperCall(node.body);\n if (superCall) {\n if (classExtendsNull) {\n error2(superCall, Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);\n }\n const superCallShouldBeRootLevel = !emitStandardClassFields && (some(node.parent.members, isInstancePropertyWithInitializerOrPrivateIdentifierProperty) || some(node.parameters, (p) => hasSyntacticModifier(p, 31 /* ParameterPropertyModifier */)));\n if (superCallShouldBeRootLevel) {\n if (!superCallIsRootLevelInConstructor(superCall, node.body)) {\n error2(superCall, Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);\n } else {\n let superCallStatement;\n for (const statement of node.body.statements) {\n if (isExpressionStatement(statement) && isSuperCall(skipOuterExpressions(statement.expression))) {\n superCallStatement = statement;\n break;\n }\n if (nodeImmediatelyReferencesSuperOrThis(statement)) {\n break;\n }\n }\n if (superCallStatement === void 0) {\n error2(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers);\n }\n }\n }\n } else if (!classExtendsNull) {\n error2(node, Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call);\n }\n }\n }\n }\n function superCallIsRootLevelInConstructor(superCall, body) {\n const superCallParent = walkUpParenthesizedExpressions(superCall.parent);\n return isExpressionStatement(superCallParent) && superCallParent.parent === body;\n }\n function nodeImmediatelyReferencesSuperOrThis(node) {\n if (node.kind === 108 /* SuperKeyword */ || node.kind === 110 /* ThisKeyword */) {\n return true;\n }\n if (isThisContainerOrFunctionBlock(node)) {\n return false;\n }\n return !!forEachChild(node, nodeImmediatelyReferencesSuperOrThis);\n }\n function checkAccessorDeclaration(node) {\n if (isIdentifier(node.name) && idText(node.name) === \"constructor\" && isClassLike(node.parent)) {\n error2(node.name, Diagnostics.Class_constructor_may_not_be_an_accessor);\n }\n addLazyDiagnostic(checkAccessorDeclarationDiagnostics);\n checkSourceElement(node.body);\n setNodeLinksForPrivateIdentifierScope(node);\n function checkAccessorDeclarationDiagnostics() {\n if (!checkGrammarFunctionLikeDeclaration(node) && !checkGrammarAccessor(node)) checkGrammarComputedPropertyName(node.name);\n checkDecorators(node);\n checkSignatureDeclaration(node);\n if (node.kind === 178 /* GetAccessor */) {\n if (!(node.flags & 33554432 /* Ambient */) && nodeIsPresent(node.body) && node.flags & 512 /* HasImplicitReturn */) {\n if (!(node.flags & 1024 /* HasExplicitReturn */)) {\n error2(node.name, Diagnostics.A_get_accessor_must_return_a_value);\n }\n }\n }\n if (node.name.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.name);\n }\n if (hasBindableName(node)) {\n const symbol = getSymbolOfDeclaration(node);\n const getter = getDeclarationOfKind(symbol, 178 /* GetAccessor */);\n const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */);\n if (getter && setter && !(getNodeCheckFlags(getter) & 1 /* TypeChecked */)) {\n getNodeLinks(getter).flags |= 1 /* TypeChecked */;\n const getterFlags = getEffectiveModifierFlags(getter);\n const setterFlags = getEffectiveModifierFlags(setter);\n if ((getterFlags & 64 /* Abstract */) !== (setterFlags & 64 /* Abstract */)) {\n error2(getter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract);\n error2(setter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract);\n }\n if (getterFlags & 4 /* Protected */ && !(setterFlags & (4 /* Protected */ | 2 /* Private */)) || getterFlags & 2 /* Private */ && !(setterFlags & 2 /* Private */)) {\n error2(getter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter);\n error2(setter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter);\n }\n }\n }\n const returnType = getTypeOfAccessors(getSymbolOfDeclaration(node));\n if (node.kind === 178 /* GetAccessor */) {\n checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType);\n }\n }\n }\n function checkMissingDeclaration(node) {\n checkDecorators(node);\n }\n function getEffectiveTypeArgumentAtIndex(node, typeParameters, index) {\n if (node.typeArguments && index < node.typeArguments.length) {\n return getTypeFromTypeNode(node.typeArguments[index]);\n }\n return getEffectiveTypeArguments2(node, typeParameters)[index];\n }\n function getEffectiveTypeArguments2(node, typeParameters) {\n return fillMissingTypeArguments(map(node.typeArguments, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(node));\n }\n function checkTypeArgumentConstraints(node, typeParameters) {\n let typeArguments;\n let mapper;\n let result = true;\n for (let i = 0; i < typeParameters.length; i++) {\n const constraint = getConstraintOfTypeParameter(typeParameters[i]);\n if (constraint) {\n if (!typeArguments) {\n typeArguments = getEffectiveTypeArguments2(node, typeParameters);\n mapper = createTypeMapper(typeParameters, typeArguments);\n }\n result = result && checkTypeAssignableTo(\n typeArguments[i],\n instantiateType(constraint, mapper),\n node.typeArguments[i],\n Diagnostics.Type_0_does_not_satisfy_the_constraint_1\n );\n }\n }\n return result;\n }\n function getTypeParametersForTypeAndSymbol(type, symbol) {\n if (!isErrorType(type)) {\n return symbol.flags & 524288 /* TypeAlias */ && getSymbolLinks(symbol).typeParameters || (getObjectFlags(type) & 4 /* Reference */ ? type.target.localTypeParameters : void 0);\n }\n return void 0;\n }\n function getTypeParametersForTypeReferenceOrImport(node) {\n const type = getTypeFromTypeNode(node);\n if (!isErrorType(type)) {\n const symbol = getNodeLinks(node).resolvedSymbol;\n if (symbol) {\n return getTypeParametersForTypeAndSymbol(type, symbol);\n }\n }\n return void 0;\n }\n function checkTypeReferenceNode(node) {\n checkGrammarTypeArguments(node, node.typeArguments);\n if (node.kind === 184 /* TypeReference */ && !isInJSFile(node) && !isInJSDoc(node) && node.typeArguments && node.typeName.end !== node.typeArguments.pos) {\n const sourceFile = getSourceFileOfNode(node);\n if (scanTokenAtPosition(sourceFile, node.typeName.end) === 25 /* DotToken */) {\n grammarErrorAtPos(node, skipTrivia(sourceFile.text, node.typeName.end), 1, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments);\n }\n }\n forEach(node.typeArguments, checkSourceElement);\n checkTypeReferenceOrImport(node);\n }\n function checkTypeReferenceOrImport(node) {\n const type = getTypeFromTypeNode(node);\n if (!isErrorType(type)) {\n if (node.typeArguments) {\n addLazyDiagnostic(() => {\n const typeParameters = getTypeParametersForTypeReferenceOrImport(node);\n if (typeParameters) {\n checkTypeArgumentConstraints(node, typeParameters);\n }\n });\n }\n const symbol = getNodeLinks(node).resolvedSymbol;\n if (symbol) {\n if (some(symbol.declarations, (d) => isTypeDeclaration(d) && !!(d.flags & 536870912 /* Deprecated */))) {\n addDeprecatedSuggestion(\n getDeprecatedSuggestionNode(node),\n symbol.declarations,\n symbol.escapedName\n );\n }\n }\n }\n }\n function getTypeArgumentConstraint(node) {\n const typeReferenceNode = tryCast(node.parent, isTypeReferenceType);\n if (!typeReferenceNode) return void 0;\n const typeParameters = getTypeParametersForTypeReferenceOrImport(typeReferenceNode);\n if (!typeParameters) return void 0;\n const constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments.indexOf(node)]);\n return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments2(typeReferenceNode, typeParameters)));\n }\n function checkTypeQuery(node) {\n getTypeFromTypeQueryNode(node);\n }\n function checkTypeLiteral(node) {\n forEach(node.members, checkSourceElement);\n addLazyDiagnostic(checkTypeLiteralDiagnostics);\n function checkTypeLiteralDiagnostics() {\n const type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);\n checkIndexConstraints(type, type.symbol);\n checkTypeForDuplicateIndexSignatures(node);\n checkObjectTypeForDuplicateDeclarations(node);\n }\n }\n function checkArrayType(node) {\n checkSourceElement(node.elementType);\n }\n function checkTupleType(node) {\n let seenOptionalElement = false;\n let seenRestElement = false;\n for (const e of node.elements) {\n let flags = getTupleElementFlags(e);\n if (flags & 8 /* Variadic */) {\n const type = getTypeFromTypeNode(e.type);\n if (!isArrayLikeType(type)) {\n error2(e, Diagnostics.A_rest_element_type_must_be_an_array_type);\n break;\n }\n if (isArrayType(type) || isTupleType(type) && type.target.combinedFlags & 4 /* Rest */) {\n flags |= 4 /* Rest */;\n }\n }\n if (flags & 4 /* Rest */) {\n if (seenRestElement) {\n grammarErrorOnNode(e, Diagnostics.A_rest_element_cannot_follow_another_rest_element);\n break;\n }\n seenRestElement = true;\n } else if (flags & 2 /* Optional */) {\n if (seenRestElement) {\n grammarErrorOnNode(e, Diagnostics.An_optional_element_cannot_follow_a_rest_element);\n break;\n }\n seenOptionalElement = true;\n } else if (flags & 1 /* Required */ && seenOptionalElement) {\n grammarErrorOnNode(e, Diagnostics.A_required_element_cannot_follow_an_optional_element);\n break;\n }\n }\n forEach(node.elements, checkSourceElement);\n getTypeFromTypeNode(node);\n }\n function checkUnionOrIntersectionType(node) {\n forEach(node.types, checkSourceElement);\n getTypeFromTypeNode(node);\n }\n function checkIndexedAccessIndexType(type, accessNode) {\n if (!(type.flags & 8388608 /* IndexedAccess */)) {\n return type;\n }\n const objectType = type.objectType;\n const indexType = type.indexType;\n const objectIndexType = isGenericMappedType(objectType) && getMappedTypeNameTypeKind(objectType) === 2 /* Remapping */ ? getIndexTypeForMappedType(objectType, 0 /* None */) : getIndexType(objectType, 0 /* None */);\n const hasNumberIndexInfo = !!getIndexInfoOfType(objectType, numberType);\n if (everyType(indexType, (t) => isTypeAssignableTo(t, objectIndexType) || hasNumberIndexInfo && isApplicableIndexType(t, numberType))) {\n if (accessNode.kind === 213 /* ElementAccessExpression */ && isAssignmentTarget(accessNode) && getObjectFlags(objectType) & 32 /* Mapped */ && getMappedTypeModifiers(objectType) & 1 /* IncludeReadonly */) {\n error2(accessNode, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType));\n }\n return type;\n }\n if (isGenericObjectType(objectType)) {\n const propertyName = getPropertyNameFromIndex(indexType, accessNode);\n if (propertyName) {\n const propertySymbol = forEachType(getApparentType(objectType), (t) => getPropertyOfType(t, propertyName));\n if (propertySymbol && getDeclarationModifierFlagsFromSymbol(propertySymbol) & 6 /* NonPublicAccessibilityModifier */) {\n error2(accessNode, Diagnostics.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter, unescapeLeadingUnderscores(propertyName));\n return errorType;\n }\n }\n }\n error2(accessNode, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(objectType));\n return errorType;\n }\n function checkIndexedAccessType(node) {\n checkSourceElement(node.objectType);\n checkSourceElement(node.indexType);\n checkIndexedAccessIndexType(getTypeFromIndexedAccessTypeNode(node), node);\n }\n function checkMappedType(node) {\n checkGrammarMappedType(node);\n checkSourceElement(node.typeParameter);\n checkSourceElement(node.nameType);\n checkSourceElement(node.type);\n if (!node.type) {\n reportImplicitAny(node, anyType);\n }\n const type = getTypeFromMappedTypeNode(node);\n const nameType = getNameTypeFromMappedType(type);\n if (nameType) {\n checkTypeAssignableTo(nameType, stringNumberSymbolType, node.nameType);\n } else {\n const constraintType = getConstraintTypeFromMappedType(type);\n checkTypeAssignableTo(constraintType, stringNumberSymbolType, getEffectiveConstraintOfTypeParameter(node.typeParameter));\n }\n }\n function checkGrammarMappedType(node) {\n var _a;\n if ((_a = node.members) == null ? void 0 : _a.length) {\n return grammarErrorOnNode(node.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);\n }\n }\n function checkThisType(node) {\n getTypeFromThisTypeNode(node);\n }\n function checkTypeOperator(node) {\n checkGrammarTypeOperatorNode(node);\n checkSourceElement(node.type);\n }\n function checkConditionalType(node) {\n forEachChild(node, checkSourceElement);\n }\n function checkInferType(node) {\n if (!findAncestor(node, (n) => n.parent && n.parent.kind === 195 /* ConditionalType */ && n.parent.extendsType === n)) {\n grammarErrorOnNode(node, Diagnostics.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type);\n }\n checkSourceElement(node.typeParameter);\n const symbol = getSymbolOfDeclaration(node.typeParameter);\n if (symbol.declarations && symbol.declarations.length > 1) {\n const links = getSymbolLinks(symbol);\n if (!links.typeParametersChecked) {\n links.typeParametersChecked = true;\n const typeParameter = getDeclaredTypeOfTypeParameter(symbol);\n const declarations = getDeclarationsOfKind(symbol, 169 /* TypeParameter */);\n if (!areTypeParametersIdentical(declarations, [typeParameter], (decl) => [decl])) {\n const name = symbolToString(symbol);\n for (const declaration of declarations) {\n error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_constraints, name);\n }\n }\n }\n }\n registerForUnusedIdentifiersCheck(node);\n }\n function checkTemplateLiteralType(node) {\n for (const span of node.templateSpans) {\n checkSourceElement(span.type);\n const type = getTypeFromTypeNode(span.type);\n checkTypeAssignableTo(type, templateConstraintType, span.type);\n }\n getTypeFromTypeNode(node);\n }\n function checkImportType(node) {\n checkSourceElement(node.argument);\n if (node.attributes) {\n getResolutionModeOverride(node.attributes, grammarErrorOnNode);\n }\n checkTypeReferenceOrImport(node);\n }\n function checkNamedTupleMember(node) {\n if (node.dotDotDotToken && node.questionToken) {\n grammarErrorOnNode(node, Diagnostics.A_tuple_member_cannot_be_both_optional_and_rest);\n }\n if (node.type.kind === 191 /* OptionalType */) {\n grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type);\n }\n if (node.type.kind === 192 /* RestType */) {\n grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type);\n }\n checkSourceElement(node.type);\n getTypeFromTypeNode(node);\n }\n function isPrivateWithinAmbient(node) {\n return (hasEffectiveModifier(node, 2 /* Private */) || isPrivateIdentifierClassElementDeclaration(node)) && !!(node.flags & 33554432 /* Ambient */);\n }\n function getEffectiveDeclarationFlags(n, flagsToCheck) {\n let flags = getCombinedModifierFlagsCached(n);\n if (n.parent.kind !== 265 /* InterfaceDeclaration */ && n.parent.kind !== 264 /* ClassDeclaration */ && n.parent.kind !== 232 /* ClassExpression */ && n.flags & 33554432 /* Ambient */) {\n const container = getEnclosingContainer(n);\n if (container && container.flags & 128 /* ExportContext */ && !(flags & 128 /* Ambient */) && !(isModuleBlock(n.parent) && isModuleDeclaration(n.parent.parent) && isGlobalScopeAugmentation(n.parent.parent))) {\n flags |= 32 /* Export */;\n }\n flags |= 128 /* Ambient */;\n }\n return flags & flagsToCheck;\n }\n function checkFunctionOrConstructorSymbol(symbol) {\n addLazyDiagnostic(() => checkFunctionOrConstructorSymbolWorker(symbol));\n }\n function checkFunctionOrConstructorSymbolWorker(symbol) {\n function getCanonicalOverload(overloads, implementation) {\n const implementationSharesContainerWithFirstOverload = implementation !== void 0 && implementation.parent === overloads[0].parent;\n return implementationSharesContainerWithFirstOverload ? implementation : overloads[0];\n }\n function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck2, someOverloadFlags, allOverloadFlags) {\n const someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags;\n if (someButNotAllOverloadFlags !== 0) {\n const canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck2);\n group(overloads, (o) => getSourceFileOfNode(o).fileName).forEach((overloadsInFile) => {\n const canonicalFlagsForFile = getEffectiveDeclarationFlags(getCanonicalOverload(overloadsInFile, implementation), flagsToCheck2);\n for (const o of overloadsInFile) {\n const deviation = getEffectiveDeclarationFlags(o, flagsToCheck2) ^ canonicalFlags;\n const deviationInFile = getEffectiveDeclarationFlags(o, flagsToCheck2) ^ canonicalFlagsForFile;\n if (deviationInFile & 32 /* Export */) {\n error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);\n } else if (deviationInFile & 128 /* Ambient */) {\n error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);\n } else if (deviation & (2 /* Private */ | 4 /* Protected */)) {\n error2(getNameOfDeclaration(o) || o, Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);\n } else if (deviation & 64 /* Abstract */) {\n error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);\n }\n }\n });\n }\n }\n function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken2, allHaveQuestionToken2) {\n if (someHaveQuestionToken2 !== allHaveQuestionToken2) {\n const canonicalHasQuestionToken = hasQuestionToken(getCanonicalOverload(overloads, implementation));\n forEach(overloads, (o) => {\n const deviation = hasQuestionToken(o) !== canonicalHasQuestionToken;\n if (deviation) {\n error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_optional_or_required);\n }\n });\n }\n }\n const flagsToCheck = 32 /* Export */ | 128 /* Ambient */ | 2 /* Private */ | 4 /* Protected */ | 64 /* Abstract */;\n let someNodeFlags = 0 /* None */;\n let allNodeFlags = flagsToCheck;\n let someHaveQuestionToken = false;\n let allHaveQuestionToken = true;\n let hasOverloads = false;\n let bodyDeclaration;\n let lastSeenNonAmbientDeclaration;\n let previousDeclaration;\n const declarations = symbol.declarations;\n const isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0;\n function reportImplementationExpectedError(node) {\n if (node.name && nodeIsMissing(node.name)) {\n return;\n }\n let seen = false;\n const subsequentNode = forEachChild(node.parent, (c) => {\n if (seen) {\n return c;\n } else {\n seen = c === node;\n }\n });\n if (subsequentNode && subsequentNode.pos === node.end) {\n if (subsequentNode.kind === node.kind) {\n const errorNode2 = subsequentNode.name || subsequentNode;\n const subsequentName = subsequentNode.name;\n if (node.name && subsequentName && // both are private identifiers\n (isPrivateIdentifier(node.name) && isPrivateIdentifier(subsequentName) && node.name.escapedText === subsequentName.escapedText || // Both are computed property names\n isComputedPropertyName(node.name) && isComputedPropertyName(subsequentName) && isTypeIdenticalTo(checkComputedPropertyName(node.name), checkComputedPropertyName(subsequentName)) || // Both are literal property names that are the same.\n isPropertyNameLiteral(node.name) && isPropertyNameLiteral(subsequentName) && getEscapedTextOfIdentifierOrLiteral(node.name) === getEscapedTextOfIdentifierOrLiteral(subsequentName))) {\n const reportError = (node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */) && isStatic(node) !== isStatic(subsequentNode);\n if (reportError) {\n const diagnostic = isStatic(node) ? Diagnostics.Function_overload_must_be_static : Diagnostics.Function_overload_must_not_be_static;\n error2(errorNode2, diagnostic);\n }\n return;\n }\n if (nodeIsPresent(subsequentNode.body)) {\n error2(errorNode2, Diagnostics.Function_implementation_name_must_be_0, declarationNameToString(node.name));\n return;\n }\n }\n }\n const errorNode = node.name || node;\n if (isConstructor) {\n error2(errorNode, Diagnostics.Constructor_implementation_is_missing);\n } else {\n if (hasSyntacticModifier(node, 64 /* Abstract */)) {\n error2(errorNode, Diagnostics.All_declarations_of_an_abstract_method_must_be_consecutive);\n } else {\n error2(errorNode, Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration);\n }\n }\n }\n let duplicateFunctionDeclaration = false;\n let multipleConstructorImplementation = false;\n let hasNonAmbientClass = false;\n const functionDeclarations = [];\n if (declarations) {\n for (const current of declarations) {\n const node = current;\n const inAmbientContext = node.flags & 33554432 /* Ambient */;\n const inAmbientContextOrInterface = node.parent && (node.parent.kind === 265 /* InterfaceDeclaration */ || node.parent.kind === 188 /* TypeLiteral */) || inAmbientContext;\n if (inAmbientContextOrInterface) {\n previousDeclaration = void 0;\n }\n if ((node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */) && !inAmbientContext) {\n hasNonAmbientClass = true;\n }\n if (node.kind === 263 /* FunctionDeclaration */ || node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */ || node.kind === 177 /* Constructor */) {\n functionDeclarations.push(node);\n const currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);\n someNodeFlags |= currentNodeFlags;\n allNodeFlags &= currentNodeFlags;\n someHaveQuestionToken = someHaveQuestionToken || hasQuestionToken(node);\n allHaveQuestionToken = allHaveQuestionToken && hasQuestionToken(node);\n const bodyIsPresent = nodeIsPresent(node.body);\n if (bodyIsPresent && bodyDeclaration) {\n if (isConstructor) {\n multipleConstructorImplementation = true;\n } else {\n duplicateFunctionDeclaration = true;\n }\n } else if ((previousDeclaration == null ? void 0 : previousDeclaration.parent) === node.parent && previousDeclaration.end !== node.pos) {\n reportImplementationExpectedError(previousDeclaration);\n }\n if (bodyIsPresent) {\n if (!bodyDeclaration) {\n bodyDeclaration = node;\n }\n } else {\n hasOverloads = true;\n }\n previousDeclaration = node;\n if (!inAmbientContextOrInterface) {\n lastSeenNonAmbientDeclaration = node;\n }\n }\n if (isInJSFile(current) && isFunctionLike(current) && current.jsDoc) {\n hasOverloads = length(getJSDocOverloadTags(current)) > 0;\n }\n }\n }\n if (multipleConstructorImplementation) {\n forEach(functionDeclarations, (declaration) => {\n error2(declaration, Diagnostics.Multiple_constructor_implementations_are_not_allowed);\n });\n }\n if (duplicateFunctionDeclaration) {\n forEach(functionDeclarations, (declaration) => {\n error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Duplicate_function_implementation);\n });\n }\n if (hasNonAmbientClass && !isConstructor && symbol.flags & 16 /* Function */ && declarations) {\n const relatedDiagnostics = filter(declarations, (d) => d.kind === 264 /* ClassDeclaration */).map((d) => createDiagnosticForNode(d, Diagnostics.Consider_adding_a_declare_modifier_to_this_class));\n forEach(declarations, (declaration) => {\n const diagnostic = declaration.kind === 264 /* ClassDeclaration */ ? Diagnostics.Class_declaration_cannot_implement_overload_list_for_0 : declaration.kind === 263 /* FunctionDeclaration */ ? Diagnostics.Function_with_bodies_can_only_merge_with_classes_that_are_ambient : void 0;\n if (diagnostic) {\n addRelatedInfo(\n error2(getNameOfDeclaration(declaration) || declaration, diagnostic, symbolName(symbol)),\n ...relatedDiagnostics\n );\n }\n });\n }\n if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body && !hasSyntacticModifier(lastSeenNonAmbientDeclaration, 64 /* Abstract */) && !lastSeenNonAmbientDeclaration.questionToken) {\n reportImplementationExpectedError(lastSeenNonAmbientDeclaration);\n }\n if (hasOverloads) {\n if (declarations) {\n checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags);\n checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken);\n }\n if (bodyDeclaration) {\n const signatures = getSignaturesOfSymbol(symbol);\n const bodySignature = getSignatureFromDeclaration(bodyDeclaration);\n for (const signature of signatures) {\n if (!isImplementationCompatibleWithOverload(bodySignature, signature)) {\n const errorNode = signature.declaration && isJSDocSignature(signature.declaration) ? signature.declaration.parent.tagName : signature.declaration;\n addRelatedInfo(\n error2(errorNode, Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),\n createDiagnosticForNode(bodyDeclaration, Diagnostics.The_implementation_signature_is_declared_here)\n );\n break;\n }\n }\n }\n }\n }\n function checkExportsOnMergedDeclarations(node) {\n addLazyDiagnostic(() => checkExportsOnMergedDeclarationsWorker(node));\n }\n function checkExportsOnMergedDeclarationsWorker(node) {\n let symbol = node.localSymbol;\n if (!symbol) {\n symbol = getSymbolOfDeclaration(node);\n if (!symbol.exportSymbol) {\n return;\n }\n }\n if (getDeclarationOfKind(symbol, node.kind) !== node) {\n return;\n }\n let exportedDeclarationSpaces = 0 /* None */;\n let nonExportedDeclarationSpaces = 0 /* None */;\n let defaultExportedDeclarationSpaces = 0 /* None */;\n for (const d of symbol.declarations) {\n const declarationSpaces = getDeclarationSpaces(d);\n const effectiveDeclarationFlags = getEffectiveDeclarationFlags(d, 32 /* Export */ | 2048 /* Default */);\n if (effectiveDeclarationFlags & 32 /* Export */) {\n if (effectiveDeclarationFlags & 2048 /* Default */) {\n defaultExportedDeclarationSpaces |= declarationSpaces;\n } else {\n exportedDeclarationSpaces |= declarationSpaces;\n }\n } else {\n nonExportedDeclarationSpaces |= declarationSpaces;\n }\n }\n const nonDefaultExportedDeclarationSpaces = exportedDeclarationSpaces | nonExportedDeclarationSpaces;\n const commonDeclarationSpacesForExportsAndLocals = exportedDeclarationSpaces & nonExportedDeclarationSpaces;\n const commonDeclarationSpacesForDefaultAndNonDefault = defaultExportedDeclarationSpaces & nonDefaultExportedDeclarationSpaces;\n if (commonDeclarationSpacesForExportsAndLocals || commonDeclarationSpacesForDefaultAndNonDefault) {\n for (const d of symbol.declarations) {\n const declarationSpaces = getDeclarationSpaces(d);\n const name = getNameOfDeclaration(d);\n if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {\n error2(name, Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, declarationNameToString(name));\n } else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {\n error2(name, Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, declarationNameToString(name));\n }\n }\n }\n function getDeclarationSpaces(decl) {\n let d = decl;\n switch (d.kind) {\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n // A jsdoc typedef and callback are, by definition, type aliases.\n // falls through\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n return 2 /* ExportType */;\n case 268 /* ModuleDeclaration */:\n return isAmbientModule(d) || getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 4 /* ExportNamespace */ | 1 /* ExportValue */ : 4 /* ExportNamespace */;\n case 264 /* ClassDeclaration */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n return 2 /* ExportType */ | 1 /* ExportValue */;\n case 308 /* SourceFile */:\n return 2 /* ExportType */ | 1 /* ExportValue */ | 4 /* ExportNamespace */;\n case 278 /* ExportAssignment */:\n case 227 /* BinaryExpression */:\n const node2 = d;\n const expression = isExportAssignment(node2) ? node2.expression : node2.right;\n if (!isEntityNameExpression(expression)) {\n return 1 /* ExportValue */;\n }\n d = expression;\n // The below options all declare an Alias, which is allowed to merge with other values within the importing module.\n // falls through\n case 272 /* ImportEqualsDeclaration */:\n case 275 /* NamespaceImport */:\n case 274 /* ImportClause */:\n let result = 0 /* None */;\n const target = resolveAlias(getSymbolOfDeclaration(d));\n forEach(target.declarations, (d2) => {\n result |= getDeclarationSpaces(d2);\n });\n return result;\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */:\n case 263 /* FunctionDeclaration */:\n case 277 /* ImportSpecifier */:\n // https://github.com/Microsoft/TypeScript/pull/7591\n case 80 /* Identifier */:\n return 1 /* ExportValue */;\n case 174 /* MethodSignature */:\n case 172 /* PropertySignature */:\n return 2 /* ExportType */;\n default:\n return Debug.failBadSyntaxKind(d);\n }\n }\n }\n function getAwaitedTypeOfPromise(type, errorNode, diagnosticMessage, ...args) {\n const promisedType = getPromisedTypeOfPromise(type, errorNode);\n return promisedType && getAwaitedType(promisedType, errorNode, diagnosticMessage, ...args);\n }\n function getPromisedTypeOfPromise(type, errorNode, thisTypeForErrorOut) {\n if (isTypeAny(type)) {\n return void 0;\n }\n const typeAsPromise = type;\n if (typeAsPromise.promisedTypeOfPromise) {\n return typeAsPromise.promisedTypeOfPromise;\n }\n if (isReferenceToType2(type, getGlobalPromiseType(\n /*reportErrors*/\n false\n ))) {\n return typeAsPromise.promisedTypeOfPromise = getTypeArguments(type)[0];\n }\n if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) {\n return void 0;\n }\n const thenFunction = getTypeOfPropertyOfType(type, \"then\");\n if (isTypeAny(thenFunction)) {\n return void 0;\n }\n const thenSignatures = thenFunction ? getSignaturesOfType(thenFunction, 0 /* Call */) : emptyArray;\n if (thenSignatures.length === 0) {\n if (errorNode) {\n error2(errorNode, Diagnostics.A_promise_must_have_a_then_method);\n }\n return void 0;\n }\n let thisTypeForError;\n let candidates;\n for (const thenSignature of thenSignatures) {\n const thisType = getThisTypeOfSignature(thenSignature);\n if (thisType && thisType !== voidType && !isTypeRelatedTo(type, thisType, subtypeRelation)) {\n thisTypeForError = thisType;\n } else {\n candidates = append(candidates, thenSignature);\n }\n }\n if (!candidates) {\n Debug.assertIsDefined(thisTypeForError);\n if (thisTypeForErrorOut) {\n thisTypeForErrorOut.value = thisTypeForError;\n }\n if (errorNode) {\n error2(errorNode, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForError));\n }\n return void 0;\n }\n const onfulfilledParameterType = getTypeWithFacts(getUnionType(map(candidates, getTypeOfFirstParameterOfSignature)), 2097152 /* NEUndefinedOrNull */);\n if (isTypeAny(onfulfilledParameterType)) {\n return void 0;\n }\n const onfulfilledParameterSignatures = getSignaturesOfType(onfulfilledParameterType, 0 /* Call */);\n if (onfulfilledParameterSignatures.length === 0) {\n if (errorNode) {\n error2(errorNode, Diagnostics.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback);\n }\n return void 0;\n }\n return typeAsPromise.promisedTypeOfPromise = getUnionType(map(onfulfilledParameterSignatures, getTypeOfFirstParameterOfSignature), 2 /* Subtype */);\n }\n function checkAwaitedType(type, withAlias, errorNode, diagnosticMessage, ...args) {\n const awaitedType = withAlias ? getAwaitedType(type, errorNode, diagnosticMessage, ...args) : getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args);\n return awaitedType || errorType;\n }\n function isThenableType(type) {\n if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) {\n return false;\n }\n const thenFunction = getTypeOfPropertyOfType(type, \"then\");\n return !!thenFunction && getSignaturesOfType(getTypeWithFacts(thenFunction, 2097152 /* NEUndefinedOrNull */), 0 /* Call */).length > 0;\n }\n function isAwaitedTypeInstantiation(type) {\n var _a;\n if (type.flags & 16777216 /* Conditional */) {\n const awaitedSymbol = getGlobalAwaitedSymbol(\n /*reportErrors*/\n false\n );\n return !!awaitedSymbol && type.aliasSymbol === awaitedSymbol && ((_a = type.aliasTypeArguments) == null ? void 0 : _a.length) === 1;\n }\n return false;\n }\n function unwrapAwaitedType(type) {\n return type.flags & 1048576 /* Union */ ? mapType(type, unwrapAwaitedType) : isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] : type;\n }\n function isAwaitedTypeNeeded(type) {\n if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) {\n return false;\n }\n if (isGenericObjectType(type)) {\n const baseConstraint = getBaseConstraintOfType(type);\n if (baseConstraint ? baseConstraint.flags & 3 /* AnyOrUnknown */ || isEmptyObjectType(baseConstraint) || someType(baseConstraint, isThenableType) : maybeTypeOfKind(type, 8650752 /* TypeVariable */)) {\n return true;\n }\n }\n return false;\n }\n function tryCreateAwaitedType(type) {\n const awaitedSymbol = getGlobalAwaitedSymbol(\n /*reportErrors*/\n true\n );\n if (awaitedSymbol) {\n return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]);\n }\n return void 0;\n }\n function createAwaitedTypeIfNeeded(type) {\n if (isAwaitedTypeNeeded(type)) {\n return tryCreateAwaitedType(type) ?? type;\n }\n Debug.assert(isAwaitedTypeInstantiation(type) || getPromisedTypeOfPromise(type) === void 0, \"type provided should not be a non-generic 'promise'-like.\");\n return type;\n }\n function getAwaitedType(type, errorNode, diagnosticMessage, ...args) {\n const awaitedType = getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args);\n return awaitedType && createAwaitedTypeIfNeeded(awaitedType);\n }\n function getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args) {\n if (isTypeAny(type)) {\n return type;\n }\n if (isAwaitedTypeInstantiation(type)) {\n return type;\n }\n const typeAsAwaitable = type;\n if (typeAsAwaitable.awaitedTypeOfType) {\n return typeAsAwaitable.awaitedTypeOfType;\n }\n if (type.flags & 1048576 /* Union */) {\n if (awaitedTypeStack.lastIndexOf(type.id) >= 0) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);\n }\n return void 0;\n }\n const mapper = errorNode ? (constituentType) => getAwaitedTypeNoAlias(constituentType, errorNode, diagnosticMessage, ...args) : getAwaitedTypeNoAlias;\n awaitedTypeStack.push(type.id);\n const mapped = mapType(type, mapper);\n awaitedTypeStack.pop();\n return typeAsAwaitable.awaitedTypeOfType = mapped;\n }\n if (isAwaitedTypeNeeded(type)) {\n return typeAsAwaitable.awaitedTypeOfType = type;\n }\n const thisTypeForErrorOut = { value: void 0 };\n const promisedType = getPromisedTypeOfPromise(\n type,\n /*errorNode*/\n void 0,\n thisTypeForErrorOut\n );\n if (promisedType) {\n if (type.id === promisedType.id || awaitedTypeStack.lastIndexOf(promisedType.id) >= 0) {\n if (errorNode) {\n error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);\n }\n return void 0;\n }\n awaitedTypeStack.push(type.id);\n const awaitedType = getAwaitedTypeNoAlias(promisedType, errorNode, diagnosticMessage, ...args);\n awaitedTypeStack.pop();\n if (!awaitedType) {\n return void 0;\n }\n return typeAsAwaitable.awaitedTypeOfType = awaitedType;\n }\n if (isThenableType(type)) {\n if (errorNode) {\n Debug.assertIsDefined(diagnosticMessage);\n let chain;\n if (thisTypeForErrorOut.value) {\n chain = chainDiagnosticMessages(chain, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForErrorOut.value));\n }\n chain = chainDiagnosticMessages(chain, diagnosticMessage, ...args);\n diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, chain));\n }\n return void 0;\n }\n return typeAsAwaitable.awaitedTypeOfType = type;\n }\n function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {\n const returnType = getTypeFromTypeNode(returnTypeNode);\n if (languageVersion >= 2 /* ES2015 */) {\n if (isErrorType(returnType)) {\n return;\n }\n const globalPromiseType = getGlobalPromiseType(\n /*reportErrors*/\n true\n );\n if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) {\n reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));\n return;\n }\n } else {\n markLinkedReferences(node, 5 /* AsyncFunction */);\n if (isErrorType(returnType)) {\n return;\n }\n const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);\n if (promiseConstructorName === void 0) {\n reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));\n return;\n }\n const promiseConstructorSymbol = resolveEntityName(\n promiseConstructorName,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n );\n const promiseConstructorType = promiseConstructorSymbol ? getTypeOfSymbol(promiseConstructorSymbol) : errorType;\n if (isErrorType(promiseConstructorType)) {\n if (promiseConstructorName.kind === 80 /* Identifier */ && promiseConstructorName.escapedText === \"Promise\" && getTargetType(returnType) === getGlobalPromiseType(\n /*reportErrors*/\n false\n )) {\n error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);\n } else {\n reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));\n }\n return;\n }\n const globalPromiseConstructorLikeType = getGlobalPromiseConstructorLikeType(\n /*reportErrors*/\n true\n );\n if (globalPromiseConstructorLikeType === emptyObjectType) {\n reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));\n return;\n }\n const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;\n const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type\n );\n if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {\n return;\n }\n const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);\n const collidingSymbol = getSymbol2(node.locals, rootName.escapedText, 111551 /* Value */);\n if (collidingSymbol) {\n error2(collidingSymbol.valueDeclaration, Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions, idText(rootName), entityNameToString(promiseConstructorName));\n return;\n }\n }\n checkAwaitedType(\n returnType,\n /*withAlias*/\n false,\n node,\n Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n );\n function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {\n if (returnTypeNode2 === returnTypeErrorLocation2) {\n error2(returnTypeErrorLocation2, message, typeName);\n } else {\n const diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);\n addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));\n }\n }\n }\n function checkGrammarDecorator(decorator) {\n const sourceFile = getSourceFileOfNode(decorator);\n if (!hasParseDiagnostics(sourceFile)) {\n let node = decorator.expression;\n if (isParenthesizedExpression(node)) {\n return false;\n }\n let canHaveCallExpression = true;\n let errorNode;\n while (true) {\n if (isExpressionWithTypeArguments(node) || isNonNullExpression(node)) {\n node = node.expression;\n continue;\n }\n if (isCallExpression(node)) {\n if (!canHaveCallExpression) {\n errorNode = node;\n }\n if (node.questionDotToken) {\n errorNode = node.questionDotToken;\n }\n node = node.expression;\n canHaveCallExpression = false;\n continue;\n }\n if (isPropertyAccessExpression(node)) {\n if (node.questionDotToken) {\n errorNode = node.questionDotToken;\n }\n node = node.expression;\n canHaveCallExpression = false;\n continue;\n }\n if (!isIdentifier(node)) {\n errorNode = node;\n }\n break;\n }\n if (errorNode) {\n addRelatedInfo(\n error2(decorator.expression, Diagnostics.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator),\n createDiagnosticForNode(errorNode, Diagnostics.Invalid_syntax_in_decorator)\n );\n return true;\n }\n }\n return false;\n }\n function checkDecorator(node) {\n checkGrammarDecorator(node);\n const signature = getResolvedSignature(node);\n checkDeprecatedSignature(signature, node);\n const returnType = getReturnTypeOfSignature(signature);\n if (returnType.flags & 1 /* Any */) {\n return;\n }\n const decoratorSignature = getDecoratorCallSignature(node);\n if (!(decoratorSignature == null ? void 0 : decoratorSignature.resolvedReturnType)) return;\n let headMessage;\n const expectedReturnType = decoratorSignature.resolvedReturnType;\n switch (node.parent.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n break;\n case 173 /* PropertyDeclaration */:\n if (!legacyDecorators) {\n headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n break;\n }\n // falls through\n case 170 /* Parameter */:\n headMessage = Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any;\n break;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n break;\n default:\n return Debug.failBadSyntaxKind(node.parent);\n }\n checkTypeAssignableTo(returnType, expectedReturnType, node.expression, headMessage);\n }\n function createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount = parameters.length, flags = 0 /* None */) {\n const decl = factory.createFunctionTypeNode(\n /*typeParameters*/\n void 0,\n emptyArray,\n factory.createKeywordTypeNode(133 /* AnyKeyword */)\n );\n return createSignature(decl, typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags);\n }\n function createFunctionType(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags) {\n const signature = createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags);\n return getOrCreateTypeFromSignature(signature);\n }\n function createGetterFunctionType(type) {\n return createFunctionType(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n emptyArray,\n type\n );\n }\n function createSetterFunctionType(type) {\n const valueParam = createParameter2(\"value\", type);\n return createFunctionType(\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n [valueParam],\n voidType\n );\n }\n function getEntityNameForDecoratorMetadata(node) {\n if (node) {\n switch (node.kind) {\n case 194 /* IntersectionType */:\n case 193 /* UnionType */:\n return getEntityNameForDecoratorMetadataFromTypeList(node.types);\n case 195 /* ConditionalType */:\n return getEntityNameForDecoratorMetadataFromTypeList([node.trueType, node.falseType]);\n case 197 /* ParenthesizedType */:\n case 203 /* NamedTupleMember */:\n return getEntityNameForDecoratorMetadata(node.type);\n case 184 /* TypeReference */:\n return node.typeName;\n }\n }\n }\n function getEntityNameForDecoratorMetadataFromTypeList(types) {\n let commonEntityName;\n for (let typeNode of types) {\n while (typeNode.kind === 197 /* ParenthesizedType */ || typeNode.kind === 203 /* NamedTupleMember */) {\n typeNode = typeNode.type;\n }\n if (typeNode.kind === 146 /* NeverKeyword */) {\n continue;\n }\n if (!strictNullChecks && (typeNode.kind === 202 /* LiteralType */ && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) {\n continue;\n }\n const individualEntityName = getEntityNameForDecoratorMetadata(typeNode);\n if (!individualEntityName) {\n return void 0;\n }\n if (commonEntityName) {\n if (!isIdentifier(commonEntityName) || !isIdentifier(individualEntityName) || commonEntityName.escapedText !== individualEntityName.escapedText) {\n return void 0;\n }\n } else {\n commonEntityName = individualEntityName;\n }\n }\n return commonEntityName;\n }\n function getParameterTypeNodeForDecoratorCheck(node) {\n const typeNode = getEffectiveTypeAnnotationNode(node);\n return isRestParameter(node) ? getRestParameterElementType(typeNode) : typeNode;\n }\n function checkDecorators(node) {\n if (!canHaveDecorators(node) || !hasDecorators(node) || !node.modifiers || !nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) {\n return;\n }\n const firstDecorator = find(node.modifiers, isDecorator);\n if (!firstDecorator) {\n return;\n }\n if (legacyDecorators) {\n checkExternalEmitHelpers(firstDecorator, 8 /* Decorate */);\n if (node.kind === 170 /* Parameter */) {\n checkExternalEmitHelpers(firstDecorator, 32 /* Param */);\n }\n } else if (languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators) {\n checkExternalEmitHelpers(firstDecorator, 8 /* ESDecorateAndRunInitializers */);\n if (isClassDeclaration(node)) {\n if (!node.name) {\n checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n } else {\n const member = getFirstTransformableStaticClassElement(node);\n if (member) {\n checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n }\n }\n } else if (!isClassExpression(node)) {\n if (isPrivateIdentifier(node.name) && (isMethodDeclaration(node) || isAccessor(node) || isAutoAccessorPropertyDeclaration(node))) {\n checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n }\n if (isComputedPropertyName(node.name)) {\n checkExternalEmitHelpers(firstDecorator, 8388608 /* PropKey */);\n }\n }\n }\n markLinkedReferences(node, 8 /* Decorator */);\n for (const modifier of node.modifiers) {\n if (isDecorator(modifier)) {\n checkDecorator(modifier);\n }\n }\n }\n function checkFunctionDeclaration(node) {\n addLazyDiagnostic(checkFunctionDeclarationDiagnostics);\n function checkFunctionDeclarationDiagnostics() {\n checkFunctionOrMethodDeclaration(node);\n checkGrammarForGenerator(node);\n checkCollisionsForDeclarationName(node, node.name);\n }\n }\n function checkJSDocTypeAliasTag(node) {\n if (!node.typeExpression) {\n error2(node.name, Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags);\n }\n if (node.name) {\n checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0);\n }\n checkSourceElement(node.typeExpression);\n checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n }\n function checkJSDocTemplateTag(node) {\n checkSourceElement(node.constraint);\n for (const tp of node.typeParameters) {\n checkSourceElement(tp);\n }\n }\n function checkJSDocTypeTag(node) {\n checkSourceElement(node.typeExpression);\n }\n function checkJSDocSatisfiesTag(node) {\n checkSourceElement(node.typeExpression);\n const host2 = getEffectiveJSDocHost(node);\n if (host2) {\n const tags = getAllJSDocTags(host2, isJSDocSatisfiesTag);\n if (length(tags) > 1) {\n for (let i = 1; i < length(tags); i++) {\n const tagName = tags[i].tagName;\n error2(tagName, Diagnostics._0_tag_already_specified, idText(tagName));\n }\n }\n }\n }\n function checkJSDocLinkLikeTag(node) {\n if (node.name) {\n resolveJSDocMemberName(\n node.name,\n /*ignoreErrors*/\n true\n );\n }\n }\n function checkJSDocParameterTag(node) {\n checkSourceElement(node.typeExpression);\n }\n function checkJSDocPropertyTag(node) {\n checkSourceElement(node.typeExpression);\n }\n function checkJSDocFunctionType(node) {\n addLazyDiagnostic(checkJSDocFunctionTypeImplicitAny);\n checkSignatureDeclaration(node);\n function checkJSDocFunctionTypeImplicitAny() {\n if (!node.type && !isJSDocConstructSignature(node)) {\n reportImplicitAny(node, anyType);\n }\n }\n }\n function checkJSDocThisTag(node) {\n const host2 = getEffectiveJSDocHost(node);\n if (host2 && isArrowFunction(host2)) {\n error2(node.tagName, Diagnostics.An_arrow_function_cannot_have_a_this_parameter);\n }\n }\n function checkJSDocImportTag(node) {\n checkImportAttributes(node);\n }\n function checkJSDocImplementsTag(node) {\n const classLike = getEffectiveJSDocHost(node);\n if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) {\n error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName));\n }\n }\n function checkJSDocAugmentsTag(node) {\n const classLike = getEffectiveJSDocHost(node);\n if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) {\n error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName));\n return;\n }\n const augmentsTags = getJSDocTags(classLike).filter(isJSDocAugmentsTag);\n Debug.assert(augmentsTags.length > 0);\n if (augmentsTags.length > 1) {\n error2(augmentsTags[1], Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);\n }\n const name = getIdentifierFromEntityNameExpression(node.class.expression);\n const extend2 = getClassExtendsHeritageElement(classLike);\n if (extend2) {\n const className = getIdentifierFromEntityNameExpression(extend2.expression);\n if (className && name.escapedText !== className.escapedText) {\n error2(name, Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause, idText(node.tagName), idText(name), idText(className));\n }\n }\n }\n function checkJSDocAccessibilityModifiers(node) {\n const host2 = getJSDocHost(node);\n if (host2 && isPrivateIdentifierClassElementDeclaration(host2)) {\n error2(node, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);\n }\n }\n function getIdentifierFromEntityNameExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return node;\n case 212 /* PropertyAccessExpression */:\n return node.name;\n default:\n return void 0;\n }\n }\n function checkFunctionOrMethodDeclaration(node) {\n var _a;\n checkDecorators(node);\n checkSignatureDeclaration(node);\n const functionFlags = getFunctionFlags(node);\n if (node.name && node.name.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.name);\n }\n if (hasBindableName(node)) {\n const symbol = getSymbolOfDeclaration(node);\n const localSymbol = node.localSymbol || symbol;\n const firstDeclaration = (_a = localSymbol.declarations) == null ? void 0 : _a.find(\n // Get first non javascript function declaration\n (declaration) => declaration.kind === node.kind && !(declaration.flags & 524288 /* JavaScriptFile */)\n );\n if (node === firstDeclaration) {\n checkFunctionOrConstructorSymbol(localSymbol);\n }\n if (symbol.parent) {\n checkFunctionOrConstructorSymbol(symbol);\n }\n }\n const body = node.kind === 174 /* MethodSignature */ ? void 0 : node.body;\n checkSourceElement(body);\n checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, getReturnTypeFromAnnotation(node));\n addLazyDiagnostic(checkFunctionOrMethodDeclarationDiagnostics);\n if (isInJSFile(node)) {\n const typeTag = getJSDocTypeTag(node);\n if (typeTag && typeTag.typeExpression && !getContextualCallSignature(getTypeFromTypeNode(typeTag.typeExpression), node)) {\n error2(typeTag.typeExpression.type, Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature);\n }\n }\n function checkFunctionOrMethodDeclarationDiagnostics() {\n if (!getEffectiveReturnTypeNode(node)) {\n if (nodeIsMissing(body) && !isPrivateWithinAmbient(node)) {\n reportImplicitAny(node, anyType);\n }\n if (functionFlags & 1 /* Generator */ && nodeIsPresent(body)) {\n getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n }\n }\n }\n }\n function registerForUnusedIdentifiersCheck(node) {\n addLazyDiagnostic(registerForUnusedIdentifiersCheckDiagnostics);\n function registerForUnusedIdentifiersCheckDiagnostics() {\n const sourceFile = getSourceFileOfNode(node);\n let potentiallyUnusedIdentifiers = allPotentiallyUnusedIdentifiers.get(sourceFile.path);\n if (!potentiallyUnusedIdentifiers) {\n potentiallyUnusedIdentifiers = [];\n allPotentiallyUnusedIdentifiers.set(sourceFile.path, potentiallyUnusedIdentifiers);\n }\n potentiallyUnusedIdentifiers.push(node);\n }\n }\n function checkUnusedIdentifiers(potentiallyUnusedIdentifiers, addDiagnostic) {\n for (const node of potentiallyUnusedIdentifiers) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n checkUnusedClassMembers(node, addDiagnostic);\n checkUnusedTypeParameters(node, addDiagnostic);\n break;\n case 308 /* SourceFile */:\n case 268 /* ModuleDeclaration */:\n case 242 /* Block */:\n case 270 /* CaseBlock */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n checkUnusedLocalsAndParameters(node, addDiagnostic);\n break;\n case 177 /* Constructor */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n if (node.body) {\n checkUnusedLocalsAndParameters(node, addDiagnostic);\n }\n checkUnusedTypeParameters(node, addDiagnostic);\n break;\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 266 /* TypeAliasDeclaration */:\n case 265 /* InterfaceDeclaration */:\n checkUnusedTypeParameters(node, addDiagnostic);\n break;\n case 196 /* InferType */:\n checkUnusedInferTypeParameter(node, addDiagnostic);\n break;\n default:\n Debug.assertNever(node, \"Node should not have been registered for unused identifiers check\");\n }\n }\n }\n function errorUnusedLocal(declaration, name, addDiagnostic) {\n const node = getNameOfDeclaration(declaration) || declaration;\n const message = isTypeDeclaration(declaration) ? Diagnostics._0_is_declared_but_never_used : Diagnostics._0_is_declared_but_its_value_is_never_read;\n addDiagnostic(declaration, 0 /* Local */, createDiagnosticForNode(node, message, name));\n }\n function isIdentifierThatStartsWithUnderscore(node) {\n return isIdentifier(node) && idText(node).charCodeAt(0) === 95 /* _ */;\n }\n function checkUnusedClassMembers(node, addDiagnostic) {\n for (const member of node.members) {\n switch (member.kind) {\n case 175 /* MethodDeclaration */:\n case 173 /* PropertyDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n if (member.kind === 179 /* SetAccessor */ && member.symbol.flags & 32768 /* GetAccessor */) {\n break;\n }\n const symbol = getSymbolOfDeclaration(member);\n if (!symbol.isReferenced && (hasEffectiveModifier(member, 2 /* Private */) || isNamedDeclaration(member) && isPrivateIdentifier(member.name)) && !(member.flags & 33554432 /* Ambient */)) {\n addDiagnostic(member, 0 /* Local */, createDiagnosticForNode(member.name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol)));\n }\n break;\n case 177 /* Constructor */:\n for (const parameter of member.parameters) {\n if (!parameter.symbol.isReferenced && hasSyntacticModifier(parameter, 2 /* Private */)) {\n addDiagnostic(parameter, 0 /* Local */, createDiagnosticForNode(parameter.name, Diagnostics.Property_0_is_declared_but_its_value_is_never_read, symbolName(parameter.symbol)));\n }\n }\n break;\n case 182 /* IndexSignature */:\n case 241 /* SemicolonClassElement */:\n case 176 /* ClassStaticBlockDeclaration */:\n break;\n default:\n Debug.fail(\"Unexpected class member\");\n }\n }\n }\n function checkUnusedInferTypeParameter(node, addDiagnostic) {\n const { typeParameter } = node;\n if (isTypeParameterUnused(typeParameter)) {\n addDiagnostic(node, 1 /* Parameter */, createDiagnosticForNode(node, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(typeParameter.name)));\n }\n }\n function checkUnusedTypeParameters(node, addDiagnostic) {\n const declarations = getSymbolOfDeclaration(node).declarations;\n if (!declarations || last(declarations) !== node) return;\n const typeParameters = getEffectiveTypeParameterDeclarations(node);\n const seenParentsWithEveryUnused = /* @__PURE__ */ new Set();\n for (const typeParameter of typeParameters) {\n if (!isTypeParameterUnused(typeParameter)) continue;\n const name = idText(typeParameter.name);\n const { parent: parent2 } = typeParameter;\n if (parent2.kind !== 196 /* InferType */ && parent2.typeParameters.every(isTypeParameterUnused)) {\n if (tryAddToSet(seenParentsWithEveryUnused, parent2)) {\n const sourceFile = getSourceFileOfNode(parent2);\n const range = isJSDocTemplateTag(parent2) ? rangeOfNode(parent2) : rangeOfTypeParameters(sourceFile, parent2.typeParameters);\n const only = parent2.typeParameters.length === 1;\n const messageAndArg = only ? [Diagnostics._0_is_declared_but_its_value_is_never_read, name] : [Diagnostics.All_type_parameters_are_unused];\n addDiagnostic(typeParameter, 1 /* Parameter */, createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ...messageAndArg));\n }\n } else {\n addDiagnostic(typeParameter, 1 /* Parameter */, createDiagnosticForNode(typeParameter, Diagnostics._0_is_declared_but_its_value_is_never_read, name));\n }\n }\n }\n function isTypeParameterUnused(typeParameter) {\n return !(getMergedSymbol(typeParameter.symbol).isReferenced & 262144 /* TypeParameter */) && !isIdentifierThatStartsWithUnderscore(typeParameter.name);\n }\n function addToGroup(map2, key, value, getKey) {\n const keyString = String(getKey(key));\n const group2 = map2.get(keyString);\n if (group2) {\n group2[1].push(value);\n } else {\n map2.set(keyString, [key, [value]]);\n }\n }\n function tryGetRootParameterDeclaration(node) {\n return tryCast(getRootDeclaration(node), isParameter);\n }\n function isValidUnusedLocalDeclaration(declaration) {\n if (isBindingElement(declaration)) {\n if (isObjectBindingPattern(declaration.parent)) {\n return !!(declaration.propertyName && isIdentifierThatStartsWithUnderscore(declaration.name));\n }\n return isIdentifierThatStartsWithUnderscore(declaration.name);\n }\n return isAmbientModule(declaration) || (isVariableDeclaration(declaration) && isForInOrOfStatement(declaration.parent.parent) || isImportedDeclaration(declaration)) && isIdentifierThatStartsWithUnderscore(declaration.name);\n }\n function checkUnusedLocalsAndParameters(nodeWithLocals, addDiagnostic) {\n const unusedImports = /* @__PURE__ */ new Map();\n const unusedDestructures = /* @__PURE__ */ new Map();\n const unusedVariables = /* @__PURE__ */ new Map();\n nodeWithLocals.locals.forEach((local) => {\n if (local.flags & 262144 /* TypeParameter */ ? !(local.flags & 3 /* Variable */ && !(local.isReferenced & 3 /* Variable */)) : local.isReferenced || local.exportSymbol) {\n return;\n }\n if (local.declarations) {\n for (const declaration of local.declarations) {\n if (isValidUnusedLocalDeclaration(declaration)) {\n continue;\n }\n if (isImportedDeclaration(declaration)) {\n addToGroup(unusedImports, importClauseFromImported(declaration), declaration, getNodeId);\n } else if (isBindingElement(declaration) && isObjectBindingPattern(declaration.parent)) {\n const lastElement = last(declaration.parent.elements);\n if (declaration === lastElement || !last(declaration.parent.elements).dotDotDotToken) {\n addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId);\n }\n } else if (isVariableDeclaration(declaration)) {\n const blockScopeKind = getCombinedNodeFlagsCached(declaration) & 7 /* BlockScoped */;\n const name = getNameOfDeclaration(declaration);\n if (blockScopeKind !== 4 /* Using */ && blockScopeKind !== 6 /* AwaitUsing */ || !name || !isIdentifierThatStartsWithUnderscore(name)) {\n addToGroup(unusedVariables, declaration.parent, declaration, getNodeId);\n }\n } else {\n const parameter = local.valueDeclaration && tryGetRootParameterDeclaration(local.valueDeclaration);\n const name = local.valueDeclaration && getNameOfDeclaration(local.valueDeclaration);\n if (parameter && name) {\n if (!isParameterPropertyDeclaration(parameter, parameter.parent) && !parameterIsThisKeyword(parameter) && !isIdentifierThatStartsWithUnderscore(name)) {\n if (isBindingElement(declaration) && isArrayBindingPattern(declaration.parent)) {\n addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId);\n } else {\n addDiagnostic(parameter, 1 /* Parameter */, createDiagnosticForNode(name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolName(local)));\n }\n }\n } else {\n errorUnusedLocal(declaration, symbolName(local), addDiagnostic);\n }\n }\n }\n }\n });\n unusedImports.forEach(([importClause, unuseds]) => {\n const importDecl = importClause.parent;\n const nDeclarations = (importClause.name ? 1 : 0) + (importClause.namedBindings ? importClause.namedBindings.kind === 275 /* NamespaceImport */ ? 1 : importClause.namedBindings.elements.length : 0);\n if (nDeclarations === unuseds.length) {\n addDiagnostic(\n importDecl,\n 0 /* Local */,\n unuseds.length === 1 ? createDiagnosticForNode(importDecl, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(first(unuseds).name)) : createDiagnosticForNode(importDecl, Diagnostics.All_imports_in_import_declaration_are_unused)\n );\n } else {\n for (const unused of unuseds) errorUnusedLocal(unused, idText(unused.name), addDiagnostic);\n }\n });\n unusedDestructures.forEach(([bindingPattern, bindingElements]) => {\n const kind = tryGetRootParameterDeclaration(bindingPattern.parent) ? 1 /* Parameter */ : 0 /* Local */;\n if (bindingPattern.elements.length === bindingElements.length) {\n if (bindingElements.length === 1 && bindingPattern.parent.kind === 261 /* VariableDeclaration */ && bindingPattern.parent.parent.kind === 262 /* VariableDeclarationList */) {\n addToGroup(unusedVariables, bindingPattern.parent.parent, bindingPattern.parent, getNodeId);\n } else {\n addDiagnostic(\n bindingPattern,\n kind,\n bindingElements.length === 1 ? createDiagnosticForNode(bindingPattern, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(bindingElements).name)) : createDiagnosticForNode(bindingPattern, Diagnostics.All_destructured_elements_are_unused)\n );\n }\n } else {\n for (const e of bindingElements) {\n addDiagnostic(e, kind, createDiagnosticForNode(e, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(e.name)));\n }\n }\n });\n unusedVariables.forEach(([declarationList, declarations]) => {\n if (declarationList.declarations.length === declarations.length) {\n addDiagnostic(\n declarationList,\n 0 /* Local */,\n declarations.length === 1 ? createDiagnosticForNode(first(declarations).name, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(declarations).name)) : createDiagnosticForNode(declarationList.parent.kind === 244 /* VariableStatement */ ? declarationList.parent : declarationList, Diagnostics.All_variables_are_unused)\n );\n } else {\n for (const decl of declarations) {\n addDiagnostic(decl, 0 /* Local */, createDiagnosticForNode(decl, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(decl.name)));\n }\n }\n });\n }\n function checkPotentialUncheckedRenamedBindingElementsInTypes() {\n var _a;\n for (const node of potentialUnusedRenamedBindingElementsInTypes) {\n if (!((_a = getSymbolOfDeclaration(node)) == null ? void 0 : _a.isReferenced)) {\n const wrappingDeclaration = walkUpBindingElementsAndPatterns(node);\n Debug.assert(isPartOfParameterDeclaration(wrappingDeclaration), \"Only parameter declaration should be checked here\");\n const diagnostic = createDiagnosticForNode(node.name, Diagnostics._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, declarationNameToString(node.name), declarationNameToString(node.propertyName));\n if (!wrappingDeclaration.type) {\n addRelatedInfo(\n diagnostic,\n createFileDiagnostic(getSourceFileOfNode(wrappingDeclaration), wrappingDeclaration.end, 0, Diagnostics.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here, declarationNameToString(node.propertyName))\n );\n }\n diagnostics.add(diagnostic);\n }\n }\n }\n function bindingNameText(name) {\n switch (name.kind) {\n case 80 /* Identifier */:\n return idText(name);\n case 208 /* ArrayBindingPattern */:\n case 207 /* ObjectBindingPattern */:\n return bindingNameText(cast(first(name.elements), isBindingElement).name);\n default:\n return Debug.assertNever(name);\n }\n }\n function isImportedDeclaration(node) {\n return node.kind === 274 /* ImportClause */ || node.kind === 277 /* ImportSpecifier */ || node.kind === 275 /* NamespaceImport */;\n }\n function importClauseFromImported(decl) {\n return decl.kind === 274 /* ImportClause */ ? decl : decl.kind === 275 /* NamespaceImport */ ? decl.parent : decl.parent.parent;\n }\n function checkBlock(node) {\n if (node.kind === 242 /* Block */) {\n checkGrammarStatementInAmbientContext(node);\n }\n if (isFunctionOrModuleBlock(node)) {\n const saveFlowAnalysisDisabled = flowAnalysisDisabled;\n forEach(node.statements, checkSourceElement);\n flowAnalysisDisabled = saveFlowAnalysisDisabled;\n } else {\n forEach(node.statements, checkSourceElement);\n }\n if (node.locals) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n function checkCollisionWithArgumentsInGeneratedCode(node) {\n if (languageVersion >= 2 /* ES2015 */ || !hasRestParameter(node) || node.flags & 33554432 /* Ambient */ || nodeIsMissing(node.body)) {\n return;\n }\n forEach(node.parameters, (p) => {\n if (p.name && !isBindingPattern(p.name) && p.name.escapedText === argumentsSymbol.escapedName) {\n errorSkippedOn(\"noEmit\", p, Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters);\n }\n });\n }\n function needCollisionCheckForIdentifier(node, identifier, name) {\n if ((identifier == null ? void 0 : identifier.escapedText) !== name) {\n return false;\n }\n if (node.kind === 173 /* PropertyDeclaration */ || node.kind === 172 /* PropertySignature */ || node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */ || node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */ || node.kind === 304 /* PropertyAssignment */) {\n return false;\n }\n if (node.flags & 33554432 /* Ambient */) {\n return false;\n }\n if (isImportClause(node) || isImportEqualsDeclaration(node) || isImportSpecifier(node)) {\n if (isTypeOnlyImportOrExportDeclaration(node)) {\n return false;\n }\n }\n const root = getRootDeclaration(node);\n if (isParameter(root) && nodeIsMissing(root.parent.body)) {\n return false;\n }\n return true;\n }\n function checkIfThisIsCapturedInEnclosingScope(node) {\n findAncestor(node, (current) => {\n if (getNodeCheckFlags(current) & 4 /* CaptureThis */) {\n const isDeclaration2 = node.kind !== 80 /* Identifier */;\n if (isDeclaration2) {\n error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);\n } else {\n error2(node, Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);\n }\n return true;\n }\n return false;\n });\n }\n function checkIfNewTargetIsCapturedInEnclosingScope(node) {\n findAncestor(node, (current) => {\n if (getNodeCheckFlags(current) & 8 /* CaptureNewTarget */) {\n const isDeclaration2 = node.kind !== 80 /* Identifier */;\n if (isDeclaration2) {\n error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);\n } else {\n error2(node, Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);\n }\n return true;\n }\n return false;\n });\n }\n function checkCollisionWithRequireExportsInGeneratedCode(node, name) {\n if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) >= 5 /* ES2015 */) {\n return;\n }\n if (!name || !needCollisionCheckForIdentifier(node, name, \"require\") && !needCollisionCheckForIdentifier(node, name, \"exports\")) {\n return;\n }\n if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) {\n return;\n }\n const parent2 = getDeclarationContainer(node);\n if (parent2.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(parent2)) {\n errorSkippedOn(\"noEmit\", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, declarationNameToString(name), declarationNameToString(name));\n }\n }\n function checkCollisionWithGlobalPromiseInGeneratedCode(node, name) {\n if (!name || languageVersion >= 4 /* ES2017 */ || !needCollisionCheckForIdentifier(node, name, \"Promise\")) {\n return;\n }\n if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) {\n return;\n }\n const parent2 = getDeclarationContainer(node);\n if (parent2.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(parent2) && parent2.flags & 4096 /* HasAsyncFunctions */) {\n errorSkippedOn(\"noEmit\", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions, declarationNameToString(name), declarationNameToString(name));\n }\n }\n function recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name) {\n if (languageVersion <= 8 /* ES2021 */ && (needCollisionCheckForIdentifier(node, name, \"WeakMap\") || needCollisionCheckForIdentifier(node, name, \"WeakSet\"))) {\n potentialWeakMapSetCollisions.push(node);\n }\n }\n function checkWeakMapSetCollision(node) {\n const enclosingBlockScope = getEnclosingBlockScopeContainer(node);\n if (getNodeCheckFlags(enclosingBlockScope) & 1048576 /* ContainsClassWithPrivateIdentifiers */) {\n Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name) && typeof node.name.escapedText === \"string\", \"The target of a WeakMap/WeakSet collision check should be an identifier\");\n errorSkippedOn(\"noEmit\", node, Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel, node.name.escapedText);\n }\n }\n function recordPotentialCollisionWithReflectInGeneratedCode(node, name) {\n if (name && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && needCollisionCheckForIdentifier(node, name, \"Reflect\")) {\n potentialReflectCollisions.push(node);\n }\n }\n function checkReflectCollision(node) {\n let hasCollision = false;\n if (isClassExpression(node)) {\n for (const member of node.members) {\n if (getNodeCheckFlags(member) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n hasCollision = true;\n break;\n }\n }\n } else if (isFunctionExpression(node)) {\n if (getNodeCheckFlags(node) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n hasCollision = true;\n }\n } else {\n const container = getEnclosingBlockScopeContainer(node);\n if (container && getNodeCheckFlags(container) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n hasCollision = true;\n }\n }\n if (hasCollision) {\n Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name), \"The target of a Reflect collision check should be an identifier\");\n errorSkippedOn(\"noEmit\", node, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers, declarationNameToString(node.name), \"Reflect\");\n }\n }\n function checkCollisionsForDeclarationName(node, name) {\n if (!name) return;\n checkCollisionWithRequireExportsInGeneratedCode(node, name);\n checkCollisionWithGlobalPromiseInGeneratedCode(node, name);\n recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name);\n recordPotentialCollisionWithReflectInGeneratedCode(node, name);\n if (isClassLike(node)) {\n checkTypeNameIsReserved(name, Diagnostics.Class_name_cannot_be_0);\n if (!(node.flags & 33554432 /* Ambient */)) {\n checkClassNameCollisionWithObject(name);\n }\n } else if (isEnumDeclaration(node)) {\n checkTypeNameIsReserved(name, Diagnostics.Enum_name_cannot_be_0);\n }\n }\n function checkVarDeclaredNamesNotShadowed(node) {\n if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isPartOfParameterDeclaration(node)) {\n return;\n }\n const symbol = getSymbolOfDeclaration(node);\n if (symbol.flags & 1 /* FunctionScopedVariable */) {\n if (!isIdentifier(node.name)) return Debug.fail();\n const localDeclarationSymbol = resolveName(\n node,\n node.name.escapedText,\n 3 /* Variable */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n );\n if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) {\n if (getDeclarationNodeFlagsFromSymbol(localDeclarationSymbol) & 7 /* BlockScoped */) {\n const varDeclList = getAncestor(localDeclarationSymbol.valueDeclaration, 262 /* VariableDeclarationList */);\n const container = varDeclList.parent.kind === 244 /* VariableStatement */ && varDeclList.parent.parent ? varDeclList.parent.parent : void 0;\n const namesShareScope = container && (container.kind === 242 /* Block */ && isFunctionLike(container.parent) || container.kind === 269 /* ModuleBlock */ || container.kind === 268 /* ModuleDeclaration */ || container.kind === 308 /* SourceFile */);\n if (!namesShareScope) {\n const name = symbolToString(localDeclarationSymbol);\n error2(node, Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name);\n }\n }\n }\n }\n }\n function convertAutoToAny(type) {\n return type === autoType ? anyType : type === autoArrayType ? anyArrayType : type;\n }\n function checkVariableLikeDeclaration(node) {\n var _a;\n checkDecorators(node);\n if (!isBindingElement(node)) {\n checkSourceElement(node.type);\n }\n if (!node.name) {\n return;\n }\n if (node.name.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.name);\n if (hasOnlyExpressionInitializer(node) && node.initializer) {\n checkExpressionCached(node.initializer);\n }\n }\n if (isBindingElement(node)) {\n if (node.propertyName && isIdentifier(node.name) && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {\n potentialUnusedRenamedBindingElementsInTypes.push(node);\n return;\n }\n if (isObjectBindingPattern(node.parent) && node.dotDotDotToken && languageVersion < LanguageFeatureMinimumTarget.ObjectSpreadRest) {\n checkExternalEmitHelpers(node, 4 /* Rest */);\n }\n if (node.propertyName && node.propertyName.kind === 168 /* ComputedPropertyName */) {\n checkComputedPropertyName(node.propertyName);\n }\n const parent2 = node.parent.parent;\n const parentCheckMode = node.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */;\n const parentType = getTypeForBindingElementParent(parent2, parentCheckMode);\n const name = node.propertyName || node.name;\n if (parentType && !isBindingPattern(name)) {\n const exprType = getLiteralTypeFromPropertyName(name);\n if (isTypeUsableAsPropertyName(exprType)) {\n const nameText = getPropertyNameFromType(exprType);\n const property = getPropertyOfType(parentType, nameText);\n if (property) {\n markPropertyAsReferenced(\n property,\n /*nodeForCheckWriteOnly*/\n void 0,\n /*isSelfTypeAccess*/\n false\n );\n checkPropertyAccessibility(\n node,\n !!parent2.initializer && parent2.initializer.kind === 108 /* SuperKeyword */,\n /*writing*/\n false,\n parentType,\n property\n );\n }\n }\n }\n }\n if (isBindingPattern(node.name)) {\n if (node.name.kind === 208 /* ArrayBindingPattern */ && languageVersion < LanguageFeatureMinimumTarget.BindingPatterns && compilerOptions.downlevelIteration) {\n checkExternalEmitHelpers(node, 512 /* Read */);\n }\n forEach(node.name.elements, checkSourceElement);\n }\n if (node.initializer && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {\n error2(node, Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);\n return;\n }\n if (isBindingPattern(node.name)) {\n if (isInAmbientOrTypeNode(node)) {\n return;\n }\n const needCheckInitializer = hasOnlyExpressionInitializer(node) && node.initializer && node.parent.parent.kind !== 250 /* ForInStatement */;\n const needCheckWidenedType = !some(node.name.elements, not(isOmittedExpression));\n if (needCheckInitializer || needCheckWidenedType) {\n const widenedType = getWidenedTypeForVariableLikeDeclaration(node);\n if (needCheckInitializer) {\n const initializerType = checkExpressionCached(node.initializer);\n if (strictNullChecks && needCheckWidenedType) {\n checkNonNullNonVoidType(initializerType, node);\n } else {\n checkTypeAssignableToAndOptionallyElaborate(initializerType, getWidenedTypeForVariableLikeDeclaration(node), node, node.initializer);\n }\n }\n if (needCheckWidenedType) {\n if (isArrayBindingPattern(node.name)) {\n checkIteratedTypeOrElementType(65 /* Destructuring */, widenedType, undefinedType, node);\n } else if (strictNullChecks) {\n checkNonNullNonVoidType(widenedType, node);\n }\n }\n }\n return;\n }\n const symbol = getSymbolOfDeclaration(node);\n if (symbol.flags & 2097152 /* Alias */ && (isVariableDeclarationInitializedToBareOrAccessedRequire(node) || isBindingElementOfBareOrAccessedRequire(node))) {\n checkAliasSymbol(node);\n return;\n }\n if (node.name.kind === 10 /* BigIntLiteral */) {\n error2(node.name, Diagnostics.A_bigint_literal_cannot_be_used_as_a_property_name);\n }\n const type = convertAutoToAny(getTypeOfSymbol(symbol));\n if (node === symbol.valueDeclaration) {\n const initializer = hasOnlyExpressionInitializer(node) && getEffectiveInitializer(node);\n if (initializer) {\n const isJSObjectLiteralInitializer = isInJSFile(node) && isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAccess(node.name)) && !!((_a = symbol.exports) == null ? void 0 : _a.size);\n if (!isJSObjectLiteralInitializer && node.parent.parent.kind !== 250 /* ForInStatement */) {\n const initializerType = checkExpressionCached(initializer);\n checkTypeAssignableToAndOptionallyElaborate(\n initializerType,\n type,\n node,\n initializer,\n /*headMessage*/\n void 0\n );\n const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;\n if (blockScopeKind === 6 /* AwaitUsing */) {\n const globalAsyncDisposableType = getGlobalAsyncDisposableType(\n /*reportErrors*/\n true\n );\n const globalDisposableType = getGlobalDisposableType(\n /*reportErrors*/\n true\n );\n if (globalAsyncDisposableType !== emptyObjectType && globalDisposableType !== emptyObjectType) {\n const optionalDisposableType = getUnionType([globalAsyncDisposableType, globalDisposableType, nullType, undefinedType]);\n checkTypeAssignableTo(widenTypeForVariableLikeDeclaration(initializerType, node), optionalDisposableType, initializer, Diagnostics.The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined);\n }\n } else if (blockScopeKind === 4 /* Using */) {\n const globalDisposableType = getGlobalDisposableType(\n /*reportErrors*/\n true\n );\n if (globalDisposableType !== emptyObjectType) {\n const optionalDisposableType = getUnionType([globalDisposableType, nullType, undefinedType]);\n checkTypeAssignableTo(widenTypeForVariableLikeDeclaration(initializerType, node), optionalDisposableType, initializer, Diagnostics.The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined);\n }\n }\n }\n }\n if (symbol.declarations && symbol.declarations.length > 1) {\n if (some(symbol.declarations, (d) => d !== node && isVariableLike(d) && !areDeclarationFlagsIdentical(d, node))) {\n error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name));\n }\n }\n } else {\n const declarationType = convertAutoToAny(getWidenedTypeForVariableLikeDeclaration(node));\n if (!isErrorType(type) && !isErrorType(declarationType) && !isTypeIdenticalTo(type, declarationType) && !(symbol.flags & 67108864 /* Assignment */)) {\n errorNextVariableOrPropertyDeclarationMustHaveSameType(symbol.valueDeclaration, type, node, declarationType);\n }\n if (hasOnlyExpressionInitializer(node) && node.initializer) {\n checkTypeAssignableToAndOptionallyElaborate(\n checkExpressionCached(node.initializer),\n declarationType,\n node,\n node.initializer,\n /*headMessage*/\n void 0\n );\n }\n if (symbol.valueDeclaration && !areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {\n error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name));\n }\n }\n if (node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 172 /* PropertySignature */) {\n checkExportsOnMergedDeclarations(node);\n if (node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */) {\n checkVarDeclaredNamesNotShadowed(node);\n }\n checkCollisionsForDeclarationName(node, node.name);\n }\n }\n function errorNextVariableOrPropertyDeclarationMustHaveSameType(firstDeclaration, firstType, nextDeclaration, nextType) {\n const nextDeclarationName = getNameOfDeclaration(nextDeclaration);\n const message = nextDeclaration.kind === 173 /* PropertyDeclaration */ || nextDeclaration.kind === 172 /* PropertySignature */ ? Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2 : Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2;\n const declName = declarationNameToString(nextDeclarationName);\n const err = error2(\n nextDeclarationName,\n message,\n declName,\n typeToString(firstType),\n typeToString(nextType)\n );\n if (firstDeclaration) {\n addRelatedInfo(err, createDiagnosticForNode(firstDeclaration, Diagnostics._0_was_also_declared_here, declName));\n }\n }\n function areDeclarationFlagsIdentical(left, right) {\n if (left.kind === 170 /* Parameter */ && right.kind === 261 /* VariableDeclaration */ || left.kind === 261 /* VariableDeclaration */ && right.kind === 170 /* Parameter */) {\n return true;\n }\n if (hasQuestionToken(left) !== hasQuestionToken(right)) {\n return false;\n }\n const interestingFlags = 2 /* Private */ | 4 /* Protected */ | 1024 /* Async */ | 64 /* Abstract */ | 8 /* Readonly */ | 256 /* Static */;\n return getSelectedEffectiveModifierFlags(left, interestingFlags) === getSelectedEffectiveModifierFlags(right, interestingFlags);\n }\n function checkVariableDeclaration(node) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkVariableDeclaration\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n checkGrammarVariableDeclaration(node);\n checkVariableLikeDeclaration(node);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n function checkBindingElement(node) {\n checkGrammarBindingElement(node);\n return checkVariableLikeDeclaration(node);\n }\n function checkVariableDeclarationList(node) {\n const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;\n if ((blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */) && languageVersion < LanguageFeatureMinimumTarget.UsingAndAwaitUsing) {\n checkExternalEmitHelpers(node, 16777216 /* AddDisposableResourceAndDisposeResources */);\n }\n forEach(node.declarations, checkSourceElement);\n }\n function checkVariableStatement(node) {\n if (!checkGrammarModifiers(node) && !checkGrammarVariableDeclarationList(node.declarationList)) checkGrammarForDisallowedBlockScopedVariableStatement(node);\n checkVariableDeclarationList(node.declarationList);\n }\n function checkExpressionStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n checkExpression(node.expression);\n }\n function checkIfStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n const type = checkTruthinessExpression(node.expression);\n checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.expression, type, node.thenStatement);\n checkSourceElement(node.thenStatement);\n if (node.thenStatement.kind === 243 /* EmptyStatement */) {\n error2(node.thenStatement, Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement);\n }\n checkSourceElement(node.elseStatement);\n }\n function checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(condExpr, condType, body) {\n if (!strictNullChecks) return;\n bothHelper(condExpr, body);\n function bothHelper(condExpr2, body2) {\n condExpr2 = skipParentheses(condExpr2);\n helper(condExpr2, body2);\n while (isBinaryExpression(condExpr2) && (condExpr2.operatorToken.kind === 57 /* BarBarToken */ || condExpr2.operatorToken.kind === 61 /* QuestionQuestionToken */)) {\n condExpr2 = skipParentheses(condExpr2.left);\n helper(condExpr2, body2);\n }\n }\n function helper(condExpr2, body2) {\n const location = isLogicalOrCoalescingBinaryExpression(condExpr2) ? skipParentheses(condExpr2.right) : condExpr2;\n if (isModuleExportsAccessExpression(location)) {\n return;\n }\n if (isLogicalOrCoalescingBinaryExpression(location)) {\n bothHelper(location, body2);\n return;\n }\n const type = location === condExpr2 ? condType : checkExpression(location);\n if (type.flags & 1024 /* EnumLiteral */ && isPropertyAccessExpression(location) && (getNodeLinks(location.expression).resolvedSymbol ?? unknownSymbol).flags & 384 /* Enum */) {\n error2(location, Diagnostics.This_condition_will_always_return_0, !!type.value ? \"true\" : \"false\");\n return;\n }\n const isPropertyExpressionCast = isPropertyAccessExpression(location) && isTypeAssertion(location.expression);\n if (!hasTypeFacts(type, 4194304 /* Truthy */) || isPropertyExpressionCast) return;\n const callSignatures = getSignaturesOfType(type, 0 /* Call */);\n const isPromise = !!getAwaitedTypeOfPromise(type);\n if (callSignatures.length === 0 && !isPromise) {\n return;\n }\n const testedNode = isIdentifier(location) ? location : isPropertyAccessExpression(location) ? location.name : void 0;\n const testedSymbol = testedNode && getSymbolAtLocation(testedNode);\n if (!testedSymbol && !isPromise) {\n return;\n }\n const isUsed = testedSymbol && isBinaryExpression(condExpr2.parent) && isSymbolUsedInBinaryExpressionChain(condExpr2.parent, testedSymbol) || testedSymbol && body2 && isSymbolUsedInConditionBody(condExpr2, body2, testedNode, testedSymbol);\n if (!isUsed) {\n if (isPromise) {\n errorAndMaybeSuggestAwait(\n location,\n /*maybeMissingAwait*/\n true,\n Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,\n getTypeNameForErrorDisplay(type)\n );\n } else {\n error2(location, Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead);\n }\n }\n }\n }\n function isSymbolUsedInConditionBody(expr, body, testedNode, testedSymbol) {\n return !!forEachChild(body, function check(childNode) {\n if (isIdentifier(childNode)) {\n const childSymbol = getSymbolAtLocation(childNode);\n if (childSymbol && childSymbol === testedSymbol) {\n if (isIdentifier(expr) || isIdentifier(testedNode) && isBinaryExpression(testedNode.parent)) {\n return true;\n }\n let testedExpression = testedNode.parent;\n let childExpression = childNode.parent;\n while (testedExpression && childExpression) {\n if (isIdentifier(testedExpression) && isIdentifier(childExpression) || testedExpression.kind === 110 /* ThisKeyword */ && childExpression.kind === 110 /* ThisKeyword */) {\n return getSymbolAtLocation(testedExpression) === getSymbolAtLocation(childExpression);\n } else if (isPropertyAccessExpression(testedExpression) && isPropertyAccessExpression(childExpression)) {\n if (getSymbolAtLocation(testedExpression.name) !== getSymbolAtLocation(childExpression.name)) {\n return false;\n }\n childExpression = childExpression.expression;\n testedExpression = testedExpression.expression;\n } else if (isCallExpression(testedExpression) && isCallExpression(childExpression)) {\n childExpression = childExpression.expression;\n testedExpression = testedExpression.expression;\n } else {\n return false;\n }\n }\n }\n }\n return forEachChild(childNode, check);\n });\n }\n function isSymbolUsedInBinaryExpressionChain(node, testedSymbol) {\n while (isBinaryExpression(node) && node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n const isUsed = forEachChild(node.right, function visit(child) {\n if (isIdentifier(child)) {\n const symbol = getSymbolAtLocation(child);\n if (symbol && symbol === testedSymbol) {\n return true;\n }\n }\n return forEachChild(child, visit);\n });\n if (isUsed) {\n return true;\n }\n node = node.parent;\n }\n return false;\n }\n function checkDoStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n checkSourceElement(node.statement);\n checkTruthinessExpression(node.expression);\n }\n function checkWhileStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n checkTruthinessExpression(node.expression);\n checkSourceElement(node.statement);\n }\n function checkTruthinessOfType(type, node) {\n if (type.flags & 16384 /* Void */) {\n error2(node, Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness);\n } else {\n const semantics = getSyntacticTruthySemantics(node);\n if (semantics !== 3 /* Sometimes */) {\n error2(\n node,\n semantics === 1 /* Always */ ? Diagnostics.This_kind_of_expression_is_always_truthy : Diagnostics.This_kind_of_expression_is_always_falsy\n );\n }\n }\n return type;\n }\n function getSyntacticTruthySemantics(node) {\n node = skipOuterExpressions(node);\n switch (node.kind) {\n case 9 /* NumericLiteral */:\n if (node.text === \"0\" || node.text === \"1\") {\n return 3 /* Sometimes */;\n }\n return 1 /* Always */;\n case 210 /* ArrayLiteralExpression */:\n case 220 /* ArrowFunction */:\n case 10 /* BigIntLiteral */:\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 285 /* JsxElement */:\n case 286 /* JsxSelfClosingElement */:\n case 211 /* ObjectLiteralExpression */:\n case 14 /* RegularExpressionLiteral */:\n return 1 /* Always */;\n case 223 /* VoidExpression */:\n case 106 /* NullKeyword */:\n return 2 /* Never */;\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 11 /* StringLiteral */:\n return !!node.text ? 1 /* Always */ : 2 /* Never */;\n case 228 /* ConditionalExpression */:\n return getSyntacticTruthySemantics(node.whenTrue) | getSyntacticTruthySemantics(node.whenFalse);\n case 80 /* Identifier */:\n if (getResolvedSymbol(node) === undefinedSymbol) {\n return 2 /* Never */;\n }\n return 3 /* Sometimes */;\n }\n return 3 /* Sometimes */;\n }\n function checkTruthinessExpression(node, checkMode) {\n return checkTruthinessOfType(checkExpression(node, checkMode), node);\n }\n function checkForStatement(node) {\n if (!checkGrammarStatementInAmbientContext(node)) {\n if (node.initializer && node.initializer.kind === 262 /* VariableDeclarationList */) {\n checkGrammarVariableDeclarationList(node.initializer);\n }\n }\n if (node.initializer) {\n if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n checkVariableDeclarationList(node.initializer);\n } else {\n checkExpression(node.initializer);\n }\n }\n if (node.condition) checkTruthinessExpression(node.condition);\n if (node.incrementor) checkExpression(node.incrementor);\n checkSourceElement(node.statement);\n if (node.locals) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n function checkForOfStatement(node) {\n checkGrammarForInOrForOfStatement(node);\n const container = getContainingFunctionOrClassStaticBlock(node);\n if (node.awaitModifier) {\n if (container && isClassStaticBlockDeclaration(container)) {\n grammarErrorOnNode(node.awaitModifier, Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block);\n } else {\n const functionFlags = getFunctionFlags(container);\n if ((functionFlags & (4 /* Invalid */ | 2 /* Async */)) === 2 /* Async */ && languageVersion < LanguageFeatureMinimumTarget.ForAwaitOf) {\n checkExternalEmitHelpers(node, 16384 /* ForAwaitOfIncludes */);\n }\n }\n } else if (compilerOptions.downlevelIteration && languageVersion < LanguageFeatureMinimumTarget.ForOf) {\n checkExternalEmitHelpers(node, 256 /* ForOfIncludes */);\n }\n if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n checkVariableDeclarationList(node.initializer);\n } else {\n const varExpr = node.initializer;\n const iteratedType = checkRightHandSideOfForOf(node);\n if (varExpr.kind === 210 /* ArrayLiteralExpression */ || varExpr.kind === 211 /* ObjectLiteralExpression */) {\n checkDestructuringAssignment(varExpr, iteratedType || errorType);\n } else {\n const leftType = checkExpression(varExpr);\n checkReferenceExpression(\n varExpr,\n Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,\n Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access\n );\n if (iteratedType) {\n checkTypeAssignableToAndOptionallyElaborate(iteratedType, leftType, varExpr, node.expression);\n }\n }\n }\n checkSourceElement(node.statement);\n if (node.locals) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n function checkForInStatement(node) {\n checkGrammarForInOrForOfStatement(node);\n const rightType = getNonNullableTypeIfNeeded(checkExpression(node.expression));\n if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n const variable = node.initializer.declarations[0];\n if (variable && isBindingPattern(variable.name)) {\n error2(variable.name, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);\n }\n checkVariableDeclarationList(node.initializer);\n } else {\n const varExpr = node.initializer;\n const leftType = checkExpression(varExpr);\n if (varExpr.kind === 210 /* ArrayLiteralExpression */ || varExpr.kind === 211 /* ObjectLiteralExpression */) {\n error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);\n } else if (!isTypeAssignableTo(getIndexTypeOrString(rightType), leftType)) {\n error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any);\n } else {\n checkReferenceExpression(\n varExpr,\n Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,\n Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access\n );\n }\n }\n if (rightType === neverType || !isTypeAssignableToKind(rightType, 67108864 /* NonPrimitive */ | 58982400 /* InstantiableNonPrimitive */)) {\n error2(node.expression, Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0, typeToString(rightType));\n }\n checkSourceElement(node.statement);\n if (node.locals) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n function checkRightHandSideOfForOf(statement) {\n const use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */;\n return checkIteratedTypeOrElementType(use, checkNonNullExpression(statement.expression), undefinedType, statement.expression);\n }\n function checkIteratedTypeOrElementType(use, inputType, sentType, errorNode) {\n if (isTypeAny(inputType)) {\n return inputType;\n }\n return getIteratedTypeOrElementType(\n use,\n inputType,\n sentType,\n errorNode,\n /*checkAssignability*/\n true\n ) || anyType;\n }\n function getIteratedTypeOrElementType(use, inputType, sentType, errorNode, checkAssignability) {\n const allowAsyncIterables = (use & 2 /* AllowsAsyncIterablesFlag */) !== 0;\n if (inputType === neverType) {\n if (errorNode) {\n reportTypeNotIterableError(errorNode, inputType, allowAsyncIterables);\n }\n return void 0;\n }\n const uplevelIteration = languageVersion >= 2 /* ES2015 */;\n const downlevelIteration = !uplevelIteration && compilerOptions.downlevelIteration;\n const possibleOutOfBounds = compilerOptions.noUncheckedIndexedAccess && !!(use & 128 /* PossiblyOutOfBounds */);\n if (uplevelIteration || downlevelIteration || allowAsyncIterables) {\n const iterationTypes = getIterationTypesOfIterable(inputType, use, uplevelIteration ? errorNode : void 0);\n if (checkAssignability) {\n if (iterationTypes) {\n const diagnostic = use & 8 /* ForOfFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0 : use & 32 /* SpreadFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0 : use & 64 /* DestructuringFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0 : use & 16 /* YieldStarFlag */ ? Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0 : void 0;\n if (diagnostic) {\n checkTypeAssignableTo(sentType, iterationTypes.nextType, errorNode, diagnostic);\n }\n }\n }\n if (iterationTypes || uplevelIteration) {\n return possibleOutOfBounds ? includeUndefinedInIndexSignature(iterationTypes && iterationTypes.yieldType) : iterationTypes && iterationTypes.yieldType;\n }\n }\n let arrayType = inputType;\n let hasStringConstituent = false;\n if (use & 4 /* AllowsStringInputFlag */) {\n if (arrayType.flags & 1048576 /* Union */) {\n const arrayTypes = inputType.types;\n const filteredTypes = filter(arrayTypes, (t) => !(t.flags & 402653316 /* StringLike */));\n if (filteredTypes !== arrayTypes) {\n arrayType = getUnionType(filteredTypes, 2 /* Subtype */);\n }\n } else if (arrayType.flags & 402653316 /* StringLike */) {\n arrayType = neverType;\n }\n hasStringConstituent = arrayType !== inputType;\n if (hasStringConstituent) {\n if (arrayType.flags & 131072 /* Never */) {\n return possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType;\n }\n }\n }\n if (!isArrayLikeType(arrayType)) {\n if (errorNode) {\n const allowsStrings = !!(use & 4 /* AllowsStringInputFlag */) && !hasStringConstituent;\n const [defaultDiagnostic, maybeMissingAwait] = getIterationDiagnosticDetails(allowsStrings, downlevelIteration);\n errorAndMaybeSuggestAwait(\n errorNode,\n maybeMissingAwait && !!getAwaitedTypeOfPromise(arrayType),\n defaultDiagnostic,\n typeToString(arrayType)\n );\n }\n return hasStringConstituent ? possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType : void 0;\n }\n const arrayElementType = getIndexTypeOfType(arrayType, numberType);\n if (hasStringConstituent && arrayElementType) {\n if (arrayElementType.flags & 402653316 /* StringLike */ && !compilerOptions.noUncheckedIndexedAccess) {\n return stringType;\n }\n return getUnionType(possibleOutOfBounds ? [arrayElementType, stringType, undefinedType] : [arrayElementType, stringType], 2 /* Subtype */);\n }\n return use & 128 /* PossiblyOutOfBounds */ ? includeUndefinedInIndexSignature(arrayElementType) : arrayElementType;\n function getIterationDiagnosticDetails(allowsStrings, downlevelIteration2) {\n var _a;\n if (downlevelIteration2) {\n return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true] : [Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true];\n }\n const yieldType = getIterationTypeOfIterable(\n use,\n 0 /* Yield */,\n inputType,\n /*errorNode*/\n void 0\n );\n if (yieldType) {\n return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, false];\n }\n if (isES2015OrLaterIterable((_a = inputType.symbol) == null ? void 0 : _a.escapedName)) {\n return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, true];\n }\n return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type, true] : [Diagnostics.Type_0_is_not_an_array_type, true];\n }\n }\n function isES2015OrLaterIterable(n) {\n switch (n) {\n case \"Float32Array\":\n case \"Float64Array\":\n case \"Int16Array\":\n case \"Int32Array\":\n case \"Int8Array\":\n case \"NodeList\":\n case \"Uint16Array\":\n case \"Uint32Array\":\n case \"Uint8Array\":\n case \"Uint8ClampedArray\":\n return true;\n }\n return false;\n }\n function getIterationTypeOfIterable(use, typeKind, inputType, errorNode) {\n if (isTypeAny(inputType)) {\n return void 0;\n }\n const iterationTypes = getIterationTypesOfIterable(inputType, use, errorNode);\n return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(typeKind)];\n }\n function createIterationTypes(yieldType = neverType, returnType = neverType, nextType = unknownType) {\n if (yieldType.flags & 67359327 /* Intrinsic */ && returnType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */) && nextType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */)) {\n const id = getTypeListId([yieldType, returnType, nextType]);\n let iterationTypes = iterationTypesCache.get(id);\n if (!iterationTypes) {\n iterationTypes = { yieldType, returnType, nextType };\n iterationTypesCache.set(id, iterationTypes);\n }\n return iterationTypes;\n }\n return { yieldType, returnType, nextType };\n }\n function combineIterationTypes(array) {\n let yieldTypes;\n let returnTypes;\n let nextTypes;\n for (const iterationTypes of array) {\n if (iterationTypes === void 0 || iterationTypes === noIterationTypes) {\n continue;\n }\n if (iterationTypes === anyIterationTypes) {\n return anyIterationTypes;\n }\n yieldTypes = append(yieldTypes, iterationTypes.yieldType);\n returnTypes = append(returnTypes, iterationTypes.returnType);\n nextTypes = append(nextTypes, iterationTypes.nextType);\n }\n if (yieldTypes || returnTypes || nextTypes) {\n return createIterationTypes(\n yieldTypes && getUnionType(yieldTypes),\n returnTypes && getUnionType(returnTypes),\n nextTypes && getIntersectionType(nextTypes)\n );\n }\n return noIterationTypes;\n }\n function getCachedIterationTypes(type, cacheKey) {\n return type[cacheKey];\n }\n function setCachedIterationTypes(type, cacheKey, cachedTypes2) {\n return type[cacheKey] = cachedTypes2;\n }\n function getIterationTypesOfIterable(type, use, errorNode) {\n var _a, _b;\n if (type === silentNeverType) {\n return silentNeverIterationTypes;\n }\n if (isTypeAny(type)) {\n return anyIterationTypes;\n }\n if (!(type.flags & 1048576 /* Union */)) {\n const errorOutputContainer = errorNode ? { errors: void 0, skipLogging: true } : void 0;\n const iterationTypes2 = getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer);\n if (iterationTypes2 === noIterationTypes) {\n if (errorNode) {\n const rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */));\n if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) {\n addRelatedInfo(rootDiag, ...errorOutputContainer.errors);\n }\n }\n return void 0;\n } else if ((_a = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _a.length) {\n for (const diag2 of errorOutputContainer.errors) {\n diagnostics.add(diag2);\n }\n }\n return iterationTypes2;\n }\n const cacheKey = use & 2 /* AllowsAsyncIterablesFlag */ ? \"iterationTypesOfAsyncIterable\" : \"iterationTypesOfIterable\";\n const cachedTypes2 = getCachedIterationTypes(type, cacheKey);\n if (cachedTypes2) return cachedTypes2 === noIterationTypes ? void 0 : cachedTypes2;\n let allIterationTypes;\n for (const constituent of type.types) {\n const errorOutputContainer = errorNode ? { errors: void 0 } : void 0;\n const iterationTypes2 = getIterationTypesOfIterableWorker(constituent, use, errorNode, errorOutputContainer);\n if (iterationTypes2 === noIterationTypes) {\n if (errorNode) {\n const rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */));\n if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) {\n addRelatedInfo(rootDiag, ...errorOutputContainer.errors);\n }\n }\n setCachedIterationTypes(type, cacheKey, noIterationTypes);\n return void 0;\n } else if ((_b = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _b.length) {\n for (const diag2 of errorOutputContainer.errors) {\n diagnostics.add(diag2);\n }\n }\n allIterationTypes = append(allIterationTypes, iterationTypes2);\n }\n const iterationTypes = allIterationTypes ? combineIterationTypes(allIterationTypes) : noIterationTypes;\n setCachedIterationTypes(type, cacheKey, iterationTypes);\n return iterationTypes === noIterationTypes ? void 0 : iterationTypes;\n }\n function getAsyncFromSyncIterationTypes(iterationTypes, errorNode) {\n if (iterationTypes === noIterationTypes) return noIterationTypes;\n if (iterationTypes === anyIterationTypes) return anyIterationTypes;\n const { yieldType, returnType, nextType } = iterationTypes;\n if (errorNode) {\n getGlobalAwaitedSymbol(\n /*reportErrors*/\n true\n );\n }\n return createIterationTypes(\n getAwaitedType(yieldType, errorNode) || anyType,\n getAwaitedType(returnType, errorNode) || anyType,\n nextType\n );\n }\n function getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer) {\n if (isTypeAny(type)) {\n return anyIterationTypes;\n }\n let noCache = false;\n if (use & 2 /* AllowsAsyncIterablesFlag */) {\n const iterationTypes = getIterationTypesOfIterableCached(type, asyncIterationTypesResolver) || getIterationTypesOfIterableFast(type, asyncIterationTypesResolver);\n if (iterationTypes) {\n if (iterationTypes === noIterationTypes && errorNode) {\n noCache = true;\n } else {\n return use & 8 /* ForOfFlag */ ? getAsyncFromSyncIterationTypes(iterationTypes, errorNode) : iterationTypes;\n }\n }\n }\n if (use & 1 /* AllowsSyncIterablesFlag */) {\n let iterationTypes = getIterationTypesOfIterableCached(type, syncIterationTypesResolver) || getIterationTypesOfIterableFast(type, syncIterationTypesResolver);\n if (iterationTypes) {\n if (iterationTypes === noIterationTypes && errorNode) {\n noCache = true;\n } else {\n if (use & 2 /* AllowsAsyncIterablesFlag */) {\n if (iterationTypes !== noIterationTypes) {\n iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode);\n return noCache ? iterationTypes : setCachedIterationTypes(type, \"iterationTypesOfAsyncIterable\", iterationTypes);\n }\n } else {\n return iterationTypes;\n }\n }\n }\n }\n if (use & 2 /* AllowsAsyncIterablesFlag */) {\n const iterationTypes = getIterationTypesOfIterableSlow(type, asyncIterationTypesResolver, errorNode, errorOutputContainer, noCache);\n if (iterationTypes !== noIterationTypes) {\n return iterationTypes;\n }\n }\n if (use & 1 /* AllowsSyncIterablesFlag */) {\n let iterationTypes = getIterationTypesOfIterableSlow(type, syncIterationTypesResolver, errorNode, errorOutputContainer, noCache);\n if (iterationTypes !== noIterationTypes) {\n if (use & 2 /* AllowsAsyncIterablesFlag */) {\n iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode);\n return noCache ? iterationTypes : setCachedIterationTypes(type, \"iterationTypesOfAsyncIterable\", iterationTypes);\n } else {\n return iterationTypes;\n }\n }\n }\n return noIterationTypes;\n }\n function getIterationTypesOfIterableCached(type, resolver) {\n return getCachedIterationTypes(type, resolver.iterableCacheKey);\n }\n function getIterationTypesOfIterableFast(type, resolver) {\n if (isReferenceToType2(type, resolver.getGlobalIterableType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalIteratorObjectType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalIterableIteratorType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalGeneratorType(\n /*reportErrors*/\n false\n ))) {\n const [yieldType, returnType, nextType] = getTypeArguments(type);\n return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(\n yieldType,\n /*errorNode*/\n void 0\n ) || yieldType, resolver.resolveIterationType(\n returnType,\n /*errorNode*/\n void 0\n ) || returnType, nextType));\n }\n if (isReferenceToSomeType(type, resolver.getGlobalBuiltinIteratorTypes())) {\n const [yieldType] = getTypeArguments(type);\n const returnType = getBuiltinIteratorReturnType();\n const nextType = unknownType;\n return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(\n yieldType,\n /*errorNode*/\n void 0\n ) || yieldType, resolver.resolveIterationType(\n returnType,\n /*errorNode*/\n void 0\n ) || returnType, nextType));\n }\n }\n function getPropertyNameForKnownSymbolName(symbolName2) {\n const ctorType = getGlobalESSymbolConstructorSymbol(\n /*reportErrors*/\n false\n );\n const uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), escapeLeadingUnderscores(symbolName2));\n return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : `__@${symbolName2}`;\n }\n function getIterationTypesOfIterableSlow(type, resolver, errorNode, errorOutputContainer, noCache) {\n const method = getPropertyOfType(type, getPropertyNameForKnownSymbolName(resolver.iteratorSymbolName));\n const methodType = method && !(method.flags & 16777216 /* Optional */) ? getTypeOfSymbol(method) : void 0;\n if (isTypeAny(methodType)) {\n return noCache ? anyIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, anyIterationTypes);\n }\n const allSignatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : void 0;\n const validSignatures = filter(allSignatures, (sig) => getMinArgumentCount(sig) === 0);\n if (!some(validSignatures)) {\n if (errorNode && some(allSignatures)) {\n checkTypeAssignableTo(\n type,\n resolver.getGlobalIterableType(\n /*reportErrors*/\n true\n ),\n errorNode,\n /*headMessage*/\n void 0,\n /*containingMessageChain*/\n void 0,\n errorOutputContainer\n );\n }\n return noCache ? noIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, noIterationTypes);\n }\n const iteratorType = getIntersectionType(map(validSignatures, getReturnTypeOfSignature));\n const iterationTypes = getIterationTypesOfIteratorWorker(iteratorType, resolver, errorNode, errorOutputContainer, noCache) ?? noIterationTypes;\n return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, iterationTypes);\n }\n function reportTypeNotIterableError(errorNode, type, allowAsyncIterables) {\n const message = allowAsyncIterables ? Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator : Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator;\n const suggestAwait = (\n // for (const x of Promise<...>) or [...Promise<...>]\n !!getAwaitedTypeOfPromise(type) || !allowAsyncIterables && isForOfStatement(errorNode.parent) && errorNode.parent.expression === errorNode && getGlobalAsyncIterableType(\n /*reportErrors*/\n false\n ) !== emptyGenericType && isTypeAssignableTo(type, createTypeFromGenericGlobalType(getGlobalAsyncIterableType(\n /*reportErrors*/\n false\n ), [anyType, anyType, anyType]))\n );\n return errorAndMaybeSuggestAwait(errorNode, suggestAwait, message, typeToString(type));\n }\n function getIterationTypesOfIterator(type, resolver, errorNode, errorOutputContainer) {\n return getIterationTypesOfIteratorWorker(\n type,\n resolver,\n errorNode,\n errorOutputContainer,\n /*noCache*/\n false\n );\n }\n function getIterationTypesOfIteratorWorker(type, resolver, errorNode, errorOutputContainer, noCache) {\n if (isTypeAny(type)) {\n return anyIterationTypes;\n }\n let iterationTypes = getIterationTypesOfIteratorCached(type, resolver) || getIterationTypesOfIteratorFast(type, resolver);\n if (iterationTypes === noIterationTypes && errorNode) {\n iterationTypes = void 0;\n noCache = true;\n }\n iterationTypes ?? (iterationTypes = getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache));\n return iterationTypes === noIterationTypes ? void 0 : iterationTypes;\n }\n function getIterationTypesOfIteratorCached(type, resolver) {\n return getCachedIterationTypes(type, resolver.iteratorCacheKey);\n }\n function getIterationTypesOfIteratorFast(type, resolver) {\n if (isReferenceToType2(type, resolver.getGlobalIterableIteratorType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalIteratorType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalIteratorObjectType(\n /*reportErrors*/\n false\n )) || isReferenceToType2(type, resolver.getGlobalGeneratorType(\n /*reportErrors*/\n false\n ))) {\n const [yieldType, returnType, nextType] = getTypeArguments(type);\n return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType));\n }\n if (isReferenceToSomeType(type, resolver.getGlobalBuiltinIteratorTypes())) {\n const [yieldType] = getTypeArguments(type);\n const returnType = getBuiltinIteratorReturnType();\n const nextType = unknownType;\n return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType));\n }\n }\n function isIteratorResult(type, kind) {\n const doneType = getTypeOfPropertyOfType(type, \"done\") || falseType;\n return isTypeAssignableTo(kind === 0 /* Yield */ ? falseType : trueType, doneType);\n }\n function isYieldIteratorResult(type) {\n return isIteratorResult(type, 0 /* Yield */);\n }\n function isReturnIteratorResult(type) {\n return isIteratorResult(type, 1 /* Return */);\n }\n function getIterationTypesOfIteratorResult(type) {\n if (isTypeAny(type)) {\n return anyIterationTypes;\n }\n const cachedTypes2 = getCachedIterationTypes(type, \"iterationTypesOfIteratorResult\");\n if (cachedTypes2) {\n return cachedTypes2;\n }\n if (isReferenceToType2(type, getGlobalIteratorYieldResultType(\n /*reportErrors*/\n false\n ))) {\n const yieldType2 = getTypeArguments(type)[0];\n return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n yieldType2,\n /*returnType*/\n void 0,\n /*nextType*/\n void 0\n ));\n }\n if (isReferenceToType2(type, getGlobalIteratorReturnResultType(\n /*reportErrors*/\n false\n ))) {\n const returnType2 = getTypeArguments(type)[0];\n return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n /*yieldType*/\n void 0,\n returnType2,\n /*nextType*/\n void 0\n ));\n }\n const yieldIteratorResult = filterType(type, isYieldIteratorResult);\n const yieldType = yieldIteratorResult !== neverType ? getTypeOfPropertyOfType(yieldIteratorResult, \"value\") : void 0;\n const returnIteratorResult = filterType(type, isReturnIteratorResult);\n const returnType = returnIteratorResult !== neverType ? getTypeOfPropertyOfType(returnIteratorResult, \"value\") : void 0;\n if (!yieldType && !returnType) {\n return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", noIterationTypes);\n }\n return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n yieldType,\n returnType || voidType,\n /*nextType*/\n void 0\n ));\n }\n function getIterationTypesOfMethod(type, resolver, methodName, errorNode, errorOutputContainer) {\n var _a, _b, _c, _d;\n const method = getPropertyOfType(type, methodName);\n if (!method && methodName !== \"next\") {\n return void 0;\n }\n const methodType = method && !(methodName === \"next\" && method.flags & 16777216 /* Optional */) ? methodName === \"next\" ? getTypeOfSymbol(method) : getTypeWithFacts(getTypeOfSymbol(method), 2097152 /* NEUndefinedOrNull */) : void 0;\n if (isTypeAny(methodType)) {\n return anyIterationTypes;\n }\n const methodSignatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : emptyArray;\n if (methodSignatures.length === 0) {\n if (errorNode) {\n const diagnostic = methodName === \"next\" ? resolver.mustHaveANextMethodDiagnostic : resolver.mustBeAMethodDiagnostic;\n if (errorOutputContainer) {\n errorOutputContainer.errors ?? (errorOutputContainer.errors = []);\n errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, diagnostic, methodName));\n } else {\n error2(errorNode, diagnostic, methodName);\n }\n }\n return methodName === \"next\" ? noIterationTypes : void 0;\n }\n if ((methodType == null ? void 0 : methodType.symbol) && methodSignatures.length === 1) {\n const globalGeneratorType = resolver.getGlobalGeneratorType(\n /*reportErrors*/\n false\n );\n const globalIteratorType = resolver.getGlobalIteratorType(\n /*reportErrors*/\n false\n );\n const isGeneratorMethod = ((_b = (_a = globalGeneratorType.symbol) == null ? void 0 : _a.members) == null ? void 0 : _b.get(methodName)) === methodType.symbol;\n const isIteratorMethod = !isGeneratorMethod && ((_d = (_c = globalIteratorType.symbol) == null ? void 0 : _c.members) == null ? void 0 : _d.get(methodName)) === methodType.symbol;\n if (isGeneratorMethod || isIteratorMethod) {\n const globalType = isGeneratorMethod ? globalGeneratorType : globalIteratorType;\n const { mapper } = methodType;\n return createIterationTypes(\n getMappedType(globalType.typeParameters[0], mapper),\n getMappedType(globalType.typeParameters[1], mapper),\n methodName === \"next\" ? getMappedType(globalType.typeParameters[2], mapper) : void 0\n );\n }\n }\n let methodParameterTypes;\n let methodReturnTypes;\n for (const signature of methodSignatures) {\n if (methodName !== \"throw\" && some(signature.parameters)) {\n methodParameterTypes = append(methodParameterTypes, getTypeAtPosition(signature, 0));\n }\n methodReturnTypes = append(methodReturnTypes, getReturnTypeOfSignature(signature));\n }\n let returnTypes;\n let nextType;\n if (methodName !== \"throw\") {\n const methodParameterType = methodParameterTypes ? getUnionType(methodParameterTypes) : unknownType;\n if (methodName === \"next\") {\n nextType = methodParameterType;\n } else if (methodName === \"return\") {\n const resolvedMethodParameterType = resolver.resolveIterationType(methodParameterType, errorNode) || anyType;\n returnTypes = append(returnTypes, resolvedMethodParameterType);\n }\n }\n let yieldType;\n const methodReturnType = methodReturnTypes ? getIntersectionType(methodReturnTypes) : neverType;\n const resolvedMethodReturnType = resolver.resolveIterationType(methodReturnType, errorNode) || anyType;\n const iterationTypes = getIterationTypesOfIteratorResult(resolvedMethodReturnType);\n if (iterationTypes === noIterationTypes) {\n if (errorNode) {\n if (errorOutputContainer) {\n errorOutputContainer.errors ?? (errorOutputContainer.errors = []);\n errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, resolver.mustHaveAValueDiagnostic, methodName));\n } else {\n error2(errorNode, resolver.mustHaveAValueDiagnostic, methodName);\n }\n }\n yieldType = anyType;\n returnTypes = append(returnTypes, anyType);\n } else {\n yieldType = iterationTypes.yieldType;\n returnTypes = append(returnTypes, iterationTypes.returnType);\n }\n return createIterationTypes(yieldType, getUnionType(returnTypes), nextType);\n }\n function getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache) {\n const iterationTypes = combineIterationTypes([\n getIterationTypesOfMethod(type, resolver, \"next\", errorNode, errorOutputContainer),\n getIterationTypesOfMethod(type, resolver, \"return\", errorNode, errorOutputContainer),\n getIterationTypesOfMethod(type, resolver, \"throw\", errorNode, errorOutputContainer)\n ]);\n return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iteratorCacheKey, iterationTypes);\n }\n function getIterationTypeOfGeneratorFunctionReturnType(kind, returnType, isAsyncGenerator) {\n if (isTypeAny(returnType)) {\n return void 0;\n }\n const iterationTypes = getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsyncGenerator);\n return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(kind)];\n }\n function getIterationTypesOfGeneratorFunctionReturnType(type, isAsyncGenerator) {\n if (isTypeAny(type)) {\n return anyIterationTypes;\n }\n const use = isAsyncGenerator ? 2 /* AsyncGeneratorReturnType */ : 1 /* GeneratorReturnType */;\n const resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver;\n return getIterationTypesOfIterable(\n type,\n use,\n /*errorNode*/\n void 0\n ) || getIterationTypesOfIterator(\n type,\n resolver,\n /*errorNode*/\n void 0,\n /*errorOutputContainer*/\n void 0\n );\n }\n function checkBreakOrContinueStatement(node) {\n if (!checkGrammarStatementInAmbientContext(node)) checkGrammarBreakOrContinueStatement(node);\n }\n function unwrapReturnType(returnType, functionFlags) {\n const isGenerator = !!(functionFlags & 1 /* Generator */);\n const isAsync = !!(functionFlags & 2 /* Async */);\n if (isGenerator) {\n const returnIterationType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, isAsync);\n if (!returnIterationType) {\n return errorType;\n }\n return isAsync ? getAwaitedTypeNoAlias(unwrapAwaitedType(returnIterationType)) : returnIterationType;\n }\n return isAsync ? getAwaitedTypeNoAlias(returnType) || errorType : returnType;\n }\n function isUnwrappedReturnTypeUndefinedVoidOrAny(func, returnType) {\n const type = unwrapReturnType(returnType, getFunctionFlags(func));\n return !!(type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */)));\n }\n function checkReturnStatement(node) {\n if (checkGrammarStatementInAmbientContext(node)) {\n return;\n }\n const container = getContainingFunctionOrClassStaticBlock(node);\n if (container && isClassStaticBlockDeclaration(container)) {\n grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block);\n return;\n }\n if (!container) {\n grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body);\n return;\n }\n const signature = getSignatureFromDeclaration(container);\n const returnType = getReturnTypeOfSignature(signature);\n if (strictNullChecks || node.expression || returnType.flags & 131072 /* Never */) {\n const exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType;\n if (container.kind === 179 /* SetAccessor */) {\n if (node.expression) {\n error2(node, Diagnostics.Setters_cannot_return_a_value);\n }\n } else if (container.kind === 177 /* Constructor */) {\n const exprType2 = node.expression ? checkExpressionCached(node.expression) : undefinedType;\n if (node.expression && !checkTypeAssignableToAndOptionallyElaborate(exprType2, returnType, node, node.expression)) {\n error2(node, Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);\n }\n } else if (getReturnTypeFromAnnotation(container)) {\n const unwrappedReturnType = unwrapReturnType(returnType, getFunctionFlags(container)) ?? returnType;\n checkReturnExpression(container, unwrappedReturnType, node, node.expression, exprType);\n }\n } else if (container.kind !== 177 /* Constructor */ && compilerOptions.noImplicitReturns && !isUnwrappedReturnTypeUndefinedVoidOrAny(container, returnType)) {\n error2(node, Diagnostics.Not_all_code_paths_return_a_value);\n }\n }\n function checkReturnExpression(container, unwrappedReturnType, node, expr, exprType, inConditionalExpression = false) {\n const excludeJSDocTypeAssertions = isInJSFile(node);\n const functionFlags = getFunctionFlags(container);\n if (expr) {\n const unwrappedExpr = skipParentheses(expr, excludeJSDocTypeAssertions);\n if (isConditionalExpression(unwrappedExpr)) {\n checkReturnExpression(\n container,\n unwrappedReturnType,\n node,\n unwrappedExpr.whenTrue,\n checkExpression(unwrappedExpr.whenTrue),\n /*inConditionalExpression*/\n true\n );\n checkReturnExpression(\n container,\n unwrappedReturnType,\n node,\n unwrappedExpr.whenFalse,\n checkExpression(unwrappedExpr.whenFalse),\n /*inConditionalExpression*/\n true\n );\n return;\n }\n }\n const inReturnStatement = node.kind === 254 /* ReturnStatement */;\n const unwrappedExprType = functionFlags & 2 /* Async */ ? checkAwaitedType(\n exprType,\n /*withAlias*/\n false,\n node,\n Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n ) : exprType;\n const effectiveExpr = expr && getEffectiveCheckNode(expr);\n const errorNode = inReturnStatement && !inConditionalExpression ? node : effectiveExpr;\n checkTypeAssignableToAndOptionallyElaborate(unwrappedExprType, unwrappedReturnType, errorNode, effectiveExpr);\n }\n function checkWithStatement(node) {\n if (!checkGrammarStatementInAmbientContext(node)) {\n if (node.flags & 65536 /* AwaitContext */) {\n grammarErrorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_an_async_function_block);\n }\n }\n checkExpression(node.expression);\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n const start = getSpanOfTokenAtPosition(sourceFile, node.pos).start;\n const end = node.statement.pos;\n grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any);\n }\n }\n function checkSwitchStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n let firstDefaultClause;\n let hasDuplicateDefaultClause = false;\n const expressionType = checkExpression(node.expression);\n forEach(node.caseBlock.clauses, (clause) => {\n if (clause.kind === 298 /* DefaultClause */ && !hasDuplicateDefaultClause) {\n if (firstDefaultClause === void 0) {\n firstDefaultClause = clause;\n } else {\n grammarErrorOnNode(clause, Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement);\n hasDuplicateDefaultClause = true;\n }\n }\n if (clause.kind === 297 /* CaseClause */) {\n addLazyDiagnostic(createLazyCaseClauseDiagnostics(clause));\n }\n forEach(clause.statements, checkSourceElement);\n if (compilerOptions.noFallthroughCasesInSwitch && clause.fallthroughFlowNode && isReachableFlowNode(clause.fallthroughFlowNode)) {\n error2(clause, Diagnostics.Fallthrough_case_in_switch);\n }\n function createLazyCaseClauseDiagnostics(clause2) {\n return () => {\n const caseType = checkExpression(clause2.expression);\n if (!isTypeEqualityComparableTo(expressionType, caseType)) {\n checkTypeComparableTo(\n caseType,\n expressionType,\n clause2.expression,\n /*headMessage*/\n void 0\n );\n }\n };\n }\n });\n if (node.caseBlock.locals) {\n registerForUnusedIdentifiersCheck(node.caseBlock);\n }\n }\n function checkLabeledStatement(node) {\n if (!checkGrammarStatementInAmbientContext(node)) {\n findAncestor(node.parent, (current) => {\n if (isFunctionLike(current)) {\n return \"quit\";\n }\n if (current.kind === 257 /* LabeledStatement */ && current.label.escapedText === node.label.escapedText) {\n grammarErrorOnNode(node.label, Diagnostics.Duplicate_label_0, getTextOfNode(node.label));\n return true;\n }\n return false;\n });\n }\n checkSourceElement(node.statement);\n }\n function checkThrowStatement(node) {\n if (!checkGrammarStatementInAmbientContext(node)) {\n if (isIdentifier(node.expression) && !node.expression.escapedText) {\n grammarErrorAfterFirstToken(node, Diagnostics.Line_break_not_permitted_here);\n }\n }\n if (node.expression) {\n checkExpression(node.expression);\n }\n }\n function checkTryStatement(node) {\n checkGrammarStatementInAmbientContext(node);\n checkBlock(node.tryBlock);\n const catchClause = node.catchClause;\n if (catchClause) {\n if (catchClause.variableDeclaration) {\n const declaration = catchClause.variableDeclaration;\n checkVariableLikeDeclaration(declaration);\n const typeNode = getEffectiveTypeAnnotationNode(declaration);\n if (typeNode) {\n const type = getTypeFromTypeNode(typeNode);\n if (type && !(type.flags & 3 /* AnyOrUnknown */)) {\n grammarErrorOnFirstToken(typeNode, Diagnostics.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified);\n }\n } else if (declaration.initializer) {\n grammarErrorOnFirstToken(declaration.initializer, Diagnostics.Catch_clause_variable_cannot_have_an_initializer);\n } else {\n const blockLocals = catchClause.block.locals;\n if (blockLocals) {\n forEachKey(catchClause.locals, (caughtName) => {\n const blockLocal = blockLocals.get(caughtName);\n if ((blockLocal == null ? void 0 : blockLocal.valueDeclaration) && (blockLocal.flags & 2 /* BlockScopedVariable */) !== 0) {\n grammarErrorOnNode(blockLocal.valueDeclaration, Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, unescapeLeadingUnderscores(caughtName));\n }\n });\n }\n }\n }\n checkBlock(catchClause.block);\n }\n if (node.finallyBlock) {\n checkBlock(node.finallyBlock);\n }\n }\n function checkIndexConstraints(type, symbol, isStaticIndex) {\n const indexInfos = getIndexInfosOfType(type);\n if (indexInfos.length === 0) {\n return;\n }\n for (const prop of getPropertiesOfObjectType(type)) {\n if (!(isStaticIndex && prop.flags & 4194304 /* Prototype */)) {\n checkIndexConstraintForProperty(type, prop, getLiteralTypeFromProperty(\n prop,\n 8576 /* StringOrNumberLiteralOrUnique */,\n /*includeNonPublic*/\n true\n ), getNonMissingTypeOfSymbol(prop));\n }\n }\n const typeDeclaration = symbol.valueDeclaration;\n if (typeDeclaration && isClassLike(typeDeclaration)) {\n for (const member of typeDeclaration.members) {\n if ((!isStaticIndex && !isStatic(member) || isStaticIndex && isStatic(member)) && !hasBindableName(member)) {\n const symbol2 = getSymbolOfDeclaration(member);\n checkIndexConstraintForProperty(type, symbol2, getTypeOfExpression(member.name.expression), getNonMissingTypeOfSymbol(symbol2));\n }\n }\n }\n if (indexInfos.length > 1) {\n for (const info of indexInfos) {\n checkIndexConstraintForIndexSignature(type, info);\n }\n }\n }\n function checkIndexConstraintForProperty(type, prop, propNameType, propType) {\n const declaration = prop.valueDeclaration;\n const name = getNameOfDeclaration(declaration);\n if (name && isPrivateIdentifier(name)) {\n return;\n }\n const indexInfos = getApplicableIndexInfos(type, propNameType);\n const interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 265 /* InterfaceDeclaration */) : void 0;\n const propDeclaration = declaration && declaration.kind === 227 /* BinaryExpression */ || name && name.kind === 168 /* ComputedPropertyName */ ? declaration : void 0;\n const localPropDeclaration = getParentOfSymbol(prop) === type.symbol ? declaration : void 0;\n for (const info of indexInfos) {\n const localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0;\n const errorNode = localPropDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), (base) => !!getPropertyOfObjectType(base, prop.escapedName) && !!getIndexTypeOfType(base, info.keyType)) ? interfaceDeclaration : void 0);\n if (errorNode && !isTypeAssignableTo(propType, info.type)) {\n const diagnostic = createError(errorNode, Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3, symbolToString(prop), typeToString(propType), typeToString(info.keyType), typeToString(info.type));\n if (propDeclaration && errorNode !== propDeclaration) {\n addRelatedInfo(diagnostic, createDiagnosticForNode(propDeclaration, Diagnostics._0_is_declared_here, symbolToString(prop)));\n }\n diagnostics.add(diagnostic);\n }\n }\n }\n function checkIndexConstraintForIndexSignature(type, checkInfo) {\n const declaration = checkInfo.declaration;\n const indexInfos = getApplicableIndexInfos(type, checkInfo.keyType);\n const interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 265 /* InterfaceDeclaration */) : void 0;\n const localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfDeclaration(declaration)) === type.symbol ? declaration : void 0;\n for (const info of indexInfos) {\n if (info === checkInfo) continue;\n const localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0;\n const errorNode = localCheckDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), (base) => !!getIndexInfoOfType(base, checkInfo.keyType) && !!getIndexTypeOfType(base, info.keyType)) ? interfaceDeclaration : void 0);\n if (errorNode && !isTypeAssignableTo(checkInfo.type, info.type)) {\n error2(errorNode, Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3, typeToString(checkInfo.keyType), typeToString(checkInfo.type), typeToString(info.keyType), typeToString(info.type));\n }\n }\n }\n function checkTypeNameIsReserved(name, message) {\n switch (name.escapedText) {\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"string\":\n case \"symbol\":\n case \"void\":\n case \"object\":\n case \"undefined\":\n error2(name, message, name.escapedText);\n }\n }\n function checkClassNameCollisionWithObject(name) {\n if (languageVersion >= 1 /* ES5 */ && name.escapedText === \"Object\" && host.getEmitModuleFormatOfFile(getSourceFileOfNode(name)) < 5 /* ES2015 */) {\n error2(name, Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0, ModuleKind[moduleKind]);\n }\n }\n function checkUnmatchedJSDocParameters(node) {\n const jsdocParameters = filter(getJSDocTags(node), isJSDocParameterTag);\n if (!length(jsdocParameters)) return;\n const isJs = isInJSFile(node);\n const parameters = /* @__PURE__ */ new Set();\n const excludedParameters = /* @__PURE__ */ new Set();\n forEach(node.parameters, ({ name }, index) => {\n if (isIdentifier(name)) {\n parameters.add(name.escapedText);\n }\n if (isBindingPattern(name)) {\n excludedParameters.add(index);\n }\n });\n const containsArguments = containsArgumentsReference(node);\n if (containsArguments) {\n const lastJSDocParamIndex = jsdocParameters.length - 1;\n const lastJSDocParam = jsdocParameters[lastJSDocParamIndex];\n if (isJs && lastJSDocParam && isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression && lastJSDocParam.typeExpression.type && !parameters.has(lastJSDocParam.name.escapedText) && !excludedParameters.has(lastJSDocParamIndex) && !isArrayType(getTypeFromTypeNode(lastJSDocParam.typeExpression.type))) {\n error2(lastJSDocParam.name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, idText(lastJSDocParam.name));\n }\n } else {\n forEach(jsdocParameters, ({ name, isNameFirst }, index) => {\n if (excludedParameters.has(index) || isIdentifier(name) && parameters.has(name.escapedText)) {\n return;\n }\n if (isQualifiedName(name)) {\n if (isJs) {\n error2(name, Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, entityNameToString(name), entityNameToString(name.left));\n }\n } else {\n if (!isNameFirst) {\n errorOrSuggestion(isJs, name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, idText(name));\n }\n }\n });\n }\n }\n function checkTypeParameters(typeParameterDeclarations) {\n let seenDefault = false;\n if (typeParameterDeclarations) {\n for (let i = 0; i < typeParameterDeclarations.length; i++) {\n const node = typeParameterDeclarations[i];\n checkTypeParameter(node);\n addLazyDiagnostic(createCheckTypeParameterDiagnostic(node, i));\n }\n }\n function createCheckTypeParameterDiagnostic(node, i) {\n return () => {\n if (node.default) {\n seenDefault = true;\n checkTypeParametersNotReferenced(node.default, typeParameterDeclarations, i);\n } else if (seenDefault) {\n error2(node, Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters);\n }\n for (let j = 0; j < i; j++) {\n if (typeParameterDeclarations[j].symbol === node.symbol) {\n error2(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name));\n }\n }\n };\n }\n }\n function checkTypeParametersNotReferenced(root, typeParameters, index) {\n visit(root);\n function visit(node) {\n if (node.kind === 184 /* TypeReference */) {\n const type = getTypeFromTypeReference(node);\n if (type.flags & 262144 /* TypeParameter */) {\n for (let i = index; i < typeParameters.length; i++) {\n if (type.symbol === getSymbolOfDeclaration(typeParameters[i])) {\n error2(node, Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters);\n }\n }\n }\n }\n forEachChild(node, visit);\n }\n }\n function checkTypeParameterListsIdentical(symbol) {\n if (symbol.declarations && symbol.declarations.length === 1) {\n return;\n }\n const links = getSymbolLinks(symbol);\n if (!links.typeParametersChecked) {\n links.typeParametersChecked = true;\n const declarations = getClassOrInterfaceDeclarationsOfSymbol(symbol);\n if (!declarations || declarations.length <= 1) {\n return;\n }\n const type = getDeclaredTypeOfSymbol(symbol);\n if (!areTypeParametersIdentical(declarations, type.localTypeParameters, getEffectiveTypeParameterDeclarations)) {\n const name = symbolToString(symbol);\n for (const declaration of declarations) {\n error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_type_parameters, name);\n }\n }\n }\n }\n function areTypeParametersIdentical(declarations, targetParameters, getTypeParameterDeclarations) {\n const maxTypeArgumentCount = length(targetParameters);\n const minTypeArgumentCount = getMinTypeArgumentCount(targetParameters);\n for (const declaration of declarations) {\n const sourceParameters = getTypeParameterDeclarations(declaration);\n const numTypeParameters = sourceParameters.length;\n if (numTypeParameters < minTypeArgumentCount || numTypeParameters > maxTypeArgumentCount) {\n return false;\n }\n for (let i = 0; i < numTypeParameters; i++) {\n const source = sourceParameters[i];\n const target = targetParameters[i];\n if (source.name.escapedText !== target.symbol.escapedName) {\n return false;\n }\n const constraint = getEffectiveConstraintOfTypeParameter(source);\n const sourceConstraint = constraint && getTypeFromTypeNode(constraint);\n const targetConstraint = getConstraintOfTypeParameter(target);\n if (sourceConstraint && targetConstraint && !isTypeIdenticalTo(sourceConstraint, targetConstraint)) {\n return false;\n }\n const sourceDefault = source.default && getTypeFromTypeNode(source.default);\n const targetDefault = getDefaultFromTypeParameter(target);\n if (sourceDefault && targetDefault && !isTypeIdenticalTo(sourceDefault, targetDefault)) {\n return false;\n }\n }\n }\n return true;\n }\n function getFirstTransformableStaticClassElement(node) {\n const willTransformStaticElementsOfDecoratedClass = !legacyDecorators && languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators && classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n );\n const willTransformPrivateElementsOrClassStaticBlocks = languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators;\n const willTransformInitializers = !emitStandardClassFields;\n if (willTransformStaticElementsOfDecoratedClass || willTransformPrivateElementsOrClassStaticBlocks) {\n for (const member of node.members) {\n if (willTransformStaticElementsOfDecoratedClass && classElementOrClassElementParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n member,\n node\n )) {\n return firstOrUndefined(getDecorators(node)) ?? node;\n } else if (willTransformPrivateElementsOrClassStaticBlocks) {\n if (isClassStaticBlockDeclaration(member)) {\n return member;\n } else if (isStatic(member)) {\n if (isPrivateIdentifierClassElementDeclaration(member) || willTransformInitializers && isInitializedProperty(member)) {\n return member;\n }\n }\n }\n }\n }\n }\n function checkClassExpressionExternalHelpers(node) {\n if (node.name) return;\n const parent2 = walkUpOuterExpressions(node);\n if (!isNamedEvaluationSource(parent2)) return;\n const willTransformESDecorators = !legacyDecorators && languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators;\n let location;\n if (willTransformESDecorators && classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n )) {\n location = firstOrUndefined(getDecorators(node)) ?? node;\n } else {\n location = getFirstTransformableStaticClassElement(node);\n }\n if (location) {\n checkExternalEmitHelpers(location, 4194304 /* SetFunctionName */);\n if ((isPropertyAssignment(parent2) || isPropertyDeclaration(parent2) || isBindingElement(parent2)) && isComputedPropertyName(parent2.name)) {\n checkExternalEmitHelpers(location, 8388608 /* PropKey */);\n }\n }\n }\n function checkClassExpression(node) {\n checkClassLikeDeclaration(node);\n checkNodeDeferred(node);\n checkClassExpressionExternalHelpers(node);\n return getTypeOfSymbol(getSymbolOfDeclaration(node));\n }\n function checkClassExpressionDeferred(node) {\n forEach(node.members, checkSourceElement);\n registerForUnusedIdentifiersCheck(node);\n }\n function checkClassDeclaration(node) {\n const firstDecorator = find(node.modifiers, isDecorator);\n if (legacyDecorators && firstDecorator && some(node.members, (p) => hasStaticModifier(p) && isPrivateIdentifierClassElementDeclaration(p))) {\n grammarErrorOnNode(firstDecorator, Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator);\n }\n if (!node.name && !hasSyntacticModifier(node, 2048 /* Default */)) {\n grammarErrorOnFirstToken(node, Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name);\n }\n checkClassLikeDeclaration(node);\n forEach(node.members, checkSourceElement);\n registerForUnusedIdentifiersCheck(node);\n }\n function checkClassLikeDeclaration(node) {\n checkGrammarClassLikeDeclaration(node);\n checkDecorators(node);\n checkCollisionsForDeclarationName(node, node.name);\n checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n checkExportsOnMergedDeclarations(node);\n const symbol = getSymbolOfDeclaration(node);\n const type = getDeclaredTypeOfSymbol(symbol);\n const typeWithThis = getTypeWithThisArgument(type);\n const staticType = getTypeOfSymbol(symbol);\n checkTypeParameterListsIdentical(symbol);\n checkFunctionOrConstructorSymbol(symbol);\n checkClassForDuplicateDeclarations(node);\n const nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */);\n if (!nodeInAmbientContext) {\n checkClassForStaticPropertyNameConflicts(node);\n }\n const baseTypeNode = getEffectiveBaseTypeNode(node);\n if (baseTypeNode) {\n forEach(baseTypeNode.typeArguments, checkSourceElement);\n if (languageVersion < LanguageFeatureMinimumTarget.Classes) {\n checkExternalEmitHelpers(baseTypeNode.parent, 1 /* Extends */);\n }\n const extendsNode = getClassExtendsHeritageElement(node);\n if (extendsNode && extendsNode !== baseTypeNode) {\n checkExpression(extendsNode.expression);\n }\n const baseTypes = getBaseTypes(type);\n if (baseTypes.length) {\n addLazyDiagnostic(() => {\n const baseType = baseTypes[0];\n const baseConstructorType = getBaseConstructorTypeOfClass(type);\n const staticBaseType = getApparentType(baseConstructorType);\n checkBaseTypeAccessibility(staticBaseType, baseTypeNode);\n checkSourceElement(baseTypeNode.expression);\n if (some(baseTypeNode.typeArguments)) {\n forEach(baseTypeNode.typeArguments, checkSourceElement);\n for (const constructor of getConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode)) {\n if (!checkTypeArgumentConstraints(baseTypeNode, constructor.typeParameters)) {\n break;\n }\n }\n }\n const baseWithThis = getTypeWithThisArgument(baseType, type.thisType);\n if (!checkTypeAssignableTo(\n typeWithThis,\n baseWithThis,\n /*errorNode*/\n void 0\n )) {\n issueMemberSpecificError(node, typeWithThis, baseWithThis, Diagnostics.Class_0_incorrectly_extends_base_class_1);\n } else {\n checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1);\n }\n if (baseConstructorType.flags & 8650752 /* TypeVariable */) {\n if (!isMixinConstructorType(staticType)) {\n error2(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any);\n } else {\n const constructSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */);\n if (constructSignatures.some((signature) => signature.flags & 4 /* Abstract */) && !hasSyntacticModifier(node, 64 /* Abstract */)) {\n error2(node.name || node, Diagnostics.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract);\n }\n }\n }\n if (!(staticBaseType.symbol && staticBaseType.symbol.flags & 32 /* Class */) && !(baseConstructorType.flags & 8650752 /* TypeVariable */)) {\n const constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode);\n if (forEach(constructors, (sig) => !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType))) {\n error2(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type);\n }\n }\n checkKindsOfPropertyMemberOverrides(type, baseType);\n });\n }\n }\n checkMembersForOverrideModifier(node, type, typeWithThis, staticType);\n const implementedTypeNodes = getEffectiveImplementsTypeNodes(node);\n if (implementedTypeNodes) {\n for (const typeRefNode of implementedTypeNodes) {\n if (!isEntityNameExpression(typeRefNode.expression) || isOptionalChain(typeRefNode.expression)) {\n error2(typeRefNode.expression, Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments);\n }\n checkTypeReferenceNode(typeRefNode);\n addLazyDiagnostic(createImplementsDiagnostics(typeRefNode));\n }\n }\n addLazyDiagnostic(() => {\n checkIndexConstraints(type, symbol);\n checkIndexConstraints(\n staticType,\n symbol,\n /*isStaticIndex*/\n true\n );\n checkTypeForDuplicateIndexSignatures(node);\n checkPropertyInitialization(node);\n });\n function createImplementsDiagnostics(typeRefNode) {\n return () => {\n const t = getReducedType(getTypeFromTypeNode(typeRefNode));\n if (!isErrorType(t)) {\n if (isValidBaseType(t)) {\n const genericDiag = t.symbol && t.symbol.flags & 32 /* Class */ ? Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : Diagnostics.Class_0_incorrectly_implements_interface_1;\n const baseWithThis = getTypeWithThisArgument(t, type.thisType);\n if (!checkTypeAssignableTo(\n typeWithThis,\n baseWithThis,\n /*errorNode*/\n void 0\n )) {\n issueMemberSpecificError(node, typeWithThis, baseWithThis, genericDiag);\n }\n } else {\n error2(typeRefNode, Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members);\n }\n }\n };\n }\n }\n function checkMembersForOverrideModifier(node, type, typeWithThis, staticType) {\n const baseTypeNode = getEffectiveBaseTypeNode(node);\n const baseTypes = baseTypeNode && getBaseTypes(type);\n const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;\n const baseStaticType = getBaseConstructorTypeOfClass(type);\n for (const member of node.members) {\n if (hasAmbientModifier(member)) {\n continue;\n }\n if (isConstructorDeclaration(member)) {\n forEach(member.parameters, (param) => {\n if (isParameterPropertyDeclaration(param, member)) {\n checkExistingMemberForOverrideModifier(\n node,\n staticType,\n baseStaticType,\n baseWithThis,\n type,\n typeWithThis,\n param,\n /*memberIsParameterProperty*/\n true\n );\n }\n });\n }\n checkExistingMemberForOverrideModifier(\n node,\n staticType,\n baseStaticType,\n baseWithThis,\n type,\n typeWithThis,\n member,\n /*memberIsParameterProperty*/\n false\n );\n }\n }\n function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors2 = true) {\n const declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member);\n if (!declaredProp) {\n return 0 /* Ok */;\n }\n return checkMemberForOverrideModifier(\n node,\n staticType,\n baseStaticType,\n baseWithThis,\n type,\n typeWithThis,\n hasOverrideModifier(member),\n hasAbstractModifier(member),\n isStatic(member),\n memberIsParameterProperty,\n declaredProp,\n reportErrors2 ? member : void 0\n );\n }\n function checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, memberHasAbstractModifier, memberIsStatic, memberIsParameterProperty, member, errorNode) {\n const isJs = isInJSFile(node);\n const nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */);\n if (memberHasOverrideModifier && (member == null ? void 0 : member.valueDeclaration) && isClassElement(member.valueDeclaration) && member.valueDeclaration.name && isNonBindableDynamicName(member.valueDeclaration.name)) {\n error2(\n errorNode,\n isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic\n );\n return 2 /* HasInvalidOverride */;\n }\n if (baseWithThis && (memberHasOverrideModifier || compilerOptions.noImplicitOverride)) {\n const thisType = memberIsStatic ? staticType : typeWithThis;\n const baseType = memberIsStatic ? baseStaticType : baseWithThis;\n const prop = getPropertyOfType(thisType, member.escapedName);\n const baseProp = getPropertyOfType(baseType, member.escapedName);\n const baseClassName = typeToString(baseWithThis);\n if (prop && !baseProp && memberHasOverrideModifier) {\n if (errorNode) {\n const suggestion = getSuggestedSymbolForNonexistentClassMember(symbolName(member), baseType);\n suggestion ? error2(\n errorNode,\n isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1,\n baseClassName,\n symbolToString(suggestion)\n ) : error2(\n errorNode,\n isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0,\n baseClassName\n );\n }\n return 2 /* HasInvalidOverride */;\n } else if (prop && (baseProp == null ? void 0 : baseProp.declarations) && compilerOptions.noImplicitOverride && !nodeInAmbientContext) {\n const baseHasAbstract = some(baseProp.declarations, hasAbstractModifier);\n if (memberHasOverrideModifier) {\n return 0 /* Ok */;\n }\n if (!baseHasAbstract) {\n if (errorNode) {\n const diag2 = memberIsParameterProperty ? isJs ? Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0 : isJs ? Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0;\n error2(errorNode, diag2, baseClassName);\n }\n return 1 /* NeedsOverride */;\n } else if (memberHasAbstractModifier && baseHasAbstract) {\n if (errorNode) {\n error2(errorNode, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName);\n }\n return 1 /* NeedsOverride */;\n }\n }\n } else if (memberHasOverrideModifier) {\n if (errorNode) {\n const className = typeToString(type);\n error2(\n errorNode,\n isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class,\n className\n );\n }\n return 2 /* HasInvalidOverride */;\n }\n return 0 /* Ok */;\n }\n function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {\n let issuedMemberError = false;\n for (const member of node.members) {\n if (isStatic(member)) {\n continue;\n }\n const declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member);\n if (declaredProp) {\n const prop = getPropertyOfType(typeWithThis, declaredProp.escapedName);\n const baseProp = getPropertyOfType(baseWithThis, declaredProp.escapedName);\n if (prop && baseProp) {\n const rootChain = () => chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2,\n symbolToString(declaredProp),\n typeToString(typeWithThis),\n typeToString(baseWithThis)\n );\n if (!checkTypeAssignableTo(\n getTypeOfSymbol(prop),\n getTypeOfSymbol(baseProp),\n member.name || member,\n /*headMessage*/\n void 0,\n rootChain\n )) {\n issuedMemberError = true;\n }\n }\n }\n }\n if (!issuedMemberError) {\n checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag);\n }\n }\n function checkBaseTypeAccessibility(type, node) {\n const signatures = getSignaturesOfType(type, 1 /* Construct */);\n if (signatures.length) {\n const declaration = signatures[0].declaration;\n if (declaration && hasEffectiveModifier(declaration, 2 /* Private */)) {\n const typeClassDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n if (!isNodeWithinClass(node, typeClassDeclaration)) {\n error2(node, Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, getFullyQualifiedName(type.symbol));\n }\n }\n }\n }\n function getMemberOverrideModifierStatus(node, member, memberSymbol) {\n if (!member.name) {\n return 0 /* Ok */;\n }\n const classSymbol = getSymbolOfDeclaration(node);\n const type = getDeclaredTypeOfSymbol(classSymbol);\n const typeWithThis = getTypeWithThisArgument(type);\n const staticType = getTypeOfSymbol(classSymbol);\n const baseTypeNode = getEffectiveBaseTypeNode(node);\n const baseTypes = baseTypeNode && getBaseTypes(type);\n const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;\n const baseStaticType = getBaseConstructorTypeOfClass(type);\n const memberHasOverrideModifier = member.parent ? hasOverrideModifier(member) : hasSyntacticModifier(member, 16 /* Override */);\n return checkMemberForOverrideModifier(\n node,\n staticType,\n baseStaticType,\n baseWithThis,\n type,\n typeWithThis,\n memberHasOverrideModifier,\n hasAbstractModifier(member),\n isStatic(member),\n /*memberIsParameterProperty*/\n false,\n memberSymbol\n );\n }\n function getTargetSymbol(s) {\n return getCheckFlags(s) & 1 /* Instantiated */ ? s.links.target : s;\n }\n function getClassOrInterfaceDeclarationsOfSymbol(symbol) {\n return filter(symbol.declarations, (d) => d.kind === 264 /* ClassDeclaration */ || d.kind === 265 /* InterfaceDeclaration */);\n }\n function checkKindsOfPropertyMemberOverrides(type, baseType) {\n var _a, _b, _c, _d, _e;\n const baseProperties = getPropertiesOfType(baseType);\n const notImplementedInfo = /* @__PURE__ */ new Map();\n basePropertyCheck: for (const baseProperty of baseProperties) {\n const base = getTargetSymbol(baseProperty);\n if (base.flags & 4194304 /* Prototype */) {\n continue;\n }\n const baseSymbol = getPropertyOfObjectType(type, base.escapedName);\n if (!baseSymbol) {\n continue;\n }\n const derived = getTargetSymbol(baseSymbol);\n const baseDeclarationFlags = getDeclarationModifierFlagsFromSymbol(base);\n Debug.assert(!!derived, \"derived should point to something, even if it is the base class' declaration.\");\n if (derived === base) {\n const derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol);\n if (baseDeclarationFlags & 64 /* Abstract */ && (!derivedClassDecl || !hasSyntacticModifier(derivedClassDecl, 64 /* Abstract */))) {\n for (const otherBaseType of getBaseTypes(type)) {\n if (otherBaseType === baseType) continue;\n const baseSymbol2 = getPropertyOfObjectType(otherBaseType, base.escapedName);\n const derivedElsewhere = baseSymbol2 && getTargetSymbol(baseSymbol2);\n if (derivedElsewhere && derivedElsewhere !== base) {\n continue basePropertyCheck;\n }\n }\n const baseTypeName = typeToString(baseType);\n const typeName = typeToString(type);\n const basePropertyName = symbolToString(baseProperty);\n const missedProperties = append((_a = notImplementedInfo.get(derivedClassDecl)) == null ? void 0 : _a.missedProperties, basePropertyName);\n notImplementedInfo.set(derivedClassDecl, { baseTypeName, typeName, missedProperties });\n }\n } else {\n const derivedDeclarationFlags = getDeclarationModifierFlagsFromSymbol(derived);\n if (baseDeclarationFlags & 2 /* Private */ || derivedDeclarationFlags & 2 /* Private */) {\n continue;\n }\n let errorMessage;\n const basePropertyFlags = base.flags & 98308 /* PropertyOrAccessor */;\n const derivedPropertyFlags = derived.flags & 98308 /* PropertyOrAccessor */;\n if (basePropertyFlags && derivedPropertyFlags) {\n if ((getCheckFlags(base) & 6 /* Synthetic */ ? (_b = base.declarations) == null ? void 0 : _b.some((d) => isPropertyAbstractOrInterface(d, baseDeclarationFlags)) : (_c = base.declarations) == null ? void 0 : _c.every((d) => isPropertyAbstractOrInterface(d, baseDeclarationFlags))) || getCheckFlags(base) & 262144 /* Mapped */ || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration)) {\n continue;\n }\n const overriddenInstanceProperty = basePropertyFlags !== 4 /* Property */ && derivedPropertyFlags === 4 /* Property */;\n const overriddenInstanceAccessor = basePropertyFlags === 4 /* Property */ && derivedPropertyFlags !== 4 /* Property */;\n if (overriddenInstanceProperty || overriddenInstanceAccessor) {\n const errorMessage2 = overriddenInstanceProperty ? Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property : Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor;\n error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType), typeToString(type));\n } else if (useDefineForClassFields) {\n const uninitialized = (_d = derived.declarations) == null ? void 0 : _d.find((d) => d.kind === 173 /* PropertyDeclaration */ && !d.initializer);\n if (uninitialized && !(derived.flags & 33554432 /* Transient */) && !(baseDeclarationFlags & 64 /* Abstract */) && !(derivedDeclarationFlags & 64 /* Abstract */) && !((_e = derived.declarations) == null ? void 0 : _e.some((d) => !!(d.flags & 33554432 /* Ambient */)))) {\n const constructor = findConstructorDeclaration(getClassLikeDeclarationOfSymbol(type.symbol));\n const propName = uninitialized.name;\n if (uninitialized.exclamationToken || !constructor || !isIdentifier(propName) || !strictNullChecks || !isPropertyInitializedInConstructor(propName, type, constructor)) {\n const errorMessage2 = Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;\n error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType));\n }\n }\n }\n continue;\n } else if (isPrototypeProperty(base)) {\n if (isPrototypeProperty(derived) || derived.flags & 4 /* Property */) {\n continue;\n } else {\n Debug.assert(!!(derived.flags & 98304 /* Accessor */));\n errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;\n }\n } else if (base.flags & 98304 /* Accessor */) {\n errorMessage = Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;\n } else {\n errorMessage = Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;\n }\n error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));\n }\n }\n for (const [errorNode, memberInfo] of notImplementedInfo) {\n if (length(memberInfo.missedProperties) === 1) {\n if (isClassExpression(errorNode)) {\n error2(errorNode, Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, first(memberInfo.missedProperties), memberInfo.baseTypeName);\n } else {\n error2(errorNode, Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2, memberInfo.typeName, first(memberInfo.missedProperties), memberInfo.baseTypeName);\n }\n } else if (length(memberInfo.missedProperties) > 5) {\n const missedProperties = map(memberInfo.missedProperties.slice(0, 4), (prop) => `'${prop}'`).join(\", \");\n const remainingMissedProperties = length(memberInfo.missedProperties) - 4;\n if (isClassExpression(errorNode)) {\n error2(errorNode, Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more, memberInfo.baseTypeName, missedProperties, remainingMissedProperties);\n } else {\n error2(errorNode, Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more, memberInfo.typeName, memberInfo.baseTypeName, missedProperties, remainingMissedProperties);\n }\n } else {\n const missedProperties = map(memberInfo.missedProperties, (prop) => `'${prop}'`).join(\", \");\n if (isClassExpression(errorNode)) {\n error2(errorNode, Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1, memberInfo.baseTypeName, missedProperties);\n } else {\n error2(errorNode, Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2, memberInfo.typeName, memberInfo.baseTypeName, missedProperties);\n }\n }\n }\n }\n function isPropertyAbstractOrInterface(declaration, baseDeclarationFlags) {\n return baseDeclarationFlags & 64 /* Abstract */ && (!isPropertyDeclaration(declaration) || !declaration.initializer) || isInterfaceDeclaration(declaration.parent);\n }\n function getNonInheritedProperties(type, baseTypes, properties) {\n if (!length(baseTypes)) {\n return properties;\n }\n const seen = /* @__PURE__ */ new Map();\n forEach(properties, (p) => {\n seen.set(p.escapedName, p);\n });\n for (const base of baseTypes) {\n const properties2 = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));\n for (const prop of properties2) {\n const existing = seen.get(prop.escapedName);\n if (existing && prop.parent === existing.parent) {\n seen.delete(prop.escapedName);\n }\n }\n }\n return arrayFrom(seen.values());\n }\n function checkInheritedPropertiesAreIdentical(type, typeNode) {\n const baseTypes = getBaseTypes(type);\n if (baseTypes.length < 2) {\n return true;\n }\n const seen = /* @__PURE__ */ new Map();\n forEach(resolveDeclaredMembers(type).declaredProperties, (p) => {\n seen.set(p.escapedName, { prop: p, containingType: type });\n });\n let ok = true;\n for (const base of baseTypes) {\n const properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));\n for (const prop of properties) {\n const existing = seen.get(prop.escapedName);\n if (!existing) {\n seen.set(prop.escapedName, { prop, containingType: base });\n } else {\n const isInheritedProperty = existing.containingType !== type;\n if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) {\n ok = false;\n const typeName1 = typeToString(existing.containingType);\n const typeName2 = typeToString(base);\n let errorInfo = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical,\n symbolToString(prop),\n typeName1,\n typeName2\n );\n errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2);\n diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(typeNode), typeNode, errorInfo));\n }\n }\n }\n }\n return ok;\n }\n function checkPropertyInitialization(node) {\n if (!strictNullChecks || !strictPropertyInitialization || node.flags & 33554432 /* Ambient */) {\n return;\n }\n const constructor = findConstructorDeclaration(node);\n for (const member of node.members) {\n if (getEffectiveModifierFlags(member) & 128 /* Ambient */) {\n continue;\n }\n if (!isStatic(member) && isPropertyWithoutInitializer(member)) {\n const propName = member.name;\n if (isIdentifier(propName) || isPrivateIdentifier(propName) || isComputedPropertyName(propName)) {\n const type = getTypeOfSymbol(getSymbolOfDeclaration(member));\n if (!(type.flags & 3 /* AnyOrUnknown */ || containsUndefinedType(type))) {\n if (!constructor || !isPropertyInitializedInConstructor(propName, type, constructor)) {\n error2(member.name, Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, declarationNameToString(propName));\n }\n }\n }\n }\n }\n }\n function isPropertyWithoutInitializer(node) {\n return node.kind === 173 /* PropertyDeclaration */ && !hasAbstractModifier(node) && !node.exclamationToken && !node.initializer;\n }\n function isPropertyInitializedInStaticBlocks(propName, propType, staticBlocks, startPos, endPos) {\n for (const staticBlock of staticBlocks) {\n if (staticBlock.pos >= startPos && staticBlock.pos <= endPos) {\n const reference = factory.createPropertyAccessExpression(factory.createThis(), propName);\n setParent(reference.expression, reference);\n setParent(reference, staticBlock);\n reference.flowNode = staticBlock.returnFlowNode;\n const flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));\n if (!containsUndefinedType(flowType)) {\n return true;\n }\n }\n }\n return false;\n }\n function isPropertyInitializedInConstructor(propName, propType, constructor) {\n const reference = isComputedPropertyName(propName) ? factory.createElementAccessExpression(factory.createThis(), propName.expression) : factory.createPropertyAccessExpression(factory.createThis(), propName);\n setParent(reference.expression, reference);\n setParent(reference, constructor);\n reference.flowNode = constructor.returnFlowNode;\n const flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));\n return !containsUndefinedType(flowType);\n }\n function checkInterfaceDeclaration(node) {\n if (!checkGrammarModifiers(node)) checkGrammarInterfaceDeclaration(node);\n if (!allowBlockDeclarations(node.parent)) {\n grammarErrorOnNode(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, \"interface\");\n }\n checkTypeParameters(node.typeParameters);\n addLazyDiagnostic(() => {\n checkTypeNameIsReserved(node.name, Diagnostics.Interface_name_cannot_be_0);\n checkExportsOnMergedDeclarations(node);\n const symbol = getSymbolOfDeclaration(node);\n checkTypeParameterListsIdentical(symbol);\n const firstInterfaceDecl = getDeclarationOfKind(symbol, 265 /* InterfaceDeclaration */);\n if (node === firstInterfaceDecl) {\n const type = getDeclaredTypeOfSymbol(symbol);\n const typeWithThis = getTypeWithThisArgument(type);\n if (checkInheritedPropertiesAreIdentical(type, node.name)) {\n for (const baseType of getBaseTypes(type)) {\n checkTypeAssignableTo(typeWithThis, getTypeWithThisArgument(baseType, type.thisType), node.name, Diagnostics.Interface_0_incorrectly_extends_interface_1);\n }\n checkIndexConstraints(type, symbol);\n }\n }\n checkObjectTypeForDuplicateDeclarations(node);\n });\n forEach(getInterfaceBaseTypeNodes(node), (heritageElement) => {\n if (!isEntityNameExpression(heritageElement.expression) || isOptionalChain(heritageElement.expression)) {\n error2(heritageElement.expression, Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments);\n }\n checkTypeReferenceNode(heritageElement);\n });\n forEach(node.members, checkSourceElement);\n addLazyDiagnostic(() => {\n checkTypeForDuplicateIndexSignatures(node);\n registerForUnusedIdentifiersCheck(node);\n });\n }\n function checkTypeAliasDeclaration(node) {\n checkGrammarModifiers(node);\n checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0);\n if (!allowBlockDeclarations(node.parent)) {\n grammarErrorOnNode(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, \"type\");\n }\n checkExportsOnMergedDeclarations(node);\n checkTypeParameters(node.typeParameters);\n if (node.type.kind === 141 /* IntrinsicKeyword */) {\n const typeParameterCount = length(node.typeParameters);\n const valid = typeParameterCount === 0 ? node.name.escapedText === \"BuiltinIteratorReturn\" : typeParameterCount === 1 && intrinsicTypeKinds.has(node.name.escapedText);\n if (!valid) {\n error2(node.type, Diagnostics.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types);\n }\n } else {\n checkSourceElement(node.type);\n registerForUnusedIdentifiersCheck(node);\n }\n }\n function computeEnumMemberValues(node) {\n const nodeLinks2 = getNodeLinks(node);\n if (!(nodeLinks2.flags & 1024 /* EnumValuesComputed */)) {\n nodeLinks2.flags |= 1024 /* EnumValuesComputed */;\n let autoValue = 0;\n let previous;\n for (const member of node.members) {\n const result = computeEnumMemberValue(member, autoValue, previous);\n getNodeLinks(member).enumMemberValue = result;\n autoValue = typeof result.value === \"number\" ? result.value + 1 : void 0;\n previous = member;\n }\n }\n }\n function computeEnumMemberValue(member, autoValue, previous) {\n if (isComputedNonLiteralName(member.name)) {\n error2(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums);\n } else if (isBigIntLiteral(member.name)) {\n error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);\n } else {\n const text = getTextOfPropertyName(member.name);\n if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) {\n error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);\n }\n }\n if (member.initializer) {\n return computeConstantEnumMemberValue(member);\n }\n if (member.parent.flags & 33554432 /* Ambient */ && !isEnumConst(member.parent)) {\n return evaluatorResult(\n /*value*/\n void 0\n );\n }\n if (autoValue === void 0) {\n error2(member.name, Diagnostics.Enum_member_must_have_initializer);\n return evaluatorResult(\n /*value*/\n void 0\n );\n }\n if (getIsolatedModules(compilerOptions) && (previous == null ? void 0 : previous.initializer)) {\n const prevValue = getEnumMemberValue(previous);\n if (!(typeof prevValue.value === \"number\" && !prevValue.resolvedOtherFiles)) {\n error2(\n member.name,\n Diagnostics.Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled\n );\n }\n }\n return evaluatorResult(autoValue);\n }\n function computeConstantEnumMemberValue(member) {\n const isConstEnum = isEnumConst(member.parent);\n const initializer = member.initializer;\n const result = evaluate(initializer, member);\n if (result.value !== void 0) {\n if (isConstEnum && typeof result.value === \"number\" && !isFinite(result.value)) {\n error2(\n initializer,\n isNaN(result.value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value\n );\n } else if (getIsolatedModules(compilerOptions) && typeof result.value === \"string\" && !result.isSyntacticallyString) {\n error2(\n initializer,\n Diagnostics._0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled,\n `${idText(member.parent.name)}.${getTextOfPropertyName(member.name)}`\n );\n }\n } else if (isConstEnum) {\n error2(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions);\n } else if (member.parent.flags & 33554432 /* Ambient */) {\n error2(initializer, Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression);\n } else {\n checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);\n }\n return result;\n }\n function evaluateEntityNameExpression(expr, location) {\n const symbol = resolveEntityName(\n expr,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n );\n if (!symbol) return evaluatorResult(\n /*value*/\n void 0\n );\n if (expr.kind === 80 /* Identifier */) {\n const identifier = expr;\n if (isInfinityOrNaNString(identifier.escapedText) && symbol === getGlobalSymbol(\n identifier.escapedText,\n 111551 /* Value */,\n /*diagnostic*/\n void 0\n )) {\n return evaluatorResult(\n +identifier.escapedText,\n /*isSyntacticallyString*/\n false\n );\n }\n }\n if (symbol.flags & 8 /* EnumMember */) {\n return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);\n }\n if (isConstantVariable(symbol)) {\n const declaration = symbol.valueDeclaration;\n if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {\n const result = evaluate(declaration.initializer, declaration);\n if (location && getSourceFileOfNode(location) !== getSourceFileOfNode(declaration)) {\n return evaluatorResult(\n result.value,\n /*isSyntacticallyString*/\n false,\n /*resolvedOtherFiles*/\n true,\n /*hasExternalReferences*/\n true\n );\n }\n return evaluatorResult(\n result.value,\n result.isSyntacticallyString,\n result.resolvedOtherFiles,\n /*hasExternalReferences*/\n true\n );\n }\n }\n return evaluatorResult(\n /*value*/\n void 0\n );\n }\n function evaluateElementAccessExpression(expr, location) {\n const root = expr.expression;\n if (isEntityNameExpression(root) && isStringLiteralLike(expr.argumentExpression)) {\n const rootSymbol = resolveEntityName(\n root,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n );\n if (rootSymbol && rootSymbol.flags & 384 /* Enum */) {\n const name = escapeLeadingUnderscores(expr.argumentExpression.text);\n const member = rootSymbol.exports.get(name);\n if (member) {\n Debug.assert(getSourceFileOfNode(member.valueDeclaration) === getSourceFileOfNode(rootSymbol.valueDeclaration));\n return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);\n }\n }\n }\n return evaluatorResult(\n /*value*/\n void 0\n );\n }\n function evaluateEnumMember(expr, symbol, location) {\n const declaration = symbol.valueDeclaration;\n if (!declaration || declaration === location) {\n error2(expr, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(symbol));\n return evaluatorResult(\n /*value*/\n void 0\n );\n }\n if (!isBlockScopedNameDeclaredBeforeUse(declaration, location)) {\n error2(expr, Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums);\n return evaluatorResult(\n /*value*/\n 0\n );\n }\n const value = getEnumMemberValue(declaration);\n if (location.parent !== declaration.parent) {\n return evaluatorResult(\n value.value,\n value.isSyntacticallyString,\n value.resolvedOtherFiles,\n /*hasExternalReferences*/\n true\n );\n }\n return value;\n }\n function checkEnumDeclaration(node) {\n addLazyDiagnostic(() => checkEnumDeclarationWorker(node));\n }\n function checkEnumDeclarationWorker(node) {\n checkGrammarModifiers(node);\n checkCollisionsForDeclarationName(node, node.name);\n checkExportsOnMergedDeclarations(node);\n node.members.forEach(checkSourceElement);\n if (compilerOptions.erasableSyntaxOnly && !(node.flags & 33554432 /* Ambient */)) {\n error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n }\n computeEnumMemberValues(node);\n const enumSymbol = getSymbolOfDeclaration(node);\n const firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind);\n if (node === firstDeclaration) {\n if (enumSymbol.declarations && enumSymbol.declarations.length > 1) {\n const enumIsConst = isEnumConst(node);\n forEach(enumSymbol.declarations, (decl) => {\n if (isEnumDeclaration(decl) && isEnumConst(decl) !== enumIsConst) {\n error2(getNameOfDeclaration(decl), Diagnostics.Enum_declarations_must_all_be_const_or_non_const);\n }\n });\n }\n let seenEnumMissingInitialInitializer = false;\n forEach(enumSymbol.declarations, (declaration) => {\n if (declaration.kind !== 267 /* EnumDeclaration */) {\n return false;\n }\n const enumDeclaration = declaration;\n if (!enumDeclaration.members.length) {\n return false;\n }\n const firstEnumMember = enumDeclaration.members[0];\n if (!firstEnumMember.initializer) {\n if (seenEnumMissingInitialInitializer) {\n error2(firstEnumMember.name, Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element);\n } else {\n seenEnumMissingInitialInitializer = true;\n }\n }\n });\n }\n }\n function checkEnumMember(node) {\n if (isPrivateIdentifier(node.name)) {\n error2(node, Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier);\n }\n if (node.initializer) {\n checkExpression(node.initializer);\n }\n }\n function getFirstNonAmbientClassOrFunctionDeclaration(symbol) {\n const declarations = symbol.declarations;\n if (declarations) {\n for (const declaration of declarations) {\n if ((declaration.kind === 264 /* ClassDeclaration */ || declaration.kind === 263 /* FunctionDeclaration */ && nodeIsPresent(declaration.body)) && !(declaration.flags & 33554432 /* Ambient */)) {\n return declaration;\n }\n }\n }\n return void 0;\n }\n function inSameLexicalScope(node1, node2) {\n const container1 = getEnclosingBlockScopeContainer(node1);\n const container2 = getEnclosingBlockScopeContainer(node2);\n if (isGlobalSourceFile(container1)) {\n return isGlobalSourceFile(container2);\n } else if (isGlobalSourceFile(container2)) {\n return false;\n } else {\n return container1 === container2;\n }\n }\n function checkModuleDeclaration(node) {\n if (node.body) {\n checkSourceElement(node.body);\n if (!isGlobalScopeAugmentation(node)) {\n registerForUnusedIdentifiersCheck(node);\n }\n }\n addLazyDiagnostic(checkModuleDeclarationDiagnostics);\n function checkModuleDeclarationDiagnostics() {\n var _a, _b;\n const isGlobalAugmentation = isGlobalScopeAugmentation(node);\n const inAmbientContext = node.flags & 33554432 /* Ambient */;\n if (isGlobalAugmentation && !inAmbientContext) {\n error2(node.name, Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);\n }\n const isAmbientExternalModule = isAmbientModule(node);\n const contextErrorMessage = isAmbientExternalModule ? Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file : Diagnostics.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module;\n if (checkGrammarModuleElementContext(node, contextErrorMessage)) {\n return;\n }\n if (!checkGrammarModifiers(node)) {\n if (!inAmbientContext && node.name.kind === 11 /* StringLiteral */) {\n grammarErrorOnNode(node.name, Diagnostics.Only_ambient_modules_can_use_quoted_names);\n }\n }\n if (isIdentifier(node.name)) {\n checkCollisionsForDeclarationName(node, node.name);\n if (!(node.flags & (32 /* Namespace */ | 2048 /* GlobalAugmentation */))) {\n const sourceFile = getSourceFileOfNode(node);\n const pos = getNonModifierTokenPosOfNode(node);\n const span = getSpanOfTokenAtPosition(sourceFile, pos);\n suggestionDiagnostics.add(\n createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead)\n );\n }\n }\n checkExportsOnMergedDeclarations(node);\n const symbol = getSymbolOfDeclaration(node);\n if (symbol.flags & 512 /* ValueModule */ && !inAmbientContext && isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions))) {\n if (compilerOptions.erasableSyntaxOnly) {\n error2(node.name, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n }\n if (getIsolatedModules(compilerOptions) && !getSourceFileOfNode(node).externalModuleIndicator) {\n error2(node.name, Diagnostics.Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement, isolatedModulesLikeFlagName);\n }\n if (((_a = symbol.declarations) == null ? void 0 : _a.length) > 1) {\n const firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);\n if (firstNonAmbientClassOrFunc) {\n if (getSourceFileOfNode(node) !== getSourceFileOfNode(firstNonAmbientClassOrFunc)) {\n error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged);\n } else if (node.pos < firstNonAmbientClassOrFunc.pos) {\n error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged);\n }\n }\n const mergedClass = getDeclarationOfKind(symbol, 264 /* ClassDeclaration */);\n if (mergedClass && inSameLexicalScope(node, mergedClass)) {\n getNodeLinks(node).flags |= 2048 /* LexicalModuleMergesWithClass */;\n }\n }\n if (compilerOptions.verbatimModuleSyntax && node.parent.kind === 308 /* SourceFile */ && host.getEmitModuleFormatOfFile(node.parent) === 1 /* CommonJS */) {\n const exportModifier = (_b = node.modifiers) == null ? void 0 : _b.find((m) => m.kind === 95 /* ExportKeyword */);\n if (exportModifier) {\n error2(exportModifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);\n }\n }\n }\n if (isAmbientExternalModule) {\n if (isExternalModuleAugmentation(node)) {\n const checkBody = isGlobalAugmentation || getSymbolOfDeclaration(node).flags & 33554432 /* Transient */;\n if (checkBody && node.body) {\n for (const statement of node.body.statements) {\n checkModuleAugmentationElement(statement, isGlobalAugmentation);\n }\n }\n } else if (isGlobalSourceFile(node.parent)) {\n if (isGlobalAugmentation) {\n error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);\n } else if (isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(node.name))) {\n error2(node.name, Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);\n }\n } else {\n if (isGlobalAugmentation) {\n error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);\n } else {\n error2(node.name, Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);\n }\n }\n }\n }\n }\n function checkModuleAugmentationElement(node, isGlobalAugmentation) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n for (const decl of node.declarationList.declarations) {\n checkModuleAugmentationElement(decl, isGlobalAugmentation);\n }\n break;\n case 278 /* ExportAssignment */:\n case 279 /* ExportDeclaration */:\n grammarErrorOnFirstToken(node, Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);\n break;\n case 272 /* ImportEqualsDeclaration */:\n if (isInternalModuleImportEqualsDeclaration(node)) break;\n // falls through\n case 273 /* ImportDeclaration */:\n grammarErrorOnFirstToken(node, Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);\n break;\n case 209 /* BindingElement */:\n case 261 /* VariableDeclaration */:\n const name = node.name;\n if (isBindingPattern(name)) {\n for (const el of name.elements) {\n checkModuleAugmentationElement(el, isGlobalAugmentation);\n }\n break;\n }\n // falls through\n case 264 /* ClassDeclaration */:\n case 267 /* EnumDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n if (isGlobalAugmentation) {\n return;\n }\n break;\n }\n }\n function getFirstNonModuleExportsIdentifier(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return node;\n case 167 /* QualifiedName */:\n do {\n node = node.left;\n } while (node.kind !== 80 /* Identifier */);\n return node;\n case 212 /* PropertyAccessExpression */:\n do {\n if (isModuleExportsAccessExpression(node.expression) && !isPrivateIdentifier(node.name)) {\n return node.name;\n }\n node = node.expression;\n } while (node.kind !== 80 /* Identifier */);\n return node;\n }\n }\n function checkExternalImportOrExportDeclaration(node) {\n const moduleName = getExternalModuleName(node);\n if (!moduleName || nodeIsMissing(moduleName)) {\n return false;\n }\n if (!isStringLiteral(moduleName)) {\n error2(moduleName, Diagnostics.String_literal_expected);\n return false;\n }\n const inAmbientExternalModule = node.parent.kind === 269 /* ModuleBlock */ && isAmbientModule(node.parent.parent);\n if (node.parent.kind !== 308 /* SourceFile */ && !inAmbientExternalModule) {\n error2(\n moduleName,\n node.kind === 279 /* ExportDeclaration */ ? Diagnostics.Export_declarations_are_not_permitted_in_a_namespace : Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module\n );\n return false;\n }\n if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) {\n if (!isTopLevelInExternalModuleAugmentation(node)) {\n error2(node, Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);\n return false;\n }\n }\n if (!isImportEqualsDeclaration(node) && node.attributes) {\n const diagnostic = node.attributes.token === 118 /* WithKeyword */ ? Diagnostics.Import_attribute_values_must_be_string_literal_expressions : Diagnostics.Import_assertion_values_must_be_string_literal_expressions;\n let hasError = false;\n for (const attr of node.attributes.elements) {\n if (!isStringLiteral(attr.value)) {\n hasError = true;\n error2(attr.value, diagnostic);\n }\n }\n return !hasError;\n }\n return true;\n }\n function checkModuleExportName(name, allowStringLiteral = true) {\n if (name === void 0 || name.kind !== 11 /* StringLiteral */) {\n return;\n }\n if (!allowStringLiteral) {\n grammarErrorOnNode(name, Diagnostics.Identifier_expected);\n } else if (moduleKind === 5 /* ES2015 */ || moduleKind === 6 /* ES2020 */) {\n grammarErrorOnNode(name, Diagnostics.String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020);\n }\n }\n function checkAliasSymbol(node) {\n var _a, _b, _c, _d, _e;\n let symbol = getSymbolOfDeclaration(node);\n const target = resolveAlias(symbol);\n if (target !== unknownSymbol) {\n symbol = getMergedSymbol(symbol.exportSymbol || symbol);\n if (isInJSFile(node) && !(target.flags & 111551 /* Value */) && !isTypeOnlyImportOrExportDeclaration(node)) {\n const errorNode = isImportOrExportSpecifier(node) ? node.propertyName || node.name : isNamedDeclaration(node) ? node.name : node;\n Debug.assert(node.kind !== 281 /* NamespaceExport */);\n if (node.kind === 282 /* ExportSpecifier */) {\n const diag2 = error2(errorNode, Diagnostics.Types_cannot_appear_in_export_declarations_in_JavaScript_files);\n const alreadyExportedSymbol = (_b = (_a = getSourceFileOfNode(node).symbol) == null ? void 0 : _a.exports) == null ? void 0 : _b.get(moduleExportNameTextEscaped(node.propertyName || node.name));\n if (alreadyExportedSymbol === target) {\n const exportingDeclaration = (_c = alreadyExportedSymbol.declarations) == null ? void 0 : _c.find(isJSDocNode);\n if (exportingDeclaration) {\n addRelatedInfo(\n diag2,\n createDiagnosticForNode(\n exportingDeclaration,\n Diagnostics._0_is_automatically_exported_here,\n unescapeLeadingUnderscores(alreadyExportedSymbol.escapedName)\n )\n );\n }\n }\n } else {\n Debug.assert(node.kind !== 261 /* VariableDeclaration */);\n const importDeclaration = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration));\n const moduleSpecifier = (importDeclaration && ((_d = tryGetModuleSpecifierFromDeclaration(importDeclaration)) == null ? void 0 : _d.text)) ?? \"...\";\n const importedIdentifier = unescapeLeadingUnderscores(isIdentifier(errorNode) ? errorNode.escapedText : symbol.escapedName);\n error2(\n errorNode,\n Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation,\n importedIdentifier,\n `import(\"${moduleSpecifier}\").${importedIdentifier}`\n );\n }\n return;\n }\n const targetFlags = getSymbolFlags(target);\n const excludedMeanings = (symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */) ? 111551 /* Value */ : 0) | (symbol.flags & 788968 /* Type */ ? 788968 /* Type */ : 0) | (symbol.flags & 1920 /* Namespace */ ? 1920 /* Namespace */ : 0);\n if (targetFlags & excludedMeanings) {\n const message = node.kind === 282 /* ExportSpecifier */ ? Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;\n error2(node, message, symbolToString(symbol));\n } else if (node.kind !== 282 /* ExportSpecifier */) {\n const appearsValueyToTranspiler = compilerOptions.isolatedModules && !findAncestor(node, isTypeOnlyImportOrExportDeclaration);\n if (appearsValueyToTranspiler && symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */)) {\n error2(\n node,\n Diagnostics.Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled,\n symbolToString(symbol),\n isolatedModulesLikeFlagName\n );\n }\n }\n if (getIsolatedModules(compilerOptions) && !isTypeOnlyImportOrExportDeclaration(node) && !(node.flags & 33554432 /* Ambient */)) {\n const typeOnlyAlias = getTypeOnlyAliasDeclaration(symbol);\n const isType = !(targetFlags & 111551 /* Value */);\n if (isType || typeOnlyAlias) {\n switch (node.kind) {\n case 274 /* ImportClause */:\n case 277 /* ImportSpecifier */:\n case 272 /* ImportEqualsDeclaration */: {\n if (compilerOptions.verbatimModuleSyntax) {\n Debug.assertIsDefined(node.name, \"An ImportClause with a symbol should have a name\");\n const message = compilerOptions.verbatimModuleSyntax && isInternalModuleImportEqualsDeclaration(node) ? Diagnostics.An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled : isType ? Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled;\n const name = moduleExportNameTextUnescaped(node.kind === 277 /* ImportSpecifier */ ? node.propertyName || node.name : node.name);\n addTypeOnlyDeclarationRelatedInfo(\n error2(node, message, name),\n isType ? void 0 : typeOnlyAlias,\n name\n );\n }\n if (isType && node.kind === 272 /* ImportEqualsDeclaration */ && hasEffectiveModifier(node, 32 /* Export */)) {\n error2(node, Diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, isolatedModulesLikeFlagName);\n }\n break;\n }\n case 282 /* ExportSpecifier */: {\n if (compilerOptions.verbatimModuleSyntax || getSourceFileOfNode(typeOnlyAlias) !== getSourceFileOfNode(node)) {\n const name = moduleExportNameTextUnescaped(node.propertyName || node.name);\n const diagnostic = isType ? error2(node, Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type, isolatedModulesLikeFlagName) : error2(node, Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled, name, isolatedModulesLikeFlagName);\n addTypeOnlyDeclarationRelatedInfo(diagnostic, isType ? void 0 : typeOnlyAlias, name);\n break;\n }\n }\n }\n }\n if (compilerOptions.verbatimModuleSyntax && node.kind !== 272 /* ImportEqualsDeclaration */ && !isInJSFile(node) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n error2(node, getVerbatimModuleSyntaxErrorMessage(node));\n } else if (moduleKind === 200 /* Preserve */ && node.kind !== 272 /* ImportEqualsDeclaration */ && node.kind !== 261 /* VariableDeclaration */ && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n error2(node, Diagnostics.ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve);\n }\n if (compilerOptions.verbatimModuleSyntax && !isTypeOnlyImportOrExportDeclaration(node) && !(node.flags & 33554432 /* Ambient */) && targetFlags & 128 /* ConstEnum */) {\n const constEnumDeclaration = target.valueDeclaration;\n const redirect = (_e = host.getRedirectFromOutput(getSourceFileOfNode(constEnumDeclaration).resolvedPath)) == null ? void 0 : _e.resolvedRef;\n if (constEnumDeclaration.flags & 33554432 /* Ambient */ && (!redirect || !shouldPreserveConstEnums(redirect.commandLine.options))) {\n error2(node, Diagnostics.Cannot_access_ambient_const_enums_when_0_is_enabled, isolatedModulesLikeFlagName);\n }\n }\n }\n if (isImportSpecifier(node)) {\n const targetSymbol = resolveAliasWithDeprecationCheck(symbol, node);\n if (isDeprecatedSymbol(targetSymbol) && targetSymbol.declarations) {\n addDeprecatedSuggestion(node, targetSymbol.declarations, targetSymbol.escapedName);\n }\n }\n }\n }\n function resolveAliasWithDeprecationCheck(symbol, location) {\n if (!(symbol.flags & 2097152 /* Alias */) || isDeprecatedSymbol(symbol) || !getDeclarationOfAliasSymbol(symbol)) {\n return symbol;\n }\n const targetSymbol = resolveAlias(symbol);\n if (targetSymbol === unknownSymbol) return targetSymbol;\n while (symbol.flags & 2097152 /* Alias */) {\n const target = getImmediateAliasedSymbol(symbol);\n if (target) {\n if (target === targetSymbol) break;\n if (target.declarations && length(target.declarations)) {\n if (isDeprecatedSymbol(target)) {\n addDeprecatedSuggestion(location, target.declarations, target.escapedName);\n break;\n } else {\n if (symbol === targetSymbol) break;\n symbol = target;\n }\n }\n } else {\n break;\n }\n }\n return targetSymbol;\n }\n function checkImportBinding(node) {\n checkCollisionsForDeclarationName(node, node.name);\n checkAliasSymbol(node);\n if (node.kind === 277 /* ImportSpecifier */) {\n checkModuleExportName(node.propertyName);\n if (moduleExportNameIsDefault(node.propertyName || node.name) && getESModuleInterop(compilerOptions) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */) {\n checkExternalEmitHelpers(node, 131072 /* ImportDefault */);\n }\n }\n }\n function checkImportAttributes(declaration) {\n var _a;\n const node = declaration.attributes;\n if (node) {\n const importAttributesType = getGlobalImportAttributesType(\n /*reportErrors*/\n true\n );\n if (importAttributesType !== emptyObjectType) {\n checkTypeAssignableTo(getTypeFromImportAttributes(node), getNullableType(importAttributesType, 32768 /* Undefined */), node);\n }\n const validForTypeAttributes = isExclusivelyTypeOnlyImportOrExport(declaration);\n const override = getResolutionModeOverride(node, validForTypeAttributes ? grammarErrorOnNode : void 0);\n const isImportAttributes2 = declaration.attributes.token === 118 /* WithKeyword */;\n if (validForTypeAttributes && override) {\n return;\n }\n if (!moduleSupportsImportAttributes(moduleKind)) {\n return grammarErrorOnNode(\n node,\n isImportAttributes2 ? Diagnostics.Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve : Diagnostics.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve\n );\n }\n if (102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && !isImportAttributes2) {\n return grammarErrorOnFirstToken(node, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);\n }\n if (declaration.moduleSpecifier && getEmitSyntaxForModuleSpecifierExpression(declaration.moduleSpecifier) === 1 /* CommonJS */) {\n return grammarErrorOnNode(\n node,\n isImportAttributes2 ? Diagnostics.Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls : Diagnostics.Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls\n );\n }\n const isTypeOnly = isJSDocImportTag(declaration) || (isImportDeclaration(declaration) ? (_a = declaration.importClause) == null ? void 0 : _a.isTypeOnly : declaration.isTypeOnly);\n if (isTypeOnly) {\n return grammarErrorOnNode(node, isImportAttributes2 ? Diagnostics.Import_attributes_cannot_be_used_with_type_only_imports_or_exports : Diagnostics.Import_assertions_cannot_be_used_with_type_only_imports_or_exports);\n }\n if (override) {\n return grammarErrorOnNode(node, Diagnostics.resolution_mode_can_only_be_set_for_type_only_imports);\n }\n }\n }\n function checkImportAttribute(node) {\n return getRegularTypeOfLiteralType(checkExpressionCached(node.value));\n }\n function checkImportDeclaration(node) {\n if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n return;\n }\n if (!checkGrammarModifiers(node) && node.modifiers) {\n grammarErrorOnFirstToken(node, Diagnostics.An_import_declaration_cannot_have_modifiers);\n }\n if (checkExternalImportOrExportDeclaration(node)) {\n let resolvedModule;\n const importClause = node.importClause;\n if (importClause && !checkGrammarImportClause(importClause)) {\n if (importClause.name) {\n checkImportBinding(importClause);\n }\n if (importClause.namedBindings) {\n if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n checkImportBinding(importClause.namedBindings);\n if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && getESModuleInterop(compilerOptions)) {\n checkExternalEmitHelpers(node, 65536 /* ImportStar */);\n }\n } else {\n resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n if (resolvedModule) {\n forEach(importClause.namedBindings.elements, checkImportBinding);\n }\n }\n }\n if (!importClause.isTypeOnly && 101 /* Node18 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && isOnlyImportableAsDefault(node.moduleSpecifier, resolvedModule) && !hasTypeJsonImportAttribute(node)) {\n error2(node.moduleSpecifier, Diagnostics.Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0, ModuleKind[moduleKind]);\n }\n } else if (noUncheckedSideEffectImports && !importClause) {\n void resolveExternalModuleName(node, node.moduleSpecifier);\n }\n }\n checkImportAttributes(node);\n }\n function hasTypeJsonImportAttribute(node) {\n return !!node.attributes && node.attributes.elements.some((attr) => {\n var _a;\n return getTextOfIdentifierOrLiteral(attr.name) === \"type\" && ((_a = tryCast(attr.value, isStringLiteralLike)) == null ? void 0 : _a.text) === \"json\";\n });\n }\n function checkImportEqualsDeclaration(node) {\n if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n return;\n }\n checkGrammarModifiers(node);\n if (compilerOptions.erasableSyntaxOnly && !(node.flags & 33554432 /* Ambient */)) {\n error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n }\n if (isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) {\n checkImportBinding(node);\n markLinkedReferences(node, 6 /* ExportImportEquals */);\n if (node.moduleReference.kind !== 284 /* ExternalModuleReference */) {\n const target = resolveAlias(getSymbolOfDeclaration(node));\n if (target !== unknownSymbol) {\n const targetFlags = getSymbolFlags(target);\n if (targetFlags & 111551 /* Value */) {\n const moduleName = getFirstIdentifier(node.moduleReference);\n if (!(resolveEntityName(moduleName, 111551 /* Value */ | 1920 /* Namespace */).flags & 1920 /* Namespace */)) {\n error2(moduleName, Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, declarationNameToString(moduleName));\n }\n }\n if (targetFlags & 788968 /* Type */) {\n checkTypeNameIsReserved(node.name, Diagnostics.Import_name_cannot_be_0);\n }\n }\n if (node.isTypeOnly) {\n grammarErrorOnNode(node, Diagnostics.An_import_alias_cannot_use_import_type);\n }\n } else {\n if (5 /* ES2015 */ <= moduleKind && moduleKind <= 99 /* ESNext */ && !node.isTypeOnly && !(node.flags & 33554432 /* Ambient */)) {\n grammarErrorOnNode(node, Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);\n }\n }\n }\n }\n function checkExportDeclaration(node) {\n if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n return;\n }\n if (!checkGrammarModifiers(node) && hasSyntacticModifiers(node)) {\n grammarErrorOnFirstToken(node, Diagnostics.An_export_declaration_cannot_have_modifiers);\n }\n checkGrammarExportDeclaration(node);\n if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) {\n if (node.exportClause && !isNamespaceExport(node.exportClause)) {\n forEach(node.exportClause.elements, checkExportSpecifier);\n const inAmbientExternalModule = node.parent.kind === 269 /* ModuleBlock */ && isAmbientModule(node.parent.parent);\n const inAmbientNamespaceDeclaration = !inAmbientExternalModule && node.parent.kind === 269 /* ModuleBlock */ && !node.moduleSpecifier && node.flags & 33554432 /* Ambient */;\n if (node.parent.kind !== 308 /* SourceFile */ && !inAmbientExternalModule && !inAmbientNamespaceDeclaration) {\n error2(node, Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);\n }\n } else {\n const moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier);\n if (moduleSymbol && hasExportAssignmentSymbol(moduleSymbol)) {\n error2(node.moduleSpecifier, Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol));\n } else if (node.exportClause) {\n checkAliasSymbol(node.exportClause);\n checkModuleExportName(node.exportClause.name);\n }\n if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */) {\n if (node.exportClause) {\n if (getESModuleInterop(compilerOptions)) {\n checkExternalEmitHelpers(node, 65536 /* ImportStar */);\n }\n } else {\n checkExternalEmitHelpers(node, 32768 /* ExportStar */);\n }\n }\n }\n }\n checkImportAttributes(node);\n }\n function checkGrammarExportDeclaration(node) {\n var _a;\n if (node.isTypeOnly && ((_a = node.exportClause) == null ? void 0 : _a.kind) === 280 /* NamedExports */) {\n return checkGrammarNamedImportsOrExports(node.exportClause);\n }\n return false;\n }\n function checkGrammarModuleElementContext(node, errorMessage) {\n const isInAppropriateContext = node.parent.kind === 308 /* SourceFile */ || node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 268 /* ModuleDeclaration */;\n if (!isInAppropriateContext) {\n grammarErrorOnFirstToken(node, errorMessage);\n }\n return !isInAppropriateContext;\n }\n function checkExportSpecifier(node) {\n checkAliasSymbol(node);\n const hasModuleSpecifier = node.parent.parent.moduleSpecifier !== void 0;\n checkModuleExportName(node.propertyName, hasModuleSpecifier);\n checkModuleExportName(node.name);\n if (getEmitDeclarations(compilerOptions)) {\n collectLinkedAliases(\n node.propertyName || node.name,\n /*setVisibility*/\n true\n );\n }\n if (!hasModuleSpecifier) {\n const exportedName = node.propertyName || node.name;\n if (exportedName.kind === 11 /* StringLiteral */) {\n return;\n }\n const symbol = resolveName(\n exportedName,\n exportedName.escapedText,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (symbol && (symbol === undefinedSymbol || symbol === globalThisSymbol || symbol.declarations && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) {\n error2(exportedName, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, idText(exportedName));\n } else {\n markLinkedReferences(node, 7 /* ExportSpecifier */);\n }\n } else {\n if (getESModuleInterop(compilerOptions) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && moduleExportNameIsDefault(node.propertyName || node.name)) {\n checkExternalEmitHelpers(node, 131072 /* ImportDefault */);\n }\n }\n }\n function checkExportAssignment(node) {\n const illegalContextMessage = node.isExportEquals ? Diagnostics.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration : Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration;\n if (checkGrammarModuleElementContext(node, illegalContextMessage)) {\n return;\n }\n if (compilerOptions.erasableSyntaxOnly && node.isExportEquals && !(node.flags & 33554432 /* Ambient */)) {\n error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n }\n const container = node.parent.kind === 308 /* SourceFile */ ? node.parent : node.parent.parent;\n if (container.kind === 268 /* ModuleDeclaration */ && !isAmbientModule(container)) {\n if (node.isExportEquals) {\n error2(node, Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);\n } else {\n error2(node, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);\n }\n return;\n }\n if (!checkGrammarModifiers(node) && hasEffectiveModifiers(node)) {\n grammarErrorOnFirstToken(node, Diagnostics.An_export_assignment_cannot_have_modifiers);\n }\n const typeAnnotationNode = getEffectiveTypeAnnotationNode(node);\n if (typeAnnotationNode) {\n checkTypeAssignableTo(checkExpressionCached(node.expression), getTypeFromTypeNode(typeAnnotationNode), node.expression);\n }\n const isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */;\n if (node.expression.kind === 80 /* Identifier */) {\n const id = node.expression;\n const sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(\n id,\n -1 /* All */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n node\n ));\n if (sym) {\n markLinkedReferences(node, 3 /* ExportAssignment */);\n const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(sym, 111551 /* Value */);\n if (getSymbolFlags(sym) & 111551 /* Value */) {\n checkExpressionCached(id);\n if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && typeOnlyDeclaration) {\n error2(\n id,\n node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration : Diagnostics.An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration,\n idText(id)\n );\n }\n } else if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax) {\n error2(\n id,\n node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type : Diagnostics.An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type,\n idText(id)\n );\n }\n if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && getIsolatedModules(compilerOptions) && !(sym.flags & 111551 /* Value */)) {\n const nonLocalMeanings = getSymbolFlags(\n sym,\n /*excludeTypeOnlyMeanings*/\n false,\n /*excludeLocalMeanings*/\n true\n );\n if (sym.flags & 2097152 /* Alias */ && nonLocalMeanings & 788968 /* Type */ && !(nonLocalMeanings & 111551 /* Value */) && (!typeOnlyDeclaration || getSourceFileOfNode(typeOnlyDeclaration) !== getSourceFileOfNode(node))) {\n error2(\n id,\n node.isExportEquals ? Diagnostics._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported : Diagnostics._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,\n idText(id),\n isolatedModulesLikeFlagName\n );\n } else if (typeOnlyDeclaration && getSourceFileOfNode(typeOnlyDeclaration) !== getSourceFileOfNode(node)) {\n addTypeOnlyDeclarationRelatedInfo(\n error2(\n id,\n node.isExportEquals ? Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported : Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,\n idText(id),\n isolatedModulesLikeFlagName\n ),\n typeOnlyDeclaration,\n idText(id)\n );\n }\n }\n } else {\n checkExpressionCached(id);\n }\n if (getEmitDeclarations(compilerOptions)) {\n collectLinkedAliases(\n id,\n /*setVisibility*/\n true\n );\n }\n } else {\n checkExpressionCached(node.expression);\n }\n if (isIllegalExportDefaultInCJS) {\n error2(node, getVerbatimModuleSyntaxErrorMessage(node));\n }\n checkExternalModuleExports(container);\n if (node.flags & 33554432 /* Ambient */ && !isEntityNameExpression(node.expression)) {\n grammarErrorOnNode(node.expression, Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context);\n }\n if (node.isExportEquals) {\n if (moduleKind >= 5 /* ES2015 */ && moduleKind !== 200 /* Preserve */ && (node.flags & 33554432 /* Ambient */ && host.getImpliedNodeFormatForEmit(getSourceFileOfNode(node)) === 99 /* ESNext */ || !(node.flags & 33554432 /* Ambient */) && host.getImpliedNodeFormatForEmit(getSourceFileOfNode(node)) !== 1 /* CommonJS */)) {\n grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead);\n } else if (moduleKind === 4 /* System */ && !(node.flags & 33554432 /* Ambient */)) {\n grammarErrorOnNode(node, Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system);\n }\n }\n }\n function hasExportedMembers(moduleSymbol) {\n return forEachEntry(moduleSymbol.exports, (_, id) => id !== \"export=\");\n }\n function checkExternalModuleExports(node) {\n const moduleSymbol = getSymbolOfDeclaration(node);\n const links = getSymbolLinks(moduleSymbol);\n if (!links.exportsChecked) {\n const exportEqualsSymbol = moduleSymbol.exports.get(\"export=\");\n if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {\n const declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;\n if (declaration && !isTopLevelInExternalModuleAugmentation(declaration) && !isInJSFile(declaration)) {\n error2(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);\n }\n }\n const exports2 = getExportsOfModule(moduleSymbol);\n if (exports2) {\n exports2.forEach(({ declarations, flags }, id) => {\n if (id === \"__export\") {\n return;\n }\n if (flags & (1920 /* Namespace */ | 384 /* Enum */)) {\n return;\n }\n const exportedDeclarationsCount = countWhere(declarations, and(isNotOverloadAndNotAccessor, not(isInterfaceDeclaration)));\n if (flags & 524288 /* TypeAlias */ && exportedDeclarationsCount <= 2) {\n return;\n }\n if (exportedDeclarationsCount > 1) {\n if (!isDuplicatedCommonJSExport(declarations)) {\n for (const declaration of declarations) {\n if (isNotOverload(declaration)) {\n diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, unescapeLeadingUnderscores(id)));\n }\n }\n }\n }\n });\n }\n links.exportsChecked = true;\n }\n }\n function isDuplicatedCommonJSExport(declarations) {\n return declarations && declarations.length > 1 && declarations.every((d) => isInJSFile(d) && isAccessExpression(d) && (isExportsIdentifier(d.expression) || isModuleExportsAccessExpression(d.expression)));\n }\n function checkSourceElement(node) {\n if (node) {\n const saveCurrentNode = currentNode;\n currentNode = node;\n instantiationCount = 0;\n checkSourceElementWorker(node);\n currentNode = saveCurrentNode;\n }\n }\n function checkSourceElementWorker(node) {\n if (getNodeCheckFlags(node) & 8388608 /* PartiallyTypeChecked */) {\n return;\n }\n if (canHaveJSDoc(node)) {\n forEach(node.jsDoc, ({ comment, tags }) => {\n checkJSDocCommentWorker(comment);\n forEach(tags, (tag) => {\n checkJSDocCommentWorker(tag.comment);\n if (isInJSFile(node)) {\n checkSourceElement(tag);\n }\n });\n });\n }\n const kind = node.kind;\n if (cancellationToken) {\n switch (kind) {\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 263 /* FunctionDeclaration */:\n cancellationToken.throwIfCancellationRequested();\n }\n }\n if (kind >= 244 /* FirstStatement */ && kind <= 260 /* LastStatement */ && canHaveFlowNode(node) && node.flowNode && !isReachableFlowNode(node.flowNode)) {\n errorOrSuggestion(compilerOptions.allowUnreachableCode === false, node, Diagnostics.Unreachable_code_detected);\n }\n switch (kind) {\n case 169 /* TypeParameter */:\n return checkTypeParameter(node);\n case 170 /* Parameter */:\n return checkParameter(node);\n case 173 /* PropertyDeclaration */:\n return checkPropertyDeclaration(node);\n case 172 /* PropertySignature */:\n return checkPropertySignature(node);\n case 186 /* ConstructorType */:\n case 185 /* FunctionType */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 182 /* IndexSignature */:\n return checkSignatureDeclaration(node);\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n return checkMethodDeclaration(node);\n case 176 /* ClassStaticBlockDeclaration */:\n return checkClassStaticBlockDeclaration(node);\n case 177 /* Constructor */:\n return checkConstructorDeclaration(node);\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return checkAccessorDeclaration(node);\n case 184 /* TypeReference */:\n return checkTypeReferenceNode(node);\n case 183 /* TypePredicate */:\n return checkTypePredicate(node);\n case 187 /* TypeQuery */:\n return checkTypeQuery(node);\n case 188 /* TypeLiteral */:\n return checkTypeLiteral(node);\n case 189 /* ArrayType */:\n return checkArrayType(node);\n case 190 /* TupleType */:\n return checkTupleType(node);\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n return checkUnionOrIntersectionType(node);\n case 197 /* ParenthesizedType */:\n case 191 /* OptionalType */:\n case 192 /* RestType */:\n return checkSourceElement(node.type);\n case 198 /* ThisType */:\n return checkThisType(node);\n case 199 /* TypeOperator */:\n return checkTypeOperator(node);\n case 195 /* ConditionalType */:\n return checkConditionalType(node);\n case 196 /* InferType */:\n return checkInferType(node);\n case 204 /* TemplateLiteralType */:\n return checkTemplateLiteralType(node);\n case 206 /* ImportType */:\n return checkImportType(node);\n case 203 /* NamedTupleMember */:\n return checkNamedTupleMember(node);\n case 329 /* JSDocAugmentsTag */:\n return checkJSDocAugmentsTag(node);\n case 330 /* JSDocImplementsTag */:\n return checkJSDocImplementsTag(node);\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 341 /* JSDocEnumTag */:\n return checkJSDocTypeAliasTag(node);\n case 346 /* JSDocTemplateTag */:\n return checkJSDocTemplateTag(node);\n case 345 /* JSDocTypeTag */:\n return checkJSDocTypeTag(node);\n case 325 /* JSDocLink */:\n case 326 /* JSDocLinkCode */:\n case 327 /* JSDocLinkPlain */:\n return checkJSDocLinkLikeTag(node);\n case 342 /* JSDocParameterTag */:\n return checkJSDocParameterTag(node);\n case 349 /* JSDocPropertyTag */:\n return checkJSDocPropertyTag(node);\n case 318 /* JSDocFunctionType */:\n checkJSDocFunctionType(node);\n // falls through\n case 316 /* JSDocNonNullableType */:\n case 315 /* JSDocNullableType */:\n case 313 /* JSDocAllType */:\n case 314 /* JSDocUnknownType */:\n case 323 /* JSDocTypeLiteral */:\n checkJSDocTypeIsInJsFile(node);\n forEachChild(node, checkSourceElement);\n return;\n case 319 /* JSDocVariadicType */:\n checkJSDocVariadicType(node);\n return;\n case 310 /* JSDocTypeExpression */:\n return checkSourceElement(node.type);\n case 334 /* JSDocPublicTag */:\n case 336 /* JSDocProtectedTag */:\n case 335 /* JSDocPrivateTag */:\n return checkJSDocAccessibilityModifiers(node);\n case 351 /* JSDocSatisfiesTag */:\n return checkJSDocSatisfiesTag(node);\n case 344 /* JSDocThisTag */:\n return checkJSDocThisTag(node);\n case 352 /* JSDocImportTag */:\n return checkJSDocImportTag(node);\n case 200 /* IndexedAccessType */:\n return checkIndexedAccessType(node);\n case 201 /* MappedType */:\n return checkMappedType(node);\n case 263 /* FunctionDeclaration */:\n return checkFunctionDeclaration(node);\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n return checkBlock(node);\n case 244 /* VariableStatement */:\n return checkVariableStatement(node);\n case 245 /* ExpressionStatement */:\n return checkExpressionStatement(node);\n case 246 /* IfStatement */:\n return checkIfStatement(node);\n case 247 /* DoStatement */:\n return checkDoStatement(node);\n case 248 /* WhileStatement */:\n return checkWhileStatement(node);\n case 249 /* ForStatement */:\n return checkForStatement(node);\n case 250 /* ForInStatement */:\n return checkForInStatement(node);\n case 251 /* ForOfStatement */:\n return checkForOfStatement(node);\n case 252 /* ContinueStatement */:\n case 253 /* BreakStatement */:\n return checkBreakOrContinueStatement(node);\n case 254 /* ReturnStatement */:\n return checkReturnStatement(node);\n case 255 /* WithStatement */:\n return checkWithStatement(node);\n case 256 /* SwitchStatement */:\n return checkSwitchStatement(node);\n case 257 /* LabeledStatement */:\n return checkLabeledStatement(node);\n case 258 /* ThrowStatement */:\n return checkThrowStatement(node);\n case 259 /* TryStatement */:\n return checkTryStatement(node);\n case 261 /* VariableDeclaration */:\n return checkVariableDeclaration(node);\n case 209 /* BindingElement */:\n return checkBindingElement(node);\n case 264 /* ClassDeclaration */:\n return checkClassDeclaration(node);\n case 265 /* InterfaceDeclaration */:\n return checkInterfaceDeclaration(node);\n case 266 /* TypeAliasDeclaration */:\n return checkTypeAliasDeclaration(node);\n case 267 /* EnumDeclaration */:\n return checkEnumDeclaration(node);\n case 307 /* EnumMember */:\n return checkEnumMember(node);\n case 268 /* ModuleDeclaration */:\n return checkModuleDeclaration(node);\n case 273 /* ImportDeclaration */:\n return checkImportDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return checkImportEqualsDeclaration(node);\n case 279 /* ExportDeclaration */:\n return checkExportDeclaration(node);\n case 278 /* ExportAssignment */:\n return checkExportAssignment(node);\n case 243 /* EmptyStatement */:\n case 260 /* DebuggerStatement */:\n checkGrammarStatementInAmbientContext(node);\n return;\n case 283 /* MissingDeclaration */:\n return checkMissingDeclaration(node);\n }\n }\n function checkJSDocCommentWorker(node) {\n if (isArray(node)) {\n forEach(node, (tag) => {\n if (isJSDocLinkLike(tag)) {\n checkSourceElement(tag);\n }\n });\n }\n }\n function checkJSDocTypeIsInJsFile(node) {\n if (!isInJSFile(node)) {\n if (isJSDocNonNullableType(node) || isJSDocNullableType(node)) {\n const token = tokenToString(isJSDocNonNullableType(node) ? 54 /* ExclamationToken */ : 58 /* QuestionToken */);\n const diagnostic = node.postfix ? Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1 : Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1;\n const typeNode = node.type;\n const type = getTypeFromTypeNode(typeNode);\n grammarErrorOnNode(\n node,\n diagnostic,\n token,\n typeToString(\n isJSDocNullableType(node) && !(type === neverType || type === voidType) ? getUnionType(append([type, undefinedType], node.postfix ? void 0 : nullType)) : type\n )\n );\n } else {\n grammarErrorOnNode(node, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments);\n }\n }\n }\n function checkJSDocVariadicType(node) {\n checkJSDocTypeIsInJsFile(node);\n checkSourceElement(node.type);\n const { parent: parent2 } = node;\n if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) {\n if (last(parent2.parent.parameters) !== parent2) {\n error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n }\n return;\n }\n if (!isJSDocTypeExpression(parent2)) {\n error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);\n }\n const paramTag = node.parent.parent;\n if (!isJSDocParameterTag(paramTag)) {\n error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);\n return;\n }\n const param = getParameterSymbolFromJSDoc(paramTag);\n if (!param) {\n return;\n }\n const host2 = getHostSignatureFromJSDoc(paramTag);\n if (!host2 || last(host2.parameters).symbol !== param) {\n error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n }\n }\n function getTypeFromJSDocVariadicType(node) {\n const type = getTypeFromTypeNode(node.type);\n const { parent: parent2 } = node;\n const paramTag = node.parent.parent;\n if (isJSDocTypeExpression(node.parent) && isJSDocParameterTag(paramTag)) {\n const host2 = getHostSignatureFromJSDoc(paramTag);\n const isCallbackTag = isJSDocCallbackTag(paramTag.parent.parent);\n if (host2 || isCallbackTag) {\n const lastParamDeclaration = isCallbackTag ? lastOrUndefined(paramTag.parent.parent.typeExpression.parameters) : lastOrUndefined(host2.parameters);\n const symbol = getParameterSymbolFromJSDoc(paramTag);\n if (!lastParamDeclaration || symbol && lastParamDeclaration.symbol === symbol && isRestParameter(lastParamDeclaration)) {\n return createArrayType(type);\n }\n }\n }\n if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) {\n return createArrayType(type);\n }\n return addOptionality(type);\n }\n function checkNodeDeferred(node) {\n const enclosingFile = getSourceFileOfNode(node);\n const links = getNodeLinks(enclosingFile);\n if (!(links.flags & 1 /* TypeChecked */)) {\n links.deferredNodes || (links.deferredNodes = /* @__PURE__ */ new Set());\n links.deferredNodes.add(node);\n } else {\n Debug.assert(!links.deferredNodes, \"A type-checked file should have no deferred nodes.\");\n }\n }\n function checkDeferredNodes(context) {\n const links = getNodeLinks(context);\n if (links.deferredNodes) {\n links.deferredNodes.forEach(checkDeferredNode);\n }\n links.deferredNodes = void 0;\n }\n function checkDeferredNode(node) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkDeferredNode\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n const saveCurrentNode = currentNode;\n currentNode = node;\n instantiationCount = 0;\n switch (node.kind) {\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 216 /* TaggedTemplateExpression */:\n case 171 /* Decorator */:\n case 287 /* JsxOpeningElement */:\n resolveUntypedCall(node);\n break;\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n checkFunctionExpressionOrObjectLiteralMethodDeferred(node);\n break;\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n checkAccessorDeclaration(node);\n break;\n case 232 /* ClassExpression */:\n checkClassExpressionDeferred(node);\n break;\n case 169 /* TypeParameter */:\n checkTypeParameterDeferred(node);\n break;\n case 286 /* JsxSelfClosingElement */:\n checkJsxSelfClosingElementDeferred(node);\n break;\n case 285 /* JsxElement */:\n checkJsxElementDeferred(node);\n break;\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n case 218 /* ParenthesizedExpression */:\n checkAssertionDeferred(node);\n break;\n case 223 /* VoidExpression */:\n checkExpression(node.expression);\n break;\n case 227 /* BinaryExpression */:\n if (isInstanceOfExpression(node)) {\n resolveUntypedCall(node);\n }\n break;\n }\n currentNode = saveCurrentNode;\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n function checkSourceFile(node, nodesToCheck) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(\n tracing.Phase.Check,\n nodesToCheck ? \"checkSourceFileNodes\" : \"checkSourceFile\",\n { path: node.path },\n /*separateBeginAndEnd*/\n true\n );\n const beforeMark = nodesToCheck ? \"beforeCheckNodes\" : \"beforeCheck\";\n const afterMark = nodesToCheck ? \"afterCheckNodes\" : \"afterCheck\";\n mark(beforeMark);\n nodesToCheck ? checkSourceFileNodesWorker(node, nodesToCheck) : checkSourceFileWorker(node);\n mark(afterMark);\n measure(\"Check\", beforeMark, afterMark);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n function unusedIsError(kind, isAmbient) {\n if (isAmbient) {\n return false;\n }\n switch (kind) {\n case 0 /* Local */:\n return !!compilerOptions.noUnusedLocals;\n case 1 /* Parameter */:\n return !!compilerOptions.noUnusedParameters;\n default:\n return Debug.assertNever(kind);\n }\n }\n function getPotentiallyUnusedIdentifiers(sourceFile) {\n return allPotentiallyUnusedIdentifiers.get(sourceFile.path) || emptyArray;\n }\n function checkSourceFileWorker(node) {\n const links = getNodeLinks(node);\n if (!(links.flags & 1 /* TypeChecked */)) {\n if (skipTypeChecking(node, compilerOptions, host)) {\n return;\n }\n checkGrammarSourceFile(node);\n clear(potentialThisCollisions);\n clear(potentialNewTargetCollisions);\n clear(potentialWeakMapSetCollisions);\n clear(potentialReflectCollisions);\n clear(potentialUnusedRenamedBindingElementsInTypes);\n if (links.flags & 8388608 /* PartiallyTypeChecked */) {\n potentialThisCollisions = links.potentialThisCollisions;\n potentialNewTargetCollisions = links.potentialNewTargetCollisions;\n potentialWeakMapSetCollisions = links.potentialWeakMapSetCollisions;\n potentialReflectCollisions = links.potentialReflectCollisions;\n potentialUnusedRenamedBindingElementsInTypes = links.potentialUnusedRenamedBindingElementsInTypes;\n }\n forEach(node.statements, checkSourceElement);\n checkSourceElement(node.endOfFileToken);\n checkDeferredNodes(node);\n if (isExternalOrCommonJsModule(node)) {\n registerForUnusedIdentifiersCheck(node);\n }\n addLazyDiagnostic(() => {\n if (!node.isDeclarationFile && (compilerOptions.noUnusedLocals || compilerOptions.noUnusedParameters)) {\n checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(node), (containingNode, kind, diag2) => {\n if (!containsParseError(containingNode) && unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) {\n diagnostics.add(diag2);\n }\n });\n }\n if (!node.isDeclarationFile) {\n checkPotentialUncheckedRenamedBindingElementsInTypes();\n }\n });\n if (isExternalOrCommonJsModule(node)) {\n checkExternalModuleExports(node);\n }\n if (potentialThisCollisions.length) {\n forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);\n clear(potentialThisCollisions);\n }\n if (potentialNewTargetCollisions.length) {\n forEach(potentialNewTargetCollisions, checkIfNewTargetIsCapturedInEnclosingScope);\n clear(potentialNewTargetCollisions);\n }\n if (potentialWeakMapSetCollisions.length) {\n forEach(potentialWeakMapSetCollisions, checkWeakMapSetCollision);\n clear(potentialWeakMapSetCollisions);\n }\n if (potentialReflectCollisions.length) {\n forEach(potentialReflectCollisions, checkReflectCollision);\n clear(potentialReflectCollisions);\n }\n links.flags |= 1 /* TypeChecked */;\n }\n }\n function checkSourceFileNodesWorker(file, nodes) {\n const links = getNodeLinks(file);\n if (!(links.flags & 1 /* TypeChecked */)) {\n if (skipTypeChecking(file, compilerOptions, host)) {\n return;\n }\n checkGrammarSourceFile(file);\n clear(potentialThisCollisions);\n clear(potentialNewTargetCollisions);\n clear(potentialWeakMapSetCollisions);\n clear(potentialReflectCollisions);\n clear(potentialUnusedRenamedBindingElementsInTypes);\n forEach(nodes, checkSourceElement);\n checkDeferredNodes(file);\n (links.potentialThisCollisions || (links.potentialThisCollisions = [])).push(...potentialThisCollisions);\n (links.potentialNewTargetCollisions || (links.potentialNewTargetCollisions = [])).push(...potentialNewTargetCollisions);\n (links.potentialWeakMapSetCollisions || (links.potentialWeakMapSetCollisions = [])).push(...potentialWeakMapSetCollisions);\n (links.potentialReflectCollisions || (links.potentialReflectCollisions = [])).push(...potentialReflectCollisions);\n (links.potentialUnusedRenamedBindingElementsInTypes || (links.potentialUnusedRenamedBindingElementsInTypes = [])).push(\n ...potentialUnusedRenamedBindingElementsInTypes\n );\n links.flags |= 8388608 /* PartiallyTypeChecked */;\n for (const node of nodes) {\n const nodeLinks2 = getNodeLinks(node);\n nodeLinks2.flags |= 8388608 /* PartiallyTypeChecked */;\n }\n }\n }\n function getDiagnostics2(sourceFile, ct, nodesToCheck) {\n try {\n cancellationToken = ct;\n return getDiagnosticsWorker(sourceFile, nodesToCheck);\n } finally {\n cancellationToken = void 0;\n }\n }\n function ensurePendingDiagnosticWorkComplete() {\n for (const cb of deferredDiagnosticsCallbacks) {\n cb();\n }\n deferredDiagnosticsCallbacks = [];\n }\n function checkSourceFileWithEagerDiagnostics(sourceFile, nodesToCheck) {\n ensurePendingDiagnosticWorkComplete();\n const oldAddLazyDiagnostics = addLazyDiagnostic;\n addLazyDiagnostic = (cb) => cb();\n checkSourceFile(sourceFile, nodesToCheck);\n addLazyDiagnostic = oldAddLazyDiagnostics;\n }\n function getDiagnosticsWorker(sourceFile, nodesToCheck) {\n if (sourceFile) {\n ensurePendingDiagnosticWorkComplete();\n const previousGlobalDiagnostics = diagnostics.getGlobalDiagnostics();\n const previousGlobalDiagnosticsSize = previousGlobalDiagnostics.length;\n checkSourceFileWithEagerDiagnostics(sourceFile, nodesToCheck);\n const semanticDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);\n if (nodesToCheck) {\n return semanticDiagnostics;\n }\n const currentGlobalDiagnostics = diagnostics.getGlobalDiagnostics();\n if (currentGlobalDiagnostics !== previousGlobalDiagnostics) {\n const deferredGlobalDiagnostics = relativeComplement(previousGlobalDiagnostics, currentGlobalDiagnostics, compareDiagnostics);\n return concatenate(deferredGlobalDiagnostics, semanticDiagnostics);\n } else if (previousGlobalDiagnosticsSize === 0 && currentGlobalDiagnostics.length > 0) {\n return concatenate(currentGlobalDiagnostics, semanticDiagnostics);\n }\n return semanticDiagnostics;\n }\n forEach(host.getSourceFiles(), (file) => checkSourceFileWithEagerDiagnostics(file));\n return diagnostics.getDiagnostics();\n }\n function getGlobalDiagnostics() {\n ensurePendingDiagnosticWorkComplete();\n return diagnostics.getGlobalDiagnostics();\n }\n function getSymbolsInScope(location, meaning) {\n if (location.flags & 67108864 /* InWithStatement */) {\n return [];\n }\n const symbols = createSymbolTable();\n let isStaticSymbol = false;\n populateSymbols();\n symbols.delete(\"this\" /* This */);\n return symbolsToArray(symbols);\n function populateSymbols() {\n while (location) {\n if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n copySymbols(location.locals, meaning);\n }\n switch (location.kind) {\n case 308 /* SourceFile */:\n if (!isExternalModule(location)) break;\n // falls through\n case 268 /* ModuleDeclaration */:\n copyLocallyVisibleExportSymbols(getSymbolOfDeclaration(location).exports, meaning & 2623475 /* ModuleMember */);\n break;\n case 267 /* EnumDeclaration */:\n copySymbols(getSymbolOfDeclaration(location).exports, meaning & 8 /* EnumMember */);\n break;\n case 232 /* ClassExpression */:\n const className = location.name;\n if (className) {\n copySymbol(location.symbol, meaning);\n }\n // this fall-through is necessary because we would like to handle\n // type parameter inside class expression similar to how we handle it in classDeclaration and interface Declaration.\n // falls through\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n if (!isStaticSymbol) {\n copySymbols(getMembersOfSymbol(getSymbolOfDeclaration(location)), meaning & 788968 /* Type */);\n }\n break;\n case 219 /* FunctionExpression */:\n const funcName = location.name;\n if (funcName) {\n copySymbol(location.symbol, meaning);\n }\n break;\n }\n if (introducesArgumentsExoticObject(location)) {\n copySymbol(argumentsSymbol, meaning);\n }\n isStaticSymbol = isStatic(location);\n location = location.parent;\n }\n copySymbols(globals, meaning);\n }\n function copySymbol(symbol, meaning2) {\n if (getCombinedLocalAndExportSymbolFlags(symbol) & meaning2) {\n const id = symbol.escapedName;\n if (!symbols.has(id)) {\n symbols.set(id, symbol);\n }\n }\n }\n function copySymbols(source, meaning2) {\n if (meaning2) {\n source.forEach((symbol) => {\n copySymbol(symbol, meaning2);\n });\n }\n }\n function copyLocallyVisibleExportSymbols(source, meaning2) {\n if (meaning2) {\n source.forEach((symbol) => {\n if (!getDeclarationOfKind(symbol, 282 /* ExportSpecifier */) && !getDeclarationOfKind(symbol, 281 /* NamespaceExport */) && symbol.escapedName !== \"default\" /* Default */) {\n copySymbol(symbol, meaning2);\n }\n });\n }\n }\n }\n function isTypeDeclarationName(name) {\n return name.kind === 80 /* Identifier */ && isTypeDeclaration(name.parent) && getNameOfDeclaration(name.parent) === name;\n }\n function isTypeReferenceIdentifier(node) {\n while (node.parent.kind === 167 /* QualifiedName */) {\n node = node.parent;\n }\n return node.parent.kind === 184 /* TypeReference */;\n }\n function isInNameOfExpressionWithTypeArguments(node) {\n while (node.parent.kind === 212 /* PropertyAccessExpression */) {\n node = node.parent;\n }\n return node.parent.kind === 234 /* ExpressionWithTypeArguments */;\n }\n function forEachEnclosingClass(node, callback) {\n let result;\n let containingClass = getContainingClass(node);\n while (containingClass) {\n if (result = callback(containingClass)) break;\n containingClass = getContainingClass(containingClass);\n }\n return result;\n }\n function isNodeUsedDuringClassInitialization(node) {\n return !!findAncestor(node, (element) => {\n if (isConstructorDeclaration(element) && nodeIsPresent(element.body) || isPropertyDeclaration(element)) {\n return true;\n } else if (isClassLike(element) || isFunctionLikeDeclaration(element)) {\n return \"quit\";\n }\n return false;\n });\n }\n function isNodeWithinClass(node, classDeclaration) {\n return !!forEachEnclosingClass(node, (n) => n === classDeclaration);\n }\n function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {\n while (nodeOnRightSide.parent.kind === 167 /* QualifiedName */) {\n nodeOnRightSide = nodeOnRightSide.parent;\n }\n if (nodeOnRightSide.parent.kind === 272 /* ImportEqualsDeclaration */) {\n return nodeOnRightSide.parent.moduleReference === nodeOnRightSide ? nodeOnRightSide.parent : void 0;\n }\n if (nodeOnRightSide.parent.kind === 278 /* ExportAssignment */) {\n return nodeOnRightSide.parent.expression === nodeOnRightSide ? nodeOnRightSide.parent : void 0;\n }\n return void 0;\n }\n function isInRightSideOfImportOrExportAssignment(node) {\n return getLeftSideOfImportEqualsOrExportAssignment(node) !== void 0;\n }\n function getSpecialPropertyAssignmentSymbolFromEntityName(entityName) {\n const specialPropertyAssignmentKind = getAssignmentDeclarationKind(entityName.parent.parent);\n switch (specialPropertyAssignmentKind) {\n case 1 /* ExportsProperty */:\n case 3 /* PrototypeProperty */:\n return getSymbolOfNode(entityName.parent);\n case 5 /* Property */:\n if (isPropertyAccessExpression(entityName.parent) && getLeftmostAccessExpression(entityName.parent) === entityName) {\n return void 0;\n }\n // falls through\n case 4 /* ThisProperty */:\n case 2 /* ModuleExports */:\n return getSymbolOfDeclaration(entityName.parent.parent);\n }\n }\n function isImportTypeQualifierPart(node) {\n let parent2 = node.parent;\n while (isQualifiedName(parent2)) {\n node = parent2;\n parent2 = parent2.parent;\n }\n if (parent2 && parent2.kind === 206 /* ImportType */ && parent2.qualifier === node) {\n return parent2;\n }\n return void 0;\n }\n function isThisPropertyAndThisTyped(node) {\n if (node.expression.kind === 110 /* ThisKeyword */) {\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (isFunctionLike(container)) {\n const containingLiteral = getContainingObjectLiteral(container);\n if (containingLiteral) {\n const contextualType = getApparentTypeOfContextualType(\n containingLiteral,\n /*contextFlags*/\n void 0\n );\n const type = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType);\n return type && !isTypeAny(type);\n }\n }\n }\n }\n function getSymbolOfNameOrPropertyAccessExpression(name) {\n if (isDeclarationName(name)) {\n return getSymbolOfNode(name.parent);\n }\n if (isInJSFile(name) && name.parent.kind === 212 /* PropertyAccessExpression */ && name.parent === name.parent.parent.left) {\n if (!isPrivateIdentifier(name) && !isJSDocMemberName(name) && !isThisPropertyAndThisTyped(name.parent)) {\n const specialPropertyAssignmentSymbol = getSpecialPropertyAssignmentSymbolFromEntityName(name);\n if (specialPropertyAssignmentSymbol) {\n return specialPropertyAssignmentSymbol;\n }\n }\n }\n if (name.parent.kind === 278 /* ExportAssignment */ && isEntityNameExpression(name)) {\n const success = resolveEntityName(\n name,\n /*all meanings*/\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*ignoreErrors*/\n true\n );\n if (success && success !== unknownSymbol) {\n return success;\n }\n } else if (isEntityName(name) && isInRightSideOfImportOrExportAssignment(name)) {\n const importEqualsDeclaration = getAncestor(name, 272 /* ImportEqualsDeclaration */);\n Debug.assert(importEqualsDeclaration !== void 0);\n return getSymbolOfPartOfRightHandSideOfImportEquals(\n name,\n /*dontResolveAlias*/\n true\n );\n }\n if (isEntityName(name)) {\n const possibleImportNode = isImportTypeQualifierPart(name);\n if (possibleImportNode) {\n getTypeFromTypeNode(possibleImportNode);\n const sym = getNodeLinks(name).resolvedSymbol;\n return sym === unknownSymbol ? void 0 : sym;\n }\n }\n while (isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(name)) {\n name = name.parent;\n }\n if (isInNameOfExpressionWithTypeArguments(name)) {\n let meaning = 0 /* None */;\n if (name.parent.kind === 234 /* ExpressionWithTypeArguments */) {\n meaning = isPartOfTypeNode(name) ? 788968 /* Type */ : 111551 /* Value */;\n if (isExpressionWithTypeArgumentsInClassExtendsClause(name.parent)) {\n meaning |= 111551 /* Value */;\n }\n } else {\n meaning = 1920 /* Namespace */;\n }\n meaning |= 2097152 /* Alias */;\n const entityNameSymbol = isEntityNameExpression(name) ? resolveEntityName(\n name,\n meaning,\n /*ignoreErrors*/\n true\n ) : void 0;\n if (entityNameSymbol) {\n return entityNameSymbol;\n }\n }\n if (name.parent.kind === 342 /* JSDocParameterTag */) {\n return getParameterSymbolFromJSDoc(name.parent);\n }\n if (name.parent.kind === 169 /* TypeParameter */ && name.parent.parent.kind === 346 /* JSDocTemplateTag */) {\n Debug.assert(!isInJSFile(name));\n const typeParameter = getTypeParameterFromJsDoc(name.parent);\n return typeParameter && typeParameter.symbol;\n }\n if (isExpressionNode(name)) {\n if (nodeIsMissing(name)) {\n return void 0;\n }\n const isJSDoc2 = findAncestor(name, or(isJSDocLinkLike, isJSDocNameReference, isJSDocMemberName));\n const meaning = isJSDoc2 ? 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */ : 111551 /* Value */;\n if (name.kind === 80 /* Identifier */) {\n if (isJSXTagName(name) && isJsxIntrinsicTagName(name)) {\n const symbol = getIntrinsicTagSymbol(name.parent);\n return symbol === unknownSymbol ? void 0 : symbol;\n }\n const result = resolveEntityName(\n name,\n meaning,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n getHostSignatureFromJSDoc(name)\n );\n if (!result && isJSDoc2) {\n const container = findAncestor(name, or(isClassLike, isInterfaceDeclaration));\n if (container) {\n return resolveJSDocMemberName(\n name,\n /*ignoreErrors*/\n true,\n getSymbolOfDeclaration(container)\n );\n }\n }\n if (result && isJSDoc2) {\n const container = getJSDocHost(name);\n if (container && isEnumMember(container) && container === result.valueDeclaration) {\n return resolveEntityName(\n name,\n meaning,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n getSourceFileOfNode(container)\n ) || result;\n }\n }\n return result;\n } else if (isPrivateIdentifier(name)) {\n return getSymbolForPrivateIdentifierExpression(name);\n } else if (name.kind === 212 /* PropertyAccessExpression */ || name.kind === 167 /* QualifiedName */) {\n const links = getNodeLinks(name);\n if (links.resolvedSymbol) {\n return links.resolvedSymbol;\n }\n if (name.kind === 212 /* PropertyAccessExpression */) {\n checkPropertyAccessExpression(name, 0 /* Normal */);\n if (!links.resolvedSymbol) {\n links.resolvedSymbol = getApplicableIndexSymbol(checkExpressionCached(name.expression), getLiteralTypeFromPropertyName(name.name));\n }\n } else {\n checkQualifiedName(name, 0 /* Normal */);\n }\n if (!links.resolvedSymbol && isJSDoc2 && isQualifiedName(name)) {\n return resolveJSDocMemberName(name);\n }\n return links.resolvedSymbol;\n } else if (isJSDocMemberName(name)) {\n return resolveJSDocMemberName(name);\n }\n } else if (isEntityName(name) && isTypeReferenceIdentifier(name)) {\n const meaning = name.parent.kind === 184 /* TypeReference */ ? 788968 /* Type */ : 1920 /* Namespace */;\n const symbol = resolveEntityName(\n name,\n meaning,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true\n );\n return symbol && symbol !== unknownSymbol ? symbol : getUnresolvedSymbolForEntityName(name);\n }\n if (name.parent.kind === 183 /* TypePredicate */) {\n return resolveEntityName(\n name,\n /*meaning*/\n 1 /* FunctionScopedVariable */,\n /*ignoreErrors*/\n true\n );\n }\n return void 0;\n }\n function getApplicableIndexSymbol(type, keyType) {\n const infos = getApplicableIndexInfos(type, keyType);\n if (infos.length && type.members) {\n const symbol = getIndexSymbolFromSymbolTable(resolveStructuredTypeMembers(type).members);\n if (infos === getIndexInfosOfType(type)) {\n return symbol;\n } else if (symbol) {\n const symbolLinks2 = getSymbolLinks(symbol);\n const declarationList = mapDefined(infos, (i) => i.declaration);\n const nodeListId = map(declarationList, getNodeId).join(\",\");\n if (!symbolLinks2.filteredIndexSymbolCache) {\n symbolLinks2.filteredIndexSymbolCache = /* @__PURE__ */ new Map();\n }\n if (symbolLinks2.filteredIndexSymbolCache.has(nodeListId)) {\n return symbolLinks2.filteredIndexSymbolCache.get(nodeListId);\n } else {\n const copy = createSymbol(131072 /* Signature */, \"__index\" /* Index */);\n copy.declarations = mapDefined(infos, (i) => i.declaration);\n copy.parent = type.aliasSymbol ? type.aliasSymbol : type.symbol ? type.symbol : getSymbolAtLocation(copy.declarations[0].parent);\n symbolLinks2.filteredIndexSymbolCache.set(nodeListId, copy);\n return copy;\n }\n }\n }\n }\n function resolveJSDocMemberName(name, ignoreErrors, container) {\n if (isEntityName(name)) {\n const meaning = 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */;\n let symbol = resolveEntityName(\n name,\n meaning,\n ignoreErrors,\n /*dontResolveAlias*/\n true,\n getHostSignatureFromJSDoc(name)\n );\n if (!symbol && isIdentifier(name) && container) {\n symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(container), name.escapedText, meaning));\n }\n if (symbol) {\n return symbol;\n }\n }\n const left = isIdentifier(name) ? container : resolveJSDocMemberName(name.left, ignoreErrors, container);\n const right = isIdentifier(name) ? name.escapedText : name.right.escapedText;\n if (left) {\n const proto = left.flags & 111551 /* Value */ && getPropertyOfType(getTypeOfSymbol(left), \"prototype\");\n const t = proto ? getTypeOfSymbol(proto) : getDeclaredTypeOfSymbol(left);\n return getPropertyOfType(t, right);\n }\n }\n function getSymbolAtLocation(node, ignoreErrors) {\n if (isSourceFile(node)) {\n return isExternalModule(node) ? getMergedSymbol(node.symbol) : void 0;\n }\n const { parent: parent2 } = node;\n const grandParent = parent2.parent;\n if (node.flags & 67108864 /* InWithStatement */) {\n return void 0;\n }\n if (isDeclarationNameOrImportPropertyName(node)) {\n const parentSymbol = getSymbolOfDeclaration(parent2);\n return isImportOrExportSpecifier(node.parent) && node.parent.propertyName === node ? getImmediateAliasedSymbol(parentSymbol) : parentSymbol;\n } else if (isLiteralComputedPropertyDeclarationName(node)) {\n return getSymbolOfDeclaration(parent2.parent);\n }\n if (node.kind === 80 /* Identifier */) {\n if (isInRightSideOfImportOrExportAssignment(node)) {\n return getSymbolOfNameOrPropertyAccessExpression(node);\n } else if (parent2.kind === 209 /* BindingElement */ && grandParent.kind === 207 /* ObjectBindingPattern */ && node === parent2.propertyName) {\n const typeOfPattern = getTypeOfNode(grandParent);\n const propertyDeclaration = getPropertyOfType(typeOfPattern, node.escapedText);\n if (propertyDeclaration) {\n return propertyDeclaration;\n }\n } else if (isMetaProperty(parent2) && parent2.name === node) {\n if (parent2.keywordToken === 105 /* NewKeyword */ && idText(node) === \"target\") {\n return checkNewTargetMetaProperty(parent2).symbol;\n }\n if (parent2.keywordToken === 102 /* ImportKeyword */ && idText(node) === \"meta\") {\n return getGlobalImportMetaExpressionType().members.get(\"meta\");\n }\n return void 0;\n }\n }\n switch (node.kind) {\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n case 212 /* PropertyAccessExpression */:\n case 167 /* QualifiedName */:\n if (!isThisInTypeQuery(node)) {\n return getSymbolOfNameOrPropertyAccessExpression(node);\n }\n // falls through\n case 110 /* ThisKeyword */:\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (isFunctionLike(container)) {\n const sig = getSignatureFromDeclaration(container);\n if (sig.thisParameter) {\n return sig.thisParameter;\n }\n }\n if (isInExpressionContext(node)) {\n return checkExpression(node).symbol;\n }\n // falls through\n case 198 /* ThisType */:\n return getTypeFromThisTypeNode(node).symbol;\n case 108 /* SuperKeyword */:\n return checkExpression(node).symbol;\n case 137 /* ConstructorKeyword */:\n const constructorDeclaration = node.parent;\n if (constructorDeclaration && constructorDeclaration.kind === 177 /* Constructor */) {\n return constructorDeclaration.parent.symbol;\n }\n return void 0;\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n if (isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node || (node.parent.kind === 273 /* ImportDeclaration */ || node.parent.kind === 279 /* ExportDeclaration */) && node.parent.moduleSpecifier === node || isInJSFile(node) && isJSDocImportTag(node.parent) && node.parent.moduleSpecifier === node || (isInJSFile(node) && isRequireCall(\n node.parent,\n /*requireStringLiteralLikeArgument*/\n false\n ) || isImportCall(node.parent)) || isLiteralTypeNode(node.parent) && isLiteralImportTypeNode(node.parent.parent) && node.parent.parent.argument === node.parent) {\n return resolveExternalModuleName(node, node, ignoreErrors);\n }\n if (isCallExpression(parent2) && isBindableObjectDefinePropertyCall(parent2) && parent2.arguments[1] === node) {\n return getSymbolOfDeclaration(parent2);\n }\n // falls through\n case 9 /* NumericLiteral */:\n const objectType = isElementAccessExpression(parent2) ? parent2.argumentExpression === node ? getTypeOfExpression(parent2.expression) : void 0 : isLiteralTypeNode(parent2) && isIndexedAccessTypeNode(grandParent) ? getTypeFromTypeNode(grandParent.objectType) : void 0;\n return objectType && getPropertyOfType(objectType, escapeLeadingUnderscores(node.text));\n case 90 /* DefaultKeyword */:\n case 100 /* FunctionKeyword */:\n case 39 /* EqualsGreaterThanToken */:\n case 86 /* ClassKeyword */:\n return getSymbolOfNode(node.parent);\n case 206 /* ImportType */:\n return isLiteralImportTypeNode(node) ? getSymbolAtLocation(node.argument.literal, ignoreErrors) : void 0;\n case 95 /* ExportKeyword */:\n return isExportAssignment(node.parent) ? Debug.checkDefined(node.parent.symbol) : void 0;\n case 102 /* ImportKeyword */:\n if (isMetaProperty(node.parent) && node.parent.name.escapedText === \"defer\") {\n return void 0;\n }\n // falls through\n case 105 /* NewKeyword */:\n return isMetaProperty(node.parent) ? checkMetaPropertyKeyword(node.parent).symbol : void 0;\n case 104 /* InstanceOfKeyword */:\n if (isBinaryExpression(node.parent)) {\n const type = getTypeOfExpression(node.parent.right);\n const hasInstanceMethodType = getSymbolHasInstanceMethodOfObjectType(type);\n return (hasInstanceMethodType == null ? void 0 : hasInstanceMethodType.symbol) ?? type.symbol;\n }\n return void 0;\n case 237 /* MetaProperty */:\n return checkExpression(node).symbol;\n case 296 /* JsxNamespacedName */:\n if (isJSXTagName(node) && isJsxIntrinsicTagName(node)) {\n const symbol = getIntrinsicTagSymbol(node.parent);\n return symbol === unknownSymbol ? void 0 : symbol;\n }\n // falls through\n default:\n return void 0;\n }\n }\n function getIndexInfosAtLocation(node) {\n if (isIdentifier(node) && isPropertyAccessExpression(node.parent) && node.parent.name === node) {\n const keyType = getLiteralTypeFromPropertyName(node);\n const objectType = getTypeOfExpression(node.parent.expression);\n const objectTypes = objectType.flags & 1048576 /* Union */ ? objectType.types : [objectType];\n return flatMap(objectTypes, (t) => filter(getIndexInfosOfType(t), (info) => isApplicableIndexType(keyType, info.keyType)));\n }\n return void 0;\n }\n function getShorthandAssignmentValueSymbol(location) {\n if (location && location.kind === 305 /* ShorthandPropertyAssignment */) {\n return resolveEntityName(\n location.name,\n 111551 /* Value */ | 2097152 /* Alias */,\n /*ignoreErrors*/\n true\n );\n }\n return void 0;\n }\n function getExportSpecifierLocalTargetSymbol(node) {\n if (isExportSpecifier(node)) {\n const name = node.propertyName || node.name;\n return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : name.kind === 11 /* StringLiteral */ ? void 0 : (\n // Skip for invalid syntax like this: export { \"x\" }\n resolveEntityName(\n name,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*ignoreErrors*/\n true\n )\n );\n } else {\n return resolveEntityName(\n node,\n 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n /*ignoreErrors*/\n true\n );\n }\n }\n function getTypeOfNode(node) {\n if (isSourceFile(node) && !isExternalModule(node)) {\n return errorType;\n }\n if (node.flags & 67108864 /* InWithStatement */) {\n return errorType;\n }\n const classDecl = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node);\n const classType = classDecl && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(classDecl.class));\n if (isPartOfTypeNode(node)) {\n const typeFromTypeNode = getTypeFromTypeNode(node);\n return classType ? getTypeWithThisArgument(typeFromTypeNode, classType.thisType) : typeFromTypeNode;\n }\n if (isExpressionNode(node)) {\n return getRegularTypeOfExpression(node);\n }\n if (classType && !classDecl.isImplements) {\n const baseType = firstOrUndefined(getBaseTypes(classType));\n return baseType ? getTypeWithThisArgument(baseType, classType.thisType) : errorType;\n }\n if (isTypeDeclaration(node)) {\n const symbol = getSymbolOfDeclaration(node);\n return getDeclaredTypeOfSymbol(symbol);\n }\n if (isTypeDeclarationName(node)) {\n const symbol = getSymbolAtLocation(node);\n return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType;\n }\n if (isBindingElement(node)) {\n return getTypeForVariableLikeDeclaration(\n node,\n /*includeOptionality*/\n true,\n 0 /* Normal */\n ) || errorType;\n }\n if (isDeclaration(node)) {\n const symbol = getSymbolOfDeclaration(node);\n return symbol ? getTypeOfSymbol(symbol) : errorType;\n }\n if (isDeclarationNameOrImportPropertyName(node)) {\n const symbol = getSymbolAtLocation(node);\n if (symbol) {\n return getTypeOfSymbol(symbol);\n }\n return errorType;\n }\n if (isBindingPattern(node)) {\n return getTypeForVariableLikeDeclaration(\n node.parent,\n /*includeOptionality*/\n true,\n 0 /* Normal */\n ) || errorType;\n }\n if (isInRightSideOfImportOrExportAssignment(node)) {\n const symbol = getSymbolAtLocation(node);\n if (symbol) {\n const declaredType = getDeclaredTypeOfSymbol(symbol);\n return !isErrorType(declaredType) ? declaredType : getTypeOfSymbol(symbol);\n }\n }\n if (isMetaProperty(node.parent) && node.parent.keywordToken === node.kind) {\n return checkMetaPropertyKeyword(node.parent);\n }\n if (isImportAttributes(node)) {\n return getGlobalImportAttributesType(\n /*reportErrors*/\n false\n );\n }\n return errorType;\n }\n function getTypeOfAssignmentPattern(expr) {\n Debug.assert(expr.kind === 211 /* ObjectLiteralExpression */ || expr.kind === 210 /* ArrayLiteralExpression */);\n if (expr.parent.kind === 251 /* ForOfStatement */) {\n const iteratedType = checkRightHandSideOfForOf(expr.parent);\n return checkDestructuringAssignment(expr, iteratedType || errorType);\n }\n if (expr.parent.kind === 227 /* BinaryExpression */) {\n const iteratedType = getTypeOfExpression(expr.parent.right);\n return checkDestructuringAssignment(expr, iteratedType || errorType);\n }\n if (expr.parent.kind === 304 /* PropertyAssignment */) {\n const node2 = cast(expr.parent.parent, isObjectLiteralExpression);\n const typeOfParentObjectLiteral = getTypeOfAssignmentPattern(node2) || errorType;\n const propertyIndex = indexOfNode(node2.properties, expr.parent);\n return checkObjectLiteralDestructuringPropertyAssignment(node2, typeOfParentObjectLiteral, propertyIndex);\n }\n const node = cast(expr.parent, isArrayLiteralExpression);\n const typeOfArrayLiteral = getTypeOfAssignmentPattern(node) || errorType;\n const elementType = checkIteratedTypeOrElementType(65 /* Destructuring */, typeOfArrayLiteral, undefinedType, expr.parent) || errorType;\n return checkArrayLiteralDestructuringElementAssignment(node, typeOfArrayLiteral, node.elements.indexOf(expr), elementType);\n }\n function getPropertySymbolOfDestructuringAssignment(location) {\n const typeOfObjectLiteral = getTypeOfAssignmentPattern(cast(location.parent.parent, isAssignmentPattern));\n return typeOfObjectLiteral && getPropertyOfType(typeOfObjectLiteral, location.escapedText);\n }\n function getRegularTypeOfExpression(expr) {\n if (isRightSideOfQualifiedNameOrPropertyAccess(expr)) {\n expr = expr.parent;\n }\n return getRegularTypeOfLiteralType(getTypeOfExpression(expr));\n }\n function getParentTypeOfClassElement(node) {\n const classSymbol = getSymbolOfNode(node.parent);\n return isStatic(node) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol);\n }\n function getClassElementPropertyKeyType(element) {\n const name = element.name;\n switch (name.kind) {\n case 80 /* Identifier */:\n return getStringLiteralType(idText(name));\n case 9 /* NumericLiteral */:\n case 11 /* StringLiteral */:\n return getStringLiteralType(name.text);\n case 168 /* ComputedPropertyName */:\n const nameType = checkComputedPropertyName(name);\n return isTypeAssignableToKind(nameType, 12288 /* ESSymbolLike */) ? nameType : stringType;\n default:\n return Debug.fail(\"Unsupported property name.\");\n }\n }\n function getAugmentedPropertiesOfType(type) {\n type = getApparentType(type);\n const propsByName = createSymbolTable(getPropertiesOfType(type));\n const functionType = getSignaturesOfType(type, 0 /* Call */).length ? globalCallableFunctionType : getSignaturesOfType(type, 1 /* Construct */).length ? globalNewableFunctionType : void 0;\n if (functionType) {\n forEach(getPropertiesOfType(functionType), (p) => {\n if (!propsByName.has(p.escapedName)) {\n propsByName.set(p.escapedName, p);\n }\n });\n }\n return getNamedMembers(propsByName);\n }\n function typeHasCallOrConstructSignatures(type) {\n return getSignaturesOfType(type, 0 /* Call */).length !== 0 || getSignaturesOfType(type, 1 /* Construct */).length !== 0;\n }\n function getRootSymbols(symbol) {\n const roots = getImmediateRootSymbols(symbol);\n return roots ? flatMap(roots, getRootSymbols) : [symbol];\n }\n function getImmediateRootSymbols(symbol) {\n if (getCheckFlags(symbol) & 6 /* Synthetic */) {\n return mapDefined(getSymbolLinks(symbol).containingType.types, (type) => getPropertyOfType(type, symbol.escapedName));\n } else if (symbol.flags & 33554432 /* Transient */) {\n const { links: { leftSpread, rightSpread, syntheticOrigin } } = symbol;\n return leftSpread ? [leftSpread, rightSpread] : syntheticOrigin ? [syntheticOrigin] : singleElementArray(tryGetTarget(symbol));\n }\n return void 0;\n }\n function tryGetTarget(symbol) {\n let target;\n let next = symbol;\n while (next = getSymbolLinks(next).target) {\n target = next;\n }\n return target;\n }\n function isArgumentsLocalBinding(nodeIn) {\n if (isGeneratedIdentifier(nodeIn)) return false;\n const node = getParseTreeNode(nodeIn, isIdentifier);\n if (!node) return false;\n const parent2 = node.parent;\n if (!parent2) return false;\n const isPropertyName2 = (isPropertyAccessExpression(parent2) || isPropertyAssignment(parent2)) && parent2.name === node;\n return !isPropertyName2 && getReferencedValueSymbol(node) === argumentsSymbol;\n }\n function isNameOfModuleOrEnumDeclaration(node) {\n return isModuleOrEnumDeclaration(node.parent) && node === node.parent.name;\n }\n function getReferencedExportContainer(nodeIn, prefixLocals) {\n var _a;\n const node = getParseTreeNode(nodeIn, isIdentifier);\n if (node) {\n let symbol = getReferencedValueSymbol(\n node,\n /*startInDeclarationContainer*/\n isNameOfModuleOrEnumDeclaration(node)\n );\n if (symbol) {\n if (symbol.flags & 1048576 /* ExportValue */) {\n const exportSymbol = getMergedSymbol(symbol.exportSymbol);\n if (!prefixLocals && exportSymbol.flags & 944 /* ExportHasLocal */ && !(exportSymbol.flags & 3 /* Variable */)) {\n return void 0;\n }\n symbol = exportSymbol;\n }\n const parentSymbol = getParentOfSymbol(symbol);\n if (parentSymbol) {\n if (parentSymbol.flags & 512 /* ValueModule */ && ((_a = parentSymbol.valueDeclaration) == null ? void 0 : _a.kind) === 308 /* SourceFile */) {\n const symbolFile = parentSymbol.valueDeclaration;\n const referenceFile = getSourceFileOfNode(node);\n const symbolIsUmdExport = symbolFile !== referenceFile;\n return symbolIsUmdExport ? void 0 : symbolFile;\n }\n return findAncestor(node.parent, (n) => isModuleOrEnumDeclaration(n) && getSymbolOfDeclaration(n) === parentSymbol);\n }\n }\n }\n }\n function getReferencedImportDeclaration(nodeIn) {\n const specifier = getIdentifierGeneratedImportReference(nodeIn);\n if (specifier) {\n return specifier;\n }\n const node = getParseTreeNode(nodeIn, isIdentifier);\n if (node) {\n const symbol = getReferencedValueOrAliasSymbol(node);\n if (isNonLocalAlias(\n symbol,\n /*excludes*/\n 111551 /* Value */\n ) && !getTypeOnlyAliasDeclaration(symbol, 111551 /* Value */)) {\n return getDeclarationOfAliasSymbol(symbol);\n }\n }\n return void 0;\n }\n function isSymbolOfDestructuredElementOfCatchBinding(symbol) {\n return symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration) && walkUpBindingElementsAndPatterns(symbol.valueDeclaration).parent.kind === 300 /* CatchClause */;\n }\n function isSymbolOfDeclarationWithCollidingName(symbol) {\n if (symbol.flags & 418 /* BlockScoped */ && symbol.valueDeclaration && !isSourceFile(symbol.valueDeclaration)) {\n const links = getSymbolLinks(symbol);\n if (links.isDeclarationWithCollidingName === void 0) {\n const container = getEnclosingBlockScopeContainer(symbol.valueDeclaration);\n if (isStatementWithLocals(container) || isSymbolOfDestructuredElementOfCatchBinding(symbol)) {\n if (resolveName(\n container.parent,\n symbol.escapedName,\n 111551 /* Value */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n false\n )) {\n links.isDeclarationWithCollidingName = true;\n } else if (hasNodeCheckFlag(symbol.valueDeclaration, 16384 /* CapturedBlockScopedBinding */)) {\n const isDeclaredInLoop = hasNodeCheckFlag(symbol.valueDeclaration, 32768 /* BlockScopedBindingInLoop */);\n const inLoopInitializer = isIterationStatement(\n container,\n /*lookInLabeledStatements*/\n false\n );\n const inLoopBodyBlock = container.kind === 242 /* Block */ && isIterationStatement(\n container.parent,\n /*lookInLabeledStatements*/\n false\n );\n links.isDeclarationWithCollidingName = !isBlockScopedContainerTopLevel(container) && (!isDeclaredInLoop || !inLoopInitializer && !inLoopBodyBlock);\n } else {\n links.isDeclarationWithCollidingName = false;\n }\n }\n }\n return links.isDeclarationWithCollidingName;\n }\n return false;\n }\n function getReferencedDeclarationWithCollidingName(nodeIn) {\n if (!isGeneratedIdentifier(nodeIn)) {\n const node = getParseTreeNode(nodeIn, isIdentifier);\n if (node) {\n const symbol = getReferencedValueSymbol(node);\n if (symbol && isSymbolOfDeclarationWithCollidingName(symbol)) {\n return symbol.valueDeclaration;\n }\n }\n }\n return void 0;\n }\n function isDeclarationWithCollidingName(nodeIn) {\n const node = getParseTreeNode(nodeIn, isDeclaration);\n if (node) {\n const symbol = getSymbolOfDeclaration(node);\n if (symbol) {\n return isSymbolOfDeclarationWithCollidingName(symbol);\n }\n }\n return false;\n }\n function isValueAliasDeclaration(node) {\n Debug.assert(canCollectSymbolAliasAccessabilityData);\n switch (node.kind) {\n case 272 /* ImportEqualsDeclaration */:\n return isAliasResolvedToValue(getSymbolOfDeclaration(node));\n case 274 /* ImportClause */:\n case 275 /* NamespaceImport */:\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n const symbol = getSymbolOfDeclaration(node);\n return !!symbol && isAliasResolvedToValue(\n symbol,\n /*excludeTypeOnlyValues*/\n true\n );\n case 279 /* ExportDeclaration */:\n const exportClause = node.exportClause;\n return !!exportClause && (isNamespaceExport(exportClause) || some(exportClause.elements, isValueAliasDeclaration));\n case 278 /* ExportAssignment */:\n return node.expression && node.expression.kind === 80 /* Identifier */ ? isAliasResolvedToValue(\n getSymbolOfDeclaration(node),\n /*excludeTypeOnlyValues*/\n true\n ) : true;\n }\n return false;\n }\n function isTopLevelValueImportEqualsWithEntityName(nodeIn) {\n const node = getParseTreeNode(nodeIn, isImportEqualsDeclaration);\n if (node === void 0 || node.parent.kind !== 308 /* SourceFile */ || !isInternalModuleImportEqualsDeclaration(node)) {\n return false;\n }\n const isValue = isAliasResolvedToValue(getSymbolOfDeclaration(node));\n return isValue && node.moduleReference && !nodeIsMissing(node.moduleReference);\n }\n function isAliasResolvedToValue(symbol, excludeTypeOnlyValues) {\n if (!symbol) {\n return false;\n }\n const container = getSourceFileOfNode(symbol.valueDeclaration);\n const fileSymbol = container && getSymbolOfDeclaration(container);\n void resolveExternalModuleSymbol(fileSymbol);\n const target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol));\n if (target === unknownSymbol) {\n return !excludeTypeOnlyValues || !getTypeOnlyAliasDeclaration(symbol);\n }\n return !!(getSymbolFlags(\n symbol,\n excludeTypeOnlyValues,\n /*excludeLocalMeanings*/\n true\n ) & 111551 /* Value */) && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target));\n }\n function isConstEnumOrConstEnumOnlyModule(s) {\n return isConstEnumSymbol(s) || !!s.constEnumOnlyModule;\n }\n function isReferencedAliasDeclaration(node, checkChildren) {\n Debug.assert(canCollectSymbolAliasAccessabilityData);\n if (isAliasSymbolDeclaration(node)) {\n const symbol = getSymbolOfDeclaration(node);\n const links = symbol && getSymbolLinks(symbol);\n if (links == null ? void 0 : links.referenced) {\n return true;\n }\n const target = getSymbolLinks(symbol).aliasTarget;\n if (target && getEffectiveModifierFlags(node) & 32 /* Export */ && getSymbolFlags(target) & 111551 /* Value */ && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target))) {\n return true;\n }\n }\n if (checkChildren) {\n return !!forEachChild(node, (node2) => isReferencedAliasDeclaration(node2, checkChildren));\n }\n return false;\n }\n function isImplementationOfOverload(node) {\n if (nodeIsPresent(node.body)) {\n if (isGetAccessor(node) || isSetAccessor(node)) return false;\n const symbol = getSymbolOfDeclaration(node);\n const signaturesOfSymbol = getSignaturesOfSymbol(symbol);\n return signaturesOfSymbol.length > 1 || // If there is single signature for the symbol, it is overload if that signature isn't coming from the node\n // e.g.: function foo(a: string): string;\n // function foo(a: any) { // This is implementation of the overloads\n // return a;\n // }\n signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node;\n }\n return false;\n }\n function declaredParameterTypeContainsUndefined(parameter) {\n const typeNode = getNonlocalEffectiveTypeAnnotationNode(parameter);\n if (!typeNode) return false;\n const type = getTypeFromTypeNode(typeNode);\n return isErrorType(type) || containsUndefinedType(type);\n }\n function requiresAddingImplicitUndefined(parameter, enclosingDeclaration) {\n return (isRequiredInitializedParameter(parameter, enclosingDeclaration) || isOptionalUninitializedParameterProperty(parameter)) && !declaredParameterTypeContainsUndefined(parameter);\n }\n function isRequiredInitializedParameter(parameter, enclosingDeclaration) {\n if (!strictNullChecks || isOptionalParameter(parameter) || isJSDocParameterTag(parameter) || !parameter.initializer) {\n return false;\n }\n if (hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */)) {\n return !!enclosingDeclaration && isFunctionLikeDeclaration(enclosingDeclaration);\n }\n return true;\n }\n function isOptionalUninitializedParameterProperty(parameter) {\n return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);\n }\n function isExpandoFunctionDeclaration(node) {\n const declaration = getParseTreeNode(node, (n) => isFunctionDeclaration(n) || isVariableDeclaration(n));\n if (!declaration) {\n return false;\n }\n let symbol;\n if (isVariableDeclaration(declaration)) {\n if (declaration.type || !isInJSFile(declaration) && !isVarConstLike2(declaration)) {\n return false;\n }\n const initializer = getDeclaredExpandoInitializer(declaration);\n if (!initializer || !canHaveSymbol(initializer)) {\n return false;\n }\n symbol = getSymbolOfDeclaration(initializer);\n } else {\n symbol = getSymbolOfDeclaration(declaration);\n }\n if (!symbol || !(symbol.flags & 16 /* Function */ | 3 /* Variable */)) {\n return false;\n }\n return !!forEachEntry(getExportsOfSymbol(symbol), (p) => p.flags & 111551 /* Value */ && isExpandoPropertyDeclaration(p.valueDeclaration));\n }\n function getPropertiesOfContainerFunction(node) {\n const declaration = getParseTreeNode(node, isFunctionDeclaration);\n if (!declaration) {\n return emptyArray;\n }\n const symbol = getSymbolOfDeclaration(declaration);\n return symbol && getPropertiesOfType(getTypeOfSymbol(symbol)) || emptyArray;\n }\n function getNodeCheckFlags(node) {\n var _a;\n const nodeId = node.id || 0;\n if (nodeId < 0 || nodeId >= nodeLinks.length) return 0;\n return ((_a = nodeLinks[nodeId]) == null ? void 0 : _a.flags) || 0;\n }\n function hasNodeCheckFlag(node, flag) {\n calculateNodeCheckFlagWorker(node, flag);\n return !!(getNodeCheckFlags(node) & flag);\n }\n function calculateNodeCheckFlagWorker(node, flag) {\n if (!compilerOptions.noCheck && canIncludeBindAndCheckDiagnostics(getSourceFileOfNode(node), compilerOptions)) {\n return;\n }\n const links = getNodeLinks(node);\n if (links.calculatedFlags & flag) {\n return;\n }\n switch (flag) {\n case 16 /* SuperInstance */:\n case 32 /* SuperStatic */:\n return checkSingleSuperExpression(node);\n case 128 /* MethodWithSuperPropertyAccessInAsync */:\n case 256 /* MethodWithSuperPropertyAssignmentInAsync */:\n case 2097152 /* ContainsSuperPropertyInStaticInitializer */:\n return checkChildSuperExpressions(node);\n case 512 /* CaptureArguments */:\n case 8192 /* ContainsCapturedBlockScopeBinding */:\n case 65536 /* NeedsLoopOutParameter */:\n case 262144 /* ContainsConstructorReference */:\n return checkChildIdentifiers(node);\n case 536870912 /* ConstructorReference */:\n return checkSingleIdentifier(node);\n case 4096 /* LoopWithCapturedBlockScopedBinding */:\n case 32768 /* BlockScopedBindingInLoop */:\n case 16384 /* CapturedBlockScopedBinding */:\n return checkContainingBlockScopeBindingUses(node);\n default:\n return Debug.assertNever(flag, `Unhandled node check flag calculation: ${Debug.formatNodeCheckFlags(flag)}`);\n }\n function forEachNodeRecursively(root, cb) {\n const rootResult = cb(root, root.parent);\n if (rootResult === \"skip\") return void 0;\n if (rootResult) return rootResult;\n return forEachChildRecursively(root, cb);\n }\n function checkSuperExpressions(node2) {\n const links2 = getNodeLinks(node2);\n if (links2.calculatedFlags & flag) return \"skip\";\n links2.calculatedFlags |= 128 /* MethodWithSuperPropertyAccessInAsync */ | 256 /* MethodWithSuperPropertyAssignmentInAsync */ | 2097152 /* ContainsSuperPropertyInStaticInitializer */;\n checkSingleSuperExpression(node2);\n return void 0;\n }\n function checkChildSuperExpressions(node2) {\n forEachNodeRecursively(node2, checkSuperExpressions);\n }\n function checkSingleSuperExpression(node2) {\n const nodeLinks2 = getNodeLinks(node2);\n nodeLinks2.calculatedFlags |= 16 /* SuperInstance */ | 32 /* SuperStatic */;\n if (node2.kind === 108 /* SuperKeyword */) {\n checkSuperExpression(node2);\n }\n }\n function checkIdentifiers(node2) {\n const links2 = getNodeLinks(node2);\n if (links2.calculatedFlags & flag) return \"skip\";\n links2.calculatedFlags |= 512 /* CaptureArguments */ | 8192 /* ContainsCapturedBlockScopeBinding */ | 65536 /* NeedsLoopOutParameter */ | 262144 /* ContainsConstructorReference */;\n checkSingleIdentifier(node2);\n return void 0;\n }\n function checkChildIdentifiers(node2) {\n forEachNodeRecursively(node2, checkIdentifiers);\n }\n function isExpressionNodeOrShorthandPropertyAssignmentName(node2) {\n return isExpressionNode(node2) || isShorthandPropertyAssignment(node2.parent) && (node2.parent.objectAssignmentInitializer ?? node2.parent.name) === node2;\n }\n function checkSingleIdentifier(node2) {\n const nodeLinks2 = getNodeLinks(node2);\n nodeLinks2.calculatedFlags |= 536870912 /* ConstructorReference */;\n if (isIdentifier(node2)) {\n nodeLinks2.calculatedFlags |= 32768 /* BlockScopedBindingInLoop */ | 16384 /* CapturedBlockScopedBinding */;\n if (isExpressionNodeOrShorthandPropertyAssignmentName(node2) && !(isPropertyAccessExpression(node2.parent) && node2.parent.name === node2)) {\n const s = getResolvedSymbol(node2);\n if (s && s !== unknownSymbol) {\n checkIdentifierCalculateNodeCheckFlags(node2, s);\n }\n }\n }\n }\n function checkBlockScopeBindings(node2) {\n const links2 = getNodeLinks(node2);\n if (links2.calculatedFlags & flag) return \"skip\";\n links2.calculatedFlags |= 4096 /* LoopWithCapturedBlockScopedBinding */ | 32768 /* BlockScopedBindingInLoop */ | 16384 /* CapturedBlockScopedBinding */;\n checkSingleBlockScopeBinding(node2);\n return void 0;\n }\n function checkContainingBlockScopeBindingUses(node2) {\n const scope = getEnclosingBlockScopeContainer(isDeclarationName(node2) ? node2.parent : node2);\n forEachNodeRecursively(scope, checkBlockScopeBindings);\n }\n function checkSingleBlockScopeBinding(node2) {\n checkSingleIdentifier(node2);\n if (isComputedPropertyName(node2)) {\n checkComputedPropertyName(node2);\n }\n if (isPrivateIdentifier(node2) && isClassElement(node2.parent)) {\n setNodeLinksForPrivateIdentifierScope(node2.parent);\n }\n }\n }\n function getEnumMemberValue(node) {\n computeEnumMemberValues(node.parent);\n return getNodeLinks(node).enumMemberValue ?? evaluatorResult(\n /*value*/\n void 0\n );\n }\n function canHaveConstantValue(node) {\n switch (node.kind) {\n case 307 /* EnumMember */:\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return true;\n }\n return false;\n }\n function getConstantValue2(node) {\n if (node.kind === 307 /* EnumMember */) {\n return getEnumMemberValue(node).value;\n }\n if (!getNodeLinks(node).resolvedSymbol) {\n void checkExpressionCached(node);\n }\n const symbol = getNodeLinks(node).resolvedSymbol || (isEntityNameExpression(node) ? resolveEntityName(\n node,\n 111551 /* Value */,\n /*ignoreErrors*/\n true\n ) : void 0);\n if (symbol && symbol.flags & 8 /* EnumMember */) {\n const member = symbol.valueDeclaration;\n if (isEnumConst(member.parent)) {\n return getEnumMemberValue(member).value;\n }\n }\n return void 0;\n }\n function isFunctionType(type) {\n return !!(type.flags & 524288 /* Object */) && getSignaturesOfType(type, 0 /* Call */).length > 0;\n }\n function getTypeReferenceSerializationKind(typeNameIn, location) {\n var _a;\n const typeName = getParseTreeNode(typeNameIn, isEntityName);\n if (!typeName) return 0 /* Unknown */;\n if (location) {\n location = getParseTreeNode(location);\n if (!location) return 0 /* Unknown */;\n }\n let isTypeOnly = false;\n if (isQualifiedName(typeName)) {\n const rootValueSymbol = resolveEntityName(\n getFirstIdentifier(typeName),\n 111551 /* Value */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n location\n );\n isTypeOnly = !!((_a = rootValueSymbol == null ? void 0 : rootValueSymbol.declarations) == null ? void 0 : _a.every(isTypeOnlyImportOrExportDeclaration));\n }\n const valueSymbol = resolveEntityName(\n typeName,\n 111551 /* Value */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n location\n );\n const resolvedValueSymbol = valueSymbol && valueSymbol.flags & 2097152 /* Alias */ ? resolveAlias(valueSymbol) : valueSymbol;\n isTypeOnly || (isTypeOnly = !!(valueSymbol && getTypeOnlyAliasDeclaration(valueSymbol, 111551 /* Value */)));\n const typeSymbol = resolveEntityName(\n typeName,\n 788968 /* Type */,\n /*ignoreErrors*/\n true,\n /*dontResolveAlias*/\n true,\n location\n );\n const resolvedTypeSymbol = typeSymbol && typeSymbol.flags & 2097152 /* Alias */ ? resolveAlias(typeSymbol) : typeSymbol;\n if (!valueSymbol) {\n isTypeOnly || (isTypeOnly = !!(typeSymbol && getTypeOnlyAliasDeclaration(typeSymbol, 788968 /* Type */)));\n }\n if (resolvedValueSymbol && resolvedValueSymbol === resolvedTypeSymbol) {\n const globalPromiseSymbol = getGlobalPromiseConstructorSymbol(\n /*reportErrors*/\n false\n );\n if (globalPromiseSymbol && resolvedValueSymbol === globalPromiseSymbol) {\n return 9 /* Promise */;\n }\n const constructorType = getTypeOfSymbol(resolvedValueSymbol);\n if (constructorType && isConstructorType(constructorType)) {\n return isTypeOnly ? 10 /* TypeWithCallSignature */ : 1 /* TypeWithConstructSignatureAndValue */;\n }\n }\n if (!resolvedTypeSymbol) {\n return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */;\n }\n const type = getDeclaredTypeOfSymbol(resolvedTypeSymbol);\n if (isErrorType(type)) {\n return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */;\n } else if (type.flags & 3 /* AnyOrUnknown */) {\n return 11 /* ObjectType */;\n } else if (isTypeAssignableToKind(type, 16384 /* Void */ | 98304 /* Nullable */ | 131072 /* Never */)) {\n return 2 /* VoidNullableOrNeverType */;\n } else if (isTypeAssignableToKind(type, 528 /* BooleanLike */)) {\n return 6 /* BooleanType */;\n } else if (isTypeAssignableToKind(type, 296 /* NumberLike */)) {\n return 3 /* NumberLikeType */;\n } else if (isTypeAssignableToKind(type, 2112 /* BigIntLike */)) {\n return 4 /* BigIntLikeType */;\n } else if (isTypeAssignableToKind(type, 402653316 /* StringLike */)) {\n return 5 /* StringLikeType */;\n } else if (isTupleType(type)) {\n return 7 /* ArrayLikeType */;\n } else if (isTypeAssignableToKind(type, 12288 /* ESSymbolLike */)) {\n return 8 /* ESSymbolType */;\n } else if (isFunctionType(type)) {\n return 10 /* TypeWithCallSignature */;\n } else if (isArrayType(type)) {\n return 7 /* ArrayLikeType */;\n } else {\n return 11 /* ObjectType */;\n }\n }\n function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, internalFlags, tracker) {\n const declaration = getParseTreeNode(declarationIn, hasInferredType);\n if (!declaration) {\n return factory.createToken(133 /* AnyKeyword */);\n }\n const symbol = getSymbolOfDeclaration(declaration);\n return nodeBuilder.serializeTypeForDeclaration(declaration, symbol, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n }\n function getAllAccessorDeclarationsForDeclaration(accessor) {\n accessor = getParseTreeNode(accessor, isGetOrSetAccessorDeclaration);\n const otherKind = accessor.kind === 179 /* SetAccessor */ ? 178 /* GetAccessor */ : 179 /* SetAccessor */;\n const otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(accessor), otherKind);\n const firstAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? otherAccessor : accessor;\n const secondAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? accessor : otherAccessor;\n const setAccessor = accessor.kind === 179 /* SetAccessor */ ? accessor : otherAccessor;\n const getAccessor = accessor.kind === 178 /* GetAccessor */ ? accessor : otherAccessor;\n return {\n firstAccessor,\n secondAccessor,\n setAccessor,\n getAccessor\n };\n }\n function createReturnTypeOfSignatureDeclaration(signatureDeclarationIn, enclosingDeclaration, flags, internalFlags, tracker) {\n const signatureDeclaration = getParseTreeNode(signatureDeclarationIn, isFunctionLike);\n if (!signatureDeclaration) {\n return factory.createToken(133 /* AnyKeyword */);\n }\n return nodeBuilder.serializeReturnTypeForSignature(signatureDeclaration, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n }\n function createTypeOfExpression(exprIn, enclosingDeclaration, flags, internalFlags, tracker) {\n const expr = getParseTreeNode(exprIn, isExpression);\n if (!expr) {\n return factory.createToken(133 /* AnyKeyword */);\n }\n return nodeBuilder.serializeTypeForExpression(expr, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n }\n function hasGlobalName(name) {\n return globals.has(escapeLeadingUnderscores(name));\n }\n function getReferencedValueSymbol(reference, startInDeclarationContainer) {\n const resolvedSymbol = getNodeLinks(reference).resolvedSymbol;\n if (resolvedSymbol) {\n return resolvedSymbol;\n }\n let location = reference;\n if (startInDeclarationContainer) {\n const parent2 = reference.parent;\n if (isDeclaration(parent2) && reference === parent2.name) {\n location = getDeclarationContainer(parent2);\n }\n }\n return resolveName(\n location,\n reference.escapedText,\n 111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n }\n function getReferencedValueOrAliasSymbol(reference) {\n const resolvedSymbol = getNodeLinks(reference).resolvedSymbol;\n if (resolvedSymbol && resolvedSymbol !== unknownSymbol) {\n return resolvedSymbol;\n }\n return resolveName(\n reference,\n reference.escapedText,\n 111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true,\n /*excludeGlobals*/\n void 0\n );\n }\n function getReferencedValueDeclaration(referenceIn) {\n if (!isGeneratedIdentifier(referenceIn)) {\n const reference = getParseTreeNode(referenceIn, isIdentifier);\n if (reference) {\n const symbol = getReferencedValueSymbol(reference);\n if (symbol) {\n return getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration;\n }\n }\n }\n return void 0;\n }\n function getReferencedValueDeclarations(referenceIn) {\n if (!isGeneratedIdentifier(referenceIn)) {\n const reference = getParseTreeNode(referenceIn, isIdentifier);\n if (reference) {\n const symbol = getReferencedValueSymbol(reference);\n if (symbol) {\n return filter(getExportSymbolOfValueSymbolIfExported(symbol).declarations, (declaration) => {\n switch (declaration.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 173 /* PropertyDeclaration */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 307 /* EnumMember */:\n case 211 /* ObjectLiteralExpression */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 267 /* EnumDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 268 /* ModuleDeclaration */:\n return true;\n }\n return false;\n });\n }\n }\n }\n return void 0;\n }\n function isLiteralConstDeclaration(node) {\n if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node)) {\n return isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(node)));\n }\n return false;\n }\n function literalTypeToNode(type, enclosing, tracker) {\n const enumResult = type.flags & 1056 /* EnumLike */ ? nodeBuilder.symbolToExpression(\n type.symbol,\n 111551 /* Value */,\n enclosing,\n /*flags*/\n void 0,\n /*internalFlags*/\n void 0,\n tracker\n ) : type === trueType ? factory.createTrue() : type === falseType && factory.createFalse();\n if (enumResult) return enumResult;\n const literalValue = type.value;\n return typeof literalValue === \"object\" ? factory.createBigIntLiteral(literalValue) : typeof literalValue === \"string\" ? factory.createStringLiteral(literalValue) : literalValue < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-literalValue)) : factory.createNumericLiteral(literalValue);\n }\n function createLiteralConstValue(node, tracker) {\n const type = getTypeOfSymbol(getSymbolOfDeclaration(node));\n return literalTypeToNode(type, node, tracker);\n }\n function getJsxFactoryEntity(location) {\n return location ? (getJsxNamespace(location), getSourceFileOfNode(location).localJsxFactory || _jsxFactoryEntity) : _jsxFactoryEntity;\n }\n function getJsxFragmentFactoryEntity(location) {\n if (location) {\n const file = getSourceFileOfNode(location);\n if (file) {\n if (file.localJsxFragmentFactory) {\n return file.localJsxFragmentFactory;\n }\n const jsxFragPragmas = file.pragmas.get(\"jsxfrag\");\n const jsxFragPragma = isArray(jsxFragPragmas) ? jsxFragPragmas[0] : jsxFragPragmas;\n if (jsxFragPragma) {\n file.localJsxFragmentFactory = parseIsolatedEntityName(jsxFragPragma.arguments.factory, languageVersion);\n return file.localJsxFragmentFactory;\n }\n }\n }\n if (compilerOptions.jsxFragmentFactory) {\n return parseIsolatedEntityName(compilerOptions.jsxFragmentFactory, languageVersion);\n }\n }\n function getNonlocalEffectiveTypeAnnotationNode(node) {\n const direct = getEffectiveTypeAnnotationNode(node);\n if (direct) {\n return direct;\n }\n if (node.kind === 170 /* Parameter */ && node.parent.kind === 179 /* SetAccessor */) {\n const other = getAllAccessorDeclarationsForDeclaration(node.parent).getAccessor;\n if (other) {\n return getEffectiveReturnTypeNode(other);\n }\n }\n return void 0;\n }\n function createResolver() {\n return {\n getReferencedExportContainer,\n getReferencedImportDeclaration,\n getReferencedDeclarationWithCollidingName,\n isDeclarationWithCollidingName,\n isValueAliasDeclaration: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node && canCollectSymbolAliasAccessabilityData ? isValueAliasDeclaration(node) : true;\n },\n hasGlobalName,\n isReferencedAliasDeclaration: (nodeIn, checkChildren) => {\n const node = getParseTreeNode(nodeIn);\n return node && canCollectSymbolAliasAccessabilityData ? isReferencedAliasDeclaration(node, checkChildren) : true;\n },\n hasNodeCheckFlag: (nodeIn, flag) => {\n const node = getParseTreeNode(nodeIn);\n if (!node) return false;\n return hasNodeCheckFlag(node, flag);\n },\n isTopLevelValueImportEqualsWithEntityName,\n isDeclarationVisible,\n isImplementationOfOverload,\n requiresAddingImplicitUndefined,\n isExpandoFunctionDeclaration,\n getPropertiesOfContainerFunction,\n createTypeOfDeclaration,\n createReturnTypeOfSignatureDeclaration,\n createTypeOfExpression,\n createLiteralConstValue,\n isSymbolAccessible,\n isEntityNameVisible,\n getConstantValue: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, canHaveConstantValue);\n return node ? getConstantValue2(node) : void 0;\n },\n getEnumMemberValue: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isEnumMember);\n return node ? getEnumMemberValue(node) : void 0;\n },\n collectLinkedAliases,\n markLinkedReferences: (nodeIn) => {\n const node = getParseTreeNode(nodeIn);\n return node && markLinkedReferences(node, 0 /* Unspecified */);\n },\n getReferencedValueDeclaration,\n getReferencedValueDeclarations,\n getTypeReferenceSerializationKind,\n isOptionalParameter,\n isArgumentsLocalBinding,\n getExternalModuleFileFromDeclaration: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, hasPossibleExternalModuleReference);\n return node && getExternalModuleFileFromDeclaration(node);\n },\n isLiteralConstDeclaration,\n isLateBound: (nodeIn) => {\n const node = getParseTreeNode(nodeIn, isDeclaration);\n const symbol = node && getSymbolOfDeclaration(node);\n return !!(symbol && getCheckFlags(symbol) & 4096 /* Late */);\n },\n getJsxFactoryEntity,\n getJsxFragmentFactoryEntity,\n isBindingCapturedByNode: (node, decl) => {\n const parseNode = getParseTreeNode(node);\n const parseDecl = getParseTreeNode(decl);\n return !!parseNode && !!parseDecl && (isVariableDeclaration(parseDecl) || isBindingElement(parseDecl)) && isBindingCapturedByNode(parseNode, parseDecl);\n },\n getDeclarationStatementsForSourceFile: (node, flags, internalFlags, tracker) => {\n const n = getParseTreeNode(node);\n Debug.assert(n && n.kind === 308 /* SourceFile */, \"Non-sourcefile node passed into getDeclarationsForSourceFile\");\n const sym = getSymbolOfDeclaration(node);\n if (!sym) {\n return !node.locals ? [] : nodeBuilder.symbolTableToDeclarationStatements(node.locals, node, flags, internalFlags, tracker);\n }\n resolveExternalModuleSymbol(sym);\n return !sym.exports ? [] : nodeBuilder.symbolTableToDeclarationStatements(sym.exports, node, flags, internalFlags, tracker);\n },\n isImportRequiredByAugmentation,\n isDefinitelyReferenceToGlobalSymbolObject,\n createLateBoundIndexSignatures: (cls, enclosing, flags, internalFlags, tracker) => {\n const sym = cls.symbol;\n const staticInfos = getIndexInfosOfType(getTypeOfSymbol(sym));\n const instanceIndexSymbol = getIndexSymbol(sym);\n const instanceInfos = instanceIndexSymbol && getIndexInfosOfIndexSymbol(instanceIndexSymbol, arrayFrom(getMembersOfSymbol(sym).values()));\n let result;\n for (const infoList of [staticInfos, instanceInfos]) {\n if (!length(infoList)) continue;\n result || (result = []);\n for (const info of infoList) {\n if (info.declaration) continue;\n if (info === anyBaseTypeIndexInfo) continue;\n if (info.components) {\n const allComponentComputedNamesSerializable = every(info.components, (e) => {\n var _a;\n return !!(e.name && isComputedPropertyName(e.name) && isEntityNameExpression(e.name.expression) && enclosing && ((_a = isEntityNameVisible(\n e.name.expression,\n enclosing,\n /*shouldComputeAliasToMakeVisible*/\n false\n )) == null ? void 0 : _a.accessibility) === 0 /* Accessible */);\n });\n if (allComponentComputedNamesSerializable) {\n const newComponents = filter(info.components, (e) => {\n return !hasLateBindableName(e);\n });\n result.push(...map(newComponents, (e) => {\n trackComputedName(e.name.expression);\n const mods = infoList === staticInfos ? [factory.createModifier(126 /* StaticKeyword */)] : void 0;\n return factory.createPropertyDeclaration(\n append(mods, info.isReadonly ? factory.createModifier(148 /* ReadonlyKeyword */) : void 0),\n e.name,\n (isPropertySignature(e) || isPropertyDeclaration(e) || isMethodSignature(e) || isMethodDeclaration(e) || isGetAccessor(e) || isSetAccessor(e)) && e.questionToken ? factory.createToken(58 /* QuestionToken */) : void 0,\n nodeBuilder.typeToTypeNode(getTypeOfSymbol(e.symbol), enclosing, flags, internalFlags, tracker),\n /*initializer*/\n void 0\n );\n }));\n continue;\n }\n }\n const node = nodeBuilder.indexInfoToIndexSignatureDeclaration(info, enclosing, flags, internalFlags, tracker);\n if (node && infoList === staticInfos) {\n (node.modifiers || (node.modifiers = factory.createNodeArray())).unshift(factory.createModifier(126 /* StaticKeyword */));\n }\n if (node) {\n result.push(node);\n }\n }\n }\n return result;\n function trackComputedName(accessExpression) {\n if (!tracker.trackSymbol) return;\n const firstIdentifier = getFirstIdentifier(accessExpression);\n const name = resolveName(\n firstIdentifier,\n firstIdentifier.escapedText,\n 111551 /* Value */ | 1048576 /* ExportValue */,\n /*nameNotFoundMessage*/\n void 0,\n /*isUse*/\n true\n );\n if (name) {\n tracker.trackSymbol(name, enclosing, 111551 /* Value */);\n }\n }\n },\n symbolToDeclarations: (symbol, meaning, flags, maximumLength, verbosityLevel, out) => {\n return nodeBuilder.symbolToDeclarations(symbol, meaning, flags, maximumLength, verbosityLevel, out);\n }\n };\n function isImportRequiredByAugmentation(node) {\n const file = getSourceFileOfNode(node);\n if (!file.symbol) return false;\n const importTarget = getExternalModuleFileFromDeclaration(node);\n if (!importTarget) return false;\n if (importTarget === file) return false;\n const exports2 = getExportsOfModule(file.symbol);\n for (const s of arrayFrom(exports2.values())) {\n if (s.mergeId) {\n const merged = getMergedSymbol(s);\n if (merged.declarations) {\n for (const d of merged.declarations) {\n const declFile = getSourceFileOfNode(d);\n if (declFile === importTarget) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n }\n function getExternalModuleFileFromDeclaration(declaration) {\n const specifier = declaration.kind === 268 /* ModuleDeclaration */ ? tryCast(declaration.name, isStringLiteral) : getExternalModuleName(declaration);\n const moduleSymbol = resolveExternalModuleNameWorker(\n specifier,\n specifier,\n /*moduleNotFoundError*/\n void 0\n );\n if (!moduleSymbol) {\n return void 0;\n }\n return getDeclarationOfKind(moduleSymbol, 308 /* SourceFile */);\n }\n function initializeTypeChecker() {\n for (const file of host.getSourceFiles()) {\n bindSourceFile(file, compilerOptions);\n }\n amalgamatedDuplicates = /* @__PURE__ */ new Map();\n let augmentations;\n for (const file of host.getSourceFiles()) {\n if (file.redirectInfo) {\n continue;\n }\n if (!isExternalOrCommonJsModule(file)) {\n const fileGlobalThisSymbol = file.locals.get(\"globalThis\");\n if (fileGlobalThisSymbol == null ? void 0 : fileGlobalThisSymbol.declarations) {\n for (const declaration of fileGlobalThisSymbol.declarations) {\n diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, \"globalThis\"));\n }\n }\n mergeSymbolTable(globals, file.locals);\n }\n if (file.jsGlobalAugmentations) {\n mergeSymbolTable(globals, file.jsGlobalAugmentations);\n }\n if (file.patternAmbientModules && file.patternAmbientModules.length) {\n patternAmbientModules = concatenate(patternAmbientModules, file.patternAmbientModules);\n }\n if (file.moduleAugmentations.length) {\n (augmentations || (augmentations = [])).push(file.moduleAugmentations);\n }\n if (file.symbol && file.symbol.globalExports) {\n const source = file.symbol.globalExports;\n source.forEach((sourceSymbol, id) => {\n if (!globals.has(id)) {\n globals.set(id, sourceSymbol);\n }\n });\n }\n }\n if (augmentations) {\n for (const list of augmentations) {\n for (const augmentation of list) {\n if (!isGlobalScopeAugmentation(augmentation.parent)) continue;\n mergeModuleAugmentation(augmentation);\n }\n }\n }\n addUndefinedToGlobalsOrErrorOnRedeclaration();\n getSymbolLinks(undefinedSymbol).type = undefinedWideningType;\n getSymbolLinks(argumentsSymbol).type = getGlobalType(\n \"IArguments\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n getSymbolLinks(unknownSymbol).type = errorType;\n getSymbolLinks(globalThisSymbol).type = createObjectType(16 /* Anonymous */, globalThisSymbol);\n globalArrayType = getGlobalType(\n \"Array\",\n /*arity*/\n 1,\n /*reportErrors*/\n true\n );\n globalObjectType = getGlobalType(\n \"Object\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n globalFunctionType = getGlobalType(\n \"Function\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n globalCallableFunctionType = strictBindCallApply && getGlobalType(\n \"CallableFunction\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n ) || globalFunctionType;\n globalNewableFunctionType = strictBindCallApply && getGlobalType(\n \"NewableFunction\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n ) || globalFunctionType;\n globalStringType = getGlobalType(\n \"String\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n globalNumberType = getGlobalType(\n \"Number\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n globalBooleanType = getGlobalType(\n \"Boolean\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n globalRegExpType = getGlobalType(\n \"RegExp\",\n /*arity*/\n 0,\n /*reportErrors*/\n true\n );\n anyArrayType = createArrayType(anyType);\n autoArrayType = createArrayType(autoType);\n if (autoArrayType === emptyObjectType) {\n autoArrayType = createAnonymousType(\n /*symbol*/\n void 0,\n emptySymbols,\n emptyArray,\n emptyArray,\n emptyArray\n );\n }\n globalReadonlyArrayType = getGlobalTypeOrUndefined(\n \"ReadonlyArray\",\n /*arity*/\n 1\n ) || globalArrayType;\n anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;\n globalThisType = getGlobalTypeOrUndefined(\n \"ThisType\",\n /*arity*/\n 1\n );\n if (augmentations) {\n for (const list of augmentations) {\n for (const augmentation of list) {\n if (isGlobalScopeAugmentation(augmentation.parent)) continue;\n mergeModuleAugmentation(augmentation);\n }\n }\n }\n amalgamatedDuplicates.forEach(({ firstFile, secondFile, conflictingSymbols }) => {\n if (conflictingSymbols.size < 8) {\n conflictingSymbols.forEach(({ isBlockScoped, firstFileLocations, secondFileLocations }, symbolName2) => {\n const message = isBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n for (const node of firstFileLocations) {\n addDuplicateDeclarationError(node, message, symbolName2, secondFileLocations);\n }\n for (const node of secondFileLocations) {\n addDuplicateDeclarationError(node, message, symbolName2, firstFileLocations);\n }\n });\n } else {\n const list = arrayFrom(conflictingSymbols.keys()).join(\", \");\n diagnostics.add(addRelatedInfo(\n createDiagnosticForNode(firstFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list),\n createDiagnosticForNode(secondFile, Diagnostics.Conflicts_are_in_this_file)\n ));\n diagnostics.add(addRelatedInfo(\n createDiagnosticForNode(secondFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list),\n createDiagnosticForNode(firstFile, Diagnostics.Conflicts_are_in_this_file)\n ));\n }\n });\n amalgamatedDuplicates = void 0;\n }\n function checkExternalEmitHelpers(location, helpers) {\n if (compilerOptions.importHelpers) {\n const sourceFile = getSourceFileOfNode(location);\n if (isEffectiveExternalModule(sourceFile, compilerOptions) && !(location.flags & 33554432 /* Ambient */)) {\n const helpersModule = resolveHelpersModule(sourceFile, location);\n if (helpersModule !== unknownSymbol) {\n const links = getSymbolLinks(helpersModule);\n links.requestedExternalEmitHelpers ?? (links.requestedExternalEmitHelpers = 0);\n if ((links.requestedExternalEmitHelpers & helpers) !== helpers) {\n const uncheckedHelpers = helpers & ~links.requestedExternalEmitHelpers;\n for (let helper = 1 /* FirstEmitHelper */; helper <= 16777216 /* LastEmitHelper */; helper <<= 1) {\n if (uncheckedHelpers & helper) {\n for (const name of getHelperNames(helper)) {\n const symbol = resolveSymbol(getSymbol2(getExportsOfModule(helpersModule), escapeLeadingUnderscores(name), 111551 /* Value */));\n if (!symbol) {\n error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name);\n } else if (helper & 524288 /* ClassPrivateFieldGet */) {\n if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 3)) {\n error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 4);\n }\n } else if (helper & 1048576 /* ClassPrivateFieldSet */) {\n if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 4)) {\n error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 5);\n }\n } else if (helper & 1024 /* SpreadArray */) {\n if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 2)) {\n error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 3);\n }\n }\n }\n }\n }\n }\n links.requestedExternalEmitHelpers |= helpers;\n }\n }\n }\n }\n function getHelperNames(helper) {\n switch (helper) {\n case 1 /* Extends */:\n return [\"__extends\"];\n case 2 /* Assign */:\n return [\"__assign\"];\n case 4 /* Rest */:\n return [\"__rest\"];\n case 8 /* Decorate */:\n return legacyDecorators ? [\"__decorate\"] : [\"__esDecorate\", \"__runInitializers\"];\n case 16 /* Metadata */:\n return [\"__metadata\"];\n case 32 /* Param */:\n return [\"__param\"];\n case 64 /* Awaiter */:\n return [\"__awaiter\"];\n case 128 /* Generator */:\n return [\"__generator\"];\n case 256 /* Values */:\n return [\"__values\"];\n case 512 /* Read */:\n return [\"__read\"];\n case 1024 /* SpreadArray */:\n return [\"__spreadArray\"];\n case 2048 /* Await */:\n return [\"__await\"];\n case 4096 /* AsyncGenerator */:\n return [\"__asyncGenerator\"];\n case 8192 /* AsyncDelegator */:\n return [\"__asyncDelegator\"];\n case 16384 /* AsyncValues */:\n return [\"__asyncValues\"];\n case 32768 /* ExportStar */:\n return [\"__exportStar\"];\n case 65536 /* ImportStar */:\n return [\"__importStar\"];\n case 131072 /* ImportDefault */:\n return [\"__importDefault\"];\n case 262144 /* MakeTemplateObject */:\n return [\"__makeTemplateObject\"];\n case 524288 /* ClassPrivateFieldGet */:\n return [\"__classPrivateFieldGet\"];\n case 1048576 /* ClassPrivateFieldSet */:\n return [\"__classPrivateFieldSet\"];\n case 2097152 /* ClassPrivateFieldIn */:\n return [\"__classPrivateFieldIn\"];\n case 4194304 /* SetFunctionName */:\n return [\"__setFunctionName\"];\n case 8388608 /* PropKey */:\n return [\"__propKey\"];\n case 16777216 /* AddDisposableResourceAndDisposeResources */:\n return [\"__addDisposableResource\", \"__disposeResources\"];\n case 33554432 /* RewriteRelativeImportExtension */:\n return [\"__rewriteRelativeImportExtension\"];\n default:\n return Debug.fail(\"Unrecognized helper\");\n }\n }\n function resolveHelpersModule(file, errorNode) {\n const links = getNodeLinks(file);\n if (!links.externalHelpersModule) {\n links.externalHelpersModule = resolveExternalModule(getImportHelpersImportSpecifier(file), externalHelpersModuleNameText, Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found, errorNode) || unknownSymbol;\n }\n return links.externalHelpersModule;\n }\n function checkGrammarModifiers(node) {\n var _a;\n const quickResult = reportObviousDecoratorErrors(node) || reportObviousModifierErrors(node);\n if (quickResult !== void 0) {\n return quickResult;\n }\n if (isParameter(node) && parameterIsThisKeyword(node)) {\n return grammarErrorOnFirstToken(node, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);\n }\n const blockScopeKind = isVariableStatement(node) ? node.declarationList.flags & 7 /* BlockScoped */ : 0 /* None */;\n let lastStatic, lastDeclare, lastAsync, lastOverride, firstDecorator;\n let flags = 0 /* None */;\n let sawExportBeforeDecorators = false;\n let hasLeadingDecorators = false;\n for (const modifier of node.modifiers) {\n if (isDecorator(modifier)) {\n if (!nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) {\n if (node.kind === 175 /* MethodDeclaration */ && !nodeIsPresent(node.body)) {\n return grammarErrorOnFirstToken(node, Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);\n } else {\n return grammarErrorOnFirstToken(node, Diagnostics.Decorators_are_not_valid_here);\n }\n } else if (legacyDecorators && (node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */)) {\n const accessors = getAllAccessorDeclarationsForDeclaration(node);\n if (hasDecorators(accessors.firstAccessor) && node === accessors.secondAccessor) {\n return grammarErrorOnFirstToken(node, Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);\n }\n }\n if (flags & ~(2080 /* ExportDefault */ | 32768 /* Decorator */)) {\n return grammarErrorOnNode(modifier, Diagnostics.Decorators_are_not_valid_here);\n }\n if (hasLeadingDecorators && flags & 98303 /* Modifier */) {\n Debug.assertIsDefined(firstDecorator);\n const sourceFile = getSourceFileOfNode(modifier);\n if (!hasParseDiagnostics(sourceFile)) {\n addRelatedInfo(\n error2(modifier, Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),\n createDiagnosticForNode(firstDecorator, Diagnostics.Decorator_used_before_export_here)\n );\n return true;\n }\n return false;\n }\n flags |= 32768 /* Decorator */;\n if (!(flags & 98303 /* Modifier */)) {\n hasLeadingDecorators = true;\n } else if (flags & 32 /* Export */) {\n sawExportBeforeDecorators = true;\n }\n firstDecorator ?? (firstDecorator = modifier);\n } else {\n if (modifier.kind !== 148 /* ReadonlyKeyword */) {\n if (node.kind === 172 /* PropertySignature */ || node.kind === 174 /* MethodSignature */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_member, tokenToString(modifier.kind));\n }\n if (node.kind === 182 /* IndexSignature */ && (modifier.kind !== 126 /* StaticKeyword */ || !isClassLike(node.parent))) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_index_signature, tokenToString(modifier.kind));\n }\n }\n if (modifier.kind !== 103 /* InKeyword */ && modifier.kind !== 147 /* OutKeyword */ && modifier.kind !== 87 /* ConstKeyword */) {\n if (node.kind === 169 /* TypeParameter */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_parameter, tokenToString(modifier.kind));\n }\n }\n switch (modifier.kind) {\n case 87 /* ConstKeyword */: {\n if (node.kind !== 267 /* EnumDeclaration */ && node.kind !== 169 /* TypeParameter */) {\n return grammarErrorOnNode(node, Diagnostics.A_class_member_cannot_have_the_0_keyword, tokenToString(87 /* ConstKeyword */));\n }\n const parent2 = isJSDocTemplateTag(node.parent) && getEffectiveJSDocHost(node.parent) || node.parent;\n if (node.kind === 169 /* TypeParameter */ && !(isFunctionLikeDeclaration(parent2) || isClassLike(parent2) || isFunctionTypeNode(parent2) || isConstructorTypeNode(parent2) || isCallSignatureDeclaration(parent2) || isConstructSignatureDeclaration(parent2) || isMethodSignature(parent2))) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, tokenToString(modifier.kind));\n }\n break;\n }\n case 164 /* OverrideKeyword */:\n if (flags & 16 /* Override */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"override\");\n } else if (flags & 128 /* Ambient */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"override\", \"declare\");\n } else if (flags & 8 /* Readonly */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"readonly\");\n } else if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"accessor\");\n } else if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"async\");\n }\n flags |= 16 /* Override */;\n lastOverride = modifier;\n break;\n case 125 /* PublicKeyword */:\n case 124 /* ProtectedKeyword */:\n case 123 /* PrivateKeyword */:\n const text = visibilityToString(modifierToFlag(modifier.kind));\n if (flags & 7 /* AccessibilityModifier */) {\n return grammarErrorOnNode(modifier, Diagnostics.Accessibility_modifier_already_seen);\n } else if (flags & 16 /* Override */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"override\");\n } else if (flags & 256 /* Static */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"static\");\n } else if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"accessor\");\n } else if (flags & 8 /* Readonly */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"readonly\");\n } else if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"async\");\n } else if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, text);\n } else if (flags & 64 /* Abstract */) {\n if (modifier.kind === 123 /* PrivateKeyword */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, text, \"abstract\");\n } else {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"abstract\");\n }\n } else if (isPrivateIdentifierClassElementDeclaration(node)) {\n return grammarErrorOnNode(modifier, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);\n }\n flags |= modifierToFlag(modifier.kind);\n break;\n case 126 /* StaticKeyword */:\n if (flags & 256 /* Static */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"static\");\n } else if (flags & 8 /* Readonly */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"readonly\");\n } else if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"async\");\n } else if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"accessor\");\n } else if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, \"static\");\n } else if (node.kind === 170 /* Parameter */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"static\");\n } else if (flags & 64 /* Abstract */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"static\", \"abstract\");\n } else if (flags & 16 /* Override */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"override\");\n }\n flags |= 256 /* Static */;\n lastStatic = modifier;\n break;\n case 129 /* AccessorKeyword */:\n if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"accessor\");\n } else if (flags & 8 /* Readonly */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"accessor\", \"readonly\");\n } else if (flags & 128 /* Ambient */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"accessor\", \"declare\");\n } else if (node.kind !== 173 /* PropertyDeclaration */) {\n return grammarErrorOnNode(modifier, Diagnostics.accessor_modifier_can_only_appear_on_a_property_declaration);\n }\n flags |= 512 /* Accessor */;\n break;\n case 148 /* ReadonlyKeyword */:\n if (flags & 8 /* Readonly */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"readonly\");\n } else if (node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 172 /* PropertySignature */ && node.kind !== 182 /* IndexSignature */ && node.kind !== 170 /* Parameter */) {\n return grammarErrorOnNode(modifier, Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);\n } else if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"readonly\", \"accessor\");\n }\n flags |= 8 /* Readonly */;\n break;\n case 95 /* ExportKeyword */:\n if (compilerOptions.verbatimModuleSyntax && !(node.flags & 33554432 /* Ambient */) && node.kind !== 266 /* TypeAliasDeclaration */ && node.kind !== 265 /* InterfaceDeclaration */ && // ModuleDeclaration needs to be checked that it is uninstantiated later\n node.kind !== 268 /* ModuleDeclaration */ && node.parent.kind === 308 /* SourceFile */ && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n return grammarErrorOnNode(modifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);\n }\n if (flags & 32 /* Export */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"export\");\n } else if (flags & 128 /* Ambient */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"declare\");\n } else if (flags & 64 /* Abstract */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"abstract\");\n } else if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"async\");\n } else if (isClassLike(node.parent)) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, \"export\");\n } else if (node.kind === 170 /* Parameter */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"export\");\n } else if (blockScopeKind === 4 /* Using */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"export\");\n } else if (blockScopeKind === 6 /* AwaitUsing */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"export\");\n }\n flags |= 32 /* Export */;\n break;\n case 90 /* DefaultKeyword */:\n const container = node.parent.kind === 308 /* SourceFile */ ? node.parent : node.parent.parent;\n if (container.kind === 268 /* ModuleDeclaration */ && !isAmbientModule(container)) {\n return grammarErrorOnNode(modifier, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);\n } else if (blockScopeKind === 4 /* Using */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"default\");\n } else if (blockScopeKind === 6 /* AwaitUsing */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"default\");\n } else if (!(flags & 32 /* Export */)) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"default\");\n } else if (sawExportBeforeDecorators) {\n return grammarErrorOnNode(firstDecorator, Diagnostics.Decorators_are_not_valid_here);\n }\n flags |= 2048 /* Default */;\n break;\n case 138 /* DeclareKeyword */:\n if (flags & 128 /* Ambient */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"declare\");\n } else if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"async\");\n } else if (flags & 16 /* Override */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"override\");\n } else if (isClassLike(node.parent) && !isPropertyDeclaration(node)) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, \"declare\");\n } else if (node.kind === 170 /* Parameter */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"declare\");\n } else if (blockScopeKind === 4 /* Using */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"declare\");\n } else if (blockScopeKind === 6 /* AwaitUsing */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"declare\");\n } else if (node.parent.flags & 33554432 /* Ambient */ && node.parent.kind === 269 /* ModuleBlock */) {\n return grammarErrorOnNode(modifier, Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);\n } else if (isPrivateIdentifierClassElementDeclaration(node)) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, \"declare\");\n } else if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"declare\", \"accessor\");\n }\n flags |= 128 /* Ambient */;\n lastDeclare = modifier;\n break;\n case 128 /* AbstractKeyword */:\n if (flags & 64 /* Abstract */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"abstract\");\n }\n if (node.kind !== 264 /* ClassDeclaration */ && node.kind !== 186 /* ConstructorType */) {\n if (node.kind !== 175 /* MethodDeclaration */ && node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 178 /* GetAccessor */ && node.kind !== 179 /* SetAccessor */) {\n return grammarErrorOnNode(modifier, Diagnostics.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);\n }\n if (!(node.parent.kind === 264 /* ClassDeclaration */ && hasSyntacticModifier(node.parent, 64 /* Abstract */))) {\n const message = node.kind === 173 /* PropertyDeclaration */ ? Diagnostics.Abstract_properties_can_only_appear_within_an_abstract_class : Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class;\n return grammarErrorOnNode(modifier, message);\n }\n if (flags & 256 /* Static */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"static\", \"abstract\");\n }\n if (flags & 2 /* Private */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"private\", \"abstract\");\n }\n if (flags & 1024 /* Async */ && lastAsync) {\n return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"async\", \"abstract\");\n }\n if (flags & 16 /* Override */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"abstract\", \"override\");\n }\n if (flags & 512 /* Accessor */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"abstract\", \"accessor\");\n }\n }\n if (isNamedDeclaration(node) && node.name.kind === 81 /* PrivateIdentifier */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, \"abstract\");\n }\n flags |= 64 /* Abstract */;\n break;\n case 134 /* AsyncKeyword */:\n if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"async\");\n } else if (flags & 128 /* Ambient */ || node.parent.flags & 33554432 /* Ambient */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"async\");\n } else if (node.kind === 170 /* Parameter */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"async\");\n }\n if (flags & 64 /* Abstract */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"async\", \"abstract\");\n }\n flags |= 1024 /* Async */;\n lastAsync = modifier;\n break;\n case 103 /* InKeyword */:\n case 147 /* OutKeyword */: {\n const inOutFlag = modifier.kind === 103 /* InKeyword */ ? 8192 /* In */ : 16384 /* Out */;\n const inOutText = modifier.kind === 103 /* InKeyword */ ? \"in\" : \"out\";\n const parent2 = isJSDocTemplateTag(node.parent) && (getEffectiveJSDocHost(node.parent) || find((_a = getJSDocRoot(node.parent)) == null ? void 0 : _a.tags, isJSDocTypedefTag)) || node.parent;\n if (node.kind !== 169 /* TypeParameter */ || parent2 && !(isInterfaceDeclaration(parent2) || isClassLike(parent2) || isTypeAliasDeclaration(parent2) || isJSDocTypedefTag(parent2))) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText);\n }\n if (flags & inOutFlag) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, inOutText);\n }\n if (inOutFlag & 8192 /* In */ && flags & 16384 /* Out */) {\n return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"in\", \"out\");\n }\n flags |= inOutFlag;\n break;\n }\n }\n }\n }\n if (node.kind === 177 /* Constructor */) {\n if (flags & 256 /* Static */) {\n return grammarErrorOnNode(lastStatic, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"static\");\n }\n if (flags & 16 /* Override */) {\n return grammarErrorOnNode(lastOverride, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"override\");\n }\n if (flags & 1024 /* Async */) {\n return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"async\");\n }\n return false;\n } else if ((node.kind === 273 /* ImportDeclaration */ || node.kind === 272 /* ImportEqualsDeclaration */) && flags & 128 /* Ambient */) {\n return grammarErrorOnNode(lastDeclare, Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, \"declare\");\n } else if (node.kind === 170 /* Parameter */ && flags & 31 /* ParameterPropertyModifier */ && isBindingPattern(node.name)) {\n return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern);\n } else if (node.kind === 170 /* Parameter */ && flags & 31 /* ParameterPropertyModifier */ && node.dotDotDotToken) {\n return grammarErrorOnNode(node, Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter);\n }\n if (flags & 1024 /* Async */) {\n return checkGrammarAsyncModifier(node, lastAsync);\n }\n return false;\n }\n function reportObviousModifierErrors(node) {\n if (!node.modifiers) return false;\n const modifier = findFirstIllegalModifier(node);\n return modifier && grammarErrorOnFirstToken(modifier, Diagnostics.Modifiers_cannot_appear_here);\n }\n function findFirstModifierExcept(node, allowedModifier) {\n const modifier = find(node.modifiers, isModifier);\n return modifier && modifier.kind !== allowedModifier ? modifier : void 0;\n }\n function findFirstIllegalModifier(node) {\n switch (node.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 177 /* Constructor */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 182 /* IndexSignature */:\n case 268 /* ModuleDeclaration */:\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 279 /* ExportDeclaration */:\n case 278 /* ExportAssignment */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 170 /* Parameter */:\n case 169 /* TypeParameter */:\n return void 0;\n case 176 /* ClassStaticBlockDeclaration */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 271 /* NamespaceExportDeclaration */:\n case 283 /* MissingDeclaration */:\n return find(node.modifiers, isModifier);\n default:\n if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n return void 0;\n }\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n return findFirstModifierExcept(node, 134 /* AsyncKeyword */);\n case 264 /* ClassDeclaration */:\n case 186 /* ConstructorType */:\n return findFirstModifierExcept(node, 128 /* AbstractKeyword */);\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return find(node.modifiers, isModifier);\n case 244 /* VariableStatement */:\n return node.declarationList.flags & 4 /* Using */ ? findFirstModifierExcept(node, 135 /* AwaitKeyword */) : find(node.modifiers, isModifier);\n case 267 /* EnumDeclaration */:\n return findFirstModifierExcept(node, 87 /* ConstKeyword */);\n default:\n Debug.assertNever(node);\n }\n }\n }\n function reportObviousDecoratorErrors(node) {\n const decorator = findFirstIllegalDecorator(node);\n return decorator && grammarErrorOnFirstToken(decorator, Diagnostics.Decorators_are_not_valid_here);\n }\n function findFirstIllegalDecorator(node) {\n return canHaveIllegalDecorators(node) ? find(node.modifiers, isDecorator) : void 0;\n }\n function checkGrammarAsyncModifier(node, asyncModifier) {\n switch (node.kind) {\n case 175 /* MethodDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return false;\n }\n return grammarErrorOnNode(asyncModifier, Diagnostics._0_modifier_cannot_be_used_here, \"async\");\n }\n function checkGrammarForDisallowedTrailingComma(list, diag2 = Diagnostics.Trailing_comma_not_allowed) {\n if (list && list.hasTrailingComma) {\n return grammarErrorAtPos(list[0], list.end - \",\".length, \",\".length, diag2);\n }\n return false;\n }\n function checkGrammarTypeParameterList(typeParameters, file) {\n if (typeParameters && typeParameters.length === 0) {\n const start = typeParameters.pos - \"<\".length;\n const end = skipTrivia(file.text, typeParameters.end) + \">\".length;\n return grammarErrorAtPos(file, start, end - start, Diagnostics.Type_parameter_list_cannot_be_empty);\n }\n return false;\n }\n function checkGrammarParameterList(parameters) {\n let seenOptionalParameter = false;\n const parameterCount = parameters.length;\n for (let i = 0; i < parameterCount; i++) {\n const parameter = parameters[i];\n if (parameter.dotDotDotToken) {\n if (i !== parameterCount - 1) {\n return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n }\n if (!(parameter.flags & 33554432 /* Ambient */)) {\n checkGrammarForDisallowedTrailingComma(parameters, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n }\n if (parameter.questionToken) {\n return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_rest_parameter_cannot_be_optional);\n }\n if (parameter.initializer) {\n return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_cannot_have_an_initializer);\n }\n } else if (hasEffectiveQuestionToken(parameter)) {\n seenOptionalParameter = true;\n if (parameter.questionToken && parameter.initializer) {\n return grammarErrorOnNode(parameter.name, Diagnostics.Parameter_cannot_have_question_mark_and_initializer);\n }\n } else if (seenOptionalParameter && !parameter.initializer) {\n return grammarErrorOnNode(parameter.name, Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter);\n }\n }\n }\n function getNonSimpleParameters(parameters) {\n return filter(parameters, (parameter) => !!parameter.initializer || isBindingPattern(parameter.name) || isRestParameter(parameter));\n }\n function checkGrammarForUseStrictSimpleParameterList(node) {\n if (languageVersion >= 3 /* ES2016 */) {\n const useStrictDirective = node.body && isBlock(node.body) && findUseStrictPrologue(node.body.statements);\n if (useStrictDirective) {\n const nonSimpleParameters = getNonSimpleParameters(node.parameters);\n if (length(nonSimpleParameters)) {\n forEach(nonSimpleParameters, (parameter) => {\n addRelatedInfo(\n error2(parameter, Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),\n createDiagnosticForNode(useStrictDirective, Diagnostics.use_strict_directive_used_here)\n );\n });\n const diagnostics2 = nonSimpleParameters.map((parameter, index) => index === 0 ? createDiagnosticForNode(parameter, Diagnostics.Non_simple_parameter_declared_here) : createDiagnosticForNode(parameter, Diagnostics.and_here));\n addRelatedInfo(error2(useStrictDirective, Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list), ...diagnostics2);\n return true;\n }\n }\n }\n return false;\n }\n function checkGrammarFunctionLikeDeclaration(node) {\n const file = getSourceFileOfNode(node);\n return checkGrammarModifiers(node) || checkGrammarTypeParameterList(node.typeParameters, file) || checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file) || isFunctionLikeDeclaration(node) && checkGrammarForUseStrictSimpleParameterList(node);\n }\n function checkGrammarClassLikeDeclaration(node) {\n const file = getSourceFileOfNode(node);\n return checkGrammarClassDeclarationHeritageClauses(node) || checkGrammarTypeParameterList(node.typeParameters, file);\n }\n function checkGrammarArrowFunction(node, file) {\n if (!isArrowFunction(node)) {\n return false;\n }\n if (node.typeParameters && !(length(node.typeParameters) > 1 || node.typeParameters.hasTrailingComma || node.typeParameters[0].constraint)) {\n if (file && fileExtensionIsOneOf(file.fileName, [\".mts\" /* Mts */, \".cts\" /* Cts */])) {\n grammarErrorOnNode(node.typeParameters[0], Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);\n }\n }\n const { equalsGreaterThanToken } = node;\n const startLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.pos).line;\n const endLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.end).line;\n return startLine !== endLine && grammarErrorOnNode(equalsGreaterThanToken, Diagnostics.Line_terminator_not_permitted_before_arrow);\n }\n function checkGrammarIndexSignatureParameters(node) {\n const parameter = node.parameters[0];\n if (node.parameters.length !== 1) {\n if (parameter) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_must_have_exactly_one_parameter);\n } else {\n return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_exactly_one_parameter);\n }\n }\n checkGrammarForDisallowedTrailingComma(node.parameters, Diagnostics.An_index_signature_cannot_have_a_trailing_comma);\n if (parameter.dotDotDotToken) {\n return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.An_index_signature_cannot_have_a_rest_parameter);\n }\n if (hasEffectiveModifiers(parameter)) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);\n }\n if (parameter.questionToken) {\n return grammarErrorOnNode(parameter.questionToken, Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);\n }\n if (parameter.initializer) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);\n }\n if (!parameter.type) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);\n }\n const type = getTypeFromTypeNode(parameter.type);\n if (someType(type, (t) => !!(t.flags & 8576 /* StringOrNumberLiteralOrUnique */)) || isGenericType(type)) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead);\n }\n if (!everyType(type, isValidIndexKeyType)) {\n return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type);\n }\n if (!node.type) {\n return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_a_type_annotation);\n }\n return false;\n }\n function checkGrammarIndexSignature(node) {\n return checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node);\n }\n function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) {\n if (typeArguments && typeArguments.length === 0) {\n const sourceFile = getSourceFileOfNode(node);\n const start = typeArguments.pos - \"<\".length;\n const end = skipTrivia(sourceFile.text, typeArguments.end) + \">\".length;\n return grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Type_argument_list_cannot_be_empty);\n }\n return false;\n }\n function checkGrammarTypeArguments(node, typeArguments) {\n return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments);\n }\n function checkGrammarTaggedTemplateChain(node) {\n if (node.questionDotToken || node.flags & 64 /* OptionalChain */) {\n return grammarErrorOnNode(node.template, Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain);\n }\n return false;\n }\n function checkGrammarHeritageClause(node) {\n const types = node.types;\n if (checkGrammarForDisallowedTrailingComma(types)) {\n return true;\n }\n if (types && types.length === 0) {\n const listType = tokenToString(node.token);\n return grammarErrorAtPos(node, types.pos, 0, Diagnostics._0_list_cannot_be_empty, listType);\n }\n return some(types, checkGrammarExpressionWithTypeArguments);\n }\n function checkGrammarExpressionWithTypeArguments(node) {\n if (isExpressionWithTypeArguments(node) && isImportKeyword(node.expression) && node.typeArguments) {\n return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);\n }\n return checkGrammarTypeArguments(node, node.typeArguments);\n }\n function checkGrammarClassDeclarationHeritageClauses(node) {\n let seenExtendsClause = false;\n let seenImplementsClause = false;\n if (!checkGrammarModifiers(node) && node.heritageClauses) {\n for (const heritageClause of node.heritageClauses) {\n if (heritageClause.token === 96 /* ExtendsKeyword */) {\n if (seenExtendsClause) {\n return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen);\n }\n if (seenImplementsClause) {\n return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_must_precede_implements_clause);\n }\n if (heritageClause.types.length > 1) {\n return grammarErrorOnFirstToken(heritageClause.types[1], Diagnostics.Classes_can_only_extend_a_single_class);\n }\n seenExtendsClause = true;\n } else {\n Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */);\n if (seenImplementsClause) {\n return grammarErrorOnFirstToken(heritageClause, Diagnostics.implements_clause_already_seen);\n }\n seenImplementsClause = true;\n }\n checkGrammarHeritageClause(heritageClause);\n }\n }\n }\n function checkGrammarInterfaceDeclaration(node) {\n let seenExtendsClause = false;\n if (node.heritageClauses) {\n for (const heritageClause of node.heritageClauses) {\n if (heritageClause.token === 96 /* ExtendsKeyword */) {\n if (seenExtendsClause) {\n return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen);\n }\n seenExtendsClause = true;\n } else {\n Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */);\n return grammarErrorOnFirstToken(heritageClause, Diagnostics.Interface_declaration_cannot_have_implements_clause);\n }\n checkGrammarHeritageClause(heritageClause);\n }\n }\n return false;\n }\n function checkGrammarComputedPropertyName(node) {\n if (node.kind !== 168 /* ComputedPropertyName */) {\n return false;\n }\n const computedPropertyName = node;\n if (computedPropertyName.expression.kind === 227 /* BinaryExpression */ && computedPropertyName.expression.operatorToken.kind === 28 /* CommaToken */) {\n return grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);\n }\n return false;\n }\n function checkGrammarForGenerator(node) {\n if (node.asteriskToken) {\n Debug.assert(\n node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */ || node.kind === 175 /* MethodDeclaration */\n );\n if (node.flags & 33554432 /* Ambient */) {\n return grammarErrorOnNode(node.asteriskToken, Diagnostics.Generators_are_not_allowed_in_an_ambient_context);\n }\n if (!node.body) {\n return grammarErrorOnNode(node.asteriskToken, Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator);\n }\n }\n }\n function checkGrammarForInvalidQuestionMark(questionToken, message) {\n return !!questionToken && grammarErrorOnNode(questionToken, message);\n }\n function checkGrammarForInvalidExclamationToken(exclamationToken, message) {\n return !!exclamationToken && grammarErrorOnNode(exclamationToken, message);\n }\n function checkGrammarObjectLiteralExpression(node, inDestructuring) {\n const seen = /* @__PURE__ */ new Map();\n for (const prop of node.properties) {\n if (prop.kind === 306 /* SpreadAssignment */) {\n if (inDestructuring) {\n const expression = skipParentheses(prop.expression);\n if (isArrayLiteralExpression(expression) || isObjectLiteralExpression(expression)) {\n return grammarErrorOnNode(prop.expression, Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);\n }\n }\n continue;\n }\n const name = prop.name;\n if (name.kind === 168 /* ComputedPropertyName */) {\n checkGrammarComputedPropertyName(name);\n }\n if (prop.kind === 305 /* ShorthandPropertyAssignment */ && !inDestructuring && prop.objectAssignmentInitializer) {\n grammarErrorOnNode(prop.equalsToken, Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern);\n }\n if (name.kind === 81 /* PrivateIdentifier */) {\n grammarErrorOnNode(name, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n }\n if (canHaveModifiers(prop) && prop.modifiers) {\n for (const mod of prop.modifiers) {\n if (isModifier(mod) && (mod.kind !== 134 /* AsyncKeyword */ || prop.kind !== 175 /* MethodDeclaration */)) {\n grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod));\n }\n }\n } else if (canHaveIllegalModifiers(prop) && prop.modifiers) {\n for (const mod of prop.modifiers) {\n if (isModifier(mod)) {\n grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod));\n }\n }\n }\n let currentKind;\n switch (prop.kind) {\n case 305 /* ShorthandPropertyAssignment */:\n case 304 /* PropertyAssignment */:\n checkGrammarForInvalidExclamationToken(prop.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context);\n checkGrammarForInvalidQuestionMark(prop.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional);\n if (name.kind === 9 /* NumericLiteral */) {\n checkGrammarNumericLiteral(name);\n }\n if (name.kind === 10 /* BigIntLiteral */) {\n addErrorOrSuggestion(\n /*isError*/\n true,\n createDiagnosticForNode(name, Diagnostics.A_bigint_literal_cannot_be_used_as_a_property_name)\n );\n }\n currentKind = 4 /* PropertyAssignment */;\n break;\n case 175 /* MethodDeclaration */:\n currentKind = 8 /* Method */;\n break;\n case 178 /* GetAccessor */:\n currentKind = 1 /* GetAccessor */;\n break;\n case 179 /* SetAccessor */:\n currentKind = 2 /* SetAccessor */;\n break;\n default:\n Debug.assertNever(prop, \"Unexpected syntax kind:\" + prop.kind);\n }\n if (!inDestructuring) {\n const effectiveName = getEffectivePropertyNameForPropertyNameNode(name);\n if (effectiveName === void 0) {\n continue;\n }\n const existingKind = seen.get(effectiveName);\n if (!existingKind) {\n seen.set(effectiveName, currentKind);\n } else {\n if (currentKind & 8 /* Method */ && existingKind & 8 /* Method */) {\n grammarErrorOnNode(name, Diagnostics.Duplicate_identifier_0, getTextOfNode(name));\n } else if (currentKind & 4 /* PropertyAssignment */ && existingKind & 4 /* PropertyAssignment */) {\n grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name, getTextOfNode(name));\n } else if (currentKind & 3 /* GetOrSetAccessor */ && existingKind & 3 /* GetOrSetAccessor */) {\n if (existingKind !== 3 /* GetOrSetAccessor */ && currentKind !== existingKind) {\n seen.set(effectiveName, currentKind | existingKind);\n } else {\n return grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);\n }\n } else {\n return grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);\n }\n }\n }\n }\n }\n function checkGrammarJsxElement(node) {\n checkGrammarJsxName(node.tagName);\n checkGrammarTypeArguments(node, node.typeArguments);\n const seen = /* @__PURE__ */ new Map();\n for (const attr of node.attributes.properties) {\n if (attr.kind === 294 /* JsxSpreadAttribute */) {\n continue;\n }\n const { name, initializer } = attr;\n const escapedText = getEscapedTextOfJsxAttributeName(name);\n if (!seen.get(escapedText)) {\n seen.set(escapedText, true);\n } else {\n return grammarErrorOnNode(name, Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);\n }\n if (initializer && initializer.kind === 295 /* JsxExpression */ && !initializer.expression) {\n return grammarErrorOnNode(initializer, Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression);\n }\n }\n }\n function checkGrammarJsxName(node) {\n if (isPropertyAccessExpression(node) && isJsxNamespacedName(node.expression)) {\n return grammarErrorOnNode(node.expression, Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names);\n }\n if (isJsxNamespacedName(node) && getJSXTransformEnabled(compilerOptions) && !isIntrinsicJsxName(node.namespace.escapedText)) {\n return grammarErrorOnNode(node, Diagnostics.React_components_cannot_include_JSX_namespace_names);\n }\n }\n function checkGrammarJsxExpression(node) {\n if (node.expression && isCommaSequence(node.expression)) {\n return grammarErrorOnNode(node.expression, Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array);\n }\n }\n function checkGrammarForInOrForOfStatement(forInOrOfStatement) {\n if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {\n return true;\n }\n if (forInOrOfStatement.kind === 251 /* ForOfStatement */ && forInOrOfStatement.awaitModifier) {\n if (!(forInOrOfStatement.flags & 65536 /* AwaitContext */)) {\n const sourceFile = getSourceFileOfNode(forInOrOfStatement);\n if (isInTopLevelContext(forInOrOfStatement)) {\n if (!hasParseDiagnostics(sourceFile)) {\n if (!isEffectiveExternalModule(sourceFile, compilerOptions)) {\n diagnostics.add(createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module));\n }\n switch (moduleKind) {\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) {\n diagnostics.add(\n createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)\n );\n break;\n }\n // fallthrough\n case 7 /* ES2022 */:\n case 99 /* ESNext */:\n case 200 /* Preserve */:\n case 4 /* System */:\n if (languageVersion >= 4 /* ES2017 */) {\n break;\n }\n // fallthrough\n default:\n diagnostics.add(\n createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher)\n );\n break;\n }\n }\n } else {\n if (!hasParseDiagnostics(sourceFile)) {\n const diagnostic = createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);\n const func = getContainingFunction(forInOrOfStatement);\n if (func && func.kind !== 177 /* Constructor */) {\n Debug.assert((getFunctionFlags(func) & 2 /* Async */) === 0, \"Enclosing function should never be an async function.\");\n const relatedInfo = createDiagnosticForNode(func, Diagnostics.Did_you_mean_to_mark_this_function_as_async);\n addRelatedInfo(diagnostic, relatedInfo);\n }\n diagnostics.add(diagnostic);\n return true;\n }\n }\n }\n }\n if (isForOfStatement(forInOrOfStatement) && !(forInOrOfStatement.flags & 65536 /* AwaitContext */) && isIdentifier(forInOrOfStatement.initializer) && forInOrOfStatement.initializer.escapedText === \"async\") {\n grammarErrorOnNode(forInOrOfStatement.initializer, Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async);\n return false;\n }\n if (forInOrOfStatement.initializer.kind === 262 /* VariableDeclarationList */) {\n const variableList = forInOrOfStatement.initializer;\n if (!checkGrammarVariableDeclarationList(variableList)) {\n const declarations = variableList.declarations;\n if (!declarations.length) {\n return false;\n }\n if (declarations.length > 1) {\n const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;\n return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);\n }\n const firstDeclaration = declarations[0];\n if (firstDeclaration.initializer) {\n const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;\n return grammarErrorOnNode(firstDeclaration.name, diagnostic);\n }\n if (firstDeclaration.type) {\n const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;\n return grammarErrorOnNode(firstDeclaration, diagnostic);\n }\n }\n }\n return false;\n }\n function checkGrammarAccessor(accessor) {\n if (!(accessor.flags & 33554432 /* Ambient */) && accessor.parent.kind !== 188 /* TypeLiteral */ && accessor.parent.kind !== 265 /* InterfaceDeclaration */) {\n if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(accessor.name)) {\n return grammarErrorOnNode(accessor.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n }\n if (accessor.body === void 0 && !hasSyntacticModifier(accessor, 64 /* Abstract */)) {\n return grammarErrorAtPos(accessor, accessor.end - 1, \";\".length, Diagnostics._0_expected, \"{\");\n }\n }\n if (accessor.body) {\n if (hasSyntacticModifier(accessor, 64 /* Abstract */)) {\n return grammarErrorOnNode(accessor, Diagnostics.An_abstract_accessor_cannot_have_an_implementation);\n }\n if (accessor.parent.kind === 188 /* TypeLiteral */ || accessor.parent.kind === 265 /* InterfaceDeclaration */) {\n return grammarErrorOnNode(accessor.body, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);\n }\n }\n if (accessor.typeParameters) {\n return grammarErrorOnNode(accessor.name, Diagnostics.An_accessor_cannot_have_type_parameters);\n }\n if (!doesAccessorHaveCorrectParameterCount(accessor)) {\n return grammarErrorOnNode(\n accessor.name,\n accessor.kind === 178 /* GetAccessor */ ? Diagnostics.A_get_accessor_cannot_have_parameters : Diagnostics.A_set_accessor_must_have_exactly_one_parameter\n );\n }\n if (accessor.kind === 179 /* SetAccessor */) {\n if (accessor.type) {\n return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);\n }\n const parameter = Debug.checkDefined(getSetAccessorValueParameter(accessor), \"Return value does not match parameter count assertion.\");\n if (parameter.dotDotDotToken) {\n return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_set_accessor_cannot_have_rest_parameter);\n }\n if (parameter.questionToken) {\n return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);\n }\n if (parameter.initializer) {\n return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer);\n }\n }\n return false;\n }\n function doesAccessorHaveCorrectParameterCount(accessor) {\n return getAccessorThisParameter(accessor) || accessor.parameters.length === (accessor.kind === 178 /* GetAccessor */ ? 0 : 1);\n }\n function getAccessorThisParameter(accessor) {\n if (accessor.parameters.length === (accessor.kind === 178 /* GetAccessor */ ? 1 : 2)) {\n return getThisParameter(accessor);\n }\n }\n function checkGrammarTypeOperatorNode(node) {\n if (node.operator === 158 /* UniqueKeyword */) {\n if (node.type.kind !== 155 /* SymbolKeyword */) {\n return grammarErrorOnNode(node.type, Diagnostics._0_expected, tokenToString(155 /* SymbolKeyword */));\n }\n let parent2 = walkUpParenthesizedTypes(node.parent);\n if (isInJSFile(parent2) && isJSDocTypeExpression(parent2)) {\n const host2 = getJSDocHost(parent2);\n if (host2) {\n parent2 = getSingleVariableOfVariableStatement(host2) || host2;\n }\n }\n switch (parent2.kind) {\n case 261 /* VariableDeclaration */:\n const decl = parent2;\n if (decl.name.kind !== 80 /* Identifier */) {\n return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);\n }\n if (!isVariableDeclarationInVariableStatement(decl)) {\n return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);\n }\n if (!(decl.parent.flags & 2 /* Const */)) {\n return grammarErrorOnNode(parent2.name, Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);\n }\n break;\n case 173 /* PropertyDeclaration */:\n if (!isStatic(parent2) || !hasEffectiveReadonlyModifier(parent2)) {\n return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);\n }\n break;\n case 172 /* PropertySignature */:\n if (!hasSyntacticModifier(parent2, 8 /* Readonly */)) {\n return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);\n }\n break;\n default:\n return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_not_allowed_here);\n }\n } else if (node.operator === 148 /* ReadonlyKeyword */) {\n if (node.type.kind !== 189 /* ArrayType */ && node.type.kind !== 190 /* TupleType */) {\n return grammarErrorOnFirstToken(node, Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types, tokenToString(155 /* SymbolKeyword */));\n }\n }\n }\n function checkGrammarForInvalidDynamicName(node, message) {\n if (isNonBindableDynamicName(node) && !isEntityNameExpression(isElementAccessExpression(node) ? skipParentheses(node.argumentExpression) : node.expression)) {\n return grammarErrorOnNode(node, message);\n }\n }\n function checkGrammarMethod(node) {\n if (checkGrammarFunctionLikeDeclaration(node)) {\n return true;\n }\n if (node.kind === 175 /* MethodDeclaration */) {\n if (node.parent.kind === 211 /* ObjectLiteralExpression */) {\n if (node.modifiers && !(node.modifiers.length === 1 && first(node.modifiers).kind === 134 /* AsyncKeyword */)) {\n return grammarErrorOnFirstToken(node, Diagnostics.Modifiers_cannot_appear_here);\n } else if (checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional)) {\n return true;\n } else if (checkGrammarForInvalidExclamationToken(node.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context)) {\n return true;\n } else if (node.body === void 0) {\n return grammarErrorAtPos(node, node.end - 1, \";\".length, Diagnostics._0_expected, \"{\");\n }\n }\n if (checkGrammarForGenerator(node)) {\n return true;\n }\n }\n if (isClassLike(node.parent)) {\n if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) {\n return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n }\n if (node.flags & 33554432 /* Ambient */) {\n return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n } else if (node.kind === 175 /* MethodDeclaration */ && !node.body) {\n return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n }\n } else if (node.parent.kind === 265 /* InterfaceDeclaration */) {\n return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n } else if (node.parent.kind === 188 /* TypeLiteral */) {\n return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n }\n }\n function checkGrammarBreakOrContinueStatement(node) {\n let current = node;\n while (current) {\n if (isFunctionLikeOrClassStaticBlockDeclaration(current)) {\n return grammarErrorOnNode(node, Diagnostics.Jump_target_cannot_cross_function_boundary);\n }\n switch (current.kind) {\n case 257 /* LabeledStatement */:\n if (node.label && current.label.escapedText === node.label.escapedText) {\n const isMisplacedContinueLabel = node.kind === 252 /* ContinueStatement */ && !isIterationStatement(\n current.statement,\n /*lookInLabeledStatements*/\n true\n );\n if (isMisplacedContinueLabel) {\n return grammarErrorOnNode(node, Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);\n }\n return false;\n }\n break;\n case 256 /* SwitchStatement */:\n if (node.kind === 253 /* BreakStatement */ && !node.label) {\n return false;\n }\n break;\n default:\n if (isIterationStatement(\n current,\n /*lookInLabeledStatements*/\n false\n ) && !node.label) {\n return false;\n }\n break;\n }\n current = current.parent;\n }\n if (node.label) {\n const message = node.kind === 253 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;\n return grammarErrorOnNode(node, message);\n } else {\n const message = node.kind === 253 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;\n return grammarErrorOnNode(node, message);\n }\n }\n function checkGrammarBindingElement(node) {\n if (node.dotDotDotToken) {\n const elements = node.parent.elements;\n if (node !== last(elements)) {\n return grammarErrorOnNode(node, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n }\n checkGrammarForDisallowedTrailingComma(elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n if (node.propertyName) {\n return grammarErrorOnNode(node.name, Diagnostics.A_rest_element_cannot_have_a_property_name);\n }\n }\n if (node.dotDotDotToken && node.initializer) {\n return grammarErrorAtPos(node, node.initializer.pos - 1, 1, Diagnostics.A_rest_element_cannot_have_an_initializer);\n }\n }\n function isStringOrNumberLiteralExpression(expr) {\n return isStringOrNumericLiteralLike(expr) || expr.kind === 225 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 9 /* NumericLiteral */;\n }\n function isBigIntLiteralExpression(expr) {\n return expr.kind === 10 /* BigIntLiteral */ || expr.kind === 225 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 10 /* BigIntLiteral */;\n }\n function isSimpleLiteralEnumReference(expr) {\n if ((isPropertyAccessExpression(expr) || isElementAccessExpression(expr) && isStringOrNumberLiteralExpression(expr.argumentExpression)) && isEntityNameExpression(expr.expression)) {\n return !!(checkExpressionCached(expr).flags & 1056 /* EnumLike */);\n }\n }\n function checkAmbientInitializer(node) {\n const initializer = node.initializer;\n if (initializer) {\n const isInvalidInitializer = !(isStringOrNumberLiteralExpression(initializer) || isSimpleLiteralEnumReference(initializer) || initializer.kind === 112 /* TrueKeyword */ || initializer.kind === 97 /* FalseKeyword */ || isBigIntLiteralExpression(initializer));\n const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node);\n if (isConstOrReadonly && !node.type) {\n if (isInvalidInitializer) {\n return grammarErrorOnNode(initializer, Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);\n }\n } else {\n return grammarErrorOnNode(initializer, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);\n }\n }\n }\n function checkGrammarVariableDeclaration(node) {\n const nodeFlags = getCombinedNodeFlagsCached(node);\n const blockScopeKind = nodeFlags & 7 /* BlockScoped */;\n if (isBindingPattern(node.name)) {\n switch (blockScopeKind) {\n case 6 /* AwaitUsing */:\n return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, \"await using\");\n case 4 /* Using */:\n return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, \"using\");\n }\n }\n if (node.parent.parent.kind !== 250 /* ForInStatement */ && node.parent.parent.kind !== 251 /* ForOfStatement */) {\n if (nodeFlags & 33554432 /* Ambient */) {\n checkAmbientInitializer(node);\n } else if (!node.initializer) {\n if (isBindingPattern(node.name) && !isBindingPattern(node.parent)) {\n return grammarErrorOnNode(node, Diagnostics.A_destructuring_declaration_must_have_an_initializer);\n }\n switch (blockScopeKind) {\n case 6 /* AwaitUsing */:\n return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"await using\");\n case 4 /* Using */:\n return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"using\");\n case 2 /* Const */:\n return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"const\");\n }\n }\n }\n if (node.exclamationToken && (node.parent.parent.kind !== 244 /* VariableStatement */ || !node.type || node.initializer || nodeFlags & 33554432 /* Ambient */)) {\n const message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context;\n return grammarErrorOnNode(node.exclamationToken, message);\n }\n if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && !(node.parent.parent.flags & 33554432 /* Ambient */) && hasSyntacticModifier(node.parent.parent, 32 /* Export */)) {\n checkESModuleMarker(node.name);\n }\n return !!blockScopeKind && checkGrammarNameInLetOrConstDeclarations(node.name);\n }\n function checkESModuleMarker(name) {\n if (name.kind === 80 /* Identifier */) {\n if (idText(name) === \"__esModule\") {\n return grammarErrorOnNodeSkippedOn(\"noEmit\", name, Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules);\n }\n } else {\n const elements = name.elements;\n for (const element of elements) {\n if (!isOmittedExpression(element)) {\n return checkESModuleMarker(element.name);\n }\n }\n }\n return false;\n }\n function checkGrammarNameInLetOrConstDeclarations(name) {\n if (name.kind === 80 /* Identifier */) {\n if (name.escapedText === \"let\") {\n return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations);\n }\n } else {\n const elements = name.elements;\n for (const element of elements) {\n if (!isOmittedExpression(element)) {\n checkGrammarNameInLetOrConstDeclarations(element.name);\n }\n }\n }\n return false;\n }\n function checkGrammarVariableDeclarationList(declarationList) {\n const declarations = declarationList.declarations;\n if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) {\n return true;\n }\n if (!declarationList.declarations.length) {\n return grammarErrorAtPos(declarationList, declarations.pos, declarations.end - declarations.pos, Diagnostics.Variable_declaration_list_cannot_be_empty);\n }\n const blockScopeFlags = declarationList.flags & 7 /* BlockScoped */;\n if (blockScopeFlags === 4 /* Using */ || blockScopeFlags === 6 /* AwaitUsing */) {\n if (isForInStatement(declarationList.parent)) {\n return grammarErrorOnNode(\n declarationList,\n blockScopeFlags === 4 /* Using */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration : Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration\n );\n }\n if (declarationList.flags & 33554432 /* Ambient */) {\n return grammarErrorOnNode(\n declarationList,\n blockScopeFlags === 4 /* Using */ ? Diagnostics.using_declarations_are_not_allowed_in_ambient_contexts : Diagnostics.await_using_declarations_are_not_allowed_in_ambient_contexts\n );\n }\n if (blockScopeFlags === 6 /* AwaitUsing */) {\n return checkAwaitGrammar(declarationList);\n }\n }\n return false;\n }\n function allowBlockDeclarations(parent2) {\n switch (parent2.kind) {\n case 246 /* IfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 255 /* WithStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n return false;\n case 257 /* LabeledStatement */:\n return allowBlockDeclarations(parent2.parent);\n }\n return true;\n }\n function checkGrammarForDisallowedBlockScopedVariableStatement(node) {\n if (!allowBlockDeclarations(node.parent)) {\n const blockScopeKind = getCombinedNodeFlagsCached(node.declarationList) & 7 /* BlockScoped */;\n if (blockScopeKind) {\n const keyword = blockScopeKind === 1 /* Let */ ? \"let\" : blockScopeKind === 2 /* Const */ ? \"const\" : blockScopeKind === 4 /* Using */ ? \"using\" : blockScopeKind === 6 /* AwaitUsing */ ? \"await using\" : Debug.fail(\"Unknown BlockScope flag\");\n error2(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, keyword);\n }\n }\n }\n function checkGrammarMetaProperty(node) {\n const escapedText = node.name.escapedText;\n switch (node.keywordToken) {\n case 105 /* NewKeyword */:\n if (escapedText !== \"target\") {\n return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), \"target\");\n }\n break;\n case 102 /* ImportKeyword */:\n if (escapedText !== \"meta\") {\n const isCallee = isCallExpression(node.parent) && node.parent.expression === node;\n if (escapedText === \"defer\") {\n if (!isCallee) {\n return grammarErrorAtPos(node, node.end, 0, Diagnostics._0_expected, \"(\");\n }\n } else {\n if (isCallee) {\n return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer, unescapeLeadingUnderscores(node.name.escapedText));\n }\n return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), \"meta\");\n }\n }\n break;\n }\n }\n function hasParseDiagnostics(sourceFile) {\n return sourceFile.parseDiagnostics.length > 0;\n }\n function grammarErrorOnFirstToken(node, message, ...args) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message, ...args));\n return true;\n }\n return false;\n }\n function grammarErrorAtPos(nodeForSourceFile, start, length2, message, ...args) {\n const sourceFile = getSourceFileOfNode(nodeForSourceFile);\n if (!hasParseDiagnostics(sourceFile)) {\n diagnostics.add(createFileDiagnostic(sourceFile, start, length2, message, ...args));\n return true;\n }\n return false;\n }\n function grammarErrorOnNodeSkippedOn(key, node, message, ...args) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n errorSkippedOn(key, node, message, ...args);\n return true;\n }\n return false;\n }\n function grammarErrorOnNode(node, message, ...args) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n error2(node, message, ...args);\n return true;\n }\n return false;\n }\n function checkGrammarConstructorTypeParameters(node) {\n const jsdocTypeParameters = isInJSFile(node) ? getJSDocTypeParameterDeclarations(node) : void 0;\n const range = node.typeParameters || jsdocTypeParameters && firstOrUndefined(jsdocTypeParameters);\n if (range) {\n const pos = range.pos === range.end ? range.pos : skipTrivia(getSourceFileOfNode(node).text, range.pos);\n return grammarErrorAtPos(node, pos, range.end - pos, Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration);\n }\n }\n function checkGrammarConstructorTypeAnnotation(node) {\n const type = node.type || getEffectiveReturnTypeNode(node);\n if (type) {\n return grammarErrorOnNode(type, Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration);\n }\n }\n function checkGrammarProperty(node) {\n if (isComputedPropertyName(node.name) && isBinaryExpression(node.name.expression) && node.name.expression.operatorToken.kind === 103 /* InKeyword */) {\n return grammarErrorOnNode(node.parent.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);\n }\n if (isClassLike(node.parent)) {\n if (isStringLiteral(node.name) && node.name.text === \"constructor\") {\n return grammarErrorOnNode(node.name, Diagnostics.Classes_may_not_have_a_field_named_constructor);\n }\n if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type)) {\n return true;\n }\n if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) {\n return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n }\n if (languageVersion < 2 /* ES2015 */ && isAutoAccessorPropertyDeclaration(node) && !(node.flags & 33554432 /* Ambient */)) {\n return grammarErrorOnNode(node.name, Diagnostics.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n }\n if (isAutoAccessorPropertyDeclaration(node) && checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_accessor_property_cannot_be_declared_optional)) {\n return true;\n }\n } else if (node.parent.kind === 265 /* InterfaceDeclaration */) {\n if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) {\n return true;\n }\n Debug.assertNode(node, isPropertySignature);\n if (node.initializer) {\n return grammarErrorOnNode(node.initializer, Diagnostics.An_interface_property_cannot_have_an_initializer);\n }\n } else if (isTypeLiteralNode(node.parent)) {\n if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) {\n return true;\n }\n Debug.assertNode(node, isPropertySignature);\n if (node.initializer) {\n return grammarErrorOnNode(node.initializer, Diagnostics.A_type_literal_property_cannot_have_an_initializer);\n }\n }\n if (node.flags & 33554432 /* Ambient */) {\n checkAmbientInitializer(node);\n }\n if (isPropertyDeclaration(node) && node.exclamationToken && (!isClassLike(node.parent) || !node.type || node.initializer || node.flags & 33554432 /* Ambient */ || isStatic(node) || hasAbstractModifier(node))) {\n const message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context;\n return grammarErrorOnNode(node.exclamationToken, message);\n }\n }\n function checkGrammarTopLevelElementForRequiredDeclareModifier(node) {\n if (node.kind === 265 /* InterfaceDeclaration */ || node.kind === 266 /* TypeAliasDeclaration */ || node.kind === 273 /* ImportDeclaration */ || node.kind === 272 /* ImportEqualsDeclaration */ || node.kind === 279 /* ExportDeclaration */ || node.kind === 278 /* ExportAssignment */ || node.kind === 271 /* NamespaceExportDeclaration */ || hasSyntacticModifier(node, 128 /* Ambient */ | 32 /* Export */ | 2048 /* Default */)) {\n return false;\n }\n return grammarErrorOnFirstToken(node, Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier);\n }\n function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {\n for (const decl of file.statements) {\n if (isDeclaration(decl) || decl.kind === 244 /* VariableStatement */) {\n if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {\n return true;\n }\n }\n }\n return false;\n }\n function checkGrammarSourceFile(node) {\n return !!(node.flags & 33554432 /* Ambient */) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node);\n }\n function checkGrammarStatementInAmbientContext(node) {\n if (node.flags & 33554432 /* Ambient */) {\n const links = getNodeLinks(node);\n if (!links.hasReportedStatementInAmbientContext && (isFunctionLike(node.parent) || isAccessor(node.parent))) {\n return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);\n }\n if (node.parent.kind === 242 /* Block */ || node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n const links2 = getNodeLinks(node.parent);\n if (!links2.hasReportedStatementInAmbientContext) {\n return links2.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.Statements_are_not_allowed_in_ambient_contexts);\n }\n } else {\n }\n }\n return false;\n }\n function checkGrammarNumericLiteral(node) {\n const isFractional = getTextOfNode(node).includes(\".\");\n const isScientific = node.numericLiteralFlags & 16 /* Scientific */;\n if (isFractional || isScientific) {\n return;\n }\n const value = +node.text;\n if (value <= 2 ** 53 - 1) {\n return;\n }\n addErrorOrSuggestion(\n /*isError*/\n false,\n createDiagnosticForNode(node, Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers)\n );\n }\n function checkGrammarBigIntLiteral(node) {\n const literalType = isLiteralTypeNode(node.parent) || isPrefixUnaryExpression(node.parent) && isLiteralTypeNode(node.parent.parent);\n if (!literalType) {\n if (!(node.flags & 33554432 /* Ambient */) && languageVersion < 7 /* ES2020 */) {\n if (grammarErrorOnNode(node, Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020)) {\n return true;\n }\n }\n }\n return false;\n }\n function grammarErrorAfterFirstToken(node, message, ...args) {\n const sourceFile = getSourceFileOfNode(node);\n if (!hasParseDiagnostics(sourceFile)) {\n const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n diagnostics.add(createFileDiagnostic(\n sourceFile,\n textSpanEnd(span),\n /*length*/\n 0,\n message,\n ...args\n ));\n return true;\n }\n return false;\n }\n function getAmbientModules() {\n if (!ambientModulesCache) {\n ambientModulesCache = [];\n globals.forEach((global2, sym) => {\n if (ambientModuleSymbolRegex.test(sym)) {\n ambientModulesCache.push(global2);\n }\n });\n }\n return ambientModulesCache;\n }\n function checkGrammarImportClause(node) {\n var _a, _b;\n if (node.phaseModifier === 156 /* TypeKeyword */) {\n if (node.name && node.namedBindings) {\n return grammarErrorOnNode(node, Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both);\n }\n if (((_a = node.namedBindings) == null ? void 0 : _a.kind) === 276 /* NamedImports */) {\n return checkGrammarNamedImportsOrExports(node.namedBindings);\n }\n } else if (node.phaseModifier === 166 /* DeferKeyword */) {\n if (node.name) {\n return grammarErrorOnNode(node, Diagnostics.Default_imports_are_not_allowed_in_a_deferred_import);\n }\n if (((_b = node.namedBindings) == null ? void 0 : _b.kind) === 276 /* NamedImports */) {\n return grammarErrorOnNode(node, Diagnostics.Named_imports_are_not_allowed_in_a_deferred_import);\n }\n if (moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n return grammarErrorOnNode(node, Diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve);\n }\n }\n return false;\n }\n function checkGrammarNamedImportsOrExports(namedBindings) {\n return !!forEach(namedBindings.elements, (specifier) => {\n if (specifier.isTypeOnly) {\n return grammarErrorOnFirstToken(\n specifier,\n specifier.kind === 277 /* ImportSpecifier */ ? Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement : Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement\n );\n }\n });\n }\n function checkGrammarImportCallExpression(node) {\n if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) {\n return grammarErrorOnNode(node, getVerbatimModuleSyntaxErrorMessage(node));\n }\n if (node.expression.kind === 237 /* MetaProperty */) {\n if (moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n return grammarErrorOnNode(node, Diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve);\n }\n } else if (moduleKind === 5 /* ES2015 */) {\n return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext);\n }\n if (node.typeArguments) {\n return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);\n }\n const nodeArguments = node.arguments;\n if (!(100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) && moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n checkGrammarForDisallowedTrailingComma(nodeArguments);\n if (nodeArguments.length > 1) {\n const importAttributesArgument = nodeArguments[1];\n return grammarErrorOnNode(importAttributesArgument, Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve);\n }\n }\n if (nodeArguments.length === 0 || nodeArguments.length > 2) {\n return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments);\n }\n const spreadElement = find(nodeArguments, isSpreadElement);\n if (spreadElement) {\n return grammarErrorOnNode(spreadElement, Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element);\n }\n return false;\n }\n function findMatchingTypeReferenceOrTypeAliasReference(source, unionTarget) {\n const sourceObjectFlags = getObjectFlags(source);\n if (sourceObjectFlags & (4 /* Reference */ | 16 /* Anonymous */) && unionTarget.flags & 1048576 /* Union */) {\n return find(unionTarget.types, (target) => {\n if (target.flags & 524288 /* Object */) {\n const overlapObjFlags = sourceObjectFlags & getObjectFlags(target);\n if (overlapObjFlags & 4 /* Reference */) {\n return source.target === target.target;\n }\n if (overlapObjFlags & 16 /* Anonymous */) {\n return !!source.aliasSymbol && source.aliasSymbol === target.aliasSymbol;\n }\n }\n return false;\n });\n }\n }\n function findBestTypeForObjectLiteral(source, unionTarget) {\n if (getObjectFlags(source) & 128 /* ObjectLiteral */ && someType(unionTarget, isArrayLikeType)) {\n return find(unionTarget.types, (t) => !isArrayLikeType(t));\n }\n }\n function findBestTypeForInvokable(source, unionTarget) {\n let signatureKind = 0 /* Call */;\n const hasSignatures2 = getSignaturesOfType(source, signatureKind).length > 0 || (signatureKind = 1 /* Construct */, getSignaturesOfType(source, signatureKind).length > 0);\n if (hasSignatures2) {\n return find(unionTarget.types, (t) => getSignaturesOfType(t, signatureKind).length > 0);\n }\n }\n function findMostOverlappyType(source, unionTarget) {\n let bestMatch;\n if (!(source.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {\n let matchingCount = 0;\n for (const target of unionTarget.types) {\n if (!(target.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {\n const overlap = getIntersectionType([getIndexType(source), getIndexType(target)]);\n if (overlap.flags & 4194304 /* Index */) {\n return target;\n } else if (isUnitType(overlap) || overlap.flags & 1048576 /* Union */) {\n const len = overlap.flags & 1048576 /* Union */ ? countWhere(overlap.types, isUnitType) : 1;\n if (len >= matchingCount) {\n bestMatch = target;\n matchingCount = len;\n }\n }\n }\n }\n }\n return bestMatch;\n }\n function filterPrimitivesIfContainsNonPrimitive(type) {\n if (maybeTypeOfKind(type, 67108864 /* NonPrimitive */)) {\n const result = filterType(type, (t) => !(t.flags & 402784252 /* Primitive */));\n if (!(result.flags & 131072 /* Never */)) {\n return result;\n }\n }\n return type;\n }\n function findMatchingDiscriminantType(source, target, isRelatedTo) {\n if (target.flags & 1048576 /* Union */ && source.flags & (2097152 /* Intersection */ | 524288 /* Object */)) {\n const match = getMatchingUnionConstituentForType(target, source);\n if (match) {\n return match;\n }\n const sourceProperties = getPropertiesOfType(source);\n if (sourceProperties) {\n const sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target);\n if (sourcePropertiesFiltered) {\n const discriminated = discriminateTypeByDiscriminableItems(target, map(sourcePropertiesFiltered, (p) => [() => getTypeOfSymbol(p), p.escapedName]), isRelatedTo);\n if (discriminated !== target) {\n return discriminated;\n }\n }\n }\n }\n return void 0;\n }\n function getEffectivePropertyNameForPropertyNameNode(node) {\n const name = getPropertyNameForPropertyNameNode(node);\n return name ? name : isComputedPropertyName(node) ? tryGetNameFromType(getTypeOfExpression(node.expression)) : void 0;\n }\n function getCombinedModifierFlagsCached(node) {\n if (lastGetCombinedModifierFlagsNode === node) {\n return lastGetCombinedModifierFlagsResult;\n }\n lastGetCombinedModifierFlagsNode = node;\n lastGetCombinedModifierFlagsResult = getCombinedModifierFlags(node);\n return lastGetCombinedModifierFlagsResult;\n }\n function getCombinedNodeFlagsCached(node) {\n if (lastGetCombinedNodeFlagsNode === node) {\n return lastGetCombinedNodeFlagsResult;\n }\n lastGetCombinedNodeFlagsNode = node;\n lastGetCombinedNodeFlagsResult = getCombinedNodeFlags(node);\n return lastGetCombinedNodeFlagsResult;\n }\n function isVarConstLike2(node) {\n const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;\n return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;\n }\n function getJSXRuntimeImportSpecifier(file, specifierText) {\n const jsxImportIndex = compilerOptions.importHelpers ? 1 : 0;\n const specifier = file == null ? void 0 : file.imports[jsxImportIndex];\n if (specifier) {\n Debug.assert(nodeIsSynthesized(specifier) && specifier.text === specifierText, `Expected sourceFile.imports[${jsxImportIndex}] to be the synthesized JSX runtime import`);\n }\n return specifier;\n }\n function getImportHelpersImportSpecifier(file) {\n Debug.assert(compilerOptions.importHelpers, \"Expected importHelpers to be enabled\");\n const specifier = file.imports[0];\n Debug.assert(specifier && nodeIsSynthesized(specifier) && specifier.text === \"tslib\", `Expected sourceFile.imports[0] to be the synthesized tslib import`);\n return specifier;\n }\n}\nfunction isNotAccessor(declaration) {\n return !isAccessor(declaration);\n}\nfunction isNotOverload(declaration) {\n return declaration.kind !== 263 /* FunctionDeclaration */ && declaration.kind !== 175 /* MethodDeclaration */ || !!declaration.body;\n}\nfunction isDeclarationNameOrImportPropertyName(name) {\n switch (name.parent.kind) {\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n return isIdentifier(name) || name.kind === 11 /* StringLiteral */;\n default:\n return isDeclarationName(name);\n }\n}\nvar JsxNames;\n((JsxNames2) => {\n JsxNames2.JSX = \"JSX\";\n JsxNames2.IntrinsicElements = \"IntrinsicElements\";\n JsxNames2.ElementClass = \"ElementClass\";\n JsxNames2.ElementAttributesPropertyNameContainer = \"ElementAttributesProperty\";\n JsxNames2.ElementChildrenAttributeNameContainer = \"ElementChildrenAttribute\";\n JsxNames2.Element = \"Element\";\n JsxNames2.ElementType = \"ElementType\";\n JsxNames2.IntrinsicAttributes = \"IntrinsicAttributes\";\n JsxNames2.IntrinsicClassAttributes = \"IntrinsicClassAttributes\";\n JsxNames2.LibraryManagedAttributes = \"LibraryManagedAttributes\";\n})(JsxNames || (JsxNames = {}));\nvar ReactNames;\n((ReactNames2) => {\n ReactNames2.Fragment = \"Fragment\";\n})(ReactNames || (ReactNames = {}));\nfunction getIterationTypesKeyFromIterationTypeKind(typeKind) {\n switch (typeKind) {\n case 0 /* Yield */:\n return \"yieldType\";\n case 1 /* Return */:\n return \"returnType\";\n case 2 /* Next */:\n return \"nextType\";\n }\n}\nfunction signatureHasRestParameter(s) {\n return !!(s.flags & 1 /* HasRestParameter */);\n}\nfunction signatureHasLiteralTypes(s) {\n return !!(s.flags & 2 /* HasLiteralTypes */);\n}\nfunction createBasicNodeBuilderModuleSpecifierResolutionHost(host) {\n return {\n getCommonSourceDirectory: !!host.getCommonSourceDirectory ? () => host.getCommonSourceDirectory() : () => \"\",\n getCurrentDirectory: () => host.getCurrentDirectory(),\n getSymlinkCache: maybeBind(host, host.getSymlinkCache),\n getPackageJsonInfoCache: () => {\n var _a;\n return (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host);\n },\n useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n redirectTargetsMap: host.redirectTargetsMap,\n getRedirectFromSourceFile: (fileName) => host.getRedirectFromSourceFile(fileName),\n isSourceOfProjectReferenceRedirect: (fileName) => host.isSourceOfProjectReferenceRedirect(fileName),\n fileExists: (fileName) => host.fileExists(fileName),\n getFileIncludeReasons: () => host.getFileIncludeReasons(),\n readFile: host.readFile ? (fileName) => host.readFile(fileName) : void 0,\n getDefaultResolutionModeForFile: (file) => host.getDefaultResolutionModeForFile(file),\n getModeForResolutionAtIndex: (file, index) => host.getModeForResolutionAtIndex(file, index),\n getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n };\n}\nvar SymbolTrackerImpl = class _SymbolTrackerImpl {\n constructor(context, tracker, moduleResolverHost) {\n this.moduleResolverHost = void 0;\n this.inner = void 0;\n this.disableTrackSymbol = false;\n var _a;\n while (tracker instanceof _SymbolTrackerImpl) {\n tracker = tracker.inner;\n }\n this.inner = tracker;\n this.moduleResolverHost = moduleResolverHost;\n this.context = context;\n this.canTrackSymbol = !!((_a = this.inner) == null ? void 0 : _a.trackSymbol);\n }\n trackSymbol(symbol, enclosingDeclaration, meaning) {\n var _a, _b;\n if (((_a = this.inner) == null ? void 0 : _a.trackSymbol) && !this.disableTrackSymbol) {\n if (this.inner.trackSymbol(symbol, enclosingDeclaration, meaning)) {\n this.onDiagnosticReported();\n return true;\n }\n if (!(symbol.flags & 262144 /* TypeParameter */)) ((_b = this.context).trackedSymbols ?? (_b.trackedSymbols = [])).push([symbol, enclosingDeclaration, meaning]);\n }\n return false;\n }\n reportInaccessibleThisError() {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleThisError) {\n this.onDiagnosticReported();\n this.inner.reportInaccessibleThisError();\n }\n }\n reportPrivateInBaseOfClassExpression(propertyName) {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportPrivateInBaseOfClassExpression) {\n this.onDiagnosticReported();\n this.inner.reportPrivateInBaseOfClassExpression(propertyName);\n }\n }\n reportInaccessibleUniqueSymbolError() {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleUniqueSymbolError) {\n this.onDiagnosticReported();\n this.inner.reportInaccessibleUniqueSymbolError();\n }\n }\n reportCyclicStructureError() {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportCyclicStructureError) {\n this.onDiagnosticReported();\n this.inner.reportCyclicStructureError();\n }\n }\n reportLikelyUnsafeImportRequiredError(specifier) {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportLikelyUnsafeImportRequiredError) {\n this.onDiagnosticReported();\n this.inner.reportLikelyUnsafeImportRequiredError(specifier);\n }\n }\n reportTruncationError() {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportTruncationError) {\n this.onDiagnosticReported();\n this.inner.reportTruncationError();\n }\n }\n reportNonlocalAugmentation(containingFile, parentSymbol, augmentingSymbol) {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportNonlocalAugmentation) {\n this.onDiagnosticReported();\n this.inner.reportNonlocalAugmentation(containingFile, parentSymbol, augmentingSymbol);\n }\n }\n reportNonSerializableProperty(propertyName) {\n var _a;\n if ((_a = this.inner) == null ? void 0 : _a.reportNonSerializableProperty) {\n this.onDiagnosticReported();\n this.inner.reportNonSerializableProperty(propertyName);\n }\n }\n onDiagnosticReported() {\n this.context.reportedDiagnostic = true;\n }\n reportInferenceFallback(node) {\n var _a;\n if (((_a = this.inner) == null ? void 0 : _a.reportInferenceFallback) && !this.context.suppressReportInferenceFallback) {\n this.onDiagnosticReported();\n this.inner.reportInferenceFallback(node);\n }\n }\n pushErrorFallbackNode(node) {\n var _a, _b;\n return (_b = (_a = this.inner) == null ? void 0 : _a.pushErrorFallbackNode) == null ? void 0 : _b.call(_a, node);\n }\n popErrorFallbackNode() {\n var _a, _b;\n return (_b = (_a = this.inner) == null ? void 0 : _a.popErrorFallbackNode) == null ? void 0 : _b.call(_a);\n }\n};\n\n// src/compiler/visitorPublic.ts\nfunction visitNode(node, visitor, test, lift) {\n if (node === void 0) {\n return node;\n }\n const visited = visitor(node);\n let visitedNode;\n if (visited === void 0) {\n return void 0;\n } else if (isArray(visited)) {\n visitedNode = (lift || extractSingleNode)(visited);\n } else {\n visitedNode = visited;\n }\n Debug.assertNode(visitedNode, test);\n return visitedNode;\n}\nfunction visitNodes2(nodes, visitor, test, start, count) {\n if (nodes === void 0) {\n return nodes;\n }\n const length2 = nodes.length;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (count === void 0 || count > length2 - start) {\n count = length2 - start;\n }\n let hasTrailingComma;\n let pos = -1;\n let end = -1;\n if (start > 0 || count < length2) {\n hasTrailingComma = nodes.hasTrailingComma && start + count === length2;\n } else {\n pos = nodes.pos;\n end = nodes.end;\n hasTrailingComma = nodes.hasTrailingComma;\n }\n const updated = visitArrayWorker(nodes, visitor, test, start, count);\n if (updated !== nodes) {\n const updatedArray = factory.createNodeArray(updated, hasTrailingComma);\n setTextRangePosEnd(updatedArray, pos, end);\n return updatedArray;\n }\n return nodes;\n}\nfunction visitArray(nodes, visitor, test, start, count) {\n if (nodes === void 0) {\n return nodes;\n }\n const length2 = nodes.length;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (count === void 0 || count > length2 - start) {\n count = length2 - start;\n }\n return visitArrayWorker(nodes, visitor, test, start, count);\n}\nfunction visitArrayWorker(nodes, visitor, test, start, count) {\n let updated;\n const length2 = nodes.length;\n if (start > 0 || count < length2) {\n updated = [];\n }\n for (let i = 0; i < count; i++) {\n const node = nodes[i + start];\n const visited = node !== void 0 ? visitor ? visitor(node) : node : void 0;\n if (updated !== void 0 || visited === void 0 || visited !== node) {\n if (updated === void 0) {\n updated = nodes.slice(0, i);\n Debug.assertEachNode(updated, test);\n }\n if (visited) {\n if (isArray(visited)) {\n for (const visitedNode of visited) {\n Debug.assertNode(visitedNode, test);\n updated.push(visitedNode);\n }\n } else {\n Debug.assertNode(visited, test);\n updated.push(visited);\n }\n }\n }\n }\n if (updated) {\n return updated;\n }\n Debug.assertEachNode(nodes, test);\n return nodes;\n}\nfunction visitLexicalEnvironment(statements, visitor, context, start, ensureUseStrict, nodesVisitor = visitNodes2) {\n context.startLexicalEnvironment();\n statements = nodesVisitor(statements, visitor, isStatement, start);\n if (ensureUseStrict) statements = context.factory.ensureUseStrict(statements);\n return factory.mergeLexicalEnvironment(statements, context.endLexicalEnvironment());\n}\nfunction visitParameterList(nodes, visitor, context, nodesVisitor = visitNodes2) {\n let updated;\n context.startLexicalEnvironment();\n if (nodes) {\n context.setLexicalEnvironmentFlags(1 /* InParameters */, true);\n updated = nodesVisitor(nodes, visitor, isParameter);\n if (context.getLexicalEnvironmentFlags() & 2 /* VariablesHoistedInParameters */ && getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) {\n updated = addDefaultValueAssignmentsIfNeeded(updated, context);\n }\n context.setLexicalEnvironmentFlags(1 /* InParameters */, false);\n }\n context.suspendLexicalEnvironment();\n return updated;\n}\nfunction addDefaultValueAssignmentsIfNeeded(parameters, context) {\n let result;\n for (let i = 0; i < parameters.length; i++) {\n const parameter = parameters[i];\n const updated = addDefaultValueAssignmentIfNeeded(parameter, context);\n if (result || updated !== parameter) {\n if (!result) result = parameters.slice(0, i);\n result[i] = updated;\n }\n }\n if (result) {\n return setTextRange(context.factory.createNodeArray(result, parameters.hasTrailingComma), parameters);\n }\n return parameters;\n}\nfunction addDefaultValueAssignmentIfNeeded(parameter, context) {\n return parameter.dotDotDotToken ? parameter : isBindingPattern(parameter.name) ? addDefaultValueAssignmentForBindingPattern(parameter, context) : parameter.initializer ? addDefaultValueAssignmentForInitializer(parameter, parameter.name, parameter.initializer, context) : parameter;\n}\nfunction addDefaultValueAssignmentForBindingPattern(parameter, context) {\n const { factory: factory2 } = context;\n context.addInitializationStatement(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n parameter.name,\n /*exclamationToken*/\n void 0,\n parameter.type,\n parameter.initializer ? factory2.createConditionalExpression(\n factory2.createStrictEquality(\n factory2.getGeneratedNameForNode(parameter),\n factory2.createVoidZero()\n ),\n /*questionToken*/\n void 0,\n parameter.initializer,\n /*colonToken*/\n void 0,\n factory2.getGeneratedNameForNode(parameter)\n ) : factory2.getGeneratedNameForNode(parameter)\n )\n ])\n )\n );\n return factory2.updateParameterDeclaration(\n parameter,\n parameter.modifiers,\n parameter.dotDotDotToken,\n factory2.getGeneratedNameForNode(parameter),\n parameter.questionToken,\n parameter.type,\n /*initializer*/\n void 0\n );\n}\nfunction addDefaultValueAssignmentForInitializer(parameter, name, initializer, context) {\n const factory2 = context.factory;\n context.addInitializationStatement(\n factory2.createIfStatement(\n factory2.createTypeCheck(factory2.cloneNode(name), \"undefined\"),\n setEmitFlags(\n setTextRange(\n factory2.createBlock([\n factory2.createExpressionStatement(\n setEmitFlags(\n setTextRange(\n factory2.createAssignment(\n setEmitFlags(factory2.cloneNode(name), 96 /* NoSourceMap */),\n setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)\n ),\n parameter\n ),\n 3072 /* NoComments */\n )\n )\n ]),\n parameter\n ),\n 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */\n )\n )\n );\n return factory2.updateParameterDeclaration(\n parameter,\n parameter.modifiers,\n parameter.dotDotDotToken,\n parameter.name,\n parameter.questionToken,\n parameter.type,\n /*initializer*/\n void 0\n );\n}\nfunction visitFunctionBody(node, visitor, context, nodeVisitor = visitNode) {\n context.resumeLexicalEnvironment();\n const updated = nodeVisitor(node, visitor, isConciseBody);\n const declarations = context.endLexicalEnvironment();\n if (some(declarations)) {\n if (!updated) {\n return context.factory.createBlock(declarations);\n }\n const block = context.factory.converters.convertToFunctionBlock(updated);\n const statements = factory.mergeLexicalEnvironment(block.statements, declarations);\n return context.factory.updateBlock(block, statements);\n }\n return updated;\n}\nfunction visitIterationBody(body, visitor, context, nodeVisitor = visitNode) {\n context.startBlockScope();\n const updated = nodeVisitor(body, visitor, isStatement, context.factory.liftToBlock);\n Debug.assert(updated);\n const declarations = context.endBlockScope();\n if (some(declarations)) {\n if (isBlock(updated)) {\n declarations.push(...updated.statements);\n return context.factory.updateBlock(updated, declarations);\n }\n declarations.push(updated);\n return context.factory.createBlock(declarations);\n }\n return updated;\n}\nfunction visitCommaListElements(elements, visitor, discardVisitor = visitor) {\n if (discardVisitor === visitor || elements.length <= 1) {\n return visitNodes2(elements, visitor, isExpression);\n }\n let i = 0;\n const length2 = elements.length;\n return visitNodes2(elements, (node) => {\n const discarded = i < length2 - 1;\n i++;\n return discarded ? discardVisitor(node) : visitor(node);\n }, isExpression);\n}\nfunction visitEachChild(node, visitor, context = nullTransformationContext, nodesVisitor = visitNodes2, tokenVisitor, nodeVisitor = visitNode) {\n if (node === void 0) {\n return void 0;\n }\n const fn = visitEachChildTable[node.kind];\n return fn === void 0 ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);\n}\nvar visitEachChildTable = {\n [167 /* QualifiedName */]: function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateQualifiedName(\n node,\n Debug.checkDefined(nodeVisitor(node.left, visitor, isEntityName)),\n Debug.checkDefined(nodeVisitor(node.right, visitor, isIdentifier))\n );\n },\n [168 /* ComputedPropertyName */]: function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateComputedPropertyName(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n // Signature elements\n [169 /* TypeParameter */]: function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeParameterDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n nodeVisitor(node.constraint, visitor, isTypeNode),\n nodeVisitor(node.default, visitor, isTypeNode)\n );\n },\n [170 /* Parameter */]: function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateParameterDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n nodeVisitor(node.type, visitor, isTypeNode),\n nodeVisitor(node.initializer, visitor, isExpression)\n );\n },\n [171 /* Decorator */]: function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateDecorator(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n // Type elements\n [172 /* PropertySignature */]: function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updatePropertySignature(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n nodeVisitor(node.type, visitor, isTypeNode)\n );\n },\n [173 /* PropertyDeclaration */]: function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updatePropertyDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration\n tokenVisitor ? nodeVisitor(node.questionToken ?? node.exclamationToken, tokenVisitor, isQuestionOrExclamationToken) : node.questionToken ?? node.exclamationToken,\n nodeVisitor(node.type, visitor, isTypeNode),\n nodeVisitor(node.initializer, visitor, isExpression)\n );\n },\n [174 /* MethodSignature */]: function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateMethodSignature(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.parameters, visitor, isParameter),\n nodeVisitor(node.type, visitor, isTypeNode)\n );\n },\n [175 /* MethodDeclaration */]: function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateMethodDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n nodeVisitor(node.type, visitor, isTypeNode),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [177 /* Constructor */]: function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateConstructorDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [178 /* GetAccessor */]: function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateGetAccessorDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n nodeVisitor(node.type, visitor, isTypeNode),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [179 /* SetAccessor */]: function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateSetAccessorDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [176 /* ClassStaticBlockDeclaration */]: function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n context.startLexicalEnvironment();\n context.suspendLexicalEnvironment();\n return context.factory.updateClassStaticBlockDeclaration(\n node,\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [180 /* CallSignature */]: function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateCallSignature(\n node,\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.parameters, visitor, isParameter),\n nodeVisitor(node.type, visitor, isTypeNode)\n );\n },\n [181 /* ConstructSignature */]: function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateConstructSignature(\n node,\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.parameters, visitor, isParameter),\n nodeVisitor(node.type, visitor, isTypeNode)\n );\n },\n [182 /* IndexSignature */]: function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateIndexSignature(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n nodesVisitor(node.parameters, visitor, isParameter),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n // Types\n [183 /* TypePredicate */]: function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypePredicateNode(\n node,\n nodeVisitor(node.assertsModifier, visitor, isAssertsKeyword),\n Debug.checkDefined(nodeVisitor(node.parameterName, visitor, isIdentifierOrThisTypeNode)),\n nodeVisitor(node.type, visitor, isTypeNode)\n );\n },\n [184 /* TypeReference */]: function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeReferenceNode(\n node,\n Debug.checkDefined(nodeVisitor(node.typeName, visitor, isEntityName)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode)\n );\n },\n [185 /* FunctionType */]: function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateFunctionTypeNode(\n node,\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.parameters, visitor, isParameter),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [186 /* ConstructorType */]: function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateConstructorTypeNode(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.parameters, visitor, isParameter),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [187 /* TypeQuery */]: function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeQueryNode(\n node,\n Debug.checkDefined(nodeVisitor(node.exprName, visitor, isEntityName)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode)\n );\n },\n [188 /* TypeLiteral */]: function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeLiteralNode(\n node,\n nodesVisitor(node.members, visitor, isTypeElement)\n );\n },\n [189 /* ArrayType */]: function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateArrayTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.elementType, visitor, isTypeNode))\n );\n },\n [190 /* TupleType */]: function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateTupleTypeNode(\n node,\n nodesVisitor(node.elements, visitor, isTypeNode)\n );\n },\n [191 /* OptionalType */]: function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateOptionalTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [192 /* RestType */]: function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateRestTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [193 /* UnionType */]: function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateUnionTypeNode(\n node,\n nodesVisitor(node.types, visitor, isTypeNode)\n );\n },\n [194 /* IntersectionType */]: function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateIntersectionTypeNode(\n node,\n nodesVisitor(node.types, visitor, isTypeNode)\n );\n },\n [195 /* ConditionalType */]: function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateConditionalTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.checkType, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.extendsType, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.trueType, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.falseType, visitor, isTypeNode))\n );\n },\n [196 /* InferType */]: function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateInferTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration))\n );\n },\n [206 /* ImportType */]: function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.argument, visitor, isTypeNode)),\n nodeVisitor(node.attributes, visitor, isImportAttributes),\n nodeVisitor(node.qualifier, visitor, isEntityName),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n node.isTypeOf\n );\n },\n [303 /* ImportTypeAssertionContainer */]: function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportTypeAssertionContainer(\n node,\n Debug.checkDefined(nodeVisitor(node.assertClause, visitor, isAssertClause)),\n node.multiLine\n );\n },\n [203 /* NamedTupleMember */]: function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateNamedTupleMember(\n node,\n tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [197 /* ParenthesizedType */]: function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateParenthesizedType(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [199 /* TypeOperator */]: function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeOperatorNode(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [200 /* IndexedAccessType */]: function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateIndexedAccessTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.objectType, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.indexType, visitor, isTypeNode))\n );\n },\n [201 /* MappedType */]: function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateMappedTypeNode(\n node,\n tokenVisitor ? nodeVisitor(node.readonlyToken, tokenVisitor, isReadonlyKeywordOrPlusOrMinusToken) : node.readonlyToken,\n Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration)),\n nodeVisitor(node.nameType, visitor, isTypeNode),\n tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionOrPlusOrMinusToken) : node.questionToken,\n nodeVisitor(node.type, visitor, isTypeNode),\n nodesVisitor(node.members, visitor, isTypeElement)\n );\n },\n [202 /* LiteralType */]: function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateLiteralTypeNode(\n node,\n Debug.checkDefined(nodeVisitor(node.literal, visitor, isLiteralTypeLiteral))\n );\n },\n [204 /* TemplateLiteralType */]: function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTemplateLiteralType(\n node,\n Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)),\n nodesVisitor(node.templateSpans, visitor, isTemplateLiteralTypeSpan)\n );\n },\n [205 /* TemplateLiteralTypeSpan */]: function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTemplateLiteralTypeSpan(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))\n );\n },\n // Binding patterns\n [207 /* ObjectBindingPattern */]: function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateObjectBindingPattern(\n node,\n nodesVisitor(node.elements, visitor, isBindingElement)\n );\n },\n [208 /* ArrayBindingPattern */]: function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateArrayBindingPattern(\n node,\n nodesVisitor(node.elements, visitor, isArrayBindingElement)\n );\n },\n [209 /* BindingElement */]: function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateBindingElement(\n node,\n tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n nodeVisitor(node.propertyName, visitor, isPropertyName),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n nodeVisitor(node.initializer, visitor, isExpression)\n );\n },\n // Expression\n [210 /* ArrayLiteralExpression */]: function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateArrayLiteralExpression(\n node,\n nodesVisitor(node.elements, visitor, isExpression)\n );\n },\n [211 /* ObjectLiteralExpression */]: function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateObjectLiteralExpression(\n node,\n nodesVisitor(node.properties, visitor, isObjectLiteralElementLike)\n );\n },\n [212 /* PropertyAccessExpression */]: function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return isPropertyAccessChain(node) ? context.factory.updatePropertyAccessChain(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))\n ) : context.factory.updatePropertyAccessExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))\n );\n },\n [213 /* ElementAccessExpression */]: function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return isElementAccessChain(node) ? context.factory.updateElementAccessChain(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))\n ) : context.factory.updateElementAccessExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))\n );\n },\n [214 /* CallExpression */]: function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return isCallChain(node) ? context.factory.updateCallChain(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n nodesVisitor(node.arguments, visitor, isExpression)\n ) : context.factory.updateCallExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n nodesVisitor(node.arguments, visitor, isExpression)\n );\n },\n [215 /* NewExpression */]: function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateNewExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n nodesVisitor(node.arguments, visitor, isExpression)\n );\n },\n [216 /* TaggedTemplateExpression */]: function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTaggedTemplateExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.tag, visitor, isExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n Debug.checkDefined(nodeVisitor(node.template, visitor, isTemplateLiteral))\n );\n },\n [217 /* TypeAssertionExpression */]: function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeAssertion(\n node,\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)),\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [218 /* ParenthesizedExpression */]: function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateParenthesizedExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [219 /* FunctionExpression */]: function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateFunctionExpression(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n nodeVisitor(node.name, visitor, isIdentifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n nodeVisitor(node.type, visitor, isTypeNode),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [220 /* ArrowFunction */]: function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateArrowFunction(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n nodeVisitor(node.type, visitor, isTypeNode),\n tokenVisitor ? Debug.checkDefined(nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, isEqualsGreaterThanToken)) : node.equalsGreaterThanToken,\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [221 /* DeleteExpression */]: function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateDeleteExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [222 /* TypeOfExpression */]: function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeOfExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [223 /* VoidExpression */]: function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateVoidExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [224 /* AwaitExpression */]: function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateAwaitExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [225 /* PrefixUnaryExpression */]: function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updatePrefixUnaryExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))\n );\n },\n [226 /* PostfixUnaryExpression */]: function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updatePostfixUnaryExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))\n );\n },\n [227 /* BinaryExpression */]: function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateBinaryExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.left, visitor, isExpression)),\n tokenVisitor ? Debug.checkDefined(nodeVisitor(node.operatorToken, tokenVisitor, isBinaryOperatorToken)) : node.operatorToken,\n Debug.checkDefined(nodeVisitor(node.right, visitor, isExpression))\n );\n },\n [228 /* ConditionalExpression */]: function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateConditionalExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.condition, visitor, isExpression)),\n tokenVisitor ? Debug.checkDefined(nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken)) : node.questionToken,\n Debug.checkDefined(nodeVisitor(node.whenTrue, visitor, isExpression)),\n tokenVisitor ? Debug.checkDefined(nodeVisitor(node.colonToken, tokenVisitor, isColonToken)) : node.colonToken,\n Debug.checkDefined(nodeVisitor(node.whenFalse, visitor, isExpression))\n );\n },\n [229 /* TemplateExpression */]: function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTemplateExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)),\n nodesVisitor(node.templateSpans, visitor, isTemplateSpan)\n );\n },\n [230 /* YieldExpression */]: function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateYieldExpression(\n node,\n tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n nodeVisitor(node.expression, visitor, isExpression)\n );\n },\n [231 /* SpreadElement */]: function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateSpreadElement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [232 /* ClassExpression */]: function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateClassExpression(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n nodeVisitor(node.name, visitor, isIdentifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n nodesVisitor(node.members, visitor, isClassElement)\n );\n },\n [234 /* ExpressionWithTypeArguments */]: function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExpressionWithTypeArguments(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode)\n );\n },\n [235 /* AsExpression */]: function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateAsExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [239 /* SatisfiesExpression */]: function visitEachChildOfSatisfiesExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateSatisfiesExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [236 /* NonNullExpression */]: function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return isOptionalChain(node) ? context.factory.updateNonNullChain(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n ) : context.factory.updateNonNullExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [237 /* MetaProperty */]: function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateMetaProperty(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n // Misc\n [240 /* TemplateSpan */]: function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTemplateSpan(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))\n );\n },\n // Element\n [242 /* Block */]: function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateBlock(\n node,\n nodesVisitor(node.statements, visitor, isStatement)\n );\n },\n [244 /* VariableStatement */]: function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateVariableStatement(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.declarationList, visitor, isVariableDeclarationList))\n );\n },\n [245 /* ExpressionStatement */]: function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExpressionStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [246 /* IfStatement */]: function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateIfStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.thenStatement, visitor, isStatement, context.factory.liftToBlock)),\n nodeVisitor(node.elseStatement, visitor, isStatement, context.factory.liftToBlock)\n );\n },\n [247 /* DoStatement */]: function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateDoStatement(\n node,\n visitIterationBody(node.statement, visitor, context, nodeVisitor),\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [248 /* WhileStatement */]: function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateWhileStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n visitIterationBody(node.statement, visitor, context, nodeVisitor)\n );\n },\n [249 /* ForStatement */]: function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateForStatement(\n node,\n nodeVisitor(node.initializer, visitor, isForInitializer),\n nodeVisitor(node.condition, visitor, isExpression),\n nodeVisitor(node.incrementor, visitor, isExpression),\n visitIterationBody(node.statement, visitor, context, nodeVisitor)\n );\n },\n [250 /* ForInStatement */]: function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateForInStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n visitIterationBody(node.statement, visitor, context, nodeVisitor)\n );\n },\n [251 /* ForOfStatement */]: function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateForOfStatement(\n node,\n tokenVisitor ? nodeVisitor(node.awaitModifier, tokenVisitor, isAwaitKeyword) : node.awaitModifier,\n Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n visitIterationBody(node.statement, visitor, context, nodeVisitor)\n );\n },\n [252 /* ContinueStatement */]: function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateContinueStatement(\n node,\n nodeVisitor(node.label, visitor, isIdentifier)\n );\n },\n [253 /* BreakStatement */]: function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateBreakStatement(\n node,\n nodeVisitor(node.label, visitor, isIdentifier)\n );\n },\n [254 /* ReturnStatement */]: function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateReturnStatement(\n node,\n nodeVisitor(node.expression, visitor, isExpression)\n );\n },\n [255 /* WithStatement */]: function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateWithStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))\n );\n },\n [256 /* SwitchStatement */]: function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateSwitchStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n Debug.checkDefined(nodeVisitor(node.caseBlock, visitor, isCaseBlock))\n );\n },\n [257 /* LabeledStatement */]: function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateLabeledStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.label, visitor, isIdentifier)),\n Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))\n );\n },\n [258 /* ThrowStatement */]: function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateThrowStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [259 /* TryStatement */]: function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTryStatement(\n node,\n Debug.checkDefined(nodeVisitor(node.tryBlock, visitor, isBlock)),\n nodeVisitor(node.catchClause, visitor, isCatchClause),\n nodeVisitor(node.finallyBlock, visitor, isBlock)\n );\n },\n [261 /* VariableDeclaration */]: function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateVariableDeclaration(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n tokenVisitor ? nodeVisitor(node.exclamationToken, tokenVisitor, isExclamationToken) : node.exclamationToken,\n nodeVisitor(node.type, visitor, isTypeNode),\n nodeVisitor(node.initializer, visitor, isExpression)\n );\n },\n [262 /* VariableDeclarationList */]: function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateVariableDeclarationList(\n node,\n nodesVisitor(node.declarations, visitor, isVariableDeclaration)\n );\n },\n [263 /* FunctionDeclaration */]: function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n return context.factory.updateFunctionDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifier),\n tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n nodeVisitor(node.name, visitor, isIdentifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n visitParameterList(node.parameters, visitor, context, nodesVisitor),\n nodeVisitor(node.type, visitor, isTypeNode),\n visitFunctionBody(node.body, visitor, context, nodeVisitor)\n );\n },\n [264 /* ClassDeclaration */]: function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateClassDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n nodeVisitor(node.name, visitor, isIdentifier),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n nodesVisitor(node.members, visitor, isClassElement)\n );\n },\n [265 /* InterfaceDeclaration */]: function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateInterfaceDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n nodesVisitor(node.members, visitor, isTypeElement)\n );\n },\n [266 /* TypeAliasDeclaration */]: function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateTypeAliasDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n );\n },\n [267 /* EnumDeclaration */]: function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateEnumDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n nodesVisitor(node.members, visitor, isEnumMember)\n );\n },\n [268 /* ModuleDeclaration */]: function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateModuleDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isModuleName)),\n nodeVisitor(node.body, visitor, isModuleBody)\n );\n },\n [269 /* ModuleBlock */]: function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateModuleBlock(\n node,\n nodesVisitor(node.statements, visitor, isStatement)\n );\n },\n [270 /* CaseBlock */]: function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateCaseBlock(\n node,\n nodesVisitor(node.clauses, visitor, isCaseOrDefaultClause)\n );\n },\n [271 /* NamespaceExportDeclaration */]: function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateNamespaceExportDeclaration(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n [272 /* ImportEqualsDeclaration */]: function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportEqualsDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n node.isTypeOnly,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n Debug.checkDefined(nodeVisitor(node.moduleReference, visitor, isModuleReference))\n );\n },\n [273 /* ImportDeclaration */]: function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n nodeVisitor(node.importClause, visitor, isImportClause),\n Debug.checkDefined(nodeVisitor(node.moduleSpecifier, visitor, isExpression)),\n nodeVisitor(node.attributes, visitor, isImportAttributes)\n );\n },\n [301 /* ImportAttributes */]: function visitEachChildOfImportAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportAttributes(\n node,\n nodesVisitor(node.elements, visitor, isImportAttribute),\n node.multiLine\n );\n },\n [302 /* ImportAttribute */]: function visitEachChildOfImportAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportAttribute(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isImportAttributeName)),\n Debug.checkDefined(nodeVisitor(node.value, visitor, isExpression))\n );\n },\n [274 /* ImportClause */]: function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportClause(\n node,\n node.phaseModifier,\n nodeVisitor(node.name, visitor, isIdentifier),\n nodeVisitor(node.namedBindings, visitor, isNamedImportBindings)\n );\n },\n [275 /* NamespaceImport */]: function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateNamespaceImport(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n [281 /* NamespaceExport */]: function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateNamespaceExport(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n [276 /* NamedImports */]: function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateNamedImports(\n node,\n nodesVisitor(node.elements, visitor, isImportSpecifier)\n );\n },\n [277 /* ImportSpecifier */]: function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateImportSpecifier(\n node,\n node.isTypeOnly,\n nodeVisitor(node.propertyName, visitor, isModuleExportName),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n [278 /* ExportAssignment */]: function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExportAssignment(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [279 /* ExportDeclaration */]: function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExportDeclaration(\n node,\n nodesVisitor(node.modifiers, visitor, isModifierLike),\n node.isTypeOnly,\n nodeVisitor(node.exportClause, visitor, isNamedExportBindings),\n nodeVisitor(node.moduleSpecifier, visitor, isExpression),\n nodeVisitor(node.attributes, visitor, isImportAttributes)\n );\n },\n [280 /* NamedExports */]: function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateNamedExports(\n node,\n nodesVisitor(node.elements, visitor, isExportSpecifier)\n );\n },\n [282 /* ExportSpecifier */]: function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExportSpecifier(\n node,\n node.isTypeOnly,\n nodeVisitor(node.propertyName, visitor, isModuleExportName),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isModuleExportName))\n );\n },\n // Module references\n [284 /* ExternalModuleReference */]: function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateExternalModuleReference(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n // JSX\n [285 /* JsxElement */]: function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxElement(\n node,\n Debug.checkDefined(nodeVisitor(node.openingElement, visitor, isJsxOpeningElement)),\n nodesVisitor(node.children, visitor, isJsxChild),\n Debug.checkDefined(nodeVisitor(node.closingElement, visitor, isJsxClosingElement))\n );\n },\n [286 /* JsxSelfClosingElement */]: function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxSelfClosingElement(\n node,\n Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))\n );\n },\n [287 /* JsxOpeningElement */]: function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxOpeningElement(\n node,\n Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)),\n nodesVisitor(node.typeArguments, visitor, isTypeNode),\n Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))\n );\n },\n [288 /* JsxClosingElement */]: function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxClosingElement(\n node,\n Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression))\n );\n },\n [296 /* JsxNamespacedName */]: function forEachChildInJsxNamespacedName2(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxNamespacedName(\n node,\n Debug.checkDefined(nodeVisitor(node.namespace, visitor, isIdentifier)),\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n );\n },\n [289 /* JsxFragment */]: function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxFragment(\n node,\n Debug.checkDefined(nodeVisitor(node.openingFragment, visitor, isJsxOpeningFragment)),\n nodesVisitor(node.children, visitor, isJsxChild),\n Debug.checkDefined(nodeVisitor(node.closingFragment, visitor, isJsxClosingFragment))\n );\n },\n [292 /* JsxAttribute */]: function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxAttribute(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isJsxAttributeName)),\n nodeVisitor(node.initializer, visitor, isStringLiteralOrJsxExpression)\n );\n },\n [293 /* JsxAttributes */]: function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxAttributes(\n node,\n nodesVisitor(node.properties, visitor, isJsxAttributeLike)\n );\n },\n [294 /* JsxSpreadAttribute */]: function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxSpreadAttribute(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [295 /* JsxExpression */]: function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateJsxExpression(\n node,\n nodeVisitor(node.expression, visitor, isExpression)\n );\n },\n // Clauses\n [297 /* CaseClause */]: function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateCaseClause(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n nodesVisitor(node.statements, visitor, isStatement)\n );\n },\n [298 /* DefaultClause */]: function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateDefaultClause(\n node,\n nodesVisitor(node.statements, visitor, isStatement)\n );\n },\n [299 /* HeritageClause */]: function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateHeritageClause(\n node,\n nodesVisitor(node.types, visitor, isExpressionWithTypeArguments)\n );\n },\n [300 /* CatchClause */]: function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateCatchClause(\n node,\n nodeVisitor(node.variableDeclaration, visitor, isVariableDeclaration),\n Debug.checkDefined(nodeVisitor(node.block, visitor, isBlock))\n );\n },\n // Property assignments\n [304 /* PropertyAssignment */]: function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updatePropertyAssignment(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n Debug.checkDefined(nodeVisitor(node.initializer, visitor, isExpression))\n );\n },\n [305 /* ShorthandPropertyAssignment */]: function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateShorthandPropertyAssignment(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n nodeVisitor(node.objectAssignmentInitializer, visitor, isExpression)\n );\n },\n [306 /* SpreadAssignment */]: function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateSpreadAssignment(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n // Enum\n [307 /* EnumMember */]: function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updateEnumMember(\n node,\n Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n nodeVisitor(node.initializer, visitor, isExpression)\n );\n },\n // Top-level nodes\n [308 /* SourceFile */]: function visitEachChildOfSourceFile(node, visitor, context, _nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateSourceFile(\n node,\n visitLexicalEnvironment(node.statements, visitor, context)\n );\n },\n // Transformation nodes\n [356 /* PartiallyEmittedExpression */]: function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n return context.factory.updatePartiallyEmittedExpression(\n node,\n Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n );\n },\n [357 /* CommaListExpression */]: function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n return context.factory.updateCommaListExpression(\n node,\n nodesVisitor(node.elements, visitor, isExpression)\n );\n }\n};\nfunction extractSingleNode(nodes) {\n Debug.assert(nodes.length <= 1, \"Too many nodes written to output.\");\n return singleOrUndefined(nodes);\n}\n\n// src/compiler/sourcemap.ts\nfunction createSourceMapGenerator(host, file, sourceRoot, sourcesDirectoryPath, generatorOptions) {\n var { enter, exit } = generatorOptions.extendedDiagnostics ? createTimer(\"Source Map\", \"beforeSourcemap\", \"afterSourcemap\") : nullTimer;\n var rawSources = [];\n var sources = [];\n var sourceToSourceIndexMap = /* @__PURE__ */ new Map();\n var sourcesContent;\n var names = [];\n var nameToNameIndexMap;\n var mappingCharCodes = [];\n var mappings = \"\";\n var lastGeneratedLine = 0;\n var lastGeneratedCharacter = 0;\n var lastSourceIndex = 0;\n var lastSourceLine = 0;\n var lastSourceCharacter = 0;\n var lastNameIndex = 0;\n var hasLast = false;\n var pendingGeneratedLine = 0;\n var pendingGeneratedCharacter = 0;\n var pendingSourceIndex = 0;\n var pendingSourceLine = 0;\n var pendingSourceCharacter = 0;\n var pendingNameIndex = 0;\n var hasPending = false;\n var hasPendingSource = false;\n var hasPendingName = false;\n return {\n getSources: () => rawSources,\n addSource,\n setSourceContent,\n addName,\n addMapping,\n appendSourceMap,\n toJSON,\n toString: () => JSON.stringify(toJSON())\n };\n function addSource(fileName) {\n enter();\n const source = getRelativePathToDirectoryOrUrl(\n sourcesDirectoryPath,\n fileName,\n host.getCurrentDirectory(),\n host.getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n true\n );\n let sourceIndex = sourceToSourceIndexMap.get(source);\n if (sourceIndex === void 0) {\n sourceIndex = sources.length;\n sources.push(source);\n rawSources.push(fileName);\n sourceToSourceIndexMap.set(source, sourceIndex);\n }\n exit();\n return sourceIndex;\n }\n function setSourceContent(sourceIndex, content) {\n enter();\n if (content !== null) {\n if (!sourcesContent) sourcesContent = [];\n while (sourcesContent.length < sourceIndex) {\n sourcesContent.push(null);\n }\n sourcesContent[sourceIndex] = content;\n }\n exit();\n }\n function addName(name) {\n enter();\n if (!nameToNameIndexMap) nameToNameIndexMap = /* @__PURE__ */ new Map();\n let nameIndex = nameToNameIndexMap.get(name);\n if (nameIndex === void 0) {\n nameIndex = names.length;\n names.push(name);\n nameToNameIndexMap.set(name, nameIndex);\n }\n exit();\n return nameIndex;\n }\n function isNewGeneratedPosition(generatedLine, generatedCharacter) {\n return !hasPending || pendingGeneratedLine !== generatedLine || pendingGeneratedCharacter !== generatedCharacter;\n }\n function isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter) {\n return sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0 && pendingSourceIndex === sourceIndex && (pendingSourceLine > sourceLine || pendingSourceLine === sourceLine && pendingSourceCharacter > sourceCharacter);\n }\n function addMapping(generatedLine, generatedCharacter, sourceIndex, sourceLine, sourceCharacter, nameIndex) {\n Debug.assert(generatedLine >= pendingGeneratedLine, \"generatedLine cannot backtrack\");\n Debug.assert(generatedCharacter >= 0, \"generatedCharacter cannot be negative\");\n Debug.assert(sourceIndex === void 0 || sourceIndex >= 0, \"sourceIndex cannot be negative\");\n Debug.assert(sourceLine === void 0 || sourceLine >= 0, \"sourceLine cannot be negative\");\n Debug.assert(sourceCharacter === void 0 || sourceCharacter >= 0, \"sourceCharacter cannot be negative\");\n enter();\n if (isNewGeneratedPosition(generatedLine, generatedCharacter) || isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter)) {\n commitPendingMapping();\n pendingGeneratedLine = generatedLine;\n pendingGeneratedCharacter = generatedCharacter;\n hasPendingSource = false;\n hasPendingName = false;\n hasPending = true;\n }\n if (sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0) {\n pendingSourceIndex = sourceIndex;\n pendingSourceLine = sourceLine;\n pendingSourceCharacter = sourceCharacter;\n hasPendingSource = true;\n if (nameIndex !== void 0) {\n pendingNameIndex = nameIndex;\n hasPendingName = true;\n }\n }\n exit();\n }\n function appendSourceMap(generatedLine, generatedCharacter, map2, sourceMapPath, start, end) {\n Debug.assert(generatedLine >= pendingGeneratedLine, \"generatedLine cannot backtrack\");\n Debug.assert(generatedCharacter >= 0, \"generatedCharacter cannot be negative\");\n enter();\n const sourceIndexToNewSourceIndexMap = [];\n let nameIndexToNewNameIndexMap;\n const mappingIterator = decodeMappings(map2.mappings);\n for (const raw of mappingIterator) {\n if (end && (raw.generatedLine > end.line || raw.generatedLine === end.line && raw.generatedCharacter > end.character)) {\n break;\n }\n if (start && (raw.generatedLine < start.line || start.line === raw.generatedLine && raw.generatedCharacter < start.character)) {\n continue;\n }\n let newSourceIndex;\n let newSourceLine;\n let newSourceCharacter;\n let newNameIndex;\n if (raw.sourceIndex !== void 0) {\n newSourceIndex = sourceIndexToNewSourceIndexMap[raw.sourceIndex];\n if (newSourceIndex === void 0) {\n const rawPath = map2.sources[raw.sourceIndex];\n const relativePath = map2.sourceRoot ? combinePaths(map2.sourceRoot, rawPath) : rawPath;\n const combinedPath = combinePaths(getDirectoryPath(sourceMapPath), relativePath);\n sourceIndexToNewSourceIndexMap[raw.sourceIndex] = newSourceIndex = addSource(combinedPath);\n if (map2.sourcesContent && typeof map2.sourcesContent[raw.sourceIndex] === \"string\") {\n setSourceContent(newSourceIndex, map2.sourcesContent[raw.sourceIndex]);\n }\n }\n newSourceLine = raw.sourceLine;\n newSourceCharacter = raw.sourceCharacter;\n if (map2.names && raw.nameIndex !== void 0) {\n if (!nameIndexToNewNameIndexMap) nameIndexToNewNameIndexMap = [];\n newNameIndex = nameIndexToNewNameIndexMap[raw.nameIndex];\n if (newNameIndex === void 0) {\n nameIndexToNewNameIndexMap[raw.nameIndex] = newNameIndex = addName(map2.names[raw.nameIndex]);\n }\n }\n }\n const rawGeneratedLine = raw.generatedLine - (start ? start.line : 0);\n const newGeneratedLine = rawGeneratedLine + generatedLine;\n const rawGeneratedCharacter = start && start.line === raw.generatedLine ? raw.generatedCharacter - start.character : raw.generatedCharacter;\n const newGeneratedCharacter = rawGeneratedLine === 0 ? rawGeneratedCharacter + generatedCharacter : rawGeneratedCharacter;\n addMapping(newGeneratedLine, newGeneratedCharacter, newSourceIndex, newSourceLine, newSourceCharacter, newNameIndex);\n }\n exit();\n }\n function shouldCommitMapping() {\n return !hasLast || lastGeneratedLine !== pendingGeneratedLine || lastGeneratedCharacter !== pendingGeneratedCharacter || lastSourceIndex !== pendingSourceIndex || lastSourceLine !== pendingSourceLine || lastSourceCharacter !== pendingSourceCharacter || lastNameIndex !== pendingNameIndex;\n }\n function appendMappingCharCode(charCode) {\n mappingCharCodes.push(charCode);\n if (mappingCharCodes.length >= 1024) {\n flushMappingBuffer();\n }\n }\n function commitPendingMapping() {\n if (!hasPending || !shouldCommitMapping()) {\n return;\n }\n enter();\n if (lastGeneratedLine < pendingGeneratedLine) {\n do {\n appendMappingCharCode(59 /* semicolon */);\n lastGeneratedLine++;\n } while (lastGeneratedLine < pendingGeneratedLine);\n lastGeneratedCharacter = 0;\n } else {\n Debug.assertEqual(lastGeneratedLine, pendingGeneratedLine, \"generatedLine cannot backtrack\");\n if (hasLast) {\n appendMappingCharCode(44 /* comma */);\n }\n }\n appendBase64VLQ(pendingGeneratedCharacter - lastGeneratedCharacter);\n lastGeneratedCharacter = pendingGeneratedCharacter;\n if (hasPendingSource) {\n appendBase64VLQ(pendingSourceIndex - lastSourceIndex);\n lastSourceIndex = pendingSourceIndex;\n appendBase64VLQ(pendingSourceLine - lastSourceLine);\n lastSourceLine = pendingSourceLine;\n appendBase64VLQ(pendingSourceCharacter - lastSourceCharacter);\n lastSourceCharacter = pendingSourceCharacter;\n if (hasPendingName) {\n appendBase64VLQ(pendingNameIndex - lastNameIndex);\n lastNameIndex = pendingNameIndex;\n }\n }\n hasLast = true;\n exit();\n }\n function flushMappingBuffer() {\n if (mappingCharCodes.length > 0) {\n mappings += String.fromCharCode.apply(void 0, mappingCharCodes);\n mappingCharCodes.length = 0;\n }\n }\n function toJSON() {\n commitPendingMapping();\n flushMappingBuffer();\n return {\n version: 3,\n file,\n sourceRoot,\n sources,\n names,\n mappings,\n sourcesContent\n };\n }\n function appendBase64VLQ(inValue) {\n if (inValue < 0) {\n inValue = (-inValue << 1) + 1;\n } else {\n inValue = inValue << 1;\n }\n do {\n let currentDigit = inValue & 31;\n inValue = inValue >> 5;\n if (inValue > 0) {\n currentDigit = currentDigit | 32;\n }\n appendMappingCharCode(base64FormatEncode(currentDigit));\n } while (inValue > 0);\n }\n}\nvar sourceMapCommentRegExpDontCareLineStart = /\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/;\nvar sourceMapCommentRegExp = /^\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/;\nvar whitespaceOrMapCommentRegExp = /^\\s*(\\/\\/[@#] .*)?$/;\nfunction getLineInfo(text, lineStarts) {\n return {\n getLineCount: () => lineStarts.length,\n getLineText: (line) => text.substring(lineStarts[line], lineStarts[line + 1])\n };\n}\nfunction tryGetSourceMappingURL(lineInfo) {\n for (let index = lineInfo.getLineCount() - 1; index >= 0; index--) {\n const line = lineInfo.getLineText(index);\n const comment = sourceMapCommentRegExp.exec(line);\n if (comment) {\n return comment[1].trimEnd();\n } else if (!line.match(whitespaceOrMapCommentRegExp)) {\n break;\n }\n }\n}\nfunction isStringOrNull(x) {\n return typeof x === \"string\" || x === null;\n}\nfunction isRawSourceMap(x) {\n return x !== null && typeof x === \"object\" && x.version === 3 && typeof x.file === \"string\" && typeof x.mappings === \"string\" && isArray(x.sources) && every(x.sources, isString) && (x.sourceRoot === void 0 || x.sourceRoot === null || typeof x.sourceRoot === \"string\") && (x.sourcesContent === void 0 || x.sourcesContent === null || isArray(x.sourcesContent) && every(x.sourcesContent, isStringOrNull)) && (x.names === void 0 || x.names === null || isArray(x.names) && every(x.names, isString));\n}\nfunction tryParseRawSourceMap(text) {\n try {\n const parsed = JSON.parse(text);\n if (isRawSourceMap(parsed)) {\n return parsed;\n }\n } catch {\n }\n return void 0;\n}\nfunction decodeMappings(mappings) {\n let done = false;\n let pos = 0;\n let generatedLine = 0;\n let generatedCharacter = 0;\n let sourceIndex = 0;\n let sourceLine = 0;\n let sourceCharacter = 0;\n let nameIndex = 0;\n let error2;\n return {\n get pos() {\n return pos;\n },\n get error() {\n return error2;\n },\n get state() {\n return captureMapping(\n /*hasSource*/\n true,\n /*hasName*/\n true\n );\n },\n next() {\n while (!done && pos < mappings.length) {\n const ch = mappings.charCodeAt(pos);\n if (ch === 59 /* semicolon */) {\n generatedLine++;\n generatedCharacter = 0;\n pos++;\n continue;\n }\n if (ch === 44 /* comma */) {\n pos++;\n continue;\n }\n let hasSource = false;\n let hasName = false;\n generatedCharacter += base64VLQFormatDecode();\n if (hasReportedError()) return stopIterating();\n if (generatedCharacter < 0) return setErrorAndStopIterating(\"Invalid generatedCharacter found\");\n if (!isSourceMappingSegmentEnd()) {\n hasSource = true;\n sourceIndex += base64VLQFormatDecode();\n if (hasReportedError()) return stopIterating();\n if (sourceIndex < 0) return setErrorAndStopIterating(\"Invalid sourceIndex found\");\n if (isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Format: No entries after sourceIndex\");\n sourceLine += base64VLQFormatDecode();\n if (hasReportedError()) return stopIterating();\n if (sourceLine < 0) return setErrorAndStopIterating(\"Invalid sourceLine found\");\n if (isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Format: No entries after sourceLine\");\n sourceCharacter += base64VLQFormatDecode();\n if (hasReportedError()) return stopIterating();\n if (sourceCharacter < 0) return setErrorAndStopIterating(\"Invalid sourceCharacter found\");\n if (!isSourceMappingSegmentEnd()) {\n hasName = true;\n nameIndex += base64VLQFormatDecode();\n if (hasReportedError()) return stopIterating();\n if (nameIndex < 0) return setErrorAndStopIterating(\"Invalid nameIndex found\");\n if (!isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Error Format: Entries after nameIndex\");\n }\n }\n return { value: captureMapping(hasSource, hasName), done };\n }\n return stopIterating();\n },\n [Symbol.iterator]() {\n return this;\n }\n };\n function captureMapping(hasSource, hasName) {\n return {\n generatedLine,\n generatedCharacter,\n sourceIndex: hasSource ? sourceIndex : void 0,\n sourceLine: hasSource ? sourceLine : void 0,\n sourceCharacter: hasSource ? sourceCharacter : void 0,\n nameIndex: hasName ? nameIndex : void 0\n };\n }\n function stopIterating() {\n done = true;\n return { value: void 0, done: true };\n }\n function setError(message) {\n if (error2 === void 0) {\n error2 = message;\n }\n }\n function setErrorAndStopIterating(message) {\n setError(message);\n return stopIterating();\n }\n function hasReportedError() {\n return error2 !== void 0;\n }\n function isSourceMappingSegmentEnd() {\n return pos === mappings.length || mappings.charCodeAt(pos) === 44 /* comma */ || mappings.charCodeAt(pos) === 59 /* semicolon */;\n }\n function base64VLQFormatDecode() {\n let moreDigits = true;\n let shiftCount = 0;\n let value = 0;\n for (; moreDigits; pos++) {\n if (pos >= mappings.length) return setError(\"Error in decoding base64VLQFormatDecode, past the mapping string\"), -1;\n const currentByte = base64FormatDecode(mappings.charCodeAt(pos));\n if (currentByte === -1) return setError(\"Invalid character in VLQ\"), -1;\n moreDigits = (currentByte & 32) !== 0;\n value = value | (currentByte & 31) << shiftCount;\n shiftCount += 5;\n }\n if ((value & 1) === 0) {\n value = value >> 1;\n } else {\n value = value >> 1;\n value = -value;\n }\n return value;\n }\n}\nfunction sameMapping(left, right) {\n return left === right || left.generatedLine === right.generatedLine && left.generatedCharacter === right.generatedCharacter && left.sourceIndex === right.sourceIndex && left.sourceLine === right.sourceLine && left.sourceCharacter === right.sourceCharacter && left.nameIndex === right.nameIndex;\n}\nfunction isSourceMapping(mapping) {\n return mapping.sourceIndex !== void 0 && mapping.sourceLine !== void 0 && mapping.sourceCharacter !== void 0;\n}\nfunction base64FormatEncode(value) {\n return value >= 0 && value < 26 ? 65 /* A */ + value : value >= 26 && value < 52 ? 97 /* a */ + value - 26 : value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 : value === 62 ? 43 /* plus */ : value === 63 ? 47 /* slash */ : Debug.fail(`${value}: not a base64 value`);\n}\nfunction base64FormatDecode(ch) {\n return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ : ch >= 97 /* a */ && ch <= 122 /* z */ ? ch - 97 /* a */ + 26 : ch >= 48 /* _0 */ && ch <= 57 /* _9 */ ? ch - 48 /* _0 */ + 52 : ch === 43 /* plus */ ? 62 : ch === 47 /* slash */ ? 63 : -1;\n}\nfunction isSourceMappedPosition(value) {\n return value.sourceIndex !== void 0 && value.sourcePosition !== void 0;\n}\nfunction sameMappedPosition(left, right) {\n return left.generatedPosition === right.generatedPosition && left.sourceIndex === right.sourceIndex && left.sourcePosition === right.sourcePosition;\n}\nfunction compareSourcePositions(left, right) {\n Debug.assert(left.sourceIndex === right.sourceIndex);\n return compareValues(left.sourcePosition, right.sourcePosition);\n}\nfunction compareGeneratedPositions(left, right) {\n return compareValues(left.generatedPosition, right.generatedPosition);\n}\nfunction getSourcePositionOfMapping(value) {\n return value.sourcePosition;\n}\nfunction getGeneratedPositionOfMapping(value) {\n return value.generatedPosition;\n}\nfunction createDocumentPositionMapper(host, map2, mapPath) {\n const mapDirectory = getDirectoryPath(mapPath);\n const sourceRoot = map2.sourceRoot ? getNormalizedAbsolutePath(map2.sourceRoot, mapDirectory) : mapDirectory;\n const generatedAbsoluteFilePath = getNormalizedAbsolutePath(map2.file, mapDirectory);\n const generatedFile = host.getSourceFileLike(generatedAbsoluteFilePath);\n const sourceFileAbsolutePaths = map2.sources.map((source) => getNormalizedAbsolutePath(source, sourceRoot));\n const sourceToSourceIndexMap = new Map(sourceFileAbsolutePaths.map((source, i) => [host.getCanonicalFileName(source), i]));\n let decodedMappings;\n let generatedMappings;\n let sourceMappings;\n return {\n getSourcePosition,\n getGeneratedPosition\n };\n function processMapping(mapping) {\n const generatedPosition = generatedFile !== void 0 ? getPositionOfLineAndCharacter(\n generatedFile,\n mapping.generatedLine,\n mapping.generatedCharacter,\n /*allowEdits*/\n true\n ) : -1;\n let source;\n let sourcePosition;\n if (isSourceMapping(mapping)) {\n const sourceFile = host.getSourceFileLike(sourceFileAbsolutePaths[mapping.sourceIndex]);\n source = map2.sources[mapping.sourceIndex];\n sourcePosition = sourceFile !== void 0 ? getPositionOfLineAndCharacter(\n sourceFile,\n mapping.sourceLine,\n mapping.sourceCharacter,\n /*allowEdits*/\n true\n ) : -1;\n }\n return {\n generatedPosition,\n source,\n sourceIndex: mapping.sourceIndex,\n sourcePosition,\n nameIndex: mapping.nameIndex\n };\n }\n function getDecodedMappings() {\n if (decodedMappings === void 0) {\n const decoder = decodeMappings(map2.mappings);\n const mappings = arrayFrom(decoder, processMapping);\n if (decoder.error !== void 0) {\n if (host.log) {\n host.log(`Encountered error while decoding sourcemap: ${decoder.error}`);\n }\n decodedMappings = emptyArray;\n } else {\n decodedMappings = mappings;\n }\n }\n return decodedMappings;\n }\n function getSourceMappings(sourceIndex) {\n if (sourceMappings === void 0) {\n const lists = [];\n for (const mapping of getDecodedMappings()) {\n if (!isSourceMappedPosition(mapping)) continue;\n let list = lists[mapping.sourceIndex];\n if (!list) lists[mapping.sourceIndex] = list = [];\n list.push(mapping);\n }\n sourceMappings = lists.map((list) => sortAndDeduplicate(list, compareSourcePositions, sameMappedPosition));\n }\n return sourceMappings[sourceIndex];\n }\n function getGeneratedMappings() {\n if (generatedMappings === void 0) {\n const list = [];\n for (const mapping of getDecodedMappings()) {\n list.push(mapping);\n }\n generatedMappings = sortAndDeduplicate(list, compareGeneratedPositions, sameMappedPosition);\n }\n return generatedMappings;\n }\n function getGeneratedPosition(loc) {\n const sourceIndex = sourceToSourceIndexMap.get(host.getCanonicalFileName(loc.fileName));\n if (sourceIndex === void 0) return loc;\n const sourceMappings2 = getSourceMappings(sourceIndex);\n if (!some(sourceMappings2)) return loc;\n let targetIndex = binarySearchKey(sourceMappings2, loc.pos, getSourcePositionOfMapping, compareValues);\n if (targetIndex < 0) {\n targetIndex = ~targetIndex;\n }\n const mapping = sourceMappings2[targetIndex];\n if (mapping === void 0 || mapping.sourceIndex !== sourceIndex) {\n return loc;\n }\n return { fileName: generatedAbsoluteFilePath, pos: mapping.generatedPosition };\n }\n function getSourcePosition(loc) {\n const generatedMappings2 = getGeneratedMappings();\n if (!some(generatedMappings2)) return loc;\n let targetIndex = binarySearchKey(generatedMappings2, loc.pos, getGeneratedPositionOfMapping, compareValues);\n if (targetIndex < 0) {\n targetIndex = ~targetIndex;\n }\n const mapping = generatedMappings2[targetIndex];\n if (mapping === void 0 || !isSourceMappedPosition(mapping)) {\n return loc;\n }\n return { fileName: sourceFileAbsolutePaths[mapping.sourceIndex], pos: mapping.sourcePosition };\n }\n}\nvar identitySourceMapConsumer = {\n getSourcePosition: identity,\n getGeneratedPosition: identity\n};\n\n// src/compiler/transformers/utilities.ts\nfunction getOriginalNodeId(node) {\n node = getOriginalNode(node);\n return node ? getNodeId(node) : 0;\n}\nfunction containsDefaultReference(node) {\n if (!node) return false;\n if (!isNamedImports(node) && !isNamedExports(node)) return false;\n return some(node.elements, isNamedDefaultReference);\n}\nfunction isNamedDefaultReference(e) {\n return moduleExportNameIsDefault(e.propertyName || e.name);\n}\nfunction chainBundle(context, transformSourceFile) {\n return transformSourceFileOrBundle;\n function transformSourceFileOrBundle(node) {\n return node.kind === 308 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node);\n }\n function transformBundle(node) {\n return context.factory.createBundle(map(node.sourceFiles, transformSourceFile));\n }\n}\nfunction getExportNeedsImportStarHelper(node) {\n return !!getNamespaceDeclarationNode(node);\n}\nfunction getImportNeedsImportStarHelper(node) {\n if (!!getNamespaceDeclarationNode(node)) {\n return true;\n }\n const bindings = node.importClause && node.importClause.namedBindings;\n if (!bindings) {\n return false;\n }\n if (!isNamedImports(bindings)) return false;\n let defaultRefCount = 0;\n for (const binding of bindings.elements) {\n if (isNamedDefaultReference(binding)) {\n defaultRefCount++;\n }\n }\n return defaultRefCount > 0 && defaultRefCount !== bindings.elements.length || !!(bindings.elements.length - defaultRefCount) && isDefaultImport(node);\n}\nfunction getImportNeedsImportDefaultHelper(node) {\n return !getImportNeedsImportStarHelper(node) && (isDefaultImport(node) || !!node.importClause && isNamedImports(node.importClause.namedBindings) && containsDefaultReference(node.importClause.namedBindings));\n}\nfunction collectExternalModuleInfo(context, sourceFile) {\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const externalImports = [];\n const exportSpecifiers = new IdentifierNameMultiMap();\n const exportedBindings = [];\n const uniqueExports = /* @__PURE__ */ new Map();\n const exportedFunctions = /* @__PURE__ */ new Set();\n let exportedNames;\n let hasExportDefault = false;\n let exportEquals;\n let hasExportStarsToExportValues = false;\n let hasImportStar = false;\n let hasImportDefault = false;\n for (const node of sourceFile.statements) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n externalImports.push(node);\n if (!hasImportStar && getImportNeedsImportStarHelper(node)) {\n hasImportStar = true;\n }\n if (!hasImportDefault && getImportNeedsImportDefaultHelper(node)) {\n hasImportDefault = true;\n }\n break;\n case 272 /* ImportEqualsDeclaration */:\n if (node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n externalImports.push(node);\n }\n break;\n case 279 /* ExportDeclaration */:\n if (node.moduleSpecifier) {\n if (!node.exportClause) {\n externalImports.push(node);\n hasExportStarsToExportValues = true;\n } else {\n externalImports.push(node);\n if (isNamedExports(node.exportClause)) {\n addExportedNamesForExportDeclaration(node);\n hasImportDefault || (hasImportDefault = containsDefaultReference(node.exportClause));\n } else {\n const name = node.exportClause.name;\n const nameText = moduleExportNameTextUnescaped(name);\n if (!uniqueExports.get(nameText)) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n uniqueExports.set(nameText, true);\n exportedNames = append(exportedNames, name);\n }\n hasImportStar = true;\n }\n }\n } else {\n addExportedNamesForExportDeclaration(node);\n }\n break;\n case 278 /* ExportAssignment */:\n if (node.isExportEquals && !exportEquals) {\n exportEquals = node;\n }\n break;\n case 244 /* VariableStatement */:\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n for (const decl of node.declarationList.declarations) {\n exportedNames = collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings);\n }\n }\n break;\n case 263 /* FunctionDeclaration */:\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n addExportedFunctionDeclaration(\n node,\n /*name*/\n void 0,\n hasSyntacticModifier(node, 2048 /* Default */)\n );\n }\n break;\n case 264 /* ClassDeclaration */:\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n if (hasSyntacticModifier(node, 2048 /* Default */)) {\n if (!hasExportDefault) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), context.factory.getDeclarationName(node));\n hasExportDefault = true;\n }\n } else {\n const name = node.name;\n if (name && !uniqueExports.get(idText(name))) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n uniqueExports.set(idText(name), true);\n exportedNames = append(exportedNames, name);\n }\n }\n }\n break;\n }\n }\n const externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(context.factory, context.getEmitHelperFactory(), sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault);\n if (externalHelpersImportDeclaration) {\n externalImports.unshift(externalHelpersImportDeclaration);\n }\n return { externalImports, exportSpecifiers, exportEquals, hasExportStarsToExportValues, exportedBindings, exportedNames, exportedFunctions, externalHelpersImportDeclaration };\n function addExportedNamesForExportDeclaration(node) {\n for (const specifier of cast(node.exportClause, isNamedExports).elements) {\n const specifierNameText = moduleExportNameTextUnescaped(specifier.name);\n if (!uniqueExports.get(specifierNameText)) {\n const name = specifier.propertyName || specifier.name;\n if (name.kind !== 11 /* StringLiteral */) {\n if (!node.moduleSpecifier) {\n exportSpecifiers.add(name, specifier);\n }\n const decl = resolver.getReferencedImportDeclaration(name) || resolver.getReferencedValueDeclaration(name);\n if (decl) {\n if (decl.kind === 263 /* FunctionDeclaration */) {\n addExportedFunctionDeclaration(decl, specifier.name, moduleExportNameIsDefault(specifier.name));\n continue;\n }\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), specifier.name);\n }\n }\n uniqueExports.set(specifierNameText, true);\n exportedNames = append(exportedNames, specifier.name);\n }\n }\n }\n function addExportedFunctionDeclaration(node, name, isDefault) {\n exportedFunctions.add(getOriginalNode(node, isFunctionDeclaration));\n if (isDefault) {\n if (!hasExportDefault) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name ?? context.factory.getDeclarationName(node));\n hasExportDefault = true;\n }\n } else {\n name ?? (name = node.name);\n const nameText = moduleExportNameTextUnescaped(name);\n if (!uniqueExports.get(nameText)) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n uniqueExports.set(nameText, true);\n }\n }\n }\n}\nfunction collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings) {\n if (isBindingPattern(decl.name)) {\n for (const element of decl.name.elements) {\n if (!isOmittedExpression(element)) {\n exportedNames = collectExportedVariableInfo(element, uniqueExports, exportedNames, exportedBindings);\n }\n }\n } else if (!isGeneratedIdentifier(decl.name)) {\n const text = idText(decl.name);\n if (!uniqueExports.get(text)) {\n uniqueExports.set(text, true);\n exportedNames = append(exportedNames, decl.name);\n if (isLocalName(decl.name)) {\n multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), decl.name);\n }\n }\n }\n return exportedNames;\n}\nfunction multiMapSparseArrayAdd(map2, key, value) {\n let values = map2[key];\n if (values) {\n values.push(value);\n } else {\n map2[key] = values = [value];\n }\n return values;\n}\nvar IdentifierNameMap = class _IdentifierNameMap {\n constructor() {\n this._map = /* @__PURE__ */ new Map();\n }\n get size() {\n return this._map.size;\n }\n has(key) {\n return this._map.has(_IdentifierNameMap.toKey(key));\n }\n get(key) {\n return this._map.get(_IdentifierNameMap.toKey(key));\n }\n set(key, value) {\n this._map.set(_IdentifierNameMap.toKey(key), value);\n return this;\n }\n delete(key) {\n var _a;\n return ((_a = this._map) == null ? void 0 : _a.delete(_IdentifierNameMap.toKey(key))) ?? false;\n }\n clear() {\n this._map.clear();\n }\n values() {\n return this._map.values();\n }\n static toKey(name) {\n if (isGeneratedPrivateIdentifier(name) || isGeneratedIdentifier(name)) {\n const autoGenerate = name.emitNode.autoGenerate;\n if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) {\n const node = getNodeForGeneratedName(name);\n const baseName = isMemberName(node) && node !== name ? _IdentifierNameMap.toKey(node) : `(generated@${getNodeId(node)})`;\n return formatGeneratedName(\n /*privateName*/\n false,\n autoGenerate.prefix,\n baseName,\n autoGenerate.suffix,\n _IdentifierNameMap.toKey\n );\n } else {\n const baseName = `(auto@${autoGenerate.id})`;\n return formatGeneratedName(\n /*privateName*/\n false,\n autoGenerate.prefix,\n baseName,\n autoGenerate.suffix,\n _IdentifierNameMap.toKey\n );\n }\n }\n if (isPrivateIdentifier(name)) {\n return idText(name).slice(1);\n }\n return idText(name);\n }\n};\nvar IdentifierNameMultiMap = class extends IdentifierNameMap {\n add(key, value) {\n let values = this.get(key);\n if (values) {\n values.push(value);\n } else {\n this.set(key, values = [value]);\n }\n return values;\n }\n remove(key, value) {\n const values = this.get(key);\n if (values) {\n unorderedRemoveItem(values, value);\n if (!values.length) {\n this.delete(key);\n }\n }\n }\n};\nfunction isSimpleCopiableExpression(expression) {\n return isStringLiteralLike(expression) || expression.kind === 9 /* NumericLiteral */ || isKeyword(expression.kind) || isIdentifier(expression);\n}\nfunction isSimpleInlineableExpression(expression) {\n return !isIdentifier(expression) && isSimpleCopiableExpression(expression);\n}\nfunction isCompoundAssignment(kind) {\n return kind >= 65 /* FirstCompoundAssignment */ && kind <= 79 /* LastCompoundAssignment */;\n}\nfunction getNonAssignmentOperatorForCompoundAssignment(kind) {\n switch (kind) {\n case 65 /* PlusEqualsToken */:\n return 40 /* PlusToken */;\n case 66 /* MinusEqualsToken */:\n return 41 /* MinusToken */;\n case 67 /* AsteriskEqualsToken */:\n return 42 /* AsteriskToken */;\n case 68 /* AsteriskAsteriskEqualsToken */:\n return 43 /* AsteriskAsteriskToken */;\n case 69 /* SlashEqualsToken */:\n return 44 /* SlashToken */;\n case 70 /* PercentEqualsToken */:\n return 45 /* PercentToken */;\n case 71 /* LessThanLessThanEqualsToken */:\n return 48 /* LessThanLessThanToken */;\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n return 49 /* GreaterThanGreaterThanToken */;\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n return 50 /* GreaterThanGreaterThanGreaterThanToken */;\n case 74 /* AmpersandEqualsToken */:\n return 51 /* AmpersandToken */;\n case 75 /* BarEqualsToken */:\n return 52 /* BarToken */;\n case 79 /* CaretEqualsToken */:\n return 53 /* CaretToken */;\n case 76 /* BarBarEqualsToken */:\n return 57 /* BarBarToken */;\n case 77 /* AmpersandAmpersandEqualsToken */:\n return 56 /* AmpersandAmpersandToken */;\n case 78 /* QuestionQuestionEqualsToken */:\n return 61 /* QuestionQuestionToken */;\n }\n}\nfunction getSuperCallFromStatement(statement) {\n if (!isExpressionStatement(statement)) {\n return void 0;\n }\n const expression = skipParentheses(statement.expression);\n return isSuperCall(expression) ? expression : void 0;\n}\nfunction findSuperStatementIndexPathWorker(statements, start, indices) {\n for (let i = start; i < statements.length; i += 1) {\n const statement = statements[i];\n if (getSuperCallFromStatement(statement)) {\n indices.unshift(i);\n return true;\n } else if (isTryStatement(statement) && findSuperStatementIndexPathWorker(statement.tryBlock.statements, 0, indices)) {\n indices.unshift(i);\n return true;\n }\n }\n return false;\n}\nfunction findSuperStatementIndexPath(statements, start) {\n const indices = [];\n findSuperStatementIndexPathWorker(statements, start, indices);\n return indices;\n}\nfunction getProperties(node, requireInitializer, isStatic2) {\n return filter(node.members, (m) => isInitializedOrStaticProperty(m, requireInitializer, isStatic2));\n}\nfunction isStaticPropertyDeclarationOrClassStaticBlockDeclaration(element) {\n return isStaticPropertyDeclaration(element) || isClassStaticBlockDeclaration(element);\n}\nfunction getStaticPropertiesAndClassStaticBlock(node) {\n return filter(node.members, isStaticPropertyDeclarationOrClassStaticBlockDeclaration);\n}\nfunction isInitializedOrStaticProperty(member, requireInitializer, isStatic2) {\n return isPropertyDeclaration(member) && (!!member.initializer || !requireInitializer) && hasStaticModifier(member) === isStatic2;\n}\nfunction isStaticPropertyDeclaration(member) {\n return isPropertyDeclaration(member) && hasStaticModifier(member);\n}\nfunction isInitializedProperty(member) {\n return member.kind === 173 /* PropertyDeclaration */ && member.initializer !== void 0;\n}\nfunction isNonStaticMethodOrAccessorWithPrivateName(member) {\n return !isStatic(member) && (isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member)) && isPrivateIdentifier(member.name);\n}\nfunction getDecoratorsOfParameters(node) {\n let decorators;\n if (node) {\n const parameters = node.parameters;\n const firstParameterIsThis = parameters.length > 0 && parameterIsThisKeyword(parameters[0]);\n const firstParameterOffset = firstParameterIsThis ? 1 : 0;\n const numParameters = firstParameterIsThis ? parameters.length - 1 : parameters.length;\n for (let i = 0; i < numParameters; i++) {\n const parameter = parameters[i + firstParameterOffset];\n if (decorators || hasDecorators(parameter)) {\n if (!decorators) {\n decorators = new Array(numParameters);\n }\n decorators[i] = getDecorators(parameter);\n }\n }\n }\n return decorators;\n}\nfunction getAllDecoratorsOfClass(node, useLegacyDecorators) {\n const decorators = getDecorators(node);\n const parameters = useLegacyDecorators ? getDecoratorsOfParameters(getFirstConstructorWithBody(node)) : void 0;\n if (!some(decorators) && !some(parameters)) {\n return void 0;\n }\n return {\n decorators,\n parameters\n };\n}\nfunction getAllDecoratorsOfClassElement(member, parent2, useLegacyDecorators) {\n switch (member.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n if (!useLegacyDecorators) {\n return getAllDecoratorsOfMethod(\n member,\n /*useLegacyDecorators*/\n false\n );\n }\n return getAllDecoratorsOfAccessors(\n member,\n parent2,\n /*useLegacyDecorators*/\n true\n );\n case 175 /* MethodDeclaration */:\n return getAllDecoratorsOfMethod(member, useLegacyDecorators);\n case 173 /* PropertyDeclaration */:\n return getAllDecoratorsOfProperty(member);\n default:\n return void 0;\n }\n}\nfunction getAllDecoratorsOfAccessors(accessor, parent2, useLegacyDecorators) {\n if (!accessor.body) {\n return void 0;\n }\n const { firstAccessor, secondAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(parent2.members, accessor);\n const firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0;\n if (!firstAccessorWithDecorators || accessor !== firstAccessorWithDecorators) {\n return void 0;\n }\n const decorators = getDecorators(firstAccessorWithDecorators);\n const parameters = useLegacyDecorators ? getDecoratorsOfParameters(setAccessor) : void 0;\n if (!some(decorators) && !some(parameters)) {\n return void 0;\n }\n return {\n decorators,\n parameters,\n getDecorators: getAccessor && getDecorators(getAccessor),\n setDecorators: setAccessor && getDecorators(setAccessor)\n };\n}\nfunction getAllDecoratorsOfMethod(method, useLegacyDecorators) {\n if (!method.body) {\n return void 0;\n }\n const decorators = getDecorators(method);\n const parameters = useLegacyDecorators ? getDecoratorsOfParameters(method) : void 0;\n if (!some(decorators) && !some(parameters)) {\n return void 0;\n }\n return { decorators, parameters };\n}\nfunction getAllDecoratorsOfProperty(property) {\n const decorators = getDecorators(property);\n if (!some(decorators)) {\n return void 0;\n }\n return { decorators };\n}\nfunction walkUpLexicalEnvironments(env, cb) {\n while (env) {\n const result = cb(env);\n if (result !== void 0) return result;\n env = env.previous;\n }\n}\nfunction newPrivateEnvironment(data) {\n return { data };\n}\nfunction getPrivateIdentifier(privateEnv, name) {\n var _a, _b;\n return isGeneratedPrivateIdentifier(name) ? (_a = privateEnv == null ? void 0 : privateEnv.generatedIdentifiers) == null ? void 0 : _a.get(getNodeForGeneratedName(name)) : (_b = privateEnv == null ? void 0 : privateEnv.identifiers) == null ? void 0 : _b.get(name.escapedText);\n}\nfunction setPrivateIdentifier(privateEnv, name, entry) {\n if (isGeneratedPrivateIdentifier(name)) {\n privateEnv.generatedIdentifiers ?? (privateEnv.generatedIdentifiers = /* @__PURE__ */ new Map());\n privateEnv.generatedIdentifiers.set(getNodeForGeneratedName(name), entry);\n } else {\n privateEnv.identifiers ?? (privateEnv.identifiers = /* @__PURE__ */ new Map());\n privateEnv.identifiers.set(name.escapedText, entry);\n }\n}\nfunction accessPrivateIdentifier(env, name) {\n return walkUpLexicalEnvironments(env, (env2) => getPrivateIdentifier(env2.privateEnv, name));\n}\nfunction isSimpleParameter(node) {\n return !node.initializer && isIdentifier(node.name);\n}\nfunction isSimpleParameterList(nodes) {\n return every(nodes, isSimpleParameter);\n}\nfunction rewriteModuleSpecifier(node, compilerOptions) {\n if (!node || !isStringLiteral(node) || !shouldRewriteModuleSpecifier(node.text, compilerOptions)) {\n return node;\n }\n const updatedText = changeExtension(node.text, getOutputExtension(node.text, compilerOptions));\n return updatedText !== node.text ? setOriginalNode(setTextRange(factory.createStringLiteral(updatedText, node.singleQuote), node), node) : node;\n}\n\n// src/compiler/transformers/destructuring.ts\nvar FlattenLevel = /* @__PURE__ */ ((FlattenLevel2) => {\n FlattenLevel2[FlattenLevel2[\"All\"] = 0] = \"All\";\n FlattenLevel2[FlattenLevel2[\"ObjectRest\"] = 1] = \"ObjectRest\";\n return FlattenLevel2;\n})(FlattenLevel || {});\nfunction flattenDestructuringAssignment(node, visitor, context, level, needsValue, createAssignmentCallback) {\n let location = node;\n let value;\n if (isDestructuringAssignment(node)) {\n value = node.right;\n while (isEmptyArrayLiteral(node.left) || isEmptyObjectLiteral(node.left)) {\n if (isDestructuringAssignment(value)) {\n location = node = value;\n value = node.right;\n } else {\n return Debug.checkDefined(visitNode(value, visitor, isExpression));\n }\n }\n }\n let expressions;\n const flattenContext = {\n context,\n level,\n downlevelIteration: !!context.getCompilerOptions().downlevelIteration,\n hoistTempVariables: true,\n emitExpression,\n emitBindingOrAssignment,\n createArrayBindingOrAssignmentPattern: (elements) => makeArrayAssignmentPattern(context.factory, elements),\n createObjectBindingOrAssignmentPattern: (elements) => makeObjectAssignmentPattern(context.factory, elements),\n createArrayBindingOrAssignmentElement: makeAssignmentElement,\n visitor\n };\n if (value) {\n value = visitNode(value, visitor, isExpression);\n Debug.assert(value);\n if (isIdentifier(value) && bindingOrAssignmentElementAssignsToName(node, value.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node)) {\n value = ensureIdentifier(\n flattenContext,\n value,\n /*reuseIdentifierExpressions*/\n false,\n location\n );\n } else if (needsValue) {\n value = ensureIdentifier(\n flattenContext,\n value,\n /*reuseIdentifierExpressions*/\n true,\n location\n );\n } else if (nodeIsSynthesized(node)) {\n location = value;\n }\n }\n flattenBindingOrAssignmentElement(\n flattenContext,\n node,\n value,\n location,\n /*skipInitializer*/\n isDestructuringAssignment(node)\n );\n if (value && needsValue) {\n if (!some(expressions)) {\n return value;\n }\n expressions.push(value);\n }\n return context.factory.inlineExpressions(expressions) || context.factory.createOmittedExpression();\n function emitExpression(expression) {\n expressions = append(expressions, expression);\n }\n function emitBindingOrAssignment(target, value2, location2, original) {\n Debug.assertNode(target, createAssignmentCallback ? isIdentifier : isExpression);\n const expression = createAssignmentCallback ? createAssignmentCallback(target, value2, location2) : setTextRange(\n context.factory.createAssignment(Debug.checkDefined(visitNode(target, visitor, isExpression)), value2),\n location2\n );\n expression.original = original;\n emitExpression(expression);\n }\n}\nfunction bindingOrAssignmentElementAssignsToName(element, escapedName) {\n const target = getTargetOfBindingOrAssignmentElement(element);\n if (isBindingOrAssignmentPattern(target)) {\n return bindingOrAssignmentPatternAssignsToName(target, escapedName);\n } else if (isIdentifier(target)) {\n return target.escapedText === escapedName;\n }\n return false;\n}\nfunction bindingOrAssignmentPatternAssignsToName(pattern, escapedName) {\n const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n for (const element of elements) {\n if (bindingOrAssignmentElementAssignsToName(element, escapedName)) {\n return true;\n }\n }\n return false;\n}\nfunction bindingOrAssignmentElementContainsNonLiteralComputedName(element) {\n const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element);\n if (propertyName && isComputedPropertyName(propertyName) && !isLiteralExpression(propertyName.expression)) {\n return true;\n }\n const target = getTargetOfBindingOrAssignmentElement(element);\n return !!target && isBindingOrAssignmentPattern(target) && bindingOrAssignmentPatternContainsNonLiteralComputedName(target);\n}\nfunction bindingOrAssignmentPatternContainsNonLiteralComputedName(pattern) {\n return !!forEach(getElementsOfBindingOrAssignmentPattern(pattern), bindingOrAssignmentElementContainsNonLiteralComputedName);\n}\nfunction flattenDestructuringBinding(node, visitor, context, level, rval, hoistTempVariables = false, skipInitializer) {\n let pendingExpressions;\n const pendingDeclarations = [];\n const declarations = [];\n const flattenContext = {\n context,\n level,\n downlevelIteration: !!context.getCompilerOptions().downlevelIteration,\n hoistTempVariables,\n emitExpression,\n emitBindingOrAssignment,\n createArrayBindingOrAssignmentPattern: (elements) => makeArrayBindingPattern(context.factory, elements),\n createObjectBindingOrAssignmentPattern: (elements) => makeObjectBindingPattern(context.factory, elements),\n createArrayBindingOrAssignmentElement: (name) => makeBindingElement(context.factory, name),\n visitor\n };\n if (isVariableDeclaration(node)) {\n let initializer = getInitializerOfBindingOrAssignmentElement(node);\n if (initializer && (isIdentifier(initializer) && bindingOrAssignmentElementAssignsToName(node, initializer.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node))) {\n initializer = ensureIdentifier(\n flattenContext,\n Debug.checkDefined(visitNode(initializer, flattenContext.visitor, isExpression)),\n /*reuseIdentifierExpressions*/\n false,\n initializer\n );\n node = context.factory.updateVariableDeclaration(\n node,\n node.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n );\n }\n }\n flattenBindingOrAssignmentElement(flattenContext, node, rval, node, skipInitializer);\n if (pendingExpressions) {\n const temp = context.factory.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n if (hoistTempVariables) {\n const value = context.factory.inlineExpressions(pendingExpressions);\n pendingExpressions = void 0;\n emitBindingOrAssignment(\n temp,\n value,\n /*location*/\n void 0,\n /*original*/\n void 0\n );\n } else {\n context.hoistVariableDeclaration(temp);\n const pendingDeclaration = last(pendingDeclarations);\n pendingDeclaration.pendingExpressions = append(\n pendingDeclaration.pendingExpressions,\n context.factory.createAssignment(temp, pendingDeclaration.value)\n );\n addRange(pendingDeclaration.pendingExpressions, pendingExpressions);\n pendingDeclaration.value = temp;\n }\n }\n for (const { pendingExpressions: pendingExpressions2, name, value, location, original } of pendingDeclarations) {\n const variable = context.factory.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n pendingExpressions2 ? context.factory.inlineExpressions(append(pendingExpressions2, value)) : value\n );\n variable.original = original;\n setTextRange(variable, location);\n declarations.push(variable);\n }\n return declarations;\n function emitExpression(value) {\n pendingExpressions = append(pendingExpressions, value);\n }\n function emitBindingOrAssignment(target, value, location, original) {\n Debug.assertNode(target, isBindingName);\n if (pendingExpressions) {\n value = context.factory.inlineExpressions(append(pendingExpressions, value));\n pendingExpressions = void 0;\n }\n pendingDeclarations.push({ pendingExpressions, name: target, value, location, original });\n }\n}\nfunction flattenBindingOrAssignmentElement(flattenContext, element, value, location, skipInitializer) {\n const bindingTarget = getTargetOfBindingOrAssignmentElement(element);\n if (!skipInitializer) {\n const initializer = visitNode(getInitializerOfBindingOrAssignmentElement(element), flattenContext.visitor, isExpression);\n if (initializer) {\n if (value) {\n value = createDefaultValueCheck(flattenContext, value, initializer, location);\n if (!isSimpleInlineableExpression(initializer) && isBindingOrAssignmentPattern(bindingTarget)) {\n value = ensureIdentifier(\n flattenContext,\n value,\n /*reuseIdentifierExpressions*/\n true,\n location\n );\n }\n } else {\n value = initializer;\n }\n } else if (!value) {\n value = flattenContext.context.factory.createVoidZero();\n }\n }\n if (isObjectBindingOrAssignmentPattern(bindingTarget)) {\n flattenObjectBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location);\n } else if (isArrayBindingOrAssignmentPattern(bindingTarget)) {\n flattenArrayBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location);\n } else {\n flattenContext.emitBindingOrAssignment(\n bindingTarget,\n value,\n location,\n /*original*/\n element\n );\n }\n}\nfunction flattenObjectBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) {\n const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n const numElements = elements.length;\n if (numElements !== 1) {\n const reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0;\n value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location);\n }\n let bindingElements;\n let computedTempVariables;\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n if (!getRestIndicatorOfBindingOrAssignmentElement(element)) {\n const propertyName = getPropertyNameOfBindingOrAssignmentElement(element);\n if (flattenContext.level >= 1 /* ObjectRest */ && !(element.transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !(getTargetOfBindingOrAssignmentElement(element).transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !isComputedPropertyName(propertyName)) {\n bindingElements = append(bindingElements, visitNode(element, flattenContext.visitor, isBindingOrAssignmentElement));\n } else {\n if (bindingElements) {\n flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n bindingElements = void 0;\n }\n const rhsValue = createDestructuringPropertyAccess(flattenContext, value, propertyName);\n if (isComputedPropertyName(propertyName)) {\n computedTempVariables = append(computedTempVariables, rhsValue.argumentExpression);\n }\n flattenBindingOrAssignmentElement(\n flattenContext,\n element,\n rhsValue,\n /*location*/\n element\n );\n }\n } else if (i === numElements - 1) {\n if (bindingElements) {\n flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n bindingElements = void 0;\n }\n const rhsValue = flattenContext.context.getEmitHelperFactory().createRestHelper(value, elements, computedTempVariables, pattern);\n flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, element);\n }\n }\n if (bindingElements) {\n flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n }\n}\nfunction flattenArrayBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) {\n const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n const numElements = elements.length;\n if (flattenContext.level < 1 /* ObjectRest */ && flattenContext.downlevelIteration) {\n value = ensureIdentifier(\n flattenContext,\n setTextRange(\n flattenContext.context.getEmitHelperFactory().createReadHelper(\n value,\n numElements > 0 && getRestIndicatorOfBindingOrAssignmentElement(elements[numElements - 1]) ? void 0 : numElements\n ),\n location\n ),\n /*reuseIdentifierExpressions*/\n false,\n location\n );\n } else if (numElements !== 1 && (flattenContext.level < 1 /* ObjectRest */ || numElements === 0) || every(elements, isOmittedExpression)) {\n const reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0;\n value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location);\n }\n let bindingElements;\n let restContainingElements;\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n if (flattenContext.level >= 1 /* ObjectRest */) {\n if (element.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || flattenContext.hasTransformedPriorElement && !isSimpleBindingOrAssignmentElement(element)) {\n flattenContext.hasTransformedPriorElement = true;\n const temp = flattenContext.context.factory.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n if (flattenContext.hoistTempVariables) {\n flattenContext.context.hoistVariableDeclaration(temp);\n }\n restContainingElements = append(restContainingElements, [temp, element]);\n bindingElements = append(bindingElements, flattenContext.createArrayBindingOrAssignmentElement(temp));\n } else {\n bindingElements = append(bindingElements, element);\n }\n } else if (isOmittedExpression(element)) {\n continue;\n } else if (!getRestIndicatorOfBindingOrAssignmentElement(element)) {\n const rhsValue = flattenContext.context.factory.createElementAccessExpression(value, i);\n flattenBindingOrAssignmentElement(\n flattenContext,\n element,\n rhsValue,\n /*location*/\n element\n );\n } else if (i === numElements - 1) {\n const rhsValue = flattenContext.context.factory.createArraySliceCall(value, i);\n flattenBindingOrAssignmentElement(\n flattenContext,\n element,\n rhsValue,\n /*location*/\n element\n );\n }\n }\n if (bindingElements) {\n flattenContext.emitBindingOrAssignment(flattenContext.createArrayBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n }\n if (restContainingElements) {\n for (const [id, element] of restContainingElements) {\n flattenBindingOrAssignmentElement(flattenContext, element, id, element);\n }\n }\n}\nfunction isSimpleBindingOrAssignmentElement(element) {\n const target = getTargetOfBindingOrAssignmentElement(element);\n if (!target || isOmittedExpression(target)) return true;\n const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element);\n if (propertyName && !isPropertyNameLiteral(propertyName)) return false;\n const initializer = getInitializerOfBindingOrAssignmentElement(element);\n if (initializer && !isSimpleInlineableExpression(initializer)) return false;\n if (isBindingOrAssignmentPattern(target)) return every(getElementsOfBindingOrAssignmentPattern(target), isSimpleBindingOrAssignmentElement);\n return isIdentifier(target);\n}\nfunction createDefaultValueCheck(flattenContext, value, defaultValue, location) {\n value = ensureIdentifier(\n flattenContext,\n value,\n /*reuseIdentifierExpressions*/\n true,\n location\n );\n return flattenContext.context.factory.createConditionalExpression(\n flattenContext.context.factory.createTypeCheck(value, \"undefined\"),\n /*questionToken*/\n void 0,\n defaultValue,\n /*colonToken*/\n void 0,\n value\n );\n}\nfunction createDestructuringPropertyAccess(flattenContext, value, propertyName) {\n const { factory: factory2 } = flattenContext.context;\n if (isComputedPropertyName(propertyName)) {\n const argumentExpression = ensureIdentifier(\n flattenContext,\n Debug.checkDefined(visitNode(propertyName.expression, flattenContext.visitor, isExpression)),\n /*reuseIdentifierExpressions*/\n false,\n /*location*/\n propertyName\n );\n return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);\n } else if (isStringOrNumericLiteralLike(propertyName) || isBigIntLiteral(propertyName)) {\n const argumentExpression = factory2.cloneNode(propertyName);\n return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);\n } else {\n const name = flattenContext.context.factory.createIdentifier(idText(propertyName));\n return flattenContext.context.factory.createPropertyAccessExpression(value, name);\n }\n}\nfunction ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location) {\n if (isIdentifier(value) && reuseIdentifierExpressions) {\n return value;\n } else {\n const temp = flattenContext.context.factory.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n if (flattenContext.hoistTempVariables) {\n flattenContext.context.hoistVariableDeclaration(temp);\n flattenContext.emitExpression(setTextRange(flattenContext.context.factory.createAssignment(temp, value), location));\n } else {\n flattenContext.emitBindingOrAssignment(\n temp,\n value,\n location,\n /*original*/\n void 0\n );\n }\n return temp;\n }\n}\nfunction makeArrayBindingPattern(factory2, elements) {\n Debug.assertEachNode(elements, isArrayBindingElement);\n return factory2.createArrayBindingPattern(elements);\n}\nfunction makeArrayAssignmentPattern(factory2, elements) {\n Debug.assertEachNode(elements, isArrayBindingOrAssignmentElement);\n return factory2.createArrayLiteralExpression(map(elements, factory2.converters.convertToArrayAssignmentElement));\n}\nfunction makeObjectBindingPattern(factory2, elements) {\n Debug.assertEachNode(elements, isBindingElement);\n return factory2.createObjectBindingPattern(elements);\n}\nfunction makeObjectAssignmentPattern(factory2, elements) {\n Debug.assertEachNode(elements, isObjectBindingOrAssignmentElement);\n return factory2.createObjectLiteralExpression(map(elements, factory2.converters.convertToObjectAssignmentElement));\n}\nfunction makeBindingElement(factory2, name) {\n return factory2.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n /*propertyName*/\n void 0,\n name\n );\n}\nfunction makeAssignmentElement(name) {\n return name;\n}\n\n// src/compiler/transformers/classThis.ts\nfunction createClassThisAssignmentBlock(factory2, classThis, thisExpression = factory2.createThis()) {\n const expression = factory2.createAssignment(classThis, thisExpression);\n const statement = factory2.createExpressionStatement(expression);\n const body = factory2.createBlock(\n [statement],\n /*multiLine*/\n false\n );\n const block = factory2.createClassStaticBlockDeclaration(body);\n getOrCreateEmitNode(block).classThis = classThis;\n return block;\n}\nfunction isClassThisAssignmentBlock(node) {\n var _a;\n if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) {\n return false;\n }\n const statement = node.body.statements[0];\n return isExpressionStatement(statement) && isAssignmentExpression(\n statement.expression,\n /*excludeCompoundAssignment*/\n true\n ) && isIdentifier(statement.expression.left) && ((_a = node.emitNode) == null ? void 0 : _a.classThis) === statement.expression.left && statement.expression.right.kind === 110 /* ThisKeyword */;\n}\nfunction classHasClassThisAssignment(node) {\n var _a;\n return !!((_a = node.emitNode) == null ? void 0 : _a.classThis) && some(node.members, isClassThisAssignmentBlock);\n}\nfunction injectClassThisAssignmentIfMissing(factory2, node, classThis, thisExpression) {\n if (classHasClassThisAssignment(node)) {\n return node;\n }\n const staticBlock = createClassThisAssignmentBlock(factory2, classThis, thisExpression);\n if (node.name) {\n setSourceMapRange(staticBlock.body.statements[0], node.name);\n }\n const members = factory2.createNodeArray([staticBlock, ...node.members]);\n setTextRange(members, node.members);\n const updatedNode = isClassDeclaration(node) ? factory2.updateClassDeclaration(\n node,\n node.modifiers,\n node.name,\n node.typeParameters,\n node.heritageClauses,\n members\n ) : factory2.updateClassExpression(\n node,\n node.modifiers,\n node.name,\n node.typeParameters,\n node.heritageClauses,\n members\n );\n getOrCreateEmitNode(updatedNode).classThis = classThis;\n return updatedNode;\n}\n\n// src/compiler/transformers/namedEvaluation.ts\nfunction getAssignedNameOfIdentifier(factory2, name, expression) {\n const original = getOriginalNode(skipOuterExpressions(expression));\n if ((isClassDeclaration(original) || isFunctionDeclaration(original)) && !original.name && hasSyntacticModifier(original, 2048 /* Default */)) {\n return factory2.createStringLiteral(\"default\");\n }\n return factory2.createStringLiteralFromNode(name);\n}\nfunction getAssignedNameOfPropertyName(context, name, assignedNameText) {\n const { factory: factory2 } = context;\n if (assignedNameText !== void 0) {\n const assignedName2 = factory2.createStringLiteral(assignedNameText);\n return { assignedName: assignedName2, name };\n }\n if (isPropertyNameLiteral(name) || isPrivateIdentifier(name)) {\n const assignedName2 = factory2.createStringLiteralFromNode(name);\n return { assignedName: assignedName2, name };\n }\n if (isPropertyNameLiteral(name.expression) && !isIdentifier(name.expression)) {\n const assignedName2 = factory2.createStringLiteralFromNode(name.expression);\n return { assignedName: assignedName2, name };\n }\n const assignedName = factory2.getGeneratedNameForNode(name);\n context.hoistVariableDeclaration(assignedName);\n const key = context.getEmitHelperFactory().createPropKeyHelper(name.expression);\n const assignment = factory2.createAssignment(assignedName, key);\n const updatedName = factory2.updateComputedPropertyName(name, assignment);\n return { assignedName, name: updatedName };\n}\nfunction createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression = context.factory.createThis()) {\n const { factory: factory2 } = context;\n const expression = context.getEmitHelperFactory().createSetFunctionNameHelper(thisExpression, assignedName);\n const statement = factory2.createExpressionStatement(expression);\n const body = factory2.createBlock(\n [statement],\n /*multiLine*/\n false\n );\n const block = factory2.createClassStaticBlockDeclaration(body);\n getOrCreateEmitNode(block).assignedName = assignedName;\n return block;\n}\nfunction isClassNamedEvaluationHelperBlock(node) {\n var _a;\n if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) {\n return false;\n }\n const statement = node.body.statements[0];\n return isExpressionStatement(statement) && isCallToHelper(statement.expression, \"___setFunctionName\") && statement.expression.arguments.length >= 2 && statement.expression.arguments[1] === ((_a = node.emitNode) == null ? void 0 : _a.assignedName);\n}\nfunction classHasExplicitlyAssignedName(node) {\n var _a;\n return !!((_a = node.emitNode) == null ? void 0 : _a.assignedName) && some(node.members, isClassNamedEvaluationHelperBlock);\n}\nfunction classHasDeclaredOrExplicitlyAssignedName(node) {\n return !!node.name || classHasExplicitlyAssignedName(node);\n}\nfunction injectClassNamedEvaluationHelperBlockIfMissing(context, node, assignedName, thisExpression) {\n if (classHasExplicitlyAssignedName(node)) {\n return node;\n }\n const { factory: factory2 } = context;\n const namedEvaluationBlock = createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression);\n if (node.name) {\n setSourceMapRange(namedEvaluationBlock.body.statements[0], node.name);\n }\n const insertionIndex = findIndex(node.members, isClassThisAssignmentBlock) + 1;\n const leading = node.members.slice(0, insertionIndex);\n const trailing = node.members.slice(insertionIndex);\n const members = factory2.createNodeArray([...leading, namedEvaluationBlock, ...trailing]);\n setTextRange(members, node.members);\n node = isClassDeclaration(node) ? factory2.updateClassDeclaration(\n node,\n node.modifiers,\n node.name,\n node.typeParameters,\n node.heritageClauses,\n members\n ) : factory2.updateClassExpression(\n node,\n node.modifiers,\n node.name,\n node.typeParameters,\n node.heritageClauses,\n members\n );\n getOrCreateEmitNode(node).assignedName = assignedName;\n return node;\n}\nfunction finishTransformNamedEvaluation(context, expression, assignedName, ignoreEmptyStringLiteral) {\n if (ignoreEmptyStringLiteral && isStringLiteral(assignedName) && isEmptyStringLiteral(assignedName)) {\n return expression;\n }\n const { factory: factory2 } = context;\n const innerExpression = skipOuterExpressions(expression);\n const updatedExpression = isClassExpression(innerExpression) ? cast(injectClassNamedEvaluationHelperBlockIfMissing(context, innerExpression, assignedName), isClassExpression) : context.getEmitHelperFactory().createSetFunctionNameHelper(innerExpression, assignedName);\n return factory2.restoreOuterExpressions(expression, updatedExpression);\n}\nfunction transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const { assignedName, name } = getAssignedNameOfPropertyName(context, node.name, assignedNameText);\n const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updatePropertyAssignment(\n node,\n name,\n initializer\n );\n}\nfunction transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.objectAssignmentInitializer);\n const objectAssignmentInitializer = finishTransformNamedEvaluation(context, node.objectAssignmentInitializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateShorthandPropertyAssignment(\n node,\n node.name,\n objectAssignmentInitializer\n );\n}\nfunction transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateVariableDeclaration(\n node,\n node.name,\n node.exclamationToken,\n node.type,\n initializer\n );\n}\nfunction transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateParameterDeclaration(\n node,\n node.modifiers,\n node.dotDotDotToken,\n node.name,\n node.questionToken,\n node.type,\n initializer\n );\n}\nfunction transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateBindingElement(\n node,\n node.dotDotDotToken,\n node.propertyName,\n node.name,\n initializer\n );\n}\nfunction transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const { assignedName, name } = getAssignedNameOfPropertyName(context, node.name, assignedNameText);\n const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n return factory2.updatePropertyDeclaration(\n node,\n node.modifiers,\n name,\n node.questionToken ?? node.exclamationToken,\n node.type,\n initializer\n );\n}\nfunction transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.left, node.right);\n const right = finishTransformNamedEvaluation(context, node.right, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateBinaryExpression(\n node,\n node.left,\n node.operatorToken,\n right\n );\n}\nfunction transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n const { factory: factory2 } = context;\n const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : factory2.createStringLiteral(node.isExportEquals ? \"\" : \"default\");\n const expression = finishTransformNamedEvaluation(context, node.expression, assignedName, ignoreEmptyStringLiteral);\n return factory2.updateExportAssignment(\n node,\n node.modifiers,\n expression\n );\n}\nfunction transformNamedEvaluation(context, node, ignoreEmptyStringLiteral, assignedName) {\n switch (node.kind) {\n case 304 /* PropertyAssignment */:\n return transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedName);\n case 305 /* ShorthandPropertyAssignment */:\n return transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedName);\n case 261 /* VariableDeclaration */:\n return transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n case 170 /* Parameter */:\n return transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n case 209 /* BindingElement */:\n return transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedName);\n case 173 /* PropertyDeclaration */:\n return transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n case 227 /* BinaryExpression */:\n return transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedName);\n case 278 /* ExportAssignment */:\n return transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedName);\n }\n}\n\n// src/compiler/transformers/taggedTemplate.ts\nvar ProcessLevel = /* @__PURE__ */ ((ProcessLevel2) => {\n ProcessLevel2[ProcessLevel2[\"LiftRestriction\"] = 0] = \"LiftRestriction\";\n ProcessLevel2[ProcessLevel2[\"All\"] = 1] = \"All\";\n return ProcessLevel2;\n})(ProcessLevel || {});\nfunction processTaggedTemplateExpression(context, node, visitor, currentSourceFile, recordTaggedTemplateString, level) {\n const tag = visitNode(node.tag, visitor, isExpression);\n Debug.assert(tag);\n const templateArguments = [void 0];\n const cookedStrings = [];\n const rawStrings = [];\n const template = node.template;\n if (level === 0 /* LiftRestriction */ && !hasInvalidEscape(template)) {\n return visitEachChild(node, visitor, context);\n }\n const { factory: factory2 } = context;\n if (isNoSubstitutionTemplateLiteral(template)) {\n cookedStrings.push(createTemplateCooked(factory2, template));\n rawStrings.push(getRawLiteral(factory2, template, currentSourceFile));\n } else {\n cookedStrings.push(createTemplateCooked(factory2, template.head));\n rawStrings.push(getRawLiteral(factory2, template.head, currentSourceFile));\n for (const templateSpan of template.templateSpans) {\n cookedStrings.push(createTemplateCooked(factory2, templateSpan.literal));\n rawStrings.push(getRawLiteral(factory2, templateSpan.literal, currentSourceFile));\n templateArguments.push(Debug.checkDefined(visitNode(templateSpan.expression, visitor, isExpression)));\n }\n }\n const helperCall = context.getEmitHelperFactory().createTemplateObjectHelper(\n factory2.createArrayLiteralExpression(cookedStrings),\n factory2.createArrayLiteralExpression(rawStrings)\n );\n if (isExternalModule(currentSourceFile)) {\n const tempVar = factory2.createUniqueName(\"templateObject\");\n recordTaggedTemplateString(tempVar);\n templateArguments[0] = factory2.createLogicalOr(\n tempVar,\n factory2.createAssignment(\n tempVar,\n helperCall\n )\n );\n } else {\n templateArguments[0] = helperCall;\n }\n return factory2.createCallExpression(\n tag,\n /*typeArguments*/\n void 0,\n templateArguments\n );\n}\nfunction createTemplateCooked(factory2, template) {\n return template.templateFlags & 26656 /* IsInvalid */ ? factory2.createVoidZero() : factory2.createStringLiteral(template.text);\n}\nfunction getRawLiteral(factory2, node, currentSourceFile) {\n let text = node.rawText;\n if (text === void 0) {\n Debug.assertIsDefined(currentSourceFile, \"Template literal node is missing 'rawText' and does not have a source file. Possibly bad transform.\");\n text = getSourceTextOfNodeFromSourceFile(currentSourceFile, node);\n const isLast = node.kind === 15 /* NoSubstitutionTemplateLiteral */ || node.kind === 18 /* TemplateTail */;\n text = text.substring(1, text.length - (isLast ? 1 : 2));\n }\n text = text.replace(/\\r\\n?/g, \"\\n\");\n return setTextRange(factory2.createStringLiteral(text), node);\n}\n\n// src/compiler/transformers/ts.ts\nvar USE_NEW_TYPE_METADATA_FORMAT = false;\nfunction transformTypeScript(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n startLexicalEnvironment,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const moduleKind = getEmitModuleKind(compilerOptions);\n const legacyDecorators = !!compilerOptions.experimentalDecorators;\n const typeSerializer = compilerOptions.emitDecoratorMetadata ? createRuntimeTypeSerializer(context) : void 0;\n const previousOnEmitNode = context.onEmitNode;\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n context.enableSubstitution(212 /* PropertyAccessExpression */);\n context.enableSubstitution(213 /* ElementAccessExpression */);\n let currentSourceFile;\n let currentNamespace;\n let currentNamespaceContainerName;\n let currentLexicalScope;\n let currentScopeFirstDeclarationsOfName;\n let enabledSubstitutions = 0 /* None */;\n let applicableSubstitutions;\n return transformSourceFileOrBundle;\n function transformSourceFileOrBundle(node) {\n if (node.kind === 309 /* Bundle */) {\n return transformBundle(node);\n }\n return transformSourceFile(node);\n }\n function transformBundle(node) {\n return factory2.createBundle(\n node.sourceFiles.map(transformSourceFile)\n );\n }\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n currentSourceFile = node;\n const visited = saveStateAndInvoke(node, visitSourceFile);\n addEmitHelpers(visited, context.readEmitHelpers());\n currentSourceFile = void 0;\n return visited;\n }\n function saveStateAndInvoke(node, f) {\n const savedCurrentScope = currentLexicalScope;\n const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;\n onBeforeVisitNode(node);\n const visited = f(node);\n if (currentLexicalScope !== savedCurrentScope) {\n currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;\n }\n currentLexicalScope = savedCurrentScope;\n return visited;\n }\n function onBeforeVisitNode(node) {\n switch (node.kind) {\n case 308 /* SourceFile */:\n case 270 /* CaseBlock */:\n case 269 /* ModuleBlock */:\n case 242 /* Block */:\n currentLexicalScope = node;\n currentScopeFirstDeclarationsOfName = void 0;\n break;\n case 264 /* ClassDeclaration */:\n case 263 /* FunctionDeclaration */:\n if (hasSyntacticModifier(node, 128 /* Ambient */)) {\n break;\n }\n if (node.name) {\n recordEmittedDeclarationInScope(node);\n } else {\n Debug.assert(node.kind === 264 /* ClassDeclaration */ || hasSyntacticModifier(node, 2048 /* Default */));\n }\n break;\n }\n }\n function visitor(node) {\n return saveStateAndInvoke(node, visitorWorker);\n }\n function visitorWorker(node) {\n if (node.transformFlags & 1 /* ContainsTypeScript */) {\n return visitTypeScript(node);\n }\n return node;\n }\n function sourceElementVisitor(node) {\n return saveStateAndInvoke(node, sourceElementVisitorWorker);\n }\n function sourceElementVisitorWorker(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 278 /* ExportAssignment */:\n case 279 /* ExportDeclaration */:\n return visitElidableStatement(node);\n default:\n return visitorWorker(node);\n }\n }\n function isElisionBlocked(node) {\n const parsed = getParseTreeNode(node);\n if (parsed === node || isExportAssignment(node)) {\n return false;\n }\n if (!parsed || parsed.kind !== node.kind) {\n return true;\n }\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n Debug.assertNode(parsed, isImportDeclaration);\n if (node.importClause !== parsed.importClause) {\n return true;\n }\n if (node.attributes !== parsed.attributes) {\n return true;\n }\n break;\n case 272 /* ImportEqualsDeclaration */:\n Debug.assertNode(parsed, isImportEqualsDeclaration);\n if (node.name !== parsed.name) {\n return true;\n }\n if (node.isTypeOnly !== parsed.isTypeOnly) {\n return true;\n }\n if (node.moduleReference !== parsed.moduleReference && (isEntityName(node.moduleReference) || isEntityName(parsed.moduleReference))) {\n return true;\n }\n break;\n case 279 /* ExportDeclaration */:\n Debug.assertNode(parsed, isExportDeclaration);\n if (node.exportClause !== parsed.exportClause) {\n return true;\n }\n if (node.attributes !== parsed.attributes) {\n return true;\n }\n break;\n }\n return false;\n }\n function visitElidableStatement(node) {\n if (isElisionBlocked(node)) {\n if (node.transformFlags & 1 /* ContainsTypeScript */) {\n return visitEachChild(node, visitor, context);\n }\n return node;\n }\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return visitImportDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return visitImportEqualsDeclaration(node);\n case 278 /* ExportAssignment */:\n return visitExportAssignment(node);\n case 279 /* ExportDeclaration */:\n return visitExportDeclaration(node);\n default:\n Debug.fail(\"Unhandled ellided statement\");\n }\n }\n function namespaceElementVisitor(node) {\n return saveStateAndInvoke(node, namespaceElementVisitorWorker);\n }\n function namespaceElementVisitorWorker(node) {\n if (node.kind === 279 /* ExportDeclaration */ || node.kind === 273 /* ImportDeclaration */ || node.kind === 274 /* ImportClause */ || node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n return void 0;\n } else if (node.transformFlags & 1 /* ContainsTypeScript */ || hasSyntacticModifier(node, 32 /* Export */)) {\n return visitTypeScript(node);\n }\n return node;\n }\n function getClassElementVisitor(parent2) {\n return (node) => saveStateAndInvoke(node, (n) => classElementVisitorWorker(n, parent2));\n }\n function classElementVisitorWorker(node, parent2) {\n switch (node.kind) {\n case 177 /* Constructor */:\n return visitConstructor(node);\n case 173 /* PropertyDeclaration */:\n return visitPropertyDeclaration(node, parent2);\n case 178 /* GetAccessor */:\n return visitGetAccessor(node, parent2);\n case 179 /* SetAccessor */:\n return visitSetAccessor(node, parent2);\n case 175 /* MethodDeclaration */:\n return visitMethodDeclaration(node, parent2);\n case 176 /* ClassStaticBlockDeclaration */:\n return visitEachChild(node, visitor, context);\n case 241 /* SemicolonClassElement */:\n return node;\n case 182 /* IndexSignature */:\n return;\n default:\n return Debug.failBadSyntaxKind(node);\n }\n }\n function getObjectLiteralElementVisitor(parent2) {\n return (node) => saveStateAndInvoke(node, (n) => objectLiteralElementVisitorWorker(n, parent2));\n }\n function objectLiteralElementVisitorWorker(node, parent2) {\n switch (node.kind) {\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 306 /* SpreadAssignment */:\n return visitor(node);\n case 178 /* GetAccessor */:\n return visitGetAccessor(node, parent2);\n case 179 /* SetAccessor */:\n return visitSetAccessor(node, parent2);\n case 175 /* MethodDeclaration */:\n return visitMethodDeclaration(node, parent2);\n default:\n return Debug.failBadSyntaxKind(node);\n }\n }\n function decoratorElidingVisitor(node) {\n return isDecorator(node) ? void 0 : visitor(node);\n }\n function modifierElidingVisitor(node) {\n return isModifier(node) ? void 0 : visitor(node);\n }\n function modifierVisitor(node) {\n if (isDecorator(node)) return void 0;\n if (modifierToFlag(node.kind) & 28895 /* TypeScriptModifier */) {\n return void 0;\n } else if (currentNamespace && node.kind === 95 /* ExportKeyword */) {\n return void 0;\n }\n return node;\n }\n function visitTypeScript(node) {\n if (isStatement(node) && hasSyntacticModifier(node, 128 /* Ambient */)) {\n return factory2.createNotEmittedStatement(node);\n }\n switch (node.kind) {\n case 95 /* ExportKeyword */:\n case 90 /* DefaultKeyword */:\n return currentNamespace ? void 0 : node;\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 128 /* AbstractKeyword */:\n case 164 /* OverrideKeyword */:\n case 87 /* ConstKeyword */:\n case 138 /* DeclareKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 103 /* InKeyword */:\n case 147 /* OutKeyword */:\n // TypeScript accessibility and readonly modifiers are elided\n // falls through\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n case 191 /* OptionalType */:\n case 192 /* RestType */:\n case 188 /* TypeLiteral */:\n case 183 /* TypePredicate */:\n case 169 /* TypeParameter */:\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 136 /* BooleanKeyword */:\n case 154 /* StringKeyword */:\n case 150 /* NumberKeyword */:\n case 146 /* NeverKeyword */:\n case 116 /* VoidKeyword */:\n case 155 /* SymbolKeyword */:\n case 186 /* ConstructorType */:\n case 185 /* FunctionType */:\n case 187 /* TypeQuery */:\n case 184 /* TypeReference */:\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n case 195 /* ConditionalType */:\n case 197 /* ParenthesizedType */:\n case 198 /* ThisType */:\n case 199 /* TypeOperator */:\n case 200 /* IndexedAccessType */:\n case 201 /* MappedType */:\n case 202 /* LiteralType */:\n // TypeScript type nodes are elided.\n // falls through\n case 182 /* IndexSignature */:\n return void 0;\n case 266 /* TypeAliasDeclaration */:\n return factory2.createNotEmittedStatement(node);\n case 271 /* NamespaceExportDeclaration */:\n return void 0;\n case 265 /* InterfaceDeclaration */:\n return factory2.createNotEmittedStatement(node);\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 232 /* ClassExpression */:\n return visitClassExpression(node);\n case 299 /* HeritageClause */:\n return visitHeritageClause(node);\n case 234 /* ExpressionWithTypeArguments */:\n return visitExpressionWithTypeArguments(node);\n case 211 /* ObjectLiteralExpression */:\n return visitObjectLiteralExpression(node);\n case 177 /* Constructor */:\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return Debug.fail(\"Class and object literal elements must be visited with their respective visitors\");\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 219 /* FunctionExpression */:\n return visitFunctionExpression(node);\n case 220 /* ArrowFunction */:\n return visitArrowFunction(node);\n case 170 /* Parameter */:\n return visitParameter(node);\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(node);\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n return visitAssertionExpression(node);\n case 239 /* SatisfiesExpression */:\n return visitSatisfiesExpression(node);\n case 214 /* CallExpression */:\n return visitCallExpression(node);\n case 215 /* NewExpression */:\n return visitNewExpression(node);\n case 216 /* TaggedTemplateExpression */:\n return visitTaggedTemplateExpression(node);\n case 236 /* NonNullExpression */:\n return visitNonNullExpression(node);\n case 267 /* EnumDeclaration */:\n return visitEnumDeclaration(node);\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 261 /* VariableDeclaration */:\n return visitVariableDeclaration(node);\n case 268 /* ModuleDeclaration */:\n return visitModuleDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return visitImportEqualsDeclaration(node);\n case 286 /* JsxSelfClosingElement */:\n return visitJsxSelfClosingElement(node);\n case 287 /* JsxOpeningElement */:\n return visitJsxJsxOpeningElement(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitSourceFile(node) {\n const alwaysStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") && !(isExternalModule(node) && moduleKind >= 5 /* ES2015 */) && !isJsonSourceFile(node);\n return factory2.updateSourceFile(\n node,\n visitLexicalEnvironment(\n node.statements,\n sourceElementVisitor,\n context,\n /*start*/\n 0,\n alwaysStrict\n )\n );\n }\n function visitObjectLiteralExpression(node) {\n return factory2.updateObjectLiteralExpression(\n node,\n visitNodes2(node.properties, getObjectLiteralElementVisitor(node), isObjectLiteralElementLike)\n );\n }\n function getClassFacts(node) {\n let facts = 0 /* None */;\n if (some(getProperties(\n node,\n /*requireInitializer*/\n true,\n /*isStatic*/\n true\n ))) facts |= 1 /* HasStaticInitializedProperties */;\n const extendsClauseElement = getEffectiveBaseTypeNode(node);\n if (extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */) facts |= 64 /* IsDerivedClass */;\n if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) facts |= 2 /* HasClassOrConstructorParameterDecorators */;\n if (childIsDecorated(legacyDecorators, node)) facts |= 4 /* HasMemberDecorators */;\n if (isExportOfNamespace(node)) facts |= 8 /* IsExportOfNamespace */;\n else if (isDefaultExternalModuleExport(node)) facts |= 32 /* IsDefaultExternalExport */;\n else if (isNamedExternalModuleExport(node)) facts |= 16 /* IsNamedExternalExport */;\n return facts;\n }\n function hasTypeScriptClassSyntax(node) {\n return !!(node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */);\n }\n function isClassLikeDeclarationWithTypeScriptSyntax(node) {\n return hasDecorators(node) || some(node.typeParameters) || some(node.heritageClauses, hasTypeScriptClassSyntax) || some(node.members, hasTypeScriptClassSyntax);\n }\n function visitClassDeclaration(node) {\n const facts = getClassFacts(node);\n const promoteToIIFE = languageVersion <= 1 /* ES5 */ && !!(facts & 7 /* MayNeedImmediatelyInvokedFunctionExpression */);\n if (!isClassLikeDeclarationWithTypeScriptSyntax(node) && !classOrConstructorParameterIsDecorated(legacyDecorators, node) && !isExportOfNamespace(node)) {\n return factory2.updateClassDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.name,\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n visitNodes2(node.members, getClassElementVisitor(node), isClassElement)\n );\n }\n if (promoteToIIFE) {\n context.startLexicalEnvironment();\n }\n const moveModifiers = promoteToIIFE || facts & 8 /* IsExportOfNamespace */;\n let modifiers = moveModifiers ? visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, visitor, isModifierLike);\n if (facts & 2 /* HasClassOrConstructorParameterDecorators */) {\n modifiers = injectClassTypeMetadata(modifiers, node);\n }\n const needsName = moveModifiers && !node.name || facts & 4 /* HasMemberDecorators */ || facts & 1 /* HasStaticInitializedProperties */;\n const name = needsName ? node.name ?? factory2.getGeneratedNameForNode(node) : node.name;\n const classDeclaration = factory2.updateClassDeclaration(\n node,\n modifiers,\n name,\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n transformClassMembers(node)\n );\n let emitFlags = getEmitFlags(node);\n if (facts & 1 /* HasStaticInitializedProperties */) {\n emitFlags |= 64 /* NoTrailingSourceMap */;\n }\n setEmitFlags(classDeclaration, emitFlags);\n let statement;\n if (promoteToIIFE) {\n const statements = [classDeclaration];\n const closingBraceLocation = createTokenRange(skipTrivia(currentSourceFile.text, node.members.end), 20 /* CloseBraceToken */);\n const localName = factory2.getInternalName(node);\n const outer = factory2.createPartiallyEmittedExpression(localName);\n setTextRangeEnd(outer, closingBraceLocation.end);\n setEmitFlags(outer, 3072 /* NoComments */);\n const returnStatement = factory2.createReturnStatement(outer);\n setTextRangePos(returnStatement, closingBraceLocation.pos);\n setEmitFlags(returnStatement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */);\n statements.push(returnStatement);\n insertStatementsAfterStandardPrologue(statements, context.endLexicalEnvironment());\n const iife = factory2.createImmediatelyInvokedArrowFunction(statements);\n setInternalEmitFlags(iife, 1 /* TypeScriptClassWrapper */);\n const varDecl = factory2.createVariableDeclaration(\n factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n false\n ),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n iife\n );\n setOriginalNode(varDecl, node);\n const varStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([varDecl], 1 /* Let */)\n );\n setOriginalNode(varStatement, node);\n setCommentRange(varStatement, node);\n setSourceMapRange(varStatement, moveRangePastDecorators(node));\n startOnNewLine(varStatement);\n statement = varStatement;\n } else {\n statement = classDeclaration;\n }\n if (moveModifiers) {\n if (facts & 8 /* IsExportOfNamespace */) {\n return [\n statement,\n createExportMemberAssignmentStatement(node)\n ];\n }\n if (facts & 32 /* IsDefaultExternalExport */) {\n return [\n statement,\n factory2.createExportDefault(factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ))\n ];\n }\n if (facts & 16 /* IsNamedExternalExport */) {\n return [\n statement,\n factory2.createExternalModuleExport(factory2.getDeclarationName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ))\n ];\n }\n }\n return statement;\n }\n function visitClassExpression(node) {\n let modifiers = visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike);\n if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) {\n modifiers = injectClassTypeMetadata(modifiers, node);\n }\n return factory2.updateClassExpression(\n node,\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n transformClassMembers(node)\n );\n }\n function transformClassMembers(node) {\n const members = visitNodes2(node.members, getClassElementVisitor(node), isClassElement);\n let newMembers;\n const constructor = getFirstConstructorWithBody(node);\n const parametersWithPropertyAssignments = constructor && filter(constructor.parameters, (p) => isParameterPropertyDeclaration(p, constructor));\n if (parametersWithPropertyAssignments) {\n for (const parameter of parametersWithPropertyAssignments) {\n const parameterProperty = factory2.createPropertyDeclaration(\n /*modifiers*/\n void 0,\n parameter.name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n setOriginalNode(parameterProperty, parameter);\n newMembers = append(newMembers, parameterProperty);\n }\n }\n if (newMembers) {\n newMembers = addRange(newMembers, members);\n return setTextRange(\n factory2.createNodeArray(newMembers),\n /*location*/\n node.members\n );\n }\n return members;\n }\n function injectClassTypeMetadata(modifiers, node) {\n const metadata = getTypeMetadata(node, node);\n if (some(metadata)) {\n const modifiersArray = [];\n addRange(modifiersArray, takeWhile(modifiers, isExportOrDefaultModifier));\n addRange(modifiersArray, filter(modifiers, isDecorator));\n addRange(modifiersArray, metadata);\n addRange(modifiersArray, filter(skipWhile(modifiers, isExportOrDefaultModifier), isModifier));\n modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers);\n }\n return modifiers;\n }\n function injectClassElementTypeMetadata(modifiers, node, container) {\n if (isClassLike(container) && classElementOrClassElementParameterIsDecorated(legacyDecorators, node, container)) {\n const metadata = getTypeMetadata(node, container);\n if (some(metadata)) {\n const modifiersArray = [];\n addRange(modifiersArray, filter(modifiers, isDecorator));\n addRange(modifiersArray, metadata);\n addRange(modifiersArray, filter(modifiers, isModifier));\n modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers);\n }\n }\n return modifiers;\n }\n function getTypeMetadata(node, container) {\n if (!legacyDecorators) return void 0;\n return USE_NEW_TYPE_METADATA_FORMAT ? getNewTypeMetadata(node, container) : getOldTypeMetadata(node, container);\n }\n function getOldTypeMetadata(node, container) {\n if (typeSerializer) {\n let decorators;\n if (shouldAddTypeMetadata(node)) {\n const typeMetadata = emitHelpers().createMetadataHelper(\"design:type\", typeSerializer.serializeTypeOfNode({ currentLexicalScope, currentNameScope: container }, node, container));\n decorators = append(decorators, factory2.createDecorator(typeMetadata));\n }\n if (shouldAddParamTypesMetadata(node)) {\n const paramTypesMetadata = emitHelpers().createMetadataHelper(\"design:paramtypes\", typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope, currentNameScope: container }, node, container));\n decorators = append(decorators, factory2.createDecorator(paramTypesMetadata));\n }\n if (shouldAddReturnTypeMetadata(node)) {\n const returnTypeMetadata = emitHelpers().createMetadataHelper(\"design:returntype\", typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope, currentNameScope: container }, node));\n decorators = append(decorators, factory2.createDecorator(returnTypeMetadata));\n }\n return decorators;\n }\n }\n function getNewTypeMetadata(node, container) {\n if (typeSerializer) {\n let properties;\n if (shouldAddTypeMetadata(node)) {\n const typeProperty = factory2.createPropertyAssignment(\"type\", factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [],\n /*type*/\n void 0,\n factory2.createToken(39 /* EqualsGreaterThanToken */),\n typeSerializer.serializeTypeOfNode({ currentLexicalScope, currentNameScope: container }, node, container)\n ));\n properties = append(properties, typeProperty);\n }\n if (shouldAddParamTypesMetadata(node)) {\n const paramTypeProperty = factory2.createPropertyAssignment(\"paramTypes\", factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [],\n /*type*/\n void 0,\n factory2.createToken(39 /* EqualsGreaterThanToken */),\n typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope, currentNameScope: container }, node, container)\n ));\n properties = append(properties, paramTypeProperty);\n }\n if (shouldAddReturnTypeMetadata(node)) {\n const returnTypeProperty = factory2.createPropertyAssignment(\"returnType\", factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n [],\n /*type*/\n void 0,\n factory2.createToken(39 /* EqualsGreaterThanToken */),\n typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope, currentNameScope: container }, node)\n ));\n properties = append(properties, returnTypeProperty);\n }\n if (properties) {\n const typeInfoMetadata = emitHelpers().createMetadataHelper(\"design:typeinfo\", factory2.createObjectLiteralExpression(\n properties,\n /*multiLine*/\n true\n ));\n return [factory2.createDecorator(typeInfoMetadata)];\n }\n }\n }\n function shouldAddTypeMetadata(node) {\n const kind = node.kind;\n return kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 173 /* PropertyDeclaration */;\n }\n function shouldAddReturnTypeMetadata(node) {\n return node.kind === 175 /* MethodDeclaration */;\n }\n function shouldAddParamTypesMetadata(node) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return getFirstConstructorWithBody(node) !== void 0;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return true;\n }\n return false;\n }\n function getExpressionForPropertyName(member, generateNameForComputedPropertyName) {\n const name = member.name;\n if (isPrivateIdentifier(name)) {\n return factory2.createIdentifier(\"\");\n } else if (isComputedPropertyName(name)) {\n return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression;\n } else if (isIdentifier(name)) {\n return factory2.createStringLiteral(idText(name));\n } else {\n return factory2.cloneNode(name);\n }\n }\n function visitPropertyNameOfClassElement(member) {\n const name = member.name;\n if (legacyDecorators && isComputedPropertyName(name) && hasDecorators(member)) {\n const expression = visitNode(name.expression, visitor, isExpression);\n Debug.assert(expression);\n const innerExpression = skipPartiallyEmittedExpressions(expression);\n if (!isSimpleInlineableExpression(innerExpression)) {\n const generatedName = factory2.getGeneratedNameForNode(name);\n hoistVariableDeclaration(generatedName);\n return factory2.updateComputedPropertyName(name, factory2.createAssignment(generatedName, expression));\n }\n }\n return Debug.checkDefined(visitNode(name, visitor, isPropertyName));\n }\n function visitHeritageClause(node) {\n if (node.token === 119 /* ImplementsKeyword */) {\n return void 0;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitExpressionWithTypeArguments(node) {\n return factory2.updateExpressionWithTypeArguments(\n node,\n Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression)),\n /*typeArguments*/\n void 0\n );\n }\n function shouldEmitFunctionLikeDeclaration(node) {\n return !nodeIsMissing(node.body);\n }\n function visitPropertyDeclaration(node, parent2) {\n const isAmbient = node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 64 /* Abstract */);\n if (isAmbient && !(legacyDecorators && hasDecorators(node))) {\n return void 0;\n }\n let modifiers = isClassLike(parent2) ? !isAmbient ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n if (isAmbient) {\n return factory2.updatePropertyDeclaration(\n node,\n concatenate(modifiers, factory2.createModifiersFromModifierFlags(128 /* Ambient */)),\n Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n }\n return factory2.updatePropertyDeclaration(\n node,\n modifiers,\n visitPropertyNameOfClassElement(node),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n }\n function visitConstructor(node) {\n if (!shouldEmitFunctionLikeDeclaration(node)) {\n return void 0;\n }\n return factory2.updateConstructorDeclaration(\n node,\n /*modifiers*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n transformConstructorBody(node.body, node)\n );\n }\n function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) {\n const superStatementIndex = superPath[superPathDepth];\n const superStatement = statementsIn[superStatementIndex];\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n if (isTryStatement(superStatement)) {\n const tryBlockStatements = [];\n transformConstructorBodyWorker(\n tryBlockStatements,\n superStatement.tryBlock.statements,\n /*statementOffset*/\n 0,\n superPath,\n superPathDepth + 1,\n initializerStatements\n );\n const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n statementsOut.push(factory2.updateTryStatement(\n superStatement,\n factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n visitNode(superStatement.catchClause, visitor, isCatchClause),\n visitNode(superStatement.finallyBlock, visitor, isBlock)\n ));\n } else {\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n addRange(statementsOut, initializerStatements);\n }\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1));\n }\n function transformConstructorBody(body, constructor) {\n const parametersWithPropertyAssignments = constructor && filter(constructor.parameters, (p) => isParameterPropertyDeclaration(p, constructor));\n if (!some(parametersWithPropertyAssignments)) {\n return visitFunctionBody(body, visitor, context);\n }\n let statements = [];\n resumeLexicalEnvironment();\n const prologueStatementCount = factory2.copyPrologue(\n body.statements,\n statements,\n /*ensureUseStrict*/\n false,\n visitor\n );\n const superPath = findSuperStatementIndexPath(body.statements, prologueStatementCount);\n const parameterPropertyAssignments = mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment);\n if (superPath.length) {\n transformConstructorBodyWorker(\n statements,\n body.statements,\n prologueStatementCount,\n superPath,\n /*superPathDepth*/\n 0,\n parameterPropertyAssignments\n );\n } else {\n addRange(statements, parameterPropertyAssignments);\n addRange(statements, visitNodes2(body.statements, visitor, isStatement, prologueStatementCount));\n }\n statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n const block = factory2.createBlock(\n setTextRange(factory2.createNodeArray(statements), body.statements),\n /*multiLine*/\n true\n );\n setTextRange(\n block,\n /*location*/\n body\n );\n setOriginalNode(block, body);\n return block;\n }\n function transformParameterWithPropertyAssignment(node) {\n const name = node.name;\n if (!isIdentifier(name)) {\n return void 0;\n }\n const propertyName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */);\n const localName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n setEmitFlags(localName, 3072 /* NoComments */);\n return startOnNewLine(\n removeAllComments(\n setTextRange(\n setOriginalNode(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createThis(),\n propertyName\n ),\n node.name\n ),\n localName\n )\n ),\n node\n ),\n moveRangePos(node, -1)\n )\n )\n );\n }\n function visitMethodDeclaration(node, parent2) {\n if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n return node;\n }\n if (!shouldEmitFunctionLikeDeclaration(node)) {\n return void 0;\n }\n let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n return factory2.updateMethodDeclaration(\n node,\n modifiers,\n node.asteriskToken,\n visitPropertyNameOfClassElement(node),\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n visitFunctionBody(node.body, visitor, context)\n );\n }\n function shouldEmitAccessorDeclaration(node) {\n return !(nodeIsMissing(node.body) && hasSyntacticModifier(node, 64 /* Abstract */));\n }\n function visitGetAccessor(node, parent2) {\n if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n return node;\n }\n if (!shouldEmitAccessorDeclaration(node)) {\n return void 0;\n }\n let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n return factory2.updateGetAccessorDeclaration(\n node,\n modifiers,\n visitPropertyNameOfClassElement(node),\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n );\n }\n function visitSetAccessor(node, parent2) {\n if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n return node;\n }\n if (!shouldEmitAccessorDeclaration(node)) {\n return void 0;\n }\n let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n return factory2.updateSetAccessorDeclaration(\n node,\n modifiers,\n visitPropertyNameOfClassElement(node),\n visitParameterList(node.parameters, visitor, context),\n visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n );\n }\n function visitFunctionDeclaration(node) {\n if (!shouldEmitFunctionLikeDeclaration(node)) {\n return factory2.createNotEmittedStatement(node);\n }\n const updated = factory2.updateFunctionDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n );\n if (isExportOfNamespace(node)) {\n const statements = [updated];\n addExportMemberAssignment(statements, node);\n return statements;\n }\n return updated;\n }\n function visitFunctionExpression(node) {\n if (!shouldEmitFunctionLikeDeclaration(node)) {\n return factory2.createOmittedExpression();\n }\n const updated = factory2.updateFunctionExpression(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n );\n return updated;\n }\n function visitArrowFunction(node) {\n const updated = factory2.updateArrowFunction(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n node.equalsGreaterThanToken,\n visitFunctionBody(node.body, visitor, context)\n );\n return updated;\n }\n function visitParameter(node) {\n if (parameterIsThisKeyword(node)) {\n return void 0;\n }\n const updated = factory2.updateParameterDeclaration(\n node,\n visitNodes2(node.modifiers, (node2) => isDecorator(node2) ? visitor(node2) : void 0, isModifierLike),\n node.dotDotDotToken,\n Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n if (updated !== node) {\n setCommentRange(updated, node);\n setTextRange(updated, moveRangePastModifiers(node));\n setSourceMapRange(updated, moveRangePastModifiers(node));\n setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n }\n return updated;\n }\n function visitVariableStatement(node) {\n if (isExportOfNamespace(node)) {\n const variables = getInitializedVariables(node.declarationList);\n if (variables.length === 0) {\n return void 0;\n }\n return setTextRange(\n factory2.createExpressionStatement(\n factory2.inlineExpressions(\n map(variables, transformInitializedVariable)\n )\n ),\n node\n );\n } else {\n return visitEachChild(node, visitor, context);\n }\n }\n function transformInitializedVariable(node) {\n const name = node.name;\n if (isBindingPattern(name)) {\n return flattenDestructuringAssignment(\n node,\n visitor,\n context,\n 0 /* All */,\n /*needsValue*/\n false,\n createNamespaceExportExpression\n );\n } else {\n return setTextRange(\n factory2.createAssignment(\n getNamespaceMemberNameWithSourceMapsAndWithoutComments(name),\n Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))\n ),\n /*location*/\n node\n );\n }\n }\n function visitVariableDeclaration(node) {\n const updated = factory2.updateVariableDeclaration(\n node,\n Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n if (node.type) {\n setTypeNode(updated.name, node.type);\n }\n return updated;\n }\n function visitParenthesizedExpression(node) {\n const innerExpression = skipOuterExpressions(node.expression, ~(38 /* Assertions */ | 16 /* ExpressionsWithTypeArguments */));\n if (isAssertionExpression(innerExpression) || isSatisfiesExpression(innerExpression)) {\n const expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n return factory2.createPartiallyEmittedExpression(expression, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssertionExpression(node) {\n const expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n return factory2.createPartiallyEmittedExpression(expression, node);\n }\n function visitNonNullExpression(node) {\n const expression = visitNode(node.expression, visitor, isLeftHandSideExpression);\n Debug.assert(expression);\n return factory2.createPartiallyEmittedExpression(expression, node);\n }\n function visitSatisfiesExpression(node) {\n const expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n return factory2.createPartiallyEmittedExpression(expression, node);\n }\n function visitCallExpression(node) {\n return factory2.updateCallExpression(\n node,\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n /*typeArguments*/\n void 0,\n visitNodes2(node.arguments, visitor, isExpression)\n );\n }\n function visitNewExpression(node) {\n return factory2.updateNewExpression(\n node,\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n /*typeArguments*/\n void 0,\n visitNodes2(node.arguments, visitor, isExpression)\n );\n }\n function visitTaggedTemplateExpression(node) {\n return factory2.updateTaggedTemplateExpression(\n node,\n Debug.checkDefined(visitNode(node.tag, visitor, isExpression)),\n /*typeArguments*/\n void 0,\n Debug.checkDefined(visitNode(node.template, visitor, isTemplateLiteral))\n );\n }\n function visitJsxSelfClosingElement(node) {\n return factory2.updateJsxSelfClosingElement(\n node,\n Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)),\n /*typeArguments*/\n void 0,\n Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))\n );\n }\n function visitJsxJsxOpeningElement(node) {\n return factory2.updateJsxOpeningElement(\n node,\n Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)),\n /*typeArguments*/\n void 0,\n Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))\n );\n }\n function shouldEmitEnumDeclaration(node) {\n return !isEnumConst(node) || shouldPreserveConstEnums(compilerOptions);\n }\n function visitEnumDeclaration(node) {\n if (!shouldEmitEnumDeclaration(node)) {\n return factory2.createNotEmittedStatement(node);\n }\n const statements = [];\n let emitFlags = 4 /* AdviseOnEmitNode */;\n const varAdded = addVarForEnumOrModuleDeclaration(statements, node);\n if (varAdded) {\n if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) {\n emitFlags |= 1024 /* NoLeadingComments */;\n }\n }\n const parameterName = getNamespaceParameterName(node);\n const containerName = getNamespaceContainerName(node);\n const exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(\n currentNamespaceContainerName,\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ) : factory2.getDeclarationName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n let moduleArg = factory2.createLogicalOr(\n exportName,\n factory2.createAssignment(\n exportName,\n factory2.createObjectLiteralExpression()\n )\n );\n if (isExportOfNamespace(node)) {\n const localName = factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n moduleArg = factory2.createAssignment(localName, moduleArg);\n }\n const enumStatement = factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n parameterName\n )],\n /*type*/\n void 0,\n transformEnumBody(node, containerName)\n ),\n /*typeArguments*/\n void 0,\n [moduleArg]\n )\n );\n setOriginalNode(enumStatement, node);\n if (varAdded) {\n setSyntheticLeadingComments(enumStatement, void 0);\n setSyntheticTrailingComments(enumStatement, void 0);\n }\n setTextRange(enumStatement, node);\n addEmitFlags(enumStatement, emitFlags);\n statements.push(enumStatement);\n return statements;\n }\n function transformEnumBody(node, localName) {\n const savedCurrentNamespaceLocalName = currentNamespaceContainerName;\n currentNamespaceContainerName = localName;\n const statements = [];\n startLexicalEnvironment();\n const members = map(node.members, transformEnumMember);\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n addRange(statements, members);\n currentNamespaceContainerName = savedCurrentNamespaceLocalName;\n return factory2.createBlock(\n setTextRange(\n factory2.createNodeArray(statements),\n /*location*/\n node.members\n ),\n /*multiLine*/\n true\n );\n }\n function transformEnumMember(member) {\n const name = getExpressionForPropertyName(\n member,\n /*generateNameForComputedPropertyName*/\n false\n );\n const evaluated = resolver.getEnumMemberValue(member);\n const valueExpression = transformEnumMemberDeclarationValue(member, evaluated == null ? void 0 : evaluated.value);\n const innerAssignment = factory2.createAssignment(\n factory2.createElementAccessExpression(\n currentNamespaceContainerName,\n name\n ),\n valueExpression\n );\n const outerAssignment = typeof (evaluated == null ? void 0 : evaluated.value) === \"string\" || (evaluated == null ? void 0 : evaluated.isSyntacticallyString) ? innerAssignment : factory2.createAssignment(\n factory2.createElementAccessExpression(\n currentNamespaceContainerName,\n innerAssignment\n ),\n name\n );\n return setTextRange(\n factory2.createExpressionStatement(\n setTextRange(\n outerAssignment,\n member\n )\n ),\n member\n );\n }\n function transformEnumMemberDeclarationValue(member, constantValue) {\n if (constantValue !== void 0) {\n return typeof constantValue === \"string\" ? factory2.createStringLiteral(constantValue) : constantValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constantValue)) : factory2.createNumericLiteral(constantValue);\n } else {\n enableSubstitutionForNonQualifiedEnumMembers();\n if (member.initializer) {\n return Debug.checkDefined(visitNode(member.initializer, visitor, isExpression));\n } else {\n return factory2.createVoidZero();\n }\n }\n }\n function shouldEmitModuleDeclaration(nodeIn) {\n const node = getParseTreeNode(nodeIn, isModuleDeclaration);\n if (!node) {\n return true;\n }\n return isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions));\n }\n function recordEmittedDeclarationInScope(node) {\n if (!currentScopeFirstDeclarationsOfName) {\n currentScopeFirstDeclarationsOfName = /* @__PURE__ */ new Map();\n }\n const name = declaredNameInScope(node);\n if (!currentScopeFirstDeclarationsOfName.has(name)) {\n currentScopeFirstDeclarationsOfName.set(name, node);\n }\n }\n function isFirstEmittedDeclarationInScope(node) {\n if (currentScopeFirstDeclarationsOfName) {\n const name = declaredNameInScope(node);\n return currentScopeFirstDeclarationsOfName.get(name) === node;\n }\n return true;\n }\n function declaredNameInScope(node) {\n Debug.assertNode(node.name, isIdentifier);\n return node.name.escapedText;\n }\n function addVarForEnumOrModuleDeclaration(statements, node) {\n const varDecl = factory2.createVariableDeclaration(factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ));\n const varFlags = currentLexicalScope.kind === 308 /* SourceFile */ ? 0 /* None */ : 1 /* Let */;\n const statement = factory2.createVariableStatement(\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n factory2.createVariableDeclarationList([varDecl], varFlags)\n );\n setOriginalNode(varDecl, node);\n setSyntheticLeadingComments(varDecl, void 0);\n setSyntheticTrailingComments(varDecl, void 0);\n setOriginalNode(statement, node);\n recordEmittedDeclarationInScope(node);\n if (isFirstEmittedDeclarationInScope(node)) {\n if (node.kind === 267 /* EnumDeclaration */) {\n setSourceMapRange(statement.declarationList, node);\n } else {\n setSourceMapRange(statement, node);\n }\n setCommentRange(statement, node);\n addEmitFlags(statement, 2048 /* NoTrailingComments */);\n statements.push(statement);\n return true;\n }\n return false;\n }\n function visitModuleDeclaration(node) {\n if (!shouldEmitModuleDeclaration(node)) {\n return factory2.createNotEmittedStatement(node);\n }\n Debug.assertNode(node.name, isIdentifier, \"A TypeScript namespace should have an Identifier name.\");\n enableSubstitutionForNamespaceExports();\n const statements = [];\n let emitFlags = 4 /* AdviseOnEmitNode */;\n const varAdded = addVarForEnumOrModuleDeclaration(statements, node);\n if (varAdded) {\n if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) {\n emitFlags |= 1024 /* NoLeadingComments */;\n }\n }\n const parameterName = getNamespaceParameterName(node);\n const containerName = getNamespaceContainerName(node);\n const exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(\n currentNamespaceContainerName,\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ) : factory2.getDeclarationName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n let moduleArg = factory2.createLogicalOr(\n exportName,\n factory2.createAssignment(\n exportName,\n factory2.createObjectLiteralExpression()\n )\n );\n if (isExportOfNamespace(node)) {\n const localName = factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n moduleArg = factory2.createAssignment(localName, moduleArg);\n }\n const moduleStatement = factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n parameterName\n )],\n /*type*/\n void 0,\n transformModuleBody(node, containerName)\n ),\n /*typeArguments*/\n void 0,\n [moduleArg]\n )\n );\n setOriginalNode(moduleStatement, node);\n if (varAdded) {\n setSyntheticLeadingComments(moduleStatement, void 0);\n setSyntheticTrailingComments(moduleStatement, void 0);\n }\n setTextRange(moduleStatement, node);\n addEmitFlags(moduleStatement, emitFlags);\n statements.push(moduleStatement);\n return statements;\n }\n function transformModuleBody(node, namespaceLocalName) {\n const savedCurrentNamespaceContainerName = currentNamespaceContainerName;\n const savedCurrentNamespace = currentNamespace;\n const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;\n currentNamespaceContainerName = namespaceLocalName;\n currentNamespace = node;\n currentScopeFirstDeclarationsOfName = void 0;\n const statements = [];\n startLexicalEnvironment();\n let statementsLocation;\n let blockLocation;\n if (node.body) {\n if (node.body.kind === 269 /* ModuleBlock */) {\n saveStateAndInvoke(node.body, (body) => addRange(statements, visitNodes2(body.statements, namespaceElementVisitor, isStatement)));\n statementsLocation = node.body.statements;\n blockLocation = node.body;\n } else {\n const result = visitModuleDeclaration(node.body);\n if (result) {\n if (isArray(result)) {\n addRange(statements, result);\n } else {\n statements.push(result);\n }\n }\n const moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body;\n statementsLocation = moveRangePos(moduleBlock.statements, -1);\n }\n }\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n currentNamespaceContainerName = savedCurrentNamespaceContainerName;\n currentNamespace = savedCurrentNamespace;\n currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;\n const block = factory2.createBlock(\n setTextRange(\n factory2.createNodeArray(statements),\n /*location*/\n statementsLocation\n ),\n /*multiLine*/\n true\n );\n setTextRange(block, blockLocation);\n if (!node.body || node.body.kind !== 269 /* ModuleBlock */) {\n setEmitFlags(block, getEmitFlags(block) | 3072 /* NoComments */);\n }\n return block;\n }\n function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) {\n if (moduleDeclaration.body.kind === 268 /* ModuleDeclaration */) {\n const recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body);\n return recursiveInnerModule || moduleDeclaration.body;\n }\n }\n function visitImportDeclaration(node) {\n if (!node.importClause) {\n return node;\n }\n if (node.importClause.isTypeOnly) {\n return void 0;\n }\n const importClause = visitNode(node.importClause, visitImportClause, isImportClause);\n return importClause ? factory2.updateImportDeclaration(\n node,\n /*modifiers*/\n void 0,\n importClause,\n node.moduleSpecifier,\n node.attributes\n ) : void 0;\n }\n function visitImportClause(node) {\n Debug.assert(node.phaseModifier !== 156 /* TypeKeyword */);\n const name = shouldEmitAliasDeclaration(node) ? node.name : void 0;\n const namedBindings = visitNode(node.namedBindings, visitNamedImportBindings, isNamedImportBindings);\n return name || namedBindings ? factory2.updateImportClause(node, node.phaseModifier, name, namedBindings) : void 0;\n }\n function visitNamedImportBindings(node) {\n if (node.kind === 275 /* NamespaceImport */) {\n return shouldEmitAliasDeclaration(node) ? node : void 0;\n } else {\n const allowEmpty = compilerOptions.verbatimModuleSyntax;\n const elements = visitNodes2(node.elements, visitImportSpecifier, isImportSpecifier);\n return allowEmpty || some(elements) ? factory2.updateNamedImports(node, elements) : void 0;\n }\n }\n function visitImportSpecifier(node) {\n return !node.isTypeOnly && shouldEmitAliasDeclaration(node) ? node : void 0;\n }\n function visitExportAssignment(node) {\n return compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node) ? visitEachChild(node, visitor, context) : void 0;\n }\n function visitExportDeclaration(node) {\n if (node.isTypeOnly) {\n return void 0;\n }\n if (!node.exportClause || isNamespaceExport(node.exportClause)) {\n return factory2.updateExportDeclaration(\n node,\n node.modifiers,\n node.isTypeOnly,\n node.exportClause,\n node.moduleSpecifier,\n node.attributes\n );\n }\n const allowEmpty = !!compilerOptions.verbatimModuleSyntax;\n const exportClause = visitNode(\n node.exportClause,\n (bindings) => visitNamedExportBindings(bindings, allowEmpty),\n isNamedExportBindings\n );\n return exportClause ? factory2.updateExportDeclaration(\n node,\n /*modifiers*/\n void 0,\n node.isTypeOnly,\n exportClause,\n node.moduleSpecifier,\n node.attributes\n ) : void 0;\n }\n function visitNamedExports(node, allowEmpty) {\n const elements = visitNodes2(node.elements, visitExportSpecifier, isExportSpecifier);\n return allowEmpty || some(elements) ? factory2.updateNamedExports(node, elements) : void 0;\n }\n function visitNamespaceExports(node) {\n return factory2.updateNamespaceExport(node, Debug.checkDefined(visitNode(node.name, visitor, isIdentifier)));\n }\n function visitNamedExportBindings(node, allowEmpty) {\n return isNamespaceExport(node) ? visitNamespaceExports(node) : visitNamedExports(node, allowEmpty);\n }\n function visitExportSpecifier(node) {\n return !node.isTypeOnly && (compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node)) ? node : void 0;\n }\n function shouldEmitImportEqualsDeclaration(node) {\n return shouldEmitAliasDeclaration(node) || !isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node);\n }\n function visitImportEqualsDeclaration(node) {\n if (node.isTypeOnly) {\n return void 0;\n }\n if (isExternalModuleImportEqualsDeclaration(node)) {\n if (!shouldEmitAliasDeclaration(node)) {\n return void 0;\n }\n return visitEachChild(node, visitor, context);\n }\n if (!shouldEmitImportEqualsDeclaration(node)) {\n return void 0;\n }\n const moduleReference = createExpressionFromEntityName(factory2, node.moduleReference);\n setEmitFlags(moduleReference, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n if (isNamedExternalModuleExport(node) || !isExportOfNamespace(node)) {\n return setOriginalNode(\n setTextRange(\n factory2.createVariableStatement(\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n factory2.createVariableDeclarationList([\n setOriginalNode(\n factory2.createVariableDeclaration(\n node.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n moduleReference\n ),\n node\n )\n ])\n ),\n node\n ),\n node\n );\n } else {\n return setOriginalNode(\n createNamespaceExport(\n node.name,\n moduleReference,\n node\n ),\n node\n );\n }\n }\n function isExportOfNamespace(node) {\n return currentNamespace !== void 0 && hasSyntacticModifier(node, 32 /* Export */);\n }\n function isExternalModuleExport(node) {\n return currentNamespace === void 0 && hasSyntacticModifier(node, 32 /* Export */);\n }\n function isNamedExternalModuleExport(node) {\n return isExternalModuleExport(node) && !hasSyntacticModifier(node, 2048 /* Default */);\n }\n function isDefaultExternalModuleExport(node) {\n return isExternalModuleExport(node) && hasSyntacticModifier(node, 2048 /* Default */);\n }\n function createExportMemberAssignmentStatement(node) {\n const expression = factory2.createAssignment(\n factory2.getExternalModuleOrNamespaceExportName(\n currentNamespaceContainerName,\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ),\n factory2.getLocalName(node)\n );\n setSourceMapRange(expression, createRange(node.name ? node.name.pos : node.pos, node.end));\n const statement = factory2.createExpressionStatement(expression);\n setSourceMapRange(statement, createRange(-1, node.end));\n return statement;\n }\n function addExportMemberAssignment(statements, node) {\n statements.push(createExportMemberAssignmentStatement(node));\n }\n function createNamespaceExport(exportName, exportValue, location) {\n return setTextRange(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.getNamespaceMemberName(\n currentNamespaceContainerName,\n exportName,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ),\n exportValue\n )\n ),\n location\n );\n }\n function createNamespaceExportExpression(exportName, exportValue, location) {\n return setTextRange(factory2.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(exportName), exportValue), location);\n }\n function getNamespaceMemberNameWithSourceMapsAndWithoutComments(name) {\n return factory2.getNamespaceMemberName(\n currentNamespaceContainerName,\n name,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n }\n function getNamespaceParameterName(node) {\n const name = factory2.getGeneratedNameForNode(node);\n setSourceMapRange(name, node.name);\n return name;\n }\n function getNamespaceContainerName(node) {\n return factory2.getGeneratedNameForNode(node);\n }\n function enableSubstitutionForNonQualifiedEnumMembers() {\n if ((enabledSubstitutions & 8 /* NonQualifiedEnumMembers */) === 0) {\n enabledSubstitutions |= 8 /* NonQualifiedEnumMembers */;\n context.enableSubstitution(80 /* Identifier */);\n }\n }\n function enableSubstitutionForNamespaceExports() {\n if ((enabledSubstitutions & 2 /* NamespaceExports */) === 0) {\n enabledSubstitutions |= 2 /* NamespaceExports */;\n context.enableSubstitution(80 /* Identifier */);\n context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n context.enableEmitNotification(268 /* ModuleDeclaration */);\n }\n }\n function isTransformedModuleDeclaration(node) {\n return getOriginalNode(node).kind === 268 /* ModuleDeclaration */;\n }\n function isTransformedEnumDeclaration(node) {\n return getOriginalNode(node).kind === 267 /* EnumDeclaration */;\n }\n function onEmitNode(hint, node, emitCallback) {\n const savedApplicableSubstitutions = applicableSubstitutions;\n const savedCurrentSourceFile = currentSourceFile;\n if (isSourceFile(node)) {\n currentSourceFile = node;\n }\n if (enabledSubstitutions & 2 /* NamespaceExports */ && isTransformedModuleDeclaration(node)) {\n applicableSubstitutions |= 2 /* NamespaceExports */;\n }\n if (enabledSubstitutions & 8 /* NonQualifiedEnumMembers */ && isTransformedEnumDeclaration(node)) {\n applicableSubstitutions |= 8 /* NonQualifiedEnumMembers */;\n }\n previousOnEmitNode(hint, node, emitCallback);\n applicableSubstitutions = savedApplicableSubstitutions;\n currentSourceFile = savedCurrentSourceFile;\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n } else if (isShorthandPropertyAssignment(node)) {\n return substituteShorthandPropertyAssignment(node);\n }\n return node;\n }\n function substituteShorthandPropertyAssignment(node) {\n if (enabledSubstitutions & 2 /* NamespaceExports */) {\n const name = node.name;\n const exportedName = trySubstituteNamespaceExportedName(name);\n if (exportedName) {\n if (node.objectAssignmentInitializer) {\n const initializer = factory2.createAssignment(exportedName, node.objectAssignmentInitializer);\n return setTextRange(factory2.createPropertyAssignment(name, initializer), node);\n }\n return setTextRange(factory2.createPropertyAssignment(name, exportedName), node);\n }\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n case 212 /* PropertyAccessExpression */:\n return substitutePropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return substituteElementAccessExpression(node);\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n return trySubstituteNamespaceExportedName(node) || node;\n }\n function trySubstituteNamespaceExportedName(node) {\n if (enabledSubstitutions & applicableSubstitutions && !isGeneratedIdentifier(node) && !isLocalName(node)) {\n const container = resolver.getReferencedExportContainer(\n node,\n /*prefixLocals*/\n false\n );\n if (container && container.kind !== 308 /* SourceFile */) {\n const substitute = applicableSubstitutions & 2 /* NamespaceExports */ && container.kind === 268 /* ModuleDeclaration */ || applicableSubstitutions & 8 /* NonQualifiedEnumMembers */ && container.kind === 267 /* EnumDeclaration */;\n if (substitute) {\n return setTextRange(\n factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(container), node),\n /*location*/\n node\n );\n }\n }\n }\n return void 0;\n }\n function substitutePropertyAccessExpression(node) {\n return substituteConstantValue(node);\n }\n function substituteElementAccessExpression(node) {\n return substituteConstantValue(node);\n }\n function safeMultiLineComment(value) {\n return value.replace(/\\*\\//g, \"*_/\");\n }\n function substituteConstantValue(node) {\n const constantValue = tryGetConstEnumValue(node);\n if (constantValue !== void 0) {\n setConstantValue(node, constantValue);\n const substitute = typeof constantValue === \"string\" ? factory2.createStringLiteral(constantValue) : constantValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constantValue)) : factory2.createNumericLiteral(constantValue);\n if (!compilerOptions.removeComments) {\n const originalNode = getOriginalNode(node, isAccessExpression);\n addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, ` ${safeMultiLineComment(getTextOfNode(originalNode))} `);\n }\n return substitute;\n }\n return node;\n }\n function tryGetConstEnumValue(node) {\n if (getIsolatedModules(compilerOptions)) {\n return void 0;\n }\n return isPropertyAccessExpression(node) || isElementAccessExpression(node) ? resolver.getConstantValue(node) : void 0;\n }\n function shouldEmitAliasDeclaration(node) {\n return compilerOptions.verbatimModuleSyntax || isInJSFile(node) || resolver.isReferencedAliasDeclaration(node);\n }\n}\n\n// src/compiler/transformers/classFields.ts\nfunction transformClassFields(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n hoistVariableDeclaration,\n endLexicalEnvironment,\n startLexicalEnvironment,\n resumeLexicalEnvironment,\n addBlockScopedVariable\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n const legacyDecorators = !!compilerOptions.experimentalDecorators;\n const shouldTransformInitializersUsingSet = !useDefineForClassFields;\n const shouldTransformInitializersUsingDefine = useDefineForClassFields && languageVersion < 9 /* ES2022 */;\n const shouldTransformInitializers = shouldTransformInitializersUsingSet || shouldTransformInitializersUsingDefine;\n const shouldTransformPrivateElementsOrClassStaticBlocks = languageVersion < 9 /* ES2022 */;\n const shouldTransformAutoAccessors = languageVersion < 99 /* ESNext */ ? -1 /* True */ : !useDefineForClassFields ? 3 /* Maybe */ : 0 /* False */;\n const shouldTransformThisInStaticInitializers = languageVersion < 9 /* ES2022 */;\n const shouldTransformSuperInStaticInitializers = shouldTransformThisInStaticInitializers && languageVersion >= 2 /* ES2015 */;\n const shouldTransformAnything = shouldTransformInitializers || shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformAutoAccessors === -1 /* True */;\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onSubstituteNode = onSubstituteNode;\n const previousOnEmitNode = context.onEmitNode;\n context.onEmitNode = onEmitNode;\n let shouldTransformPrivateStaticElementsInFile = false;\n let enabledSubstitutions = 0 /* None */;\n let classAliases;\n let pendingExpressions;\n let pendingStatements;\n let lexicalEnvironment;\n const lexicalEnvironmentMap = /* @__PURE__ */ new Map();\n const noSubstitution = /* @__PURE__ */ new Set();\n let currentClassContainer;\n let currentClassElement;\n let shouldSubstituteThisWithClassThis = false;\n let previousShouldSubstituteThisWithClassThis = false;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n lexicalEnvironment = void 0;\n shouldTransformPrivateStaticElementsInFile = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */);\n if (!shouldTransformAnything && !shouldTransformPrivateStaticElementsInFile) {\n return node;\n }\n const visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n return visited;\n }\n function modifierVisitor(node) {\n switch (node.kind) {\n case 129 /* AccessorKeyword */:\n return shouldTransformAutoAccessorsInCurrentClass() ? void 0 : node;\n default:\n return tryCast(node, isModifier);\n }\n }\n function visitor(node) {\n if (!(node.transformFlags & 16777216 /* ContainsClassFields */) && !(node.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */)) {\n return node;\n }\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 232 /* ClassExpression */:\n return visitClassExpression(node);\n case 176 /* ClassStaticBlockDeclaration */:\n case 173 /* PropertyDeclaration */:\n return Debug.fail(\"Use `classElementVisitor` instead.\");\n case 304 /* PropertyAssignment */:\n return visitPropertyAssignment(node);\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 261 /* VariableDeclaration */:\n return visitVariableDeclaration(node);\n case 170 /* Parameter */:\n return visitParameterDeclaration(node);\n case 209 /* BindingElement */:\n return visitBindingElement(node);\n case 278 /* ExportAssignment */:\n return visitExportAssignment(node);\n case 81 /* PrivateIdentifier */:\n return visitPrivateIdentifier(node);\n case 212 /* PropertyAccessExpression */:\n return visitPropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return visitElementAccessExpression(node);\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPreOrPostfixUnaryExpression(\n node,\n /*discarded*/\n false\n );\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(\n node,\n /*discarded*/\n false\n );\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(\n node,\n /*discarded*/\n false\n );\n case 214 /* CallExpression */:\n return visitCallExpression(node);\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 216 /* TaggedTemplateExpression */:\n return visitTaggedTemplateExpression(node);\n case 249 /* ForStatement */:\n return visitForStatement(node);\n case 110 /* ThisKeyword */:\n return visitThisExpression(node);\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return setCurrentClassElementAnd(\n /*classElement*/\n void 0,\n fallbackVisitor,\n node\n );\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */: {\n return setCurrentClassElementAnd(\n node,\n fallbackVisitor,\n node\n );\n }\n default:\n return fallbackVisitor(node);\n }\n }\n function fallbackVisitor(node) {\n return visitEachChild(node, visitor, context);\n }\n function discardedValueVisitor(node) {\n switch (node.kind) {\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPreOrPostfixUnaryExpression(\n node,\n /*discarded*/\n true\n );\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(\n node,\n /*discarded*/\n true\n );\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(\n node,\n /*discarded*/\n true\n );\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(\n node,\n /*discarded*/\n true\n );\n default:\n return visitor(node);\n }\n }\n function heritageClauseVisitor(node) {\n switch (node.kind) {\n case 299 /* HeritageClause */:\n return visitEachChild(node, heritageClauseVisitor, context);\n case 234 /* ExpressionWithTypeArguments */:\n return visitExpressionWithTypeArgumentsInHeritageClause(node);\n default:\n return visitor(node);\n }\n }\n function assignmentTargetVisitor(node) {\n switch (node.kind) {\n case 211 /* ObjectLiteralExpression */:\n case 210 /* ArrayLiteralExpression */:\n return visitAssignmentPattern(node);\n default:\n return visitor(node);\n }\n }\n function classElementVisitor(node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n return setCurrentClassElementAnd(\n node,\n visitConstructorDeclaration,\n node\n );\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n return setCurrentClassElementAnd(\n node,\n visitMethodOrAccessorDeclaration,\n node\n );\n case 173 /* PropertyDeclaration */:\n return setCurrentClassElementAnd(\n node,\n visitPropertyDeclaration,\n node\n );\n case 176 /* ClassStaticBlockDeclaration */:\n return setCurrentClassElementAnd(\n node,\n visitClassStaticBlockDeclaration,\n node\n );\n case 168 /* ComputedPropertyName */:\n return visitComputedPropertyName(node);\n case 241 /* SemicolonClassElement */:\n return node;\n default:\n return isModifierLike(node) ? modifierVisitor(node) : visitor(node);\n }\n }\n function propertyNameVisitor(node) {\n switch (node.kind) {\n case 168 /* ComputedPropertyName */:\n return visitComputedPropertyName(node);\n default:\n return visitor(node);\n }\n }\n function accessorFieldResultVisitor(node) {\n switch (node.kind) {\n case 173 /* PropertyDeclaration */:\n return transformFieldInitializer(node);\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return classElementVisitor(node);\n default:\n Debug.assertMissingNode(node, \"Expected node to either be a PropertyDeclaration, GetAccessorDeclaration, or SetAccessorDeclaration\");\n break;\n }\n }\n function visitPrivateIdentifier(node) {\n if (!shouldTransformPrivateElementsOrClassStaticBlocks) {\n return node;\n }\n if (isStatement(node.parent)) {\n return node;\n }\n return setOriginalNode(factory2.createIdentifier(\"\"), node);\n }\n function transformPrivateIdentifierInInExpression(node) {\n const info = accessPrivateIdentifier2(node.left);\n if (info) {\n const receiver = visitNode(node.right, visitor, isExpression);\n return setOriginalNode(\n emitHelpers().createClassPrivateFieldInHelper(info.brandCheckIdentifier, receiver),\n node\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitPropertyAssignment(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitVariableStatement(node) {\n const savedPendingStatements = pendingStatements;\n pendingStatements = [];\n const visitedNode = visitEachChild(node, visitor, context);\n const statement = some(pendingStatements) ? [visitedNode, ...pendingStatements] : visitedNode;\n pendingStatements = savedPendingStatements;\n return statement;\n }\n function visitVariableDeclaration(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitParameterDeclaration(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitBindingElement(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitExportAssignment(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(\n context,\n node,\n /*ignoreEmptyStringLiteral*/\n true,\n node.isExportEquals ? \"\" : \"default\"\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function injectPendingExpressions(expression) {\n if (some(pendingExpressions)) {\n if (isParenthesizedExpression(expression)) {\n pendingExpressions.push(expression.expression);\n expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions));\n } else {\n pendingExpressions.push(expression);\n expression = factory2.inlineExpressions(pendingExpressions);\n }\n pendingExpressions = void 0;\n }\n return expression;\n }\n function visitComputedPropertyName(node) {\n const expression = visitNode(node.expression, visitor, isExpression);\n return factory2.updateComputedPropertyName(node, injectPendingExpressions(expression));\n }\n function visitConstructorDeclaration(node) {\n if (currentClassContainer) {\n return transformConstructor(node, currentClassContainer);\n }\n return fallbackVisitor(node);\n }\n function shouldTransformClassElementToWeakMap(node) {\n if (shouldTransformPrivateElementsOrClassStaticBlocks) return true;\n if (hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) return true;\n return false;\n }\n function visitMethodOrAccessorDeclaration(node) {\n Debug.assert(!hasDecorators(node));\n if (!isPrivateIdentifierClassElementDeclaration(node) || !shouldTransformClassElementToWeakMap(node)) {\n return visitEachChild(node, classElementVisitor, context);\n }\n const info = accessPrivateIdentifier2(node.name);\n Debug.assert(info, \"Undeclared private name for property declaration.\");\n if (!info.isValid) {\n return node;\n }\n const functionName = getHoistedFunctionName(node);\n if (functionName) {\n getPendingExpressions().push(\n factory2.createAssignment(\n functionName,\n factory2.createFunctionExpression(\n filter(node.modifiers, (m) => isModifier(m) && !isStaticModifier(m) && !isAccessorModifier(m)),\n node.asteriskToken,\n functionName,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n visitFunctionBody(node.body, visitor, context)\n )\n )\n );\n }\n return void 0;\n }\n function setCurrentClassElementAnd(classElement, visitor2, arg) {\n if (classElement !== currentClassElement) {\n const savedCurrentClassElement = currentClassElement;\n currentClassElement = classElement;\n const result = visitor2(arg);\n currentClassElement = savedCurrentClassElement;\n return result;\n }\n return visitor2(arg);\n }\n function getHoistedFunctionName(node) {\n Debug.assert(isPrivateIdentifier(node.name));\n const info = accessPrivateIdentifier2(node.name);\n Debug.assert(info, \"Undeclared private name for property declaration.\");\n if (info.kind === \"m\" /* Method */) {\n return info.methodName;\n }\n if (info.kind === \"a\" /* Accessor */) {\n if (isGetAccessor(node)) {\n return info.getterName;\n }\n if (isSetAccessor(node)) {\n return info.setterName;\n }\n }\n }\n function tryGetClassThis() {\n const lex = getClassLexicalEnvironment();\n return lex.classThis ?? lex.classConstructor ?? (currentClassContainer == null ? void 0 : currentClassContainer.name);\n }\n function transformAutoAccessor(node) {\n const commentRange = getCommentRange(node);\n const sourceMapRange = getSourceMapRange(node);\n const name = node.name;\n let getterName = name;\n let setterName = name;\n if (isComputedPropertyName(name) && !isSimpleInlineableExpression(name.expression)) {\n const cacheAssignment = findComputedPropertyNameCacheAssignment(name);\n if (cacheAssignment) {\n getterName = factory2.updateComputedPropertyName(name, visitNode(name.expression, visitor, isExpression));\n setterName = factory2.updateComputedPropertyName(name, cacheAssignment.left);\n } else {\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n setSourceMapRange(temp, name.expression);\n const expression = visitNode(name.expression, visitor, isExpression);\n const assignment = factory2.createAssignment(temp, expression);\n setSourceMapRange(assignment, name.expression);\n getterName = factory2.updateComputedPropertyName(name, assignment);\n setterName = factory2.updateComputedPropertyName(name, temp);\n }\n }\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const backingField = createAccessorPropertyBackingField(factory2, node, modifiers, node.initializer);\n setOriginalNode(backingField, node);\n setEmitFlags(backingField, 3072 /* NoComments */);\n setSourceMapRange(backingField, sourceMapRange);\n const receiver = isStatic(node) ? tryGetClassThis() ?? factory2.createThis() : factory2.createThis();\n const getter = createAccessorPropertyGetRedirector(factory2, node, modifiers, getterName, receiver);\n setOriginalNode(getter, node);\n setCommentRange(getter, commentRange);\n setSourceMapRange(getter, sourceMapRange);\n const setterModifiers = factory2.createModifiersFromModifierFlags(modifiersToFlags(modifiers));\n const setter = createAccessorPropertySetRedirector(factory2, node, setterModifiers, setterName, receiver);\n setOriginalNode(setter, node);\n setEmitFlags(setter, 3072 /* NoComments */);\n setSourceMapRange(setter, sourceMapRange);\n return visitArray([backingField, getter, setter], accessorFieldResultVisitor, isClassElement);\n }\n function transformPrivateFieldInitializer(node) {\n if (shouldTransformClassElementToWeakMap(node)) {\n const info = accessPrivateIdentifier2(node.name);\n Debug.assert(info, \"Undeclared private name for property declaration.\");\n if (!info.isValid) {\n return node;\n }\n if (info.isStatic && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n const statement = transformPropertyOrClassStaticBlock(node, factory2.createThis());\n if (statement) {\n return factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n [statement],\n /*multiLine*/\n true\n ));\n }\n }\n return void 0;\n }\n if (shouldTransformInitializersUsingSet && !isStatic(node) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */) {\n return factory2.updatePropertyDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifierLike),\n node.name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n }\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return factory2.updatePropertyDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n visitNode(node.name, propertyNameVisitor, isPropertyName),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n }\n function transformPublicFieldInitializer(node) {\n if (shouldTransformInitializers && !isAutoAccessorPropertyDeclaration(node)) {\n const expr = getPropertyNameExpressionIfNeeded(\n node.name,\n /*shouldHoist*/\n !!node.initializer || useDefineForClassFields\n );\n if (expr) {\n getPendingExpressions().push(...flattenCommaList(expr));\n }\n if (isStatic(node) && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n const initializerStatement = transformPropertyOrClassStaticBlock(node, factory2.createThis());\n if (initializerStatement) {\n const staticBlock = factory2.createClassStaticBlockDeclaration(\n factory2.createBlock([initializerStatement])\n );\n setOriginalNode(staticBlock, node);\n setCommentRange(staticBlock, node);\n setCommentRange(initializerStatement, { pos: -1, end: -1 });\n setSyntheticLeadingComments(initializerStatement, void 0);\n setSyntheticTrailingComments(initializerStatement, void 0);\n return staticBlock;\n }\n }\n return void 0;\n }\n return factory2.updatePropertyDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n visitNode(node.name, propertyNameVisitor, isPropertyName),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n }\n function transformFieldInitializer(node) {\n Debug.assert(!hasDecorators(node), \"Decorators should already have been transformed and elided.\");\n return isPrivateIdentifierClassElementDeclaration(node) ? transformPrivateFieldInitializer(node) : transformPublicFieldInitializer(node);\n }\n function shouldTransformAutoAccessorsInCurrentClass() {\n return shouldTransformAutoAccessors === -1 /* True */ || shouldTransformAutoAccessors === 3 /* Maybe */ && !!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !!(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */);\n }\n function visitPropertyDeclaration(node) {\n if (isAutoAccessorPropertyDeclaration(node) && (shouldTransformAutoAccessorsInCurrentClass() || hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */)) {\n return transformAutoAccessor(node);\n }\n return transformFieldInitializer(node);\n }\n function shouldForceDynamicThis() {\n return !!currentClassElement && hasStaticModifier(currentClassElement) && isAccessor(currentClassElement) && isAutoAccessorPropertyDeclaration(getOriginalNode(currentClassElement));\n }\n function ensureDynamicThisIfNeeded(node) {\n if (shouldForceDynamicThis()) {\n const innerExpression = skipOuterExpressions(node);\n if (innerExpression.kind === 110 /* ThisKeyword */) {\n noSubstitution.add(innerExpression);\n }\n }\n }\n function createPrivateIdentifierAccess(info, receiver) {\n receiver = visitNode(receiver, visitor, isExpression);\n ensureDynamicThisIfNeeded(receiver);\n return createPrivateIdentifierAccessHelper(info, receiver);\n }\n function createPrivateIdentifierAccessHelper(info, receiver) {\n setCommentRange(receiver, moveRangePos(receiver, -1));\n switch (info.kind) {\n case \"a\" /* Accessor */:\n return emitHelpers().createClassPrivateFieldGetHelper(\n receiver,\n info.brandCheckIdentifier,\n info.kind,\n info.getterName\n );\n case \"m\" /* Method */:\n return emitHelpers().createClassPrivateFieldGetHelper(\n receiver,\n info.brandCheckIdentifier,\n info.kind,\n info.methodName\n );\n case \"f\" /* Field */:\n return emitHelpers().createClassPrivateFieldGetHelper(\n receiver,\n info.brandCheckIdentifier,\n info.kind,\n info.isStatic ? info.variableName : void 0\n );\n case \"untransformed\":\n return Debug.fail(\"Access helpers should not be created for untransformed private elements\");\n default:\n Debug.assertNever(info, \"Unknown private element type\");\n }\n }\n function visitPropertyAccessExpression(node) {\n if (isPrivateIdentifier(node.name)) {\n const privateIdentifierInfo = accessPrivateIdentifier2(node.name);\n if (privateIdentifierInfo) {\n return setTextRange(\n setOriginalNode(\n createPrivateIdentifierAccess(privateIdentifierInfo, node.expression),\n node\n ),\n node\n );\n }\n }\n if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isIdentifier(node.name) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n if (facts & 1 /* ClassWasDecorated */) {\n return visitInvalidSuperProperty(node);\n }\n if (classConstructor && superClassReference) {\n const superProperty = factory2.createReflectGetCall(\n superClassReference,\n factory2.createStringLiteralFromNode(node.name),\n classConstructor\n );\n setOriginalNode(superProperty, node.expression);\n setTextRange(superProperty, node.expression);\n return superProperty;\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitElementAccessExpression(node) {\n if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n if (facts & 1 /* ClassWasDecorated */) {\n return visitInvalidSuperProperty(node);\n }\n if (classConstructor && superClassReference) {\n const superProperty = factory2.createReflectGetCall(\n superClassReference,\n visitNode(node.argumentExpression, visitor, isExpression),\n classConstructor\n );\n setOriginalNode(superProperty, node.expression);\n setTextRange(superProperty, node.expression);\n return superProperty;\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitPreOrPostfixUnaryExpression(node, discarded) {\n if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n const operand = skipParentheses(node.operand);\n if (isPrivateIdentifierPropertyAccessExpression(operand)) {\n let info;\n if (info = accessPrivateIdentifier2(operand.name)) {\n const receiver = visitNode(operand.expression, visitor, isExpression);\n ensureDynamicThisIfNeeded(receiver);\n const { readExpression, initializeExpression } = createCopiableReceiverExpr(receiver);\n let expression = createPrivateIdentifierAccess(info, readExpression);\n const temp = isPrefixUnaryExpression(node) || discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n expression = createPrivateIdentifierAssignment(\n info,\n initializeExpression || readExpression,\n expression,\n 64 /* EqualsToken */\n );\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(operand) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n if (facts & 1 /* ClassWasDecorated */) {\n const expression = visitInvalidSuperProperty(operand);\n return isPrefixUnaryExpression(node) ? factory2.updatePrefixUnaryExpression(node, expression) : factory2.updatePostfixUnaryExpression(node, expression);\n }\n if (classConstructor && superClassReference) {\n let setterName;\n let getterName;\n if (isPropertyAccessExpression(operand)) {\n if (isIdentifier(operand.name)) {\n getterName = setterName = factory2.createStringLiteralFromNode(operand.name);\n }\n } else {\n if (isSimpleInlineableExpression(operand.argumentExpression)) {\n getterName = setterName = operand.argumentExpression;\n } else {\n getterName = factory2.createTempVariable(hoistVariableDeclaration);\n setterName = factory2.createAssignment(getterName, visitNode(operand.argumentExpression, visitor, isExpression));\n }\n }\n if (setterName && getterName) {\n let expression = factory2.createReflectGetCall(superClassReference, getterName, classConstructor);\n setTextRange(expression, operand);\n const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n expression = factory2.createReflectSetCall(superClassReference, setterName, expression, classConstructor);\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForStatement(node) {\n return factory2.updateForStatement(\n node,\n visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, discardedValueVisitor, isExpression),\n visitIterationBody(node.statement, visitor, context)\n );\n }\n function visitExpressionStatement(node) {\n return factory2.updateExpressionStatement(\n node,\n visitNode(node.expression, discardedValueVisitor, isExpression)\n );\n }\n function createCopiableReceiverExpr(receiver) {\n const clone2 = nodeIsSynthesized(receiver) ? receiver : factory2.cloneNode(receiver);\n if (receiver.kind === 110 /* ThisKeyword */ && noSubstitution.has(receiver)) {\n noSubstitution.add(clone2);\n }\n if (isSimpleInlineableExpression(receiver)) {\n return { readExpression: clone2, initializeExpression: void 0 };\n }\n const readExpression = factory2.createTempVariable(hoistVariableDeclaration);\n const initializeExpression = factory2.createAssignment(readExpression, clone2);\n return { readExpression, initializeExpression };\n }\n function visitCallExpression(node) {\n var _a;\n if (isPrivateIdentifierPropertyAccessExpression(node.expression) && accessPrivateIdentifier2(node.expression.name)) {\n const { thisArg, target } = factory2.createCallBinding(node.expression, hoistVariableDeclaration, languageVersion);\n if (isCallChain(node)) {\n return factory2.updateCallChain(\n node,\n factory2.createPropertyAccessChain(visitNode(target, visitor, isExpression), node.questionDotToken, \"call\"),\n /*questionDotToken*/\n void 0,\n /*typeArguments*/\n void 0,\n [visitNode(thisArg, visitor, isExpression), ...visitNodes2(node.arguments, visitor, isExpression)]\n );\n }\n return factory2.updateCallExpression(\n node,\n factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), \"call\"),\n /*typeArguments*/\n void 0,\n [visitNode(thisArg, visitor, isExpression), ...visitNodes2(node.arguments, visitor, isExpression)]\n );\n }\n if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.expression) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) {\n const invocation = factory2.createFunctionCallCall(\n visitNode(node.expression, visitor, isExpression),\n lexicalEnvironment.data.classConstructor,\n visitNodes2(node.arguments, visitor, isExpression)\n );\n setOriginalNode(invocation, node);\n setTextRange(invocation, node);\n return invocation;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitTaggedTemplateExpression(node) {\n var _a;\n if (isPrivateIdentifierPropertyAccessExpression(node.tag) && accessPrivateIdentifier2(node.tag.name)) {\n const { thisArg, target } = factory2.createCallBinding(node.tag, hoistVariableDeclaration, languageVersion);\n return factory2.updateTaggedTemplateExpression(\n node,\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), \"bind\"),\n /*typeArguments*/\n void 0,\n [visitNode(thisArg, visitor, isExpression)]\n ),\n /*typeArguments*/\n void 0,\n visitNode(node.template, visitor, isTemplateLiteral)\n );\n }\n if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.tag) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) {\n const invocation = factory2.createFunctionBindCall(\n visitNode(node.tag, visitor, isExpression),\n lexicalEnvironment.data.classConstructor,\n []\n );\n setOriginalNode(invocation, node);\n setTextRange(invocation, node);\n return factory2.updateTaggedTemplateExpression(\n node,\n invocation,\n /*typeArguments*/\n void 0,\n visitNode(node.template, visitor, isTemplateLiteral)\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function transformClassStaticBlockDeclaration(node) {\n if (lexicalEnvironment) {\n lexicalEnvironmentMap.set(getOriginalNode(node), lexicalEnvironment);\n }\n if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n if (isClassThisAssignmentBlock(node)) {\n const result = visitNode(node.body.statements[0].expression, visitor, isExpression);\n if (isAssignmentExpression(\n result,\n /*excludeCompoundAssignment*/\n true\n ) && result.left === result.right) {\n return void 0;\n }\n return result;\n }\n if (isClassNamedEvaluationHelperBlock(node)) {\n return visitNode(node.body.statements[0].expression, visitor, isExpression);\n }\n startLexicalEnvironment();\n let statements = setCurrentClassElementAnd(\n node,\n (statements2) => visitNodes2(statements2, visitor, isStatement),\n node.body.statements\n );\n statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n const iife = factory2.createImmediatelyInvokedArrowFunction(statements);\n setOriginalNode(skipParentheses(iife.expression), node);\n addEmitFlags(skipParentheses(iife.expression), 4 /* AdviseOnEmitNode */);\n setOriginalNode(iife, node);\n setTextRange(iife, node);\n return iife;\n }\n }\n function isAnonymousClassNeedingAssignedName(node) {\n if (isClassExpression(node) && !node.name) {\n const staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node);\n if (some(staticPropertiesOrClassStaticBlocks, isClassNamedEvaluationHelperBlock)) {\n return false;\n }\n const hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || !!(getInternalEmitFlags(node) && 32 /* TransformPrivateStaticElements */)) && some(staticPropertiesOrClassStaticBlocks, (node2) => isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2));\n return hasTransformableStatics;\n }\n return false;\n }\n function visitBinaryExpression(node, discarded) {\n if (isDestructuringAssignment(node)) {\n const savedPendingExpressions = pendingExpressions;\n pendingExpressions = void 0;\n node = factory2.updateBinaryExpression(\n node,\n visitNode(node.left, assignmentTargetVisitor, isExpression),\n node.operatorToken,\n visitNode(node.right, visitor, isExpression)\n );\n const expr = some(pendingExpressions) ? factory2.inlineExpressions(compact([...pendingExpressions, node])) : node;\n pendingExpressions = savedPendingExpressions;\n return expr;\n }\n if (isAssignmentExpression(node)) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n Debug.assertNode(node, isAssignmentExpression);\n }\n const left = skipOuterExpressions(node.left, 8 /* PartiallyEmittedExpressions */ | 1 /* Parentheses */);\n if (isPrivateIdentifierPropertyAccessExpression(left)) {\n const info = accessPrivateIdentifier2(left.name);\n if (info) {\n return setTextRange(\n setOriginalNode(\n createPrivateIdentifierAssignment(info, left.expression, node.right, node.operatorToken.kind),\n node\n ),\n node\n );\n }\n } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.left) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n if (facts & 1 /* ClassWasDecorated */) {\n return factory2.updateBinaryExpression(\n node,\n visitInvalidSuperProperty(node.left),\n node.operatorToken,\n visitNode(node.right, visitor, isExpression)\n );\n }\n if (classConstructor && superClassReference) {\n let setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0;\n if (setterName) {\n let expression = visitNode(node.right, visitor, isExpression);\n if (isCompoundAssignment(node.operatorToken.kind)) {\n let getterName = setterName;\n if (!isSimpleInlineableExpression(setterName)) {\n getterName = factory2.createTempVariable(hoistVariableDeclaration);\n setterName = factory2.createAssignment(getterName, setterName);\n }\n const superPropertyGet = factory2.createReflectGetCall(\n superClassReference,\n getterName,\n classConstructor\n );\n setOriginalNode(superPropertyGet, node.left);\n setTextRange(superPropertyGet, node.left);\n expression = factory2.createBinaryExpression(\n superPropertyGet,\n getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind),\n expression\n );\n setTextRange(expression, node);\n }\n const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n if (temp) {\n expression = factory2.createAssignment(temp, expression);\n setTextRange(temp, node);\n }\n expression = factory2.createReflectSetCall(\n superClassReference,\n setterName,\n expression,\n classConstructor\n );\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n }\n }\n if (isPrivateIdentifierInExpression(node)) {\n return transformPrivateIdentifierInInExpression(node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCommaListExpression(node, discarded) {\n const elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor);\n return factory2.updateCommaListExpression(node, elements);\n }\n function visitParenthesizedExpression(node, discarded) {\n const visitorFunc = discarded ? discardedValueVisitor : visitor;\n const expression = visitNode(node.expression, visitorFunc, isExpression);\n return factory2.updateParenthesizedExpression(node, expression);\n }\n function createPrivateIdentifierAssignment(info, receiver, right, operator) {\n receiver = visitNode(receiver, visitor, isExpression);\n right = visitNode(right, visitor, isExpression);\n ensureDynamicThisIfNeeded(receiver);\n if (isCompoundAssignment(operator)) {\n const { readExpression, initializeExpression } = createCopiableReceiverExpr(receiver);\n receiver = initializeExpression || readExpression;\n right = factory2.createBinaryExpression(\n createPrivateIdentifierAccessHelper(info, readExpression),\n getNonAssignmentOperatorForCompoundAssignment(operator),\n right\n );\n }\n setCommentRange(receiver, moveRangePos(receiver, -1));\n switch (info.kind) {\n case \"a\" /* Accessor */:\n return emitHelpers().createClassPrivateFieldSetHelper(\n receiver,\n info.brandCheckIdentifier,\n right,\n info.kind,\n info.setterName\n );\n case \"m\" /* Method */:\n return emitHelpers().createClassPrivateFieldSetHelper(\n receiver,\n info.brandCheckIdentifier,\n right,\n info.kind,\n /*f*/\n void 0\n );\n case \"f\" /* Field */:\n return emitHelpers().createClassPrivateFieldSetHelper(\n receiver,\n info.brandCheckIdentifier,\n right,\n info.kind,\n info.isStatic ? info.variableName : void 0\n );\n case \"untransformed\":\n return Debug.fail(\"Access helpers should not be created for untransformed private elements\");\n default:\n Debug.assertNever(info, \"Unknown private element type\");\n }\n }\n function getPrivateInstanceMethodsAndAccessors(node) {\n return filter(node.members, isNonStaticMethodOrAccessorWithPrivateName);\n }\n function getClassFacts(node) {\n var _a;\n let facts = 0 /* None */;\n const original = getOriginalNode(node);\n if (isClassLike(original) && classOrConstructorParameterIsDecorated(legacyDecorators, original)) {\n facts |= 1 /* ClassWasDecorated */;\n }\n if (shouldTransformPrivateElementsOrClassStaticBlocks && (classHasClassThisAssignment(node) || classHasExplicitlyAssignedName(node))) {\n facts |= 2 /* NeedsClassConstructorReference */;\n }\n let containsPublicInstanceFields = false;\n let containsInitializedPublicInstanceFields = false;\n let containsInstancePrivateElements = false;\n let containsInstanceAutoAccessors = false;\n for (const member of node.members) {\n if (isStatic(member)) {\n if (member.name && (isPrivateIdentifier(member.name) || isAutoAccessorPropertyDeclaration(member)) && shouldTransformPrivateElementsOrClassStaticBlocks) {\n facts |= 2 /* NeedsClassConstructorReference */;\n } else if (isAutoAccessorPropertyDeclaration(member) && shouldTransformAutoAccessors === -1 /* True */ && !node.name && !((_a = node.emitNode) == null ? void 0 : _a.classThis)) {\n facts |= 2 /* NeedsClassConstructorReference */;\n }\n if (isPropertyDeclaration(member) || isClassStaticBlockDeclaration(member)) {\n if (shouldTransformThisInStaticInitializers && member.transformFlags & 16384 /* ContainsLexicalThis */) {\n facts |= 8 /* NeedsSubstitutionForThisInClassStaticField */;\n if (!(facts & 1 /* ClassWasDecorated */)) {\n facts |= 2 /* NeedsClassConstructorReference */;\n }\n }\n if (shouldTransformSuperInStaticInitializers && member.transformFlags & 134217728 /* ContainsLexicalSuper */) {\n if (!(facts & 1 /* ClassWasDecorated */)) {\n facts |= 2 /* NeedsClassConstructorReference */ | 4 /* NeedsClassSuperReference */;\n }\n }\n }\n } else if (!hasAbstractModifier(getOriginalNode(member))) {\n if (isAutoAccessorPropertyDeclaration(member)) {\n containsInstanceAutoAccessors = true;\n containsInstancePrivateElements || (containsInstancePrivateElements = isPrivateIdentifierClassElementDeclaration(member));\n } else if (isPrivateIdentifierClassElementDeclaration(member)) {\n containsInstancePrivateElements = true;\n if (resolver.hasNodeCheckFlag(member, 262144 /* ContainsConstructorReference */)) {\n facts |= 2 /* NeedsClassConstructorReference */;\n }\n } else if (isPropertyDeclaration(member)) {\n containsPublicInstanceFields = true;\n containsInitializedPublicInstanceFields || (containsInitializedPublicInstanceFields = !!member.initializer);\n }\n }\n }\n const willHoistInitializersToConstructor = shouldTransformInitializersUsingDefine && containsPublicInstanceFields || shouldTransformInitializersUsingSet && containsInitializedPublicInstanceFields || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstancePrivateElements || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstanceAutoAccessors && shouldTransformAutoAccessors === -1 /* True */;\n if (willHoistInitializersToConstructor) {\n facts |= 16 /* WillHoistInitializersToConstructor */;\n }\n return facts;\n }\n function visitExpressionWithTypeArgumentsInHeritageClause(node) {\n var _a;\n const facts = ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts) || 0 /* None */;\n if (facts & 4 /* NeedsClassSuperReference */) {\n const temp = factory2.createTempVariable(\n hoistVariableDeclaration,\n /*reservedInNestedScopes*/\n true\n );\n getClassLexicalEnvironment().superClassReference = temp;\n return factory2.updateExpressionWithTypeArguments(\n node,\n factory2.createAssignment(\n temp,\n visitNode(node.expression, visitor, isExpression)\n ),\n /*typeArguments*/\n void 0\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitInNewClassLexicalEnvironment(node, visitor2) {\n var _a;\n const savedCurrentClassContainer = currentClassContainer;\n const savedPendingExpressions = pendingExpressions;\n const savedLexicalEnvironment = lexicalEnvironment;\n currentClassContainer = node;\n pendingExpressions = void 0;\n startClassLexicalEnvironment();\n const shouldAlwaysTransformPrivateStaticElements = getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */;\n if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldAlwaysTransformPrivateStaticElements) {\n const name = getNameOfDeclaration(node);\n if (name && isIdentifier(name)) {\n getPrivateIdentifierEnvironment().data.className = name;\n } else if ((_a = node.emitNode) == null ? void 0 : _a.assignedName) {\n if (isStringLiteral(node.emitNode.assignedName)) {\n if (node.emitNode.assignedName.textSourceNode && isIdentifier(node.emitNode.assignedName.textSourceNode)) {\n getPrivateIdentifierEnvironment().data.className = node.emitNode.assignedName.textSourceNode;\n } else if (isIdentifierText(node.emitNode.assignedName.text, languageVersion)) {\n const prefixName = factory2.createIdentifier(node.emitNode.assignedName.text);\n getPrivateIdentifierEnvironment().data.className = prefixName;\n }\n }\n }\n }\n if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n const privateInstanceMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node);\n if (some(privateInstanceMethodsAndAccessors)) {\n getPrivateIdentifierEnvironment().data.weakSetName = createHoistedVariableForClass(\n \"instances\",\n privateInstanceMethodsAndAccessors[0].name\n );\n }\n }\n const facts = getClassFacts(node);\n if (facts) {\n getClassLexicalEnvironment().facts = facts;\n }\n if (facts & 8 /* NeedsSubstitutionForThisInClassStaticField */) {\n enableSubstitutionForClassStaticThisOrSuperReference();\n }\n const result = visitor2(node, facts);\n endClassLexicalEnvironment();\n Debug.assert(lexicalEnvironment === savedLexicalEnvironment);\n currentClassContainer = savedCurrentClassContainer;\n pendingExpressions = savedPendingExpressions;\n return result;\n }\n function visitClassDeclaration(node) {\n return visitInNewClassLexicalEnvironment(node, visitClassDeclarationInNewClassLexicalEnvironment);\n }\n function visitClassDeclarationInNewClassLexicalEnvironment(node, facts) {\n var _a, _b;\n let pendingClassReferenceAssignment;\n if (facts & 2 /* NeedsClassConstructorReference */) {\n if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a = node.emitNode) == null ? void 0 : _a.classThis)) {\n getClassLexicalEnvironment().classConstructor = node.emitNode.classThis;\n pendingClassReferenceAssignment = factory2.createAssignment(node.emitNode.classThis, factory2.getInternalName(node));\n } else {\n const temp = factory2.createTempVariable(\n hoistVariableDeclaration,\n /*reservedInNestedScopes*/\n true\n );\n getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp);\n pendingClassReferenceAssignment = factory2.createAssignment(temp, factory2.getInternalName(node));\n }\n }\n if ((_b = node.emitNode) == null ? void 0 : _b.classThis) {\n getClassLexicalEnvironment().classThis = node.emitNode.classThis;\n }\n const isClassWithConstructorReference = resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */);\n const isExport = hasSyntacticModifier(node, 32 /* Export */);\n const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n let modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause);\n const { members, prologue } = transformClassMembers(node);\n const statements = [];\n if (pendingClassReferenceAssignment) {\n getPendingExpressions().unshift(pendingClassReferenceAssignment);\n }\n if (some(pendingExpressions)) {\n statements.push(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions)));\n }\n if (shouldTransformInitializersUsingSet || shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) {\n const staticProperties = getStaticPropertiesAndClassStaticBlock(node);\n if (some(staticProperties)) {\n addPropertyOrClassStaticBlockStatements(statements, staticProperties, factory2.getInternalName(node));\n }\n }\n if (statements.length > 0 && isExport && isDefault) {\n modifiers = visitNodes2(modifiers, (node2) => isExportOrDefaultModifier(node2) ? void 0 : node2, isModifier);\n statements.push(factory2.createExportAssignment(\n /*modifiers*/\n void 0,\n /*isExportEquals*/\n false,\n factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n )\n ));\n }\n const alias = getClassLexicalEnvironment().classConstructor;\n if (isClassWithConstructorReference && alias) {\n enableSubstitutionForClassAliases();\n classAliases[getOriginalNodeId(node)] = alias;\n }\n const classDecl = factory2.updateClassDeclaration(\n node,\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n statements.unshift(classDecl);\n if (prologue) {\n statements.unshift(factory2.createExpressionStatement(prologue));\n }\n return statements;\n }\n function visitClassExpression(node) {\n return visitInNewClassLexicalEnvironment(node, visitClassExpressionInNewClassLexicalEnvironment);\n }\n function visitClassExpressionInNewClassLexicalEnvironment(node, facts) {\n var _a, _b, _c;\n const isDecoratedClassDeclaration = !!(facts & 1 /* ClassWasDecorated */);\n const staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node);\n const isClassWithConstructorReference = resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */);\n const requiresBlockScopedVar = resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */);\n let temp;\n function createClassTempVar() {\n var _a2;\n if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a2 = node.emitNode) == null ? void 0 : _a2.classThis)) {\n return getClassLexicalEnvironment().classConstructor = node.emitNode.classThis;\n }\n const temp2 = factory2.createTempVariable(\n requiresBlockScopedVar ? addBlockScopedVariable : hoistVariableDeclaration,\n /*reservedInNestedScopes*/\n true\n );\n getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp2);\n return temp2;\n }\n if ((_a = node.emitNode) == null ? void 0 : _a.classThis) {\n getClassLexicalEnvironment().classThis = node.emitNode.classThis;\n }\n if (facts & 2 /* NeedsClassConstructorReference */) {\n temp ?? (temp = createClassTempVar());\n }\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause);\n const { members, prologue } = transformClassMembers(node);\n const classExpression = factory2.updateClassExpression(\n node,\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n const expressions = [];\n if (prologue) {\n expressions.push(prologue);\n }\n const hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) && some(staticPropertiesOrClassStaticBlocks, (node2) => isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2));\n if (hasTransformableStatics || some(pendingExpressions)) {\n if (isDecoratedClassDeclaration) {\n Debug.assertIsDefined(pendingStatements, \"Decorated classes transformed by TypeScript are expected to be within a variable declaration.\");\n if (some(pendingExpressions)) {\n addRange(pendingStatements, map(pendingExpressions, factory2.createExpressionStatement));\n }\n if (some(staticPropertiesOrClassStaticBlocks)) {\n addPropertyOrClassStaticBlockStatements(pendingStatements, staticPropertiesOrClassStaticBlocks, ((_b = node.emitNode) == null ? void 0 : _b.classThis) ?? factory2.getInternalName(node));\n }\n if (temp) {\n expressions.push(factory2.createAssignment(temp, classExpression));\n } else if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_c = node.emitNode) == null ? void 0 : _c.classThis)) {\n expressions.push(factory2.createAssignment(node.emitNode.classThis, classExpression));\n } else {\n expressions.push(classExpression);\n }\n } else {\n temp ?? (temp = createClassTempVar());\n if (isClassWithConstructorReference) {\n enableSubstitutionForClassAliases();\n const alias = factory2.cloneNode(temp);\n alias.emitNode.autoGenerate.flags &= ~8 /* ReservedInNestedScopes */;\n classAliases[getOriginalNodeId(node)] = alias;\n }\n expressions.push(factory2.createAssignment(temp, classExpression));\n addRange(expressions, pendingExpressions);\n addRange(expressions, generateInitializedPropertyExpressionsOrClassStaticBlock(staticPropertiesOrClassStaticBlocks, temp));\n expressions.push(factory2.cloneNode(temp));\n }\n } else {\n expressions.push(classExpression);\n }\n if (expressions.length > 1) {\n addEmitFlags(classExpression, 131072 /* Indented */);\n expressions.forEach(startOnNewLine);\n }\n return factory2.inlineExpressions(expressions);\n }\n function visitClassStaticBlockDeclaration(node) {\n if (!shouldTransformPrivateElementsOrClassStaticBlocks) {\n return visitEachChild(node, visitor, context);\n }\n return void 0;\n }\n function visitThisExpression(node) {\n if (shouldTransformThisInStaticInitializers && currentClassElement && isClassStaticBlockDeclaration(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classThis, classConstructor } = lexicalEnvironment.data;\n return classThis ?? classConstructor ?? node;\n }\n return node;\n }\n function transformClassMembers(node) {\n const shouldTransformPrivateStaticElementsInClass = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */);\n if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInFile) {\n for (const member of node.members) {\n if (isPrivateIdentifierClassElementDeclaration(member)) {\n if (shouldTransformClassElementToWeakMap(member)) {\n addPrivateIdentifierToEnvironment(member, member.name, addPrivateIdentifierClassElementToEnvironment);\n } else {\n const privateEnv = getPrivateIdentifierEnvironment();\n setPrivateIdentifier(privateEnv, member.name, { kind: \"untransformed\" });\n }\n }\n }\n if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n if (some(getPrivateInstanceMethodsAndAccessors(node))) {\n createBrandCheckWeakSetForPrivateMethods();\n }\n }\n if (shouldTransformAutoAccessorsInCurrentClass()) {\n for (const member of node.members) {\n if (isAutoAccessorPropertyDeclaration(member)) {\n const storageName = factory2.getGeneratedPrivateNameForNode(\n member.name,\n /*prefix*/\n void 0,\n \"_accessor_storage\"\n );\n if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInClass && hasStaticModifier(member)) {\n addPrivateIdentifierToEnvironment(member, storageName, addPrivateIdentifierPropertyDeclarationToEnvironment);\n } else {\n const privateEnv = getPrivateIdentifierEnvironment();\n setPrivateIdentifier(privateEnv, storageName, { kind: \"untransformed\" });\n }\n }\n }\n }\n }\n let members = visitNodes2(node.members, classElementVisitor, isClassElement);\n let syntheticConstructor;\n if (!some(members, isConstructorDeclaration)) {\n syntheticConstructor = transformConstructor(\n /*constructor*/\n void 0,\n node\n );\n }\n let prologue;\n let syntheticStaticBlock;\n if (!shouldTransformPrivateElementsOrClassStaticBlocks && some(pendingExpressions)) {\n let statement = factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions));\n if (statement.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */) {\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n const arrow = factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n [],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n factory2.createBlock([statement])\n );\n prologue = factory2.createAssignment(temp, arrow);\n statement = factory2.createExpressionStatement(factory2.createCallExpression(\n temp,\n /*typeArguments*/\n void 0,\n []\n ));\n }\n const block = factory2.createBlock([statement]);\n syntheticStaticBlock = factory2.createClassStaticBlockDeclaration(block);\n pendingExpressions = void 0;\n }\n if (syntheticConstructor || syntheticStaticBlock) {\n let membersArray;\n const classThisAssignmentBlock = find(members, isClassThisAssignmentBlock);\n const classNamedEvaluationHelperBlock = find(members, isClassNamedEvaluationHelperBlock);\n membersArray = append(membersArray, classThisAssignmentBlock);\n membersArray = append(membersArray, classNamedEvaluationHelperBlock);\n membersArray = append(membersArray, syntheticConstructor);\n membersArray = append(membersArray, syntheticStaticBlock);\n const remainingMembers = classThisAssignmentBlock || classNamedEvaluationHelperBlock ? filter(members, (member) => member !== classThisAssignmentBlock && member !== classNamedEvaluationHelperBlock) : members;\n membersArray = addRange(membersArray, remainingMembers);\n members = setTextRange(\n factory2.createNodeArray(membersArray),\n /*location*/\n node.members\n );\n }\n return { members, prologue };\n }\n function createBrandCheckWeakSetForPrivateMethods() {\n const { weakSetName } = getPrivateIdentifierEnvironment().data;\n Debug.assert(weakSetName, \"weakSetName should be set in private identifier environment\");\n getPendingExpressions().push(\n factory2.createAssignment(\n weakSetName,\n factory2.createNewExpression(\n factory2.createIdentifier(\"WeakSet\"),\n /*typeArguments*/\n void 0,\n []\n )\n )\n );\n }\n function transformConstructor(constructor, container) {\n constructor = visitNode(constructor, visitor, isConstructorDeclaration);\n if (!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) || !(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */)) {\n return constructor;\n }\n const extendsClauseElement = getEffectiveBaseTypeNode(container);\n const isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */);\n const parameters = visitParameterList(constructor ? constructor.parameters : void 0, visitor, context);\n const body = transformConstructorBody(container, constructor, isDerivedClass);\n if (!body) {\n return constructor;\n }\n if (constructor) {\n Debug.assert(parameters);\n return factory2.updateConstructorDeclaration(\n constructor,\n /*modifiers*/\n void 0,\n parameters,\n body\n );\n }\n return startOnNewLine(\n setOriginalNode(\n setTextRange(\n factory2.createConstructorDeclaration(\n /*modifiers*/\n void 0,\n parameters ?? [],\n body\n ),\n constructor || container\n ),\n constructor\n )\n );\n }\n function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements, constructor) {\n const superStatementIndex = superPath[superPathDepth];\n const superStatement = statementsIn[superStatementIndex];\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n statementOffset = superStatementIndex + 1;\n if (isTryStatement(superStatement)) {\n const tryBlockStatements = [];\n transformConstructorBodyWorker(\n tryBlockStatements,\n superStatement.tryBlock.statements,\n /*statementOffset*/\n 0,\n superPath,\n superPathDepth + 1,\n initializerStatements,\n constructor\n );\n const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n statementsOut.push(factory2.updateTryStatement(\n superStatement,\n factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n visitNode(superStatement.catchClause, visitor, isCatchClause),\n visitNode(superStatement.finallyBlock, visitor, isBlock)\n ));\n } else {\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n while (statementOffset < statementsIn.length) {\n const statement = statementsIn[statementOffset];\n if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) {\n statementOffset++;\n } else {\n break;\n }\n }\n addRange(statementsOut, initializerStatements);\n }\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset));\n }\n function transformConstructorBody(node, constructor, isDerivedClass) {\n var _a;\n const instanceProperties = getProperties(\n node,\n /*requireInitializer*/\n false,\n /*isStatic*/\n false\n );\n let properties = instanceProperties;\n if (!useDefineForClassFields) {\n properties = filter(properties, (property) => !!property.initializer || isPrivateIdentifier(property.name) || hasAccessorModifier(property));\n }\n const privateMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node);\n const needsConstructorBody = some(properties) || some(privateMethodsAndAccessors);\n if (!constructor && !needsConstructorBody) {\n return visitFunctionBody(\n /*node*/\n void 0,\n visitor,\n context\n );\n }\n resumeLexicalEnvironment();\n const needsSyntheticConstructor = !constructor && isDerivedClass;\n let statementOffset = 0;\n let statements = [];\n const initializerStatements = [];\n const receiver = factory2.createThis();\n addInstanceMethodStatements(initializerStatements, privateMethodsAndAccessors, receiver);\n if (constructor) {\n const parameterProperties = filter(instanceProperties, (prop) => isParameterPropertyDeclaration(getOriginalNode(prop), constructor));\n const nonParameterProperties = filter(properties, (prop) => !isParameterPropertyDeclaration(getOriginalNode(prop), constructor));\n addPropertyOrClassStaticBlockStatements(initializerStatements, parameterProperties, receiver);\n addPropertyOrClassStaticBlockStatements(initializerStatements, nonParameterProperties, receiver);\n } else {\n addPropertyOrClassStaticBlockStatements(initializerStatements, properties, receiver);\n }\n if (constructor == null ? void 0 : constructor.body) {\n statementOffset = factory2.copyPrologue(\n constructor.body.statements,\n statements,\n /*ensureUseStrict*/\n false,\n visitor\n );\n const superStatementIndices = findSuperStatementIndexPath(constructor.body.statements, statementOffset);\n if (superStatementIndices.length) {\n transformConstructorBodyWorker(\n statements,\n constructor.body.statements,\n statementOffset,\n superStatementIndices,\n /*superPathDepth*/\n 0,\n initializerStatements,\n constructor\n );\n } else {\n while (statementOffset < constructor.body.statements.length) {\n const statement = constructor.body.statements[statementOffset];\n if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) {\n statementOffset++;\n } else {\n break;\n }\n }\n addRange(statements, initializerStatements);\n addRange(statements, visitNodes2(constructor.body.statements, visitor, isStatement, statementOffset));\n }\n } else {\n if (needsSyntheticConstructor) {\n statements.push(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createSuper(),\n /*typeArguments*/\n void 0,\n [factory2.createSpreadElement(factory2.createIdentifier(\"arguments\"))]\n )\n )\n );\n }\n addRange(statements, initializerStatements);\n }\n statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n if (statements.length === 0 && !constructor) {\n return void 0;\n }\n const multiLine = (constructor == null ? void 0 : constructor.body) && constructor.body.statements.length >= statements.length ? constructor.body.multiLine ?? statements.length > 0 : statements.length > 0;\n return setTextRange(\n factory2.createBlock(\n setTextRange(\n factory2.createNodeArray(statements),\n /*location*/\n ((_a = constructor == null ? void 0 : constructor.body) == null ? void 0 : _a.statements) ?? node.members\n ),\n multiLine\n ),\n /*location*/\n constructor == null ? void 0 : constructor.body\n );\n }\n function addPropertyOrClassStaticBlockStatements(statements, properties, receiver) {\n for (const property of properties) {\n if (isStatic(property) && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n continue;\n }\n const statement = transformPropertyOrClassStaticBlock(property, receiver);\n if (!statement) {\n continue;\n }\n statements.push(statement);\n }\n }\n function transformPropertyOrClassStaticBlock(property, receiver) {\n const expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : transformProperty(property, receiver);\n if (!expression) {\n return void 0;\n }\n const statement = factory2.createExpressionStatement(expression);\n setOriginalNode(statement, property);\n addEmitFlags(statement, getEmitFlags(property) & 3072 /* NoComments */);\n setCommentRange(statement, property);\n const propertyOriginalNode = getOriginalNode(property);\n if (isParameter(propertyOriginalNode)) {\n setSourceMapRange(statement, propertyOriginalNode);\n removeAllComments(statement);\n } else {\n setSourceMapRange(statement, moveRangePastModifiers(property));\n }\n setSyntheticLeadingComments(expression, void 0);\n setSyntheticTrailingComments(expression, void 0);\n if (hasAccessorModifier(propertyOriginalNode)) {\n addEmitFlags(statement, 3072 /* NoComments */);\n }\n return statement;\n }\n function generateInitializedPropertyExpressionsOrClassStaticBlock(propertiesOrClassStaticBlocks, receiver) {\n const expressions = [];\n for (const property of propertiesOrClassStaticBlocks) {\n const expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : setCurrentClassElementAnd(\n property,\n () => transformProperty(property, receiver),\n /*arg*/\n void 0\n );\n if (!expression) {\n continue;\n }\n startOnNewLine(expression);\n setOriginalNode(expression, property);\n addEmitFlags(expression, getEmitFlags(property) & 3072 /* NoComments */);\n setSourceMapRange(expression, moveRangePastModifiers(property));\n setCommentRange(expression, property);\n expressions.push(expression);\n }\n return expressions;\n }\n function transformProperty(property, receiver) {\n var _a;\n const savedCurrentClassElement = currentClassElement;\n const transformed = transformPropertyWorker(property, receiver);\n if (transformed && hasStaticModifier(property) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts)) {\n setOriginalNode(transformed, property);\n addEmitFlags(transformed, 4 /* AdviseOnEmitNode */);\n setSourceMapRange(transformed, getSourceMapRange(property.name));\n lexicalEnvironmentMap.set(getOriginalNode(property), lexicalEnvironment);\n }\n currentClassElement = savedCurrentClassElement;\n return transformed;\n }\n function transformPropertyWorker(property, receiver) {\n const emitAssignment = !useDefineForClassFields;\n if (isNamedEvaluation(property, isAnonymousClassNeedingAssignedName)) {\n property = transformNamedEvaluation(context, property);\n }\n const propertyName = hasAccessorModifier(property) ? factory2.getGeneratedPrivateNameForNode(property.name) : isComputedPropertyName(property.name) && !isSimpleInlineableExpression(property.name.expression) ? factory2.updateComputedPropertyName(property.name, factory2.getGeneratedNameForNode(property.name)) : property.name;\n if (hasStaticModifier(property)) {\n currentClassElement = property;\n }\n if (isPrivateIdentifier(propertyName) && shouldTransformClassElementToWeakMap(property)) {\n const privateIdentifierInfo = accessPrivateIdentifier2(propertyName);\n if (privateIdentifierInfo) {\n if (privateIdentifierInfo.kind === \"f\" /* Field */) {\n if (!privateIdentifierInfo.isStatic) {\n return createPrivateInstanceFieldInitializer(\n factory2,\n receiver,\n visitNode(property.initializer, visitor, isExpression),\n privateIdentifierInfo.brandCheckIdentifier\n );\n } else {\n return createPrivateStaticFieldInitializer(\n factory2,\n privateIdentifierInfo.variableName,\n visitNode(property.initializer, visitor, isExpression)\n );\n }\n } else {\n return void 0;\n }\n } else {\n Debug.fail(\"Undeclared private name for property declaration.\");\n }\n }\n if ((isPrivateIdentifier(propertyName) || hasStaticModifier(property)) && !property.initializer) {\n return void 0;\n }\n const propertyOriginalNode = getOriginalNode(property);\n if (hasSyntacticModifier(propertyOriginalNode, 64 /* Abstract */)) {\n return void 0;\n }\n let initializer = visitNode(property.initializer, visitor, isExpression);\n if (isParameterPropertyDeclaration(propertyOriginalNode, propertyOriginalNode.parent) && isIdentifier(propertyName)) {\n const localName = factory2.cloneNode(propertyName);\n if (initializer) {\n if (isParenthesizedExpression(initializer) && isCommaExpression(initializer.expression) && isCallToHelper(initializer.expression.left, \"___runInitializers\") && isVoidExpression(initializer.expression.right) && isNumericLiteral(initializer.expression.right.expression)) {\n initializer = initializer.expression.left;\n }\n initializer = factory2.inlineExpressions([initializer, localName]);\n } else {\n initializer = localName;\n }\n setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */);\n setSourceMapRange(localName, propertyOriginalNode.name);\n setEmitFlags(localName, 3072 /* NoComments */);\n } else {\n initializer ?? (initializer = factory2.createVoidZero());\n }\n if (emitAssignment || isPrivateIdentifier(propertyName)) {\n const memberAccess = createMemberAccessForPropertyName(\n factory2,\n receiver,\n propertyName,\n /*location*/\n propertyName\n );\n addEmitFlags(memberAccess, 1024 /* NoLeadingComments */);\n const expression = factory2.createAssignment(memberAccess, initializer);\n return expression;\n } else {\n const name = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName;\n const descriptor = factory2.createPropertyDescriptor({ value: initializer, configurable: true, writable: true, enumerable: true });\n return factory2.createObjectDefinePropertyCall(receiver, name, descriptor);\n }\n }\n function enableSubstitutionForClassAliases() {\n if ((enabledSubstitutions & 1 /* ClassAliases */) === 0) {\n enabledSubstitutions |= 1 /* ClassAliases */;\n context.enableSubstitution(80 /* Identifier */);\n classAliases = [];\n }\n }\n function enableSubstitutionForClassStaticThisOrSuperReference() {\n if ((enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */) === 0) {\n enabledSubstitutions |= 2 /* ClassStaticThisOrSuperReference */;\n context.enableSubstitution(110 /* ThisKeyword */);\n context.enableEmitNotification(263 /* FunctionDeclaration */);\n context.enableEmitNotification(219 /* FunctionExpression */);\n context.enableEmitNotification(177 /* Constructor */);\n context.enableEmitNotification(178 /* GetAccessor */);\n context.enableEmitNotification(179 /* SetAccessor */);\n context.enableEmitNotification(175 /* MethodDeclaration */);\n context.enableEmitNotification(173 /* PropertyDeclaration */);\n context.enableEmitNotification(168 /* ComputedPropertyName */);\n }\n }\n function addInstanceMethodStatements(statements, methods, receiver) {\n if (!shouldTransformPrivateElementsOrClassStaticBlocks || !some(methods)) {\n return;\n }\n const { weakSetName } = getPrivateIdentifierEnvironment().data;\n Debug.assert(weakSetName, \"weakSetName should be set in private identifier environment\");\n statements.push(\n factory2.createExpressionStatement(\n createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName)\n )\n );\n }\n function visitInvalidSuperProperty(node) {\n return isPropertyAccessExpression(node) ? factory2.updatePropertyAccessExpression(\n node,\n factory2.createVoidZero(),\n node.name\n ) : factory2.updateElementAccessExpression(\n node,\n factory2.createVoidZero(),\n visitNode(node.argumentExpression, visitor, isExpression)\n );\n }\n function getPropertyNameExpressionIfNeeded(name, shouldHoist) {\n if (isComputedPropertyName(name)) {\n const cacheAssignment = findComputedPropertyNameCacheAssignment(name);\n const expression = visitNode(name.expression, visitor, isExpression);\n const innerExpression = skipPartiallyEmittedExpressions(expression);\n const inlinable = isSimpleInlineableExpression(innerExpression);\n const alreadyTransformed = !!cacheAssignment || isAssignmentExpression(innerExpression) && isGeneratedIdentifier(innerExpression.left);\n if (!alreadyTransformed && !inlinable && shouldHoist) {\n const generatedName = factory2.getGeneratedNameForNode(name);\n if (resolver.hasNodeCheckFlag(name, 32768 /* BlockScopedBindingInLoop */)) {\n addBlockScopedVariable(generatedName);\n } else {\n hoistVariableDeclaration(generatedName);\n }\n return factory2.createAssignment(generatedName, expression);\n }\n return inlinable || isIdentifier(innerExpression) ? void 0 : expression;\n }\n }\n function startClassLexicalEnvironment() {\n lexicalEnvironment = { previous: lexicalEnvironment, data: void 0 };\n }\n function endClassLexicalEnvironment() {\n lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous;\n }\n function getClassLexicalEnvironment() {\n Debug.assert(lexicalEnvironment);\n return lexicalEnvironment.data ?? (lexicalEnvironment.data = {\n facts: 0 /* None */,\n classConstructor: void 0,\n classThis: void 0,\n superClassReference: void 0\n // privateIdentifierEnvironment: undefined,\n });\n }\n function getPrivateIdentifierEnvironment() {\n Debug.assert(lexicalEnvironment);\n return lexicalEnvironment.privateEnv ?? (lexicalEnvironment.privateEnv = newPrivateEnvironment({\n className: void 0,\n weakSetName: void 0\n }));\n }\n function getPendingExpressions() {\n return pendingExpressions ?? (pendingExpressions = []);\n }\n function addPrivateIdentifierClassElementToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n if (isAutoAccessorPropertyDeclaration(node)) {\n addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n } else if (isPropertyDeclaration(node)) {\n addPrivateIdentifierPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n } else if (isMethodDeclaration(node)) {\n addPrivateIdentifierMethodDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n } else if (isGetAccessorDeclaration(node)) {\n addPrivateIdentifierGetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n } else if (isSetAccessorDeclaration(node)) {\n addPrivateIdentifierSetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n }\n }\n function addPrivateIdentifierPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n if (isStatic2) {\n const brandCheckIdentifier = Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\");\n const variableName = createHoistedVariableForPrivateName(name);\n setPrivateIdentifier(privateEnv, name, {\n kind: \"f\" /* Field */,\n isStatic: true,\n brandCheckIdentifier,\n variableName,\n isValid\n });\n } else {\n const weakMapName = createHoistedVariableForPrivateName(name);\n setPrivateIdentifier(privateEnv, name, {\n kind: \"f\" /* Field */,\n isStatic: false,\n brandCheckIdentifier: weakMapName,\n isValid\n });\n getPendingExpressions().push(factory2.createAssignment(\n weakMapName,\n factory2.createNewExpression(\n factory2.createIdentifier(\"WeakMap\"),\n /*typeArguments*/\n void 0,\n []\n )\n ));\n }\n }\n function addPrivateIdentifierMethodDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n const methodName = createHoistedVariableForPrivateName(name);\n const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n setPrivateIdentifier(privateEnv, name, {\n kind: \"m\" /* Method */,\n methodName,\n brandCheckIdentifier,\n isStatic: isStatic2,\n isValid\n });\n }\n function addPrivateIdentifierGetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n const getterName = createHoistedVariableForPrivateName(name, \"_get\");\n const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n if ((previousInfo == null ? void 0 : previousInfo.kind) === \"a\" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.getterName) {\n previousInfo.getterName = getterName;\n } else {\n setPrivateIdentifier(privateEnv, name, {\n kind: \"a\" /* Accessor */,\n getterName,\n setterName: void 0,\n brandCheckIdentifier,\n isStatic: isStatic2,\n isValid\n });\n }\n }\n function addPrivateIdentifierSetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n const setterName = createHoistedVariableForPrivateName(name, \"_set\");\n const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n if ((previousInfo == null ? void 0 : previousInfo.kind) === \"a\" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.setterName) {\n previousInfo.setterName = setterName;\n } else {\n setPrivateIdentifier(privateEnv, name, {\n kind: \"a\" /* Accessor */,\n getterName: void 0,\n setterName,\n brandCheckIdentifier,\n isStatic: isStatic2,\n isValid\n });\n }\n }\n function addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n const getterName = createHoistedVariableForPrivateName(name, \"_get\");\n const setterName = createHoistedVariableForPrivateName(name, \"_set\");\n const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n setPrivateIdentifier(privateEnv, name, {\n kind: \"a\" /* Accessor */,\n getterName,\n setterName,\n brandCheckIdentifier,\n isStatic: isStatic2,\n isValid\n });\n }\n function addPrivateIdentifierToEnvironment(node, name, addDeclaration) {\n const lex = getClassLexicalEnvironment();\n const privateEnv = getPrivateIdentifierEnvironment();\n const previousInfo = getPrivateIdentifier(privateEnv, name);\n const isStatic2 = hasStaticModifier(node);\n const isValid = !isReservedPrivateName(name) && previousInfo === void 0;\n addDeclaration(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n }\n function createHoistedVariableForClass(name, node, suffix) {\n const { className } = getPrivateIdentifierEnvironment().data;\n const prefix = className ? { prefix: \"_\", node: className, suffix: \"_\" } : \"_\";\n const identifier = typeof name === \"object\" ? factory2.getGeneratedNameForNode(name, 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */, prefix, suffix) : typeof name === \"string\" ? factory2.createUniqueName(name, 16 /* Optimistic */, prefix, suffix) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0,\n /*reservedInNestedScopes*/\n true,\n prefix,\n suffix\n );\n if (resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */)) {\n addBlockScopedVariable(identifier);\n } else {\n hoistVariableDeclaration(identifier);\n }\n return identifier;\n }\n function createHoistedVariableForPrivateName(name, suffix) {\n const text = tryGetTextOfPropertyName(name);\n return createHoistedVariableForClass((text == null ? void 0 : text.substring(1)) ?? name, name, suffix);\n }\n function accessPrivateIdentifier2(name) {\n const info = accessPrivateIdentifier(lexicalEnvironment, name);\n return (info == null ? void 0 : info.kind) === \"untransformed\" ? void 0 : info;\n }\n function wrapPrivateIdentifierForDestructuringTarget(node) {\n const parameter = factory2.getGeneratedNameForNode(node);\n const info = accessPrivateIdentifier2(node.name);\n if (!info) {\n return visitEachChild(node, visitor, context);\n }\n let receiver = node.expression;\n if (isThisProperty(node) || isSuperProperty(node) || !isSimpleCopiableExpression(node.expression)) {\n receiver = factory2.createTempVariable(\n hoistVariableDeclaration,\n /*reservedInNestedScopes*/\n true\n );\n getPendingExpressions().push(factory2.createBinaryExpression(receiver, 64 /* EqualsToken */, visitNode(node.expression, visitor, isExpression)));\n }\n return factory2.createAssignmentTargetWrapper(\n parameter,\n createPrivateIdentifierAssignment(\n info,\n receiver,\n parameter,\n 64 /* EqualsToken */\n )\n );\n }\n function visitDestructuringAssignmentTarget(node) {\n if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) {\n return visitAssignmentPattern(node);\n }\n if (isPrivateIdentifierPropertyAccessExpression(node)) {\n return wrapPrivateIdentifierForDestructuringTarget(node);\n } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n if (facts & 1 /* ClassWasDecorated */) {\n return visitInvalidSuperProperty(node);\n } else if (classConstructor && superClassReference) {\n const name = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0;\n if (name) {\n const temp = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n return factory2.createAssignmentTargetWrapper(\n temp,\n factory2.createReflectSetCall(\n superClassReference,\n name,\n temp,\n classConstructor\n )\n );\n }\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentElement(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n if (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n )) {\n const left = visitDestructuringAssignmentTarget(node.left);\n const right = visitNode(node.right, visitor, isExpression);\n return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n }\n return visitDestructuringAssignmentTarget(node);\n }\n function visitAssignmentRestElement(node) {\n if (isLeftHandSideExpression(node.expression)) {\n const expression = visitDestructuringAssignmentTarget(node.expression);\n return factory2.updateSpreadElement(node, expression);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitArrayAssignmentElement(node) {\n if (isArrayBindingOrAssignmentElement(node)) {\n if (isSpreadElement(node)) return visitAssignmentRestElement(node);\n if (!isOmittedExpression(node)) return visitAssignmentElement(node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentProperty(node) {\n const name = visitNode(node.name, visitor, isPropertyName);\n if (isAssignmentExpression(\n node.initializer,\n /*excludeCompoundAssignment*/\n true\n )) {\n const assignmentElement = visitAssignmentElement(node.initializer);\n return factory2.updatePropertyAssignment(node, name, assignmentElement);\n }\n if (isLeftHandSideExpression(node.initializer)) {\n const assignmentElement = visitDestructuringAssignmentTarget(node.initializer);\n return factory2.updatePropertyAssignment(node, name, assignmentElement);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitShorthandAssignmentProperty(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentRestProperty(node) {\n if (isLeftHandSideExpression(node.expression)) {\n const expression = visitDestructuringAssignmentTarget(node.expression);\n return factory2.updateSpreadAssignment(node, expression);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitObjectAssignmentElement(node) {\n Debug.assertNode(node, isObjectBindingOrAssignmentElement);\n if (isSpreadAssignment(node)) return visitAssignmentRestProperty(node);\n if (isShorthandPropertyAssignment(node)) return visitShorthandAssignmentProperty(node);\n if (isPropertyAssignment(node)) return visitAssignmentProperty(node);\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentPattern(node) {\n if (isArrayLiteralExpression(node)) {\n return factory2.updateArrayLiteralExpression(\n node,\n visitNodes2(node.elements, visitArrayAssignmentElement, isExpression)\n );\n } else {\n return factory2.updateObjectLiteralExpression(\n node,\n visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike)\n );\n }\n }\n function onEmitNode(hint, node, emitCallback) {\n const original = getOriginalNode(node);\n const lex = lexicalEnvironmentMap.get(original);\n if (lex) {\n const savedLexicalEnvironment = lexicalEnvironment;\n const savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n lexicalEnvironment = lex;\n previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n shouldSubstituteThisWithClassThis = !isClassStaticBlockDeclaration(original) || !(getInternalEmitFlags(original) & 32 /* TransformPrivateStaticElements */);\n previousOnEmitNode(hint, node, emitCallback);\n shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis;\n lexicalEnvironment = savedLexicalEnvironment;\n return;\n }\n switch (node.kind) {\n case 219 /* FunctionExpression */:\n if (isArrowFunction(original) || getEmitFlags(node) & 524288 /* AsyncFunctionBody */) {\n break;\n }\n // falls through\n case 263 /* FunctionDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n case 173 /* PropertyDeclaration */: {\n const savedLexicalEnvironment = lexicalEnvironment;\n const savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n lexicalEnvironment = void 0;\n previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n shouldSubstituteThisWithClassThis = false;\n previousOnEmitNode(hint, node, emitCallback);\n shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis;\n lexicalEnvironment = savedLexicalEnvironment;\n return;\n }\n case 168 /* ComputedPropertyName */: {\n const savedLexicalEnvironment = lexicalEnvironment;\n const savedShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous;\n shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n previousOnEmitNode(hint, node, emitCallback);\n shouldSubstituteThisWithClassThis = savedShouldSubstituteThisWithClassThis;\n lexicalEnvironment = savedLexicalEnvironment;\n return;\n }\n }\n previousOnEmitNode(hint, node, emitCallback);\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n case 110 /* ThisKeyword */:\n return substituteThisExpression(node);\n }\n return node;\n }\n function substituteThisExpression(node) {\n if (enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */ && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !noSubstitution.has(node)) {\n const { facts, classConstructor, classThis } = lexicalEnvironment.data;\n const substituteThis = shouldSubstituteThisWithClassThis ? classThis ?? classConstructor : classConstructor;\n if (substituteThis) {\n return setTextRange(\n setOriginalNode(\n factory2.cloneNode(substituteThis),\n node\n ),\n node\n );\n }\n if (facts & 1 /* ClassWasDecorated */ && legacyDecorators) {\n return factory2.createParenthesizedExpression(factory2.createVoidZero());\n }\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n return trySubstituteClassAlias(node) || node;\n }\n function trySubstituteClassAlias(node) {\n if (enabledSubstitutions & 1 /* ClassAliases */) {\n if (resolver.hasNodeCheckFlag(node, 536870912 /* ConstructorReference */)) {\n const declaration = resolver.getReferencedValueDeclaration(node);\n if (declaration) {\n const classAlias = classAliases[declaration.id];\n if (classAlias) {\n const clone2 = factory2.cloneNode(classAlias);\n setSourceMapRange(clone2, node);\n setCommentRange(clone2, node);\n return clone2;\n }\n }\n }\n }\n return void 0;\n }\n}\nfunction createPrivateStaticFieldInitializer(factory2, variableName, initializer) {\n return factory2.createAssignment(\n variableName,\n factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"value\", initializer || factory2.createVoidZero())\n ])\n );\n}\nfunction createPrivateInstanceFieldInitializer(factory2, receiver, initializer, weakMapName) {\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(weakMapName, \"set\"),\n /*typeArguments*/\n void 0,\n [receiver, initializer || factory2.createVoidZero()]\n );\n}\nfunction createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName) {\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(weakSetName, \"add\"),\n /*typeArguments*/\n void 0,\n [receiver]\n );\n}\nfunction isReservedPrivateName(node) {\n return !isGeneratedPrivateIdentifier(node) && node.escapedText === \"#constructor\";\n}\nfunction isPrivateIdentifierInExpression(node) {\n return isPrivateIdentifier(node.left) && node.operatorToken.kind === 103 /* InKeyword */;\n}\nfunction isStaticPropertyDeclaration2(node) {\n return isPropertyDeclaration(node) && hasStaticModifier(node);\n}\nfunction isStaticPropertyDeclarationOrClassStaticBlock(node) {\n return isClassStaticBlockDeclaration(node) || isStaticPropertyDeclaration2(node);\n}\n\n// src/compiler/transformers/typeSerializer.ts\nfunction createRuntimeTypeSerializer(context) {\n const {\n factory: factory2,\n hoistVariableDeclaration\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const strictNullChecks = getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n let currentLexicalScope;\n let currentNameScope;\n return {\n serializeTypeNode: (serializerContext, node) => setSerializerContextAnd(serializerContext, serializeTypeNode, node),\n serializeTypeOfNode: (serializerContext, node, container) => setSerializerContextAnd(serializerContext, serializeTypeOfNode, node, container),\n serializeParameterTypesOfNode: (serializerContext, node, container) => setSerializerContextAnd(serializerContext, serializeParameterTypesOfNode, node, container),\n serializeReturnTypeOfNode: (serializerContext, node) => setSerializerContextAnd(serializerContext, serializeReturnTypeOfNode, node)\n };\n function setSerializerContextAnd(serializerContext, cb, node, arg) {\n const savedCurrentLexicalScope = currentLexicalScope;\n const savedCurrentNameScope = currentNameScope;\n currentLexicalScope = serializerContext.currentLexicalScope;\n currentNameScope = serializerContext.currentNameScope;\n const result = arg === void 0 ? cb(node) : cb(node, arg);\n currentLexicalScope = savedCurrentLexicalScope;\n currentNameScope = savedCurrentNameScope;\n return result;\n }\n function getAccessorTypeNode(node, container) {\n const accessors = getAllAccessorDeclarations(container.members, node);\n return accessors.setAccessor && getSetAccessorTypeAnnotationNode(accessors.setAccessor) || accessors.getAccessor && getEffectiveReturnTypeNode(accessors.getAccessor);\n }\n function serializeTypeOfNode(node, container) {\n switch (node.kind) {\n case 173 /* PropertyDeclaration */:\n case 170 /* Parameter */:\n return serializeTypeNode(node.type);\n case 179 /* SetAccessor */:\n case 178 /* GetAccessor */:\n return serializeTypeNode(getAccessorTypeNode(node, container));\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 175 /* MethodDeclaration */:\n return factory2.createIdentifier(\"Function\");\n default:\n return factory2.createVoidZero();\n }\n }\n function serializeParameterTypesOfNode(node, container) {\n const valueDeclaration = isClassLike(node) ? getFirstConstructorWithBody(node) : isFunctionLike(node) && nodeIsPresent(node.body) ? node : void 0;\n const expressions = [];\n if (valueDeclaration) {\n const parameters = getParametersOfDecoratedDeclaration(valueDeclaration, container);\n const numParameters = parameters.length;\n for (let i = 0; i < numParameters; i++) {\n const parameter = parameters[i];\n if (i === 0 && isIdentifier(parameter.name) && parameter.name.escapedText === \"this\") {\n continue;\n }\n if (parameter.dotDotDotToken) {\n expressions.push(serializeTypeNode(getRestParameterElementType(parameter.type)));\n } else {\n expressions.push(serializeTypeOfNode(parameter, container));\n }\n }\n }\n return factory2.createArrayLiteralExpression(expressions);\n }\n function getParametersOfDecoratedDeclaration(node, container) {\n if (container && node.kind === 178 /* GetAccessor */) {\n const { setAccessor } = getAllAccessorDeclarations(container.members, node);\n if (setAccessor) {\n return setAccessor.parameters;\n }\n }\n return node.parameters;\n }\n function serializeReturnTypeOfNode(node) {\n if (isFunctionLike(node) && node.type) {\n return serializeTypeNode(node.type);\n } else if (isAsyncFunction(node)) {\n return factory2.createIdentifier(\"Promise\");\n }\n return factory2.createVoidZero();\n }\n function serializeTypeNode(node) {\n if (node === void 0) {\n return factory2.createIdentifier(\"Object\");\n }\n node = skipTypeParentheses(node);\n switch (node.kind) {\n case 116 /* VoidKeyword */:\n case 157 /* UndefinedKeyword */:\n case 146 /* NeverKeyword */:\n return factory2.createVoidZero();\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n return factory2.createIdentifier(\"Function\");\n case 189 /* ArrayType */:\n case 190 /* TupleType */:\n return factory2.createIdentifier(\"Array\");\n case 183 /* TypePredicate */:\n return node.assertsModifier ? factory2.createVoidZero() : factory2.createIdentifier(\"Boolean\");\n case 136 /* BooleanKeyword */:\n return factory2.createIdentifier(\"Boolean\");\n case 204 /* TemplateLiteralType */:\n case 154 /* StringKeyword */:\n return factory2.createIdentifier(\"String\");\n case 151 /* ObjectKeyword */:\n return factory2.createIdentifier(\"Object\");\n case 202 /* LiteralType */:\n return serializeLiteralOfLiteralTypeNode(node.literal);\n case 150 /* NumberKeyword */:\n return factory2.createIdentifier(\"Number\");\n case 163 /* BigIntKeyword */:\n return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n case 155 /* SymbolKeyword */:\n return getGlobalConstructor(\"Symbol\", 2 /* ES2015 */);\n case 184 /* TypeReference */:\n return serializeTypeReferenceNode(node);\n case 194 /* IntersectionType */:\n return serializeUnionOrIntersectionConstituents(\n node.types,\n /*isIntersection*/\n true\n );\n case 193 /* UnionType */:\n return serializeUnionOrIntersectionConstituents(\n node.types,\n /*isIntersection*/\n false\n );\n case 195 /* ConditionalType */:\n return serializeUnionOrIntersectionConstituents(\n [node.trueType, node.falseType],\n /*isIntersection*/\n false\n );\n case 199 /* TypeOperator */:\n if (node.operator === 148 /* ReadonlyKeyword */) {\n return serializeTypeNode(node.type);\n }\n break;\n case 187 /* TypeQuery */:\n case 200 /* IndexedAccessType */:\n case 201 /* MappedType */:\n case 188 /* TypeLiteral */:\n case 133 /* AnyKeyword */:\n case 159 /* UnknownKeyword */:\n case 198 /* ThisType */:\n case 206 /* ImportType */:\n break;\n // handle JSDoc types from an invalid parse\n case 313 /* JSDocAllType */:\n case 314 /* JSDocUnknownType */:\n case 318 /* JSDocFunctionType */:\n case 319 /* JSDocVariadicType */:\n case 320 /* JSDocNamepathType */:\n break;\n case 315 /* JSDocNullableType */:\n case 316 /* JSDocNonNullableType */:\n case 317 /* JSDocOptionalType */:\n return serializeTypeNode(node.type);\n default:\n return Debug.failBadSyntaxKind(node);\n }\n return factory2.createIdentifier(\"Object\");\n }\n function serializeLiteralOfLiteralTypeNode(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return factory2.createIdentifier(\"String\");\n case 225 /* PrefixUnaryExpression */: {\n const operand = node.operand;\n switch (operand.kind) {\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n return serializeLiteralOfLiteralTypeNode(operand);\n default:\n return Debug.failBadSyntaxKind(operand);\n }\n }\n case 9 /* NumericLiteral */:\n return factory2.createIdentifier(\"Number\");\n case 10 /* BigIntLiteral */:\n return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n return factory2.createIdentifier(\"Boolean\");\n case 106 /* NullKeyword */:\n return factory2.createVoidZero();\n default:\n return Debug.failBadSyntaxKind(node);\n }\n }\n function serializeUnionOrIntersectionConstituents(types, isIntersection) {\n let serializedType;\n for (let typeNode of types) {\n typeNode = skipTypeParentheses(typeNode);\n if (typeNode.kind === 146 /* NeverKeyword */) {\n if (isIntersection) return factory2.createVoidZero();\n continue;\n }\n if (typeNode.kind === 159 /* UnknownKeyword */) {\n if (!isIntersection) return factory2.createIdentifier(\"Object\");\n continue;\n }\n if (typeNode.kind === 133 /* AnyKeyword */) {\n return factory2.createIdentifier(\"Object\");\n }\n if (!strictNullChecks && (isLiteralTypeNode(typeNode) && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) {\n continue;\n }\n const serializedConstituent = serializeTypeNode(typeNode);\n if (isIdentifier(serializedConstituent) && serializedConstituent.escapedText === \"Object\") {\n return serializedConstituent;\n }\n if (serializedType) {\n if (!equateSerializedTypeNodes(serializedType, serializedConstituent)) {\n return factory2.createIdentifier(\"Object\");\n }\n } else {\n serializedType = serializedConstituent;\n }\n }\n return serializedType ?? factory2.createVoidZero();\n }\n function equateSerializedTypeNodes(left, right) {\n return (\n // temp vars used in fallback\n isGeneratedIdentifier(left) ? isGeneratedIdentifier(right) : (\n // entity names\n isIdentifier(left) ? isIdentifier(right) && left.escapedText === right.escapedText : isPropertyAccessExpression(left) ? isPropertyAccessExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) && equateSerializedTypeNodes(left.name, right.name) : (\n // `void 0`\n isVoidExpression(left) ? isVoidExpression(right) && isNumericLiteral(left.expression) && left.expression.text === \"0\" && isNumericLiteral(right.expression) && right.expression.text === \"0\" : (\n // `\"undefined\"` or `\"function\"` in `typeof` checks\n isStringLiteral(left) ? isStringLiteral(right) && left.text === right.text : (\n // used in `typeof` checks for fallback\n isTypeOfExpression(left) ? isTypeOfExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : (\n // parens in `typeof` checks with temps\n isParenthesizedExpression(left) ? isParenthesizedExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : (\n // conditionals used in fallback\n isConditionalExpression(left) ? isConditionalExpression(right) && equateSerializedTypeNodes(left.condition, right.condition) && equateSerializedTypeNodes(left.whenTrue, right.whenTrue) && equateSerializedTypeNodes(left.whenFalse, right.whenFalse) : (\n // logical binary and assignments used in fallback\n isBinaryExpression(left) ? isBinaryExpression(right) && left.operatorToken.kind === right.operatorToken.kind && equateSerializedTypeNodes(left.left, right.left) && equateSerializedTypeNodes(left.right, right.right) : false\n )\n )\n )\n )\n )\n )\n )\n );\n }\n function serializeTypeReferenceNode(node) {\n const kind = resolver.getTypeReferenceSerializationKind(node.typeName, currentNameScope ?? currentLexicalScope);\n switch (kind) {\n case 0 /* Unknown */:\n if (findAncestor(node, (n) => n.parent && isConditionalTypeNode(n.parent) && (n.parent.trueType === n || n.parent.falseType === n))) {\n return factory2.createIdentifier(\"Object\");\n }\n const serialized = serializeEntityNameAsExpressionFallback(node.typeName);\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n return factory2.createConditionalExpression(\n factory2.createTypeCheck(factory2.createAssignment(temp, serialized), \"function\"),\n /*questionToken*/\n void 0,\n temp,\n /*colonToken*/\n void 0,\n factory2.createIdentifier(\"Object\")\n );\n case 1 /* TypeWithConstructSignatureAndValue */:\n return serializeEntityNameAsExpression(node.typeName);\n case 2 /* VoidNullableOrNeverType */:\n return factory2.createVoidZero();\n case 4 /* BigIntLikeType */:\n return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n case 6 /* BooleanType */:\n return factory2.createIdentifier(\"Boolean\");\n case 3 /* NumberLikeType */:\n return factory2.createIdentifier(\"Number\");\n case 5 /* StringLikeType */:\n return factory2.createIdentifier(\"String\");\n case 7 /* ArrayLikeType */:\n return factory2.createIdentifier(\"Array\");\n case 8 /* ESSymbolType */:\n return getGlobalConstructor(\"Symbol\", 2 /* ES2015 */);\n case 10 /* TypeWithCallSignature */:\n return factory2.createIdentifier(\"Function\");\n case 9 /* Promise */:\n return factory2.createIdentifier(\"Promise\");\n case 11 /* ObjectType */:\n return factory2.createIdentifier(\"Object\");\n default:\n return Debug.assertNever(kind);\n }\n }\n function createCheckedValue(left, right) {\n return factory2.createLogicalAnd(\n factory2.createStrictInequality(factory2.createTypeOfExpression(left), factory2.createStringLiteral(\"undefined\")),\n right\n );\n }\n function serializeEntityNameAsExpressionFallback(node) {\n if (node.kind === 80 /* Identifier */) {\n const copied = serializeEntityNameAsExpression(node);\n return createCheckedValue(copied, copied);\n }\n if (node.left.kind === 80 /* Identifier */) {\n return createCheckedValue(serializeEntityNameAsExpression(node.left), serializeEntityNameAsExpression(node));\n }\n const left = serializeEntityNameAsExpressionFallback(node.left);\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n return factory2.createLogicalAnd(\n factory2.createLogicalAnd(\n left.left,\n factory2.createStrictInequality(factory2.createAssignment(temp, left.right), factory2.createVoidZero())\n ),\n factory2.createPropertyAccessExpression(temp, node.right)\n );\n }\n function serializeEntityNameAsExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n const name = setParent(setTextRange(parseNodeFactory.cloneNode(node), node), node.parent);\n name.original = void 0;\n setParent(name, getParseTreeNode(currentLexicalScope));\n return name;\n case 167 /* QualifiedName */:\n return serializeQualifiedNameAsExpression(node);\n }\n }\n function serializeQualifiedNameAsExpression(node) {\n return factory2.createPropertyAccessExpression(serializeEntityNameAsExpression(node.left), node.right);\n }\n function getGlobalConstructorWithFallback(name) {\n return factory2.createConditionalExpression(\n factory2.createTypeCheck(factory2.createIdentifier(name), \"function\"),\n /*questionToken*/\n void 0,\n factory2.createIdentifier(name),\n /*colonToken*/\n void 0,\n factory2.createIdentifier(\"Object\")\n );\n }\n function getGlobalConstructor(name, minLanguageVersion) {\n return languageVersion < minLanguageVersion ? getGlobalConstructorWithFallback(name) : factory2.createIdentifier(name);\n }\n}\n\n// src/compiler/transformers/legacyDecorators.ts\nfunction transformLegacyDecorators(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n hoistVariableDeclaration\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onSubstituteNode = onSubstituteNode;\n let classAliases;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n const visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n return visited;\n }\n function modifierVisitor(node) {\n return isDecorator(node) ? void 0 : node;\n }\n function visitor(node) {\n if (!(node.transformFlags & 33554432 /* ContainsDecorators */)) {\n return node;\n }\n switch (node.kind) {\n case 171 /* Decorator */:\n return void 0;\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 232 /* ClassExpression */:\n return visitClassExpression(node);\n case 177 /* Constructor */:\n return visitConstructorDeclaration(node);\n case 175 /* MethodDeclaration */:\n return visitMethodDeclaration(node);\n case 179 /* SetAccessor */:\n return visitSetAccessorDeclaration(node);\n case 178 /* GetAccessor */:\n return visitGetAccessorDeclaration(node);\n case 173 /* PropertyDeclaration */:\n return visitPropertyDeclaration(node);\n case 170 /* Parameter */:\n return visitParameterDeclaration(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitClassDeclaration(node) {\n if (!(classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n true,\n node\n ) || childIsDecorated(\n /*useLegacyDecorators*/\n true,\n node\n ))) {\n return visitEachChild(node, visitor, context);\n }\n const statements = classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n true,\n node\n ) ? transformClassDeclarationWithClassDecorators(node, node.name) : transformClassDeclarationWithoutClassDecorators(node, node.name);\n return singleOrMany(statements);\n }\n function decoratorContainsPrivateIdentifierInExpression(decorator) {\n return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);\n }\n function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {\n return some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);\n }\n function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {\n for (const member of node.members) {\n if (!canHaveDecorators(member)) continue;\n const allDecorators = getAllDecoratorsOfClassElement(\n member,\n node,\n /*useLegacyDecorators*/\n true\n );\n if (some(allDecorators == null ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression)) return true;\n if (some(allDecorators == null ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression)) return true;\n }\n return false;\n }\n function transformDecoratorsOfClassElements(node, members) {\n let decorationStatements = [];\n addClassElementDecorationStatements(\n decorationStatements,\n node,\n /*isStatic*/\n false\n );\n addClassElementDecorationStatements(\n decorationStatements,\n node,\n /*isStatic*/\n true\n );\n if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {\n members = setTextRange(\n factory2.createNodeArray([\n ...members,\n factory2.createClassStaticBlockDeclaration(\n factory2.createBlock(\n decorationStatements,\n /*multiLine*/\n true\n )\n )\n ]),\n members\n );\n decorationStatements = void 0;\n }\n return { decorationStatements, members };\n }\n function transformClassDeclarationWithoutClassDecorators(node, name) {\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n let members = visitNodes2(node.members, visitor, isClassElement);\n let decorationStatements = [];\n ({ members, decorationStatements } = transformDecoratorsOfClassElements(node, members));\n const updated = factory2.updateClassDeclaration(\n node,\n modifiers,\n name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n return addRange([updated], decorationStatements);\n }\n function transformClassDeclarationWithClassDecorators(node, name) {\n const isExport = hasSyntacticModifier(node, 32 /* Export */);\n const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n const modifiers = visitNodes2(node.modifiers, (node2) => isExportOrDefaultModifier(node2) || isDecorator(node2) ? void 0 : node2, isModifierLike);\n const location = moveRangePastModifiers(node);\n const classAlias = getClassAliasIfNeeded(node);\n const declName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ) : factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n let members = visitNodes2(node.members, visitor, isClassElement);\n let decorationStatements = [];\n ({ members, decorationStatements } = transformDecoratorsOfClassElements(node, members));\n const assignClassAliasInStaticBlock = languageVersion >= 9 /* ES2022 */ && !!classAlias && some(members, (member) => isPropertyDeclaration(member) && hasSyntacticModifier(member, 256 /* Static */) || isClassStaticBlockDeclaration(member));\n if (assignClassAliasInStaticBlock) {\n members = setTextRange(\n factory2.createNodeArray([\n factory2.createClassStaticBlockDeclaration(\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(classAlias, factory2.createThis())\n )\n ])\n ),\n ...members\n ]),\n members\n );\n }\n const classExpression = factory2.createClassExpression(\n modifiers,\n name && isGeneratedIdentifier(name) ? void 0 : name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n setOriginalNode(classExpression, node);\n setTextRange(classExpression, location);\n const varInitializer = classAlias && !assignClassAliasInStaticBlock ? factory2.createAssignment(classAlias, classExpression) : classExpression;\n const varDecl = factory2.createVariableDeclaration(\n declName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n varInitializer\n );\n setOriginalNode(varDecl, node);\n const varDeclList = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n const varStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n varDeclList\n );\n setOriginalNode(varStatement, node);\n setTextRange(varStatement, location);\n setCommentRange(varStatement, node);\n const statements = [varStatement];\n addRange(statements, decorationStatements);\n addConstructorDecorationStatement(statements, node);\n if (isExport) {\n if (isDefault) {\n const exportStatement = factory2.createExportDefault(declName);\n statements.push(exportStatement);\n } else {\n const exportStatement = factory2.createExternalModuleExport(factory2.getDeclarationName(node));\n statements.push(exportStatement);\n }\n }\n return statements;\n }\n function visitClassExpression(node) {\n return factory2.updateClassExpression(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.name,\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n visitNodes2(node.members, visitor, isClassElement)\n );\n }\n function visitConstructorDeclaration(node) {\n return factory2.updateConstructorDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n visitNodes2(node.parameters, visitor, isParameter),\n visitNode(node.body, visitor, isBlock)\n );\n }\n function finishClassElement(updated, original) {\n if (updated !== original) {\n setCommentRange(updated, original);\n setSourceMapRange(updated, moveRangePastModifiers(original));\n }\n return updated;\n }\n function visitMethodDeclaration(node) {\n return finishClassElement(\n factory2.updateMethodDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.asteriskToken,\n Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n visitNodes2(node.parameters, visitor, isParameter),\n /*type*/\n void 0,\n visitNode(node.body, visitor, isBlock)\n ),\n node\n );\n }\n function visitGetAccessorDeclaration(node) {\n return finishClassElement(\n factory2.updateGetAccessorDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n visitNodes2(node.parameters, visitor, isParameter),\n /*type*/\n void 0,\n visitNode(node.body, visitor, isBlock)\n ),\n node\n );\n }\n function visitSetAccessorDeclaration(node) {\n return finishClassElement(\n factory2.updateSetAccessorDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n visitNodes2(node.parameters, visitor, isParameter),\n visitNode(node.body, visitor, isBlock)\n ),\n node\n );\n }\n function visitPropertyDeclaration(node) {\n if (node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 128 /* Ambient */)) {\n return void 0;\n }\n return finishClassElement(\n factory2.updatePropertyDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n ),\n node\n );\n }\n function visitParameterDeclaration(node) {\n const updated = factory2.updateParameterDeclaration(\n node,\n elideNodes(factory2, node.modifiers),\n node.dotDotDotToken,\n Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n if (updated !== node) {\n setCommentRange(updated, node);\n setTextRange(updated, moveRangePastModifiers(node));\n setSourceMapRange(updated, moveRangePastModifiers(node));\n setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n }\n return updated;\n }\n function isSyntheticMetadataDecorator(node) {\n return isCallToHelper(node.expression, \"___metadata\");\n }\n function transformAllDecoratorsOfDeclaration(allDecorators) {\n if (!allDecorators) {\n return void 0;\n }\n const { false: decorators, true: metadata } = groupBy(allDecorators.decorators, isSyntheticMetadataDecorator);\n const decoratorExpressions = [];\n addRange(decoratorExpressions, map(decorators, transformDecorator));\n addRange(decoratorExpressions, flatMap(allDecorators.parameters, transformDecoratorsOfParameter));\n addRange(decoratorExpressions, map(metadata, transformDecorator));\n return decoratorExpressions;\n }\n function addClassElementDecorationStatements(statements, node, isStatic2) {\n addRange(statements, map(generateClassElementDecorationExpressions(node, isStatic2), (expr) => factory2.createExpressionStatement(expr)));\n }\n function isDecoratedClassElement(member, isStaticElement, parent2) {\n return nodeOrChildIsDecorated(\n /*useLegacyDecorators*/\n true,\n member,\n parent2\n ) && isStaticElement === isStatic(member);\n }\n function getDecoratedClassElements(node, isStatic2) {\n return filter(node.members, (m) => isDecoratedClassElement(m, isStatic2, node));\n }\n function generateClassElementDecorationExpressions(node, isStatic2) {\n const members = getDecoratedClassElements(node, isStatic2);\n let expressions;\n for (const member of members) {\n expressions = append(expressions, generateClassElementDecorationExpression(node, member));\n }\n return expressions;\n }\n function generateClassElementDecorationExpression(node, member) {\n const allDecorators = getAllDecoratorsOfClassElement(\n member,\n node,\n /*useLegacyDecorators*/\n true\n );\n const decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators);\n if (!decoratorExpressions) {\n return void 0;\n }\n const prefix = getClassMemberPrefix(node, member);\n const memberName = getExpressionForPropertyName(\n member,\n /*generateNameForComputedPropertyName*/\n !hasSyntacticModifier(member, 128 /* Ambient */)\n );\n const descriptor = isPropertyDeclaration(member) && !hasAccessorModifier(member) ? factory2.createVoidZero() : factory2.createNull();\n const helper = emitHelpers().createDecorateHelper(\n decoratorExpressions,\n prefix,\n memberName,\n descriptor\n );\n setEmitFlags(helper, 3072 /* NoComments */);\n setSourceMapRange(helper, moveRangePastModifiers(member));\n return helper;\n }\n function addConstructorDecorationStatement(statements, node) {\n const expression = generateConstructorDecorationExpression(node);\n if (expression) {\n statements.push(setOriginalNode(factory2.createExpressionStatement(expression), node));\n }\n }\n function generateConstructorDecorationExpression(node) {\n const allDecorators = getAllDecoratorsOfClass(\n node,\n /*useLegacyDecorators*/\n true\n );\n const decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators);\n if (!decoratorExpressions) {\n return void 0;\n }\n const classAlias = classAliases && classAliases[getOriginalNodeId(node)];\n const localName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n ) : factory2.getDeclarationName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n const decorate = emitHelpers().createDecorateHelper(decoratorExpressions, localName);\n const expression = factory2.createAssignment(localName, classAlias ? factory2.createAssignment(classAlias, decorate) : decorate);\n setEmitFlags(expression, 3072 /* NoComments */);\n setSourceMapRange(expression, moveRangePastModifiers(node));\n return expression;\n }\n function transformDecorator(decorator) {\n return Debug.checkDefined(visitNode(decorator.expression, visitor, isExpression));\n }\n function transformDecoratorsOfParameter(decorators, parameterOffset) {\n let expressions;\n if (decorators) {\n expressions = [];\n for (const decorator of decorators) {\n const helper = emitHelpers().createParamHelper(\n transformDecorator(decorator),\n parameterOffset\n );\n setTextRange(helper, decorator.expression);\n setEmitFlags(helper, 3072 /* NoComments */);\n expressions.push(helper);\n }\n }\n return expressions;\n }\n function getExpressionForPropertyName(member, generateNameForComputedPropertyName) {\n const name = member.name;\n if (isPrivateIdentifier(name)) {\n return factory2.createIdentifier(\"\");\n } else if (isComputedPropertyName(name)) {\n return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression;\n } else if (isIdentifier(name)) {\n return factory2.createStringLiteral(idText(name));\n } else {\n return factory2.cloneNode(name);\n }\n }\n function enableSubstitutionForClassAliases() {\n if (!classAliases) {\n context.enableSubstitution(80 /* Identifier */);\n classAliases = [];\n }\n }\n function getClassAliasIfNeeded(node) {\n if (resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */)) {\n enableSubstitutionForClassAliases();\n const classAlias = factory2.createUniqueName(node.name && !isGeneratedIdentifier(node.name) ? idText(node.name) : \"default\");\n classAliases[getOriginalNodeId(node)] = classAlias;\n hoistVariableDeclaration(classAlias);\n return classAlias;\n }\n }\n function getClassPrototype(node) {\n return factory2.createPropertyAccessExpression(factory2.getDeclarationName(node), \"prototype\");\n }\n function getClassMemberPrefix(node, member) {\n return isStatic(member) ? factory2.getDeclarationName(node) : getClassPrototype(node);\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n return trySubstituteClassAlias(node) ?? node;\n }\n function trySubstituteClassAlias(node) {\n if (classAliases) {\n if (resolver.hasNodeCheckFlag(node, 536870912 /* ConstructorReference */)) {\n const declaration = resolver.getReferencedValueDeclaration(node);\n if (declaration) {\n const classAlias = classAliases[declaration.id];\n if (classAlias) {\n const clone2 = factory2.cloneNode(classAlias);\n setSourceMapRange(clone2, node);\n setCommentRange(clone2, node);\n return clone2;\n }\n }\n }\n }\n return void 0;\n }\n}\n\n// src/compiler/transformers/esDecorators.ts\nfunction transformESDecorators(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n startLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const languageVersion = getEmitScriptTarget(context.getCompilerOptions());\n let top;\n let classInfo;\n let classThis;\n let classSuper;\n let pendingExpressions;\n let shouldTransformPrivateStaticElementsInFile;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n top = void 0;\n shouldTransformPrivateStaticElementsInFile = false;\n const visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n if (shouldTransformPrivateStaticElementsInFile) {\n addInternalEmitFlags(visited, 32 /* TransformPrivateStaticElements */);\n shouldTransformPrivateStaticElementsInFile = false;\n }\n return visited;\n }\n function updateState() {\n classInfo = void 0;\n classThis = void 0;\n classSuper = void 0;\n switch (top == null ? void 0 : top.kind) {\n case \"class\":\n classInfo = top.classInfo;\n break;\n case \"class-element\":\n classInfo = top.next.classInfo;\n classThis = top.classThis;\n classSuper = top.classSuper;\n break;\n case \"name\":\n const grandparent = top.next.next.next;\n if ((grandparent == null ? void 0 : grandparent.kind) === \"class-element\") {\n classInfo = grandparent.next.classInfo;\n classThis = grandparent.classThis;\n classSuper = grandparent.classSuper;\n }\n break;\n }\n }\n function enterClass(classInfo2) {\n top = { kind: \"class\", next: top, classInfo: classInfo2, savedPendingExpressions: pendingExpressions };\n pendingExpressions = void 0;\n updateState();\n }\n function exitClass() {\n Debug.assert((top == null ? void 0 : top.kind) === \"class\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class' but got '${top == null ? void 0 : top.kind}' instead.`);\n pendingExpressions = top.savedPendingExpressions;\n top = top.next;\n updateState();\n }\n function enterClassElement(node) {\n var _a, _b;\n Debug.assert((top == null ? void 0 : top.kind) === \"class\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class' but got '${top == null ? void 0 : top.kind}' instead.`);\n top = { kind: \"class-element\", next: top };\n if (isClassStaticBlockDeclaration(node) || isPropertyDeclaration(node) && hasStaticModifier(node)) {\n top.classThis = (_a = top.next.classInfo) == null ? void 0 : _a.classThis;\n top.classSuper = (_b = top.next.classInfo) == null ? void 0 : _b.classSuper;\n }\n updateState();\n }\n function exitClassElement() {\n var _a;\n Debug.assert((top == null ? void 0 : top.kind) === \"class-element\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class-element' but got '${top == null ? void 0 : top.kind}' instead.`);\n Debug.assert(((_a = top.next) == null ? void 0 : _a.kind) === \"class\", \"Incorrect value for top.next.kind.\", () => {\n var _a2;\n return `Expected top.next.kind to be 'class' but got '${(_a2 = top.next) == null ? void 0 : _a2.kind}' instead.`;\n });\n top = top.next;\n updateState();\n }\n function enterName() {\n Debug.assert((top == null ? void 0 : top.kind) === \"class-element\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class-element' but got '${top == null ? void 0 : top.kind}' instead.`);\n top = { kind: \"name\", next: top };\n updateState();\n }\n function exitName() {\n Debug.assert((top == null ? void 0 : top.kind) === \"name\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'name' but got '${top == null ? void 0 : top.kind}' instead.`);\n top = top.next;\n updateState();\n }\n function enterOther() {\n if ((top == null ? void 0 : top.kind) === \"other\") {\n Debug.assert(!pendingExpressions);\n top.depth++;\n } else {\n top = { kind: \"other\", next: top, depth: 0, savedPendingExpressions: pendingExpressions };\n pendingExpressions = void 0;\n updateState();\n }\n }\n function exitOther() {\n Debug.assert((top == null ? void 0 : top.kind) === \"other\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'other' but got '${top == null ? void 0 : top.kind}' instead.`);\n if (top.depth > 0) {\n Debug.assert(!pendingExpressions);\n top.depth--;\n } else {\n pendingExpressions = top.savedPendingExpressions;\n top = top.next;\n updateState();\n }\n }\n function shouldVisitNode(node) {\n return !!(node.transformFlags & 33554432 /* ContainsDecorators */) || !!classThis && !!(node.transformFlags & 16384 /* ContainsLexicalThis */) || !!classThis && !!classSuper && !!(node.transformFlags & 134217728 /* ContainsLexicalSuper */);\n }\n function visitor(node) {\n if (!shouldVisitNode(node)) {\n return node;\n }\n switch (node.kind) {\n case 171 /* Decorator */:\n return Debug.fail(\"Use `modifierVisitor` instead.\");\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 232 /* ClassExpression */:\n return visitClassExpression(node);\n case 177 /* Constructor */:\n case 173 /* PropertyDeclaration */:\n case 176 /* ClassStaticBlockDeclaration */:\n return Debug.fail(\"Not supported outside of a class. Use 'classElementVisitor' instead.\");\n case 170 /* Parameter */:\n return visitParameterDeclaration(node);\n // Support NamedEvaluation to ensure the correct class name for class expressions.\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(\n node,\n /*discarded*/\n false\n );\n case 304 /* PropertyAssignment */:\n return visitPropertyAssignment(node);\n case 261 /* VariableDeclaration */:\n return visitVariableDeclaration(node);\n case 209 /* BindingElement */:\n return visitBindingElement(node);\n case 278 /* ExportAssignment */:\n return visitExportAssignment(node);\n case 110 /* ThisKeyword */:\n return visitThisExpression(node);\n case 249 /* ForStatement */:\n return visitForStatement(node);\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(\n node,\n /*discarded*/\n false\n );\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(\n node,\n /*discarded*/\n false\n );\n case 356 /* PartiallyEmittedExpression */:\n return visitPartiallyEmittedExpression(\n node,\n /*discarded*/\n false\n );\n case 214 /* CallExpression */:\n return visitCallExpression(node);\n case 216 /* TaggedTemplateExpression */:\n return visitTaggedTemplateExpression(node);\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPreOrPostfixUnaryExpression(\n node,\n /*discarded*/\n false\n );\n case 212 /* PropertyAccessExpression */:\n return visitPropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return visitElementAccessExpression(node);\n case 168 /* ComputedPropertyName */:\n return visitComputedPropertyName(node);\n case 175 /* MethodDeclaration */:\n // object literal methods and accessors\n case 179 /* SetAccessor */:\n case 178 /* GetAccessor */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */: {\n enterOther();\n const result = visitEachChild(node, fallbackVisitor, context);\n exitOther();\n return result;\n }\n default:\n return visitEachChild(node, fallbackVisitor, context);\n }\n }\n function fallbackVisitor(node) {\n switch (node.kind) {\n case 171 /* Decorator */:\n return void 0;\n default:\n return visitor(node);\n }\n }\n function modifierVisitor(node) {\n switch (node.kind) {\n case 171 /* Decorator */:\n return void 0;\n default:\n return node;\n }\n }\n function classElementVisitor(node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n return visitConstructorDeclaration(node);\n case 175 /* MethodDeclaration */:\n return visitMethodDeclaration(node);\n case 178 /* GetAccessor */:\n return visitGetAccessorDeclaration(node);\n case 179 /* SetAccessor */:\n return visitSetAccessorDeclaration(node);\n case 173 /* PropertyDeclaration */:\n return visitPropertyDeclaration(node);\n case 176 /* ClassStaticBlockDeclaration */:\n return visitClassStaticBlockDeclaration(node);\n default:\n return visitor(node);\n }\n }\n function discardedValueVisitor(node) {\n switch (node.kind) {\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPreOrPostfixUnaryExpression(\n node,\n /*discarded*/\n true\n );\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(\n node,\n /*discarded*/\n true\n );\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(\n node,\n /*discarded*/\n true\n );\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(\n node,\n /*discarded*/\n true\n );\n default:\n return visitor(node);\n }\n }\n function getHelperVariableName(node) {\n let declarationName = node.name && isIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name) : node.name && isPrivateIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name).slice(1) : node.name && isStringLiteral(node.name) && isIdentifierText(node.name.text, 99 /* ESNext */) ? node.name.text : isClassLike(node) ? \"class\" : \"member\";\n if (isGetAccessor(node)) declarationName = `get_${declarationName}`;\n if (isSetAccessor(node)) declarationName = `set_${declarationName}`;\n if (node.name && isPrivateIdentifier(node.name)) declarationName = `private_${declarationName}`;\n if (isStatic(node)) declarationName = `static_${declarationName}`;\n return \"_\" + declarationName;\n }\n function createHelperVariable(node, suffix) {\n return factory2.createUniqueName(`${getHelperVariableName(node)}_${suffix}`, 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */);\n }\n function createLet(name, initializer) {\n return factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n )\n ], 1 /* Let */)\n );\n }\n function createClassInfo(node) {\n const metadataReference = factory2.createUniqueName(\"_metadata\", 16 /* Optimistic */ | 32 /* FileLevel */);\n let instanceMethodExtraInitializersName;\n let staticMethodExtraInitializersName;\n let hasStaticInitializers = false;\n let hasNonAmbientInstanceFields = false;\n let hasStaticPrivateClassElements = false;\n let classThis2;\n let pendingStaticInitializers;\n let pendingInstanceInitializers;\n if (nodeIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n )) {\n const needsUniqueClassThis = some(node.members, (member) => (isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member));\n classThis2 = factory2.createUniqueName(\n \"_classThis\",\n needsUniqueClassThis ? 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */ : 16 /* Optimistic */ | 32 /* FileLevel */\n );\n }\n for (const member of node.members) {\n if (isMethodOrAccessor(member) && nodeOrChildIsDecorated(\n /*useLegacyDecorators*/\n false,\n member,\n node\n )) {\n if (hasStaticModifier(member)) {\n if (!staticMethodExtraInitializersName) {\n staticMethodExtraInitializersName = factory2.createUniqueName(\"_staticExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n const initializer = emitHelpers().createRunInitializersHelper(classThis2 ?? factory2.createThis(), staticMethodExtraInitializersName);\n setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));\n pendingStaticInitializers ?? (pendingStaticInitializers = []);\n pendingStaticInitializers.push(initializer);\n }\n } else {\n if (!instanceMethodExtraInitializersName) {\n instanceMethodExtraInitializersName = factory2.createUniqueName(\"_instanceExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n const initializer = emitHelpers().createRunInitializersHelper(factory2.createThis(), instanceMethodExtraInitializersName);\n setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));\n pendingInstanceInitializers ?? (pendingInstanceInitializers = []);\n pendingInstanceInitializers.push(initializer);\n }\n instanceMethodExtraInitializersName ?? (instanceMethodExtraInitializersName = factory2.createUniqueName(\"_instanceExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */));\n }\n }\n if (isClassStaticBlockDeclaration(member)) {\n if (!isClassNamedEvaluationHelperBlock(member)) {\n hasStaticInitializers = true;\n }\n } else if (isPropertyDeclaration(member)) {\n if (hasStaticModifier(member)) {\n hasStaticInitializers || (hasStaticInitializers = !!member.initializer || hasDecorators(member));\n } else {\n hasNonAmbientInstanceFields || (hasNonAmbientInstanceFields = !isAmbientPropertyDeclaration(member));\n }\n }\n if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) {\n hasStaticPrivateClassElements = true;\n }\n if (staticMethodExtraInitializersName && instanceMethodExtraInitializersName && hasStaticInitializers && hasNonAmbientInstanceFields && hasStaticPrivateClassElements) {\n break;\n }\n }\n return {\n class: node,\n classThis: classThis2,\n metadataReference,\n instanceMethodExtraInitializersName,\n staticMethodExtraInitializersName,\n hasStaticInitializers,\n hasNonAmbientInstanceFields,\n hasStaticPrivateClassElements,\n pendingStaticInitializers,\n pendingInstanceInitializers\n };\n }\n function transformClassLike(node) {\n startLexicalEnvironment();\n if (!classHasDeclaredOrExplicitlyAssignedName(node) && classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n )) {\n node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, factory2.createStringLiteral(\"\"));\n }\n const classReference = factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n false,\n /*ignoreAssignedName*/\n true\n );\n const classInfo2 = createClassInfo(node);\n const classDefinitionStatements = [];\n let leadingBlockStatements;\n let trailingBlockStatements;\n let syntheticConstructor;\n let heritageClauses;\n let shouldTransformPrivateStaticElementsInClass = false;\n const classDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClass(\n node,\n /*useLegacyDecorators*/\n false\n ));\n if (classDecorators) {\n classInfo2.classDecoratorsName = factory2.createUniqueName(\"_classDecorators\", 16 /* Optimistic */ | 32 /* FileLevel */);\n classInfo2.classDescriptorName = factory2.createUniqueName(\"_classDescriptor\", 16 /* Optimistic */ | 32 /* FileLevel */);\n classInfo2.classExtraInitializersName = factory2.createUniqueName(\"_classExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n Debug.assertIsDefined(classInfo2.classThis);\n classDefinitionStatements.push(\n createLet(classInfo2.classDecoratorsName, factory2.createArrayLiteralExpression(classDecorators)),\n createLet(classInfo2.classDescriptorName),\n createLet(classInfo2.classExtraInitializersName, factory2.createArrayLiteralExpression()),\n createLet(classInfo2.classThis)\n );\n if (classInfo2.hasStaticPrivateClassElements) {\n shouldTransformPrivateStaticElementsInClass = true;\n shouldTransformPrivateStaticElementsInFile = true;\n }\n }\n const extendsClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n const extendsElement = extendsClause && firstOrUndefined(extendsClause.types);\n const extendsExpression = extendsElement && visitNode(extendsElement.expression, visitor, isExpression);\n if (extendsExpression) {\n classInfo2.classSuper = factory2.createUniqueName(\"_classSuper\", 16 /* Optimistic */ | 32 /* FileLevel */);\n const unwrapped = skipOuterExpressions(extendsExpression);\n const safeExtendsExpression = isClassExpression(unwrapped) && !unwrapped.name || isFunctionExpression(unwrapped) && !unwrapped.name || isArrowFunction(unwrapped) ? factory2.createComma(factory2.createNumericLiteral(0), extendsExpression) : extendsExpression;\n classDefinitionStatements.push(createLet(classInfo2.classSuper, safeExtendsExpression));\n const updatedExtendsElement = factory2.updateExpressionWithTypeArguments(\n extendsElement,\n classInfo2.classSuper,\n /*typeArguments*/\n void 0\n );\n const updatedExtendsClause = factory2.updateHeritageClause(extendsClause, [updatedExtendsElement]);\n heritageClauses = factory2.createNodeArray([updatedExtendsClause]);\n }\n const renamedClassThis = classInfo2.classThis ?? factory2.createThis();\n enterClass(classInfo2);\n leadingBlockStatements = append(leadingBlockStatements, createMetadata(classInfo2.metadataReference, classInfo2.classSuper));\n let members = node.members;\n members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? node2 : classElementVisitor(node2), isClassElement);\n members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? classElementVisitor(node2) : node2, isClassElement);\n if (pendingExpressions) {\n let outerThis;\n for (let expression of pendingExpressions) {\n expression = visitNode(expression, function thisVisitor(node2) {\n if (!(node2.transformFlags & 16384 /* ContainsLexicalThis */)) {\n return node2;\n }\n switch (node2.kind) {\n case 110 /* ThisKeyword */:\n if (!outerThis) {\n outerThis = factory2.createUniqueName(\"_outerThis\", 16 /* Optimistic */);\n classDefinitionStatements.unshift(createLet(outerThis, factory2.createThis()));\n }\n return outerThis;\n default:\n return visitEachChild(node2, thisVisitor, context);\n }\n }, isExpression);\n const statement = factory2.createExpressionStatement(expression);\n leadingBlockStatements = append(leadingBlockStatements, statement);\n }\n pendingExpressions = void 0;\n }\n exitClass();\n if (some(classInfo2.pendingInstanceInitializers) && !getFirstConstructorWithBody(node)) {\n const initializerStatements = prepareConstructor(node, classInfo2);\n if (initializerStatements) {\n const extendsClauseElement = getEffectiveBaseTypeNode(node);\n const isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */);\n const constructorStatements = [];\n if (isDerivedClass) {\n const spreadArguments = factory2.createSpreadElement(factory2.createIdentifier(\"arguments\"));\n const superCall = factory2.createCallExpression(\n factory2.createSuper(),\n /*typeArguments*/\n void 0,\n [spreadArguments]\n );\n constructorStatements.push(factory2.createExpressionStatement(superCall));\n }\n addRange(constructorStatements, initializerStatements);\n const constructorBody = factory2.createBlock(\n constructorStatements,\n /*multiLine*/\n true\n );\n syntheticConstructor = factory2.createConstructorDeclaration(\n /*modifiers*/\n void 0,\n [],\n constructorBody\n );\n }\n }\n if (classInfo2.staticMethodExtraInitializersName) {\n classDefinitionStatements.push(\n createLet(classInfo2.staticMethodExtraInitializersName, factory2.createArrayLiteralExpression())\n );\n }\n if (classInfo2.instanceMethodExtraInitializersName) {\n classDefinitionStatements.push(\n createLet(classInfo2.instanceMethodExtraInitializersName, factory2.createArrayLiteralExpression())\n );\n }\n if (classInfo2.memberInfos) {\n forEachEntry(classInfo2.memberInfos, (memberInfo, member) => {\n if (isStatic(member)) {\n classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName));\n if (memberInfo.memberInitializersName) {\n classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));\n }\n if (memberInfo.memberExtraInitializersName) {\n classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));\n }\n if (memberInfo.memberDescriptorName) {\n classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));\n }\n }\n });\n }\n if (classInfo2.memberInfos) {\n forEachEntry(classInfo2.memberInfos, (memberInfo, member) => {\n if (!isStatic(member)) {\n classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName));\n if (memberInfo.memberInitializersName) {\n classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));\n }\n if (memberInfo.memberExtraInitializersName) {\n classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));\n }\n if (memberInfo.memberDescriptorName) {\n classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));\n }\n }\n });\n }\n leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticNonFieldDecorationStatements);\n leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticNonFieldDecorationStatements);\n leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticFieldDecorationStatements);\n leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticFieldDecorationStatements);\n if (classInfo2.classDescriptorName && classInfo2.classDecoratorsName && classInfo2.classExtraInitializersName && classInfo2.classThis) {\n leadingBlockStatements ?? (leadingBlockStatements = []);\n const valueProperty = factory2.createPropertyAssignment(\"value\", renamedClassThis);\n const classDescriptor = factory2.createObjectLiteralExpression([valueProperty]);\n const classDescriptorAssignment = factory2.createAssignment(classInfo2.classDescriptorName, classDescriptor);\n const classNameReference = factory2.createPropertyAccessExpression(renamedClassThis, \"name\");\n const esDecorateHelper2 = emitHelpers().createESDecorateHelper(\n factory2.createNull(),\n classDescriptorAssignment,\n classInfo2.classDecoratorsName,\n { kind: \"class\", name: classNameReference, metadata: classInfo2.metadataReference },\n factory2.createNull(),\n classInfo2.classExtraInitializersName\n );\n const esDecorateStatement = factory2.createExpressionStatement(esDecorateHelper2);\n setSourceMapRange(esDecorateStatement, moveRangePastDecorators(node));\n leadingBlockStatements.push(esDecorateStatement);\n const classDescriptorValueReference = factory2.createPropertyAccessExpression(classInfo2.classDescriptorName, \"value\");\n const classThisAssignment = factory2.createAssignment(classInfo2.classThis, classDescriptorValueReference);\n const classReferenceAssignment = factory2.createAssignment(classReference, classThisAssignment);\n leadingBlockStatements.push(factory2.createExpressionStatement(classReferenceAssignment));\n }\n leadingBlockStatements.push(createSymbolMetadata(renamedClassThis, classInfo2.metadataReference));\n if (some(classInfo2.pendingStaticInitializers)) {\n for (const initializer of classInfo2.pendingStaticInitializers) {\n const initializerStatement = factory2.createExpressionStatement(initializer);\n setSourceMapRange(initializerStatement, getSourceMapRange(initializer));\n trailingBlockStatements = append(trailingBlockStatements, initializerStatement);\n }\n classInfo2.pendingStaticInitializers = void 0;\n }\n if (classInfo2.classExtraInitializersName) {\n const runClassInitializersHelper = emitHelpers().createRunInitializersHelper(renamedClassThis, classInfo2.classExtraInitializersName);\n const runClassInitializersStatement = factory2.createExpressionStatement(runClassInitializersHelper);\n setSourceMapRange(runClassInitializersStatement, node.name ?? moveRangePastDecorators(node));\n trailingBlockStatements = append(trailingBlockStatements, runClassInitializersStatement);\n }\n if (leadingBlockStatements && trailingBlockStatements && !classInfo2.hasStaticInitializers) {\n addRange(leadingBlockStatements, trailingBlockStatements);\n trailingBlockStatements = void 0;\n }\n const leadingStaticBlock = leadingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n leadingBlockStatements,\n /*multiLine*/\n true\n ));\n if (leadingStaticBlock && shouldTransformPrivateStaticElementsInClass) {\n setInternalEmitFlags(leadingStaticBlock, 32 /* TransformPrivateStaticElements */);\n }\n const trailingStaticBlock = trailingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n trailingBlockStatements,\n /*multiLine*/\n true\n ));\n if (leadingStaticBlock || syntheticConstructor || trailingStaticBlock) {\n const newMembers = [];\n const existingNamedEvaluationHelperBlockIndex = members.findIndex(isClassNamedEvaluationHelperBlock);\n if (leadingStaticBlock) {\n addRange(newMembers, members, 0, existingNamedEvaluationHelperBlockIndex + 1);\n newMembers.push(leadingStaticBlock);\n addRange(newMembers, members, existingNamedEvaluationHelperBlockIndex + 1);\n } else {\n addRange(newMembers, members);\n }\n if (syntheticConstructor) {\n newMembers.push(syntheticConstructor);\n }\n if (trailingStaticBlock) {\n newMembers.push(trailingStaticBlock);\n }\n members = setTextRange(factory2.createNodeArray(newMembers), members);\n }\n const lexicalEnvironment = endLexicalEnvironment();\n let classExpression;\n if (classDecorators) {\n classExpression = factory2.createClassExpression(\n /*modifiers*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n if (classInfo2.classThis) {\n classExpression = injectClassThisAssignmentIfMissing(factory2, classExpression, classInfo2.classThis);\n }\n const classReferenceDeclaration = factory2.createVariableDeclaration(\n classReference,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n classExpression\n );\n const classReferenceVarDeclList = factory2.createVariableDeclarationList([classReferenceDeclaration]);\n const returnExpr = classInfo2.classThis ? factory2.createAssignment(classReference, classInfo2.classThis) : classReference;\n classDefinitionStatements.push(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n classReferenceVarDeclList\n ),\n factory2.createReturnStatement(returnExpr)\n );\n } else {\n classExpression = factory2.createClassExpression(\n /*modifiers*/\n void 0,\n node.name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n classDefinitionStatements.push(factory2.createReturnStatement(classExpression));\n }\n if (shouldTransformPrivateStaticElementsInClass) {\n addInternalEmitFlags(classExpression, 32 /* TransformPrivateStaticElements */);\n for (const member of classExpression.members) {\n if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) {\n addInternalEmitFlags(member, 32 /* TransformPrivateStaticElements */);\n }\n }\n }\n setOriginalNode(classExpression, node);\n return factory2.createImmediatelyInvokedArrowFunction(factory2.mergeLexicalEnvironment(classDefinitionStatements, lexicalEnvironment));\n }\n function isDecoratedClassLike(node) {\n return classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n ) || childIsDecorated(\n /*useLegacyDecorators*/\n false,\n node\n );\n }\n function visitClassDeclaration(node) {\n if (isDecoratedClassLike(node)) {\n const statements = [];\n const originalClass = getOriginalNode(node, isClassLike) ?? node;\n const className = originalClass.name ? factory2.createStringLiteralFromNode(originalClass.name) : factory2.createStringLiteral(\"default\");\n const isExport = hasSyntacticModifier(node, 32 /* Export */);\n const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n if (!node.name) {\n node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, className);\n }\n if (isExport && isDefault) {\n const iife = transformClassLike(node);\n if (node.name) {\n const varDecl = factory2.createVariableDeclaration(\n factory2.getLocalName(node),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n iife\n );\n setOriginalNode(varDecl, node);\n const varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n const varStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n varDecls\n );\n statements.push(varStatement);\n const exportStatement = factory2.createExportDefault(factory2.getDeclarationName(node));\n setOriginalNode(exportStatement, node);\n setCommentRange(exportStatement, getCommentRange(node));\n setSourceMapRange(exportStatement, moveRangePastDecorators(node));\n statements.push(exportStatement);\n } else {\n const exportStatement = factory2.createExportDefault(iife);\n setOriginalNode(exportStatement, node);\n setCommentRange(exportStatement, getCommentRange(node));\n setSourceMapRange(exportStatement, moveRangePastDecorators(node));\n statements.push(exportStatement);\n }\n } else {\n Debug.assertIsDefined(node.name, \"A class declaration that is not a default export must have a name.\");\n const iife = transformClassLike(node);\n const modifierVisitorNoExport = isExport ? (node2) => isExportModifier(node2) ? void 0 : modifierVisitor(node2) : modifierVisitor;\n const modifiers = visitNodes2(node.modifiers, modifierVisitorNoExport, isModifier);\n const declName = factory2.getLocalName(\n node,\n /*allowComments*/\n false,\n /*allowSourceMaps*/\n true\n );\n const varDecl = factory2.createVariableDeclaration(\n declName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n iife\n );\n setOriginalNode(varDecl, node);\n const varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n const varStatement = factory2.createVariableStatement(modifiers, varDecls);\n setOriginalNode(varStatement, node);\n setCommentRange(varStatement, getCommentRange(node));\n statements.push(varStatement);\n if (isExport) {\n const exportStatement = factory2.createExternalModuleExport(declName);\n setOriginalNode(exportStatement, node);\n statements.push(exportStatement);\n }\n }\n return singleOrMany(statements);\n } else {\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n enterClass(\n /*classInfo*/\n void 0\n );\n const members = visitNodes2(node.members, classElementVisitor, isClassElement);\n exitClass();\n return factory2.updateClassDeclaration(\n node,\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n }\n }\n function visitClassExpression(node) {\n if (isDecoratedClassLike(node)) {\n const iife = transformClassLike(node);\n setOriginalNode(iife, node);\n return iife;\n } else {\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n enterClass(\n /*classInfo*/\n void 0\n );\n const members = visitNodes2(node.members, classElementVisitor, isClassElement);\n exitClass();\n return factory2.updateClassExpression(\n node,\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n heritageClauses,\n members\n );\n }\n }\n function prepareConstructor(_parent, classInfo2) {\n if (some(classInfo2.pendingInstanceInitializers)) {\n const statements = [];\n statements.push(\n factory2.createExpressionStatement(\n factory2.inlineExpressions(classInfo2.pendingInstanceInitializers)\n )\n );\n classInfo2.pendingInstanceInitializers = void 0;\n return statements;\n }\n }\n function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) {\n const superStatementIndex = superPath[superPathDepth];\n const superStatement = statementsIn[superStatementIndex];\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n if (isTryStatement(superStatement)) {\n const tryBlockStatements = [];\n transformConstructorBodyWorker(\n tryBlockStatements,\n superStatement.tryBlock.statements,\n /*statementOffset*/\n 0,\n superPath,\n superPathDepth + 1,\n initializerStatements\n );\n const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n statementsOut.push(factory2.updateTryStatement(\n superStatement,\n factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n visitNode(superStatement.catchClause, visitor, isCatchClause),\n visitNode(superStatement.finallyBlock, visitor, isBlock)\n ));\n } else {\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n addRange(statementsOut, initializerStatements);\n }\n addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1));\n }\n function visitConstructorDeclaration(node) {\n enterClassElement(node);\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n const parameters = visitNodes2(node.parameters, visitor, isParameter);\n let body;\n if (node.body && classInfo) {\n const initializerStatements = prepareConstructor(classInfo.class, classInfo);\n if (initializerStatements) {\n const statements = [];\n const nonPrologueStart = factory2.copyPrologue(\n node.body.statements,\n statements,\n /*ensureUseStrict*/\n false,\n visitor\n );\n const superStatementIndices = findSuperStatementIndexPath(node.body.statements, nonPrologueStart);\n if (superStatementIndices.length > 0) {\n transformConstructorBodyWorker(statements, node.body.statements, nonPrologueStart, superStatementIndices, 0, initializerStatements);\n } else {\n addRange(statements, initializerStatements);\n addRange(statements, visitNodes2(node.body.statements, visitor, isStatement));\n }\n body = factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n setOriginalNode(body, node.body);\n setTextRange(body, node.body);\n }\n }\n body ?? (body = visitNode(node.body, visitor, isBlock));\n exitClassElement();\n return factory2.updateConstructorDeclaration(node, modifiers, parameters, body);\n }\n function finishClassElement(updated, original) {\n if (updated !== original) {\n setCommentRange(updated, original);\n setSourceMapRange(updated, moveRangePastDecorators(original));\n }\n return updated;\n }\n function partialTransformClassElement(member, classInfo2, createDescriptor) {\n let referencedName;\n let name;\n let initializersName;\n let extraInitializersName;\n let thisArg;\n let descriptorName;\n if (!classInfo2) {\n const modifiers2 = visitNodes2(member.modifiers, modifierVisitor, isModifier);\n enterName();\n name = visitPropertyName(member.name);\n exitName();\n return { modifiers: modifiers2, referencedName, name, initializersName, descriptorName, thisArg };\n }\n const memberDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClassElement(\n member,\n classInfo2.class,\n /*useLegacyDecorators*/\n false\n ));\n const modifiers = visitNodes2(member.modifiers, modifierVisitor, isModifier);\n if (memberDecorators) {\n const memberDecoratorsName = createHelperVariable(member, \"decorators\");\n const memberDecoratorsArray = factory2.createArrayLiteralExpression(memberDecorators);\n const memberDecoratorsAssignment = factory2.createAssignment(memberDecoratorsName, memberDecoratorsArray);\n const memberInfo = { memberDecoratorsName };\n classInfo2.memberInfos ?? (classInfo2.memberInfos = /* @__PURE__ */ new Map());\n classInfo2.memberInfos.set(member, memberInfo);\n pendingExpressions ?? (pendingExpressions = []);\n pendingExpressions.push(memberDecoratorsAssignment);\n const statements = isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? classInfo2.staticNonFieldDecorationStatements ?? (classInfo2.staticNonFieldDecorationStatements = []) : classInfo2.nonStaticNonFieldDecorationStatements ?? (classInfo2.nonStaticNonFieldDecorationStatements = []) : isPropertyDeclaration(member) && !isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? classInfo2.staticFieldDecorationStatements ?? (classInfo2.staticFieldDecorationStatements = []) : classInfo2.nonStaticFieldDecorationStatements ?? (classInfo2.nonStaticFieldDecorationStatements = []) : Debug.fail();\n const kind = isGetAccessorDeclaration(member) ? \"getter\" : isSetAccessorDeclaration(member) ? \"setter\" : isMethodDeclaration(member) ? \"method\" : isAutoAccessorPropertyDeclaration(member) ? \"accessor\" : isPropertyDeclaration(member) ? \"field\" : Debug.fail();\n let propertyName;\n if (isIdentifier(member.name) || isPrivateIdentifier(member.name)) {\n propertyName = { computed: false, name: member.name };\n } else if (isPropertyNameLiteral(member.name)) {\n propertyName = { computed: true, name: factory2.createStringLiteralFromNode(member.name) };\n } else {\n const expression = member.name.expression;\n if (isPropertyNameLiteral(expression) && !isIdentifier(expression)) {\n propertyName = { computed: true, name: factory2.createStringLiteralFromNode(expression) };\n } else {\n enterName();\n ({ referencedName, name } = visitReferencedPropertyName(member.name));\n propertyName = { computed: true, name: referencedName };\n exitName();\n }\n }\n const context2 = {\n kind,\n name: propertyName,\n static: isStatic(member),\n private: isPrivateIdentifier(member.name),\n access: {\n // 15.7.3 CreateDecoratorAccessObject (kind, name)\n // 2. If _kind_ is ~field~, ~method~, ~accessor~, or ~getter~, then ...\n get: isPropertyDeclaration(member) || isGetAccessorDeclaration(member) || isMethodDeclaration(member),\n // 3. If _kind_ is ~field~, ~accessor~, or ~setter~, then ...\n set: isPropertyDeclaration(member) || isSetAccessorDeclaration(member)\n },\n metadata: classInfo2.metadataReference\n };\n if (isMethodOrAccessor(member)) {\n const methodExtraInitializersName = isStatic(member) ? classInfo2.staticMethodExtraInitializersName : classInfo2.instanceMethodExtraInitializersName;\n Debug.assertIsDefined(methodExtraInitializersName);\n let descriptor;\n if (isPrivateIdentifierClassElementDeclaration(member) && createDescriptor) {\n descriptor = createDescriptor(member, visitNodes2(modifiers, (node) => tryCast(node, isAsyncModifier), isModifier));\n memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, \"descriptor\");\n descriptor = factory2.createAssignment(descriptorName, descriptor);\n }\n const esDecorateExpression = emitHelpers().createESDecorateHelper(factory2.createThis(), descriptor ?? factory2.createNull(), memberDecoratorsName, context2, factory2.createNull(), methodExtraInitializersName);\n const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);\n setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));\n statements.push(esDecorateStatement);\n } else if (isPropertyDeclaration(member)) {\n initializersName = memberInfo.memberInitializersName ?? (memberInfo.memberInitializersName = createHelperVariable(member, \"initializers\"));\n extraInitializersName = memberInfo.memberExtraInitializersName ?? (memberInfo.memberExtraInitializersName = createHelperVariable(member, \"extraInitializers\"));\n if (isStatic(member)) {\n thisArg = classInfo2.classThis;\n }\n let descriptor;\n if (isPrivateIdentifierClassElementDeclaration(member) && hasAccessorModifier(member) && createDescriptor) {\n descriptor = createDescriptor(\n member,\n /*modifiers*/\n void 0\n );\n memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, \"descriptor\");\n descriptor = factory2.createAssignment(descriptorName, descriptor);\n }\n const esDecorateExpression = emitHelpers().createESDecorateHelper(\n isAutoAccessorPropertyDeclaration(member) ? factory2.createThis() : factory2.createNull(),\n descriptor ?? factory2.createNull(),\n memberDecoratorsName,\n context2,\n initializersName,\n extraInitializersName\n );\n const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);\n setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));\n statements.push(esDecorateStatement);\n }\n }\n if (name === void 0) {\n enterName();\n name = visitPropertyName(member.name);\n exitName();\n }\n if (!some(modifiers) && (isMethodDeclaration(member) || isPropertyDeclaration(member))) {\n setEmitFlags(name, 1024 /* NoLeadingComments */);\n }\n return { modifiers, referencedName, name, initializersName, extraInitializersName, descriptorName, thisArg };\n }\n function visitMethodDeclaration(node) {\n enterClassElement(node);\n const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createMethodDescriptorObject);\n if (descriptorName) {\n exitClassElement();\n return finishClassElement(createMethodDescriptorForwarder(modifiers, name, descriptorName), node);\n } else {\n const parameters = visitNodes2(node.parameters, visitor, isParameter);\n const body = visitNode(node.body, visitor, isBlock);\n exitClassElement();\n return finishClassElement(factory2.updateMethodDeclaration(\n node,\n modifiers,\n node.asteriskToken,\n name,\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n ), node);\n }\n }\n function visitGetAccessorDeclaration(node) {\n enterClassElement(node);\n const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createGetAccessorDescriptorObject);\n if (descriptorName) {\n exitClassElement();\n return finishClassElement(createGetAccessorDescriptorForwarder(modifiers, name, descriptorName), node);\n } else {\n const parameters = visitNodes2(node.parameters, visitor, isParameter);\n const body = visitNode(node.body, visitor, isBlock);\n exitClassElement();\n return finishClassElement(factory2.updateGetAccessorDeclaration(\n node,\n modifiers,\n name,\n parameters,\n /*type*/\n void 0,\n body\n ), node);\n }\n }\n function visitSetAccessorDeclaration(node) {\n enterClassElement(node);\n const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createSetAccessorDescriptorObject);\n if (descriptorName) {\n exitClassElement();\n return finishClassElement(createSetAccessorDescriptorForwarder(modifiers, name, descriptorName), node);\n } else {\n const parameters = visitNodes2(node.parameters, visitor, isParameter);\n const body = visitNode(node.body, visitor, isBlock);\n exitClassElement();\n return finishClassElement(factory2.updateSetAccessorDeclaration(node, modifiers, name, parameters, body), node);\n }\n }\n function visitClassStaticBlockDeclaration(node) {\n enterClassElement(node);\n let result;\n if (isClassNamedEvaluationHelperBlock(node)) {\n result = visitEachChild(node, visitor, context);\n } else if (isClassThisAssignmentBlock(node)) {\n const savedClassThis = classThis;\n classThis = void 0;\n result = visitEachChild(node, visitor, context);\n classThis = savedClassThis;\n } else {\n node = visitEachChild(node, visitor, context);\n result = node;\n if (classInfo) {\n classInfo.hasStaticInitializers = true;\n if (some(classInfo.pendingStaticInitializers)) {\n const statements = [];\n for (const initializer of classInfo.pendingStaticInitializers) {\n const initializerStatement = factory2.createExpressionStatement(initializer);\n setSourceMapRange(initializerStatement, getSourceMapRange(initializer));\n statements.push(initializerStatement);\n }\n const body = factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n const staticBlock = factory2.createClassStaticBlockDeclaration(body);\n result = [staticBlock, result];\n classInfo.pendingStaticInitializers = void 0;\n }\n }\n }\n exitClassElement();\n return result;\n }\n function visitPropertyDeclaration(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n }\n enterClassElement(node);\n Debug.assert(!isAmbientPropertyDeclaration(node), \"Not yet implemented.\");\n const { modifiers, name, initializersName, extraInitializersName, descriptorName, thisArg } = partialTransformClassElement(node, classInfo, hasAccessorModifier(node) ? createAccessorPropertyDescriptorObject : void 0);\n startLexicalEnvironment();\n let initializer = visitNode(node.initializer, visitor, isExpression);\n if (initializersName) {\n initializer = emitHelpers().createRunInitializersHelper(\n thisArg ?? factory2.createThis(),\n initializersName,\n initializer ?? factory2.createVoidZero()\n );\n }\n if (isStatic(node) && classInfo && initializer) {\n classInfo.hasStaticInitializers = true;\n }\n const declarations = endLexicalEnvironment();\n if (some(declarations)) {\n initializer = factory2.createImmediatelyInvokedArrowFunction([\n ...declarations,\n factory2.createReturnStatement(initializer)\n ]);\n }\n if (classInfo) {\n if (isStatic(node)) {\n initializer = injectPendingInitializers(\n classInfo,\n /*isStatic*/\n true,\n initializer\n );\n if (extraInitializersName) {\n classInfo.pendingStaticInitializers ?? (classInfo.pendingStaticInitializers = []);\n classInfo.pendingStaticInitializers.push(\n emitHelpers().createRunInitializersHelper(\n classInfo.classThis ?? factory2.createThis(),\n extraInitializersName\n )\n );\n }\n } else {\n initializer = injectPendingInitializers(\n classInfo,\n /*isStatic*/\n false,\n initializer\n );\n if (extraInitializersName) {\n classInfo.pendingInstanceInitializers ?? (classInfo.pendingInstanceInitializers = []);\n classInfo.pendingInstanceInitializers.push(\n emitHelpers().createRunInitializersHelper(\n factory2.createThis(),\n extraInitializersName\n )\n );\n }\n }\n }\n exitClassElement();\n if (hasAccessorModifier(node) && descriptorName) {\n const commentRange = getCommentRange(node);\n const sourceMapRange = getSourceMapRange(node);\n const name2 = node.name;\n let getterName = name2;\n let setterName = name2;\n if (isComputedPropertyName(name2) && !isSimpleInlineableExpression(name2.expression)) {\n const cacheAssignment = findComputedPropertyNameCacheAssignment(name2);\n if (cacheAssignment) {\n getterName = factory2.updateComputedPropertyName(name2, visitNode(name2.expression, visitor, isExpression));\n setterName = factory2.updateComputedPropertyName(name2, cacheAssignment.left);\n } else {\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n setSourceMapRange(temp, name2.expression);\n const expression = visitNode(name2.expression, visitor, isExpression);\n const assignment = factory2.createAssignment(temp, expression);\n setSourceMapRange(assignment, name2.expression);\n getterName = factory2.updateComputedPropertyName(name2, assignment);\n setterName = factory2.updateComputedPropertyName(name2, temp);\n }\n }\n const modifiersWithoutAccessor = visitNodes2(modifiers, (node2) => node2.kind !== 129 /* AccessorKeyword */ ? node2 : void 0, isModifier);\n const backingField = createAccessorPropertyBackingField(factory2, node, modifiersWithoutAccessor, initializer);\n setOriginalNode(backingField, node);\n setEmitFlags(backingField, 3072 /* NoComments */);\n setSourceMapRange(backingField, sourceMapRange);\n setSourceMapRange(backingField.name, node.name);\n const getter = createGetAccessorDescriptorForwarder(modifiersWithoutAccessor, getterName, descriptorName);\n setOriginalNode(getter, node);\n setCommentRange(getter, commentRange);\n setSourceMapRange(getter, sourceMapRange);\n const setter = createSetAccessorDescriptorForwarder(modifiersWithoutAccessor, setterName, descriptorName);\n setOriginalNode(setter, node);\n setEmitFlags(setter, 3072 /* NoComments */);\n setSourceMapRange(setter, sourceMapRange);\n return [backingField, getter, setter];\n }\n return finishClassElement(factory2.updatePropertyDeclaration(\n node,\n modifiers,\n name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n ), node);\n }\n function visitThisExpression(node) {\n return classThis ?? node;\n }\n function visitCallExpression(node) {\n if (isSuperProperty(node.expression) && classThis) {\n const expression = visitNode(node.expression, visitor, isExpression);\n const argumentsList = visitNodes2(node.arguments, visitor, isExpression);\n const invocation = factory2.createFunctionCallCall(expression, classThis, argumentsList);\n setOriginalNode(invocation, node);\n setTextRange(invocation, node);\n return invocation;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitTaggedTemplateExpression(node) {\n if (isSuperProperty(node.tag) && classThis) {\n const tag = visitNode(node.tag, visitor, isExpression);\n const boundTag = factory2.createFunctionBindCall(tag, classThis, []);\n setOriginalNode(boundTag, node);\n setTextRange(boundTag, node);\n const template = visitNode(node.template, visitor, isTemplateLiteral);\n return factory2.updateTaggedTemplateExpression(\n node,\n boundTag,\n /*typeArguments*/\n void 0,\n template\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitPropertyAccessExpression(node) {\n if (isSuperProperty(node) && isIdentifier(node.name) && classThis && classSuper) {\n const propertyName = factory2.createStringLiteralFromNode(node.name);\n const superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis);\n setOriginalNode(superProperty, node.expression);\n setTextRange(superProperty, node.expression);\n return superProperty;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitElementAccessExpression(node) {\n if (isSuperProperty(node) && classThis && classSuper) {\n const propertyName = visitNode(node.argumentExpression, visitor, isExpression);\n const superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis);\n setOriginalNode(superProperty, node.expression);\n setTextRange(superProperty, node.expression);\n return superProperty;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitParameterDeclaration(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n }\n const updated = factory2.updateParameterDeclaration(\n node,\n /*modifiers*/\n void 0,\n node.dotDotDotToken,\n visitNode(node.name, visitor, isBindingName),\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n if (updated !== node) {\n setCommentRange(updated, node);\n setTextRange(updated, moveRangePastModifiers(node));\n setSourceMapRange(updated, moveRangePastModifiers(node));\n setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n }\n return updated;\n }\n function isAnonymousClassNeedingAssignedName(node) {\n return isClassExpression(node) && !node.name && isDecoratedClassLike(node);\n }\n function canIgnoreEmptyStringLiteralInAssignedName(node) {\n const innerExpression = skipOuterExpressions(node);\n return isClassExpression(innerExpression) && !innerExpression.name && !classOrConstructorParameterIsDecorated(\n /*useLegacyDecorators*/\n false,\n innerExpression\n );\n }\n function visitForStatement(node) {\n return factory2.updateForStatement(\n node,\n visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, discardedValueVisitor, isExpression),\n visitIterationBody(node.statement, visitor, context)\n );\n }\n function visitExpressionStatement(node) {\n return visitEachChild(node, discardedValueVisitor, context);\n }\n function visitBinaryExpression(node, discarded) {\n if (isDestructuringAssignment(node)) {\n const left = visitAssignmentPattern(node.left);\n const right = visitNode(node.right, visitor, isExpression);\n return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n }\n if (isAssignmentExpression(node)) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right));\n return visitEachChild(node, visitor, context);\n }\n if (isSuperProperty(node.left) && classThis && classSuper) {\n let setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0;\n if (setterName) {\n let expression = visitNode(node.right, visitor, isExpression);\n if (isCompoundAssignment(node.operatorToken.kind)) {\n let getterName = setterName;\n if (!isSimpleInlineableExpression(setterName)) {\n getterName = factory2.createTempVariable(hoistVariableDeclaration);\n setterName = factory2.createAssignment(getterName, setterName);\n }\n const superPropertyGet = factory2.createReflectGetCall(\n classSuper,\n getterName,\n classThis\n );\n setOriginalNode(superPropertyGet, node.left);\n setTextRange(superPropertyGet, node.left);\n expression = factory2.createBinaryExpression(\n superPropertyGet,\n getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind),\n expression\n );\n setTextRange(expression, node);\n }\n const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n if (temp) {\n expression = factory2.createAssignment(temp, expression);\n setTextRange(temp, node);\n }\n expression = factory2.createReflectSetCall(\n classSuper,\n setterName,\n expression,\n classThis\n );\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n }\n if (node.operatorToken.kind === 28 /* CommaToken */) {\n const left = visitNode(node.left, discardedValueVisitor, isExpression);\n const right = visitNode(node.right, discarded ? discardedValueVisitor : visitor, isExpression);\n return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitPreOrPostfixUnaryExpression(node, discarded) {\n if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n const operand = skipParentheses(node.operand);\n if (isSuperProperty(operand) && classThis && classSuper) {\n let setterName = isElementAccessExpression(operand) ? visitNode(operand.argumentExpression, visitor, isExpression) : isIdentifier(operand.name) ? factory2.createStringLiteralFromNode(operand.name) : void 0;\n if (setterName) {\n let getterName = setterName;\n if (!isSimpleInlineableExpression(setterName)) {\n getterName = factory2.createTempVariable(hoistVariableDeclaration);\n setterName = factory2.createAssignment(getterName, setterName);\n }\n let expression = factory2.createReflectGetCall(classSuper, getterName, classThis);\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n expression = factory2.createReflectSetCall(classSuper, setterName, expression, classThis);\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCommaListExpression(node, discarded) {\n const elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor);\n return factory2.updateCommaListExpression(node, elements);\n }\n function visitReferencedPropertyName(node) {\n if (isPropertyNameLiteral(node) || isPrivateIdentifier(node)) {\n const referencedName2 = factory2.createStringLiteralFromNode(node);\n const name2 = visitNode(node, visitor, isPropertyName);\n return { referencedName: referencedName2, name: name2 };\n }\n if (isPropertyNameLiteral(node.expression) && !isIdentifier(node.expression)) {\n const referencedName2 = factory2.createStringLiteralFromNode(node.expression);\n const name2 = visitNode(node, visitor, isPropertyName);\n return { referencedName: referencedName2, name: name2 };\n }\n const referencedName = factory2.getGeneratedNameForNode(node);\n hoistVariableDeclaration(referencedName);\n const key = emitHelpers().createPropKeyHelper(visitNode(node.expression, visitor, isExpression));\n const assignment = factory2.createAssignment(referencedName, key);\n const name = factory2.updateComputedPropertyName(node, injectPendingExpressions(assignment));\n return { referencedName, name };\n }\n function visitPropertyName(node) {\n if (isComputedPropertyName(node)) {\n return visitComputedPropertyName(node);\n }\n return visitNode(node, visitor, isPropertyName);\n }\n function visitComputedPropertyName(node) {\n let expression = visitNode(node.expression, visitor, isExpression);\n if (!isSimpleInlineableExpression(expression)) {\n expression = injectPendingExpressions(expression);\n }\n return factory2.updateComputedPropertyName(node, expression);\n }\n function visitPropertyAssignment(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitVariableDeclaration(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitBindingElement(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitDestructuringAssignmentTarget(node) {\n if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) {\n return visitAssignmentPattern(node);\n }\n if (isSuperProperty(node) && classThis && classSuper) {\n const propertyName = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0;\n if (propertyName) {\n const paramName = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const expression = factory2.createAssignmentTargetWrapper(\n paramName,\n factory2.createReflectSetCall(\n classSuper,\n propertyName,\n paramName,\n classThis\n )\n );\n setOriginalNode(expression, node);\n setTextRange(expression, node);\n return expression;\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentElement(node) {\n if (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n )) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right));\n }\n const assignmentTarget = visitDestructuringAssignmentTarget(node.left);\n const initializer = visitNode(node.right, visitor, isExpression);\n return factory2.updateBinaryExpression(node, assignmentTarget, node.operatorToken, initializer);\n } else {\n return visitDestructuringAssignmentTarget(node);\n }\n }\n function visitAssignmentRestElement(node) {\n if (isLeftHandSideExpression(node.expression)) {\n const expression = visitDestructuringAssignmentTarget(node.expression);\n return factory2.updateSpreadElement(node, expression);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitArrayAssignmentElement(node) {\n Debug.assertNode(node, isArrayBindingOrAssignmentElement);\n if (isSpreadElement(node)) return visitAssignmentRestElement(node);\n if (!isOmittedExpression(node)) return visitAssignmentElement(node);\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentProperty(node) {\n const name = visitNode(node.name, visitor, isPropertyName);\n if (isAssignmentExpression(\n node.initializer,\n /*excludeCompoundAssignment*/\n true\n )) {\n const assignmentElement = visitAssignmentElement(node.initializer);\n return factory2.updatePropertyAssignment(node, name, assignmentElement);\n }\n if (isLeftHandSideExpression(node.initializer)) {\n const assignmentElement = visitDestructuringAssignmentTarget(node.initializer);\n return factory2.updatePropertyAssignment(node, name, assignmentElement);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitShorthandAssignmentProperty(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.objectAssignmentInitializer));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentRestProperty(node) {\n if (isLeftHandSideExpression(node.expression)) {\n const expression = visitDestructuringAssignmentTarget(node.expression);\n return factory2.updateSpreadAssignment(node, expression);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitObjectAssignmentElement(node) {\n Debug.assertNode(node, isObjectBindingOrAssignmentElement);\n if (isSpreadAssignment(node)) return visitAssignmentRestProperty(node);\n if (isShorthandPropertyAssignment(node)) return visitShorthandAssignmentProperty(node);\n if (isPropertyAssignment(node)) return visitAssignmentProperty(node);\n return visitEachChild(node, visitor, context);\n }\n function visitAssignmentPattern(node) {\n if (isArrayLiteralExpression(node)) {\n const elements = visitNodes2(node.elements, visitArrayAssignmentElement, isExpression);\n return factory2.updateArrayLiteralExpression(node, elements);\n } else {\n const properties = visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike);\n return factory2.updateObjectLiteralExpression(node, properties);\n }\n }\n function visitExportAssignment(node) {\n if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.expression));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitParenthesizedExpression(node, discarded) {\n const visitorFunc = discarded ? discardedValueVisitor : visitor;\n const expression = visitNode(node.expression, visitorFunc, isExpression);\n return factory2.updateParenthesizedExpression(node, expression);\n }\n function visitPartiallyEmittedExpression(node, discarded) {\n const visitorFunc = discarded ? discardedValueVisitor : visitor;\n const expression = visitNode(node.expression, visitorFunc, isExpression);\n return factory2.updatePartiallyEmittedExpression(node, expression);\n }\n function injectPendingExpressionsCommon(pendingExpressions2, expression) {\n if (some(pendingExpressions2)) {\n if (expression) {\n if (isParenthesizedExpression(expression)) {\n pendingExpressions2.push(expression.expression);\n expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions2));\n } else {\n pendingExpressions2.push(expression);\n expression = factory2.inlineExpressions(pendingExpressions2);\n }\n } else {\n expression = factory2.inlineExpressions(pendingExpressions2);\n }\n }\n return expression;\n }\n function injectPendingExpressions(expression) {\n const result = injectPendingExpressionsCommon(pendingExpressions, expression);\n Debug.assertIsDefined(result);\n if (result !== expression) {\n pendingExpressions = void 0;\n }\n return result;\n }\n function injectPendingInitializers(classInfo2, isStatic2, expression) {\n const result = injectPendingExpressionsCommon(isStatic2 ? classInfo2.pendingStaticInitializers : classInfo2.pendingInstanceInitializers, expression);\n if (result !== expression) {\n if (isStatic2) {\n classInfo2.pendingStaticInitializers = void 0;\n } else {\n classInfo2.pendingInstanceInitializers = void 0;\n }\n }\n return result;\n }\n function transformAllDecoratorsOfDeclaration(allDecorators) {\n if (!allDecorators) {\n return void 0;\n }\n const decoratorExpressions = [];\n addRange(decoratorExpressions, map(allDecorators.decorators, transformDecorator));\n return decoratorExpressions;\n }\n function transformDecorator(decorator) {\n const expression = visitNode(decorator.expression, visitor, isExpression);\n setEmitFlags(expression, 3072 /* NoComments */);\n const innerExpression = skipOuterExpressions(expression);\n if (isAccessExpression(innerExpression)) {\n const { target, thisArg } = factory2.createCallBinding(\n expression,\n hoistVariableDeclaration,\n languageVersion,\n /*cacheIdentifiers*/\n true\n );\n return factory2.restoreOuterExpressions(expression, factory2.createFunctionBindCall(target, thisArg, []));\n }\n return expression;\n }\n function createDescriptorMethod(original, name, modifiers, asteriskToken, kind, parameters, body) {\n const func = factory2.createFunctionExpression(\n modifiers,\n asteriskToken,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body ?? factory2.createBlock([])\n );\n setOriginalNode(func, original);\n setSourceMapRange(func, moveRangePastDecorators(original));\n setEmitFlags(func, 3072 /* NoComments */);\n const prefix = kind === \"get\" || kind === \"set\" ? kind : void 0;\n const functionName = factory2.createStringLiteralFromNode(\n name,\n /*isSingleQuote*/\n void 0\n );\n const namedFunction = emitHelpers().createSetFunctionNameHelper(func, functionName, prefix);\n const method = factory2.createPropertyAssignment(factory2.createIdentifier(kind), namedFunction);\n setOriginalNode(method, original);\n setSourceMapRange(method, moveRangePastDecorators(original));\n setEmitFlags(method, 3072 /* NoComments */);\n return method;\n }\n function createMethodDescriptorObject(node, modifiers) {\n return factory2.createObjectLiteralExpression([\n createDescriptorMethod(\n node,\n node.name,\n modifiers,\n node.asteriskToken,\n \"value\",\n visitNodes2(node.parameters, visitor, isParameter),\n visitNode(node.body, visitor, isBlock)\n )\n ]);\n }\n function createGetAccessorDescriptorObject(node, modifiers) {\n return factory2.createObjectLiteralExpression([\n createDescriptorMethod(\n node,\n node.name,\n modifiers,\n /*asteriskToken*/\n void 0,\n \"get\",\n [],\n visitNode(node.body, visitor, isBlock)\n )\n ]);\n }\n function createSetAccessorDescriptorObject(node, modifiers) {\n return factory2.createObjectLiteralExpression([\n createDescriptorMethod(\n node,\n node.name,\n modifiers,\n /*asteriskToken*/\n void 0,\n \"set\",\n visitNodes2(node.parameters, visitor, isParameter),\n visitNode(node.body, visitor, isBlock)\n )\n ]);\n }\n function createAccessorPropertyDescriptorObject(node, modifiers) {\n return factory2.createObjectLiteralExpression([\n createDescriptorMethod(\n node,\n node.name,\n modifiers,\n /*asteriskToken*/\n void 0,\n \"get\",\n [],\n factory2.createBlock([\n factory2.createReturnStatement(\n factory2.createPropertyAccessExpression(\n factory2.createThis(),\n factory2.getGeneratedPrivateNameForNode(node.name)\n )\n )\n ])\n ),\n createDescriptorMethod(\n node,\n node.name,\n modifiers,\n /*asteriskToken*/\n void 0,\n \"set\",\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"value\"\n )],\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(\n factory2.createThis(),\n factory2.getGeneratedPrivateNameForNode(node.name)\n ),\n factory2.createIdentifier(\"value\")\n )\n )\n ])\n )\n ]);\n }\n function createMethodDescriptorForwarder(modifiers, name, descriptorName) {\n modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n return factory2.createGetAccessorDeclaration(\n modifiers,\n name,\n [],\n /*type*/\n void 0,\n factory2.createBlock([\n factory2.createReturnStatement(\n factory2.createPropertyAccessExpression(\n descriptorName,\n factory2.createIdentifier(\"value\")\n )\n )\n ])\n );\n }\n function createGetAccessorDescriptorForwarder(modifiers, name, descriptorName) {\n modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n return factory2.createGetAccessorDeclaration(\n modifiers,\n name,\n [],\n /*type*/\n void 0,\n factory2.createBlock([\n factory2.createReturnStatement(\n factory2.createFunctionCallCall(\n factory2.createPropertyAccessExpression(\n descriptorName,\n factory2.createIdentifier(\"get\")\n ),\n factory2.createThis(),\n []\n )\n )\n ])\n );\n }\n function createSetAccessorDescriptorForwarder(modifiers, name, descriptorName) {\n modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n return factory2.createSetAccessorDeclaration(\n modifiers,\n name,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"value\"\n )],\n factory2.createBlock([\n factory2.createReturnStatement(\n factory2.createFunctionCallCall(\n factory2.createPropertyAccessExpression(\n descriptorName,\n factory2.createIdentifier(\"set\")\n ),\n factory2.createThis(),\n [factory2.createIdentifier(\"value\")]\n )\n )\n ])\n );\n }\n function createMetadata(name, classSuper2) {\n const varDecl = factory2.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createConditionalExpression(\n factory2.createLogicalAnd(\n factory2.createTypeCheck(factory2.createIdentifier(\"Symbol\"), \"function\"),\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\")\n ),\n factory2.createToken(58 /* QuestionToken */),\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"create\"),\n /*typeArguments*/\n void 0,\n [classSuper2 ? createSymbolMetadataReference(classSuper2) : factory2.createNull()]\n ),\n factory2.createToken(59 /* ColonToken */),\n factory2.createVoidZero()\n )\n );\n return factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([varDecl], 2 /* Const */)\n );\n }\n function createSymbolMetadata(target, value) {\n const defineProperty = factory2.createObjectDefinePropertyCall(\n target,\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\"),\n factory2.createPropertyDescriptor(\n { configurable: true, writable: true, enumerable: true, value },\n /*singleLine*/\n true\n )\n );\n return setEmitFlags(\n factory2.createIfStatement(value, factory2.createExpressionStatement(defineProperty)),\n 1 /* SingleLine */\n );\n }\n function createSymbolMetadataReference(classSuper2) {\n return factory2.createBinaryExpression(\n factory2.createElementAccessExpression(\n classSuper2,\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\")\n ),\n 61 /* QuestionQuestionToken */,\n factory2.createNull()\n );\n }\n}\n\n// src/compiler/transformers/es2017.ts\nfunction transformES2017(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n let enabledSubstitutions = 0 /* None */;\n let enclosingSuperContainerFlags = 0;\n let enclosingFunctionParameterNames;\n let capturedSuperProperties;\n let hasSuperElementAccess;\n let lexicalArgumentsBinding;\n const substitutedSuperAccessors = [];\n let contextFlags = 0 /* None */;\n const previousOnEmitNode = context.onEmitNode;\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n setContextFlag(1 /* NonTopLevel */, false);\n setContextFlag(2 /* HasLexicalThis */, !isEffectiveStrictModeSourceFile(node, compilerOptions));\n const visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n return visited;\n }\n function setContextFlag(flag, val) {\n contextFlags = val ? contextFlags | flag : contextFlags & ~flag;\n }\n function inContext(flags) {\n return (contextFlags & flags) !== 0;\n }\n function inTopLevelContext() {\n return !inContext(1 /* NonTopLevel */);\n }\n function inHasLexicalThisContext() {\n return inContext(2 /* HasLexicalThis */);\n }\n function doWithContext(flags, cb, value) {\n const contextFlagsToSet = flags & ~contextFlags;\n if (contextFlagsToSet) {\n setContextFlag(\n contextFlagsToSet,\n /*val*/\n true\n );\n const result = cb(value);\n setContextFlag(\n contextFlagsToSet,\n /*val*/\n false\n );\n return result;\n }\n return cb(value);\n }\n function visitDefault(node) {\n return visitEachChild(node, visitor, context);\n }\n function argumentsVisitor(node) {\n switch (node.kind) {\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 177 /* Constructor */:\n return node;\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 261 /* VariableDeclaration */:\n break;\n case 80 /* Identifier */:\n if (lexicalArgumentsBinding && resolver.isArgumentsLocalBinding(node)) {\n return lexicalArgumentsBinding;\n }\n break;\n }\n return visitEachChild(node, argumentsVisitor, context);\n }\n function visitor(node) {\n if ((node.transformFlags & 256 /* ContainsES2017 */) === 0) {\n return lexicalArgumentsBinding ? argumentsVisitor(node) : node;\n }\n switch (node.kind) {\n case 134 /* AsyncKeyword */:\n return void 0;\n case 224 /* AwaitExpression */:\n return visitAwaitExpression(node);\n case 175 /* MethodDeclaration */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitMethodDeclaration, node);\n case 263 /* FunctionDeclaration */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionDeclaration, node);\n case 219 /* FunctionExpression */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionExpression, node);\n case 220 /* ArrowFunction */:\n return doWithContext(1 /* NonTopLevel */, visitArrowFunction, node);\n case 212 /* PropertyAccessExpression */:\n if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) {\n capturedSuperProperties.add(node.name.escapedText);\n }\n return visitEachChild(node, visitor, context);\n case 213 /* ElementAccessExpression */:\n if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) {\n hasSuperElementAccess = true;\n }\n return visitEachChild(node, visitor, context);\n case 178 /* GetAccessor */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitGetAccessorDeclaration, node);\n case 179 /* SetAccessor */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitSetAccessorDeclaration, node);\n case 177 /* Constructor */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitConstructorDeclaration, node);\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitDefault, node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function asyncBodyVisitor(node) {\n if (isNodeWithPossibleHoistedDeclaration(node)) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n return visitVariableStatementInAsyncBody(node);\n case 249 /* ForStatement */:\n return visitForStatementInAsyncBody(node);\n case 250 /* ForInStatement */:\n return visitForInStatementInAsyncBody(node);\n case 251 /* ForOfStatement */:\n return visitForOfStatementInAsyncBody(node);\n case 300 /* CatchClause */:\n return visitCatchClauseInAsyncBody(node);\n case 242 /* Block */:\n case 256 /* SwitchStatement */:\n case 270 /* CaseBlock */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n case 259 /* TryStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 246 /* IfStatement */:\n case 255 /* WithStatement */:\n case 257 /* LabeledStatement */:\n return visitEachChild(node, asyncBodyVisitor, context);\n default:\n return Debug.assertNever(node, \"Unhandled node.\");\n }\n }\n return visitor(node);\n }\n function visitCatchClauseInAsyncBody(node) {\n const catchClauseNames = /* @__PURE__ */ new Set();\n recordDeclarationName(node.variableDeclaration, catchClauseNames);\n let catchClauseUnshadowedNames;\n catchClauseNames.forEach((_, escapedName) => {\n if (enclosingFunctionParameterNames.has(escapedName)) {\n if (!catchClauseUnshadowedNames) {\n catchClauseUnshadowedNames = new Set(enclosingFunctionParameterNames);\n }\n catchClauseUnshadowedNames.delete(escapedName);\n }\n });\n if (catchClauseUnshadowedNames) {\n const savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames;\n enclosingFunctionParameterNames = catchClauseUnshadowedNames;\n const result = visitEachChild(node, asyncBodyVisitor, context);\n enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames;\n return result;\n } else {\n return visitEachChild(node, asyncBodyVisitor, context);\n }\n }\n function visitVariableStatementInAsyncBody(node) {\n if (isVariableDeclarationListWithCollidingName(node.declarationList)) {\n const expression = visitVariableDeclarationListWithCollidingNames(\n node.declarationList,\n /*hasReceiver*/\n false\n );\n return expression ? factory2.createExpressionStatement(expression) : void 0;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForInStatementInAsyncBody(node) {\n return factory2.updateForInStatement(\n node,\n isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(\n node.initializer,\n /*hasReceiver*/\n true\n ) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n visitIterationBody(node.statement, asyncBodyVisitor, context)\n );\n }\n function visitForOfStatementInAsyncBody(node) {\n return factory2.updateForOfStatement(\n node,\n visitNode(node.awaitModifier, visitor, isAwaitKeyword),\n isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(\n node.initializer,\n /*hasReceiver*/\n true\n ) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n visitIterationBody(node.statement, asyncBodyVisitor, context)\n );\n }\n function visitForStatementInAsyncBody(node) {\n const initializer = node.initializer;\n return factory2.updateForStatement(\n node,\n isVariableDeclarationListWithCollidingName(initializer) ? visitVariableDeclarationListWithCollidingNames(\n initializer,\n /*hasReceiver*/\n false\n ) : visitNode(node.initializer, visitor, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, visitor, isExpression),\n visitIterationBody(node.statement, asyncBodyVisitor, context)\n );\n }\n function visitAwaitExpression(node) {\n if (inTopLevelContext()) {\n return visitEachChild(node, visitor, context);\n }\n return setOriginalNode(\n setTextRange(\n factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n visitNode(node.expression, visitor, isExpression)\n ),\n node\n ),\n node\n );\n }\n function visitConstructorDeclaration(node) {\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const updated = factory2.updateConstructorDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifier),\n visitParameterList(node.parameters, visitor, context),\n transformMethodBody(node)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitMethodDeclaration(node) {\n let parameters;\n const functionFlags = getFunctionFlags(node);\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const updated = factory2.updateMethodDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifierLike),\n node.asteriskToken,\n node.name,\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : transformMethodBody(node)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitGetAccessorDeclaration(node) {\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const updated = factory2.updateGetAccessorDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifierLike),\n node.name,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n transformMethodBody(node)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitSetAccessorDeclaration(node) {\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const updated = factory2.updateSetAccessorDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifierLike),\n node.name,\n visitParameterList(node.parameters, visitor, context),\n transformMethodBody(node)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitFunctionDeclaration(node) {\n let parameters;\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const functionFlags = getFunctionFlags(node);\n const updated = factory2.updateFunctionDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifierLike),\n node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitFunctionExpression(node) {\n let parameters;\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n lexicalArgumentsBinding = void 0;\n const functionFlags = getFunctionFlags(node);\n const updated = factory2.updateFunctionExpression(\n node,\n visitNodes2(node.modifiers, visitor, isModifier),\n node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n );\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n return updated;\n }\n function visitArrowFunction(node) {\n let parameters;\n const functionFlags = getFunctionFlags(node);\n return factory2.updateArrowFunction(\n node,\n visitNodes2(node.modifiers, visitor, isModifier),\n /*typeParameters*/\n void 0,\n parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n node.equalsGreaterThanToken,\n functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n );\n }\n function recordDeclarationName({ name }, names) {\n if (isIdentifier(name)) {\n names.add(name.escapedText);\n } else {\n for (const element of name.elements) {\n if (!isOmittedExpression(element)) {\n recordDeclarationName(element, names);\n }\n }\n }\n }\n function isVariableDeclarationListWithCollidingName(node) {\n return !!node && isVariableDeclarationList(node) && !(node.flags & 7 /* BlockScoped */) && node.declarations.some(collidesWithParameterName);\n }\n function visitVariableDeclarationListWithCollidingNames(node, hasReceiver) {\n hoistVariableDeclarationList(node);\n const variables = getInitializedVariables(node);\n if (variables.length === 0) {\n if (hasReceiver) {\n return visitNode(factory2.converters.convertToAssignmentElementTarget(node.declarations[0].name), visitor, isExpression);\n }\n return void 0;\n }\n return factory2.inlineExpressions(map(variables, transformInitializedVariable));\n }\n function hoistVariableDeclarationList(node) {\n forEach(node.declarations, hoistVariable);\n }\n function hoistVariable({ name }) {\n if (isIdentifier(name)) {\n hoistVariableDeclaration(name);\n } else {\n for (const element of name.elements) {\n if (!isOmittedExpression(element)) {\n hoistVariable(element);\n }\n }\n }\n }\n function transformInitializedVariable(node) {\n const converted = setSourceMapRange(\n factory2.createAssignment(\n factory2.converters.convertToAssignmentElementTarget(node.name),\n node.initializer\n ),\n node\n );\n return Debug.checkDefined(visitNode(converted, visitor, isExpression));\n }\n function collidesWithParameterName({ name }) {\n if (isIdentifier(name)) {\n return enclosingFunctionParameterNames.has(name.escapedText);\n } else {\n for (const element of name.elements) {\n if (!isOmittedExpression(element) && collidesWithParameterName(element)) {\n return true;\n }\n }\n }\n return false;\n }\n function transformMethodBody(node) {\n Debug.assertIsDefined(node.body);\n const savedCapturedSuperProperties = capturedSuperProperties;\n const savedHasSuperElementAccess = hasSuperElementAccess;\n capturedSuperProperties = /* @__PURE__ */ new Set();\n hasSuperElementAccess = false;\n let updated = visitFunctionBody(node.body, visitor, context);\n const originalMethod = getOriginalNode(node, isFunctionLikeDeclaration);\n const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) && (getFunctionFlags(originalMethod) & 3 /* AsyncGenerator */) !== 3 /* AsyncGenerator */;\n if (emitSuperHelpers) {\n enableSubstitutionForAsyncMethodsWithSuper();\n if (capturedSuperProperties.size) {\n const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n const statements = updated.statements.slice();\n insertStatementsAfterStandardPrologue(statements, [variableStatement]);\n updated = factory2.updateBlock(updated, statements);\n }\n if (hasSuperElementAccess) {\n if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n addEmitHelper(updated, advancedAsyncSuperHelper);\n } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n addEmitHelper(updated, asyncSuperHelper);\n }\n }\n }\n capturedSuperProperties = savedCapturedSuperProperties;\n hasSuperElementAccess = savedHasSuperElementAccess;\n return updated;\n }\n function createCaptureArgumentsStatement() {\n Debug.assert(lexicalArgumentsBinding);\n const variable = factory2.createVariableDeclaration(\n lexicalArgumentsBinding,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createIdentifier(\"arguments\")\n );\n const statement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n [variable]\n );\n startOnNewLine(statement);\n addEmitFlags(statement, 2097152 /* CustomPrologue */);\n return statement;\n }\n function transformAsyncFunctionParameterList(node) {\n if (isSimpleParameterList(node.parameters)) {\n return visitParameterList(node.parameters, visitor, context);\n }\n const newParameters = [];\n for (const parameter of node.parameters) {\n if (parameter.initializer || parameter.dotDotDotToken) {\n if (node.kind === 220 /* ArrowFunction */) {\n const restParameter = factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n factory2.createToken(26 /* DotDotDotToken */),\n factory2.createUniqueName(\"args\", 8 /* ReservedInNestedScopes */)\n );\n newParameters.push(restParameter);\n }\n break;\n }\n const newParameter = factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.getGeneratedNameForNode(parameter.name, 8 /* ReservedInNestedScopes */)\n );\n newParameters.push(newParameter);\n }\n const newParametersArray = factory2.createNodeArray(newParameters);\n setTextRange(newParametersArray, node.parameters);\n return newParametersArray;\n }\n function transformAsyncFunctionBody(node, outerParameters) {\n const innerParameters = !isSimpleParameterList(node.parameters) ? visitParameterList(node.parameters, visitor, context) : void 0;\n resumeLexicalEnvironment();\n const original = getOriginalNode(node, isFunctionLike);\n const nodeType = original.type;\n const promiseConstructor = languageVersion < 2 /* ES2015 */ ? getPromiseConstructor(nodeType) : void 0;\n const isArrowFunction2 = node.kind === 220 /* ArrowFunction */;\n const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n const hasLexicalArguments = resolver.hasNodeCheckFlag(node, 512 /* CaptureArguments */);\n const captureLexicalArguments = hasLexicalArguments && !lexicalArgumentsBinding;\n if (captureLexicalArguments) {\n lexicalArgumentsBinding = factory2.createUniqueName(\"arguments\");\n }\n let argumentsExpression;\n if (innerParameters) {\n if (isArrowFunction2) {\n const parameterBindings = [];\n Debug.assert(outerParameters.length <= node.parameters.length);\n for (let i = 0; i < node.parameters.length; i++) {\n Debug.assert(i < outerParameters.length);\n const originalParameter = node.parameters[i];\n const outerParameter = outerParameters[i];\n Debug.assertNode(outerParameter.name, isIdentifier);\n if (originalParameter.initializer || originalParameter.dotDotDotToken) {\n Debug.assert(i === outerParameters.length - 1);\n parameterBindings.push(factory2.createSpreadElement(outerParameter.name));\n break;\n }\n parameterBindings.push(outerParameter.name);\n }\n argumentsExpression = factory2.createArrayLiteralExpression(parameterBindings);\n } else {\n argumentsExpression = factory2.createIdentifier(\"arguments\");\n }\n }\n const savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames;\n enclosingFunctionParameterNames = /* @__PURE__ */ new Set();\n for (const parameter of node.parameters) {\n recordDeclarationName(parameter, enclosingFunctionParameterNames);\n }\n const savedCapturedSuperProperties = capturedSuperProperties;\n const savedHasSuperElementAccess = hasSuperElementAccess;\n if (!isArrowFunction2) {\n capturedSuperProperties = /* @__PURE__ */ new Set();\n hasSuperElementAccess = false;\n }\n const hasLexicalThis = inHasLexicalThisContext();\n let asyncBody = transformAsyncFunctionBodyWorker(node.body);\n asyncBody = factory2.updateBlock(asyncBody, factory2.mergeLexicalEnvironment(asyncBody.statements, endLexicalEnvironment()));\n let result;\n if (!isArrowFunction2) {\n const statements = [];\n statements.push(\n factory2.createReturnStatement(\n emitHelpers().createAwaiterHelper(\n hasLexicalThis,\n argumentsExpression,\n promiseConstructor,\n innerParameters,\n asyncBody\n )\n )\n );\n const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */));\n if (emitSuperHelpers) {\n enableSubstitutionForAsyncMethodsWithSuper();\n if (capturedSuperProperties.size) {\n const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n insertStatementsAfterStandardPrologue(statements, [variableStatement]);\n }\n }\n if (captureLexicalArguments) {\n insertStatementsAfterStandardPrologue(statements, [createCaptureArgumentsStatement()]);\n }\n const block = factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n setTextRange(block, node.body);\n if (emitSuperHelpers && hasSuperElementAccess) {\n if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n addEmitHelper(block, advancedAsyncSuperHelper);\n } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n addEmitHelper(block, asyncSuperHelper);\n }\n }\n result = block;\n } else {\n result = emitHelpers().createAwaiterHelper(\n hasLexicalThis,\n argumentsExpression,\n promiseConstructor,\n innerParameters,\n asyncBody\n );\n if (captureLexicalArguments) {\n const block = factory2.converters.convertToFunctionBlock(result);\n result = factory2.updateBlock(block, factory2.mergeLexicalEnvironment(block.statements, [createCaptureArgumentsStatement()]));\n }\n }\n enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames;\n if (!isArrowFunction2) {\n capturedSuperProperties = savedCapturedSuperProperties;\n hasSuperElementAccess = savedHasSuperElementAccess;\n lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n }\n return result;\n }\n function transformAsyncFunctionBodyWorker(body, start) {\n if (isBlock(body)) {\n return factory2.updateBlock(body, visitNodes2(body.statements, asyncBodyVisitor, isStatement, start));\n } else {\n return factory2.converters.convertToFunctionBlock(Debug.checkDefined(visitNode(body, asyncBodyVisitor, isConciseBody)));\n }\n }\n function getPromiseConstructor(type) {\n const typeName = type && getEntityNameFromTypeNode(type);\n if (typeName && isEntityName(typeName)) {\n const serializationKind = resolver.getTypeReferenceSerializationKind(typeName);\n if (serializationKind === 1 /* TypeWithConstructSignatureAndValue */ || serializationKind === 0 /* Unknown */) {\n return typeName;\n }\n }\n return void 0;\n }\n function enableSubstitutionForAsyncMethodsWithSuper() {\n if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) {\n enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */;\n context.enableSubstitution(214 /* CallExpression */);\n context.enableSubstitution(212 /* PropertyAccessExpression */);\n context.enableSubstitution(213 /* ElementAccessExpression */);\n context.enableEmitNotification(264 /* ClassDeclaration */);\n context.enableEmitNotification(175 /* MethodDeclaration */);\n context.enableEmitNotification(178 /* GetAccessor */);\n context.enableEmitNotification(179 /* SetAccessor */);\n context.enableEmitNotification(177 /* Constructor */);\n context.enableEmitNotification(244 /* VariableStatement */);\n }\n }\n function onEmitNode(hint, node, emitCallback) {\n if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) {\n const superContainerFlags = (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */) ? 128 /* MethodWithSuperPropertyAccessInAsync */ : 0) | (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) ? 256 /* MethodWithSuperPropertyAssignmentInAsync */ : 0);\n if (superContainerFlags !== enclosingSuperContainerFlags) {\n const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n enclosingSuperContainerFlags = superContainerFlags;\n previousOnEmitNode(hint, node, emitCallback);\n enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n return;\n }\n } else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) {\n const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n enclosingSuperContainerFlags = 0;\n previousOnEmitNode(hint, node, emitCallback);\n enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n return;\n }\n previousOnEmitNode(hint, node, emitCallback);\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) {\n return substituteExpression(node);\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 212 /* PropertyAccessExpression */:\n return substitutePropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return substituteElementAccessExpression(node);\n case 214 /* CallExpression */:\n return substituteCallExpression(node);\n }\n return node;\n }\n function substitutePropertyAccessExpression(node) {\n if (node.expression.kind === 108 /* SuperKeyword */) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n node.name\n ),\n node\n );\n }\n return node;\n }\n function substituteElementAccessExpression(node) {\n if (node.expression.kind === 108 /* SuperKeyword */) {\n return createSuperElementAccessInAsyncMethod(\n node.argumentExpression,\n node\n );\n }\n return node;\n }\n function substituteCallExpression(node) {\n const expression = node.expression;\n if (isSuperProperty(expression)) {\n const argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression);\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(argumentExpression, \"call\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createThis(),\n ...node.arguments\n ]\n );\n }\n return node;\n }\n function isSuperContainer(node) {\n const kind = node.kind;\n return kind === 264 /* ClassDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n }\n function createSuperElementAccessInAsyncMethod(argumentExpression, location) {\n if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createCallExpression(\n factory2.createUniqueName(\"_superIndex\", 16 /* Optimistic */ | 32 /* FileLevel */),\n /*typeArguments*/\n void 0,\n [argumentExpression]\n ),\n \"value\"\n ),\n location\n );\n } else {\n return setTextRange(\n factory2.createCallExpression(\n factory2.createUniqueName(\"_superIndex\", 16 /* Optimistic */ | 32 /* FileLevel */),\n /*typeArguments*/\n void 0,\n [argumentExpression]\n ),\n location\n );\n }\n }\n}\nfunction createSuperAccessVariableStatement(factory2, resolver, node, names) {\n const hasBinding = resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */);\n const accessors = [];\n names.forEach((_, key) => {\n const name = unescapeLeadingUnderscores(key);\n const getterAndSetter = [];\n getterAndSetter.push(factory2.createPropertyAssignment(\n \"get\",\n factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n /* parameters */\n [],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n setEmitFlags(\n factory2.createPropertyAccessExpression(\n setEmitFlags(\n factory2.createSuper(),\n 8 /* NoSubstitution */\n ),\n name\n ),\n 8 /* NoSubstitution */\n )\n )\n ));\n if (hasBinding) {\n getterAndSetter.push(\n factory2.createPropertyAssignment(\n \"set\",\n factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n /* parameters */\n [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"v\",\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n )\n ],\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n factory2.createAssignment(\n setEmitFlags(\n factory2.createPropertyAccessExpression(\n setEmitFlags(\n factory2.createSuper(),\n 8 /* NoSubstitution */\n ),\n name\n ),\n 8 /* NoSubstitution */\n ),\n factory2.createIdentifier(\"v\")\n )\n )\n )\n );\n }\n accessors.push(\n factory2.createPropertyAssignment(\n name,\n factory2.createObjectLiteralExpression(getterAndSetter)\n )\n );\n });\n return factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [\n factory2.createVariableDeclaration(\n factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"Object\"),\n \"create\"\n ),\n /*typeArguments*/\n void 0,\n [\n factory2.createNull(),\n factory2.createObjectLiteralExpression(\n accessors,\n /*multiLine*/\n true\n )\n ]\n )\n )\n ],\n 2 /* Const */\n )\n );\n}\n\n// src/compiler/transformers/es2018.ts\nfunction transformES2018(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const previousOnEmitNode = context.onEmitNode;\n context.onEmitNode = onEmitNode;\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onSubstituteNode = onSubstituteNode;\n let exportedVariableStatement = false;\n let enabledSubstitutions = 0 /* None */;\n let enclosingFunctionFlags;\n let parametersWithPrecedingObjectRestOrSpread;\n let enclosingSuperContainerFlags = 0;\n let hierarchyFacts = 0;\n let currentSourceFile;\n let taggedTemplateStringDeclarations;\n let capturedSuperProperties;\n let hasSuperElementAccess;\n const substitutedSuperAccessors = [];\n return chainBundle(context, transformSourceFile);\n function affectsSubtree(excludeFacts, includeFacts) {\n return hierarchyFacts !== (hierarchyFacts & ~excludeFacts | includeFacts);\n }\n function enterSubtree(excludeFacts, includeFacts) {\n const ancestorFacts = hierarchyFacts;\n hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 3 /* AncestorFactsMask */;\n return ancestorFacts;\n }\n function exitSubtree(ancestorFacts) {\n hierarchyFacts = ancestorFacts;\n }\n function recordTaggedTemplateString(temp) {\n taggedTemplateStringDeclarations = append(\n taggedTemplateStringDeclarations,\n factory2.createVariableDeclaration(temp)\n );\n }\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n currentSourceFile = node;\n const visited = visitSourceFile(node);\n addEmitHelpers(visited, context.readEmitHelpers());\n currentSourceFile = void 0;\n taggedTemplateStringDeclarations = void 0;\n return visited;\n }\n function visitor(node) {\n return visitorWorker(\n node,\n /*expressionResultIsUnused*/\n false\n );\n }\n function visitorWithUnusedExpressionResult(node) {\n return visitorWorker(\n node,\n /*expressionResultIsUnused*/\n true\n );\n }\n function visitorNoAsyncModifier(node) {\n if (node.kind === 134 /* AsyncKeyword */) {\n return void 0;\n }\n return node;\n }\n function doWithHierarchyFacts(cb, value, excludeFacts, includeFacts) {\n if (affectsSubtree(excludeFacts, includeFacts)) {\n const ancestorFacts = enterSubtree(excludeFacts, includeFacts);\n const result = cb(value);\n exitSubtree(ancestorFacts);\n return result;\n }\n return cb(value);\n }\n function visitDefault(node) {\n return visitEachChild(node, visitor, context);\n }\n function visitorWorker(node, expressionResultIsUnused2) {\n if ((node.transformFlags & 128 /* ContainsES2018 */) === 0) {\n return node;\n }\n switch (node.kind) {\n case 224 /* AwaitExpression */:\n return visitAwaitExpression(node);\n case 230 /* YieldExpression */:\n return visitYieldExpression(node);\n case 254 /* ReturnStatement */:\n return visitReturnStatement(node);\n case 257 /* LabeledStatement */:\n return visitLabeledStatement(node);\n case 211 /* ObjectLiteralExpression */:\n return visitObjectLiteralExpression(node);\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(node, expressionResultIsUnused2);\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(node, expressionResultIsUnused2);\n case 300 /* CatchClause */:\n return visitCatchClause(node);\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 261 /* VariableDeclaration */:\n return visitVariableDeclaration(node);\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 250 /* ForInStatement */:\n return doWithHierarchyFacts(\n visitDefault,\n node,\n 0 /* IterationStatementExcludes */,\n 2 /* IterationStatementIncludes */\n );\n case 251 /* ForOfStatement */:\n return visitForOfStatement(\n node,\n /*outermostLabeledStatement*/\n void 0\n );\n case 249 /* ForStatement */:\n return doWithHierarchyFacts(\n visitForStatement,\n node,\n 0 /* IterationStatementExcludes */,\n 2 /* IterationStatementIncludes */\n );\n case 223 /* VoidExpression */:\n return visitVoidExpression(node);\n case 177 /* Constructor */:\n return doWithHierarchyFacts(\n visitConstructorDeclaration,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 175 /* MethodDeclaration */:\n return doWithHierarchyFacts(\n visitMethodDeclaration,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 178 /* GetAccessor */:\n return doWithHierarchyFacts(\n visitGetAccessorDeclaration,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 179 /* SetAccessor */:\n return doWithHierarchyFacts(\n visitSetAccessorDeclaration,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 263 /* FunctionDeclaration */:\n return doWithHierarchyFacts(\n visitFunctionDeclaration,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 219 /* FunctionExpression */:\n return doWithHierarchyFacts(\n visitFunctionExpression,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n case 220 /* ArrowFunction */:\n return doWithHierarchyFacts(\n visitArrowFunction,\n node,\n 2 /* ArrowFunctionExcludes */,\n 0 /* ArrowFunctionIncludes */\n );\n case 170 /* Parameter */:\n return visitParameter(node);\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(node, expressionResultIsUnused2);\n case 216 /* TaggedTemplateExpression */:\n return visitTaggedTemplateExpression(node);\n case 212 /* PropertyAccessExpression */:\n if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) {\n capturedSuperProperties.add(node.name.escapedText);\n }\n return visitEachChild(node, visitor, context);\n case 213 /* ElementAccessExpression */:\n if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) {\n hasSuperElementAccess = true;\n }\n return visitEachChild(node, visitor, context);\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return doWithHierarchyFacts(\n visitDefault,\n node,\n 2 /* ClassOrFunctionExcludes */,\n 1 /* ClassOrFunctionIncludes */\n );\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitAwaitExpression(node) {\n if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n return setOriginalNode(\n setTextRange(\n factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n emitHelpers().createAwaitHelper(visitNode(node.expression, visitor, isExpression))\n ),\n /*location*/\n node\n ),\n node\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitYieldExpression(node) {\n if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n if (node.asteriskToken) {\n const expression = visitNode(Debug.checkDefined(node.expression), visitor, isExpression);\n return setOriginalNode(\n setTextRange(\n factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n emitHelpers().createAwaitHelper(\n factory2.updateYieldExpression(\n node,\n node.asteriskToken,\n setTextRange(\n emitHelpers().createAsyncDelegatorHelper(\n setTextRange(\n emitHelpers().createAsyncValuesHelper(expression),\n expression\n )\n ),\n expression\n )\n )\n )\n ),\n node\n ),\n node\n );\n }\n return setOriginalNode(\n setTextRange(\n factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n createDownlevelAwait(\n node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero()\n )\n ),\n node\n ),\n node\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitReturnStatement(node) {\n if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n return factory2.updateReturnStatement(\n node,\n createDownlevelAwait(\n node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero()\n )\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitLabeledStatement(node) {\n if (enclosingFunctionFlags & 2 /* Async */) {\n const statement = unwrapInnermostStatementOfLabel(node);\n if (statement.kind === 251 /* ForOfStatement */ && statement.awaitModifier) {\n return visitForOfStatement(statement, node);\n }\n return factory2.restoreEnclosingLabel(visitNode(statement, visitor, isStatement, factory2.liftToBlock), node);\n }\n return visitEachChild(node, visitor, context);\n }\n function chunkObjectLiteralElements(elements) {\n let chunkObject;\n const objects = [];\n for (const e of elements) {\n if (e.kind === 306 /* SpreadAssignment */) {\n if (chunkObject) {\n objects.push(factory2.createObjectLiteralExpression(chunkObject));\n chunkObject = void 0;\n }\n const target = e.expression;\n objects.push(visitNode(target, visitor, isExpression));\n } else {\n chunkObject = append(\n chunkObject,\n e.kind === 304 /* PropertyAssignment */ ? factory2.createPropertyAssignment(e.name, visitNode(e.initializer, visitor, isExpression)) : visitNode(e, visitor, isObjectLiteralElementLike)\n );\n }\n }\n if (chunkObject) {\n objects.push(factory2.createObjectLiteralExpression(chunkObject));\n }\n return objects;\n }\n function visitObjectLiteralExpression(node) {\n if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n const objects = chunkObjectLiteralElements(node.properties);\n if (objects.length && objects[0].kind !== 211 /* ObjectLiteralExpression */) {\n objects.unshift(factory2.createObjectLiteralExpression());\n }\n let expression = objects[0];\n if (objects.length > 1) {\n for (let i = 1; i < objects.length; i++) {\n expression = emitHelpers().createAssignHelper([expression, objects[i]]);\n }\n return expression;\n } else {\n return emitHelpers().createAssignHelper(objects);\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitExpressionStatement(node) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n function visitParenthesizedExpression(node, expressionResultIsUnused2) {\n return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context);\n }\n function visitSourceFile(node) {\n const ancestorFacts = enterSubtree(\n 2 /* SourceFileExcludes */,\n isEffectiveStrictModeSourceFile(node, compilerOptions) ? 0 /* StrictModeSourceFileIncludes */ : 1 /* SourceFileIncludes */\n );\n exportedVariableStatement = false;\n const visited = visitEachChild(node, visitor, context);\n const statement = concatenate(\n visited.statements,\n taggedTemplateStringDeclarations && [\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(taggedTemplateStringDeclarations)\n )\n ]\n );\n const result = factory2.updateSourceFile(visited, setTextRange(factory2.createNodeArray(statement), node.statements));\n exitSubtree(ancestorFacts);\n return result;\n }\n function visitTaggedTemplateExpression(node) {\n return processTaggedTemplateExpression(\n context,\n node,\n visitor,\n currentSourceFile,\n recordTaggedTemplateString,\n 0 /* LiftRestriction */\n );\n }\n function visitBinaryExpression(node, expressionResultIsUnused2) {\n if (isDestructuringAssignment(node) && containsObjectRestOrSpread(node.left)) {\n return flattenDestructuringAssignment(\n node,\n visitor,\n context,\n 1 /* ObjectRest */,\n !expressionResultIsUnused2\n );\n }\n if (node.operatorToken.kind === 28 /* CommaToken */) {\n return factory2.updateBinaryExpression(\n node,\n visitNode(node.left, visitorWithUnusedExpressionResult, isExpression),\n node.operatorToken,\n visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression)\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCommaListExpression(node, expressionResultIsUnused2) {\n if (expressionResultIsUnused2) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n let result;\n for (let i = 0; i < node.elements.length; i++) {\n const element = node.elements[i];\n const visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression);\n if (result || visited !== element) {\n result || (result = node.elements.slice(0, i));\n result.push(visited);\n }\n }\n const elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements;\n return factory2.updateCommaListExpression(node, elements);\n }\n function visitCatchClause(node) {\n if (node.variableDeclaration && isBindingPattern(node.variableDeclaration.name) && node.variableDeclaration.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n const name = factory2.getGeneratedNameForNode(node.variableDeclaration.name);\n const updatedDecl = factory2.updateVariableDeclaration(\n node.variableDeclaration,\n node.variableDeclaration.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n name\n );\n const visitedBindings = flattenDestructuringBinding(updatedDecl, visitor, context, 1 /* ObjectRest */);\n let block = visitNode(node.block, visitor, isBlock);\n if (some(visitedBindings)) {\n block = factory2.updateBlock(block, [\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n visitedBindings\n ),\n ...block.statements\n ]);\n }\n return factory2.updateCatchClause(\n node,\n factory2.updateVariableDeclaration(\n node.variableDeclaration,\n name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ),\n block\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitVariableStatement(node) {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n const savedExportedVariableStatement = exportedVariableStatement;\n exportedVariableStatement = true;\n const visited = visitEachChild(node, visitor, context);\n exportedVariableStatement = savedExportedVariableStatement;\n return visited;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitVariableDeclaration(node) {\n if (exportedVariableStatement) {\n const savedExportedVariableStatement = exportedVariableStatement;\n exportedVariableStatement = false;\n const visited = visitVariableDeclarationWorker(\n node,\n /*exportedVariableStatement*/\n true\n );\n exportedVariableStatement = savedExportedVariableStatement;\n return visited;\n }\n return visitVariableDeclarationWorker(\n node,\n /*exportedVariableStatement*/\n false\n );\n }\n function visitVariableDeclarationWorker(node, exportedVariableStatement2) {\n if (isBindingPattern(node.name) && node.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n return flattenDestructuringBinding(\n node,\n visitor,\n context,\n 1 /* ObjectRest */,\n /*rval*/\n void 0,\n exportedVariableStatement2\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForStatement(node) {\n return factory2.updateForStatement(\n node,\n visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n visitIterationBody(node.statement, visitor, context)\n );\n }\n function visitVoidExpression(node) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n function visitForOfStatement(node, outermostLabeledStatement) {\n const ancestorFacts = enterSubtree(0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */);\n if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || isAssignmentPattern(node.initializer) && containsObjectRestOrSpread(node.initializer)) {\n node = transformForOfStatementWithObjectRest(node);\n }\n const result = node.awaitModifier ? transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) : factory2.restoreEnclosingLabel(visitEachChild(node, visitor, context), outermostLabeledStatement);\n exitSubtree(ancestorFacts);\n return result;\n }\n function transformForOfStatementWithObjectRest(node) {\n const initializerWithoutParens = skipParentheses(node.initializer);\n if (isVariableDeclarationList(initializerWithoutParens) || isAssignmentPattern(initializerWithoutParens)) {\n let bodyLocation;\n let statementsLocation;\n const temp = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const statements = [createForOfBindingStatement(factory2, initializerWithoutParens, temp)];\n if (isBlock(node.statement)) {\n addRange(statements, node.statement.statements);\n bodyLocation = node.statement;\n statementsLocation = node.statement.statements;\n } else if (node.statement) {\n append(statements, node.statement);\n bodyLocation = node.statement;\n statementsLocation = node.statement;\n }\n return factory2.updateForOfStatement(\n node,\n node.awaitModifier,\n setTextRange(\n factory2.createVariableDeclarationList(\n [\n setTextRange(factory2.createVariableDeclaration(temp), node.initializer)\n ],\n 1 /* Let */\n ),\n node.initializer\n ),\n node.expression,\n setTextRange(\n factory2.createBlock(\n setTextRange(factory2.createNodeArray(statements), statementsLocation),\n /*multiLine*/\n true\n ),\n bodyLocation\n )\n );\n }\n return node;\n }\n function convertForOfStatementHead(node, boundValue, nonUserCode) {\n const value = factory2.createTempVariable(hoistVariableDeclaration);\n const iteratorValueExpression = factory2.createAssignment(value, boundValue);\n const iteratorValueStatement = factory2.createExpressionStatement(iteratorValueExpression);\n setSourceMapRange(iteratorValueStatement, node.expression);\n const exitNonUserCodeExpression = factory2.createAssignment(nonUserCode, factory2.createFalse());\n const exitNonUserCodeStatement = factory2.createExpressionStatement(exitNonUserCodeExpression);\n setSourceMapRange(exitNonUserCodeStatement, node.expression);\n const statements = [iteratorValueStatement, exitNonUserCodeStatement];\n const binding = createForOfBindingStatement(factory2, node.initializer, value);\n statements.push(visitNode(binding, visitor, isStatement));\n let bodyLocation;\n let statementsLocation;\n const statement = visitIterationBody(node.statement, visitor, context);\n if (isBlock(statement)) {\n addRange(statements, statement.statements);\n bodyLocation = statement;\n statementsLocation = statement.statements;\n } else {\n statements.push(statement);\n }\n return setTextRange(\n factory2.createBlock(\n setTextRange(factory2.createNodeArray(statements), statementsLocation),\n /*multiLine*/\n true\n ),\n bodyLocation\n );\n }\n function createDownlevelAwait(expression) {\n return enclosingFunctionFlags & 1 /* Generator */ ? factory2.createYieldExpression(\n /*asteriskToken*/\n void 0,\n emitHelpers().createAwaitHelper(expression)\n ) : factory2.createAwaitExpression(expression);\n }\n function transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) {\n const expression = visitNode(node.expression, visitor, isExpression);\n const iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const nonUserCode = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const done = factory2.createTempVariable(hoistVariableDeclaration);\n const errorRecord = factory2.createUniqueName(\"e\");\n const catchVariable = factory2.getGeneratedNameForNode(errorRecord);\n const returnMethod = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const callValues = setTextRange(emitHelpers().createAsyncValuesHelper(expression), node.expression);\n const callNext = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(iterator, \"next\"),\n /*typeArguments*/\n void 0,\n []\n );\n const getDone = factory2.createPropertyAccessExpression(result, \"done\");\n const getValue = factory2.createPropertyAccessExpression(result, \"value\");\n const callReturn = factory2.createFunctionCallCall(returnMethod, iterator, []);\n hoistVariableDeclaration(errorRecord);\n hoistVariableDeclaration(returnMethod);\n const initializer = ancestorFacts & 2 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), callValues]) : callValues;\n const forStatement = setEmitFlags(\n setTextRange(\n factory2.createForStatement(\n /*initializer*/\n setEmitFlags(\n setTextRange(\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n nonUserCode,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createTrue()\n ),\n setTextRange(factory2.createVariableDeclaration(\n iterator,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n ), node.expression),\n factory2.createVariableDeclaration(result)\n ]),\n node.expression\n ),\n 4194304 /* NoHoisting */\n ),\n /*condition*/\n factory2.inlineExpressions([\n factory2.createAssignment(result, createDownlevelAwait(callNext)),\n factory2.createAssignment(done, getDone),\n factory2.createLogicalNot(done)\n ]),\n /*incrementor*/\n factory2.createAssignment(nonUserCode, factory2.createTrue()),\n /*statement*/\n convertForOfStatementHead(node, getValue, nonUserCode)\n ),\n /*location*/\n node\n ),\n 512 /* NoTokenTrailingSourceMaps */\n );\n setOriginalNode(forStatement, node);\n return factory2.createTryStatement(\n factory2.createBlock([\n factory2.restoreEnclosingLabel(\n forStatement,\n outermostLabeledStatement\n )\n ]),\n factory2.createCatchClause(\n factory2.createVariableDeclaration(catchVariable),\n setEmitFlags(\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(\n errorRecord,\n factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"error\", catchVariable)\n ])\n )\n )\n ]),\n 1 /* SingleLine */\n )\n ),\n factory2.createBlock([\n factory2.createTryStatement(\n /*tryBlock*/\n factory2.createBlock([\n setEmitFlags(\n factory2.createIfStatement(\n factory2.createLogicalAnd(\n factory2.createLogicalAnd(\n factory2.createLogicalNot(nonUserCode),\n factory2.createLogicalNot(done)\n ),\n factory2.createAssignment(\n returnMethod,\n factory2.createPropertyAccessExpression(iterator, \"return\")\n )\n ),\n factory2.createExpressionStatement(createDownlevelAwait(callReturn))\n ),\n 1 /* SingleLine */\n )\n ]),\n /*catchClause*/\n void 0,\n /*finallyBlock*/\n setEmitFlags(\n factory2.createBlock([\n setEmitFlags(\n factory2.createIfStatement(\n errorRecord,\n factory2.createThrowStatement(\n factory2.createPropertyAccessExpression(errorRecord, \"error\")\n )\n ),\n 1 /* SingleLine */\n )\n ]),\n 1 /* SingleLine */\n )\n )\n ])\n );\n }\n function parameterVisitor(node) {\n Debug.assertNode(node, isParameter);\n return visitParameter(node);\n }\n function visitParameter(node) {\n if (parametersWithPrecedingObjectRestOrSpread == null ? void 0 : parametersWithPrecedingObjectRestOrSpread.has(node)) {\n return factory2.updateParameterDeclaration(\n node,\n /*modifiers*/\n void 0,\n node.dotDotDotToken,\n isBindingPattern(node.name) ? factory2.getGeneratedNameForNode(node) : node.name,\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n }\n if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n return factory2.updateParameterDeclaration(\n node,\n /*modifiers*/\n void 0,\n node.dotDotDotToken,\n factory2.getGeneratedNameForNode(node),\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n visitNode(node.initializer, visitor, isExpression)\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function collectParametersWithPrecedingObjectRestOrSpread(node) {\n let parameters;\n for (const parameter of node.parameters) {\n if (parameters) {\n parameters.add(parameter);\n } else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n parameters = /* @__PURE__ */ new Set();\n }\n }\n return parameters;\n }\n function visitConstructorDeclaration(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateConstructorDeclaration(\n node,\n node.modifiers,\n visitParameterList(node.parameters, parameterVisitor, context),\n transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitGetAccessorDeclaration(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateGetAccessorDeclaration(\n node,\n node.modifiers,\n visitNode(node.name, visitor, isPropertyName),\n visitParameterList(node.parameters, parameterVisitor, context),\n /*type*/\n void 0,\n transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitSetAccessorDeclaration(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateSetAccessorDeclaration(\n node,\n node.modifiers,\n visitNode(node.name, visitor, isPropertyName),\n visitParameterList(node.parameters, parameterVisitor, context),\n transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitMethodDeclaration(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateMethodDeclaration(\n node,\n enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifierLike) : node.modifiers,\n enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n visitNode(node.name, visitor, isPropertyName),\n visitNode(\n /*node*/\n void 0,\n visitor,\n isQuestionToken\n ),\n /*typeParameters*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n /*type*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitFunctionDeclaration(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateFunctionDeclaration(\n node,\n enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers,\n enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n /*type*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitArrowFunction(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateArrowFunction(\n node,\n node.modifiers,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, parameterVisitor, context),\n /*type*/\n void 0,\n node.equalsGreaterThanToken,\n transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function visitFunctionExpression(node) {\n const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n enclosingFunctionFlags = getFunctionFlags(node);\n parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n const updated = factory2.updateFunctionExpression(\n node,\n enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers,\n enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n node.name,\n /*typeParameters*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n /*type*/\n void 0,\n enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n );\n enclosingFunctionFlags = savedEnclosingFunctionFlags;\n parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n return updated;\n }\n function transformAsyncGeneratorFunctionParameterList(node) {\n if (isSimpleParameterList(node.parameters)) {\n return visitParameterList(node.parameters, visitor, context);\n }\n const newParameters = [];\n for (const parameter of node.parameters) {\n if (parameter.initializer || parameter.dotDotDotToken) {\n break;\n }\n const newParameter = factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.getGeneratedNameForNode(parameter.name, 8 /* ReservedInNestedScopes */)\n );\n newParameters.push(newParameter);\n }\n const newParametersArray = factory2.createNodeArray(newParameters);\n setTextRange(newParametersArray, node.parameters);\n return newParametersArray;\n }\n function transformAsyncGeneratorFunctionBody(node) {\n const innerParameters = !isSimpleParameterList(node.parameters) ? visitParameterList(node.parameters, visitor, context) : void 0;\n resumeLexicalEnvironment();\n const savedCapturedSuperProperties = capturedSuperProperties;\n const savedHasSuperElementAccess = hasSuperElementAccess;\n capturedSuperProperties = /* @__PURE__ */ new Set();\n hasSuperElementAccess = false;\n const outerStatements = [];\n let asyncBody = factory2.updateBlock(node.body, visitNodes2(node.body.statements, visitor, isStatement));\n asyncBody = factory2.updateBlock(asyncBody, factory2.mergeLexicalEnvironment(asyncBody.statements, appendObjectRestAssignmentsIfNeeded(endLexicalEnvironment(), node)));\n const returnStatement = factory2.createReturnStatement(\n emitHelpers().createAsyncGeneratorHelper(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n factory2.createToken(42 /* AsteriskToken */),\n node.name && factory2.getGeneratedNameForNode(node.name),\n /*typeParameters*/\n void 0,\n innerParameters ?? [],\n /*type*/\n void 0,\n asyncBody\n ),\n !!(hierarchyFacts & 1 /* HasLexicalThis */)\n )\n );\n const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */));\n if (emitSuperHelpers) {\n enableSubstitutionForAsyncMethodsWithSuper();\n const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n insertStatementsAfterStandardPrologue(outerStatements, [variableStatement]);\n }\n outerStatements.push(returnStatement);\n const block = factory2.updateBlock(node.body, outerStatements);\n if (emitSuperHelpers && hasSuperElementAccess) {\n if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n addEmitHelper(block, advancedAsyncSuperHelper);\n } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n addEmitHelper(block, asyncSuperHelper);\n }\n }\n capturedSuperProperties = savedCapturedSuperProperties;\n hasSuperElementAccess = savedHasSuperElementAccess;\n return block;\n }\n function transformFunctionBody2(node) {\n resumeLexicalEnvironment();\n let statementOffset = 0;\n const statements = [];\n const body = visitNode(node.body, visitor, isConciseBody) ?? factory2.createBlock([]);\n if (isBlock(body)) {\n statementOffset = factory2.copyPrologue(\n body.statements,\n statements,\n /*ensureUseStrict*/\n false,\n visitor\n );\n }\n addRange(statements, appendObjectRestAssignmentsIfNeeded(\n /*statements*/\n void 0,\n node\n ));\n const leadingStatements = endLexicalEnvironment();\n if (statementOffset > 0 || some(statements) || some(leadingStatements)) {\n const block = factory2.converters.convertToFunctionBlock(\n body,\n /*multiLine*/\n true\n );\n insertStatementsAfterStandardPrologue(statements, leadingStatements);\n addRange(statements, block.statements.slice(statementOffset));\n return factory2.updateBlock(block, setTextRange(factory2.createNodeArray(statements), block.statements));\n }\n return body;\n }\n function appendObjectRestAssignmentsIfNeeded(statements, node) {\n let containsPrecedingObjectRestOrSpread = false;\n for (const parameter of node.parameters) {\n if (containsPrecedingObjectRestOrSpread) {\n if (isBindingPattern(parameter.name)) {\n if (parameter.name.elements.length > 0) {\n const declarations = flattenDestructuringBinding(\n parameter,\n visitor,\n context,\n 0 /* All */,\n factory2.getGeneratedNameForNode(parameter)\n );\n if (some(declarations)) {\n const declarationList = factory2.createVariableDeclarationList(declarations);\n const statement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n declarationList\n );\n setEmitFlags(statement, 2097152 /* CustomPrologue */);\n statements = append(statements, statement);\n }\n } else if (parameter.initializer) {\n const name = factory2.getGeneratedNameForNode(parameter);\n const initializer = visitNode(parameter.initializer, visitor, isExpression);\n const assignment = factory2.createAssignment(name, initializer);\n const statement = factory2.createExpressionStatement(assignment);\n setEmitFlags(statement, 2097152 /* CustomPrologue */);\n statements = append(statements, statement);\n }\n } else if (parameter.initializer) {\n const name = factory2.cloneNode(parameter.name);\n setTextRange(name, parameter.name);\n setEmitFlags(name, 96 /* NoSourceMap */);\n const initializer = visitNode(parameter.initializer, visitor, isExpression);\n addEmitFlags(initializer, 96 /* NoSourceMap */ | 3072 /* NoComments */);\n const assignment = factory2.createAssignment(name, initializer);\n setTextRange(assignment, parameter);\n setEmitFlags(assignment, 3072 /* NoComments */);\n const block = factory2.createBlock([factory2.createExpressionStatement(assignment)]);\n setTextRange(block, parameter);\n setEmitFlags(block, 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */);\n const typeCheck = factory2.createTypeCheck(factory2.cloneNode(parameter.name), \"undefined\");\n const statement = factory2.createIfStatement(typeCheck, block);\n startOnNewLine(statement);\n setTextRange(statement, parameter);\n setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */);\n statements = append(statements, statement);\n }\n } else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n containsPrecedingObjectRestOrSpread = true;\n const declarations = flattenDestructuringBinding(\n parameter,\n visitor,\n context,\n 1 /* ObjectRest */,\n factory2.getGeneratedNameForNode(parameter),\n /*hoistTempVariables*/\n false,\n /*skipInitializer*/\n true\n );\n if (some(declarations)) {\n const declarationList = factory2.createVariableDeclarationList(declarations);\n const statement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n declarationList\n );\n setEmitFlags(statement, 2097152 /* CustomPrologue */);\n statements = append(statements, statement);\n }\n }\n }\n return statements;\n }\n function enableSubstitutionForAsyncMethodsWithSuper() {\n if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) {\n enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */;\n context.enableSubstitution(214 /* CallExpression */);\n context.enableSubstitution(212 /* PropertyAccessExpression */);\n context.enableSubstitution(213 /* ElementAccessExpression */);\n context.enableEmitNotification(264 /* ClassDeclaration */);\n context.enableEmitNotification(175 /* MethodDeclaration */);\n context.enableEmitNotification(178 /* GetAccessor */);\n context.enableEmitNotification(179 /* SetAccessor */);\n context.enableEmitNotification(177 /* Constructor */);\n context.enableEmitNotification(244 /* VariableStatement */);\n }\n }\n function onEmitNode(hint, node, emitCallback) {\n if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) {\n const superContainerFlags = (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */) ? 128 /* MethodWithSuperPropertyAccessInAsync */ : 0) | (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) ? 256 /* MethodWithSuperPropertyAssignmentInAsync */ : 0);\n if (superContainerFlags !== enclosingSuperContainerFlags) {\n const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n enclosingSuperContainerFlags = superContainerFlags;\n previousOnEmitNode(hint, node, emitCallback);\n enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n return;\n }\n } else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) {\n const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n enclosingSuperContainerFlags = 0;\n previousOnEmitNode(hint, node, emitCallback);\n enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n return;\n }\n previousOnEmitNode(hint, node, emitCallback);\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) {\n return substituteExpression(node);\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 212 /* PropertyAccessExpression */:\n return substitutePropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return substituteElementAccessExpression(node);\n case 214 /* CallExpression */:\n return substituteCallExpression(node);\n }\n return node;\n }\n function substitutePropertyAccessExpression(node) {\n if (node.expression.kind === 108 /* SuperKeyword */) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n node.name\n ),\n node\n );\n }\n return node;\n }\n function substituteElementAccessExpression(node) {\n if (node.expression.kind === 108 /* SuperKeyword */) {\n return createSuperElementAccessInAsyncMethod(\n node.argumentExpression,\n node\n );\n }\n return node;\n }\n function substituteCallExpression(node) {\n const expression = node.expression;\n if (isSuperProperty(expression)) {\n const argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression);\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(argumentExpression, \"call\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createThis(),\n ...node.arguments\n ]\n );\n }\n return node;\n }\n function isSuperContainer(node) {\n const kind = node.kind;\n return kind === 264 /* ClassDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n }\n function createSuperElementAccessInAsyncMethod(argumentExpression, location) {\n if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createCallExpression(\n factory2.createIdentifier(\"_superIndex\"),\n /*typeArguments*/\n void 0,\n [argumentExpression]\n ),\n \"value\"\n ),\n location\n );\n } else {\n return setTextRange(\n factory2.createCallExpression(\n factory2.createIdentifier(\"_superIndex\"),\n /*typeArguments*/\n void 0,\n [argumentExpression]\n ),\n location\n );\n }\n }\n}\n\n// src/compiler/transformers/es2019.ts\nfunction transformES2019(context) {\n const factory2 = context.factory;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n if ((node.transformFlags & 64 /* ContainsES2019 */) === 0) {\n return node;\n }\n switch (node.kind) {\n case 300 /* CatchClause */:\n return visitCatchClause(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitCatchClause(node) {\n if (!node.variableDeclaration) {\n return factory2.updateCatchClause(\n node,\n factory2.createVariableDeclaration(factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n )),\n visitNode(node.block, visitor, isBlock)\n );\n }\n return visitEachChild(node, visitor, context);\n }\n}\n\n// src/compiler/transformers/es2020.ts\nfunction transformES2020(context) {\n const {\n factory: factory2,\n hoistVariableDeclaration\n } = context;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n if ((node.transformFlags & 32 /* ContainsES2020 */) === 0) {\n return node;\n }\n switch (node.kind) {\n case 214 /* CallExpression */: {\n const updated = visitNonOptionalCallExpression(\n node,\n /*captureThisArg*/\n false\n );\n Debug.assertNotNode(updated, isSyntheticReference);\n return updated;\n }\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n if (isOptionalChain(node)) {\n const updated = visitOptionalExpression(\n node,\n /*captureThisArg*/\n false,\n /*isDelete*/\n false\n );\n Debug.assertNotNode(updated, isSyntheticReference);\n return updated;\n }\n return visitEachChild(node, visitor, context);\n case 227 /* BinaryExpression */:\n if (node.operatorToken.kind === 61 /* QuestionQuestionToken */) {\n return transformNullishCoalescingExpression(node);\n }\n return visitEachChild(node, visitor, context);\n case 221 /* DeleteExpression */:\n return visitDeleteExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function flattenChain(chain) {\n Debug.assertNotNode(chain, isNonNullChain);\n const links = [chain];\n while (!chain.questionDotToken && !isTaggedTemplateExpression(chain)) {\n chain = cast(skipPartiallyEmittedExpressions(chain.expression), isOptionalChain);\n Debug.assertNotNode(chain, isNonNullChain);\n links.unshift(chain);\n }\n return { expression: chain.expression, chain: links };\n }\n function visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete) {\n const expression = visitNonOptionalExpression(node.expression, captureThisArg, isDelete);\n if (isSyntheticReference(expression)) {\n return factory2.createSyntheticReferenceExpression(factory2.updateParenthesizedExpression(node, expression.expression), expression.thisArg);\n }\n return factory2.updateParenthesizedExpression(node, expression);\n }\n function visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete) {\n if (isOptionalChain(node)) {\n return visitOptionalExpression(node, captureThisArg, isDelete);\n }\n let expression = visitNode(node.expression, visitor, isExpression);\n Debug.assertNotNode(expression, isSyntheticReference);\n let thisArg;\n if (captureThisArg) {\n if (!isSimpleCopiableExpression(expression)) {\n thisArg = factory2.createTempVariable(hoistVariableDeclaration);\n expression = factory2.createAssignment(thisArg, expression);\n } else {\n thisArg = expression;\n }\n }\n expression = node.kind === 212 /* PropertyAccessExpression */ ? factory2.updatePropertyAccessExpression(node, expression, visitNode(node.name, visitor, isIdentifier)) : factory2.updateElementAccessExpression(node, expression, visitNode(node.argumentExpression, visitor, isExpression));\n return thisArg ? factory2.createSyntheticReferenceExpression(expression, thisArg) : expression;\n }\n function visitNonOptionalCallExpression(node, captureThisArg) {\n if (isOptionalChain(node)) {\n return visitOptionalExpression(\n node,\n captureThisArg,\n /*isDelete*/\n false\n );\n }\n if (isParenthesizedExpression(node.expression) && isOptionalChain(skipParentheses(node.expression))) {\n const expression = visitNonOptionalParenthesizedExpression(\n node.expression,\n /*captureThisArg*/\n true,\n /*isDelete*/\n false\n );\n const args = visitNodes2(node.arguments, visitor, isExpression);\n if (isSyntheticReference(expression)) {\n return setTextRange(factory2.createFunctionCallCall(expression.expression, expression.thisArg, args), node);\n }\n return factory2.updateCallExpression(\n node,\n expression,\n /*typeArguments*/\n void 0,\n args\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitNonOptionalExpression(node, captureThisArg, isDelete) {\n switch (node.kind) {\n case 218 /* ParenthesizedExpression */:\n return visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete);\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete);\n case 214 /* CallExpression */:\n return visitNonOptionalCallExpression(node, captureThisArg);\n default:\n return visitNode(node, visitor, isExpression);\n }\n }\n function visitOptionalExpression(node, captureThisArg, isDelete) {\n const { expression, chain } = flattenChain(node);\n const left = visitNonOptionalExpression(\n skipPartiallyEmittedExpressions(expression),\n isCallChain(chain[0]),\n /*isDelete*/\n false\n );\n let leftThisArg = isSyntheticReference(left) ? left.thisArg : void 0;\n let capturedLeft = isSyntheticReference(left) ? left.expression : left;\n let leftExpression = factory2.restoreOuterExpressions(expression, capturedLeft, 8 /* PartiallyEmittedExpressions */);\n if (!isSimpleCopiableExpression(capturedLeft)) {\n capturedLeft = factory2.createTempVariable(hoistVariableDeclaration);\n leftExpression = factory2.createAssignment(capturedLeft, leftExpression);\n }\n let rightExpression = capturedLeft;\n let thisArg;\n for (let i = 0; i < chain.length; i++) {\n const segment = chain[i];\n switch (segment.kind) {\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n if (i === chain.length - 1 && captureThisArg) {\n if (!isSimpleCopiableExpression(rightExpression)) {\n thisArg = factory2.createTempVariable(hoistVariableDeclaration);\n rightExpression = factory2.createAssignment(thisArg, rightExpression);\n } else {\n thisArg = rightExpression;\n }\n }\n rightExpression = segment.kind === 212 /* PropertyAccessExpression */ ? factory2.createPropertyAccessExpression(rightExpression, visitNode(segment.name, visitor, isIdentifier)) : factory2.createElementAccessExpression(rightExpression, visitNode(segment.argumentExpression, visitor, isExpression));\n break;\n case 214 /* CallExpression */:\n if (i === 0 && leftThisArg) {\n if (!isGeneratedIdentifier(leftThisArg)) {\n leftThisArg = factory2.cloneNode(leftThisArg);\n addEmitFlags(leftThisArg, 3072 /* NoComments */);\n }\n rightExpression = factory2.createFunctionCallCall(\n rightExpression,\n leftThisArg.kind === 108 /* SuperKeyword */ ? factory2.createThis() : leftThisArg,\n visitNodes2(segment.arguments, visitor, isExpression)\n );\n } else {\n rightExpression = factory2.createCallExpression(\n rightExpression,\n /*typeArguments*/\n void 0,\n visitNodes2(segment.arguments, visitor, isExpression)\n );\n }\n break;\n }\n setOriginalNode(rightExpression, segment);\n }\n const target = isDelete ? factory2.createConditionalExpression(\n createNotNullCondition(\n leftExpression,\n capturedLeft,\n /*invert*/\n true\n ),\n /*questionToken*/\n void 0,\n factory2.createTrue(),\n /*colonToken*/\n void 0,\n factory2.createDeleteExpression(rightExpression)\n ) : factory2.createConditionalExpression(\n createNotNullCondition(\n leftExpression,\n capturedLeft,\n /*invert*/\n true\n ),\n /*questionToken*/\n void 0,\n factory2.createVoidZero(),\n /*colonToken*/\n void 0,\n rightExpression\n );\n setTextRange(target, node);\n return thisArg ? factory2.createSyntheticReferenceExpression(target, thisArg) : target;\n }\n function createNotNullCondition(left, right, invert) {\n return factory2.createBinaryExpression(\n factory2.createBinaryExpression(\n left,\n factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */),\n factory2.createNull()\n ),\n factory2.createToken(invert ? 57 /* BarBarToken */ : 56 /* AmpersandAmpersandToken */),\n factory2.createBinaryExpression(\n right,\n factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */),\n factory2.createVoidZero()\n )\n );\n }\n function transformNullishCoalescingExpression(node) {\n let left = visitNode(node.left, visitor, isExpression);\n let right = left;\n if (!isSimpleCopiableExpression(left)) {\n right = factory2.createTempVariable(hoistVariableDeclaration);\n left = factory2.createAssignment(right, left);\n }\n return setTextRange(\n factory2.createConditionalExpression(\n createNotNullCondition(left, right),\n /*questionToken*/\n void 0,\n right,\n /*colonToken*/\n void 0,\n visitNode(node.right, visitor, isExpression)\n ),\n node\n );\n }\n function visitDeleteExpression(node) {\n return isOptionalChain(skipParentheses(node.expression)) ? setOriginalNode(visitNonOptionalExpression(\n node.expression,\n /*captureThisArg*/\n false,\n /*isDelete*/\n true\n ), node) : factory2.updateDeleteExpression(node, visitNode(node.expression, visitor, isExpression));\n }\n}\n\n// src/compiler/transformers/es2021.ts\nfunction transformES2021(context) {\n const {\n hoistVariableDeclaration,\n factory: factory2\n } = context;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n if ((node.transformFlags & 16 /* ContainsES2021 */) === 0) {\n return node;\n }\n if (isLogicalOrCoalescingAssignmentExpression(node)) {\n return transformLogicalAssignment(node);\n }\n return visitEachChild(node, visitor, context);\n }\n function transformLogicalAssignment(binaryExpression) {\n const operator = binaryExpression.operatorToken;\n const nonAssignmentOperator = getNonAssignmentOperatorForCompoundAssignment(operator.kind);\n let left = skipParentheses(visitNode(binaryExpression.left, visitor, isLeftHandSideExpression));\n let assignmentTarget = left;\n const right = skipParentheses(visitNode(binaryExpression.right, visitor, isExpression));\n if (isAccessExpression(left)) {\n const propertyAccessTargetSimpleCopiable = isSimpleCopiableExpression(left.expression);\n const propertyAccessTarget = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createTempVariable(hoistVariableDeclaration);\n const propertyAccessTargetAssignment = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createAssignment(\n propertyAccessTarget,\n left.expression\n );\n if (isPropertyAccessExpression(left)) {\n assignmentTarget = factory2.createPropertyAccessExpression(\n propertyAccessTarget,\n left.name\n );\n left = factory2.createPropertyAccessExpression(\n propertyAccessTargetAssignment,\n left.name\n );\n } else {\n const elementAccessArgumentSimpleCopiable = isSimpleCopiableExpression(left.argumentExpression);\n const elementAccessArgument = elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createTempVariable(hoistVariableDeclaration);\n assignmentTarget = factory2.createElementAccessExpression(\n propertyAccessTarget,\n elementAccessArgument\n );\n left = factory2.createElementAccessExpression(\n propertyAccessTargetAssignment,\n elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createAssignment(\n elementAccessArgument,\n left.argumentExpression\n )\n );\n }\n }\n return factory2.createBinaryExpression(\n left,\n nonAssignmentOperator,\n factory2.createParenthesizedExpression(\n factory2.createAssignment(\n assignmentTarget,\n right\n )\n )\n );\n }\n}\n\n// src/compiler/transformers/esnext.ts\nfunction transformESNext(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n hoistVariableDeclaration,\n startLexicalEnvironment,\n endLexicalEnvironment\n } = context;\n let exportBindings;\n let exportVars;\n let defaultExportBinding;\n let exportEqualsBinding;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n const visited = visitNode(node, visitor, isSourceFile);\n addEmitHelpers(visited, context.readEmitHelpers());\n exportVars = void 0;\n exportBindings = void 0;\n defaultExportBinding = void 0;\n return visited;\n }\n function visitor(node) {\n if ((node.transformFlags & 4 /* ContainsESNext */) === 0) {\n return node;\n }\n switch (node.kind) {\n case 308 /* SourceFile */:\n return visitSourceFile(node);\n case 242 /* Block */:\n return visitBlock(node);\n case 249 /* ForStatement */:\n return visitForStatement(node);\n case 251 /* ForOfStatement */:\n return visitForOfStatement(node);\n case 256 /* SwitchStatement */:\n return visitSwitchStatement(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitSourceFile(node) {\n const usingKind = getUsingKindOfStatements(node.statements);\n if (usingKind) {\n startLexicalEnvironment();\n exportBindings = new IdentifierNameMap();\n exportVars = [];\n const prologueCount = countPrologueStatements(node.statements);\n const topLevelStatements = [];\n addRange(topLevelStatements, visitArray(node.statements, visitor, isStatement, 0, prologueCount));\n let pos = prologueCount;\n while (pos < node.statements.length) {\n const statement = node.statements[pos];\n if (getUsingKind(statement) !== 0 /* None */) {\n if (pos > prologueCount) {\n addRange(topLevelStatements, visitNodes2(node.statements, visitor, isStatement, prologueCount, pos - prologueCount));\n }\n break;\n }\n pos++;\n }\n Debug.assert(pos < node.statements.length, \"Should have encountered at least one 'using' statement.\");\n const envBinding = createEnvBinding();\n const bodyStatements = transformUsingDeclarations(node.statements, pos, node.statements.length, envBinding, topLevelStatements);\n if (exportBindings.size) {\n append(\n topLevelStatements,\n factory2.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory2.createNamedExports(arrayFrom(exportBindings.values()))\n )\n );\n }\n addRange(topLevelStatements, endLexicalEnvironment());\n if (exportVars.length) {\n topLevelStatements.push(factory2.createVariableStatement(\n factory2.createModifiersFromModifierFlags(32 /* Export */),\n factory2.createVariableDeclarationList(\n exportVars,\n 1 /* Let */\n )\n ));\n }\n addRange(topLevelStatements, createDownlevelUsingStatements(bodyStatements, envBinding, usingKind === 2 /* Async */));\n if (exportEqualsBinding) {\n topLevelStatements.push(factory2.createExportAssignment(\n /*modifiers*/\n void 0,\n /*isExportEquals*/\n true,\n exportEqualsBinding\n ));\n }\n return factory2.updateSourceFile(node, topLevelStatements);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitBlock(node) {\n const usingKind = getUsingKindOfStatements(node.statements);\n if (usingKind) {\n const prologueCount = countPrologueStatements(node.statements);\n const envBinding = createEnvBinding();\n return factory2.updateBlock(\n node,\n [\n ...visitArray(node.statements, visitor, isStatement, 0, prologueCount),\n ...createDownlevelUsingStatements(\n transformUsingDeclarations(\n node.statements,\n prologueCount,\n node.statements.length,\n envBinding,\n /*topLevelStatements*/\n void 0\n ),\n envBinding,\n usingKind === 2 /* Async */\n )\n ]\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForStatement(node) {\n if (node.initializer && isUsingVariableDeclarationList(node.initializer)) {\n return visitNode(\n factory2.createBlock([\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n node.initializer\n ),\n factory2.updateForStatement(\n node,\n /*initializer*/\n void 0,\n node.condition,\n node.incrementor,\n node.statement\n )\n ]),\n visitor,\n isStatement\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForOfStatement(node) {\n if (isUsingVariableDeclarationList(node.initializer)) {\n const forInitializer = node.initializer;\n const forDecl = firstOrUndefined(forInitializer.declarations) || factory2.createVariableDeclaration(factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n ));\n const isAwaitUsing = getUsingKindOfVariableDeclarationList(forInitializer) === 2 /* Async */;\n const temp = factory2.getGeneratedNameForNode(forDecl.name);\n const usingVar = factory2.updateVariableDeclaration(\n forDecl,\n forDecl.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n temp\n );\n const usingVarList = factory2.createVariableDeclarationList([usingVar], isAwaitUsing ? 6 /* AwaitUsing */ : 4 /* Using */);\n const usingVarStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n usingVarList\n );\n return visitNode(\n factory2.updateForOfStatement(\n node,\n node.awaitModifier,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(temp)\n ], 2 /* Const */),\n node.expression,\n isBlock(node.statement) ? factory2.updateBlock(node.statement, [\n usingVarStatement,\n ...node.statement.statements\n ]) : factory2.createBlock(\n [\n usingVarStatement,\n node.statement\n ],\n /*multiLine*/\n true\n )\n ),\n visitor,\n isStatement\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCaseOrDefaultClause(node, envBinding) {\n if (getUsingKindOfStatements(node.statements) !== 0 /* None */) {\n if (isCaseClause(node)) {\n return factory2.updateCaseClause(\n node,\n visitNode(node.expression, visitor, isExpression),\n transformUsingDeclarations(\n node.statements,\n /*start*/\n 0,\n node.statements.length,\n envBinding,\n /*topLevelStatements*/\n void 0\n )\n );\n } else {\n return factory2.updateDefaultClause(\n node,\n transformUsingDeclarations(\n node.statements,\n /*start*/\n 0,\n node.statements.length,\n envBinding,\n /*topLevelStatements*/\n void 0\n )\n );\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitSwitchStatement(node) {\n const usingKind = getUsingKindOfCaseOrDefaultClauses(node.caseBlock.clauses);\n if (usingKind) {\n const envBinding = createEnvBinding();\n return createDownlevelUsingStatements(\n [\n factory2.updateSwitchStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n factory2.updateCaseBlock(\n node.caseBlock,\n node.caseBlock.clauses.map((clause) => visitCaseOrDefaultClause(clause, envBinding))\n )\n )\n ],\n envBinding,\n usingKind === 2 /* Async */\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function transformUsingDeclarations(statementsIn, start, end, envBinding, topLevelStatements) {\n const statements = [];\n for (let i = start; i < end; i++) {\n const statement = statementsIn[i];\n const usingKind = getUsingKind(statement);\n if (usingKind) {\n Debug.assertNode(statement, isVariableStatement);\n const declarations = [];\n for (let declaration of statement.declarationList.declarations) {\n if (!isIdentifier(declaration.name)) {\n declarations.length = 0;\n break;\n }\n if (isNamedEvaluation(declaration)) {\n declaration = transformNamedEvaluation(context, declaration);\n }\n const initializer = visitNode(declaration.initializer, visitor, isExpression) ?? factory2.createVoidZero();\n declarations.push(factory2.updateVariableDeclaration(\n declaration,\n declaration.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n emitHelpers().createAddDisposableResourceHelper(\n envBinding,\n initializer,\n usingKind === 2 /* Async */\n )\n ));\n }\n if (declarations.length) {\n const varList = factory2.createVariableDeclarationList(declarations, 2 /* Const */);\n setOriginalNode(varList, statement.declarationList);\n setTextRange(varList, statement.declarationList);\n hoistOrAppendNode(factory2.updateVariableStatement(\n statement,\n /*modifiers*/\n void 0,\n varList\n ));\n continue;\n }\n }\n const result = visitor(statement);\n if (isArray(result)) {\n result.forEach(hoistOrAppendNode);\n } else if (result) {\n hoistOrAppendNode(result);\n }\n }\n return statements;\n function hoistOrAppendNode(node) {\n Debug.assertNode(node, isStatement);\n append(statements, hoist(node));\n }\n function hoist(node) {\n if (!topLevelStatements) return node;\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 279 /* ExportDeclaration */:\n case 263 /* FunctionDeclaration */:\n return hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements);\n case 278 /* ExportAssignment */:\n return hoistExportAssignment(node);\n case 264 /* ClassDeclaration */:\n return hoistClassDeclaration(node);\n case 244 /* VariableStatement */:\n return hoistVariableStatement(node);\n }\n return node;\n }\n }\n function hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements) {\n topLevelStatements.push(node);\n return void 0;\n }\n function hoistExportAssignment(node) {\n return node.isExportEquals ? hoistExportEquals(node) : hoistExportDefault(node);\n }\n function hoistExportDefault(node) {\n if (defaultExportBinding) {\n return node;\n }\n defaultExportBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n hoistBindingIdentifier(\n defaultExportBinding,\n /*isExport*/\n true,\n \"default\",\n node\n );\n let expression = node.expression;\n let innerExpression = skipOuterExpressions(expression);\n if (isNamedEvaluation(innerExpression)) {\n innerExpression = transformNamedEvaluation(\n context,\n innerExpression,\n /*ignoreEmptyStringLiteral*/\n false,\n \"default\"\n );\n expression = factory2.restoreOuterExpressions(expression, innerExpression);\n }\n const assignment = factory2.createAssignment(defaultExportBinding, expression);\n return factory2.createExpressionStatement(assignment);\n }\n function hoistExportEquals(node) {\n if (exportEqualsBinding) {\n return node;\n }\n exportEqualsBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n hoistVariableDeclaration(exportEqualsBinding);\n const assignment = factory2.createAssignment(exportEqualsBinding, node.expression);\n return factory2.createExpressionStatement(assignment);\n }\n function hoistClassDeclaration(node) {\n if (!node.name && defaultExportBinding) {\n return node;\n }\n const isExported2 = hasSyntacticModifier(node, 32 /* Export */);\n const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n let expression = factory2.converters.convertToClassExpression(node);\n if (node.name) {\n hoistBindingIdentifier(\n factory2.getLocalName(node),\n isExported2 && !isDefault,\n /*exportAlias*/\n void 0,\n node\n );\n expression = factory2.createAssignment(factory2.getDeclarationName(node), expression);\n if (isNamedEvaluation(expression)) {\n expression = transformNamedEvaluation(\n context,\n expression,\n /*ignoreEmptyStringLiteral*/\n false\n );\n }\n setOriginalNode(expression, node);\n setSourceMapRange(expression, node);\n setCommentRange(expression, node);\n }\n if (isDefault && !defaultExportBinding) {\n defaultExportBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n hoistBindingIdentifier(\n defaultExportBinding,\n /*isExport*/\n true,\n \"default\",\n node\n );\n expression = factory2.createAssignment(defaultExportBinding, expression);\n if (isNamedEvaluation(expression)) {\n expression = transformNamedEvaluation(\n context,\n expression,\n /*ignoreEmptyStringLiteral*/\n false,\n \"default\"\n );\n }\n setOriginalNode(expression, node);\n }\n return factory2.createExpressionStatement(expression);\n }\n function hoistVariableStatement(node) {\n let expressions;\n const isExported2 = hasSyntacticModifier(node, 32 /* Export */);\n for (const variable of node.declarationList.declarations) {\n hoistBindingElement(variable, isExported2, variable);\n if (variable.initializer) {\n expressions = append(expressions, hoistInitializedVariable(variable));\n }\n }\n if (expressions) {\n const statement = factory2.createExpressionStatement(factory2.inlineExpressions(expressions));\n setOriginalNode(statement, node);\n setCommentRange(statement, node);\n setSourceMapRange(statement, node);\n return statement;\n }\n return void 0;\n }\n function hoistInitializedVariable(node) {\n Debug.assertIsDefined(node.initializer);\n let target;\n if (isIdentifier(node.name)) {\n target = factory2.cloneNode(node.name);\n setEmitFlags(target, getEmitFlags(target) & ~(32768 /* LocalName */ | 16384 /* ExportName */ | 65536 /* InternalName */));\n } else {\n target = factory2.converters.convertToAssignmentPattern(node.name);\n }\n const assignment = factory2.createAssignment(target, node.initializer);\n setOriginalNode(assignment, node);\n setCommentRange(assignment, node);\n setSourceMapRange(assignment, node);\n return assignment;\n }\n function hoistBindingElement(node, isExportedDeclaration, original) {\n if (isBindingPattern(node.name)) {\n for (const element of node.name.elements) {\n if (!isOmittedExpression(element)) {\n hoistBindingElement(element, isExportedDeclaration, original);\n }\n }\n } else {\n hoistBindingIdentifier(\n node.name,\n isExportedDeclaration,\n /*exportAlias*/\n void 0,\n original\n );\n }\n }\n function hoistBindingIdentifier(node, isExport, exportAlias, original) {\n const name = isGeneratedIdentifier(node) ? node : factory2.cloneNode(node);\n if (isExport) {\n if (exportAlias === void 0 && !isLocalName(name)) {\n const varDecl = factory2.createVariableDeclaration(name);\n if (original) {\n setOriginalNode(varDecl, original);\n }\n exportVars.push(varDecl);\n return;\n }\n const localName = exportAlias !== void 0 ? name : void 0;\n const exportName = exportAlias !== void 0 ? exportAlias : name;\n const specifier = factory2.createExportSpecifier(\n /*isTypeOnly*/\n false,\n localName,\n exportName\n );\n if (original) {\n setOriginalNode(specifier, original);\n }\n exportBindings.set(name, specifier);\n }\n hoistVariableDeclaration(name);\n }\n function createEnvBinding() {\n return factory2.createUniqueName(\"env\");\n }\n function createDownlevelUsingStatements(bodyStatements, envBinding, async) {\n const statements = [];\n const envObject = factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"stack\", factory2.createArrayLiteralExpression()),\n factory2.createPropertyAssignment(\"error\", factory2.createVoidZero()),\n factory2.createPropertyAssignment(\"hasError\", factory2.createFalse())\n ]);\n const envVar = factory2.createVariableDeclaration(\n envBinding,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n envObject\n );\n const envVarList = factory2.createVariableDeclarationList([envVar], 2 /* Const */);\n const envVarStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n envVarList\n );\n statements.push(envVarStatement);\n const tryBlock = factory2.createBlock(\n bodyStatements,\n /*multiLine*/\n true\n );\n const bodyCatchBinding = factory2.createUniqueName(\"e\");\n const catchClause = factory2.createCatchClause(\n bodyCatchBinding,\n factory2.createBlock(\n [\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(envBinding, \"error\"),\n bodyCatchBinding\n )\n ),\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(envBinding, \"hasError\"),\n factory2.createTrue()\n )\n )\n ],\n /*multiLine*/\n true\n )\n );\n let finallyBlock;\n if (async) {\n const result = factory2.createUniqueName(\"result\");\n finallyBlock = factory2.createBlock(\n [\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n result,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n emitHelpers().createDisposeResourcesHelper(envBinding)\n )\n ], 2 /* Const */)\n ),\n factory2.createIfStatement(result, factory2.createExpressionStatement(factory2.createAwaitExpression(result)))\n ],\n /*multiLine*/\n true\n );\n } else {\n finallyBlock = factory2.createBlock(\n [\n factory2.createExpressionStatement(\n emitHelpers().createDisposeResourcesHelper(envBinding)\n )\n ],\n /*multiLine*/\n true\n );\n }\n const tryStatement = factory2.createTryStatement(tryBlock, catchClause, finallyBlock);\n statements.push(tryStatement);\n return statements;\n }\n}\nfunction countPrologueStatements(statements) {\n for (let i = 0; i < statements.length; i++) {\n if (!isPrologueDirective(statements[i]) && !isCustomPrologue(statements[i])) {\n return i;\n }\n }\n return 0;\n}\nfunction isUsingVariableDeclarationList(node) {\n return isVariableDeclarationList(node) && getUsingKindOfVariableDeclarationList(node) !== 0 /* None */;\n}\nfunction getUsingKindOfVariableDeclarationList(node) {\n return (node.flags & 7 /* BlockScoped */) === 6 /* AwaitUsing */ ? 2 /* Async */ : (node.flags & 7 /* BlockScoped */) === 4 /* Using */ ? 1 /* Sync */ : 0 /* None */;\n}\nfunction getUsingKindOfVariableStatement(node) {\n return getUsingKindOfVariableDeclarationList(node.declarationList);\n}\nfunction getUsingKind(statement) {\n return isVariableStatement(statement) ? getUsingKindOfVariableStatement(statement) : 0 /* None */;\n}\nfunction getUsingKindOfStatements(statements) {\n let result = 0 /* None */;\n for (const statement of statements) {\n const usingKind = getUsingKind(statement);\n if (usingKind === 2 /* Async */) return 2 /* Async */;\n if (usingKind > result) result = usingKind;\n }\n return result;\n}\nfunction getUsingKindOfCaseOrDefaultClauses(clauses) {\n let result = 0 /* None */;\n for (const clause of clauses) {\n const usingKind = getUsingKindOfStatements(clause.statements);\n if (usingKind === 2 /* Async */) return 2 /* Async */;\n if (usingKind > result) result = usingKind;\n }\n return result;\n}\n\n// src/compiler/transformers/jsx.ts\nfunction transformJsx(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers\n } = context;\n const compilerOptions = context.getCompilerOptions();\n let currentSourceFile;\n let currentFileState;\n return chainBundle(context, transformSourceFile);\n function getCurrentFileNameExpression() {\n if (currentFileState.filenameDeclaration) {\n return currentFileState.filenameDeclaration.name;\n }\n const declaration = factory2.createVariableDeclaration(\n factory2.createUniqueName(\"_jsxFileName\", 16 /* Optimistic */ | 32 /* FileLevel */),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createStringLiteral(currentSourceFile.fileName)\n );\n currentFileState.filenameDeclaration = declaration;\n return currentFileState.filenameDeclaration.name;\n }\n function getJsxFactoryCalleePrimitive(isStaticChildren) {\n return compilerOptions.jsx === 5 /* ReactJSXDev */ ? \"jsxDEV\" : isStaticChildren ? \"jsxs\" : \"jsx\";\n }\n function getJsxFactoryCallee(isStaticChildren) {\n const type = getJsxFactoryCalleePrimitive(isStaticChildren);\n return getImplicitImportForName(type);\n }\n function getImplicitJsxFragmentReference() {\n return getImplicitImportForName(\"Fragment\");\n }\n function getImplicitImportForName(name) {\n var _a, _b;\n const importSource = name === \"createElement\" ? currentFileState.importSpecifier : getJSXRuntimeImport(currentFileState.importSpecifier, compilerOptions);\n const existing = (_b = (_a = currentFileState.utilizedImplicitRuntimeImports) == null ? void 0 : _a.get(importSource)) == null ? void 0 : _b.get(name);\n if (existing) {\n return existing.name;\n }\n if (!currentFileState.utilizedImplicitRuntimeImports) {\n currentFileState.utilizedImplicitRuntimeImports = /* @__PURE__ */ new Map();\n }\n let specifierSourceImports = currentFileState.utilizedImplicitRuntimeImports.get(importSource);\n if (!specifierSourceImports) {\n specifierSourceImports = /* @__PURE__ */ new Map();\n currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);\n }\n const generatedName = factory2.createUniqueName(`_${name}`, 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);\n const specifier = factory2.createImportSpecifier(\n /*isTypeOnly*/\n false,\n factory2.createIdentifier(name),\n generatedName\n );\n setIdentifierGeneratedImportReference(generatedName, specifier);\n specifierSourceImports.set(name, specifier);\n return generatedName;\n }\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n currentSourceFile = node;\n currentFileState = {};\n currentFileState.importSpecifier = getJSXImplicitImportBase(compilerOptions, node);\n let visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n let statements = visited.statements;\n if (currentFileState.filenameDeclaration) {\n statements = insertStatementAfterCustomPrologue(statements.slice(), factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([currentFileState.filenameDeclaration], 2 /* Const */)\n ));\n }\n if (currentFileState.utilizedImplicitRuntimeImports) {\n for (const [importSource, importSpecifiersMap] of arrayFrom(currentFileState.utilizedImplicitRuntimeImports.entries())) {\n if (isExternalModule(node)) {\n const importStatement = factory2.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory2.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n factory2.createNamedImports(arrayFrom(importSpecifiersMap.values()))\n ),\n factory2.createStringLiteral(importSource),\n /*attributes*/\n void 0\n );\n setParentRecursive(\n importStatement,\n /*incremental*/\n false\n );\n statements = insertStatementAfterCustomPrologue(statements.slice(), importStatement);\n } else if (isExternalOrCommonJsModule(node)) {\n const requireStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n factory2.createObjectBindingPattern(arrayFrom(importSpecifiersMap.values(), (s) => factory2.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n s.propertyName,\n s.name\n ))),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createCallExpression(\n factory2.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n [factory2.createStringLiteral(importSource)]\n )\n )\n ], 2 /* Const */)\n );\n setParentRecursive(\n requireStatement,\n /*incremental*/\n false\n );\n statements = insertStatementAfterCustomPrologue(statements.slice(), requireStatement);\n } else {\n }\n }\n }\n if (statements !== visited.statements) {\n visited = factory2.updateSourceFile(visited, statements);\n }\n currentFileState = void 0;\n return visited;\n }\n function visitor(node) {\n if (node.transformFlags & 2 /* ContainsJsx */) {\n return visitorWorker(node);\n } else {\n return node;\n }\n }\n function visitorWorker(node) {\n switch (node.kind) {\n case 285 /* JsxElement */:\n return visitJsxElement(\n node,\n /*isChild*/\n false\n );\n case 286 /* JsxSelfClosingElement */:\n return visitJsxSelfClosingElement(\n node,\n /*isChild*/\n false\n );\n case 289 /* JsxFragment */:\n return visitJsxFragment(\n node,\n /*isChild*/\n false\n );\n case 295 /* JsxExpression */:\n return visitJsxExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function transformJsxChildToExpression(node) {\n switch (node.kind) {\n case 12 /* JsxText */:\n return visitJsxText(node);\n case 295 /* JsxExpression */:\n return visitJsxExpression(node);\n case 285 /* JsxElement */:\n return visitJsxElement(\n node,\n /*isChild*/\n true\n );\n case 286 /* JsxSelfClosingElement */:\n return visitJsxSelfClosingElement(\n node,\n /*isChild*/\n true\n );\n case 289 /* JsxFragment */:\n return visitJsxFragment(\n node,\n /*isChild*/\n true\n );\n default:\n return Debug.failBadSyntaxKind(node);\n }\n }\n function hasProto(obj) {\n return obj.properties.some(\n (p) => isPropertyAssignment(p) && (isIdentifier(p.name) && idText(p.name) === \"__proto__\" || isStringLiteral(p.name) && p.name.text === \"__proto__\")\n );\n }\n function hasKeyAfterPropsSpread(node) {\n let spread = false;\n for (const elem of node.attributes.properties) {\n if (isJsxSpreadAttribute(elem) && (!isObjectLiteralExpression(elem.expression) || elem.expression.properties.some(isSpreadAssignment))) {\n spread = true;\n } else if (spread && isJsxAttribute(elem) && isIdentifier(elem.name) && elem.name.escapedText === \"key\") {\n return true;\n }\n }\n return false;\n }\n function shouldUseCreateElement(node) {\n return currentFileState.importSpecifier === void 0 || hasKeyAfterPropsSpread(node);\n }\n function visitJsxElement(node, isChild) {\n const tagTransform = shouldUseCreateElement(node.openingElement) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;\n return tagTransform(\n node.openingElement,\n node.children,\n isChild,\n /*location*/\n node\n );\n }\n function visitJsxSelfClosingElement(node, isChild) {\n const tagTransform = shouldUseCreateElement(node) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;\n return tagTransform(\n node,\n /*children*/\n void 0,\n isChild,\n /*location*/\n node\n );\n }\n function visitJsxFragment(node, isChild) {\n const tagTransform = currentFileState.importSpecifier === void 0 ? visitJsxOpeningFragmentCreateElement : visitJsxOpeningFragmentJSX;\n return tagTransform(\n node.openingFragment,\n node.children,\n isChild,\n /*location*/\n node\n );\n }\n function convertJsxChildrenToChildrenPropObject(children) {\n const prop = convertJsxChildrenToChildrenPropAssignment(children);\n return prop && factory2.createObjectLiteralExpression([prop]);\n }\n function convertJsxChildrenToChildrenPropAssignment(children) {\n const nonWhitespaceChildren = getSemanticJsxChildren(children);\n if (length(nonWhitespaceChildren) === 1 && !nonWhitespaceChildren[0].dotDotDotToken) {\n const result2 = transformJsxChildToExpression(nonWhitespaceChildren[0]);\n return result2 && factory2.createPropertyAssignment(\"children\", result2);\n }\n const result = mapDefined(children, transformJsxChildToExpression);\n return length(result) ? factory2.createPropertyAssignment(\"children\", factory2.createArrayLiteralExpression(result)) : void 0;\n }\n function visitJsxOpeningLikeElementJSX(node, children, isChild, location) {\n const tagName = getTagName(node);\n const childrenProp = children && children.length ? convertJsxChildrenToChildrenPropAssignment(children) : void 0;\n const keyAttr = find(node.attributes.properties, (p) => !!p.name && isIdentifier(p.name) && p.name.escapedText === \"key\");\n const attrs = keyAttr ? filter(node.attributes.properties, (p) => p !== keyAttr) : node.attributes.properties;\n const objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs, childrenProp) : factory2.createObjectLiteralExpression(childrenProp ? [childrenProp] : emptyArray);\n return visitJsxOpeningLikeElementOrFragmentJSX(\n tagName,\n objectProperties,\n keyAttr,\n children || emptyArray,\n isChild,\n location\n );\n }\n function visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children, isChild, location) {\n var _a;\n const nonWhitespaceChildren = getSemanticJsxChildren(children);\n const isStaticChildren = length(nonWhitespaceChildren) > 1 || !!((_a = nonWhitespaceChildren[0]) == null ? void 0 : _a.dotDotDotToken);\n const args = [tagName, objectProperties];\n if (keyAttr) {\n args.push(transformJsxAttributeInitializer(keyAttr.initializer));\n }\n if (compilerOptions.jsx === 5 /* ReactJSXDev */) {\n const originalFile = getOriginalNode(currentSourceFile);\n if (originalFile && isSourceFile(originalFile)) {\n if (keyAttr === void 0) {\n args.push(factory2.createVoidZero());\n }\n args.push(isStaticChildren ? factory2.createTrue() : factory2.createFalse());\n const lineCol = getLineAndCharacterOfPosition(originalFile, location.pos);\n args.push(factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"fileName\", getCurrentFileNameExpression()),\n factory2.createPropertyAssignment(\"lineNumber\", factory2.createNumericLiteral(lineCol.line + 1)),\n factory2.createPropertyAssignment(\"columnNumber\", factory2.createNumericLiteral(lineCol.character + 1))\n ]));\n args.push(factory2.createThis());\n }\n }\n const element = setTextRange(\n factory2.createCallExpression(\n getJsxFactoryCallee(isStaticChildren),\n /*typeArguments*/\n void 0,\n args\n ),\n location\n );\n if (isChild) {\n startOnNewLine(element);\n }\n return element;\n }\n function visitJsxOpeningLikeElementCreateElement(node, children, isChild, location) {\n const tagName = getTagName(node);\n const attrs = node.attributes.properties;\n const objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs) : factory2.createNull();\n const callee = currentFileState.importSpecifier === void 0 ? createJsxFactoryExpression(\n factory2,\n context.getEmitResolver().getJsxFactoryEntity(currentSourceFile),\n compilerOptions.reactNamespace,\n // TODO: GH#18217\n node\n ) : getImplicitImportForName(\"createElement\");\n const element = createExpressionForJsxElement(\n factory2,\n callee,\n tagName,\n objectProperties,\n mapDefined(children, transformJsxChildToExpression),\n location\n );\n if (isChild) {\n startOnNewLine(element);\n }\n return element;\n }\n function visitJsxOpeningFragmentJSX(_node, children, isChild, location) {\n let childrenProps;\n if (children && children.length) {\n const result = convertJsxChildrenToChildrenPropObject(children);\n if (result) {\n childrenProps = result;\n }\n }\n return visitJsxOpeningLikeElementOrFragmentJSX(\n getImplicitJsxFragmentReference(),\n childrenProps || factory2.createObjectLiteralExpression([]),\n /*keyAttr*/\n void 0,\n children,\n isChild,\n location\n );\n }\n function visitJsxOpeningFragmentCreateElement(node, children, isChild, location) {\n const element = createExpressionForJsxFragment(\n factory2,\n context.getEmitResolver().getJsxFactoryEntity(currentSourceFile),\n context.getEmitResolver().getJsxFragmentFactoryEntity(currentSourceFile),\n compilerOptions.reactNamespace,\n // TODO: GH#18217\n mapDefined(children, transformJsxChildToExpression),\n node,\n location\n );\n if (isChild) {\n startOnNewLine(element);\n }\n return element;\n }\n function transformJsxSpreadAttributeToProps(node) {\n if (isObjectLiteralExpression(node.expression) && !hasProto(node.expression)) {\n return sameMap(node.expression.properties, (p) => Debug.checkDefined(visitNode(p, visitor, isObjectLiteralElementLike)));\n }\n return factory2.createSpreadAssignment(Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n }\n function transformJsxAttributesToObjectProps(attrs, children) {\n const target = getEmitScriptTarget(compilerOptions);\n return target && target >= 5 /* ES2018 */ ? factory2.createObjectLiteralExpression(transformJsxAttributesToProps(attrs, children)) : transformJsxAttributesToExpression(attrs, children);\n }\n function transformJsxAttributesToProps(attrs, children) {\n const props = flatten(spanMap(attrs, isJsxSpreadAttribute, (attrs2, isSpread) => flatten(map(attrs2, (attr) => isSpread ? transformJsxSpreadAttributeToProps(attr) : transformJsxAttributeToObjectLiteralElement(attr)))));\n if (children) {\n props.push(children);\n }\n return props;\n }\n function transformJsxAttributesToExpression(attrs, children) {\n const expressions = [];\n let properties = [];\n for (const attr of attrs) {\n if (isJsxSpreadAttribute(attr)) {\n if (isObjectLiteralExpression(attr.expression) && !hasProto(attr.expression)) {\n for (const prop of attr.expression.properties) {\n if (isSpreadAssignment(prop)) {\n finishObjectLiteralIfNeeded();\n expressions.push(Debug.checkDefined(visitNode(prop.expression, visitor, isExpression)));\n continue;\n }\n properties.push(Debug.checkDefined(visitNode(prop, visitor)));\n }\n continue;\n }\n finishObjectLiteralIfNeeded();\n expressions.push(Debug.checkDefined(visitNode(attr.expression, visitor, isExpression)));\n continue;\n }\n properties.push(transformJsxAttributeToObjectLiteralElement(attr));\n }\n if (children) {\n properties.push(children);\n }\n finishObjectLiteralIfNeeded();\n if (expressions.length && !isObjectLiteralExpression(expressions[0])) {\n expressions.unshift(factory2.createObjectLiteralExpression());\n }\n return singleOrUndefined(expressions) || emitHelpers().createAssignHelper(expressions);\n function finishObjectLiteralIfNeeded() {\n if (properties.length) {\n expressions.push(factory2.createObjectLiteralExpression(properties));\n properties = [];\n }\n }\n }\n function transformJsxAttributeToObjectLiteralElement(node) {\n const name = getAttributeName(node);\n const expression = transformJsxAttributeInitializer(node.initializer);\n return factory2.createPropertyAssignment(name, expression);\n }\n function transformJsxAttributeInitializer(node) {\n if (node === void 0) {\n return factory2.createTrue();\n }\n if (node.kind === 11 /* StringLiteral */) {\n const singleQuote = node.singleQuote !== void 0 ? node.singleQuote : !isStringDoubleQuoted(node, currentSourceFile);\n const literal = factory2.createStringLiteral(tryDecodeEntities(node.text) || node.text, singleQuote);\n return setTextRange(literal, node);\n }\n if (node.kind === 295 /* JsxExpression */) {\n if (node.expression === void 0) {\n return factory2.createTrue();\n }\n return Debug.checkDefined(visitNode(node.expression, visitor, isExpression));\n }\n if (isJsxElement(node)) {\n return visitJsxElement(\n node,\n /*isChild*/\n false\n );\n }\n if (isJsxSelfClosingElement(node)) {\n return visitJsxSelfClosingElement(\n node,\n /*isChild*/\n false\n );\n }\n if (isJsxFragment(node)) {\n return visitJsxFragment(\n node,\n /*isChild*/\n false\n );\n }\n return Debug.failBadSyntaxKind(node);\n }\n function visitJsxText(node) {\n const fixed = fixupWhitespaceAndDecodeEntities(node.text);\n return fixed === void 0 ? void 0 : factory2.createStringLiteral(fixed);\n }\n function fixupWhitespaceAndDecodeEntities(text) {\n let acc;\n let firstNonWhitespace = 0;\n let lastNonWhitespace = -1;\n for (let i = 0; i < text.length; i++) {\n const c = text.charCodeAt(i);\n if (isLineBreak(c)) {\n if (firstNonWhitespace !== -1 && lastNonWhitespace !== -1) {\n acc = addLineOfJsxText(acc, text.substr(firstNonWhitespace, lastNonWhitespace - firstNonWhitespace + 1));\n }\n firstNonWhitespace = -1;\n } else if (!isWhiteSpaceSingleLine(c)) {\n lastNonWhitespace = i;\n if (firstNonWhitespace === -1) {\n firstNonWhitespace = i;\n }\n }\n }\n return firstNonWhitespace !== -1 ? addLineOfJsxText(acc, text.substr(firstNonWhitespace)) : acc;\n }\n function addLineOfJsxText(acc, trimmedLine) {\n const decoded = decodeEntities(trimmedLine);\n return acc === void 0 ? decoded : acc + \" \" + decoded;\n }\n function decodeEntities(text) {\n return text.replace(/&((#((\\d+)|x([\\da-fA-F]+)))|(\\w+));/g, (match, _all, _number, _digits, decimal, hex, word) => {\n if (decimal) {\n return utf16EncodeAsString(parseInt(decimal, 10));\n } else if (hex) {\n return utf16EncodeAsString(parseInt(hex, 16));\n } else {\n const ch = entities.get(word);\n return ch ? utf16EncodeAsString(ch) : match;\n }\n });\n }\n function tryDecodeEntities(text) {\n const decoded = decodeEntities(text);\n return decoded === text ? void 0 : decoded;\n }\n function getTagName(node) {\n if (node.kind === 285 /* JsxElement */) {\n return getTagName(node.openingElement);\n } else {\n const tagName = node.tagName;\n if (isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText)) {\n return factory2.createStringLiteral(idText(tagName));\n } else if (isJsxNamespacedName(tagName)) {\n return factory2.createStringLiteral(idText(tagName.namespace) + \":\" + idText(tagName.name));\n } else {\n return createExpressionFromEntityName(factory2, tagName);\n }\n }\n }\n function getAttributeName(node) {\n const name = node.name;\n if (isIdentifier(name)) {\n const text = idText(name);\n return /^[A-Z_]\\w*$/i.test(text) ? name : factory2.createStringLiteral(text);\n }\n return factory2.createStringLiteral(idText(name.namespace) + \":\" + idText(name.name));\n }\n function visitJsxExpression(node) {\n const expression = visitNode(node.expression, visitor, isExpression);\n return node.dotDotDotToken ? factory2.createSpreadElement(expression) : expression;\n }\n}\nvar entities = new Map(Object.entries({\n quot: 34,\n amp: 38,\n apos: 39,\n lt: 60,\n gt: 62,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n copy: 169,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n reg: 174,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n sup1: 185,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n Agrave: 192,\n Aacute: 193,\n Acirc: 194,\n Atilde: 195,\n Auml: 196,\n Aring: 197,\n AElig: 198,\n Ccedil: 199,\n Egrave: 200,\n Eacute: 201,\n Ecirc: 202,\n Euml: 203,\n Igrave: 204,\n Iacute: 205,\n Icirc: 206,\n Iuml: 207,\n ETH: 208,\n Ntilde: 209,\n Ograve: 210,\n Oacute: 211,\n Ocirc: 212,\n Otilde: 213,\n Ouml: 214,\n times: 215,\n Oslash: 216,\n Ugrave: 217,\n Uacute: 218,\n Ucirc: 219,\n Uuml: 220,\n Yacute: 221,\n THORN: 222,\n szlig: 223,\n agrave: 224,\n aacute: 225,\n acirc: 226,\n atilde: 227,\n auml: 228,\n aring: 229,\n aelig: 230,\n ccedil: 231,\n egrave: 232,\n eacute: 233,\n ecirc: 234,\n euml: 235,\n igrave: 236,\n iacute: 237,\n icirc: 238,\n iuml: 239,\n eth: 240,\n ntilde: 241,\n ograve: 242,\n oacute: 243,\n ocirc: 244,\n otilde: 245,\n ouml: 246,\n divide: 247,\n oslash: 248,\n ugrave: 249,\n uacute: 250,\n ucirc: 251,\n uuml: 252,\n yacute: 253,\n thorn: 254,\n yuml: 255,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830\n}));\n\n// src/compiler/transformers/es2016.ts\nfunction transformES2016(context) {\n const {\n factory: factory2,\n hoistVariableDeclaration\n } = context;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n if ((node.transformFlags & 512 /* ContainsES2016 */) === 0) {\n return node;\n }\n switch (node.kind) {\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitBinaryExpression(node) {\n switch (node.operatorToken.kind) {\n case 68 /* AsteriskAsteriskEqualsToken */:\n return visitExponentiationAssignmentExpression(node);\n case 43 /* AsteriskAsteriskToken */:\n return visitExponentiationExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitExponentiationAssignmentExpression(node) {\n let target;\n let value;\n const left = visitNode(node.left, visitor, isExpression);\n const right = visitNode(node.right, visitor, isExpression);\n if (isElementAccessExpression(left)) {\n const expressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n const argumentExpressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n target = setTextRange(\n factory2.createElementAccessExpression(\n setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression),\n setTextRange(factory2.createAssignment(argumentExpressionTemp, left.argumentExpression), left.argumentExpression)\n ),\n left\n );\n value = setTextRange(\n factory2.createElementAccessExpression(\n expressionTemp,\n argumentExpressionTemp\n ),\n left\n );\n } else if (isPropertyAccessExpression(left)) {\n const expressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n target = setTextRange(\n factory2.createPropertyAccessExpression(\n setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression),\n left.name\n ),\n left\n );\n value = setTextRange(\n factory2.createPropertyAccessExpression(\n expressionTemp,\n left.name\n ),\n left\n );\n } else {\n target = left;\n value = left;\n }\n return setTextRange(\n factory2.createAssignment(\n target,\n setTextRange(factory2.createGlobalMethodCall(\"Math\", \"pow\", [value, right]), node)\n ),\n node\n );\n }\n function visitExponentiationExpression(node) {\n const left = visitNode(node.left, visitor, isExpression);\n const right = visitNode(node.right, visitor, isExpression);\n return setTextRange(factory2.createGlobalMethodCall(\"Math\", \"pow\", [left, right]), node);\n }\n}\n\n// src/compiler/transformers/es2015.ts\nfunction createSpreadSegment(kind, expression) {\n return { kind, expression };\n}\nfunction transformES2015(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n startLexicalEnvironment,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const compilerOptions = context.getCompilerOptions();\n const resolver = context.getEmitResolver();\n const previousOnSubstituteNode = context.onSubstituteNode;\n const previousOnEmitNode = context.onEmitNode;\n context.onEmitNode = onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n let currentSourceFile;\n let currentText;\n let hierarchyFacts;\n let taggedTemplateStringDeclarations;\n function recordTaggedTemplateString(temp) {\n taggedTemplateStringDeclarations = append(\n taggedTemplateStringDeclarations,\n factory2.createVariableDeclaration(temp)\n );\n }\n let convertedLoopState;\n let enabledSubstitutions = 0 /* None */;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n currentSourceFile = node;\n currentText = node.text;\n const visited = visitSourceFile(node);\n addEmitHelpers(visited, context.readEmitHelpers());\n currentSourceFile = void 0;\n currentText = void 0;\n taggedTemplateStringDeclarations = void 0;\n hierarchyFacts = 0 /* None */;\n return visited;\n }\n function enterSubtree(excludeFacts, includeFacts) {\n const ancestorFacts = hierarchyFacts;\n hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 32767 /* AncestorFactsMask */;\n return ancestorFacts;\n }\n function exitSubtree(ancestorFacts, excludeFacts, includeFacts) {\n hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & -32768 /* SubtreeFactsMask */ | ancestorFacts;\n }\n function isReturnVoidStatementInConstructorWithCapturedSuper(node) {\n return (hierarchyFacts & 8192 /* ConstructorWithSuperCall */) !== 0 && node.kind === 254 /* ReturnStatement */ && !node.expression;\n }\n function isOrMayContainReturnCompletion(node) {\n return node.transformFlags & 4194304 /* ContainsHoistedDeclarationOrCompletion */ && (isReturnStatement(node) || isIfStatement(node) || isWithStatement(node) || isSwitchStatement(node) || isCaseBlock(node) || isCaseClause(node) || isDefaultClause(node) || isTryStatement(node) || isCatchClause(node) || isLabeledStatement(node) || isIterationStatement(\n node,\n /*lookInLabeledStatements*/\n false\n ) || isBlock(node));\n }\n function shouldVisitNode(node) {\n return (node.transformFlags & 1024 /* ContainsES2015 */) !== 0 || convertedLoopState !== void 0 || hierarchyFacts & 8192 /* ConstructorWithSuperCall */ && isOrMayContainReturnCompletion(node) || isIterationStatement(\n node,\n /*lookInLabeledStatements*/\n false\n ) && shouldConvertIterationStatement(node) || (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) !== 0;\n }\n function visitor(node) {\n return shouldVisitNode(node) ? visitorWorker(\n node,\n /*expressionResultIsUnused*/\n false\n ) : node;\n }\n function visitorWithUnusedExpressionResult(node) {\n return shouldVisitNode(node) ? visitorWorker(\n node,\n /*expressionResultIsUnused*/\n true\n ) : node;\n }\n function classWrapperStatementVisitor(node) {\n if (shouldVisitNode(node)) {\n const original = getOriginalNode(node);\n if (isPropertyDeclaration(original) && hasStaticModifier(original)) {\n const ancestorFacts = enterSubtree(\n 32670 /* StaticInitializerExcludes */,\n 16449 /* StaticInitializerIncludes */\n );\n const result = visitorWorker(\n node,\n /*expressionResultIsUnused*/\n false\n );\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n return result;\n }\n return visitorWorker(\n node,\n /*expressionResultIsUnused*/\n false\n );\n }\n return node;\n }\n function callExpressionVisitor(node) {\n if (node.kind === 108 /* SuperKeyword */) {\n return visitSuperKeyword(\n node,\n /*isExpressionOfCall*/\n true\n );\n }\n return visitor(node);\n }\n function visitorWorker(node, expressionResultIsUnused2) {\n switch (node.kind) {\n case 126 /* StaticKeyword */:\n return void 0;\n // elide static keyword\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 232 /* ClassExpression */:\n return visitClassExpression(node);\n case 170 /* Parameter */:\n return visitParameter(node);\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 220 /* ArrowFunction */:\n return visitArrowFunction(node);\n case 219 /* FunctionExpression */:\n return visitFunctionExpression(node);\n case 261 /* VariableDeclaration */:\n return visitVariableDeclaration(node);\n case 80 /* Identifier */:\n return visitIdentifier(node);\n case 262 /* VariableDeclarationList */:\n return visitVariableDeclarationList(node);\n case 256 /* SwitchStatement */:\n return visitSwitchStatement(node);\n case 270 /* CaseBlock */:\n return visitCaseBlock(node);\n case 242 /* Block */:\n return visitBlock(\n node,\n /*isFunctionBody*/\n false\n );\n case 253 /* BreakStatement */:\n case 252 /* ContinueStatement */:\n return visitBreakOrContinueStatement(node);\n case 257 /* LabeledStatement */:\n return visitLabeledStatement(node);\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n return visitDoOrWhileStatement(\n node,\n /*outermostLabeledStatement*/\n void 0\n );\n case 249 /* ForStatement */:\n return visitForStatement(\n node,\n /*outermostLabeledStatement*/\n void 0\n );\n case 250 /* ForInStatement */:\n return visitForInStatement(\n node,\n /*outermostLabeledStatement*/\n void 0\n );\n case 251 /* ForOfStatement */:\n return visitForOfStatement(\n node,\n /*outermostLabeledStatement*/\n void 0\n );\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 211 /* ObjectLiteralExpression */:\n return visitObjectLiteralExpression(node);\n case 300 /* CatchClause */:\n return visitCatchClause(node);\n case 305 /* ShorthandPropertyAssignment */:\n return visitShorthandPropertyAssignment(node);\n case 168 /* ComputedPropertyName */:\n return visitComputedPropertyName(node);\n case 210 /* ArrayLiteralExpression */:\n return visitArrayLiteralExpression(node);\n case 214 /* CallExpression */:\n return visitCallExpression(node);\n case 215 /* NewExpression */:\n return visitNewExpression(node);\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(node, expressionResultIsUnused2);\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(node, expressionResultIsUnused2);\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(node, expressionResultIsUnused2);\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 16 /* TemplateHead */:\n case 17 /* TemplateMiddle */:\n case 18 /* TemplateTail */:\n return visitTemplateLiteral(node);\n case 11 /* StringLiteral */:\n return visitStringLiteral(node);\n case 9 /* NumericLiteral */:\n return visitNumericLiteral(node);\n case 216 /* TaggedTemplateExpression */:\n return visitTaggedTemplateExpression(node);\n case 229 /* TemplateExpression */:\n return visitTemplateExpression(node);\n case 230 /* YieldExpression */:\n return visitYieldExpression(node);\n case 231 /* SpreadElement */:\n return visitSpreadElement(node);\n case 108 /* SuperKeyword */:\n return visitSuperKeyword(\n node,\n /*isExpressionOfCall*/\n false\n );\n case 110 /* ThisKeyword */:\n return visitThisKeyword(node);\n case 237 /* MetaProperty */:\n return visitMetaProperty(node);\n case 175 /* MethodDeclaration */:\n return visitMethodDeclaration(node);\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return visitAccessorDeclaration(node);\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 254 /* ReturnStatement */:\n return visitReturnStatement(node);\n case 223 /* VoidExpression */:\n return visitVoidExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitSourceFile(node) {\n const ancestorFacts = enterSubtree(8064 /* SourceFileExcludes */, 64 /* SourceFileIncludes */);\n const prologue = [];\n const statements = [];\n startLexicalEnvironment();\n const statementOffset = factory2.copyPrologue(\n node.statements,\n prologue,\n /*ensureUseStrict*/\n false,\n visitor\n );\n addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset));\n if (taggedTemplateStringDeclarations) {\n statements.push(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(taggedTemplateStringDeclarations)\n )\n );\n }\n factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n insertCaptureThisForNodeIfNeeded(prologue, node);\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return factory2.updateSourceFile(\n node,\n setTextRange(factory2.createNodeArray(concatenate(prologue, statements)), node.statements)\n );\n }\n function visitSwitchStatement(node) {\n if (convertedLoopState !== void 0) {\n const savedAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps;\n convertedLoopState.allowedNonLabeledJumps |= 2 /* Break */;\n const result = visitEachChild(node, visitor, context);\n convertedLoopState.allowedNonLabeledJumps = savedAllowedNonLabeledJumps;\n return result;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCaseBlock(node) {\n const ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */);\n const updated = visitEachChild(node, visitor, context);\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function returnCapturedThis(node) {\n return setOriginalNode(factory2.createReturnStatement(createCapturedThis()), node);\n }\n function createCapturedThis() {\n return factory2.createUniqueName(\"_this\", 16 /* Optimistic */ | 32 /* FileLevel */);\n }\n function visitReturnStatement(node) {\n if (convertedLoopState) {\n convertedLoopState.nonLocalJumps |= 8 /* Return */;\n if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) {\n node = returnCapturedThis(node);\n }\n return factory2.createReturnStatement(\n factory2.createObjectLiteralExpression(\n [\n factory2.createPropertyAssignment(\n factory2.createIdentifier(\"value\"),\n node.expression ? Debug.checkDefined(visitNode(node.expression, visitor, isExpression)) : factory2.createVoidZero()\n )\n ]\n )\n );\n } else if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) {\n return returnCapturedThis(node);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitThisKeyword(node) {\n hierarchyFacts |= 65536 /* LexicalThis */;\n if (hierarchyFacts & 2 /* ArrowFunction */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) {\n hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n }\n if (convertedLoopState) {\n if (hierarchyFacts & 2 /* ArrowFunction */) {\n convertedLoopState.containsLexicalThis = true;\n return node;\n }\n return convertedLoopState.thisName || (convertedLoopState.thisName = factory2.createUniqueName(\"this\"));\n }\n return node;\n }\n function visitVoidExpression(node) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n function visitIdentifier(node) {\n if (convertedLoopState) {\n if (resolver.isArgumentsLocalBinding(node)) {\n return convertedLoopState.argumentsName || (convertedLoopState.argumentsName = factory2.createUniqueName(\"arguments\"));\n }\n }\n if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) {\n return setOriginalNode(\n setTextRange(\n factory2.createIdentifier(unescapeLeadingUnderscores(node.escapedText)),\n node\n ),\n node\n );\n }\n return node;\n }\n function visitBreakOrContinueStatement(node) {\n if (convertedLoopState) {\n const jump = node.kind === 253 /* BreakStatement */ ? 2 /* Break */ : 4 /* Continue */;\n const canUseBreakOrContinue = node.label && convertedLoopState.labels && convertedLoopState.labels.get(idText(node.label)) || !node.label && convertedLoopState.allowedNonLabeledJumps & jump;\n if (!canUseBreakOrContinue) {\n let labelMarker;\n const label = node.label;\n if (!label) {\n if (node.kind === 253 /* BreakStatement */) {\n convertedLoopState.nonLocalJumps |= 2 /* Break */;\n labelMarker = \"break\";\n } else {\n convertedLoopState.nonLocalJumps |= 4 /* Continue */;\n labelMarker = \"continue\";\n }\n } else {\n if (node.kind === 253 /* BreakStatement */) {\n labelMarker = `break-${label.escapedText}`;\n setLabeledJump(\n convertedLoopState,\n /*isBreak*/\n true,\n idText(label),\n labelMarker\n );\n } else {\n labelMarker = `continue-${label.escapedText}`;\n setLabeledJump(\n convertedLoopState,\n /*isBreak*/\n false,\n idText(label),\n labelMarker\n );\n }\n }\n let returnExpression = factory2.createStringLiteral(labelMarker);\n if (convertedLoopState.loopOutParameters.length) {\n const outParams = convertedLoopState.loopOutParameters;\n let expr;\n for (let i = 0; i < outParams.length; i++) {\n const copyExpr = copyOutParameter(outParams[i], 1 /* ToOutParameter */);\n if (i === 0) {\n expr = copyExpr;\n } else {\n expr = factory2.createBinaryExpression(expr, 28 /* CommaToken */, copyExpr);\n }\n }\n returnExpression = factory2.createBinaryExpression(expr, 28 /* CommaToken */, returnExpression);\n }\n return factory2.createReturnStatement(returnExpression);\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitClassDeclaration(node) {\n const variable = factory2.createVariableDeclaration(\n factory2.getLocalName(\n node,\n /*allowComments*/\n true\n ),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n transformClassLikeDeclarationToExpression(node)\n );\n setOriginalNode(variable, node);\n const statements = [];\n const statement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([variable])\n );\n setOriginalNode(statement, node);\n setTextRange(statement, node);\n startOnNewLine(statement);\n statements.push(statement);\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n const exportStatement = hasSyntacticModifier(node, 2048 /* Default */) ? factory2.createExportDefault(factory2.getLocalName(node)) : factory2.createExternalModuleExport(factory2.getLocalName(node));\n setOriginalNode(exportStatement, statement);\n statements.push(exportStatement);\n }\n return singleOrMany(statements);\n }\n function visitClassExpression(node) {\n return transformClassLikeDeclarationToExpression(node);\n }\n function transformClassLikeDeclarationToExpression(node) {\n if (node.name) {\n enableSubstitutionsForBlockScopedBindings();\n }\n const extendsClauseElement = getClassExtendsHeritageElement(node);\n const classFunction = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n extendsClauseElement ? [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n createSyntheticSuper()\n )] : [],\n /*type*/\n void 0,\n transformClassBody(node, extendsClauseElement)\n );\n setEmitFlags(classFunction, getEmitFlags(node) & 131072 /* Indented */ | 1048576 /* ReuseTempVariableScope */);\n const inner = factory2.createPartiallyEmittedExpression(classFunction);\n setTextRangeEnd(inner, node.end);\n setEmitFlags(inner, 3072 /* NoComments */);\n const outer = factory2.createPartiallyEmittedExpression(inner);\n setTextRangeEnd(outer, skipTrivia(currentText, node.pos));\n setEmitFlags(outer, 3072 /* NoComments */);\n const result = factory2.createParenthesizedExpression(\n factory2.createCallExpression(\n outer,\n /*typeArguments*/\n void 0,\n extendsClauseElement ? [Debug.checkDefined(visitNode(extendsClauseElement.expression, visitor, isExpression))] : []\n )\n );\n addSyntheticLeadingComment(result, 3 /* MultiLineCommentTrivia */, \"* @class \");\n return result;\n }\n function transformClassBody(node, extendsClauseElement) {\n const statements = [];\n const name = factory2.getInternalName(node);\n const constructorLikeName = isIdentifierANonContextualKeyword(name) ? factory2.getGeneratedNameForNode(name) : name;\n startLexicalEnvironment();\n addExtendsHelperIfNeeded(statements, node, extendsClauseElement);\n addConstructor(statements, node, constructorLikeName, extendsClauseElement);\n addClassMembers(statements, node);\n const closingBraceLocation = createTokenRange(skipTrivia(currentText, node.members.end), 20 /* CloseBraceToken */);\n const outer = factory2.createPartiallyEmittedExpression(constructorLikeName);\n setTextRangeEnd(outer, closingBraceLocation.end);\n setEmitFlags(outer, 3072 /* NoComments */);\n const statement = factory2.createReturnStatement(outer);\n setTextRangePos(statement, closingBraceLocation.pos);\n setEmitFlags(statement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */);\n statements.push(statement);\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n const block = factory2.createBlock(\n setTextRange(\n factory2.createNodeArray(statements),\n /*location*/\n node.members\n ),\n /*multiLine*/\n true\n );\n setEmitFlags(block, 3072 /* NoComments */);\n return block;\n }\n function addExtendsHelperIfNeeded(statements, node, extendsClauseElement) {\n if (extendsClauseElement) {\n statements.push(\n setTextRange(\n factory2.createExpressionStatement(\n emitHelpers().createExtendsHelper(factory2.getInternalName(node))\n ),\n /*location*/\n extendsClauseElement\n )\n );\n }\n }\n function addConstructor(statements, node, name, extendsClauseElement) {\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const ancestorFacts = enterSubtree(32662 /* ConstructorExcludes */, 73 /* ConstructorIncludes */);\n const constructor = getFirstConstructorWithBody(node);\n const hasSynthesizedSuper = hasSynthesizedDefaultSuperCall(constructor, extendsClauseElement !== void 0);\n const constructorFunction = factory2.createFunctionDeclaration(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n name,\n /*typeParameters*/\n void 0,\n transformConstructorParameters(constructor, hasSynthesizedSuper),\n /*type*/\n void 0,\n transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper)\n );\n setTextRange(constructorFunction, constructor || node);\n if (extendsClauseElement) {\n setEmitFlags(constructorFunction, 16 /* CapturesThis */);\n }\n statements.push(constructorFunction);\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n }\n function transformConstructorParameters(constructor, hasSynthesizedSuper) {\n return visitParameterList(constructor && !hasSynthesizedSuper ? constructor.parameters : void 0, visitor, context) || [];\n }\n function createDefaultConstructorBody(node, isDerivedClass) {\n const statements = [];\n resumeLexicalEnvironment();\n factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n if (isDerivedClass) {\n statements.push(factory2.createReturnStatement(createDefaultSuperCallOrThis()));\n }\n const statementsArray = factory2.createNodeArray(statements);\n setTextRange(statementsArray, node.members);\n const block = factory2.createBlock(\n statementsArray,\n /*multiLine*/\n true\n );\n setTextRange(block, node);\n setEmitFlags(block, 3072 /* NoComments */);\n return block;\n }\n function isUninitializedVariableStatement(node) {\n return isVariableStatement(node) && every(node.declarationList.declarations, (decl) => isIdentifier(decl.name) && !decl.initializer);\n }\n function containsSuperCall(node) {\n if (isSuperCall(node)) {\n return true;\n }\n if (!(node.transformFlags & 134217728 /* ContainsLexicalSuper */)) {\n return false;\n }\n switch (node.kind) {\n // stop at function boundaries\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 177 /* Constructor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return false;\n // only step into computed property names for class and object literal elements\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n case 173 /* PropertyDeclaration */: {\n const named = node;\n if (isComputedPropertyName(named.name)) {\n return !!forEachChild(named.name, containsSuperCall);\n }\n return false;\n }\n }\n return !!forEachChild(node, containsSuperCall);\n }\n function transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper) {\n const isDerivedClass = !!extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */;\n if (!constructor) return createDefaultConstructorBody(node, isDerivedClass);\n const prologue = [];\n const statements = [];\n resumeLexicalEnvironment();\n const standardPrologueEnd = factory2.copyStandardPrologue(\n constructor.body.statements,\n prologue,\n /*statementOffset*/\n 0\n );\n if (hasSynthesizedSuper || containsSuperCall(constructor.body)) {\n hierarchyFacts |= 8192 /* ConstructorWithSuperCall */;\n }\n addRange(statements, visitNodes2(constructor.body.statements, visitor, isStatement, standardPrologueEnd));\n const mayReplaceThis = isDerivedClass || hierarchyFacts & 8192 /* ConstructorWithSuperCall */;\n addDefaultValueAssignmentsIfNeeded2(prologue, constructor);\n addRestParameterIfNeeded(prologue, constructor, hasSynthesizedSuper);\n insertCaptureNewTargetIfNeeded(prologue, constructor);\n if (mayReplaceThis) {\n insertCaptureThisForNode(prologue, constructor, createActualThis());\n } else {\n insertCaptureThisForNodeIfNeeded(prologue, constructor);\n }\n factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n if (mayReplaceThis && !isSufficientlyCoveredByReturnStatements(constructor.body)) {\n statements.push(factory2.createReturnStatement(createCapturedThis()));\n }\n const body = factory2.createBlock(\n setTextRange(\n factory2.createNodeArray(\n [\n ...prologue,\n ...statements\n ]\n ),\n /*location*/\n constructor.body.statements\n ),\n /*multiLine*/\n true\n );\n setTextRange(body, constructor.body);\n return simplifyConstructor(body, constructor.body, hasSynthesizedSuper);\n }\n function isCapturedThis(node) {\n return isGeneratedIdentifier(node) && idText(node) === \"_this\";\n }\n function isSyntheticSuper(node) {\n return isGeneratedIdentifier(node) && idText(node) === \"_super\";\n }\n function isThisCapturingVariableStatement(node) {\n return isVariableStatement(node) && node.declarationList.declarations.length === 1 && isThisCapturingVariableDeclaration(node.declarationList.declarations[0]);\n }\n function isThisCapturingVariableDeclaration(node) {\n return isVariableDeclaration(node) && isCapturedThis(node.name) && !!node.initializer;\n }\n function isThisCapturingAssignment(node) {\n return isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n ) && isCapturedThis(node.left);\n }\n function isTransformedSuperCall(node) {\n return isCallExpression(node) && isPropertyAccessExpression(node.expression) && isSyntheticSuper(node.expression.expression) && isIdentifier(node.expression.name) && (idText(node.expression.name) === \"call\" || idText(node.expression.name) === \"apply\") && node.arguments.length >= 1 && node.arguments[0].kind === 110 /* ThisKeyword */;\n }\n function isTransformedSuperCallWithFallback(node) {\n return isBinaryExpression(node) && node.operatorToken.kind === 57 /* BarBarToken */ && node.right.kind === 110 /* ThisKeyword */ && isTransformedSuperCall(node.left);\n }\n function isImplicitSuperCall(node) {\n return isBinaryExpression(node) && node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ && isBinaryExpression(node.left) && node.left.operatorToken.kind === 38 /* ExclamationEqualsEqualsToken */ && isSyntheticSuper(node.left.left) && node.left.right.kind === 106 /* NullKeyword */ && isTransformedSuperCall(node.right) && idText(node.right.expression.name) === \"apply\";\n }\n function isImplicitSuperCallWithFallback(node) {\n return isBinaryExpression(node) && node.operatorToken.kind === 57 /* BarBarToken */ && node.right.kind === 110 /* ThisKeyword */ && isImplicitSuperCall(node.left);\n }\n function isThisCapturingTransformedSuperCallWithFallback(node) {\n return isThisCapturingAssignment(node) && isTransformedSuperCallWithFallback(node.right);\n }\n function isThisCapturingImplicitSuperCallWithFallback(node) {\n return isThisCapturingAssignment(node) && isImplicitSuperCallWithFallback(node.right);\n }\n function isTransformedSuperCallLike(node) {\n return isTransformedSuperCall(node) || isTransformedSuperCallWithFallback(node) || isThisCapturingTransformedSuperCallWithFallback(node) || isImplicitSuperCall(node) || isImplicitSuperCallWithFallback(node) || isThisCapturingImplicitSuperCallWithFallback(node);\n }\n function simplifyConstructorInlineSuperInThisCaptureVariable(body) {\n for (let i = 0; i < body.statements.length - 1; i++) {\n const statement = body.statements[i];\n if (!isThisCapturingVariableStatement(statement)) {\n continue;\n }\n const varDecl = statement.declarationList.declarations[0];\n if (varDecl.initializer.kind !== 110 /* ThisKeyword */) {\n continue;\n }\n const thisCaptureStatementIndex = i;\n let superCallIndex = i + 1;\n while (superCallIndex < body.statements.length) {\n const statement2 = body.statements[superCallIndex];\n if (isExpressionStatement(statement2)) {\n if (isTransformedSuperCallLike(skipOuterExpressions(statement2.expression))) {\n break;\n }\n }\n if (isUninitializedVariableStatement(statement2)) {\n superCallIndex++;\n continue;\n }\n return body;\n }\n const following = body.statements[superCallIndex];\n let expression = following.expression;\n if (isThisCapturingAssignment(expression)) {\n expression = expression.right;\n }\n const newVarDecl = factory2.updateVariableDeclaration(\n varDecl,\n varDecl.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n expression\n );\n const newDeclList = factory2.updateVariableDeclarationList(statement.declarationList, [newVarDecl]);\n const newVarStatement = factory2.createVariableStatement(statement.modifiers, newDeclList);\n setOriginalNode(newVarStatement, following);\n setTextRange(newVarStatement, following);\n const newStatements = factory2.createNodeArray([\n ...body.statements.slice(0, thisCaptureStatementIndex),\n // copy statements preceding to `var _this`\n ...body.statements.slice(thisCaptureStatementIndex + 1, superCallIndex),\n // copy intervening temp variables\n newVarStatement,\n ...body.statements.slice(superCallIndex + 1)\n // copy statements following `super.call(this, ...)`\n ]);\n setTextRange(newStatements, body.statements);\n return factory2.updateBlock(body, newStatements);\n }\n return body;\n }\n function simplifyConstructorInlineSuperReturn(body, original) {\n for (const statement of original.statements) {\n if (statement.transformFlags & 134217728 /* ContainsLexicalSuper */ && !getSuperCallFromStatement(statement)) {\n return body;\n }\n }\n const canElideThisCapturingVariable = !(original.transformFlags & 16384 /* ContainsLexicalThis */) && !(hierarchyFacts & 65536 /* LexicalThis */) && !(hierarchyFacts & 131072 /* CapturedLexicalThis */);\n for (let i = body.statements.length - 1; i > 0; i--) {\n const statement = body.statements[i];\n if (isReturnStatement(statement) && statement.expression && isCapturedThis(statement.expression)) {\n const preceding = body.statements[i - 1];\n let expression;\n if (isExpressionStatement(preceding) && isThisCapturingTransformedSuperCallWithFallback(skipOuterExpressions(preceding.expression))) {\n expression = preceding.expression;\n } else if (canElideThisCapturingVariable && isThisCapturingVariableStatement(preceding)) {\n const varDecl = preceding.declarationList.declarations[0];\n if (isTransformedSuperCallLike(skipOuterExpressions(varDecl.initializer))) {\n expression = factory2.createAssignment(\n createCapturedThis(),\n varDecl.initializer\n );\n }\n }\n if (!expression) {\n break;\n }\n const newReturnStatement = factory2.createReturnStatement(expression);\n setOriginalNode(newReturnStatement, preceding);\n setTextRange(newReturnStatement, preceding);\n const newStatements = factory2.createNodeArray([\n ...body.statements.slice(0, i - 1),\n // copy all statements preceding `_super.call(this, ...)`\n newReturnStatement,\n ...body.statements.slice(i + 1)\n // copy all statements following `return _this;`\n ]);\n setTextRange(newStatements, body.statements);\n return factory2.updateBlock(body, newStatements);\n }\n }\n return body;\n }\n function elideUnusedThisCaptureWorker(node) {\n if (isThisCapturingVariableStatement(node)) {\n const varDecl = node.declarationList.declarations[0];\n if (varDecl.initializer.kind === 110 /* ThisKeyword */) {\n return void 0;\n }\n } else if (isThisCapturingAssignment(node)) {\n return factory2.createPartiallyEmittedExpression(node.right, node);\n }\n switch (node.kind) {\n // stop at function boundaries\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 177 /* Constructor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return node;\n // only step into computed property names for class and object literal elements\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n case 173 /* PropertyDeclaration */: {\n const named = node;\n if (isComputedPropertyName(named.name)) {\n return factory2.replacePropertyName(named, visitEachChild(\n named.name,\n elideUnusedThisCaptureWorker,\n /*context*/\n void 0\n ));\n }\n return node;\n }\n }\n return visitEachChild(\n node,\n elideUnusedThisCaptureWorker,\n /*context*/\n void 0\n );\n }\n function simplifyConstructorElideUnusedThisCapture(body, original) {\n if (original.transformFlags & 16384 /* ContainsLexicalThis */ || hierarchyFacts & 65536 /* LexicalThis */ || hierarchyFacts & 131072 /* CapturedLexicalThis */) {\n return body;\n }\n for (const statement of original.statements) {\n if (statement.transformFlags & 134217728 /* ContainsLexicalSuper */ && !getSuperCallFromStatement(statement)) {\n return body;\n }\n }\n return factory2.updateBlock(body, visitNodes2(body.statements, elideUnusedThisCaptureWorker, isStatement));\n }\n function injectSuperPresenceCheckWorker(node) {\n if (isTransformedSuperCall(node) && node.arguments.length === 2 && isIdentifier(node.arguments[1]) && idText(node.arguments[1]) === \"arguments\") {\n return factory2.createLogicalAnd(\n factory2.createStrictInequality(\n createSyntheticSuper(),\n factory2.createNull()\n ),\n node\n );\n }\n switch (node.kind) {\n // stop at function boundaries\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 177 /* Constructor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return node;\n // only step into computed property names for class and object literal elements\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n case 173 /* PropertyDeclaration */: {\n const named = node;\n if (isComputedPropertyName(named.name)) {\n return factory2.replacePropertyName(named, visitEachChild(\n named.name,\n injectSuperPresenceCheckWorker,\n /*context*/\n void 0\n ));\n }\n return node;\n }\n }\n return visitEachChild(\n node,\n injectSuperPresenceCheckWorker,\n /*context*/\n void 0\n );\n }\n function complicateConstructorInjectSuperPresenceCheck(body) {\n return factory2.updateBlock(body, visitNodes2(body.statements, injectSuperPresenceCheckWorker, isStatement));\n }\n function simplifyConstructor(body, original, hasSynthesizedSuper) {\n const inputBody = body;\n body = simplifyConstructorInlineSuperInThisCaptureVariable(body);\n body = simplifyConstructorInlineSuperReturn(body, original);\n if (body !== inputBody) {\n body = simplifyConstructorElideUnusedThisCapture(body, original);\n }\n if (hasSynthesizedSuper) {\n body = complicateConstructorInjectSuperPresenceCheck(body);\n }\n return body;\n }\n function isSufficientlyCoveredByReturnStatements(statement) {\n if (statement.kind === 254 /* ReturnStatement */) {\n return true;\n } else if (statement.kind === 246 /* IfStatement */) {\n const ifStatement = statement;\n if (ifStatement.elseStatement) {\n return isSufficientlyCoveredByReturnStatements(ifStatement.thenStatement) && isSufficientlyCoveredByReturnStatements(ifStatement.elseStatement);\n }\n } else if (statement.kind === 242 /* Block */) {\n const lastStatement = lastOrUndefined(statement.statements);\n if (lastStatement && isSufficientlyCoveredByReturnStatements(lastStatement)) {\n return true;\n }\n }\n return false;\n }\n function createActualThis() {\n return setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */);\n }\n function createDefaultSuperCallOrThis() {\n return factory2.createLogicalOr(\n factory2.createLogicalAnd(\n factory2.createStrictInequality(\n createSyntheticSuper(),\n factory2.createNull()\n ),\n factory2.createFunctionApplyCall(\n createSyntheticSuper(),\n createActualThis(),\n factory2.createIdentifier(\"arguments\")\n )\n ),\n createActualThis()\n );\n }\n function visitParameter(node) {\n if (node.dotDotDotToken) {\n return void 0;\n } else if (isBindingPattern(node.name)) {\n return setOriginalNode(\n setTextRange(\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory2.getGeneratedNameForNode(node),\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ),\n /*location*/\n node\n ),\n /*original*/\n node\n );\n } else if (node.initializer) {\n return setOriginalNode(\n setTextRange(\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n node.name,\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ),\n /*location*/\n node\n ),\n /*original*/\n node\n );\n } else {\n return node;\n }\n }\n function hasDefaultValueOrBindingPattern(node) {\n return node.initializer !== void 0 || isBindingPattern(node.name);\n }\n function addDefaultValueAssignmentsIfNeeded2(statements, node) {\n if (!some(node.parameters, hasDefaultValueOrBindingPattern)) {\n return false;\n }\n let added = false;\n for (const parameter of node.parameters) {\n const { name, initializer, dotDotDotToken } = parameter;\n if (dotDotDotToken) {\n continue;\n }\n if (isBindingPattern(name)) {\n added = insertDefaultValueAssignmentForBindingPattern(statements, parameter, name, initializer) || added;\n } else if (initializer) {\n insertDefaultValueAssignmentForInitializer(statements, parameter, name, initializer);\n added = true;\n }\n }\n return added;\n }\n function insertDefaultValueAssignmentForBindingPattern(statements, parameter, name, initializer) {\n if (name.elements.length > 0) {\n insertStatementAfterCustomPrologue(\n statements,\n setEmitFlags(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n flattenDestructuringBinding(\n parameter,\n visitor,\n context,\n 0 /* All */,\n factory2.getGeneratedNameForNode(parameter)\n )\n )\n ),\n 2097152 /* CustomPrologue */\n )\n );\n return true;\n } else if (initializer) {\n insertStatementAfterCustomPrologue(\n statements,\n setEmitFlags(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.getGeneratedNameForNode(parameter),\n Debug.checkDefined(visitNode(initializer, visitor, isExpression))\n )\n ),\n 2097152 /* CustomPrologue */\n )\n );\n return true;\n }\n return false;\n }\n function insertDefaultValueAssignmentForInitializer(statements, parameter, name, initializer) {\n initializer = Debug.checkDefined(visitNode(initializer, visitor, isExpression));\n const statement = factory2.createIfStatement(\n factory2.createTypeCheck(factory2.cloneNode(name), \"undefined\"),\n setEmitFlags(\n setTextRange(\n factory2.createBlock([\n factory2.createExpressionStatement(\n setEmitFlags(\n setTextRange(\n factory2.createAssignment(\n // TODO(rbuckton): Does this need to be parented?\n setEmitFlags(setParent(setTextRange(factory2.cloneNode(name), name), name.parent), 96 /* NoSourceMap */),\n setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)\n ),\n parameter\n ),\n 3072 /* NoComments */\n )\n )\n ]),\n parameter\n ),\n 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */\n )\n );\n startOnNewLine(statement);\n setTextRange(statement, parameter);\n setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */);\n insertStatementAfterCustomPrologue(statements, statement);\n }\n function shouldAddRestParameter(node, inConstructorWithSynthesizedSuper) {\n return !!(node && node.dotDotDotToken && !inConstructorWithSynthesizedSuper);\n }\n function addRestParameterIfNeeded(statements, node, inConstructorWithSynthesizedSuper) {\n const prologueStatements = [];\n const parameter = lastOrUndefined(node.parameters);\n if (!shouldAddRestParameter(parameter, inConstructorWithSynthesizedSuper)) {\n return false;\n }\n const declarationName = parameter.name.kind === 80 /* Identifier */ ? setParent(setTextRange(factory2.cloneNode(parameter.name), parameter.name), parameter.name.parent) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n setEmitFlags(declarationName, 96 /* NoSourceMap */);\n const expressionName = parameter.name.kind === 80 /* Identifier */ ? factory2.cloneNode(parameter.name) : declarationName;\n const restIndex = node.parameters.length - 1;\n const temp = factory2.createLoopVariable();\n prologueStatements.push(\n setEmitFlags(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n declarationName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createArrayLiteralExpression([])\n )\n ])\n ),\n /*location*/\n parameter\n ),\n 2097152 /* CustomPrologue */\n )\n );\n const forStatement = factory2.createForStatement(\n setTextRange(\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n temp,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createNumericLiteral(restIndex)\n )\n ]),\n parameter\n ),\n setTextRange(\n factory2.createLessThan(\n temp,\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"arguments\"), \"length\")\n ),\n parameter\n ),\n setTextRange(factory2.createPostfixIncrement(temp), parameter),\n factory2.createBlock([\n startOnNewLine(\n setTextRange(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createElementAccessExpression(\n expressionName,\n restIndex === 0 ? temp : factory2.createSubtract(temp, factory2.createNumericLiteral(restIndex))\n ),\n factory2.createElementAccessExpression(factory2.createIdentifier(\"arguments\"), temp)\n )\n ),\n /*location*/\n parameter\n )\n )\n ])\n );\n setEmitFlags(forStatement, 2097152 /* CustomPrologue */);\n startOnNewLine(forStatement);\n prologueStatements.push(forStatement);\n if (parameter.name.kind !== 80 /* Identifier */) {\n prologueStatements.push(\n setEmitFlags(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n flattenDestructuringBinding(parameter, visitor, context, 0 /* All */, expressionName)\n )\n ),\n parameter\n ),\n 2097152 /* CustomPrologue */\n )\n );\n }\n insertStatementsAfterCustomPrologue(statements, prologueStatements);\n return true;\n }\n function insertCaptureThisForNodeIfNeeded(statements, node) {\n if (hierarchyFacts & 131072 /* CapturedLexicalThis */ && node.kind !== 220 /* ArrowFunction */) {\n insertCaptureThisForNode(statements, node, factory2.createThis());\n return true;\n }\n return false;\n }\n function insertCaptureThisForNode(statements, node, initializer) {\n enableSubstitutionsForCapturedThis();\n const captureThisStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n createCapturedThis(),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n )\n ])\n );\n setEmitFlags(captureThisStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */);\n setSourceMapRange(captureThisStatement, node);\n insertStatementAfterCustomPrologue(statements, captureThisStatement);\n }\n function insertCaptureNewTargetIfNeeded(statements, node) {\n if (hierarchyFacts & 32768 /* NewTarget */) {\n let newTarget;\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n return statements;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n newTarget = factory2.createVoidZero();\n break;\n case 177 /* Constructor */:\n newTarget = factory2.createPropertyAccessExpression(\n setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n \"constructor\"\n );\n break;\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n newTarget = factory2.createConditionalExpression(\n factory2.createLogicalAnd(\n setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n factory2.createBinaryExpression(\n setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n 104 /* InstanceOfKeyword */,\n factory2.getLocalName(node)\n )\n ),\n /*questionToken*/\n void 0,\n factory2.createPropertyAccessExpression(\n setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n \"constructor\"\n ),\n /*colonToken*/\n void 0,\n factory2.createVoidZero()\n );\n break;\n default:\n return Debug.failBadSyntaxKind(node);\n }\n const captureNewTargetStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n factory2.createUniqueName(\"_newTarget\", 16 /* Optimistic */ | 32 /* FileLevel */),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n newTarget\n )\n ])\n );\n setEmitFlags(captureNewTargetStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */);\n insertStatementAfterCustomPrologue(statements, captureNewTargetStatement);\n }\n return statements;\n }\n function addClassMembers(statements, node) {\n for (const member of node.members) {\n switch (member.kind) {\n case 241 /* SemicolonClassElement */:\n statements.push(transformSemicolonClassElementToStatement(member));\n break;\n case 175 /* MethodDeclaration */:\n statements.push(transformClassMethodDeclarationToStatement(getClassMemberPrefix(node, member), member, node));\n break;\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n const accessors = getAllAccessorDeclarations(node.members, member);\n if (member === accessors.firstAccessor) {\n statements.push(transformAccessorsToStatement(getClassMemberPrefix(node, member), accessors, node));\n }\n break;\n case 177 /* Constructor */:\n case 176 /* ClassStaticBlockDeclaration */:\n break;\n default:\n Debug.failBadSyntaxKind(member, currentSourceFile && currentSourceFile.fileName);\n break;\n }\n }\n }\n function transformSemicolonClassElementToStatement(member) {\n return setTextRange(factory2.createEmptyStatement(), member);\n }\n function transformClassMethodDeclarationToStatement(receiver, member, container) {\n const commentRange = getCommentRange(member);\n const sourceMapRange = getSourceMapRange(member);\n const memberFunction = transformFunctionLikeToExpression(\n member,\n /*location*/\n member,\n /*name*/\n void 0,\n container\n );\n const propertyName = visitNode(member.name, visitor, isPropertyName);\n Debug.assert(propertyName);\n let e;\n if (!isPrivateIdentifier(propertyName) && getUseDefineForClassFields(context.getCompilerOptions())) {\n const name = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName;\n e = factory2.createObjectDefinePropertyCall(receiver, name, factory2.createPropertyDescriptor({ value: memberFunction, enumerable: false, writable: true, configurable: true }));\n } else {\n const memberName = createMemberAccessForPropertyName(\n factory2,\n receiver,\n propertyName,\n /*location*/\n member.name\n );\n e = factory2.createAssignment(memberName, memberFunction);\n }\n setEmitFlags(memberFunction, 3072 /* NoComments */);\n setSourceMapRange(memberFunction, sourceMapRange);\n const statement = setTextRange(\n factory2.createExpressionStatement(e),\n /*location*/\n member\n );\n setOriginalNode(statement, member);\n setCommentRange(statement, commentRange);\n setEmitFlags(statement, 96 /* NoSourceMap */);\n return statement;\n }\n function transformAccessorsToStatement(receiver, accessors, container) {\n const statement = factory2.createExpressionStatement(transformAccessorsToExpression(\n receiver,\n accessors,\n container,\n /*startsOnNewLine*/\n false\n ));\n setEmitFlags(statement, 3072 /* NoComments */);\n setSourceMapRange(statement, getSourceMapRange(accessors.firstAccessor));\n return statement;\n }\n function transformAccessorsToExpression(receiver, { firstAccessor, getAccessor, setAccessor }, container, startsOnNewLine) {\n const target = setParent(setTextRange(factory2.cloneNode(receiver), receiver), receiver.parent);\n setEmitFlags(target, 3072 /* NoComments */ | 64 /* NoTrailingSourceMap */);\n setSourceMapRange(target, firstAccessor.name);\n const visitedAccessorName = visitNode(firstAccessor.name, visitor, isPropertyName);\n Debug.assert(visitedAccessorName);\n if (isPrivateIdentifier(visitedAccessorName)) {\n return Debug.failBadSyntaxKind(visitedAccessorName, \"Encountered unhandled private identifier while transforming ES2015.\");\n }\n const propertyName = createExpressionForPropertyName(factory2, visitedAccessorName);\n setEmitFlags(propertyName, 3072 /* NoComments */ | 32 /* NoLeadingSourceMap */);\n setSourceMapRange(propertyName, firstAccessor.name);\n const properties = [];\n if (getAccessor) {\n const getterFunction = transformFunctionLikeToExpression(\n getAccessor,\n /*location*/\n void 0,\n /*name*/\n void 0,\n container\n );\n setSourceMapRange(getterFunction, getSourceMapRange(getAccessor));\n setEmitFlags(getterFunction, 1024 /* NoLeadingComments */);\n const getter = factory2.createPropertyAssignment(\"get\", getterFunction);\n setCommentRange(getter, getCommentRange(getAccessor));\n properties.push(getter);\n }\n if (setAccessor) {\n const setterFunction = transformFunctionLikeToExpression(\n setAccessor,\n /*location*/\n void 0,\n /*name*/\n void 0,\n container\n );\n setSourceMapRange(setterFunction, getSourceMapRange(setAccessor));\n setEmitFlags(setterFunction, 1024 /* NoLeadingComments */);\n const setter = factory2.createPropertyAssignment(\"set\", setterFunction);\n setCommentRange(setter, getCommentRange(setAccessor));\n properties.push(setter);\n }\n properties.push(\n factory2.createPropertyAssignment(\"enumerable\", getAccessor || setAccessor ? factory2.createFalse() : factory2.createTrue()),\n factory2.createPropertyAssignment(\"configurable\", factory2.createTrue())\n );\n const call = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"defineProperty\"),\n /*typeArguments*/\n void 0,\n [\n target,\n propertyName,\n factory2.createObjectLiteralExpression(\n properties,\n /*multiLine*/\n true\n )\n ]\n );\n if (startsOnNewLine) {\n startOnNewLine(call);\n }\n return call;\n }\n function visitArrowFunction(node) {\n if (node.transformFlags & 16384 /* ContainsLexicalThis */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) {\n hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n }\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const ancestorFacts = enterSubtree(15232 /* ArrowFunctionExcludes */, 66 /* ArrowFunctionIncludes */);\n const func = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n transformFunctionBody2(node)\n );\n setTextRange(func, node);\n setOriginalNode(func, node);\n setEmitFlags(func, 16 /* CapturesThis */);\n exitSubtree(ancestorFacts, 0 /* ArrowFunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n return func;\n }\n function visitFunctionExpression(node) {\n const ancestorFacts = getEmitFlags(node) & 524288 /* AsyncFunctionBody */ ? enterSubtree(32662 /* AsyncFunctionBodyExcludes */, 69 /* AsyncFunctionBodyIncludes */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const parameters = visitParameterList(node.parameters, visitor, context);\n const body = transformFunctionBody2(node);\n const name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name;\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n return factory2.updateFunctionExpression(\n node,\n /*modifiers*/\n void 0,\n node.asteriskToken,\n name,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n );\n }\n function visitFunctionDeclaration(node) {\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n const parameters = visitParameterList(node.parameters, visitor, context);\n const body = transformFunctionBody2(node);\n const name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name;\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n return factory2.updateFunctionDeclaration(\n node,\n visitNodes2(node.modifiers, visitor, isModifier),\n node.asteriskToken,\n name,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n );\n }\n function transformFunctionLikeToExpression(node, location, name, container) {\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const ancestorFacts = container && isClassLike(container) && !isStatic(node) ? enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */ | 8 /* NonStaticClassElement */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n const parameters = visitParameterList(node.parameters, visitor, context);\n const body = transformFunctionBody2(node);\n if (hierarchyFacts & 32768 /* NewTarget */ && !name && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */)) {\n name = factory2.getGeneratedNameForNode(node);\n }\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n return setOriginalNode(\n setTextRange(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n node.asteriskToken,\n name,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n ),\n location\n ),\n /*original*/\n node\n );\n }\n function transformFunctionBody2(node) {\n let multiLine = false;\n let singleLine = false;\n let statementsLocation;\n let closeBraceLocation;\n const prologue = [];\n const statements = [];\n const body = node.body;\n let statementOffset;\n resumeLexicalEnvironment();\n if (isBlock(body)) {\n statementOffset = factory2.copyStandardPrologue(\n body.statements,\n prologue,\n 0,\n /*ensureUseStrict*/\n false\n );\n statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedFunction);\n statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedVariableStatement);\n }\n multiLine = addDefaultValueAssignmentsIfNeeded2(statements, node) || multiLine;\n multiLine = addRestParameterIfNeeded(\n statements,\n node,\n /*inConstructorWithSynthesizedSuper*/\n false\n ) || multiLine;\n if (isBlock(body)) {\n statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor);\n statementsLocation = body.statements;\n addRange(statements, visitNodes2(body.statements, visitor, isStatement, statementOffset));\n if (!multiLine && body.multiLine) {\n multiLine = true;\n }\n } else {\n Debug.assert(node.kind === 220 /* ArrowFunction */);\n statementsLocation = moveRangeEnd(body, -1);\n const equalsGreaterThanToken = node.equalsGreaterThanToken;\n if (!nodeIsSynthesized(equalsGreaterThanToken) && !nodeIsSynthesized(body)) {\n if (rangeEndIsOnSameLineAsRangeStart(equalsGreaterThanToken, body, currentSourceFile)) {\n singleLine = true;\n } else {\n multiLine = true;\n }\n }\n const expression = visitNode(body, visitor, isExpression);\n const returnStatement = factory2.createReturnStatement(expression);\n setTextRange(returnStatement, body);\n moveSyntheticComments(returnStatement, body);\n setEmitFlags(returnStatement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2048 /* NoTrailingComments */);\n statements.push(returnStatement);\n closeBraceLocation = body;\n }\n factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n insertCaptureNewTargetIfNeeded(prologue, node);\n insertCaptureThisForNodeIfNeeded(prologue, node);\n if (some(prologue)) {\n multiLine = true;\n }\n statements.unshift(...prologue);\n if (isBlock(body) && arrayIsEqualTo(statements, body.statements)) {\n return body;\n }\n const block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), statementsLocation), multiLine);\n setTextRange(block, node.body);\n if (!multiLine && singleLine) {\n setEmitFlags(block, 1 /* SingleLine */);\n }\n if (closeBraceLocation) {\n setTokenSourceMapRange(block, 20 /* CloseBraceToken */, closeBraceLocation);\n }\n setOriginalNode(block, node.body);\n return block;\n }\n function visitBlock(node, isFunctionBody2) {\n if (isFunctionBody2) {\n return visitEachChild(node, visitor, context);\n }\n const ancestorFacts = hierarchyFacts & 256 /* IterationStatement */ ? enterSubtree(7104 /* IterationStatementBlockExcludes */, 512 /* IterationStatementBlockIncludes */) : enterSubtree(6976 /* BlockExcludes */, 128 /* BlockIncludes */);\n const updated = visitEachChild(node, visitor, context);\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function visitExpressionStatement(node) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n function visitParenthesizedExpression(node, expressionResultIsUnused2) {\n return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context);\n }\n function visitBinaryExpression(node, expressionResultIsUnused2) {\n if (isDestructuringAssignment(node)) {\n return flattenDestructuringAssignment(\n node,\n visitor,\n context,\n 0 /* All */,\n !expressionResultIsUnused2\n );\n }\n if (node.operatorToken.kind === 28 /* CommaToken */) {\n return factory2.updateBinaryExpression(\n node,\n Debug.checkDefined(visitNode(node.left, visitorWithUnusedExpressionResult, isExpression)),\n node.operatorToken,\n Debug.checkDefined(visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression))\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCommaListExpression(node, expressionResultIsUnused2) {\n if (expressionResultIsUnused2) {\n return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n }\n let result;\n for (let i = 0; i < node.elements.length; i++) {\n const element = node.elements[i];\n const visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression);\n if (result || visited !== element) {\n result || (result = node.elements.slice(0, i));\n Debug.assert(visited);\n result.push(visited);\n }\n }\n const elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements;\n return factory2.updateCommaListExpression(node, elements);\n }\n function isVariableStatementOfTypeScriptClassWrapper(node) {\n return node.declarationList.declarations.length === 1 && !!node.declarationList.declarations[0].initializer && !!(getInternalEmitFlags(node.declarationList.declarations[0].initializer) & 1 /* TypeScriptClassWrapper */);\n }\n function visitVariableStatement(node) {\n const ancestorFacts = enterSubtree(0 /* None */, hasSyntacticModifier(node, 32 /* Export */) ? 32 /* ExportedVariableStatement */ : 0 /* None */);\n let updated;\n if (convertedLoopState && (node.declarationList.flags & 7 /* BlockScoped */) === 0 && !isVariableStatementOfTypeScriptClassWrapper(node)) {\n let assignments;\n for (const decl of node.declarationList.declarations) {\n hoistVariableDeclarationDeclaredInConvertedLoop(convertedLoopState, decl);\n if (decl.initializer) {\n let assignment;\n if (isBindingPattern(decl.name)) {\n assignment = flattenDestructuringAssignment(\n decl,\n visitor,\n context,\n 0 /* All */\n );\n } else {\n assignment = factory2.createBinaryExpression(decl.name, 64 /* EqualsToken */, Debug.checkDefined(visitNode(decl.initializer, visitor, isExpression)));\n setTextRange(assignment, decl);\n }\n assignments = append(assignments, assignment);\n }\n }\n if (assignments) {\n updated = setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(assignments)), node);\n } else {\n updated = void 0;\n }\n } else {\n updated = visitEachChild(node, visitor, context);\n }\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function visitVariableDeclarationList(node) {\n if (node.flags & 7 /* BlockScoped */ || node.transformFlags & 524288 /* ContainsBindingPattern */) {\n if (node.flags & 7 /* BlockScoped */) {\n enableSubstitutionsForBlockScopedBindings();\n }\n const declarations = visitNodes2(\n node.declarations,\n node.flags & 1 /* Let */ ? visitVariableDeclarationInLetDeclarationList : visitVariableDeclaration,\n isVariableDeclaration\n );\n const declarationList = factory2.createVariableDeclarationList(declarations);\n setOriginalNode(declarationList, node);\n setTextRange(declarationList, node);\n setCommentRange(declarationList, node);\n if (node.transformFlags & 524288 /* ContainsBindingPattern */ && (isBindingPattern(node.declarations[0].name) || isBindingPattern(last(node.declarations).name))) {\n setSourceMapRange(declarationList, getRangeUnion(declarations));\n }\n return declarationList;\n }\n return visitEachChild(node, visitor, context);\n }\n function getRangeUnion(declarations) {\n let pos = -1, end = -1;\n for (const node of declarations) {\n pos = pos === -1 ? node.pos : node.pos === -1 ? pos : Math.min(pos, node.pos);\n end = Math.max(end, node.end);\n }\n return createRange(pos, end);\n }\n function shouldEmitExplicitInitializerForLetDeclaration(node) {\n const isCapturedInFunction = resolver.hasNodeCheckFlag(node, 16384 /* CapturedBlockScopedBinding */);\n const isDeclaredInLoop = resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */);\n const emittedAsTopLevel = (hierarchyFacts & 64 /* TopLevel */) !== 0 || isCapturedInFunction && isDeclaredInLoop && (hierarchyFacts & 512 /* IterationStatementBlock */) !== 0;\n const emitExplicitInitializer = !emittedAsTopLevel && (hierarchyFacts & 4096 /* ForInOrForOfStatement */) === 0 && (!resolver.isDeclarationWithCollidingName(node) || isDeclaredInLoop && !isCapturedInFunction && (hierarchyFacts & (2048 /* ForStatement */ | 4096 /* ForInOrForOfStatement */)) === 0);\n return emitExplicitInitializer;\n }\n function visitVariableDeclarationInLetDeclarationList(node) {\n const name = node.name;\n if (isBindingPattern(name)) {\n return visitVariableDeclaration(node);\n }\n if (!node.initializer && shouldEmitExplicitInitializerForLetDeclaration(node)) {\n return factory2.updateVariableDeclaration(\n node,\n node.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createVoidZero()\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitVariableDeclaration(node) {\n const ancestorFacts = enterSubtree(32 /* ExportedVariableStatement */, 0 /* None */);\n let updated;\n if (isBindingPattern(node.name)) {\n updated = flattenDestructuringBinding(\n node,\n visitor,\n context,\n 0 /* All */,\n /*rval*/\n void 0,\n (ancestorFacts & 32 /* ExportedVariableStatement */) !== 0\n );\n } else {\n updated = visitEachChild(node, visitor, context);\n }\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function recordLabel(node) {\n convertedLoopState.labels.set(idText(node.label), true);\n }\n function resetLabel(node) {\n convertedLoopState.labels.set(idText(node.label), false);\n }\n function visitLabeledStatement(node) {\n if (convertedLoopState && !convertedLoopState.labels) {\n convertedLoopState.labels = /* @__PURE__ */ new Map();\n }\n const statement = unwrapInnermostStatementOfLabel(node, convertedLoopState && recordLabel);\n return isIterationStatement(\n statement,\n /*lookInLabeledStatements*/\n false\n ) ? visitIterationStatement(\n statement,\n /*outermostLabeledStatement*/\n node\n ) : factory2.restoreEnclosingLabel(visitNode(statement, visitor, isStatement, factory2.liftToBlock) ?? setTextRange(factory2.createEmptyStatement(), statement), node, convertedLoopState && resetLabel);\n }\n function visitIterationStatement(node, outermostLabeledStatement) {\n switch (node.kind) {\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n return visitDoOrWhileStatement(node, outermostLabeledStatement);\n case 249 /* ForStatement */:\n return visitForStatement(node, outermostLabeledStatement);\n case 250 /* ForInStatement */:\n return visitForInStatement(node, outermostLabeledStatement);\n case 251 /* ForOfStatement */:\n return visitForOfStatement(node, outermostLabeledStatement);\n }\n }\n function visitIterationStatementWithFacts(excludeFacts, includeFacts, node, outermostLabeledStatement, convert) {\n const ancestorFacts = enterSubtree(excludeFacts, includeFacts);\n const updated = convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert);\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function visitDoOrWhileStatement(node, outermostLabeledStatement) {\n return visitIterationStatementWithFacts(\n 0 /* DoOrWhileStatementExcludes */,\n 1280 /* DoOrWhileStatementIncludes */,\n node,\n outermostLabeledStatement\n );\n }\n function visitForStatement(node, outermostLabeledStatement) {\n return visitIterationStatementWithFacts(\n 5056 /* ForStatementExcludes */,\n 3328 /* ForStatementIncludes */,\n node,\n outermostLabeledStatement\n );\n }\n function visitEachChildOfForStatement2(node) {\n return factory2.updateForStatement(\n node,\n visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock))\n );\n }\n function visitForInStatement(node, outermostLabeledStatement) {\n return visitIterationStatementWithFacts(\n 3008 /* ForInOrForOfStatementExcludes */,\n 5376 /* ForInOrForOfStatementIncludes */,\n node,\n outermostLabeledStatement\n );\n }\n function visitForOfStatement(node, outermostLabeledStatement) {\n return visitIterationStatementWithFacts(\n 3008 /* ForInOrForOfStatementExcludes */,\n 5376 /* ForInOrForOfStatementIncludes */,\n node,\n outermostLabeledStatement,\n compilerOptions.downlevelIteration ? convertForOfStatementForIterable : convertForOfStatementForArray\n );\n }\n function convertForOfStatementHead(node, boundValue, convertedLoopBodyStatements) {\n const statements = [];\n const initializer = node.initializer;\n if (isVariableDeclarationList(initializer)) {\n if (node.initializer.flags & 7 /* BlockScoped */) {\n enableSubstitutionsForBlockScopedBindings();\n }\n const firstOriginalDeclaration = firstOrUndefined(initializer.declarations);\n if (firstOriginalDeclaration && isBindingPattern(firstOriginalDeclaration.name)) {\n const declarations = flattenDestructuringBinding(\n firstOriginalDeclaration,\n visitor,\n context,\n 0 /* All */,\n boundValue\n );\n const declarationList = setTextRange(factory2.createVariableDeclarationList(declarations), node.initializer);\n setOriginalNode(declarationList, node.initializer);\n setSourceMapRange(declarationList, createRange(declarations[0].pos, last(declarations).end));\n statements.push(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n declarationList\n )\n );\n } else {\n statements.push(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n setOriginalNode(\n setTextRange(\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n firstOriginalDeclaration ? firstOriginalDeclaration.name : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n ),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n boundValue\n )\n ]),\n moveRangePos(initializer, -1)\n ),\n initializer\n )\n ),\n moveRangeEnd(initializer, -1)\n )\n );\n }\n } else {\n const assignment = factory2.createAssignment(initializer, boundValue);\n if (isDestructuringAssignment(assignment)) {\n statements.push(factory2.createExpressionStatement(visitBinaryExpression(\n assignment,\n /*expressionResultIsUnused*/\n true\n )));\n } else {\n setTextRangeEnd(assignment, initializer.end);\n statements.push(setTextRange(factory2.createExpressionStatement(Debug.checkDefined(visitNode(assignment, visitor, isExpression))), moveRangeEnd(initializer, -1)));\n }\n }\n if (convertedLoopBodyStatements) {\n return createSyntheticBlockForConvertedStatements(addRange(statements, convertedLoopBodyStatements));\n } else {\n const statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock);\n Debug.assert(statement);\n if (isBlock(statement)) {\n return factory2.updateBlock(statement, setTextRange(factory2.createNodeArray(concatenate(statements, statement.statements)), statement.statements));\n } else {\n statements.push(statement);\n return createSyntheticBlockForConvertedStatements(statements);\n }\n }\n }\n function createSyntheticBlockForConvertedStatements(statements) {\n return setEmitFlags(\n factory2.createBlock(\n factory2.createNodeArray(statements),\n /*multiLine*/\n true\n ),\n 96 /* NoSourceMap */ | 768 /* NoTokenSourceMaps */\n );\n }\n function convertForOfStatementForArray(node, outermostLabeledStatement, convertedLoopBodyStatements) {\n const expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n const counter = factory2.createLoopVariable();\n const rhsReference = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n setEmitFlags(expression, 96 /* NoSourceMap */ | getEmitFlags(expression));\n const forStatement = setTextRange(\n factory2.createForStatement(\n /*initializer*/\n setEmitFlags(\n setTextRange(\n factory2.createVariableDeclarationList([\n setTextRange(factory2.createVariableDeclaration(\n counter,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createNumericLiteral(0)\n ), moveRangePos(node.expression, -1)),\n setTextRange(factory2.createVariableDeclaration(\n rhsReference,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n expression\n ), node.expression)\n ]),\n node.expression\n ),\n 4194304 /* NoHoisting */\n ),\n /*condition*/\n setTextRange(\n factory2.createLessThan(\n counter,\n factory2.createPropertyAccessExpression(rhsReference, \"length\")\n ),\n node.expression\n ),\n /*incrementor*/\n setTextRange(factory2.createPostfixIncrement(counter), node.expression),\n /*statement*/\n convertForOfStatementHead(\n node,\n factory2.createElementAccessExpression(rhsReference, counter),\n convertedLoopBodyStatements\n )\n ),\n /*location*/\n node\n );\n setEmitFlags(forStatement, 512 /* NoTokenTrailingSourceMaps */);\n setTextRange(forStatement, node);\n return factory2.restoreEnclosingLabel(forStatement, outermostLabeledStatement, convertedLoopState && resetLabel);\n }\n function convertForOfStatementForIterable(node, outermostLabeledStatement, convertedLoopBodyStatements, ancestorFacts) {\n const expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n const iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const errorRecord = factory2.createUniqueName(\"e\");\n const catchVariable = factory2.getGeneratedNameForNode(errorRecord);\n const returnMethod = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const values = setTextRange(emitHelpers().createValuesHelper(expression), node.expression);\n const next = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(iterator, \"next\"),\n /*typeArguments*/\n void 0,\n []\n );\n hoistVariableDeclaration(errorRecord);\n hoistVariableDeclaration(returnMethod);\n const initializer = ancestorFacts & 1024 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), values]) : values;\n const forStatement = setEmitFlags(\n setTextRange(\n factory2.createForStatement(\n /*initializer*/\n setEmitFlags(\n setTextRange(\n factory2.createVariableDeclarationList([\n setTextRange(factory2.createVariableDeclaration(\n iterator,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n ), node.expression),\n factory2.createVariableDeclaration(\n result,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n next\n )\n ]),\n node.expression\n ),\n 4194304 /* NoHoisting */\n ),\n /*condition*/\n factory2.createLogicalNot(factory2.createPropertyAccessExpression(result, \"done\")),\n /*incrementor*/\n factory2.createAssignment(result, next),\n /*statement*/\n convertForOfStatementHead(\n node,\n factory2.createPropertyAccessExpression(result, \"value\"),\n convertedLoopBodyStatements\n )\n ),\n /*location*/\n node\n ),\n 512 /* NoTokenTrailingSourceMaps */\n );\n return factory2.createTryStatement(\n factory2.createBlock([\n factory2.restoreEnclosingLabel(\n forStatement,\n outermostLabeledStatement,\n convertedLoopState && resetLabel\n )\n ]),\n factory2.createCatchClause(\n factory2.createVariableDeclaration(catchVariable),\n setEmitFlags(\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createAssignment(\n errorRecord,\n factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"error\", catchVariable)\n ])\n )\n )\n ]),\n 1 /* SingleLine */\n )\n ),\n factory2.createBlock([\n factory2.createTryStatement(\n /*tryBlock*/\n factory2.createBlock([\n setEmitFlags(\n factory2.createIfStatement(\n factory2.createLogicalAnd(\n factory2.createLogicalAnd(\n result,\n factory2.createLogicalNot(\n factory2.createPropertyAccessExpression(result, \"done\")\n )\n ),\n factory2.createAssignment(\n returnMethod,\n factory2.createPropertyAccessExpression(iterator, \"return\")\n )\n ),\n factory2.createExpressionStatement(\n factory2.createFunctionCallCall(returnMethod, iterator, [])\n )\n ),\n 1 /* SingleLine */\n )\n ]),\n /*catchClause*/\n void 0,\n /*finallyBlock*/\n setEmitFlags(\n factory2.createBlock([\n setEmitFlags(\n factory2.createIfStatement(\n errorRecord,\n factory2.createThrowStatement(\n factory2.createPropertyAccessExpression(errorRecord, \"error\")\n )\n ),\n 1 /* SingleLine */\n )\n ]),\n 1 /* SingleLine */\n )\n )\n ])\n );\n }\n function visitObjectLiteralExpression(node) {\n const properties = node.properties;\n let numInitialProperties = -1, hasComputed = false;\n for (let i = 0; i < properties.length; i++) {\n const property = properties[i];\n if (property.transformFlags & 1048576 /* ContainsYield */ && hierarchyFacts & 4 /* AsyncFunctionBody */ || (hasComputed = Debug.checkDefined(property.name).kind === 168 /* ComputedPropertyName */)) {\n numInitialProperties = i;\n break;\n }\n }\n if (numInitialProperties < 0) {\n return visitEachChild(node, visitor, context);\n }\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n const expressions = [];\n const assignment = factory2.createAssignment(\n temp,\n setEmitFlags(\n factory2.createObjectLiteralExpression(\n visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties),\n node.multiLine\n ),\n hasComputed ? 131072 /* Indented */ : 0\n )\n );\n if (node.multiLine) {\n startOnNewLine(assignment);\n }\n expressions.push(assignment);\n addObjectLiteralMembers(expressions, node, temp, numInitialProperties);\n expressions.push(node.multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp);\n return factory2.inlineExpressions(expressions);\n }\n function shouldConvertPartOfIterationStatement(node) {\n return resolver.hasNodeCheckFlag(node, 8192 /* ContainsCapturedBlockScopeBinding */);\n }\n function shouldConvertInitializerOfForStatement(node) {\n return isForStatement(node) && !!node.initializer && shouldConvertPartOfIterationStatement(node.initializer);\n }\n function shouldConvertConditionOfForStatement(node) {\n return isForStatement(node) && !!node.condition && shouldConvertPartOfIterationStatement(node.condition);\n }\n function shouldConvertIncrementorOfForStatement(node) {\n return isForStatement(node) && !!node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor);\n }\n function shouldConvertIterationStatement(node) {\n return shouldConvertBodyOfIterationStatement(node) || shouldConvertInitializerOfForStatement(node);\n }\n function shouldConvertBodyOfIterationStatement(node) {\n return resolver.hasNodeCheckFlag(node, 4096 /* LoopWithCapturedBlockScopedBinding */);\n }\n function hoistVariableDeclarationDeclaredInConvertedLoop(state, node) {\n if (!state.hoistedLocalVariables) {\n state.hoistedLocalVariables = [];\n }\n visit(node.name);\n function visit(node2) {\n if (node2.kind === 80 /* Identifier */) {\n state.hoistedLocalVariables.push(node2);\n } else {\n for (const element of node2.elements) {\n if (!isOmittedExpression(element)) {\n visit(element.name);\n }\n }\n }\n }\n }\n function convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert) {\n if (!shouldConvertIterationStatement(node)) {\n let saveAllowedNonLabeledJumps;\n if (convertedLoopState) {\n saveAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps;\n convertedLoopState.allowedNonLabeledJumps = 2 /* Break */ | 4 /* Continue */;\n }\n const result = convert ? convert(\n node,\n outermostLabeledStatement,\n /*convertedLoopBodyStatements*/\n void 0,\n ancestorFacts\n ) : factory2.restoreEnclosingLabel(\n isForStatement(node) ? visitEachChildOfForStatement2(node) : visitEachChild(node, visitor, context),\n outermostLabeledStatement,\n convertedLoopState && resetLabel\n );\n if (convertedLoopState) {\n convertedLoopState.allowedNonLabeledJumps = saveAllowedNonLabeledJumps;\n }\n return result;\n }\n const currentState = createConvertedLoopState(node);\n const statements = [];\n const outerConvertedLoopState = convertedLoopState;\n convertedLoopState = currentState;\n const initializerFunction = shouldConvertInitializerOfForStatement(node) ? createFunctionForInitializerOfForStatement(node, currentState) : void 0;\n const bodyFunction = shouldConvertBodyOfIterationStatement(node) ? createFunctionForBodyOfIterationStatement(node, currentState, outerConvertedLoopState) : void 0;\n convertedLoopState = outerConvertedLoopState;\n if (initializerFunction) statements.push(initializerFunction.functionDeclaration);\n if (bodyFunction) statements.push(bodyFunction.functionDeclaration);\n addExtraDeclarationsForConvertedLoop(statements, currentState, outerConvertedLoopState);\n if (initializerFunction) {\n statements.push(generateCallToConvertedLoopInitializer(initializerFunction.functionName, initializerFunction.containsYield));\n }\n let loop;\n if (bodyFunction) {\n if (convert) {\n loop = convert(node, outermostLabeledStatement, bodyFunction.part, ancestorFacts);\n } else {\n const clone2 = convertIterationStatementCore(node, initializerFunction, factory2.createBlock(\n bodyFunction.part,\n /*multiLine*/\n true\n ));\n loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel);\n }\n } else {\n const clone2 = convertIterationStatementCore(node, initializerFunction, Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock)));\n loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel);\n }\n statements.push(loop);\n return statements;\n }\n function convertIterationStatementCore(node, initializerFunction, convertedLoopBody) {\n switch (node.kind) {\n case 249 /* ForStatement */:\n return convertForStatement(node, initializerFunction, convertedLoopBody);\n case 250 /* ForInStatement */:\n return convertForInStatement(node, convertedLoopBody);\n case 251 /* ForOfStatement */:\n return convertForOfStatement(node, convertedLoopBody);\n case 247 /* DoStatement */:\n return convertDoStatement(node, convertedLoopBody);\n case 248 /* WhileStatement */:\n return convertWhileStatement(node, convertedLoopBody);\n default:\n return Debug.failBadSyntaxKind(node, \"IterationStatement expected\");\n }\n }\n function convertForStatement(node, initializerFunction, convertedLoopBody) {\n const shouldConvertCondition = node.condition && shouldConvertPartOfIterationStatement(node.condition);\n const shouldConvertIncrementor = shouldConvertCondition || node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor);\n return factory2.updateForStatement(\n node,\n visitNode(initializerFunction ? initializerFunction.part : node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n visitNode(shouldConvertCondition ? void 0 : node.condition, visitor, isExpression),\n visitNode(shouldConvertIncrementor ? void 0 : node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n convertedLoopBody\n );\n }\n function convertForOfStatement(node, convertedLoopBody) {\n return factory2.updateForOfStatement(\n node,\n /*awaitModifier*/\n void 0,\n Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n convertedLoopBody\n );\n }\n function convertForInStatement(node, convertedLoopBody) {\n return factory2.updateForInStatement(\n node,\n Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n convertedLoopBody\n );\n }\n function convertDoStatement(node, convertedLoopBody) {\n return factory2.updateDoStatement(\n node,\n convertedLoopBody,\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression))\n );\n }\n function convertWhileStatement(node, convertedLoopBody) {\n return factory2.updateWhileStatement(\n node,\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n convertedLoopBody\n );\n }\n function createConvertedLoopState(node) {\n let loopInitializer;\n switch (node.kind) {\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n const initializer = node.initializer;\n if (initializer && initializer.kind === 262 /* VariableDeclarationList */) {\n loopInitializer = initializer;\n }\n break;\n }\n const loopParameters = [];\n const loopOutParameters = [];\n if (loopInitializer && getCombinedNodeFlags(loopInitializer) & 7 /* BlockScoped */) {\n const hasCapturedBindingsInForHead = shouldConvertInitializerOfForStatement(node) || shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node);\n for (const decl of loopInitializer.declarations) {\n processLoopVariableDeclaration(node, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead);\n }\n }\n const currentState = { loopParameters, loopOutParameters };\n if (convertedLoopState) {\n if (convertedLoopState.argumentsName) {\n currentState.argumentsName = convertedLoopState.argumentsName;\n }\n if (convertedLoopState.thisName) {\n currentState.thisName = convertedLoopState.thisName;\n }\n if (convertedLoopState.hoistedLocalVariables) {\n currentState.hoistedLocalVariables = convertedLoopState.hoistedLocalVariables;\n }\n }\n return currentState;\n }\n function addExtraDeclarationsForConvertedLoop(statements, state, outerState) {\n let extraVariableDeclarations;\n if (state.argumentsName) {\n if (outerState) {\n outerState.argumentsName = state.argumentsName;\n } else {\n (extraVariableDeclarations || (extraVariableDeclarations = [])).push(\n factory2.createVariableDeclaration(\n state.argumentsName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createIdentifier(\"arguments\")\n )\n );\n }\n }\n if (state.thisName) {\n if (outerState) {\n outerState.thisName = state.thisName;\n } else {\n (extraVariableDeclarations || (extraVariableDeclarations = [])).push(\n factory2.createVariableDeclaration(\n state.thisName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createIdentifier(\"this\")\n )\n );\n }\n }\n if (state.hoistedLocalVariables) {\n if (outerState) {\n outerState.hoistedLocalVariables = state.hoistedLocalVariables;\n } else {\n if (!extraVariableDeclarations) {\n extraVariableDeclarations = [];\n }\n for (const identifier of state.hoistedLocalVariables) {\n extraVariableDeclarations.push(factory2.createVariableDeclaration(identifier));\n }\n }\n }\n if (state.loopOutParameters.length) {\n if (!extraVariableDeclarations) {\n extraVariableDeclarations = [];\n }\n for (const outParam of state.loopOutParameters) {\n extraVariableDeclarations.push(factory2.createVariableDeclaration(outParam.outParamName));\n }\n }\n if (state.conditionVariable) {\n if (!extraVariableDeclarations) {\n extraVariableDeclarations = [];\n }\n extraVariableDeclarations.push(factory2.createVariableDeclaration(\n state.conditionVariable,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createFalse()\n ));\n }\n if (extraVariableDeclarations) {\n statements.push(factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(extraVariableDeclarations)\n ));\n }\n }\n function createOutVariable(p) {\n return factory2.createVariableDeclaration(\n p.originalName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n p.outParamName\n );\n }\n function createFunctionForInitializerOfForStatement(node, currentState) {\n const functionName = factory2.createUniqueName(\"_loop_init\");\n const containsYield = (node.initializer.transformFlags & 1048576 /* ContainsYield */) !== 0;\n let emitFlags = 0 /* None */;\n if (currentState.containsLexicalThis) emitFlags |= 16 /* CapturesThis */;\n if (containsYield && hierarchyFacts & 4 /* AsyncFunctionBody */) emitFlags |= 524288 /* AsyncFunctionBody */;\n const statements = [];\n statements.push(factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n node.initializer\n ));\n copyOutParameters(currentState.loopOutParameters, 2 /* Initializer */, 1 /* ToOutParameter */, statements);\n const functionDeclaration = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n setEmitFlags(\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n functionName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n setEmitFlags(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n void 0,\n /*type*/\n void 0,\n Debug.checkDefined(visitNode(\n factory2.createBlock(\n statements,\n /*multiLine*/\n true\n ),\n visitor,\n isBlock\n ))\n ),\n emitFlags\n )\n )\n ]),\n 4194304 /* NoHoisting */\n )\n );\n const part = factory2.createVariableDeclarationList(map(currentState.loopOutParameters, createOutVariable));\n return { functionName, containsYield, functionDeclaration, part };\n }\n function createFunctionForBodyOfIterationStatement(node, currentState, outerState) {\n const functionName = factory2.createUniqueName(\"_loop\");\n startLexicalEnvironment();\n const statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock);\n const lexicalEnvironment = endLexicalEnvironment();\n const statements = [];\n if (shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node)) {\n currentState.conditionVariable = factory2.createUniqueName(\"inc\");\n if (node.incrementor) {\n statements.push(factory2.createIfStatement(\n currentState.conditionVariable,\n factory2.createExpressionStatement(Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))),\n factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue()))\n ));\n } else {\n statements.push(factory2.createIfStatement(\n factory2.createLogicalNot(currentState.conditionVariable),\n factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue()))\n ));\n }\n if (shouldConvertConditionOfForStatement(node)) {\n statements.push(factory2.createIfStatement(\n factory2.createPrefixUnaryExpression(54 /* ExclamationToken */, Debug.checkDefined(visitNode(node.condition, visitor, isExpression))),\n Debug.checkDefined(visitNode(factory2.createBreakStatement(), visitor, isStatement))\n ));\n }\n }\n Debug.assert(statement);\n if (isBlock(statement)) {\n addRange(statements, statement.statements);\n } else {\n statements.push(statement);\n }\n copyOutParameters(currentState.loopOutParameters, 1 /* Body */, 1 /* ToOutParameter */, statements);\n insertStatementsAfterStandardPrologue(statements, lexicalEnvironment);\n const loopBody = factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n if (isBlock(statement)) setOriginalNode(loopBody, statement);\n const containsYield = (node.statement.transformFlags & 1048576 /* ContainsYield */) !== 0;\n let emitFlags = 1048576 /* ReuseTempVariableScope */;\n if (currentState.containsLexicalThis) emitFlags |= 16 /* CapturesThis */;\n if (containsYield && (hierarchyFacts & 4 /* AsyncFunctionBody */) !== 0) emitFlags |= 524288 /* AsyncFunctionBody */;\n const functionDeclaration = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n setEmitFlags(\n factory2.createVariableDeclarationList(\n [\n factory2.createVariableDeclaration(\n functionName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n setEmitFlags(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n currentState.loopParameters,\n /*type*/\n void 0,\n loopBody\n ),\n emitFlags\n )\n )\n ]\n ),\n 4194304 /* NoHoisting */\n )\n );\n const part = generateCallToConvertedLoop(functionName, currentState, outerState, containsYield);\n return { functionName, containsYield, functionDeclaration, part };\n }\n function copyOutParameter(outParam, copyDirection) {\n const source = copyDirection === 0 /* ToOriginal */ ? outParam.outParamName : outParam.originalName;\n const target = copyDirection === 0 /* ToOriginal */ ? outParam.originalName : outParam.outParamName;\n return factory2.createBinaryExpression(target, 64 /* EqualsToken */, source);\n }\n function copyOutParameters(outParams, partFlags, copyDirection, statements) {\n for (const outParam of outParams) {\n if (outParam.flags & partFlags) {\n statements.push(factory2.createExpressionStatement(copyOutParameter(outParam, copyDirection)));\n }\n }\n }\n function generateCallToConvertedLoopInitializer(initFunctionExpressionName, containsYield) {\n const call = factory2.createCallExpression(\n initFunctionExpressionName,\n /*typeArguments*/\n void 0,\n []\n );\n const callResult = containsYield ? factory2.createYieldExpression(\n factory2.createToken(42 /* AsteriskToken */),\n setEmitFlags(call, 8388608 /* Iterator */)\n ) : call;\n return factory2.createExpressionStatement(callResult);\n }\n function generateCallToConvertedLoop(loopFunctionExpressionName, state, outerState, containsYield) {\n const statements = [];\n const isSimpleLoop = !(state.nonLocalJumps & ~4 /* Continue */) && !state.labeledNonLocalBreaks && !state.labeledNonLocalContinues;\n const call = factory2.createCallExpression(\n loopFunctionExpressionName,\n /*typeArguments*/\n void 0,\n map(state.loopParameters, (p) => p.name)\n );\n const callResult = containsYield ? factory2.createYieldExpression(\n factory2.createToken(42 /* AsteriskToken */),\n setEmitFlags(call, 8388608 /* Iterator */)\n ) : call;\n if (isSimpleLoop) {\n statements.push(factory2.createExpressionStatement(callResult));\n copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements);\n } else {\n const loopResultName = factory2.createUniqueName(\"state\");\n const stateVariable = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [factory2.createVariableDeclaration(\n loopResultName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n callResult\n )]\n )\n );\n statements.push(stateVariable);\n copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements);\n if (state.nonLocalJumps & 8 /* Return */) {\n let returnStatement;\n if (outerState) {\n outerState.nonLocalJumps |= 8 /* Return */;\n returnStatement = factory2.createReturnStatement(loopResultName);\n } else {\n returnStatement = factory2.createReturnStatement(factory2.createPropertyAccessExpression(loopResultName, \"value\"));\n }\n statements.push(\n factory2.createIfStatement(\n factory2.createTypeCheck(loopResultName, \"object\"),\n returnStatement\n )\n );\n }\n if (state.nonLocalJumps & 2 /* Break */) {\n statements.push(\n factory2.createIfStatement(\n factory2.createStrictEquality(\n loopResultName,\n factory2.createStringLiteral(\"break\")\n ),\n factory2.createBreakStatement()\n )\n );\n }\n if (state.labeledNonLocalBreaks || state.labeledNonLocalContinues) {\n const caseClauses = [];\n processLabeledJumps(\n state.labeledNonLocalBreaks,\n /*isBreak*/\n true,\n loopResultName,\n outerState,\n caseClauses\n );\n processLabeledJumps(\n state.labeledNonLocalContinues,\n /*isBreak*/\n false,\n loopResultName,\n outerState,\n caseClauses\n );\n statements.push(\n factory2.createSwitchStatement(\n loopResultName,\n factory2.createCaseBlock(caseClauses)\n )\n );\n }\n }\n return statements;\n }\n function setLabeledJump(state, isBreak, labelText, labelMarker) {\n if (isBreak) {\n if (!state.labeledNonLocalBreaks) {\n state.labeledNonLocalBreaks = /* @__PURE__ */ new Map();\n }\n state.labeledNonLocalBreaks.set(labelText, labelMarker);\n } else {\n if (!state.labeledNonLocalContinues) {\n state.labeledNonLocalContinues = /* @__PURE__ */ new Map();\n }\n state.labeledNonLocalContinues.set(labelText, labelMarker);\n }\n }\n function processLabeledJumps(table, isBreak, loopResultName, outerLoop, caseClauses) {\n if (!table) {\n return;\n }\n table.forEach((labelMarker, labelText) => {\n const statements = [];\n if (!outerLoop || outerLoop.labels && outerLoop.labels.get(labelText)) {\n const label = factory2.createIdentifier(labelText);\n statements.push(isBreak ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label));\n } else {\n setLabeledJump(outerLoop, isBreak, labelText, labelMarker);\n statements.push(factory2.createReturnStatement(loopResultName));\n }\n caseClauses.push(factory2.createCaseClause(factory2.createStringLiteral(labelMarker), statements));\n });\n }\n function processLoopVariableDeclaration(container, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead) {\n const name = decl.name;\n if (isBindingPattern(name)) {\n for (const element of name.elements) {\n if (!isOmittedExpression(element)) {\n processLoopVariableDeclaration(container, element, loopParameters, loopOutParameters, hasCapturedBindingsInForHead);\n }\n }\n } else {\n loopParameters.push(factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n name\n ));\n const needsOutParam = resolver.hasNodeCheckFlag(decl, 65536 /* NeedsLoopOutParameter */);\n if (needsOutParam || hasCapturedBindingsInForHead) {\n const outParamName = factory2.createUniqueName(\"out_\" + idText(name));\n let flags = 0 /* None */;\n if (needsOutParam) {\n flags |= 1 /* Body */;\n }\n if (isForStatement(container)) {\n if (container.initializer && resolver.isBindingCapturedByNode(container.initializer, decl)) {\n flags |= 2 /* Initializer */;\n }\n if (container.condition && resolver.isBindingCapturedByNode(container.condition, decl) || container.incrementor && resolver.isBindingCapturedByNode(container.incrementor, decl)) {\n flags |= 1 /* Body */;\n }\n }\n loopOutParameters.push({ flags, originalName: name, outParamName });\n }\n }\n }\n function addObjectLiteralMembers(expressions, node, receiver, start) {\n const properties = node.properties;\n const numProperties = properties.length;\n for (let i = start; i < numProperties; i++) {\n const property = properties[i];\n switch (property.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n const accessors = getAllAccessorDeclarations(node.properties, property);\n if (property === accessors.firstAccessor) {\n expressions.push(transformAccessorsToExpression(receiver, accessors, node, !!node.multiLine));\n }\n break;\n case 175 /* MethodDeclaration */:\n expressions.push(transformObjectLiteralMethodDeclarationToExpression(property, receiver, node, node.multiLine));\n break;\n case 304 /* PropertyAssignment */:\n expressions.push(transformPropertyAssignmentToExpression(property, receiver, node.multiLine));\n break;\n case 305 /* ShorthandPropertyAssignment */:\n expressions.push(transformShorthandPropertyAssignmentToExpression(property, receiver, node.multiLine));\n break;\n default:\n Debug.failBadSyntaxKind(node);\n break;\n }\n }\n }\n function transformPropertyAssignmentToExpression(property, receiver, startsOnNewLine) {\n const expression = factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))\n ),\n Debug.checkDefined(visitNode(property.initializer, visitor, isExpression))\n );\n setTextRange(expression, property);\n if (startsOnNewLine) {\n startOnNewLine(expression);\n }\n return expression;\n }\n function transformShorthandPropertyAssignmentToExpression(property, receiver, startsOnNewLine) {\n const expression = factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))\n ),\n factory2.cloneNode(property.name)\n );\n setTextRange(expression, property);\n if (startsOnNewLine) {\n startOnNewLine(expression);\n }\n return expression;\n }\n function transformObjectLiteralMethodDeclarationToExpression(method, receiver, container, startsOnNewLine) {\n const expression = factory2.createAssignment(\n createMemberAccessForPropertyName(\n factory2,\n receiver,\n Debug.checkDefined(visitNode(method.name, visitor, isPropertyName))\n ),\n transformFunctionLikeToExpression(\n method,\n /*location*/\n method,\n /*name*/\n void 0,\n container\n )\n );\n setTextRange(expression, method);\n if (startsOnNewLine) {\n startOnNewLine(expression);\n }\n return expression;\n }\n function visitCatchClause(node) {\n const ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */);\n let updated;\n Debug.assert(!!node.variableDeclaration, \"Catch clause variable should always be present when downleveling ES2015.\");\n if (isBindingPattern(node.variableDeclaration.name)) {\n const temp = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n const newVariableDeclaration = factory2.createVariableDeclaration(temp);\n setTextRange(newVariableDeclaration, node.variableDeclaration);\n const vars = flattenDestructuringBinding(\n node.variableDeclaration,\n visitor,\n context,\n 0 /* All */,\n temp\n );\n const list = factory2.createVariableDeclarationList(vars);\n setTextRange(list, node.variableDeclaration);\n const destructure = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n list\n );\n updated = factory2.updateCatchClause(node, newVariableDeclaration, addStatementToStartOfBlock(node.block, destructure));\n } else {\n updated = visitEachChild(node, visitor, context);\n }\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return updated;\n }\n function addStatementToStartOfBlock(block, statement) {\n const transformedStatements = visitNodes2(block.statements, visitor, isStatement);\n return factory2.updateBlock(block, [statement, ...transformedStatements]);\n }\n function visitMethodDeclaration(node) {\n Debug.assert(!isComputedPropertyName(node.name));\n const functionExpression = transformFunctionLikeToExpression(\n node,\n /*location*/\n moveRangePos(node, -1),\n /*name*/\n void 0,\n /*container*/\n void 0\n );\n setEmitFlags(functionExpression, 1024 /* NoLeadingComments */ | getEmitFlags(functionExpression));\n return setTextRange(\n factory2.createPropertyAssignment(\n node.name,\n functionExpression\n ),\n /*location*/\n node\n );\n }\n function visitAccessorDeclaration(node) {\n Debug.assert(!isComputedPropertyName(node.name));\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n let updated;\n const parameters = visitParameterList(node.parameters, visitor, context);\n const body = transformFunctionBody2(node);\n if (node.kind === 178 /* GetAccessor */) {\n updated = factory2.updateGetAccessorDeclaration(node, node.modifiers, node.name, parameters, node.type, body);\n } else {\n updated = factory2.updateSetAccessorDeclaration(node, node.modifiers, node.name, parameters, body);\n }\n exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n convertedLoopState = savedConvertedLoopState;\n return updated;\n }\n function visitShorthandPropertyAssignment(node) {\n return setTextRange(\n factory2.createPropertyAssignment(\n node.name,\n visitIdentifier(factory2.cloneNode(node.name))\n ),\n /*location*/\n node\n );\n }\n function visitComputedPropertyName(node) {\n return visitEachChild(node, visitor, context);\n }\n function visitYieldExpression(node) {\n return visitEachChild(node, visitor, context);\n }\n function visitArrayLiteralExpression(node) {\n if (some(node.elements, isSpreadElement)) {\n return transformAndSpreadElements(\n node.elements,\n /*isArgumentList*/\n false,\n !!node.multiLine,\n /*hasTrailingComma*/\n !!node.elements.hasTrailingComma\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCallExpression(node) {\n if (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) {\n return visitTypeScriptClassWrapper(node);\n }\n const expression = skipOuterExpressions(node.expression);\n if (expression.kind === 108 /* SuperKeyword */ || isSuperProperty(expression) || some(node.arguments, isSpreadElement)) {\n return visitCallExpressionWithPotentialCapturedThisAssignment(\n node,\n /*assignToCapturedThis*/\n true\n );\n }\n return factory2.updateCallExpression(\n node,\n Debug.checkDefined(visitNode(node.expression, callExpressionVisitor, isExpression)),\n /*typeArguments*/\n void 0,\n visitNodes2(node.arguments, visitor, isExpression)\n );\n }\n function visitTypeScriptClassWrapper(node) {\n const body = cast(cast(skipOuterExpressions(node.expression), isArrowFunction).body, isBlock);\n const isVariableStatementWithInitializer = (stmt) => isVariableStatement(stmt) && !!first(stmt.declarationList.declarations).initializer;\n const savedConvertedLoopState = convertedLoopState;\n convertedLoopState = void 0;\n const bodyStatements = visitNodes2(body.statements, classWrapperStatementVisitor, isStatement);\n convertedLoopState = savedConvertedLoopState;\n const classStatements = filter(bodyStatements, isVariableStatementWithInitializer);\n const remainingStatements = filter(bodyStatements, (stmt) => !isVariableStatementWithInitializer(stmt));\n const varStatement = cast(first(classStatements), isVariableStatement);\n const variable = varStatement.declarationList.declarations[0];\n const initializer = skipOuterExpressions(variable.initializer);\n let aliasAssignment = tryCast(initializer, isAssignmentExpression);\n if (!aliasAssignment && isBinaryExpression(initializer) && initializer.operatorToken.kind === 28 /* CommaToken */) {\n aliasAssignment = tryCast(initializer.left, isAssignmentExpression);\n }\n const call = cast(aliasAssignment ? skipOuterExpressions(aliasAssignment.right) : initializer, isCallExpression);\n const func = cast(skipOuterExpressions(call.expression), isFunctionExpression);\n const funcStatements = func.body.statements;\n let classBodyStart = 0;\n let classBodyEnd = -1;\n const statements = [];\n if (aliasAssignment) {\n const extendsCall = tryCast(funcStatements[classBodyStart], isExpressionStatement);\n if (extendsCall) {\n statements.push(extendsCall);\n classBodyStart++;\n }\n statements.push(funcStatements[classBodyStart]);\n classBodyStart++;\n statements.push(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n aliasAssignment.left,\n cast(variable.name, isIdentifier)\n )\n )\n );\n }\n while (!isReturnStatement(elementAt(funcStatements, classBodyEnd))) {\n classBodyEnd--;\n }\n addRange(statements, funcStatements, classBodyStart, classBodyEnd);\n if (classBodyEnd < -1) {\n addRange(statements, funcStatements, classBodyEnd + 1);\n }\n const returnStatement = tryCast(elementAt(funcStatements, classBodyEnd), isReturnStatement);\n for (const statement of remainingStatements) {\n if (isReturnStatement(statement) && (returnStatement == null ? void 0 : returnStatement.expression) && !isIdentifier(returnStatement.expression)) {\n statements.push(returnStatement);\n } else {\n statements.push(statement);\n }\n }\n addRange(\n statements,\n classStatements,\n /*start*/\n 1\n );\n return factory2.restoreOuterExpressions(\n node.expression,\n factory2.restoreOuterExpressions(\n variable.initializer,\n factory2.restoreOuterExpressions(\n aliasAssignment && aliasAssignment.right,\n factory2.updateCallExpression(\n call,\n factory2.restoreOuterExpressions(\n call.expression,\n factory2.updateFunctionExpression(\n func,\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n func.parameters,\n /*type*/\n void 0,\n factory2.updateBlock(\n func.body,\n statements\n )\n )\n ),\n /*typeArguments*/\n void 0,\n call.arguments\n )\n )\n )\n );\n }\n function visitCallExpressionWithPotentialCapturedThisAssignment(node, assignToCapturedThis) {\n if (node.transformFlags & 32768 /* ContainsRestOrSpread */ || node.expression.kind === 108 /* SuperKeyword */ || isSuperProperty(skipOuterExpressions(node.expression))) {\n const { target, thisArg } = factory2.createCallBinding(node.expression, hoistVariableDeclaration);\n if (node.expression.kind === 108 /* SuperKeyword */) {\n setEmitFlags(thisArg, 8 /* NoSubstitution */);\n }\n let resultingCall;\n if (node.transformFlags & 32768 /* ContainsRestOrSpread */) {\n resultingCall = factory2.createFunctionApplyCall(\n Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)),\n node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)),\n transformAndSpreadElements(\n node.arguments,\n /*isArgumentList*/\n true,\n /*multiLine*/\n false,\n /*hasTrailingComma*/\n false\n )\n );\n } else {\n resultingCall = setTextRange(\n factory2.createFunctionCallCall(\n Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)),\n node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)),\n visitNodes2(node.arguments, visitor, isExpression)\n ),\n node\n );\n }\n if (node.expression.kind === 108 /* SuperKeyword */) {\n const initializer = factory2.createLogicalOr(\n resultingCall,\n createActualThis()\n );\n resultingCall = assignToCapturedThis ? factory2.createAssignment(createCapturedThis(), initializer) : initializer;\n }\n return setOriginalNode(resultingCall, node);\n }\n if (isSuperCall(node)) {\n hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitNewExpression(node) {\n if (some(node.arguments, isSpreadElement)) {\n const { target, thisArg } = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, \"bind\"), hoistVariableDeclaration);\n return factory2.createNewExpression(\n factory2.createFunctionApplyCall(\n Debug.checkDefined(visitNode(target, visitor, isExpression)),\n thisArg,\n transformAndSpreadElements(\n factory2.createNodeArray([factory2.createVoidZero(), ...node.arguments]),\n /*isArgumentList*/\n true,\n /*multiLine*/\n false,\n /*hasTrailingComma*/\n false\n )\n ),\n /*typeArguments*/\n void 0,\n []\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function transformAndSpreadElements(elements, isArgumentList, multiLine, hasTrailingComma) {\n const numElements = elements.length;\n const segments = flatten(\n // As we visit each element, we return one of two functions to use as the \"key\":\n // - `visitSpanOfSpreads` for one or more contiguous `...` spread expressions, i.e. `...a, ...b` in `[1, 2, ...a, ...b]`\n // - `visitSpanOfNonSpreads` for one or more contiguous non-spread elements, i.e. `1, 2`, in `[1, 2, ...a, ...b]`\n spanMap(elements, partitionSpread, (partition, visitPartition, _start, end) => visitPartition(partition, multiLine, hasTrailingComma && end === numElements))\n );\n if (segments.length === 1) {\n const firstSegment = segments[0];\n if (isArgumentList && !compilerOptions.downlevelIteration || isPackedArrayLiteral(firstSegment.expression) || isCallToHelper(firstSegment.expression, \"___spreadArray\")) {\n return firstSegment.expression;\n }\n }\n const helpers = emitHelpers();\n const startsWithSpread = segments[0].kind !== 0 /* None */;\n let expression = startsWithSpread ? factory2.createArrayLiteralExpression() : segments[0].expression;\n for (let i = startsWithSpread ? 0 : 1; i < segments.length; i++) {\n const segment = segments[i];\n expression = helpers.createSpreadArrayHelper(\n expression,\n segment.expression,\n segment.kind === 1 /* UnpackedSpread */ && !isArgumentList\n );\n }\n return expression;\n }\n function partitionSpread(node) {\n return isSpreadElement(node) ? visitSpanOfSpreads : visitSpanOfNonSpreads;\n }\n function visitSpanOfSpreads(chunk) {\n return map(chunk, visitExpressionOfSpread);\n }\n function visitExpressionOfSpread(node) {\n Debug.assertNode(node, isSpreadElement);\n let expression = visitNode(node.expression, visitor, isExpression);\n Debug.assert(expression);\n const isCallToReadHelper = isCallToHelper(expression, \"___read\");\n let kind = isCallToReadHelper || isPackedArrayLiteral(expression) ? 2 /* PackedSpread */ : 1 /* UnpackedSpread */;\n if (compilerOptions.downlevelIteration && kind === 1 /* UnpackedSpread */ && !isArrayLiteralExpression(expression) && !isCallToReadHelper) {\n expression = emitHelpers().createReadHelper(\n expression,\n /*count*/\n void 0\n );\n kind = 2 /* PackedSpread */;\n }\n return createSpreadSegment(kind, expression);\n }\n function visitSpanOfNonSpreads(chunk, multiLine, hasTrailingComma) {\n const expression = factory2.createArrayLiteralExpression(\n visitNodes2(factory2.createNodeArray(chunk, hasTrailingComma), visitor, isExpression),\n multiLine\n );\n return createSpreadSegment(0 /* None */, expression);\n }\n function visitSpreadElement(node) {\n return visitNode(node.expression, visitor, isExpression);\n }\n function visitTemplateLiteral(node) {\n return setTextRange(factory2.createStringLiteral(node.text), node);\n }\n function visitStringLiteral(node) {\n if (node.hasExtendedUnicodeEscape) {\n return setTextRange(factory2.createStringLiteral(node.text), node);\n }\n return node;\n }\n function visitNumericLiteral(node) {\n if (node.numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) {\n return setTextRange(factory2.createNumericLiteral(node.text), node);\n }\n return node;\n }\n function visitTaggedTemplateExpression(node) {\n return processTaggedTemplateExpression(\n context,\n node,\n visitor,\n currentSourceFile,\n recordTaggedTemplateString,\n 1 /* All */\n );\n }\n function visitTemplateExpression(node) {\n let expression = factory2.createStringLiteral(node.head.text);\n for (const span of node.templateSpans) {\n const args = [Debug.checkDefined(visitNode(span.expression, visitor, isExpression))];\n if (span.literal.text.length > 0) {\n args.push(factory2.createStringLiteral(span.literal.text));\n }\n expression = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(expression, \"concat\"),\n /*typeArguments*/\n void 0,\n args\n );\n }\n return setTextRange(expression, node);\n }\n function createSyntheticSuper() {\n return factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */);\n }\n function visitSuperKeyword(node, isExpressionOfCall) {\n const expression = hierarchyFacts & 8 /* NonStaticClassElement */ && !isExpressionOfCall ? factory2.createPropertyAccessExpression(setOriginalNode(createSyntheticSuper(), node), \"prototype\") : createSyntheticSuper();\n setOriginalNode(expression, node);\n setCommentRange(expression, node);\n setSourceMapRange(expression, node);\n return expression;\n }\n function visitMetaProperty(node) {\n if (node.keywordToken === 105 /* NewKeyword */ && node.name.escapedText === \"target\") {\n hierarchyFacts |= 32768 /* NewTarget */;\n return factory2.createUniqueName(\"_newTarget\", 16 /* Optimistic */ | 32 /* FileLevel */);\n }\n return node;\n }\n function onEmitNode(hint, node, emitCallback) {\n if (enabledSubstitutions & 1 /* CapturedThis */ && isFunctionLike(node)) {\n const ancestorFacts = enterSubtree(\n 32670 /* FunctionExcludes */,\n getEmitFlags(node) & 16 /* CapturesThis */ ? 65 /* FunctionIncludes */ | 16 /* CapturesThis */ : 65 /* FunctionIncludes */\n );\n previousOnEmitNode(hint, node, emitCallback);\n exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n return;\n }\n previousOnEmitNode(hint, node, emitCallback);\n }\n function enableSubstitutionsForBlockScopedBindings() {\n if ((enabledSubstitutions & 2 /* BlockScopedBindings */) === 0) {\n enabledSubstitutions |= 2 /* BlockScopedBindings */;\n context.enableSubstitution(80 /* Identifier */);\n }\n }\n function enableSubstitutionsForCapturedThis() {\n if ((enabledSubstitutions & 1 /* CapturedThis */) === 0) {\n enabledSubstitutions |= 1 /* CapturedThis */;\n context.enableSubstitution(110 /* ThisKeyword */);\n context.enableEmitNotification(177 /* Constructor */);\n context.enableEmitNotification(175 /* MethodDeclaration */);\n context.enableEmitNotification(178 /* GetAccessor */);\n context.enableEmitNotification(179 /* SetAccessor */);\n context.enableEmitNotification(220 /* ArrowFunction */);\n context.enableEmitNotification(219 /* FunctionExpression */);\n context.enableEmitNotification(263 /* FunctionDeclaration */);\n }\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n }\n if (isIdentifier(node)) {\n return substituteIdentifier(node);\n }\n return node;\n }\n function substituteIdentifier(node) {\n if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) {\n const original = getParseTreeNode(node, isIdentifier);\n if (original && isNameOfDeclarationWithCollidingName(original)) {\n return setTextRange(factory2.getGeneratedNameForNode(original), node);\n }\n }\n return node;\n }\n function isNameOfDeclarationWithCollidingName(node) {\n switch (node.parent.kind) {\n case 209 /* BindingElement */:\n case 264 /* ClassDeclaration */:\n case 267 /* EnumDeclaration */:\n case 261 /* VariableDeclaration */:\n return node.parent.name === node && resolver.isDeclarationWithCollidingName(node.parent);\n }\n return false;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n case 110 /* ThisKeyword */:\n return substituteThisKeyword(node);\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) {\n const declaration = resolver.getReferencedDeclarationWithCollidingName(node);\n if (declaration && !(isClassLike(declaration) && isPartOfClassBody(declaration, node))) {\n return setTextRange(factory2.getGeneratedNameForNode(getNameOfDeclaration(declaration)), node);\n }\n }\n return node;\n }\n function isPartOfClassBody(declaration, node) {\n let currentNode = getParseTreeNode(node);\n if (!currentNode || currentNode === declaration || currentNode.end <= declaration.pos || currentNode.pos >= declaration.end) {\n return false;\n }\n const blockScope = getEnclosingBlockScopeContainer(declaration);\n while (currentNode) {\n if (currentNode === blockScope || currentNode === declaration) {\n return false;\n }\n if (isClassElement(currentNode) && currentNode.parent === declaration) {\n return true;\n }\n currentNode = currentNode.parent;\n }\n return false;\n }\n function substituteThisKeyword(node) {\n if (enabledSubstitutions & 1 /* CapturedThis */ && hierarchyFacts & 16 /* CapturesThis */) {\n return setTextRange(createCapturedThis(), node);\n }\n return node;\n }\n function getClassMemberPrefix(node, member) {\n return isStatic(member) ? factory2.getInternalName(node) : factory2.createPropertyAccessExpression(factory2.getInternalName(node), \"prototype\");\n }\n function hasSynthesizedDefaultSuperCall(constructor, hasExtendsClause) {\n if (!constructor || !hasExtendsClause) {\n return false;\n }\n if (some(constructor.parameters)) {\n return false;\n }\n const statement = firstOrUndefined(constructor.body.statements);\n if (!statement || !nodeIsSynthesized(statement) || statement.kind !== 245 /* ExpressionStatement */) {\n return false;\n }\n const statementExpression = statement.expression;\n if (!nodeIsSynthesized(statementExpression) || statementExpression.kind !== 214 /* CallExpression */) {\n return false;\n }\n const callTarget = statementExpression.expression;\n if (!nodeIsSynthesized(callTarget) || callTarget.kind !== 108 /* SuperKeyword */) {\n return false;\n }\n const callArgument = singleOrUndefined(statementExpression.arguments);\n if (!callArgument || !nodeIsSynthesized(callArgument) || callArgument.kind !== 231 /* SpreadElement */) {\n return false;\n }\n const expression = callArgument.expression;\n return isIdentifier(expression) && expression.escapedText === \"arguments\";\n }\n}\n\n// src/compiler/transformers/generators.ts\nfunction getInstructionName(instruction) {\n switch (instruction) {\n case 2 /* Return */:\n return \"return\";\n case 3 /* Break */:\n return \"break\";\n case 4 /* Yield */:\n return \"yield\";\n case 5 /* YieldStar */:\n return \"yield*\";\n case 7 /* Endfinally */:\n return \"endfinally\";\n default:\n return void 0;\n }\n}\nfunction transformGenerators(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n hoistFunctionDeclaration,\n hoistVariableDeclaration\n } = context;\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const resolver = context.getEmitResolver();\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onSubstituteNode = onSubstituteNode;\n let renamedCatchVariables;\n let renamedCatchVariableDeclarations;\n let inGeneratorFunctionBody;\n let inStatementContainingYield;\n let blocks;\n let blockOffsets;\n let blockActions;\n let blockStack;\n let labelOffsets;\n let labelExpressions;\n let nextLabelId = 1;\n let operations;\n let operationArguments;\n let operationLocations;\n let state;\n let blockIndex = 0;\n let labelNumber = 0;\n let labelNumbers;\n let lastOperationWasAbrupt;\n let lastOperationWasCompletion;\n let clauses;\n let statements;\n let exceptionBlockStack;\n let currentExceptionBlock;\n let withBlockStack;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile || (node.transformFlags & 2048 /* ContainsGenerator */) === 0) {\n return node;\n }\n const visited = visitEachChild(node, visitor, context);\n addEmitHelpers(visited, context.readEmitHelpers());\n return visited;\n }\n function visitor(node) {\n const transformFlags = node.transformFlags;\n if (inStatementContainingYield) {\n return visitJavaScriptInStatementContainingYield(node);\n } else if (inGeneratorFunctionBody) {\n return visitJavaScriptInGeneratorFunctionBody(node);\n } else if (isFunctionLikeDeclaration(node) && node.asteriskToken) {\n return visitGenerator(node);\n } else if (transformFlags & 2048 /* ContainsGenerator */) {\n return visitEachChild(node, visitor, context);\n } else {\n return node;\n }\n }\n function visitJavaScriptInStatementContainingYield(node) {\n switch (node.kind) {\n case 247 /* DoStatement */:\n return visitDoStatement(node);\n case 248 /* WhileStatement */:\n return visitWhileStatement(node);\n case 256 /* SwitchStatement */:\n return visitSwitchStatement(node);\n case 257 /* LabeledStatement */:\n return visitLabeledStatement(node);\n default:\n return visitJavaScriptInGeneratorFunctionBody(node);\n }\n }\n function visitJavaScriptInGeneratorFunctionBody(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 219 /* FunctionExpression */:\n return visitFunctionExpression(node);\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return visitAccessorDeclaration(node);\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 249 /* ForStatement */:\n return visitForStatement(node);\n case 250 /* ForInStatement */:\n return visitForInStatement(node);\n case 253 /* BreakStatement */:\n return visitBreakStatement(node);\n case 252 /* ContinueStatement */:\n return visitContinueStatement(node);\n case 254 /* ReturnStatement */:\n return visitReturnStatement(node);\n default:\n if (node.transformFlags & 1048576 /* ContainsYield */) {\n return visitJavaScriptContainingYield(node);\n } else if (node.transformFlags & (2048 /* ContainsGenerator */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */)) {\n return visitEachChild(node, visitor, context);\n } else {\n return node;\n }\n }\n }\n function visitJavaScriptContainingYield(node) {\n switch (node.kind) {\n case 227 /* BinaryExpression */:\n return visitBinaryExpression(node);\n case 357 /* CommaListExpression */:\n return visitCommaListExpression(node);\n case 228 /* ConditionalExpression */:\n return visitConditionalExpression(node);\n case 230 /* YieldExpression */:\n return visitYieldExpression(node);\n case 210 /* ArrayLiteralExpression */:\n return visitArrayLiteralExpression(node);\n case 211 /* ObjectLiteralExpression */:\n return visitObjectLiteralExpression(node);\n case 213 /* ElementAccessExpression */:\n return visitElementAccessExpression(node);\n case 214 /* CallExpression */:\n return visitCallExpression(node);\n case 215 /* NewExpression */:\n return visitNewExpression(node);\n default:\n return visitEachChild(node, visitor, context);\n }\n }\n function visitGenerator(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 219 /* FunctionExpression */:\n return visitFunctionExpression(node);\n default:\n return Debug.failBadSyntaxKind(node);\n }\n }\n function visitFunctionDeclaration(node) {\n if (node.asteriskToken) {\n node = setOriginalNode(\n setTextRange(\n factory2.createFunctionDeclaration(\n node.modifiers,\n /*asteriskToken*/\n void 0,\n node.name,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n transformGeneratorFunctionBody(node.body)\n ),\n /*location*/\n node\n ),\n node\n );\n } else {\n const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n const savedInStatementContainingYield = inStatementContainingYield;\n inGeneratorFunctionBody = false;\n inStatementContainingYield = false;\n node = visitEachChild(node, visitor, context);\n inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n inStatementContainingYield = savedInStatementContainingYield;\n }\n if (inGeneratorFunctionBody) {\n hoistFunctionDeclaration(node);\n return void 0;\n } else {\n return node;\n }\n }\n function visitFunctionExpression(node) {\n if (node.asteriskToken) {\n node = setOriginalNode(\n setTextRange(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n node.name,\n /*typeParameters*/\n void 0,\n visitParameterList(node.parameters, visitor, context),\n /*type*/\n void 0,\n transformGeneratorFunctionBody(node.body)\n ),\n /*location*/\n node\n ),\n node\n );\n } else {\n const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n const savedInStatementContainingYield = inStatementContainingYield;\n inGeneratorFunctionBody = false;\n inStatementContainingYield = false;\n node = visitEachChild(node, visitor, context);\n inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n inStatementContainingYield = savedInStatementContainingYield;\n }\n return node;\n }\n function visitAccessorDeclaration(node) {\n const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n const savedInStatementContainingYield = inStatementContainingYield;\n inGeneratorFunctionBody = false;\n inStatementContainingYield = false;\n node = visitEachChild(node, visitor, context);\n inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n inStatementContainingYield = savedInStatementContainingYield;\n return node;\n }\n function transformGeneratorFunctionBody(body) {\n const statements2 = [];\n const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n const savedInStatementContainingYield = inStatementContainingYield;\n const savedBlocks = blocks;\n const savedBlockOffsets = blockOffsets;\n const savedBlockActions = blockActions;\n const savedBlockStack = blockStack;\n const savedLabelOffsets = labelOffsets;\n const savedLabelExpressions = labelExpressions;\n const savedNextLabelId = nextLabelId;\n const savedOperations = operations;\n const savedOperationArguments = operationArguments;\n const savedOperationLocations = operationLocations;\n const savedState = state;\n inGeneratorFunctionBody = true;\n inStatementContainingYield = false;\n blocks = void 0;\n blockOffsets = void 0;\n blockActions = void 0;\n blockStack = void 0;\n labelOffsets = void 0;\n labelExpressions = void 0;\n nextLabelId = 1;\n operations = void 0;\n operationArguments = void 0;\n operationLocations = void 0;\n state = factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n resumeLexicalEnvironment();\n const statementOffset = factory2.copyPrologue(\n body.statements,\n statements2,\n /*ensureUseStrict*/\n false,\n visitor\n );\n transformAndEmitStatements(body.statements, statementOffset);\n const buildResult = build2();\n insertStatementsAfterStandardPrologue(statements2, endLexicalEnvironment());\n statements2.push(factory2.createReturnStatement(buildResult));\n inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n inStatementContainingYield = savedInStatementContainingYield;\n blocks = savedBlocks;\n blockOffsets = savedBlockOffsets;\n blockActions = savedBlockActions;\n blockStack = savedBlockStack;\n labelOffsets = savedLabelOffsets;\n labelExpressions = savedLabelExpressions;\n nextLabelId = savedNextLabelId;\n operations = savedOperations;\n operationArguments = savedOperationArguments;\n operationLocations = savedOperationLocations;\n state = savedState;\n return setTextRange(factory2.createBlock(statements2, body.multiLine), body);\n }\n function visitVariableStatement(node) {\n if (node.transformFlags & 1048576 /* ContainsYield */) {\n transformAndEmitVariableDeclarationList(node.declarationList);\n return void 0;\n } else {\n if (getEmitFlags(node) & 2097152 /* CustomPrologue */) {\n return node;\n }\n for (const variable of node.declarationList.declarations) {\n hoistVariableDeclaration(variable.name);\n }\n const variables = getInitializedVariables(node.declarationList);\n if (variables.length === 0) {\n return void 0;\n }\n return setSourceMapRange(\n factory2.createExpressionStatement(\n factory2.inlineExpressions(\n map(variables, transformInitializedVariable)\n )\n ),\n node\n );\n }\n }\n function visitBinaryExpression(node) {\n const assoc = getExpressionAssociativity(node);\n switch (assoc) {\n case 0 /* Left */:\n return visitLeftAssociativeBinaryExpression(node);\n case 1 /* Right */:\n return visitRightAssociativeBinaryExpression(node);\n default:\n return Debug.assertNever(assoc);\n }\n }\n function visitRightAssociativeBinaryExpression(node) {\n const { left, right } = node;\n if (containsYield(right)) {\n let target;\n switch (left.kind) {\n case 212 /* PropertyAccessExpression */:\n target = factory2.updatePropertyAccessExpression(\n left,\n cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))),\n left.name\n );\n break;\n case 213 /* ElementAccessExpression */:\n target = factory2.updateElementAccessExpression(left, cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))), cacheExpression(Debug.checkDefined(visitNode(left.argumentExpression, visitor, isExpression))));\n break;\n default:\n target = Debug.checkDefined(visitNode(left, visitor, isExpression));\n break;\n }\n const operator = node.operatorToken.kind;\n if (isCompoundAssignment(operator)) {\n return setTextRange(\n factory2.createAssignment(\n target,\n setTextRange(\n factory2.createBinaryExpression(\n cacheExpression(target),\n getNonAssignmentOperatorForCompoundAssignment(operator),\n Debug.checkDefined(visitNode(right, visitor, isExpression))\n ),\n node\n )\n ),\n node\n );\n } else {\n return factory2.updateBinaryExpression(node, target, node.operatorToken, Debug.checkDefined(visitNode(right, visitor, isExpression)));\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function visitLeftAssociativeBinaryExpression(node) {\n if (containsYield(node.right)) {\n if (isLogicalOperator(node.operatorToken.kind)) {\n return visitLogicalBinaryExpression(node);\n } else if (node.operatorToken.kind === 28 /* CommaToken */) {\n return visitCommaExpression(node);\n }\n return factory2.updateBinaryExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.left, visitor, isExpression))), node.operatorToken, Debug.checkDefined(visitNode(node.right, visitor, isExpression)));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCommaExpression(node) {\n let pendingExpressions = [];\n visit(node.left);\n visit(node.right);\n return factory2.inlineExpressions(pendingExpressions);\n function visit(node2) {\n if (isBinaryExpression(node2) && node2.operatorToken.kind === 28 /* CommaToken */) {\n visit(node2.left);\n visit(node2.right);\n } else {\n if (containsYield(node2) && pendingExpressions.length > 0) {\n emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]);\n pendingExpressions = [];\n }\n pendingExpressions.push(Debug.checkDefined(visitNode(node2, visitor, isExpression)));\n }\n }\n }\n function visitCommaListExpression(node) {\n let pendingExpressions = [];\n for (const elem of node.elements) {\n if (isBinaryExpression(elem) && elem.operatorToken.kind === 28 /* CommaToken */) {\n pendingExpressions.push(visitCommaExpression(elem));\n } else {\n if (containsYield(elem) && pendingExpressions.length > 0) {\n emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]);\n pendingExpressions = [];\n }\n pendingExpressions.push(Debug.checkDefined(visitNode(elem, visitor, isExpression)));\n }\n }\n return factory2.inlineExpressions(pendingExpressions);\n }\n function visitLogicalBinaryExpression(node) {\n const resultLabel = defineLabel();\n const resultLocal = declareLocal();\n emitAssignment(\n resultLocal,\n Debug.checkDefined(visitNode(node.left, visitor, isExpression)),\n /*location*/\n node.left\n );\n if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n emitBreakWhenFalse(\n resultLabel,\n resultLocal,\n /*location*/\n node.left\n );\n } else {\n emitBreakWhenTrue(\n resultLabel,\n resultLocal,\n /*location*/\n node.left\n );\n }\n emitAssignment(\n resultLocal,\n Debug.checkDefined(visitNode(node.right, visitor, isExpression)),\n /*location*/\n node.right\n );\n markLabel(resultLabel);\n return resultLocal;\n }\n function visitConditionalExpression(node) {\n if (containsYield(node.whenTrue) || containsYield(node.whenFalse)) {\n const whenFalseLabel = defineLabel();\n const resultLabel = defineLabel();\n const resultLocal = declareLocal();\n emitBreakWhenFalse(\n whenFalseLabel,\n Debug.checkDefined(visitNode(node.condition, visitor, isExpression)),\n /*location*/\n node.condition\n );\n emitAssignment(\n resultLocal,\n Debug.checkDefined(visitNode(node.whenTrue, visitor, isExpression)),\n /*location*/\n node.whenTrue\n );\n emitBreak(resultLabel);\n markLabel(whenFalseLabel);\n emitAssignment(\n resultLocal,\n Debug.checkDefined(visitNode(node.whenFalse, visitor, isExpression)),\n /*location*/\n node.whenFalse\n );\n markLabel(resultLabel);\n return resultLocal;\n }\n return visitEachChild(node, visitor, context);\n }\n function visitYieldExpression(node) {\n const resumeLabel = defineLabel();\n const expression = visitNode(node.expression, visitor, isExpression);\n if (node.asteriskToken) {\n const iterator = (getEmitFlags(node.expression) & 8388608 /* Iterator */) === 0 ? setTextRange(emitHelpers().createValuesHelper(expression), node) : expression;\n emitYieldStar(\n iterator,\n /*location*/\n node\n );\n } else {\n emitYield(\n expression,\n /*location*/\n node\n );\n }\n markLabel(resumeLabel);\n return createGeneratorResume(\n /*location*/\n node\n );\n }\n function visitArrayLiteralExpression(node) {\n return visitElements(\n node.elements,\n /*leadingElement*/\n void 0,\n /*location*/\n void 0,\n node.multiLine\n );\n }\n function visitElements(elements, leadingElement, location, multiLine) {\n const numInitialElements = countInitialNodesWithoutYield(elements);\n let temp;\n if (numInitialElements > 0) {\n temp = declareLocal();\n const initialElements = visitNodes2(elements, visitor, isExpression, 0, numInitialElements);\n emitAssignment(\n temp,\n factory2.createArrayLiteralExpression(\n leadingElement ? [leadingElement, ...initialElements] : initialElements\n )\n );\n leadingElement = void 0;\n }\n const expressions = reduceLeft(elements, reduceElement, [], numInitialElements);\n return temp ? factory2.createArrayConcatCall(temp, [factory2.createArrayLiteralExpression(expressions, multiLine)]) : setTextRange(\n factory2.createArrayLiteralExpression(leadingElement ? [leadingElement, ...expressions] : expressions, multiLine),\n location\n );\n function reduceElement(expressions2, element) {\n if (containsYield(element) && expressions2.length > 0) {\n const hasAssignedTemp = temp !== void 0;\n if (!temp) {\n temp = declareLocal();\n }\n emitAssignment(\n temp,\n hasAssignedTemp ? factory2.createArrayConcatCall(\n temp,\n [factory2.createArrayLiteralExpression(expressions2, multiLine)]\n ) : factory2.createArrayLiteralExpression(\n leadingElement ? [leadingElement, ...expressions2] : expressions2,\n multiLine\n )\n );\n leadingElement = void 0;\n expressions2 = [];\n }\n expressions2.push(Debug.checkDefined(visitNode(element, visitor, isExpression)));\n return expressions2;\n }\n }\n function visitObjectLiteralExpression(node) {\n const properties = node.properties;\n const multiLine = node.multiLine;\n const numInitialProperties = countInitialNodesWithoutYield(properties);\n const temp = declareLocal();\n emitAssignment(\n temp,\n factory2.createObjectLiteralExpression(\n visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties),\n multiLine\n )\n );\n const expressions = reduceLeft(properties, reduceProperty, [], numInitialProperties);\n expressions.push(multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp);\n return factory2.inlineExpressions(expressions);\n function reduceProperty(expressions2, property) {\n if (containsYield(property) && expressions2.length > 0) {\n emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(expressions2)));\n expressions2 = [];\n }\n const expression = createExpressionForObjectLiteralElementLike(factory2, node, property, temp);\n const visited = visitNode(expression, visitor, isExpression);\n if (visited) {\n if (multiLine) {\n startOnNewLine(visited);\n }\n expressions2.push(visited);\n }\n return expressions2;\n }\n }\n function visitElementAccessExpression(node) {\n if (containsYield(node.argumentExpression)) {\n return factory2.updateElementAccessExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression))), Debug.checkDefined(visitNode(node.argumentExpression, visitor, isExpression)));\n }\n return visitEachChild(node, visitor, context);\n }\n function visitCallExpression(node) {\n if (!isImportCall(node) && forEach(node.arguments, containsYield)) {\n const { target, thisArg } = factory2.createCallBinding(\n node.expression,\n hoistVariableDeclaration,\n languageVersion,\n /*cacheIdentifiers*/\n true\n );\n return setOriginalNode(\n setTextRange(\n factory2.createFunctionApplyCall(\n cacheExpression(Debug.checkDefined(visitNode(target, visitor, isLeftHandSideExpression))),\n thisArg,\n visitElements(node.arguments)\n ),\n node\n ),\n node\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function visitNewExpression(node) {\n if (forEach(node.arguments, containsYield)) {\n const { target, thisArg } = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, \"bind\"), hoistVariableDeclaration);\n return setOriginalNode(\n setTextRange(\n factory2.createNewExpression(\n factory2.createFunctionApplyCall(\n cacheExpression(Debug.checkDefined(visitNode(target, visitor, isExpression))),\n thisArg,\n visitElements(\n node.arguments,\n /*leadingElement*/\n factory2.createVoidZero()\n )\n ),\n /*typeArguments*/\n void 0,\n []\n ),\n node\n ),\n node\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function transformAndEmitStatements(statements2, start = 0) {\n const numStatements = statements2.length;\n for (let i = start; i < numStatements; i++) {\n transformAndEmitStatement(statements2[i]);\n }\n }\n function transformAndEmitEmbeddedStatement(node) {\n if (isBlock(node)) {\n transformAndEmitStatements(node.statements);\n } else {\n transformAndEmitStatement(node);\n }\n }\n function transformAndEmitStatement(node) {\n const savedInStatementContainingYield = inStatementContainingYield;\n if (!inStatementContainingYield) {\n inStatementContainingYield = containsYield(node);\n }\n transformAndEmitStatementWorker(node);\n inStatementContainingYield = savedInStatementContainingYield;\n }\n function transformAndEmitStatementWorker(node) {\n switch (node.kind) {\n case 242 /* Block */:\n return transformAndEmitBlock(node);\n case 245 /* ExpressionStatement */:\n return transformAndEmitExpressionStatement(node);\n case 246 /* IfStatement */:\n return transformAndEmitIfStatement(node);\n case 247 /* DoStatement */:\n return transformAndEmitDoStatement(node);\n case 248 /* WhileStatement */:\n return transformAndEmitWhileStatement(node);\n case 249 /* ForStatement */:\n return transformAndEmitForStatement(node);\n case 250 /* ForInStatement */:\n return transformAndEmitForInStatement(node);\n case 252 /* ContinueStatement */:\n return transformAndEmitContinueStatement(node);\n case 253 /* BreakStatement */:\n return transformAndEmitBreakStatement(node);\n case 254 /* ReturnStatement */:\n return transformAndEmitReturnStatement(node);\n case 255 /* WithStatement */:\n return transformAndEmitWithStatement(node);\n case 256 /* SwitchStatement */:\n return transformAndEmitSwitchStatement(node);\n case 257 /* LabeledStatement */:\n return transformAndEmitLabeledStatement(node);\n case 258 /* ThrowStatement */:\n return transformAndEmitThrowStatement(node);\n case 259 /* TryStatement */:\n return transformAndEmitTryStatement(node);\n default:\n return emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function transformAndEmitBlock(node) {\n if (containsYield(node)) {\n transformAndEmitStatements(node.statements);\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function transformAndEmitExpressionStatement(node) {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n function transformAndEmitVariableDeclarationList(node) {\n for (const variable of node.declarations) {\n const name = factory2.cloneNode(variable.name);\n setCommentRange(name, variable.name);\n hoistVariableDeclaration(name);\n }\n const variables = getInitializedVariables(node);\n const numVariables = variables.length;\n let variablesWritten = 0;\n let pendingExpressions = [];\n while (variablesWritten < numVariables) {\n for (let i = variablesWritten; i < numVariables; i++) {\n const variable = variables[i];\n if (containsYield(variable.initializer) && pendingExpressions.length > 0) {\n break;\n }\n pendingExpressions.push(transformInitializedVariable(variable));\n }\n if (pendingExpressions.length) {\n emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions)));\n variablesWritten += pendingExpressions.length;\n pendingExpressions = [];\n }\n }\n return void 0;\n }\n function transformInitializedVariable(node) {\n return setSourceMapRange(\n factory2.createAssignment(\n setSourceMapRange(factory2.cloneNode(node.name), node.name),\n Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))\n ),\n node\n );\n }\n function transformAndEmitIfStatement(node) {\n if (containsYield(node)) {\n if (containsYield(node.thenStatement) || containsYield(node.elseStatement)) {\n const endLabel = defineLabel();\n const elseLabel = node.elseStatement ? defineLabel() : void 0;\n emitBreakWhenFalse(\n node.elseStatement ? elseLabel : endLabel,\n Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n /*location*/\n node.expression\n );\n transformAndEmitEmbeddedStatement(node.thenStatement);\n if (node.elseStatement) {\n emitBreak(endLabel);\n markLabel(elseLabel);\n transformAndEmitEmbeddedStatement(node.elseStatement);\n }\n markLabel(endLabel);\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function transformAndEmitDoStatement(node) {\n if (containsYield(node)) {\n const conditionLabel = defineLabel();\n const loopLabel = defineLabel();\n beginLoopBlock(\n /*continueLabel*/\n conditionLabel\n );\n markLabel(loopLabel);\n transformAndEmitEmbeddedStatement(node.statement);\n markLabel(conditionLabel);\n emitBreakWhenTrue(loopLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n endLoopBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitDoStatement(node) {\n if (inStatementContainingYield) {\n beginScriptLoopBlock();\n node = visitEachChild(node, visitor, context);\n endLoopBlock();\n return node;\n } else {\n return visitEachChild(node, visitor, context);\n }\n }\n function transformAndEmitWhileStatement(node) {\n if (containsYield(node)) {\n const loopLabel = defineLabel();\n const endLabel = beginLoopBlock(loopLabel);\n markLabel(loopLabel);\n emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n transformAndEmitEmbeddedStatement(node.statement);\n emitBreak(loopLabel);\n endLoopBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitWhileStatement(node) {\n if (inStatementContainingYield) {\n beginScriptLoopBlock();\n node = visitEachChild(node, visitor, context);\n endLoopBlock();\n return node;\n } else {\n return visitEachChild(node, visitor, context);\n }\n }\n function transformAndEmitForStatement(node) {\n if (containsYield(node)) {\n const conditionLabel = defineLabel();\n const incrementLabel = defineLabel();\n const endLabel = beginLoopBlock(incrementLabel);\n if (node.initializer) {\n const initializer = node.initializer;\n if (isVariableDeclarationList(initializer)) {\n transformAndEmitVariableDeclarationList(initializer);\n } else {\n emitStatement(\n setTextRange(\n factory2.createExpressionStatement(\n Debug.checkDefined(visitNode(initializer, visitor, isExpression))\n ),\n initializer\n )\n );\n }\n }\n markLabel(conditionLabel);\n if (node.condition) {\n emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.condition, visitor, isExpression)));\n }\n transformAndEmitEmbeddedStatement(node.statement);\n markLabel(incrementLabel);\n if (node.incrementor) {\n emitStatement(\n setTextRange(\n factory2.createExpressionStatement(\n Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))\n ),\n node.incrementor\n )\n );\n }\n emitBreak(conditionLabel);\n endLoopBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitForStatement(node) {\n if (inStatementContainingYield) {\n beginScriptLoopBlock();\n }\n const initializer = node.initializer;\n if (initializer && isVariableDeclarationList(initializer)) {\n for (const variable of initializer.declarations) {\n hoistVariableDeclaration(variable.name);\n }\n const variables = getInitializedVariables(initializer);\n node = factory2.updateForStatement(\n node,\n variables.length > 0 ? factory2.inlineExpressions(map(variables, transformInitializedVariable)) : void 0,\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, visitor, isExpression),\n visitIterationBody(node.statement, visitor, context)\n );\n } else {\n node = visitEachChild(node, visitor, context);\n }\n if (inStatementContainingYield) {\n endLoopBlock();\n }\n return node;\n }\n function transformAndEmitForInStatement(node) {\n if (containsYield(node)) {\n const obj = declareLocal();\n const keysArray = declareLocal();\n const key = declareLocal();\n const keysIndex = factory2.createLoopVariable();\n const initializer = node.initializer;\n hoistVariableDeclaration(keysIndex);\n emitAssignment(obj, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n emitAssignment(keysArray, factory2.createArrayLiteralExpression());\n emitStatement(\n factory2.createForInStatement(\n key,\n obj,\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(keysArray, \"push\"),\n /*typeArguments*/\n void 0,\n [key]\n )\n )\n )\n );\n emitAssignment(keysIndex, factory2.createNumericLiteral(0));\n const conditionLabel = defineLabel();\n const incrementLabel = defineLabel();\n const endLoopLabel = beginLoopBlock(incrementLabel);\n markLabel(conditionLabel);\n emitBreakWhenFalse(endLoopLabel, factory2.createLessThan(keysIndex, factory2.createPropertyAccessExpression(keysArray, \"length\")));\n emitAssignment(key, factory2.createElementAccessExpression(keysArray, keysIndex));\n emitBreakWhenFalse(incrementLabel, factory2.createBinaryExpression(key, 103 /* InKeyword */, obj));\n let variable;\n if (isVariableDeclarationList(initializer)) {\n for (const variable2 of initializer.declarations) {\n hoistVariableDeclaration(variable2.name);\n }\n variable = factory2.cloneNode(initializer.declarations[0].name);\n } else {\n variable = Debug.checkDefined(visitNode(initializer, visitor, isExpression));\n Debug.assert(isLeftHandSideExpression(variable));\n }\n emitAssignment(variable, key);\n transformAndEmitEmbeddedStatement(node.statement);\n markLabel(incrementLabel);\n emitStatement(factory2.createExpressionStatement(factory2.createPostfixIncrement(keysIndex)));\n emitBreak(conditionLabel);\n endLoopBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitForInStatement(node) {\n if (inStatementContainingYield) {\n beginScriptLoopBlock();\n }\n const initializer = node.initializer;\n if (isVariableDeclarationList(initializer)) {\n for (const variable of initializer.declarations) {\n hoistVariableDeclaration(variable.name);\n }\n node = factory2.updateForInStatement(node, initializer.declarations[0].name, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock)));\n } else {\n node = visitEachChild(node, visitor, context);\n }\n if (inStatementContainingYield) {\n endLoopBlock();\n }\n return node;\n }\n function transformAndEmitContinueStatement(node) {\n const label = findContinueTarget(node.label ? idText(node.label) : void 0);\n if (label > 0) {\n emitBreak(\n label,\n /*location*/\n node\n );\n } else {\n emitStatement(node);\n }\n }\n function visitContinueStatement(node) {\n if (inStatementContainingYield) {\n const label = findContinueTarget(node.label && idText(node.label));\n if (label > 0) {\n return createInlineBreak(\n label,\n /*location*/\n node\n );\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function transformAndEmitBreakStatement(node) {\n const label = findBreakTarget(node.label ? idText(node.label) : void 0);\n if (label > 0) {\n emitBreak(\n label,\n /*location*/\n node\n );\n } else {\n emitStatement(node);\n }\n }\n function visitBreakStatement(node) {\n if (inStatementContainingYield) {\n const label = findBreakTarget(node.label && idText(node.label));\n if (label > 0) {\n return createInlineBreak(\n label,\n /*location*/\n node\n );\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function transformAndEmitReturnStatement(node) {\n emitReturn(\n visitNode(node.expression, visitor, isExpression),\n /*location*/\n node\n );\n }\n function visitReturnStatement(node) {\n return createInlineReturn(\n visitNode(node.expression, visitor, isExpression),\n /*location*/\n node\n );\n }\n function transformAndEmitWithStatement(node) {\n if (containsYield(node)) {\n beginWithBlock(cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression))));\n transformAndEmitEmbeddedStatement(node.statement);\n endWithBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function transformAndEmitSwitchStatement(node) {\n if (containsYield(node.caseBlock)) {\n const caseBlock = node.caseBlock;\n const numClauses = caseBlock.clauses.length;\n const endLabel = beginSwitchBlock();\n const expression = cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n const clauseLabels = [];\n let defaultClauseIndex = -1;\n for (let i = 0; i < numClauses; i++) {\n const clause = caseBlock.clauses[i];\n clauseLabels.push(defineLabel());\n if (clause.kind === 298 /* DefaultClause */ && defaultClauseIndex === -1) {\n defaultClauseIndex = i;\n }\n }\n let clausesWritten = 0;\n let pendingClauses = [];\n while (clausesWritten < numClauses) {\n let defaultClausesSkipped = 0;\n for (let i = clausesWritten; i < numClauses; i++) {\n const clause = caseBlock.clauses[i];\n if (clause.kind === 297 /* CaseClause */) {\n if (containsYield(clause.expression) && pendingClauses.length > 0) {\n break;\n }\n pendingClauses.push(\n factory2.createCaseClause(\n Debug.checkDefined(visitNode(clause.expression, visitor, isExpression)),\n [\n createInlineBreak(\n clauseLabels[i],\n /*location*/\n clause.expression\n )\n ]\n )\n );\n } else {\n defaultClausesSkipped++;\n }\n }\n if (pendingClauses.length) {\n emitStatement(factory2.createSwitchStatement(expression, factory2.createCaseBlock(pendingClauses)));\n clausesWritten += pendingClauses.length;\n pendingClauses = [];\n }\n if (defaultClausesSkipped > 0) {\n clausesWritten += defaultClausesSkipped;\n defaultClausesSkipped = 0;\n }\n }\n if (defaultClauseIndex >= 0) {\n emitBreak(clauseLabels[defaultClauseIndex]);\n } else {\n emitBreak(endLabel);\n }\n for (let i = 0; i < numClauses; i++) {\n markLabel(clauseLabels[i]);\n transformAndEmitStatements(caseBlock.clauses[i].statements);\n }\n endSwitchBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitSwitchStatement(node) {\n if (inStatementContainingYield) {\n beginScriptSwitchBlock();\n }\n node = visitEachChild(node, visitor, context);\n if (inStatementContainingYield) {\n endSwitchBlock();\n }\n return node;\n }\n function transformAndEmitLabeledStatement(node) {\n if (containsYield(node)) {\n beginLabeledBlock(idText(node.label));\n transformAndEmitEmbeddedStatement(node.statement);\n endLabeledBlock();\n } else {\n emitStatement(visitNode(node, visitor, isStatement));\n }\n }\n function visitLabeledStatement(node) {\n if (inStatementContainingYield) {\n beginScriptLabeledBlock(idText(node.label));\n }\n node = visitEachChild(node, visitor, context);\n if (inStatementContainingYield) {\n endLabeledBlock();\n }\n return node;\n }\n function transformAndEmitThrowStatement(node) {\n emitThrow(\n Debug.checkDefined(visitNode(node.expression ?? factory2.createVoidZero(), visitor, isExpression)),\n /*location*/\n node\n );\n }\n function transformAndEmitTryStatement(node) {\n if (containsYield(node)) {\n beginExceptionBlock();\n transformAndEmitEmbeddedStatement(node.tryBlock);\n if (node.catchClause) {\n beginCatchBlock(node.catchClause.variableDeclaration);\n transformAndEmitEmbeddedStatement(node.catchClause.block);\n }\n if (node.finallyBlock) {\n beginFinallyBlock();\n transformAndEmitEmbeddedStatement(node.finallyBlock);\n }\n endExceptionBlock();\n } else {\n emitStatement(visitEachChild(node, visitor, context));\n }\n }\n function containsYield(node) {\n return !!node && (node.transformFlags & 1048576 /* ContainsYield */) !== 0;\n }\n function countInitialNodesWithoutYield(nodes) {\n const numNodes = nodes.length;\n for (let i = 0; i < numNodes; i++) {\n if (containsYield(nodes[i])) {\n return i;\n }\n }\n return -1;\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n }\n return node;\n }\n function substituteExpression(node) {\n if (isIdentifier(node)) {\n return substituteExpressionIdentifier(node);\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n if (!isGeneratedIdentifier(node) && renamedCatchVariables && renamedCatchVariables.has(idText(node))) {\n const original = getOriginalNode(node);\n if (isIdentifier(original) && original.parent) {\n const declaration = resolver.getReferencedValueDeclaration(original);\n if (declaration) {\n const name = renamedCatchVariableDeclarations[getOriginalNodeId(declaration)];\n if (name) {\n const clone2 = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n setSourceMapRange(clone2, node);\n setCommentRange(clone2, node);\n return clone2;\n }\n }\n }\n }\n return node;\n }\n function cacheExpression(node) {\n if (isGeneratedIdentifier(node) || getEmitFlags(node) & 8192 /* HelperName */) {\n return node;\n }\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n emitAssignment(\n temp,\n node,\n /*location*/\n node\n );\n return temp;\n }\n function declareLocal(name) {\n const temp = name ? factory2.createUniqueName(name) : factory2.createTempVariable(\n /*recordTempVariable*/\n void 0\n );\n hoistVariableDeclaration(temp);\n return temp;\n }\n function defineLabel() {\n if (!labelOffsets) {\n labelOffsets = [];\n }\n const label = nextLabelId;\n nextLabelId++;\n labelOffsets[label] = -1;\n return label;\n }\n function markLabel(label) {\n Debug.assert(labelOffsets !== void 0, \"No labels were defined.\");\n labelOffsets[label] = operations ? operations.length : 0;\n }\n function beginBlock(block) {\n if (!blocks) {\n blocks = [];\n blockActions = [];\n blockOffsets = [];\n blockStack = [];\n }\n const index = blockActions.length;\n blockActions[index] = 0 /* Open */;\n blockOffsets[index] = operations ? operations.length : 0;\n blocks[index] = block;\n blockStack.push(block);\n return index;\n }\n function endBlock() {\n const block = peekBlock();\n if (block === void 0) return Debug.fail(\"beginBlock was never called.\");\n const index = blockActions.length;\n blockActions[index] = 1 /* Close */;\n blockOffsets[index] = operations ? operations.length : 0;\n blocks[index] = block;\n blockStack.pop();\n return block;\n }\n function peekBlock() {\n return lastOrUndefined(blockStack);\n }\n function peekBlockKind() {\n const block = peekBlock();\n return block && block.kind;\n }\n function beginWithBlock(expression) {\n const startLabel = defineLabel();\n const endLabel = defineLabel();\n markLabel(startLabel);\n beginBlock({\n kind: 1 /* With */,\n expression,\n startLabel,\n endLabel\n });\n }\n function endWithBlock() {\n Debug.assert(peekBlockKind() === 1 /* With */);\n const block = endBlock();\n markLabel(block.endLabel);\n }\n function beginExceptionBlock() {\n const startLabel = defineLabel();\n const endLabel = defineLabel();\n markLabel(startLabel);\n beginBlock({\n kind: 0 /* Exception */,\n state: 0 /* Try */,\n startLabel,\n endLabel\n });\n emitNop();\n return endLabel;\n }\n function beginCatchBlock(variable) {\n Debug.assert(peekBlockKind() === 0 /* Exception */);\n let name;\n if (isGeneratedIdentifier(variable.name)) {\n name = variable.name;\n hoistVariableDeclaration(variable.name);\n } else {\n const text = idText(variable.name);\n name = declareLocal(text);\n if (!renamedCatchVariables) {\n renamedCatchVariables = /* @__PURE__ */ new Map();\n renamedCatchVariableDeclarations = [];\n context.enableSubstitution(80 /* Identifier */);\n }\n renamedCatchVariables.set(text, true);\n renamedCatchVariableDeclarations[getOriginalNodeId(variable)] = name;\n }\n const exception = peekBlock();\n Debug.assert(exception.state < 1 /* Catch */);\n const endLabel = exception.endLabel;\n emitBreak(endLabel);\n const catchLabel = defineLabel();\n markLabel(catchLabel);\n exception.state = 1 /* Catch */;\n exception.catchVariable = name;\n exception.catchLabel = catchLabel;\n emitAssignment(name, factory2.createCallExpression(\n factory2.createPropertyAccessExpression(state, \"sent\"),\n /*typeArguments*/\n void 0,\n []\n ));\n emitNop();\n }\n function beginFinallyBlock() {\n Debug.assert(peekBlockKind() === 0 /* Exception */);\n const exception = peekBlock();\n Debug.assert(exception.state < 2 /* Finally */);\n const endLabel = exception.endLabel;\n emitBreak(endLabel);\n const finallyLabel = defineLabel();\n markLabel(finallyLabel);\n exception.state = 2 /* Finally */;\n exception.finallyLabel = finallyLabel;\n }\n function endExceptionBlock() {\n Debug.assert(peekBlockKind() === 0 /* Exception */);\n const exception = endBlock();\n const state2 = exception.state;\n if (state2 < 2 /* Finally */) {\n emitBreak(exception.endLabel);\n } else {\n emitEndfinally();\n }\n markLabel(exception.endLabel);\n emitNop();\n exception.state = 3 /* Done */;\n }\n function beginScriptLoopBlock() {\n beginBlock({\n kind: 3 /* Loop */,\n isScript: true,\n breakLabel: -1,\n continueLabel: -1\n });\n }\n function beginLoopBlock(continueLabel) {\n const breakLabel = defineLabel();\n beginBlock({\n kind: 3 /* Loop */,\n isScript: false,\n breakLabel,\n continueLabel\n });\n return breakLabel;\n }\n function endLoopBlock() {\n Debug.assert(peekBlockKind() === 3 /* Loop */);\n const block = endBlock();\n const breakLabel = block.breakLabel;\n if (!block.isScript) {\n markLabel(breakLabel);\n }\n }\n function beginScriptSwitchBlock() {\n beginBlock({\n kind: 2 /* Switch */,\n isScript: true,\n breakLabel: -1\n });\n }\n function beginSwitchBlock() {\n const breakLabel = defineLabel();\n beginBlock({\n kind: 2 /* Switch */,\n isScript: false,\n breakLabel\n });\n return breakLabel;\n }\n function endSwitchBlock() {\n Debug.assert(peekBlockKind() === 2 /* Switch */);\n const block = endBlock();\n const breakLabel = block.breakLabel;\n if (!block.isScript) {\n markLabel(breakLabel);\n }\n }\n function beginScriptLabeledBlock(labelText) {\n beginBlock({\n kind: 4 /* Labeled */,\n isScript: true,\n labelText,\n breakLabel: -1\n });\n }\n function beginLabeledBlock(labelText) {\n const breakLabel = defineLabel();\n beginBlock({\n kind: 4 /* Labeled */,\n isScript: false,\n labelText,\n breakLabel\n });\n }\n function endLabeledBlock() {\n Debug.assert(peekBlockKind() === 4 /* Labeled */);\n const block = endBlock();\n if (!block.isScript) {\n markLabel(block.breakLabel);\n }\n }\n function supportsUnlabeledBreak(block) {\n return block.kind === 2 /* Switch */ || block.kind === 3 /* Loop */;\n }\n function supportsLabeledBreakOrContinue(block) {\n return block.kind === 4 /* Labeled */;\n }\n function supportsUnlabeledContinue(block) {\n return block.kind === 3 /* Loop */;\n }\n function hasImmediateContainingLabeledBlock(labelText, start) {\n for (let j = start; j >= 0; j--) {\n const containingBlock = blockStack[j];\n if (supportsLabeledBreakOrContinue(containingBlock)) {\n if (containingBlock.labelText === labelText) {\n return true;\n }\n } else {\n break;\n }\n }\n return false;\n }\n function findBreakTarget(labelText) {\n if (blockStack) {\n if (labelText) {\n for (let i = blockStack.length - 1; i >= 0; i--) {\n const block = blockStack[i];\n if (supportsLabeledBreakOrContinue(block) && block.labelText === labelText) {\n return block.breakLabel;\n } else if (supportsUnlabeledBreak(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) {\n return block.breakLabel;\n }\n }\n } else {\n for (let i = blockStack.length - 1; i >= 0; i--) {\n const block = blockStack[i];\n if (supportsUnlabeledBreak(block)) {\n return block.breakLabel;\n }\n }\n }\n }\n return 0;\n }\n function findContinueTarget(labelText) {\n if (blockStack) {\n if (labelText) {\n for (let i = blockStack.length - 1; i >= 0; i--) {\n const block = blockStack[i];\n if (supportsUnlabeledContinue(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) {\n return block.continueLabel;\n }\n }\n } else {\n for (let i = blockStack.length - 1; i >= 0; i--) {\n const block = blockStack[i];\n if (supportsUnlabeledContinue(block)) {\n return block.continueLabel;\n }\n }\n }\n }\n return 0;\n }\n function createLabel(label) {\n if (label !== void 0 && label > 0) {\n if (labelExpressions === void 0) {\n labelExpressions = [];\n }\n const expression = factory2.createNumericLiteral(Number.MAX_SAFE_INTEGER);\n if (labelExpressions[label] === void 0) {\n labelExpressions[label] = [expression];\n } else {\n labelExpressions[label].push(expression);\n }\n return expression;\n }\n return factory2.createOmittedExpression();\n }\n function createInstruction(instruction) {\n const literal = factory2.createNumericLiteral(instruction);\n addSyntheticTrailingComment(literal, 3 /* MultiLineCommentTrivia */, getInstructionName(instruction));\n return literal;\n }\n function createInlineBreak(label, location) {\n Debug.assertLessThan(0, label, \"Invalid label\");\n return setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(3 /* Break */),\n createLabel(label)\n ])\n ),\n location\n );\n }\n function createInlineReturn(expression, location) {\n return setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression(\n expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)]\n )\n ),\n location\n );\n }\n function createGeneratorResume(location) {\n return setTextRange(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(state, \"sent\"),\n /*typeArguments*/\n void 0,\n []\n ),\n location\n );\n }\n function emitNop() {\n emitWorker(0 /* Nop */);\n }\n function emitStatement(node) {\n if (node) {\n emitWorker(1 /* Statement */, [node]);\n } else {\n emitNop();\n }\n }\n function emitAssignment(left, right, location) {\n emitWorker(2 /* Assign */, [left, right], location);\n }\n function emitBreak(label, location) {\n emitWorker(3 /* Break */, [label], location);\n }\n function emitBreakWhenTrue(label, condition, location) {\n emitWorker(4 /* BreakWhenTrue */, [label, condition], location);\n }\n function emitBreakWhenFalse(label, condition, location) {\n emitWorker(5 /* BreakWhenFalse */, [label, condition], location);\n }\n function emitYieldStar(expression, location) {\n emitWorker(7 /* YieldStar */, [expression], location);\n }\n function emitYield(expression, location) {\n emitWorker(6 /* Yield */, [expression], location);\n }\n function emitReturn(expression, location) {\n emitWorker(8 /* Return */, [expression], location);\n }\n function emitThrow(expression, location) {\n emitWorker(9 /* Throw */, [expression], location);\n }\n function emitEndfinally() {\n emitWorker(10 /* Endfinally */);\n }\n function emitWorker(code, args, location) {\n if (operations === void 0) {\n operations = [];\n operationArguments = [];\n operationLocations = [];\n }\n if (labelOffsets === void 0) {\n markLabel(defineLabel());\n }\n const operationIndex = operations.length;\n operations[operationIndex] = code;\n operationArguments[operationIndex] = args;\n operationLocations[operationIndex] = location;\n }\n function build2() {\n blockIndex = 0;\n labelNumber = 0;\n labelNumbers = void 0;\n lastOperationWasAbrupt = false;\n lastOperationWasCompletion = false;\n clauses = void 0;\n statements = void 0;\n exceptionBlockStack = void 0;\n currentExceptionBlock = void 0;\n withBlockStack = void 0;\n const buildResult = buildStatements();\n return emitHelpers().createGeneratorHelper(\n setEmitFlags(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n state\n )],\n /*type*/\n void 0,\n factory2.createBlock(\n buildResult,\n /*multiLine*/\n buildResult.length > 0\n )\n ),\n 1048576 /* ReuseTempVariableScope */\n )\n );\n }\n function buildStatements() {\n if (operations) {\n for (let operationIndex = 0; operationIndex < operations.length; operationIndex++) {\n writeOperation(operationIndex);\n }\n flushFinalLabel(operations.length);\n } else {\n flushFinalLabel(0);\n }\n if (clauses) {\n const labelExpression = factory2.createPropertyAccessExpression(state, \"label\");\n const switchStatement = factory2.createSwitchStatement(labelExpression, factory2.createCaseBlock(clauses));\n return [startOnNewLine(switchStatement)];\n }\n if (statements) {\n return statements;\n }\n return [];\n }\n function flushLabel() {\n if (!statements) {\n return;\n }\n appendLabel(\n /*markLabelEnd*/\n !lastOperationWasAbrupt\n );\n lastOperationWasAbrupt = false;\n lastOperationWasCompletion = false;\n labelNumber++;\n }\n function flushFinalLabel(operationIndex) {\n if (isFinalLabelReachable(operationIndex)) {\n tryEnterLabel(operationIndex);\n withBlockStack = void 0;\n writeReturn(\n /*expression*/\n void 0,\n /*operationLocation*/\n void 0\n );\n }\n if (statements && clauses) {\n appendLabel(\n /*markLabelEnd*/\n false\n );\n }\n updateLabelExpressions();\n }\n function isFinalLabelReachable(operationIndex) {\n if (!lastOperationWasCompletion) {\n return true;\n }\n if (!labelOffsets || !labelExpressions) {\n return false;\n }\n for (let label = 0; label < labelOffsets.length; label++) {\n if (labelOffsets[label] === operationIndex && labelExpressions[label]) {\n return true;\n }\n }\n return false;\n }\n function appendLabel(markLabelEnd) {\n if (!clauses) {\n clauses = [];\n }\n if (statements) {\n if (withBlockStack) {\n for (let i = withBlockStack.length - 1; i >= 0; i--) {\n const withBlock = withBlockStack[i];\n statements = [factory2.createWithStatement(withBlock.expression, factory2.createBlock(statements))];\n }\n }\n if (currentExceptionBlock) {\n const { startLabel, catchLabel, finallyLabel, endLabel } = currentExceptionBlock;\n statements.unshift(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createPropertyAccessExpression(state, \"trys\"), \"push\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createArrayLiteralExpression([\n createLabel(startLabel),\n createLabel(catchLabel),\n createLabel(finallyLabel),\n createLabel(endLabel)\n ])\n ]\n )\n )\n );\n currentExceptionBlock = void 0;\n }\n if (markLabelEnd) {\n statements.push(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(state, \"label\"),\n factory2.createNumericLiteral(labelNumber + 1)\n )\n )\n );\n }\n }\n clauses.push(\n factory2.createCaseClause(\n factory2.createNumericLiteral(labelNumber),\n statements || []\n )\n );\n statements = void 0;\n }\n function tryEnterLabel(operationIndex) {\n if (!labelOffsets) {\n return;\n }\n for (let label = 0; label < labelOffsets.length; label++) {\n if (labelOffsets[label] === operationIndex) {\n flushLabel();\n if (labelNumbers === void 0) {\n labelNumbers = [];\n }\n if (labelNumbers[labelNumber] === void 0) {\n labelNumbers[labelNumber] = [label];\n } else {\n labelNumbers[labelNumber].push(label);\n }\n }\n }\n }\n function updateLabelExpressions() {\n if (labelExpressions !== void 0 && labelNumbers !== void 0) {\n for (let labelNumber2 = 0; labelNumber2 < labelNumbers.length; labelNumber2++) {\n const labels = labelNumbers[labelNumber2];\n if (labels !== void 0) {\n for (const label of labels) {\n const expressions = labelExpressions[label];\n if (expressions !== void 0) {\n for (const expression of expressions) {\n expression.text = String(labelNumber2);\n }\n }\n }\n }\n }\n }\n }\n function tryEnterOrLeaveBlock(operationIndex) {\n if (blocks) {\n for (; blockIndex < blockActions.length && blockOffsets[blockIndex] <= operationIndex; blockIndex++) {\n const block = blocks[blockIndex];\n const blockAction = blockActions[blockIndex];\n switch (block.kind) {\n case 0 /* Exception */:\n if (blockAction === 0 /* Open */) {\n if (!exceptionBlockStack) {\n exceptionBlockStack = [];\n }\n if (!statements) {\n statements = [];\n }\n exceptionBlockStack.push(currentExceptionBlock);\n currentExceptionBlock = block;\n } else if (blockAction === 1 /* Close */) {\n currentExceptionBlock = exceptionBlockStack.pop();\n }\n break;\n case 1 /* With */:\n if (blockAction === 0 /* Open */) {\n if (!withBlockStack) {\n withBlockStack = [];\n }\n withBlockStack.push(block);\n } else if (blockAction === 1 /* Close */) {\n withBlockStack.pop();\n }\n break;\n }\n }\n }\n }\n function writeOperation(operationIndex) {\n tryEnterLabel(operationIndex);\n tryEnterOrLeaveBlock(operationIndex);\n if (lastOperationWasAbrupt) {\n return;\n }\n lastOperationWasAbrupt = false;\n lastOperationWasCompletion = false;\n const opcode = operations[operationIndex];\n if (opcode === 0 /* Nop */) {\n return;\n } else if (opcode === 10 /* Endfinally */) {\n return writeEndfinally();\n }\n const args = operationArguments[operationIndex];\n if (opcode === 1 /* Statement */) {\n return writeStatement(args[0]);\n }\n const location = operationLocations[operationIndex];\n switch (opcode) {\n case 2 /* Assign */:\n return writeAssign(args[0], args[1], location);\n case 3 /* Break */:\n return writeBreak(args[0], location);\n case 4 /* BreakWhenTrue */:\n return writeBreakWhenTrue(args[0], args[1], location);\n case 5 /* BreakWhenFalse */:\n return writeBreakWhenFalse(args[0], args[1], location);\n case 6 /* Yield */:\n return writeYield(args[0], location);\n case 7 /* YieldStar */:\n return writeYieldStar(args[0], location);\n case 8 /* Return */:\n return writeReturn(args[0], location);\n case 9 /* Throw */:\n return writeThrow(args[0], location);\n }\n }\n function writeStatement(statement) {\n if (statement) {\n if (!statements) {\n statements = [statement];\n } else {\n statements.push(statement);\n }\n }\n }\n function writeAssign(left, right, operationLocation) {\n writeStatement(setTextRange(factory2.createExpressionStatement(factory2.createAssignment(left, right)), operationLocation));\n }\n function writeThrow(expression, operationLocation) {\n lastOperationWasAbrupt = true;\n lastOperationWasCompletion = true;\n writeStatement(setTextRange(factory2.createThrowStatement(expression), operationLocation));\n }\n function writeReturn(expression, operationLocation) {\n lastOperationWasAbrupt = true;\n lastOperationWasCompletion = true;\n writeStatement(\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression(\n expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)]\n )\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n );\n }\n function writeBreak(label, operationLocation) {\n lastOperationWasAbrupt = true;\n writeStatement(\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(3 /* Break */),\n createLabel(label)\n ])\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n );\n }\n function writeBreakWhenTrue(label, condition, operationLocation) {\n writeStatement(\n setEmitFlags(\n factory2.createIfStatement(\n condition,\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(3 /* Break */),\n createLabel(label)\n ])\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n ),\n 1 /* SingleLine */\n )\n );\n }\n function writeBreakWhenFalse(label, condition, operationLocation) {\n writeStatement(\n setEmitFlags(\n factory2.createIfStatement(\n factory2.createLogicalNot(condition),\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(3 /* Break */),\n createLabel(label)\n ])\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n ),\n 1 /* SingleLine */\n )\n );\n }\n function writeYield(expression, operationLocation) {\n lastOperationWasAbrupt = true;\n writeStatement(\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression(\n expression ? [createInstruction(4 /* Yield */), expression] : [createInstruction(4 /* Yield */)]\n )\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n );\n }\n function writeYieldStar(expression, operationLocation) {\n lastOperationWasAbrupt = true;\n writeStatement(\n setEmitFlags(\n setTextRange(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(5 /* YieldStar */),\n expression\n ])\n ),\n operationLocation\n ),\n 768 /* NoTokenSourceMaps */\n )\n );\n }\n function writeEndfinally() {\n lastOperationWasAbrupt = true;\n writeStatement(\n factory2.createReturnStatement(\n factory2.createArrayLiteralExpression([\n createInstruction(7 /* Endfinally */)\n ])\n )\n );\n }\n}\n\n// src/compiler/transformers/module/module.ts\nfunction transformModule(context) {\n function getTransformModuleDelegate(moduleKind2) {\n switch (moduleKind2) {\n case 2 /* AMD */:\n return transformAMDModule;\n case 3 /* UMD */:\n return transformUMDModule;\n default:\n return transformCommonJSModule;\n }\n }\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers,\n startLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const compilerOptions = context.getCompilerOptions();\n const resolver = context.getEmitResolver();\n const host = context.getEmitHost();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const moduleKind = getEmitModuleKind(compilerOptions);\n const previousOnSubstituteNode = context.onSubstituteNode;\n const previousOnEmitNode = context.onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.enableSubstitution(214 /* CallExpression */);\n context.enableSubstitution(216 /* TaggedTemplateExpression */);\n context.enableSubstitution(80 /* Identifier */);\n context.enableSubstitution(227 /* BinaryExpression */);\n context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n context.enableEmitNotification(308 /* SourceFile */);\n const moduleInfoMap = [];\n let currentSourceFile;\n let currentModuleInfo;\n let importsAndRequiresToRewriteOrShim;\n const noSubstitution = [];\n let needUMDDynamicImportHelper;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */ || isJsonSourceFile(node) && hasJsonModuleEmitEnabled(compilerOptions) && compilerOptions.outFile)) {\n return node;\n }\n currentSourceFile = node;\n currentModuleInfo = collectExternalModuleInfo(context, node);\n moduleInfoMap[getOriginalNodeId(node)] = currentModuleInfo;\n if (compilerOptions.rewriteRelativeImportExtensions) {\n forEachDynamicImportOrRequireCall(\n node,\n /*includeTypeSpaceImports*/\n false,\n /*requireStringLiteralLikeArgument*/\n false,\n (node2) => {\n if (!isStringLiteralLike(node2.arguments[0]) || shouldRewriteModuleSpecifier(node2.arguments[0].text, compilerOptions)) {\n importsAndRequiresToRewriteOrShim = append(importsAndRequiresToRewriteOrShim, node2);\n }\n }\n );\n }\n const transformModule2 = getTransformModuleDelegate(moduleKind);\n const updated = transformModule2(node);\n currentSourceFile = void 0;\n currentModuleInfo = void 0;\n needUMDDynamicImportHelper = false;\n return updated;\n }\n function shouldEmitUnderscoreUnderscoreESModule() {\n if (hasJSFileExtension(currentSourceFile.fileName) && currentSourceFile.commonJsModuleIndicator && (!currentSourceFile.externalModuleIndicator || currentSourceFile.externalModuleIndicator === true)) {\n return false;\n }\n if (!currentModuleInfo.exportEquals && isExternalModule(currentSourceFile)) {\n return true;\n }\n return false;\n }\n function transformCommonJSModule(node) {\n startLexicalEnvironment();\n const statements = [];\n const ensureUseStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") || isExternalModule(currentSourceFile);\n const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict && !isJsonSourceFile(node), topLevelVisitor);\n if (shouldEmitUnderscoreUnderscoreESModule()) {\n append(statements, createUnderscoreUnderscoreESModule());\n }\n if (some(currentModuleInfo.exportedNames)) {\n const chunkSize = 50;\n for (let i = 0; i < currentModuleInfo.exportedNames.length; i += chunkSize) {\n append(\n statements,\n factory2.createExpressionStatement(\n reduceLeft(\n currentModuleInfo.exportedNames.slice(i, i + chunkSize),\n (prev, nextId) => nextId.kind === 11 /* StringLiteral */ ? factory2.createAssignment(factory2.createElementAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createStringLiteral(nextId.text)), prev) : factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createIdentifier(idText(nextId))), prev),\n factory2.createVoidZero()\n )\n )\n );\n }\n }\n for (const f of currentModuleInfo.exportedFunctions) {\n appendExportsOfHoistedDeclaration(statements, f);\n }\n append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement));\n addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset));\n addExportEqualsIfNeeded(\n statements,\n /*emitAsReturn*/\n false\n );\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n const updated = factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray(statements), node.statements));\n addEmitHelpers(updated, context.readEmitHelpers());\n return updated;\n }\n function transformAMDModule(node) {\n const define = factory2.createIdentifier(\"define\");\n const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n const jsonSourceFile = isJsonSourceFile(node) && node;\n const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(\n node,\n /*includeNonAmdDependencies*/\n true\n );\n const updated = factory2.updateSourceFile(\n node,\n setTextRange(\n factory2.createNodeArray([\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n define,\n /*typeArguments*/\n void 0,\n [\n // Add the module name (if provided).\n ...moduleName ? [moduleName] : [],\n // Add the dependency array argument:\n //\n // [\"require\", \"exports\", module1\", \"module2\", ...]\n factory2.createArrayLiteralExpression(\n jsonSourceFile ? emptyArray : [\n factory2.createStringLiteral(\"require\"),\n factory2.createStringLiteral(\"exports\"),\n ...aliasedModuleNames,\n ...unaliasedModuleNames\n ]\n ),\n // Add the module body function argument:\n //\n // function (require, exports, module1, module2) ...\n jsonSourceFile ? jsonSourceFile.statements.length ? jsonSourceFile.statements[0].expression : factory2.createObjectLiteralExpression() : factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"require\"\n ),\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"exports\"\n ),\n ...importAliasNames\n ],\n /*type*/\n void 0,\n transformAsynchronousModuleBody(node)\n )\n ]\n )\n )\n ]),\n /*location*/\n node.statements\n )\n );\n addEmitHelpers(updated, context.readEmitHelpers());\n return updated;\n }\n function transformUMDModule(node) {\n const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(\n node,\n /*includeNonAmdDependencies*/\n false\n );\n const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n const umdHeader = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"factory\"\n )],\n /*type*/\n void 0,\n setTextRange(\n factory2.createBlock(\n [\n factory2.createIfStatement(\n factory2.createLogicalAnd(\n factory2.createTypeCheck(factory2.createIdentifier(\"module\"), \"object\"),\n factory2.createTypeCheck(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"module\"), \"exports\"), \"object\")\n ),\n factory2.createBlock([\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n [\n factory2.createVariableDeclaration(\n \"v\",\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createCallExpression(\n factory2.createIdentifier(\"factory\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createIdentifier(\"require\"),\n factory2.createIdentifier(\"exports\")\n ]\n )\n )\n ]\n ),\n setEmitFlags(\n factory2.createIfStatement(\n factory2.createStrictInequality(\n factory2.createIdentifier(\"v\"),\n factory2.createIdentifier(\"undefined\")\n ),\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"module\"), \"exports\"),\n factory2.createIdentifier(\"v\")\n )\n )\n ),\n 1 /* SingleLine */\n )\n ]),\n factory2.createIfStatement(\n factory2.createLogicalAnd(\n factory2.createTypeCheck(factory2.createIdentifier(\"define\"), \"function\"),\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"define\"), \"amd\")\n ),\n factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createIdentifier(\"define\"),\n /*typeArguments*/\n void 0,\n [\n // Add the module name (if provided).\n ...moduleName ? [moduleName] : [],\n factory2.createArrayLiteralExpression([\n factory2.createStringLiteral(\"require\"),\n factory2.createStringLiteral(\"exports\"),\n ...aliasedModuleNames,\n ...unaliasedModuleNames\n ]),\n factory2.createIdentifier(\"factory\")\n ]\n )\n )\n ])\n )\n )\n ],\n /*multiLine*/\n true\n ),\n /*location*/\n void 0\n )\n );\n const updated = factory2.updateSourceFile(\n node,\n setTextRange(\n factory2.createNodeArray([\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n umdHeader,\n /*typeArguments*/\n void 0,\n [\n // Add the module body function argument:\n //\n // function (require, exports) ...\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"require\"\n ),\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"exports\"\n ),\n ...importAliasNames\n ],\n /*type*/\n void 0,\n transformAsynchronousModuleBody(node)\n )\n ]\n )\n )\n ]),\n /*location*/\n node.statements\n )\n );\n addEmitHelpers(updated, context.readEmitHelpers());\n return updated;\n }\n function collectAsynchronousDependencies(node, includeNonAmdDependencies) {\n const aliasedModuleNames = [];\n const unaliasedModuleNames = [];\n const importAliasNames = [];\n for (const amdDependency of node.amdDependencies) {\n if (amdDependency.name) {\n aliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path));\n importAliasNames.push(factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n amdDependency.name\n ));\n } else {\n unaliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path));\n }\n }\n for (const importNode of currentModuleInfo.externalImports) {\n const externalModuleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions);\n const importAliasName = getLocalNameForExternalImport(factory2, importNode, currentSourceFile);\n if (externalModuleName) {\n if (includeNonAmdDependencies && importAliasName) {\n setEmitFlags(importAliasName, 8 /* NoSubstitution */);\n aliasedModuleNames.push(externalModuleName);\n importAliasNames.push(factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n importAliasName\n ));\n } else {\n unaliasedModuleNames.push(externalModuleName);\n }\n }\n }\n return { aliasedModuleNames, unaliasedModuleNames, importAliasNames };\n }\n function getAMDImportExpressionForImport(node) {\n if (isImportEqualsDeclaration(node) || isExportDeclaration(node) || !getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions)) {\n return void 0;\n }\n const name = getLocalNameForExternalImport(factory2, node, currentSourceFile);\n const expr = getHelperExpressionForImport(node, name);\n if (expr === name) {\n return void 0;\n }\n return factory2.createExpressionStatement(factory2.createAssignment(name, expr));\n }\n function transformAsynchronousModuleBody(node) {\n startLexicalEnvironment();\n const statements = [];\n const statementOffset = factory2.copyPrologue(\n node.statements,\n statements,\n /*ensureUseStrict*/\n true,\n topLevelVisitor\n );\n if (shouldEmitUnderscoreUnderscoreESModule()) {\n append(statements, createUnderscoreUnderscoreESModule());\n }\n if (some(currentModuleInfo.exportedNames)) {\n append(\n statements,\n factory2.createExpressionStatement(reduceLeft(currentModuleInfo.exportedNames, (prev, nextId) => nextId.kind === 11 /* StringLiteral */ ? factory2.createAssignment(factory2.createElementAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createStringLiteral(nextId.text)), prev) : factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createIdentifier(idText(nextId))), prev), factory2.createVoidZero()))\n );\n }\n for (const f of currentModuleInfo.exportedFunctions) {\n appendExportsOfHoistedDeclaration(statements, f);\n }\n append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement));\n if (moduleKind === 2 /* AMD */) {\n addRange(statements, mapDefined(currentModuleInfo.externalImports, getAMDImportExpressionForImport));\n }\n addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset));\n addExportEqualsIfNeeded(\n statements,\n /*emitAsReturn*/\n true\n );\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n const body = factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n if (needUMDDynamicImportHelper) {\n addEmitHelper(body, dynamicImportUMDHelper);\n }\n return body;\n }\n function addExportEqualsIfNeeded(statements, emitAsReturn) {\n if (currentModuleInfo.exportEquals) {\n const expressionResult = visitNode(currentModuleInfo.exportEquals.expression, visitor, isExpression);\n if (expressionResult) {\n if (emitAsReturn) {\n const statement = factory2.createReturnStatement(expressionResult);\n setTextRange(statement, currentModuleInfo.exportEquals);\n setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */);\n statements.push(statement);\n } else {\n const statement = factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"module\"),\n \"exports\"\n ),\n expressionResult\n )\n );\n setTextRange(statement, currentModuleInfo.exportEquals);\n setEmitFlags(statement, 3072 /* NoComments */);\n statements.push(statement);\n }\n }\n }\n }\n function topLevelVisitor(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return visitTopLevelImportDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return visitTopLevelImportEqualsDeclaration(node);\n case 279 /* ExportDeclaration */:\n return visitTopLevelExportDeclaration(node);\n case 278 /* ExportAssignment */:\n return visitTopLevelExportAssignment(node);\n default:\n return topLevelNestedVisitor(node);\n }\n }\n function topLevelNestedVisitor(node) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 249 /* ForStatement */:\n return visitForStatement(\n node,\n /*isTopLevel*/\n true\n );\n case 250 /* ForInStatement */:\n return visitForInStatement(node);\n case 251 /* ForOfStatement */:\n return visitForOfStatement(node);\n case 247 /* DoStatement */:\n return visitDoStatement(node);\n case 248 /* WhileStatement */:\n return visitWhileStatement(node);\n case 257 /* LabeledStatement */:\n return visitLabeledStatement(node);\n case 255 /* WithStatement */:\n return visitWithStatement(node);\n case 246 /* IfStatement */:\n return visitIfStatement(node);\n case 256 /* SwitchStatement */:\n return visitSwitchStatement(node);\n case 270 /* CaseBlock */:\n return visitCaseBlock(node);\n case 297 /* CaseClause */:\n return visitCaseClause(node);\n case 298 /* DefaultClause */:\n return visitDefaultClause(node);\n case 259 /* TryStatement */:\n return visitTryStatement(node);\n case 300 /* CatchClause */:\n return visitCatchClause(node);\n case 242 /* Block */:\n return visitBlock(node);\n default:\n return visitor(node);\n }\n }\n function visitorWorker(node, valueIsDiscarded) {\n if (!(node.transformFlags & (8388608 /* ContainsDynamicImport */ | 4096 /* ContainsDestructuringAssignment */ | 268435456 /* ContainsUpdateExpressionForIdentifier */)) && !(importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim.length)) {\n return node;\n }\n switch (node.kind) {\n case 249 /* ForStatement */:\n return visitForStatement(\n node,\n /*isTopLevel*/\n false\n );\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(node, valueIsDiscarded);\n case 356 /* PartiallyEmittedExpression */:\n return visitPartiallyEmittedExpression(node, valueIsDiscarded);\n case 214 /* CallExpression */:\n const needsRewrite = node === firstOrUndefined(importsAndRequiresToRewriteOrShim);\n if (needsRewrite) {\n importsAndRequiresToRewriteOrShim.shift();\n }\n if (isImportCall(node) && host.shouldTransformImportCall(currentSourceFile)) {\n return visitImportCallExpression(node, needsRewrite);\n } else if (needsRewrite) {\n return shimOrRewriteImportOrRequireCall(node);\n }\n break;\n case 227 /* BinaryExpression */:\n if (isDestructuringAssignment(node)) {\n return visitDestructuringAssignment(node, valueIsDiscarded);\n }\n break;\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPreOrPostfixUnaryExpression(node, valueIsDiscarded);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n return visitorWorker(\n node,\n /*valueIsDiscarded*/\n false\n );\n }\n function discardedValueVisitor(node) {\n return visitorWorker(\n node,\n /*valueIsDiscarded*/\n true\n );\n }\n function destructuringNeedsFlattening(node) {\n if (isObjectLiteralExpression(node)) {\n for (const elem of node.properties) {\n switch (elem.kind) {\n case 304 /* PropertyAssignment */:\n if (destructuringNeedsFlattening(elem.initializer)) {\n return true;\n }\n break;\n case 305 /* ShorthandPropertyAssignment */:\n if (destructuringNeedsFlattening(elem.name)) {\n return true;\n }\n break;\n case 306 /* SpreadAssignment */:\n if (destructuringNeedsFlattening(elem.expression)) {\n return true;\n }\n break;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return false;\n default:\n Debug.assertNever(elem, \"Unhandled object member kind\");\n }\n }\n } else if (isArrayLiteralExpression(node)) {\n for (const elem of node.elements) {\n if (isSpreadElement(elem)) {\n if (destructuringNeedsFlattening(elem.expression)) {\n return true;\n }\n } else if (destructuringNeedsFlattening(elem)) {\n return true;\n }\n }\n } else if (isIdentifier(node)) {\n return length(getExports(node)) > (isExportName(node) ? 1 : 0);\n }\n return false;\n }\n function visitDestructuringAssignment(node, valueIsDiscarded) {\n if (destructuringNeedsFlattening(node.left)) {\n return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, !valueIsDiscarded, createAllExportExpressions);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitForStatement(node, isTopLevel) {\n if (isTopLevel && node.initializer && isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n const exportStatements = appendExportsOfVariableDeclarationList(\n /*statements*/\n void 0,\n node.initializer,\n /*isForInOrOfInitializer*/\n false\n );\n if (exportStatements) {\n const statements = [];\n const varDeclList = visitNode(node.initializer, discardedValueVisitor, isVariableDeclarationList);\n const varStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n varDeclList\n );\n statements.push(varStatement);\n addRange(statements, exportStatements);\n const condition = visitNode(node.condition, visitor, isExpression);\n const incrementor = visitNode(node.incrementor, discardedValueVisitor, isExpression);\n const body = visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context);\n statements.push(factory2.updateForStatement(\n node,\n /*initializer*/\n void 0,\n condition,\n incrementor,\n body\n ));\n return statements;\n }\n }\n return factory2.updateForStatement(\n node,\n visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, discardedValueVisitor, isExpression),\n visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)\n );\n }\n function visitForInStatement(node) {\n if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n const exportStatements = appendExportsOfVariableDeclarationList(\n /*statements*/\n void 0,\n node.initializer,\n /*isForInOrOfInitializer*/\n true\n );\n if (some(exportStatements)) {\n const initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer);\n const expression = visitNode(node.expression, visitor, isExpression);\n const body = visitIterationBody(node.statement, topLevelNestedVisitor, context);\n const mergedBody = isBlock(body) ? factory2.updateBlock(body, [...exportStatements, ...body.statements]) : factory2.createBlock(\n [...exportStatements, body],\n /*multiLine*/\n true\n );\n return factory2.updateForInStatement(node, initializer, expression, mergedBody);\n }\n }\n return factory2.updateForInStatement(\n node,\n visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n }\n function visitForOfStatement(node) {\n if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n const exportStatements = appendExportsOfVariableDeclarationList(\n /*statements*/\n void 0,\n node.initializer,\n /*isForInOrOfInitializer*/\n true\n );\n const initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer);\n const expression = visitNode(node.expression, visitor, isExpression);\n let body = visitIterationBody(node.statement, topLevelNestedVisitor, context);\n if (some(exportStatements)) {\n body = isBlock(body) ? factory2.updateBlock(body, [...exportStatements, ...body.statements]) : factory2.createBlock(\n [...exportStatements, body],\n /*multiLine*/\n true\n );\n }\n return factory2.updateForOfStatement(node, node.awaitModifier, initializer, expression, body);\n }\n return factory2.updateForOfStatement(\n node,\n node.awaitModifier,\n visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n }\n function visitDoStatement(node) {\n return factory2.updateDoStatement(\n node,\n visitIterationBody(node.statement, topLevelNestedVisitor, context),\n visitNode(node.expression, visitor, isExpression)\n );\n }\n function visitWhileStatement(node) {\n return factory2.updateWhileStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n }\n function visitLabeledStatement(node) {\n return factory2.updateLabeledStatement(\n node,\n node.label,\n visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? setTextRange(factory2.createEmptyStatement(), node.statement)\n );\n }\n function visitWithStatement(node) {\n return factory2.updateWithStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))\n );\n }\n function visitIfStatement(node) {\n return factory2.updateIfStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createBlock([]),\n visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)\n );\n }\n function visitSwitchStatement(node) {\n return factory2.updateSwitchStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))\n );\n }\n function visitCaseBlock(node) {\n return factory2.updateCaseBlock(\n node,\n visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)\n );\n }\n function visitCaseClause(node) {\n return factory2.updateCaseClause(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitNodes2(node.statements, topLevelNestedVisitor, isStatement)\n );\n }\n function visitDefaultClause(node) {\n return visitEachChild(node, topLevelNestedVisitor, context);\n }\n function visitTryStatement(node) {\n return visitEachChild(node, topLevelNestedVisitor, context);\n }\n function visitCatchClause(node) {\n return factory2.updateCatchClause(\n node,\n node.variableDeclaration,\n Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))\n );\n }\n function visitBlock(node) {\n node = visitEachChild(node, topLevelNestedVisitor, context);\n return node;\n }\n function visitExpressionStatement(node) {\n return factory2.updateExpressionStatement(\n node,\n visitNode(node.expression, discardedValueVisitor, isExpression)\n );\n }\n function visitParenthesizedExpression(node, valueIsDiscarded) {\n return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n }\n function visitPartiallyEmittedExpression(node, valueIsDiscarded) {\n return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n }\n function visitPreOrPostfixUnaryExpression(node, valueIsDiscarded) {\n if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) {\n const exportedNames = getExports(node.operand);\n if (exportedNames) {\n let temp;\n let expression = visitNode(node.operand, visitor, isExpression);\n if (isPrefixUnaryExpression(node)) {\n expression = factory2.updatePrefixUnaryExpression(node, expression);\n } else {\n expression = factory2.updatePostfixUnaryExpression(node, expression);\n if (!valueIsDiscarded) {\n temp = factory2.createTempVariable(hoistVariableDeclaration);\n expression = factory2.createAssignment(temp, expression);\n setTextRange(expression, node);\n }\n expression = factory2.createComma(expression, factory2.cloneNode(node.operand));\n setTextRange(expression, node);\n }\n for (const exportName of exportedNames) {\n noSubstitution[getNodeId(expression)] = true;\n expression = createExportExpression(exportName, expression);\n setTextRange(expression, node);\n }\n if (temp) {\n noSubstitution[getNodeId(expression)] = true;\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function shimOrRewriteImportOrRequireCall(node) {\n return factory2.updateCallExpression(\n node,\n node.expression,\n /*typeArguments*/\n void 0,\n visitNodes2(node.arguments, (arg) => {\n if (arg === node.arguments[0]) {\n return isStringLiteralLike(arg) ? rewriteModuleSpecifier(arg, compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(arg);\n }\n return visitor(arg);\n }, isExpression)\n );\n }\n function visitImportCallExpression(node, rewriteOrShim) {\n if (moduleKind === 0 /* None */ && languageVersion >= 7 /* ES2020 */) {\n return visitEachChild(node, visitor, context);\n }\n const externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions);\n const firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression);\n const argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument && rewriteOrShim ? isStringLiteral(firstArgument) ? rewriteModuleSpecifier(firstArgument, compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(firstArgument) : firstArgument;\n const containsLexicalThis = !!(node.transformFlags & 16384 /* ContainsLexicalThis */);\n switch (compilerOptions.module) {\n case 2 /* AMD */:\n return createImportCallExpressionAMD(argument, containsLexicalThis);\n case 3 /* UMD */:\n return createImportCallExpressionUMD(argument ?? factory2.createVoidZero(), containsLexicalThis);\n case 1 /* CommonJS */:\n default:\n return createImportCallExpressionCommonJS(argument);\n }\n }\n function createImportCallExpressionUMD(arg, containsLexicalThis) {\n needUMDDynamicImportHelper = true;\n if (isSimpleCopiableExpression(arg)) {\n const argClone = isGeneratedIdentifier(arg) ? arg : isStringLiteral(arg) ? factory2.createStringLiteralFromNode(arg) : setEmitFlags(setTextRange(factory2.cloneNode(arg), arg), 3072 /* NoComments */);\n return factory2.createConditionalExpression(\n /*condition*/\n factory2.createIdentifier(\"__syncRequire\"),\n /*questionToken*/\n void 0,\n /*whenTrue*/\n createImportCallExpressionCommonJS(arg),\n /*colonToken*/\n void 0,\n /*whenFalse*/\n createImportCallExpressionAMD(argClone, containsLexicalThis)\n );\n } else {\n const temp = factory2.createTempVariable(hoistVariableDeclaration);\n return factory2.createComma(\n factory2.createAssignment(temp, arg),\n factory2.createConditionalExpression(\n /*condition*/\n factory2.createIdentifier(\"__syncRequire\"),\n /*questionToken*/\n void 0,\n /*whenTrue*/\n createImportCallExpressionCommonJS(\n temp,\n /*isInlineable*/\n true\n ),\n /*colonToken*/\n void 0,\n /*whenFalse*/\n createImportCallExpressionAMD(temp, containsLexicalThis)\n )\n );\n }\n }\n function createImportCallExpressionAMD(arg, containsLexicalThis) {\n const resolve = factory2.createUniqueName(\"resolve\");\n const reject = factory2.createUniqueName(\"reject\");\n const parameters = [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n resolve\n ),\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n reject\n )\n ];\n const body = factory2.createBlock([\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n [factory2.createArrayLiteralExpression([arg || factory2.createOmittedExpression()]), resolve, reject]\n )\n )\n ]);\n let func;\n if (languageVersion >= 2 /* ES2015 */) {\n func = factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n body\n );\n } else {\n func = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n );\n if (containsLexicalThis) {\n setEmitFlags(func, 16 /* CapturesThis */);\n }\n }\n const promise = factory2.createNewExpression(\n factory2.createIdentifier(\"Promise\"),\n /*typeArguments*/\n void 0,\n [func]\n );\n if (getESModuleInterop(compilerOptions)) {\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(promise, factory2.createIdentifier(\"then\")),\n /*typeArguments*/\n void 0,\n [emitHelpers().createImportStarCallbackHelper()]\n );\n }\n return promise;\n }\n function createImportCallExpressionCommonJS(arg, isInlineable) {\n const needSyncEval = arg && !isSimpleInlineableExpression(arg) && !isInlineable;\n const promiseResolveCall = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Promise\"), \"resolve\"),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n needSyncEval ? languageVersion >= 2 /* ES2015 */ ? [\n factory2.createTemplateExpression(factory2.createTemplateHead(\"\"), [\n factory2.createTemplateSpan(arg, factory2.createTemplateTail(\"\"))\n ])\n ] : [\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createStringLiteral(\"\"), \"concat\"),\n /*typeArguments*/\n void 0,\n [arg]\n )\n ] : []\n );\n let requireCall = factory2.createCallExpression(\n factory2.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n needSyncEval ? [factory2.createIdentifier(\"s\")] : arg ? [arg] : []\n );\n if (getESModuleInterop(compilerOptions)) {\n requireCall = emitHelpers().createImportStarHelper(requireCall);\n }\n const parameters = needSyncEval ? [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n \"s\"\n )\n ] : [];\n let func;\n if (languageVersion >= 2 /* ES2015 */) {\n func = factory2.createArrowFunction(\n /*modifiers*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n parameters,\n /*type*/\n void 0,\n /*equalsGreaterThanToken*/\n void 0,\n requireCall\n );\n } else {\n func = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n parameters,\n /*type*/\n void 0,\n factory2.createBlock([factory2.createReturnStatement(requireCall)])\n );\n }\n const downleveledImport = factory2.createCallExpression(\n factory2.createPropertyAccessExpression(promiseResolveCall, \"then\"),\n /*typeArguments*/\n void 0,\n [func]\n );\n return downleveledImport;\n }\n function getHelperExpressionForExport(node, innerExpr) {\n if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) {\n return innerExpr;\n }\n if (getExportNeedsImportStarHelper(node)) {\n return emitHelpers().createImportStarHelper(innerExpr);\n }\n return innerExpr;\n }\n function getHelperExpressionForImport(node, innerExpr) {\n if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) {\n return innerExpr;\n }\n if (getImportNeedsImportStarHelper(node)) {\n return emitHelpers().createImportStarHelper(innerExpr);\n }\n if (getImportNeedsImportDefaultHelper(node)) {\n return emitHelpers().createImportDefaultHelper(innerExpr);\n }\n return innerExpr;\n }\n function visitTopLevelImportDeclaration(node) {\n let statements;\n const namespaceDeclaration = getNamespaceDeclarationNode(node);\n if (moduleKind !== 2 /* AMD */) {\n if (!node.importClause) {\n return setOriginalNode(setTextRange(factory2.createExpressionStatement(createRequireCall2(node)), node), node);\n } else {\n const variables = [];\n if (namespaceDeclaration && !isDefaultImport(node)) {\n variables.push(\n factory2.createVariableDeclaration(\n factory2.cloneNode(namespaceDeclaration.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n getHelperExpressionForImport(node, createRequireCall2(node))\n )\n );\n } else {\n variables.push(\n factory2.createVariableDeclaration(\n factory2.getGeneratedNameForNode(node),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n getHelperExpressionForImport(node, createRequireCall2(node))\n )\n );\n if (namespaceDeclaration && isDefaultImport(node)) {\n variables.push(\n factory2.createVariableDeclaration(\n factory2.cloneNode(namespaceDeclaration.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.getGeneratedNameForNode(node)\n )\n );\n }\n }\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n variables,\n languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n )\n ),\n /*location*/\n node\n ),\n /*original*/\n node\n )\n );\n }\n } else if (namespaceDeclaration && isDefaultImport(node)) {\n statements = append(\n statements,\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [\n setOriginalNode(\n setTextRange(\n factory2.createVariableDeclaration(\n factory2.cloneNode(namespaceDeclaration.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.getGeneratedNameForNode(node)\n ),\n /*location*/\n node\n ),\n /*original*/\n node\n )\n ],\n languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n )\n )\n );\n }\n statements = appendExportsOfImportDeclaration(statements, node);\n return singleOrMany(statements);\n }\n function createRequireCall2(importNode) {\n const moduleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions);\n const args = [];\n if (moduleName) {\n args.push(rewriteModuleSpecifier(moduleName, compilerOptions));\n }\n return factory2.createCallExpression(\n factory2.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n args\n );\n }\n function visitTopLevelImportEqualsDeclaration(node) {\n Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n let statements;\n if (moduleKind !== 2 /* AMD */) {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createExpressionStatement(\n createExportExpression(\n node.name,\n createRequireCall2(node)\n )\n ),\n node\n ),\n node\n )\n );\n } else {\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [\n factory2.createVariableDeclaration(\n factory2.cloneNode(node.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n createRequireCall2(node)\n )\n ],\n /*flags*/\n languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n )\n ),\n node\n ),\n node\n )\n );\n }\n } else {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createExpressionStatement(\n createExportExpression(factory2.getExportName(node), factory2.getLocalName(node))\n ),\n node\n ),\n node\n )\n );\n }\n }\n statements = appendExportsOfImportEqualsDeclaration(statements, node);\n return singleOrMany(statements);\n }\n function visitTopLevelExportDeclaration(node) {\n if (!node.moduleSpecifier) {\n return void 0;\n }\n const generatedName = factory2.getGeneratedNameForNode(node);\n if (node.exportClause && isNamedExports(node.exportClause)) {\n const statements = [];\n if (moduleKind !== 2 /* AMD */) {\n statements.push(\n setOriginalNode(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n generatedName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n createRequireCall2(node)\n )\n ])\n ),\n /*location*/\n node\n ),\n /* original */\n node\n )\n );\n }\n for (const specifier of node.exportClause.elements) {\n const specifierName = specifier.propertyName || specifier.name;\n const exportNeedsImportDefault = !!getESModuleInterop(compilerOptions) && !(getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) && moduleExportNameIsDefault(specifierName);\n const target = exportNeedsImportDefault ? emitHelpers().createImportDefaultHelper(generatedName) : generatedName;\n const exportedValue = specifierName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, specifierName) : factory2.createPropertyAccessExpression(target, specifierName);\n statements.push(\n setOriginalNode(\n setTextRange(\n factory2.createExpressionStatement(\n createExportExpression(\n specifier.name.kind === 11 /* StringLiteral */ ? factory2.cloneNode(specifier.name) : factory2.getExportName(specifier),\n exportedValue,\n /*location*/\n void 0,\n /*liveBinding*/\n true\n )\n ),\n specifier\n ),\n specifier\n )\n );\n }\n return singleOrMany(statements);\n } else if (node.exportClause) {\n const statements = [];\n statements.push(\n setOriginalNode(\n setTextRange(\n factory2.createExpressionStatement(\n createExportExpression(\n factory2.cloneNode(node.exportClause.name),\n getHelperExpressionForExport(\n node,\n moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : isExportNamespaceAsDefaultDeclaration(node) ? generatedName : node.exportClause.name.kind === 11 /* StringLiteral */ ? generatedName : factory2.createIdentifier(idText(node.exportClause.name))\n )\n )\n ),\n node\n ),\n node\n )\n );\n return singleOrMany(statements);\n } else {\n return setOriginalNode(\n setTextRange(\n factory2.createExpressionStatement(\n emitHelpers().createExportStarHelper(moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : generatedName)\n ),\n node\n ),\n node\n );\n }\n }\n function visitTopLevelExportAssignment(node) {\n if (node.isExportEquals) {\n return void 0;\n }\n return createExportStatement(\n factory2.createIdentifier(\"default\"),\n visitNode(node.expression, visitor, isExpression),\n /*location*/\n node,\n /*allowComments*/\n true\n );\n }\n function visitFunctionDeclaration(node) {\n let statements;\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createFunctionDeclaration(\n visitNodes2(node.modifiers, modifierVisitor, isModifier),\n node.asteriskToken,\n factory2.getDeclarationName(\n node,\n /*allowComments*/\n true,\n /*allowSourceMaps*/\n true\n ),\n /*typeParameters*/\n void 0,\n visitNodes2(node.parameters, visitor, isParameter),\n /*type*/\n void 0,\n visitEachChild(node.body, visitor, context)\n ),\n /*location*/\n node\n ),\n /*original*/\n node\n )\n );\n } else {\n statements = append(statements, visitEachChild(node, visitor, context));\n }\n return singleOrMany(statements);\n }\n function visitClassDeclaration(node) {\n let statements;\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createClassDeclaration(\n visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n factory2.getDeclarationName(\n node,\n /*allowComments*/\n true,\n /*allowSourceMaps*/\n true\n ),\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n visitNodes2(node.members, visitor, isClassElement)\n ),\n node\n ),\n node\n )\n );\n } else {\n statements = append(statements, visitEachChild(node, visitor, context));\n }\n statements = appendExportsOfHoistedDeclaration(statements, node);\n return singleOrMany(statements);\n }\n function visitVariableStatement(node) {\n let statements;\n let variables;\n let expressions;\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n let modifiers;\n let removeCommentsOnExpressions = false;\n for (const variable of node.declarationList.declarations) {\n if (isIdentifier(variable.name) && isLocalName(variable.name)) {\n if (!modifiers) {\n modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n }\n if (variable.initializer) {\n const updatedVariable = factory2.updateVariableDeclaration(\n variable,\n variable.name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n createExportExpression(\n variable.name,\n visitNode(variable.initializer, visitor, isExpression)\n )\n );\n variables = append(variables, updatedVariable);\n } else {\n variables = append(variables, variable);\n }\n } else if (variable.initializer) {\n if (!isBindingPattern(variable.name) && (isArrowFunction(variable.initializer) || isFunctionExpression(variable.initializer) || isClassExpression(variable.initializer))) {\n const expression = factory2.createAssignment(\n setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"exports\"),\n variable.name\n ),\n /*location*/\n variable.name\n ),\n factory2.createIdentifier(getTextOfIdentifierOrLiteral(variable.name))\n );\n const updatedVariable = factory2.createVariableDeclaration(\n variable.name,\n variable.exclamationToken,\n variable.type,\n visitNode(variable.initializer, visitor, isExpression)\n );\n variables = append(variables, updatedVariable);\n expressions = append(expressions, expression);\n removeCommentsOnExpressions = true;\n } else {\n expressions = append(expressions, transformInitializedVariable(variable));\n }\n }\n }\n if (variables) {\n statements = append(statements, factory2.updateVariableStatement(node, modifiers, factory2.updateVariableDeclarationList(node.declarationList, variables)));\n }\n if (expressions) {\n const statement = setOriginalNode(setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node), node);\n if (removeCommentsOnExpressions) {\n removeAllComments(statement);\n }\n statements = append(statements, statement);\n }\n } else {\n statements = append(statements, visitEachChild(node, visitor, context));\n }\n statements = appendExportsOfVariableStatement(statements, node);\n return singleOrMany(statements);\n }\n function createAllExportExpressions(name, value, location) {\n const exportedNames = getExports(name);\n if (exportedNames) {\n let expression = isExportName(name) ? value : factory2.createAssignment(name, value);\n for (const exportName of exportedNames) {\n setEmitFlags(expression, 8 /* NoSubstitution */);\n expression = createExportExpression(\n exportName,\n expression,\n /*location*/\n location\n );\n }\n return expression;\n }\n return factory2.createAssignment(name, value);\n }\n function transformInitializedVariable(node) {\n if (isBindingPattern(node.name)) {\n return flattenDestructuringAssignment(\n visitNode(node, visitor, isInitializedVariable),\n visitor,\n context,\n 0 /* All */,\n /*needsValue*/\n false,\n createAllExportExpressions\n );\n } else {\n return factory2.createAssignment(\n setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"exports\"),\n node.name\n ),\n /*location*/\n node.name\n ),\n node.initializer ? visitNode(node.initializer, visitor, isExpression) : factory2.createVoidZero()\n );\n }\n }\n function appendExportsOfImportDeclaration(statements, decl) {\n if (currentModuleInfo.exportEquals) {\n return statements;\n }\n const importClause = decl.importClause;\n if (!importClause) {\n return statements;\n }\n const seen = new IdentifierNameMap();\n if (importClause.name) {\n statements = appendExportsOfDeclaration(statements, seen, importClause);\n }\n const namedBindings = importClause.namedBindings;\n if (namedBindings) {\n switch (namedBindings.kind) {\n case 275 /* NamespaceImport */:\n statements = appendExportsOfDeclaration(statements, seen, namedBindings);\n break;\n case 276 /* NamedImports */:\n for (const importBinding of namedBindings.elements) {\n statements = appendExportsOfDeclaration(\n statements,\n seen,\n importBinding,\n /*liveBinding*/\n true\n );\n }\n break;\n }\n }\n return statements;\n }\n function appendExportsOfImportEqualsDeclaration(statements, decl) {\n if (currentModuleInfo.exportEquals) {\n return statements;\n }\n return appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl);\n }\n function appendExportsOfVariableStatement(statements, node) {\n return appendExportsOfVariableDeclarationList(\n statements,\n node.declarationList,\n /*isForInOrOfInitializer*/\n false\n );\n }\n function appendExportsOfVariableDeclarationList(statements, node, isForInOrOfInitializer) {\n if (currentModuleInfo.exportEquals) {\n return statements;\n }\n for (const decl of node.declarations) {\n statements = appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer);\n }\n return statements;\n }\n function appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer) {\n if (currentModuleInfo.exportEquals) {\n return statements;\n }\n if (isBindingPattern(decl.name)) {\n for (const element of decl.name.elements) {\n if (!isOmittedExpression(element)) {\n statements = appendExportsOfBindingElement(statements, element, isForInOrOfInitializer);\n }\n }\n } else if (!isGeneratedIdentifier(decl.name) && (!isVariableDeclaration(decl) || decl.initializer || isForInOrOfInitializer)) {\n statements = appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl);\n }\n return statements;\n }\n function appendExportsOfHoistedDeclaration(statements, decl) {\n if (currentModuleInfo.exportEquals) {\n return statements;\n }\n const seen = new IdentifierNameMap();\n if (hasSyntacticModifier(decl, 32 /* Export */)) {\n const exportName = hasSyntacticModifier(decl, 2048 /* Default */) ? factory2.createIdentifier(\"default\") : factory2.getDeclarationName(decl);\n statements = appendExportStatement(\n statements,\n seen,\n exportName,\n factory2.getLocalName(decl),\n /*location*/\n decl\n );\n }\n if (decl.name) {\n statements = appendExportsOfDeclaration(statements, seen, decl);\n }\n return statements;\n }\n function appendExportsOfDeclaration(statements, seen, decl, liveBinding) {\n const name = factory2.getDeclarationName(decl);\n const exportSpecifiers = currentModuleInfo.exportSpecifiers.get(name);\n if (exportSpecifiers) {\n for (const exportSpecifier of exportSpecifiers) {\n statements = appendExportStatement(\n statements,\n seen,\n exportSpecifier.name,\n name,\n /*location*/\n exportSpecifier.name,\n /*allowComments*/\n void 0,\n liveBinding\n );\n }\n }\n return statements;\n }\n function appendExportStatement(statements, seen, exportName, expression, location, allowComments, liveBinding) {\n if (exportName.kind !== 11 /* StringLiteral */) {\n if (seen.has(exportName)) {\n return statements;\n }\n seen.set(exportName, true);\n }\n statements = append(statements, createExportStatement(exportName, expression, location, allowComments, liveBinding));\n return statements;\n }\n function createUnderscoreUnderscoreESModule() {\n const statement = factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"defineProperty\"),\n /*typeArguments*/\n void 0,\n [\n factory2.createIdentifier(\"exports\"),\n factory2.createStringLiteral(\"__esModule\"),\n factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"value\", factory2.createTrue())\n ])\n ]\n )\n );\n setEmitFlags(statement, 2097152 /* CustomPrologue */);\n return statement;\n }\n function createExportStatement(name, value, location, allowComments, liveBinding) {\n const statement = setTextRange(factory2.createExpressionStatement(createExportExpression(\n name,\n value,\n /*location*/\n void 0,\n liveBinding\n )), location);\n startOnNewLine(statement);\n if (!allowComments) {\n setEmitFlags(statement, 3072 /* NoComments */);\n }\n return statement;\n }\n function createExportExpression(name, value, location, liveBinding) {\n return setTextRange(\n liveBinding ? factory2.createCallExpression(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"Object\"),\n \"defineProperty\"\n ),\n /*typeArguments*/\n void 0,\n [\n factory2.createIdentifier(\"exports\"),\n factory2.createStringLiteralFromNode(name),\n factory2.createObjectLiteralExpression([\n factory2.createPropertyAssignment(\"enumerable\", factory2.createTrue()),\n factory2.createPropertyAssignment(\n \"get\",\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n [],\n /*type*/\n void 0,\n factory2.createBlock([factory2.createReturnStatement(value)])\n )\n )\n ])\n ]\n ) : factory2.createAssignment(\n name.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(\n factory2.createIdentifier(\"exports\"),\n factory2.cloneNode(name)\n ) : factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"exports\"),\n factory2.cloneNode(name)\n ),\n value\n ),\n location\n );\n }\n function modifierVisitor(node) {\n switch (node.kind) {\n case 95 /* ExportKeyword */:\n case 90 /* DefaultKeyword */:\n return void 0;\n }\n return node;\n }\n function onEmitNode(hint, node, emitCallback) {\n if (node.kind === 308 /* SourceFile */) {\n currentSourceFile = node;\n currentModuleInfo = moduleInfoMap[getOriginalNodeId(currentSourceFile)];\n previousOnEmitNode(hint, node, emitCallback);\n currentSourceFile = void 0;\n currentModuleInfo = void 0;\n } else {\n previousOnEmitNode(hint, node, emitCallback);\n }\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (node.id && noSubstitution[node.id]) {\n return node;\n }\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n } else if (isShorthandPropertyAssignment(node)) {\n return substituteShorthandPropertyAssignment(node);\n }\n return node;\n }\n function substituteShorthandPropertyAssignment(node) {\n const name = node.name;\n const exportedOrImportedName = substituteExpressionIdentifier(name);\n if (exportedOrImportedName !== name) {\n if (node.objectAssignmentInitializer) {\n const initializer = factory2.createAssignment(exportedOrImportedName, node.objectAssignmentInitializer);\n return setTextRange(factory2.createPropertyAssignment(name, initializer), node);\n }\n return setTextRange(factory2.createPropertyAssignment(name, exportedOrImportedName), node);\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n case 214 /* CallExpression */:\n return substituteCallExpression(node);\n case 216 /* TaggedTemplateExpression */:\n return substituteTaggedTemplateExpression(node);\n case 227 /* BinaryExpression */:\n return substituteBinaryExpression(node);\n }\n return node;\n }\n function substituteCallExpression(node) {\n if (isIdentifier(node.expression)) {\n const expression = substituteExpressionIdentifier(node.expression);\n noSubstitution[getNodeId(expression)] = true;\n if (!isIdentifier(expression) && !(getEmitFlags(node.expression) & 8192 /* HelperName */)) {\n return addInternalEmitFlags(\n factory2.updateCallExpression(\n node,\n expression,\n /*typeArguments*/\n void 0,\n node.arguments\n ),\n 16 /* IndirectCall */\n );\n }\n }\n return node;\n }\n function substituteTaggedTemplateExpression(node) {\n if (isIdentifier(node.tag)) {\n const tag = substituteExpressionIdentifier(node.tag);\n noSubstitution[getNodeId(tag)] = true;\n if (!isIdentifier(tag) && !(getEmitFlags(node.tag) & 8192 /* HelperName */)) {\n return addInternalEmitFlags(\n factory2.updateTaggedTemplateExpression(\n node,\n tag,\n /*typeArguments*/\n void 0,\n node.template\n ),\n 16 /* IndirectCall */\n );\n }\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n var _a, _b;\n if (getEmitFlags(node) & 8192 /* HelperName */) {\n const externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile);\n if (externalHelpersModuleName) {\n return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n }\n return node;\n } else if (!(isGeneratedIdentifier(node) && !(node.emitNode.autoGenerate.flags & 64 /* AllowNameSubstitution */)) && !isLocalName(node)) {\n const exportContainer = resolver.getReferencedExportContainer(node, isExportName(node));\n if (exportContainer && exportContainer.kind === 308 /* SourceFile */) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"exports\"),\n factory2.cloneNode(node)\n ),\n /*location*/\n node\n );\n }\n const importDeclaration = resolver.getReferencedImportDeclaration(node);\n if (importDeclaration) {\n if (isImportClause(importDeclaration)) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.getGeneratedNameForNode(importDeclaration.parent),\n factory2.createIdentifier(\"default\")\n ),\n /*location*/\n node\n );\n } else if (isImportSpecifier(importDeclaration)) {\n const name = importDeclaration.propertyName || importDeclaration.name;\n const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n return setTextRange(\n name.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(name)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(name)),\n /*location*/\n node\n );\n }\n }\n }\n return node;\n }\n function substituteBinaryExpression(node) {\n if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) {\n const exportedNames = getExports(node.left);\n if (exportedNames) {\n let expression = node;\n for (const exportName of exportedNames) {\n noSubstitution[getNodeId(expression)] = true;\n expression = createExportExpression(\n exportName,\n expression,\n /*location*/\n node\n );\n }\n return expression;\n }\n }\n return node;\n }\n function getExports(name) {\n if (!isGeneratedIdentifier(name)) {\n const importDeclaration = resolver.getReferencedImportDeclaration(name);\n if (importDeclaration) {\n return currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(importDeclaration)];\n }\n const bindingsSet = /* @__PURE__ */ new Set();\n const declarations = resolver.getReferencedValueDeclarations(name);\n if (declarations) {\n for (const declaration of declarations) {\n const bindings = currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(declaration)];\n if (bindings) {\n for (const binding of bindings) {\n bindingsSet.add(binding);\n }\n }\n }\n if (bindingsSet.size) {\n return arrayFrom(bindingsSet);\n }\n }\n } else if (isFileLevelReservedGeneratedIdentifier(name)) {\n const exportSpecifiers = currentModuleInfo == null ? void 0 : currentModuleInfo.exportSpecifiers.get(name);\n if (exportSpecifiers) {\n const exportedNames = [];\n for (const exportSpecifier of exportSpecifiers) {\n exportedNames.push(exportSpecifier.name);\n }\n return exportedNames;\n }\n }\n }\n}\nvar dynamicImportUMDHelper = {\n name: \"typescript:dynamicimport-sync-require\",\n scoped: true,\n text: `\n var __syncRequire = typeof module === \"object\" && typeof module.exports === \"object\";`\n};\n\n// src/compiler/transformers/module/system.ts\nfunction transformSystemModule(context) {\n const {\n factory: factory2,\n startLexicalEnvironment,\n endLexicalEnvironment,\n hoistVariableDeclaration\n } = context;\n const compilerOptions = context.getCompilerOptions();\n const resolver = context.getEmitResolver();\n const host = context.getEmitHost();\n const previousOnSubstituteNode = context.onSubstituteNode;\n const previousOnEmitNode = context.onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.enableSubstitution(80 /* Identifier */);\n context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n context.enableSubstitution(227 /* BinaryExpression */);\n context.enableSubstitution(237 /* MetaProperty */);\n context.enableEmitNotification(308 /* SourceFile */);\n const moduleInfoMap = [];\n const exportFunctionsMap = [];\n const noSubstitutionMap = [];\n const contextObjectMap = [];\n let currentSourceFile;\n let moduleInfo;\n let exportFunction;\n let contextObject;\n let hoistedStatements;\n let enclosingBlockScopedContainer;\n let noSubstitution;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */)) {\n return node;\n }\n const id = getOriginalNodeId(node);\n currentSourceFile = node;\n enclosingBlockScopedContainer = node;\n moduleInfo = moduleInfoMap[id] = collectExternalModuleInfo(context, node);\n exportFunction = factory2.createUniqueName(\"exports\");\n exportFunctionsMap[id] = exportFunction;\n contextObject = contextObjectMap[id] = factory2.createUniqueName(\"context\");\n const dependencyGroups = collectDependencyGroups(moduleInfo.externalImports);\n const moduleBodyBlock = createSystemModuleBody(node, dependencyGroups);\n const moduleBodyFunction = factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n exportFunction\n ),\n factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n contextObject\n )\n ],\n /*type*/\n void 0,\n moduleBodyBlock\n );\n const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n const dependencies = factory2.createArrayLiteralExpression(map(dependencyGroups, (dependencyGroup) => dependencyGroup.name));\n const updated = setEmitFlags(\n factory2.updateSourceFile(\n node,\n setTextRange(\n factory2.createNodeArray([\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(factory2.createIdentifier(\"System\"), \"register\"),\n /*typeArguments*/\n void 0,\n moduleName ? [moduleName, dependencies, moduleBodyFunction] : [dependencies, moduleBodyFunction]\n )\n )\n ]),\n node.statements\n )\n ),\n 2048 /* NoTrailingComments */\n );\n if (!compilerOptions.outFile) {\n moveEmitHelpers(updated, moduleBodyBlock, (helper) => !helper.scoped);\n }\n if (noSubstitution) {\n noSubstitutionMap[id] = noSubstitution;\n noSubstitution = void 0;\n }\n currentSourceFile = void 0;\n moduleInfo = void 0;\n exportFunction = void 0;\n contextObject = void 0;\n hoistedStatements = void 0;\n enclosingBlockScopedContainer = void 0;\n return updated;\n }\n function collectDependencyGroups(externalImports) {\n const groupIndices = /* @__PURE__ */ new Map();\n const dependencyGroups = [];\n for (const externalImport of externalImports) {\n const externalModuleName = getExternalModuleNameLiteral(factory2, externalImport, currentSourceFile, host, resolver, compilerOptions);\n if (externalModuleName) {\n const text = externalModuleName.text;\n const groupIndex = groupIndices.get(text);\n if (groupIndex !== void 0) {\n dependencyGroups[groupIndex].externalImports.push(externalImport);\n } else {\n groupIndices.set(text, dependencyGroups.length);\n dependencyGroups.push({\n name: externalModuleName,\n externalImports: [externalImport]\n });\n }\n }\n }\n return dependencyGroups;\n }\n function createSystemModuleBody(node, dependencyGroups) {\n const statements = [];\n startLexicalEnvironment();\n const ensureUseStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") || isExternalModule(currentSourceFile);\n const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict, topLevelVisitor);\n statements.push(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n \"__moduleName\",\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createLogicalAnd(\n contextObject,\n factory2.createPropertyAccessExpression(contextObject, \"id\")\n )\n )\n ])\n )\n );\n visitNode(moduleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement);\n const executeStatements = visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset);\n addRange(statements, hoistedStatements);\n insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n const exportStarFunction = addExportStarIfNeeded(statements);\n const modifiers = node.transformFlags & 2097152 /* ContainsAwait */ ? factory2.createModifiersFromModifierFlags(1024 /* Async */) : void 0;\n const moduleObject = factory2.createObjectLiteralExpression(\n [\n factory2.createPropertyAssignment(\"setters\", createSettersArray(exportStarFunction, dependencyGroups)),\n factory2.createPropertyAssignment(\n \"execute\",\n factory2.createFunctionExpression(\n modifiers,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n /*parameters*/\n [],\n /*type*/\n void 0,\n factory2.createBlock(\n executeStatements,\n /*multiLine*/\n true\n )\n )\n )\n ],\n /*multiLine*/\n true\n );\n statements.push(factory2.createReturnStatement(moduleObject));\n return factory2.createBlock(\n statements,\n /*multiLine*/\n true\n );\n }\n function addExportStarIfNeeded(statements) {\n if (!moduleInfo.hasExportStarsToExportValues) {\n return;\n }\n if (!some(moduleInfo.exportedNames) && moduleInfo.exportedFunctions.size === 0 && moduleInfo.exportSpecifiers.size === 0) {\n let hasExportDeclarationWithExportClause = false;\n for (const externalImport of moduleInfo.externalImports) {\n if (externalImport.kind === 279 /* ExportDeclaration */ && externalImport.exportClause) {\n hasExportDeclarationWithExportClause = true;\n break;\n }\n }\n if (!hasExportDeclarationWithExportClause) {\n const exportStarFunction2 = createExportStarFunction(\n /*localNames*/\n void 0\n );\n statements.push(exportStarFunction2);\n return exportStarFunction2.name;\n }\n }\n const exportedNames = [];\n if (moduleInfo.exportedNames) {\n for (const exportedLocalName of moduleInfo.exportedNames) {\n if (moduleExportNameIsDefault(exportedLocalName)) {\n continue;\n }\n exportedNames.push(\n factory2.createPropertyAssignment(\n factory2.createStringLiteralFromNode(exportedLocalName),\n factory2.createTrue()\n )\n );\n }\n }\n for (const f of moduleInfo.exportedFunctions) {\n if (hasSyntacticModifier(f, 2048 /* Default */)) {\n continue;\n }\n Debug.assert(!!f.name);\n exportedNames.push(\n factory2.createPropertyAssignment(\n factory2.createStringLiteralFromNode(f.name),\n factory2.createTrue()\n )\n );\n }\n const exportedNamesStorageRef = factory2.createUniqueName(\"exportedNames\");\n statements.push(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n exportedNamesStorageRef,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createObjectLiteralExpression(\n exportedNames,\n /*multiLine*/\n true\n )\n )\n ])\n )\n );\n const exportStarFunction = createExportStarFunction(exportedNamesStorageRef);\n statements.push(exportStarFunction);\n return exportStarFunction.name;\n }\n function createExportStarFunction(localNames) {\n const exportStarFunction = factory2.createUniqueName(\"exportStar\");\n const m = factory2.createIdentifier(\"m\");\n const n = factory2.createIdentifier(\"n\");\n const exports2 = factory2.createIdentifier(\"exports\");\n let condition = factory2.createStrictInequality(n, factory2.createStringLiteral(\"default\"));\n if (localNames) {\n condition = factory2.createLogicalAnd(\n condition,\n factory2.createLogicalNot(\n factory2.createCallExpression(\n factory2.createPropertyAccessExpression(localNames, \"hasOwnProperty\"),\n /*typeArguments*/\n void 0,\n [n]\n )\n )\n );\n }\n return factory2.createFunctionDeclaration(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n exportStarFunction,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n m\n )],\n /*type*/\n void 0,\n factory2.createBlock(\n [\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(\n exports2,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createObjectLiteralExpression([])\n )\n ])\n ),\n factory2.createForInStatement(\n factory2.createVariableDeclarationList([\n factory2.createVariableDeclaration(n)\n ]),\n m,\n factory2.createBlock([\n setEmitFlags(\n factory2.createIfStatement(\n condition,\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createElementAccessExpression(exports2, n),\n factory2.createElementAccessExpression(m, n)\n )\n )\n ),\n 1 /* SingleLine */\n )\n ])\n ),\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n exportFunction,\n /*typeArguments*/\n void 0,\n [exports2]\n )\n )\n ],\n /*multiLine*/\n true\n )\n );\n }\n function createSettersArray(exportStarFunction, dependencyGroups) {\n const setters = [];\n for (const group2 of dependencyGroups) {\n const localName = forEach(group2.externalImports, (i) => getLocalNameForExternalImport(factory2, i, currentSourceFile));\n const parameterName = localName ? factory2.getGeneratedNameForNode(localName) : factory2.createUniqueName(\"\");\n const statements = [];\n for (const entry of group2.externalImports) {\n const importVariableName = getLocalNameForExternalImport(factory2, entry, currentSourceFile);\n switch (entry.kind) {\n case 273 /* ImportDeclaration */:\n if (!entry.importClause) {\n break;\n }\n // falls through\n case 272 /* ImportEqualsDeclaration */:\n Debug.assert(importVariableName !== void 0);\n statements.push(\n factory2.createExpressionStatement(\n factory2.createAssignment(importVariableName, parameterName)\n )\n );\n if (hasSyntacticModifier(entry, 32 /* Export */)) {\n statements.push(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n exportFunction,\n /*typeArguments*/\n void 0,\n [\n factory2.createStringLiteral(idText(importVariableName)),\n parameterName\n ]\n )\n )\n );\n }\n break;\n case 279 /* ExportDeclaration */:\n Debug.assert(importVariableName !== void 0);\n if (entry.exportClause) {\n if (isNamedExports(entry.exportClause)) {\n const properties = [];\n for (const e of entry.exportClause.elements) {\n properties.push(\n factory2.createPropertyAssignment(\n factory2.createStringLiteral(moduleExportNameTextUnescaped(e.name)),\n factory2.createElementAccessExpression(\n parameterName,\n factory2.createStringLiteral(moduleExportNameTextUnescaped(e.propertyName || e.name))\n )\n )\n );\n }\n statements.push(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n exportFunction,\n /*typeArguments*/\n void 0,\n [factory2.createObjectLiteralExpression(\n properties,\n /*multiLine*/\n true\n )]\n )\n )\n );\n } else {\n statements.push(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n exportFunction,\n /*typeArguments*/\n void 0,\n [\n factory2.createStringLiteral(moduleExportNameTextUnescaped(entry.exportClause.name)),\n parameterName\n ]\n )\n )\n );\n }\n } else {\n statements.push(\n factory2.createExpressionStatement(\n factory2.createCallExpression(\n exportStarFunction,\n /*typeArguments*/\n void 0,\n [parameterName]\n )\n )\n );\n }\n break;\n }\n }\n setters.push(\n factory2.createFunctionExpression(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n /*name*/\n void 0,\n /*typeParameters*/\n void 0,\n [factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n parameterName\n )],\n /*type*/\n void 0,\n factory2.createBlock(\n statements,\n /*multiLine*/\n true\n )\n )\n );\n }\n return factory2.createArrayLiteralExpression(\n setters,\n /*multiLine*/\n true\n );\n }\n function topLevelVisitor(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return visitImportDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return visitImportEqualsDeclaration(node);\n case 279 /* ExportDeclaration */:\n return visitExportDeclaration(node);\n case 278 /* ExportAssignment */:\n return visitExportAssignment(node);\n default:\n return topLevelNestedVisitor(node);\n }\n }\n function visitImportDeclaration(node) {\n let statements;\n if (node.importClause) {\n hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile));\n }\n return singleOrMany(appendExportsOfImportDeclaration(statements, node));\n }\n function visitExportDeclaration(node) {\n Debug.assertIsDefined(node);\n return void 0;\n }\n function visitImportEqualsDeclaration(node) {\n Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n let statements;\n hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile));\n return singleOrMany(appendExportsOfImportEqualsDeclaration(statements, node));\n }\n function visitExportAssignment(node) {\n if (node.isExportEquals) {\n return void 0;\n }\n const expression = visitNode(node.expression, visitor, isExpression);\n return createExportStatement(\n factory2.createIdentifier(\"default\"),\n expression,\n /*allowComments*/\n true\n );\n }\n function visitFunctionDeclaration(node) {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n hoistedStatements = append(\n hoistedStatements,\n factory2.updateFunctionDeclaration(\n node,\n visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n node.asteriskToken,\n factory2.getDeclarationName(\n node,\n /*allowComments*/\n true,\n /*allowSourceMaps*/\n true\n ),\n /*typeParameters*/\n void 0,\n visitNodes2(node.parameters, visitor, isParameter),\n /*type*/\n void 0,\n visitNode(node.body, visitor, isBlock)\n )\n );\n } else {\n hoistedStatements = append(hoistedStatements, visitEachChild(node, visitor, context));\n }\n hoistedStatements = appendExportsOfHoistedDeclaration(hoistedStatements, node);\n return void 0;\n }\n function visitClassDeclaration(node) {\n let statements;\n const name = factory2.getLocalName(node);\n hoistVariableDeclaration(name);\n statements = append(\n statements,\n setTextRange(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n name,\n setTextRange(\n factory2.createClassExpression(\n visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n node.name,\n /*typeParameters*/\n void 0,\n visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n visitNodes2(node.members, visitor, isClassElement)\n ),\n node\n )\n )\n ),\n node\n )\n );\n statements = appendExportsOfHoistedDeclaration(statements, node);\n return singleOrMany(statements);\n }\n function visitVariableStatement(node) {\n if (!shouldHoistVariableDeclarationList(node.declarationList)) {\n return visitNode(node, visitor, isStatement);\n }\n let statements;\n if (isVarUsing(node.declarationList) || isVarAwaitUsing(node.declarationList)) {\n const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifierLike);\n const declarations = [];\n for (const variable of node.declarationList.declarations) {\n declarations.push(factory2.updateVariableDeclaration(\n variable,\n factory2.getGeneratedNameForNode(variable.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n transformInitializedVariable(\n variable,\n /*isExportedDeclaration*/\n false\n )\n ));\n }\n const declarationList = factory2.updateVariableDeclarationList(\n node.declarationList,\n declarations\n );\n statements = append(statements, factory2.updateVariableStatement(node, modifiers, declarationList));\n } else {\n let expressions;\n const isExportedDeclaration = hasSyntacticModifier(node, 32 /* Export */);\n for (const variable of node.declarationList.declarations) {\n if (variable.initializer) {\n expressions = append(expressions, transformInitializedVariable(variable, isExportedDeclaration));\n } else {\n hoistBindingElement(variable);\n }\n }\n if (expressions) {\n statements = append(statements, setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node));\n }\n }\n statements = appendExportsOfVariableStatement(\n statements,\n node,\n /*exportSelf*/\n false\n );\n return singleOrMany(statements);\n }\n function hoistBindingElement(node) {\n if (isBindingPattern(node.name)) {\n for (const element of node.name.elements) {\n if (!isOmittedExpression(element)) {\n hoistBindingElement(element);\n }\n }\n } else {\n hoistVariableDeclaration(factory2.cloneNode(node.name));\n }\n }\n function shouldHoistVariableDeclarationList(node) {\n return (getEmitFlags(node) & 4194304 /* NoHoisting */) === 0 && (enclosingBlockScopedContainer.kind === 308 /* SourceFile */ || (getOriginalNode(node).flags & 7 /* BlockScoped */) === 0);\n }\n function transformInitializedVariable(node, isExportedDeclaration) {\n const createAssignment = isExportedDeclaration ? createExportedVariableAssignment : createNonExportedVariableAssignment;\n return isBindingPattern(node.name) ? flattenDestructuringAssignment(\n node,\n visitor,\n context,\n 0 /* All */,\n /*needsValue*/\n false,\n createAssignment\n ) : node.initializer ? createAssignment(node.name, visitNode(node.initializer, visitor, isExpression)) : node.name;\n }\n function createExportedVariableAssignment(name, value, location) {\n return createVariableAssignment(\n name,\n value,\n location,\n /*isExportedDeclaration*/\n true\n );\n }\n function createNonExportedVariableAssignment(name, value, location) {\n return createVariableAssignment(\n name,\n value,\n location,\n /*isExportedDeclaration*/\n false\n );\n }\n function createVariableAssignment(name, value, location, isExportedDeclaration) {\n hoistVariableDeclaration(factory2.cloneNode(name));\n return isExportedDeclaration ? createExportExpression(name, preventSubstitution(setTextRange(factory2.createAssignment(name, value), location))) : preventSubstitution(setTextRange(factory2.createAssignment(name, value), location));\n }\n function appendExportsOfImportDeclaration(statements, decl) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n const importClause = decl.importClause;\n if (!importClause) {\n return statements;\n }\n if (importClause.name) {\n statements = appendExportsOfDeclaration(statements, importClause);\n }\n const namedBindings = importClause.namedBindings;\n if (namedBindings) {\n switch (namedBindings.kind) {\n case 275 /* NamespaceImport */:\n statements = appendExportsOfDeclaration(statements, namedBindings);\n break;\n case 276 /* NamedImports */:\n for (const importBinding of namedBindings.elements) {\n statements = appendExportsOfDeclaration(statements, importBinding);\n }\n break;\n }\n }\n return statements;\n }\n function appendExportsOfImportEqualsDeclaration(statements, decl) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n return appendExportsOfDeclaration(statements, decl);\n }\n function appendExportsOfVariableStatement(statements, node, exportSelf) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n for (const decl of node.declarationList.declarations) {\n if (decl.initializer || exportSelf) {\n statements = appendExportsOfBindingElement(statements, decl, exportSelf);\n }\n }\n return statements;\n }\n function appendExportsOfBindingElement(statements, decl, exportSelf) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n if (isBindingPattern(decl.name)) {\n for (const element of decl.name.elements) {\n if (!isOmittedExpression(element)) {\n statements = appendExportsOfBindingElement(statements, element, exportSelf);\n }\n }\n } else if (!isGeneratedIdentifier(decl.name)) {\n let excludeName;\n if (exportSelf) {\n statements = appendExportStatement(statements, decl.name, factory2.getLocalName(decl));\n excludeName = idText(decl.name);\n }\n statements = appendExportsOfDeclaration(statements, decl, excludeName);\n }\n return statements;\n }\n function appendExportsOfHoistedDeclaration(statements, decl) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n let excludeName;\n if (hasSyntacticModifier(decl, 32 /* Export */)) {\n const exportName = hasSyntacticModifier(decl, 2048 /* Default */) ? factory2.createStringLiteral(\"default\") : decl.name;\n statements = appendExportStatement(statements, exportName, factory2.getLocalName(decl));\n excludeName = getTextOfIdentifierOrLiteral(exportName);\n }\n if (decl.name) {\n statements = appendExportsOfDeclaration(statements, decl, excludeName);\n }\n return statements;\n }\n function appendExportsOfDeclaration(statements, decl, excludeName) {\n if (moduleInfo.exportEquals) {\n return statements;\n }\n const name = factory2.getDeclarationName(decl);\n const exportSpecifiers = moduleInfo.exportSpecifiers.get(name);\n if (exportSpecifiers) {\n for (const exportSpecifier of exportSpecifiers) {\n if (moduleExportNameTextUnescaped(exportSpecifier.name) !== excludeName) {\n statements = appendExportStatement(statements, exportSpecifier.name, name);\n }\n }\n }\n return statements;\n }\n function appendExportStatement(statements, exportName, expression, allowComments) {\n statements = append(statements, createExportStatement(exportName, expression, allowComments));\n return statements;\n }\n function createExportStatement(name, value, allowComments) {\n const statement = factory2.createExpressionStatement(createExportExpression(name, value));\n startOnNewLine(statement);\n if (!allowComments) {\n setEmitFlags(statement, 3072 /* NoComments */);\n }\n return statement;\n }\n function createExportExpression(name, value) {\n const exportName = isIdentifier(name) ? factory2.createStringLiteralFromNode(name) : name;\n setEmitFlags(value, getEmitFlags(value) | 3072 /* NoComments */);\n return setCommentRange(factory2.createCallExpression(\n exportFunction,\n /*typeArguments*/\n void 0,\n [exportName, value]\n ), value);\n }\n function topLevelNestedVisitor(node) {\n switch (node.kind) {\n case 244 /* VariableStatement */:\n return visitVariableStatement(node);\n case 263 /* FunctionDeclaration */:\n return visitFunctionDeclaration(node);\n case 264 /* ClassDeclaration */:\n return visitClassDeclaration(node);\n case 249 /* ForStatement */:\n return visitForStatement(\n node,\n /*isTopLevel*/\n true\n );\n case 250 /* ForInStatement */:\n return visitForInStatement(node);\n case 251 /* ForOfStatement */:\n return visitForOfStatement(node);\n case 247 /* DoStatement */:\n return visitDoStatement(node);\n case 248 /* WhileStatement */:\n return visitWhileStatement(node);\n case 257 /* LabeledStatement */:\n return visitLabeledStatement(node);\n case 255 /* WithStatement */:\n return visitWithStatement(node);\n case 246 /* IfStatement */:\n return visitIfStatement(node);\n case 256 /* SwitchStatement */:\n return visitSwitchStatement(node);\n case 270 /* CaseBlock */:\n return visitCaseBlock(node);\n case 297 /* CaseClause */:\n return visitCaseClause(node);\n case 298 /* DefaultClause */:\n return visitDefaultClause(node);\n case 259 /* TryStatement */:\n return visitTryStatement(node);\n case 300 /* CatchClause */:\n return visitCatchClause(node);\n case 242 /* Block */:\n return visitBlock(node);\n default:\n return visitor(node);\n }\n }\n function visitForStatement(node, isTopLevel) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = factory2.updateForStatement(\n node,\n visitNode(node.initializer, isTopLevel ? visitForInitializer : discardedValueVisitor, isForInitializer),\n visitNode(node.condition, visitor, isExpression),\n visitNode(node.incrementor, discardedValueVisitor, isExpression),\n visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)\n );\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function visitForInStatement(node) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = factory2.updateForInStatement(\n node,\n visitForInitializer(node.initializer),\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function visitForOfStatement(node) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = factory2.updateForOfStatement(\n node,\n node.awaitModifier,\n visitForInitializer(node.initializer),\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function shouldHoistForInitializer(node) {\n return isVariableDeclarationList(node) && shouldHoistVariableDeclarationList(node);\n }\n function visitForInitializer(node) {\n if (shouldHoistForInitializer(node)) {\n let expressions;\n for (const variable of node.declarations) {\n expressions = append(expressions, transformInitializedVariable(\n variable,\n /*isExportedDeclaration*/\n false\n ));\n if (!variable.initializer) {\n hoistBindingElement(variable);\n }\n }\n return expressions ? factory2.inlineExpressions(expressions) : factory2.createOmittedExpression();\n } else {\n return visitNode(node, discardedValueVisitor, isForInitializer);\n }\n }\n function visitDoStatement(node) {\n return factory2.updateDoStatement(\n node,\n visitIterationBody(node.statement, topLevelNestedVisitor, context),\n visitNode(node.expression, visitor, isExpression)\n );\n }\n function visitWhileStatement(node) {\n return factory2.updateWhileStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitIterationBody(node.statement, topLevelNestedVisitor, context)\n );\n }\n function visitLabeledStatement(node) {\n return factory2.updateLabeledStatement(\n node,\n node.label,\n visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createExpressionStatement(factory2.createIdentifier(\"\"))\n );\n }\n function visitWithStatement(node) {\n return factory2.updateWithStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))\n );\n }\n function visitIfStatement(node) {\n return factory2.updateIfStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createBlock([]),\n visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)\n );\n }\n function visitSwitchStatement(node) {\n return factory2.updateSwitchStatement(\n node,\n visitNode(node.expression, visitor, isExpression),\n Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))\n );\n }\n function visitCaseBlock(node) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = factory2.updateCaseBlock(\n node,\n visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)\n );\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function visitCaseClause(node) {\n return factory2.updateCaseClause(\n node,\n visitNode(node.expression, visitor, isExpression),\n visitNodes2(node.statements, topLevelNestedVisitor, isStatement)\n );\n }\n function visitDefaultClause(node) {\n return visitEachChild(node, topLevelNestedVisitor, context);\n }\n function visitTryStatement(node) {\n return visitEachChild(node, topLevelNestedVisitor, context);\n }\n function visitCatchClause(node) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = factory2.updateCatchClause(\n node,\n node.variableDeclaration,\n Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))\n );\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function visitBlock(node) {\n const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n enclosingBlockScopedContainer = node;\n node = visitEachChild(node, topLevelNestedVisitor, context);\n enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n return node;\n }\n function visitorWorker(node, valueIsDiscarded) {\n if (!(node.transformFlags & (4096 /* ContainsDestructuringAssignment */ | 8388608 /* ContainsDynamicImport */ | 268435456 /* ContainsUpdateExpressionForIdentifier */))) {\n return node;\n }\n switch (node.kind) {\n case 249 /* ForStatement */:\n return visitForStatement(\n node,\n /*isTopLevel*/\n false\n );\n case 245 /* ExpressionStatement */:\n return visitExpressionStatement(node);\n case 218 /* ParenthesizedExpression */:\n return visitParenthesizedExpression(node, valueIsDiscarded);\n case 356 /* PartiallyEmittedExpression */:\n return visitPartiallyEmittedExpression(node, valueIsDiscarded);\n case 227 /* BinaryExpression */:\n if (isDestructuringAssignment(node)) {\n return visitDestructuringAssignment(node, valueIsDiscarded);\n }\n break;\n case 214 /* CallExpression */:\n if (isImportCall(node)) {\n return visitImportCallExpression(node);\n }\n break;\n case 225 /* PrefixUnaryExpression */:\n case 226 /* PostfixUnaryExpression */:\n return visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded);\n }\n return visitEachChild(node, visitor, context);\n }\n function visitor(node) {\n return visitorWorker(\n node,\n /*valueIsDiscarded*/\n false\n );\n }\n function discardedValueVisitor(node) {\n return visitorWorker(\n node,\n /*valueIsDiscarded*/\n true\n );\n }\n function visitExpressionStatement(node) {\n return factory2.updateExpressionStatement(node, visitNode(node.expression, discardedValueVisitor, isExpression));\n }\n function visitParenthesizedExpression(node, valueIsDiscarded) {\n return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n }\n function visitPartiallyEmittedExpression(node, valueIsDiscarded) {\n return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n }\n function visitImportCallExpression(node) {\n const externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions);\n const firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression);\n const argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument;\n return factory2.createCallExpression(\n factory2.createPropertyAccessExpression(\n contextObject,\n factory2.createIdentifier(\"import\")\n ),\n /*typeArguments*/\n void 0,\n argument ? [argument] : []\n );\n }\n function visitDestructuringAssignment(node, valueIsDiscarded) {\n if (hasExportedReferenceInDestructuringTarget(node.left)) {\n return flattenDestructuringAssignment(\n node,\n visitor,\n context,\n 0 /* All */,\n !valueIsDiscarded\n );\n }\n return visitEachChild(node, visitor, context);\n }\n function hasExportedReferenceInDestructuringTarget(node) {\n if (isAssignmentExpression(\n node,\n /*excludeCompoundAssignment*/\n true\n )) {\n return hasExportedReferenceInDestructuringTarget(node.left);\n } else if (isSpreadElement(node)) {\n return hasExportedReferenceInDestructuringTarget(node.expression);\n } else if (isObjectLiteralExpression(node)) {\n return some(node.properties, hasExportedReferenceInDestructuringTarget);\n } else if (isArrayLiteralExpression(node)) {\n return some(node.elements, hasExportedReferenceInDestructuringTarget);\n } else if (isShorthandPropertyAssignment(node)) {\n return hasExportedReferenceInDestructuringTarget(node.name);\n } else if (isPropertyAssignment(node)) {\n return hasExportedReferenceInDestructuringTarget(node.initializer);\n } else if (isIdentifier(node)) {\n const container = resolver.getReferencedExportContainer(node);\n return container !== void 0 && container.kind === 308 /* SourceFile */;\n } else {\n return false;\n }\n }\n function visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded) {\n if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) {\n const exportedNames = getExports(node.operand);\n if (exportedNames) {\n let temp;\n let expression = visitNode(node.operand, visitor, isExpression);\n if (isPrefixUnaryExpression(node)) {\n expression = factory2.updatePrefixUnaryExpression(node, expression);\n } else {\n expression = factory2.updatePostfixUnaryExpression(node, expression);\n if (!valueIsDiscarded) {\n temp = factory2.createTempVariable(hoistVariableDeclaration);\n expression = factory2.createAssignment(temp, expression);\n setTextRange(expression, node);\n }\n expression = factory2.createComma(expression, factory2.cloneNode(node.operand));\n setTextRange(expression, node);\n }\n for (const exportName of exportedNames) {\n expression = createExportExpression(exportName, preventSubstitution(expression));\n }\n if (temp) {\n expression = factory2.createComma(expression, temp);\n setTextRange(expression, node);\n }\n return expression;\n }\n }\n return visitEachChild(node, visitor, context);\n }\n function modifierVisitor(node) {\n switch (node.kind) {\n case 95 /* ExportKeyword */:\n case 90 /* DefaultKeyword */:\n return void 0;\n }\n return node;\n }\n function onEmitNode(hint, node, emitCallback) {\n if (node.kind === 308 /* SourceFile */) {\n const id = getOriginalNodeId(node);\n currentSourceFile = node;\n moduleInfo = moduleInfoMap[id];\n exportFunction = exportFunctionsMap[id];\n noSubstitution = noSubstitutionMap[id];\n contextObject = contextObjectMap[id];\n if (noSubstitution) {\n delete noSubstitutionMap[id];\n }\n previousOnEmitNode(hint, node, emitCallback);\n currentSourceFile = void 0;\n moduleInfo = void 0;\n exportFunction = void 0;\n contextObject = void 0;\n noSubstitution = void 0;\n } else {\n previousOnEmitNode(hint, node, emitCallback);\n }\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (isSubstitutionPrevented(node)) {\n return node;\n }\n if (hint === 1 /* Expression */) {\n return substituteExpression(node);\n } else if (hint === 4 /* Unspecified */) {\n return substituteUnspecified(node);\n }\n return node;\n }\n function substituteUnspecified(node) {\n switch (node.kind) {\n case 305 /* ShorthandPropertyAssignment */:\n return substituteShorthandPropertyAssignment(node);\n }\n return node;\n }\n function substituteShorthandPropertyAssignment(node) {\n var _a, _b;\n const name = node.name;\n if (!isGeneratedIdentifier(name) && !isLocalName(name)) {\n const importDeclaration = resolver.getReferencedImportDeclaration(name);\n if (importDeclaration) {\n if (isImportClause(importDeclaration)) {\n return setTextRange(\n factory2.createPropertyAssignment(\n factory2.cloneNode(name),\n factory2.createPropertyAccessExpression(\n factory2.getGeneratedNameForNode(importDeclaration.parent),\n factory2.createIdentifier(\"default\")\n )\n ),\n /*location*/\n node\n );\n } else if (isImportSpecifier(importDeclaration)) {\n const importedName = importDeclaration.propertyName || importDeclaration.name;\n const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n return setTextRange(\n factory2.createPropertyAssignment(\n factory2.cloneNode(name),\n importedName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(importedName)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(importedName))\n ),\n /*location*/\n node\n );\n }\n }\n }\n return node;\n }\n function substituteExpression(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n return substituteExpressionIdentifier(node);\n case 227 /* BinaryExpression */:\n return substituteBinaryExpression(node);\n case 237 /* MetaProperty */:\n return substituteMetaProperty(node);\n }\n return node;\n }\n function substituteExpressionIdentifier(node) {\n var _a, _b;\n if (getEmitFlags(node) & 8192 /* HelperName */) {\n const externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile);\n if (externalHelpersModuleName) {\n return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n }\n return node;\n }\n if (!isGeneratedIdentifier(node) && !isLocalName(node)) {\n const importDeclaration = resolver.getReferencedImportDeclaration(node);\n if (importDeclaration) {\n if (isImportClause(importDeclaration)) {\n return setTextRange(\n factory2.createPropertyAccessExpression(\n factory2.getGeneratedNameForNode(importDeclaration.parent),\n factory2.createIdentifier(\"default\")\n ),\n /*location*/\n node\n );\n } else if (isImportSpecifier(importDeclaration)) {\n const importedName = importDeclaration.propertyName || importDeclaration.name;\n const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n return setTextRange(\n importedName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(importedName)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(importedName)),\n /*location*/\n node\n );\n }\n }\n }\n return node;\n }\n function substituteBinaryExpression(node) {\n if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) {\n const exportedNames = getExports(node.left);\n if (exportedNames) {\n let expression = node;\n for (const exportName of exportedNames) {\n expression = createExportExpression(exportName, preventSubstitution(expression));\n }\n return expression;\n }\n }\n return node;\n }\n function substituteMetaProperty(node) {\n if (isImportMeta(node)) {\n return factory2.createPropertyAccessExpression(contextObject, factory2.createIdentifier(\"meta\"));\n }\n return node;\n }\n function getExports(name) {\n let exportedNames;\n const valueDeclaration = getReferencedDeclaration(name);\n if (valueDeclaration) {\n const exportContainer = resolver.getReferencedExportContainer(\n name,\n /*prefixLocals*/\n false\n );\n if (exportContainer && exportContainer.kind === 308 /* SourceFile */) {\n exportedNames = append(exportedNames, factory2.getDeclarationName(valueDeclaration));\n }\n exportedNames = addRange(exportedNames, moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)]);\n } else if (isGeneratedIdentifier(name) && isFileLevelReservedGeneratedIdentifier(name)) {\n const exportSpecifiers = moduleInfo == null ? void 0 : moduleInfo.exportSpecifiers.get(name);\n if (exportSpecifiers) {\n const exportedNames2 = [];\n for (const exportSpecifier of exportSpecifiers) {\n exportedNames2.push(exportSpecifier.name);\n }\n return exportedNames2;\n }\n }\n return exportedNames;\n }\n function getReferencedDeclaration(name) {\n if (!isGeneratedIdentifier(name)) {\n const importDeclaration = resolver.getReferencedImportDeclaration(name);\n if (importDeclaration) return importDeclaration;\n const valueDeclaration = resolver.getReferencedValueDeclaration(name);\n if (valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)])) return valueDeclaration;\n const declarations = resolver.getReferencedValueDeclarations(name);\n if (declarations) {\n for (const declaration of declarations) {\n if (declaration !== valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(declaration)])) return declaration;\n }\n }\n return valueDeclaration;\n }\n }\n function preventSubstitution(node) {\n if (noSubstitution === void 0) noSubstitution = [];\n noSubstitution[getNodeId(node)] = true;\n return node;\n }\n function isSubstitutionPrevented(node) {\n return noSubstitution && node.id && noSubstitution[node.id];\n }\n}\n\n// src/compiler/transformers/module/esnextAnd2015.ts\nfunction transformECMAScriptModule(context) {\n const {\n factory: factory2,\n getEmitHelperFactory: emitHelpers\n } = context;\n const host = context.getEmitHost();\n const resolver = context.getEmitResolver();\n const compilerOptions = context.getCompilerOptions();\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const previousOnEmitNode = context.onEmitNode;\n const previousOnSubstituteNode = context.onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.onSubstituteNode = onSubstituteNode;\n context.enableEmitNotification(308 /* SourceFile */);\n context.enableSubstitution(80 /* Identifier */);\n const noSubstitution = /* @__PURE__ */ new Set();\n let importsAndRequiresToRewriteOrShim;\n let helperNameSubstitutions;\n let currentSourceFile;\n let importRequireStatements;\n return chainBundle(context, transformSourceFile);\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n if (isExternalModule(node) || getIsolatedModules(compilerOptions)) {\n currentSourceFile = node;\n importRequireStatements = void 0;\n if (compilerOptions.rewriteRelativeImportExtensions && (currentSourceFile.flags & 4194304 /* PossiblyContainsDynamicImport */ || isInJSFile(node))) {\n forEachDynamicImportOrRequireCall(\n node,\n /*includeTypeSpaceImports*/\n false,\n /*requireStringLiteralLikeArgument*/\n false,\n (node2) => {\n if (!isStringLiteralLike(node2.arguments[0]) || shouldRewriteModuleSpecifier(node2.arguments[0].text, compilerOptions)) {\n importsAndRequiresToRewriteOrShim = append(importsAndRequiresToRewriteOrShim, node2);\n }\n }\n );\n }\n let result = updateExternalModule(node);\n addEmitHelpers(result, context.readEmitHelpers());\n currentSourceFile = void 0;\n if (importRequireStatements) {\n result = factory2.updateSourceFile(\n result,\n setTextRange(factory2.createNodeArray(insertStatementsAfterCustomPrologue(result.statements.slice(), importRequireStatements)), result.statements)\n );\n }\n if (!isExternalModule(node) || getEmitModuleKind(compilerOptions) === 200 /* Preserve */ || some(result.statements, isExternalModuleIndicator)) {\n return result;\n }\n return factory2.updateSourceFile(\n result,\n setTextRange(factory2.createNodeArray([...result.statements, createEmptyExports(factory2)]), result.statements)\n );\n }\n return node;\n }\n function updateExternalModule(node) {\n const externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(factory2, emitHelpers(), node, compilerOptions);\n if (externalHelpersImportDeclaration) {\n const statements = [];\n const statementOffset = factory2.copyPrologue(node.statements, statements);\n addRange(statements, visitArray([externalHelpersImportDeclaration], visitor, isStatement));\n addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset));\n return factory2.updateSourceFile(\n node,\n setTextRange(factory2.createNodeArray(statements), node.statements)\n );\n } else {\n return visitEachChild(node, visitor, context);\n }\n }\n function visitor(node) {\n switch (node.kind) {\n case 272 /* ImportEqualsDeclaration */:\n return getEmitModuleKind(compilerOptions) >= 100 /* Node16 */ ? visitImportEqualsDeclaration(node) : void 0;\n case 278 /* ExportAssignment */:\n return visitExportAssignment(node);\n case 279 /* ExportDeclaration */:\n const exportDecl = node;\n return visitExportDeclaration(exportDecl);\n case 273 /* ImportDeclaration */:\n return visitImportDeclaration(node);\n case 214 /* CallExpression */:\n if (node === (importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim[0])) {\n return visitImportOrRequireCall(importsAndRequiresToRewriteOrShim.shift());\n }\n // fallthrough\n default:\n if ((importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim.length) && rangeContainsRange(node, importsAndRequiresToRewriteOrShim[0])) {\n return visitEachChild(node, visitor, context);\n }\n }\n return node;\n }\n function visitImportDeclaration(node) {\n if (!compilerOptions.rewriteRelativeImportExtensions) {\n return node;\n }\n const updatedModuleSpecifier = rewriteModuleSpecifier(node.moduleSpecifier, compilerOptions);\n if (updatedModuleSpecifier === node.moduleSpecifier) {\n return node;\n }\n return factory2.updateImportDeclaration(\n node,\n node.modifiers,\n node.importClause,\n updatedModuleSpecifier,\n node.attributes\n );\n }\n function visitImportOrRequireCall(node) {\n return factory2.updateCallExpression(\n node,\n node.expression,\n node.typeArguments,\n [\n isStringLiteralLike(node.arguments[0]) ? rewriteModuleSpecifier(node.arguments[0], compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(node.arguments[0]),\n ...node.arguments.slice(1)\n ]\n );\n }\n function createRequireCall2(importNode) {\n const moduleName = getExternalModuleNameLiteral(factory2, importNode, Debug.checkDefined(currentSourceFile), host, resolver, compilerOptions);\n const args = [];\n if (moduleName) {\n args.push(rewriteModuleSpecifier(moduleName, compilerOptions));\n }\n if (getEmitModuleKind(compilerOptions) === 200 /* Preserve */) {\n return factory2.createCallExpression(\n factory2.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n args\n );\n }\n if (!importRequireStatements) {\n const createRequireName = factory2.createUniqueName(\"_createRequire\", 16 /* Optimistic */ | 32 /* FileLevel */);\n const importStatement = factory2.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory2.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n factory2.createNamedImports([\n factory2.createImportSpecifier(\n /*isTypeOnly*/\n false,\n factory2.createIdentifier(\"createRequire\"),\n createRequireName\n )\n ])\n ),\n factory2.createStringLiteral(\"module\"),\n /*attributes*/\n void 0\n );\n const requireHelperName = factory2.createUniqueName(\"__require\", 16 /* Optimistic */ | 32 /* FileLevel */);\n const requireStatement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [\n factory2.createVariableDeclaration(\n requireHelperName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory2.createCallExpression(\n factory2.cloneNode(createRequireName),\n /*typeArguments*/\n void 0,\n [\n factory2.createPropertyAccessExpression(factory2.createMetaProperty(102 /* ImportKeyword */, factory2.createIdentifier(\"meta\")), factory2.createIdentifier(\"url\"))\n ]\n )\n )\n ],\n /*flags*/\n languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n )\n );\n importRequireStatements = [importStatement, requireStatement];\n }\n const name = importRequireStatements[1].declarationList.declarations[0].name;\n Debug.assertNode(name, isIdentifier);\n return factory2.createCallExpression(\n factory2.cloneNode(name),\n /*typeArguments*/\n void 0,\n args\n );\n }\n function visitImportEqualsDeclaration(node) {\n Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n let statements;\n statements = append(\n statements,\n setOriginalNode(\n setTextRange(\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n [\n factory2.createVariableDeclaration(\n factory2.cloneNode(node.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n createRequireCall2(node)\n )\n ],\n /*flags*/\n languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n )\n ),\n node\n ),\n node\n )\n );\n statements = appendExportsOfImportEqualsDeclaration(statements, node);\n return singleOrMany(statements);\n }\n function appendExportsOfImportEqualsDeclaration(statements, node) {\n if (hasSyntacticModifier(node, 32 /* Export */)) {\n statements = append(\n statements,\n factory2.createExportDeclaration(\n /*modifiers*/\n void 0,\n node.isTypeOnly,\n factory2.createNamedExports([factory2.createExportSpecifier(\n /*isTypeOnly*/\n false,\n /*propertyName*/\n void 0,\n idText(node.name)\n )])\n )\n );\n }\n return statements;\n }\n function visitExportAssignment(node) {\n if (node.isExportEquals) {\n if (getEmitModuleKind(compilerOptions) === 200 /* Preserve */) {\n const statement = setOriginalNode(\n factory2.createExpressionStatement(\n factory2.createAssignment(\n factory2.createPropertyAccessExpression(\n factory2.createIdentifier(\"module\"),\n \"exports\"\n ),\n node.expression\n )\n ),\n node\n );\n return statement;\n }\n return void 0;\n }\n return node;\n }\n function visitExportDeclaration(node) {\n const updatedModuleSpecifier = rewriteModuleSpecifier(node.moduleSpecifier, compilerOptions);\n if (compilerOptions.module !== void 0 && compilerOptions.module > 5 /* ES2015 */ || !node.exportClause || !isNamespaceExport(node.exportClause) || !node.moduleSpecifier) {\n return !node.moduleSpecifier || updatedModuleSpecifier === node.moduleSpecifier ? node : factory2.updateExportDeclaration(\n node,\n node.modifiers,\n node.isTypeOnly,\n node.exportClause,\n updatedModuleSpecifier,\n node.attributes\n );\n }\n const oldIdentifier = node.exportClause.name;\n const synthName = factory2.getGeneratedNameForNode(oldIdentifier);\n const importDecl = factory2.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory2.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n factory2.createNamespaceImport(\n synthName\n )\n ),\n updatedModuleSpecifier,\n node.attributes\n );\n setOriginalNode(importDecl, node.exportClause);\n const exportDecl = isExportNamespaceAsDefaultDeclaration(node) ? factory2.createExportDefault(synthName) : factory2.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory2.createNamedExports([factory2.createExportSpecifier(\n /*isTypeOnly*/\n false,\n synthName,\n oldIdentifier\n )])\n );\n setOriginalNode(exportDecl, node);\n return [importDecl, exportDecl];\n }\n function onEmitNode(hint, node, emitCallback) {\n if (isSourceFile(node)) {\n if ((isExternalModule(node) || getIsolatedModules(compilerOptions)) && compilerOptions.importHelpers) {\n helperNameSubstitutions = /* @__PURE__ */ new Map();\n }\n currentSourceFile = node;\n previousOnEmitNode(hint, node, emitCallback);\n currentSourceFile = void 0;\n helperNameSubstitutions = void 0;\n } else {\n previousOnEmitNode(hint, node, emitCallback);\n }\n }\n function onSubstituteNode(hint, node) {\n node = previousOnSubstituteNode(hint, node);\n if (node.id && noSubstitution.has(node.id)) {\n return node;\n }\n if (isIdentifier(node) && getEmitFlags(node) & 8192 /* HelperName */) {\n return substituteHelperName(node);\n }\n return node;\n }\n function substituteHelperName(node) {\n const externalHelpersModuleName = currentSourceFile && getExternalHelpersModuleName(currentSourceFile);\n if (externalHelpersModuleName) {\n noSubstitution.add(getNodeId(node));\n return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n }\n if (helperNameSubstitutions) {\n const name = idText(node);\n let substitution = helperNameSubstitutions.get(name);\n if (!substitution) {\n helperNameSubstitutions.set(name, substitution = factory2.createUniqueName(name, 16 /* Optimistic */ | 32 /* FileLevel */));\n }\n return substitution;\n }\n return node;\n }\n}\n\n// src/compiler/transformers/module/impliedNodeFormatDependent.ts\nfunction transformImpliedNodeFormatDependentModule(context) {\n const previousOnSubstituteNode = context.onSubstituteNode;\n const previousOnEmitNode = context.onEmitNode;\n const esmTransform = transformECMAScriptModule(context);\n const esmOnSubstituteNode = context.onSubstituteNode;\n const esmOnEmitNode = context.onEmitNode;\n context.onSubstituteNode = previousOnSubstituteNode;\n context.onEmitNode = previousOnEmitNode;\n const cjsTransform = transformModule(context);\n const cjsOnSubstituteNode = context.onSubstituteNode;\n const cjsOnEmitNode = context.onEmitNode;\n const getEmitModuleFormatOfFile2 = (file) => context.getEmitHost().getEmitModuleFormatOfFile(file);\n context.onSubstituteNode = onSubstituteNode;\n context.onEmitNode = onEmitNode;\n context.enableSubstitution(308 /* SourceFile */);\n context.enableEmitNotification(308 /* SourceFile */);\n let currentSourceFile;\n return transformSourceFileOrBundle;\n function onSubstituteNode(hint, node) {\n if (isSourceFile(node)) {\n currentSourceFile = node;\n return previousOnSubstituteNode(hint, node);\n } else {\n if (!currentSourceFile) {\n return previousOnSubstituteNode(hint, node);\n }\n if (getEmitModuleFormatOfFile2(currentSourceFile) >= 5 /* ES2015 */) {\n return esmOnSubstituteNode(hint, node);\n }\n return cjsOnSubstituteNode(hint, node);\n }\n }\n function onEmitNode(hint, node, emitCallback) {\n if (isSourceFile(node)) {\n currentSourceFile = node;\n }\n if (!currentSourceFile) {\n return previousOnEmitNode(hint, node, emitCallback);\n }\n if (getEmitModuleFormatOfFile2(currentSourceFile) >= 5 /* ES2015 */) {\n return esmOnEmitNode(hint, node, emitCallback);\n }\n return cjsOnEmitNode(hint, node, emitCallback);\n }\n function getModuleTransformForFile(file) {\n return getEmitModuleFormatOfFile2(file) >= 5 /* ES2015 */ ? esmTransform : cjsTransform;\n }\n function transformSourceFile(node) {\n if (node.isDeclarationFile) {\n return node;\n }\n currentSourceFile = node;\n const result = getModuleTransformForFile(node)(node);\n currentSourceFile = void 0;\n Debug.assert(isSourceFile(result));\n return result;\n }\n function transformSourceFileOrBundle(node) {\n return node.kind === 308 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node);\n }\n function transformBundle(node) {\n return context.factory.createBundle(map(node.sourceFiles, transformSourceFile));\n }\n}\n\n// src/compiler/transformers/declarations/diagnostics.ts\nfunction canProduceDiagnostics(node) {\n return isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isBindingElement(node) || isSetAccessor(node) || isGetAccessor(node) || isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isParameter(node) || isTypeParameterDeclaration(node) || isExpressionWithTypeArguments(node) || isImportEqualsDeclaration(node) || isTypeAliasDeclaration(node) || isConstructorDeclaration(node) || isIndexSignatureDeclaration(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isJSDocTypeAlias(node);\n}\nfunction createGetSymbolAccessibilityDiagnosticForNodeName(node) {\n if (isSetAccessor(node) || isGetAccessor(node)) {\n return getAccessorNameVisibilityError;\n } else if (isMethodSignature(node) || isMethodDeclaration(node)) {\n return getMethodNameVisibilityError;\n } else {\n return createGetSymbolAccessibilityDiagnosticForNode(node);\n }\n function getAccessorNameVisibilityError(symbolAccessibilityResult) {\n const diagnosticMessage = getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult);\n return diagnosticMessage !== void 0 ? {\n diagnosticMessage,\n errorNode: node,\n typeName: node.name\n } : void 0;\n }\n function getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n if (isStatic(node)) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;\n } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1;\n } else {\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1;\n }\n }\n function getMethodNameVisibilityError(symbolAccessibilityResult) {\n const diagnosticMessage = getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult);\n return diagnosticMessage !== void 0 ? {\n diagnosticMessage,\n errorNode: node,\n typeName: node.name\n } : void 0;\n }\n function getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n if (isStatic(node)) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1;\n } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1;\n } else {\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1;\n }\n }\n}\nfunction createGetSymbolAccessibilityDiagnosticForNode(node) {\n if (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isBindingElement(node) || isConstructorDeclaration(node)) {\n return getVariableDeclarationTypeVisibilityError;\n } else if (isSetAccessor(node) || isGetAccessor(node)) {\n return getAccessorDeclarationTypeVisibilityError;\n } else if (isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isIndexSignatureDeclaration(node)) {\n return getReturnTypeVisibilityError;\n } else if (isParameter(node)) {\n if (isParameterPropertyDeclaration(node, node.parent) && hasSyntacticModifier(node.parent, 2 /* Private */)) {\n return getVariableDeclarationTypeVisibilityError;\n }\n return getParameterDeclarationTypeVisibilityError;\n } else if (isTypeParameterDeclaration(node)) {\n return getTypeParameterConstraintVisibilityError;\n } else if (isExpressionWithTypeArguments(node)) {\n return getHeritageClauseVisibilityError;\n } else if (isImportEqualsDeclaration(node)) {\n return getImportEntityNameVisibilityError;\n } else if (isTypeAliasDeclaration(node) || isJSDocTypeAlias(node)) {\n return getTypeAliasDeclarationVisibilityError;\n } else {\n return Debug.assertNever(node, `Attempted to set a declaration diagnostic context for unhandled node kind: ${Debug.formatSyntaxKind(node.kind)}`);\n }\n function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n if (node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;\n } else if (node.kind === 173 /* PropertyDeclaration */ || node.kind === 212 /* PropertyAccessExpression */ || node.kind === 213 /* ElementAccessExpression */ || node.kind === 227 /* BinaryExpression */ || node.kind === 172 /* PropertySignature */ || node.kind === 170 /* Parameter */ && hasSyntacticModifier(node.parent, 2 /* Private */)) {\n if (isStatic(node)) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;\n } else if (node.parent.kind === 264 /* ClassDeclaration */ || node.kind === 170 /* Parameter */) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1;\n } else {\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1;\n }\n }\n }\n function getVariableDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n const diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult);\n return diagnosticMessage !== void 0 ? {\n diagnosticMessage,\n errorNode: node,\n typeName: node.name\n } : void 0;\n }\n function getAccessorDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n let diagnosticMessage;\n if (node.kind === 179 /* SetAccessor */) {\n if (isStatic(node)) {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1;\n } else {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1;\n }\n } else {\n if (isStatic(node)) {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1;\n } else {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;\n }\n }\n return {\n diagnosticMessage,\n errorNode: node.name,\n typeName: node.name\n };\n }\n function getReturnTypeVisibilityError(symbolAccessibilityResult) {\n let diagnosticMessage;\n switch (node.kind) {\n case 181 /* ConstructSignature */:\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;\n break;\n case 180 /* CallSignature */:\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;\n break;\n case 182 /* IndexSignature */:\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;\n break;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n if (isStatic(node)) {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;\n } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0;\n } else {\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;\n }\n break;\n case 263 /* FunctionDeclaration */:\n diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;\n break;\n default:\n return Debug.fail(\"This is unknown kind for signature: \" + node.kind);\n }\n return {\n diagnosticMessage,\n errorNode: node.name || node\n };\n }\n function getParameterDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n const diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult);\n return diagnosticMessage !== void 0 ? {\n diagnosticMessage,\n errorNode: node,\n typeName: node.name\n } : void 0;\n }\n function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n switch (node.parent.kind) {\n case 177 /* Constructor */:\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;\n case 181 /* ConstructSignature */:\n case 186 /* ConstructorType */:\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;\n case 180 /* CallSignature */:\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;\n case 182 /* IndexSignature */:\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n if (isStatic(node.parent)) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;\n } else if (node.parent.parent.kind === 264 /* ClassDeclaration */) {\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;\n } else {\n return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;\n }\n case 263 /* FunctionDeclaration */:\n case 185 /* FunctionType */:\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;\n case 179 /* SetAccessor */:\n case 178 /* GetAccessor */:\n return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;\n default:\n return Debug.fail(`Unknown parent for parameter: ${Debug.formatSyntaxKind(node.parent.kind)}`);\n }\n }\n function getTypeParameterConstraintVisibilityError() {\n let diagnosticMessage;\n switch (node.parent.kind) {\n case 264 /* ClassDeclaration */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;\n break;\n case 265 /* InterfaceDeclaration */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;\n break;\n case 201 /* MappedType */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;\n break;\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;\n break;\n case 180 /* CallSignature */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;\n break;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n if (isStatic(node.parent)) {\n diagnosticMessage = Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;\n } else if (node.parent.parent.kind === 264 /* ClassDeclaration */) {\n diagnosticMessage = Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;\n } else {\n diagnosticMessage = Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;\n }\n break;\n case 185 /* FunctionType */:\n case 263 /* FunctionDeclaration */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;\n break;\n case 196 /* InferType */:\n diagnosticMessage = Diagnostics.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1;\n break;\n case 266 /* TypeAliasDeclaration */:\n diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;\n break;\n default:\n return Debug.fail(\"This is unknown parent for type parameter: \" + node.parent.kind);\n }\n return {\n diagnosticMessage,\n errorNode: node,\n typeName: node.name\n };\n }\n function getHeritageClauseVisibilityError() {\n let diagnosticMessage;\n if (isClassDeclaration(node.parent.parent)) {\n diagnosticMessage = isHeritageClause(node.parent) && node.parent.token === 119 /* ImplementsKeyword */ ? Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : node.parent.parent.name ? Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1 : Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0;\n } else {\n diagnosticMessage = Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;\n }\n return {\n diagnosticMessage,\n errorNode: node,\n typeName: getNameOfDeclaration(node.parent.parent)\n };\n }\n function getImportEntityNameVisibilityError() {\n return {\n diagnosticMessage: Diagnostics.Import_declaration_0_is_using_private_name_1,\n errorNode: node,\n typeName: node.name\n };\n }\n function getTypeAliasDeclarationVisibilityError(symbolAccessibilityResult) {\n return {\n diagnosticMessage: symbolAccessibilityResult.errorModuleName ? Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2 : Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,\n errorNode: isJSDocTypeAlias(node) ? Debug.checkDefined(node.typeExpression) : node.type,\n typeName: isJSDocTypeAlias(node) ? getNameOfDeclaration(node) : node.name\n };\n }\n}\nfunction createGetIsolatedDeclarationErrors(resolver) {\n const relatedSuggestionByDeclarationKind = {\n [220 /* ArrowFunction */]: Diagnostics.Add_a_return_type_to_the_function_expression,\n [219 /* FunctionExpression */]: Diagnostics.Add_a_return_type_to_the_function_expression,\n [175 /* MethodDeclaration */]: Diagnostics.Add_a_return_type_to_the_method,\n [178 /* GetAccessor */]: Diagnostics.Add_a_return_type_to_the_get_accessor_declaration,\n [179 /* SetAccessor */]: Diagnostics.Add_a_type_to_parameter_of_the_set_accessor_declaration,\n [263 /* FunctionDeclaration */]: Diagnostics.Add_a_return_type_to_the_function_declaration,\n [181 /* ConstructSignature */]: Diagnostics.Add_a_return_type_to_the_function_declaration,\n [170 /* Parameter */]: Diagnostics.Add_a_type_annotation_to_the_parameter_0,\n [261 /* VariableDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_variable_0,\n [173 /* PropertyDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_property_0,\n [172 /* PropertySignature */]: Diagnostics.Add_a_type_annotation_to_the_property_0,\n [278 /* ExportAssignment */]: Diagnostics.Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it\n };\n const errorByDeclarationKind = {\n [219 /* FunctionExpression */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n [263 /* FunctionDeclaration */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n [220 /* ArrowFunction */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n [175 /* MethodDeclaration */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n [181 /* ConstructSignature */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n [178 /* GetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [179 /* SetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [170 /* Parameter */]: Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [261 /* VariableDeclaration */]: Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [173 /* PropertyDeclaration */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [172 /* PropertySignature */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n [168 /* ComputedPropertyName */]: Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations,\n [306 /* SpreadAssignment */]: Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations,\n [305 /* ShorthandPropertyAssignment */]: Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations,\n [210 /* ArrayLiteralExpression */]: Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations,\n [278 /* ExportAssignment */]: Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations,\n [231 /* SpreadElement */]: Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations\n };\n return getDiagnostic2;\n function getDiagnostic2(node) {\n const heritageClause = findAncestor(node, isHeritageClause);\n if (heritageClause) {\n return createDiagnosticForNode(node, Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations);\n }\n if ((isPartOfTypeNode(node) || isTypeQueryNode(node.parent)) && (isEntityName(node) || isEntityNameExpression(node))) {\n return createEntityInTypeNodeError(node);\n }\n Debug.type(node);\n switch (node.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return createAccessorTypeError(node);\n case 168 /* ComputedPropertyName */:\n case 305 /* ShorthandPropertyAssignment */:\n case 306 /* SpreadAssignment */:\n return createObjectLiteralError(node);\n case 210 /* ArrayLiteralExpression */:\n case 231 /* SpreadElement */:\n return createArrayLiteralError(node);\n case 175 /* MethodDeclaration */:\n case 181 /* ConstructSignature */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 263 /* FunctionDeclaration */:\n return createReturnTypeError(node);\n case 209 /* BindingElement */:\n return createBindingElementError(node);\n case 173 /* PropertyDeclaration */:\n case 261 /* VariableDeclaration */:\n return createVariableOrPropertyError(node);\n case 170 /* Parameter */:\n return createParameterError(node);\n case 304 /* PropertyAssignment */:\n return createExpressionError(node.initializer);\n case 232 /* ClassExpression */:\n return createClassExpressionError(node);\n default:\n assertType(node);\n return createExpressionError(node);\n }\n }\n function findNearestDeclaration(node) {\n const result = findAncestor(node, (n) => isExportAssignment(n) || isStatement(n) || isVariableDeclaration(n) || isPropertyDeclaration(n) || isParameter(n));\n if (!result) return void 0;\n if (isExportAssignment(result)) return result;\n if (isReturnStatement(result)) {\n return findAncestor(result, (n) => isFunctionLikeDeclaration(n) && !isConstructorDeclaration(n));\n }\n return isStatement(result) ? void 0 : result;\n }\n function createAccessorTypeError(node) {\n const { getAccessor, setAccessor } = getAllAccessorDeclarations(node.symbol.declarations, node);\n const targetNode = (isSetAccessor(node) ? node.parameters[0] : node) ?? node;\n const diag2 = createDiagnosticForNode(targetNode, errorByDeclarationKind[node.kind]);\n if (setAccessor) {\n addRelatedInfo(diag2, createDiagnosticForNode(setAccessor, relatedSuggestionByDeclarationKind[setAccessor.kind]));\n }\n if (getAccessor) {\n addRelatedInfo(diag2, createDiagnosticForNode(getAccessor, relatedSuggestionByDeclarationKind[getAccessor.kind]));\n }\n return diag2;\n }\n function addParentDeclarationRelatedInfo(node, diag2) {\n const parentDeclaration = findNearestDeclaration(node);\n if (parentDeclaration) {\n const targetStr = isExportAssignment(parentDeclaration) || !parentDeclaration.name ? \"\" : getTextOfNode(\n parentDeclaration.name,\n /*includeTrivia*/\n false\n );\n addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n }\n return diag2;\n }\n function createObjectLiteralError(node) {\n const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n addParentDeclarationRelatedInfo(node, diag2);\n return diag2;\n }\n function createArrayLiteralError(node) {\n const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n addParentDeclarationRelatedInfo(node, diag2);\n return diag2;\n }\n function createReturnTypeError(node) {\n const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n addParentDeclarationRelatedInfo(node, diag2);\n addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind]));\n return diag2;\n }\n function createBindingElementError(node) {\n return createDiagnosticForNode(node, Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations);\n }\n function createVariableOrPropertyError(node) {\n const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n const targetStr = getTextOfNode(\n node.name,\n /*includeTrivia*/\n false\n );\n addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));\n return diag2;\n }\n function createParameterError(node) {\n if (isSetAccessor(node.parent)) {\n return createAccessorTypeError(node.parent);\n }\n const addUndefined = resolver.requiresAddingImplicitUndefined(node, node.parent);\n if (!addUndefined && node.initializer) {\n return createExpressionError(node.initializer);\n }\n const message = addUndefined ? Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations : errorByDeclarationKind[node.kind];\n const diag2 = createDiagnosticForNode(node, message);\n const targetStr = getTextOfNode(\n node.name,\n /*includeTrivia*/\n false\n );\n addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));\n return diag2;\n }\n function createClassExpressionError(node) {\n return createExpressionError(node, Diagnostics.Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations);\n }\n function createEntityInTypeNodeError(node) {\n const diag2 = createDiagnosticForNode(node, Diagnostics.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations, getTextOfNode(\n node,\n /*includeTrivia*/\n false\n ));\n addParentDeclarationRelatedInfo(node, diag2);\n return diag2;\n }\n function createExpressionError(node, diagnosticMessage) {\n const parentDeclaration = findNearestDeclaration(node);\n let diag2;\n if (parentDeclaration) {\n const targetStr = isExportAssignment(parentDeclaration) || !parentDeclaration.name ? \"\" : getTextOfNode(\n parentDeclaration.name,\n /*includeTrivia*/\n false\n );\n const parent2 = findAncestor(node.parent, (n) => isExportAssignment(n) || (isStatement(n) ? \"quit\" : !isParenthesizedExpression(n) && !isTypeAssertionExpression(n) && !isAsExpression(n)));\n if (parentDeclaration === parent2) {\n diag2 = createDiagnosticForNode(node, diagnosticMessage ?? errorByDeclarationKind[parentDeclaration.kind]);\n addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n } else {\n diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);\n addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n addRelatedInfo(diag2, createDiagnosticForNode(node, Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit));\n }\n } else {\n diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);\n }\n return diag2;\n }\n}\n\n// src/compiler/transformers/declarations.ts\nfunction getDeclarationDiagnostics(host, resolver, file) {\n const compilerOptions = host.getCompilerOptions();\n const files = filter(getSourceFilesToEmit(host, file), isSourceFileNotJson);\n return contains(files, file) ? transformNodes(\n resolver,\n host,\n factory,\n compilerOptions,\n [file],\n [transformDeclarations],\n /*allowDtsFiles*/\n false\n ).diagnostics : void 0;\n}\nvar declarationEmitNodeBuilderFlags = 1024 /* MultilineObjectLiterals */ | 2048 /* WriteClassExpressionAsTypeLiteral */ | 4096 /* UseTypeOfFunction */ | 8 /* UseStructuralFallback */ | 524288 /* AllowEmptyTuple */ | 4 /* GenerateNamesForShadowedTypeParams */ | 1 /* NoTruncation */;\nvar declarationEmitInternalNodeBuilderFlags = 8 /* AllowUnresolvedNames */;\nfunction transformDeclarations(context) {\n const throwDiagnostic = () => Debug.fail(\"Diagnostic emitted without context\");\n let getSymbolAccessibilityDiagnostic = throwDiagnostic;\n let needsDeclare = true;\n let isBundledEmit = false;\n let resultHasExternalModuleIndicator = false;\n let needsScopeFixMarker = false;\n let resultHasScopeMarker = false;\n let enclosingDeclaration;\n let lateMarkedStatements;\n let lateStatementReplacementMap;\n let suppressNewDiagnosticContexts;\n const { factory: factory2 } = context;\n const host = context.getEmitHost();\n let restoreFallbackNode = () => void 0;\n const symbolTracker = {\n trackSymbol,\n reportInaccessibleThisError,\n reportInaccessibleUniqueSymbolError,\n reportCyclicStructureError,\n reportPrivateInBaseOfClassExpression,\n reportLikelyUnsafeImportRequiredError,\n reportTruncationError,\n moduleResolverHost: host,\n reportNonlocalAugmentation,\n reportNonSerializableProperty,\n reportInferenceFallback,\n pushErrorFallbackNode(node) {\n const currentFallback = errorFallbackNode;\n const currentRestore = restoreFallbackNode;\n restoreFallbackNode = () => {\n restoreFallbackNode = currentRestore;\n errorFallbackNode = currentFallback;\n };\n errorFallbackNode = node;\n },\n popErrorFallbackNode() {\n restoreFallbackNode();\n }\n };\n let errorNameNode;\n let errorFallbackNode;\n let currentSourceFile;\n let rawReferencedFiles;\n let rawTypeReferenceDirectives;\n let rawLibReferenceDirectives;\n const resolver = context.getEmitResolver();\n const options = context.getCompilerOptions();\n const getIsolatedDeclarationError = createGetIsolatedDeclarationErrors(resolver);\n const { stripInternal, isolatedDeclarations } = options;\n return transformRoot;\n function reportExpandoFunctionErrors(node) {\n resolver.getPropertiesOfContainerFunction(node).forEach((p) => {\n if (isExpandoPropertyDeclaration(p.valueDeclaration)) {\n const errorTarget = isBinaryExpression(p.valueDeclaration) ? p.valueDeclaration.left : p.valueDeclaration;\n context.addDiagnostic(createDiagnosticForNode(\n errorTarget,\n Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function\n ));\n }\n });\n }\n function reportInferenceFallback(node) {\n if (!isolatedDeclarations || isSourceFileJS(currentSourceFile)) return;\n if (getSourceFileOfNode(node) !== currentSourceFile) return;\n if (isVariableDeclaration(node) && resolver.isExpandoFunctionDeclaration(node)) {\n reportExpandoFunctionErrors(node);\n } else {\n context.addDiagnostic(getIsolatedDeclarationError(node));\n }\n }\n function handleSymbolAccessibilityError(symbolAccessibilityResult) {\n if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) {\n if (symbolAccessibilityResult.aliasesToMakeVisible) {\n if (!lateMarkedStatements) {\n lateMarkedStatements = symbolAccessibilityResult.aliasesToMakeVisible;\n } else {\n for (const ref of symbolAccessibilityResult.aliasesToMakeVisible) {\n pushIfUnique(lateMarkedStatements, ref);\n }\n }\n }\n } else if (symbolAccessibilityResult.accessibility !== 3 /* NotResolved */) {\n const errorInfo = getSymbolAccessibilityDiagnostic(symbolAccessibilityResult);\n if (errorInfo) {\n if (errorInfo.typeName) {\n context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, getTextOfNode(errorInfo.typeName), symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName));\n } else {\n context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName));\n }\n return true;\n }\n }\n return false;\n }\n function trackSymbol(symbol, enclosingDeclaration2, meaning) {\n if (symbol.flags & 262144 /* TypeParameter */) return false;\n const issuedDiagnostic = handleSymbolAccessibilityError(resolver.isSymbolAccessible(\n symbol,\n enclosingDeclaration2,\n meaning,\n /*shouldComputeAliasToMarkVisible*/\n true\n ));\n return issuedDiagnostic;\n }\n function reportPrivateInBaseOfClassExpression(propertyName) {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(\n addRelatedInfo(\n createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected, propertyName),\n ...isVariableDeclaration((errorNameNode || errorFallbackNode).parent) ? [createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.Add_a_type_annotation_to_the_variable_0, errorDeclarationNameWithFallback())] : []\n )\n );\n }\n }\n function errorDeclarationNameWithFallback() {\n return errorNameNode ? declarationNameToString(errorNameNode) : errorFallbackNode && getNameOfDeclaration(errorFallbackNode) ? declarationNameToString(getNameOfDeclaration(errorFallbackNode)) : errorFallbackNode && isExportAssignment(errorFallbackNode) ? errorFallbackNode.isExportEquals ? \"export=\" : \"default\" : \"(Missing)\";\n }\n function reportInaccessibleUniqueSymbolError() {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), \"unique symbol\"));\n }\n }\n function reportCyclicStructureError() {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary, errorDeclarationNameWithFallback()));\n }\n }\n function reportInaccessibleThisError() {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), \"this\"));\n }\n }\n function reportLikelyUnsafeImportRequiredError(specifier) {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier));\n }\n }\n function reportTruncationError() {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed));\n }\n }\n function reportNonlocalAugmentation(containingFile, parentSymbol, symbol) {\n var _a;\n const primaryDeclaration = (_a = parentSymbol.declarations) == null ? void 0 : _a.find((d) => getSourceFileOfNode(d) === containingFile);\n const augmentingDeclarations = filter(symbol.declarations, (d) => getSourceFileOfNode(d) !== containingFile);\n if (primaryDeclaration && augmentingDeclarations) {\n for (const augmentations of augmentingDeclarations) {\n context.addDiagnostic(addRelatedInfo(\n createDiagnosticForNode(augmentations, Diagnostics.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized),\n createDiagnosticForNode(primaryDeclaration, Diagnostics.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file)\n ));\n }\n }\n }\n function reportNonSerializableProperty(propertyName) {\n if (errorNameNode || errorFallbackNode) {\n context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized, propertyName));\n }\n }\n function transformDeclarationsForJS(sourceFile) {\n const oldDiag = getSymbolAccessibilityDiagnostic;\n getSymbolAccessibilityDiagnostic = (s) => s.errorNode && canProduceDiagnostics(s.errorNode) ? createGetSymbolAccessibilityDiagnosticForNode(s.errorNode)(s) : {\n diagnosticMessage: s.errorModuleName ? Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit : Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,\n errorNode: s.errorNode || sourceFile\n };\n const result = resolver.getDeclarationStatementsForSourceFile(sourceFile, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n getSymbolAccessibilityDiagnostic = oldDiag;\n return result;\n }\n function transformRoot(node) {\n if (node.kind === 308 /* SourceFile */ && node.isDeclarationFile) {\n return node;\n }\n if (node.kind === 309 /* Bundle */) {\n isBundledEmit = true;\n rawReferencedFiles = [];\n rawTypeReferenceDirectives = [];\n rawLibReferenceDirectives = [];\n let hasNoDefaultLib = false;\n const bundle = factory2.createBundle(\n map(node.sourceFiles, (sourceFile) => {\n if (sourceFile.isDeclarationFile) return void 0;\n hasNoDefaultLib = hasNoDefaultLib || sourceFile.hasNoDefaultLib;\n currentSourceFile = sourceFile;\n enclosingDeclaration = sourceFile;\n lateMarkedStatements = void 0;\n suppressNewDiagnosticContexts = false;\n lateStatementReplacementMap = /* @__PURE__ */ new Map();\n getSymbolAccessibilityDiagnostic = throwDiagnostic;\n needsScopeFixMarker = false;\n resultHasScopeMarker = false;\n collectFileReferences(sourceFile);\n if (isExternalOrCommonJsModule(sourceFile) || isJsonSourceFile(sourceFile)) {\n resultHasExternalModuleIndicator = false;\n needsDeclare = false;\n const statements = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement);\n const newFile = factory2.updateSourceFile(\n sourceFile,\n [factory2.createModuleDeclaration(\n [factory2.createModifier(138 /* DeclareKeyword */)],\n factory2.createStringLiteral(getResolvedExternalModuleName(context.getEmitHost(), sourceFile)),\n factory2.createModuleBlock(setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), sourceFile.statements))\n )],\n /*isDeclarationFile*/\n true,\n /*referencedFiles*/\n [],\n /*typeReferences*/\n [],\n /*hasNoDefaultLib*/\n false,\n /*libReferences*/\n []\n );\n return newFile;\n }\n needsDeclare = true;\n const updated = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement);\n return factory2.updateSourceFile(\n sourceFile,\n transformAndReplaceLatePaintedStatements(updated),\n /*isDeclarationFile*/\n true,\n /*referencedFiles*/\n [],\n /*typeReferences*/\n [],\n /*hasNoDefaultLib*/\n false,\n /*libReferences*/\n []\n );\n })\n );\n const outputFilePath2 = getDirectoryPath(normalizeSlashes(getOutputPathsFor(\n node,\n host,\n /*forceDtsPaths*/\n true\n ).declarationFilePath));\n bundle.syntheticFileReferences = getReferencedFiles(outputFilePath2);\n bundle.syntheticTypeReferences = getTypeReferences();\n bundle.syntheticLibReferences = getLibReferences();\n bundle.hasNoDefaultLib = hasNoDefaultLib;\n return bundle;\n }\n needsDeclare = true;\n needsScopeFixMarker = false;\n resultHasScopeMarker = false;\n enclosingDeclaration = node;\n currentSourceFile = node;\n getSymbolAccessibilityDiagnostic = throwDiagnostic;\n isBundledEmit = false;\n resultHasExternalModuleIndicator = false;\n suppressNewDiagnosticContexts = false;\n lateMarkedStatements = void 0;\n lateStatementReplacementMap = /* @__PURE__ */ new Map();\n rawReferencedFiles = [];\n rawTypeReferenceDirectives = [];\n rawLibReferenceDirectives = [];\n collectFileReferences(currentSourceFile);\n let combinedStatements;\n if (isSourceFileJS(currentSourceFile)) {\n combinedStatements = factory2.createNodeArray(transformDeclarationsForJS(node));\n } else {\n const statements = visitNodes2(node.statements, visitDeclarationStatements, isStatement);\n combinedStatements = setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), node.statements);\n if (isExternalModule(node) && (!resultHasExternalModuleIndicator || needsScopeFixMarker && !resultHasScopeMarker)) {\n combinedStatements = setTextRange(factory2.createNodeArray([...combinedStatements, createEmptyExports(factory2)]), combinedStatements);\n }\n }\n const outputFilePath = getDirectoryPath(normalizeSlashes(getOutputPathsFor(\n node,\n host,\n /*forceDtsPaths*/\n true\n ).declarationFilePath));\n return factory2.updateSourceFile(\n node,\n combinedStatements,\n /*isDeclarationFile*/\n true,\n getReferencedFiles(outputFilePath),\n getTypeReferences(),\n node.hasNoDefaultLib,\n getLibReferences()\n );\n function collectFileReferences(sourceFile) {\n rawReferencedFiles = concatenate(rawReferencedFiles, map(sourceFile.referencedFiles, (f) => [sourceFile, f]));\n rawTypeReferenceDirectives = concatenate(rawTypeReferenceDirectives, sourceFile.typeReferenceDirectives);\n rawLibReferenceDirectives = concatenate(rawLibReferenceDirectives, sourceFile.libReferenceDirectives);\n }\n function copyFileReferenceAsSynthetic(ref) {\n const newRef = { ...ref };\n newRef.pos = -1;\n newRef.end = -1;\n return newRef;\n }\n function getTypeReferences() {\n return mapDefined(rawTypeReferenceDirectives, (ref) => {\n if (!ref.preserve) return void 0;\n return copyFileReferenceAsSynthetic(ref);\n });\n }\n function getLibReferences() {\n return mapDefined(rawLibReferenceDirectives, (ref) => {\n if (!ref.preserve) return void 0;\n return copyFileReferenceAsSynthetic(ref);\n });\n }\n function getReferencedFiles(outputFilePath2) {\n return mapDefined(rawReferencedFiles, ([sourceFile, ref]) => {\n if (!ref.preserve) return void 0;\n const file = host.getSourceFileFromReference(sourceFile, ref);\n if (!file) {\n return void 0;\n }\n let declFileName;\n if (file.isDeclarationFile) {\n declFileName = file.fileName;\n } else {\n if (isBundledEmit && contains(node.sourceFiles, file)) return;\n const paths = getOutputPathsFor(\n file,\n host,\n /*forceDtsPaths*/\n true\n );\n declFileName = paths.declarationFilePath || paths.jsFilePath || file.fileName;\n }\n if (!declFileName) return void 0;\n const fileName = getRelativePathToDirectoryOrUrl(\n outputFilePath2,\n declFileName,\n host.getCurrentDirectory(),\n host.getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n false\n );\n const newRef = copyFileReferenceAsSynthetic(ref);\n newRef.fileName = fileName;\n return newRef;\n });\n }\n }\n function filterBindingPatternInitializers(name) {\n if (name.kind === 80 /* Identifier */) {\n return name;\n } else {\n if (name.kind === 208 /* ArrayBindingPattern */) {\n return factory2.updateArrayBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isArrayBindingElement));\n } else {\n return factory2.updateObjectBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isBindingElement));\n }\n }\n function visitBindingElement(elem) {\n if (elem.kind === 233 /* OmittedExpression */) {\n return elem;\n }\n if (elem.propertyName && isComputedPropertyName(elem.propertyName) && isEntityNameExpression(elem.propertyName.expression)) {\n checkEntityNameVisibility(elem.propertyName.expression, enclosingDeclaration);\n }\n return factory2.updateBindingElement(\n elem,\n elem.dotDotDotToken,\n elem.propertyName,\n filterBindingPatternInitializers(elem.name),\n /*initializer*/\n void 0\n );\n }\n }\n function ensureParameter(p, modifierMask) {\n let oldDiag;\n if (!suppressNewDiagnosticContexts) {\n oldDiag = getSymbolAccessibilityDiagnostic;\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p);\n }\n const newParam = factory2.updateParameterDeclaration(\n p,\n maskModifiers(factory2, p, modifierMask),\n p.dotDotDotToken,\n filterBindingPatternInitializers(p.name),\n resolver.isOptionalParameter(p) ? p.questionToken || factory2.createToken(58 /* QuestionToken */) : void 0,\n ensureType(\n p,\n /*ignorePrivate*/\n true\n ),\n // Ignore private param props, since this type is going straight back into a param\n ensureNoInitializer(p)\n );\n if (!suppressNewDiagnosticContexts) {\n getSymbolAccessibilityDiagnostic = oldDiag;\n }\n return newParam;\n }\n function shouldPrintWithInitializer(node) {\n return canHaveLiteralInitializer(node) && !!node.initializer && resolver.isLiteralConstDeclaration(getParseTreeNode(node));\n }\n function ensureNoInitializer(node) {\n if (shouldPrintWithInitializer(node)) {\n const unwrappedInitializer = unwrapParenthesizedExpression(node.initializer);\n if (!isPrimitiveLiteralValue(unwrappedInitializer)) {\n reportInferenceFallback(node);\n }\n return resolver.createLiteralConstValue(getParseTreeNode(node, canHaveLiteralInitializer), symbolTracker);\n }\n return void 0;\n }\n function ensureType(node, ignorePrivate) {\n if (!ignorePrivate && hasEffectiveModifier(node, 2 /* Private */)) {\n return;\n }\n if (shouldPrintWithInitializer(node)) {\n return;\n }\n if (!isExportAssignment(node) && !isBindingElement(node) && node.type && (!isParameter(node) || !resolver.requiresAddingImplicitUndefined(node, enclosingDeclaration))) {\n return visitNode(node.type, visitDeclarationSubtree, isTypeNode);\n }\n const oldErrorNameNode = errorNameNode;\n errorNameNode = node.name;\n let oldDiag;\n if (!suppressNewDiagnosticContexts) {\n oldDiag = getSymbolAccessibilityDiagnostic;\n if (canProduceDiagnostics(node)) {\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node);\n }\n }\n let typeNode;\n if (hasInferredType(node)) {\n typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n } else if (isFunctionLike(node)) {\n typeNode = resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n } else {\n Debug.assertNever(node);\n }\n errorNameNode = oldErrorNameNode;\n if (!suppressNewDiagnosticContexts) {\n getSymbolAccessibilityDiagnostic = oldDiag;\n }\n return typeNode ?? factory2.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function isDeclarationAndNotVisible(node) {\n node = getParseTreeNode(node);\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 264 /* ClassDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n return !resolver.isDeclarationVisible(node);\n // The following should be doing their own visibility checks based on filtering their members\n case 261 /* VariableDeclaration */:\n return !getBindingNameVisible(node);\n case 272 /* ImportEqualsDeclaration */:\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 278 /* ExportAssignment */:\n return false;\n case 176 /* ClassStaticBlockDeclaration */:\n return true;\n }\n return false;\n }\n function shouldEmitFunctionProperties(input) {\n var _a;\n if (input.body) {\n return true;\n }\n const overloadSignatures = (_a = input.symbol.declarations) == null ? void 0 : _a.filter((decl) => isFunctionDeclaration(decl) && !decl.body);\n return !overloadSignatures || overloadSignatures.indexOf(input) === overloadSignatures.length - 1;\n }\n function getBindingNameVisible(elem) {\n if (isOmittedExpression(elem)) {\n return false;\n }\n if (isBindingPattern(elem.name)) {\n return some(elem.name.elements, getBindingNameVisible);\n } else {\n return resolver.isDeclarationVisible(elem);\n }\n }\n function updateParamsList(node, params, modifierMask) {\n if (hasEffectiveModifier(node, 2 /* Private */)) {\n return factory2.createNodeArray();\n }\n const newParams = map(params, (p) => ensureParameter(p, modifierMask));\n if (!newParams) {\n return factory2.createNodeArray();\n }\n return factory2.createNodeArray(newParams, params.hasTrailingComma);\n }\n function updateAccessorParamsList(input, isPrivate) {\n let newParams;\n if (!isPrivate) {\n const thisParameter = getThisParameter(input);\n if (thisParameter) {\n newParams = [ensureParameter(thisParameter)];\n }\n }\n if (isSetAccessorDeclaration(input)) {\n let newValueParameter;\n if (!isPrivate) {\n const valueParameter = getSetAccessorValueParameter(input);\n if (valueParameter) {\n newValueParameter = ensureParameter(valueParameter);\n }\n }\n if (!newValueParameter) {\n newValueParameter = factory2.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"value\"\n );\n }\n newParams = append(newParams, newValueParameter);\n }\n return factory2.createNodeArray(newParams || emptyArray);\n }\n function ensureTypeParams(node, params) {\n return hasEffectiveModifier(node, 2 /* Private */) ? void 0 : visitNodes2(params, visitDeclarationSubtree, isTypeParameterDeclaration);\n }\n function isEnclosingDeclaration(node) {\n return isSourceFile(node) || isTypeAliasDeclaration(node) || isModuleDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionLike(node) || isIndexSignatureDeclaration(node) || isMappedTypeNode(node);\n }\n function checkEntityNameVisibility(entityName, enclosingDeclaration2) {\n const visibilityResult = resolver.isEntityNameVisible(entityName, enclosingDeclaration2);\n handleSymbolAccessibilityError(visibilityResult);\n }\n function preserveJsDoc(updated, original) {\n if (hasJSDocNodes(updated) && hasJSDocNodes(original)) {\n updated.jsDoc = original.jsDoc;\n }\n return setCommentRange(updated, getCommentRange(original));\n }\n function rewriteModuleSpecifier2(parent2, input) {\n if (!input) return void 0;\n resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent2.kind !== 268 /* ModuleDeclaration */ && parent2.kind !== 206 /* ImportType */;\n if (isStringLiteralLike(input)) {\n if (isBundledEmit) {\n const newName = getExternalModuleNameFromDeclaration(context.getEmitHost(), resolver, parent2);\n if (newName) {\n return factory2.createStringLiteral(newName);\n }\n }\n }\n return input;\n }\n function transformImportEqualsDeclaration(decl) {\n if (!resolver.isDeclarationVisible(decl)) return;\n if (decl.moduleReference.kind === 284 /* ExternalModuleReference */) {\n const specifier = getExternalModuleImportEqualsDeclarationExpression(decl);\n return factory2.updateImportEqualsDeclaration(\n decl,\n decl.modifiers,\n decl.isTypeOnly,\n decl.name,\n factory2.updateExternalModuleReference(decl.moduleReference, rewriteModuleSpecifier2(decl, specifier))\n );\n } else {\n const oldDiag = getSymbolAccessibilityDiagnostic;\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(decl);\n checkEntityNameVisibility(decl.moduleReference, enclosingDeclaration);\n getSymbolAccessibilityDiagnostic = oldDiag;\n return decl;\n }\n }\n function transformImportDeclaration(decl) {\n if (!decl.importClause) {\n return factory2.updateImportDeclaration(\n decl,\n decl.modifiers,\n decl.importClause,\n rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n tryGetResolutionModeOverride(decl.attributes)\n );\n }\n const phaseModifier = decl.importClause.phaseModifier === 166 /* DeferKeyword */ ? void 0 : decl.importClause.phaseModifier;\n const visibleDefaultBinding = decl.importClause && decl.importClause.name && resolver.isDeclarationVisible(decl.importClause) ? decl.importClause.name : void 0;\n if (!decl.importClause.namedBindings) {\n return visibleDefaultBinding && factory2.updateImportDeclaration(\n decl,\n decl.modifiers,\n factory2.updateImportClause(\n decl.importClause,\n phaseModifier,\n visibleDefaultBinding,\n /*namedBindings*/\n void 0\n ),\n rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n tryGetResolutionModeOverride(decl.attributes)\n );\n }\n if (decl.importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n const namedBindings = resolver.isDeclarationVisible(decl.importClause.namedBindings) ? decl.importClause.namedBindings : (\n /*namedBindings*/\n void 0\n );\n return visibleDefaultBinding || namedBindings ? factory2.updateImportDeclaration(\n decl,\n decl.modifiers,\n factory2.updateImportClause(\n decl.importClause,\n phaseModifier,\n visibleDefaultBinding,\n namedBindings\n ),\n rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n tryGetResolutionModeOverride(decl.attributes)\n ) : void 0;\n }\n const bindingList = mapDefined(decl.importClause.namedBindings.elements, (b) => resolver.isDeclarationVisible(b) ? b : void 0);\n if (bindingList && bindingList.length || visibleDefaultBinding) {\n return factory2.updateImportDeclaration(\n decl,\n decl.modifiers,\n factory2.updateImportClause(\n decl.importClause,\n phaseModifier,\n visibleDefaultBinding,\n bindingList && bindingList.length ? factory2.updateNamedImports(decl.importClause.namedBindings, bindingList) : void 0\n ),\n rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n tryGetResolutionModeOverride(decl.attributes)\n );\n }\n if (resolver.isImportRequiredByAugmentation(decl)) {\n if (isolatedDeclarations) {\n context.addDiagnostic(createDiagnosticForNode(decl, Diagnostics.Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations));\n }\n return factory2.updateImportDeclaration(\n decl,\n decl.modifiers,\n /*importClause*/\n void 0,\n rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n tryGetResolutionModeOverride(decl.attributes)\n );\n }\n }\n function tryGetResolutionModeOverride(node) {\n const mode = getResolutionModeOverride(node);\n return node && mode !== void 0 ? node : void 0;\n }\n function transformAndReplaceLatePaintedStatements(statements) {\n while (length(lateMarkedStatements)) {\n const i = lateMarkedStatements.shift();\n if (!isLateVisibilityPaintedStatement(i)) {\n return Debug.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${Debug.formatSyntaxKind(i.kind)}`);\n }\n const priorNeedsDeclare = needsDeclare;\n needsDeclare = i.parent && isSourceFile(i.parent) && !(isExternalModule(i.parent) && isBundledEmit);\n const result = transformTopLevelDeclaration(i);\n needsDeclare = priorNeedsDeclare;\n lateStatementReplacementMap.set(getOriginalNodeId(i), result);\n }\n return visitNodes2(statements, visitLateVisibilityMarkedStatements, isStatement);\n function visitLateVisibilityMarkedStatements(statement) {\n if (isLateVisibilityPaintedStatement(statement)) {\n const key = getOriginalNodeId(statement);\n if (lateStatementReplacementMap.has(key)) {\n const result = lateStatementReplacementMap.get(key);\n lateStatementReplacementMap.delete(key);\n if (result) {\n if (isArray(result) ? some(result, needsScopeMarker) : needsScopeMarker(result)) {\n needsScopeFixMarker = true;\n }\n if (isSourceFile(statement.parent) && (isArray(result) ? some(result, isExternalModuleIndicator) : isExternalModuleIndicator(result))) {\n resultHasExternalModuleIndicator = true;\n }\n }\n return result;\n }\n }\n return statement;\n }\n }\n function visitDeclarationSubtree(input) {\n if (shouldStripInternal(input)) return;\n if (isDeclaration(input)) {\n if (isDeclarationAndNotVisible(input)) return;\n if (hasDynamicName(input)) {\n if (isolatedDeclarations) {\n if (!resolver.isDefinitelyReferenceToGlobalSymbolObject(input.name.expression)) {\n if (isClassDeclaration(input.parent) || isObjectLiteralExpression(input.parent)) {\n context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations));\n return;\n } else if (\n // Type declarations just need to double-check that the input computed name is an entity name expression\n (isInterfaceDeclaration(input.parent) || isTypeLiteralNode(input.parent)) && !isEntityNameExpression(input.name.expression)\n ) {\n context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations));\n return;\n }\n }\n } else if (!resolver.isLateBound(getParseTreeNode(input)) || !isEntityNameExpression(input.name.expression)) {\n return;\n }\n }\n }\n if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) return;\n if (isSemicolonClassElement(input)) return;\n let previousEnclosingDeclaration;\n if (isEnclosingDeclaration(input)) {\n previousEnclosingDeclaration = enclosingDeclaration;\n enclosingDeclaration = input;\n }\n const oldDiag = getSymbolAccessibilityDiagnostic;\n const canProduceDiagnostic = canProduceDiagnostics(input);\n const oldWithinObjectLiteralType = suppressNewDiagnosticContexts;\n let shouldEnterSuppressNewDiagnosticsContextContext = (input.kind === 188 /* TypeLiteral */ || input.kind === 201 /* MappedType */) && input.parent.kind !== 266 /* TypeAliasDeclaration */;\n if (isMethodDeclaration(input) || isMethodSignature(input)) {\n if (hasEffectiveModifier(input, 2 /* Private */)) {\n if (input.symbol && input.symbol.declarations && input.symbol.declarations[0] !== input) return;\n return cleanup(factory2.createPropertyDeclaration(\n ensureModifiers(input),\n input.name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ));\n }\n }\n if (canProduceDiagnostic && !suppressNewDiagnosticContexts) {\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input);\n }\n if (isTypeQueryNode(input)) {\n checkEntityNameVisibility(input.exprName, enclosingDeclaration);\n }\n if (shouldEnterSuppressNewDiagnosticsContextContext) {\n suppressNewDiagnosticContexts = true;\n }\n if (isProcessedComponent(input)) {\n switch (input.kind) {\n case 234 /* ExpressionWithTypeArguments */: {\n if (isEntityName(input.expression) || isEntityNameExpression(input.expression)) {\n checkEntityNameVisibility(input.expression, enclosingDeclaration);\n }\n const node = visitEachChild(input, visitDeclarationSubtree, context);\n return cleanup(factory2.updateExpressionWithTypeArguments(node, node.expression, node.typeArguments));\n }\n case 184 /* TypeReference */: {\n checkEntityNameVisibility(input.typeName, enclosingDeclaration);\n const node = visitEachChild(input, visitDeclarationSubtree, context);\n return cleanup(factory2.updateTypeReferenceNode(node, node.typeName, node.typeArguments));\n }\n case 181 /* ConstructSignature */:\n return cleanup(factory2.updateConstructSignature(\n input,\n ensureTypeParams(input, input.typeParameters),\n updateParamsList(input, input.parameters),\n ensureType(input)\n ));\n case 177 /* Constructor */: {\n const ctor = factory2.createConstructorDeclaration(\n /*modifiers*/\n ensureModifiers(input),\n updateParamsList(input, input.parameters, 0 /* None */),\n /*body*/\n void 0\n );\n return cleanup(ctor);\n }\n case 175 /* MethodDeclaration */: {\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n const sig = factory2.createMethodDeclaration(\n ensureModifiers(input),\n /*asteriskToken*/\n void 0,\n input.name,\n input.questionToken,\n ensureTypeParams(input, input.typeParameters),\n updateParamsList(input, input.parameters),\n ensureType(input),\n /*body*/\n void 0\n );\n return cleanup(sig);\n }\n case 178 /* GetAccessor */: {\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n return cleanup(factory2.updateGetAccessorDeclaration(\n input,\n ensureModifiers(input),\n input.name,\n updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),\n ensureType(input),\n /*body*/\n void 0\n ));\n }\n case 179 /* SetAccessor */: {\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n return cleanup(factory2.updateSetAccessorDeclaration(\n input,\n ensureModifiers(input),\n input.name,\n updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),\n /*body*/\n void 0\n ));\n }\n case 173 /* PropertyDeclaration */:\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n return cleanup(factory2.updatePropertyDeclaration(\n input,\n ensureModifiers(input),\n input.name,\n input.questionToken,\n ensureType(input),\n ensureNoInitializer(input)\n ));\n case 172 /* PropertySignature */:\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n return cleanup(factory2.updatePropertySignature(\n input,\n ensureModifiers(input),\n input.name,\n input.questionToken,\n ensureType(input)\n ));\n case 174 /* MethodSignature */: {\n if (isPrivateIdentifier(input.name)) {\n return cleanup(\n /*returnValue*/\n void 0\n );\n }\n return cleanup(factory2.updateMethodSignature(\n input,\n ensureModifiers(input),\n input.name,\n input.questionToken,\n ensureTypeParams(input, input.typeParameters),\n updateParamsList(input, input.parameters),\n ensureType(input)\n ));\n }\n case 180 /* CallSignature */: {\n return cleanup(\n factory2.updateCallSignature(\n input,\n ensureTypeParams(input, input.typeParameters),\n updateParamsList(input, input.parameters),\n ensureType(input)\n )\n );\n }\n case 182 /* IndexSignature */: {\n return cleanup(factory2.updateIndexSignature(\n input,\n ensureModifiers(input),\n updateParamsList(input, input.parameters),\n visitNode(input.type, visitDeclarationSubtree, isTypeNode) || factory2.createKeywordTypeNode(133 /* AnyKeyword */)\n ));\n }\n case 261 /* VariableDeclaration */: {\n if (isBindingPattern(input.name)) {\n return recreateBindingPattern(input.name);\n }\n shouldEnterSuppressNewDiagnosticsContextContext = true;\n suppressNewDiagnosticContexts = true;\n return cleanup(factory2.updateVariableDeclaration(\n input,\n input.name,\n /*exclamationToken*/\n void 0,\n ensureType(input),\n ensureNoInitializer(input)\n ));\n }\n case 169 /* TypeParameter */: {\n if (isPrivateMethodTypeParameter(input) && (input.default || input.constraint)) {\n return cleanup(factory2.updateTypeParameterDeclaration(\n input,\n input.modifiers,\n input.name,\n /*constraint*/\n void 0,\n /*defaultType*/\n void 0\n ));\n }\n return cleanup(visitEachChild(input, visitDeclarationSubtree, context));\n }\n case 195 /* ConditionalType */: {\n const checkType = visitNode(input.checkType, visitDeclarationSubtree, isTypeNode);\n const extendsType = visitNode(input.extendsType, visitDeclarationSubtree, isTypeNode);\n const oldEnclosingDecl = enclosingDeclaration;\n enclosingDeclaration = input.trueType;\n const trueType = visitNode(input.trueType, visitDeclarationSubtree, isTypeNode);\n enclosingDeclaration = oldEnclosingDecl;\n const falseType = visitNode(input.falseType, visitDeclarationSubtree, isTypeNode);\n Debug.assert(checkType);\n Debug.assert(extendsType);\n Debug.assert(trueType);\n Debug.assert(falseType);\n return cleanup(factory2.updateConditionalTypeNode(input, checkType, extendsType, trueType, falseType));\n }\n case 185 /* FunctionType */: {\n return cleanup(factory2.updateFunctionTypeNode(\n input,\n visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n updateParamsList(input, input.parameters),\n Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n ));\n }\n case 186 /* ConstructorType */: {\n return cleanup(factory2.updateConstructorTypeNode(\n input,\n ensureModifiers(input),\n visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n updateParamsList(input, input.parameters),\n Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n ));\n }\n case 206 /* ImportType */: {\n if (!isLiteralImportTypeNode(input)) return cleanup(input);\n return cleanup(factory2.updateImportTypeNode(\n input,\n factory2.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier2(input, input.argument.literal)),\n input.attributes,\n input.qualifier,\n visitNodes2(input.typeArguments, visitDeclarationSubtree, isTypeNode),\n input.isTypeOf\n ));\n }\n default:\n Debug.assertNever(input, `Attempted to process unhandled node kind: ${Debug.formatSyntaxKind(input.kind)}`);\n }\n }\n if (isTupleTypeNode(input) && getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === getLineAndCharacterOfPosition(currentSourceFile, input.end).line) {\n setEmitFlags(input, 1 /* SingleLine */);\n }\n return cleanup(visitEachChild(input, visitDeclarationSubtree, context));\n function cleanup(returnValue) {\n if (returnValue && canProduceDiagnostic && hasDynamicName(input)) {\n checkName(input);\n }\n if (isEnclosingDeclaration(input)) {\n enclosingDeclaration = previousEnclosingDeclaration;\n }\n if (canProduceDiagnostic && !suppressNewDiagnosticContexts) {\n getSymbolAccessibilityDiagnostic = oldDiag;\n }\n if (shouldEnterSuppressNewDiagnosticsContextContext) {\n suppressNewDiagnosticContexts = oldWithinObjectLiteralType;\n }\n if (returnValue === input) {\n return returnValue;\n }\n return returnValue && setOriginalNode(preserveJsDoc(returnValue, input), input);\n }\n }\n function isPrivateMethodTypeParameter(node) {\n return node.parent.kind === 175 /* MethodDeclaration */ && hasEffectiveModifier(node.parent, 2 /* Private */);\n }\n function visitDeclarationStatements(input) {\n if (!isPreservedDeclarationStatement(input)) {\n return;\n }\n if (shouldStripInternal(input)) return;\n switch (input.kind) {\n case 279 /* ExportDeclaration */: {\n if (isSourceFile(input.parent)) {\n resultHasExternalModuleIndicator = true;\n }\n resultHasScopeMarker = true;\n return factory2.updateExportDeclaration(\n input,\n input.modifiers,\n input.isTypeOnly,\n input.exportClause,\n rewriteModuleSpecifier2(input, input.moduleSpecifier),\n tryGetResolutionModeOverride(input.attributes)\n );\n }\n case 278 /* ExportAssignment */: {\n if (isSourceFile(input.parent)) {\n resultHasExternalModuleIndicator = true;\n }\n resultHasScopeMarker = true;\n if (input.expression.kind === 80 /* Identifier */) {\n return input;\n } else {\n const newId = factory2.createUniqueName(\"_default\", 16 /* Optimistic */);\n getSymbolAccessibilityDiagnostic = () => ({\n diagnosticMessage: Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,\n errorNode: input\n });\n errorFallbackNode = input;\n const type = ensureType(input);\n const varDecl = factory2.createVariableDeclaration(\n newId,\n /*exclamationToken*/\n void 0,\n type,\n /*initializer*/\n void 0\n );\n errorFallbackNode = void 0;\n const statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */));\n preserveJsDoc(statement, input);\n removeAllComments(input);\n return [statement, factory2.updateExportAssignment(input, input.modifiers, newId)];\n }\n }\n }\n const result = transformTopLevelDeclaration(input);\n lateStatementReplacementMap.set(getOriginalNodeId(input), result);\n return input;\n }\n function stripExportModifiers(statement) {\n if (isImportEqualsDeclaration(statement) || hasEffectiveModifier(statement, 2048 /* Default */) || !canHaveModifiers(statement)) {\n return statement;\n }\n const modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(statement) & (131071 /* All */ ^ 32 /* Export */));\n return factory2.replaceModifiers(statement, modifiers);\n }\n function updateModuleDeclarationAndKeyword(node, modifiers, name, body) {\n const updated = factory2.updateModuleDeclaration(node, modifiers, name, body);\n if (isAmbientModule(updated) || updated.flags & 32 /* Namespace */) {\n return updated;\n }\n const fixed = factory2.createModuleDeclaration(\n updated.modifiers,\n updated.name,\n updated.body,\n updated.flags | 32 /* Namespace */\n );\n setOriginalNode(fixed, updated);\n setTextRange(fixed, updated);\n return fixed;\n }\n function transformTopLevelDeclaration(input) {\n if (lateMarkedStatements) {\n while (orderedRemoveItem(lateMarkedStatements, input)) ;\n }\n if (shouldStripInternal(input)) return;\n switch (input.kind) {\n case 272 /* ImportEqualsDeclaration */: {\n return transformImportEqualsDeclaration(input);\n }\n case 273 /* ImportDeclaration */: {\n return transformImportDeclaration(input);\n }\n }\n if (isDeclaration(input) && isDeclarationAndNotVisible(input)) return;\n if (isJSDocImportTag(input)) return;\n if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) return;\n let previousEnclosingDeclaration;\n if (isEnclosingDeclaration(input)) {\n previousEnclosingDeclaration = enclosingDeclaration;\n enclosingDeclaration = input;\n }\n const canProdiceDiagnostic = canProduceDiagnostics(input);\n const oldDiag = getSymbolAccessibilityDiagnostic;\n if (canProdiceDiagnostic) {\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input);\n }\n const previousNeedsDeclare = needsDeclare;\n switch (input.kind) {\n case 266 /* TypeAliasDeclaration */: {\n needsDeclare = false;\n const clean2 = cleanup(factory2.updateTypeAliasDeclaration(\n input,\n ensureModifiers(input),\n input.name,\n visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n ));\n needsDeclare = previousNeedsDeclare;\n return clean2;\n }\n case 265 /* InterfaceDeclaration */: {\n return cleanup(factory2.updateInterfaceDeclaration(\n input,\n ensureModifiers(input),\n input.name,\n ensureTypeParams(input, input.typeParameters),\n transformHeritageClauses(input.heritageClauses),\n visitNodes2(input.members, visitDeclarationSubtree, isTypeElement)\n ));\n }\n case 263 /* FunctionDeclaration */: {\n const clean2 = cleanup(factory2.updateFunctionDeclaration(\n input,\n ensureModifiers(input),\n /*asteriskToken*/\n void 0,\n input.name,\n ensureTypeParams(input, input.typeParameters),\n updateParamsList(input, input.parameters),\n ensureType(input),\n /*body*/\n void 0\n ));\n if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) {\n const props = resolver.getPropertiesOfContainerFunction(input);\n if (isolatedDeclarations) {\n reportExpandoFunctionErrors(input);\n }\n const fakespace = parseNodeFactory.createModuleDeclaration(\n /*modifiers*/\n void 0,\n clean2.name || factory2.createIdentifier(\"_default\"),\n factory2.createModuleBlock([]),\n 32 /* Namespace */\n );\n setParent(fakespace, enclosingDeclaration);\n fakespace.locals = createSymbolTable(props);\n fakespace.symbol = props[0].parent;\n const exportMappings = [];\n let declarations = mapDefined(props, (p) => {\n if (!isExpandoPropertyDeclaration(p.valueDeclaration)) {\n return void 0;\n }\n const nameStr = unescapeLeadingUnderscores(p.escapedName);\n if (!isIdentifierText(nameStr, 99 /* ESNext */)) {\n return void 0;\n }\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration);\n const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags | 2 /* NoSyntacticPrinter */, symbolTracker);\n getSymbolAccessibilityDiagnostic = oldDiag;\n const isNonContextualKeywordName = isStringANonContextualKeyword(nameStr);\n const name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr);\n if (isNonContextualKeywordName) {\n exportMappings.push([name, nameStr]);\n }\n const varDecl = factory2.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n type,\n /*initializer*/\n void 0\n );\n return factory2.createVariableStatement(isNonContextualKeywordName ? void 0 : [factory2.createToken(95 /* ExportKeyword */)], factory2.createVariableDeclarationList([varDecl]));\n });\n if (!exportMappings.length) {\n declarations = mapDefined(declarations, (declaration) => factory2.replaceModifiers(declaration, 0 /* None */));\n } else {\n declarations.push(factory2.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory2.createNamedExports(map(exportMappings, ([gen, exp]) => {\n return factory2.createExportSpecifier(\n /*isTypeOnly*/\n false,\n gen,\n exp\n );\n }))\n ));\n }\n const namespaceDecl = factory2.createModuleDeclaration(ensureModifiers(input), input.name, factory2.createModuleBlock(declarations), 32 /* Namespace */);\n if (!hasEffectiveModifier(clean2, 2048 /* Default */)) {\n return [clean2, namespaceDecl];\n }\n const modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(clean2) & ~2080 /* ExportDefault */ | 128 /* Ambient */);\n const cleanDeclaration = factory2.updateFunctionDeclaration(\n clean2,\n modifiers,\n /*asteriskToken*/\n void 0,\n clean2.name,\n clean2.typeParameters,\n clean2.parameters,\n clean2.type,\n /*body*/\n void 0\n );\n const namespaceDeclaration = factory2.updateModuleDeclaration(\n namespaceDecl,\n modifiers,\n namespaceDecl.name,\n namespaceDecl.body\n );\n const exportDefaultDeclaration = factory2.createExportAssignment(\n /*modifiers*/\n void 0,\n /*isExportEquals*/\n false,\n namespaceDecl.name\n );\n if (isSourceFile(input.parent)) {\n resultHasExternalModuleIndicator = true;\n }\n resultHasScopeMarker = true;\n return [cleanDeclaration, namespaceDeclaration, exportDefaultDeclaration];\n } else {\n return clean2;\n }\n }\n case 268 /* ModuleDeclaration */: {\n needsDeclare = false;\n const inner = input.body;\n if (inner && inner.kind === 269 /* ModuleBlock */) {\n const oldNeedsScopeFix = needsScopeFixMarker;\n const oldHasScopeFix = resultHasScopeMarker;\n resultHasScopeMarker = false;\n needsScopeFixMarker = false;\n const statements = visitNodes2(inner.statements, visitDeclarationStatements, isStatement);\n let lateStatements = transformAndReplaceLatePaintedStatements(statements);\n if (input.flags & 33554432 /* Ambient */) {\n needsScopeFixMarker = false;\n }\n if (!isGlobalScopeAugmentation(input) && !hasScopeMarker2(lateStatements) && !resultHasScopeMarker) {\n if (needsScopeFixMarker) {\n lateStatements = factory2.createNodeArray([...lateStatements, createEmptyExports(factory2)]);\n } else {\n lateStatements = visitNodes2(lateStatements, stripExportModifiers, isStatement);\n }\n }\n const body = factory2.updateModuleBlock(inner, lateStatements);\n needsDeclare = previousNeedsDeclare;\n needsScopeFixMarker = oldNeedsScopeFix;\n resultHasScopeMarker = oldHasScopeFix;\n const mods = ensureModifiers(input);\n return cleanup(updateModuleDeclarationAndKeyword(\n input,\n mods,\n isExternalModuleAugmentation(input) ? rewriteModuleSpecifier2(input, input.name) : input.name,\n body\n ));\n } else {\n needsDeclare = previousNeedsDeclare;\n const mods = ensureModifiers(input);\n needsDeclare = false;\n visitNode(inner, visitDeclarationStatements);\n const id = getOriginalNodeId(inner);\n const body = lateStatementReplacementMap.get(id);\n lateStatementReplacementMap.delete(id);\n return cleanup(updateModuleDeclarationAndKeyword(\n input,\n mods,\n input.name,\n body\n ));\n }\n }\n case 264 /* ClassDeclaration */: {\n errorNameNode = input.name;\n errorFallbackNode = input;\n const modifiers = factory2.createNodeArray(ensureModifiers(input));\n const typeParameters = ensureTypeParams(input, input.typeParameters);\n const ctor = getFirstConstructorWithBody(input);\n let parameterProperties;\n if (ctor) {\n const oldDiag2 = getSymbolAccessibilityDiagnostic;\n parameterProperties = compact(flatMap(ctor.parameters, (param) => {\n if (!hasSyntacticModifier(param, 31 /* ParameterPropertyModifier */) || shouldStripInternal(param)) return;\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(param);\n if (param.name.kind === 80 /* Identifier */) {\n return preserveJsDoc(\n factory2.createPropertyDeclaration(\n ensureModifiers(param),\n param.name,\n param.questionToken,\n ensureType(param),\n ensureNoInitializer(param)\n ),\n param\n );\n } else {\n return walkBindingPattern(param.name);\n }\n function walkBindingPattern(pattern) {\n let elems;\n for (const elem of pattern.elements) {\n if (isOmittedExpression(elem)) continue;\n if (isBindingPattern(elem.name)) {\n elems = concatenate(elems, walkBindingPattern(elem.name));\n }\n elems = elems || [];\n elems.push(factory2.createPropertyDeclaration(\n ensureModifiers(param),\n elem.name,\n /*questionOrExclamationToken*/\n void 0,\n ensureType(elem),\n /*initializer*/\n void 0\n ));\n }\n return elems;\n }\n }));\n getSymbolAccessibilityDiagnostic = oldDiag2;\n }\n const hasPrivateIdentifier = some(input.members, (member) => !!member.name && isPrivateIdentifier(member.name));\n const privateIdentifier = hasPrivateIdentifier ? [\n factory2.createPropertyDeclaration(\n /*modifiers*/\n void 0,\n factory2.createPrivateIdentifier(\"#private\"),\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n )\n ] : void 0;\n const lateIndexes = resolver.createLateBoundIndexSignatures(input, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n const memberNodes = concatenate(concatenate(concatenate(privateIdentifier, lateIndexes), parameterProperties), visitNodes2(input.members, visitDeclarationSubtree, isClassElement));\n const members = factory2.createNodeArray(memberNodes);\n const extendsClause = getEffectiveBaseTypeNode(input);\n if (extendsClause && !isEntityNameExpression(extendsClause.expression) && extendsClause.expression.kind !== 106 /* NullKeyword */) {\n const oldId = input.name ? unescapeLeadingUnderscores(input.name.escapedText) : \"default\";\n const newId = factory2.createUniqueName(`${oldId}_base`, 16 /* Optimistic */);\n getSymbolAccessibilityDiagnostic = () => ({\n diagnosticMessage: Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,\n errorNode: extendsClause,\n typeName: input.name\n });\n const varDecl = factory2.createVariableDeclaration(\n newId,\n /*exclamationToken*/\n void 0,\n resolver.createTypeOfExpression(extendsClause.expression, input, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker),\n /*initializer*/\n void 0\n );\n const statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */));\n const heritageClauses = factory2.createNodeArray(map(input.heritageClauses, (clause) => {\n if (clause.token === 96 /* ExtendsKeyword */) {\n const oldDiag2 = getSymbolAccessibilityDiagnostic;\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(clause.types[0]);\n const newClause = factory2.updateHeritageClause(clause, map(clause.types, (t) => factory2.updateExpressionWithTypeArguments(t, newId, visitNodes2(t.typeArguments, visitDeclarationSubtree, isTypeNode))));\n getSymbolAccessibilityDiagnostic = oldDiag2;\n return newClause;\n }\n return factory2.updateHeritageClause(clause, visitNodes2(factory2.createNodeArray(filter(clause.types, (t) => isEntityNameExpression(t.expression) || t.expression.kind === 106 /* NullKeyword */)), visitDeclarationSubtree, isExpressionWithTypeArguments));\n }));\n return [\n statement,\n cleanup(factory2.updateClassDeclaration(\n input,\n modifiers,\n input.name,\n typeParameters,\n heritageClauses,\n members\n ))\n ];\n } else {\n const heritageClauses = transformHeritageClauses(input.heritageClauses);\n return cleanup(factory2.updateClassDeclaration(\n input,\n modifiers,\n input.name,\n typeParameters,\n heritageClauses,\n members\n ));\n }\n }\n case 244 /* VariableStatement */: {\n return cleanup(transformVariableStatement(input));\n }\n case 267 /* EnumDeclaration */: {\n return cleanup(factory2.updateEnumDeclaration(\n input,\n factory2.createNodeArray(ensureModifiers(input)),\n input.name,\n factory2.createNodeArray(mapDefined(input.members, (m) => {\n if (shouldStripInternal(m)) return;\n const enumValue = resolver.getEnumMemberValue(m);\n const constValue = enumValue == null ? void 0 : enumValue.value;\n if (isolatedDeclarations && m.initializer && (enumValue == null ? void 0 : enumValue.hasExternalReferences) && // This will be its own compiler error instead, so don't report.\n !isComputedPropertyName(m.name)) {\n context.addDiagnostic(createDiagnosticForNode(m, Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations));\n }\n const newInitializer = constValue === void 0 ? void 0 : typeof constValue === \"string\" ? factory2.createStringLiteral(constValue) : constValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constValue)) : factory2.createNumericLiteral(constValue);\n return preserveJsDoc(factory2.updateEnumMember(m, m.name, newInitializer), m);\n }))\n ));\n }\n }\n return Debug.assertNever(input, `Unhandled top-level node in declaration emit: ${Debug.formatSyntaxKind(input.kind)}`);\n function cleanup(node) {\n if (isEnclosingDeclaration(input)) {\n enclosingDeclaration = previousEnclosingDeclaration;\n }\n if (canProdiceDiagnostic) {\n getSymbolAccessibilityDiagnostic = oldDiag;\n }\n if (input.kind === 268 /* ModuleDeclaration */) {\n needsDeclare = previousNeedsDeclare;\n }\n if (node === input) {\n return node;\n }\n errorFallbackNode = void 0;\n errorNameNode = void 0;\n return node && setOriginalNode(preserveJsDoc(node, input), input);\n }\n }\n function transformVariableStatement(input) {\n if (!forEach(input.declarationList.declarations, getBindingNameVisible)) return;\n const nodes = visitNodes2(input.declarationList.declarations, visitDeclarationSubtree, isVariableDeclaration);\n if (!length(nodes)) return;\n const modifiers = factory2.createNodeArray(ensureModifiers(input));\n let declList;\n if (isVarUsing(input.declarationList) || isVarAwaitUsing(input.declarationList)) {\n declList = factory2.createVariableDeclarationList(nodes, 2 /* Const */);\n setOriginalNode(declList, input.declarationList);\n setTextRange(declList, input.declarationList);\n setCommentRange(declList, input.declarationList);\n } else {\n declList = factory2.updateVariableDeclarationList(input.declarationList, nodes);\n }\n return factory2.updateVariableStatement(input, modifiers, declList);\n }\n function recreateBindingPattern(d) {\n return flatten(mapDefined(d.elements, (e) => recreateBindingElement(e)));\n }\n function recreateBindingElement(e) {\n if (e.kind === 233 /* OmittedExpression */) {\n return;\n }\n if (e.name) {\n if (!getBindingNameVisible(e)) return;\n if (isBindingPattern(e.name)) {\n return recreateBindingPattern(e.name);\n } else {\n return factory2.createVariableDeclaration(\n e.name,\n /*exclamationToken*/\n void 0,\n ensureType(e),\n /*initializer*/\n void 0\n );\n }\n }\n }\n function checkName(node) {\n let oldDiag;\n if (!suppressNewDiagnosticContexts) {\n oldDiag = getSymbolAccessibilityDiagnostic;\n getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNodeName(node);\n }\n errorNameNode = node.name;\n Debug.assert(hasDynamicName(node));\n const decl = node;\n const entityName = decl.name.expression;\n checkEntityNameVisibility(entityName, enclosingDeclaration);\n if (!suppressNewDiagnosticContexts) {\n getSymbolAccessibilityDiagnostic = oldDiag;\n }\n errorNameNode = void 0;\n }\n function shouldStripInternal(node) {\n return !!stripInternal && !!node && isInternalDeclaration(node, currentSourceFile);\n }\n function isScopeMarker2(node) {\n return isExportAssignment(node) || isExportDeclaration(node);\n }\n function hasScopeMarker2(statements) {\n return some(statements, isScopeMarker2);\n }\n function ensureModifiers(node) {\n const currentFlags = getEffectiveModifierFlags(node);\n const newFlags = ensureModifierFlags(node);\n if (currentFlags === newFlags) {\n return visitArray(node.modifiers, (n) => tryCast(n, isModifier), isModifier);\n }\n return factory2.createModifiersFromModifierFlags(newFlags);\n }\n function ensureModifierFlags(node) {\n let mask2 = 131071 /* All */ ^ (1 /* Public */ | 1024 /* Async */ | 16 /* Override */);\n let additions = needsDeclare && !isAlwaysType(node) ? 128 /* Ambient */ : 0 /* None */;\n const parentIsFile = node.parent.kind === 308 /* SourceFile */;\n if (!parentIsFile || isBundledEmit && parentIsFile && isExternalModule(node.parent)) {\n mask2 ^= 128 /* Ambient */;\n additions = 0 /* None */;\n }\n return maskModifierFlags(node, mask2, additions);\n }\n function transformHeritageClauses(nodes) {\n return factory2.createNodeArray(filter(\n map(nodes, (clause) => factory2.updateHeritageClause(\n clause,\n visitNodes2(\n factory2.createNodeArray(filter(clause.types, (t) => {\n return isEntityNameExpression(t.expression) || clause.token === 96 /* ExtendsKeyword */ && t.expression.kind === 106 /* NullKeyword */;\n })),\n visitDeclarationSubtree,\n isExpressionWithTypeArguments\n )\n )),\n (clause) => clause.types && !!clause.types.length\n ));\n }\n}\nfunction isAlwaysType(node) {\n if (node.kind === 265 /* InterfaceDeclaration */) {\n return true;\n }\n return false;\n}\nfunction maskModifiers(factory2, node, modifierMask, modifierAdditions) {\n return factory2.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions));\n}\nfunction maskModifierFlags(node, modifierMask = 131071 /* All */ ^ 1 /* Public */, modifierAdditions = 0 /* None */) {\n let flags = getEffectiveModifierFlags(node) & modifierMask | modifierAdditions;\n if (flags & 2048 /* Default */ && !(flags & 32 /* Export */)) {\n flags ^= 32 /* Export */;\n }\n if (flags & 2048 /* Default */ && flags & 128 /* Ambient */) {\n flags ^= 128 /* Ambient */;\n }\n return flags;\n}\nfunction canHaveLiteralInitializer(node) {\n switch (node.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return !hasEffectiveModifier(node, 2 /* Private */);\n case 170 /* Parameter */:\n case 261 /* VariableDeclaration */:\n return true;\n }\n return false;\n}\nfunction isPreservedDeclarationStatement(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 264 /* ClassDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n case 244 /* VariableStatement */:\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 278 /* ExportAssignment */:\n return true;\n }\n return false;\n}\nfunction isProcessedComponent(node) {\n switch (node.kind) {\n case 181 /* ConstructSignature */:\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 182 /* IndexSignature */:\n case 261 /* VariableDeclaration */:\n case 169 /* TypeParameter */:\n case 234 /* ExpressionWithTypeArguments */:\n case 184 /* TypeReference */:\n case 195 /* ConditionalType */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 206 /* ImportType */:\n return true;\n }\n return false;\n}\n\n// src/compiler/transformer.ts\nfunction getModuleTransformer(moduleKind) {\n switch (moduleKind) {\n case 200 /* Preserve */:\n return transformECMAScriptModule;\n case 99 /* ESNext */:\n case 7 /* ES2022 */:\n case 6 /* ES2020 */:\n case 5 /* ES2015 */:\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n case 1 /* CommonJS */:\n return transformImpliedNodeFormatDependentModule;\n case 4 /* System */:\n return transformSystemModule;\n default:\n return transformModule;\n }\n}\nvar noTransformers = { scriptTransformers: emptyArray, declarationTransformers: emptyArray };\nfunction getTransformers(compilerOptions, customTransformers, emitOnly) {\n return {\n scriptTransformers: getScriptTransformers(compilerOptions, customTransformers, emitOnly),\n declarationTransformers: getDeclarationTransformers(customTransformers)\n };\n}\nfunction getScriptTransformers(compilerOptions, customTransformers, emitOnly) {\n if (emitOnly) return emptyArray;\n const languageVersion = getEmitScriptTarget(compilerOptions);\n const moduleKind = getEmitModuleKind(compilerOptions);\n const useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n const transformers = [];\n addRange(transformers, customTransformers && map(customTransformers.before, wrapScriptTransformerFactory));\n transformers.push(transformTypeScript);\n if (compilerOptions.experimentalDecorators) {\n transformers.push(transformLegacyDecorators);\n }\n if (getJSXTransformEnabled(compilerOptions)) {\n transformers.push(transformJsx);\n }\n if (languageVersion < 99 /* ESNext */) {\n transformers.push(transformESNext);\n }\n if (!compilerOptions.experimentalDecorators && (languageVersion < 99 /* ESNext */ || !useDefineForClassFields)) {\n transformers.push(transformESDecorators);\n }\n transformers.push(transformClassFields);\n if (languageVersion < 8 /* ES2021 */) {\n transformers.push(transformES2021);\n }\n if (languageVersion < 7 /* ES2020 */) {\n transformers.push(transformES2020);\n }\n if (languageVersion < 6 /* ES2019 */) {\n transformers.push(transformES2019);\n }\n if (languageVersion < 5 /* ES2018 */) {\n transformers.push(transformES2018);\n }\n if (languageVersion < 4 /* ES2017 */) {\n transformers.push(transformES2017);\n }\n if (languageVersion < 3 /* ES2016 */) {\n transformers.push(transformES2016);\n }\n if (languageVersion < 2 /* ES2015 */) {\n transformers.push(transformES2015);\n transformers.push(transformGenerators);\n }\n transformers.push(getModuleTransformer(moduleKind));\n addRange(transformers, customTransformers && map(customTransformers.after, wrapScriptTransformerFactory));\n return transformers;\n}\nfunction getDeclarationTransformers(customTransformers) {\n const transformers = [];\n transformers.push(transformDeclarations);\n addRange(transformers, customTransformers && map(customTransformers.afterDeclarations, wrapDeclarationTransformerFactory));\n return transformers;\n}\nfunction wrapCustomTransformer(transformer) {\n return (node) => isBundle(node) ? transformer.transformBundle(node) : transformer.transformSourceFile(node);\n}\nfunction wrapCustomTransformerFactory(transformer, handleDefault) {\n return (context) => {\n const customTransformer = transformer(context);\n return typeof customTransformer === \"function\" ? handleDefault(context, customTransformer) : wrapCustomTransformer(customTransformer);\n };\n}\nfunction wrapScriptTransformerFactory(transformer) {\n return wrapCustomTransformerFactory(transformer, chainBundle);\n}\nfunction wrapDeclarationTransformerFactory(transformer) {\n return wrapCustomTransformerFactory(transformer, (_, node) => node);\n}\nfunction noEmitSubstitution(_hint, node) {\n return node;\n}\nfunction noEmitNotification(hint, node, callback) {\n callback(hint, node);\n}\nfunction transformNodes(resolver, host, factory2, options, nodes, transformers, allowDtsFiles) {\n var _a, _b;\n const enabledSyntaxKindFeatures = new Array(359 /* Count */);\n let lexicalEnvironmentVariableDeclarations;\n let lexicalEnvironmentFunctionDeclarations;\n let lexicalEnvironmentStatements;\n let lexicalEnvironmentFlags = 0 /* None */;\n let lexicalEnvironmentVariableDeclarationsStack = [];\n let lexicalEnvironmentFunctionDeclarationsStack = [];\n let lexicalEnvironmentStatementsStack = [];\n let lexicalEnvironmentFlagsStack = [];\n let lexicalEnvironmentStackOffset = 0;\n let lexicalEnvironmentSuspended = false;\n let blockScopedVariableDeclarationsStack = [];\n let blockScopeStackOffset = 0;\n let blockScopedVariableDeclarations;\n let emitHelpers;\n let onSubstituteNode = noEmitSubstitution;\n let onEmitNode = noEmitNotification;\n let state = 0 /* Uninitialized */;\n const diagnostics = [];\n const context = {\n factory: factory2,\n getCompilerOptions: () => options,\n getEmitResolver: () => resolver,\n // TODO: GH#18217\n getEmitHost: () => host,\n // TODO: GH#18217\n getEmitHelperFactory: memoize(() => createEmitHelperFactory(context)),\n startLexicalEnvironment,\n suspendLexicalEnvironment,\n resumeLexicalEnvironment,\n endLexicalEnvironment,\n setLexicalEnvironmentFlags,\n getLexicalEnvironmentFlags,\n hoistVariableDeclaration,\n hoistFunctionDeclaration,\n addInitializationStatement,\n startBlockScope,\n endBlockScope,\n addBlockScopedVariable,\n requestEmitHelper,\n readEmitHelpers,\n enableSubstitution,\n enableEmitNotification,\n isSubstitutionEnabled,\n isEmitNotificationEnabled,\n get onSubstituteNode() {\n return onSubstituteNode;\n },\n set onSubstituteNode(value) {\n Debug.assert(state < 1 /* Initialized */, \"Cannot modify transformation hooks after initialization has completed.\");\n Debug.assert(value !== void 0, \"Value must not be 'undefined'\");\n onSubstituteNode = value;\n },\n get onEmitNode() {\n return onEmitNode;\n },\n set onEmitNode(value) {\n Debug.assert(state < 1 /* Initialized */, \"Cannot modify transformation hooks after initialization has completed.\");\n Debug.assert(value !== void 0, \"Value must not be 'undefined'\");\n onEmitNode = value;\n },\n addDiagnostic(diag2) {\n diagnostics.push(diag2);\n }\n };\n for (const node of nodes) {\n disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node)));\n }\n mark(\"beforeTransform\");\n const transformersWithContext = transformers.map((t) => t(context));\n const transformation = (node) => {\n for (const transform2 of transformersWithContext) {\n node = transform2(node);\n }\n return node;\n };\n state = 1 /* Initialized */;\n const transformed = [];\n for (const node of nodes) {\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, \"transformNodes\", node.kind === 308 /* SourceFile */ ? { path: node.path } : { kind: node.kind, pos: node.pos, end: node.end });\n transformed.push((allowDtsFiles ? transformation : transformRoot)(node));\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n state = 2 /* Completed */;\n mark(\"afterTransform\");\n measure(\"transformTime\", \"beforeTransform\", \"afterTransform\");\n return {\n transformed,\n substituteNode,\n emitNodeWithNotification,\n isEmitNotificationEnabled,\n dispose,\n diagnostics\n };\n function transformRoot(node) {\n return node && (!isSourceFile(node) || !node.isDeclarationFile) ? transformation(node) : node;\n }\n function enableSubstitution(kind) {\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n enabledSyntaxKindFeatures[kind] |= 1 /* Substitution */;\n }\n function isSubstitutionEnabled(node) {\n return (enabledSyntaxKindFeatures[node.kind] & 1 /* Substitution */) !== 0 && (getEmitFlags(node) & 8 /* NoSubstitution */) === 0;\n }\n function substituteNode(hint, node) {\n Debug.assert(state < 3 /* Disposed */, \"Cannot substitute a node after the result is disposed.\");\n return node && isSubstitutionEnabled(node) && onSubstituteNode(hint, node) || node;\n }\n function enableEmitNotification(kind) {\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n enabledSyntaxKindFeatures[kind] |= 2 /* EmitNotifications */;\n }\n function isEmitNotificationEnabled(node) {\n return (enabledSyntaxKindFeatures[node.kind] & 2 /* EmitNotifications */) !== 0 || (getEmitFlags(node) & 4 /* AdviseOnEmitNode */) !== 0;\n }\n function emitNodeWithNotification(hint, node, emitCallback) {\n Debug.assert(state < 3 /* Disposed */, \"Cannot invoke TransformationResult callbacks after the result is disposed.\");\n if (node) {\n if (isEmitNotificationEnabled(node)) {\n onEmitNode(hint, node, emitCallback);\n } else {\n emitCallback(hint, node);\n }\n }\n }\n function hoistVariableDeclaration(name) {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n const decl = setEmitFlags(factory2.createVariableDeclaration(name), 128 /* NoNestedSourceMaps */);\n if (!lexicalEnvironmentVariableDeclarations) {\n lexicalEnvironmentVariableDeclarations = [decl];\n } else {\n lexicalEnvironmentVariableDeclarations.push(decl);\n }\n if (lexicalEnvironmentFlags & 1 /* InParameters */) {\n lexicalEnvironmentFlags |= 2 /* VariablesHoistedInParameters */;\n }\n }\n function hoistFunctionDeclaration(func) {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n setEmitFlags(func, 2097152 /* CustomPrologue */);\n if (!lexicalEnvironmentFunctionDeclarations) {\n lexicalEnvironmentFunctionDeclarations = [func];\n } else {\n lexicalEnvironmentFunctionDeclarations.push(func);\n }\n }\n function addInitializationStatement(node) {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n setEmitFlags(node, 2097152 /* CustomPrologue */);\n if (!lexicalEnvironmentStatements) {\n lexicalEnvironmentStatements = [node];\n } else {\n lexicalEnvironmentStatements.push(node);\n }\n }\n function startLexicalEnvironment() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is suspended.\");\n lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentVariableDeclarations;\n lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFunctionDeclarations;\n lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentStatements;\n lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFlags;\n lexicalEnvironmentStackOffset++;\n lexicalEnvironmentVariableDeclarations = void 0;\n lexicalEnvironmentFunctionDeclarations = void 0;\n lexicalEnvironmentStatements = void 0;\n lexicalEnvironmentFlags = 0 /* None */;\n }\n function suspendLexicalEnvironment() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is already suspended.\");\n lexicalEnvironmentSuspended = true;\n }\n function resumeLexicalEnvironment() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n Debug.assert(lexicalEnvironmentSuspended, \"Lexical environment is not suspended.\");\n lexicalEnvironmentSuspended = false;\n }\n function endLexicalEnvironment() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is suspended.\");\n let statements;\n if (lexicalEnvironmentVariableDeclarations || lexicalEnvironmentFunctionDeclarations || lexicalEnvironmentStatements) {\n if (lexicalEnvironmentFunctionDeclarations) {\n statements = [...lexicalEnvironmentFunctionDeclarations];\n }\n if (lexicalEnvironmentVariableDeclarations) {\n const statement = factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(lexicalEnvironmentVariableDeclarations)\n );\n setEmitFlags(statement, 2097152 /* CustomPrologue */);\n if (!statements) {\n statements = [statement];\n } else {\n statements.push(statement);\n }\n }\n if (lexicalEnvironmentStatements) {\n if (!statements) {\n statements = [...lexicalEnvironmentStatements];\n } else {\n statements = [...statements, ...lexicalEnvironmentStatements];\n }\n }\n }\n lexicalEnvironmentStackOffset--;\n lexicalEnvironmentVariableDeclarations = lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset];\n lexicalEnvironmentFunctionDeclarations = lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset];\n lexicalEnvironmentStatements = lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset];\n lexicalEnvironmentFlags = lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset];\n if (lexicalEnvironmentStackOffset === 0) {\n lexicalEnvironmentVariableDeclarationsStack = [];\n lexicalEnvironmentFunctionDeclarationsStack = [];\n lexicalEnvironmentStatementsStack = [];\n lexicalEnvironmentFlagsStack = [];\n }\n return statements;\n }\n function setLexicalEnvironmentFlags(flags, value) {\n lexicalEnvironmentFlags = value ? lexicalEnvironmentFlags | flags : lexicalEnvironmentFlags & ~flags;\n }\n function getLexicalEnvironmentFlags() {\n return lexicalEnvironmentFlags;\n }\n function startBlockScope() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot start a block scope during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot start a block scope after transformation has completed.\");\n blockScopedVariableDeclarationsStack[blockScopeStackOffset] = blockScopedVariableDeclarations;\n blockScopeStackOffset++;\n blockScopedVariableDeclarations = void 0;\n }\n function endBlockScope() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot end a block scope during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot end a block scope after transformation has completed.\");\n const statements = some(blockScopedVariableDeclarations) ? [\n factory2.createVariableStatement(\n /*modifiers*/\n void 0,\n factory2.createVariableDeclarationList(\n blockScopedVariableDeclarations.map((identifier) => factory2.createVariableDeclaration(identifier)),\n 1 /* Let */\n )\n )\n ] : void 0;\n blockScopeStackOffset--;\n blockScopedVariableDeclarations = blockScopedVariableDeclarationsStack[blockScopeStackOffset];\n if (blockScopeStackOffset === 0) {\n blockScopedVariableDeclarationsStack = [];\n }\n return statements;\n }\n function addBlockScopedVariable(name) {\n Debug.assert(blockScopeStackOffset > 0, \"Cannot add a block scoped variable outside of an iteration body.\");\n (blockScopedVariableDeclarations || (blockScopedVariableDeclarations = [])).push(name);\n }\n function requestEmitHelper(helper) {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the transformation context during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n Debug.assert(!helper.scoped, \"Cannot request a scoped emit helper.\");\n if (helper.dependencies) {\n for (const h of helper.dependencies) {\n requestEmitHelper(h);\n }\n }\n emitHelpers = append(emitHelpers, helper);\n }\n function readEmitHelpers() {\n Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the transformation context during initialization.\");\n Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n const helpers = emitHelpers;\n emitHelpers = void 0;\n return helpers;\n }\n function dispose() {\n if (state < 3 /* Disposed */) {\n for (const node of nodes) {\n disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node)));\n }\n lexicalEnvironmentVariableDeclarations = void 0;\n lexicalEnvironmentVariableDeclarationsStack = void 0;\n lexicalEnvironmentFunctionDeclarations = void 0;\n lexicalEnvironmentFunctionDeclarationsStack = void 0;\n onSubstituteNode = void 0;\n onEmitNode = void 0;\n emitHelpers = void 0;\n state = 3 /* Disposed */;\n }\n }\n}\nvar nullTransformationContext = {\n factory,\n // eslint-disable-line object-shorthand\n getCompilerOptions: () => ({}),\n getEmitResolver: notImplemented,\n getEmitHost: notImplemented,\n getEmitHelperFactory: notImplemented,\n startLexicalEnvironment: noop,\n resumeLexicalEnvironment: noop,\n suspendLexicalEnvironment: noop,\n endLexicalEnvironment: returnUndefined,\n setLexicalEnvironmentFlags: noop,\n getLexicalEnvironmentFlags: () => 0,\n hoistVariableDeclaration: noop,\n hoistFunctionDeclaration: noop,\n addInitializationStatement: noop,\n startBlockScope: noop,\n endBlockScope: returnUndefined,\n addBlockScopedVariable: noop,\n requestEmitHelper: noop,\n readEmitHelpers: notImplemented,\n enableSubstitution: noop,\n enableEmitNotification: noop,\n isSubstitutionEnabled: notImplemented,\n isEmitNotificationEnabled: notImplemented,\n onSubstituteNode: noEmitSubstitution,\n onEmitNode: noEmitNotification,\n addDiagnostic: noop\n};\n\n// src/compiler/emitter.ts\nvar brackets = createBracketsMap();\nfunction isBuildInfoFile(file) {\n return fileExtensionIs(file, \".tsbuildinfo\" /* TsBuildInfo */);\n}\nfunction forEachEmittedFile(host, action, sourceFilesOrTargetSourceFile, forceDtsEmit = false, onlyBuildInfo, includeBuildInfo) {\n const sourceFiles = isArray(sourceFilesOrTargetSourceFile) ? sourceFilesOrTargetSourceFile : getSourceFilesToEmit(host, sourceFilesOrTargetSourceFile, forceDtsEmit);\n const options = host.getCompilerOptions();\n if (!onlyBuildInfo) {\n if (options.outFile) {\n if (sourceFiles.length) {\n const bundle = factory.createBundle(sourceFiles);\n const result = action(getOutputPathsFor(bundle, host, forceDtsEmit), bundle);\n if (result) {\n return result;\n }\n }\n } else {\n for (const sourceFile of sourceFiles) {\n const result = action(getOutputPathsFor(sourceFile, host, forceDtsEmit), sourceFile);\n if (result) {\n return result;\n }\n }\n }\n }\n if (includeBuildInfo) {\n const buildInfoPath = getTsBuildInfoEmitOutputFilePath(options);\n if (buildInfoPath) return action(\n { buildInfoPath },\n /*sourceFileOrBundle*/\n void 0\n );\n }\n}\nfunction getTsBuildInfoEmitOutputFilePath(options) {\n const configFile = options.configFilePath;\n if (!canEmitTsBuildInfo(options)) return void 0;\n if (options.tsBuildInfoFile) return options.tsBuildInfoFile;\n const outPath = options.outFile;\n let buildInfoExtensionLess;\n if (outPath) {\n buildInfoExtensionLess = removeFileExtension(outPath);\n } else {\n if (!configFile) return void 0;\n const configFileExtensionLess = removeFileExtension(configFile);\n buildInfoExtensionLess = options.outDir ? options.rootDir ? resolvePath(options.outDir, getRelativePathFromDirectory(\n options.rootDir,\n configFileExtensionLess,\n /*ignoreCase*/\n true\n )) : combinePaths(options.outDir, getBaseFileName(configFileExtensionLess)) : configFileExtensionLess;\n }\n return buildInfoExtensionLess + \".tsbuildinfo\" /* TsBuildInfo */;\n}\nfunction canEmitTsBuildInfo(options) {\n return isIncrementalCompilation(options) || !!options.tscBuild;\n}\nfunction getOutputPathsForBundle(options, forceDtsPaths) {\n const outPath = options.outFile;\n const jsFilePath = options.emitDeclarationOnly ? void 0 : outPath;\n const sourceMapFilePath = jsFilePath && getSourceMapFilePath(jsFilePath, options);\n const declarationFilePath = forceDtsPaths || getEmitDeclarations(options) ? removeFileExtension(outPath) + \".d.ts\" /* Dts */ : void 0;\n const declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + \".map\" : void 0;\n return { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath };\n}\nfunction getOutputPathsFor(sourceFile, host, forceDtsPaths) {\n const options = host.getCompilerOptions();\n if (sourceFile.kind === 309 /* Bundle */) {\n return getOutputPathsForBundle(options, forceDtsPaths);\n } else {\n const ownOutputFilePath = getOwnEmitOutputFilePath(sourceFile.fileName, host, getOutputExtension(sourceFile.fileName, options));\n const isJsonFile = isJsonSourceFile(sourceFile);\n const isJsonEmittedToSameLocation = isJsonFile && comparePaths(sourceFile.fileName, ownOutputFilePath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */;\n const jsFilePath = options.emitDeclarationOnly || isJsonEmittedToSameLocation ? void 0 : ownOutputFilePath;\n const sourceMapFilePath = !jsFilePath || isJsonSourceFile(sourceFile) ? void 0 : getSourceMapFilePath(jsFilePath, options);\n const declarationFilePath = forceDtsPaths || getEmitDeclarations(options) && !isJsonFile ? getDeclarationEmitOutputFilePath(sourceFile.fileName, host) : void 0;\n const declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + \".map\" : void 0;\n return { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath };\n }\n}\nfunction getSourceMapFilePath(jsFilePath, options) {\n return options.sourceMap && !options.inlineSourceMap ? jsFilePath + \".map\" : void 0;\n}\nfunction getOutputExtension(fileName, options) {\n return fileExtensionIs(fileName, \".json\" /* Json */) ? \".json\" /* Json */ : options.jsx === 1 /* Preserve */ && fileExtensionIsOneOf(fileName, [\".jsx\" /* Jsx */, \".tsx\" /* Tsx */]) ? \".jsx\" /* Jsx */ : fileExtensionIsOneOf(fileName, [\".mts\" /* Mts */, \".mjs\" /* Mjs */]) ? \".mjs\" /* Mjs */ : fileExtensionIsOneOf(fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */]) ? \".cjs\" /* Cjs */ : \".js\" /* Js */;\n}\nfunction getOutputPathWithoutChangingExt(inputFileName, ignoreCase, outputDir, getCommonSourceDirectory2) {\n return outputDir ? resolvePath(\n outputDir,\n getRelativePathFromDirectory(getCommonSourceDirectory2(), inputFileName, ignoreCase)\n ) : inputFileName;\n}\nfunction getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2 = () => getCommonSourceDirectoryOfConfig(configFile, ignoreCase)) {\n return getOutputDeclarationFileNameWorker(inputFileName, configFile.options, ignoreCase, getCommonSourceDirectory2);\n}\nfunction getOutputDeclarationFileNameWorker(inputFileName, options, ignoreCase, getCommonSourceDirectory2) {\n return changeExtension(\n getOutputPathWithoutChangingExt(inputFileName, ignoreCase, options.declarationDir || options.outDir, getCommonSourceDirectory2),\n getDeclarationEmitExtensionForPath(inputFileName)\n );\n}\nfunction getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2 = () => getCommonSourceDirectoryOfConfig(configFile, ignoreCase)) {\n if (configFile.options.emitDeclarationOnly) return void 0;\n const isJsonFile = fileExtensionIs(inputFileName, \".json\" /* Json */);\n const outputFileName = getOutputJSFileNameWorker(inputFileName, configFile.options, ignoreCase, getCommonSourceDirectory2);\n return !isJsonFile || comparePaths(inputFileName, outputFileName, Debug.checkDefined(configFile.options.configFilePath), ignoreCase) !== 0 /* EqualTo */ ? outputFileName : void 0;\n}\nfunction getOutputJSFileNameWorker(inputFileName, options, ignoreCase, getCommonSourceDirectory2) {\n return changeExtension(\n getOutputPathWithoutChangingExt(inputFileName, ignoreCase, options.outDir, getCommonSourceDirectory2),\n getOutputExtension(inputFileName, options)\n );\n}\nfunction createAddOutput() {\n let outputs;\n return { addOutput, getOutputs };\n function addOutput(path) {\n if (path) {\n (outputs || (outputs = [])).push(path);\n }\n }\n function getOutputs() {\n return outputs || emptyArray;\n }\n}\nfunction getSingleOutputFileNames(configFile, addOutput) {\n const { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath } = getOutputPathsForBundle(\n configFile.options,\n /*forceDtsPaths*/\n false\n );\n addOutput(jsFilePath);\n addOutput(sourceMapFilePath);\n addOutput(declarationFilePath);\n addOutput(declarationMapPath);\n}\nfunction getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2) {\n if (isDeclarationFileName(inputFileName)) return;\n const js = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n addOutput(js);\n if (fileExtensionIs(inputFileName, \".json\" /* Json */)) return;\n if (js && configFile.options.sourceMap) {\n addOutput(`${js}.map`);\n }\n if (getEmitDeclarations(configFile.options)) {\n const dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n addOutput(dts);\n if (configFile.options.declarationMap) {\n addOutput(`${dts}.map`);\n }\n }\n}\nfunction getCommonSourceDirectory(options, emittedFiles, currentDirectory, getCanonicalFileName, checkSourceFilesBelongToPath) {\n let commonSourceDirectory;\n if (options.rootDir) {\n commonSourceDirectory = getNormalizedAbsolutePath(options.rootDir, currentDirectory);\n checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(options.rootDir);\n } else if (options.composite && options.configFilePath) {\n commonSourceDirectory = getDirectoryPath(normalizeSlashes(options.configFilePath));\n checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(commonSourceDirectory);\n } else {\n commonSourceDirectory = computeCommonSourceDirectoryOfFilenames(emittedFiles(), currentDirectory, getCanonicalFileName);\n }\n if (commonSourceDirectory && commonSourceDirectory[commonSourceDirectory.length - 1] !== directorySeparator) {\n commonSourceDirectory += directorySeparator;\n }\n return commonSourceDirectory;\n}\nfunction getCommonSourceDirectoryOfConfig({ options, fileNames }, ignoreCase) {\n return getCommonSourceDirectory(\n options,\n () => filter(fileNames, (file) => !(options.noEmitForJsFiles && fileExtensionIsOneOf(file, supportedJSExtensionsFlat)) && !isDeclarationFileName(file)),\n getDirectoryPath(normalizeSlashes(Debug.checkDefined(options.configFilePath))),\n createGetCanonicalFileName(!ignoreCase)\n );\n}\nfunction getAllProjectOutputs(configFile, ignoreCase) {\n const { addOutput, getOutputs } = createAddOutput();\n if (configFile.options.outFile) {\n getSingleOutputFileNames(configFile, addOutput);\n } else {\n const getCommonSourceDirectory2 = memoize(() => getCommonSourceDirectoryOfConfig(configFile, ignoreCase));\n for (const inputFileName of configFile.fileNames) {\n getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2);\n }\n }\n addOutput(getTsBuildInfoEmitOutputFilePath(configFile.options));\n return getOutputs();\n}\nfunction getOutputFileNames(commandLine, inputFileName, ignoreCase) {\n inputFileName = normalizePath(inputFileName);\n Debug.assert(contains(commandLine.fileNames, inputFileName), `Expected fileName to be present in command line`);\n const { addOutput, getOutputs } = createAddOutput();\n if (commandLine.options.outFile) {\n getSingleOutputFileNames(commandLine, addOutput);\n } else {\n getOwnOutputFileNames(commandLine, inputFileName, ignoreCase, addOutput);\n }\n return getOutputs();\n}\nfunction getFirstProjectOutput(configFile, ignoreCase) {\n if (configFile.options.outFile) {\n const { jsFilePath, declarationFilePath } = getOutputPathsForBundle(\n configFile.options,\n /*forceDtsPaths*/\n false\n );\n return Debug.checkDefined(jsFilePath || declarationFilePath, `project ${configFile.options.configFilePath} expected to have at least one output`);\n }\n const getCommonSourceDirectory2 = memoize(() => getCommonSourceDirectoryOfConfig(configFile, ignoreCase));\n for (const inputFileName of configFile.fileNames) {\n if (isDeclarationFileName(inputFileName)) continue;\n const jsFilePath = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n if (jsFilePath) return jsFilePath;\n if (fileExtensionIs(inputFileName, \".json\" /* Json */)) continue;\n if (getEmitDeclarations(configFile.options)) {\n return getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n }\n }\n const buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);\n if (buildInfoPath) return buildInfoPath;\n return Debug.fail(`project ${configFile.options.configFilePath} expected to have at least one output`);\n}\nfunction emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit) {\n return !!forceDtsEmit && !!emitOnly;\n}\nfunction emitFiles(resolver, host, targetSourceFile, { scriptTransformers, declarationTransformers }, emitOnly, onlyBuildInfo, forceDtsEmit, skipBuildInfo) {\n var compilerOptions = host.getCompilerOptions();\n var sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0;\n var emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0;\n var emitterDiagnostics = createDiagnosticCollection();\n var newLine = getNewLineCharacter(compilerOptions);\n var writer = createTextWriter(newLine);\n var { enter, exit } = createTimer(\"printTime\", \"beforePrint\", \"afterPrint\");\n var emitSkipped = false;\n enter();\n forEachEmittedFile(\n host,\n emitSourceFileOrBundle,\n getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit),\n forceDtsEmit,\n onlyBuildInfo,\n !targetSourceFile && !skipBuildInfo\n );\n exit();\n return {\n emitSkipped,\n diagnostics: emitterDiagnostics.getDiagnostics(),\n emittedFiles: emittedFilesList,\n sourceMaps: sourceMapDataList\n };\n function emitSourceFileOrBundle({ jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath, buildInfoPath }, sourceFileOrBundle) {\n var _a, _b, _c, _d, _e, _f;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, \"emitJsFileOrBundle\", { jsFilePath });\n emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath);\n (_b = tracing) == null ? void 0 : _b.pop();\n (_c = tracing) == null ? void 0 : _c.push(tracing.Phase.Emit, \"emitDeclarationFileOrBundle\", { declarationFilePath });\n emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath);\n (_d = tracing) == null ? void 0 : _d.pop();\n (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Emit, \"emitBuildInfo\", { buildInfoPath });\n emitBuildInfo(buildInfoPath);\n (_f = tracing) == null ? void 0 : _f.pop();\n }\n function emitBuildInfo(buildInfoPath) {\n if (!buildInfoPath || targetSourceFile) return;\n if (host.isEmitBlocked(buildInfoPath)) {\n emitSkipped = true;\n return;\n }\n const buildInfo = host.getBuildInfo() || { version };\n writeFile(\n host,\n emitterDiagnostics,\n buildInfoPath,\n getBuildInfoText(buildInfo),\n /*writeByteOrderMark*/\n false,\n /*sourceFiles*/\n void 0,\n { buildInfo }\n );\n emittedFilesList == null ? void 0 : emittedFilesList.push(buildInfoPath);\n }\n function emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath) {\n if (!sourceFileOrBundle || emitOnly || !jsFilePath) {\n return;\n }\n if (host.isEmitBlocked(jsFilePath) || compilerOptions.noEmit) {\n emitSkipped = true;\n return;\n }\n (isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : filter(sourceFileOrBundle.sourceFiles, isSourceFileNotJson)).forEach(\n (sourceFile) => {\n if (compilerOptions.noCheck || !canIncludeBindAndCheckDiagnostics(sourceFile, compilerOptions)) markLinkedReferences(sourceFile);\n }\n );\n const transform2 = transformNodes(\n resolver,\n host,\n factory,\n compilerOptions,\n [sourceFileOrBundle],\n scriptTransformers,\n /*allowDtsFiles*/\n false\n );\n const printerOptions = {\n removeComments: compilerOptions.removeComments,\n newLine: compilerOptions.newLine,\n noEmitHelpers: compilerOptions.noEmitHelpers,\n module: getEmitModuleKind(compilerOptions),\n moduleResolution: getEmitModuleResolutionKind(compilerOptions),\n target: getEmitScriptTarget(compilerOptions),\n sourceMap: compilerOptions.sourceMap,\n inlineSourceMap: compilerOptions.inlineSourceMap,\n inlineSources: compilerOptions.inlineSources,\n extendedDiagnostics: compilerOptions.extendedDiagnostics\n };\n const printer = createPrinter(printerOptions, {\n // resolver hooks\n hasGlobalName: resolver.hasGlobalName,\n // transform hooks\n onEmitNode: transform2.emitNodeWithNotification,\n isEmitNotificationEnabled: transform2.isEmitNotificationEnabled,\n substituteNode: transform2.substituteNode\n });\n Debug.assert(transform2.transformed.length === 1, \"Should only see one output from the transform\");\n printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, compilerOptions);\n transform2.dispose();\n if (emittedFilesList) {\n emittedFilesList.push(jsFilePath);\n if (sourceMapFilePath) {\n emittedFilesList.push(sourceMapFilePath);\n }\n }\n }\n function emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath) {\n if (!sourceFileOrBundle || emitOnly === 0 /* Js */) return;\n if (!declarationFilePath) {\n if (emitOnly || compilerOptions.emitDeclarationOnly) emitSkipped = true;\n return;\n }\n const sourceFiles = isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : sourceFileOrBundle.sourceFiles;\n const filesForEmit = forceDtsEmit ? sourceFiles : filter(sourceFiles, isSourceFileNotJson);\n const inputListOrBundle = compilerOptions.outFile ? [factory.createBundle(filesForEmit)] : filesForEmit;\n filesForEmit.forEach((sourceFile) => {\n if (emitOnly && !getEmitDeclarations(compilerOptions) || compilerOptions.noCheck || emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit) || !canIncludeBindAndCheckDiagnostics(sourceFile, compilerOptions)) {\n collectLinkedAliases(sourceFile);\n }\n });\n const declarationTransform = transformNodes(\n resolver,\n host,\n factory,\n compilerOptions,\n inputListOrBundle,\n declarationTransformers,\n /*allowDtsFiles*/\n false\n );\n if (length(declarationTransform.diagnostics)) {\n for (const diagnostic of declarationTransform.diagnostics) {\n emitterDiagnostics.add(diagnostic);\n }\n }\n const declBlocked = !!declarationTransform.diagnostics && !!declarationTransform.diagnostics.length || !!host.isEmitBlocked(declarationFilePath) || !!compilerOptions.noEmit;\n emitSkipped = emitSkipped || declBlocked;\n if (!declBlocked || forceDtsEmit) {\n Debug.assert(declarationTransform.transformed.length === 1, \"Should only see one output from the decl transform\");\n const printerOptions = {\n removeComments: compilerOptions.removeComments,\n newLine: compilerOptions.newLine,\n noEmitHelpers: true,\n module: compilerOptions.module,\n moduleResolution: compilerOptions.moduleResolution,\n target: compilerOptions.target,\n sourceMap: emitOnly !== 2 /* BuilderSignature */ && compilerOptions.declarationMap,\n inlineSourceMap: compilerOptions.inlineSourceMap,\n extendedDiagnostics: compilerOptions.extendedDiagnostics,\n onlyPrintJsDocStyle: true,\n omitBraceSourceMapPositions: true\n };\n const declarationPrinter = createPrinter(printerOptions, {\n // resolver hooks\n hasGlobalName: resolver.hasGlobalName,\n // transform hooks\n onEmitNode: declarationTransform.emitNodeWithNotification,\n isEmitNotificationEnabled: declarationTransform.isEmitNotificationEnabled,\n substituteNode: declarationTransform.substituteNode\n });\n const dtsWritten = printSourceFileOrBundle(\n declarationFilePath,\n declarationMapPath,\n declarationTransform,\n declarationPrinter,\n {\n sourceMap: printerOptions.sourceMap,\n sourceRoot: compilerOptions.sourceRoot,\n mapRoot: compilerOptions.mapRoot,\n extendedDiagnostics: compilerOptions.extendedDiagnostics\n // Explicitly do not passthru either `inline` option\n }\n );\n if (emittedFilesList) {\n if (dtsWritten) emittedFilesList.push(declarationFilePath);\n if (declarationMapPath) {\n emittedFilesList.push(declarationMapPath);\n }\n }\n }\n declarationTransform.dispose();\n }\n function collectLinkedAliases(node) {\n if (isExportAssignment(node)) {\n if (node.expression.kind === 80 /* Identifier */) {\n resolver.collectLinkedAliases(\n node.expression,\n /*setVisibility*/\n true\n );\n }\n return;\n } else if (isExportSpecifier(node)) {\n resolver.collectLinkedAliases(\n node.propertyName || node.name,\n /*setVisibility*/\n true\n );\n return;\n }\n forEachChild(node, collectLinkedAliases);\n }\n function markLinkedReferences(file) {\n if (isSourceFileJS(file)) return;\n forEachChildRecursively(file, (n) => {\n if (isImportEqualsDeclaration(n) && !(getSyntacticModifierFlags(n) & 32 /* Export */)) return \"skip\";\n if (isImportDeclaration(n)) return \"skip\";\n resolver.markLinkedReferences(n);\n });\n }\n function printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, mapOptions) {\n const sourceFileOrBundle = transform2.transformed[0];\n const bundle = sourceFileOrBundle.kind === 309 /* Bundle */ ? sourceFileOrBundle : void 0;\n const sourceFile = sourceFileOrBundle.kind === 308 /* SourceFile */ ? sourceFileOrBundle : void 0;\n const sourceFiles = bundle ? bundle.sourceFiles : [sourceFile];\n let sourceMapGenerator;\n if (shouldEmitSourceMaps(mapOptions, sourceFileOrBundle)) {\n sourceMapGenerator = createSourceMapGenerator(\n host,\n getBaseFileName(normalizeSlashes(jsFilePath)),\n getSourceRoot(mapOptions),\n getSourceMapDirectory(mapOptions, jsFilePath, sourceFile),\n mapOptions\n );\n }\n if (bundle) {\n printer.writeBundle(bundle, writer, sourceMapGenerator);\n } else {\n printer.writeFile(sourceFile, writer, sourceMapGenerator);\n }\n let sourceMapUrlPos;\n if (sourceMapGenerator) {\n if (sourceMapDataList) {\n sourceMapDataList.push({\n inputSourceFileNames: sourceMapGenerator.getSources(),\n sourceMap: sourceMapGenerator.toJSON()\n });\n }\n const sourceMappingURL = getSourceMappingURL(\n mapOptions,\n sourceMapGenerator,\n jsFilePath,\n sourceMapFilePath,\n sourceFile\n );\n if (sourceMappingURL) {\n if (!writer.isAtStartOfLine()) writer.rawWrite(newLine);\n sourceMapUrlPos = writer.getTextPos();\n writer.writeComment(`//# ${\"sourceMappingURL\"}=${sourceMappingURL}`);\n }\n if (sourceMapFilePath) {\n const sourceMap = sourceMapGenerator.toString();\n writeFile(\n host,\n emitterDiagnostics,\n sourceMapFilePath,\n sourceMap,\n /*writeByteOrderMark*/\n false,\n sourceFiles\n );\n }\n } else {\n writer.writeLine();\n }\n const text = writer.getText();\n const data = { sourceMapUrlPos, diagnostics: transform2.diagnostics };\n writeFile(host, emitterDiagnostics, jsFilePath, text, !!compilerOptions.emitBOM, sourceFiles, data);\n writer.clear();\n return !data.skippedDtsWrite;\n }\n function shouldEmitSourceMaps(mapOptions, sourceFileOrBundle) {\n return (mapOptions.sourceMap || mapOptions.inlineSourceMap) && (sourceFileOrBundle.kind !== 308 /* SourceFile */ || !fileExtensionIs(sourceFileOrBundle.fileName, \".json\" /* Json */));\n }\n function getSourceRoot(mapOptions) {\n const sourceRoot = normalizeSlashes(mapOptions.sourceRoot || \"\");\n return sourceRoot ? ensureTrailingDirectorySeparator(sourceRoot) : sourceRoot;\n }\n function getSourceMapDirectory(mapOptions, filePath, sourceFile) {\n if (mapOptions.sourceRoot) return host.getCommonSourceDirectory();\n if (mapOptions.mapRoot) {\n let sourceMapDir = normalizeSlashes(mapOptions.mapRoot);\n if (sourceFile) {\n sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir));\n }\n if (getRootLength(sourceMapDir) === 0) {\n sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir);\n }\n return sourceMapDir;\n }\n return getDirectoryPath(normalizePath(filePath));\n }\n function getSourceMappingURL(mapOptions, sourceMapGenerator, filePath, sourceMapFilePath, sourceFile) {\n if (mapOptions.inlineSourceMap) {\n const sourceMapText = sourceMapGenerator.toString();\n const base64SourceMapText = base64encode(sys, sourceMapText);\n return `data:application/json;base64,${base64SourceMapText}`;\n }\n const sourceMapFile = getBaseFileName(normalizeSlashes(Debug.checkDefined(sourceMapFilePath)));\n if (mapOptions.mapRoot) {\n let sourceMapDir = normalizeSlashes(mapOptions.mapRoot);\n if (sourceFile) {\n sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir));\n }\n if (getRootLength(sourceMapDir) === 0) {\n sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir);\n return encodeURI(\n getRelativePathToDirectoryOrUrl(\n getDirectoryPath(normalizePath(filePath)),\n // get the relative sourceMapDir path based on jsFilePath\n combinePaths(sourceMapDir, sourceMapFile),\n // this is where user expects to see sourceMap\n host.getCurrentDirectory(),\n host.getCanonicalFileName,\n /*isAbsolutePathAnUrl*/\n true\n )\n );\n } else {\n return encodeURI(combinePaths(sourceMapDir, sourceMapFile));\n }\n }\n return encodeURI(sourceMapFile);\n }\n}\nfunction getBuildInfoText(buildInfo) {\n return JSON.stringify(buildInfo);\n}\nfunction getBuildInfo(buildInfoFile, buildInfoText) {\n return readJsonOrUndefined(buildInfoFile, buildInfoText);\n}\nvar notImplementedResolver = {\n hasGlobalName: notImplemented,\n getReferencedExportContainer: notImplemented,\n getReferencedImportDeclaration: notImplemented,\n getReferencedDeclarationWithCollidingName: notImplemented,\n isDeclarationWithCollidingName: notImplemented,\n isValueAliasDeclaration: notImplemented,\n isReferencedAliasDeclaration: notImplemented,\n isTopLevelValueImportEqualsWithEntityName: notImplemented,\n hasNodeCheckFlag: notImplemented,\n isDeclarationVisible: notImplemented,\n isLateBound: (_node) => false,\n collectLinkedAliases: notImplemented,\n markLinkedReferences: notImplemented,\n isImplementationOfOverload: notImplemented,\n requiresAddingImplicitUndefined: notImplemented,\n isExpandoFunctionDeclaration: notImplemented,\n getPropertiesOfContainerFunction: notImplemented,\n createTypeOfDeclaration: notImplemented,\n createReturnTypeOfSignatureDeclaration: notImplemented,\n createTypeOfExpression: notImplemented,\n createLiteralConstValue: notImplemented,\n isSymbolAccessible: notImplemented,\n isEntityNameVisible: notImplemented,\n // Returns the constant value this property access resolves to: notImplemented, or 'undefined' for a non-constant\n getConstantValue: notImplemented,\n getEnumMemberValue: notImplemented,\n getReferencedValueDeclaration: notImplemented,\n getReferencedValueDeclarations: notImplemented,\n getTypeReferenceSerializationKind: notImplemented,\n isOptionalParameter: notImplemented,\n isArgumentsLocalBinding: notImplemented,\n getExternalModuleFileFromDeclaration: notImplemented,\n isLiteralConstDeclaration: notImplemented,\n getJsxFactoryEntity: notImplemented,\n getJsxFragmentFactoryEntity: notImplemented,\n isBindingCapturedByNode: notImplemented,\n getDeclarationStatementsForSourceFile: notImplemented,\n isImportRequiredByAugmentation: notImplemented,\n isDefinitelyReferenceToGlobalSymbolObject: notImplemented,\n createLateBoundIndexSignatures: notImplemented,\n symbolToDeclarations: notImplemented\n};\nvar createPrinterWithDefaults = /* @__PURE__ */ memoize(() => createPrinter({}));\nvar createPrinterWithRemoveComments = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true }));\nvar createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));\nvar createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));\nfunction createPrinter(printerOptions = {}, handlers = {}) {\n var {\n hasGlobalName,\n onEmitNode = noEmitNotification,\n isEmitNotificationEnabled,\n substituteNode = noEmitSubstitution,\n onBeforeEmitNode,\n onAfterEmitNode,\n onBeforeEmitNodeArray,\n onAfterEmitNodeArray,\n onBeforeEmitToken,\n onAfterEmitToken\n } = handlers;\n var extendedDiagnostics = !!printerOptions.extendedDiagnostics;\n var omitBraceSourcePositions = !!printerOptions.omitBraceSourceMapPositions;\n var newLine = getNewLineCharacter(printerOptions);\n var moduleKind = getEmitModuleKind(printerOptions);\n var bundledHelpers = /* @__PURE__ */ new Map();\n var currentSourceFile;\n var nodeIdToGeneratedName;\n var nodeIdToGeneratedPrivateName;\n var autoGeneratedIdToGeneratedName;\n var generatedNames;\n var formattedNameTempFlagsStack;\n var formattedNameTempFlags;\n var privateNameTempFlagsStack;\n var privateNameTempFlags;\n var tempFlagsStack;\n var tempFlags;\n var reservedNamesStack;\n var reservedNames;\n var reservedPrivateNamesStack;\n var reservedPrivateNames;\n var preserveSourceNewlines = printerOptions.preserveSourceNewlines;\n var nextListElementPos;\n var writer;\n var ownWriter;\n var write = writeBase;\n var isOwnFileEmit;\n var sourceMapsDisabled = true;\n var sourceMapGenerator;\n var sourceMapSource;\n var sourceMapSourceIndex = -1;\n var mostRecentlyAddedSourceMapSource;\n var mostRecentlyAddedSourceMapSourceIndex = -1;\n var containerPos = -1;\n var containerEnd = -1;\n var declarationListContainerEnd = -1;\n var currentLineMap;\n var detachedCommentsInfo;\n var hasWrittenComment = false;\n var commentsDisabled = !!printerOptions.removeComments;\n var lastSubstitution;\n var currentParenthesizerRule;\n var { enter: enterComment, exit: exitComment } = createTimerIf(extendedDiagnostics, \"commentTime\", \"beforeComment\", \"afterComment\");\n var parenthesizer = factory.parenthesizer;\n var typeArgumentParenthesizerRuleSelector = {\n select: (index) => index === 0 ? parenthesizer.parenthesizeLeadingTypeArgument : void 0\n };\n var emitBinaryExpression = createEmitBinaryExpression();\n reset2();\n return {\n // public API\n printNode,\n printList,\n printFile,\n printBundle,\n // internal API\n writeNode,\n writeList,\n writeFile: writeFile2,\n writeBundle\n };\n function printNode(hint, node, sourceFile) {\n switch (hint) {\n case 0 /* SourceFile */:\n Debug.assert(isSourceFile(node), \"Expected a SourceFile node.\");\n break;\n case 2 /* IdentifierName */:\n Debug.assert(isIdentifier(node), \"Expected an Identifier node.\");\n break;\n case 1 /* Expression */:\n Debug.assert(isExpression(node), \"Expected an Expression node.\");\n break;\n }\n switch (node.kind) {\n case 308 /* SourceFile */:\n return printFile(node);\n case 309 /* Bundle */:\n return printBundle(node);\n }\n writeNode(hint, node, sourceFile, beginPrint());\n return endPrint();\n }\n function printList(format, nodes, sourceFile) {\n writeList(format, nodes, sourceFile, beginPrint());\n return endPrint();\n }\n function printBundle(bundle) {\n writeBundle(\n bundle,\n beginPrint(),\n /*sourceMapGenerator*/\n void 0\n );\n return endPrint();\n }\n function printFile(sourceFile) {\n writeFile2(\n sourceFile,\n beginPrint(),\n /*sourceMapGenerator*/\n void 0\n );\n return endPrint();\n }\n function writeNode(hint, node, sourceFile, output) {\n const previousWriter = writer;\n setWriter(\n output,\n /*_sourceMapGenerator*/\n void 0\n );\n print(hint, node, sourceFile);\n reset2();\n writer = previousWriter;\n }\n function writeList(format, nodes, sourceFile, output) {\n const previousWriter = writer;\n setWriter(\n output,\n /*_sourceMapGenerator*/\n void 0\n );\n if (sourceFile) {\n setSourceFile(sourceFile);\n }\n emitList(\n /*parentNode*/\n void 0,\n nodes,\n format\n );\n reset2();\n writer = previousWriter;\n }\n function writeBundle(bundle, output, sourceMapGenerator2) {\n isOwnFileEmit = false;\n const previousWriter = writer;\n setWriter(output, sourceMapGenerator2);\n emitShebangIfNeeded(bundle);\n emitPrologueDirectivesIfNeeded(bundle);\n emitHelpers(bundle);\n emitSyntheticTripleSlashReferencesIfNeeded(bundle);\n for (const sourceFile of bundle.sourceFiles) {\n print(0 /* SourceFile */, sourceFile, sourceFile);\n }\n reset2();\n writer = previousWriter;\n }\n function writeFile2(sourceFile, output, sourceMapGenerator2) {\n isOwnFileEmit = true;\n const previousWriter = writer;\n setWriter(output, sourceMapGenerator2);\n emitShebangIfNeeded(sourceFile);\n emitPrologueDirectivesIfNeeded(sourceFile);\n print(0 /* SourceFile */, sourceFile, sourceFile);\n reset2();\n writer = previousWriter;\n }\n function beginPrint() {\n return ownWriter || (ownWriter = createTextWriter(newLine));\n }\n function endPrint() {\n const text = ownWriter.getText();\n ownWriter.clear();\n return text;\n }\n function print(hint, node, sourceFile) {\n if (sourceFile) {\n setSourceFile(sourceFile);\n }\n pipelineEmit(\n hint,\n node,\n /*parenthesizerRule*/\n void 0\n );\n }\n function setSourceFile(sourceFile) {\n currentSourceFile = sourceFile;\n currentLineMap = void 0;\n detachedCommentsInfo = void 0;\n if (sourceFile) {\n setSourceMapSource(sourceFile);\n }\n }\n function setWriter(_writer, _sourceMapGenerator) {\n if (_writer && printerOptions.omitTrailingSemicolon) {\n _writer = getTrailingSemicolonDeferringWriter(_writer);\n }\n writer = _writer;\n sourceMapGenerator = _sourceMapGenerator;\n sourceMapsDisabled = !writer || !sourceMapGenerator;\n }\n function reset2() {\n nodeIdToGeneratedName = [];\n nodeIdToGeneratedPrivateName = [];\n autoGeneratedIdToGeneratedName = [];\n generatedNames = /* @__PURE__ */ new Set();\n formattedNameTempFlagsStack = [];\n formattedNameTempFlags = /* @__PURE__ */ new Map();\n privateNameTempFlagsStack = [];\n privateNameTempFlags = 0 /* Auto */;\n tempFlagsStack = [];\n tempFlags = 0 /* Auto */;\n reservedNamesStack = [];\n reservedNames = void 0;\n reservedPrivateNamesStack = [];\n reservedPrivateNames = void 0;\n currentSourceFile = void 0;\n currentLineMap = void 0;\n detachedCommentsInfo = void 0;\n setWriter(\n /*output*/\n void 0,\n /*_sourceMapGenerator*/\n void 0\n );\n }\n function getCurrentLineMap() {\n return currentLineMap || (currentLineMap = getLineStarts(Debug.checkDefined(currentSourceFile)));\n }\n function emit(node, parenthesizerRule) {\n if (node === void 0) return;\n pipelineEmit(4 /* Unspecified */, node, parenthesizerRule);\n }\n function emitIdentifierName(node) {\n if (node === void 0) return;\n pipelineEmit(\n 2 /* IdentifierName */,\n node,\n /*parenthesizerRule*/\n void 0\n );\n }\n function emitExpression(node, parenthesizerRule) {\n if (node === void 0) return;\n pipelineEmit(1 /* Expression */, node, parenthesizerRule);\n }\n function emitJsxAttributeValue(node) {\n pipelineEmit(isStringLiteral(node) ? 6 /* JsxAttributeValue */ : 4 /* Unspecified */, node);\n }\n function beforeEmitNode(node) {\n if (preserveSourceNewlines && getInternalEmitFlags(node) & 4 /* IgnoreSourceNewlines */) {\n preserveSourceNewlines = false;\n }\n }\n function afterEmitNode(savedPreserveSourceNewlines) {\n preserveSourceNewlines = savedPreserveSourceNewlines;\n }\n function pipelineEmit(emitHint, node, parenthesizerRule) {\n currentParenthesizerRule = parenthesizerRule;\n const pipelinePhase = getPipelinePhase(0 /* Notification */, emitHint, node);\n pipelinePhase(emitHint, node);\n currentParenthesizerRule = void 0;\n }\n function shouldEmitComments(node) {\n return !commentsDisabled && !isSourceFile(node);\n }\n function shouldEmitSourceMaps(node) {\n return !sourceMapsDisabled && !isSourceFile(node) && !isInJsonFile(node);\n }\n function getPipelinePhase(phase, emitHint, node) {\n switch (phase) {\n case 0 /* Notification */:\n if (onEmitNode !== noEmitNotification && (!isEmitNotificationEnabled || isEmitNotificationEnabled(node))) {\n return pipelineEmitWithNotification;\n }\n // falls through\n case 1 /* Substitution */:\n if (substituteNode !== noEmitSubstitution && (lastSubstitution = substituteNode(emitHint, node) || node) !== node) {\n if (currentParenthesizerRule) {\n lastSubstitution = currentParenthesizerRule(lastSubstitution);\n }\n return pipelineEmitWithSubstitution;\n }\n // falls through\n case 2 /* Comments */:\n if (shouldEmitComments(node)) {\n return pipelineEmitWithComments;\n }\n // falls through\n case 3 /* SourceMaps */:\n if (shouldEmitSourceMaps(node)) {\n return pipelineEmitWithSourceMaps;\n }\n // falls through\n case 4 /* Emit */:\n return pipelineEmitWithHint;\n default:\n return Debug.assertNever(phase);\n }\n }\n function getNextPipelinePhase(currentPhase, emitHint, node) {\n return getPipelinePhase(currentPhase + 1, emitHint, node);\n }\n function pipelineEmitWithNotification(hint, node) {\n const pipelinePhase = getNextPipelinePhase(0 /* Notification */, hint, node);\n onEmitNode(hint, node, pipelinePhase);\n }\n function pipelineEmitWithHint(hint, node) {\n onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node);\n if (preserveSourceNewlines) {\n const savedPreserveSourceNewlines = preserveSourceNewlines;\n beforeEmitNode(node);\n pipelineEmitWithHintWorker(hint, node);\n afterEmitNode(savedPreserveSourceNewlines);\n } else {\n pipelineEmitWithHintWorker(hint, node);\n }\n onAfterEmitNode == null ? void 0 : onAfterEmitNode(node);\n currentParenthesizerRule = void 0;\n }\n function pipelineEmitWithHintWorker(hint, node, allowSnippets = true) {\n if (allowSnippets) {\n const snippet = getSnippetElement(node);\n if (snippet) {\n return emitSnippetNode(hint, node, snippet);\n }\n }\n if (hint === 0 /* SourceFile */) return emitSourceFile(cast(node, isSourceFile));\n if (hint === 2 /* IdentifierName */) return emitIdentifier(cast(node, isIdentifier));\n if (hint === 6 /* JsxAttributeValue */) return emitLiteral(\n cast(node, isStringLiteral),\n /*jsxAttributeEscape*/\n true\n );\n if (hint === 3 /* MappedTypeParameter */) return emitMappedTypeParameter(cast(node, isTypeParameterDeclaration));\n if (hint === 7 /* ImportTypeNodeAttributes */) return emitImportTypeNodeAttributes(cast(node, isImportAttributes));\n if (hint === 5 /* EmbeddedStatement */) {\n Debug.assertNode(node, isEmptyStatement);\n return emitEmptyStatement(\n /*isEmbeddedStatement*/\n true\n );\n }\n if (hint === 4 /* Unspecified */) {\n switch (node.kind) {\n // Pseudo-literals\n case 16 /* TemplateHead */:\n case 17 /* TemplateMiddle */:\n case 18 /* TemplateTail */:\n return emitLiteral(\n node,\n /*jsxAttributeEscape*/\n false\n );\n // Identifiers\n case 80 /* Identifier */:\n return emitIdentifier(node);\n // PrivateIdentifiers\n case 81 /* PrivateIdentifier */:\n return emitPrivateIdentifier(node);\n // Parse tree nodes\n // Names\n case 167 /* QualifiedName */:\n return emitQualifiedName(node);\n case 168 /* ComputedPropertyName */:\n return emitComputedPropertyName(node);\n // Signature elements\n case 169 /* TypeParameter */:\n return emitTypeParameter(node);\n case 170 /* Parameter */:\n return emitParameter(node);\n case 171 /* Decorator */:\n return emitDecorator(node);\n // Type members\n case 172 /* PropertySignature */:\n return emitPropertySignature(node);\n case 173 /* PropertyDeclaration */:\n return emitPropertyDeclaration(node);\n case 174 /* MethodSignature */:\n return emitMethodSignature(node);\n case 175 /* MethodDeclaration */:\n return emitMethodDeclaration(node);\n case 176 /* ClassStaticBlockDeclaration */:\n return emitClassStaticBlockDeclaration(node);\n case 177 /* Constructor */:\n return emitConstructor(node);\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return emitAccessorDeclaration(node);\n case 180 /* CallSignature */:\n return emitCallSignature(node);\n case 181 /* ConstructSignature */:\n return emitConstructSignature(node);\n case 182 /* IndexSignature */:\n return emitIndexSignature(node);\n // Types\n case 183 /* TypePredicate */:\n return emitTypePredicate(node);\n case 184 /* TypeReference */:\n return emitTypeReference(node);\n case 185 /* FunctionType */:\n return emitFunctionType(node);\n case 186 /* ConstructorType */:\n return emitConstructorType(node);\n case 187 /* TypeQuery */:\n return emitTypeQuery(node);\n case 188 /* TypeLiteral */:\n return emitTypeLiteral(node);\n case 189 /* ArrayType */:\n return emitArrayType(node);\n case 190 /* TupleType */:\n return emitTupleType(node);\n case 191 /* OptionalType */:\n return emitOptionalType(node);\n // SyntaxKind.RestType is handled below\n case 193 /* UnionType */:\n return emitUnionType(node);\n case 194 /* IntersectionType */:\n return emitIntersectionType(node);\n case 195 /* ConditionalType */:\n return emitConditionalType(node);\n case 196 /* InferType */:\n return emitInferType(node);\n case 197 /* ParenthesizedType */:\n return emitParenthesizedType(node);\n case 234 /* ExpressionWithTypeArguments */:\n return emitExpressionWithTypeArguments(node);\n case 198 /* ThisType */:\n return emitThisType();\n case 199 /* TypeOperator */:\n return emitTypeOperator(node);\n case 200 /* IndexedAccessType */:\n return emitIndexedAccessType(node);\n case 201 /* MappedType */:\n return emitMappedType(node);\n case 202 /* LiteralType */:\n return emitLiteralType(node);\n case 203 /* NamedTupleMember */:\n return emitNamedTupleMember(node);\n case 204 /* TemplateLiteralType */:\n return emitTemplateType(node);\n case 205 /* TemplateLiteralTypeSpan */:\n return emitTemplateTypeSpan(node);\n case 206 /* ImportType */:\n return emitImportTypeNode(node);\n // Binding patterns\n case 207 /* ObjectBindingPattern */:\n return emitObjectBindingPattern(node);\n case 208 /* ArrayBindingPattern */:\n return emitArrayBindingPattern(node);\n case 209 /* BindingElement */:\n return emitBindingElement(node);\n // Misc\n case 240 /* TemplateSpan */:\n return emitTemplateSpan(node);\n case 241 /* SemicolonClassElement */:\n return emitSemicolonClassElement();\n // Statements\n case 242 /* Block */:\n return emitBlock(node);\n case 244 /* VariableStatement */:\n return emitVariableStatement(node);\n case 243 /* EmptyStatement */:\n return emitEmptyStatement(\n /*isEmbeddedStatement*/\n false\n );\n case 245 /* ExpressionStatement */:\n return emitExpressionStatement(node);\n case 246 /* IfStatement */:\n return emitIfStatement(node);\n case 247 /* DoStatement */:\n return emitDoStatement(node);\n case 248 /* WhileStatement */:\n return emitWhileStatement(node);\n case 249 /* ForStatement */:\n return emitForStatement(node);\n case 250 /* ForInStatement */:\n return emitForInStatement(node);\n case 251 /* ForOfStatement */:\n return emitForOfStatement(node);\n case 252 /* ContinueStatement */:\n return emitContinueStatement(node);\n case 253 /* BreakStatement */:\n return emitBreakStatement(node);\n case 254 /* ReturnStatement */:\n return emitReturnStatement(node);\n case 255 /* WithStatement */:\n return emitWithStatement(node);\n case 256 /* SwitchStatement */:\n return emitSwitchStatement(node);\n case 257 /* LabeledStatement */:\n return emitLabeledStatement(node);\n case 258 /* ThrowStatement */:\n return emitThrowStatement(node);\n case 259 /* TryStatement */:\n return emitTryStatement(node);\n case 260 /* DebuggerStatement */:\n return emitDebuggerStatement(node);\n // Declarations\n case 261 /* VariableDeclaration */:\n return emitVariableDeclaration(node);\n case 262 /* VariableDeclarationList */:\n return emitVariableDeclarationList(node);\n case 263 /* FunctionDeclaration */:\n return emitFunctionDeclaration(node);\n case 264 /* ClassDeclaration */:\n return emitClassDeclaration(node);\n case 265 /* InterfaceDeclaration */:\n return emitInterfaceDeclaration(node);\n case 266 /* TypeAliasDeclaration */:\n return emitTypeAliasDeclaration(node);\n case 267 /* EnumDeclaration */:\n return emitEnumDeclaration(node);\n case 268 /* ModuleDeclaration */:\n return emitModuleDeclaration(node);\n case 269 /* ModuleBlock */:\n return emitModuleBlock(node);\n case 270 /* CaseBlock */:\n return emitCaseBlock(node);\n case 271 /* NamespaceExportDeclaration */:\n return emitNamespaceExportDeclaration(node);\n case 272 /* ImportEqualsDeclaration */:\n return emitImportEqualsDeclaration(node);\n case 273 /* ImportDeclaration */:\n return emitImportDeclaration(node);\n case 274 /* ImportClause */:\n return emitImportClause(node);\n case 275 /* NamespaceImport */:\n return emitNamespaceImport(node);\n case 281 /* NamespaceExport */:\n return emitNamespaceExport(node);\n case 276 /* NamedImports */:\n return emitNamedImports(node);\n case 277 /* ImportSpecifier */:\n return emitImportSpecifier(node);\n case 278 /* ExportAssignment */:\n return emitExportAssignment(node);\n case 279 /* ExportDeclaration */:\n return emitExportDeclaration(node);\n case 280 /* NamedExports */:\n return emitNamedExports(node);\n case 282 /* ExportSpecifier */:\n return emitExportSpecifier(node);\n case 301 /* ImportAttributes */:\n return emitImportAttributes(node);\n case 302 /* ImportAttribute */:\n return emitImportAttribute(node);\n case 283 /* MissingDeclaration */:\n return;\n // Module references\n case 284 /* ExternalModuleReference */:\n return emitExternalModuleReference(node);\n // JSX (non-expression)\n case 12 /* JsxText */:\n return emitJsxText(node);\n case 287 /* JsxOpeningElement */:\n case 290 /* JsxOpeningFragment */:\n return emitJsxOpeningElementOrFragment(node);\n case 288 /* JsxClosingElement */:\n case 291 /* JsxClosingFragment */:\n return emitJsxClosingElementOrFragment(node);\n case 292 /* JsxAttribute */:\n return emitJsxAttribute(node);\n case 293 /* JsxAttributes */:\n return emitJsxAttributes(node);\n case 294 /* JsxSpreadAttribute */:\n return emitJsxSpreadAttribute(node);\n case 295 /* JsxExpression */:\n return emitJsxExpression(node);\n case 296 /* JsxNamespacedName */:\n return emitJsxNamespacedName(node);\n // Clauses\n case 297 /* CaseClause */:\n return emitCaseClause(node);\n case 298 /* DefaultClause */:\n return emitDefaultClause(node);\n case 299 /* HeritageClause */:\n return emitHeritageClause(node);\n case 300 /* CatchClause */:\n return emitCatchClause(node);\n // Property assignments\n case 304 /* PropertyAssignment */:\n return emitPropertyAssignment(node);\n case 305 /* ShorthandPropertyAssignment */:\n return emitShorthandPropertyAssignment(node);\n case 306 /* SpreadAssignment */:\n return emitSpreadAssignment(node);\n // Enum\n case 307 /* EnumMember */:\n return emitEnumMember(node);\n // Top-level nodes\n case 308 /* SourceFile */:\n return emitSourceFile(node);\n case 309 /* Bundle */:\n return Debug.fail(\"Bundles should be printed using printBundle\");\n // JSDoc nodes (only used in codefixes currently)\n case 310 /* JSDocTypeExpression */:\n return emitJSDocTypeExpression(node);\n case 311 /* JSDocNameReference */:\n return emitJSDocNameReference(node);\n case 313 /* JSDocAllType */:\n return writePunctuation(\"*\");\n case 314 /* JSDocUnknownType */:\n return writePunctuation(\"?\");\n case 315 /* JSDocNullableType */:\n return emitJSDocNullableType(node);\n case 316 /* JSDocNonNullableType */:\n return emitJSDocNonNullableType(node);\n case 317 /* JSDocOptionalType */:\n return emitJSDocOptionalType(node);\n case 318 /* JSDocFunctionType */:\n return emitJSDocFunctionType(node);\n case 192 /* RestType */:\n case 319 /* JSDocVariadicType */:\n return emitRestOrJSDocVariadicType(node);\n case 320 /* JSDocNamepathType */:\n return;\n case 321 /* JSDoc */:\n return emitJSDoc(node);\n case 323 /* JSDocTypeLiteral */:\n return emitJSDocTypeLiteral(node);\n case 324 /* JSDocSignature */:\n return emitJSDocSignature(node);\n case 328 /* JSDocTag */:\n case 333 /* JSDocClassTag */:\n case 338 /* JSDocOverrideTag */:\n return emitJSDocSimpleTag(node);\n case 329 /* JSDocAugmentsTag */:\n case 330 /* JSDocImplementsTag */:\n return emitJSDocHeritageTag(node);\n case 331 /* JSDocAuthorTag */:\n case 332 /* JSDocDeprecatedTag */:\n return;\n // SyntaxKind.JSDocClassTag (see JSDocTag, above)\n case 334 /* JSDocPublicTag */:\n case 335 /* JSDocPrivateTag */:\n case 336 /* JSDocProtectedTag */:\n case 337 /* JSDocReadonlyTag */:\n return;\n case 339 /* JSDocCallbackTag */:\n return emitJSDocCallbackTag(node);\n case 340 /* JSDocOverloadTag */:\n return emitJSDocOverloadTag(node);\n // SyntaxKind.JSDocEnumTag (see below)\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n return emitJSDocPropertyLikeTag(node);\n case 341 /* JSDocEnumTag */:\n case 343 /* JSDocReturnTag */:\n case 344 /* JSDocThisTag */:\n case 345 /* JSDocTypeTag */:\n case 350 /* JSDocThrowsTag */:\n case 351 /* JSDocSatisfiesTag */:\n return emitJSDocSimpleTypedTag(node);\n case 346 /* JSDocTemplateTag */:\n return emitJSDocTemplateTag(node);\n case 347 /* JSDocTypedefTag */:\n return emitJSDocTypedefTag(node);\n case 348 /* JSDocSeeTag */:\n return emitJSDocSeeTag(node);\n case 352 /* JSDocImportTag */:\n return emitJSDocImportTag(node);\n // SyntaxKind.JSDocPropertyTag (see JSDocParameterTag, above)\n // Transformation nodes\n case 354 /* NotEmittedStatement */:\n case 355 /* NotEmittedTypeElement */:\n return;\n }\n if (isExpression(node)) {\n hint = 1 /* Expression */;\n if (substituteNode !== noEmitSubstitution) {\n const substitute = substituteNode(hint, node) || node;\n if (substitute !== node) {\n node = substitute;\n if (currentParenthesizerRule) {\n node = currentParenthesizerRule(node);\n }\n }\n }\n }\n }\n if (hint === 1 /* Expression */) {\n switch (node.kind) {\n // Literals\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n return emitNumericOrBigIntLiteral(node);\n case 11 /* StringLiteral */:\n case 14 /* RegularExpressionLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return emitLiteral(\n node,\n /*jsxAttributeEscape*/\n false\n );\n // Identifiers\n case 80 /* Identifier */:\n return emitIdentifier(node);\n case 81 /* PrivateIdentifier */:\n return emitPrivateIdentifier(node);\n // Expressions\n case 210 /* ArrayLiteralExpression */:\n return emitArrayLiteralExpression(node);\n case 211 /* ObjectLiteralExpression */:\n return emitObjectLiteralExpression(node);\n case 212 /* PropertyAccessExpression */:\n return emitPropertyAccessExpression(node);\n case 213 /* ElementAccessExpression */:\n return emitElementAccessExpression(node);\n case 214 /* CallExpression */:\n return emitCallExpression(node);\n case 215 /* NewExpression */:\n return emitNewExpression(node);\n case 216 /* TaggedTemplateExpression */:\n return emitTaggedTemplateExpression(node);\n case 217 /* TypeAssertionExpression */:\n return emitTypeAssertionExpression(node);\n case 218 /* ParenthesizedExpression */:\n return emitParenthesizedExpression(node);\n case 219 /* FunctionExpression */:\n return emitFunctionExpression(node);\n case 220 /* ArrowFunction */:\n return emitArrowFunction(node);\n case 221 /* DeleteExpression */:\n return emitDeleteExpression(node);\n case 222 /* TypeOfExpression */:\n return emitTypeOfExpression(node);\n case 223 /* VoidExpression */:\n return emitVoidExpression(node);\n case 224 /* AwaitExpression */:\n return emitAwaitExpression(node);\n case 225 /* PrefixUnaryExpression */:\n return emitPrefixUnaryExpression(node);\n case 226 /* PostfixUnaryExpression */:\n return emitPostfixUnaryExpression(node);\n case 227 /* BinaryExpression */:\n return emitBinaryExpression(node);\n case 228 /* ConditionalExpression */:\n return emitConditionalExpression(node);\n case 229 /* TemplateExpression */:\n return emitTemplateExpression(node);\n case 230 /* YieldExpression */:\n return emitYieldExpression(node);\n case 231 /* SpreadElement */:\n return emitSpreadElement(node);\n case 232 /* ClassExpression */:\n return emitClassExpression(node);\n case 233 /* OmittedExpression */:\n return;\n case 235 /* AsExpression */:\n return emitAsExpression(node);\n case 236 /* NonNullExpression */:\n return emitNonNullExpression(node);\n case 234 /* ExpressionWithTypeArguments */:\n return emitExpressionWithTypeArguments(node);\n case 239 /* SatisfiesExpression */:\n return emitSatisfiesExpression(node);\n case 237 /* MetaProperty */:\n return emitMetaProperty(node);\n case 238 /* SyntheticExpression */:\n return Debug.fail(\"SyntheticExpression should never be printed.\");\n case 283 /* MissingDeclaration */:\n return;\n // JSX\n case 285 /* JsxElement */:\n return emitJsxElement(node);\n case 286 /* JsxSelfClosingElement */:\n return emitJsxSelfClosingElement(node);\n case 289 /* JsxFragment */:\n return emitJsxFragment(node);\n // Synthesized list\n case 353 /* SyntaxList */:\n return Debug.fail(\"SyntaxList should not be printed\");\n // Transformation nodes\n case 354 /* NotEmittedStatement */:\n return;\n case 356 /* PartiallyEmittedExpression */:\n return emitPartiallyEmittedExpression(node);\n case 357 /* CommaListExpression */:\n return emitCommaList(node);\n case 358 /* SyntheticReferenceExpression */:\n return Debug.fail(\"SyntheticReferenceExpression should not be printed\");\n }\n }\n if (isKeyword(node.kind)) return writeTokenNode(node, writeKeyword);\n if (isTokenKind(node.kind)) return writeTokenNode(node, writePunctuation);\n Debug.fail(`Unhandled SyntaxKind: ${Debug.formatSyntaxKind(node.kind)}.`);\n }\n function emitMappedTypeParameter(node) {\n emit(node.name);\n writeSpace();\n writeKeyword(\"in\");\n writeSpace();\n emit(node.constraint);\n }\n function pipelineEmitWithSubstitution(hint, node) {\n const pipelinePhase = getNextPipelinePhase(1 /* Substitution */, hint, node);\n Debug.assertIsDefined(lastSubstitution);\n node = lastSubstitution;\n lastSubstitution = void 0;\n pipelinePhase(hint, node);\n }\n function emitHelpers(node) {\n let helpersEmitted = false;\n const bundle = node.kind === 309 /* Bundle */ ? node : void 0;\n if (bundle && moduleKind === 0 /* None */) {\n return;\n }\n const numNodes = bundle ? bundle.sourceFiles.length : 1;\n for (let i = 0; i < numNodes; i++) {\n const currentNode = bundle ? bundle.sourceFiles[i] : node;\n const sourceFile = isSourceFile(currentNode) ? currentNode : currentSourceFile;\n const shouldSkip = printerOptions.noEmitHelpers || !!sourceFile && hasRecordedExternalHelpers(sourceFile);\n const shouldBundle = isSourceFile(currentNode) && !isOwnFileEmit;\n const helpers = getSortedEmitHelpers(currentNode);\n if (helpers) {\n for (const helper of helpers) {\n if (!helper.scoped) {\n if (shouldSkip) continue;\n if (shouldBundle) {\n if (bundledHelpers.get(helper.name)) {\n continue;\n }\n bundledHelpers.set(helper.name, true);\n }\n } else if (bundle) {\n continue;\n }\n if (typeof helper.text === \"string\") {\n writeLines(helper.text);\n } else {\n writeLines(helper.text(makeFileLevelOptimisticUniqueName));\n }\n helpersEmitted = true;\n }\n }\n }\n return helpersEmitted;\n }\n function getSortedEmitHelpers(node) {\n const helpers = getEmitHelpers(node);\n return helpers && toSorted(helpers, compareEmitHelpers);\n }\n function emitNumericOrBigIntLiteral(node) {\n emitLiteral(\n node,\n /*jsxAttributeEscape*/\n false\n );\n }\n function emitLiteral(node, jsxAttributeEscape) {\n const text = getLiteralTextOfNode(\n node,\n /*sourceFile*/\n void 0,\n printerOptions.neverAsciiEscape,\n jsxAttributeEscape\n );\n if ((printerOptions.sourceMap || printerOptions.inlineSourceMap) && (node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind))) {\n writeLiteral(text);\n } else {\n writeStringLiteral(text);\n }\n }\n function emitSnippetNode(hint, node, snippet) {\n switch (snippet.kind) {\n case 1 /* Placeholder */:\n emitPlaceholder(hint, node, snippet);\n break;\n case 0 /* TabStop */:\n emitTabStop(hint, node, snippet);\n break;\n }\n }\n function emitPlaceholder(hint, node, snippet) {\n nonEscapingWrite(`\\${${snippet.order}:`);\n pipelineEmitWithHintWorker(\n hint,\n node,\n /*allowSnippets*/\n false\n );\n nonEscapingWrite(`}`);\n }\n function emitTabStop(hint, node, snippet) {\n Debug.assert(node.kind === 243 /* EmptyStatement */, `A tab stop cannot be attached to a node of kind ${Debug.formatSyntaxKind(node.kind)}.`);\n Debug.assert(hint !== 5 /* EmbeddedStatement */, `A tab stop cannot be attached to an embedded statement.`);\n nonEscapingWrite(`$${snippet.order}`);\n }\n function emitIdentifier(node) {\n const writeText = node.symbol ? writeSymbol : write;\n writeText(getTextOfNode2(\n node,\n /*includeTrivia*/\n false\n ), node.symbol);\n emitList(node, getIdentifierTypeArguments(node), 53776 /* TypeParameters */);\n }\n function emitPrivateIdentifier(node) {\n write(getTextOfNode2(\n node,\n /*includeTrivia*/\n false\n ));\n }\n function emitQualifiedName(node) {\n emitEntityName(node.left);\n writePunctuation(\".\");\n emit(node.right);\n }\n function emitEntityName(node) {\n if (node.kind === 80 /* Identifier */) {\n emitExpression(node);\n } else {\n emit(node);\n }\n }\n function emitComputedPropertyName(node) {\n writePunctuation(\"[\");\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfComputedPropertyName);\n writePunctuation(\"]\");\n }\n function emitTypeParameter(node) {\n emitModifierList(node, node.modifiers);\n emit(node.name);\n if (node.constraint) {\n writeSpace();\n writeKeyword(\"extends\");\n writeSpace();\n emit(node.constraint);\n }\n if (node.default) {\n writeSpace();\n writeOperator(\"=\");\n writeSpace();\n emit(node.default);\n }\n }\n function emitParameter(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n true\n );\n emit(node.dotDotDotToken);\n emitNodeWithWriter(node.name, writeParameter);\n emit(node.questionToken);\n if (node.parent && node.parent.kind === 318 /* JSDocFunctionType */ && !node.name) {\n emit(node.type);\n } else {\n emitTypeAnnotation(node.type);\n }\n emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name ? node.name.end : node.modifiers ? node.modifiers.end : node.pos, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitDecorator(decorator) {\n writePunctuation(\"@\");\n emitExpression(decorator.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n }\n function emitPropertySignature(node) {\n emitModifierList(node, node.modifiers);\n emitNodeWithWriter(node.name, writeProperty);\n emit(node.questionToken);\n emitTypeAnnotation(node.type);\n writeTrailingSemicolon();\n }\n function emitPropertyDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n true\n );\n emit(node.name);\n emit(node.questionToken);\n emit(node.exclamationToken);\n emitTypeAnnotation(node.type);\n emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name.end, node);\n writeTrailingSemicolon();\n }\n function emitMethodSignature(node) {\n emitModifierList(node, node.modifiers);\n emit(node.name);\n emit(node.questionToken);\n emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n }\n function emitMethodDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n true\n );\n emit(node.asteriskToken);\n emit(node.name);\n emit(node.questionToken);\n emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n }\n function emitClassStaticBlockDeclaration(node) {\n writeKeyword(\"static\");\n pushNameGenerationScope(node);\n emitBlockFunctionBody(node.body);\n popNameGenerationScope(node);\n }\n function emitConstructor(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n writeKeyword(\"constructor\");\n emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n }\n function emitAccessorDeclaration(node) {\n const pos = emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n true\n );\n const token = node.kind === 178 /* GetAccessor */ ? 139 /* GetKeyword */ : 153 /* SetKeyword */;\n emitTokenWithComment(token, pos, writeKeyword, node);\n writeSpace();\n emit(node.name);\n emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n }\n function emitCallSignature(node) {\n emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n }\n function emitConstructSignature(node) {\n writeKeyword(\"new\");\n writeSpace();\n emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n }\n function emitIndexSignature(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n emitParametersForIndexSignature(node, node.parameters);\n emitTypeAnnotation(node.type);\n writeTrailingSemicolon();\n }\n function emitTemplateTypeSpan(node) {\n emit(node.type);\n emit(node.literal);\n }\n function emitSemicolonClassElement() {\n writeTrailingSemicolon();\n }\n function emitTypePredicate(node) {\n if (node.assertsModifier) {\n emit(node.assertsModifier);\n writeSpace();\n }\n emit(node.parameterName);\n if (node.type) {\n writeSpace();\n writeKeyword(\"is\");\n writeSpace();\n emit(node.type);\n }\n }\n function emitTypeReference(node) {\n emit(node.typeName);\n emitTypeArguments(node, node.typeArguments);\n }\n function emitFunctionType(node) {\n emitSignatureAndBody(node, emitFunctionTypeHead, emitFunctionTypeBody);\n }\n function emitFunctionTypeHead(node) {\n emitTypeParameters(node, node.typeParameters);\n emitParametersForArrow(node, node.parameters);\n writeSpace();\n writePunctuation(\"=>\");\n }\n function emitFunctionTypeBody(node) {\n writeSpace();\n emit(node.type);\n }\n function emitJSDocFunctionType(node) {\n writeKeyword(\"function\");\n emitParameters(node, node.parameters);\n writePunctuation(\":\");\n emit(node.type);\n }\n function emitJSDocNullableType(node) {\n writePunctuation(\"?\");\n emit(node.type);\n }\n function emitJSDocNonNullableType(node) {\n writePunctuation(\"!\");\n emit(node.type);\n }\n function emitJSDocOptionalType(node) {\n emit(node.type);\n writePunctuation(\"=\");\n }\n function emitConstructorType(node) {\n emitModifierList(node, node.modifiers);\n writeKeyword(\"new\");\n writeSpace();\n emitSignatureAndBody(node, emitFunctionTypeHead, emitFunctionTypeBody);\n }\n function emitTypeQuery(node) {\n writeKeyword(\"typeof\");\n writeSpace();\n emit(node.exprName);\n emitTypeArguments(node, node.typeArguments);\n }\n function emitTypeLiteral(node) {\n pushNameGenerationScope(node);\n forEach(node.members, generateMemberNames);\n writePunctuation(\"{\");\n const flags = getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineTypeLiteralMembers */ : 32897 /* MultiLineTypeLiteralMembers */;\n emitList(node, node.members, flags | 524288 /* NoSpaceIfEmpty */);\n writePunctuation(\"}\");\n popNameGenerationScope(node);\n }\n function emitArrayType(node) {\n emit(node.elementType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType);\n writePunctuation(\"[\");\n writePunctuation(\"]\");\n }\n function emitRestOrJSDocVariadicType(node) {\n writePunctuation(\"...\");\n emit(node.type);\n }\n function emitTupleType(node) {\n emitTokenWithComment(23 /* OpenBracketToken */, node.pos, writePunctuation, node);\n const flags = getEmitFlags(node) & 1 /* SingleLine */ ? 528 /* SingleLineTupleTypeElements */ : 657 /* MultiLineTupleTypeElements */;\n emitList(node, node.elements, flags | 524288 /* NoSpaceIfEmpty */, parenthesizer.parenthesizeElementTypeOfTupleType);\n emitTokenWithComment(24 /* CloseBracketToken */, node.elements.end, writePunctuation, node);\n }\n function emitNamedTupleMember(node) {\n emit(node.dotDotDotToken);\n emit(node.name);\n emit(node.questionToken);\n emitTokenWithComment(59 /* ColonToken */, node.name.end, writePunctuation, node);\n writeSpace();\n emit(node.type);\n }\n function emitOptionalType(node) {\n emit(node.type, parenthesizer.parenthesizeTypeOfOptionalType);\n writePunctuation(\"?\");\n }\n function emitUnionType(node) {\n emitList(node, node.types, 516 /* UnionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfUnionType);\n }\n function emitIntersectionType(node) {\n emitList(node, node.types, 520 /* IntersectionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfIntersectionType);\n }\n function emitConditionalType(node) {\n emit(node.checkType, parenthesizer.parenthesizeCheckTypeOfConditionalType);\n writeSpace();\n writeKeyword(\"extends\");\n writeSpace();\n emit(node.extendsType, parenthesizer.parenthesizeExtendsTypeOfConditionalType);\n writeSpace();\n writePunctuation(\"?\");\n writeSpace();\n emit(node.trueType);\n writeSpace();\n writePunctuation(\":\");\n writeSpace();\n emit(node.falseType);\n }\n function emitInferType(node) {\n writeKeyword(\"infer\");\n writeSpace();\n emit(node.typeParameter);\n }\n function emitParenthesizedType(node) {\n writePunctuation(\"(\");\n emit(node.type);\n writePunctuation(\")\");\n }\n function emitThisType() {\n writeKeyword(\"this\");\n }\n function emitTypeOperator(node) {\n writeTokenText(node.operator, writeKeyword);\n writeSpace();\n const parenthesizerRule = node.operator === 148 /* ReadonlyKeyword */ ? parenthesizer.parenthesizeOperandOfReadonlyTypeOperator : parenthesizer.parenthesizeOperandOfTypeOperator;\n emit(node.type, parenthesizerRule);\n }\n function emitIndexedAccessType(node) {\n emit(node.objectType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType);\n writePunctuation(\"[\");\n emit(node.indexType);\n writePunctuation(\"]\");\n }\n function emitMappedType(node) {\n const emitFlags = getEmitFlags(node);\n writePunctuation(\"{\");\n if (emitFlags & 1 /* SingleLine */) {\n writeSpace();\n } else {\n writeLine();\n increaseIndent();\n }\n if (node.readonlyToken) {\n emit(node.readonlyToken);\n if (node.readonlyToken.kind !== 148 /* ReadonlyKeyword */) {\n writeKeyword(\"readonly\");\n }\n writeSpace();\n }\n writePunctuation(\"[\");\n pipelineEmit(3 /* MappedTypeParameter */, node.typeParameter);\n if (node.nameType) {\n writeSpace();\n writeKeyword(\"as\");\n writeSpace();\n emit(node.nameType);\n }\n writePunctuation(\"]\");\n if (node.questionToken) {\n emit(node.questionToken);\n if (node.questionToken.kind !== 58 /* QuestionToken */) {\n writePunctuation(\"?\");\n }\n }\n writePunctuation(\":\");\n writeSpace();\n emit(node.type);\n writeTrailingSemicolon();\n if (emitFlags & 1 /* SingleLine */) {\n writeSpace();\n } else {\n writeLine();\n decreaseIndent();\n }\n emitList(node, node.members, 2 /* PreserveLines */);\n writePunctuation(\"}\");\n }\n function emitLiteralType(node) {\n emitExpression(node.literal);\n }\n function emitTemplateType(node) {\n emit(node.head);\n emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */);\n }\n function emitImportTypeNode(node) {\n if (node.isTypeOf) {\n writeKeyword(\"typeof\");\n writeSpace();\n }\n writeKeyword(\"import\");\n writePunctuation(\"(\");\n emit(node.argument);\n if (node.attributes) {\n writePunctuation(\",\");\n writeSpace();\n pipelineEmit(7 /* ImportTypeNodeAttributes */, node.attributes);\n }\n writePunctuation(\")\");\n if (node.qualifier) {\n writePunctuation(\".\");\n emit(node.qualifier);\n }\n emitTypeArguments(node, node.typeArguments);\n }\n function emitObjectBindingPattern(node) {\n writePunctuation(\"{\");\n emitList(node, node.elements, 525136 /* ObjectBindingPatternElements */);\n writePunctuation(\"}\");\n }\n function emitArrayBindingPattern(node) {\n writePunctuation(\"[\");\n emitList(node, node.elements, 524880 /* ArrayBindingPatternElements */);\n writePunctuation(\"]\");\n }\n function emitBindingElement(node) {\n emit(node.dotDotDotToken);\n if (node.propertyName) {\n emit(node.propertyName);\n writePunctuation(\":\");\n writeSpace();\n }\n emit(node.name);\n emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitArrayLiteralExpression(node) {\n const elements = node.elements;\n const preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */;\n emitExpressionList(node, elements, 8914 /* ArrayLiteralExpressionElements */ | preferNewLine, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitObjectLiteralExpression(node) {\n pushNameGenerationScope(node);\n forEach(node.properties, generateMemberNames);\n const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n if (indentedFlag) {\n increaseIndent();\n }\n const preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */;\n const allowTrailingComma = currentSourceFile && currentSourceFile.languageVersion >= 1 /* ES5 */ && !isJsonSourceFile(currentSourceFile) ? 64 /* AllowTrailingComma */ : 0 /* None */;\n emitList(node, node.properties, 526226 /* ObjectLiteralExpressionProperties */ | allowTrailingComma | preferNewLine);\n if (indentedFlag) {\n decreaseIndent();\n }\n popNameGenerationScope(node);\n }\n function emitPropertyAccessExpression(node) {\n emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n const token = node.questionDotToken || setTextRangePosEnd(factory.createToken(25 /* DotToken */), node.expression.end, node.name.pos);\n const linesBeforeDot = getLinesBetweenNodes(node, node.expression, token);\n const linesAfterDot = getLinesBetweenNodes(node, token, node.name);\n writeLinesAndIndent(\n linesBeforeDot,\n /*writeSpaceIfNotIndenting*/\n false\n );\n const shouldEmitDotDot = token.kind !== 29 /* QuestionDotToken */ && mayNeedDotDotForPropertyAccess(node.expression) && !writer.hasTrailingComment() && !writer.hasTrailingWhitespace();\n if (shouldEmitDotDot) {\n writePunctuation(\".\");\n }\n if (node.questionDotToken) {\n emit(token);\n } else {\n emitTokenWithComment(token.kind, node.expression.end, writePunctuation, node);\n }\n writeLinesAndIndent(\n linesAfterDot,\n /*writeSpaceIfNotIndenting*/\n false\n );\n emit(node.name);\n decreaseIndentIf(linesBeforeDot, linesAfterDot);\n }\n function mayNeedDotDotForPropertyAccess(expression) {\n expression = skipPartiallyEmittedExpressions(expression);\n if (isNumericLiteral(expression)) {\n const text = getLiteralTextOfNode(\n expression,\n /*sourceFile*/\n void 0,\n /*neverAsciiEscape*/\n true,\n /*jsxAttributeEscape*/\n false\n );\n return !(expression.numericLiteralFlags & 448 /* WithSpecifier */) && !text.includes(tokenToString(25 /* DotToken */)) && !text.includes(String.fromCharCode(69 /* E */)) && !text.includes(String.fromCharCode(101 /* e */));\n } else if (isAccessExpression(expression)) {\n const constantValue = getConstantValue(expression);\n return typeof constantValue === \"number\" && isFinite(constantValue) && constantValue >= 0 && Math.floor(constantValue) === constantValue;\n }\n }\n function emitElementAccessExpression(node) {\n emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n emit(node.questionDotToken);\n emitTokenWithComment(23 /* OpenBracketToken */, node.expression.end, writePunctuation, node);\n emitExpression(node.argumentExpression);\n emitTokenWithComment(24 /* CloseBracketToken */, node.argumentExpression.end, writePunctuation, node);\n }\n function emitCallExpression(node) {\n const indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */;\n if (indirectCall) {\n writePunctuation(\"(\");\n writeLiteral(\"0\");\n writePunctuation(\",\");\n writeSpace();\n }\n emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n if (indirectCall) {\n writePunctuation(\")\");\n }\n emit(node.questionDotToken);\n emitTypeArguments(node, node.typeArguments);\n emitExpressionList(node, node.arguments, 2576 /* CallExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitNewExpression(node) {\n emitTokenWithComment(105 /* NewKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfNew);\n emitTypeArguments(node, node.typeArguments);\n emitExpressionList(node, node.arguments, 18960 /* NewExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitTaggedTemplateExpression(node) {\n const indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */;\n if (indirectCall) {\n writePunctuation(\"(\");\n writeLiteral(\"0\");\n writePunctuation(\",\");\n writeSpace();\n }\n emitExpression(node.tag, parenthesizer.parenthesizeLeftSideOfAccess);\n if (indirectCall) {\n writePunctuation(\")\");\n }\n emitTypeArguments(node, node.typeArguments);\n writeSpace();\n emitExpression(node.template);\n }\n function emitTypeAssertionExpression(node) {\n writePunctuation(\"<\");\n emit(node.type);\n writePunctuation(\">\");\n emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function emitParenthesizedExpression(node) {\n const openParenPos = emitTokenWithComment(21 /* OpenParenToken */, node.pos, writePunctuation, node);\n const indented = writeLineSeparatorsAndIndentBefore(node.expression, node);\n emitExpression(\n node.expression,\n /*parenthesizerRule*/\n void 0\n );\n writeLineSeparatorsAfter(node.expression, node);\n decreaseIndentIf(indented);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression ? node.expression.end : openParenPos, writePunctuation, node);\n }\n function emitFunctionExpression(node) {\n generateNameIfNeeded(node.name);\n emitFunctionDeclarationOrExpression(node);\n }\n function emitArrowFunction(node) {\n emitModifierList(node, node.modifiers);\n emitSignatureAndBody(node, emitArrowFunctionHead, emitArrowFunctionBody);\n }\n function emitArrowFunctionHead(node) {\n emitTypeParameters(node, node.typeParameters);\n emitParametersForArrow(node, node.parameters);\n emitTypeAnnotation(node.type);\n writeSpace();\n emit(node.equalsGreaterThanToken);\n }\n function emitArrowFunctionBody(node) {\n if (isBlock(node.body)) {\n emitBlockFunctionBody(node.body);\n } else {\n writeSpace();\n emitExpression(node.body, parenthesizer.parenthesizeConciseBodyOfArrowFunction);\n }\n }\n function emitDeleteExpression(node) {\n emitTokenWithComment(91 /* DeleteKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function emitTypeOfExpression(node) {\n emitTokenWithComment(114 /* TypeOfKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function emitVoidExpression(node) {\n emitTokenWithComment(116 /* VoidKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function emitAwaitExpression(node) {\n emitTokenWithComment(135 /* AwaitKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function emitPrefixUnaryExpression(node) {\n writeTokenText(node.operator, writeOperator);\n if (shouldEmitWhitespaceBeforeOperand(node)) {\n writeSpace();\n }\n emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPrefixUnary);\n }\n function shouldEmitWhitespaceBeforeOperand(node) {\n const operand = node.operand;\n return operand.kind === 225 /* PrefixUnaryExpression */ && (node.operator === 40 /* PlusToken */ && (operand.operator === 40 /* PlusToken */ || operand.operator === 46 /* PlusPlusToken */) || node.operator === 41 /* MinusToken */ && (operand.operator === 41 /* MinusToken */ || operand.operator === 47 /* MinusMinusToken */));\n }\n function emitPostfixUnaryExpression(node) {\n emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPostfixUnary);\n writeTokenText(node.operator, writeOperator);\n }\n function createEmitBinaryExpression() {\n return createBinaryExpressionTrampoline(\n onEnter,\n onLeft,\n onOperator,\n onRight,\n onExit,\n /*foldState*/\n void 0\n );\n function onEnter(node, state) {\n if (state) {\n state.stackIndex++;\n state.preserveSourceNewlinesStack[state.stackIndex] = preserveSourceNewlines;\n state.containerPosStack[state.stackIndex] = containerPos;\n state.containerEndStack[state.stackIndex] = containerEnd;\n state.declarationListContainerEndStack[state.stackIndex] = declarationListContainerEnd;\n const emitComments2 = state.shouldEmitCommentsStack[state.stackIndex] = shouldEmitComments(node);\n const emitSourceMaps = state.shouldEmitSourceMapsStack[state.stackIndex] = shouldEmitSourceMaps(node);\n onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node);\n if (emitComments2) emitCommentsBeforeNode(node);\n if (emitSourceMaps) emitSourceMapsBeforeNode(node);\n beforeEmitNode(node);\n } else {\n state = {\n stackIndex: 0,\n preserveSourceNewlinesStack: [void 0],\n containerPosStack: [-1],\n containerEndStack: [-1],\n declarationListContainerEndStack: [-1],\n shouldEmitCommentsStack: [false],\n shouldEmitSourceMapsStack: [false]\n };\n }\n return state;\n }\n function onLeft(next, _workArea, parent2) {\n return maybeEmitExpression(next, parent2, \"left\");\n }\n function onOperator(operatorToken, _state, node) {\n const isCommaOperator = operatorToken.kind !== 28 /* CommaToken */;\n const linesBeforeOperator = getLinesBetweenNodes(node, node.left, operatorToken);\n const linesAfterOperator = getLinesBetweenNodes(node, operatorToken, node.right);\n writeLinesAndIndent(linesBeforeOperator, isCommaOperator);\n emitLeadingCommentsOfPosition(operatorToken.pos);\n writeTokenNode(operatorToken, operatorToken.kind === 103 /* InKeyword */ ? writeKeyword : writeOperator);\n emitTrailingCommentsOfPosition(\n operatorToken.end,\n /*prefixSpace*/\n true\n );\n writeLinesAndIndent(\n linesAfterOperator,\n /*writeSpaceIfNotIndenting*/\n true\n );\n }\n function onRight(next, _workArea, parent2) {\n return maybeEmitExpression(next, parent2, \"right\");\n }\n function onExit(node, state) {\n const linesBeforeOperator = getLinesBetweenNodes(node, node.left, node.operatorToken);\n const linesAfterOperator = getLinesBetweenNodes(node, node.operatorToken, node.right);\n decreaseIndentIf(linesBeforeOperator, linesAfterOperator);\n if (state.stackIndex > 0) {\n const savedPreserveSourceNewlines = state.preserveSourceNewlinesStack[state.stackIndex];\n const savedContainerPos = state.containerPosStack[state.stackIndex];\n const savedContainerEnd = state.containerEndStack[state.stackIndex];\n const savedDeclarationListContainerEnd = state.declarationListContainerEndStack[state.stackIndex];\n const shouldEmitComments2 = state.shouldEmitCommentsStack[state.stackIndex];\n const shouldEmitSourceMaps2 = state.shouldEmitSourceMapsStack[state.stackIndex];\n afterEmitNode(savedPreserveSourceNewlines);\n if (shouldEmitSourceMaps2) emitSourceMapsAfterNode(node);\n if (shouldEmitComments2) emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n onAfterEmitNode == null ? void 0 : onAfterEmitNode(node);\n state.stackIndex--;\n }\n }\n function maybeEmitExpression(next, parent2, side) {\n const parenthesizerRule = side === \"left\" ? parenthesizer.getParenthesizeLeftSideOfBinaryForOperator(parent2.operatorToken.kind) : parenthesizer.getParenthesizeRightSideOfBinaryForOperator(parent2.operatorToken.kind);\n let pipelinePhase = getPipelinePhase(0 /* Notification */, 1 /* Expression */, next);\n if (pipelinePhase === pipelineEmitWithSubstitution) {\n Debug.assertIsDefined(lastSubstitution);\n next = parenthesizerRule(cast(lastSubstitution, isExpression));\n pipelinePhase = getNextPipelinePhase(1 /* Substitution */, 1 /* Expression */, next);\n lastSubstitution = void 0;\n }\n if (pipelinePhase === pipelineEmitWithComments || pipelinePhase === pipelineEmitWithSourceMaps || pipelinePhase === pipelineEmitWithHint) {\n if (isBinaryExpression(next)) {\n return next;\n }\n }\n currentParenthesizerRule = parenthesizerRule;\n pipelinePhase(1 /* Expression */, next);\n }\n }\n function emitConditionalExpression(node) {\n const linesBeforeQuestion = getLinesBetweenNodes(node, node.condition, node.questionToken);\n const linesAfterQuestion = getLinesBetweenNodes(node, node.questionToken, node.whenTrue);\n const linesBeforeColon = getLinesBetweenNodes(node, node.whenTrue, node.colonToken);\n const linesAfterColon = getLinesBetweenNodes(node, node.colonToken, node.whenFalse);\n emitExpression(node.condition, parenthesizer.parenthesizeConditionOfConditionalExpression);\n writeLinesAndIndent(\n linesBeforeQuestion,\n /*writeSpaceIfNotIndenting*/\n true\n );\n emit(node.questionToken);\n writeLinesAndIndent(\n linesAfterQuestion,\n /*writeSpaceIfNotIndenting*/\n true\n );\n emitExpression(node.whenTrue, parenthesizer.parenthesizeBranchOfConditionalExpression);\n decreaseIndentIf(linesBeforeQuestion, linesAfterQuestion);\n writeLinesAndIndent(\n linesBeforeColon,\n /*writeSpaceIfNotIndenting*/\n true\n );\n emit(node.colonToken);\n writeLinesAndIndent(\n linesAfterColon,\n /*writeSpaceIfNotIndenting*/\n true\n );\n emitExpression(node.whenFalse, parenthesizer.parenthesizeBranchOfConditionalExpression);\n decreaseIndentIf(linesBeforeColon, linesAfterColon);\n }\n function emitTemplateExpression(node) {\n emit(node.head);\n emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */);\n }\n function emitYieldExpression(node) {\n emitTokenWithComment(127 /* YieldKeyword */, node.pos, writeKeyword, node);\n emit(node.asteriskToken);\n emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma);\n }\n function emitSpreadElement(node) {\n emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node);\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitClassExpression(node) {\n generateNameIfNeeded(node.name);\n emitClassDeclarationOrExpression(node);\n }\n function emitExpressionWithTypeArguments(node) {\n emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n emitTypeArguments(node, node.typeArguments);\n }\n function emitAsExpression(node) {\n emitExpression(\n node.expression,\n /*parenthesizerRule*/\n void 0\n );\n if (node.type) {\n writeSpace();\n writeKeyword(\"as\");\n writeSpace();\n emit(node.type);\n }\n }\n function emitNonNullExpression(node) {\n emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n writeOperator(\"!\");\n }\n function emitSatisfiesExpression(node) {\n emitExpression(\n node.expression,\n /*parenthesizerRule*/\n void 0\n );\n if (node.type) {\n writeSpace();\n writeKeyword(\"satisfies\");\n writeSpace();\n emit(node.type);\n }\n }\n function emitMetaProperty(node) {\n writeToken(node.keywordToken, node.pos, writePunctuation);\n writePunctuation(\".\");\n emit(node.name);\n }\n function emitTemplateSpan(node) {\n emitExpression(node.expression);\n emit(node.literal);\n }\n function emitBlock(node) {\n emitBlockStatements(\n node,\n /*forceSingleLine*/\n !node.multiLine && isEmptyBlock(node)\n );\n }\n function emitBlockStatements(node, forceSingleLine) {\n emitTokenWithComment(\n 19 /* OpenBraceToken */,\n node.pos,\n writePunctuation,\n /*contextNode*/\n node\n );\n const format = forceSingleLine || getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineBlockStatements */ : 129 /* MultiLineBlockStatements */;\n emitList(node, node.statements, format);\n emitTokenWithComment(\n 20 /* CloseBraceToken */,\n node.statements.end,\n writePunctuation,\n /*contextNode*/\n node,\n /*indentLeading*/\n !!(format & 1 /* MultiLine */)\n );\n }\n function emitVariableStatement(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n emit(node.declarationList);\n writeTrailingSemicolon();\n }\n function emitEmptyStatement(isEmbeddedStatement) {\n if (isEmbeddedStatement) {\n writePunctuation(\";\");\n } else {\n writeTrailingSemicolon();\n }\n }\n function emitExpressionStatement(node) {\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfExpressionStatement);\n if (!currentSourceFile || !isJsonSourceFile(currentSourceFile) || nodeIsSynthesized(node.expression)) {\n writeTrailingSemicolon();\n }\n }\n function emitIfStatement(node) {\n const openParenPos = emitTokenWithComment(101 /* IfKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n emitEmbeddedStatement(node, node.thenStatement);\n if (node.elseStatement) {\n writeLineOrSpace(node, node.thenStatement, node.elseStatement);\n emitTokenWithComment(93 /* ElseKeyword */, node.thenStatement.end, writeKeyword, node);\n if (node.elseStatement.kind === 246 /* IfStatement */) {\n writeSpace();\n emit(node.elseStatement);\n } else {\n emitEmbeddedStatement(node, node.elseStatement);\n }\n }\n }\n function emitWhileClause(node, startPos) {\n const openParenPos = emitTokenWithComment(117 /* WhileKeyword */, startPos, writeKeyword, node);\n writeSpace();\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n }\n function emitDoStatement(node) {\n emitTokenWithComment(92 /* DoKeyword */, node.pos, writeKeyword, node);\n emitEmbeddedStatement(node, node.statement);\n if (isBlock(node.statement) && !preserveSourceNewlines) {\n writeSpace();\n } else {\n writeLineOrSpace(node, node.statement, node.expression);\n }\n emitWhileClause(node, node.statement.end);\n writeTrailingSemicolon();\n }\n function emitWhileStatement(node) {\n emitWhileClause(node, node.pos);\n emitEmbeddedStatement(node, node.statement);\n }\n function emitForStatement(node) {\n const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n let pos = emitTokenWithComment(\n 21 /* OpenParenToken */,\n openParenPos,\n writePunctuation,\n /*contextNode*/\n node\n );\n emitForBinding(node.initializer);\n pos = emitTokenWithComment(27 /* SemicolonToken */, node.initializer ? node.initializer.end : pos, writePunctuation, node);\n emitExpressionWithLeadingSpace(node.condition);\n pos = emitTokenWithComment(27 /* SemicolonToken */, node.condition ? node.condition.end : pos, writePunctuation, node);\n emitExpressionWithLeadingSpace(node.incrementor);\n emitTokenWithComment(22 /* CloseParenToken */, node.incrementor ? node.incrementor.end : pos, writePunctuation, node);\n emitEmbeddedStatement(node, node.statement);\n }\n function emitForInStatement(node) {\n const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitForBinding(node.initializer);\n writeSpace();\n emitTokenWithComment(103 /* InKeyword */, node.initializer.end, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n emitEmbeddedStatement(node, node.statement);\n }\n function emitForOfStatement(node) {\n const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitWithTrailingSpace(node.awaitModifier);\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitForBinding(node.initializer);\n writeSpace();\n emitTokenWithComment(165 /* OfKeyword */, node.initializer.end, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n emitEmbeddedStatement(node, node.statement);\n }\n function emitForBinding(node) {\n if (node !== void 0) {\n if (node.kind === 262 /* VariableDeclarationList */) {\n emit(node);\n } else {\n emitExpression(node);\n }\n }\n }\n function emitContinueStatement(node) {\n emitTokenWithComment(88 /* ContinueKeyword */, node.pos, writeKeyword, node);\n emitWithLeadingSpace(node.label);\n writeTrailingSemicolon();\n }\n function emitBreakStatement(node) {\n emitTokenWithComment(83 /* BreakKeyword */, node.pos, writeKeyword, node);\n emitWithLeadingSpace(node.label);\n writeTrailingSemicolon();\n }\n function emitTokenWithComment(token, pos, writer2, contextNode, indentLeading) {\n const node = getParseTreeNode(contextNode);\n const isSimilarNode = node && node.kind === contextNode.kind;\n const startPos = pos;\n if (isSimilarNode && currentSourceFile) {\n pos = skipTrivia(currentSourceFile.text, pos);\n }\n if (isSimilarNode && contextNode.pos !== startPos) {\n const needsIndent = indentLeading && currentSourceFile && !positionsAreOnSameLine(startPos, pos, currentSourceFile);\n if (needsIndent) {\n increaseIndent();\n }\n emitLeadingCommentsOfPosition(startPos);\n if (needsIndent) {\n decreaseIndent();\n }\n }\n if (!omitBraceSourcePositions && (token === 19 /* OpenBraceToken */ || token === 20 /* CloseBraceToken */)) {\n pos = writeToken(token, pos, writer2, contextNode);\n } else {\n pos = writeTokenText(token, writer2, pos);\n }\n if (isSimilarNode && contextNode.end !== pos) {\n const isJsxExprContext = contextNode.kind === 295 /* JsxExpression */;\n emitTrailingCommentsOfPosition(\n pos,\n /*prefixSpace*/\n !isJsxExprContext,\n /*forceNoNewline*/\n isJsxExprContext\n );\n }\n return pos;\n }\n function commentWillEmitNewLine(node) {\n return node.kind === 2 /* SingleLineCommentTrivia */ || !!node.hasTrailingNewLine;\n }\n function willEmitLeadingNewLine(node) {\n if (!currentSourceFile) return false;\n const leadingCommentRanges = getLeadingCommentRanges(currentSourceFile.text, node.pos);\n if (leadingCommentRanges) {\n const parseNode = getParseTreeNode(node);\n if (parseNode && isParenthesizedExpression(parseNode.parent)) {\n return true;\n }\n }\n if (some(leadingCommentRanges, commentWillEmitNewLine)) return true;\n if (some(getSyntheticLeadingComments(node), commentWillEmitNewLine)) return true;\n if (isPartiallyEmittedExpression(node)) {\n if (node.pos !== node.expression.pos) {\n if (some(getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine)) return true;\n }\n return willEmitLeadingNewLine(node.expression);\n }\n return false;\n }\n function parenthesizeExpressionForNoAsi(node) {\n if (!commentsDisabled) {\n switch (node.kind) {\n case 356 /* PartiallyEmittedExpression */:\n if (willEmitLeadingNewLine(node)) {\n const parseNode = getParseTreeNode(node);\n if (parseNode && isParenthesizedExpression(parseNode)) {\n const parens = factory.createParenthesizedExpression(node.expression);\n setOriginalNode(parens, node);\n setTextRange(parens, parseNode);\n return parens;\n }\n return factory.createParenthesizedExpression(node);\n }\n return factory.updatePartiallyEmittedExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression)\n );\n case 212 /* PropertyAccessExpression */:\n return factory.updatePropertyAccessExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression),\n node.name\n );\n case 213 /* ElementAccessExpression */:\n return factory.updateElementAccessExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression),\n node.argumentExpression\n );\n case 214 /* CallExpression */:\n return factory.updateCallExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression),\n node.typeArguments,\n node.arguments\n );\n case 216 /* TaggedTemplateExpression */:\n return factory.updateTaggedTemplateExpression(\n node,\n parenthesizeExpressionForNoAsi(node.tag),\n node.typeArguments,\n node.template\n );\n case 226 /* PostfixUnaryExpression */:\n return factory.updatePostfixUnaryExpression(\n node,\n parenthesizeExpressionForNoAsi(node.operand)\n );\n case 227 /* BinaryExpression */:\n return factory.updateBinaryExpression(\n node,\n parenthesizeExpressionForNoAsi(node.left),\n node.operatorToken,\n node.right\n );\n case 228 /* ConditionalExpression */:\n return factory.updateConditionalExpression(\n node,\n parenthesizeExpressionForNoAsi(node.condition),\n node.questionToken,\n node.whenTrue,\n node.colonToken,\n node.whenFalse\n );\n case 235 /* AsExpression */:\n return factory.updateAsExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression),\n node.type\n );\n case 239 /* SatisfiesExpression */:\n return factory.updateSatisfiesExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression),\n node.type\n );\n case 236 /* NonNullExpression */:\n return factory.updateNonNullExpression(\n node,\n parenthesizeExpressionForNoAsi(node.expression)\n );\n }\n }\n return node;\n }\n function parenthesizeExpressionForNoAsiAndDisallowedComma(node) {\n return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node));\n }\n function emitReturnStatement(node) {\n emitTokenWithComment(\n 107 /* ReturnKeyword */,\n node.pos,\n writeKeyword,\n /*contextNode*/\n node\n );\n emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);\n writeTrailingSemicolon();\n }\n function emitWithStatement(node) {\n const openParenPos = emitTokenWithComment(118 /* WithKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n emitEmbeddedStatement(node, node.statement);\n }\n function emitSwitchStatement(node) {\n const openParenPos = emitTokenWithComment(109 /* SwitchKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emitExpression(node.expression);\n emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n writeSpace();\n emit(node.caseBlock);\n }\n function emitLabeledStatement(node) {\n emit(node.label);\n emitTokenWithComment(59 /* ColonToken */, node.label.end, writePunctuation, node);\n writeSpace();\n emit(node.statement);\n }\n function emitThrowStatement(node) {\n emitTokenWithComment(111 /* ThrowKeyword */, node.pos, writeKeyword, node);\n emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);\n writeTrailingSemicolon();\n }\n function emitTryStatement(node) {\n emitTokenWithComment(113 /* TryKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emit(node.tryBlock);\n if (node.catchClause) {\n writeLineOrSpace(node, node.tryBlock, node.catchClause);\n emit(node.catchClause);\n }\n if (node.finallyBlock) {\n writeLineOrSpace(node, node.catchClause || node.tryBlock, node.finallyBlock);\n emitTokenWithComment(98 /* FinallyKeyword */, (node.catchClause || node.tryBlock).end, writeKeyword, node);\n writeSpace();\n emit(node.finallyBlock);\n }\n }\n function emitDebuggerStatement(node) {\n writeToken(89 /* DebuggerKeyword */, node.pos, writeKeyword);\n writeTrailingSemicolon();\n }\n function emitVariableDeclaration(node) {\n var _a, _b, _c;\n emit(node.name);\n emit(node.exclamationToken);\n emitTypeAnnotation(node.type);\n emitInitializer(node.initializer, ((_a = node.type) == null ? void 0 : _a.end) ?? ((_c = (_b = node.name.emitNode) == null ? void 0 : _b.typeNode) == null ? void 0 : _c.end) ?? node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitVariableDeclarationList(node) {\n if (isVarAwaitUsing(node)) {\n writeKeyword(\"await\");\n writeSpace();\n writeKeyword(\"using\");\n } else {\n const head = isLet(node) ? \"let\" : isVarConst(node) ? \"const\" : isVarUsing(node) ? \"using\" : \"var\";\n writeKeyword(head);\n }\n writeSpace();\n emitList(node, node.declarations, 528 /* VariableDeclarationList */);\n }\n function emitFunctionDeclaration(node) {\n emitFunctionDeclarationOrExpression(node);\n }\n function emitFunctionDeclarationOrExpression(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n writeKeyword(\"function\");\n emit(node.asteriskToken);\n writeSpace();\n emitIdentifierName(node.name);\n emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n }\n function emitSignatureAndBody(node, emitSignatureHead2, emitBody) {\n const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n if (indentedFlag) {\n increaseIndent();\n }\n pushNameGenerationScope(node);\n forEach(node.parameters, generateNames);\n emitSignatureHead2(node);\n emitBody(node);\n popNameGenerationScope(node);\n if (indentedFlag) {\n decreaseIndent();\n }\n }\n function emitFunctionBody(node) {\n const body = node.body;\n if (body) {\n emitBlockFunctionBody(body);\n } else {\n writeTrailingSemicolon();\n }\n }\n function emitEmptyFunctionBody(_node) {\n writeTrailingSemicolon();\n }\n function emitSignatureHead(node) {\n emitTypeParameters(node, node.typeParameters);\n emitParameters(node, node.parameters);\n emitTypeAnnotation(node.type);\n }\n function shouldEmitBlockFunctionBodyOnSingleLine(body) {\n if (getEmitFlags(body) & 1 /* SingleLine */) {\n return true;\n }\n if (body.multiLine) {\n return false;\n }\n if (!nodeIsSynthesized(body) && currentSourceFile && !rangeIsOnSingleLine(body, currentSourceFile)) {\n return false;\n }\n if (getLeadingLineTerminatorCount(body, firstOrUndefined(body.statements), 2 /* PreserveLines */) || getClosingLineTerminatorCount(body, lastOrUndefined(body.statements), 2 /* PreserveLines */, body.statements)) {\n return false;\n }\n let previousStatement;\n for (const statement of body.statements) {\n if (getSeparatingLineTerminatorCount(previousStatement, statement, 2 /* PreserveLines */) > 0) {\n return false;\n }\n previousStatement = statement;\n }\n return true;\n }\n function emitBlockFunctionBody(body) {\n generateNames(body);\n onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(body);\n writeSpace();\n writePunctuation(\"{\");\n increaseIndent();\n const emitBlockFunctionBody2 = shouldEmitBlockFunctionBodyOnSingleLine(body) ? emitBlockFunctionBodyOnSingleLine : emitBlockFunctionBodyWorker;\n emitBodyWithDetachedComments(body, body.statements, emitBlockFunctionBody2);\n decreaseIndent();\n writeToken(20 /* CloseBraceToken */, body.statements.end, writePunctuation, body);\n onAfterEmitNode == null ? void 0 : onAfterEmitNode(body);\n }\n function emitBlockFunctionBodyOnSingleLine(body) {\n emitBlockFunctionBodyWorker(\n body,\n /*emitBlockFunctionBodyOnSingleLine*/\n true\n );\n }\n function emitBlockFunctionBodyWorker(body, emitBlockFunctionBodyOnSingleLine2) {\n const statementOffset = emitPrologueDirectives(body.statements);\n const pos = writer.getTextPos();\n emitHelpers(body);\n if (statementOffset === 0 && pos === writer.getTextPos() && emitBlockFunctionBodyOnSingleLine2) {\n decreaseIndent();\n emitList(body, body.statements, 768 /* SingleLineFunctionBodyStatements */);\n increaseIndent();\n } else {\n emitList(\n body,\n body.statements,\n 1 /* MultiLineFunctionBodyStatements */,\n /*parenthesizerRule*/\n void 0,\n statementOffset\n );\n }\n }\n function emitClassDeclaration(node) {\n emitClassDeclarationOrExpression(node);\n }\n function emitClassDeclarationOrExpression(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n true\n );\n emitTokenWithComment(86 /* ClassKeyword */, moveRangePastModifiers(node).pos, writeKeyword, node);\n if (node.name) {\n writeSpace();\n emitIdentifierName(node.name);\n }\n const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n if (indentedFlag) {\n increaseIndent();\n }\n emitTypeParameters(node, node.typeParameters);\n emitList(node, node.heritageClauses, 0 /* ClassHeritageClauses */);\n writeSpace();\n writePunctuation(\"{\");\n pushNameGenerationScope(node);\n forEach(node.members, generateMemberNames);\n emitList(node, node.members, 129 /* ClassMembers */);\n popNameGenerationScope(node);\n writePunctuation(\"}\");\n if (indentedFlag) {\n decreaseIndent();\n }\n }\n function emitInterfaceDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n writeKeyword(\"interface\");\n writeSpace();\n emit(node.name);\n emitTypeParameters(node, node.typeParameters);\n emitList(node, node.heritageClauses, 512 /* HeritageClauses */);\n writeSpace();\n writePunctuation(\"{\");\n pushNameGenerationScope(node);\n forEach(node.members, generateMemberNames);\n emitList(node, node.members, 129 /* InterfaceMembers */);\n popNameGenerationScope(node);\n writePunctuation(\"}\");\n }\n function emitTypeAliasDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n writeKeyword(\"type\");\n writeSpace();\n emit(node.name);\n emitTypeParameters(node, node.typeParameters);\n writeSpace();\n writePunctuation(\"=\");\n writeSpace();\n emit(node.type);\n writeTrailingSemicolon();\n }\n function emitEnumDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n writeKeyword(\"enum\");\n writeSpace();\n emit(node.name);\n writeSpace();\n writePunctuation(\"{\");\n emitList(node, node.members, 145 /* EnumMembers */);\n writePunctuation(\"}\");\n }\n function emitModuleDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n if (~node.flags & 2048 /* GlobalAugmentation */) {\n writeKeyword(node.flags & 32 /* Namespace */ ? \"namespace\" : \"module\");\n writeSpace();\n }\n emit(node.name);\n let body = node.body;\n if (!body) return writeTrailingSemicolon();\n while (body && isModuleDeclaration(body)) {\n writePunctuation(\".\");\n emit(body.name);\n body = body.body;\n }\n writeSpace();\n emit(body);\n }\n function emitModuleBlock(node) {\n pushNameGenerationScope(node);\n forEach(node.statements, generateNames);\n emitBlockStatements(\n node,\n /*forceSingleLine*/\n isEmptyBlock(node)\n );\n popNameGenerationScope(node);\n }\n function emitCaseBlock(node) {\n emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node);\n emitList(node, node.clauses, 129 /* CaseBlockClauses */);\n emitTokenWithComment(\n 20 /* CloseBraceToken */,\n node.clauses.end,\n writePunctuation,\n node,\n /*indentLeading*/\n true\n );\n }\n function emitImportEqualsDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node);\n writeSpace();\n if (node.isTypeOnly) {\n emitTokenWithComment(156 /* TypeKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n }\n emit(node.name);\n writeSpace();\n emitTokenWithComment(64 /* EqualsToken */, node.name.end, writePunctuation, node);\n writeSpace();\n emitModuleReference(node.moduleReference);\n writeTrailingSemicolon();\n }\n function emitModuleReference(node) {\n if (node.kind === 80 /* Identifier */) {\n emitExpression(node);\n } else {\n emit(node);\n }\n }\n function emitImportDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node);\n writeSpace();\n if (node.importClause) {\n emit(node.importClause);\n writeSpace();\n emitTokenWithComment(161 /* FromKeyword */, node.importClause.end, writeKeyword, node);\n writeSpace();\n }\n emitExpression(node.moduleSpecifier);\n if (node.attributes) {\n emitWithLeadingSpace(node.attributes);\n }\n writeTrailingSemicolon();\n }\n function emitImportClause(node) {\n if (node.phaseModifier !== void 0) {\n emitTokenWithComment(node.phaseModifier, node.pos, writeKeyword, node);\n writeSpace();\n }\n emit(node.name);\n if (node.name && node.namedBindings) {\n emitTokenWithComment(28 /* CommaToken */, node.name.end, writePunctuation, node);\n writeSpace();\n }\n emit(node.namedBindings);\n }\n function emitNamespaceImport(node) {\n const asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node);\n writeSpace();\n emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node);\n writeSpace();\n emit(node.name);\n }\n function emitNamedImports(node) {\n emitNamedImportsOrExports(node);\n }\n function emitImportSpecifier(node) {\n emitImportOrExportSpecifier(node);\n }\n function emitExportAssignment(node) {\n const nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n if (node.isExportEquals) {\n emitTokenWithComment(64 /* EqualsToken */, nextPos, writeOperator, node);\n } else {\n emitTokenWithComment(90 /* DefaultKeyword */, nextPos, writeKeyword, node);\n }\n writeSpace();\n emitExpression(\n node.expression,\n node.isExportEquals ? parenthesizer.getParenthesizeRightSideOfBinaryForOperator(64 /* EqualsToken */) : parenthesizer.parenthesizeExpressionOfExportDefault\n );\n writeTrailingSemicolon();\n }\n function emitExportDeclaration(node) {\n emitDecoratorsAndModifiers(\n node,\n node.modifiers,\n /*allowDecorators*/\n false\n );\n let nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n if (node.isTypeOnly) {\n nextPos = emitTokenWithComment(156 /* TypeKeyword */, nextPos, writeKeyword, node);\n writeSpace();\n }\n if (node.exportClause) {\n emit(node.exportClause);\n } else {\n nextPos = emitTokenWithComment(42 /* AsteriskToken */, nextPos, writePunctuation, node);\n }\n if (node.moduleSpecifier) {\n writeSpace();\n const fromPos = node.exportClause ? node.exportClause.end : nextPos;\n emitTokenWithComment(161 /* FromKeyword */, fromPos, writeKeyword, node);\n writeSpace();\n emitExpression(node.moduleSpecifier);\n }\n if (node.attributes) {\n emitWithLeadingSpace(node.attributes);\n }\n writeTrailingSemicolon();\n }\n function emitImportTypeNodeAttributes(node) {\n writePunctuation(\"{\");\n writeSpace();\n writeKeyword(node.token === 132 /* AssertKeyword */ ? \"assert\" : \"with\");\n writePunctuation(\":\");\n writeSpace();\n const elements = node.elements;\n emitList(node, elements, 526226 /* ImportAttributes */);\n writeSpace();\n writePunctuation(\"}\");\n }\n function emitImportAttributes(node) {\n emitTokenWithComment(node.token, node.pos, writeKeyword, node);\n writeSpace();\n const elements = node.elements;\n emitList(node, elements, 526226 /* ImportAttributes */);\n }\n function emitImportAttribute(node) {\n emit(node.name);\n writePunctuation(\":\");\n writeSpace();\n const value = node.value;\n if ((getEmitFlags(value) & 1024 /* NoLeadingComments */) === 0) {\n const commentRange = getCommentRange(value);\n emitTrailingCommentsOfPosition(commentRange.pos);\n }\n emit(value);\n }\n function emitNamespaceExportDeclaration(node) {\n let nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n nextPos = emitTokenWithComment(130 /* AsKeyword */, nextPos, writeKeyword, node);\n writeSpace();\n nextPos = emitTokenWithComment(145 /* NamespaceKeyword */, nextPos, writeKeyword, node);\n writeSpace();\n emit(node.name);\n writeTrailingSemicolon();\n }\n function emitNamespaceExport(node) {\n const asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node);\n writeSpace();\n emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node);\n writeSpace();\n emit(node.name);\n }\n function emitNamedExports(node) {\n emitNamedImportsOrExports(node);\n }\n function emitExportSpecifier(node) {\n emitImportOrExportSpecifier(node);\n }\n function emitNamedImportsOrExports(node) {\n writePunctuation(\"{\");\n emitList(node, node.elements, 525136 /* NamedImportsOrExportsElements */);\n writePunctuation(\"}\");\n }\n function emitImportOrExportSpecifier(node) {\n if (node.isTypeOnly) {\n writeKeyword(\"type\");\n writeSpace();\n }\n if (node.propertyName) {\n emit(node.propertyName);\n writeSpace();\n emitTokenWithComment(130 /* AsKeyword */, node.propertyName.end, writeKeyword, node);\n writeSpace();\n }\n emit(node.name);\n }\n function emitExternalModuleReference(node) {\n writeKeyword(\"require\");\n writePunctuation(\"(\");\n emitExpression(node.expression);\n writePunctuation(\")\");\n }\n function emitJsxElement(node) {\n emit(node.openingElement);\n emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */);\n emit(node.closingElement);\n }\n function emitJsxSelfClosingElement(node) {\n writePunctuation(\"<\");\n emitJsxTagName(node.tagName);\n emitTypeArguments(node, node.typeArguments);\n writeSpace();\n emit(node.attributes);\n writePunctuation(\"/>\");\n }\n function emitJsxFragment(node) {\n emit(node.openingFragment);\n emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */);\n emit(node.closingFragment);\n }\n function emitJsxOpeningElementOrFragment(node) {\n writePunctuation(\"<\");\n if (isJsxOpeningElement(node)) {\n const indented = writeLineSeparatorsAndIndentBefore(node.tagName, node);\n emitJsxTagName(node.tagName);\n emitTypeArguments(node, node.typeArguments);\n if (node.attributes.properties && node.attributes.properties.length > 0) {\n writeSpace();\n }\n emit(node.attributes);\n writeLineSeparatorsAfter(node.attributes, node);\n decreaseIndentIf(indented);\n }\n writePunctuation(\">\");\n }\n function emitJsxText(node) {\n writer.writeLiteral(node.text);\n }\n function emitJsxClosingElementOrFragment(node) {\n writePunctuation(\"\");\n }\n function emitJsxAttributes(node) {\n emitList(node, node.properties, 262656 /* JsxElementAttributes */);\n }\n function emitJsxAttribute(node) {\n emit(node.name);\n emitNodeWithPrefix(\"=\", writePunctuation, node.initializer, emitJsxAttributeValue);\n }\n function emitJsxSpreadAttribute(node) {\n writePunctuation(\"{...\");\n emitExpression(node.expression);\n writePunctuation(\"}\");\n }\n function hasTrailingCommentsAtPosition(pos) {\n let result = false;\n forEachTrailingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || \"\", pos + 1, () => result = true);\n return result;\n }\n function hasLeadingCommentsAtPosition(pos) {\n let result = false;\n forEachLeadingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || \"\", pos + 1, () => result = true);\n return result;\n }\n function hasCommentsAtPosition(pos) {\n return hasTrailingCommentsAtPosition(pos) || hasLeadingCommentsAtPosition(pos);\n }\n function emitJsxExpression(node) {\n var _a;\n if (node.expression || !commentsDisabled && !nodeIsSynthesized(node) && hasCommentsAtPosition(node.pos)) {\n const isMultiline = currentSourceFile && !nodeIsSynthesized(node) && getLineAndCharacterOfPosition(currentSourceFile, node.pos).line !== getLineAndCharacterOfPosition(currentSourceFile, node.end).line;\n if (isMultiline) {\n writer.increaseIndent();\n }\n const end = emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node);\n emit(node.dotDotDotToken);\n emitExpression(node.expression);\n emitTokenWithComment(20 /* CloseBraceToken */, ((_a = node.expression) == null ? void 0 : _a.end) || end, writePunctuation, node);\n if (isMultiline) {\n writer.decreaseIndent();\n }\n }\n }\n function emitJsxNamespacedName(node) {\n emitIdentifierName(node.namespace);\n writePunctuation(\":\");\n emitIdentifierName(node.name);\n }\n function emitJsxTagName(node) {\n if (node.kind === 80 /* Identifier */) {\n emitExpression(node);\n } else {\n emit(node);\n }\n }\n function emitCaseClause(node) {\n emitTokenWithComment(84 /* CaseKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n emitCaseOrDefaultClauseRest(node, node.statements, node.expression.end);\n }\n function emitDefaultClause(node) {\n const pos = emitTokenWithComment(90 /* DefaultKeyword */, node.pos, writeKeyword, node);\n emitCaseOrDefaultClauseRest(node, node.statements, pos);\n }\n function emitCaseOrDefaultClauseRest(parentNode, statements, colonPos) {\n const emitAsSingleStatement = statements.length === 1 && // treat synthesized nodes as located on the same line for emit purposes\n (!currentSourceFile || nodeIsSynthesized(parentNode) || nodeIsSynthesized(statements[0]) || rangeStartPositionsAreOnSameLine(parentNode, statements[0], currentSourceFile));\n let format = 163969 /* CaseOrDefaultClauseStatements */;\n if (emitAsSingleStatement) {\n writeToken(59 /* ColonToken */, colonPos, writePunctuation, parentNode);\n writeSpace();\n format &= ~(1 /* MultiLine */ | 128 /* Indented */);\n } else {\n emitTokenWithComment(59 /* ColonToken */, colonPos, writePunctuation, parentNode);\n }\n emitList(parentNode, statements, format);\n }\n function emitHeritageClause(node) {\n writeSpace();\n writeTokenText(node.token, writeKeyword);\n writeSpace();\n emitList(node, node.types, 528 /* HeritageClauseTypes */);\n }\n function emitCatchClause(node) {\n const openParenPos = emitTokenWithComment(85 /* CatchKeyword */, node.pos, writeKeyword, node);\n writeSpace();\n if (node.variableDeclaration) {\n emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n emit(node.variableDeclaration);\n emitTokenWithComment(22 /* CloseParenToken */, node.variableDeclaration.end, writePunctuation, node);\n writeSpace();\n }\n emit(node.block);\n }\n function emitPropertyAssignment(node) {\n emit(node.name);\n writePunctuation(\":\");\n writeSpace();\n const initializer = node.initializer;\n if ((getEmitFlags(initializer) & 1024 /* NoLeadingComments */) === 0) {\n const commentRange = getCommentRange(initializer);\n emitTrailingCommentsOfPosition(commentRange.pos);\n }\n emitExpression(initializer, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitShorthandPropertyAssignment(node) {\n emit(node.name);\n if (node.objectAssignmentInitializer) {\n writeSpace();\n writePunctuation(\"=\");\n writeSpace();\n emitExpression(node.objectAssignmentInitializer, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n }\n function emitSpreadAssignment(node) {\n if (node.expression) {\n emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node);\n emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n }\n function emitEnumMember(node) {\n emit(node.name);\n emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n }\n function emitJSDoc(node) {\n write(\"/**\");\n if (node.comment) {\n const text = getTextOfJSDocComment(node.comment);\n if (text) {\n const lines = text.split(/\\r\\n?|\\n/);\n for (const line of lines) {\n writeLine();\n writeSpace();\n writePunctuation(\"*\");\n writeSpace();\n write(line);\n }\n }\n }\n if (node.tags) {\n if (node.tags.length === 1 && node.tags[0].kind === 345 /* JSDocTypeTag */ && !node.comment) {\n writeSpace();\n emit(node.tags[0]);\n } else {\n emitList(node, node.tags, 33 /* JSDocComment */);\n }\n }\n writeSpace();\n write(\"*/\");\n }\n function emitJSDocSimpleTypedTag(tag) {\n emitJSDocTagName(tag.tagName);\n emitJSDocTypeExpression(tag.typeExpression);\n emitJSDocComment(tag.comment);\n }\n function emitJSDocSeeTag(tag) {\n emitJSDocTagName(tag.tagName);\n emit(tag.name);\n emitJSDocComment(tag.comment);\n }\n function emitJSDocImportTag(tag) {\n emitJSDocTagName(tag.tagName);\n writeSpace();\n if (tag.importClause) {\n emit(tag.importClause);\n writeSpace();\n emitTokenWithComment(161 /* FromKeyword */, tag.importClause.end, writeKeyword, tag);\n writeSpace();\n }\n emitExpression(tag.moduleSpecifier);\n if (tag.attributes) {\n emitWithLeadingSpace(tag.attributes);\n }\n emitJSDocComment(tag.comment);\n }\n function emitJSDocNameReference(node) {\n writeSpace();\n writePunctuation(\"{\");\n emit(node.name);\n writePunctuation(\"}\");\n }\n function emitJSDocHeritageTag(tag) {\n emitJSDocTagName(tag.tagName);\n writeSpace();\n writePunctuation(\"{\");\n emit(tag.class);\n writePunctuation(\"}\");\n emitJSDocComment(tag.comment);\n }\n function emitJSDocTemplateTag(tag) {\n emitJSDocTagName(tag.tagName);\n emitJSDocTypeExpression(tag.constraint);\n writeSpace();\n emitList(tag, tag.typeParameters, 528 /* CommaListElements */);\n emitJSDocComment(tag.comment);\n }\n function emitJSDocTypedefTag(tag) {\n emitJSDocTagName(tag.tagName);\n if (tag.typeExpression) {\n if (tag.typeExpression.kind === 310 /* JSDocTypeExpression */) {\n emitJSDocTypeExpression(tag.typeExpression);\n } else {\n writeSpace();\n writePunctuation(\"{\");\n write(\"Object\");\n if (tag.typeExpression.isArrayType) {\n writePunctuation(\"[\");\n writePunctuation(\"]\");\n }\n writePunctuation(\"}\");\n }\n }\n if (tag.fullName) {\n writeSpace();\n emit(tag.fullName);\n }\n emitJSDocComment(tag.comment);\n if (tag.typeExpression && tag.typeExpression.kind === 323 /* JSDocTypeLiteral */) {\n emitJSDocTypeLiteral(tag.typeExpression);\n }\n }\n function emitJSDocCallbackTag(tag) {\n emitJSDocTagName(tag.tagName);\n if (tag.name) {\n writeSpace();\n emit(tag.name);\n }\n emitJSDocComment(tag.comment);\n emitJSDocSignature(tag.typeExpression);\n }\n function emitJSDocOverloadTag(tag) {\n emitJSDocComment(tag.comment);\n emitJSDocSignature(tag.typeExpression);\n }\n function emitJSDocSimpleTag(tag) {\n emitJSDocTagName(tag.tagName);\n emitJSDocComment(tag.comment);\n }\n function emitJSDocTypeLiteral(lit) {\n emitList(lit, factory.createNodeArray(lit.jsDocPropertyTags), 33 /* JSDocComment */);\n }\n function emitJSDocSignature(sig) {\n if (sig.typeParameters) {\n emitList(sig, factory.createNodeArray(sig.typeParameters), 33 /* JSDocComment */);\n }\n if (sig.parameters) {\n emitList(sig, factory.createNodeArray(sig.parameters), 33 /* JSDocComment */);\n }\n if (sig.type) {\n writeLine();\n writeSpace();\n writePunctuation(\"*\");\n writeSpace();\n emit(sig.type);\n }\n }\n function emitJSDocPropertyLikeTag(param) {\n emitJSDocTagName(param.tagName);\n emitJSDocTypeExpression(param.typeExpression);\n writeSpace();\n if (param.isBracketed) {\n writePunctuation(\"[\");\n }\n emit(param.name);\n if (param.isBracketed) {\n writePunctuation(\"]\");\n }\n emitJSDocComment(param.comment);\n }\n function emitJSDocTagName(tagName) {\n writePunctuation(\"@\");\n emit(tagName);\n }\n function emitJSDocComment(comment) {\n const text = getTextOfJSDocComment(comment);\n if (text) {\n writeSpace();\n write(text);\n }\n }\n function emitJSDocTypeExpression(typeExpression) {\n if (typeExpression) {\n writeSpace();\n writePunctuation(\"{\");\n emit(typeExpression.type);\n writePunctuation(\"}\");\n }\n }\n function emitSourceFile(node) {\n writeLine();\n const statements = node.statements;\n const shouldEmitDetachedComment = statements.length === 0 || !isPrologueDirective(statements[0]) || nodeIsSynthesized(statements[0]);\n if (shouldEmitDetachedComment) {\n emitBodyWithDetachedComments(node, statements, emitSourceFileWorker);\n return;\n }\n emitSourceFileWorker(node);\n }\n function emitSyntheticTripleSlashReferencesIfNeeded(node) {\n emitTripleSlashDirectives(!!node.hasNoDefaultLib, node.syntheticFileReferences || [], node.syntheticTypeReferences || [], node.syntheticLibReferences || []);\n }\n function emitTripleSlashDirectivesIfNeeded(node) {\n if (node.isDeclarationFile) emitTripleSlashDirectives(node.hasNoDefaultLib, node.referencedFiles, node.typeReferenceDirectives, node.libReferenceDirectives);\n }\n function emitTripleSlashDirectives(hasNoDefaultLib, files, types, libs2) {\n if (hasNoDefaultLib) {\n writeComment(`/// `);\n writeLine();\n }\n if (currentSourceFile && currentSourceFile.moduleName) {\n writeComment(`/// `);\n writeLine();\n }\n if (currentSourceFile && currentSourceFile.amdDependencies) {\n for (const dep of currentSourceFile.amdDependencies) {\n if (dep.name) {\n writeComment(`/// `);\n } else {\n writeComment(`/// `);\n }\n writeLine();\n }\n }\n function writeDirectives(kind, directives) {\n for (const directive of directives) {\n const resolutionMode = directive.resolutionMode ? `resolution-mode=\"${directive.resolutionMode === 99 /* ESNext */ ? \"import\" : \"require\"}\" ` : \"\";\n const preserve = directive.preserve ? `preserve=\"true\" ` : \"\";\n writeComment(`/// `);\n writeLine();\n }\n }\n writeDirectives(\"path\", files);\n writeDirectives(\"types\", types);\n writeDirectives(\"lib\", libs2);\n }\n function emitSourceFileWorker(node) {\n const statements = node.statements;\n pushNameGenerationScope(node);\n forEach(node.statements, generateNames);\n emitHelpers(node);\n const index = findIndex(statements, (statement) => !isPrologueDirective(statement));\n emitTripleSlashDirectivesIfNeeded(node);\n emitList(\n node,\n statements,\n 1 /* MultiLine */,\n /*parenthesizerRule*/\n void 0,\n index === -1 ? statements.length : index\n );\n popNameGenerationScope(node);\n }\n function emitPartiallyEmittedExpression(node) {\n const emitFlags = getEmitFlags(node);\n if (!(emitFlags & 1024 /* NoLeadingComments */) && node.pos !== node.expression.pos) {\n emitTrailingCommentsOfPosition(node.expression.pos);\n }\n emitExpression(node.expression);\n if (!(emitFlags & 2048 /* NoTrailingComments */) && node.end !== node.expression.end) {\n emitLeadingCommentsOfPosition(node.expression.end);\n }\n }\n function emitCommaList(node) {\n emitExpressionList(\n node,\n node.elements,\n 528 /* CommaListElements */,\n /*parenthesizerRule*/\n void 0\n );\n }\n function emitPrologueDirectives(statements, sourceFile, seenPrologueDirectives) {\n let needsToSetSourceFile = !!sourceFile;\n for (let i = 0; i < statements.length; i++) {\n const statement = statements[i];\n if (isPrologueDirective(statement)) {\n const shouldEmitPrologueDirective = seenPrologueDirectives ? !seenPrologueDirectives.has(statement.expression.text) : true;\n if (shouldEmitPrologueDirective) {\n if (needsToSetSourceFile) {\n needsToSetSourceFile = false;\n setSourceFile(sourceFile);\n }\n writeLine();\n emit(statement);\n if (seenPrologueDirectives) {\n seenPrologueDirectives.add(statement.expression.text);\n }\n }\n } else {\n return i;\n }\n }\n return statements.length;\n }\n function emitPrologueDirectivesIfNeeded(sourceFileOrBundle) {\n if (isSourceFile(sourceFileOrBundle)) {\n emitPrologueDirectives(sourceFileOrBundle.statements, sourceFileOrBundle);\n } else {\n const seenPrologueDirectives = /* @__PURE__ */ new Set();\n for (const sourceFile of sourceFileOrBundle.sourceFiles) {\n emitPrologueDirectives(sourceFile.statements, sourceFile, seenPrologueDirectives);\n }\n setSourceFile(void 0);\n }\n }\n function emitShebangIfNeeded(sourceFileOrBundle) {\n if (isSourceFile(sourceFileOrBundle)) {\n const shebang = getShebang(sourceFileOrBundle.text);\n if (shebang) {\n writeComment(shebang);\n writeLine();\n return true;\n }\n } else {\n for (const sourceFile of sourceFileOrBundle.sourceFiles) {\n if (emitShebangIfNeeded(sourceFile)) {\n return true;\n }\n }\n }\n }\n function emitNodeWithWriter(node, writer2) {\n if (!node) return;\n const savedWrite = write;\n write = writer2;\n emit(node);\n write = savedWrite;\n }\n function emitDecoratorsAndModifiers(node, modifiers, allowDecorators) {\n if (modifiers == null ? void 0 : modifiers.length) {\n if (every(modifiers, isModifier)) {\n return emitModifierList(node, modifiers);\n }\n if (every(modifiers, isDecorator)) {\n if (allowDecorators) {\n return emitDecoratorList(node, modifiers);\n }\n return node.pos;\n }\n onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(modifiers);\n let lastMode;\n let mode;\n let start = 0;\n let pos = 0;\n let lastModifier;\n while (start < modifiers.length) {\n while (pos < modifiers.length) {\n lastModifier = modifiers[pos];\n mode = isDecorator(lastModifier) ? \"decorators\" : \"modifiers\";\n if (lastMode === void 0) {\n lastMode = mode;\n } else if (mode !== lastMode) {\n break;\n }\n pos++;\n }\n const textRange = { pos: -1, end: -1 };\n if (start === 0) textRange.pos = modifiers.pos;\n if (pos === modifiers.length - 1) textRange.end = modifiers.end;\n if (lastMode === \"modifiers\" || allowDecorators) {\n emitNodeListItems(\n emit,\n node,\n modifiers,\n lastMode === \"modifiers\" ? 2359808 /* Modifiers */ : 2146305 /* Decorators */,\n /*parenthesizerRule*/\n void 0,\n start,\n pos - start,\n /*hasTrailingComma*/\n false,\n textRange\n );\n }\n start = pos;\n lastMode = mode;\n pos++;\n }\n onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(modifiers);\n if (lastModifier && !positionIsSynthesized(lastModifier.end)) {\n return lastModifier.end;\n }\n }\n return node.pos;\n }\n function emitModifierList(node, modifiers) {\n emitList(node, modifiers, 2359808 /* Modifiers */);\n const lastModifier = lastOrUndefined(modifiers);\n return lastModifier && !positionIsSynthesized(lastModifier.end) ? lastModifier.end : node.pos;\n }\n function emitTypeAnnotation(node) {\n if (node) {\n writePunctuation(\":\");\n writeSpace();\n emit(node);\n }\n }\n function emitInitializer(node, equalCommentStartPos, container, parenthesizerRule) {\n if (node) {\n writeSpace();\n emitTokenWithComment(64 /* EqualsToken */, equalCommentStartPos, writeOperator, container);\n writeSpace();\n emitExpression(node, parenthesizerRule);\n }\n }\n function emitNodeWithPrefix(prefix, prefixWriter, node, emit2) {\n if (node) {\n prefixWriter(prefix);\n emit2(node);\n }\n }\n function emitWithLeadingSpace(node) {\n if (node) {\n writeSpace();\n emit(node);\n }\n }\n function emitExpressionWithLeadingSpace(node, parenthesizerRule) {\n if (node) {\n writeSpace();\n emitExpression(node, parenthesizerRule);\n }\n }\n function emitWithTrailingSpace(node) {\n if (node) {\n emit(node);\n writeSpace();\n }\n }\n function emitEmbeddedStatement(parent2, node) {\n if (isBlock(node) || getEmitFlags(parent2) & 1 /* SingleLine */ || preserveSourceNewlines && !getLeadingLineTerminatorCount(parent2, node, 0 /* None */)) {\n writeSpace();\n emit(node);\n } else {\n writeLine();\n increaseIndent();\n if (isEmptyStatement(node)) {\n pipelineEmit(5 /* EmbeddedStatement */, node);\n } else {\n emit(node);\n }\n decreaseIndent();\n }\n }\n function emitDecoratorList(parentNode, decorators) {\n emitList(parentNode, decorators, 2146305 /* Decorators */);\n const lastDecorator = lastOrUndefined(decorators);\n return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? lastDecorator.end : parentNode.pos;\n }\n function emitTypeArguments(parentNode, typeArguments) {\n emitList(parentNode, typeArguments, 53776 /* TypeArguments */, typeArgumentParenthesizerRuleSelector);\n }\n function emitTypeParameters(parentNode, typeParameters) {\n if (isFunctionLike(parentNode) && parentNode.typeArguments) {\n return emitTypeArguments(parentNode, parentNode.typeArguments);\n }\n emitList(parentNode, typeParameters, 53776 /* TypeParameters */ | (isArrowFunction(parentNode) ? 64 /* AllowTrailingComma */ : 0 /* None */));\n }\n function emitParameters(parentNode, parameters) {\n emitList(parentNode, parameters, 2576 /* Parameters */);\n }\n function canEmitSimpleArrowHead(parentNode, parameters) {\n const parameter = singleOrUndefined(parameters);\n return parameter && parameter.pos === parentNode.pos && isArrowFunction(parentNode) && !parentNode.type && !some(parentNode.modifiers) && !some(parentNode.typeParameters) && !some(parameter.modifiers) && !parameter.dotDotDotToken && !parameter.questionToken && !parameter.type && !parameter.initializer && isIdentifier(parameter.name);\n }\n function emitParametersForArrow(parentNode, parameters) {\n if (canEmitSimpleArrowHead(parentNode, parameters)) {\n emitList(parentNode, parameters, 2576 /* Parameters */ & ~2048 /* Parenthesis */);\n } else {\n emitParameters(parentNode, parameters);\n }\n }\n function emitParametersForIndexSignature(parentNode, parameters) {\n emitList(parentNode, parameters, 8848 /* IndexSignatureParameters */);\n }\n function writeDelimiter(format) {\n switch (format & 60 /* DelimitersMask */) {\n case 0 /* None */:\n break;\n case 16 /* CommaDelimited */:\n writePunctuation(\",\");\n break;\n case 4 /* BarDelimited */:\n writeSpace();\n writePunctuation(\"|\");\n break;\n case 32 /* AsteriskDelimited */:\n writeSpace();\n writePunctuation(\"*\");\n writeSpace();\n break;\n case 8 /* AmpersandDelimited */:\n writeSpace();\n writePunctuation(\"&\");\n break;\n }\n }\n function emitList(parentNode, children, format, parenthesizerRule, start, count) {\n emitNodeList(\n emit,\n parentNode,\n children,\n format | (parentNode && getEmitFlags(parentNode) & 2 /* MultiLine */ ? 65536 /* PreferNewLine */ : 0),\n parenthesizerRule,\n start,\n count\n );\n }\n function emitExpressionList(parentNode, children, format, parenthesizerRule, start, count) {\n emitNodeList(emitExpression, parentNode, children, format, parenthesizerRule, start, count);\n }\n function emitNodeList(emit2, parentNode, children, format, parenthesizerRule, start = 0, count = children ? children.length - start : 0) {\n const isUndefined = children === void 0;\n if (isUndefined && format & 16384 /* OptionalIfUndefined */) {\n return;\n }\n const isEmpty = children === void 0 || start >= children.length || count === 0;\n if (isEmpty && format & 32768 /* OptionalIfEmpty */) {\n onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children);\n onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children);\n return;\n }\n if (format & 15360 /* BracketsMask */) {\n writePunctuation(getOpeningBracket(format));\n if (isEmpty && children) {\n emitTrailingCommentsOfPosition(\n children.pos,\n /*prefixSpace*/\n true\n );\n }\n }\n onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children);\n if (isEmpty) {\n if (format & 1 /* MultiLine */ && !(preserveSourceNewlines && (!parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile)))) {\n writeLine();\n } else if (format & 256 /* SpaceBetweenBraces */ && !(format & 524288 /* NoSpaceIfEmpty */)) {\n writeSpace();\n }\n } else {\n emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start, count, children.hasTrailingComma, children);\n }\n onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children);\n if (format & 15360 /* BracketsMask */) {\n if (isEmpty && children) {\n emitLeadingCommentsOfPosition(children.end);\n }\n writePunctuation(getClosingBracket(format));\n }\n }\n function emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start, count, hasTrailingComma, childrenTextRange) {\n const mayEmitInterveningComments = (format & 262144 /* NoInterveningComments */) === 0;\n let shouldEmitInterveningComments = mayEmitInterveningComments;\n const leadingLineTerminatorCount = getLeadingLineTerminatorCount(parentNode, children[start], format);\n if (leadingLineTerminatorCount) {\n writeLine(leadingLineTerminatorCount);\n shouldEmitInterveningComments = false;\n } else if (format & 256 /* SpaceBetweenBraces */) {\n writeSpace();\n }\n if (format & 128 /* Indented */) {\n increaseIndent();\n }\n const emitListItem = getEmitListItem(emit2, parenthesizerRule);\n let previousSibling;\n let shouldDecreaseIndentAfterEmit = false;\n for (let i = 0; i < count; i++) {\n const child = children[start + i];\n if (format & 32 /* AsteriskDelimited */) {\n writeLine();\n writeDelimiter(format);\n } else if (previousSibling) {\n if (format & 60 /* DelimitersMask */ && previousSibling.end !== (parentNode ? parentNode.end : -1)) {\n const previousSiblingEmitFlags = getEmitFlags(previousSibling);\n if (!(previousSiblingEmitFlags & 2048 /* NoTrailingComments */)) {\n emitLeadingCommentsOfPosition(previousSibling.end);\n }\n }\n writeDelimiter(format);\n const separatingLineTerminatorCount = getSeparatingLineTerminatorCount(previousSibling, child, format);\n if (separatingLineTerminatorCount > 0) {\n if ((format & (3 /* LinesMask */ | 128 /* Indented */)) === 0 /* SingleLine */) {\n increaseIndent();\n shouldDecreaseIndentAfterEmit = true;\n }\n if (shouldEmitInterveningComments && format & 60 /* DelimitersMask */ && !positionIsSynthesized(child.pos)) {\n const commentRange = getCommentRange(child);\n emitTrailingCommentsOfPosition(\n commentRange.pos,\n /*prefixSpace*/\n !!(format & 512 /* SpaceBetweenSiblings */),\n /*forceNoNewline*/\n true\n );\n }\n writeLine(separatingLineTerminatorCount);\n shouldEmitInterveningComments = false;\n } else if (previousSibling && format & 512 /* SpaceBetweenSiblings */) {\n writeSpace();\n }\n }\n if (shouldEmitInterveningComments) {\n const commentRange = getCommentRange(child);\n emitTrailingCommentsOfPosition(commentRange.pos);\n } else {\n shouldEmitInterveningComments = mayEmitInterveningComments;\n }\n nextListElementPos = child.pos;\n emitListItem(child, emit2, parenthesizerRule, i);\n if (shouldDecreaseIndentAfterEmit) {\n decreaseIndent();\n shouldDecreaseIndentAfterEmit = false;\n }\n previousSibling = child;\n }\n const emitFlags = previousSibling ? getEmitFlags(previousSibling) : 0;\n const skipTrailingComments = commentsDisabled || !!(emitFlags & 2048 /* NoTrailingComments */);\n const emitTrailingComma = hasTrailingComma && format & 64 /* AllowTrailingComma */ && format & 16 /* CommaDelimited */;\n if (emitTrailingComma) {\n if (previousSibling && !skipTrailingComments) {\n emitTokenWithComment(28 /* CommaToken */, previousSibling.end, writePunctuation, previousSibling);\n } else {\n writePunctuation(\",\");\n }\n }\n if (previousSibling && (parentNode ? parentNode.end : -1) !== previousSibling.end && format & 60 /* DelimitersMask */ && !skipTrailingComments) {\n emitLeadingCommentsOfPosition(emitTrailingComma && (childrenTextRange == null ? void 0 : childrenTextRange.end) ? childrenTextRange.end : previousSibling.end);\n }\n if (format & 128 /* Indented */) {\n decreaseIndent();\n }\n const closingLineTerminatorCount = getClosingLineTerminatorCount(parentNode, children[start + count - 1], format, childrenTextRange);\n if (closingLineTerminatorCount) {\n writeLine(closingLineTerminatorCount);\n } else if (format & (2097152 /* SpaceAfterList */ | 256 /* SpaceBetweenBraces */)) {\n writeSpace();\n }\n }\n function writeLiteral(s) {\n writer.writeLiteral(s);\n }\n function writeStringLiteral(s) {\n writer.writeStringLiteral(s);\n }\n function writeBase(s) {\n writer.write(s);\n }\n function writeSymbol(s, sym) {\n writer.writeSymbol(s, sym);\n }\n function writePunctuation(s) {\n writer.writePunctuation(s);\n }\n function writeTrailingSemicolon() {\n writer.writeTrailingSemicolon(\";\");\n }\n function writeKeyword(s) {\n writer.writeKeyword(s);\n }\n function writeOperator(s) {\n writer.writeOperator(s);\n }\n function writeParameter(s) {\n writer.writeParameter(s);\n }\n function writeComment(s) {\n writer.writeComment(s);\n }\n function writeSpace() {\n writer.writeSpace(\" \");\n }\n function writeProperty(s) {\n writer.writeProperty(s);\n }\n function nonEscapingWrite(s) {\n if (writer.nonEscapingWrite) {\n writer.nonEscapingWrite(s);\n } else {\n writer.write(s);\n }\n }\n function writeLine(count = 1) {\n for (let i = 0; i < count; i++) {\n writer.writeLine(i > 0);\n }\n }\n function increaseIndent() {\n writer.increaseIndent();\n }\n function decreaseIndent() {\n writer.decreaseIndent();\n }\n function writeToken(token, pos, writer2, contextNode) {\n return !sourceMapsDisabled ? emitTokenWithSourceMap(contextNode, token, writer2, pos, writeTokenText) : writeTokenText(token, writer2, pos);\n }\n function writeTokenNode(node, writer2) {\n if (onBeforeEmitToken) {\n onBeforeEmitToken(node);\n }\n writer2(tokenToString(node.kind));\n if (onAfterEmitToken) {\n onAfterEmitToken(node);\n }\n }\n function writeTokenText(token, writer2, pos) {\n const tokenString = tokenToString(token);\n writer2(tokenString);\n return pos < 0 ? pos : pos + tokenString.length;\n }\n function writeLineOrSpace(parentNode, prevChildNode, nextChildNode) {\n if (getEmitFlags(parentNode) & 1 /* SingleLine */) {\n writeSpace();\n } else if (preserveSourceNewlines) {\n const lines = getLinesBetweenNodes(parentNode, prevChildNode, nextChildNode);\n if (lines) {\n writeLine(lines);\n } else {\n writeSpace();\n }\n } else {\n writeLine();\n }\n }\n function writeLines(text) {\n const lines = text.split(/\\r\\n?|\\n/);\n const indentation = guessIndentation(lines);\n for (const lineText of lines) {\n const line = indentation ? lineText.slice(indentation) : lineText;\n if (line.length) {\n writeLine();\n write(line);\n }\n }\n }\n function writeLinesAndIndent(lineCount, writeSpaceIfNotIndenting) {\n if (lineCount) {\n increaseIndent();\n writeLine(lineCount);\n } else if (writeSpaceIfNotIndenting) {\n writeSpace();\n }\n }\n function decreaseIndentIf(value1, value2) {\n if (value1) {\n decreaseIndent();\n }\n if (value2) {\n decreaseIndent();\n }\n }\n function getLeadingLineTerminatorCount(parentNode, firstChild, format) {\n if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n if (format & 65536 /* PreferNewLine */) {\n return 1;\n }\n if (firstChild === void 0) {\n return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1;\n }\n if (firstChild.pos === nextListElementPos) {\n return 0;\n }\n if (firstChild.kind === 12 /* JsxText */) {\n return 0;\n }\n if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(firstChild) && (!firstChild.parent || getOriginalNode(firstChild.parent) === getOriginalNode(parentNode))) {\n if (preserveSourceNewlines) {\n return getEffectiveLines(\n (includeComments) => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(\n firstChild.pos,\n parentNode.pos,\n currentSourceFile,\n includeComments\n )\n );\n }\n return rangeStartPositionsAreOnSameLine(parentNode, firstChild, currentSourceFile) ? 0 : 1;\n }\n if (synthesizedNodeStartsOnNewLine(firstChild, format)) {\n return 1;\n }\n }\n return format & 1 /* MultiLine */ ? 1 : 0;\n }\n function getSeparatingLineTerminatorCount(previousNode, nextNode, format) {\n if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n if (previousNode === void 0 || nextNode === void 0) {\n return 0;\n }\n if (nextNode.kind === 12 /* JsxText */) {\n return 0;\n } else if (currentSourceFile && !nodeIsSynthesized(previousNode) && !nodeIsSynthesized(nextNode)) {\n if (preserveSourceNewlines && siblingNodePositionsAreComparable(previousNode, nextNode)) {\n return getEffectiveLines(\n (includeComments) => getLinesBetweenRangeEndAndRangeStart(\n previousNode,\n nextNode,\n currentSourceFile,\n includeComments\n )\n );\n } else if (!preserveSourceNewlines && originalNodesHaveSameParent(previousNode, nextNode)) {\n return rangeEndIsOnSameLineAsRangeStart(previousNode, nextNode, currentSourceFile) ? 0 : 1;\n }\n return format & 65536 /* PreferNewLine */ ? 1 : 0;\n } else if (synthesizedNodeStartsOnNewLine(previousNode, format) || synthesizedNodeStartsOnNewLine(nextNode, format)) {\n return 1;\n }\n } else if (getStartsOnNewLine(nextNode)) {\n return 1;\n }\n return format & 1 /* MultiLine */ ? 1 : 0;\n }\n function getClosingLineTerminatorCount(parentNode, lastChild, format, childrenTextRange) {\n if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n if (format & 65536 /* PreferNewLine */) {\n return 1;\n }\n if (lastChild === void 0) {\n return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1;\n }\n if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(lastChild) && (!lastChild.parent || lastChild.parent === parentNode)) {\n if (preserveSourceNewlines) {\n const end = childrenTextRange && !positionIsSynthesized(childrenTextRange.end) ? childrenTextRange.end : lastChild.end;\n return getEffectiveLines(\n (includeComments) => getLinesBetweenPositionAndNextNonWhitespaceCharacter(\n end,\n parentNode.end,\n currentSourceFile,\n includeComments\n )\n );\n }\n return rangeEndPositionsAreOnSameLine(parentNode, lastChild, currentSourceFile) ? 0 : 1;\n }\n if (synthesizedNodeStartsOnNewLine(lastChild, format)) {\n return 1;\n }\n }\n if (format & 1 /* MultiLine */ && !(format & 131072 /* NoTrailingNewLine */)) {\n return 1;\n }\n return 0;\n }\n function getEffectiveLines(getLineDifference) {\n Debug.assert(!!preserveSourceNewlines);\n const lines = getLineDifference(\n /*includeComments*/\n true\n );\n if (lines === 0) {\n return getLineDifference(\n /*includeComments*/\n false\n );\n }\n return lines;\n }\n function writeLineSeparatorsAndIndentBefore(node, parent2) {\n const leadingNewlines = preserveSourceNewlines && getLeadingLineTerminatorCount(parent2, node, 0 /* None */);\n if (leadingNewlines) {\n writeLinesAndIndent(\n leadingNewlines,\n /*writeSpaceIfNotIndenting*/\n false\n );\n }\n return !!leadingNewlines;\n }\n function writeLineSeparatorsAfter(node, parent2) {\n const trailingNewlines = preserveSourceNewlines && getClosingLineTerminatorCount(\n parent2,\n node,\n 0 /* None */,\n /*childrenTextRange*/\n void 0\n );\n if (trailingNewlines) {\n writeLine(trailingNewlines);\n }\n }\n function synthesizedNodeStartsOnNewLine(node, format) {\n if (nodeIsSynthesized(node)) {\n const startsOnNewLine = getStartsOnNewLine(node);\n if (startsOnNewLine === void 0) {\n return (format & 65536 /* PreferNewLine */) !== 0;\n }\n return startsOnNewLine;\n }\n return (format & 65536 /* PreferNewLine */) !== 0;\n }\n function getLinesBetweenNodes(parent2, node1, node2) {\n if (getEmitFlags(parent2) & 262144 /* NoIndentation */) {\n return 0;\n }\n parent2 = skipSynthesizedParentheses(parent2);\n node1 = skipSynthesizedParentheses(node1);\n node2 = skipSynthesizedParentheses(node2);\n if (getStartsOnNewLine(node2)) {\n return 1;\n }\n if (currentSourceFile && !nodeIsSynthesized(parent2) && !nodeIsSynthesized(node1) && !nodeIsSynthesized(node2)) {\n if (preserveSourceNewlines) {\n return getEffectiveLines(\n (includeComments) => getLinesBetweenRangeEndAndRangeStart(\n node1,\n node2,\n currentSourceFile,\n includeComments\n )\n );\n }\n return rangeEndIsOnSameLineAsRangeStart(node1, node2, currentSourceFile) ? 0 : 1;\n }\n return 0;\n }\n function isEmptyBlock(block) {\n return block.statements.length === 0 && (!currentSourceFile || rangeEndIsOnSameLineAsRangeStart(block, block, currentSourceFile));\n }\n function skipSynthesizedParentheses(node) {\n while (node.kind === 218 /* ParenthesizedExpression */ && nodeIsSynthesized(node)) {\n node = node.expression;\n }\n return node;\n }\n function getTextOfNode2(node, includeTrivia) {\n if (isGeneratedIdentifier(node) || isGeneratedPrivateIdentifier(node)) {\n return generateName(node);\n }\n if (isStringLiteral(node) && node.textSourceNode) {\n return getTextOfNode2(node.textSourceNode, includeTrivia);\n }\n const sourceFile = currentSourceFile;\n const canUseSourceFile = !!sourceFile && !!node.parent && !nodeIsSynthesized(node);\n if (isMemberName(node)) {\n if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) {\n return idText(node);\n }\n } else if (isJsxNamespacedName(node)) {\n if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) {\n return getTextOfJsxNamespacedName(node);\n }\n } else {\n Debug.assertNode(node, isLiteralExpression);\n if (!canUseSourceFile) {\n return node.text;\n }\n }\n return getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia);\n }\n function getLiteralTextOfNode(node, sourceFile = currentSourceFile, neverAsciiEscape, jsxAttributeEscape) {\n if (node.kind === 11 /* StringLiteral */ && node.textSourceNode) {\n const textSourceNode = node.textSourceNode;\n if (isIdentifier(textSourceNode) || isPrivateIdentifier(textSourceNode) || isNumericLiteral(textSourceNode) || isJsxNamespacedName(textSourceNode)) {\n const text = isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode2(textSourceNode);\n return jsxAttributeEscape ? `\"${escapeJsxAttributeString(text)}\"` : neverAsciiEscape || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? `\"${escapeString(text)}\"` : `\"${escapeNonAsciiString(text)}\"`;\n } else {\n return getLiteralTextOfNode(textSourceNode, getSourceFileOfNode(textSourceNode), neverAsciiEscape, jsxAttributeEscape);\n }\n }\n const flags = (neverAsciiEscape ? 1 /* NeverAsciiEscape */ : 0) | (jsxAttributeEscape ? 2 /* JsxAttributeEscape */ : 0) | (printerOptions.terminateUnterminatedLiterals ? 4 /* TerminateUnterminatedLiterals */ : 0) | (printerOptions.target && printerOptions.target >= 8 /* ES2021 */ ? 8 /* AllowNumericSeparator */ : 0);\n return getLiteralText(node, sourceFile, flags);\n }\n function pushNameGenerationScope(node) {\n privateNameTempFlagsStack.push(privateNameTempFlags);\n privateNameTempFlags = 0 /* Auto */;\n reservedPrivateNamesStack.push(reservedPrivateNames);\n if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n return;\n }\n tempFlagsStack.push(tempFlags);\n tempFlags = 0 /* Auto */;\n formattedNameTempFlagsStack.push(formattedNameTempFlags);\n formattedNameTempFlags = void 0;\n reservedNamesStack.push(reservedNames);\n }\n function popNameGenerationScope(node) {\n privateNameTempFlags = privateNameTempFlagsStack.pop();\n reservedPrivateNames = reservedPrivateNamesStack.pop();\n if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n return;\n }\n tempFlags = tempFlagsStack.pop();\n formattedNameTempFlags = formattedNameTempFlagsStack.pop();\n reservedNames = reservedNamesStack.pop();\n }\n function reserveNameInNestedScopes(name) {\n if (!reservedNames || reservedNames === lastOrUndefined(reservedNamesStack)) {\n reservedNames = /* @__PURE__ */ new Set();\n }\n reservedNames.add(name);\n }\n function reservePrivateNameInNestedScopes(name) {\n if (!reservedPrivateNames || reservedPrivateNames === lastOrUndefined(reservedPrivateNamesStack)) {\n reservedPrivateNames = /* @__PURE__ */ new Set();\n }\n reservedPrivateNames.add(name);\n }\n function generateNames(node) {\n if (!node) return;\n switch (node.kind) {\n case 242 /* Block */:\n forEach(node.statements, generateNames);\n break;\n case 257 /* LabeledStatement */:\n case 255 /* WithStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n generateNames(node.statement);\n break;\n case 246 /* IfStatement */:\n generateNames(node.thenStatement);\n generateNames(node.elseStatement);\n break;\n case 249 /* ForStatement */:\n case 251 /* ForOfStatement */:\n case 250 /* ForInStatement */:\n generateNames(node.initializer);\n generateNames(node.statement);\n break;\n case 256 /* SwitchStatement */:\n generateNames(node.caseBlock);\n break;\n case 270 /* CaseBlock */:\n forEach(node.clauses, generateNames);\n break;\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n forEach(node.statements, generateNames);\n break;\n case 259 /* TryStatement */:\n generateNames(node.tryBlock);\n generateNames(node.catchClause);\n generateNames(node.finallyBlock);\n break;\n case 300 /* CatchClause */:\n generateNames(node.variableDeclaration);\n generateNames(node.block);\n break;\n case 244 /* VariableStatement */:\n generateNames(node.declarationList);\n break;\n case 262 /* VariableDeclarationList */:\n forEach(node.declarations, generateNames);\n break;\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 264 /* ClassDeclaration */:\n generateNameIfNeeded(node.name);\n break;\n case 263 /* FunctionDeclaration */:\n generateNameIfNeeded(node.name);\n if (getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n forEach(node.parameters, generateNames);\n generateNames(node.body);\n }\n break;\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n forEach(node.elements, generateNames);\n break;\n case 273 /* ImportDeclaration */:\n generateNames(node.importClause);\n break;\n case 274 /* ImportClause */:\n generateNameIfNeeded(node.name);\n generateNames(node.namedBindings);\n break;\n case 275 /* NamespaceImport */:\n generateNameIfNeeded(node.name);\n break;\n case 281 /* NamespaceExport */:\n generateNameIfNeeded(node.name);\n break;\n case 276 /* NamedImports */:\n forEach(node.elements, generateNames);\n break;\n case 277 /* ImportSpecifier */:\n generateNameIfNeeded(node.propertyName || node.name);\n break;\n }\n }\n function generateMemberNames(node) {\n if (!node) return;\n switch (node.kind) {\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n generateNameIfNeeded(node.name);\n break;\n }\n }\n function generateNameIfNeeded(name) {\n if (name) {\n if (isGeneratedIdentifier(name) || isGeneratedPrivateIdentifier(name)) {\n generateName(name);\n } else if (isBindingPattern(name)) {\n generateNames(name);\n }\n }\n }\n function generateName(name) {\n const autoGenerate = name.emitNode.autoGenerate;\n if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) {\n return generateNameCached(getNodeForGeneratedName(name), isPrivateIdentifier(name), autoGenerate.flags, autoGenerate.prefix, autoGenerate.suffix);\n } else {\n const autoGenerateId = autoGenerate.id;\n return autoGeneratedIdToGeneratedName[autoGenerateId] || (autoGeneratedIdToGeneratedName[autoGenerateId] = makeName(name));\n }\n }\n function generateNameCached(node, privateName, flags, prefix, suffix) {\n const nodeId = getNodeId(node);\n const cache = privateName ? nodeIdToGeneratedPrivateName : nodeIdToGeneratedName;\n return cache[nodeId] || (cache[nodeId] = generateNameForNode(node, privateName, flags ?? 0 /* None */, formatGeneratedNamePart(prefix, generateName), formatGeneratedNamePart(suffix)));\n }\n function isUniqueName(name, privateName) {\n return isFileLevelUniqueNameInCurrentFile(name, privateName) && !isReservedName(name, privateName) && !generatedNames.has(name);\n }\n function isReservedName(name, privateName) {\n let set;\n let stack;\n if (privateName) {\n set = reservedPrivateNames;\n stack = reservedPrivateNamesStack;\n } else {\n set = reservedNames;\n stack = reservedNamesStack;\n }\n if (set == null ? void 0 : set.has(name)) {\n return true;\n }\n for (let i = stack.length - 1; i >= 0; i--) {\n if (set === stack[i]) {\n continue;\n }\n set = stack[i];\n if (set == null ? void 0 : set.has(name)) {\n return true;\n }\n }\n return false;\n }\n function isFileLevelUniqueNameInCurrentFile(name, _isPrivate) {\n return currentSourceFile ? isFileLevelUniqueName(currentSourceFile, name, hasGlobalName) : true;\n }\n function isUniqueLocalName(name, container) {\n for (let node = container; node && isNodeDescendantOf(node, container); node = node.nextContainer) {\n if (canHaveLocals(node) && node.locals) {\n const local = node.locals.get(escapeLeadingUnderscores(name));\n if (local && local.flags & (111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */)) {\n return false;\n }\n }\n }\n return true;\n }\n function getTempFlags(formattedNameKey) {\n switch (formattedNameKey) {\n case \"\":\n return tempFlags;\n case \"#\":\n return privateNameTempFlags;\n default:\n return (formattedNameTempFlags == null ? void 0 : formattedNameTempFlags.get(formattedNameKey)) ?? 0 /* Auto */;\n }\n }\n function setTempFlags(formattedNameKey, flags) {\n switch (formattedNameKey) {\n case \"\":\n tempFlags = flags;\n break;\n case \"#\":\n privateNameTempFlags = flags;\n break;\n default:\n formattedNameTempFlags ?? (formattedNameTempFlags = /* @__PURE__ */ new Map());\n formattedNameTempFlags.set(formattedNameKey, flags);\n break;\n }\n }\n function makeTempVariableName(flags, reservedInNestedScopes, privateName, prefix, suffix) {\n if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) {\n prefix = prefix.slice(1);\n }\n const key = formatGeneratedName(privateName, prefix, \"\", suffix);\n let tempFlags2 = getTempFlags(key);\n if (flags && !(tempFlags2 & flags)) {\n const name = flags === 268435456 /* _i */ ? \"_i\" : \"_n\";\n const fullName = formatGeneratedName(privateName, prefix, name, suffix);\n if (isUniqueName(fullName, privateName)) {\n tempFlags2 |= flags;\n if (privateName) {\n reservePrivateNameInNestedScopes(fullName);\n } else if (reservedInNestedScopes) {\n reserveNameInNestedScopes(fullName);\n }\n setTempFlags(key, tempFlags2);\n return fullName;\n }\n }\n while (true) {\n const count = tempFlags2 & 268435455 /* CountMask */;\n tempFlags2++;\n if (count !== 8 && count !== 13) {\n const name = count < 26 ? \"_\" + String.fromCharCode(97 /* a */ + count) : \"_\" + (count - 26);\n const fullName = formatGeneratedName(privateName, prefix, name, suffix);\n if (isUniqueName(fullName, privateName)) {\n if (privateName) {\n reservePrivateNameInNestedScopes(fullName);\n } else if (reservedInNestedScopes) {\n reserveNameInNestedScopes(fullName);\n }\n setTempFlags(key, tempFlags2);\n return fullName;\n }\n }\n }\n }\n function makeUniqueName2(baseName, checkFn = isUniqueName, optimistic, scoped, privateName, prefix, suffix) {\n if (baseName.length > 0 && baseName.charCodeAt(0) === 35 /* hash */) {\n baseName = baseName.slice(1);\n }\n if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) {\n prefix = prefix.slice(1);\n }\n if (optimistic) {\n const fullName = formatGeneratedName(privateName, prefix, baseName, suffix);\n if (checkFn(fullName, privateName)) {\n if (privateName) {\n reservePrivateNameInNestedScopes(fullName);\n } else if (scoped) {\n reserveNameInNestedScopes(fullName);\n } else {\n generatedNames.add(fullName);\n }\n return fullName;\n }\n }\n if (baseName.charCodeAt(baseName.length - 1) !== 95 /* _ */) {\n baseName += \"_\";\n }\n let i = 1;\n while (true) {\n const fullName = formatGeneratedName(privateName, prefix, baseName + i, suffix);\n if (checkFn(fullName, privateName)) {\n if (privateName) {\n reservePrivateNameInNestedScopes(fullName);\n } else if (scoped) {\n reserveNameInNestedScopes(fullName);\n } else {\n generatedNames.add(fullName);\n }\n return fullName;\n }\n i++;\n }\n }\n function makeFileLevelOptimisticUniqueName(name) {\n return makeUniqueName2(\n name,\n isFileLevelUniqueNameInCurrentFile,\n /*optimistic*/\n true,\n /*scoped*/\n false,\n /*privateName*/\n false,\n /*prefix*/\n \"\",\n /*suffix*/\n \"\"\n );\n }\n function generateNameForModuleOrEnum(node) {\n const name = getTextOfNode2(node.name);\n return isUniqueLocalName(name, tryCast(node, canHaveLocals)) ? name : makeUniqueName2(\n name,\n isUniqueName,\n /*optimistic*/\n false,\n /*scoped*/\n false,\n /*privateName*/\n false,\n /*prefix*/\n \"\",\n /*suffix*/\n \"\"\n );\n }\n function generateNameForImportOrExportDeclaration(node) {\n const expr = getExternalModuleName(node);\n const baseName = isStringLiteral(expr) ? makeIdentifierFromModuleName(expr.text) : \"module\";\n return makeUniqueName2(\n baseName,\n isUniqueName,\n /*optimistic*/\n false,\n /*scoped*/\n false,\n /*privateName*/\n false,\n /*prefix*/\n \"\",\n /*suffix*/\n \"\"\n );\n }\n function generateNameForExportDefault() {\n return makeUniqueName2(\n \"default\",\n isUniqueName,\n /*optimistic*/\n false,\n /*scoped*/\n false,\n /*privateName*/\n false,\n /*prefix*/\n \"\",\n /*suffix*/\n \"\"\n );\n }\n function generateNameForClassExpression() {\n return makeUniqueName2(\n \"class\",\n isUniqueName,\n /*optimistic*/\n false,\n /*scoped*/\n false,\n /*privateName*/\n false,\n /*prefix*/\n \"\",\n /*suffix*/\n \"\"\n );\n }\n function generateNameForMethodOrAccessor(node, privateName, prefix, suffix) {\n if (isIdentifier(node.name)) {\n return generateNameCached(node.name, privateName);\n }\n return makeTempVariableName(\n 0 /* Auto */,\n /*reservedInNestedScopes*/\n false,\n privateName,\n prefix,\n suffix\n );\n }\n function generateNameForNode(node, privateName, flags, prefix, suffix) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n return makeUniqueName2(\n getTextOfNode2(node),\n isUniqueName,\n !!(flags & 16 /* Optimistic */),\n !!(flags & 8 /* ReservedInNestedScopes */),\n privateName,\n prefix,\n suffix\n );\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n Debug.assert(!prefix && !suffix && !privateName);\n return generateNameForModuleOrEnum(node);\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n Debug.assert(!prefix && !suffix && !privateName);\n return generateNameForImportOrExportDeclaration(node);\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */: {\n Debug.assert(!prefix && !suffix && !privateName);\n const name = node.name;\n if (name && !isGeneratedIdentifier(name)) {\n return generateNameForNode(\n name,\n /*privateName*/\n false,\n flags,\n prefix,\n suffix\n );\n }\n return generateNameForExportDefault();\n }\n case 278 /* ExportAssignment */:\n Debug.assert(!prefix && !suffix && !privateName);\n return generateNameForExportDefault();\n case 232 /* ClassExpression */:\n Debug.assert(!prefix && !suffix && !privateName);\n return generateNameForClassExpression();\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return generateNameForMethodOrAccessor(node, privateName, prefix, suffix);\n case 168 /* ComputedPropertyName */:\n return makeTempVariableName(\n 0 /* Auto */,\n /*reservedInNestedScopes*/\n true,\n privateName,\n prefix,\n suffix\n );\n default:\n return makeTempVariableName(\n 0 /* Auto */,\n /*reservedInNestedScopes*/\n false,\n privateName,\n prefix,\n suffix\n );\n }\n }\n function makeName(name) {\n const autoGenerate = name.emitNode.autoGenerate;\n const prefix = formatGeneratedNamePart(autoGenerate.prefix, generateName);\n const suffix = formatGeneratedNamePart(autoGenerate.suffix);\n switch (autoGenerate.flags & 7 /* KindMask */) {\n case 1 /* Auto */:\n return makeTempVariableName(0 /* Auto */, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix);\n case 2 /* Loop */:\n Debug.assertNode(name, isIdentifier);\n return makeTempVariableName(\n 268435456 /* _i */,\n !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */),\n /*privateName*/\n false,\n prefix,\n suffix\n );\n case 3 /* Unique */:\n return makeUniqueName2(\n idText(name),\n autoGenerate.flags & 32 /* FileLevel */ ? isFileLevelUniqueNameInCurrentFile : isUniqueName,\n !!(autoGenerate.flags & 16 /* Optimistic */),\n !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */),\n isPrivateIdentifier(name),\n prefix,\n suffix\n );\n }\n return Debug.fail(`Unsupported GeneratedIdentifierKind: ${Debug.formatEnum(\n autoGenerate.flags & 7 /* KindMask */,\n GeneratedIdentifierFlags,\n /*isFlags*/\n true\n )}.`);\n }\n function pipelineEmitWithComments(hint, node) {\n const pipelinePhase = getNextPipelinePhase(2 /* Comments */, hint, node);\n const savedContainerPos = containerPos;\n const savedContainerEnd = containerEnd;\n const savedDeclarationListContainerEnd = declarationListContainerEnd;\n emitCommentsBeforeNode(node);\n pipelinePhase(hint, node);\n emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n }\n function emitCommentsBeforeNode(node) {\n const emitFlags = getEmitFlags(node);\n const commentRange = getCommentRange(node);\n emitLeadingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end);\n if (emitFlags & 4096 /* NoNestedComments */) {\n commentsDisabled = true;\n }\n }\n function emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) {\n const emitFlags = getEmitFlags(node);\n const commentRange = getCommentRange(node);\n if (emitFlags & 4096 /* NoNestedComments */) {\n commentsDisabled = false;\n }\n emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n const typeNode = getTypeNode(node);\n if (typeNode) {\n emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n }\n }\n function emitLeadingCommentsOfNode(node, emitFlags, pos, end) {\n enterComment();\n hasWrittenComment = false;\n const skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0 || node.kind === 12 /* JsxText */;\n const skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */;\n if ((pos > 0 || end > 0) && pos !== end) {\n if (!skipLeadingComments) {\n emitLeadingComments(\n pos,\n /*isEmittedNode*/\n node.kind !== 354 /* NotEmittedStatement */\n );\n }\n if (!skipLeadingComments || pos >= 0 && (emitFlags & 1024 /* NoLeadingComments */) !== 0) {\n containerPos = pos;\n }\n if (!skipTrailingComments || end >= 0 && (emitFlags & 2048 /* NoTrailingComments */) !== 0) {\n containerEnd = end;\n if (node.kind === 262 /* VariableDeclarationList */) {\n declarationListContainerEnd = end;\n }\n }\n }\n forEach(getSyntheticLeadingComments(node), emitLeadingSynthesizedComment);\n exitComment();\n }\n function emitTrailingCommentsOfNode(node, emitFlags, pos, end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) {\n enterComment();\n const skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */;\n forEach(getSyntheticTrailingComments(node), emitTrailingSynthesizedComment);\n if ((pos > 0 || end > 0) && pos !== end) {\n containerPos = savedContainerPos;\n containerEnd = savedContainerEnd;\n declarationListContainerEnd = savedDeclarationListContainerEnd;\n if (!skipTrailingComments && node.kind !== 354 /* NotEmittedStatement */) {\n emitTrailingComments(end);\n }\n }\n exitComment();\n }\n function emitLeadingSynthesizedComment(comment) {\n if (comment.hasLeadingNewline || comment.kind === 2 /* SingleLineCommentTrivia */) {\n writer.writeLine();\n }\n writeSynthesizedComment(comment);\n if (comment.hasTrailingNewLine || comment.kind === 2 /* SingleLineCommentTrivia */) {\n writer.writeLine();\n } else {\n writer.writeSpace(\" \");\n }\n }\n function emitTrailingSynthesizedComment(comment) {\n if (!writer.isAtStartOfLine()) {\n writer.writeSpace(\" \");\n }\n writeSynthesizedComment(comment);\n if (comment.hasTrailingNewLine) {\n writer.writeLine();\n }\n }\n function writeSynthesizedComment(comment) {\n const text = formatSynthesizedComment(comment);\n const lineMap = comment.kind === 3 /* MultiLineCommentTrivia */ ? computeLineStarts(text) : void 0;\n writeCommentRange(text, lineMap, writer, 0, text.length, newLine);\n }\n function formatSynthesizedComment(comment) {\n return comment.kind === 3 /* MultiLineCommentTrivia */ ? `/*${comment.text}*/` : `//${comment.text}`;\n }\n function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {\n enterComment();\n const { pos, end } = detachedRange;\n const emitFlags = getEmitFlags(node);\n const skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0;\n const skipTrailingComments = commentsDisabled || end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0;\n if (!skipLeadingComments) {\n emitDetachedCommentsAndUpdateCommentsInfo(detachedRange);\n }\n exitComment();\n if (emitFlags & 4096 /* NoNestedComments */ && !commentsDisabled) {\n commentsDisabled = true;\n emitCallback(node);\n commentsDisabled = false;\n } else {\n emitCallback(node);\n }\n enterComment();\n if (!skipTrailingComments) {\n emitLeadingComments(\n detachedRange.end,\n /*isEmittedNode*/\n true\n );\n if (hasWrittenComment && !writer.isAtStartOfLine()) {\n writer.writeLine();\n }\n }\n exitComment();\n }\n function originalNodesHaveSameParent(nodeA, nodeB) {\n nodeA = getOriginalNode(nodeA);\n return nodeA.parent && nodeA.parent === getOriginalNode(nodeB).parent;\n }\n function siblingNodePositionsAreComparable(previousNode, nextNode) {\n if (nextNode.pos < previousNode.end) {\n return false;\n }\n previousNode = getOriginalNode(previousNode);\n nextNode = getOriginalNode(nextNode);\n const parent2 = previousNode.parent;\n if (!parent2 || parent2 !== nextNode.parent) {\n return false;\n }\n const parentNodeArray = getContainingNodeArray(previousNode);\n const prevNodeIndex = parentNodeArray == null ? void 0 : parentNodeArray.indexOf(previousNode);\n return prevNodeIndex !== void 0 && prevNodeIndex > -1 && parentNodeArray.indexOf(nextNode) === prevNodeIndex + 1;\n }\n function emitLeadingComments(pos, isEmittedNode) {\n hasWrittenComment = false;\n if (isEmittedNode) {\n if (pos === 0 && (currentSourceFile == null ? void 0 : currentSourceFile.isDeclarationFile)) {\n forEachLeadingCommentToEmit(pos, emitNonTripleSlashLeadingComment);\n } else {\n forEachLeadingCommentToEmit(pos, emitLeadingComment);\n }\n } else if (pos === 0) {\n forEachLeadingCommentToEmit(pos, emitTripleSlashLeadingComment);\n }\n }\n function emitTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n if (isTripleSlashComment(commentPos, commentEnd)) {\n emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos);\n }\n }\n function emitNonTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n if (!isTripleSlashComment(commentPos, commentEnd)) {\n emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos);\n }\n }\n function shouldWriteComment(text, pos) {\n if (printerOptions.onlyPrintJsDocStyle) {\n return isJSDocLikeText(text, pos) || isPinnedComment(text, pos);\n }\n return true;\n }\n function emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n if (!hasWrittenComment) {\n emitNewLineBeforeLeadingCommentOfPosition(getCurrentLineMap(), writer, rangePos, commentPos);\n hasWrittenComment = true;\n }\n emitPos(commentPos);\n writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n emitPos(commentEnd);\n if (hasTrailingNewLine) {\n writer.writeLine();\n } else if (kind === 3 /* MultiLineCommentTrivia */) {\n writer.writeSpace(\" \");\n }\n }\n function emitLeadingCommentsOfPosition(pos) {\n if (commentsDisabled || pos === -1) {\n return;\n }\n emitLeadingComments(\n pos,\n /*isEmittedNode*/\n true\n );\n }\n function emitTrailingComments(pos) {\n forEachTrailingCommentToEmit(pos, emitTrailingComment);\n }\n function emitTrailingComment(commentPos, commentEnd, _kind, hasTrailingNewLine) {\n if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n if (!writer.isAtStartOfLine()) {\n writer.writeSpace(\" \");\n }\n emitPos(commentPos);\n writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n emitPos(commentEnd);\n if (hasTrailingNewLine) {\n writer.writeLine();\n }\n }\n function emitTrailingCommentsOfPosition(pos, prefixSpace, forceNoNewline) {\n if (commentsDisabled) {\n return;\n }\n enterComment();\n forEachTrailingCommentToEmit(pos, prefixSpace ? emitTrailingComment : forceNoNewline ? emitTrailingCommentOfPositionNoNewline : emitTrailingCommentOfPosition);\n exitComment();\n }\n function emitTrailingCommentOfPositionNoNewline(commentPos, commentEnd, kind) {\n if (!currentSourceFile) return;\n emitPos(commentPos);\n writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n emitPos(commentEnd);\n if (kind === 2 /* SingleLineCommentTrivia */) {\n writer.writeLine();\n }\n }\n function emitTrailingCommentOfPosition(commentPos, commentEnd, _kind, hasTrailingNewLine) {\n if (!currentSourceFile) return;\n emitPos(commentPos);\n writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n emitPos(commentEnd);\n if (hasTrailingNewLine) {\n writer.writeLine();\n } else {\n writer.writeSpace(\" \");\n }\n }\n function forEachLeadingCommentToEmit(pos, cb) {\n if (currentSourceFile && (containerPos === -1 || pos !== containerPos)) {\n if (hasDetachedComments(pos)) {\n forEachLeadingCommentWithoutDetachedComments(cb);\n } else {\n forEachLeadingCommentRange(\n currentSourceFile.text,\n pos,\n cb,\n /*state*/\n pos\n );\n }\n }\n }\n function forEachTrailingCommentToEmit(end, cb) {\n if (currentSourceFile && (containerEnd === -1 || end !== containerEnd && end !== declarationListContainerEnd)) {\n forEachTrailingCommentRange(currentSourceFile.text, end, cb);\n }\n }\n function hasDetachedComments(pos) {\n return detachedCommentsInfo !== void 0 && last(detachedCommentsInfo).nodePos === pos;\n }\n function forEachLeadingCommentWithoutDetachedComments(cb) {\n if (!currentSourceFile) return;\n const pos = last(detachedCommentsInfo).detachedCommentEndPos;\n if (detachedCommentsInfo.length - 1) {\n detachedCommentsInfo.pop();\n } else {\n detachedCommentsInfo = void 0;\n }\n forEachLeadingCommentRange(\n currentSourceFile.text,\n pos,\n cb,\n /*state*/\n pos\n );\n }\n function emitDetachedCommentsAndUpdateCommentsInfo(range) {\n const currentDetachedCommentInfo = currentSourceFile && emitDetachedComments(currentSourceFile.text, getCurrentLineMap(), writer, emitComment, range, newLine, commentsDisabled);\n if (currentDetachedCommentInfo) {\n if (detachedCommentsInfo) {\n detachedCommentsInfo.push(currentDetachedCommentInfo);\n } else {\n detachedCommentsInfo = [currentDetachedCommentInfo];\n }\n }\n }\n function emitComment(text, lineMap, writer2, commentPos, commentEnd, newLine2) {\n if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n emitPos(commentPos);\n writeCommentRange(text, lineMap, writer2, commentPos, commentEnd, newLine2);\n emitPos(commentEnd);\n }\n function isTripleSlashComment(commentPos, commentEnd) {\n return !!currentSourceFile && isRecognizedTripleSlashComment(currentSourceFile.text, commentPos, commentEnd);\n }\n function pipelineEmitWithSourceMaps(hint, node) {\n const pipelinePhase = getNextPipelinePhase(3 /* SourceMaps */, hint, node);\n emitSourceMapsBeforeNode(node);\n pipelinePhase(hint, node);\n emitSourceMapsAfterNode(node);\n }\n function emitSourceMapsBeforeNode(node) {\n const emitFlags = getEmitFlags(node);\n const sourceMapRange = getSourceMapRange(node);\n const source = sourceMapRange.source || sourceMapSource;\n if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 32 /* NoLeadingSourceMap */) === 0 && sourceMapRange.pos >= 0) {\n emitSourcePos(sourceMapRange.source || sourceMapSource, skipSourceTrivia(source, sourceMapRange.pos));\n }\n if (emitFlags & 128 /* NoNestedSourceMaps */) {\n sourceMapsDisabled = true;\n }\n }\n function emitSourceMapsAfterNode(node) {\n const emitFlags = getEmitFlags(node);\n const sourceMapRange = getSourceMapRange(node);\n if (emitFlags & 128 /* NoNestedSourceMaps */) {\n sourceMapsDisabled = false;\n }\n if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 64 /* NoTrailingSourceMap */) === 0 && sourceMapRange.end >= 0) {\n emitSourcePos(sourceMapRange.source || sourceMapSource, sourceMapRange.end);\n }\n }\n function skipSourceTrivia(source, pos) {\n return source.skipTrivia ? source.skipTrivia(pos) : skipTrivia(source.text, pos);\n }\n function emitPos(pos) {\n if (sourceMapsDisabled || positionIsSynthesized(pos) || isJsonSourceMapSource(sourceMapSource)) {\n return;\n }\n const { line: sourceLine, character: sourceCharacter } = getLineAndCharacterOfPosition(sourceMapSource, pos);\n sourceMapGenerator.addMapping(\n writer.getLine(),\n writer.getColumn(),\n sourceMapSourceIndex,\n sourceLine,\n sourceCharacter,\n /*nameIndex*/\n void 0\n );\n }\n function emitSourcePos(source, pos) {\n if (source !== sourceMapSource) {\n const savedSourceMapSource = sourceMapSource;\n const savedSourceMapSourceIndex = sourceMapSourceIndex;\n setSourceMapSource(source);\n emitPos(pos);\n resetSourceMapSource(savedSourceMapSource, savedSourceMapSourceIndex);\n } else {\n emitPos(pos);\n }\n }\n function emitTokenWithSourceMap(node, token, writer2, tokenPos, emitCallback) {\n if (sourceMapsDisabled || node && isInJsonFile(node)) {\n return emitCallback(token, writer2, tokenPos);\n }\n const emitNode = node && node.emitNode;\n const emitFlags = emitNode && emitNode.flags || 0 /* None */;\n const range = emitNode && emitNode.tokenSourceMapRanges && emitNode.tokenSourceMapRanges[token];\n const source = range && range.source || sourceMapSource;\n tokenPos = skipSourceTrivia(source, range ? range.pos : tokenPos);\n if ((emitFlags & 256 /* NoTokenLeadingSourceMaps */) === 0 && tokenPos >= 0) {\n emitSourcePos(source, tokenPos);\n }\n tokenPos = emitCallback(token, writer2, tokenPos);\n if (range) tokenPos = range.end;\n if ((emitFlags & 512 /* NoTokenTrailingSourceMaps */) === 0 && tokenPos >= 0) {\n emitSourcePos(source, tokenPos);\n }\n return tokenPos;\n }\n function setSourceMapSource(source) {\n if (sourceMapsDisabled) {\n return;\n }\n sourceMapSource = source;\n if (source === mostRecentlyAddedSourceMapSource) {\n sourceMapSourceIndex = mostRecentlyAddedSourceMapSourceIndex;\n return;\n }\n if (isJsonSourceMapSource(source)) {\n return;\n }\n sourceMapSourceIndex = sourceMapGenerator.addSource(source.fileName);\n if (printerOptions.inlineSources) {\n sourceMapGenerator.setSourceContent(sourceMapSourceIndex, source.text);\n }\n mostRecentlyAddedSourceMapSource = source;\n mostRecentlyAddedSourceMapSourceIndex = sourceMapSourceIndex;\n }\n function resetSourceMapSource(source, sourceIndex) {\n sourceMapSource = source;\n sourceMapSourceIndex = sourceIndex;\n }\n function isJsonSourceMapSource(sourceFile) {\n return fileExtensionIs(sourceFile.fileName, \".json\" /* Json */);\n }\n}\nfunction createBracketsMap() {\n const brackets2 = [];\n brackets2[1024 /* Braces */] = [\"{\", \"}\"];\n brackets2[2048 /* Parenthesis */] = [\"(\", \")\"];\n brackets2[4096 /* AngleBrackets */] = [\"<\", \">\"];\n brackets2[8192 /* SquareBrackets */] = [\"[\", \"]\"];\n return brackets2;\n}\nfunction getOpeningBracket(format) {\n return brackets[format & 15360 /* BracketsMask */][0];\n}\nfunction getClosingBracket(format) {\n return brackets[format & 15360 /* BracketsMask */][1];\n}\nfunction emitListItemNoParenthesizer(node, emit, _parenthesizerRule, _index) {\n emit(node);\n}\nfunction emitListItemWithParenthesizerRuleSelector(node, emit, parenthesizerRuleSelector, index) {\n emit(node, parenthesizerRuleSelector.select(index));\n}\nfunction emitListItemWithParenthesizerRule(node, emit, parenthesizerRule, _index) {\n emit(node, parenthesizerRule);\n}\nfunction getEmitListItem(emit, parenthesizerRule) {\n return emit.length === 1 ? emitListItemNoParenthesizer : typeof parenthesizerRule === \"object\" ? emitListItemWithParenthesizerRuleSelector : emitListItemWithParenthesizerRule;\n}\n\n// src/compiler/watchUtilities.ts\nfunction createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2) {\n if (!host.getDirectories || !host.readDirectory) {\n return void 0;\n }\n const cachedReadDirectoryResult = /* @__PURE__ */ new Map();\n const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n return {\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n fileExists,\n readFile: (path, encoding) => host.readFile(path, encoding),\n directoryExists: host.directoryExists && directoryExists,\n getDirectories,\n readDirectory,\n createDirectory: host.createDirectory && createDirectory,\n writeFile: host.writeFile && writeFile2,\n addOrDeleteFileOrDirectory,\n addOrDeleteFile,\n clearCache,\n realpath: host.realpath && realpath\n };\n function toPath3(fileName) {\n return toPath(fileName, currentDirectory, getCanonicalFileName);\n }\n function getCachedFileSystemEntries(rootDirPath) {\n return cachedReadDirectoryResult.get(ensureTrailingDirectorySeparator(rootDirPath));\n }\n function getCachedFileSystemEntriesForBaseDir(path) {\n const entries = getCachedFileSystemEntries(getDirectoryPath(path));\n if (!entries) {\n return entries;\n }\n if (!entries.sortedAndCanonicalizedFiles) {\n entries.sortedAndCanonicalizedFiles = entries.files.map(getCanonicalFileName).sort();\n entries.sortedAndCanonicalizedDirectories = entries.directories.map(getCanonicalFileName).sort();\n }\n return entries;\n }\n function getBaseNameOfFileName(fileName) {\n return getBaseFileName(normalizePath(fileName));\n }\n function createCachedFileSystemEntries(rootDir, rootDirPath) {\n var _a;\n if (!host.realpath || ensureTrailingDirectorySeparator(toPath3(host.realpath(rootDir))) === rootDirPath) {\n const resultFromHost = {\n files: map(host.readDirectory(\n rootDir,\n /*extensions*/\n void 0,\n /*exclude*/\n void 0,\n /*include*/\n [\"*.*\"]\n ), getBaseNameOfFileName) || [],\n directories: host.getDirectories(rootDir) || []\n };\n cachedReadDirectoryResult.set(ensureTrailingDirectorySeparator(rootDirPath), resultFromHost);\n return resultFromHost;\n }\n if ((_a = host.directoryExists) == null ? void 0 : _a.call(host, rootDir)) {\n cachedReadDirectoryResult.set(rootDirPath, false);\n return false;\n }\n return void 0;\n }\n function tryReadDirectory2(rootDir, rootDirPath) {\n rootDirPath = ensureTrailingDirectorySeparator(rootDirPath);\n const cachedResult = getCachedFileSystemEntries(rootDirPath);\n if (cachedResult) {\n return cachedResult;\n }\n try {\n return createCachedFileSystemEntries(rootDir, rootDirPath);\n } catch {\n Debug.assert(!cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(rootDirPath)));\n return void 0;\n }\n }\n function hasEntry(entries, name) {\n const index = binarySearch(entries, name, identity, compareStringsCaseSensitive);\n return index >= 0;\n }\n function writeFile2(fileName, data, writeByteOrderMark) {\n const path = toPath3(fileName);\n const result = getCachedFileSystemEntriesForBaseDir(path);\n if (result) {\n updateFilesOfFileSystemEntry(\n result,\n getBaseNameOfFileName(fileName),\n /*fileExists*/\n true\n );\n }\n return host.writeFile(fileName, data, writeByteOrderMark);\n }\n function fileExists(fileName) {\n const path = toPath3(fileName);\n const result = getCachedFileSystemEntriesForBaseDir(path);\n return result && hasEntry(result.sortedAndCanonicalizedFiles, getCanonicalFileName(getBaseNameOfFileName(fileName))) || host.fileExists(fileName);\n }\n function directoryExists(dirPath) {\n const path = toPath3(dirPath);\n return cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(path)) || host.directoryExists(dirPath);\n }\n function createDirectory(dirPath) {\n const path = toPath3(dirPath);\n const result = getCachedFileSystemEntriesForBaseDir(path);\n if (result) {\n const baseName = getBaseNameOfFileName(dirPath);\n const canonicalizedBaseName = getCanonicalFileName(baseName);\n const canonicalizedDirectories = result.sortedAndCanonicalizedDirectories;\n if (insertSorted(canonicalizedDirectories, canonicalizedBaseName, compareStringsCaseSensitive)) {\n result.directories.push(baseName);\n }\n }\n host.createDirectory(dirPath);\n }\n function getDirectories(rootDir) {\n const rootDirPath = toPath3(rootDir);\n const result = tryReadDirectory2(rootDir, rootDirPath);\n if (result) {\n return result.directories.slice();\n }\n return host.getDirectories(rootDir);\n }\n function readDirectory(rootDir, extensions, excludes, includes, depth) {\n const rootDirPath = toPath3(rootDir);\n const rootResult = tryReadDirectory2(rootDir, rootDirPath);\n let rootSymLinkResult;\n if (rootResult !== void 0) {\n return matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath);\n }\n return host.readDirectory(rootDir, extensions, excludes, includes, depth);\n function getFileSystemEntries(dir) {\n const path = toPath3(dir);\n if (path === rootDirPath) {\n return rootResult || getFileSystemEntriesFromHost(dir, path);\n }\n const result = tryReadDirectory2(dir, path);\n return result !== void 0 ? result || getFileSystemEntriesFromHost(dir, path) : emptyFileSystemEntries;\n }\n function getFileSystemEntriesFromHost(dir, path) {\n if (rootSymLinkResult && path === rootDirPath) return rootSymLinkResult;\n const result = {\n files: map(host.readDirectory(\n dir,\n /*extensions*/\n void 0,\n /*exclude*/\n void 0,\n /*include*/\n [\"*.*\"]\n ), getBaseNameOfFileName) || emptyArray,\n directories: host.getDirectories(dir) || emptyArray\n };\n if (path === rootDirPath) rootSymLinkResult = result;\n return result;\n }\n }\n function realpath(s) {\n return host.realpath ? host.realpath(s) : s;\n }\n function clearFirstAncestorEntry(fileOrDirectoryPath) {\n forEachAncestorDirectory(\n getDirectoryPath(fileOrDirectoryPath),\n (ancestor) => cachedReadDirectoryResult.delete(ensureTrailingDirectorySeparator(ancestor)) ? true : void 0\n );\n }\n function addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath) {\n const existingResult = getCachedFileSystemEntries(fileOrDirectoryPath);\n if (existingResult !== void 0) {\n clearCache();\n return void 0;\n }\n const parentResult = getCachedFileSystemEntriesForBaseDir(fileOrDirectoryPath);\n if (!parentResult) {\n clearFirstAncestorEntry(fileOrDirectoryPath);\n return void 0;\n }\n if (!host.directoryExists) {\n clearCache();\n return void 0;\n }\n const baseName = getBaseNameOfFileName(fileOrDirectory);\n const fsQueryResult = {\n fileExists: host.fileExists(fileOrDirectory),\n directoryExists: host.directoryExists(fileOrDirectory)\n };\n if (fsQueryResult.directoryExists || hasEntry(parentResult.sortedAndCanonicalizedDirectories, getCanonicalFileName(baseName))) {\n clearCache();\n } else {\n updateFilesOfFileSystemEntry(parentResult, baseName, fsQueryResult.fileExists);\n }\n return fsQueryResult;\n }\n function addOrDeleteFile(fileName, filePath, eventKind) {\n if (eventKind === 1 /* Changed */) {\n return;\n }\n const parentResult = getCachedFileSystemEntriesForBaseDir(filePath);\n if (parentResult) {\n updateFilesOfFileSystemEntry(parentResult, getBaseNameOfFileName(fileName), eventKind === 0 /* Created */);\n } else {\n clearFirstAncestorEntry(filePath);\n }\n }\n function updateFilesOfFileSystemEntry(parentResult, baseName, fileExists2) {\n const canonicalizedFiles = parentResult.sortedAndCanonicalizedFiles;\n const canonicalizedBaseName = getCanonicalFileName(baseName);\n if (fileExists2) {\n if (insertSorted(canonicalizedFiles, canonicalizedBaseName, compareStringsCaseSensitive)) {\n parentResult.files.push(baseName);\n }\n } else {\n const sortedIndex = binarySearch(canonicalizedFiles, canonicalizedBaseName, identity, compareStringsCaseSensitive);\n if (sortedIndex >= 0) {\n canonicalizedFiles.splice(sortedIndex, 1);\n const unsortedIndex = parentResult.files.findIndex((entry) => getCanonicalFileName(entry) === canonicalizedBaseName);\n parentResult.files.splice(unsortedIndex, 1);\n }\n }\n }\n function clearCache() {\n cachedReadDirectoryResult.clear();\n }\n}\nvar ProgramUpdateLevel = /* @__PURE__ */ ((ProgramUpdateLevel2) => {\n ProgramUpdateLevel2[ProgramUpdateLevel2[\"Update\"] = 0] = \"Update\";\n ProgramUpdateLevel2[ProgramUpdateLevel2[\"RootNamesAndUpdate\"] = 1] = \"RootNamesAndUpdate\";\n ProgramUpdateLevel2[ProgramUpdateLevel2[\"Full\"] = 2] = \"Full\";\n return ProgramUpdateLevel2;\n})(ProgramUpdateLevel || {});\nfunction updateSharedExtendedConfigFileWatcher(projectPath, options, extendedConfigFilesMap, createExtendedConfigFileWatch, toPath3) {\n var _a;\n const extendedConfigs = arrayToMap(((_a = options == null ? void 0 : options.configFile) == null ? void 0 : _a.extendedSourceFiles) || emptyArray, toPath3);\n extendedConfigFilesMap.forEach((watcher, extendedConfigFilePath) => {\n if (!extendedConfigs.has(extendedConfigFilePath)) {\n watcher.projects.delete(projectPath);\n watcher.close();\n }\n });\n extendedConfigs.forEach((extendedConfigFileName, extendedConfigFilePath) => {\n const existing = extendedConfigFilesMap.get(extendedConfigFilePath);\n if (existing) {\n existing.projects.add(projectPath);\n } else {\n extendedConfigFilesMap.set(extendedConfigFilePath, {\n projects: /* @__PURE__ */ new Set([projectPath]),\n watcher: createExtendedConfigFileWatch(extendedConfigFileName, extendedConfigFilePath),\n close: () => {\n const existing2 = extendedConfigFilesMap.get(extendedConfigFilePath);\n if (!existing2 || existing2.projects.size !== 0) return;\n existing2.watcher.close();\n extendedConfigFilesMap.delete(extendedConfigFilePath);\n }\n });\n }\n });\n}\nfunction clearSharedExtendedConfigFileWatcher(projectPath, extendedConfigFilesMap) {\n extendedConfigFilesMap.forEach((watcher) => {\n if (watcher.projects.delete(projectPath)) watcher.close();\n });\n}\nfunction cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3) {\n if (!extendedConfigCache.delete(extendedConfigFilePath)) return;\n extendedConfigCache.forEach(({ extendedResult }, key) => {\n var _a;\n if ((_a = extendedResult.extendedSourceFiles) == null ? void 0 : _a.some((extendedFile) => toPath3(extendedFile) === extendedConfigFilePath)) {\n cleanExtendedConfigCache(extendedConfigCache, key, toPath3);\n }\n });\n}\nfunction updateMissingFilePathsWatch(program, missingFileWatches, createMissingFileWatch) {\n mutateMap(\n missingFileWatches,\n program.getMissingFilePaths(),\n {\n // Watch the missing files\n createNewValue: createMissingFileWatch,\n // Files that are no longer missing (e.g. because they are no longer required)\n // should no longer be watched.\n onDeleteValue: closeFileWatcher\n }\n );\n}\nfunction updateWatchingWildcardDirectories(existingWatchedForWildcards, wildcardDirectories, watchDirectory) {\n if (wildcardDirectories) {\n mutateMap(\n existingWatchedForWildcards,\n new Map(Object.entries(wildcardDirectories)),\n {\n // Create new watch and recursive info\n createNewValue: createWildcardDirectoryWatcher,\n // Close existing watch thats not needed any more\n onDeleteValue: closeFileWatcherOf,\n // Close existing watch that doesnt match in the flags\n onExistingValue: updateWildcardDirectoryWatcher\n }\n );\n } else {\n clearMap(existingWatchedForWildcards, closeFileWatcherOf);\n }\n function createWildcardDirectoryWatcher(directory, flags) {\n return {\n watcher: watchDirectory(directory, flags),\n flags\n };\n }\n function updateWildcardDirectoryWatcher(existingWatcher, flags, directory) {\n if (existingWatcher.flags === flags) {\n return;\n }\n existingWatcher.watcher.close();\n existingWatchedForWildcards.set(directory, createWildcardDirectoryWatcher(directory, flags));\n }\n}\nfunction isIgnoredFileFromWildCardWatching({\n watchedDirPath,\n fileOrDirectory,\n fileOrDirectoryPath,\n configFileName,\n options,\n program,\n extraFileExtensions,\n currentDirectory,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n writeLog,\n toPath: toPath3,\n getScriptKind: getScriptKind2\n}) {\n const newPath = removeIgnoredPath(fileOrDirectoryPath);\n if (!newPath) {\n writeLog(`Project: ${configFileName} Detected ignored path: ${fileOrDirectory}`);\n return true;\n }\n fileOrDirectoryPath = newPath;\n if (fileOrDirectoryPath === watchedDirPath) return false;\n if (hasExtension(fileOrDirectoryPath) && !(isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions) || isSupportedScriptKind())) {\n writeLog(`Project: ${configFileName} Detected file add/remove of non supported extension: ${fileOrDirectory}`);\n return true;\n }\n if (isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames2, currentDirectory)) {\n writeLog(`Project: ${configFileName} Detected excluded file: ${fileOrDirectory}`);\n return true;\n }\n if (!program) return false;\n if (options.outFile || options.outDir) return false;\n if (isDeclarationFileName(fileOrDirectoryPath)) {\n if (options.declarationDir) return false;\n } else if (!fileExtensionIsOneOf(fileOrDirectoryPath, supportedJSExtensionsFlat)) {\n return false;\n }\n const filePathWithoutExtension = removeFileExtension(fileOrDirectoryPath);\n const realProgram = isArray(program) ? void 0 : isBuilderProgram(program) ? program.getProgramOrUndefined() : program;\n const builderProgram = !realProgram && !isArray(program) ? program : void 0;\n if (hasSourceFile(filePathWithoutExtension + \".ts\" /* Ts */) || hasSourceFile(filePathWithoutExtension + \".tsx\" /* Tsx */)) {\n writeLog(`Project: ${configFileName} Detected output file: ${fileOrDirectory}`);\n return true;\n }\n return false;\n function hasSourceFile(file) {\n return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.state.fileInfos.has(file) : !!find(program, (rootFile) => toPath3(rootFile) === file);\n }\n function isSupportedScriptKind() {\n if (!getScriptKind2) return false;\n const scriptKind = getScriptKind2(fileOrDirectory);\n switch (scriptKind) {\n case 3 /* TS */:\n case 4 /* TSX */:\n case 7 /* Deferred */:\n case 5 /* External */:\n return true;\n case 1 /* JS */:\n case 2 /* JSX */:\n return getAllowJSCompilerOption(options);\n case 6 /* JSON */:\n return getResolveJsonModule(options);\n case 0 /* Unknown */:\n return false;\n }\n }\n}\nfunction isEmittedFileOfProgram(program, file) {\n if (!program) {\n return false;\n }\n return program.isEmittedFile(file);\n}\nvar WatchLogLevel = /* @__PURE__ */ ((WatchLogLevel2) => {\n WatchLogLevel2[WatchLogLevel2[\"None\"] = 0] = \"None\";\n WatchLogLevel2[WatchLogLevel2[\"TriggerOnly\"] = 1] = \"TriggerOnly\";\n WatchLogLevel2[WatchLogLevel2[\"Verbose\"] = 2] = \"Verbose\";\n return WatchLogLevel2;\n})(WatchLogLevel || {});\nfunction getWatchFactory(host, watchLogLevel, log, getDetailWatchInfo2) {\n setSysLog(watchLogLevel === 2 /* Verbose */ ? log : noop);\n const plainInvokeFactory = {\n watchFile: (file, callback, pollingInterval, options) => host.watchFile(file, callback, pollingInterval, options),\n watchDirectory: (directory, callback, flags, options) => host.watchDirectory(directory, callback, (flags & 1 /* Recursive */) !== 0, options)\n };\n const triggerInvokingFactory = watchLogLevel !== 0 /* None */ ? {\n watchFile: createTriggerLoggingAddWatch(\"watchFile\"),\n watchDirectory: createTriggerLoggingAddWatch(\"watchDirectory\")\n } : void 0;\n const factory2 = watchLogLevel === 2 /* Verbose */ ? {\n watchFile: createFileWatcherWithLogging,\n watchDirectory: createDirectoryWatcherWithLogging\n } : triggerInvokingFactory || plainInvokeFactory;\n const excludeWatcherFactory = watchLogLevel === 2 /* Verbose */ ? createExcludeWatcherWithLogging : returnNoopFileWatcher;\n return {\n watchFile: createExcludeHandlingAddWatch(\"watchFile\"),\n watchDirectory: createExcludeHandlingAddWatch(\"watchDirectory\")\n };\n function createExcludeHandlingAddWatch(key) {\n return (file, cb, flags, options, detailInfo1, detailInfo2) => {\n var _a;\n return !matchesExclude(file, key === \"watchFile\" ? options == null ? void 0 : options.excludeFiles : options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2(), ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)) || \"\") ? factory2[key].call(\n /*thisArgs*/\n void 0,\n file,\n cb,\n flags,\n options,\n detailInfo1,\n detailInfo2\n ) : excludeWatcherFactory(file, flags, options, detailInfo1, detailInfo2);\n };\n }\n function useCaseSensitiveFileNames2() {\n return typeof host.useCaseSensitiveFileNames === \"boolean\" ? host.useCaseSensitiveFileNames : host.useCaseSensitiveFileNames();\n }\n function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {\n log(`ExcludeWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n return {\n close: () => log(`ExcludeWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`)\n };\n }\n function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {\n log(`FileWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n const watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);\n return {\n close: () => {\n log(`FileWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n watcher.close();\n }\n };\n }\n function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {\n const watchInfo = `DirectoryWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n log(watchInfo);\n const start = timestamp();\n const watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);\n const elapsed = timestamp() - start;\n log(`Elapsed:: ${elapsed}ms ${watchInfo}`);\n return {\n close: () => {\n const watchInfo2 = `DirectoryWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n log(watchInfo2);\n const start2 = timestamp();\n watcher.close();\n const elapsed2 = timestamp() - start2;\n log(`Elapsed:: ${elapsed2}ms ${watchInfo2}`);\n }\n };\n }\n function createTriggerLoggingAddWatch(key) {\n return (file, cb, flags, options, detailInfo1, detailInfo2) => plainInvokeFactory[key].call(\n /*thisArgs*/\n void 0,\n file,\n (...args) => {\n const triggerredInfo = `${key === \"watchFile\" ? \"FileWatcher\" : \"DirectoryWatcher\"}:: Triggered with ${args[0]} ${args[1] !== void 0 ? args[1] : \"\"}:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n log(triggerredInfo);\n const start = timestamp();\n cb.call(\n /*thisArg*/\n void 0,\n ...args\n );\n const elapsed = timestamp() - start;\n log(`Elapsed:: ${elapsed}ms ${triggerredInfo}`);\n },\n flags,\n options,\n detailInfo1,\n detailInfo2\n );\n }\n function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo3) {\n return `WatchInfo: ${file} ${flags} ${JSON.stringify(options)} ${getDetailWatchInfo3 ? getDetailWatchInfo3(detailInfo1, detailInfo2) : detailInfo2 === void 0 ? detailInfo1 : `${detailInfo1} ${detailInfo2}`}`;\n }\n}\nfunction getFallbackOptions(options) {\n const fallbackPolling = options == null ? void 0 : options.fallbackPolling;\n return {\n watchFile: fallbackPolling !== void 0 ? fallbackPolling : 1 /* PriorityPollingInterval */\n };\n}\nfunction closeFileWatcherOf(objWithWatcher) {\n objWithWatcher.watcher.close();\n}\n\n// src/compiler/program.ts\nfunction findConfigFile(searchPath, fileExists, configName = \"tsconfig.json\") {\n return forEachAncestorDirectory(searchPath, (ancestor) => {\n const fileName = combinePaths(ancestor, configName);\n return fileExists(fileName) ? fileName : void 0;\n });\n}\nfunction resolveTripleslashReference(moduleName, containingFile) {\n const basePath = getDirectoryPath(containingFile);\n const referencedFileName = isRootedDiskPath(moduleName) ? moduleName : combinePaths(basePath, moduleName);\n return normalizePath(referencedFileName);\n}\nfunction computeCommonSourceDirectoryOfFilenames(fileNames, currentDirectory, getCanonicalFileName) {\n let commonPathComponents;\n const failed2 = forEach(fileNames, (sourceFile) => {\n const sourcePathComponents = getNormalizedPathComponents(sourceFile, currentDirectory);\n sourcePathComponents.pop();\n if (!commonPathComponents) {\n commonPathComponents = sourcePathComponents;\n return;\n }\n const n = Math.min(commonPathComponents.length, sourcePathComponents.length);\n for (let i = 0; i < n; i++) {\n if (getCanonicalFileName(commonPathComponents[i]) !== getCanonicalFileName(sourcePathComponents[i])) {\n if (i === 0) {\n return true;\n }\n commonPathComponents.length = i;\n break;\n }\n }\n if (sourcePathComponents.length < commonPathComponents.length) {\n commonPathComponents.length = sourcePathComponents.length;\n }\n });\n if (failed2) {\n return \"\";\n }\n if (!commonPathComponents) {\n return currentDirectory;\n }\n return getPathFromPathComponents(commonPathComponents);\n}\nfunction createCompilerHost(options, setParentNodes) {\n return createCompilerHostWorker(options, setParentNodes);\n}\nfunction createGetSourceFile(readFile, setParentNodes) {\n return (fileName, languageVersionOrOptions, onError) => {\n let text;\n try {\n mark(\"beforeIORead\");\n text = readFile(fileName);\n mark(\"afterIORead\");\n measure(\"I/O Read\", \"beforeIORead\", \"afterIORead\");\n } catch (e) {\n if (onError) {\n onError(e.message);\n }\n text = \"\";\n }\n return text !== void 0 ? createSourceFile(fileName, text, languageVersionOrOptions, setParentNodes) : void 0;\n };\n}\nfunction createWriteFileMeasuringIO(actualWriteFile, createDirectory, directoryExists) {\n return (fileName, data, writeByteOrderMark, onError) => {\n try {\n mark(\"beforeIOWrite\");\n writeFileEnsuringDirectories(\n fileName,\n data,\n writeByteOrderMark,\n actualWriteFile,\n createDirectory,\n directoryExists\n );\n mark(\"afterIOWrite\");\n measure(\"I/O Write\", \"beforeIOWrite\", \"afterIOWrite\");\n } catch (e) {\n if (onError) {\n onError(e.message);\n }\n }\n };\n}\nfunction createCompilerHostWorker(options, setParentNodes, system = sys) {\n const existingDirectories = /* @__PURE__ */ new Map();\n const getCanonicalFileName = createGetCanonicalFileName(system.useCaseSensitiveFileNames);\n function directoryExists(directoryPath) {\n if (existingDirectories.has(directoryPath)) {\n return true;\n }\n if ((compilerHost.directoryExists || system.directoryExists)(directoryPath)) {\n existingDirectories.set(directoryPath, true);\n return true;\n }\n return false;\n }\n function getDefaultLibLocation() {\n return getDirectoryPath(normalizePath(system.getExecutingFilePath()));\n }\n const newLine = getNewLineCharacter(options);\n const realpath = system.realpath && ((path) => system.realpath(path));\n const compilerHost = {\n getSourceFile: createGetSourceFile((fileName) => compilerHost.readFile(fileName), setParentNodes),\n getDefaultLibLocation,\n getDefaultLibFileName: (options2) => combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options2)),\n writeFile: createWriteFileMeasuringIO(\n (path, data, writeByteOrderMark) => system.writeFile(path, data, writeByteOrderMark),\n (path) => (compilerHost.createDirectory || system.createDirectory)(path),\n (path) => directoryExists(path)\n ),\n getCurrentDirectory: memoize(() => system.getCurrentDirectory()),\n useCaseSensitiveFileNames: () => system.useCaseSensitiveFileNames,\n getCanonicalFileName,\n getNewLine: () => newLine,\n fileExists: (fileName) => system.fileExists(fileName),\n readFile: (fileName) => system.readFile(fileName),\n trace: (s) => system.write(s + newLine),\n directoryExists: (directoryName) => system.directoryExists(directoryName),\n getEnvironmentVariable: (name) => system.getEnvironmentVariable ? system.getEnvironmentVariable(name) : \"\",\n getDirectories: (path) => system.getDirectories(path),\n realpath,\n readDirectory: (path, extensions, include, exclude, depth) => system.readDirectory(path, extensions, include, exclude, depth),\n createDirectory: (d) => system.createDirectory(d),\n createHash: maybeBind(system, system.createHash)\n };\n return compilerHost;\n}\nfunction changeCompilerHostLikeToUseCache(host, toPath3, getSourceFile) {\n const originalReadFile = host.readFile;\n const originalFileExists = host.fileExists;\n const originalDirectoryExists = host.directoryExists;\n const originalCreateDirectory = host.createDirectory;\n const originalWriteFile = host.writeFile;\n const readFileCache = /* @__PURE__ */ new Map();\n const fileExistsCache = /* @__PURE__ */ new Map();\n const directoryExistsCache = /* @__PURE__ */ new Map();\n const sourceFileCache = /* @__PURE__ */ new Map();\n const readFileWithCache = (fileName) => {\n const key = toPath3(fileName);\n const value = readFileCache.get(key);\n if (value !== void 0) return value !== false ? value : void 0;\n return setReadFileCache(key, fileName);\n };\n const setReadFileCache = (key, fileName) => {\n const newValue = originalReadFile.call(host, fileName);\n readFileCache.set(key, newValue !== void 0 ? newValue : false);\n return newValue;\n };\n host.readFile = (fileName) => {\n const key = toPath3(fileName);\n const value = readFileCache.get(key);\n if (value !== void 0) return value !== false ? value : void 0;\n if (!fileExtensionIs(fileName, \".json\" /* Json */) && !isBuildInfoFile(fileName)) {\n return originalReadFile.call(host, fileName);\n }\n return setReadFileCache(key, fileName);\n };\n const getSourceFileWithCache = getSourceFile ? (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => {\n const key = toPath3(fileName);\n const impliedNodeFormat = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions.impliedNodeFormat : void 0;\n const forImpliedNodeFormat = sourceFileCache.get(impliedNodeFormat);\n const value = forImpliedNodeFormat == null ? void 0 : forImpliedNodeFormat.get(key);\n if (value) return value;\n const sourceFile = getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);\n if (sourceFile && (isDeclarationFileName(fileName) || fileExtensionIs(fileName, \".json\" /* Json */))) {\n sourceFileCache.set(impliedNodeFormat, (forImpliedNodeFormat || /* @__PURE__ */ new Map()).set(key, sourceFile));\n }\n return sourceFile;\n } : void 0;\n host.fileExists = (fileName) => {\n const key = toPath3(fileName);\n const value = fileExistsCache.get(key);\n if (value !== void 0) return value;\n const newValue = originalFileExists.call(host, fileName);\n fileExistsCache.set(key, !!newValue);\n return newValue;\n };\n if (originalWriteFile) {\n host.writeFile = (fileName, data, ...rest) => {\n const key = toPath3(fileName);\n fileExistsCache.delete(key);\n const value = readFileCache.get(key);\n if (value !== void 0 && value !== data) {\n readFileCache.delete(key);\n sourceFileCache.forEach((map2) => map2.delete(key));\n } else if (getSourceFileWithCache) {\n sourceFileCache.forEach((map2) => {\n const sourceFile = map2.get(key);\n if (sourceFile && sourceFile.text !== data) {\n map2.delete(key);\n }\n });\n }\n originalWriteFile.call(host, fileName, data, ...rest);\n };\n }\n if (originalDirectoryExists) {\n host.directoryExists = (directory) => {\n const key = toPath3(directory);\n const value = directoryExistsCache.get(key);\n if (value !== void 0) return value;\n const newValue = originalDirectoryExists.call(host, directory);\n directoryExistsCache.set(key, !!newValue);\n return newValue;\n };\n if (originalCreateDirectory) {\n host.createDirectory = (directory) => {\n const key = toPath3(directory);\n directoryExistsCache.delete(key);\n originalCreateDirectory.call(host, directory);\n };\n }\n }\n return {\n originalReadFile,\n originalFileExists,\n originalDirectoryExists,\n originalCreateDirectory,\n originalWriteFile,\n getSourceFileWithCache,\n readFileWithCache\n };\n}\nfunction getPreEmitDiagnostics(program, sourceFile, cancellationToken) {\n let diagnostics;\n diagnostics = addRange(diagnostics, program.getConfigFileParsingDiagnostics());\n diagnostics = addRange(diagnostics, program.getOptionsDiagnostics(cancellationToken));\n diagnostics = addRange(diagnostics, program.getSyntacticDiagnostics(sourceFile, cancellationToken));\n diagnostics = addRange(diagnostics, program.getGlobalDiagnostics(cancellationToken));\n diagnostics = addRange(diagnostics, program.getSemanticDiagnostics(sourceFile, cancellationToken));\n if (getEmitDeclarations(program.getCompilerOptions())) {\n diagnostics = addRange(diagnostics, program.getDeclarationDiagnostics(sourceFile, cancellationToken));\n }\n return sortAndDeduplicateDiagnostics(diagnostics || emptyArray);\n}\nfunction formatDiagnostics(diagnostics, host) {\n let output = \"\";\n for (const diagnostic of diagnostics) {\n output += formatDiagnostic(diagnostic, host);\n }\n return output;\n}\nfunction formatDiagnostic(diagnostic, host) {\n const errorMessage = `${diagnosticCategoryName(diagnostic)} TS${diagnostic.code}: ${flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())}${host.getNewLine()}`;\n if (diagnostic.file) {\n const { line, character } = getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);\n const fileName = diagnostic.file.fileName;\n const relativeFileName = convertToRelativePath(fileName, host.getCurrentDirectory(), (fileName2) => host.getCanonicalFileName(fileName2));\n return `${relativeFileName}(${line + 1},${character + 1}): ` + errorMessage;\n }\n return errorMessage;\n}\nvar ForegroundColorEscapeSequences = /* @__PURE__ */ ((ForegroundColorEscapeSequences2) => {\n ForegroundColorEscapeSequences2[\"Grey\"] = \"\\x1B[90m\";\n ForegroundColorEscapeSequences2[\"Red\"] = \"\\x1B[91m\";\n ForegroundColorEscapeSequences2[\"Yellow\"] = \"\\x1B[93m\";\n ForegroundColorEscapeSequences2[\"Blue\"] = \"\\x1B[94m\";\n ForegroundColorEscapeSequences2[\"Cyan\"] = \"\\x1B[96m\";\n return ForegroundColorEscapeSequences2;\n})(ForegroundColorEscapeSequences || {});\nvar gutterStyleSequence = \"\\x1B[7m\";\nvar gutterSeparator = \" \";\nvar resetEscapeSequence = \"\\x1B[0m\";\nvar ellipsis = \"...\";\nvar halfIndent = \" \";\nvar indent = \" \";\nfunction getCategoryFormat(category) {\n switch (category) {\n case 1 /* Error */:\n return \"\\x1B[91m\" /* Red */;\n case 0 /* Warning */:\n return \"\\x1B[93m\" /* Yellow */;\n case 2 /* Suggestion */:\n return Debug.fail(\"Should never get an Info diagnostic on the command line.\");\n case 3 /* Message */:\n return \"\\x1B[94m\" /* Blue */;\n }\n}\nfunction formatColorAndReset(text, formatStyle) {\n return formatStyle + text + resetEscapeSequence;\n}\nfunction formatCodeSpan(file, start, length2, indent3, squiggleColor, host) {\n const { line: firstLine, character: firstLineChar } = getLineAndCharacterOfPosition(file, start);\n const { line: lastLine, character: lastLineChar } = getLineAndCharacterOfPosition(file, start + length2);\n const lastLineInFile = getLineAndCharacterOfPosition(file, file.text.length).line;\n const hasMoreThanFiveLines = lastLine - firstLine >= 4;\n let gutterWidth = (lastLine + 1 + \"\").length;\n if (hasMoreThanFiveLines) {\n gutterWidth = Math.max(ellipsis.length, gutterWidth);\n }\n let context = \"\";\n for (let i = firstLine; i <= lastLine; i++) {\n context += host.getNewLine();\n if (hasMoreThanFiveLines && firstLine + 1 < i && i < lastLine - 1) {\n context += indent3 + formatColorAndReset(ellipsis.padStart(gutterWidth), gutterStyleSequence) + gutterSeparator + host.getNewLine();\n i = lastLine - 1;\n }\n const lineStart = getPositionOfLineAndCharacter(file, i, 0);\n const lineEnd = i < lastLineInFile ? getPositionOfLineAndCharacter(file, i + 1, 0) : file.text.length;\n let lineContent = file.text.slice(lineStart, lineEnd);\n lineContent = lineContent.trimEnd();\n lineContent = lineContent.replace(/\\t/g, \" \");\n context += indent3 + formatColorAndReset((i + 1 + \"\").padStart(gutterWidth), gutterStyleSequence) + gutterSeparator;\n context += lineContent + host.getNewLine();\n context += indent3 + formatColorAndReset(\"\".padStart(gutterWidth), gutterStyleSequence) + gutterSeparator;\n context += squiggleColor;\n if (i === firstLine) {\n const lastCharForLine = i === lastLine ? lastLineChar : void 0;\n context += lineContent.slice(0, firstLineChar).replace(/\\S/g, \" \");\n context += lineContent.slice(firstLineChar, lastCharForLine).replace(/./g, \"~\");\n } else if (i === lastLine) {\n context += lineContent.slice(0, lastLineChar).replace(/./g, \"~\");\n } else {\n context += lineContent.replace(/./g, \"~\");\n }\n context += resetEscapeSequence;\n }\n return context;\n}\nfunction formatLocation(file, start, host, color = formatColorAndReset) {\n const { line: firstLine, character: firstLineChar } = getLineAndCharacterOfPosition(file, start);\n const relativeFileName = host ? convertToRelativePath(file.fileName, host.getCurrentDirectory(), (fileName) => host.getCanonicalFileName(fileName)) : file.fileName;\n let output = \"\";\n output += color(relativeFileName, \"\\x1B[96m\" /* Cyan */);\n output += \":\";\n output += color(`${firstLine + 1}`, \"\\x1B[93m\" /* Yellow */);\n output += \":\";\n output += color(`${firstLineChar + 1}`, \"\\x1B[93m\" /* Yellow */);\n return output;\n}\nfunction formatDiagnosticsWithColorAndContext(diagnostics, host) {\n let output = \"\";\n for (const diagnostic of diagnostics) {\n if (diagnostic.file) {\n const { file, start } = diagnostic;\n output += formatLocation(file, start, host);\n output += \" - \";\n }\n output += formatColorAndReset(diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));\n output += formatColorAndReset(` TS${diagnostic.code}: `, \"\\x1B[90m\" /* Grey */);\n output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());\n if (diagnostic.file && diagnostic.code !== Diagnostics.File_appears_to_be_binary.code) {\n output += host.getNewLine();\n output += formatCodeSpan(diagnostic.file, diagnostic.start, diagnostic.length, \"\", getCategoryFormat(diagnostic.category), host);\n }\n if (diagnostic.relatedInformation) {\n output += host.getNewLine();\n for (const { file, start, length: length2, messageText } of diagnostic.relatedInformation) {\n if (file) {\n output += host.getNewLine();\n output += halfIndent + formatLocation(file, start, host);\n output += formatCodeSpan(file, start, length2, indent, \"\\x1B[96m\" /* Cyan */, host);\n }\n output += host.getNewLine();\n output += indent + flattenDiagnosticMessageText(messageText, host.getNewLine());\n }\n }\n output += host.getNewLine();\n }\n return output;\n}\nfunction flattenDiagnosticMessageText(diag2, newLine, indent3 = 0) {\n if (isString(diag2)) {\n return diag2;\n } else if (diag2 === void 0) {\n return \"\";\n }\n let result = \"\";\n if (indent3) {\n result += newLine;\n for (let i = 0; i < indent3; i++) {\n result += \" \";\n }\n }\n result += diag2.messageText;\n indent3++;\n if (diag2.next) {\n for (const kid of diag2.next) {\n result += flattenDiagnosticMessageText(kid, newLine, indent3);\n }\n }\n return result;\n}\nfunction getModeForFileReference(ref, containingFileMode) {\n return (isString(ref) ? containingFileMode : ref.resolutionMode) || containingFileMode;\n}\nfunction getModeForResolutionAtIndex(file, index, compilerOptions) {\n return getModeForUsageLocationWorker(file, getModuleNameStringLiteralAt(file, index), compilerOptions);\n}\nfunction isExclusivelyTypeOnlyImportOrExport(decl) {\n var _a;\n if (isExportDeclaration(decl)) {\n return decl.isTypeOnly;\n }\n if ((_a = decl.importClause) == null ? void 0 : _a.isTypeOnly) {\n return true;\n }\n return false;\n}\nfunction getModeForUsageLocation(file, usage, compilerOptions) {\n return getModeForUsageLocationWorker(file, usage, compilerOptions);\n}\nfunction getModeForUsageLocationWorker(file, usage, compilerOptions) {\n if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent) || isJSDocImportTag(usage.parent)) {\n const isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent);\n if (isTypeOnly) {\n const override = getResolutionModeOverride(usage.parent.attributes);\n if (override) {\n return override;\n }\n }\n }\n if (usage.parent.parent && isImportTypeNode(usage.parent.parent)) {\n const override = getResolutionModeOverride(usage.parent.parent.attributes);\n if (override) {\n return override;\n }\n }\n if (compilerOptions && importSyntaxAffectsModuleResolution(compilerOptions)) {\n return getEmitSyntaxForUsageLocationWorker(file, usage, compilerOptions);\n }\n}\nfunction getEmitSyntaxForUsageLocationWorker(file, usage, compilerOptions) {\n var _a;\n if (!compilerOptions) {\n return void 0;\n }\n const exprParentParent = (_a = walkUpParenthesizedExpressions(usage.parent)) == null ? void 0 : _a.parent;\n if (exprParentParent && isImportEqualsDeclaration(exprParentParent) || isRequireCall(\n usage.parent,\n /*requireStringLiteralLikeArgument*/\n false\n )) {\n return 1 /* CommonJS */;\n }\n if (isImportCall(walkUpParenthesizedExpressions(usage.parent))) {\n return shouldTransformImportCallWorker(file, compilerOptions) ? 1 /* CommonJS */ : 99 /* ESNext */;\n }\n const fileEmitMode = getEmitModuleFormatOfFileWorker(file, compilerOptions);\n return fileEmitMode === 1 /* CommonJS */ ? 1 /* CommonJS */ : emitModuleKindIsNonNodeESM(fileEmitMode) || fileEmitMode === 200 /* Preserve */ ? 99 /* ESNext */ : void 0;\n}\nfunction getResolutionModeOverride(node, grammarErrorOnNode) {\n if (!node) return void 0;\n if (length(node.elements) !== 1) {\n grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(\n node,\n node.token === 118 /* WithKeyword */ ? Diagnostics.Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require : Diagnostics.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require\n );\n return void 0;\n }\n const elem = node.elements[0];\n if (!isStringLiteralLike(elem.name)) return void 0;\n if (elem.name.text !== \"resolution-mode\") {\n grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(\n elem.name,\n node.token === 118 /* WithKeyword */ ? Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_attributes : Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_assertions\n );\n return void 0;\n }\n if (!isStringLiteralLike(elem.value)) return void 0;\n if (elem.value.text !== \"import\" && elem.value.text !== \"require\") {\n grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(elem.value, Diagnostics.resolution_mode_should_be_either_require_or_import);\n return void 0;\n }\n return elem.value.text === \"import\" ? 99 /* ESNext */ : 1 /* CommonJS */;\n}\nvar emptyResolution = {\n resolvedModule: void 0,\n resolvedTypeReferenceDirective: void 0\n};\nfunction getModuleResolutionName(literal) {\n return literal.text;\n}\nvar moduleResolutionNameAndModeGetter = {\n getName: getModuleResolutionName,\n getMode: (entry, file, compilerOptions) => getModeForUsageLocation(file, entry, compilerOptions)\n};\nfunction createModuleResolutionLoader(containingFile, redirectedReference, options, host, cache) {\n return {\n nameAndMode: moduleResolutionNameAndModeGetter,\n resolve: (moduleName, resolutionMode) => resolveModuleName(\n moduleName,\n containingFile,\n options,\n host,\n cache,\n redirectedReference,\n resolutionMode\n )\n };\n}\nfunction getTypeReferenceResolutionName(entry) {\n return !isString(entry) ? entry.fileName : entry;\n}\nvar typeReferenceResolutionNameAndModeGetter = {\n getName: getTypeReferenceResolutionName,\n getMode: (entry, file, compilerOptions) => getModeForFileReference(entry, file && getDefaultResolutionModeForFileWorker(file, compilerOptions))\n};\nfunction createTypeReferenceResolutionLoader(containingFile, redirectedReference, options, host, cache) {\n return {\n nameAndMode: typeReferenceResolutionNameAndModeGetter,\n resolve: (typeRef, resoluionMode) => resolveTypeReferenceDirective(\n typeRef,\n containingFile,\n options,\n host,\n redirectedReference,\n cache,\n resoluionMode\n )\n };\n}\nfunction loadWithModeAwareCache(entries, containingFile, redirectedReference, options, containingSourceFile, host, resolutionCache, createLoader) {\n if (entries.length === 0) return emptyArray;\n const resolutions = [];\n const cache = /* @__PURE__ */ new Map();\n const loader = createLoader(containingFile, redirectedReference, options, host, resolutionCache);\n for (const entry of entries) {\n const name = loader.nameAndMode.getName(entry);\n const mode = loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options);\n const key = createModeAwareCacheKey(name, mode);\n let result = cache.get(key);\n if (!result) {\n cache.set(key, result = loader.resolve(name, mode));\n }\n resolutions.push(result);\n }\n return resolutions;\n}\nvar inferredTypesContainingFile = \"__inferred type names__.ts\";\nfunction getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName) {\n const containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory;\n return combinePaths(containingDirectory, `__lib_node_modules_lookup_${libFileName}__.ts`);\n}\nfunction getLibraryNameFromLibFileName(libFileName) {\n const components = libFileName.split(\".\");\n let path = components[1];\n let i = 2;\n while (components[i] && components[i] !== \"d\") {\n path += (i === 2 ? \"/\" : \"-\") + components[i];\n i++;\n }\n return \"@typescript/lib-\" + path;\n}\nfunction isReferencedFile(reason) {\n switch (reason == null ? void 0 : reason.kind) {\n case 3 /* Import */:\n case 4 /* ReferenceFile */:\n case 5 /* TypeReferenceDirective */:\n case 7 /* LibReferenceDirective */:\n return true;\n default:\n return false;\n }\n}\nfunction isReferenceFileLocation(location) {\n return location.pos !== void 0;\n}\nfunction getReferencedFileLocation(program, ref) {\n var _a, _b, _c, _d;\n const file = Debug.checkDefined(program.getSourceFileByPath(ref.file));\n const { kind, index } = ref;\n let pos, end, packageId;\n switch (kind) {\n case 3 /* Import */:\n const importLiteral = getModuleNameStringLiteralAt(file, index);\n packageId = (_b = (_a = program.getResolvedModuleFromModuleSpecifier(importLiteral, file)) == null ? void 0 : _a.resolvedModule) == null ? void 0 : _b.packageId;\n if (importLiteral.pos === -1) return { file, packageId, text: importLiteral.text };\n pos = skipTrivia(file.text, importLiteral.pos);\n end = importLiteral.end;\n break;\n case 4 /* ReferenceFile */:\n ({ pos, end } = file.referencedFiles[index]);\n break;\n case 5 /* TypeReferenceDirective */:\n ({ pos, end } = file.typeReferenceDirectives[index]);\n packageId = (_d = (_c = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(file.typeReferenceDirectives[index], file)) == null ? void 0 : _c.resolvedTypeReferenceDirective) == null ? void 0 : _d.packageId;\n break;\n case 7 /* LibReferenceDirective */:\n ({ pos, end } = file.libReferenceDirectives[index]);\n break;\n default:\n return Debug.assertNever(kind);\n }\n return { file, pos, end, packageId };\n}\nfunction isProgramUptoDate(program, rootFileNames, newOptions, getSourceVersion, fileExists, hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences) {\n if (!program || (hasChangedAutomaticTypeDirectiveNames == null ? void 0 : hasChangedAutomaticTypeDirectiveNames())) return false;\n if (!arrayIsEqualTo(program.getRootFileNames(), rootFileNames)) return false;\n let seenResolvedRefs;\n if (!arrayIsEqualTo(program.getProjectReferences(), projectReferences, projectReferenceUptoDate)) return false;\n if (program.getSourceFiles().some(sourceFileNotUptoDate)) return false;\n const missingPaths = program.getMissingFilePaths();\n if (missingPaths && forEachEntry(missingPaths, fileExists)) return false;\n const currentOptions = program.getCompilerOptions();\n if (!compareDataObjects(currentOptions, newOptions)) return false;\n if (program.resolvedLibReferences && forEachEntry(program.resolvedLibReferences, (_value, libFileName) => hasInvalidatedLibResolutions(libFileName))) return false;\n if (currentOptions.configFile && newOptions.configFile) return currentOptions.configFile.text === newOptions.configFile.text;\n return true;\n function sourceFileNotUptoDate(sourceFile) {\n return !sourceFileVersionUptoDate(sourceFile) || hasInvalidatedResolutions(sourceFile.path);\n }\n function sourceFileVersionUptoDate(sourceFile) {\n return sourceFile.version === getSourceVersion(sourceFile.resolvedPath, sourceFile.fileName);\n }\n function projectReferenceUptoDate(oldRef, newRef, index) {\n return projectReferenceIsEqualTo(oldRef, newRef) && resolvedProjectReferenceUptoDate(program.getResolvedProjectReferences()[index], oldRef);\n }\n function resolvedProjectReferenceUptoDate(oldResolvedRef, oldRef) {\n if (oldResolvedRef) {\n if (contains(seenResolvedRefs, oldResolvedRef)) return true;\n const refPath2 = resolveProjectReferencePath(oldRef);\n const newParsedCommandLine = getParsedCommandLine(refPath2);\n if (!newParsedCommandLine) return false;\n if (oldResolvedRef.commandLine.options.configFile !== newParsedCommandLine.options.configFile) return false;\n if (!arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newParsedCommandLine.fileNames)) return false;\n (seenResolvedRefs || (seenResolvedRefs = [])).push(oldResolvedRef);\n return !forEach(\n oldResolvedRef.references,\n (childResolvedRef, index) => !resolvedProjectReferenceUptoDate(\n childResolvedRef,\n oldResolvedRef.commandLine.projectReferences[index]\n )\n );\n }\n const refPath = resolveProjectReferencePath(oldRef);\n return !getParsedCommandLine(refPath);\n }\n}\nfunction getConfigFileParsingDiagnostics(configFileParseResult) {\n return configFileParseResult.options.configFile ? [...configFileParseResult.options.configFile.parseDiagnostics, ...configFileParseResult.errors] : configFileParseResult.errors;\n}\nfunction getImpliedNodeFormatForFile(fileName, packageJsonInfoCache, host, options) {\n const result = getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options);\n return typeof result === \"object\" ? result.impliedNodeFormat : result;\n}\nfunction getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options) {\n const moduleResolution = getEmitModuleResolutionKind(options);\n const shouldLookupFromPackageJson = 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */ || pathContainsNodeModules(fileName);\n return fileExtensionIsOneOf(fileName, [\".d.mts\" /* Dmts */, \".mts\" /* Mts */, \".mjs\" /* Mjs */]) ? 99 /* ESNext */ : fileExtensionIsOneOf(fileName, [\".d.cts\" /* Dcts */, \".cts\" /* Cts */, \".cjs\" /* Cjs */]) ? 1 /* CommonJS */ : shouldLookupFromPackageJson && fileExtensionIsOneOf(fileName, [\".d.ts\" /* Dts */, \".ts\" /* Ts */, \".tsx\" /* Tsx */, \".js\" /* Js */, \".jsx\" /* Jsx */]) ? lookupFromPackageJson() : void 0;\n function lookupFromPackageJson() {\n const state = getTemporaryModuleResolutionState(packageJsonInfoCache, host, options);\n const packageJsonLocations = [];\n state.failedLookupLocations = packageJsonLocations;\n state.affectingLocations = packageJsonLocations;\n const packageJsonScope = getPackageScopeForPath(getDirectoryPath(fileName), state);\n const impliedNodeFormat = (packageJsonScope == null ? void 0 : packageJsonScope.contents.packageJsonContent.type) === \"module\" ? 99 /* ESNext */ : 1 /* CommonJS */;\n return { impliedNodeFormat, packageJsonLocations, packageJsonScope };\n }\n}\nvar plainJSErrors = /* @__PURE__ */ new Set([\n // binder errors\n Diagnostics.Cannot_redeclare_block_scoped_variable_0.code,\n Diagnostics.A_module_cannot_have_multiple_default_exports.code,\n Diagnostics.Another_export_default_is_here.code,\n Diagnostics.The_first_export_default_is_here.code,\n Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code,\n Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code,\n Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code,\n Diagnostics.constructor_is_a_reserved_word.code,\n Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode.code,\n Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code,\n Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code,\n Diagnostics.Invalid_use_of_0_in_strict_mode.code,\n Diagnostics.A_label_is_not_allowed_here.code,\n Diagnostics.with_statements_are_not_allowed_in_strict_mode.code,\n // grammar errors\n Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code,\n Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code,\n Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name.code,\n Diagnostics.A_class_member_cannot_have_the_0_keyword.code,\n Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name.code,\n Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code,\n Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,\n Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,\n Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code,\n Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code,\n Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context.code,\n Diagnostics.A_destructuring_declaration_must_have_an_initializer.code,\n Diagnostics.A_get_accessor_cannot_have_parameters.code,\n Diagnostics.A_rest_element_cannot_contain_a_binding_pattern.code,\n Diagnostics.A_rest_element_cannot_have_a_property_name.code,\n Diagnostics.A_rest_element_cannot_have_an_initializer.code,\n Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern.code,\n Diagnostics.A_rest_parameter_cannot_have_an_initializer.code,\n Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list.code,\n Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code,\n Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.code,\n Diagnostics.A_set_accessor_cannot_have_rest_parameter.code,\n Diagnostics.A_set_accessor_must_have_exactly_one_parameter.code,\n Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code,\n Diagnostics.An_export_declaration_cannot_have_modifiers.code,\n Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code,\n Diagnostics.An_import_declaration_cannot_have_modifiers.code,\n Diagnostics.An_object_member_cannot_be_declared_optional.code,\n Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element.code,\n Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code,\n Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause.code,\n Diagnostics.Catch_clause_variable_cannot_have_an_initializer.code,\n Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code,\n Diagnostics.Classes_can_only_extend_a_single_class.code,\n Diagnostics.Classes_may_not_have_a_field_named_constructor.code,\n Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code,\n Diagnostics.Duplicate_label_0.code,\n Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments.code,\n Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block.code,\n Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code,\n Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code,\n Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code,\n Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code,\n Diagnostics.Jump_target_cannot_cross_function_boundary.code,\n Diagnostics.Line_terminator_not_permitted_before_arrow.code,\n Diagnostics.Modifiers_cannot_appear_here.code,\n Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code,\n Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code,\n Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies.code,\n Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,\n Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code,\n Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code,\n Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code,\n Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code,\n Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code,\n Diagnostics.Trailing_comma_not_allowed.code,\n Diagnostics.Variable_declaration_list_cannot_be_empty.code,\n Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses.code,\n Diagnostics._0_expected.code,\n Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code,\n Diagnostics._0_list_cannot_be_empty.code,\n Diagnostics._0_modifier_already_seen.code,\n Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration.code,\n Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element.code,\n Diagnostics._0_modifier_cannot_appear_on_a_parameter.code,\n Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind.code,\n Diagnostics._0_modifier_cannot_be_used_here.code,\n Diagnostics._0_modifier_must_precede_1_modifier.code,\n Diagnostics._0_declarations_can_only_be_declared_inside_a_block.code,\n Diagnostics._0_declarations_must_be_initialized.code,\n Diagnostics.extends_clause_already_seen.code,\n Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code,\n Diagnostics.Class_constructor_may_not_be_a_generator.code,\n Diagnostics.Class_constructor_may_not_be_an_accessor.code,\n Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class.code,\n // Type errors\n Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value.code\n]);\nfunction shouldProgramCreateNewSourceFiles(program, newOptions) {\n if (!program) return false;\n return optionsHaveChanges(program.getCompilerOptions(), newOptions, sourceFileAffectingCompilerOptions);\n}\nfunction createCreateProgramOptions(rootNames, options, host, oldProgram, configFileParsingDiagnostics, typeScriptVersion3) {\n return {\n rootNames,\n options,\n host,\n oldProgram,\n configFileParsingDiagnostics,\n typeScriptVersion: typeScriptVersion3\n };\n}\nfunction createProgram(_rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n let _createProgramOptions = isArray(_rootNamesOrOptions) ? createCreateProgramOptions(_rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) : _rootNamesOrOptions;\n const { rootNames, options, configFileParsingDiagnostics, projectReferences, typeScriptVersion: typeScriptVersion3, host: createProgramOptionsHost } = _createProgramOptions;\n let { oldProgram } = _createProgramOptions;\n _createProgramOptions = void 0;\n _rootNamesOrOptions = void 0;\n for (const option of commandLineOptionOfCustomType) {\n if (hasProperty(options, option.name)) {\n if (typeof options[option.name] === \"string\") {\n throw new Error(`${option.name} is a string value; tsconfig JSON must be parsed with parseJsonSourceFileConfigFileContent or getParsedCommandLineOfConfigFile before passing to createProgram`);\n }\n }\n }\n const reportInvalidIgnoreDeprecations = memoize(() => createOptionValueDiagnostic(\"ignoreDeprecations\", Diagnostics.Invalid_value_for_ignoreDeprecations));\n let processingDefaultLibFiles;\n let processingOtherFiles;\n let files;\n let symlinks;\n let typeChecker;\n let classifiableNames;\n let filesWithReferencesProcessed;\n let cachedBindAndCheckDiagnosticsForFile;\n let cachedDeclarationDiagnosticsForFile;\n const programDiagnostics = createProgramDiagnostics(getCompilerOptionsObjectLiteralSyntax);\n let automaticTypeDirectiveNames;\n let automaticTypeDirectiveResolutions;\n let resolvedLibReferences;\n let resolvedLibProcessing;\n let resolvedModules;\n let resolvedModulesProcessing;\n let resolvedTypeReferenceDirectiveNames;\n let resolvedTypeReferenceDirectiveNamesProcessing;\n let packageMap;\n const maxNodeModuleJsDepth = typeof options.maxNodeModuleJsDepth === \"number\" ? options.maxNodeModuleJsDepth : 0;\n let currentNodeModulesDepth = 0;\n const modulesWithElidedImports = /* @__PURE__ */ new Map();\n const sourceFilesFoundSearchingNodeModules = /* @__PURE__ */ new Map();\n (_a = tracing) == null ? void 0 : _a.push(\n tracing.Phase.Program,\n \"createProgram\",\n { configFilePath: options.configFilePath, rootDir: options.rootDir },\n /*separateBeginAndEnd*/\n true\n );\n mark(\"beforeProgram\");\n const host = createProgramOptionsHost || createCompilerHost(options);\n const configParsingHost = parseConfigHostFromCompilerHostLike(host);\n let skipDefaultLib = options.noLib;\n const getDefaultLibraryFileName = memoize(() => host.getDefaultLibFileName(options));\n const defaultLibraryPath = host.getDefaultLibLocation ? host.getDefaultLibLocation() : getDirectoryPath(getDefaultLibraryFileName());\n let skipVerifyCompilerOptions = false;\n const currentDirectory = host.getCurrentDirectory();\n const supportedExtensions = getSupportedExtensions(options);\n const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);\n const hasEmitBlockingDiagnostics = /* @__PURE__ */ new Map();\n let _compilerOptionsObjectLiteralSyntax;\n let _compilerOptionsPropertySyntax;\n let moduleResolutionCache;\n let actualResolveModuleNamesWorker;\n const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;\n if (host.resolveModuleNameLiterals) {\n actualResolveModuleNamesWorker = host.resolveModuleNameLiterals.bind(host);\n moduleResolutionCache = (_b = host.getModuleResolutionCache) == null ? void 0 : _b.call(host);\n } else if (host.resolveModuleNames) {\n actualResolveModuleNamesWorker = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile, reusedNames) => host.resolveModuleNames(\n moduleNames.map(getModuleResolutionName),\n containingFile,\n reusedNames == null ? void 0 : reusedNames.map(getModuleResolutionName),\n redirectedReference,\n options2,\n containingSourceFile\n ).map(\n (resolved) => resolved ? resolved.extension !== void 0 ? { resolvedModule: resolved } : (\n // An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName.\n { resolvedModule: { ...resolved, extension: extensionFromPath(resolved.resolvedFileName) } }\n ) : emptyResolution\n );\n moduleResolutionCache = (_c = host.getModuleResolutionCache) == null ? void 0 : _c.call(host);\n } else {\n moduleResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options);\n actualResolveModuleNamesWorker = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n moduleNames,\n containingFile,\n redirectedReference,\n options2,\n containingSourceFile,\n host,\n moduleResolutionCache,\n createModuleResolutionLoader\n );\n }\n let actualResolveTypeReferenceDirectiveNamesWorker;\n if (host.resolveTypeReferenceDirectiveReferences) {\n actualResolveTypeReferenceDirectiveNamesWorker = host.resolveTypeReferenceDirectiveReferences.bind(host);\n } else if (host.resolveTypeReferenceDirectives) {\n actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => host.resolveTypeReferenceDirectives(\n typeDirectiveNames.map(getTypeReferenceResolutionName),\n containingFile,\n redirectedReference,\n options2,\n containingSourceFile == null ? void 0 : containingSourceFile.impliedNodeFormat\n ).map((resolvedTypeReferenceDirective) => ({ resolvedTypeReferenceDirective }));\n } else {\n const typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n currentDirectory,\n getCanonicalFileName,\n /*options*/\n void 0,\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache(),\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.optionsToRedirectsKey\n );\n actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n typeDirectiveNames,\n containingFile,\n redirectedReference,\n options2,\n containingSourceFile,\n host,\n typeReferenceDirectiveResolutionCache,\n createTypeReferenceResolutionLoader\n );\n }\n const hasInvalidatedLibResolutions = host.hasInvalidatedLibResolutions || returnFalse;\n let actualResolveLibrary;\n if (host.resolveLibrary) {\n actualResolveLibrary = host.resolveLibrary.bind(host);\n } else {\n const libraryResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache());\n actualResolveLibrary = (libraryName, resolveFrom, options2) => resolveLibrary(libraryName, resolveFrom, options2, host, libraryResolutionCache);\n }\n const packageIdToSourceFile = /* @__PURE__ */ new Map();\n let sourceFileToPackageName = /* @__PURE__ */ new Map();\n let redirectTargetsMap = createMultiMap();\n let usesUriStyleNodeCoreModules;\n const filesByName = /* @__PURE__ */ new Map();\n let missingFileNames = /* @__PURE__ */ new Map();\n const filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map() : void 0;\n let resolvedProjectReferences;\n let projectReferenceRedirects;\n let mapSourceFileToResolvedRef;\n let mapOutputFileToResolvedRef;\n const useSourceOfProjectReferenceRedirect = !!((_d = host.useSourceOfProjectReferenceRedirect) == null ? void 0 : _d.call(host)) && !options.disableSourceOfProjectReferenceRedirect;\n const { onProgramCreateComplete, fileExists, directoryExists } = updateHostForUseSourceOfProjectReferenceRedirect({\n compilerHost: host,\n getSymlinkCache,\n useSourceOfProjectReferenceRedirect,\n toPath: toPath3,\n getResolvedProjectReferences,\n getRedirectFromOutput,\n forEachResolvedProjectReference: forEachResolvedProjectReference2\n });\n const readFile = host.readFile.bind(host);\n (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Program, \"shouldProgramCreateNewSourceFiles\", { hasOldProgram: !!oldProgram });\n const shouldCreateNewSourceFile = shouldProgramCreateNewSourceFiles(oldProgram, options);\n (_f = tracing) == null ? void 0 : _f.pop();\n let structureIsReused;\n (_g = tracing) == null ? void 0 : _g.push(tracing.Phase.Program, \"tryReuseStructureFromOldProgram\", {});\n structureIsReused = tryReuseStructureFromOldProgram();\n (_h = tracing) == null ? void 0 : _h.pop();\n if (structureIsReused !== 2 /* Completely */) {\n processingDefaultLibFiles = [];\n processingOtherFiles = [];\n if (projectReferences) {\n if (!resolvedProjectReferences) {\n resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile);\n }\n if (rootNames.length) {\n resolvedProjectReferences == null ? void 0 : resolvedProjectReferences.forEach((parsedRef, index) => {\n if (!parsedRef) return;\n const out = parsedRef.commandLine.options.outFile;\n if (useSourceOfProjectReferenceRedirect) {\n if (out || getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) {\n for (const fileName of parsedRef.commandLine.fileNames) {\n processProjectReferenceFile(fileName, { kind: 1 /* SourceFromProjectReference */, index });\n }\n }\n } else {\n if (out) {\n processProjectReferenceFile(changeExtension(out, \".d.ts\"), { kind: 2 /* OutputFromProjectReference */, index });\n } else if (getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) {\n const getCommonSourceDirectory3 = memoize(() => getCommonSourceDirectoryOfConfig(parsedRef.commandLine, !host.useCaseSensitiveFileNames()));\n for (const fileName of parsedRef.commandLine.fileNames) {\n if (!isDeclarationFileName(fileName) && !fileExtensionIs(fileName, \".json\" /* Json */)) {\n processProjectReferenceFile(getOutputDeclarationFileName(fileName, parsedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3), { kind: 2 /* OutputFromProjectReference */, index });\n }\n }\n }\n }\n });\n }\n }\n (_i = tracing) == null ? void 0 : _i.push(tracing.Phase.Program, \"processRootFiles\", { count: rootNames.length });\n forEach(rootNames, (name, index) => processRootFile(\n name,\n /*isDefaultLib*/\n false,\n /*ignoreNoDefaultLib*/\n false,\n { kind: 0 /* RootFile */, index }\n ));\n (_j = tracing) == null ? void 0 : _j.pop();\n automaticTypeDirectiveNames ?? (automaticTypeDirectiveNames = rootNames.length ? getAutomaticTypeDirectiveNames(options, host) : emptyArray);\n automaticTypeDirectiveResolutions = createModeAwareCache();\n if (automaticTypeDirectiveNames.length) {\n (_k = tracing) == null ? void 0 : _k.push(tracing.Phase.Program, \"processTypeReferences\", { count: automaticTypeDirectiveNames.length });\n const containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory;\n const containingFilename = combinePaths(containingDirectory, inferredTypesContainingFile);\n const resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(automaticTypeDirectiveNames, containingFilename);\n for (let i = 0; i < automaticTypeDirectiveNames.length; i++) {\n automaticTypeDirectiveResolutions.set(\n automaticTypeDirectiveNames[i],\n /*mode*/\n void 0,\n resolutions[i]\n );\n processTypeReferenceDirective(\n automaticTypeDirectiveNames[i],\n /*mode*/\n void 0,\n resolutions[i],\n {\n kind: 8 /* AutomaticTypeDirectiveFile */,\n typeReference: automaticTypeDirectiveNames[i],\n packageId: (_m = (_l = resolutions[i]) == null ? void 0 : _l.resolvedTypeReferenceDirective) == null ? void 0 : _m.packageId\n }\n );\n }\n (_n = tracing) == null ? void 0 : _n.pop();\n }\n if (rootNames.length && !skipDefaultLib) {\n const defaultLibraryFileName = getDefaultLibraryFileName();\n if (!options.lib && defaultLibraryFileName) {\n processRootFile(\n defaultLibraryFileName,\n /*isDefaultLib*/\n true,\n /*ignoreNoDefaultLib*/\n false,\n { kind: 6 /* LibFile */ }\n );\n } else {\n forEach(options.lib, (libFileName, index) => {\n processRootFile(\n pathForLibFile(libFileName),\n /*isDefaultLib*/\n true,\n /*ignoreNoDefaultLib*/\n false,\n { kind: 6 /* LibFile */, index }\n );\n });\n }\n }\n files = toSorted(processingDefaultLibFiles, compareDefaultLibFiles).concat(processingOtherFiles);\n processingDefaultLibFiles = void 0;\n processingOtherFiles = void 0;\n filesWithReferencesProcessed = void 0;\n }\n if (oldProgram && host.onReleaseOldSourceFile) {\n const oldSourceFiles = oldProgram.getSourceFiles();\n for (const oldSourceFile of oldSourceFiles) {\n const newFile = getSourceFileByPath(oldSourceFile.resolvedPath);\n if (shouldCreateNewSourceFile || !newFile || newFile.impliedNodeFormat !== oldSourceFile.impliedNodeFormat || // old file wasn't redirect but new file is\n oldSourceFile.resolvedPath === oldSourceFile.path && newFile.resolvedPath !== oldSourceFile.path) {\n host.onReleaseOldSourceFile(oldSourceFile, oldProgram.getCompilerOptions(), !!getSourceFileByPath(oldSourceFile.path), newFile);\n }\n }\n if (!host.getParsedCommandLine) {\n oldProgram.forEachResolvedProjectReference((resolvedProjectReference) => {\n if (!getResolvedProjectReferenceByPath(resolvedProjectReference.sourceFile.path)) {\n host.onReleaseOldSourceFile(\n resolvedProjectReference.sourceFile,\n oldProgram.getCompilerOptions(),\n /*hasSourceFileByPath*/\n false,\n /*newSourceFileByResolvedPath*/\n void 0\n );\n }\n });\n }\n }\n if (oldProgram && host.onReleaseParsedCommandLine) {\n forEachProjectReference(\n oldProgram.getProjectReferences(),\n oldProgram.getResolvedProjectReferences(),\n (oldResolvedRef, parent2, index) => {\n const oldReference = (parent2 == null ? void 0 : parent2.commandLine.projectReferences[index]) || oldProgram.getProjectReferences()[index];\n const oldRefPath = resolveProjectReferencePath(oldReference);\n if (!(projectReferenceRedirects == null ? void 0 : projectReferenceRedirects.has(toPath3(oldRefPath)))) {\n host.onReleaseParsedCommandLine(oldRefPath, oldResolvedRef, oldProgram.getCompilerOptions());\n }\n }\n );\n }\n oldProgram = void 0;\n resolvedLibProcessing = void 0;\n resolvedModulesProcessing = void 0;\n resolvedTypeReferenceDirectiveNamesProcessing = void 0;\n const program = {\n getRootFileNames: () => rootNames,\n getSourceFile,\n getSourceFileByPath,\n getSourceFiles: () => files,\n getMissingFilePaths: () => missingFileNames,\n getModuleResolutionCache: () => moduleResolutionCache,\n getFilesByNameMap: () => filesByName,\n getCompilerOptions: () => options,\n getSyntacticDiagnostics,\n getOptionsDiagnostics,\n getGlobalDiagnostics,\n getSemanticDiagnostics,\n getCachedSemanticDiagnostics,\n getSuggestionDiagnostics,\n getDeclarationDiagnostics: getDeclarationDiagnostics2,\n getBindAndCheckDiagnostics,\n getProgramDiagnostics,\n getTypeChecker,\n getClassifiableNames,\n getCommonSourceDirectory: getCommonSourceDirectory2,\n emit,\n getCurrentDirectory: () => currentDirectory,\n getNodeCount: () => getTypeChecker().getNodeCount(),\n getIdentifierCount: () => getTypeChecker().getIdentifierCount(),\n getSymbolCount: () => getTypeChecker().getSymbolCount(),\n getTypeCount: () => getTypeChecker().getTypeCount(),\n getInstantiationCount: () => getTypeChecker().getInstantiationCount(),\n getRelationCacheSizes: () => getTypeChecker().getRelationCacheSizes(),\n getFileProcessingDiagnostics: () => programDiagnostics.getFileProcessingDiagnostics(),\n getAutomaticTypeDirectiveNames: () => automaticTypeDirectiveNames,\n getAutomaticTypeDirectiveResolutions: () => automaticTypeDirectiveResolutions,\n isSourceFileFromExternalLibrary,\n isSourceFileDefaultLibrary,\n getModeForUsageLocation: getModeForUsageLocation2,\n getEmitSyntaxForUsageLocation,\n getModeForResolutionAtIndex: getModeForResolutionAtIndex2,\n getSourceFileFromReference,\n getLibFileFromReference,\n sourceFileToPackageName,\n redirectTargetsMap,\n usesUriStyleNodeCoreModules,\n resolvedModules,\n resolvedTypeReferenceDirectiveNames,\n resolvedLibReferences,\n getProgramDiagnosticsContainer: () => programDiagnostics,\n getResolvedModule,\n getResolvedModuleFromModuleSpecifier,\n getResolvedTypeReferenceDirective,\n getResolvedTypeReferenceDirectiveFromTypeReferenceDirective,\n forEachResolvedModule,\n forEachResolvedTypeReferenceDirective,\n getCurrentPackagesMap: () => packageMap,\n typesPackageExists,\n packageBundlesTypes,\n isEmittedFile,\n getConfigFileParsingDiagnostics: getConfigFileParsingDiagnostics2,\n getProjectReferences,\n getResolvedProjectReferences,\n getRedirectFromSourceFile,\n getResolvedProjectReferenceByPath,\n forEachResolvedProjectReference: forEachResolvedProjectReference2,\n isSourceOfProjectReferenceRedirect,\n getRedirectFromOutput,\n getCompilerOptionsForFile,\n getDefaultResolutionModeForFile: getDefaultResolutionModeForFile2,\n getEmitModuleFormatOfFile: getEmitModuleFormatOfFile2,\n getImpliedNodeFormatForEmit: getImpliedNodeFormatForEmit2,\n shouldTransformImportCall,\n emitBuildInfo,\n fileExists,\n readFile,\n directoryExists,\n getSymlinkCache,\n realpath: (_o = host.realpath) == null ? void 0 : _o.bind(host),\n useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n getCanonicalFileName,\n getFileIncludeReasons: () => programDiagnostics.getFileReasons(),\n structureIsReused,\n writeFile: writeFile2,\n getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n };\n onProgramCreateComplete();\n if (!skipVerifyCompilerOptions) {\n verifyCompilerOptions();\n }\n mark(\"afterProgram\");\n measure(\"Program\", \"beforeProgram\", \"afterProgram\");\n (_p = tracing) == null ? void 0 : _p.pop();\n return program;\n function getResolvedModule(file, moduleName, mode) {\n var _a2;\n return (_a2 = resolvedModules == null ? void 0 : resolvedModules.get(file.path)) == null ? void 0 : _a2.get(moduleName, mode);\n }\n function getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile) {\n sourceFile ?? (sourceFile = getSourceFileOfNode(moduleSpecifier));\n Debug.assertIsDefined(sourceFile, \"`moduleSpecifier` must have a `SourceFile` ancestor. Use `program.getResolvedModule` instead to provide the containing file and resolution mode.\");\n return getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation2(sourceFile, moduleSpecifier));\n }\n function getResolvedTypeReferenceDirective(file, typeDirectiveName, mode) {\n var _a2;\n return (_a2 = resolvedTypeReferenceDirectiveNames == null ? void 0 : resolvedTypeReferenceDirectiveNames.get(file.path)) == null ? void 0 : _a2.get(typeDirectiveName, mode);\n }\n function getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeRef, sourceFile) {\n return getResolvedTypeReferenceDirective(\n sourceFile,\n typeRef.fileName,\n getModeForTypeReferenceDirectiveInFile(typeRef, sourceFile)\n );\n }\n function forEachResolvedModule(callback, file) {\n forEachResolution(resolvedModules, callback, file);\n }\n function forEachResolvedTypeReferenceDirective(callback, file) {\n forEachResolution(resolvedTypeReferenceDirectiveNames, callback, file);\n }\n function forEachResolution(resolutionCache, callback, file) {\n var _a2;\n if (file) (_a2 = resolutionCache == null ? void 0 : resolutionCache.get(file.path)) == null ? void 0 : _a2.forEach((resolution, name, mode) => callback(resolution, name, mode, file.path));\n else resolutionCache == null ? void 0 : resolutionCache.forEach((resolutions, filePath) => resolutions.forEach((resolution, name, mode) => callback(resolution, name, mode, filePath)));\n }\n function getPackagesMap() {\n if (packageMap) return packageMap;\n packageMap = /* @__PURE__ */ new Map();\n forEachResolvedModule(({ resolvedModule }) => {\n if (resolvedModule == null ? void 0 : resolvedModule.packageId) packageMap.set(resolvedModule.packageId.name, resolvedModule.extension === \".d.ts\" /* Dts */ || !!packageMap.get(resolvedModule.packageId.name));\n });\n return packageMap;\n }\n function typesPackageExists(packageName) {\n return getPackagesMap().has(getTypesPackageName(packageName));\n }\n function packageBundlesTypes(packageName) {\n return !!getPackagesMap().get(packageName);\n }\n function addResolutionDiagnostics(resolution) {\n var _a2;\n if (!((_a2 = resolution.resolutionDiagnostics) == null ? void 0 : _a2.length)) return;\n programDiagnostics.addFileProcessingDiagnostic({\n kind: 2 /* ResolutionDiagnostics */,\n diagnostics: resolution.resolutionDiagnostics\n });\n }\n function addResolutionDiagnosticsFromResolutionOrCache(containingFile, name, resolution, mode) {\n if (host.resolveModuleNameLiterals || !host.resolveModuleNames) return addResolutionDiagnostics(resolution);\n if (!moduleResolutionCache || isExternalModuleNameRelative(name)) return;\n const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory);\n const containingDir = getDirectoryPath(containingFileName);\n const redirectedReference = getRedirectReferenceForResolution(containingFile);\n const fromCache = moduleResolutionCache.getFromNonRelativeNameCache(name, mode, containingDir, redirectedReference);\n if (fromCache) addResolutionDiagnostics(fromCache);\n }\n function resolveModuleNamesWorker(moduleNames, containingFile, reusedNames) {\n var _a2, _b2;\n const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory);\n const redirectedReference = getRedirectReferenceForResolution(containingFile);\n (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"resolveModuleNamesWorker\", { containingFileName });\n mark(\"beforeResolveModule\");\n const result = actualResolveModuleNamesWorker(\n moduleNames,\n containingFileName,\n redirectedReference,\n options,\n containingFile,\n reusedNames\n );\n mark(\"afterResolveModule\");\n measure(\"ResolveModule\", \"beforeResolveModule\", \"afterResolveModule\");\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n return result;\n }\n function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, reusedNames) {\n var _a2, _b2;\n const containingSourceFile = !isString(containingFile) ? containingFile : void 0;\n const containingFileName = !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile;\n const redirectedReference = containingSourceFile && getRedirectReferenceForResolution(containingSourceFile);\n (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"resolveTypeReferenceDirectiveNamesWorker\", { containingFileName });\n mark(\"beforeResolveTypeReference\");\n const result = actualResolveTypeReferenceDirectiveNamesWorker(\n typeDirectiveNames,\n containingFileName,\n redirectedReference,\n options,\n containingSourceFile,\n reusedNames\n );\n mark(\"afterResolveTypeReference\");\n measure(\"ResolveTypeReference\", \"beforeResolveTypeReference\", \"afterResolveTypeReference\");\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n return result;\n }\n function getRedirectReferenceForResolution(file) {\n var _a2, _b2;\n const redirect = getRedirectFromSourceFile(file.originalFileName);\n if (redirect || !isDeclarationFileName(file.originalFileName)) return redirect == null ? void 0 : redirect.resolvedRef;\n const resultFromDts = (_a2 = getRedirectFromOutput(file.path)) == null ? void 0 : _a2.resolvedRef;\n if (resultFromDts) return resultFromDts;\n if (!host.realpath || !options.preserveSymlinks || !file.originalFileName.includes(nodeModulesPathPart)) return void 0;\n const realDeclarationPath = toPath3(host.realpath(file.originalFileName));\n return realDeclarationPath === file.path ? void 0 : (_b2 = getRedirectFromOutput(realDeclarationPath)) == null ? void 0 : _b2.resolvedRef;\n }\n function compareDefaultLibFiles(a, b) {\n return compareValues(getDefaultLibFilePriority(a), getDefaultLibFilePriority(b));\n }\n function getDefaultLibFilePriority(a) {\n if (containsPath(\n defaultLibraryPath,\n a.fileName,\n /*ignoreCase*/\n false\n )) {\n const basename = getBaseFileName(a.fileName);\n if (basename === \"lib.d.ts\" || basename === \"lib.es6.d.ts\") return 0;\n const name = removeSuffix(removePrefix(basename, \"lib.\"), \".d.ts\");\n const index = libs.indexOf(name);\n if (index !== -1) return index + 1;\n }\n return libs.length + 2;\n }\n function toPath3(fileName) {\n return toPath(fileName, currentDirectory, getCanonicalFileName);\n }\n function getCommonSourceDirectory2() {\n let commonSourceDirectory = programDiagnostics.getCommonSourceDirectory();\n if (commonSourceDirectory !== void 0) {\n return commonSourceDirectory;\n }\n const emittedFiles = filter(files, (file) => sourceFileMayBeEmitted(file, program));\n commonSourceDirectory = getCommonSourceDirectory(\n options,\n () => mapDefined(emittedFiles, (file) => file.isDeclarationFile ? void 0 : file.fileName),\n currentDirectory,\n getCanonicalFileName,\n (commonSourceDirectory2) => checkSourceFilesBelongToPath(emittedFiles, commonSourceDirectory2)\n );\n programDiagnostics.setCommonSourceDirectory(commonSourceDirectory);\n return commonSourceDirectory;\n }\n function getClassifiableNames() {\n var _a2;\n if (!classifiableNames) {\n getTypeChecker();\n classifiableNames = /* @__PURE__ */ new Set();\n for (const sourceFile of files) {\n (_a2 = sourceFile.classifiableNames) == null ? void 0 : _a2.forEach((value) => classifiableNames.add(value));\n }\n }\n return classifiableNames;\n }\n function resolveModuleNamesReusingOldState(moduleNames, containingFile) {\n return resolveNamesReusingOldState({\n entries: moduleNames,\n containingFile,\n containingSourceFile: containingFile,\n redirectedReference: getRedirectReferenceForResolution(containingFile),\n nameAndModeGetter: moduleResolutionNameAndModeGetter,\n resolutionWorker: resolveModuleNamesWorker,\n getResolutionFromOldProgram: (name, mode) => oldProgram == null ? void 0 : oldProgram.getResolvedModule(containingFile, name, mode),\n getResolved: getResolvedModuleFromResolution,\n canReuseResolutionsInFile: () => containingFile === (oldProgram == null ? void 0 : oldProgram.getSourceFile(containingFile.fileName)) && !hasInvalidatedResolutions(containingFile.path),\n resolveToOwnAmbientModule: true\n });\n }\n function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames, containingFile) {\n const containingSourceFile = !isString(containingFile) ? containingFile : void 0;\n return resolveNamesReusingOldState({\n entries: typeDirectiveNames,\n containingFile,\n containingSourceFile,\n redirectedReference: containingSourceFile && getRedirectReferenceForResolution(containingSourceFile),\n nameAndModeGetter: typeReferenceResolutionNameAndModeGetter,\n resolutionWorker: resolveTypeReferenceDirectiveNamesWorker,\n getResolutionFromOldProgram: (name, mode) => {\n var _a2;\n return containingSourceFile ? oldProgram == null ? void 0 : oldProgram.getResolvedTypeReferenceDirective(containingSourceFile, name, mode) : (_a2 = oldProgram == null ? void 0 : oldProgram.getAutomaticTypeDirectiveResolutions()) == null ? void 0 : _a2.get(name, mode);\n },\n getResolved: getResolvedTypeReferenceDirectiveFromResolution,\n canReuseResolutionsInFile: () => containingSourceFile ? containingSourceFile === (oldProgram == null ? void 0 : oldProgram.getSourceFile(containingSourceFile.fileName)) && !hasInvalidatedResolutions(containingSourceFile.path) : !hasInvalidatedResolutions(toPath3(containingFile))\n });\n }\n function resolveNamesReusingOldState({\n entries,\n containingFile,\n containingSourceFile,\n redirectedReference,\n nameAndModeGetter,\n resolutionWorker,\n getResolutionFromOldProgram,\n getResolved,\n canReuseResolutionsInFile,\n resolveToOwnAmbientModule\n }) {\n if (!entries.length) return emptyArray;\n if (structureIsReused === 0 /* Not */ && (!resolveToOwnAmbientModule || !containingSourceFile.ambientModuleNames.length)) {\n return resolutionWorker(\n entries,\n containingFile,\n /*reusedNames*/\n void 0\n );\n }\n let unknownEntries;\n let unknownEntryIndices;\n let result;\n let reusedNames;\n const reuseResolutions = canReuseResolutionsInFile();\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n if (reuseResolutions) {\n const name = nameAndModeGetter.getName(entry);\n const mode = nameAndModeGetter.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) ?? options);\n const oldResolution = getResolutionFromOldProgram(name, mode);\n const oldResolved = oldResolution && getResolved(oldResolution);\n if (oldResolved) {\n if (isTraceEnabled(options, host)) {\n trace(\n host,\n resolutionWorker === resolveModuleNamesWorker ? oldResolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : oldResolved.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2,\n name,\n containingSourceFile ? getNormalizedAbsolutePath(containingSourceFile.originalFileName, currentDirectory) : containingFile,\n oldResolved.resolvedFileName,\n oldResolved.packageId && packageIdToString(oldResolved.packageId)\n );\n }\n (result ?? (result = new Array(entries.length)))[i] = oldResolution;\n (reusedNames ?? (reusedNames = [])).push(entry);\n continue;\n }\n }\n if (resolveToOwnAmbientModule) {\n const name = nameAndModeGetter.getName(entry);\n if (contains(containingSourceFile.ambientModuleNames, name)) {\n if (isTraceEnabled(options, host)) {\n trace(\n host,\n Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1,\n name,\n getNormalizedAbsolutePath(containingSourceFile.originalFileName, currentDirectory)\n );\n }\n (result ?? (result = new Array(entries.length)))[i] = emptyResolution;\n continue;\n }\n }\n (unknownEntries ?? (unknownEntries = [])).push(entry);\n (unknownEntryIndices ?? (unknownEntryIndices = [])).push(i);\n }\n if (!unknownEntries) return result;\n const resolutions = resolutionWorker(unknownEntries, containingFile, reusedNames);\n if (!result) return resolutions;\n resolutions.forEach((resolution, index) => result[unknownEntryIndices[index]] = resolution);\n return result;\n }\n function canReuseProjectReferences() {\n return !forEachProjectReference(\n oldProgram.getProjectReferences(),\n oldProgram.getResolvedProjectReferences(),\n (oldResolvedRef, parent2, index) => {\n const newRef = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index];\n const newResolvedRef = parseProjectReferenceConfigFile(newRef);\n if (oldResolvedRef) {\n return !newResolvedRef || newResolvedRef.sourceFile !== oldResolvedRef.sourceFile || !arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newResolvedRef.commandLine.fileNames);\n } else {\n return newResolvedRef !== void 0;\n }\n },\n (oldProjectReferences, parent2) => {\n const newReferences = parent2 ? getResolvedProjectReferenceByPath(parent2.sourceFile.path).commandLine.projectReferences : projectReferences;\n return !arrayIsEqualTo(oldProjectReferences, newReferences, projectReferenceIsEqualTo);\n }\n );\n }\n function tryReuseStructureFromOldProgram() {\n var _a2;\n if (!oldProgram) {\n return 0 /* Not */;\n }\n const oldOptions = oldProgram.getCompilerOptions();\n if (changesAffectModuleResolution(oldOptions, options)) {\n return 0 /* Not */;\n }\n const oldRootNames = oldProgram.getRootFileNames();\n if (!arrayIsEqualTo(oldRootNames, rootNames)) {\n return 0 /* Not */;\n }\n if (!canReuseProjectReferences()) {\n return 0 /* Not */;\n }\n if (projectReferences) {\n resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile);\n }\n const newSourceFiles = [];\n const modifiedSourceFiles = [];\n structureIsReused = 2 /* Completely */;\n if (forEachEntry(oldProgram.getMissingFilePaths(), (missingFileName) => host.fileExists(missingFileName))) {\n return 0 /* Not */;\n }\n const oldSourceFiles = oldProgram.getSourceFiles();\n let SeenPackageName;\n ((SeenPackageName2) => {\n SeenPackageName2[SeenPackageName2[\"Exists\"] = 0] = \"Exists\";\n SeenPackageName2[SeenPackageName2[\"Modified\"] = 1] = \"Modified\";\n })(SeenPackageName || (SeenPackageName = {}));\n const seenPackageNames = /* @__PURE__ */ new Map();\n for (const oldSourceFile of oldSourceFiles) {\n const sourceFileOptions = getCreateSourceFileOptions(oldSourceFile.fileName, moduleResolutionCache, host, options);\n let newSourceFile = host.getSourceFileByPath ? host.getSourceFileByPath(\n oldSourceFile.fileName,\n oldSourceFile.resolvedPath,\n sourceFileOptions,\n /*onError*/\n void 0,\n shouldCreateNewSourceFile\n ) : host.getSourceFile(\n oldSourceFile.fileName,\n sourceFileOptions,\n /*onError*/\n void 0,\n shouldCreateNewSourceFile\n );\n if (!newSourceFile) {\n return 0 /* Not */;\n }\n newSourceFile.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n newSourceFile.packageJsonScope = sourceFileOptions.packageJsonScope;\n Debug.assert(!newSourceFile.redirectInfo, \"Host should not return a redirect source file from `getSourceFile`\");\n let fileChanged;\n if (oldSourceFile.redirectInfo) {\n if (newSourceFile !== oldSourceFile.redirectInfo.unredirected) {\n return 0 /* Not */;\n }\n fileChanged = false;\n newSourceFile = oldSourceFile;\n } else if (oldProgram.redirectTargetsMap.has(oldSourceFile.path)) {\n if (newSourceFile !== oldSourceFile) {\n return 0 /* Not */;\n }\n fileChanged = false;\n } else {\n fileChanged = newSourceFile !== oldSourceFile;\n }\n newSourceFile.path = oldSourceFile.path;\n newSourceFile.originalFileName = oldSourceFile.originalFileName;\n newSourceFile.resolvedPath = oldSourceFile.resolvedPath;\n newSourceFile.fileName = oldSourceFile.fileName;\n const packageName = oldProgram.sourceFileToPackageName.get(oldSourceFile.path);\n if (packageName !== void 0) {\n const prevKind = seenPackageNames.get(packageName);\n const newKind = fileChanged ? 1 /* Modified */ : 0 /* Exists */;\n if (prevKind !== void 0 && newKind === 1 /* Modified */ || prevKind === 1 /* Modified */) {\n return 0 /* Not */;\n }\n seenPackageNames.set(packageName, newKind);\n }\n if (fileChanged) {\n if (oldSourceFile.impliedNodeFormat !== newSourceFile.impliedNodeFormat) {\n structureIsReused = 1 /* SafeModules */;\n } else if (!arrayIsEqualTo(oldSourceFile.libReferenceDirectives, newSourceFile.libReferenceDirectives, fileReferenceIsEqualTo)) {\n structureIsReused = 1 /* SafeModules */;\n } else if (oldSourceFile.hasNoDefaultLib !== newSourceFile.hasNoDefaultLib) {\n structureIsReused = 1 /* SafeModules */;\n } else if (!arrayIsEqualTo(oldSourceFile.referencedFiles, newSourceFile.referencedFiles, fileReferenceIsEqualTo)) {\n structureIsReused = 1 /* SafeModules */;\n } else {\n collectExternalModuleReferences(newSourceFile);\n if (!arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) {\n structureIsReused = 1 /* SafeModules */;\n } else if (!arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {\n structureIsReused = 1 /* SafeModules */;\n } else if ((oldSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */) !== (newSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */)) {\n structureIsReused = 1 /* SafeModules */;\n } else if (!arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {\n structureIsReused = 1 /* SafeModules */;\n }\n }\n modifiedSourceFiles.push(newSourceFile);\n } else if (hasInvalidatedResolutions(oldSourceFile.path)) {\n structureIsReused = 1 /* SafeModules */;\n modifiedSourceFiles.push(newSourceFile);\n }\n newSourceFiles.push(newSourceFile);\n }\n if (structureIsReused !== 2 /* Completely */) {\n return structureIsReused;\n }\n for (const newSourceFile of modifiedSourceFiles) {\n const moduleNames = getModuleNames(newSourceFile);\n const resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFile);\n (resolvedModulesProcessing ?? (resolvedModulesProcessing = /* @__PURE__ */ new Map())).set(newSourceFile.path, resolutions);\n const optionsForFile = getCompilerOptionsForFile(newSourceFile);\n const resolutionsChanged = hasChangesInResolutions(\n moduleNames,\n resolutions,\n (name) => oldProgram.getResolvedModule(newSourceFile, name.text, getModeForUsageLocationWorker(newSourceFile, name, optionsForFile)),\n moduleResolutionIsEqualTo\n );\n if (resolutionsChanged) structureIsReused = 1 /* SafeModules */;\n const typesReferenceDirectives = newSourceFile.typeReferenceDirectives;\n const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile);\n (resolvedTypeReferenceDirectiveNamesProcessing ?? (resolvedTypeReferenceDirectiveNamesProcessing = /* @__PURE__ */ new Map())).set(newSourceFile.path, typeReferenceResolutions);\n const typeReferenceResolutionsChanged = hasChangesInResolutions(\n typesReferenceDirectives,\n typeReferenceResolutions,\n (name) => oldProgram.getResolvedTypeReferenceDirective(\n newSourceFile,\n getTypeReferenceResolutionName(name),\n getModeForTypeReferenceDirectiveInFile(name, newSourceFile)\n ),\n typeDirectiveIsEqualTo\n );\n if (typeReferenceResolutionsChanged) structureIsReused = 1 /* SafeModules */;\n }\n if (structureIsReused !== 2 /* Completely */) {\n return structureIsReused;\n }\n if (changesAffectingProgramStructure(oldOptions, options)) {\n return 1 /* SafeModules */;\n }\n if (oldProgram.resolvedLibReferences && forEachEntry(oldProgram.resolvedLibReferences, (resolution, libFileName) => pathForLibFileWorker(libFileName).actual !== resolution.actual)) {\n return 1 /* SafeModules */;\n }\n if (host.hasChangedAutomaticTypeDirectiveNames) {\n if (host.hasChangedAutomaticTypeDirectiveNames()) return 1 /* SafeModules */;\n } else {\n automaticTypeDirectiveNames = getAutomaticTypeDirectiveNames(options, host);\n if (!arrayIsEqualTo(oldProgram.getAutomaticTypeDirectiveNames(), automaticTypeDirectiveNames)) return 1 /* SafeModules */;\n }\n missingFileNames = oldProgram.getMissingFilePaths();\n Debug.assert(newSourceFiles.length === oldProgram.getSourceFiles().length);\n for (const newSourceFile of newSourceFiles) {\n filesByName.set(newSourceFile.path, newSourceFile);\n }\n const oldFilesByNameMap = oldProgram.getFilesByNameMap();\n oldFilesByNameMap.forEach((oldFile, path) => {\n if (!oldFile) {\n filesByName.set(path, oldFile);\n return;\n }\n if (oldFile.path === path) {\n if (oldProgram.isSourceFileFromExternalLibrary(oldFile)) {\n sourceFilesFoundSearchingNodeModules.set(oldFile.path, true);\n }\n return;\n }\n filesByName.set(path, filesByName.get(oldFile.path));\n });\n const isConfigIdentical = oldOptions.configFile && oldOptions.configFile === options.configFile || !oldOptions.configFile && !options.configFile && !optionsHaveChanges(oldOptions, options, optionDeclarations);\n programDiagnostics.reuseStateFromOldProgram(oldProgram.getProgramDiagnosticsContainer(), isConfigIdentical);\n skipVerifyCompilerOptions = isConfigIdentical;\n files = newSourceFiles;\n automaticTypeDirectiveNames = oldProgram.getAutomaticTypeDirectiveNames();\n automaticTypeDirectiveResolutions = oldProgram.getAutomaticTypeDirectiveResolutions();\n sourceFileToPackageName = oldProgram.sourceFileToPackageName;\n redirectTargetsMap = oldProgram.redirectTargetsMap;\n usesUriStyleNodeCoreModules = oldProgram.usesUriStyleNodeCoreModules;\n resolvedModules = oldProgram.resolvedModules;\n resolvedTypeReferenceDirectiveNames = oldProgram.resolvedTypeReferenceDirectiveNames;\n resolvedLibReferences = oldProgram.resolvedLibReferences;\n packageMap = oldProgram.getCurrentPackagesMap();\n return 2 /* Completely */;\n }\n function getEmitHost(writeFileCallback) {\n return {\n getCanonicalFileName,\n getCommonSourceDirectory: program.getCommonSourceDirectory,\n getCompilerOptions: program.getCompilerOptions,\n getCurrentDirectory: () => currentDirectory,\n getSourceFile: program.getSourceFile,\n getSourceFileByPath: program.getSourceFileByPath,\n getSourceFiles: program.getSourceFiles,\n isSourceFileFromExternalLibrary,\n getRedirectFromSourceFile,\n isSourceOfProjectReferenceRedirect,\n getSymlinkCache,\n writeFile: writeFileCallback || writeFile2,\n isEmitBlocked,\n shouldTransformImportCall,\n getEmitModuleFormatOfFile: getEmitModuleFormatOfFile2,\n getDefaultResolutionModeForFile: getDefaultResolutionModeForFile2,\n getModeForResolutionAtIndex: getModeForResolutionAtIndex2,\n readFile: (f) => host.readFile(f),\n fileExists: (f) => {\n const path = toPath3(f);\n if (getSourceFileByPath(path)) return true;\n if (missingFileNames.has(path)) return false;\n return host.fileExists(f);\n },\n realpath: maybeBind(host, host.realpath),\n useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n getBuildInfo: () => {\n var _a2;\n return (_a2 = program.getBuildInfo) == null ? void 0 : _a2.call(program);\n },\n getSourceFileFromReference: (file, ref) => program.getSourceFileFromReference(file, ref),\n redirectTargetsMap,\n getFileIncludeReasons: program.getFileIncludeReasons,\n createHash: maybeBind(host, host.createHash),\n getModuleResolutionCache: () => program.getModuleResolutionCache(),\n trace: maybeBind(host, host.trace),\n getGlobalTypingsCacheLocation: program.getGlobalTypingsCacheLocation\n };\n }\n function writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {\n host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n }\n function emitBuildInfo(writeFileCallback) {\n var _a2, _b2;\n (_a2 = tracing) == null ? void 0 : _a2.push(\n tracing.Phase.Emit,\n \"emitBuildInfo\",\n {},\n /*separateBeginAndEnd*/\n true\n );\n mark(\"beforeEmit\");\n const emitResult = emitFiles(\n notImplementedResolver,\n getEmitHost(writeFileCallback),\n /*targetSourceFile*/\n void 0,\n /*transformers*/\n noTransformers,\n /*emitOnly*/\n false,\n /*onlyBuildInfo*/\n true\n );\n mark(\"afterEmit\");\n measure(\"Emit\", \"beforeEmit\", \"afterEmit\");\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n return emitResult;\n }\n function getResolvedProjectReferences() {\n return resolvedProjectReferences;\n }\n function getProjectReferences() {\n return projectReferences;\n }\n function isSourceFileFromExternalLibrary(file) {\n return !!sourceFilesFoundSearchingNodeModules.get(file.path);\n }\n function isSourceFileDefaultLibrary(file) {\n if (!file.isDeclarationFile) {\n return false;\n }\n if (file.hasNoDefaultLib) {\n return true;\n }\n if (options.noLib) {\n return false;\n }\n const equalityComparer = host.useCaseSensitiveFileNames() ? equateStringsCaseSensitive : equateStringsCaseInsensitive;\n if (!options.lib) {\n return equalityComparer(file.fileName, getDefaultLibraryFileName());\n } else {\n return some(options.lib, (libFileName) => {\n const resolvedLib = resolvedLibReferences.get(libFileName);\n return !!resolvedLib && equalityComparer(file.fileName, resolvedLib.actual);\n });\n }\n }\n function getTypeChecker() {\n return typeChecker || (typeChecker = createTypeChecker(program));\n }\n function emit(sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit, skipBuildInfo) {\n var _a2, _b2;\n (_a2 = tracing) == null ? void 0 : _a2.push(\n tracing.Phase.Emit,\n \"emit\",\n { path: sourceFile == null ? void 0 : sourceFile.path },\n /*separateBeginAndEnd*/\n true\n );\n const result = runWithCancellationToken(\n () => emitWorker(\n program,\n sourceFile,\n writeFileCallback,\n cancellationToken,\n emitOnly,\n transformers,\n forceDtsEmit,\n skipBuildInfo\n )\n );\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n return result;\n }\n function isEmitBlocked(emitFileName) {\n return hasEmitBlockingDiagnostics.has(toPath3(emitFileName));\n }\n function emitWorker(program2, sourceFile, writeFileCallback, cancellationToken, emitOnly, customTransformers, forceDtsEmit, skipBuildInfo) {\n if (!forceDtsEmit) {\n const result = handleNoEmitOptions(program2, sourceFile, writeFileCallback, cancellationToken);\n if (result) return result;\n }\n const typeChecker2 = getTypeChecker();\n const emitResolver = typeChecker2.getEmitResolver(\n options.outFile ? void 0 : sourceFile,\n cancellationToken,\n emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit)\n );\n mark(\"beforeEmit\");\n const emitResult = typeChecker2.runWithCancellationToken(\n cancellationToken,\n () => emitFiles(\n emitResolver,\n getEmitHost(writeFileCallback),\n sourceFile,\n getTransformers(options, customTransformers, emitOnly),\n emitOnly,\n /*onlyBuildInfo*/\n false,\n forceDtsEmit,\n skipBuildInfo\n )\n );\n mark(\"afterEmit\");\n measure(\"Emit\", \"beforeEmit\", \"afterEmit\");\n return emitResult;\n }\n function getSourceFile(fileName) {\n return getSourceFileByPath(toPath3(fileName));\n }\n function getSourceFileByPath(path) {\n return filesByName.get(path) || void 0;\n }\n function getDiagnosticsHelper(sourceFile, getDiagnostics2, cancellationToken) {\n if (sourceFile) {\n return sortAndDeduplicateDiagnostics(getDiagnostics2(sourceFile, cancellationToken));\n }\n return sortAndDeduplicateDiagnostics(flatMap(program.getSourceFiles(), (sourceFile2) => {\n if (cancellationToken) {\n cancellationToken.throwIfCancellationRequested();\n }\n return getDiagnostics2(sourceFile2, cancellationToken);\n }));\n }\n function getSyntacticDiagnostics(sourceFile, cancellationToken) {\n return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile, cancellationToken);\n }\n function getSemanticDiagnostics(sourceFile, cancellationToken, nodesToCheck) {\n return getDiagnosticsHelper(\n sourceFile,\n (sourceFile2, cancellationToken2) => getSemanticDiagnosticsForFile(sourceFile2, cancellationToken2, nodesToCheck),\n cancellationToken\n );\n }\n function getCachedSemanticDiagnostics(sourceFile) {\n return cachedBindAndCheckDiagnosticsForFile == null ? void 0 : cachedBindAndCheckDiagnosticsForFile.get(sourceFile.path);\n }\n function getBindAndCheckDiagnostics(sourceFile, cancellationToken) {\n return getBindAndCheckDiagnosticsForFile(\n sourceFile,\n cancellationToken,\n /*nodesToCheck*/\n void 0\n );\n }\n function getProgramDiagnostics(sourceFile) {\n var _a2;\n if (skipTypeChecking(sourceFile, options, program)) {\n return emptyArray;\n }\n const programDiagnosticsInFile = programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(sourceFile.fileName);\n if (!((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) {\n return programDiagnosticsInFile;\n }\n return getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, programDiagnosticsInFile).diagnostics;\n }\n function getDeclarationDiagnostics2(sourceFile, cancellationToken) {\n return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile, cancellationToken);\n }\n function getSyntacticDiagnosticsForFile(sourceFile) {\n if (isSourceFileJS(sourceFile)) {\n if (!sourceFile.additionalSyntacticDiagnostics) {\n sourceFile.additionalSyntacticDiagnostics = getJSSyntacticDiagnosticsForFile(sourceFile);\n }\n return concatenate(sourceFile.additionalSyntacticDiagnostics, sourceFile.parseDiagnostics);\n }\n return sourceFile.parseDiagnostics;\n }\n function runWithCancellationToken(func) {\n try {\n return func();\n } catch (e) {\n if (e instanceof OperationCanceledException) {\n typeChecker = void 0;\n }\n throw e;\n }\n }\n function getSemanticDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck) {\n return concatenate(\n filterSemanticDiagnostics(getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck), options),\n getProgramDiagnostics(sourceFile)\n );\n }\n function getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck) {\n if (nodesToCheck) {\n return getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken, nodesToCheck);\n }\n let result = cachedBindAndCheckDiagnosticsForFile == null ? void 0 : cachedBindAndCheckDiagnosticsForFile.get(sourceFile.path);\n if (!result) {\n (cachedBindAndCheckDiagnosticsForFile ?? (cachedBindAndCheckDiagnosticsForFile = /* @__PURE__ */ new Map())).set(\n sourceFile.path,\n result = getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken)\n );\n }\n return result;\n }\n function getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken, nodesToCheck) {\n return runWithCancellationToken(() => {\n if (skipTypeChecking(sourceFile, options, program)) {\n return emptyArray;\n }\n const typeChecker2 = getTypeChecker();\n Debug.assert(!!sourceFile.bindDiagnostics);\n const isJs = sourceFile.scriptKind === 1 /* JS */ || sourceFile.scriptKind === 2 /* JSX */;\n const isPlainJs = isPlainJsFile(sourceFile, options.checkJs);\n const isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options);\n let bindDiagnostics = sourceFile.bindDiagnostics;\n let checkDiagnostics = typeChecker2.getDiagnostics(sourceFile, cancellationToken, nodesToCheck);\n if (isPlainJs) {\n bindDiagnostics = filter(bindDiagnostics, (d) => plainJSErrors.has(d.code));\n checkDiagnostics = filter(checkDiagnostics, (d) => plainJSErrors.has(d.code));\n }\n return getMergedBindAndCheckDiagnostics(\n sourceFile,\n !isPlainJs,\n !!nodesToCheck,\n bindDiagnostics,\n checkDiagnostics,\n isCheckJs ? sourceFile.jsDocDiagnostics : void 0\n );\n });\n }\n function getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics, partialCheck, ...allDiagnostics) {\n var _a2;\n const flatDiagnostics = flatten(allDiagnostics);\n if (!includeBindAndCheckDiagnostics || !((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) {\n return flatDiagnostics;\n }\n const { diagnostics, directives } = getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, flatDiagnostics);\n if (partialCheck) {\n return diagnostics;\n }\n for (const errorExpectation of directives.getUnusedExpectations()) {\n diagnostics.push(createDiagnosticForRange(sourceFile, errorExpectation.range, Diagnostics.Unused_ts_expect_error_directive));\n }\n return diagnostics;\n }\n function getDiagnosticsWithPrecedingDirectives(sourceFile, commentDirectives, flatDiagnostics) {\n const directives = createCommentDirectivesMap(sourceFile, commentDirectives);\n const diagnostics = flatDiagnostics.filter((diagnostic) => markPrecedingCommentDirectiveLine(diagnostic, directives) === -1);\n return { diagnostics, directives };\n }\n function getSuggestionDiagnostics(sourceFile, cancellationToken) {\n return runWithCancellationToken(() => {\n return getTypeChecker().getSuggestionDiagnostics(sourceFile, cancellationToken);\n });\n }\n function markPrecedingCommentDirectiveLine(diagnostic, directives) {\n const { file, start } = diagnostic;\n if (!file) {\n return -1;\n }\n const lineStarts = getLineStarts(file);\n let line = computeLineAndCharacterOfPosition(lineStarts, start).line - 1;\n while (line >= 0) {\n if (directives.markUsed(line)) {\n return line;\n }\n const lineText = file.text.slice(lineStarts[line], lineStarts[line + 1]).trim();\n if (lineText !== \"\" && !/^\\s*\\/\\/.*$/.test(lineText)) {\n return -1;\n }\n line--;\n }\n return -1;\n }\n function getJSSyntacticDiagnosticsForFile(sourceFile) {\n return runWithCancellationToken(() => {\n const diagnostics = [];\n walk(sourceFile, sourceFile);\n forEachChildRecursively(sourceFile, walk, walkArray);\n return diagnostics;\n function walk(node, parent2) {\n switch (parent2.kind) {\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n if (parent2.questionToken === node) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, \"?\"));\n return \"skip\";\n }\n // falls through\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 220 /* ArrowFunction */:\n case 261 /* VariableDeclaration */:\n if (parent2.type === node) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n }\n switch (node.kind) {\n case 274 /* ImportClause */:\n if (node.isTypeOnly) {\n diagnostics.push(createDiagnosticForNode2(parent2, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, \"import type\"));\n return \"skip\";\n }\n break;\n case 279 /* ExportDeclaration */:\n if (node.isTypeOnly) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, \"export type\"));\n return \"skip\";\n }\n break;\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n if (node.isTypeOnly) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, isImportSpecifier(node) ? \"import...type\" : \"export...type\"));\n return \"skip\";\n }\n break;\n case 272 /* ImportEqualsDeclaration */:\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.import_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n case 278 /* ExportAssignment */:\n if (node.isExportEquals) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.export_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n break;\n case 299 /* HeritageClause */:\n const heritageClause = node;\n if (heritageClause.token === 119 /* ImplementsKeyword */) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n break;\n case 265 /* InterfaceDeclaration */:\n const interfaceKeyword = tokenToString(120 /* InterfaceKeyword */);\n Debug.assertIsDefined(interfaceKeyword);\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, interfaceKeyword));\n return \"skip\";\n case 268 /* ModuleDeclaration */:\n const moduleKeyword = node.flags & 32 /* Namespace */ ? tokenToString(145 /* NamespaceKeyword */) : tokenToString(144 /* ModuleKeyword */);\n Debug.assertIsDefined(moduleKeyword);\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, moduleKeyword));\n return \"skip\";\n case 266 /* TypeAliasDeclaration */:\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 263 /* FunctionDeclaration */:\n if (!node.body) {\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Signature_declarations_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n return;\n case 267 /* EnumDeclaration */:\n const enumKeyword = Debug.checkDefined(tokenToString(94 /* EnumKeyword */));\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, enumKeyword));\n return \"skip\";\n case 236 /* NonNullExpression */:\n diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n case 235 /* AsExpression */:\n diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n case 239 /* SatisfiesExpression */:\n diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n case 217 /* TypeAssertionExpression */:\n Debug.fail();\n }\n }\n function walkArray(nodes, parent2) {\n if (canHaveIllegalDecorators(parent2)) {\n const decorator = find(parent2.modifiers, isDecorator);\n if (decorator) {\n diagnostics.push(createDiagnosticForNode2(decorator, Diagnostics.Decorators_are_not_valid_here));\n }\n } else if (canHaveDecorators(parent2) && parent2.modifiers) {\n const decoratorIndex = findIndex(parent2.modifiers, isDecorator);\n if (decoratorIndex >= 0) {\n if (isParameter(parent2) && !options.experimentalDecorators) {\n diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here));\n } else if (isClassDeclaration(parent2)) {\n const exportIndex = findIndex(parent2.modifiers, isExportModifier);\n if (exportIndex >= 0) {\n const defaultIndex = findIndex(parent2.modifiers, isDefaultModifier);\n if (decoratorIndex > exportIndex && defaultIndex >= 0 && decoratorIndex < defaultIndex) {\n diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here));\n } else if (exportIndex >= 0 && decoratorIndex < exportIndex) {\n const trailingDecoratorIndex = findIndex(parent2.modifiers, isDecorator, exportIndex);\n if (trailingDecoratorIndex >= 0) {\n diagnostics.push(addRelatedInfo(\n createDiagnosticForNode2(parent2.modifiers[trailingDecoratorIndex], Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),\n createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorator_used_before_export_here)\n ));\n }\n }\n }\n }\n }\n }\n switch (parent2.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 220 /* ArrowFunction */:\n if (nodes === parent2.typeParameters) {\n diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n // falls through\n case 244 /* VariableStatement */:\n if (nodes === parent2.modifiers) {\n checkModifiers(parent2.modifiers, parent2.kind === 244 /* VariableStatement */);\n return \"skip\";\n }\n break;\n case 173 /* PropertyDeclaration */:\n if (nodes === parent2.modifiers) {\n for (const modifier of nodes) {\n if (isModifier(modifier) && modifier.kind !== 126 /* StaticKeyword */ && modifier.kind !== 129 /* AccessorKeyword */) {\n diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind)));\n }\n }\n return \"skip\";\n }\n break;\n case 170 /* Parameter */:\n if (nodes === parent2.modifiers && some(nodes, isModifier)) {\n diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n break;\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 234 /* ExpressionWithTypeArguments */:\n case 286 /* JsxSelfClosingElement */:\n case 287 /* JsxOpeningElement */:\n case 216 /* TaggedTemplateExpression */:\n if (nodes === parent2.typeArguments) {\n diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files));\n return \"skip\";\n }\n break;\n }\n }\n function checkModifiers(modifiers, isConstValid) {\n for (const modifier of modifiers) {\n switch (modifier.kind) {\n case 87 /* ConstKeyword */:\n if (isConstValid) {\n continue;\n }\n // to report error,\n // falls through\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 138 /* DeclareKeyword */:\n case 128 /* AbstractKeyword */:\n case 164 /* OverrideKeyword */:\n case 103 /* InKeyword */:\n case 147 /* OutKeyword */:\n diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind)));\n break;\n // These are all legal modifiers.\n case 126 /* StaticKeyword */:\n case 95 /* ExportKeyword */:\n case 90 /* DefaultKeyword */:\n case 129 /* AccessorKeyword */:\n }\n }\n }\n function createDiagnosticForNodeArray2(nodes, message, ...args) {\n const start = nodes.pos;\n return createFileDiagnostic(sourceFile, start, nodes.end - start, message, ...args);\n }\n function createDiagnosticForNode2(node, message, ...args) {\n return createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args);\n }\n });\n }\n function getDeclarationDiagnosticsWorker(sourceFile, cancellationToken) {\n let result = cachedDeclarationDiagnosticsForFile == null ? void 0 : cachedDeclarationDiagnosticsForFile.get(sourceFile.path);\n if (!result) {\n (cachedDeclarationDiagnosticsForFile ?? (cachedDeclarationDiagnosticsForFile = /* @__PURE__ */ new Map())).set(\n sourceFile.path,\n result = getDeclarationDiagnosticsForFileNoCache(sourceFile, cancellationToken)\n );\n }\n return result;\n }\n function getDeclarationDiagnosticsForFileNoCache(sourceFile, cancellationToken) {\n return runWithCancellationToken(() => {\n const resolver = getTypeChecker().getEmitResolver(sourceFile, cancellationToken);\n return getDeclarationDiagnostics(getEmitHost(noop), resolver, sourceFile) || emptyArray;\n });\n }\n function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {\n return sourceFile.isDeclarationFile ? emptyArray : getDeclarationDiagnosticsWorker(sourceFile, cancellationToken);\n }\n function getOptionsDiagnostics() {\n return sortAndDeduplicateDiagnostics(concatenate(\n programDiagnostics.getCombinedDiagnostics(program).getGlobalDiagnostics(),\n getOptionsDiagnosticsOfConfigFile()\n ));\n }\n function getOptionsDiagnosticsOfConfigFile() {\n if (!options.configFile) return emptyArray;\n let diagnostics = programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(options.configFile.fileName);\n forEachResolvedProjectReference2((resolvedRef) => {\n diagnostics = concatenate(diagnostics, programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(resolvedRef.sourceFile.fileName));\n });\n return diagnostics;\n }\n function getGlobalDiagnostics() {\n return rootNames.length ? sortAndDeduplicateDiagnostics(getTypeChecker().getGlobalDiagnostics().slice()) : emptyArray;\n }\n function getConfigFileParsingDiagnostics2() {\n return configFileParsingDiagnostics || emptyArray;\n }\n function processRootFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason) {\n processSourceFile(\n normalizePath(fileName),\n isDefaultLib,\n ignoreNoDefaultLib,\n /*packageId*/\n void 0,\n reason\n );\n }\n function fileReferenceIsEqualTo(a, b) {\n return a.fileName === b.fileName;\n }\n function moduleNameIsEqualTo(a, b) {\n return a.kind === 80 /* Identifier */ ? b.kind === 80 /* Identifier */ && a.escapedText === b.escapedText : b.kind === 11 /* StringLiteral */ && a.text === b.text;\n }\n function createSyntheticImport(text, file) {\n const externalHelpersModuleReference = factory.createStringLiteral(text);\n const importDecl = factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n /*importClause*/\n void 0,\n externalHelpersModuleReference\n );\n addInternalEmitFlags(importDecl, 2 /* NeverApplyImportHelper */);\n setParent(externalHelpersModuleReference, importDecl);\n setParent(importDecl, file);\n externalHelpersModuleReference.flags &= ~16 /* Synthesized */;\n importDecl.flags &= ~16 /* Synthesized */;\n return externalHelpersModuleReference;\n }\n function collectExternalModuleReferences(file) {\n if (file.imports) {\n return;\n }\n const isJavaScriptFile = isSourceFileJS(file);\n const isExternalModuleFile = isExternalModule(file);\n let imports;\n let moduleAugmentations;\n let ambientModules;\n if (isJavaScriptFile || !file.isDeclarationFile && (getIsolatedModules(options) || isExternalModule(file))) {\n if (options.importHelpers) {\n imports = [createSyntheticImport(externalHelpersModuleNameText, file)];\n }\n const jsxImport = getJSXRuntimeImport(getJSXImplicitImportBase(options, file), options);\n if (jsxImport) {\n (imports || (imports = [])).push(createSyntheticImport(jsxImport, file));\n }\n }\n for (const node of file.statements) {\n collectModuleReferences(\n node,\n /*inAmbientModule*/\n false\n );\n }\n if (file.flags & 4194304 /* PossiblyContainsDynamicImport */ || isJavaScriptFile) {\n forEachDynamicImportOrRequireCall(\n file,\n /*includeTypeSpaceImports*/\n true,\n /*requireStringLiteralLikeArgument*/\n true,\n (node, moduleSpecifier) => {\n setParentRecursive(\n node,\n /*incremental*/\n false\n );\n imports = append(imports, moduleSpecifier);\n }\n );\n }\n file.imports = imports || emptyArray;\n file.moduleAugmentations = moduleAugmentations || emptyArray;\n file.ambientModuleNames = ambientModules || emptyArray;\n return;\n function collectModuleReferences(node, inAmbientModule) {\n if (isAnyImportOrReExport(node)) {\n const moduleNameExpr = getExternalModuleName(node);\n if (moduleNameExpr && isStringLiteral(moduleNameExpr) && moduleNameExpr.text && (!inAmbientModule || !isExternalModuleNameRelative(moduleNameExpr.text))) {\n setParentRecursive(\n node,\n /*incremental*/\n false\n );\n imports = append(imports, moduleNameExpr);\n if (!usesUriStyleNodeCoreModules && currentNodeModulesDepth === 0 && !file.isDeclarationFile) {\n if (startsWith(moduleNameExpr.text, \"node:\") && !exclusivelyPrefixedNodeCoreModules.has(moduleNameExpr.text)) {\n usesUriStyleNodeCoreModules = true;\n } else if (usesUriStyleNodeCoreModules === void 0 && unprefixedNodeCoreModules.has(moduleNameExpr.text)) {\n usesUriStyleNodeCoreModules = false;\n }\n }\n }\n } else if (isModuleDeclaration(node)) {\n if (isAmbientModule(node) && (inAmbientModule || hasSyntacticModifier(node, 128 /* Ambient */) || file.isDeclarationFile)) {\n node.name.parent = node;\n const nameText = getTextOfIdentifierOrLiteral(node.name);\n if (isExternalModuleFile || inAmbientModule && !isExternalModuleNameRelative(nameText)) {\n (moduleAugmentations || (moduleAugmentations = [])).push(node.name);\n } else if (!inAmbientModule) {\n if (file.isDeclarationFile) {\n (ambientModules || (ambientModules = [])).push(nameText);\n }\n const body = node.body;\n if (body) {\n for (const statement of body.statements) {\n collectModuleReferences(\n statement,\n /*inAmbientModule*/\n true\n );\n }\n }\n }\n }\n }\n }\n }\n function getLibFileFromReference(ref) {\n var _a2;\n const libFileName = getLibFileNameFromLibReference(ref);\n const actualFileName = libFileName && ((_a2 = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName)) == null ? void 0 : _a2.actual);\n return actualFileName !== void 0 ? getSourceFile(actualFileName) : void 0;\n }\n function getSourceFileFromReference(referencingFile, ref) {\n return getSourceFileFromReferenceWorker(resolveTripleslashReference(ref.fileName, referencingFile.fileName), getSourceFile);\n }\n function getSourceFileFromReferenceWorker(fileName, getSourceFile2, fail, reason) {\n if (hasExtension(fileName)) {\n const canonicalFileName = host.getCanonicalFileName(fileName);\n if (!options.allowNonTsExtensions && !forEach(flatten(supportedExtensionsWithJsonIfResolveJsonModule), (extension) => fileExtensionIs(canonicalFileName, extension))) {\n if (fail) {\n if (hasJSFileExtension(canonicalFileName)) {\n fail(Diagnostics.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, fileName);\n } else {\n fail(Diagnostics.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, fileName, \"'\" + flatten(supportedExtensions).join(\"', '\") + \"'\");\n }\n }\n return void 0;\n }\n const sourceFile = getSourceFile2(fileName);\n if (fail) {\n if (!sourceFile) {\n const redirect = getRedirectFromSourceFile(fileName);\n if (redirect == null ? void 0 : redirect.outputDts) {\n fail(Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect.outputDts, fileName);\n } else {\n fail(Diagnostics.File_0_not_found, fileName);\n }\n } else if (isReferencedFile(reason) && canonicalFileName === host.getCanonicalFileName(getSourceFileByPath(reason.file).fileName)) {\n fail(Diagnostics.A_file_cannot_have_a_reference_to_itself);\n }\n }\n return sourceFile;\n } else {\n const sourceFileNoExtension = options.allowNonTsExtensions && getSourceFile2(fileName);\n if (sourceFileNoExtension) return sourceFileNoExtension;\n if (fail && options.allowNonTsExtensions) {\n fail(Diagnostics.File_0_not_found, fileName);\n return void 0;\n }\n const sourceFileWithAddedExtension = forEach(supportedExtensions[0], (extension) => getSourceFile2(fileName + extension));\n if (fail && !sourceFileWithAddedExtension) fail(Diagnostics.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, fileName, \"'\" + flatten(supportedExtensions).join(\"', '\") + \"'\");\n return sourceFileWithAddedExtension;\n }\n }\n function processSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, packageId, reason) {\n getSourceFileFromReferenceWorker(\n fileName,\n (fileName2) => findSourceFile(fileName2, isDefaultLib, ignoreNoDefaultLib, reason, packageId),\n // TODO: GH#18217\n (diagnostic, ...args) => addFilePreprocessingFileExplainingDiagnostic(\n /*file*/\n void 0,\n reason,\n diagnostic,\n args\n ),\n reason\n );\n }\n function processProjectReferenceFile(fileName, reason) {\n return processSourceFile(\n fileName,\n /*isDefaultLib*/\n false,\n /*ignoreNoDefaultLib*/\n false,\n /*packageId*/\n void 0,\n reason\n );\n }\n function reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason) {\n const hasExistingReasonToReportErrorOn = !isReferencedFile(reason) && some(programDiagnostics.getFileReasons().get(existingFile.path), isReferencedFile);\n if (hasExistingReasonToReportErrorOn) {\n addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.Already_included_file_name_0_differs_from_file_name_1_only_in_casing, [existingFile.fileName, fileName]);\n } else {\n addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, [fileName, existingFile.fileName]);\n }\n }\n function createRedirectedSourceFile(redirectTarget, unredirected, fileName, path, resolvedPath, originalFileName, sourceFileOptions) {\n var _a2;\n const redirect = parseNodeFactory.createRedirectedSourceFile({ redirectTarget, unredirected });\n redirect.fileName = fileName;\n redirect.path = path;\n redirect.resolvedPath = resolvedPath;\n redirect.originalFileName = originalFileName;\n redirect.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n redirect.packageJsonScope = sourceFileOptions.packageJsonScope;\n sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0);\n return redirect;\n }\n function findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {\n var _a2, _b2;\n (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"findSourceFile\", {\n fileName,\n isDefaultLib: isDefaultLib || void 0,\n fileIncludeKind: FileIncludeKind[reason.kind]\n });\n const result = findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId);\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n return result;\n }\n function getCreateSourceFileOptions(fileName, moduleResolutionCache2, host2, options2) {\n const result = getImpliedNodeFormatForFileWorker(getNormalizedAbsolutePath(fileName, currentDirectory), moduleResolutionCache2 == null ? void 0 : moduleResolutionCache2.getPackageJsonInfoCache(), host2, options2);\n const languageVersion = getEmitScriptTarget(options2);\n const setExternalModuleIndicator2 = getSetExternalModuleIndicator(options2);\n return typeof result === \"object\" ? { ...result, languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode } : { languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode };\n }\n function findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {\n var _a2, _b2;\n const path = toPath3(fileName);\n if (useSourceOfProjectReferenceRedirect) {\n let source = getRedirectFromOutput(path);\n if (!source && host.realpath && options.preserveSymlinks && isDeclarationFileName(fileName) && fileName.includes(nodeModulesPathPart)) {\n const realPath2 = toPath3(host.realpath(fileName));\n if (realPath2 !== path) source = getRedirectFromOutput(realPath2);\n }\n if (source == null ? void 0 : source.source) {\n const file2 = findSourceFile(source.source, isDefaultLib, ignoreNoDefaultLib, reason, packageId);\n if (file2) addFileToFilesByName(\n file2,\n path,\n fileName,\n /*redirectedPath*/\n void 0\n );\n return file2;\n }\n }\n const originalFileName = fileName;\n if (filesByName.has(path)) {\n const file2 = filesByName.get(path);\n const addedReason = addFileIncludeReason(\n file2 || void 0,\n reason,\n /*checkExisting*/\n true\n );\n if (file2 && addedReason && !(options.forceConsistentCasingInFileNames === false)) {\n const checkedName = file2.fileName;\n const isRedirect = toPath3(checkedName) !== toPath3(fileName);\n if (isRedirect) {\n fileName = ((_a2 = getRedirectFromSourceFile(fileName)) == null ? void 0 : _a2.outputDts) || fileName;\n }\n const checkedAbsolutePath = getNormalizedAbsolutePathWithoutRoot(checkedName, currentDirectory);\n const inputAbsolutePath = getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory);\n if (checkedAbsolutePath !== inputAbsolutePath) {\n reportFileNamesDifferOnlyInCasingError(fileName, file2, reason);\n }\n }\n if (file2 && sourceFilesFoundSearchingNodeModules.get(file2.path) && currentNodeModulesDepth === 0) {\n sourceFilesFoundSearchingNodeModules.set(file2.path, false);\n if (!options.noResolve) {\n processReferencedFiles(file2, isDefaultLib);\n processTypeReferenceDirectives(file2);\n }\n if (!options.noLib) {\n processLibReferenceDirectives(file2);\n }\n modulesWithElidedImports.set(file2.path, false);\n processImportedModules(file2);\n } else if (file2 && modulesWithElidedImports.get(file2.path)) {\n if (currentNodeModulesDepth < maxNodeModuleJsDepth) {\n modulesWithElidedImports.set(file2.path, false);\n processImportedModules(file2);\n }\n }\n return file2 || void 0;\n }\n let redirectedPath;\n if (!useSourceOfProjectReferenceRedirect) {\n const redirectProject = getRedirectFromSourceFile(fileName);\n if (redirectProject == null ? void 0 : redirectProject.outputDts) {\n if (redirectProject.resolvedRef.commandLine.options.outFile) {\n return void 0;\n }\n fileName = redirectProject.outputDts;\n redirectedPath = toPath3(redirectProject.outputDts);\n }\n }\n const sourceFileOptions = getCreateSourceFileOptions(fileName, moduleResolutionCache, host, options);\n const file = host.getSourceFile(\n fileName,\n sourceFileOptions,\n (hostErrorMessage) => addFilePreprocessingFileExplainingDiagnostic(\n /*file*/\n void 0,\n reason,\n Diagnostics.Cannot_read_file_0_Colon_1,\n [fileName, hostErrorMessage]\n ),\n shouldCreateNewSourceFile\n );\n if (packageId) {\n const packageIdKey = packageIdToString(packageId);\n const fileFromPackageId = packageIdToSourceFile.get(packageIdKey);\n if (fileFromPackageId) {\n const dupFile = createRedirectedSourceFile(fileFromPackageId, file, fileName, path, toPath3(fileName), originalFileName, sourceFileOptions);\n redirectTargetsMap.add(fileFromPackageId.path, fileName);\n addFileToFilesByName(dupFile, path, fileName, redirectedPath);\n addFileIncludeReason(\n dupFile,\n reason,\n /*checkExisting*/\n false\n );\n sourceFileToPackageName.set(path, packageIdToPackageName(packageId));\n processingOtherFiles.push(dupFile);\n return dupFile;\n } else if (file) {\n packageIdToSourceFile.set(packageIdKey, file);\n sourceFileToPackageName.set(path, packageIdToPackageName(packageId));\n }\n }\n addFileToFilesByName(file, path, fileName, redirectedPath);\n if (file) {\n sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0);\n file.fileName = fileName;\n file.path = path;\n file.resolvedPath = toPath3(fileName);\n file.originalFileName = originalFileName;\n file.packageJsonLocations = ((_b2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _b2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n file.packageJsonScope = sourceFileOptions.packageJsonScope;\n addFileIncludeReason(\n file,\n reason,\n /*checkExisting*/\n false\n );\n if (host.useCaseSensitiveFileNames()) {\n const pathLowerCase = toFileNameLowerCase(path);\n const existingFile = filesByNameIgnoreCase.get(pathLowerCase);\n if (existingFile) {\n reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason);\n } else {\n filesByNameIgnoreCase.set(pathLowerCase, file);\n }\n }\n skipDefaultLib = skipDefaultLib || file.hasNoDefaultLib && !ignoreNoDefaultLib;\n if (!options.noResolve) {\n processReferencedFiles(file, isDefaultLib);\n processTypeReferenceDirectives(file);\n }\n if (!options.noLib) {\n processLibReferenceDirectives(file);\n }\n processImportedModules(file);\n if (isDefaultLib) {\n processingDefaultLibFiles.push(file);\n } else {\n processingOtherFiles.push(file);\n }\n (filesWithReferencesProcessed ?? (filesWithReferencesProcessed = /* @__PURE__ */ new Set())).add(file.path);\n }\n return file;\n }\n function addFileIncludeReason(file, reason, checkExisting) {\n if (file && (!checkExisting || !isReferencedFile(reason) || !(filesWithReferencesProcessed == null ? void 0 : filesWithReferencesProcessed.has(reason.file)))) {\n programDiagnostics.getFileReasons().add(file.path, reason);\n return true;\n }\n return false;\n }\n function addFileToFilesByName(file, path, fileName, redirectedPath) {\n if (redirectedPath) {\n updateFilesByNameMap(fileName, redirectedPath, file);\n updateFilesByNameMap(fileName, path, file || false);\n } else {\n updateFilesByNameMap(fileName, path, file);\n }\n }\n function updateFilesByNameMap(fileName, path, file) {\n filesByName.set(path, file);\n if (file !== void 0) missingFileNames.delete(path);\n else missingFileNames.set(path, fileName);\n }\n function getRedirectFromSourceFile(fileName) {\n return mapSourceFileToResolvedRef == null ? void 0 : mapSourceFileToResolvedRef.get(toPath3(fileName));\n }\n function forEachResolvedProjectReference2(cb) {\n return forEachResolvedProjectReference(resolvedProjectReferences, cb);\n }\n function getRedirectFromOutput(path) {\n return mapOutputFileToResolvedRef == null ? void 0 : mapOutputFileToResolvedRef.get(path);\n }\n function isSourceOfProjectReferenceRedirect(fileName) {\n return useSourceOfProjectReferenceRedirect && !!getRedirectFromSourceFile(fileName);\n }\n function getResolvedProjectReferenceByPath(projectReferencePath) {\n if (!projectReferenceRedirects) {\n return void 0;\n }\n return projectReferenceRedirects.get(projectReferencePath) || void 0;\n }\n function processReferencedFiles(file, isDefaultLib) {\n forEach(file.referencedFiles, (ref, index) => {\n processSourceFile(\n resolveTripleslashReference(ref.fileName, file.fileName),\n isDefaultLib,\n /*ignoreNoDefaultLib*/\n false,\n /*packageId*/\n void 0,\n { kind: 4 /* ReferenceFile */, file: file.path, index }\n );\n });\n }\n function processTypeReferenceDirectives(file) {\n const typeDirectives = file.typeReferenceDirectives;\n if (!typeDirectives.length) return;\n const resolutions = (resolvedTypeReferenceDirectiveNamesProcessing == null ? void 0 : resolvedTypeReferenceDirectiveNamesProcessing.get(file.path)) || resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file);\n const resolutionsInFile = createModeAwareCache();\n (resolvedTypeReferenceDirectiveNames ?? (resolvedTypeReferenceDirectiveNames = /* @__PURE__ */ new Map())).set(file.path, resolutionsInFile);\n for (let index = 0; index < typeDirectives.length; index++) {\n const ref = file.typeReferenceDirectives[index];\n const resolvedTypeReferenceDirective = resolutions[index];\n const fileName = ref.fileName;\n const mode = getModeForTypeReferenceDirectiveInFile(ref, file);\n resolutionsInFile.set(fileName, mode, resolvedTypeReferenceDirective);\n processTypeReferenceDirective(fileName, mode, resolvedTypeReferenceDirective, { kind: 5 /* TypeReferenceDirective */, file: file.path, index });\n }\n }\n function getCompilerOptionsForFile(file) {\n var _a2;\n return ((_a2 = getRedirectReferenceForResolution(file)) == null ? void 0 : _a2.commandLine.options) || options;\n }\n function processTypeReferenceDirective(typeReferenceDirective, mode, resolution, reason) {\n var _a2, _b2;\n (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"processTypeReferenceDirective\", { directive: typeReferenceDirective, hasResolved: !!resolution.resolvedTypeReferenceDirective, refKind: reason.kind, refPath: isReferencedFile(reason) ? reason.file : void 0 });\n processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason);\n (_b2 = tracing) == null ? void 0 : _b2.pop();\n }\n function processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason) {\n addResolutionDiagnostics(resolution);\n const { resolvedTypeReferenceDirective } = resolution;\n if (resolvedTypeReferenceDirective) {\n if (resolvedTypeReferenceDirective.isExternalLibraryImport) currentNodeModulesDepth++;\n processSourceFile(\n resolvedTypeReferenceDirective.resolvedFileName,\n /*isDefaultLib*/\n false,\n /*ignoreNoDefaultLib*/\n false,\n resolvedTypeReferenceDirective.packageId,\n reason\n );\n if (resolvedTypeReferenceDirective.isExternalLibraryImport) currentNodeModulesDepth--;\n } else {\n addFilePreprocessingFileExplainingDiagnostic(\n /*file*/\n void 0,\n reason,\n Diagnostics.Cannot_find_type_definition_file_for_0,\n [typeReferenceDirective]\n );\n }\n }\n function pathForLibFile(libFileName) {\n const existing = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName);\n if (existing) return existing.actual;\n const result = pathForLibFileWorker(libFileName);\n (resolvedLibReferences ?? (resolvedLibReferences = /* @__PURE__ */ new Map())).set(libFileName, result);\n return result.actual;\n }\n function pathForLibFileWorker(libFileName) {\n var _a2, _b2, _c2, _d2, _e2;\n const existing = resolvedLibProcessing == null ? void 0 : resolvedLibProcessing.get(libFileName);\n if (existing) return existing;\n if (options.libReplacement === false) {\n const result2 = {\n resolution: {\n resolvedModule: void 0\n },\n actual: combinePaths(defaultLibraryPath, libFileName)\n };\n (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, result2);\n return result2;\n }\n if (structureIsReused !== 0 /* Not */ && oldProgram && !hasInvalidatedLibResolutions(libFileName)) {\n const oldResolution = (_a2 = oldProgram.resolvedLibReferences) == null ? void 0 : _a2.get(libFileName);\n if (oldResolution) {\n if (oldResolution.resolution && isTraceEnabled(options, host)) {\n const libraryName2 = getLibraryNameFromLibFileName(libFileName);\n const resolveFrom2 = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName);\n trace(\n host,\n oldResolution.resolution.resolvedModule ? oldResolution.resolution.resolvedModule.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved,\n libraryName2,\n getNormalizedAbsolutePath(resolveFrom2, currentDirectory),\n (_b2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _b2.resolvedFileName,\n ((_c2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _c2.packageId) && packageIdToString(oldResolution.resolution.resolvedModule.packageId)\n );\n }\n (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, oldResolution);\n return oldResolution;\n }\n }\n const libraryName = getLibraryNameFromLibFileName(libFileName);\n const resolveFrom = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName);\n (_d2 = tracing) == null ? void 0 : _d2.push(tracing.Phase.Program, \"resolveLibrary\", { resolveFrom });\n mark(\"beforeResolveLibrary\");\n const resolution = actualResolveLibrary(libraryName, resolveFrom, options, libFileName);\n mark(\"afterResolveLibrary\");\n measure(\"ResolveLibrary\", \"beforeResolveLibrary\", \"afterResolveLibrary\");\n (_e2 = tracing) == null ? void 0 : _e2.pop();\n const result = {\n resolution,\n actual: resolution.resolvedModule ? resolution.resolvedModule.resolvedFileName : combinePaths(defaultLibraryPath, libFileName)\n };\n (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, result);\n return result;\n }\n function processLibReferenceDirectives(file) {\n forEach(file.libReferenceDirectives, (libReference, index) => {\n const libFileName = getLibFileNameFromLibReference(libReference);\n if (libFileName) {\n processRootFile(\n pathForLibFile(libFileName),\n /*isDefaultLib*/\n true,\n /*ignoreNoDefaultLib*/\n true,\n { kind: 7 /* LibReferenceDirective */, file: file.path, index }\n );\n } else {\n programDiagnostics.addFileProcessingDiagnostic({\n kind: 0 /* FilePreprocessingLibReferenceDiagnostic */,\n reason: { kind: 7 /* LibReferenceDirective */, file: file.path, index }\n });\n }\n });\n }\n function getCanonicalFileName(fileName) {\n return host.getCanonicalFileName(fileName);\n }\n function processImportedModules(file) {\n collectExternalModuleReferences(file);\n if (file.imports.length || file.moduleAugmentations.length) {\n const moduleNames = getModuleNames(file);\n const resolutions = (resolvedModulesProcessing == null ? void 0 : resolvedModulesProcessing.get(file.path)) || resolveModuleNamesReusingOldState(moduleNames, file);\n Debug.assert(resolutions.length === moduleNames.length);\n const optionsForFile = getCompilerOptionsForFile(file);\n const resolutionsInFile = createModeAwareCache();\n (resolvedModules ?? (resolvedModules = /* @__PURE__ */ new Map())).set(file.path, resolutionsInFile);\n for (let index = 0; index < moduleNames.length; index++) {\n const resolution = resolutions[index].resolvedModule;\n const moduleName = moduleNames[index].text;\n const mode = getModeForUsageLocationWorker(file, moduleNames[index], optionsForFile);\n resolutionsInFile.set(moduleName, mode, resolutions[index]);\n addResolutionDiagnosticsFromResolutionOrCache(file, moduleName, resolutions[index], mode);\n if (!resolution) {\n continue;\n }\n const isFromNodeModulesSearch = resolution.isExternalLibraryImport;\n const isJsFile = !resolutionExtensionIsTSOrJson(resolution.extension) && !getRedirectFromSourceFile(resolution.resolvedFileName);\n const isJsFileFromNodeModules = isFromNodeModulesSearch && isJsFile && (!resolution.originalPath || pathContainsNodeModules(resolution.resolvedFileName));\n const resolvedFileName = resolution.resolvedFileName;\n if (isFromNodeModulesSearch) {\n currentNodeModulesDepth++;\n }\n const elideImport = isJsFileFromNodeModules && currentNodeModulesDepth > maxNodeModuleJsDepth;\n const shouldAddFile = resolvedFileName && !getResolutionDiagnostic(optionsForFile, resolution, file) && !optionsForFile.noResolve && index < file.imports.length && !elideImport && !(isJsFile && !getAllowJSCompilerOption(optionsForFile)) && (isInJSFile(file.imports[index]) || !(file.imports[index].flags & 16777216 /* JSDoc */));\n if (elideImport) {\n modulesWithElidedImports.set(file.path, true);\n } else if (shouldAddFile) {\n findSourceFile(\n resolvedFileName,\n /*isDefaultLib*/\n false,\n /*ignoreNoDefaultLib*/\n false,\n { kind: 3 /* Import */, file: file.path, index },\n resolution.packageId\n );\n }\n if (isFromNodeModulesSearch) {\n currentNodeModulesDepth--;\n }\n }\n }\n }\n function checkSourceFilesBelongToPath(sourceFiles, rootDirectory) {\n let allFilesBelongToPath = true;\n const absoluteRootDirectoryPath = host.getCanonicalFileName(getNormalizedAbsolutePath(rootDirectory, currentDirectory));\n for (const sourceFile of sourceFiles) {\n if (!sourceFile.isDeclarationFile) {\n const absoluteSourceFilePath = host.getCanonicalFileName(getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));\n if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {\n programDiagnostics.addLazyConfigDiagnostic(\n sourceFile,\n Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files,\n sourceFile.fileName,\n rootDirectory\n );\n allFilesBelongToPath = false;\n }\n }\n }\n return allFilesBelongToPath;\n }\n function parseProjectReferenceConfigFile(ref) {\n if (!projectReferenceRedirects) {\n projectReferenceRedirects = /* @__PURE__ */ new Map();\n }\n const refPath = resolveProjectReferencePath(ref);\n const sourceFilePath = toPath3(refPath);\n const fromCache = projectReferenceRedirects.get(sourceFilePath);\n if (fromCache !== void 0) {\n return fromCache || void 0;\n }\n let commandLine;\n let sourceFile;\n if (host.getParsedCommandLine) {\n commandLine = host.getParsedCommandLine(refPath);\n if (!commandLine) {\n addFileToFilesByName(\n /*file*/\n void 0,\n sourceFilePath,\n refPath,\n /*redirectedPath*/\n void 0\n );\n projectReferenceRedirects.set(sourceFilePath, false);\n return void 0;\n }\n sourceFile = Debug.checkDefined(commandLine.options.configFile);\n Debug.assert(!sourceFile.path || sourceFile.path === sourceFilePath);\n addFileToFilesByName(\n sourceFile,\n sourceFilePath,\n refPath,\n /*redirectedPath*/\n void 0\n );\n } else {\n const basePath = getNormalizedAbsolutePath(getDirectoryPath(refPath), currentDirectory);\n sourceFile = host.getSourceFile(refPath, 100 /* JSON */);\n addFileToFilesByName(\n sourceFile,\n sourceFilePath,\n refPath,\n /*redirectedPath*/\n void 0\n );\n if (sourceFile === void 0) {\n projectReferenceRedirects.set(sourceFilePath, false);\n return void 0;\n }\n commandLine = parseJsonSourceFileConfigFileContent(\n sourceFile,\n configParsingHost,\n basePath,\n /*existingOptions*/\n void 0,\n refPath\n );\n }\n sourceFile.fileName = refPath;\n sourceFile.path = sourceFilePath;\n sourceFile.resolvedPath = sourceFilePath;\n sourceFile.originalFileName = refPath;\n const resolvedRef = { commandLine, sourceFile };\n projectReferenceRedirects.set(sourceFilePath, resolvedRef);\n if (options.configFile !== sourceFile) {\n mapSourceFileToResolvedRef ?? (mapSourceFileToResolvedRef = /* @__PURE__ */ new Map());\n mapOutputFileToResolvedRef ?? (mapOutputFileToResolvedRef = /* @__PURE__ */ new Map());\n let outDts;\n if (commandLine.options.outFile) {\n outDts = changeExtension(commandLine.options.outFile, \".d.ts\" /* Dts */);\n mapOutputFileToResolvedRef == null ? void 0 : mapOutputFileToResolvedRef.set(toPath3(outDts), { resolvedRef });\n }\n const getCommonSourceDirectory3 = memoize(() => getCommonSourceDirectoryOfConfig(resolvedRef.commandLine, !host.useCaseSensitiveFileNames()));\n commandLine.fileNames.forEach((fileName) => {\n if (isDeclarationFileName(fileName)) return;\n const path = toPath3(fileName);\n let outputDts;\n if (!fileExtensionIs(fileName, \".json\" /* Json */)) {\n if (!commandLine.options.outFile) {\n outputDts = getOutputDeclarationFileName(fileName, resolvedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3);\n mapOutputFileToResolvedRef.set(toPath3(outputDts), { resolvedRef, source: fileName });\n } else {\n outputDts = outDts;\n }\n }\n mapSourceFileToResolvedRef.set(path, { resolvedRef, outputDts });\n });\n }\n if (commandLine.projectReferences) {\n resolvedRef.references = commandLine.projectReferences.map(parseProjectReferenceConfigFile);\n }\n return resolvedRef;\n }\n function verifyCompilerOptions() {\n if (options.strictPropertyInitialization && !getStrictOptionValue(options, \"strictNullChecks\")) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"strictPropertyInitialization\", \"strictNullChecks\");\n }\n if (options.exactOptionalPropertyTypes && !getStrictOptionValue(options, \"strictNullChecks\")) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"exactOptionalPropertyTypes\", \"strictNullChecks\");\n }\n if (options.isolatedModules || options.verbatimModuleSyntax) {\n if (options.outFile) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"outFile\", options.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\");\n }\n }\n if (options.isolatedDeclarations) {\n if (getAllowJSCompilerOption(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"allowJs\", \"isolatedDeclarations\");\n }\n if (!getEmitDeclarations(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"isolatedDeclarations\", \"declaration\", \"composite\");\n }\n }\n if (options.inlineSourceMap) {\n if (options.sourceMap) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"sourceMap\", \"inlineSourceMap\");\n }\n if (options.mapRoot) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"mapRoot\", \"inlineSourceMap\");\n }\n }\n if (options.composite) {\n if (options.declaration === false) {\n createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_declaration_emit, \"declaration\");\n }\n if (options.incremental === false) {\n createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_incremental_compilation, \"declaration\");\n }\n }\n const outputFile = options.outFile;\n if (!options.tsBuildInfoFile && options.incremental && !outputFile && !options.configFilePath) {\n programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(Diagnostics.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified));\n }\n verifyDeprecatedCompilerOptions();\n verifyProjectReferences();\n if (options.composite) {\n const rootPaths = new Set(rootNames.map(toPath3));\n for (const file of files) {\n if (sourceFileMayBeEmitted(file, program) && !rootPaths.has(file.path)) {\n programDiagnostics.addLazyConfigDiagnostic(\n file,\n Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern,\n file.fileName,\n options.configFilePath || \"\"\n );\n }\n }\n }\n if (options.paths) {\n for (const key in options.paths) {\n if (!hasProperty(options.paths, key)) {\n continue;\n }\n if (!hasZeroOrOneAsteriskCharacter(key)) {\n createDiagnosticForOptionPaths(\n /*onKey*/\n true,\n key,\n Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,\n key\n );\n }\n if (isArray(options.paths[key])) {\n const len = options.paths[key].length;\n if (len === 0) {\n createDiagnosticForOptionPaths(\n /*onKey*/\n false,\n key,\n Diagnostics.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array,\n key\n );\n }\n for (let i = 0; i < len; i++) {\n const subst = options.paths[key][i];\n const typeOfSubst = typeof subst;\n if (typeOfSubst === \"string\") {\n if (!hasZeroOrOneAsteriskCharacter(subst)) {\n createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character, subst, key);\n }\n if (!options.baseUrl && !pathIsRelative(subst) && !pathIsAbsolute(subst)) {\n createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash);\n }\n } else {\n createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2, subst, key, typeOfSubst);\n }\n }\n } else {\n createDiagnosticForOptionPaths(\n /*onKey*/\n false,\n key,\n Diagnostics.Substitutions_for_pattern_0_should_be_an_array,\n key\n );\n }\n }\n }\n if (!options.sourceMap && !options.inlineSourceMap) {\n if (options.inlineSources) {\n createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, \"inlineSources\");\n }\n if (options.sourceRoot) {\n createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, \"sourceRoot\");\n }\n }\n if (options.mapRoot && !(options.sourceMap || options.declarationMap)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"mapRoot\", \"sourceMap\", \"declarationMap\");\n }\n if (options.declarationDir) {\n if (!getEmitDeclarations(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"declarationDir\", \"declaration\", \"composite\");\n }\n if (outputFile) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"declarationDir\", \"outFile\");\n }\n }\n if (options.declarationMap && !getEmitDeclarations(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"declarationMap\", \"declaration\", \"composite\");\n }\n if (options.lib && options.noLib) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"lib\", \"noLib\");\n }\n const languageVersion = getEmitScriptTarget(options);\n const firstNonAmbientExternalModuleSourceFile = find(files, (f) => isExternalModule(f) && !f.isDeclarationFile);\n if (options.isolatedModules || options.verbatimModuleSyntax) {\n if (options.module === 0 /* None */ && languageVersion < 2 /* ES2015 */ && options.isolatedModules) {\n createDiagnosticForOptionName(Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher, \"isolatedModules\", \"target\");\n }\n if (options.preserveConstEnums === false) {\n createDiagnosticForOptionName(Diagnostics.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled, options.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\", \"preserveConstEnums\");\n }\n } else if (firstNonAmbientExternalModuleSourceFile && languageVersion < 2 /* ES2015 */ && options.module === 0 /* None */) {\n const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === \"boolean\" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator);\n programDiagnostics.addConfigDiagnostic(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none));\n }\n if (outputFile && !options.emitDeclarationOnly) {\n if (options.module && !(options.module === 2 /* AMD */ || options.module === 4 /* System */)) {\n createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, \"outFile\", \"module\");\n } else if (options.module === void 0 && firstNonAmbientExternalModuleSourceFile) {\n const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === \"boolean\" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator);\n programDiagnostics.addConfigDiagnostic(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system, \"outFile\"));\n }\n }\n if (getResolveJsonModule(options)) {\n if (getEmitModuleResolutionKind(options) === 1 /* Classic */) {\n createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic, \"resolveJsonModule\");\n } else if (!hasJsonModuleEmitEnabled(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd, \"resolveJsonModule\", \"module\");\n }\n }\n if (options.outDir || // there is --outDir specified\n options.rootDir || // there is --rootDir specified\n options.sourceRoot || // there is --sourceRoot specified\n options.mapRoot || // there is --mapRoot specified\n getEmitDeclarations(options) && options.declarationDir) {\n const dir = getCommonSourceDirectory2();\n if (options.outDir && dir === \"\" && files.some((file) => getRootLength(file.fileName) > 1)) {\n createDiagnosticForOptionName(Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files, \"outDir\");\n }\n }\n if (options.checkJs && !getAllowJSCompilerOption(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"checkJs\", \"allowJs\");\n }\n if (options.emitDeclarationOnly) {\n if (!getEmitDeclarations(options)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"emitDeclarationOnly\", \"declaration\", \"composite\");\n }\n }\n if (options.emitDecoratorMetadata && !options.experimentalDecorators) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"emitDecoratorMetadata\", \"experimentalDecorators\");\n }\n if (options.jsxFactory) {\n if (options.reactNamespace) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"reactNamespace\", \"jsxFactory\");\n }\n if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxFactory\", inverseJsxOptionMap.get(\"\" + options.jsx));\n }\n if (!parseIsolatedEntityName(options.jsxFactory, languageVersion)) {\n createOptionValueDiagnostic(\"jsxFactory\", Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFactory);\n }\n } else if (options.reactNamespace && !isIdentifierText(options.reactNamespace, languageVersion)) {\n createOptionValueDiagnostic(\"reactNamespace\", Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier, options.reactNamespace);\n }\n if (options.jsxFragmentFactory) {\n if (!options.jsxFactory) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"jsxFragmentFactory\", \"jsxFactory\");\n }\n if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxFragmentFactory\", inverseJsxOptionMap.get(\"\" + options.jsx));\n }\n if (!parseIsolatedEntityName(options.jsxFragmentFactory, languageVersion)) {\n createOptionValueDiagnostic(\"jsxFragmentFactory\", Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFragmentFactory);\n }\n }\n if (options.reactNamespace) {\n if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"reactNamespace\", inverseJsxOptionMap.get(\"\" + options.jsx));\n }\n }\n if (options.jsxImportSource) {\n if (options.jsx === 2 /* React */) {\n createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxImportSource\", inverseJsxOptionMap.get(\"\" + options.jsx));\n }\n }\n const moduleKind = getEmitModuleKind(options);\n if (options.verbatimModuleSyntax) {\n if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) {\n createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, \"verbatimModuleSyntax\");\n }\n }\n if (options.allowImportingTsExtensions && !(options.noEmit || options.emitDeclarationOnly || options.rewriteRelativeImportExtensions)) {\n createOptionValueDiagnostic(\"allowImportingTsExtensions\", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);\n }\n const moduleResolution = getEmitModuleResolutionKind(options);\n if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"resolvePackageJsonExports\");\n }\n if (options.resolvePackageJsonImports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"resolvePackageJsonImports\");\n }\n if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"customConditions\");\n }\n if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind) && moduleKind !== 200 /* Preserve */) {\n createOptionValueDiagnostic(\"moduleResolution\", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later, \"bundler\");\n }\n if (ModuleKind[moduleKind] && (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) && !(3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */)) {\n const moduleKindName = ModuleKind[moduleKind];\n const moduleResolutionName = ModuleResolutionKind[moduleKindName] ? moduleKindName : \"Node16\";\n createOptionValueDiagnostic(\"moduleResolution\", Diagnostics.Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1, moduleResolutionName, moduleKindName);\n } else if (ModuleResolutionKind[moduleResolution] && (3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */) && !(100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */)) {\n const moduleResolutionName = ModuleResolutionKind[moduleResolution];\n createOptionValueDiagnostic(\"module\", Diagnostics.Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1, moduleResolutionName, moduleResolutionName);\n }\n if (!options.noEmit && !options.suppressOutputPathCheck) {\n const emitHost = getEmitHost();\n const emitFilesSeen = /* @__PURE__ */ new Set();\n forEachEmittedFile(emitHost, (emitFileNames) => {\n if (!options.emitDeclarationOnly) {\n verifyEmitFilePath(emitFileNames.jsFilePath, emitFilesSeen);\n }\n verifyEmitFilePath(emitFileNames.declarationFilePath, emitFilesSeen);\n });\n }\n function verifyEmitFilePath(emitFileName, emitFilesSeen) {\n if (emitFileName) {\n const emitFilePath = toPath3(emitFileName);\n if (filesByName.has(emitFilePath)) {\n let chain;\n if (!options.configFilePath) {\n chain = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig\n );\n }\n chain = chainDiagnosticMessages(chain, Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file, emitFileName);\n blockEmittingOfFile(emitFileName, createCompilerDiagnosticFromMessageChain(chain));\n }\n const emitFileKey = !host.useCaseSensitiveFileNames() ? toFileNameLowerCase(emitFilePath) : emitFilePath;\n if (emitFilesSeen.has(emitFileKey)) {\n blockEmittingOfFile(emitFileName, createCompilerDiagnostic(Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files, emitFileName));\n } else {\n emitFilesSeen.add(emitFileKey);\n }\n }\n }\n }\n function getIgnoreDeprecationsVersion() {\n const ignoreDeprecations = options.ignoreDeprecations;\n if (ignoreDeprecations) {\n if (ignoreDeprecations === \"5.0\") {\n return new Version(ignoreDeprecations);\n }\n reportInvalidIgnoreDeprecations();\n }\n return Version.zero;\n }\n function checkDeprecations(deprecatedIn, removedIn, createDiagnostic, fn) {\n const deprecatedInVersion = new Version(deprecatedIn);\n const removedInVersion = new Version(removedIn);\n const typescriptVersion = new Version(typeScriptVersion3 || versionMajorMinor);\n const ignoreDeprecationsVersion = getIgnoreDeprecationsVersion();\n const mustBeRemoved = !(removedInVersion.compareTo(typescriptVersion) === 1 /* GreaterThan */);\n const canBeSilenced = !mustBeRemoved && ignoreDeprecationsVersion.compareTo(deprecatedInVersion) === -1 /* LessThan */;\n if (mustBeRemoved || canBeSilenced) {\n fn((name, value, useInstead) => {\n if (mustBeRemoved) {\n if (value === void 0) {\n createDiagnostic(name, value, useInstead, Diagnostics.Option_0_has_been_removed_Please_remove_it_from_your_configuration, name);\n } else {\n createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, name, value);\n }\n } else {\n if (value === void 0) {\n createDiagnostic(name, value, useInstead, Diagnostics.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, name, removedIn, deprecatedIn);\n } else {\n createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, name, value, removedIn, deprecatedIn);\n }\n }\n });\n }\n }\n function verifyDeprecatedCompilerOptions() {\n function createDiagnostic(name, value, useInstead, message, ...args) {\n if (useInstead) {\n const details = chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Use_0_instead,\n useInstead\n );\n const chain = chainDiagnosticMessages(details, message, ...args);\n createDiagnosticForOption(\n /*onKey*/\n !value,\n name,\n /*option2*/\n void 0,\n chain\n );\n } else {\n createDiagnosticForOption(\n /*onKey*/\n !value,\n name,\n /*option2*/\n void 0,\n message,\n ...args\n );\n }\n }\n checkDeprecations(\"5.0\", \"5.5\", createDiagnostic, (createDeprecatedDiagnostic) => {\n if (options.target === 0 /* ES3 */) {\n createDeprecatedDiagnostic(\"target\", \"ES3\");\n }\n if (options.noImplicitUseStrict) {\n createDeprecatedDiagnostic(\"noImplicitUseStrict\");\n }\n if (options.keyofStringsOnly) {\n createDeprecatedDiagnostic(\"keyofStringsOnly\");\n }\n if (options.suppressExcessPropertyErrors) {\n createDeprecatedDiagnostic(\"suppressExcessPropertyErrors\");\n }\n if (options.suppressImplicitAnyIndexErrors) {\n createDeprecatedDiagnostic(\"suppressImplicitAnyIndexErrors\");\n }\n if (options.noStrictGenericChecks) {\n createDeprecatedDiagnostic(\"noStrictGenericChecks\");\n }\n if (options.charset) {\n createDeprecatedDiagnostic(\"charset\");\n }\n if (options.out) {\n createDeprecatedDiagnostic(\n \"out\",\n /*value*/\n void 0,\n \"outFile\"\n );\n }\n if (options.importsNotUsedAsValues) {\n createDeprecatedDiagnostic(\n \"importsNotUsedAsValues\",\n /*value*/\n void 0,\n \"verbatimModuleSyntax\"\n );\n }\n if (options.preserveValueImports) {\n createDeprecatedDiagnostic(\n \"preserveValueImports\",\n /*value*/\n void 0,\n \"verbatimModuleSyntax\"\n );\n }\n });\n }\n function verifyDeprecatedProjectReference(ref, parentFile, index) {\n function createDiagnostic(_name, _value, _useInstead, message, ...args) {\n createDiagnosticForReference(parentFile, index, message, ...args);\n }\n checkDeprecations(\"5.0\", \"5.5\", createDiagnostic, (createDeprecatedDiagnostic) => {\n if (ref.prepend) {\n createDeprecatedDiagnostic(\"prepend\");\n }\n });\n }\n function addFilePreprocessingFileExplainingDiagnostic(file, fileProcessingReason, diagnostic, args) {\n programDiagnostics.addFileProcessingDiagnostic({\n kind: 1 /* FilePreprocessingFileExplainingDiagnostic */,\n file: file && file.path,\n fileProcessingReason,\n diagnostic,\n args\n });\n }\n function verifyProjectReferences() {\n const buildInfoPath = !options.suppressOutputPathCheck ? getTsBuildInfoEmitOutputFilePath(options) : void 0;\n forEachProjectReference(\n projectReferences,\n resolvedProjectReferences,\n (resolvedRef, parent2, index) => {\n const ref = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index];\n const parentFile = parent2 && parent2.sourceFile;\n verifyDeprecatedProjectReference(ref, parentFile, index);\n if (!resolvedRef) {\n createDiagnosticForReference(parentFile, index, Diagnostics.File_0_not_found, ref.path);\n return;\n }\n const options2 = resolvedRef.commandLine.options;\n if (!options2.composite || options2.noEmit) {\n const inputs = parent2 ? parent2.commandLine.fileNames : rootNames;\n if (inputs.length) {\n if (!options2.composite) createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true, ref.path);\n if (options2.noEmit) createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_may_not_disable_emit, ref.path);\n }\n }\n if (!parent2 && buildInfoPath && buildInfoPath === getTsBuildInfoEmitOutputFilePath(options2)) {\n createDiagnosticForReference(parentFile, index, Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1, buildInfoPath, ref.path);\n hasEmitBlockingDiagnostics.set(toPath3(buildInfoPath), true);\n }\n }\n );\n }\n function createDiagnosticForOptionPathKeyValue(key, valueIndex, message, ...args) {\n let needCompilerDiagnostic = true;\n forEachOptionPathsSyntax((pathProp) => {\n if (isObjectLiteralExpression(pathProp.initializer)) {\n forEachPropertyAssignment(pathProp.initializer, key, (keyProps) => {\n const initializer = keyProps.initializer;\n if (isArrayLiteralExpression(initializer) && initializer.elements.length > valueIndex) {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, initializer.elements[valueIndex], message, ...args));\n needCompilerDiagnostic = false;\n }\n });\n }\n });\n if (needCompilerDiagnostic) {\n createCompilerOptionsDiagnostic(message, ...args);\n }\n }\n function createDiagnosticForOptionPaths(onKey, key, message, ...args) {\n let needCompilerDiagnostic = true;\n forEachOptionPathsSyntax((pathProp) => {\n if (isObjectLiteralExpression(pathProp.initializer) && createOptionDiagnosticInObjectLiteralSyntax(\n pathProp.initializer,\n onKey,\n key,\n /*key2*/\n void 0,\n message,\n ...args\n )) {\n needCompilerDiagnostic = false;\n }\n });\n if (needCompilerDiagnostic) {\n createCompilerOptionsDiagnostic(message, ...args);\n }\n }\n function forEachOptionPathsSyntax(callback) {\n return forEachOptionsSyntaxByName(getCompilerOptionsObjectLiteralSyntax(), \"paths\", callback);\n }\n function createDiagnosticForOptionName(message, option1, option2, option3) {\n createDiagnosticForOption(\n /*onKey*/\n true,\n option1,\n option2,\n message,\n option1,\n option2,\n option3\n );\n }\n function createOptionValueDiagnostic(option1, message, ...args) {\n createDiagnosticForOption(\n /*onKey*/\n false,\n option1,\n /*option2*/\n void 0,\n message,\n ...args\n );\n }\n function createDiagnosticForReference(sourceFile, index, message, ...args) {\n const referencesSyntax = forEachTsConfigPropArray(sourceFile || options.configFile, \"references\", (property) => isArrayLiteralExpression(property.initializer) ? property.initializer : void 0);\n if (referencesSyntax && referencesSyntax.elements.length > index) {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(sourceFile || options.configFile, referencesSyntax.elements[index], message, ...args));\n } else {\n programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(message, ...args));\n }\n }\n function createDiagnosticForOption(onKey, option1, option2, message, ...args) {\n const compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax();\n const needCompilerDiagnostic = !compilerOptionsObjectLiteralSyntax || !createOptionDiagnosticInObjectLiteralSyntax(compilerOptionsObjectLiteralSyntax, onKey, option1, option2, message, ...args);\n if (needCompilerDiagnostic) {\n createCompilerOptionsDiagnostic(message, ...args);\n }\n }\n function createCompilerOptionsDiagnostic(message, ...args) {\n const compilerOptionsProperty = getCompilerOptionsPropertySyntax();\n if (compilerOptionsProperty) {\n if (\"messageText\" in message) {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(options.configFile, compilerOptionsProperty.name, message));\n } else {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, compilerOptionsProperty.name, message, ...args));\n }\n } else if (\"messageText\" in message) {\n programDiagnostics.addConfigDiagnostic(createCompilerDiagnosticFromMessageChain(message));\n } else {\n programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(message, ...args));\n }\n }\n function getCompilerOptionsObjectLiteralSyntax() {\n if (_compilerOptionsObjectLiteralSyntax === void 0) {\n const compilerOptionsProperty = getCompilerOptionsPropertySyntax();\n _compilerOptionsObjectLiteralSyntax = compilerOptionsProperty ? tryCast(compilerOptionsProperty.initializer, isObjectLiteralExpression) || false : false;\n }\n return _compilerOptionsObjectLiteralSyntax || void 0;\n }\n function getCompilerOptionsPropertySyntax() {\n if (_compilerOptionsPropertySyntax === void 0) {\n _compilerOptionsPropertySyntax = forEachPropertyAssignment(\n getTsConfigObjectLiteralExpression(options.configFile),\n \"compilerOptions\",\n identity\n ) || false;\n }\n return _compilerOptionsPropertySyntax || void 0;\n }\n function createOptionDiagnosticInObjectLiteralSyntax(objectLiteral, onKey, key1, key2, message, ...args) {\n let needsCompilerDiagnostic = false;\n forEachPropertyAssignment(objectLiteral, key1, (prop) => {\n if (\"messageText\" in message) {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(options.configFile, onKey ? prop.name : prop.initializer, message));\n } else {\n programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, onKey ? prop.name : prop.initializer, message, ...args));\n }\n needsCompilerDiagnostic = true;\n }, key2);\n return needsCompilerDiagnostic;\n }\n function blockEmittingOfFile(emitFileName, diag2) {\n hasEmitBlockingDiagnostics.set(toPath3(emitFileName), true);\n programDiagnostics.addConfigDiagnostic(diag2);\n }\n function isEmittedFile(file) {\n if (options.noEmit) {\n return false;\n }\n const filePath = toPath3(file);\n if (getSourceFileByPath(filePath)) {\n return false;\n }\n const out = options.outFile;\n if (out) {\n return isSameFile(filePath, out) || isSameFile(filePath, removeFileExtension(out) + \".d.ts\" /* Dts */);\n }\n if (options.declarationDir && containsPath(options.declarationDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames())) {\n return true;\n }\n if (options.outDir) {\n return containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames());\n }\n if (fileExtensionIsOneOf(filePath, supportedJSExtensionsFlat) || isDeclarationFileName(filePath)) {\n const filePathWithoutExtension = removeFileExtension(filePath);\n return !!getSourceFileByPath(filePathWithoutExtension + \".ts\" /* Ts */) || !!getSourceFileByPath(filePathWithoutExtension + \".tsx\" /* Tsx */);\n }\n return false;\n }\n function isSameFile(file1, file2) {\n return comparePaths(file1, file2, currentDirectory, !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */;\n }\n function getSymlinkCache() {\n if (host.getSymlinkCache) {\n return host.getSymlinkCache();\n }\n if (!symlinks) {\n symlinks = createSymlinkCache(currentDirectory, getCanonicalFileName);\n }\n if (files && !symlinks.hasProcessedResolutions()) {\n symlinks.setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, automaticTypeDirectiveResolutions);\n }\n return symlinks;\n }\n function getModeForUsageLocation2(file, usage) {\n return getModeForUsageLocationWorker(file, usage, getCompilerOptionsForFile(file));\n }\n function getEmitSyntaxForUsageLocation(file, usage) {\n return getEmitSyntaxForUsageLocationWorker(file, usage, getCompilerOptionsForFile(file));\n }\n function getModeForResolutionAtIndex2(file, index) {\n return getModeForUsageLocation2(file, getModuleNameStringLiteralAt(file, index));\n }\n function getDefaultResolutionModeForFile2(sourceFile) {\n return getDefaultResolutionModeForFileWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n }\n function getImpliedNodeFormatForEmit2(sourceFile) {\n return getImpliedNodeFormatForEmitWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n }\n function getEmitModuleFormatOfFile2(sourceFile) {\n return getEmitModuleFormatOfFileWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n }\n function shouldTransformImportCall(sourceFile) {\n return shouldTransformImportCallWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n }\n function getModeForTypeReferenceDirectiveInFile(ref, sourceFile) {\n return ref.resolutionMode || getDefaultResolutionModeForFile2(sourceFile);\n }\n}\nfunction shouldTransformImportCallWorker(sourceFile, options) {\n const moduleKind = getEmitModuleKind(options);\n if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ || moduleKind === 200 /* Preserve */) {\n return false;\n }\n return getEmitModuleFormatOfFileWorker(sourceFile, options) < 5 /* ES2015 */;\n}\nfunction getEmitModuleFormatOfFileWorker(sourceFile, options) {\n return getImpliedNodeFormatForEmitWorker(sourceFile, options) ?? getEmitModuleKind(options);\n}\nfunction getImpliedNodeFormatForEmitWorker(sourceFile, options) {\n var _a, _b;\n const moduleKind = getEmitModuleKind(options);\n if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n return sourceFile.impliedNodeFormat;\n }\n if (sourceFile.impliedNodeFormat === 1 /* CommonJS */ && (((_a = sourceFile.packageJsonScope) == null ? void 0 : _a.contents.packageJsonContent.type) === \"commonjs\" || fileExtensionIsOneOf(sourceFile.fileName, [\".cjs\" /* Cjs */, \".cts\" /* Cts */]))) {\n return 1 /* CommonJS */;\n }\n if (sourceFile.impliedNodeFormat === 99 /* ESNext */ && (((_b = sourceFile.packageJsonScope) == null ? void 0 : _b.contents.packageJsonContent.type) === \"module\" || fileExtensionIsOneOf(sourceFile.fileName, [\".mjs\" /* Mjs */, \".mts\" /* Mts */]))) {\n return 99 /* ESNext */;\n }\n return void 0;\n}\nfunction getDefaultResolutionModeForFileWorker(sourceFile, options) {\n return importSyntaxAffectsModuleResolution(options) ? getImpliedNodeFormatForEmitWorker(sourceFile, options) : void 0;\n}\nfunction updateHostForUseSourceOfProjectReferenceRedirect(host) {\n let setOfDeclarationDirectories;\n const originalFileExists = host.compilerHost.fileExists;\n const originalDirectoryExists = host.compilerHost.directoryExists;\n const originalGetDirectories = host.compilerHost.getDirectories;\n const originalRealpath = host.compilerHost.realpath;\n if (!host.useSourceOfProjectReferenceRedirect) return { onProgramCreateComplete: noop, fileExists };\n host.compilerHost.fileExists = fileExists;\n let directoryExists;\n if (originalDirectoryExists) {\n directoryExists = host.compilerHost.directoryExists = (path) => {\n if (originalDirectoryExists.call(host.compilerHost, path)) {\n handleDirectoryCouldBeSymlink(path);\n return true;\n }\n if (!host.getResolvedProjectReferences()) return false;\n if (!setOfDeclarationDirectories) {\n setOfDeclarationDirectories = /* @__PURE__ */ new Set();\n host.forEachResolvedProjectReference((ref) => {\n const out = ref.commandLine.options.outFile;\n if (out) {\n setOfDeclarationDirectories.add(getDirectoryPath(host.toPath(out)));\n } else {\n const declarationDir = ref.commandLine.options.declarationDir || ref.commandLine.options.outDir;\n if (declarationDir) {\n setOfDeclarationDirectories.add(host.toPath(declarationDir));\n }\n }\n });\n }\n return fileOrDirectoryExistsUsingSource(\n path,\n /*isFile*/\n false\n );\n };\n }\n if (originalGetDirectories) {\n host.compilerHost.getDirectories = (path) => !host.getResolvedProjectReferences() || originalDirectoryExists && originalDirectoryExists.call(host.compilerHost, path) ? originalGetDirectories.call(host.compilerHost, path) : [];\n }\n if (originalRealpath) {\n host.compilerHost.realpath = (s) => {\n var _a;\n return ((_a = host.getSymlinkCache().getSymlinkedFiles()) == null ? void 0 : _a.get(host.toPath(s))) || originalRealpath.call(host.compilerHost, s);\n };\n }\n return { onProgramCreateComplete, fileExists, directoryExists };\n function onProgramCreateComplete() {\n host.compilerHost.fileExists = originalFileExists;\n host.compilerHost.directoryExists = originalDirectoryExists;\n host.compilerHost.getDirectories = originalGetDirectories;\n }\n function fileExists(file) {\n if (originalFileExists.call(host.compilerHost, file)) return true;\n if (!host.getResolvedProjectReferences()) return false;\n if (!isDeclarationFileName(file)) return false;\n return fileOrDirectoryExistsUsingSource(\n file,\n /*isFile*/\n true\n );\n }\n function fileExistsIfProjectReferenceDts(file) {\n const source = host.getRedirectFromOutput(host.toPath(file));\n return source !== void 0 ? isString(source.source) ? originalFileExists.call(host.compilerHost, source.source) : true : void 0;\n }\n function directoryExistsIfProjectReferenceDeclDir(dir) {\n const dirPath = host.toPath(dir);\n const dirPathWithTrailingDirectorySeparator = `${dirPath}${directorySeparator}`;\n return forEachKey(\n setOfDeclarationDirectories,\n (declDirPath) => dirPath === declDirPath || // Any parent directory of declaration dir\n startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) || // Any directory inside declaration dir\n startsWith(dirPath, `${declDirPath}/`)\n );\n }\n function handleDirectoryCouldBeSymlink(directory) {\n var _a;\n if (!host.getResolvedProjectReferences() || containsIgnoredPath(directory)) return;\n if (!originalRealpath || !directory.includes(nodeModulesPathPart)) return;\n const symlinkCache = host.getSymlinkCache();\n const directoryPath = ensureTrailingDirectorySeparator(host.toPath(directory));\n if ((_a = symlinkCache.getSymlinkedDirectories()) == null ? void 0 : _a.has(directoryPath)) return;\n const real = normalizePath(originalRealpath.call(host.compilerHost, directory));\n let realPath2;\n if (real === directory || (realPath2 = ensureTrailingDirectorySeparator(host.toPath(real))) === directoryPath) {\n symlinkCache.setSymlinkedDirectory(directoryPath, false);\n return;\n }\n symlinkCache.setSymlinkedDirectory(directory, {\n real: ensureTrailingDirectorySeparator(real),\n realPath: realPath2\n });\n }\n function fileOrDirectoryExistsUsingSource(fileOrDirectory, isFile) {\n var _a;\n const fileOrDirectoryExistsUsingSource2 = isFile ? fileExistsIfProjectReferenceDts : directoryExistsIfProjectReferenceDeclDir;\n const result = fileOrDirectoryExistsUsingSource2(fileOrDirectory);\n if (result !== void 0) return result;\n const symlinkCache = host.getSymlinkCache();\n const symlinkedDirectories = symlinkCache.getSymlinkedDirectories();\n if (!symlinkedDirectories) return false;\n const fileOrDirectoryPath = host.toPath(fileOrDirectory);\n if (!fileOrDirectoryPath.includes(nodeModulesPathPart)) return false;\n if (isFile && ((_a = symlinkCache.getSymlinkedFiles()) == null ? void 0 : _a.has(fileOrDirectoryPath))) return true;\n return firstDefinedIterator(\n symlinkedDirectories.entries(),\n ([directoryPath, symlinkedDirectory]) => {\n if (!symlinkedDirectory || !startsWith(fileOrDirectoryPath, directoryPath)) return void 0;\n const result2 = fileOrDirectoryExistsUsingSource2(fileOrDirectoryPath.replace(directoryPath, symlinkedDirectory.realPath));\n if (isFile && result2) {\n const absolutePath = getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());\n symlinkCache.setSymlinkedFile(\n fileOrDirectoryPath,\n `${symlinkedDirectory.real}${absolutePath.replace(new RegExp(directoryPath, \"i\"), \"\")}`\n );\n }\n return result2;\n }\n ) || false;\n }\n}\nvar emitSkippedWithNoDiagnostics = { diagnostics: emptyArray, sourceMaps: void 0, emittedFiles: void 0, emitSkipped: true };\nfunction handleNoEmitOptions(program, sourceFile, writeFile2, cancellationToken) {\n const options = program.getCompilerOptions();\n if (options.noEmit) {\n return sourceFile ? emitSkippedWithNoDiagnostics : program.emitBuildInfo(writeFile2, cancellationToken);\n }\n if (!options.noEmitOnError) return void 0;\n let diagnostics = [\n ...program.getOptionsDiagnostics(cancellationToken),\n ...program.getSyntacticDiagnostics(sourceFile, cancellationToken),\n ...program.getGlobalDiagnostics(cancellationToken),\n ...program.getSemanticDiagnostics(sourceFile, cancellationToken)\n ];\n if (diagnostics.length === 0 && getEmitDeclarations(program.getCompilerOptions())) {\n diagnostics = program.getDeclarationDiagnostics(\n /*sourceFile*/\n void 0,\n cancellationToken\n );\n }\n if (!diagnostics.length) return void 0;\n let emittedFiles;\n if (!sourceFile) {\n const emitResult = program.emitBuildInfo(writeFile2, cancellationToken);\n if (emitResult.diagnostics) diagnostics = [...diagnostics, ...emitResult.diagnostics];\n emittedFiles = emitResult.emittedFiles;\n }\n return { diagnostics, sourceMaps: void 0, emittedFiles, emitSkipped: true };\n}\nfunction filterSemanticDiagnostics(diagnostic, option) {\n return filter(diagnostic, (d) => !d.skippedOn || !option[d.skippedOn]);\n}\nfunction parseConfigHostFromCompilerHostLike(host, directoryStructureHost = host) {\n return {\n fileExists: (f) => directoryStructureHost.fileExists(f),\n readDirectory(root, extensions, excludes, includes, depth) {\n Debug.assertIsDefined(directoryStructureHost.readDirectory, \"'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'\");\n return directoryStructureHost.readDirectory(root, extensions, excludes, includes, depth);\n },\n readFile: (f) => directoryStructureHost.readFile(f),\n directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists),\n getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories),\n realpath: maybeBind(directoryStructureHost, directoryStructureHost.realpath),\n useCaseSensitiveFileNames: host.useCaseSensitiveFileNames(),\n getCurrentDirectory: () => host.getCurrentDirectory(),\n onUnRecoverableConfigFileDiagnostic: host.onUnRecoverableConfigFileDiagnostic || returnUndefined,\n trace: host.trace ? (s) => host.trace(s) : void 0\n };\n}\nfunction resolveProjectReferencePath(ref) {\n return resolveConfigFileProjectName(ref.path);\n}\nfunction getResolutionDiagnostic(options, { extension }, { isDeclarationFile }) {\n switch (extension) {\n case \".ts\" /* Ts */:\n case \".d.ts\" /* Dts */:\n case \".mts\" /* Mts */:\n case \".d.mts\" /* Dmts */:\n case \".cts\" /* Cts */:\n case \".d.cts\" /* Dcts */:\n return void 0;\n case \".tsx\" /* Tsx */:\n return needJsx();\n case \".jsx\" /* Jsx */:\n return needJsx() || needAllowJs();\n case \".js\" /* Js */:\n case \".mjs\" /* Mjs */:\n case \".cjs\" /* Cjs */:\n return needAllowJs();\n case \".json\" /* Json */:\n return needResolveJsonModule();\n default:\n return needAllowArbitraryExtensions();\n }\n function needJsx() {\n return options.jsx ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set;\n }\n function needAllowJs() {\n return getAllowJSCompilerOption(options) || !getStrictOptionValue(options, \"noImplicitAny\") ? void 0 : Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type;\n }\n function needResolveJsonModule() {\n return getResolveJsonModule(options) ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used;\n }\n function needAllowArbitraryExtensions() {\n return isDeclarationFile || options.allowArbitraryExtensions ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set;\n }\n}\nfunction getModuleNames({ imports, moduleAugmentations }) {\n const res = imports.map((i) => i);\n for (const aug of moduleAugmentations) {\n if (aug.kind === 11 /* StringLiteral */) {\n res.push(aug);\n }\n }\n return res;\n}\nfunction getModuleNameStringLiteralAt({ imports, moduleAugmentations }, index) {\n if (index < imports.length) return imports[index];\n let augIndex = imports.length;\n for (const aug of moduleAugmentations) {\n if (aug.kind === 11 /* StringLiteral */) {\n if (index === augIndex) return aug;\n augIndex++;\n }\n }\n Debug.fail(\"should never ask for module name at index higher than possible module name\");\n}\n\n// src/compiler/programDiagnostics.ts\nfunction createProgramDiagnostics(getCompilerOptionsObjectLiteralSyntax) {\n let computedDiagnostics;\n let fileReasons = createMultiMap();\n let fileProcessingDiagnostics;\n let commonSourceDirectory;\n let configDiagnostics;\n let lazyConfigDiagnostics;\n let fileReasonsToChain;\n let reasonToRelatedInfo;\n return {\n addConfigDiagnostic(diag2) {\n Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n (configDiagnostics ?? (configDiagnostics = createDiagnosticCollection())).add(diag2);\n },\n addLazyConfigDiagnostic(file, message, ...args) {\n Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n (lazyConfigDiagnostics ?? (lazyConfigDiagnostics = [])).push({ file, diagnostic: message, args });\n },\n addFileProcessingDiagnostic(diag2) {\n Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n (fileProcessingDiagnostics ?? (fileProcessingDiagnostics = [])).push(diag2);\n },\n setCommonSourceDirectory(directory) {\n commonSourceDirectory = directory;\n },\n reuseStateFromOldProgram(oldProgramDiagnostics, isConfigIdentical) {\n fileReasons = oldProgramDiagnostics.getFileReasons();\n fileProcessingDiagnostics = oldProgramDiagnostics.getFileProcessingDiagnostics();\n if (isConfigIdentical) {\n commonSourceDirectory = oldProgramDiagnostics.getCommonSourceDirectory();\n configDiagnostics = oldProgramDiagnostics.getConfigDiagnostics();\n lazyConfigDiagnostics = oldProgramDiagnostics.getLazyConfigDiagnostics();\n }\n },\n getFileProcessingDiagnostics() {\n return fileProcessingDiagnostics;\n },\n getFileReasons() {\n return fileReasons;\n },\n getCommonSourceDirectory() {\n return commonSourceDirectory;\n },\n getConfigDiagnostics() {\n return configDiagnostics;\n },\n getLazyConfigDiagnostics() {\n return lazyConfigDiagnostics;\n },\n getCombinedDiagnostics(program) {\n if (computedDiagnostics) {\n return computedDiagnostics;\n }\n computedDiagnostics = createDiagnosticCollection();\n configDiagnostics == null ? void 0 : configDiagnostics.getDiagnostics().forEach((d) => computedDiagnostics.add(d));\n fileProcessingDiagnostics == null ? void 0 : fileProcessingDiagnostics.forEach((diagnostic) => {\n switch (diagnostic.kind) {\n case 1 /* FilePreprocessingFileExplainingDiagnostic */:\n return computedDiagnostics.add(\n createDiagnosticExplainingFile(\n program,\n diagnostic.file && program.getSourceFileByPath(diagnostic.file),\n diagnostic.fileProcessingReason,\n diagnostic.diagnostic,\n diagnostic.args || emptyArray\n )\n );\n case 0 /* FilePreprocessingLibReferenceDiagnostic */:\n return computedDiagnostics.add(filePreprocessingLibreferenceDiagnostic(program, diagnostic));\n case 2 /* ResolutionDiagnostics */:\n return diagnostic.diagnostics.forEach((d) => computedDiagnostics.add(d));\n default:\n Debug.assertNever(diagnostic);\n }\n });\n lazyConfigDiagnostics == null ? void 0 : lazyConfigDiagnostics.forEach(\n ({ file, diagnostic, args }) => computedDiagnostics.add(\n createDiagnosticExplainingFile(\n program,\n file,\n /*fileProcessingReason*/\n void 0,\n diagnostic,\n args\n )\n )\n );\n fileReasonsToChain = void 0;\n reasonToRelatedInfo = void 0;\n return computedDiagnostics;\n }\n };\n function filePreprocessingLibreferenceDiagnostic(program, { reason }) {\n const { file, pos, end } = getReferencedFileLocation(program, reason);\n const libReference = file.libReferenceDirectives[reason.index];\n const libName = getLibNameFromLibReference(libReference);\n const unqualifiedLibName = removeSuffix(removePrefix(libName, \"lib.\"), \".d.ts\");\n const suggestion = getSpellingSuggestion(unqualifiedLibName, libs, identity);\n return createFileDiagnostic(\n file,\n Debug.checkDefined(pos),\n Debug.checkDefined(end) - pos,\n suggestion ? Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 : Diagnostics.Cannot_find_lib_definition_for_0,\n libName,\n suggestion\n );\n }\n function createDiagnosticExplainingFile(program, file, fileProcessingReason, diagnostic, args) {\n let seenReasons;\n let fileIncludeReasons;\n let relatedInfo;\n let fileIncludeReasonDetails;\n let redirectInfo;\n let chain;\n const reasons = file && fileReasons.get(file.path);\n let locationReason = isReferencedFile(fileProcessingReason) ? fileProcessingReason : void 0;\n let cachedChain = file && (fileReasonsToChain == null ? void 0 : fileReasonsToChain.get(file.path));\n if (cachedChain) {\n if (cachedChain.fileIncludeReasonDetails) {\n seenReasons = new Set(reasons);\n reasons == null ? void 0 : reasons.forEach(populateRelatedInfo);\n } else {\n reasons == null ? void 0 : reasons.forEach(processReason);\n }\n redirectInfo = cachedChain.redirectInfo;\n } else {\n reasons == null ? void 0 : reasons.forEach(processReason);\n redirectInfo = file && explainIfFileIsRedirectAndImpliedFormat(file, program.getCompilerOptionsForFile(file));\n }\n if (fileProcessingReason) processReason(fileProcessingReason);\n const processedExtraReason = (seenReasons == null ? void 0 : seenReasons.size) !== (reasons == null ? void 0 : reasons.length);\n if (locationReason && (seenReasons == null ? void 0 : seenReasons.size) === 1) seenReasons = void 0;\n if (seenReasons && cachedChain) {\n if (cachedChain.details && !processedExtraReason) {\n chain = chainDiagnosticMessages(cachedChain.details, diagnostic, ...args ?? emptyArray);\n } else if (cachedChain.fileIncludeReasonDetails) {\n if (!processedExtraReason) {\n if (!cachedFileIncludeDetailsHasProcessedExtraReason()) {\n fileIncludeReasonDetails = cachedChain.fileIncludeReasonDetails;\n } else {\n fileIncludeReasons = cachedChain.fileIncludeReasonDetails.next.slice(0, reasons.length);\n }\n } else {\n if (!cachedFileIncludeDetailsHasProcessedExtraReason()) {\n fileIncludeReasons = [...cachedChain.fileIncludeReasonDetails.next, fileIncludeReasons[0]];\n } else {\n fileIncludeReasons = append(cachedChain.fileIncludeReasonDetails.next.slice(0, reasons.length), fileIncludeReasons[0]);\n }\n }\n }\n }\n if (!chain) {\n if (!fileIncludeReasonDetails) fileIncludeReasonDetails = seenReasons && chainDiagnosticMessages(fileIncludeReasons, Diagnostics.The_file_is_in_the_program_because_Colon);\n chain = chainDiagnosticMessages(\n redirectInfo ? fileIncludeReasonDetails ? [fileIncludeReasonDetails, ...redirectInfo] : redirectInfo : fileIncludeReasonDetails,\n diagnostic,\n ...args || emptyArray\n );\n }\n if (file) {\n if (cachedChain) {\n if (!cachedChain.fileIncludeReasonDetails || !processedExtraReason && fileIncludeReasonDetails) {\n cachedChain.fileIncludeReasonDetails = fileIncludeReasonDetails;\n }\n } else {\n (fileReasonsToChain ?? (fileReasonsToChain = /* @__PURE__ */ new Map())).set(file.path, cachedChain = { fileIncludeReasonDetails, redirectInfo });\n }\n if (!cachedChain.details && !processedExtraReason) cachedChain.details = chain.next;\n }\n const location = locationReason && getReferencedFileLocation(program, locationReason);\n return location && isReferenceFileLocation(location) ? createFileDiagnosticFromMessageChain(location.file, location.pos, location.end - location.pos, chain, relatedInfo) : createCompilerDiagnosticFromMessageChain(chain, relatedInfo);\n function processReason(reason) {\n if (seenReasons == null ? void 0 : seenReasons.has(reason)) return;\n (seenReasons ?? (seenReasons = /* @__PURE__ */ new Set())).add(reason);\n (fileIncludeReasons ?? (fileIncludeReasons = [])).push(fileIncludeReasonToDiagnostics(program, reason));\n populateRelatedInfo(reason);\n }\n function populateRelatedInfo(reason) {\n if (!locationReason && isReferencedFile(reason)) {\n locationReason = reason;\n } else if (locationReason !== reason) {\n relatedInfo = append(relatedInfo, getFileIncludeReasonToRelatedInformation(program, reason));\n }\n }\n function cachedFileIncludeDetailsHasProcessedExtraReason() {\n var _a;\n return ((_a = cachedChain.fileIncludeReasonDetails.next) == null ? void 0 : _a.length) !== (reasons == null ? void 0 : reasons.length);\n }\n }\n function getFileIncludeReasonToRelatedInformation(program, reason) {\n let relatedInfo = reasonToRelatedInfo == null ? void 0 : reasonToRelatedInfo.get(reason);\n if (relatedInfo === void 0) (reasonToRelatedInfo ?? (reasonToRelatedInfo = /* @__PURE__ */ new Map())).set(reason, relatedInfo = fileIncludeReasonToRelatedInformation(program, reason) ?? false);\n return relatedInfo || void 0;\n }\n function fileIncludeReasonToRelatedInformation(program, reason) {\n if (isReferencedFile(reason)) {\n const referenceLocation = getReferencedFileLocation(program, reason);\n let message2;\n switch (reason.kind) {\n case 3 /* Import */:\n message2 = Diagnostics.File_is_included_via_import_here;\n break;\n case 4 /* ReferenceFile */:\n message2 = Diagnostics.File_is_included_via_reference_here;\n break;\n case 5 /* TypeReferenceDirective */:\n message2 = Diagnostics.File_is_included_via_type_library_reference_here;\n break;\n case 7 /* LibReferenceDirective */:\n message2 = Diagnostics.File_is_included_via_library_reference_here;\n break;\n default:\n Debug.assertNever(reason);\n }\n return isReferenceFileLocation(referenceLocation) ? createFileDiagnostic(\n referenceLocation.file,\n referenceLocation.pos,\n referenceLocation.end - referenceLocation.pos,\n message2\n ) : void 0;\n }\n const currentDirectory = program.getCurrentDirectory();\n const rootNames = program.getRootFileNames();\n const options = program.getCompilerOptions();\n if (!options.configFile) return void 0;\n let configFileNode;\n let message;\n switch (reason.kind) {\n case 0 /* RootFile */:\n if (!options.configFile.configFileSpecs) return void 0;\n const fileName = getNormalizedAbsolutePath(rootNames[reason.index], currentDirectory);\n const matchedByFiles = getMatchedFileSpec(program, fileName);\n if (matchedByFiles) {\n configFileNode = getTsConfigPropArrayElementValue(options.configFile, \"files\", matchedByFiles);\n message = Diagnostics.File_is_matched_by_files_list_specified_here;\n break;\n }\n const matchedByInclude = getMatchedIncludeSpec(program, fileName);\n if (!matchedByInclude || !isString(matchedByInclude)) return void 0;\n configFileNode = getTsConfigPropArrayElementValue(options.configFile, \"include\", matchedByInclude);\n message = Diagnostics.File_is_matched_by_include_pattern_specified_here;\n break;\n case 1 /* SourceFromProjectReference */:\n case 2 /* OutputFromProjectReference */:\n const resolvedProjectReferences = program.getResolvedProjectReferences();\n const projectReferences = program.getProjectReferences();\n const referencedResolvedRef = Debug.checkDefined(resolvedProjectReferences == null ? void 0 : resolvedProjectReferences[reason.index]);\n const referenceInfo = forEachProjectReference(\n projectReferences,\n resolvedProjectReferences,\n (resolvedRef, parent2, index2) => resolvedRef === referencedResolvedRef ? { sourceFile: (parent2 == null ? void 0 : parent2.sourceFile) || options.configFile, index: index2 } : void 0\n );\n if (!referenceInfo) return void 0;\n const { sourceFile, index } = referenceInfo;\n const referencesSyntax = forEachTsConfigPropArray(sourceFile, \"references\", (property) => isArrayLiteralExpression(property.initializer) ? property.initializer : void 0);\n return referencesSyntax && referencesSyntax.elements.length > index ? createDiagnosticForNodeInSourceFile(\n sourceFile,\n referencesSyntax.elements[index],\n reason.kind === 2 /* OutputFromProjectReference */ ? Diagnostics.File_is_output_from_referenced_project_specified_here : Diagnostics.File_is_source_from_referenced_project_specified_here\n ) : void 0;\n case 8 /* AutomaticTypeDirectiveFile */:\n if (!options.types) return void 0;\n configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), \"types\", reason.typeReference);\n message = Diagnostics.File_is_entry_point_of_type_library_specified_here;\n break;\n case 6 /* LibFile */:\n if (reason.index !== void 0) {\n configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), \"lib\", options.lib[reason.index]);\n message = Diagnostics.File_is_library_specified_here;\n break;\n }\n const target = getNameOfScriptTarget(getEmitScriptTarget(options));\n configFileNode = target ? getOptionsSyntaxByValue(getCompilerOptionsObjectLiteralSyntax(), \"target\", target) : void 0;\n message = Diagnostics.File_is_default_library_for_target_specified_here;\n break;\n default:\n Debug.assertNever(reason);\n }\n return configFileNode && createDiagnosticForNodeInSourceFile(\n options.configFile,\n configFileNode,\n message\n );\n }\n}\n\n// src/compiler/builderState.ts\nfunction getFileEmitOutput(program, sourceFile, emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit) {\n const outputFiles = [];\n const { emitSkipped, diagnostics } = program.emit(sourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers, forceDtsEmit);\n return { outputFiles, emitSkipped, diagnostics };\n function writeFile2(fileName, text, writeByteOrderMark) {\n outputFiles.push({ name: fileName, writeByteOrderMark, text });\n }\n}\nvar SignatureInfo = /* @__PURE__ */ ((SignatureInfo2) => {\n SignatureInfo2[SignatureInfo2[\"ComputedDts\"] = 0] = \"ComputedDts\";\n SignatureInfo2[SignatureInfo2[\"StoredSignatureAtEmit\"] = 1] = \"StoredSignatureAtEmit\";\n SignatureInfo2[SignatureInfo2[\"UsedVersion\"] = 2] = \"UsedVersion\";\n return SignatureInfo2;\n})(SignatureInfo || {});\nvar BuilderState;\n((BuilderState2) => {\n function createManyToManyPathMap() {\n function create2(forward, reverse, deleted) {\n const map2 = {\n getKeys: (v) => reverse.get(v),\n getValues: (k) => forward.get(k),\n keys: () => forward.keys(),\n size: () => forward.size,\n deleteKey: (k) => {\n (deleted || (deleted = /* @__PURE__ */ new Set())).add(k);\n const set = forward.get(k);\n if (!set) {\n return false;\n }\n set.forEach((v) => deleteFromMultimap(reverse, v, k));\n forward.delete(k);\n return true;\n },\n set: (k, vSet) => {\n deleted == null ? void 0 : deleted.delete(k);\n const existingVSet = forward.get(k);\n forward.set(k, vSet);\n existingVSet == null ? void 0 : existingVSet.forEach((v) => {\n if (!vSet.has(v)) {\n deleteFromMultimap(reverse, v, k);\n }\n });\n vSet.forEach((v) => {\n if (!(existingVSet == null ? void 0 : existingVSet.has(v))) {\n addToMultimap(reverse, v, k);\n }\n });\n return map2;\n }\n };\n return map2;\n }\n return create2(\n /* @__PURE__ */ new Map(),\n /* @__PURE__ */ new Map(),\n /*deleted*/\n void 0\n );\n }\n BuilderState2.createManyToManyPathMap = createManyToManyPathMap;\n function addToMultimap(map2, k, v) {\n let set = map2.get(k);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n map2.set(k, set);\n }\n set.add(v);\n }\n function deleteFromMultimap(map2, k, v) {\n const set = map2.get(k);\n if (set == null ? void 0 : set.delete(v)) {\n if (!set.size) {\n map2.delete(k);\n }\n return true;\n }\n return false;\n }\n function getReferencedFilesFromImportedModuleSymbol(symbol) {\n return mapDefined(symbol.declarations, (declaration) => {\n var _a;\n return (_a = getSourceFileOfNode(declaration)) == null ? void 0 : _a.resolvedPath;\n });\n }\n function getReferencedFilesFromImportLiteral(checker, importName) {\n const symbol = checker.getSymbolAtLocation(importName);\n return symbol && getReferencedFilesFromImportedModuleSymbol(symbol);\n }\n function getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName) {\n var _a;\n return toPath(((_a = program.getRedirectFromSourceFile(fileName)) == null ? void 0 : _a.outputDts) || fileName, sourceFileDirectory, getCanonicalFileName);\n }\n function getReferencedFiles(program, sourceFile, getCanonicalFileName) {\n let referencedFiles;\n if (sourceFile.imports && sourceFile.imports.length > 0) {\n const checker = program.getTypeChecker();\n for (const importName of sourceFile.imports) {\n const declarationSourceFilePaths = getReferencedFilesFromImportLiteral(checker, importName);\n declarationSourceFilePaths == null ? void 0 : declarationSourceFilePaths.forEach(addReferencedFile);\n }\n }\n const sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath);\n if (sourceFile.referencedFiles && sourceFile.referencedFiles.length > 0) {\n for (const referencedFile of sourceFile.referencedFiles) {\n const referencedPath = getReferencedFileFromFileName(program, referencedFile.fileName, sourceFileDirectory, getCanonicalFileName);\n addReferencedFile(referencedPath);\n }\n }\n program.forEachResolvedTypeReferenceDirective(({ resolvedTypeReferenceDirective }) => {\n if (!resolvedTypeReferenceDirective) {\n return;\n }\n const fileName = resolvedTypeReferenceDirective.resolvedFileName;\n const typeFilePath = getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName);\n addReferencedFile(typeFilePath);\n }, sourceFile);\n if (sourceFile.moduleAugmentations.length) {\n const checker = program.getTypeChecker();\n for (const moduleName of sourceFile.moduleAugmentations) {\n if (!isStringLiteral(moduleName)) continue;\n const symbol = checker.getSymbolAtLocation(moduleName);\n if (!symbol) continue;\n addReferenceFromAmbientModule(symbol);\n }\n }\n for (const ambientModule of program.getTypeChecker().getAmbientModules()) {\n if (ambientModule.declarations && ambientModule.declarations.length > 1) {\n addReferenceFromAmbientModule(ambientModule);\n }\n }\n return referencedFiles;\n function addReferenceFromAmbientModule(symbol) {\n if (!symbol.declarations) {\n return;\n }\n for (const declaration of symbol.declarations) {\n const declarationSourceFile = getSourceFileOfNode(declaration);\n if (declarationSourceFile && declarationSourceFile !== sourceFile) {\n addReferencedFile(declarationSourceFile.resolvedPath);\n }\n }\n }\n function addReferencedFile(referencedPath) {\n (referencedFiles || (referencedFiles = /* @__PURE__ */ new Set())).add(referencedPath);\n }\n }\n function canReuseOldState(newReferencedMap, oldState) {\n return oldState && !oldState.referencedMap === !newReferencedMap;\n }\n BuilderState2.canReuseOldState = canReuseOldState;\n function createReferencedMap(options) {\n return options.module !== 0 /* None */ && !options.outFile ? createManyToManyPathMap() : void 0;\n }\n BuilderState2.createReferencedMap = createReferencedMap;\n function create(newProgram, oldState, disableUseFileVersionAsSignature) {\n var _a, _b;\n const fileInfos = /* @__PURE__ */ new Map();\n const options = newProgram.getCompilerOptions();\n const referencedMap = createReferencedMap(options);\n const useOldState = canReuseOldState(referencedMap, oldState);\n newProgram.getTypeChecker();\n for (const sourceFile of newProgram.getSourceFiles()) {\n const version2 = Debug.checkDefined(sourceFile.version, \"Program intended to be used with Builder should have source files with versions set\");\n const oldUncommittedSignature = useOldState ? (_a = oldState.oldSignatures) == null ? void 0 : _a.get(sourceFile.resolvedPath) : void 0;\n const signature = oldUncommittedSignature === void 0 ? useOldState ? (_b = oldState.fileInfos.get(sourceFile.resolvedPath)) == null ? void 0 : _b.signature : void 0 : oldUncommittedSignature || void 0;\n if (referencedMap) {\n const newReferences = getReferencedFiles(newProgram, sourceFile, newProgram.getCanonicalFileName);\n if (newReferences) {\n referencedMap.set(sourceFile.resolvedPath, newReferences);\n }\n }\n fileInfos.set(sourceFile.resolvedPath, {\n version: version2,\n signature,\n // No need to calculate affectsGlobalScope with --out since its not used at all\n affectsGlobalScope: !options.outFile ? isFileAffectingGlobalScope(sourceFile) || void 0 : void 0,\n impliedFormat: sourceFile.impliedNodeFormat\n });\n }\n return {\n fileInfos,\n referencedMap,\n useFileVersionAsSignature: !disableUseFileVersionAsSignature && !useOldState\n };\n }\n BuilderState2.create = create;\n function releaseCache2(state) {\n state.allFilesExcludingDefaultLibraryFile = void 0;\n state.allFileNames = void 0;\n }\n BuilderState2.releaseCache = releaseCache2;\n function getFilesAffectedBy(state, programOfThisState, path, cancellationToken, host) {\n var _a;\n const result = getFilesAffectedByWithOldState(\n state,\n programOfThisState,\n path,\n cancellationToken,\n host\n );\n (_a = state.oldSignatures) == null ? void 0 : _a.clear();\n return result;\n }\n BuilderState2.getFilesAffectedBy = getFilesAffectedBy;\n function getFilesAffectedByWithOldState(state, programOfThisState, path, cancellationToken, host) {\n const sourceFile = programOfThisState.getSourceFileByPath(path);\n if (!sourceFile) {\n return emptyArray;\n }\n if (!updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host)) {\n return [sourceFile];\n }\n return (state.referencedMap ? getFilesAffectedByUpdatedShapeWhenModuleEmit : getFilesAffectedByUpdatedShapeWhenNonModuleEmit)(state, programOfThisState, sourceFile, cancellationToken, host);\n }\n BuilderState2.getFilesAffectedByWithOldState = getFilesAffectedByWithOldState;\n function updateSignatureOfFile(state, signature, path) {\n state.fileInfos.get(path).signature = signature;\n (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(path);\n }\n BuilderState2.updateSignatureOfFile = updateSignatureOfFile;\n function computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, onNewSignature) {\n programOfThisState.emit(\n sourceFile,\n (fileName, text, _writeByteOrderMark, _onError, sourceFiles, data) => {\n Debug.assert(isDeclarationFileName(fileName), `File extension for signature expected to be dts: Got:: ${fileName}`);\n onNewSignature(\n computeSignatureWithDiagnostics(\n programOfThisState,\n sourceFile,\n text,\n host,\n data\n ),\n sourceFiles\n );\n },\n cancellationToken,\n 2 /* BuilderSignature */,\n /*customTransformers*/\n void 0,\n /*forceDtsEmit*/\n true\n );\n }\n BuilderState2.computeDtsSignature = computeDtsSignature;\n function updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host, useFileVersionAsSignature = state.useFileVersionAsSignature) {\n var _a;\n if ((_a = state.hasCalledUpdateShapeSignature) == null ? void 0 : _a.has(sourceFile.resolvedPath)) return false;\n const info = state.fileInfos.get(sourceFile.resolvedPath);\n const prevSignature = info.signature;\n let latestSignature;\n if (!sourceFile.isDeclarationFile && !useFileVersionAsSignature) {\n computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, (signature) => {\n latestSignature = signature;\n if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, 0 /* ComputedDts */);\n });\n }\n if (latestSignature === void 0) {\n latestSignature = sourceFile.version;\n if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, 2 /* UsedVersion */);\n }\n (state.oldSignatures || (state.oldSignatures = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, prevSignature || false);\n (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(sourceFile.resolvedPath);\n info.signature = latestSignature;\n return latestSignature !== prevSignature;\n }\n BuilderState2.updateShapeSignature = updateShapeSignature;\n function getAllDependencies(state, programOfThisState, sourceFile) {\n const compilerOptions = programOfThisState.getCompilerOptions();\n if (compilerOptions.outFile) {\n return getAllFileNames(state, programOfThisState);\n }\n if (!state.referencedMap || isFileAffectingGlobalScope(sourceFile)) {\n return getAllFileNames(state, programOfThisState);\n }\n const seenMap = /* @__PURE__ */ new Set();\n const queue = [sourceFile.resolvedPath];\n while (queue.length) {\n const path = queue.pop();\n if (!seenMap.has(path)) {\n seenMap.add(path);\n const references = state.referencedMap.getValues(path);\n if (references) {\n for (const key of references.keys()) {\n queue.push(key);\n }\n }\n }\n }\n return arrayFrom(mapDefinedIterator(seenMap.keys(), (path) => {\n var _a;\n return ((_a = programOfThisState.getSourceFileByPath(path)) == null ? void 0 : _a.fileName) ?? path;\n }));\n }\n BuilderState2.getAllDependencies = getAllDependencies;\n function getAllFileNames(state, programOfThisState) {\n if (!state.allFileNames) {\n const sourceFiles = programOfThisState.getSourceFiles();\n state.allFileNames = sourceFiles === emptyArray ? emptyArray : sourceFiles.map((file) => file.fileName);\n }\n return state.allFileNames;\n }\n function getReferencedByPaths(state, referencedFilePath) {\n const keys = state.referencedMap.getKeys(referencedFilePath);\n return keys ? arrayFrom(keys.keys()) : [];\n }\n BuilderState2.getReferencedByPaths = getReferencedByPaths;\n function containsOnlyAmbientModules(sourceFile) {\n for (const statement of sourceFile.statements) {\n if (!isModuleWithStringLiteralName(statement)) {\n return false;\n }\n }\n return true;\n }\n function containsGlobalScopeAugmentation(sourceFile) {\n return some(sourceFile.moduleAugmentations, (augmentation) => isGlobalScopeAugmentation(augmentation.parent));\n }\n function isFileAffectingGlobalScope(sourceFile) {\n return containsGlobalScopeAugmentation(sourceFile) || !isExternalOrCommonJsModule(sourceFile) && !isJsonSourceFile(sourceFile) && !containsOnlyAmbientModules(sourceFile);\n }\n function getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, firstSourceFile) {\n if (state.allFilesExcludingDefaultLibraryFile) {\n return state.allFilesExcludingDefaultLibraryFile;\n }\n let result;\n if (firstSourceFile) addSourceFile(firstSourceFile);\n for (const sourceFile of programOfThisState.getSourceFiles()) {\n if (sourceFile !== firstSourceFile) {\n addSourceFile(sourceFile);\n }\n }\n state.allFilesExcludingDefaultLibraryFile = result || emptyArray;\n return state.allFilesExcludingDefaultLibraryFile;\n function addSourceFile(sourceFile) {\n if (!programOfThisState.isSourceFileDefaultLibrary(sourceFile)) {\n (result || (result = [])).push(sourceFile);\n }\n }\n }\n BuilderState2.getAllFilesExcludingDefaultLibraryFile = getAllFilesExcludingDefaultLibraryFile;\n function getFilesAffectedByUpdatedShapeWhenNonModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape) {\n const compilerOptions = programOfThisState.getCompilerOptions();\n if (compilerOptions && compilerOptions.outFile) {\n return [sourceFileWithUpdatedShape];\n }\n return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape);\n }\n function getFilesAffectedByUpdatedShapeWhenModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape, cancellationToken, host) {\n if (isFileAffectingGlobalScope(sourceFileWithUpdatedShape)) {\n return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape);\n }\n const compilerOptions = programOfThisState.getCompilerOptions();\n if (compilerOptions && (getIsolatedModules(compilerOptions) || compilerOptions.outFile)) {\n return [sourceFileWithUpdatedShape];\n }\n const seenFileNamesMap = /* @__PURE__ */ new Map();\n seenFileNamesMap.set(sourceFileWithUpdatedShape.resolvedPath, sourceFileWithUpdatedShape);\n const queue = getReferencedByPaths(state, sourceFileWithUpdatedShape.resolvedPath);\n while (queue.length > 0) {\n const currentPath = queue.pop();\n if (!seenFileNamesMap.has(currentPath)) {\n const currentSourceFile = programOfThisState.getSourceFileByPath(currentPath);\n seenFileNamesMap.set(currentPath, currentSourceFile);\n if (currentSourceFile && updateShapeSignature(state, programOfThisState, currentSourceFile, cancellationToken, host)) {\n queue.push(...getReferencedByPaths(state, currentSourceFile.resolvedPath));\n }\n }\n }\n return arrayFrom(mapDefinedIterator(seenFileNamesMap.values(), (value) => value));\n }\n})(BuilderState || (BuilderState = {}));\n\n// src/compiler/builder.ts\nvar BuilderFileEmit = /* @__PURE__ */ ((BuilderFileEmit2) => {\n BuilderFileEmit2[BuilderFileEmit2[\"None\"] = 0] = \"None\";\n BuilderFileEmit2[BuilderFileEmit2[\"Js\"] = 1] = \"Js\";\n BuilderFileEmit2[BuilderFileEmit2[\"JsMap\"] = 2] = \"JsMap\";\n BuilderFileEmit2[BuilderFileEmit2[\"JsInlineMap\"] = 4] = \"JsInlineMap\";\n BuilderFileEmit2[BuilderFileEmit2[\"DtsErrors\"] = 8] = \"DtsErrors\";\n BuilderFileEmit2[BuilderFileEmit2[\"DtsEmit\"] = 16] = \"DtsEmit\";\n BuilderFileEmit2[BuilderFileEmit2[\"DtsMap\"] = 32] = \"DtsMap\";\n BuilderFileEmit2[BuilderFileEmit2[\"Dts\"] = 24] = \"Dts\";\n BuilderFileEmit2[BuilderFileEmit2[\"AllJs\"] = 7] = \"AllJs\";\n BuilderFileEmit2[BuilderFileEmit2[\"AllDtsEmit\"] = 48] = \"AllDtsEmit\";\n BuilderFileEmit2[BuilderFileEmit2[\"AllDts\"] = 56] = \"AllDts\";\n BuilderFileEmit2[BuilderFileEmit2[\"All\"] = 63] = \"All\";\n return BuilderFileEmit2;\n})(BuilderFileEmit || {});\nfunction isBuilderProgramStateWithDefinedProgram(state) {\n return state.program !== void 0;\n}\nfunction toBuilderProgramStateWithDefinedProgram(state) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n return state;\n}\nfunction getBuilderFileEmit(options) {\n let result = 1 /* Js */;\n if (options.sourceMap) result = result | 2 /* JsMap */;\n if (options.inlineSourceMap) result = result | 4 /* JsInlineMap */;\n if (getEmitDeclarations(options)) result = result | 24 /* Dts */;\n if (options.declarationMap) result = result | 32 /* DtsMap */;\n if (options.emitDeclarationOnly) result = result & 56 /* AllDts */;\n return result;\n}\nfunction getPendingEmitKind(optionsOrEmitKind, oldOptionsOrEmitKind) {\n const oldEmitKind = oldOptionsOrEmitKind && (isNumber(oldOptionsOrEmitKind) ? oldOptionsOrEmitKind : getBuilderFileEmit(oldOptionsOrEmitKind));\n const emitKind = isNumber(optionsOrEmitKind) ? optionsOrEmitKind : getBuilderFileEmit(optionsOrEmitKind);\n if (oldEmitKind === emitKind) return 0 /* None */;\n if (!oldEmitKind || !emitKind) return emitKind;\n const diff = oldEmitKind ^ emitKind;\n let result = 0 /* None */;\n if (diff & 7 /* AllJs */) result = emitKind & 7 /* AllJs */;\n if (diff & 8 /* DtsErrors */) result = result | emitKind & 8 /* DtsErrors */;\n if (diff & 48 /* AllDtsEmit */) result = result | emitKind & 48 /* AllDtsEmit */;\n return result;\n}\nfunction hasSameKeys(map1, map2) {\n return map1 === map2 || map1 !== void 0 && map2 !== void 0 && map1.size === map2.size && !forEachKey(map1, (key) => !map2.has(key));\n}\nfunction createBuilderProgramState(newProgram, oldState) {\n var _a, _b;\n const state = BuilderState.create(\n newProgram,\n oldState,\n /*disableUseFileVersionAsSignature*/\n false\n );\n state.program = newProgram;\n const compilerOptions = newProgram.getCompilerOptions();\n state.compilerOptions = compilerOptions;\n const outFilePath = compilerOptions.outFile;\n state.semanticDiagnosticsPerFile = /* @__PURE__ */ new Map();\n if (outFilePath && compilerOptions.composite && (oldState == null ? void 0 : oldState.outSignature) && outFilePath === oldState.compilerOptions.outFile) {\n state.outSignature = oldState.outSignature && getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldState.outSignature);\n }\n state.changedFilesSet = /* @__PURE__ */ new Set();\n state.latestChangedDtsFile = compilerOptions.composite ? oldState == null ? void 0 : oldState.latestChangedDtsFile : void 0;\n state.checkPending = state.compilerOptions.noCheck ? true : void 0;\n const useOldState = BuilderState.canReuseOldState(state.referencedMap, oldState);\n const oldCompilerOptions = useOldState ? oldState.compilerOptions : void 0;\n let canCopySemanticDiagnostics = useOldState && !compilerOptionsAffectSemanticDiagnostics(compilerOptions, oldCompilerOptions);\n const canCopyEmitSignatures = compilerOptions.composite && (oldState == null ? void 0 : oldState.emitSignatures) && !outFilePath && !compilerOptionsAffectDeclarationPath(compilerOptions, oldState.compilerOptions);\n let canCopyEmitDiagnostics = true;\n if (useOldState) {\n (_a = oldState.changedFilesSet) == null ? void 0 : _a.forEach((value) => state.changedFilesSet.add(value));\n if (!outFilePath && ((_b = oldState.affectedFilesPendingEmit) == null ? void 0 : _b.size)) {\n state.affectedFilesPendingEmit = new Map(oldState.affectedFilesPendingEmit);\n state.seenAffectedFiles = /* @__PURE__ */ new Set();\n }\n state.programEmitPending = oldState.programEmitPending;\n if (outFilePath && state.changedFilesSet.size) {\n canCopySemanticDiagnostics = false;\n canCopyEmitDiagnostics = false;\n }\n state.hasErrorsFromOldState = oldState.hasErrors;\n } else {\n state.buildInfoEmitPending = isIncrementalCompilation(compilerOptions);\n }\n const referencedMap = state.referencedMap;\n const oldReferencedMap = useOldState ? oldState.referencedMap : void 0;\n const copyDeclarationFileDiagnostics = canCopySemanticDiagnostics && !compilerOptions.skipLibCheck === !oldCompilerOptions.skipLibCheck;\n const copyLibFileDiagnostics = copyDeclarationFileDiagnostics && !compilerOptions.skipDefaultLibCheck === !oldCompilerOptions.skipDefaultLibCheck;\n state.fileInfos.forEach((info, sourceFilePath) => {\n var _a2;\n let oldInfo;\n let newReferences;\n if (!useOldState || // File wasn't present in old state\n !(oldInfo = oldState.fileInfos.get(sourceFilePath)) || // versions dont match\n oldInfo.version !== info.version || // Implied formats dont match\n oldInfo.impliedFormat !== info.impliedFormat || // Referenced files changed\n !hasSameKeys(newReferences = referencedMap && referencedMap.getValues(sourceFilePath), oldReferencedMap && oldReferencedMap.getValues(sourceFilePath)) || // Referenced file was deleted in the new program\n newReferences && forEachKey(newReferences, (path) => !state.fileInfos.has(path) && oldState.fileInfos.has(path))) {\n addFileToChangeSet(sourceFilePath);\n } else {\n const sourceFile = newProgram.getSourceFileByPath(sourceFilePath);\n const emitDiagnostics = canCopyEmitDiagnostics ? (_a2 = oldState.emitDiagnosticsPerFile) == null ? void 0 : _a2.get(sourceFilePath) : void 0;\n if (emitDiagnostics) {\n (state.emitDiagnosticsPerFile ?? (state.emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(\n sourceFilePath,\n oldState.hasReusableDiagnostic ? convertToDiagnostics(emitDiagnostics, sourceFilePath, newProgram) : repopulateDiagnostics(emitDiagnostics, newProgram)\n );\n }\n if (canCopySemanticDiagnostics) {\n if (sourceFile.isDeclarationFile && !copyDeclarationFileDiagnostics) return;\n if (sourceFile.hasNoDefaultLib && !copyLibFileDiagnostics) return;\n const diagnostics = oldState.semanticDiagnosticsPerFile.get(sourceFilePath);\n if (diagnostics) {\n state.semanticDiagnosticsPerFile.set(\n sourceFilePath,\n oldState.hasReusableDiagnostic ? convertToDiagnostics(diagnostics, sourceFilePath, newProgram) : repopulateDiagnostics(diagnostics, newProgram)\n );\n (state.semanticDiagnosticsFromOldState ?? (state.semanticDiagnosticsFromOldState = /* @__PURE__ */ new Set())).add(sourceFilePath);\n }\n }\n }\n if (canCopyEmitSignatures) {\n const oldEmitSignature = oldState.emitSignatures.get(sourceFilePath);\n if (oldEmitSignature) {\n (state.emitSignatures ?? (state.emitSignatures = /* @__PURE__ */ new Map())).set(sourceFilePath, getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldEmitSignature));\n }\n }\n });\n if (useOldState && forEachEntry(oldState.fileInfos, (info, sourceFilePath) => {\n if (state.fileInfos.has(sourceFilePath)) return false;\n if (info.affectsGlobalScope) return true;\n state.buildInfoEmitPending = true;\n return !!outFilePath;\n })) {\n BuilderState.getAllFilesExcludingDefaultLibraryFile(\n state,\n newProgram,\n /*firstSourceFile*/\n void 0\n ).forEach((file) => addFileToChangeSet(file.resolvedPath));\n } else if (oldCompilerOptions) {\n const pendingEmitKind = compilerOptionsAffectEmit(compilerOptions, oldCompilerOptions) ? getBuilderFileEmit(compilerOptions) : getPendingEmitKind(compilerOptions, oldCompilerOptions);\n if (pendingEmitKind !== 0 /* None */) {\n if (!outFilePath) {\n newProgram.getSourceFiles().forEach((f) => {\n if (!state.changedFilesSet.has(f.resolvedPath)) {\n addToAffectedFilesPendingEmit(\n state,\n f.resolvedPath,\n pendingEmitKind\n );\n }\n });\n Debug.assert(!state.seenAffectedFiles || !state.seenAffectedFiles.size);\n state.seenAffectedFiles = state.seenAffectedFiles || /* @__PURE__ */ new Set();\n } else if (!state.changedFilesSet.size) {\n state.programEmitPending = state.programEmitPending ? state.programEmitPending | pendingEmitKind : pendingEmitKind;\n }\n state.buildInfoEmitPending = true;\n }\n }\n if (useOldState && state.semanticDiagnosticsPerFile.size !== state.fileInfos.size && oldState.checkPending !== state.checkPending) state.buildInfoEmitPending = true;\n return state;\n function addFileToChangeSet(path) {\n state.changedFilesSet.add(path);\n if (outFilePath) {\n canCopySemanticDiagnostics = false;\n canCopyEmitDiagnostics = false;\n state.semanticDiagnosticsFromOldState = void 0;\n state.semanticDiagnosticsPerFile.clear();\n state.emitDiagnosticsPerFile = void 0;\n }\n state.buildInfoEmitPending = true;\n state.programEmitPending = void 0;\n }\n}\nfunction getEmitSignatureFromOldSignature(options, oldOptions, oldEmitSignature) {\n return !!options.declarationMap === !!oldOptions.declarationMap ? (\n // Use same format of signature\n oldEmitSignature\n ) : (\n // Convert to different format\n isString(oldEmitSignature) ? [oldEmitSignature] : oldEmitSignature[0]\n );\n}\nfunction repopulateDiagnostics(diagnostics, newProgram) {\n if (!diagnostics.length) return diagnostics;\n return sameMap(diagnostics, (diag2) => {\n if (isString(diag2.messageText)) return diag2;\n const repopulatedChain = convertOrRepopulateDiagnosticMessageChain(diag2.messageText, diag2.file, newProgram, (chain) => {\n var _a;\n return (_a = chain.repopulateInfo) == null ? void 0 : _a.call(chain);\n });\n return repopulatedChain === diag2.messageText ? diag2 : { ...diag2, messageText: repopulatedChain };\n });\n}\nfunction convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo) {\n const info = repopulateInfo(chain);\n if (info === true) {\n return {\n ...createModeMismatchDetails(sourceFile),\n next: convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo)\n };\n } else if (info) {\n return {\n ...createModuleNotFoundChain(sourceFile, newProgram, info.moduleReference, info.mode, info.packageName || info.moduleReference),\n next: convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo)\n };\n }\n const next = convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo);\n return next === chain.next ? chain : { ...chain, next };\n}\nfunction convertOrRepopulateDiagnosticMessageChainArray(array, sourceFile, newProgram, repopulateInfo) {\n return sameMap(array, (chain) => convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo));\n}\nfunction convertToDiagnostics(diagnostics, diagnosticFilePath, newProgram) {\n if (!diagnostics.length) return emptyArray;\n let buildInfoDirectory;\n return diagnostics.map((diagnostic) => {\n const result = convertToDiagnosticRelatedInformation(diagnostic, diagnosticFilePath, newProgram, toPathInBuildInfoDirectory);\n result.reportsUnnecessary = diagnostic.reportsUnnecessary;\n result.reportsDeprecated = diagnostic.reportDeprecated;\n result.source = diagnostic.source;\n result.skippedOn = diagnostic.skippedOn;\n const { relatedInformation } = diagnostic;\n result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map((r) => convertToDiagnosticRelatedInformation(r, diagnosticFilePath, newProgram, toPathInBuildInfoDirectory)) : [] : void 0;\n return result;\n });\n function toPathInBuildInfoDirectory(path) {\n buildInfoDirectory ?? (buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(newProgram.getCompilerOptions()), newProgram.getCurrentDirectory())));\n return toPath(path, buildInfoDirectory, newProgram.getCanonicalFileName);\n }\n}\nfunction convertToDiagnosticRelatedInformation(diagnostic, diagnosticFilePath, newProgram, toPath3) {\n const { file } = diagnostic;\n const sourceFile = file !== false ? newProgram.getSourceFileByPath(file ? toPath3(file) : diagnosticFilePath) : void 0;\n return {\n ...diagnostic,\n file: sourceFile,\n messageText: isString(diagnostic.messageText) ? diagnostic.messageText : convertOrRepopulateDiagnosticMessageChain(diagnostic.messageText, sourceFile, newProgram, (chain) => chain.info)\n };\n}\nfunction releaseCache(state) {\n BuilderState.releaseCache(state);\n state.program = void 0;\n}\nfunction assertSourceFileOkWithoutNextAffectedCall(state, sourceFile) {\n Debug.assert(!sourceFile || !state.affectedFiles || state.affectedFiles[state.affectedFilesIndex - 1] !== sourceFile || !state.semanticDiagnosticsPerFile.has(sourceFile.resolvedPath));\n}\nfunction getNextAffectedFile(state, cancellationToken, host) {\n var _a;\n while (true) {\n const { affectedFiles } = state;\n if (affectedFiles) {\n const seenAffectedFiles = state.seenAffectedFiles;\n let affectedFilesIndex = state.affectedFilesIndex;\n while (affectedFilesIndex < affectedFiles.length) {\n const affectedFile = affectedFiles[affectedFilesIndex];\n if (!seenAffectedFiles.has(affectedFile.resolvedPath)) {\n state.affectedFilesIndex = affectedFilesIndex;\n addToAffectedFilesPendingEmit(\n state,\n affectedFile.resolvedPath,\n getBuilderFileEmit(state.compilerOptions)\n );\n handleDtsMayChangeOfAffectedFile(\n state,\n affectedFile,\n cancellationToken,\n host\n );\n return affectedFile;\n }\n affectedFilesIndex++;\n }\n state.changedFilesSet.delete(state.currentChangedFilePath);\n state.currentChangedFilePath = void 0;\n (_a = state.oldSignatures) == null ? void 0 : _a.clear();\n state.affectedFiles = void 0;\n }\n const nextKey = state.changedFilesSet.keys().next();\n if (nextKey.done) {\n return void 0;\n }\n const compilerOptions = state.program.getCompilerOptions();\n if (compilerOptions.outFile) return state.program;\n state.affectedFiles = BuilderState.getFilesAffectedByWithOldState(\n state,\n state.program,\n nextKey.value,\n cancellationToken,\n host\n );\n state.currentChangedFilePath = nextKey.value;\n state.affectedFilesIndex = 0;\n if (!state.seenAffectedFiles) state.seenAffectedFiles = /* @__PURE__ */ new Set();\n }\n}\nfunction clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles, isForDtsErrors) {\n var _a, _b;\n if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size) && !state.programEmitPending) return;\n if (!emitOnlyDtsFiles && !isForDtsErrors) {\n state.affectedFilesPendingEmit = void 0;\n state.programEmitPending = void 0;\n }\n (_b = state.affectedFilesPendingEmit) == null ? void 0 : _b.forEach((emitKind, path) => {\n const pending = !isForDtsErrors ? emitKind & 7 /* AllJs */ : emitKind & (7 /* AllJs */ | 48 /* AllDtsEmit */);\n if (!pending) state.affectedFilesPendingEmit.delete(path);\n else state.affectedFilesPendingEmit.set(path, pending);\n });\n if (state.programEmitPending) {\n const pending = !isForDtsErrors ? state.programEmitPending & 7 /* AllJs */ : state.programEmitPending & (7 /* AllJs */ | 48 /* AllDtsEmit */);\n if (!pending) state.programEmitPending = void 0;\n else state.programEmitPending = pending;\n }\n}\nfunction getPendingEmitKindWithSeen(optionsOrEmitKind, seenOldOptionsOrEmitKind, emitOnlyDtsFiles, isForDtsErrors) {\n let pendingKind = getPendingEmitKind(optionsOrEmitKind, seenOldOptionsOrEmitKind);\n if (emitOnlyDtsFiles) pendingKind = pendingKind & 56 /* AllDts */;\n if (isForDtsErrors) pendingKind = pendingKind & 8 /* DtsErrors */;\n return pendingKind;\n}\nfunction getBuilderFileEmitAllDts(isForDtsErrors) {\n return !isForDtsErrors ? 56 /* AllDts */ : 8 /* DtsErrors */;\n}\nfunction getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles, isForDtsErrors) {\n var _a;\n if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size)) return void 0;\n return forEachEntry(state.affectedFilesPendingEmit, (emitKind, path) => {\n var _a2;\n const affectedFile = state.program.getSourceFileByPath(path);\n if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) {\n state.affectedFilesPendingEmit.delete(path);\n return void 0;\n }\n const seenKind = (_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedFile.resolvedPath);\n const pendingKind = getPendingEmitKindWithSeen(\n emitKind,\n seenKind,\n emitOnlyDtsFiles,\n isForDtsErrors\n );\n if (pendingKind) return { affectedFile, emitKind: pendingKind };\n });\n}\nfunction getNextPendingEmitDiagnosticsFile(state, isForDtsErrors) {\n var _a;\n if (!((_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.size)) return void 0;\n return forEachEntry(state.emitDiagnosticsPerFile, (diagnostics, path) => {\n var _a2;\n const affectedFile = state.program.getSourceFileByPath(path);\n if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) {\n state.emitDiagnosticsPerFile.delete(path);\n return void 0;\n }\n const seenKind = ((_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedFile.resolvedPath)) || 0 /* None */;\n if (!(seenKind & getBuilderFileEmitAllDts(isForDtsErrors))) return { affectedFile, diagnostics, seenKind };\n });\n}\nfunction removeDiagnosticsOfLibraryFiles(state) {\n if (!state.cleanedDiagnosticsOfLibFiles) {\n state.cleanedDiagnosticsOfLibFiles = true;\n const options = state.program.getCompilerOptions();\n forEach(state.program.getSourceFiles(), (f) => state.program.isSourceFileDefaultLibrary(f) && !skipTypeCheckingIgnoringNoCheck(f, options, state.program) && removeSemanticDiagnosticsOf(state, f.resolvedPath));\n }\n}\nfunction handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, host) {\n removeSemanticDiagnosticsOf(state, affectedFile.resolvedPath);\n if (state.allFilesExcludingDefaultLibraryFile === state.affectedFiles) {\n removeDiagnosticsOfLibraryFiles(state);\n BuilderState.updateShapeSignature(\n state,\n state.program,\n affectedFile,\n cancellationToken,\n host\n );\n return;\n }\n if (state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) return;\n handleDtsMayChangeOfReferencingExportOfAffectedFile(\n state,\n affectedFile,\n cancellationToken,\n host\n );\n}\nfunction handleDtsMayChangeOf(state, path, invalidateJsFiles, cancellationToken, host) {\n removeSemanticDiagnosticsOf(state, path);\n if (!state.changedFilesSet.has(path)) {\n const sourceFile = state.program.getSourceFileByPath(path);\n if (sourceFile) {\n BuilderState.updateShapeSignature(\n state,\n state.program,\n sourceFile,\n cancellationToken,\n host,\n /*useFileVersionAsSignature*/\n true\n );\n if (invalidateJsFiles) {\n addToAffectedFilesPendingEmit(\n state,\n path,\n getBuilderFileEmit(state.compilerOptions)\n );\n } else if (getEmitDeclarations(state.compilerOptions)) {\n addToAffectedFilesPendingEmit(\n state,\n path,\n state.compilerOptions.declarationMap ? 56 /* AllDts */ : 24 /* Dts */\n );\n }\n }\n }\n}\nfunction removeSemanticDiagnosticsOf(state, path) {\n if (!state.semanticDiagnosticsFromOldState) {\n return true;\n }\n state.semanticDiagnosticsFromOldState.delete(path);\n state.semanticDiagnosticsPerFile.delete(path);\n return !state.semanticDiagnosticsFromOldState.size;\n}\nfunction isChangedSignature(state, path) {\n const oldSignature = Debug.checkDefined(state.oldSignatures).get(path) || void 0;\n const newSignature = Debug.checkDefined(state.fileInfos.get(path)).signature;\n return newSignature !== oldSignature;\n}\nfunction handleDtsMayChangeOfGlobalScope(state, filePath, invalidateJsFiles, cancellationToken, host) {\n var _a;\n if (!((_a = state.fileInfos.get(filePath)) == null ? void 0 : _a.affectsGlobalScope)) return false;\n BuilderState.getAllFilesExcludingDefaultLibraryFile(\n state,\n state.program,\n /*firstSourceFile*/\n void 0\n ).forEach(\n (file) => handleDtsMayChangeOf(\n state,\n file.resolvedPath,\n invalidateJsFiles,\n cancellationToken,\n host\n )\n );\n removeDiagnosticsOfLibraryFiles(state);\n return true;\n}\nfunction handleDtsMayChangeOfReferencingExportOfAffectedFile(state, affectedFile, cancellationToken, host) {\n var _a, _b;\n if (!state.referencedMap || !state.changedFilesSet.has(affectedFile.resolvedPath)) return;\n if (!isChangedSignature(state, affectedFile.resolvedPath)) return;\n if (getIsolatedModules(state.compilerOptions)) {\n const seenFileNamesMap = /* @__PURE__ */ new Map();\n seenFileNamesMap.set(affectedFile.resolvedPath, true);\n const queue = BuilderState.getReferencedByPaths(state, affectedFile.resolvedPath);\n while (queue.length > 0) {\n const currentPath = queue.pop();\n if (!seenFileNamesMap.has(currentPath)) {\n seenFileNamesMap.set(currentPath, true);\n if (handleDtsMayChangeOfGlobalScope(\n state,\n currentPath,\n /*invalidateJsFiles*/\n false,\n cancellationToken,\n host\n )) return;\n handleDtsMayChangeOf(\n state,\n currentPath,\n /*invalidateJsFiles*/\n false,\n cancellationToken,\n host\n );\n if (isChangedSignature(state, currentPath)) {\n const currentSourceFile = state.program.getSourceFileByPath(currentPath);\n queue.push(...BuilderState.getReferencedByPaths(state, currentSourceFile.resolvedPath));\n }\n }\n }\n }\n const seenFileAndExportsOfFile = /* @__PURE__ */ new Set();\n const invalidateJsFiles = !!((_a = affectedFile.symbol) == null ? void 0 : _a.exports) && !!forEachEntry(\n affectedFile.symbol.exports,\n (exported) => {\n if ((exported.flags & 128 /* ConstEnum */) !== 0) return true;\n const aliased = skipAlias(exported, state.program.getTypeChecker());\n if (aliased === exported) return false;\n return (aliased.flags & 128 /* ConstEnum */) !== 0 && some(aliased.declarations, (d) => getSourceFileOfNode(d) === affectedFile);\n }\n );\n (_b = state.referencedMap.getKeys(affectedFile.resolvedPath)) == null ? void 0 : _b.forEach((exportedFromPath) => {\n if (handleDtsMayChangeOfGlobalScope(state, exportedFromPath, invalidateJsFiles, cancellationToken, host)) return true;\n const references = state.referencedMap.getKeys(exportedFromPath);\n return references && forEachKey(references, (filePath) => handleDtsMayChangeOfFileAndExportsOfFile(\n state,\n filePath,\n invalidateJsFiles,\n seenFileAndExportsOfFile,\n cancellationToken,\n host\n ));\n });\n}\nfunction handleDtsMayChangeOfFileAndExportsOfFile(state, filePath, invalidateJsFiles, seenFileAndExportsOfFile, cancellationToken, host) {\n var _a;\n if (!tryAddToSet(seenFileAndExportsOfFile, filePath)) return void 0;\n if (handleDtsMayChangeOfGlobalScope(state, filePath, invalidateJsFiles, cancellationToken, host)) return true;\n handleDtsMayChangeOf(state, filePath, invalidateJsFiles, cancellationToken, host);\n (_a = state.referencedMap.getKeys(filePath)) == null ? void 0 : _a.forEach(\n (referencingFilePath) => handleDtsMayChangeOfFileAndExportsOfFile(\n state,\n referencingFilePath,\n invalidateJsFiles,\n seenFileAndExportsOfFile,\n cancellationToken,\n host\n )\n );\n return void 0;\n}\nfunction getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile) {\n if (state.compilerOptions.noCheck) return emptyArray;\n return concatenate(\n getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile),\n state.program.getProgramDiagnostics(sourceFile)\n );\n}\nfunction getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile) {\n semanticDiagnosticsPerFile ?? (semanticDiagnosticsPerFile = state.semanticDiagnosticsPerFile);\n const path = sourceFile.resolvedPath;\n const cachedDiagnostics = semanticDiagnosticsPerFile.get(path);\n if (cachedDiagnostics) {\n return filterSemanticDiagnostics(cachedDiagnostics, state.compilerOptions);\n }\n const diagnostics = state.program.getBindAndCheckDiagnostics(sourceFile, cancellationToken);\n semanticDiagnosticsPerFile.set(path, diagnostics);\n state.buildInfoEmitPending = true;\n return filterSemanticDiagnostics(diagnostics, state.compilerOptions);\n}\nfunction isIncrementalBundleEmitBuildInfo(info) {\n var _a;\n return !!((_a = info.options) == null ? void 0 : _a.outFile);\n}\nfunction isIncrementalBuildInfo(info) {\n return !!info.fileNames;\n}\nfunction isNonIncrementalBuildInfo(info) {\n return !isIncrementalBuildInfo(info) && !!info.root;\n}\nfunction ensureHasErrorsForState(state) {\n if (state.hasErrors !== void 0) return;\n if (isIncrementalCompilation(state.compilerOptions)) {\n state.hasErrors = !some(state.program.getSourceFiles(), (f) => {\n var _a, _b;\n const bindAndCheckDiagnostics = state.semanticDiagnosticsPerFile.get(f.resolvedPath);\n return bindAndCheckDiagnostics === void 0 || // Missing semantic diagnostics in cache will be encoded in buildInfo\n !!bindAndCheckDiagnostics.length || // cached semantic diagnostics will be encoded in buildInfo\n !!((_b = (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(f.resolvedPath)) == null ? void 0 : _b.length);\n }) && (hasSyntaxOrGlobalErrors(state) || some(state.program.getSourceFiles(), (f) => !!state.program.getProgramDiagnostics(f).length));\n } else {\n state.hasErrors = some(state.program.getSourceFiles(), (f) => {\n var _a, _b;\n const bindAndCheckDiagnostics = state.semanticDiagnosticsPerFile.get(f.resolvedPath);\n return !!(bindAndCheckDiagnostics == null ? void 0 : bindAndCheckDiagnostics.length) || // If has semantic diagnostics\n !!((_b = (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(f.resolvedPath)) == null ? void 0 : _b.length);\n }) || hasSyntaxOrGlobalErrors(state);\n }\n}\nfunction hasSyntaxOrGlobalErrors(state) {\n return !!state.program.getConfigFileParsingDiagnostics().length || !!state.program.getSyntacticDiagnostics().length || !!state.program.getOptionsDiagnostics().length || !!state.program.getGlobalDiagnostics().length;\n}\nfunction getBuildInfoEmitPending(state) {\n ensureHasErrorsForState(state);\n return state.buildInfoEmitPending ?? (state.buildInfoEmitPending = !!state.hasErrorsFromOldState !== !!state.hasErrors);\n}\nfunction getBuildInfo2(state) {\n var _a, _b;\n const currentDirectory = state.program.getCurrentDirectory();\n const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory));\n const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;\n const fileNames = [];\n const fileNameToFileId = /* @__PURE__ */ new Map();\n const rootFileNames = new Set(state.program.getRootFileNames().map((f) => toPath(f, currentDirectory, state.program.getCanonicalFileName)));\n ensureHasErrorsForState(state);\n if (!isIncrementalCompilation(state.compilerOptions)) {\n const buildInfo2 = {\n root: arrayFrom(rootFileNames, (r) => relativeToBuildInfo(r)),\n errors: state.hasErrors ? true : void 0,\n checkPending: state.checkPending,\n version\n };\n return buildInfo2;\n }\n const root = [];\n if (state.compilerOptions.outFile) {\n const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {\n const fileId = toFileId(key);\n tryAddRoot(key, fileId);\n return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;\n });\n const buildInfo2 = {\n fileNames,\n fileInfos: fileInfos2,\n root,\n resolvedRoot: toResolvedRoot(),\n options: toIncrementalBuildInfoCompilerOptions(state.compilerOptions),\n semanticDiagnosticsPerFile: !state.changedFilesSet.size ? toIncrementalBuildInfoDiagnostics() : void 0,\n emitDiagnosticsPerFile: toIncrementalBuildInfoEmitDiagnostics(),\n changeFileSet: toChangeFileSet(),\n outSignature: state.outSignature,\n latestChangedDtsFile,\n pendingEmit: !state.programEmitPending ? void 0 : (\n // Pending is undefined or None is encoded as undefined\n state.programEmitPending === getBuilderFileEmit(state.compilerOptions) ? false : (\n // Pending emit is same as deteremined by compilerOptions\n state.programEmitPending\n )\n ),\n // Actual value\n errors: state.hasErrors ? true : void 0,\n checkPending: state.checkPending,\n version\n };\n return buildInfo2;\n }\n let fileIdsList;\n let fileNamesToFileIdListId;\n let emitSignatures;\n const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {\n var _a2, _b2;\n const fileId = toFileId(key);\n tryAddRoot(key, fileId);\n Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));\n const oldSignature = (_a2 = state.oldSignatures) == null ? void 0 : _a2.get(key);\n const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;\n if (state.compilerOptions.composite) {\n const file = state.program.getSourceFileByPath(key);\n if (!isJsonSourceFile(file) && sourceFileMayBeEmitted(file, state.program)) {\n const emitSignature = (_b2 = state.emitSignatures) == null ? void 0 : _b2.get(key);\n if (emitSignature !== actualSignature) {\n emitSignatures = append(\n emitSignatures,\n emitSignature === void 0 ? fileId : (\n // There is no emit, encode as false\n // fileId, signature: emptyArray if signature only differs in dtsMap option than our own compilerOptions otherwise EmitSignature\n [fileId, !isString(emitSignature) && emitSignature[0] === actualSignature ? emptyArray : emitSignature]\n )\n );\n }\n }\n }\n return value.version === actualSignature ? value.affectsGlobalScope || value.impliedFormat ? (\n // If file version is same as signature, dont serialize signature\n { version: value.version, signature: void 0, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n ) : (\n // If file info only contains version and signature and both are same we can just write string\n value.version\n ) : actualSignature !== void 0 ? (\n // If signature is not same as version, encode signature in the fileInfo\n oldSignature === void 0 ? (\n // If we havent computed signature, use fileInfo as is\n value\n ) : (\n // Serialize fileInfo with new updated signature\n { version: value.version, signature: actualSignature, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n )\n ) : (\n // Signature of the FileInfo is undefined, serialize it as false\n { version: value.version, signature: false, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n );\n });\n let referencedMap;\n if ((_a = state.referencedMap) == null ? void 0 : _a.size()) {\n referencedMap = arrayFrom(state.referencedMap.keys()).sort(compareStringsCaseSensitive).map((key) => [\n toFileId(key),\n toFileIdListId(state.referencedMap.getValues(key))\n ]);\n }\n const semanticDiagnosticsPerFile = toIncrementalBuildInfoDiagnostics();\n let affectedFilesPendingEmit;\n if ((_b = state.affectedFilesPendingEmit) == null ? void 0 : _b.size) {\n const fullEmitForOptions = getBuilderFileEmit(state.compilerOptions);\n const seenFiles = /* @__PURE__ */ new Set();\n for (const path of arrayFrom(state.affectedFilesPendingEmit.keys()).sort(compareStringsCaseSensitive)) {\n if (tryAddToSet(seenFiles, path)) {\n const file = state.program.getSourceFileByPath(path);\n if (!file || !sourceFileMayBeEmitted(file, state.program)) continue;\n const fileId = toFileId(path), pendingEmit = state.affectedFilesPendingEmit.get(path);\n affectedFilesPendingEmit = append(\n affectedFilesPendingEmit,\n pendingEmit === fullEmitForOptions ? fileId : (\n // Pending full emit per options\n pendingEmit === 24 /* Dts */ ? [fileId] : (\n // Pending on Dts only\n [fileId, pendingEmit]\n )\n )\n // Anything else\n );\n }\n }\n }\n const buildInfo = {\n fileNames,\n fileIdsList,\n fileInfos,\n root,\n resolvedRoot: toResolvedRoot(),\n options: toIncrementalBuildInfoCompilerOptions(state.compilerOptions),\n referencedMap,\n semanticDiagnosticsPerFile,\n emitDiagnosticsPerFile: toIncrementalBuildInfoEmitDiagnostics(),\n changeFileSet: toChangeFileSet(),\n affectedFilesPendingEmit,\n emitSignatures,\n latestChangedDtsFile,\n errors: state.hasErrors ? true : void 0,\n checkPending: state.checkPending,\n version\n };\n return buildInfo;\n function relativeToBuildInfoEnsuringAbsolutePath(path) {\n return relativeToBuildInfo(getNormalizedAbsolutePath(path, currentDirectory));\n }\n function relativeToBuildInfo(path) {\n return ensurePathIsNonModuleName(getRelativePathFromDirectory(buildInfoDirectory, path, state.program.getCanonicalFileName));\n }\n function toFileId(path) {\n let fileId = fileNameToFileId.get(path);\n if (fileId === void 0) {\n fileNames.push(relativeToBuildInfo(path));\n fileNameToFileId.set(path, fileId = fileNames.length);\n }\n return fileId;\n }\n function toFileIdListId(set) {\n const fileIds = arrayFrom(set.keys(), toFileId).sort(compareValues);\n const key = fileIds.join();\n let fileIdListId = fileNamesToFileIdListId == null ? void 0 : fileNamesToFileIdListId.get(key);\n if (fileIdListId === void 0) {\n fileIdsList = append(fileIdsList, fileIds);\n (fileNamesToFileIdListId ?? (fileNamesToFileIdListId = /* @__PURE__ */ new Map())).set(key, fileIdListId = fileIdsList.length);\n }\n return fileIdListId;\n }\n function tryAddRoot(path, fileId) {\n const file = state.program.getSourceFile(path);\n if (!state.program.getFileIncludeReasons().get(file.path).some((r) => r.kind === 0 /* RootFile */)) return;\n if (!root.length) return root.push(fileId);\n const last2 = root[root.length - 1];\n const isLastStartEnd = isArray(last2);\n if (isLastStartEnd && last2[1] === fileId - 1) return last2[1] = fileId;\n if (isLastStartEnd || root.length === 1 || last2 !== fileId - 1) return root.push(fileId);\n const lastButOne = root[root.length - 2];\n if (!isNumber(lastButOne) || lastButOne !== last2 - 1) return root.push(fileId);\n root[root.length - 2] = [lastButOne, fileId];\n return root.length = root.length - 1;\n }\n function toResolvedRoot() {\n let result;\n rootFileNames.forEach((path) => {\n const file = state.program.getSourceFileByPath(path);\n if (file && path !== file.resolvedPath) {\n result = append(result, [toFileId(file.resolvedPath), toFileId(path)]);\n }\n });\n return result;\n }\n function toIncrementalBuildInfoCompilerOptions(options) {\n let result;\n const { optionsNameMap } = getOptionsNameMap();\n for (const name of getOwnKeys(options).sort(compareStringsCaseSensitive)) {\n const optionInfo = optionsNameMap.get(name.toLowerCase());\n if (optionInfo == null ? void 0 : optionInfo.affectsBuildInfo) {\n (result || (result = {}))[name] = toReusableCompilerOptionValue(\n optionInfo,\n options[name]\n );\n }\n }\n return result;\n }\n function toReusableCompilerOptionValue(option, value) {\n if (option) {\n Debug.assert(option.type !== \"listOrElement\");\n if (option.type === \"list\") {\n const values = value;\n if (option.element.isFilePath && values.length) {\n return values.map(relativeToBuildInfoEnsuringAbsolutePath);\n }\n } else if (option.isFilePath) {\n return relativeToBuildInfoEnsuringAbsolutePath(value);\n }\n }\n return value;\n }\n function toIncrementalBuildInfoDiagnostics() {\n let result;\n state.fileInfos.forEach((_value, key) => {\n const value = state.semanticDiagnosticsPerFile.get(key);\n if (!value) {\n if (!state.changedFilesSet.has(key)) result = append(result, toFileId(key));\n } else if (value.length) {\n result = append(result, [\n toFileId(key),\n toReusableDiagnostic(value, key)\n ]);\n }\n });\n return result;\n }\n function toIncrementalBuildInfoEmitDiagnostics() {\n var _a2;\n let result;\n if (!((_a2 = state.emitDiagnosticsPerFile) == null ? void 0 : _a2.size)) return result;\n for (const key of arrayFrom(state.emitDiagnosticsPerFile.keys()).sort(compareStringsCaseSensitive)) {\n const value = state.emitDiagnosticsPerFile.get(key);\n result = append(result, [\n toFileId(key),\n toReusableDiagnostic(value, key)\n ]);\n }\n return result;\n }\n function toReusableDiagnostic(diagnostics, diagnosticFilePath) {\n Debug.assert(!!diagnostics.length);\n return diagnostics.map((diagnostic) => {\n const result = toReusableDiagnosticRelatedInformation(diagnostic, diagnosticFilePath);\n result.reportsUnnecessary = diagnostic.reportsUnnecessary;\n result.reportDeprecated = diagnostic.reportsDeprecated;\n result.source = diagnostic.source;\n result.skippedOn = diagnostic.skippedOn;\n const { relatedInformation } = diagnostic;\n result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map((r) => toReusableDiagnosticRelatedInformation(r, diagnosticFilePath)) : [] : void 0;\n return result;\n });\n }\n function toReusableDiagnosticRelatedInformation(diagnostic, diagnosticFilePath) {\n const { file } = diagnostic;\n return {\n ...diagnostic,\n file: file ? file.resolvedPath === diagnosticFilePath ? void 0 : relativeToBuildInfo(file.resolvedPath) : false,\n messageText: isString(diagnostic.messageText) ? diagnostic.messageText : toReusableDiagnosticMessageChain(diagnostic.messageText)\n };\n }\n function toReusableDiagnosticMessageChain(chain) {\n if (chain.repopulateInfo) {\n return {\n info: chain.repopulateInfo(),\n next: toReusableDiagnosticMessageChainArray(chain.next)\n };\n }\n const next = toReusableDiagnosticMessageChainArray(chain.next);\n return next === chain.next ? chain : { ...chain, next };\n }\n function toReusableDiagnosticMessageChainArray(array) {\n if (!array) return array;\n return forEach(array, (chain, index) => {\n const reusable = toReusableDiagnosticMessageChain(chain);\n if (chain === reusable) return void 0;\n const result = index > 0 ? array.slice(0, index - 1) : [];\n result.push(reusable);\n for (let i = index + 1; i < array.length; i++) {\n result.push(toReusableDiagnosticMessageChain(array[i]));\n }\n return result;\n }) || array;\n }\n function toChangeFileSet() {\n let changeFileSet;\n if (state.changedFilesSet.size) {\n for (const path of arrayFrom(state.changedFilesSet.keys()).sort(compareStringsCaseSensitive)) {\n changeFileSet = append(changeFileSet, toFileId(path));\n }\n }\n return changeFileSet;\n }\n}\nvar BuilderProgramKind = /* @__PURE__ */ ((BuilderProgramKind2) => {\n BuilderProgramKind2[BuilderProgramKind2[\"SemanticDiagnosticsBuilderProgram\"] = 0] = \"SemanticDiagnosticsBuilderProgram\";\n BuilderProgramKind2[BuilderProgramKind2[\"EmitAndSemanticDiagnosticsBuilderProgram\"] = 1] = \"EmitAndSemanticDiagnosticsBuilderProgram\";\n return BuilderProgramKind2;\n})(BuilderProgramKind || {});\nfunction getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n let host;\n let newProgram;\n let oldProgram;\n if (newProgramOrRootNames === void 0) {\n Debug.assert(hostOrOptions === void 0);\n host = oldProgramOrHost;\n oldProgram = configFileParsingDiagnosticsOrOldProgram;\n Debug.assert(!!oldProgram);\n newProgram = oldProgram.getProgram();\n } else if (isArray(newProgramOrRootNames)) {\n oldProgram = configFileParsingDiagnosticsOrOldProgram;\n newProgram = createProgram({\n rootNames: newProgramOrRootNames,\n options: hostOrOptions,\n host: oldProgramOrHost,\n oldProgram: oldProgram && oldProgram.getProgramOrUndefined(),\n configFileParsingDiagnostics,\n projectReferences\n });\n host = oldProgramOrHost;\n } else {\n newProgram = newProgramOrRootNames;\n host = hostOrOptions;\n oldProgram = oldProgramOrHost;\n configFileParsingDiagnostics = configFileParsingDiagnosticsOrOldProgram;\n }\n return { host, newProgram, oldProgram, configFileParsingDiagnostics: configFileParsingDiagnostics || emptyArray };\n}\nfunction getTextHandlingSourceMapForSignature(text, data) {\n return (data == null ? void 0 : data.sourceMapUrlPos) !== void 0 ? text.substring(0, data.sourceMapUrlPos) : text;\n}\nfunction computeSignatureWithDiagnostics(program, sourceFile, text, host, data) {\n var _a;\n text = getTextHandlingSourceMapForSignature(text, data);\n let sourceFileDirectory;\n if ((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length) {\n text += data.diagnostics.map((diagnostic) => `${locationInfo(diagnostic)}${DiagnosticCategory[diagnostic.category]}${diagnostic.code}: ${flattenDiagnosticMessageText2(diagnostic.messageText)}`).join(\"\\n\");\n }\n return (host.createHash ?? generateDjb2Hash)(text);\n function flattenDiagnosticMessageText2(diagnostic) {\n return isString(diagnostic) ? diagnostic : diagnostic === void 0 ? \"\" : !diagnostic.next ? diagnostic.messageText : diagnostic.messageText + diagnostic.next.map(flattenDiagnosticMessageText2).join(\"\\n\");\n }\n function locationInfo(diagnostic) {\n if (diagnostic.file.resolvedPath === sourceFile.resolvedPath) return `(${diagnostic.start},${diagnostic.length})`;\n if (sourceFileDirectory === void 0) sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath);\n return `${ensurePathIsNonModuleName(getRelativePathFromDirectory(\n sourceFileDirectory,\n diagnostic.file.resolvedPath,\n program.getCanonicalFileName\n ))}(${diagnostic.start},${diagnostic.length})`;\n }\n}\nfunction computeSignature(text, host, data) {\n return (host.createHash ?? generateDjb2Hash)(getTextHandlingSourceMapForSignature(text, data));\n}\nfunction createBuilderProgram(kind, { newProgram, host, oldProgram, configFileParsingDiagnostics }) {\n let oldState = oldProgram && oldProgram.state;\n if (oldState && newProgram === oldState.program && configFileParsingDiagnostics === newProgram.getConfigFileParsingDiagnostics()) {\n newProgram = void 0;\n oldState = void 0;\n return oldProgram;\n }\n const state = createBuilderProgramState(newProgram, oldState);\n newProgram.getBuildInfo = () => getBuildInfo2(toBuilderProgramStateWithDefinedProgram(state));\n newProgram = void 0;\n oldProgram = void 0;\n oldState = void 0;\n const builderProgram = createRedirectedBuilderProgram(state, configFileParsingDiagnostics);\n builderProgram.state = state;\n builderProgram.hasChangedEmitSignature = () => !!state.hasChangedEmitSignature;\n builderProgram.getAllDependencies = (sourceFile) => BuilderState.getAllDependencies(\n state,\n Debug.checkDefined(state.program),\n sourceFile\n );\n builderProgram.getSemanticDiagnostics = getSemanticDiagnostics;\n builderProgram.getDeclarationDiagnostics = getDeclarationDiagnostics2;\n builderProgram.emit = emit;\n builderProgram.releaseProgram = () => releaseCache(state);\n if (kind === 0 /* SemanticDiagnosticsBuilderProgram */) {\n builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile;\n } else if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile;\n builderProgram.emitNextAffectedFile = emitNextAffectedFile;\n builderProgram.emitBuildInfo = emitBuildInfo;\n } else {\n notImplemented();\n }\n return builderProgram;\n function emitBuildInfo(writeFile2, cancellationToken) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n if (getBuildInfoEmitPending(state)) {\n const result = state.program.emitBuildInfo(\n writeFile2 || maybeBind(host, host.writeFile),\n cancellationToken\n );\n state.buildInfoEmitPending = false;\n return result;\n }\n return emitSkippedWithNoDiagnostics;\n }\n function emitNextAffectedFileOrDtsErrors(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers, isForDtsErrors) {\n var _a, _b, _c, _d;\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n let affected = getNextAffectedFile(state, cancellationToken, host);\n const programEmitKind = getBuilderFileEmit(state.compilerOptions);\n let emitKind = !isForDtsErrors ? emitOnlyDtsFiles ? programEmitKind & 56 /* AllDts */ : programEmitKind : 8 /* DtsErrors */;\n if (!affected) {\n if (!state.compilerOptions.outFile) {\n const pendingAffectedFile = getNextAffectedFilePendingEmit(\n state,\n emitOnlyDtsFiles,\n isForDtsErrors\n );\n if (pendingAffectedFile) {\n ({ affectedFile: affected, emitKind } = pendingAffectedFile);\n } else {\n const pendingForDiagnostics = getNextPendingEmitDiagnosticsFile(\n state,\n isForDtsErrors\n );\n if (pendingForDiagnostics) {\n (state.seenEmittedFiles ?? (state.seenEmittedFiles = /* @__PURE__ */ new Map())).set(\n pendingForDiagnostics.affectedFile.resolvedPath,\n pendingForDiagnostics.seenKind | getBuilderFileEmitAllDts(isForDtsErrors)\n );\n return {\n result: { emitSkipped: true, diagnostics: pendingForDiagnostics.diagnostics },\n affected: pendingForDiagnostics.affectedFile\n };\n }\n }\n } else {\n if (state.programEmitPending) {\n emitKind = getPendingEmitKindWithSeen(\n state.programEmitPending,\n state.seenProgramEmit,\n emitOnlyDtsFiles,\n isForDtsErrors\n );\n if (emitKind) affected = state.program;\n }\n if (!affected && ((_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.size)) {\n const seenKind = state.seenProgramEmit || 0 /* None */;\n if (!(seenKind & getBuilderFileEmitAllDts(isForDtsErrors))) {\n state.seenProgramEmit = getBuilderFileEmitAllDts(isForDtsErrors) | seenKind;\n const diagnostics = [];\n state.emitDiagnosticsPerFile.forEach((d) => addRange(diagnostics, d));\n return {\n result: { emitSkipped: true, diagnostics },\n affected: state.program\n };\n }\n }\n }\n if (!affected) {\n if (isForDtsErrors || !getBuildInfoEmitPending(state)) return void 0;\n const affected2 = state.program;\n const result2 = affected2.emitBuildInfo(\n writeFile2 || maybeBind(host, host.writeFile),\n cancellationToken\n );\n state.buildInfoEmitPending = false;\n return { result: result2, affected: affected2 };\n }\n }\n let emitOnly;\n if (emitKind & 7 /* AllJs */) emitOnly = 0 /* Js */;\n if (emitKind & 56 /* AllDts */) emitOnly = emitOnly === void 0 ? 1 /* Dts */ : void 0;\n const result = !isForDtsErrors ? state.program.emit(\n affected === state.program ? void 0 : affected,\n getWriteFileCallback(writeFile2, customTransformers),\n cancellationToken,\n emitOnly,\n customTransformers,\n /*forceDtsEmit*/\n void 0,\n /*skipBuildInfo*/\n true\n ) : {\n emitSkipped: true,\n diagnostics: state.program.getDeclarationDiagnostics(\n affected === state.program ? void 0 : affected,\n cancellationToken\n )\n };\n if (affected !== state.program) {\n const affectedSourceFile = affected;\n state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);\n if (state.affectedFilesIndex !== void 0) state.affectedFilesIndex++;\n state.buildInfoEmitPending = true;\n const existing = ((_b = state.seenEmittedFiles) == null ? void 0 : _b.get(affectedSourceFile.resolvedPath)) || 0 /* None */;\n (state.seenEmittedFiles ?? (state.seenEmittedFiles = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, emitKind | existing);\n const existingPending = ((_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.get(affectedSourceFile.resolvedPath)) || programEmitKind;\n const pendingKind = getPendingEmitKind(existingPending, emitKind | existing);\n if (pendingKind) (state.affectedFilesPendingEmit ?? (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, pendingKind);\n else (_d = state.affectedFilesPendingEmit) == null ? void 0 : _d.delete(affectedSourceFile.resolvedPath);\n if (result.diagnostics.length) (state.emitDiagnosticsPerFile ?? (state.emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, result.diagnostics);\n } else {\n state.changedFilesSet.clear();\n state.programEmitPending = state.changedFilesSet.size ? getPendingEmitKind(programEmitKind, emitKind) : state.programEmitPending ? getPendingEmitKind(state.programEmitPending, emitKind) : void 0;\n state.seenProgramEmit = emitKind | (state.seenProgramEmit || 0 /* None */);\n setEmitDiagnosticsPerFile(result.diagnostics);\n state.buildInfoEmitPending = true;\n }\n return { result, affected };\n }\n function setEmitDiagnosticsPerFile(diagnostics) {\n let emitDiagnosticsPerFile;\n diagnostics.forEach((d) => {\n if (!d.file) return;\n let diagnostics2 = emitDiagnosticsPerFile == null ? void 0 : emitDiagnosticsPerFile.get(d.file.resolvedPath);\n if (!diagnostics2) (emitDiagnosticsPerFile ?? (emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(d.file.resolvedPath, diagnostics2 = []);\n diagnostics2.push(d);\n });\n if (emitDiagnosticsPerFile) state.emitDiagnosticsPerFile = emitDiagnosticsPerFile;\n }\n function emitNextAffectedFile(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n return emitNextAffectedFileOrDtsErrors(\n writeFile2,\n cancellationToken,\n emitOnlyDtsFiles,\n customTransformers,\n /*isForDtsErrors*/\n false\n );\n }\n function getWriteFileCallback(writeFile2, customTransformers) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n if (!getEmitDeclarations(state.compilerOptions)) return writeFile2 || maybeBind(host, host.writeFile);\n return (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {\n var _a, _b, _c;\n if (isDeclarationFileName(fileName)) {\n if (!state.compilerOptions.outFile) {\n Debug.assert((sourceFiles == null ? void 0 : sourceFiles.length) === 1);\n let emitSignature;\n if (!customTransformers) {\n const file = sourceFiles[0];\n const info = state.fileInfos.get(file.resolvedPath);\n if (info.signature === file.version) {\n const signature = computeSignatureWithDiagnostics(\n state.program,\n file,\n text,\n host,\n data\n );\n if (!((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length)) emitSignature = signature;\n if (signature !== file.version) {\n if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(file.resolvedPath, 1 /* StoredSignatureAtEmit */);\n if (state.affectedFiles) {\n const existing = (_b = state.oldSignatures) == null ? void 0 : _b.get(file.resolvedPath);\n if (existing === void 0) (state.oldSignatures ?? (state.oldSignatures = /* @__PURE__ */ new Map())).set(file.resolvedPath, info.signature || false);\n info.signature = signature;\n } else {\n info.signature = signature;\n }\n }\n }\n }\n if (state.compilerOptions.composite) {\n const filePath = sourceFiles[0].resolvedPath;\n emitSignature = handleNewSignature((_c = state.emitSignatures) == null ? void 0 : _c.get(filePath), emitSignature);\n if (!emitSignature) return data.skippedDtsWrite = true;\n (state.emitSignatures ?? (state.emitSignatures = /* @__PURE__ */ new Map())).set(filePath, emitSignature);\n }\n } else if (state.compilerOptions.composite) {\n const newSignature = handleNewSignature(\n state.outSignature,\n /*newSignature*/\n void 0\n );\n if (!newSignature) return data.skippedDtsWrite = true;\n state.outSignature = newSignature;\n }\n }\n if (writeFile2) writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n else if (host.writeFile) host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n else state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n function handleNewSignature(oldSignatureFormat, newSignature) {\n const oldSignature = !oldSignatureFormat || isString(oldSignatureFormat) ? oldSignatureFormat : oldSignatureFormat[0];\n newSignature ?? (newSignature = computeSignature(text, host, data));\n if (newSignature === oldSignature) {\n if (oldSignatureFormat === oldSignature) return void 0;\n else if (data) data.differsOnlyInMap = true;\n else data = { differsOnlyInMap: true };\n } else {\n state.hasChangedEmitSignature = true;\n state.latestChangedDtsFile = fileName;\n }\n return newSignature;\n }\n };\n }\n function emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);\n }\n const result = handleNoEmitOptions(builderProgram, targetSourceFile, writeFile2, cancellationToken);\n if (result) return result;\n if (!targetSourceFile) {\n if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n let sourceMaps = [];\n let emitSkipped = false;\n let diagnostics;\n let emittedFiles = [];\n let affectedEmitResult;\n while (affectedEmitResult = emitNextAffectedFile(\n writeFile2,\n cancellationToken,\n emitOnlyDtsFiles,\n customTransformers\n )) {\n emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;\n diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);\n emittedFiles = addRange(emittedFiles, affectedEmitResult.result.emittedFiles);\n sourceMaps = addRange(sourceMaps, affectedEmitResult.result.sourceMaps);\n }\n return {\n emitSkipped,\n diagnostics: diagnostics || emptyArray,\n emittedFiles,\n sourceMaps\n };\n } else {\n clearAffectedFilesPendingEmit(\n state,\n emitOnlyDtsFiles,\n /*isForDtsErrors*/\n false\n );\n }\n }\n const emitResult = state.program.emit(\n targetSourceFile,\n getWriteFileCallback(writeFile2, customTransformers),\n cancellationToken,\n emitOnlyDtsFiles,\n customTransformers\n );\n handleNonEmitBuilderWithEmitOrDtsErrors(\n targetSourceFile,\n emitOnlyDtsFiles,\n /*isForDtsErrors*/\n false,\n emitResult.diagnostics\n );\n return emitResult;\n }\n function handleNonEmitBuilderWithEmitOrDtsErrors(targetSourceFile, emitOnlyDtsFiles, isForDtsErrors, diagnostics) {\n if (!targetSourceFile && kind !== 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles, isForDtsErrors);\n setEmitDiagnosticsPerFile(diagnostics);\n }\n }\n function getDeclarationDiagnostics2(sourceFile, cancellationToken) {\n var _a;\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n assertSourceFileOkWithoutNextAffectedCall(state, sourceFile);\n let affectedEmitResult;\n let diagnostics;\n while (affectedEmitResult = emitNextAffectedFileOrDtsErrors(\n /*writeFile*/\n void 0,\n cancellationToken,\n /*emitOnlyDtsFiles*/\n void 0,\n /*customTransformers*/\n void 0,\n /*isForDtsErrors*/\n true\n )) {\n if (!sourceFile) diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);\n }\n return (!sourceFile ? diagnostics : (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(sourceFile.resolvedPath)) || emptyArray;\n } else {\n const result = state.program.getDeclarationDiagnostics(sourceFile, cancellationToken);\n handleNonEmitBuilderWithEmitOrDtsErrors(\n sourceFile,\n /*emitOnlyDtsFiles*/\n void 0,\n /*isForDtsErrors*/\n true,\n result\n );\n return result;\n }\n }\n function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n while (true) {\n const affected = getNextAffectedFile(state, cancellationToken, host);\n let result;\n if (!affected) {\n if (state.checkPending && !state.compilerOptions.noCheck) {\n state.checkPending = void 0;\n state.buildInfoEmitPending = true;\n }\n return void 0;\n } else if (affected !== state.program) {\n const affectedSourceFile = affected;\n if (!ignoreSourceFile || !ignoreSourceFile(affectedSourceFile)) {\n result = getSemanticDiagnosticsOfFile(state, affectedSourceFile, cancellationToken);\n }\n state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);\n state.affectedFilesIndex++;\n state.buildInfoEmitPending = true;\n if (!result) continue;\n } else {\n let diagnostics;\n const semanticDiagnosticsPerFile = /* @__PURE__ */ new Map();\n state.program.getSourceFiles().forEach(\n (sourceFile) => diagnostics = addRange(\n diagnostics,\n getSemanticDiagnosticsOfFile(\n state,\n sourceFile,\n cancellationToken,\n semanticDiagnosticsPerFile\n )\n )\n );\n state.semanticDiagnosticsPerFile = semanticDiagnosticsPerFile;\n result = diagnostics || emptyArray;\n state.changedFilesSet.clear();\n state.programEmitPending = getBuilderFileEmit(state.compilerOptions);\n if (!state.compilerOptions.noCheck) state.checkPending = void 0;\n state.buildInfoEmitPending = true;\n }\n return { result, affected };\n }\n }\n function getSemanticDiagnostics(sourceFile, cancellationToken) {\n Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n assertSourceFileOkWithoutNextAffectedCall(state, sourceFile);\n if (sourceFile) {\n return getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken);\n }\n while (true) {\n const affectedResult = getSemanticDiagnosticsOfNextAffectedFile(cancellationToken);\n if (!affectedResult) break;\n if (affectedResult.affected === state.program) return affectedResult.result;\n }\n let diagnostics;\n for (const sourceFile2 of state.program.getSourceFiles()) {\n diagnostics = addRange(diagnostics, getSemanticDiagnosticsOfFile(state, sourceFile2, cancellationToken));\n }\n if (state.checkPending && !state.compilerOptions.noCheck) {\n state.checkPending = void 0;\n state.buildInfoEmitPending = true;\n }\n return diagnostics || emptyArray;\n }\n}\nfunction addToAffectedFilesPendingEmit(state, affectedFilePendingEmit, kind) {\n var _a, _b;\n const existingKind = ((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.get(affectedFilePendingEmit)) || 0 /* None */;\n (state.affectedFilesPendingEmit ?? (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedFilePendingEmit, existingKind | kind);\n (_b = state.emitDiagnosticsPerFile) == null ? void 0 : _b.delete(affectedFilePendingEmit);\n}\nfunction toBuilderStateFileInfoForMultiEmit(fileInfo) {\n return isString(fileInfo) ? { version: fileInfo, signature: fileInfo, affectsGlobalScope: void 0, impliedFormat: void 0 } : isString(fileInfo.signature) ? fileInfo : { version: fileInfo.version, signature: fileInfo.signature === false ? void 0 : fileInfo.version, affectsGlobalScope: fileInfo.affectsGlobalScope, impliedFormat: fileInfo.impliedFormat };\n}\nfunction toBuilderFileEmit(value, fullEmitForOptions) {\n return isNumber(value) ? fullEmitForOptions : value[1] || 24 /* Dts */;\n}\nfunction toProgramEmitPending(value, options) {\n return !value ? getBuilderFileEmit(options || {}) : value;\n}\nfunction createBuilderProgramUsingIncrementalBuildInfo(buildInfo, buildInfoPath, host) {\n var _a, _b, _c, _d;\n const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n let state;\n const filePaths = (_a = buildInfo.fileNames) == null ? void 0 : _a.map(toPathInBuildInfoDirectory);\n let filePathsSetList;\n const latestChangedDtsFile = buildInfo.latestChangedDtsFile ? toAbsolutePath(buildInfo.latestChangedDtsFile) : void 0;\n const fileInfos = /* @__PURE__ */ new Map();\n const changedFilesSet = new Set(map(buildInfo.changeFileSet, toFilePath));\n if (isIncrementalBundleEmitBuildInfo(buildInfo)) {\n buildInfo.fileInfos.forEach((fileInfo, index) => {\n const path = toFilePath(index + 1);\n fileInfos.set(path, isString(fileInfo) ? { version: fileInfo, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : fileInfo);\n });\n state = {\n fileInfos,\n compilerOptions: buildInfo.options ? convertToOptionsWithAbsolutePaths(buildInfo.options, toAbsolutePath) : {},\n semanticDiagnosticsPerFile: toPerFileSemanticDiagnostics(buildInfo.semanticDiagnosticsPerFile),\n emitDiagnosticsPerFile: toPerFileEmitDiagnostics(buildInfo.emitDiagnosticsPerFile),\n hasReusableDiagnostic: true,\n changedFilesSet,\n latestChangedDtsFile,\n outSignature: buildInfo.outSignature,\n programEmitPending: buildInfo.pendingEmit === void 0 ? void 0 : toProgramEmitPending(buildInfo.pendingEmit, buildInfo.options),\n hasErrors: buildInfo.errors,\n checkPending: buildInfo.checkPending\n };\n } else {\n filePathsSetList = (_b = buildInfo.fileIdsList) == null ? void 0 : _b.map((fileIds) => new Set(fileIds.map(toFilePath)));\n const emitSignatures = ((_c = buildInfo.options) == null ? void 0 : _c.composite) && !buildInfo.options.outFile ? /* @__PURE__ */ new Map() : void 0;\n buildInfo.fileInfos.forEach((fileInfo, index) => {\n const path = toFilePath(index + 1);\n const stateFileInfo = toBuilderStateFileInfoForMultiEmit(fileInfo);\n fileInfos.set(path, stateFileInfo);\n if (emitSignatures && stateFileInfo.signature) emitSignatures.set(path, stateFileInfo.signature);\n });\n (_d = buildInfo.emitSignatures) == null ? void 0 : _d.forEach((value) => {\n if (isNumber(value)) emitSignatures.delete(toFilePath(value));\n else {\n const key = toFilePath(value[0]);\n emitSignatures.set(\n key,\n !isString(value[1]) && !value[1].length ? (\n // File signature is emit signature but differs in map\n [emitSignatures.get(key)]\n ) : value[1]\n );\n }\n });\n const fullEmitForOptions = buildInfo.affectedFilesPendingEmit ? getBuilderFileEmit(buildInfo.options || {}) : void 0;\n state = {\n fileInfos,\n compilerOptions: buildInfo.options ? convertToOptionsWithAbsolutePaths(buildInfo.options, toAbsolutePath) : {},\n referencedMap: toManyToManyPathMap(buildInfo.referencedMap, buildInfo.options ?? {}),\n semanticDiagnosticsPerFile: toPerFileSemanticDiagnostics(buildInfo.semanticDiagnosticsPerFile),\n emitDiagnosticsPerFile: toPerFileEmitDiagnostics(buildInfo.emitDiagnosticsPerFile),\n hasReusableDiagnostic: true,\n changedFilesSet,\n affectedFilesPendingEmit: buildInfo.affectedFilesPendingEmit && arrayToMap(buildInfo.affectedFilesPendingEmit, (value) => toFilePath(isNumber(value) ? value : value[0]), (value) => toBuilderFileEmit(value, fullEmitForOptions)),\n latestChangedDtsFile,\n emitSignatures: (emitSignatures == null ? void 0 : emitSignatures.size) ? emitSignatures : void 0,\n hasErrors: buildInfo.errors,\n checkPending: buildInfo.checkPending\n };\n }\n return {\n state,\n getProgram: notImplemented,\n getProgramOrUndefined: returnUndefined,\n releaseProgram: noop,\n getCompilerOptions: () => state.compilerOptions,\n getSourceFile: notImplemented,\n getSourceFiles: notImplemented,\n getOptionsDiagnostics: notImplemented,\n getGlobalDiagnostics: notImplemented,\n getConfigFileParsingDiagnostics: notImplemented,\n getSyntacticDiagnostics: notImplemented,\n getDeclarationDiagnostics: notImplemented,\n getSemanticDiagnostics: notImplemented,\n emit: notImplemented,\n getAllDependencies: notImplemented,\n getCurrentDirectory: notImplemented,\n emitNextAffectedFile: notImplemented,\n getSemanticDiagnosticsOfNextAffectedFile: notImplemented,\n emitBuildInfo: notImplemented,\n close: noop,\n hasChangedEmitSignature: returnFalse\n };\n function toPathInBuildInfoDirectory(path) {\n return toPath(path, buildInfoDirectory, getCanonicalFileName);\n }\n function toAbsolutePath(path) {\n return getNormalizedAbsolutePath(path, buildInfoDirectory);\n }\n function toFilePath(fileId) {\n return filePaths[fileId - 1];\n }\n function toFilePathsSet(fileIdsListId) {\n return filePathsSetList[fileIdsListId - 1];\n }\n function toManyToManyPathMap(referenceMap, options) {\n const map2 = BuilderState.createReferencedMap(options);\n if (!map2 || !referenceMap) return map2;\n referenceMap.forEach(([fileId, fileIdListId]) => map2.set(toFilePath(fileId), toFilePathsSet(fileIdListId)));\n return map2;\n }\n function toPerFileSemanticDiagnostics(diagnostics) {\n const semanticDiagnostics = new Map(\n mapDefinedIterator(\n fileInfos.keys(),\n (key) => !changedFilesSet.has(key) ? [key, emptyArray] : void 0\n )\n );\n diagnostics == null ? void 0 : diagnostics.forEach((value) => {\n if (isNumber(value)) semanticDiagnostics.delete(toFilePath(value));\n else semanticDiagnostics.set(toFilePath(value[0]), value[1]);\n });\n return semanticDiagnostics;\n }\n function toPerFileEmitDiagnostics(diagnostics) {\n return diagnostics && arrayToMap(diagnostics, (value) => toFilePath(value[0]), (value) => value[1]);\n }\n}\nfunction getBuildInfoFileVersionMap(program, buildInfoPath, host) {\n const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n const fileInfos = /* @__PURE__ */ new Map();\n let rootIndex = 0;\n const roots = /* @__PURE__ */ new Map();\n const resolvedRoots = new Map(program.resolvedRoot);\n program.fileInfos.forEach((fileInfo, index) => {\n const path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName);\n const version2 = isString(fileInfo) ? fileInfo : fileInfo.version;\n fileInfos.set(path, version2);\n if (rootIndex < program.root.length) {\n const current = program.root[rootIndex];\n const fileId = index + 1;\n if (isArray(current)) {\n if (current[0] <= fileId && fileId <= current[1]) {\n addRoot(fileId, path);\n if (current[1] === fileId) rootIndex++;\n }\n } else if (current === fileId) {\n addRoot(fileId, path);\n rootIndex++;\n }\n }\n });\n return { fileInfos, roots };\n function addRoot(fileId, path) {\n const root = resolvedRoots.get(fileId);\n if (root) {\n roots.set(toPath(program.fileNames[root - 1], buildInfoDirectory, getCanonicalFileName), path);\n } else {\n roots.set(path, void 0);\n }\n }\n}\nfunction getNonIncrementalBuildInfoRoots(buildInfo, buildInfoPath, host) {\n if (!isNonIncrementalBuildInfo(buildInfo)) return void 0;\n const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n return buildInfo.root.map((r) => toPath(r, buildInfoDirectory, getCanonicalFileName));\n}\nfunction createRedirectedBuilderProgram(state, configFileParsingDiagnostics) {\n return {\n state: void 0,\n getProgram,\n getProgramOrUndefined: () => state.program,\n releaseProgram: () => state.program = void 0,\n getCompilerOptions: () => state.compilerOptions,\n getSourceFile: (fileName) => getProgram().getSourceFile(fileName),\n getSourceFiles: () => getProgram().getSourceFiles(),\n getOptionsDiagnostics: (cancellationToken) => getProgram().getOptionsDiagnostics(cancellationToken),\n getGlobalDiagnostics: (cancellationToken) => getProgram().getGlobalDiagnostics(cancellationToken),\n getConfigFileParsingDiagnostics: () => configFileParsingDiagnostics,\n getSyntacticDiagnostics: (sourceFile, cancellationToken) => getProgram().getSyntacticDiagnostics(sourceFile, cancellationToken),\n getDeclarationDiagnostics: (sourceFile, cancellationToken) => getProgram().getDeclarationDiagnostics(sourceFile, cancellationToken),\n getSemanticDiagnostics: (sourceFile, cancellationToken) => getProgram().getSemanticDiagnostics(sourceFile, cancellationToken),\n emit: (sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers) => getProgram().emit(sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers),\n emitBuildInfo: (writeFile2, cancellationToken) => getProgram().emitBuildInfo(writeFile2, cancellationToken),\n getAllDependencies: notImplemented,\n getCurrentDirectory: () => getProgram().getCurrentDirectory(),\n close: noop\n };\n function getProgram() {\n return Debug.checkDefined(state.program);\n }\n}\n\n// src/compiler/builderPublic.ts\nfunction createSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n return createBuilderProgram(\n 0 /* SemanticDiagnosticsBuilderProgram */,\n getBuilderCreationParameters(\n newProgramOrRootNames,\n hostOrOptions,\n oldProgramOrHost,\n configFileParsingDiagnosticsOrOldProgram,\n configFileParsingDiagnostics,\n projectReferences\n )\n );\n}\nfunction createEmitAndSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n return createBuilderProgram(\n 1 /* EmitAndSemanticDiagnosticsBuilderProgram */,\n getBuilderCreationParameters(\n newProgramOrRootNames,\n hostOrOptions,\n oldProgramOrHost,\n configFileParsingDiagnosticsOrOldProgram,\n configFileParsingDiagnostics,\n projectReferences\n )\n );\n}\nfunction createAbstractBuilder(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n const { newProgram, configFileParsingDiagnostics: newConfigFileParsingDiagnostics } = getBuilderCreationParameters(\n newProgramOrRootNames,\n hostOrOptions,\n oldProgramOrHost,\n configFileParsingDiagnosticsOrOldProgram,\n configFileParsingDiagnostics,\n projectReferences\n );\n return createRedirectedBuilderProgram(\n { program: newProgram, compilerOptions: newProgram.getCompilerOptions() },\n newConfigFileParsingDiagnostics\n );\n}\n\n// src/compiler/resolutionCache.ts\nfunction removeIgnoredPath(path) {\n if (endsWith(path, \"/node_modules/.staging\")) {\n return removeSuffix(path, \"/.staging\");\n }\n return some(ignoredPaths, (searchPath) => path.includes(searchPath)) ? void 0 : path;\n}\nfunction perceivedOsRootLengthForWatching(pathComponents2, length2) {\n if (length2 <= 1) return 1;\n let indexAfterOsRoot = 1;\n let isDosStyle = pathComponents2[0].search(/[a-z]:/i) === 0;\n if (pathComponents2[0] !== directorySeparator && !isDosStyle && // Non dos style paths\n pathComponents2[1].search(/[a-z]\\$$/i) === 0) {\n if (length2 === 2) return 2;\n indexAfterOsRoot = 2;\n isDosStyle = true;\n }\n if (isDosStyle && !pathComponents2[indexAfterOsRoot].match(/^users$/i)) {\n return indexAfterOsRoot;\n }\n if (pathComponents2[indexAfterOsRoot].match(/^workspaces$/i)) {\n return indexAfterOsRoot + 1;\n }\n return indexAfterOsRoot + 2;\n}\nfunction canWatchDirectoryOrFile(pathComponents2, length2) {\n if (length2 === void 0) length2 = pathComponents2.length;\n if (length2 <= 2) return false;\n const perceivedOsRootLength = perceivedOsRootLengthForWatching(pathComponents2, length2);\n return length2 > perceivedOsRootLength + 1;\n}\nfunction canWatchDirectoryOrFilePath(path) {\n return canWatchDirectoryOrFile(getPathComponents(path));\n}\nfunction canWatchAtTypes(atTypes) {\n return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(getDirectoryPath(atTypes));\n}\nfunction isInDirectoryPath(dirComponents, fileOrDirComponents) {\n if (fileOrDirComponents.length < dirComponents.length) return false;\n for (let i = 0; i < dirComponents.length; i++) {\n if (fileOrDirComponents[i] !== dirComponents[i]) return false;\n }\n return true;\n}\nfunction canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(fileOrDirPath) {\n return canWatchDirectoryOrFilePath(fileOrDirPath);\n}\nfunction canWatchAffectingLocation(filePath) {\n return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(filePath);\n}\nfunction getDirectoryToWatchFailedLookupLocation(failedLookupLocation, failedLookupLocationPath, rootDir, rootPath, rootPathComponents, isRootWatchable, getCurrentDirectory, preferNonRecursiveWatch) {\n const failedLookupPathComponents = getPathComponents(failedLookupLocationPath);\n failedLookupLocation = isRootedDiskPath(failedLookupLocation) ? normalizePath(failedLookupLocation) : getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());\n const failedLookupComponents = getPathComponents(failedLookupLocation);\n const perceivedOsRootLength = perceivedOsRootLengthForWatching(failedLookupPathComponents, failedLookupPathComponents.length);\n if (failedLookupPathComponents.length <= perceivedOsRootLength + 1) return void 0;\n const nodeModulesIndex = failedLookupPathComponents.indexOf(\"node_modules\");\n if (nodeModulesIndex !== -1 && nodeModulesIndex + 1 <= perceivedOsRootLength + 1) return void 0;\n const lastNodeModulesIndex = failedLookupPathComponents.lastIndexOf(\"node_modules\");\n if (isRootWatchable && isInDirectoryPath(rootPathComponents, failedLookupPathComponents)) {\n if (failedLookupPathComponents.length > rootPathComponents.length + 1) {\n return getDirectoryOfFailedLookupWatch(\n failedLookupComponents,\n failedLookupPathComponents,\n Math.max(rootPathComponents.length + 1, perceivedOsRootLength + 1),\n lastNodeModulesIndex\n );\n } else {\n return {\n dir: rootDir,\n dirPath: rootPath,\n nonRecursive: true\n };\n }\n }\n return getDirectoryToWatchFromFailedLookupLocationDirectory(\n failedLookupComponents,\n failedLookupPathComponents,\n failedLookupPathComponents.length - 1,\n perceivedOsRootLength,\n nodeModulesIndex,\n rootPathComponents,\n lastNodeModulesIndex,\n preferNonRecursiveWatch\n );\n}\nfunction getDirectoryToWatchFromFailedLookupLocationDirectory(dirComponents, dirPathComponents, dirPathComponentsLength, perceivedOsRootLength, nodeModulesIndex, rootPathComponents, lastNodeModulesIndex, preferNonRecursiveWatch) {\n if (nodeModulesIndex !== -1) {\n return getDirectoryOfFailedLookupWatch(\n dirComponents,\n dirPathComponents,\n nodeModulesIndex + 1,\n lastNodeModulesIndex\n );\n }\n let nonRecursive = true;\n let length2 = dirPathComponentsLength;\n if (!preferNonRecursiveWatch) {\n for (let i = 0; i < dirPathComponentsLength; i++) {\n if (dirPathComponents[i] !== rootPathComponents[i]) {\n nonRecursive = false;\n length2 = Math.max(i + 1, perceivedOsRootLength + 1);\n break;\n }\n }\n }\n return getDirectoryOfFailedLookupWatch(\n dirComponents,\n dirPathComponents,\n length2,\n lastNodeModulesIndex,\n nonRecursive\n );\n}\nfunction getDirectoryOfFailedLookupWatch(dirComponents, dirPathComponents, length2, lastNodeModulesIndex, nonRecursive) {\n let packageDirLength;\n if (lastNodeModulesIndex !== -1 && lastNodeModulesIndex + 1 >= length2 && lastNodeModulesIndex + 2 < dirPathComponents.length) {\n if (!startsWith(dirPathComponents[lastNodeModulesIndex + 1], \"@\")) {\n packageDirLength = lastNodeModulesIndex + 2;\n } else if (lastNodeModulesIndex + 3 < dirPathComponents.length) {\n packageDirLength = lastNodeModulesIndex + 3;\n }\n }\n return {\n dir: getPathFromPathComponents(dirComponents, length2),\n dirPath: getPathFromPathComponents(dirPathComponents, length2),\n nonRecursive,\n packageDir: packageDirLength !== void 0 ? getPathFromPathComponents(dirComponents, packageDirLength) : void 0,\n packageDirPath: packageDirLength !== void 0 ? getPathFromPathComponents(dirPathComponents, packageDirLength) : void 0\n };\n}\nfunction getDirectoryToWatchFailedLookupLocationFromTypeRoot(typeRoot, typeRootPath, rootPath, rootPathComponents, isRootWatchable, getCurrentDirectory, preferNonRecursiveWatch, filterCustomPath) {\n const typeRootPathComponents = getPathComponents(typeRootPath);\n if (isRootWatchable && isInDirectoryPath(rootPathComponents, typeRootPathComponents)) {\n return rootPath;\n }\n typeRoot = isRootedDiskPath(typeRoot) ? normalizePath(typeRoot) : getNormalizedAbsolutePath(typeRoot, getCurrentDirectory());\n const toWatch = getDirectoryToWatchFromFailedLookupLocationDirectory(\n getPathComponents(typeRoot),\n typeRootPathComponents,\n typeRootPathComponents.length,\n perceivedOsRootLengthForWatching(typeRootPathComponents, typeRootPathComponents.length),\n typeRootPathComponents.indexOf(\"node_modules\"),\n rootPathComponents,\n typeRootPathComponents.lastIndexOf(\"node_modules\"),\n preferNonRecursiveWatch\n );\n return toWatch && filterCustomPath(toWatch.dirPath) ? toWatch.dirPath : void 0;\n}\nfunction getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory) {\n const normalized = getNormalizedAbsolutePath(rootDirForResolution, getCurrentDirectory());\n return !isDiskPathRoot(normalized) ? removeTrailingDirectorySeparator(normalized) : normalized;\n}\nfunction getModuleResolutionHost(resolutionHost) {\n var _a;\n return ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost;\n}\nfunction createModuleResolutionLoaderUsingGlobalCache(containingFile, redirectedReference, options, resolutionHost, moduleResolutionCache) {\n return {\n nameAndMode: moduleResolutionNameAndModeGetter,\n resolve: (moduleName, resoluionMode) => resolveModuleNameUsingGlobalCache(\n resolutionHost,\n moduleResolutionCache,\n moduleName,\n containingFile,\n options,\n redirectedReference,\n resoluionMode\n )\n };\n}\nfunction resolveModuleNameUsingGlobalCache(resolutionHost, moduleResolutionCache, moduleName, containingFile, compilerOptions, redirectedReference, mode) {\n const host = getModuleResolutionHost(resolutionHost);\n const primaryResult = resolveModuleName(moduleName, containingFile, compilerOptions, host, moduleResolutionCache, redirectedReference, mode);\n if (!resolutionHost.getGlobalTypingsCacheLocation) {\n return primaryResult;\n }\n const globalCache = resolutionHost.getGlobalTypingsCacheLocation();\n if (globalCache !== void 0 && !isExternalModuleNameRelative(moduleName) && !(primaryResult.resolvedModule && extensionIsTS(primaryResult.resolvedModule.extension))) {\n const { resolvedModule, failedLookupLocations, affectingLocations, resolutionDiagnostics } = loadModuleFromGlobalCache(\n Debug.checkDefined(resolutionHost.globalCacheResolutionModuleName)(moduleName),\n resolutionHost.projectName,\n compilerOptions,\n host,\n globalCache,\n moduleResolutionCache\n );\n if (resolvedModule) {\n primaryResult.resolvedModule = resolvedModule;\n primaryResult.failedLookupLocations = updateResolutionField(primaryResult.failedLookupLocations, failedLookupLocations);\n primaryResult.affectingLocations = updateResolutionField(primaryResult.affectingLocations, affectingLocations);\n primaryResult.resolutionDiagnostics = updateResolutionField(primaryResult.resolutionDiagnostics, resolutionDiagnostics);\n return primaryResult;\n }\n }\n return primaryResult;\n}\nfunction createResolutionCache(resolutionHost, rootDirForResolution, logChangesWhenResolvingModule) {\n let filesWithChangedSetOfUnresolvedImports;\n let filesWithInvalidatedResolutions;\n let filesWithInvalidatedNonRelativeUnresolvedImports;\n const nonRelativeExternalModuleResolutions = /* @__PURE__ */ new Set();\n const resolutionsWithFailedLookups = /* @__PURE__ */ new Set();\n const resolutionsWithOnlyAffectingLocations = /* @__PURE__ */ new Set();\n const resolvedFileToResolution = /* @__PURE__ */ new Map();\n const impliedFormatPackageJsons = /* @__PURE__ */ new Map();\n let hasChangedAutomaticTypeDirectiveNames = false;\n let affectingPathChecksForFile;\n let affectingPathChecks;\n let failedLookupChecks;\n let startsWithPathChecks;\n let isInDirectoryChecks;\n let allModuleAndTypeResolutionsAreInvalidated = false;\n const getCurrentDirectory = memoize(() => resolutionHost.getCurrentDirectory());\n const cachedDirectoryStructureHost = resolutionHost.getCachedDirectoryStructureHost();\n const resolvedModuleNames = /* @__PURE__ */ new Map();\n const moduleResolutionCache = createModuleResolutionCache(\n getCurrentDirectory(),\n resolutionHost.getCanonicalFileName,\n resolutionHost.getCompilationSettings()\n );\n const resolvedTypeReferenceDirectives = /* @__PURE__ */ new Map();\n const typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n getCurrentDirectory(),\n resolutionHost.getCanonicalFileName,\n resolutionHost.getCompilationSettings(),\n moduleResolutionCache.getPackageJsonInfoCache(),\n moduleResolutionCache.optionsToRedirectsKey\n );\n const resolvedLibraries = /* @__PURE__ */ new Map();\n const libraryResolutionCache = createModuleResolutionCache(\n getCurrentDirectory(),\n resolutionHost.getCanonicalFileName,\n getOptionsForLibraryResolution(resolutionHost.getCompilationSettings()),\n moduleResolutionCache.getPackageJsonInfoCache()\n );\n const directoryWatchesOfFailedLookups = /* @__PURE__ */ new Map();\n const fileWatchesOfAffectingLocations = /* @__PURE__ */ new Map();\n const rootDir = getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory);\n const rootPath = resolutionHost.toPath(rootDir);\n const rootPathComponents = getPathComponents(rootPath);\n const isRootWatchable = canWatchDirectoryOrFile(rootPathComponents);\n const isSymlinkCache = /* @__PURE__ */ new Map();\n const packageDirWatchers = /* @__PURE__ */ new Map();\n const dirPathToSymlinkPackageRefCount = /* @__PURE__ */ new Map();\n const typeRootsWatches = /* @__PURE__ */ new Map();\n return {\n rootDirForResolution,\n resolvedModuleNames,\n resolvedTypeReferenceDirectives,\n resolvedLibraries,\n resolvedFileToResolution,\n resolutionsWithFailedLookups,\n resolutionsWithOnlyAffectingLocations,\n directoryWatchesOfFailedLookups,\n fileWatchesOfAffectingLocations,\n packageDirWatchers,\n dirPathToSymlinkPackageRefCount,\n watchFailedLookupLocationsOfExternalModuleResolutions,\n getModuleResolutionCache: () => moduleResolutionCache,\n startRecordingFilesWithChangedResolutions,\n finishRecordingFilesWithChangedResolutions,\n // perDirectoryResolvedModuleNames and perDirectoryResolvedTypeReferenceDirectives could be non empty if there was exception during program update\n // (between startCachingPerDirectoryResolution and finishCachingPerDirectoryResolution)\n startCachingPerDirectoryResolution,\n finishCachingPerDirectoryResolution,\n resolveModuleNameLiterals,\n resolveTypeReferenceDirectiveReferences,\n resolveLibrary: resolveLibrary2,\n resolveSingleModuleNameWithoutWatching,\n removeResolutionsFromProjectReferenceRedirects,\n removeResolutionsOfFile,\n hasChangedAutomaticTypeDirectiveNames: () => hasChangedAutomaticTypeDirectiveNames,\n invalidateResolutionOfFile,\n invalidateResolutionsOfFailedLookupLocations,\n setFilesWithInvalidatedNonRelativeUnresolvedImports,\n createHasInvalidatedResolutions,\n isFileWithInvalidatedNonRelativeUnresolvedImports,\n updateTypeRootsWatch,\n closeTypeRootsWatch,\n clear: clear2,\n onChangesAffectModuleResolution\n };\n function clear2() {\n clearMap(directoryWatchesOfFailedLookups, closeFileWatcherOf);\n clearMap(fileWatchesOfAffectingLocations, closeFileWatcherOf);\n isSymlinkCache.clear();\n packageDirWatchers.clear();\n dirPathToSymlinkPackageRefCount.clear();\n nonRelativeExternalModuleResolutions.clear();\n closeTypeRootsWatch();\n resolvedModuleNames.clear();\n resolvedTypeReferenceDirectives.clear();\n resolvedFileToResolution.clear();\n resolutionsWithFailedLookups.clear();\n resolutionsWithOnlyAffectingLocations.clear();\n failedLookupChecks = void 0;\n startsWithPathChecks = void 0;\n isInDirectoryChecks = void 0;\n affectingPathChecks = void 0;\n affectingPathChecksForFile = void 0;\n allModuleAndTypeResolutionsAreInvalidated = false;\n moduleResolutionCache.clear();\n typeReferenceDirectiveResolutionCache.clear();\n moduleResolutionCache.update(resolutionHost.getCompilationSettings());\n typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings());\n libraryResolutionCache.clear();\n impliedFormatPackageJsons.clear();\n resolvedLibraries.clear();\n hasChangedAutomaticTypeDirectiveNames = false;\n }\n function onChangesAffectModuleResolution() {\n allModuleAndTypeResolutionsAreInvalidated = true;\n moduleResolutionCache.clearAllExceptPackageJsonInfoCache();\n typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache();\n moduleResolutionCache.update(resolutionHost.getCompilationSettings());\n typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings());\n }\n function startRecordingFilesWithChangedResolutions() {\n filesWithChangedSetOfUnresolvedImports = [];\n }\n function finishRecordingFilesWithChangedResolutions() {\n const collected = filesWithChangedSetOfUnresolvedImports;\n filesWithChangedSetOfUnresolvedImports = void 0;\n return collected;\n }\n function isFileWithInvalidatedNonRelativeUnresolvedImports(path) {\n if (!filesWithInvalidatedNonRelativeUnresolvedImports) {\n return false;\n }\n const value = filesWithInvalidatedNonRelativeUnresolvedImports.get(path);\n return !!value && !!value.length;\n }\n function createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidatedLibResolutions) {\n invalidateResolutionsOfFailedLookupLocations();\n const collected = filesWithInvalidatedResolutions;\n filesWithInvalidatedResolutions = void 0;\n return {\n hasInvalidatedResolutions: (path) => customHasInvalidatedResolutions(path) || allModuleAndTypeResolutionsAreInvalidated || !!(collected == null ? void 0 : collected.has(path)) || isFileWithInvalidatedNonRelativeUnresolvedImports(path),\n hasInvalidatedLibResolutions: (libFileName) => {\n var _a;\n return customHasInvalidatedLibResolutions(libFileName) || !!((_a = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName)) == null ? void 0 : _a.isInvalidated);\n }\n };\n }\n function startCachingPerDirectoryResolution() {\n moduleResolutionCache.isReadonly = void 0;\n typeReferenceDirectiveResolutionCache.isReadonly = void 0;\n libraryResolutionCache.isReadonly = void 0;\n moduleResolutionCache.getPackageJsonInfoCache().isReadonly = void 0;\n moduleResolutionCache.clearAllExceptPackageJsonInfoCache();\n typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache();\n libraryResolutionCache.clearAllExceptPackageJsonInfoCache();\n watchFailedLookupLocationOfNonRelativeModuleResolutions();\n isSymlinkCache.clear();\n }\n function cleanupLibResolutionWatching(newProgram) {\n resolvedLibraries.forEach((resolution, libFileName) => {\n var _a;\n if (!((_a = newProgram == null ? void 0 : newProgram.resolvedLibReferences) == null ? void 0 : _a.has(libFileName))) {\n stopWatchFailedLookupLocationOfResolution(\n resolution,\n resolutionHost.toPath(getInferredLibraryNameResolveFrom(resolutionHost.getCompilationSettings(), getCurrentDirectory(), libFileName)),\n getResolvedModuleFromResolution\n );\n resolvedLibraries.delete(libFileName);\n }\n });\n }\n function finishCachingPerDirectoryResolution(newProgram, oldProgram) {\n filesWithInvalidatedNonRelativeUnresolvedImports = void 0;\n allModuleAndTypeResolutionsAreInvalidated = false;\n watchFailedLookupLocationOfNonRelativeModuleResolutions();\n if (newProgram !== oldProgram) {\n cleanupLibResolutionWatching(newProgram);\n newProgram == null ? void 0 : newProgram.getSourceFiles().forEach((newFile) => {\n var _a;\n const expected = ((_a = newFile.packageJsonLocations) == null ? void 0 : _a.length) ?? 0;\n const existing = impliedFormatPackageJsons.get(newFile.resolvedPath) ?? emptyArray;\n for (let i = existing.length; i < expected; i++) {\n createFileWatcherOfAffectingLocation(\n newFile.packageJsonLocations[i],\n /*forResolution*/\n false\n );\n }\n if (existing.length > expected) {\n for (let i = expected; i < existing.length; i++) {\n fileWatchesOfAffectingLocations.get(existing[i]).files--;\n }\n }\n if (expected) impliedFormatPackageJsons.set(newFile.resolvedPath, newFile.packageJsonLocations);\n else impliedFormatPackageJsons.delete(newFile.resolvedPath);\n });\n impliedFormatPackageJsons.forEach((existing, path) => {\n const newFile = newProgram == null ? void 0 : newProgram.getSourceFileByPath(path);\n if (!newFile || newFile.resolvedPath !== path) {\n existing.forEach((location) => fileWatchesOfAffectingLocations.get(location).files--);\n impliedFormatPackageJsons.delete(path);\n }\n });\n }\n directoryWatchesOfFailedLookups.forEach(closeDirectoryWatchesOfFailedLookup);\n fileWatchesOfAffectingLocations.forEach(closeFileWatcherOfAffectingLocation);\n packageDirWatchers.forEach(closePackageDirWatcher);\n hasChangedAutomaticTypeDirectiveNames = false;\n moduleResolutionCache.isReadonly = true;\n typeReferenceDirectiveResolutionCache.isReadonly = true;\n libraryResolutionCache.isReadonly = true;\n moduleResolutionCache.getPackageJsonInfoCache().isReadonly = true;\n isSymlinkCache.clear();\n }\n function closePackageDirWatcher(watcher, packageDirPath) {\n if (watcher.dirPathToWatcher.size === 0) {\n packageDirWatchers.delete(packageDirPath);\n }\n }\n function closeDirectoryWatchesOfFailedLookup(watcher, path) {\n if (watcher.refCount === 0) {\n directoryWatchesOfFailedLookups.delete(path);\n watcher.watcher.close();\n }\n }\n function closeFileWatcherOfAffectingLocation(watcher, path) {\n var _a;\n if (watcher.files === 0 && watcher.resolutions === 0 && !((_a = watcher.symlinks) == null ? void 0 : _a.size)) {\n fileWatchesOfAffectingLocations.delete(path);\n watcher.watcher.close();\n }\n }\n function resolveNamesWithLocalCache({\n entries,\n containingFile,\n containingSourceFile,\n redirectedReference,\n options,\n perFileCache,\n reusedNames,\n loader,\n getResolutionWithResolvedFileName,\n deferWatchingNonRelativeResolution,\n shouldRetryResolution,\n logChanges\n }) {\n var _a;\n const path = resolutionHost.toPath(containingFile);\n const resolutionsInFile = perFileCache.get(path) || perFileCache.set(path, createModeAwareCache()).get(path);\n const resolvedModules = [];\n const hasInvalidatedNonRelativeUnresolvedImport = logChanges && isFileWithInvalidatedNonRelativeUnresolvedImports(path);\n const program = resolutionHost.getCurrentProgram();\n const oldRedirect = program && ((_a = program.getRedirectFromSourceFile(containingFile)) == null ? void 0 : _a.resolvedRef);\n const unmatchedRedirects = oldRedirect ? !redirectedReference || redirectedReference.sourceFile.path !== oldRedirect.sourceFile.path : !!redirectedReference;\n const seenNamesInFile = createModeAwareCache();\n for (const entry of entries) {\n const name = loader.nameAndMode.getName(entry);\n const mode = loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options);\n let resolution = resolutionsInFile.get(name, mode);\n if (!seenNamesInFile.has(name, mode) && (allModuleAndTypeResolutionsAreInvalidated || unmatchedRedirects || !resolution || resolution.isInvalidated || // If the name is unresolved import that was invalidated, recalculate\n hasInvalidatedNonRelativeUnresolvedImport && !isExternalModuleNameRelative(name) && shouldRetryResolution(resolution))) {\n const existingResolution = resolution;\n resolution = loader.resolve(name, mode);\n if (resolutionHost.onDiscoveredSymlink && resolutionIsSymlink(resolution)) {\n resolutionHost.onDiscoveredSymlink();\n }\n resolutionsInFile.set(name, mode, resolution);\n if (resolution !== existingResolution) {\n watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, path, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution);\n if (existingResolution) {\n stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolutionWithResolvedFileName);\n }\n }\n if (logChanges && filesWithChangedSetOfUnresolvedImports && !resolutionIsEqualTo(existingResolution, resolution)) {\n filesWithChangedSetOfUnresolvedImports.push(path);\n logChanges = false;\n }\n } else {\n const host = getModuleResolutionHost(resolutionHost);\n if (isTraceEnabled(options, host) && !seenNamesInFile.has(name, mode)) {\n const resolved = getResolutionWithResolvedFileName(resolution);\n trace(\n host,\n perFileCache === resolvedModuleNames ? (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved : (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved,\n name,\n containingFile,\n resolved == null ? void 0 : resolved.resolvedFileName,\n (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)\n );\n }\n }\n Debug.assert(resolution !== void 0 && !resolution.isInvalidated);\n seenNamesInFile.set(name, mode, true);\n resolvedModules.push(resolution);\n }\n reusedNames == null ? void 0 : reusedNames.forEach(\n (entry) => seenNamesInFile.set(\n loader.nameAndMode.getName(entry),\n loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options),\n true\n )\n );\n if (resolutionsInFile.size() !== seenNamesInFile.size()) {\n resolutionsInFile.forEach((resolution, name, mode) => {\n if (!seenNamesInFile.has(name, mode)) {\n stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);\n resolutionsInFile.delete(name, mode);\n }\n });\n }\n return resolvedModules;\n function resolutionIsEqualTo(oldResolution, newResolution) {\n if (oldResolution === newResolution) {\n return true;\n }\n if (!oldResolution || !newResolution) {\n return false;\n }\n const oldResult = getResolutionWithResolvedFileName(oldResolution);\n const newResult = getResolutionWithResolvedFileName(newResolution);\n if (oldResult === newResult) {\n return true;\n }\n if (!oldResult || !newResult) {\n return false;\n }\n return oldResult.resolvedFileName === newResult.resolvedFileName;\n }\n }\n function resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n return resolveNamesWithLocalCache({\n entries: typeDirectiveReferences,\n containingFile,\n containingSourceFile,\n redirectedReference,\n options,\n reusedNames,\n perFileCache: resolvedTypeReferenceDirectives,\n loader: createTypeReferenceResolutionLoader(\n containingFile,\n redirectedReference,\n options,\n getModuleResolutionHost(resolutionHost),\n typeReferenceDirectiveResolutionCache\n ),\n getResolutionWithResolvedFileName: getResolvedTypeReferenceDirectiveFromResolution,\n shouldRetryResolution: (resolution) => resolution.resolvedTypeReferenceDirective === void 0,\n deferWatchingNonRelativeResolution: false\n });\n }\n function resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n return resolveNamesWithLocalCache({\n entries: moduleLiterals,\n containingFile,\n containingSourceFile,\n redirectedReference,\n options,\n reusedNames,\n perFileCache: resolvedModuleNames,\n loader: createModuleResolutionLoaderUsingGlobalCache(\n containingFile,\n redirectedReference,\n options,\n resolutionHost,\n moduleResolutionCache\n ),\n getResolutionWithResolvedFileName: getResolvedModuleFromResolution,\n shouldRetryResolution: (resolution) => !resolution.resolvedModule || !resolutionExtensionIsTSOrJson(resolution.resolvedModule.extension),\n logChanges: logChangesWhenResolvingModule,\n deferWatchingNonRelativeResolution: true\n // Defer non relative resolution watch because we could be using ambient modules\n });\n }\n function resolveLibrary2(libraryName, resolveFrom, options, libFileName) {\n const host = getModuleResolutionHost(resolutionHost);\n let resolution = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName);\n if (!resolution || resolution.isInvalidated) {\n const existingResolution = resolution;\n resolution = resolveLibrary(libraryName, resolveFrom, options, host, libraryResolutionCache);\n const path = resolutionHost.toPath(resolveFrom);\n watchFailedLookupLocationsOfExternalModuleResolutions(\n libraryName,\n resolution,\n path,\n getResolvedModuleFromResolution,\n /*deferWatchingNonRelativeResolution*/\n false\n );\n resolvedLibraries.set(libFileName, resolution);\n if (existingResolution) {\n stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolvedModuleFromResolution);\n }\n } else {\n if (isTraceEnabled(options, host)) {\n const resolved = getResolvedModuleFromResolution(resolution);\n trace(\n host,\n (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved,\n libraryName,\n resolveFrom,\n resolved == null ? void 0 : resolved.resolvedFileName,\n (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)\n );\n }\n }\n return resolution;\n }\n function resolveSingleModuleNameWithoutWatching(moduleName, containingFile) {\n var _a, _b;\n const path = resolutionHost.toPath(containingFile);\n const resolutionsInFile = resolvedModuleNames.get(path);\n const resolution = resolutionsInFile == null ? void 0 : resolutionsInFile.get(\n moduleName,\n /*mode*/\n void 0\n );\n if (resolution && !resolution.isInvalidated) return resolution;\n const data = (_a = resolutionHost.beforeResolveSingleModuleNameWithoutWatching) == null ? void 0 : _a.call(resolutionHost, moduleResolutionCache);\n const host = getModuleResolutionHost(resolutionHost);\n const result = resolveModuleName(\n moduleName,\n containingFile,\n resolutionHost.getCompilationSettings(),\n host,\n moduleResolutionCache\n );\n (_b = resolutionHost.afterResolveSingleModuleNameWithoutWatching) == null ? void 0 : _b.call(resolutionHost, moduleResolutionCache, moduleName, containingFile, result, data);\n return result;\n }\n function isNodeModulesAtTypesDirectory(dirPath) {\n return endsWith(dirPath, \"/node_modules/@types\");\n }\n function watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, filePath, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution) {\n (resolution.files ?? (resolution.files = /* @__PURE__ */ new Set())).add(filePath);\n if (resolution.files.size !== 1) return;\n if (!deferWatchingNonRelativeResolution || isExternalModuleNameRelative(name)) {\n watchFailedLookupLocationOfResolution(resolution);\n } else {\n nonRelativeExternalModuleResolutions.add(resolution);\n }\n const resolved = getResolutionWithResolvedFileName(resolution);\n if (resolved && resolved.resolvedFileName) {\n const key = resolutionHost.toPath(resolved.resolvedFileName);\n let resolutions = resolvedFileToResolution.get(key);\n if (!resolutions) resolvedFileToResolution.set(key, resolutions = /* @__PURE__ */ new Set());\n resolutions.add(resolution);\n }\n }\n function watchFailedLookupLocation(failedLookupLocation, setAtRoot) {\n const failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation);\n const toWatch = getDirectoryToWatchFailedLookupLocation(\n failedLookupLocation,\n failedLookupLocationPath,\n rootDir,\n rootPath,\n rootPathComponents,\n isRootWatchable,\n getCurrentDirectory,\n resolutionHost.preferNonRecursiveWatch\n );\n if (toWatch) {\n const { dir, dirPath, nonRecursive, packageDir, packageDirPath } = toWatch;\n if (dirPath === rootPath) {\n Debug.assert(nonRecursive);\n Debug.assert(!packageDir);\n setAtRoot = true;\n } else {\n setDirectoryWatcher(dir, dirPath, packageDir, packageDirPath, nonRecursive);\n }\n }\n return setAtRoot;\n }\n function watchFailedLookupLocationOfResolution(resolution) {\n var _a;\n Debug.assert(!!((_a = resolution.files) == null ? void 0 : _a.size));\n const { failedLookupLocations, affectingLocations, alternateResult } = resolution;\n if (!(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !(affectingLocations == null ? void 0 : affectingLocations.length) && !alternateResult) return;\n if ((failedLookupLocations == null ? void 0 : failedLookupLocations.length) || alternateResult) resolutionsWithFailedLookups.add(resolution);\n let setAtRoot = false;\n if (failedLookupLocations) {\n for (const failedLookupLocation of failedLookupLocations) {\n setAtRoot = watchFailedLookupLocation(failedLookupLocation, setAtRoot);\n }\n }\n if (alternateResult) setAtRoot = watchFailedLookupLocation(alternateResult, setAtRoot);\n if (setAtRoot) {\n setDirectoryWatcher(\n rootDir,\n rootPath,\n /*packageDir*/\n void 0,\n /*packageDirPath*/\n void 0,\n /*nonRecursive*/\n true\n );\n }\n watchAffectingLocationsOfResolution(resolution, !(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !alternateResult);\n }\n function watchAffectingLocationsOfResolution(resolution, addToResolutionsWithOnlyAffectingLocations) {\n var _a;\n Debug.assert(!!((_a = resolution.files) == null ? void 0 : _a.size));\n const { affectingLocations } = resolution;\n if (!(affectingLocations == null ? void 0 : affectingLocations.length)) return;\n if (addToResolutionsWithOnlyAffectingLocations) resolutionsWithOnlyAffectingLocations.add(resolution);\n for (const affectingLocation of affectingLocations) {\n createFileWatcherOfAffectingLocation(\n affectingLocation,\n /*forResolution*/\n true\n );\n }\n }\n function createFileWatcherOfAffectingLocation(affectingLocation, forResolution) {\n const fileWatcher = fileWatchesOfAffectingLocations.get(affectingLocation);\n if (fileWatcher) {\n if (forResolution) fileWatcher.resolutions++;\n else fileWatcher.files++;\n return;\n }\n let locationToWatch = affectingLocation;\n let isSymlink = false;\n let symlinkWatcher;\n if (resolutionHost.realpath) {\n locationToWatch = resolutionHost.realpath(affectingLocation);\n if (affectingLocation !== locationToWatch) {\n isSymlink = true;\n symlinkWatcher = fileWatchesOfAffectingLocations.get(locationToWatch);\n }\n }\n const resolutions = forResolution ? 1 : 0;\n const files = forResolution ? 0 : 1;\n if (!isSymlink || !symlinkWatcher) {\n const watcher = {\n watcher: canWatchAffectingLocation(resolutionHost.toPath(locationToWatch)) ? resolutionHost.watchAffectingFileLocation(locationToWatch, (fileName, eventKind) => {\n cachedDirectoryStructureHost == null ? void 0 : cachedDirectoryStructureHost.addOrDeleteFile(fileName, resolutionHost.toPath(locationToWatch), eventKind);\n invalidateAffectingFileWatcher(locationToWatch, moduleResolutionCache.getPackageJsonInfoCache().getInternalMap());\n resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations();\n }) : noopFileWatcher,\n resolutions: isSymlink ? 0 : resolutions,\n files: isSymlink ? 0 : files,\n symlinks: void 0\n };\n fileWatchesOfAffectingLocations.set(locationToWatch, watcher);\n if (isSymlink) symlinkWatcher = watcher;\n }\n if (isSymlink) {\n Debug.assert(!!symlinkWatcher);\n const watcher = {\n watcher: {\n close: () => {\n var _a;\n const symlinkWatcher2 = fileWatchesOfAffectingLocations.get(locationToWatch);\n if (((_a = symlinkWatcher2 == null ? void 0 : symlinkWatcher2.symlinks) == null ? void 0 : _a.delete(affectingLocation)) && !symlinkWatcher2.symlinks.size && !symlinkWatcher2.resolutions && !symlinkWatcher2.files) {\n fileWatchesOfAffectingLocations.delete(locationToWatch);\n symlinkWatcher2.watcher.close();\n }\n }\n },\n resolutions,\n files,\n symlinks: void 0\n };\n fileWatchesOfAffectingLocations.set(affectingLocation, watcher);\n (symlinkWatcher.symlinks ?? (symlinkWatcher.symlinks = /* @__PURE__ */ new Set())).add(affectingLocation);\n }\n }\n function invalidateAffectingFileWatcher(path, packageJsonMap) {\n var _a;\n const watcher = fileWatchesOfAffectingLocations.get(path);\n if (watcher == null ? void 0 : watcher.resolutions) (affectingPathChecks ?? (affectingPathChecks = /* @__PURE__ */ new Set())).add(path);\n if (watcher == null ? void 0 : watcher.files) (affectingPathChecksForFile ?? (affectingPathChecksForFile = /* @__PURE__ */ new Set())).add(path);\n (_a = watcher == null ? void 0 : watcher.symlinks) == null ? void 0 : _a.forEach((path2) => invalidateAffectingFileWatcher(path2, packageJsonMap));\n packageJsonMap == null ? void 0 : packageJsonMap.delete(resolutionHost.toPath(path));\n }\n function watchFailedLookupLocationOfNonRelativeModuleResolutions() {\n nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfResolution);\n nonRelativeExternalModuleResolutions.clear();\n }\n function createDirectoryWatcherForPackageDir(dir, dirPath, packageDir, packageDirPath, nonRecursive) {\n Debug.assert(!nonRecursive);\n let isSymlink = isSymlinkCache.get(packageDirPath);\n let packageDirWatcher = packageDirWatchers.get(packageDirPath);\n if (isSymlink === void 0) {\n const realPath2 = resolutionHost.realpath(packageDir);\n isSymlink = realPath2 !== packageDir && resolutionHost.toPath(realPath2) !== packageDirPath;\n isSymlinkCache.set(packageDirPath, isSymlink);\n if (!packageDirWatcher) {\n packageDirWatchers.set(\n packageDirPath,\n packageDirWatcher = {\n dirPathToWatcher: /* @__PURE__ */ new Map(),\n isSymlink\n }\n );\n } else if (packageDirWatcher.isSymlink !== isSymlink) {\n packageDirWatcher.dirPathToWatcher.forEach((watcher) => {\n removeDirectoryWatcher(packageDirWatcher.isSymlink ? packageDirPath : dirPath);\n watcher.watcher = createDirPathToWatcher();\n });\n packageDirWatcher.isSymlink = isSymlink;\n }\n } else {\n Debug.assertIsDefined(packageDirWatcher);\n Debug.assert(isSymlink === packageDirWatcher.isSymlink);\n }\n const forDirPath = packageDirWatcher.dirPathToWatcher.get(dirPath);\n if (forDirPath) {\n forDirPath.refCount++;\n } else {\n packageDirWatcher.dirPathToWatcher.set(dirPath, {\n watcher: createDirPathToWatcher(),\n refCount: 1\n });\n if (isSymlink) dirPathToSymlinkPackageRefCount.set(dirPath, (dirPathToSymlinkPackageRefCount.get(dirPath) ?? 0) + 1);\n }\n function createDirPathToWatcher() {\n return isSymlink ? createOrAddRefToDirectoryWatchOfFailedLookups(packageDir, packageDirPath, nonRecursive) : createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive);\n }\n }\n function setDirectoryWatcher(dir, dirPath, packageDir, packageDirPath, nonRecursive) {\n if (!packageDirPath || !resolutionHost.realpath) {\n createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive);\n } else {\n createDirectoryWatcherForPackageDir(dir, dirPath, packageDir, packageDirPath, nonRecursive);\n }\n }\n function createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive) {\n let dirWatcher = directoryWatchesOfFailedLookups.get(dirPath);\n if (dirWatcher) {\n Debug.assert(!!nonRecursive === !!dirWatcher.nonRecursive);\n dirWatcher.refCount++;\n } else {\n directoryWatchesOfFailedLookups.set(dirPath, dirWatcher = { watcher: createDirectoryWatcher(dir, dirPath, nonRecursive), refCount: 1, nonRecursive });\n }\n return dirWatcher;\n }\n function stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot) {\n const failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation);\n const toWatch = getDirectoryToWatchFailedLookupLocation(\n failedLookupLocation,\n failedLookupLocationPath,\n rootDir,\n rootPath,\n rootPathComponents,\n isRootWatchable,\n getCurrentDirectory,\n resolutionHost.preferNonRecursiveWatch\n );\n if (toWatch) {\n const { dirPath, packageDirPath } = toWatch;\n if (dirPath === rootPath) {\n removeAtRoot = true;\n } else if (packageDirPath && resolutionHost.realpath) {\n const packageDirWatcher = packageDirWatchers.get(packageDirPath);\n const forDirPath = packageDirWatcher.dirPathToWatcher.get(dirPath);\n forDirPath.refCount--;\n if (forDirPath.refCount === 0) {\n removeDirectoryWatcher(packageDirWatcher.isSymlink ? packageDirPath : dirPath);\n packageDirWatcher.dirPathToWatcher.delete(dirPath);\n if (packageDirWatcher.isSymlink) {\n const refCount = dirPathToSymlinkPackageRefCount.get(dirPath) - 1;\n if (refCount === 0) {\n dirPathToSymlinkPackageRefCount.delete(dirPath);\n } else {\n dirPathToSymlinkPackageRefCount.set(dirPath, refCount);\n }\n }\n }\n } else {\n removeDirectoryWatcher(dirPath);\n }\n }\n return removeAtRoot;\n }\n function stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName) {\n Debug.checkDefined(resolution.files).delete(filePath);\n if (resolution.files.size) return;\n resolution.files = void 0;\n const resolved = getResolutionWithResolvedFileName(resolution);\n if (resolved && resolved.resolvedFileName) {\n const key = resolutionHost.toPath(resolved.resolvedFileName);\n const resolutions = resolvedFileToResolution.get(key);\n if ((resolutions == null ? void 0 : resolutions.delete(resolution)) && !resolutions.size) resolvedFileToResolution.delete(key);\n }\n const { failedLookupLocations, affectingLocations, alternateResult } = resolution;\n if (resolutionsWithFailedLookups.delete(resolution)) {\n let removeAtRoot = false;\n if (failedLookupLocations) {\n for (const failedLookupLocation of failedLookupLocations) {\n removeAtRoot = stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot);\n }\n }\n if (alternateResult) removeAtRoot = stopWatchFailedLookupLocation(alternateResult, removeAtRoot);\n if (removeAtRoot) removeDirectoryWatcher(rootPath);\n } else if (affectingLocations == null ? void 0 : affectingLocations.length) {\n resolutionsWithOnlyAffectingLocations.delete(resolution);\n }\n if (affectingLocations) {\n for (const affectingLocation of affectingLocations) {\n const watcher = fileWatchesOfAffectingLocations.get(affectingLocation);\n watcher.resolutions--;\n }\n }\n }\n function removeDirectoryWatcher(dirPath) {\n const dirWatcher = directoryWatchesOfFailedLookups.get(dirPath);\n dirWatcher.refCount--;\n }\n function createDirectoryWatcher(directory, dirPath, nonRecursive) {\n return resolutionHost.watchDirectoryOfFailedLookupLocation(directory, (fileOrDirectory) => {\n const fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory);\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n }\n scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath);\n }, nonRecursive ? 0 /* None */ : 1 /* Recursive */);\n }\n function removeResolutionsOfFileFromCache(cache, filePath, getResolutionWithResolvedFileName) {\n const resolutions = cache.get(filePath);\n if (resolutions) {\n resolutions.forEach(\n (resolution) => stopWatchFailedLookupLocationOfResolution(\n resolution,\n filePath,\n getResolutionWithResolvedFileName\n )\n );\n cache.delete(filePath);\n }\n }\n function removeResolutionsFromProjectReferenceRedirects(filePath) {\n if (!fileExtensionIs(filePath, \".json\" /* Json */)) return;\n const program = resolutionHost.getCurrentProgram();\n if (!program) return;\n const resolvedProjectReference = program.getResolvedProjectReferenceByPath(filePath);\n if (!resolvedProjectReference) return;\n resolvedProjectReference.commandLine.fileNames.forEach((f) => removeResolutionsOfFile(resolutionHost.toPath(f)));\n }\n function removeResolutionsOfFile(filePath) {\n removeResolutionsOfFileFromCache(resolvedModuleNames, filePath, getResolvedModuleFromResolution);\n removeResolutionsOfFileFromCache(resolvedTypeReferenceDirectives, filePath, getResolvedTypeReferenceDirectiveFromResolution);\n }\n function invalidateResolutions(resolutions, canInvalidate) {\n if (!resolutions) return false;\n let invalidated = false;\n resolutions.forEach((resolution) => {\n if (resolution.isInvalidated || !canInvalidate(resolution)) return;\n resolution.isInvalidated = invalidated = true;\n for (const containingFilePath of Debug.checkDefined(resolution.files)) {\n (filesWithInvalidatedResolutions ?? (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(containingFilePath);\n hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames || endsWith(containingFilePath, inferredTypesContainingFile);\n }\n });\n return invalidated;\n }\n function invalidateResolutionOfFile(filePath) {\n removeResolutionsOfFile(filePath);\n const prevHasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames;\n if (invalidateResolutions(resolvedFileToResolution.get(filePath), returnTrue) && hasChangedAutomaticTypeDirectiveNames && !prevHasChangedAutomaticTypeDirectiveNames) {\n resolutionHost.onChangedAutomaticTypeDirectiveNames();\n }\n }\n function setFilesWithInvalidatedNonRelativeUnresolvedImports(filesMap) {\n Debug.assert(filesWithInvalidatedNonRelativeUnresolvedImports === filesMap || filesWithInvalidatedNonRelativeUnresolvedImports === void 0);\n filesWithInvalidatedNonRelativeUnresolvedImports = filesMap;\n }\n function scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, isCreatingWatchedDirectory) {\n if (isCreatingWatchedDirectory) {\n (isInDirectoryChecks || (isInDirectoryChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n } else {\n const updatedPath = removeIgnoredPath(fileOrDirectoryPath);\n if (!updatedPath) return false;\n fileOrDirectoryPath = updatedPath;\n if (resolutionHost.fileIsOpen(fileOrDirectoryPath)) {\n return false;\n }\n const dirOfFileOrDirectory = getDirectoryPath(fileOrDirectoryPath);\n if (isNodeModulesAtTypesDirectory(fileOrDirectoryPath) || isNodeModulesDirectory(fileOrDirectoryPath) || isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) {\n (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n } else {\n if (isEmittedFileOfProgram(resolutionHost.getCurrentProgram(), fileOrDirectoryPath)) {\n return false;\n }\n if (fileExtensionIs(fileOrDirectoryPath, \".map\")) {\n return false;\n }\n (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n const packagePath = parseNodeModuleFromPath(\n fileOrDirectoryPath,\n /*isFolder*/\n true\n );\n if (packagePath) (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(packagePath);\n }\n }\n resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations();\n }\n function invalidatePackageJsonMap() {\n const packageJsonMap = moduleResolutionCache.getPackageJsonInfoCache().getInternalMap();\n if (packageJsonMap && (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks)) {\n packageJsonMap.forEach((_value, path) => isInvalidatedFailedLookup(path) ? packageJsonMap.delete(path) : void 0);\n }\n }\n function invalidateResolutionsOfFailedLookupLocations() {\n var _a;\n if (allModuleAndTypeResolutionsAreInvalidated) {\n affectingPathChecksForFile = void 0;\n invalidatePackageJsonMap();\n if (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks || affectingPathChecks) {\n invalidateResolutions(resolvedLibraries, canInvalidateFailedLookupResolution);\n }\n failedLookupChecks = void 0;\n startsWithPathChecks = void 0;\n isInDirectoryChecks = void 0;\n affectingPathChecks = void 0;\n return true;\n }\n let invalidated = false;\n if (affectingPathChecksForFile) {\n (_a = resolutionHost.getCurrentProgram()) == null ? void 0 : _a.getSourceFiles().forEach((f) => {\n if (some(f.packageJsonLocations, (location) => affectingPathChecksForFile.has(location))) {\n (filesWithInvalidatedResolutions ?? (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(f.path);\n invalidated = true;\n }\n });\n affectingPathChecksForFile = void 0;\n }\n if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks && !affectingPathChecks) {\n return invalidated;\n }\n invalidated = invalidateResolutions(resolutionsWithFailedLookups, canInvalidateFailedLookupResolution) || invalidated;\n invalidatePackageJsonMap();\n failedLookupChecks = void 0;\n startsWithPathChecks = void 0;\n isInDirectoryChecks = void 0;\n invalidated = invalidateResolutions(resolutionsWithOnlyAffectingLocations, canInvalidatedFailedLookupResolutionWithAffectingLocation) || invalidated;\n affectingPathChecks = void 0;\n return invalidated;\n }\n function canInvalidateFailedLookupResolution(resolution) {\n var _a;\n if (canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution)) return true;\n if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks) return false;\n return ((_a = resolution.failedLookupLocations) == null ? void 0 : _a.some((location) => isInvalidatedFailedLookup(resolutionHost.toPath(location)))) || !!resolution.alternateResult && isInvalidatedFailedLookup(resolutionHost.toPath(resolution.alternateResult));\n }\n function isInvalidatedFailedLookup(locationPath) {\n return (failedLookupChecks == null ? void 0 : failedLookupChecks.has(locationPath)) || firstDefinedIterator((startsWithPathChecks == null ? void 0 : startsWithPathChecks.keys()) || [], (fileOrDirectoryPath) => startsWith(locationPath, fileOrDirectoryPath) ? true : void 0) || firstDefinedIterator((isInDirectoryChecks == null ? void 0 : isInDirectoryChecks.keys()) || [], (dirPath) => locationPath.length > dirPath.length && startsWith(locationPath, dirPath) && (isDiskPathRoot(dirPath) || locationPath[dirPath.length] === directorySeparator) ? true : void 0);\n }\n function canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution) {\n var _a;\n return !!affectingPathChecks && ((_a = resolution.affectingLocations) == null ? void 0 : _a.some((location) => affectingPathChecks.has(location)));\n }\n function closeTypeRootsWatch() {\n clearMap(typeRootsWatches, closeFileWatcher);\n }\n function createTypeRootsWatch(typeRoot) {\n return canWatchTypeRootPath(typeRoot) ? resolutionHost.watchTypeRootsDirectory(typeRoot, (fileOrDirectory) => {\n const fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory);\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n }\n hasChangedAutomaticTypeDirectiveNames = true;\n resolutionHost.onChangedAutomaticTypeDirectiveNames();\n const dirPath = getDirectoryToWatchFailedLookupLocationFromTypeRoot(\n typeRoot,\n resolutionHost.toPath(typeRoot),\n rootPath,\n rootPathComponents,\n isRootWatchable,\n getCurrentDirectory,\n resolutionHost.preferNonRecursiveWatch,\n (dirPath2) => directoryWatchesOfFailedLookups.has(dirPath2) || dirPathToSymlinkPackageRefCount.has(dirPath2)\n );\n if (dirPath) {\n scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath);\n }\n }, 1 /* Recursive */) : noopFileWatcher;\n }\n function updateTypeRootsWatch() {\n const options = resolutionHost.getCompilationSettings();\n if (options.types) {\n closeTypeRootsWatch();\n return;\n }\n const typeRoots = getEffectiveTypeRoots(options, { getCurrentDirectory });\n if (typeRoots) {\n mutateMap(\n typeRootsWatches,\n new Set(typeRoots),\n {\n createNewValue: createTypeRootsWatch,\n onDeleteValue: closeFileWatcher\n }\n );\n } else {\n closeTypeRootsWatch();\n }\n }\n function canWatchTypeRootPath(typeRoot) {\n if (resolutionHost.getCompilationSettings().typeRoots) return true;\n return canWatchAtTypes(resolutionHost.toPath(typeRoot));\n }\n}\nfunction resolutionIsSymlink(resolution) {\n var _a, _b;\n return !!(((_a = resolution.resolvedModule) == null ? void 0 : _a.originalPath) || ((_b = resolution.resolvedTypeReferenceDirective) == null ? void 0 : _b.originalPath));\n}\n\n// src/compiler/watch.ts\nvar sysFormatDiagnosticsHost = sys ? {\n getCurrentDirectory: () => sys.getCurrentDirectory(),\n getNewLine: () => sys.newLine,\n getCanonicalFileName: createGetCanonicalFileName(sys.useCaseSensitiveFileNames)\n} : void 0;\nfunction createDiagnosticReporter(system, pretty) {\n const host = system === sys && sysFormatDiagnosticsHost ? sysFormatDiagnosticsHost : {\n getCurrentDirectory: () => system.getCurrentDirectory(),\n getNewLine: () => system.newLine,\n getCanonicalFileName: createGetCanonicalFileName(system.useCaseSensitiveFileNames)\n };\n if (!pretty) {\n return (diagnostic) => system.write(formatDiagnostic(diagnostic, host));\n }\n const diagnostics = new Array(1);\n return (diagnostic) => {\n diagnostics[0] = diagnostic;\n system.write(formatDiagnosticsWithColorAndContext(diagnostics, host) + host.getNewLine());\n diagnostics[0] = void 0;\n };\n}\nfunction clearScreenIfNotWatchingForFileChanges(system, diagnostic, options) {\n if (system.clearScreen && !options.preserveWatchOutput && !options.extendedDiagnostics && !options.diagnostics && contains(screenStartingMessageCodes, diagnostic.code)) {\n system.clearScreen();\n return true;\n }\n return false;\n}\nvar screenStartingMessageCodes = [\n Diagnostics.Starting_compilation_in_watch_mode.code,\n Diagnostics.File_change_detected_Starting_incremental_compilation.code\n];\nfunction getPlainDiagnosticFollowingNewLines(diagnostic, newLine) {\n return contains(screenStartingMessageCodes, diagnostic.code) ? newLine + newLine : newLine;\n}\nfunction getLocaleTimeString(system) {\n return !system.now ? (/* @__PURE__ */ new Date()).toLocaleTimeString() : (\n // On some systems / builds of Node, there's a non-breaking space between the time and AM/PM.\n // This branch is solely for testing, so just switch it to a normal space for baseline stability.\n // See:\n // - https://github.com/nodejs/node/issues/45171\n // - https://github.com/nodejs/node/issues/45753\n system.now().toLocaleTimeString(\"en-US\", { timeZone: \"UTC\" }).replace(\"\\u202F\", \" \")\n );\n}\nfunction createWatchStatusReporter(system, pretty) {\n return pretty ? (diagnostic, newLine, options) => {\n clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);\n let output = `[${formatColorAndReset(getLocaleTimeString(system), \"\\x1B[90m\" /* Grey */)}] `;\n output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${newLine + newLine}`;\n system.write(output);\n } : (diagnostic, newLine, options) => {\n let output = \"\";\n if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {\n output += newLine;\n }\n output += `${getLocaleTimeString(system)} - `;\n output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${getPlainDiagnosticFollowingNewLines(diagnostic, newLine)}`;\n system.write(output);\n };\n}\nfunction parseConfigFileWithSystem(configFileName, optionsToExtend, extendedConfigCache, watchOptionsToExtend, system, reportDiagnostic) {\n const host = system;\n host.onUnRecoverableConfigFileDiagnostic = (diagnostic) => reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic);\n const result = getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend);\n host.onUnRecoverableConfigFileDiagnostic = void 0;\n return result;\n}\nfunction getErrorCountForSummary(diagnostics) {\n return countWhere(diagnostics, (diagnostic) => diagnostic.category === 1 /* Error */);\n}\nfunction getFilesInErrorForSummary(diagnostics) {\n const filesInError = filter(diagnostics, (diagnostic) => diagnostic.category === 1 /* Error */).map(\n (errorDiagnostic) => {\n if (errorDiagnostic.file === void 0) return;\n return `${errorDiagnostic.file.fileName}`;\n }\n );\n return filesInError.map((fileName) => {\n if (fileName === void 0) {\n return void 0;\n }\n const diagnosticForFileName = find(diagnostics, (diagnostic) => diagnostic.file !== void 0 && diagnostic.file.fileName === fileName);\n if (diagnosticForFileName !== void 0) {\n const { line } = getLineAndCharacterOfPosition(diagnosticForFileName.file, diagnosticForFileName.start);\n return {\n fileName,\n line: line + 1\n };\n }\n });\n}\nfunction getWatchErrorSummaryDiagnosticMessage(errorCount) {\n return errorCount === 1 ? Diagnostics.Found_1_error_Watching_for_file_changes : Diagnostics.Found_0_errors_Watching_for_file_changes;\n}\nfunction prettyPathForFileError(error2, cwd) {\n const line = formatColorAndReset(\":\" + error2.line, \"\\x1B[90m\" /* Grey */);\n if (pathIsAbsolute(error2.fileName) && pathIsAbsolute(cwd)) {\n return getRelativePathFromDirectory(\n cwd,\n error2.fileName,\n /*ignoreCase*/\n false\n ) + line;\n }\n return error2.fileName + line;\n}\nfunction getErrorSummaryText(errorCount, filesInError, newLine, host) {\n if (errorCount === 0) return \"\";\n const nonNilFiles = filesInError.filter((fileInError) => fileInError !== void 0);\n const distinctFileNamesWithLines = nonNilFiles.map((fileInError) => `${fileInError.fileName}:${fileInError.line}`).filter((value, index, self) => self.indexOf(value) === index);\n const firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());\n let messageAndArgs;\n if (errorCount === 1) {\n messageAndArgs = filesInError[0] !== void 0 ? [Diagnostics.Found_1_error_in_0, firstFileReference] : [Diagnostics.Found_1_error];\n } else {\n messageAndArgs = distinctFileNamesWithLines.length === 0 ? [Diagnostics.Found_0_errors, errorCount] : distinctFileNamesWithLines.length === 1 ? [Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1, errorCount, firstFileReference] : [Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length];\n }\n const d = createCompilerDiagnostic(...messageAndArgs);\n const suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : \"\";\n return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}${suffix}`;\n}\nfunction createTabularErrorsDisplay(filesInError, host) {\n const distinctFiles = filesInError.filter((value, index, self) => index === self.findIndex((file) => (file == null ? void 0 : file.fileName) === (value == null ? void 0 : value.fileName)));\n if (distinctFiles.length === 0) return \"\";\n const numberLength = (num) => Math.log(num) * Math.LOG10E + 1;\n const fileToErrorCount = distinctFiles.map((file) => [file, countWhere(filesInError, (fileInError) => fileInError.fileName === file.fileName)]);\n const maxErrors = maxBy(fileToErrorCount, 0, (value) => value[1]);\n const headerRow = Diagnostics.Errors_Files.message;\n const leftColumnHeadingLength = headerRow.split(\" \")[0].length;\n const leftPaddingGoal = Math.max(leftColumnHeadingLength, numberLength(maxErrors));\n const headerPadding = Math.max(numberLength(maxErrors) - leftColumnHeadingLength, 0);\n let tabularData = \"\";\n tabularData += \" \".repeat(headerPadding) + headerRow + \"\\n\";\n fileToErrorCount.forEach((row) => {\n const [file, errorCount] = row;\n const errorCountDigitsLength = Math.log(errorCount) * Math.LOG10E + 1 | 0;\n const leftPadding = errorCountDigitsLength < leftPaddingGoal ? \" \".repeat(leftPaddingGoal - errorCountDigitsLength) : \"\";\n const fileRef = prettyPathForFileError(file, host.getCurrentDirectory());\n tabularData += `${leftPadding}${errorCount} ${fileRef}\n`;\n });\n return tabularData;\n}\nfunction isBuilderProgram(program) {\n return !!program.state;\n}\nfunction listFiles(program, write) {\n const options = program.getCompilerOptions();\n if (options.explainFiles) {\n explainFiles(isBuilderProgram(program) ? program.getProgram() : program, write);\n } else if (options.listFiles || options.listFilesOnly) {\n forEach(program.getSourceFiles(), (file) => {\n write(file.fileName);\n });\n }\n}\nfunction explainFiles(program, write) {\n var _a, _b;\n const reasons = program.getFileIncludeReasons();\n const relativeFileName = (fileName) => convertToRelativePath(fileName, program.getCurrentDirectory(), program.getCanonicalFileName);\n for (const file of program.getSourceFiles()) {\n write(`${toFileName(file, relativeFileName)}`);\n (_a = reasons.get(file.path)) == null ? void 0 : _a.forEach((reason) => write(` ${fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText}`));\n (_b = explainIfFileIsRedirectAndImpliedFormat(file, program.getCompilerOptionsForFile(file), relativeFileName)) == null ? void 0 : _b.forEach((d) => write(` ${d.messageText}`));\n }\n}\nfunction explainIfFileIsRedirectAndImpliedFormat(file, options, fileNameConvertor) {\n var _a;\n let result;\n if (file.path !== file.resolvedPath) {\n (result ?? (result = [])).push(chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.File_is_output_of_project_reference_source_0,\n toFileName(file.originalFileName, fileNameConvertor)\n ));\n }\n if (file.redirectInfo) {\n (result ?? (result = [])).push(chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.File_redirects_to_file_0,\n toFileName(file.redirectInfo.redirectTarget, fileNameConvertor)\n ));\n }\n if (isExternalOrCommonJsModule(file)) {\n switch (getImpliedNodeFormatForEmitWorker(file, options)) {\n case 99 /* ESNext */:\n if (file.packageJsonScope) {\n (result ?? (result = [])).push(chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.File_is_ECMAScript_module_because_0_has_field_type_with_value_module,\n toFileName(last(file.packageJsonLocations), fileNameConvertor)\n ));\n }\n break;\n case 1 /* CommonJS */:\n if (file.packageJsonScope) {\n (result ?? (result = [])).push(chainDiagnosticMessages(\n /*details*/\n void 0,\n file.packageJsonScope.contents.packageJsonContent.type ? Diagnostics.File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module : Diagnostics.File_is_CommonJS_module_because_0_does_not_have_field_type,\n toFileName(last(file.packageJsonLocations), fileNameConvertor)\n ));\n } else if ((_a = file.packageJsonLocations) == null ? void 0 : _a.length) {\n (result ?? (result = [])).push(chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.File_is_CommonJS_module_because_package_json_was_not_found\n ));\n }\n break;\n }\n }\n return result;\n}\nfunction getMatchedFileSpec(program, fileName) {\n var _a;\n const configFile = program.getCompilerOptions().configFile;\n if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedFilesSpec)) return void 0;\n const filePath = program.getCanonicalFileName(fileName);\n const basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory()));\n const index = findIndex(configFile.configFileSpecs.validatedFilesSpec, (fileSpec) => program.getCanonicalFileName(getNormalizedAbsolutePath(fileSpec, basePath)) === filePath);\n return index !== -1 ? configFile.configFileSpecs.validatedFilesSpecBeforeSubstitution[index] : void 0;\n}\nfunction getMatchedIncludeSpec(program, fileName) {\n var _a, _b;\n const configFile = program.getCompilerOptions().configFile;\n if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedIncludeSpecs)) return void 0;\n if (configFile.configFileSpecs.isDefaultIncludeSpec) return true;\n const isJsonFile = fileExtensionIs(fileName, \".json\" /* Json */);\n const basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory()));\n const useCaseSensitiveFileNames2 = program.useCaseSensitiveFileNames();\n const index = findIndex((_b = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs, (includeSpec) => {\n if (isJsonFile && !endsWith(includeSpec, \".json\" /* Json */)) return false;\n const pattern = getPatternFromSpec(includeSpec, basePath, \"files\");\n return !!pattern && getRegexFromPattern(`(?:${pattern})$`, useCaseSensitiveFileNames2).test(fileName);\n });\n return index !== -1 ? configFile.configFileSpecs.validatedIncludeSpecsBeforeSubstitution[index] : void 0;\n}\nfunction fileIncludeReasonToDiagnostics(program, reason, fileNameConvertor) {\n var _a, _b;\n const options = program.getCompilerOptions();\n if (isReferencedFile(reason)) {\n const referenceLocation = getReferencedFileLocation(program, reason);\n const referenceText = isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : `\"${referenceLocation.text}\"`;\n let message;\n Debug.assert(isReferenceFileLocation(referenceLocation) || reason.kind === 3 /* Import */, \"Only synthetic references are imports\");\n switch (reason.kind) {\n case 3 /* Import */:\n if (isReferenceFileLocation(referenceLocation)) {\n message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2 : Diagnostics.Imported_via_0_from_file_1;\n } else if (referenceLocation.text === externalHelpersModuleNameText) {\n message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions : Diagnostics.Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions;\n } else {\n message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions : Diagnostics.Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions;\n }\n break;\n case 4 /* ReferenceFile */:\n Debug.assert(!referenceLocation.packageId);\n message = Diagnostics.Referenced_via_0_from_file_1;\n break;\n case 5 /* TypeReferenceDirective */:\n message = referenceLocation.packageId ? Diagnostics.Type_library_referenced_via_0_from_file_1_with_packageId_2 : Diagnostics.Type_library_referenced_via_0_from_file_1;\n break;\n case 7 /* LibReferenceDirective */:\n Debug.assert(!referenceLocation.packageId);\n message = Diagnostics.Library_referenced_via_0_from_file_1;\n break;\n default:\n Debug.assertNever(reason);\n }\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n message,\n referenceText,\n toFileName(referenceLocation.file, fileNameConvertor),\n referenceLocation.packageId && packageIdToString(referenceLocation.packageId)\n );\n }\n switch (reason.kind) {\n case 0 /* RootFile */:\n if (!((_a = options.configFile) == null ? void 0 : _a.configFileSpecs)) return chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Root_file_specified_for_compilation\n );\n const fileName = getNormalizedAbsolutePath(program.getRootFileNames()[reason.index], program.getCurrentDirectory());\n const matchedByFiles = getMatchedFileSpec(program, fileName);\n if (matchedByFiles) return chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Part_of_files_list_in_tsconfig_json\n );\n const matchedByInclude = getMatchedIncludeSpec(program, fileName);\n return isString(matchedByInclude) ? chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Matched_by_include_pattern_0_in_1,\n matchedByInclude,\n toFileName(options.configFile, fileNameConvertor)\n ) : (\n // Could be additional files specified as roots or matched by default include\n chainDiagnosticMessages(\n /*details*/\n void 0,\n matchedByInclude ? Diagnostics.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk : Diagnostics.Root_file_specified_for_compilation\n )\n );\n case 1 /* SourceFromProjectReference */:\n case 2 /* OutputFromProjectReference */:\n const isOutput = reason.kind === 2 /* OutputFromProjectReference */;\n const referencedResolvedRef = Debug.checkDefined((_b = program.getResolvedProjectReferences()) == null ? void 0 : _b[reason.index]);\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n options.outFile ? isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_1_specified : Diagnostics.Source_from_referenced_project_0_included_because_1_specified : isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_module_is_specified_as_none : Diagnostics.Source_from_referenced_project_0_included_because_module_is_specified_as_none,\n toFileName(referencedResolvedRef.sourceFile.fileName, fileNameConvertor),\n options.outFile ? \"--outFile\" : \"--out\"\n );\n case 8 /* AutomaticTypeDirectiveFile */: {\n const messageAndArgs = options.types ? reason.packageId ? [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions, reason.typeReference] : reason.packageId ? [Diagnostics.Entry_point_for_implicit_type_library_0_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_for_implicit_type_library_0, reason.typeReference];\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n ...messageAndArgs\n );\n }\n case 6 /* LibFile */: {\n if (reason.index !== void 0) return chainDiagnosticMessages(\n /*details*/\n void 0,\n Diagnostics.Library_0_specified_in_compilerOptions,\n options.lib[reason.index]\n );\n const target = getNameOfScriptTarget(getEmitScriptTarget(options));\n const messageAndArgs = target ? [Diagnostics.Default_library_for_target_0, target] : [Diagnostics.Default_library];\n return chainDiagnosticMessages(\n /*details*/\n void 0,\n ...messageAndArgs\n );\n }\n default:\n Debug.assertNever(reason);\n }\n}\nfunction toFileName(file, fileNameConvertor) {\n const fileName = isString(file) ? file : file.fileName;\n return fileNameConvertor ? fileNameConvertor(fileName) : fileName;\n}\nfunction emitFilesAndReportErrors(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n const options = program.getCompilerOptions();\n const allDiagnostics = program.getConfigFileParsingDiagnostics().slice();\n const configFileParsingDiagnosticsLength = allDiagnostics.length;\n addRange(allDiagnostics, program.getSyntacticDiagnostics(\n /*sourceFile*/\n void 0,\n cancellationToken\n ));\n if (allDiagnostics.length === configFileParsingDiagnosticsLength) {\n addRange(allDiagnostics, program.getOptionsDiagnostics(cancellationToken));\n if (!options.listFilesOnly) {\n addRange(allDiagnostics, program.getGlobalDiagnostics(cancellationToken));\n if (allDiagnostics.length === configFileParsingDiagnosticsLength) {\n addRange(allDiagnostics, program.getSemanticDiagnostics(\n /*sourceFile*/\n void 0,\n cancellationToken\n ));\n }\n if (options.noEmit && getEmitDeclarations(options) && allDiagnostics.length === configFileParsingDiagnosticsLength) {\n addRange(allDiagnostics, program.getDeclarationDiagnostics(\n /*sourceFile*/\n void 0,\n cancellationToken\n ));\n }\n }\n }\n const emitResult = options.listFilesOnly ? { emitSkipped: true, diagnostics: emptyArray } : program.emit(\n /*targetSourceFile*/\n void 0,\n writeFile2,\n cancellationToken,\n emitOnlyDtsFiles,\n customTransformers\n );\n addRange(allDiagnostics, emitResult.diagnostics);\n const diagnostics = sortAndDeduplicateDiagnostics(allDiagnostics);\n diagnostics.forEach(reportDiagnostic);\n if (write) {\n const currentDir = program.getCurrentDirectory();\n forEach(emitResult.emittedFiles, (file) => {\n const filepath = getNormalizedAbsolutePath(file, currentDir);\n write(`TSFILE: ${filepath}`);\n });\n listFiles(program, write);\n }\n if (reportSummary) {\n reportSummary(getErrorCountForSummary(diagnostics), getFilesInErrorForSummary(diagnostics));\n }\n return {\n emitResult,\n diagnostics\n };\n}\nfunction emitFilesAndReportErrorsAndGetExitStatus(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n const { emitResult, diagnostics } = emitFilesAndReportErrors(\n program,\n reportDiagnostic,\n write,\n reportSummary,\n writeFile2,\n cancellationToken,\n emitOnlyDtsFiles,\n customTransformers\n );\n if (emitResult.emitSkipped && diagnostics.length > 0) {\n return 1 /* DiagnosticsPresent_OutputsSkipped */;\n } else if (diagnostics.length > 0) {\n return 2 /* DiagnosticsPresent_OutputsGenerated */;\n }\n return 0 /* Success */;\n}\nvar noopFileWatcher = { close: noop };\nvar returnNoopFileWatcher = () => noopFileWatcher;\nfunction createWatchHost(system = sys, reportWatchStatus2) {\n const onWatchStatusChange = reportWatchStatus2 || createWatchStatusReporter(system);\n return {\n onWatchStatusChange,\n watchFile: maybeBind(system, system.watchFile) || returnNoopFileWatcher,\n watchDirectory: maybeBind(system, system.watchDirectory) || returnNoopFileWatcher,\n setTimeout: maybeBind(system, system.setTimeout) || noop,\n clearTimeout: maybeBind(system, system.clearTimeout) || noop,\n preferNonRecursiveWatch: system.preferNonRecursiveWatch\n };\n}\nvar WatchType = {\n ConfigFile: \"Config file\",\n ExtendedConfigFile: \"Extended config file\",\n SourceFile: \"Source file\",\n MissingFile: \"Missing file\",\n WildcardDirectory: \"Wild card directory\",\n FailedLookupLocations: \"Failed Lookup Locations\",\n AffectingFileLocation: \"File location affecting resolution\",\n TypeRoots: \"Type roots\",\n ConfigFileOfReferencedProject: \"Config file of referened project\",\n ExtendedConfigOfReferencedProject: \"Extended config file of referenced project\",\n WildcardDirectoryOfReferencedProject: \"Wild card directory of referenced project\",\n PackageJson: \"package.json file\",\n ClosedScriptInfo: \"Closed Script info\",\n ConfigFileForInferredRoot: \"Config file for the inferred project root\",\n NodeModules: \"node_modules for closed script infos and package.jsons affecting module specifier cache\",\n MissingSourceMapFile: \"Missing source map file\",\n NoopConfigFileForInferredRoot: \"Noop Config file for the inferred project root\",\n MissingGeneratedFile: \"Missing generated file\",\n NodeModulesForModuleSpecifierCache: \"node_modules for module specifier cache invalidation\",\n TypingInstallerLocationFile: \"File location for typing installer\",\n TypingInstallerLocationDirectory: \"Directory location for typing installer\"\n};\nfunction createWatchFactory(host, options) {\n const watchLogLevel = host.trace ? options.extendedDiagnostics ? 2 /* Verbose */ : options.diagnostics ? 1 /* TriggerOnly */ : 0 /* None */ : 0 /* None */;\n const writeLog = watchLogLevel !== 0 /* None */ ? (s) => host.trace(s) : noop;\n const result = getWatchFactory(host, watchLogLevel, writeLog);\n result.writeLog = writeLog;\n return result;\n}\nfunction createCompilerHostFromProgramHost(host, getCompilerOptions, directoryStructureHost = host) {\n const useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames();\n const compilerHost = {\n getSourceFile: createGetSourceFile(\n (fileName, encoding) => !encoding ? compilerHost.readFile(fileName) : host.readFile(fileName, encoding),\n /*setParentNodes*/\n void 0\n ),\n getDefaultLibLocation: maybeBind(host, host.getDefaultLibLocation),\n getDefaultLibFileName: (options) => host.getDefaultLibFileName(options),\n writeFile: createWriteFileMeasuringIO(\n (path, data, writeByteOrderMark) => host.writeFile(path, data, writeByteOrderMark),\n (path) => host.createDirectory(path),\n (path) => host.directoryExists(path)\n ),\n getCurrentDirectory: memoize(() => host.getCurrentDirectory()),\n useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n getCanonicalFileName: createGetCanonicalFileName(useCaseSensitiveFileNames2),\n getNewLine: () => getNewLineCharacter(getCompilerOptions()),\n fileExists: (f) => host.fileExists(f),\n readFile: (f) => host.readFile(f),\n trace: maybeBind(host, host.trace),\n directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists),\n getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories),\n realpath: maybeBind(host, host.realpath),\n getEnvironmentVariable: maybeBind(host, host.getEnvironmentVariable) || (() => \"\"),\n createHash: maybeBind(host, host.createHash),\n readDirectory: maybeBind(host, host.readDirectory),\n storeSignatureInfo: host.storeSignatureInfo,\n jsDocParsingMode: host.jsDocParsingMode\n };\n return compilerHost;\n}\nfunction getSourceFileVersionAsHashFromText(host, text) {\n if (text.match(sourceMapCommentRegExpDontCareLineStart)) {\n let lineEnd = text.length;\n let lineStart = lineEnd;\n for (let pos = lineEnd - 1; pos >= 0; pos--) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 10 /* lineFeed */:\n if (pos && text.charCodeAt(pos - 1) === 13 /* carriageReturn */) {\n pos--;\n }\n // falls through\n case 13 /* carriageReturn */:\n break;\n default:\n if (ch < 127 /* maxAsciiCharacter */ || !isLineBreak(ch)) {\n lineStart = pos;\n continue;\n }\n break;\n }\n const line = text.substring(lineStart, lineEnd);\n if (line.match(sourceMapCommentRegExp)) {\n text = text.substring(0, lineStart);\n break;\n } else if (!line.match(whitespaceOrMapCommentRegExp)) {\n break;\n }\n lineEnd = lineStart;\n }\n }\n return (host.createHash || generateDjb2Hash)(text);\n}\nfunction setGetSourceFileAsHashVersioned(compilerHost) {\n const originalGetSourceFile = compilerHost.getSourceFile;\n compilerHost.getSourceFile = (...args) => {\n const result = originalGetSourceFile.call(compilerHost, ...args);\n if (result) {\n result.version = getSourceFileVersionAsHashFromText(compilerHost, result.text);\n }\n return result;\n };\n}\nfunction createProgramHost(system, createProgram2) {\n const getDefaultLibLocation = memoize(() => getDirectoryPath(normalizePath(system.getExecutingFilePath())));\n return {\n useCaseSensitiveFileNames: () => system.useCaseSensitiveFileNames,\n getNewLine: () => system.newLine,\n getCurrentDirectory: memoize(() => system.getCurrentDirectory()),\n getDefaultLibLocation,\n getDefaultLibFileName: (options) => combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options)),\n fileExists: (path) => system.fileExists(path),\n readFile: (path, encoding) => system.readFile(path, encoding),\n directoryExists: (path) => system.directoryExists(path),\n getDirectories: (path) => system.getDirectories(path),\n readDirectory: (path, extensions, exclude, include, depth) => system.readDirectory(path, extensions, exclude, include, depth),\n realpath: maybeBind(system, system.realpath),\n getEnvironmentVariable: maybeBind(system, system.getEnvironmentVariable),\n trace: (s) => system.write(s + system.newLine),\n createDirectory: (path) => system.createDirectory(path),\n writeFile: (path, data, writeByteOrderMark) => system.writeFile(path, data, writeByteOrderMark),\n createHash: maybeBind(system, system.createHash),\n createProgram: createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram,\n storeSignatureInfo: system.storeSignatureInfo,\n now: maybeBind(system, system.now)\n };\n}\nfunction createWatchCompilerHost(system = sys, createProgram2, reportDiagnostic, reportWatchStatus2) {\n const write = (s) => system.write(s + system.newLine);\n const result = createProgramHost(system, createProgram2);\n copyProperties(result, createWatchHost(system, reportWatchStatus2));\n result.afterProgramCreate = (builderProgram) => {\n const compilerOptions = builderProgram.getCompilerOptions();\n const newLine = getNewLineCharacter(compilerOptions);\n emitFilesAndReportErrors(\n builderProgram,\n reportDiagnostic,\n write,\n (errorCount) => result.onWatchStatusChange(\n createCompilerDiagnostic(getWatchErrorSummaryDiagnosticMessage(errorCount), errorCount),\n newLine,\n compilerOptions,\n errorCount\n )\n );\n };\n return result;\n}\nfunction reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic) {\n reportDiagnostic(diagnostic);\n system.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n}\nfunction createWatchCompilerHostOfConfigFile({\n configFileName,\n optionsToExtend,\n watchOptionsToExtend,\n extraFileExtensions,\n system,\n createProgram: createProgram2,\n reportDiagnostic,\n reportWatchStatus: reportWatchStatus2\n}) {\n const diagnosticReporter = reportDiagnostic || createDiagnosticReporter(system);\n const host = createWatchCompilerHost(system, createProgram2, diagnosticReporter, reportWatchStatus2);\n host.onUnRecoverableConfigFileDiagnostic = (diagnostic) => reportUnrecoverableDiagnostic(system, diagnosticReporter, diagnostic);\n host.configFileName = configFileName;\n host.optionsToExtend = optionsToExtend;\n host.watchOptionsToExtend = watchOptionsToExtend;\n host.extraFileExtensions = extraFileExtensions;\n return host;\n}\nfunction createWatchCompilerHostOfFilesAndCompilerOptions({\n rootFiles,\n options,\n watchOptions,\n projectReferences,\n system,\n createProgram: createProgram2,\n reportDiagnostic,\n reportWatchStatus: reportWatchStatus2\n}) {\n const host = createWatchCompilerHost(system, createProgram2, reportDiagnostic || createDiagnosticReporter(system), reportWatchStatus2);\n host.rootFiles = rootFiles;\n host.options = options;\n host.watchOptions = watchOptions;\n host.projectReferences = projectReferences;\n return host;\n}\nfunction performIncrementalCompilation(input) {\n const system = input.system || sys;\n const host = input.host || (input.host = createIncrementalCompilerHost(input.options, system));\n const builderProgram = createIncrementalProgram(input);\n const exitStatus = emitFilesAndReportErrorsAndGetExitStatus(\n builderProgram,\n input.reportDiagnostic || createDiagnosticReporter(system),\n (s) => host.trace && host.trace(s),\n input.reportErrorSummary || input.options.pretty ? (errorCount, filesInError) => system.write(getErrorSummaryText(errorCount, filesInError, system.newLine, host)) : void 0\n );\n if (input.afterProgramEmitAndDiagnostics) input.afterProgramEmitAndDiagnostics(builderProgram);\n return exitStatus;\n}\n\n// src/compiler/watchPublic.ts\nfunction readBuilderProgram(compilerOptions, host) {\n const buildInfoPath = getTsBuildInfoEmitOutputFilePath(compilerOptions);\n if (!buildInfoPath) return void 0;\n let buildInfo;\n if (host.getBuildInfo) {\n buildInfo = host.getBuildInfo(buildInfoPath, compilerOptions.configFilePath);\n } else {\n const content = host.readFile(buildInfoPath);\n if (!content) return void 0;\n buildInfo = getBuildInfo(buildInfoPath, content);\n }\n if (!buildInfo || buildInfo.version !== version || !isIncrementalBuildInfo(buildInfo)) return void 0;\n return createBuilderProgramUsingIncrementalBuildInfo(buildInfo, buildInfoPath, host);\n}\nfunction createIncrementalCompilerHost(options, system = sys) {\n const host = createCompilerHostWorker(\n options,\n /*setParentNodes*/\n void 0,\n system\n );\n host.createHash = maybeBind(system, system.createHash);\n host.storeSignatureInfo = system.storeSignatureInfo;\n setGetSourceFileAsHashVersioned(host);\n changeCompilerHostLikeToUseCache(host, (fileName) => toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName));\n return host;\n}\nfunction createIncrementalProgram({\n rootNames,\n options,\n configFileParsingDiagnostics,\n projectReferences,\n host,\n createProgram: createProgram2\n}) {\n host = host || createIncrementalCompilerHost(options);\n createProgram2 = createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram;\n const oldProgram = readBuilderProgram(options, host);\n return createProgram2(rootNames, options, host, oldProgram, configFileParsingDiagnostics, projectReferences);\n}\nfunction createWatchCompilerHost2(rootFilesOrConfigFileName, options, system, createProgram2, reportDiagnostic, reportWatchStatus2, projectReferencesOrWatchOptionsToExtend, watchOptionsOrExtraFileExtensions) {\n if (isArray(rootFilesOrConfigFileName)) {\n return createWatchCompilerHostOfFilesAndCompilerOptions({\n rootFiles: rootFilesOrConfigFileName,\n options,\n watchOptions: watchOptionsOrExtraFileExtensions,\n projectReferences: projectReferencesOrWatchOptionsToExtend,\n system,\n createProgram: createProgram2,\n reportDiagnostic,\n reportWatchStatus: reportWatchStatus2\n });\n } else {\n return createWatchCompilerHostOfConfigFile({\n configFileName: rootFilesOrConfigFileName,\n optionsToExtend: options,\n watchOptionsToExtend: projectReferencesOrWatchOptionsToExtend,\n extraFileExtensions: watchOptionsOrExtraFileExtensions,\n system,\n createProgram: createProgram2,\n reportDiagnostic,\n reportWatchStatus: reportWatchStatus2\n });\n }\n}\nfunction createWatchProgram(host) {\n let builderProgram;\n let updateLevel;\n let missingFilesMap;\n let watchedWildcardDirectories;\n let staleWatches = /* @__PURE__ */ new Map([[void 0, void 0]]);\n let timerToUpdateProgram;\n let timerToInvalidateFailedLookupResolutions;\n let parsedConfigs;\n let sharedExtendedConfigFileWatchers;\n let extendedConfigCache = host.extendedConfigCache;\n let reportFileChangeDetectedOnCreateProgram = false;\n const sourceFilesCache = /* @__PURE__ */ new Map();\n let missingFilePathsRequestedForRelease;\n let hasChangedCompilerOptions = false;\n const useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames();\n const currentDirectory = host.getCurrentDirectory();\n const { configFileName, optionsToExtend: optionsToExtendForConfigFile = {}, watchOptionsToExtend, extraFileExtensions, createProgram: createProgram2 } = host;\n let { rootFiles: rootFileNames, options: compilerOptions, watchOptions, projectReferences } = host;\n let wildcardDirectories;\n let configFileParsingDiagnostics;\n let canConfigFileJsonReportNoInputFiles = false;\n let hasChangedConfigFileParsingErrors = false;\n const cachedDirectoryStructureHost = configFileName === void 0 ? void 0 : createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2);\n const directoryStructureHost = cachedDirectoryStructureHost || host;\n const parseConfigFileHost = parseConfigHostFromCompilerHostLike(host, directoryStructureHost);\n let newLine = updateNewLine();\n if (configFileName && host.configFileParsingResult) {\n setConfigFileParsingResult(host.configFileParsingResult);\n newLine = updateNewLine();\n }\n reportWatchDiagnostic(Diagnostics.Starting_compilation_in_watch_mode);\n if (configFileName && !host.configFileParsingResult) {\n newLine = getNewLineCharacter(optionsToExtendForConfigFile);\n Debug.assert(!rootFileNames);\n parseConfigFile2();\n newLine = updateNewLine();\n }\n Debug.assert(compilerOptions);\n Debug.assert(rootFileNames);\n const { watchFile: watchFile2, watchDirectory, writeLog } = createWatchFactory(host, compilerOptions);\n const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n writeLog(`Current directory: ${currentDirectory} CaseSensitiveFileNames: ${useCaseSensitiveFileNames2}`);\n let configFileWatcher;\n if (configFileName) {\n configFileWatcher = watchFile2(configFileName, scheduleProgramReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile);\n }\n const compilerHost = createCompilerHostFromProgramHost(host, () => compilerOptions, directoryStructureHost);\n setGetSourceFileAsHashVersioned(compilerHost);\n const getNewSourceFile = compilerHost.getSourceFile;\n compilerHost.getSourceFile = (fileName, ...args) => getVersionedSourceFileByPath(fileName, toPath3(fileName), ...args);\n compilerHost.getSourceFileByPath = getVersionedSourceFileByPath;\n compilerHost.getNewLine = () => newLine;\n compilerHost.fileExists = fileExists;\n compilerHost.onReleaseOldSourceFile = onReleaseOldSourceFile;\n compilerHost.onReleaseParsedCommandLine = onReleaseParsedCommandLine;\n compilerHost.toPath = toPath3;\n compilerHost.getCompilationSettings = () => compilerOptions;\n compilerHost.useSourceOfProjectReferenceRedirect = maybeBind(host, host.useSourceOfProjectReferenceRedirect);\n compilerHost.preferNonRecursiveWatch = host.preferNonRecursiveWatch;\n compilerHost.watchDirectoryOfFailedLookupLocation = (dir, cb, flags) => watchDirectory(dir, cb, flags, watchOptions, WatchType.FailedLookupLocations);\n compilerHost.watchAffectingFileLocation = (file, cb) => watchFile2(file, cb, 2e3 /* High */, watchOptions, WatchType.AffectingFileLocation);\n compilerHost.watchTypeRootsDirectory = (dir, cb, flags) => watchDirectory(dir, cb, flags, watchOptions, WatchType.TypeRoots);\n compilerHost.getCachedDirectoryStructureHost = () => cachedDirectoryStructureHost;\n compilerHost.scheduleInvalidateResolutionsOfFailedLookupLocations = scheduleInvalidateResolutionsOfFailedLookupLocations;\n compilerHost.onInvalidatedResolution = scheduleProgramUpdate;\n compilerHost.onChangedAutomaticTypeDirectiveNames = scheduleProgramUpdate;\n compilerHost.fileIsOpen = returnFalse;\n compilerHost.getCurrentProgram = getCurrentProgram;\n compilerHost.writeLog = writeLog;\n compilerHost.getParsedCommandLine = getParsedCommandLine;\n const resolutionCache = createResolutionCache(\n compilerHost,\n configFileName ? getDirectoryPath(getNormalizedAbsolutePath(configFileName, currentDirectory)) : currentDirectory,\n /*logChangesWhenResolvingModule*/\n false\n );\n compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals);\n compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames);\n if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) {\n compilerHost.resolveModuleNameLiterals = resolutionCache.resolveModuleNameLiterals.bind(resolutionCache);\n }\n compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences);\n compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives);\n if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) {\n compilerHost.resolveTypeReferenceDirectiveReferences = resolutionCache.resolveTypeReferenceDirectiveReferences.bind(resolutionCache);\n }\n compilerHost.resolveLibrary = !host.resolveLibrary ? resolutionCache.resolveLibrary.bind(resolutionCache) : host.resolveLibrary.bind(host);\n compilerHost.getModuleResolutionCache = host.resolveModuleNameLiterals || host.resolveModuleNames ? maybeBind(host, host.getModuleResolutionCache) : () => resolutionCache.getModuleResolutionCache();\n const userProvidedResolution = !!host.resolveModuleNameLiterals || !!host.resolveTypeReferenceDirectiveReferences || !!host.resolveModuleNames || !!host.resolveTypeReferenceDirectives;\n const customHasInvalidatedResolutions = userProvidedResolution ? maybeBind(host, host.hasInvalidatedResolutions) || returnTrue : returnFalse;\n const customHasInvalidLibResolutions = host.resolveLibrary ? maybeBind(host, host.hasInvalidatedLibResolutions) || returnTrue : returnFalse;\n builderProgram = readBuilderProgram(compilerOptions, compilerHost);\n synchronizeProgram();\n return configFileName ? { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, close, getResolutionCache } : { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, updateRootFileNames, close, getResolutionCache };\n function close() {\n clearInvalidateResolutionsOfFailedLookupLocations();\n resolutionCache.clear();\n clearMap(sourceFilesCache, (value) => {\n if (value && value.fileWatcher) {\n value.fileWatcher.close();\n value.fileWatcher = void 0;\n }\n });\n if (configFileWatcher) {\n configFileWatcher.close();\n configFileWatcher = void 0;\n }\n extendedConfigCache == null ? void 0 : extendedConfigCache.clear();\n extendedConfigCache = void 0;\n if (sharedExtendedConfigFileWatchers) {\n clearMap(sharedExtendedConfigFileWatchers, closeFileWatcherOf);\n sharedExtendedConfigFileWatchers = void 0;\n }\n if (watchedWildcardDirectories) {\n clearMap(watchedWildcardDirectories, closeFileWatcherOf);\n watchedWildcardDirectories = void 0;\n }\n if (missingFilesMap) {\n clearMap(missingFilesMap, closeFileWatcher);\n missingFilesMap = void 0;\n }\n if (parsedConfigs) {\n clearMap(parsedConfigs, (config) => {\n var _a;\n (_a = config.watcher) == null ? void 0 : _a.close();\n config.watcher = void 0;\n if (config.watchedDirectories) clearMap(config.watchedDirectories, closeFileWatcherOf);\n config.watchedDirectories = void 0;\n });\n parsedConfigs = void 0;\n }\n builderProgram = void 0;\n }\n function getResolutionCache() {\n return resolutionCache;\n }\n function getCurrentBuilderProgram() {\n return builderProgram;\n }\n function getCurrentProgram() {\n return builderProgram && builderProgram.getProgramOrUndefined();\n }\n function synchronizeProgram() {\n writeLog(`Synchronizing program`);\n Debug.assert(compilerOptions);\n Debug.assert(rootFileNames);\n clearInvalidateResolutionsOfFailedLookupLocations();\n const program = getCurrentBuilderProgram();\n if (hasChangedCompilerOptions) {\n newLine = updateNewLine();\n if (program && changesAffectModuleResolution(program.getCompilerOptions(), compilerOptions)) {\n resolutionCache.onChangesAffectModuleResolution();\n }\n }\n const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidLibResolutions);\n const {\n originalReadFile,\n originalFileExists,\n originalDirectoryExists,\n originalCreateDirectory,\n originalWriteFile,\n readFileWithCache\n } = changeCompilerHostLikeToUseCache(compilerHost, toPath3);\n if (isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, (path) => getSourceVersion(path, readFileWithCache), (fileName) => compilerHost.fileExists(fileName), hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {\n if (hasChangedConfigFileParsingErrors) {\n if (reportFileChangeDetectedOnCreateProgram) {\n reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation);\n }\n builderProgram = createProgram2(\n /*rootNames*/\n void 0,\n /*options*/\n void 0,\n compilerHost,\n builderProgram,\n configFileParsingDiagnostics,\n projectReferences\n );\n hasChangedConfigFileParsingErrors = false;\n }\n } else {\n if (reportFileChangeDetectedOnCreateProgram) {\n reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation);\n }\n createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions);\n }\n reportFileChangeDetectedOnCreateProgram = false;\n if (host.afterProgramCreate && program !== builderProgram) {\n host.afterProgramCreate(builderProgram);\n }\n compilerHost.readFile = originalReadFile;\n compilerHost.fileExists = originalFileExists;\n compilerHost.directoryExists = originalDirectoryExists;\n compilerHost.createDirectory = originalCreateDirectory;\n compilerHost.writeFile = originalWriteFile;\n staleWatches == null ? void 0 : staleWatches.forEach((configFile, configPath) => {\n if (!configPath) {\n watchConfigFileWildCardDirectories();\n if (configFileName) updateExtendedConfigFilesWatches(toPath3(configFileName), compilerOptions, watchOptions, WatchType.ExtendedConfigFile);\n } else {\n const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n if (config) watchReferencedProject(configFile, configPath, config);\n }\n });\n staleWatches = void 0;\n return builderProgram;\n }\n function createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions) {\n writeLog(\"CreatingProgramWith::\");\n writeLog(` roots: ${JSON.stringify(rootFileNames)}`);\n writeLog(` options: ${JSON.stringify(compilerOptions)}`);\n if (projectReferences) writeLog(` projectReferences: ${JSON.stringify(projectReferences)}`);\n const needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();\n hasChangedCompilerOptions = false;\n hasChangedConfigFileParsingErrors = false;\n resolutionCache.startCachingPerDirectoryResolution();\n compilerHost.hasInvalidatedResolutions = hasInvalidatedResolutions;\n compilerHost.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions;\n compilerHost.hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames;\n const oldProgram = getCurrentProgram();\n builderProgram = createProgram2(rootFileNames, compilerOptions, compilerHost, builderProgram, configFileParsingDiagnostics, projectReferences);\n resolutionCache.finishCachingPerDirectoryResolution(builderProgram.getProgram(), oldProgram);\n updateMissingFilePathsWatch(\n builderProgram.getProgram(),\n missingFilesMap || (missingFilesMap = /* @__PURE__ */ new Map()),\n watchMissingFilePath\n );\n if (needsUpdateInTypeRootWatch) {\n resolutionCache.updateTypeRootsWatch();\n }\n if (missingFilePathsRequestedForRelease) {\n for (const missingFilePath of missingFilePathsRequestedForRelease) {\n if (!missingFilesMap.has(missingFilePath)) {\n sourceFilesCache.delete(missingFilePath);\n }\n }\n missingFilePathsRequestedForRelease = void 0;\n }\n }\n function updateRootFileNames(files) {\n Debug.assert(!configFileName, \"Cannot update root file names with config file watch mode\");\n rootFileNames = files;\n scheduleProgramUpdate();\n }\n function updateNewLine() {\n return getNewLineCharacter(compilerOptions || optionsToExtendForConfigFile);\n }\n function toPath3(fileName) {\n return toPath(fileName, currentDirectory, getCanonicalFileName);\n }\n function isFileMissingOnHost(hostSourceFile) {\n return typeof hostSourceFile === \"boolean\";\n }\n function isFilePresenceUnknownOnHost(hostSourceFile) {\n return typeof hostSourceFile.version === \"boolean\";\n }\n function fileExists(fileName) {\n const path = toPath3(fileName);\n if (isFileMissingOnHost(sourceFilesCache.get(path))) {\n return false;\n }\n return directoryStructureHost.fileExists(fileName);\n }\n function getVersionedSourceFileByPath(fileName, path, languageVersionOrOptions, onError, shouldCreateNewSourceFile) {\n const hostSourceFile = sourceFilesCache.get(path);\n if (isFileMissingOnHost(hostSourceFile)) {\n return void 0;\n }\n const impliedNodeFormat = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions.impliedNodeFormat : void 0;\n if (hostSourceFile === void 0 || shouldCreateNewSourceFile || isFilePresenceUnknownOnHost(hostSourceFile) || hostSourceFile.sourceFile.impliedNodeFormat !== impliedNodeFormat) {\n const sourceFile = getNewSourceFile(fileName, languageVersionOrOptions, onError);\n if (hostSourceFile) {\n if (sourceFile) {\n hostSourceFile.sourceFile = sourceFile;\n hostSourceFile.version = sourceFile.version;\n if (!hostSourceFile.fileWatcher) {\n hostSourceFile.fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile);\n }\n } else {\n if (hostSourceFile.fileWatcher) {\n hostSourceFile.fileWatcher.close();\n }\n sourceFilesCache.set(path, false);\n }\n } else {\n if (sourceFile) {\n const fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile);\n sourceFilesCache.set(path, { sourceFile, version: sourceFile.version, fileWatcher });\n } else {\n sourceFilesCache.set(path, false);\n }\n }\n return sourceFile;\n }\n return hostSourceFile.sourceFile;\n }\n function nextSourceFileVersion(path) {\n const hostSourceFile = sourceFilesCache.get(path);\n if (hostSourceFile !== void 0) {\n if (isFileMissingOnHost(hostSourceFile)) {\n sourceFilesCache.set(path, { version: false });\n } else {\n hostSourceFile.version = false;\n }\n }\n }\n function getSourceVersion(path, readFileWithCache) {\n const hostSourceFile = sourceFilesCache.get(path);\n if (!hostSourceFile) return void 0;\n if (hostSourceFile.version) return hostSourceFile.version;\n const text = readFileWithCache(path);\n return text !== void 0 ? getSourceFileVersionAsHashFromText(compilerHost, text) : void 0;\n }\n function onReleaseOldSourceFile(oldSourceFile, _oldOptions, hasSourceFileByPath) {\n const hostSourceFileInfo = sourceFilesCache.get(oldSourceFile.resolvedPath);\n if (hostSourceFileInfo !== void 0) {\n if (isFileMissingOnHost(hostSourceFileInfo)) {\n (missingFilePathsRequestedForRelease || (missingFilePathsRequestedForRelease = [])).push(oldSourceFile.path);\n } else if (hostSourceFileInfo.sourceFile === oldSourceFile) {\n if (hostSourceFileInfo.fileWatcher) {\n hostSourceFileInfo.fileWatcher.close();\n }\n sourceFilesCache.delete(oldSourceFile.resolvedPath);\n if (!hasSourceFileByPath) {\n resolutionCache.removeResolutionsOfFile(oldSourceFile.path);\n }\n }\n }\n }\n function reportWatchDiagnostic(message) {\n if (host.onWatchStatusChange) {\n host.onWatchStatusChange(createCompilerDiagnostic(message), newLine, compilerOptions || optionsToExtendForConfigFile);\n }\n }\n function hasChangedAutomaticTypeDirectiveNames() {\n return resolutionCache.hasChangedAutomaticTypeDirectiveNames();\n }\n function clearInvalidateResolutionsOfFailedLookupLocations() {\n if (!timerToInvalidateFailedLookupResolutions) return false;\n host.clearTimeout(timerToInvalidateFailedLookupResolutions);\n timerToInvalidateFailedLookupResolutions = void 0;\n return true;\n }\n function scheduleInvalidateResolutionsOfFailedLookupLocations() {\n if (!host.setTimeout || !host.clearTimeout) {\n return resolutionCache.invalidateResolutionsOfFailedLookupLocations();\n }\n const pending = clearInvalidateResolutionsOfFailedLookupLocations();\n writeLog(`Scheduling invalidateFailedLookup${pending ? \", Cancelled earlier one\" : \"\"}`);\n timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250, \"timerToInvalidateFailedLookupResolutions\");\n }\n function invalidateResolutionsOfFailedLookup() {\n timerToInvalidateFailedLookupResolutions = void 0;\n if (resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n scheduleProgramUpdate();\n }\n }\n function scheduleProgramUpdate() {\n if (!host.setTimeout || !host.clearTimeout) {\n return;\n }\n if (timerToUpdateProgram) {\n host.clearTimeout(timerToUpdateProgram);\n }\n writeLog(\"Scheduling update\");\n timerToUpdateProgram = host.setTimeout(updateProgramWithWatchStatus, 250, \"timerToUpdateProgram\");\n }\n function scheduleProgramReload() {\n Debug.assert(!!configFileName);\n updateLevel = 2 /* Full */;\n scheduleProgramUpdate();\n }\n function updateProgramWithWatchStatus() {\n timerToUpdateProgram = void 0;\n reportFileChangeDetectedOnCreateProgram = true;\n updateProgram();\n }\n function updateProgram() {\n switch (updateLevel) {\n case 1 /* RootNamesAndUpdate */:\n reloadFileNamesFromConfigFile();\n break;\n case 2 /* Full */:\n reloadConfigFile();\n break;\n default:\n synchronizeProgram();\n break;\n }\n return getCurrentBuilderProgram();\n }\n function reloadFileNamesFromConfigFile() {\n writeLog(\"Reloading new file names and options\");\n Debug.assert(compilerOptions);\n Debug.assert(configFileName);\n updateLevel = 0 /* Update */;\n rootFileNames = getFileNamesFromConfigSpecs(compilerOptions.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), compilerOptions, parseConfigFileHost, extraFileExtensions);\n if (updateErrorForNoInputFiles(\n rootFileNames,\n getNormalizedAbsolutePath(configFileName, currentDirectory),\n compilerOptions.configFile.configFileSpecs,\n configFileParsingDiagnostics,\n canConfigFileJsonReportNoInputFiles\n )) {\n hasChangedConfigFileParsingErrors = true;\n }\n synchronizeProgram();\n }\n function reloadConfigFile() {\n Debug.assert(configFileName);\n writeLog(`Reloading config file: ${configFileName}`);\n updateLevel = 0 /* Update */;\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.clearCache();\n }\n parseConfigFile2();\n hasChangedCompilerOptions = true;\n (staleWatches ?? (staleWatches = /* @__PURE__ */ new Map())).set(void 0, void 0);\n synchronizeProgram();\n }\n function parseConfigFile2() {\n Debug.assert(configFileName);\n setConfigFileParsingResult(\n getParsedCommandLineOfConfigFile(\n configFileName,\n optionsToExtendForConfigFile,\n parseConfigFileHost,\n extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()),\n watchOptionsToExtend,\n extraFileExtensions\n )\n );\n }\n function setConfigFileParsingResult(configFileParseResult) {\n rootFileNames = configFileParseResult.fileNames;\n compilerOptions = configFileParseResult.options;\n watchOptions = configFileParseResult.watchOptions;\n projectReferences = configFileParseResult.projectReferences;\n wildcardDirectories = configFileParseResult.wildcardDirectories;\n configFileParsingDiagnostics = getConfigFileParsingDiagnostics(configFileParseResult).slice();\n canConfigFileJsonReportNoInputFiles = canJsonReportNoInputFiles(configFileParseResult.raw);\n hasChangedConfigFileParsingErrors = true;\n }\n function getParsedCommandLine(configFileName2) {\n const configPath = toPath3(configFileName2);\n let config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n if (config) {\n if (!config.updateLevel) return config.parsedCommandLine;\n if (config.parsedCommandLine && config.updateLevel === 1 /* RootNamesAndUpdate */ && !host.getParsedCommandLine) {\n writeLog(\"Reloading new file names and options\");\n Debug.assert(compilerOptions);\n const fileNames = getFileNamesFromConfigSpecs(\n config.parsedCommandLine.options.configFile.configFileSpecs,\n getNormalizedAbsolutePath(getDirectoryPath(configFileName2), currentDirectory),\n compilerOptions,\n parseConfigFileHost\n );\n config.parsedCommandLine = { ...config.parsedCommandLine, fileNames };\n config.updateLevel = void 0;\n return config.parsedCommandLine;\n }\n }\n writeLog(`Loading config file: ${configFileName2}`);\n const parsedCommandLine = host.getParsedCommandLine ? host.getParsedCommandLine(configFileName2) : getParsedCommandLineFromConfigFileHost(configFileName2);\n if (config) {\n config.parsedCommandLine = parsedCommandLine;\n config.updateLevel = void 0;\n } else {\n (parsedConfigs || (parsedConfigs = /* @__PURE__ */ new Map())).set(configPath, config = { parsedCommandLine });\n }\n (staleWatches ?? (staleWatches = /* @__PURE__ */ new Map())).set(configPath, configFileName2);\n return parsedCommandLine;\n }\n function getParsedCommandLineFromConfigFileHost(configFileName2) {\n const onUnRecoverableConfigFileDiagnostic = parseConfigFileHost.onUnRecoverableConfigFileDiagnostic;\n parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop;\n const parsedCommandLine = getParsedCommandLineOfConfigFile(\n configFileName2,\n /*optionsToExtend*/\n void 0,\n parseConfigFileHost,\n extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()),\n watchOptionsToExtend\n );\n parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = onUnRecoverableConfigFileDiagnostic;\n return parsedCommandLine;\n }\n function onReleaseParsedCommandLine(fileName) {\n var _a;\n const path = toPath3(fileName);\n const config = parsedConfigs == null ? void 0 : parsedConfigs.get(path);\n if (!config) return;\n parsedConfigs.delete(path);\n if (config.watchedDirectories) clearMap(config.watchedDirectories, closeFileWatcherOf);\n (_a = config.watcher) == null ? void 0 : _a.close();\n clearSharedExtendedConfigFileWatcher(path, sharedExtendedConfigFileWatchers);\n }\n function watchFilePath(path, file, callback, pollingInterval, options, watchType) {\n return watchFile2(file, (fileName, eventKind) => callback(fileName, eventKind, path), pollingInterval, options, watchType);\n }\n function onSourceFileChange(fileName, eventKind, path) {\n updateCachedSystemWithFile(fileName, path, eventKind);\n if (eventKind === 2 /* Deleted */ && sourceFilesCache.has(path)) {\n resolutionCache.invalidateResolutionOfFile(path);\n }\n nextSourceFileVersion(path);\n scheduleProgramUpdate();\n }\n function updateCachedSystemWithFile(fileName, path, eventKind) {\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.addOrDeleteFile(fileName, path, eventKind);\n }\n }\n function watchMissingFilePath(missingFilePath, missingFileName) {\n return (parsedConfigs == null ? void 0 : parsedConfigs.has(missingFilePath)) ? noopFileWatcher : watchFilePath(\n missingFilePath,\n missingFileName,\n onMissingFileChange,\n 500 /* Medium */,\n watchOptions,\n WatchType.MissingFile\n );\n }\n function onMissingFileChange(fileName, eventKind, missingFilePath) {\n updateCachedSystemWithFile(fileName, missingFilePath, eventKind);\n if (eventKind === 0 /* Created */ && missingFilesMap.has(missingFilePath)) {\n missingFilesMap.get(missingFilePath).close();\n missingFilesMap.delete(missingFilePath);\n nextSourceFileVersion(missingFilePath);\n scheduleProgramUpdate();\n }\n }\n function watchConfigFileWildCardDirectories() {\n updateWatchingWildcardDirectories(\n watchedWildcardDirectories || (watchedWildcardDirectories = /* @__PURE__ */ new Map()),\n wildcardDirectories,\n watchWildcardDirectory\n );\n }\n function watchWildcardDirectory(directory, flags) {\n return watchDirectory(\n directory,\n (fileOrDirectory) => {\n Debug.assert(configFileName);\n Debug.assert(compilerOptions);\n const fileOrDirectoryPath = toPath3(fileOrDirectory);\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n }\n nextSourceFileVersion(fileOrDirectoryPath);\n if (isIgnoredFileFromWildCardWatching({\n watchedDirPath: toPath3(directory),\n fileOrDirectory,\n fileOrDirectoryPath,\n configFileName,\n extraFileExtensions,\n options: compilerOptions,\n program: getCurrentBuilderProgram() || rootFileNames,\n currentDirectory,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n writeLog,\n toPath: toPath3\n })) return;\n if (updateLevel !== 2 /* Full */) {\n updateLevel = 1 /* RootNamesAndUpdate */;\n scheduleProgramUpdate();\n }\n },\n flags,\n watchOptions,\n WatchType.WildcardDirectory\n );\n }\n function updateExtendedConfigFilesWatches(forProjectPath, options, watchOptions2, watchType) {\n updateSharedExtendedConfigFileWatcher(\n forProjectPath,\n options,\n sharedExtendedConfigFileWatchers || (sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map()),\n (extendedConfigFileName, extendedConfigFilePath) => watchFile2(\n extendedConfigFileName,\n (_fileName, eventKind) => {\n var _a;\n updateCachedSystemWithFile(extendedConfigFileName, extendedConfigFilePath, eventKind);\n if (extendedConfigCache) cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3);\n const projects = (_a = sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a.projects;\n if (!(projects == null ? void 0 : projects.size)) return;\n projects.forEach((projectPath) => {\n if (configFileName && toPath3(configFileName) === projectPath) {\n updateLevel = 2 /* Full */;\n } else {\n const config = parsedConfigs == null ? void 0 : parsedConfigs.get(projectPath);\n if (config) config.updateLevel = 2 /* Full */;\n resolutionCache.removeResolutionsFromProjectReferenceRedirects(projectPath);\n }\n scheduleProgramUpdate();\n });\n },\n 2e3 /* High */,\n watchOptions2,\n watchType\n ),\n toPath3\n );\n }\n function watchReferencedProject(configFileName2, configPath, commandLine) {\n var _a, _b, _c, _d;\n commandLine.watcher || (commandLine.watcher = watchFile2(\n configFileName2,\n (_fileName, eventKind) => {\n updateCachedSystemWithFile(configFileName2, configPath, eventKind);\n const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n if (config) config.updateLevel = 2 /* Full */;\n resolutionCache.removeResolutionsFromProjectReferenceRedirects(configPath);\n scheduleProgramUpdate();\n },\n 2e3 /* High */,\n ((_a = commandLine.parsedCommandLine) == null ? void 0 : _a.watchOptions) || watchOptions,\n WatchType.ConfigFileOfReferencedProject\n ));\n updateWatchingWildcardDirectories(\n commandLine.watchedDirectories || (commandLine.watchedDirectories = /* @__PURE__ */ new Map()),\n (_b = commandLine.parsedCommandLine) == null ? void 0 : _b.wildcardDirectories,\n (directory, flags) => {\n var _a2;\n return watchDirectory(\n directory,\n (fileOrDirectory) => {\n const fileOrDirectoryPath = toPath3(fileOrDirectory);\n if (cachedDirectoryStructureHost) {\n cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n }\n nextSourceFileVersion(fileOrDirectoryPath);\n const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n if (!(config == null ? void 0 : config.parsedCommandLine)) return;\n if (isIgnoredFileFromWildCardWatching({\n watchedDirPath: toPath3(directory),\n fileOrDirectory,\n fileOrDirectoryPath,\n configFileName: configFileName2,\n options: config.parsedCommandLine.options,\n program: config.parsedCommandLine.fileNames,\n currentDirectory,\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n writeLog,\n toPath: toPath3\n })) return;\n if (config.updateLevel !== 2 /* Full */) {\n config.updateLevel = 1 /* RootNamesAndUpdate */;\n scheduleProgramUpdate();\n }\n },\n flags,\n ((_a2 = commandLine.parsedCommandLine) == null ? void 0 : _a2.watchOptions) || watchOptions,\n WatchType.WildcardDirectoryOfReferencedProject\n );\n }\n );\n updateExtendedConfigFilesWatches(\n configPath,\n (_c = commandLine.parsedCommandLine) == null ? void 0 : _c.options,\n ((_d = commandLine.parsedCommandLine) == null ? void 0 : _d.watchOptions) || watchOptions,\n WatchType.ExtendedConfigOfReferencedProject\n );\n }\n}\n\n// src/compiler/tsbuild.ts\nvar UpToDateStatusType = /* @__PURE__ */ ((UpToDateStatusType2) => {\n UpToDateStatusType2[UpToDateStatusType2[\"Unbuildable\"] = 0] = \"Unbuildable\";\n UpToDateStatusType2[UpToDateStatusType2[\"UpToDate\"] = 1] = \"UpToDate\";\n UpToDateStatusType2[UpToDateStatusType2[\"UpToDateWithUpstreamTypes\"] = 2] = \"UpToDateWithUpstreamTypes\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutputMissing\"] = 3] = \"OutputMissing\";\n UpToDateStatusType2[UpToDateStatusType2[\"ErrorReadingFile\"] = 4] = \"ErrorReadingFile\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateWithSelf\"] = 5] = \"OutOfDateWithSelf\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateWithUpstream\"] = 6] = \"OutOfDateWithUpstream\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateBuildInfoWithPendingEmit\"] = 7] = \"OutOfDateBuildInfoWithPendingEmit\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateBuildInfoWithErrors\"] = 8] = \"OutOfDateBuildInfoWithErrors\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateOptions\"] = 9] = \"OutOfDateOptions\";\n UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateRoots\"] = 10] = \"OutOfDateRoots\";\n UpToDateStatusType2[UpToDateStatusType2[\"UpstreamOutOfDate\"] = 11] = \"UpstreamOutOfDate\";\n UpToDateStatusType2[UpToDateStatusType2[\"UpstreamBlocked\"] = 12] = \"UpstreamBlocked\";\n UpToDateStatusType2[UpToDateStatusType2[\"ComputingUpstream\"] = 13] = \"ComputingUpstream\";\n UpToDateStatusType2[UpToDateStatusType2[\"TsVersionOutputOfDate\"] = 14] = \"TsVersionOutputOfDate\";\n UpToDateStatusType2[UpToDateStatusType2[\"UpToDateWithInputFileText\"] = 15] = \"UpToDateWithInputFileText\";\n UpToDateStatusType2[UpToDateStatusType2[\"ContainerOnly\"] = 16] = \"ContainerOnly\";\n UpToDateStatusType2[UpToDateStatusType2[\"ForceBuild\"] = 17] = \"ForceBuild\";\n return UpToDateStatusType2;\n})(UpToDateStatusType || {});\nfunction resolveConfigFileProjectName(project) {\n if (fileExtensionIs(project, \".json\" /* Json */)) {\n return project;\n }\n return combinePaths(project, \"tsconfig.json\");\n}\n\n// src/compiler/tsbuildPublic.ts\nvar minimumDate = /* @__PURE__ */ new Date(-864e13);\nfunction getOrCreateValueFromConfigFileMap(configFileMap, resolved, createT) {\n const existingValue = configFileMap.get(resolved);\n let newValue;\n if (!existingValue) {\n newValue = createT();\n configFileMap.set(resolved, newValue);\n }\n return existingValue || newValue;\n}\nfunction getOrCreateValueMapFromConfigFileMap(configFileMap, resolved) {\n return getOrCreateValueFromConfigFileMap(configFileMap, resolved, () => /* @__PURE__ */ new Map());\n}\nfunction getCurrentTime(host) {\n return host.now ? host.now() : /* @__PURE__ */ new Date();\n}\nfunction isCircularBuildOrder(buildOrder) {\n return !!buildOrder && !!buildOrder.buildOrder;\n}\nfunction getBuildOrderFromAnyBuildOrder(anyBuildOrder) {\n return isCircularBuildOrder(anyBuildOrder) ? anyBuildOrder.buildOrder : anyBuildOrder;\n}\nfunction createBuilderStatusReporter(system, pretty) {\n return (diagnostic) => {\n let output = pretty ? `[${formatColorAndReset(getLocaleTimeString(system), \"\\x1B[90m\" /* Grey */)}] ` : `${getLocaleTimeString(system)} - `;\n output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${system.newLine + system.newLine}`;\n system.write(output);\n };\n}\nfunction createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus) {\n const host = createProgramHost(system, createProgram2);\n host.getModifiedTime = system.getModifiedTime ? (path) => system.getModifiedTime(path) : returnUndefined;\n host.setModifiedTime = system.setModifiedTime ? (path, date) => system.setModifiedTime(path, date) : noop;\n host.deleteFile = system.deleteFile ? (path) => system.deleteFile(path) : noop;\n host.reportDiagnostic = reportDiagnostic || createDiagnosticReporter(system);\n host.reportSolutionBuilderStatus = reportSolutionBuilderStatus || createBuilderStatusReporter(system);\n host.now = maybeBind(system, system.now);\n return host;\n}\nfunction createSolutionBuilderHost(system = sys, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportErrorSummary2) {\n const host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus);\n host.reportErrorSummary = reportErrorSummary2;\n return host;\n}\nfunction createSolutionBuilderWithWatchHost(system = sys, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportWatchStatus2) {\n const host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus);\n const watchHost = createWatchHost(system, reportWatchStatus2);\n copyProperties(host, watchHost);\n return host;\n}\nfunction getCompilerOptionsOfBuildOptions(buildOptions) {\n const result = {};\n commonOptionsWithBuild.forEach((option) => {\n if (hasProperty(buildOptions, option.name)) result[option.name] = buildOptions[option.name];\n });\n result.tscBuild = true;\n return result;\n}\nfunction createSolutionBuilder(host, rootNames, defaultOptions) {\n return createSolutionBuilderWorker(\n /*watch*/\n false,\n host,\n rootNames,\n defaultOptions\n );\n}\nfunction createSolutionBuilderWithWatch(host, rootNames, defaultOptions, baseWatchOptions) {\n return createSolutionBuilderWorker(\n /*watch*/\n true,\n host,\n rootNames,\n defaultOptions,\n baseWatchOptions\n );\n}\nfunction createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) {\n const host = hostOrHostWithWatch;\n const hostWithWatch = hostOrHostWithWatch;\n const baseCompilerOptions = getCompilerOptionsOfBuildOptions(options);\n const compilerHost = createCompilerHostFromProgramHost(host, () => state.projectCompilerOptions);\n setGetSourceFileAsHashVersioned(compilerHost);\n compilerHost.getParsedCommandLine = (fileName) => parseConfigFile(state, fileName, toResolvedConfigFilePath(state, fileName));\n compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals);\n compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences);\n compilerHost.resolveLibrary = maybeBind(host, host.resolveLibrary);\n compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames);\n compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives);\n compilerHost.getModuleResolutionCache = maybeBind(host, host.getModuleResolutionCache);\n let moduleResolutionCache, typeReferenceDirectiveResolutionCache;\n if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) {\n moduleResolutionCache = createModuleResolutionCache(compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName);\n compilerHost.resolveModuleNameLiterals = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n moduleNames,\n containingFile,\n redirectedReference,\n options2,\n containingSourceFile,\n host,\n moduleResolutionCache,\n createModuleResolutionLoader\n );\n compilerHost.getModuleResolutionCache = () => moduleResolutionCache;\n }\n if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) {\n typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n compilerHost.getCurrentDirectory(),\n compilerHost.getCanonicalFileName,\n /*options*/\n void 0,\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache(),\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.optionsToRedirectsKey\n );\n compilerHost.resolveTypeReferenceDirectiveReferences = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n typeDirectiveNames,\n containingFile,\n redirectedReference,\n options2,\n containingSourceFile,\n host,\n typeReferenceDirectiveResolutionCache,\n createTypeReferenceResolutionLoader\n );\n }\n let libraryResolutionCache;\n if (!compilerHost.resolveLibrary) {\n libraryResolutionCache = createModuleResolutionCache(\n compilerHost.getCurrentDirectory(),\n compilerHost.getCanonicalFileName,\n /*options*/\n void 0,\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()\n );\n compilerHost.resolveLibrary = (libraryName, resolveFrom, options2) => resolveLibrary(\n libraryName,\n resolveFrom,\n options2,\n host,\n libraryResolutionCache\n );\n }\n compilerHost.getBuildInfo = (fileName, configFilePath) => getBuildInfo3(\n state,\n fileName,\n toResolvedConfigFilePath(state, configFilePath),\n /*modifiedTime*/\n void 0\n );\n const { watchFile: watchFile2, watchDirectory, writeLog } = createWatchFactory(hostWithWatch, options);\n const state = {\n host,\n hostWithWatch,\n parseConfigFileHost: parseConfigHostFromCompilerHostLike(host),\n write: maybeBind(host, host.trace),\n // State of solution\n options,\n baseCompilerOptions,\n rootNames,\n baseWatchOptions,\n resolvedConfigFilePaths: /* @__PURE__ */ new Map(),\n configFileCache: /* @__PURE__ */ new Map(),\n projectStatus: /* @__PURE__ */ new Map(),\n extendedConfigCache: /* @__PURE__ */ new Map(),\n buildInfoCache: /* @__PURE__ */ new Map(),\n outputTimeStamps: /* @__PURE__ */ new Map(),\n builderPrograms: /* @__PURE__ */ new Map(),\n diagnostics: /* @__PURE__ */ new Map(),\n projectPendingBuild: /* @__PURE__ */ new Map(),\n projectErrorsReported: /* @__PURE__ */ new Map(),\n compilerHost,\n moduleResolutionCache,\n typeReferenceDirectiveResolutionCache,\n libraryResolutionCache,\n // Mutable state\n buildOrder: void 0,\n readFileWithCache: (f) => host.readFile(f),\n projectCompilerOptions: baseCompilerOptions,\n cache: void 0,\n allProjectBuildPending: true,\n needsSummary: true,\n watchAllProjectsPending: watch,\n // Watch state\n watch,\n allWatchedWildcardDirectories: /* @__PURE__ */ new Map(),\n allWatchedInputFiles: /* @__PURE__ */ new Map(),\n allWatchedConfigFiles: /* @__PURE__ */ new Map(),\n allWatchedExtendedConfigFiles: /* @__PURE__ */ new Map(),\n allWatchedPackageJsonFiles: /* @__PURE__ */ new Map(),\n filesWatched: /* @__PURE__ */ new Map(),\n lastCachedPackageJsonLookups: /* @__PURE__ */ new Map(),\n timerToBuildInvalidatedProject: void 0,\n reportFileChangeDetected: false,\n watchFile: watchFile2,\n watchDirectory,\n writeLog\n };\n return state;\n}\nfunction toPath2(state, fileName) {\n return toPath(fileName, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName);\n}\nfunction toResolvedConfigFilePath(state, fileName) {\n const { resolvedConfigFilePaths } = state;\n const path = resolvedConfigFilePaths.get(fileName);\n if (path !== void 0) return path;\n const resolvedPath = toPath2(state, fileName);\n resolvedConfigFilePaths.set(fileName, resolvedPath);\n return resolvedPath;\n}\nfunction isParsedCommandLine(entry) {\n return !!entry.options;\n}\nfunction getCachedParsedConfigFile(state, configFilePath) {\n const value = state.configFileCache.get(configFilePath);\n return value && isParsedCommandLine(value) ? value : void 0;\n}\nfunction parseConfigFile(state, configFileName, configFilePath) {\n const { configFileCache } = state;\n const value = configFileCache.get(configFilePath);\n if (value) {\n return isParsedCommandLine(value) ? value : void 0;\n }\n mark(\"SolutionBuilder::beforeConfigFileParsing\");\n let diagnostic;\n const { parseConfigFileHost, baseCompilerOptions, baseWatchOptions, extendedConfigCache, host } = state;\n let parsed;\n if (host.getParsedCommandLine) {\n parsed = host.getParsedCommandLine(configFileName);\n if (!parsed) diagnostic = createCompilerDiagnostic(Diagnostics.File_0_not_found, configFileName);\n } else {\n parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = (d) => diagnostic = d;\n parsed = getParsedCommandLineOfConfigFile(configFileName, baseCompilerOptions, parseConfigFileHost, extendedConfigCache, baseWatchOptions);\n parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop;\n }\n configFileCache.set(configFilePath, parsed || diagnostic);\n mark(\"SolutionBuilder::afterConfigFileParsing\");\n measure(\"SolutionBuilder::Config file parsing\", \"SolutionBuilder::beforeConfigFileParsing\", \"SolutionBuilder::afterConfigFileParsing\");\n return parsed;\n}\nfunction resolveProjectName(state, name) {\n return resolveConfigFileProjectName(resolvePath(state.compilerHost.getCurrentDirectory(), name));\n}\nfunction createBuildOrder(state, roots) {\n const temporaryMarks = /* @__PURE__ */ new Map();\n const permanentMarks = /* @__PURE__ */ new Map();\n const circularityReportStack = [];\n let buildOrder;\n let circularDiagnostics;\n for (const root of roots) {\n visit(root);\n }\n return circularDiagnostics ? { buildOrder: buildOrder || emptyArray, circularDiagnostics } : buildOrder || emptyArray;\n function visit(configFileName, inCircularContext) {\n const projPath = toResolvedConfigFilePath(state, configFileName);\n if (permanentMarks.has(projPath)) return;\n if (temporaryMarks.has(projPath)) {\n if (!inCircularContext) {\n (circularDiagnostics || (circularDiagnostics = [])).push(\n createCompilerDiagnostic(\n Diagnostics.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0,\n circularityReportStack.join(\"\\r\\n\")\n )\n );\n }\n return;\n }\n temporaryMarks.set(projPath, true);\n circularityReportStack.push(configFileName);\n const parsed = parseConfigFile(state, configFileName, projPath);\n if (parsed && parsed.projectReferences) {\n for (const ref of parsed.projectReferences) {\n const resolvedRefPath = resolveProjectName(state, ref.path);\n visit(resolvedRefPath, inCircularContext || ref.circular);\n }\n }\n circularityReportStack.pop();\n permanentMarks.set(projPath, true);\n (buildOrder || (buildOrder = [])).push(configFileName);\n }\n}\nfunction getBuildOrder(state) {\n return state.buildOrder || createStateBuildOrder(state);\n}\nfunction createStateBuildOrder(state) {\n const buildOrder = createBuildOrder(state, state.rootNames.map((f) => resolveProjectName(state, f)));\n state.resolvedConfigFilePaths.clear();\n const currentProjects = new Set(\n getBuildOrderFromAnyBuildOrder(buildOrder).map(\n (resolved) => toResolvedConfigFilePath(state, resolved)\n )\n );\n const noopOnDelete = { onDeleteValue: noop };\n mutateMapSkippingNewValues(state.configFileCache, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.projectStatus, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.builderPrograms, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.diagnostics, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.projectPendingBuild, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.projectErrorsReported, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.buildInfoCache, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.outputTimeStamps, currentProjects, noopOnDelete);\n mutateMapSkippingNewValues(state.lastCachedPackageJsonLookups, currentProjects, noopOnDelete);\n if (state.watch) {\n mutateMapSkippingNewValues(\n state.allWatchedConfigFiles,\n currentProjects,\n { onDeleteValue: closeFileWatcher }\n );\n state.allWatchedExtendedConfigFiles.forEach((watcher) => {\n watcher.projects.forEach((project) => {\n if (!currentProjects.has(project)) {\n watcher.projects.delete(project);\n }\n });\n watcher.close();\n });\n mutateMapSkippingNewValues(\n state.allWatchedWildcardDirectories,\n currentProjects,\n { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcherOf) }\n );\n mutateMapSkippingNewValues(\n state.allWatchedInputFiles,\n currentProjects,\n { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcher) }\n );\n mutateMapSkippingNewValues(\n state.allWatchedPackageJsonFiles,\n currentProjects,\n { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcher) }\n );\n }\n return state.buildOrder = buildOrder;\n}\nfunction getBuildOrderFor(state, project, onlyReferences) {\n const resolvedProject = project && resolveProjectName(state, project);\n const buildOrderFromState = getBuildOrder(state);\n if (isCircularBuildOrder(buildOrderFromState)) return buildOrderFromState;\n if (resolvedProject) {\n const projectPath = toResolvedConfigFilePath(state, resolvedProject);\n const projectIndex = findIndex(\n buildOrderFromState,\n (configFileName) => toResolvedConfigFilePath(state, configFileName) === projectPath\n );\n if (projectIndex === -1) return void 0;\n }\n const buildOrder = resolvedProject ? createBuildOrder(state, [resolvedProject]) : buildOrderFromState;\n Debug.assert(!isCircularBuildOrder(buildOrder));\n Debug.assert(!onlyReferences || resolvedProject !== void 0);\n Debug.assert(!onlyReferences || buildOrder[buildOrder.length - 1] === resolvedProject);\n return onlyReferences ? buildOrder.slice(0, buildOrder.length - 1) : buildOrder;\n}\nfunction enableCache(state) {\n if (state.cache) {\n disableCache(state);\n }\n const { compilerHost, host } = state;\n const originalReadFileWithCache = state.readFileWithCache;\n const originalGetSourceFile = compilerHost.getSourceFile;\n const {\n originalReadFile,\n originalFileExists,\n originalDirectoryExists,\n originalCreateDirectory,\n originalWriteFile,\n getSourceFileWithCache,\n readFileWithCache\n } = changeCompilerHostLikeToUseCache(\n host,\n (fileName) => toPath2(state, fileName),\n (...args) => originalGetSourceFile.call(compilerHost, ...args)\n );\n state.readFileWithCache = readFileWithCache;\n compilerHost.getSourceFile = getSourceFileWithCache;\n state.cache = {\n originalReadFile,\n originalFileExists,\n originalDirectoryExists,\n originalCreateDirectory,\n originalWriteFile,\n originalReadFileWithCache,\n originalGetSourceFile\n };\n}\nfunction disableCache(state) {\n if (!state.cache) return;\n const { cache, host, compilerHost, extendedConfigCache, moduleResolutionCache, typeReferenceDirectiveResolutionCache, libraryResolutionCache } = state;\n host.readFile = cache.originalReadFile;\n host.fileExists = cache.originalFileExists;\n host.directoryExists = cache.originalDirectoryExists;\n host.createDirectory = cache.originalCreateDirectory;\n host.writeFile = cache.originalWriteFile;\n compilerHost.getSourceFile = cache.originalGetSourceFile;\n state.readFileWithCache = cache.originalReadFileWithCache;\n extendedConfigCache.clear();\n moduleResolutionCache == null ? void 0 : moduleResolutionCache.clear();\n typeReferenceDirectiveResolutionCache == null ? void 0 : typeReferenceDirectiveResolutionCache.clear();\n libraryResolutionCache == null ? void 0 : libraryResolutionCache.clear();\n state.cache = void 0;\n}\nfunction clearProjectStatus(state, resolved) {\n state.projectStatus.delete(resolved);\n state.diagnostics.delete(resolved);\n}\nfunction addProjToQueue({ projectPendingBuild }, proj, updateLevel) {\n const value = projectPendingBuild.get(proj);\n if (value === void 0) {\n projectPendingBuild.set(proj, updateLevel);\n } else if (value < updateLevel) {\n projectPendingBuild.set(proj, updateLevel);\n }\n}\nfunction setupInitialBuild(state, cancellationToken) {\n if (!state.allProjectBuildPending) return;\n state.allProjectBuildPending = false;\n if (state.options.watch) reportWatchStatus(state, Diagnostics.Starting_compilation_in_watch_mode);\n enableCache(state);\n const buildOrder = getBuildOrderFromAnyBuildOrder(getBuildOrder(state));\n buildOrder.forEach(\n (configFileName) => state.projectPendingBuild.set(\n toResolvedConfigFilePath(state, configFileName),\n 0 /* Update */\n )\n );\n if (cancellationToken) {\n cancellationToken.throwIfCancellationRequested();\n }\n}\nvar InvalidatedProjectKind = /* @__PURE__ */ ((InvalidatedProjectKind2) => {\n InvalidatedProjectKind2[InvalidatedProjectKind2[\"Build\"] = 0] = \"Build\";\n InvalidatedProjectKind2[InvalidatedProjectKind2[\"UpdateOutputFileStamps\"] = 1] = \"UpdateOutputFileStamps\";\n return InvalidatedProjectKind2;\n})(InvalidatedProjectKind || {});\nfunction doneInvalidatedProject(state, projectPath) {\n state.projectPendingBuild.delete(projectPath);\n return state.diagnostics.has(projectPath) ? 1 /* DiagnosticsPresent_OutputsSkipped */ : 0 /* Success */;\n}\nfunction createUpdateOutputFileStampsProject(state, project, projectPath, config, buildOrder) {\n let updateOutputFileStampsPending = true;\n return {\n kind: 1 /* UpdateOutputFileStamps */,\n project,\n projectPath,\n buildOrder,\n getCompilerOptions: () => config.options,\n getCurrentDirectory: () => state.compilerHost.getCurrentDirectory(),\n updateOutputFileStatmps: () => {\n updateOutputTimestamps(state, config, projectPath);\n updateOutputFileStampsPending = false;\n },\n done: () => {\n if (updateOutputFileStampsPending) {\n updateOutputTimestamps(state, config, projectPath);\n }\n mark(\"SolutionBuilder::Timestamps only updates\");\n return doneInvalidatedProject(state, projectPath);\n }\n };\n}\nfunction createBuildOrUpdateInvalidedProject(state, project, projectPath, projectIndex, config, status, buildOrder) {\n let step = 0 /* CreateProgram */;\n let program;\n let buildResult;\n return {\n kind: 0 /* Build */,\n project,\n projectPath,\n buildOrder,\n getCompilerOptions: () => config.options,\n getCurrentDirectory: () => state.compilerHost.getCurrentDirectory(),\n getBuilderProgram: () => withProgramOrUndefined(identity),\n getProgram: () => withProgramOrUndefined(\n (program2) => program2.getProgramOrUndefined()\n ),\n getSourceFile: (fileName) => withProgramOrUndefined(\n (program2) => program2.getSourceFile(fileName)\n ),\n getSourceFiles: () => withProgramOrEmptyArray(\n (program2) => program2.getSourceFiles()\n ),\n getOptionsDiagnostics: (cancellationToken) => withProgramOrEmptyArray(\n (program2) => program2.getOptionsDiagnostics(cancellationToken)\n ),\n getGlobalDiagnostics: (cancellationToken) => withProgramOrEmptyArray(\n (program2) => program2.getGlobalDiagnostics(cancellationToken)\n ),\n getConfigFileParsingDiagnostics: () => withProgramOrEmptyArray(\n (program2) => program2.getConfigFileParsingDiagnostics()\n ),\n getSyntacticDiagnostics: (sourceFile, cancellationToken) => withProgramOrEmptyArray(\n (program2) => program2.getSyntacticDiagnostics(sourceFile, cancellationToken)\n ),\n getAllDependencies: (sourceFile) => withProgramOrEmptyArray(\n (program2) => program2.getAllDependencies(sourceFile)\n ),\n getSemanticDiagnostics: (sourceFile, cancellationToken) => withProgramOrEmptyArray(\n (program2) => program2.getSemanticDiagnostics(sourceFile, cancellationToken)\n ),\n getSemanticDiagnosticsOfNextAffectedFile: (cancellationToken, ignoreSourceFile) => withProgramOrUndefined(\n (program2) => program2.getSemanticDiagnosticsOfNextAffectedFile && program2.getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile)\n ),\n emit: (targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) => {\n if (targetSourceFile || emitOnlyDtsFiles) {\n return withProgramOrUndefined(\n (program2) => {\n var _a, _b;\n return program2.emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project)));\n }\n );\n }\n executeSteps(0 /* CreateProgram */, cancellationToken);\n return emit(writeFile2, cancellationToken, customTransformers);\n },\n done\n };\n function done(cancellationToken, writeFile2, customTransformers) {\n executeSteps(3 /* Done */, cancellationToken, writeFile2, customTransformers);\n mark(\"SolutionBuilder::Projects built\");\n return doneInvalidatedProject(state, projectPath);\n }\n function withProgramOrUndefined(action) {\n executeSteps(0 /* CreateProgram */);\n return program && action(program);\n }\n function withProgramOrEmptyArray(action) {\n return withProgramOrUndefined(action) || emptyArray;\n }\n function createProgram2() {\n var _a, _b, _c;\n Debug.assert(program === void 0);\n if (state.options.dry) {\n reportStatus(state, Diagnostics.A_non_dry_build_would_build_project_0, project);\n buildResult = 1 /* Success */;\n step = 2 /* QueueReferencingProjects */;\n return;\n }\n if (state.options.verbose) reportStatus(state, Diagnostics.Building_project_0, project);\n if (config.fileNames.length === 0) {\n reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n buildResult = 0 /* None */;\n step = 2 /* QueueReferencingProjects */;\n return;\n }\n const { host, compilerHost } = state;\n state.projectCompilerOptions = config.options;\n (_a = state.moduleResolutionCache) == null ? void 0 : _a.update(config.options);\n (_b = state.typeReferenceDirectiveResolutionCache) == null ? void 0 : _b.update(config.options);\n program = host.createProgram(\n config.fileNames,\n config.options,\n compilerHost,\n getOldProgram(state, projectPath, config),\n getConfigFileParsingDiagnostics(config),\n config.projectReferences\n );\n if (state.watch) {\n const internalMap = (_c = state.moduleResolutionCache) == null ? void 0 : _c.getPackageJsonInfoCache().getInternalMap();\n state.lastCachedPackageJsonLookups.set(\n projectPath,\n internalMap && new Set(arrayFrom(\n internalMap.values(),\n (data) => state.host.realpath && (isPackageJsonInfo(data) || data.directoryExists) ? state.host.realpath(combinePaths(data.packageDirectory, \"package.json\")) : combinePaths(data.packageDirectory, \"package.json\")\n ))\n );\n state.builderPrograms.set(projectPath, program);\n }\n step++;\n }\n function emit(writeFileCallback, cancellationToken, customTransformers) {\n var _a, _b, _c;\n Debug.assertIsDefined(program);\n Debug.assert(step === 1 /* Emit */);\n const { host, compilerHost } = state;\n const emittedOutputs = /* @__PURE__ */ new Map();\n const options = program.getCompilerOptions();\n const isIncremental = isIncrementalCompilation(options);\n let outputTimeStampMap;\n let now;\n const { emitResult, diagnostics } = emitFilesAndReportErrors(\n program,\n (d) => host.reportDiagnostic(d),\n state.write,\n /*reportSummary*/\n void 0,\n (name, text, writeByteOrderMark, onError, sourceFiles, data) => {\n var _a2;\n const path = toPath2(state, name);\n emittedOutputs.set(toPath2(state, name), name);\n if (data == null ? void 0 : data.buildInfo) {\n now || (now = getCurrentTime(state.host));\n const isChangedSignature2 = (_a2 = program.hasChangedEmitSignature) == null ? void 0 : _a2.call(program);\n const existing = getBuildInfoCacheEntry(state, name, projectPath);\n if (existing) {\n existing.buildInfo = data.buildInfo;\n existing.modifiedTime = now;\n if (isChangedSignature2) existing.latestChangedDtsTime = now;\n } else {\n state.buildInfoCache.set(projectPath, {\n path: toPath2(state, name),\n buildInfo: data.buildInfo,\n modifiedTime: now,\n latestChangedDtsTime: isChangedSignature2 ? now : void 0\n });\n }\n }\n const modifiedTime = (data == null ? void 0 : data.differsOnlyInMap) ? getModifiedTime(state.host, name) : void 0;\n (writeFileCallback || compilerHost.writeFile)(\n name,\n text,\n writeByteOrderMark,\n onError,\n sourceFiles,\n data\n );\n if (data == null ? void 0 : data.differsOnlyInMap) state.host.setModifiedTime(name, modifiedTime);\n else if (!isIncremental && state.watch) {\n (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host)));\n }\n },\n cancellationToken,\n /*emitOnlyDtsFiles*/\n void 0,\n customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project))\n );\n if ((!options.noEmitOnError || !diagnostics.length) && (emittedOutputs.size || status.type !== 8 /* OutOfDateBuildInfoWithErrors */)) {\n updateOutputTimestampsWorker(state, config, projectPath, Diagnostics.Updating_unchanged_output_timestamps_of_project_0, emittedOutputs);\n }\n state.projectErrorsReported.set(projectPath, true);\n buildResult = ((_c = program.hasChangedEmitSignature) == null ? void 0 : _c.call(program)) ? 0 /* None */ : 2 /* DeclarationOutputUnchanged */;\n if (!diagnostics.length) {\n state.diagnostics.delete(projectPath);\n state.projectStatus.set(projectPath, {\n type: 1 /* UpToDate */,\n oldestOutputFileName: firstOrUndefinedIterator(emittedOutputs.values()) ?? getFirstProjectOutput(config, !host.useCaseSensitiveFileNames())\n });\n } else {\n state.diagnostics.set(projectPath, diagnostics);\n state.projectStatus.set(projectPath, { type: 0 /* Unbuildable */, reason: `it had errors` });\n buildResult |= 4 /* AnyErrors */;\n }\n afterProgramDone(state, program);\n step = 2 /* QueueReferencingProjects */;\n return emitResult;\n }\n function executeSteps(till, cancellationToken, writeFile2, customTransformers) {\n while (step <= till && step < 3 /* Done */) {\n const currentStep = step;\n switch (step) {\n case 0 /* CreateProgram */:\n createProgram2();\n break;\n case 1 /* Emit */:\n emit(writeFile2, cancellationToken, customTransformers);\n break;\n case 2 /* QueueReferencingProjects */:\n queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, Debug.checkDefined(buildResult));\n step++;\n break;\n // Should never be done\n case 3 /* Done */:\n default:\n assertType(step);\n }\n Debug.assert(step > currentStep);\n }\n }\n}\nfunction getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {\n if (!state.projectPendingBuild.size) return void 0;\n if (isCircularBuildOrder(buildOrder)) return void 0;\n const { options, projectPendingBuild } = state;\n for (let projectIndex = 0; projectIndex < buildOrder.length; projectIndex++) {\n const project = buildOrder[projectIndex];\n const projectPath = toResolvedConfigFilePath(state, project);\n const updateLevel = state.projectPendingBuild.get(projectPath);\n if (updateLevel === void 0) continue;\n if (reportQueue) {\n reportQueue = false;\n reportBuildQueue(state, buildOrder);\n }\n const config = parseConfigFile(state, project, projectPath);\n if (!config) {\n reportParseConfigFileDiagnostic(state, projectPath);\n projectPendingBuild.delete(projectPath);\n continue;\n }\n if (updateLevel === 2 /* Full */) {\n watchConfigFile(state, project, projectPath, config);\n watchExtendedConfigFiles(state, projectPath, config);\n watchWildCardDirectories(state, project, projectPath, config);\n watchInputFiles(state, project, projectPath, config);\n watchPackageJsonFiles(state, project, projectPath, config);\n } else if (updateLevel === 1 /* RootNamesAndUpdate */) {\n config.fileNames = getFileNamesFromConfigSpecs(config.options.configFile.configFileSpecs, getDirectoryPath(project), config.options, state.parseConfigFileHost);\n updateErrorForNoInputFiles(\n config.fileNames,\n project,\n config.options.configFile.configFileSpecs,\n config.errors,\n canJsonReportNoInputFiles(config.raw)\n );\n watchInputFiles(state, project, projectPath, config);\n watchPackageJsonFiles(state, project, projectPath, config);\n }\n const status = getUpToDateStatus(state, config, projectPath);\n if (!options.force) {\n if (status.type === 1 /* UpToDate */) {\n verboseReportProjectStatus(state, project, status);\n reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n projectPendingBuild.delete(projectPath);\n if (options.dry) {\n reportStatus(state, Diagnostics.Project_0_is_up_to_date, project);\n }\n continue;\n }\n if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 15 /* UpToDateWithInputFileText */) {\n reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n return {\n kind: 1 /* UpdateOutputFileStamps */,\n status,\n project,\n projectPath,\n projectIndex,\n config\n };\n }\n }\n if (status.type === 12 /* UpstreamBlocked */) {\n verboseReportProjectStatus(state, project, status);\n reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n projectPendingBuild.delete(projectPath);\n if (options.verbose) {\n reportStatus(\n state,\n status.upstreamProjectBlocked ? Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_was_not_built : Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors,\n project,\n status.upstreamProjectName\n );\n }\n continue;\n }\n if (status.type === 16 /* ContainerOnly */) {\n verboseReportProjectStatus(state, project, status);\n reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n projectPendingBuild.delete(projectPath);\n continue;\n }\n return {\n kind: 0 /* Build */,\n status,\n project,\n projectPath,\n projectIndex,\n config\n };\n }\n return void 0;\n}\nfunction createInvalidatedProjectWithInfo(state, info, buildOrder) {\n verboseReportProjectStatus(state, info.project, info.status);\n return info.kind !== 1 /* UpdateOutputFileStamps */ ? createBuildOrUpdateInvalidedProject(\n state,\n info.project,\n info.projectPath,\n info.projectIndex,\n info.config,\n info.status,\n buildOrder\n ) : createUpdateOutputFileStampsProject(\n state,\n info.project,\n info.projectPath,\n info.config,\n buildOrder\n );\n}\nfunction getNextInvalidatedProject(state, buildOrder, reportQueue) {\n const info = getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue);\n if (!info) return info;\n return createInvalidatedProjectWithInfo(state, info, buildOrder);\n}\nfunction getOldProgram({ options, builderPrograms, compilerHost }, proj, parsed) {\n if (options.force) return void 0;\n const value = builderPrograms.get(proj);\n if (value) return value;\n return readBuilderProgram(parsed.options, compilerHost);\n}\nfunction afterProgramDone(state, program) {\n if (program) {\n if (state.host.afterProgramEmitAndDiagnostics) {\n state.host.afterProgramEmitAndDiagnostics(program);\n }\n program.releaseProgram();\n }\n state.projectCompilerOptions = state.baseCompilerOptions;\n}\nfunction isFileWatcherWithModifiedTime(value) {\n return !!value.watcher;\n}\nfunction getModifiedTime2(state, fileName) {\n const path = toPath2(state, fileName);\n const existing = state.filesWatched.get(path);\n if (state.watch && !!existing) {\n if (!isFileWatcherWithModifiedTime(existing)) return existing;\n if (existing.modifiedTime) return existing.modifiedTime;\n }\n const result = getModifiedTime(state.host, fileName);\n if (state.watch) {\n if (existing) existing.modifiedTime = result;\n else state.filesWatched.set(path, result);\n }\n return result;\n}\nfunction watchFile(state, file, callback, pollingInterval, options, watchType, project) {\n const path = toPath2(state, file);\n const existing = state.filesWatched.get(path);\n if (existing && isFileWatcherWithModifiedTime(existing)) {\n existing.callbacks.push(callback);\n } else {\n const watcher = state.watchFile(\n file,\n (fileName, eventKind, modifiedTime) => {\n const existing2 = Debug.checkDefined(state.filesWatched.get(path));\n Debug.assert(isFileWatcherWithModifiedTime(existing2));\n existing2.modifiedTime = modifiedTime;\n existing2.callbacks.forEach((cb) => cb(fileName, eventKind, modifiedTime));\n },\n pollingInterval,\n options,\n watchType,\n project\n );\n state.filesWatched.set(path, { callbacks: [callback], watcher, modifiedTime: existing });\n }\n return {\n close: () => {\n const existing2 = Debug.checkDefined(state.filesWatched.get(path));\n Debug.assert(isFileWatcherWithModifiedTime(existing2));\n if (existing2.callbacks.length === 1) {\n state.filesWatched.delete(path);\n closeFileWatcherOf(existing2);\n } else {\n unorderedRemoveItem(existing2.callbacks, callback);\n }\n }\n };\n}\nfunction getOutputTimeStampMap(state, resolvedConfigFilePath) {\n if (!state.watch) return void 0;\n let result = state.outputTimeStamps.get(resolvedConfigFilePath);\n if (!result) state.outputTimeStamps.set(resolvedConfigFilePath, result = /* @__PURE__ */ new Map());\n return result;\n}\nfunction getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) {\n const path = toPath2(state, buildInfoPath);\n const existing = state.buildInfoCache.get(resolvedConfigPath);\n return (existing == null ? void 0 : existing.path) === path ? existing : void 0;\n}\nfunction getBuildInfo3(state, buildInfoPath, resolvedConfigPath, modifiedTime) {\n const path = toPath2(state, buildInfoPath);\n const existing = state.buildInfoCache.get(resolvedConfigPath);\n if (existing !== void 0 && existing.path === path) {\n return existing.buildInfo || void 0;\n }\n const value = state.readFileWithCache(buildInfoPath);\n const buildInfo = value ? getBuildInfo(buildInfoPath, value) : void 0;\n state.buildInfoCache.set(resolvedConfigPath, { path, buildInfo: buildInfo || false, modifiedTime: modifiedTime || missingFileModifiedTime });\n return buildInfo;\n}\nfunction checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName) {\n const tsconfigTime = getModifiedTime2(state, configFile);\n if (oldestOutputFileTime < tsconfigTime) {\n return {\n type: 5 /* OutOfDateWithSelf */,\n outOfDateOutputFileName: oldestOutputFileName,\n newerInputFileName: configFile\n };\n }\n}\nfunction getUpToDateStatusWorker(state, project, resolvedPath) {\n var _a, _b, _c, _d, _e;\n if (isSolutionConfig(project)) return { type: 16 /* ContainerOnly */ };\n let referenceStatuses;\n const force = !!state.options.force;\n if (project.projectReferences) {\n state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ });\n for (const ref of project.projectReferences) {\n const resolvedRef = resolveProjectReferencePath(ref);\n const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);\n const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);\n const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);\n if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) {\n continue;\n }\n if (state.options.stopBuildOnErrors && (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */)) {\n return {\n type: 12 /* UpstreamBlocked */,\n upstreamProjectName: ref.path,\n upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */\n };\n }\n if (!force) (referenceStatuses || (referenceStatuses = [])).push({ ref, refStatus, resolvedRefPath, resolvedConfig });\n }\n }\n if (force) return { type: 17 /* ForceBuild */ };\n const { host } = state;\n const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);\n const isIncremental = isIncrementalCompilation(project.options);\n let buildInfoCacheEntry = getBuildInfoCacheEntry(state, buildInfoPath, resolvedPath);\n const buildInfoTime = (buildInfoCacheEntry == null ? void 0 : buildInfoCacheEntry.modifiedTime) || getModifiedTime(host, buildInfoPath);\n if (buildInfoTime === missingFileModifiedTime) {\n if (!buildInfoCacheEntry) {\n state.buildInfoCache.set(resolvedPath, {\n path: toPath2(state, buildInfoPath),\n buildInfo: false,\n modifiedTime: buildInfoTime\n });\n }\n return {\n type: 3 /* OutputMissing */,\n missingOutputFileName: buildInfoPath\n };\n }\n const buildInfo = getBuildInfo3(state, buildInfoPath, resolvedPath, buildInfoTime);\n if (!buildInfo) {\n return {\n type: 4 /* ErrorReadingFile */,\n fileName: buildInfoPath\n };\n }\n const incrementalBuildInfo = isIncremental && isIncrementalBuildInfo(buildInfo) ? buildInfo : void 0;\n if ((incrementalBuildInfo || !isIncremental) && buildInfo.version !== version) {\n return {\n type: 14 /* TsVersionOutputOfDate */,\n version: buildInfo.version\n };\n }\n if (!project.options.noCheck && (buildInfo.errors || // TODO: syntax errors????\n buildInfo.checkPending)) {\n return {\n type: 8 /* OutOfDateBuildInfoWithErrors */,\n buildInfoFile: buildInfoPath\n };\n }\n if (incrementalBuildInfo) {\n if (!project.options.noCheck && (((_a = incrementalBuildInfo.changeFileSet) == null ? void 0 : _a.length) || ((_b = incrementalBuildInfo.semanticDiagnosticsPerFile) == null ? void 0 : _b.length) || getEmitDeclarations(project.options) && ((_c = incrementalBuildInfo.emitDiagnosticsPerFile) == null ? void 0 : _c.length))) {\n return {\n type: 8 /* OutOfDateBuildInfoWithErrors */,\n buildInfoFile: buildInfoPath\n };\n }\n if (!project.options.noEmit && (((_d = incrementalBuildInfo.changeFileSet) == null ? void 0 : _d.length) || ((_e = incrementalBuildInfo.affectedFilesPendingEmit) == null ? void 0 : _e.length) || incrementalBuildInfo.pendingEmit !== void 0)) {\n return {\n type: 7 /* OutOfDateBuildInfoWithPendingEmit */,\n buildInfoFile: buildInfoPath\n };\n }\n if ((!project.options.noEmit || project.options.noEmit && getEmitDeclarations(project.options)) && getPendingEmitKindWithSeen(\n project.options,\n incrementalBuildInfo.options || {},\n /*emitOnlyDtsFiles*/\n void 0,\n !!project.options.noEmit\n )) {\n return {\n type: 9 /* OutOfDateOptions */,\n buildInfoFile: buildInfoPath\n };\n }\n }\n let oldestOutputFileTime = buildInfoTime;\n let oldestOutputFileName = buildInfoPath;\n let newestInputFileName = void 0;\n let newestInputFileTime = minimumDate;\n let pseudoInputUpToDate = false;\n const seenRoots = /* @__PURE__ */ new Set();\n let buildInfoVersionMap;\n for (const inputFile of project.fileNames) {\n const inputTime = getModifiedTime2(state, inputFile);\n if (inputTime === missingFileModifiedTime) {\n return {\n type: 0 /* Unbuildable */,\n reason: `${inputFile} does not exist`\n };\n }\n const inputPath = toPath2(state, inputFile);\n if (buildInfoTime < inputTime) {\n let version2;\n let currentVersion;\n if (incrementalBuildInfo) {\n if (!buildInfoVersionMap) buildInfoVersionMap = getBuildInfoFileVersionMap(incrementalBuildInfo, buildInfoPath, host);\n const resolvedInputPath = buildInfoVersionMap.roots.get(inputPath);\n version2 = buildInfoVersionMap.fileInfos.get(resolvedInputPath ?? inputPath);\n const text = version2 ? state.readFileWithCache(resolvedInputPath ?? inputFile) : void 0;\n currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0;\n if (version2 && version2 === currentVersion) pseudoInputUpToDate = true;\n }\n if (!version2 || version2 !== currentVersion) {\n return {\n type: 5 /* OutOfDateWithSelf */,\n outOfDateOutputFileName: buildInfoPath,\n newerInputFileName: inputFile\n };\n }\n }\n if (inputTime > newestInputFileTime) {\n newestInputFileName = inputFile;\n newestInputFileTime = inputTime;\n }\n seenRoots.add(inputPath);\n }\n let existingRoot;\n if (incrementalBuildInfo) {\n if (!buildInfoVersionMap) buildInfoVersionMap = getBuildInfoFileVersionMap(incrementalBuildInfo, buildInfoPath, host);\n existingRoot = forEachEntry(\n buildInfoVersionMap.roots,\n // File was root file when project was built but its not any more\n (_resolved, existingRoot2) => !seenRoots.has(existingRoot2) ? existingRoot2 : void 0\n );\n } else {\n existingRoot = forEach(\n getNonIncrementalBuildInfoRoots(buildInfo, buildInfoPath, host),\n (root) => !seenRoots.has(root) ? root : void 0\n );\n }\n if (existingRoot) {\n return {\n type: 10 /* OutOfDateRoots */,\n buildInfoFile: buildInfoPath,\n inputFile: existingRoot\n };\n }\n if (!isIncremental) {\n const outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());\n const outputTimeStampMap = getOutputTimeStampMap(state, resolvedPath);\n for (const output of outputs) {\n if (output === buildInfoPath) continue;\n const path = toPath2(state, output);\n let outputTime = outputTimeStampMap == null ? void 0 : outputTimeStampMap.get(path);\n if (!outputTime) {\n outputTime = getModifiedTime(state.host, output);\n outputTimeStampMap == null ? void 0 : outputTimeStampMap.set(path, outputTime);\n }\n if (outputTime === missingFileModifiedTime) {\n return {\n type: 3 /* OutputMissing */,\n missingOutputFileName: output\n };\n }\n if (outputTime < newestInputFileTime) {\n return {\n type: 5 /* OutOfDateWithSelf */,\n outOfDateOutputFileName: output,\n newerInputFileName: newestInputFileName\n };\n }\n if (outputTime < oldestOutputFileTime) {\n oldestOutputFileTime = outputTime;\n oldestOutputFileName = output;\n }\n }\n }\n let pseudoUpToDate = false;\n if (referenceStatuses) {\n for (const { ref, refStatus, resolvedConfig, resolvedRefPath } of referenceStatuses) {\n if (refStatus.newestInputFileTime && refStatus.newestInputFileTime <= oldestOutputFileTime) {\n continue;\n }\n if (hasSameBuildInfo(state, buildInfoCacheEntry ?? (buildInfoCacheEntry = state.buildInfoCache.get(resolvedPath)), resolvedRefPath)) {\n return {\n type: 6 /* OutOfDateWithUpstream */,\n outOfDateOutputFileName: buildInfoPath,\n newerProjectName: ref.path\n };\n }\n const newestDeclarationFileContentChangedTime = getLatestChangedDtsTime(state, resolvedConfig.options, resolvedRefPath);\n if (newestDeclarationFileContentChangedTime && newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {\n pseudoUpToDate = true;\n continue;\n }\n Debug.assert(oldestOutputFileName !== void 0, \"Should have an oldest output filename here\");\n return {\n type: 6 /* OutOfDateWithUpstream */,\n outOfDateOutputFileName: oldestOutputFileName,\n newerProjectName: ref.path\n };\n }\n }\n const configStatus = checkConfigFileUpToDateStatus(state, project.options.configFilePath, oldestOutputFileTime, oldestOutputFileName);\n if (configStatus) return configStatus;\n const extendedConfigStatus = forEach(project.options.configFile.extendedSourceFiles || emptyArray, (configFile) => checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName));\n if (extendedConfigStatus) return extendedConfigStatus;\n const packageJsonLookups = state.lastCachedPackageJsonLookups.get(resolvedPath);\n const dependentPackageFileStatus = packageJsonLookups && forEachKey(\n packageJsonLookups,\n (path) => checkConfigFileUpToDateStatus(state, path, oldestOutputFileTime, oldestOutputFileName)\n );\n if (dependentPackageFileStatus) return dependentPackageFileStatus;\n return {\n type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,\n newestInputFileTime,\n newestInputFileName,\n oldestOutputFileName\n };\n}\nfunction hasSameBuildInfo(state, buildInfoCacheEntry, resolvedRefPath) {\n const refBuildInfo = state.buildInfoCache.get(resolvedRefPath);\n return refBuildInfo.path === buildInfoCacheEntry.path;\n}\nfunction getUpToDateStatus(state, project, resolvedPath) {\n if (project === void 0) {\n return { type: 0 /* Unbuildable */, reason: \"config file deleted mid-build\" };\n }\n const prior = state.projectStatus.get(resolvedPath);\n if (prior !== void 0) {\n return prior;\n }\n mark(\"SolutionBuilder::beforeUpToDateCheck\");\n const actual = getUpToDateStatusWorker(state, project, resolvedPath);\n mark(\"SolutionBuilder::afterUpToDateCheck\");\n measure(\"SolutionBuilder::Up-to-date check\", \"SolutionBuilder::beforeUpToDateCheck\", \"SolutionBuilder::afterUpToDateCheck\");\n state.projectStatus.set(resolvedPath, actual);\n return actual;\n}\nfunction updateOutputTimestampsWorker(state, proj, projectPath, verboseMessage, skipOutputs) {\n if (proj.options.noEmit) return;\n let now;\n const buildInfoPath = getTsBuildInfoEmitOutputFilePath(proj.options);\n const isIncremental = isIncrementalCompilation(proj.options);\n if (buildInfoPath && isIncremental) {\n if (!(skipOutputs == null ? void 0 : skipOutputs.has(toPath2(state, buildInfoPath)))) {\n if (!!state.options.verbose) reportStatus(state, verboseMessage, proj.options.configFilePath);\n state.host.setModifiedTime(buildInfoPath, now = getCurrentTime(state.host));\n getBuildInfoCacheEntry(state, buildInfoPath, projectPath).modifiedTime = now;\n }\n state.outputTimeStamps.delete(projectPath);\n return;\n }\n const { host } = state;\n const outputs = getAllProjectOutputs(proj, !host.useCaseSensitiveFileNames());\n const outputTimeStampMap = getOutputTimeStampMap(state, projectPath);\n const modifiedOutputs = outputTimeStampMap ? /* @__PURE__ */ new Set() : void 0;\n if (!skipOutputs || outputs.length !== skipOutputs.size) {\n let reportVerbose = !!state.options.verbose;\n for (const file of outputs) {\n const path = toPath2(state, file);\n if (skipOutputs == null ? void 0 : skipOutputs.has(path)) continue;\n if (reportVerbose) {\n reportVerbose = false;\n reportStatus(state, verboseMessage, proj.options.configFilePath);\n }\n host.setModifiedTime(file, now || (now = getCurrentTime(state.host)));\n if (file === buildInfoPath) getBuildInfoCacheEntry(state, buildInfoPath, projectPath).modifiedTime = now;\n else if (outputTimeStampMap) {\n outputTimeStampMap.set(path, now);\n modifiedOutputs.add(path);\n }\n }\n }\n outputTimeStampMap == null ? void 0 : outputTimeStampMap.forEach((_value, key) => {\n if (!(skipOutputs == null ? void 0 : skipOutputs.has(key)) && !modifiedOutputs.has(key)) outputTimeStampMap.delete(key);\n });\n}\nfunction getLatestChangedDtsTime(state, options, resolvedConfigPath) {\n if (!options.composite) return void 0;\n const entry = Debug.checkDefined(state.buildInfoCache.get(resolvedConfigPath));\n if (entry.latestChangedDtsTime !== void 0) return entry.latestChangedDtsTime || void 0;\n const latestChangedDtsTime = entry.buildInfo && isIncrementalBuildInfo(entry.buildInfo) && entry.buildInfo.latestChangedDtsFile ? state.host.getModifiedTime(getNormalizedAbsolutePath(entry.buildInfo.latestChangedDtsFile, getDirectoryPath(entry.path))) : void 0;\n entry.latestChangedDtsTime = latestChangedDtsTime || false;\n return latestChangedDtsTime;\n}\nfunction updateOutputTimestamps(state, proj, resolvedPath) {\n if (state.options.dry) {\n return reportStatus(state, Diagnostics.A_non_dry_build_would_update_timestamps_for_output_of_project_0, proj.options.configFilePath);\n }\n updateOutputTimestampsWorker(state, proj, resolvedPath, Diagnostics.Updating_output_timestamps_of_project_0);\n state.projectStatus.set(resolvedPath, {\n type: 1 /* UpToDate */,\n oldestOutputFileName: getFirstProjectOutput(proj, !state.host.useCaseSensitiveFileNames())\n });\n}\nfunction queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, buildResult) {\n if (state.options.stopBuildOnErrors && buildResult & 4 /* AnyErrors */) return;\n if (!config.options.composite) return;\n for (let index = projectIndex + 1; index < buildOrder.length; index++) {\n const nextProject = buildOrder[index];\n const nextProjectPath = toResolvedConfigFilePath(state, nextProject);\n if (state.projectPendingBuild.has(nextProjectPath)) continue;\n const nextProjectConfig = parseConfigFile(state, nextProject, nextProjectPath);\n if (!nextProjectConfig || !nextProjectConfig.projectReferences) continue;\n for (const ref of nextProjectConfig.projectReferences) {\n const resolvedRefPath = resolveProjectName(state, ref.path);\n if (toResolvedConfigFilePath(state, resolvedRefPath) !== projectPath) continue;\n const status = state.projectStatus.get(nextProjectPath);\n if (status) {\n switch (status.type) {\n case 1 /* UpToDate */:\n if (buildResult & 2 /* DeclarationOutputUnchanged */) {\n status.type = 2 /* UpToDateWithUpstreamTypes */;\n break;\n }\n // falls through\n case 15 /* UpToDateWithInputFileText */:\n case 2 /* UpToDateWithUpstreamTypes */:\n if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {\n state.projectStatus.set(nextProjectPath, {\n type: 6 /* OutOfDateWithUpstream */,\n outOfDateOutputFileName: status.oldestOutputFileName,\n newerProjectName: project\n });\n }\n break;\n case 12 /* UpstreamBlocked */:\n if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {\n clearProjectStatus(state, nextProjectPath);\n }\n break;\n }\n }\n addProjToQueue(state, nextProjectPath, 0 /* Update */);\n break;\n }\n }\n}\nfunction build(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) {\n mark(\"SolutionBuilder::beforeBuild\");\n const result = buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences);\n mark(\"SolutionBuilder::afterBuild\");\n measure(\"SolutionBuilder::Build\", \"SolutionBuilder::beforeBuild\", \"SolutionBuilder::afterBuild\");\n return result;\n}\nfunction buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) {\n const buildOrder = getBuildOrderFor(state, project, onlyReferences);\n if (!buildOrder) return 3 /* InvalidProject_OutputsSkipped */;\n setupInitialBuild(state, cancellationToken);\n let reportQueue = true;\n let successfulProjects = 0;\n while (true) {\n const invalidatedProject = getNextInvalidatedProject(state, buildOrder, reportQueue);\n if (!invalidatedProject) break;\n reportQueue = false;\n invalidatedProject.done(cancellationToken, writeFile2, getCustomTransformers == null ? void 0 : getCustomTransformers(invalidatedProject.project));\n if (!state.diagnostics.has(invalidatedProject.projectPath)) successfulProjects++;\n }\n disableCache(state);\n reportErrorSummary(state, buildOrder);\n startWatching(state, buildOrder);\n return isCircularBuildOrder(buildOrder) ? 4 /* ProjectReferenceCycle_OutputsSkipped */ : !buildOrder.some((p) => state.diagnostics.has(toResolvedConfigFilePath(state, p))) ? 0 /* Success */ : successfulProjects ? 2 /* DiagnosticsPresent_OutputsGenerated */ : 1 /* DiagnosticsPresent_OutputsSkipped */;\n}\nfunction clean(state, project, onlyReferences) {\n mark(\"SolutionBuilder::beforeClean\");\n const result = cleanWorker(state, project, onlyReferences);\n mark(\"SolutionBuilder::afterClean\");\n measure(\"SolutionBuilder::Clean\", \"SolutionBuilder::beforeClean\", \"SolutionBuilder::afterClean\");\n return result;\n}\nfunction cleanWorker(state, project, onlyReferences) {\n const buildOrder = getBuildOrderFor(state, project, onlyReferences);\n if (!buildOrder) return 3 /* InvalidProject_OutputsSkipped */;\n if (isCircularBuildOrder(buildOrder)) {\n reportErrors(state, buildOrder.circularDiagnostics);\n return 4 /* ProjectReferenceCycle_OutputsSkipped */;\n }\n const { options, host } = state;\n const filesToDelete = options.dry ? [] : void 0;\n for (const proj of buildOrder) {\n const resolvedPath = toResolvedConfigFilePath(state, proj);\n const parsed = parseConfigFile(state, proj, resolvedPath);\n if (parsed === void 0) {\n reportParseConfigFileDiagnostic(state, resolvedPath);\n continue;\n }\n const outputs = getAllProjectOutputs(parsed, !host.useCaseSensitiveFileNames());\n if (!outputs.length) continue;\n const inputFileNames = new Set(parsed.fileNames.map((f) => toPath2(state, f)));\n for (const output of outputs) {\n if (inputFileNames.has(toPath2(state, output))) continue;\n if (host.fileExists(output)) {\n if (filesToDelete) {\n filesToDelete.push(output);\n } else {\n host.deleteFile(output);\n invalidateProject(state, resolvedPath, 0 /* Update */);\n }\n }\n }\n }\n if (filesToDelete) {\n reportStatus(state, Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map((f) => `\\r\n * ${f}`).join(\"\"));\n }\n return 0 /* Success */;\n}\nfunction invalidateProject(state, resolved, updateLevel) {\n if (state.host.getParsedCommandLine && updateLevel === 1 /* RootNamesAndUpdate */) {\n updateLevel = 2 /* Full */;\n }\n if (updateLevel === 2 /* Full */) {\n state.configFileCache.delete(resolved);\n state.buildOrder = void 0;\n }\n state.needsSummary = true;\n clearProjectStatus(state, resolved);\n addProjToQueue(state, resolved, updateLevel);\n enableCache(state);\n}\nfunction invalidateProjectAndScheduleBuilds(state, resolvedPath, updateLevel) {\n state.reportFileChangeDetected = true;\n invalidateProject(state, resolvedPath, updateLevel);\n scheduleBuildInvalidatedProject(\n state,\n 250,\n /*changeDetected*/\n true\n );\n}\nfunction scheduleBuildInvalidatedProject(state, time, changeDetected) {\n const { hostWithWatch } = state;\n if (!hostWithWatch.setTimeout || !hostWithWatch.clearTimeout) {\n return;\n }\n if (state.timerToBuildInvalidatedProject) {\n hostWithWatch.clearTimeout(state.timerToBuildInvalidatedProject);\n }\n state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, time, \"timerToBuildInvalidatedProject\", state, changeDetected);\n}\nfunction buildNextInvalidatedProject(_timeoutType, state, changeDetected) {\n mark(\"SolutionBuilder::beforeBuild\");\n const buildOrder = buildNextInvalidatedProjectWorker(state, changeDetected);\n mark(\"SolutionBuilder::afterBuild\");\n measure(\"SolutionBuilder::Build\", \"SolutionBuilder::beforeBuild\", \"SolutionBuilder::afterBuild\");\n if (buildOrder) reportErrorSummary(state, buildOrder);\n}\nfunction buildNextInvalidatedProjectWorker(state, changeDetected) {\n state.timerToBuildInvalidatedProject = void 0;\n if (state.reportFileChangeDetected) {\n state.reportFileChangeDetected = false;\n state.projectErrorsReported.clear();\n reportWatchStatus(state, Diagnostics.File_change_detected_Starting_incremental_compilation);\n }\n let projectsBuilt = 0;\n const buildOrder = getBuildOrder(state);\n const invalidatedProject = getNextInvalidatedProject(\n state,\n buildOrder,\n /*reportQueue*/\n false\n );\n if (invalidatedProject) {\n invalidatedProject.done();\n projectsBuilt++;\n while (state.projectPendingBuild.size) {\n if (state.timerToBuildInvalidatedProject) return;\n const info = getNextInvalidatedProjectCreateInfo(\n state,\n buildOrder,\n /*reportQueue*/\n false\n );\n if (!info) break;\n if (info.kind !== 1 /* UpdateOutputFileStamps */ && (changeDetected || projectsBuilt === 5)) {\n scheduleBuildInvalidatedProject(\n state,\n 100,\n /*changeDetected*/\n false\n );\n return;\n }\n const project = createInvalidatedProjectWithInfo(state, info, buildOrder);\n project.done();\n if (info.kind !== 1 /* UpdateOutputFileStamps */) projectsBuilt++;\n }\n }\n disableCache(state);\n return buildOrder;\n}\nfunction watchConfigFile(state, resolved, resolvedPath, parsed) {\n if (!state.watch || state.allWatchedConfigFiles.has(resolvedPath)) return;\n state.allWatchedConfigFiles.set(\n resolvedPath,\n watchFile(\n state,\n resolved,\n () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 2 /* Full */),\n 2e3 /* High */,\n parsed == null ? void 0 : parsed.watchOptions,\n WatchType.ConfigFile,\n resolved\n )\n );\n}\nfunction watchExtendedConfigFiles(state, resolvedPath, parsed) {\n updateSharedExtendedConfigFileWatcher(\n resolvedPath,\n parsed == null ? void 0 : parsed.options,\n state.allWatchedExtendedConfigFiles,\n (extendedConfigFileName, extendedConfigFilePath) => watchFile(\n state,\n extendedConfigFileName,\n () => {\n var _a;\n return (_a = state.allWatchedExtendedConfigFiles.get(extendedConfigFilePath)) == null ? void 0 : _a.projects.forEach((projectConfigFilePath) => invalidateProjectAndScheduleBuilds(state, projectConfigFilePath, 2 /* Full */));\n },\n 2e3 /* High */,\n parsed == null ? void 0 : parsed.watchOptions,\n WatchType.ExtendedConfigFile\n ),\n (fileName) => toPath2(state, fileName)\n );\n}\nfunction watchWildCardDirectories(state, resolved, resolvedPath, parsed) {\n if (!state.watch) return;\n updateWatchingWildcardDirectories(\n getOrCreateValueMapFromConfigFileMap(state.allWatchedWildcardDirectories, resolvedPath),\n parsed.wildcardDirectories,\n (dir, flags) => state.watchDirectory(\n dir,\n (fileOrDirectory) => {\n var _a;\n if (isIgnoredFileFromWildCardWatching({\n watchedDirPath: toPath2(state, dir),\n fileOrDirectory,\n fileOrDirectoryPath: toPath2(state, fileOrDirectory),\n configFileName: resolved,\n currentDirectory: state.compilerHost.getCurrentDirectory(),\n options: parsed.options,\n program: state.builderPrograms.get(resolvedPath) || ((_a = getCachedParsedConfigFile(state, resolvedPath)) == null ? void 0 : _a.fileNames),\n useCaseSensitiveFileNames: state.parseConfigFileHost.useCaseSensitiveFileNames,\n writeLog: (s) => state.writeLog(s),\n toPath: (fileName) => toPath2(state, fileName)\n })) return;\n invalidateProjectAndScheduleBuilds(state, resolvedPath, 1 /* RootNamesAndUpdate */);\n },\n flags,\n parsed == null ? void 0 : parsed.watchOptions,\n WatchType.WildcardDirectory,\n resolved\n )\n );\n}\nfunction watchInputFiles(state, resolved, resolvedPath, parsed) {\n if (!state.watch) return;\n mutateMap(\n getOrCreateValueMapFromConfigFileMap(state.allWatchedInputFiles, resolvedPath),\n new Set(parsed.fileNames),\n {\n createNewValue: (input) => watchFile(\n state,\n input,\n () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* Update */),\n 250 /* Low */,\n parsed == null ? void 0 : parsed.watchOptions,\n WatchType.SourceFile,\n resolved\n ),\n onDeleteValue: closeFileWatcher\n }\n );\n}\nfunction watchPackageJsonFiles(state, resolved, resolvedPath, parsed) {\n if (!state.watch || !state.lastCachedPackageJsonLookups) return;\n mutateMap(\n getOrCreateValueMapFromConfigFileMap(state.allWatchedPackageJsonFiles, resolvedPath),\n state.lastCachedPackageJsonLookups.get(resolvedPath),\n {\n createNewValue: (input) => watchFile(\n state,\n input,\n () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* Update */),\n 2e3 /* High */,\n parsed == null ? void 0 : parsed.watchOptions,\n WatchType.PackageJson,\n resolved\n ),\n onDeleteValue: closeFileWatcher\n }\n );\n}\nfunction startWatching(state, buildOrder) {\n if (!state.watchAllProjectsPending) return;\n mark(\"SolutionBuilder::beforeWatcherCreation\");\n state.watchAllProjectsPending = false;\n for (const resolved of getBuildOrderFromAnyBuildOrder(buildOrder)) {\n const resolvedPath = toResolvedConfigFilePath(state, resolved);\n const cfg = parseConfigFile(state, resolved, resolvedPath);\n watchConfigFile(state, resolved, resolvedPath, cfg);\n watchExtendedConfigFiles(state, resolvedPath, cfg);\n if (cfg) {\n watchWildCardDirectories(state, resolved, resolvedPath, cfg);\n watchInputFiles(state, resolved, resolvedPath, cfg);\n watchPackageJsonFiles(state, resolved, resolvedPath, cfg);\n }\n }\n mark(\"SolutionBuilder::afterWatcherCreation\");\n measure(\"SolutionBuilder::Watcher creation\", \"SolutionBuilder::beforeWatcherCreation\", \"SolutionBuilder::afterWatcherCreation\");\n}\nfunction stopWatching(state) {\n clearMap(state.allWatchedConfigFiles, closeFileWatcher);\n clearMap(state.allWatchedExtendedConfigFiles, closeFileWatcherOf);\n clearMap(state.allWatchedWildcardDirectories, (watchedWildcardDirectories) => clearMap(watchedWildcardDirectories, closeFileWatcherOf));\n clearMap(state.allWatchedInputFiles, (watchedWildcardDirectories) => clearMap(watchedWildcardDirectories, closeFileWatcher));\n clearMap(state.allWatchedPackageJsonFiles, (watchedPacageJsonFiles) => clearMap(watchedPacageJsonFiles, closeFileWatcher));\n}\nfunction createSolutionBuilderWorker(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) {\n const state = createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions);\n return {\n build: (project, cancellationToken, writeFile2, getCustomTransformers) => build(state, project, cancellationToken, writeFile2, getCustomTransformers),\n clean: (project) => clean(state, project),\n buildReferences: (project, cancellationToken, writeFile2, getCustomTransformers) => build(\n state,\n project,\n cancellationToken,\n writeFile2,\n getCustomTransformers,\n /*onlyReferences*/\n true\n ),\n cleanReferences: (project) => clean(\n state,\n project,\n /*onlyReferences*/\n true\n ),\n getNextInvalidatedProject: (cancellationToken) => {\n setupInitialBuild(state, cancellationToken);\n return getNextInvalidatedProject(\n state,\n getBuildOrder(state),\n /*reportQueue*/\n false\n );\n },\n getBuildOrder: () => getBuildOrder(state),\n getUpToDateStatusOfProject: (project) => {\n const configFileName = resolveProjectName(state, project);\n const configFilePath = toResolvedConfigFilePath(state, configFileName);\n return getUpToDateStatus(state, parseConfigFile(state, configFileName, configFilePath), configFilePath);\n },\n invalidateProject: (configFilePath, updateLevel) => invalidateProject(state, configFilePath, updateLevel || 0 /* Update */),\n close: () => stopWatching(state)\n };\n}\nfunction relName(state, path) {\n return convertToRelativePath(path, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName);\n}\nfunction reportStatus(state, message, ...args) {\n state.host.reportSolutionBuilderStatus(createCompilerDiagnostic(message, ...args));\n}\nfunction reportWatchStatus(state, message, ...args) {\n var _a, _b;\n (_b = (_a = state.hostWithWatch).onWatchStatusChange) == null ? void 0 : _b.call(_a, createCompilerDiagnostic(message, ...args), state.host.getNewLine(), state.baseCompilerOptions);\n}\nfunction reportErrors({ host }, errors) {\n errors.forEach((err) => host.reportDiagnostic(err));\n}\nfunction reportAndStoreErrors(state, proj, errors) {\n reportErrors(state, errors);\n state.projectErrorsReported.set(proj, true);\n if (errors.length) {\n state.diagnostics.set(proj, errors);\n }\n}\nfunction reportParseConfigFileDiagnostic(state, proj) {\n reportAndStoreErrors(state, proj, [state.configFileCache.get(proj)]);\n}\nfunction reportErrorSummary(state, buildOrder) {\n if (!state.needsSummary) return;\n state.needsSummary = false;\n const canReportSummary = state.watch || !!state.host.reportErrorSummary;\n const { diagnostics } = state;\n let totalErrors = 0;\n let filesInError = [];\n if (isCircularBuildOrder(buildOrder)) {\n reportBuildQueue(state, buildOrder.buildOrder);\n reportErrors(state, buildOrder.circularDiagnostics);\n if (canReportSummary) totalErrors += getErrorCountForSummary(buildOrder.circularDiagnostics);\n if (canReportSummary) filesInError = [...filesInError, ...getFilesInErrorForSummary(buildOrder.circularDiagnostics)];\n } else {\n buildOrder.forEach((project) => {\n const projectPath = toResolvedConfigFilePath(state, project);\n if (!state.projectErrorsReported.has(projectPath)) {\n reportErrors(state, diagnostics.get(projectPath) || emptyArray);\n }\n });\n if (canReportSummary) diagnostics.forEach((singleProjectErrors) => totalErrors += getErrorCountForSummary(singleProjectErrors));\n if (canReportSummary) diagnostics.forEach((singleProjectErrors) => [...filesInError, ...getFilesInErrorForSummary(singleProjectErrors)]);\n }\n if (state.watch) {\n reportWatchStatus(state, getWatchErrorSummaryDiagnosticMessage(totalErrors), totalErrors);\n } else if (state.host.reportErrorSummary) {\n state.host.reportErrorSummary(totalErrors, filesInError);\n }\n}\nfunction reportBuildQueue(state, buildQueue) {\n if (state.options.verbose) {\n reportStatus(state, Diagnostics.Projects_in_this_build_Colon_0, buildQueue.map((s) => \"\\r\\n * \" + relName(state, s)).join(\"\"));\n }\n}\nfunction reportUpToDateStatus(state, configFileName, status) {\n switch (status.type) {\n case 5 /* OutOfDateWithSelf */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,\n relName(state, configFileName),\n relName(state, status.outOfDateOutputFileName),\n relName(state, status.newerInputFileName)\n );\n case 6 /* OutOfDateWithUpstream */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,\n relName(state, configFileName),\n relName(state, status.outOfDateOutputFileName),\n relName(state, status.newerProjectName)\n );\n case 3 /* OutputMissing */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist,\n relName(state, configFileName),\n relName(state, status.missingOutputFileName)\n );\n case 4 /* ErrorReadingFile */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_there_was_error_reading_file_1,\n relName(state, configFileName),\n relName(state, status.fileName)\n );\n case 7 /* OutOfDateBuildInfoWithPendingEmit */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted,\n relName(state, configFileName),\n relName(state, status.buildInfoFile)\n );\n case 8 /* OutOfDateBuildInfoWithErrors */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors,\n relName(state, configFileName),\n relName(state, status.buildInfoFile)\n );\n case 9 /* OutOfDateOptions */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions,\n relName(state, configFileName),\n relName(state, status.buildInfoFile)\n );\n case 10 /* OutOfDateRoots */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more,\n relName(state, configFileName),\n relName(state, status.buildInfoFile),\n relName(state, status.inputFile)\n );\n case 1 /* UpToDate */:\n if (status.newestInputFileTime !== void 0) {\n return reportStatus(\n state,\n Diagnostics.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2,\n relName(state, configFileName),\n relName(state, status.newestInputFileName || \"\"),\n relName(state, status.oldestOutputFileName || \"\")\n );\n }\n break;\n case 2 /* UpToDateWithUpstreamTypes */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,\n relName(state, configFileName)\n );\n case 15 /* UpToDateWithInputFileText */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,\n relName(state, configFileName)\n );\n case 11 /* UpstreamOutOfDate */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,\n relName(state, configFileName),\n relName(state, status.upstreamProjectName)\n );\n case 12 /* UpstreamBlocked */:\n return reportStatus(\n state,\n status.upstreamProjectBlocked ? Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_was_not_built : Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_has_errors,\n relName(state, configFileName),\n relName(state, status.upstreamProjectName)\n );\n case 0 /* Unbuildable */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_1,\n relName(state, configFileName),\n status.reason\n );\n case 14 /* TsVersionOutputOfDate */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,\n relName(state, configFileName),\n status.version,\n version\n );\n case 17 /* ForceBuild */:\n return reportStatus(\n state,\n Diagnostics.Project_0_is_being_forcibly_rebuilt,\n relName(state, configFileName)\n );\n case 16 /* ContainerOnly */:\n // Don't report status on \"solution\" projects\n // falls through\n case 13 /* ComputingUpstream */:\n break;\n default:\n assertType(status);\n }\n}\nfunction verboseReportProjectStatus(state, configFileName, status) {\n if (state.options.verbose) {\n reportUpToDateStatus(state, configFileName, status);\n }\n}\n\n// src/compiler/executeCommandLine.ts\nvar StatisticType = /* @__PURE__ */ ((StatisticType2) => {\n StatisticType2[StatisticType2[\"time\"] = 0] = \"time\";\n StatisticType2[StatisticType2[\"count\"] = 1] = \"count\";\n StatisticType2[StatisticType2[\"memory\"] = 2] = \"memory\";\n return StatisticType2;\n})(StatisticType || {});\nfunction countLines(program) {\n const counts2 = getCountsMap();\n forEach(program.getSourceFiles(), (file) => {\n const key = getCountKey(program, file);\n const lineCount = getLineStarts(file).length;\n counts2.set(key, counts2.get(key) + lineCount);\n });\n return counts2;\n}\nfunction getCountsMap() {\n const counts2 = /* @__PURE__ */ new Map();\n counts2.set(\"Library\", 0);\n counts2.set(\"Definitions\", 0);\n counts2.set(\"TypeScript\", 0);\n counts2.set(\"JavaScript\", 0);\n counts2.set(\"JSON\", 0);\n counts2.set(\"Other\", 0);\n return counts2;\n}\nfunction getCountKey(program, file) {\n if (program.isSourceFileDefaultLibrary(file)) {\n return \"Library\";\n } else if (file.isDeclarationFile) {\n return \"Definitions\";\n }\n const path = file.path;\n if (fileExtensionIsOneOf(path, supportedTSExtensionsFlat)) {\n return \"TypeScript\";\n } else if (fileExtensionIsOneOf(path, supportedJSExtensionsFlat)) {\n return \"JavaScript\";\n } else if (fileExtensionIs(path, \".json\" /* Json */)) {\n return \"JSON\";\n } else {\n return \"Other\";\n }\n}\nfunction updateReportDiagnostic(sys2, existing, options) {\n return shouldBePretty(sys2, options) ? createDiagnosticReporter(\n sys2,\n /*pretty*/\n true\n ) : existing;\n}\nfunction defaultIsPretty(sys2) {\n return !!sys2.writeOutputIsTTY && sys2.writeOutputIsTTY() && !sys2.getEnvironmentVariable(\"NO_COLOR\");\n}\nfunction shouldBePretty(sys2, options) {\n if (!options || typeof options.pretty === \"undefined\") {\n return defaultIsPretty(sys2);\n }\n return options.pretty;\n}\nfunction getOptionsForHelp(commandLine) {\n return !!commandLine.options.all ? toSorted(optionDeclarations.concat(tscBuildOption), (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filter(optionDeclarations.concat(tscBuildOption), (v) => !!v.showInSimplifiedHelpView);\n}\nfunction printVersion(sys2) {\n sys2.write(getDiagnosticText(Diagnostics.Version_0, version) + sys2.newLine);\n}\nfunction createColors(sys2) {\n const showColors = defaultIsPretty(sys2);\n if (!showColors) {\n return {\n bold: (str) => str,\n blue: (str) => str,\n blueBackground: (str) => str,\n brightWhite: (str) => str\n };\n }\n function bold(str) {\n return `\\x1B[1m${str}\\x1B[22m`;\n }\n const isWindows = sys2.getEnvironmentVariable(\"OS\") && sys2.getEnvironmentVariable(\"OS\").toLowerCase().includes(\"windows\");\n const isWindowsTerminal = sys2.getEnvironmentVariable(\"WT_SESSION\");\n const isVSCode = sys2.getEnvironmentVariable(\"TERM_PROGRAM\") && sys2.getEnvironmentVariable(\"TERM_PROGRAM\") === \"vscode\";\n function blue(str) {\n if (isWindows && !isWindowsTerminal && !isVSCode) {\n return brightWhite(str);\n }\n return `\\x1B[94m${str}\\x1B[39m`;\n }\n const supportsRicherColors = sys2.getEnvironmentVariable(\"COLORTERM\") === \"truecolor\" || sys2.getEnvironmentVariable(\"TERM\") === \"xterm-256color\";\n function blueBackground(str) {\n if (supportsRicherColors) {\n return `\\x1B[48;5;68m${str}\\x1B[39;49m`;\n } else {\n return `\\x1B[44m${str}\\x1B[39;49m`;\n }\n }\n function brightWhite(str) {\n return `\\x1B[97m${str}\\x1B[39m`;\n }\n return {\n bold,\n blue,\n brightWhite,\n blueBackground\n };\n}\nfunction getDisplayNameTextOfOption(option) {\n return `--${option.name}${option.shortName ? `, -${option.shortName}` : \"\"}`;\n}\nfunction generateOptionOutput(sys2, option, rightAlignOfLeft, leftAlignOfRight) {\n var _a;\n const text = [];\n const colors = createColors(sys2);\n const name = getDisplayNameTextOfOption(option);\n const valueCandidates = getValueCandidate(option);\n const defaultValueDescription = typeof option.defaultValueDescription === \"object\" ? getDiagnosticText(option.defaultValueDescription) : formatDefaultValue(\n option.defaultValueDescription,\n option.type === \"list\" || option.type === \"listOrElement\" ? option.element.type : option.type\n );\n const terminalWidth = ((_a = sys2.getWidthOfTerminal) == null ? void 0 : _a.call(sys2)) ?? 0;\n if (terminalWidth >= 80) {\n let description3 = \"\";\n if (option.description) {\n description3 = getDiagnosticText(option.description);\n }\n text.push(...getPrettyOutput(\n name,\n description3,\n rightAlignOfLeft,\n leftAlignOfRight,\n terminalWidth,\n /*colorLeft*/\n true\n ), sys2.newLine);\n if (showAdditionalInfoOutput(valueCandidates, option)) {\n if (valueCandidates) {\n text.push(...getPrettyOutput(\n valueCandidates.valueType,\n valueCandidates.possibleValues,\n rightAlignOfLeft,\n leftAlignOfRight,\n terminalWidth,\n /*colorLeft*/\n false\n ), sys2.newLine);\n }\n if (defaultValueDescription) {\n text.push(...getPrettyOutput(\n getDiagnosticText(Diagnostics.default_Colon),\n defaultValueDescription,\n rightAlignOfLeft,\n leftAlignOfRight,\n terminalWidth,\n /*colorLeft*/\n false\n ), sys2.newLine);\n }\n }\n text.push(sys2.newLine);\n } else {\n text.push(colors.blue(name), sys2.newLine);\n if (option.description) {\n const description3 = getDiagnosticText(option.description);\n text.push(description3);\n }\n text.push(sys2.newLine);\n if (showAdditionalInfoOutput(valueCandidates, option)) {\n if (valueCandidates) {\n text.push(`${valueCandidates.valueType} ${valueCandidates.possibleValues}`);\n }\n if (defaultValueDescription) {\n if (valueCandidates) text.push(sys2.newLine);\n const diagType = getDiagnosticText(Diagnostics.default_Colon);\n text.push(`${diagType} ${defaultValueDescription}`);\n }\n text.push(sys2.newLine);\n }\n text.push(sys2.newLine);\n }\n return text;\n function formatDefaultValue(defaultValue, type) {\n return defaultValue !== void 0 && typeof type === \"object\" ? arrayFrom(type.entries()).filter(([, value]) => value === defaultValue).map(([name2]) => name2).join(\"/\") : String(defaultValue);\n }\n function showAdditionalInfoOutput(valueCandidates2, option2) {\n const ignoreValues = [\"string\"];\n const ignoredDescriptions = [void 0, \"false\", \"n/a\"];\n const defaultValueDescription2 = option2.defaultValueDescription;\n if (option2.category === Diagnostics.Command_line_Options) return false;\n if (contains(ignoreValues, valueCandidates2 == null ? void 0 : valueCandidates2.possibleValues) && contains(ignoredDescriptions, defaultValueDescription2)) {\n return false;\n }\n return true;\n }\n function getPrettyOutput(left, right, rightAlignOfLeft2, leftAlignOfRight2, terminalWidth2, colorLeft) {\n const res = [];\n let isFirstLine = true;\n let remainRight = right;\n const rightCharacterNumber = terminalWidth2 - leftAlignOfRight2;\n while (remainRight.length > 0) {\n let curLeft = \"\";\n if (isFirstLine) {\n curLeft = left.padStart(rightAlignOfLeft2);\n curLeft = curLeft.padEnd(leftAlignOfRight2);\n curLeft = colorLeft ? colors.blue(curLeft) : curLeft;\n } else {\n curLeft = \"\".padStart(leftAlignOfRight2);\n }\n const curRight = remainRight.substr(0, rightCharacterNumber);\n remainRight = remainRight.slice(rightCharacterNumber);\n res.push(`${curLeft}${curRight}`);\n isFirstLine = false;\n }\n return res;\n }\n function getValueCandidate(option2) {\n if (option2.type === \"object\") {\n return void 0;\n }\n return {\n valueType: getValueType(option2),\n possibleValues: getPossibleValues(option2)\n };\n function getValueType(option3) {\n Debug.assert(option3.type !== \"listOrElement\");\n switch (option3.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return getDiagnosticText(Diagnostics.type_Colon);\n case \"list\":\n return getDiagnosticText(Diagnostics.one_or_more_Colon);\n default:\n return getDiagnosticText(Diagnostics.one_of_Colon);\n }\n }\n function getPossibleValues(option3) {\n let possibleValues;\n switch (option3.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n possibleValues = option3.type;\n break;\n case \"list\":\n case \"listOrElement\":\n possibleValues = getPossibleValues(option3.element);\n break;\n case \"object\":\n possibleValues = \"\";\n break;\n default:\n const inverted = {};\n option3.type.forEach((value, name2) => {\n var _a2;\n if (!((_a2 = option3.deprecatedKeys) == null ? void 0 : _a2.has(name2))) {\n (inverted[value] || (inverted[value] = [])).push(name2);\n }\n });\n return Object.entries(inverted).map(([, synonyms]) => synonyms.join(\"/\")).join(\", \");\n }\n return possibleValues;\n }\n }\n}\nfunction generateGroupOptionOutput(sys2, optionsList) {\n let maxLength2 = 0;\n for (const option of optionsList) {\n const curLength = getDisplayNameTextOfOption(option).length;\n maxLength2 = maxLength2 > curLength ? maxLength2 : curLength;\n }\n const rightAlignOfLeftPart = maxLength2 + 2;\n const leftAlignOfRightPart = rightAlignOfLeftPart + 2;\n let lines = [];\n for (const option of optionsList) {\n const tmp = generateOptionOutput(sys2, option, rightAlignOfLeftPart, leftAlignOfRightPart);\n lines = [...lines, ...tmp];\n }\n if (lines[lines.length - 2] !== sys2.newLine) {\n lines.push(sys2.newLine);\n }\n return lines;\n}\nfunction generateSectionOptionsOutput(sys2, sectionName, options, subCategory, beforeOptionsDescription, afterOptionsDescription) {\n let res = [];\n res.push(createColors(sys2).bold(sectionName) + sys2.newLine + sys2.newLine);\n if (beforeOptionsDescription) {\n res.push(beforeOptionsDescription + sys2.newLine + sys2.newLine);\n }\n if (!subCategory) {\n res = [...res, ...generateGroupOptionOutput(sys2, options)];\n if (afterOptionsDescription) {\n res.push(afterOptionsDescription + sys2.newLine + sys2.newLine);\n }\n return res;\n }\n const categoryMap = /* @__PURE__ */ new Map();\n for (const option of options) {\n if (!option.category) {\n continue;\n }\n const curCategory = getDiagnosticText(option.category);\n const optionsOfCurCategory = categoryMap.get(curCategory) ?? [];\n optionsOfCurCategory.push(option);\n categoryMap.set(curCategory, optionsOfCurCategory);\n }\n categoryMap.forEach((value, key) => {\n res.push(`### ${key}${sys2.newLine}${sys2.newLine}`);\n res = [...res, ...generateGroupOptionOutput(sys2, value)];\n });\n if (afterOptionsDescription) {\n res.push(afterOptionsDescription + sys2.newLine + sys2.newLine);\n }\n return res;\n}\nfunction printEasyHelp(sys2, simpleOptions) {\n const colors = createColors(sys2);\n let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n output.push(colors.bold(getDiagnosticText(Diagnostics.COMMON_COMMANDS)) + sys2.newLine + sys2.newLine);\n example(\"tsc\", Diagnostics.Compiles_the_current_project_tsconfig_json_in_the_working_directory);\n example(\"tsc app.ts util.ts\", Diagnostics.Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options);\n example(\"tsc -b\", Diagnostics.Build_a_composite_project_in_the_working_directory);\n example(\"tsc --init\", Diagnostics.Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory);\n example(\"tsc -p ./path/to/tsconfig.json\", Diagnostics.Compiles_the_TypeScript_project_located_at_the_specified_path);\n example(\"tsc --help --all\", Diagnostics.An_expanded_version_of_this_information_showing_all_possible_compiler_options);\n example([\"tsc --noEmit\", \"tsc --target esnext\"], Diagnostics.Compiles_the_current_project_with_additional_settings);\n const cliCommands = simpleOptions.filter((opt) => opt.isCommandLineOnly || opt.category === Diagnostics.Command_line_Options);\n const configOpts = simpleOptions.filter((opt) => !contains(cliCommands, opt));\n output = [\n ...output,\n ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.COMMAND_LINE_FLAGS),\n cliCommands,\n /*subCategory*/\n false,\n /*beforeOptionsDescription*/\n void 0,\n /*afterOptionsDescription*/\n void 0\n ),\n ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS),\n configOpts,\n /*subCategory*/\n false,\n /*beforeOptionsDescription*/\n void 0,\n formatMessage(Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, \"https://aka.ms/tsc\")\n )\n ];\n for (const line of output) {\n sys2.write(line);\n }\n function example(ex, desc) {\n const examples = typeof ex === \"string\" ? [ex] : ex;\n for (const example2 of examples) {\n output.push(\" \" + colors.blue(example2) + sys2.newLine);\n }\n output.push(\" \" + getDiagnosticText(desc) + sys2.newLine + sys2.newLine);\n }\n}\nfunction printAllHelp(sys2, compilerOptions, buildOptions, watchOptions) {\n let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n output = [...output, ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS),\n compilerOptions,\n /*subCategory*/\n true,\n /*beforeOptionsDescription*/\n void 0,\n formatMessage(Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, \"https://aka.ms/tsc\")\n )];\n output = [...output, ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.WATCH_OPTIONS),\n watchOptions,\n /*subCategory*/\n false,\n getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon)\n )];\n output = [...output, ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.BUILD_OPTIONS),\n filter(buildOptions, (option) => option !== tscBuildOption),\n /*subCategory*/\n false,\n formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, \"https://aka.ms/tsc-composite-builds\")\n )];\n for (const line of output) {\n sys2.write(line);\n }\n}\nfunction printBuildHelp(sys2, buildOptions) {\n let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n output = [...output, ...generateSectionOptionsOutput(\n sys2,\n getDiagnosticText(Diagnostics.BUILD_OPTIONS),\n filter(buildOptions, (option) => option !== tscBuildOption),\n /*subCategory*/\n false,\n formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, \"https://aka.ms/tsc-composite-builds\")\n )];\n for (const line of output) {\n sys2.write(line);\n }\n}\nfunction getHeader(sys2, message) {\n var _a;\n const colors = createColors(sys2);\n const header = [];\n const terminalWidth = ((_a = sys2.getWidthOfTerminal) == null ? void 0 : _a.call(sys2)) ?? 0;\n const tsIconLength = 5;\n const tsIconFirstLine = colors.blueBackground(\"\".padStart(tsIconLength));\n const tsIconSecondLine = colors.blueBackground(colors.brightWhite(\"TS \".padStart(tsIconLength)));\n if (terminalWidth >= message.length + tsIconLength) {\n const rightAlign = terminalWidth > 120 ? 120 : terminalWidth;\n const leftAlign = rightAlign - tsIconLength;\n header.push(message.padEnd(leftAlign) + tsIconFirstLine + sys2.newLine);\n header.push(\"\".padStart(leftAlign) + tsIconSecondLine + sys2.newLine);\n } else {\n header.push(message + sys2.newLine);\n header.push(sys2.newLine);\n }\n return header;\n}\nfunction printHelp(sys2, commandLine) {\n if (!commandLine.options.all) {\n printEasyHelp(sys2, getOptionsForHelp(commandLine));\n } else {\n printAllHelp(sys2, getOptionsForHelp(commandLine), optionsForBuild, optionsForWatch);\n }\n}\nfunction executeCommandLineWorker(sys2, cb, commandLine) {\n let reportDiagnostic = createDiagnosticReporter(sys2);\n let configFileName;\n if (commandLine.options.locale) {\n validateLocaleAndSetLanguage(commandLine.options.locale, sys2, commandLine.errors);\n }\n if (commandLine.errors.length > 0) {\n commandLine.errors.forEach(reportDiagnostic);\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n if (commandLine.options.init) {\n writeConfigFile(sys2, reportDiagnostic, commandLine.options);\n return sys2.exit(0 /* Success */);\n }\n if (commandLine.options.version) {\n printVersion(sys2);\n return sys2.exit(0 /* Success */);\n }\n if (commandLine.options.help || commandLine.options.all) {\n printHelp(sys2, commandLine);\n return sys2.exit(0 /* Success */);\n }\n if (commandLine.options.watch && commandLine.options.listFilesOnly) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"watch\", \"listFilesOnly\"));\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n if (commandLine.options.project) {\n if (commandLine.fileNames.length !== 0) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line));\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n const fileOrDirectory = normalizePath(commandLine.options.project);\n if (!fileOrDirectory || sys2.directoryExists(fileOrDirectory)) {\n configFileName = combinePaths(fileOrDirectory, \"tsconfig.json\");\n if (!sys2.fileExists(configFileName)) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0, commandLine.options.project));\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n } else {\n configFileName = fileOrDirectory;\n if (!sys2.fileExists(configFileName)) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_specified_path_does_not_exist_Colon_0, commandLine.options.project));\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n }\n } else if (commandLine.fileNames.length === 0) {\n const searchPath = normalizePath(sys2.getCurrentDirectory());\n configFileName = findConfigFile(searchPath, (fileName) => sys2.fileExists(fileName));\n }\n if (commandLine.fileNames.length === 0 && !configFileName) {\n if (commandLine.options.showConfig) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0, normalizePath(sys2.getCurrentDirectory())));\n } else {\n printVersion(sys2);\n printHelp(sys2, commandLine);\n }\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n const currentDirectory = sys2.getCurrentDirectory();\n const commandLineOptions = convertToOptionsWithAbsolutePaths(\n commandLine.options,\n (fileName) => getNormalizedAbsolutePath(fileName, currentDirectory)\n );\n if (configFileName) {\n const extendedConfigCache = /* @__PURE__ */ new Map();\n const configParseResult = parseConfigFileWithSystem(configFileName, commandLineOptions, extendedConfigCache, commandLine.watchOptions, sys2, reportDiagnostic);\n if (commandLineOptions.showConfig) {\n if (configParseResult.errors.length !== 0) {\n reportDiagnostic = updateReportDiagnostic(\n sys2,\n reportDiagnostic,\n configParseResult.options\n );\n configParseResult.errors.forEach(reportDiagnostic);\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n sys2.write(JSON.stringify(convertToTSConfig(configParseResult, configFileName, sys2), null, 4) + sys2.newLine);\n return sys2.exit(0 /* Success */);\n }\n reportDiagnostic = updateReportDiagnostic(\n sys2,\n reportDiagnostic,\n configParseResult.options\n );\n if (isWatchSet(configParseResult.options)) {\n if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n return createWatchOfConfigFile(\n sys2,\n cb,\n reportDiagnostic,\n configParseResult,\n commandLineOptions,\n commandLine.watchOptions,\n extendedConfigCache\n );\n } else if (isIncrementalCompilation(configParseResult.options)) {\n performIncrementalCompilation2(\n sys2,\n cb,\n reportDiagnostic,\n configParseResult\n );\n } else {\n performCompilation(\n sys2,\n cb,\n reportDiagnostic,\n configParseResult\n );\n }\n } else {\n if (commandLineOptions.showConfig) {\n sys2.write(JSON.stringify(convertToTSConfig(commandLine, combinePaths(currentDirectory, \"tsconfig.json\"), sys2), null, 4) + sys2.newLine);\n return sys2.exit(0 /* Success */);\n }\n reportDiagnostic = updateReportDiagnostic(\n sys2,\n reportDiagnostic,\n commandLineOptions\n );\n if (isWatchSet(commandLineOptions)) {\n if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n return createWatchOfFilesAndCompilerOptions(\n sys2,\n cb,\n reportDiagnostic,\n commandLine.fileNames,\n commandLineOptions,\n commandLine.watchOptions\n );\n } else if (isIncrementalCompilation(commandLineOptions)) {\n performIncrementalCompilation2(\n sys2,\n cb,\n reportDiagnostic,\n { ...commandLine, options: commandLineOptions }\n );\n } else {\n performCompilation(\n sys2,\n cb,\n reportDiagnostic,\n { ...commandLine, options: commandLineOptions }\n );\n }\n }\n}\nfunction isBuildCommand(commandLineArgs) {\n if (commandLineArgs.length > 0 && commandLineArgs[0].charCodeAt(0) === 45 /* minus */) {\n const firstOption = commandLineArgs[0].slice(commandLineArgs[0].charCodeAt(1) === 45 /* minus */ ? 2 : 1).toLowerCase();\n return firstOption === tscBuildOption.name || firstOption === tscBuildOption.shortName;\n }\n return false;\n}\nfunction executeCommandLine(system, cb, commandLineArgs) {\n if (isBuildCommand(commandLineArgs)) {\n const { buildOptions, watchOptions, projects, errors } = parseBuildCommand(commandLineArgs);\n if (buildOptions.generateCpuProfile && system.enableCPUProfiler) {\n system.enableCPUProfiler(buildOptions.generateCpuProfile, () => performBuild(\n system,\n cb,\n buildOptions,\n watchOptions,\n projects,\n errors\n ));\n } else {\n return performBuild(\n system,\n cb,\n buildOptions,\n watchOptions,\n projects,\n errors\n );\n }\n }\n const commandLine = parseCommandLine(commandLineArgs, (path) => system.readFile(path));\n if (commandLine.options.generateCpuProfile && system.enableCPUProfiler) {\n system.enableCPUProfiler(commandLine.options.generateCpuProfile, () => executeCommandLineWorker(\n system,\n cb,\n commandLine\n ));\n } else {\n return executeCommandLineWorker(system, cb, commandLine);\n }\n}\nfunction reportWatchModeWithoutSysSupport(sys2, reportDiagnostic) {\n if (!sys2.watchFile || !sys2.watchDirectory) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, \"--watch\"));\n sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n return true;\n }\n return false;\n}\nvar defaultJSDocParsingMode = 2 /* ParseForTypeErrors */;\nfunction performBuild(sys2, cb, buildOptions, watchOptions, projects, errors) {\n const reportDiagnostic = updateReportDiagnostic(\n sys2,\n createDiagnosticReporter(sys2),\n buildOptions\n );\n if (buildOptions.locale) {\n validateLocaleAndSetLanguage(buildOptions.locale, sys2, errors);\n }\n if (errors.length > 0) {\n errors.forEach(reportDiagnostic);\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n if (buildOptions.help) {\n printVersion(sys2);\n printBuildHelp(sys2, buildOpts);\n return sys2.exit(0 /* Success */);\n }\n if (projects.length === 0) {\n printVersion(sys2);\n printBuildHelp(sys2, buildOpts);\n return sys2.exit(0 /* Success */);\n }\n if (!sys2.getModifiedTime || !sys2.setModifiedTime || buildOptions.clean && !sys2.deleteFile) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, \"--build\"));\n return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n }\n if (buildOptions.watch) {\n if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n const buildHost2 = createSolutionBuilderWithWatchHost(\n sys2,\n /*createProgram*/\n void 0,\n reportDiagnostic,\n createBuilderStatusReporter(sys2, shouldBePretty(sys2, buildOptions)),\n createWatchStatusReporter2(sys2, buildOptions)\n );\n buildHost2.jsDocParsingMode = defaultJSDocParsingMode;\n const solutionPerformance2 = enableSolutionPerformance(sys2, buildOptions);\n updateSolutionBuilderHost(sys2, cb, buildHost2, solutionPerformance2);\n const onWatchStatusChange = buildHost2.onWatchStatusChange;\n let reportBuildStatistics = false;\n buildHost2.onWatchStatusChange = (d, newLine, options, errorCount) => {\n onWatchStatusChange == null ? void 0 : onWatchStatusChange(d, newLine, options, errorCount);\n if (reportBuildStatistics && (d.code === Diagnostics.Found_0_errors_Watching_for_file_changes.code || d.code === Diagnostics.Found_1_error_Watching_for_file_changes.code)) {\n reportSolutionBuilderTimes(builder2, solutionPerformance2);\n }\n };\n const builder2 = createSolutionBuilderWithWatch(buildHost2, projects, buildOptions, watchOptions);\n builder2.build();\n reportSolutionBuilderTimes(builder2, solutionPerformance2);\n reportBuildStatistics = true;\n return builder2;\n }\n const buildHost = createSolutionBuilderHost(\n sys2,\n /*createProgram*/\n void 0,\n reportDiagnostic,\n createBuilderStatusReporter(sys2, shouldBePretty(sys2, buildOptions)),\n createReportErrorSummary(sys2, buildOptions)\n );\n buildHost.jsDocParsingMode = defaultJSDocParsingMode;\n const solutionPerformance = enableSolutionPerformance(sys2, buildOptions);\n updateSolutionBuilderHost(sys2, cb, buildHost, solutionPerformance);\n const builder = createSolutionBuilder(buildHost, projects, buildOptions);\n const exitStatus = buildOptions.clean ? builder.clean() : builder.build();\n reportSolutionBuilderTimes(builder, solutionPerformance);\n dumpTracingLegend();\n return sys2.exit(exitStatus);\n}\nfunction createReportErrorSummary(sys2, options) {\n return shouldBePretty(sys2, options) ? (errorCount, filesInError) => sys2.write(getErrorSummaryText(errorCount, filesInError, sys2.newLine, sys2)) : void 0;\n}\nfunction performCompilation(sys2, cb, reportDiagnostic, config) {\n const { fileNames, options, projectReferences } = config;\n const host = createCompilerHostWorker(\n options,\n /*setParentNodes*/\n void 0,\n sys2\n );\n host.jsDocParsingMode = defaultJSDocParsingMode;\n const currentDirectory = host.getCurrentDirectory();\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n changeCompilerHostLikeToUseCache(host, (fileName) => toPath(fileName, currentDirectory, getCanonicalFileName));\n enableStatisticsAndTracing(\n sys2,\n options,\n /*isBuildMode*/\n false\n );\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: getConfigFileParsingDiagnostics(config)\n };\n const program = createProgram(programOptions);\n const exitStatus = emitFilesAndReportErrorsAndGetExitStatus(\n program,\n reportDiagnostic,\n (s) => sys2.write(s + sys2.newLine),\n createReportErrorSummary(sys2, options)\n );\n reportStatistics(\n sys2,\n program,\n /*solutionPerformance*/\n void 0\n );\n cb(program);\n return sys2.exit(exitStatus);\n}\nfunction performIncrementalCompilation2(sys2, cb, reportDiagnostic, config) {\n const { options, fileNames, projectReferences } = config;\n enableStatisticsAndTracing(\n sys2,\n options,\n /*isBuildMode*/\n false\n );\n const host = createIncrementalCompilerHost(options, sys2);\n host.jsDocParsingMode = defaultJSDocParsingMode;\n const exitStatus = performIncrementalCompilation({\n host,\n system: sys2,\n rootNames: fileNames,\n options,\n configFileParsingDiagnostics: getConfigFileParsingDiagnostics(config),\n projectReferences,\n reportDiagnostic,\n reportErrorSummary: createReportErrorSummary(sys2, options),\n afterProgramEmitAndDiagnostics: (builderProgram) => {\n reportStatistics(\n sys2,\n builderProgram.getProgram(),\n /*solutionPerformance*/\n void 0\n );\n cb(builderProgram);\n }\n });\n return sys2.exit(exitStatus);\n}\nfunction updateSolutionBuilderHost(sys2, cb, buildHost, solutionPerformance) {\n updateCreateProgram(\n sys2,\n buildHost,\n /*isBuildMode*/\n true\n );\n buildHost.afterProgramEmitAndDiagnostics = (program) => {\n reportStatistics(sys2, program.getProgram(), solutionPerformance);\n cb(program);\n };\n}\nfunction updateCreateProgram(sys2, host, isBuildMode) {\n const compileUsingBuilder = host.createProgram;\n host.createProgram = (rootNames, options, host2, oldProgram, configFileParsingDiagnostics, projectReferences) => {\n Debug.assert(rootNames !== void 0 || options === void 0 && !!oldProgram);\n if (options !== void 0) {\n enableStatisticsAndTracing(sys2, options, isBuildMode);\n }\n return compileUsingBuilder(rootNames, options, host2, oldProgram, configFileParsingDiagnostics, projectReferences);\n };\n}\nfunction updateWatchCompilationHost(sys2, cb, watchCompilerHost) {\n watchCompilerHost.jsDocParsingMode = defaultJSDocParsingMode;\n updateCreateProgram(\n sys2,\n watchCompilerHost,\n /*isBuildMode*/\n false\n );\n const emitFilesUsingBuilder = watchCompilerHost.afterProgramCreate;\n watchCompilerHost.afterProgramCreate = (builderProgram) => {\n emitFilesUsingBuilder(builderProgram);\n reportStatistics(\n sys2,\n builderProgram.getProgram(),\n /*solutionPerformance*/\n void 0\n );\n cb(builderProgram);\n };\n}\nfunction createWatchStatusReporter2(sys2, options) {\n return createWatchStatusReporter(sys2, shouldBePretty(sys2, options));\n}\nfunction createWatchOfConfigFile(system, cb, reportDiagnostic, configParseResult, optionsToExtend, watchOptionsToExtend, extendedConfigCache) {\n const watchCompilerHost = createWatchCompilerHostOfConfigFile({\n configFileName: configParseResult.options.configFilePath,\n optionsToExtend,\n watchOptionsToExtend,\n system,\n reportDiagnostic,\n reportWatchStatus: createWatchStatusReporter2(system, configParseResult.options)\n });\n updateWatchCompilationHost(system, cb, watchCompilerHost);\n watchCompilerHost.configFileParsingResult = configParseResult;\n watchCompilerHost.extendedConfigCache = extendedConfigCache;\n return createWatchProgram(watchCompilerHost);\n}\nfunction createWatchOfFilesAndCompilerOptions(system, cb, reportDiagnostic, rootFiles, options, watchOptions) {\n const watchCompilerHost = createWatchCompilerHostOfFilesAndCompilerOptions({\n rootFiles,\n options,\n watchOptions,\n system,\n reportDiagnostic,\n reportWatchStatus: createWatchStatusReporter2(system, options)\n });\n updateWatchCompilationHost(system, cb, watchCompilerHost);\n return createWatchProgram(watchCompilerHost);\n}\nfunction enableSolutionPerformance(system, options) {\n if (system === sys && options.extendedDiagnostics) {\n enable();\n return createSolutionPerfomrance();\n }\n}\nfunction createSolutionPerfomrance() {\n let statistics;\n return {\n addAggregateStatistic,\n forEachAggregateStatistics: forEachAggreateStatistics,\n clear: clear2\n };\n function addAggregateStatistic(s) {\n const existing = statistics == null ? void 0 : statistics.get(s.name);\n if (existing) {\n if (existing.type === 2 /* memory */) existing.value = Math.max(existing.value, s.value);\n else existing.value += s.value;\n } else {\n (statistics ?? (statistics = /* @__PURE__ */ new Map())).set(s.name, s);\n }\n }\n function forEachAggreateStatistics(cb) {\n statistics == null ? void 0 : statistics.forEach(cb);\n }\n function clear2() {\n statistics = void 0;\n }\n}\nfunction reportSolutionBuilderTimes(builder, solutionPerformance) {\n if (!solutionPerformance) return;\n if (!isEnabled()) {\n sys.write(Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + \"\\n\");\n return;\n }\n const statistics = [];\n statistics.push(\n { name: \"Projects in scope\", value: getBuildOrderFromAnyBuildOrder(builder.getBuildOrder()).length, type: 1 /* count */ }\n );\n reportSolutionBuilderCountStatistic(\"SolutionBuilder::Projects built\");\n reportSolutionBuilderCountStatistic(\"SolutionBuilder::Timestamps only updates\");\n reportSolutionBuilderCountStatistic(\"SolutionBuilder::Bundles updated\");\n solutionPerformance.forEachAggregateStatistics((s) => {\n s.name = `Aggregate ${s.name}`;\n statistics.push(s);\n });\n forEachMeasure((name, duration) => {\n if (isSolutionMarkOrMeasure(name)) statistics.push({ name: `${getNameFromSolutionBuilderMarkOrMeasure(name)} time`, value: duration, type: 0 /* time */ });\n });\n disable();\n enable();\n solutionPerformance.clear();\n reportAllStatistics(sys, statistics);\n function reportSolutionBuilderCountStatistic(name) {\n const value = getCount(name);\n if (value) {\n statistics.push({ name: getNameFromSolutionBuilderMarkOrMeasure(name), value, type: 1 /* count */ });\n }\n }\n function getNameFromSolutionBuilderMarkOrMeasure(name) {\n return name.replace(\"SolutionBuilder::\", \"\");\n }\n}\nfunction canReportDiagnostics(system, compilerOptions) {\n return system === sys && (compilerOptions.diagnostics || compilerOptions.extendedDiagnostics);\n}\nfunction canTrace(system, compilerOptions) {\n return system === sys && compilerOptions.generateTrace;\n}\nfunction enableStatisticsAndTracing(system, compilerOptions, isBuildMode) {\n if (canReportDiagnostics(system, compilerOptions)) {\n enable(system);\n }\n if (canTrace(system, compilerOptions)) {\n startTracing(isBuildMode ? \"build\" : \"project\", compilerOptions.generateTrace, compilerOptions.configFilePath);\n }\n}\nfunction isSolutionMarkOrMeasure(name) {\n return startsWith(name, \"SolutionBuilder::\");\n}\nfunction reportStatistics(sys2, program, solutionPerformance) {\n var _a;\n const compilerOptions = program.getCompilerOptions();\n if (canTrace(sys2, compilerOptions)) {\n (_a = tracing) == null ? void 0 : _a.stopTracing();\n }\n let statistics;\n if (canReportDiagnostics(sys2, compilerOptions)) {\n statistics = [];\n const memoryUsed = sys2.getMemoryUsage ? sys2.getMemoryUsage() : -1;\n reportCountStatistic(\"Files\", program.getSourceFiles().length);\n const lineCounts = countLines(program);\n if (compilerOptions.extendedDiagnostics) {\n for (const [key, value] of lineCounts.entries()) {\n reportCountStatistic(\"Lines of \" + key, value);\n }\n } else {\n reportCountStatistic(\"Lines\", reduceLeftIterator(lineCounts.values(), (sum, count) => sum + count, 0));\n }\n reportCountStatistic(\"Identifiers\", program.getIdentifierCount());\n reportCountStatistic(\"Symbols\", program.getSymbolCount());\n reportCountStatistic(\"Types\", program.getTypeCount());\n reportCountStatistic(\"Instantiations\", program.getInstantiationCount());\n if (memoryUsed >= 0) {\n reportStatisticalValue(\n { name: \"Memory used\", value: memoryUsed, type: 2 /* memory */ },\n /*aggregate*/\n true\n );\n }\n const isPerformanceEnabled = isEnabled();\n const programTime = isPerformanceEnabled ? getDuration(\"Program\") : 0;\n const bindTime = isPerformanceEnabled ? getDuration(\"Bind\") : 0;\n const checkTime = isPerformanceEnabled ? getDuration(\"Check\") : 0;\n const emitTime = isPerformanceEnabled ? getDuration(\"Emit\") : 0;\n if (compilerOptions.extendedDiagnostics) {\n const caches = program.getRelationCacheSizes();\n reportCountStatistic(\"Assignability cache size\", caches.assignable);\n reportCountStatistic(\"Identity cache size\", caches.identity);\n reportCountStatistic(\"Subtype cache size\", caches.subtype);\n reportCountStatistic(\"Strict subtype cache size\", caches.strictSubtype);\n if (isPerformanceEnabled) {\n forEachMeasure((name, duration) => {\n if (!isSolutionMarkOrMeasure(name)) reportTimeStatistic(\n `${name} time`,\n duration,\n /*aggregate*/\n true\n );\n });\n }\n } else if (isPerformanceEnabled) {\n reportTimeStatistic(\n \"I/O read\",\n getDuration(\"I/O Read\"),\n /*aggregate*/\n true\n );\n reportTimeStatistic(\n \"I/O write\",\n getDuration(\"I/O Write\"),\n /*aggregate*/\n true\n );\n reportTimeStatistic(\n \"Parse time\",\n programTime,\n /*aggregate*/\n true\n );\n reportTimeStatistic(\n \"Bind time\",\n bindTime,\n /*aggregate*/\n true\n );\n reportTimeStatistic(\n \"Check time\",\n checkTime,\n /*aggregate*/\n true\n );\n reportTimeStatistic(\n \"Emit time\",\n emitTime,\n /*aggregate*/\n true\n );\n }\n if (isPerformanceEnabled) {\n reportTimeStatistic(\n \"Total time\",\n programTime + bindTime + checkTime + emitTime,\n /*aggregate*/\n false\n );\n }\n reportAllStatistics(sys2, statistics);\n if (!isPerformanceEnabled) {\n sys2.write(Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + \"\\n\");\n } else {\n if (solutionPerformance) {\n forEachMeasure((name) => {\n if (!isSolutionMarkOrMeasure(name)) clearMeasures(name);\n });\n forEachMark((name) => {\n if (!isSolutionMarkOrMeasure(name)) clearMarks(name);\n });\n } else {\n disable();\n }\n }\n }\n function reportStatisticalValue(s, aggregate) {\n statistics.push(s);\n if (aggregate) solutionPerformance == null ? void 0 : solutionPerformance.addAggregateStatistic(s);\n }\n function reportCountStatistic(name, count) {\n reportStatisticalValue(\n { name, value: count, type: 1 /* count */ },\n /*aggregate*/\n true\n );\n }\n function reportTimeStatistic(name, time, aggregate) {\n reportStatisticalValue({ name, value: time, type: 0 /* time */ }, aggregate);\n }\n}\nfunction reportAllStatistics(sys2, statistics) {\n let nameSize = 0;\n let valueSize = 0;\n for (const s of statistics) {\n if (s.name.length > nameSize) {\n nameSize = s.name.length;\n }\n const value = statisticValue(s);\n if (value.length > valueSize) {\n valueSize = value.length;\n }\n }\n for (const s of statistics) {\n sys2.write(`${s.name}:`.padEnd(nameSize + 2) + statisticValue(s).toString().padStart(valueSize) + sys2.newLine);\n }\n}\nfunction statisticValue(s) {\n switch (s.type) {\n case 1 /* count */:\n return \"\" + s.value;\n case 0 /* time */:\n return (s.value / 1e3).toFixed(2) + \"s\";\n case 2 /* memory */:\n return Math.round(s.value / 1e3) + \"K\";\n default:\n Debug.assertNever(s.type);\n }\n}\nfunction writeConfigFile(sys2, reportDiagnostic, options) {\n const currentDirectory = sys2.getCurrentDirectory();\n const file = normalizePath(combinePaths(currentDirectory, \"tsconfig.json\"));\n if (sys2.fileExists(file)) {\n reportDiagnostic(createCompilerDiagnostic(Diagnostics.A_tsconfig_json_file_is_already_defined_at_Colon_0, file));\n } else {\n sys2.writeFile(file, generateTSConfig(options, sys2.newLine));\n const output = [sys2.newLine, ...getHeader(sys2, \"Created a new tsconfig.json\")];\n output.push(`You can learn more at https://aka.ms/tsconfig` + sys2.newLine);\n for (const line of output) {\n sys2.write(line);\n }\n }\n return;\n}\n\n// src/compiler/expressionToTypeNode.ts\nfunction syntacticResult(type, reportFallback = true) {\n return { type, reportFallback };\n}\nvar notImplemented2 = syntacticResult(\n /*type*/\n void 0,\n /*reportFallback*/\n false\n);\nvar alreadyReported = syntacticResult(\n /*type*/\n void 0,\n /*reportFallback*/\n false\n);\nvar failed = syntacticResult(\n /*type*/\n void 0,\n /*reportFallback*/\n true\n);\nfunction createSyntacticTypeNodeBuilder(options, resolver) {\n const strictNullChecks = getStrictOptionValue(options, \"strictNullChecks\");\n return {\n serializeTypeOfDeclaration,\n serializeReturnTypeForSignature,\n serializeTypeOfExpression,\n serializeTypeOfAccessor,\n tryReuseExistingTypeNode(context, existing) {\n if (!resolver.canReuseTypeNode(context, existing)) {\n return void 0;\n }\n return tryReuseExistingTypeNode(context, existing);\n }\n };\n function reuseNode(context, node, range = node) {\n return node === void 0 ? void 0 : resolver.markNodeReuse(context, node.flags & 16 /* Synthesized */ ? node : factory.cloneNode(node), range ?? node);\n }\n function tryReuseExistingTypeNode(context, existing) {\n const { finalizeBoundary, startRecoveryScope, hadError, markError } = resolver.createRecoveryBoundary(context);\n const transformed = visitNode(existing, visitExistingNodeTreeSymbols, isTypeNode);\n if (!finalizeBoundary()) {\n return void 0;\n }\n context.approximateLength += existing.end - existing.pos;\n return transformed;\n function visitExistingNodeTreeSymbols(node) {\n if (hadError()) return node;\n const recover = startRecoveryScope();\n const onExitNewScope = isNewScopeNode(node) ? resolver.enterNewScope(context, node) : void 0;\n const result = visitExistingNodeTreeSymbolsWorker(node);\n onExitNewScope == null ? void 0 : onExitNewScope();\n if (hadError()) {\n if (isTypeNode(node) && !isTypePredicateNode(node)) {\n recover();\n return resolver.serializeExistingTypeNode(context, node);\n }\n return node;\n }\n return result ? resolver.markNodeReuse(context, result, node) : void 0;\n }\n function tryVisitSimpleTypeNode(node) {\n const innerNode = skipTypeParentheses(node);\n switch (innerNode.kind) {\n case 184 /* TypeReference */:\n return tryVisitTypeReference(innerNode);\n case 187 /* TypeQuery */:\n return tryVisitTypeQuery(innerNode);\n case 200 /* IndexedAccessType */:\n return tryVisitIndexedAccess(innerNode);\n case 199 /* TypeOperator */:\n const typeOperatorNode = innerNode;\n if (typeOperatorNode.operator === 143 /* KeyOfKeyword */) {\n return tryVisitKeyOf(typeOperatorNode);\n }\n }\n return visitNode(node, visitExistingNodeTreeSymbols, isTypeNode);\n }\n function tryVisitIndexedAccess(node) {\n const resultObjectType = tryVisitSimpleTypeNode(node.objectType);\n if (resultObjectType === void 0) {\n return void 0;\n }\n return factory.updateIndexedAccessTypeNode(node, resultObjectType, visitNode(node.indexType, visitExistingNodeTreeSymbols, isTypeNode));\n }\n function tryVisitKeyOf(node) {\n Debug.assertEqual(node.operator, 143 /* KeyOfKeyword */);\n const type = tryVisitSimpleTypeNode(node.type);\n if (type === void 0) {\n return void 0;\n }\n return factory.updateTypeOperatorNode(node, type);\n }\n function tryVisitTypeQuery(node) {\n const { introducesError, node: exprName } = resolver.trackExistingEntityName(context, node.exprName);\n if (!introducesError) {\n return factory.updateTypeQueryNode(\n node,\n exprName,\n visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode)\n );\n }\n const serializedName = resolver.serializeTypeName(\n context,\n node.exprName,\n /*isTypeOf*/\n true\n );\n if (serializedName) {\n return resolver.markNodeReuse(context, serializedName, node.exprName);\n }\n }\n function tryVisitTypeReference(node) {\n if (resolver.canReuseTypeNode(context, node)) {\n const { introducesError, node: newName } = resolver.trackExistingEntityName(context, node.typeName);\n const typeArguments = visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode);\n if (!introducesError) {\n const updated = factory.updateTypeReferenceNode(\n node,\n newName,\n typeArguments\n );\n return resolver.markNodeReuse(context, updated, node);\n } else {\n const serializedName = resolver.serializeTypeName(\n context,\n node.typeName,\n /*isTypeOf*/\n false,\n typeArguments\n );\n if (serializedName) {\n return resolver.markNodeReuse(context, serializedName, node.typeName);\n }\n }\n }\n }\n function visitExistingNodeTreeSymbolsWorker(node) {\n var _a;\n if (isJSDocTypeExpression(node)) {\n return visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode);\n }\n if (isJSDocAllType(node) || node.kind === 320 /* JSDocNamepathType */) {\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n if (isJSDocUnknownType(node)) {\n return factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n }\n if (isJSDocNullableType(node)) {\n return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createLiteralTypeNode(factory.createNull())]);\n }\n if (isJSDocOptionalType(node)) {\n return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n if (isJSDocNonNullableType(node)) {\n return visitNode(node.type, visitExistingNodeTreeSymbols);\n }\n if (isJSDocVariadicType(node)) {\n return factory.createArrayTypeNode(visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));\n }\n if (isJSDocTypeLiteral(node)) {\n return factory.createTypeLiteralNode(map(node.jsDocPropertyTags, (t) => {\n const name = visitNode(isIdentifier(t.name) ? t.name : t.name.right, visitExistingNodeTreeSymbols, isIdentifier);\n const overrideTypeNode = resolver.getJsDocPropertyOverride(context, node, t);\n return factory.createPropertySignature(\n /*modifiers*/\n void 0,\n name,\n t.isBracketed || t.typeExpression && isJSDocOptionalType(t.typeExpression.type) ? factory.createToken(58 /* QuestionToken */) : void 0,\n overrideTypeNode || t.typeExpression && visitNode(t.typeExpression.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n );\n }));\n }\n if (isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"\") {\n return setOriginalNode(factory.createKeywordTypeNode(133 /* AnyKeyword */), node);\n }\n if ((isExpressionWithTypeArguments(node) || isTypeReferenceNode(node)) && isJSDocIndexSignature(node)) {\n return factory.createTypeLiteralNode([factory.createIndexSignature(\n /*modifiers*/\n void 0,\n [factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"x\",\n /*questionToken*/\n void 0,\n visitNode(node.typeArguments[0], visitExistingNodeTreeSymbols, isTypeNode)\n )],\n visitNode(node.typeArguments[1], visitExistingNodeTreeSymbols, isTypeNode)\n )]);\n }\n if (isJSDocFunctionType(node)) {\n if (isJSDocConstructSignature(node)) {\n let newTypeNode;\n return factory.createConstructorTypeNode(\n /*modifiers*/\n void 0,\n visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration),\n mapDefined(node.parameters, (p, i) => p.name && isIdentifier(p.name) && p.name.escapedText === \"new\" ? (newTypeNode = p.type, void 0) : factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n getEffectiveDotDotDotForParameter(p),\n resolver.markNodeReuse(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),\n factory.cloneNode(p.questionToken),\n visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),\n /*initializer*/\n void 0\n )),\n visitNode(newTypeNode || node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n );\n } else {\n return factory.createFunctionTypeNode(\n visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration),\n map(node.parameters, (p, i) => factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n getEffectiveDotDotDotForParameter(p),\n resolver.markNodeReuse(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),\n factory.cloneNode(p.questionToken),\n visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),\n /*initializer*/\n void 0\n )),\n visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n );\n }\n }\n if (isThisTypeNode(node)) {\n if (resolver.canReuseTypeNode(context, node)) {\n return node;\n }\n markError();\n return node;\n }\n if (isTypeParameterDeclaration(node)) {\n const { node: newName } = resolver.trackExistingEntityName(context, node.name);\n return factory.updateTypeParameterDeclaration(\n node,\n visitNodes2(node.modifiers, visitExistingNodeTreeSymbols, isModifier),\n // resolver.markNodeReuse(context, typeParameterToName(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(node)), context), node),\n newName,\n visitNode(node.constraint, visitExistingNodeTreeSymbols, isTypeNode),\n visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode)\n );\n }\n if (isIndexedAccessTypeNode(node)) {\n const result = tryVisitIndexedAccess(node);\n if (!result) {\n markError();\n return node;\n }\n return result;\n }\n if (isTypeReferenceNode(node)) {\n const result = tryVisitTypeReference(node);\n if (result) {\n return result;\n }\n markError();\n return node;\n }\n if (isLiteralImportTypeNode(node)) {\n if (((_a = node.attributes) == null ? void 0 : _a.token) === 132 /* AssertKeyword */) {\n markError();\n return node;\n }\n if (!resolver.canReuseTypeNode(context, node)) {\n return resolver.serializeExistingTypeNode(context, node);\n }\n const specifier = rewriteModuleSpecifier2(node, node.argument.literal);\n const literal = specifier === node.argument.literal ? reuseNode(context, node.argument.literal) : specifier;\n return factory.updateImportTypeNode(\n node,\n literal === node.argument.literal ? reuseNode(context, node.argument) : factory.createLiteralTypeNode(literal),\n visitNode(node.attributes, visitExistingNodeTreeSymbols, isImportAttributes),\n visitNode(node.qualifier, visitExistingNodeTreeSymbols, isEntityName),\n visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),\n node.isTypeOf\n );\n }\n if (isNamedDeclaration(node) && node.name.kind === 168 /* ComputedPropertyName */ && !resolver.hasLateBindableName(node)) {\n if (!hasDynamicName(node)) {\n return visitEachChild2(node, visitExistingNodeTreeSymbols);\n }\n if (resolver.shouldRemoveDeclaration(context, node)) {\n return void 0;\n }\n }\n if (isFunctionLike(node) && !node.type || isPropertyDeclaration(node) && !node.type && !node.initializer || isPropertySignature(node) && !node.type && !node.initializer || isParameter(node) && !node.type && !node.initializer) {\n let visited = visitEachChild2(node, visitExistingNodeTreeSymbols);\n if (visited === node) {\n visited = resolver.markNodeReuse(context, factory.cloneNode(node), node);\n }\n visited.type = factory.createKeywordTypeNode(133 /* AnyKeyword */);\n if (isParameter(node)) {\n visited.modifiers = void 0;\n }\n return visited;\n }\n if (isTypeQueryNode(node)) {\n const result = tryVisitTypeQuery(node);\n if (!result) {\n markError();\n return node;\n }\n return result;\n }\n if (isComputedPropertyName(node) && isEntityNameExpression(node.expression)) {\n const { node: result, introducesError } = resolver.trackExistingEntityName(context, node.expression);\n if (!introducesError) {\n return factory.updateComputedPropertyName(node, result);\n } else {\n const computedPropertyNameType = resolver.serializeTypeOfExpression(context, node.expression);\n let literal;\n if (isLiteralTypeNode(computedPropertyNameType)) {\n literal = computedPropertyNameType.literal;\n } else {\n const evaluated = resolver.evaluateEntityNameExpression(node.expression);\n const literalNode = typeof evaluated.value === \"string\" ? factory.createStringLiteral(\n evaluated.value,\n /*isSingleQuote*/\n void 0\n ) : typeof evaluated.value === \"number\" ? factory.createNumericLiteral(\n evaluated.value,\n /*numericLiteralFlags*/\n 0\n ) : void 0;\n if (!literalNode) {\n if (isImportTypeNode(computedPropertyNameType)) {\n resolver.trackComputedName(context, node.expression);\n }\n return node;\n }\n literal = literalNode;\n }\n if (literal.kind === 11 /* StringLiteral */ && isIdentifierText(literal.text, getEmitScriptTarget(options))) {\n return factory.createIdentifier(literal.text);\n }\n if (literal.kind === 9 /* NumericLiteral */ && !literal.text.startsWith(\"-\")) {\n return literal;\n }\n return factory.updateComputedPropertyName(node, literal);\n }\n }\n if (isTypePredicateNode(node)) {\n let parameterName;\n if (isIdentifier(node.parameterName)) {\n const { node: result, introducesError } = resolver.trackExistingEntityName(context, node.parameterName);\n if (introducesError) markError();\n parameterName = result;\n } else {\n parameterName = factory.cloneNode(node.parameterName);\n }\n return factory.updateTypePredicateNode(node, factory.cloneNode(node.assertsModifier), parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));\n }\n if (isTupleTypeNode(node) || isTypeLiteralNode(node) || isMappedTypeNode(node)) {\n const visited = visitEachChild2(node, visitExistingNodeTreeSymbols);\n const clone2 = resolver.markNodeReuse(context, visited === node ? factory.cloneNode(node) : visited, node);\n const flags = getEmitFlags(clone2);\n setEmitFlags(clone2, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));\n return clone2;\n }\n if (isStringLiteral(node) && !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */) && !node.singleQuote) {\n const clone2 = factory.cloneNode(node);\n clone2.singleQuote = true;\n return clone2;\n }\n if (isConditionalTypeNode(node)) {\n const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);\n const disposeScope = resolver.enterNewScope(context, node);\n const extendType = visitNode(node.extendsType, visitExistingNodeTreeSymbols, isTypeNode);\n const trueType = visitNode(node.trueType, visitExistingNodeTreeSymbols, isTypeNode);\n disposeScope();\n const falseType = visitNode(node.falseType, visitExistingNodeTreeSymbols, isTypeNode);\n return factory.updateConditionalTypeNode(\n node,\n checkType,\n extendType,\n trueType,\n falseType\n );\n }\n if (isTypeOperatorNode(node)) {\n if (node.operator === 158 /* UniqueKeyword */ && node.type.kind === 155 /* SymbolKeyword */) {\n if (!resolver.canReuseTypeNode(context, node)) {\n markError();\n return node;\n }\n } else if (node.operator === 143 /* KeyOfKeyword */) {\n const result = tryVisitKeyOf(node);\n if (!result) {\n markError();\n return node;\n }\n return result;\n }\n }\n return visitEachChild2(node, visitExistingNodeTreeSymbols);\n function visitEachChild2(node2, visitor) {\n const nonlocalNode = !context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(node2);\n return visitEachChild(\n node2,\n visitor,\n /*context*/\n void 0,\n nonlocalNode ? visitNodesWithoutCopyingPositions : void 0\n );\n }\n function visitNodesWithoutCopyingPositions(nodes, visitor, test, start, count) {\n let result = visitNodes2(nodes, visitor, test, start, count);\n if (result) {\n if (result.pos !== -1 || result.end !== -1) {\n if (result === nodes) {\n result = factory.createNodeArray(nodes.slice(), nodes.hasTrailingComma);\n }\n setTextRangePosEnd(result, -1, -1);\n }\n }\n return result;\n }\n function getEffectiveDotDotDotForParameter(p) {\n return p.dotDotDotToken || (p.type && isJSDocVariadicType(p.type) ? factory.createToken(26 /* DotDotDotToken */) : void 0);\n }\n function getNameForJSDocFunctionParameter(p, index) {\n return p.name && isIdentifier(p.name) && p.name.escapedText === \"this\" ? \"this\" : getEffectiveDotDotDotForParameter(p) ? `args` : `arg${index}`;\n }\n function rewriteModuleSpecifier2(parent2, lit) {\n const newName = resolver.getModuleSpecifierOverride(context, parent2, lit);\n return newName ? setOriginalNode(factory.createStringLiteral(newName), lit) : lit;\n }\n }\n }\n function serializeExistingTypeNode(typeNode, context, addUndefined) {\n if (!typeNode) return void 0;\n let result;\n if ((!addUndefined || canAddUndefined(typeNode)) && resolver.canReuseTypeNode(context, typeNode)) {\n result = tryReuseExistingTypeNode(context, typeNode);\n if (result !== void 0) {\n result = addUndefinedIfNeeded(\n result,\n addUndefined,\n /*owner*/\n void 0,\n context\n );\n }\n }\n return result;\n }\n function serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, requiresAddingUndefined, useFallback = requiresAddingUndefined !== void 0) {\n if (!declaredType) return void 0;\n if (!resolver.canReuseTypeNodeAnnotation(context, node, declaredType, symbol, requiresAddingUndefined)) {\n if (!requiresAddingUndefined || !resolver.canReuseTypeNodeAnnotation(\n context,\n node,\n declaredType,\n symbol,\n /*requiresAddingUndefined*/\n false\n )) {\n return void 0;\n }\n }\n let result;\n if (!requiresAddingUndefined || canAddUndefined(declaredType)) {\n result = serializeExistingTypeNode(declaredType, context, requiresAddingUndefined);\n }\n if (result !== void 0 || !useFallback) {\n return result;\n }\n context.tracker.reportInferenceFallback(node);\n return resolver.serializeExistingTypeNode(context, declaredType, requiresAddingUndefined) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function serializeExistingTypeNodeWithFallback(typeNode, context, addUndefined, targetNode) {\n if (!typeNode) return void 0;\n const result = serializeExistingTypeNode(typeNode, context, addUndefined);\n if (result !== void 0) {\n return result;\n }\n context.tracker.reportInferenceFallback(targetNode ?? typeNode);\n return resolver.serializeExistingTypeNode(context, typeNode, addUndefined) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function serializeTypeOfAccessor(accessor, symbol, context) {\n return typeFromAccessor(accessor, symbol, context) ?? inferAccessorType(accessor, resolver.getAllAccessorDeclarations(accessor), context, symbol);\n }\n function serializeTypeOfExpression(expr, context, addUndefined, preserveLiterals) {\n const result = typeFromExpression(\n expr,\n context,\n /*isConstContext*/\n false,\n addUndefined,\n preserveLiterals\n );\n return result.type !== void 0 ? result.type : inferExpressionType(expr, context, result.reportFallback);\n }\n function serializeTypeOfDeclaration(node, symbol, context) {\n switch (node.kind) {\n case 170 /* Parameter */:\n case 342 /* JSDocParameterTag */:\n return typeFromParameter(node, symbol, context);\n case 261 /* VariableDeclaration */:\n return typeFromVariable(node, symbol, context);\n case 172 /* PropertySignature */:\n case 349 /* JSDocPropertyTag */:\n case 173 /* PropertyDeclaration */:\n return typeFromProperty(node, symbol, context);\n case 209 /* BindingElement */:\n return inferTypeOfDeclaration(node, symbol, context);\n case 278 /* ExportAssignment */:\n return serializeTypeOfExpression(\n node.expression,\n context,\n /*addUndefined*/\n void 0,\n /*preserveLiterals*/\n true\n );\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n case 227 /* BinaryExpression */:\n return typeFromExpandoProperty(node, symbol, context);\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n return typeFromPropertyAssignment(node, symbol, context);\n default:\n Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);\n }\n }\n function typeFromPropertyAssignment(node, symbol, context) {\n const typeAnnotation = getEffectiveTypeAnnotationNode(node);\n let result;\n if (typeAnnotation && resolver.canReuseTypeNodeAnnotation(context, node, typeAnnotation, symbol)) {\n result = serializeExistingTypeNode(typeAnnotation, context);\n }\n if (!result && node.kind === 304 /* PropertyAssignment */) {\n const initializer = node.initializer;\n const assertionNode = isJSDocTypeAssertion(initializer) ? getJSDocTypeAssertionType(initializer) : initializer.kind === 235 /* AsExpression */ || initializer.kind === 217 /* TypeAssertionExpression */ ? initializer.type : void 0;\n if (assertionNode && !isConstTypeReference(assertionNode) && resolver.canReuseTypeNodeAnnotation(context, node, assertionNode, symbol)) {\n result = serializeExistingTypeNode(assertionNode, context);\n }\n }\n return result ?? inferTypeOfDeclaration(\n node,\n symbol,\n context,\n /*reportFallback*/\n false\n );\n }\n function serializeReturnTypeForSignature(node, symbol, context) {\n switch (node.kind) {\n case 178 /* GetAccessor */:\n return serializeTypeOfAccessor(node, symbol, context);\n case 175 /* MethodDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 181 /* ConstructSignature */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 177 /* Constructor */:\n case 179 /* SetAccessor */:\n case 182 /* IndexSignature */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 318 /* JSDocFunctionType */:\n case 324 /* JSDocSignature */:\n return createReturnFromSignature(node, symbol, context);\n default:\n Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);\n }\n }\n function getTypeAnnotationFromAccessor(accessor) {\n if (accessor) {\n return accessor.kind === 178 /* GetAccessor */ ? isInJSFile(accessor) && getJSDocType(accessor) || getEffectiveReturnTypeNode(accessor) : getEffectiveSetAccessorTypeAnnotationNode(accessor);\n }\n }\n function getTypeAnnotationFromAllAccessorDeclarations(node, accessors) {\n let accessorType = getTypeAnnotationFromAccessor(node);\n if (!accessorType && node !== accessors.firstAccessor) {\n accessorType = getTypeAnnotationFromAccessor(accessors.firstAccessor);\n }\n if (!accessorType && accessors.secondAccessor && node !== accessors.secondAccessor) {\n accessorType = getTypeAnnotationFromAccessor(accessors.secondAccessor);\n }\n return accessorType;\n }\n function typeFromAccessor(node, symbol, context) {\n const accessorDeclarations = resolver.getAllAccessorDeclarations(node);\n const accessorType = getTypeAnnotationFromAllAccessorDeclarations(node, accessorDeclarations);\n if (accessorType && !isTypePredicateNode(accessorType)) {\n return withNewScope(context, node, () => serializeTypeAnnotationOfDeclaration(accessorType, context, node, symbol) ?? inferTypeOfDeclaration(node, symbol, context));\n }\n if (accessorDeclarations.getAccessor) {\n return withNewScope(context, accessorDeclarations.getAccessor, () => createReturnFromSignature(accessorDeclarations.getAccessor, symbol, context));\n }\n return void 0;\n }\n function typeFromVariable(node, symbol, context) {\n var _a;\n const declaredType = getEffectiveTypeAnnotationNode(node);\n let resultType = failed;\n if (declaredType) {\n resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol));\n } else if (node.initializer && (((_a = symbol.declarations) == null ? void 0 : _a.length) === 1 || countWhere(symbol.declarations, isVariableDeclaration) === 1)) {\n if (!resolver.isExpandoFunctionDeclaration(node) && !isContextuallyTyped(node)) {\n resultType = typeFromExpression(\n node.initializer,\n context,\n /*isConstContext*/\n void 0,\n /*requiresAddingUndefined*/\n void 0,\n isVarConstLike(node)\n );\n }\n }\n return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n }\n function typeFromParameter(node, symbol, context) {\n const parent2 = node.parent;\n if (parent2.kind === 179 /* SetAccessor */) {\n return serializeTypeOfAccessor(\n parent2,\n /*symbol*/\n void 0,\n context\n );\n }\n const declaredType = getEffectiveTypeAnnotationNode(node);\n const addUndefined = resolver.requiresAddingImplicitUndefined(node, symbol, context.enclosingDeclaration);\n let resultType = failed;\n if (declaredType) {\n resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, addUndefined));\n } else if (isParameter(node) && node.initializer && isIdentifier(node.name) && !isContextuallyTyped(node)) {\n resultType = typeFromExpression(\n node.initializer,\n context,\n /*isConstContext*/\n void 0,\n addUndefined\n );\n }\n return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n }\n function typeFromExpandoProperty(node, symbol, context) {\n const declaredType = getEffectiveTypeAnnotationNode(node);\n let result;\n if (declaredType) {\n result = serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol);\n }\n const oldSuppressReportInferenceFallback = context.suppressReportInferenceFallback;\n context.suppressReportInferenceFallback = true;\n const resultType = result ?? inferTypeOfDeclaration(\n node,\n symbol,\n context,\n /*reportFallback*/\n false\n );\n context.suppressReportInferenceFallback = oldSuppressReportInferenceFallback;\n return resultType;\n }\n function typeFromProperty(node, symbol, context) {\n const declaredType = getEffectiveTypeAnnotationNode(node);\n const requiresAddingUndefined = resolver.requiresAddingImplicitUndefined(node, symbol, context.enclosingDeclaration);\n let resultType = failed;\n if (declaredType) {\n resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, requiresAddingUndefined));\n } else {\n const initializer = isPropertyDeclaration(node) ? node.initializer : void 0;\n if (initializer && !isContextuallyTyped(node)) {\n const isReadonly = isDeclarationReadonly(node);\n resultType = typeFromExpression(\n initializer,\n context,\n /*isConstContext*/\n void 0,\n requiresAddingUndefined,\n isReadonly\n );\n }\n }\n return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n }\n function inferTypeOfDeclaration(node, symbol, context, reportFallback = true) {\n if (reportFallback) {\n context.tracker.reportInferenceFallback(node);\n }\n if (context.noInferenceFallback === true) {\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n return resolver.serializeTypeOfDeclaration(context, node, symbol);\n }\n function inferExpressionType(node, context, reportFallback = true, requiresAddingUndefined) {\n Debug.assert(!requiresAddingUndefined);\n if (reportFallback) {\n context.tracker.reportInferenceFallback(node);\n }\n if (context.noInferenceFallback === true) {\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n return resolver.serializeTypeOfExpression(context, node) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function inferReturnTypeOfSignatureSignature(node, context, symbol, reportFallback) {\n if (reportFallback) {\n context.tracker.reportInferenceFallback(node);\n }\n if (context.noInferenceFallback === true) {\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n return resolver.serializeReturnTypeForSignature(context, node, symbol) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n function inferAccessorType(node, allAccessors, context, symbol, reportFallback = true) {\n if (node.kind === 178 /* GetAccessor */) {\n return createReturnFromSignature(node, symbol, context, reportFallback);\n } else {\n if (reportFallback) {\n context.tracker.reportInferenceFallback(node);\n }\n const result = allAccessors.getAccessor && createReturnFromSignature(allAccessors.getAccessor, symbol, context, reportFallback);\n return result ?? resolver.serializeTypeOfDeclaration(context, node, symbol) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n }\n function withNewScope(context, node, fn) {\n const cleanup = resolver.enterNewScope(context, node);\n const result = fn();\n cleanup();\n return result;\n }\n function typeFromTypeAssertion(expression, type, context, requiresAddingUndefined) {\n if (isConstTypeReference(type)) {\n return typeFromExpression(\n expression,\n context,\n /*isConstContext*/\n true,\n requiresAddingUndefined\n );\n }\n return syntacticResult(serializeExistingTypeNodeWithFallback(type, context, requiresAddingUndefined));\n }\n function typeFromExpression(node, context, isConstContext = false, requiresAddingUndefined = false, preserveLiterals = false) {\n switch (node.kind) {\n case 218 /* ParenthesizedExpression */:\n if (isJSDocTypeAssertion(node)) {\n return typeFromTypeAssertion(node.expression, getJSDocTypeAssertionType(node), context, requiresAddingUndefined);\n }\n return typeFromExpression(node.expression, context, isConstContext, requiresAddingUndefined);\n case 80 /* Identifier */:\n if (resolver.isUndefinedIdentifierExpression(node)) {\n return syntacticResult(createUndefinedTypeNode());\n }\n break;\n case 106 /* NullKeyword */:\n if (strictNullChecks) {\n return syntacticResult(addUndefinedIfNeeded(factory.createLiteralTypeNode(factory.createNull()), requiresAddingUndefined, node, context));\n } else {\n return syntacticResult(factory.createKeywordTypeNode(133 /* AnyKeyword */));\n }\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n Debug.type(node);\n return withNewScope(context, node, () => typeFromFunctionLikeExpression(node, context));\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n const asExpression = node;\n return typeFromTypeAssertion(asExpression.expression, asExpression.type, context, requiresAddingUndefined);\n case 225 /* PrefixUnaryExpression */:\n const unaryExpression = node;\n if (isPrimitiveLiteralValue(unaryExpression)) {\n return typeFromPrimitiveLiteral(\n unaryExpression.operator === 40 /* PlusToken */ ? unaryExpression.operand : unaryExpression,\n unaryExpression.operand.kind === 10 /* BigIntLiteral */ ? 163 /* BigIntKeyword */ : 150 /* NumberKeyword */,\n context,\n isConstContext || preserveLiterals,\n requiresAddingUndefined\n );\n }\n break;\n case 210 /* ArrayLiteralExpression */:\n return typeFromArrayLiteral(node, context, isConstContext, requiresAddingUndefined);\n case 211 /* ObjectLiteralExpression */:\n return typeFromObjectLiteral(node, context, isConstContext, requiresAddingUndefined);\n case 232 /* ClassExpression */:\n return syntacticResult(inferExpressionType(\n node,\n context,\n /*reportFallback*/\n true,\n requiresAddingUndefined\n ));\n case 229 /* TemplateExpression */:\n if (!isConstContext && !preserveLiterals) {\n return syntacticResult(factory.createKeywordTypeNode(154 /* StringKeyword */));\n }\n break;\n default:\n let typeKind;\n let primitiveNode = node;\n switch (node.kind) {\n case 9 /* NumericLiteral */:\n typeKind = 150 /* NumberKeyword */;\n break;\n case 15 /* NoSubstitutionTemplateLiteral */:\n primitiveNode = factory.createStringLiteral(node.text);\n typeKind = 154 /* StringKeyword */;\n break;\n case 11 /* StringLiteral */:\n typeKind = 154 /* StringKeyword */;\n break;\n case 10 /* BigIntLiteral */:\n typeKind = 163 /* BigIntKeyword */;\n break;\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n typeKind = 136 /* BooleanKeyword */;\n break;\n }\n if (typeKind) {\n return typeFromPrimitiveLiteral(primitiveNode, typeKind, context, isConstContext || preserveLiterals, requiresAddingUndefined);\n }\n }\n return failed;\n }\n function typeFromFunctionLikeExpression(fnNode, context) {\n const returnType = createReturnFromSignature(\n fnNode,\n /*symbol*/\n void 0,\n context\n );\n const typeParameters = reuseTypeParameters(fnNode.typeParameters, context);\n const parameters = fnNode.parameters.map((p) => ensureParameter(p, context));\n return syntacticResult(\n factory.createFunctionTypeNode(\n typeParameters,\n parameters,\n returnType\n )\n );\n }\n function canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext) {\n if (!isConstContext) {\n context.tracker.reportInferenceFallback(arrayLiteral);\n return false;\n }\n for (const element of arrayLiteral.elements) {\n if (element.kind === 231 /* SpreadElement */) {\n context.tracker.reportInferenceFallback(element);\n return false;\n }\n }\n return true;\n }\n function typeFromArrayLiteral(arrayLiteral, context, isConstContext, requiresAddingUndefined) {\n if (!canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext)) {\n if (requiresAddingUndefined || isDeclaration(walkUpParenthesizedExpressions(arrayLiteral).parent)) {\n return alreadyReported;\n }\n return syntacticResult(inferExpressionType(\n arrayLiteral,\n context,\n /*reportFallback*/\n false,\n requiresAddingUndefined\n ));\n }\n const oldNoInferenceFallback = context.noInferenceFallback;\n context.noInferenceFallback = true;\n const elementTypesInfo = [];\n for (const element of arrayLiteral.elements) {\n Debug.assert(element.kind !== 231 /* SpreadElement */);\n if (element.kind === 233 /* OmittedExpression */) {\n elementTypesInfo.push(\n createUndefinedTypeNode()\n );\n } else {\n const expressionType = typeFromExpression(element, context, isConstContext);\n const elementType = expressionType.type !== void 0 ? expressionType.type : inferExpressionType(element, context, expressionType.reportFallback);\n elementTypesInfo.push(elementType);\n }\n }\n const tupleType = factory.createTupleTypeNode(elementTypesInfo);\n tupleType.emitNode = { flags: 1, autoGenerate: void 0, internalFlags: 0 };\n context.noInferenceFallback = oldNoInferenceFallback;\n return notImplemented2;\n }\n function canGetTypeFromObjectLiteral(objectLiteral, context) {\n let result = true;\n for (const prop of objectLiteral.properties) {\n if (prop.flags & 262144 /* ThisNodeHasError */) {\n result = false;\n break;\n }\n if (prop.kind === 305 /* ShorthandPropertyAssignment */ || prop.kind === 306 /* SpreadAssignment */) {\n context.tracker.reportInferenceFallback(prop);\n result = false;\n } else if (prop.name.flags & 262144 /* ThisNodeHasError */) {\n result = false;\n break;\n } else if (prop.name.kind === 81 /* PrivateIdentifier */) {\n result = false;\n } else if (prop.name.kind === 168 /* ComputedPropertyName */) {\n const expression = prop.name.expression;\n if (!isPrimitiveLiteralValue(\n expression,\n /*includeBigInt*/\n false\n ) && !resolver.isDefinitelyReferenceToGlobalSymbolObject(expression)) {\n context.tracker.reportInferenceFallback(prop.name);\n result = false;\n }\n }\n }\n return result;\n }\n function typeFromObjectLiteral(objectLiteral, context, isConstContext, requiresAddingUndefined) {\n if (!canGetTypeFromObjectLiteral(objectLiteral, context)) {\n if (requiresAddingUndefined || isDeclaration(walkUpParenthesizedExpressions(objectLiteral).parent)) {\n return alreadyReported;\n }\n return syntacticResult(inferExpressionType(\n objectLiteral,\n context,\n /*reportFallback*/\n false,\n requiresAddingUndefined\n ));\n }\n const oldNoInferenceFallback = context.noInferenceFallback;\n context.noInferenceFallback = true;\n const properties = [];\n const oldFlags = context.flags;\n context.flags |= 4194304 /* InObjectTypeLiteral */;\n for (const prop of objectLiteral.properties) {\n Debug.assert(!isShorthandPropertyAssignment(prop) && !isSpreadAssignment(prop));\n const name = prop.name;\n let newProp;\n switch (prop.kind) {\n case 175 /* MethodDeclaration */:\n newProp = withNewScope(context, prop, () => typeFromObjectLiteralMethod(prop, name, context, isConstContext));\n break;\n case 304 /* PropertyAssignment */:\n newProp = typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext);\n break;\n case 179 /* SetAccessor */:\n case 178 /* GetAccessor */:\n newProp = typeFromObjectLiteralAccessor(prop, name, context);\n break;\n }\n if (newProp) {\n setCommentRange(newProp, prop);\n properties.push(newProp);\n }\n }\n context.flags = oldFlags;\n const typeNode = factory.createTypeLiteralNode(properties);\n if (!(context.flags & 1024 /* MultilineObjectLiterals */)) {\n setEmitFlags(typeNode, 1 /* SingleLine */);\n }\n context.noInferenceFallback = oldNoInferenceFallback;\n return notImplemented2;\n }\n function typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) {\n const modifiers = isConstContext ? [factory.createModifier(148 /* ReadonlyKeyword */)] : [];\n const expressionResult = typeFromExpression(prop.initializer, context, isConstContext);\n const typeNode = expressionResult.type !== void 0 ? expressionResult.type : inferTypeOfDeclaration(\n prop,\n /*symbol*/\n void 0,\n context,\n expressionResult.reportFallback\n );\n return factory.createPropertySignature(\n modifiers,\n reuseNode(context, name),\n /*questionToken*/\n void 0,\n typeNode\n );\n }\n function ensureParameter(p, context) {\n return factory.updateParameterDeclaration(\n p,\n /*modifiers*/\n void 0,\n reuseNode(context, p.dotDotDotToken),\n resolver.serializeNameOfParameter(context, p),\n resolver.isOptionalParameter(p) ? factory.createToken(58 /* QuestionToken */) : void 0,\n typeFromParameter(\n p,\n /*symbol*/\n void 0,\n context\n ),\n // Ignore private param props, since this type is going straight back into a param\n /*initializer*/\n void 0\n );\n }\n function reuseTypeParameters(typeParameters, context) {\n return typeParameters == null ? void 0 : typeParameters.map((tp) => {\n var _a;\n const { node: tpName } = resolver.trackExistingEntityName(context, tp.name);\n return factory.updateTypeParameterDeclaration(\n tp,\n (_a = tp.modifiers) == null ? void 0 : _a.map((m) => reuseNode(context, m)),\n tpName,\n serializeExistingTypeNodeWithFallback(tp.constraint, context),\n serializeExistingTypeNodeWithFallback(tp.default, context)\n );\n });\n }\n function typeFromObjectLiteralMethod(method, name, context, isConstContext) {\n const returnType = createReturnFromSignature(\n method,\n /*symbol*/\n void 0,\n context\n );\n const typeParameters = reuseTypeParameters(method.typeParameters, context);\n const parameters = method.parameters.map((p) => ensureParameter(p, context));\n if (isConstContext) {\n return factory.createPropertySignature(\n [factory.createModifier(148 /* ReadonlyKeyword */)],\n reuseNode(context, name),\n reuseNode(context, method.questionToken),\n factory.createFunctionTypeNode(\n typeParameters,\n parameters,\n returnType\n )\n );\n } else {\n if (isIdentifier(name) && name.escapedText === \"new\") {\n name = factory.createStringLiteral(\"new\");\n }\n return factory.createMethodSignature(\n [],\n reuseNode(context, name),\n reuseNode(context, method.questionToken),\n typeParameters,\n parameters,\n returnType\n );\n }\n }\n function typeFromObjectLiteralAccessor(accessor, name, context) {\n const allAccessors = resolver.getAllAccessorDeclarations(accessor);\n const getAccessorType = allAccessors.getAccessor && getTypeAnnotationFromAccessor(allAccessors.getAccessor);\n const setAccessorType = allAccessors.setAccessor && getTypeAnnotationFromAccessor(allAccessors.setAccessor);\n if (getAccessorType !== void 0 && setAccessorType !== void 0) {\n return withNewScope(context, accessor, () => {\n const parameters = accessor.parameters.map((p) => ensureParameter(p, context));\n if (isGetAccessor(accessor)) {\n return factory.updateGetAccessorDeclaration(\n accessor,\n [],\n reuseNode(context, name),\n parameters,\n serializeExistingTypeNodeWithFallback(getAccessorType, context),\n /*body*/\n void 0\n );\n } else {\n return factory.updateSetAccessorDeclaration(\n accessor,\n [],\n reuseNode(context, name),\n parameters,\n /*body*/\n void 0\n );\n }\n });\n } else if (allAccessors.firstAccessor === accessor) {\n const foundType = getAccessorType ? withNewScope(context, allAccessors.getAccessor, () => serializeExistingTypeNodeWithFallback(getAccessorType, context)) : setAccessorType ? withNewScope(context, allAccessors.setAccessor, () => serializeExistingTypeNodeWithFallback(setAccessorType, context)) : void 0;\n const propertyType = foundType ?? inferAccessorType(\n accessor,\n allAccessors,\n context,\n /*symbol*/\n void 0\n );\n const propertySignature = factory.createPropertySignature(\n allAccessors.setAccessor === void 0 ? [factory.createModifier(148 /* ReadonlyKeyword */)] : [],\n reuseNode(context, name),\n /*questionToken*/\n void 0,\n propertyType\n );\n return propertySignature;\n }\n }\n function createUndefinedTypeNode() {\n if (strictNullChecks) {\n return factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n } else {\n return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n }\n }\n function typeFromPrimitiveLiteral(node, baseType, context, preserveLiterals, requiresAddingUndefined) {\n let result;\n if (preserveLiterals) {\n if (node.kind === 225 /* PrefixUnaryExpression */ && node.operator === 40 /* PlusToken */) {\n result = factory.createLiteralTypeNode(reuseNode(context, node.operand));\n }\n result = factory.createLiteralTypeNode(reuseNode(context, node));\n } else {\n result = factory.createKeywordTypeNode(baseType);\n }\n return syntacticResult(addUndefinedIfNeeded(result, requiresAddingUndefined, node, context));\n }\n function addUndefinedIfNeeded(node, addUndefined, owner, context) {\n const parentDeclaration = owner && walkUpParenthesizedExpressions(owner).parent;\n const optionalDeclaration = parentDeclaration && isDeclaration(parentDeclaration) && isOptionalDeclaration(parentDeclaration);\n if (!strictNullChecks || !(addUndefined || optionalDeclaration)) return node;\n if (!canAddUndefined(node)) {\n context.tracker.reportInferenceFallback(node);\n }\n if (isUnionTypeNode(node)) {\n return factory.createUnionTypeNode([...node.types, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n return factory.createUnionTypeNode([node, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n function canAddUndefined(node) {\n if (!strictNullChecks) return true;\n if (isKeyword(node.kind) || node.kind === 202 /* LiteralType */ || node.kind === 185 /* FunctionType */ || node.kind === 186 /* ConstructorType */ || node.kind === 189 /* ArrayType */ || node.kind === 190 /* TupleType */ || node.kind === 188 /* TypeLiteral */ || node.kind === 204 /* TemplateLiteralType */ || node.kind === 198 /* ThisType */) {\n return true;\n }\n if (node.kind === 197 /* ParenthesizedType */) {\n return canAddUndefined(node.type);\n }\n if (node.kind === 193 /* UnionType */ || node.kind === 194 /* IntersectionType */) {\n return node.types.every(canAddUndefined);\n }\n return false;\n }\n function createReturnFromSignature(fn, symbol, context, reportFallback = true) {\n let returnType = failed;\n const returnTypeNode = isJSDocConstructSignature(fn) ? getEffectiveTypeAnnotationNode(fn.parameters[0]) : getEffectiveReturnTypeNode(fn);\n if (returnTypeNode) {\n returnType = syntacticResult(serializeTypeAnnotationOfDeclaration(returnTypeNode, context, fn, symbol));\n } else if (isValueSignatureDeclaration(fn)) {\n returnType = typeFromSingleReturnExpression(fn, context);\n }\n return returnType.type !== void 0 ? returnType.type : inferReturnTypeOfSignatureSignature(fn, context, symbol, reportFallback && returnType.reportFallback && !returnTypeNode);\n }\n function typeFromSingleReturnExpression(declaration, context) {\n let candidateExpr;\n if (declaration && !nodeIsMissing(declaration.body)) {\n const flags = getFunctionFlags(declaration);\n if (flags & 3 /* AsyncGenerator */) return failed;\n const body = declaration.body;\n if (body && isBlock(body)) {\n forEachReturnStatement(body, (s) => {\n if (s.parent !== body) {\n candidateExpr = void 0;\n return true;\n }\n if (!candidateExpr) {\n candidateExpr = s.expression;\n } else {\n candidateExpr = void 0;\n return true;\n }\n });\n } else {\n candidateExpr = body;\n }\n }\n if (candidateExpr) {\n if (isContextuallyTyped(candidateExpr)) {\n const type = isJSDocTypeAssertion(candidateExpr) ? getJSDocTypeAssertionType(candidateExpr) : isAsExpression(candidateExpr) || isTypeAssertionExpression(candidateExpr) ? candidateExpr.type : void 0;\n if (type && !isConstTypeReference(type)) {\n return syntacticResult(serializeExistingTypeNode(type, context));\n }\n } else {\n return typeFromExpression(candidateExpr, context);\n }\n }\n return failed;\n }\n function isContextuallyTyped(node) {\n return findAncestor(node.parent, (n) => {\n return isCallExpression(n) || !isFunctionLikeDeclaration(n) && !!getEffectiveTypeAnnotationNode(n) || isJsxElement(n) || isJsxExpression(n);\n });\n }\n}\n\n// src/jsTyping/_namespaces/ts.JsTyping.ts\nvar ts_JsTyping_exports = {};\n__export(ts_JsTyping_exports, {\n NameValidationResult: () => NameValidationResult,\n discoverTypings: () => discoverTypings,\n isTypingUpToDate: () => isTypingUpToDate,\n loadSafeList: () => loadSafeList,\n loadTypesMap: () => loadTypesMap,\n nonRelativeModuleNameForTypingCache: () => nonRelativeModuleNameForTypingCache,\n renderPackageNameValidationFailure: () => renderPackageNameValidationFailure,\n validatePackageName: () => validatePackageName\n});\n\n// src/jsTyping/shared.ts\nvar ActionSet = \"action::set\";\nvar ActionInvalidate = \"action::invalidate\";\nvar ActionPackageInstalled = \"action::packageInstalled\";\nvar EventTypesRegistry = \"event::typesRegistry\";\nvar EventBeginInstallTypes = \"event::beginInstallTypes\";\nvar EventEndInstallTypes = \"event::endInstallTypes\";\nvar EventInitializationFailed = \"event::initializationFailed\";\nvar ActionWatchTypingLocations = \"action::watchTypingLocations\";\nvar Arguments;\n((Arguments2) => {\n Arguments2.GlobalCacheLocation = \"--globalTypingsCacheLocation\";\n Arguments2.LogFile = \"--logFile\";\n Arguments2.EnableTelemetry = \"--enableTelemetry\";\n Arguments2.TypingSafeListLocation = \"--typingSafeListLocation\";\n Arguments2.TypesMapLocation = \"--typesMapLocation\";\n Arguments2.NpmLocation = \"--npmLocation\";\n Arguments2.ValidateDefaultNpmLocation = \"--validateDefaultNpmLocation\";\n})(Arguments || (Arguments = {}));\nfunction hasArgument(argumentName) {\n return sys.args.includes(argumentName);\n}\nfunction findArgument(argumentName) {\n const index = sys.args.indexOf(argumentName);\n return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;\n}\nfunction nowString() {\n const d = /* @__PURE__ */ new Date();\n return `${d.getHours().toString().padStart(2, \"0\")}:${d.getMinutes().toString().padStart(2, \"0\")}:${d.getSeconds().toString().padStart(2, \"0\")}.${d.getMilliseconds().toString().padStart(3, \"0\")}`;\n}\nvar indentStr = \"\\n \";\nfunction indent2(str) {\n return indentStr + str.replace(/\\n/g, indentStr);\n}\nfunction stringifyIndented(json) {\n return indent2(JSON.stringify(json, void 0, 2));\n}\n\n// src/jsTyping/jsTyping.ts\nfunction isTypingUpToDate(cachedTyping, availableTypingVersions) {\n const availableVersion = new Version(getProperty(availableTypingVersions, `ts${versionMajorMinor}`) || getProperty(availableTypingVersions, \"latest\"));\n return availableVersion.compareTo(cachedTyping.version) <= 0;\n}\nfunction nonRelativeModuleNameForTypingCache(moduleName) {\n return nodeCoreModules.has(moduleName) ? \"node\" : moduleName;\n}\nfunction loadSafeList(host, safeListPath) {\n const result = readConfigFile(safeListPath, (path) => host.readFile(path));\n return new Map(Object.entries(result.config));\n}\nfunction loadTypesMap(host, typesMapPath) {\n var _a;\n const result = readConfigFile(typesMapPath, (path) => host.readFile(path));\n if ((_a = result.config) == null ? void 0 : _a.simpleMap) {\n return new Map(Object.entries(result.config.simpleMap));\n }\n return void 0;\n}\nfunction discoverTypings(host, log, fileNames, projectRootPath, safeList, packageNameToTypingLocation, typeAcquisition, unresolvedImports, typesRegistry, compilerOptions) {\n if (!typeAcquisition || !typeAcquisition.enable) {\n return { cachedTypingPaths: [], newTypingNames: [], filesToWatch: [] };\n }\n const inferredTypings = /* @__PURE__ */ new Map();\n fileNames = mapDefined(fileNames, (fileName) => {\n const path = normalizePath(fileName);\n if (hasJSFileExtension(path)) {\n return path;\n }\n });\n const filesToWatch = [];\n if (typeAcquisition.include) addInferredTypings(typeAcquisition.include, \"Explicitly included types\");\n const exclude = typeAcquisition.exclude || [];\n if (!compilerOptions.types) {\n const possibleSearchDirs = new Set(fileNames.map(getDirectoryPath));\n possibleSearchDirs.add(projectRootPath);\n possibleSearchDirs.forEach((searchDir) => {\n getTypingNames(searchDir, \"bower.json\", \"bower_components\", filesToWatch);\n getTypingNames(searchDir, \"package.json\", \"node_modules\", filesToWatch);\n });\n }\n if (!typeAcquisition.disableFilenameBasedTypeAcquisition) {\n getTypingNamesFromSourceFileNames(fileNames);\n }\n if (unresolvedImports) {\n const module2 = deduplicate(\n unresolvedImports.map(nonRelativeModuleNameForTypingCache),\n equateStringsCaseSensitive,\n compareStringsCaseSensitive\n );\n addInferredTypings(module2, \"Inferred typings from unresolved imports\");\n }\n for (const excludeTypingName of exclude) {\n const didDelete = inferredTypings.delete(excludeTypingName);\n if (didDelete && log) log(`Typing for ${excludeTypingName} is in exclude list, will be ignored.`);\n }\n packageNameToTypingLocation.forEach((typing, name) => {\n const registryEntry = typesRegistry.get(name);\n if (inferredTypings.get(name) === false && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {\n inferredTypings.set(name, typing.typingLocation);\n }\n });\n const newTypingNames = [];\n const cachedTypingPaths = [];\n inferredTypings.forEach((inferred, typing) => {\n if (inferred) {\n cachedTypingPaths.push(inferred);\n } else {\n newTypingNames.push(typing);\n }\n });\n const result = { cachedTypingPaths, newTypingNames, filesToWatch };\n if (log) log(`Finished typings discovery:${stringifyIndented(result)}`);\n return result;\n function addInferredTyping(typingName) {\n if (!inferredTypings.has(typingName)) {\n inferredTypings.set(typingName, false);\n }\n }\n function addInferredTypings(typingNames, message) {\n if (log) log(`${message}: ${JSON.stringify(typingNames)}`);\n forEach(typingNames, addInferredTyping);\n }\n function getTypingNames(projectRootPath2, manifestName, modulesDirName, filesToWatch2) {\n const manifestPath = combinePaths(projectRootPath2, manifestName);\n let manifest;\n let manifestTypingNames;\n if (host.fileExists(manifestPath)) {\n filesToWatch2.push(manifestPath);\n manifest = readConfigFile(manifestPath, (path) => host.readFile(path)).config;\n manifestTypingNames = flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], getOwnKeys);\n addInferredTypings(manifestTypingNames, `Typing names in '${manifestPath}' dependencies`);\n }\n const packagesFolderPath = combinePaths(projectRootPath2, modulesDirName);\n filesToWatch2.push(packagesFolderPath);\n if (!host.directoryExists(packagesFolderPath)) {\n return;\n }\n const packageNames = [];\n const dependencyManifestNames = manifestTypingNames ? manifestTypingNames.map((typingName) => combinePaths(packagesFolderPath, typingName, manifestName)) : host.readDirectory(\n packagesFolderPath,\n [\".json\" /* Json */],\n /*excludes*/\n void 0,\n /*includes*/\n void 0,\n /*depth*/\n 3\n ).filter((manifestPath2) => {\n if (getBaseFileName(manifestPath2) !== manifestName) {\n return false;\n }\n const pathComponents2 = getPathComponents(normalizePath(manifestPath2));\n const isScoped = pathComponents2[pathComponents2.length - 3][0] === \"@\";\n return isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 4]) === modulesDirName || // `node_modules/@foo/bar`\n !isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 3]) === modulesDirName;\n });\n if (log) log(`Searching for typing names in ${packagesFolderPath}; all files: ${JSON.stringify(dependencyManifestNames)}`);\n for (const manifestPath2 of dependencyManifestNames) {\n const normalizedFileName = normalizePath(manifestPath2);\n const result2 = readConfigFile(normalizedFileName, (path) => host.readFile(path));\n const manifest2 = result2.config;\n if (!manifest2.name) {\n continue;\n }\n const ownTypes = manifest2.types || manifest2.typings;\n if (ownTypes) {\n const absolutePath = getNormalizedAbsolutePath(ownTypes, getDirectoryPath(normalizedFileName));\n if (host.fileExists(absolutePath)) {\n if (log) log(` Package '${manifest2.name}' provides its own types.`);\n inferredTypings.set(manifest2.name, absolutePath);\n } else {\n if (log) log(` Package '${manifest2.name}' provides its own types but they are missing.`);\n }\n } else {\n packageNames.push(manifest2.name);\n }\n }\n addInferredTypings(packageNames, \" Found package names\");\n }\n function getTypingNamesFromSourceFileNames(fileNames2) {\n const fromFileNames = mapDefined(fileNames2, (j) => {\n if (!hasJSFileExtension(j)) return void 0;\n const inferredTypingName = removeFileExtension(toFileNameLowerCase(getBaseFileName(j)));\n const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName);\n return safeList.get(cleanedTypingName);\n });\n if (fromFileNames.length) {\n addInferredTypings(fromFileNames, \"Inferred typings from file names\");\n }\n const hasJsxFile = some(fileNames2, (f) => fileExtensionIs(f, \".jsx\" /* Jsx */));\n if (hasJsxFile) {\n if (log) log(`Inferred 'react' typings due to presence of '.jsx' extension`);\n addInferredTyping(\"react\");\n }\n }\n}\nvar NameValidationResult = /* @__PURE__ */ ((NameValidationResult2) => {\n NameValidationResult2[NameValidationResult2[\"Ok\"] = 0] = \"Ok\";\n NameValidationResult2[NameValidationResult2[\"EmptyName\"] = 1] = \"EmptyName\";\n NameValidationResult2[NameValidationResult2[\"NameTooLong\"] = 2] = \"NameTooLong\";\n NameValidationResult2[NameValidationResult2[\"NameStartsWithDot\"] = 3] = \"NameStartsWithDot\";\n NameValidationResult2[NameValidationResult2[\"NameStartsWithUnderscore\"] = 4] = \"NameStartsWithUnderscore\";\n NameValidationResult2[NameValidationResult2[\"NameContainsNonURISafeCharacters\"] = 5] = \"NameContainsNonURISafeCharacters\";\n return NameValidationResult2;\n})(NameValidationResult || {});\nvar maxPackageNameLength = 214;\nfunction validatePackageName(packageName) {\n return validatePackageNameWorker(\n packageName,\n /*supportScopedPackage*/\n true\n );\n}\nfunction validatePackageNameWorker(packageName, supportScopedPackage) {\n if (!packageName) {\n return 1 /* EmptyName */;\n }\n if (packageName.length > maxPackageNameLength) {\n return 2 /* NameTooLong */;\n }\n if (packageName.charCodeAt(0) === 46 /* dot */) {\n return 3 /* NameStartsWithDot */;\n }\n if (packageName.charCodeAt(0) === 95 /* _ */) {\n return 4 /* NameStartsWithUnderscore */;\n }\n if (supportScopedPackage) {\n const matches = /^@([^/]+)\\/([^/]+)$/.exec(packageName);\n if (matches) {\n const scopeResult = validatePackageNameWorker(\n matches[1],\n /*supportScopedPackage*/\n false\n );\n if (scopeResult !== 0 /* Ok */) {\n return { name: matches[1], isScopeName: true, result: scopeResult };\n }\n const packageResult = validatePackageNameWorker(\n matches[2],\n /*supportScopedPackage*/\n false\n );\n if (packageResult !== 0 /* Ok */) {\n return { name: matches[2], isScopeName: false, result: packageResult };\n }\n return 0 /* Ok */;\n }\n }\n if (encodeURIComponent(packageName) !== packageName) {\n return 5 /* NameContainsNonURISafeCharacters */;\n }\n return 0 /* Ok */;\n}\nfunction renderPackageNameValidationFailure(result, typing) {\n return typeof result === \"object\" ? renderPackageNameValidationFailureWorker(typing, result.result, result.name, result.isScopeName) : renderPackageNameValidationFailureWorker(\n typing,\n result,\n typing,\n /*isScopeName*/\n false\n );\n}\nfunction renderPackageNameValidationFailureWorker(typing, result, name, isScopeName) {\n const kind = isScopeName ? \"Scope\" : \"Package\";\n switch (result) {\n case 1 /* EmptyName */:\n return `'${typing}':: ${kind} name '${name}' cannot be empty`;\n case 2 /* NameTooLong */:\n return `'${typing}':: ${kind} name '${name}' should be less than ${maxPackageNameLength} characters`;\n case 3 /* NameStartsWithDot */:\n return `'${typing}':: ${kind} name '${name}' cannot start with '.'`;\n case 4 /* NameStartsWithUnderscore */:\n return `'${typing}':: ${kind} name '${name}' cannot start with '_'`;\n case 5 /* NameContainsNonURISafeCharacters */:\n return `'${typing}':: ${kind} name '${name}' contains non URI safe characters`;\n case 0 /* Ok */:\n return Debug.fail();\n // Shouldn't have called this.\n default:\n Debug.assertNever(result);\n }\n}\n\n// src/services/types.ts\nvar ScriptSnapshot;\n((ScriptSnapshot2) => {\n class StringScriptSnapshot {\n constructor(text) {\n this.text = text;\n }\n getText(start, end) {\n return start === 0 && end === this.text.length ? this.text : this.text.substring(start, end);\n }\n getLength() {\n return this.text.length;\n }\n getChangeRange() {\n return void 0;\n }\n }\n function fromString(text) {\n return new StringScriptSnapshot(text);\n }\n ScriptSnapshot2.fromString = fromString;\n})(ScriptSnapshot || (ScriptSnapshot = {}));\nvar PackageJsonDependencyGroup = /* @__PURE__ */ ((PackageJsonDependencyGroup2) => {\n PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"Dependencies\"] = 1] = \"Dependencies\";\n PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"DevDependencies\"] = 2] = \"DevDependencies\";\n PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"PeerDependencies\"] = 4] = \"PeerDependencies\";\n PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"OptionalDependencies\"] = 8] = \"OptionalDependencies\";\n PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"All\"] = 15] = \"All\";\n return PackageJsonDependencyGroup2;\n})(PackageJsonDependencyGroup || {});\nvar PackageJsonAutoImportPreference = /* @__PURE__ */ ((PackageJsonAutoImportPreference2) => {\n PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"Off\"] = 0] = \"Off\";\n PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"On\"] = 1] = \"On\";\n PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"Auto\"] = 2] = \"Auto\";\n return PackageJsonAutoImportPreference2;\n})(PackageJsonAutoImportPreference || {});\nvar LanguageServiceMode = /* @__PURE__ */ ((LanguageServiceMode2) => {\n LanguageServiceMode2[LanguageServiceMode2[\"Semantic\"] = 0] = \"Semantic\";\n LanguageServiceMode2[LanguageServiceMode2[\"PartialSemantic\"] = 1] = \"PartialSemantic\";\n LanguageServiceMode2[LanguageServiceMode2[\"Syntactic\"] = 2] = \"Syntactic\";\n return LanguageServiceMode2;\n})(LanguageServiceMode || {});\nvar emptyOptions = {};\nvar SemanticClassificationFormat = /* @__PURE__ */ ((SemanticClassificationFormat2) => {\n SemanticClassificationFormat2[\"Original\"] = \"original\";\n SemanticClassificationFormat2[\"TwentyTwenty\"] = \"2020\";\n return SemanticClassificationFormat2;\n})(SemanticClassificationFormat || {});\nvar OrganizeImportsMode = /* @__PURE__ */ ((OrganizeImportsMode2) => {\n OrganizeImportsMode2[\"All\"] = \"All\";\n OrganizeImportsMode2[\"SortAndCombine\"] = \"SortAndCombine\";\n OrganizeImportsMode2[\"RemoveUnused\"] = \"RemoveUnused\";\n return OrganizeImportsMode2;\n})(OrganizeImportsMode || {});\nvar CompletionTriggerKind = /* @__PURE__ */ ((CompletionTriggerKind2) => {\n CompletionTriggerKind2[CompletionTriggerKind2[\"Invoked\"] = 1] = \"Invoked\";\n CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerForIncompleteCompletions\"] = 3] = \"TriggerForIncompleteCompletions\";\n return CompletionTriggerKind2;\n})(CompletionTriggerKind || {});\nvar InlayHintKind2 = /* @__PURE__ */ ((InlayHintKind3) => {\n InlayHintKind3[\"Type\"] = \"Type\";\n InlayHintKind3[\"Parameter\"] = \"Parameter\";\n InlayHintKind3[\"Enum\"] = \"Enum\";\n return InlayHintKind3;\n})(InlayHintKind2 || {});\nvar HighlightSpanKind = /* @__PURE__ */ ((HighlightSpanKind2) => {\n HighlightSpanKind2[\"none\"] = \"none\";\n HighlightSpanKind2[\"definition\"] = \"definition\";\n HighlightSpanKind2[\"reference\"] = \"reference\";\n HighlightSpanKind2[\"writtenReference\"] = \"writtenReference\";\n return HighlightSpanKind2;\n})(HighlightSpanKind || {});\nvar IndentStyle = /* @__PURE__ */ ((IndentStyle3) => {\n IndentStyle3[IndentStyle3[\"None\"] = 0] = \"None\";\n IndentStyle3[IndentStyle3[\"Block\"] = 1] = \"Block\";\n IndentStyle3[IndentStyle3[\"Smart\"] = 2] = \"Smart\";\n return IndentStyle3;\n})(IndentStyle || {});\nvar SemicolonPreference = /* @__PURE__ */ ((SemicolonPreference2) => {\n SemicolonPreference2[\"Ignore\"] = \"ignore\";\n SemicolonPreference2[\"Insert\"] = \"insert\";\n SemicolonPreference2[\"Remove\"] = \"remove\";\n return SemicolonPreference2;\n})(SemicolonPreference || {});\nfunction getDefaultFormatCodeSettings(newLineCharacter) {\n return {\n indentSize: 4,\n tabSize: 4,\n newLineCharacter: newLineCharacter || \"\\n\",\n convertTabsToSpaces: true,\n indentStyle: 2 /* Smart */,\n insertSpaceAfterConstructor: false,\n insertSpaceAfterCommaDelimiter: true,\n insertSpaceAfterSemicolonInForStatements: true,\n insertSpaceBeforeAndAfterBinaryOperators: true,\n insertSpaceAfterKeywordsInControlFlowStatements: true,\n insertSpaceAfterFunctionKeywordForAnonymousFunctions: false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true,\n insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false,\n insertSpaceBeforeFunctionParenthesis: false,\n placeOpenBraceOnNewLineForFunctions: false,\n placeOpenBraceOnNewLineForControlBlocks: false,\n semicolons: \"ignore\" /* Ignore */,\n trimTrailingWhitespace: true,\n indentSwitchCase: true\n };\n}\nvar testFormatSettings = getDefaultFormatCodeSettings(\"\\n\");\nvar SymbolDisplayPartKind = /* @__PURE__ */ ((SymbolDisplayPartKind2) => {\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"aliasName\"] = 0] = \"aliasName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"className\"] = 1] = \"className\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"enumName\"] = 2] = \"enumName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"fieldName\"] = 3] = \"fieldName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"interfaceName\"] = 4] = \"interfaceName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"keyword\"] = 5] = \"keyword\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"lineBreak\"] = 6] = \"lineBreak\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"numericLiteral\"] = 7] = \"numericLiteral\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"stringLiteral\"] = 8] = \"stringLiteral\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"localName\"] = 9] = \"localName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"methodName\"] = 10] = \"methodName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"moduleName\"] = 11] = \"moduleName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"operator\"] = 12] = \"operator\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"parameterName\"] = 13] = \"parameterName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"propertyName\"] = 14] = \"propertyName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"punctuation\"] = 15] = \"punctuation\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"space\"] = 16] = \"space\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"text\"] = 17] = \"text\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"typeParameterName\"] = 18] = \"typeParameterName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"enumMemberName\"] = 19] = \"enumMemberName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"functionName\"] = 20] = \"functionName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"regularExpressionLiteral\"] = 21] = \"regularExpressionLiteral\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"link\"] = 22] = \"link\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"linkName\"] = 23] = \"linkName\";\n SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"linkText\"] = 24] = \"linkText\";\n return SymbolDisplayPartKind2;\n})(SymbolDisplayPartKind || {});\nvar CompletionInfoFlags = /* @__PURE__ */ ((CompletionInfoFlags2) => {\n CompletionInfoFlags2[CompletionInfoFlags2[\"None\"] = 0] = \"None\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"MayIncludeAutoImports\"] = 1] = \"MayIncludeAutoImports\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"IsImportStatementCompletion\"] = 2] = \"IsImportStatementCompletion\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"IsContinuation\"] = 4] = \"IsContinuation\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"ResolvedModuleSpecifiers\"] = 8] = \"ResolvedModuleSpecifiers\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"ResolvedModuleSpecifiersBeyondLimit\"] = 16] = \"ResolvedModuleSpecifiersBeyondLimit\";\n CompletionInfoFlags2[CompletionInfoFlags2[\"MayIncludeMethodSnippets\"] = 32] = \"MayIncludeMethodSnippets\";\n return CompletionInfoFlags2;\n})(CompletionInfoFlags || {});\nvar OutliningSpanKind = /* @__PURE__ */ ((OutliningSpanKind2) => {\n OutliningSpanKind2[\"Comment\"] = \"comment\";\n OutliningSpanKind2[\"Region\"] = \"region\";\n OutliningSpanKind2[\"Code\"] = \"code\";\n OutliningSpanKind2[\"Imports\"] = \"imports\";\n return OutliningSpanKind2;\n})(OutliningSpanKind || {});\nvar OutputFileType = /* @__PURE__ */ ((OutputFileType2) => {\n OutputFileType2[OutputFileType2[\"JavaScript\"] = 0] = \"JavaScript\";\n OutputFileType2[OutputFileType2[\"SourceMap\"] = 1] = \"SourceMap\";\n OutputFileType2[OutputFileType2[\"Declaration\"] = 2] = \"Declaration\";\n return OutputFileType2;\n})(OutputFileType || {});\nvar EndOfLineState = /* @__PURE__ */ ((EndOfLineState2) => {\n EndOfLineState2[EndOfLineState2[\"None\"] = 0] = \"None\";\n EndOfLineState2[EndOfLineState2[\"InMultiLineCommentTrivia\"] = 1] = \"InMultiLineCommentTrivia\";\n EndOfLineState2[EndOfLineState2[\"InSingleQuoteStringLiteral\"] = 2] = \"InSingleQuoteStringLiteral\";\n EndOfLineState2[EndOfLineState2[\"InDoubleQuoteStringLiteral\"] = 3] = \"InDoubleQuoteStringLiteral\";\n EndOfLineState2[EndOfLineState2[\"InTemplateHeadOrNoSubstitutionTemplate\"] = 4] = \"InTemplateHeadOrNoSubstitutionTemplate\";\n EndOfLineState2[EndOfLineState2[\"InTemplateMiddleOrTail\"] = 5] = \"InTemplateMiddleOrTail\";\n EndOfLineState2[EndOfLineState2[\"InTemplateSubstitutionPosition\"] = 6] = \"InTemplateSubstitutionPosition\";\n return EndOfLineState2;\n})(EndOfLineState || {});\nvar TokenClass = /* @__PURE__ */ ((TokenClass2) => {\n TokenClass2[TokenClass2[\"Punctuation\"] = 0] = \"Punctuation\";\n TokenClass2[TokenClass2[\"Keyword\"] = 1] = \"Keyword\";\n TokenClass2[TokenClass2[\"Operator\"] = 2] = \"Operator\";\n TokenClass2[TokenClass2[\"Comment\"] = 3] = \"Comment\";\n TokenClass2[TokenClass2[\"Whitespace\"] = 4] = \"Whitespace\";\n TokenClass2[TokenClass2[\"Identifier\"] = 5] = \"Identifier\";\n TokenClass2[TokenClass2[\"NumberLiteral\"] = 6] = \"NumberLiteral\";\n TokenClass2[TokenClass2[\"BigIntLiteral\"] = 7] = \"BigIntLiteral\";\n TokenClass2[TokenClass2[\"StringLiteral\"] = 8] = \"StringLiteral\";\n TokenClass2[TokenClass2[\"RegExpLiteral\"] = 9] = \"RegExpLiteral\";\n return TokenClass2;\n})(TokenClass || {});\nvar ScriptElementKind = /* @__PURE__ */ ((ScriptElementKind2) => {\n ScriptElementKind2[\"unknown\"] = \"\";\n ScriptElementKind2[\"warning\"] = \"warning\";\n ScriptElementKind2[\"keyword\"] = \"keyword\";\n ScriptElementKind2[\"scriptElement\"] = \"script\";\n ScriptElementKind2[\"moduleElement\"] = \"module\";\n ScriptElementKind2[\"classElement\"] = \"class\";\n ScriptElementKind2[\"localClassElement\"] = \"local class\";\n ScriptElementKind2[\"interfaceElement\"] = \"interface\";\n ScriptElementKind2[\"typeElement\"] = \"type\";\n ScriptElementKind2[\"enumElement\"] = \"enum\";\n ScriptElementKind2[\"enumMemberElement\"] = \"enum member\";\n ScriptElementKind2[\"variableElement\"] = \"var\";\n ScriptElementKind2[\"localVariableElement\"] = \"local var\";\n ScriptElementKind2[\"variableUsingElement\"] = \"using\";\n ScriptElementKind2[\"variableAwaitUsingElement\"] = \"await using\";\n ScriptElementKind2[\"functionElement\"] = \"function\";\n ScriptElementKind2[\"localFunctionElement\"] = \"local function\";\n ScriptElementKind2[\"memberFunctionElement\"] = \"method\";\n ScriptElementKind2[\"memberGetAccessorElement\"] = \"getter\";\n ScriptElementKind2[\"memberSetAccessorElement\"] = \"setter\";\n ScriptElementKind2[\"memberVariableElement\"] = \"property\";\n ScriptElementKind2[\"memberAccessorVariableElement\"] = \"accessor\";\n ScriptElementKind2[\"constructorImplementationElement\"] = \"constructor\";\n ScriptElementKind2[\"callSignatureElement\"] = \"call\";\n ScriptElementKind2[\"indexSignatureElement\"] = \"index\";\n ScriptElementKind2[\"constructSignatureElement\"] = \"construct\";\n ScriptElementKind2[\"parameterElement\"] = \"parameter\";\n ScriptElementKind2[\"typeParameterElement\"] = \"type parameter\";\n ScriptElementKind2[\"primitiveType\"] = \"primitive type\";\n ScriptElementKind2[\"label\"] = \"label\";\n ScriptElementKind2[\"alias\"] = \"alias\";\n ScriptElementKind2[\"constElement\"] = \"const\";\n ScriptElementKind2[\"letElement\"] = \"let\";\n ScriptElementKind2[\"directory\"] = \"directory\";\n ScriptElementKind2[\"externalModuleName\"] = \"external module name\";\n ScriptElementKind2[\"jsxAttribute\"] = \"JSX attribute\";\n ScriptElementKind2[\"string\"] = \"string\";\n ScriptElementKind2[\"link\"] = \"link\";\n ScriptElementKind2[\"linkName\"] = \"link name\";\n ScriptElementKind2[\"linkText\"] = \"link text\";\n return ScriptElementKind2;\n})(ScriptElementKind || {});\nvar ScriptElementKindModifier = /* @__PURE__ */ ((ScriptElementKindModifier2) => {\n ScriptElementKindModifier2[\"none\"] = \"\";\n ScriptElementKindModifier2[\"publicMemberModifier\"] = \"public\";\n ScriptElementKindModifier2[\"privateMemberModifier\"] = \"private\";\n ScriptElementKindModifier2[\"protectedMemberModifier\"] = \"protected\";\n ScriptElementKindModifier2[\"exportedModifier\"] = \"export\";\n ScriptElementKindModifier2[\"ambientModifier\"] = \"declare\";\n ScriptElementKindModifier2[\"staticModifier\"] = \"static\";\n ScriptElementKindModifier2[\"abstractModifier\"] = \"abstract\";\n ScriptElementKindModifier2[\"optionalModifier\"] = \"optional\";\n ScriptElementKindModifier2[\"deprecatedModifier\"] = \"deprecated\";\n ScriptElementKindModifier2[\"dtsModifier\"] = \".d.ts\";\n ScriptElementKindModifier2[\"tsModifier\"] = \".ts\";\n ScriptElementKindModifier2[\"tsxModifier\"] = \".tsx\";\n ScriptElementKindModifier2[\"jsModifier\"] = \".js\";\n ScriptElementKindModifier2[\"jsxModifier\"] = \".jsx\";\n ScriptElementKindModifier2[\"jsonModifier\"] = \".json\";\n ScriptElementKindModifier2[\"dmtsModifier\"] = \".d.mts\";\n ScriptElementKindModifier2[\"mtsModifier\"] = \".mts\";\n ScriptElementKindModifier2[\"mjsModifier\"] = \".mjs\";\n ScriptElementKindModifier2[\"dctsModifier\"] = \".d.cts\";\n ScriptElementKindModifier2[\"ctsModifier\"] = \".cts\";\n ScriptElementKindModifier2[\"cjsModifier\"] = \".cjs\";\n return ScriptElementKindModifier2;\n})(ScriptElementKindModifier || {});\nvar ClassificationTypeNames = /* @__PURE__ */ ((ClassificationTypeNames2) => {\n ClassificationTypeNames2[\"comment\"] = \"comment\";\n ClassificationTypeNames2[\"identifier\"] = \"identifier\";\n ClassificationTypeNames2[\"keyword\"] = \"keyword\";\n ClassificationTypeNames2[\"numericLiteral\"] = \"number\";\n ClassificationTypeNames2[\"bigintLiteral\"] = \"bigint\";\n ClassificationTypeNames2[\"operator\"] = \"operator\";\n ClassificationTypeNames2[\"stringLiteral\"] = \"string\";\n ClassificationTypeNames2[\"whiteSpace\"] = \"whitespace\";\n ClassificationTypeNames2[\"text\"] = \"text\";\n ClassificationTypeNames2[\"punctuation\"] = \"punctuation\";\n ClassificationTypeNames2[\"className\"] = \"class name\";\n ClassificationTypeNames2[\"enumName\"] = \"enum name\";\n ClassificationTypeNames2[\"interfaceName\"] = \"interface name\";\n ClassificationTypeNames2[\"moduleName\"] = \"module name\";\n ClassificationTypeNames2[\"typeParameterName\"] = \"type parameter name\";\n ClassificationTypeNames2[\"typeAliasName\"] = \"type alias name\";\n ClassificationTypeNames2[\"parameterName\"] = \"parameter name\";\n ClassificationTypeNames2[\"docCommentTagName\"] = \"doc comment tag name\";\n ClassificationTypeNames2[\"jsxOpenTagName\"] = \"jsx open tag name\";\n ClassificationTypeNames2[\"jsxCloseTagName\"] = \"jsx close tag name\";\n ClassificationTypeNames2[\"jsxSelfClosingTagName\"] = \"jsx self closing tag name\";\n ClassificationTypeNames2[\"jsxAttribute\"] = \"jsx attribute\";\n ClassificationTypeNames2[\"jsxText\"] = \"jsx text\";\n ClassificationTypeNames2[\"jsxAttributeStringLiteralValue\"] = \"jsx attribute string literal value\";\n return ClassificationTypeNames2;\n})(ClassificationTypeNames || {});\nvar ClassificationType = /* @__PURE__ */ ((ClassificationType2) => {\n ClassificationType2[ClassificationType2[\"comment\"] = 1] = \"comment\";\n ClassificationType2[ClassificationType2[\"identifier\"] = 2] = \"identifier\";\n ClassificationType2[ClassificationType2[\"keyword\"] = 3] = \"keyword\";\n ClassificationType2[ClassificationType2[\"numericLiteral\"] = 4] = \"numericLiteral\";\n ClassificationType2[ClassificationType2[\"operator\"] = 5] = \"operator\";\n ClassificationType2[ClassificationType2[\"stringLiteral\"] = 6] = \"stringLiteral\";\n ClassificationType2[ClassificationType2[\"regularExpressionLiteral\"] = 7] = \"regularExpressionLiteral\";\n ClassificationType2[ClassificationType2[\"whiteSpace\"] = 8] = \"whiteSpace\";\n ClassificationType2[ClassificationType2[\"text\"] = 9] = \"text\";\n ClassificationType2[ClassificationType2[\"punctuation\"] = 10] = \"punctuation\";\n ClassificationType2[ClassificationType2[\"className\"] = 11] = \"className\";\n ClassificationType2[ClassificationType2[\"enumName\"] = 12] = \"enumName\";\n ClassificationType2[ClassificationType2[\"interfaceName\"] = 13] = \"interfaceName\";\n ClassificationType2[ClassificationType2[\"moduleName\"] = 14] = \"moduleName\";\n ClassificationType2[ClassificationType2[\"typeParameterName\"] = 15] = \"typeParameterName\";\n ClassificationType2[ClassificationType2[\"typeAliasName\"] = 16] = \"typeAliasName\";\n ClassificationType2[ClassificationType2[\"parameterName\"] = 17] = \"parameterName\";\n ClassificationType2[ClassificationType2[\"docCommentTagName\"] = 18] = \"docCommentTagName\";\n ClassificationType2[ClassificationType2[\"jsxOpenTagName\"] = 19] = \"jsxOpenTagName\";\n ClassificationType2[ClassificationType2[\"jsxCloseTagName\"] = 20] = \"jsxCloseTagName\";\n ClassificationType2[ClassificationType2[\"jsxSelfClosingTagName\"] = 21] = \"jsxSelfClosingTagName\";\n ClassificationType2[ClassificationType2[\"jsxAttribute\"] = 22] = \"jsxAttribute\";\n ClassificationType2[ClassificationType2[\"jsxText\"] = 23] = \"jsxText\";\n ClassificationType2[ClassificationType2[\"jsxAttributeStringLiteralValue\"] = 24] = \"jsxAttributeStringLiteralValue\";\n ClassificationType2[ClassificationType2[\"bigintLiteral\"] = 25] = \"bigintLiteral\";\n return ClassificationType2;\n})(ClassificationType || {});\n\n// src/services/utilities.ts\nvar scanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n true\n);\nvar SemanticMeaning = /* @__PURE__ */ ((SemanticMeaning2) => {\n SemanticMeaning2[SemanticMeaning2[\"None\"] = 0] = \"None\";\n SemanticMeaning2[SemanticMeaning2[\"Value\"] = 1] = \"Value\";\n SemanticMeaning2[SemanticMeaning2[\"Type\"] = 2] = \"Type\";\n SemanticMeaning2[SemanticMeaning2[\"Namespace\"] = 4] = \"Namespace\";\n SemanticMeaning2[SemanticMeaning2[\"All\"] = 7] = \"All\";\n return SemanticMeaning2;\n})(SemanticMeaning || {});\nfunction getMeaningFromDeclaration(node) {\n switch (node.kind) {\n case 261 /* VariableDeclaration */:\n return isInJSFile(node) && getJSDocEnumTag(node) ? 7 /* All */ : 1 /* Value */;\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 300 /* CatchClause */:\n case 292 /* JsxAttribute */:\n return 1 /* Value */;\n case 169 /* TypeParameter */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 188 /* TypeLiteral */:\n return 2 /* Type */;\n case 347 /* JSDocTypedefTag */:\n return node.name === void 0 ? 1 /* Value */ | 2 /* Type */ : 2 /* Type */;\n case 307 /* EnumMember */:\n case 264 /* ClassDeclaration */:\n return 1 /* Value */ | 2 /* Type */;\n case 268 /* ModuleDeclaration */:\n if (isAmbientModule(node)) {\n return 4 /* Namespace */ | 1 /* Value */;\n } else if (getModuleInstanceState(node) === 1 /* Instantiated */) {\n return 4 /* Namespace */ | 1 /* Value */;\n } else {\n return 4 /* Namespace */;\n }\n case 267 /* EnumDeclaration */:\n case 276 /* NamedImports */:\n case 277 /* ImportSpecifier */:\n case 272 /* ImportEqualsDeclaration */:\n case 273 /* ImportDeclaration */:\n case 278 /* ExportAssignment */:\n case 279 /* ExportDeclaration */:\n return 7 /* All */;\n // An external module can be a Value\n case 308 /* SourceFile */:\n return 4 /* Namespace */ | 1 /* Value */;\n }\n return 7 /* All */;\n}\nfunction getMeaningFromLocation(node) {\n node = getAdjustedReferenceLocation(node);\n const parent2 = node.parent;\n if (node.kind === 308 /* SourceFile */) {\n return 1 /* Value */;\n } else if (isExportAssignment(parent2) || isExportSpecifier(parent2) || isExternalModuleReference(parent2) || isImportSpecifier(parent2) || isImportClause(parent2) || isImportEqualsDeclaration(parent2) && node === parent2.name) {\n return 7 /* All */;\n } else if (isInRightSideOfInternalImportEqualsDeclaration(node)) {\n return getMeaningFromRightHandSideOfImportEquals(node);\n } else if (isDeclarationName(node)) {\n return getMeaningFromDeclaration(parent2);\n } else if (isEntityName(node) && findAncestor(node, or(isJSDocNameReference, isJSDocLinkLike, isJSDocMemberName))) {\n return 7 /* All */;\n } else if (isTypeReference(node)) {\n return 2 /* Type */;\n } else if (isNamespaceReference(node)) {\n return 4 /* Namespace */;\n } else if (isTypeParameterDeclaration(parent2)) {\n Debug.assert(isJSDocTemplateTag(parent2.parent));\n return 2 /* Type */;\n } else if (isLiteralTypeNode(parent2)) {\n return 2 /* Type */ | 1 /* Value */;\n } else {\n return 1 /* Value */;\n }\n}\nfunction getMeaningFromRightHandSideOfImportEquals(node) {\n const name = node.kind === 167 /* QualifiedName */ ? node : isQualifiedName(node.parent) && node.parent.right === node ? node.parent : void 0;\n return name && name.parent.kind === 272 /* ImportEqualsDeclaration */ ? 7 /* All */ : 4 /* Namespace */;\n}\nfunction isInRightSideOfInternalImportEqualsDeclaration(node) {\n if (!node.parent) {\n return false;\n }\n while (node.parent.kind === 167 /* QualifiedName */) {\n node = node.parent;\n }\n return isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node;\n}\nfunction isNamespaceReference(node) {\n return isQualifiedNameNamespaceReference(node) || isPropertyAccessNamespaceReference(node);\n}\nfunction isQualifiedNameNamespaceReference(node) {\n let root = node;\n let isLastClause = true;\n if (root.parent.kind === 167 /* QualifiedName */) {\n while (root.parent && root.parent.kind === 167 /* QualifiedName */) {\n root = root.parent;\n }\n isLastClause = root.right === node;\n }\n return root.parent.kind === 184 /* TypeReference */ && !isLastClause;\n}\nfunction isPropertyAccessNamespaceReference(node) {\n let root = node;\n let isLastClause = true;\n if (root.parent.kind === 212 /* PropertyAccessExpression */) {\n while (root.parent && root.parent.kind === 212 /* PropertyAccessExpression */) {\n root = root.parent;\n }\n isLastClause = root.name === node;\n }\n if (!isLastClause && root.parent.kind === 234 /* ExpressionWithTypeArguments */ && root.parent.parent.kind === 299 /* HeritageClause */) {\n const decl = root.parent.parent.parent;\n return decl.kind === 264 /* ClassDeclaration */ && root.parent.parent.token === 119 /* ImplementsKeyword */ || decl.kind === 265 /* InterfaceDeclaration */ && root.parent.parent.token === 96 /* ExtendsKeyword */;\n }\n return false;\n}\nfunction isTypeReference(node) {\n if (isRightSideOfQualifiedNameOrPropertyAccess(node)) {\n node = node.parent;\n }\n switch (node.kind) {\n case 110 /* ThisKeyword */:\n return !isExpressionNode(node);\n case 198 /* ThisType */:\n return true;\n }\n switch (node.parent.kind) {\n case 184 /* TypeReference */:\n return true;\n case 206 /* ImportType */:\n return !node.parent.isTypeOf;\n case 234 /* ExpressionWithTypeArguments */:\n return isPartOfTypeNode(node.parent);\n }\n return false;\n}\nfunction isCallExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isCallExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isNewExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isCallOrNewExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isCallOrNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isTaggedTemplateTag(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isTaggedTemplateExpression, selectTagOfTaggedTemplateExpression, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isDecoratorTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isDecorator, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isJsxOpeningLikeElementTagName(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n return isCalleeWorker(node, isJsxOpeningLikeElement, selectTagNameOfJsxOpeningLikeElement, includeElementAccess, skipPastOuterExpressions);\n}\nfunction selectExpressionOfCallOrNewExpressionOrDecorator(node) {\n return node.expression;\n}\nfunction selectTagOfTaggedTemplateExpression(node) {\n return node.tag;\n}\nfunction selectTagNameOfJsxOpeningLikeElement(node) {\n return node.tagName;\n}\nfunction isCalleeWorker(node, pred, calleeSelector, includeElementAccess, skipPastOuterExpressions) {\n let target = includeElementAccess ? climbPastPropertyOrElementAccess(node) : climbPastPropertyAccess(node);\n if (skipPastOuterExpressions) {\n target = skipOuterExpressions(target);\n }\n return !!target && !!target.parent && pred(target.parent) && calleeSelector(target.parent) === target;\n}\nfunction climbPastPropertyAccess(node) {\n return isRightSideOfPropertyAccess(node) ? node.parent : node;\n}\nfunction climbPastPropertyOrElementAccess(node) {\n return isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node) ? node.parent : node;\n}\nfunction getTargetLabel(referenceNode, labelName) {\n while (referenceNode) {\n if (referenceNode.kind === 257 /* LabeledStatement */ && referenceNode.label.escapedText === labelName) {\n return referenceNode.label;\n }\n referenceNode = referenceNode.parent;\n }\n return void 0;\n}\nfunction hasPropertyAccessExpressionWithName(node, funcName) {\n if (!isPropertyAccessExpression(node.expression)) {\n return false;\n }\n return node.expression.name.text === funcName;\n}\nfunction isJumpStatementTarget(node) {\n var _a;\n return isIdentifier(node) && ((_a = tryCast(node.parent, isBreakOrContinueStatement)) == null ? void 0 : _a.label) === node;\n}\nfunction isLabelOfLabeledStatement(node) {\n var _a;\n return isIdentifier(node) && ((_a = tryCast(node.parent, isLabeledStatement)) == null ? void 0 : _a.label) === node;\n}\nfunction isLabelName(node) {\n return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node);\n}\nfunction isTagName(node) {\n var _a;\n return ((_a = tryCast(node.parent, isJSDocTag)) == null ? void 0 : _a.tagName) === node;\n}\nfunction isRightSideOfQualifiedName(node) {\n var _a;\n return ((_a = tryCast(node.parent, isQualifiedName)) == null ? void 0 : _a.right) === node;\n}\nfunction isRightSideOfPropertyAccess(node) {\n var _a;\n return ((_a = tryCast(node.parent, isPropertyAccessExpression)) == null ? void 0 : _a.name) === node;\n}\nfunction isArgumentExpressionOfElementAccess(node) {\n var _a;\n return ((_a = tryCast(node.parent, isElementAccessExpression)) == null ? void 0 : _a.argumentExpression) === node;\n}\nfunction isNameOfModuleDeclaration(node) {\n var _a;\n return ((_a = tryCast(node.parent, isModuleDeclaration)) == null ? void 0 : _a.name) === node;\n}\nfunction isNameOfFunctionDeclaration(node) {\n var _a;\n return isIdentifier(node) && ((_a = tryCast(node.parent, isFunctionLike)) == null ? void 0 : _a.name) === node;\n}\nfunction isLiteralNameOfPropertyDeclarationOrIndexAccess(node) {\n switch (node.parent.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 304 /* PropertyAssignment */:\n case 307 /* EnumMember */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 268 /* ModuleDeclaration */:\n return getNameOfDeclaration(node.parent) === node;\n case 213 /* ElementAccessExpression */:\n return node.parent.argumentExpression === node;\n case 168 /* ComputedPropertyName */:\n return true;\n case 202 /* LiteralType */:\n return node.parent.parent.kind === 200 /* IndexedAccessType */;\n default:\n return false;\n }\n}\nfunction isExpressionOfExternalModuleImportEqualsDeclaration(node) {\n return isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node;\n}\nfunction getContainerNode(node) {\n if (isJSDocTypeAlias(node)) {\n node = node.parent.parent;\n }\n while (true) {\n node = node.parent;\n if (!node) {\n return void 0;\n }\n switch (node.kind) {\n case 308 /* SourceFile */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 268 /* ModuleDeclaration */:\n return node;\n }\n }\n}\nfunction getNodeKind(node) {\n switch (node.kind) {\n case 308 /* SourceFile */:\n return isExternalModule(node) ? \"module\" /* moduleElement */ : \"script\" /* scriptElement */;\n case 268 /* ModuleDeclaration */:\n return \"module\" /* moduleElement */;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return \"class\" /* classElement */;\n case 265 /* InterfaceDeclaration */:\n return \"interface\" /* interfaceElement */;\n case 266 /* TypeAliasDeclaration */:\n case 339 /* JSDocCallbackTag */:\n case 347 /* JSDocTypedefTag */:\n return \"type\" /* typeElement */;\n case 267 /* EnumDeclaration */:\n return \"enum\" /* enumElement */;\n case 261 /* VariableDeclaration */:\n return getKindOfVariableDeclaration(node);\n case 209 /* BindingElement */:\n return getKindOfVariableDeclaration(getRootDeclaration(node));\n case 220 /* ArrowFunction */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return \"function\" /* functionElement */;\n case 178 /* GetAccessor */:\n return \"getter\" /* memberGetAccessorElement */;\n case 179 /* SetAccessor */:\n return \"setter\" /* memberSetAccessorElement */;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n return \"method\" /* memberFunctionElement */;\n case 304 /* PropertyAssignment */:\n const { initializer } = node;\n return isFunctionLike(initializer) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 305 /* ShorthandPropertyAssignment */:\n case 306 /* SpreadAssignment */:\n return \"property\" /* memberVariableElement */;\n case 182 /* IndexSignature */:\n return \"index\" /* indexSignatureElement */;\n case 181 /* ConstructSignature */:\n return \"construct\" /* constructSignatureElement */;\n case 180 /* CallSignature */:\n return \"call\" /* callSignatureElement */;\n case 177 /* Constructor */:\n case 176 /* ClassStaticBlockDeclaration */:\n return \"constructor\" /* constructorImplementationElement */;\n case 169 /* TypeParameter */:\n return \"type parameter\" /* typeParameterElement */;\n case 307 /* EnumMember */:\n return \"enum member\" /* enumMemberElement */;\n case 170 /* Parameter */:\n return hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */) ? \"property\" /* memberVariableElement */ : \"parameter\" /* parameterElement */;\n case 272 /* ImportEqualsDeclaration */:\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n case 275 /* NamespaceImport */:\n case 281 /* NamespaceExport */:\n return \"alias\" /* alias */;\n case 227 /* BinaryExpression */:\n const kind = getAssignmentDeclarationKind(node);\n const { right } = node;\n switch (kind) {\n case 7 /* ObjectDefinePropertyValue */:\n case 8 /* ObjectDefinePropertyExports */:\n case 9 /* ObjectDefinePrototypeProperty */:\n case 0 /* None */:\n return \"\" /* unknown */;\n case 1 /* ExportsProperty */:\n case 2 /* ModuleExports */:\n const rightKind = getNodeKind(right);\n return rightKind === \"\" /* unknown */ ? \"const\" /* constElement */ : rightKind;\n case 3 /* PrototypeProperty */:\n return isFunctionExpression(right) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n case 4 /* ThisProperty */:\n return \"property\" /* memberVariableElement */;\n // property\n case 5 /* Property */:\n return isFunctionExpression(right) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n case 6 /* Prototype */:\n return \"local class\" /* localClassElement */;\n default: {\n assertType(kind);\n return \"\" /* unknown */;\n }\n }\n case 80 /* Identifier */:\n return isImportClause(node.parent) ? \"alias\" /* alias */ : \"\" /* unknown */;\n case 278 /* ExportAssignment */:\n const scriptKind = getNodeKind(node.expression);\n return scriptKind === \"\" /* unknown */ ? \"const\" /* constElement */ : scriptKind;\n default:\n return \"\" /* unknown */;\n }\n function getKindOfVariableDeclaration(v) {\n return isVarConst(v) ? \"const\" /* constElement */ : isLet(v) ? \"let\" /* letElement */ : \"var\" /* variableElement */;\n }\n}\nfunction isThis(node) {\n switch (node.kind) {\n case 110 /* ThisKeyword */:\n return true;\n case 80 /* Identifier */:\n return identifierIsThisKeyword(node) && node.parent.kind === 170 /* Parameter */;\n default:\n return false;\n }\n}\nvar tripleSlashDirectivePrefixRegex = /^\\/\\/\\/\\s*= end;\n}\nfunction rangeOverlapsWithStartEnd(r1, start, end) {\n return startEndOverlapsWithStartEnd(r1.pos, r1.end, start, end);\n}\nfunction nodeOverlapsWithStartEnd(node, sourceFile, start, end) {\n return startEndOverlapsWithStartEnd(node.getStart(sourceFile), node.end, start, end);\n}\nfunction startEndOverlapsWithStartEnd(start1, end1, start2, end2) {\n const start = Math.max(start1, start2);\n const end = Math.min(end1, end2);\n return start < end;\n}\nfunction positionBelongsToNode(candidate, position, sourceFile) {\n Debug.assert(candidate.pos <= position);\n return position < candidate.end || !isCompletedNode(candidate, sourceFile);\n}\nfunction isCompletedNode(n, sourceFile) {\n if (n === void 0 || nodeIsMissing(n)) {\n return false;\n }\n switch (n.kind) {\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 211 /* ObjectLiteralExpression */:\n case 207 /* ObjectBindingPattern */:\n case 188 /* TypeLiteral */:\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n case 270 /* CaseBlock */:\n case 276 /* NamedImports */:\n case 280 /* NamedExports */:\n return nodeEndsWith(n, 20 /* CloseBraceToken */, sourceFile);\n case 300 /* CatchClause */:\n return isCompletedNode(n.block, sourceFile);\n case 215 /* NewExpression */:\n if (!n.arguments) {\n return true;\n }\n // falls through\n case 214 /* CallExpression */:\n case 218 /* ParenthesizedExpression */:\n case 197 /* ParenthesizedType */:\n return nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile);\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n return isCompletedNode(n.type, sourceFile);\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 181 /* ConstructSignature */:\n case 180 /* CallSignature */:\n case 220 /* ArrowFunction */:\n if (n.body) {\n return isCompletedNode(n.body, sourceFile);\n }\n if (n.type) {\n return isCompletedNode(n.type, sourceFile);\n }\n return hasChildOfKind(n, 22 /* CloseParenToken */, sourceFile);\n case 268 /* ModuleDeclaration */:\n return !!n.body && isCompletedNode(n.body, sourceFile);\n case 246 /* IfStatement */:\n if (n.elseStatement) {\n return isCompletedNode(n.elseStatement, sourceFile);\n }\n return isCompletedNode(n.thenStatement, sourceFile);\n case 245 /* ExpressionStatement */:\n return isCompletedNode(n.expression, sourceFile) || hasChildOfKind(n, 27 /* SemicolonToken */, sourceFile);\n case 210 /* ArrayLiteralExpression */:\n case 208 /* ArrayBindingPattern */:\n case 213 /* ElementAccessExpression */:\n case 168 /* ComputedPropertyName */:\n case 190 /* TupleType */:\n return nodeEndsWith(n, 24 /* CloseBracketToken */, sourceFile);\n case 182 /* IndexSignature */:\n if (n.type) {\n return isCompletedNode(n.type, sourceFile);\n }\n return hasChildOfKind(n, 24 /* CloseBracketToken */, sourceFile);\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n return false;\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 248 /* WhileStatement */:\n return isCompletedNode(n.statement, sourceFile);\n case 247 /* DoStatement */:\n return hasChildOfKind(n, 117 /* WhileKeyword */, sourceFile) ? nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile) : isCompletedNode(n.statement, sourceFile);\n case 187 /* TypeQuery */:\n return isCompletedNode(n.exprName, sourceFile);\n case 222 /* TypeOfExpression */:\n case 221 /* DeleteExpression */:\n case 223 /* VoidExpression */:\n case 230 /* YieldExpression */:\n case 231 /* SpreadElement */:\n const unaryWordExpression = n;\n return isCompletedNode(unaryWordExpression.expression, sourceFile);\n case 216 /* TaggedTemplateExpression */:\n return isCompletedNode(n.template, sourceFile);\n case 229 /* TemplateExpression */:\n const lastSpan = lastOrUndefined(n.templateSpans);\n return isCompletedNode(lastSpan, sourceFile);\n case 240 /* TemplateSpan */:\n return nodeIsPresent(n.literal);\n case 279 /* ExportDeclaration */:\n case 273 /* ImportDeclaration */:\n return nodeIsPresent(n.moduleSpecifier);\n case 225 /* PrefixUnaryExpression */:\n return isCompletedNode(n.operand, sourceFile);\n case 227 /* BinaryExpression */:\n return isCompletedNode(n.right, sourceFile);\n case 228 /* ConditionalExpression */:\n return isCompletedNode(n.whenFalse, sourceFile);\n default:\n return true;\n }\n}\nfunction nodeEndsWith(n, expectedLastToken, sourceFile) {\n const children = n.getChildren(sourceFile);\n if (children.length) {\n const lastChild = last(children);\n if (lastChild.kind === expectedLastToken) {\n return true;\n } else if (lastChild.kind === 27 /* SemicolonToken */ && children.length !== 1) {\n return children[children.length - 2].kind === expectedLastToken;\n }\n }\n return false;\n}\nfunction findListItemInfo(node) {\n const list = findContainingList(node);\n if (!list) {\n return void 0;\n }\n const children = list.getChildren();\n const listItemIndex = indexOfNode(children, node);\n return {\n listItemIndex,\n list\n };\n}\nfunction hasChildOfKind(n, kind, sourceFile) {\n return !!findChildOfKind(n, kind, sourceFile);\n}\nfunction findChildOfKind(n, kind, sourceFile) {\n return find(n.getChildren(sourceFile), (c) => c.kind === kind);\n}\nfunction findContainingList(node) {\n const syntaxList = find(node.parent.getChildren(), (c) => isSyntaxList(c) && rangeContainsRange(c, node));\n Debug.assert(!syntaxList || contains(syntaxList.getChildren(), node));\n return syntaxList;\n}\nfunction isDefaultModifier2(node) {\n return node.kind === 90 /* DefaultKeyword */;\n}\nfunction isClassKeyword(node) {\n return node.kind === 86 /* ClassKeyword */;\n}\nfunction isFunctionKeyword(node) {\n return node.kind === 100 /* FunctionKeyword */;\n}\nfunction getAdjustedLocationForClass(node) {\n if (isNamedDeclaration(node)) {\n return node.name;\n }\n if (isClassDeclaration(node)) {\n const defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier2);\n if (defaultModifier) return defaultModifier;\n }\n if (isClassExpression(node)) {\n const classKeyword = find(node.getChildren(), isClassKeyword);\n if (classKeyword) return classKeyword;\n }\n}\nfunction getAdjustedLocationForFunction(node) {\n if (isNamedDeclaration(node)) {\n return node.name;\n }\n if (isFunctionDeclaration(node)) {\n const defaultModifier = find(node.modifiers, isDefaultModifier2);\n if (defaultModifier) return defaultModifier;\n }\n if (isFunctionExpression(node)) {\n const functionKeyword = find(node.getChildren(), isFunctionKeyword);\n if (functionKeyword) return functionKeyword;\n }\n}\nfunction getAncestorTypeNode(node) {\n let lastTypeNode;\n findAncestor(node, (a) => {\n if (isTypeNode(a)) {\n lastTypeNode = a;\n }\n return !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent);\n });\n return lastTypeNode;\n}\nfunction getContextualTypeFromParentOrAncestorTypeNode(node, checker) {\n if (node.flags & (16777216 /* JSDoc */ & ~524288 /* JavaScriptFile */)) return void 0;\n const contextualType = getContextualTypeFromParent(node, checker);\n if (contextualType) return contextualType;\n const ancestorTypeNode = getAncestorTypeNode(node);\n return ancestorTypeNode && checker.getTypeAtLocation(ancestorTypeNode);\n}\nfunction getAdjustedLocationForDeclaration(node, forRename) {\n if (!forRename) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n return getAdjustedLocationForClass(node);\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return getAdjustedLocationForFunction(node);\n case 177 /* Constructor */:\n return node;\n }\n }\n if (isNamedDeclaration(node)) {\n return node.name;\n }\n}\nfunction getAdjustedLocationForImportDeclaration(node, forRename) {\n if (node.importClause) {\n if (node.importClause.name && node.importClause.namedBindings) {\n return;\n }\n if (node.importClause.name) {\n return node.importClause.name;\n }\n if (node.importClause.namedBindings) {\n if (isNamedImports(node.importClause.namedBindings)) {\n const onlyBinding = singleOrUndefined(node.importClause.namedBindings.elements);\n if (!onlyBinding) {\n return;\n }\n return onlyBinding.name;\n } else if (isNamespaceImport(node.importClause.namedBindings)) {\n return node.importClause.namedBindings.name;\n }\n }\n }\n if (!forRename) {\n return node.moduleSpecifier;\n }\n}\nfunction getAdjustedLocationForExportDeclaration(node, forRename) {\n if (node.exportClause) {\n if (isNamedExports(node.exportClause)) {\n const onlyBinding = singleOrUndefined(node.exportClause.elements);\n if (!onlyBinding) {\n return;\n }\n return node.exportClause.elements[0].name;\n } else if (isNamespaceExport(node.exportClause)) {\n return node.exportClause.name;\n }\n }\n if (!forRename) {\n return node.moduleSpecifier;\n }\n}\nfunction getAdjustedLocationForHeritageClause(node) {\n if (node.types.length === 1) {\n return node.types[0].expression;\n }\n}\nfunction getAdjustedLocation(node, forRename) {\n const { parent: parent2 } = node;\n if (isModifier(node) && (forRename || node.kind !== 90 /* DefaultKeyword */) ? canHaveModifiers(parent2) && contains(parent2.modifiers, node) : node.kind === 86 /* ClassKeyword */ ? isClassDeclaration(parent2) || isClassExpression(node) : node.kind === 100 /* FunctionKeyword */ ? isFunctionDeclaration(parent2) || isFunctionExpression(node) : node.kind === 120 /* InterfaceKeyword */ ? isInterfaceDeclaration(parent2) : node.kind === 94 /* EnumKeyword */ ? isEnumDeclaration(parent2) : node.kind === 156 /* TypeKeyword */ ? isTypeAliasDeclaration(parent2) : node.kind === 145 /* NamespaceKeyword */ || node.kind === 144 /* ModuleKeyword */ ? isModuleDeclaration(parent2) : node.kind === 102 /* ImportKeyword */ ? isImportEqualsDeclaration(parent2) : node.kind === 139 /* GetKeyword */ ? isGetAccessorDeclaration(parent2) : node.kind === 153 /* SetKeyword */ && isSetAccessorDeclaration(parent2)) {\n const location = getAdjustedLocationForDeclaration(parent2, forRename);\n if (location) {\n return location;\n }\n }\n if ((node.kind === 115 /* VarKeyword */ || node.kind === 87 /* ConstKeyword */ || node.kind === 121 /* LetKeyword */) && isVariableDeclarationList(parent2) && parent2.declarations.length === 1) {\n const decl = parent2.declarations[0];\n if (isIdentifier(decl.name)) {\n return decl.name;\n }\n }\n if (node.kind === 156 /* TypeKeyword */) {\n if (isImportClause(parent2) && parent2.isTypeOnly) {\n const location = getAdjustedLocationForImportDeclaration(parent2.parent, forRename);\n if (location) {\n return location;\n }\n }\n if (isExportDeclaration(parent2) && parent2.isTypeOnly) {\n const location = getAdjustedLocationForExportDeclaration(parent2, forRename);\n if (location) {\n return location;\n }\n }\n }\n if (node.kind === 130 /* AsKeyword */) {\n if (isImportSpecifier(parent2) && parent2.propertyName || isExportSpecifier(parent2) && parent2.propertyName || isNamespaceImport(parent2) || isNamespaceExport(parent2)) {\n return parent2.name;\n }\n if (isExportDeclaration(parent2) && parent2.exportClause && isNamespaceExport(parent2.exportClause)) {\n return parent2.exportClause.name;\n }\n }\n if (node.kind === 102 /* ImportKeyword */ && isImportDeclaration(parent2)) {\n const location = getAdjustedLocationForImportDeclaration(parent2, forRename);\n if (location) {\n return location;\n }\n }\n if (node.kind === 95 /* ExportKeyword */) {\n if (isExportDeclaration(parent2)) {\n const location = getAdjustedLocationForExportDeclaration(parent2, forRename);\n if (location) {\n return location;\n }\n }\n if (isExportAssignment(parent2)) {\n return skipOuterExpressions(parent2.expression);\n }\n }\n if (node.kind === 149 /* RequireKeyword */ && isExternalModuleReference(parent2)) {\n return parent2.expression;\n }\n if (node.kind === 161 /* FromKeyword */ && (isImportDeclaration(parent2) || isExportDeclaration(parent2)) && parent2.moduleSpecifier) {\n return parent2.moduleSpecifier;\n }\n if ((node.kind === 96 /* ExtendsKeyword */ || node.kind === 119 /* ImplementsKeyword */) && isHeritageClause(parent2) && parent2.token === node.kind) {\n const location = getAdjustedLocationForHeritageClause(parent2);\n if (location) {\n return location;\n }\n }\n if (node.kind === 96 /* ExtendsKeyword */) {\n if (isTypeParameterDeclaration(parent2) && parent2.constraint && isTypeReferenceNode(parent2.constraint)) {\n return parent2.constraint.typeName;\n }\n if (isConditionalTypeNode(parent2) && isTypeReferenceNode(parent2.extendsType)) {\n return parent2.extendsType.typeName;\n }\n }\n if (node.kind === 140 /* InferKeyword */ && isInferTypeNode(parent2)) {\n return parent2.typeParameter.name;\n }\n if (node.kind === 103 /* InKeyword */ && isTypeParameterDeclaration(parent2) && isMappedTypeNode(parent2.parent)) {\n return parent2.name;\n }\n if (node.kind === 143 /* KeyOfKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 143 /* KeyOfKeyword */ && isTypeReferenceNode(parent2.type)) {\n return parent2.type.typeName;\n }\n if (node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 148 /* ReadonlyKeyword */ && isArrayTypeNode(parent2.type) && isTypeReferenceNode(parent2.type.elementType)) {\n return parent2.type.elementType.typeName;\n }\n if (!forRename) {\n if (node.kind === 105 /* NewKeyword */ && isNewExpression(parent2) || node.kind === 116 /* VoidKeyword */ && isVoidExpression(parent2) || node.kind === 114 /* TypeOfKeyword */ && isTypeOfExpression(parent2) || node.kind === 135 /* AwaitKeyword */ && isAwaitExpression(parent2) || node.kind === 127 /* YieldKeyword */ && isYieldExpression(parent2) || node.kind === 91 /* DeleteKeyword */ && isDeleteExpression(parent2)) {\n if (parent2.expression) {\n return skipOuterExpressions(parent2.expression);\n }\n }\n if ((node.kind === 103 /* InKeyword */ || node.kind === 104 /* InstanceOfKeyword */) && isBinaryExpression(parent2) && parent2.operatorToken === node) {\n return skipOuterExpressions(parent2.right);\n }\n if (node.kind === 130 /* AsKeyword */ && isAsExpression(parent2) && isTypeReferenceNode(parent2.type)) {\n return parent2.type.typeName;\n }\n if (node.kind === 103 /* InKeyword */ && isForInStatement(parent2) || node.kind === 165 /* OfKeyword */ && isForOfStatement(parent2)) {\n return skipOuterExpressions(parent2.expression);\n }\n }\n return node;\n}\nfunction getAdjustedReferenceLocation(node) {\n return getAdjustedLocation(\n node,\n /*forRename*/\n false\n );\n}\nfunction getAdjustedRenameLocation(node) {\n return getAdjustedLocation(\n node,\n /*forRename*/\n true\n );\n}\nfunction getTouchingPropertyName(sourceFile, position) {\n return getTouchingToken(sourceFile, position, (n) => isPropertyNameLiteral(n) || isKeyword(n.kind) || isPrivateIdentifier(n));\n}\nfunction getTouchingToken(sourceFile, position, includePrecedingTokenAtEndPosition) {\n return getTokenAtPositionWorker(\n sourceFile,\n position,\n /*allowPositionInLeadingTrivia*/\n false,\n includePrecedingTokenAtEndPosition,\n /*includeEndPosition*/\n false\n );\n}\nfunction getTokenAtPosition(sourceFile, position) {\n return getTokenAtPositionWorker(\n sourceFile,\n position,\n /*allowPositionInLeadingTrivia*/\n true,\n /*includePrecedingTokenAtEndPosition*/\n void 0,\n /*includeEndPosition*/\n false\n );\n}\nfunction getTokenAtPositionWorker(sourceFile, position, allowPositionInLeadingTrivia, includePrecedingTokenAtEndPosition, includeEndPosition) {\n let current = sourceFile;\n let foundToken;\n outer:\n while (true) {\n const children = current.getChildren(sourceFile);\n const i = binarySearchKey(children, position, (_, i2) => i2, (middle, _) => {\n const end = children[middle].getEnd();\n if (end < position) {\n return -1 /* LessThan */;\n }\n const start = allowPositionInLeadingTrivia ? children[middle].getFullStart() : children[middle].getStart(\n sourceFile,\n /*includeJsDocComment*/\n true\n );\n if (start > position) {\n return 1 /* GreaterThan */;\n }\n if (nodeContainsPosition(children[middle], start, end)) {\n if (children[middle - 1]) {\n if (nodeContainsPosition(children[middle - 1])) {\n return 1 /* GreaterThan */;\n }\n }\n return 0 /* EqualTo */;\n }\n if (includePrecedingTokenAtEndPosition && start === position && children[middle - 1] && children[middle - 1].getEnd() === position && nodeContainsPosition(children[middle - 1])) {\n return 1 /* GreaterThan */;\n }\n return -1 /* LessThan */;\n });\n if (foundToken) {\n return foundToken;\n }\n if (i >= 0 && children[i]) {\n current = children[i];\n continue outer;\n }\n return current;\n }\n function nodeContainsPosition(node, start, end) {\n end ?? (end = node.getEnd());\n if (end < position) {\n return false;\n }\n start ?? (start = allowPositionInLeadingTrivia ? node.getFullStart() : node.getStart(\n sourceFile,\n /*includeJsDocComment*/\n true\n ));\n if (start > position) {\n return false;\n }\n if (position < end || position === end && (node.kind === 1 /* EndOfFileToken */ || includeEndPosition)) {\n return true;\n } else if (includePrecedingTokenAtEndPosition && end === position) {\n const previousToken = findPrecedingToken(position, sourceFile, node);\n if (previousToken && includePrecedingTokenAtEndPosition(previousToken)) {\n foundToken = previousToken;\n return true;\n }\n }\n return false;\n }\n}\nfunction findFirstNonJsxWhitespaceToken(sourceFile, position) {\n let tokenAtPosition = getTokenAtPosition(sourceFile, position);\n while (isWhiteSpaceOnlyJsxText(tokenAtPosition)) {\n const nextToken = findNextToken(tokenAtPosition, tokenAtPosition.parent, sourceFile);\n if (!nextToken) return;\n tokenAtPosition = nextToken;\n }\n return tokenAtPosition;\n}\nfunction findTokenOnLeftOfPosition(file, position) {\n const tokenAtPosition = getTokenAtPosition(file, position);\n if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) {\n return tokenAtPosition;\n }\n return findPrecedingToken(position, file);\n}\nfunction findNextToken(previousToken, parent2, sourceFile) {\n return find2(parent2);\n function find2(n) {\n if (isToken(n) && n.pos === previousToken.end) {\n return n;\n }\n return firstDefined(n.getChildren(sourceFile), (child) => {\n const shouldDiveInChildNode = (\n // previous token is enclosed somewhere in the child\n child.pos <= previousToken.pos && child.end > previousToken.end || // previous token ends exactly at the beginning of child\n child.pos === previousToken.end\n );\n return shouldDiveInChildNode && nodeHasTokens(child, sourceFile) ? find2(child) : void 0;\n });\n }\n}\nfunction findPrecedingToken(position, sourceFile, startNode2, excludeJsdoc) {\n const result = find2(startNode2 || sourceFile);\n Debug.assert(!(result && isWhiteSpaceOnlyJsxText(result)));\n return result;\n function find2(n) {\n if (isNonWhitespaceToken(n) && n.kind !== 1 /* EndOfFileToken */) {\n return n;\n }\n const children = n.getChildren(sourceFile);\n const i = binarySearchKey(children, position, (_, i2) => i2, (middle, _) => {\n if (position < children[middle].end) {\n if (!children[middle - 1] || position >= children[middle - 1].end) {\n return 0 /* EqualTo */;\n }\n return 1 /* GreaterThan */;\n }\n return -1 /* LessThan */;\n });\n if (i >= 0 && children[i]) {\n const child = children[i];\n if (position < child.end) {\n const start = child.getStart(\n sourceFile,\n /*includeJsDoc*/\n !excludeJsdoc\n );\n const lookInPreviousChild = start >= position || // cursor in the leading trivia\n !nodeHasTokens(child, sourceFile) || isWhiteSpaceOnlyJsxText(child);\n if (lookInPreviousChild) {\n const candidate2 = findRightmostChildNodeWithTokens(\n children,\n /*exclusiveStartPosition*/\n i,\n sourceFile,\n n.kind\n );\n if (candidate2) {\n if (!excludeJsdoc && isJSDocCommentContainingNode(candidate2) && candidate2.getChildren(sourceFile).length) {\n return find2(candidate2);\n }\n return findRightmostToken(candidate2, sourceFile);\n }\n return void 0;\n } else {\n return find2(child);\n }\n }\n }\n Debug.assert(startNode2 !== void 0 || n.kind === 308 /* SourceFile */ || n.kind === 1 /* EndOfFileToken */ || isJSDocCommentContainingNode(n));\n const candidate = findRightmostChildNodeWithTokens(\n children,\n /*exclusiveStartPosition*/\n children.length,\n sourceFile,\n n.kind\n );\n return candidate && findRightmostToken(candidate, sourceFile);\n }\n}\nfunction isNonWhitespaceToken(n) {\n return isToken(n) && !isWhiteSpaceOnlyJsxText(n);\n}\nfunction findRightmostToken(n, sourceFile) {\n if (isNonWhitespaceToken(n)) {\n return n;\n }\n const children = n.getChildren(sourceFile);\n if (children.length === 0) {\n return n;\n }\n const candidate = findRightmostChildNodeWithTokens(\n children,\n /*exclusiveStartPosition*/\n children.length,\n sourceFile,\n n.kind\n );\n return candidate && findRightmostToken(candidate, sourceFile);\n}\nfunction findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {\n for (let i = exclusiveStartPosition - 1; i >= 0; i--) {\n const child = children[i];\n if (isWhiteSpaceOnlyJsxText(child)) {\n if (i === 0 && (parentKind === 12 /* JsxText */ || parentKind === 286 /* JsxSelfClosingElement */)) {\n Debug.fail(\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");\n }\n } else if (nodeHasTokens(children[i], sourceFile)) {\n return children[i];\n }\n }\n}\nfunction isInString(sourceFile, position, previousToken = findPrecedingToken(position, sourceFile)) {\n if (previousToken && isStringTextContainingNode(previousToken)) {\n const start = previousToken.getStart(sourceFile);\n const end = previousToken.getEnd();\n if (start < position && position < end) {\n return true;\n }\n if (position === end) {\n return !!previousToken.isUnterminated;\n }\n }\n return false;\n}\nfunction isInsideJsxElementOrAttribute(sourceFile, position) {\n const token = getTokenAtPosition(sourceFile, position);\n if (!token) {\n return false;\n }\n if (token.kind === 12 /* JsxText */) {\n return true;\n }\n if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 12 /* JsxText */) {\n return true;\n }\n if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 295 /* JsxExpression */) {\n return true;\n }\n if (token && token.kind === 20 /* CloseBraceToken */ && token.parent.kind === 295 /* JsxExpression */) {\n return true;\n }\n if (token.kind === 31 /* LessThanSlashToken */ && token.parent.kind === 288 /* JsxClosingElement */) {\n return true;\n }\n return false;\n}\nfunction isWhiteSpaceOnlyJsxText(node) {\n return isJsxText(node) && node.containsOnlyTriviaWhiteSpaces;\n}\nfunction isInTemplateString(sourceFile, position) {\n const token = getTokenAtPosition(sourceFile, position);\n return isTemplateLiteralKind(token.kind) && position > token.getStart(sourceFile);\n}\nfunction isInJSXText(sourceFile, position) {\n const token = getTokenAtPosition(sourceFile, position);\n if (isJsxText(token)) {\n return true;\n }\n if (token.kind === 19 /* OpenBraceToken */ && isJsxExpression(token.parent) && isJsxElement(token.parent.parent)) {\n return true;\n }\n if (token.kind === 30 /* LessThanToken */ && isJsxOpeningLikeElement(token.parent) && isJsxElement(token.parent.parent)) {\n return true;\n }\n return false;\n}\nfunction isInsideJsxElement(sourceFile, position) {\n function isInsideJsxElementTraversal(node) {\n while (node) {\n if (node.kind >= 286 /* JsxSelfClosingElement */ && node.kind <= 295 /* JsxExpression */ || node.kind === 12 /* JsxText */ || node.kind === 30 /* LessThanToken */ || node.kind === 32 /* GreaterThanToken */ || node.kind === 80 /* Identifier */ || node.kind === 20 /* CloseBraceToken */ || node.kind === 19 /* OpenBraceToken */ || node.kind === 44 /* SlashToken */ || node.kind === 31 /* LessThanSlashToken */) {\n node = node.parent;\n } else if (node.kind === 285 /* JsxElement */) {\n if (position > node.getStart(sourceFile)) return true;\n node = node.parent;\n } else {\n return false;\n }\n }\n return false;\n }\n return isInsideJsxElementTraversal(getTokenAtPosition(sourceFile, position));\n}\nfunction findPrecedingMatchingToken(token, matchingTokenKind, sourceFile) {\n const closeTokenText = tokenToString(token.kind);\n const matchingTokenText = tokenToString(matchingTokenKind);\n const tokenFullStart = token.getFullStart();\n const bestGuessIndex = sourceFile.text.lastIndexOf(matchingTokenText, tokenFullStart);\n if (bestGuessIndex === -1) {\n return void 0;\n }\n if (sourceFile.text.lastIndexOf(closeTokenText, tokenFullStart - 1) < bestGuessIndex) {\n const nodeAtGuess = findPrecedingToken(bestGuessIndex + 1, sourceFile);\n if (nodeAtGuess && nodeAtGuess.kind === matchingTokenKind) {\n return nodeAtGuess;\n }\n }\n const tokenKind = token.kind;\n let remainingMatchingTokens = 0;\n while (true) {\n const preceding = findPrecedingToken(token.getFullStart(), sourceFile);\n if (!preceding) {\n return void 0;\n }\n token = preceding;\n if (token.kind === matchingTokenKind) {\n if (remainingMatchingTokens === 0) {\n return token;\n }\n remainingMatchingTokens--;\n } else if (token.kind === tokenKind) {\n remainingMatchingTokens++;\n }\n }\n}\nfunction removeOptionality(type, isOptionalExpression, isOptionalChain2) {\n return isOptionalExpression ? type.getNonNullableType() : isOptionalChain2 ? type.getNonOptionalType() : type;\n}\nfunction isPossiblyTypeArgumentPosition(token, sourceFile, checker) {\n const info = getPossibleTypeArgumentsInfo(token, sourceFile);\n return info !== void 0 && (isPartOfTypeNode(info.called) || getPossibleGenericSignatures(info.called, info.nTypeArguments, checker).length !== 0 || isPossiblyTypeArgumentPosition(info.called, sourceFile, checker));\n}\nfunction getPossibleGenericSignatures(called, typeArgumentCount, checker) {\n let type = checker.getTypeAtLocation(called);\n if (isOptionalChain(called.parent)) {\n type = removeOptionality(\n type,\n isOptionalChainRoot(called.parent),\n /*isOptionalChain*/\n true\n );\n }\n const signatures = isNewExpression(called.parent) ? type.getConstructSignatures() : type.getCallSignatures();\n return signatures.filter((candidate) => !!candidate.typeParameters && candidate.typeParameters.length >= typeArgumentCount);\n}\nfunction getPossibleTypeArgumentsInfo(tokenIn, sourceFile) {\n if (sourceFile.text.lastIndexOf(\"<\", tokenIn ? tokenIn.pos : sourceFile.text.length) === -1) {\n return void 0;\n }\n let token = tokenIn;\n let remainingLessThanTokens = 0;\n let nTypeArguments = 0;\n while (token) {\n switch (token.kind) {\n case 30 /* LessThanToken */:\n token = findPrecedingToken(token.getFullStart(), sourceFile);\n if (token && token.kind === 29 /* QuestionDotToken */) {\n token = findPrecedingToken(token.getFullStart(), sourceFile);\n }\n if (!token || !isIdentifier(token)) return void 0;\n if (!remainingLessThanTokens) {\n return isDeclarationName(token) ? void 0 : { called: token, nTypeArguments };\n }\n remainingLessThanTokens--;\n break;\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n remainingLessThanTokens = 3;\n break;\n case 49 /* GreaterThanGreaterThanToken */:\n remainingLessThanTokens = 2;\n break;\n case 32 /* GreaterThanToken */:\n remainingLessThanTokens++;\n break;\n case 20 /* CloseBraceToken */:\n token = findPrecedingMatchingToken(token, 19 /* OpenBraceToken */, sourceFile);\n if (!token) return void 0;\n break;\n case 22 /* CloseParenToken */:\n token = findPrecedingMatchingToken(token, 21 /* OpenParenToken */, sourceFile);\n if (!token) return void 0;\n break;\n case 24 /* CloseBracketToken */:\n token = findPrecedingMatchingToken(token, 23 /* OpenBracketToken */, sourceFile);\n if (!token) return void 0;\n break;\n // Valid tokens in a type name. Skip.\n case 28 /* CommaToken */:\n nTypeArguments++;\n break;\n case 39 /* EqualsGreaterThanToken */:\n // falls through\n case 80 /* Identifier */:\n case 11 /* StringLiteral */:\n case 9 /* NumericLiteral */:\n case 10 /* BigIntLiteral */:\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n // falls through\n case 114 /* TypeOfKeyword */:\n case 96 /* ExtendsKeyword */:\n case 143 /* KeyOfKeyword */:\n case 25 /* DotToken */:\n case 52 /* BarToken */:\n case 58 /* QuestionToken */:\n case 59 /* ColonToken */:\n break;\n default:\n if (isTypeNode(token)) {\n break;\n }\n return void 0;\n }\n token = findPrecedingToken(token.getFullStart(), sourceFile);\n }\n return void 0;\n}\nfunction isInComment(sourceFile, position, tokenAtPosition) {\n return ts_formatting_exports.getRangeOfEnclosingComment(\n sourceFile,\n position,\n /*precedingToken*/\n void 0,\n tokenAtPosition\n );\n}\nfunction hasDocComment(sourceFile, position) {\n const token = getTokenAtPosition(sourceFile, position);\n return !!findAncestor(token, isJSDoc);\n}\nfunction nodeHasTokens(n, sourceFile) {\n return n.kind === 1 /* EndOfFileToken */ ? !!n.jsDoc : n.getWidth(sourceFile) !== 0;\n}\nfunction getNodeModifiers(node, excludeFlags = 0 /* None */) {\n const result = [];\n const flags = isDeclaration(node) ? getCombinedNodeFlagsAlwaysIncludeJSDoc(node) & ~excludeFlags : 0 /* None */;\n if (flags & 2 /* Private */) result.push(\"private\" /* privateMemberModifier */);\n if (flags & 4 /* Protected */) result.push(\"protected\" /* protectedMemberModifier */);\n if (flags & 1 /* Public */) result.push(\"public\" /* publicMemberModifier */);\n if (flags & 256 /* Static */ || isClassStaticBlockDeclaration(node)) result.push(\"static\" /* staticModifier */);\n if (flags & 64 /* Abstract */) result.push(\"abstract\" /* abstractModifier */);\n if (flags & 32 /* Export */) result.push(\"export\" /* exportedModifier */);\n if (flags & 65536 /* Deprecated */) result.push(\"deprecated\" /* deprecatedModifier */);\n if (node.flags & 33554432 /* Ambient */) result.push(\"declare\" /* ambientModifier */);\n if (node.kind === 278 /* ExportAssignment */) result.push(\"export\" /* exportedModifier */);\n return result.length > 0 ? result.join(\",\") : \"\" /* none */;\n}\nfunction getTypeArgumentOrTypeParameterList(node) {\n if (node.kind === 184 /* TypeReference */ || node.kind === 214 /* CallExpression */) {\n return node.typeArguments;\n }\n if (isFunctionLike(node) || node.kind === 264 /* ClassDeclaration */ || node.kind === 265 /* InterfaceDeclaration */) {\n return node.typeParameters;\n }\n return void 0;\n}\nfunction isComment(kind) {\n return kind === 2 /* SingleLineCommentTrivia */ || kind === 3 /* MultiLineCommentTrivia */;\n}\nfunction isStringOrRegularExpressionOrTemplateLiteral(kind) {\n if (kind === 11 /* StringLiteral */ || kind === 14 /* RegularExpressionLiteral */ || isTemplateLiteralKind(kind)) {\n return true;\n }\n return false;\n}\nfunction areIntersectedTypesAvoidingStringReduction(checker, t1, t2) {\n return !!(t1.flags & 4 /* String */) && checker.isEmptyAnonymousObjectType(t2);\n}\nfunction isStringAndEmptyAnonymousObjectIntersection(type) {\n if (!type.isIntersection()) {\n return false;\n }\n const { types, checker } = type;\n return types.length === 2 && (areIntersectedTypesAvoidingStringReduction(checker, types[0], types[1]) || areIntersectedTypesAvoidingStringReduction(checker, types[1], types[0]));\n}\nfunction isInsideTemplateLiteral(node, position, sourceFile) {\n return isTemplateLiteralKind(node.kind) && (node.getStart(sourceFile) < position && position < node.end) || !!node.isUnterminated && position === node.end;\n}\nfunction isAccessibilityModifier(kind) {\n switch (kind) {\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n return true;\n }\n return false;\n}\nfunction cloneCompilerOptions(options) {\n const result = clone(options);\n setConfigFileInOptions(result, options && options.configFile);\n return result;\n}\nfunction isArrayLiteralOrObjectLiteralDestructuringPattern(node) {\n if (node.kind === 210 /* ArrayLiteralExpression */ || node.kind === 211 /* ObjectLiteralExpression */) {\n if (node.parent.kind === 227 /* BinaryExpression */ && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */) {\n return true;\n }\n if (node.parent.kind === 251 /* ForOfStatement */ && node.parent.initializer === node) {\n return true;\n }\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.kind === 304 /* PropertyAssignment */ ? node.parent.parent : node.parent)) {\n return true;\n }\n }\n return false;\n}\nfunction isInReferenceComment(sourceFile, position) {\n return isInReferenceCommentWorker(\n sourceFile,\n position,\n /*shouldBeReference*/\n true\n );\n}\nfunction isInNonReferenceComment(sourceFile, position) {\n return isInReferenceCommentWorker(\n sourceFile,\n position,\n /*shouldBeReference*/\n false\n );\n}\nfunction isInReferenceCommentWorker(sourceFile, position, shouldBeReference) {\n const range = isInComment(\n sourceFile,\n position,\n /*tokenAtPosition*/\n void 0\n );\n return !!range && shouldBeReference === tripleSlashDirectivePrefixRegex.test(sourceFile.text.substring(range.pos, range.end));\n}\nfunction getReplacementSpanForContextToken(contextToken, position) {\n if (!contextToken) return void 0;\n switch (contextToken.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return createTextSpanFromStringLiteralLikeContent(contextToken, position);\n default:\n return createTextSpanFromNode(contextToken);\n }\n}\nfunction createTextSpanFromNode(node, sourceFile, endNode2) {\n return createTextSpanFromBounds(node.getStart(sourceFile), (endNode2 || node).getEnd());\n}\nfunction createTextSpanFromStringLiteralLikeContent(node, position) {\n let replacementEnd = node.getEnd() - 1;\n if (node.isUnterminated) {\n if (node.getStart() === replacementEnd) return void 0;\n replacementEnd = Math.min(position, node.getEnd());\n }\n return createTextSpanFromBounds(node.getStart() + 1, replacementEnd);\n}\nfunction createTextRangeFromNode(node, sourceFile) {\n return createRange(node.getStart(sourceFile), node.end);\n}\nfunction createTextSpanFromRange(range) {\n return createTextSpanFromBounds(range.pos, range.end);\n}\nfunction createTextRangeFromSpan(span) {\n return createRange(span.start, span.start + span.length);\n}\nfunction createTextChangeFromStartLength(start, length2, newText) {\n return createTextChange(createTextSpan(start, length2), newText);\n}\nfunction createTextChange(span, newText) {\n return { span, newText };\n}\nvar typeKeywords = [\n 133 /* AnyKeyword */,\n 131 /* AssertsKeyword */,\n 163 /* BigIntKeyword */,\n 136 /* BooleanKeyword */,\n 97 /* FalseKeyword */,\n 140 /* InferKeyword */,\n 143 /* KeyOfKeyword */,\n 146 /* NeverKeyword */,\n 106 /* NullKeyword */,\n 150 /* NumberKeyword */,\n 151 /* ObjectKeyword */,\n 148 /* ReadonlyKeyword */,\n 154 /* StringKeyword */,\n 155 /* SymbolKeyword */,\n 114 /* TypeOfKeyword */,\n 112 /* TrueKeyword */,\n 116 /* VoidKeyword */,\n 157 /* UndefinedKeyword */,\n 158 /* UniqueKeyword */,\n 159 /* UnknownKeyword */\n];\nfunction isTypeKeyword(kind) {\n return contains(typeKeywords, kind);\n}\nfunction isTypeKeywordToken(node) {\n return node.kind === 156 /* TypeKeyword */;\n}\nfunction isTypeKeywordTokenOrIdentifier(node) {\n return isTypeKeywordToken(node) || isIdentifier(node) && node.text === \"type\";\n}\nfunction nodeSeenTracker() {\n const seen = [];\n return (node) => {\n const id = getNodeId(node);\n return !seen[id] && (seen[id] = true);\n };\n}\nfunction getSnapshotText(snap) {\n return snap.getText(0, snap.getLength());\n}\nfunction repeatString(str, count) {\n let result = \"\";\n for (let i = 0; i < count; i++) {\n result += str;\n }\n return result;\n}\nfunction skipConstraint(type) {\n return type.isTypeParameter() ? type.getConstraint() || type : type;\n}\nfunction getNameFromPropertyName(name) {\n return name.kind === 168 /* ComputedPropertyName */ ? isStringOrNumericLiteralLike(name.expression) ? name.expression.text : void 0 : isPrivateIdentifier(name) ? idText(name) : getTextOfIdentifierOrLiteral(name);\n}\nfunction programContainsModules(program) {\n return program.getSourceFiles().some((s) => !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!(s.externalModuleIndicator || s.commonJsModuleIndicator));\n}\nfunction programContainsEsModules(program) {\n return program.getSourceFiles().some((s) => !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!s.externalModuleIndicator);\n}\nfunction compilerOptionsIndicateEsModules(compilerOptions) {\n return !!compilerOptions.module || getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */ || !!compilerOptions.noEmit;\n}\nfunction createModuleSpecifierResolutionHost(program, host) {\n return {\n fileExists: (fileName) => program.fileExists(fileName),\n getCurrentDirectory: () => host.getCurrentDirectory(),\n readFile: maybeBind(host, host.readFile),\n useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames) || program.useCaseSensitiveFileNames,\n getSymlinkCache: maybeBind(host, host.getSymlinkCache) || program.getSymlinkCache,\n getModuleSpecifierCache: maybeBind(host, host.getModuleSpecifierCache),\n getPackageJsonInfoCache: () => {\n var _a;\n return (_a = program.getModuleResolutionCache()) == null ? void 0 : _a.getPackageJsonInfoCache();\n },\n getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation),\n redirectTargetsMap: program.redirectTargetsMap,\n getRedirectFromSourceFile: (fileName) => program.getRedirectFromSourceFile(fileName),\n isSourceOfProjectReferenceRedirect: (fileName) => program.isSourceOfProjectReferenceRedirect(fileName),\n getNearestAncestorDirectoryWithPackageJson: maybeBind(host, host.getNearestAncestorDirectoryWithPackageJson),\n getFileIncludeReasons: () => program.getFileIncludeReasons(),\n getCommonSourceDirectory: () => program.getCommonSourceDirectory(),\n getDefaultResolutionModeForFile: (file) => program.getDefaultResolutionModeForFile(file),\n getModeForResolutionAtIndex: (file, index) => program.getModeForResolutionAtIndex(file, index)\n };\n}\nfunction getModuleSpecifierResolverHost(program, host) {\n return {\n ...createModuleSpecifierResolutionHost(program, host),\n getCommonSourceDirectory: () => program.getCommonSourceDirectory()\n };\n}\nfunction moduleResolutionUsesNodeModules(moduleResolution) {\n return moduleResolution === 2 /* Node10 */ || moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */;\n}\nfunction makeImport(defaultImport, namedImports, moduleSpecifier, quotePreference, isTypeOnly) {\n return factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n defaultImport || namedImports ? factory.createImportClause(isTypeOnly ? 156 /* TypeKeyword */ : void 0, defaultImport, namedImports && namedImports.length ? factory.createNamedImports(namedImports) : void 0) : void 0,\n typeof moduleSpecifier === \"string\" ? makeStringLiteral(moduleSpecifier, quotePreference) : moduleSpecifier,\n /*attributes*/\n void 0\n );\n}\nfunction makeStringLiteral(text, quotePreference) {\n return factory.createStringLiteral(text, quotePreference === 0 /* Single */);\n}\nvar QuotePreference = /* @__PURE__ */ ((QuotePreference6) => {\n QuotePreference6[QuotePreference6[\"Single\"] = 0] = \"Single\";\n QuotePreference6[QuotePreference6[\"Double\"] = 1] = \"Double\";\n return QuotePreference6;\n})(QuotePreference || {});\nfunction quotePreferenceFromString(str, sourceFile) {\n return isStringDoubleQuoted(str, sourceFile) ? 1 /* Double */ : 0 /* Single */;\n}\nfunction getQuotePreference(sourceFile, preferences) {\n if (preferences.quotePreference && preferences.quotePreference !== \"auto\") {\n return preferences.quotePreference === \"single\" ? 0 /* Single */ : 1 /* Double */;\n } else {\n const firstModuleSpecifier = isFullSourceFile(sourceFile) && sourceFile.imports && find(sourceFile.imports, (n) => isStringLiteral(n) && !nodeIsSynthesized(n.parent));\n return firstModuleSpecifier ? quotePreferenceFromString(firstModuleSpecifier, sourceFile) : 1 /* Double */;\n }\n}\nfunction getQuoteFromPreference(qp) {\n switch (qp) {\n case 0 /* Single */:\n return \"'\";\n case 1 /* Double */:\n return '\"';\n default:\n return Debug.assertNever(qp);\n }\n}\nfunction symbolNameNoDefault(symbol) {\n const escaped = symbolEscapedNameNoDefault(symbol);\n return escaped === void 0 ? void 0 : unescapeLeadingUnderscores(escaped);\n}\nfunction symbolEscapedNameNoDefault(symbol) {\n if (symbol.escapedName !== \"default\" /* Default */) {\n return symbol.escapedName;\n }\n return firstDefined(symbol.declarations, (decl) => {\n const name = getNameOfDeclaration(decl);\n return name && name.kind === 80 /* Identifier */ ? name.escapedText : void 0;\n });\n}\nfunction isModuleSpecifierLike(node) {\n return isStringLiteralLike(node) && (isExternalModuleReference(node.parent) || isImportDeclaration(node.parent) || isJSDocImportTag(node.parent) || isRequireCall(\n node.parent,\n /*requireStringLiteralLikeArgument*/\n false\n ) && node.parent.arguments[0] === node || isImportCall(node.parent) && node.parent.arguments[0] === node);\n}\nfunction isObjectBindingElementWithoutPropertyName(bindingElement) {\n return isBindingElement(bindingElement) && isObjectBindingPattern(bindingElement.parent) && isIdentifier(bindingElement.name) && !bindingElement.propertyName;\n}\nfunction getPropertySymbolFromBindingElement(checker, bindingElement) {\n const typeOfPattern = checker.getTypeAtLocation(bindingElement.parent);\n return typeOfPattern && checker.getPropertyOfType(typeOfPattern, bindingElement.name.text);\n}\nfunction getParentNodeInSpan(node, file, span) {\n if (!node) return void 0;\n while (node.parent) {\n if (isSourceFile(node.parent) || !spanContainsNode(span, node.parent, file)) {\n return node;\n }\n node = node.parent;\n }\n}\nfunction spanContainsNode(span, node, file) {\n return textSpanContainsPosition(span, node.getStart(file)) && node.getEnd() <= textSpanEnd(span);\n}\nfunction findModifier(node, kind) {\n return canHaveModifiers(node) ? find(node.modifiers, (m) => m.kind === kind) : void 0;\n}\nfunction insertImports(changes, sourceFile, imports, blankLineBetween, preferences) {\n var _a;\n const decl = isArray(imports) ? imports[0] : imports;\n const importKindPredicate = decl.kind === 244 /* VariableStatement */ ? isRequireVariableStatement : isAnyImportSyntax;\n const existingImportStatements = filter(sourceFile.statements, importKindPredicate);\n const { comparer, isSorted } = ts_OrganizeImports_exports.getOrganizeImportsStringComparerWithDetection(existingImportStatements, preferences);\n const sortedNewImports = isArray(imports) ? toSorted(imports, (a, b) => ts_OrganizeImports_exports.compareImportsOrRequireStatements(a, b, comparer)) : [imports];\n if (!(existingImportStatements == null ? void 0 : existingImportStatements.length)) {\n if (isFullSourceFile(sourceFile)) {\n changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween);\n } else {\n for (const newImport of sortedNewImports) {\n changes.insertStatementsInNewFile(sourceFile.fileName, [newImport], (_a = getOriginalNode(newImport)) == null ? void 0 : _a.getSourceFile());\n }\n }\n return;\n }\n Debug.assert(isFullSourceFile(sourceFile));\n if (existingImportStatements && isSorted) {\n for (const newImport of sortedNewImports) {\n const insertionIndex = ts_OrganizeImports_exports.getImportDeclarationInsertionIndex(existingImportStatements, newImport, comparer);\n if (insertionIndex === 0) {\n const options = existingImportStatements[0] === sourceFile.statements[0] ? { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude } : {};\n changes.insertNodeBefore(\n sourceFile,\n existingImportStatements[0],\n newImport,\n /*blankLineBetween*/\n false,\n options\n );\n } else {\n const prevImport = existingImportStatements[insertionIndex - 1];\n changes.insertNodeAfter(sourceFile, prevImport, newImport);\n }\n }\n } else {\n const lastExistingImport = lastOrUndefined(existingImportStatements);\n if (lastExistingImport) {\n changes.insertNodesAfter(sourceFile, lastExistingImport, sortedNewImports);\n } else {\n changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween);\n }\n }\n}\nfunction getTypeKeywordOfTypeOnlyImport(importClause, sourceFile) {\n Debug.assert(importClause.isTypeOnly);\n return cast(importClause.getChildAt(0, sourceFile), isTypeKeywordToken);\n}\nfunction textSpansEqual(a, b) {\n return !!a && !!b && a.start === b.start && a.length === b.length;\n}\nfunction documentSpansEqual(a, b, useCaseSensitiveFileNames2) {\n return (useCaseSensitiveFileNames2 ? equateStringsCaseSensitive : equateStringsCaseInsensitive)(a.fileName, b.fileName) && textSpansEqual(a.textSpan, b.textSpan);\n}\nfunction getDocumentSpansEqualityComparer(useCaseSensitiveFileNames2) {\n return (a, b) => documentSpansEqual(a, b, useCaseSensitiveFileNames2);\n}\nfunction forEachUnique(array, callback) {\n if (array) {\n for (let i = 0; i < array.length; i++) {\n if (array.indexOf(array[i]) === i) {\n const result = callback(array[i], i);\n if (result) {\n return result;\n }\n }\n }\n }\n return void 0;\n}\nfunction isTextWhiteSpaceLike(text, startPos, endPos) {\n for (let i = startPos; i < endPos; i++) {\n if (!isWhiteSpaceLike(text.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction getMappedLocation(location, sourceMapper, fileExists) {\n const mapsTo = sourceMapper.tryGetSourcePosition(location);\n return mapsTo && (!fileExists || fileExists(normalizePath(mapsTo.fileName)) ? mapsTo : void 0);\n}\nfunction getMappedDocumentSpan(documentSpan, sourceMapper, fileExists) {\n const { fileName, textSpan } = documentSpan;\n const newPosition = getMappedLocation({ fileName, pos: textSpan.start }, sourceMapper, fileExists);\n if (!newPosition) return void 0;\n const newEndPosition = getMappedLocation({ fileName, pos: textSpan.start + textSpan.length }, sourceMapper, fileExists);\n const newLength = newEndPosition ? newEndPosition.pos - newPosition.pos : textSpan.length;\n return {\n fileName: newPosition.fileName,\n textSpan: {\n start: newPosition.pos,\n length: newLength\n },\n originalFileName: documentSpan.fileName,\n originalTextSpan: documentSpan.textSpan,\n contextSpan: getMappedContextSpan(documentSpan, sourceMapper, fileExists),\n originalContextSpan: documentSpan.contextSpan\n };\n}\nfunction getMappedContextSpan(documentSpan, sourceMapper, fileExists) {\n const contextSpanStart = documentSpan.contextSpan && getMappedLocation(\n { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start },\n sourceMapper,\n fileExists\n );\n const contextSpanEnd = documentSpan.contextSpan && getMappedLocation(\n { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start + documentSpan.contextSpan.length },\n sourceMapper,\n fileExists\n );\n return contextSpanStart && contextSpanEnd ? { start: contextSpanStart.pos, length: contextSpanEnd.pos - contextSpanStart.pos } : void 0;\n}\nfunction isFirstDeclarationOfSymbolParameter(symbol) {\n const declaration = symbol.declarations ? firstOrUndefined(symbol.declarations) : void 0;\n return !!findAncestor(declaration, (n) => isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : \"quit\");\n}\nvar displayPartWriterCache = /* @__PURE__ */ new Map();\nfunction getDisplayPartWriter(maximumLength) {\n maximumLength = maximumLength || defaultMaximumTruncationLength;\n if (!displayPartWriterCache.has(maximumLength)) {\n displayPartWriterCache.set(maximumLength, getDisplayPartWriterWorker(maximumLength));\n }\n return displayPartWriterCache.get(maximumLength);\n}\nfunction getDisplayPartWriterWorker(maximumLength) {\n const absoluteMaximumLength = maximumLength * 10;\n let displayParts;\n let lineStart;\n let indent3;\n let length2;\n resetWriter();\n const unknownWrite = (text) => writeKind(text, 17 /* text */);\n return {\n displayParts: () => {\n const finalText = displayParts.length && displayParts[displayParts.length - 1].text;\n if (length2 > absoluteMaximumLength && finalText && finalText !== \"...\") {\n if (!isWhiteSpaceLike(finalText.charCodeAt(finalText.length - 1))) {\n displayParts.push(displayPart(\" \", 16 /* space */));\n }\n displayParts.push(displayPart(\"...\", 15 /* punctuation */));\n }\n return displayParts;\n },\n writeKeyword: (text) => writeKind(text, 5 /* keyword */),\n writeOperator: (text) => writeKind(text, 12 /* operator */),\n writePunctuation: (text) => writeKind(text, 15 /* punctuation */),\n writeTrailingSemicolon: (text) => writeKind(text, 15 /* punctuation */),\n writeSpace: (text) => writeKind(text, 16 /* space */),\n writeStringLiteral: (text) => writeKind(text, 8 /* stringLiteral */),\n writeParameter: (text) => writeKind(text, 13 /* parameterName */),\n writeProperty: (text) => writeKind(text, 14 /* propertyName */),\n writeLiteral: (text) => writeKind(text, 8 /* stringLiteral */),\n writeSymbol,\n writeLine,\n write: unknownWrite,\n writeComment: unknownWrite,\n getText: () => \"\",\n getTextPos: () => 0,\n getColumn: () => 0,\n getLine: () => 0,\n isAtStartOfLine: () => false,\n hasTrailingWhitespace: () => false,\n hasTrailingComment: () => false,\n rawWrite: notImplemented,\n getIndent: () => indent3,\n increaseIndent: () => {\n indent3++;\n },\n decreaseIndent: () => {\n indent3--;\n },\n clear: resetWriter\n };\n function writeIndent() {\n if (length2 > absoluteMaximumLength) return;\n if (lineStart) {\n const indentString = getIndentString(indent3);\n if (indentString) {\n length2 += indentString.length;\n displayParts.push(displayPart(indentString, 16 /* space */));\n }\n lineStart = false;\n }\n }\n function writeKind(text, kind) {\n if (length2 > absoluteMaximumLength) return;\n writeIndent();\n length2 += text.length;\n displayParts.push(displayPart(text, kind));\n }\n function writeSymbol(text, symbol) {\n if (length2 > absoluteMaximumLength) return;\n writeIndent();\n length2 += text.length;\n displayParts.push(symbolPart(text, symbol));\n }\n function writeLine() {\n if (length2 > absoluteMaximumLength) return;\n length2 += 1;\n displayParts.push(lineBreakPart());\n lineStart = true;\n }\n function resetWriter() {\n displayParts = [];\n lineStart = true;\n indent3 = 0;\n length2 = 0;\n }\n}\nfunction symbolPart(text, symbol) {\n return displayPart(text, displayPartKind(symbol));\n function displayPartKind(symbol2) {\n const flags = symbol2.flags;\n if (flags & 3 /* Variable */) {\n return isFirstDeclarationOfSymbolParameter(symbol2) ? 13 /* parameterName */ : 9 /* localName */;\n }\n if (flags & 4 /* Property */) return 14 /* propertyName */;\n if (flags & 32768 /* GetAccessor */) return 14 /* propertyName */;\n if (flags & 65536 /* SetAccessor */) return 14 /* propertyName */;\n if (flags & 8 /* EnumMember */) return 19 /* enumMemberName */;\n if (flags & 16 /* Function */) return 20 /* functionName */;\n if (flags & 32 /* Class */) return 1 /* className */;\n if (flags & 64 /* Interface */) return 4 /* interfaceName */;\n if (flags & 384 /* Enum */) return 2 /* enumName */;\n if (flags & 1536 /* Module */) return 11 /* moduleName */;\n if (flags & 8192 /* Method */) return 10 /* methodName */;\n if (flags & 262144 /* TypeParameter */) return 18 /* typeParameterName */;\n if (flags & 524288 /* TypeAlias */) return 0 /* aliasName */;\n if (flags & 2097152 /* Alias */) return 0 /* aliasName */;\n return 17 /* text */;\n }\n}\nfunction displayPart(text, kind) {\n return { text, kind: SymbolDisplayPartKind[kind] };\n}\nfunction spacePart() {\n return displayPart(\" \", 16 /* space */);\n}\nfunction keywordPart(kind) {\n return displayPart(tokenToString(kind), 5 /* keyword */);\n}\nfunction punctuationPart(kind) {\n return displayPart(tokenToString(kind), 15 /* punctuation */);\n}\nfunction operatorPart(kind) {\n return displayPart(tokenToString(kind), 12 /* operator */);\n}\nfunction parameterNamePart(text) {\n return displayPart(text, 13 /* parameterName */);\n}\nfunction propertyNamePart(text) {\n return displayPart(text, 14 /* propertyName */);\n}\nfunction textOrKeywordPart(text) {\n const kind = stringToToken(text);\n return kind === void 0 ? textPart(text) : keywordPart(kind);\n}\nfunction textPart(text) {\n return displayPart(text, 17 /* text */);\n}\nfunction typeAliasNamePart(text) {\n return displayPart(text, 0 /* aliasName */);\n}\nfunction typeParameterNamePart(text) {\n return displayPart(text, 18 /* typeParameterName */);\n}\nfunction linkTextPart(text) {\n return displayPart(text, 24 /* linkText */);\n}\nfunction linkNamePart(text, target) {\n return {\n text,\n kind: SymbolDisplayPartKind[23 /* linkName */],\n target: {\n fileName: getSourceFileOfNode(target).fileName,\n textSpan: createTextSpanFromNode(target)\n }\n };\n}\nfunction linkPart(text) {\n return displayPart(text, 22 /* link */);\n}\nfunction buildLinkParts(link, checker) {\n var _a;\n const prefix = isJSDocLink(link) ? \"link\" : isJSDocLinkCode(link) ? \"linkcode\" : \"linkplain\";\n const parts = [linkPart(`{@${prefix} `)];\n if (!link.name) {\n if (link.text) {\n parts.push(linkTextPart(link.text));\n }\n } else {\n const symbol = checker == null ? void 0 : checker.getSymbolAtLocation(link.name);\n const targetSymbol = symbol && checker ? getSymbolTarget(symbol, checker) : void 0;\n const suffix = findLinkNameEnd(link.text);\n const name = getTextOfNode(link.name) + link.text.slice(0, suffix);\n const text = skipSeparatorFromLinkText(link.text.slice(suffix));\n const decl = (targetSymbol == null ? void 0 : targetSymbol.valueDeclaration) || ((_a = targetSymbol == null ? void 0 : targetSymbol.declarations) == null ? void 0 : _a[0]);\n if (decl) {\n parts.push(linkNamePart(name, decl));\n if (text) parts.push(linkTextPart(text));\n } else {\n const separator = suffix === 0 || link.text.charCodeAt(suffix) === 124 /* bar */ && name.charCodeAt(name.length - 1) !== 32 /* space */ ? \" \" : \"\";\n parts.push(linkTextPart(name + separator + text));\n }\n }\n parts.push(linkPart(\"}\"));\n return parts;\n}\nfunction skipSeparatorFromLinkText(text) {\n let pos = 0;\n if (text.charCodeAt(pos++) === 124 /* bar */) {\n while (pos < text.length && text.charCodeAt(pos) === 32 /* space */) pos++;\n return text.slice(pos);\n }\n return text;\n}\nfunction findLinkNameEnd(text) {\n let pos = text.indexOf(\"://\");\n if (pos === 0) {\n while (pos < text.length && text.charCodeAt(pos) !== 124 /* bar */) pos++;\n return pos;\n }\n if (text.indexOf(\"()\") === 0) return 2;\n if (text.charAt(0) === \"<\") {\n let brackets2 = 0;\n let i = 0;\n while (i < text.length) {\n if (text[i] === \"<\") brackets2++;\n if (text[i] === \">\") brackets2--;\n i++;\n if (!brackets2) return i;\n }\n }\n return 0;\n}\nvar lineFeed2 = \"\\n\";\nfunction getNewLineOrDefaultFromHost(host, formatSettings) {\n var _a;\n return (formatSettings == null ? void 0 : formatSettings.newLineCharacter) || ((_a = host.getNewLine) == null ? void 0 : _a.call(host)) || lineFeed2;\n}\nfunction lineBreakPart() {\n return displayPart(\"\\n\", 6 /* lineBreak */);\n}\nfunction mapToDisplayParts(writeDisplayParts, maximumLength) {\n const displayPartWriter = getDisplayPartWriter(maximumLength);\n try {\n writeDisplayParts(displayPartWriter);\n return displayPartWriter.displayParts();\n } finally {\n displayPartWriter.clear();\n }\n}\nfunction typeToDisplayParts(typechecker, type, enclosingDeclaration, flags = 0 /* None */, maximumLength, verbosityLevel, out) {\n return mapToDisplayParts((writer) => {\n typechecker.writeType(type, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */ | 16384 /* UseAliasDefinedOutsideCurrentScope */, writer, maximumLength, verbosityLevel, out);\n }, maximumLength);\n}\nfunction symbolToDisplayParts(typeChecker, symbol, enclosingDeclaration, meaning, flags = 0 /* None */) {\n return mapToDisplayParts((writer) => {\n typeChecker.writeSymbol(symbol, enclosingDeclaration, meaning, flags | 8 /* UseAliasDefinedOutsideCurrentScope */, writer);\n });\n}\nfunction signatureToDisplayParts(typechecker, signature, enclosingDeclaration, flags = 0 /* None */, maximumLength, verbosityLevel, out) {\n flags |= 16384 /* UseAliasDefinedOutsideCurrentScope */ | 1024 /* MultilineObjectLiterals */ | 32 /* WriteTypeArgumentsOfSignature */ | 8192 /* OmitParameterModifiers */;\n return mapToDisplayParts((writer) => {\n typechecker.writeSignature(\n signature,\n enclosingDeclaration,\n flags,\n /*kind*/\n void 0,\n writer,\n maximumLength,\n verbosityLevel,\n out\n );\n }, maximumLength);\n}\nfunction isImportOrExportSpecifierName(location) {\n return !!location.parent && isImportOrExportSpecifier(location.parent) && location.parent.propertyName === location;\n}\nfunction getScriptKind(fileName, host) {\n return ensureScriptKind(fileName, host.getScriptKind && host.getScriptKind(fileName));\n}\nfunction getSymbolTarget(symbol, checker) {\n let next = symbol;\n while (isAliasSymbol(next) || isTransientSymbol(next) && next.links.target) {\n if (isTransientSymbol(next) && next.links.target) {\n next = next.links.target;\n } else {\n next = skipAlias(next, checker);\n }\n }\n return next;\n}\nfunction isAliasSymbol(symbol) {\n return (symbol.flags & 2097152 /* Alias */) !== 0;\n}\nfunction getUniqueSymbolId(symbol, checker) {\n return getSymbolId(skipAlias(symbol, checker));\n}\nfunction getFirstNonSpaceCharacterPosition(text, position) {\n while (isWhiteSpaceLike(text.charCodeAt(position))) {\n position += 1;\n }\n return position;\n}\nfunction getPrecedingNonSpaceCharacterPosition(text, position) {\n while (position > -1 && isWhiteSpaceSingleLine(text.charCodeAt(position))) {\n position -= 1;\n }\n return position + 1;\n}\nfunction copyComments(sourceNode, targetNode) {\n const sourceFile = sourceNode.getSourceFile();\n const text = sourceFile.text;\n if (hasLeadingLineBreak(sourceNode, text)) {\n copyLeadingComments(sourceNode, targetNode, sourceFile);\n } else {\n copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile);\n }\n copyTrailingComments(sourceNode, targetNode, sourceFile);\n}\nfunction hasLeadingLineBreak(node, text) {\n const start = node.getFullStart();\n const end = node.getStart();\n for (let i = start; i < end; i++) {\n if (text.charCodeAt(i) === 10 /* lineFeed */) return true;\n }\n return false;\n}\nfunction getUniqueName(baseName, sourceFile) {\n let nameText = baseName;\n for (let i = 1; !isFileLevelUniqueName(sourceFile, nameText); i++) {\n nameText = `${baseName}_${i}`;\n }\n return nameText;\n}\nfunction getRenameLocation(edits, renameFilename, name, preferLastLocation) {\n let delta = 0;\n let lastPos = -1;\n for (const { fileName, textChanges: textChanges2 } of edits) {\n Debug.assert(fileName === renameFilename);\n for (const change of textChanges2) {\n const { span, newText } = change;\n const index = indexInTextChange(newText, escapeString(name));\n if (index !== -1) {\n lastPos = span.start + delta + index;\n if (!preferLastLocation) {\n return lastPos;\n }\n }\n delta += newText.length - span.length;\n }\n }\n Debug.assert(preferLastLocation);\n Debug.assert(lastPos >= 0);\n return lastPos;\n}\nfunction copyLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n forEachLeadingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment));\n}\nfunction copyTrailingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n forEachTrailingCommentRange(sourceFile.text, sourceNode.end, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticTrailingComment));\n}\nfunction copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n forEachTrailingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment));\n}\nfunction getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, cb) {\n return (pos, end, kind, htnl) => {\n if (kind === 3 /* MultiLineCommentTrivia */) {\n pos += 2;\n end -= 2;\n } else {\n pos += 2;\n }\n cb(targetNode, commentKind || kind, sourceFile.text.slice(pos, end), hasTrailingNewLine !== void 0 ? hasTrailingNewLine : htnl);\n };\n}\nfunction indexInTextChange(change, name) {\n if (startsWith(change, name)) return 0;\n let idx = change.indexOf(\" \" + name);\n if (idx === -1) idx = change.indexOf(\".\" + name);\n if (idx === -1) idx = change.indexOf('\"' + name);\n return idx === -1 ? -1 : idx + 1;\n}\nfunction needsParentheses(expression) {\n return isBinaryExpression(expression) && expression.operatorToken.kind === 28 /* CommaToken */ || isObjectLiteralExpression(expression) || (isAsExpression(expression) || isSatisfiesExpression(expression)) && isObjectLiteralExpression(expression.expression);\n}\nfunction getContextualTypeFromParent(node, checker, contextFlags) {\n const parent2 = walkUpParenthesizedExpressions(node.parent);\n switch (parent2.kind) {\n case 215 /* NewExpression */:\n return checker.getContextualType(parent2, contextFlags);\n case 227 /* BinaryExpression */: {\n const { left, operatorToken, right } = parent2;\n return isEqualityOperatorKind(operatorToken.kind) ? checker.getTypeAtLocation(node === right ? left : right) : checker.getContextualType(node, contextFlags);\n }\n case 297 /* CaseClause */:\n return getSwitchedType(parent2, checker);\n default:\n return checker.getContextualType(node, contextFlags);\n }\n}\nfunction quote(sourceFile, preferences, text) {\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const quoted = JSON.stringify(text);\n return quotePreference === 0 /* Single */ ? `'${stripQuotes(quoted).replace(/'/g, () => \"\\\\'\").replace(/\\\\\"/g, '\"')}'` : quoted;\n}\nfunction isEqualityOperatorKind(kind) {\n switch (kind) {\n case 37 /* EqualsEqualsEqualsToken */:\n case 35 /* EqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n return true;\n default:\n return false;\n }\n}\nfunction isStringLiteralOrTemplate(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 229 /* TemplateExpression */:\n case 216 /* TaggedTemplateExpression */:\n return true;\n default:\n return false;\n }\n}\nfunction hasIndexSignature(type) {\n return !!type.getStringIndexType() || !!type.getNumberIndexType();\n}\nfunction getSwitchedType(caseClause, checker) {\n return checker.getTypeAtLocation(caseClause.parent.parent.expression);\n}\nvar ANONYMOUS = \"anonymous function\";\nfunction getTypeNodeIfAccessible(type, enclosingScope, program, host) {\n const checker = program.getTypeChecker();\n let typeIsAccessible = true;\n const notAccessible = () => typeIsAccessible = false;\n const res = checker.typeToTypeNode(type, enclosingScope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */, {\n trackSymbol: (symbol, declaration, meaning) => {\n typeIsAccessible = typeIsAccessible && checker.isSymbolAccessible(\n symbol,\n declaration,\n meaning,\n /*shouldComputeAliasToMarkVisible*/\n false\n ).accessibility === 0 /* Accessible */;\n return !typeIsAccessible;\n },\n reportInaccessibleThisError: notAccessible,\n reportPrivateInBaseOfClassExpression: notAccessible,\n reportInaccessibleUniqueSymbolError: notAccessible,\n moduleResolverHost: getModuleSpecifierResolverHost(program, host)\n });\n return typeIsAccessible ? res : void 0;\n}\nfunction syntaxRequiresTrailingCommaOrSemicolonOrASI(kind) {\n return kind === 180 /* CallSignature */ || kind === 181 /* ConstructSignature */ || kind === 182 /* IndexSignature */ || kind === 172 /* PropertySignature */ || kind === 174 /* MethodSignature */;\n}\nfunction syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(kind) {\n return kind === 263 /* FunctionDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(kind) {\n return kind === 268 /* ModuleDeclaration */;\n}\nfunction syntaxRequiresTrailingSemicolonOrASI(kind) {\n return kind === 244 /* VariableStatement */ || kind === 245 /* ExpressionStatement */ || kind === 247 /* DoStatement */ || kind === 252 /* ContinueStatement */ || kind === 253 /* BreakStatement */ || kind === 254 /* ReturnStatement */ || kind === 258 /* ThrowStatement */ || kind === 260 /* DebuggerStatement */ || kind === 173 /* PropertyDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 278 /* ExportAssignment */;\n}\nvar syntaxMayBeASICandidate = or(\n syntaxRequiresTrailingCommaOrSemicolonOrASI,\n syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI,\n syntaxRequiresTrailingModuleBlockOrSemicolonOrASI,\n syntaxRequiresTrailingSemicolonOrASI\n);\nfunction nodeIsASICandidate(node, sourceFile) {\n const lastToken = node.getLastToken(sourceFile);\n if (lastToken && lastToken.kind === 27 /* SemicolonToken */) {\n return false;\n }\n if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) {\n if (lastToken && lastToken.kind === 28 /* CommaToken */) {\n return false;\n }\n } else if (syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(node.kind)) {\n const lastChild = last(node.getChildren(sourceFile));\n if (lastChild && isModuleBlock(lastChild)) {\n return false;\n }\n } else if (syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(node.kind)) {\n const lastChild = last(node.getChildren(sourceFile));\n if (lastChild && isFunctionBlock(lastChild)) {\n return false;\n }\n } else if (!syntaxRequiresTrailingSemicolonOrASI(node.kind)) {\n return false;\n }\n if (node.kind === 247 /* DoStatement */) {\n return true;\n }\n const topNode = findAncestor(node, (ancestor) => !ancestor.parent);\n const nextToken = findNextToken(node, topNode, sourceFile);\n if (!nextToken || nextToken.kind === 20 /* CloseBraceToken */) {\n return true;\n }\n const startLine = sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(nextToken.getStart(sourceFile)).line;\n return startLine !== endLine;\n}\nfunction positionIsASICandidate(pos, context, sourceFile) {\n const contextAncestor = findAncestor(context, (ancestor) => {\n if (ancestor.end !== pos) {\n return \"quit\";\n }\n return syntaxMayBeASICandidate(ancestor.kind);\n });\n return !!contextAncestor && nodeIsASICandidate(contextAncestor, sourceFile);\n}\nfunction probablyUsesSemicolons(sourceFile) {\n let withSemicolon = 0;\n let withoutSemicolon = 0;\n const nStatementsToObserve = 5;\n forEachChild(sourceFile, function visit(node) {\n if (syntaxRequiresTrailingSemicolonOrASI(node.kind)) {\n const lastToken = node.getLastToken(sourceFile);\n if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) {\n withSemicolon++;\n } else {\n withoutSemicolon++;\n }\n } else if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) {\n const lastToken = node.getLastToken(sourceFile);\n if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) {\n withSemicolon++;\n } else if (lastToken && lastToken.kind !== 28 /* CommaToken */) {\n const lastTokenLine = getLineAndCharacterOfPosition(sourceFile, lastToken.getStart(sourceFile)).line;\n const nextTokenLine = getLineAndCharacterOfPosition(sourceFile, getSpanOfTokenAtPosition(sourceFile, lastToken.end).start).line;\n if (lastTokenLine !== nextTokenLine) {\n withoutSemicolon++;\n }\n }\n }\n if (withSemicolon + withoutSemicolon >= nStatementsToObserve) {\n return true;\n }\n return forEachChild(node, visit);\n });\n if (withSemicolon === 0 && withoutSemicolon <= 1) {\n return true;\n }\n return withSemicolon / withoutSemicolon > 1 / nStatementsToObserve;\n}\nfunction tryGetDirectories(host, directoryName) {\n return tryIOAndConsumeErrors(host, host.getDirectories, directoryName) || [];\n}\nfunction tryReadDirectory(host, path, extensions, exclude, include) {\n return tryIOAndConsumeErrors(host, host.readDirectory, path, extensions, exclude, include) || emptyArray;\n}\nfunction tryFileExists(host, path) {\n return tryIOAndConsumeErrors(host, host.fileExists, path);\n}\nfunction tryDirectoryExists(host, path) {\n return tryAndIgnoreErrors(() => directoryProbablyExists(path, host)) || false;\n}\nfunction tryAndIgnoreErrors(cb) {\n try {\n return cb();\n } catch {\n return void 0;\n }\n}\nfunction tryIOAndConsumeErrors(host, toApply, ...args) {\n return tryAndIgnoreErrors(() => toApply && toApply.apply(host, args));\n}\nfunction findPackageJsons(startDirectory, host) {\n const paths = [];\n forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n startDirectory,\n (ancestor) => {\n const currentConfigPath = combinePaths(ancestor, \"package.json\");\n if (tryFileExists(host, currentConfigPath)) {\n paths.push(currentConfigPath);\n }\n }\n );\n return paths;\n}\nfunction findPackageJson(directory, host) {\n let packageJson;\n forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n directory,\n (ancestor) => {\n if (ancestor === \"node_modules\") return true;\n packageJson = findConfigFile(ancestor, (f) => tryFileExists(host, f), \"package.json\");\n if (packageJson) {\n return true;\n }\n }\n );\n return packageJson;\n}\nfunction getPackageJsonsVisibleToFile(fileName, host) {\n if (!host.fileExists) {\n return [];\n }\n const packageJsons = [];\n forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n getDirectoryPath(fileName),\n (ancestor) => {\n const packageJsonFileName = combinePaths(ancestor, \"package.json\");\n if (host.fileExists(packageJsonFileName)) {\n const info = createPackageJsonInfo(packageJsonFileName, host);\n if (info) {\n packageJsons.push(info);\n }\n }\n }\n );\n return packageJsons;\n}\nfunction createPackageJsonInfo(fileName, host) {\n if (!host.readFile) {\n return void 0;\n }\n const dependencyKeys = [\"dependencies\", \"devDependencies\", \"optionalDependencies\", \"peerDependencies\"];\n const stringContent = host.readFile(fileName) || \"\";\n const content = tryParseJson(stringContent);\n const info = {};\n if (content) {\n for (const key of dependencyKeys) {\n const dependencies = content[key];\n if (!dependencies) {\n continue;\n }\n const dependencyMap = /* @__PURE__ */ new Map();\n for (const packageName in dependencies) {\n dependencyMap.set(packageName, dependencies[packageName]);\n }\n info[key] = dependencyMap;\n }\n }\n const dependencyGroups = [\n [1 /* Dependencies */, info.dependencies],\n [2 /* DevDependencies */, info.devDependencies],\n [8 /* OptionalDependencies */, info.optionalDependencies],\n [4 /* PeerDependencies */, info.peerDependencies]\n ];\n return {\n ...info,\n parseable: !!content,\n fileName,\n get,\n has(dependencyName, inGroups) {\n return !!get(dependencyName, inGroups);\n }\n };\n function get(dependencyName, inGroups = 15 /* All */) {\n for (const [group2, deps] of dependencyGroups) {\n if (deps && inGroups & group2) {\n const dep = deps.get(dependencyName);\n if (dep !== void 0) {\n return dep;\n }\n }\n }\n }\n}\nfunction createPackageJsonImportFilter(fromFile, preferences, host) {\n const packageJsons = (host.getPackageJsonsVisibleToFile && host.getPackageJsonsVisibleToFile(fromFile.fileName) || getPackageJsonsVisibleToFile(fromFile.fileName, host)).filter((p) => p.parseable);\n let usesNodeCoreModules;\n let ambientModuleCache;\n let sourceFileCache;\n return {\n allowsImportingAmbientModule,\n getSourceFileInfo,\n allowsImportingSpecifier\n };\n function moduleSpecifierIsCoveredByPackageJson(specifier) {\n const packageName = getNodeModuleRootSpecifier(specifier);\n for (const packageJson of packageJsons) {\n if (packageJson.has(packageName) || packageJson.has(getTypesPackageName(packageName))) {\n return true;\n }\n }\n return false;\n }\n function allowsImportingAmbientModule(moduleSymbol, moduleSpecifierResolutionHost) {\n if (!packageJsons.length || !moduleSymbol.valueDeclaration) {\n return true;\n }\n if (!ambientModuleCache) {\n ambientModuleCache = /* @__PURE__ */ new Map();\n } else {\n const cached = ambientModuleCache.get(moduleSymbol);\n if (cached !== void 0) {\n return cached;\n }\n }\n const declaredModuleSpecifier = stripQuotes(moduleSymbol.getName());\n if (isAllowedCoreNodeModulesImport(declaredModuleSpecifier)) {\n ambientModuleCache.set(moduleSymbol, true);\n return true;\n }\n const declaringSourceFile = moduleSymbol.valueDeclaration.getSourceFile();\n const declaringNodeModuleName = getNodeModulesPackageNameFromFileName(declaringSourceFile.fileName, moduleSpecifierResolutionHost);\n if (typeof declaringNodeModuleName === \"undefined\") {\n ambientModuleCache.set(moduleSymbol, true);\n return true;\n }\n const result = moduleSpecifierIsCoveredByPackageJson(declaringNodeModuleName) || moduleSpecifierIsCoveredByPackageJson(declaredModuleSpecifier);\n ambientModuleCache.set(moduleSymbol, result);\n return result;\n }\n function getSourceFileInfo(sourceFile, moduleSpecifierResolutionHost) {\n if (!packageJsons.length) {\n return { importable: true, packageName: void 0 };\n }\n if (!sourceFileCache) {\n sourceFileCache = /* @__PURE__ */ new Map();\n } else {\n const cached = sourceFileCache.get(sourceFile);\n if (cached !== void 0) {\n return cached;\n }\n }\n const packageName = getNodeModulesPackageNameFromFileName(sourceFile.fileName, moduleSpecifierResolutionHost);\n if (!packageName) {\n const result2 = { importable: true, packageName };\n sourceFileCache.set(sourceFile, result2);\n return result2;\n }\n const importable = moduleSpecifierIsCoveredByPackageJson(packageName);\n const result = { importable, packageName };\n sourceFileCache.set(sourceFile, result);\n return result;\n }\n function allowsImportingSpecifier(moduleSpecifier) {\n if (!packageJsons.length || isAllowedCoreNodeModulesImport(moduleSpecifier)) {\n return true;\n }\n if (pathIsRelative(moduleSpecifier) || isRootedDiskPath(moduleSpecifier)) {\n return true;\n }\n return moduleSpecifierIsCoveredByPackageJson(moduleSpecifier);\n }\n function isAllowedCoreNodeModulesImport(moduleSpecifier) {\n if (isFullSourceFile(fromFile) && isSourceFileJS(fromFile) && nodeCoreModules.has(moduleSpecifier)) {\n if (usesNodeCoreModules === void 0) {\n usesNodeCoreModules = consumesNodeCoreModules(fromFile);\n }\n if (usesNodeCoreModules) {\n return true;\n }\n }\n return false;\n }\n function getNodeModulesPackageNameFromFileName(importedFileName, moduleSpecifierResolutionHost) {\n if (!importedFileName.includes(\"node_modules\")) {\n return void 0;\n }\n const specifier = ts_moduleSpecifiers_exports.getNodeModulesPackageName(\n host.getCompilationSettings(),\n fromFile,\n importedFileName,\n moduleSpecifierResolutionHost,\n preferences\n );\n if (!specifier) {\n return void 0;\n }\n if (!pathIsRelative(specifier) && !isRootedDiskPath(specifier)) {\n return getNodeModuleRootSpecifier(specifier);\n }\n }\n function getNodeModuleRootSpecifier(fullSpecifier) {\n const components = getPathComponents(getPackageNameFromTypesPackageName(fullSpecifier)).slice(1);\n if (startsWith(components[0], \"@\")) {\n return `${components[0]}/${components[1]}`;\n }\n return components[0];\n }\n}\nfunction consumesNodeCoreModules(sourceFile) {\n return some(sourceFile.imports, ({ text }) => nodeCoreModules.has(text));\n}\nfunction isInsideNodeModules(fileOrDirectory) {\n return contains(getPathComponents(fileOrDirectory), \"node_modules\");\n}\nfunction isDiagnosticWithLocation(diagnostic) {\n return diagnostic.file !== void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0;\n}\nfunction findDiagnosticForNode(node, sortedFileDiagnostics) {\n const span = createTextSpanFromNode(node);\n const index = binarySearchKey(sortedFileDiagnostics, span, identity, compareTextSpans);\n if (index >= 0) {\n const diagnostic = sortedFileDiagnostics[index];\n Debug.assertEqual(diagnostic.file, node.getSourceFile(), \"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile\");\n return cast(diagnostic, isDiagnosticWithLocation);\n }\n}\nfunction getDiagnosticsWithinSpan(span, sortedFileDiagnostics) {\n var _a;\n let index = binarySearchKey(sortedFileDiagnostics, span.start, (diag2) => diag2.start, compareValues);\n if (index < 0) {\n index = ~index;\n }\n while (((_a = sortedFileDiagnostics[index - 1]) == null ? void 0 : _a.start) === span.start) {\n index--;\n }\n const result = [];\n const end = textSpanEnd(span);\n while (true) {\n const diagnostic = tryCast(sortedFileDiagnostics[index], isDiagnosticWithLocation);\n if (!diagnostic || diagnostic.start > end) {\n break;\n }\n if (textSpanContainsTextSpan(span, diagnostic)) {\n result.push(diagnostic);\n }\n index++;\n }\n return result;\n}\nfunction getRefactorContextSpan({ startPosition, endPosition }) {\n return createTextSpanFromBounds(startPosition, endPosition === void 0 ? startPosition : endPosition);\n}\nfunction getFixableErrorSpanExpression(sourceFile, span) {\n const token = getTokenAtPosition(sourceFile, span.start);\n const expression = findAncestor(token, (node) => {\n if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) {\n return \"quit\";\n }\n return isExpression(node) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile));\n });\n return expression;\n}\nfunction mapOneOrMany(valueOrArray, f, resultSelector = identity) {\n return valueOrArray ? isArray(valueOrArray) ? resultSelector(map(valueOrArray, f)) : f(valueOrArray, 0) : void 0;\n}\nfunction firstOrOnly(valueOrArray) {\n return isArray(valueOrArray) ? first(valueOrArray) : valueOrArray;\n}\nfunction getNameForExportedSymbol(symbol, scriptTarget, preferCapitalized) {\n if (symbol.escapedName === \"export=\" /* ExportEquals */ || symbol.escapedName === \"default\" /* Default */) {\n return getDefaultLikeExportNameFromDeclaration(symbol) || moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, !!preferCapitalized);\n }\n return symbol.name;\n}\nfunction getDefaultLikeExportNameFromDeclaration(symbol) {\n return firstDefined(symbol.declarations, (d) => {\n var _a, _b, _c;\n if (isExportAssignment(d)) {\n return (_a = tryCast(skipOuterExpressions(d.expression), isIdentifier)) == null ? void 0 : _a.text;\n }\n if (isExportSpecifier(d) && d.symbol.flags === 2097152 /* Alias */) {\n return (_b = tryCast(d.propertyName, isIdentifier)) == null ? void 0 : _b.text;\n }\n const name = (_c = tryCast(getNameOfDeclaration(d), isIdentifier)) == null ? void 0 : _c.text;\n if (name) {\n return name;\n }\n if (symbol.parent && !isExternalModuleSymbol(symbol.parent)) {\n return symbol.parent.getName();\n }\n });\n}\nfunction getSymbolParentOrFail(symbol) {\n var _a;\n return Debug.checkDefined(\n symbol.parent,\n `Symbol parent was undefined. Flags: ${Debug.formatSymbolFlags(symbol.flags)}. Declarations: ${(_a = symbol.declarations) == null ? void 0 : _a.map((d) => {\n const kind = Debug.formatSyntaxKind(d.kind);\n const inJS = isInJSFile(d);\n const { expression } = d;\n return (inJS ? \"[JS]\" : \"\") + kind + (expression ? ` (expression: ${Debug.formatSyntaxKind(expression.kind)})` : \"\");\n }).join(\", \")}.`\n );\n}\nfunction moduleSymbolToValidIdentifier(moduleSymbol, target, forceCapitalize) {\n return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target, forceCapitalize);\n}\nfunction moduleSpecifierToValidIdentifier(moduleSpecifier, target, forceCapitalize) {\n const baseName = getBaseFileName(removeSuffix(removeFileExtension(moduleSpecifier), \"/index\"));\n let res = \"\";\n let lastCharWasValid = true;\n const firstCharCode = baseName.charCodeAt(0);\n if (isIdentifierStart(firstCharCode, target)) {\n res += String.fromCharCode(firstCharCode);\n if (forceCapitalize) {\n res = res.toUpperCase();\n }\n } else {\n lastCharWasValid = false;\n }\n for (let i = 1; i < baseName.length; i++) {\n const ch = baseName.charCodeAt(i);\n const isValid = isIdentifierPart(ch, target);\n if (isValid) {\n let char = String.fromCharCode(ch);\n if (!lastCharWasValid) {\n char = char.toUpperCase();\n }\n res += char;\n }\n lastCharWasValid = isValid;\n }\n return !isStringANonContextualKeyword(res) ? res || \"_\" : `_${res}`;\n}\nfunction stringContainsAt(haystack, needle, startIndex) {\n const needleLength = needle.length;\n if (needleLength + startIndex > haystack.length) {\n return false;\n }\n for (let i = 0; i < needleLength; i++) {\n if (needle.charCodeAt(i) !== haystack.charCodeAt(i + startIndex)) return false;\n }\n return true;\n}\nfunction startsWithUnderscore(name) {\n return name.charCodeAt(0) === 95 /* _ */;\n}\nfunction isDeprecatedDeclaration(decl) {\n return !!(getCombinedNodeFlagsAlwaysIncludeJSDoc(decl) & 65536 /* Deprecated */);\n}\nfunction shouldUseUriStyleNodeCoreModules(file, program) {\n let decisionFromFile;\n for (const node of file.imports) {\n if (nodeCoreModules.has(node.text) && !exclusivelyPrefixedNodeCoreModules.has(node.text)) {\n if (startsWith(node.text, \"node:\")) {\n return true;\n } else {\n decisionFromFile = false;\n }\n }\n }\n return decisionFromFile ?? program.usesUriStyleNodeCoreModules;\n}\nfunction getNewLineKind(newLineCharacter) {\n return newLineCharacter === \"\\n\" ? 1 /* LineFeed */ : 0 /* CarriageReturnLineFeed */;\n}\nfunction diagnosticToString(diag2) {\n return isArray(diag2) ? formatStringFromArgs(getLocaleSpecificMessage(diag2[0]), diag2.slice(1)) : getLocaleSpecificMessage(diag2);\n}\nfunction getFormatCodeSettingsForWriting({ options }, sourceFile) {\n const shouldAutoDetectSemicolonPreference = !options.semicolons || options.semicolons === \"ignore\" /* Ignore */;\n const shouldRemoveSemicolons = options.semicolons === \"remove\" /* Remove */ || shouldAutoDetectSemicolonPreference && !probablyUsesSemicolons(sourceFile);\n return {\n ...options,\n semicolons: shouldRemoveSemicolons ? \"remove\" /* Remove */ : \"ignore\" /* Ignore */\n };\n}\nfunction jsxModeNeedsExplicitImport(jsx) {\n return jsx === 2 /* React */ || jsx === 3 /* ReactNative */;\n}\nfunction isSourceFileFromLibrary(program, node) {\n return program.isSourceFileFromExternalLibrary(node) || program.isSourceFileDefaultLibrary(node);\n}\nfunction newCaseClauseTracker(checker, clauses) {\n const existingStrings = /* @__PURE__ */ new Set();\n const existingNumbers = /* @__PURE__ */ new Set();\n const existingBigInts = /* @__PURE__ */ new Set();\n for (const clause of clauses) {\n if (!isDefaultClause(clause)) {\n const expression = skipParentheses(clause.expression);\n if (isLiteralExpression(expression)) {\n switch (expression.kind) {\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 11 /* StringLiteral */:\n existingStrings.add(expression.text);\n break;\n case 9 /* NumericLiteral */:\n existingNumbers.add(parseInt(expression.text));\n break;\n case 10 /* BigIntLiteral */:\n const parsedBigInt = parseBigInt(endsWith(expression.text, \"n\") ? expression.text.slice(0, -1) : expression.text);\n if (parsedBigInt) {\n existingBigInts.add(pseudoBigIntToString(parsedBigInt));\n }\n break;\n }\n } else {\n const symbol = checker.getSymbolAtLocation(clause.expression);\n if (symbol && symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {\n const enumValue = checker.getConstantValue(symbol.valueDeclaration);\n if (enumValue !== void 0) {\n addValue(enumValue);\n }\n }\n }\n }\n }\n return {\n addValue,\n hasValue\n };\n function addValue(value) {\n switch (typeof value) {\n case \"string\":\n existingStrings.add(value);\n break;\n case \"number\":\n existingNumbers.add(value);\n }\n }\n function hasValue(value) {\n switch (typeof value) {\n case \"string\":\n return existingStrings.has(value);\n case \"number\":\n return existingNumbers.has(value);\n case \"object\":\n return existingBigInts.has(pseudoBigIntToString(value));\n }\n }\n}\nfunction fileShouldUseJavaScriptRequire(file, program, host, preferRequire) {\n var _a;\n const fileName = typeof file === \"string\" ? file : file.fileName;\n if (!hasJSFileExtension(fileName)) {\n return false;\n }\n const compilerOptions = typeof file === \"string\" ? program.getCompilerOptions() : program.getCompilerOptionsForFile(file);\n const moduleKind = getEmitModuleKind(compilerOptions);\n const sourceFileLike = typeof file === \"string\" ? {\n fileName: file,\n impliedNodeFormat: getImpliedNodeFormatForFile(toPath(file, host.getCurrentDirectory(), hostGetCanonicalFileName(host)), (_a = program.getPackageJsonInfoCache) == null ? void 0 : _a.call(program), host, compilerOptions)\n } : file;\n const impliedNodeFormat = getImpliedNodeFormatForEmitWorker(sourceFileLike, compilerOptions);\n if (impliedNodeFormat === 99 /* ESNext */) {\n return false;\n }\n if (impliedNodeFormat === 1 /* CommonJS */) {\n return true;\n }\n if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) {\n return true;\n }\n if (compilerOptions.verbatimModuleSyntax && emitModuleKindIsNonNodeESM(moduleKind)) {\n return false;\n }\n if (typeof file === \"object\") {\n if (file.commonJsModuleIndicator) {\n return true;\n }\n if (file.externalModuleIndicator) {\n return false;\n }\n }\n return preferRequire;\n}\nfunction isBlockLike(node) {\n switch (node.kind) {\n case 242 /* Block */:\n case 308 /* SourceFile */:\n case 269 /* ModuleBlock */:\n case 297 /* CaseClause */:\n return true;\n default:\n return false;\n }\n}\nfunction createFutureSourceFile(fileName, syntaxModuleIndicator, program, moduleResolutionHost) {\n var _a;\n const result = getImpliedNodeFormatForFileWorker(fileName, (_a = program.getPackageJsonInfoCache) == null ? void 0 : _a.call(program), moduleResolutionHost, program.getCompilerOptions());\n let impliedNodeFormat, packageJsonScope;\n if (typeof result === \"object\") {\n impliedNodeFormat = result.impliedNodeFormat;\n packageJsonScope = result.packageJsonScope;\n }\n return {\n path: toPath(fileName, program.getCurrentDirectory(), program.getCanonicalFileName),\n fileName,\n externalModuleIndicator: syntaxModuleIndicator === 99 /* ESNext */ ? true : void 0,\n commonJsModuleIndicator: syntaxModuleIndicator === 1 /* CommonJS */ ? true : void 0,\n impliedNodeFormat,\n packageJsonScope,\n statements: emptyArray,\n imports: emptyArray\n };\n}\n\n// src/services/exportInfoMap.ts\nvar ImportKind = /* @__PURE__ */ ((ImportKind2) => {\n ImportKind2[ImportKind2[\"Named\"] = 0] = \"Named\";\n ImportKind2[ImportKind2[\"Default\"] = 1] = \"Default\";\n ImportKind2[ImportKind2[\"Namespace\"] = 2] = \"Namespace\";\n ImportKind2[ImportKind2[\"CommonJS\"] = 3] = \"CommonJS\";\n return ImportKind2;\n})(ImportKind || {});\nvar ExportKind = /* @__PURE__ */ ((ExportKind3) => {\n ExportKind3[ExportKind3[\"Named\"] = 0] = \"Named\";\n ExportKind3[ExportKind3[\"Default\"] = 1] = \"Default\";\n ExportKind3[ExportKind3[\"ExportEquals\"] = 2] = \"ExportEquals\";\n ExportKind3[ExportKind3[\"UMD\"] = 3] = \"UMD\";\n ExportKind3[ExportKind3[\"Module\"] = 4] = \"Module\";\n return ExportKind3;\n})(ExportKind || {});\nfunction createCacheableExportInfoMap(host) {\n let exportInfoId = 1;\n const exportInfo = createMultiMap();\n const symbols = /* @__PURE__ */ new Map();\n const packages = /* @__PURE__ */ new Map();\n let usableByFileName;\n const cache = {\n isUsableByFile: (importingFile) => importingFile === usableByFileName,\n isEmpty: () => !exportInfo.size,\n clear: () => {\n exportInfo.clear();\n symbols.clear();\n usableByFileName = void 0;\n },\n add: (importingFile, symbol, symbolTableKey, moduleSymbol, moduleFile, exportKind, isFromPackageJson, checker) => {\n if (importingFile !== usableByFileName) {\n cache.clear();\n usableByFileName = importingFile;\n }\n let packageName;\n if (moduleFile) {\n const nodeModulesPathParts = getNodeModulePathParts(moduleFile.fileName);\n if (nodeModulesPathParts) {\n const { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex } = nodeModulesPathParts;\n packageName = unmangleScopedPackageName(getPackageNameFromTypesPackageName(moduleFile.fileName.substring(topLevelPackageNameIndex + 1, packageRootIndex)));\n if (startsWith(importingFile, moduleFile.path.substring(0, topLevelNodeModulesIndex))) {\n const prevDeepestNodeModulesPath = packages.get(packageName);\n const nodeModulesPath = moduleFile.fileName.substring(0, topLevelPackageNameIndex + 1);\n if (prevDeepestNodeModulesPath) {\n const prevDeepestNodeModulesIndex = prevDeepestNodeModulesPath.indexOf(nodeModulesPathPart);\n if (topLevelNodeModulesIndex > prevDeepestNodeModulesIndex) {\n packages.set(packageName, nodeModulesPath);\n }\n } else {\n packages.set(packageName, nodeModulesPath);\n }\n }\n }\n }\n const isDefault = exportKind === 1 /* Default */;\n const namedSymbol = isDefault && getLocalSymbolForExportDefault(symbol) || symbol;\n const names = exportKind === 0 /* Named */ || isExternalModuleSymbol(namedSymbol) ? unescapeLeadingUnderscores(symbolTableKey) : getNamesForExportedSymbol(\n namedSymbol,\n checker,\n /*scriptTarget*/\n void 0\n );\n const symbolName2 = typeof names === \"string\" ? names : names[0];\n const capitalizedSymbolName = typeof names === \"string\" ? void 0 : names[1];\n const moduleName = stripQuotes(moduleSymbol.name);\n const id = exportInfoId++;\n const target = skipAlias(symbol, checker);\n const storedSymbol = symbol.flags & 33554432 /* Transient */ ? void 0 : symbol;\n const storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? void 0 : moduleSymbol;\n if (!storedSymbol || !storedModuleSymbol) symbols.set(id, [symbol, moduleSymbol]);\n exportInfo.add(key(symbolName2, symbol, isExternalModuleNameRelative(moduleName) ? void 0 : moduleName, checker), {\n id,\n symbolTableKey,\n symbolName: symbolName2,\n capitalizedSymbolName,\n moduleName,\n moduleFile,\n moduleFileName: moduleFile == null ? void 0 : moduleFile.fileName,\n packageName,\n exportKind,\n targetFlags: target.flags,\n isFromPackageJson,\n symbol: storedSymbol,\n moduleSymbol: storedModuleSymbol\n });\n },\n get: (importingFile, key2) => {\n if (importingFile !== usableByFileName) return;\n const result = exportInfo.get(key2);\n return result == null ? void 0 : result.map(rehydrateCachedInfo);\n },\n search: (importingFile, preferCapitalized, matches, action) => {\n if (importingFile !== usableByFileName) return;\n return forEachEntry(exportInfo, (info, key2) => {\n const { symbolName: symbolName2, ambientModuleName } = parseKey(key2);\n const name = preferCapitalized && info[0].capitalizedSymbolName || symbolName2;\n if (matches(name, info[0].targetFlags)) {\n const rehydrated = info.map(rehydrateCachedInfo);\n const filtered = rehydrated.filter((r, i) => isNotShadowedByDeeperNodeModulesPackage(r, info[i].packageName));\n if (filtered.length) {\n const res = action(filtered, name, !!ambientModuleName, key2);\n if (res !== void 0) return res;\n }\n }\n });\n },\n releaseSymbols: () => {\n symbols.clear();\n },\n onFileChanged: (oldSourceFile, newSourceFile, typeAcquisitionEnabled) => {\n if (fileIsGlobalOnly(oldSourceFile) && fileIsGlobalOnly(newSourceFile)) {\n return false;\n }\n if (usableByFileName && usableByFileName !== newSourceFile.path || // If ATA is enabled, auto-imports uses existing imports to guess whether you want auto-imports from node.\n // Adding or removing imports from node could change the outcome of that guess, so could change the suggestions list.\n typeAcquisitionEnabled && consumesNodeCoreModules(oldSourceFile) !== consumesNodeCoreModules(newSourceFile) || // Module agumentation and ambient module changes can add or remove exports available to be auto-imported.\n // Changes elsewhere in the file can change the *type* of an export in a module augmentation,\n // but type info is gathered in getCompletionEntryDetails, which doesn't use the cache.\n !arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations) || !ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile)) {\n cache.clear();\n return true;\n }\n usableByFileName = newSourceFile.path;\n return false;\n }\n };\n if (Debug.isDebugging) {\n Object.defineProperty(cache, \"__cache\", { value: exportInfo });\n }\n return cache;\n function rehydrateCachedInfo(info) {\n if (info.symbol && info.moduleSymbol) return info;\n const { id, exportKind, targetFlags, isFromPackageJson, moduleFileName } = info;\n const [cachedSymbol, cachedModuleSymbol] = symbols.get(id) || emptyArray;\n if (cachedSymbol && cachedModuleSymbol) {\n return {\n symbol: cachedSymbol,\n moduleSymbol: cachedModuleSymbol,\n moduleFileName,\n exportKind,\n targetFlags,\n isFromPackageJson\n };\n }\n const checker = (isFromPackageJson ? host.getPackageJsonAutoImportProvider() : host.getCurrentProgram()).getTypeChecker();\n const moduleSymbol = info.moduleSymbol || cachedModuleSymbol || Debug.checkDefined(\n info.moduleFile ? checker.getMergedSymbol(info.moduleFile.symbol) : checker.tryFindAmbientModule(info.moduleName)\n );\n const symbol = info.symbol || cachedSymbol || Debug.checkDefined(\n exportKind === 2 /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol),\n `Could not find symbol '${info.symbolName}' by key '${info.symbolTableKey}' in module ${moduleSymbol.name}`\n );\n symbols.set(id, [symbol, moduleSymbol]);\n return {\n symbol,\n moduleSymbol,\n moduleFileName,\n exportKind,\n targetFlags,\n isFromPackageJson\n };\n }\n function key(importedName, symbol, ambientModuleName, checker) {\n const moduleKey = ambientModuleName || \"\";\n return `${importedName.length} ${getSymbolId(skipAlias(symbol, checker))} ${importedName} ${moduleKey}`;\n }\n function parseKey(key2) {\n const firstSpace = key2.indexOf(\" \");\n const secondSpace = key2.indexOf(\" \", firstSpace + 1);\n const symbolNameLength = parseInt(key2.substring(0, firstSpace), 10);\n const data = key2.substring(secondSpace + 1);\n const symbolName2 = data.substring(0, symbolNameLength);\n const moduleKey = data.substring(symbolNameLength + 1);\n const ambientModuleName = moduleKey === \"\" ? void 0 : moduleKey;\n return { symbolName: symbolName2, ambientModuleName };\n }\n function fileIsGlobalOnly(file) {\n return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;\n }\n function ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile) {\n if (!arrayIsEqualTo(oldSourceFile.ambientModuleNames, newSourceFile.ambientModuleNames)) {\n return false;\n }\n let oldFileStatementIndex = -1;\n let newFileStatementIndex = -1;\n for (const ambientModuleName of newSourceFile.ambientModuleNames) {\n const isMatchingModuleDeclaration = (node) => isNonGlobalAmbientModule(node) && node.name.text === ambientModuleName;\n oldFileStatementIndex = findIndex(oldSourceFile.statements, isMatchingModuleDeclaration, oldFileStatementIndex + 1);\n newFileStatementIndex = findIndex(newSourceFile.statements, isMatchingModuleDeclaration, newFileStatementIndex + 1);\n if (oldSourceFile.statements[oldFileStatementIndex] !== newSourceFile.statements[newFileStatementIndex]) {\n return false;\n }\n }\n return true;\n }\n function isNotShadowedByDeeperNodeModulesPackage(info, packageName) {\n if (!packageName || !info.moduleFileName) return true;\n const typingsCacheLocation = host.getGlobalTypingsCacheLocation();\n if (typingsCacheLocation && startsWith(info.moduleFileName, typingsCacheLocation)) return true;\n const packageDeepestNodeModulesPath = packages.get(packageName);\n return !packageDeepestNodeModulesPath || startsWith(info.moduleFileName, packageDeepestNodeModulesPath);\n }\n}\nfunction isImportable(program, fromFile, toFile, toModule, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache) {\n var _a;\n if (!toFile) {\n let useNodePrefix;\n const moduleName = stripQuotes(toModule.name);\n if (nodeCoreModules.has(moduleName) && (useNodePrefix = shouldUseUriStyleNodeCoreModules(fromFile, program)) !== void 0) {\n return useNodePrefix === startsWith(moduleName, \"node:\");\n }\n return !packageJsonFilter || packageJsonFilter.allowsImportingAmbientModule(toModule, moduleSpecifierResolutionHost) || fileContainsPackageImport(fromFile, moduleName);\n }\n Debug.assertIsDefined(toFile);\n if (fromFile === toFile) return false;\n const cachedResult = moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.get(fromFile.path, toFile.path, preferences, {});\n if ((cachedResult == null ? void 0 : cachedResult.isBlockedByPackageJsonDependencies) !== void 0) {\n return !cachedResult.isBlockedByPackageJsonDependencies || !!cachedResult.packageName && fileContainsPackageImport(fromFile, cachedResult.packageName);\n }\n const getCanonicalFileName = hostGetCanonicalFileName(moduleSpecifierResolutionHost);\n const globalTypingsCache = (_a = moduleSpecifierResolutionHost.getGlobalTypingsCacheLocation) == null ? void 0 : _a.call(moduleSpecifierResolutionHost);\n const hasImportablePath = !!ts_moduleSpecifiers_exports.forEachFileNameOfModule(\n fromFile.fileName,\n toFile.fileName,\n moduleSpecifierResolutionHost,\n /*preferSymlinks*/\n false,\n (toPath3) => {\n const file = program.getSourceFile(toPath3);\n return (file === toFile || !file) && isImportablePath(\n fromFile.fileName,\n toPath3,\n getCanonicalFileName,\n globalTypingsCache,\n moduleSpecifierResolutionHost\n );\n }\n );\n if (packageJsonFilter) {\n const importInfo = hasImportablePath ? packageJsonFilter.getSourceFileInfo(toFile, moduleSpecifierResolutionHost) : void 0;\n moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.setBlockedByPackageJsonDependencies(fromFile.path, toFile.path, preferences, {}, importInfo == null ? void 0 : importInfo.packageName, !(importInfo == null ? void 0 : importInfo.importable));\n return !!(importInfo == null ? void 0 : importInfo.importable) || hasImportablePath && !!(importInfo == null ? void 0 : importInfo.packageName) && fileContainsPackageImport(fromFile, importInfo.packageName);\n }\n return hasImportablePath;\n}\nfunction fileContainsPackageImport(sourceFile, packageName) {\n return sourceFile.imports && sourceFile.imports.some((i) => i.text === packageName || i.text.startsWith(packageName + \"/\"));\n}\nfunction isImportablePath(fromPath, toPath3, getCanonicalFileName, globalCachePath, host) {\n const toNodeModules = forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n toPath3,\n (ancestor) => getBaseFileName(ancestor) === \"node_modules\" ? ancestor : void 0\n );\n const toNodeModulesParent = toNodeModules && getDirectoryPath(getCanonicalFileName(toNodeModules));\n return toNodeModulesParent === void 0 || startsWith(getCanonicalFileName(fromPath), toNodeModulesParent) || !!globalCachePath && startsWith(getCanonicalFileName(globalCachePath), toNodeModulesParent);\n}\nfunction forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, cb) {\n var _a, _b;\n const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n const excludePatterns = preferences.autoImportFileExcludePatterns && getIsExcludedPatterns(preferences, useCaseSensitiveFileNames2);\n forEachExternalModule(program.getTypeChecker(), program.getSourceFiles(), excludePatterns, host, (module2, file) => cb(\n module2,\n file,\n program,\n /*isFromPackageJson*/\n false\n ));\n const autoImportProvider = useAutoImportProvider && ((_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host));\n if (autoImportProvider) {\n const start = timestamp();\n const checker = program.getTypeChecker();\n forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), excludePatterns, host, (module2, file) => {\n if (file && !program.getSourceFile(file.fileName) || !file && !checker.resolveName(\n module2.name,\n /*location*/\n void 0,\n 1536 /* Module */,\n /*excludeGlobals*/\n false\n )) {\n cb(\n module2,\n file,\n autoImportProvider,\n /*isFromPackageJson*/\n true\n );\n }\n });\n (_b = host.log) == null ? void 0 : _b.call(host, `forEachExternalModuleToImportFrom autoImportProvider: ${timestamp() - start}`);\n }\n}\nfunction getIsExcludedPatterns(preferences, useCaseSensitiveFileNames2) {\n return mapDefined(preferences.autoImportFileExcludePatterns, (spec) => {\n const pattern = getSubPatternFromSpec(spec, \"\", \"exclude\");\n return pattern ? getRegexFromPattern(pattern, useCaseSensitiveFileNames2) : void 0;\n });\n}\nfunction forEachExternalModule(checker, allSourceFiles, excludePatterns, host, cb) {\n var _a;\n const isExcluded = excludePatterns && getIsExcluded(excludePatterns, host);\n for (const ambient of checker.getAmbientModules()) {\n if (!ambient.name.includes(\"*\") && !(excludePatterns && ((_a = ambient.declarations) == null ? void 0 : _a.every((d) => isExcluded(d.getSourceFile()))))) {\n cb(\n ambient,\n /*sourceFile*/\n void 0\n );\n }\n }\n for (const sourceFile of allSourceFiles) {\n if (isExternalOrCommonJsModule(sourceFile) && !(isExcluded == null ? void 0 : isExcluded(sourceFile))) {\n cb(checker.getMergedSymbol(sourceFile.symbol), sourceFile);\n }\n }\n}\nfunction getIsExcluded(excludePatterns, host) {\n var _a;\n const realpathsWithSymlinks = (_a = host.getSymlinkCache) == null ? void 0 : _a.call(host).getSymlinkedDirectoriesByRealpath();\n return ({ fileName, path }) => {\n if (excludePatterns.some((p) => p.test(fileName))) return true;\n if ((realpathsWithSymlinks == null ? void 0 : realpathsWithSymlinks.size) && pathContainsNodeModules(fileName)) {\n let dir = getDirectoryPath(fileName);\n return forEachAncestorDirectoryStoppingAtGlobalCache(\n host,\n getDirectoryPath(path),\n (dirPath) => {\n const symlinks = realpathsWithSymlinks.get(ensureTrailingDirectorySeparator(dirPath));\n if (symlinks) {\n return symlinks.some((s) => excludePatterns.some((p) => p.test(fileName.replace(dir, s))));\n }\n dir = getDirectoryPath(dir);\n }\n ) ?? false;\n }\n return false;\n };\n}\nfunction getIsFileExcluded(host, preferences) {\n if (!preferences.autoImportFileExcludePatterns) return () => false;\n return getIsExcluded(getIsExcludedPatterns(preferences, hostUsesCaseSensitiveFileNames(host)), host);\n}\nfunction getExportInfoMap(importingFile, host, program, preferences, cancellationToken) {\n var _a, _b, _c, _d, _e;\n const start = timestamp();\n (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host);\n const cache = ((_b = host.getCachedExportInfoMap) == null ? void 0 : _b.call(host)) || createCacheableExportInfoMap({\n getCurrentProgram: () => program,\n getPackageJsonAutoImportProvider: () => {\n var _a2;\n return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host);\n },\n getGlobalTypingsCacheLocation: () => {\n var _a2;\n return (_a2 = host.getGlobalTypingsCacheLocation) == null ? void 0 : _a2.call(host);\n }\n });\n if (cache.isUsableByFile(importingFile.path)) {\n (_c = host.log) == null ? void 0 : _c.call(host, \"getExportInfoMap: cache hit\");\n return cache;\n }\n (_d = host.log) == null ? void 0 : _d.call(host, \"getExportInfoMap: cache miss or empty; calculating new results\");\n let moduleCount = 0;\n try {\n forEachExternalModuleToImportFrom(\n program,\n host,\n preferences,\n /*useAutoImportProvider*/\n true,\n (moduleSymbol, moduleFile, program2, isFromPackageJson) => {\n if (++moduleCount % 100 === 0) cancellationToken == null ? void 0 : cancellationToken.throwIfCancellationRequested();\n const seenExports = /* @__PURE__ */ new Set();\n const checker = program2.getTypeChecker();\n const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n if (defaultInfo && isImportableSymbol(defaultInfo.symbol, checker)) {\n cache.add(\n importingFile.path,\n defaultInfo.symbol,\n defaultInfo.exportKind === 1 /* Default */ ? \"default\" /* Default */ : \"export=\" /* ExportEquals */,\n moduleSymbol,\n moduleFile,\n defaultInfo.exportKind,\n isFromPackageJson,\n checker\n );\n }\n checker.forEachExportAndPropertyOfModule(moduleSymbol, (exported, key) => {\n if (exported !== (defaultInfo == null ? void 0 : defaultInfo.symbol) && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) {\n cache.add(\n importingFile.path,\n exported,\n key,\n moduleSymbol,\n moduleFile,\n 0 /* Named */,\n isFromPackageJson,\n checker\n );\n }\n });\n }\n );\n } catch (err) {\n cache.clear();\n throw err;\n }\n (_e = host.log) == null ? void 0 : _e.call(host, `getExportInfoMap: done in ${timestamp() - start} ms`);\n return cache;\n}\nfunction getDefaultLikeExportInfo(moduleSymbol, checker) {\n const exportEquals = checker.resolveExternalModuleSymbol(moduleSymbol);\n if (exportEquals !== moduleSymbol) {\n const defaultExport2 = checker.tryGetMemberInModuleExports(\"default\" /* Default */, exportEquals);\n if (defaultExport2) return { symbol: defaultExport2, exportKind: 1 /* Default */ };\n return { symbol: exportEquals, exportKind: 2 /* ExportEquals */ };\n }\n const defaultExport = checker.tryGetMemberInModuleExports(\"default\" /* Default */, moduleSymbol);\n if (defaultExport) return { symbol: defaultExport, exportKind: 1 /* Default */ };\n}\nfunction isImportableSymbol(symbol, checker) {\n return !checker.isUndefinedSymbol(symbol) && !checker.isUnknownSymbol(symbol) && !isKnownSymbol(symbol) && !isPrivateIdentifierSymbol(symbol);\n}\nfunction getNamesForExportedSymbol(defaultExport, checker, scriptTarget) {\n let names;\n forEachNameOfDefaultExport(defaultExport, checker, scriptTarget, (name, capitalizedName) => {\n names = capitalizedName ? [name, capitalizedName] : name;\n return true;\n });\n return Debug.checkDefined(names);\n}\nfunction forEachNameOfDefaultExport(defaultExport, checker, scriptTarget, cb) {\n let chain;\n let current = defaultExport;\n const seen = /* @__PURE__ */ new Set();\n while (current) {\n const fromDeclaration = getDefaultLikeExportNameFromDeclaration(current);\n if (fromDeclaration) {\n const final = cb(fromDeclaration);\n if (final) return final;\n }\n if (current.escapedName !== \"default\" /* Default */ && current.escapedName !== \"export=\" /* ExportEquals */) {\n const final = cb(current.name);\n if (final) return final;\n }\n chain = append(chain, current);\n if (!addToSeen(seen, current)) break;\n current = current.flags & 2097152 /* Alias */ ? checker.getImmediateAliasedSymbol(current) : void 0;\n }\n for (const symbol of chain ?? emptyArray) {\n if (symbol.parent && isExternalModuleSymbol(symbol.parent)) {\n const final = cb(\n moduleSymbolToValidIdentifier(\n symbol.parent,\n scriptTarget,\n /*forceCapitalize*/\n false\n ),\n moduleSymbolToValidIdentifier(\n symbol.parent,\n scriptTarget,\n /*forceCapitalize*/\n true\n )\n );\n if (final) return final;\n }\n }\n}\n\n// src/services/classifier.ts\nfunction createClassifier() {\n const scanner2 = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false\n );\n function getClassificationsForLine(text, lexState, syntacticClassifierAbsent) {\n return convertClassificationsToResult(getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent), text);\n }\n function getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent) {\n let token = 0 /* Unknown */;\n let lastNonTriviaToken = 0 /* Unknown */;\n const templateStack = [];\n const { prefix, pushTemplate } = getPrefixFromLexState(lexState);\n text = prefix + text;\n const offset = prefix.length;\n if (pushTemplate) {\n templateStack.push(16 /* TemplateHead */);\n }\n scanner2.setText(text);\n let endOfLineState = 0 /* None */;\n const spans = [];\n let angleBracketStack = 0;\n do {\n token = scanner2.scan();\n if (!isTrivia(token)) {\n handleToken();\n lastNonTriviaToken = token;\n }\n const end = scanner2.getTokenEnd();\n pushEncodedClassification(scanner2.getTokenStart(), end, offset, classFromKind(token), spans);\n if (end >= text.length) {\n const end2 = getNewEndOfLineState(scanner2, token, lastOrUndefined(templateStack));\n if (end2 !== void 0) {\n endOfLineState = end2;\n }\n }\n } while (token !== 1 /* EndOfFileToken */);\n function handleToken() {\n switch (token) {\n case 44 /* SlashToken */:\n case 69 /* SlashEqualsToken */:\n if (!noRegexTable[lastNonTriviaToken] && scanner2.reScanSlashToken() === 14 /* RegularExpressionLiteral */) {\n token = 14 /* RegularExpressionLiteral */;\n }\n break;\n case 30 /* LessThanToken */:\n if (lastNonTriviaToken === 80 /* Identifier */) {\n angleBracketStack++;\n }\n break;\n case 32 /* GreaterThanToken */:\n if (angleBracketStack > 0) {\n angleBracketStack--;\n }\n break;\n case 133 /* AnyKeyword */:\n case 154 /* StringKeyword */:\n case 150 /* NumberKeyword */:\n case 136 /* BooleanKeyword */:\n case 155 /* SymbolKeyword */:\n if (angleBracketStack > 0 && !syntacticClassifierAbsent) {\n token = 80 /* Identifier */;\n }\n break;\n case 16 /* TemplateHead */:\n templateStack.push(token);\n break;\n case 19 /* OpenBraceToken */:\n if (templateStack.length > 0) {\n templateStack.push(token);\n }\n break;\n case 20 /* CloseBraceToken */:\n if (templateStack.length > 0) {\n const lastTemplateStackToken = lastOrUndefined(templateStack);\n if (lastTemplateStackToken === 16 /* TemplateHead */) {\n token = scanner2.reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n );\n if (token === 18 /* TemplateTail */) {\n templateStack.pop();\n } else {\n Debug.assertEqual(token, 17 /* TemplateMiddle */, \"Should have been a template middle.\");\n }\n } else {\n Debug.assertEqual(lastTemplateStackToken, 19 /* OpenBraceToken */, \"Should have been an open brace\");\n templateStack.pop();\n }\n }\n break;\n default:\n if (!isKeyword(token)) {\n break;\n }\n if (lastNonTriviaToken === 25 /* DotToken */) {\n token = 80 /* Identifier */;\n } else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) {\n token = 80 /* Identifier */;\n }\n }\n }\n return { endOfLineState, spans };\n }\n return { getClassificationsForLine, getEncodedLexicalClassifications };\n}\nvar noRegexTable = arrayToNumericMap(\n [\n 80 /* Identifier */,\n 11 /* StringLiteral */,\n 9 /* NumericLiteral */,\n 10 /* BigIntLiteral */,\n 14 /* RegularExpressionLiteral */,\n 110 /* ThisKeyword */,\n 46 /* PlusPlusToken */,\n 47 /* MinusMinusToken */,\n 22 /* CloseParenToken */,\n 24 /* CloseBracketToken */,\n 20 /* CloseBraceToken */,\n 112 /* TrueKeyword */,\n 97 /* FalseKeyword */\n ],\n (token) => token,\n () => true\n);\nfunction getNewEndOfLineState(scanner2, token, lastOnTemplateStack) {\n switch (token) {\n case 11 /* StringLiteral */: {\n if (!scanner2.isUnterminated()) return void 0;\n const tokenText = scanner2.getTokenText();\n const lastCharIndex = tokenText.length - 1;\n let numBackslashes = 0;\n while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92 /* backslash */) {\n numBackslashes++;\n }\n if ((numBackslashes & 1) === 0) return void 0;\n return tokenText.charCodeAt(0) === 34 /* doubleQuote */ ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */;\n }\n case 3 /* MultiLineCommentTrivia */:\n return scanner2.isUnterminated() ? 1 /* InMultiLineCommentTrivia */ : void 0;\n default:\n if (isTemplateLiteralKind(token)) {\n if (!scanner2.isUnterminated()) {\n return void 0;\n }\n switch (token) {\n case 18 /* TemplateTail */:\n return 5 /* InTemplateMiddleOrTail */;\n case 15 /* NoSubstitutionTemplateLiteral */:\n return 4 /* InTemplateHeadOrNoSubstitutionTemplate */;\n default:\n return Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\" + token);\n }\n }\n return lastOnTemplateStack === 16 /* TemplateHead */ ? 6 /* InTemplateSubstitutionPosition */ : void 0;\n }\n}\nfunction pushEncodedClassification(start, end, offset, classification, result) {\n if (classification === 8 /* whiteSpace */) {\n return;\n }\n if (start === 0 && offset > 0) {\n start += offset;\n }\n const length2 = end - start;\n if (length2 > 0) {\n result.push(start - offset, length2, classification);\n }\n}\nfunction convertClassificationsToResult(classifications, text) {\n const entries = [];\n const dense = classifications.spans;\n let lastEnd = 0;\n for (let i = 0; i < dense.length; i += 3) {\n const start = dense[i];\n const length2 = dense[i + 1];\n const type = dense[i + 2];\n if (lastEnd >= 0) {\n const whitespaceLength2 = start - lastEnd;\n if (whitespaceLength2 > 0) {\n entries.push({ length: whitespaceLength2, classification: 4 /* Whitespace */ });\n }\n }\n entries.push({ length: length2, classification: convertClassification(type) });\n lastEnd = start + length2;\n }\n const whitespaceLength = text.length - lastEnd;\n if (whitespaceLength > 0) {\n entries.push({ length: whitespaceLength, classification: 4 /* Whitespace */ });\n }\n return { entries, finalLexState: classifications.endOfLineState };\n}\nfunction convertClassification(type) {\n switch (type) {\n case 1 /* comment */:\n return 3 /* Comment */;\n case 3 /* keyword */:\n return 1 /* Keyword */;\n case 4 /* numericLiteral */:\n return 6 /* NumberLiteral */;\n case 25 /* bigintLiteral */:\n return 7 /* BigIntLiteral */;\n case 5 /* operator */:\n return 2 /* Operator */;\n case 6 /* stringLiteral */:\n return 8 /* StringLiteral */;\n case 8 /* whiteSpace */:\n return 4 /* Whitespace */;\n case 10 /* punctuation */:\n return 0 /* Punctuation */;\n case 2 /* identifier */:\n case 11 /* className */:\n case 12 /* enumName */:\n case 13 /* interfaceName */:\n case 14 /* moduleName */:\n case 15 /* typeParameterName */:\n case 16 /* typeAliasName */:\n case 9 /* text */:\n case 17 /* parameterName */:\n return 5 /* Identifier */;\n default:\n return void 0;\n }\n}\nfunction canFollow(keyword1, keyword2) {\n if (!isAccessibilityModifier(keyword1)) {\n return true;\n }\n switch (keyword2) {\n case 139 /* GetKeyword */:\n case 153 /* SetKeyword */:\n case 137 /* ConstructorKeyword */:\n case 126 /* StaticKeyword */:\n case 129 /* AccessorKeyword */:\n return true;\n // Allow things like \"public get\", \"public constructor\" and \"public static\".\n default:\n return false;\n }\n}\nfunction getPrefixFromLexState(lexState) {\n switch (lexState) {\n case 3 /* InDoubleQuoteStringLiteral */:\n return { prefix: '\"\\\\\\n' };\n case 2 /* InSingleQuoteStringLiteral */:\n return { prefix: \"'\\\\\\n\" };\n case 1 /* InMultiLineCommentTrivia */:\n return { prefix: \"/*\\n\" };\n case 4 /* InTemplateHeadOrNoSubstitutionTemplate */:\n return { prefix: \"`\\n\" };\n case 5 /* InTemplateMiddleOrTail */:\n return { prefix: \"}\\n\", pushTemplate: true };\n case 6 /* InTemplateSubstitutionPosition */:\n return { prefix: \"\", pushTemplate: true };\n case 0 /* None */:\n return { prefix: \"\" };\n default:\n return Debug.assertNever(lexState);\n }\n}\nfunction isBinaryExpressionOperatorToken(token) {\n switch (token) {\n case 42 /* AsteriskToken */:\n case 44 /* SlashToken */:\n case 45 /* PercentToken */:\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 48 /* LessThanLessThanToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n case 30 /* LessThanToken */:\n case 32 /* GreaterThanToken */:\n case 33 /* LessThanEqualsToken */:\n case 34 /* GreaterThanEqualsToken */:\n case 104 /* InstanceOfKeyword */:\n case 103 /* InKeyword */:\n case 130 /* AsKeyword */:\n case 152 /* SatisfiesKeyword */:\n case 35 /* EqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n case 51 /* AmpersandToken */:\n case 53 /* CaretToken */:\n case 52 /* BarToken */:\n case 56 /* AmpersandAmpersandToken */:\n case 57 /* BarBarToken */:\n case 75 /* BarEqualsToken */:\n case 74 /* AmpersandEqualsToken */:\n case 79 /* CaretEqualsToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 65 /* PlusEqualsToken */:\n case 66 /* MinusEqualsToken */:\n case 67 /* AsteriskEqualsToken */:\n case 69 /* SlashEqualsToken */:\n case 70 /* PercentEqualsToken */:\n case 64 /* EqualsToken */:\n case 28 /* CommaToken */:\n case 61 /* QuestionQuestionToken */:\n case 76 /* BarBarEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n return true;\n default:\n return false;\n }\n}\nfunction isPrefixUnaryExpressionOperatorToken(token) {\n switch (token) {\n case 40 /* PlusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n case 54 /* ExclamationToken */:\n case 46 /* PlusPlusToken */:\n case 47 /* MinusMinusToken */:\n return true;\n default:\n return false;\n }\n}\nfunction classFromKind(token) {\n if (isKeyword(token)) {\n return 3 /* keyword */;\n } else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) {\n return 5 /* operator */;\n } else if (token >= 19 /* FirstPunctuation */ && token <= 79 /* LastPunctuation */) {\n return 10 /* punctuation */;\n }\n switch (token) {\n case 9 /* NumericLiteral */:\n return 4 /* numericLiteral */;\n case 10 /* BigIntLiteral */:\n return 25 /* bigintLiteral */;\n case 11 /* StringLiteral */:\n return 6 /* stringLiteral */;\n case 14 /* RegularExpressionLiteral */:\n return 7 /* regularExpressionLiteral */;\n case 7 /* ConflictMarkerTrivia */:\n case 3 /* MultiLineCommentTrivia */:\n case 2 /* SingleLineCommentTrivia */:\n return 1 /* comment */;\n case 5 /* WhitespaceTrivia */:\n case 4 /* NewLineTrivia */:\n return 8 /* whiteSpace */;\n case 80 /* Identifier */:\n default:\n if (isTemplateLiteralKind(token)) {\n return 6 /* stringLiteral */;\n }\n return 2 /* identifier */;\n }\n}\nfunction getSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) {\n return convertClassificationsToSpans(getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span));\n}\nfunction checkForClassificationCancellation(cancellationToken, kind) {\n switch (kind) {\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n cancellationToken.throwIfCancellationRequested();\n }\n}\nfunction getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) {\n const spans = [];\n sourceFile.forEachChild(function cb(node) {\n if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth())) {\n return;\n }\n checkForClassificationCancellation(cancellationToken, node.kind);\n if (isIdentifier(node) && !nodeIsMissing(node) && classifiableNames.has(node.escapedText)) {\n const symbol = typeChecker.getSymbolAtLocation(node);\n const type = symbol && classifySymbol(symbol, getMeaningFromLocation(node), typeChecker);\n if (type) {\n pushClassification(node.getStart(sourceFile), node.getEnd(), type);\n }\n }\n node.forEachChild(cb);\n });\n return { spans, endOfLineState: 0 /* None */ };\n function pushClassification(start, end, type) {\n const length2 = end - start;\n Debug.assert(length2 > 0, `Classification had non-positive length of ${length2}`);\n spans.push(start);\n spans.push(length2);\n spans.push(type);\n }\n}\nfunction classifySymbol(symbol, meaningAtPosition, checker) {\n const flags = symbol.getFlags();\n if ((flags & 2885600 /* Classifiable */) === 0 /* None */) {\n return void 0;\n } else if (flags & 32 /* Class */) {\n return 11 /* className */;\n } else if (flags & 384 /* Enum */) {\n return 12 /* enumName */;\n } else if (flags & 524288 /* TypeAlias */) {\n return 16 /* typeAliasName */;\n } else if (flags & 1536 /* Module */) {\n return meaningAtPosition & 4 /* Namespace */ || meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol) ? 14 /* moduleName */ : void 0;\n } else if (flags & 2097152 /* Alias */) {\n return classifySymbol(checker.getAliasedSymbol(symbol), meaningAtPosition, checker);\n } else if (meaningAtPosition & 2 /* Type */) {\n return flags & 64 /* Interface */ ? 13 /* interfaceName */ : flags & 262144 /* TypeParameter */ ? 15 /* typeParameterName */ : void 0;\n } else {\n return void 0;\n }\n}\nfunction hasValueSideModule(symbol) {\n return some(symbol.declarations, (declaration) => isModuleDeclaration(declaration) && getModuleInstanceState(declaration) === 1 /* Instantiated */);\n}\nfunction getClassificationTypeName(type) {\n switch (type) {\n case 1 /* comment */:\n return \"comment\" /* comment */;\n case 2 /* identifier */:\n return \"identifier\" /* identifier */;\n case 3 /* keyword */:\n return \"keyword\" /* keyword */;\n case 4 /* numericLiteral */:\n return \"number\" /* numericLiteral */;\n case 25 /* bigintLiteral */:\n return \"bigint\" /* bigintLiteral */;\n case 5 /* operator */:\n return \"operator\" /* operator */;\n case 6 /* stringLiteral */:\n return \"string\" /* stringLiteral */;\n case 8 /* whiteSpace */:\n return \"whitespace\" /* whiteSpace */;\n case 9 /* text */:\n return \"text\" /* text */;\n case 10 /* punctuation */:\n return \"punctuation\" /* punctuation */;\n case 11 /* className */:\n return \"class name\" /* className */;\n case 12 /* enumName */:\n return \"enum name\" /* enumName */;\n case 13 /* interfaceName */:\n return \"interface name\" /* interfaceName */;\n case 14 /* moduleName */:\n return \"module name\" /* moduleName */;\n case 15 /* typeParameterName */:\n return \"type parameter name\" /* typeParameterName */;\n case 16 /* typeAliasName */:\n return \"type alias name\" /* typeAliasName */;\n case 17 /* parameterName */:\n return \"parameter name\" /* parameterName */;\n case 18 /* docCommentTagName */:\n return \"doc comment tag name\" /* docCommentTagName */;\n case 19 /* jsxOpenTagName */:\n return \"jsx open tag name\" /* jsxOpenTagName */;\n case 20 /* jsxCloseTagName */:\n return \"jsx close tag name\" /* jsxCloseTagName */;\n case 21 /* jsxSelfClosingTagName */:\n return \"jsx self closing tag name\" /* jsxSelfClosingTagName */;\n case 22 /* jsxAttribute */:\n return \"jsx attribute\" /* jsxAttribute */;\n case 23 /* jsxText */:\n return \"jsx text\" /* jsxText */;\n case 24 /* jsxAttributeStringLiteralValue */:\n return \"jsx attribute string literal value\" /* jsxAttributeStringLiteralValue */;\n default:\n return void 0;\n }\n}\nfunction convertClassificationsToSpans(classifications) {\n Debug.assert(classifications.spans.length % 3 === 0);\n const dense = classifications.spans;\n const result = [];\n for (let i = 0; i < dense.length; i += 3) {\n result.push({\n textSpan: createTextSpan(dense[i], dense[i + 1]),\n classificationType: getClassificationTypeName(dense[i + 2])\n });\n }\n return result;\n}\nfunction getSyntacticClassifications(cancellationToken, sourceFile, span) {\n return convertClassificationsToSpans(getEncodedSyntacticClassifications(cancellationToken, sourceFile, span));\n}\nfunction getEncodedSyntacticClassifications(cancellationToken, sourceFile, span) {\n const spanStart = span.start;\n const spanLength = span.length;\n const triviaScanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false,\n sourceFile.languageVariant,\n sourceFile.text\n );\n const mergeConflictScanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false,\n sourceFile.languageVariant,\n sourceFile.text\n );\n const result = [];\n processElement(sourceFile);\n return { spans: result, endOfLineState: 0 /* None */ };\n function pushClassification(start, length2, type) {\n result.push(start);\n result.push(length2);\n result.push(type);\n }\n function classifyLeadingTriviaAndGetTokenStart(token) {\n triviaScanner.resetTokenState(token.pos);\n while (true) {\n const start = triviaScanner.getTokenEnd();\n if (!couldStartTrivia(sourceFile.text, start)) {\n return start;\n }\n const kind = triviaScanner.scan();\n const end = triviaScanner.getTokenEnd();\n const width = end - start;\n if (!isTrivia(kind)) {\n return start;\n }\n switch (kind) {\n case 4 /* NewLineTrivia */:\n case 5 /* WhitespaceTrivia */:\n continue;\n case 2 /* SingleLineCommentTrivia */:\n case 3 /* MultiLineCommentTrivia */:\n classifyComment(token, kind, start, width);\n triviaScanner.resetTokenState(end);\n continue;\n case 7 /* ConflictMarkerTrivia */:\n const text = sourceFile.text;\n const ch = text.charCodeAt(start);\n if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) {\n pushClassification(start, width, 1 /* comment */);\n continue;\n }\n Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */);\n classifyDisabledMergeCode(text, start, end);\n break;\n case 6 /* ShebangTrivia */:\n break;\n default:\n Debug.assertNever(kind);\n }\n }\n }\n function classifyComment(token, kind, start, width) {\n if (kind === 3 /* MultiLineCommentTrivia */) {\n const docCommentAndDiagnostics = parseIsolatedJSDocComment(sourceFile.text, start, width);\n if (docCommentAndDiagnostics && docCommentAndDiagnostics.jsDoc) {\n setParent(docCommentAndDiagnostics.jsDoc, token);\n classifyJSDocComment(docCommentAndDiagnostics.jsDoc);\n return;\n }\n } else if (kind === 2 /* SingleLineCommentTrivia */) {\n if (tryClassifyTripleSlashComment(start, width)) {\n return;\n }\n }\n pushCommentRange(start, width);\n }\n function pushCommentRange(start, width) {\n pushClassification(start, width, 1 /* comment */);\n }\n function classifyJSDocComment(docComment) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n let pos = docComment.pos;\n if (docComment.tags) {\n for (const tag of docComment.tags) {\n if (tag.pos !== pos) {\n pushCommentRange(pos, tag.pos - pos);\n }\n pushClassification(tag.pos, 1, 10 /* punctuation */);\n pushClassification(tag.tagName.pos, tag.tagName.end - tag.tagName.pos, 18 /* docCommentTagName */);\n pos = tag.tagName.end;\n let commentStart = tag.tagName.end;\n switch (tag.kind) {\n case 342 /* JSDocParameterTag */:\n const param = tag;\n processJSDocParameterTag(param);\n commentStart = param.isNameFirst && ((_a = param.typeExpression) == null ? void 0 : _a.end) || param.name.end;\n break;\n case 349 /* JSDocPropertyTag */:\n const prop = tag;\n commentStart = prop.isNameFirst && ((_b = prop.typeExpression) == null ? void 0 : _b.end) || prop.name.end;\n break;\n case 346 /* JSDocTemplateTag */:\n processJSDocTemplateTag(tag);\n pos = tag.end;\n commentStart = tag.typeParameters.end;\n break;\n case 347 /* JSDocTypedefTag */:\n const type = tag;\n commentStart = ((_c = type.typeExpression) == null ? void 0 : _c.kind) === 310 /* JSDocTypeExpression */ && ((_d = type.fullName) == null ? void 0 : _d.end) || ((_e = type.typeExpression) == null ? void 0 : _e.end) || commentStart;\n break;\n case 339 /* JSDocCallbackTag */:\n commentStart = tag.typeExpression.end;\n break;\n case 345 /* JSDocTypeTag */:\n processElement(tag.typeExpression);\n pos = tag.end;\n commentStart = tag.typeExpression.end;\n break;\n case 344 /* JSDocThisTag */:\n case 341 /* JSDocEnumTag */:\n commentStart = tag.typeExpression.end;\n break;\n case 343 /* JSDocReturnTag */:\n processElement(tag.typeExpression);\n pos = tag.end;\n commentStart = ((_f = tag.typeExpression) == null ? void 0 : _f.end) || commentStart;\n break;\n case 348 /* JSDocSeeTag */:\n commentStart = ((_g = tag.name) == null ? void 0 : _g.end) || commentStart;\n break;\n case 329 /* JSDocAugmentsTag */:\n case 330 /* JSDocImplementsTag */:\n commentStart = tag.class.end;\n break;\n case 350 /* JSDocThrowsTag */:\n processElement(tag.typeExpression);\n pos = tag.end;\n commentStart = ((_h = tag.typeExpression) == null ? void 0 : _h.end) || commentStart;\n break;\n }\n if (typeof tag.comment === \"object\") {\n pushCommentRange(tag.comment.pos, tag.comment.end - tag.comment.pos);\n } else if (typeof tag.comment === \"string\") {\n pushCommentRange(commentStart, tag.end - commentStart);\n }\n }\n }\n if (pos !== docComment.end) {\n pushCommentRange(pos, docComment.end - pos);\n }\n return;\n function processJSDocParameterTag(tag) {\n if (tag.isNameFirst) {\n pushCommentRange(pos, tag.name.pos - pos);\n pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */);\n pos = tag.name.end;\n }\n if (tag.typeExpression) {\n pushCommentRange(pos, tag.typeExpression.pos - pos);\n processElement(tag.typeExpression);\n pos = tag.typeExpression.end;\n }\n if (!tag.isNameFirst) {\n pushCommentRange(pos, tag.name.pos - pos);\n pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */);\n pos = tag.name.end;\n }\n }\n }\n function tryClassifyTripleSlashComment(start, width) {\n const tripleSlashXMLCommentRegEx = /^(\\/\\/\\/\\s*)(<)(?:(\\S+)((?:[^/]|\\/[^>])*)(\\/>)?)?/m;\n const attributeRegex = /(\\s)(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/g;\n const text = sourceFile.text.substr(start, width);\n const match = tripleSlashXMLCommentRegEx.exec(text);\n if (!match) {\n return false;\n }\n if (!match[3] || !(match[3] in commentPragmas)) {\n return false;\n }\n let pos = start;\n pushCommentRange(pos, match[1].length);\n pos += match[1].length;\n pushClassification(pos, match[2].length, 10 /* punctuation */);\n pos += match[2].length;\n pushClassification(pos, match[3].length, 21 /* jsxSelfClosingTagName */);\n pos += match[3].length;\n const attrText = match[4];\n let attrPos = pos;\n while (true) {\n const attrMatch = attributeRegex.exec(attrText);\n if (!attrMatch) {\n break;\n }\n const newAttrPos = pos + attrMatch.index + attrMatch[1].length;\n if (newAttrPos > attrPos) {\n pushCommentRange(attrPos, newAttrPos - attrPos);\n attrPos = newAttrPos;\n }\n pushClassification(attrPos, attrMatch[2].length, 22 /* jsxAttribute */);\n attrPos += attrMatch[2].length;\n if (attrMatch[3].length) {\n pushCommentRange(attrPos, attrMatch[3].length);\n attrPos += attrMatch[3].length;\n }\n pushClassification(attrPos, attrMatch[4].length, 5 /* operator */);\n attrPos += attrMatch[4].length;\n if (attrMatch[5].length) {\n pushCommentRange(attrPos, attrMatch[5].length);\n attrPos += attrMatch[5].length;\n }\n pushClassification(attrPos, attrMatch[6].length, 24 /* jsxAttributeStringLiteralValue */);\n attrPos += attrMatch[6].length;\n }\n pos += match[4].length;\n if (pos > attrPos) {\n pushCommentRange(attrPos, pos - attrPos);\n }\n if (match[5]) {\n pushClassification(pos, match[5].length, 10 /* punctuation */);\n pos += match[5].length;\n }\n const end = start + width;\n if (pos < end) {\n pushCommentRange(pos, end - pos);\n }\n return true;\n }\n function processJSDocTemplateTag(tag) {\n for (const child of tag.getChildren()) {\n processElement(child);\n }\n }\n function classifyDisabledMergeCode(text, start, end) {\n let i;\n for (i = start; i < end; i++) {\n if (isLineBreak(text.charCodeAt(i))) {\n break;\n }\n }\n pushClassification(start, i - start, 1 /* comment */);\n mergeConflictScanner.resetTokenState(i);\n while (mergeConflictScanner.getTokenEnd() < end) {\n classifyDisabledCodeToken();\n }\n }\n function classifyDisabledCodeToken() {\n const start = mergeConflictScanner.getTokenEnd();\n const tokenKind = mergeConflictScanner.scan();\n const end = mergeConflictScanner.getTokenEnd();\n const type = classifyTokenType(tokenKind);\n if (type) {\n pushClassification(start, end - start, type);\n }\n }\n function tryClassifyNode(node) {\n if (isJSDoc(node)) {\n return true;\n }\n if (nodeIsMissing(node)) {\n return true;\n }\n const classifiedElementName = tryClassifyJsxElementName(node);\n if (!isToken(node) && node.kind !== 12 /* JsxText */ && classifiedElementName === void 0) {\n return false;\n }\n const tokenStart = node.kind === 12 /* JsxText */ ? node.pos : classifyLeadingTriviaAndGetTokenStart(node);\n const tokenWidth = node.end - tokenStart;\n Debug.assert(tokenWidth >= 0);\n if (tokenWidth > 0) {\n const type = classifiedElementName || classifyTokenType(node.kind, node);\n if (type) {\n pushClassification(tokenStart, tokenWidth, type);\n }\n }\n return true;\n }\n function tryClassifyJsxElementName(token) {\n switch (token.parent && token.parent.kind) {\n case 287 /* JsxOpeningElement */:\n if (token.parent.tagName === token) {\n return 19 /* jsxOpenTagName */;\n }\n break;\n case 288 /* JsxClosingElement */:\n if (token.parent.tagName === token) {\n return 20 /* jsxCloseTagName */;\n }\n break;\n case 286 /* JsxSelfClosingElement */:\n if (token.parent.tagName === token) {\n return 21 /* jsxSelfClosingTagName */;\n }\n break;\n case 292 /* JsxAttribute */:\n if (token.parent.name === token) {\n return 22 /* jsxAttribute */;\n }\n break;\n }\n return void 0;\n }\n function classifyTokenType(tokenKind, token) {\n if (isKeyword(tokenKind)) {\n return 3 /* keyword */;\n }\n if (tokenKind === 30 /* LessThanToken */ || tokenKind === 32 /* GreaterThanToken */) {\n if (token && getTypeArgumentOrTypeParameterList(token.parent)) {\n return 10 /* punctuation */;\n }\n }\n if (isPunctuation(tokenKind)) {\n if (token) {\n const parent2 = token.parent;\n if (tokenKind === 64 /* EqualsToken */) {\n if (parent2.kind === 261 /* VariableDeclaration */ || parent2.kind === 173 /* PropertyDeclaration */ || parent2.kind === 170 /* Parameter */ || parent2.kind === 292 /* JsxAttribute */) {\n return 5 /* operator */;\n }\n }\n if (parent2.kind === 227 /* BinaryExpression */ || parent2.kind === 225 /* PrefixUnaryExpression */ || parent2.kind === 226 /* PostfixUnaryExpression */ || parent2.kind === 228 /* ConditionalExpression */) {\n return 5 /* operator */;\n }\n }\n return 10 /* punctuation */;\n } else if (tokenKind === 9 /* NumericLiteral */) {\n return 4 /* numericLiteral */;\n } else if (tokenKind === 10 /* BigIntLiteral */) {\n return 25 /* bigintLiteral */;\n } else if (tokenKind === 11 /* StringLiteral */) {\n return token && token.parent.kind === 292 /* JsxAttribute */ ? 24 /* jsxAttributeStringLiteralValue */ : 6 /* stringLiteral */;\n } else if (tokenKind === 14 /* RegularExpressionLiteral */) {\n return 6 /* stringLiteral */;\n } else if (isTemplateLiteralKind(tokenKind)) {\n return 6 /* stringLiteral */;\n } else if (tokenKind === 12 /* JsxText */) {\n return 23 /* jsxText */;\n } else if (tokenKind === 80 /* Identifier */) {\n if (token) {\n switch (token.parent.kind) {\n case 264 /* ClassDeclaration */:\n if (token.parent.name === token) {\n return 11 /* className */;\n }\n return;\n case 169 /* TypeParameter */:\n if (token.parent.name === token) {\n return 15 /* typeParameterName */;\n }\n return;\n case 265 /* InterfaceDeclaration */:\n if (token.parent.name === token) {\n return 13 /* interfaceName */;\n }\n return;\n case 267 /* EnumDeclaration */:\n if (token.parent.name === token) {\n return 12 /* enumName */;\n }\n return;\n case 268 /* ModuleDeclaration */:\n if (token.parent.name === token) {\n return 14 /* moduleName */;\n }\n return;\n case 170 /* Parameter */:\n if (token.parent.name === token) {\n return isThisIdentifier(token) ? 3 /* keyword */ : 17 /* parameterName */;\n }\n return;\n }\n if (isConstTypeReference(token.parent)) {\n return 3 /* keyword */;\n }\n }\n return 2 /* identifier */;\n }\n }\n function processElement(element) {\n if (!element) {\n return;\n }\n if (decodedTextSpanIntersectsWith(spanStart, spanLength, element.pos, element.getFullWidth())) {\n checkForClassificationCancellation(cancellationToken, element.kind);\n for (const child of element.getChildren(sourceFile)) {\n if (!tryClassifyNode(child)) {\n processElement(child);\n }\n }\n }\n }\n}\n\n// src/services/documentHighlights.ts\nvar DocumentHighlights;\n((DocumentHighlights3) => {\n function getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch) {\n const node = getTouchingPropertyName(sourceFile, position);\n if (node.parent && (isJsxOpeningElement(node.parent) && node.parent.tagName === node || isJsxClosingElement(node.parent))) {\n const { openingElement, closingElement } = node.parent.parent;\n const highlightSpans = [openingElement, closingElement].map(({ tagName }) => getHighlightSpanForNode(tagName, sourceFile));\n return [{ fileName: sourceFile.fileName, highlightSpans }];\n }\n return getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) || getSyntacticDocumentHighlights(node, sourceFile);\n }\n DocumentHighlights3.getDocumentHighlights = getDocumentHighlights;\n function getHighlightSpanForNode(node, sourceFile) {\n return {\n fileName: sourceFile.fileName,\n textSpan: createTextSpanFromNode(node, sourceFile),\n kind: \"none\" /* none */\n };\n }\n function getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) {\n const sourceFilesSet = new Set(sourceFilesToSearch.map((f) => f.fileName));\n const referenceEntries = ts_FindAllReferences_exports.getReferenceEntriesForNode(\n position,\n node,\n program,\n sourceFilesToSearch,\n cancellationToken,\n /*options*/\n void 0,\n sourceFilesSet\n );\n if (!referenceEntries) return void 0;\n const map2 = arrayToMultiMap(referenceEntries.map(ts_FindAllReferences_exports.toHighlightSpan), (e) => e.fileName, (e) => e.span);\n const getCanonicalFileName = createGetCanonicalFileName(program.useCaseSensitiveFileNames());\n return arrayFrom(mapDefinedIterator(map2.entries(), ([fileName, highlightSpans]) => {\n if (!sourceFilesSet.has(fileName)) {\n if (!program.redirectTargetsMap.has(toPath(fileName, program.getCurrentDirectory(), getCanonicalFileName))) {\n return void 0;\n }\n const redirectTarget = program.getSourceFile(fileName);\n const redirect = find(sourceFilesToSearch, (f) => !!f.redirectInfo && f.redirectInfo.redirectTarget === redirectTarget);\n fileName = redirect.fileName;\n Debug.assert(sourceFilesSet.has(fileName));\n }\n return { fileName, highlightSpans };\n }));\n }\n function getSyntacticDocumentHighlights(node, sourceFile) {\n const highlightSpans = getHighlightSpans(node, sourceFile);\n return highlightSpans && [{ fileName: sourceFile.fileName, highlightSpans }];\n }\n function getHighlightSpans(node, sourceFile) {\n switch (node.kind) {\n case 101 /* IfKeyword */:\n case 93 /* ElseKeyword */:\n return isIfStatement(node.parent) ? getIfElseOccurrences(node.parent, sourceFile) : void 0;\n case 107 /* ReturnKeyword */:\n return useParent(node.parent, isReturnStatement, getReturnOccurrences);\n case 111 /* ThrowKeyword */:\n return useParent(node.parent, isThrowStatement, getThrowOccurrences);\n case 113 /* TryKeyword */:\n case 85 /* CatchKeyword */:\n case 98 /* FinallyKeyword */:\n const tryStatement = node.kind === 85 /* CatchKeyword */ ? node.parent.parent : node.parent;\n return useParent(tryStatement, isTryStatement, getTryCatchFinallyOccurrences);\n case 109 /* SwitchKeyword */:\n return useParent(node.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);\n case 84 /* CaseKeyword */:\n case 90 /* DefaultKeyword */: {\n if (isDefaultClause(node.parent) || isCaseClause(node.parent)) {\n return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);\n }\n return void 0;\n }\n case 83 /* BreakKeyword */:\n case 88 /* ContinueKeyword */:\n return useParent(node.parent, isBreakOrContinueStatement, getBreakOrContinueStatementOccurrences);\n case 99 /* ForKeyword */:\n case 117 /* WhileKeyword */:\n case 92 /* DoKeyword */:\n return useParent(node.parent, (n) => isIterationStatement(\n n,\n /*lookInLabeledStatements*/\n true\n ), getLoopBreakContinueOccurrences);\n case 137 /* ConstructorKeyword */:\n return getFromAllDeclarations(isConstructorDeclaration, [137 /* ConstructorKeyword */]);\n case 139 /* GetKeyword */:\n case 153 /* SetKeyword */:\n return getFromAllDeclarations(isAccessor, [139 /* GetKeyword */, 153 /* SetKeyword */]);\n case 135 /* AwaitKeyword */:\n return useParent(node.parent, isAwaitExpression, getAsyncAndAwaitOccurrences);\n case 134 /* AsyncKeyword */:\n return highlightSpans(getAsyncAndAwaitOccurrences(node));\n case 127 /* YieldKeyword */:\n return highlightSpans(getYieldOccurrences(node));\n case 103 /* InKeyword */:\n case 147 /* OutKeyword */:\n return void 0;\n default:\n return isModifierKind(node.kind) && (isDeclaration(node.parent) || isVariableStatement(node.parent)) ? highlightSpans(getModifierOccurrences(node.kind, node.parent)) : void 0;\n }\n function getFromAllDeclarations(nodeTest, keywords) {\n return useParent(node.parent, nodeTest, (decl) => {\n var _a;\n return mapDefined((_a = tryCast(decl, canHaveSymbol)) == null ? void 0 : _a.symbol.declarations, (d) => nodeTest(d) ? find(d.getChildren(sourceFile), (c) => contains(keywords, c.kind)) : void 0);\n });\n }\n function useParent(node2, nodeTest, getNodes4) {\n return nodeTest(node2) ? highlightSpans(getNodes4(node2, sourceFile)) : void 0;\n }\n function highlightSpans(nodes) {\n return nodes && nodes.map((node2) => getHighlightSpanForNode(node2, sourceFile));\n }\n }\n function aggregateOwnedThrowStatements(node) {\n if (isThrowStatement(node)) {\n return [node];\n } else if (isTryStatement(node)) {\n return concatenate(\n node.catchClause ? aggregateOwnedThrowStatements(node.catchClause) : node.tryBlock && aggregateOwnedThrowStatements(node.tryBlock),\n node.finallyBlock && aggregateOwnedThrowStatements(node.finallyBlock)\n );\n }\n return isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateOwnedThrowStatements);\n }\n function getThrowStatementOwner(throwStatement) {\n let child = throwStatement;\n while (child.parent) {\n const parent2 = child.parent;\n if (isFunctionBlock(parent2) || parent2.kind === 308 /* SourceFile */) {\n return parent2;\n }\n if (isTryStatement(parent2) && parent2.tryBlock === child && parent2.catchClause) {\n return child;\n }\n child = parent2;\n }\n return void 0;\n }\n function aggregateAllBreakAndContinueStatements(node) {\n return isBreakOrContinueStatement(node) ? [node] : isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateAllBreakAndContinueStatements);\n }\n function flatMapChildren(node, cb) {\n const result = [];\n node.forEachChild((child) => {\n const value = cb(child);\n if (value !== void 0) {\n result.push(...toArray(value));\n }\n });\n return result;\n }\n function ownsBreakOrContinueStatement(owner, statement) {\n const actualOwner = getBreakOrContinueOwner(statement);\n return !!actualOwner && actualOwner === owner;\n }\n function getBreakOrContinueOwner(statement) {\n return findAncestor(statement, (node) => {\n switch (node.kind) {\n case 256 /* SwitchStatement */:\n if (statement.kind === 252 /* ContinueStatement */) {\n return false;\n }\n // falls through\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 248 /* WhileStatement */:\n case 247 /* DoStatement */:\n return !statement.label || isLabeledBy(node, statement.label.escapedText);\n default:\n return isFunctionLike(node) && \"quit\";\n }\n });\n }\n function getModifierOccurrences(modifier, declaration) {\n return mapDefined(getNodesToSearchForModifier(declaration, modifierToFlag(modifier)), (node) => findModifier(node, modifier));\n }\n function getNodesToSearchForModifier(declaration, modifierFlag) {\n const container = declaration.parent;\n switch (container.kind) {\n case 269 /* ModuleBlock */:\n case 308 /* SourceFile */:\n case 242 /* Block */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n if (modifierFlag & 64 /* Abstract */ && isClassDeclaration(declaration)) {\n return [...declaration.members, declaration];\n } else {\n return container.statements;\n }\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 263 /* FunctionDeclaration */:\n return [...container.parameters, ...isClassLike(container.parent) ? container.parent.members : []];\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 188 /* TypeLiteral */:\n const nodes = container.members;\n if (modifierFlag & (7 /* AccessibilityModifier */ | 8 /* Readonly */)) {\n const constructor = find(container.members, isConstructorDeclaration);\n if (constructor) {\n return [...nodes, ...constructor.parameters];\n }\n } else if (modifierFlag & 64 /* Abstract */) {\n return [...nodes, container];\n }\n return nodes;\n // Syntactically invalid positions that the parser might produce anyway\n default:\n return void 0;\n }\n }\n function pushKeywordIf(keywordList, token, ...expected) {\n if (token && contains(expected, token.kind)) {\n keywordList.push(token);\n return true;\n }\n return false;\n }\n function getLoopBreakContinueOccurrences(loopNode) {\n const keywords = [];\n if (pushKeywordIf(keywords, loopNode.getFirstToken(), 99 /* ForKeyword */, 117 /* WhileKeyword */, 92 /* DoKeyword */)) {\n if (loopNode.kind === 247 /* DoStatement */) {\n const loopTokens = loopNode.getChildren();\n for (let i = loopTokens.length - 1; i >= 0; i--) {\n if (pushKeywordIf(keywords, loopTokens[i], 117 /* WhileKeyword */)) {\n break;\n }\n }\n }\n }\n forEach(aggregateAllBreakAndContinueStatements(loopNode.statement), (statement) => {\n if (ownsBreakOrContinueStatement(loopNode, statement)) {\n pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */, 88 /* ContinueKeyword */);\n }\n });\n return keywords;\n }\n function getBreakOrContinueStatementOccurrences(breakOrContinueStatement) {\n const owner = getBreakOrContinueOwner(breakOrContinueStatement);\n if (owner) {\n switch (owner.kind) {\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n return getLoopBreakContinueOccurrences(owner);\n case 256 /* SwitchStatement */:\n return getSwitchCaseDefaultOccurrences(owner);\n }\n }\n return void 0;\n }\n function getSwitchCaseDefaultOccurrences(switchStatement) {\n const keywords = [];\n pushKeywordIf(keywords, switchStatement.getFirstToken(), 109 /* SwitchKeyword */);\n forEach(switchStatement.caseBlock.clauses, (clause) => {\n pushKeywordIf(keywords, clause.getFirstToken(), 84 /* CaseKeyword */, 90 /* DefaultKeyword */);\n forEach(aggregateAllBreakAndContinueStatements(clause), (statement) => {\n if (ownsBreakOrContinueStatement(switchStatement, statement)) {\n pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */);\n }\n });\n });\n return keywords;\n }\n function getTryCatchFinallyOccurrences(tryStatement, sourceFile) {\n const keywords = [];\n pushKeywordIf(keywords, tryStatement.getFirstToken(), 113 /* TryKeyword */);\n if (tryStatement.catchClause) {\n pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 85 /* CatchKeyword */);\n }\n if (tryStatement.finallyBlock) {\n const finallyKeyword = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile);\n pushKeywordIf(keywords, finallyKeyword, 98 /* FinallyKeyword */);\n }\n return keywords;\n }\n function getThrowOccurrences(throwStatement, sourceFile) {\n const owner = getThrowStatementOwner(throwStatement);\n if (!owner) {\n return void 0;\n }\n const keywords = [];\n forEach(aggregateOwnedThrowStatements(owner), (throwStatement2) => {\n keywords.push(findChildOfKind(throwStatement2, 111 /* ThrowKeyword */, sourceFile));\n });\n if (isFunctionBlock(owner)) {\n forEachReturnStatement(owner, (returnStatement) => {\n keywords.push(findChildOfKind(returnStatement, 107 /* ReturnKeyword */, sourceFile));\n });\n }\n return keywords;\n }\n function getReturnOccurrences(returnStatement, sourceFile) {\n const func = getContainingFunction(returnStatement);\n if (!func) {\n return void 0;\n }\n const keywords = [];\n forEachReturnStatement(cast(func.body, isBlock), (returnStatement2) => {\n keywords.push(findChildOfKind(returnStatement2, 107 /* ReturnKeyword */, sourceFile));\n });\n forEach(aggregateOwnedThrowStatements(func.body), (throwStatement) => {\n keywords.push(findChildOfKind(throwStatement, 111 /* ThrowKeyword */, sourceFile));\n });\n return keywords;\n }\n function getAsyncAndAwaitOccurrences(node) {\n const func = getContainingFunction(node);\n if (!func) {\n return void 0;\n }\n const keywords = [];\n if (func.modifiers) {\n func.modifiers.forEach((modifier) => {\n pushKeywordIf(keywords, modifier, 134 /* AsyncKeyword */);\n });\n }\n forEachChild(func, (child) => {\n traverseWithoutCrossingFunction(child, (node2) => {\n if (isAwaitExpression(node2)) {\n pushKeywordIf(keywords, node2.getFirstToken(), 135 /* AwaitKeyword */);\n }\n });\n });\n return keywords;\n }\n function getYieldOccurrences(node) {\n const func = getContainingFunction(node);\n if (!func) {\n return void 0;\n }\n const keywords = [];\n forEachChild(func, (child) => {\n traverseWithoutCrossingFunction(child, (node2) => {\n if (isYieldExpression(node2)) {\n pushKeywordIf(keywords, node2.getFirstToken(), 127 /* YieldKeyword */);\n }\n });\n });\n return keywords;\n }\n function traverseWithoutCrossingFunction(node, cb) {\n cb(node);\n if (!isFunctionLike(node) && !isClassLike(node) && !isInterfaceDeclaration(node) && !isModuleDeclaration(node) && !isTypeAliasDeclaration(node) && !isTypeNode(node)) {\n forEachChild(node, (child) => traverseWithoutCrossingFunction(child, cb));\n }\n }\n function getIfElseOccurrences(ifStatement, sourceFile) {\n const keywords = getIfElseKeywords(ifStatement, sourceFile);\n const result = [];\n for (let i = 0; i < keywords.length; i++) {\n if (keywords[i].kind === 93 /* ElseKeyword */ && i < keywords.length - 1) {\n const elseKeyword = keywords[i];\n const ifKeyword = keywords[i + 1];\n let shouldCombineElseAndIf = true;\n for (let j = ifKeyword.getStart(sourceFile) - 1; j >= elseKeyword.end; j--) {\n if (!isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(j))) {\n shouldCombineElseAndIf = false;\n break;\n }\n }\n if (shouldCombineElseAndIf) {\n result.push({\n fileName: sourceFile.fileName,\n textSpan: createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end),\n kind: \"reference\" /* reference */\n });\n i++;\n continue;\n }\n }\n result.push(getHighlightSpanForNode(keywords[i], sourceFile));\n }\n return result;\n }\n function getIfElseKeywords(ifStatement, sourceFile) {\n const keywords = [];\n while (isIfStatement(ifStatement.parent) && ifStatement.parent.elseStatement === ifStatement) {\n ifStatement = ifStatement.parent;\n }\n while (true) {\n const children = ifStatement.getChildren(sourceFile);\n pushKeywordIf(keywords, children[0], 101 /* IfKeyword */);\n for (let i = children.length - 1; i >= 0; i--) {\n if (pushKeywordIf(keywords, children[i], 93 /* ElseKeyword */)) {\n break;\n }\n }\n if (!ifStatement.elseStatement || !isIfStatement(ifStatement.elseStatement)) {\n break;\n }\n ifStatement = ifStatement.elseStatement;\n }\n return keywords;\n }\n function isLabeledBy(node, labelName) {\n return !!findAncestor(node.parent, (owner) => !isLabeledStatement(owner) ? \"quit\" : owner.label.escapedText === labelName);\n }\n})(DocumentHighlights || (DocumentHighlights = {}));\n\n// src/services/documentRegistry.ts\nfunction isDocumentRegistryEntry(entry) {\n return !!entry.sourceFile;\n}\nfunction createDocumentRegistry(useCaseSensitiveFileNames2, currentDirectory, jsDocParsingMode) {\n return createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory, jsDocParsingMode);\n}\nfunction createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory = \"\", jsDocParsingMode, externalCache) {\n const buckets = /* @__PURE__ */ new Map();\n const getCanonicalFileName = createGetCanonicalFileName(!!useCaseSensitiveFileNames2);\n function reportStats() {\n const bucketInfoArray = arrayFrom(buckets.keys()).filter((name) => name && name.charAt(0) === \"_\").map((name) => {\n const entries = buckets.get(name);\n const sourceFiles = [];\n entries.forEach((entry, name2) => {\n if (isDocumentRegistryEntry(entry)) {\n sourceFiles.push({\n name: name2,\n scriptKind: entry.sourceFile.scriptKind,\n refCount: entry.languageServiceRefCount\n });\n } else {\n entry.forEach((value, scriptKind) => sourceFiles.push({ name: name2, scriptKind, refCount: value.languageServiceRefCount }));\n }\n });\n sourceFiles.sort((x, y) => y.refCount - x.refCount);\n return {\n bucket: name,\n sourceFiles\n };\n });\n return JSON.stringify(bucketInfoArray, void 0, 2);\n }\n function getCompilationSettings(settingsOrHost) {\n if (typeof settingsOrHost.getCompilationSettings === \"function\") {\n return settingsOrHost.getCompilationSettings();\n }\n return settingsOrHost;\n }\n function acquireDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings));\n return acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions);\n }\n function acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n return acquireOrUpdateDocument(\n fileName,\n path,\n compilationSettings,\n key,\n scriptSnapshot,\n version2,\n /*acquiring*/\n true,\n scriptKind,\n languageVersionOrOptions\n );\n }\n function updateDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings));\n return updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions);\n }\n function updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n return acquireOrUpdateDocument(\n fileName,\n path,\n getCompilationSettings(compilationSettings),\n key,\n scriptSnapshot,\n version2,\n /*acquiring*/\n false,\n scriptKind,\n languageVersionOrOptions\n );\n }\n function getDocumentRegistryEntry(bucketEntry, scriptKind) {\n const entry = isDocumentRegistryEntry(bucketEntry) ? bucketEntry : bucketEntry.get(Debug.checkDefined(scriptKind, \"If there are more than one scriptKind's for same document the scriptKind should be provided\"));\n Debug.assert(scriptKind === void 0 || !entry || entry.sourceFile.scriptKind === scriptKind, `Script kind should match provided ScriptKind:${scriptKind} and sourceFile.scriptKind: ${entry == null ? void 0 : entry.sourceFile.scriptKind}, !entry: ${!entry}`);\n return entry;\n }\n function acquireOrUpdateDocument(fileName, path, compilationSettingsOrHost, key, scriptSnapshot, version2, acquiring, scriptKind, languageVersionOrOptions) {\n var _a, _b, _c, _d;\n scriptKind = ensureScriptKind(fileName, scriptKind);\n const compilationSettings = getCompilationSettings(compilationSettingsOrHost);\n const host = compilationSettingsOrHost === compilationSettings ? void 0 : compilationSettingsOrHost;\n const scriptTarget = scriptKind === 6 /* JSON */ ? 100 /* JSON */ : getEmitScriptTarget(compilationSettings);\n const sourceFileOptions = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions : {\n languageVersion: scriptTarget,\n impliedNodeFormat: host && getImpliedNodeFormatForFile(path, (_d = (_c = (_b = (_a = host.getCompilerHost) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getModuleResolutionCache) == null ? void 0 : _c.call(_b)) == null ? void 0 : _d.getPackageJsonInfoCache(), host, compilationSettings),\n setExternalModuleIndicator: getSetExternalModuleIndicator(compilationSettings),\n jsDocParsingMode\n };\n sourceFileOptions.languageVersion = scriptTarget;\n Debug.assertEqual(jsDocParsingMode, sourceFileOptions.jsDocParsingMode);\n const oldBucketCount = buckets.size;\n const keyWithMode = getDocumentRegistryBucketKeyWithMode(key, sourceFileOptions.impliedNodeFormat);\n const bucket = getOrUpdate(buckets, keyWithMode, () => /* @__PURE__ */ new Map());\n if (tracing) {\n if (buckets.size > oldBucketCount) {\n tracing.instant(tracing.Phase.Session, \"createdDocumentRegistryBucket\", { configFilePath: compilationSettings.configFilePath, key: keyWithMode });\n }\n const otherBucketKey = !isDeclarationFileName(path) && forEachEntry(buckets, (bucket2, bucketKey) => bucketKey !== keyWithMode && bucket2.has(path) && bucketKey);\n if (otherBucketKey) {\n tracing.instant(tracing.Phase.Session, \"documentRegistryBucketOverlap\", { path, key1: otherBucketKey, key2: keyWithMode });\n }\n }\n const bucketEntry = bucket.get(path);\n let entry = bucketEntry && getDocumentRegistryEntry(bucketEntry, scriptKind);\n if (!entry && externalCache) {\n const sourceFile = externalCache.getDocument(keyWithMode, path);\n if (sourceFile && sourceFile.scriptKind === scriptKind && sourceFile.text === getSnapshotText(scriptSnapshot)) {\n Debug.assert(acquiring);\n entry = {\n sourceFile,\n languageServiceRefCount: 0\n };\n setBucketEntry();\n }\n }\n if (!entry) {\n const sourceFile = createLanguageServiceSourceFile(\n fileName,\n scriptSnapshot,\n sourceFileOptions,\n version2,\n /*setNodeParents*/\n false,\n scriptKind\n );\n if (externalCache) {\n externalCache.setDocument(keyWithMode, path, sourceFile);\n }\n entry = {\n sourceFile,\n languageServiceRefCount: 1\n };\n setBucketEntry();\n } else {\n if (entry.sourceFile.version !== version2) {\n entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version2, scriptSnapshot.getChangeRange(entry.sourceFile.scriptSnapshot));\n if (externalCache) {\n externalCache.setDocument(keyWithMode, path, entry.sourceFile);\n }\n }\n if (acquiring) {\n entry.languageServiceRefCount++;\n }\n }\n Debug.assert(entry.languageServiceRefCount !== 0);\n return entry.sourceFile;\n function setBucketEntry() {\n if (!bucketEntry) {\n bucket.set(path, entry);\n } else if (isDocumentRegistryEntry(bucketEntry)) {\n const scriptKindMap = /* @__PURE__ */ new Map();\n scriptKindMap.set(bucketEntry.sourceFile.scriptKind, bucketEntry);\n scriptKindMap.set(scriptKind, entry);\n bucket.set(path, scriptKindMap);\n } else {\n bucketEntry.set(scriptKind, entry);\n }\n }\n }\n function releaseDocument(fileName, compilationSettings, scriptKind, impliedNodeFormat) {\n const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n const key = getKeyForCompilationSettings(compilationSettings);\n return releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat);\n }\n function releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat) {\n const bucket = Debug.checkDefined(buckets.get(getDocumentRegistryBucketKeyWithMode(key, impliedNodeFormat)));\n const bucketEntry = bucket.get(path);\n const entry = getDocumentRegistryEntry(bucketEntry, scriptKind);\n entry.languageServiceRefCount--;\n Debug.assert(entry.languageServiceRefCount >= 0);\n if (entry.languageServiceRefCount === 0) {\n if (isDocumentRegistryEntry(bucketEntry)) {\n bucket.delete(path);\n } else {\n bucketEntry.delete(scriptKind);\n if (bucketEntry.size === 1) {\n bucket.set(path, firstDefinedIterator(bucketEntry.values(), identity));\n }\n }\n }\n }\n return {\n acquireDocument,\n acquireDocumentWithKey,\n updateDocument,\n updateDocumentWithKey,\n releaseDocument,\n releaseDocumentWithKey,\n getKeyForCompilationSettings,\n getDocumentRegistryBucketKeyWithMode,\n reportStats,\n getBuckets: () => buckets\n };\n}\nfunction getKeyForCompilationSettings(settings) {\n return getKeyForCompilerOptions(settings, sourceFileAffectingCompilerOptions);\n}\nfunction getDocumentRegistryBucketKeyWithMode(key, mode) {\n return mode ? `${key}|${mode}` : key;\n}\n\n// src/services/getEditsForFileRename.ts\nfunction getEditsForFileRename(program, oldFileOrDirPath, newFileOrDirPath, host, formatContext, preferences, sourceMapper) {\n const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n const oldToNew = getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper);\n const newToOld = getPathUpdater(newFileOrDirPath, oldFileOrDirPath, getCanonicalFileName, sourceMapper);\n return ts_textChanges_exports.ChangeTracker.with({ host, formatContext, preferences }, (changeTracker) => {\n updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, host.getCurrentDirectory(), useCaseSensitiveFileNames2);\n updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName);\n });\n}\nfunction getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper) {\n const canonicalOldPath = getCanonicalFileName(oldFileOrDirPath);\n return (path) => {\n const originalPath = sourceMapper && sourceMapper.tryGetSourcePosition({ fileName: path, pos: 0 });\n const updatedPath = getUpdatedPath(originalPath ? originalPath.fileName : path);\n return originalPath ? updatedPath === void 0 ? void 0 : makeCorrespondingRelativeChange(originalPath.fileName, updatedPath, path, getCanonicalFileName) : updatedPath;\n };\n function getUpdatedPath(pathToUpdate) {\n if (getCanonicalFileName(pathToUpdate) === canonicalOldPath) return newFileOrDirPath;\n const suffix = tryRemoveDirectoryPrefix(pathToUpdate, canonicalOldPath, getCanonicalFileName);\n return suffix === void 0 ? void 0 : newFileOrDirPath + \"/\" + suffix;\n }\n}\nfunction makeCorrespondingRelativeChange(a0, b0, a1, getCanonicalFileName) {\n const rel = getRelativePathFromFile(a0, b0, getCanonicalFileName);\n return combinePathsSafe(getDirectoryPath(a1), rel);\n}\nfunction updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, currentDirectory, useCaseSensitiveFileNames2) {\n const { configFile } = program.getCompilerOptions();\n if (!configFile) return;\n const configDir = getDirectoryPath(configFile.fileName);\n const jsonObjectLiteral = getTsConfigObjectLiteralExpression(configFile);\n if (!jsonObjectLiteral) return;\n forEachProperty(jsonObjectLiteral, (property, propertyName) => {\n switch (propertyName) {\n case \"files\":\n case \"include\":\n case \"exclude\": {\n const foundExactMatch = updatePaths(property);\n if (foundExactMatch || propertyName !== \"include\" || !isArrayLiteralExpression(property.initializer)) return;\n const includes = mapDefined(property.initializer.elements, (e) => isStringLiteral(e) ? e.text : void 0);\n if (includes.length === 0) return;\n const matchers = getFileMatcherPatterns(\n configDir,\n /*excludes*/\n [],\n includes,\n useCaseSensitiveFileNames2,\n currentDirectory\n );\n if (getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(oldFileOrDirPath) && !getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(newFileOrDirPath)) {\n changeTracker.insertNodeAfter(configFile, last(property.initializer.elements), factory.createStringLiteral(relativePath(newFileOrDirPath)));\n }\n return;\n }\n case \"compilerOptions\":\n forEachProperty(property.initializer, (property2, propertyName2) => {\n const option = getOptionFromName(propertyName2);\n Debug.assert((option == null ? void 0 : option.type) !== \"listOrElement\");\n if (option && (option.isFilePath || option.type === \"list\" && option.element.isFilePath)) {\n updatePaths(property2);\n } else if (propertyName2 === \"paths\") {\n forEachProperty(property2.initializer, (pathsProperty) => {\n if (!isArrayLiteralExpression(pathsProperty.initializer)) return;\n for (const e of pathsProperty.initializer.elements) {\n tryUpdateString(e);\n }\n });\n }\n });\n return;\n }\n });\n function updatePaths(property) {\n const elements = isArrayLiteralExpression(property.initializer) ? property.initializer.elements : [property.initializer];\n let foundExactMatch = false;\n for (const element of elements) {\n foundExactMatch = tryUpdateString(element) || foundExactMatch;\n }\n return foundExactMatch;\n }\n function tryUpdateString(element) {\n if (!isStringLiteral(element)) return false;\n const elementFileName = combinePathsSafe(configDir, element.text);\n const updated = oldToNew(elementFileName);\n if (updated !== void 0) {\n changeTracker.replaceRangeWithText(configFile, createStringRange(element, configFile), relativePath(updated));\n return true;\n }\n return false;\n }\n function relativePath(path) {\n return getRelativePathFromDirectory(\n configDir,\n path,\n /*ignoreCase*/\n !useCaseSensitiveFileNames2\n );\n }\n}\nfunction updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName) {\n const allFiles = program.getSourceFiles();\n for (const sourceFile of allFiles) {\n const newFromOld = oldToNew(sourceFile.fileName);\n const newImportFromPath = newFromOld ?? sourceFile.fileName;\n const newImportFromDirectory = getDirectoryPath(newImportFromPath);\n const oldFromNew = newToOld(sourceFile.fileName);\n const oldImportFromPath = oldFromNew || sourceFile.fileName;\n const oldImportFromDirectory = getDirectoryPath(oldImportFromPath);\n const importingSourceFileMoved = newFromOld !== void 0 || oldFromNew !== void 0;\n updateImportsWorker(sourceFile, changeTracker, (referenceText) => {\n if (!pathIsRelative(referenceText)) return void 0;\n const oldAbsolute = combinePathsSafe(oldImportFromDirectory, referenceText);\n const newAbsolute = oldToNew(oldAbsolute);\n return newAbsolute === void 0 ? void 0 : ensurePathIsNonModuleName(getRelativePathFromDirectory(newImportFromDirectory, newAbsolute, getCanonicalFileName));\n }, (importLiteral) => {\n const importedModuleSymbol = program.getTypeChecker().getSymbolAtLocation(importLiteral);\n if ((importedModuleSymbol == null ? void 0 : importedModuleSymbol.declarations) && importedModuleSymbol.declarations.some((d) => isAmbientModule(d))) return void 0;\n const toImport = oldFromNew !== void 0 ? getSourceFileToImportFromResolved(importLiteral, resolveModuleName(importLiteral.text, oldImportFromPath, program.getCompilerOptions(), host), oldToNew, allFiles) : getSourceFileToImport(importedModuleSymbol, importLiteral, sourceFile, program, host, oldToNew);\n return toImport !== void 0 && (toImport.updated || importingSourceFileMoved && pathIsRelative(importLiteral.text)) ? ts_moduleSpecifiers_exports.updateModuleSpecifier(program.getCompilerOptions(), sourceFile, newImportFromPath, toImport.newFileName, createModuleSpecifierResolutionHost(program, host), importLiteral.text) : void 0;\n });\n }\n}\nfunction combineNormal(pathA, pathB) {\n return normalizePath(combinePaths(pathA, pathB));\n}\nfunction combinePathsSafe(pathA, pathB) {\n return ensurePathIsNonModuleName(combineNormal(pathA, pathB));\n}\nfunction getSourceFileToImport(importedModuleSymbol, importLiteral, importingSourceFile, program, host, oldToNew) {\n if (importedModuleSymbol) {\n const oldFileName = find(importedModuleSymbol.declarations, isSourceFile).fileName;\n const newFileName = oldToNew(oldFileName);\n return newFileName === void 0 ? { newFileName: oldFileName, updated: false } : { newFileName, updated: true };\n } else {\n const mode = program.getModeForUsageLocation(importingSourceFile, importLiteral);\n const resolved = host.resolveModuleNameLiterals || !host.resolveModuleNames ? program.getResolvedModuleFromModuleSpecifier(importLiteral, importingSourceFile) : host.getResolvedModuleWithFailedLookupLocationsFromCache && host.getResolvedModuleWithFailedLookupLocationsFromCache(importLiteral.text, importingSourceFile.fileName, mode);\n return getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, program.getSourceFiles());\n }\n}\nfunction getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, sourceFiles) {\n if (!resolved) return void 0;\n if (resolved.resolvedModule) {\n const result2 = tryChange(resolved.resolvedModule.resolvedFileName);\n if (result2) return result2;\n }\n const result = forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJsonExisting) || pathIsRelative(importLiteral.text) && forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJson);\n if (result) return result;\n return resolved.resolvedModule && { newFileName: resolved.resolvedModule.resolvedFileName, updated: false };\n function tryChangeWithIgnoringPackageJsonExisting(oldFileName) {\n const newFileName = oldToNew(oldFileName);\n return newFileName && find(sourceFiles, (src) => src.fileName === newFileName) ? tryChangeWithIgnoringPackageJson(oldFileName) : void 0;\n }\n function tryChangeWithIgnoringPackageJson(oldFileName) {\n return !endsWith(oldFileName, \"/package.json\") ? tryChange(oldFileName) : void 0;\n }\n function tryChange(oldFileName) {\n const newFileName = oldToNew(oldFileName);\n return newFileName && { newFileName, updated: true };\n }\n}\nfunction updateImportsWorker(sourceFile, changeTracker, updateRef, updateImport) {\n for (const ref of sourceFile.referencedFiles || emptyArray) {\n const updated = updateRef(ref.fileName);\n if (updated !== void 0 && updated !== sourceFile.text.slice(ref.pos, ref.end)) changeTracker.replaceRangeWithText(sourceFile, ref, updated);\n }\n for (const importStringLiteral of sourceFile.imports) {\n const updated = updateImport(importStringLiteral);\n if (updated !== void 0 && updated !== importStringLiteral.text) changeTracker.replaceRangeWithText(sourceFile, createStringRange(importStringLiteral, sourceFile), updated);\n }\n}\nfunction createStringRange(node, sourceFile) {\n return createRange(node.getStart(sourceFile) + 1, node.end - 1);\n}\nfunction forEachProperty(objectLiteral, cb) {\n if (!isObjectLiteralExpression(objectLiteral)) return;\n for (const property of objectLiteral.properties) {\n if (isPropertyAssignment(property) && isStringLiteral(property.name)) {\n cb(property, property.name.text);\n }\n }\n}\n\n// src/services/patternMatcher.ts\nvar PatternMatchKind = /* @__PURE__ */ ((PatternMatchKind2) => {\n PatternMatchKind2[PatternMatchKind2[\"exact\"] = 0] = \"exact\";\n PatternMatchKind2[PatternMatchKind2[\"prefix\"] = 1] = \"prefix\";\n PatternMatchKind2[PatternMatchKind2[\"substring\"] = 2] = \"substring\";\n PatternMatchKind2[PatternMatchKind2[\"camelCase\"] = 3] = \"camelCase\";\n return PatternMatchKind2;\n})(PatternMatchKind || {});\nfunction createPatternMatch(kind, isCaseSensitive) {\n return {\n kind,\n isCaseSensitive\n };\n}\nfunction createPatternMatcher(pattern) {\n const stringToWordSpans = /* @__PURE__ */ new Map();\n const dotSeparatedSegments = pattern.trim().split(\".\").map((p) => createSegment(p.trim()));\n if (dotSeparatedSegments.length === 1 && dotSeparatedSegments[0].totalTextChunk.text === \"\") {\n return {\n getMatchForLastSegmentOfPattern: () => createPatternMatch(\n 2 /* substring */,\n /*isCaseSensitive*/\n true\n ),\n getFullMatch: () => createPatternMatch(\n 2 /* substring */,\n /*isCaseSensitive*/\n true\n ),\n patternContainsDots: false\n };\n }\n if (dotSeparatedSegments.some((segment) => !segment.subWordTextChunks.length)) return void 0;\n return {\n getFullMatch: (containers, candidate) => getFullMatch(containers, candidate, dotSeparatedSegments, stringToWordSpans),\n getMatchForLastSegmentOfPattern: (candidate) => matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans),\n patternContainsDots: dotSeparatedSegments.length > 1\n };\n}\nfunction getFullMatch(candidateContainers, candidate, dotSeparatedSegments, stringToWordSpans) {\n const candidateMatch = matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans);\n if (!candidateMatch) {\n return void 0;\n }\n if (dotSeparatedSegments.length - 1 > candidateContainers.length) {\n return void 0;\n }\n let bestMatch;\n for (let i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i -= 1, j -= 1) {\n bestMatch = betterMatch(bestMatch, matchSegment(candidateContainers[j], dotSeparatedSegments[i], stringToWordSpans));\n }\n return bestMatch;\n}\nfunction getWordSpans(word, stringToWordSpans) {\n let spans = stringToWordSpans.get(word);\n if (!spans) {\n stringToWordSpans.set(word, spans = breakIntoWordSpans(word));\n }\n return spans;\n}\nfunction matchTextChunk(candidate, chunk, stringToWordSpans) {\n const index = indexOfIgnoringCase(candidate, chunk.textLowerCase);\n if (index === 0) {\n return createPatternMatch(\n chunk.text.length === candidate.length ? 0 /* exact */ : 1 /* prefix */,\n /*isCaseSensitive:*/\n startsWith(candidate, chunk.text)\n );\n }\n if (chunk.isLowerCase) {\n if (index === -1) return void 0;\n const wordSpans = getWordSpans(candidate, stringToWordSpans);\n for (const span of wordSpans) {\n if (partStartsWith(\n candidate,\n span,\n chunk.text,\n /*ignoreCase*/\n true\n )) {\n return createPatternMatch(\n 2 /* substring */,\n /*isCaseSensitive:*/\n partStartsWith(\n candidate,\n span,\n chunk.text,\n /*ignoreCase*/\n false\n )\n );\n }\n }\n if (chunk.text.length < candidate.length && isUpperCaseLetter(candidate.charCodeAt(index))) {\n return createPatternMatch(\n 2 /* substring */,\n /*isCaseSensitive*/\n false\n );\n }\n } else {\n if (candidate.indexOf(chunk.text) > 0) {\n return createPatternMatch(\n 2 /* substring */,\n /*isCaseSensitive*/\n true\n );\n }\n if (chunk.characterSpans.length > 0) {\n const candidateParts = getWordSpans(candidate, stringToWordSpans);\n const isCaseSensitive = tryCamelCaseMatch(\n candidate,\n candidateParts,\n chunk,\n /*ignoreCase*/\n false\n ) ? true : tryCamelCaseMatch(\n candidate,\n candidateParts,\n chunk,\n /*ignoreCase*/\n true\n ) ? false : void 0;\n if (isCaseSensitive !== void 0) {\n return createPatternMatch(3 /* camelCase */, isCaseSensitive);\n }\n }\n }\n}\nfunction matchSegment(candidate, segment, stringToWordSpans) {\n if (every2(segment.totalTextChunk.text, (ch) => ch !== 32 /* space */ && ch !== 42 /* asterisk */)) {\n const match = matchTextChunk(candidate, segment.totalTextChunk, stringToWordSpans);\n if (match) return match;\n }\n const subWordTextChunks = segment.subWordTextChunks;\n let bestMatch;\n for (const subWordTextChunk of subWordTextChunks) {\n bestMatch = betterMatch(bestMatch, matchTextChunk(candidate, subWordTextChunk, stringToWordSpans));\n }\n return bestMatch;\n}\nfunction betterMatch(a, b) {\n return min([a, b], compareMatches);\n}\nfunction compareMatches(a, b) {\n return a === void 0 ? 1 /* GreaterThan */ : b === void 0 ? -1 /* LessThan */ : compareValues(a.kind, b.kind) || compareBooleans(!a.isCaseSensitive, !b.isCaseSensitive);\n}\nfunction partStartsWith(candidate, candidateSpan, pattern, ignoreCase, patternSpan = { start: 0, length: pattern.length }) {\n return patternSpan.length <= candidateSpan.length && everyInRange(0, patternSpan.length, (i) => equalChars(pattern.charCodeAt(patternSpan.start + i), candidate.charCodeAt(candidateSpan.start + i), ignoreCase));\n}\nfunction equalChars(ch1, ch2, ignoreCase) {\n return ignoreCase ? toLowerCase2(ch1) === toLowerCase2(ch2) : ch1 === ch2;\n}\nfunction tryCamelCaseMatch(candidate, candidateParts, chunk, ignoreCase) {\n const chunkCharacterSpans = chunk.characterSpans;\n let currentCandidate = 0;\n let currentChunkSpan = 0;\n let firstMatch;\n let contiguous;\n while (true) {\n if (currentChunkSpan === chunkCharacterSpans.length) {\n return true;\n } else if (currentCandidate === candidateParts.length) {\n return false;\n }\n let candidatePart = candidateParts[currentCandidate];\n let gotOneMatchThisCandidate = false;\n for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) {\n const chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan];\n if (gotOneMatchThisCandidate) {\n if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) {\n break;\n }\n }\n if (!partStartsWith(candidate, candidatePart, chunk.text, ignoreCase, chunkCharacterSpan)) {\n break;\n }\n gotOneMatchThisCandidate = true;\n firstMatch = firstMatch === void 0 ? currentCandidate : firstMatch;\n contiguous = contiguous === void 0 ? true : contiguous;\n candidatePart = createTextSpan(candidatePart.start + chunkCharacterSpan.length, candidatePart.length - chunkCharacterSpan.length);\n }\n if (!gotOneMatchThisCandidate && contiguous !== void 0) {\n contiguous = false;\n }\n currentCandidate++;\n }\n}\nfunction createSegment(text) {\n return {\n totalTextChunk: createTextChunk(text),\n subWordTextChunks: breakPatternIntoTextChunks(text)\n };\n}\nfunction isUpperCaseLetter(ch) {\n if (ch >= 65 /* A */ && ch <= 90 /* Z */) {\n return true;\n }\n if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) {\n return false;\n }\n const str = String.fromCharCode(ch);\n return str === str.toUpperCase();\n}\nfunction isLowerCaseLetter(ch) {\n if (ch >= 97 /* a */ && ch <= 122 /* z */) {\n return true;\n }\n if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) {\n return false;\n }\n const str = String.fromCharCode(ch);\n return str === str.toLowerCase();\n}\nfunction indexOfIgnoringCase(str, value) {\n const n = str.length - value.length;\n for (let start = 0; start <= n; start++) {\n if (every2(value, (valueChar, i) => toLowerCase2(str.charCodeAt(i + start)) === valueChar)) {\n return start;\n }\n }\n return -1;\n}\nfunction toLowerCase2(ch) {\n if (ch >= 65 /* A */ && ch <= 90 /* Z */) {\n return 97 /* a */ + (ch - 65 /* A */);\n }\n if (ch < 127 /* maxAsciiCharacter */) {\n return ch;\n }\n return String.fromCharCode(ch).toLowerCase().charCodeAt(0);\n}\nfunction isDigit2(ch) {\n return ch >= 48 /* _0 */ && ch <= 57 /* _9 */;\n}\nfunction isWordChar(ch) {\n return isUpperCaseLetter(ch) || isLowerCaseLetter(ch) || isDigit2(ch) || ch === 95 /* _ */ || ch === 36 /* $ */;\n}\nfunction breakPatternIntoTextChunks(pattern) {\n const result = [];\n let wordStart = 0;\n let wordLength = 0;\n for (let i = 0; i < pattern.length; i++) {\n const ch = pattern.charCodeAt(i);\n if (isWordChar(ch)) {\n if (wordLength === 0) {\n wordStart = i;\n }\n wordLength++;\n } else {\n if (wordLength > 0) {\n result.push(createTextChunk(pattern.substr(wordStart, wordLength)));\n wordLength = 0;\n }\n }\n }\n if (wordLength > 0) {\n result.push(createTextChunk(pattern.substr(wordStart, wordLength)));\n }\n return result;\n}\nfunction createTextChunk(text) {\n const textLowerCase = text.toLowerCase();\n return {\n text,\n textLowerCase,\n isLowerCase: text === textLowerCase,\n characterSpans: breakIntoCharacterSpans(text)\n };\n}\nfunction breakIntoCharacterSpans(identifier) {\n return breakIntoSpans(\n identifier,\n /*word*/\n false\n );\n}\nfunction breakIntoWordSpans(identifier) {\n return breakIntoSpans(\n identifier,\n /*word*/\n true\n );\n}\nfunction breakIntoSpans(identifier, word) {\n const result = [];\n let wordStart = 0;\n for (let i = 1; i < identifier.length; i++) {\n const lastIsDigit = isDigit2(identifier.charCodeAt(i - 1));\n const currentIsDigit = isDigit2(identifier.charCodeAt(i));\n const hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i);\n const hasTransitionFromUpperToLower = word && transitionFromUpperToLower(identifier, i, wordStart);\n if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit !== currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) {\n if (!isAllPunctuation(identifier, wordStart, i)) {\n result.push(createTextSpan(wordStart, i - wordStart));\n }\n wordStart = i;\n }\n }\n if (!isAllPunctuation(identifier, wordStart, identifier.length)) {\n result.push(createTextSpan(wordStart, identifier.length - wordStart));\n }\n return result;\n}\nfunction charIsPunctuation(ch) {\n switch (ch) {\n case 33 /* exclamation */:\n case 34 /* doubleQuote */:\n case 35 /* hash */:\n case 37 /* percent */:\n case 38 /* ampersand */:\n case 39 /* singleQuote */:\n case 40 /* openParen */:\n case 41 /* closeParen */:\n case 42 /* asterisk */:\n case 44 /* comma */:\n case 45 /* minus */:\n case 46 /* dot */:\n case 47 /* slash */:\n case 58 /* colon */:\n case 59 /* semicolon */:\n case 63 /* question */:\n case 64 /* at */:\n case 91 /* openBracket */:\n case 92 /* backslash */:\n case 93 /* closeBracket */:\n case 95 /* _ */:\n case 123 /* openBrace */:\n case 125 /* closeBrace */:\n return true;\n }\n return false;\n}\nfunction isAllPunctuation(identifier, start, end) {\n return every2(identifier, (ch) => charIsPunctuation(ch) && ch !== 95 /* _ */, start, end);\n}\nfunction transitionFromUpperToLower(identifier, index, wordStart) {\n return index !== wordStart && index + 1 < identifier.length && isUpperCaseLetter(identifier.charCodeAt(index)) && isLowerCaseLetter(identifier.charCodeAt(index + 1)) && every2(identifier, isUpperCaseLetter, wordStart, index);\n}\nfunction transitionFromLowerToUpper(identifier, word, index) {\n const lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1));\n const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));\n return currentIsUpper && (!word || !lastIsUpper);\n}\nfunction everyInRange(start, end, pred) {\n for (let i = start; i < end; i++) {\n if (!pred(i)) {\n return false;\n }\n }\n return true;\n}\nfunction every2(s, pred, start = 0, end = s.length) {\n return everyInRange(start, end, (i) => pred(s.charCodeAt(i), i));\n}\n\n// src/services/preProcess.ts\nfunction preProcessFile(sourceText, readImportFiles = true, detectJavaScriptImports = false) {\n const pragmaContext = {\n languageVersion: 1 /* ES5 */,\n // controls whether the token scanner considers unicode identifiers or not - shouldn't matter, since we're only using it for trivia\n pragmas: void 0,\n checkJsDirective: void 0,\n referencedFiles: [],\n typeReferenceDirectives: [],\n libReferenceDirectives: [],\n amdDependencies: [],\n hasNoDefaultLib: void 0,\n moduleName: void 0\n };\n const importedFiles = [];\n let ambientExternalModules;\n let lastToken;\n let currentToken;\n let braceNesting = 0;\n let externalModule = false;\n function nextToken() {\n lastToken = currentToken;\n currentToken = scanner.scan();\n if (currentToken === 19 /* OpenBraceToken */) {\n braceNesting++;\n } else if (currentToken === 20 /* CloseBraceToken */) {\n braceNesting--;\n }\n return currentToken;\n }\n function getFileReference() {\n const fileName = scanner.getTokenValue();\n const pos = scanner.getTokenStart();\n return { fileName, pos, end: pos + fileName.length };\n }\n function recordAmbientExternalModule() {\n if (!ambientExternalModules) {\n ambientExternalModules = [];\n }\n ambientExternalModules.push({ ref: getFileReference(), depth: braceNesting });\n }\n function recordModuleName() {\n importedFiles.push(getFileReference());\n markAsExternalModuleIfTopLevel();\n }\n function markAsExternalModuleIfTopLevel() {\n if (braceNesting === 0) {\n externalModule = true;\n }\n }\n function tryConsumeDeclare() {\n let token = scanner.getToken();\n if (token === 138 /* DeclareKeyword */) {\n token = nextToken();\n if (token === 144 /* ModuleKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordAmbientExternalModule();\n }\n }\n return true;\n }\n return false;\n }\n function tryConsumeImport() {\n if (lastToken === 25 /* DotToken */) {\n return false;\n }\n let token = scanner.getToken();\n if (token === 102 /* ImportKeyword */) {\n token = nextToken();\n if (token === 21 /* OpenParenToken */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n recordModuleName();\n return true;\n }\n } else if (token === 11 /* StringLiteral */) {\n recordModuleName();\n return true;\n } else {\n if (token === 156 /* TypeKeyword */) {\n const skipTypeKeyword = scanner.lookAhead(() => {\n const token2 = scanner.scan();\n return token2 !== 161 /* FromKeyword */ && (token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */ || token2 === 80 /* Identifier */ || isKeyword(token2));\n });\n if (skipTypeKeyword) {\n token = nextToken();\n }\n }\n if (token === 80 /* Identifier */ || isKeyword(token)) {\n token = nextToken();\n if (token === 161 /* FromKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordModuleName();\n return true;\n }\n } else if (token === 64 /* EqualsToken */) {\n if (tryConsumeRequireCall(\n /*skipCurrentToken*/\n true\n )) {\n return true;\n }\n } else if (token === 28 /* CommaToken */) {\n token = nextToken();\n } else {\n return true;\n }\n }\n if (token === 19 /* OpenBraceToken */) {\n token = nextToken();\n while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) {\n token = nextToken();\n }\n if (token === 20 /* CloseBraceToken */) {\n token = nextToken();\n if (token === 161 /* FromKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordModuleName();\n }\n }\n }\n } else if (token === 42 /* AsteriskToken */) {\n token = nextToken();\n if (token === 130 /* AsKeyword */) {\n token = nextToken();\n if (token === 80 /* Identifier */ || isKeyword(token)) {\n token = nextToken();\n if (token === 161 /* FromKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordModuleName();\n }\n }\n }\n }\n }\n }\n return true;\n }\n return false;\n }\n function tryConsumeExport() {\n let token = scanner.getToken();\n if (token === 95 /* ExportKeyword */) {\n markAsExternalModuleIfTopLevel();\n token = nextToken();\n if (token === 156 /* TypeKeyword */) {\n const skipTypeKeyword = scanner.lookAhead(() => {\n const token2 = scanner.scan();\n return token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */;\n });\n if (skipTypeKeyword) {\n token = nextToken();\n }\n }\n if (token === 19 /* OpenBraceToken */) {\n token = nextToken();\n while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) {\n token = nextToken();\n }\n if (token === 20 /* CloseBraceToken */) {\n token = nextToken();\n if (token === 161 /* FromKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordModuleName();\n }\n }\n }\n } else if (token === 42 /* AsteriskToken */) {\n token = nextToken();\n if (token === 161 /* FromKeyword */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */) {\n recordModuleName();\n }\n }\n } else if (token === 102 /* ImportKeyword */) {\n token = nextToken();\n if (token === 156 /* TypeKeyword */) {\n const skipTypeKeyword = scanner.lookAhead(() => {\n const token2 = scanner.scan();\n return token2 === 80 /* Identifier */ || isKeyword(token2);\n });\n if (skipTypeKeyword) {\n token = nextToken();\n }\n }\n if (token === 80 /* Identifier */ || isKeyword(token)) {\n token = nextToken();\n if (token === 64 /* EqualsToken */) {\n if (tryConsumeRequireCall(\n /*skipCurrentToken*/\n true\n )) {\n return true;\n }\n }\n }\n }\n return true;\n }\n return false;\n }\n function tryConsumeRequireCall(skipCurrentToken, allowTemplateLiterals = false) {\n let token = skipCurrentToken ? nextToken() : scanner.getToken();\n if (token === 149 /* RequireKeyword */) {\n token = nextToken();\n if (token === 21 /* OpenParenToken */) {\n token = nextToken();\n if (token === 11 /* StringLiteral */ || allowTemplateLiterals && token === 15 /* NoSubstitutionTemplateLiteral */) {\n recordModuleName();\n }\n }\n return true;\n }\n return false;\n }\n function tryConsumeDefine() {\n let token = scanner.getToken();\n if (token === 80 /* Identifier */ && scanner.getTokenValue() === \"define\") {\n token = nextToken();\n if (token !== 21 /* OpenParenToken */) {\n return true;\n }\n token = nextToken();\n if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n token = nextToken();\n if (token === 28 /* CommaToken */) {\n token = nextToken();\n } else {\n return true;\n }\n }\n if (token !== 23 /* OpenBracketToken */) {\n return true;\n }\n token = nextToken();\n while (token !== 24 /* CloseBracketToken */ && token !== 1 /* EndOfFileToken */) {\n if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n recordModuleName();\n }\n token = nextToken();\n }\n return true;\n }\n return false;\n }\n function processImports() {\n scanner.setText(sourceText);\n nextToken();\n while (true) {\n if (scanner.getToken() === 1 /* EndOfFileToken */) {\n break;\n }\n if (scanner.getToken() === 16 /* TemplateHead */) {\n const stack = [scanner.getToken()];\n loop:\n while (length(stack)) {\n const token = scanner.scan();\n switch (token) {\n case 1 /* EndOfFileToken */:\n break loop;\n case 102 /* ImportKeyword */:\n tryConsumeImport();\n break;\n case 16 /* TemplateHead */:\n stack.push(token);\n break;\n case 19 /* OpenBraceToken */:\n if (length(stack)) {\n stack.push(token);\n }\n break;\n case 20 /* CloseBraceToken */:\n if (length(stack)) {\n if (lastOrUndefined(stack) === 16 /* TemplateHead */) {\n if (scanner.reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n ) === 18 /* TemplateTail */) {\n stack.pop();\n }\n } else {\n stack.pop();\n }\n }\n break;\n }\n }\n nextToken();\n }\n if (tryConsumeDeclare() || tryConsumeImport() || tryConsumeExport() || detectJavaScriptImports && (tryConsumeRequireCall(\n /*skipCurrentToken*/\n false,\n /*allowTemplateLiterals*/\n true\n ) || tryConsumeDefine())) {\n continue;\n } else {\n nextToken();\n }\n }\n scanner.setText(void 0);\n }\n if (readImportFiles) {\n processImports();\n }\n processCommentPragmas(pragmaContext, sourceText);\n processPragmasIntoFields(pragmaContext, noop);\n if (externalModule) {\n if (ambientExternalModules) {\n for (const decl of ambientExternalModules) {\n importedFiles.push(decl.ref);\n }\n }\n return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: void 0 };\n } else {\n let ambientModuleNames;\n if (ambientExternalModules) {\n for (const decl of ambientExternalModules) {\n if (decl.depth === 0) {\n if (!ambientModuleNames) {\n ambientModuleNames = [];\n }\n ambientModuleNames.push(decl.ref.fileName);\n } else {\n importedFiles.push(decl.ref);\n }\n }\n }\n return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: ambientModuleNames };\n }\n}\n\n// src/services/sourcemaps.ts\nvar base64UrlRegExp = /^data:(?:application\\/json;charset=[uU][tT][fF]-8;base64,([A-Za-z0-9+/=]+)$)?/;\nfunction getSourceMapper(host) {\n const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n const currentDirectory = host.getCurrentDirectory();\n const sourceFileLike = /* @__PURE__ */ new Map();\n const documentPositionMappers = /* @__PURE__ */ new Map();\n return {\n tryGetSourcePosition,\n tryGetGeneratedPosition,\n toLineColumnOffset,\n clearCache,\n documentPositionMappers\n };\n function toPath3(fileName) {\n return toPath(fileName, currentDirectory, getCanonicalFileName);\n }\n function getDocumentPositionMapper2(generatedFileName, sourceFileName) {\n const path = toPath3(generatedFileName);\n const value = documentPositionMappers.get(path);\n if (value) return value;\n let mapper;\n if (host.getDocumentPositionMapper) {\n mapper = host.getDocumentPositionMapper(generatedFileName, sourceFileName);\n } else if (host.readFile) {\n const file = getSourceFileLike(generatedFileName);\n mapper = file && getDocumentPositionMapper(\n { getSourceFileLike, getCanonicalFileName, log: (s) => host.log(s) },\n generatedFileName,\n getLineInfo(file.text, getLineStarts(file)),\n (f) => !host.fileExists || host.fileExists(f) ? host.readFile(f) : void 0\n );\n }\n documentPositionMappers.set(path, mapper || identitySourceMapConsumer);\n return mapper || identitySourceMapConsumer;\n }\n function tryGetSourcePosition(info) {\n if (!isDeclarationFileName(info.fileName)) return void 0;\n const file = getSourceFile(info.fileName);\n if (!file) return void 0;\n const newLoc = getDocumentPositionMapper2(info.fileName).getSourcePosition(info);\n return !newLoc || newLoc === info ? void 0 : tryGetSourcePosition(newLoc) || newLoc;\n }\n function tryGetGeneratedPosition(info) {\n if (isDeclarationFileName(info.fileName)) return void 0;\n const sourceFile = getSourceFile(info.fileName);\n if (!sourceFile) return void 0;\n const program = host.getProgram();\n if (program.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) {\n return void 0;\n }\n const options = program.getCompilerOptions();\n const outPath = options.outFile;\n const declarationPath = outPath ? removeFileExtension(outPath) + \".d.ts\" /* Dts */ : getDeclarationEmitOutputFilePathWorker(info.fileName, program.getCompilerOptions(), program);\n if (declarationPath === void 0) return void 0;\n const newLoc = getDocumentPositionMapper2(declarationPath, info.fileName).getGeneratedPosition(info);\n return newLoc === info ? void 0 : newLoc;\n }\n function getSourceFile(fileName) {\n const program = host.getProgram();\n if (!program) return void 0;\n const path = toPath3(fileName);\n const file = program.getSourceFileByPath(path);\n return file && file.resolvedPath === path ? file : void 0;\n }\n function getOrCreateSourceFileLike(fileName) {\n const path = toPath3(fileName);\n const fileFromCache = sourceFileLike.get(path);\n if (fileFromCache !== void 0) return fileFromCache ? fileFromCache : void 0;\n if (!host.readFile || host.fileExists && !host.fileExists(fileName)) {\n sourceFileLike.set(path, false);\n return void 0;\n }\n const text = host.readFile(fileName);\n const file = text ? createSourceFileLike(text) : false;\n sourceFileLike.set(path, file);\n return file ? file : void 0;\n }\n function getSourceFileLike(fileName) {\n return !host.getSourceFileLike ? getSourceFile(fileName) || getOrCreateSourceFileLike(fileName) : host.getSourceFileLike(fileName);\n }\n function toLineColumnOffset(fileName, position) {\n const file = getSourceFileLike(fileName);\n return file.getLineAndCharacterOfPosition(position);\n }\n function clearCache() {\n sourceFileLike.clear();\n documentPositionMappers.clear();\n }\n}\nfunction getDocumentPositionMapper(host, generatedFileName, generatedFileLineInfo, readMapFile) {\n let mapFileName = tryGetSourceMappingURL(generatedFileLineInfo);\n if (mapFileName) {\n const match = base64UrlRegExp.exec(mapFileName);\n if (match) {\n if (match[1]) {\n const base64Object = match[1];\n return convertDocumentToSourceMapper(host, base64decode(sys, base64Object), generatedFileName);\n }\n mapFileName = void 0;\n }\n }\n const possibleMapLocations = [];\n if (mapFileName) {\n possibleMapLocations.push(mapFileName);\n }\n possibleMapLocations.push(generatedFileName + \".map\");\n const originalMapFileName = mapFileName && getNormalizedAbsolutePath(mapFileName, getDirectoryPath(generatedFileName));\n for (const location of possibleMapLocations) {\n const mapFileName2 = getNormalizedAbsolutePath(location, getDirectoryPath(generatedFileName));\n const mapFileContents = readMapFile(mapFileName2, originalMapFileName);\n if (isString(mapFileContents)) {\n return convertDocumentToSourceMapper(host, mapFileContents, mapFileName2);\n }\n if (mapFileContents !== void 0) {\n return mapFileContents || void 0;\n }\n }\n return void 0;\n}\nfunction convertDocumentToSourceMapper(host, contents, mapFileName) {\n const map2 = tryParseRawSourceMap(contents);\n if (!map2 || !map2.sources || !map2.file || !map2.mappings) {\n return void 0;\n }\n if (map2.sourcesContent && map2.sourcesContent.some(isString)) return void 0;\n return createDocumentPositionMapper(host, map2, mapFileName);\n}\nfunction createSourceFileLike(text, lineMap) {\n return {\n text,\n lineMap,\n getLineAndCharacterOfPosition(pos) {\n return computeLineAndCharacterOfPosition(getLineStarts(this), pos);\n }\n };\n}\n\n// src/services/suggestionDiagnostics.ts\nvar visitedNestedConvertibleFunctions = /* @__PURE__ */ new Map();\nfunction computeSuggestionDiagnostics(sourceFile, program, cancellationToken) {\n var _a;\n program.getSemanticDiagnostics(sourceFile, cancellationToken);\n const diags = [];\n const checker = program.getTypeChecker();\n const isCommonJSFile = program.getImpliedNodeFormatForEmit(sourceFile) === 1 /* CommonJS */ || fileExtensionIsOneOf(sourceFile.fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */]);\n if (!isCommonJSFile && sourceFile.commonJsModuleIndicator && (programContainsEsModules(program) || compilerOptionsIndicateEsModules(program.getCompilerOptions())) && containsTopLevelCommonjs(sourceFile)) {\n diags.push(createDiagnosticForNode(getErrorNodeFromCommonJsIndicator(sourceFile.commonJsModuleIndicator), Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module));\n }\n const isJsFile = isSourceFileJS(sourceFile);\n visitedNestedConvertibleFunctions.clear();\n check(sourceFile);\n if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {\n for (const moduleSpecifier of sourceFile.imports) {\n const importNode = importFromModuleSpecifier(moduleSpecifier);\n if (isImportEqualsDeclaration(importNode) && hasSyntacticModifier(importNode, 32 /* Export */)) continue;\n const name = importNameForConvertToDefaultImport(importNode);\n if (!name) continue;\n const module2 = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule;\n const resolvedFile = module2 && program.getSourceFile(module2.resolvedFileName);\n if (resolvedFile && resolvedFile.externalModuleIndicator && resolvedFile.externalModuleIndicator !== true && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) {\n diags.push(createDiagnosticForNode(name, Diagnostics.Import_may_be_converted_to_a_default_import));\n }\n }\n }\n addRange(diags, sourceFile.bindSuggestionDiagnostics);\n addRange(diags, program.getSuggestionDiagnostics(sourceFile, cancellationToken));\n diags.sort((d1, d2) => d1.start - d2.start);\n return diags;\n function check(node) {\n if (isJsFile) {\n if (canBeConvertedToClass(node, checker)) {\n diags.push(createDiagnosticForNode(isVariableDeclaration(node.parent) ? node.parent.name : node, Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration));\n }\n } else {\n if (isVariableStatement(node) && node.parent === sourceFile && node.declarationList.flags & 2 /* Const */ && node.declarationList.declarations.length === 1) {\n const init = node.declarationList.declarations[0].initializer;\n if (init && isRequireCall(\n init,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n diags.push(createDiagnosticForNode(init, Diagnostics.require_call_may_be_converted_to_an_import));\n }\n }\n const jsdocTypedefNodes = ts_codefix_exports.getJSDocTypedefNodes(node);\n for (const jsdocTypedefNode of jsdocTypedefNodes) {\n diags.push(createDiagnosticForNode(jsdocTypedefNode, Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type));\n }\n if (ts_codefix_exports.parameterShouldGetTypeFromJSDoc(node)) {\n diags.push(createDiagnosticForNode(node.name || node, Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types));\n }\n }\n if (canBeConvertedToAsync(node)) {\n addConvertToAsyncFunctionDiagnostics(node, checker, diags);\n }\n node.forEachChild(check);\n }\n}\nfunction containsTopLevelCommonjs(sourceFile) {\n return sourceFile.statements.some((statement) => {\n switch (statement.kind) {\n case 244 /* VariableStatement */:\n return statement.declarationList.declarations.some((decl) => !!decl.initializer && isRequireCall(\n propertyAccessLeftHandSide(decl.initializer),\n /*requireStringLiteralLikeArgument*/\n true\n ));\n case 245 /* ExpressionStatement */: {\n const { expression } = statement;\n if (!isBinaryExpression(expression)) return isRequireCall(\n expression,\n /*requireStringLiteralLikeArgument*/\n true\n );\n const kind = getAssignmentDeclarationKind(expression);\n return kind === 1 /* ExportsProperty */ || kind === 2 /* ModuleExports */;\n }\n default:\n return false;\n }\n });\n}\nfunction propertyAccessLeftHandSide(node) {\n return isPropertyAccessExpression(node) ? propertyAccessLeftHandSide(node.expression) : node;\n}\nfunction importNameForConvertToDefaultImport(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n const { importClause, moduleSpecifier } = node;\n return importClause && !importClause.name && importClause.namedBindings && importClause.namedBindings.kind === 275 /* NamespaceImport */ && isStringLiteral(moduleSpecifier) ? importClause.namedBindings.name : void 0;\n case 272 /* ImportEqualsDeclaration */:\n return node.name;\n default:\n return void 0;\n }\n}\nfunction addConvertToAsyncFunctionDiagnostics(node, checker, diags) {\n if (isConvertibleFunction(node, checker) && !visitedNestedConvertibleFunctions.has(getKeyFromNode(node))) {\n diags.push(createDiagnosticForNode(\n !node.name && isVariableDeclaration(node.parent) && isIdentifier(node.parent.name) ? node.parent.name : node,\n Diagnostics.This_may_be_converted_to_an_async_function\n ));\n }\n}\nfunction isConvertibleFunction(node, checker) {\n return !isAsyncFunction(node) && node.body && isBlock(node.body) && hasReturnStatementWithPromiseHandler(node.body, checker) && returnsPromise(node, checker);\n}\nfunction returnsPromise(node, checker) {\n const signature = checker.getSignatureFromDeclaration(node);\n const returnType = signature ? checker.getReturnTypeOfSignature(signature) : void 0;\n return !!returnType && !!checker.getPromisedTypeOfPromise(returnType);\n}\nfunction getErrorNodeFromCommonJsIndicator(commonJsModuleIndicator) {\n return isBinaryExpression(commonJsModuleIndicator) ? commonJsModuleIndicator.left : commonJsModuleIndicator;\n}\nfunction hasReturnStatementWithPromiseHandler(body, checker) {\n return !!forEachReturnStatement(body, (statement) => isReturnStatementWithFixablePromiseHandler(statement, checker));\n}\nfunction isReturnStatementWithFixablePromiseHandler(node, checker) {\n return isReturnStatement(node) && !!node.expression && isFixablePromiseHandler(node.expression, checker);\n}\nfunction isFixablePromiseHandler(node, checker) {\n if (!isPromiseHandler(node) || !hasSupportedNumberOfArguments(node) || !node.arguments.every((arg) => isFixablePromiseArgument(arg, checker))) {\n return false;\n }\n let currentNode = node.expression.expression;\n while (isPromiseHandler(currentNode) || isPropertyAccessExpression(currentNode)) {\n if (isCallExpression(currentNode)) {\n if (!hasSupportedNumberOfArguments(currentNode) || !currentNode.arguments.every((arg) => isFixablePromiseArgument(arg, checker))) {\n return false;\n }\n currentNode = currentNode.expression.expression;\n } else {\n currentNode = currentNode.expression;\n }\n }\n return true;\n}\nfunction isPromiseHandler(node) {\n return isCallExpression(node) && (hasPropertyAccessExpressionWithName(node, \"then\") || hasPropertyAccessExpressionWithName(node, \"catch\") || hasPropertyAccessExpressionWithName(node, \"finally\"));\n}\nfunction hasSupportedNumberOfArguments(node) {\n const name = node.expression.name.text;\n const maxArguments = name === \"then\" ? 2 : name === \"catch\" ? 1 : name === \"finally\" ? 1 : 0;\n if (node.arguments.length > maxArguments) return false;\n if (node.arguments.length < maxArguments) return true;\n return maxArguments === 1 || some(node.arguments, (arg) => {\n return arg.kind === 106 /* NullKeyword */ || isIdentifier(arg) && arg.text === \"undefined\";\n });\n}\nfunction isFixablePromiseArgument(arg, checker) {\n switch (arg.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n const functionFlags = getFunctionFlags(arg);\n if (functionFlags & 1 /* Generator */) {\n return false;\n }\n // falls through\n case 220 /* ArrowFunction */:\n visitedNestedConvertibleFunctions.set(getKeyFromNode(arg), true);\n // falls through\n case 106 /* NullKeyword */:\n return true;\n case 80 /* Identifier */:\n case 212 /* PropertyAccessExpression */: {\n const symbol = checker.getSymbolAtLocation(arg);\n if (!symbol) {\n return false;\n }\n return checker.isUndefinedSymbol(symbol) || some(skipAlias(symbol, checker).declarations, (d) => isFunctionLike(d) || hasInitializer(d) && !!d.initializer && isFunctionLike(d.initializer));\n }\n default:\n return false;\n }\n}\nfunction getKeyFromNode(exp) {\n return `${exp.pos.toString()}:${exp.end.toString()}`;\n}\nfunction canBeConvertedToClass(node, checker) {\n var _a, _b, _c, _d;\n if (isFunctionExpression(node)) {\n if (isVariableDeclaration(node.parent) && ((_a = node.symbol.members) == null ? void 0 : _a.size)) {\n return true;\n }\n const symbol = checker.getSymbolOfExpando(\n node,\n /*allowDeclaration*/\n false\n );\n return !!(symbol && (((_b = symbol.exports) == null ? void 0 : _b.size) || ((_c = symbol.members) == null ? void 0 : _c.size)));\n }\n if (isFunctionDeclaration(node)) {\n return !!((_d = node.symbol.members) == null ? void 0 : _d.size);\n }\n return false;\n}\nfunction canBeConvertedToAsync(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return true;\n default:\n return false;\n }\n}\n\n// src/services/transpile.ts\nvar optionsRedundantWithVerbatimModuleSyntax = /* @__PURE__ */ new Set([\n \"isolatedModules\"\n]);\nfunction transpileModule(input, transpileOptions) {\n return transpileWorker(\n input,\n transpileOptions,\n /*declaration*/\n false\n );\n}\nfunction transpileDeclaration(input, transpileOptions) {\n return transpileWorker(\n input,\n transpileOptions,\n /*declaration*/\n true\n );\n}\nvar barebonesLibContent = `/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number {}\ninterface Object {}\ninterface RegExp {}\ninterface String {}\ninterface Array { length: number; [n: number]: T; }\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}`;\nvar barebonesLibName = \"lib.d.ts\";\nvar barebonesLibSourceFile;\nfunction transpileWorker(input, transpileOptions, declaration) {\n barebonesLibSourceFile ?? (barebonesLibSourceFile = createSourceFile(barebonesLibName, barebonesLibContent, { languageVersion: 99 /* Latest */ }));\n const diagnostics = [];\n const options = transpileOptions.compilerOptions ? fixupCompilerOptions(transpileOptions.compilerOptions, diagnostics) : {};\n const defaultOptions = getDefaultCompilerOptions2();\n for (const key in defaultOptions) {\n if (hasProperty(defaultOptions, key) && options[key] === void 0) {\n options[key] = defaultOptions[key];\n }\n }\n for (const option of transpileOptionValueCompilerOptions) {\n if (options.verbatimModuleSyntax && optionsRedundantWithVerbatimModuleSyntax.has(option.name)) {\n continue;\n }\n options[option.name] = option.transpileOptionValue;\n }\n options.suppressOutputPathCheck = true;\n options.allowNonTsExtensions = true;\n if (declaration) {\n options.declaration = true;\n options.emitDeclarationOnly = true;\n options.isolatedDeclarations = true;\n } else {\n options.declaration = false;\n options.declarationMap = false;\n }\n const newLine = getNewLineCharacter(options);\n const compilerHost = {\n getSourceFile: (fileName) => fileName === normalizePath(inputFileName) ? sourceFile : fileName === normalizePath(barebonesLibName) ? barebonesLibSourceFile : void 0,\n writeFile: (name, text) => {\n if (fileExtensionIs(name, \".map\")) {\n Debug.assertEqual(sourceMapText, void 0, \"Unexpected multiple source map outputs, file:\", name);\n sourceMapText = text;\n } else {\n Debug.assertEqual(outputText, void 0, \"Unexpected multiple outputs, file:\", name);\n outputText = text;\n }\n },\n getDefaultLibFileName: () => barebonesLibName,\n useCaseSensitiveFileNames: () => false,\n getCanonicalFileName: (fileName) => fileName,\n getCurrentDirectory: () => \"\",\n getNewLine: () => newLine,\n fileExists: (fileName) => fileName === inputFileName || !!declaration && fileName === barebonesLibName,\n readFile: () => \"\",\n directoryExists: () => true,\n getDirectories: () => []\n };\n const inputFileName = transpileOptions.fileName || (transpileOptions.compilerOptions && transpileOptions.compilerOptions.jsx ? \"module.tsx\" : \"module.ts\");\n const sourceFile = createSourceFile(\n inputFileName,\n input,\n {\n languageVersion: getEmitScriptTarget(options),\n impliedNodeFormat: getImpliedNodeFormatForFile(\n toPath(inputFileName, \"\", compilerHost.getCanonicalFileName),\n /*packageJsonInfoCache*/\n void 0,\n compilerHost,\n options\n ),\n setExternalModuleIndicator: getSetExternalModuleIndicator(options),\n jsDocParsingMode: transpileOptions.jsDocParsingMode ?? 0 /* ParseAll */\n }\n );\n if (transpileOptions.moduleName) {\n sourceFile.moduleName = transpileOptions.moduleName;\n }\n if (transpileOptions.renamedDependencies) {\n sourceFile.renamedDependencies = new Map(Object.entries(transpileOptions.renamedDependencies));\n }\n let outputText;\n let sourceMapText;\n const inputs = declaration ? [inputFileName, barebonesLibName] : [inputFileName];\n const program = createProgram(inputs, options, compilerHost);\n if (transpileOptions.reportDiagnostics) {\n addRange(\n /*to*/\n diagnostics,\n /*from*/\n program.getSyntacticDiagnostics(sourceFile)\n );\n addRange(\n /*to*/\n diagnostics,\n /*from*/\n program.getOptionsDiagnostics()\n );\n }\n const result = program.emit(\n /*targetSourceFile*/\n void 0,\n /*writeFile*/\n void 0,\n /*cancellationToken*/\n void 0,\n /*emitOnlyDtsFiles*/\n declaration,\n transpileOptions.transformers,\n /*forceDtsEmit*/\n declaration\n );\n addRange(\n /*to*/\n diagnostics,\n /*from*/\n result.diagnostics\n );\n if (outputText === void 0) return Debug.fail(\"Output generation failed\");\n return { outputText, diagnostics, sourceMapText };\n}\nfunction transpile(input, compilerOptions, fileName, diagnostics, moduleName) {\n const output = transpileModule(input, { compilerOptions, fileName, reportDiagnostics: !!diagnostics, moduleName });\n addRange(diagnostics, output.diagnostics);\n return output.outputText;\n}\nvar commandLineOptionsStringToEnum;\nfunction fixupCompilerOptions(options, diagnostics) {\n commandLineOptionsStringToEnum = commandLineOptionsStringToEnum || filter(optionDeclarations, (o) => typeof o.type === \"object\" && !forEachEntry(o.type, (v) => typeof v !== \"number\"));\n options = cloneCompilerOptions(options);\n for (const opt of commandLineOptionsStringToEnum) {\n if (!hasProperty(options, opt.name)) {\n continue;\n }\n const value = options[opt.name];\n if (isString(value)) {\n options[opt.name] = parseCustomTypeOption(opt, value, diagnostics);\n } else {\n if (!forEachEntry(opt.type, (v) => v === value)) {\n diagnostics.push(createCompilerDiagnosticForInvalidCustomType(opt));\n }\n }\n }\n return options;\n}\n\n// src/services/_namespaces/ts.NavigateTo.ts\nvar ts_NavigateTo_exports = {};\n__export(ts_NavigateTo_exports, {\n getNavigateToItems: () => getNavigateToItems\n});\n\n// src/services/navigateTo.ts\nfunction getNavigateToItems(sourceFiles, checker, cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles) {\n const patternMatcher = createPatternMatcher(searchValue);\n if (!patternMatcher) return emptyArray;\n const rawItems = [];\n const singleCurrentFile = sourceFiles.length === 1 ? sourceFiles[0] : void 0;\n for (const sourceFile of sourceFiles) {\n cancellationToken.throwIfCancellationRequested();\n if (excludeDtsFiles && sourceFile.isDeclarationFile) {\n continue;\n }\n if (shouldExcludeFile(sourceFile, !!excludeLibFiles, singleCurrentFile)) {\n continue;\n }\n sourceFile.getNamedDeclarations().forEach((declarations, name) => {\n getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, sourceFile.fileName, !!excludeLibFiles, singleCurrentFile, rawItems);\n });\n }\n rawItems.sort(compareNavigateToItems);\n return (maxResultCount === void 0 ? rawItems : rawItems.slice(0, maxResultCount)).map(createNavigateToItem);\n}\nfunction shouldExcludeFile(file, excludeLibFiles, singleCurrentFile) {\n return file !== singleCurrentFile && excludeLibFiles && (isInsideNodeModules(file.path) || file.hasNoDefaultLib);\n}\nfunction getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, fileName, excludeLibFiles, singleCurrentFile, rawItems) {\n const match = patternMatcher.getMatchForLastSegmentOfPattern(name);\n if (!match) {\n return;\n }\n for (const declaration of declarations) {\n if (!shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile)) continue;\n if (patternMatcher.patternContainsDots) {\n const fullMatch = patternMatcher.getFullMatch(getContainers(declaration), name);\n if (fullMatch) {\n rawItems.push({ name, fileName, matchKind: fullMatch.kind, isCaseSensitive: fullMatch.isCaseSensitive, declaration });\n }\n } else {\n rawItems.push({ name, fileName, matchKind: match.kind, isCaseSensitive: match.isCaseSensitive, declaration });\n }\n }\n}\nfunction shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile) {\n var _a;\n switch (declaration.kind) {\n case 274 /* ImportClause */:\n case 277 /* ImportSpecifier */:\n case 272 /* ImportEqualsDeclaration */:\n const importer = checker.getSymbolAtLocation(declaration.name);\n const imported = checker.getAliasedSymbol(importer);\n return importer.escapedName !== imported.escapedName && !((_a = imported.declarations) == null ? void 0 : _a.every((d) => shouldExcludeFile(d.getSourceFile(), excludeLibFiles, singleCurrentFile)));\n default:\n return true;\n }\n}\nfunction tryAddSingleDeclarationName(declaration, containers) {\n const name = getNameOfDeclaration(declaration);\n return !!name && (pushLiteral(name, containers) || name.kind === 168 /* ComputedPropertyName */ && tryAddComputedPropertyName(name.expression, containers));\n}\nfunction tryAddComputedPropertyName(expression, containers) {\n return pushLiteral(expression, containers) || isPropertyAccessExpression(expression) && (containers.push(expression.name.text), true) && tryAddComputedPropertyName(expression.expression, containers);\n}\nfunction pushLiteral(node, containers) {\n return isPropertyNameLiteral(node) && (containers.push(getTextOfIdentifierOrLiteral(node)), true);\n}\nfunction getContainers(declaration) {\n const containers = [];\n const name = getNameOfDeclaration(declaration);\n if (name && name.kind === 168 /* ComputedPropertyName */ && !tryAddComputedPropertyName(name.expression, containers)) {\n return emptyArray;\n }\n containers.shift();\n let container = getContainerNode(declaration);\n while (container) {\n if (!tryAddSingleDeclarationName(container, containers)) {\n return emptyArray;\n }\n container = getContainerNode(container);\n }\n containers.reverse();\n return containers;\n}\nfunction compareNavigateToItems(i1, i2) {\n return compareValues(i1.matchKind, i2.matchKind) || compareStringsCaseSensitiveUI(i1.name, i2.name);\n}\nfunction createNavigateToItem(rawItem) {\n const declaration = rawItem.declaration;\n const container = getContainerNode(declaration);\n const containerName = container && getNameOfDeclaration(container);\n return {\n name: rawItem.name,\n kind: getNodeKind(declaration),\n kindModifiers: getNodeModifiers(declaration),\n matchKind: PatternMatchKind[rawItem.matchKind],\n isCaseSensitive: rawItem.isCaseSensitive,\n fileName: rawItem.fileName,\n textSpan: createTextSpanFromNode(declaration),\n // TODO(jfreeman): What should be the containerName when the container has a computed name?\n containerName: containerName ? containerName.text : \"\",\n containerKind: containerName ? getNodeKind(container) : \"\" /* unknown */\n };\n}\n\n// src/services/_namespaces/ts.NavigationBar.ts\nvar ts_NavigationBar_exports = {};\n__export(ts_NavigationBar_exports, {\n getNavigationBarItems: () => getNavigationBarItems,\n getNavigationTree: () => getNavigationTree\n});\n\n// src/services/navigationBar.ts\nvar whiteSpaceRegex = /\\s+/g;\nvar maxLength = 150;\nvar curCancellationToken;\nvar curSourceFile;\nvar parentsStack = [];\nvar parent;\nvar trackedEs5ClassesStack = [];\nvar trackedEs5Classes;\nvar emptyChildItemArray = [];\nfunction getNavigationBarItems(sourceFile, cancellationToken) {\n curCancellationToken = cancellationToken;\n curSourceFile = sourceFile;\n try {\n return map(primaryNavBarMenuItems(rootNavigationBarNode(sourceFile)), convertToPrimaryNavBarMenuItem);\n } finally {\n reset();\n }\n}\nfunction getNavigationTree(sourceFile, cancellationToken) {\n curCancellationToken = cancellationToken;\n curSourceFile = sourceFile;\n try {\n return convertToTree(rootNavigationBarNode(sourceFile));\n } finally {\n reset();\n }\n}\nfunction reset() {\n curSourceFile = void 0;\n curCancellationToken = void 0;\n parentsStack = [];\n parent = void 0;\n emptyChildItemArray = [];\n}\nfunction nodeText(node) {\n return cleanText(node.getText(curSourceFile));\n}\nfunction navigationBarNodeKind(n) {\n return n.node.kind;\n}\nfunction pushChild(parent2, child) {\n if (parent2.children) {\n parent2.children.push(child);\n } else {\n parent2.children = [child];\n }\n}\nfunction rootNavigationBarNode(sourceFile) {\n Debug.assert(!parentsStack.length);\n const root = { node: sourceFile, name: void 0, additionalNodes: void 0, parent: void 0, children: void 0, indent: 0 };\n parent = root;\n for (const statement of sourceFile.statements) {\n addChildrenRecursively(statement);\n }\n endNode();\n Debug.assert(!parent && !parentsStack.length);\n return root;\n}\nfunction addLeafNode(node, name) {\n pushChild(parent, emptyNavigationBarNode(node, name));\n}\nfunction emptyNavigationBarNode(node, name) {\n return {\n node,\n name: name || (isDeclaration(node) || isExpression(node) ? getNameOfDeclaration(node) : void 0),\n additionalNodes: void 0,\n parent,\n children: void 0,\n indent: parent.indent + 1\n };\n}\nfunction addTrackedEs5Class(name) {\n if (!trackedEs5Classes) {\n trackedEs5Classes = /* @__PURE__ */ new Map();\n }\n trackedEs5Classes.set(name, true);\n}\nfunction endNestedNodes(depth) {\n for (let i = 0; i < depth; i++) endNode();\n}\nfunction startNestedNodes(targetNode, entityName) {\n const names = [];\n while (!isPropertyNameLiteral(entityName)) {\n const name = getNameOrArgument(entityName);\n const nameText = getElementOrPropertyAccessName(entityName);\n entityName = entityName.expression;\n if (nameText === \"prototype\" || isPrivateIdentifier(name)) continue;\n names.push(name);\n }\n names.push(entityName);\n for (let i = names.length - 1; i > 0; i--) {\n const name = names[i];\n startNode(targetNode, name);\n }\n return [names.length - 1, names[0]];\n}\nfunction startNode(node, name) {\n const navNode = emptyNavigationBarNode(node, name);\n pushChild(parent, navNode);\n parentsStack.push(parent);\n trackedEs5ClassesStack.push(trackedEs5Classes);\n trackedEs5Classes = void 0;\n parent = navNode;\n}\nfunction endNode() {\n if (parent.children) {\n mergeChildren(parent.children, parent);\n sortChildren(parent.children);\n }\n parent = parentsStack.pop();\n trackedEs5Classes = trackedEs5ClassesStack.pop();\n}\nfunction addNodeWithRecursiveChild(node, child, name) {\n startNode(node, name);\n addChildrenRecursively(child);\n endNode();\n}\nfunction addNodeWithRecursiveInitializer(node) {\n if (node.initializer && isFunctionOrClassExpression(node.initializer)) {\n startNode(node);\n forEachChild(node.initializer, addChildrenRecursively);\n endNode();\n } else {\n addNodeWithRecursiveChild(node, node.initializer);\n }\n}\nfunction hasNavigationBarName(node) {\n const name = getNameOfDeclaration(node);\n if (name === void 0) return false;\n if (isComputedPropertyName(name)) {\n const expression = name.expression;\n return isEntityNameExpression(expression) || isNumericLiteral(expression) || isStringOrNumericLiteralLike(expression);\n }\n return !!name;\n}\nfunction addChildrenRecursively(node) {\n curCancellationToken.throwIfCancellationRequested();\n if (!node || isToken(node)) {\n return;\n }\n switch (node.kind) {\n case 177 /* Constructor */:\n const ctr = node;\n addNodeWithRecursiveChild(ctr, ctr.body);\n for (const param of ctr.parameters) {\n if (isParameterPropertyDeclaration(param, ctr)) {\n addLeafNode(param);\n }\n }\n break;\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 174 /* MethodSignature */:\n if (hasNavigationBarName(node)) {\n addNodeWithRecursiveChild(node, node.body);\n }\n break;\n case 173 /* PropertyDeclaration */:\n if (hasNavigationBarName(node)) {\n addNodeWithRecursiveInitializer(node);\n }\n break;\n case 172 /* PropertySignature */:\n if (hasNavigationBarName(node)) {\n addLeafNode(node);\n }\n break;\n case 274 /* ImportClause */:\n const importClause = node;\n if (importClause.name) {\n addLeafNode(importClause.name);\n }\n const { namedBindings } = importClause;\n if (namedBindings) {\n if (namedBindings.kind === 275 /* NamespaceImport */) {\n addLeafNode(namedBindings);\n } else {\n for (const element of namedBindings.elements) {\n addLeafNode(element);\n }\n }\n }\n break;\n case 305 /* ShorthandPropertyAssignment */:\n addNodeWithRecursiveChild(node, node.name);\n break;\n case 306 /* SpreadAssignment */:\n const { expression } = node;\n isIdentifier(expression) ? addLeafNode(node, expression) : addLeafNode(node);\n break;\n case 209 /* BindingElement */:\n case 304 /* PropertyAssignment */:\n case 261 /* VariableDeclaration */: {\n const child = node;\n if (isBindingPattern(child.name)) {\n addChildrenRecursively(child.name);\n } else {\n addNodeWithRecursiveInitializer(child);\n }\n break;\n }\n case 263 /* FunctionDeclaration */:\n const nameNode = node.name;\n if (nameNode && isIdentifier(nameNode)) {\n addTrackedEs5Class(nameNode.text);\n }\n addNodeWithRecursiveChild(node, node.body);\n break;\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n addNodeWithRecursiveChild(node, node.body);\n break;\n case 267 /* EnumDeclaration */:\n startNode(node);\n for (const member of node.members) {\n if (!isComputedProperty(member)) {\n addLeafNode(member);\n }\n }\n endNode();\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n startNode(node);\n for (const member of node.members) {\n addChildrenRecursively(member);\n }\n endNode();\n break;\n case 268 /* ModuleDeclaration */:\n addNodeWithRecursiveChild(node, getInteriorModule(node).body);\n break;\n case 278 /* ExportAssignment */: {\n const expression2 = node.expression;\n const child = isObjectLiteralExpression(expression2) || isCallExpression(expression2) ? expression2 : isArrowFunction(expression2) || isFunctionExpression(expression2) ? expression2.body : void 0;\n if (child) {\n startNode(node);\n addChildrenRecursively(child);\n endNode();\n } else {\n addLeafNode(node);\n }\n break;\n }\n case 282 /* ExportSpecifier */:\n case 272 /* ImportEqualsDeclaration */:\n case 182 /* IndexSignature */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 266 /* TypeAliasDeclaration */:\n addLeafNode(node);\n break;\n case 214 /* CallExpression */:\n case 227 /* BinaryExpression */: {\n const special = getAssignmentDeclarationKind(node);\n switch (special) {\n case 1 /* ExportsProperty */:\n case 2 /* ModuleExports */:\n addNodeWithRecursiveChild(node, node.right);\n return;\n case 6 /* Prototype */:\n case 3 /* PrototypeProperty */: {\n const binaryExpression = node;\n const assignmentTarget = binaryExpression.left;\n const prototypeAccess = special === 3 /* PrototypeProperty */ ? assignmentTarget.expression : assignmentTarget;\n let depth = 0;\n let className;\n if (isIdentifier(prototypeAccess.expression)) {\n addTrackedEs5Class(prototypeAccess.expression.text);\n className = prototypeAccess.expression;\n } else {\n [depth, className] = startNestedNodes(binaryExpression, prototypeAccess.expression);\n }\n if (special === 6 /* Prototype */) {\n if (isObjectLiteralExpression(binaryExpression.right)) {\n if (binaryExpression.right.properties.length > 0) {\n startNode(binaryExpression, className);\n forEachChild(binaryExpression.right, addChildrenRecursively);\n endNode();\n }\n }\n } else if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) {\n addNodeWithRecursiveChild(node, binaryExpression.right, className);\n } else {\n startNode(binaryExpression, className);\n addNodeWithRecursiveChild(node, binaryExpression.right, assignmentTarget.name);\n endNode();\n }\n endNestedNodes(depth);\n return;\n }\n case 7 /* ObjectDefinePropertyValue */:\n case 9 /* ObjectDefinePrototypeProperty */: {\n const defineCall = node;\n const className = special === 7 /* ObjectDefinePropertyValue */ ? defineCall.arguments[0] : defineCall.arguments[0].expression;\n const memberName = defineCall.arguments[1];\n const [depth, classNameIdentifier] = startNestedNodes(node, className);\n startNode(node, classNameIdentifier);\n startNode(node, setTextRange(factory.createIdentifier(memberName.text), memberName));\n addChildrenRecursively(node.arguments[2]);\n endNode();\n endNode();\n endNestedNodes(depth);\n return;\n }\n case 5 /* Property */: {\n const binaryExpression = node;\n const assignmentTarget = binaryExpression.left;\n const targetFunction = assignmentTarget.expression;\n if (isIdentifier(targetFunction) && getElementOrPropertyAccessName(assignmentTarget) !== \"prototype\" && trackedEs5Classes && trackedEs5Classes.has(targetFunction.text)) {\n if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) {\n addNodeWithRecursiveChild(node, binaryExpression.right, targetFunction);\n } else if (isBindableStaticAccessExpression(assignmentTarget)) {\n startNode(binaryExpression, targetFunction);\n addNodeWithRecursiveChild(binaryExpression.left, binaryExpression.right, getNameOrArgument(assignmentTarget));\n endNode();\n }\n return;\n }\n break;\n }\n case 4 /* ThisProperty */:\n case 0 /* None */:\n case 8 /* ObjectDefinePropertyExports */:\n break;\n default:\n Debug.assertNever(special);\n }\n }\n // falls through\n default:\n if (hasJSDocNodes(node)) {\n forEach(node.jsDoc, (jsDoc) => {\n forEach(jsDoc.tags, (tag) => {\n if (isJSDocTypeAlias(tag)) {\n addLeafNode(tag);\n }\n });\n });\n }\n forEachChild(node, addChildrenRecursively);\n }\n}\nfunction mergeChildren(children, node) {\n const nameToItems = /* @__PURE__ */ new Map();\n filterMutate(children, (child, index) => {\n const declName = child.name || getNameOfDeclaration(child.node);\n const name = declName && nodeText(declName);\n if (!name) {\n return true;\n }\n const itemsWithSameName = nameToItems.get(name);\n if (!itemsWithSameName) {\n nameToItems.set(name, child);\n return true;\n }\n if (itemsWithSameName instanceof Array) {\n for (const itemWithSameName of itemsWithSameName) {\n if (tryMerge(itemWithSameName, child, index, node)) {\n return false;\n }\n }\n itemsWithSameName.push(child);\n return true;\n } else {\n const itemWithSameName = itemsWithSameName;\n if (tryMerge(itemWithSameName, child, index, node)) {\n return false;\n }\n nameToItems.set(name, [itemWithSameName, child]);\n return true;\n }\n });\n}\nvar isEs5ClassMember = {\n [5 /* Property */]: true,\n [3 /* PrototypeProperty */]: true,\n [7 /* ObjectDefinePropertyValue */]: true,\n [9 /* ObjectDefinePrototypeProperty */]: true,\n [0 /* None */]: false,\n [1 /* ExportsProperty */]: false,\n [2 /* ModuleExports */]: false,\n [8 /* ObjectDefinePropertyExports */]: false,\n [6 /* Prototype */]: true,\n [4 /* ThisProperty */]: false\n};\nfunction tryMergeEs5Class(a, b, bIndex, parent2) {\n function isPossibleConstructor(node) {\n return isFunctionExpression(node) || isFunctionDeclaration(node) || isVariableDeclaration(node);\n }\n const bAssignmentDeclarationKind = isBinaryExpression(b.node) || isCallExpression(b.node) ? getAssignmentDeclarationKind(b.node) : 0 /* None */;\n const aAssignmentDeclarationKind = isBinaryExpression(a.node) || isCallExpression(a.node) ? getAssignmentDeclarationKind(a.node) : 0 /* None */;\n if (isEs5ClassMember[bAssignmentDeclarationKind] && isEs5ClassMember[aAssignmentDeclarationKind] || isPossibleConstructor(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isPossibleConstructor(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isClassDeclaration(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isPossibleConstructor(b.node) || isClassDeclaration(b.node) && isPossibleConstructor(a.node) && isSynthesized(a.node)) {\n let lastANode = a.additionalNodes && lastOrUndefined(a.additionalNodes) || a.node;\n if (!isClassDeclaration(a.node) && !isClassDeclaration(b.node) || isPossibleConstructor(a.node) || isPossibleConstructor(b.node)) {\n const ctorFunction = isPossibleConstructor(a.node) ? a.node : isPossibleConstructor(b.node) ? b.node : void 0;\n if (ctorFunction !== void 0) {\n const ctorNode = setTextRange(\n factory.createConstructorDeclaration(\n /*modifiers*/\n void 0,\n [],\n /*body*/\n void 0\n ),\n ctorFunction\n );\n const ctor = emptyNavigationBarNode(ctorNode);\n ctor.indent = a.indent + 1;\n ctor.children = a.node === ctorFunction ? a.children : b.children;\n a.children = a.node === ctorFunction ? concatenate([ctor], b.children || [b]) : concatenate(a.children || [{ ...a }], [ctor]);\n } else {\n if (a.children || b.children) {\n a.children = concatenate(a.children || [{ ...a }], b.children || [b]);\n if (a.children) {\n mergeChildren(a.children, a);\n sortChildren(a.children);\n }\n }\n }\n lastANode = a.node = setTextRange(\n factory.createClassDeclaration(\n /*modifiers*/\n void 0,\n a.name || factory.createIdentifier(\"__class__\"),\n /*typeParameters*/\n void 0,\n /*heritageClauses*/\n void 0,\n []\n ),\n a.node\n );\n } else {\n a.children = concatenate(a.children, b.children);\n if (a.children) {\n mergeChildren(a.children, a);\n }\n }\n const bNode = b.node;\n if (parent2.children[bIndex - 1].node.end === lastANode.end) {\n setTextRange(lastANode, { pos: lastANode.pos, end: bNode.end });\n } else {\n if (!a.additionalNodes) a.additionalNodes = [];\n a.additionalNodes.push(setTextRange(\n factory.createClassDeclaration(\n /*modifiers*/\n void 0,\n a.name || factory.createIdentifier(\"__class__\"),\n /*typeParameters*/\n void 0,\n /*heritageClauses*/\n void 0,\n []\n ),\n b.node\n ));\n }\n return true;\n }\n return bAssignmentDeclarationKind === 0 /* None */ ? false : true;\n}\nfunction tryMerge(a, b, bIndex, parent2) {\n if (tryMergeEs5Class(a, b, bIndex, parent2)) {\n return true;\n }\n if (shouldReallyMerge(a.node, b.node, parent2)) {\n merge(a, b);\n return true;\n }\n return false;\n}\nfunction shouldReallyMerge(a, b, parent2) {\n if (a.kind !== b.kind || a.parent !== b.parent && !(isOwnChild(a, parent2) && isOwnChild(b, parent2))) {\n return false;\n }\n switch (a.kind) {\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return isStatic(a) === isStatic(b);\n case 268 /* ModuleDeclaration */:\n return areSameModule(a, b) && getFullyQualifiedModuleName(a) === getFullyQualifiedModuleName(b);\n default:\n return true;\n }\n}\nfunction isSynthesized(node) {\n return !!(node.flags & 16 /* Synthesized */);\n}\nfunction isOwnChild(n, parent2) {\n if (n.parent === void 0) return false;\n const par = isModuleBlock(n.parent) ? n.parent.parent : n.parent;\n return par === parent2.node || contains(parent2.additionalNodes, par);\n}\nfunction areSameModule(a, b) {\n if (!a.body || !b.body) {\n return a.body === b.body;\n }\n return a.body.kind === b.body.kind && (a.body.kind !== 268 /* ModuleDeclaration */ || areSameModule(a.body, b.body));\n}\nfunction merge(target, source) {\n target.additionalNodes = target.additionalNodes || [];\n target.additionalNodes.push(source.node);\n if (source.additionalNodes) {\n target.additionalNodes.push(...source.additionalNodes);\n }\n target.children = concatenate(target.children, source.children);\n if (target.children) {\n mergeChildren(target.children, target);\n sortChildren(target.children);\n }\n}\nfunction sortChildren(children) {\n children.sort(compareChildren);\n}\nfunction compareChildren(child1, child2) {\n return compareStringsCaseSensitiveUI(tryGetName(child1.node), tryGetName(child2.node)) || compareValues(navigationBarNodeKind(child1), navigationBarNodeKind(child2));\n}\nfunction tryGetName(node) {\n if (node.kind === 268 /* ModuleDeclaration */) {\n return getModuleName(node);\n }\n const declName = getNameOfDeclaration(node);\n if (declName && isPropertyName(declName)) {\n const propertyName = getPropertyNameForPropertyNameNode(declName);\n return propertyName && unescapeLeadingUnderscores(propertyName);\n }\n switch (node.kind) {\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 232 /* ClassExpression */:\n return getFunctionOrClassName(node);\n default:\n return void 0;\n }\n}\nfunction getItemName(node, name) {\n if (node.kind === 268 /* ModuleDeclaration */) {\n return cleanText(getModuleName(node));\n }\n if (name) {\n const text = isIdentifier(name) ? name.text : isElementAccessExpression(name) ? `[${nodeText(name.argumentExpression)}]` : nodeText(name);\n if (text.length > 0) {\n return cleanText(text);\n }\n }\n switch (node.kind) {\n case 308 /* SourceFile */:\n const sourceFile = node;\n return isExternalModule(sourceFile) ? `\"${escapeString(getBaseFileName(removeFileExtension(normalizePath(sourceFile.fileName))))}\"` : \"\";\n case 278 /* ExportAssignment */:\n return isExportAssignment(node) && node.isExportEquals ? \"export=\" /* ExportEquals */ : \"default\" /* Default */;\n case 220 /* ArrowFunction */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n if (getSyntacticModifierFlags(node) & 2048 /* Default */) {\n return \"default\";\n }\n return getFunctionOrClassName(node);\n case 177 /* Constructor */:\n return \"constructor\";\n case 181 /* ConstructSignature */:\n return \"new()\";\n case 180 /* CallSignature */:\n return \"()\";\n case 182 /* IndexSignature */:\n return \"[]\";\n default:\n return \"\";\n }\n}\nfunction primaryNavBarMenuItems(root) {\n const primaryNavBarMenuItems2 = [];\n function recur(item) {\n if (shouldAppearInPrimaryNavBarMenu(item)) {\n primaryNavBarMenuItems2.push(item);\n if (item.children) {\n for (const child of item.children) {\n recur(child);\n }\n }\n }\n }\n recur(root);\n return primaryNavBarMenuItems2;\n function shouldAppearInPrimaryNavBarMenu(item) {\n if (item.children) {\n return true;\n }\n switch (navigationBarNodeKind(item)) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 267 /* EnumDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 308 /* SourceFile */:\n case 266 /* TypeAliasDeclaration */:\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n return true;\n case 220 /* ArrowFunction */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n return isTopLevelFunctionDeclaration(item);\n default:\n return false;\n }\n function isTopLevelFunctionDeclaration(item2) {\n if (!item2.node.body) {\n return false;\n }\n switch (navigationBarNodeKind(item2.parent)) {\n case 269 /* ModuleBlock */:\n case 308 /* SourceFile */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n return true;\n default:\n return false;\n }\n }\n }\n}\nfunction convertToTree(n) {\n return {\n text: getItemName(n.node, n.name),\n kind: getNodeKind(n.node),\n kindModifiers: getModifiers2(n.node),\n spans: getSpans(n),\n nameSpan: n.name && getNodeSpan(n.name),\n childItems: map(n.children, convertToTree)\n };\n}\nfunction convertToPrimaryNavBarMenuItem(n) {\n return {\n text: getItemName(n.node, n.name),\n kind: getNodeKind(n.node),\n kindModifiers: getModifiers2(n.node),\n spans: getSpans(n),\n childItems: map(n.children, convertToSecondaryNavBarMenuItem) || emptyChildItemArray,\n indent: n.indent,\n bolded: false,\n grayed: false\n };\n function convertToSecondaryNavBarMenuItem(n2) {\n return {\n text: getItemName(n2.node, n2.name),\n kind: getNodeKind(n2.node),\n kindModifiers: getNodeModifiers(n2.node),\n spans: getSpans(n2),\n childItems: emptyChildItemArray,\n indent: 0,\n bolded: false,\n grayed: false\n };\n }\n}\nfunction getSpans(n) {\n const spans = [getNodeSpan(n.node)];\n if (n.additionalNodes) {\n for (const node of n.additionalNodes) {\n spans.push(getNodeSpan(node));\n }\n }\n return spans;\n}\nfunction getModuleName(moduleDeclaration) {\n if (isAmbientModule(moduleDeclaration)) {\n return getTextOfNode(moduleDeclaration.name);\n }\n return getFullyQualifiedModuleName(moduleDeclaration);\n}\nfunction getFullyQualifiedModuleName(moduleDeclaration) {\n const result = [getTextOfIdentifierOrLiteral(moduleDeclaration.name)];\n while (moduleDeclaration.body && moduleDeclaration.body.kind === 268 /* ModuleDeclaration */) {\n moduleDeclaration = moduleDeclaration.body;\n result.push(getTextOfIdentifierOrLiteral(moduleDeclaration.name));\n }\n return result.join(\".\");\n}\nfunction getInteriorModule(decl) {\n return decl.body && isModuleDeclaration(decl.body) ? getInteriorModule(decl.body) : decl;\n}\nfunction isComputedProperty(member) {\n return !member.name || member.name.kind === 168 /* ComputedPropertyName */;\n}\nfunction getNodeSpan(node) {\n return node.kind === 308 /* SourceFile */ ? createTextSpanFromRange(node) : createTextSpanFromNode(node, curSourceFile);\n}\nfunction getModifiers2(node) {\n if (node.parent && node.parent.kind === 261 /* VariableDeclaration */) {\n node = node.parent;\n }\n return getNodeModifiers(node);\n}\nfunction getFunctionOrClassName(node) {\n const { parent: parent2 } = node;\n if (node.name && getFullWidth(node.name) > 0) {\n return cleanText(declarationNameToString(node.name));\n } else if (isVariableDeclaration(parent2)) {\n return cleanText(declarationNameToString(parent2.name));\n } else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */) {\n return nodeText(parent2.left).replace(whiteSpaceRegex, \"\");\n } else if (isPropertyAssignment(parent2)) {\n return nodeText(parent2.name);\n } else if (getSyntacticModifierFlags(node) & 2048 /* Default */) {\n return \"default\";\n } else if (isClassLike(node)) {\n return \"\";\n } else if (isCallExpression(parent2)) {\n let name = getCalledExpressionName(parent2.expression);\n if (name !== void 0) {\n name = cleanText(name);\n if (name.length > maxLength) {\n return `${name} callback`;\n }\n const args = cleanText(mapDefined(parent2.arguments, (a) => isStringLiteralLike(a) || isTemplateLiteral(a) ? a.getText(curSourceFile) : void 0).join(\", \"));\n return `${name}(${args}) callback`;\n }\n }\n return \"\";\n}\nfunction getCalledExpressionName(expr) {\n if (isIdentifier(expr)) {\n return expr.text;\n } else if (isPropertyAccessExpression(expr)) {\n const left = getCalledExpressionName(expr.expression);\n const right = expr.name.text;\n return left === void 0 ? right : `${left}.${right}`;\n } else {\n return void 0;\n }\n}\nfunction isFunctionOrClassExpression(node) {\n switch (node.kind) {\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 232 /* ClassExpression */:\n return true;\n default:\n return false;\n }\n}\nfunction cleanText(text) {\n text = text.length > maxLength ? text.substring(0, maxLength) + \"...\" : text;\n return text.replace(/\\\\?(?:\\r?\\n|[\\r\\u2028\\u2029])/g, \"\");\n}\n\n// src/services/_namespaces/ts.refactor.ts\nvar ts_refactor_exports = {};\n__export(ts_refactor_exports, {\n addExportsInOldFile: () => addExportsInOldFile,\n addImportsForMovedSymbols: () => addImportsForMovedSymbols,\n addNewFileToTsconfig: () => addNewFileToTsconfig,\n addOrRemoveBracesToArrowFunction: () => ts_refactor_addOrRemoveBracesToArrowFunction_exports,\n addTargetFileImports: () => addTargetFileImports,\n containsJsx: () => containsJsx,\n convertArrowFunctionOrFunctionExpression: () => ts_refactor_convertArrowFunctionOrFunctionExpression_exports,\n convertParamsToDestructuredObject: () => ts_refactor_convertParamsToDestructuredObject_exports,\n convertStringOrTemplateLiteral: () => ts_refactor_convertStringOrTemplateLiteral_exports,\n convertToOptionalChainExpression: () => ts_refactor_convertToOptionalChainExpression_exports,\n createNewFileName: () => createNewFileName,\n doChangeNamedToNamespaceOrDefault: () => doChangeNamedToNamespaceOrDefault,\n extractSymbol: () => ts_refactor_extractSymbol_exports,\n generateGetAccessorAndSetAccessor: () => ts_refactor_generateGetAccessorAndSetAccessor_exports,\n getApplicableRefactors: () => getApplicableRefactors,\n getEditsForRefactor: () => getEditsForRefactor,\n getExistingLocals: () => getExistingLocals,\n getIdentifierForNode: () => getIdentifierForNode,\n getNewStatementsAndRemoveFromOldFile: () => getNewStatementsAndRemoveFromOldFile,\n getStatementsToMove: () => getStatementsToMove,\n getUsageInfo: () => getUsageInfo,\n inferFunctionReturnType: () => ts_refactor_inferFunctionReturnType_exports,\n isInImport: () => isInImport,\n isRefactorErrorInfo: () => isRefactorErrorInfo,\n refactorKindBeginsWith: () => refactorKindBeginsWith,\n registerRefactor: () => registerRefactor\n});\n\n// src/services/refactorProvider.ts\nvar refactors = /* @__PURE__ */ new Map();\nfunction registerRefactor(name, refactor) {\n refactors.set(name, refactor);\n}\nfunction getApplicableRefactors(context, includeInteractiveActions) {\n return arrayFrom(flatMapIterator(refactors.values(), (refactor) => {\n var _a;\n return context.cancellationToken && context.cancellationToken.isCancellationRequested() || !((_a = refactor.kinds) == null ? void 0 : _a.some((kind) => refactorKindBeginsWith(kind, context.kind))) ? void 0 : refactor.getAvailableActions(context, includeInteractiveActions);\n }));\n}\nfunction getEditsForRefactor(context, refactorName14, actionName2, interactiveRefactorArguments) {\n const refactor = refactors.get(refactorName14);\n return refactor && refactor.getEditsForAction(context, actionName2, interactiveRefactorArguments);\n}\n\n// src/services/refactors/convertExport.ts\nvar refactorName = \"Convert export\";\nvar defaultToNamedAction = {\n name: \"Convert default export to named export\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export),\n kind: \"refactor.rewrite.export.named\"\n};\nvar namedToDefaultAction = {\n name: \"Convert named export to default export\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_named_export_to_default_export),\n kind: \"refactor.rewrite.export.default\"\n};\nregisterRefactor(refactorName, {\n kinds: [\n defaultToNamedAction.kind,\n namedToDefaultAction.kind\n ],\n getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndDefaultExports(context) {\n const info = getInfo2(context, context.triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n const action = info.wasDefault ? defaultToNamedAction : namedToDefaultAction;\n return [{ name: refactorName, description: action.description, actions: [action] }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [\n {\n name: refactorName,\n description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export),\n actions: [\n { ...defaultToNamedAction, notApplicableReason: info.error },\n { ...namedToDefaultAction, notApplicableReason: info.error }\n ]\n }\n ];\n }\n return emptyArray;\n },\n getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndDefaultExports(context, actionName2) {\n Debug.assert(actionName2 === defaultToNamedAction.name || actionName2 === namedToDefaultAction.name, \"Unexpected action name\");\n const info = getInfo2(context);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange(context.file, context.program, info, t, context.cancellationToken));\n return { edits, renameFilename: void 0, renameLocation: void 0 };\n }\n});\nfunction getInfo2(context, considerPartialSpans = true) {\n const { file, program } = context;\n const span = getRefactorContextSpan(context);\n const token = getTokenAtPosition(file, span.start);\n const exportNode = !!(token.parent && getSyntacticModifierFlags(token.parent) & 32 /* Export */) && considerPartialSpans ? token.parent : getParentNodeInSpan(token, file, span);\n if (!exportNode || !isSourceFile(exportNode.parent) && !(isModuleBlock(exportNode.parent) && isAmbientModule(exportNode.parent.parent))) {\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_export_statement) };\n }\n const checker = program.getTypeChecker();\n const exportingModuleSymbol = getExportingModuleSymbol(exportNode.parent, checker);\n const flags = getSyntacticModifierFlags(exportNode) || (isExportAssignment(exportNode) && !exportNode.isExportEquals ? 2080 /* ExportDefault */ : 0 /* None */);\n const wasDefault = !!(flags & 2048 /* Default */);\n if (!(flags & 32 /* Export */) || !wasDefault && exportingModuleSymbol.exports.has(\"default\" /* Default */)) {\n return { error: getLocaleSpecificMessage(Diagnostics.This_file_already_has_a_default_export) };\n }\n const noSymbolError = (id) => isIdentifier(id) && checker.getSymbolAtLocation(id) ? void 0 : { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_named_export) };\n switch (exportNode.kind) {\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 268 /* ModuleDeclaration */: {\n const node = exportNode;\n if (!node.name) return void 0;\n return noSymbolError(node.name) || { exportNode: node, exportName: node.name, wasDefault, exportingModuleSymbol };\n }\n case 244 /* VariableStatement */: {\n const vs = exportNode;\n if (!(vs.declarationList.flags & 2 /* Const */) || vs.declarationList.declarations.length !== 1) {\n return void 0;\n }\n const decl = first(vs.declarationList.declarations);\n if (!decl.initializer) return void 0;\n Debug.assert(!wasDefault, \"Can't have a default flag here\");\n return noSymbolError(decl.name) || { exportNode: vs, exportName: decl.name, wasDefault, exportingModuleSymbol };\n }\n case 278 /* ExportAssignment */: {\n const node = exportNode;\n if (node.isExportEquals) return void 0;\n return noSymbolError(node.expression) || { exportNode: node, exportName: node.expression, wasDefault, exportingModuleSymbol };\n }\n default:\n return void 0;\n }\n}\nfunction doChange(exportingSourceFile, program, info, changes, cancellationToken) {\n changeExport(exportingSourceFile, info, changes, program.getTypeChecker());\n changeImports(program, info, changes, cancellationToken);\n}\nfunction changeExport(exportingSourceFile, { wasDefault, exportNode, exportName }, changes, checker) {\n if (wasDefault) {\n if (isExportAssignment(exportNode) && !exportNode.isExportEquals) {\n const exp = exportNode.expression;\n const spec = makeExportSpecifier(exp.text, exp.text);\n changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([spec])\n ));\n } else {\n changes.delete(exportingSourceFile, Debug.checkDefined(findModifier(exportNode, 90 /* DefaultKeyword */), \"Should find a default keyword in modifier list\"));\n }\n } else {\n const exportKeyword = Debug.checkDefined(findModifier(exportNode, 95 /* ExportKeyword */), \"Should find an export keyword in modifier list\");\n switch (exportNode.kind) {\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n changes.insertNodeAfter(exportingSourceFile, exportKeyword, factory.createToken(90 /* DefaultKeyword */));\n break;\n case 244 /* VariableStatement */:\n const decl = first(exportNode.declarationList.declarations);\n if (!ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(exportName, checker, exportingSourceFile) && !decl.type) {\n changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDefault(Debug.checkDefined(decl.initializer, \"Initializer was previously known to be present\")));\n break;\n }\n // falls through\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 268 /* ModuleDeclaration */:\n changes.deleteModifier(exportingSourceFile, exportKeyword);\n changes.insertNodeAfter(exportingSourceFile, exportNode, factory.createExportDefault(factory.createIdentifier(exportName.text)));\n break;\n default:\n Debug.fail(`Unexpected exportNode kind ${exportNode.kind}`);\n }\n }\n}\nfunction changeImports(program, { wasDefault, exportName, exportingModuleSymbol }, changes, cancellationToken) {\n const checker = program.getTypeChecker();\n const exportSymbol = Debug.checkDefined(checker.getSymbolAtLocation(exportName), \"Export name should resolve to a symbol\");\n ts_FindAllReferences_exports.Core.eachExportReference(program.getSourceFiles(), checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName.text, wasDefault, (ref) => {\n if (exportName === ref) return;\n const importingSourceFile = ref.getSourceFile();\n if (wasDefault) {\n changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName.text);\n } else {\n changeNamedToDefaultImport(importingSourceFile, ref, changes);\n }\n });\n}\nfunction changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName) {\n const { parent: parent2 } = ref;\n switch (parent2.kind) {\n case 212 /* PropertyAccessExpression */:\n changes.replaceNode(importingSourceFile, ref, factory.createIdentifier(exportName));\n break;\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */: {\n const spec = parent2;\n changes.replaceNode(importingSourceFile, spec, makeImportSpecifier(exportName, spec.name.text));\n break;\n }\n case 274 /* ImportClause */: {\n const clause = parent2;\n Debug.assert(clause.name === ref, \"Import clause name should match provided ref\");\n const spec = makeImportSpecifier(exportName, ref.text);\n const { namedBindings } = clause;\n if (!namedBindings) {\n changes.replaceNode(importingSourceFile, ref, factory.createNamedImports([spec]));\n } else if (namedBindings.kind === 275 /* NamespaceImport */) {\n changes.deleteRange(importingSourceFile, { pos: ref.getStart(importingSourceFile), end: namedBindings.getStart(importingSourceFile) });\n const quotePreference = isStringLiteral(clause.parent.moduleSpecifier) ? quotePreferenceFromString(clause.parent.moduleSpecifier, importingSourceFile) : 1 /* Double */;\n const newImport = makeImport(\n /*defaultImport*/\n void 0,\n [makeImportSpecifier(exportName, ref.text)],\n clause.parent.moduleSpecifier,\n quotePreference\n );\n changes.insertNodeAfter(importingSourceFile, clause.parent, newImport);\n } else {\n changes.delete(importingSourceFile, ref);\n changes.insertNodeAtEndOfList(importingSourceFile, namedBindings.elements, spec);\n }\n break;\n }\n case 206 /* ImportType */:\n const importTypeNode = parent2;\n changes.replaceNode(importingSourceFile, parent2, factory.createImportTypeNode(importTypeNode.argument, importTypeNode.attributes, factory.createIdentifier(exportName), importTypeNode.typeArguments, importTypeNode.isTypeOf));\n break;\n default:\n Debug.failBadSyntaxKind(parent2);\n }\n}\nfunction changeNamedToDefaultImport(importingSourceFile, ref, changes) {\n const parent2 = ref.parent;\n switch (parent2.kind) {\n case 212 /* PropertyAccessExpression */:\n changes.replaceNode(importingSourceFile, ref, factory.createIdentifier(\"default\"));\n break;\n case 277 /* ImportSpecifier */: {\n const defaultImport = factory.createIdentifier(parent2.name.text);\n if (parent2.parent.elements.length === 1) {\n changes.replaceNode(importingSourceFile, parent2.parent, defaultImport);\n } else {\n changes.delete(importingSourceFile, parent2);\n changes.insertNodeBefore(importingSourceFile, parent2.parent, defaultImport);\n }\n break;\n }\n case 282 /* ExportSpecifier */: {\n changes.replaceNode(importingSourceFile, parent2, makeExportSpecifier(\"default\", parent2.name.text));\n break;\n }\n default:\n Debug.assertNever(parent2, `Unexpected parent kind ${parent2.kind}`);\n }\n}\nfunction makeImportSpecifier(propertyName, name) {\n return factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n propertyName === name ? void 0 : factory.createIdentifier(propertyName),\n factory.createIdentifier(name)\n );\n}\nfunction makeExportSpecifier(propertyName, name) {\n return factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n propertyName === name ? void 0 : factory.createIdentifier(propertyName),\n factory.createIdentifier(name)\n );\n}\nfunction getExportingModuleSymbol(parent2, checker) {\n if (isSourceFile(parent2)) {\n return parent2.symbol;\n }\n const symbol = parent2.parent.symbol;\n if (symbol.valueDeclaration && isExternalModuleAugmentation(symbol.valueDeclaration)) {\n return checker.getMergedSymbol(symbol);\n }\n return symbol;\n}\n\n// src/services/refactors/convertImport.ts\nvar refactorName2 = \"Convert import\";\nvar actions = {\n [0 /* Named */]: {\n name: \"Convert namespace import to named imports\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_namespace_import_to_named_imports),\n kind: \"refactor.rewrite.import.named\"\n },\n [2 /* Namespace */]: {\n name: \"Convert named imports to namespace import\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_namespace_import),\n kind: \"refactor.rewrite.import.namespace\"\n },\n [1 /* Default */]: {\n name: \"Convert named imports to default import\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_default_import),\n kind: \"refactor.rewrite.import.default\"\n }\n};\nregisterRefactor(refactorName2, {\n kinds: getOwnValues(actions).map((a) => a.kind),\n getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndNamespacedImports(context) {\n const info = getImportConversionInfo(context, context.triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n const action = actions[info.convertTo];\n return [{ name: refactorName2, description: action.description, actions: [action] }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return getOwnValues(actions).map((action) => ({\n name: refactorName2,\n description: action.description,\n actions: [{ ...action, notApplicableReason: info.error }]\n }));\n }\n return emptyArray;\n },\n getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndNamespacedImports(context, actionName2) {\n Debug.assert(some(getOwnValues(actions), (action) => action.name === actionName2), \"Unexpected action name\");\n const info = getImportConversionInfo(context);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange2(context.file, context.program, t, info));\n return { edits, renameFilename: void 0, renameLocation: void 0 };\n }\n});\nfunction getImportConversionInfo(context, considerPartialSpans = true) {\n const { file } = context;\n const span = getRefactorContextSpan(context);\n const token = getTokenAtPosition(file, span.start);\n const importDecl = considerPartialSpans ? findAncestor(token, or(isImportDeclaration, isJSDocImportTag)) : getParentNodeInSpan(token, file, span);\n if (importDecl === void 0 || !(isImportDeclaration(importDecl) || isJSDocImportTag(importDecl))) return { error: \"Selection is not an import declaration.\" };\n const end = span.start + span.length;\n const nextToken = findNextToken(importDecl, importDecl.parent, file);\n if (nextToken && end > nextToken.getStart()) return void 0;\n const { importClause } = importDecl;\n if (!importClause) {\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_import_clause) };\n }\n if (!importClause.namedBindings) {\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_namespace_import_or_named_imports) };\n }\n if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n return { convertTo: 0 /* Named */, import: importClause.namedBindings };\n }\n const shouldUseDefault = getShouldUseDefault(context.program, importClause);\n return shouldUseDefault ? { convertTo: 1 /* Default */, import: importClause.namedBindings } : { convertTo: 2 /* Namespace */, import: importClause.namedBindings };\n}\nfunction getShouldUseDefault(program, importClause) {\n return getAllowSyntheticDefaultImports(program.getCompilerOptions()) && isExportEqualsModule(importClause.parent.moduleSpecifier, program.getTypeChecker());\n}\nfunction doChange2(sourceFile, program, changes, info) {\n const checker = program.getTypeChecker();\n if (info.convertTo === 0 /* Named */) {\n doChangeNamespaceToNamed(sourceFile, checker, changes, info.import, getAllowSyntheticDefaultImports(program.getCompilerOptions()));\n } else {\n doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, info.import, info.convertTo === 1 /* Default */);\n }\n}\nfunction doChangeNamespaceToNamed(sourceFile, checker, changes, toConvert, allowSyntheticDefaultImports) {\n let usedAsNamespaceOrDefault = false;\n const nodesToReplace = [];\n const conflictingNames = /* @__PURE__ */ new Map();\n ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(toConvert.name, checker, sourceFile, (id) => {\n if (!isPropertyAccessOrQualifiedName(id.parent)) {\n usedAsNamespaceOrDefault = true;\n } else {\n const exportName = getRightOfPropertyAccessOrQualifiedName(id.parent).text;\n if (checker.resolveName(\n exportName,\n id,\n -1 /* All */,\n /*excludeGlobals*/\n true\n )) {\n conflictingNames.set(exportName, true);\n }\n Debug.assert(getLeftOfPropertyAccessOrQualifiedName(id.parent) === id, \"Parent expression should match id\");\n nodesToReplace.push(id.parent);\n }\n });\n const exportNameToImportName = /* @__PURE__ */ new Map();\n for (const propertyAccessOrQualifiedName of nodesToReplace) {\n const exportName = getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName).text;\n let importName = exportNameToImportName.get(exportName);\n if (importName === void 0) {\n exportNameToImportName.set(exportName, importName = conflictingNames.has(exportName) ? getUniqueName(exportName, sourceFile) : exportName);\n }\n changes.replaceNode(sourceFile, propertyAccessOrQualifiedName, factory.createIdentifier(importName));\n }\n const importSpecifiers = [];\n exportNameToImportName.forEach((name, propertyName) => {\n importSpecifiers.push(factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n name === propertyName ? void 0 : factory.createIdentifier(propertyName),\n factory.createIdentifier(name)\n ));\n });\n const importDecl = toConvert.parent.parent;\n if (usedAsNamespaceOrDefault && !allowSyntheticDefaultImports && isImportDeclaration(importDecl)) {\n changes.insertNodeAfter(sourceFile, importDecl, createImport(\n importDecl,\n /*defaultImportName*/\n void 0,\n importSpecifiers\n ));\n } else {\n const defaultImportName = usedAsNamespaceOrDefault ? factory.createIdentifier(toConvert.name.text) : void 0;\n changes.replaceNode(sourceFile, toConvert.parent, createImportClause(defaultImportName, importSpecifiers));\n }\n}\nfunction getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) {\n return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.name : propertyAccessOrQualifiedName.right;\n}\nfunction getLeftOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) {\n return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.expression : propertyAccessOrQualifiedName.left;\n}\nfunction doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, toConvert, shouldUseDefault = getShouldUseDefault(program, toConvert.parent)) {\n const checker = program.getTypeChecker();\n const importDecl = toConvert.parent.parent;\n const { moduleSpecifier } = importDecl;\n const toConvertSymbols = /* @__PURE__ */ new Set();\n toConvert.elements.forEach((namedImport) => {\n const symbol = checker.getSymbolAtLocation(namedImport.name);\n if (symbol) {\n toConvertSymbols.add(symbol);\n }\n });\n const preferredName = moduleSpecifier && isStringLiteral(moduleSpecifier) ? moduleSpecifierToValidIdentifier(moduleSpecifier.text, 99 /* ESNext */) : \"module\";\n function hasNamespaceNameConflict(namedImport) {\n return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(namedImport.name, checker, sourceFile, (id) => {\n const symbol = checker.resolveName(\n preferredName,\n id,\n -1 /* All */,\n /*excludeGlobals*/\n true\n );\n if (symbol) {\n if (toConvertSymbols.has(symbol)) {\n return isExportSpecifier(id.parent);\n }\n return true;\n }\n return false;\n });\n }\n const namespaceNameConflicts = toConvert.elements.some(hasNamespaceNameConflict);\n const namespaceImportName = namespaceNameConflicts ? getUniqueName(preferredName, sourceFile) : preferredName;\n const neededNamedImports = /* @__PURE__ */ new Set();\n for (const element of toConvert.elements) {\n const propertyName = element.propertyName || element.name;\n ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(element.name, checker, sourceFile, (id) => {\n const access = propertyName.kind === 11 /* StringLiteral */ ? factory.createElementAccessExpression(factory.createIdentifier(namespaceImportName), factory.cloneNode(propertyName)) : factory.createPropertyAccessExpression(factory.createIdentifier(namespaceImportName), factory.cloneNode(propertyName));\n if (isShorthandPropertyAssignment(id.parent)) {\n changes.replaceNode(sourceFile, id.parent, factory.createPropertyAssignment(id.text, access));\n } else if (isExportSpecifier(id.parent)) {\n neededNamedImports.add(element);\n } else {\n changes.replaceNode(sourceFile, id, access);\n }\n });\n }\n changes.replaceNode(\n sourceFile,\n toConvert,\n shouldUseDefault ? factory.createIdentifier(namespaceImportName) : factory.createNamespaceImport(factory.createIdentifier(namespaceImportName))\n );\n if (neededNamedImports.size && isImportDeclaration(importDecl)) {\n const newNamedImports = arrayFrom(neededNamedImports.values(), (element) => factory.createImportSpecifier(element.isTypeOnly, element.propertyName && factory.cloneNode(element.propertyName), factory.cloneNode(element.name)));\n changes.insertNodeAfter(sourceFile, toConvert.parent.parent, createImport(\n importDecl,\n /*defaultImportName*/\n void 0,\n newNamedImports\n ));\n }\n}\nfunction isExportEqualsModule(moduleSpecifier, checker) {\n const externalModule = checker.resolveExternalModuleName(moduleSpecifier);\n if (!externalModule) return false;\n const exportEquals = checker.resolveExternalModuleSymbol(externalModule);\n return externalModule !== exportEquals;\n}\nfunction createImport(node, defaultImportName, elements) {\n return factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n createImportClause(defaultImportName, elements),\n node.moduleSpecifier,\n /*attributes*/\n void 0\n );\n}\nfunction createImportClause(defaultImportName, elements) {\n return factory.createImportClause(\n /*phaseModifier*/\n void 0,\n defaultImportName,\n elements && elements.length ? factory.createNamedImports(elements) : void 0\n );\n}\n\n// src/services/refactors/extractType.ts\nvar refactorName3 = \"Extract type\";\nvar extractToTypeAliasAction = {\n name: \"Extract to type alias\",\n description: getLocaleSpecificMessage(Diagnostics.Extract_to_type_alias),\n kind: \"refactor.extract.type\"\n};\nvar extractToInterfaceAction = {\n name: \"Extract to interface\",\n description: getLocaleSpecificMessage(Diagnostics.Extract_to_interface),\n kind: \"refactor.extract.interface\"\n};\nvar extractToTypeDefAction = {\n name: \"Extract to typedef\",\n description: getLocaleSpecificMessage(Diagnostics.Extract_to_typedef),\n kind: \"refactor.extract.typedef\"\n};\nregisterRefactor(refactorName3, {\n kinds: [\n extractToTypeAliasAction.kind,\n extractToInterfaceAction.kind,\n extractToTypeDefAction.kind\n ],\n getAvailableActions: function getRefactorActionsToExtractType(context) {\n const { info, affectedTextRange } = getRangeToExtract(context, context.triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n const refactorInfo = [{\n name: refactorName3,\n description: getLocaleSpecificMessage(Diagnostics.Extract_type),\n actions: info.isJS ? [extractToTypeDefAction] : append([extractToTypeAliasAction], info.typeElements && extractToInterfaceAction)\n }];\n return refactorInfo.map((info2) => ({\n ...info2,\n actions: info2.actions.map((action) => ({\n ...action,\n range: affectedTextRange ? {\n start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n } : void 0\n }))\n }));\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{\n name: refactorName3,\n description: getLocaleSpecificMessage(Diagnostics.Extract_type),\n actions: [\n { ...extractToTypeDefAction, notApplicableReason: info.error },\n { ...extractToTypeAliasAction, notApplicableReason: info.error },\n { ...extractToInterfaceAction, notApplicableReason: info.error }\n ]\n }];\n }\n return emptyArray;\n },\n getEditsForAction: function getRefactorEditsToExtractType(context, actionName2) {\n const { file } = context;\n const { info } = getRangeToExtract(context);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected to find a range to extract\");\n const name = getUniqueName(\"NewType\", file);\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n switch (actionName2) {\n case extractToTypeAliasAction.name:\n Debug.assert(!info.isJS, \"Invalid actionName/JS combo\");\n return doTypeAliasChange(changes, file, name, info);\n case extractToTypeDefAction.name:\n Debug.assert(info.isJS, \"Invalid actionName/JS combo\");\n return doTypedefChange(changes, context, file, name, info);\n case extractToInterfaceAction.name:\n Debug.assert(!info.isJS && !!info.typeElements, \"Invalid actionName/JS combo\");\n return doInterfaceChange(changes, file, name, info);\n default:\n Debug.fail(\"Unexpected action name\");\n }\n });\n const renameFilename = file.fileName;\n const renameLocation = getRenameLocation(\n edits,\n renameFilename,\n name,\n /*preferLastLocation*/\n false\n );\n return { edits, renameFilename, renameLocation };\n }\n});\nfunction getRangeToExtract(context, considerEmptySpans = true) {\n const { file, startPosition } = context;\n const isJS = isSourceFileJS(file);\n const range = createTextRangeFromSpan(getRefactorContextSpan(context));\n const isCursorRequest = range.pos === range.end && considerEmptySpans;\n const firstType = getFirstTypeAt(file, startPosition, range, isCursorRequest);\n if (!firstType || !isTypeNode(firstType)) return { info: { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) }, affectedTextRange: void 0 };\n const checker = context.program.getTypeChecker();\n const enclosingNode = getEnclosingNode(firstType, isJS);\n if (enclosingNode === void 0) return { info: { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }, affectedTextRange: void 0 };\n const expandedFirstType = getExpandedSelectionNode(firstType, enclosingNode);\n if (!isTypeNode(expandedFirstType)) return { info: { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) }, affectedTextRange: void 0 };\n const typeList = [];\n if ((isUnionTypeNode(expandedFirstType.parent) || isIntersectionTypeNode(expandedFirstType.parent)) && range.end > firstType.end) {\n addRange(\n typeList,\n expandedFirstType.parent.types.filter((type) => {\n return nodeOverlapsWithStartEnd(type, file, range.pos, range.end);\n })\n );\n }\n const selection = typeList.length > 1 ? typeList : expandedFirstType;\n const { typeParameters, affectedTextRange } = collectTypeParameters(checker, selection, enclosingNode, file);\n if (!typeParameters) return { info: { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }, affectedTextRange: void 0 };\n const typeElements = flattenTypeLiteralNodeReference(checker, selection);\n return { info: { isJS, selection, enclosingNode, typeParameters, typeElements }, affectedTextRange };\n}\nfunction getFirstTypeAt(file, startPosition, range, isCursorRequest) {\n const currentNodes = [\n () => getTokenAtPosition(file, startPosition),\n () => getTouchingToken(file, startPosition, () => true)\n ];\n for (const f of currentNodes) {\n const current = f();\n const overlappingRange = nodeOverlapsWithStartEnd(current, file, range.pos, range.end);\n const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (isCursorRequest || overlappingRange));\n if (firstType) {\n return firstType;\n }\n }\n return void 0;\n}\nfunction flattenTypeLiteralNodeReference(checker, selection) {\n if (!selection) return void 0;\n if (isArray(selection)) {\n const result = [];\n for (const type of selection) {\n const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);\n if (!flattenedTypeMembers) return void 0;\n addRange(result, flattenedTypeMembers);\n }\n return result;\n }\n if (isIntersectionTypeNode(selection)) {\n const result = [];\n const seen = /* @__PURE__ */ new Set();\n for (const type of selection.types) {\n const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);\n if (!flattenedTypeMembers || !flattenedTypeMembers.every((type2) => type2.name && addToSeen(seen, getNameFromPropertyName(type2.name)))) {\n return void 0;\n }\n addRange(result, flattenedTypeMembers);\n }\n return result;\n } else if (isParenthesizedTypeNode(selection)) {\n return flattenTypeLiteralNodeReference(checker, selection.type);\n } else if (isTypeLiteralNode(selection)) {\n return selection.members;\n }\n return void 0;\n}\nfunction rangeContainsSkipTrivia(r1, node, file) {\n return rangeContainsStartEnd(r1, skipTrivia(file.text, node.pos), node.end);\n}\nfunction collectTypeParameters(checker, selection, enclosingNode, file) {\n const result = [];\n const selectionArray = toArray(selection);\n const selectionRange = { pos: selectionArray[0].getStart(file), end: selectionArray[selectionArray.length - 1].end };\n for (const t of selectionArray) {\n if (visitor(t)) return { typeParameters: void 0, affectedTextRange: void 0 };\n }\n return { typeParameters: result, affectedTextRange: selectionRange };\n function visitor(node) {\n if (isTypeReferenceNode(node)) {\n if (isIdentifier(node.typeName)) {\n const typeName = node.typeName;\n const symbol = checker.resolveName(\n typeName.text,\n typeName,\n 262144 /* TypeParameter */,\n /*excludeGlobals*/\n true\n );\n for (const decl of (symbol == null ? void 0 : symbol.declarations) || emptyArray) {\n if (isTypeParameterDeclaration(decl) && decl.getSourceFile() === file) {\n if (decl.name.escapedText === typeName.escapedText && rangeContainsSkipTrivia(decl, selectionRange, file)) {\n return true;\n }\n if (rangeContainsSkipTrivia(enclosingNode, decl, file) && !rangeContainsSkipTrivia(selectionRange, decl, file)) {\n pushIfUnique(result, decl);\n break;\n }\n }\n }\n }\n } else if (isInferTypeNode(node)) {\n const conditionalTypeNode = findAncestor(node, (n) => isConditionalTypeNode(n) && rangeContainsSkipTrivia(n.extendsType, node, file));\n if (!conditionalTypeNode || !rangeContainsSkipTrivia(selectionRange, conditionalTypeNode, file)) {\n return true;\n }\n } else if (isTypePredicateNode(node) || isThisTypeNode(node)) {\n const functionLikeNode = findAncestor(node.parent, isFunctionLike);\n if (functionLikeNode && functionLikeNode.type && rangeContainsSkipTrivia(functionLikeNode.type, node, file) && !rangeContainsSkipTrivia(selectionRange, functionLikeNode, file)) {\n return true;\n }\n } else if (isTypeQueryNode(node)) {\n if (isIdentifier(node.exprName)) {\n const symbol = checker.resolveName(\n node.exprName.text,\n node.exprName,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n if ((symbol == null ? void 0 : symbol.valueDeclaration) && rangeContainsSkipTrivia(enclosingNode, symbol.valueDeclaration, file) && !rangeContainsSkipTrivia(selectionRange, symbol.valueDeclaration, file)) {\n return true;\n }\n } else {\n if (isThisIdentifier(node.exprName.left) && !rangeContainsSkipTrivia(selectionRange, node.parent, file)) {\n return true;\n }\n }\n }\n if (file && isTupleTypeNode(node) && getLineAndCharacterOfPosition(file, node.pos).line === getLineAndCharacterOfPosition(file, node.end).line) {\n setEmitFlags(node, 1 /* SingleLine */);\n }\n return forEachChild(node, visitor);\n }\n}\nfunction doTypeAliasChange(changes, file, name, info) {\n const { enclosingNode, typeParameters } = info;\n const { firstTypeNode, lastTypeNode, newTypeNode } = getNodesToEdit(info);\n const newTypeDeclaration = factory.createTypeAliasDeclaration(\n /*modifiers*/\n void 0,\n name,\n typeParameters.map((id) => factory.updateTypeParameterDeclaration(\n id,\n id.modifiers,\n id.name,\n id.constraint,\n /*defaultType*/\n void 0\n )),\n newTypeNode\n );\n changes.insertNodeBefore(\n file,\n enclosingNode,\n ignoreSourceNewlines(newTypeDeclaration),\n /*blankLineBetween*/\n true\n );\n changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n id.name,\n /*typeArguments*/\n void 0\n ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });\n}\nfunction doInterfaceChange(changes, file, name, info) {\n var _a;\n const { enclosingNode, typeParameters, typeElements } = info;\n const newTypeNode = factory.createInterfaceDeclaration(\n /*modifiers*/\n void 0,\n name,\n typeParameters,\n /*heritageClauses*/\n void 0,\n typeElements\n );\n setTextRange(newTypeNode, (_a = typeElements[0]) == null ? void 0 : _a.parent);\n changes.insertNodeBefore(\n file,\n enclosingNode,\n ignoreSourceNewlines(newTypeNode),\n /*blankLineBetween*/\n true\n );\n const { firstTypeNode, lastTypeNode } = getNodesToEdit(info);\n changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n id.name,\n /*typeArguments*/\n void 0\n ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });\n}\nfunction doTypedefChange(changes, context, file, name, info) {\n var _a;\n toArray(info.selection).forEach((typeNode) => {\n setEmitFlags(typeNode, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n });\n const { enclosingNode, typeParameters } = info;\n const { firstTypeNode, lastTypeNode, newTypeNode } = getNodesToEdit(info);\n const node = factory.createJSDocTypedefTag(\n factory.createIdentifier(\"typedef\"),\n factory.createJSDocTypeExpression(newTypeNode),\n factory.createIdentifier(name)\n );\n const templates = [];\n forEach(typeParameters, (typeParameter) => {\n const constraint = getEffectiveConstraintOfTypeParameter(typeParameter);\n const parameter = factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n typeParameter.name\n );\n const template = factory.createJSDocTemplateTag(\n factory.createIdentifier(\"template\"),\n constraint && cast(constraint, isJSDocTypeExpression),\n [parameter]\n );\n templates.push(template);\n });\n const jsDoc = factory.createJSDocComment(\n /*comment*/\n void 0,\n factory.createNodeArray(concatenate(templates, [node]))\n );\n if (isJSDoc(enclosingNode)) {\n const pos = enclosingNode.getStart(file);\n const newLineCharacter = getNewLineOrDefaultFromHost(context.host, (_a = context.formatContext) == null ? void 0 : _a.options);\n changes.insertNodeAt(file, enclosingNode.getStart(file), jsDoc, {\n suffix: newLineCharacter + newLineCharacter + file.text.slice(getPrecedingNonSpaceCharacterPosition(file.text, pos - 1), pos)\n });\n } else {\n changes.insertNodeBefore(\n file,\n enclosingNode,\n jsDoc,\n /*blankLineBetween*/\n true\n );\n }\n changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n id.name,\n /*typeArguments*/\n void 0\n ))));\n}\nfunction getNodesToEdit(info) {\n if (isArray(info.selection)) {\n return {\n firstTypeNode: info.selection[0],\n lastTypeNode: info.selection[info.selection.length - 1],\n newTypeNode: isUnionTypeNode(info.selection[0].parent) ? factory.createUnionTypeNode(info.selection) : factory.createIntersectionTypeNode(info.selection)\n };\n }\n return {\n firstTypeNode: info.selection,\n lastTypeNode: info.selection,\n newTypeNode: info.selection\n };\n}\nfunction getEnclosingNode(node, isJS) {\n return findAncestor(node, isStatement) || (isJS ? findAncestor(node, isJSDoc) : void 0);\n}\nfunction getExpandedSelectionNode(firstType, enclosingNode) {\n return findAncestor(firstType, (node) => {\n if (node === enclosingNode) return \"quit\";\n if (isUnionTypeNode(node.parent) || isIntersectionTypeNode(node.parent)) {\n return true;\n }\n return false;\n }) ?? firstType;\n}\n\n// src/services/refactors/moveToFile.ts\nvar refactorNameForMoveToFile = \"Move to file\";\nvar description = getLocaleSpecificMessage(Diagnostics.Move_to_file);\nvar moveToFileAction = {\n name: \"Move to file\",\n description,\n kind: \"refactor.move.file\"\n};\nregisterRefactor(refactorNameForMoveToFile, {\n kinds: [moveToFileAction.kind],\n getAvailableActions: function getRefactorActionsToMoveToFile(context, interactiveRefactorArguments) {\n const file = context.file;\n const statements = getStatementsToMove(context);\n if (!interactiveRefactorArguments) {\n return emptyArray;\n }\n if (context.triggerReason === \"implicit\" && context.endPosition !== void 0) {\n const startNodeAncestor = findAncestor(getTokenAtPosition(file, context.startPosition), isBlockLike);\n const endNodeAncestor = findAncestor(getTokenAtPosition(file, context.endPosition), isBlockLike);\n if (startNodeAncestor && !isSourceFile(startNodeAncestor) && endNodeAncestor && !isSourceFile(endNodeAncestor)) {\n return emptyArray;\n }\n }\n if (context.preferences.allowTextChangesInNewFiles && statements) {\n const affectedTextRange = {\n start: { line: getLineAndCharacterOfPosition(file, statements.all[0].getStart(file)).line, offset: getLineAndCharacterOfPosition(file, statements.all[0].getStart(file)).character },\n end: { line: getLineAndCharacterOfPosition(file, last(statements.all).end).line, offset: getLineAndCharacterOfPosition(file, last(statements.all).end).character }\n };\n return [{ name: refactorNameForMoveToFile, description, actions: [{ ...moveToFileAction, range: affectedTextRange }] }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{ name: refactorNameForMoveToFile, description, actions: [{ ...moveToFileAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) }] }];\n }\n return emptyArray;\n },\n getEditsForAction: function getRefactorEditsToMoveToFile(context, actionName2, interactiveRefactorArguments) {\n Debug.assert(actionName2 === refactorNameForMoveToFile, \"Wrong refactor invoked\");\n const statements = Debug.checkDefined(getStatementsToMove(context));\n const { host, program } = context;\n Debug.assert(interactiveRefactorArguments, \"No interactive refactor arguments available\");\n const targetFile = interactiveRefactorArguments.targetFile;\n if (hasJSFileExtension(targetFile) || hasTSFileExtension(targetFile)) {\n if (host.fileExists(targetFile) && program.getSourceFile(targetFile) === void 0) {\n return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_statements_to_the_selected_file));\n }\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context, context.file, interactiveRefactorArguments.targetFile, context.program, statements, t, context.host, context.preferences));\n return { edits, renameFilename: void 0, renameLocation: void 0 };\n }\n return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_to_file_selected_file_is_invalid));\n }\n});\nfunction error(notApplicableReason) {\n return { edits: [], renameFilename: void 0, renameLocation: void 0, notApplicableReason };\n}\nfunction doChange3(context, oldFile, targetFile, program, toMove, changes, host, preferences) {\n const checker = program.getTypeChecker();\n const isForNewFile = !host.fileExists(targetFile);\n const targetSourceFile = isForNewFile ? createFutureSourceFile(targetFile, oldFile.externalModuleIndicator ? 99 /* ESNext */ : oldFile.commonJsModuleIndicator ? 1 /* CommonJS */ : void 0, program, host) : Debug.checkDefined(program.getSourceFile(targetFile));\n const importAdderForOldFile = ts_codefix_exports.createImportAdder(oldFile, context.program, context.preferences, context.host);\n const importAdderForNewFile = ts_codefix_exports.createImportAdder(targetSourceFile, context.program, context.preferences, context.host);\n getNewStatementsAndRemoveFromOldFile(oldFile, targetSourceFile, getUsageInfo(oldFile, toMove.all, checker, isForNewFile ? void 0 : getExistingLocals(targetSourceFile, toMove.all, checker)), changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile);\n if (isForNewFile) {\n addNewFileToTsconfig(program, changes, oldFile.fileName, targetFile, hostGetCanonicalFileName(host));\n }\n}\nfunction getNewStatementsAndRemoveFromOldFile(oldFile, targetFile, usage, changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile) {\n const checker = program.getTypeChecker();\n const prologueDirectives = takeWhile(oldFile.statements, isPrologueDirective);\n const useEsModuleSyntax = !fileShouldUseJavaScriptRequire(targetFile.fileName, program, host, !!oldFile.commonJsModuleIndicator);\n const quotePreference = getQuotePreference(oldFile, preferences);\n addImportsForMovedSymbols(usage.oldFileImportsFromTargetFile, targetFile.fileName, importAdderForOldFile, program);\n deleteUnusedOldImports(oldFile, toMove.all, usage.unusedImportsFromOldFile, importAdderForOldFile);\n importAdderForOldFile.writeFixes(changes, quotePreference);\n deleteMovedStatements(oldFile, toMove.ranges, changes);\n updateImportsInOtherFiles(changes, program, host, oldFile, usage.movedSymbols, targetFile.fileName, quotePreference);\n addExportsInOldFile(oldFile, usage.targetFileImportsFromOldFile, changes, useEsModuleSyntax);\n addTargetFileImports(oldFile, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, checker, program, importAdderForNewFile);\n if (!isFullSourceFile(targetFile) && prologueDirectives.length) {\n changes.insertStatementsInNewFile(targetFile.fileName, prologueDirectives, oldFile);\n }\n importAdderForNewFile.writeFixes(changes, quotePreference);\n const body = addExports(oldFile, toMove.all, arrayFrom(usage.oldFileImportsFromTargetFile.keys()), useEsModuleSyntax);\n if (isFullSourceFile(targetFile) && targetFile.statements.length > 0) {\n moveStatementsToTargetFile(changes, program, body, targetFile, toMove);\n } else if (isFullSourceFile(targetFile)) {\n changes.insertNodesAtEndOfFile(\n targetFile,\n body,\n /*blankLineBetween*/\n false\n );\n } else {\n changes.insertStatementsInNewFile(targetFile.fileName, importAdderForNewFile.hasFixes() ? [4 /* NewLineTrivia */, ...body] : body, oldFile);\n }\n}\nfunction addNewFileToTsconfig(program, changes, oldFileName, newFileNameWithExtension, getCanonicalFileName) {\n const cfg = program.getCompilerOptions().configFile;\n if (!cfg) return;\n const newFileAbsolutePath = normalizePath(combinePaths(oldFileName, \"..\", newFileNameWithExtension));\n const newFilePath = getRelativePathFromFile(cfg.fileName, newFileAbsolutePath, getCanonicalFileName);\n const cfgObject = cfg.statements[0] && tryCast(cfg.statements[0].expression, isObjectLiteralExpression);\n const filesProp = cfgObject && find(cfgObject.properties, (prop) => isPropertyAssignment(prop) && isStringLiteral(prop.name) && prop.name.text === \"files\");\n if (filesProp && isArrayLiteralExpression(filesProp.initializer)) {\n changes.insertNodeInListAfter(cfg, last(filesProp.initializer.elements), factory.createStringLiteral(newFilePath), filesProp.initializer.elements);\n }\n}\nfunction deleteMovedStatements(sourceFile, moved, changes) {\n for (const { first: first2, afterLast } of moved) {\n changes.deleteNodeRangeExcludingEnd(sourceFile, first2, afterLast);\n }\n}\nfunction deleteUnusedOldImports(oldFile, toMove, toDelete, importAdder) {\n for (const statement of oldFile.statements) {\n if (contains(toMove, statement)) continue;\n forEachImportInStatement(statement, (i) => {\n forEachAliasDeclarationInImportOrRequire(i, (decl) => {\n if (toDelete.has(decl.symbol)) {\n importAdder.removeExistingImport(decl);\n }\n });\n });\n }\n}\nfunction addExportsInOldFile(oldFile, targetFileImportsFromOldFile, changes, useEsModuleSyntax) {\n const markSeenTop = nodeSeenTracker();\n targetFileImportsFromOldFile.forEach((_, symbol) => {\n if (!symbol.declarations) {\n return;\n }\n for (const decl of symbol.declarations) {\n if (!isTopLevelDeclaration(decl)) continue;\n const name = nameOfTopLevelDeclaration(decl);\n if (!name) continue;\n const top = getTopLevelDeclarationStatement(decl);\n if (markSeenTop(top)) {\n addExportToChanges(oldFile, top, name, changes, useEsModuleSyntax);\n }\n }\n });\n}\nfunction updateImportsInOtherFiles(changes, program, host, oldFile, movedSymbols, targetFileName, quotePreference) {\n const checker = program.getTypeChecker();\n for (const sourceFile of program.getSourceFiles()) {\n if (sourceFile === oldFile) continue;\n for (const statement of sourceFile.statements) {\n forEachImportInStatement(statement, (importNode) => {\n if (checker.getSymbolAtLocation(moduleSpecifierFromImport(importNode)) !== oldFile.symbol) return;\n const shouldMove = (name) => {\n const symbol = isBindingElement(name.parent) ? getPropertySymbolFromBindingElement(checker, name.parent) : skipAlias(checker.getSymbolAtLocation(name), checker);\n return !!symbol && movedSymbols.has(symbol);\n };\n deleteUnusedImports(sourceFile, importNode, changes, shouldMove);\n const pathToTargetFileWithExtension = resolvePath(getDirectoryPath(getNormalizedAbsolutePath(oldFile.fileName, program.getCurrentDirectory())), targetFileName);\n if (getStringComparer(!program.useCaseSensitiveFileNames())(pathToTargetFileWithExtension, sourceFile.fileName) === 0 /* EqualTo */) return;\n const newModuleSpecifier = ts_moduleSpecifiers_exports.getModuleSpecifier(program.getCompilerOptions(), sourceFile, sourceFile.fileName, pathToTargetFileWithExtension, createModuleSpecifierResolutionHost(program, host));\n const newImportDeclaration = filterImport(importNode, makeStringLiteral(newModuleSpecifier, quotePreference), shouldMove);\n if (newImportDeclaration) changes.insertNodeAfter(sourceFile, statement, newImportDeclaration);\n const ns = getNamespaceLikeImport(importNode);\n if (ns) updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, ns, importNode, quotePreference);\n });\n }\n }\n}\nfunction getNamespaceLikeImport(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return node.importClause && node.importClause.namedBindings && node.importClause.namedBindings.kind === 275 /* NamespaceImport */ ? node.importClause.namedBindings.name : void 0;\n case 272 /* ImportEqualsDeclaration */:\n return node.name;\n case 261 /* VariableDeclaration */:\n return tryCast(node.name, isIdentifier);\n default:\n return Debug.assertNever(node, `Unexpected node kind ${node.kind}`);\n }\n}\nfunction updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, oldImportId, oldImportNode, quotePreference) {\n const preferredNewNamespaceName = moduleSpecifierToValidIdentifier(newModuleSpecifier, 99 /* ESNext */);\n let needUniqueName = false;\n const toChange = [];\n ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(oldImportId, checker, sourceFile, (ref) => {\n if (!isPropertyAccessExpression(ref.parent)) return;\n needUniqueName = needUniqueName || !!checker.resolveName(\n preferredNewNamespaceName,\n ref,\n -1 /* All */,\n /*excludeGlobals*/\n true\n );\n if (movedSymbols.has(checker.getSymbolAtLocation(ref.parent.name))) {\n toChange.push(ref);\n }\n });\n if (toChange.length) {\n const newNamespaceName = needUniqueName ? getUniqueName(preferredNewNamespaceName, sourceFile) : preferredNewNamespaceName;\n for (const ref of toChange) {\n changes.replaceNode(sourceFile, ref, factory.createIdentifier(newNamespaceName));\n }\n changes.insertNodeAfter(sourceFile, oldImportNode, updateNamespaceLikeImportNode(oldImportNode, preferredNewNamespaceName, newModuleSpecifier, quotePreference));\n }\n}\nfunction updateNamespaceLikeImportNode(node, newNamespaceName, newModuleSpecifier, quotePreference) {\n const newNamespaceId = factory.createIdentifier(newNamespaceName);\n const newModuleString = makeStringLiteral(newModuleSpecifier, quotePreference);\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /*phaseModifier*/\n void 0,\n /*name*/\n void 0,\n factory.createNamespaceImport(newNamespaceId)\n ),\n newModuleString,\n /*attributes*/\n void 0\n );\n case 272 /* ImportEqualsDeclaration */:\n return factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n newNamespaceId,\n factory.createExternalModuleReference(newModuleString)\n );\n case 261 /* VariableDeclaration */:\n return factory.createVariableDeclaration(\n newNamespaceId,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n createRequireCall(newModuleString)\n );\n default:\n return Debug.assertNever(node, `Unexpected node kind ${node.kind}`);\n }\n}\nfunction createRequireCall(moduleSpecifier) {\n return factory.createCallExpression(\n factory.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n [moduleSpecifier]\n );\n}\nfunction moduleSpecifierFromImport(i) {\n return i.kind === 273 /* ImportDeclaration */ ? i.moduleSpecifier : i.kind === 272 /* ImportEqualsDeclaration */ ? i.moduleReference.expression : i.initializer.arguments[0];\n}\nfunction forEachImportInStatement(statement, cb) {\n if (isImportDeclaration(statement)) {\n if (isStringLiteral(statement.moduleSpecifier)) cb(statement);\n } else if (isImportEqualsDeclaration(statement)) {\n if (isExternalModuleReference(statement.moduleReference) && isStringLiteralLike(statement.moduleReference.expression)) {\n cb(statement);\n }\n } else if (isVariableStatement(statement)) {\n for (const decl of statement.declarationList.declarations) {\n if (decl.initializer && isRequireCall(\n decl.initializer,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n cb(decl);\n }\n }\n }\n}\nfunction forEachAliasDeclarationInImportOrRequire(importOrRequire, cb) {\n var _a, _b, _c, _d, _e;\n if (importOrRequire.kind === 273 /* ImportDeclaration */) {\n if ((_a = importOrRequire.importClause) == null ? void 0 : _a.name) {\n cb(importOrRequire.importClause);\n }\n if (((_c = (_b = importOrRequire.importClause) == null ? void 0 : _b.namedBindings) == null ? void 0 : _c.kind) === 275 /* NamespaceImport */) {\n cb(importOrRequire.importClause.namedBindings);\n }\n if (((_e = (_d = importOrRequire.importClause) == null ? void 0 : _d.namedBindings) == null ? void 0 : _e.kind) === 276 /* NamedImports */) {\n for (const element of importOrRequire.importClause.namedBindings.elements) {\n cb(element);\n }\n }\n } else if (importOrRequire.kind === 272 /* ImportEqualsDeclaration */) {\n cb(importOrRequire);\n } else if (importOrRequire.kind === 261 /* VariableDeclaration */) {\n if (importOrRequire.name.kind === 80 /* Identifier */) {\n cb(importOrRequire);\n } else if (importOrRequire.name.kind === 207 /* ObjectBindingPattern */) {\n for (const element of importOrRequire.name.elements) {\n if (isIdentifier(element.name)) {\n cb(element);\n }\n }\n }\n }\n}\nfunction addImportsForMovedSymbols(symbols, targetFileName, importAdder, program) {\n for (const [symbol, isValidTypeOnlyUseSite] of symbols) {\n const symbolName2 = getNameForExportedSymbol(symbol, getEmitScriptTarget(program.getCompilerOptions()));\n const exportKind = symbol.name === \"default\" && symbol.parent ? 1 /* Default */ : 0 /* Named */;\n importAdder.addImportForNonExistentExport(symbolName2, targetFileName, exportKind, symbol.flags, isValidTypeOnlyUseSite);\n }\n}\nfunction makeVariableStatement(name, type, initializer, flags = 2 /* Const */) {\n return factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([factory.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n type,\n initializer\n )], flags)\n );\n}\nfunction addExports(sourceFile, toMove, needExport, useEs6Exports) {\n return flatMap(toMove, (statement) => {\n if (isTopLevelDeclarationStatement(statement) && !isExported(sourceFile, statement, useEs6Exports) && forEachTopLevelDeclaration(statement, (d) => {\n var _a;\n return needExport.includes(Debug.checkDefined((_a = tryCast(d, canHaveSymbol)) == null ? void 0 : _a.symbol));\n })) {\n const exports2 = addExport(getSynthesizedDeepClone(statement), useEs6Exports);\n if (exports2) return exports2;\n }\n return getSynthesizedDeepClone(statement);\n });\n}\nfunction isExported(sourceFile, decl, useEs6Exports, name) {\n var _a;\n if (useEs6Exports) {\n return !isExpressionStatement(decl) && hasSyntacticModifier(decl, 32 /* Export */) || !!(name && sourceFile.symbol && ((_a = sourceFile.symbol.exports) == null ? void 0 : _a.has(name.escapedText)));\n }\n return !!sourceFile.symbol && !!sourceFile.symbol.exports && getNamesToExportInCommonJS(decl).some((name2) => sourceFile.symbol.exports.has(escapeLeadingUnderscores(name2)));\n}\nfunction deleteUnusedImports(sourceFile, importDecl, changes, isUnused) {\n if (importDecl.kind === 273 /* ImportDeclaration */ && importDecl.importClause) {\n const { name, namedBindings } = importDecl.importClause;\n if ((!name || isUnused(name)) && (!namedBindings || namedBindings.kind === 276 /* NamedImports */ && namedBindings.elements.length !== 0 && namedBindings.elements.every((e) => isUnused(e.name)))) {\n return changes.delete(sourceFile, importDecl);\n }\n }\n forEachAliasDeclarationInImportOrRequire(importDecl, (i) => {\n if (i.name && isIdentifier(i.name) && isUnused(i.name)) {\n changes.delete(sourceFile, i);\n }\n });\n}\nfunction isTopLevelDeclarationStatement(node) {\n Debug.assert(isSourceFile(node.parent), \"Node parent should be a SourceFile\");\n return isNonVariableTopLevelDeclaration(node) || isVariableStatement(node);\n}\nfunction addExport(decl, useEs6Exports) {\n return useEs6Exports ? [addEs6Export(decl)] : addCommonjsExport(decl);\n}\nfunction addEs6Export(d) {\n const modifiers = canHaveModifiers(d) ? concatenate([factory.createModifier(95 /* ExportKeyword */)], getModifiers(d)) : void 0;\n switch (d.kind) {\n case 263 /* FunctionDeclaration */:\n return factory.updateFunctionDeclaration(d, modifiers, d.asteriskToken, d.name, d.typeParameters, d.parameters, d.type, d.body);\n case 264 /* ClassDeclaration */:\n const decorators = canHaveDecorators(d) ? getDecorators(d) : void 0;\n return factory.updateClassDeclaration(d, concatenate(decorators, modifiers), d.name, d.typeParameters, d.heritageClauses, d.members);\n case 244 /* VariableStatement */:\n return factory.updateVariableStatement(d, modifiers, d.declarationList);\n case 268 /* ModuleDeclaration */:\n return factory.updateModuleDeclaration(d, modifiers, d.name, d.body);\n case 267 /* EnumDeclaration */:\n return factory.updateEnumDeclaration(d, modifiers, d.name, d.members);\n case 266 /* TypeAliasDeclaration */:\n return factory.updateTypeAliasDeclaration(d, modifiers, d.name, d.typeParameters, d.type);\n case 265 /* InterfaceDeclaration */:\n return factory.updateInterfaceDeclaration(d, modifiers, d.name, d.typeParameters, d.heritageClauses, d.members);\n case 272 /* ImportEqualsDeclaration */:\n return factory.updateImportEqualsDeclaration(d, modifiers, d.isTypeOnly, d.name, d.moduleReference);\n case 245 /* ExpressionStatement */:\n return Debug.fail();\n default:\n return Debug.assertNever(d, `Unexpected declaration kind ${d.kind}`);\n }\n}\nfunction addCommonjsExport(decl) {\n return [decl, ...getNamesToExportInCommonJS(decl).map(createExportAssignment)];\n}\nfunction createExportAssignment(name) {\n return factory.createExpressionStatement(\n factory.createBinaryExpression(\n factory.createPropertyAccessExpression(factory.createIdentifier(\"exports\"), factory.createIdentifier(name)),\n 64 /* EqualsToken */,\n factory.createIdentifier(name)\n )\n );\n}\nfunction getNamesToExportInCommonJS(decl) {\n switch (decl.kind) {\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n return [decl.name.text];\n // TODO: GH#18217\n case 244 /* VariableStatement */:\n return mapDefined(decl.declarationList.declarations, (d) => isIdentifier(d.name) ? d.name.text : void 0);\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n return emptyArray;\n case 245 /* ExpressionStatement */:\n return Debug.fail(\"Can't export an ExpressionStatement\");\n default:\n return Debug.assertNever(decl, `Unexpected decl kind ${decl.kind}`);\n }\n}\nfunction filterImport(i, moduleSpecifier, keep) {\n switch (i.kind) {\n case 273 /* ImportDeclaration */: {\n const clause = i.importClause;\n if (!clause) return void 0;\n const defaultImport = clause.name && keep(clause.name) ? clause.name : void 0;\n const namedBindings = clause.namedBindings && filterNamedBindings(clause.namedBindings, keep);\n return defaultImport || namedBindings ? factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(clause.phaseModifier, defaultImport, namedBindings),\n getSynthesizedDeepClone(moduleSpecifier),\n /*attributes*/\n void 0\n ) : void 0;\n }\n case 272 /* ImportEqualsDeclaration */:\n return keep(i.name) ? i : void 0;\n case 261 /* VariableDeclaration */: {\n const name = filterBindingName(i.name, keep);\n return name ? makeVariableStatement(name, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : void 0;\n }\n default:\n return Debug.assertNever(i, `Unexpected import kind ${i.kind}`);\n }\n}\nfunction filterNamedBindings(namedBindings, keep) {\n if (namedBindings.kind === 275 /* NamespaceImport */) {\n return keep(namedBindings.name) ? namedBindings : void 0;\n } else {\n const newElements = namedBindings.elements.filter((e) => keep(e.name));\n return newElements.length ? factory.createNamedImports(newElements) : void 0;\n }\n}\nfunction filterBindingName(name, keep) {\n switch (name.kind) {\n case 80 /* Identifier */:\n return keep(name) ? name : void 0;\n case 208 /* ArrayBindingPattern */:\n return name;\n case 207 /* ObjectBindingPattern */: {\n const newElements = name.elements.filter((prop) => prop.propertyName || !isIdentifier(prop.name) || keep(prop.name));\n return newElements.length ? factory.createObjectBindingPattern(newElements) : void 0;\n }\n }\n}\nfunction nameOfTopLevelDeclaration(d) {\n return isExpressionStatement(d) ? tryCast(d.expression.left.name, isIdentifier) : tryCast(d.name, isIdentifier);\n}\nfunction getTopLevelDeclarationStatement(d) {\n switch (d.kind) {\n case 261 /* VariableDeclaration */:\n return d.parent.parent;\n case 209 /* BindingElement */:\n return getTopLevelDeclarationStatement(\n cast(d.parent.parent, (p) => isVariableDeclaration(p) || isBindingElement(p))\n );\n default:\n return d;\n }\n}\nfunction addExportToChanges(sourceFile, decl, name, changes, useEs6Exports) {\n if (isExported(sourceFile, decl, useEs6Exports, name)) return;\n if (useEs6Exports) {\n if (!isExpressionStatement(decl)) changes.insertExportModifier(sourceFile, decl);\n } else {\n const names = getNamesToExportInCommonJS(decl);\n if (names.length !== 0) changes.insertNodesAfter(sourceFile, decl, names.map(createExportAssignment));\n }\n}\nfunction createNewFileName(oldFile, program, host, toMove) {\n const checker = program.getTypeChecker();\n if (toMove) {\n const usage = getUsageInfo(oldFile, toMove.all, checker);\n const currentDirectory = getDirectoryPath(oldFile.fileName);\n const extension = extensionFromPath(oldFile.fileName);\n const newFileName = combinePaths(\n // new file is always placed in the same directory as the old file\n currentDirectory,\n // ensures the filename computed below isn't already taken\n makeUniqueFilename(\n // infers a name for the new file from the symbols being moved\n inferNewFileName(usage.oldFileImportsFromTargetFile, usage.movedSymbols),\n extension,\n currentDirectory,\n host\n )\n ) + extension;\n return newFileName;\n }\n return \"\";\n}\nfunction getRangeToMove(context) {\n const { file } = context;\n const range = createTextRangeFromSpan(getRefactorContextSpan(context));\n const { statements } = file;\n let startNodeIndex = findIndex(statements, (s) => s.end > range.pos);\n if (startNodeIndex === -1) return void 0;\n const startStatement = statements[startNodeIndex];\n const overloadRangeToMove = getOverloadRangeToMove(file, startStatement);\n if (overloadRangeToMove) {\n startNodeIndex = overloadRangeToMove.start;\n }\n let endNodeIndex = findIndex(statements, (s) => s.end >= range.end, startNodeIndex);\n if (endNodeIndex !== -1 && range.end <= statements[endNodeIndex].getStart()) {\n endNodeIndex--;\n }\n const endingOverloadRangeToMove = getOverloadRangeToMove(file, statements[endNodeIndex]);\n if (endingOverloadRangeToMove) {\n endNodeIndex = endingOverloadRangeToMove.end;\n }\n return {\n toMove: statements.slice(startNodeIndex, endNodeIndex === -1 ? statements.length : endNodeIndex + 1),\n afterLast: endNodeIndex === -1 ? void 0 : statements[endNodeIndex + 1]\n };\n}\nfunction getStatementsToMove(context) {\n const rangeToMove = getRangeToMove(context);\n if (rangeToMove === void 0) return void 0;\n const all = [];\n const ranges = [];\n const { toMove, afterLast } = rangeToMove;\n getRangesWhere(toMove, isAllowedStatementToMove, (start, afterEndIndex) => {\n for (let i = start; i < afterEndIndex; i++) all.push(toMove[i]);\n ranges.push({ first: toMove[start], afterLast });\n });\n return all.length === 0 ? void 0 : { all, ranges };\n}\nfunction containsJsx(statements) {\n return find(statements, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));\n}\nfunction isAllowedStatementToMove(statement) {\n return !isPureImport(statement) && !isPrologueDirective(statement);\n}\nfunction isPureImport(node) {\n switch (node.kind) {\n case 273 /* ImportDeclaration */:\n return true;\n case 272 /* ImportEqualsDeclaration */:\n return !hasSyntacticModifier(node, 32 /* Export */);\n case 244 /* VariableStatement */:\n return node.declarationList.declarations.every((d) => !!d.initializer && isRequireCall(\n d.initializer,\n /*requireStringLiteralLikeArgument*/\n true\n ));\n default:\n return false;\n }\n}\nfunction getUsageInfo(oldFile, toMove, checker, existingTargetLocals = /* @__PURE__ */ new Set(), enclosingRange) {\n var _a;\n const movedSymbols = /* @__PURE__ */ new Set();\n const oldImportsNeededByTargetFile = /* @__PURE__ */ new Map();\n const targetFileImportsFromOldFile = /* @__PURE__ */ new Map();\n const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx(toMove));\n if (jsxNamespaceSymbol) {\n oldImportsNeededByTargetFile.set(jsxNamespaceSymbol, [false, tryCast((_a = jsxNamespaceSymbol.declarations) == null ? void 0 : _a[0], (d) => isImportSpecifier(d) || isImportClause(d) || isNamespaceImport(d) || isImportEqualsDeclaration(d) || isBindingElement(d) || isVariableDeclaration(d))]);\n }\n for (const statement of toMove) {\n forEachTopLevelDeclaration(statement, (decl) => {\n movedSymbols.add(Debug.checkDefined(isExpressionStatement(decl) ? checker.getSymbolAtLocation(decl.expression.left) : decl.symbol, \"Need a symbol here\"));\n });\n }\n const unusedImportsFromOldFile = /* @__PURE__ */ new Set();\n for (const statement of toMove) {\n forEachReference(statement, checker, enclosingRange, (symbol, isValidTypeOnlyUseSite) => {\n if (!some(symbol.declarations)) {\n return;\n }\n if (existingTargetLocals.has(skipAlias(symbol, checker))) {\n unusedImportsFromOldFile.add(symbol);\n return;\n }\n const importedDeclaration = find(symbol.declarations, isInImport);\n if (importedDeclaration) {\n const prevIsTypeOnly = oldImportsNeededByTargetFile.get(symbol);\n oldImportsNeededByTargetFile.set(symbol, [\n prevIsTypeOnly === void 0 ? isValidTypeOnlyUseSite : prevIsTypeOnly && isValidTypeOnlyUseSite,\n tryCast(importedDeclaration, (d) => isImportSpecifier(d) || isImportClause(d) || isNamespaceImport(d) || isImportEqualsDeclaration(d) || isBindingElement(d) || isVariableDeclaration(d))\n ]);\n } else if (!movedSymbols.has(symbol) && every(symbol.declarations, (decl) => isTopLevelDeclaration(decl) && sourceFileOfTopLevelDeclaration(decl) === oldFile)) {\n targetFileImportsFromOldFile.set(symbol, isValidTypeOnlyUseSite);\n }\n });\n }\n for (const unusedImport of oldImportsNeededByTargetFile.keys()) {\n unusedImportsFromOldFile.add(unusedImport);\n }\n const oldFileImportsFromTargetFile = /* @__PURE__ */ new Map();\n for (const statement of oldFile.statements) {\n if (contains(toMove, statement)) continue;\n if (jsxNamespaceSymbol && !!(statement.transformFlags & 2 /* ContainsJsx */)) {\n unusedImportsFromOldFile.delete(jsxNamespaceSymbol);\n }\n forEachReference(statement, checker, enclosingRange, (symbol, isValidTypeOnlyUseSite) => {\n if (movedSymbols.has(symbol)) oldFileImportsFromTargetFile.set(symbol, isValidTypeOnlyUseSite);\n unusedImportsFromOldFile.delete(symbol);\n });\n }\n return { movedSymbols, targetFileImportsFromOldFile, oldFileImportsFromTargetFile, oldImportsNeededByTargetFile, unusedImportsFromOldFile };\n function getJsxNamespaceSymbol(containsJsx2) {\n if (containsJsx2 === void 0) {\n return void 0;\n }\n const jsxNamespace = checker.getJsxNamespace(containsJsx2);\n const jsxNamespaceSymbol2 = checker.resolveName(\n jsxNamespace,\n containsJsx2,\n 1920 /* Namespace */,\n /*excludeGlobals*/\n true\n );\n return !!jsxNamespaceSymbol2 && some(jsxNamespaceSymbol2.declarations, isInImport) ? jsxNamespaceSymbol2 : void 0;\n }\n}\nfunction makeUniqueFilename(proposedFilename, extension, inDirectory, host) {\n let newFilename = proposedFilename;\n for (let i = 1; ; i++) {\n const name = combinePaths(inDirectory, newFilename + extension);\n if (!host.fileExists(name)) return newFilename;\n newFilename = `${proposedFilename}.${i}`;\n }\n}\nfunction inferNewFileName(importsFromNewFile, movedSymbols) {\n return forEachKey(importsFromNewFile, symbolNameNoDefault) || forEachKey(movedSymbols, symbolNameNoDefault) || \"newFile\";\n}\nfunction forEachReference(node, checker, enclosingRange, onReference) {\n node.forEachChild(function cb(node2) {\n if (isIdentifier(node2) && !isDeclarationName(node2)) {\n if (enclosingRange && !rangeContainsRange(enclosingRange, node2)) {\n return;\n }\n const sym = checker.getSymbolAtLocation(node2);\n if (sym) onReference(sym, isValidTypeOnlyAliasUseSite(node2));\n } else {\n node2.forEachChild(cb);\n }\n });\n}\nfunction forEachTopLevelDeclaration(statement, cb) {\n switch (statement.kind) {\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n return cb(statement);\n case 244 /* VariableStatement */:\n return firstDefined(statement.declarationList.declarations, (decl) => forEachTopLevelDeclarationInBindingName(decl.name, cb));\n case 245 /* ExpressionStatement */: {\n const { expression } = statement;\n return isBinaryExpression(expression) && getAssignmentDeclarationKind(expression) === 1 /* ExportsProperty */ ? cb(statement) : void 0;\n }\n }\n}\nfunction isInImport(decl) {\n switch (decl.kind) {\n case 272 /* ImportEqualsDeclaration */:\n case 277 /* ImportSpecifier */:\n case 274 /* ImportClause */:\n case 275 /* NamespaceImport */:\n return true;\n case 261 /* VariableDeclaration */:\n return isVariableDeclarationInImport(decl);\n case 209 /* BindingElement */:\n return isVariableDeclaration(decl.parent.parent) && isVariableDeclarationInImport(decl.parent.parent);\n default:\n return false;\n }\n}\nfunction isVariableDeclarationInImport(decl) {\n return isSourceFile(decl.parent.parent.parent) && !!decl.initializer && isRequireCall(\n decl.initializer,\n /*requireStringLiteralLikeArgument*/\n true\n );\n}\nfunction isTopLevelDeclaration(node) {\n return isNonVariableTopLevelDeclaration(node) && isSourceFile(node.parent) || isVariableDeclaration(node) && isSourceFile(node.parent.parent.parent);\n}\nfunction sourceFileOfTopLevelDeclaration(node) {\n return isVariableDeclaration(node) ? node.parent.parent.parent : node.parent;\n}\nfunction forEachTopLevelDeclarationInBindingName(name, cb) {\n switch (name.kind) {\n case 80 /* Identifier */:\n return cb(cast(name.parent, (x) => isVariableDeclaration(x) || isBindingElement(x)));\n case 208 /* ArrayBindingPattern */:\n case 207 /* ObjectBindingPattern */:\n return firstDefined(name.elements, (em) => isOmittedExpression(em) ? void 0 : forEachTopLevelDeclarationInBindingName(em.name, cb));\n default:\n return Debug.assertNever(name, `Unexpected name kind ${name.kind}`);\n }\n}\nfunction isNonVariableTopLevelDeclaration(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction moveStatementsToTargetFile(changes, program, statements, targetFile, toMove) {\n var _a;\n const removedExports = /* @__PURE__ */ new Set();\n const targetExports = (_a = targetFile.symbol) == null ? void 0 : _a.exports;\n if (targetExports) {\n const checker = program.getTypeChecker();\n const targetToSourceExports = /* @__PURE__ */ new Map();\n for (const node of toMove.all) {\n if (isTopLevelDeclarationStatement(node) && hasSyntacticModifier(node, 32 /* Export */)) {\n forEachTopLevelDeclaration(node, (declaration) => {\n var _a2;\n const targetDeclarations = canHaveSymbol(declaration) ? (_a2 = targetExports.get(declaration.symbol.escapedName)) == null ? void 0 : _a2.declarations : void 0;\n const exportDeclaration = firstDefined(targetDeclarations, (d) => isExportDeclaration(d) ? d : isExportSpecifier(d) ? tryCast(d.parent.parent, isExportDeclaration) : void 0);\n if (exportDeclaration && exportDeclaration.moduleSpecifier) {\n targetToSourceExports.set(exportDeclaration, (targetToSourceExports.get(exportDeclaration) || /* @__PURE__ */ new Set()).add(declaration));\n }\n });\n }\n }\n for (const [exportDeclaration, topLevelDeclarations] of arrayFrom(targetToSourceExports)) {\n if (exportDeclaration.exportClause && isNamedExports(exportDeclaration.exportClause) && length(exportDeclaration.exportClause.elements)) {\n const elements = exportDeclaration.exportClause.elements;\n const updatedElements = filter(elements, (elem) => find(skipAlias(elem.symbol, checker).declarations, (d) => isTopLevelDeclaration(d) && topLevelDeclarations.has(d)) === void 0);\n if (length(updatedElements) === 0) {\n changes.deleteNode(targetFile, exportDeclaration);\n removedExports.add(exportDeclaration);\n continue;\n }\n if (length(updatedElements) < length(elements)) {\n changes.replaceNode(targetFile, exportDeclaration, factory.updateExportDeclaration(exportDeclaration, exportDeclaration.modifiers, exportDeclaration.isTypeOnly, factory.updateNamedExports(exportDeclaration.exportClause, factory.createNodeArray(updatedElements, elements.hasTrailingComma)), exportDeclaration.moduleSpecifier, exportDeclaration.attributes));\n }\n }\n }\n }\n const lastReExport = findLast(targetFile.statements, (n) => isExportDeclaration(n) && !!n.moduleSpecifier && !removedExports.has(n));\n if (lastReExport) {\n changes.insertNodesBefore(\n targetFile,\n lastReExport,\n statements,\n /*blankLineBetween*/\n true\n );\n } else {\n changes.insertNodesAfter(targetFile, targetFile.statements[targetFile.statements.length - 1], statements);\n }\n}\nfunction getOverloadRangeToMove(sourceFile, statement) {\n if (isFunctionLikeDeclaration(statement)) {\n const declarations = statement.symbol.declarations;\n if (declarations === void 0 || length(declarations) <= 1 || !contains(declarations, statement)) {\n return void 0;\n }\n const firstDecl = declarations[0];\n const lastDecl = declarations[length(declarations) - 1];\n const statementsToMove = mapDefined(declarations, (d) => getSourceFileOfNode(d) === sourceFile && isStatement(d) ? d : void 0);\n const end = findIndex(sourceFile.statements, (s) => s.end >= lastDecl.end);\n const start = findIndex(sourceFile.statements, (s) => s.end >= firstDecl.end);\n return { toMove: statementsToMove, start, end };\n }\n return void 0;\n}\nfunction getExistingLocals(sourceFile, statements, checker) {\n const existingLocals = /* @__PURE__ */ new Set();\n for (const moduleSpecifier of sourceFile.imports) {\n const declaration = importFromModuleSpecifier(moduleSpecifier);\n if (isImportDeclaration(declaration) && declaration.importClause && declaration.importClause.namedBindings && isNamedImports(declaration.importClause.namedBindings)) {\n for (const e of declaration.importClause.namedBindings.elements) {\n const symbol = checker.getSymbolAtLocation(e.propertyName || e.name);\n if (symbol) {\n existingLocals.add(skipAlias(symbol, checker));\n }\n }\n }\n if (isVariableDeclarationInitializedToRequire(declaration.parent) && isObjectBindingPattern(declaration.parent.name)) {\n for (const e of declaration.parent.name.elements) {\n const symbol = checker.getSymbolAtLocation(e.propertyName || e.name);\n if (symbol) {\n existingLocals.add(skipAlias(symbol, checker));\n }\n }\n }\n }\n for (const statement of statements) {\n forEachReference(\n statement,\n checker,\n /*enclosingRange*/\n void 0,\n (s) => {\n const symbol = skipAlias(s, checker);\n if (symbol.valueDeclaration && getSourceFileOfNode(symbol.valueDeclaration).path === sourceFile.path) {\n existingLocals.add(symbol);\n }\n }\n );\n }\n return existingLocals;\n}\n\n// src/services/refactors/helpers.ts\nfunction isRefactorErrorInfo(info) {\n return info.error !== void 0;\n}\nfunction refactorKindBeginsWith(known, requested) {\n if (!requested) return true;\n return known.substr(0, requested.length) === requested;\n}\nfunction getIdentifierForNode(node, scope, checker, file) {\n return isPropertyAccessExpression(node) && !isClassLike(scope) && !checker.resolveName(\n node.name.text,\n node,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n ) && !isPrivateIdentifier(node.name) && !identifierToKeywordKind(node.name) ? node.name.text : getUniqueName(isClassLike(scope) ? \"newProperty\" : \"newLocal\", file);\n}\nfunction addTargetFileImports(oldFile, importsToCopy, targetFileImportsFromOldFile, checker, program, importAdder) {\n importsToCopy.forEach(([isValidTypeOnlyUseSite, declaration], symbol) => {\n var _a;\n const targetSymbol = skipAlias(symbol, checker);\n if (checker.isUnknownSymbol(targetSymbol)) {\n importAdder.addVerbatimImport(Debug.checkDefined(declaration ?? findAncestor((_a = symbol.declarations) == null ? void 0 : _a[0], isAnyImportOrRequireStatement)));\n } else if (targetSymbol.parent === void 0) {\n Debug.assert(declaration !== void 0, \"expected module symbol to have a declaration\");\n importAdder.addImportForModuleSymbol(symbol, isValidTypeOnlyUseSite, declaration);\n } else {\n importAdder.addImportFromExportedSymbol(targetSymbol, isValidTypeOnlyUseSite, declaration);\n }\n });\n addImportsForMovedSymbols(targetFileImportsFromOldFile, oldFile.fileName, importAdder, program);\n}\n\n// src/services/refactors/inlineVariable.ts\nvar refactorName4 = \"Inline variable\";\nvar refactorDescription = getLocaleSpecificMessage(Diagnostics.Inline_variable);\nvar inlineVariableAction = {\n name: refactorName4,\n description: refactorDescription,\n kind: \"refactor.inline.variable\"\n};\nregisterRefactor(refactorName4, {\n kinds: [inlineVariableAction.kind],\n getAvailableActions(context) {\n const {\n file,\n program,\n preferences,\n startPosition,\n triggerReason\n } = context;\n const info = getInliningInfo(file, startPosition, triggerReason === \"invoked\", program);\n if (!info) {\n return emptyArray;\n }\n if (!ts_refactor_exports.isRefactorErrorInfo(info)) {\n return [{\n name: refactorName4,\n description: refactorDescription,\n actions: [inlineVariableAction]\n }];\n }\n if (preferences.provideRefactorNotApplicableReason) {\n return [{\n name: refactorName4,\n description: refactorDescription,\n actions: [{\n ...inlineVariableAction,\n notApplicableReason: info.error\n }]\n }];\n }\n return emptyArray;\n },\n getEditsForAction(context, actionName2) {\n Debug.assert(actionName2 === refactorName4, \"Unexpected refactor invoked\");\n const { file, program, startPosition } = context;\n const info = getInliningInfo(\n file,\n startPosition,\n /*tryWithReferenceToken*/\n true,\n program\n );\n if (!info || ts_refactor_exports.isRefactorErrorInfo(info)) {\n return void 0;\n }\n const { references, declaration, replacement } = info;\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n for (const node of references) {\n const closestStringIdentifierParent = isStringLiteral(replacement) && isIdentifier(node) && walkUpParenthesizedExpressions(node.parent);\n if (closestStringIdentifierParent && isTemplateSpan(closestStringIdentifierParent) && !isTaggedTemplateExpression(closestStringIdentifierParent.parent.parent)) {\n replaceTemplateStringVariableWithLiteral(tracker, file, closestStringIdentifierParent, replacement);\n } else {\n tracker.replaceNode(file, node, getReplacementExpression(node, replacement));\n }\n }\n tracker.delete(file, declaration);\n });\n return { edits };\n }\n});\nfunction getInliningInfo(file, startPosition, tryWithReferenceToken, program) {\n var _a, _b;\n const checker = program.getTypeChecker();\n const token = getTouchingPropertyName(file, startPosition);\n const parent2 = token.parent;\n if (!isIdentifier(token)) {\n return void 0;\n }\n if (isInitializedVariable(parent2) && isVariableDeclarationInVariableStatement(parent2) && isIdentifier(parent2.name)) {\n if (((_a = checker.getMergedSymbol(parent2.symbol).declarations) == null ? void 0 : _a.length) !== 1) {\n return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) };\n }\n if (isDeclarationExported(parent2)) {\n return void 0;\n }\n const references = getReferenceNodes(parent2, checker, file);\n return references && { references, declaration: parent2, replacement: parent2.initializer };\n }\n if (tryWithReferenceToken) {\n let definition = checker.resolveName(\n token.text,\n token,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n definition = definition && checker.getMergedSymbol(definition);\n if (((_b = definition == null ? void 0 : definition.declarations) == null ? void 0 : _b.length) !== 1) {\n return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) };\n }\n const declaration = definition.declarations[0];\n if (!isInitializedVariable(declaration) || !isVariableDeclarationInVariableStatement(declaration) || !isIdentifier(declaration.name)) {\n return void 0;\n }\n if (isDeclarationExported(declaration)) {\n return void 0;\n }\n const references = getReferenceNodes(declaration, checker, file);\n return references && { references, declaration, replacement: declaration.initializer };\n }\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_variable_to_inline) };\n}\nfunction isDeclarationExported(declaration) {\n const variableStatement = cast(declaration.parent.parent, isVariableStatement);\n return some(variableStatement.modifiers, isExportModifier);\n}\nfunction getReferenceNodes(declaration, checker, file) {\n const references = [];\n const cannotInline = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(declaration.name, checker, file, (ref) => {\n if (ts_FindAllReferences_exports.isWriteAccessForReference(ref) && !isShorthandPropertyAssignment(ref.parent)) {\n return true;\n }\n if (isExportSpecifier(ref.parent) || isExportAssignment(ref.parent)) {\n return true;\n }\n if (isTypeQueryNode(ref.parent)) {\n return true;\n }\n if (textRangeContainsPositionInclusive(declaration, ref.pos)) {\n return true;\n }\n references.push(ref);\n });\n return references.length === 0 || cannotInline ? void 0 : references;\n}\nfunction getReplacementExpression(reference, replacement) {\n replacement = getSynthesizedDeepClone(replacement);\n const { parent: parent2 } = reference;\n if (isExpression(parent2) && (getExpressionPrecedence(replacement) < getExpressionPrecedence(parent2) || needsParentheses(parent2))) {\n return factory.createParenthesizedExpression(replacement);\n }\n if (isFunctionLike(replacement) && (isCallLikeExpression(parent2) || isPropertyAccessExpression(parent2))) {\n return factory.createParenthesizedExpression(replacement);\n }\n if (isPropertyAccessExpression(parent2) && (isNumericLiteral(replacement) || isObjectLiteralExpression(replacement))) {\n return factory.createParenthesizedExpression(replacement);\n }\n if (isIdentifier(reference) && isShorthandPropertyAssignment(parent2)) {\n return factory.createPropertyAssignment(reference, replacement);\n }\n return replacement;\n}\nfunction replaceTemplateStringVariableWithLiteral(tracker, sourceFile, reference, replacement) {\n const templateExpression = reference.parent;\n const index = templateExpression.templateSpans.indexOf(reference);\n const prevNode = index === 0 ? templateExpression.head : templateExpression.templateSpans[index - 1];\n tracker.replaceRangeWithText(\n sourceFile,\n {\n pos: prevNode.getEnd() - 2,\n end: reference.literal.getStart() + 1\n },\n replacement.text.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\")\n );\n}\n\n// src/services/refactors/moveToNewFile.ts\nvar refactorName5 = \"Move to a new file\";\nvar description2 = getLocaleSpecificMessage(Diagnostics.Move_to_a_new_file);\nvar moveToNewFileAction = {\n name: refactorName5,\n description: description2,\n kind: \"refactor.move.newFile\"\n};\nregisterRefactor(refactorName5, {\n kinds: [moveToNewFileAction.kind],\n getAvailableActions: function getRefactorActionsToMoveToNewFile(context) {\n const statements = getStatementsToMove(context);\n const file = context.file;\n if (context.triggerReason === \"implicit\" && context.endPosition !== void 0) {\n const startNodeAncestor = findAncestor(getTokenAtPosition(file, context.startPosition), isBlockLike);\n const endNodeAncestor = findAncestor(getTokenAtPosition(file, context.endPosition), isBlockLike);\n if (startNodeAncestor && !isSourceFile(startNodeAncestor) && endNodeAncestor && !isSourceFile(endNodeAncestor)) {\n return emptyArray;\n }\n }\n if (context.preferences.allowTextChangesInNewFiles && statements) {\n const file2 = context.file;\n const affectedTextRange = {\n start: { line: getLineAndCharacterOfPosition(file2, statements.all[0].getStart(file2)).line, offset: getLineAndCharacterOfPosition(file2, statements.all[0].getStart(file2)).character },\n end: { line: getLineAndCharacterOfPosition(file2, last(statements.all).end).line, offset: getLineAndCharacterOfPosition(file2, last(statements.all).end).character }\n };\n return [{ name: refactorName5, description: description2, actions: [{ ...moveToNewFileAction, range: affectedTextRange }] }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{ name: refactorName5, description: description2, actions: [{ ...moveToNewFileAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) }] }];\n }\n return emptyArray;\n },\n getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName2) {\n Debug.assert(actionName2 === refactorName5, \"Wrong refactor invoked\");\n const statements = Debug.checkDefined(getStatementsToMove(context));\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange4(context.file, context.program, statements, t, context.host, context, context.preferences));\n return { edits, renameFilename: void 0, renameLocation: void 0 };\n }\n});\nfunction doChange4(oldFile, program, toMove, changes, host, context, preferences) {\n const checker = program.getTypeChecker();\n const usage = getUsageInfo(oldFile, toMove.all, checker);\n const newFilename = createNewFileName(oldFile, program, host, toMove);\n const newSourceFile = createFutureSourceFile(newFilename, oldFile.externalModuleIndicator ? 99 /* ESNext */ : oldFile.commonJsModuleIndicator ? 1 /* CommonJS */ : void 0, program, host);\n const importAdderForOldFile = ts_codefix_exports.createImportAdder(oldFile, context.program, context.preferences, context.host);\n const importAdderForNewFile = ts_codefix_exports.createImportAdder(newSourceFile, context.program, context.preferences, context.host);\n getNewStatementsAndRemoveFromOldFile(oldFile, newSourceFile, usage, changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile);\n addNewFileToTsconfig(program, changes, oldFile.fileName, newFilename, hostGetCanonicalFileName(host));\n}\n\n// src/services/_namespaces/ts.refactor.addOrRemoveBracesToArrowFunction.ts\nvar ts_refactor_addOrRemoveBracesToArrowFunction_exports = {};\n\n// src/services/refactors/convertOverloadListToSingleSignature.ts\nvar refactorName6 = \"Convert overload list to single signature\";\nvar refactorDescription2 = getLocaleSpecificMessage(Diagnostics.Convert_overload_list_to_single_signature);\nvar functionOverloadAction = {\n name: refactorName6,\n description: refactorDescription2,\n kind: \"refactor.rewrite.function.overloadList\"\n};\nregisterRefactor(refactorName6, {\n kinds: [functionOverloadAction.kind],\n getEditsForAction: getRefactorEditsToConvertOverloadsToOneSignature,\n getAvailableActions: getRefactorActionsToConvertOverloadsToOneSignature\n});\nfunction getRefactorActionsToConvertOverloadsToOneSignature(context) {\n const { file, startPosition, program } = context;\n const info = getConvertableOverloadListAtPosition(file, startPosition, program);\n if (!info) return emptyArray;\n return [{\n name: refactorName6,\n description: refactorDescription2,\n actions: [functionOverloadAction]\n }];\n}\nfunction getRefactorEditsToConvertOverloadsToOneSignature(context) {\n const { file, startPosition, program } = context;\n const signatureDecls = getConvertableOverloadListAtPosition(file, startPosition, program);\n if (!signatureDecls) return void 0;\n const checker = program.getTypeChecker();\n const lastDeclaration = signatureDecls[signatureDecls.length - 1];\n let updated = lastDeclaration;\n switch (lastDeclaration.kind) {\n case 174 /* MethodSignature */: {\n updated = factory.updateMethodSignature(\n lastDeclaration,\n lastDeclaration.modifiers,\n lastDeclaration.name,\n lastDeclaration.questionToken,\n lastDeclaration.typeParameters,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.type\n );\n break;\n }\n case 175 /* MethodDeclaration */: {\n updated = factory.updateMethodDeclaration(\n lastDeclaration,\n lastDeclaration.modifiers,\n lastDeclaration.asteriskToken,\n lastDeclaration.name,\n lastDeclaration.questionToken,\n lastDeclaration.typeParameters,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.type,\n lastDeclaration.body\n );\n break;\n }\n case 180 /* CallSignature */: {\n updated = factory.updateCallSignature(\n lastDeclaration,\n lastDeclaration.typeParameters,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.type\n );\n break;\n }\n case 177 /* Constructor */: {\n updated = factory.updateConstructorDeclaration(\n lastDeclaration,\n lastDeclaration.modifiers,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.body\n );\n break;\n }\n case 181 /* ConstructSignature */: {\n updated = factory.updateConstructSignature(\n lastDeclaration,\n lastDeclaration.typeParameters,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.type\n );\n break;\n }\n case 263 /* FunctionDeclaration */: {\n updated = factory.updateFunctionDeclaration(\n lastDeclaration,\n lastDeclaration.modifiers,\n lastDeclaration.asteriskToken,\n lastDeclaration.name,\n lastDeclaration.typeParameters,\n getNewParametersForCombinedSignature(signatureDecls),\n lastDeclaration.type,\n lastDeclaration.body\n );\n break;\n }\n default:\n return Debug.failBadSyntaxKind(lastDeclaration, \"Unhandled signature kind in overload list conversion refactoring\");\n }\n if (updated === lastDeclaration) {\n return;\n }\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n t.replaceNodeRange(file, signatureDecls[0], signatureDecls[signatureDecls.length - 1], updated);\n });\n return { renameFilename: void 0, renameLocation: void 0, edits };\n function getNewParametersForCombinedSignature(signatureDeclarations) {\n const lastSig = signatureDeclarations[signatureDeclarations.length - 1];\n if (isFunctionLikeDeclaration(lastSig) && lastSig.body) {\n signatureDeclarations = signatureDeclarations.slice(0, signatureDeclarations.length - 1);\n }\n return factory.createNodeArray([\n factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n factory.createToken(26 /* DotDotDotToken */),\n \"args\",\n /*questionToken*/\n void 0,\n factory.createUnionTypeNode(map(signatureDeclarations, convertSignatureParametersToTuple))\n )\n ]);\n }\n function convertSignatureParametersToTuple(decl) {\n const members = map(decl.parameters, convertParameterToNamedTupleMember);\n return setEmitFlags(factory.createTupleTypeNode(members), some(members, (m) => !!length(getSyntheticLeadingComments(m))) ? 0 /* None */ : 1 /* SingleLine */);\n }\n function convertParameterToNamedTupleMember(p) {\n Debug.assert(isIdentifier(p.name));\n const result = setTextRange(\n factory.createNamedTupleMember(\n p.dotDotDotToken,\n p.name,\n p.questionToken,\n p.type || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n ),\n p\n );\n const parameterDocComment = p.symbol && p.symbol.getDocumentationComment(checker);\n if (parameterDocComment) {\n const newComment = displayPartsToString(parameterDocComment);\n if (newComment.length) {\n setSyntheticLeadingComments(result, [{\n text: `*\n${newComment.split(\"\\n\").map((c) => ` * ${c}`).join(\"\\n\")}\n `,\n kind: 3 /* MultiLineCommentTrivia */,\n pos: -1,\n end: -1,\n hasTrailingNewLine: true,\n hasLeadingNewline: true\n }]);\n }\n }\n return result;\n }\n}\nfunction isConvertableSignatureDeclaration(d) {\n switch (d.kind) {\n case 174 /* MethodSignature */:\n case 175 /* MethodDeclaration */:\n case 180 /* CallSignature */:\n case 177 /* Constructor */:\n case 181 /* ConstructSignature */:\n case 263 /* FunctionDeclaration */:\n return true;\n }\n return false;\n}\nfunction getConvertableOverloadListAtPosition(file, startPosition, program) {\n const node = getTokenAtPosition(file, startPosition);\n const containingDecl = findAncestor(node, isConvertableSignatureDeclaration);\n if (!containingDecl) {\n return;\n }\n if (isFunctionLikeDeclaration(containingDecl) && containingDecl.body && rangeContainsPosition(containingDecl.body, startPosition)) {\n return;\n }\n const checker = program.getTypeChecker();\n const signatureSymbol = containingDecl.symbol;\n if (!signatureSymbol) {\n return;\n }\n const decls = signatureSymbol.declarations;\n if (length(decls) <= 1) {\n return;\n }\n if (!every(decls, (d) => getSourceFileOfNode(d) === file)) {\n return;\n }\n if (!isConvertableSignatureDeclaration(decls[0])) {\n return;\n }\n const kindOne = decls[0].kind;\n if (!every(decls, (d) => d.kind === kindOne)) {\n return;\n }\n const signatureDecls = decls;\n if (some(signatureDecls, (d) => !!d.typeParameters || some(d.parameters, (p) => !!p.modifiers || !isIdentifier(p.name)))) {\n return;\n }\n const signatures = mapDefined(signatureDecls, (d) => checker.getSignatureFromDeclaration(d));\n if (length(signatures) !== length(decls)) {\n return;\n }\n const returnOne = checker.getReturnTypeOfSignature(signatures[0]);\n if (!every(signatures, (s) => checker.getReturnTypeOfSignature(s) === returnOne)) {\n return;\n }\n return signatureDecls;\n}\n\n// src/services/refactors/addOrRemoveBracesToArrowFunction.ts\nvar refactorName7 = \"Add or remove braces in an arrow function\";\nvar refactorDescription3 = getLocaleSpecificMessage(Diagnostics.Add_or_remove_braces_in_an_arrow_function);\nvar addBracesAction = {\n name: \"Add braces to arrow function\",\n description: getLocaleSpecificMessage(Diagnostics.Add_braces_to_arrow_function),\n kind: \"refactor.rewrite.arrow.braces.add\"\n};\nvar removeBracesAction = {\n name: \"Remove braces from arrow function\",\n description: getLocaleSpecificMessage(Diagnostics.Remove_braces_from_arrow_function),\n kind: \"refactor.rewrite.arrow.braces.remove\"\n};\nregisterRefactor(refactorName7, {\n kinds: [removeBracesAction.kind],\n getEditsForAction: getRefactorEditsToRemoveFunctionBraces,\n getAvailableActions: getRefactorActionsToRemoveFunctionBraces\n});\nfunction getRefactorActionsToRemoveFunctionBraces(context) {\n const { file, startPosition, triggerReason } = context;\n const info = getConvertibleArrowFunctionAtPosition(file, startPosition, triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n return [{\n name: refactorName7,\n description: refactorDescription3,\n actions: [\n info.addBraces ? addBracesAction : removeBracesAction\n ]\n }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{\n name: refactorName7,\n description: refactorDescription3,\n actions: [\n { ...addBracesAction, notApplicableReason: info.error },\n { ...removeBracesAction, notApplicableReason: info.error }\n ]\n }];\n }\n return emptyArray;\n}\nfunction getRefactorEditsToRemoveFunctionBraces(context, actionName2) {\n const { file, startPosition } = context;\n const info = getConvertibleArrowFunctionAtPosition(file, startPosition);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n const { expression, returnStatement, func } = info;\n let body;\n if (actionName2 === addBracesAction.name) {\n const returnStatement2 = factory.createReturnStatement(expression);\n body = factory.createBlock(\n [returnStatement2],\n /*multiLine*/\n true\n );\n copyLeadingComments(\n expression,\n returnStatement2,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n true\n );\n } else if (actionName2 === removeBracesAction.name && returnStatement) {\n const actualExpression = expression || factory.createVoidZero();\n body = needsParentheses(actualExpression) ? factory.createParenthesizedExpression(actualExpression) : actualExpression;\n copyTrailingAsLeadingComments(\n returnStatement,\n body,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n copyLeadingComments(\n returnStatement,\n body,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n copyTrailingComments(\n returnStatement,\n body,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n } else {\n Debug.fail(\"invalid action\");\n }\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n t.replaceNode(file, func.body, body);\n });\n return { renameFilename: void 0, renameLocation: void 0, edits };\n}\nfunction getConvertibleArrowFunctionAtPosition(file, startPosition, considerFunctionBodies = true, kind) {\n const node = getTokenAtPosition(file, startPosition);\n const func = getContainingFunction(node);\n if (!func) {\n return {\n error: getLocaleSpecificMessage(Diagnostics.Could_not_find_a_containing_arrow_function)\n };\n }\n if (!isArrowFunction(func)) {\n return {\n error: getLocaleSpecificMessage(Diagnostics.Containing_function_is_not_an_arrow_function)\n };\n }\n if (!rangeContainsRange(func, node) || rangeContainsRange(func.body, node) && !considerFunctionBodies) {\n return void 0;\n }\n if (refactorKindBeginsWith(addBracesAction.kind, kind) && isExpression(func.body)) {\n return { func, addBraces: true, expression: func.body };\n } else if (refactorKindBeginsWith(removeBracesAction.kind, kind) && isBlock(func.body) && func.body.statements.length === 1) {\n const firstStatement = first(func.body.statements);\n if (isReturnStatement(firstStatement)) {\n const expression = firstStatement.expression && isObjectLiteralExpression(getLeftmostExpression(\n firstStatement.expression,\n /*stopAtCallExpressions*/\n false\n )) ? factory.createParenthesizedExpression(firstStatement.expression) : firstStatement.expression;\n return { func, addBraces: false, expression, returnStatement: firstStatement };\n }\n }\n return void 0;\n}\n\n// src/services/_namespaces/ts.refactor.convertArrowFunctionOrFunctionExpression.ts\nvar ts_refactor_convertArrowFunctionOrFunctionExpression_exports = {};\n\n// src/services/refactors/convertArrowFunctionOrFunctionExpression.ts\nvar refactorName8 = \"Convert arrow function or function expression\";\nvar refactorDescription4 = getLocaleSpecificMessage(Diagnostics.Convert_arrow_function_or_function_expression);\nvar toAnonymousFunctionAction = {\n name: \"Convert to anonymous function\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_to_anonymous_function),\n kind: \"refactor.rewrite.function.anonymous\"\n};\nvar toNamedFunctionAction = {\n name: \"Convert to named function\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_to_named_function),\n kind: \"refactor.rewrite.function.named\"\n};\nvar toArrowFunctionAction = {\n name: \"Convert to arrow function\",\n description: getLocaleSpecificMessage(Diagnostics.Convert_to_arrow_function),\n kind: \"refactor.rewrite.function.arrow\"\n};\nregisterRefactor(refactorName8, {\n kinds: [\n toAnonymousFunctionAction.kind,\n toNamedFunctionAction.kind,\n toArrowFunctionAction.kind\n ],\n getEditsForAction: getRefactorEditsToConvertFunctionExpressions,\n getAvailableActions: getRefactorActionsToConvertFunctionExpressions\n});\nfunction getRefactorActionsToConvertFunctionExpressions(context) {\n const { file, startPosition, program, kind } = context;\n const info = getFunctionInfo(file, startPosition, program);\n if (!info) return emptyArray;\n const { selectedVariableDeclaration, func } = info;\n const possibleActions = [];\n const errors = [];\n if (refactorKindBeginsWith(toNamedFunctionAction.kind, kind)) {\n const error2 = selectedVariableDeclaration || isArrowFunction(func) && isVariableDeclaration(func.parent) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_named_function);\n if (error2) {\n errors.push({ ...toNamedFunctionAction, notApplicableReason: error2 });\n } else {\n possibleActions.push(toNamedFunctionAction);\n }\n }\n if (refactorKindBeginsWith(toAnonymousFunctionAction.kind, kind)) {\n const error2 = !selectedVariableDeclaration && isArrowFunction(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_anonymous_function);\n if (error2) {\n errors.push({ ...toAnonymousFunctionAction, notApplicableReason: error2 });\n } else {\n possibleActions.push(toAnonymousFunctionAction);\n }\n }\n if (refactorKindBeginsWith(toArrowFunctionAction.kind, kind)) {\n const error2 = isFunctionExpression(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_arrow_function);\n if (error2) {\n errors.push({ ...toArrowFunctionAction, notApplicableReason: error2 });\n } else {\n possibleActions.push(toArrowFunctionAction);\n }\n }\n return [{\n name: refactorName8,\n description: refactorDescription4,\n actions: possibleActions.length === 0 && context.preferences.provideRefactorNotApplicableReason ? errors : possibleActions\n }];\n}\nfunction getRefactorEditsToConvertFunctionExpressions(context, actionName2) {\n const { file, startPosition, program } = context;\n const info = getFunctionInfo(file, startPosition, program);\n if (!info) return void 0;\n const { func } = info;\n const edits = [];\n switch (actionName2) {\n case toAnonymousFunctionAction.name:\n edits.push(...getEditInfoForConvertToAnonymousFunction(context, func));\n break;\n case toNamedFunctionAction.name:\n const variableInfo = getVariableInfo(func);\n if (!variableInfo) return void 0;\n edits.push(...getEditInfoForConvertToNamedFunction(context, func, variableInfo));\n break;\n case toArrowFunctionAction.name:\n if (!isFunctionExpression(func)) return void 0;\n edits.push(...getEditInfoForConvertToArrowFunction(context, func));\n break;\n default:\n return Debug.fail(\"invalid action\");\n }\n return { renameFilename: void 0, renameLocation: void 0, edits };\n}\nfunction containingThis(node) {\n let containsThis = false;\n node.forEachChild(function checkThis(child) {\n if (isThis(child)) {\n containsThis = true;\n return;\n }\n if (!isClassLike(child) && !isFunctionDeclaration(child) && !isFunctionExpression(child)) {\n forEachChild(child, checkThis);\n }\n });\n return containsThis;\n}\nfunction getFunctionInfo(file, startPosition, program) {\n const token = getTokenAtPosition(file, startPosition);\n const typeChecker = program.getTypeChecker();\n const func = tryGetFunctionFromVariableDeclaration(file, typeChecker, token.parent);\n if (func && !containingThis(func.body) && !typeChecker.containsArgumentsReference(func)) {\n return { selectedVariableDeclaration: true, func };\n }\n const maybeFunc = getContainingFunction(token);\n if (maybeFunc && (isFunctionExpression(maybeFunc) || isArrowFunction(maybeFunc)) && !rangeContainsRange(maybeFunc.body, token) && !containingThis(maybeFunc.body) && !typeChecker.containsArgumentsReference(maybeFunc)) {\n if (isFunctionExpression(maybeFunc) && isFunctionReferencedInFile(file, typeChecker, maybeFunc)) return void 0;\n return { selectedVariableDeclaration: false, func: maybeFunc };\n }\n return void 0;\n}\nfunction isSingleVariableDeclaration(parent2) {\n return isVariableDeclaration(parent2) || isVariableDeclarationList(parent2) && parent2.declarations.length === 1;\n}\nfunction tryGetFunctionFromVariableDeclaration(sourceFile, typeChecker, parent2) {\n if (!isSingleVariableDeclaration(parent2)) {\n return void 0;\n }\n const variableDeclaration = isVariableDeclaration(parent2) ? parent2 : first(parent2.declarations);\n const initializer = variableDeclaration.initializer;\n if (initializer && (isArrowFunction(initializer) || isFunctionExpression(initializer) && !isFunctionReferencedInFile(sourceFile, typeChecker, initializer))) {\n return initializer;\n }\n return void 0;\n}\nfunction convertToBlock(body) {\n if (isExpression(body)) {\n const returnStatement = factory.createReturnStatement(body);\n const file = body.getSourceFile();\n setTextRange(returnStatement, body);\n suppressLeadingAndTrailingTrivia(returnStatement);\n copyTrailingAsLeadingComments(\n body,\n returnStatement,\n file,\n /*commentKind*/\n void 0,\n /*hasTrailingNewLine*/\n true\n );\n return factory.createBlock(\n [returnStatement],\n /*multiLine*/\n true\n );\n } else {\n return body;\n }\n}\nfunction getVariableInfo(func) {\n const variableDeclaration = func.parent;\n if (!isVariableDeclaration(variableDeclaration) || !isVariableDeclarationInVariableStatement(variableDeclaration)) return void 0;\n const variableDeclarationList = variableDeclaration.parent;\n const statement = variableDeclarationList.parent;\n if (!isVariableDeclarationList(variableDeclarationList) || !isVariableStatement(statement) || !isIdentifier(variableDeclaration.name)) return void 0;\n return { variableDeclaration, variableDeclarationList, statement, name: variableDeclaration.name };\n}\nfunction getEditInfoForConvertToAnonymousFunction(context, func) {\n const { file } = context;\n const body = convertToBlock(func.body);\n const newNode = factory.createFunctionExpression(\n func.modifiers,\n func.asteriskToken,\n /*name*/\n void 0,\n func.typeParameters,\n func.parameters,\n func.type,\n body\n );\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, func, newNode));\n}\nfunction getEditInfoForConvertToNamedFunction(context, func, variableInfo) {\n const { file } = context;\n const body = convertToBlock(func.body);\n const { variableDeclaration, variableDeclarationList, statement, name } = variableInfo;\n suppressLeadingTrivia(statement);\n const modifiersFlags = getCombinedModifierFlags(variableDeclaration) & 32 /* Export */ | getEffectiveModifierFlags(func);\n const modifiers = factory.createModifiersFromModifierFlags(modifiersFlags);\n const newNode = factory.createFunctionDeclaration(length(modifiers) ? modifiers : void 0, func.asteriskToken, name, func.typeParameters, func.parameters, func.type, body);\n if (variableDeclarationList.declarations.length === 1) {\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, statement, newNode));\n } else {\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n t.delete(file, variableDeclaration);\n t.insertNodeAfter(file, statement, newNode);\n });\n }\n}\nfunction getEditInfoForConvertToArrowFunction(context, func) {\n const { file } = context;\n const statements = func.body.statements;\n const head = statements[0];\n let body;\n if (canBeConvertedToExpression(func.body, head)) {\n body = head.expression;\n suppressLeadingAndTrailingTrivia(body);\n copyComments(head, body);\n } else {\n body = func.body;\n }\n const newNode = factory.createArrowFunction(func.modifiers, func.typeParameters, func.parameters, func.type, factory.createToken(39 /* EqualsGreaterThanToken */), body);\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, func, newNode));\n}\nfunction canBeConvertedToExpression(body, head) {\n return body.statements.length === 1 && (isReturnStatement(head) && !!head.expression);\n}\nfunction isFunctionReferencedInFile(sourceFile, typeChecker, node) {\n return !!node.name && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(node.name, typeChecker, sourceFile);\n}\n\n// src/services/_namespaces/ts.refactor.convertParamsToDestructuredObject.ts\nvar ts_refactor_convertParamsToDestructuredObject_exports = {};\n\n// src/services/refactors/convertParamsToDestructuredObject.ts\nvar refactorName9 = \"Convert parameters to destructured object\";\nvar minimumParameterLength = 1;\nvar refactorDescription5 = getLocaleSpecificMessage(Diagnostics.Convert_parameters_to_destructured_object);\nvar toDestructuredAction = {\n name: refactorName9,\n description: refactorDescription5,\n kind: \"refactor.rewrite.parameters.toDestructured\"\n};\nregisterRefactor(refactorName9, {\n kinds: [toDestructuredAction.kind],\n getEditsForAction: getRefactorEditsToConvertParametersToDestructuredObject,\n getAvailableActions: getRefactorActionsToConvertParametersToDestructuredObject\n});\nfunction getRefactorActionsToConvertParametersToDestructuredObject(context) {\n const { file, startPosition } = context;\n const isJSFile = isSourceFileJS(file);\n if (isJSFile) return emptyArray;\n const functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, context.program.getTypeChecker());\n if (!functionDeclaration) return emptyArray;\n return [{\n name: refactorName9,\n description: refactorDescription5,\n actions: [toDestructuredAction]\n }];\n}\nfunction getRefactorEditsToConvertParametersToDestructuredObject(context, actionName2) {\n Debug.assert(actionName2 === refactorName9, \"Unexpected action name\");\n const { file, startPosition, program, cancellationToken, host } = context;\n const functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, program.getTypeChecker());\n if (!functionDeclaration || !cancellationToken) return void 0;\n const groupedReferences = getGroupedReferences(functionDeclaration, program, cancellationToken);\n if (groupedReferences.valid) {\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange5(file, program, host, t, functionDeclaration, groupedReferences));\n return { renameFilename: void 0, renameLocation: void 0, edits };\n }\n return { edits: [] };\n}\nfunction doChange5(sourceFile, program, host, changes, functionDeclaration, groupedReferences) {\n const signature = groupedReferences.signature;\n const newFunctionDeclarationParams = map(createNewParameters(functionDeclaration, program, host), (param) => getSynthesizedDeepClone(param));\n if (signature) {\n const newSignatureParams = map(createNewParameters(signature, program, host), (param) => getSynthesizedDeepClone(param));\n replaceParameters(signature, newSignatureParams);\n }\n replaceParameters(functionDeclaration, newFunctionDeclarationParams);\n const functionCalls = sortAndDeduplicate(\n groupedReferences.functionCalls,\n /*comparer*/\n (a, b) => compareValues(a.pos, b.pos)\n );\n for (const call of functionCalls) {\n if (call.arguments && call.arguments.length) {\n const newArgument = getSynthesizedDeepClone(\n createNewArgument(functionDeclaration, call.arguments),\n /*includeTrivia*/\n true\n );\n changes.replaceNodeRange(\n getSourceFileOfNode(call),\n first(call.arguments),\n last(call.arguments),\n newArgument,\n { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include }\n );\n }\n }\n function replaceParameters(declarationOrSignature, parameterDeclarations) {\n changes.replaceNodeRangeWithNodes(\n sourceFile,\n first(declarationOrSignature.parameters),\n last(declarationOrSignature.parameters),\n parameterDeclarations,\n {\n joiner: \", \",\n // indentation is set to 0 because otherwise the object parameter will be indented if there is a `this` parameter\n indentation: 0,\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n }\n );\n }\n}\nfunction getGroupedReferences(functionDeclaration, program, cancellationToken) {\n const functionNames = getFunctionNames(functionDeclaration);\n const classNames = isConstructorDeclaration(functionDeclaration) ? getClassNames(functionDeclaration) : [];\n const names = deduplicate([...functionNames, ...classNames], equateValues);\n const checker = program.getTypeChecker();\n const references = flatMap(\n names,\n /*mapfn*/\n (name) => ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, name, program, program.getSourceFiles(), cancellationToken)\n );\n const groupedReferences = groupReferences(references);\n if (!every(\n groupedReferences.declarations,\n /*callback*/\n (decl) => contains(names, decl)\n )) {\n groupedReferences.valid = false;\n }\n return groupedReferences;\n function groupReferences(referenceEntries) {\n const classReferences = { accessExpressions: [], typeUsages: [] };\n const groupedReferences2 = { functionCalls: [], declarations: [], classReferences, valid: true };\n const functionSymbols = map(functionNames, getSymbolTargetAtLocation);\n const classSymbols = map(classNames, getSymbolTargetAtLocation);\n const isConstructor = isConstructorDeclaration(functionDeclaration);\n const contextualSymbols = map(functionNames, (name) => getSymbolForContextualType(name, checker));\n for (const entry of referenceEntries) {\n if (entry.kind === ts_FindAllReferences_exports.EntryKind.Span) {\n groupedReferences2.valid = false;\n continue;\n }\n if (contains(contextualSymbols, getSymbolTargetAtLocation(entry.node))) {\n if (isValidMethodSignature(entry.node.parent)) {\n groupedReferences2.signature = entry.node.parent;\n continue;\n }\n const call = entryToFunctionCall(entry);\n if (call) {\n groupedReferences2.functionCalls.push(call);\n continue;\n }\n }\n const contextualSymbol = getSymbolForContextualType(entry.node, checker);\n if (contextualSymbol && contains(contextualSymbols, contextualSymbol)) {\n const decl = entryToDeclaration(entry);\n if (decl) {\n groupedReferences2.declarations.push(decl);\n continue;\n }\n }\n if (contains(functionSymbols, getSymbolTargetAtLocation(entry.node)) || isNewExpressionTarget(entry.node)) {\n const importOrExportReference = entryToImportOrExport(entry);\n if (importOrExportReference) {\n continue;\n }\n const decl = entryToDeclaration(entry);\n if (decl) {\n groupedReferences2.declarations.push(decl);\n continue;\n }\n const call = entryToFunctionCall(entry);\n if (call) {\n groupedReferences2.functionCalls.push(call);\n continue;\n }\n }\n if (isConstructor && contains(classSymbols, getSymbolTargetAtLocation(entry.node))) {\n const importOrExportReference = entryToImportOrExport(entry);\n if (importOrExportReference) {\n continue;\n }\n const decl = entryToDeclaration(entry);\n if (decl) {\n groupedReferences2.declarations.push(decl);\n continue;\n }\n const accessExpression = entryToAccessExpression(entry);\n if (accessExpression) {\n classReferences.accessExpressions.push(accessExpression);\n continue;\n }\n if (isClassDeclaration(functionDeclaration.parent)) {\n const type = entryToType(entry);\n if (type) {\n classReferences.typeUsages.push(type);\n continue;\n }\n }\n }\n groupedReferences2.valid = false;\n }\n return groupedReferences2;\n }\n function getSymbolTargetAtLocation(node) {\n const symbol = checker.getSymbolAtLocation(node);\n return symbol && getSymbolTarget(symbol, checker);\n }\n}\nfunction getSymbolForContextualType(node, checker) {\n const element = getContainingObjectLiteralElement(node);\n if (element) {\n const contextualType = checker.getContextualTypeForObjectLiteralElement(element);\n const symbol = contextualType == null ? void 0 : contextualType.getSymbol();\n if (symbol && !(getCheckFlags(symbol) & 6 /* Synthetic */)) {\n return symbol;\n }\n }\n}\nfunction entryToImportOrExport(entry) {\n const node = entry.node;\n if (isImportSpecifier(node.parent) || isImportClause(node.parent) || isImportEqualsDeclaration(node.parent) || isNamespaceImport(node.parent)) {\n return node;\n }\n if (isExportSpecifier(node.parent) || isExportAssignment(node.parent)) {\n return node;\n }\n return void 0;\n}\nfunction entryToDeclaration(entry) {\n if (isDeclaration(entry.node.parent)) {\n return entry.node;\n }\n return void 0;\n}\nfunction entryToFunctionCall(entry) {\n if (entry.node.parent) {\n const functionReference = entry.node;\n const parent2 = functionReference.parent;\n switch (parent2.kind) {\n // foo(...) or super(...) or new Foo(...)\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n const callOrNewExpression = tryCast(parent2, isCallOrNewExpression);\n if (callOrNewExpression && callOrNewExpression.expression === functionReference) {\n return callOrNewExpression;\n }\n break;\n // x.foo(...)\n case 212 /* PropertyAccessExpression */:\n const propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression);\n if (propertyAccessExpression && propertyAccessExpression.parent && propertyAccessExpression.name === functionReference) {\n const callOrNewExpression2 = tryCast(propertyAccessExpression.parent, isCallOrNewExpression);\n if (callOrNewExpression2 && callOrNewExpression2.expression === propertyAccessExpression) {\n return callOrNewExpression2;\n }\n }\n break;\n // x[\"foo\"](...)\n case 213 /* ElementAccessExpression */:\n const elementAccessExpression = tryCast(parent2, isElementAccessExpression);\n if (elementAccessExpression && elementAccessExpression.parent && elementAccessExpression.argumentExpression === functionReference) {\n const callOrNewExpression2 = tryCast(elementAccessExpression.parent, isCallOrNewExpression);\n if (callOrNewExpression2 && callOrNewExpression2.expression === elementAccessExpression) {\n return callOrNewExpression2;\n }\n }\n break;\n }\n }\n return void 0;\n}\nfunction entryToAccessExpression(entry) {\n if (entry.node.parent) {\n const reference = entry.node;\n const parent2 = reference.parent;\n switch (parent2.kind) {\n // `C.foo`\n case 212 /* PropertyAccessExpression */:\n const propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression);\n if (propertyAccessExpression && propertyAccessExpression.expression === reference) {\n return propertyAccessExpression;\n }\n break;\n // `C[\"foo\"]`\n case 213 /* ElementAccessExpression */:\n const elementAccessExpression = tryCast(parent2, isElementAccessExpression);\n if (elementAccessExpression && elementAccessExpression.expression === reference) {\n return elementAccessExpression;\n }\n break;\n }\n }\n return void 0;\n}\nfunction entryToType(entry) {\n const reference = entry.node;\n if (getMeaningFromLocation(reference) === 2 /* Type */ || isExpressionWithTypeArgumentsInClassExtendsClause(reference.parent)) {\n return reference;\n }\n return void 0;\n}\nfunction getFunctionDeclarationAtPosition(file, startPosition, checker) {\n const node = getTouchingToken(file, startPosition);\n const functionDeclaration = getContainingFunctionDeclaration(node);\n if (isTopLevelJSDoc(node)) return void 0;\n if (functionDeclaration && isValidFunctionDeclaration(functionDeclaration, checker) && rangeContainsRange(functionDeclaration, node) && !(functionDeclaration.body && rangeContainsRange(functionDeclaration.body, node))) return functionDeclaration;\n return void 0;\n}\nfunction isTopLevelJSDoc(node) {\n const containingJSDoc = findAncestor(node, isJSDocNode);\n if (containingJSDoc) {\n const containingNonJSDoc = findAncestor(containingJSDoc, (n) => !isJSDocNode(n));\n return !!containingNonJSDoc && isFunctionLikeDeclaration(containingNonJSDoc);\n }\n return false;\n}\nfunction isValidMethodSignature(node) {\n return isMethodSignature(node) && (isInterfaceDeclaration(node.parent) || isTypeLiteralNode(node.parent));\n}\nfunction isValidFunctionDeclaration(functionDeclaration, checker) {\n var _a;\n if (!isValidParameterNodeArray(functionDeclaration.parameters, checker)) return false;\n switch (functionDeclaration.kind) {\n case 263 /* FunctionDeclaration */:\n return hasNameOrDefault(functionDeclaration) && isSingleImplementation(functionDeclaration, checker);\n case 175 /* MethodDeclaration */:\n if (isObjectLiteralExpression(functionDeclaration.parent)) {\n const contextualSymbol = getSymbolForContextualType(functionDeclaration.name, checker);\n return ((_a = contextualSymbol == null ? void 0 : contextualSymbol.declarations) == null ? void 0 : _a.length) === 1 && isSingleImplementation(functionDeclaration, checker);\n }\n return isSingleImplementation(functionDeclaration, checker);\n case 177 /* Constructor */:\n if (isClassDeclaration(functionDeclaration.parent)) {\n return hasNameOrDefault(functionDeclaration.parent) && isSingleImplementation(functionDeclaration, checker);\n } else {\n return isValidVariableDeclaration(functionDeclaration.parent.parent) && isSingleImplementation(functionDeclaration, checker);\n }\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return isValidVariableDeclaration(functionDeclaration.parent);\n }\n return false;\n}\nfunction isSingleImplementation(functionDeclaration, checker) {\n return !!functionDeclaration.body && !checker.isImplementationOfOverload(functionDeclaration);\n}\nfunction hasNameOrDefault(functionOrClassDeclaration) {\n if (!functionOrClassDeclaration.name) {\n const defaultKeyword = findModifier(functionOrClassDeclaration, 90 /* DefaultKeyword */);\n return !!defaultKeyword;\n }\n return true;\n}\nfunction isValidParameterNodeArray(parameters, checker) {\n return getRefactorableParametersLength(parameters) >= minimumParameterLength && every(\n parameters,\n /*callback*/\n (paramDecl) => isValidParameterDeclaration(paramDecl, checker)\n );\n}\nfunction isValidParameterDeclaration(parameterDeclaration, checker) {\n if (isRestParameter(parameterDeclaration)) {\n const type = checker.getTypeAtLocation(parameterDeclaration);\n if (!checker.isArrayType(type) && !checker.isTupleType(type)) return false;\n }\n return !parameterDeclaration.modifiers && isIdentifier(parameterDeclaration.name);\n}\nfunction isValidVariableDeclaration(node) {\n return isVariableDeclaration(node) && isVarConst(node) && isIdentifier(node.name) && !node.type;\n}\nfunction hasThisParameter(parameters) {\n return parameters.length > 0 && isThis(parameters[0].name);\n}\nfunction getRefactorableParametersLength(parameters) {\n if (hasThisParameter(parameters)) {\n return parameters.length - 1;\n }\n return parameters.length;\n}\nfunction getRefactorableParameters(parameters) {\n if (hasThisParameter(parameters)) {\n parameters = factory.createNodeArray(parameters.slice(1), parameters.hasTrailingComma);\n }\n return parameters;\n}\nfunction createPropertyOrShorthandAssignment(name, initializer) {\n if (isIdentifier(initializer) && getTextOfIdentifierOrLiteral(initializer) === name) {\n return factory.createShorthandPropertyAssignment(name);\n }\n return factory.createPropertyAssignment(name, initializer);\n}\nfunction createNewArgument(functionDeclaration, functionArguments) {\n const parameters = getRefactorableParameters(functionDeclaration.parameters);\n const hasRestParameter2 = isRestParameter(last(parameters));\n const nonRestArguments = hasRestParameter2 ? functionArguments.slice(0, parameters.length - 1) : functionArguments;\n const properties = map(nonRestArguments, (arg, i) => {\n const parameterName = getParameterName(parameters[i]);\n const property = createPropertyOrShorthandAssignment(parameterName, arg);\n suppressLeadingAndTrailingTrivia(property.name);\n if (isPropertyAssignment(property)) suppressLeadingAndTrailingTrivia(property.initializer);\n copyComments(arg, property);\n return property;\n });\n if (hasRestParameter2 && functionArguments.length >= parameters.length) {\n const restArguments = functionArguments.slice(parameters.length - 1);\n const restProperty = factory.createPropertyAssignment(getParameterName(last(parameters)), factory.createArrayLiteralExpression(restArguments));\n properties.push(restProperty);\n }\n const objectLiteral = factory.createObjectLiteralExpression(\n properties,\n /*multiLine*/\n false\n );\n return objectLiteral;\n}\nfunction createNewParameters(functionDeclaration, program, host) {\n const checker = program.getTypeChecker();\n const refactorableParameters = getRefactorableParameters(functionDeclaration.parameters);\n const bindingElements = map(refactorableParameters, createBindingElementFromParameterDeclaration);\n const objectParameterName = factory.createObjectBindingPattern(bindingElements);\n const objectParameterType = createParameterTypeNode(refactorableParameters);\n let objectInitializer;\n if (every(refactorableParameters, isOptionalParameter)) {\n objectInitializer = factory.createObjectLiteralExpression();\n }\n const objectParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n objectParameterName,\n /*questionToken*/\n void 0,\n objectParameterType,\n objectInitializer\n );\n if (hasThisParameter(functionDeclaration.parameters)) {\n const thisParameter = functionDeclaration.parameters[0];\n const newThisParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n thisParameter.name,\n /*questionToken*/\n void 0,\n thisParameter.type\n );\n suppressLeadingAndTrailingTrivia(newThisParameter.name);\n copyComments(thisParameter.name, newThisParameter.name);\n if (thisParameter.type) {\n suppressLeadingAndTrailingTrivia(newThisParameter.type);\n copyComments(thisParameter.type, newThisParameter.type);\n }\n return factory.createNodeArray([newThisParameter, objectParameter]);\n }\n return factory.createNodeArray([objectParameter]);\n function createBindingElementFromParameterDeclaration(parameterDeclaration) {\n const element = factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n /*propertyName*/\n void 0,\n getParameterName(parameterDeclaration),\n isRestParameter(parameterDeclaration) && isOptionalParameter(parameterDeclaration) ? factory.createArrayLiteralExpression() : parameterDeclaration.initializer\n );\n suppressLeadingAndTrailingTrivia(element);\n if (parameterDeclaration.initializer && element.initializer) {\n copyComments(parameterDeclaration.initializer, element.initializer);\n }\n return element;\n }\n function createParameterTypeNode(parameters) {\n const members = map(parameters, createPropertySignatureFromParameterDeclaration);\n const typeNode = addEmitFlags(factory.createTypeLiteralNode(members), 1 /* SingleLine */);\n return typeNode;\n }\n function createPropertySignatureFromParameterDeclaration(parameterDeclaration) {\n let parameterType = parameterDeclaration.type;\n if (!parameterType && (parameterDeclaration.initializer || isRestParameter(parameterDeclaration))) {\n parameterType = getTypeNode3(parameterDeclaration);\n }\n const propertySignature = factory.createPropertySignature(\n /*modifiers*/\n void 0,\n getParameterName(parameterDeclaration),\n isOptionalParameter(parameterDeclaration) ? factory.createToken(58 /* QuestionToken */) : parameterDeclaration.questionToken,\n parameterType\n );\n suppressLeadingAndTrailingTrivia(propertySignature);\n copyComments(parameterDeclaration.name, propertySignature.name);\n if (parameterDeclaration.type && propertySignature.type) {\n copyComments(parameterDeclaration.type, propertySignature.type);\n }\n return propertySignature;\n }\n function getTypeNode3(node) {\n const type = checker.getTypeAtLocation(node);\n return getTypeNodeIfAccessible(type, node, program, host);\n }\n function isOptionalParameter(parameterDeclaration) {\n if (isRestParameter(parameterDeclaration)) {\n const type = checker.getTypeAtLocation(parameterDeclaration);\n return !checker.isTupleType(type);\n }\n return checker.isOptionalParameter(parameterDeclaration);\n }\n}\nfunction getParameterName(paramDeclaration) {\n return getTextOfIdentifierOrLiteral(paramDeclaration.name);\n}\nfunction getClassNames(constructorDeclaration) {\n switch (constructorDeclaration.parent.kind) {\n case 264 /* ClassDeclaration */:\n const classDeclaration = constructorDeclaration.parent;\n if (classDeclaration.name) return [classDeclaration.name];\n const defaultModifier = Debug.checkDefined(\n findModifier(classDeclaration, 90 /* DefaultKeyword */),\n \"Nameless class declaration should be a default export\"\n );\n return [defaultModifier];\n case 232 /* ClassExpression */:\n const classExpression = constructorDeclaration.parent;\n const variableDeclaration = constructorDeclaration.parent.parent;\n const className = classExpression.name;\n if (className) return [className, variableDeclaration.name];\n return [variableDeclaration.name];\n }\n}\nfunction getFunctionNames(functionDeclaration) {\n switch (functionDeclaration.kind) {\n case 263 /* FunctionDeclaration */:\n if (functionDeclaration.name) return [functionDeclaration.name];\n const defaultModifier = Debug.checkDefined(\n findModifier(functionDeclaration, 90 /* DefaultKeyword */),\n \"Nameless function declaration should be a default export\"\n );\n return [defaultModifier];\n case 175 /* MethodDeclaration */:\n return [functionDeclaration.name];\n case 177 /* Constructor */:\n const ctrKeyword = Debug.checkDefined(\n findChildOfKind(functionDeclaration, 137 /* ConstructorKeyword */, functionDeclaration.getSourceFile()),\n \"Constructor declaration should have constructor keyword\"\n );\n if (functionDeclaration.parent.kind === 232 /* ClassExpression */) {\n const variableDeclaration = functionDeclaration.parent.parent;\n return [variableDeclaration.name, ctrKeyword];\n }\n return [ctrKeyword];\n case 220 /* ArrowFunction */:\n return [functionDeclaration.parent.name];\n case 219 /* FunctionExpression */:\n if (functionDeclaration.name) return [functionDeclaration.name, functionDeclaration.parent.name];\n return [functionDeclaration.parent.name];\n default:\n return Debug.assertNever(functionDeclaration, `Unexpected function declaration kind ${functionDeclaration.kind}`);\n }\n}\n\n// src/services/_namespaces/ts.refactor.convertStringOrTemplateLiteral.ts\nvar ts_refactor_convertStringOrTemplateLiteral_exports = {};\n\n// src/services/refactors/convertStringOrTemplateLiteral.ts\nvar refactorName10 = \"Convert to template string\";\nvar refactorDescription6 = getLocaleSpecificMessage(Diagnostics.Convert_to_template_string);\nvar convertStringAction = {\n name: refactorName10,\n description: refactorDescription6,\n kind: \"refactor.rewrite.string\"\n};\nregisterRefactor(refactorName10, {\n kinds: [convertStringAction.kind],\n getEditsForAction: getRefactorEditsToConvertToTemplateString,\n getAvailableActions: getRefactorActionsToConvertToTemplateString\n});\nfunction getRefactorActionsToConvertToTemplateString(context) {\n const { file, startPosition } = context;\n const node = getNodeOrParentOfParentheses(file, startPosition);\n const maybeBinary = getParentBinaryExpression(node);\n const nodeIsStringLiteral = isStringLiteral(maybeBinary);\n const refactorInfo = { name: refactorName10, description: refactorDescription6, actions: [] };\n if (nodeIsStringLiteral && context.triggerReason !== \"invoked\") {\n return emptyArray;\n }\n if (isExpressionNode(maybeBinary) && (nodeIsStringLiteral || isBinaryExpression(maybeBinary) && treeToArray(maybeBinary).isValidConcatenation)) {\n refactorInfo.actions.push(convertStringAction);\n return [refactorInfo];\n } else if (context.preferences.provideRefactorNotApplicableReason) {\n refactorInfo.actions.push({ ...convertStringAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Can_only_convert_string_concatenations_and_string_literals) });\n return [refactorInfo];\n }\n return emptyArray;\n}\nfunction getNodeOrParentOfParentheses(file, startPosition) {\n const node = getTokenAtPosition(file, startPosition);\n const nestedBinary = getParentBinaryExpression(node);\n const isNonStringBinary = !treeToArray(nestedBinary).isValidConcatenation;\n if (isNonStringBinary && isParenthesizedExpression(nestedBinary.parent) && isBinaryExpression(nestedBinary.parent.parent)) {\n return nestedBinary.parent.parent;\n }\n return node;\n}\nfunction getRefactorEditsToConvertToTemplateString(context, actionName2) {\n const { file, startPosition } = context;\n const node = getNodeOrParentOfParentheses(file, startPosition);\n switch (actionName2) {\n case refactorDescription6:\n return { edits: getEditsForToTemplateLiteral(context, node) };\n default:\n return Debug.fail(\"invalid action\");\n }\n}\nfunction getEditsForToTemplateLiteral(context, node) {\n const maybeBinary = getParentBinaryExpression(node);\n const file = context.file;\n const templateLiteral = nodesToTemplate(treeToArray(maybeBinary), file);\n const trailingCommentRanges = getTrailingCommentRanges(file.text, maybeBinary.end);\n if (trailingCommentRanges) {\n const lastComment = trailingCommentRanges[trailingCommentRanges.length - 1];\n const trailingRange = { pos: trailingCommentRanges[0].pos, end: lastComment.end };\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n t.deleteRange(file, trailingRange);\n t.replaceNode(file, maybeBinary, templateLiteral);\n });\n } else {\n return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, maybeBinary, templateLiteral));\n }\n}\nfunction isNotEqualsOperator(node) {\n return !(node.operatorToken.kind === 64 /* EqualsToken */ || node.operatorToken.kind === 65 /* PlusEqualsToken */);\n}\nfunction getParentBinaryExpression(expr) {\n const container = findAncestor(expr.parent, (n) => {\n switch (n.kind) {\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n return false;\n case 229 /* TemplateExpression */:\n case 227 /* BinaryExpression */:\n return !(isBinaryExpression(n.parent) && isNotEqualsOperator(n.parent));\n default:\n return \"quit\";\n }\n });\n return container || expr;\n}\nfunction treeToArray(current) {\n const loop = (current2) => {\n if (!isBinaryExpression(current2)) {\n return { nodes: [current2], operators: [], validOperators: true, hasString: isStringLiteral(current2) || isNoSubstitutionTemplateLiteral(current2) };\n }\n const { nodes: nodes2, operators: operators2, hasString: leftHasString, validOperators: leftOperatorValid } = loop(current2.left);\n if (!(leftHasString || isStringLiteral(current2.right) || isTemplateExpression(current2.right))) {\n return { nodes: [current2], operators: [], hasString: false, validOperators: true };\n }\n const currentOperatorValid = current2.operatorToken.kind === 40 /* PlusToken */;\n const validOperators2 = leftOperatorValid && currentOperatorValid;\n nodes2.push(current2.right);\n operators2.push(current2.operatorToken);\n return { nodes: nodes2, operators: operators2, hasString: true, validOperators: validOperators2 };\n };\n const { nodes, operators, validOperators, hasString } = loop(current);\n return { nodes, operators, isValidConcatenation: validOperators && hasString };\n}\nvar copyTrailingOperatorComments = (operators, file) => (index, targetNode) => {\n if (index < operators.length) {\n copyTrailingComments(\n operators[index],\n targetNode,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n }\n};\nvar copyCommentFromMultiNode = (nodes, file, copyOperatorComments) => (indexes, targetNode) => {\n while (indexes.length > 0) {\n const index = indexes.shift();\n copyTrailingComments(\n nodes[index],\n targetNode,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n copyOperatorComments(index, targetNode);\n }\n};\nfunction escapeRawStringForTemplate(s) {\n return s.replace(/\\\\.|[$`]/g, (m) => m[0] === \"\\\\\" ? m : \"\\\\\" + m);\n}\nfunction getRawTextOfTemplate(node) {\n const rightShaving = isTemplateHead(node) || isTemplateMiddle(node) ? -2 : -1;\n return getTextOfNode(node).slice(1, rightShaving);\n}\nfunction concatConsecutiveString(index, nodes) {\n const indexes = [];\n let text = \"\", rawText = \"\";\n while (index < nodes.length) {\n const node = nodes[index];\n if (isStringLiteralLike(node)) {\n text += node.text;\n rawText += escapeRawStringForTemplate(getTextOfNode(node).slice(1, -1));\n indexes.push(index);\n index++;\n } else if (isTemplateExpression(node)) {\n text += node.head.text;\n rawText += getRawTextOfTemplate(node.head);\n break;\n } else {\n break;\n }\n }\n return [index, text, rawText, indexes];\n}\nfunction nodesToTemplate({ nodes, operators }, file) {\n const copyOperatorComments = copyTrailingOperatorComments(operators, file);\n const copyCommentFromStringLiterals = copyCommentFromMultiNode(nodes, file, copyOperatorComments);\n const [begin, headText, rawHeadText, headIndexes] = concatConsecutiveString(0, nodes);\n if (begin === nodes.length) {\n const noSubstitutionTemplateLiteral = factory.createNoSubstitutionTemplateLiteral(headText, rawHeadText);\n copyCommentFromStringLiterals(headIndexes, noSubstitutionTemplateLiteral);\n return noSubstitutionTemplateLiteral;\n }\n const templateSpans = [];\n const templateHead = factory.createTemplateHead(headText, rawHeadText);\n copyCommentFromStringLiterals(headIndexes, templateHead);\n for (let i = begin; i < nodes.length; i++) {\n const currentNode = getExpressionFromParenthesesOrExpression(nodes[i]);\n copyOperatorComments(i, currentNode);\n const [newIndex, subsequentText, rawSubsequentText, stringIndexes] = concatConsecutiveString(i + 1, nodes);\n i = newIndex - 1;\n const isLast = i === nodes.length - 1;\n if (isTemplateExpression(currentNode)) {\n const spans = map(currentNode.templateSpans, (span, index) => {\n copyExpressionComments(span);\n const isLastSpan = index === currentNode.templateSpans.length - 1;\n const text = span.literal.text + (isLastSpan ? subsequentText : \"\");\n const rawText = getRawTextOfTemplate(span.literal) + (isLastSpan ? rawSubsequentText : \"\");\n return factory.createTemplateSpan(\n span.expression,\n isLast && isLastSpan ? factory.createTemplateTail(text, rawText) : factory.createTemplateMiddle(text, rawText)\n );\n });\n templateSpans.push(...spans);\n } else {\n const templatePart = isLast ? factory.createTemplateTail(subsequentText, rawSubsequentText) : factory.createTemplateMiddle(subsequentText, rawSubsequentText);\n copyCommentFromStringLiterals(stringIndexes, templatePart);\n templateSpans.push(factory.createTemplateSpan(currentNode, templatePart));\n }\n }\n return factory.createTemplateExpression(templateHead, templateSpans);\n}\nfunction copyExpressionComments(node) {\n const file = node.getSourceFile();\n copyTrailingComments(\n node,\n node.expression,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n copyTrailingAsLeadingComments(\n node.expression,\n node.expression,\n file,\n 3 /* MultiLineCommentTrivia */,\n /*hasTrailingNewLine*/\n false\n );\n}\nfunction getExpressionFromParenthesesOrExpression(node) {\n if (isParenthesizedExpression(node)) {\n copyExpressionComments(node);\n node = node.expression;\n }\n return node;\n}\n\n// src/services/_namespaces/ts.refactor.convertToOptionalChainExpression.ts\nvar ts_refactor_convertToOptionalChainExpression_exports = {};\n\n// src/services/refactors/convertToOptionalChainExpression.ts\nvar refactorName11 = \"Convert to optional chain expression\";\nvar convertToOptionalChainExpressionMessage = getLocaleSpecificMessage(Diagnostics.Convert_to_optional_chain_expression);\nvar toOptionalChainAction = {\n name: refactorName11,\n description: convertToOptionalChainExpressionMessage,\n kind: \"refactor.rewrite.expression.optionalChain\"\n};\nregisterRefactor(refactorName11, {\n kinds: [toOptionalChainAction.kind],\n getEditsForAction: getRefactorEditsToConvertToOptionalChain,\n getAvailableActions: getRefactorActionsToConvertToOptionalChain\n});\nfunction getRefactorActionsToConvertToOptionalChain(context) {\n const info = getInfo3(context, context.triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n return [{\n name: refactorName11,\n description: convertToOptionalChainExpressionMessage,\n actions: [toOptionalChainAction]\n }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{\n name: refactorName11,\n description: convertToOptionalChainExpressionMessage,\n actions: [{ ...toOptionalChainAction, notApplicableReason: info.error }]\n }];\n }\n return emptyArray;\n}\nfunction getRefactorEditsToConvertToOptionalChain(context, actionName2) {\n const info = getInfo3(context);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange6(context.file, context.program.getTypeChecker(), t, info, actionName2));\n return { edits, renameFilename: void 0, renameLocation: void 0 };\n}\nfunction isValidExpression(node) {\n return isBinaryExpression(node) || isConditionalExpression(node);\n}\nfunction isValidStatement(node) {\n return isExpressionStatement(node) || isReturnStatement(node) || isVariableStatement(node);\n}\nfunction isValidExpressionOrStatement(node) {\n return isValidExpression(node) || isValidStatement(node);\n}\nfunction getInfo3(context, considerEmptySpans = true) {\n const { file, program } = context;\n const span = getRefactorContextSpan(context);\n const forEmptySpan = span.length === 0;\n if (forEmptySpan && !considerEmptySpans) return void 0;\n const startToken = getTokenAtPosition(file, span.start);\n const endToken = findTokenOnLeftOfPosition(file, span.start + span.length);\n const adjustedSpan = createTextSpanFromBounds(startToken.pos, endToken && endToken.end >= startToken.pos ? endToken.getEnd() : startToken.getEnd());\n const parent2 = forEmptySpan ? getValidParentNodeOfEmptySpan(startToken) : getValidParentNodeContainingSpan(startToken, adjustedSpan);\n const expression = parent2 && isValidExpressionOrStatement(parent2) ? getExpression(parent2) : void 0;\n if (!expression) return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n const checker = program.getTypeChecker();\n return isConditionalExpression(expression) ? getConditionalInfo(expression, checker) : getBinaryInfo(expression);\n}\nfunction getConditionalInfo(expression, checker) {\n const condition = expression.condition;\n const finalExpression = getFinalExpressionInChain(expression.whenTrue);\n if (!finalExpression || checker.isNullableType(checker.getTypeAtLocation(finalExpression))) {\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n }\n if ((isPropertyAccessExpression(condition) || isIdentifier(condition)) && getMatchingStart(condition, finalExpression.expression)) {\n return { finalExpression, occurrences: [condition], expression };\n } else if (isBinaryExpression(condition)) {\n const occurrences = getOccurrencesInExpression(finalExpression.expression, condition);\n return occurrences ? { finalExpression, occurrences, expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) };\n }\n}\nfunction getBinaryInfo(expression) {\n if (expression.operatorToken.kind !== 56 /* AmpersandAmpersandToken */) {\n return { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_logical_AND_access_chains) };\n }\n const finalExpression = getFinalExpressionInChain(expression.right);\n if (!finalExpression) return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n const occurrences = getOccurrencesInExpression(finalExpression.expression, expression.left);\n return occurrences ? { finalExpression, occurrences, expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) };\n}\nfunction getOccurrencesInExpression(matchTo, expression) {\n const occurrences = [];\n while (isBinaryExpression(expression) && expression.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n const match = getMatchingStart(skipParentheses(matchTo), skipParentheses(expression.right));\n if (!match) {\n break;\n }\n occurrences.push(match);\n matchTo = match;\n expression = expression.left;\n }\n const finalMatch = getMatchingStart(matchTo, expression);\n if (finalMatch) {\n occurrences.push(finalMatch);\n }\n return occurrences.length > 0 ? occurrences : void 0;\n}\nfunction getMatchingStart(chain, subchain) {\n if (!isIdentifier(subchain) && !isPropertyAccessExpression(subchain) && !isElementAccessExpression(subchain)) {\n return void 0;\n }\n return chainStartsWith(chain, subchain) ? subchain : void 0;\n}\nfunction chainStartsWith(chain, subchain) {\n while (isCallExpression(chain) || isPropertyAccessExpression(chain) || isElementAccessExpression(chain)) {\n if (getTextOfChainNode(chain) === getTextOfChainNode(subchain)) break;\n chain = chain.expression;\n }\n while (isPropertyAccessExpression(chain) && isPropertyAccessExpression(subchain) || isElementAccessExpression(chain) && isElementAccessExpression(subchain)) {\n if (getTextOfChainNode(chain) !== getTextOfChainNode(subchain)) return false;\n chain = chain.expression;\n subchain = subchain.expression;\n }\n return isIdentifier(chain) && isIdentifier(subchain) && chain.getText() === subchain.getText();\n}\nfunction getTextOfChainNode(node) {\n if (isIdentifier(node) || isStringOrNumericLiteralLike(node)) {\n return node.getText();\n }\n if (isPropertyAccessExpression(node)) {\n return getTextOfChainNode(node.name);\n }\n if (isElementAccessExpression(node)) {\n return getTextOfChainNode(node.argumentExpression);\n }\n return void 0;\n}\nfunction getValidParentNodeContainingSpan(node, span) {\n while (node.parent) {\n if (isValidExpressionOrStatement(node) && span.length !== 0 && node.end >= span.start + span.length) {\n return node;\n }\n node = node.parent;\n }\n return void 0;\n}\nfunction getValidParentNodeOfEmptySpan(node) {\n while (node.parent) {\n if (isValidExpressionOrStatement(node) && !isValidExpressionOrStatement(node.parent)) {\n return node;\n }\n node = node.parent;\n }\n return void 0;\n}\nfunction getExpression(node) {\n if (isValidExpression(node)) {\n return node;\n }\n if (isVariableStatement(node)) {\n const variable = getSingleVariableOfVariableStatement(node);\n const initializer = variable == null ? void 0 : variable.initializer;\n return initializer && isValidExpression(initializer) ? initializer : void 0;\n }\n return node.expression && isValidExpression(node.expression) ? node.expression : void 0;\n}\nfunction getFinalExpressionInChain(node) {\n node = skipParentheses(node);\n if (isBinaryExpression(node)) {\n return getFinalExpressionInChain(node.left);\n } else if ((isPropertyAccessExpression(node) || isElementAccessExpression(node) || isCallExpression(node)) && !isOptionalChain(node)) {\n return node;\n }\n return void 0;\n}\nfunction convertOccurrences(checker, toConvert, occurrences) {\n if (isPropertyAccessExpression(toConvert) || isElementAccessExpression(toConvert) || isCallExpression(toConvert)) {\n const chain = convertOccurrences(checker, toConvert.expression, occurrences);\n const lastOccurrence = occurrences.length > 0 ? occurrences[occurrences.length - 1] : void 0;\n const isOccurrence = (lastOccurrence == null ? void 0 : lastOccurrence.getText()) === toConvert.expression.getText();\n if (isOccurrence) occurrences.pop();\n if (isCallExpression(toConvert)) {\n return isOccurrence ? factory.createCallChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.typeArguments, toConvert.arguments) : factory.createCallChain(chain, toConvert.questionDotToken, toConvert.typeArguments, toConvert.arguments);\n } else if (isPropertyAccessExpression(toConvert)) {\n return isOccurrence ? factory.createPropertyAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.name) : factory.createPropertyAccessChain(chain, toConvert.questionDotToken, toConvert.name);\n } else if (isElementAccessExpression(toConvert)) {\n return isOccurrence ? factory.createElementAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.argumentExpression) : factory.createElementAccessChain(chain, toConvert.questionDotToken, toConvert.argumentExpression);\n }\n }\n return toConvert;\n}\nfunction doChange6(sourceFile, checker, changes, info, _actionName) {\n const { finalExpression, occurrences, expression } = info;\n const firstOccurrence = occurrences[occurrences.length - 1];\n const convertedChain = convertOccurrences(checker, finalExpression, occurrences);\n if (convertedChain && (isPropertyAccessExpression(convertedChain) || isElementAccessExpression(convertedChain) || isCallExpression(convertedChain))) {\n if (isBinaryExpression(expression)) {\n changes.replaceNodeRange(sourceFile, firstOccurrence, finalExpression, convertedChain);\n } else if (isConditionalExpression(expression)) {\n changes.replaceNode(sourceFile, expression, factory.createBinaryExpression(convertedChain, factory.createToken(61 /* QuestionQuestionToken */), expression.whenFalse));\n }\n }\n}\n\n// src/services/_namespaces/ts.refactor.extractSymbol.ts\nvar ts_refactor_extractSymbol_exports = {};\n__export(ts_refactor_extractSymbol_exports, {\n Messages: () => Messages,\n RangeFacts: () => RangeFacts,\n getRangeToExtract: () => getRangeToExtract2,\n getRefactorActionsToExtractSymbol: () => getRefactorActionsToExtractSymbol,\n getRefactorEditsToExtractSymbol: () => getRefactorEditsToExtractSymbol\n});\n\n// src/services/refactors/extractSymbol.ts\nvar refactorName12 = \"Extract Symbol\";\nvar extractConstantAction = {\n name: \"Extract Constant\",\n description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n kind: \"refactor.extract.constant\"\n};\nvar extractFunctionAction = {\n name: \"Extract Function\",\n description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n kind: \"refactor.extract.function\"\n};\nregisterRefactor(refactorName12, {\n kinds: [\n extractConstantAction.kind,\n extractFunctionAction.kind\n ],\n getEditsForAction: getRefactorEditsToExtractSymbol,\n getAvailableActions: getRefactorActionsToExtractSymbol\n});\nfunction getRefactorActionsToExtractSymbol(context) {\n const requestedRefactor = context.kind;\n const rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context), context.triggerReason === \"invoked\");\n const targetRange = rangeToExtract.targetRange;\n if (targetRange === void 0) {\n if (!rangeToExtract.errors || rangeToExtract.errors.length === 0 || !context.preferences.provideRefactorNotApplicableReason) {\n return emptyArray;\n }\n const errors = [];\n if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) {\n errors.push({\n name: refactorName12,\n description: extractFunctionAction.description,\n actions: [{ ...extractFunctionAction, notApplicableReason: getStringError(rangeToExtract.errors) }]\n });\n }\n if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) {\n errors.push({\n name: refactorName12,\n description: extractConstantAction.description,\n actions: [{ ...extractConstantAction, notApplicableReason: getStringError(rangeToExtract.errors) }]\n });\n }\n return errors;\n }\n const { affectedTextRange, extractions } = getPossibleExtractions(targetRange, context);\n if (extractions === void 0) {\n return emptyArray;\n }\n const functionActions = [];\n const usedFunctionNames = /* @__PURE__ */ new Map();\n let innermostErrorFunctionAction;\n const constantActions = [];\n const usedConstantNames = /* @__PURE__ */ new Map();\n let innermostErrorConstantAction;\n let i = 0;\n for (const { functionExtraction, constantExtraction } of extractions) {\n if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) {\n const description3 = functionExtraction.description;\n if (functionExtraction.errors.length === 0) {\n if (!usedFunctionNames.has(description3)) {\n usedFunctionNames.set(description3, true);\n functionActions.push({\n description: description3,\n name: `function_scope_${i}`,\n kind: extractFunctionAction.kind,\n range: {\n start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n }\n });\n }\n } else if (!innermostErrorFunctionAction) {\n innermostErrorFunctionAction = {\n description: description3,\n name: `function_scope_${i}`,\n notApplicableReason: getStringError(functionExtraction.errors),\n kind: extractFunctionAction.kind\n };\n }\n }\n if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) {\n const description3 = constantExtraction.description;\n if (constantExtraction.errors.length === 0) {\n if (!usedConstantNames.has(description3)) {\n usedConstantNames.set(description3, true);\n constantActions.push({\n description: description3,\n name: `constant_scope_${i}`,\n kind: extractConstantAction.kind,\n range: {\n start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n }\n });\n }\n } else if (!innermostErrorConstantAction) {\n innermostErrorConstantAction = {\n description: description3,\n name: `constant_scope_${i}`,\n notApplicableReason: getStringError(constantExtraction.errors),\n kind: extractConstantAction.kind\n };\n }\n }\n i++;\n }\n const infos = [];\n if (functionActions.length) {\n infos.push({\n name: refactorName12,\n description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n actions: functionActions\n });\n } else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorFunctionAction) {\n infos.push({\n name: refactorName12,\n description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n actions: [innermostErrorFunctionAction]\n });\n }\n if (constantActions.length) {\n infos.push({\n name: refactorName12,\n description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n actions: constantActions\n });\n } else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorConstantAction) {\n infos.push({\n name: refactorName12,\n description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n actions: [innermostErrorConstantAction]\n });\n }\n return infos.length ? infos : emptyArray;\n function getStringError(errors) {\n let error2 = errors[0].messageText;\n if (typeof error2 !== \"string\") {\n error2 = error2.messageText;\n }\n return error2;\n }\n}\nfunction getRefactorEditsToExtractSymbol(context, actionName2) {\n const rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context));\n const targetRange = rangeToExtract.targetRange;\n const parsedFunctionIndexMatch = /^function_scope_(\\d+)$/.exec(actionName2);\n if (parsedFunctionIndexMatch) {\n const index = +parsedFunctionIndexMatch[1];\n Debug.assert(isFinite(index), \"Expected to parse a finite number from the function scope index\");\n return getFunctionExtractionAtIndex(targetRange, context, index);\n }\n const parsedConstantIndexMatch = /^constant_scope_(\\d+)$/.exec(actionName2);\n if (parsedConstantIndexMatch) {\n const index = +parsedConstantIndexMatch[1];\n Debug.assert(isFinite(index), \"Expected to parse a finite number from the constant scope index\");\n return getConstantExtractionAtIndex(targetRange, context, index);\n }\n Debug.fail(\"Unrecognized action name\");\n}\nvar Messages;\n((Messages2) => {\n function createMessage(message) {\n return { message, code: 0, category: 3 /* Message */, key: message };\n }\n Messages2.cannotExtractRange = createMessage(\"Cannot extract range.\");\n Messages2.cannotExtractImport = createMessage(\"Cannot extract import statement.\");\n Messages2.cannotExtractSuper = createMessage(\"Cannot extract super call.\");\n Messages2.cannotExtractJSDoc = createMessage(\"Cannot extract JSDoc.\");\n Messages2.cannotExtractEmpty = createMessage(\"Cannot extract empty range.\");\n Messages2.expressionExpected = createMessage(\"expression expected.\");\n Messages2.uselessConstantType = createMessage(\"No reason to extract constant of type.\");\n Messages2.statementOrExpressionExpected = createMessage(\"Statement or expression expected.\");\n Messages2.cannotExtractRangeContainingConditionalBreakOrContinueStatements = createMessage(\"Cannot extract range containing conditional break or continue statements.\");\n Messages2.cannotExtractRangeContainingConditionalReturnStatement = createMessage(\"Cannot extract range containing conditional return statement.\");\n Messages2.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange = createMessage(\"Cannot extract range containing labeled break or continue with target outside of the range.\");\n Messages2.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators = createMessage(\"Cannot extract range containing writes to references located outside of the target range in generators.\");\n Messages2.typeWillNotBeVisibleInTheNewScope = createMessage(\"Type will not visible in the new scope.\");\n Messages2.functionWillNotBeVisibleInTheNewScope = createMessage(\"Function will not visible in the new scope.\");\n Messages2.cannotExtractIdentifier = createMessage(\"Select more than a single identifier.\");\n Messages2.cannotExtractExportedEntity = createMessage(\"Cannot extract exported declaration\");\n Messages2.cannotWriteInExpression = createMessage(\"Cannot write back side-effects when extracting an expression\");\n Messages2.cannotExtractReadonlyPropertyInitializerOutsideConstructor = createMessage(\"Cannot move initialization of read-only class property outside of the constructor\");\n Messages2.cannotExtractAmbientBlock = createMessage(\"Cannot extract code from ambient contexts\");\n Messages2.cannotAccessVariablesFromNestedScopes = createMessage(\"Cannot access variables from nested scopes\");\n Messages2.cannotExtractToJSClass = createMessage(\"Cannot extract constant to a class scope in JS\");\n Messages2.cannotExtractToExpressionArrowFunction = createMessage(\"Cannot extract constant to an arrow function without a block\");\n Messages2.cannotExtractFunctionsContainingThisToMethod = createMessage(\"Cannot extract functions containing this to method\");\n})(Messages || (Messages = {}));\nvar RangeFacts = /* @__PURE__ */ ((RangeFacts2) => {\n RangeFacts2[RangeFacts2[\"None\"] = 0] = \"None\";\n RangeFacts2[RangeFacts2[\"HasReturn\"] = 1] = \"HasReturn\";\n RangeFacts2[RangeFacts2[\"IsGenerator\"] = 2] = \"IsGenerator\";\n RangeFacts2[RangeFacts2[\"IsAsyncFunction\"] = 4] = \"IsAsyncFunction\";\n RangeFacts2[RangeFacts2[\"UsesThis\"] = 8] = \"UsesThis\";\n RangeFacts2[RangeFacts2[\"UsesThisInFunction\"] = 16] = \"UsesThisInFunction\";\n RangeFacts2[RangeFacts2[\"InStaticRegion\"] = 32] = \"InStaticRegion\";\n return RangeFacts2;\n})(RangeFacts || {});\nfunction getRangeToExtract2(sourceFile, span, invoked = true) {\n const { length: length2 } = span;\n if (length2 === 0 && !invoked) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractEmpty)] };\n }\n const cursorRequest = length2 === 0 && invoked;\n const startToken = findFirstNonJsxWhitespaceToken(sourceFile, span.start);\n const endToken = findTokenOnLeftOfPosition(sourceFile, textSpanEnd(span));\n const adjustedSpan = startToken && endToken && invoked ? getAdjustedSpanFromNodes(startToken, endToken, sourceFile) : span;\n const start = cursorRequest ? getExtractableParent(startToken) : getParentNodeInSpan(startToken, sourceFile, adjustedSpan);\n const end = cursorRequest ? start : getParentNodeInSpan(endToken, sourceFile, adjustedSpan);\n let rangeFacts = 0 /* None */;\n let thisNode;\n if (!start || !end) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n }\n if (start.flags & 16777216 /* JSDoc */) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractJSDoc)] };\n }\n if (start.parent !== end.parent) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n }\n if (start !== end) {\n if (!isBlockLike(start.parent)) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n }\n const statements = [];\n for (const statement of start.parent.statements) {\n if (statement === start || statements.length) {\n const errors2 = checkNode(statement);\n if (errors2) {\n return { errors: errors2 };\n }\n statements.push(statement);\n }\n if (statement === end) {\n break;\n }\n }\n if (!statements.length) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n }\n return { targetRange: { range: statements, facts: rangeFacts, thisNode } };\n }\n if (isReturnStatement(start) && !start.expression) {\n return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n }\n const node = refineNode(start);\n const errors = checkRootNode(node) || checkNode(node);\n if (errors) {\n return { errors };\n }\n return { targetRange: { range: getStatementOrExpressionRange(node), facts: rangeFacts, thisNode } };\n function refineNode(node2) {\n if (isReturnStatement(node2)) {\n if (node2.expression) {\n return node2.expression;\n }\n } else if (isVariableStatement(node2) || isVariableDeclarationList(node2)) {\n const declarations = isVariableStatement(node2) ? node2.declarationList.declarations : node2.declarations;\n let numInitializers = 0;\n let lastInitializer;\n for (const declaration of declarations) {\n if (declaration.initializer) {\n numInitializers++;\n lastInitializer = declaration.initializer;\n }\n }\n if (numInitializers === 1) {\n return lastInitializer;\n }\n } else if (isVariableDeclaration(node2)) {\n if (node2.initializer) {\n return node2.initializer;\n }\n }\n return node2;\n }\n function checkRootNode(node2) {\n if (isIdentifier(isExpressionStatement(node2) ? node2.expression : node2)) {\n return [createDiagnosticForNode(node2, Messages.cannotExtractIdentifier)];\n }\n return void 0;\n }\n function checkForStaticContext(nodeToCheck, containingClass) {\n let current = nodeToCheck;\n while (current !== containingClass) {\n if (current.kind === 173 /* PropertyDeclaration */) {\n if (isStatic(current)) {\n rangeFacts |= 32 /* InStaticRegion */;\n }\n break;\n } else if (current.kind === 170 /* Parameter */) {\n const ctorOrMethod = getContainingFunction(current);\n if (ctorOrMethod.kind === 177 /* Constructor */) {\n rangeFacts |= 32 /* InStaticRegion */;\n }\n break;\n } else if (current.kind === 175 /* MethodDeclaration */) {\n if (isStatic(current)) {\n rangeFacts |= 32 /* InStaticRegion */;\n }\n }\n current = current.parent;\n }\n }\n function checkNode(nodeToCheck) {\n let PermittedJumps;\n ((PermittedJumps2) => {\n PermittedJumps2[PermittedJumps2[\"None\"] = 0] = \"None\";\n PermittedJumps2[PermittedJumps2[\"Break\"] = 1] = \"Break\";\n PermittedJumps2[PermittedJumps2[\"Continue\"] = 2] = \"Continue\";\n PermittedJumps2[PermittedJumps2[\"Return\"] = 4] = \"Return\";\n })(PermittedJumps || (PermittedJumps = {}));\n Debug.assert(nodeToCheck.pos <= nodeToCheck.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)\");\n Debug.assert(!positionIsSynthesized(nodeToCheck.pos), \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)\");\n if (!isStatement(nodeToCheck) && !(isExpressionNode(nodeToCheck) && isExtractableExpression(nodeToCheck)) && !isStringLiteralJsxAttribute(nodeToCheck)) {\n return [createDiagnosticForNode(nodeToCheck, Messages.statementOrExpressionExpected)];\n }\n if (nodeToCheck.flags & 33554432 /* Ambient */) {\n return [createDiagnosticForNode(nodeToCheck, Messages.cannotExtractAmbientBlock)];\n }\n const containingClass = getContainingClass(nodeToCheck);\n if (containingClass) {\n checkForStaticContext(nodeToCheck, containingClass);\n }\n let errors2;\n let permittedJumps = 4 /* Return */;\n let seenLabels;\n visit(nodeToCheck);\n if (rangeFacts & 8 /* UsesThis */) {\n const container = getThisContainer(\n nodeToCheck,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (container.kind === 263 /* FunctionDeclaration */ || container.kind === 175 /* MethodDeclaration */ && container.parent.kind === 211 /* ObjectLiteralExpression */ || container.kind === 219 /* FunctionExpression */) {\n rangeFacts |= 16 /* UsesThisInFunction */;\n }\n }\n return errors2;\n function visit(node2) {\n if (errors2) {\n return true;\n }\n if (isDeclaration(node2)) {\n const declaringNode = node2.kind === 261 /* VariableDeclaration */ ? node2.parent.parent : node2;\n if (hasSyntacticModifier(declaringNode, 32 /* Export */)) {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity));\n return true;\n }\n }\n switch (node2.kind) {\n case 273 /* ImportDeclaration */:\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractImport));\n return true;\n case 278 /* ExportAssignment */:\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity));\n return true;\n case 108 /* SuperKeyword */:\n if (node2.parent.kind === 214 /* CallExpression */) {\n const containingClass2 = getContainingClass(node2);\n if (containingClass2 === void 0 || containingClass2.pos < span.start || containingClass2.end >= span.start + span.length) {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractSuper));\n return true;\n }\n } else {\n rangeFacts |= 8 /* UsesThis */;\n thisNode = node2;\n }\n break;\n case 220 /* ArrowFunction */:\n forEachChild(node2, function check(n) {\n if (isThis(n)) {\n rangeFacts |= 8 /* UsesThis */;\n thisNode = node2;\n } else if (isClassLike(n) || isFunctionLike(n) && !isArrowFunction(n)) {\n return false;\n } else {\n forEachChild(n, check);\n }\n });\n // falls through\n case 264 /* ClassDeclaration */:\n case 263 /* FunctionDeclaration */:\n if (isSourceFile(node2.parent) && node2.parent.externalModuleIndicator === void 0) {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.functionWillNotBeVisibleInTheNewScope));\n }\n // falls through\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return false;\n }\n const savedPermittedJumps = permittedJumps;\n switch (node2.kind) {\n case 246 /* IfStatement */:\n permittedJumps &= ~4 /* Return */;\n break;\n case 259 /* TryStatement */:\n permittedJumps = 0 /* None */;\n break;\n case 242 /* Block */:\n if (node2.parent && node2.parent.kind === 259 /* TryStatement */ && node2.parent.finallyBlock === node2) {\n permittedJumps = 4 /* Return */;\n }\n break;\n case 298 /* DefaultClause */:\n case 297 /* CaseClause */:\n permittedJumps |= 1 /* Break */;\n break;\n default:\n if (isIterationStatement(\n node2,\n /*lookInLabeledStatements*/\n false\n )) {\n permittedJumps |= 1 /* Break */ | 2 /* Continue */;\n }\n break;\n }\n switch (node2.kind) {\n case 198 /* ThisType */:\n case 110 /* ThisKeyword */:\n rangeFacts |= 8 /* UsesThis */;\n thisNode = node2;\n break;\n case 257 /* LabeledStatement */: {\n const label = node2.label;\n (seenLabels || (seenLabels = [])).push(label.escapedText);\n forEachChild(node2, visit);\n seenLabels.pop();\n break;\n }\n case 253 /* BreakStatement */:\n case 252 /* ContinueStatement */: {\n const label = node2.label;\n if (label) {\n if (!contains(seenLabels, label.escapedText)) {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange));\n }\n } else {\n if (!(permittedJumps & (node2.kind === 253 /* BreakStatement */ ? 1 /* Break */ : 2 /* Continue */))) {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalBreakOrContinueStatements));\n }\n }\n break;\n }\n case 224 /* AwaitExpression */:\n rangeFacts |= 4 /* IsAsyncFunction */;\n break;\n case 230 /* YieldExpression */:\n rangeFacts |= 2 /* IsGenerator */;\n break;\n case 254 /* ReturnStatement */:\n if (permittedJumps & 4 /* Return */) {\n rangeFacts |= 1 /* HasReturn */;\n } else {\n (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalReturnStatement));\n }\n break;\n default:\n forEachChild(node2, visit);\n break;\n }\n permittedJumps = savedPermittedJumps;\n }\n }\n}\nfunction getAdjustedSpanFromNodes(startNode2, endNode2, sourceFile) {\n const start = startNode2.getStart(sourceFile);\n let end = endNode2.getEnd();\n if (sourceFile.text.charCodeAt(end) === 59 /* semicolon */) {\n end++;\n }\n return { start, length: end - start };\n}\nfunction getStatementOrExpressionRange(node) {\n if (isStatement(node)) {\n return [node];\n }\n if (isExpressionNode(node)) {\n return isExpressionStatement(node.parent) ? [node.parent] : node;\n }\n if (isStringLiteralJsxAttribute(node)) {\n return node;\n }\n return void 0;\n}\nfunction isScope(node) {\n return isArrowFunction(node) ? isFunctionBody(node.body) : isFunctionLikeDeclaration(node) || isSourceFile(node) || isModuleBlock(node) || isClassLike(node);\n}\nfunction collectEnclosingScopes(range) {\n let current = isReadonlyArray(range.range) ? first(range.range) : range.range;\n if (range.facts & 8 /* UsesThis */ && !(range.facts & 16 /* UsesThisInFunction */)) {\n const containingClass = getContainingClass(current);\n if (containingClass) {\n const containingFunction = findAncestor(current, isFunctionLikeDeclaration);\n return containingFunction ? [containingFunction, containingClass] : [containingClass];\n }\n }\n const scopes = [];\n while (true) {\n current = current.parent;\n if (current.kind === 170 /* Parameter */) {\n current = findAncestor(current, (parent2) => isFunctionLikeDeclaration(parent2)).parent;\n }\n if (isScope(current)) {\n scopes.push(current);\n if (current.kind === 308 /* SourceFile */) {\n return scopes;\n }\n }\n }\n}\nfunction getFunctionExtractionAtIndex(targetRange, context, requestedChangesIndex) {\n const { scopes, readsAndWrites: { target, usagesPerScope, functionErrorsPerScope, exposedVariableDeclarations } } = getPossibleExtractionsWorker(targetRange, context);\n Debug.assert(!functionErrorsPerScope[requestedChangesIndex].length, \"The extraction went missing? How?\");\n context.cancellationToken.throwIfCancellationRequested();\n return extractFunctionInScope(target, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], exposedVariableDeclarations, targetRange, context);\n}\nfunction getConstantExtractionAtIndex(targetRange, context, requestedChangesIndex) {\n const { scopes, readsAndWrites: { target, usagesPerScope, constantErrorsPerScope, exposedVariableDeclarations } } = getPossibleExtractionsWorker(targetRange, context);\n Debug.assert(!constantErrorsPerScope[requestedChangesIndex].length, \"The extraction went missing? How?\");\n Debug.assert(exposedVariableDeclarations.length === 0, \"Extract constant accepted a range containing a variable declaration?\");\n context.cancellationToken.throwIfCancellationRequested();\n const expression = isExpression(target) ? target : target.statements[0].expression;\n return extractConstantInScope(expression, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], targetRange.facts, context);\n}\nfunction getPossibleExtractions(targetRange, context) {\n const { scopes, affectedTextRange, readsAndWrites: { functionErrorsPerScope, constantErrorsPerScope } } = getPossibleExtractionsWorker(targetRange, context);\n const extractions = scopes.map((scope, i) => {\n const functionDescriptionPart = getDescriptionForFunctionInScope(scope);\n const constantDescriptionPart = getDescriptionForConstantInScope(scope);\n const scopeDescription = isFunctionLikeDeclaration(scope) ? getDescriptionForFunctionLikeDeclaration(scope) : isClassLike(scope) ? getDescriptionForClassLikeDeclaration(scope) : getDescriptionForModuleLikeDeclaration(scope);\n let functionDescription;\n let constantDescription;\n if (scopeDescription === 1 /* Global */) {\n functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, \"global\"]);\n constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, \"global\"]);\n } else if (scopeDescription === 0 /* Module */) {\n functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, \"module\"]);\n constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, \"module\"]);\n } else {\n functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [functionDescriptionPart, scopeDescription]);\n constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [constantDescriptionPart, scopeDescription]);\n }\n if (i === 0 && !isClassLike(scope)) {\n constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_enclosing_scope), [constantDescriptionPart]);\n }\n return {\n functionExtraction: {\n description: functionDescription,\n errors: functionErrorsPerScope[i]\n },\n constantExtraction: {\n description: constantDescription,\n errors: constantErrorsPerScope[i]\n }\n };\n });\n return { affectedTextRange, extractions };\n}\nfunction getPossibleExtractionsWorker(targetRange, context) {\n const { file: sourceFile } = context;\n const scopes = collectEnclosingScopes(targetRange);\n const enclosingTextRange = getEnclosingTextRange(targetRange, sourceFile);\n const readsAndWrites = collectReadsAndWrites(\n targetRange,\n scopes,\n enclosingTextRange,\n sourceFile,\n context.program.getTypeChecker(),\n context.cancellationToken\n );\n return { scopes, affectedTextRange: enclosingTextRange, readsAndWrites };\n}\nfunction getDescriptionForFunctionInScope(scope) {\n return isFunctionLikeDeclaration(scope) ? \"inner function\" : isClassLike(scope) ? \"method\" : \"function\";\n}\nfunction getDescriptionForConstantInScope(scope) {\n return isClassLike(scope) ? \"readonly field\" : \"constant\";\n}\nfunction getDescriptionForFunctionLikeDeclaration(scope) {\n switch (scope.kind) {\n case 177 /* Constructor */:\n return \"constructor\";\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n return scope.name ? `function '${scope.name.text}'` : ANONYMOUS;\n case 220 /* ArrowFunction */:\n return \"arrow function\";\n case 175 /* MethodDeclaration */:\n return `method '${scope.name.getText()}'`;\n case 178 /* GetAccessor */:\n return `'get ${scope.name.getText()}'`;\n case 179 /* SetAccessor */:\n return `'set ${scope.name.getText()}'`;\n default:\n Debug.assertNever(scope, `Unexpected scope kind ${scope.kind}`);\n }\n}\nfunction getDescriptionForClassLikeDeclaration(scope) {\n return scope.kind === 264 /* ClassDeclaration */ ? scope.name ? `class '${scope.name.text}'` : \"anonymous class declaration\" : scope.name ? `class expression '${scope.name.text}'` : \"anonymous class expression\";\n}\nfunction getDescriptionForModuleLikeDeclaration(scope) {\n return scope.kind === 269 /* ModuleBlock */ ? `namespace '${scope.parent.name.getText()}'` : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;\n}\nfunction extractFunctionInScope(node, scope, { usages: usagesInScope, typeParameterUsages, substitutions }, exposedVariableDeclarations, range, context) {\n const checker = context.program.getTypeChecker();\n const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n const importAdder = ts_codefix_exports.createImportAdder(context.file, context.program, context.preferences, context.host);\n const file = scope.getSourceFile();\n const functionNameText = getUniqueName(isClassLike(scope) ? \"newMethod\" : \"newFunction\", file);\n const isJS = isInJSFile(scope);\n const functionName = factory.createIdentifier(functionNameText);\n let returnType;\n const parameters = [];\n const callArguments = [];\n let writes;\n usagesInScope.forEach((usage, name) => {\n let typeNode;\n if (!isJS) {\n let type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);\n type = checker.getBaseTypeOfLiteralType(type);\n typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, scope, scriptTarget, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n }\n const paramDecl = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n name,\n /*questionToken*/\n void 0,\n typeNode\n );\n parameters.push(paramDecl);\n if (usage.usage === 2 /* Write */) {\n (writes || (writes = [])).push(usage);\n }\n callArguments.push(factory.createIdentifier(name));\n });\n const typeParametersAndDeclarations = arrayFrom(typeParameterUsages.values(), (type) => ({ type, declaration: getFirstDeclarationBeforePosition(type, context.startPosition) }));\n typeParametersAndDeclarations.sort(compareTypesByDeclarationOrder);\n const typeParameters = typeParametersAndDeclarations.length === 0 ? void 0 : mapDefined(typeParametersAndDeclarations, ({ declaration }) => declaration);\n const callTypeArguments = typeParameters !== void 0 ? typeParameters.map((decl) => factory.createTypeReferenceNode(\n decl.name,\n /*typeArguments*/\n void 0\n )) : void 0;\n if (isExpression(node) && !isJS) {\n const contextualType = checker.getContextualType(node);\n returnType = checker.typeToTypeNode(contextualType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n }\n const { body, returnValueProperty } = transformFunctionBody(node, exposedVariableDeclarations, writes, substitutions, !!(range.facts & 1 /* HasReturn */));\n suppressLeadingAndTrailingTrivia(body);\n let newFunction;\n const callThis = !!(range.facts & 16 /* UsesThisInFunction */);\n if (isClassLike(scope)) {\n const modifiers = isJS ? [] : [factory.createModifier(123 /* PrivateKeyword */)];\n if (range.facts & 32 /* InStaticRegion */) {\n modifiers.push(factory.createModifier(126 /* StaticKeyword */));\n }\n if (range.facts & 4 /* IsAsyncFunction */) {\n modifiers.push(factory.createModifier(134 /* AsyncKeyword */));\n }\n newFunction = factory.createMethodDeclaration(\n modifiers.length ? modifiers : void 0,\n range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0,\n functionName,\n /*questionToken*/\n void 0,\n typeParameters,\n parameters,\n returnType,\n body\n );\n } else {\n if (callThis) {\n parameters.unshift(\n factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n \"this\",\n /*questionToken*/\n void 0,\n checker.typeToTypeNode(\n checker.getTypeAtLocation(range.thisNode),\n scope,\n 1 /* NoTruncation */,\n 8 /* AllowUnresolvedNames */\n ),\n /*initializer*/\n void 0\n )\n );\n }\n newFunction = factory.createFunctionDeclaration(\n range.facts & 4 /* IsAsyncFunction */ ? [factory.createToken(134 /* AsyncKeyword */)] : void 0,\n range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0,\n functionName,\n typeParameters,\n parameters,\n returnType,\n body\n );\n }\n const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n const minInsertionPos = (isReadonlyArray(range.range) ? last(range.range) : range.range).end;\n const nodeToInsertBefore = getNodeToInsertFunctionBefore(minInsertionPos, scope);\n if (nodeToInsertBefore) {\n changeTracker.insertNodeBefore(\n context.file,\n nodeToInsertBefore,\n newFunction,\n /*blankLineBetween*/\n true\n );\n } else {\n changeTracker.insertNodeAtEndOfScope(context.file, scope, newFunction);\n }\n importAdder.writeFixes(changeTracker);\n const newNodes = [];\n const called = getCalledExpression(scope, range, functionNameText);\n if (callThis) {\n callArguments.unshift(factory.createIdentifier(\"this\"));\n }\n let call = factory.createCallExpression(\n callThis ? factory.createPropertyAccessExpression(\n called,\n \"call\"\n ) : called,\n callTypeArguments,\n // Note that no attempt is made to take advantage of type argument inference\n callArguments\n );\n if (range.facts & 2 /* IsGenerator */) {\n call = factory.createYieldExpression(factory.createToken(42 /* AsteriskToken */), call);\n }\n if (range.facts & 4 /* IsAsyncFunction */) {\n call = factory.createAwaitExpression(call);\n }\n if (isInJSXContent(node)) {\n call = factory.createJsxExpression(\n /*dotDotDotToken*/\n void 0,\n call\n );\n }\n if (exposedVariableDeclarations.length && !writes) {\n Debug.assert(!returnValueProperty, \"Expected no returnValueProperty\");\n Debug.assert(!(range.facts & 1 /* HasReturn */), \"Expected RangeFacts.HasReturn flag to be unset\");\n if (exposedVariableDeclarations.length === 1) {\n const variableDeclaration = exposedVariableDeclarations[0];\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n getSynthesizedDeepClone(variableDeclaration.name),\n /*exclamationToken*/\n void 0,\n /*type*/\n getSynthesizedDeepClone(variableDeclaration.type),\n /*initializer*/\n call\n )],\n variableDeclaration.parent.flags\n )\n ));\n } else {\n const bindingElements = [];\n const typeElements = [];\n let commonNodeFlags = exposedVariableDeclarations[0].parent.flags;\n let sawExplicitType = false;\n for (const variableDeclaration of exposedVariableDeclarations) {\n bindingElements.push(factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n /*propertyName*/\n void 0,\n /*name*/\n getSynthesizedDeepClone(variableDeclaration.name)\n ));\n const variableType = checker.typeToTypeNode(\n checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(variableDeclaration)),\n scope,\n 1 /* NoTruncation */,\n 8 /* AllowUnresolvedNames */\n );\n typeElements.push(factory.createPropertySignature(\n /*modifiers*/\n void 0,\n /*name*/\n variableDeclaration.symbol.name,\n /*questionToken*/\n void 0,\n /*type*/\n variableType\n ));\n sawExplicitType = sawExplicitType || variableDeclaration.type !== void 0;\n commonNodeFlags = commonNodeFlags & variableDeclaration.parent.flags;\n }\n const typeLiteral = sawExplicitType ? factory.createTypeLiteralNode(typeElements) : void 0;\n if (typeLiteral) {\n setEmitFlags(typeLiteral, 1 /* SingleLine */);\n }\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n factory.createObjectBindingPattern(bindingElements),\n /*exclamationToken*/\n void 0,\n /*type*/\n typeLiteral,\n /*initializer*/\n call\n )],\n commonNodeFlags\n )\n ));\n }\n } else if (exposedVariableDeclarations.length || writes) {\n if (exposedVariableDeclarations.length) {\n for (const variableDeclaration of exposedVariableDeclarations) {\n let flags = variableDeclaration.parent.flags;\n if (flags & 2 /* Const */) {\n flags = flags & ~2 /* Const */ | 1 /* Let */;\n }\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n variableDeclaration.symbol.name,\n /*exclamationToken*/\n void 0,\n getTypeDeepCloneUnionUndefined(variableDeclaration.type)\n )],\n flags\n )\n ));\n }\n }\n if (returnValueProperty) {\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n returnValueProperty,\n /*exclamationToken*/\n void 0,\n getTypeDeepCloneUnionUndefined(returnType)\n )],\n 1 /* Let */\n )\n ));\n }\n const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n if (returnValueProperty) {\n assignments.unshift(factory.createShorthandPropertyAssignment(returnValueProperty));\n }\n if (assignments.length === 1) {\n Debug.assert(!returnValueProperty, \"Shouldn't have returnValueProperty here\");\n newNodes.push(factory.createExpressionStatement(factory.createAssignment(assignments[0].name, call)));\n if (range.facts & 1 /* HasReturn */) {\n newNodes.push(factory.createReturnStatement());\n }\n } else {\n newNodes.push(factory.createExpressionStatement(factory.createAssignment(factory.createObjectLiteralExpression(assignments), call)));\n if (returnValueProperty) {\n newNodes.push(factory.createReturnStatement(factory.createIdentifier(returnValueProperty)));\n }\n }\n } else {\n if (range.facts & 1 /* HasReturn */) {\n newNodes.push(factory.createReturnStatement(call));\n } else if (isReadonlyArray(range.range)) {\n newNodes.push(factory.createExpressionStatement(call));\n } else {\n newNodes.push(call);\n }\n }\n if (isReadonlyArray(range.range)) {\n changeTracker.replaceNodeRangeWithNodes(context.file, first(range.range), last(range.range), newNodes);\n } else {\n changeTracker.replaceNodeWithNodes(context.file, range.range, newNodes);\n }\n const edits = changeTracker.getChanges();\n const renameRange = isReadonlyArray(range.range) ? first(range.range) : range.range;\n const renameFilename = renameRange.getSourceFile().fileName;\n const renameLocation = getRenameLocation(\n edits,\n renameFilename,\n functionNameText,\n /*preferLastLocation*/\n false\n );\n return { renameFilename, renameLocation, edits };\n function getTypeDeepCloneUnionUndefined(typeNode) {\n if (typeNode === void 0) {\n return void 0;\n }\n const clone2 = getSynthesizedDeepClone(typeNode);\n let withoutParens = clone2;\n while (isParenthesizedTypeNode(withoutParens)) {\n withoutParens = withoutParens.type;\n }\n return isUnionTypeNode(withoutParens) && find(withoutParens.types, (t) => t.kind === 157 /* UndefinedKeyword */) ? clone2 : factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n}\nfunction extractConstantInScope(node, scope, { substitutions }, rangeFacts, context) {\n const checker = context.program.getTypeChecker();\n const file = scope.getSourceFile();\n const localNameText = getIdentifierForNode(node, scope, checker, file);\n const isJS = isInJSFile(scope);\n let variableType = isJS || !checker.isContextSensitive(node) ? void 0 : checker.typeToTypeNode(checker.getContextualType(node), scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n let initializer = transformConstantInitializer(skipParentheses(node), substitutions);\n ({ variableType, initializer } = transformFunctionInitializerAndType(variableType, initializer));\n suppressLeadingAndTrailingTrivia(initializer);\n const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n if (isClassLike(scope)) {\n Debug.assert(!isJS, \"Cannot extract to a JS class\");\n const modifiers = [];\n modifiers.push(factory.createModifier(123 /* PrivateKeyword */));\n if (rangeFacts & 32 /* InStaticRegion */) {\n modifiers.push(factory.createModifier(126 /* StaticKeyword */));\n }\n modifiers.push(factory.createModifier(148 /* ReadonlyKeyword */));\n const newVariable = factory.createPropertyDeclaration(\n modifiers,\n localNameText,\n /*questionOrExclamationToken*/\n void 0,\n variableType,\n initializer\n );\n let localReference = factory.createPropertyAccessExpression(\n rangeFacts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.getText()) : factory.createThis(),\n factory.createIdentifier(localNameText)\n );\n if (isInJSXContent(node)) {\n localReference = factory.createJsxExpression(\n /*dotDotDotToken*/\n void 0,\n localReference\n );\n }\n const maxInsertionPos = node.pos;\n const nodeToInsertBefore = getNodeToInsertPropertyBefore(maxInsertionPos, scope);\n changeTracker.insertNodeBefore(\n context.file,\n nodeToInsertBefore,\n newVariable,\n /*blankLineBetween*/\n true\n );\n changeTracker.replaceNode(context.file, node, localReference);\n } else {\n const newVariableDeclaration = factory.createVariableDeclaration(\n localNameText,\n /*exclamationToken*/\n void 0,\n variableType,\n initializer\n );\n const oldVariableDeclaration = getContainingVariableDeclarationIfInList(node, scope);\n if (oldVariableDeclaration) {\n changeTracker.insertNodeBefore(context.file, oldVariableDeclaration, newVariableDeclaration);\n const localReference = factory.createIdentifier(localNameText);\n changeTracker.replaceNode(context.file, node, localReference);\n } else if (node.parent.kind === 245 /* ExpressionStatement */ && scope === findAncestor(node, isScope)) {\n const newVariableStatement = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)\n );\n changeTracker.replaceNode(context.file, node.parent, newVariableStatement);\n } else {\n const newVariableStatement = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)\n );\n const nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope);\n if (nodeToInsertBefore.pos === 0) {\n changeTracker.insertNodeAtTopOfFile(\n context.file,\n newVariableStatement,\n /*blankLineBetween*/\n false\n );\n } else {\n changeTracker.insertNodeBefore(\n context.file,\n nodeToInsertBefore,\n newVariableStatement,\n /*blankLineBetween*/\n false\n );\n }\n if (node.parent.kind === 245 /* ExpressionStatement */) {\n changeTracker.delete(context.file, node.parent);\n } else {\n let localReference = factory.createIdentifier(localNameText);\n if (isInJSXContent(node)) {\n localReference = factory.createJsxExpression(\n /*dotDotDotToken*/\n void 0,\n localReference\n );\n }\n changeTracker.replaceNode(context.file, node, localReference);\n }\n }\n }\n const edits = changeTracker.getChanges();\n const renameFilename = node.getSourceFile().fileName;\n const renameLocation = getRenameLocation(\n edits,\n renameFilename,\n localNameText,\n /*preferLastLocation*/\n true\n );\n return { renameFilename, renameLocation, edits };\n function transformFunctionInitializerAndType(variableType2, initializer2) {\n if (variableType2 === void 0) return { variableType: variableType2, initializer: initializer2 };\n if (!isFunctionExpression(initializer2) && !isArrowFunction(initializer2) || !!initializer2.typeParameters) return { variableType: variableType2, initializer: initializer2 };\n const functionType = checker.getTypeAtLocation(node);\n const functionSignature = singleOrUndefined(checker.getSignaturesOfType(functionType, 0 /* Call */));\n if (!functionSignature) return { variableType: variableType2, initializer: initializer2 };\n if (!!functionSignature.getTypeParameters()) return { variableType: variableType2, initializer: initializer2 };\n const parameters = [];\n let hasAny = false;\n for (const p of initializer2.parameters) {\n if (p.type) {\n parameters.push(p);\n } else {\n const paramType = checker.getTypeAtLocation(p);\n if (paramType === checker.getAnyType()) hasAny = true;\n parameters.push(factory.updateParameterDeclaration(p, p.modifiers, p.dotDotDotToken, p.name, p.questionToken, p.type || checker.typeToTypeNode(paramType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */), p.initializer));\n }\n }\n if (hasAny) return { variableType: variableType2, initializer: initializer2 };\n variableType2 = void 0;\n if (isArrowFunction(initializer2)) {\n initializer2 = factory.updateArrowFunction(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */), initializer2.equalsGreaterThanToken, initializer2.body);\n } else {\n if (functionSignature && !!functionSignature.thisParameter) {\n const firstParameter = firstOrUndefined(parameters);\n if (!firstParameter || isIdentifier(firstParameter.name) && firstParameter.name.escapedText !== \"this\") {\n const thisType = checker.getTypeOfSymbolAtLocation(functionSignature.thisParameter, node);\n parameters.splice(\n 0,\n 0,\n factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"this\",\n /*questionToken*/\n void 0,\n checker.typeToTypeNode(thisType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */)\n )\n );\n }\n }\n initializer2 = factory.updateFunctionExpression(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.asteriskToken, initializer2.name, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */), initializer2.body);\n }\n return { variableType: variableType2, initializer: initializer2 };\n }\n}\nfunction getContainingVariableDeclarationIfInList(node, scope) {\n let prevNode;\n while (node !== void 0 && node !== scope) {\n if (isVariableDeclaration(node) && node.initializer === prevNode && isVariableDeclarationList(node.parent) && node.parent.declarations.length > 1) {\n return node;\n }\n prevNode = node;\n node = node.parent;\n }\n}\nfunction getFirstDeclarationBeforePosition(type, position) {\n let firstDeclaration;\n const symbol = type.symbol;\n if (symbol && symbol.declarations) {\n for (const declaration of symbol.declarations) {\n if ((firstDeclaration === void 0 || declaration.pos < firstDeclaration.pos) && declaration.pos < position) {\n firstDeclaration = declaration;\n }\n }\n }\n return firstDeclaration;\n}\nfunction compareTypesByDeclarationOrder({ type: type1, declaration: declaration1 }, { type: type2, declaration: declaration2 }) {\n return compareProperties(declaration1, declaration2, \"pos\", compareValues) || compareStringsCaseSensitive(\n type1.symbol ? type1.symbol.getName() : \"\",\n type2.symbol ? type2.symbol.getName() : \"\"\n ) || compareValues(type1.id, type2.id);\n}\nfunction getCalledExpression(scope, range, functionNameText) {\n const functionReference = factory.createIdentifier(functionNameText);\n if (isClassLike(scope)) {\n const lhs = range.facts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.text) : factory.createThis();\n return factory.createPropertyAccessExpression(lhs, functionReference);\n } else {\n return functionReference;\n }\n}\nfunction transformFunctionBody(body, exposedVariableDeclarations, writes, substitutions, hasReturn2) {\n const hasWritesOrVariableDeclarations = writes !== void 0 || exposedVariableDeclarations.length > 0;\n if (isBlock(body) && !hasWritesOrVariableDeclarations && substitutions.size === 0) {\n return { body: factory.createBlock(\n body.statements,\n /*multiLine*/\n true\n ), returnValueProperty: void 0 };\n }\n let returnValueProperty;\n let ignoreReturns = false;\n const statements = factory.createNodeArray(isBlock(body) ? body.statements.slice(0) : [isStatement(body) ? body : factory.createReturnStatement(skipParentheses(body))]);\n if (hasWritesOrVariableDeclarations || substitutions.size) {\n const rewrittenStatements = visitNodes2(statements, visitor, isStatement).slice();\n if (hasWritesOrVariableDeclarations && !hasReturn2 && isStatement(body)) {\n const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n if (assignments.length === 1) {\n rewrittenStatements.push(factory.createReturnStatement(assignments[0].name));\n } else {\n rewrittenStatements.push(factory.createReturnStatement(factory.createObjectLiteralExpression(assignments)));\n }\n }\n return { body: factory.createBlock(\n rewrittenStatements,\n /*multiLine*/\n true\n ), returnValueProperty };\n } else {\n return { body: factory.createBlock(\n statements,\n /*multiLine*/\n true\n ), returnValueProperty: void 0 };\n }\n function visitor(node) {\n if (!ignoreReturns && isReturnStatement(node) && hasWritesOrVariableDeclarations) {\n const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n if (node.expression) {\n if (!returnValueProperty) {\n returnValueProperty = \"__return\";\n }\n assignments.unshift(factory.createPropertyAssignment(returnValueProperty, visitNode(node.expression, visitor, isExpression)));\n }\n if (assignments.length === 1) {\n return factory.createReturnStatement(assignments[0].name);\n } else {\n return factory.createReturnStatement(factory.createObjectLiteralExpression(assignments));\n }\n } else {\n const oldIgnoreReturns = ignoreReturns;\n ignoreReturns = ignoreReturns || isFunctionLikeDeclaration(node) || isClassLike(node);\n const substitution = substitutions.get(getNodeId(node).toString());\n const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(\n node,\n visitor,\n /*context*/\n void 0\n );\n ignoreReturns = oldIgnoreReturns;\n return result;\n }\n }\n}\nfunction transformConstantInitializer(initializer, substitutions) {\n return substitutions.size ? visitor(initializer) : initializer;\n function visitor(node) {\n const substitution = substitutions.get(getNodeId(node).toString());\n return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(\n node,\n visitor,\n /*context*/\n void 0\n );\n }\n}\nfunction getStatementsOrClassElements(scope) {\n if (isFunctionLikeDeclaration(scope)) {\n const body = scope.body;\n if (isBlock(body)) {\n return body.statements;\n }\n } else if (isModuleBlock(scope) || isSourceFile(scope)) {\n return scope.statements;\n } else if (isClassLike(scope)) {\n return scope.members;\n } else {\n assertType(scope);\n }\n return emptyArray;\n}\nfunction getNodeToInsertFunctionBefore(minPos, scope) {\n return find(getStatementsOrClassElements(scope), (child) => child.pos >= minPos && isFunctionLikeDeclaration(child) && !isConstructorDeclaration(child));\n}\nfunction getNodeToInsertPropertyBefore(maxPos, scope) {\n const members = scope.members;\n Debug.assert(members.length > 0, \"Found no members\");\n let prevMember;\n let allProperties = true;\n for (const member of members) {\n if (member.pos > maxPos) {\n return prevMember || members[0];\n }\n if (allProperties && !isPropertyDeclaration(member)) {\n if (prevMember !== void 0) {\n return member;\n }\n allProperties = false;\n }\n prevMember = member;\n }\n if (prevMember === void 0) return Debug.fail();\n return prevMember;\n}\nfunction getNodeToInsertConstantBefore(node, scope) {\n Debug.assert(!isClassLike(scope));\n let prevScope;\n for (let curr = node; curr !== scope; curr = curr.parent) {\n if (isScope(curr)) {\n prevScope = curr;\n }\n }\n for (let curr = (prevScope || node).parent; ; curr = curr.parent) {\n if (isBlockLike(curr)) {\n let prevStatement;\n for (const statement of curr.statements) {\n if (statement.pos > node.pos) {\n break;\n }\n prevStatement = statement;\n }\n if (!prevStatement && isCaseClause(curr)) {\n Debug.assert(isSwitchStatement(curr.parent.parent), \"Grandparent isn't a switch statement\");\n return curr.parent.parent;\n }\n return Debug.checkDefined(prevStatement, \"prevStatement failed to get set\");\n }\n Debug.assert(curr !== scope, \"Didn't encounter a block-like before encountering scope\");\n }\n}\nfunction getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes) {\n const variableAssignments = map(exposedVariableDeclarations, (v) => factory.createShorthandPropertyAssignment(v.symbol.name));\n const writeAssignments = map(writes, (w) => factory.createShorthandPropertyAssignment(w.symbol.name));\n return variableAssignments === void 0 ? writeAssignments : writeAssignments === void 0 ? variableAssignments : variableAssignments.concat(writeAssignments);\n}\nfunction isReadonlyArray(v) {\n return isArray(v);\n}\nfunction getEnclosingTextRange(targetRange, sourceFile) {\n return isReadonlyArray(targetRange.range) ? { pos: first(targetRange.range).getStart(sourceFile), end: last(targetRange.range).getEnd() } : targetRange.range;\n}\nfunction collectReadsAndWrites(targetRange, scopes, enclosingTextRange, sourceFile, checker, cancellationToken) {\n const allTypeParameterUsages = /* @__PURE__ */ new Map();\n const usagesPerScope = [];\n const substitutionsPerScope = [];\n const functionErrorsPerScope = [];\n const constantErrorsPerScope = [];\n const visibleDeclarationsInExtractedRange = [];\n const exposedVariableSymbolSet = /* @__PURE__ */ new Map();\n const exposedVariableDeclarations = [];\n let firstExposedNonVariableDeclaration;\n const expression = !isReadonlyArray(targetRange.range) ? targetRange.range : targetRange.range.length === 1 && isExpressionStatement(targetRange.range[0]) ? targetRange.range[0].expression : void 0;\n let expressionDiagnostic;\n if (expression === void 0) {\n const statements = targetRange.range;\n const start = first(statements).getStart();\n const end = last(statements).end;\n expressionDiagnostic = createFileDiagnostic(sourceFile, start, end - start, Messages.expressionExpected);\n } else if (checker.getTypeAtLocation(expression).flags & (16384 /* Void */ | 131072 /* Never */)) {\n expressionDiagnostic = createDiagnosticForNode(expression, Messages.uselessConstantType);\n }\n for (const scope of scopes) {\n usagesPerScope.push({ usages: /* @__PURE__ */ new Map(), typeParameterUsages: /* @__PURE__ */ new Map(), substitutions: /* @__PURE__ */ new Map() });\n substitutionsPerScope.push(/* @__PURE__ */ new Map());\n functionErrorsPerScope.push([]);\n const constantErrors = [];\n if (expressionDiagnostic) {\n constantErrors.push(expressionDiagnostic);\n }\n if (isClassLike(scope) && isInJSFile(scope)) {\n constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToJSClass));\n }\n if (isArrowFunction(scope) && !isBlock(scope.body)) {\n constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToExpressionArrowFunction));\n }\n constantErrorsPerScope.push(constantErrors);\n }\n const seenUsages = /* @__PURE__ */ new Map();\n const target = isReadonlyArray(targetRange.range) ? factory.createBlock(targetRange.range) : targetRange.range;\n const unmodifiedNode = isReadonlyArray(targetRange.range) ? first(targetRange.range) : targetRange.range;\n const inGenericContext = isInGenericContext(unmodifiedNode);\n collectUsages(target);\n if (inGenericContext && !isReadonlyArray(targetRange.range) && !isJsxAttribute(targetRange.range)) {\n const contextualType = checker.getContextualType(targetRange.range);\n recordTypeParameterUsages(contextualType);\n }\n if (allTypeParameterUsages.size > 0) {\n const seenTypeParameterUsages = /* @__PURE__ */ new Map();\n let i = 0;\n for (let curr = unmodifiedNode; curr !== void 0 && i < scopes.length; curr = curr.parent) {\n if (curr === scopes[i]) {\n seenTypeParameterUsages.forEach((typeParameter, id) => {\n usagesPerScope[i].typeParameterUsages.set(id, typeParameter);\n });\n i++;\n }\n if (isDeclarationWithTypeParameters(curr)) {\n for (const typeParameterDecl of getEffectiveTypeParameterDeclarations(curr)) {\n const typeParameter = checker.getTypeAtLocation(typeParameterDecl);\n if (allTypeParameterUsages.has(typeParameter.id.toString())) {\n seenTypeParameterUsages.set(typeParameter.id.toString(), typeParameter);\n }\n }\n }\n }\n Debug.assert(i === scopes.length, \"Should have iterated all scopes\");\n }\n if (visibleDeclarationsInExtractedRange.length) {\n const containingLexicalScopeOfExtraction = isBlockScope(scopes[0], scopes[0].parent) ? scopes[0] : getEnclosingBlockScopeContainer(scopes[0]);\n forEachChild(containingLexicalScopeOfExtraction, checkForUsedDeclarations);\n }\n for (let i = 0; i < scopes.length; i++) {\n const scopeUsages = usagesPerScope[i];\n if (i > 0 && (scopeUsages.usages.size > 0 || scopeUsages.typeParameterUsages.size > 0)) {\n const errorNode = isReadonlyArray(targetRange.range) ? targetRange.range[0] : targetRange.range;\n constantErrorsPerScope[i].push(createDiagnosticForNode(errorNode, Messages.cannotAccessVariablesFromNestedScopes));\n }\n if (targetRange.facts & 16 /* UsesThisInFunction */ && isClassLike(scopes[i])) {\n functionErrorsPerScope[i].push(createDiagnosticForNode(targetRange.thisNode, Messages.cannotExtractFunctionsContainingThisToMethod));\n }\n let hasWrite = false;\n let readonlyClassPropertyWrite;\n usagesPerScope[i].usages.forEach((value) => {\n if (value.usage === 2 /* Write */) {\n hasWrite = true;\n if (value.symbol.flags & 106500 /* ClassMember */ && value.symbol.valueDeclaration && hasEffectiveModifier(value.symbol.valueDeclaration, 8 /* Readonly */)) {\n readonlyClassPropertyWrite = value.symbol.valueDeclaration;\n }\n }\n });\n Debug.assert(isReadonlyArray(targetRange.range) || exposedVariableDeclarations.length === 0, \"No variable declarations expected if something was extracted\");\n if (hasWrite && !isReadonlyArray(targetRange.range)) {\n const diag2 = createDiagnosticForNode(targetRange.range, Messages.cannotWriteInExpression);\n functionErrorsPerScope[i].push(diag2);\n constantErrorsPerScope[i].push(diag2);\n } else if (readonlyClassPropertyWrite && i > 0) {\n const diag2 = createDiagnosticForNode(readonlyClassPropertyWrite, Messages.cannotExtractReadonlyPropertyInitializerOutsideConstructor);\n functionErrorsPerScope[i].push(diag2);\n constantErrorsPerScope[i].push(diag2);\n } else if (firstExposedNonVariableDeclaration) {\n const diag2 = createDiagnosticForNode(firstExposedNonVariableDeclaration, Messages.cannotExtractExportedEntity);\n functionErrorsPerScope[i].push(diag2);\n constantErrorsPerScope[i].push(diag2);\n }\n }\n return { target, usagesPerScope, functionErrorsPerScope, constantErrorsPerScope, exposedVariableDeclarations };\n function isInGenericContext(node) {\n return !!findAncestor(node, (n) => isDeclarationWithTypeParameters(n) && getEffectiveTypeParameterDeclarations(n).length !== 0);\n }\n function recordTypeParameterUsages(type) {\n const symbolWalker = checker.getSymbolWalker(() => (cancellationToken.throwIfCancellationRequested(), true));\n const { visitedTypes } = symbolWalker.walkType(type);\n for (const visitedType of visitedTypes) {\n if (visitedType.isTypeParameter()) {\n allTypeParameterUsages.set(visitedType.id.toString(), visitedType);\n }\n }\n }\n function collectUsages(node, valueUsage = 1 /* Read */) {\n if (inGenericContext) {\n const type = checker.getTypeAtLocation(node);\n recordTypeParameterUsages(type);\n }\n if (isDeclaration(node) && node.symbol) {\n visibleDeclarationsInExtractedRange.push(node);\n }\n if (isAssignmentExpression(node)) {\n collectUsages(node.left, 2 /* Write */);\n collectUsages(node.right);\n } else if (isUnaryExpressionWithWrite(node)) {\n collectUsages(node.operand, 2 /* Write */);\n } else if (isPropertyAccessExpression(node) || isElementAccessExpression(node)) {\n forEachChild(node, collectUsages);\n } else if (isIdentifier(node)) {\n if (!node.parent) {\n return;\n }\n if (isQualifiedName(node.parent) && node !== node.parent.left) {\n return;\n }\n if (isPropertyAccessExpression(node.parent) && node !== node.parent.expression) {\n return;\n }\n recordUsage(\n node,\n valueUsage,\n /*isTypeNode*/\n isPartOfTypeNode(node)\n );\n } else {\n forEachChild(node, collectUsages);\n }\n }\n function recordUsage(n, usage, isTypeNode2) {\n const symbolId = recordUsagebySymbol(n, usage, isTypeNode2);\n if (symbolId) {\n for (let i = 0; i < scopes.length; i++) {\n const substitution = substitutionsPerScope[i].get(symbolId);\n if (substitution) {\n usagesPerScope[i].substitutions.set(getNodeId(n).toString(), substitution);\n }\n }\n }\n }\n function recordUsagebySymbol(identifier, usage, isTypeName) {\n const symbol = getSymbolReferencedByIdentifier(identifier);\n if (!symbol) {\n return void 0;\n }\n const symbolId = getSymbolId(symbol).toString();\n const lastUsage = seenUsages.get(symbolId);\n if (lastUsage && lastUsage >= usage) {\n return symbolId;\n }\n seenUsages.set(symbolId, usage);\n if (lastUsage) {\n for (const perScope of usagesPerScope) {\n const prevEntry = perScope.usages.get(identifier.text);\n if (prevEntry) {\n perScope.usages.set(identifier.text, { usage, symbol, node: identifier });\n }\n }\n return symbolId;\n }\n const decls = symbol.getDeclarations();\n const declInFile = decls && find(decls, (d) => d.getSourceFile() === sourceFile);\n if (!declInFile) {\n return void 0;\n }\n if (rangeContainsStartEnd(enclosingTextRange, declInFile.getStart(), declInFile.end)) {\n return void 0;\n }\n if (targetRange.facts & 2 /* IsGenerator */ && usage === 2 /* Write */) {\n const diag2 = createDiagnosticForNode(identifier, Messages.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators);\n for (const errors of functionErrorsPerScope) {\n errors.push(diag2);\n }\n for (const errors of constantErrorsPerScope) {\n errors.push(diag2);\n }\n }\n for (let i = 0; i < scopes.length; i++) {\n const scope = scopes[i];\n const resolvedSymbol = checker.resolveName(\n symbol.name,\n scope,\n symbol.flags,\n /*excludeGlobals*/\n false\n );\n if (resolvedSymbol === symbol) {\n continue;\n }\n if (!substitutionsPerScope[i].has(symbolId)) {\n const substitution = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.exportSymbol || symbol, scope, isTypeName);\n if (substitution) {\n substitutionsPerScope[i].set(symbolId, substitution);\n } else if (isTypeName) {\n if (!(symbol.flags & 262144 /* TypeParameter */)) {\n const diag2 = createDiagnosticForNode(identifier, Messages.typeWillNotBeVisibleInTheNewScope);\n functionErrorsPerScope[i].push(diag2);\n constantErrorsPerScope[i].push(diag2);\n }\n } else {\n usagesPerScope[i].usages.set(identifier.text, { usage, symbol, node: identifier });\n }\n }\n }\n return symbolId;\n }\n function checkForUsedDeclarations(node) {\n if (node === targetRange.range || isReadonlyArray(targetRange.range) && targetRange.range.includes(node)) {\n return;\n }\n const sym = isIdentifier(node) ? getSymbolReferencedByIdentifier(node) : checker.getSymbolAtLocation(node);\n if (sym) {\n const decl = find(visibleDeclarationsInExtractedRange, (d) => d.symbol === sym);\n if (decl) {\n if (isVariableDeclaration(decl)) {\n const idString = decl.symbol.id.toString();\n if (!exposedVariableSymbolSet.has(idString)) {\n exposedVariableDeclarations.push(decl);\n exposedVariableSymbolSet.set(idString, true);\n }\n } else {\n firstExposedNonVariableDeclaration = firstExposedNonVariableDeclaration || decl;\n }\n }\n }\n forEachChild(node, checkForUsedDeclarations);\n }\n function getSymbolReferencedByIdentifier(identifier) {\n return identifier.parent && isShorthandPropertyAssignment(identifier.parent) && identifier.parent.name === identifier ? checker.getShorthandAssignmentValueSymbol(identifier.parent) : checker.getSymbolAtLocation(identifier);\n }\n function tryReplaceWithQualifiedNameOrPropertyAccess(symbol, scopeDecl, isTypeNode2) {\n if (!symbol) {\n return void 0;\n }\n const decls = symbol.getDeclarations();\n if (decls && decls.some((d) => d.parent === scopeDecl)) {\n return factory.createIdentifier(symbol.name);\n }\n const prefix = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.parent, scopeDecl, isTypeNode2);\n if (prefix === void 0) {\n return void 0;\n }\n return isTypeNode2 ? factory.createQualifiedName(prefix, factory.createIdentifier(symbol.name)) : factory.createPropertyAccessExpression(prefix, symbol.name);\n }\n}\nfunction getExtractableParent(node) {\n return findAncestor(node, (node2) => node2.parent && isExtractableExpression(node2) && !isBinaryExpression(node2.parent));\n}\nfunction isExtractableExpression(node) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 307 /* EnumMember */:\n return false;\n }\n switch (node.kind) {\n case 11 /* StringLiteral */:\n return parent2.kind !== 273 /* ImportDeclaration */ && parent2.kind !== 277 /* ImportSpecifier */;\n case 231 /* SpreadElement */:\n case 207 /* ObjectBindingPattern */:\n case 209 /* BindingElement */:\n return false;\n case 80 /* Identifier */:\n return parent2.kind !== 209 /* BindingElement */ && parent2.kind !== 277 /* ImportSpecifier */ && parent2.kind !== 282 /* ExportSpecifier */;\n }\n return true;\n}\nfunction isInJSXContent(node) {\n return isStringLiteralJsxAttribute(node) || (isJsxElement(node) || isJsxSelfClosingElement(node) || isJsxFragment(node)) && (isJsxElement(node.parent) || isJsxFragment(node.parent));\n}\nfunction isStringLiteralJsxAttribute(node) {\n return isStringLiteral(node) && node.parent && isJsxAttribute(node.parent);\n}\n\n// src/services/_namespaces/ts.refactor.generateGetAccessorAndSetAccessor.ts\nvar ts_refactor_generateGetAccessorAndSetAccessor_exports = {};\n\n// src/services/refactors/generateGetAccessorAndSetAccessor.ts\nvar actionName = \"Generate 'get' and 'set' accessors\";\nvar actionDescription = getLocaleSpecificMessage(Diagnostics.Generate_get_and_set_accessors);\nvar generateGetSetAction = {\n name: actionName,\n description: actionDescription,\n kind: \"refactor.rewrite.property.generateAccessors\"\n};\nregisterRefactor(actionName, {\n kinds: [generateGetSetAction.kind],\n getEditsForAction: function getRefactorActionsToGenerateGetAndSetAccessors(context, actionName2) {\n if (!context.endPosition) return void 0;\n const info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition);\n Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n const edits = ts_codefix_exports.generateAccessorFromProperty(context.file, context.program, context.startPosition, context.endPosition, context, actionName2);\n if (!edits) return void 0;\n const renameFilename = context.file.fileName;\n const nameNeedRename = info.renameAccessor ? info.accessorName : info.fieldName;\n const renameLocationOffset = isIdentifier(nameNeedRename) ? 0 : -1;\n const renameLocation = renameLocationOffset + getRenameLocation(\n edits,\n renameFilename,\n nameNeedRename.text,\n /*preferLastLocation*/\n isParameter(info.declaration)\n );\n return { renameFilename, renameLocation, edits };\n },\n getAvailableActions(context) {\n if (!context.endPosition) return emptyArray;\n const info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition, context.triggerReason === \"invoked\");\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n return [{\n name: actionName,\n description: actionDescription,\n actions: [generateGetSetAction]\n }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{\n name: actionName,\n description: actionDescription,\n actions: [{ ...generateGetSetAction, notApplicableReason: info.error }]\n }];\n }\n return emptyArray;\n }\n});\n\n// src/services/_namespaces/ts.refactor.inferFunctionReturnType.ts\nvar ts_refactor_inferFunctionReturnType_exports = {};\n\n// src/services/refactors/inferFunctionReturnType.ts\nvar refactorName13 = \"Infer function return type\";\nvar refactorDescription7 = getLocaleSpecificMessage(Diagnostics.Infer_function_return_type);\nvar inferReturnTypeAction = {\n name: refactorName13,\n description: refactorDescription7,\n kind: \"refactor.rewrite.function.returnType\"\n};\nregisterRefactor(refactorName13, {\n kinds: [inferReturnTypeAction.kind],\n getEditsForAction: getRefactorEditsToInferReturnType,\n getAvailableActions: getRefactorActionsToInferReturnType\n});\nfunction getRefactorEditsToInferReturnType(context) {\n const info = getInfo4(context);\n if (info && !isRefactorErrorInfo(info)) {\n const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange7(context.file, t, info.declaration, info.returnTypeNode));\n return { renameFilename: void 0, renameLocation: void 0, edits };\n }\n return void 0;\n}\nfunction getRefactorActionsToInferReturnType(context) {\n const info = getInfo4(context);\n if (!info) return emptyArray;\n if (!isRefactorErrorInfo(info)) {\n return [{\n name: refactorName13,\n description: refactorDescription7,\n actions: [inferReturnTypeAction]\n }];\n }\n if (context.preferences.provideRefactorNotApplicableReason) {\n return [{\n name: refactorName13,\n description: refactorDescription7,\n actions: [{ ...inferReturnTypeAction, notApplicableReason: info.error }]\n }];\n }\n return emptyArray;\n}\nfunction doChange7(sourceFile, changes, declaration, typeNode) {\n const closeParen = findChildOfKind(declaration, 22 /* CloseParenToken */, sourceFile);\n const needParens = isArrowFunction(declaration) && closeParen === void 0;\n const endNode2 = needParens ? first(declaration.parameters) : closeParen;\n if (endNode2) {\n if (needParens) {\n changes.insertNodeBefore(sourceFile, endNode2, factory.createToken(21 /* OpenParenToken */));\n changes.insertNodeAfter(sourceFile, endNode2, factory.createToken(22 /* CloseParenToken */));\n }\n changes.insertNodeAt(sourceFile, endNode2.end, typeNode, { prefix: \": \" });\n }\n}\nfunction getInfo4(context) {\n if (isInJSFile(context.file) || !refactorKindBeginsWith(inferReturnTypeAction.kind, context.kind)) return;\n const token = getTouchingPropertyName(context.file, context.startPosition);\n const declaration = findAncestor(token, (n) => isBlock(n) || n.parent && isArrowFunction(n.parent) && (n.kind === 39 /* EqualsGreaterThanToken */ || n.parent.body === n) ? \"quit\" : isConvertibleDeclaration(n));\n if (!declaration || !declaration.body || declaration.type) {\n return { error: getLocaleSpecificMessage(Diagnostics.Return_type_must_be_inferred_from_a_function) };\n }\n const typeChecker = context.program.getTypeChecker();\n let returnType;\n if (typeChecker.isImplementationOfOverload(declaration)) {\n const signatures = typeChecker.getTypeAtLocation(declaration).getCallSignatures();\n if (signatures.length > 1) {\n returnType = typeChecker.getUnionType(mapDefined(signatures, (s) => s.getReturnType()));\n }\n }\n if (!returnType) {\n const signature = typeChecker.getSignatureFromDeclaration(declaration);\n if (signature) {\n const typePredicate = typeChecker.getTypePredicateOfSignature(signature);\n if (typePredicate && typePredicate.type) {\n const typePredicateTypeNode = typeChecker.typePredicateToTypePredicateNode(typePredicate, declaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n if (typePredicateTypeNode) {\n return { declaration, returnTypeNode: typePredicateTypeNode };\n }\n } else {\n returnType = typeChecker.getReturnTypeOfSignature(signature);\n }\n }\n }\n if (!returnType) {\n return { error: getLocaleSpecificMessage(Diagnostics.Could_not_determine_function_return_type) };\n }\n const returnTypeNode = typeChecker.typeToTypeNode(returnType, declaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n if (returnTypeNode) {\n return { declaration, returnTypeNode };\n }\n}\nfunction isConvertibleDeclaration(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n return true;\n default:\n return false;\n }\n}\n\n// src/services/classifier2020.ts\nvar TokenEncodingConsts = /* @__PURE__ */ ((TokenEncodingConsts2) => {\n TokenEncodingConsts2[TokenEncodingConsts2[\"typeOffset\"] = 8] = \"typeOffset\";\n TokenEncodingConsts2[TokenEncodingConsts2[\"modifierMask\"] = 255] = \"modifierMask\";\n return TokenEncodingConsts2;\n})(TokenEncodingConsts || {});\nvar TokenType = /* @__PURE__ */ ((TokenType2) => {\n TokenType2[TokenType2[\"class\"] = 0] = \"class\";\n TokenType2[TokenType2[\"enum\"] = 1] = \"enum\";\n TokenType2[TokenType2[\"interface\"] = 2] = \"interface\";\n TokenType2[TokenType2[\"namespace\"] = 3] = \"namespace\";\n TokenType2[TokenType2[\"typeParameter\"] = 4] = \"typeParameter\";\n TokenType2[TokenType2[\"type\"] = 5] = \"type\";\n TokenType2[TokenType2[\"parameter\"] = 6] = \"parameter\";\n TokenType2[TokenType2[\"variable\"] = 7] = \"variable\";\n TokenType2[TokenType2[\"enumMember\"] = 8] = \"enumMember\";\n TokenType2[TokenType2[\"property\"] = 9] = \"property\";\n TokenType2[TokenType2[\"function\"] = 10] = \"function\";\n TokenType2[TokenType2[\"member\"] = 11] = \"member\";\n return TokenType2;\n})(TokenType || {});\nvar TokenModifier = /* @__PURE__ */ ((TokenModifier2) => {\n TokenModifier2[TokenModifier2[\"declaration\"] = 0] = \"declaration\";\n TokenModifier2[TokenModifier2[\"static\"] = 1] = \"static\";\n TokenModifier2[TokenModifier2[\"async\"] = 2] = \"async\";\n TokenModifier2[TokenModifier2[\"readonly\"] = 3] = \"readonly\";\n TokenModifier2[TokenModifier2[\"defaultLibrary\"] = 4] = \"defaultLibrary\";\n TokenModifier2[TokenModifier2[\"local\"] = 5] = \"local\";\n return TokenModifier2;\n})(TokenModifier || {});\nfunction getSemanticClassifications2(program, cancellationToken, sourceFile, span) {\n const classifications = getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span);\n Debug.assert(classifications.spans.length % 3 === 0);\n const dense = classifications.spans;\n const result = [];\n for (let i = 0; i < dense.length; i += 3) {\n result.push({\n textSpan: createTextSpan(dense[i], dense[i + 1]),\n classificationType: dense[i + 2]\n });\n }\n return result;\n}\nfunction getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span) {\n return {\n spans: getSemanticTokens(program, sourceFile, span, cancellationToken),\n endOfLineState: 0 /* None */\n };\n}\nfunction getSemanticTokens(program, sourceFile, span, cancellationToken) {\n const resultTokens = [];\n const collector = (node, typeIdx, modifierSet) => {\n resultTokens.push(node.getStart(sourceFile), node.getWidth(sourceFile), (typeIdx + 1 << 8 /* typeOffset */) + modifierSet);\n };\n if (program && sourceFile) {\n collectTokens(program, sourceFile, span, collector, cancellationToken);\n }\n return resultTokens;\n}\nfunction collectTokens(program, sourceFile, span, collector, cancellationToken) {\n const typeChecker = program.getTypeChecker();\n let inJSXElement = false;\n function visit(node) {\n switch (node.kind) {\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n cancellationToken.throwIfCancellationRequested();\n }\n if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth()) || node.getFullWidth() === 0) {\n return;\n }\n const prevInJSXElement = inJSXElement;\n if (isJsxElement(node) || isJsxSelfClosingElement(node)) {\n inJSXElement = true;\n }\n if (isJsxExpression(node)) {\n inJSXElement = false;\n }\n if (isIdentifier(node) && !inJSXElement && !inImportClause(node) && !isInfinityOrNaNString(node.escapedText)) {\n let symbol = typeChecker.getSymbolAtLocation(node);\n if (symbol) {\n if (symbol.flags & 2097152 /* Alias */) {\n symbol = typeChecker.getAliasedSymbol(symbol);\n }\n let typeIdx = classifySymbol2(symbol, getMeaningFromLocation(node));\n if (typeIdx !== void 0) {\n let modifierSet = 0;\n if (node.parent) {\n const parentIsDeclaration = isBindingElement(node.parent) || tokenFromDeclarationMapping.get(node.parent.kind) === typeIdx;\n if (parentIsDeclaration && node.parent.name === node) {\n modifierSet = 1 << 0 /* declaration */;\n }\n }\n if (typeIdx === 6 /* parameter */ && isRightSideOfQualifiedNameOrPropertyAccess2(node)) {\n typeIdx = 9 /* property */;\n }\n typeIdx = reclassifyByType(typeChecker, node, typeIdx);\n const decl = symbol.valueDeclaration;\n if (decl) {\n const modifiers = getCombinedModifierFlags(decl);\n const nodeFlags = getCombinedNodeFlags(decl);\n if (modifiers & 256 /* Static */) {\n modifierSet |= 1 << 1 /* static */;\n }\n if (modifiers & 1024 /* Async */) {\n modifierSet |= 1 << 2 /* async */;\n }\n if (typeIdx !== 0 /* class */ && typeIdx !== 2 /* interface */) {\n if (modifiers & 8 /* Readonly */ || nodeFlags & 2 /* Const */ || symbol.getFlags() & 8 /* EnumMember */) {\n modifierSet |= 1 << 3 /* readonly */;\n }\n }\n if ((typeIdx === 7 /* variable */ || typeIdx === 10 /* function */) && isLocalDeclaration(decl, sourceFile)) {\n modifierSet |= 1 << 5 /* local */;\n }\n if (program.isSourceFileDefaultLibrary(decl.getSourceFile())) {\n modifierSet |= 1 << 4 /* defaultLibrary */;\n }\n } else if (symbol.declarations && symbol.declarations.some((d) => program.isSourceFileDefaultLibrary(d.getSourceFile()))) {\n modifierSet |= 1 << 4 /* defaultLibrary */;\n }\n collector(node, typeIdx, modifierSet);\n }\n }\n }\n forEachChild(node, visit);\n inJSXElement = prevInJSXElement;\n }\n visit(sourceFile);\n}\nfunction classifySymbol2(symbol, meaning) {\n const flags = symbol.getFlags();\n if (flags & 32 /* Class */) {\n return 0 /* class */;\n } else if (flags & 384 /* Enum */) {\n return 1 /* enum */;\n } else if (flags & 524288 /* TypeAlias */) {\n return 5 /* type */;\n } else if (flags & 64 /* Interface */) {\n if (meaning & 2 /* Type */) {\n return 2 /* interface */;\n }\n } else if (flags & 262144 /* TypeParameter */) {\n return 4 /* typeParameter */;\n }\n let decl = symbol.valueDeclaration || symbol.declarations && symbol.declarations[0];\n if (decl && isBindingElement(decl)) {\n decl = getDeclarationForBindingElement(decl);\n }\n return decl && tokenFromDeclarationMapping.get(decl.kind);\n}\nfunction reclassifyByType(typeChecker, node, typeIdx) {\n if (typeIdx === 7 /* variable */ || typeIdx === 9 /* property */ || typeIdx === 6 /* parameter */) {\n const type = typeChecker.getTypeAtLocation(node);\n if (type) {\n const test = (condition) => {\n return condition(type) || type.isUnion() && type.types.some(condition);\n };\n if (typeIdx !== 6 /* parameter */ && test((t) => t.getConstructSignatures().length > 0)) {\n return 0 /* class */;\n }\n if (test((t) => t.getCallSignatures().length > 0) && !test((t) => t.getProperties().length > 0) || isExpressionInCallExpression(node)) {\n return typeIdx === 9 /* property */ ? 11 /* member */ : 10 /* function */;\n }\n }\n }\n return typeIdx;\n}\nfunction isLocalDeclaration(decl, sourceFile) {\n if (isBindingElement(decl)) {\n decl = getDeclarationForBindingElement(decl);\n }\n if (isVariableDeclaration(decl)) {\n return (!isSourceFile(decl.parent.parent.parent) || isCatchClause(decl.parent)) && decl.getSourceFile() === sourceFile;\n } else if (isFunctionDeclaration(decl)) {\n return !isSourceFile(decl.parent) && decl.getSourceFile() === sourceFile;\n }\n return false;\n}\nfunction getDeclarationForBindingElement(element) {\n while (true) {\n if (isBindingElement(element.parent.parent)) {\n element = element.parent.parent;\n } else {\n return element.parent.parent;\n }\n }\n}\nfunction inImportClause(node) {\n const parent2 = node.parent;\n return parent2 && (isImportClause(parent2) || isImportSpecifier(parent2) || isNamespaceImport(parent2));\n}\nfunction isExpressionInCallExpression(node) {\n while (isRightSideOfQualifiedNameOrPropertyAccess2(node)) {\n node = node.parent;\n }\n return isCallExpression(node.parent) && node.parent.expression === node;\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccess2(node) {\n return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node;\n}\nvar tokenFromDeclarationMapping = /* @__PURE__ */ new Map([\n [261 /* VariableDeclaration */, 7 /* variable */],\n [170 /* Parameter */, 6 /* parameter */],\n [173 /* PropertyDeclaration */, 9 /* property */],\n [268 /* ModuleDeclaration */, 3 /* namespace */],\n [267 /* EnumDeclaration */, 1 /* enum */],\n [307 /* EnumMember */, 8 /* enumMember */],\n [264 /* ClassDeclaration */, 0 /* class */],\n [175 /* MethodDeclaration */, 11 /* member */],\n [263 /* FunctionDeclaration */, 10 /* function */],\n [219 /* FunctionExpression */, 10 /* function */],\n [174 /* MethodSignature */, 11 /* member */],\n [178 /* GetAccessor */, 9 /* property */],\n [179 /* SetAccessor */, 9 /* property */],\n [172 /* PropertySignature */, 9 /* property */],\n [265 /* InterfaceDeclaration */, 2 /* interface */],\n [266 /* TypeAliasDeclaration */, 5 /* type */],\n [169 /* TypeParameter */, 4 /* typeParameter */],\n [304 /* PropertyAssignment */, 9 /* property */],\n [305 /* ShorthandPropertyAssignment */, 9 /* property */]\n]);\n\n// src/services/services.ts\nvar servicesVersion = \"0.8\";\nfunction createNode(kind, pos, end, parent2) {\n const node = isNodeKind(kind) ? new NodeObject(kind, pos, end) : kind === 80 /* Identifier */ ? new IdentifierObject(80 /* Identifier */, pos, end) : kind === 81 /* PrivateIdentifier */ ? new PrivateIdentifierObject(81 /* PrivateIdentifier */, pos, end) : new TokenObject(kind, pos, end);\n node.parent = parent2;\n node.flags = parent2.flags & 101441536 /* ContextFlags */;\n return node;\n}\nvar NodeObject = class {\n constructor(kind, pos, end) {\n this.pos = pos;\n this.end = end;\n this.kind = kind;\n this.id = 0;\n this.flags = 0 /* None */;\n this.modifierFlagsCache = 0 /* None */;\n this.transformFlags = 0 /* None */;\n this.parent = void 0;\n this.original = void 0;\n this.emitNode = void 0;\n }\n assertHasRealPosition(message) {\n Debug.assert(!positionIsSynthesized(this.pos) && !positionIsSynthesized(this.end), message || \"Node must have a real position for this operation\");\n }\n getSourceFile() {\n return getSourceFileOfNode(this);\n }\n getStart(sourceFile, includeJsDocComment) {\n this.assertHasRealPosition();\n return getTokenPosOfNode(this, sourceFile, includeJsDocComment);\n }\n getFullStart() {\n this.assertHasRealPosition();\n return this.pos;\n }\n getEnd() {\n this.assertHasRealPosition();\n return this.end;\n }\n getWidth(sourceFile) {\n this.assertHasRealPosition();\n return this.getEnd() - this.getStart(sourceFile);\n }\n getFullWidth() {\n this.assertHasRealPosition();\n return this.end - this.pos;\n }\n getLeadingTriviaWidth(sourceFile) {\n this.assertHasRealPosition();\n return this.getStart(sourceFile) - this.pos;\n }\n getFullText(sourceFile) {\n this.assertHasRealPosition();\n return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end);\n }\n getText(sourceFile) {\n this.assertHasRealPosition();\n if (!sourceFile) {\n sourceFile = this.getSourceFile();\n }\n return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd());\n }\n getChildCount(sourceFile) {\n return this.getChildren(sourceFile).length;\n }\n getChildAt(index, sourceFile) {\n return this.getChildren(sourceFile)[index];\n }\n getChildren(sourceFile = getSourceFileOfNode(this)) {\n this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\");\n return getNodeChildren(this, sourceFile) ?? setNodeChildren(this, sourceFile, createChildren(this, sourceFile));\n }\n getFirstToken(sourceFile) {\n this.assertHasRealPosition();\n const children = this.getChildren(sourceFile);\n if (!children.length) {\n return void 0;\n }\n const child = find(children, (kid) => kid.kind < 310 /* FirstJSDocNode */ || kid.kind > 352 /* LastJSDocNode */);\n return child.kind < 167 /* FirstNode */ ? child : child.getFirstToken(sourceFile);\n }\n getLastToken(sourceFile) {\n this.assertHasRealPosition();\n const children = this.getChildren(sourceFile);\n const child = lastOrUndefined(children);\n if (!child) {\n return void 0;\n }\n return child.kind < 167 /* FirstNode */ ? child : child.getLastToken(sourceFile);\n }\n forEachChild(cbNode, cbNodeArray) {\n return forEachChild(this, cbNode, cbNodeArray);\n }\n};\nfunction createChildren(node, sourceFile) {\n const children = [];\n if (isJSDocCommentContainingNode(node)) {\n node.forEachChild((child) => {\n children.push(child);\n });\n return children;\n }\n const languageVariant = (sourceFile == null ? void 0 : sourceFile.languageVariant) ?? 0 /* Standard */;\n scanner.setText((sourceFile || node.getSourceFile()).text);\n scanner.setLanguageVariant(languageVariant);\n let pos = node.pos;\n const processNode = (child) => {\n addSyntheticNodes(children, pos, child.pos, node);\n children.push(child);\n pos = child.end;\n };\n const processNodes = (nodes) => {\n addSyntheticNodes(children, pos, nodes.pos, node);\n children.push(createSyntaxList(nodes, node));\n pos = nodes.end;\n };\n forEach(node.jsDoc, processNode);\n pos = node.pos;\n node.forEachChild(processNode, processNodes);\n addSyntheticNodes(children, pos, node.end, node);\n scanner.setText(void 0);\n scanner.setLanguageVariant(0 /* Standard */);\n return children;\n}\nfunction addSyntheticNodes(nodes, pos, end, parent2) {\n scanner.resetTokenState(pos);\n while (pos < end) {\n const token = scanner.scan();\n const textPos = scanner.getTokenEnd();\n if (textPos <= end) {\n if (token === 80 /* Identifier */) {\n if (hasTabstop(parent2)) {\n continue;\n }\n Debug.fail(`Did not expect ${Debug.formatSyntaxKind(parent2.kind)} to have an Identifier in its trivia`);\n }\n nodes.push(createNode(token, pos, textPos, parent2));\n }\n pos = textPos;\n if (token === 1 /* EndOfFileToken */) {\n break;\n }\n }\n}\nfunction createSyntaxList(nodes, parent2) {\n const list = createNode(353 /* SyntaxList */, nodes.pos, nodes.end, parent2);\n const children = [];\n let pos = nodes.pos;\n for (const node of nodes) {\n addSyntheticNodes(children, pos, node.pos, parent2);\n children.push(node);\n pos = node.end;\n }\n addSyntheticNodes(children, pos, nodes.end, parent2);\n list._children = children;\n return list;\n}\nvar TokenOrIdentifierObject = class {\n constructor(kind, pos, end) {\n this.pos = pos;\n this.end = end;\n this.kind = kind;\n this.id = 0;\n this.flags = 0 /* None */;\n this.transformFlags = 0 /* None */;\n this.parent = void 0;\n this.emitNode = void 0;\n }\n getSourceFile() {\n return getSourceFileOfNode(this);\n }\n getStart(sourceFile, includeJsDocComment) {\n return getTokenPosOfNode(this, sourceFile, includeJsDocComment);\n }\n getFullStart() {\n return this.pos;\n }\n getEnd() {\n return this.end;\n }\n getWidth(sourceFile) {\n return this.getEnd() - this.getStart(sourceFile);\n }\n getFullWidth() {\n return this.end - this.pos;\n }\n getLeadingTriviaWidth(sourceFile) {\n return this.getStart(sourceFile) - this.pos;\n }\n getFullText(sourceFile) {\n return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end);\n }\n getText(sourceFile) {\n if (!sourceFile) {\n sourceFile = this.getSourceFile();\n }\n return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd());\n }\n getChildCount() {\n return this.getChildren().length;\n }\n getChildAt(index) {\n return this.getChildren()[index];\n }\n getChildren() {\n return this.kind === 1 /* EndOfFileToken */ ? this.jsDoc || emptyArray : emptyArray;\n }\n getFirstToken() {\n return void 0;\n }\n getLastToken() {\n return void 0;\n }\n forEachChild() {\n return void 0;\n }\n};\nvar SymbolObject = class {\n constructor(flags, name) {\n this.flags = flags;\n this.escapedName = name;\n this.declarations = void 0;\n this.valueDeclaration = void 0;\n this.id = 0;\n this.mergeId = 0;\n this.parent = void 0;\n this.members = void 0;\n this.exports = void 0;\n this.exportSymbol = void 0;\n this.constEnumOnlyModule = void 0;\n this.isReferenced = void 0;\n this.lastAssignmentPos = void 0;\n this.links = void 0;\n }\n getFlags() {\n return this.flags;\n }\n get name() {\n return symbolName(this);\n }\n getEscapedName() {\n return this.escapedName;\n }\n getName() {\n return this.name;\n }\n getDeclarations() {\n return this.declarations;\n }\n getDocumentationComment(checker) {\n if (!this.documentationComment) {\n this.documentationComment = emptyArray;\n if (!this.declarations && isTransientSymbol(this) && this.links.target && isTransientSymbol(this.links.target) && this.links.target.links.tupleLabelDeclaration) {\n const labelDecl = this.links.target.links.tupleLabelDeclaration;\n this.documentationComment = getDocumentationComment([labelDecl], checker);\n } else {\n this.documentationComment = getDocumentationComment(this.declarations, checker);\n }\n }\n return this.documentationComment;\n }\n getContextualDocumentationComment(context, checker) {\n if (context) {\n if (isGetAccessor(context)) {\n if (!this.contextualGetAccessorDocumentationComment) {\n this.contextualGetAccessorDocumentationComment = emptyArray;\n this.contextualGetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isGetAccessor), checker);\n }\n if (length(this.contextualGetAccessorDocumentationComment)) {\n return this.contextualGetAccessorDocumentationComment;\n }\n }\n if (isSetAccessor(context)) {\n if (!this.contextualSetAccessorDocumentationComment) {\n this.contextualSetAccessorDocumentationComment = emptyArray;\n this.contextualSetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isSetAccessor), checker);\n }\n if (length(this.contextualSetAccessorDocumentationComment)) {\n return this.contextualSetAccessorDocumentationComment;\n }\n }\n }\n return this.getDocumentationComment(checker);\n }\n getJsDocTags(checker) {\n if (this.tags === void 0) {\n this.tags = emptyArray;\n this.tags = getJsDocTagsOfDeclarations(this.declarations, checker);\n }\n return this.tags;\n }\n getContextualJsDocTags(context, checker) {\n if (context) {\n if (isGetAccessor(context)) {\n if (!this.contextualGetAccessorTags) {\n this.contextualGetAccessorTags = emptyArray;\n this.contextualGetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isGetAccessor), checker);\n }\n if (length(this.contextualGetAccessorTags)) {\n return this.contextualGetAccessorTags;\n }\n }\n if (isSetAccessor(context)) {\n if (!this.contextualSetAccessorTags) {\n this.contextualSetAccessorTags = emptyArray;\n this.contextualSetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isSetAccessor), checker);\n }\n if (length(this.contextualSetAccessorTags)) {\n return this.contextualSetAccessorTags;\n }\n }\n }\n return this.getJsDocTags(checker);\n }\n};\nvar TokenObject = class extends TokenOrIdentifierObject {\n constructor(kind, pos, end) {\n super(kind, pos, end);\n }\n};\nvar IdentifierObject = class extends TokenOrIdentifierObject {\n constructor(kind, pos, end) {\n super(kind, pos, end);\n }\n get text() {\n return idText(this);\n }\n};\nvar PrivateIdentifierObject = class extends TokenOrIdentifierObject {\n constructor(kind, pos, end) {\n super(kind, pos, end);\n }\n get text() {\n return idText(this);\n }\n};\nvar TypeObject = class {\n constructor(checker, flags) {\n this.flags = flags;\n this.checker = checker;\n }\n getFlags() {\n return this.flags;\n }\n getSymbol() {\n return this.symbol;\n }\n getProperties() {\n return this.checker.getPropertiesOfType(this);\n }\n getProperty(propertyName) {\n return this.checker.getPropertyOfType(this, propertyName);\n }\n getApparentProperties() {\n return this.checker.getAugmentedPropertiesOfType(this);\n }\n getCallSignatures() {\n return this.checker.getSignaturesOfType(this, 0 /* Call */);\n }\n getConstructSignatures() {\n return this.checker.getSignaturesOfType(this, 1 /* Construct */);\n }\n getStringIndexType() {\n return this.checker.getIndexTypeOfType(this, 0 /* String */);\n }\n getNumberIndexType() {\n return this.checker.getIndexTypeOfType(this, 1 /* Number */);\n }\n getBaseTypes() {\n return this.isClassOrInterface() ? this.checker.getBaseTypes(this) : void 0;\n }\n isNullableType() {\n return this.checker.isNullableType(this);\n }\n getNonNullableType() {\n return this.checker.getNonNullableType(this);\n }\n getNonOptionalType() {\n return this.checker.getNonOptionalType(this);\n }\n getConstraint() {\n return this.checker.getBaseConstraintOfType(this);\n }\n getDefault() {\n return this.checker.getDefaultFromTypeParameter(this);\n }\n isUnion() {\n return !!(this.flags & 1048576 /* Union */);\n }\n isIntersection() {\n return !!(this.flags & 2097152 /* Intersection */);\n }\n isUnionOrIntersection() {\n return !!(this.flags & 3145728 /* UnionOrIntersection */);\n }\n isLiteral() {\n return !!(this.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */));\n }\n isStringLiteral() {\n return !!(this.flags & 128 /* StringLiteral */);\n }\n isNumberLiteral() {\n return !!(this.flags & 256 /* NumberLiteral */);\n }\n isTypeParameter() {\n return !!(this.flags & 262144 /* TypeParameter */);\n }\n isClassOrInterface() {\n return !!(getObjectFlags(this) & 3 /* ClassOrInterface */);\n }\n isClass() {\n return !!(getObjectFlags(this) & 1 /* Class */);\n }\n isIndexType() {\n return !!(this.flags & 4194304 /* Index */);\n }\n /**\n * This polyfills `referenceType.typeArguments` for API consumers\n */\n get typeArguments() {\n if (getObjectFlags(this) & 4 /* Reference */) {\n return this.checker.getTypeArguments(this);\n }\n return void 0;\n }\n};\nvar SignatureObject = class {\n // same\n constructor(checker, flags) {\n this.flags = flags;\n this.checker = checker;\n }\n getDeclaration() {\n return this.declaration;\n }\n getTypeParameters() {\n return this.typeParameters;\n }\n getParameters() {\n return this.parameters;\n }\n getReturnType() {\n return this.checker.getReturnTypeOfSignature(this);\n }\n getTypeParameterAtPosition(pos) {\n const type = this.checker.getParameterType(this, pos);\n if (type.isIndexType() && isThisTypeParameter(type.type)) {\n const constraint = type.type.getConstraint();\n if (constraint) {\n return this.checker.getIndexType(constraint);\n }\n }\n return type;\n }\n getDocumentationComment() {\n return this.documentationComment || (this.documentationComment = getDocumentationComment(singleElementArray(this.declaration), this.checker));\n }\n getJsDocTags() {\n return this.jsDocTags || (this.jsDocTags = getJsDocTagsOfDeclarations(singleElementArray(this.declaration), this.checker));\n }\n};\nfunction hasJSDocInheritDocTag(node) {\n return getJSDocTags(node).some((tag) => tag.tagName.text === \"inheritDoc\" || tag.tagName.text === \"inheritdoc\");\n}\nfunction getJsDocTagsOfDeclarations(declarations, checker) {\n if (!declarations) return emptyArray;\n let tags = ts_JsDoc_exports.getJsDocTagsFromDeclarations(declarations, checker);\n if (checker && (tags.length === 0 || declarations.some(hasJSDocInheritDocTag))) {\n const seenSymbols = /* @__PURE__ */ new Set();\n for (const declaration of declarations) {\n const inheritedTags = findBaseOfDeclaration(checker, declaration, (symbol) => {\n var _a;\n if (!seenSymbols.has(symbol)) {\n seenSymbols.add(symbol);\n if (declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) {\n return symbol.getContextualJsDocTags(declaration, checker);\n }\n return ((_a = symbol.declarations) == null ? void 0 : _a.length) === 1 ? symbol.getJsDocTags(checker) : void 0;\n }\n });\n if (inheritedTags) {\n tags = [...inheritedTags, ...tags];\n }\n }\n }\n return tags;\n}\nfunction getDocumentationComment(declarations, checker) {\n if (!declarations) return emptyArray;\n let doc = ts_JsDoc_exports.getJsDocCommentsFromDeclarations(declarations, checker);\n if (checker && (doc.length === 0 || declarations.some(hasJSDocInheritDocTag))) {\n const seenSymbols = /* @__PURE__ */ new Set();\n for (const declaration of declarations) {\n const inheritedDocs = findBaseOfDeclaration(checker, declaration, (symbol) => {\n if (!seenSymbols.has(symbol)) {\n seenSymbols.add(symbol);\n if (declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) {\n return symbol.getContextualDocumentationComment(declaration, checker);\n }\n return symbol.getDocumentationComment(checker);\n }\n });\n if (inheritedDocs) doc = doc.length === 0 ? inheritedDocs.slice() : inheritedDocs.concat(lineBreakPart(), doc);\n }\n }\n return doc;\n}\nfunction findBaseOfDeclaration(checker, declaration, cb) {\n var _a;\n const classOrInterfaceDeclaration = ((_a = declaration.parent) == null ? void 0 : _a.kind) === 177 /* Constructor */ ? declaration.parent.parent : declaration.parent;\n if (!classOrInterfaceDeclaration) return;\n const isStaticMember = hasStaticModifier(declaration);\n return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), (superTypeNode) => {\n const baseType = checker.getTypeAtLocation(superTypeNode);\n const type = isStaticMember && baseType.symbol ? checker.getTypeOfSymbol(baseType.symbol) : baseType;\n const symbol = checker.getPropertyOfType(type, declaration.symbol.name);\n return symbol ? cb(symbol) : void 0;\n });\n}\nvar SourceFileObject = class extends NodeObject {\n constructor(kind, pos, end) {\n super(kind, pos, end);\n }\n update(newText, textChangeRange) {\n return updateSourceFile(this, newText, textChangeRange);\n }\n getLineAndCharacterOfPosition(position) {\n return getLineAndCharacterOfPosition(this, position);\n }\n getLineStarts() {\n return getLineStarts(this);\n }\n getPositionOfLineAndCharacter(line, character, allowEdits) {\n return computePositionOfLineAndCharacter(getLineStarts(this), line, character, this.text, allowEdits);\n }\n getLineEndOfPosition(pos) {\n const { line } = this.getLineAndCharacterOfPosition(pos);\n const lineStarts = this.getLineStarts();\n let lastCharPos;\n if (line + 1 >= lineStarts.length) {\n lastCharPos = this.getEnd();\n }\n if (!lastCharPos) {\n lastCharPos = lineStarts[line + 1] - 1;\n }\n const fullText = this.getFullText();\n return fullText[lastCharPos] === \"\\n\" && fullText[lastCharPos - 1] === \"\\r\" ? lastCharPos - 1 : lastCharPos;\n }\n getNamedDeclarations() {\n if (!this.namedDeclarations) {\n this.namedDeclarations = this.computeNamedDeclarations();\n }\n return this.namedDeclarations;\n }\n computeNamedDeclarations() {\n const result = createMultiMap();\n this.forEachChild(visit);\n return result;\n function addDeclaration(declaration) {\n const name = getDeclarationName(declaration);\n if (name) {\n result.add(name, declaration);\n }\n }\n function getDeclarations(name) {\n let declarations = result.get(name);\n if (!declarations) {\n result.set(name, declarations = []);\n }\n return declarations;\n }\n function getDeclarationName(declaration) {\n const name = getNonAssignedNameOfDeclaration(declaration);\n return name && (isComputedPropertyName(name) && isPropertyAccessExpression(name.expression) ? name.expression.name.text : isPropertyName(name) ? getNameFromPropertyName(name) : void 0);\n }\n function visit(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n const functionDeclaration = node;\n const declarationName = getDeclarationName(functionDeclaration);\n if (declarationName) {\n const declarations = getDeclarations(declarationName);\n const lastDeclaration = lastOrUndefined(declarations);\n if (lastDeclaration && functionDeclaration.parent === lastDeclaration.parent && functionDeclaration.symbol === lastDeclaration.symbol) {\n if (functionDeclaration.body && !lastDeclaration.body) {\n declarations[declarations.length - 1] = functionDeclaration;\n }\n } else {\n declarations.push(functionDeclaration);\n }\n }\n forEachChild(node, visit);\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 267 /* EnumDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n case 282 /* ExportSpecifier */:\n case 277 /* ImportSpecifier */:\n case 274 /* ImportClause */:\n case 275 /* NamespaceImport */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 188 /* TypeLiteral */:\n addDeclaration(node);\n forEachChild(node, visit);\n break;\n case 170 /* Parameter */:\n if (!hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */)) {\n break;\n }\n // falls through\n case 261 /* VariableDeclaration */:\n case 209 /* BindingElement */: {\n const decl = node;\n if (isBindingPattern(decl.name)) {\n forEachChild(decl.name, visit);\n break;\n }\n if (decl.initializer) {\n visit(decl.initializer);\n }\n }\n // falls through\n case 307 /* EnumMember */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n addDeclaration(node);\n break;\n case 279 /* ExportDeclaration */:\n const exportDeclaration = node;\n if (exportDeclaration.exportClause) {\n if (isNamedExports(exportDeclaration.exportClause)) {\n forEach(exportDeclaration.exportClause.elements, visit);\n } else {\n visit(exportDeclaration.exportClause.name);\n }\n }\n break;\n case 273 /* ImportDeclaration */:\n const importClause = node.importClause;\n if (importClause) {\n if (importClause.name) {\n addDeclaration(importClause.name);\n }\n if (importClause.namedBindings) {\n if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n addDeclaration(importClause.namedBindings);\n } else {\n forEach(importClause.namedBindings.elements, visit);\n }\n }\n }\n break;\n case 227 /* BinaryExpression */:\n if (getAssignmentDeclarationKind(node) !== 0 /* None */) {\n addDeclaration(node);\n }\n // falls through\n default:\n forEachChild(node, visit);\n }\n }\n }\n};\nvar SourceMapSourceObject = class {\n constructor(fileName, text, skipTrivia2) {\n this.fileName = fileName;\n this.text = text;\n this.skipTrivia = skipTrivia2 || ((pos) => pos);\n }\n getLineAndCharacterOfPosition(pos) {\n return getLineAndCharacterOfPosition(this, pos);\n }\n};\nfunction getServicesObjectAllocator() {\n return {\n getNodeConstructor: () => NodeObject,\n getTokenConstructor: () => TokenObject,\n getIdentifierConstructor: () => IdentifierObject,\n getPrivateIdentifierConstructor: () => PrivateIdentifierObject,\n getSourceFileConstructor: () => SourceFileObject,\n getSymbolConstructor: () => SymbolObject,\n getTypeConstructor: () => TypeObject,\n getSignatureConstructor: () => SignatureObject,\n getSourceMapSourceConstructor: () => SourceMapSourceObject\n };\n}\nfunction toEditorSettings(optionsAsMap) {\n let allPropertiesAreCamelCased = true;\n for (const key in optionsAsMap) {\n if (hasProperty(optionsAsMap, key) && !isCamelCase(key)) {\n allPropertiesAreCamelCased = false;\n break;\n }\n }\n if (allPropertiesAreCamelCased) {\n return optionsAsMap;\n }\n const settings = {};\n for (const key in optionsAsMap) {\n if (hasProperty(optionsAsMap, key)) {\n const newKey = isCamelCase(key) ? key : key.charAt(0).toLowerCase() + key.substr(1);\n settings[newKey] = optionsAsMap[key];\n }\n }\n return settings;\n}\nfunction isCamelCase(s) {\n return !s.length || s.charAt(0) === s.charAt(0).toLowerCase();\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return map(displayParts, (displayPart2) => displayPart2.text).join(\"\");\n }\n return \"\";\n}\nfunction getDefaultCompilerOptions2() {\n return {\n target: 1 /* ES5 */,\n jsx: 1 /* Preserve */\n };\n}\nfunction getSupportedCodeFixes() {\n return ts_codefix_exports.getSupportedErrorCodes();\n}\nvar SyntaxTreeCache = class {\n constructor(host) {\n this.host = host;\n }\n getCurrentSourceFile(fileName) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const scriptSnapshot = this.host.getScriptSnapshot(fileName);\n if (!scriptSnapshot) {\n throw new Error(\"Could not find file: '\" + fileName + \"'.\");\n }\n const scriptKind = getScriptKind(fileName, this.host);\n const version2 = this.host.getScriptVersion(fileName);\n let sourceFile;\n if (this.currentFileName !== fileName) {\n const options = {\n languageVersion: 99 /* Latest */,\n impliedNodeFormat: getImpliedNodeFormatForFile(\n toPath(fileName, this.host.getCurrentDirectory(), ((_c = (_b = (_a = this.host).getCompilerHost) == null ? void 0 : _b.call(_a)) == null ? void 0 : _c.getCanonicalFileName) || hostGetCanonicalFileName(this.host)),\n (_h = (_g = (_f = (_e = (_d = this.host).getCompilerHost) == null ? void 0 : _e.call(_d)) == null ? void 0 : _f.getModuleResolutionCache) == null ? void 0 : _g.call(_f)) == null ? void 0 : _h.getPackageJsonInfoCache(),\n this.host,\n this.host.getCompilationSettings()\n ),\n setExternalModuleIndicator: getSetExternalModuleIndicator(this.host.getCompilationSettings()),\n // These files are used to produce syntax-based highlighting, which reads JSDoc, so we must use ParseAll.\n jsDocParsingMode: 0 /* ParseAll */\n };\n sourceFile = createLanguageServiceSourceFile(\n fileName,\n scriptSnapshot,\n options,\n version2,\n /*setNodeParents*/\n true,\n scriptKind\n );\n } else if (this.currentFileVersion !== version2) {\n const editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot);\n sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version2, editRange);\n }\n if (sourceFile) {\n this.currentFileVersion = version2;\n this.currentFileName = fileName;\n this.currentFileScriptSnapshot = scriptSnapshot;\n this.currentSourceFile = sourceFile;\n }\n return this.currentSourceFile;\n }\n};\nfunction setSourceFileFields(sourceFile, scriptSnapshot, version2) {\n sourceFile.version = version2;\n sourceFile.scriptSnapshot = scriptSnapshot;\n}\nfunction createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTargetOrOptions, version2, setNodeParents, scriptKind) {\n const sourceFile = createSourceFile(fileName, getSnapshotText(scriptSnapshot), scriptTargetOrOptions, setNodeParents, scriptKind);\n setSourceFileFields(sourceFile, scriptSnapshot, version2);\n return sourceFile;\n}\nfunction updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version2, textChangeRange, aggressiveChecks) {\n if (textChangeRange) {\n if (version2 !== sourceFile.version) {\n let newText;\n const prefix = textChangeRange.span.start !== 0 ? sourceFile.text.substr(0, textChangeRange.span.start) : \"\";\n const suffix = textSpanEnd(textChangeRange.span) !== sourceFile.text.length ? sourceFile.text.substr(textSpanEnd(textChangeRange.span)) : \"\";\n if (textChangeRange.newLength === 0) {\n newText = prefix && suffix ? prefix + suffix : prefix || suffix;\n } else {\n const changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength);\n newText = prefix && suffix ? prefix + changedText + suffix : prefix ? prefix + changedText : changedText + suffix;\n }\n const newSourceFile = updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);\n setSourceFileFields(newSourceFile, scriptSnapshot, version2);\n newSourceFile.nameTable = void 0;\n if (sourceFile !== newSourceFile && sourceFile.scriptSnapshot) {\n if (sourceFile.scriptSnapshot.dispose) {\n sourceFile.scriptSnapshot.dispose();\n }\n sourceFile.scriptSnapshot = void 0;\n }\n return newSourceFile;\n }\n }\n const options = {\n languageVersion: sourceFile.languageVersion,\n impliedNodeFormat: sourceFile.impliedNodeFormat,\n setExternalModuleIndicator: sourceFile.setExternalModuleIndicator,\n jsDocParsingMode: sourceFile.jsDocParsingMode\n };\n return createLanguageServiceSourceFile(\n sourceFile.fileName,\n scriptSnapshot,\n options,\n version2,\n /*setNodeParents*/\n true,\n sourceFile.scriptKind\n );\n}\nvar NoopCancellationToken = {\n isCancellationRequested: returnFalse,\n throwIfCancellationRequested: noop\n};\nvar CancellationTokenObject = class {\n constructor(cancellationToken) {\n this.cancellationToken = cancellationToken;\n }\n isCancellationRequested() {\n return this.cancellationToken.isCancellationRequested();\n }\n throwIfCancellationRequested() {\n var _a;\n if (this.isCancellationRequested()) {\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"cancellationThrown\", { kind: \"CancellationTokenObject\" });\n throw new OperationCanceledException();\n }\n }\n};\nvar ThrottledCancellationToken = class {\n constructor(hostCancellationToken, throttleWaitMilliseconds = 20) {\n this.hostCancellationToken = hostCancellationToken;\n this.throttleWaitMilliseconds = throttleWaitMilliseconds;\n // Store when we last tried to cancel. Checking cancellation can be expensive (as we have\n // to marshall over to the host layer). So we only bother actually checking once enough\n // time has passed.\n this.lastCancellationCheckTime = 0;\n }\n isCancellationRequested() {\n const time = timestamp();\n const duration = Math.abs(time - this.lastCancellationCheckTime);\n if (duration >= this.throttleWaitMilliseconds) {\n this.lastCancellationCheckTime = time;\n return this.hostCancellationToken.isCancellationRequested();\n }\n return false;\n }\n throwIfCancellationRequested() {\n var _a;\n if (this.isCancellationRequested()) {\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"cancellationThrown\", { kind: \"ThrottledCancellationToken\" });\n throw new OperationCanceledException();\n }\n }\n};\nvar invalidOperationsInPartialSemanticMode = [\n \"getSemanticDiagnostics\",\n \"getSuggestionDiagnostics\",\n \"getCompilerOptionsDiagnostics\",\n \"getSemanticClassifications\",\n \"getEncodedSemanticClassifications\",\n \"getCodeFixesAtPosition\",\n \"getCombinedCodeFix\",\n \"applyCodeActionCommand\",\n \"organizeImports\",\n \"getEditsForFileRename\",\n \"getEmitOutput\",\n \"getApplicableRefactors\",\n \"getEditsForRefactor\",\n \"prepareCallHierarchy\",\n \"provideCallHierarchyIncomingCalls\",\n \"provideCallHierarchyOutgoingCalls\",\n \"provideInlayHints\",\n \"getSupportedCodeFixes\",\n \"getPasteEdits\"\n];\nvar invalidOperationsInSyntacticMode = [\n ...invalidOperationsInPartialSemanticMode,\n \"getCompletionsAtPosition\",\n \"getCompletionEntryDetails\",\n \"getCompletionEntrySymbol\",\n \"getSignatureHelpItems\",\n \"getQuickInfoAtPosition\",\n \"getDefinitionAtPosition\",\n \"getDefinitionAndBoundSpan\",\n \"getImplementationAtPosition\",\n \"getTypeDefinitionAtPosition\",\n \"getReferencesAtPosition\",\n \"findReferences\",\n \"getDocumentHighlights\",\n \"getNavigateToItems\",\n \"getRenameInfo\",\n \"findRenameLocations\",\n \"getApplicableRefactors\",\n \"preparePasteEditsForFile\"\n];\nfunction createLanguageService(host, documentRegistry = createDocumentRegistry(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames(), host.getCurrentDirectory(), host.jsDocParsingMode), syntaxOnlyOrLanguageServiceMode) {\n var _a;\n let languageServiceMode;\n if (syntaxOnlyOrLanguageServiceMode === void 0) {\n languageServiceMode = 0 /* Semantic */;\n } else if (typeof syntaxOnlyOrLanguageServiceMode === \"boolean\") {\n languageServiceMode = syntaxOnlyOrLanguageServiceMode ? 2 /* Syntactic */ : 0 /* Semantic */;\n } else {\n languageServiceMode = syntaxOnlyOrLanguageServiceMode;\n }\n const syntaxTreeCache = new SyntaxTreeCache(host);\n let program;\n let lastProjectVersion;\n let lastTypesRootVersion = 0;\n const cancellationToken = host.getCancellationToken ? new CancellationTokenObject(host.getCancellationToken()) : NoopCancellationToken;\n const currentDirectory = host.getCurrentDirectory();\n maybeSetLocalizedDiagnosticMessages((_a = host.getLocalizedDiagnosticMessages) == null ? void 0 : _a.bind(host));\n function log(message) {\n if (host.log) {\n host.log(message);\n }\n }\n const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n const sourceMapper = getSourceMapper({\n useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n getCurrentDirectory: () => currentDirectory,\n getProgram,\n fileExists: maybeBind(host, host.fileExists),\n readFile: maybeBind(host, host.readFile),\n getDocumentPositionMapper: maybeBind(host, host.getDocumentPositionMapper),\n getSourceFileLike: maybeBind(host, host.getSourceFileLike),\n log\n });\n function getValidSourceFile(fileName) {\n const sourceFile = program.getSourceFile(fileName);\n if (!sourceFile) {\n const error2 = new Error(`Could not find source file: '${fileName}'.`);\n error2.ProgramFiles = program.getSourceFiles().map((f) => f.fileName);\n throw error2;\n }\n return sourceFile;\n }\n function synchronizeHostData() {\n if (host.updateFromProject && !host.updateFromProjectInProgress) {\n host.updateFromProject();\n } else {\n synchronizeHostDataWorker();\n }\n }\n function synchronizeHostDataWorker() {\n var _a2, _b, _c;\n Debug.assert(languageServiceMode !== 2 /* Syntactic */);\n if (host.getProjectVersion) {\n const hostProjectVersion = host.getProjectVersion();\n if (hostProjectVersion) {\n if (lastProjectVersion === hostProjectVersion && !((_a2 = host.hasChangedAutomaticTypeDirectiveNames) == null ? void 0 : _a2.call(host))) {\n return;\n }\n lastProjectVersion = hostProjectVersion;\n }\n }\n const typeRootsVersion = host.getTypeRootsVersion ? host.getTypeRootsVersion() : 0;\n if (lastTypesRootVersion !== typeRootsVersion) {\n log(\"TypeRoots version has changed; provide new program\");\n program = void 0;\n lastTypesRootVersion = typeRootsVersion;\n }\n const rootFileNames = host.getScriptFileNames().slice();\n const newSettings = host.getCompilationSettings() || getDefaultCompilerOptions2();\n const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;\n const hasInvalidatedLibResolutions = maybeBind(host, host.hasInvalidatedLibResolutions) || returnFalse;\n const hasChangedAutomaticTypeDirectiveNames = maybeBind(host, host.hasChangedAutomaticTypeDirectiveNames);\n const projectReferences = (_b = host.getProjectReferences) == null ? void 0 : _b.call(host);\n let parsedCommandLines;\n let compilerHost = {\n getSourceFile: getOrCreateSourceFile,\n getSourceFileByPath: getOrCreateSourceFileByPath,\n getCancellationToken: () => cancellationToken,\n getCanonicalFileName,\n useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n getNewLine: () => getNewLineCharacter(newSettings),\n getDefaultLibFileName: (options2) => host.getDefaultLibFileName(options2),\n writeFile: noop,\n getCurrentDirectory: () => currentDirectory,\n fileExists: (fileName) => host.fileExists(fileName),\n readFile: (fileName) => host.readFile && host.readFile(fileName),\n getSymlinkCache: maybeBind(host, host.getSymlinkCache),\n realpath: maybeBind(host, host.realpath),\n directoryExists: (directoryName) => {\n return directoryProbablyExists(directoryName, host);\n },\n getDirectories: (path) => {\n return host.getDirectories ? host.getDirectories(path) : [];\n },\n readDirectory: (path, extensions, exclude, include, depth) => {\n Debug.checkDefined(host.readDirectory, \"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\");\n return host.readDirectory(path, extensions, exclude, include, depth);\n },\n onReleaseOldSourceFile,\n onReleaseParsedCommandLine,\n hasInvalidatedResolutions,\n hasInvalidatedLibResolutions,\n hasChangedAutomaticTypeDirectiveNames,\n trace: maybeBind(host, host.trace),\n resolveModuleNames: maybeBind(host, host.resolveModuleNames),\n getModuleResolutionCache: maybeBind(host, host.getModuleResolutionCache),\n createHash: maybeBind(host, host.createHash),\n resolveTypeReferenceDirectives: maybeBind(host, host.resolveTypeReferenceDirectives),\n resolveModuleNameLiterals: maybeBind(host, host.resolveModuleNameLiterals),\n resolveTypeReferenceDirectiveReferences: maybeBind(host, host.resolveTypeReferenceDirectiveReferences),\n resolveLibrary: maybeBind(host, host.resolveLibrary),\n useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect),\n getParsedCommandLine,\n jsDocParsingMode: host.jsDocParsingMode,\n getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n };\n const originalGetSourceFile = compilerHost.getSourceFile;\n const { getSourceFileWithCache } = changeCompilerHostLikeToUseCache(\n compilerHost,\n (fileName) => toPath(fileName, currentDirectory, getCanonicalFileName),\n (...args) => originalGetSourceFile.call(compilerHost, ...args)\n );\n compilerHost.getSourceFile = getSourceFileWithCache;\n (_c = host.setCompilerHost) == null ? void 0 : _c.call(host, compilerHost);\n const parseConfigHost = {\n useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n fileExists: (fileName) => compilerHost.fileExists(fileName),\n readFile: (fileName) => compilerHost.readFile(fileName),\n directoryExists: (f) => compilerHost.directoryExists(f),\n getDirectories: (f) => compilerHost.getDirectories(f),\n realpath: compilerHost.realpath,\n readDirectory: (...args) => compilerHost.readDirectory(...args),\n trace: compilerHost.trace,\n getCurrentDirectory: compilerHost.getCurrentDirectory,\n onUnRecoverableConfigFileDiagnostic: noop\n };\n const documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings);\n let releasedScriptKinds = /* @__PURE__ */ new Set();\n if (isProgramUptoDate(program, rootFileNames, newSettings, (_path, fileName) => host.getScriptVersion(fileName), (fileName) => compilerHost.fileExists(fileName), hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {\n compilerHost = void 0;\n parsedCommandLines = void 0;\n releasedScriptKinds = void 0;\n return;\n }\n const options = {\n rootNames: rootFileNames,\n options: newSettings,\n host: compilerHost,\n oldProgram: program,\n projectReferences\n };\n program = createProgram(options);\n compilerHost = void 0;\n parsedCommandLines = void 0;\n releasedScriptKinds = void 0;\n sourceMapper.clearCache();\n program.getTypeChecker();\n return;\n function getParsedCommandLine(fileName) {\n const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n const existing = parsedCommandLines == null ? void 0 : parsedCommandLines.get(path);\n if (existing !== void 0) return existing || void 0;\n const result = host.getParsedCommandLine ? host.getParsedCommandLine(fileName) : getParsedCommandLineOfConfigFileUsingSourceFile(fileName);\n (parsedCommandLines || (parsedCommandLines = /* @__PURE__ */ new Map())).set(path, result || false);\n return result;\n }\n function getParsedCommandLineOfConfigFileUsingSourceFile(configFileName) {\n const result = getOrCreateSourceFile(configFileName, 100 /* JSON */);\n if (!result) return void 0;\n result.path = toPath(configFileName, currentDirectory, getCanonicalFileName);\n result.resolvedPath = result.path;\n result.originalFileName = result.fileName;\n return parseJsonSourceFileConfigFileContent(\n result,\n parseConfigHost,\n getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory),\n /*existingOptions*/\n void 0,\n getNormalizedAbsolutePath(configFileName, currentDirectory)\n );\n }\n function onReleaseParsedCommandLine(configFileName, oldResolvedRef, oldOptions) {\n var _a3;\n if (host.getParsedCommandLine) {\n (_a3 = host.onReleaseParsedCommandLine) == null ? void 0 : _a3.call(host, configFileName, oldResolvedRef, oldOptions);\n } else if (oldResolvedRef) {\n releaseOldSourceFile(oldResolvedRef.sourceFile, oldOptions);\n }\n }\n function releaseOldSourceFile(oldSourceFile, oldOptions) {\n const oldSettingsKey = documentRegistry.getKeyForCompilationSettings(oldOptions);\n documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, oldSettingsKey, oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat);\n }\n function onReleaseOldSourceFile(oldSourceFile, oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath) {\n var _a3;\n releaseOldSourceFile(oldSourceFile, oldOptions);\n (_a3 = host.onReleaseOldSourceFile) == null ? void 0 : _a3.call(host, oldSourceFile, oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath);\n }\n function getOrCreateSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) {\n return getOrCreateSourceFileByPath(fileName, toPath(fileName, currentDirectory, getCanonicalFileName), languageVersionOrOptions, onError, shouldCreateNewSourceFile);\n }\n function getOrCreateSourceFileByPath(fileName, path, languageVersionOrOptions, _onError, shouldCreateNewSourceFile) {\n Debug.assert(compilerHost, \"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");\n const scriptSnapshot = host.getScriptSnapshot(fileName);\n if (!scriptSnapshot) {\n return void 0;\n }\n const scriptKind = getScriptKind(fileName, host);\n const scriptVersion = host.getScriptVersion(fileName);\n if (!shouldCreateNewSourceFile) {\n const oldSourceFile = program && program.getSourceFileByPath(path);\n if (oldSourceFile) {\n if (scriptKind === oldSourceFile.scriptKind || releasedScriptKinds.has(oldSourceFile.resolvedPath)) {\n return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions);\n } else {\n documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions()), oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat);\n releasedScriptKinds.add(oldSourceFile.resolvedPath);\n }\n }\n }\n return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions);\n }\n }\n function getProgram() {\n if (languageServiceMode === 2 /* Syntactic */) {\n Debug.assert(program === void 0);\n return void 0;\n }\n synchronizeHostData();\n return program;\n }\n function getAutoImportProvider() {\n var _a2;\n return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host);\n }\n function updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans) {\n const checker = program.getTypeChecker();\n const symbol = getSymbolForProgram();\n if (!symbol) return false;\n for (const referencedSymbol of referencedSymbols) {\n for (const ref of referencedSymbol.references) {\n const refNode = getNodeForSpan(ref);\n Debug.assertIsDefined(refNode);\n if (knownSymbolSpans.has(ref) || ts_FindAllReferences_exports.isDeclarationOfSymbol(refNode, symbol)) {\n knownSymbolSpans.add(ref);\n ref.isDefinition = true;\n const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists));\n if (mappedSpan) {\n knownSymbolSpans.add(mappedSpan);\n }\n } else {\n ref.isDefinition = false;\n }\n }\n }\n return true;\n function getSymbolForProgram() {\n for (const referencedSymbol of referencedSymbols) {\n for (const ref of referencedSymbol.references) {\n if (knownSymbolSpans.has(ref)) {\n const refNode = getNodeForSpan(ref);\n Debug.assertIsDefined(refNode);\n return checker.getSymbolAtLocation(refNode);\n }\n const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists));\n if (mappedSpan && knownSymbolSpans.has(mappedSpan)) {\n const refNode = getNodeForSpan(mappedSpan);\n if (refNode) {\n return checker.getSymbolAtLocation(refNode);\n }\n }\n }\n }\n return void 0;\n }\n function getNodeForSpan(docSpan) {\n const sourceFile = program.getSourceFile(docSpan.fileName);\n if (!sourceFile) return void 0;\n const rawNode = getTouchingPropertyName(sourceFile, docSpan.textSpan.start);\n const adjustedNode = ts_FindAllReferences_exports.Core.getAdjustedNode(rawNode, { use: ts_FindAllReferences_exports.FindReferencesUse.References });\n return adjustedNode;\n }\n }\n function cleanupSemanticCache() {\n if (program) {\n const key = documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions());\n forEach(program.getSourceFiles(), (f) => documentRegistry.releaseDocumentWithKey(f.resolvedPath, key, f.scriptKind, f.impliedNodeFormat));\n program = void 0;\n }\n }\n function dispose() {\n cleanupSemanticCache();\n host = void 0;\n }\n function getSyntacticDiagnostics(fileName) {\n synchronizeHostData();\n return program.getSyntacticDiagnostics(getValidSourceFile(fileName), cancellationToken).slice();\n }\n function getSemanticDiagnostics(fileName) {\n synchronizeHostData();\n const targetSourceFile = getValidSourceFile(fileName);\n const semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile, cancellationToken);\n if (!getEmitDeclarations(program.getCompilerOptions())) {\n return semanticDiagnostics.slice();\n }\n const declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile, cancellationToken);\n return [...semanticDiagnostics, ...declarationDiagnostics];\n }\n function getRegionSemanticDiagnostics(fileName, ranges) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const options = program.getCompilerOptions();\n if (skipTypeChecking(sourceFile, options, program) || !canIncludeBindAndCheckDiagnostics(sourceFile, options) || program.getCachedSemanticDiagnostics(sourceFile)) {\n return void 0;\n }\n const nodes = getNodesForRanges(sourceFile, ranges);\n if (!nodes) {\n return void 0;\n }\n const checkedSpans = normalizeSpans(nodes.map((node) => createTextSpanFromBounds(node.getFullStart(), node.getEnd())));\n const semanticDiagnostics = program.getSemanticDiagnostics(sourceFile, cancellationToken, nodes);\n return {\n diagnostics: semanticDiagnostics.slice(),\n spans: checkedSpans\n };\n }\n function getNodesForRanges(file, ranges) {\n const nodes = [];\n const spans = normalizeSpans(ranges.map((range) => createTextSpanFromRange(range)));\n for (const span of spans) {\n const nodesForSpan = getNodesForSpan(file, span);\n if (!nodesForSpan) {\n return void 0;\n }\n nodes.push(...nodesForSpan);\n }\n if (!nodes.length) {\n return void 0;\n }\n return nodes;\n }\n function getNodesForSpan(file, span) {\n if (textSpanContainsTextRange(span, file)) {\n return void 0;\n }\n const endToken = findTokenOnLeftOfPosition(file, textSpanEnd(span)) || file;\n const enclosingNode = findAncestor(endToken, (node) => textRangeContainsTextSpan(node, span));\n const nodes = [];\n chooseOverlappingNodes(span, enclosingNode, nodes);\n if (file.end === span.start + span.length) {\n nodes.push(file.endOfFileToken);\n }\n if (some(nodes, isSourceFile)) {\n return void 0;\n }\n return nodes;\n }\n function chooseOverlappingNodes(span, node, result) {\n if (!nodeOverlapsWithSpan(node, span)) {\n return false;\n }\n if (textSpanContainsTextRange(span, node)) {\n addSourceElement(node, result);\n return true;\n }\n if (isBlockLike(node)) {\n return chooseOverlappingBlockLike(span, node, result);\n }\n if (isClassLike(node)) {\n return chooseOverlappingClassLike(span, node, result);\n }\n addSourceElement(node, result);\n return true;\n }\n function nodeOverlapsWithSpan(node, span) {\n const spanEnd = span.start + span.length;\n return node.pos < spanEnd && node.end > span.start;\n }\n function addSourceElement(node, result) {\n while (node.parent && !isSourceElement(node)) {\n node = node.parent;\n }\n result.push(node);\n }\n function chooseOverlappingBlockLike(span, node, result) {\n const childResult = [];\n const stmts = node.statements.filter((stmt) => chooseOverlappingNodes(span, stmt, childResult));\n if (stmts.length === node.statements.length) {\n addSourceElement(node, result);\n return true;\n }\n result.push(...childResult);\n return false;\n }\n function chooseOverlappingClassLike(span, node, result) {\n var _a2, _b, _c;\n const overlaps = (n) => textRangeIntersectsWithTextSpan(n, span);\n if (((_a2 = node.modifiers) == null ? void 0 : _a2.some(overlaps)) || node.name && overlaps(node.name) || ((_b = node.typeParameters) == null ? void 0 : _b.some(overlaps)) || ((_c = node.heritageClauses) == null ? void 0 : _c.some(overlaps))) {\n addSourceElement(node, result);\n return true;\n }\n const childResult = [];\n const members = node.members.filter((member) => chooseOverlappingNodes(span, member, childResult));\n if (members.length === node.members.length) {\n addSourceElement(node, result);\n return true;\n }\n result.push(...childResult);\n return false;\n }\n function getSuggestionDiagnostics(fileName) {\n synchronizeHostData();\n return computeSuggestionDiagnostics(getValidSourceFile(fileName), program, cancellationToken);\n }\n function getCompilerOptionsDiagnostics() {\n synchronizeHostData();\n return [...program.getOptionsDiagnostics(cancellationToken), ...program.getGlobalDiagnostics(cancellationToken)];\n }\n function getCompletionsAtPosition2(fileName, position, options = emptyOptions, formattingSettings) {\n const fullPreferences = {\n ...identity(options),\n // avoid excess property check\n includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports,\n includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions\n };\n synchronizeHostData();\n return ts_Completions_exports.getCompletionsAtPosition(\n host,\n program,\n log,\n getValidSourceFile(fileName),\n position,\n fullPreferences,\n options.triggerCharacter,\n options.triggerKind,\n cancellationToken,\n formattingSettings && ts_formatting_exports.getFormatContext(formattingSettings, host),\n options.includeSymbol\n );\n }\n function getCompletionEntryDetails2(fileName, position, name, formattingOptions, source, preferences = emptyOptions, data) {\n synchronizeHostData();\n return ts_Completions_exports.getCompletionEntryDetails(\n program,\n log,\n getValidSourceFile(fileName),\n position,\n { name, source, data },\n host,\n formattingOptions && ts_formatting_exports.getFormatContext(formattingOptions, host),\n // TODO: GH#18217\n preferences,\n cancellationToken\n );\n }\n function getCompletionEntrySymbol2(fileName, position, name, source, preferences = emptyOptions) {\n synchronizeHostData();\n return ts_Completions_exports.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name, source }, host, preferences);\n }\n function getQuickInfoAtPosition(fileName, position, maximumLength, verbosityLevel) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const node = getTouchingPropertyName(sourceFile, position);\n if (node === sourceFile) {\n return void 0;\n }\n const typeChecker = program.getTypeChecker();\n const nodeForQuickInfo = getNodeForQuickInfo(node);\n const symbol = getSymbolAtLocationForQuickInfo(nodeForQuickInfo, typeChecker);\n if (!symbol || typeChecker.isUnknownSymbol(symbol)) {\n const type = shouldGetType(sourceFile, nodeForQuickInfo, position) ? typeChecker.getTypeAtLocation(nodeForQuickInfo) : void 0;\n return type && {\n kind: \"\" /* unknown */,\n kindModifiers: \"\" /* none */,\n textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),\n displayParts: typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => typeToDisplayParts(\n typeChecker2,\n type,\n getContainerNode(nodeForQuickInfo),\n /*flags*/\n void 0,\n verbosityLevel\n )),\n documentation: type.symbol ? type.symbol.getDocumentationComment(typeChecker) : void 0,\n tags: type.symbol ? type.symbol.getJsDocTags(typeChecker) : void 0\n };\n }\n const { symbolKind, displayParts, documentation, tags, canIncreaseVerbosityLevel } = typeChecker.runWithCancellationToken(\n cancellationToken,\n (typeChecker2) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(\n typeChecker2,\n symbol,\n sourceFile,\n getContainerNode(nodeForQuickInfo),\n nodeForQuickInfo,\n /*semanticMeaning*/\n void 0,\n /*alias*/\n void 0,\n maximumLength ?? defaultHoverMaximumTruncationLength,\n verbosityLevel\n )\n );\n return {\n kind: symbolKind,\n kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol),\n textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),\n displayParts,\n documentation,\n tags,\n canIncreaseVerbosityLevel\n };\n }\n function preparePasteEditsForFile(fileName, copiedTextRange) {\n synchronizeHostData();\n return ts_preparePasteEdits_exports.preparePasteEdits(\n getValidSourceFile(fileName),\n copiedTextRange,\n program.getTypeChecker()\n );\n }\n function getPasteEdits(args, formatOptions) {\n synchronizeHostData();\n return ts_PasteEdits_exports.pasteEditsProvider(\n getValidSourceFile(args.targetFile),\n args.pastedText,\n args.pasteLocations,\n args.copiedFrom ? { file: getValidSourceFile(args.copiedFrom.file), range: args.copiedFrom.range } : void 0,\n host,\n args.preferences,\n ts_formatting_exports.getFormatContext(formatOptions, host),\n cancellationToken\n );\n }\n function getNodeForQuickInfo(node) {\n if (isNewExpression(node.parent) && node.pos === node.parent.pos) {\n return node.parent.expression;\n }\n if (isNamedTupleMember(node.parent) && node.pos === node.parent.pos) {\n return node.parent;\n }\n if (isImportMeta(node.parent) && node.parent.name === node) {\n return node.parent;\n }\n if (isJsxNamespacedName(node.parent)) {\n return node.parent;\n }\n return node;\n }\n function shouldGetType(sourceFile, node, position) {\n switch (node.kind) {\n case 80 /* Identifier */:\n if (node.flags & 16777216 /* JSDoc */ && !isInJSFile(node) && (node.parent.kind === 172 /* PropertySignature */ && node.parent.name === node || findAncestor(node, (n) => n.kind === 170 /* Parameter */))) {\n return false;\n }\n return !isLabelName(node) && !isTagName(node) && !isConstTypeReference(node.parent);\n case 212 /* PropertyAccessExpression */:\n case 167 /* QualifiedName */:\n return !isInComment(sourceFile, position);\n case 110 /* ThisKeyword */:\n case 198 /* ThisType */:\n case 108 /* SuperKeyword */:\n case 203 /* NamedTupleMember */:\n return true;\n case 237 /* MetaProperty */:\n return isImportMeta(node);\n default:\n return false;\n }\n }\n function getDefinitionAtPosition2(fileName, position, searchOtherFilesOnly, stopAtAlias) {\n synchronizeHostData();\n return ts_GoToDefinition_exports.getDefinitionAtPosition(program, getValidSourceFile(fileName), position, searchOtherFilesOnly, stopAtAlias);\n }\n function getDefinitionAndBoundSpan2(fileName, position) {\n synchronizeHostData();\n return ts_GoToDefinition_exports.getDefinitionAndBoundSpan(program, getValidSourceFile(fileName), position);\n }\n function getTypeDefinitionAtPosition2(fileName, position) {\n synchronizeHostData();\n return ts_GoToDefinition_exports.getTypeDefinitionAtPosition(program.getTypeChecker(), getValidSourceFile(fileName), position);\n }\n function getImplementationAtPosition(fileName, position) {\n synchronizeHostData();\n return ts_FindAllReferences_exports.getImplementationsAtPosition(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position);\n }\n function getDocumentHighlights(fileName, position, filesToSearch) {\n const normalizedFileName = normalizePath(fileName);\n Debug.assert(filesToSearch.some((f) => normalizePath(f) === normalizedFileName));\n synchronizeHostData();\n const sourceFilesToSearch = mapDefined(filesToSearch, (fileName2) => program.getSourceFile(fileName2));\n const sourceFile = getValidSourceFile(fileName);\n return DocumentHighlights.getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch);\n }\n function findRenameLocations(fileName, position, findInStrings, findInComments, preferences) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position));\n if (!ts_Rename_exports.nodeIsEligibleForRename(node)) return void 0;\n if (isIdentifier(node) && (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) && isIntrinsicJsxName(node.escapedText)) {\n const { openingElement, closingElement } = node.parent.parent;\n return [openingElement, closingElement].map((node2) => {\n const textSpan = createTextSpanFromNode(node2.tagName, sourceFile);\n return {\n fileName: sourceFile.fileName,\n textSpan,\n ...ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, node2.parent)\n };\n });\n } else {\n const quotePreference = getQuotePreference(sourceFile, preferences ?? emptyOptions);\n const providePrefixAndSuffixTextForRename = typeof preferences === \"boolean\" ? preferences : preferences == null ? void 0 : preferences.providePrefixAndSuffixTextForRename;\n return getReferencesWorker2(node, position, { findInStrings, findInComments, providePrefixAndSuffixTextForRename, use: ts_FindAllReferences_exports.FindReferencesUse.Rename }, (entry, originalNode, checker) => ts_FindAllReferences_exports.toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixTextForRename || false, quotePreference));\n }\n }\n function getReferencesAtPosition(fileName, position) {\n synchronizeHostData();\n return getReferencesWorker2(getTouchingPropertyName(getValidSourceFile(fileName), position), position, { use: ts_FindAllReferences_exports.FindReferencesUse.References }, ts_FindAllReferences_exports.toReferenceEntry);\n }\n function getReferencesWorker2(node, position, options, cb) {\n synchronizeHostData();\n const sourceFiles = options && options.use === ts_FindAllReferences_exports.FindReferencesUse.Rename ? program.getSourceFiles().filter((sourceFile) => !program.isSourceFileDefaultLibrary(sourceFile)) : program.getSourceFiles();\n return ts_FindAllReferences_exports.findReferenceOrRenameEntries(program, cancellationToken, sourceFiles, node, position, options, cb);\n }\n function findReferences(fileName, position) {\n synchronizeHostData();\n return ts_FindAllReferences_exports.findReferencedSymbols(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position);\n }\n function getFileReferences(fileName) {\n synchronizeHostData();\n return ts_FindAllReferences_exports.Core.getReferencesForFileName(fileName, program, program.getSourceFiles()).map(ts_FindAllReferences_exports.toReferenceEntry);\n }\n function getNavigateToItems2(searchValue, maxResultCount, fileName, excludeDtsFiles = false, excludeLibFiles = false) {\n synchronizeHostData();\n const sourceFiles = fileName ? [getValidSourceFile(fileName)] : program.getSourceFiles();\n return getNavigateToItems(sourceFiles, program.getTypeChecker(), cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles);\n }\n function getEmitOutput(fileName, emitOnlyDtsFiles, forceDtsEmit) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const customTransformers = host.getCustomTransformers && host.getCustomTransformers();\n return getFileEmitOutput(program, sourceFile, !!emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit);\n }\n function getSignatureHelpItems2(fileName, position, { triggerReason } = emptyOptions) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n return ts_SignatureHelp_exports.getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken);\n }\n function getNonBoundSourceFile(fileName) {\n return syntaxTreeCache.getCurrentSourceFile(fileName);\n }\n function getNameOrDottedNameSpan(fileName, startPos, _endPos) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const node = getTouchingPropertyName(sourceFile, startPos);\n if (node === sourceFile) {\n return void 0;\n }\n switch (node.kind) {\n case 212 /* PropertyAccessExpression */:\n case 167 /* QualifiedName */:\n case 11 /* StringLiteral */:\n case 97 /* FalseKeyword */:\n case 112 /* TrueKeyword */:\n case 106 /* NullKeyword */:\n case 108 /* SuperKeyword */:\n case 110 /* ThisKeyword */:\n case 198 /* ThisType */:\n case 80 /* Identifier */:\n break;\n // Cant create the text span\n default:\n return void 0;\n }\n let nodeForStartPos = node;\n while (true) {\n if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) {\n nodeForStartPos = nodeForStartPos.parent;\n } else if (isNameOfModuleDeclaration(nodeForStartPos)) {\n if (nodeForStartPos.parent.parent.kind === 268 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) {\n nodeForStartPos = nodeForStartPos.parent.parent.name;\n } else {\n break;\n }\n } else {\n break;\n }\n }\n return createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd());\n }\n function getBreakpointStatementAtPosition(fileName, position) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n return ts_BreakpointResolver_exports.spanInSourceFileAtLocation(sourceFile, position);\n }\n function getNavigationBarItems2(fileName) {\n return getNavigationBarItems(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken);\n }\n function getNavigationTree2(fileName) {\n return getNavigationTree(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken);\n }\n function getSemanticClassifications3(fileName, span, format) {\n synchronizeHostData();\n const responseFormat = format || \"original\" /* Original */;\n if (responseFormat === \"2020\" /* TwentyTwenty */) {\n return getSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span);\n } else {\n return getSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span);\n }\n }\n function getEncodedSemanticClassifications3(fileName, span, format) {\n synchronizeHostData();\n const responseFormat = format || \"original\" /* Original */;\n if (responseFormat === \"original\" /* Original */) {\n return getEncodedSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span);\n } else {\n return getEncodedSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span);\n }\n }\n function getSyntacticClassifications2(fileName, span) {\n return getSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);\n }\n function getEncodedSyntacticClassifications2(fileName, span) {\n return getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);\n }\n function getOutliningSpans(fileName) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n return ts_OutliningElementsCollector_exports.collectElements(sourceFile, cancellationToken);\n }\n const braceMatching = new Map(Object.entries({\n [19 /* OpenBraceToken */]: 20 /* CloseBraceToken */,\n [21 /* OpenParenToken */]: 22 /* CloseParenToken */,\n [23 /* OpenBracketToken */]: 24 /* CloseBracketToken */,\n [32 /* GreaterThanToken */]: 30 /* LessThanToken */\n }));\n braceMatching.forEach((value, key) => braceMatching.set(value.toString(), Number(key)));\n function getBraceMatchingAtPosition(fileName, position) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const token = getTouchingToken(sourceFile, position);\n const matchKind = token.getStart(sourceFile) === position ? braceMatching.get(token.kind.toString()) : void 0;\n const match = matchKind && findChildOfKind(token.parent, matchKind, sourceFile);\n return match ? [createTextSpanFromNode(token, sourceFile), createTextSpanFromNode(match, sourceFile)].sort((a, b) => a.start - b.start) : emptyArray;\n }\n function getIndentationAtPosition(fileName, position, editorOptions) {\n let start = timestamp();\n const settings = toEditorSettings(editorOptions);\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n log(\"getIndentationAtPosition: getCurrentSourceFile: \" + (timestamp() - start));\n start = timestamp();\n const result = ts_formatting_exports.SmartIndenter.getIndentation(position, sourceFile, settings);\n log(\"getIndentationAtPosition: computeIndentation : \" + (timestamp() - start));\n return result;\n }\n function getFormattingEditsForRange(fileName, start, end, options) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n return ts_formatting_exports.formatSelection(start, end, sourceFile, ts_formatting_exports.getFormatContext(toEditorSettings(options), host));\n }\n function getFormattingEditsForDocument(fileName, options) {\n return ts_formatting_exports.formatDocument(syntaxTreeCache.getCurrentSourceFile(fileName), ts_formatting_exports.getFormatContext(toEditorSettings(options), host));\n }\n function getFormattingEditsAfterKeystroke(fileName, position, key, options) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const formatContext = ts_formatting_exports.getFormatContext(toEditorSettings(options), host);\n if (!isInComment(sourceFile, position)) {\n switch (key) {\n case \"{\":\n return ts_formatting_exports.formatOnOpeningCurly(position, sourceFile, formatContext);\n case \"}\":\n return ts_formatting_exports.formatOnClosingCurly(position, sourceFile, formatContext);\n case \";\":\n return ts_formatting_exports.formatOnSemicolon(position, sourceFile, formatContext);\n case \"\\n\":\n return ts_formatting_exports.formatOnEnter(position, sourceFile, formatContext);\n }\n }\n return [];\n }\n function getCodeFixesAtPosition(fileName, start, end, errorCodes68, formatOptions, preferences = emptyOptions) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const span = createTextSpanFromBounds(start, end);\n const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n return flatMap(deduplicate(errorCodes68, equateValues, compareValues), (errorCode) => {\n cancellationToken.throwIfCancellationRequested();\n return ts_codefix_exports.getFixes({ errorCode, sourceFile, span, program, host, cancellationToken, formatContext, preferences });\n });\n }\n function getCombinedCodeFix(scope, fixId56, formatOptions, preferences = emptyOptions) {\n synchronizeHostData();\n Debug.assert(scope.type === \"file\");\n const sourceFile = getValidSourceFile(scope.fileName);\n const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n return ts_codefix_exports.getAllFixes({ fixId: fixId56, sourceFile, program, host, cancellationToken, formatContext, preferences });\n }\n function organizeImports2(args, formatOptions, preferences = emptyOptions) {\n synchronizeHostData();\n Debug.assert(args.type === \"file\");\n const sourceFile = getValidSourceFile(args.fileName);\n if (containsParseError(sourceFile)) return emptyArray;\n const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n const mode = args.mode ?? (args.skipDestructiveCodeActions ? \"SortAndCombine\" /* SortAndCombine */ : \"All\" /* All */);\n return ts_OrganizeImports_exports.organizeImports(sourceFile, formatContext, host, program, preferences, mode);\n }\n function getEditsForFileRename2(oldFilePath, newFilePath, formatOptions, preferences = emptyOptions) {\n return getEditsForFileRename(getProgram(), oldFilePath, newFilePath, host, ts_formatting_exports.getFormatContext(formatOptions, host), preferences, sourceMapper);\n }\n function applyCodeActionCommand(fileName, actionOrFormatSettingsOrUndefined) {\n const action = typeof fileName === \"string\" ? actionOrFormatSettingsOrUndefined : fileName;\n return isArray(action) ? Promise.all(action.map((a) => applySingleCodeActionCommand(a))) : applySingleCodeActionCommand(action);\n }\n function applySingleCodeActionCommand(action) {\n const getPath = (path) => toPath(path, currentDirectory, getCanonicalFileName);\n Debug.assertEqual(action.type, \"install package\");\n return host.installPackage ? host.installPackage({ fileName: getPath(action.file), packageName: action.packageName }) : Promise.reject(\"Host does not implement `installPackage`\");\n }\n function getDocCommentTemplateAtPosition2(fileName, position, options, formatOptions) {\n const formatSettings = formatOptions ? ts_formatting_exports.getFormatContext(formatOptions, host).options : void 0;\n return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);\n }\n function isValidBraceCompletionAtPosition(fileName, position, openingBrace) {\n if (openingBrace === 60 /* lessThan */) {\n return false;\n }\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n if (isInString(sourceFile, position)) {\n return false;\n }\n if (isInsideJsxElementOrAttribute(sourceFile, position)) {\n return openingBrace === 123 /* openBrace */;\n }\n if (isInTemplateString(sourceFile, position)) {\n return false;\n }\n switch (openingBrace) {\n case 39 /* singleQuote */:\n case 34 /* doubleQuote */:\n case 96 /* backtick */:\n return !isInComment(sourceFile, position);\n }\n return true;\n }\n function getJsxClosingTagAtPosition(fileName, position) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const token = findPrecedingToken(position, sourceFile);\n if (!token) return void 0;\n const element = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningElement(token.parent) ? token.parent.parent : isJsxText(token) && isJsxElement(token.parent) ? token.parent : void 0;\n if (element && isUnclosedTag(element)) {\n return { newText: `` };\n }\n const fragment = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningFragment(token.parent) ? token.parent.parent : isJsxText(token) && isJsxFragment(token.parent) ? token.parent : void 0;\n if (fragment && isUnclosedFragment(fragment)) {\n return { newText: \"\" };\n }\n }\n function getLinkedEditingRangeAtPosition(fileName, position) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const token = findPrecedingToken(position, sourceFile);\n if (!token || token.parent.kind === 308 /* SourceFile */) return void 0;\n const jsxTagWordPattern = \"[a-zA-Z0-9:\\\\-\\\\._$]*\";\n if (isJsxFragment(token.parent.parent)) {\n const openFragment = token.parent.parent.openingFragment;\n const closeFragment = token.parent.parent.closingFragment;\n if (containsParseError(openFragment) || containsParseError(closeFragment)) return void 0;\n const openPos = openFragment.getStart(sourceFile) + 1;\n const closePos = closeFragment.getStart(sourceFile) + 2;\n if (position !== openPos && position !== closePos) return void 0;\n return {\n ranges: [{ start: openPos, length: 0 }, { start: closePos, length: 0 }],\n wordPattern: jsxTagWordPattern\n };\n } else {\n const tag = findAncestor(token.parent, (n) => {\n if (isJsxOpeningElement(n) || isJsxClosingElement(n)) {\n return true;\n }\n return false;\n });\n if (!tag) return void 0;\n Debug.assert(isJsxOpeningElement(tag) || isJsxClosingElement(tag), \"tag should be opening or closing element\");\n const openTag = tag.parent.openingElement;\n const closeTag = tag.parent.closingElement;\n const openTagNameStart = openTag.tagName.getStart(sourceFile);\n const openTagNameEnd = openTag.tagName.end;\n const closeTagNameStart = closeTag.tagName.getStart(sourceFile);\n const closeTagNameEnd = closeTag.tagName.end;\n if (openTagNameStart === openTag.getStart(sourceFile) || closeTagNameStart === closeTag.getStart(sourceFile) || openTagNameEnd === openTag.getEnd() || closeTagNameEnd === closeTag.getEnd()) return void 0;\n if (!(openTagNameStart <= position && position <= openTagNameEnd || closeTagNameStart <= position && position <= closeTagNameEnd)) return void 0;\n const openingTagText = openTag.tagName.getText(sourceFile);\n if (openingTagText !== closeTag.tagName.getText(sourceFile)) return void 0;\n return {\n ranges: [{ start: openTagNameStart, length: openTagNameEnd - openTagNameStart }, { start: closeTagNameStart, length: closeTagNameEnd - closeTagNameStart }],\n wordPattern: jsxTagWordPattern\n };\n }\n }\n function getLinesForRange(sourceFile, textRange) {\n return {\n lineStarts: sourceFile.getLineStarts(),\n firstLine: sourceFile.getLineAndCharacterOfPosition(textRange.pos).line,\n lastLine: sourceFile.getLineAndCharacterOfPosition(textRange.end).line\n };\n }\n function toggleLineComment(fileName, textRange, insertComment) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const textChanges2 = [];\n const { lineStarts, firstLine, lastLine } = getLinesForRange(sourceFile, textRange);\n let isCommenting = insertComment || false;\n let leftMostPosition = Number.MAX_VALUE;\n const lineTextStarts = /* @__PURE__ */ new Map();\n const firstNonWhitespaceCharacterRegex = new RegExp(/\\S/);\n const isJsx = isInsideJsxElement(sourceFile, lineStarts[firstLine]);\n const openComment = isJsx ? \"{/*\" : \"//\";\n for (let i = firstLine; i <= lastLine; i++) {\n const lineText = sourceFile.text.substring(lineStarts[i], sourceFile.getLineEndOfPosition(lineStarts[i]));\n const regExec = firstNonWhitespaceCharacterRegex.exec(lineText);\n if (regExec) {\n leftMostPosition = Math.min(leftMostPosition, regExec.index);\n lineTextStarts.set(i.toString(), regExec.index);\n if (lineText.substr(regExec.index, openComment.length) !== openComment) {\n isCommenting = insertComment === void 0 || insertComment;\n }\n }\n }\n for (let i = firstLine; i <= lastLine; i++) {\n if (firstLine !== lastLine && lineStarts[i] === textRange.end) {\n continue;\n }\n const lineTextStart = lineTextStarts.get(i.toString());\n if (lineTextStart !== void 0) {\n if (isJsx) {\n textChanges2.push(...toggleMultilineComment(fileName, { pos: lineStarts[i] + leftMostPosition, end: sourceFile.getLineEndOfPosition(lineStarts[i]) }, isCommenting, isJsx));\n } else if (isCommenting) {\n textChanges2.push({\n newText: openComment,\n span: {\n length: 0,\n start: lineStarts[i] + leftMostPosition\n }\n });\n } else if (sourceFile.text.substr(lineStarts[i] + lineTextStart, openComment.length) === openComment) {\n textChanges2.push({\n newText: \"\",\n span: {\n length: openComment.length,\n start: lineStarts[i] + lineTextStart\n }\n });\n }\n }\n }\n return textChanges2;\n }\n function toggleMultilineComment(fileName, textRange, insertComment, isInsideJsx) {\n var _a2;\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const textChanges2 = [];\n const { text } = sourceFile;\n let hasComment = false;\n let isCommenting = insertComment || false;\n const positions = [];\n let { pos } = textRange;\n const isJsx = isInsideJsx !== void 0 ? isInsideJsx : isInsideJsxElement(sourceFile, pos);\n const openMultiline = isJsx ? \"{/*\" : \"/*\";\n const closeMultiline = isJsx ? \"*/}\" : \"*/\";\n const openMultilineRegex = isJsx ? \"\\\\{\\\\/\\\\*\" : \"\\\\/\\\\*\";\n const closeMultilineRegex = isJsx ? \"\\\\*\\\\/\\\\}\" : \"\\\\*\\\\/\";\n while (pos <= textRange.end) {\n const offset = text.substr(pos, openMultiline.length) === openMultiline ? openMultiline.length : 0;\n const commentRange = isInComment(sourceFile, pos + offset);\n if (commentRange) {\n if (isJsx) {\n commentRange.pos--;\n commentRange.end++;\n }\n positions.push(commentRange.pos);\n if (commentRange.kind === 3 /* MultiLineCommentTrivia */) {\n positions.push(commentRange.end);\n }\n hasComment = true;\n pos = commentRange.end + 1;\n } else {\n const newPos = text.substring(pos, textRange.end).search(`(${openMultilineRegex})|(${closeMultilineRegex})`);\n isCommenting = insertComment !== void 0 ? insertComment : isCommenting || !isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos);\n pos = newPos === -1 ? textRange.end + 1 : pos + newPos + closeMultiline.length;\n }\n }\n if (isCommenting || !hasComment) {\n if (((_a2 = isInComment(sourceFile, textRange.pos)) == null ? void 0 : _a2.kind) !== 2 /* SingleLineCommentTrivia */) {\n insertSorted(positions, textRange.pos, compareValues);\n }\n insertSorted(positions, textRange.end, compareValues);\n const firstPos = positions[0];\n if (text.substr(firstPos, openMultiline.length) !== openMultiline) {\n textChanges2.push({\n newText: openMultiline,\n span: {\n length: 0,\n start: firstPos\n }\n });\n }\n for (let i = 1; i < positions.length - 1; i++) {\n if (text.substr(positions[i] - closeMultiline.length, closeMultiline.length) !== closeMultiline) {\n textChanges2.push({\n newText: closeMultiline,\n span: {\n length: 0,\n start: positions[i]\n }\n });\n }\n if (text.substr(positions[i], openMultiline.length) !== openMultiline) {\n textChanges2.push({\n newText: openMultiline,\n span: {\n length: 0,\n start: positions[i]\n }\n });\n }\n }\n if (textChanges2.length % 2 !== 0) {\n textChanges2.push({\n newText: closeMultiline,\n span: {\n length: 0,\n start: positions[positions.length - 1]\n }\n });\n }\n } else {\n for (const pos2 of positions) {\n const from = pos2 - closeMultiline.length > 0 ? pos2 - closeMultiline.length : 0;\n const offset = text.substr(from, closeMultiline.length) === closeMultiline ? closeMultiline.length : 0;\n textChanges2.push({\n newText: \"\",\n span: {\n length: openMultiline.length,\n start: pos2 - offset\n }\n });\n }\n }\n return textChanges2;\n }\n function commentSelection(fileName, textRange) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const { firstLine, lastLine } = getLinesForRange(sourceFile, textRange);\n return firstLine === lastLine && textRange.pos !== textRange.end ? toggleMultilineComment(\n fileName,\n textRange,\n /*insertComment*/\n true\n ) : toggleLineComment(\n fileName,\n textRange,\n /*insertComment*/\n true\n );\n }\n function uncommentSelection(fileName, textRange) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const textChanges2 = [];\n const { pos } = textRange;\n let { end } = textRange;\n if (pos === end) {\n end += isInsideJsxElement(sourceFile, pos) ? 2 : 1;\n }\n for (let i = pos; i <= end; i++) {\n const commentRange = isInComment(sourceFile, i);\n if (commentRange) {\n switch (commentRange.kind) {\n case 2 /* SingleLineCommentTrivia */:\n textChanges2.push(...toggleLineComment(\n fileName,\n { end: commentRange.end, pos: commentRange.pos + 1 },\n /*insertComment*/\n false\n ));\n break;\n case 3 /* MultiLineCommentTrivia */:\n textChanges2.push(...toggleMultilineComment(\n fileName,\n { end: commentRange.end, pos: commentRange.pos + 1 },\n /*insertComment*/\n false\n ));\n }\n i = commentRange.end + 1;\n }\n }\n return textChanges2;\n }\n function isUnclosedTag({ openingElement, closingElement, parent: parent2 }) {\n return !tagNamesAreEquivalent(openingElement.tagName, closingElement.tagName) || isJsxElement(parent2) && tagNamesAreEquivalent(openingElement.tagName, parent2.openingElement.tagName) && isUnclosedTag(parent2);\n }\n function isUnclosedFragment({ closingFragment, parent: parent2 }) {\n return !!(closingFragment.flags & 262144 /* ThisNodeHasError */) || isJsxFragment(parent2) && isUnclosedFragment(parent2);\n }\n function getSpanOfEnclosingComment(fileName, position, onlyMultiLine) {\n const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n const range = ts_formatting_exports.getRangeOfEnclosingComment(sourceFile, position);\n return range && (!onlyMultiLine || range.kind === 3 /* MultiLineCommentTrivia */) ? createTextSpanFromRange(range) : void 0;\n }\n function getTodoComments(fileName, descriptors) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n cancellationToken.throwIfCancellationRequested();\n const fileContents = sourceFile.text;\n const result = [];\n if (descriptors.length > 0 && !isNodeModulesFile(sourceFile.fileName)) {\n const regExp = getTodoCommentsRegExp();\n let matchArray;\n while (matchArray = regExp.exec(fileContents)) {\n cancellationToken.throwIfCancellationRequested();\n const firstDescriptorCaptureIndex = 3;\n Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex);\n const preamble = matchArray[1];\n const matchPosition = matchArray.index + preamble.length;\n if (!isInComment(sourceFile, matchPosition)) {\n continue;\n }\n let descriptor;\n for (let i = 0; i < descriptors.length; i++) {\n if (matchArray[i + firstDescriptorCaptureIndex]) {\n descriptor = descriptors[i];\n }\n }\n if (descriptor === void 0) return Debug.fail();\n if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) {\n continue;\n }\n const message = matchArray[2];\n result.push({ descriptor, message, position: matchPosition });\n }\n }\n return result;\n function escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, \"\\\\$&\");\n }\n function getTodoCommentsRegExp() {\n const singleLineCommentStart = /(?:\\/{2,}\\s*)/.source;\n const multiLineCommentStart = /(?:\\/\\*+\\s*)/.source;\n const anyNumberOfSpacesAndAsterisksAtStartOfLine = /(?:^(?:\\s|\\*)*)/.source;\n const preamble = \"(\" + anyNumberOfSpacesAndAsterisksAtStartOfLine + \"|\" + singleLineCommentStart + \"|\" + multiLineCommentStart + \")\";\n const literals = \"(?:\" + map(descriptors, (d) => \"(\" + escapeRegExp(d.text) + \")\").join(\"|\") + \")\";\n const endOfLineOrEndOfComment = /(?:$|\\*\\/)/.source;\n const messageRemainder = /(?:.*?)/.source;\n const messagePortion = \"(\" + literals + messageRemainder + \")\";\n const regExpString = preamble + messagePortion + endOfLineOrEndOfComment;\n return new RegExp(regExpString, \"gim\");\n }\n function isLetterOrDigit(char) {\n return char >= 97 /* a */ && char <= 122 /* z */ || char >= 65 /* A */ && char <= 90 /* Z */ || char >= 48 /* _0 */ && char <= 57 /* _9 */;\n }\n function isNodeModulesFile(path) {\n return path.includes(\"/node_modules/\");\n }\n }\n function getRenameInfo2(fileName, position, preferences) {\n synchronizeHostData();\n return ts_Rename_exports.getRenameInfo(program, getValidSourceFile(fileName), position, preferences || {});\n }\n function getRefactorContext(file, positionOrRange, preferences, formatOptions, triggerReason, kind) {\n const [startPosition, endPosition] = typeof positionOrRange === \"number\" ? [positionOrRange, void 0] : [positionOrRange.pos, positionOrRange.end];\n return {\n file,\n startPosition,\n endPosition,\n program: getProgram(),\n host,\n formatContext: ts_formatting_exports.getFormatContext(formatOptions, host),\n // TODO: GH#18217\n cancellationToken,\n preferences,\n triggerReason,\n kind\n };\n }\n function getInlayHintsContext(file, span, preferences) {\n return {\n file,\n program: getProgram(),\n host,\n span,\n preferences,\n cancellationToken\n };\n }\n function getSmartSelectionRange2(fileName, position) {\n return ts_SmartSelectionRange_exports.getSmartSelectionRange(position, syntaxTreeCache.getCurrentSourceFile(fileName));\n }\n function getApplicableRefactors2(fileName, positionOrRange, preferences = emptyOptions, triggerReason, kind, includeInteractiveActions) {\n synchronizeHostData();\n const file = getValidSourceFile(fileName);\n return ts_refactor_exports.getApplicableRefactors(getRefactorContext(file, positionOrRange, preferences, emptyOptions, triggerReason, kind), includeInteractiveActions);\n }\n function getMoveToRefactoringFileSuggestions(fileName, positionOrRange, preferences = emptyOptions) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const allFiles = Debug.checkDefined(program.getSourceFiles());\n const extension = extensionFromPath(fileName);\n const toMove = getStatementsToMove(getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions));\n const toMoveContainsJsx = containsJsx(toMove == null ? void 0 : toMove.all);\n const files = mapDefined(allFiles, (file) => {\n const fileNameExtension = extensionFromPath(file.fileName);\n const isValidSourceFile = !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === \".ts\" /* Ts */ && fileNameExtension === \".d.ts\" /* Dts */ || extension === \".d.ts\" /* Dts */ && startsWith(getBaseFileName(file.fileName), \"lib.\") && fileNameExtension === \".d.ts\" /* Dts */);\n return isValidSourceFile && (extension === fileNameExtension || (extension === \".tsx\" /* Tsx */ && fileNameExtension === \".ts\" /* Ts */ || extension === \".jsx\" /* Jsx */ && fileNameExtension === \".js\" /* Js */) && !toMoveContainsJsx) ? file.fileName : void 0;\n });\n return { newFileName: createNewFileName(sourceFile, program, host, toMove), files };\n }\n function getEditsForRefactor2(fileName, formatOptions, positionOrRange, refactorName14, actionName2, preferences = emptyOptions, interactiveRefactorArguments) {\n synchronizeHostData();\n const file = getValidSourceFile(fileName);\n return ts_refactor_exports.getEditsForRefactor(getRefactorContext(file, positionOrRange, preferences, formatOptions), refactorName14, actionName2, interactiveRefactorArguments);\n }\n function toLineColumnOffset(fileName, position) {\n if (position === 0) {\n return { line: 0, character: 0 };\n }\n return sourceMapper.toLineColumnOffset(fileName, position);\n }\n function prepareCallHierarchy(fileName, position) {\n synchronizeHostData();\n const declarations = ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, getTouchingPropertyName(getValidSourceFile(fileName), position));\n return declarations && mapOneOrMany(declarations, (declaration) => ts_CallHierarchy_exports.createCallHierarchyItem(program, declaration));\n }\n function provideCallHierarchyIncomingCalls(fileName, position) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position)));\n return declaration ? ts_CallHierarchy_exports.getIncomingCalls(program, declaration, cancellationToken) : [];\n }\n function provideCallHierarchyOutgoingCalls(fileName, position) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n const declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position)));\n return declaration ? ts_CallHierarchy_exports.getOutgoingCalls(program, declaration) : [];\n }\n function provideInlayHints2(fileName, span, preferences = emptyOptions) {\n synchronizeHostData();\n const sourceFile = getValidSourceFile(fileName);\n return ts_InlayHints_exports.provideInlayHints(getInlayHintsContext(sourceFile, span, preferences));\n }\n function mapCode2(sourceFile, contents, focusLocations, formatOptions, preferences) {\n return ts_MapCode_exports.mapCode(\n syntaxTreeCache.getCurrentSourceFile(sourceFile),\n contents,\n focusLocations,\n host,\n ts_formatting_exports.getFormatContext(formatOptions, host),\n preferences\n );\n }\n const ls = {\n dispose,\n cleanupSemanticCache,\n getSyntacticDiagnostics,\n getSemanticDiagnostics,\n getRegionSemanticDiagnostics,\n getSuggestionDiagnostics,\n getCompilerOptionsDiagnostics,\n getSyntacticClassifications: getSyntacticClassifications2,\n getSemanticClassifications: getSemanticClassifications3,\n getEncodedSyntacticClassifications: getEncodedSyntacticClassifications2,\n getEncodedSemanticClassifications: getEncodedSemanticClassifications3,\n getCompletionsAtPosition: getCompletionsAtPosition2,\n getCompletionEntryDetails: getCompletionEntryDetails2,\n getCompletionEntrySymbol: getCompletionEntrySymbol2,\n getSignatureHelpItems: getSignatureHelpItems2,\n getQuickInfoAtPosition,\n getDefinitionAtPosition: getDefinitionAtPosition2,\n getDefinitionAndBoundSpan: getDefinitionAndBoundSpan2,\n getImplementationAtPosition,\n getTypeDefinitionAtPosition: getTypeDefinitionAtPosition2,\n getReferencesAtPosition,\n findReferences,\n getFileReferences,\n getDocumentHighlights,\n getNameOrDottedNameSpan,\n getBreakpointStatementAtPosition,\n getNavigateToItems: getNavigateToItems2,\n getRenameInfo: getRenameInfo2,\n getSmartSelectionRange: getSmartSelectionRange2,\n findRenameLocations,\n getNavigationBarItems: getNavigationBarItems2,\n getNavigationTree: getNavigationTree2,\n getOutliningSpans,\n getTodoComments,\n getBraceMatchingAtPosition,\n getIndentationAtPosition,\n getFormattingEditsForRange,\n getFormattingEditsForDocument,\n getFormattingEditsAfterKeystroke,\n getDocCommentTemplateAtPosition: getDocCommentTemplateAtPosition2,\n isValidBraceCompletionAtPosition,\n getJsxClosingTagAtPosition,\n getLinkedEditingRangeAtPosition,\n getSpanOfEnclosingComment,\n getCodeFixesAtPosition,\n getCombinedCodeFix,\n applyCodeActionCommand,\n organizeImports: organizeImports2,\n getEditsForFileRename: getEditsForFileRename2,\n getEmitOutput,\n getNonBoundSourceFile,\n getProgram,\n getCurrentProgram: () => program,\n getAutoImportProvider,\n updateIsDefinitionOfReferencedSymbols,\n getApplicableRefactors: getApplicableRefactors2,\n getEditsForRefactor: getEditsForRefactor2,\n getMoveToRefactoringFileSuggestions,\n toLineColumnOffset,\n getSourceMapper: () => sourceMapper,\n clearSourceMapperCache: () => sourceMapper.clearCache(),\n prepareCallHierarchy,\n provideCallHierarchyIncomingCalls,\n provideCallHierarchyOutgoingCalls,\n toggleLineComment,\n toggleMultilineComment,\n commentSelection,\n uncommentSelection,\n provideInlayHints: provideInlayHints2,\n getSupportedCodeFixes,\n preparePasteEditsForFile,\n getPasteEdits,\n mapCode: mapCode2\n };\n switch (languageServiceMode) {\n case 0 /* Semantic */:\n break;\n case 1 /* PartialSemantic */:\n invalidOperationsInPartialSemanticMode.forEach(\n (key) => ls[key] = () => {\n throw new Error(`LanguageService Operation: ${key} not allowed in LanguageServiceMode.PartialSemantic`);\n }\n );\n break;\n case 2 /* Syntactic */:\n invalidOperationsInSyntacticMode.forEach(\n (key) => ls[key] = () => {\n throw new Error(`LanguageService Operation: ${key} not allowed in LanguageServiceMode.Syntactic`);\n }\n );\n break;\n default:\n Debug.assertNever(languageServiceMode);\n }\n return ls;\n}\nfunction getNameTable(sourceFile) {\n if (!sourceFile.nameTable) {\n initializeNameTable(sourceFile);\n }\n return sourceFile.nameTable;\n}\nfunction initializeNameTable(sourceFile) {\n const nameTable = sourceFile.nameTable = /* @__PURE__ */ new Map();\n sourceFile.forEachChild(function walk(node) {\n if (isIdentifier(node) && !isTagName(node) && node.escapedText || isStringOrNumericLiteralLike(node) && literalIsName(node)) {\n const text = getEscapedTextOfIdentifierOrLiteral(node);\n nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1);\n } else if (isPrivateIdentifier(node)) {\n const text = node.escapedText;\n nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1);\n }\n forEachChild(node, walk);\n if (hasJSDocNodes(node)) {\n for (const jsDoc of node.jsDoc) {\n forEachChild(jsDoc, walk);\n }\n }\n });\n}\nfunction literalIsName(node) {\n return isDeclarationName(node) || node.parent.kind === 284 /* ExternalModuleReference */ || isArgumentOfElementAccessExpression(node) || isLiteralComputedPropertyDeclarationName(node);\n}\nfunction getContainingObjectLiteralElement(node) {\n const element = getContainingObjectLiteralElementWorker(node);\n return element && (isObjectLiteralExpression(element.parent) || isJsxAttributes(element.parent)) ? element : void 0;\n}\nfunction getContainingObjectLiteralElementWorker(node) {\n switch (node.kind) {\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 9 /* NumericLiteral */:\n if (node.parent.kind === 168 /* ComputedPropertyName */) {\n return isObjectLiteralElement(node.parent.parent) ? node.parent.parent : void 0;\n }\n // falls through\n case 80 /* Identifier */:\n case 296 /* JsxNamespacedName */:\n return isObjectLiteralElement(node.parent) && (node.parent.parent.kind === 211 /* ObjectLiteralExpression */ || node.parent.parent.kind === 293 /* JsxAttributes */) && node.parent.name === node ? node.parent : void 0;\n }\n return void 0;\n}\nfunction getSymbolAtLocationForQuickInfo(node, checker) {\n const object = getContainingObjectLiteralElement(node);\n if (object) {\n const contextualType = checker.getContextualType(object.parent);\n const properties = contextualType && getPropertySymbolsFromContextualType(\n object,\n checker,\n contextualType,\n /*unionSymbolOk*/\n false\n );\n if (properties && properties.length === 1) {\n return first(properties);\n }\n }\n return checker.getSymbolAtLocation(node);\n}\nfunction getPropertySymbolsFromContextualType(node, checker, contextualType, unionSymbolOk) {\n const name = getNameFromPropertyName(node.name);\n if (!name) return emptyArray;\n if (!contextualType.isUnion()) {\n const symbol = contextualType.getProperty(name);\n return symbol ? [symbol] : emptyArray;\n }\n const filteredTypes = isObjectLiteralExpression(node.parent) || isJsxAttributes(node.parent) ? filter(contextualType.types, (t) => !checker.isTypeInvalidDueToUnionDiscriminant(t, node.parent)) : contextualType.types;\n const discriminatedPropertySymbols = mapDefined(filteredTypes, (t) => t.getProperty(name));\n if (unionSymbolOk && (discriminatedPropertySymbols.length === 0 || discriminatedPropertySymbols.length === contextualType.types.length)) {\n const symbol = contextualType.getProperty(name);\n if (symbol) return [symbol];\n }\n if (!filteredTypes.length && !discriminatedPropertySymbols.length) {\n return mapDefined(contextualType.types, (t) => t.getProperty(name));\n }\n return deduplicate(discriminatedPropertySymbols, equateValues);\n}\nfunction isArgumentOfElementAccessExpression(node) {\n return node && node.parent && node.parent.kind === 213 /* ElementAccessExpression */ && node.parent.argumentExpression === node;\n}\nfunction getDefaultLibFilePath(options) {\n if (sys) {\n return combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), getDefaultLibFileName(options));\n }\n throw new Error(\"getDefaultLibFilePath is only supported when consumed as a node module. \");\n}\nsetObjectAllocator(getServicesObjectAllocator());\n\n// src/services/transform.ts\nfunction transform(source, transformers, compilerOptions) {\n const diagnostics = [];\n compilerOptions = fixupCompilerOptions(compilerOptions, diagnostics);\n const nodes = isArray(source) ? source : [source];\n const result = transformNodes(\n /*resolver*/\n void 0,\n /*host*/\n void 0,\n factory,\n compilerOptions,\n nodes,\n transformers,\n /*allowDtsFiles*/\n true\n );\n result.diagnostics = concatenate(result.diagnostics, diagnostics);\n return result;\n}\n\n// src/services/_namespaces/ts.BreakpointResolver.ts\nvar ts_BreakpointResolver_exports = {};\n__export(ts_BreakpointResolver_exports, {\n spanInSourceFileAtLocation: () => spanInSourceFileAtLocation\n});\n\n// src/services/breakpoints.ts\nfunction spanInSourceFileAtLocation(sourceFile, position) {\n if (sourceFile.isDeclarationFile) {\n return void 0;\n }\n let tokenAtLocation = getTokenAtPosition(sourceFile, position);\n const lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line;\n if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart(sourceFile)).line > lineOfPosition) {\n const preceding = findPrecedingToken(tokenAtLocation.pos, sourceFile);\n if (!preceding || sourceFile.getLineAndCharacterOfPosition(preceding.getEnd()).line !== lineOfPosition) {\n return void 0;\n }\n tokenAtLocation = preceding;\n }\n if (tokenAtLocation.flags & 33554432 /* Ambient */) {\n return void 0;\n }\n return spanInNode(tokenAtLocation);\n function textSpan(startNode2, endNode2) {\n const lastDecorator = canHaveDecorators(startNode2) ? findLast(startNode2.modifiers, isDecorator) : void 0;\n const start = lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : startNode2.getStart(sourceFile);\n return createTextSpanFromBounds(start, (endNode2 || startNode2).getEnd());\n }\n function textSpanEndingAtNextToken(startNode2, previousTokenToFindNextEndToken) {\n return textSpan(startNode2, findNextToken(previousTokenToFindNextEndToken, previousTokenToFindNextEndToken.parent, sourceFile));\n }\n function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) {\n if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line) {\n return spanInNode(node);\n }\n return spanInNode(otherwiseOnNode);\n }\n function spanInNodeArray(nodeArray, node, match) {\n if (nodeArray) {\n const index = nodeArray.indexOf(node);\n if (index >= 0) {\n let start = index;\n let end = index + 1;\n while (start > 0 && match(nodeArray[start - 1])) start--;\n while (end < nodeArray.length && match(nodeArray[end])) end++;\n return createTextSpanFromBounds(skipTrivia(sourceFile.text, nodeArray[start].pos), nodeArray[end - 1].end);\n }\n }\n return textSpan(node);\n }\n function spanInPreviousNode(node) {\n return spanInNode(findPrecedingToken(node.pos, sourceFile));\n }\n function spanInNextNode(node) {\n return spanInNode(findNextToken(node, node.parent, sourceFile));\n }\n function spanInNode(node) {\n if (node) {\n const { parent: parent2 } = node;\n switch (node.kind) {\n case 244 /* VariableStatement */:\n return spanInVariableDeclaration(node.declarationList.declarations[0]);\n case 261 /* VariableDeclaration */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return spanInVariableDeclaration(node);\n case 170 /* Parameter */:\n return spanInParameterDeclaration(node);\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 177 /* Constructor */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return spanInFunctionDeclaration(node);\n case 242 /* Block */:\n if (isFunctionBlock(node)) {\n return spanInFunctionBlock(node);\n }\n // falls through\n case 269 /* ModuleBlock */:\n return spanInBlock(node);\n case 300 /* CatchClause */:\n return spanInBlock(node.block);\n case 245 /* ExpressionStatement */:\n return textSpan(node.expression);\n case 254 /* ReturnStatement */:\n return textSpan(node.getChildAt(0), node.expression);\n case 248 /* WhileStatement */:\n return textSpanEndingAtNextToken(node, node.expression);\n case 247 /* DoStatement */:\n return spanInNode(node.statement);\n case 260 /* DebuggerStatement */:\n return textSpan(node.getChildAt(0));\n case 246 /* IfStatement */:\n return textSpanEndingAtNextToken(node, node.expression);\n case 257 /* LabeledStatement */:\n return spanInNode(node.statement);\n case 253 /* BreakStatement */:\n case 252 /* ContinueStatement */:\n return textSpan(node.getChildAt(0), node.label);\n case 249 /* ForStatement */:\n return spanInForStatement(node);\n case 250 /* ForInStatement */:\n return textSpanEndingAtNextToken(node, node.expression);\n case 251 /* ForOfStatement */:\n return spanInInitializerOfForLike(node);\n case 256 /* SwitchStatement */:\n return textSpanEndingAtNextToken(node, node.expression);\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n return spanInNode(node.statements[0]);\n case 259 /* TryStatement */:\n return spanInBlock(node.tryBlock);\n case 258 /* ThrowStatement */:\n return textSpan(node, node.expression);\n case 278 /* ExportAssignment */:\n return textSpan(node, node.expression);\n case 272 /* ImportEqualsDeclaration */:\n return textSpan(node, node.moduleReference);\n case 273 /* ImportDeclaration */:\n return textSpan(node, node.moduleSpecifier);\n case 279 /* ExportDeclaration */:\n return textSpan(node, node.moduleSpecifier);\n case 268 /* ModuleDeclaration */:\n if (getModuleInstanceState(node) !== 1 /* Instantiated */) {\n return void 0;\n }\n // falls through\n case 264 /* ClassDeclaration */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 209 /* BindingElement */:\n return textSpan(node);\n case 255 /* WithStatement */:\n return spanInNode(node.statement);\n case 171 /* Decorator */:\n return spanInNodeArray(parent2.modifiers, node, isDecorator);\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n return spanInBindingPattern(node);\n // No breakpoint in interface, type alias\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return void 0;\n // Tokens:\n case 27 /* SemicolonToken */:\n case 1 /* EndOfFileToken */:\n return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile));\n case 28 /* CommaToken */:\n return spanInPreviousNode(node);\n case 19 /* OpenBraceToken */:\n return spanInOpenBraceToken(node);\n case 20 /* CloseBraceToken */:\n return spanInCloseBraceToken(node);\n case 24 /* CloseBracketToken */:\n return spanInCloseBracketToken(node);\n case 21 /* OpenParenToken */:\n return spanInOpenParenToken(node);\n case 22 /* CloseParenToken */:\n return spanInCloseParenToken(node);\n case 59 /* ColonToken */:\n return spanInColonToken(node);\n case 32 /* GreaterThanToken */:\n case 30 /* LessThanToken */:\n return spanInGreaterThanOrLessThanToken(node);\n // Keywords:\n case 117 /* WhileKeyword */:\n return spanInWhileKeyword(node);\n case 93 /* ElseKeyword */:\n case 85 /* CatchKeyword */:\n case 98 /* FinallyKeyword */:\n return spanInNextNode(node);\n case 165 /* OfKeyword */:\n return spanInOfKeyword(node);\n default:\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(node)) {\n return spanInArrayLiteralOrObjectLiteralDestructuringPattern(node);\n }\n if ((node.kind === 80 /* Identifier */ || node.kind === 231 /* SpreadElement */ || node.kind === 304 /* PropertyAssignment */ || node.kind === 305 /* ShorthandPropertyAssignment */) && isArrayLiteralOrObjectLiteralDestructuringPattern(parent2)) {\n return textSpan(node);\n }\n if (node.kind === 227 /* BinaryExpression */) {\n const { left, operatorToken } = node;\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(left)) {\n return spanInArrayLiteralOrObjectLiteralDestructuringPattern(\n left\n );\n }\n if (operatorToken.kind === 64 /* EqualsToken */ && isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {\n return textSpan(node);\n }\n if (operatorToken.kind === 28 /* CommaToken */) {\n return spanInNode(left);\n }\n }\n if (isExpressionNode(node)) {\n switch (parent2.kind) {\n case 247 /* DoStatement */:\n return spanInPreviousNode(node);\n case 171 /* Decorator */:\n return spanInNode(node.parent);\n case 249 /* ForStatement */:\n case 251 /* ForOfStatement */:\n return textSpan(node);\n case 227 /* BinaryExpression */:\n if (node.parent.operatorToken.kind === 28 /* CommaToken */) {\n return textSpan(node);\n }\n break;\n case 220 /* ArrowFunction */:\n if (node.parent.body === node) {\n return textSpan(node);\n }\n break;\n }\n }\n switch (node.parent.kind) {\n case 304 /* PropertyAssignment */:\n if (node.parent.name === node && !isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.parent)) {\n return spanInNode(node.parent.initializer);\n }\n break;\n case 217 /* TypeAssertionExpression */:\n if (node.parent.type === node) {\n return spanInNextNode(node.parent.type);\n }\n break;\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */: {\n const { initializer, type } = node.parent;\n if (initializer === node || type === node || isAssignmentOperator(node.kind)) {\n return spanInPreviousNode(node);\n }\n break;\n }\n case 227 /* BinaryExpression */: {\n const { left } = node.parent;\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(left) && node !== left) {\n return spanInPreviousNode(node);\n }\n break;\n }\n default:\n if (isFunctionLike(node.parent) && node.parent.type === node) {\n return spanInPreviousNode(node);\n }\n }\n return spanInNode(node.parent);\n }\n }\n function textSpanFromVariableDeclaration(variableDeclaration) {\n if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] === variableDeclaration) {\n return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);\n } else {\n return textSpan(variableDeclaration);\n }\n }\n function spanInVariableDeclaration(variableDeclaration) {\n if (variableDeclaration.parent.parent.kind === 250 /* ForInStatement */) {\n return spanInNode(variableDeclaration.parent.parent);\n }\n const parent2 = variableDeclaration.parent;\n if (isBindingPattern(variableDeclaration.name)) {\n return spanInBindingPattern(variableDeclaration.name);\n }\n if (hasOnlyExpressionInitializer(variableDeclaration) && variableDeclaration.initializer || hasSyntacticModifier(variableDeclaration, 32 /* Export */) || parent2.parent.kind === 251 /* ForOfStatement */) {\n return textSpanFromVariableDeclaration(variableDeclaration);\n }\n if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] !== variableDeclaration) {\n return spanInNode(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent));\n }\n }\n function canHaveSpanInParameterDeclaration(parameter) {\n return !!parameter.initializer || parameter.dotDotDotToken !== void 0 || hasSyntacticModifier(parameter, 1 /* Public */ | 2 /* Private */);\n }\n function spanInParameterDeclaration(parameter) {\n if (isBindingPattern(parameter.name)) {\n return spanInBindingPattern(parameter.name);\n } else if (canHaveSpanInParameterDeclaration(parameter)) {\n return textSpan(parameter);\n } else {\n const functionDeclaration = parameter.parent;\n const indexOfParameter = functionDeclaration.parameters.indexOf(parameter);\n Debug.assert(indexOfParameter !== -1);\n if (indexOfParameter !== 0) {\n return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]);\n } else {\n return spanInNode(functionDeclaration.body);\n }\n }\n }\n function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) {\n return hasSyntacticModifier(functionDeclaration, 32 /* Export */) || functionDeclaration.parent.kind === 264 /* ClassDeclaration */ && functionDeclaration.kind !== 177 /* Constructor */;\n }\n function spanInFunctionDeclaration(functionDeclaration) {\n if (!functionDeclaration.body) {\n return void 0;\n }\n if (canFunctionHaveSpanInWholeDeclaration(functionDeclaration)) {\n return textSpan(functionDeclaration);\n }\n return spanInNode(functionDeclaration.body);\n }\n function spanInFunctionBlock(block) {\n const nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken();\n if (canFunctionHaveSpanInWholeDeclaration(block.parent)) {\n return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock);\n }\n return spanInNode(nodeForSpanInBlock);\n }\n function spanInBlock(block) {\n switch (block.parent.kind) {\n case 268 /* ModuleDeclaration */:\n if (getModuleInstanceState(block.parent) !== 1 /* Instantiated */) {\n return void 0;\n }\n // Set on parent if on same line otherwise on first statement\n // falls through\n case 248 /* WhileStatement */:\n case 246 /* IfStatement */:\n case 250 /* ForInStatement */:\n return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]);\n // Set span on previous token if it starts on same line otherwise on the first statement of the block\n case 249 /* ForStatement */:\n case 251 /* ForOfStatement */:\n return spanInNodeIfStartsOnSameLine(findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]);\n }\n return spanInNode(block.statements[0]);\n }\n function spanInInitializerOfForLike(forLikeStatement) {\n if (forLikeStatement.initializer.kind === 262 /* VariableDeclarationList */) {\n const variableDeclarationList = forLikeStatement.initializer;\n if (variableDeclarationList.declarations.length > 0) {\n return spanInNode(variableDeclarationList.declarations[0]);\n }\n } else {\n return spanInNode(forLikeStatement.initializer);\n }\n }\n function spanInForStatement(forStatement) {\n if (forStatement.initializer) {\n return spanInInitializerOfForLike(forStatement);\n }\n if (forStatement.condition) {\n return textSpan(forStatement.condition);\n }\n if (forStatement.incrementor) {\n return textSpan(forStatement.incrementor);\n }\n }\n function spanInBindingPattern(bindingPattern) {\n const firstBindingElement = forEach(bindingPattern.elements, (element) => element.kind !== 233 /* OmittedExpression */ ? element : void 0);\n if (firstBindingElement) {\n return spanInNode(firstBindingElement);\n }\n if (bindingPattern.parent.kind === 209 /* BindingElement */) {\n return textSpan(bindingPattern.parent);\n }\n return textSpanFromVariableDeclaration(bindingPattern.parent);\n }\n function spanInArrayLiteralOrObjectLiteralDestructuringPattern(node2) {\n Debug.assert(node2.kind !== 208 /* ArrayBindingPattern */ && node2.kind !== 207 /* ObjectBindingPattern */);\n const elements = node2.kind === 210 /* ArrayLiteralExpression */ ? node2.elements : node2.properties;\n const firstBindingElement = forEach(elements, (element) => element.kind !== 233 /* OmittedExpression */ ? element : void 0);\n if (firstBindingElement) {\n return spanInNode(firstBindingElement);\n }\n return textSpan(node2.parent.kind === 227 /* BinaryExpression */ ? node2.parent : node2);\n }\n function spanInOpenBraceToken(node2) {\n switch (node2.parent.kind) {\n case 267 /* EnumDeclaration */:\n const enumDeclaration = node2.parent;\n return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile));\n case 264 /* ClassDeclaration */:\n const classDeclaration = node2.parent;\n return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile));\n case 270 /* CaseBlock */:\n return spanInNodeIfStartsOnSameLine(node2.parent.parent, node2.parent.clauses[0]);\n }\n return spanInNode(node2.parent);\n }\n function spanInCloseBraceToken(node2) {\n switch (node2.parent.kind) {\n case 269 /* ModuleBlock */:\n if (getModuleInstanceState(node2.parent.parent) !== 1 /* Instantiated */) {\n return void 0;\n }\n // falls through\n case 267 /* EnumDeclaration */:\n case 264 /* ClassDeclaration */:\n return textSpan(node2);\n case 242 /* Block */:\n if (isFunctionBlock(node2.parent)) {\n return textSpan(node2);\n }\n // falls through\n case 300 /* CatchClause */:\n return spanInNode(lastOrUndefined(node2.parent.statements));\n case 270 /* CaseBlock */:\n const caseBlock = node2.parent;\n const lastClause = lastOrUndefined(caseBlock.clauses);\n if (lastClause) {\n return spanInNode(lastOrUndefined(lastClause.statements));\n }\n return void 0;\n case 207 /* ObjectBindingPattern */:\n const bindingPattern = node2.parent;\n return spanInNode(lastOrUndefined(bindingPattern.elements) || bindingPattern);\n // Default to parent node\n default:\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) {\n const objectLiteral = node2.parent;\n return textSpan(lastOrUndefined(objectLiteral.properties) || objectLiteral);\n }\n return spanInNode(node2.parent);\n }\n }\n function spanInCloseBracketToken(node2) {\n switch (node2.parent.kind) {\n case 208 /* ArrayBindingPattern */:\n const bindingPattern = node2.parent;\n return textSpan(lastOrUndefined(bindingPattern.elements) || bindingPattern);\n default:\n if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) {\n const arrayLiteral = node2.parent;\n return textSpan(lastOrUndefined(arrayLiteral.elements) || arrayLiteral);\n }\n return spanInNode(node2.parent);\n }\n }\n function spanInOpenParenToken(node2) {\n if (node2.parent.kind === 247 /* DoStatement */ || // Go to while keyword and do action instead\n node2.parent.kind === 214 /* CallExpression */ || node2.parent.kind === 215 /* NewExpression */) {\n return spanInPreviousNode(node2);\n }\n if (node2.parent.kind === 218 /* ParenthesizedExpression */) {\n return spanInNextNode(node2);\n }\n return spanInNode(node2.parent);\n }\n function spanInCloseParenToken(node2) {\n switch (node2.parent.kind) {\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 177 /* Constructor */:\n case 248 /* WhileStatement */:\n case 247 /* DoStatement */:\n case 249 /* ForStatement */:\n case 251 /* ForOfStatement */:\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 218 /* ParenthesizedExpression */:\n return spanInPreviousNode(node2);\n // Default to parent node\n default:\n return spanInNode(node2.parent);\n }\n }\n function spanInColonToken(node2) {\n if (isFunctionLike(node2.parent) || node2.parent.kind === 304 /* PropertyAssignment */ || node2.parent.kind === 170 /* Parameter */) {\n return spanInPreviousNode(node2);\n }\n return spanInNode(node2.parent);\n }\n function spanInGreaterThanOrLessThanToken(node2) {\n if (node2.parent.kind === 217 /* TypeAssertionExpression */) {\n return spanInNextNode(node2);\n }\n return spanInNode(node2.parent);\n }\n function spanInWhileKeyword(node2) {\n if (node2.parent.kind === 247 /* DoStatement */) {\n return textSpanEndingAtNextToken(node2, node2.parent.expression);\n }\n return spanInNode(node2.parent);\n }\n function spanInOfKeyword(node2) {\n if (node2.parent.kind === 251 /* ForOfStatement */) {\n return spanInNextNode(node2);\n }\n return spanInNode(node2.parent);\n }\n }\n}\n\n// src/services/_namespaces/ts.CallHierarchy.ts\nvar ts_CallHierarchy_exports = {};\n__export(ts_CallHierarchy_exports, {\n createCallHierarchyItem: () => createCallHierarchyItem,\n getIncomingCalls: () => getIncomingCalls,\n getOutgoingCalls: () => getOutgoingCalls,\n resolveCallHierarchyDeclaration: () => resolveCallHierarchyDeclaration\n});\n\n// src/services/callHierarchy.ts\nfunction isNamedExpression(node) {\n return (isFunctionExpression(node) || isClassExpression(node)) && isNamedDeclaration(node);\n}\nfunction isVariableLike2(node) {\n return isPropertyDeclaration(node) || isVariableDeclaration(node);\n}\nfunction isAssignedExpression(node) {\n return (isFunctionExpression(node) || isArrowFunction(node) || isClassExpression(node)) && isVariableLike2(node.parent) && node === node.parent.initializer && isIdentifier(node.parent.name) && (!!(getCombinedNodeFlags(node.parent) & 2 /* Const */) || isPropertyDeclaration(node.parent));\n}\nfunction isPossibleCallHierarchyDeclaration(node) {\n return isSourceFile(node) || isModuleDeclaration(node) || isFunctionDeclaration(node) || isFunctionExpression(node) || isClassDeclaration(node) || isClassExpression(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node);\n}\nfunction isValidCallHierarchyDeclaration(node) {\n return isSourceFile(node) || isModuleDeclaration(node) && isIdentifier(node.name) || isFunctionDeclaration(node) || isClassDeclaration(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node) || isNamedExpression(node) || isAssignedExpression(node);\n}\nfunction getCallHierarchyDeclarationReferenceNode(node) {\n if (isSourceFile(node)) return node;\n if (isNamedDeclaration(node)) return node.name;\n if (isAssignedExpression(node)) return node.parent.name;\n return Debug.checkDefined(node.modifiers && find(node.modifiers, isDefaultModifier3));\n}\nfunction isDefaultModifier3(node) {\n return node.kind === 90 /* DefaultKeyword */;\n}\nfunction getSymbolOfCallHierarchyDeclaration(typeChecker, node) {\n const location = getCallHierarchyDeclarationReferenceNode(node);\n return location && typeChecker.getSymbolAtLocation(location);\n}\nfunction getCallHierarchyItemName(program, node) {\n if (isSourceFile(node)) {\n return { text: node.fileName, pos: 0, end: 0 };\n }\n if ((isFunctionDeclaration(node) || isClassDeclaration(node)) && !isNamedDeclaration(node)) {\n const defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier3);\n if (defaultModifier) {\n return { text: \"default\", pos: defaultModifier.getStart(), end: defaultModifier.getEnd() };\n }\n }\n if (isClassStaticBlockDeclaration(node)) {\n const sourceFile = node.getSourceFile();\n const pos = skipTrivia(sourceFile.text, moveRangePastModifiers(node).pos);\n const end = pos + 6;\n const typeChecker = program.getTypeChecker();\n const symbol = typeChecker.getSymbolAtLocation(node.parent);\n const prefix = symbol ? `${typeChecker.symbolToString(symbol, node.parent)} ` : \"\";\n return { text: `${prefix}static {}`, pos, end };\n }\n const declName = isAssignedExpression(node) ? node.parent.name : Debug.checkDefined(getNameOfDeclaration(node), \"Expected call hierarchy item to have a name\");\n let text = isIdentifier(declName) ? idText(declName) : isStringOrNumericLiteralLike(declName) ? declName.text : isComputedPropertyName(declName) ? isStringOrNumericLiteralLike(declName.expression) ? declName.expression.text : void 0 : void 0;\n if (text === void 0) {\n const typeChecker = program.getTypeChecker();\n const symbol = typeChecker.getSymbolAtLocation(declName);\n if (symbol) {\n text = typeChecker.symbolToString(symbol, node);\n }\n }\n if (text === void 0) {\n const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();\n text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));\n }\n return { text, pos: declName.getStart(), end: declName.getEnd() };\n}\nfunction getCallHierarchItemContainerName(node) {\n var _a, _b, _c, _d;\n if (isAssignedExpression(node)) {\n if (isPropertyDeclaration(node.parent) && isClassLike(node.parent.parent)) {\n return isClassExpression(node.parent.parent) ? (_a = getAssignedName(node.parent.parent)) == null ? void 0 : _a.getText() : (_b = node.parent.parent.name) == null ? void 0 : _b.getText();\n }\n if (isModuleBlock(node.parent.parent.parent.parent) && isIdentifier(node.parent.parent.parent.parent.parent.name)) {\n return node.parent.parent.parent.parent.parent.name.getText();\n }\n return;\n }\n switch (node.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n if (node.parent.kind === 211 /* ObjectLiteralExpression */) {\n return (_c = getAssignedName(node.parent)) == null ? void 0 : _c.getText();\n }\n return (_d = getNameOfDeclaration(node.parent)) == null ? void 0 : _d.getText();\n case 263 /* FunctionDeclaration */:\n case 264 /* ClassDeclaration */:\n case 268 /* ModuleDeclaration */:\n if (isModuleBlock(node.parent) && isIdentifier(node.parent.parent.name)) {\n return node.parent.parent.name.getText();\n }\n }\n}\nfunction findImplementation(typeChecker, node) {\n if (node.body) {\n return node;\n }\n if (isConstructorDeclaration(node)) {\n return getFirstConstructorWithBody(node.parent);\n }\n if (isFunctionDeclaration(node) || isMethodDeclaration(node)) {\n const symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node);\n if (symbol && symbol.valueDeclaration && isFunctionLikeDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.body) {\n return symbol.valueDeclaration;\n }\n return void 0;\n }\n return node;\n}\nfunction findAllInitialDeclarations(typeChecker, node) {\n const symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node);\n let declarations;\n if (symbol && symbol.declarations) {\n const indices = indicesOf(symbol.declarations);\n const keys = map(symbol.declarations, (decl) => ({ file: decl.getSourceFile().fileName, pos: decl.pos }));\n indices.sort((a, b) => compareStringsCaseSensitive(keys[a].file, keys[b].file) || keys[a].pos - keys[b].pos);\n const sortedDeclarations = map(indices, (i) => symbol.declarations[i]);\n let lastDecl;\n for (const decl of sortedDeclarations) {\n if (isValidCallHierarchyDeclaration(decl)) {\n if (!lastDecl || lastDecl.parent !== decl.parent || lastDecl.end !== decl.pos) {\n declarations = append(declarations, decl);\n }\n lastDecl = decl;\n }\n }\n }\n return declarations;\n}\nfunction findImplementationOrAllInitialDeclarations(typeChecker, node) {\n if (isClassStaticBlockDeclaration(node)) {\n return node;\n }\n if (isFunctionLikeDeclaration(node)) {\n return findImplementation(typeChecker, node) ?? findAllInitialDeclarations(typeChecker, node) ?? node;\n }\n return findAllInitialDeclarations(typeChecker, node) ?? node;\n}\nfunction resolveCallHierarchyDeclaration(program, location) {\n const typeChecker = program.getTypeChecker();\n let followingSymbol = false;\n while (true) {\n if (isValidCallHierarchyDeclaration(location)) {\n return findImplementationOrAllInitialDeclarations(typeChecker, location);\n }\n if (isPossibleCallHierarchyDeclaration(location)) {\n const ancestor = findAncestor(location, isValidCallHierarchyDeclaration);\n return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor);\n }\n if (isDeclarationName(location)) {\n if (isValidCallHierarchyDeclaration(location.parent)) {\n return findImplementationOrAllInitialDeclarations(typeChecker, location.parent);\n }\n if (isPossibleCallHierarchyDeclaration(location.parent)) {\n const ancestor = findAncestor(location.parent, isValidCallHierarchyDeclaration);\n return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor);\n }\n if (isVariableLike2(location.parent) && location.parent.initializer && isAssignedExpression(location.parent.initializer)) {\n return location.parent.initializer;\n }\n return void 0;\n }\n if (isConstructorDeclaration(location)) {\n if (isValidCallHierarchyDeclaration(location.parent)) {\n return location.parent;\n }\n return void 0;\n }\n if (location.kind === 126 /* StaticKeyword */ && isClassStaticBlockDeclaration(location.parent)) {\n location = location.parent;\n continue;\n }\n if (isVariableDeclaration(location) && location.initializer && isAssignedExpression(location.initializer)) {\n return location.initializer;\n }\n if (!followingSymbol) {\n let symbol = typeChecker.getSymbolAtLocation(location);\n if (symbol) {\n if (symbol.flags & 2097152 /* Alias */) {\n symbol = typeChecker.getAliasedSymbol(symbol);\n }\n if (symbol.valueDeclaration) {\n followingSymbol = true;\n location = symbol.valueDeclaration;\n continue;\n }\n }\n }\n return void 0;\n }\n}\nfunction createCallHierarchyItem(program, node) {\n const sourceFile = node.getSourceFile();\n const name = getCallHierarchyItemName(program, node);\n const containerName = getCallHierarchItemContainerName(node);\n const kind = getNodeKind(node);\n const kindModifiers = getNodeModifiers(node);\n const span = createTextSpanFromBounds(skipTrivia(\n sourceFile.text,\n node.getFullStart(),\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n ), node.getEnd());\n const selectionSpan = createTextSpanFromBounds(name.pos, name.end);\n return { file: sourceFile.fileName, kind, kindModifiers, name: name.text, containerName, span, selectionSpan };\n}\nfunction isDefined(x) {\n return x !== void 0;\n}\nfunction convertEntryToCallSite(entry) {\n if (entry.kind === ts_FindAllReferences_exports.EntryKind.Node) {\n const { node } = entry;\n if (isCallOrNewExpressionTarget(\n node,\n /*includeElementAccess*/\n true,\n /*skipPastOuterExpressions*/\n true\n ) || isTaggedTemplateTag(\n node,\n /*includeElementAccess*/\n true,\n /*skipPastOuterExpressions*/\n true\n ) || isDecoratorTarget(\n node,\n /*includeElementAccess*/\n true,\n /*skipPastOuterExpressions*/\n true\n ) || isJsxOpeningLikeElementTagName(\n node,\n /*includeElementAccess*/\n true,\n /*skipPastOuterExpressions*/\n true\n ) || isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node)) {\n const sourceFile = node.getSourceFile();\n const ancestor = findAncestor(node, isValidCallHierarchyDeclaration) || sourceFile;\n return { declaration: ancestor, range: createTextRangeFromNode(node, sourceFile) };\n }\n }\n}\nfunction getCallSiteGroupKey(entry) {\n return getNodeId(entry.declaration);\n}\nfunction createCallHierarchyIncomingCall(from, fromSpans) {\n return { from, fromSpans };\n}\nfunction convertCallSiteGroupToIncomingCall(program, entries) {\n return createCallHierarchyIncomingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, (entry) => createTextSpanFromRange(entry.range)));\n}\nfunction getIncomingCalls(program, declaration, cancellationToken) {\n if (isSourceFile(declaration) || isModuleDeclaration(declaration) || isClassStaticBlockDeclaration(declaration)) {\n return [];\n }\n const location = getCallHierarchyDeclarationReferenceNode(declaration);\n const calls = filter(ts_FindAllReferences_exports.findReferenceOrRenameEntries(\n program,\n cancellationToken,\n program.getSourceFiles(),\n location,\n /*position*/\n 0,\n { use: ts_FindAllReferences_exports.FindReferencesUse.References },\n convertEntryToCallSite\n ), isDefined);\n return calls ? group(calls, getCallSiteGroupKey, (entries) => convertCallSiteGroupToIncomingCall(program, entries)) : [];\n}\nfunction createCallSiteCollector(program, callSites) {\n function recordCallSite(node) {\n const target = isTaggedTemplateExpression(node) ? node.tag : isJsxOpeningLikeElement(node) ? node.tagName : isAccessExpression(node) ? node : isClassStaticBlockDeclaration(node) ? node : node.expression;\n const declaration = resolveCallHierarchyDeclaration(program, target);\n if (declaration) {\n const range = createTextRangeFromNode(target, node.getSourceFile());\n if (isArray(declaration)) {\n for (const decl of declaration) {\n callSites.push({ declaration: decl, range });\n }\n } else {\n callSites.push({ declaration, range });\n }\n }\n }\n function collect(node) {\n if (!node) return;\n if (node.flags & 33554432 /* Ambient */) {\n return;\n }\n if (isValidCallHierarchyDeclaration(node)) {\n if (isClassLike(node)) {\n for (const member of node.members) {\n if (member.name && isComputedPropertyName(member.name)) {\n collect(member.name.expression);\n }\n }\n }\n return;\n }\n switch (node.kind) {\n case 80 /* Identifier */:\n case 272 /* ImportEqualsDeclaration */:\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n return;\n case 176 /* ClassStaticBlockDeclaration */:\n recordCallSite(node);\n return;\n case 217 /* TypeAssertionExpression */:\n case 235 /* AsExpression */:\n collect(node.expression);\n return;\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n collect(node.name);\n collect(node.initializer);\n return;\n case 214 /* CallExpression */:\n recordCallSite(node);\n collect(node.expression);\n forEach(node.arguments, collect);\n return;\n case 215 /* NewExpression */:\n recordCallSite(node);\n collect(node.expression);\n forEach(node.arguments, collect);\n return;\n case 216 /* TaggedTemplateExpression */:\n recordCallSite(node);\n collect(node.tag);\n collect(node.template);\n return;\n case 287 /* JsxOpeningElement */:\n case 286 /* JsxSelfClosingElement */:\n recordCallSite(node);\n collect(node.tagName);\n collect(node.attributes);\n return;\n case 171 /* Decorator */:\n recordCallSite(node);\n collect(node.expression);\n return;\n case 212 /* PropertyAccessExpression */:\n case 213 /* ElementAccessExpression */:\n recordCallSite(node);\n forEachChild(node, collect);\n break;\n case 239 /* SatisfiesExpression */:\n collect(node.expression);\n return;\n }\n if (isPartOfTypeNode(node)) {\n return;\n }\n forEachChild(node, collect);\n }\n return collect;\n}\nfunction collectCallSitesOfSourceFile(node, collect) {\n forEach(node.statements, collect);\n}\nfunction collectCallSitesOfModuleDeclaration(node, collect) {\n if (!hasSyntacticModifier(node, 128 /* Ambient */) && node.body && isModuleBlock(node.body)) {\n forEach(node.body.statements, collect);\n }\n}\nfunction collectCallSitesOfFunctionLikeDeclaration(typeChecker, node, collect) {\n const implementation = findImplementation(typeChecker, node);\n if (implementation) {\n forEach(implementation.parameters, collect);\n collect(implementation.body);\n }\n}\nfunction collectCallSitesOfClassStaticBlockDeclaration(node, collect) {\n collect(node.body);\n}\nfunction collectCallSitesOfClassLikeDeclaration(node, collect) {\n forEach(node.modifiers, collect);\n const heritage = getClassExtendsHeritageElement(node);\n if (heritage) {\n collect(heritage.expression);\n }\n for (const member of node.members) {\n if (canHaveModifiers(member)) {\n forEach(member.modifiers, collect);\n }\n if (isPropertyDeclaration(member)) {\n collect(member.initializer);\n } else if (isConstructorDeclaration(member) && member.body) {\n forEach(member.parameters, collect);\n collect(member.body);\n } else if (isClassStaticBlockDeclaration(member)) {\n collect(member);\n }\n }\n}\nfunction collectCallSites(program, node) {\n const callSites = [];\n const collect = createCallSiteCollector(program, callSites);\n switch (node.kind) {\n case 308 /* SourceFile */:\n collectCallSitesOfSourceFile(node, collect);\n break;\n case 268 /* ModuleDeclaration */:\n collectCallSitesOfModuleDeclaration(node, collect);\n break;\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n collectCallSitesOfFunctionLikeDeclaration(program.getTypeChecker(), node, collect);\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n collectCallSitesOfClassLikeDeclaration(node, collect);\n break;\n case 176 /* ClassStaticBlockDeclaration */:\n collectCallSitesOfClassStaticBlockDeclaration(node, collect);\n break;\n default:\n Debug.assertNever(node);\n }\n return callSites;\n}\nfunction createCallHierarchyOutgoingCall(to, fromSpans) {\n return { to, fromSpans };\n}\nfunction convertCallSiteGroupToOutgoingCall(program, entries) {\n return createCallHierarchyOutgoingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, (entry) => createTextSpanFromRange(entry.range)));\n}\nfunction getOutgoingCalls(program, declaration) {\n if (declaration.flags & 33554432 /* Ambient */ || isMethodSignature(declaration)) {\n return [];\n }\n return group(collectCallSites(program, declaration), getCallSiteGroupKey, (entries) => convertCallSiteGroupToOutgoingCall(program, entries));\n}\n\n// src/services/_namespaces/ts.classifier.ts\nvar ts_classifier_exports = {};\n__export(ts_classifier_exports, {\n v2020: () => ts_classifier_v2020_exports\n});\n\n// src/services/_namespaces/ts.classifier.v2020.ts\nvar ts_classifier_v2020_exports = {};\n__export(ts_classifier_v2020_exports, {\n TokenEncodingConsts: () => TokenEncodingConsts,\n TokenModifier: () => TokenModifier,\n TokenType: () => TokenType,\n getEncodedSemanticClassifications: () => getEncodedSemanticClassifications2,\n getSemanticClassifications: () => getSemanticClassifications2\n});\n\n// src/services/_namespaces/ts.codefix.ts\nvar ts_codefix_exports = {};\n__export(ts_codefix_exports, {\n PreserveOptionalFlags: () => PreserveOptionalFlags,\n addNewNodeForMemberSymbol: () => addNewNodeForMemberSymbol,\n codeFixAll: () => codeFixAll,\n createCodeFixAction: () => createCodeFixAction,\n createCodeFixActionMaybeFixAll: () => createCodeFixActionMaybeFixAll,\n createCodeFixActionWithoutFixAll: () => createCodeFixActionWithoutFixAll,\n createCombinedCodeActions: () => createCombinedCodeActions,\n createFileTextChanges: () => createFileTextChanges,\n createImportAdder: () => createImportAdder,\n createImportSpecifierResolver: () => createImportSpecifierResolver,\n createMissingMemberNodes: () => createMissingMemberNodes,\n createSignatureDeclarationFromCallExpression: () => createSignatureDeclarationFromCallExpression,\n createSignatureDeclarationFromSignature: () => createSignatureDeclarationFromSignature,\n createStubbedBody: () => createStubbedBody,\n eachDiagnostic: () => eachDiagnostic,\n findAncestorMatchingSpan: () => findAncestorMatchingSpan,\n generateAccessorFromProperty: () => generateAccessorFromProperty,\n getAccessorConvertiblePropertyAtPosition: () => getAccessorConvertiblePropertyAtPosition,\n getAllFixes: () => getAllFixes,\n getFixes: () => getFixes,\n getImportCompletionAction: () => getImportCompletionAction,\n getImportKind: () => getImportKind,\n getJSDocTypedefNodes: () => getJSDocTypedefNodes,\n getNoopSymbolTrackerWithResolver: () => getNoopSymbolTrackerWithResolver,\n getPromoteTypeOnlyCompletionAction: () => getPromoteTypeOnlyCompletionAction,\n getSupportedErrorCodes: () => getSupportedErrorCodes,\n importFixName: () => importFixName,\n importSymbols: () => importSymbols,\n parameterShouldGetTypeFromJSDoc: () => parameterShouldGetTypeFromJSDoc,\n registerCodeFix: () => registerCodeFix,\n setJsonCompilerOptionValue: () => setJsonCompilerOptionValue,\n setJsonCompilerOptionValues: () => setJsonCompilerOptionValues,\n tryGetAutoImportableReferenceFromTypeNode: () => tryGetAutoImportableReferenceFromTypeNode,\n typeNodeToAutoImportableTypeNode: () => typeNodeToAutoImportableTypeNode,\n typePredicateToAutoImportableTypeNode: () => typePredicateToAutoImportableTypeNode,\n typeToAutoImportableTypeNode: () => typeToAutoImportableTypeNode,\n typeToMinimizedReferenceType: () => typeToMinimizedReferenceType\n});\n\n// src/services/codeFixProvider.ts\nvar errorCodeToFixes = createMultiMap();\nvar fixIdToRegistration = /* @__PURE__ */ new Map();\nfunction createCodeFixActionWithoutFixAll(fixName8, changes, description3) {\n return createCodeFixActionWorker(\n fixName8,\n diagnosticToString(description3),\n changes,\n /*fixId*/\n void 0,\n /*fixAllDescription*/\n void 0\n );\n}\nfunction createCodeFixAction(fixName8, changes, description3, fixId56, fixAllDescription, command) {\n return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId56, diagnosticToString(fixAllDescription), command);\n}\nfunction createCodeFixActionMaybeFixAll(fixName8, changes, description3, fixId56, fixAllDescription, command) {\n return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId56, fixAllDescription && diagnosticToString(fixAllDescription), command);\n}\nfunction createCodeFixActionWorker(fixName8, description3, changes, fixId56, fixAllDescription, command) {\n return { fixName: fixName8, description: description3, changes, fixId: fixId56, fixAllDescription, commands: command ? [command] : void 0 };\n}\nfunction registerCodeFix(reg) {\n for (const error2 of reg.errorCodes) {\n errorCodeToFixesArray = void 0;\n errorCodeToFixes.add(String(error2), reg);\n }\n if (reg.fixIds) {\n for (const fixId56 of reg.fixIds) {\n Debug.assert(!fixIdToRegistration.has(fixId56));\n fixIdToRegistration.set(fixId56, reg);\n }\n }\n}\nvar errorCodeToFixesArray;\nfunction getSupportedErrorCodes() {\n return errorCodeToFixesArray ?? (errorCodeToFixesArray = arrayFrom(errorCodeToFixes.keys()));\n}\nfunction removeFixIdIfFixAllUnavailable(registration, diagnostics) {\n const { errorCodes: errorCodes68 } = registration;\n let maybeFixableDiagnostics = 0;\n for (const diag2 of diagnostics) {\n if (contains(errorCodes68, diag2.code)) maybeFixableDiagnostics++;\n if (maybeFixableDiagnostics > 1) break;\n }\n const fixAllUnavailable = maybeFixableDiagnostics < 2;\n return ({ fixId: fixId56, fixAllDescription, ...action }) => {\n return fixAllUnavailable ? action : { ...action, fixId: fixId56, fixAllDescription };\n };\n}\nfunction getFixes(context) {\n const diagnostics = getDiagnostics(context);\n const registrations = errorCodeToFixes.get(String(context.errorCode));\n return flatMap(registrations, (f) => map(f.getCodeActions(context), removeFixIdIfFixAllUnavailable(f, diagnostics)));\n}\nfunction getAllFixes(context) {\n return fixIdToRegistration.get(cast(context.fixId, isString)).getAllCodeActions(context);\n}\nfunction createCombinedCodeActions(changes, commands) {\n return { changes, commands };\n}\nfunction createFileTextChanges(fileName, textChanges2) {\n return { fileName, textChanges: textChanges2 };\n}\nfunction codeFixAll(context, errorCodes68, use) {\n const commands = [];\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => eachDiagnostic(context, errorCodes68, (diag2) => use(t, diag2, commands)));\n return createCombinedCodeActions(changes, commands.length === 0 ? void 0 : commands);\n}\nfunction eachDiagnostic(context, errorCodes68, cb) {\n for (const diag2 of getDiagnostics(context)) {\n if (contains(errorCodes68, diag2.code)) {\n cb(diag2);\n }\n }\n}\nfunction getDiagnostics({ program, sourceFile, cancellationToken }) {\n const diagnostics = [\n ...program.getSemanticDiagnostics(sourceFile, cancellationToken),\n ...program.getSyntacticDiagnostics(sourceFile, cancellationToken),\n ...computeSuggestionDiagnostics(sourceFile, program, cancellationToken)\n ];\n if (getEmitDeclarations(program.getCompilerOptions())) {\n diagnostics.push(\n ...program.getDeclarationDiagnostics(sourceFile, cancellationToken)\n );\n }\n return diagnostics;\n}\n\n// src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts\nvar fixId = \"addConvertToUnknownForNonOverlappingTypes\";\nvar errorCodes = [Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];\nregisterCodeFix({\n errorCodes,\n getCodeActions: function getCodeActionsToAddConvertToUnknownForNonOverlappingTypes(context) {\n const assertion = getAssertion(context.sourceFile, context.span.start);\n if (assertion === void 0) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange(t, context.sourceFile, assertion));\n return [createCodeFixAction(fixId, changes, Diagnostics.Add_unknown_conversion_for_non_overlapping_types, fixId, Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)];\n },\n fixIds: [fixId],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes, (changes, diag2) => {\n const assertion = getAssertion(diag2.file, diag2.start);\n if (assertion) {\n makeChange(changes, diag2.file, assertion);\n }\n })\n});\nfunction makeChange(changeTracker, sourceFile, assertion) {\n const replacement = isAsExpression(assertion) ? factory.createAsExpression(assertion.expression, factory.createKeywordTypeNode(159 /* UnknownKeyword */)) : factory.createTypeAssertion(factory.createKeywordTypeNode(159 /* UnknownKeyword */), assertion.expression);\n changeTracker.replaceNode(sourceFile, assertion.expression, replacement);\n}\nfunction getAssertion(sourceFile, pos) {\n if (isInJSFile(sourceFile)) return void 0;\n return findAncestor(getTokenAtPosition(sourceFile, pos), (n) => isAsExpression(n) || isTypeAssertionExpression(n));\n}\n\n// src/services/codefixes/addEmptyExportDeclaration.ts\nregisterCodeFix({\n errorCodes: [\n Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,\n Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,\n Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code\n ],\n getCodeActions: function getCodeActionsToAddEmptyExportDeclaration(context) {\n const { sourceFile } = context;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n const exportDeclaration = factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports([]),\n /*moduleSpecifier*/\n void 0\n );\n changes2.insertNodeAtEndOfScope(sourceFile, sourceFile, exportDeclaration);\n });\n return [createCodeFixActionWithoutFixAll(\"addEmptyExportDeclaration\", changes, Diagnostics.Add_export_to_make_this_file_into_a_module)];\n }\n});\n\n// src/services/codefixes/addMissingAsync.ts\nvar fixId2 = \"addMissingAsync\";\nvar errorCodes2 = [\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n Diagnostics.Type_0_is_not_comparable_to_type_1.code\n];\nregisterCodeFix({\n fixIds: [fixId2],\n errorCodes: errorCodes2,\n getCodeActions: function getCodeActionsToAddMissingAsync(context) {\n const { sourceFile, errorCode, cancellationToken, program, span } = context;\n const diagnostic = find(program.getTypeChecker().getDiagnostics(sourceFile, cancellationToken), getIsMatchingAsyncError(span, errorCode));\n const directSpan = diagnostic && diagnostic.relatedInformation && find(diagnostic.relatedInformation, (r) => r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n const decl = getFixableErrorSpanDeclaration(sourceFile, directSpan);\n if (!decl) {\n return;\n }\n const trackChanges = (cb) => ts_textChanges_exports.ChangeTracker.with(context, cb);\n return [getFix(context, decl, trackChanges)];\n },\n getAllCodeActions: (context) => {\n const { sourceFile } = context;\n const fixedDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes2, (t, diagnostic) => {\n const span = diagnostic.relatedInformation && find(diagnostic.relatedInformation, (r) => r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n const decl = getFixableErrorSpanDeclaration(sourceFile, span);\n if (!decl) {\n return;\n }\n const trackChanges = (cb) => (cb(t), []);\n return getFix(context, decl, trackChanges, fixedDeclarations);\n });\n }\n});\nfunction getFix(context, decl, trackChanges, fixedDeclarations) {\n const changes = trackChanges((t) => makeChange2(t, context.sourceFile, decl, fixedDeclarations));\n return createCodeFixAction(fixId2, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId2, Diagnostics.Add_all_missing_async_modifiers);\n}\nfunction makeChange2(changeTracker, sourceFile, insertionSite, fixedDeclarations) {\n if (fixedDeclarations) {\n if (fixedDeclarations.has(getNodeId(insertionSite))) {\n return;\n }\n }\n fixedDeclarations == null ? void 0 : fixedDeclarations.add(getNodeId(insertionSite));\n const cloneWithModifier = factory.replaceModifiers(\n getSynthesizedDeepClone(\n insertionSite,\n /*includeTrivia*/\n true\n ),\n factory.createNodeArray(factory.createModifiersFromModifierFlags(getSyntacticModifierFlags(insertionSite) | 1024 /* Async */))\n );\n changeTracker.replaceNode(\n sourceFile,\n insertionSite,\n cloneWithModifier\n );\n}\nfunction getFixableErrorSpanDeclaration(sourceFile, span) {\n if (!span) return void 0;\n const token = getTokenAtPosition(sourceFile, span.start);\n const decl = findAncestor(token, (node) => {\n if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) {\n return \"quit\";\n }\n return (isArrowFunction(node) || isMethodDeclaration(node) || isFunctionExpression(node) || isFunctionDeclaration(node)) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile));\n });\n return decl;\n}\nfunction getIsMatchingAsyncError(span, errorCode) {\n return ({ start, length: length2, relatedInformation, code }) => isNumber(start) && isNumber(length2) && textSpansEqual({ start, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, (related) => related.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n}\n\n// src/services/codefixes/addMissingAwait.ts\nvar fixId3 = \"addMissingAwait\";\nvar propertyAccessCode = Diagnostics.Property_0_does_not_exist_on_type_1.code;\nvar callableConstructableErrorCodes = [\n Diagnostics.This_expression_is_not_callable.code,\n Diagnostics.This_expression_is_not_constructable.code\n];\nvar errorCodes3 = [\n Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,\n Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,\n Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap.code,\n Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,\n Diagnostics.Type_0_is_not_an_array_type.code,\n Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,\n Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,\n Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n propertyAccessCode,\n ...callableConstructableErrorCodes\n];\nregisterCodeFix({\n fixIds: [fixId3],\n errorCodes: errorCodes3,\n getCodeActions: function getCodeActionsToAddMissingAwait(context) {\n const { sourceFile, errorCode, span, cancellationToken, program } = context;\n const expression = getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program);\n if (!expression) {\n return;\n }\n const checker = context.program.getTypeChecker();\n const trackChanges = (cb) => ts_textChanges_exports.ChangeTracker.with(context, cb);\n return compact([\n getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges),\n getUseSiteFix(context, expression, errorCode, checker, trackChanges)\n ]);\n },\n getAllCodeActions: (context) => {\n const { sourceFile, program, cancellationToken } = context;\n const checker = context.program.getTypeChecker();\n const fixedDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes3, (t, diagnostic) => {\n const expression = getAwaitErrorSpanExpression(sourceFile, diagnostic.code, diagnostic, cancellationToken, program);\n if (!expression) {\n return;\n }\n const trackChanges = (cb) => (cb(t), []);\n return getDeclarationSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations) || getUseSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations);\n });\n }\n});\nfunction getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program) {\n const expression = getFixableErrorSpanExpression(sourceFile, span);\n return expression && isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) && isInsideAwaitableBody(expression) ? expression : void 0;\n}\nfunction getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) {\n const { sourceFile, program, cancellationToken } = context;\n const awaitableInitializers = findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker);\n if (awaitableInitializers) {\n const initializerChanges = trackChanges((t) => {\n forEach(awaitableInitializers.initializers, ({ expression: expression2 }) => makeChange3(t, errorCode, sourceFile, checker, expression2, fixedDeclarations));\n if (fixedDeclarations && awaitableInitializers.needsSecondPassForFixAll) {\n makeChange3(t, errorCode, sourceFile, checker, expression, fixedDeclarations);\n }\n });\n return createCodeFixActionWithoutFixAll(\n \"addMissingAwaitToInitializer\",\n initializerChanges,\n awaitableInitializers.initializers.length === 1 ? [Diagnostics.Add_await_to_initializer_for_0, awaitableInitializers.initializers[0].declarationSymbol.name] : Diagnostics.Add_await_to_initializers\n );\n }\n}\nfunction getUseSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) {\n const changes = trackChanges((t) => makeChange3(t, errorCode, context.sourceFile, checker, expression, fixedDeclarations));\n return createCodeFixAction(fixId3, changes, Diagnostics.Add_await, fixId3, Diagnostics.Fix_all_expressions_possibly_missing_await);\n}\nfunction isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) {\n const checker = program.getTypeChecker();\n const diagnostics = checker.getDiagnostics(sourceFile, cancellationToken);\n return some(diagnostics, ({ start, length: length2, relatedInformation, code }) => isNumber(start) && isNumber(length2) && textSpansEqual({ start, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, (related) => related.code === Diagnostics.Did_you_forget_to_use_await.code));\n}\nfunction findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker) {\n const identifiers = getIdentifiersFromErrorSpanExpression(expression, checker);\n if (!identifiers) {\n return;\n }\n let isCompleteFix = identifiers.isCompleteFix;\n let initializers;\n for (const identifier of identifiers.identifiers) {\n const symbol = checker.getSymbolAtLocation(identifier);\n if (!symbol) {\n continue;\n }\n const declaration = tryCast(symbol.valueDeclaration, isVariableDeclaration);\n const variableName = declaration && tryCast(declaration.name, isIdentifier);\n const variableStatement = getAncestor(declaration, 244 /* VariableStatement */);\n if (!declaration || !variableStatement || declaration.type || !declaration.initializer || variableStatement.getSourceFile() !== sourceFile || hasSyntacticModifier(variableStatement, 32 /* Export */) || !variableName || !isInsideAwaitableBody(declaration.initializer)) {\n isCompleteFix = false;\n continue;\n }\n const diagnostics = program.getSemanticDiagnostics(sourceFile, cancellationToken);\n const isUsedElsewhere = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(variableName, checker, sourceFile, (reference) => {\n return identifier !== reference && !symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker);\n });\n if (isUsedElsewhere) {\n isCompleteFix = false;\n continue;\n }\n (initializers || (initializers = [])).push({\n expression: declaration.initializer,\n declarationSymbol: symbol\n });\n }\n return initializers && {\n initializers,\n needsSecondPassForFixAll: !isCompleteFix\n };\n}\nfunction getIdentifiersFromErrorSpanExpression(expression, checker) {\n if (isPropertyAccessExpression(expression.parent) && isIdentifier(expression.parent.expression)) {\n return { identifiers: [expression.parent.expression], isCompleteFix: true };\n }\n if (isIdentifier(expression)) {\n return { identifiers: [expression], isCompleteFix: true };\n }\n if (isBinaryExpression(expression)) {\n let sides;\n let isCompleteFix = true;\n for (const side of [expression.left, expression.right]) {\n const type = checker.getTypeAtLocation(side);\n if (checker.getPromisedTypeOfPromise(type)) {\n if (!isIdentifier(side)) {\n isCompleteFix = false;\n continue;\n }\n (sides || (sides = [])).push(side);\n }\n }\n return sides && { identifiers: sides, isCompleteFix };\n }\n}\nfunction symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker) {\n const errorNode = isPropertyAccessExpression(reference.parent) ? reference.parent.name : isBinaryExpression(reference.parent) ? reference.parent : reference;\n const diagnostic = find(diagnostics, (diagnostic2) => diagnostic2.start === errorNode.getStart(sourceFile) && diagnostic2.start + diagnostic2.length === errorNode.getEnd());\n return diagnostic && contains(errorCodes3, diagnostic.code) || // A Promise is usually not correct in a binary expression (it's not valid\n // in an arithmetic expression and an equality comparison seems unusual),\n // but if the other side of the binary expression has an error, the side\n // is typed `any` which will squash the error that would identify this\n // Promise as an invalid operand. So if the whole binary expression is\n // typed `any` as a result, there is a strong likelihood that this Promise\n // is accidentally missing `await`.\n checker.getTypeAtLocation(errorNode).flags & 1 /* Any */;\n}\nfunction isInsideAwaitableBody(node) {\n return node.flags & 65536 /* AwaitContext */ || !!findAncestor(node, (ancestor) => ancestor.parent && isArrowFunction(ancestor.parent) && ancestor.parent.body === ancestor || isBlock(ancestor) && (ancestor.parent.kind === 263 /* FunctionDeclaration */ || ancestor.parent.kind === 219 /* FunctionExpression */ || ancestor.parent.kind === 220 /* ArrowFunction */ || ancestor.parent.kind === 175 /* MethodDeclaration */));\n}\nfunction makeChange3(changeTracker, errorCode, sourceFile, checker, insertionSite, fixedDeclarations) {\n if (isForOfStatement(insertionSite.parent) && !insertionSite.parent.awaitModifier) {\n const exprType = checker.getTypeAtLocation(insertionSite);\n const asyncIter = checker.getAnyAsyncIterableType();\n if (asyncIter && checker.isTypeAssignableTo(exprType, asyncIter)) {\n const forOf = insertionSite.parent;\n changeTracker.replaceNode(sourceFile, forOf, factory.updateForOfStatement(forOf, factory.createToken(135 /* AwaitKeyword */), forOf.initializer, forOf.expression, forOf.statement));\n return;\n }\n }\n if (isBinaryExpression(insertionSite)) {\n for (const side of [insertionSite.left, insertionSite.right]) {\n if (fixedDeclarations && isIdentifier(side)) {\n const symbol = checker.getSymbolAtLocation(side);\n if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n continue;\n }\n }\n const type = checker.getTypeAtLocation(side);\n const newNode = checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(side) : side;\n changeTracker.replaceNode(sourceFile, side, newNode);\n }\n } else if (errorCode === propertyAccessCode && isPropertyAccessExpression(insertionSite.parent)) {\n if (fixedDeclarations && isIdentifier(insertionSite.parent.expression)) {\n const symbol = checker.getSymbolAtLocation(insertionSite.parent.expression);\n if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n return;\n }\n }\n changeTracker.replaceNode(\n sourceFile,\n insertionSite.parent.expression,\n factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite.parent.expression))\n );\n insertLeadingSemicolonIfNeeded(changeTracker, insertionSite.parent.expression, sourceFile);\n } else if (contains(callableConstructableErrorCodes, errorCode) && isCallOrNewExpression(insertionSite.parent)) {\n if (fixedDeclarations && isIdentifier(insertionSite)) {\n const symbol = checker.getSymbolAtLocation(insertionSite);\n if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n return;\n }\n }\n changeTracker.replaceNode(sourceFile, insertionSite, factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite)));\n insertLeadingSemicolonIfNeeded(changeTracker, insertionSite, sourceFile);\n } else {\n if (fixedDeclarations && isVariableDeclaration(insertionSite.parent) && isIdentifier(insertionSite.parent.name)) {\n const symbol = checker.getSymbolAtLocation(insertionSite.parent.name);\n if (symbol && !tryAddToSet(fixedDeclarations, getSymbolId(symbol))) {\n return;\n }\n }\n changeTracker.replaceNode(sourceFile, insertionSite, factory.createAwaitExpression(insertionSite));\n }\n}\nfunction insertLeadingSemicolonIfNeeded(changeTracker, beforeNode, sourceFile) {\n const precedingToken = findPrecedingToken(beforeNode.pos, sourceFile);\n if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {\n changeTracker.insertText(sourceFile, beforeNode.getStart(sourceFile), \";\");\n }\n}\n\n// src/services/codefixes/addMissingConst.ts\nvar fixId4 = \"addMissingConst\";\nvar errorCodes4 = [\n Diagnostics.Cannot_find_name_0.code,\n Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code\n];\nregisterCodeFix({\n errorCodes: errorCodes4,\n getCodeActions: function getCodeActionsToAddMissingConst(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange4(t, context.sourceFile, context.span.start, context.program));\n if (changes.length > 0) {\n return [createCodeFixAction(fixId4, changes, Diagnostics.Add_const_to_unresolved_variable, fixId4, Diagnostics.Add_const_to_all_unresolved_variables)];\n }\n },\n fixIds: [fixId4],\n getAllCodeActions: (context) => {\n const fixedNodes = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes4, (changes, diag2) => makeChange4(changes, diag2.file, diag2.start, context.program, fixedNodes));\n }\n});\nfunction makeChange4(changeTracker, sourceFile, pos, program, fixedNodes) {\n const token = getTokenAtPosition(sourceFile, pos);\n const forInitializer = findAncestor(token, (node) => isForInOrOfStatement(node.parent) ? node.parent.initializer === node : isPossiblyPartOfDestructuring(node) ? false : \"quit\");\n if (forInitializer) return applyChange(changeTracker, forInitializer, sourceFile, fixedNodes);\n const parent2 = token.parent;\n if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && isExpressionStatement(parent2.parent)) {\n return applyChange(changeTracker, token, sourceFile, fixedNodes);\n }\n if (isArrayLiteralExpression(parent2)) {\n const checker = program.getTypeChecker();\n if (!every(parent2.elements, (element) => arrayElementCouldBeVariableDeclaration(element, checker))) {\n return;\n }\n return applyChange(changeTracker, parent2, sourceFile, fixedNodes);\n }\n const commaExpression = findAncestor(token, (node) => isExpressionStatement(node.parent) ? true : isPossiblyPartOfCommaSeperatedInitializer(node) ? false : \"quit\");\n if (commaExpression) {\n const checker = program.getTypeChecker();\n if (!expressionCouldBeVariableDeclaration(commaExpression, checker)) {\n return;\n }\n return applyChange(changeTracker, commaExpression, sourceFile, fixedNodes);\n }\n}\nfunction applyChange(changeTracker, initializer, sourceFile, fixedNodes) {\n if (!fixedNodes || tryAddToSet(fixedNodes, initializer)) {\n changeTracker.insertModifierBefore(sourceFile, 87 /* ConstKeyword */, initializer);\n }\n}\nfunction isPossiblyPartOfDestructuring(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 210 /* ArrayLiteralExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n return true;\n default:\n return false;\n }\n}\nfunction arrayElementCouldBeVariableDeclaration(expression, checker) {\n const identifier = isIdentifier(expression) ? expression : isAssignmentExpression(\n expression,\n /*excludeCompoundAssignment*/\n true\n ) && isIdentifier(expression.left) ? expression.left : void 0;\n return !!identifier && !checker.getSymbolAtLocation(identifier);\n}\nfunction isPossiblyPartOfCommaSeperatedInitializer(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 227 /* BinaryExpression */:\n case 28 /* CommaToken */:\n return true;\n default:\n return false;\n }\n}\nfunction expressionCouldBeVariableDeclaration(expression, checker) {\n if (!isBinaryExpression(expression)) {\n return false;\n }\n if (expression.operatorToken.kind === 28 /* CommaToken */) {\n return every([expression.left, expression.right], (expression2) => expressionCouldBeVariableDeclaration(expression2, checker));\n }\n return expression.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(expression.left) && !checker.getSymbolAtLocation(expression.left);\n}\n\n// src/services/codefixes/addMissingDeclareProperty.ts\nvar fixId5 = \"addMissingDeclareProperty\";\nvar errorCodes5 = [\n Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code\n];\nregisterCodeFix({\n errorCodes: errorCodes5,\n getCodeActions: function getCodeActionsToAddMissingDeclareOnProperty(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange5(t, context.sourceFile, context.span.start));\n if (changes.length > 0) {\n return [createCodeFixAction(fixId5, changes, Diagnostics.Prefix_with_declare, fixId5, Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)];\n }\n },\n fixIds: [fixId5],\n getAllCodeActions: (context) => {\n const fixedNodes = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes5, (changes, diag2) => makeChange5(changes, diag2.file, diag2.start, fixedNodes));\n }\n});\nfunction makeChange5(changeTracker, sourceFile, pos, fixedNodes) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (!isIdentifier(token)) {\n return;\n }\n const declaration = token.parent;\n if (declaration.kind === 173 /* PropertyDeclaration */ && (!fixedNodes || tryAddToSet(fixedNodes, declaration))) {\n changeTracker.insertModifierBefore(sourceFile, 138 /* DeclareKeyword */, declaration);\n }\n}\n\n// src/services/codefixes/addMissingInvocationForDecorator.ts\nvar fixId6 = \"addMissingInvocationForDecorator\";\nvar errorCodes6 = [Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];\nregisterCodeFix({\n errorCodes: errorCodes6,\n getCodeActions: function getCodeActionsToAddMissingInvocationForDecorator(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange6(t, context.sourceFile, context.span.start));\n return [createCodeFixAction(fixId6, changes, Diagnostics.Call_decorator_expression, fixId6, Diagnostics.Add_to_all_uncalled_decorators)];\n },\n fixIds: [fixId6],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes6, (changes, diag2) => makeChange6(changes, diag2.file, diag2.start))\n});\nfunction makeChange6(changeTracker, sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const decorator = findAncestor(token, isDecorator);\n Debug.assert(!!decorator, \"Expected position to be owned by a decorator.\");\n const replacement = factory.createCallExpression(\n decorator.expression,\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n void 0\n );\n changeTracker.replaceNode(sourceFile, decorator.expression, replacement);\n}\n\n// src/services/codefixes/addMissingResolutionModeImportAttribute.ts\nvar fixId7 = \"addMissingResolutionModeImportAttribute\";\nvar errorCodes7 = [\n Diagnostics.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code,\n Diagnostics.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code\n];\nregisterCodeFix({\n errorCodes: errorCodes7,\n getCodeActions: function getCodeActionsToAddMissingResolutionModeImportAttribute(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange7(t, context.sourceFile, context.span.start, context.program, context.host, context.preferences));\n return [createCodeFixAction(fixId7, changes, Diagnostics.Add_resolution_mode_import_attribute, fixId7, Diagnostics.Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it)];\n },\n fixIds: [fixId7],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes7, (changes, diag2) => makeChange7(changes, diag2.file, diag2.start, context.program, context.host, context.preferences))\n});\nfunction makeChange7(changeTracker, sourceFile, pos, program, host, preferences) {\n var _a, _b, _c;\n const token = getTokenAtPosition(sourceFile, pos);\n const importNode = findAncestor(token, or(isImportDeclaration, isImportTypeNode));\n Debug.assert(!!importNode, \"Expected position to be owned by an ImportDeclaration or ImportType.\");\n const useSingleQuotes = getQuotePreference(sourceFile, preferences) === 0 /* Single */;\n const moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importNode);\n const canUseImportMode = !moduleSpecifier || ((_a = resolveModuleName(\n moduleSpecifier.text,\n sourceFile.fileName,\n program.getCompilerOptions(),\n host,\n program.getModuleResolutionCache(),\n /*redirectedReference*/\n void 0,\n 99 /* ESNext */\n ).resolvedModule) == null ? void 0 : _a.resolvedFileName) === ((_c = (_b = program.getResolvedModuleFromModuleSpecifier(\n moduleSpecifier,\n sourceFile\n )) == null ? void 0 : _b.resolvedModule) == null ? void 0 : _c.resolvedFileName);\n const attributes = importNode.attributes ? factory.updateImportAttributes(\n importNode.attributes,\n factory.createNodeArray([\n ...importNode.attributes.elements,\n factory.createImportAttribute(\n factory.createStringLiteral(\"resolution-mode\", useSingleQuotes),\n factory.createStringLiteral(canUseImportMode ? \"import\" : \"require\", useSingleQuotes)\n )\n ], importNode.attributes.elements.hasTrailingComma),\n importNode.attributes.multiLine\n ) : factory.createImportAttributes(\n factory.createNodeArray([\n factory.createImportAttribute(\n factory.createStringLiteral(\"resolution-mode\", useSingleQuotes),\n factory.createStringLiteral(canUseImportMode ? \"import\" : \"require\", useSingleQuotes)\n )\n ])\n );\n if (importNode.kind === 273 /* ImportDeclaration */) {\n changeTracker.replaceNode(\n sourceFile,\n importNode,\n factory.updateImportDeclaration(\n importNode,\n importNode.modifiers,\n importNode.importClause,\n importNode.moduleSpecifier,\n attributes\n )\n );\n } else {\n changeTracker.replaceNode(\n sourceFile,\n importNode,\n factory.updateImportTypeNode(\n importNode,\n importNode.argument,\n attributes,\n importNode.qualifier,\n importNode.typeArguments\n )\n );\n }\n}\n\n// src/services/codefixes/addNameToNamelessParameter.ts\nvar fixId8 = \"addNameToNamelessParameter\";\nvar errorCodes8 = [Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];\nregisterCodeFix({\n errorCodes: errorCodes8,\n getCodeActions: function getCodeActionsToAddNameToNamelessParameter(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange8(t, context.sourceFile, context.span.start));\n return [createCodeFixAction(fixId8, changes, Diagnostics.Add_parameter_name, fixId8, Diagnostics.Add_names_to_all_parameters_without_names)];\n },\n fixIds: [fixId8],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes8, (changes, diag2) => makeChange8(changes, diag2.file, diag2.start))\n});\nfunction makeChange8(changeTracker, sourceFile, start) {\n const token = getTokenAtPosition(sourceFile, start);\n const param = token.parent;\n if (!isParameter(param)) {\n return Debug.fail(\"Tried to add a parameter name to a non-parameter: \" + Debug.formatSyntaxKind(token.kind));\n }\n const i = param.parent.parameters.indexOf(param);\n Debug.assert(!param.type, \"Tried to add a parameter name to a parameter that already had one.\");\n Debug.assert(i > -1, \"Parameter not found in parent parameter list.\");\n let end = param.name.getEnd();\n let typeNode = factory.createTypeReferenceNode(\n param.name,\n /*typeArguments*/\n void 0\n );\n let nextParam = tryGetNextParam(sourceFile, param);\n while (nextParam) {\n typeNode = factory.createArrayTypeNode(typeNode);\n end = nextParam.getEnd();\n nextParam = tryGetNextParam(sourceFile, nextParam);\n }\n const replacement = factory.createParameterDeclaration(\n param.modifiers,\n param.dotDotDotToken,\n \"arg\" + i,\n param.questionToken,\n param.dotDotDotToken && !isArrayTypeNode(typeNode) ? factory.createArrayTypeNode(typeNode) : typeNode,\n param.initializer\n );\n changeTracker.replaceRange(sourceFile, createRange(param.getStart(sourceFile), end), replacement);\n}\nfunction tryGetNextParam(sourceFile, param) {\n const nextToken = findNextToken(param.name, param.parent, sourceFile);\n if (nextToken && nextToken.kind === 23 /* OpenBracketToken */ && isArrayBindingPattern(nextToken.parent) && isParameter(nextToken.parent.parent)) {\n return nextToken.parent.parent;\n }\n return void 0;\n}\n\n// src/services/codefixes/addOptionalPropertyUndefined.ts\nvar addOptionalPropertyUndefined = \"addOptionalPropertyUndefined\";\nvar errorCodes9 = [\n Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code\n];\nregisterCodeFix({\n errorCodes: errorCodes9,\n getCodeActions(context) {\n const typeChecker = context.program.getTypeChecker();\n const toAdd = getPropertiesToAdd(context.sourceFile, context.span, typeChecker);\n if (!toAdd.length) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addUndefinedToOptionalProperty(t, toAdd));\n return [createCodeFixActionWithoutFixAll(addOptionalPropertyUndefined, changes, Diagnostics.Add_undefined_to_optional_property_type)];\n },\n fixIds: [addOptionalPropertyUndefined]\n});\nfunction getPropertiesToAdd(file, span, checker) {\n var _a, _b;\n const sourceTarget = getSourceTarget(getFixableErrorSpanExpression(file, span), checker);\n if (!sourceTarget) {\n return emptyArray;\n }\n const { source: sourceNode, target: targetNode } = sourceTarget;\n const target = shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) ? checker.getTypeAtLocation(targetNode.expression) : checker.getTypeAtLocation(targetNode);\n if ((_b = (_a = target.symbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b.some((d) => getSourceFileOfNode(d).fileName.match(/\\.d\\.ts$/))) {\n return emptyArray;\n }\n return checker.getExactOptionalProperties(target);\n}\nfunction shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) {\n return isPropertyAccessExpression(targetNode) && !!checker.getExactOptionalProperties(checker.getTypeAtLocation(targetNode.expression)).length && checker.getTypeAtLocation(sourceNode) === checker.getUndefinedType();\n}\nfunction getSourceTarget(errorNode, checker) {\n var _a;\n if (!errorNode) {\n return void 0;\n } else if (isBinaryExpression(errorNode.parent) && errorNode.parent.operatorToken.kind === 64 /* EqualsToken */) {\n return { source: errorNode.parent.right, target: errorNode.parent.left };\n } else if (isVariableDeclaration(errorNode.parent) && errorNode.parent.initializer) {\n return { source: errorNode.parent.initializer, target: errorNode.parent.name };\n } else if (isCallExpression(errorNode.parent)) {\n const n = checker.getSymbolAtLocation(errorNode.parent.expression);\n if (!(n == null ? void 0 : n.valueDeclaration) || !isFunctionLikeKind(n.valueDeclaration.kind)) return void 0;\n if (!isExpression(errorNode)) return void 0;\n const i = errorNode.parent.arguments.indexOf(errorNode);\n if (i === -1) return void 0;\n const name = n.valueDeclaration.parameters[i].name;\n if (isIdentifier(name)) return { source: errorNode, target: name };\n } else if (isPropertyAssignment(errorNode.parent) && isIdentifier(errorNode.parent.name) || isShorthandPropertyAssignment(errorNode.parent)) {\n const parentTarget = getSourceTarget(errorNode.parent.parent, checker);\n if (!parentTarget) return void 0;\n const prop = checker.getPropertyOfType(checker.getTypeAtLocation(parentTarget.target), errorNode.parent.name.text);\n const declaration = (_a = prop == null ? void 0 : prop.declarations) == null ? void 0 : _a[0];\n if (!declaration) return void 0;\n return {\n source: isPropertyAssignment(errorNode.parent) ? errorNode.parent.initializer : errorNode.parent.name,\n target: declaration\n };\n }\n return void 0;\n}\nfunction addUndefinedToOptionalProperty(changes, toAdd) {\n for (const add of toAdd) {\n const d = add.valueDeclaration;\n if (d && (isPropertySignature(d) || isPropertyDeclaration(d)) && d.type) {\n const t = factory.createUnionTypeNode([\n ...d.type.kind === 193 /* UnionType */ ? d.type.types : [d.type],\n factory.createTypeReferenceNode(\"undefined\")\n ]);\n changes.replaceNode(d.getSourceFile(), d.type, t);\n }\n }\n}\n\n// src/services/codefixes/annotateWithTypeFromJSDoc.ts\nvar fixId9 = \"annotateWithTypeFromJSDoc\";\nvar errorCodes10 = [Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];\nregisterCodeFix({\n errorCodes: errorCodes10,\n getCodeActions(context) {\n const decl = getDeclaration(context.sourceFile, context.span.start);\n if (!decl) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange8(t, context.sourceFile, decl));\n return [createCodeFixAction(fixId9, changes, Diagnostics.Annotate_with_type_from_JSDoc, fixId9, Diagnostics.Annotate_everything_with_types_from_JSDoc)];\n },\n fixIds: [fixId9],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes10, (changes, diag2) => {\n const decl = getDeclaration(diag2.file, diag2.start);\n if (decl) doChange8(changes, diag2.file, decl);\n })\n});\nfunction getDeclaration(file, pos) {\n const name = getTokenAtPosition(file, pos);\n return tryCast(isParameter(name.parent) ? name.parent.parent : name.parent, parameterShouldGetTypeFromJSDoc);\n}\nfunction parameterShouldGetTypeFromJSDoc(node) {\n return isDeclarationWithType(node) && hasUsableJSDoc(node);\n}\nfunction hasUsableJSDoc(decl) {\n return isFunctionLikeDeclaration(decl) ? decl.parameters.some(hasUsableJSDoc) || !decl.type && !!getJSDocReturnType(decl) : !decl.type && !!getJSDocType(decl);\n}\nfunction doChange8(changes, sourceFile, decl) {\n if (isFunctionLikeDeclaration(decl) && (getJSDocReturnType(decl) || decl.parameters.some((p) => !!getJSDocType(p)))) {\n if (!decl.typeParameters) {\n const typeParameters = getJSDocTypeParameterDeclarations(decl);\n if (typeParameters.length) changes.insertTypeParameters(sourceFile, decl, typeParameters);\n }\n const needParens = isArrowFunction(decl) && !findChildOfKind(decl, 21 /* OpenParenToken */, sourceFile);\n if (needParens) changes.insertNodeBefore(sourceFile, first(decl.parameters), factory.createToken(21 /* OpenParenToken */));\n for (const param of decl.parameters) {\n if (!param.type) {\n const paramType = getJSDocType(param);\n if (paramType) changes.tryInsertTypeAnnotation(sourceFile, param, visitNode(paramType, transformJSDocType, isTypeNode));\n }\n }\n if (needParens) changes.insertNodeAfter(sourceFile, last(decl.parameters), factory.createToken(22 /* CloseParenToken */));\n if (!decl.type) {\n const returnType = getJSDocReturnType(decl);\n if (returnType) changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(returnType, transformJSDocType, isTypeNode));\n }\n } else {\n const jsdocType = Debug.checkDefined(getJSDocType(decl), \"A JSDocType for this declaration should exist\");\n Debug.assert(!decl.type, \"The JSDocType decl should have a type\");\n changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(jsdocType, transformJSDocType, isTypeNode));\n }\n}\nfunction isDeclarationWithType(node) {\n return isFunctionLikeDeclaration(node) || node.kind === 261 /* VariableDeclaration */ || node.kind === 172 /* PropertySignature */ || node.kind === 173 /* PropertyDeclaration */;\n}\nfunction transformJSDocType(node) {\n switch (node.kind) {\n case 313 /* JSDocAllType */:\n case 314 /* JSDocUnknownType */:\n return factory.createTypeReferenceNode(\"any\", emptyArray);\n case 317 /* JSDocOptionalType */:\n return transformJSDocOptionalType(node);\n case 316 /* JSDocNonNullableType */:\n return transformJSDocType(node.type);\n case 315 /* JSDocNullableType */:\n return transformJSDocNullableType(node);\n case 319 /* JSDocVariadicType */:\n return transformJSDocVariadicType(node);\n case 318 /* JSDocFunctionType */:\n return transformJSDocFunctionType(node);\n case 184 /* TypeReference */:\n return transformJSDocTypeReference(node);\n case 323 /* JSDocTypeLiteral */:\n return transformJSDocTypeLiteral(node);\n default:\n const visited = visitEachChild(\n node,\n transformJSDocType,\n /*context*/\n void 0\n );\n setEmitFlags(visited, 1 /* SingleLine */);\n return visited;\n }\n}\nfunction transformJSDocTypeLiteral(node) {\n const typeNode = factory.createTypeLiteralNode(map(node.jsDocPropertyTags, (tag) => factory.createPropertySignature(\n /*modifiers*/\n void 0,\n isIdentifier(tag.name) ? tag.name : tag.name.right,\n isOptionalJSDocPropertyLikeTag(tag) ? factory.createToken(58 /* QuestionToken */) : void 0,\n tag.typeExpression && visitNode(tag.typeExpression.type, transformJSDocType, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n )));\n setEmitFlags(typeNode, 1 /* SingleLine */);\n return typeNode;\n}\nfunction transformJSDocOptionalType(node) {\n return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode(\"undefined\", emptyArray)]);\n}\nfunction transformJSDocNullableType(node) {\n return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode(\"null\", emptyArray)]);\n}\nfunction transformJSDocVariadicType(node) {\n return factory.createArrayTypeNode(visitNode(node.type, transformJSDocType, isTypeNode));\n}\nfunction transformJSDocFunctionType(node) {\n return factory.createFunctionTypeNode(emptyArray, node.parameters.map(transformJSDocParameter), node.type ?? factory.createKeywordTypeNode(133 /* AnyKeyword */));\n}\nfunction transformJSDocParameter(node) {\n const index = node.parent.parameters.indexOf(node);\n const isRest = node.type.kind === 319 /* JSDocVariadicType */ && index === node.parent.parameters.length - 1;\n const name = node.name || (isRest ? \"rest\" : \"arg\" + index);\n const dotdotdot = isRest ? factory.createToken(26 /* DotDotDotToken */) : node.dotDotDotToken;\n return factory.createParameterDeclaration(node.modifiers, dotdotdot, name, node.questionToken, visitNode(node.type, transformJSDocType, isTypeNode), node.initializer);\n}\nfunction transformJSDocTypeReference(node) {\n let name = node.typeName;\n let args = node.typeArguments;\n if (isIdentifier(node.typeName)) {\n if (isJSDocIndexSignature(node)) {\n return transformJSDocIndexSignature(node);\n }\n let text = node.typeName.text;\n switch (node.typeName.text) {\n case \"String\":\n case \"Boolean\":\n case \"Object\":\n case \"Number\":\n text = text.toLowerCase();\n break;\n case \"array\":\n case \"date\":\n case \"promise\":\n text = text[0].toUpperCase() + text.slice(1);\n break;\n }\n name = factory.createIdentifier(text);\n if ((text === \"Array\" || text === \"Promise\") && !node.typeArguments) {\n args = factory.createNodeArray([factory.createTypeReferenceNode(\"any\", emptyArray)]);\n } else {\n args = visitNodes2(node.typeArguments, transformJSDocType, isTypeNode);\n }\n }\n return factory.createTypeReferenceNode(name, args);\n}\nfunction transformJSDocIndexSignature(node) {\n const index = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n node.typeArguments[0].kind === 150 /* NumberKeyword */ ? \"n\" : \"s\",\n /*questionToken*/\n void 0,\n factory.createTypeReferenceNode(node.typeArguments[0].kind === 150 /* NumberKeyword */ ? \"number\" : \"string\", []),\n /*initializer*/\n void 0\n );\n const indexSignature = factory.createTypeLiteralNode([factory.createIndexSignature(\n /*modifiers*/\n void 0,\n [index],\n node.typeArguments[1]\n )]);\n setEmitFlags(indexSignature, 1 /* SingleLine */);\n return indexSignature;\n}\n\n// src/services/codefixes/convertFunctionToEs6Class.ts\nvar fixId10 = \"convertFunctionToEs6Class\";\nvar errorCodes11 = [Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration.code];\nregisterCodeFix({\n errorCodes: errorCodes11,\n getCodeActions(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange9(t, context.sourceFile, context.span.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()));\n return [createCodeFixAction(fixId10, changes, Diagnostics.Convert_function_to_an_ES2015_class, fixId10, Diagnostics.Convert_all_constructor_functions_to_classes)];\n },\n fixIds: [fixId10],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes11, (changes, err) => doChange9(changes, err.file, err.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()))\n});\nfunction doChange9(changes, sourceFile, position, checker, preferences, compilerOptions) {\n const ctorSymbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, position));\n if (!ctorSymbol || !ctorSymbol.valueDeclaration || !(ctorSymbol.flags & (16 /* Function */ | 3 /* Variable */))) {\n return void 0;\n }\n const ctorDeclaration = ctorSymbol.valueDeclaration;\n if (isFunctionDeclaration(ctorDeclaration) || isFunctionExpression(ctorDeclaration)) {\n changes.replaceNode(sourceFile, ctorDeclaration, createClassFromFunction(ctorDeclaration));\n } else if (isVariableDeclaration(ctorDeclaration)) {\n const classDeclaration = createClassFromVariableDeclaration(ctorDeclaration);\n if (!classDeclaration) {\n return void 0;\n }\n const ancestor = ctorDeclaration.parent.parent;\n if (isVariableDeclarationList(ctorDeclaration.parent) && ctorDeclaration.parent.declarations.length > 1) {\n changes.delete(sourceFile, ctorDeclaration);\n changes.insertNodeAfter(sourceFile, ancestor, classDeclaration);\n } else {\n changes.replaceNode(sourceFile, ancestor, classDeclaration);\n }\n }\n function createClassElementsFromSymbol(symbol) {\n const memberElements = [];\n if (symbol.exports) {\n symbol.exports.forEach((member) => {\n if (member.name === \"prototype\" && member.declarations) {\n const firstDeclaration = member.declarations[0];\n if (member.declarations.length === 1 && isPropertyAccessExpression(firstDeclaration) && isBinaryExpression(firstDeclaration.parent) && firstDeclaration.parent.operatorToken.kind === 64 /* EqualsToken */ && isObjectLiteralExpression(firstDeclaration.parent.right)) {\n const prototypes = firstDeclaration.parent.right;\n createClassElement(\n prototypes.symbol,\n /*modifiers*/\n void 0,\n memberElements\n );\n }\n } else {\n createClassElement(member, [factory.createToken(126 /* StaticKeyword */)], memberElements);\n }\n });\n }\n if (symbol.members) {\n symbol.members.forEach((member, key) => {\n var _a, _b, _c, _d;\n if (key === \"constructor\" && member.valueDeclaration) {\n const prototypeAssignment = (_d = (_c = (_b = (_a = symbol.exports) == null ? void 0 : _a.get(\"prototype\")) == null ? void 0 : _b.declarations) == null ? void 0 : _c[0]) == null ? void 0 : _d.parent;\n if (prototypeAssignment && isBinaryExpression(prototypeAssignment) && isObjectLiteralExpression(prototypeAssignment.right) && some(prototypeAssignment.right.properties, isConstructorAssignment)) {\n } else {\n changes.delete(sourceFile, member.valueDeclaration.parent);\n }\n return;\n }\n createClassElement(\n member,\n /*modifiers*/\n void 0,\n memberElements\n );\n });\n }\n return memberElements;\n function shouldConvertDeclaration(_target, source) {\n if (isAccessExpression(_target)) {\n if (isPropertyAccessExpression(_target) && isConstructorAssignment(_target)) return true;\n return isFunctionLike(source);\n } else {\n return every(_target.properties, (property) => {\n if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) return true;\n if (isPropertyAssignment(property) && isFunctionExpression(property.initializer) && !!property.name) return true;\n if (isConstructorAssignment(property)) return true;\n return false;\n });\n }\n }\n function createClassElement(symbol2, modifiers, members) {\n if (!(symbol2.flags & 8192 /* Method */) && !(symbol2.flags & 4096 /* ObjectLiteral */)) {\n return;\n }\n const memberDeclaration = symbol2.valueDeclaration;\n const assignmentBinaryExpression = memberDeclaration.parent;\n const assignmentExpr = assignmentBinaryExpression.right;\n if (!shouldConvertDeclaration(memberDeclaration, assignmentExpr)) {\n return;\n }\n if (some(members, (m) => {\n const name = getNameOfDeclaration(m);\n if (name && isIdentifier(name) && idText(name) === symbolName(symbol2)) {\n return true;\n }\n return false;\n })) {\n return;\n }\n const nodeToDelete = assignmentBinaryExpression.parent && assignmentBinaryExpression.parent.kind === 245 /* ExpressionStatement */ ? assignmentBinaryExpression.parent : assignmentBinaryExpression;\n changes.delete(sourceFile, nodeToDelete);\n if (!assignmentExpr) {\n members.push(factory.createPropertyDeclaration(\n modifiers,\n symbol2.name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n ));\n return;\n }\n if (isAccessExpression(memberDeclaration) && (isFunctionExpression(assignmentExpr) || isArrowFunction(assignmentExpr))) {\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const name = tryGetPropertyName(memberDeclaration, compilerOptions, quotePreference);\n if (name) {\n createFunctionLikeExpressionMember(members, assignmentExpr, name);\n }\n return;\n } else if (isObjectLiteralExpression(assignmentExpr)) {\n forEach(\n assignmentExpr.properties,\n (property) => {\n if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) {\n members.push(property);\n }\n if (isPropertyAssignment(property) && isFunctionExpression(property.initializer)) {\n createFunctionLikeExpressionMember(members, property.initializer, property.name);\n }\n if (isConstructorAssignment(property)) return;\n return;\n }\n );\n return;\n } else {\n if (isSourceFileJS(sourceFile)) return;\n if (!isPropertyAccessExpression(memberDeclaration)) return;\n const prop = factory.createPropertyDeclaration(\n modifiers,\n memberDeclaration.name,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n assignmentExpr\n );\n copyLeadingComments(assignmentBinaryExpression.parent, prop, sourceFile);\n members.push(prop);\n return;\n }\n function createFunctionLikeExpressionMember(members2, expression, name) {\n if (isFunctionExpression(expression)) return createFunctionExpressionMember(members2, expression, name);\n else return createArrowFunctionExpressionMember(members2, expression, name);\n }\n function createFunctionExpressionMember(members2, functionExpression, name) {\n const fullModifiers = concatenate(modifiers, getModifierKindFromSource(functionExpression, 134 /* AsyncKeyword */));\n const method = factory.createMethodDeclaration(\n fullModifiers,\n /*asteriskToken*/\n void 0,\n name,\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n functionExpression.parameters,\n /*type*/\n void 0,\n functionExpression.body\n );\n copyLeadingComments(assignmentBinaryExpression, method, sourceFile);\n members2.push(method);\n return;\n }\n function createArrowFunctionExpressionMember(members2, arrowFunction, name) {\n const arrowFunctionBody = arrowFunction.body;\n let bodyBlock;\n if (arrowFunctionBody.kind === 242 /* Block */) {\n bodyBlock = arrowFunctionBody;\n } else {\n bodyBlock = factory.createBlock([factory.createReturnStatement(arrowFunctionBody)]);\n }\n const fullModifiers = concatenate(modifiers, getModifierKindFromSource(arrowFunction, 134 /* AsyncKeyword */));\n const method = factory.createMethodDeclaration(\n fullModifiers,\n /*asteriskToken*/\n void 0,\n name,\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n arrowFunction.parameters,\n /*type*/\n void 0,\n bodyBlock\n );\n copyLeadingComments(assignmentBinaryExpression, method, sourceFile);\n members2.push(method);\n }\n }\n }\n function createClassFromVariableDeclaration(node) {\n const initializer = node.initializer;\n if (!initializer || !isFunctionExpression(initializer) || !isIdentifier(node.name)) {\n return void 0;\n }\n const memberElements = createClassElementsFromSymbol(node.symbol);\n if (initializer.body) {\n memberElements.unshift(factory.createConstructorDeclaration(\n /*modifiers*/\n void 0,\n initializer.parameters,\n initializer.body\n ));\n }\n const modifiers = getModifierKindFromSource(node.parent.parent, 95 /* ExportKeyword */);\n const cls = factory.createClassDeclaration(\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n /*heritageClauses*/\n void 0,\n memberElements\n );\n return cls;\n }\n function createClassFromFunction(node) {\n const memberElements = createClassElementsFromSymbol(ctorSymbol);\n if (node.body) {\n memberElements.unshift(factory.createConstructorDeclaration(\n /*modifiers*/\n void 0,\n node.parameters,\n node.body\n ));\n }\n const modifiers = getModifierKindFromSource(node, 95 /* ExportKeyword */);\n const cls = factory.createClassDeclaration(\n modifiers,\n node.name,\n /*typeParameters*/\n void 0,\n /*heritageClauses*/\n void 0,\n memberElements\n );\n return cls;\n }\n}\nfunction getModifierKindFromSource(source, kind) {\n return canHaveModifiers(source) ? filter(source.modifiers, (modifier) => modifier.kind === kind) : void 0;\n}\nfunction isConstructorAssignment(x) {\n if (!x.name) return false;\n if (isIdentifier(x.name) && x.name.text === \"constructor\") return true;\n return false;\n}\nfunction tryGetPropertyName(node, compilerOptions, quotePreference) {\n if (isPropertyAccessExpression(node)) {\n return node.name;\n }\n const propName = node.argumentExpression;\n if (isNumericLiteral(propName)) {\n return propName;\n }\n if (isStringLiteralLike(propName)) {\n return isIdentifierText(propName.text, getEmitScriptTarget(compilerOptions)) ? factory.createIdentifier(propName.text) : isNoSubstitutionTemplateLiteral(propName) ? factory.createStringLiteral(propName.text, quotePreference === 0 /* Single */) : propName;\n }\n return void 0;\n}\n\n// src/services/codefixes/convertToAsyncFunction.ts\nvar fixId11 = \"convertToAsyncFunction\";\nvar errorCodes12 = [Diagnostics.This_may_be_converted_to_an_async_function.code];\nvar codeActionSucceeded = true;\nregisterCodeFix({\n errorCodes: errorCodes12,\n getCodeActions(context) {\n codeActionSucceeded = true;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => convertToAsyncFunction(t, context.sourceFile, context.span.start, context.program.getTypeChecker()));\n return codeActionSucceeded ? [createCodeFixAction(fixId11, changes, Diagnostics.Convert_to_async_function, fixId11, Diagnostics.Convert_all_to_async_functions)] : [];\n },\n fixIds: [fixId11],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes12, (changes, err) => convertToAsyncFunction(changes, err.file, err.start, context.program.getTypeChecker()))\n});\nfunction convertToAsyncFunction(changes, sourceFile, position, checker) {\n const tokenAtPosition = getTokenAtPosition(sourceFile, position);\n let functionToConvert;\n if (isIdentifier(tokenAtPosition) && isVariableDeclaration(tokenAtPosition.parent) && tokenAtPosition.parent.initializer && isFunctionLikeDeclaration(tokenAtPosition.parent.initializer)) {\n functionToConvert = tokenAtPosition.parent.initializer;\n } else {\n functionToConvert = tryCast(getContainingFunction(getTokenAtPosition(sourceFile, position)), canBeConvertedToAsync);\n }\n if (!functionToConvert) {\n return;\n }\n const synthNamesMap = /* @__PURE__ */ new Map();\n const isInJavascript = isInJSFile(functionToConvert);\n const setOfExpressionsToReturn = getAllPromiseExpressionsToReturn(functionToConvert, checker);\n const functionToConvertRenamed = renameCollidingVarNames(functionToConvert, checker, synthNamesMap);\n if (!returnsPromise(functionToConvertRenamed, checker)) {\n return;\n }\n const returnStatements = functionToConvertRenamed.body && isBlock(functionToConvertRenamed.body) ? getReturnStatementsWithPromiseHandlers(functionToConvertRenamed.body, checker) : emptyArray;\n const transformer = { checker, synthNamesMap, setOfExpressionsToReturn, isInJSFile: isInJavascript };\n if (!returnStatements.length) {\n return;\n }\n const pos = skipTrivia(sourceFile.text, moveRangePastModifiers(functionToConvert).pos);\n changes.insertModifierAt(sourceFile, pos, 134 /* AsyncKeyword */, { suffix: \" \" });\n for (const returnStatement of returnStatements) {\n forEachChild(returnStatement, function visit(node) {\n if (isCallExpression(node)) {\n const newNodes = transformExpression(\n node,\n node,\n transformer,\n /*hasContinuation*/\n false\n );\n if (hasFailed()) {\n return true;\n }\n changes.replaceNodeWithNodes(sourceFile, returnStatement, newNodes);\n } else if (!isFunctionLike(node)) {\n forEachChild(node, visit);\n if (hasFailed()) {\n return true;\n }\n }\n });\n if (hasFailed()) {\n return;\n }\n }\n}\nfunction getReturnStatementsWithPromiseHandlers(body, checker) {\n const res = [];\n forEachReturnStatement(body, (ret) => {\n if (isReturnStatementWithFixablePromiseHandler(ret, checker)) res.push(ret);\n });\n return res;\n}\nfunction getAllPromiseExpressionsToReturn(func, checker) {\n if (!func.body) {\n return /* @__PURE__ */ new Set();\n }\n const setOfExpressionsToReturn = /* @__PURE__ */ new Set();\n forEachChild(func.body, function visit(node) {\n if (isPromiseReturningCallExpression(node, checker, \"then\")) {\n setOfExpressionsToReturn.add(getNodeId(node));\n forEach(node.arguments, visit);\n } else if (isPromiseReturningCallExpression(node, checker, \"catch\") || isPromiseReturningCallExpression(node, checker, \"finally\")) {\n setOfExpressionsToReturn.add(getNodeId(node));\n forEachChild(node, visit);\n } else if (isPromiseTypedExpression(node, checker)) {\n setOfExpressionsToReturn.add(getNodeId(node));\n } else {\n forEachChild(node, visit);\n }\n });\n return setOfExpressionsToReturn;\n}\nfunction isPromiseReturningCallExpression(node, checker, name) {\n if (!isCallExpression(node)) return false;\n const isExpressionOfName = hasPropertyAccessExpressionWithName(node, name);\n const nodeType = isExpressionOfName && checker.getTypeAtLocation(node);\n return !!(nodeType && checker.getPromisedTypeOfPromise(nodeType));\n}\nfunction isReferenceToType(type, target) {\n return (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target;\n}\nfunction getExplicitPromisedTypeOfPromiseReturningCallExpression(node, callback, checker) {\n if (node.expression.name.escapedText === \"finally\") {\n return void 0;\n }\n const promiseType = checker.getTypeAtLocation(node.expression.expression);\n if (isReferenceToType(promiseType, checker.getPromiseType()) || isReferenceToType(promiseType, checker.getPromiseLikeType())) {\n if (node.expression.name.escapedText === \"then\") {\n if (callback === elementAt(node.arguments, 0)) {\n return elementAt(node.typeArguments, 0);\n } else if (callback === elementAt(node.arguments, 1)) {\n return elementAt(node.typeArguments, 1);\n }\n } else {\n return elementAt(node.typeArguments, 0);\n }\n }\n}\nfunction isPromiseTypedExpression(node, checker) {\n if (!isExpression(node)) return false;\n return !!checker.getPromisedTypeOfPromise(checker.getTypeAtLocation(node));\n}\nfunction renameCollidingVarNames(nodeToRename, checker, synthNamesMap) {\n const identsToRenameMap = /* @__PURE__ */ new Map();\n const collidingSymbolMap = createMultiMap();\n forEachChild(nodeToRename, function visit(node) {\n if (!isIdentifier(node)) {\n forEachChild(node, visit);\n return;\n }\n const symbol = checker.getSymbolAtLocation(node);\n if (symbol) {\n const type = checker.getTypeAtLocation(node);\n const lastCallSignature = getLastCallSignature(type, checker);\n const symbolIdString = getSymbolId(symbol).toString();\n if (lastCallSignature && !isParameter(node.parent) && !isFunctionLikeDeclaration(node.parent) && !synthNamesMap.has(symbolIdString)) {\n const firstParameter = firstOrUndefined(lastCallSignature.parameters);\n const ident = (firstParameter == null ? void 0 : firstParameter.valueDeclaration) && isParameter(firstParameter.valueDeclaration) && tryCast(firstParameter.valueDeclaration.name, isIdentifier) || factory.createUniqueName(\"result\", 16 /* Optimistic */);\n const synthName = getNewNameIfConflict(ident, collidingSymbolMap);\n synthNamesMap.set(symbolIdString, synthName);\n collidingSymbolMap.add(ident.text, symbol);\n } else if (node.parent && (isParameter(node.parent) || isVariableDeclaration(node.parent) || isBindingElement(node.parent))) {\n const originalName = node.text;\n const collidingSymbols = collidingSymbolMap.get(originalName);\n if (collidingSymbols && collidingSymbols.some((prevSymbol) => prevSymbol !== symbol)) {\n const newName = getNewNameIfConflict(node, collidingSymbolMap);\n identsToRenameMap.set(symbolIdString, newName.identifier);\n synthNamesMap.set(symbolIdString, newName);\n collidingSymbolMap.add(originalName, symbol);\n } else {\n const identifier = getSynthesizedDeepClone(node);\n synthNamesMap.set(symbolIdString, createSynthIdentifier(identifier));\n collidingSymbolMap.add(originalName, symbol);\n }\n }\n }\n });\n return getSynthesizedDeepCloneWithReplacements(\n nodeToRename,\n /*includeTrivia*/\n true,\n (original) => {\n if (isBindingElement(original) && isIdentifier(original.name) && isObjectBindingPattern(original.parent)) {\n const symbol = checker.getSymbolAtLocation(original.name);\n const renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol)));\n if (renameInfo && renameInfo.text !== (original.name || original.propertyName).getText()) {\n return factory.createBindingElement(\n original.dotDotDotToken,\n original.propertyName || original.name,\n renameInfo,\n original.initializer\n );\n }\n } else if (isIdentifier(original)) {\n const symbol = checker.getSymbolAtLocation(original);\n const renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol)));\n if (renameInfo) {\n return factory.createIdentifier(renameInfo.text);\n }\n }\n }\n );\n}\nfunction getNewNameIfConflict(name, originalNames) {\n const numVarsSameName = (originalNames.get(name.text) || emptyArray).length;\n const identifier = numVarsSameName === 0 ? name : factory.createIdentifier(name.text + \"_\" + numVarsSameName);\n return createSynthIdentifier(identifier);\n}\nfunction hasFailed() {\n return !codeActionSucceeded;\n}\nfunction silentFail() {\n codeActionSucceeded = false;\n return emptyArray;\n}\nfunction transformExpression(returnContextNode, node, transformer, hasContinuation, continuationArgName) {\n if (isPromiseReturningCallExpression(node, transformer.checker, \"then\")) {\n return transformThen(node, elementAt(node.arguments, 0), elementAt(node.arguments, 1), transformer, hasContinuation, continuationArgName);\n }\n if (isPromiseReturningCallExpression(node, transformer.checker, \"catch\")) {\n return transformCatch(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName);\n }\n if (isPromiseReturningCallExpression(node, transformer.checker, \"finally\")) {\n return transformFinally(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName);\n }\n if (isPropertyAccessExpression(node)) {\n return transformExpression(returnContextNode, node.expression, transformer, hasContinuation, continuationArgName);\n }\n const nodeType = transformer.checker.getTypeAtLocation(node);\n if (nodeType && transformer.checker.getPromisedTypeOfPromise(nodeType)) {\n Debug.assertNode(getOriginalNode(node).parent, isPropertyAccessExpression);\n return transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName);\n }\n return silentFail();\n}\nfunction isNullOrUndefined2({ checker }, node) {\n if (node.kind === 106 /* NullKeyword */) return true;\n if (isIdentifier(node) && !isGeneratedIdentifier(node) && idText(node) === \"undefined\") {\n const symbol = checker.getSymbolAtLocation(node);\n return !symbol || checker.isUndefinedSymbol(symbol);\n }\n return false;\n}\nfunction createUniqueSynthName(prevArgName) {\n const renamedPrevArg = factory.createUniqueName(prevArgName.identifier.text, 16 /* Optimistic */);\n return createSynthIdentifier(renamedPrevArg);\n}\nfunction getPossibleNameForVarDecl(node, transformer, continuationArgName) {\n let possibleNameForVarDecl;\n if (continuationArgName && !shouldReturn(node, transformer)) {\n if (isSynthIdentifier(continuationArgName)) {\n possibleNameForVarDecl = continuationArgName;\n transformer.synthNamesMap.forEach((val, key) => {\n if (val.identifier.text === continuationArgName.identifier.text) {\n const newSynthName = createUniqueSynthName(continuationArgName);\n transformer.synthNamesMap.set(key, newSynthName);\n }\n });\n } else {\n possibleNameForVarDecl = createSynthIdentifier(factory.createUniqueName(\"result\", 16 /* Optimistic */), continuationArgName.types);\n }\n declareSynthIdentifier(possibleNameForVarDecl);\n }\n return possibleNameForVarDecl;\n}\nfunction finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName) {\n const statements = [];\n let varDeclIdentifier;\n if (possibleNameForVarDecl && !shouldReturn(node, transformer)) {\n varDeclIdentifier = getSynthesizedDeepClone(declareSynthIdentifier(possibleNameForVarDecl));\n const typeArray = possibleNameForVarDecl.types;\n const unionType = transformer.checker.getUnionType(typeArray, 2 /* Subtype */);\n const unionTypeNode = transformer.isInJSFile ? void 0 : transformer.checker.typeToTypeNode(\n unionType,\n /*enclosingDeclaration*/\n void 0,\n /*flags*/\n void 0\n );\n const varDecl = [factory.createVariableDeclaration(\n varDeclIdentifier,\n /*exclamationToken*/\n void 0,\n unionTypeNode\n )];\n const varDeclList = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(varDecl, 1 /* Let */)\n );\n statements.push(varDeclList);\n }\n statements.push(tryStatement);\n if (continuationArgName && varDeclIdentifier && isSynthBindingPattern(continuationArgName)) {\n statements.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n getSynthesizedDeepClone(declareSynthBindingPattern(continuationArgName)),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n varDeclIdentifier\n )\n ], 2 /* Const */)\n ));\n }\n return statements;\n}\nfunction transformFinally(node, onFinally, transformer, hasContinuation, continuationArgName) {\n if (!onFinally || isNullOrUndefined2(transformer, onFinally)) {\n return transformExpression(\n /* returnContextNode */\n node,\n node.expression.expression,\n transformer,\n hasContinuation,\n continuationArgName\n );\n }\n const possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName);\n const inlinedLeftHandSide = transformExpression(\n /*returnContextNode*/\n node,\n node.expression.expression,\n transformer,\n /*hasContinuation*/\n true,\n possibleNameForVarDecl\n );\n if (hasFailed()) return silentFail();\n const inlinedCallback = transformCallbackArgument(\n onFinally,\n hasContinuation,\n /*continuationArgName*/\n void 0,\n /*inputArgName*/\n void 0,\n node,\n transformer\n );\n if (hasFailed()) return silentFail();\n const tryBlock = factory.createBlock(inlinedLeftHandSide);\n const finallyBlock = factory.createBlock(inlinedCallback);\n const tryStatement = factory.createTryStatement(\n tryBlock,\n /*catchClause*/\n void 0,\n finallyBlock\n );\n return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName);\n}\nfunction transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName) {\n if (!onRejected || isNullOrUndefined2(transformer, onRejected)) {\n return transformExpression(\n /* returnContextNode */\n node,\n node.expression.expression,\n transformer,\n hasContinuation,\n continuationArgName\n );\n }\n const inputArgName = getArgBindingName(onRejected, transformer);\n const possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName);\n const inlinedLeftHandSide = transformExpression(\n /*returnContextNode*/\n node,\n node.expression.expression,\n transformer,\n /*hasContinuation*/\n true,\n possibleNameForVarDecl\n );\n if (hasFailed()) return silentFail();\n const inlinedCallback = transformCallbackArgument(onRejected, hasContinuation, possibleNameForVarDecl, inputArgName, node, transformer);\n if (hasFailed()) return silentFail();\n const tryBlock = factory.createBlock(inlinedLeftHandSide);\n const catchClause = factory.createCatchClause(inputArgName && getSynthesizedDeepClone(declareSynthBindingName(inputArgName)), factory.createBlock(inlinedCallback));\n const tryStatement = factory.createTryStatement(\n tryBlock,\n catchClause,\n /*finallyBlock*/\n void 0\n );\n return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName);\n}\nfunction transformThen(node, onFulfilled, onRejected, transformer, hasContinuation, continuationArgName) {\n if (!onFulfilled || isNullOrUndefined2(transformer, onFulfilled)) {\n return transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName);\n }\n if (onRejected && !isNullOrUndefined2(transformer, onRejected)) {\n return silentFail();\n }\n const inputArgName = getArgBindingName(onFulfilled, transformer);\n const inlinedLeftHandSide = transformExpression(\n node.expression.expression,\n node.expression.expression,\n transformer,\n /*hasContinuation*/\n true,\n inputArgName\n );\n if (hasFailed()) return silentFail();\n const inlinedCallback = transformCallbackArgument(onFulfilled, hasContinuation, continuationArgName, inputArgName, node, transformer);\n if (hasFailed()) return silentFail();\n return concatenate(inlinedLeftHandSide, inlinedCallback);\n}\nfunction transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName) {\n if (shouldReturn(returnContextNode, transformer)) {\n let returnValue = getSynthesizedDeepClone(node);\n if (hasContinuation) {\n returnValue = factory.createAwaitExpression(returnValue);\n }\n return [factory.createReturnStatement(returnValue)];\n }\n return createVariableOrAssignmentOrExpressionStatement(\n continuationArgName,\n factory.createAwaitExpression(node),\n /*typeAnnotation*/\n void 0\n );\n}\nfunction createVariableOrAssignmentOrExpressionStatement(variableName, rightHandSide, typeAnnotation) {\n if (!variableName || isEmptyBindingName(variableName)) {\n return [factory.createExpressionStatement(rightHandSide)];\n }\n if (isSynthIdentifier(variableName) && variableName.hasBeenDeclared) {\n return [factory.createExpressionStatement(factory.createAssignment(getSynthesizedDeepClone(referenceSynthIdentifier(variableName)), rightHandSide))];\n }\n return [\n factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n getSynthesizedDeepClone(declareSynthBindingName(variableName)),\n /*exclamationToken*/\n void 0,\n typeAnnotation,\n rightHandSide\n )\n ], 2 /* Const */)\n )\n ];\n}\nfunction maybeAnnotateAndReturn(expressionToReturn, typeAnnotation) {\n if (typeAnnotation && expressionToReturn) {\n const name = factory.createUniqueName(\"result\", 16 /* Optimistic */);\n return [\n ...createVariableOrAssignmentOrExpressionStatement(createSynthIdentifier(name), expressionToReturn, typeAnnotation),\n factory.createReturnStatement(name)\n ];\n }\n return [factory.createReturnStatement(expressionToReturn)];\n}\nfunction transformCallbackArgument(func, hasContinuation, continuationArgName, inputArgName, parent2, transformer) {\n var _a;\n switch (func.kind) {\n case 106 /* NullKeyword */:\n break;\n case 212 /* PropertyAccessExpression */:\n case 80 /* Identifier */:\n if (!inputArgName) {\n break;\n }\n const synthCall = factory.createCallExpression(\n getSynthesizedDeepClone(func),\n /*typeArguments*/\n void 0,\n isSynthIdentifier(inputArgName) ? [referenceSynthIdentifier(inputArgName)] : []\n );\n if (shouldReturn(parent2, transformer)) {\n return maybeAnnotateAndReturn(synthCall, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n }\n const type = transformer.checker.getTypeAtLocation(func);\n const callSignatures = transformer.checker.getSignaturesOfType(type, 0 /* Call */);\n if (!callSignatures.length) {\n return silentFail();\n }\n const returnType = callSignatures[0].getReturnType();\n const varDeclOrAssignment = createVariableOrAssignmentOrExpressionStatement(continuationArgName, factory.createAwaitExpression(synthCall), getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n if (continuationArgName) {\n continuationArgName.types.push(transformer.checker.getAwaitedType(returnType) || returnType);\n }\n return varDeclOrAssignment;\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */: {\n const funcBody = func.body;\n const returnType2 = (_a = getLastCallSignature(transformer.checker.getTypeAtLocation(func), transformer.checker)) == null ? void 0 : _a.getReturnType();\n if (isBlock(funcBody)) {\n let refactoredStmts = [];\n let seenReturnStatement = false;\n for (const statement of funcBody.statements) {\n if (isReturnStatement(statement)) {\n seenReturnStatement = true;\n if (isReturnStatementWithFixablePromiseHandler(statement, transformer.checker)) {\n refactoredStmts = refactoredStmts.concat(transformReturnStatementWithFixablePromiseHandler(transformer, statement, hasContinuation, continuationArgName));\n } else {\n const possiblyAwaitedRightHandSide = returnType2 && statement.expression ? getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, statement.expression) : statement.expression;\n refactoredStmts.push(...maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker)));\n }\n } else if (hasContinuation && forEachReturnStatement(statement, returnTrue)) {\n return silentFail();\n } else {\n refactoredStmts.push(statement);\n }\n }\n return shouldReturn(parent2, transformer) ? refactoredStmts.map((s) => getSynthesizedDeepClone(s)) : removeReturns(\n refactoredStmts,\n continuationArgName,\n transformer,\n seenReturnStatement\n );\n } else {\n const inlinedStatements = isFixablePromiseHandler(funcBody, transformer.checker) ? transformReturnStatementWithFixablePromiseHandler(transformer, factory.createReturnStatement(funcBody), hasContinuation, continuationArgName) : emptyArray;\n if (inlinedStatements.length > 0) {\n return inlinedStatements;\n }\n if (returnType2) {\n const possiblyAwaitedRightHandSide = getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, funcBody);\n if (!shouldReturn(parent2, transformer)) {\n const transformedStatement = createVariableOrAssignmentOrExpressionStatement(\n continuationArgName,\n possiblyAwaitedRightHandSide,\n /*typeAnnotation*/\n void 0\n );\n if (continuationArgName) {\n continuationArgName.types.push(transformer.checker.getAwaitedType(returnType2) || returnType2);\n }\n return transformedStatement;\n } else {\n return maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n }\n } else {\n return silentFail();\n }\n }\n }\n default:\n return silentFail();\n }\n return emptyArray;\n}\nfunction getPossiblyAwaitedRightHandSide(checker, type, expr) {\n const rightHandSide = getSynthesizedDeepClone(expr);\n return !!checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(rightHandSide) : rightHandSide;\n}\nfunction getLastCallSignature(type, checker) {\n const callSignatures = checker.getSignaturesOfType(type, 0 /* Call */);\n return lastOrUndefined(callSignatures);\n}\nfunction removeReturns(stmts, prevArgName, transformer, seenReturnStatement) {\n const ret = [];\n for (const stmt of stmts) {\n if (isReturnStatement(stmt)) {\n if (stmt.expression) {\n const possiblyAwaitedExpression = isPromiseTypedExpression(stmt.expression, transformer.checker) ? factory.createAwaitExpression(stmt.expression) : stmt.expression;\n if (prevArgName === void 0) {\n ret.push(factory.createExpressionStatement(possiblyAwaitedExpression));\n } else if (isSynthIdentifier(prevArgName) && prevArgName.hasBeenDeclared) {\n ret.push(factory.createExpressionStatement(factory.createAssignment(referenceSynthIdentifier(prevArgName), possiblyAwaitedExpression)));\n } else {\n ret.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([factory.createVariableDeclaration(\n declareSynthBindingName(prevArgName),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n possiblyAwaitedExpression\n )], 2 /* Const */)\n ));\n }\n }\n } else {\n ret.push(getSynthesizedDeepClone(stmt));\n }\n }\n if (!seenReturnStatement && prevArgName !== void 0) {\n ret.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([factory.createVariableDeclaration(\n declareSynthBindingName(prevArgName),\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory.createIdentifier(\"undefined\")\n )], 2 /* Const */)\n ));\n }\n return ret;\n}\nfunction transformReturnStatementWithFixablePromiseHandler(transformer, innerRetStmt, hasContinuation, continuationArgName) {\n let innerCbBody = [];\n forEachChild(innerRetStmt, function visit(node) {\n if (isCallExpression(node)) {\n const temp = transformExpression(node, node, transformer, hasContinuation, continuationArgName);\n innerCbBody = innerCbBody.concat(temp);\n if (innerCbBody.length > 0) {\n return;\n }\n } else if (!isFunctionLike(node)) {\n forEachChild(node, visit);\n }\n });\n return innerCbBody;\n}\nfunction getArgBindingName(funcNode, transformer) {\n const types = [];\n let name;\n if (isFunctionLikeDeclaration(funcNode)) {\n if (funcNode.parameters.length > 0) {\n const param = funcNode.parameters[0].name;\n name = getMappedBindingNameOrDefault(param);\n }\n } else if (isIdentifier(funcNode)) {\n name = getMapEntryOrDefault(funcNode);\n } else if (isPropertyAccessExpression(funcNode) && isIdentifier(funcNode.name)) {\n name = getMapEntryOrDefault(funcNode.name);\n }\n if (!name || \"identifier\" in name && name.identifier.text === \"undefined\") {\n return void 0;\n }\n return name;\n function getMappedBindingNameOrDefault(bindingName) {\n if (isIdentifier(bindingName)) return getMapEntryOrDefault(bindingName);\n const elements = flatMap(bindingName.elements, (element) => {\n if (isOmittedExpression(element)) return [];\n return [getMappedBindingNameOrDefault(element.name)];\n });\n return createSynthBindingPattern(bindingName, elements);\n }\n function getMapEntryOrDefault(identifier) {\n const originalNode = getOriginalNode2(identifier);\n const symbol = getSymbol2(originalNode);\n if (!symbol) {\n return createSynthIdentifier(identifier, types);\n }\n const mapEntry = transformer.synthNamesMap.get(getSymbolId(symbol).toString());\n return mapEntry || createSynthIdentifier(identifier, types);\n }\n function getSymbol2(node) {\n var _a;\n return ((_a = tryCast(node, canHaveSymbol)) == null ? void 0 : _a.symbol) ?? transformer.checker.getSymbolAtLocation(node);\n }\n function getOriginalNode2(node) {\n return node.original ? node.original : node;\n }\n}\nfunction isEmptyBindingName(bindingName) {\n if (!bindingName) {\n return true;\n }\n if (isSynthIdentifier(bindingName)) {\n return !bindingName.identifier.text;\n }\n return every(bindingName.elements, isEmptyBindingName);\n}\nfunction createSynthIdentifier(identifier, types = []) {\n return { kind: 0 /* Identifier */, identifier, types, hasBeenDeclared: false, hasBeenReferenced: false };\n}\nfunction createSynthBindingPattern(bindingPattern, elements = emptyArray, types = []) {\n return { kind: 1 /* BindingPattern */, bindingPattern, elements, types };\n}\nfunction referenceSynthIdentifier(synthId) {\n synthId.hasBeenReferenced = true;\n return synthId.identifier;\n}\nfunction declareSynthBindingName(synthName) {\n return isSynthIdentifier(synthName) ? declareSynthIdentifier(synthName) : declareSynthBindingPattern(synthName);\n}\nfunction declareSynthBindingPattern(synthPattern) {\n for (const element of synthPattern.elements) {\n declareSynthBindingName(element);\n }\n return synthPattern.bindingPattern;\n}\nfunction declareSynthIdentifier(synthId) {\n synthId.hasBeenDeclared = true;\n return synthId.identifier;\n}\nfunction isSynthIdentifier(bindingName) {\n return bindingName.kind === 0 /* Identifier */;\n}\nfunction isSynthBindingPattern(bindingName) {\n return bindingName.kind === 1 /* BindingPattern */;\n}\nfunction shouldReturn(expression, transformer) {\n return !!expression.original && transformer.setOfExpressionsToReturn.has(getNodeId(expression.original));\n}\n\n// src/services/codefixes/convertToEsModule.ts\nregisterCodeFix({\n errorCodes: [Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module.code],\n getCodeActions(context) {\n const { sourceFile, program, preferences } = context;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n const moduleExportsChangedToDefault = convertFileToEsModule(sourceFile, program.getTypeChecker(), changes2, getEmitScriptTarget(program.getCompilerOptions()), getQuotePreference(sourceFile, preferences));\n if (moduleExportsChangedToDefault) {\n for (const importingFile of program.getSourceFiles()) {\n fixImportOfModuleExports(importingFile, sourceFile, program, changes2, getQuotePreference(importingFile, preferences));\n }\n }\n });\n return [createCodeFixActionWithoutFixAll(\"convertToEsModule\", changes, Diagnostics.Convert_to_ES_module)];\n }\n});\nfunction fixImportOfModuleExports(importingFile, exportingFile, program, changes, quotePreference) {\n var _a;\n for (const moduleSpecifier of importingFile.imports) {\n const imported = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, importingFile)) == null ? void 0 : _a.resolvedModule;\n if (!imported || imported.resolvedFileName !== exportingFile.fileName) {\n continue;\n }\n const importNode = importFromModuleSpecifier(moduleSpecifier);\n switch (importNode.kind) {\n case 272 /* ImportEqualsDeclaration */:\n changes.replaceNode(importingFile, importNode, makeImport(\n importNode.name,\n /*namedImports*/\n void 0,\n moduleSpecifier,\n quotePreference\n ));\n break;\n case 214 /* CallExpression */:\n if (isRequireCall(\n importNode,\n /*requireStringLiteralLikeArgument*/\n false\n )) {\n changes.replaceNode(importingFile, importNode, factory.createPropertyAccessExpression(getSynthesizedDeepClone(importNode), \"default\"));\n }\n break;\n }\n }\n}\nfunction convertFileToEsModule(sourceFile, checker, changes, target, quotePreference) {\n const identifiers = { original: collectFreeIdentifiers(sourceFile), additional: /* @__PURE__ */ new Set() };\n const exports2 = collectExportRenames(sourceFile, checker, identifiers);\n convertExportsAccesses(sourceFile, exports2, changes);\n let moduleExportsChangedToDefault = false;\n let useSitesToUnqualify;\n for (const statement of filter(sourceFile.statements, isVariableStatement)) {\n const newUseSites = convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference);\n if (newUseSites) {\n copyEntries(newUseSites, useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map()));\n }\n }\n for (const statement of filter(sourceFile.statements, (s) => !isVariableStatement(s))) {\n const moduleExportsChanged = convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports2, useSitesToUnqualify, quotePreference);\n moduleExportsChangedToDefault = moduleExportsChangedToDefault || moduleExportsChanged;\n }\n useSitesToUnqualify == null ? void 0 : useSitesToUnqualify.forEach((replacement, original) => {\n changes.replaceNode(sourceFile, original, replacement);\n });\n return moduleExportsChangedToDefault;\n}\nfunction collectExportRenames(sourceFile, checker, identifiers) {\n const res = /* @__PURE__ */ new Map();\n forEachExportReference(sourceFile, (node) => {\n const { text } = node.name;\n if (!res.has(text) && (isIdentifierANonContextualKeyword(node.name) || checker.resolveName(\n text,\n node,\n 111551 /* Value */,\n /*excludeGlobals*/\n true\n ))) {\n res.set(text, makeUniqueName(`_${text}`, identifiers));\n }\n });\n return res;\n}\nfunction convertExportsAccesses(sourceFile, exports2, changes) {\n forEachExportReference(sourceFile, (node, isAssignmentLhs) => {\n if (isAssignmentLhs) {\n return;\n }\n const { text } = node.name;\n changes.replaceNode(sourceFile, node, factory.createIdentifier(exports2.get(text) || text));\n });\n}\nfunction forEachExportReference(sourceFile, cb) {\n sourceFile.forEachChild(function recur(node) {\n if (isPropertyAccessExpression(node) && isExportsOrModuleExportsOrAlias(sourceFile, node.expression) && isIdentifier(node.name)) {\n const { parent: parent2 } = node;\n cb(node, isBinaryExpression(parent2) && parent2.left === node && parent2.operatorToken.kind === 64 /* EqualsToken */);\n }\n node.forEachChild(recur);\n });\n}\nfunction convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports2, useSitesToUnqualify, quotePreference) {\n switch (statement.kind) {\n case 244 /* VariableStatement */:\n convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference);\n return false;\n case 245 /* ExpressionStatement */: {\n const { expression } = statement;\n switch (expression.kind) {\n case 214 /* CallExpression */: {\n if (isRequireCall(\n expression,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n changes.replaceNode(sourceFile, statement, makeImport(\n /*defaultImport*/\n void 0,\n /*namedImports*/\n void 0,\n expression.arguments[0],\n quotePreference\n ));\n }\n return false;\n }\n case 227 /* BinaryExpression */: {\n const { operatorToken } = expression;\n return operatorToken.kind === 64 /* EqualsToken */ && convertAssignment(sourceFile, checker, expression, changes, exports2, useSitesToUnqualify);\n }\n }\n }\n // falls through\n default:\n return false;\n }\n}\nfunction convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference) {\n const { declarationList } = statement;\n let foundImport = false;\n const converted = map(declarationList.declarations, (decl) => {\n const { name, initializer } = decl;\n if (initializer) {\n if (isExportsOrModuleExportsOrAlias(sourceFile, initializer)) {\n foundImport = true;\n return convertedImports([]);\n } else if (isRequireCall(\n initializer,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n foundImport = true;\n return convertSingleImport(name, initializer.arguments[0], checker, identifiers, target, quotePreference);\n } else if (isPropertyAccessExpression(initializer) && isRequireCall(\n initializer.expression,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n foundImport = true;\n return convertPropertyAccessImport(name, initializer.name.text, initializer.expression.arguments[0], identifiers, quotePreference);\n }\n }\n return convertedImports([factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([decl], declarationList.flags)\n )]);\n });\n if (foundImport) {\n changes.replaceNodeWithNodes(sourceFile, statement, flatMap(converted, (c) => c.newImports));\n let combinedUseSites;\n forEach(converted, (c) => {\n if (c.useSitesToUnqualify) {\n copyEntries(c.useSitesToUnqualify, combinedUseSites ?? (combinedUseSites = /* @__PURE__ */ new Map()));\n }\n });\n return combinedUseSites;\n }\n}\nfunction convertPropertyAccessImport(name, propertyName, moduleSpecifier, identifiers, quotePreference) {\n switch (name.kind) {\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */: {\n const tmp = makeUniqueName(propertyName, identifiers);\n return convertedImports([\n makeSingleImport(tmp, propertyName, moduleSpecifier, quotePreference),\n makeConst(\n /*modifiers*/\n void 0,\n name,\n factory.createIdentifier(tmp)\n )\n ]);\n }\n case 80 /* Identifier */:\n return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]);\n default:\n return Debug.assertNever(name, `Convert to ES module got invalid syntax form ${name.kind}`);\n }\n}\nfunction convertAssignment(sourceFile, checker, assignment, changes, exports2, useSitesToUnqualify) {\n const { left, right } = assignment;\n if (!isPropertyAccessExpression(left)) {\n return false;\n }\n if (isExportsOrModuleExportsOrAlias(sourceFile, left)) {\n if (isExportsOrModuleExportsOrAlias(sourceFile, right)) {\n changes.delete(sourceFile, assignment.parent);\n } else {\n const replacement = isObjectLiteralExpression(right) ? tryChangeModuleExportsObject(right, useSitesToUnqualify) : isRequireCall(\n right,\n /*requireStringLiteralLikeArgument*/\n true\n ) ? convertReExportAll(right.arguments[0], checker) : void 0;\n if (replacement) {\n changes.replaceNodeWithNodes(sourceFile, assignment.parent, replacement[0]);\n return replacement[1];\n } else {\n changes.replaceRangeWithText(sourceFile, createRange(left.getStart(sourceFile), right.pos), \"export default\");\n return true;\n }\n }\n } else if (isExportsOrModuleExportsOrAlias(sourceFile, left.expression)) {\n convertNamedExport(sourceFile, assignment, changes, exports2);\n }\n return false;\n}\nfunction tryChangeModuleExportsObject(object, useSitesToUnqualify) {\n const statements = mapAllOrFail(object.properties, (prop) => {\n switch (prop.kind) {\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n // TODO: Maybe we should handle this? See fourslash test `refactorConvertToEs6Module_export_object_shorthand.ts`.\n // falls through\n case 305 /* ShorthandPropertyAssignment */:\n case 306 /* SpreadAssignment */:\n return void 0;\n case 304 /* PropertyAssignment */:\n return !isIdentifier(prop.name) ? void 0 : convertExportsDotXEquals_replaceNode(prop.name.text, prop.initializer, useSitesToUnqualify);\n case 175 /* MethodDeclaration */:\n return !isIdentifier(prop.name) ? void 0 : functionExpressionToDeclaration(prop.name.text, [factory.createToken(95 /* ExportKeyword */)], prop, useSitesToUnqualify);\n default:\n Debug.assertNever(prop, `Convert to ES6 got invalid prop kind ${prop.kind}`);\n }\n });\n return statements && [statements, false];\n}\nfunction convertNamedExport(sourceFile, assignment, changes, exports2) {\n const { text } = assignment.left.name;\n const rename = exports2.get(text);\n if (rename !== void 0) {\n const newNodes = [\n makeConst(\n /*modifiers*/\n void 0,\n rename,\n assignment.right\n ),\n makeExportDeclaration([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n rename,\n text\n )])\n ];\n changes.replaceNodeWithNodes(sourceFile, assignment.parent, newNodes);\n } else {\n convertExportsPropertyAssignment(assignment, sourceFile, changes);\n }\n}\nfunction convertReExportAll(reExported, checker) {\n const moduleSpecifier = reExported.text;\n const moduleSymbol = checker.getSymbolAtLocation(reExported);\n const exports2 = moduleSymbol ? moduleSymbol.exports : emptyMap;\n return exports2.has(\"export=\" /* ExportEquals */) ? [[reExportDefault(moduleSpecifier)], true] : !exports2.has(\"default\" /* Default */) ? [[reExportStar(moduleSpecifier)], false] : (\n // If there's some non-default export, must include both `export *` and `export default`.\n exports2.size > 1 ? [[reExportStar(moduleSpecifier), reExportDefault(moduleSpecifier)], true] : [[reExportDefault(moduleSpecifier)], true]\n );\n}\nfunction reExportStar(moduleSpecifier) {\n return makeExportDeclaration(\n /*exportSpecifiers*/\n void 0,\n moduleSpecifier\n );\n}\nfunction reExportDefault(moduleSpecifier) {\n return makeExportDeclaration([factory.createExportSpecifier(\n /*isTypeOnly*/\n false,\n /*propertyName*/\n void 0,\n \"default\"\n )], moduleSpecifier);\n}\nfunction convertExportsPropertyAssignment({ left, right, parent: parent2 }, sourceFile, changes) {\n const name = left.name.text;\n if ((isFunctionExpression(right) || isArrowFunction(right) || isClassExpression(right)) && (!right.name || right.name.text === name)) {\n changes.replaceRange(sourceFile, { pos: left.getStart(sourceFile), end: right.getStart(sourceFile) }, factory.createToken(95 /* ExportKeyword */), { suffix: \" \" });\n if (!right.name) changes.insertName(sourceFile, right, name);\n const semi = findChildOfKind(parent2, 27 /* SemicolonToken */, sourceFile);\n if (semi) changes.delete(sourceFile, semi);\n } else {\n changes.replaceNodeRangeWithNodes(sourceFile, left.expression, findChildOfKind(left, 25 /* DotToken */, sourceFile), [factory.createToken(95 /* ExportKeyword */), factory.createToken(87 /* ConstKeyword */)], { joiner: \" \", suffix: \" \" });\n }\n}\nfunction convertExportsDotXEquals_replaceNode(name, exported, useSitesToUnqualify) {\n const modifiers = [factory.createToken(95 /* ExportKeyword */)];\n switch (exported.kind) {\n case 219 /* FunctionExpression */: {\n const { name: expressionName } = exported;\n if (expressionName && expressionName.text !== name) {\n return exportConst();\n }\n }\n // falls through\n case 220 /* ArrowFunction */:\n return functionExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify);\n case 232 /* ClassExpression */:\n return classExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify);\n default:\n return exportConst();\n }\n function exportConst() {\n return makeConst(modifiers, factory.createIdentifier(name), replaceImportUseSites(exported, useSitesToUnqualify));\n }\n}\nfunction replaceImportUseSites(nodeOrNodes, useSitesToUnqualify) {\n if (!useSitesToUnqualify || !some(arrayFrom(useSitesToUnqualify.keys()), (original) => rangeContainsRange(nodeOrNodes, original))) {\n return nodeOrNodes;\n }\n return isArray(nodeOrNodes) ? getSynthesizedDeepClonesWithReplacements(\n nodeOrNodes,\n /*includeTrivia*/\n true,\n replaceNode\n ) : getSynthesizedDeepCloneWithReplacements(\n nodeOrNodes,\n /*includeTrivia*/\n true,\n replaceNode\n );\n function replaceNode(original) {\n if (original.kind === 212 /* PropertyAccessExpression */) {\n const replacement = useSitesToUnqualify.get(original);\n useSitesToUnqualify.delete(original);\n return replacement;\n }\n }\n}\nfunction convertSingleImport(name, moduleSpecifier, checker, identifiers, target, quotePreference) {\n switch (name.kind) {\n case 207 /* ObjectBindingPattern */: {\n const importSpecifiers = mapAllOrFail(name.elements, (e) => e.dotDotDotToken || e.initializer || e.propertyName && !isIdentifier(e.propertyName) || !isIdentifier(e.name) ? void 0 : makeImportSpecifier2(e.propertyName && e.propertyName.text, e.name.text));\n if (importSpecifiers) {\n return convertedImports([makeImport(\n /*defaultImport*/\n void 0,\n importSpecifiers,\n moduleSpecifier,\n quotePreference\n )]);\n }\n }\n // falls through -- object destructuring has an interesting pattern and must be a variable declaration\n case 208 /* ArrayBindingPattern */: {\n const tmp = makeUniqueName(moduleSpecifierToValidIdentifier(moduleSpecifier.text, target), identifiers);\n return convertedImports([\n makeImport(\n factory.createIdentifier(tmp),\n /*namedImports*/\n void 0,\n moduleSpecifier,\n quotePreference\n ),\n makeConst(\n /*modifiers*/\n void 0,\n getSynthesizedDeepClone(name),\n factory.createIdentifier(tmp)\n )\n ]);\n }\n case 80 /* Identifier */:\n return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference);\n default:\n return Debug.assertNever(name, `Convert to ES module got invalid name kind ${name.kind}`);\n }\n}\nfunction convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference) {\n const nameSymbol = checker.getSymbolAtLocation(name);\n const namedBindingsNames = /* @__PURE__ */ new Map();\n let needDefaultImport = false;\n let useSitesToUnqualify;\n for (const use of identifiers.original.get(name.text)) {\n if (checker.getSymbolAtLocation(use) !== nameSymbol || use === name) {\n continue;\n }\n const { parent: parent2 } = use;\n if (isPropertyAccessExpression(parent2)) {\n const { name: { text: propertyName } } = parent2;\n if (propertyName === \"default\") {\n needDefaultImport = true;\n const importDefaultName = use.getText();\n (useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(importDefaultName));\n } else {\n Debug.assert(parent2.expression === use, \"Didn't expect expression === use\");\n let idName = namedBindingsNames.get(propertyName);\n if (idName === void 0) {\n idName = makeUniqueName(propertyName, identifiers);\n namedBindingsNames.set(propertyName, idName);\n }\n (useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(idName));\n }\n } else {\n needDefaultImport = true;\n }\n }\n const namedBindings = namedBindingsNames.size === 0 ? void 0 : arrayFrom(mapIterator(namedBindingsNames.entries(), ([propertyName, idName]) => factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n propertyName === idName ? void 0 : factory.createIdentifier(propertyName),\n factory.createIdentifier(idName)\n )));\n if (!namedBindings) {\n needDefaultImport = true;\n }\n return convertedImports(\n [makeImport(needDefaultImport ? getSynthesizedDeepClone(name) : void 0, namedBindings, moduleSpecifier, quotePreference)],\n useSitesToUnqualify\n );\n}\nfunction makeUniqueName(name, identifiers) {\n while (identifiers.original.has(name) || identifiers.additional.has(name)) {\n name = `_${name}`;\n }\n identifiers.additional.add(name);\n return name;\n}\nfunction collectFreeIdentifiers(file) {\n const map2 = createMultiMap();\n forEachFreeIdentifier(file, (id) => map2.add(id.text, id));\n return map2;\n}\nfunction forEachFreeIdentifier(node, cb) {\n if (isIdentifier(node) && isFreeIdentifier(node)) cb(node);\n node.forEachChild((child) => forEachFreeIdentifier(child, cb));\n}\nfunction isFreeIdentifier(node) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 212 /* PropertyAccessExpression */:\n return parent2.name !== node;\n case 209 /* BindingElement */:\n return parent2.propertyName !== node;\n case 277 /* ImportSpecifier */:\n return parent2.propertyName !== node;\n default:\n return true;\n }\n}\nfunction functionExpressionToDeclaration(name, additionalModifiers, fn, useSitesToUnqualify) {\n return factory.createFunctionDeclaration(\n concatenate(additionalModifiers, getSynthesizedDeepClones(fn.modifiers)),\n getSynthesizedDeepClone(fn.asteriskToken),\n name,\n getSynthesizedDeepClones(fn.typeParameters),\n getSynthesizedDeepClones(fn.parameters),\n getSynthesizedDeepClone(fn.type),\n factory.converters.convertToFunctionBlock(replaceImportUseSites(fn.body, useSitesToUnqualify))\n );\n}\nfunction classExpressionToDeclaration(name, additionalModifiers, cls, useSitesToUnqualify) {\n return factory.createClassDeclaration(\n concatenate(additionalModifiers, getSynthesizedDeepClones(cls.modifiers)),\n name,\n getSynthesizedDeepClones(cls.typeParameters),\n getSynthesizedDeepClones(cls.heritageClauses),\n replaceImportUseSites(cls.members, useSitesToUnqualify)\n );\n}\nfunction makeSingleImport(localName, propertyName, moduleSpecifier, quotePreference) {\n return propertyName === \"default\" ? makeImport(\n factory.createIdentifier(localName),\n /*namedImports*/\n void 0,\n moduleSpecifier,\n quotePreference\n ) : makeImport(\n /*defaultImport*/\n void 0,\n [makeImportSpecifier2(propertyName, localName)],\n moduleSpecifier,\n quotePreference\n );\n}\nfunction makeImportSpecifier2(propertyName, name) {\n return factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n propertyName !== void 0 && propertyName !== name ? factory.createIdentifier(propertyName) : void 0,\n factory.createIdentifier(name)\n );\n}\nfunction makeConst(modifiers, name, init) {\n return factory.createVariableStatement(\n modifiers,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n init\n )],\n 2 /* Const */\n )\n );\n}\nfunction makeExportDeclaration(exportSpecifiers, moduleSpecifier) {\n return factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n exportSpecifiers && factory.createNamedExports(exportSpecifiers),\n moduleSpecifier === void 0 ? void 0 : factory.createStringLiteral(moduleSpecifier)\n );\n}\nfunction convertedImports(newImports, useSitesToUnqualify) {\n return {\n newImports,\n useSitesToUnqualify\n };\n}\n\n// src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts\nvar fixId12 = \"correctQualifiedNameToIndexedAccessType\";\nvar errorCodes13 = [Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code];\nregisterCodeFix({\n errorCodes: errorCodes13,\n getCodeActions(context) {\n const qualifiedName = getQualifiedName(context.sourceFile, context.span.start);\n if (!qualifiedName) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange10(t, context.sourceFile, qualifiedName));\n const newText = `${qualifiedName.left.text}[\"${qualifiedName.right.text}\"]`;\n return [createCodeFixAction(fixId12, changes, [Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId12, Diagnostics.Rewrite_all_as_indexed_access_types)];\n },\n fixIds: [fixId12],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes13, (changes, diag2) => {\n const q = getQualifiedName(diag2.file, diag2.start);\n if (q) {\n doChange10(changes, diag2.file, q);\n }\n })\n});\nfunction getQualifiedName(sourceFile, pos) {\n const qualifiedName = findAncestor(getTokenAtPosition(sourceFile, pos), isQualifiedName);\n Debug.assert(!!qualifiedName, \"Expected position to be owned by a qualified name.\");\n return isIdentifier(qualifiedName.left) ? qualifiedName : void 0;\n}\nfunction doChange10(changeTracker, sourceFile, qualifiedName) {\n const rightText = qualifiedName.right.text;\n const replacement = factory.createIndexedAccessTypeNode(\n factory.createTypeReferenceNode(\n qualifiedName.left,\n /*typeArguments*/\n void 0\n ),\n factory.createLiteralTypeNode(factory.createStringLiteral(rightText))\n );\n changeTracker.replaceNode(sourceFile, qualifiedName, replacement);\n}\n\n// src/services/codefixes/convertToTypeOnlyExport.ts\nvar errorCodes14 = [Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code];\nvar fixId13 = \"convertToTypeOnlyExport\";\nregisterCodeFix({\n errorCodes: errorCodes14,\n getCodeActions: function getCodeActionsToConvertToTypeOnlyExport(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => fixSingleExportDeclaration(t, getExportSpecifierForDiagnosticSpan(context.span, context.sourceFile), context));\n if (changes.length) {\n return [createCodeFixAction(fixId13, changes, Diagnostics.Convert_to_type_only_export, fixId13, Diagnostics.Convert_all_re_exported_types_to_type_only_exports)];\n }\n },\n fixIds: [fixId13],\n getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyExport(context) {\n const fixedExportDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes14, (changes, diag2) => {\n const exportSpecifier = getExportSpecifierForDiagnosticSpan(diag2, context.sourceFile);\n if (exportSpecifier && addToSeen(fixedExportDeclarations, getNodeId(exportSpecifier.parent.parent))) {\n fixSingleExportDeclaration(changes, exportSpecifier, context);\n }\n });\n }\n});\nfunction getExportSpecifierForDiagnosticSpan(span, sourceFile) {\n return tryCast(getTokenAtPosition(sourceFile, span.start).parent, isExportSpecifier);\n}\nfunction fixSingleExportDeclaration(changes, exportSpecifier, context) {\n if (!exportSpecifier) {\n return;\n }\n const exportClause = exportSpecifier.parent;\n const exportDeclaration = exportClause.parent;\n const typeExportSpecifiers = getTypeExportSpecifiers(exportSpecifier, context);\n if (typeExportSpecifiers.length === exportClause.elements.length) {\n changes.insertModifierBefore(context.sourceFile, 156 /* TypeKeyword */, exportClause);\n } else {\n const valueExportDeclaration = factory.updateExportDeclaration(\n exportDeclaration,\n exportDeclaration.modifiers,\n /*isTypeOnly*/\n false,\n factory.updateNamedExports(exportClause, filter(exportClause.elements, (e) => !contains(typeExportSpecifiers, e))),\n exportDeclaration.moduleSpecifier,\n /*attributes*/\n void 0\n );\n const typeExportDeclaration = factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n true,\n factory.createNamedExports(typeExportSpecifiers),\n exportDeclaration.moduleSpecifier,\n /*attributes*/\n void 0\n );\n changes.replaceNode(context.sourceFile, exportDeclaration, valueExportDeclaration, {\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude\n });\n changes.insertNodeAfter(context.sourceFile, exportDeclaration, typeExportDeclaration);\n }\n}\nfunction getTypeExportSpecifiers(originExportSpecifier, context) {\n const exportClause = originExportSpecifier.parent;\n if (exportClause.elements.length === 1) {\n return exportClause.elements;\n }\n const diagnostics = getDiagnosticsWithinSpan(\n createTextSpanFromNode(exportClause),\n context.program.getSemanticDiagnostics(context.sourceFile, context.cancellationToken)\n );\n return filter(exportClause.elements, (element) => {\n var _a;\n return element === originExportSpecifier || ((_a = findDiagnosticForNode(element, diagnostics)) == null ? void 0 : _a.code) === errorCodes14[0];\n });\n}\n\n// src/services/codefixes/convertToTypeOnlyImport.ts\nvar errorCodes15 = [\n Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code,\n Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code\n];\nvar fixId14 = \"convertToTypeOnlyImport\";\nregisterCodeFix({\n errorCodes: errorCodes15,\n getCodeActions: function getCodeActionsToConvertToTypeOnlyImport(context) {\n var _a;\n const declaration = getDeclaration2(context.sourceFile, context.span.start);\n if (declaration) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange11(t, context.sourceFile, declaration));\n const importDeclarationChanges = declaration.kind === 277 /* ImportSpecifier */ && isImportDeclaration(declaration.parent.parent.parent) && canConvertImportDeclarationForSpecifier(declaration, context.sourceFile, context.program) ? ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange11(t, context.sourceFile, declaration.parent.parent.parent)) : void 0;\n const mainAction = createCodeFixAction(\n fixId14,\n changes,\n declaration.kind === 277 /* ImportSpecifier */ ? [Diagnostics.Use_type_0, ((_a = declaration.propertyName) == null ? void 0 : _a.text) ?? declaration.name.text] : Diagnostics.Use_import_type,\n fixId14,\n Diagnostics.Fix_all_with_type_only_imports\n );\n if (some(importDeclarationChanges)) {\n return [\n createCodeFixActionWithoutFixAll(fixId14, importDeclarationChanges, Diagnostics.Use_import_type),\n mainAction\n ];\n }\n return [mainAction];\n }\n return void 0;\n },\n fixIds: [fixId14],\n getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyImport(context) {\n const fixedImportDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes15, (changes, diag2) => {\n const errorDeclaration = getDeclaration2(diag2.file, diag2.start);\n if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 273 /* ImportDeclaration */ && !fixedImportDeclarations.has(errorDeclaration)) {\n doChange11(changes, diag2.file, errorDeclaration);\n fixedImportDeclarations.add(errorDeclaration);\n } else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 277 /* ImportSpecifier */ && isImportDeclaration(errorDeclaration.parent.parent.parent) && !fixedImportDeclarations.has(errorDeclaration.parent.parent.parent) && canConvertImportDeclarationForSpecifier(errorDeclaration, diag2.file, context.program)) {\n doChange11(changes, diag2.file, errorDeclaration.parent.parent.parent);\n fixedImportDeclarations.add(errorDeclaration.parent.parent.parent);\n } else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 277 /* ImportSpecifier */) {\n doChange11(changes, diag2.file, errorDeclaration);\n }\n });\n }\n});\nfunction getDeclaration2(sourceFile, pos) {\n const { parent: parent2 } = getTokenAtPosition(sourceFile, pos);\n return isImportSpecifier(parent2) || isImportDeclaration(parent2) && parent2.importClause ? parent2 : void 0;\n}\nfunction canConvertImportDeclarationForSpecifier(specifier, sourceFile, program) {\n if (specifier.parent.parent.name) {\n return false;\n }\n const nonTypeOnlySpecifiers = specifier.parent.elements.filter((e) => !e.isTypeOnly);\n if (nonTypeOnlySpecifiers.length === 1) {\n return true;\n }\n const checker = program.getTypeChecker();\n for (const specifier2 of nonTypeOnlySpecifiers) {\n const isUsedAsValue = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(specifier2.name, checker, sourceFile, (usage) => {\n const symbol = checker.getSymbolAtLocation(usage);\n return !!symbol && checker.symbolIsValue(symbol) || !isValidTypeOnlyAliasUseSite(usage);\n });\n if (isUsedAsValue) {\n return false;\n }\n }\n return true;\n}\nfunction doChange11(changes, sourceFile, declaration) {\n var _a;\n if (isImportSpecifier(declaration)) {\n changes.replaceNode(sourceFile, declaration, factory.updateImportSpecifier(\n declaration,\n /*isTypeOnly*/\n true,\n declaration.propertyName,\n declaration.name\n ));\n } else {\n const importClause = declaration.importClause;\n if (importClause.name && importClause.namedBindings) {\n changes.replaceNodeWithNodes(sourceFile, declaration, [\n factory.createImportDeclaration(\n getSynthesizedDeepClones(\n declaration.modifiers,\n /*includeTrivia*/\n true\n ),\n factory.createImportClause(\n 156 /* TypeKeyword */,\n getSynthesizedDeepClone(\n importClause.name,\n /*includeTrivia*/\n true\n ),\n /*namedBindings*/\n void 0\n ),\n getSynthesizedDeepClone(\n declaration.moduleSpecifier,\n /*includeTrivia*/\n true\n ),\n getSynthesizedDeepClone(\n declaration.attributes,\n /*includeTrivia*/\n true\n )\n ),\n factory.createImportDeclaration(\n getSynthesizedDeepClones(\n declaration.modifiers,\n /*includeTrivia*/\n true\n ),\n factory.createImportClause(\n 156 /* TypeKeyword */,\n /*name*/\n void 0,\n getSynthesizedDeepClone(\n importClause.namedBindings,\n /*includeTrivia*/\n true\n )\n ),\n getSynthesizedDeepClone(\n declaration.moduleSpecifier,\n /*includeTrivia*/\n true\n ),\n getSynthesizedDeepClone(\n declaration.attributes,\n /*includeTrivia*/\n true\n )\n )\n ]);\n } else {\n const newNamedBindings = ((_a = importClause.namedBindings) == null ? void 0 : _a.kind) === 276 /* NamedImports */ ? factory.updateNamedImports(\n importClause.namedBindings,\n sameMap(importClause.namedBindings.elements, (e) => factory.updateImportSpecifier(\n e,\n /*isTypeOnly*/\n false,\n e.propertyName,\n e.name\n ))\n ) : importClause.namedBindings;\n const importDeclaration = factory.updateImportDeclaration(declaration, declaration.modifiers, factory.updateImportClause(importClause, 156 /* TypeKeyword */, importClause.name, newNamedBindings), declaration.moduleSpecifier, declaration.attributes);\n changes.replaceNode(sourceFile, declaration, importDeclaration);\n }\n }\n}\n\n// src/services/codefixes/convertTypedefToType.ts\nvar fixId15 = \"convertTypedefToType\";\nvar errorCodes16 = [Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type.code];\nregisterCodeFix({\n fixIds: [fixId15],\n errorCodes: errorCodes16,\n getCodeActions(context) {\n const newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options);\n const node = getTokenAtPosition(\n context.sourceFile,\n context.span.start\n );\n if (!node) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange12(t, node, context.sourceFile, newLineCharacter));\n if (changes.length > 0) {\n return [\n createCodeFixAction(\n fixId15,\n changes,\n Diagnostics.Convert_typedef_to_TypeScript_type,\n fixId15,\n Diagnostics.Convert_all_typedef_to_TypeScript_types\n )\n ];\n }\n },\n getAllCodeActions: (context) => codeFixAll(\n context,\n errorCodes16,\n (changes, diag2) => {\n const newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options);\n const node = getTokenAtPosition(diag2.file, diag2.start);\n const fixAll = true;\n if (node) doChange12(changes, node, diag2.file, newLineCharacter, fixAll);\n }\n )\n});\nfunction doChange12(changes, node, sourceFile, newLine, fixAll = false) {\n if (!isJSDocTypedefTag(node)) return;\n const declaration = createDeclaration(node);\n if (!declaration) return;\n const commentNode = node.parent;\n const { leftSibling, rightSibling } = getLeftAndRightSiblings(node);\n let pos = commentNode.getStart();\n let prefix = \"\";\n if (!leftSibling && commentNode.comment) {\n pos = findEndOfTextBetween(commentNode, commentNode.getStart(), node.getStart());\n prefix = `${newLine} */${newLine}`;\n }\n if (leftSibling) {\n if (fixAll && isJSDocTypedefTag(leftSibling)) {\n pos = node.getStart();\n prefix = \"\";\n } else {\n pos = findEndOfTextBetween(commentNode, leftSibling.getStart(), node.getStart());\n prefix = `${newLine} */${newLine}`;\n }\n }\n let end = commentNode.getEnd();\n let suffix = \"\";\n if (rightSibling) {\n if (fixAll && isJSDocTypedefTag(rightSibling)) {\n end = rightSibling.getStart();\n suffix = `${newLine}${newLine}`;\n } else {\n end = rightSibling.getStart();\n suffix = `${newLine}/**${newLine} * `;\n }\n }\n changes.replaceRange(sourceFile, { pos, end }, declaration, { prefix, suffix });\n}\nfunction getLeftAndRightSiblings(typedefNode) {\n const commentNode = typedefNode.parent;\n const maxChildIndex = commentNode.getChildCount() - 1;\n const currentNodeIndex = commentNode.getChildren().findIndex(\n (n) => n.getStart() === typedefNode.getStart() && n.getEnd() === typedefNode.getEnd()\n );\n const leftSibling = currentNodeIndex > 0 ? commentNode.getChildAt(currentNodeIndex - 1) : void 0;\n const rightSibling = currentNodeIndex < maxChildIndex ? commentNode.getChildAt(currentNodeIndex + 1) : void 0;\n return { leftSibling, rightSibling };\n}\nfunction findEndOfTextBetween(jsDocComment, from, to) {\n const comment = jsDocComment.getText().substring(from - jsDocComment.getStart(), to - jsDocComment.getStart());\n for (let i = comment.length; i > 0; i--) {\n if (!/[*/\\s]/.test(comment.substring(i - 1, i))) {\n return from + i;\n }\n }\n return to;\n}\nfunction createDeclaration(tag) {\n var _a;\n const { typeExpression } = tag;\n if (!typeExpression) return;\n const typeName = (_a = tag.name) == null ? void 0 : _a.getText();\n if (!typeName) return;\n if (typeExpression.kind === 323 /* JSDocTypeLiteral */) {\n return createInterfaceForTypeLiteral(typeName, typeExpression);\n }\n if (typeExpression.kind === 310 /* JSDocTypeExpression */) {\n return createTypeAliasForTypeExpression(typeName, typeExpression);\n }\n}\nfunction createInterfaceForTypeLiteral(typeName, typeLiteral) {\n const propertySignatures = createSignatureFromTypeLiteral(typeLiteral);\n if (!some(propertySignatures)) return;\n return factory.createInterfaceDeclaration(\n /*modifiers*/\n void 0,\n typeName,\n /*typeParameters*/\n void 0,\n /*heritageClauses*/\n void 0,\n propertySignatures\n );\n}\nfunction createTypeAliasForTypeExpression(typeName, typeExpression) {\n const typeReference = getSynthesizedDeepClone(typeExpression.type);\n if (!typeReference) return;\n return factory.createTypeAliasDeclaration(\n /*modifiers*/\n void 0,\n factory.createIdentifier(typeName),\n /*typeParameters*/\n void 0,\n typeReference\n );\n}\nfunction createSignatureFromTypeLiteral(typeLiteral) {\n const propertyTags = typeLiteral.jsDocPropertyTags;\n if (!some(propertyTags)) return;\n const getSignature = (tag) => {\n var _a;\n const name = getPropertyName(tag);\n const type = (_a = tag.typeExpression) == null ? void 0 : _a.type;\n const isOptional = tag.isBracketed;\n let typeReference;\n if (type && isJSDocTypeLiteral(type)) {\n const signatures = createSignatureFromTypeLiteral(type);\n typeReference = factory.createTypeLiteralNode(signatures);\n } else if (type) {\n typeReference = getSynthesizedDeepClone(type);\n }\n if (typeReference && name) {\n const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;\n return factory.createPropertySignature(\n /*modifiers*/\n void 0,\n name,\n questionToken,\n typeReference\n );\n }\n };\n return mapDefined(propertyTags, getSignature);\n}\nfunction getPropertyName(tag) {\n return tag.name.kind === 80 /* Identifier */ ? tag.name.text : tag.name.right.text;\n}\nfunction getJSDocTypedefNodes(node) {\n if (hasJSDocNodes(node)) {\n return flatMap(node.jsDoc, (doc) => {\n var _a;\n return (_a = doc.tags) == null ? void 0 : _a.filter((tag) => isJSDocTypedefTag(tag));\n });\n }\n return [];\n}\n\n// src/services/codefixes/convertLiteralTypeToMappedType.ts\nvar fixId16 = \"convertLiteralTypeToMappedType\";\nvar errorCodes17 = [Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code];\nregisterCodeFix({\n errorCodes: errorCodes17,\n getCodeActions: function getCodeActionsToConvertLiteralTypeToMappedType(context) {\n const { sourceFile, span } = context;\n const info = getInfo5(sourceFile, span.start);\n if (!info) {\n return void 0;\n }\n const { name, constraint } = info;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange13(t, sourceFile, info));\n return [createCodeFixAction(fixId16, changes, [Diagnostics.Convert_0_to_1_in_0, constraint, name], fixId16, Diagnostics.Convert_all_type_literals_to_mapped_type)];\n },\n fixIds: [fixId16],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes17, (changes, diag2) => {\n const info = getInfo5(diag2.file, diag2.start);\n if (info) {\n doChange13(changes, diag2.file, info);\n }\n })\n});\nfunction getInfo5(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (isIdentifier(token)) {\n const propertySignature = cast(token.parent.parent, isPropertySignature);\n const propertyName = token.getText(sourceFile);\n return {\n container: cast(propertySignature.parent, isTypeLiteralNode),\n typeNode: propertySignature.type,\n constraint: propertyName,\n name: propertyName === \"K\" ? \"P\" : \"K\"\n };\n }\n return void 0;\n}\nfunction doChange13(changes, sourceFile, { container, typeNode, constraint, name }) {\n changes.replaceNode(\n sourceFile,\n container,\n factory.createMappedTypeNode(\n /*readonlyToken*/\n void 0,\n factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n name,\n factory.createTypeReferenceNode(constraint)\n ),\n /*nameType*/\n void 0,\n /*questionToken*/\n void 0,\n typeNode,\n /*members*/\n void 0\n )\n );\n}\n\n// src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts\nvar errorCodes18 = [\n Diagnostics.Class_0_incorrectly_implements_interface_1.code,\n Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code\n];\nvar fixId17 = \"fixClassIncorrectlyImplementsInterface\";\nregisterCodeFix({\n errorCodes: errorCodes18,\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const classDeclaration = getClass(sourceFile, span.start);\n return mapDefined(getEffectiveImplementsTypeNodes(classDeclaration), (implementedTypeNode) => {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, t, context.preferences));\n return changes.length === 0 ? void 0 : createCodeFixAction(fixId17, changes, [Diagnostics.Implement_interface_0, implementedTypeNode.getText(sourceFile)], fixId17, Diagnostics.Implement_all_unimplemented_interfaces);\n });\n },\n fixIds: [fixId17],\n getAllCodeActions(context) {\n const seenClassDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes18, (changes, diag2) => {\n const classDeclaration = getClass(diag2.file, diag2.start);\n if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) {\n for (const implementedTypeNode of getEffectiveImplementsTypeNodes(classDeclaration)) {\n addMissingDeclarations(context, implementedTypeNode, diag2.file, classDeclaration, changes, context.preferences);\n }\n }\n });\n }\n});\nfunction getClass(sourceFile, pos) {\n return Debug.checkDefined(getContainingClass(getTokenAtPosition(sourceFile, pos)), \"There should be a containing class\");\n}\nfunction symbolPointsToNonPrivateMember(symbol) {\n return !symbol.valueDeclaration || !(getEffectiveModifierFlags(symbol.valueDeclaration) & 2 /* Private */);\n}\nfunction addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, changeTracker, preferences) {\n const checker = context.program.getTypeChecker();\n const maybeHeritageClauseSymbol = getHeritageClauseSymbolTable(classDeclaration, checker);\n const implementedType = checker.getTypeAtLocation(implementedTypeNode);\n const implementedTypeSymbols = checker.getPropertiesOfType(implementedType);\n const nonPrivateAndNotExistedInHeritageClauseMembers = implementedTypeSymbols.filter(and(symbolPointsToNonPrivateMember, (symbol) => !maybeHeritageClauseSymbol.has(symbol.escapedName)));\n const classType = checker.getTypeAtLocation(classDeclaration);\n const constructor = find(classDeclaration.members, (m) => isConstructorDeclaration(m));\n if (!classType.getNumberIndexType()) {\n createMissingIndexSignatureDeclaration(implementedType, 1 /* Number */);\n }\n if (!classType.getStringIndexType()) {\n createMissingIndexSignatureDeclaration(implementedType, 0 /* String */);\n }\n const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host);\n createMissingMemberNodes(classDeclaration, nonPrivateAndNotExistedInHeritageClauseMembers, sourceFile, context, preferences, importAdder, (member) => insertInterfaceMemberNode(sourceFile, classDeclaration, member));\n importAdder.writeFixes(changeTracker);\n function createMissingIndexSignatureDeclaration(type, kind) {\n const indexInfoOfKind = checker.getIndexInfoOfType(type, kind);\n if (indexInfoOfKind) {\n insertInterfaceMemberNode(sourceFile, classDeclaration, checker.indexInfoToIndexSignatureDeclaration(\n indexInfoOfKind,\n classDeclaration,\n /*flags*/\n void 0,\n /*internalFlags*/\n void 0,\n getNoopSymbolTrackerWithResolver(context)\n ));\n }\n }\n function insertInterfaceMemberNode(sourceFile2, cls, newElement) {\n if (constructor) {\n changeTracker.insertNodeAfter(sourceFile2, constructor, newElement);\n } else {\n changeTracker.insertMemberAtStart(sourceFile2, cls, newElement);\n }\n }\n}\nfunction getHeritageClauseSymbolTable(classDeclaration, checker) {\n const heritageClauseNode = getEffectiveBaseTypeNode(classDeclaration);\n if (!heritageClauseNode) return createSymbolTable();\n const heritageClauseType = checker.getTypeAtLocation(heritageClauseNode);\n const heritageClauseTypeSymbols = checker.getPropertiesOfType(heritageClauseType);\n return createSymbolTable(heritageClauseTypeSymbols.filter(symbolPointsToNonPrivateMember));\n}\n\n// src/services/codefixes/importFixes.ts\nvar importFixName = \"import\";\nvar importFixId = \"fixMissingImport\";\nvar errorCodes19 = [\n Diagnostics.Cannot_find_name_0.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,\n Diagnostics.Cannot_find_namespace_0.code,\n Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,\n Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code,\n Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code,\n Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode.code,\n Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig.code,\n Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,\n Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code,\n Diagnostics.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found.code\n];\nregisterCodeFix({\n errorCodes: errorCodes19,\n getCodeActions(context) {\n const { errorCode, preferences, sourceFile, span, program } = context;\n const info = getFixInfos(\n context,\n errorCode,\n span.start,\n /*useAutoImportProvider*/\n true\n );\n if (!info) return void 0;\n return info.map(\n ({ fix, symbolName: symbolName2, errorIdentifierText }) => codeActionForFix(\n context,\n sourceFile,\n symbolName2,\n fix,\n /*includeSymbolNameInDescription*/\n symbolName2 !== errorIdentifierText,\n program,\n preferences\n )\n );\n },\n fixIds: [importFixId],\n getAllCodeActions: (context) => {\n const { sourceFile, program, preferences, host, cancellationToken } = context;\n const importAdder = createImportAdderWorker(\n sourceFile,\n program,\n /*useAutoImportProvider*/\n true,\n preferences,\n host,\n cancellationToken\n );\n eachDiagnostic(context, errorCodes19, (diag2) => importAdder.addImportFromDiagnostic(diag2, context));\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, importAdder.writeFixes));\n }\n});\nfunction createImportAdder(sourceFile, program, preferences, host, cancellationToken) {\n return createImportAdderWorker(\n sourceFile,\n program,\n /*useAutoImportProvider*/\n false,\n preferences,\n host,\n cancellationToken\n );\n}\nfunction createImportAdderWorker(sourceFile, program, useAutoImportProvider, preferences, host, cancellationToken) {\n const compilerOptions = program.getCompilerOptions();\n const addToNamespace = [];\n const importType = [];\n const addToExisting = /* @__PURE__ */ new Map();\n const removeExisting = /* @__PURE__ */ new Set();\n const verbatimImports = /* @__PURE__ */ new Set();\n const newImports = /* @__PURE__ */ new Map();\n return { addImportFromDiagnostic, addImportFromExportedSymbol, addImportForModuleSymbol, writeFixes, hasFixes, addImportForUnresolvedIdentifier, addImportForNonExistentExport, removeExistingImport, addVerbatimImport };\n function addVerbatimImport(declaration) {\n verbatimImports.add(declaration);\n }\n function addImportForUnresolvedIdentifier(context, symbolToken, useAutoImportProvider2) {\n const info = getFixInfosWithoutDiagnostic(context, symbolToken, useAutoImportProvider2);\n if (!info || !info.length) return;\n addImport(first(info));\n }\n function addImportFromDiagnostic(diagnostic, context) {\n const info = getFixInfos(context, diagnostic.code, diagnostic.start, useAutoImportProvider);\n if (!info || !info.length) return;\n addImport(first(info));\n }\n function addImportFromExportedSymbol(exportedSymbol, isValidTypeOnlyUseSite, referenceImport) {\n var _a, _b;\n const moduleSymbol = Debug.checkDefined(exportedSymbol.parent, \"Expected exported symbol to have module symbol as parent\");\n const symbolName2 = getNameForExportedSymbol(exportedSymbol, getEmitScriptTarget(compilerOptions));\n const checker = program.getTypeChecker();\n const symbol = checker.getMergedSymbol(skipAlias(exportedSymbol, checker));\n const exportInfo = getAllExportInfoForSymbol(\n sourceFile,\n symbol,\n symbolName2,\n moduleSymbol,\n /*preferCapitalized*/\n false,\n program,\n host,\n preferences,\n cancellationToken\n );\n if (!exportInfo) {\n Debug.assert((_a = preferences.autoImportFileExcludePatterns) == null ? void 0 : _a.length);\n return;\n }\n const useRequire = shouldUseRequire(sourceFile, program);\n let fix = getImportFixForSymbol(\n sourceFile,\n exportInfo,\n program,\n /*position*/\n void 0,\n !!isValidTypeOnlyUseSite,\n useRequire,\n host,\n preferences\n );\n if (fix) {\n const localName = ((_b = tryCast(referenceImport == null ? void 0 : referenceImport.name, isIdentifier)) == null ? void 0 : _b.text) ?? symbolName2;\n let addAsTypeOnly;\n let propertyName;\n if (referenceImport && isTypeOnlyImportDeclaration(referenceImport) && (fix.kind === 3 /* AddNew */ || fix.kind === 2 /* AddToExisting */) && fix.addAsTypeOnly === 1 /* Allowed */) {\n addAsTypeOnly = 2 /* Required */;\n }\n if (exportedSymbol.name !== localName) {\n propertyName = exportedSymbol.name;\n }\n fix = {\n ...fix,\n ...addAsTypeOnly === void 0 ? {} : { addAsTypeOnly },\n ...propertyName === void 0 ? {} : { propertyName }\n };\n addImport({ fix, symbolName: localName ?? symbolName2, errorIdentifierText: void 0 });\n }\n }\n function addImportForModuleSymbol(symbolAlias, isValidTypeOnlyUseSite, referenceImport) {\n var _a, _b, _c;\n const checker = program.getTypeChecker();\n const moduleSymbol = checker.getAliasedSymbol(symbolAlias);\n Debug.assert(moduleSymbol.flags & 1536 /* Module */, \"Expected symbol to be a module\");\n const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n const moduleSpecifierResult = ts_moduleSpecifiers_exports.getModuleSpecifiersWithCacheInfo(\n moduleSymbol,\n checker,\n compilerOptions,\n sourceFile,\n moduleSpecifierResolutionHost,\n preferences,\n /*options*/\n void 0,\n /*forAutoImport*/\n true\n );\n const useRequire = shouldUseRequire(sourceFile, program);\n let addAsTypeOnly = getAddAsTypeOnly(\n isValidTypeOnlyUseSite,\n /*isForNewImportDeclaration*/\n true,\n /*symbol*/\n void 0,\n symbolAlias.flags,\n program.getTypeChecker(),\n compilerOptions\n );\n addAsTypeOnly = addAsTypeOnly === 1 /* Allowed */ && isTypeOnlyImportDeclaration(referenceImport) ? 2 /* Required */ : 1 /* Allowed */;\n const importKind = isImportDeclaration(referenceImport) ? isDefaultImport(referenceImport) ? 1 /* Default */ : 2 /* Namespace */ : isImportSpecifier(referenceImport) ? 0 /* Named */ : isImportClause(referenceImport) && !!referenceImport.name ? 1 /* Default */ : 2 /* Namespace */;\n const exportInfo = [{\n symbol: symbolAlias,\n moduleSymbol,\n moduleFileName: (_c = (_b = (_a = moduleSymbol.declarations) == null ? void 0 : _a[0]) == null ? void 0 : _b.getSourceFile()) == null ? void 0 : _c.fileName,\n exportKind: 4 /* Module */,\n targetFlags: symbolAlias.flags,\n isFromPackageJson: false\n }];\n const existingFix = getImportFixForSymbol(\n sourceFile,\n exportInfo,\n program,\n /*position*/\n void 0,\n !!isValidTypeOnlyUseSite,\n useRequire,\n host,\n preferences\n );\n let fix;\n if (existingFix && importKind !== 2 /* Namespace */ && existingFix.kind !== 0 /* UseNamespace */ && existingFix.kind !== 1 /* JsdocTypeImport */) {\n fix = {\n ...existingFix,\n addAsTypeOnly,\n importKind\n };\n } else {\n fix = {\n kind: 3 /* AddNew */,\n moduleSpecifierKind: existingFix !== void 0 ? existingFix.moduleSpecifierKind : moduleSpecifierResult.kind,\n moduleSpecifier: existingFix !== void 0 ? existingFix.moduleSpecifier : first(moduleSpecifierResult.moduleSpecifiers),\n importKind,\n addAsTypeOnly,\n useRequire\n };\n }\n addImport({ fix, symbolName: symbolAlias.name, errorIdentifierText: void 0 });\n }\n function addImportForNonExistentExport(exportName, exportingFileName, exportKind, exportedMeanings, isImportUsageValidAsTypeOnly) {\n const exportingSourceFile = program.getSourceFile(exportingFileName);\n const useRequire = shouldUseRequire(sourceFile, program);\n if (exportingSourceFile && exportingSourceFile.symbol) {\n const { fixes } = getImportFixes(\n [{\n exportKind,\n isFromPackageJson: false,\n moduleFileName: exportingFileName,\n moduleSymbol: exportingSourceFile.symbol,\n targetFlags: exportedMeanings\n }],\n /*usagePosition*/\n void 0,\n isImportUsageValidAsTypeOnly,\n useRequire,\n program,\n sourceFile,\n host,\n preferences\n );\n if (fixes.length) {\n addImport({ fix: fixes[0], symbolName: exportName, errorIdentifierText: exportName });\n }\n } else {\n const futureExportingSourceFile = createFutureSourceFile(exportingFileName, 99 /* ESNext */, program, host);\n const moduleSpecifier = ts_moduleSpecifiers_exports.getLocalModuleSpecifierBetweenFileNames(\n sourceFile,\n exportingFileName,\n compilerOptions,\n createModuleSpecifierResolutionHost(program, host),\n preferences\n );\n const importKind = getImportKind(futureExportingSourceFile, exportKind, program);\n const addAsTypeOnly = getAddAsTypeOnly(\n isImportUsageValidAsTypeOnly,\n /*isForNewImportDeclaration*/\n true,\n /*symbol*/\n void 0,\n exportedMeanings,\n program.getTypeChecker(),\n compilerOptions\n );\n const fix = {\n kind: 3 /* AddNew */,\n moduleSpecifierKind: \"relative\",\n moduleSpecifier,\n importKind,\n addAsTypeOnly,\n useRequire\n };\n addImport({ fix, symbolName: exportName, errorIdentifierText: exportName });\n }\n }\n function removeExistingImport(declaration) {\n if (declaration.kind === 274 /* ImportClause */) {\n Debug.assertIsDefined(declaration.name, \"ImportClause should have a name if it's being removed\");\n }\n removeExisting.add(declaration);\n }\n function addImport(info) {\n var _a, _b, _c;\n const { fix, symbolName: symbolName2 } = info;\n switch (fix.kind) {\n case 0 /* UseNamespace */:\n addToNamespace.push(fix);\n break;\n case 1 /* JsdocTypeImport */:\n importType.push(fix);\n break;\n case 2 /* AddToExisting */: {\n const { importClauseOrBindingPattern, importKind, addAsTypeOnly, propertyName } = fix;\n let entry = addToExisting.get(importClauseOrBindingPattern);\n if (!entry) {\n addToExisting.set(importClauseOrBindingPattern, entry = { importClauseOrBindingPattern, defaultImport: void 0, namedImports: /* @__PURE__ */ new Map() });\n }\n if (importKind === 0 /* Named */) {\n const prevTypeOnly = (_a = entry == null ? void 0 : entry.namedImports.get(symbolName2)) == null ? void 0 : _a.addAsTypeOnly;\n entry.namedImports.set(symbolName2, { addAsTypeOnly: reduceAddAsTypeOnlyValues(prevTypeOnly, addAsTypeOnly), propertyName });\n } else {\n Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, \"(Add to Existing) Default import should be missing or match symbolName\");\n entry.defaultImport = {\n name: symbolName2,\n addAsTypeOnly: reduceAddAsTypeOnlyValues((_b = entry.defaultImport) == null ? void 0 : _b.addAsTypeOnly, addAsTypeOnly)\n };\n }\n break;\n }\n case 3 /* AddNew */: {\n const { moduleSpecifier, importKind, useRequire, addAsTypeOnly, propertyName } = fix;\n const entry = getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly);\n Debug.assert(entry.useRequire === useRequire, \"(Add new) Tried to add an `import` and a `require` for the same module\");\n switch (importKind) {\n case 1 /* Default */:\n Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, \"(Add new) Default import should be missing or match symbolName\");\n entry.defaultImport = { name: symbolName2, addAsTypeOnly: reduceAddAsTypeOnlyValues((_c = entry.defaultImport) == null ? void 0 : _c.addAsTypeOnly, addAsTypeOnly) };\n break;\n case 0 /* Named */:\n const prevValue = (entry.namedImports || (entry.namedImports = /* @__PURE__ */ new Map())).get(symbolName2);\n entry.namedImports.set(symbolName2, [reduceAddAsTypeOnlyValues(prevValue, addAsTypeOnly), propertyName]);\n break;\n case 3 /* CommonJS */:\n if (compilerOptions.verbatimModuleSyntax) {\n const prevValue2 = (entry.namedImports || (entry.namedImports = /* @__PURE__ */ new Map())).get(symbolName2);\n entry.namedImports.set(symbolName2, [reduceAddAsTypeOnlyValues(prevValue2, addAsTypeOnly), propertyName]);\n } else {\n Debug.assert(entry.namespaceLikeImport === void 0 || entry.namespaceLikeImport.name === symbolName2, \"Namespacelike import shoudl be missing or match symbolName\");\n entry.namespaceLikeImport = { importKind, name: symbolName2, addAsTypeOnly };\n }\n break;\n case 2 /* Namespace */:\n Debug.assert(entry.namespaceLikeImport === void 0 || entry.namespaceLikeImport.name === symbolName2, \"Namespacelike import shoudl be missing or match symbolName\");\n entry.namespaceLikeImport = { importKind, name: symbolName2, addAsTypeOnly };\n break;\n }\n break;\n }\n case 4 /* PromoteTypeOnly */:\n break;\n default:\n Debug.assertNever(fix, `fix wasn't never - got kind ${fix.kind}`);\n }\n function reduceAddAsTypeOnlyValues(prevValue, newValue) {\n return Math.max(prevValue ?? 0, newValue);\n }\n function getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly) {\n const typeOnlyKey = newImportsKey(\n moduleSpecifier,\n /*topLevelTypeOnly*/\n true\n );\n const nonTypeOnlyKey = newImportsKey(\n moduleSpecifier,\n /*topLevelTypeOnly*/\n false\n );\n const typeOnlyEntry = newImports.get(typeOnlyKey);\n const nonTypeOnlyEntry = newImports.get(nonTypeOnlyKey);\n const newEntry = {\n defaultImport: void 0,\n namedImports: void 0,\n namespaceLikeImport: void 0,\n useRequire\n };\n if (importKind === 1 /* Default */ && addAsTypeOnly === 2 /* Required */) {\n if (typeOnlyEntry) return typeOnlyEntry;\n newImports.set(typeOnlyKey, newEntry);\n return newEntry;\n }\n if (addAsTypeOnly === 1 /* Allowed */ && (typeOnlyEntry || nonTypeOnlyEntry)) {\n return typeOnlyEntry || nonTypeOnlyEntry;\n }\n if (nonTypeOnlyEntry) {\n return nonTypeOnlyEntry;\n }\n newImports.set(nonTypeOnlyKey, newEntry);\n return newEntry;\n }\n function newImportsKey(moduleSpecifier, topLevelTypeOnly) {\n return `${topLevelTypeOnly ? 1 : 0}|${moduleSpecifier}`;\n }\n }\n function writeFixes(changeTracker, oldFileQuotePreference) {\n var _a, _b;\n let quotePreference;\n if (sourceFile.imports !== void 0 && sourceFile.imports.length === 0 && oldFileQuotePreference !== void 0) {\n quotePreference = oldFileQuotePreference;\n } else {\n quotePreference = getQuotePreference(sourceFile, preferences);\n }\n for (const fix of addToNamespace) {\n addNamespaceQualifier(changeTracker, sourceFile, fix);\n }\n for (const fix of importType) {\n addImportType(changeTracker, sourceFile, fix, quotePreference);\n }\n let importSpecifiersToRemoveWhileAdding;\n if (removeExisting.size) {\n Debug.assert(isFullSourceFile(sourceFile), \"Cannot remove imports from a future source file\");\n const importDeclarationsWithRemovals = new Set(mapDefined([...removeExisting], (d) => findAncestor(d, isImportDeclaration)));\n const variableDeclarationsWithRemovals = new Set(mapDefined([...removeExisting], (d) => findAncestor(d, isVariableDeclarationInitializedToRequire)));\n const emptyImportDeclarations = [...importDeclarationsWithRemovals].filter(\n (d) => {\n var _a2, _b2, _c;\n return (\n // nothing added to the import declaration\n !addToExisting.has(d.importClause) && // no default, or default is being removed\n (!((_a2 = d.importClause) == null ? void 0 : _a2.name) || removeExisting.has(d.importClause)) && // no namespace import, or namespace import is being removed\n (!tryCast((_b2 = d.importClause) == null ? void 0 : _b2.namedBindings, isNamespaceImport) || removeExisting.has(d.importClause.namedBindings)) && // no named imports, or all named imports are being removed\n (!tryCast((_c = d.importClause) == null ? void 0 : _c.namedBindings, isNamedImports) || every(d.importClause.namedBindings.elements, (e) => removeExisting.has(e)))\n );\n }\n );\n const emptyVariableDeclarations = [...variableDeclarationsWithRemovals].filter(\n (d) => (\n // no binding elements being added to the variable declaration\n (d.name.kind !== 207 /* ObjectBindingPattern */ || !addToExisting.has(d.name)) && // no binding elements, or all binding elements are being removed\n (d.name.kind !== 207 /* ObjectBindingPattern */ || every(d.name.elements, (e) => removeExisting.has(e)))\n )\n );\n const namedBindingsToDelete = [...importDeclarationsWithRemovals].filter(\n (d) => {\n var _a2, _b2;\n return (\n // has named bindings\n ((_a2 = d.importClause) == null ? void 0 : _a2.namedBindings) && // is not being fully removed\n emptyImportDeclarations.indexOf(d) === -1 && // is not gaining named imports\n !((_b2 = addToExisting.get(d.importClause)) == null ? void 0 : _b2.namedImports) && // all named imports are being removed\n (d.importClause.namedBindings.kind === 275 /* NamespaceImport */ || every(d.importClause.namedBindings.elements, (e) => removeExisting.has(e)))\n );\n }\n );\n for (const declaration of [...emptyImportDeclarations, ...emptyVariableDeclarations]) {\n changeTracker.delete(sourceFile, declaration);\n }\n for (const declaration of namedBindingsToDelete) {\n changeTracker.replaceNode(\n sourceFile,\n declaration.importClause,\n factory.updateImportClause(\n declaration.importClause,\n declaration.importClause.phaseModifier,\n declaration.importClause.name,\n /*namedBindings*/\n void 0\n )\n );\n }\n for (const declaration of removeExisting) {\n const importDeclaration = findAncestor(declaration, isImportDeclaration);\n if (importDeclaration && emptyImportDeclarations.indexOf(importDeclaration) === -1 && namedBindingsToDelete.indexOf(importDeclaration) === -1) {\n if (declaration.kind === 274 /* ImportClause */) {\n changeTracker.delete(sourceFile, declaration.name);\n } else {\n Debug.assert(declaration.kind === 277 /* ImportSpecifier */, \"NamespaceImport should have been handled earlier\");\n if ((_a = addToExisting.get(importDeclaration.importClause)) == null ? void 0 : _a.namedImports) {\n (importSpecifiersToRemoveWhileAdding ?? (importSpecifiersToRemoveWhileAdding = /* @__PURE__ */ new Set())).add(declaration);\n } else {\n changeTracker.delete(sourceFile, declaration);\n }\n }\n } else if (declaration.kind === 209 /* BindingElement */) {\n if ((_b = addToExisting.get(declaration.parent)) == null ? void 0 : _b.namedImports) {\n (importSpecifiersToRemoveWhileAdding ?? (importSpecifiersToRemoveWhileAdding = /* @__PURE__ */ new Set())).add(declaration);\n } else {\n changeTracker.delete(sourceFile, declaration);\n }\n } else if (declaration.kind === 272 /* ImportEqualsDeclaration */) {\n changeTracker.delete(sourceFile, declaration);\n }\n }\n }\n addToExisting.forEach(({ importClauseOrBindingPattern, defaultImport, namedImports }) => {\n doAddExistingFix(\n changeTracker,\n sourceFile,\n importClauseOrBindingPattern,\n defaultImport,\n arrayFrom(namedImports.entries(), ([name, { addAsTypeOnly, propertyName }]) => ({ addAsTypeOnly, propertyName, name })),\n importSpecifiersToRemoveWhileAdding,\n preferences\n );\n });\n let newDeclarations;\n newImports.forEach(({ useRequire, defaultImport, namedImports, namespaceLikeImport }, key) => {\n const moduleSpecifier = key.slice(2);\n const getDeclarations = useRequire ? getNewRequires : getNewImports;\n const declarations = getDeclarations(\n moduleSpecifier,\n quotePreference,\n defaultImport,\n namedImports && arrayFrom(namedImports.entries(), ([name, [addAsTypeOnly, propertyName]]) => ({ addAsTypeOnly, propertyName, name })),\n namespaceLikeImport,\n compilerOptions,\n preferences\n );\n newDeclarations = combine(newDeclarations, declarations);\n });\n newDeclarations = combine(newDeclarations, getCombinedVerbatimImports());\n if (newDeclarations) {\n insertImports(\n changeTracker,\n sourceFile,\n newDeclarations,\n /*blankLineBetween*/\n true,\n preferences\n );\n }\n }\n function getCombinedVerbatimImports() {\n if (!verbatimImports.size) return void 0;\n const importDeclarations = new Set(mapDefined([...verbatimImports], (d) => findAncestor(d, isImportDeclaration)));\n const requireStatements = new Set(mapDefined([...verbatimImports], (d) => findAncestor(d, isRequireVariableStatement)));\n return [\n ...mapDefined([...verbatimImports], (d) => d.kind === 272 /* ImportEqualsDeclaration */ ? getSynthesizedDeepClone(\n d,\n /*includeTrivia*/\n true\n ) : void 0),\n ...[...importDeclarations].map((d) => {\n var _a;\n if (verbatimImports.has(d)) {\n return getSynthesizedDeepClone(\n d,\n /*includeTrivia*/\n true\n );\n }\n return getSynthesizedDeepClone(\n factory.updateImportDeclaration(\n d,\n d.modifiers,\n d.importClause && factory.updateImportClause(\n d.importClause,\n d.importClause.phaseModifier,\n verbatimImports.has(d.importClause) ? d.importClause.name : void 0,\n verbatimImports.has(d.importClause.namedBindings) ? d.importClause.namedBindings : ((_a = tryCast(d.importClause.namedBindings, isNamedImports)) == null ? void 0 : _a.elements.some((e) => verbatimImports.has(e))) ? factory.updateNamedImports(\n d.importClause.namedBindings,\n d.importClause.namedBindings.elements.filter((e) => verbatimImports.has(e))\n ) : void 0\n ),\n d.moduleSpecifier,\n d.attributes\n ),\n /*includeTrivia*/\n true\n );\n }),\n ...[...requireStatements].map((s) => {\n if (verbatimImports.has(s)) {\n return getSynthesizedDeepClone(\n s,\n /*includeTrivia*/\n true\n );\n }\n return getSynthesizedDeepClone(\n factory.updateVariableStatement(\n s,\n s.modifiers,\n factory.updateVariableDeclarationList(\n s.declarationList,\n mapDefined(s.declarationList.declarations, (d) => {\n if (verbatimImports.has(d)) {\n return d;\n }\n return factory.updateVariableDeclaration(\n d,\n d.name.kind === 207 /* ObjectBindingPattern */ ? factory.updateObjectBindingPattern(\n d.name,\n d.name.elements.filter((e) => verbatimImports.has(e))\n ) : d.name,\n d.exclamationToken,\n d.type,\n d.initializer\n );\n })\n )\n ),\n /*includeTrivia*/\n true\n );\n })\n ];\n }\n function hasFixes() {\n return addToNamespace.length > 0 || importType.length > 0 || addToExisting.size > 0 || newImports.size > 0 || verbatimImports.size > 0 || removeExisting.size > 0;\n }\n}\nfunction createImportSpecifierResolver(importingFile, program, host, preferences) {\n const packageJsonImportFilter = createPackageJsonImportFilter(importingFile, preferences, host);\n const importMap = createExistingImportMap(importingFile, program);\n return { getModuleSpecifierForBestExportInfo };\n function getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, fromCacheOnly) {\n const { fixes, computedWithoutCacheCount } = getImportFixes(\n exportInfo,\n position,\n isValidTypeOnlyUseSite,\n /*useRequire*/\n false,\n program,\n importingFile,\n host,\n preferences,\n importMap,\n fromCacheOnly\n );\n const result = getBestFix(fixes, importingFile, program, packageJsonImportFilter, host, preferences);\n return result && { ...result, computedWithoutCacheCount };\n }\n}\nfunction getImportCompletionAction(targetSymbol, moduleSymbol, exportMapKey, sourceFile, symbolName2, isJsxTagName, host, program, formatContext, position, preferences, cancellationToken) {\n let exportInfos;\n if (exportMapKey) {\n exportInfos = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken).get(sourceFile.path, exportMapKey);\n Debug.assertIsDefined(exportInfos, \"Some exportInfo should match the specified exportMapKey\");\n } else {\n exportInfos = pathIsBareSpecifier(stripQuotes(moduleSymbol.name)) ? [getSingleExportInfoForSymbol(targetSymbol, symbolName2, moduleSymbol, program, host)] : getAllExportInfoForSymbol(sourceFile, targetSymbol, symbolName2, moduleSymbol, isJsxTagName, program, host, preferences, cancellationToken);\n Debug.assertIsDefined(exportInfos, \"Some exportInfo should match the specified symbol / moduleSymbol\");\n }\n const useRequire = shouldUseRequire(sourceFile, program);\n const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(getTokenAtPosition(sourceFile, position));\n const fix = Debug.checkDefined(getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences));\n return {\n moduleSpecifier: fix.moduleSpecifier,\n codeAction: codeFixActionToCodeAction(codeActionForFix(\n { host, formatContext, preferences },\n sourceFile,\n symbolName2,\n fix,\n /*includeSymbolNameInDescription*/\n false,\n program,\n preferences\n ))\n };\n}\nfunction getPromoteTypeOnlyCompletionAction(sourceFile, symbolToken, program, host, formatContext, preferences) {\n const compilerOptions = program.getCompilerOptions();\n const symbolName2 = single(getSymbolNamesToImport(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions));\n const fix = getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program);\n const includeSymbolNameInDescription = symbolName2 !== symbolToken.text;\n return fix && codeFixActionToCodeAction(codeActionForFix(\n { host, formatContext, preferences },\n sourceFile,\n symbolName2,\n fix,\n includeSymbolNameInDescription,\n program,\n preferences\n ));\n}\nfunction getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences) {\n const packageJsonImportFilter = createPackageJsonImportFilter(sourceFile, preferences, host);\n return getBestFix(getImportFixes(exportInfos, position, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes, sourceFile, program, packageJsonImportFilter, host, preferences);\n}\nfunction codeFixActionToCodeAction({ description: description3, changes, commands }) {\n return { description: description3, changes, commands };\n}\nfunction getAllExportInfoForSymbol(importingFile, symbol, symbolName2, moduleSymbol, preferCapitalized, program, host, preferences, cancellationToken) {\n const getChecker = createGetChecker(program, host);\n const isFileExcluded = preferences.autoImportFileExcludePatterns && getIsFileExcluded(host, preferences);\n const mergedModuleSymbol = program.getTypeChecker().getMergedSymbol(moduleSymbol);\n const moduleSourceFile = isFileExcluded && mergedModuleSymbol.declarations && getDeclarationOfKind(mergedModuleSymbol, 308 /* SourceFile */);\n const moduleSymbolExcluded = moduleSourceFile && isFileExcluded(moduleSourceFile);\n return getExportInfoMap(importingFile, host, program, preferences, cancellationToken).search(importingFile.path, preferCapitalized, (name) => name === symbolName2, (info) => {\n const checker = getChecker(info[0].isFromPackageJson);\n if (checker.getMergedSymbol(skipAlias(info[0].symbol, checker)) === symbol && (moduleSymbolExcluded || info.some((i) => checker.getMergedSymbol(i.moduleSymbol) === moduleSymbol || i.symbol.parent === moduleSymbol))) {\n return info;\n }\n });\n}\nfunction getSingleExportInfoForSymbol(symbol, symbolName2, moduleSymbol, program, host) {\n var _a, _b;\n const mainProgramInfo = getInfoWithChecker(\n program.getTypeChecker(),\n /*isFromPackageJson*/\n false\n );\n if (mainProgramInfo) {\n return mainProgramInfo;\n }\n const autoImportProvider = (_b = (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getTypeChecker();\n return Debug.checkDefined(autoImportProvider && getInfoWithChecker(\n autoImportProvider,\n /*isFromPackageJson*/\n true\n ), `Could not find symbol in specified module for code actions`);\n function getInfoWithChecker(checker, isFromPackageJson) {\n const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n if (defaultInfo && skipAlias(defaultInfo.symbol, checker) === symbol) {\n return { symbol: defaultInfo.symbol, moduleSymbol, moduleFileName: void 0, exportKind: defaultInfo.exportKind, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson };\n }\n const named = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol);\n if (named && skipAlias(named, checker) === symbol) {\n return { symbol: named, moduleSymbol, moduleFileName: void 0, exportKind: 0 /* Named */, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson };\n }\n }\n}\nfunction getImportFixes(exportInfos, usagePosition, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences, importMap = isFullSourceFile(sourceFile) ? createExistingImportMap(sourceFile, program) : void 0, fromCacheOnly) {\n const checker = program.getTypeChecker();\n const existingImports = importMap ? flatMap(exportInfos, importMap.getImportsForExportInfo) : emptyArray;\n const useNamespace = usagePosition !== void 0 && tryUseExistingNamespaceImport(existingImports, usagePosition);\n const addToExisting = tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, program.getCompilerOptions());\n if (addToExisting) {\n return {\n computedWithoutCacheCount: 0,\n fixes: [...useNamespace ? [useNamespace] : emptyArray, addToExisting]\n };\n }\n const { fixes, computedWithoutCacheCount = 0 } = getFixesForAddImport(\n exportInfos,\n existingImports,\n program,\n sourceFile,\n usagePosition,\n isValidTypeOnlyUseSite,\n useRequire,\n host,\n preferences,\n fromCacheOnly\n );\n return {\n computedWithoutCacheCount,\n fixes: [...useNamespace ? [useNamespace] : emptyArray, ...fixes]\n };\n}\nfunction tryUseExistingNamespaceImport(existingImports, position) {\n return firstDefined(existingImports, ({ declaration, importKind }) => {\n var _a;\n if (importKind !== 0 /* Named */) return void 0;\n const namespacePrefix = getNamespaceLikeImportText(declaration);\n const moduleSpecifier = namespacePrefix && ((_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text);\n if (moduleSpecifier) {\n return { kind: 0 /* UseNamespace */, namespacePrefix, usagePosition: position, moduleSpecifierKind: void 0, moduleSpecifier };\n }\n });\n}\nfunction getNamespaceLikeImportText(declaration) {\n var _a, _b, _c;\n switch (declaration.kind) {\n case 261 /* VariableDeclaration */:\n return (_a = tryCast(declaration.name, isIdentifier)) == null ? void 0 : _a.text;\n case 272 /* ImportEqualsDeclaration */:\n return declaration.name.text;\n case 352 /* JSDocImportTag */:\n case 273 /* ImportDeclaration */:\n return (_c = tryCast((_b = declaration.importClause) == null ? void 0 : _b.namedBindings, isNamespaceImport)) == null ? void 0 : _c.name.text;\n default:\n return Debug.assertNever(declaration);\n }\n}\nfunction getAddAsTypeOnly(isValidTypeOnlyUseSite, isForNewImportDeclaration, symbol, targetFlags, checker, compilerOptions) {\n if (!isValidTypeOnlyUseSite) {\n return 4 /* NotAllowed */;\n }\n if (symbol && compilerOptions.verbatimModuleSyntax && (!(targetFlags & 111551 /* Value */) || !!checker.getTypeOnlyAliasDeclaration(symbol))) {\n return 2 /* Required */;\n }\n return 1 /* Allowed */;\n}\nfunction tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, compilerOptions) {\n let best;\n for (const existingImport of existingImports) {\n const fix = getAddToExistingImportFix(existingImport);\n if (!fix) continue;\n const isTypeOnly = isTypeOnlyImportDeclaration(fix.importClauseOrBindingPattern);\n if (fix.addAsTypeOnly !== 4 /* NotAllowed */ && isTypeOnly || fix.addAsTypeOnly === 4 /* NotAllowed */ && !isTypeOnly) {\n return fix;\n }\n best ?? (best = fix);\n }\n return best;\n function getAddToExistingImportFix({ declaration, importKind, symbol, targetFlags }) {\n if (importKind === 3 /* CommonJS */ || importKind === 2 /* Namespace */ || declaration.kind === 272 /* ImportEqualsDeclaration */) {\n return void 0;\n }\n if (declaration.kind === 261 /* VariableDeclaration */) {\n return (importKind === 0 /* Named */ || importKind === 1 /* Default */) && declaration.name.kind === 207 /* ObjectBindingPattern */ ? { kind: 2 /* AddToExisting */, importClauseOrBindingPattern: declaration.name, importKind, moduleSpecifierKind: void 0, moduleSpecifier: declaration.initializer.arguments[0].text, addAsTypeOnly: 4 /* NotAllowed */ } : void 0;\n }\n const { importClause } = declaration;\n if (!importClause || !isStringLiteralLike(declaration.moduleSpecifier)) {\n return void 0;\n }\n const { name, namedBindings } = importClause;\n if (importClause.isTypeOnly && !(importKind === 0 /* Named */ && namedBindings)) {\n return void 0;\n }\n const addAsTypeOnly = getAddAsTypeOnly(\n isValidTypeOnlyUseSite,\n /*isForNewImportDeclaration*/\n false,\n symbol,\n targetFlags,\n checker,\n compilerOptions\n );\n if (importKind === 1 /* Default */ && (name || // Cannot add a default import to a declaration that already has one\n addAsTypeOnly === 2 /* Required */ && namedBindings)) {\n return void 0;\n }\n if (importKind === 0 /* Named */ && (namedBindings == null ? void 0 : namedBindings.kind) === 275 /* NamespaceImport */) {\n return void 0;\n }\n return {\n kind: 2 /* AddToExisting */,\n importClauseOrBindingPattern: importClause,\n importKind,\n moduleSpecifierKind: void 0,\n moduleSpecifier: declaration.moduleSpecifier.text,\n addAsTypeOnly\n };\n }\n}\nfunction createExistingImportMap(importingFile, program) {\n const checker = program.getTypeChecker();\n let importMap;\n for (const moduleSpecifier of importingFile.imports) {\n const i = importFromModuleSpecifier(moduleSpecifier);\n if (isVariableDeclarationInitializedToRequire(i.parent)) {\n const moduleSymbol = checker.resolveExternalModuleName(moduleSpecifier);\n if (moduleSymbol) {\n (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i.parent);\n }\n } else if (i.kind === 273 /* ImportDeclaration */ || i.kind === 272 /* ImportEqualsDeclaration */ || i.kind === 352 /* JSDocImportTag */) {\n const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n if (moduleSymbol) {\n (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i);\n }\n }\n }\n return {\n getImportsForExportInfo: ({ moduleSymbol, exportKind, targetFlags, symbol }) => {\n const matchingDeclarations = importMap == null ? void 0 : importMap.get(getSymbolId(moduleSymbol));\n if (!matchingDeclarations) return emptyArray;\n if (isSourceFileJS(importingFile) && !(targetFlags & 111551 /* Value */) && !every(matchingDeclarations, isJSDocImportTag)) return emptyArray;\n const importKind = getImportKind(importingFile, exportKind, program);\n return matchingDeclarations.map((declaration) => ({ declaration, importKind, symbol, targetFlags }));\n }\n };\n}\nfunction shouldUseRequire(sourceFile, program) {\n if (!hasJSFileExtension(sourceFile.fileName)) {\n return false;\n }\n if (sourceFile.commonJsModuleIndicator && !sourceFile.externalModuleIndicator) return true;\n if (sourceFile.externalModuleIndicator && !sourceFile.commonJsModuleIndicator) return false;\n const compilerOptions = program.getCompilerOptions();\n if (compilerOptions.configFile) {\n return getEmitModuleKind(compilerOptions) < 5 /* ES2015 */;\n }\n if (getImpliedNodeFormatForEmit(sourceFile, program) === 1 /* CommonJS */) return true;\n if (getImpliedNodeFormatForEmit(sourceFile, program) === 99 /* ESNext */) return false;\n for (const otherFile of program.getSourceFiles()) {\n if (otherFile === sourceFile || !isSourceFileJS(otherFile) || program.isSourceFileFromExternalLibrary(otherFile)) continue;\n if (otherFile.commonJsModuleIndicator && !otherFile.externalModuleIndicator) return true;\n if (otherFile.externalModuleIndicator && !otherFile.commonJsModuleIndicator) return false;\n }\n return true;\n}\nfunction createGetChecker(program, host) {\n return memoizeOne((isFromPackageJson) => isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker());\n}\nfunction getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfo, host, preferences, fromCacheOnly) {\n const isJs = hasJSFileExtension(sourceFile.fileName);\n const compilerOptions = program.getCompilerOptions();\n const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n const getChecker = createGetChecker(program, host);\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n const rejectNodeModulesRelativePaths = moduleResolutionUsesNodeModules(moduleResolution);\n const getModuleSpecifiers2 = fromCacheOnly ? (exportInfo2) => ts_moduleSpecifiers_exports.tryGetModuleSpecifiersFromCache(exportInfo2.moduleSymbol, sourceFile, moduleSpecifierResolutionHost, preferences) : (exportInfo2, checker) => ts_moduleSpecifiers_exports.getModuleSpecifiersWithCacheInfo(\n exportInfo2.moduleSymbol,\n checker,\n compilerOptions,\n sourceFile,\n moduleSpecifierResolutionHost,\n preferences,\n /*options*/\n void 0,\n /*forAutoImport*/\n true\n );\n let computedWithoutCacheCount = 0;\n const fixes = flatMap(exportInfo, (exportInfo2, i) => {\n const checker = getChecker(exportInfo2.isFromPackageJson);\n const { computedWithoutCache, moduleSpecifiers, kind: moduleSpecifierKind } = getModuleSpecifiers2(exportInfo2, checker) ?? {};\n const importedSymbolHasValueMeaning = !!(exportInfo2.targetFlags & 111551 /* Value */);\n const addAsTypeOnly = getAddAsTypeOnly(\n isValidTypeOnlyUseSite,\n /*isForNewImportDeclaration*/\n true,\n exportInfo2.symbol,\n exportInfo2.targetFlags,\n checker,\n compilerOptions\n );\n computedWithoutCacheCount += computedWithoutCache ? 1 : 0;\n return mapDefined(moduleSpecifiers, (moduleSpecifier) => {\n if (rejectNodeModulesRelativePaths && pathContainsNodeModules(moduleSpecifier)) {\n return void 0;\n }\n if (!importedSymbolHasValueMeaning && isJs && usagePosition !== void 0) {\n return { kind: 1 /* JsdocTypeImport */, moduleSpecifierKind, moduleSpecifier, usagePosition, exportInfo: exportInfo2, isReExport: i > 0 };\n }\n const importKind = getImportKind(sourceFile, exportInfo2.exportKind, program);\n let qualification;\n if (usagePosition !== void 0 && importKind === 3 /* CommonJS */ && exportInfo2.exportKind === 0 /* Named */) {\n const exportEquals = checker.resolveExternalModuleSymbol(exportInfo2.moduleSymbol);\n let namespacePrefix;\n if (exportEquals !== exportInfo2.moduleSymbol) {\n namespacePrefix = forEachNameOfDefaultExport(exportEquals, checker, getEmitScriptTarget(compilerOptions), identity);\n }\n namespacePrefix || (namespacePrefix = moduleSymbolToValidIdentifier(\n exportInfo2.moduleSymbol,\n getEmitScriptTarget(compilerOptions),\n /*forceCapitalize*/\n false\n ));\n qualification = { namespacePrefix, usagePosition };\n }\n return {\n kind: 3 /* AddNew */,\n moduleSpecifierKind,\n moduleSpecifier,\n importKind,\n useRequire,\n addAsTypeOnly,\n exportInfo: exportInfo2,\n isReExport: i > 0,\n qualification\n };\n });\n });\n return { computedWithoutCacheCount, fixes };\n}\nfunction getFixesForAddImport(exportInfos, existingImports, program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, host, preferences, fromCacheOnly) {\n const existingDeclaration = firstDefined(existingImports, (info) => newImportInfoFromExistingSpecifier(info, isValidTypeOnlyUseSite, useRequire, program.getTypeChecker(), program.getCompilerOptions()));\n return existingDeclaration ? { fixes: [existingDeclaration] } : getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfos, host, preferences, fromCacheOnly);\n}\nfunction newImportInfoFromExistingSpecifier({ declaration, importKind, symbol, targetFlags }, isValidTypeOnlyUseSite, useRequire, checker, compilerOptions) {\n var _a;\n const moduleSpecifier = (_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text;\n if (moduleSpecifier) {\n const addAsTypeOnly = useRequire ? 4 /* NotAllowed */ : getAddAsTypeOnly(\n isValidTypeOnlyUseSite,\n /*isForNewImportDeclaration*/\n true,\n symbol,\n targetFlags,\n checker,\n compilerOptions\n );\n return { kind: 3 /* AddNew */, moduleSpecifierKind: void 0, moduleSpecifier, importKind, addAsTypeOnly, useRequire };\n }\n}\nfunction getFixInfos(context, errorCode, pos, useAutoImportProvider) {\n const symbolToken = getTokenAtPosition(context.sourceFile, pos);\n let info;\n if (errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code) {\n info = getFixesInfoForUMDImport(context, symbolToken);\n } else if (!isIdentifier(symbolToken)) {\n return void 0;\n } else if (errorCode === Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) {\n const symbolName2 = single(getSymbolNamesToImport(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions()));\n const fix = getTypeOnlyPromotionFix(context.sourceFile, symbolToken, symbolName2, context.program);\n return fix && [{ fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text }];\n } else {\n info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider);\n }\n const packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host);\n return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host, context.preferences);\n}\nfunction sortFixInfo(fixes, sourceFile, program, packageJsonImportFilter, host, preferences) {\n const _toPath = (fileName) => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n return toSorted(fixes, (a, b) => compareBooleans(!!a.isJsxNamespaceFix, !!b.isJsxNamespaceFix) || compareValues(a.fix.kind, b.fix.kind) || compareModuleSpecifiers(a.fix, b.fix, sourceFile, program, preferences, packageJsonImportFilter.allowsImportingSpecifier, _toPath));\n}\nfunction getFixInfosWithoutDiagnostic(context, symbolToken, useAutoImportProvider) {\n const info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider);\n const packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host);\n return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host, context.preferences);\n}\nfunction getBestFix(fixes, sourceFile, program, packageJsonImportFilter, host, preferences) {\n if (!some(fixes)) return;\n if (fixes[0].kind === 0 /* UseNamespace */ || fixes[0].kind === 2 /* AddToExisting */) {\n return fixes[0];\n }\n return fixes.reduce(\n (best, fix) => (\n // Takes true branch of conditional if `fix` is better than `best`\n compareModuleSpecifiers(\n fix,\n best,\n sourceFile,\n program,\n preferences,\n packageJsonImportFilter.allowsImportingSpecifier,\n (fileName) => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host))\n ) === -1 /* LessThan */ ? fix : best\n )\n );\n}\nfunction compareModuleSpecifiers(a, b, importingFile, program, preferences, allowsImportingSpecifier, toPath3) {\n if (a.kind !== 0 /* UseNamespace */ && b.kind !== 0 /* UseNamespace */) {\n return compareBooleans(\n b.moduleSpecifierKind !== \"node_modules\" || allowsImportingSpecifier(b.moduleSpecifier),\n a.moduleSpecifierKind !== \"node_modules\" || allowsImportingSpecifier(a.moduleSpecifier)\n ) || compareModuleSpecifierRelativity(a, b, preferences) || compareNodeCoreModuleSpecifiers(a.moduleSpecifier, b.moduleSpecifier, importingFile, program) || compareBooleans(\n isFixPossiblyReExportingImportingFile(a, importingFile.path, toPath3),\n isFixPossiblyReExportingImportingFile(b, importingFile.path, toPath3)\n ) || compareNumberOfDirectorySeparators(a.moduleSpecifier, b.moduleSpecifier);\n }\n return 0 /* EqualTo */;\n}\nfunction compareModuleSpecifierRelativity(a, b, preferences) {\n if (preferences.importModuleSpecifierPreference === \"non-relative\" || preferences.importModuleSpecifierPreference === \"project-relative\") {\n return compareBooleans(a.moduleSpecifierKind === \"relative\", b.moduleSpecifierKind === \"relative\");\n }\n return 0 /* EqualTo */;\n}\nfunction isFixPossiblyReExportingImportingFile(fix, importingFilePath, toPath3) {\n var _a;\n if (fix.isReExport && ((_a = fix.exportInfo) == null ? void 0 : _a.moduleFileName) && isIndexFileName(fix.exportInfo.moduleFileName)) {\n const reExportDir = toPath3(getDirectoryPath(fix.exportInfo.moduleFileName));\n return startsWith(importingFilePath, reExportDir);\n }\n return false;\n}\nfunction isIndexFileName(fileName) {\n return getBaseFileName(\n fileName,\n [\".js\", \".jsx\", \".d.ts\", \".ts\", \".tsx\"],\n /*ignoreCase*/\n true\n ) === \"index\";\n}\nfunction compareNodeCoreModuleSpecifiers(a, b, importingFile, program) {\n if (startsWith(a, \"node:\") && !startsWith(b, \"node:\")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? -1 /* LessThan */ : 1 /* GreaterThan */;\n if (startsWith(b, \"node:\") && !startsWith(a, \"node:\")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? 1 /* GreaterThan */ : -1 /* LessThan */;\n return 0 /* EqualTo */;\n}\nfunction getFixesInfoForUMDImport({ sourceFile, program, host, preferences }, token) {\n const checker = program.getTypeChecker();\n const umdSymbol = getUmdSymbol(token, checker);\n if (!umdSymbol) return void 0;\n const symbol = checker.getAliasedSymbol(umdSymbol);\n const symbolName2 = umdSymbol.name;\n const exportInfo = [{ symbol: umdSymbol, moduleSymbol: symbol, moduleFileName: void 0, exportKind: 3 /* UMD */, targetFlags: symbol.flags, isFromPackageJson: false }];\n const useRequire = shouldUseRequire(sourceFile, program);\n const fixes = getImportFixes(\n exportInfo,\n /*usagePosition*/\n void 0,\n /*isValidTypeOnlyUseSite*/\n false,\n useRequire,\n program,\n sourceFile,\n host,\n preferences\n ).fixes;\n return fixes.map((fix) => {\n var _a;\n return { fix, symbolName: symbolName2, errorIdentifierText: (_a = tryCast(token, isIdentifier)) == null ? void 0 : _a.text };\n });\n}\nfunction getUmdSymbol(token, checker) {\n const umdSymbol = isIdentifier(token) ? checker.getSymbolAtLocation(token) : void 0;\n if (isUMDExportSymbol(umdSymbol)) return umdSymbol;\n const { parent: parent2 } = token;\n if (isJsxOpeningLikeElement(parent2) && parent2.tagName === token || isJsxOpeningFragment(parent2)) {\n const parentSymbol = checker.resolveName(\n checker.getJsxNamespace(parent2),\n isJsxOpeningLikeElement(parent2) ? token : parent2,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n if (isUMDExportSymbol(parentSymbol)) {\n return parentSymbol;\n }\n }\n return void 0;\n}\nfunction getImportKind(importingFile, exportKind, program, forceImportKeyword) {\n if (program.getCompilerOptions().verbatimModuleSyntax && getEmitModuleFormatOfFile(importingFile, program) === 1 /* CommonJS */) {\n return 3 /* CommonJS */;\n }\n switch (exportKind) {\n case 0 /* Named */:\n return 0 /* Named */;\n case 1 /* Default */:\n return 1 /* Default */;\n case 2 /* ExportEquals */:\n return getExportEqualsImportKind(importingFile, program.getCompilerOptions(), !!forceImportKeyword);\n case 3 /* UMD */:\n return getUmdImportKind(importingFile, program, !!forceImportKeyword);\n case 4 /* Module */:\n return 2 /* Namespace */;\n default:\n return Debug.assertNever(exportKind);\n }\n}\nfunction getUmdImportKind(importingFile, program, forceImportKeyword) {\n if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {\n return 1 /* Default */;\n }\n const moduleKind = getEmitModuleKind(program.getCompilerOptions());\n switch (moduleKind) {\n case 2 /* AMD */:\n case 1 /* CommonJS */:\n case 3 /* UMD */:\n if (hasJSFileExtension(importingFile.fileName)) {\n return importingFile.externalModuleIndicator || forceImportKeyword ? 2 /* Namespace */ : 3 /* CommonJS */;\n }\n return 3 /* CommonJS */;\n case 4 /* System */:\n case 5 /* ES2015 */:\n case 6 /* ES2020 */:\n case 7 /* ES2022 */:\n case 99 /* ESNext */:\n case 0 /* None */:\n case 200 /* Preserve */:\n return 2 /* Namespace */;\n case 100 /* Node16 */:\n case 101 /* Node18 */:\n case 102 /* Node20 */:\n case 199 /* NodeNext */:\n return getImpliedNodeFormatForEmit(importingFile, program) === 99 /* ESNext */ ? 2 /* Namespace */ : 3 /* CommonJS */;\n default:\n return Debug.assertNever(moduleKind, `Unexpected moduleKind ${moduleKind}`);\n }\n}\nfunction getFixesInfoForNonUMDImport({ sourceFile, program, cancellationToken, host, preferences }, symbolToken, useAutoImportProvider) {\n const checker = program.getTypeChecker();\n const compilerOptions = program.getCompilerOptions();\n return flatMap(getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions), (symbolName2) => {\n if (symbolName2 === \"default\" /* Default */) {\n return void 0;\n }\n const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(symbolToken);\n const useRequire = shouldUseRequire(sourceFile, program);\n const exportInfo = getExportInfos(symbolName2, isJSXTagName(symbolToken), getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences);\n return arrayFrom(\n flatMapIterator(exportInfo.values(), (exportInfos) => getImportFixes(exportInfos, symbolToken.getStart(sourceFile), isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes),\n (fix) => ({ fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text, isJsxNamespaceFix: symbolName2 !== symbolToken.text })\n );\n });\n}\nfunction getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program) {\n const checker = program.getTypeChecker();\n const symbol = checker.resolveName(\n symbolName2,\n symbolToken,\n 111551 /* Value */,\n /*excludeGlobals*/\n true\n );\n if (!symbol) return void 0;\n const typeOnlyAliasDeclaration = checker.getTypeOnlyAliasDeclaration(symbol);\n if (!typeOnlyAliasDeclaration || getSourceFileOfNode(typeOnlyAliasDeclaration) !== sourceFile) return void 0;\n return { kind: 4 /* PromoteTypeOnly */, typeOnlyAliasDeclaration };\n}\nfunction getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions) {\n const parent2 = symbolToken.parent;\n if ((isJsxOpeningLikeElement(parent2) || isJsxClosingElement(parent2)) && parent2.tagName === symbolToken && jsxModeNeedsExplicitImport(compilerOptions.jsx)) {\n const jsxNamespace = checker.getJsxNamespace(sourceFile);\n if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) {\n const needsComponentNameFix = !isIntrinsicJsxName(symbolToken.text) && !checker.resolveName(\n symbolToken.text,\n symbolToken,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n return needsComponentNameFix ? [symbolToken.text, jsxNamespace] : [jsxNamespace];\n }\n }\n return [symbolToken.text];\n}\nfunction needsJsxNamespaceFix(jsxNamespace, symbolToken, checker) {\n if (isIntrinsicJsxName(symbolToken.text)) return true;\n const namespaceSymbol = checker.resolveName(\n jsxNamespace,\n symbolToken,\n 111551 /* Value */,\n /*excludeGlobals*/\n true\n );\n return !namespaceSymbol || some(namespaceSymbol.declarations, isTypeOnlyImportOrExportDeclaration) && !(namespaceSymbol.flags & 111551 /* Value */);\n}\nfunction getExportInfos(symbolName2, isJsxTagName, currentTokenMeaning, cancellationToken, fromFile, program, useAutoImportProvider, host, preferences) {\n var _a;\n const originalSymbolToExportInfos = createMultiMap();\n const packageJsonFilter = createPackageJsonImportFilter(fromFile, preferences, host);\n const moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson) => {\n return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host);\n });\n function addSymbol(moduleSymbol, toFile, exportedSymbol, exportKind, program2, isFromPackageJson) {\n const moduleSpecifierResolutionHost = getModuleSpecifierResolutionHost(isFromPackageJson);\n if (isImportable(program2, fromFile, toFile, moduleSymbol, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache)) {\n const checker = program2.getTypeChecker();\n originalSymbolToExportInfos.add(getUniqueSymbolId(exportedSymbol, checker).toString(), { symbol: exportedSymbol, moduleSymbol, moduleFileName: toFile == null ? void 0 : toFile.fileName, exportKind, targetFlags: skipAlias(exportedSymbol, checker).flags, isFromPackageJson });\n }\n }\n forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, (moduleSymbol, sourceFile, program2, isFromPackageJson) => {\n const checker = program2.getTypeChecker();\n cancellationToken.throwIfCancellationRequested();\n const compilerOptions = program2.getCompilerOptions();\n const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n if (defaultInfo && symbolFlagsHaveMeaning(checker.getSymbolFlags(defaultInfo.symbol), currentTokenMeaning) && forEachNameOfDefaultExport(defaultInfo.symbol, checker, getEmitScriptTarget(compilerOptions), (name, capitalizedName) => (isJsxTagName ? capitalizedName ?? name : name) === symbolName2)) {\n addSymbol(moduleSymbol, sourceFile, defaultInfo.symbol, defaultInfo.exportKind, program2, isFromPackageJson);\n }\n const exportSymbolWithIdenticalName = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol);\n if (exportSymbolWithIdenticalName && symbolFlagsHaveMeaning(checker.getSymbolFlags(exportSymbolWithIdenticalName), currentTokenMeaning)) {\n addSymbol(moduleSymbol, sourceFile, exportSymbolWithIdenticalName, 0 /* Named */, program2, isFromPackageJson);\n }\n });\n return originalSymbolToExportInfos;\n}\nfunction getExportEqualsImportKind(importingFile, compilerOptions, forceImportKeyword) {\n const allowSyntheticDefaults = getAllowSyntheticDefaultImports(compilerOptions);\n const isJS = hasJSFileExtension(importingFile.fileName);\n if (!isJS && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */) {\n return allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */;\n }\n if (isJS) {\n return importingFile.externalModuleIndicator || forceImportKeyword ? allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */ : 3 /* CommonJS */;\n }\n for (const statement of importingFile.statements ?? emptyArray) {\n if (isImportEqualsDeclaration(statement) && !nodeIsMissing(statement.moduleReference)) {\n return 3 /* CommonJS */;\n }\n }\n return allowSyntheticDefaults ? 1 /* Default */ : 3 /* CommonJS */;\n}\nfunction codeActionForFix(context, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences) {\n let diag2;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n diag2 = codeActionForFixWorker(tracker, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences);\n });\n return createCodeFixAction(importFixName, changes, diag2, importFixId, Diagnostics.Add_all_missing_imports);\n}\nfunction codeActionForFixWorker(changes, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences) {\n const quotePreference = getQuotePreference(sourceFile, preferences);\n switch (fix.kind) {\n case 0 /* UseNamespace */:\n addNamespaceQualifier(changes, sourceFile, fix);\n return [Diagnostics.Change_0_to_1, symbolName2, `${fix.namespacePrefix}.${symbolName2}`];\n case 1 /* JsdocTypeImport */:\n addImportType(changes, sourceFile, fix, quotePreference);\n return [Diagnostics.Change_0_to_1, symbolName2, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName2];\n case 2 /* AddToExisting */: {\n const { importClauseOrBindingPattern, importKind, addAsTypeOnly, moduleSpecifier } = fix;\n doAddExistingFix(\n changes,\n sourceFile,\n importClauseOrBindingPattern,\n importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly } : void 0,\n importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly }] : emptyArray,\n /*removeExistingImportSpecifiers*/\n void 0,\n preferences\n );\n const moduleSpecifierWithoutQuotes = stripQuotes(moduleSpecifier);\n return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifierWithoutQuotes] : [Diagnostics.Update_import_from_0, moduleSpecifierWithoutQuotes];\n }\n case 3 /* AddNew */: {\n const { importKind, moduleSpecifier, addAsTypeOnly, useRequire, qualification } = fix;\n const getDeclarations = useRequire ? getNewRequires : getNewImports;\n const defaultImport = importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly } : void 0;\n const namedImports = importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly }] : void 0;\n const namespaceLikeImport = importKind === 2 /* Namespace */ || importKind === 3 /* CommonJS */ ? { importKind, name: (qualification == null ? void 0 : qualification.namespacePrefix) || symbolName2, addAsTypeOnly } : void 0;\n insertImports(\n changes,\n sourceFile,\n getDeclarations(\n moduleSpecifier,\n quotePreference,\n defaultImport,\n namedImports,\n namespaceLikeImport,\n program.getCompilerOptions(),\n preferences\n ),\n /*blankLineBetween*/\n true,\n preferences\n );\n if (qualification) {\n addNamespaceQualifier(changes, sourceFile, qualification);\n }\n return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifier] : [Diagnostics.Add_import_from_0, moduleSpecifier];\n }\n case 4 /* PromoteTypeOnly */: {\n const { typeOnlyAliasDeclaration } = fix;\n const promotedDeclaration = promoteFromTypeOnly(changes, typeOnlyAliasDeclaration, program, sourceFile, preferences);\n return promotedDeclaration.kind === 277 /* ImportSpecifier */ ? [Diagnostics.Remove_type_from_import_of_0_from_1, symbolName2, getModuleSpecifierText(promotedDeclaration.parent.parent)] : [Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)];\n }\n default:\n return Debug.assertNever(fix, `Unexpected fix kind ${fix.kind}`);\n }\n}\nfunction getModuleSpecifierText(promotedDeclaration) {\n var _a, _b;\n return promotedDeclaration.kind === 272 /* ImportEqualsDeclaration */ ? ((_b = tryCast((_a = tryCast(promotedDeclaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression, isStringLiteralLike)) == null ? void 0 : _b.text) || promotedDeclaration.moduleReference.getText() : cast(promotedDeclaration.parent.moduleSpecifier, isStringLiteral).text;\n}\nfunction promoteFromTypeOnly(changes, aliasDeclaration, program, sourceFile, preferences) {\n const compilerOptions = program.getCompilerOptions();\n const convertExistingToTypeOnly = compilerOptions.verbatimModuleSyntax;\n switch (aliasDeclaration.kind) {\n case 277 /* ImportSpecifier */:\n if (aliasDeclaration.isTypeOnly) {\n if (aliasDeclaration.parent.elements.length > 1) {\n const newSpecifier = factory.updateImportSpecifier(\n aliasDeclaration,\n /*isTypeOnly*/\n false,\n aliasDeclaration.propertyName,\n aliasDeclaration.name\n );\n const { specifierComparer } = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(aliasDeclaration.parent.parent.parent, preferences, sourceFile);\n const insertionIndex = ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(aliasDeclaration.parent.elements, newSpecifier, specifierComparer);\n if (insertionIndex !== aliasDeclaration.parent.elements.indexOf(aliasDeclaration)) {\n changes.delete(sourceFile, aliasDeclaration);\n changes.insertImportSpecifierAtIndex(sourceFile, newSpecifier, aliasDeclaration.parent, insertionIndex);\n return aliasDeclaration;\n }\n }\n changes.deleteRange(sourceFile, { pos: getTokenPosOfNode(aliasDeclaration.getFirstToken()), end: getTokenPosOfNode(aliasDeclaration.propertyName ?? aliasDeclaration.name) });\n return aliasDeclaration;\n } else {\n Debug.assert(aliasDeclaration.parent.parent.isTypeOnly);\n promoteImportClause(aliasDeclaration.parent.parent);\n return aliasDeclaration.parent.parent;\n }\n case 274 /* ImportClause */:\n promoteImportClause(aliasDeclaration);\n return aliasDeclaration;\n case 275 /* NamespaceImport */:\n promoteImportClause(aliasDeclaration.parent);\n return aliasDeclaration.parent;\n case 272 /* ImportEqualsDeclaration */:\n changes.deleteRange(sourceFile, aliasDeclaration.getChildAt(1));\n return aliasDeclaration;\n default:\n Debug.failBadSyntaxKind(aliasDeclaration);\n }\n function promoteImportClause(importClause) {\n var _a;\n changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(importClause, sourceFile));\n if (!compilerOptions.allowImportingTsExtensions) {\n const moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importClause.parent);\n const resolvedModule = moduleSpecifier && ((_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule);\n if (resolvedModule == null ? void 0 : resolvedModule.resolvedUsingTsExtension) {\n const changedExtension = changeAnyExtension(moduleSpecifier.text, getOutputExtension(moduleSpecifier.text, compilerOptions));\n changes.replaceNode(sourceFile, moduleSpecifier, factory.createStringLiteral(changedExtension));\n }\n }\n if (convertExistingToTypeOnly) {\n const namedImports = tryCast(importClause.namedBindings, isNamedImports);\n if (namedImports && namedImports.elements.length > 1) {\n const sortState = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(importClause.parent, preferences, sourceFile);\n if (sortState.isSorted !== false && aliasDeclaration.kind === 277 /* ImportSpecifier */ && namedImports.elements.indexOf(aliasDeclaration) !== 0) {\n changes.delete(sourceFile, aliasDeclaration);\n changes.insertImportSpecifierAtIndex(sourceFile, aliasDeclaration, namedImports, 0);\n }\n for (const element of namedImports.elements) {\n if (element !== aliasDeclaration && !element.isTypeOnly) {\n changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, element);\n }\n }\n }\n }\n }\n}\nfunction doAddExistingFix(changes, sourceFile, clause, defaultImport, namedImports, removeExistingImportSpecifiers, preferences) {\n var _a;\n if (clause.kind === 207 /* ObjectBindingPattern */) {\n if (removeExistingImportSpecifiers && clause.elements.some((e) => removeExistingImportSpecifiers.has(e))) {\n changes.replaceNode(\n sourceFile,\n clause,\n factory.createObjectBindingPattern([\n ...clause.elements.filter((e) => !removeExistingImportSpecifiers.has(e)),\n ...defaultImport ? [factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n /*propertyName*/\n \"default\",\n defaultImport.name\n )] : emptyArray,\n ...namedImports.map((i) => factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n i.propertyName,\n i.name\n ))\n ])\n );\n return;\n }\n if (defaultImport) {\n addElementToBindingPattern(clause, defaultImport.name, \"default\");\n }\n for (const specifier of namedImports) {\n addElementToBindingPattern(clause, specifier.name, specifier.propertyName);\n }\n return;\n }\n const promoteFromTypeOnly2 = clause.isTypeOnly && some([defaultImport, ...namedImports], (i) => (i == null ? void 0 : i.addAsTypeOnly) === 4 /* NotAllowed */);\n const existingSpecifiers = clause.namedBindings && ((_a = tryCast(clause.namedBindings, isNamedImports)) == null ? void 0 : _a.elements);\n if (defaultImport) {\n Debug.assert(!clause.name, \"Cannot add a default import to an import clause that already has one\");\n changes.insertNodeAt(sourceFile, clause.getStart(sourceFile), factory.createIdentifier(defaultImport.name), { suffix: \", \" });\n }\n if (namedImports.length) {\n const { specifierComparer, isSorted } = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(clause.parent, preferences, sourceFile);\n const newSpecifiers = toSorted(\n namedImports.map(\n (namedImport) => factory.createImportSpecifier(\n (!clause.isTypeOnly || promoteFromTypeOnly2) && shouldUseTypeOnly(namedImport, preferences),\n namedImport.propertyName === void 0 ? void 0 : factory.createIdentifier(namedImport.propertyName),\n factory.createIdentifier(namedImport.name)\n )\n ),\n specifierComparer\n );\n if (removeExistingImportSpecifiers) {\n changes.replaceNode(\n sourceFile,\n clause.namedBindings,\n factory.updateNamedImports(\n clause.namedBindings,\n toSorted([...existingSpecifiers.filter((s) => !removeExistingImportSpecifiers.has(s)), ...newSpecifiers], specifierComparer)\n )\n );\n } else if ((existingSpecifiers == null ? void 0 : existingSpecifiers.length) && isSorted !== false) {\n const transformedExistingSpecifiers = promoteFromTypeOnly2 && existingSpecifiers ? factory.updateNamedImports(\n clause.namedBindings,\n sameMap(existingSpecifiers, (e) => factory.updateImportSpecifier(\n e,\n /*isTypeOnly*/\n true,\n e.propertyName,\n e.name\n ))\n ).elements : existingSpecifiers;\n for (const spec of newSpecifiers) {\n const insertionIndex = ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(transformedExistingSpecifiers, spec, specifierComparer);\n changes.insertImportSpecifierAtIndex(sourceFile, spec, clause.namedBindings, insertionIndex);\n }\n } else if (existingSpecifiers == null ? void 0 : existingSpecifiers.length) {\n for (const spec of newSpecifiers) {\n changes.insertNodeInListAfter(sourceFile, last(existingSpecifiers), spec, existingSpecifiers);\n }\n } else {\n if (newSpecifiers.length) {\n const namedImports2 = factory.createNamedImports(newSpecifiers);\n if (clause.namedBindings) {\n changes.replaceNode(sourceFile, clause.namedBindings, namedImports2);\n } else {\n changes.insertNodeAfter(sourceFile, Debug.checkDefined(clause.name, \"Import clause must have either named imports or a default import\"), namedImports2);\n }\n }\n }\n }\n if (promoteFromTypeOnly2) {\n changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(clause, sourceFile));\n if (existingSpecifiers) {\n for (const specifier of existingSpecifiers) {\n changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, specifier);\n }\n }\n }\n function addElementToBindingPattern(bindingPattern, name, propertyName) {\n const element = factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n propertyName,\n name\n );\n if (bindingPattern.elements.length) {\n changes.insertNodeInListAfter(sourceFile, last(bindingPattern.elements), element);\n } else {\n changes.replaceNode(sourceFile, bindingPattern, factory.createObjectBindingPattern([element]));\n }\n }\n}\nfunction addNamespaceQualifier(changes, sourceFile, { namespacePrefix, usagePosition }) {\n changes.insertText(sourceFile, usagePosition, namespacePrefix + \".\");\n}\nfunction addImportType(changes, sourceFile, { moduleSpecifier, usagePosition: position }, quotePreference) {\n changes.insertText(sourceFile, position, getImportTypePrefix(moduleSpecifier, quotePreference));\n}\nfunction getImportTypePrefix(moduleSpecifier, quotePreference) {\n const quote2 = getQuoteFromPreference(quotePreference);\n return `import(${quote2}${moduleSpecifier}${quote2}).`;\n}\nfunction needsTypeOnly({ addAsTypeOnly }) {\n return addAsTypeOnly === 2 /* Required */;\n}\nfunction shouldUseTypeOnly(info, preferences) {\n return needsTypeOnly(info) || !!preferences.preferTypeOnlyAutoImports && info.addAsTypeOnly !== 4 /* NotAllowed */;\n}\nfunction getNewImports(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport, compilerOptions, preferences) {\n const quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference);\n let statements;\n if (defaultImport !== void 0 || (namedImports == null ? void 0 : namedImports.length)) {\n const topLevelTypeOnly = (!defaultImport || needsTypeOnly(defaultImport)) && every(namedImports, needsTypeOnly) || (compilerOptions.verbatimModuleSyntax || preferences.preferTypeOnlyAutoImports) && (defaultImport == null ? void 0 : defaultImport.addAsTypeOnly) !== 4 /* NotAllowed */ && !some(namedImports, (i) => i.addAsTypeOnly === 4 /* NotAllowed */);\n statements = combine(\n statements,\n makeImport(\n defaultImport && factory.createIdentifier(defaultImport.name),\n namedImports == null ? void 0 : namedImports.map(\n (namedImport) => factory.createImportSpecifier(\n !topLevelTypeOnly && shouldUseTypeOnly(namedImport, preferences),\n namedImport.propertyName === void 0 ? void 0 : factory.createIdentifier(namedImport.propertyName),\n factory.createIdentifier(namedImport.name)\n )\n ),\n moduleSpecifier,\n quotePreference,\n topLevelTypeOnly\n )\n );\n }\n if (namespaceLikeImport) {\n const declaration = namespaceLikeImport.importKind === 3 /* CommonJS */ ? factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n shouldUseTypeOnly(namespaceLikeImport, preferences),\n factory.createIdentifier(namespaceLikeImport.name),\n factory.createExternalModuleReference(quotedModuleSpecifier)\n ) : factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n shouldUseTypeOnly(namespaceLikeImport, preferences) ? 156 /* TypeKeyword */ : void 0,\n /*name*/\n void 0,\n factory.createNamespaceImport(factory.createIdentifier(namespaceLikeImport.name))\n ),\n quotedModuleSpecifier,\n /*attributes*/\n void 0\n );\n statements = combine(statements, declaration);\n }\n return Debug.checkDefined(statements);\n}\nfunction getNewRequires(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport) {\n const quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference);\n let statements;\n if (defaultImport || (namedImports == null ? void 0 : namedImports.length)) {\n const bindingElements = (namedImports == null ? void 0 : namedImports.map(({ name, propertyName }) => factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n propertyName,\n name\n ))) || [];\n if (defaultImport) {\n bindingElements.unshift(factory.createBindingElement(\n /*dotDotDotToken*/\n void 0,\n \"default\",\n defaultImport.name\n ));\n }\n const declaration = createConstEqualsRequireDeclaration(factory.createObjectBindingPattern(bindingElements), quotedModuleSpecifier);\n statements = combine(statements, declaration);\n }\n if (namespaceLikeImport) {\n const declaration = createConstEqualsRequireDeclaration(namespaceLikeImport.name, quotedModuleSpecifier);\n statements = combine(statements, declaration);\n }\n return Debug.checkDefined(statements);\n}\nfunction createConstEqualsRequireDeclaration(name, quotedModuleSpecifier) {\n return factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n typeof name === \"string\" ? factory.createIdentifier(name) : name,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n factory.createCallExpression(\n factory.createIdentifier(\"require\"),\n /*typeArguments*/\n void 0,\n [quotedModuleSpecifier]\n )\n )\n ], 2 /* Const */)\n );\n}\nfunction symbolFlagsHaveMeaning(flags, meaning) {\n return meaning === 7 /* All */ ? true : meaning & 1 /* Value */ ? !!(flags & 111551 /* Value */) : meaning & 2 /* Type */ ? !!(flags & 788968 /* Type */) : meaning & 4 /* Namespace */ ? !!(flags & 1920 /* Namespace */) : false;\n}\nfunction getImpliedNodeFormatForEmit(file, program) {\n return isFullSourceFile(file) ? program.getImpliedNodeFormatForEmit(file) : getImpliedNodeFormatForEmitWorker(file, program.getCompilerOptions());\n}\nfunction getEmitModuleFormatOfFile(file, program) {\n return isFullSourceFile(file) ? program.getEmitModuleFormatOfFile(file) : getEmitModuleFormatOfFileWorker(file, program.getCompilerOptions());\n}\n\n// src/services/codefixes/fixAddMissingConstraint.ts\nvar fixId18 = \"addMissingConstraint\";\nvar errorCodes20 = [\n // We want errors this could be attached to:\n // Diagnostics.This_type_parameter_probably_needs_an_extends_0_constraint\n Diagnostics.Type_0_is_not_comparable_to_type_1.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n Diagnostics.Property_0_is_incompatible_with_index_signature.code,\n Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,\n Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code\n];\nregisterCodeFix({\n errorCodes: errorCodes20,\n getCodeActions(context) {\n const { sourceFile, span, program, preferences, host } = context;\n const info = getInfo6(program, sourceFile, span);\n if (info === void 0) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingConstraint(t, program, preferences, host, sourceFile, info));\n return [createCodeFixAction(fixId18, changes, Diagnostics.Add_extends_constraint, fixId18, Diagnostics.Add_extends_constraint_to_all_type_parameters)];\n },\n fixIds: [fixId18],\n getAllCodeActions: (context) => {\n const { program, preferences, host } = context;\n const seen = /* @__PURE__ */ new Set();\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n eachDiagnostic(context, errorCodes20, (diag2) => {\n const info = getInfo6(program, diag2.file, createTextSpan(diag2.start, diag2.length));\n if (info) {\n if (addToSeen(seen, getNodeId(info.declaration))) {\n return addMissingConstraint(changes, program, preferences, host, diag2.file, info);\n }\n }\n return void 0;\n });\n }));\n }\n});\nfunction getInfo6(program, sourceFile, span) {\n const diag2 = find(program.getSemanticDiagnostics(sourceFile), (diag3) => diag3.start === span.start && diag3.length === span.length);\n if (diag2 === void 0 || diag2.relatedInformation === void 0) return;\n const related = find(diag2.relatedInformation, (related2) => related2.code === Diagnostics.This_type_parameter_might_need_an_extends_0_constraint.code);\n if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) return;\n let declaration = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length));\n if (declaration === void 0) return;\n if (isIdentifier(declaration) && isTypeParameterDeclaration(declaration.parent)) {\n declaration = declaration.parent;\n }\n if (isTypeParameterDeclaration(declaration)) {\n if (isMappedTypeNode(declaration.parent)) return;\n const token = getTokenAtPosition(sourceFile, span.start);\n const checker = program.getTypeChecker();\n const constraint = tryGetConstraintType(checker, token) || tryGetConstraintFromDiagnosticMessage(related.messageText);\n return { constraint, declaration, token };\n }\n return void 0;\n}\nfunction addMissingConstraint(changes, program, preferences, host, sourceFile, info) {\n const { declaration, constraint } = info;\n const checker = program.getTypeChecker();\n if (isString(constraint)) {\n changes.insertText(sourceFile, declaration.name.end, ` extends ${constraint}`);\n } else {\n const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n const tracker = getNoopSymbolTrackerWithResolver({ program, host });\n const importAdder = createImportAdder(sourceFile, program, preferences, host);\n const typeNode = typeToAutoImportableTypeNode(\n checker,\n importAdder,\n constraint,\n /*contextNode*/\n void 0,\n scriptTarget,\n /*flags*/\n void 0,\n /*internalFlags*/\n void 0,\n tracker\n );\n if (typeNode) {\n changes.replaceNode(sourceFile, declaration, factory.updateTypeParameterDeclaration(\n declaration,\n /*modifiers*/\n void 0,\n declaration.name,\n typeNode,\n declaration.default\n ));\n importAdder.writeFixes(changes);\n }\n }\n}\nfunction tryGetConstraintFromDiagnosticMessage(messageText) {\n const [, constraint] = flattenDiagnosticMessageText(messageText, \"\\n\", 0).match(/`extends (.*)`/) || [];\n return constraint;\n}\nfunction tryGetConstraintType(checker, node) {\n if (isTypeNode(node.parent)) {\n return checker.getTypeArgumentConstraint(node.parent);\n }\n const contextualType = isExpression(node) ? checker.getContextualType(node) : void 0;\n return contextualType || checker.getTypeAtLocation(node);\n}\n\n// src/services/codefixes/fixOverrideModifier.ts\nvar fixName = \"fixOverrideModifier\";\nvar fixAddOverrideId = \"fixAddOverrideModifier\";\nvar fixRemoveOverrideId = \"fixRemoveOverrideModifier\";\nvar errorCodes21 = [\n Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code,\n Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,\n Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,\n Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,\n Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code,\n Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,\n Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code,\n Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,\n Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code\n];\nvar errorCodeFixIdMap = {\n // case #1:\n [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Add_override_modifier,\n fixId: fixAddOverrideId,\n fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n },\n [Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Add_override_modifier,\n fixId: fixAddOverrideId,\n fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n },\n // case #2:\n [Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]: {\n descriptions: Diagnostics.Remove_override_modifier,\n fixId: fixRemoveOverrideId,\n fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n },\n [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code]: {\n descriptions: Diagnostics.Remove_override_modifier,\n fixId: fixRemoveOverrideId,\n fixAllDescriptions: Diagnostics.Remove_override_modifier\n },\n // case #3:\n [Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]: {\n descriptions: Diagnostics.Add_override_modifier,\n fixId: fixAddOverrideId,\n fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n },\n [Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Add_override_modifier,\n fixId: fixAddOverrideId,\n fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n },\n // case #4:\n [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Add_override_modifier,\n fixId: fixAddOverrideId,\n fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n },\n // case #5:\n [Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Remove_override_modifier,\n fixId: fixRemoveOverrideId,\n fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n },\n [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code]: {\n descriptions: Diagnostics.Remove_override_modifier,\n fixId: fixRemoveOverrideId,\n fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n }\n};\nregisterCodeFix({\n errorCodes: errorCodes21,\n getCodeActions: function getCodeActionsToFixOverrideModifierIssues(context) {\n const { errorCode, span } = context;\n const info = errorCodeFixIdMap[errorCode];\n if (!info) return emptyArray;\n const { descriptions, fixId: fixId56, fixAllDescriptions } = info;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => dispatchChanges(changes2, context, errorCode, span.start));\n return [\n createCodeFixActionMaybeFixAll(fixName, changes, descriptions, fixId56, fixAllDescriptions)\n ];\n },\n fixIds: [fixName, fixAddOverrideId, fixRemoveOverrideId],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes21, (changes, diag2) => {\n const { code, start } = diag2;\n const info = errorCodeFixIdMap[code];\n if (!info || info.fixId !== context.fixId) {\n return;\n }\n dispatchChanges(changes, context, code, start);\n })\n});\nfunction dispatchChanges(changeTracker, context, errorCode, pos) {\n switch (errorCode) {\n case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:\n case Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:\n case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:\n case Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:\n case Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:\n return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos);\n case Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:\n case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code:\n case Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:\n case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code:\n return doRemoveOverrideModifierChange(changeTracker, context.sourceFile, pos);\n default:\n Debug.fail(\"Unexpected error code: \" + errorCode);\n }\n}\nfunction doAddOverrideModifierChange(changeTracker, sourceFile, pos) {\n const classElement = findContainerClassElementLike(sourceFile, pos);\n if (isSourceFileJS(sourceFile)) {\n changeTracker.addJSDocTags(sourceFile, classElement, [factory.createJSDocOverrideTag(factory.createIdentifier(\"override\"))]);\n return;\n }\n const modifiers = classElement.modifiers || emptyArray;\n const staticModifier = find(modifiers, isStaticModifier);\n const abstractModifier = find(modifiers, isAbstractModifier);\n const accessibilityModifier = find(modifiers, (m) => isAccessibilityModifier(m.kind));\n const lastDecorator = findLast(modifiers, isDecorator);\n const modifierPos = abstractModifier ? abstractModifier.end : staticModifier ? staticModifier.end : accessibilityModifier ? accessibilityModifier.end : lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : classElement.getStart(sourceFile);\n const options = accessibilityModifier || staticModifier || abstractModifier ? { prefix: \" \" } : { suffix: \" \" };\n changeTracker.insertModifierAt(sourceFile, modifierPos, 164 /* OverrideKeyword */, options);\n}\nfunction doRemoveOverrideModifierChange(changeTracker, sourceFile, pos) {\n const classElement = findContainerClassElementLike(sourceFile, pos);\n if (isSourceFileJS(sourceFile)) {\n changeTracker.filterJSDocTags(sourceFile, classElement, not(isJSDocOverrideTag));\n return;\n }\n const overrideModifier = find(classElement.modifiers, isOverrideModifier);\n Debug.assertIsDefined(overrideModifier);\n changeTracker.deleteModifier(sourceFile, overrideModifier);\n}\nfunction isClassElementLikeHasJSDoc(node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n case 173 /* PropertyDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return true;\n case 170 /* Parameter */:\n return isParameterPropertyDeclaration(node, node.parent);\n default:\n return false;\n }\n}\nfunction findContainerClassElementLike(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const classElement = findAncestor(token, (node) => {\n if (isClassLike(node)) return \"quit\";\n return isClassElementLikeHasJSDoc(node);\n });\n Debug.assert(classElement && isClassElementLikeHasJSDoc(classElement));\n return classElement;\n}\n\n// src/services/codefixes/fixNoPropertyAccessFromIndexSignature.ts\nvar fixId19 = \"fixNoPropertyAccessFromIndexSignature\";\nvar errorCodes22 = [\n Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code\n];\nregisterCodeFix({\n errorCodes: errorCodes22,\n fixIds: [fixId19],\n getCodeActions(context) {\n const { sourceFile, span, preferences } = context;\n const property = getPropertyAccessExpression(sourceFile, span.start);\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange14(t, context.sourceFile, property, preferences));\n return [createCodeFixAction(fixId19, changes, [Diagnostics.Use_element_access_for_0, property.name.text], fixId19, Diagnostics.Use_element_access_for_all_undeclared_properties)];\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes22, (changes, diag2) => doChange14(changes, diag2.file, getPropertyAccessExpression(diag2.file, diag2.start), context.preferences))\n});\nfunction doChange14(changes, sourceFile, node, preferences) {\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const argumentsExpression = factory.createStringLiteral(node.name.text, quotePreference === 0 /* Single */);\n changes.replaceNode(\n sourceFile,\n node,\n isPropertyAccessChain(node) ? factory.createElementAccessChain(node.expression, node.questionDotToken, argumentsExpression) : factory.createElementAccessExpression(node.expression, argumentsExpression)\n );\n}\nfunction getPropertyAccessExpression(sourceFile, pos) {\n return cast(getTokenAtPosition(sourceFile, pos).parent, isPropertyAccessExpression);\n}\n\n// src/services/codefixes/fixImplicitThis.ts\nvar fixId20 = \"fixImplicitThis\";\nvar errorCodes23 = [Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];\nregisterCodeFix({\n errorCodes: errorCodes23,\n getCodeActions: function getCodeActionsToFixImplicitThis(context) {\n const { sourceFile, program, span } = context;\n let diagnostic;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n diagnostic = doChange15(t, sourceFile, span.start, program.getTypeChecker());\n });\n return diagnostic ? [createCodeFixAction(fixId20, changes, diagnostic, fixId20, Diagnostics.Fix_all_implicit_this_errors)] : emptyArray;\n },\n fixIds: [fixId20],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes23, (changes, diag2) => {\n doChange15(changes, diag2.file, diag2.start, context.program.getTypeChecker());\n })\n});\nfunction doChange15(changes, sourceFile, pos, checker) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (!isThis(token)) return void 0;\n const fn = getThisContainer(\n token,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (!isFunctionDeclaration(fn) && !isFunctionExpression(fn)) return void 0;\n if (!isSourceFile(getThisContainer(\n fn,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n ))) {\n const fnKeyword = Debug.checkDefined(findChildOfKind(fn, 100 /* FunctionKeyword */, sourceFile));\n const { name } = fn;\n const body = Debug.checkDefined(fn.body);\n if (isFunctionExpression(fn)) {\n if (name && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(name, checker, sourceFile, body)) {\n return void 0;\n }\n changes.delete(sourceFile, fnKeyword);\n if (name) {\n changes.delete(sourceFile, name);\n }\n changes.insertText(sourceFile, body.pos, \" =>\");\n return [Diagnostics.Convert_function_expression_0_to_arrow_function, name ? name.text : ANONYMOUS];\n } else {\n changes.replaceNode(sourceFile, fnKeyword, factory.createToken(87 /* ConstKeyword */));\n changes.insertText(sourceFile, name.end, \" = \");\n changes.insertText(sourceFile, body.pos, \" =>\");\n return [Diagnostics.Convert_function_declaration_0_to_arrow_function, name.text];\n }\n }\n}\n\n// src/services/codefixes/fixImportNonExportedMember.ts\nvar fixId21 = \"fixImportNonExportedMember\";\nvar errorCodes24 = [\n Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported.code\n];\nregisterCodeFix({\n errorCodes: errorCodes24,\n fixIds: [fixId21],\n getCodeActions(context) {\n const { sourceFile, span, program } = context;\n const info = getInfo7(sourceFile, span.start, program);\n if (info === void 0) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange16(t, program, info));\n return [createCodeFixAction(fixId21, changes, [Diagnostics.Export_0_from_module_1, info.exportName.node.text, info.moduleSpecifier], fixId21, Diagnostics.Export_all_referenced_locals)];\n },\n getAllCodeActions(context) {\n const { program } = context;\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n const exports2 = /* @__PURE__ */ new Map();\n eachDiagnostic(context, errorCodes24, (diag2) => {\n const info = getInfo7(diag2.file, diag2.start, program);\n if (info === void 0) return void 0;\n const { exportName, node, moduleSourceFile } = info;\n if (tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly) === void 0 && canHaveExportModifier(node)) {\n changes.insertExportModifier(moduleSourceFile, node);\n } else {\n const moduleExports = exports2.get(moduleSourceFile) || { typeOnlyExports: [], exports: [] };\n if (exportName.isTypeOnly) {\n moduleExports.typeOnlyExports.push(exportName);\n } else {\n moduleExports.exports.push(exportName);\n }\n exports2.set(moduleSourceFile, moduleExports);\n }\n });\n exports2.forEach((moduleExports, moduleSourceFile) => {\n const exportDeclaration = tryGetExportDeclaration(\n moduleSourceFile,\n /*isTypeOnly*/\n true\n );\n if (exportDeclaration && exportDeclaration.isTypeOnly) {\n doChanges(changes, program, moduleSourceFile, moduleExports.typeOnlyExports, exportDeclaration);\n doChanges(changes, program, moduleSourceFile, moduleExports.exports, tryGetExportDeclaration(\n moduleSourceFile,\n /*isTypeOnly*/\n false\n ));\n } else {\n doChanges(changes, program, moduleSourceFile, [...moduleExports.exports, ...moduleExports.typeOnlyExports], exportDeclaration);\n }\n });\n }));\n }\n});\nfunction getInfo7(sourceFile, pos, program) {\n var _a, _b;\n const token = getTokenAtPosition(sourceFile, pos);\n if (isIdentifier(token)) {\n const importDeclaration = findAncestor(token, isImportDeclaration);\n if (importDeclaration === void 0) return void 0;\n const moduleSpecifier = isStringLiteral(importDeclaration.moduleSpecifier) ? importDeclaration.moduleSpecifier : void 0;\n if (moduleSpecifier === void 0) return void 0;\n const resolvedModule = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule;\n if (resolvedModule === void 0) return void 0;\n const moduleSourceFile = program.getSourceFile(resolvedModule.resolvedFileName);\n if (moduleSourceFile === void 0 || isSourceFileFromLibrary(program, moduleSourceFile)) return void 0;\n const moduleSymbol = moduleSourceFile.symbol;\n const locals = (_b = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _b.locals;\n if (locals === void 0) return void 0;\n const localSymbol = locals.get(token.escapedText);\n if (localSymbol === void 0) return void 0;\n const node = getNodeOfSymbol(localSymbol);\n if (node === void 0) return void 0;\n const exportName = { node: token, isTypeOnly: isTypeDeclaration(node) };\n return { exportName, node, moduleSourceFile, moduleSpecifier: moduleSpecifier.text };\n }\n return void 0;\n}\nfunction doChange16(changes, program, { exportName, node, moduleSourceFile }) {\n const exportDeclaration = tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly);\n if (exportDeclaration) {\n updateExport(changes, program, moduleSourceFile, exportDeclaration, [exportName]);\n } else if (canHaveExportModifier(node)) {\n changes.insertExportModifier(moduleSourceFile, node);\n } else {\n createExport(changes, program, moduleSourceFile, [exportName]);\n }\n}\nfunction doChanges(changes, program, sourceFile, moduleExports, node) {\n if (length(moduleExports)) {\n if (node) {\n updateExport(changes, program, sourceFile, node, moduleExports);\n } else {\n createExport(changes, program, sourceFile, moduleExports);\n }\n }\n}\nfunction tryGetExportDeclaration(sourceFile, isTypeOnly) {\n const predicate = (node) => isExportDeclaration(node) && (isTypeOnly && node.isTypeOnly || !node.isTypeOnly);\n return findLast(sourceFile.statements, predicate);\n}\nfunction updateExport(changes, program, sourceFile, node, names) {\n const namedExports = node.exportClause && isNamedExports(node.exportClause) ? node.exportClause.elements : factory.createNodeArray([]);\n const allowTypeModifier = !node.isTypeOnly && !!(getIsolatedModules(program.getCompilerOptions()) || find(namedExports, (e) => e.isTypeOnly));\n changes.replaceNode(\n sourceFile,\n node,\n factory.updateExportDeclaration(\n node,\n node.modifiers,\n node.isTypeOnly,\n factory.createNamedExports(\n factory.createNodeArray(\n [...namedExports, ...createExportSpecifiers(names, allowTypeModifier)],\n /*hasTrailingComma*/\n namedExports.hasTrailingComma\n )\n ),\n node.moduleSpecifier,\n node.attributes\n )\n );\n}\nfunction createExport(changes, program, sourceFile, names) {\n changes.insertNodeAtEndOfScope(sourceFile, sourceFile, factory.createExportDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n factory.createNamedExports(createExportSpecifiers(\n names,\n /*allowTypeModifier*/\n getIsolatedModules(program.getCompilerOptions())\n )),\n /*moduleSpecifier*/\n void 0,\n /*attributes*/\n void 0\n ));\n}\nfunction createExportSpecifiers(names, allowTypeModifier) {\n return factory.createNodeArray(map(names, (n) => factory.createExportSpecifier(\n allowTypeModifier && n.isTypeOnly,\n /*propertyName*/\n void 0,\n n.node\n )));\n}\nfunction getNodeOfSymbol(symbol) {\n if (symbol.valueDeclaration === void 0) {\n return firstOrUndefined(symbol.declarations);\n }\n const declaration = symbol.valueDeclaration;\n const variableStatement = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : void 0;\n return variableStatement && length(variableStatement.declarationList.declarations) === 1 ? variableStatement : declaration;\n}\n\n// src/services/codefixes/fixIncorrectNamedTupleSyntax.ts\nvar fixId22 = \"fixIncorrectNamedTupleSyntax\";\nvar errorCodes25 = [\n Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,\n Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code\n];\nregisterCodeFix({\n errorCodes: errorCodes25,\n getCodeActions: function getCodeActionsToFixIncorrectNamedTupleSyntax(context) {\n const { sourceFile, span } = context;\n const namedTupleMember = getNamedTupleMember(sourceFile, span.start);\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange17(t, sourceFile, namedTupleMember));\n return [createCodeFixAction(fixId22, changes, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels, fixId22, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)];\n },\n fixIds: [fixId22]\n});\nfunction getNamedTupleMember(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n return findAncestor(token, (t) => t.kind === 203 /* NamedTupleMember */);\n}\nfunction doChange17(changes, sourceFile, namedTupleMember) {\n if (!namedTupleMember) {\n return;\n }\n let unwrappedType = namedTupleMember.type;\n let sawOptional = false;\n let sawRest = false;\n while (unwrappedType.kind === 191 /* OptionalType */ || unwrappedType.kind === 192 /* RestType */ || unwrappedType.kind === 197 /* ParenthesizedType */) {\n if (unwrappedType.kind === 191 /* OptionalType */) {\n sawOptional = true;\n } else if (unwrappedType.kind === 192 /* RestType */) {\n sawRest = true;\n }\n unwrappedType = unwrappedType.type;\n }\n const updated = factory.updateNamedTupleMember(\n namedTupleMember,\n namedTupleMember.dotDotDotToken || (sawRest ? factory.createToken(26 /* DotDotDotToken */) : void 0),\n namedTupleMember.name,\n namedTupleMember.questionToken || (sawOptional ? factory.createToken(58 /* QuestionToken */) : void 0),\n unwrappedType\n );\n if (updated === namedTupleMember) {\n return;\n }\n changes.replaceNode(sourceFile, namedTupleMember, updated);\n}\n\n// src/services/codefixes/fixSpelling.ts\nvar fixId23 = \"fixSpelling\";\nvar errorCodes26 = [\n Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,\n Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,\n Diagnostics.Could_not_find_name_0_Did_you_mean_1.code,\n Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,\n Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,\n Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,\n Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,\n // for JSX class components\n Diagnostics.No_overload_matches_this_call.code,\n // for JSX FC\n Diagnostics.Type_0_is_not_assignable_to_type_1.code\n];\nregisterCodeFix({\n errorCodes: errorCodes26,\n getCodeActions(context) {\n const { sourceFile, errorCode } = context;\n const info = getInfo8(sourceFile, context.span.start, context, errorCode);\n if (!info) return void 0;\n const { node, suggestedSymbol } = info;\n const target = getEmitScriptTarget(context.host.getCompilationSettings());\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange18(t, sourceFile, node, suggestedSymbol, target));\n return [createCodeFixAction(\"spelling\", changes, [Diagnostics.Change_spelling_to_0, symbolName(suggestedSymbol)], fixId23, Diagnostics.Fix_all_detected_spelling_errors)];\n },\n fixIds: [fixId23],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes26, (changes, diag2) => {\n const info = getInfo8(diag2.file, diag2.start, context, diag2.code);\n const target = getEmitScriptTarget(context.host.getCompilationSettings());\n if (info) doChange18(changes, context.sourceFile, info.node, info.suggestedSymbol, target);\n })\n});\nfunction getInfo8(sourceFile, pos, context, errorCode) {\n const node = getTokenAtPosition(sourceFile, pos);\n const parent2 = node.parent;\n if ((errorCode === Diagnostics.No_overload_matches_this_call.code || errorCode === Diagnostics.Type_0_is_not_assignable_to_type_1.code) && !isJsxAttribute(parent2)) return void 0;\n const checker = context.program.getTypeChecker();\n let suggestedSymbol;\n if (isPropertyAccessExpression(parent2) && parent2.name === node) {\n Debug.assert(isMemberName(node), \"Expected an identifier for spelling (property access)\");\n let containingType = checker.getTypeAtLocation(parent2.expression);\n if (parent2.flags & 64 /* OptionalChain */) {\n containingType = checker.getNonNullableType(containingType);\n }\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, containingType);\n } else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 103 /* InKeyword */ && parent2.left === node && isPrivateIdentifier(node)) {\n const receiverType = checker.getTypeAtLocation(parent2.right);\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, receiverType);\n } else if (isQualifiedName(parent2) && parent2.right === node) {\n const symbol = checker.getSymbolAtLocation(parent2.left);\n if (symbol && symbol.flags & 1536 /* Module */) {\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(parent2.right, symbol);\n }\n } else if (isImportSpecifier(parent2) && parent2.name === node) {\n Debug.assertNode(node, isIdentifier, \"Expected an identifier for spelling (import)\");\n const importDeclaration = findAncestor(node, isImportDeclaration);\n const resolvedSourceFile = getResolvedSourceFileFromImportDeclaration(context, importDeclaration, sourceFile);\n if (resolvedSourceFile && resolvedSourceFile.symbol) {\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(node, resolvedSourceFile.symbol);\n }\n } else if (isJsxAttribute(parent2) && parent2.name === node) {\n Debug.assertNode(node, isIdentifier, \"Expected an identifier for JSX attribute\");\n const tag = findAncestor(node, isJsxOpeningLikeElement);\n const props = checker.getContextualTypeForArgumentAtIndex(tag, 0);\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentJSXAttribute(node, props);\n } else if (hasOverrideModifier(parent2) && isClassElement(parent2) && parent2.name === node) {\n const baseDeclaration = findAncestor(node, isClassLike);\n const baseTypeNode = baseDeclaration ? getEffectiveBaseTypeNode(baseDeclaration) : void 0;\n const baseType = baseTypeNode ? checker.getTypeAtLocation(baseTypeNode) : void 0;\n if (baseType) {\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentClassMember(getTextOfNode(node), baseType);\n }\n } else {\n const meaning = getMeaningFromLocation(node);\n const name = getTextOfNode(node);\n Debug.assert(name !== void 0, \"name should be defined\");\n suggestedSymbol = checker.getSuggestedSymbolForNonexistentSymbol(node, name, convertSemanticMeaningToSymbolFlags(meaning));\n }\n return suggestedSymbol === void 0 ? void 0 : { node, suggestedSymbol };\n}\nfunction doChange18(changes, sourceFile, node, suggestedSymbol, target) {\n const suggestion = symbolName(suggestedSymbol);\n if (!isIdentifierText(suggestion, target) && isPropertyAccessExpression(node.parent)) {\n const valDecl = suggestedSymbol.valueDeclaration;\n if (valDecl && isNamedDeclaration(valDecl) && isPrivateIdentifier(valDecl.name)) {\n changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion));\n } else {\n changes.replaceNode(sourceFile, node.parent, factory.createElementAccessExpression(node.parent.expression, factory.createStringLiteral(suggestion)));\n }\n } else {\n changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion));\n }\n}\nfunction convertSemanticMeaningToSymbolFlags(meaning) {\n let flags = 0;\n if (meaning & 4 /* Namespace */) {\n flags |= 1920 /* Namespace */;\n }\n if (meaning & 2 /* Type */) {\n flags |= 788968 /* Type */;\n }\n if (meaning & 1 /* Value */) {\n flags |= 111551 /* Value */;\n }\n return flags;\n}\nfunction getResolvedSourceFileFromImportDeclaration(context, importDeclaration, importingFile) {\n var _a;\n if (!importDeclaration || !isStringLiteralLike(importDeclaration.moduleSpecifier)) return void 0;\n const resolvedModule = (_a = context.program.getResolvedModuleFromModuleSpecifier(importDeclaration.moduleSpecifier, importingFile)) == null ? void 0 : _a.resolvedModule;\n if (!resolvedModule) return void 0;\n return context.program.getSourceFile(resolvedModule.resolvedFileName);\n}\n\n// src/services/codefixes/returnValueCorrect.ts\nvar fixId24 = \"returnValueCorrect\";\nvar fixIdAddReturnStatement = \"fixAddReturnStatement\";\nvar fixRemoveBracesFromArrowFunctionBody = \"fixRemoveBracesFromArrowFunctionBody\";\nvar fixIdWrapTheBlockWithParen = \"fixWrapTheBlockWithParen\";\nvar errorCodes27 = [\n Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code\n];\nregisterCodeFix({\n errorCodes: errorCodes27,\n fixIds: [fixIdAddReturnStatement, fixRemoveBracesFromArrowFunctionBody, fixIdWrapTheBlockWithParen],\n getCodeActions: function getCodeActionsToCorrectReturnValue(context) {\n const { program, sourceFile, span: { start }, errorCode } = context;\n const info = getInfo9(program.getTypeChecker(), sourceFile, start, errorCode);\n if (!info) return void 0;\n if (info.kind === 0 /* MissingReturnStatement */) {\n return append(\n [getActionForfixAddReturnStatement(context, info.expression, info.statement)],\n isArrowFunction(info.declaration) ? getActionForFixRemoveBracesFromArrowFunctionBody(context, info.declaration, info.expression, info.commentSource) : void 0\n );\n } else {\n return [getActionForfixWrapTheBlockWithParen(context, info.declaration, info.expression)];\n }\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes27, (changes, diag2) => {\n const info = getInfo9(context.program.getTypeChecker(), diag2.file, diag2.start, diag2.code);\n if (!info) return void 0;\n switch (context.fixId) {\n case fixIdAddReturnStatement:\n addReturnStatement(changes, diag2.file, info.expression, info.statement);\n break;\n case fixRemoveBracesFromArrowFunctionBody:\n if (!isArrowFunction(info.declaration)) return void 0;\n removeBlockBodyBrace(\n changes,\n diag2.file,\n info.declaration,\n info.expression,\n info.commentSource,\n /*withParen*/\n false\n );\n break;\n case fixIdWrapTheBlockWithParen:\n if (!isArrowFunction(info.declaration)) return void 0;\n wrapBlockWithParen(changes, diag2.file, info.declaration, info.expression);\n break;\n default:\n Debug.fail(JSON.stringify(context.fixId));\n }\n })\n});\nfunction createObjectTypeFromLabeledExpression(checker, label, expression) {\n const member = checker.createSymbol(4 /* Property */, label.escapedText);\n member.links.type = checker.getTypeAtLocation(expression);\n const members = createSymbolTable([member]);\n return checker.createAnonymousType(\n /*symbol*/\n void 0,\n members,\n [],\n [],\n []\n );\n}\nfunction getFixInfo(checker, declaration, expectType, isFunctionType) {\n if (!declaration.body || !isBlock(declaration.body) || length(declaration.body.statements) !== 1) return void 0;\n const firstStatement = first(declaration.body.statements);\n if (isExpressionStatement(firstStatement) && checkFixedAssignableTo(checker, declaration, checker.getTypeAtLocation(firstStatement.expression), expectType, isFunctionType)) {\n return {\n declaration,\n kind: 0 /* MissingReturnStatement */,\n expression: firstStatement.expression,\n statement: firstStatement,\n commentSource: firstStatement.expression\n };\n } else if (isLabeledStatement(firstStatement) && isExpressionStatement(firstStatement.statement)) {\n const node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstStatement.label, firstStatement.statement.expression)]);\n const nodeType = createObjectTypeFromLabeledExpression(checker, firstStatement.label, firstStatement.statement.expression);\n if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) {\n return isArrowFunction(declaration) ? {\n declaration,\n kind: 1 /* MissingParentheses */,\n expression: node,\n statement: firstStatement,\n commentSource: firstStatement.statement.expression\n } : {\n declaration,\n kind: 0 /* MissingReturnStatement */,\n expression: node,\n statement: firstStatement,\n commentSource: firstStatement.statement.expression\n };\n }\n } else if (isBlock(firstStatement) && length(firstStatement.statements) === 1) {\n const firstBlockStatement = first(firstStatement.statements);\n if (isLabeledStatement(firstBlockStatement) && isExpressionStatement(firstBlockStatement.statement)) {\n const node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstBlockStatement.label, firstBlockStatement.statement.expression)]);\n const nodeType = createObjectTypeFromLabeledExpression(checker, firstBlockStatement.label, firstBlockStatement.statement.expression);\n if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) {\n return {\n declaration,\n kind: 0 /* MissingReturnStatement */,\n expression: node,\n statement: firstStatement,\n commentSource: firstBlockStatement\n };\n }\n }\n }\n return void 0;\n}\nfunction checkFixedAssignableTo(checker, declaration, exprType, type, isFunctionType) {\n if (isFunctionType) {\n const sig = checker.getSignatureFromDeclaration(declaration);\n if (sig) {\n if (hasSyntacticModifier(declaration, 1024 /* Async */)) {\n exprType = checker.createPromiseType(exprType);\n }\n const newSig = checker.createSignature(\n declaration,\n sig.typeParameters,\n sig.thisParameter,\n sig.parameters,\n exprType,\n /*typePredicate*/\n void 0,\n sig.minArgumentCount,\n sig.flags\n );\n exprType = checker.createAnonymousType(\n /*symbol*/\n void 0,\n createSymbolTable(),\n [newSig],\n [],\n []\n );\n } else {\n exprType = checker.getAnyType();\n }\n }\n return checker.isTypeAssignableTo(exprType, type);\n}\nfunction getInfo9(checker, sourceFile, position, errorCode) {\n const node = getTokenAtPosition(sourceFile, position);\n if (!node.parent) return void 0;\n const declaration = findAncestor(node.parent, isFunctionLikeDeclaration);\n switch (errorCode) {\n case Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code:\n if (!declaration || !declaration.body || !declaration.type || !rangeContainsRange(declaration.type, node)) return void 0;\n return getFixInfo(\n checker,\n declaration,\n checker.getTypeFromTypeNode(declaration.type),\n /*isFunctionType*/\n false\n );\n case Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:\n if (!declaration || !isCallExpression(declaration.parent) || !declaration.body) return void 0;\n const pos = declaration.parent.arguments.indexOf(declaration);\n if (pos === -1) return void 0;\n const type = checker.getContextualTypeForArgumentAtIndex(declaration.parent, pos);\n if (!type) return void 0;\n return getFixInfo(\n checker,\n declaration,\n type,\n /*isFunctionType*/\n true\n );\n case Diagnostics.Type_0_is_not_assignable_to_type_1.code:\n if (!isDeclarationName(node) || !isVariableLike(node.parent) && !isJsxAttribute(node.parent)) return void 0;\n const initializer = getVariableLikeInitializer(node.parent);\n if (!initializer || !isFunctionLikeDeclaration(initializer) || !initializer.body) return void 0;\n return getFixInfo(\n checker,\n initializer,\n checker.getTypeAtLocation(node.parent),\n /*isFunctionType*/\n true\n );\n }\n return void 0;\n}\nfunction getVariableLikeInitializer(declaration) {\n switch (declaration.kind) {\n case 261 /* VariableDeclaration */:\n case 170 /* Parameter */:\n case 209 /* BindingElement */:\n case 173 /* PropertyDeclaration */:\n case 304 /* PropertyAssignment */:\n return declaration.initializer;\n case 292 /* JsxAttribute */:\n return declaration.initializer && (isJsxExpression(declaration.initializer) ? declaration.initializer.expression : void 0);\n case 305 /* ShorthandPropertyAssignment */:\n case 172 /* PropertySignature */:\n case 307 /* EnumMember */:\n case 349 /* JSDocPropertyTag */:\n case 342 /* JSDocParameterTag */:\n return void 0;\n }\n}\nfunction addReturnStatement(changes, sourceFile, expression, statement) {\n suppressLeadingAndTrailingTrivia(expression);\n const probablyNeedSemi = probablyUsesSemicolons(sourceFile);\n changes.replaceNode(sourceFile, statement, factory.createReturnStatement(expression), {\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude,\n suffix: probablyNeedSemi ? \";\" : void 0\n });\n}\nfunction removeBlockBodyBrace(changes, sourceFile, declaration, expression, commentSource, withParen) {\n const newBody = withParen || needsParentheses(expression) ? factory.createParenthesizedExpression(expression) : expression;\n suppressLeadingAndTrailingTrivia(commentSource);\n copyComments(commentSource, newBody);\n changes.replaceNode(sourceFile, declaration.body, newBody);\n}\nfunction wrapBlockWithParen(changes, sourceFile, declaration, expression) {\n changes.replaceNode(sourceFile, declaration.body, factory.createParenthesizedExpression(expression));\n}\nfunction getActionForfixAddReturnStatement(context, expression, statement) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addReturnStatement(t, context.sourceFile, expression, statement));\n return createCodeFixAction(fixId24, changes, Diagnostics.Add_a_return_statement, fixIdAddReturnStatement, Diagnostics.Add_all_missing_return_statement);\n}\nfunction getActionForFixRemoveBracesFromArrowFunctionBody(context, declaration, expression, commentSource) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => removeBlockBodyBrace(\n t,\n context.sourceFile,\n declaration,\n expression,\n commentSource,\n /*withParen*/\n false\n ));\n return createCodeFixAction(fixId24, changes, Diagnostics.Remove_braces_from_arrow_function_body, fixRemoveBracesFromArrowFunctionBody, Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues);\n}\nfunction getActionForfixWrapTheBlockWithParen(context, declaration, expression) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => wrapBlockWithParen(t, context.sourceFile, declaration, expression));\n return createCodeFixAction(fixId24, changes, Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal, fixIdWrapTheBlockWithParen, Diagnostics.Wrap_all_object_literal_with_parentheses);\n}\n\n// src/services/codefixes/fixAddMissingMember.ts\nvar fixMissingMember = \"fixMissingMember\";\nvar fixMissingProperties = \"fixMissingProperties\";\nvar fixMissingAttributes = \"fixMissingAttributes\";\nvar fixMissingFunctionDeclaration = \"fixMissingFunctionDeclaration\";\nvar errorCodes28 = [\n Diagnostics.Property_0_does_not_exist_on_type_1.code,\n Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,\n Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,\n Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,\n Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n Diagnostics.Cannot_find_name_0.code,\n Diagnostics.Type_0_does_not_satisfy_the_expected_type_1.code\n];\nregisterCodeFix({\n errorCodes: errorCodes28,\n getCodeActions(context) {\n const typeChecker = context.program.getTypeChecker();\n const info = getInfo10(context.sourceFile, context.span.start, context.errorCode, typeChecker, context.program);\n if (!info) {\n return void 0;\n }\n if (info.kind === 3 /* ObjectLiteral */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addObjectLiteralProperties(t, context, info));\n return [createCodeFixAction(fixMissingProperties, changes, Diagnostics.Add_missing_properties, fixMissingProperties, Diagnostics.Add_all_missing_properties)];\n }\n if (info.kind === 4 /* JsxAttributes */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addJsxAttributes(t, context, info));\n return [createCodeFixAction(fixMissingAttributes, changes, Diagnostics.Add_missing_attributes, fixMissingAttributes, Diagnostics.Add_all_missing_attributes)];\n }\n if (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addFunctionDeclaration(t, context, info));\n return [createCodeFixAction(fixMissingFunctionDeclaration, changes, [Diagnostics.Add_missing_function_declaration_0, info.token.text], fixMissingFunctionDeclaration, Diagnostics.Add_all_missing_function_declarations)];\n }\n if (info.kind === 1 /* Enum */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addEnumMemberDeclaration(t, context.program.getTypeChecker(), info));\n return [createCodeFixAction(fixMissingMember, changes, [Diagnostics.Add_missing_enum_member_0, info.token.text], fixMissingMember, Diagnostics.Add_all_missing_members)];\n }\n return concatenate(getActionsForMissingMethodDeclaration(context, info), getActionsForMissingMemberDeclaration(context, info));\n },\n fixIds: [fixMissingMember, fixMissingFunctionDeclaration, fixMissingProperties, fixMissingAttributes],\n getAllCodeActions: (context) => {\n const { program, fixId: fixId56 } = context;\n const checker = program.getTypeChecker();\n const seen = /* @__PURE__ */ new Set();\n const typeDeclToMembers = /* @__PURE__ */ new Map();\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n eachDiagnostic(context, errorCodes28, (diag2) => {\n const info = getInfo10(diag2.file, diag2.start, diag2.code, checker, context.program);\n if (info === void 0) return;\n const nodeId = getNodeId(info.parentDeclaration) + \"#\" + (info.kind === 3 /* ObjectLiteral */ ? info.identifier || getNodeId(info.token) : info.token.text);\n if (!addToSeen(seen, nodeId)) return;\n if (fixId56 === fixMissingFunctionDeclaration && (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */)) {\n addFunctionDeclaration(changes, context, info);\n } else if (fixId56 === fixMissingProperties && info.kind === 3 /* ObjectLiteral */) {\n addObjectLiteralProperties(changes, context, info);\n } else if (fixId56 === fixMissingAttributes && info.kind === 4 /* JsxAttributes */) {\n addJsxAttributes(changes, context, info);\n } else {\n if (info.kind === 1 /* Enum */) {\n addEnumMemberDeclaration(changes, checker, info);\n }\n if (info.kind === 0 /* TypeLikeDeclaration */) {\n const { parentDeclaration, token } = info;\n const infos = getOrUpdate(typeDeclToMembers, parentDeclaration, () => []);\n if (!infos.some((i) => i.token.text === token.text)) {\n infos.push(info);\n }\n }\n }\n });\n typeDeclToMembers.forEach((infos, declaration) => {\n const supers = isTypeLiteralNode(declaration) ? void 0 : getAllSupers(declaration, checker);\n for (const info of infos) {\n if (supers == null ? void 0 : supers.some((superClassOrInterface) => {\n const superInfos = typeDeclToMembers.get(superClassOrInterface);\n return !!superInfos && superInfos.some(({ token: token2 }) => token2.text === info.token.text);\n })) continue;\n const { parentDeclaration, declSourceFile, modifierFlags, token, call, isJSFile } = info;\n if (call && !isPrivateIdentifier(token)) {\n addMethodDeclaration(context, changes, call, token, modifierFlags & 256 /* Static */, parentDeclaration, declSourceFile);\n } else {\n if (isJSFile && !isInterfaceDeclaration(parentDeclaration) && !isTypeLiteralNode(parentDeclaration)) {\n addMissingMemberInJs(changes, declSourceFile, parentDeclaration, token, !!(modifierFlags & 256 /* Static */));\n } else {\n const typeNode = getTypeNode2(checker, parentDeclaration, token);\n addPropertyDeclaration(changes, declSourceFile, parentDeclaration, token.text, typeNode, modifierFlags & 256 /* Static */);\n }\n }\n }\n });\n }));\n }\n});\nfunction getInfo10(sourceFile, tokenPos, errorCode, checker, program) {\n var _a, _b;\n const token = getTokenAtPosition(sourceFile, tokenPos);\n const parent2 = token.parent;\n if (errorCode === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code) {\n if (!(token.kind === 19 /* OpenBraceToken */ && isObjectLiteralExpression(parent2) && isCallExpression(parent2.parent))) return void 0;\n const argIndex = findIndex(parent2.parent.arguments, (arg) => arg === parent2);\n if (argIndex < 0) return void 0;\n const signature = checker.getResolvedSignature(parent2.parent);\n if (!(signature && signature.declaration && signature.parameters[argIndex])) return void 0;\n const param = signature.parameters[argIndex].valueDeclaration;\n if (!(param && isParameter(param) && isIdentifier(param.name))) return void 0;\n const properties = arrayFrom(checker.getUnmatchedProperties(\n checker.getTypeAtLocation(parent2),\n checker.getParameterType(signature, argIndex).getNonNullableType(),\n /*requireOptionalProperties*/\n false,\n /*matchDiscriminantProperties*/\n false\n ));\n if (!length(properties)) return void 0;\n return { kind: 3 /* ObjectLiteral */, token: param.name, identifier: param.name.text, properties, parentDeclaration: parent2 };\n }\n if (token.kind === 19 /* OpenBraceToken */ || isSatisfiesExpression(parent2) || isReturnStatement(parent2)) {\n const expression = (isSatisfiesExpression(parent2) || isReturnStatement(parent2)) && parent2.expression ? parent2.expression : parent2;\n if (isObjectLiteralExpression(expression)) {\n const targetType = isSatisfiesExpression(parent2) ? checker.getTypeFromTypeNode(parent2.type) : checker.getContextualType(expression) || checker.getTypeAtLocation(expression);\n const properties = arrayFrom(checker.getUnmatchedProperties(\n checker.getTypeAtLocation(parent2),\n targetType.getNonNullableType(),\n /*requireOptionalProperties*/\n false,\n /*matchDiscriminantProperties*/\n false\n ));\n if (!length(properties)) return void 0;\n return { kind: 3 /* ObjectLiteral */, token: parent2, identifier: void 0, properties, parentDeclaration: expression, indentation: isReturnStatement(expression.parent) || isYieldExpression(expression.parent) ? 0 : void 0 };\n }\n }\n if (!isMemberName(token)) return void 0;\n if (isIdentifier(token) && hasInitializer(parent2) && parent2.initializer && isObjectLiteralExpression(parent2.initializer)) {\n const targetType = (_a = checker.getContextualType(token) || checker.getTypeAtLocation(token)) == null ? void 0 : _a.getNonNullableType();\n const properties = arrayFrom(checker.getUnmatchedProperties(\n checker.getTypeAtLocation(parent2.initializer),\n targetType,\n /*requireOptionalProperties*/\n false,\n /*matchDiscriminantProperties*/\n false\n ));\n if (!length(properties)) return void 0;\n return { kind: 3 /* ObjectLiteral */, token, identifier: token.text, properties, parentDeclaration: parent2.initializer };\n }\n if (isIdentifier(token) && isJsxOpeningLikeElement(token.parent)) {\n const target = getEmitScriptTarget(program.getCompilerOptions());\n const attributes = getUnmatchedAttributes(checker, target, token.parent);\n if (!length(attributes)) return void 0;\n return { kind: 4 /* JsxAttributes */, token, attributes, parentDeclaration: token.parent };\n }\n if (isIdentifier(token)) {\n const type = (_b = checker.getContextualType(token)) == null ? void 0 : _b.getNonNullableType();\n if (type && getObjectFlags(type) & 16 /* Anonymous */) {\n const signature = firstOrUndefined(checker.getSignaturesOfType(type, 0 /* Call */));\n if (signature === void 0) return void 0;\n return { kind: 5 /* Signature */, token, signature, sourceFile, parentDeclaration: findScope(token) };\n }\n if (isCallExpression(parent2) && parent2.expression === token) {\n return { kind: 2 /* Function */, token, call: parent2, sourceFile, modifierFlags: 0 /* None */, parentDeclaration: findScope(token) };\n }\n }\n if (!isPropertyAccessExpression(parent2)) return void 0;\n const leftExpressionType = skipConstraint(checker.getTypeAtLocation(parent2.expression));\n const symbol = leftExpressionType.symbol;\n if (!symbol || !symbol.declarations) return void 0;\n if (isIdentifier(token) && isCallExpression(parent2.parent)) {\n const moduleDeclaration = find(symbol.declarations, isModuleDeclaration);\n const moduleDeclarationSourceFile = moduleDeclaration == null ? void 0 : moduleDeclaration.getSourceFile();\n if (moduleDeclaration && moduleDeclarationSourceFile && !isSourceFileFromLibrary(program, moduleDeclarationSourceFile)) {\n return { kind: 2 /* Function */, token, call: parent2.parent, sourceFile: moduleDeclarationSourceFile, modifierFlags: 32 /* Export */, parentDeclaration: moduleDeclaration };\n }\n const moduleSourceFile = find(symbol.declarations, isSourceFile);\n if (sourceFile.commonJsModuleIndicator) return void 0;\n if (moduleSourceFile && !isSourceFileFromLibrary(program, moduleSourceFile)) {\n return { kind: 2 /* Function */, token, call: parent2.parent, sourceFile: moduleSourceFile, modifierFlags: 32 /* Export */, parentDeclaration: moduleSourceFile };\n }\n }\n const classDeclaration = find(symbol.declarations, isClassLike);\n if (!classDeclaration && isPrivateIdentifier(token)) return void 0;\n const declaration = classDeclaration || find(symbol.declarations, (d) => isInterfaceDeclaration(d) || isTypeLiteralNode(d));\n if (declaration && !isSourceFileFromLibrary(program, declaration.getSourceFile())) {\n const makeStatic = !isTypeLiteralNode(declaration) && (leftExpressionType.target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol);\n if (makeStatic && (isPrivateIdentifier(token) || isInterfaceDeclaration(declaration))) return void 0;\n const declSourceFile = declaration.getSourceFile();\n const modifierFlags = isTypeLiteralNode(declaration) ? 0 /* None */ : (makeStatic ? 256 /* Static */ : 0 /* None */) | (startsWithUnderscore(token.text) ? 2 /* Private */ : 0 /* None */);\n const isJSFile = isSourceFileJS(declSourceFile);\n const call = tryCast(parent2.parent, isCallExpression);\n return { kind: 0 /* TypeLikeDeclaration */, token, call, modifierFlags, parentDeclaration: declaration, declSourceFile, isJSFile };\n }\n const enumDeclaration = find(symbol.declarations, isEnumDeclaration);\n if (enumDeclaration && !(leftExpressionType.flags & 1056 /* EnumLike */) && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {\n return { kind: 1 /* Enum */, token, parentDeclaration: enumDeclaration };\n }\n return void 0;\n}\nfunction getActionsForMissingMemberDeclaration(context, info) {\n return info.isJSFile ? singleElementArray(createActionForAddMissingMemberInJavascriptFile(context, info)) : createActionsForAddMissingMemberInTypeScriptFile(context, info);\n}\nfunction createActionForAddMissingMemberInJavascriptFile(context, { parentDeclaration, declSourceFile, modifierFlags, token }) {\n if (isInterfaceDeclaration(parentDeclaration) || isTypeLiteralNode(parentDeclaration)) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingMemberInJs(t, declSourceFile, parentDeclaration, token, !!(modifierFlags & 256 /* Static */)));\n if (changes.length === 0) {\n return void 0;\n }\n const diagnostic = modifierFlags & 256 /* Static */ ? Diagnostics.Initialize_static_property_0 : isPrivateIdentifier(token) ? Diagnostics.Declare_a_private_field_named_0 : Diagnostics.Initialize_property_0_in_the_constructor;\n return createCodeFixAction(fixMissingMember, changes, [diagnostic, token.text], fixMissingMember, Diagnostics.Add_all_missing_members);\n}\nfunction addMissingMemberInJs(changeTracker, sourceFile, classDeclaration, token, makeStatic) {\n const tokenName = token.text;\n if (makeStatic) {\n if (classDeclaration.kind === 232 /* ClassExpression */) {\n return;\n }\n const className = classDeclaration.name.getText();\n const staticInitialization = initializePropertyToUndefined(factory.createIdentifier(className), tokenName);\n changeTracker.insertNodeAfter(sourceFile, classDeclaration, staticInitialization);\n } else if (isPrivateIdentifier(token)) {\n const property = factory.createPropertyDeclaration(\n /*modifiers*/\n void 0,\n tokenName,\n /*questionOrExclamationToken*/\n void 0,\n /*type*/\n void 0,\n /*initializer*/\n void 0\n );\n const lastProp = getNodeToInsertPropertyAfter(classDeclaration);\n if (lastProp) {\n changeTracker.insertNodeAfter(sourceFile, lastProp, property);\n } else {\n changeTracker.insertMemberAtStart(sourceFile, classDeclaration, property);\n }\n } else {\n const classConstructor = getFirstConstructorWithBody(classDeclaration);\n if (!classConstructor) {\n return;\n }\n const propertyInitialization = initializePropertyToUndefined(factory.createThis(), tokenName);\n changeTracker.insertNodeAtConstructorEnd(sourceFile, classConstructor, propertyInitialization);\n }\n}\nfunction initializePropertyToUndefined(obj, propertyName) {\n return factory.createExpressionStatement(factory.createAssignment(factory.createPropertyAccessExpression(obj, propertyName), createUndefined()));\n}\nfunction createActionsForAddMissingMemberInTypeScriptFile(context, { parentDeclaration, declSourceFile, modifierFlags, token }) {\n const memberName = token.text;\n const isStatic2 = modifierFlags & 256 /* Static */;\n const typeNode = getTypeNode2(context.program.getTypeChecker(), parentDeclaration, token);\n const addPropertyDeclarationChanges = (modifierFlags2) => ts_textChanges_exports.ChangeTracker.with(context, (t) => addPropertyDeclaration(t, declSourceFile, parentDeclaration, memberName, typeNode, modifierFlags2));\n const actions2 = [createCodeFixAction(fixMissingMember, addPropertyDeclarationChanges(modifierFlags & 256 /* Static */), [isStatic2 ? Diagnostics.Declare_static_property_0 : Diagnostics.Declare_property_0, memberName], fixMissingMember, Diagnostics.Add_all_missing_members)];\n if (isStatic2 || isPrivateIdentifier(token)) {\n return actions2;\n }\n if (modifierFlags & 2 /* Private */) {\n actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addPropertyDeclarationChanges(2 /* Private */), [Diagnostics.Declare_private_property_0, memberName]));\n }\n actions2.push(createAddIndexSignatureAction(context, declSourceFile, parentDeclaration, token.text, typeNode));\n return actions2;\n}\nfunction getTypeNode2(checker, node, token) {\n let typeNode;\n if (token.parent.parent.kind === 227 /* BinaryExpression */) {\n const binaryExpression = token.parent.parent;\n const otherExpression = token.parent === binaryExpression.left ? binaryExpression.right : binaryExpression.left;\n const widenedType = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(otherExpression)));\n typeNode = checker.typeToTypeNode(widenedType, node, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n } else {\n const contextualType = checker.getContextualType(token.parent);\n typeNode = contextualType ? checker.typeToTypeNode(\n contextualType,\n /*enclosingDeclaration*/\n void 0,\n 1 /* NoTruncation */,\n 8 /* AllowUnresolvedNames */\n ) : void 0;\n }\n return typeNode || factory.createKeywordTypeNode(133 /* AnyKeyword */);\n}\nfunction addPropertyDeclaration(changeTracker, sourceFile, node, tokenName, typeNode, modifierFlags) {\n const modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0;\n const property = isClassLike(node) ? factory.createPropertyDeclaration(\n modifiers,\n tokenName,\n /*questionOrExclamationToken*/\n void 0,\n typeNode,\n /*initializer*/\n void 0\n ) : factory.createPropertySignature(\n /*modifiers*/\n void 0,\n tokenName,\n /*questionToken*/\n void 0,\n typeNode\n );\n const lastProp = getNodeToInsertPropertyAfter(node);\n if (lastProp) {\n changeTracker.insertNodeAfter(sourceFile, lastProp, property);\n } else {\n changeTracker.insertMemberAtStart(sourceFile, node, property);\n }\n}\nfunction getNodeToInsertPropertyAfter(node) {\n let res;\n for (const member of node.members) {\n if (!isPropertyDeclaration(member)) break;\n res = member;\n }\n return res;\n}\nfunction createAddIndexSignatureAction(context, sourceFile, node, tokenName, typeNode) {\n const stringTypeNode = factory.createKeywordTypeNode(154 /* StringKeyword */);\n const indexingParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n \"x\",\n /*questionToken*/\n void 0,\n stringTypeNode,\n /*initializer*/\n void 0\n );\n const indexSignature = factory.createIndexSignature(\n /*modifiers*/\n void 0,\n [indexingParameter],\n typeNode\n );\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.insertMemberAtStart(sourceFile, node, indexSignature));\n return createCodeFixActionWithoutFixAll(fixMissingMember, changes, [Diagnostics.Add_index_signature_for_property_0, tokenName]);\n}\nfunction getActionsForMissingMethodDeclaration(context, info) {\n const { parentDeclaration, declSourceFile, modifierFlags, token, call } = info;\n if (call === void 0) {\n return void 0;\n }\n const methodName = token.text;\n const addMethodDeclarationChanges = (modifierFlags2) => ts_textChanges_exports.ChangeTracker.with(context, (t) => addMethodDeclaration(context, t, call, token, modifierFlags2, parentDeclaration, declSourceFile));\n const actions2 = [createCodeFixAction(fixMissingMember, addMethodDeclarationChanges(modifierFlags & 256 /* Static */), [modifierFlags & 256 /* Static */ ? Diagnostics.Declare_static_method_0 : Diagnostics.Declare_method_0, methodName], fixMissingMember, Diagnostics.Add_all_missing_members)];\n if (modifierFlags & 2 /* Private */) {\n actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addMethodDeclarationChanges(2 /* Private */), [Diagnostics.Declare_private_method_0, methodName]));\n }\n return actions2;\n}\nfunction addMethodDeclaration(context, changes, callExpression, name, modifierFlags, parentDeclaration, sourceFile) {\n const importAdder = createImportAdder(sourceFile, context.program, context.preferences, context.host);\n const kind = isClassLike(parentDeclaration) ? 175 /* MethodDeclaration */ : 174 /* MethodSignature */;\n const signatureDeclaration = createSignatureDeclarationFromCallExpression(kind, context, importAdder, callExpression, name, modifierFlags, parentDeclaration);\n const containingMethodDeclaration = tryGetContainingMethodDeclaration(parentDeclaration, callExpression);\n if (containingMethodDeclaration) {\n changes.insertNodeAfter(sourceFile, containingMethodDeclaration, signatureDeclaration);\n } else {\n changes.insertMemberAtStart(sourceFile, parentDeclaration, signatureDeclaration);\n }\n importAdder.writeFixes(changes);\n}\nfunction addEnumMemberDeclaration(changes, checker, { token, parentDeclaration }) {\n const hasStringInitializer = some(parentDeclaration.members, (member) => {\n const type = checker.getTypeAtLocation(member);\n return !!(type && type.flags & 402653316 /* StringLike */);\n });\n const sourceFile = parentDeclaration.getSourceFile();\n const enumMember = factory.createEnumMember(token, hasStringInitializer ? factory.createStringLiteral(token.text) : void 0);\n const last2 = lastOrUndefined(parentDeclaration.members);\n if (last2) {\n changes.insertNodeInListAfter(sourceFile, last2, enumMember, parentDeclaration.members);\n } else {\n changes.insertMemberAtStart(sourceFile, parentDeclaration, enumMember);\n }\n}\nfunction addFunctionDeclaration(changes, context, info) {\n const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n const functionDeclaration = info.kind === 2 /* Function */ ? createSignatureDeclarationFromCallExpression(263 /* FunctionDeclaration */, context, importAdder, info.call, idText(info.token), info.modifierFlags, info.parentDeclaration) : createSignatureDeclarationFromSignature(\n 263 /* FunctionDeclaration */,\n context,\n quotePreference,\n info.signature,\n createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference),\n info.token,\n /*modifiers*/\n void 0,\n /*optional*/\n void 0,\n /*enclosingDeclaration*/\n void 0,\n importAdder\n );\n if (functionDeclaration === void 0) {\n Debug.fail(\"fixMissingFunctionDeclaration codefix got unexpected error.\");\n }\n isReturnStatement(info.parentDeclaration) ? changes.insertNodeBefore(\n info.sourceFile,\n info.parentDeclaration,\n functionDeclaration,\n /*blankLineBetween*/\n true\n ) : changes.insertNodeAtEndOfScope(info.sourceFile, info.parentDeclaration, functionDeclaration);\n importAdder.writeFixes(changes);\n}\nfunction addJsxAttributes(changes, context, info) {\n const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n const checker = context.program.getTypeChecker();\n const jsxAttributesNode = info.parentDeclaration.attributes;\n const hasSpreadAttribute = some(jsxAttributesNode.properties, isJsxSpreadAttribute);\n const attrs = map(info.attributes, (attr) => {\n const value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr), info.parentDeclaration);\n const name = factory.createIdentifier(attr.name);\n const jsxAttribute = factory.createJsxAttribute(name, factory.createJsxExpression(\n /*dotDotDotToken*/\n void 0,\n value\n ));\n setParent(name, jsxAttribute);\n return jsxAttribute;\n });\n const jsxAttributes = factory.createJsxAttributes(hasSpreadAttribute ? [...attrs, ...jsxAttributesNode.properties] : [...jsxAttributesNode.properties, ...attrs]);\n const options = { prefix: jsxAttributesNode.pos === jsxAttributesNode.end ? \" \" : void 0 };\n changes.replaceNode(context.sourceFile, jsxAttributesNode, jsxAttributes, options);\n importAdder.writeFixes(changes);\n}\nfunction addObjectLiteralProperties(changes, context, info) {\n const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n const target = getEmitScriptTarget(context.program.getCompilerOptions());\n const checker = context.program.getTypeChecker();\n const props = map(info.properties, (prop) => {\n const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), info.parentDeclaration);\n return factory.createPropertyAssignment(createPropertyNameFromSymbol(prop, target, quotePreference, checker), initializer);\n });\n const options = {\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude,\n indentation: info.indentation\n };\n changes.replaceNode(context.sourceFile, info.parentDeclaration, factory.createObjectLiteralExpression(\n [...info.parentDeclaration.properties, ...props],\n /*multiLine*/\n true\n ), options);\n importAdder.writeFixes(changes);\n}\nfunction tryGetValueFromType(context, checker, importAdder, quotePreference, type, enclosingDeclaration) {\n if (type.flags & 3 /* AnyOrUnknown */) {\n return createUndefined();\n }\n if (type.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n return factory.createStringLiteral(\n \"\",\n /* isSingleQuote */\n quotePreference === 0 /* Single */\n );\n }\n if (type.flags & 8 /* Number */) {\n return factory.createNumericLiteral(0);\n }\n if (type.flags & 64 /* BigInt */) {\n return factory.createBigIntLiteral(\"0n\");\n }\n if (type.flags & 16 /* Boolean */) {\n return factory.createFalse();\n }\n if (type.flags & 1056 /* EnumLike */) {\n const enumMember = type.symbol.exports ? firstOrUndefinedIterator(type.symbol.exports.values()) : type.symbol;\n const symbol = type.symbol.parent && type.symbol.parent.flags & 256 /* RegularEnum */ ? type.symbol.parent : type.symbol;\n const name = checker.symbolToExpression(\n symbol,\n 111551 /* Value */,\n /*enclosingDeclaration*/\n void 0,\n /*flags*/\n 64 /* UseFullyQualifiedType */\n );\n return enumMember === void 0 || name === void 0 ? factory.createNumericLiteral(0) : factory.createPropertyAccessExpression(name, checker.symbolToString(enumMember));\n }\n if (type.flags & 256 /* NumberLiteral */) {\n return factory.createNumericLiteral(type.value);\n }\n if (type.flags & 2048 /* BigIntLiteral */) {\n return factory.createBigIntLiteral(type.value);\n }\n if (type.flags & 128 /* StringLiteral */) {\n return factory.createStringLiteral(\n type.value,\n /* isSingleQuote */\n quotePreference === 0 /* Single */\n );\n }\n if (type.flags & 512 /* BooleanLiteral */) {\n return type === checker.getFalseType() || type === checker.getFalseType(\n /*fresh*/\n true\n ) ? factory.createFalse() : factory.createTrue();\n }\n if (type.flags & 65536 /* Null */) {\n return factory.createNull();\n }\n if (type.flags & 1048576 /* Union */) {\n const expression = firstDefined(type.types, (t) => tryGetValueFromType(context, checker, importAdder, quotePreference, t, enclosingDeclaration));\n return expression ?? createUndefined();\n }\n if (checker.isArrayLikeType(type)) {\n return factory.createArrayLiteralExpression();\n }\n if (isObjectLiteralType(type)) {\n const props = map(checker.getPropertiesOfType(type), (prop) => {\n const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), enclosingDeclaration);\n return factory.createPropertyAssignment(prop.name, initializer);\n });\n return factory.createObjectLiteralExpression(\n props,\n /*multiLine*/\n true\n );\n }\n if (getObjectFlags(type) & 16 /* Anonymous */) {\n const decl = find(type.symbol.declarations || emptyArray, or(isFunctionTypeNode, isMethodSignature, isMethodDeclaration));\n if (decl === void 0) return createUndefined();\n const signature = checker.getSignaturesOfType(type, 0 /* Call */);\n if (signature === void 0) return createUndefined();\n const func = createSignatureDeclarationFromSignature(\n 219 /* FunctionExpression */,\n context,\n quotePreference,\n signature[0],\n createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference),\n /*name*/\n void 0,\n /*modifiers*/\n void 0,\n /*optional*/\n void 0,\n /*enclosingDeclaration*/\n enclosingDeclaration,\n importAdder\n );\n return func ?? createUndefined();\n }\n if (getObjectFlags(type) & 1 /* Class */) {\n const classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n if (classDeclaration === void 0 || hasAbstractModifier(classDeclaration)) return createUndefined();\n const constructorDeclaration = getFirstConstructorWithBody(classDeclaration);\n if (constructorDeclaration && length(constructorDeclaration.parameters)) return createUndefined();\n return factory.createNewExpression(\n factory.createIdentifier(type.symbol.name),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n void 0\n );\n }\n return createUndefined();\n}\nfunction createUndefined() {\n return factory.createIdentifier(\"undefined\");\n}\nfunction isObjectLiteralType(type) {\n return type.flags & 524288 /* Object */ && (getObjectFlags(type) & 128 /* ObjectLiteral */ || type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode));\n}\nfunction getUnmatchedAttributes(checker, target, source) {\n const attrsType = checker.getContextualType(source.attributes);\n if (attrsType === void 0) return emptyArray;\n const targetProps = attrsType.getProperties();\n if (!length(targetProps)) return emptyArray;\n const seenNames = /* @__PURE__ */ new Set();\n for (const sourceProp of source.attributes.properties) {\n if (isJsxAttribute(sourceProp)) {\n seenNames.add(getEscapedTextOfJsxAttributeName(sourceProp.name));\n }\n if (isJsxSpreadAttribute(sourceProp)) {\n const type = checker.getTypeAtLocation(sourceProp.expression);\n for (const prop of type.getProperties()) {\n seenNames.add(prop.escapedName);\n }\n }\n }\n return filter(targetProps, (targetProp) => isIdentifierText(targetProp.name, target, 1 /* JSX */) && !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */ || seenNames.has(targetProp.escapedName)));\n}\nfunction tryGetContainingMethodDeclaration(node, callExpression) {\n if (isTypeLiteralNode(node)) {\n return void 0;\n }\n const declaration = findAncestor(callExpression, (n) => isMethodDeclaration(n) || isConstructorDeclaration(n));\n return declaration && declaration.parent === node ? declaration : void 0;\n}\nfunction createPropertyNameFromSymbol(symbol, target, quotePreference, checker) {\n if (isTransientSymbol(symbol)) {\n const prop = checker.symbolToNode(\n symbol,\n 111551 /* Value */,\n /*enclosingDeclaration*/\n void 0,\n /*flags*/\n void 0,\n 1 /* WriteComputedProps */\n );\n if (prop && isComputedPropertyName(prop)) return prop;\n }\n return createPropertyNameNodeForIdentifierOrLiteral(\n symbol.name,\n target,\n quotePreference === 0 /* Single */,\n /*stringNamed*/\n false,\n /*isMethod*/\n false\n );\n}\nfunction findScope(node) {\n if (findAncestor(node, isJsxExpression)) {\n const returnStatement = findAncestor(node.parent, isReturnStatement);\n if (returnStatement) return returnStatement;\n }\n return getSourceFileOfNode(node);\n}\nfunction getAllSupers(decl, checker) {\n const res = [];\n while (decl) {\n const superElement = getClassExtendsHeritageElement(decl);\n const superSymbol = superElement && checker.getSymbolAtLocation(superElement.expression);\n if (!superSymbol) break;\n const symbol = superSymbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(superSymbol) : superSymbol;\n const superDecl = symbol.declarations && find(symbol.declarations, isClassLike);\n if (!superDecl) break;\n res.push(superDecl);\n decl = superDecl;\n }\n return res;\n}\n\n// src/services/codefixes/fixAddMissingNewOperator.ts\nvar fixId25 = \"addMissingNewOperator\";\nvar errorCodes29 = [Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code];\nregisterCodeFix({\n errorCodes: errorCodes29,\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingNewOperator(t, sourceFile, span));\n return [createCodeFixAction(fixId25, changes, Diagnostics.Add_missing_new_operator_to_call, fixId25, Diagnostics.Add_missing_new_operator_to_all_calls)];\n },\n fixIds: [fixId25],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes29, (changes, diag2) => addMissingNewOperator(changes, context.sourceFile, diag2))\n});\nfunction addMissingNewOperator(changes, sourceFile, span) {\n const call = cast(findAncestorMatchingSpan2(sourceFile, span), isCallExpression);\n const newExpression = factory.createNewExpression(call.expression, call.typeArguments, call.arguments);\n changes.replaceNode(sourceFile, call, newExpression);\n}\nfunction findAncestorMatchingSpan2(sourceFile, span) {\n let token = getTokenAtPosition(sourceFile, span.start);\n const end = textSpanEnd(span);\n while (token.end < end) {\n token = token.parent;\n }\n return token;\n}\n\n// src/services/codefixes/fixAddMissingParam.ts\nvar addMissingParamFixId = \"addMissingParam\";\nvar addOptionalParamFixId = \"addOptionalParam\";\nvar errorCodes30 = [Diagnostics.Expected_0_arguments_but_got_1.code];\nregisterCodeFix({\n errorCodes: errorCodes30,\n fixIds: [addMissingParamFixId, addOptionalParamFixId],\n getCodeActions(context) {\n const info = getInfo11(context.sourceFile, context.program, context.span.start);\n if (info === void 0) return void 0;\n const { name, declarations, newParameters, newOptionalParameters } = info;\n const actions2 = [];\n if (length(newParameters)) {\n append(\n actions2,\n createCodeFixAction(\n addMissingParamFixId,\n ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange19(t, context.program, context.preferences, context.host, declarations, newParameters)),\n [length(newParameters) > 1 ? Diagnostics.Add_missing_parameters_to_0 : Diagnostics.Add_missing_parameter_to_0, name],\n addMissingParamFixId,\n Diagnostics.Add_all_missing_parameters\n )\n );\n }\n if (length(newOptionalParameters)) {\n append(\n actions2,\n createCodeFixAction(\n addOptionalParamFixId,\n ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange19(t, context.program, context.preferences, context.host, declarations, newOptionalParameters)),\n [length(newOptionalParameters) > 1 ? Diagnostics.Add_optional_parameters_to_0 : Diagnostics.Add_optional_parameter_to_0, name],\n addOptionalParamFixId,\n Diagnostics.Add_all_optional_parameters\n )\n );\n }\n return actions2;\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes30, (changes, diag2) => {\n const info = getInfo11(context.sourceFile, context.program, diag2.start);\n if (info) {\n const { declarations, newParameters, newOptionalParameters } = info;\n if (context.fixId === addMissingParamFixId) {\n doChange19(changes, context.program, context.preferences, context.host, declarations, newParameters);\n }\n if (context.fixId === addOptionalParamFixId) {\n doChange19(changes, context.program, context.preferences, context.host, declarations, newOptionalParameters);\n }\n }\n })\n});\nfunction getInfo11(sourceFile, program, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const callExpression = findAncestor(token, isCallExpression);\n if (callExpression === void 0 || length(callExpression.arguments) === 0) {\n return void 0;\n }\n const checker = program.getTypeChecker();\n const type = checker.getTypeAtLocation(callExpression.expression);\n const convertibleSignatureDeclarations = filter(type.symbol.declarations, isConvertibleSignatureDeclaration);\n if (convertibleSignatureDeclarations === void 0) {\n return void 0;\n }\n const nonOverloadDeclaration = lastOrUndefined(convertibleSignatureDeclarations);\n if (nonOverloadDeclaration === void 0 || nonOverloadDeclaration.body === void 0 || isSourceFileFromLibrary(program, nonOverloadDeclaration.getSourceFile())) {\n return void 0;\n }\n const name = tryGetName2(nonOverloadDeclaration);\n if (name === void 0) {\n return void 0;\n }\n const newParameters = [];\n const newOptionalParameters = [];\n const parametersLength = length(nonOverloadDeclaration.parameters);\n const argumentsLength = length(callExpression.arguments);\n if (parametersLength > argumentsLength) {\n return void 0;\n }\n const declarations = [nonOverloadDeclaration, ...getOverloads(nonOverloadDeclaration, convertibleSignatureDeclarations)];\n for (let i = 0, pos2 = 0, paramIndex = 0; i < argumentsLength; i++) {\n const arg = callExpression.arguments[i];\n const expr = isAccessExpression(arg) ? getNameOfAccessExpression(arg) : arg;\n const type2 = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(arg)));\n const parameter = pos2 < parametersLength ? nonOverloadDeclaration.parameters[pos2] : void 0;\n if (parameter && checker.isTypeAssignableTo(type2, checker.getTypeAtLocation(parameter))) {\n pos2++;\n continue;\n }\n const name2 = expr && isIdentifier(expr) ? expr.text : `p${paramIndex++}`;\n const typeNode = typeToTypeNode(checker, type2, nonOverloadDeclaration);\n append(newParameters, {\n pos: i,\n declaration: createParameter(\n name2,\n typeNode,\n /*questionToken*/\n void 0\n )\n });\n if (isOptionalPos(declarations, pos2)) {\n continue;\n }\n append(newOptionalParameters, {\n pos: i,\n declaration: createParameter(name2, typeNode, factory.createToken(58 /* QuestionToken */))\n });\n }\n return {\n newParameters,\n newOptionalParameters,\n name: declarationNameToString(name),\n declarations\n };\n}\nfunction tryGetName2(node) {\n const name = getNameOfDeclaration(node);\n if (name) {\n return name;\n }\n if (isVariableDeclaration(node.parent) && isIdentifier(node.parent.name) || isPropertyDeclaration(node.parent) || isParameter(node.parent)) {\n return node.parent.name;\n }\n}\nfunction typeToTypeNode(checker, type, enclosingDeclaration) {\n return checker.typeToTypeNode(checker.getWidenedType(type), enclosingDeclaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */) ?? factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n}\nfunction doChange19(changes, program, preferences, host, declarations, newParameters) {\n const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n forEach(declarations, (declaration) => {\n const sourceFile = getSourceFileOfNode(declaration);\n const importAdder = createImportAdder(sourceFile, program, preferences, host);\n if (length(declaration.parameters)) {\n changes.replaceNodeRangeWithNodes(\n sourceFile,\n first(declaration.parameters),\n last(declaration.parameters),\n updateParameters(importAdder, scriptTarget, declaration, newParameters),\n {\n joiner: \", \",\n indentation: 0,\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n }\n );\n } else {\n forEach(updateParameters(importAdder, scriptTarget, declaration, newParameters), (parameter, index) => {\n if (length(declaration.parameters) === 0 && index === 0) {\n changes.insertNodeAt(sourceFile, declaration.parameters.end, parameter);\n } else {\n changes.insertNodeAtEndOfList(sourceFile, declaration.parameters, parameter);\n }\n });\n }\n importAdder.writeFixes(changes);\n });\n}\nfunction isConvertibleSignatureDeclaration(node) {\n switch (node.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 220 /* ArrowFunction */:\n return true;\n default:\n return false;\n }\n}\nfunction updateParameters(importAdder, scriptTarget, node, newParameters) {\n const parameters = map(node.parameters, (p) => factory.createParameterDeclaration(\n p.modifiers,\n p.dotDotDotToken,\n p.name,\n p.questionToken,\n p.type,\n p.initializer\n ));\n for (const { pos, declaration } of newParameters) {\n const prev = pos > 0 ? parameters[pos - 1] : void 0;\n parameters.splice(\n pos,\n 0,\n factory.updateParameterDeclaration(\n declaration,\n declaration.modifiers,\n declaration.dotDotDotToken,\n declaration.name,\n prev && prev.questionToken ? factory.createToken(58 /* QuestionToken */) : declaration.questionToken,\n getParameterType(importAdder, declaration.type, scriptTarget),\n declaration.initializer\n )\n );\n }\n return parameters;\n}\nfunction getOverloads(implementation, declarations) {\n const overloads = [];\n for (const declaration of declarations) {\n if (isOverload(declaration)) {\n if (length(declaration.parameters) === length(implementation.parameters)) {\n overloads.push(declaration);\n continue;\n }\n if (length(declaration.parameters) > length(implementation.parameters)) {\n return [];\n }\n }\n }\n return overloads;\n}\nfunction isOverload(declaration) {\n return isConvertibleSignatureDeclaration(declaration) && declaration.body === void 0;\n}\nfunction createParameter(name, type, questionToken) {\n return factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n name,\n questionToken,\n type,\n /*initializer*/\n void 0\n );\n}\nfunction isOptionalPos(declarations, pos) {\n return length(declarations) && some(declarations, (d) => pos < length(d.parameters) && !!d.parameters[pos] && d.parameters[pos].questionToken === void 0);\n}\nfunction getParameterType(importAdder, typeNode, scriptTarget) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n if (importableReference) {\n importSymbols(importAdder, importableReference.symbols);\n return importableReference.typeNode;\n }\n return typeNode;\n}\n\n// src/services/codefixes/fixCannotFindModule.ts\nvar fixName2 = \"fixCannotFindModule\";\nvar fixIdInstallTypesPackage = \"installTypesPackage\";\nvar errorCodeCannotFindModule = Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations.code;\nvar errorCannotFindImplicitJsxImport = Diagnostics.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed.code;\nvar errorCodes31 = [\n errorCodeCannotFindModule,\n Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code,\n errorCannotFindImplicitJsxImport\n];\nregisterCodeFix({\n errorCodes: errorCodes31,\n getCodeActions: function getCodeActionsToFixNotFoundModule(context) {\n const { host, sourceFile, span: { start }, errorCode } = context;\n const packageName = errorCode === errorCannotFindImplicitJsxImport ? getJSXImplicitImportBase(context.program.getCompilerOptions(), sourceFile) : tryGetImportedPackageName(sourceFile, start);\n if (packageName === void 0) return void 0;\n const typesPackageName = getTypesPackageNameToInstall(packageName, host, errorCode);\n return typesPackageName === void 0 ? [] : [createCodeFixAction(\n fixName2,\n /*changes*/\n [],\n [Diagnostics.Install_0, typesPackageName],\n fixIdInstallTypesPackage,\n Diagnostics.Install_all_missing_types_packages,\n getInstallCommand(sourceFile.fileName, typesPackageName)\n )];\n },\n fixIds: [fixIdInstallTypesPackage],\n getAllCodeActions: (context) => {\n return codeFixAll(context, errorCodes31, (_changes, diag2, commands) => {\n const packageName = tryGetImportedPackageName(diag2.file, diag2.start);\n if (packageName === void 0) return void 0;\n switch (context.fixId) {\n case fixIdInstallTypesPackage: {\n const pkg = getTypesPackageNameToInstall(packageName, context.host, diag2.code);\n if (pkg) {\n commands.push(getInstallCommand(diag2.file.fileName, pkg));\n }\n break;\n }\n default:\n Debug.fail(`Bad fixId: ${context.fixId}`);\n }\n });\n }\n});\nfunction getInstallCommand(fileName, packageName) {\n return { type: \"install package\", file: fileName, packageName };\n}\nfunction tryGetImportedPackageName(sourceFile, pos) {\n const moduleSpecifierText = tryCast(getTokenAtPosition(sourceFile, pos), isStringLiteral);\n if (!moduleSpecifierText) return void 0;\n const moduleName = moduleSpecifierText.text;\n const { packageName } = parsePackageName(moduleName);\n return isExternalModuleNameRelative(packageName) ? void 0 : packageName;\n}\nfunction getTypesPackageNameToInstall(packageName, host, diagCode) {\n var _a;\n return diagCode === errorCodeCannotFindModule ? nodeCoreModules.has(packageName) ? \"@types/node\" : void 0 : ((_a = host.isKnownTypesPackageName) == null ? void 0 : _a.call(host, packageName)) ? getTypesPackageName(packageName) : void 0;\n}\n\n// src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts\nvar errorCodes32 = [\n Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,\n Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2.code,\n Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more.code,\n Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code,\n Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1.code,\n Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more.code\n];\nvar fixId26 = \"fixClassDoesntImplementInheritedAbstractMember\";\nregisterCodeFix({\n errorCodes: errorCodes32,\n getCodeActions: function getCodeActionsToFixClassNotImplementingInheritedMembers(context) {\n const { sourceFile, span } = context;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingMembers(getClass2(sourceFile, span.start), sourceFile, context, t, context.preferences));\n return changes.length === 0 ? void 0 : [createCodeFixAction(fixId26, changes, Diagnostics.Implement_inherited_abstract_class, fixId26, Diagnostics.Implement_all_inherited_abstract_classes)];\n },\n fixIds: [fixId26],\n getAllCodeActions: function getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember(context) {\n const seenClassDeclarations = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes32, (changes, diag2) => {\n const classDeclaration = getClass2(diag2.file, diag2.start);\n if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) {\n addMissingMembers(classDeclaration, context.sourceFile, context, changes, context.preferences);\n }\n });\n }\n});\nfunction getClass2(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n return cast(token.parent, isClassLike);\n}\nfunction addMissingMembers(classDeclaration, sourceFile, context, changeTracker, preferences) {\n const extendsNode = getEffectiveBaseTypeNode(classDeclaration);\n const checker = context.program.getTypeChecker();\n const instantiatedExtendsType = checker.getTypeAtLocation(extendsNode);\n const abstractAndNonPrivateExtendsSymbols = checker.getPropertiesOfType(instantiatedExtendsType).filter(symbolPointsToNonPrivateAndAbstractMember);\n const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host);\n createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, sourceFile, context, preferences, importAdder, (member) => changeTracker.insertMemberAtStart(sourceFile, classDeclaration, member));\n importAdder.writeFixes(changeTracker);\n}\nfunction symbolPointsToNonPrivateAndAbstractMember(symbol) {\n const flags = getSyntacticModifierFlags(first(symbol.getDeclarations()));\n return !(flags & 2 /* Private */) && !!(flags & 64 /* Abstract */);\n}\n\n// src/services/codefixes/fixClassSuperMustPrecedeThisAccess.ts\nvar fixId27 = \"classSuperMustPrecedeThisAccess\";\nvar errorCodes33 = [Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code];\nregisterCodeFix({\n errorCodes: errorCodes33,\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const nodes = getNodes(sourceFile, span.start);\n if (!nodes) return void 0;\n const { constructor, superCall } = nodes;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange20(t, sourceFile, constructor, superCall));\n return [createCodeFixAction(fixId27, changes, Diagnostics.Make_super_call_the_first_statement_in_the_constructor, fixId27, Diagnostics.Make_all_super_calls_the_first_statement_in_their_constructor)];\n },\n fixIds: [fixId27],\n getAllCodeActions(context) {\n const { sourceFile } = context;\n const seenClasses = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes33, (changes, diag2) => {\n const nodes = getNodes(diag2.file, diag2.start);\n if (!nodes) return;\n const { constructor, superCall } = nodes;\n if (addToSeen(seenClasses, getNodeId(constructor.parent))) {\n doChange20(changes, sourceFile, constructor, superCall);\n }\n });\n }\n});\nfunction doChange20(changes, sourceFile, constructor, superCall) {\n changes.insertNodeAtConstructorStart(sourceFile, constructor, superCall);\n changes.delete(sourceFile, superCall);\n}\nfunction getNodes(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (token.kind !== 110 /* ThisKeyword */) return void 0;\n const constructor = getContainingFunction(token);\n const superCall = findSuperCall(constructor.body);\n return superCall && !superCall.expression.arguments.some((arg) => isPropertyAccessExpression(arg) && arg.expression === token) ? { constructor, superCall } : void 0;\n}\nfunction findSuperCall(n) {\n return isExpressionStatement(n) && isSuperCall(n.expression) ? n : isFunctionLike(n) ? void 0 : forEachChild(n, findSuperCall);\n}\n\n// src/services/codefixes/fixConstructorForDerivedNeedSuperCall.ts\nvar fixId28 = \"constructorForDerivedNeedSuperCall\";\nvar errorCodes34 = [Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call.code];\nregisterCodeFix({\n errorCodes: errorCodes34,\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const ctr = getNode(sourceFile, span.start);\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange21(t, sourceFile, ctr));\n return [createCodeFixAction(fixId28, changes, Diagnostics.Add_missing_super_call, fixId28, Diagnostics.Add_all_missing_super_calls)];\n },\n fixIds: [fixId28],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes34, (changes, diag2) => doChange21(changes, context.sourceFile, getNode(diag2.file, diag2.start)))\n});\nfunction getNode(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n Debug.assert(isConstructorDeclaration(token.parent), \"token should be at the constructor declaration\");\n return token.parent;\n}\nfunction doChange21(changes, sourceFile, ctr) {\n const superCall = factory.createExpressionStatement(factory.createCallExpression(\n factory.createSuper(),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n emptyArray\n ));\n changes.insertNodeAtConstructorStart(sourceFile, ctr, superCall);\n}\n\n// src/services/codefixes/fixEnableJsxFlag.ts\nvar fixID = \"fixEnableJsxFlag\";\nvar errorCodes35 = [Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code];\nregisterCodeFix({\n errorCodes: errorCodes35,\n getCodeActions: function getCodeActionsToFixEnableJsxFlag(context) {\n const { configFile } = context.program.getCompilerOptions();\n if (configFile === void 0) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => doChange22(changeTracker, configFile));\n return [\n createCodeFixActionWithoutFixAll(fixID, changes, Diagnostics.Enable_the_jsx_flag_in_your_configuration_file)\n ];\n },\n fixIds: [fixID],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes35, (changes) => {\n const { configFile } = context.program.getCompilerOptions();\n if (configFile === void 0) {\n return void 0;\n }\n doChange22(changes, configFile);\n })\n});\nfunction doChange22(changeTracker, configFile) {\n setJsonCompilerOptionValue(changeTracker, configFile, \"jsx\", factory.createStringLiteral(\"react\"));\n}\n\n// src/services/codefixes/fixNaNEquality.ts\nvar fixId29 = \"fixNaNEquality\";\nvar errorCodes36 = [\n Diagnostics.This_condition_will_always_return_0.code\n];\nregisterCodeFix({\n errorCodes: errorCodes36,\n getCodeActions(context) {\n const { sourceFile, span, program } = context;\n const info = getInfo12(program, sourceFile, span);\n if (info === void 0) return;\n const { suggestion, expression, arg } = info;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange23(t, sourceFile, arg, expression));\n return [createCodeFixAction(fixId29, changes, [Diagnostics.Use_0, suggestion], fixId29, Diagnostics.Use_Number_isNaN_in_all_conditions)];\n },\n fixIds: [fixId29],\n getAllCodeActions: (context) => {\n return codeFixAll(context, errorCodes36, (changes, diag2) => {\n const info = getInfo12(context.program, diag2.file, createTextSpan(diag2.start, diag2.length));\n if (info) {\n doChange23(changes, diag2.file, info.arg, info.expression);\n }\n });\n }\n});\nfunction getInfo12(program, sourceFile, span) {\n const diag2 = find(program.getSemanticDiagnostics(sourceFile), (diag3) => diag3.start === span.start && diag3.length === span.length);\n if (diag2 === void 0 || diag2.relatedInformation === void 0) return;\n const related = find(diag2.relatedInformation, (related2) => related2.code === Diagnostics.Did_you_mean_0.code);\n if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) return;\n const token = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length));\n if (token === void 0) return;\n if (isExpression(token) && isBinaryExpression(token.parent)) {\n return { suggestion: getSuggestion(related.messageText), expression: token.parent, arg: token };\n }\n return void 0;\n}\nfunction doChange23(changes, sourceFile, arg, expression) {\n const callExpression = factory.createCallExpression(\n factory.createPropertyAccessExpression(factory.createIdentifier(\"Number\"), factory.createIdentifier(\"isNaN\")),\n /*typeArguments*/\n void 0,\n [arg]\n );\n const operator = expression.operatorToken.kind;\n changes.replaceNode(\n sourceFile,\n expression,\n operator === 38 /* ExclamationEqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? factory.createPrefixUnaryExpression(54 /* ExclamationToken */, callExpression) : callExpression\n );\n}\nfunction getSuggestion(messageText) {\n const [, suggestion] = flattenDiagnosticMessageText(messageText, \"\\n\", 0).match(/'(.*)'/) || [];\n return suggestion;\n}\n\n// src/services/codefixes/fixModuleAndTargetOptions.ts\nregisterCodeFix({\n errorCodes: [\n Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,\n Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,\n Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code\n ],\n getCodeActions: function getCodeActionsToFixModuleAndTarget(context) {\n const compilerOptions = context.program.getCompilerOptions();\n const { configFile } = compilerOptions;\n if (configFile === void 0) {\n return void 0;\n }\n const codeFixes = [];\n const moduleKind = getEmitModuleKind(compilerOptions);\n const moduleOutOfRange = moduleKind >= 5 /* ES2015 */ && moduleKind < 99 /* ESNext */;\n if (moduleOutOfRange) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n setJsonCompilerOptionValue(changes2, configFile, \"module\", factory.createStringLiteral(\"esnext\"));\n });\n codeFixes.push(createCodeFixActionWithoutFixAll(\"fixModuleOption\", changes, [Diagnostics.Set_the_module_option_in_your_configuration_file_to_0, \"esnext\"]));\n }\n const target = getEmitScriptTarget(compilerOptions);\n const targetOutOfRange = target < 4 /* ES2017 */ || target > 99 /* ESNext */;\n if (targetOutOfRange) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n const configObject = getTsConfigObjectLiteralExpression(configFile);\n if (!configObject) return;\n const options = [[\"target\", factory.createStringLiteral(\"es2017\")]];\n if (moduleKind === 1 /* CommonJS */) {\n options.push([\"module\", factory.createStringLiteral(\"commonjs\")]);\n }\n setJsonCompilerOptionValues(tracker, configFile, options);\n });\n codeFixes.push(createCodeFixActionWithoutFixAll(\"fixTargetOption\", changes, [Diagnostics.Set_the_target_option_in_your_configuration_file_to_0, \"es2017\"]));\n }\n return codeFixes.length ? codeFixes : void 0;\n }\n});\n\n// src/services/codefixes/fixPropertyAssignment.ts\nvar fixId30 = \"fixPropertyAssignment\";\nvar errorCodes37 = [\n Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code\n];\nregisterCodeFix({\n errorCodes: errorCodes37,\n fixIds: [fixId30],\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const property = getProperty2(sourceFile, span.start);\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange24(t, context.sourceFile, property));\n return [createCodeFixAction(fixId30, changes, [Diagnostics.Change_0_to_1, \"=\", \":\"], fixId30, [Diagnostics.Switch_each_misused_0_to_1, \"=\", \":\"])];\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes37, (changes, diag2) => doChange24(changes, diag2.file, getProperty2(diag2.file, diag2.start)))\n});\nfunction doChange24(changes, sourceFile, node) {\n changes.replaceNode(sourceFile, node, factory.createPropertyAssignment(node.name, node.objectAssignmentInitializer));\n}\nfunction getProperty2(sourceFile, pos) {\n return cast(getTokenAtPosition(sourceFile, pos).parent, isShorthandPropertyAssignment);\n}\n\n// src/services/codefixes/fixExtendsInterfaceBecomesImplements.ts\nvar fixId31 = \"extendsInterfaceBecomesImplements\";\nvar errorCodes38 = [Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];\nregisterCodeFix({\n errorCodes: errorCodes38,\n getCodeActions(context) {\n const { sourceFile } = context;\n const nodes = getNodes2(sourceFile, context.span.start);\n if (!nodes) return void 0;\n const { extendsToken, heritageClauses } = nodes;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChanges2(t, sourceFile, extendsToken, heritageClauses));\n return [createCodeFixAction(fixId31, changes, Diagnostics.Change_extends_to_implements, fixId31, Diagnostics.Change_all_extended_interfaces_to_implements)];\n },\n fixIds: [fixId31],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes38, (changes, diag2) => {\n const nodes = getNodes2(diag2.file, diag2.start);\n if (nodes) doChanges2(changes, diag2.file, nodes.extendsToken, nodes.heritageClauses);\n })\n});\nfunction getNodes2(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const heritageClauses = getContainingClass(token).heritageClauses;\n const extendsToken = heritageClauses[0].getFirstToken();\n return extendsToken.kind === 96 /* ExtendsKeyword */ ? { extendsToken, heritageClauses } : void 0;\n}\nfunction doChanges2(changes, sourceFile, extendsToken, heritageClauses) {\n changes.replaceNode(sourceFile, extendsToken, factory.createToken(119 /* ImplementsKeyword */));\n if (heritageClauses.length === 2 && heritageClauses[0].token === 96 /* ExtendsKeyword */ && heritageClauses[1].token === 119 /* ImplementsKeyword */) {\n const implementsToken = heritageClauses[1].getFirstToken();\n const implementsFullStart = implementsToken.getFullStart();\n changes.replaceRange(sourceFile, { pos: implementsFullStart, end: implementsFullStart }, factory.createToken(28 /* CommaToken */));\n const text = sourceFile.text;\n let end = implementsToken.end;\n while (end < text.length && isWhiteSpaceSingleLine(text.charCodeAt(end))) {\n end++;\n }\n changes.deleteRange(sourceFile, { pos: implementsToken.getStart(), end });\n }\n}\n\n// src/services/codefixes/fixForgottenThisPropertyAccess.ts\nvar fixId32 = \"forgottenThisPropertyAccess\";\nvar didYouMeanStaticMemberCode = Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code;\nvar errorCodes39 = [\n Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,\n didYouMeanStaticMemberCode\n];\nregisterCodeFix({\n errorCodes: errorCodes39,\n getCodeActions(context) {\n const { sourceFile } = context;\n const info = getInfo13(sourceFile, context.span.start, context.errorCode);\n if (!info) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange25(t, sourceFile, info));\n return [createCodeFixAction(fixId32, changes, [Diagnostics.Add_0_to_unresolved_variable, info.className || \"this\"], fixId32, Diagnostics.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)];\n },\n fixIds: [fixId32],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes39, (changes, diag2) => {\n const info = getInfo13(diag2.file, diag2.start, diag2.code);\n if (info) doChange25(changes, context.sourceFile, info);\n })\n});\nfunction getInfo13(sourceFile, pos, diagCode) {\n const node = getTokenAtPosition(sourceFile, pos);\n if (isIdentifier(node) || isPrivateIdentifier(node)) {\n return { node, className: diagCode === didYouMeanStaticMemberCode ? getContainingClass(node).name.text : void 0 };\n }\n}\nfunction doChange25(changes, sourceFile, { node, className }) {\n suppressLeadingAndTrailingTrivia(node);\n changes.replaceNode(sourceFile, node, factory.createPropertyAccessExpression(className ? factory.createIdentifier(className) : factory.createThis(), node));\n}\n\n// src/services/codefixes/fixInvalidJsxCharacters.ts\nvar fixIdExpression = \"fixInvalidJsxCharacters_expression\";\nvar fixIdHtmlEntity = \"fixInvalidJsxCharacters_htmlEntity\";\nvar errorCodes40 = [\n Diagnostics.Unexpected_token_Did_you_mean_or_gt.code,\n Diagnostics.Unexpected_token_Did_you_mean_or_rbrace.code\n];\nregisterCodeFix({\n errorCodes: errorCodes40,\n fixIds: [fixIdExpression, fixIdHtmlEntity],\n getCodeActions(context) {\n const { sourceFile, preferences, span } = context;\n const changeToExpression = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange26(\n t,\n preferences,\n sourceFile,\n span.start,\n /*useHtmlEntity*/\n false\n ));\n const changeToHtmlEntity = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange26(\n t,\n preferences,\n sourceFile,\n span.start,\n /*useHtmlEntity*/\n true\n ));\n return [\n createCodeFixAction(fixIdExpression, changeToExpression, Diagnostics.Wrap_invalid_character_in_an_expression_container, fixIdExpression, Diagnostics.Wrap_all_invalid_characters_in_an_expression_container),\n createCodeFixAction(fixIdHtmlEntity, changeToHtmlEntity, Diagnostics.Convert_invalid_character_to_its_html_entity_code, fixIdHtmlEntity, Diagnostics.Convert_all_invalid_characters_to_HTML_entity_code)\n ];\n },\n getAllCodeActions(context) {\n return codeFixAll(context, errorCodes40, (changes, diagnostic) => doChange26(changes, context.preferences, diagnostic.file, diagnostic.start, context.fixId === fixIdHtmlEntity));\n }\n});\nvar htmlEntity = {\n \">\": \">\",\n \"}\": \"}\"\n};\nfunction isValidCharacter(character) {\n return hasProperty(htmlEntity, character);\n}\nfunction doChange26(changes, preferences, sourceFile, start, useHtmlEntity) {\n const character = sourceFile.getText()[start];\n if (!isValidCharacter(character)) {\n return;\n }\n const replacement = useHtmlEntity ? htmlEntity[character] : `{${quote(sourceFile, preferences, character)}}`;\n changes.replaceRangeWithText(sourceFile, { pos: start, end: start + 1 }, replacement);\n}\n\n// src/services/codefixes/fixUnmatchedParameter.ts\nvar deleteUnmatchedParameter = \"deleteUnmatchedParameter\";\nvar renameUnmatchedParameter = \"renameUnmatchedParameter\";\nvar errorCodes41 = [\n Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code\n];\nregisterCodeFix({\n fixIds: [deleteUnmatchedParameter, renameUnmatchedParameter],\n errorCodes: errorCodes41,\n getCodeActions: function getCodeActionsToFixUnmatchedParameter(context) {\n const { sourceFile, span } = context;\n const actions2 = [];\n const info = getInfo14(sourceFile, span.start);\n if (info) {\n append(actions2, getDeleteAction(context, info));\n append(actions2, getRenameAction(context, info));\n return actions2;\n }\n return void 0;\n },\n getAllCodeActions: function getAllCodeActionsToFixUnmatchedParameter(context) {\n const tagsToSignature = /* @__PURE__ */ new Map();\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n eachDiagnostic(context, errorCodes41, ({ file, start }) => {\n const info = getInfo14(file, start);\n if (info) {\n tagsToSignature.set(info.signature, append(tagsToSignature.get(info.signature), info.jsDocParameterTag));\n }\n });\n tagsToSignature.forEach((tags, signature) => {\n if (context.fixId === deleteUnmatchedParameter) {\n const tagsSet = new Set(tags);\n changes.filterJSDocTags(signature.getSourceFile(), signature, (t) => !tagsSet.has(t));\n }\n });\n }));\n }\n});\nfunction getDeleteAction(context, { name, jsDocHost, jsDocParameterTag }) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.filterJSDocTags(context.sourceFile, jsDocHost, (t) => t !== jsDocParameterTag));\n return createCodeFixAction(\n deleteUnmatchedParameter,\n changes,\n [Diagnostics.Delete_unused_param_tag_0, name.getText(context.sourceFile)],\n deleteUnmatchedParameter,\n Diagnostics.Delete_all_unused_param_tags\n );\n}\nfunction getRenameAction(context, { name, jsDocHost, signature, jsDocParameterTag }) {\n if (!length(signature.parameters)) return void 0;\n const sourceFile = context.sourceFile;\n const tags = getJSDocTags(signature);\n const names = /* @__PURE__ */ new Set();\n for (const tag of tags) {\n if (isJSDocParameterTag(tag) && isIdentifier(tag.name)) {\n names.add(tag.name.escapedText);\n }\n }\n const parameterName = firstDefined(signature.parameters, (p) => isIdentifier(p.name) && !names.has(p.name.escapedText) ? p.name.getText(sourceFile) : void 0);\n if (parameterName === void 0) return void 0;\n const newJSDocParameterTag = factory.updateJSDocParameterTag(\n jsDocParameterTag,\n jsDocParameterTag.tagName,\n factory.createIdentifier(parameterName),\n jsDocParameterTag.isBracketed,\n jsDocParameterTag.typeExpression,\n jsDocParameterTag.isNameFirst,\n jsDocParameterTag.comment\n );\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));\n return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]);\n}\nfunction getInfo14(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (token.parent && isJSDocParameterTag(token.parent) && isIdentifier(token.parent.name)) {\n const jsDocParameterTag = token.parent;\n const jsDocHost = getJSDocHost(jsDocParameterTag);\n const signature = getHostSignatureFromJSDoc(jsDocParameterTag);\n if (jsDocHost && signature) {\n return { jsDocHost, signature, name: token.parent.name, jsDocParameterTag };\n }\n }\n return void 0;\n}\n\n// src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts\nvar fixId33 = \"fixUnreferenceableDecoratorMetadata\";\nvar errorCodes42 = [Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code];\nregisterCodeFix({\n errorCodes: errorCodes42,\n getCodeActions: (context) => {\n const importDeclaration = getImportDeclaration(context.sourceFile, context.program, context.span.start);\n if (!importDeclaration) return;\n const namespaceChanges = ts_textChanges_exports.ChangeTracker.with(context, (t) => importDeclaration.kind === 277 /* ImportSpecifier */ && doNamespaceImportChange(t, context.sourceFile, importDeclaration, context.program));\n const typeOnlyChanges = ts_textChanges_exports.ChangeTracker.with(context, (t) => doTypeOnlyImportChange(t, context.sourceFile, importDeclaration, context.program));\n let actions2;\n if (namespaceChanges.length) {\n actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId33, namespaceChanges, Diagnostics.Convert_named_imports_to_namespace_import));\n }\n if (typeOnlyChanges.length) {\n actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId33, typeOnlyChanges, Diagnostics.Use_import_type));\n }\n return actions2;\n },\n fixIds: [fixId33]\n});\nfunction getImportDeclaration(sourceFile, program, start) {\n const identifier = tryCast(getTokenAtPosition(sourceFile, start), isIdentifier);\n if (!identifier || identifier.parent.kind !== 184 /* TypeReference */) return;\n const checker = program.getTypeChecker();\n const symbol = checker.getSymbolAtLocation(identifier);\n return find((symbol == null ? void 0 : symbol.declarations) || emptyArray, or(isImportClause, isImportSpecifier, isImportEqualsDeclaration));\n}\nfunction doTypeOnlyImportChange(changes, sourceFile, importDeclaration, program) {\n if (importDeclaration.kind === 272 /* ImportEqualsDeclaration */) {\n changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importDeclaration.name);\n return;\n }\n const importClause = importDeclaration.kind === 274 /* ImportClause */ ? importDeclaration : importDeclaration.parent.parent;\n if (importClause.name && importClause.namedBindings) {\n return;\n }\n const checker = program.getTypeChecker();\n const importsValue = !!forEachImportClauseDeclaration(importClause, (decl) => {\n if (skipAlias(decl.symbol, checker).flags & 111551 /* Value */) return true;\n });\n if (importsValue) {\n return;\n }\n changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importClause);\n}\nfunction doNamespaceImportChange(changes, sourceFile, importDeclaration, program) {\n ts_refactor_exports.doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, importDeclaration.parent);\n}\n\n// src/services/codefixes/fixUnusedIdentifier.ts\nvar fixName3 = \"unusedIdentifier\";\nvar fixIdPrefix = \"unusedIdentifier_prefix\";\nvar fixIdDelete = \"unusedIdentifier_delete\";\nvar fixIdDeleteImports = \"unusedIdentifier_deleteImports\";\nvar fixIdInfer = \"unusedIdentifier_infer\";\nvar errorCodes43 = [\n Diagnostics._0_is_declared_but_its_value_is_never_read.code,\n Diagnostics._0_is_declared_but_never_used.code,\n Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,\n Diagnostics.All_imports_in_import_declaration_are_unused.code,\n Diagnostics.All_destructured_elements_are_unused.code,\n Diagnostics.All_variables_are_unused.code,\n Diagnostics.All_type_parameters_are_unused.code\n];\nregisterCodeFix({\n errorCodes: errorCodes43,\n getCodeActions(context) {\n const { errorCode, sourceFile, program, cancellationToken } = context;\n const checker = program.getTypeChecker();\n const sourceFiles = program.getSourceFiles();\n const token = getTokenAtPosition(sourceFile, context.span.start);\n if (isJSDocTemplateTag(token)) {\n return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => t.delete(sourceFile, token)), Diagnostics.Remove_template_tag)];\n }\n if (token.kind === 30 /* LessThanToken */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteTypeParameters(t, sourceFile, token));\n return [createDeleteFix(changes, Diagnostics.Remove_type_parameters)];\n }\n const importDecl = tryGetFullImport(token);\n if (importDecl) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.delete(sourceFile, importDecl));\n return [createCodeFixAction(fixName3, changes, [Diagnostics.Remove_import_from_0, showModuleSpecifier(importDecl)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)];\n } else if (isImport(token)) {\n const deletion = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryDeleteDeclaration(\n sourceFile,\n token,\n t,\n checker,\n sourceFiles,\n program,\n cancellationToken,\n /*isFixAll*/\n false\n ));\n if (deletion.length) {\n return [createCodeFixAction(fixName3, deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)];\n }\n }\n if (isObjectBindingPattern(token.parent) || isArrayBindingPattern(token.parent)) {\n if (isParameter(token.parent.parent)) {\n const elements = token.parent.elements;\n const diagnostic = [\n elements.length > 1 ? Diagnostics.Remove_unused_declarations_for_Colon_0 : Diagnostics.Remove_unused_declaration_for_Colon_0,\n map(elements, (e) => e.getText(sourceFile)).join(\", \")\n ];\n return [\n createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteDestructuringElements(t, sourceFile, token.parent)), diagnostic)\n ];\n }\n return [\n createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteDestructuring(context, t, sourceFile, token.parent)), Diagnostics.Remove_unused_destructuring_declaration)\n ];\n }\n if (canDeleteEntireVariableStatement(sourceFile, token)) {\n return [\n createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteEntireVariableStatement(t, sourceFile, token.parent)), Diagnostics.Remove_variable_statement)\n ];\n }\n if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {\n return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteFunctionLikeDeclaration(t, sourceFile, token.parent)), [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)])];\n }\n const result = [];\n if (token.kind === 140 /* InferKeyword */) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => changeInferToUnknown(t, sourceFile, token));\n const name = cast(token.parent, isInferTypeNode).typeParameter.name.text;\n result.push(createCodeFixAction(fixName3, changes, [Diagnostics.Replace_infer_0_with_unknown, name], fixIdInfer, Diagnostics.Replace_all_unused_infer_with_unknown));\n } else {\n const deletion = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryDeleteDeclaration(\n sourceFile,\n token,\n t,\n checker,\n sourceFiles,\n program,\n cancellationToken,\n /*isFixAll*/\n false\n ));\n if (deletion.length) {\n const name = isComputedPropertyName(token.parent) ? token.parent : token;\n result.push(createDeleteFix(deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, name.getText(sourceFile)]));\n }\n }\n const prefix = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryPrefixDeclaration(t, errorCode, sourceFile, token));\n if (prefix.length) {\n result.push(createCodeFixAction(fixName3, prefix, [Diagnostics.Prefix_0_with_an_underscore, token.getText(sourceFile)], fixIdPrefix, Diagnostics.Prefix_all_unused_declarations_with_where_possible));\n }\n return result;\n },\n fixIds: [fixIdPrefix, fixIdDelete, fixIdDeleteImports, fixIdInfer],\n getAllCodeActions: (context) => {\n const { sourceFile, program, cancellationToken } = context;\n const checker = program.getTypeChecker();\n const sourceFiles = program.getSourceFiles();\n return codeFixAll(context, errorCodes43, (changes, diag2) => {\n const token = getTokenAtPosition(sourceFile, diag2.start);\n switch (context.fixId) {\n case fixIdPrefix:\n tryPrefixDeclaration(changes, diag2.code, sourceFile, token);\n break;\n case fixIdDeleteImports: {\n const importDecl = tryGetFullImport(token);\n if (importDecl) {\n changes.delete(sourceFile, importDecl);\n } else if (isImport(token)) {\n tryDeleteDeclaration(\n sourceFile,\n token,\n changes,\n checker,\n sourceFiles,\n program,\n cancellationToken,\n /*isFixAll*/\n true\n );\n }\n break;\n }\n case fixIdDelete: {\n if (token.kind === 140 /* InferKeyword */ || isImport(token)) {\n break;\n } else if (isJSDocTemplateTag(token)) {\n changes.delete(sourceFile, token);\n } else if (token.kind === 30 /* LessThanToken */) {\n deleteTypeParameters(changes, sourceFile, token);\n } else if (isObjectBindingPattern(token.parent)) {\n if (token.parent.parent.initializer) {\n break;\n } else if (!isParameter(token.parent.parent) || isNotProvidedArguments(token.parent.parent, checker, sourceFiles)) {\n changes.delete(sourceFile, token.parent.parent);\n }\n } else if (isArrayBindingPattern(token.parent.parent) && token.parent.parent.parent.initializer) {\n break;\n } else if (canDeleteEntireVariableStatement(sourceFile, token)) {\n deleteEntireVariableStatement(changes, sourceFile, token.parent);\n } else if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {\n deleteFunctionLikeDeclaration(changes, sourceFile, token.parent);\n } else {\n tryDeleteDeclaration(\n sourceFile,\n token,\n changes,\n checker,\n sourceFiles,\n program,\n cancellationToken,\n /*isFixAll*/\n true\n );\n }\n break;\n }\n case fixIdInfer:\n if (token.kind === 140 /* InferKeyword */) {\n changeInferToUnknown(changes, sourceFile, token);\n }\n break;\n default:\n Debug.fail(JSON.stringify(context.fixId));\n }\n });\n }\n});\nfunction changeInferToUnknown(changes, sourceFile, token) {\n changes.replaceNode(sourceFile, token.parent, factory.createKeywordTypeNode(159 /* UnknownKeyword */));\n}\nfunction createDeleteFix(changes, diag2) {\n return createCodeFixAction(fixName3, changes, diag2, fixIdDelete, Diagnostics.Delete_all_unused_declarations);\n}\nfunction deleteTypeParameters(changes, sourceFile, token) {\n changes.delete(sourceFile, Debug.checkDefined(cast(token.parent, isDeclarationWithTypeParameterChildren).typeParameters, \"The type parameter to delete should exist\"));\n}\nfunction isImport(token) {\n return token.kind === 102 /* ImportKeyword */ || token.kind === 80 /* Identifier */ && (token.parent.kind === 277 /* ImportSpecifier */ || token.parent.kind === 274 /* ImportClause */);\n}\nfunction tryGetFullImport(token) {\n return token.kind === 102 /* ImportKeyword */ ? tryCast(token.parent, isImportDeclaration) : void 0;\n}\nfunction canDeleteEntireVariableStatement(sourceFile, token) {\n return isVariableDeclarationList(token.parent) && first(token.parent.getChildren(sourceFile)) === token;\n}\nfunction deleteEntireVariableStatement(changes, sourceFile, node) {\n changes.delete(sourceFile, node.parent.kind === 244 /* VariableStatement */ ? node.parent : node);\n}\nfunction deleteDestructuringElements(changes, sourceFile, node) {\n forEach(node.elements, (n) => changes.delete(sourceFile, n));\n}\nfunction deleteDestructuring(context, changes, sourceFile, { parent: parent2 }) {\n if (isVariableDeclaration(parent2) && parent2.initializer && isCallLikeExpression(parent2.initializer)) {\n if (isVariableDeclarationList(parent2.parent) && length(parent2.parent.declarations) > 1) {\n const varStatement = parent2.parent.parent;\n const pos = varStatement.getStart(sourceFile);\n const end = varStatement.end;\n changes.delete(sourceFile, parent2);\n changes.insertNodeAt(sourceFile, end, parent2.initializer, {\n prefix: getNewLineOrDefaultFromHost(context.host, context.formatContext.options) + sourceFile.text.slice(getPrecedingNonSpaceCharacterPosition(sourceFile.text, pos - 1), pos),\n suffix: probablyUsesSemicolons(sourceFile) ? \";\" : \"\"\n });\n } else {\n changes.replaceNode(sourceFile, parent2.parent, parent2.initializer);\n }\n } else {\n changes.delete(sourceFile, parent2);\n }\n}\nfunction tryPrefixDeclaration(changes, errorCode, sourceFile, token) {\n if (errorCode === Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code) return;\n if (token.kind === 140 /* InferKeyword */) {\n token = cast(token.parent, isInferTypeNode).typeParameter.name;\n }\n if (isIdentifier(token) && canPrefix(token)) {\n changes.replaceNode(sourceFile, token, factory.createIdentifier(`_${token.text}`));\n if (isParameter(token.parent)) {\n getJSDocParameterTags(token.parent).forEach((tag) => {\n if (isIdentifier(tag.name)) {\n changes.replaceNode(sourceFile, tag.name, factory.createIdentifier(`_${tag.name.text}`));\n }\n });\n }\n }\n}\nfunction canPrefix(token) {\n switch (token.parent.kind) {\n case 170 /* Parameter */:\n case 169 /* TypeParameter */:\n return true;\n case 261 /* VariableDeclaration */: {\n const varDecl = token.parent;\n switch (varDecl.parent.parent.kind) {\n case 251 /* ForOfStatement */:\n case 250 /* ForInStatement */:\n return true;\n }\n }\n }\n return false;\n}\nfunction tryDeleteDeclaration(sourceFile, token, changes, checker, sourceFiles, program, cancellationToken, isFixAll) {\n tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll);\n if (isIdentifier(token)) {\n ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(token, checker, sourceFile, (ref) => {\n if (isPropertyAccessExpression(ref.parent) && ref.parent.name === ref) ref = ref.parent;\n if (!isFixAll && mayDeleteExpression(ref)) {\n changes.delete(sourceFile, ref.parent.parent);\n }\n });\n }\n}\nfunction tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll) {\n const { parent: parent2 } = token;\n if (isParameter(parent2)) {\n tryDeleteParameter(changes, sourceFile, parent2, checker, sourceFiles, program, cancellationToken, isFixAll);\n } else if (!(isFixAll && isIdentifier(token) && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(token, checker, sourceFile))) {\n const node = isImportClause(parent2) ? token : isComputedPropertyName(parent2) ? parent2.parent : parent2;\n Debug.assert(node !== sourceFile, \"should not delete whole source file\");\n changes.delete(sourceFile, node);\n }\n}\nfunction tryDeleteParameter(changes, sourceFile, parameter, checker, sourceFiles, program, cancellationToken, isFixAll = false) {\n if (mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll)) {\n if (parameter.modifiers && parameter.modifiers.length > 0 && (!isIdentifier(parameter.name) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(parameter.name, checker, sourceFile))) {\n for (const modifier of parameter.modifiers) {\n if (isModifier(modifier)) {\n changes.deleteModifier(sourceFile, modifier);\n }\n }\n } else if (!parameter.initializer && isNotProvidedArguments(parameter, checker, sourceFiles)) {\n changes.delete(sourceFile, parameter);\n }\n }\n}\nfunction isNotProvidedArguments(parameter, checker, sourceFiles) {\n const index = parameter.parent.parameters.indexOf(parameter);\n return !ts_FindAllReferences_exports.Core.someSignatureUsage(parameter.parent, sourceFiles, checker, (_, call) => !call || call.arguments.length > index);\n}\nfunction mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll) {\n const { parent: parent2 } = parameter;\n switch (parent2.kind) {\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n const index = parent2.parameters.indexOf(parameter);\n const referent = isMethodDeclaration(parent2) ? parent2.name : parent2;\n const entries = ts_FindAllReferences_exports.Core.getReferencedSymbolsForNode(parent2.pos, referent, program, sourceFiles, cancellationToken);\n if (entries) {\n for (const entry of entries) {\n for (const reference of entry.references) {\n if (reference.kind === ts_FindAllReferences_exports.EntryKind.Node) {\n const isSuperCall2 = isSuperKeyword(reference.node) && isCallExpression(reference.node.parent) && reference.node.parent.arguments.length > index;\n const isSuperMethodCall = isPropertyAccessExpression(reference.node.parent) && isSuperKeyword(reference.node.parent.expression) && isCallExpression(reference.node.parent.parent) && reference.node.parent.parent.arguments.length > index;\n const isOverriddenMethod = (isMethodDeclaration(reference.node.parent) || isMethodSignature(reference.node.parent)) && reference.node.parent !== parameter.parent && reference.node.parent.parameters.length > index;\n if (isSuperCall2 || isSuperMethodCall || isOverriddenMethod) return false;\n }\n }\n }\n }\n return true;\n case 263 /* FunctionDeclaration */: {\n if (parent2.name && isCallbackLike(checker, sourceFile, parent2.name)) {\n return isLastParameter(parent2, parameter, isFixAll);\n }\n return true;\n }\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return isLastParameter(parent2, parameter, isFixAll);\n case 179 /* SetAccessor */:\n return false;\n case 178 /* GetAccessor */:\n return true;\n default:\n return Debug.failBadSyntaxKind(parent2);\n }\n}\nfunction isCallbackLike(checker, sourceFile, name) {\n return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(name, checker, sourceFile, (reference) => isIdentifier(reference) && isCallExpression(reference.parent) && reference.parent.arguments.includes(reference));\n}\nfunction isLastParameter(func, parameter, isFixAll) {\n const parameters = func.parameters;\n const index = parameters.indexOf(parameter);\n Debug.assert(index !== -1, \"The parameter should already be in the list\");\n return isFixAll ? parameters.slice(index + 1).every((p) => isIdentifier(p.name) && !p.symbol.isReferenced) : index === parameters.length - 1;\n}\nfunction mayDeleteExpression(node) {\n return (isBinaryExpression(node.parent) && node.parent.left === node || (isPostfixUnaryExpression(node.parent) || isPrefixUnaryExpression(node.parent)) && node.parent.operand === node) && isExpressionStatement(node.parent.parent);\n}\nfunction deleteFunctionLikeDeclaration(changes, sourceFile, node) {\n const declarations = node.symbol.declarations;\n if (declarations) {\n for (const declaration of declarations) {\n changes.delete(sourceFile, declaration);\n }\n }\n}\n\n// src/services/codefixes/fixUnreachableCode.ts\nvar fixId34 = \"fixUnreachableCode\";\nvar errorCodes44 = [Diagnostics.Unreachable_code_detected.code];\nregisterCodeFix({\n errorCodes: errorCodes44,\n getCodeActions(context) {\n const syntacticDiagnostics = context.program.getSyntacticDiagnostics(context.sourceFile, context.cancellationToken);\n if (syntacticDiagnostics.length) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange27(t, context.sourceFile, context.span.start, context.span.length, context.errorCode));\n return [createCodeFixAction(fixId34, changes, Diagnostics.Remove_unreachable_code, fixId34, Diagnostics.Remove_all_unreachable_code)];\n },\n fixIds: [fixId34],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes44, (changes, diag2) => doChange27(changes, diag2.file, diag2.start, diag2.length, diag2.code))\n});\nfunction doChange27(changes, sourceFile, start, length2, errorCode) {\n const token = getTokenAtPosition(sourceFile, start);\n const statement = findAncestor(token, isStatement);\n if (statement.getStart(sourceFile) !== token.getStart(sourceFile)) {\n const logData = JSON.stringify({\n statementKind: Debug.formatSyntaxKind(statement.kind),\n tokenKind: Debug.formatSyntaxKind(token.kind),\n errorCode,\n start,\n length: length2\n });\n Debug.fail(\"Token and statement should start at the same point. \" + logData);\n }\n const container = (isBlock(statement.parent) ? statement.parent : statement).parent;\n if (!isBlock(statement.parent) || statement === first(statement.parent.statements)) {\n switch (container.kind) {\n case 246 /* IfStatement */:\n if (container.elseStatement) {\n if (isBlock(statement.parent)) {\n break;\n } else {\n changes.replaceNode(sourceFile, statement, factory.createBlock(emptyArray));\n }\n return;\n }\n // falls through\n case 248 /* WhileStatement */:\n case 249 /* ForStatement */:\n changes.delete(sourceFile, container);\n return;\n }\n }\n if (isBlock(statement.parent)) {\n const end = start + length2;\n const lastStatement = Debug.checkDefined(lastWhere(sliceAfter(statement.parent.statements, statement), (s) => s.pos < end), \"Some statement should be last\");\n changes.deleteNodeRange(sourceFile, statement, lastStatement);\n } else {\n changes.delete(sourceFile, statement);\n }\n}\nfunction lastWhere(a, pred) {\n let last2;\n for (const value of a) {\n if (!pred(value)) break;\n last2 = value;\n }\n return last2;\n}\n\n// src/services/codefixes/fixUnusedLabel.ts\nvar fixId35 = \"fixUnusedLabel\";\nvar errorCodes45 = [Diagnostics.Unused_label.code];\nregisterCodeFix({\n errorCodes: errorCodes45,\n getCodeActions(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange28(t, context.sourceFile, context.span.start));\n return [createCodeFixAction(fixId35, changes, Diagnostics.Remove_unused_label, fixId35, Diagnostics.Remove_all_unused_labels)];\n },\n fixIds: [fixId35],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes45, (changes, diag2) => doChange28(changes, diag2.file, diag2.start))\n});\nfunction doChange28(changes, sourceFile, start) {\n const token = getTokenAtPosition(sourceFile, start);\n const labeledStatement = cast(token.parent, isLabeledStatement);\n const pos = token.getStart(sourceFile);\n const statementPos = labeledStatement.statement.getStart(sourceFile);\n const end = positionsAreOnSameLine(pos, statementPos, sourceFile) ? statementPos : skipTrivia(\n sourceFile.text,\n findChildOfKind(labeledStatement, 59 /* ColonToken */, sourceFile).end,\n /*stopAfterLineBreak*/\n true\n );\n changes.deleteRange(sourceFile, { pos, end });\n}\n\n// src/services/codefixes/fixJSDocTypes.ts\nvar fixIdPlain = \"fixJSDocTypes_plain\";\nvar fixIdNullable = \"fixJSDocTypes_nullable\";\nvar errorCodes46 = [\n Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments.code,\n Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code,\n Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code\n];\nregisterCodeFix({\n errorCodes: errorCodes46,\n getCodeActions(context) {\n const { sourceFile } = context;\n const checker = context.program.getTypeChecker();\n const info = getInfo15(sourceFile, context.span.start, checker);\n if (!info) return void 0;\n const { typeNode, type } = info;\n const original = typeNode.getText(sourceFile);\n const actions2 = [fix(type, fixIdPlain, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript)];\n if (typeNode.kind === 315 /* JSDocNullableType */) {\n actions2.push(fix(type, fixIdNullable, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types));\n }\n return actions2;\n function fix(type2, fixId56, fixAllDescription) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange29(t, sourceFile, typeNode, type2, checker));\n return createCodeFixAction(\"jdocTypes\", changes, [Diagnostics.Change_0_to_1, original, checker.typeToString(type2)], fixId56, fixAllDescription);\n }\n },\n fixIds: [fixIdPlain, fixIdNullable],\n getAllCodeActions(context) {\n const { fixId: fixId56, program, sourceFile } = context;\n const checker = program.getTypeChecker();\n return codeFixAll(context, errorCodes46, (changes, err) => {\n const info = getInfo15(err.file, err.start, checker);\n if (!info) return;\n const { typeNode, type } = info;\n const fixedType = typeNode.kind === 315 /* JSDocNullableType */ && fixId56 === fixIdNullable ? checker.getNullableType(type, 32768 /* Undefined */) : type;\n doChange29(changes, sourceFile, typeNode, fixedType, checker);\n });\n }\n});\nfunction doChange29(changes, sourceFile, oldTypeNode, newType, checker) {\n changes.replaceNode(sourceFile, oldTypeNode, checker.typeToTypeNode(\n newType,\n /*enclosingDeclaration*/\n oldTypeNode,\n /*flags*/\n void 0\n ));\n}\nfunction getInfo15(sourceFile, pos, checker) {\n const decl = findAncestor(getTokenAtPosition(sourceFile, pos), isTypeContainer);\n const typeNode = decl && decl.type;\n return typeNode && { typeNode, type: getType(checker, typeNode) };\n}\nfunction isTypeContainer(node) {\n switch (node.kind) {\n case 235 /* AsExpression */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 263 /* FunctionDeclaration */:\n case 178 /* GetAccessor */:\n case 182 /* IndexSignature */:\n case 201 /* MappedType */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 179 /* SetAccessor */:\n case 266 /* TypeAliasDeclaration */:\n case 217 /* TypeAssertionExpression */:\n case 261 /* VariableDeclaration */:\n return true;\n default:\n return false;\n }\n}\nfunction getType(checker, node) {\n if (isJSDocNullableType(node)) {\n const type = checker.getTypeFromTypeNode(node.type);\n if (type === checker.getNeverType() || type === checker.getVoidType()) {\n return type;\n }\n return checker.getUnionType(\n append([type, checker.getUndefinedType()], node.postfix ? void 0 : checker.getNullType())\n );\n }\n return checker.getTypeFromTypeNode(node);\n}\n\n// src/services/codefixes/fixMissingCallParentheses.ts\nvar fixId36 = \"fixMissingCallParentheses\";\nvar errorCodes47 = [\n Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code\n];\nregisterCodeFix({\n errorCodes: errorCodes47,\n fixIds: [fixId36],\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const callName = getCallName(sourceFile, span.start);\n if (!callName) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange30(t, context.sourceFile, callName));\n return [createCodeFixAction(fixId36, changes, Diagnostics.Add_missing_call_parentheses, fixId36, Diagnostics.Add_all_missing_call_parentheses)];\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes47, (changes, diag2) => {\n const callName = getCallName(diag2.file, diag2.start);\n if (callName) doChange30(changes, diag2.file, callName);\n })\n});\nfunction doChange30(changes, sourceFile, name) {\n changes.replaceNodeWithText(sourceFile, name, `${name.text}()`);\n}\nfunction getCallName(sourceFile, start) {\n const token = getTokenAtPosition(sourceFile, start);\n if (isPropertyAccessExpression(token.parent)) {\n let current = token.parent;\n while (isPropertyAccessExpression(current.parent)) {\n current = current.parent;\n }\n return current.name;\n }\n if (isIdentifier(token)) {\n return token;\n }\n return void 0;\n}\n\n// src/services/codefixes/fixMissingTypeAnnotationOnExports.ts\nvar fixId37 = \"fixMissingTypeAnnotationOnExports\";\nvar addAnnotationFix = \"add-annotation\";\nvar addInlineTypeAssertion = \"add-type-assertion\";\nvar extractExpression = \"extract-expression\";\nvar errorCodes48 = [\n Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations.code,\n Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations.code,\n Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations.code,\n Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations.code,\n Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations.code,\n Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations.code,\n Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function.code,\n Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations.code,\n Diagnostics.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations.code,\n Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit.code\n];\nvar canHaveTypeAnnotation = /* @__PURE__ */ new Set([\n 178 /* GetAccessor */,\n 175 /* MethodDeclaration */,\n 173 /* PropertyDeclaration */,\n 263 /* FunctionDeclaration */,\n 219 /* FunctionExpression */,\n 220 /* ArrowFunction */,\n 261 /* VariableDeclaration */,\n 170 /* Parameter */,\n 278 /* ExportAssignment */,\n 264 /* ClassDeclaration */,\n 207 /* ObjectBindingPattern */,\n 208 /* ArrayBindingPattern */\n]);\nvar declarationEmitNodeBuilderFlags2 = 1024 /* MultilineObjectLiterals */ | 2048 /* WriteClassExpressionAsTypeLiteral */ | 4096 /* UseTypeOfFunction */ | 8 /* UseStructuralFallback */ | 524288 /* AllowEmptyTuple */ | 4 /* GenerateNamesForShadowedTypeParams */ | 1 /* NoTruncation */;\nvar declarationEmitInternalNodeBuilderFlags2 = 1 /* WriteComputedProps */;\nregisterCodeFix({\n errorCodes: errorCodes48,\n fixIds: [fixId37],\n getCodeActions(context) {\n const fixes = [];\n addCodeAction(addAnnotationFix, fixes, context, 0 /* Full */, (f) => f.addTypeAnnotation(context.span));\n addCodeAction(addAnnotationFix, fixes, context, 1 /* Relative */, (f) => f.addTypeAnnotation(context.span));\n addCodeAction(addAnnotationFix, fixes, context, 2 /* Widened */, (f) => f.addTypeAnnotation(context.span));\n addCodeAction(addInlineTypeAssertion, fixes, context, 0 /* Full */, (f) => f.addInlineAssertion(context.span));\n addCodeAction(addInlineTypeAssertion, fixes, context, 1 /* Relative */, (f) => f.addInlineAssertion(context.span));\n addCodeAction(addInlineTypeAssertion, fixes, context, 2 /* Widened */, (f) => f.addInlineAssertion(context.span));\n addCodeAction(extractExpression, fixes, context, 0 /* Full */, (f) => f.extractAsVariable(context.span));\n return fixes;\n },\n getAllCodeActions: (context) => {\n const changes = withContext(context, 0 /* Full */, (f) => {\n eachDiagnostic(context, errorCodes48, (diag2) => {\n f.addTypeAnnotation(diag2);\n });\n });\n return createCombinedCodeActions(changes.textChanges);\n }\n});\nfunction addCodeAction(fixName8, fixes, context, typePrintMode, cb) {\n const changes = withContext(context, typePrintMode, cb);\n if (changes.result && changes.textChanges.length) {\n fixes.push(createCodeFixAction(\n fixName8,\n changes.textChanges,\n changes.result,\n fixId37,\n Diagnostics.Add_all_missing_type_annotations\n ));\n }\n}\nfunction withContext(context, typePrintMode, cb) {\n const emptyInferenceResult = { typeNode: void 0, mutatedTarget: false };\n const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n const sourceFile = context.sourceFile;\n const program = context.program;\n const typeChecker = program.getTypeChecker();\n const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n const fixedNodes = /* @__PURE__ */ new Set();\n const expandoPropertiesAdded = /* @__PURE__ */ new Set();\n const typePrinter = createPrinter({\n preserveSourceNewlines: false\n });\n const result = cb({ addTypeAnnotation, addInlineAssertion, extractAsVariable });\n importAdder.writeFixes(changeTracker);\n return {\n result,\n textChanges: changeTracker.getChanges()\n };\n function addTypeAnnotation(span) {\n context.cancellationToken.throwIfCancellationRequested();\n const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n const expandoFunction = findExpandoFunction(nodeWithDiag);\n if (expandoFunction) {\n if (isFunctionDeclaration(expandoFunction)) {\n return createNamespaceForExpandoProperties(expandoFunction);\n }\n return fixIsolatedDeclarationError(expandoFunction);\n }\n const nodeMissingType = findAncestorWithMissingType(nodeWithDiag);\n if (nodeMissingType) {\n return fixIsolatedDeclarationError(nodeMissingType);\n }\n return void 0;\n }\n function createNamespaceForExpandoProperties(expandoFunc) {\n var _a;\n if (expandoPropertiesAdded == null ? void 0 : expandoPropertiesAdded.has(expandoFunc)) return void 0;\n expandoPropertiesAdded == null ? void 0 : expandoPropertiesAdded.add(expandoFunc);\n const type = typeChecker.getTypeAtLocation(expandoFunc);\n const elements = typeChecker.getPropertiesOfType(type);\n if (!expandoFunc.name || elements.length === 0) return void 0;\n const newProperties = [];\n for (const symbol of elements) {\n if (!isIdentifierText(symbol.name, getEmitScriptTarget(program.getCompilerOptions()))) continue;\n if (symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration)) continue;\n newProperties.push(factory.createVariableStatement(\n [factory.createModifier(95 /* ExportKeyword */)],\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n symbol.name,\n /*exclamationToken*/\n void 0,\n typeToTypeNode2(typeChecker.getTypeOfSymbol(symbol), expandoFunc),\n /*initializer*/\n void 0\n )]\n )\n ));\n }\n if (newProperties.length === 0) return void 0;\n const modifiers = [];\n if ((_a = expandoFunc.modifiers) == null ? void 0 : _a.some((modifier) => modifier.kind === 95 /* ExportKeyword */)) {\n modifiers.push(factory.createModifier(95 /* ExportKeyword */));\n }\n modifiers.push(factory.createModifier(138 /* DeclareKeyword */));\n const namespace = factory.createModuleDeclaration(\n modifiers,\n expandoFunc.name,\n factory.createModuleBlock(newProperties),\n /*flags*/\n 32 /* Namespace */ | 128 /* ExportContext */ | 33554432 /* Ambient */ | 101441536 /* ContextFlags */\n );\n changeTracker.insertNodeAfter(sourceFile, expandoFunc, namespace);\n return [Diagnostics.Annotate_types_of_properties_expando_function_in_a_namespace];\n }\n function needsParenthesizedExpressionForAssertion(node) {\n return !isEntityNameExpression(node) && !isCallExpression(node) && !isObjectLiteralExpression(node) && !isArrayLiteralExpression(node);\n }\n function createAsExpression(node, type) {\n if (needsParenthesizedExpressionForAssertion(node)) {\n node = factory.createParenthesizedExpression(node);\n }\n return factory.createAsExpression(node, type);\n }\n function createSatisfiesAsExpression(node, type) {\n if (needsParenthesizedExpressionForAssertion(node)) {\n node = factory.createParenthesizedExpression(node);\n }\n return factory.createAsExpression(factory.createSatisfiesExpression(node, getSynthesizedDeepClone(type)), type);\n }\n function addInlineAssertion(span) {\n context.cancellationToken.throwIfCancellationRequested();\n const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n const expandoFunction = findExpandoFunction(nodeWithDiag);\n if (expandoFunction) return;\n const targetNode = findBestFittingNode(nodeWithDiag, span);\n if (!targetNode || isValueSignatureDeclaration(targetNode) || isValueSignatureDeclaration(targetNode.parent)) return;\n const isExpressionTarget = isExpression(targetNode);\n const isShorthandPropertyAssignmentTarget = isShorthandPropertyAssignment(targetNode);\n if (!isShorthandPropertyAssignmentTarget && isDeclaration(targetNode)) {\n return void 0;\n }\n if (findAncestor(targetNode, isBindingPattern)) {\n return void 0;\n }\n if (findAncestor(targetNode, isEnumMember)) {\n return void 0;\n }\n if (isExpressionTarget && (findAncestor(targetNode, isHeritageClause) || findAncestor(targetNode, isTypeNode))) {\n return void 0;\n }\n if (isSpreadElement(targetNode)) {\n return void 0;\n }\n const variableDeclaration = findAncestor(targetNode, isVariableDeclaration);\n const type = variableDeclaration && typeChecker.getTypeAtLocation(variableDeclaration);\n if (type && type.flags & 8192 /* UniqueESSymbol */) {\n return void 0;\n }\n if (!(isExpressionTarget || isShorthandPropertyAssignmentTarget)) return void 0;\n const { typeNode, mutatedTarget } = inferType(targetNode, type);\n if (!typeNode || mutatedTarget) return void 0;\n if (isShorthandPropertyAssignmentTarget) {\n changeTracker.insertNodeAt(\n sourceFile,\n targetNode.end,\n createAsExpression(\n getSynthesizedDeepClone(targetNode.name),\n typeNode\n ),\n {\n prefix: \": \"\n }\n );\n } else if (isExpressionTarget) {\n changeTracker.replaceNode(\n sourceFile,\n targetNode,\n createSatisfiesAsExpression(\n getSynthesizedDeepClone(targetNode),\n typeNode\n )\n );\n } else {\n Debug.assertNever(targetNode);\n }\n return [Diagnostics.Add_satisfies_and_an_inline_type_assertion_with_0, typeToStringForDiag(typeNode)];\n }\n function extractAsVariable(span) {\n context.cancellationToken.throwIfCancellationRequested();\n const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n const targetNode = findBestFittingNode(nodeWithDiag, span);\n if (!targetNode || isValueSignatureDeclaration(targetNode) || isValueSignatureDeclaration(targetNode.parent)) return;\n const isExpressionTarget = isExpression(targetNode);\n if (!isExpressionTarget) return;\n if (isArrayLiteralExpression(targetNode)) {\n changeTracker.replaceNode(\n sourceFile,\n targetNode,\n createAsExpression(targetNode, factory.createTypeReferenceNode(\"const\"))\n );\n return [Diagnostics.Mark_array_literal_as_const];\n }\n const parentPropertyAssignment = findAncestor(targetNode, isPropertyAssignment);\n if (parentPropertyAssignment) {\n if (parentPropertyAssignment === targetNode.parent && isEntityNameExpression(targetNode)) return;\n const tempName = factory.createUniqueName(\n getIdentifierForNode(targetNode, sourceFile, typeChecker, sourceFile),\n 16 /* Optimistic */\n );\n let replacementTarget = targetNode;\n let initializationNode = targetNode;\n if (isSpreadElement(replacementTarget)) {\n replacementTarget = walkUpParenthesizedExpressions(replacementTarget.parent);\n if (isConstAssertion2(replacementTarget.parent)) {\n initializationNode = replacementTarget = replacementTarget.parent;\n } else {\n initializationNode = createAsExpression(\n replacementTarget,\n factory.createTypeReferenceNode(\"const\")\n );\n }\n }\n if (isEntityNameExpression(replacementTarget)) return void 0;\n const variableDefinition = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n tempName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializationNode\n )\n ], 2 /* Const */)\n );\n const statement = findAncestor(targetNode, isStatement);\n changeTracker.insertNodeBefore(sourceFile, statement, variableDefinition);\n changeTracker.replaceNode(\n sourceFile,\n replacementTarget,\n factory.createAsExpression(\n factory.cloneNode(tempName),\n factory.createTypeQueryNode(\n factory.cloneNode(tempName)\n )\n )\n );\n return [Diagnostics.Extract_to_variable_and_replace_with_0_as_typeof_0, typeToStringForDiag(tempName)];\n }\n }\n function findExpandoFunction(node) {\n const expandoDeclaration = findAncestor(node, (n) => isStatement(n) ? \"quit\" : isExpandoPropertyDeclaration(n));\n if (expandoDeclaration && isExpandoPropertyDeclaration(expandoDeclaration)) {\n let assignmentTarget = expandoDeclaration;\n if (isBinaryExpression(assignmentTarget)) {\n assignmentTarget = assignmentTarget.left;\n if (!isExpandoPropertyDeclaration(assignmentTarget)) return void 0;\n }\n const targetType = typeChecker.getTypeAtLocation(assignmentTarget.expression);\n if (!targetType) return;\n const properties = typeChecker.getPropertiesOfType(targetType);\n if (some(properties, (p) => p.valueDeclaration === expandoDeclaration || p.valueDeclaration === expandoDeclaration.parent)) {\n const fn = targetType.symbol.valueDeclaration;\n if (fn) {\n if (isFunctionExpressionOrArrowFunction(fn) && isVariableDeclaration(fn.parent)) {\n return fn.parent;\n }\n if (isFunctionDeclaration(fn)) {\n return fn;\n }\n }\n }\n }\n return void 0;\n }\n function fixIsolatedDeclarationError(node) {\n if (fixedNodes == null ? void 0 : fixedNodes.has(node)) return void 0;\n fixedNodes == null ? void 0 : fixedNodes.add(node);\n switch (node.kind) {\n case 170 /* Parameter */:\n case 173 /* PropertyDeclaration */:\n case 261 /* VariableDeclaration */:\n return addTypeToVariableLike(node);\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n return addTypeToSignatureDeclaration(node, sourceFile);\n case 278 /* ExportAssignment */:\n return transformExportAssignment(node);\n case 264 /* ClassDeclaration */:\n return transformExtendsClauseWithExpression(node);\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n return transformDestructuringPatterns(node);\n default:\n throw new Error(`Cannot find a fix for the given node ${node.kind}`);\n }\n }\n function addTypeToSignatureDeclaration(func, sourceFile2) {\n if (func.type) {\n return;\n }\n const { typeNode } = inferType(func);\n if (typeNode) {\n changeTracker.tryInsertTypeAnnotation(\n sourceFile2,\n func,\n typeNode\n );\n return [Diagnostics.Add_return_type_0, typeToStringForDiag(typeNode)];\n }\n }\n function transformExportAssignment(defaultExport) {\n if (defaultExport.isExportEquals) {\n return;\n }\n const { typeNode } = inferType(defaultExport.expression);\n if (!typeNode) return void 0;\n const defaultIdentifier = factory.createUniqueName(\"_default\");\n changeTracker.replaceNodeWithNodes(sourceFile, defaultExport, [\n factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n defaultIdentifier,\n /*exclamationToken*/\n void 0,\n typeNode,\n defaultExport.expression\n )],\n 2 /* Const */\n )\n ),\n factory.updateExportAssignment(defaultExport, defaultExport == null ? void 0 : defaultExport.modifiers, defaultIdentifier)\n ]);\n return [\n Diagnostics.Extract_default_export_to_variable\n ];\n }\n function transformExtendsClauseWithExpression(classDecl) {\n var _a, _b;\n const extendsClause = (_a = classDecl.heritageClauses) == null ? void 0 : _a.find((p) => p.token === 96 /* ExtendsKeyword */);\n const heritageExpression = extendsClause == null ? void 0 : extendsClause.types[0];\n if (!heritageExpression) {\n return void 0;\n }\n const { typeNode: heritageTypeNode } = inferType(heritageExpression.expression);\n if (!heritageTypeNode) {\n return void 0;\n }\n const baseClassName = factory.createUniqueName(\n classDecl.name ? classDecl.name.text + \"Base\" : \"Anonymous\",\n 16 /* Optimistic */\n );\n const heritageVariable = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n baseClassName,\n /*exclamationToken*/\n void 0,\n heritageTypeNode,\n heritageExpression.expression\n )],\n 2 /* Const */\n )\n );\n changeTracker.insertNodeBefore(sourceFile, classDecl, heritageVariable);\n const trailingComments = getTrailingCommentRanges(sourceFile.text, heritageExpression.end);\n const realEnd = ((_b = trailingComments == null ? void 0 : trailingComments[trailingComments.length - 1]) == null ? void 0 : _b.end) ?? heritageExpression.end;\n changeTracker.replaceRange(\n sourceFile,\n {\n pos: heritageExpression.getFullStart(),\n end: realEnd\n },\n baseClassName,\n {\n prefix: \" \"\n }\n );\n return [Diagnostics.Extract_base_class_to_variable];\n }\n let ExpressionType;\n ((ExpressionType2) => {\n ExpressionType2[ExpressionType2[\"Text\"] = 0] = \"Text\";\n ExpressionType2[ExpressionType2[\"Computed\"] = 1] = \"Computed\";\n ExpressionType2[ExpressionType2[\"ArrayAccess\"] = 2] = \"ArrayAccess\";\n ExpressionType2[ExpressionType2[\"Identifier\"] = 3] = \"Identifier\";\n })(ExpressionType || (ExpressionType = {}));\n function transformDestructuringPatterns(bindingPattern) {\n var _a;\n const enclosingVariableDeclaration = bindingPattern.parent;\n const enclosingVarStmt = bindingPattern.parent.parent.parent;\n if (!enclosingVariableDeclaration.initializer) return void 0;\n let baseExpr;\n const newNodes = [];\n if (!isIdentifier(enclosingVariableDeclaration.initializer)) {\n const tempHolderForReturn = factory.createUniqueName(\"dest\", 16 /* Optimistic */);\n baseExpr = { expression: { kind: 3 /* Identifier */, identifier: tempHolderForReturn } };\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n tempHolderForReturn,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n enclosingVariableDeclaration.initializer\n )],\n 2 /* Const */\n )\n ));\n } else {\n baseExpr = { expression: { kind: 3 /* Identifier */, identifier: enclosingVariableDeclaration.initializer } };\n }\n const bindingElements = [];\n if (isArrayBindingPattern(bindingPattern)) {\n addArrayBindingPatterns(bindingPattern, bindingElements, baseExpr);\n } else {\n addObjectBindingPatterns(bindingPattern, bindingElements, baseExpr);\n }\n const expressionToVar = /* @__PURE__ */ new Map();\n for (const bindingElement of bindingElements) {\n if (bindingElement.element.propertyName && isComputedPropertyName(bindingElement.element.propertyName)) {\n const computedExpression = bindingElement.element.propertyName.expression;\n const identifierForComputedProperty = factory.getGeneratedNameForNode(computedExpression);\n const variableDecl = factory.createVariableDeclaration(\n identifierForComputedProperty,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n computedExpression\n );\n const variableList = factory.createVariableDeclarationList([variableDecl], 2 /* Const */);\n const variableStatement = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n variableList\n );\n newNodes.push(variableStatement);\n expressionToVar.set(computedExpression, identifierForComputedProperty);\n }\n const name = bindingElement.element.name;\n if (isArrayBindingPattern(name)) {\n addArrayBindingPatterns(name, bindingElements, bindingElement);\n } else if (isObjectBindingPattern(name)) {\n addObjectBindingPatterns(name, bindingElements, bindingElement);\n } else {\n const { typeNode } = inferType(name);\n let variableInitializer = createChainedExpression(bindingElement, expressionToVar);\n if (bindingElement.element.initializer) {\n const propertyName = (_a = bindingElement.element) == null ? void 0 : _a.propertyName;\n const tempName = factory.createUniqueName(\n propertyName && isIdentifier(propertyName) ? propertyName.text : \"temp\",\n 16 /* Optimistic */\n );\n newNodes.push(factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n tempName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n variableInitializer\n )],\n 2 /* Const */\n )\n ));\n variableInitializer = factory.createConditionalExpression(\n factory.createBinaryExpression(\n tempName,\n factory.createToken(37 /* EqualsEqualsEqualsToken */),\n factory.createIdentifier(\"undefined\")\n ),\n factory.createToken(58 /* QuestionToken */),\n bindingElement.element.initializer,\n factory.createToken(59 /* ColonToken */),\n variableInitializer\n );\n }\n const exportModifier = hasSyntacticModifier(enclosingVarStmt, 32 /* Export */) ? [factory.createToken(95 /* ExportKeyword */)] : void 0;\n newNodes.push(factory.createVariableStatement(\n exportModifier,\n factory.createVariableDeclarationList(\n [factory.createVariableDeclaration(\n name,\n /*exclamationToken*/\n void 0,\n typeNode,\n variableInitializer\n )],\n 2 /* Const */\n )\n ));\n }\n }\n if (enclosingVarStmt.declarationList.declarations.length > 1) {\n newNodes.push(factory.updateVariableStatement(\n enclosingVarStmt,\n enclosingVarStmt.modifiers,\n factory.updateVariableDeclarationList(\n enclosingVarStmt.declarationList,\n enclosingVarStmt.declarationList.declarations.filter((node) => node !== bindingPattern.parent)\n )\n ));\n }\n changeTracker.replaceNodeWithNodes(sourceFile, enclosingVarStmt, newNodes);\n return [\n Diagnostics.Extract_binding_expressions_to_variable\n ];\n }\n function addArrayBindingPatterns(bindingPattern, bindingElements, parent2) {\n for (let i = 0; i < bindingPattern.elements.length; ++i) {\n const element = bindingPattern.elements[i];\n if (isOmittedExpression(element)) {\n continue;\n }\n bindingElements.push({\n element,\n parent: parent2,\n expression: { kind: 2 /* ArrayAccess */, arrayIndex: i }\n });\n }\n }\n function addObjectBindingPatterns(bindingPattern, bindingElements, parent2) {\n for (const bindingElement of bindingPattern.elements) {\n let name;\n if (bindingElement.propertyName) {\n if (isComputedPropertyName(bindingElement.propertyName)) {\n bindingElements.push({\n element: bindingElement,\n parent: parent2,\n expression: { kind: 1 /* Computed */, computed: bindingElement.propertyName.expression }\n });\n continue;\n } else {\n name = bindingElement.propertyName.text;\n }\n } else {\n name = bindingElement.name.text;\n }\n bindingElements.push({\n element: bindingElement,\n parent: parent2,\n expression: { kind: 0 /* Text */, text: name }\n });\n }\n }\n function createChainedExpression(expression, expressionToVar) {\n const reverseTraverse = [expression];\n while (expression.parent) {\n expression = expression.parent;\n reverseTraverse.push(expression);\n }\n let chainedExpression = reverseTraverse[reverseTraverse.length - 1].expression.identifier;\n for (let i = reverseTraverse.length - 2; i >= 0; --i) {\n const nextSubExpr = reverseTraverse[i].expression;\n if (nextSubExpr.kind === 0 /* Text */) {\n chainedExpression = factory.createPropertyAccessChain(\n chainedExpression,\n /*questionDotToken*/\n void 0,\n factory.createIdentifier(nextSubExpr.text)\n );\n } else if (nextSubExpr.kind === 1 /* Computed */) {\n chainedExpression = factory.createElementAccessExpression(\n chainedExpression,\n expressionToVar.get(nextSubExpr.computed)\n );\n } else if (nextSubExpr.kind === 2 /* ArrayAccess */) {\n chainedExpression = factory.createElementAccessExpression(\n chainedExpression,\n nextSubExpr.arrayIndex\n );\n }\n }\n return chainedExpression;\n }\n function inferType(node, variableType) {\n if (typePrintMode === 1 /* Relative */) {\n return relativeType(node);\n }\n let type;\n if (isValueSignatureDeclaration(node)) {\n const signature = typeChecker.getSignatureFromDeclaration(node);\n if (signature) {\n const typePredicate = typeChecker.getTypePredicateOfSignature(signature);\n if (typePredicate) {\n if (!typePredicate.type) {\n return emptyInferenceResult;\n }\n return {\n typeNode: typePredicateToTypeNode(typePredicate, findAncestor(node, isDeclaration) ?? sourceFile, getFlags(typePredicate.type)),\n mutatedTarget: false\n };\n }\n type = typeChecker.getReturnTypeOfSignature(signature);\n }\n } else {\n type = typeChecker.getTypeAtLocation(node);\n }\n if (!type) {\n return emptyInferenceResult;\n }\n if (typePrintMode === 2 /* Widened */) {\n if (variableType) {\n type = variableType;\n }\n const widenedType = typeChecker.getWidenedLiteralType(type);\n if (typeChecker.isTypeAssignableTo(widenedType, type)) {\n return emptyInferenceResult;\n }\n type = widenedType;\n }\n const enclosingDeclaration = findAncestor(node, isDeclaration) ?? sourceFile;\n if (isParameter(node) && typeChecker.requiresAddingImplicitUndefined(node, enclosingDeclaration)) {\n type = typeChecker.getUnionType([typeChecker.getUndefinedType(), type], 0 /* None */);\n }\n return {\n typeNode: typeToTypeNode2(type, enclosingDeclaration, getFlags(type)),\n mutatedTarget: false\n };\n function getFlags(type2) {\n return (isVariableDeclaration(node) || isPropertyDeclaration(node) && hasSyntacticModifier(node, 256 /* Static */ | 8 /* Readonly */)) && type2.flags & 8192 /* UniqueESSymbol */ ? 1048576 /* AllowUniqueESSymbolType */ : 0 /* None */;\n }\n }\n function createTypeOfFromEntityNameExpression(node) {\n return factory.createTypeQueryNode(getSynthesizedDeepClone(node));\n }\n function typeFromArraySpreadElements(node, name = \"temp\") {\n const isConstContext = !!findAncestor(node, isConstAssertion2);\n if (!isConstContext) return emptyInferenceResult;\n return typeFromSpreads(\n node,\n name,\n isConstContext,\n (n) => n.elements,\n isSpreadElement,\n factory.createSpreadElement,\n (props) => factory.createArrayLiteralExpression(\n props,\n /*multiLine*/\n true\n ),\n (types) => factory.createTupleTypeNode(types.map(factory.createRestTypeNode))\n );\n }\n function typeFromObjectSpreadAssignment(node, name = \"temp\") {\n const isConstContext = !!findAncestor(node, isConstAssertion2);\n return typeFromSpreads(\n node,\n name,\n isConstContext,\n (n) => n.properties,\n isSpreadAssignment,\n factory.createSpreadAssignment,\n (props) => factory.createObjectLiteralExpression(\n props,\n /*multiLine*/\n true\n ),\n factory.createIntersectionTypeNode\n );\n }\n function typeFromSpreads(node, name, isConstContext, getChildren, isSpread, createSpread, makeNodeOfKind, finalType) {\n const intersectionTypes = [];\n const newSpreads = [];\n let currentVariableProperties;\n const statement = findAncestor(node, isStatement);\n for (const prop of getChildren(node)) {\n if (isSpread(prop)) {\n finalizesVariablePart();\n if (isEntityNameExpression(prop.expression)) {\n intersectionTypes.push(createTypeOfFromEntityNameExpression(prop.expression));\n newSpreads.push(prop);\n } else {\n makeVariable(prop.expression);\n }\n } else {\n (currentVariableProperties ?? (currentVariableProperties = [])).push(prop);\n }\n }\n if (newSpreads.length === 0) {\n return emptyInferenceResult;\n }\n finalizesVariablePart();\n changeTracker.replaceNode(sourceFile, node, makeNodeOfKind(newSpreads));\n return {\n typeNode: finalType(intersectionTypes),\n mutatedTarget: true\n };\n function makeVariable(expression) {\n const tempName = factory.createUniqueName(\n name + \"_Part\" + (newSpreads.length + 1),\n 16 /* Optimistic */\n );\n const initializer = !isConstContext ? expression : factory.createAsExpression(\n expression,\n factory.createTypeReferenceNode(\"const\")\n );\n const variableDefinition = factory.createVariableStatement(\n /*modifiers*/\n void 0,\n factory.createVariableDeclarationList([\n factory.createVariableDeclaration(\n tempName,\n /*exclamationToken*/\n void 0,\n /*type*/\n void 0,\n initializer\n )\n ], 2 /* Const */)\n );\n changeTracker.insertNodeBefore(sourceFile, statement, variableDefinition);\n intersectionTypes.push(createTypeOfFromEntityNameExpression(tempName));\n newSpreads.push(createSpread(tempName));\n }\n function finalizesVariablePart() {\n if (currentVariableProperties) {\n makeVariable(makeNodeOfKind(\n currentVariableProperties\n ));\n currentVariableProperties = void 0;\n }\n }\n }\n function isConstAssertion2(location) {\n return isAssertionExpression(location) && isConstTypeReference(location.type);\n }\n function relativeType(node) {\n if (isParameter(node)) {\n return emptyInferenceResult;\n }\n if (isShorthandPropertyAssignment(node)) {\n return {\n typeNode: createTypeOfFromEntityNameExpression(node.name),\n mutatedTarget: false\n };\n }\n if (isEntityNameExpression(node)) {\n return {\n typeNode: createTypeOfFromEntityNameExpression(node),\n mutatedTarget: false\n };\n }\n if (isConstAssertion2(node)) {\n return relativeType(node.expression);\n }\n if (isArrayLiteralExpression(node)) {\n const variableDecl = findAncestor(node, isVariableDeclaration);\n const partName = variableDecl && isIdentifier(variableDecl.name) ? variableDecl.name.text : void 0;\n return typeFromArraySpreadElements(node, partName);\n }\n if (isObjectLiteralExpression(node)) {\n const variableDecl = findAncestor(node, isVariableDeclaration);\n const partName = variableDecl && isIdentifier(variableDecl.name) ? variableDecl.name.text : void 0;\n return typeFromObjectSpreadAssignment(node, partName);\n }\n if (isVariableDeclaration(node) && node.initializer) {\n return relativeType(node.initializer);\n }\n if (isConditionalExpression(node)) {\n const { typeNode: trueType, mutatedTarget: mTrue } = relativeType(node.whenTrue);\n if (!trueType) return emptyInferenceResult;\n const { typeNode: falseType, mutatedTarget: mFalse } = relativeType(node.whenFalse);\n if (!falseType) return emptyInferenceResult;\n return {\n typeNode: factory.createUnionTypeNode([trueType, falseType]),\n mutatedTarget: mTrue || mFalse\n };\n }\n return emptyInferenceResult;\n }\n function typeToTypeNode2(type, enclosingDeclaration, flags = 0 /* None */) {\n let isTruncated = false;\n const minimizedTypeNode = typeToMinimizedReferenceType(typeChecker, type, enclosingDeclaration, declarationEmitNodeBuilderFlags2 | flags, declarationEmitInternalNodeBuilderFlags2, {\n moduleResolverHost: program,\n trackSymbol() {\n return true;\n },\n reportTruncationError() {\n isTruncated = true;\n }\n });\n if (!minimizedTypeNode) {\n return void 0;\n }\n const result2 = typeNodeToAutoImportableTypeNode(minimizedTypeNode, importAdder, scriptTarget);\n return isTruncated ? factory.createKeywordTypeNode(133 /* AnyKeyword */) : result2;\n }\n function typePredicateToTypeNode(typePredicate, enclosingDeclaration, flags = 0 /* None */) {\n let isTruncated = false;\n const result2 = typePredicateToAutoImportableTypeNode(typeChecker, importAdder, typePredicate, enclosingDeclaration, scriptTarget, declarationEmitNodeBuilderFlags2 | flags, declarationEmitInternalNodeBuilderFlags2, {\n moduleResolverHost: program,\n trackSymbol() {\n return true;\n },\n reportTruncationError() {\n isTruncated = true;\n }\n });\n return isTruncated ? factory.createKeywordTypeNode(133 /* AnyKeyword */) : result2;\n }\n function addTypeToVariableLike(decl) {\n const { typeNode } = inferType(decl);\n if (typeNode) {\n if (decl.type) {\n changeTracker.replaceNode(getSourceFileOfNode(decl), decl.type, typeNode);\n } else {\n changeTracker.tryInsertTypeAnnotation(getSourceFileOfNode(decl), decl, typeNode);\n }\n return [Diagnostics.Add_annotation_of_type_0, typeToStringForDiag(typeNode)];\n }\n }\n function typeToStringForDiag(node) {\n setEmitFlags(node, 1 /* SingleLine */);\n const result2 = typePrinter.printNode(4 /* Unspecified */, node, sourceFile);\n if (result2.length > defaultMaximumTruncationLength) {\n return result2.substring(0, defaultMaximumTruncationLength - \"...\".length) + \"...\";\n }\n setEmitFlags(node, 0 /* None */);\n return result2;\n }\n function findAncestorWithMissingType(node) {\n return findAncestor(node, (n) => {\n return canHaveTypeAnnotation.has(n.kind) && (!isObjectBindingPattern(n) && !isArrayBindingPattern(n) || isVariableDeclaration(n.parent));\n });\n }\n function findBestFittingNode(node, span) {\n while (node && node.end < span.start + span.length) {\n node = node.parent;\n }\n while (node.parent.pos === node.pos && node.parent.end === node.end) {\n node = node.parent;\n }\n if (isIdentifier(node) && hasInitializer(node.parent) && node.parent.initializer) {\n return node.parent.initializer;\n }\n return node;\n }\n}\n\n// src/services/codefixes/fixAwaitInSyncFunction.ts\nvar fixId38 = \"fixAwaitInSyncFunction\";\nvar errorCodes49 = [\n Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code\n];\nregisterCodeFix({\n errorCodes: errorCodes49,\n getCodeActions(context) {\n const { sourceFile, span } = context;\n const nodes = getNodes3(sourceFile, span.start);\n if (!nodes) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange31(t, sourceFile, nodes));\n return [createCodeFixAction(fixId38, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId38, Diagnostics.Add_all_missing_async_modifiers)];\n },\n fixIds: [fixId38],\n getAllCodeActions: function getAllCodeActionsToFixAwaitInSyncFunction(context) {\n const seen = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes49, (changes, diag2) => {\n const nodes = getNodes3(diag2.file, diag2.start);\n if (!nodes || !addToSeen(seen, getNodeId(nodes.insertBefore))) return;\n doChange31(changes, context.sourceFile, nodes);\n });\n }\n});\nfunction getReturnType(expr) {\n if (expr.type) {\n return expr.type;\n }\n if (isVariableDeclaration(expr.parent) && expr.parent.type && isFunctionTypeNode(expr.parent.type)) {\n return expr.parent.type.type;\n }\n}\nfunction getNodes3(sourceFile, start) {\n const token = getTokenAtPosition(sourceFile, start);\n const containingFunction = getContainingFunction(token);\n if (!containingFunction) {\n return;\n }\n let insertBefore;\n switch (containingFunction.kind) {\n case 175 /* MethodDeclaration */:\n insertBefore = containingFunction.name;\n break;\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n insertBefore = findChildOfKind(containingFunction, 100 /* FunctionKeyword */, sourceFile);\n break;\n case 220 /* ArrowFunction */:\n const kind = containingFunction.typeParameters ? 30 /* LessThanToken */ : 21 /* OpenParenToken */;\n insertBefore = findChildOfKind(containingFunction, kind, sourceFile) || first(containingFunction.parameters);\n break;\n default:\n return;\n }\n return insertBefore && {\n insertBefore,\n returnType: getReturnType(containingFunction)\n };\n}\nfunction doChange31(changes, sourceFile, { insertBefore, returnType }) {\n if (returnType) {\n const entityName = getEntityNameFromTypeNode(returnType);\n if (!entityName || entityName.kind !== 80 /* Identifier */ || entityName.text !== \"Promise\") {\n changes.replaceNode(sourceFile, returnType, factory.createTypeReferenceNode(\"Promise\", factory.createNodeArray([returnType])));\n }\n }\n changes.insertModifierBefore(sourceFile, 134 /* AsyncKeyword */, insertBefore);\n}\n\n// src/services/codefixes/fixPropertyOverrideAccessor.ts\nvar errorCodes50 = [\n Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code,\n Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code\n];\nvar fixId39 = \"fixPropertyOverrideAccessor\";\nregisterCodeFix({\n errorCodes: errorCodes50,\n getCodeActions(context) {\n const edits = doChange32(context.sourceFile, context.span.start, context.span.length, context.errorCode, context);\n if (edits) {\n return [createCodeFixAction(fixId39, edits, Diagnostics.Generate_get_and_set_accessors, fixId39, Diagnostics.Generate_get_and_set_accessors_for_all_overriding_properties)];\n }\n },\n fixIds: [fixId39],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes50, (changes, diag2) => {\n const edits = doChange32(diag2.file, diag2.start, diag2.length, diag2.code, context);\n if (edits) {\n for (const edit of edits) {\n changes.pushRaw(context.sourceFile, edit);\n }\n }\n })\n});\nfunction doChange32(file, start, length2, code, context) {\n let startPosition;\n let endPosition;\n if (code === Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code) {\n startPosition = start;\n endPosition = start + length2;\n } else if (code === Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code) {\n const checker = context.program.getTypeChecker();\n const node = getTokenAtPosition(file, start).parent;\n if (isComputedPropertyName(node)) {\n return;\n }\n Debug.assert(isAccessor(node), \"error span of fixPropertyOverrideAccessor should only be on an accessor\");\n const containingClass = node.parent;\n Debug.assert(isClassLike(containingClass), \"erroneous accessors should only be inside classes\");\n const baseTypeNode = getEffectiveBaseTypeNode(containingClass);\n if (!baseTypeNode) return;\n const expression = skipParentheses(baseTypeNode.expression);\n const base = isClassExpression(expression) ? expression.symbol : checker.getSymbolAtLocation(expression);\n if (!base) return;\n const baseType = checker.getDeclaredTypeOfSymbol(base);\n const baseProp = checker.getPropertyOfType(baseType, unescapeLeadingUnderscores(getTextOfPropertyName(node.name)));\n if (!baseProp || !baseProp.valueDeclaration) return;\n startPosition = baseProp.valueDeclaration.pos;\n endPosition = baseProp.valueDeclaration.end;\n file = getSourceFileOfNode(baseProp.valueDeclaration);\n } else {\n Debug.fail(\"fixPropertyOverrideAccessor codefix got unexpected error code \" + code);\n }\n return generateAccessorFromProperty(file, context.program, startPosition, endPosition, context, Diagnostics.Generate_get_and_set_accessors.message);\n}\n\n// src/services/codefixes/inferFromUsage.ts\nvar fixId40 = \"inferFromUsage\";\nvar errorCodes51 = [\n // Variable declarations\n Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,\n // Variable uses\n Diagnostics.Variable_0_implicitly_has_an_1_type.code,\n // Parameter declarations\n Diagnostics.Parameter_0_implicitly_has_an_1_type.code,\n Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code,\n // Get Accessor declarations\n Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,\n Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,\n // Set Accessor declarations\n Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,\n // Property declarations\n Diagnostics.Member_0_implicitly_has_an_1_type.code,\n //// Suggestions\n // Variable declarations\n Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,\n // Variable uses\n Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n // Parameter declarations\n Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,\n // Get Accessor declarations\n Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,\n Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,\n // Set Accessor declarations\n Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,\n // Property declarations\n Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n // Function expressions and declarations\n Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code\n];\nregisterCodeFix({\n errorCodes: errorCodes51,\n getCodeActions(context) {\n const { sourceFile, program, span: { start }, errorCode, cancellationToken, host, preferences } = context;\n const token = getTokenAtPosition(sourceFile, start);\n let declaration;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n declaration = doChange33(\n changes2,\n sourceFile,\n token,\n errorCode,\n program,\n cancellationToken,\n /*markSeen*/\n returnTrue,\n host,\n preferences\n );\n });\n const name = declaration && getNameOfDeclaration(declaration);\n return !name || changes.length === 0 ? void 0 : [createCodeFixAction(fixId40, changes, [getDiagnostic(errorCode, token), getTextOfNode(name)], fixId40, Diagnostics.Infer_all_types_from_usage)];\n },\n fixIds: [fixId40],\n getAllCodeActions(context) {\n const { sourceFile, program, cancellationToken, host, preferences } = context;\n const markSeen = nodeSeenTracker();\n return codeFixAll(context, errorCodes51, (changes, err) => {\n doChange33(changes, sourceFile, getTokenAtPosition(err.file, err.start), err.code, program, cancellationToken, markSeen, host, preferences);\n });\n }\n});\nfunction getDiagnostic(errorCode, token) {\n switch (errorCode) {\n case Diagnostics.Parameter_0_implicitly_has_an_1_type.code:\n case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n return isSetAccessorDeclaration(getContainingFunction(token)) ? Diagnostics.Infer_type_of_0_from_usage : Diagnostics.Infer_parameter_types_from_usage;\n // TODO: GH#18217\n case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:\n case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Infer_parameter_types_from_usage;\n case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:\n return Diagnostics.Infer_this_type_of_0_from_usage;\n default:\n return Diagnostics.Infer_type_of_0_from_usage;\n }\n}\nfunction mapSuggestionDiagnostic(errorCode) {\n switch (errorCode) {\n case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;\n case Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Variable_0_implicitly_has_an_1_type.code;\n case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Parameter_0_implicitly_has_an_1_type.code;\n case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code;\n case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:\n return Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;\n case Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;\n case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:\n return Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;\n case Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n return Diagnostics.Member_0_implicitly_has_an_1_type.code;\n }\n return errorCode;\n}\nfunction doChange33(changes, sourceFile, token, errorCode, program, cancellationToken, markSeen, host, preferences) {\n if (!isParameterPropertyModifier(token.kind) && token.kind !== 80 /* Identifier */ && token.kind !== 26 /* DotDotDotToken */ && token.kind !== 110 /* ThisKeyword */) {\n return void 0;\n }\n const { parent: parent2 } = token;\n const importAdder = createImportAdder(sourceFile, program, preferences, host);\n errorCode = mapSuggestionDiagnostic(errorCode);\n switch (errorCode) {\n // Variable and Property declarations\n case Diagnostics.Member_0_implicitly_has_an_1_type.code:\n case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:\n if (isVariableDeclaration(parent2) && markSeen(parent2) || isPropertyDeclaration(parent2) || isPropertySignature(parent2)) {\n annotateVariableDeclaration(changes, importAdder, sourceFile, parent2, program, host, cancellationToken);\n importAdder.writeFixes(changes);\n return parent2;\n }\n if (isPropertyAccessExpression(parent2)) {\n const type = inferTypeForVariableFromUsage(parent2.name, program, cancellationToken);\n const typeNode = getTypeNodeIfAccessible(type, parent2, program, host);\n if (typeNode) {\n const typeTag = factory.createJSDocTypeTag(\n /*tagName*/\n void 0,\n factory.createJSDocTypeExpression(typeNode),\n /*comment*/\n void 0\n );\n changes.addJSDocTags(sourceFile, cast(parent2.parent.parent, isExpressionStatement), [typeTag]);\n }\n importAdder.writeFixes(changes);\n return parent2;\n }\n return void 0;\n case Diagnostics.Variable_0_implicitly_has_an_1_type.code: {\n const symbol = program.getTypeChecker().getSymbolAtLocation(token);\n if (symbol && symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && markSeen(symbol.valueDeclaration)) {\n annotateVariableDeclaration(changes, importAdder, getSourceFileOfNode(symbol.valueDeclaration), symbol.valueDeclaration, program, host, cancellationToken);\n importAdder.writeFixes(changes);\n return symbol.valueDeclaration;\n }\n return void 0;\n }\n }\n const containingFunction = getContainingFunction(token);\n if (containingFunction === void 0) {\n return void 0;\n }\n let declaration;\n switch (errorCode) {\n // Parameter declarations\n case Diagnostics.Parameter_0_implicitly_has_an_1_type.code:\n if (isSetAccessorDeclaration(containingFunction)) {\n annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken);\n declaration = containingFunction;\n break;\n }\n // falls through\n case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:\n if (markSeen(containingFunction)) {\n const param = cast(parent2, isParameter);\n annotateParameters(changes, importAdder, sourceFile, param, containingFunction, program, host, cancellationToken);\n declaration = param;\n }\n break;\n // Get Accessor declarations\n case Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:\n case Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:\n if (isGetAccessorDeclaration(containingFunction) && isIdentifier(containingFunction.name)) {\n annotate(changes, importAdder, sourceFile, containingFunction, inferTypeForVariableFromUsage(containingFunction.name, program, cancellationToken), program, host);\n declaration = containingFunction;\n }\n break;\n // Set Accessor declarations\n case Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:\n if (isSetAccessorDeclaration(containingFunction)) {\n annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken);\n declaration = containingFunction;\n }\n break;\n // Function 'this'\n case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:\n if (ts_textChanges_exports.isThisTypeAnnotatable(containingFunction) && markSeen(containingFunction)) {\n annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken);\n declaration = containingFunction;\n }\n break;\n default:\n return Debug.fail(String(errorCode));\n }\n importAdder.writeFixes(changes);\n return declaration;\n}\nfunction annotateVariableDeclaration(changes, importAdder, sourceFile, declaration, program, host, cancellationToken) {\n if (isIdentifier(declaration.name)) {\n annotate(changes, importAdder, sourceFile, declaration, inferTypeForVariableFromUsage(declaration.name, program, cancellationToken), program, host);\n }\n}\nfunction annotateParameters(changes, importAdder, sourceFile, parameterDeclaration, containingFunction, program, host, cancellationToken) {\n if (!isIdentifier(parameterDeclaration.name)) {\n return;\n }\n const parameterInferences = inferTypeForParametersFromUsage(containingFunction, sourceFile, program, cancellationToken);\n Debug.assert(containingFunction.parameters.length === parameterInferences.length, \"Parameter count and inference count should match\");\n if (isInJSFile(containingFunction)) {\n annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host);\n } else {\n const needParens = isArrowFunction(containingFunction) && !findChildOfKind(containingFunction, 21 /* OpenParenToken */, sourceFile);\n if (needParens) changes.insertNodeBefore(sourceFile, first(containingFunction.parameters), factory.createToken(21 /* OpenParenToken */));\n for (const { declaration, type } of parameterInferences) {\n if (declaration && !declaration.type && !declaration.initializer) {\n annotate(changes, importAdder, sourceFile, declaration, type, program, host);\n }\n }\n if (needParens) changes.insertNodeAfter(sourceFile, last(containingFunction.parameters), factory.createToken(22 /* CloseParenToken */));\n }\n}\nfunction annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken) {\n const references = getFunctionReferences(containingFunction, sourceFile, program, cancellationToken);\n if (!references || !references.length) {\n return;\n }\n const thisInference = inferTypeFromReferences(program, references, cancellationToken).thisParameter();\n const typeNode = getTypeNodeIfAccessible(thisInference, containingFunction, program, host);\n if (!typeNode) {\n return;\n }\n if (isInJSFile(containingFunction)) {\n annotateJSDocThis(changes, sourceFile, containingFunction, typeNode);\n } else {\n changes.tryInsertThisTypeAnnotation(sourceFile, containingFunction, typeNode);\n }\n}\nfunction annotateJSDocThis(changes, sourceFile, containingFunction, typeNode) {\n changes.addJSDocTags(sourceFile, containingFunction, [\n factory.createJSDocThisTag(\n /*tagName*/\n void 0,\n factory.createJSDocTypeExpression(typeNode)\n )\n ]);\n}\nfunction annotateSetAccessor(changes, importAdder, sourceFile, setAccessorDeclaration, program, host, cancellationToken) {\n const param = firstOrUndefined(setAccessorDeclaration.parameters);\n if (param && isIdentifier(setAccessorDeclaration.name) && isIdentifier(param.name)) {\n let type = inferTypeForVariableFromUsage(setAccessorDeclaration.name, program, cancellationToken);\n if (type === program.getTypeChecker().getAnyType()) {\n type = inferTypeForVariableFromUsage(param.name, program, cancellationToken);\n }\n if (isInJSFile(setAccessorDeclaration)) {\n annotateJSDocParameters(changes, sourceFile, [{ declaration: param, type }], program, host);\n } else {\n annotate(changes, importAdder, sourceFile, param, type, program, host);\n }\n }\n}\nfunction annotate(changes, importAdder, sourceFile, declaration, type, program, host) {\n const typeNode = getTypeNodeIfAccessible(type, declaration, program, host);\n if (typeNode) {\n if (isInJSFile(sourceFile) && declaration.kind !== 172 /* PropertySignature */) {\n const parent2 = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : declaration;\n if (!parent2) {\n return;\n }\n const typeExpression = factory.createJSDocTypeExpression(typeNode);\n const typeTag = isGetAccessorDeclaration(declaration) ? factory.createJSDocReturnTag(\n /*tagName*/\n void 0,\n typeExpression,\n /*comment*/\n void 0\n ) : factory.createJSDocTypeTag(\n /*tagName*/\n void 0,\n typeExpression,\n /*comment*/\n void 0\n );\n changes.addJSDocTags(sourceFile, parent2, [typeTag]);\n } else if (!tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, getEmitScriptTarget(program.getCompilerOptions()))) {\n changes.tryInsertTypeAnnotation(sourceFile, declaration, typeNode);\n }\n }\n}\nfunction tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, scriptTarget) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n if (importableReference && changes.tryInsertTypeAnnotation(sourceFile, declaration, importableReference.typeNode)) {\n forEach(importableReference.symbols, (s) => importAdder.addImportFromExportedSymbol(\n s,\n /*isValidTypeOnlyUseSite*/\n true\n ));\n return true;\n }\n return false;\n}\nfunction annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host) {\n const signature = parameterInferences.length && parameterInferences[0].declaration.parent;\n if (!signature) {\n return;\n }\n const inferences = mapDefined(parameterInferences, (inference) => {\n const param = inference.declaration;\n if (param.initializer || getJSDocType(param) || !isIdentifier(param.name)) {\n return;\n }\n const typeNode = inference.type && getTypeNodeIfAccessible(inference.type, param, program, host);\n if (typeNode) {\n const name = factory.cloneNode(param.name);\n setEmitFlags(name, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n return { name: factory.cloneNode(param.name), param, isOptional: !!inference.isOptional, typeNode };\n }\n });\n if (!inferences.length) {\n return;\n }\n if (isArrowFunction(signature) || isFunctionExpression(signature)) {\n const needParens = isArrowFunction(signature) && !findChildOfKind(signature, 21 /* OpenParenToken */, sourceFile);\n if (needParens) {\n changes.insertNodeBefore(sourceFile, first(signature.parameters), factory.createToken(21 /* OpenParenToken */));\n }\n forEach(inferences, ({ typeNode, param }) => {\n const typeTag = factory.createJSDocTypeTag(\n /*tagName*/\n void 0,\n factory.createJSDocTypeExpression(typeNode)\n );\n const jsDoc = factory.createJSDocComment(\n /*comment*/\n void 0,\n [typeTag]\n );\n changes.insertNodeAt(sourceFile, param.getStart(sourceFile), jsDoc, { suffix: \" \" });\n });\n if (needParens) {\n changes.insertNodeAfter(sourceFile, last(signature.parameters), factory.createToken(22 /* CloseParenToken */));\n }\n } else {\n const paramTags = map(inferences, ({ name, typeNode, isOptional }) => factory.createJSDocParameterTag(\n /*tagName*/\n void 0,\n name,\n /*isBracketed*/\n !!isOptional,\n factory.createJSDocTypeExpression(typeNode),\n /*isNameFirst*/\n false,\n /*comment*/\n void 0\n ));\n changes.addJSDocTags(sourceFile, signature, paramTags);\n }\n}\nfunction getReferences(token, program, cancellationToken) {\n return mapDefined(ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, token, program, program.getSourceFiles(), cancellationToken), (entry) => entry.kind !== ts_FindAllReferences_exports.EntryKind.Span ? tryCast(entry.node, isIdentifier) : void 0);\n}\nfunction inferTypeForVariableFromUsage(token, program, cancellationToken) {\n const references = getReferences(token, program, cancellationToken);\n return inferTypeFromReferences(program, references, cancellationToken).single();\n}\nfunction inferTypeForParametersFromUsage(func, sourceFile, program, cancellationToken) {\n const references = getFunctionReferences(func, sourceFile, program, cancellationToken);\n return references && inferTypeFromReferences(program, references, cancellationToken).parameters(func) || func.parameters.map((p) => ({\n declaration: p,\n type: isIdentifier(p.name) ? inferTypeForVariableFromUsage(p.name, program, cancellationToken) : program.getTypeChecker().getAnyType()\n }));\n}\nfunction getFunctionReferences(containingFunction, sourceFile, program, cancellationToken) {\n let searchToken;\n switch (containingFunction.kind) {\n case 177 /* Constructor */:\n searchToken = findChildOfKind(containingFunction, 137 /* ConstructorKeyword */, sourceFile);\n break;\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n const parent2 = containingFunction.parent;\n searchToken = (isVariableDeclaration(parent2) || isPropertyDeclaration(parent2)) && isIdentifier(parent2.name) ? parent2.name : containingFunction.name;\n break;\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n searchToken = containingFunction.name;\n break;\n }\n if (!searchToken) {\n return void 0;\n }\n return getReferences(searchToken, program, cancellationToken);\n}\nfunction inferTypeFromReferences(program, references, cancellationToken) {\n const checker = program.getTypeChecker();\n const builtinConstructors = {\n string: () => checker.getStringType(),\n number: () => checker.getNumberType(),\n Array: (t) => checker.createArrayType(t),\n Promise: (t) => checker.createPromiseType(t)\n };\n const builtins = [\n checker.getStringType(),\n checker.getNumberType(),\n checker.createArrayType(checker.getAnyType()),\n checker.createPromiseType(checker.getAnyType())\n ];\n return {\n single: single2,\n parameters,\n thisParameter\n };\n function createEmptyUsage() {\n return {\n isNumber: void 0,\n isString: void 0,\n isNumberOrString: void 0,\n candidateTypes: void 0,\n properties: void 0,\n calls: void 0,\n constructs: void 0,\n numberIndex: void 0,\n stringIndex: void 0,\n candidateThisTypes: void 0,\n inferredTypes: void 0\n };\n }\n function combineUsages(usages) {\n const combinedProperties = /* @__PURE__ */ new Map();\n for (const u of usages) {\n if (u.properties) {\n u.properties.forEach((p, name) => {\n if (!combinedProperties.has(name)) {\n combinedProperties.set(name, []);\n }\n combinedProperties.get(name).push(p);\n });\n }\n }\n const properties = /* @__PURE__ */ new Map();\n combinedProperties.forEach((ps, name) => {\n properties.set(name, combineUsages(ps));\n });\n return {\n isNumber: usages.some((u) => u.isNumber),\n isString: usages.some((u) => u.isString),\n isNumberOrString: usages.some((u) => u.isNumberOrString),\n candidateTypes: flatMap(usages, (u) => u.candidateTypes),\n properties,\n calls: flatMap(usages, (u) => u.calls),\n constructs: flatMap(usages, (u) => u.constructs),\n numberIndex: forEach(usages, (u) => u.numberIndex),\n stringIndex: forEach(usages, (u) => u.stringIndex),\n candidateThisTypes: flatMap(usages, (u) => u.candidateThisTypes),\n inferredTypes: void 0\n // clear type cache\n };\n }\n function single2() {\n return combineTypes(inferTypesFromReferencesSingle(references));\n }\n function parameters(declaration) {\n if (references.length === 0 || !declaration.parameters) {\n return void 0;\n }\n const usage = createEmptyUsage();\n for (const reference of references) {\n cancellationToken.throwIfCancellationRequested();\n calculateUsageOfNode(reference, usage);\n }\n const calls = [...usage.constructs || [], ...usage.calls || []];\n return declaration.parameters.map((parameter, parameterIndex) => {\n const types = [];\n const isRest = isRestParameter(parameter);\n let isOptional = false;\n for (const call of calls) {\n if (call.argumentTypes.length <= parameterIndex) {\n isOptional = isInJSFile(declaration);\n types.push(checker.getUndefinedType());\n } else if (isRest) {\n for (let i = parameterIndex; i < call.argumentTypes.length; i++) {\n types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[i]));\n }\n } else {\n types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[parameterIndex]));\n }\n }\n if (isIdentifier(parameter.name)) {\n const inferred = inferTypesFromReferencesSingle(getReferences(parameter.name, program, cancellationToken));\n types.push(...isRest ? mapDefined(inferred, checker.getElementTypeOfArrayType) : inferred);\n }\n const type = combineTypes(types);\n return {\n type: isRest ? checker.createArrayType(type) : type,\n isOptional: isOptional && !isRest,\n declaration: parameter\n };\n });\n }\n function thisParameter() {\n const usage = createEmptyUsage();\n for (const reference of references) {\n cancellationToken.throwIfCancellationRequested();\n calculateUsageOfNode(reference, usage);\n }\n return combineTypes(usage.candidateThisTypes || emptyArray);\n }\n function inferTypesFromReferencesSingle(references2) {\n const usage = createEmptyUsage();\n for (const reference of references2) {\n cancellationToken.throwIfCancellationRequested();\n calculateUsageOfNode(reference, usage);\n }\n return inferTypes(usage);\n }\n function calculateUsageOfNode(node, usage) {\n while (isRightSideOfQualifiedNameOrPropertyAccess(node)) {\n node = node.parent;\n }\n switch (node.parent.kind) {\n case 245 /* ExpressionStatement */:\n inferTypeFromExpressionStatement(node, usage);\n break;\n case 226 /* PostfixUnaryExpression */:\n usage.isNumber = true;\n break;\n case 225 /* PrefixUnaryExpression */:\n inferTypeFromPrefixUnaryExpression(node.parent, usage);\n break;\n case 227 /* BinaryExpression */:\n inferTypeFromBinaryExpression(node, node.parent, usage);\n break;\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n inferTypeFromSwitchStatementLabel(node.parent, usage);\n break;\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n if (node.parent.expression === node) {\n inferTypeFromCallExpression(node.parent, usage);\n } else {\n inferTypeFromContextualType(node, usage);\n }\n break;\n case 212 /* PropertyAccessExpression */:\n inferTypeFromPropertyAccessExpression(node.parent, usage);\n break;\n case 213 /* ElementAccessExpression */:\n inferTypeFromPropertyElementExpression(node.parent, node, usage);\n break;\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n inferTypeFromPropertyAssignment(node.parent, usage);\n break;\n case 173 /* PropertyDeclaration */:\n inferTypeFromPropertyDeclaration(node.parent, usage);\n break;\n case 261 /* VariableDeclaration */: {\n const { name, initializer } = node.parent;\n if (node === name) {\n if (initializer) {\n addCandidateType(usage, checker.getTypeAtLocation(initializer));\n }\n break;\n }\n }\n // falls through\n default:\n return inferTypeFromContextualType(node, usage);\n }\n }\n function inferTypeFromContextualType(node, usage) {\n if (isExpressionNode(node)) {\n addCandidateType(usage, checker.getContextualType(node));\n }\n }\n function inferTypeFromExpressionStatement(node, usage) {\n addCandidateType(usage, isCallExpression(node) ? checker.getVoidType() : checker.getAnyType());\n }\n function inferTypeFromPrefixUnaryExpression(node, usage) {\n switch (node.operator) {\n case 46 /* PlusPlusToken */:\n case 47 /* MinusMinusToken */:\n case 41 /* MinusToken */:\n case 55 /* TildeToken */:\n usage.isNumber = true;\n break;\n case 40 /* PlusToken */:\n usage.isNumberOrString = true;\n break;\n }\n }\n function inferTypeFromBinaryExpression(node, parent2, usage) {\n switch (parent2.operatorToken.kind) {\n // ExponentiationOperator\n case 43 /* AsteriskAsteriskToken */:\n // MultiplicativeOperator\n // falls through\n case 42 /* AsteriskToken */:\n case 44 /* SlashToken */:\n case 45 /* PercentToken */:\n // ShiftOperator\n // falls through\n case 48 /* LessThanLessThanToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n // BitwiseOperator\n // falls through\n case 51 /* AmpersandToken */:\n case 52 /* BarToken */:\n case 53 /* CaretToken */:\n // CompoundAssignmentOperator\n // falls through\n case 66 /* MinusEqualsToken */:\n case 68 /* AsteriskAsteriskEqualsToken */:\n case 67 /* AsteriskEqualsToken */:\n case 69 /* SlashEqualsToken */:\n case 70 /* PercentEqualsToken */:\n case 74 /* AmpersandEqualsToken */:\n case 75 /* BarEqualsToken */:\n case 79 /* CaretEqualsToken */:\n case 71 /* LessThanLessThanEqualsToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n // AdditiveOperator\n // falls through\n case 41 /* MinusToken */:\n // RelationalOperator\n // falls through\n case 30 /* LessThanToken */:\n case 33 /* LessThanEqualsToken */:\n case 32 /* GreaterThanToken */:\n case 34 /* GreaterThanEqualsToken */:\n const operandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);\n if (operandType.flags & 1056 /* EnumLike */) {\n addCandidateType(usage, operandType);\n } else {\n usage.isNumber = true;\n }\n break;\n case 65 /* PlusEqualsToken */:\n case 40 /* PlusToken */:\n const otherOperandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);\n if (otherOperandType.flags & 1056 /* EnumLike */) {\n addCandidateType(usage, otherOperandType);\n } else if (otherOperandType.flags & 296 /* NumberLike */) {\n usage.isNumber = true;\n } else if (otherOperandType.flags & 402653316 /* StringLike */) {\n usage.isString = true;\n } else if (otherOperandType.flags & 1 /* Any */) {\n } else {\n usage.isNumberOrString = true;\n }\n break;\n // AssignmentOperators\n case 64 /* EqualsToken */:\n case 35 /* EqualsEqualsToken */:\n case 37 /* EqualsEqualsEqualsToken */:\n case 38 /* ExclamationEqualsEqualsToken */:\n case 36 /* ExclamationEqualsToken */:\n case 77 /* AmpersandAmpersandEqualsToken */:\n case 78 /* QuestionQuestionEqualsToken */:\n case 76 /* BarBarEqualsToken */:\n addCandidateType(usage, checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left));\n break;\n case 103 /* InKeyword */:\n if (node === parent2.left) {\n usage.isString = true;\n }\n break;\n // LogicalOperator Or NullishCoalescing\n case 57 /* BarBarToken */:\n case 61 /* QuestionQuestionToken */:\n if (node === parent2.left && (node.parent.parent.kind === 261 /* VariableDeclaration */ || isAssignmentExpression(\n node.parent.parent,\n /*excludeCompoundAssignment*/\n true\n ))) {\n addCandidateType(usage, checker.getTypeAtLocation(parent2.right));\n }\n break;\n case 56 /* AmpersandAmpersandToken */:\n case 28 /* CommaToken */:\n case 104 /* InstanceOfKeyword */:\n break;\n }\n }\n function inferTypeFromSwitchStatementLabel(parent2, usage) {\n addCandidateType(usage, checker.getTypeAtLocation(parent2.parent.parent.expression));\n }\n function inferTypeFromCallExpression(parent2, usage) {\n const call = {\n argumentTypes: [],\n return_: createEmptyUsage()\n };\n if (parent2.arguments) {\n for (const argument of parent2.arguments) {\n call.argumentTypes.push(checker.getTypeAtLocation(argument));\n }\n }\n calculateUsageOfNode(parent2, call.return_);\n if (parent2.kind === 214 /* CallExpression */) {\n (usage.calls || (usage.calls = [])).push(call);\n } else {\n (usage.constructs || (usage.constructs = [])).push(call);\n }\n }\n function inferTypeFromPropertyAccessExpression(parent2, usage) {\n const name = escapeLeadingUnderscores(parent2.name.text);\n if (!usage.properties) {\n usage.properties = /* @__PURE__ */ new Map();\n }\n const propertyUsage = usage.properties.get(name) || createEmptyUsage();\n calculateUsageOfNode(parent2, propertyUsage);\n usage.properties.set(name, propertyUsage);\n }\n function inferTypeFromPropertyElementExpression(parent2, node, usage) {\n if (node === parent2.argumentExpression) {\n usage.isNumberOrString = true;\n return;\n } else {\n const indexType = checker.getTypeAtLocation(parent2.argumentExpression);\n const indexUsage = createEmptyUsage();\n calculateUsageOfNode(parent2, indexUsage);\n if (indexType.flags & 296 /* NumberLike */) {\n usage.numberIndex = indexUsage;\n } else {\n usage.stringIndex = indexUsage;\n }\n }\n }\n function inferTypeFromPropertyAssignment(assignment, usage) {\n const nodeWithRealType = isVariableDeclaration(assignment.parent.parent) ? assignment.parent.parent : assignment.parent;\n addCandidateThisType(usage, checker.getTypeAtLocation(nodeWithRealType));\n }\n function inferTypeFromPropertyDeclaration(declaration, usage) {\n addCandidateThisType(usage, checker.getTypeAtLocation(declaration.parent));\n }\n function removeLowPriorityInferences(inferences, priorities) {\n const toRemove = [];\n for (const i of inferences) {\n for (const { high, low } of priorities) {\n if (high(i)) {\n Debug.assert(!low(i), \"Priority can't have both low and high\");\n toRemove.push(low);\n }\n }\n }\n return inferences.filter((i) => toRemove.every((f) => !f(i)));\n }\n function combineFromUsage(usage) {\n return combineTypes(inferTypes(usage));\n }\n function combineTypes(inferences) {\n if (!inferences.length) return checker.getAnyType();\n const stringNumber = checker.getUnionType([checker.getStringType(), checker.getNumberType()]);\n const priorities = [\n {\n high: (t) => t === checker.getStringType() || t === checker.getNumberType(),\n low: (t) => t === stringNumber\n },\n {\n high: (t) => !(t.flags & (1 /* Any */ | 16384 /* Void */)),\n low: (t) => !!(t.flags & (1 /* Any */ | 16384 /* Void */))\n },\n {\n high: (t) => !(t.flags & (98304 /* Nullable */ | 1 /* Any */ | 16384 /* Void */)) && !(getObjectFlags(t) & 16 /* Anonymous */),\n low: (t) => !!(getObjectFlags(t) & 16 /* Anonymous */)\n }\n ];\n let good = removeLowPriorityInferences(inferences, priorities);\n const anons = good.filter((i) => getObjectFlags(i) & 16 /* Anonymous */);\n if (anons.length) {\n good = good.filter((i) => !(getObjectFlags(i) & 16 /* Anonymous */));\n good.push(combineAnonymousTypes(anons));\n }\n return checker.getWidenedType(checker.getUnionType(good.map(checker.getBaseTypeOfLiteralType), 2 /* Subtype */));\n }\n function combineAnonymousTypes(anons) {\n if (anons.length === 1) {\n return anons[0];\n }\n const calls = [];\n const constructs = [];\n const stringIndices = [];\n const numberIndices = [];\n let stringIndexReadonly = false;\n let numberIndexReadonly = false;\n const props = createMultiMap();\n for (const anon2 of anons) {\n for (const p of checker.getPropertiesOfType(anon2)) {\n props.add(p.escapedName, p.valueDeclaration ? checker.getTypeOfSymbolAtLocation(p, p.valueDeclaration) : checker.getAnyType());\n }\n calls.push(...checker.getSignaturesOfType(anon2, 0 /* Call */));\n constructs.push(...checker.getSignaturesOfType(anon2, 1 /* Construct */));\n const stringIndexInfo = checker.getIndexInfoOfType(anon2, 0 /* String */);\n if (stringIndexInfo) {\n stringIndices.push(stringIndexInfo.type);\n stringIndexReadonly = stringIndexReadonly || stringIndexInfo.isReadonly;\n }\n const numberIndexInfo = checker.getIndexInfoOfType(anon2, 1 /* Number */);\n if (numberIndexInfo) {\n numberIndices.push(numberIndexInfo.type);\n numberIndexReadonly = numberIndexReadonly || numberIndexInfo.isReadonly;\n }\n }\n const members = mapEntries(props, (name, types) => {\n const isOptional = types.length < anons.length ? 16777216 /* Optional */ : 0;\n const s = checker.createSymbol(4 /* Property */ | isOptional, name);\n s.links.type = checker.getUnionType(types);\n return [name, s];\n });\n const indexInfos = [];\n if (stringIndices.length) indexInfos.push(checker.createIndexInfo(checker.getStringType(), checker.getUnionType(stringIndices), stringIndexReadonly));\n if (numberIndices.length) indexInfos.push(checker.createIndexInfo(checker.getNumberType(), checker.getUnionType(numberIndices), numberIndexReadonly));\n return checker.createAnonymousType(\n anons[0].symbol,\n members,\n calls,\n constructs,\n indexInfos\n );\n }\n function inferTypes(usage) {\n var _a, _b, _c;\n const types = [];\n if (usage.isNumber) {\n types.push(checker.getNumberType());\n }\n if (usage.isString) {\n types.push(checker.getStringType());\n }\n if (usage.isNumberOrString) {\n types.push(checker.getUnionType([checker.getStringType(), checker.getNumberType()]));\n }\n if (usage.numberIndex) {\n types.push(checker.createArrayType(combineFromUsage(usage.numberIndex)));\n }\n if (((_a = usage.properties) == null ? void 0 : _a.size) || ((_b = usage.constructs) == null ? void 0 : _b.length) || usage.stringIndex) {\n types.push(inferStructuralType(usage));\n }\n const candidateTypes = (usage.candidateTypes || []).map((t) => checker.getBaseTypeOfLiteralType(t));\n const callsType = ((_c = usage.calls) == null ? void 0 : _c.length) ? inferStructuralType(usage) : void 0;\n if (callsType && candidateTypes) {\n types.push(checker.getUnionType([callsType, ...candidateTypes], 2 /* Subtype */));\n } else {\n if (callsType) {\n types.push(callsType);\n }\n if (length(candidateTypes)) {\n types.push(...candidateTypes);\n }\n }\n types.push(...inferNamedTypesFromProperties(usage));\n return types;\n }\n function inferStructuralType(usage) {\n const members = /* @__PURE__ */ new Map();\n if (usage.properties) {\n usage.properties.forEach((u, name) => {\n const symbol = checker.createSymbol(4 /* Property */, name);\n symbol.links.type = combineFromUsage(u);\n members.set(name, symbol);\n });\n }\n const callSignatures = usage.calls ? [getSignatureFromCalls(usage.calls)] : [];\n const constructSignatures = usage.constructs ? [getSignatureFromCalls(usage.constructs)] : [];\n const indexInfos = usage.stringIndex ? [checker.createIndexInfo(\n checker.getStringType(),\n combineFromUsage(usage.stringIndex),\n /*isReadonly*/\n false\n )] : [];\n return checker.createAnonymousType(\n /*symbol*/\n void 0,\n members,\n callSignatures,\n constructSignatures,\n indexInfos\n );\n }\n function inferNamedTypesFromProperties(usage) {\n if (!usage.properties || !usage.properties.size) return [];\n const types = builtins.filter((t) => allPropertiesAreAssignableToUsage(t, usage));\n if (0 < types.length && types.length < 3) {\n return types.map((t) => inferInstantiationFromUsage(t, usage));\n }\n return [];\n }\n function allPropertiesAreAssignableToUsage(type, usage) {\n if (!usage.properties) return false;\n return !forEachEntry(usage.properties, (propUsage, name) => {\n const source = checker.getTypeOfPropertyOfType(type, name);\n if (!source) {\n return true;\n }\n if (propUsage.calls) {\n const sigs = checker.getSignaturesOfType(source, 0 /* Call */);\n return !sigs.length || !checker.isTypeAssignableTo(source, getFunctionFromCalls(propUsage.calls));\n } else {\n return !checker.isTypeAssignableTo(source, combineFromUsage(propUsage));\n }\n });\n }\n function inferInstantiationFromUsage(type, usage) {\n if (!(getObjectFlags(type) & 4 /* Reference */) || !usage.properties) {\n return type;\n }\n const generic = type.target;\n const singleTypeParameter = singleOrUndefined(generic.typeParameters);\n if (!singleTypeParameter) return type;\n const types = [];\n usage.properties.forEach((propUsage, name) => {\n const genericPropertyType = checker.getTypeOfPropertyOfType(generic, name);\n Debug.assert(!!genericPropertyType, \"generic should have all the properties of its reference.\");\n types.push(...inferTypeParameters(genericPropertyType, combineFromUsage(propUsage), singleTypeParameter));\n });\n return builtinConstructors[type.symbol.escapedName](combineTypes(types));\n }\n function inferTypeParameters(genericType, usageType, typeParameter) {\n if (genericType === typeParameter) {\n return [usageType];\n } else if (genericType.flags & 3145728 /* UnionOrIntersection */) {\n return flatMap(genericType.types, (t) => inferTypeParameters(t, usageType, typeParameter));\n } else if (getObjectFlags(genericType) & 4 /* Reference */ && getObjectFlags(usageType) & 4 /* Reference */) {\n const genericArgs = checker.getTypeArguments(genericType);\n const usageArgs = checker.getTypeArguments(usageType);\n const types = [];\n if (genericArgs && usageArgs) {\n for (let i = 0; i < genericArgs.length; i++) {\n if (usageArgs[i]) {\n types.push(...inferTypeParameters(genericArgs[i], usageArgs[i], typeParameter));\n }\n }\n }\n return types;\n }\n const genericSigs = checker.getSignaturesOfType(genericType, 0 /* Call */);\n const usageSigs = checker.getSignaturesOfType(usageType, 0 /* Call */);\n if (genericSigs.length === 1 && usageSigs.length === 1) {\n return inferFromSignatures(genericSigs[0], usageSigs[0], typeParameter);\n }\n return [];\n }\n function inferFromSignatures(genericSig, usageSig, typeParameter) {\n var _a;\n const types = [];\n for (let i = 0; i < genericSig.parameters.length; i++) {\n const genericParam = genericSig.parameters[i];\n const usageParam = usageSig.parameters[i];\n const isRest = genericSig.declaration && isRestParameter(genericSig.declaration.parameters[i]);\n if (!usageParam) {\n break;\n }\n let genericParamType = genericParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(genericParam, genericParam.valueDeclaration) : checker.getAnyType();\n const elementType = isRest && checker.getElementTypeOfArrayType(genericParamType);\n if (elementType) {\n genericParamType = elementType;\n }\n const targetType = ((_a = tryCast(usageParam, isTransientSymbol)) == null ? void 0 : _a.links.type) || (usageParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(usageParam, usageParam.valueDeclaration) : checker.getAnyType());\n types.push(...inferTypeParameters(genericParamType, targetType, typeParameter));\n }\n const genericReturn = checker.getReturnTypeOfSignature(genericSig);\n const usageReturn = checker.getReturnTypeOfSignature(usageSig);\n types.push(...inferTypeParameters(genericReturn, usageReturn, typeParameter));\n return types;\n }\n function getFunctionFromCalls(calls) {\n return checker.createAnonymousType(\n /*symbol*/\n void 0,\n createSymbolTable(),\n [getSignatureFromCalls(calls)],\n emptyArray,\n emptyArray\n );\n }\n function getSignatureFromCalls(calls) {\n const parameters2 = [];\n const length2 = Math.max(...calls.map((c) => c.argumentTypes.length));\n for (let i = 0; i < length2; i++) {\n const symbol = checker.createSymbol(1 /* FunctionScopedVariable */, escapeLeadingUnderscores(`arg${i}`));\n symbol.links.type = combineTypes(calls.map((call) => call.argumentTypes[i] || checker.getUndefinedType()));\n if (calls.some((call) => call.argumentTypes[i] === void 0)) {\n symbol.flags |= 16777216 /* Optional */;\n }\n parameters2.push(symbol);\n }\n const returnType = combineFromUsage(combineUsages(calls.map((call) => call.return_)));\n return checker.createSignature(\n /*declaration*/\n void 0,\n /*typeParameters*/\n void 0,\n /*thisParameter*/\n void 0,\n parameters2,\n returnType,\n /*typePredicate*/\n void 0,\n length2,\n 0 /* None */\n );\n }\n function addCandidateType(usage, type) {\n if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) {\n (usage.candidateTypes || (usage.candidateTypes = [])).push(type);\n }\n }\n function addCandidateThisType(usage, type) {\n if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) {\n (usage.candidateThisTypes || (usage.candidateThisTypes = [])).push(type);\n }\n }\n}\n\n// src/services/codefixes/fixReturnTypeInAsyncFunction.ts\nvar fixId41 = \"fixReturnTypeInAsyncFunction\";\nvar errorCodes52 = [\n Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code\n];\nregisterCodeFix({\n errorCodes: errorCodes52,\n fixIds: [fixId41],\n getCodeActions: function getCodeActionsToFixReturnTypeInAsyncFunction(context) {\n const { sourceFile, program, span } = context;\n const checker = program.getTypeChecker();\n const info = getInfo16(sourceFile, program.getTypeChecker(), span.start);\n if (!info) {\n return void 0;\n }\n const { returnTypeNode, returnType, promisedTypeNode, promisedType } = info;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange34(t, sourceFile, returnTypeNode, promisedTypeNode));\n return [createCodeFixAction(\n fixId41,\n changes,\n [Diagnostics.Replace_0_with_Promise_1, checker.typeToString(returnType), checker.typeToString(promisedType)],\n fixId41,\n Diagnostics.Fix_all_incorrect_return_type_of_an_async_functions\n )];\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes52, (changes, diag2) => {\n const info = getInfo16(diag2.file, context.program.getTypeChecker(), diag2.start);\n if (info) {\n doChange34(changes, diag2.file, info.returnTypeNode, info.promisedTypeNode);\n }\n })\n});\nfunction getInfo16(sourceFile, checker, pos) {\n if (isInJSFile(sourceFile)) {\n return void 0;\n }\n const token = getTokenAtPosition(sourceFile, pos);\n const func = findAncestor(token, isFunctionLikeDeclaration);\n const returnTypeNode = func == null ? void 0 : func.type;\n if (!returnTypeNode) {\n return void 0;\n }\n const returnType = checker.getTypeFromTypeNode(returnTypeNode);\n const promisedType = checker.getAwaitedType(returnType) || checker.getVoidType();\n const promisedTypeNode = checker.typeToTypeNode(\n promisedType,\n /*enclosingDeclaration*/\n returnTypeNode,\n /*flags*/\n void 0\n );\n if (promisedTypeNode) {\n return { returnTypeNode, returnType, promisedTypeNode, promisedType };\n }\n}\nfunction doChange34(changes, sourceFile, returnTypeNode, promisedTypeNode) {\n changes.replaceNode(sourceFile, returnTypeNode, factory.createTypeReferenceNode(\"Promise\", [promisedTypeNode]));\n}\n\n// src/services/codefixes/disableJsDiagnostics.ts\nvar fixName4 = \"disableJsDiagnostics\";\nvar fixId42 = \"disableJsDiagnostics\";\nvar errorCodes53 = mapDefined(Object.keys(Diagnostics), (key) => {\n const diag2 = Diagnostics[key];\n return diag2.category === 1 /* Error */ ? diag2.code : void 0;\n});\nregisterCodeFix({\n errorCodes: errorCodes53,\n getCodeActions: function getCodeActionsToDisableJsDiagnostics(context) {\n const { sourceFile, program, span, host, formatContext } = context;\n if (!isInJSFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) {\n return void 0;\n }\n const newLineCharacter = sourceFile.checkJsDirective ? \"\" : getNewLineOrDefaultFromHost(host, formatContext.options);\n const fixes = [\n // fixId unnecessary because adding `// @ts-nocheck` even once will ignore every error in the file.\n createCodeFixActionWithoutFixAll(\n fixName4,\n [createFileTextChanges(sourceFile.fileName, [\n createTextChange(\n sourceFile.checkJsDirective ? createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end) : createTextSpan(0, 0),\n `// @ts-nocheck${newLineCharacter}`\n )\n ])],\n Diagnostics.Disable_checking_for_this_file\n )\n ];\n if (ts_textChanges_exports.isValidLocationToAddComment(sourceFile, span.start)) {\n fixes.unshift(createCodeFixAction(fixName4, ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange9(t, sourceFile, span.start)), Diagnostics.Ignore_this_error_message, fixId42, Diagnostics.Add_ts_ignore_to_all_error_messages));\n }\n return fixes;\n },\n fixIds: [fixId42],\n getAllCodeActions: (context) => {\n const seenLines = /* @__PURE__ */ new Set();\n return codeFixAll(context, errorCodes53, (changes, diag2) => {\n if (ts_textChanges_exports.isValidLocationToAddComment(diag2.file, diag2.start)) {\n makeChange9(changes, diag2.file, diag2.start, seenLines);\n }\n });\n }\n});\nfunction makeChange9(changes, sourceFile, position, seenLines) {\n const { line: lineNumber } = getLineAndCharacterOfPosition(sourceFile, position);\n if (!seenLines || tryAddToSet(seenLines, lineNumber)) {\n changes.insertCommentBeforeLine(sourceFile, lineNumber, position, \" @ts-ignore\");\n }\n}\n\n// src/services/codefixes/helpers.ts\nfunction createMissingMemberNodes(classDeclaration, possiblyMissingSymbols, sourceFile, context, preferences, importAdder, addClassElement) {\n const classMembers = classDeclaration.symbol.members;\n for (const symbol of possiblyMissingSymbols) {\n if (!classMembers.has(symbol.escapedName)) {\n addNewNodeForMemberSymbol(\n symbol,\n classDeclaration,\n sourceFile,\n context,\n preferences,\n importAdder,\n addClassElement,\n /*body*/\n void 0\n );\n }\n }\n}\nfunction getNoopSymbolTrackerWithResolver(context) {\n return {\n trackSymbol: () => false,\n moduleResolverHost: getModuleSpecifierResolverHost(context.program, context.host)\n };\n}\nvar PreserveOptionalFlags = /* @__PURE__ */ ((PreserveOptionalFlags2) => {\n PreserveOptionalFlags2[PreserveOptionalFlags2[\"Method\"] = 1] = \"Method\";\n PreserveOptionalFlags2[PreserveOptionalFlags2[\"Property\"] = 2] = \"Property\";\n PreserveOptionalFlags2[PreserveOptionalFlags2[\"All\"] = 3] = \"All\";\n return PreserveOptionalFlags2;\n})(PreserveOptionalFlags || {});\nfunction addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, preserveOptional = 3 /* All */, isAmbient = false) {\n const declarations = symbol.getDeclarations();\n const declaration = firstOrUndefined(declarations);\n const checker = context.program.getTypeChecker();\n const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n const kind = (declaration == null ? void 0 : declaration.kind) ?? 172 /* PropertySignature */;\n const declarationName = createDeclarationName(symbol, declaration);\n const effectiveModifierFlags = declaration ? getEffectiveModifierFlags(declaration) : 0 /* None */;\n let modifierFlags = effectiveModifierFlags & 256 /* Static */;\n modifierFlags |= effectiveModifierFlags & 1 /* Public */ ? 1 /* Public */ : effectiveModifierFlags & 4 /* Protected */ ? 4 /* Protected */ : 0 /* None */;\n if (declaration && isAutoAccessorPropertyDeclaration(declaration)) {\n modifierFlags |= 512 /* Accessor */;\n }\n const modifiers = createModifiers();\n const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));\n const optional = !!(symbol.flags & 16777216 /* Optional */);\n const ambient = !!(enclosingDeclaration.flags & 33554432 /* Ambient */) || isAmbient;\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const flags = 1 /* NoTruncation */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n switch (kind) {\n case 172 /* PropertySignature */:\n case 173 /* PropertyDeclaration */:\n let typeNode = checker.typeToTypeNode(type, enclosingDeclaration, flags, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n if (importAdder) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n if (importableReference) {\n typeNode = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n addClassElement(factory.createPropertyDeclaration(\n modifiers,\n declaration ? createName(declarationName) : symbol.getName(),\n optional && preserveOptional & 2 /* Property */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n typeNode,\n /*initializer*/\n void 0\n ));\n break;\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */: {\n Debug.assertIsDefined(declarations);\n let typeNode2 = checker.typeToTypeNode(\n type,\n enclosingDeclaration,\n flags,\n /*internalFlags*/\n void 0,\n getNoopSymbolTrackerWithResolver(context)\n );\n const allAccessors = getAllAccessorDeclarations(declarations, declaration);\n const orderedAccessors = allAccessors.secondAccessor ? [allAccessors.firstAccessor, allAccessors.secondAccessor] : [allAccessors.firstAccessor];\n if (importAdder) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode2, scriptTarget);\n if (importableReference) {\n typeNode2 = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n for (const accessor of orderedAccessors) {\n if (isGetAccessorDeclaration(accessor)) {\n addClassElement(factory.createGetAccessorDeclaration(\n modifiers,\n createName(declarationName),\n emptyArray,\n createTypeNode(typeNode2),\n createBody(body, quotePreference, ambient)\n ));\n } else {\n Debug.assertNode(accessor, isSetAccessorDeclaration, \"The counterpart to a getter should be a setter\");\n const parameter = getSetAccessorValueParameter(accessor);\n const parameterName = parameter && isIdentifier(parameter.name) ? idText(parameter.name) : void 0;\n addClassElement(factory.createSetAccessorDeclaration(\n modifiers,\n createName(declarationName),\n createDummyParameters(\n 1,\n [parameterName],\n [createTypeNode(typeNode2)],\n 1,\n /*inJs*/\n false\n ),\n createBody(body, quotePreference, ambient)\n ));\n }\n }\n break;\n }\n case 174 /* MethodSignature */:\n case 175 /* MethodDeclaration */:\n Debug.assertIsDefined(declarations);\n const signatures = type.isUnion() ? flatMap(type.types, (t) => t.getCallSignatures()) : type.getCallSignatures();\n if (!some(signatures)) {\n break;\n }\n if (declarations.length === 1) {\n Debug.assert(signatures.length === 1, \"One declaration implies one signature\");\n const signature = signatures[0];\n outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference, ambient));\n break;\n }\n for (const signature of signatures) {\n if (signature.declaration && signature.declaration.flags & 33554432 /* Ambient */) {\n continue;\n }\n outputMethod(quotePreference, signature, modifiers, createName(declarationName));\n }\n if (!ambient) {\n if (declarations.length > signatures.length) {\n const signature = checker.getSignatureFromDeclaration(declarations[declarations.length - 1]);\n outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference));\n } else {\n Debug.assert(declarations.length === signatures.length, \"Declarations and signatures should match count\");\n addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, createName(declarationName), optional && !!(preserveOptional & 1 /* Method */), modifiers, quotePreference, body));\n }\n }\n break;\n }\n function outputMethod(quotePreference2, signature, modifiers2, name, body2) {\n const method = createSignatureDeclarationFromSignature(175 /* MethodDeclaration */, context, quotePreference2, signature, body2, name, modifiers2, optional && !!(preserveOptional & 1 /* Method */), enclosingDeclaration, importAdder);\n if (method) addClassElement(method);\n }\n function createModifiers() {\n let modifiers2;\n if (modifierFlags) {\n modifiers2 = combine(modifiers2, factory.createModifiersFromModifierFlags(modifierFlags));\n }\n if (shouldAddOverrideKeyword()) {\n modifiers2 = append(modifiers2, factory.createToken(164 /* OverrideKeyword */));\n }\n return modifiers2 && factory.createNodeArray(modifiers2);\n }\n function shouldAddOverrideKeyword() {\n return !!(context.program.getCompilerOptions().noImplicitOverride && declaration && hasAbstractModifier(declaration));\n }\n function createName(node) {\n if (isIdentifier(node) && node.escapedText === \"constructor\") {\n return factory.createComputedPropertyName(factory.createStringLiteral(idText(node), quotePreference === 0 /* Single */));\n }\n return getSynthesizedDeepClone(\n node,\n /*includeTrivia*/\n false\n );\n }\n function createBody(block, quotePreference2, ambient2) {\n return ambient2 ? void 0 : getSynthesizedDeepClone(\n block,\n /*includeTrivia*/\n false\n ) || createStubbedMethodBody(quotePreference2);\n }\n function createTypeNode(typeNode) {\n return getSynthesizedDeepClone(\n typeNode,\n /*includeTrivia*/\n false\n );\n }\n function createDeclarationName(symbol2, declaration2) {\n if (getCheckFlags(symbol2) & 262144 /* Mapped */) {\n const nameType = symbol2.links.nameType;\n if (nameType && isTypeUsableAsPropertyName(nameType)) {\n return factory.createIdentifier(unescapeLeadingUnderscores(getPropertyNameFromType(nameType)));\n }\n }\n return getSynthesizedDeepClone(\n getNameOfDeclaration(declaration2),\n /*includeTrivia*/\n false\n );\n }\n}\nfunction createSignatureDeclarationFromSignature(kind, context, quotePreference, signature, body, name, modifiers, optional, enclosingDeclaration, importAdder) {\n const program = context.program;\n const checker = program.getTypeChecker();\n const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n const isJs = isInJSFile(enclosingDeclaration);\n const flags = 1 /* NoTruncation */ | 256 /* SuppressAnyReturnType */ | 524288 /* AllowEmptyTuple */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n const signatureDeclaration = checker.signatureToSignatureDeclaration(signature, kind, enclosingDeclaration, flags, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n if (!signatureDeclaration) {\n return void 0;\n }\n let typeParameters = isJs ? void 0 : signatureDeclaration.typeParameters;\n let parameters = signatureDeclaration.parameters;\n let type = isJs ? void 0 : getSynthesizedDeepClone(signatureDeclaration.type);\n if (importAdder) {\n if (typeParameters) {\n const newTypeParameters = sameMap(typeParameters, (typeParameterDecl) => {\n let constraint = typeParameterDecl.constraint;\n let defaultType = typeParameterDecl.default;\n if (constraint) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(constraint, scriptTarget);\n if (importableReference) {\n constraint = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n if (defaultType) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(defaultType, scriptTarget);\n if (importableReference) {\n defaultType = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n return factory.updateTypeParameterDeclaration(\n typeParameterDecl,\n typeParameterDecl.modifiers,\n typeParameterDecl.name,\n constraint,\n defaultType\n );\n });\n if (typeParameters !== newTypeParameters) {\n typeParameters = setTextRange(factory.createNodeArray(newTypeParameters, typeParameters.hasTrailingComma), typeParameters);\n }\n }\n const newParameters = sameMap(parameters, (parameterDecl) => {\n let type2 = isJs ? void 0 : parameterDecl.type;\n if (type2) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(type2, scriptTarget);\n if (importableReference) {\n type2 = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n return factory.updateParameterDeclaration(\n parameterDecl,\n parameterDecl.modifiers,\n parameterDecl.dotDotDotToken,\n parameterDecl.name,\n isJs ? void 0 : parameterDecl.questionToken,\n type2,\n parameterDecl.initializer\n );\n });\n if (parameters !== newParameters) {\n parameters = setTextRange(factory.createNodeArray(newParameters, parameters.hasTrailingComma), parameters);\n }\n if (type) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(type, scriptTarget);\n if (importableReference) {\n type = importableReference.typeNode;\n importSymbols(importAdder, importableReference.symbols);\n }\n }\n }\n const questionToken = optional ? factory.createToken(58 /* QuestionToken */) : void 0;\n const asteriskToken = signatureDeclaration.asteriskToken;\n if (isFunctionExpression(signatureDeclaration)) {\n return factory.updateFunctionExpression(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body ?? signatureDeclaration.body);\n }\n if (isArrowFunction(signatureDeclaration)) {\n return factory.updateArrowFunction(signatureDeclaration, modifiers, typeParameters, parameters, type, signatureDeclaration.equalsGreaterThanToken, body ?? signatureDeclaration.body);\n }\n if (isMethodDeclaration(signatureDeclaration)) {\n return factory.updateMethodDeclaration(signatureDeclaration, modifiers, asteriskToken, name ?? factory.createIdentifier(\"\"), questionToken, typeParameters, parameters, type, body);\n }\n if (isFunctionDeclaration(signatureDeclaration)) {\n return factory.updateFunctionDeclaration(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body ?? signatureDeclaration.body);\n }\n return void 0;\n}\nfunction createSignatureDeclarationFromCallExpression(kind, context, importAdder, call, name, modifierFlags, contextNode) {\n const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n const tracker = getNoopSymbolTrackerWithResolver(context);\n const checker = context.program.getTypeChecker();\n const isJs = isInJSFile(contextNode);\n const { typeArguments, arguments: args, parent: parent2 } = call;\n const contextualType = isJs ? void 0 : checker.getContextualType(call);\n const names = map(args, (arg) => isIdentifier(arg) ? arg.text : isPropertyAccessExpression(arg) && isIdentifier(arg.name) ? arg.name.text : void 0);\n const instanceTypes = isJs ? [] : map(args, (arg) => checker.getTypeAtLocation(arg));\n const { argumentTypeNodes, argumentTypeParameters } = getArgumentTypesAndTypeParameters(\n checker,\n importAdder,\n instanceTypes,\n contextNode,\n scriptTarget,\n 1 /* NoTruncation */,\n 8 /* AllowUnresolvedNames */,\n tracker\n );\n const modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0;\n const asteriskToken = isYieldExpression(parent2) ? factory.createToken(42 /* AsteriskToken */) : void 0;\n const typeParameters = isJs ? void 0 : createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments);\n const parameters = createDummyParameters(\n args.length,\n names,\n argumentTypeNodes,\n /*minArgumentCount*/\n void 0,\n isJs\n );\n const type = isJs || contextualType === void 0 ? void 0 : checker.typeToTypeNode(\n contextualType,\n contextNode,\n /*flags*/\n void 0,\n /*internalFlags*/\n void 0,\n tracker\n );\n switch (kind) {\n case 175 /* MethodDeclaration */:\n return factory.createMethodDeclaration(\n modifiers,\n asteriskToken,\n name,\n /*questionToken*/\n void 0,\n typeParameters,\n parameters,\n type,\n createStubbedMethodBody(quotePreference)\n );\n case 174 /* MethodSignature */:\n return factory.createMethodSignature(\n modifiers,\n name,\n /*questionToken*/\n void 0,\n typeParameters,\n parameters,\n type === void 0 ? factory.createKeywordTypeNode(159 /* UnknownKeyword */) : type\n );\n case 263 /* FunctionDeclaration */:\n Debug.assert(typeof name === \"string\" || isIdentifier(name), \"Unexpected name\");\n return factory.createFunctionDeclaration(\n modifiers,\n asteriskToken,\n name,\n typeParameters,\n parameters,\n type,\n createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference)\n );\n default:\n Debug.fail(\"Unexpected kind\");\n }\n}\nfunction createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments) {\n const usedNames = new Set(argumentTypeParameters.map((pair) => pair[0]));\n const constraintsByName = new Map(argumentTypeParameters);\n if (typeArguments) {\n const typeArgumentsWithNewTypes = typeArguments.filter((typeArgument) => !argumentTypeParameters.some((pair) => {\n var _a;\n return checker.getTypeAtLocation(typeArgument) === ((_a = pair[1]) == null ? void 0 : _a.argumentType);\n }));\n const targetSize = usedNames.size + typeArgumentsWithNewTypes.length;\n for (let i = 0; usedNames.size < targetSize; i += 1) {\n usedNames.add(createTypeParameterName(i));\n }\n }\n return arrayFrom(\n usedNames.values(),\n (usedName) => {\n var _a;\n return factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n usedName,\n (_a = constraintsByName.get(usedName)) == null ? void 0 : _a.constraint\n );\n }\n );\n}\nfunction createTypeParameterName(index) {\n return 84 /* T */ + index <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + index) : `T${index}`;\n}\nfunction typeToAutoImportableTypeNode(checker, importAdder, type, contextNode, scriptTarget, flags, internalFlags, tracker) {\n const typeNode = checker.typeToTypeNode(type, contextNode, flags, internalFlags, tracker);\n if (!typeNode) {\n return void 0;\n }\n return typeNodeToAutoImportableTypeNode(typeNode, importAdder, scriptTarget);\n}\nfunction typeNodeToAutoImportableTypeNode(typeNode, importAdder, scriptTarget) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n if (importableReference) {\n importSymbols(importAdder, importableReference.symbols);\n typeNode = importableReference.typeNode;\n }\n return getSynthesizedDeepClone(typeNode);\n}\nfunction endOfRequiredTypeParameters(checker, type) {\n var _a;\n Debug.assert(type.typeArguments);\n const fullTypeArguments = type.typeArguments;\n const target = type.target;\n for (let cutoff = 0; cutoff < fullTypeArguments.length; cutoff++) {\n if (((_a = target.localTypeParameters) == null ? void 0 : _a[cutoff].constraint) === void 0) {\n continue;\n }\n const typeArguments = fullTypeArguments.slice(0, cutoff);\n const filledIn = checker.fillMissingTypeArguments(\n typeArguments,\n target.typeParameters,\n cutoff,\n /*isJavaScriptImplicitAny*/\n false\n );\n if (filledIn.every((fill, i) => fill === fullTypeArguments[i])) {\n return cutoff;\n }\n }\n return fullTypeArguments.length;\n}\nfunction typeToMinimizedReferenceType(checker, type, contextNode, flags, internalFlags, tracker) {\n let typeNode = checker.typeToTypeNode(type, contextNode, flags, internalFlags, tracker);\n if (!typeNode) {\n return void 0;\n }\n if (isTypeReferenceNode(typeNode)) {\n const genericType = type;\n if (genericType.typeArguments && typeNode.typeArguments) {\n const cutoff = endOfRequiredTypeParameters(checker, genericType);\n if (cutoff < typeNode.typeArguments.length) {\n const newTypeArguments = factory.createNodeArray(typeNode.typeArguments.slice(0, cutoff));\n typeNode = factory.updateTypeReferenceNode(typeNode, typeNode.typeName, newTypeArguments);\n }\n }\n }\n return typeNode;\n}\nfunction typePredicateToAutoImportableTypeNode(checker, importAdder, typePredicate, contextNode, scriptTarget, flags, internalFlags, tracker) {\n let typePredicateNode = checker.typePredicateToTypePredicateNode(typePredicate, contextNode, flags, internalFlags, tracker);\n if ((typePredicateNode == null ? void 0 : typePredicateNode.type) && isImportTypeNode(typePredicateNode.type)) {\n const importableReference = tryGetAutoImportableReferenceFromTypeNode(typePredicateNode.type, scriptTarget);\n if (importableReference) {\n importSymbols(importAdder, importableReference.symbols);\n typePredicateNode = factory.updateTypePredicateNode(typePredicateNode, typePredicateNode.assertsModifier, typePredicateNode.parameterName, importableReference.typeNode);\n }\n }\n return getSynthesizedDeepClone(typePredicateNode);\n}\nfunction typeContainsTypeParameter(type) {\n if (type.isUnionOrIntersection()) {\n return type.types.some(typeContainsTypeParameter);\n }\n return type.flags & 262144 /* TypeParameter */;\n}\nfunction getArgumentTypesAndTypeParameters(checker, importAdder, instanceTypes, contextNode, scriptTarget, flags, internalFlags, tracker) {\n const argumentTypeNodes = [];\n const argumentTypeParameters = /* @__PURE__ */ new Map();\n for (let i = 0; i < instanceTypes.length; i += 1) {\n const instanceType = instanceTypes[i];\n if (instanceType.isUnionOrIntersection() && instanceType.types.some(typeContainsTypeParameter)) {\n const synthesizedTypeParameterName = createTypeParameterName(i);\n argumentTypeNodes.push(factory.createTypeReferenceNode(synthesizedTypeParameterName));\n argumentTypeParameters.set(synthesizedTypeParameterName, void 0);\n continue;\n }\n const widenedInstanceType = checker.getBaseTypeOfLiteralType(instanceType);\n const argumentTypeNode = typeToAutoImportableTypeNode(checker, importAdder, widenedInstanceType, contextNode, scriptTarget, flags, internalFlags, tracker);\n if (!argumentTypeNode) {\n continue;\n }\n argumentTypeNodes.push(argumentTypeNode);\n const argumentTypeParameter = getFirstTypeParameterName(instanceType);\n const instanceTypeConstraint = instanceType.isTypeParameter() && instanceType.constraint && !isAnonymousObjectConstraintType(instanceType.constraint) ? typeToAutoImportableTypeNode(checker, importAdder, instanceType.constraint, contextNode, scriptTarget, flags, internalFlags, tracker) : void 0;\n if (argumentTypeParameter) {\n argumentTypeParameters.set(argumentTypeParameter, { argumentType: instanceType, constraint: instanceTypeConstraint });\n }\n }\n return { argumentTypeNodes, argumentTypeParameters: arrayFrom(argumentTypeParameters.entries()) };\n}\nfunction isAnonymousObjectConstraintType(type) {\n return type.flags & 524288 /* Object */ && type.objectFlags === 16 /* Anonymous */;\n}\nfunction getFirstTypeParameterName(type) {\n var _a;\n if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) {\n for (const subType of type.types) {\n const subTypeName = getFirstTypeParameterName(subType);\n if (subTypeName) {\n return subTypeName;\n }\n }\n }\n return type.flags & 262144 /* TypeParameter */ ? (_a = type.getSymbol()) == null ? void 0 : _a.getName() : void 0;\n}\nfunction createDummyParameters(argCount, names, types, minArgumentCount, inJs) {\n const parameters = [];\n const parameterNameCounts = /* @__PURE__ */ new Map();\n for (let i = 0; i < argCount; i++) {\n const parameterName = (names == null ? void 0 : names[i]) || `arg${i}`;\n const parameterNameCount = parameterNameCounts.get(parameterName);\n parameterNameCounts.set(parameterName, (parameterNameCount || 0) + 1);\n const newParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n /*name*/\n parameterName + (parameterNameCount || \"\"),\n /*questionToken*/\n minArgumentCount !== void 0 && i >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0,\n /*type*/\n inJs ? void 0 : (types == null ? void 0 : types[i]) || factory.createKeywordTypeNode(159 /* UnknownKeyword */),\n /*initializer*/\n void 0\n );\n parameters.push(newParameter);\n }\n return parameters;\n}\nfunction createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional, modifiers, quotePreference, body) {\n let maxArgsSignature = signatures[0];\n let minArgumentCount = signatures[0].minArgumentCount;\n let someSigHasRestParameter = false;\n for (const sig of signatures) {\n minArgumentCount = Math.min(sig.minArgumentCount, minArgumentCount);\n if (signatureHasRestParameter(sig)) {\n someSigHasRestParameter = true;\n }\n if (sig.parameters.length >= maxArgsSignature.parameters.length && (!signatureHasRestParameter(sig) || signatureHasRestParameter(maxArgsSignature))) {\n maxArgsSignature = sig;\n }\n }\n const maxNonRestArgs = maxArgsSignature.parameters.length - (signatureHasRestParameter(maxArgsSignature) ? 1 : 0);\n const maxArgsParameterSymbolNames = maxArgsSignature.parameters.map((symbol) => symbol.name);\n const parameters = createDummyParameters(\n maxNonRestArgs,\n maxArgsParameterSymbolNames,\n /*types*/\n void 0,\n minArgumentCount,\n /*inJs*/\n false\n );\n if (someSigHasRestParameter) {\n const restParameter = factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n factory.createToken(26 /* DotDotDotToken */),\n maxArgsParameterSymbolNames[maxNonRestArgs] || \"rest\",\n /*questionToken*/\n maxNonRestArgs >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0,\n factory.createArrayTypeNode(factory.createKeywordTypeNode(159 /* UnknownKeyword */)),\n /*initializer*/\n void 0\n );\n parameters.push(restParameter);\n }\n return createStubbedMethod(\n modifiers,\n name,\n optional,\n /*typeParameters*/\n void 0,\n parameters,\n getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration),\n quotePreference,\n body\n );\n}\nfunction getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration) {\n if (length(signatures)) {\n const type = checker.getUnionType(map(signatures, checker.getReturnTypeOfSignature));\n return checker.typeToTypeNode(type, enclosingDeclaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n }\n}\nfunction createStubbedMethod(modifiers, name, optional, typeParameters, parameters, returnType, quotePreference, body) {\n return factory.createMethodDeclaration(\n modifiers,\n /*asteriskToken*/\n void 0,\n name,\n optional ? factory.createToken(58 /* QuestionToken */) : void 0,\n typeParameters,\n parameters,\n returnType,\n body || createStubbedMethodBody(quotePreference)\n );\n}\nfunction createStubbedMethodBody(quotePreference) {\n return createStubbedBody(Diagnostics.Method_not_implemented.message, quotePreference);\n}\nfunction createStubbedBody(text, quotePreference) {\n return factory.createBlock(\n [factory.createThrowStatement(\n factory.createNewExpression(\n factory.createIdentifier(\"Error\"),\n /*typeArguments*/\n void 0,\n // TODO Handle auto quote preference.\n [factory.createStringLiteral(\n text,\n /*isSingleQuote*/\n quotePreference === 0 /* Single */\n )]\n )\n )],\n /*multiLine*/\n true\n );\n}\nfunction setJsonCompilerOptionValues(changeTracker, configFile, options) {\n const tsconfigObjectLiteral = getTsConfigObjectLiteralExpression(configFile);\n if (!tsconfigObjectLiteral) return void 0;\n const compilerOptionsProperty = findJsonProperty(tsconfigObjectLiteral, \"compilerOptions\");\n if (compilerOptionsProperty === void 0) {\n changeTracker.insertNodeAtObjectStart(\n configFile,\n tsconfigObjectLiteral,\n createJsonPropertyAssignment(\n \"compilerOptions\",\n factory.createObjectLiteralExpression(\n options.map(([optionName, optionValue]) => createJsonPropertyAssignment(optionName, optionValue)),\n /*multiLine*/\n true\n )\n )\n );\n return;\n }\n const compilerOptions = compilerOptionsProperty.initializer;\n if (!isObjectLiteralExpression(compilerOptions)) {\n return;\n }\n for (const [optionName, optionValue] of options) {\n const optionProperty = findJsonProperty(compilerOptions, optionName);\n if (optionProperty === void 0) {\n changeTracker.insertNodeAtObjectStart(configFile, compilerOptions, createJsonPropertyAssignment(optionName, optionValue));\n } else {\n changeTracker.replaceNode(configFile, optionProperty.initializer, optionValue);\n }\n }\n}\nfunction setJsonCompilerOptionValue(changeTracker, configFile, optionName, optionValue) {\n setJsonCompilerOptionValues(changeTracker, configFile, [[optionName, optionValue]]);\n}\nfunction createJsonPropertyAssignment(name, initializer) {\n return factory.createPropertyAssignment(factory.createStringLiteral(name), initializer);\n}\nfunction findJsonProperty(obj, name) {\n return find(obj.properties, (p) => isPropertyAssignment(p) && !!p.name && isStringLiteral(p.name) && p.name.text === name);\n}\nfunction tryGetAutoImportableReferenceFromTypeNode(importTypeNode, scriptTarget) {\n let symbols;\n const typeNode = visitNode(importTypeNode, visit, isTypeNode);\n if (symbols && typeNode) {\n return { typeNode, symbols };\n }\n function visit(node) {\n if (isLiteralImportTypeNode(node) && node.qualifier) {\n const firstIdentifier = getFirstIdentifier(node.qualifier);\n if (!firstIdentifier.symbol) {\n return visitEachChild(\n node,\n visit,\n /*context*/\n void 0\n );\n }\n const name = getNameForExportedSymbol(firstIdentifier.symbol, scriptTarget);\n const qualifier = name !== firstIdentifier.text ? replaceFirstIdentifierOfEntityName(node.qualifier, factory.createIdentifier(name)) : node.qualifier;\n symbols = append(symbols, firstIdentifier.symbol);\n const typeArguments = visitNodes2(node.typeArguments, visit, isTypeNode);\n return factory.createTypeReferenceNode(qualifier, typeArguments);\n }\n return visitEachChild(\n node,\n visit,\n /*context*/\n void 0\n );\n }\n}\nfunction replaceFirstIdentifierOfEntityName(name, newIdentifier) {\n if (name.kind === 80 /* Identifier */) {\n return newIdentifier;\n }\n return factory.createQualifiedName(replaceFirstIdentifierOfEntityName(name.left, newIdentifier), name.right);\n}\nfunction importSymbols(importAdder, symbols) {\n symbols.forEach((s) => importAdder.addImportFromExportedSymbol(\n s,\n /*isValidTypeOnlyUseSite*/\n true\n ));\n}\nfunction findAncestorMatchingSpan(sourceFile, span) {\n const end = textSpanEnd(span);\n let token = getTokenAtPosition(sourceFile, span.start);\n while (token.end < end) {\n token = token.parent;\n }\n return token;\n}\n\n// src/services/codefixes/generateAccessors.ts\nfunction generateAccessorFromProperty(file, program, start, end, context, _actionName) {\n const fieldInfo = getAccessorConvertiblePropertyAtPosition(file, program, start, end);\n if (!fieldInfo || ts_refactor_exports.isRefactorErrorInfo(fieldInfo)) return void 0;\n const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n const { isStatic: isStatic2, isReadonly, fieldName, accessorName, originalName, type, container, declaration } = fieldInfo;\n suppressLeadingAndTrailingTrivia(fieldName);\n suppressLeadingAndTrailingTrivia(accessorName);\n suppressLeadingAndTrailingTrivia(declaration);\n suppressLeadingAndTrailingTrivia(container);\n let accessorModifiers;\n let fieldModifiers;\n if (isClassLike(container)) {\n const modifierFlags = getEffectiveModifierFlags(declaration);\n if (isSourceFileJS(file)) {\n const modifiers = factory.createModifiersFromModifierFlags(modifierFlags);\n accessorModifiers = modifiers;\n fieldModifiers = modifiers;\n } else {\n accessorModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForAccessor(modifierFlags));\n fieldModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForField(modifierFlags));\n }\n if (canHaveDecorators(declaration)) {\n fieldModifiers = concatenate(getDecorators(declaration), fieldModifiers);\n }\n }\n updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, fieldModifiers);\n const getAccessor = generateGetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container);\n suppressLeadingAndTrailingTrivia(getAccessor);\n insertAccessor(changeTracker, file, getAccessor, declaration, container);\n if (isReadonly) {\n const constructor = getFirstConstructorWithBody(container);\n if (constructor) {\n updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName.text, originalName);\n }\n } else {\n const setAccessor = generateSetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container);\n suppressLeadingAndTrailingTrivia(setAccessor);\n insertAccessor(changeTracker, file, setAccessor, declaration, container);\n }\n return changeTracker.getChanges();\n}\nfunction isConvertibleName(name) {\n return isIdentifier(name) || isStringLiteral(name);\n}\nfunction isAcceptedDeclaration(node) {\n return isParameterPropertyDeclaration(node, node.parent) || isPropertyDeclaration(node) || isPropertyAssignment(node);\n}\nfunction createPropertyName(name, originalName) {\n return isIdentifier(originalName) ? factory.createIdentifier(name) : factory.createStringLiteral(name);\n}\nfunction createAccessorAccessExpression(fieldName, isStatic2, container) {\n const leftHead = isStatic2 ? container.name : factory.createThis();\n return isIdentifier(fieldName) ? factory.createPropertyAccessExpression(leftHead, fieldName) : factory.createElementAccessExpression(leftHead, factory.createStringLiteralFromNode(fieldName));\n}\nfunction prepareModifierFlagsForAccessor(modifierFlags) {\n modifierFlags &= ~8 /* Readonly */;\n modifierFlags &= ~2 /* Private */;\n if (!(modifierFlags & 4 /* Protected */)) {\n modifierFlags |= 1 /* Public */;\n }\n return modifierFlags;\n}\nfunction prepareModifierFlagsForField(modifierFlags) {\n modifierFlags &= ~1 /* Public */;\n modifierFlags &= ~4 /* Protected */;\n modifierFlags |= 2 /* Private */;\n return modifierFlags;\n}\nfunction getAccessorConvertiblePropertyAtPosition(file, program, start, end, considerEmptySpans = true) {\n const node = getTokenAtPosition(file, start);\n const cursorRequest = start === end && considerEmptySpans;\n const declaration = findAncestor(node.parent, isAcceptedDeclaration);\n const meaning = 7 /* AccessibilityModifier */ | 256 /* Static */ | 8 /* Readonly */;\n if (!declaration || !(nodeOverlapsWithStartEnd(declaration.name, file, start, end) || cursorRequest)) {\n return {\n error: getLocaleSpecificMessage(Diagnostics.Could_not_find_property_for_which_to_generate_accessor)\n };\n }\n if (!isConvertibleName(declaration.name)) {\n return {\n error: getLocaleSpecificMessage(Diagnostics.Name_is_not_valid)\n };\n }\n if ((getEffectiveModifierFlags(declaration) & 98303 /* Modifier */ | meaning) !== meaning) {\n return {\n error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_property_with_modifier)\n };\n }\n const name = declaration.name.text;\n const startWithUnderscore = startsWithUnderscore(name);\n const fieldName = createPropertyName(startWithUnderscore ? name : getUniqueName(`_${name}`, file), declaration.name);\n const accessorName = createPropertyName(startWithUnderscore ? getUniqueName(name.substring(1), file) : name, declaration.name);\n return {\n isStatic: hasStaticModifier(declaration),\n isReadonly: hasEffectiveReadonlyModifier(declaration),\n type: getDeclarationType(declaration, program),\n container: declaration.kind === 170 /* Parameter */ ? declaration.parent.parent : declaration.parent,\n originalName: declaration.name.text,\n declaration,\n fieldName,\n accessorName,\n renameAccessor: startWithUnderscore\n };\n}\nfunction generateGetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) {\n return factory.createGetAccessorDeclaration(\n modifiers,\n accessorName,\n [],\n type,\n factory.createBlock(\n [\n factory.createReturnStatement(\n createAccessorAccessExpression(fieldName, isStatic2, container)\n )\n ],\n /*multiLine*/\n true\n )\n );\n}\nfunction generateSetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) {\n return factory.createSetAccessorDeclaration(\n modifiers,\n accessorName,\n [factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n /*dotDotDotToken*/\n void 0,\n factory.createIdentifier(\"value\"),\n /*questionToken*/\n void 0,\n type\n )],\n factory.createBlock(\n [\n factory.createExpressionStatement(\n factory.createAssignment(\n createAccessorAccessExpression(fieldName, isStatic2, container),\n factory.createIdentifier(\"value\")\n )\n )\n ],\n /*multiLine*/\n true\n )\n );\n}\nfunction updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) {\n const property = factory.updatePropertyDeclaration(\n declaration,\n modifiers,\n fieldName,\n declaration.questionToken || declaration.exclamationToken,\n type,\n declaration.initializer\n );\n changeTracker.replaceNode(file, declaration, property);\n}\nfunction updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName) {\n let assignment = factory.updatePropertyAssignment(declaration, fieldName, declaration.initializer);\n if (assignment.modifiers || assignment.questionToken || assignment.exclamationToken) {\n if (assignment === declaration) assignment = factory.cloneNode(assignment);\n assignment.modifiers = void 0;\n assignment.questionToken = void 0;\n assignment.exclamationToken = void 0;\n }\n changeTracker.replacePropertyAssignment(file, declaration, assignment);\n}\nfunction updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) {\n if (isPropertyDeclaration(declaration)) {\n updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers);\n } else if (isPropertyAssignment(declaration)) {\n updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName);\n } else {\n changeTracker.replaceNode(file, declaration, factory.updateParameterDeclaration(declaration, modifiers, declaration.dotDotDotToken, cast(fieldName, isIdentifier), declaration.questionToken, declaration.type, declaration.initializer));\n }\n}\nfunction insertAccessor(changeTracker, file, accessor, declaration, container) {\n isParameterPropertyDeclaration(declaration, declaration.parent) ? changeTracker.insertMemberAtStart(file, container, accessor) : isPropertyAssignment(declaration) ? changeTracker.insertNodeAfterComma(file, declaration, accessor) : changeTracker.insertNodeAfter(file, declaration, accessor);\n}\nfunction updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName, originalName) {\n if (!constructor.body) return;\n constructor.body.forEachChild(function recur(node) {\n if (isElementAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && isStringLiteral(node.argumentExpression) && node.argumentExpression.text === originalName && isWriteAccess(node)) {\n changeTracker.replaceNode(file, node.argumentExpression, factory.createStringLiteral(fieldName));\n }\n if (isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && node.name.text === originalName && isWriteAccess(node)) {\n changeTracker.replaceNode(file, node.name, factory.createIdentifier(fieldName));\n }\n if (!isFunctionLike(node) && !isClassLike(node)) {\n node.forEachChild(recur);\n }\n });\n}\nfunction getDeclarationType(declaration, program) {\n const typeNode = getTypeAnnotationNode(declaration);\n if (isPropertyDeclaration(declaration) && typeNode && declaration.questionToken) {\n const typeChecker = program.getTypeChecker();\n const type = typeChecker.getTypeFromTypeNode(typeNode);\n if (!typeChecker.isTypeAssignableTo(typeChecker.getUndefinedType(), type)) {\n const types = isUnionTypeNode(typeNode) ? typeNode.types : [typeNode];\n return factory.createUnionTypeNode([...types, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n }\n }\n return typeNode;\n}\n\n// src/services/codefixes/fixInvalidImportSyntax.ts\nvar fixName5 = \"invalidImportSyntax\";\nfunction getCodeFixesForImportDeclaration(context, node) {\n const sourceFile = getSourceFileOfNode(node);\n const namespace = getNamespaceDeclarationNode(node);\n const opts = context.program.getCompilerOptions();\n const variations = [];\n variations.push(createAction(context, sourceFile, node, makeImport(\n namespace.name,\n /*namedImports*/\n void 0,\n node.moduleSpecifier,\n getQuotePreference(sourceFile, context.preferences)\n )));\n if (getEmitModuleKind(opts) === 1 /* CommonJS */) {\n variations.push(createAction(\n context,\n sourceFile,\n node,\n factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n namespace.name,\n factory.createExternalModuleReference(node.moduleSpecifier)\n )\n ));\n }\n return variations;\n}\nfunction createAction(context, sourceFile, node, replacement) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(sourceFile, node, replacement));\n return createCodeFixActionWithoutFixAll(fixName5, changes, [Diagnostics.Replace_import_with_0, changes[0].textChanges[0].newText]);\n}\nregisterCodeFix({\n errorCodes: [\n Diagnostics.This_expression_is_not_callable.code,\n Diagnostics.This_expression_is_not_constructable.code\n ],\n getCodeActions: getActionsForUsageOfInvalidImport\n});\nfunction getActionsForUsageOfInvalidImport(context) {\n const sourceFile = context.sourceFile;\n const targetKind = Diagnostics.This_expression_is_not_callable.code === context.errorCode ? 214 /* CallExpression */ : 215 /* NewExpression */;\n const node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), (a) => a.kind === targetKind);\n if (!node) {\n return [];\n }\n const expr = node.expression;\n return getImportCodeFixesForExpression(context, expr);\n}\nregisterCodeFix({\n errorCodes: [\n // The following error codes cover pretty much all assignability errors that could involve an expression\n Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,\n Diagnostics.Type_predicate_0_is_not_assignable_to_1.code,\n Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3.code,\n Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3.code,\n Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,\n Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,\n Diagnostics.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,\n Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code\n ],\n getCodeActions: getActionsForInvalidImportLocation\n});\nfunction getActionsForInvalidImportLocation(context) {\n const sourceFile = context.sourceFile;\n const node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), (a) => a.getStart() === context.span.start && a.getEnd() === context.span.start + context.span.length);\n if (!node) {\n return [];\n }\n return getImportCodeFixesForExpression(context, node);\n}\nfunction getImportCodeFixesForExpression(context, expr) {\n const type = context.program.getTypeChecker().getTypeAtLocation(expr);\n if (!(type.symbol && isTransientSymbol(type.symbol) && type.symbol.links.originatingImport)) {\n return [];\n }\n const fixes = [];\n const relatedImport = type.symbol.links.originatingImport;\n if (!isImportCall(relatedImport)) {\n addRange(fixes, getCodeFixesForImportDeclaration(context, relatedImport));\n }\n if (isExpression(expr) && !(isNamedDeclaration(expr.parent) && expr.parent.name === expr)) {\n const sourceFile = context.sourceFile;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(sourceFile, expr, factory.createPropertyAccessExpression(expr, \"default\"), {}));\n fixes.push(createCodeFixActionWithoutFixAll(fixName5, changes, Diagnostics.Use_synthetic_default_member));\n }\n return fixes;\n}\n\n// src/services/codefixes/fixStrictClassInitialization.ts\nvar fixName6 = \"strictClassInitialization\";\nvar fixIdAddDefiniteAssignmentAssertions = \"addMissingPropertyDefiniteAssignmentAssertions\";\nvar fixIdAddUndefinedType = \"addMissingPropertyUndefinedType\";\nvar fixIdAddInitializer = \"addMissingPropertyInitializer\";\nvar errorCodes54 = [Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code];\nregisterCodeFix({\n errorCodes: errorCodes54,\n getCodeActions: function getCodeActionsForStrictClassInitializationErrors(context) {\n const info = getInfo17(context.sourceFile, context.span.start);\n if (!info) return;\n const result = [];\n append(result, getActionForAddMissingUndefinedType(context, info));\n append(result, getActionForAddMissingDefiniteAssignmentAssertion(context, info));\n append(result, getActionForAddMissingInitializer(context, info));\n return result;\n },\n fixIds: [fixIdAddDefiniteAssignmentAssertions, fixIdAddUndefinedType, fixIdAddInitializer],\n getAllCodeActions: (context) => {\n return codeFixAll(context, errorCodes54, (changes, diag2) => {\n const info = getInfo17(diag2.file, diag2.start);\n if (!info) return;\n switch (context.fixId) {\n case fixIdAddDefiniteAssignmentAssertions:\n addDefiniteAssignmentAssertion(changes, diag2.file, info.prop);\n break;\n case fixIdAddUndefinedType:\n addUndefinedType(changes, diag2.file, info);\n break;\n case fixIdAddInitializer:\n const checker = context.program.getTypeChecker();\n const initializer = getInitializer(checker, info.prop);\n if (!initializer) return;\n addInitializer(changes, diag2.file, info.prop, initializer);\n break;\n default:\n Debug.fail(JSON.stringify(context.fixId));\n }\n });\n }\n});\nfunction getInfo17(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n if (isIdentifier(token) && isPropertyDeclaration(token.parent)) {\n const type = getEffectiveTypeAnnotationNode(token.parent);\n if (type) {\n return { type, prop: token.parent, isJs: isInJSFile(token.parent) };\n }\n }\n return void 0;\n}\nfunction getActionForAddMissingDefiniteAssignmentAssertion(context, info) {\n if (info.isJs) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addDefiniteAssignmentAssertion(t, context.sourceFile, info.prop));\n return createCodeFixAction(fixName6, changes, [Diagnostics.Add_definite_assignment_assertion_to_property_0, info.prop.getText()], fixIdAddDefiniteAssignmentAssertions, Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties);\n}\nfunction addDefiniteAssignmentAssertion(changeTracker, propertyDeclarationSourceFile, propertyDeclaration) {\n suppressLeadingAndTrailingTrivia(propertyDeclaration);\n const property = factory.updatePropertyDeclaration(\n propertyDeclaration,\n propertyDeclaration.modifiers,\n propertyDeclaration.name,\n factory.createToken(54 /* ExclamationToken */),\n propertyDeclaration.type,\n propertyDeclaration.initializer\n );\n changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property);\n}\nfunction getActionForAddMissingUndefinedType(context, info) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addUndefinedType(t, context.sourceFile, info));\n return createCodeFixAction(fixName6, changes, [Diagnostics.Add_undefined_type_to_property_0, info.prop.name.getText()], fixIdAddUndefinedType, Diagnostics.Add_undefined_type_to_all_uninitialized_properties);\n}\nfunction addUndefinedType(changeTracker, sourceFile, info) {\n const undefinedTypeNode = factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n const types = isUnionTypeNode(info.type) ? info.type.types.concat(undefinedTypeNode) : [info.type, undefinedTypeNode];\n const unionTypeNode = factory.createUnionTypeNode(types);\n if (info.isJs) {\n changeTracker.addJSDocTags(sourceFile, info.prop, [factory.createJSDocTypeTag(\n /*tagName*/\n void 0,\n factory.createJSDocTypeExpression(unionTypeNode)\n )]);\n } else {\n changeTracker.replaceNode(sourceFile, info.type, unionTypeNode);\n }\n}\nfunction getActionForAddMissingInitializer(context, info) {\n if (info.isJs) return void 0;\n const checker = context.program.getTypeChecker();\n const initializer = getInitializer(checker, info.prop);\n if (!initializer) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addInitializer(t, context.sourceFile, info.prop, initializer));\n return createCodeFixAction(fixName6, changes, [Diagnostics.Add_initializer_to_property_0, info.prop.name.getText()], fixIdAddInitializer, Diagnostics.Add_initializers_to_all_uninitialized_properties);\n}\nfunction addInitializer(changeTracker, propertyDeclarationSourceFile, propertyDeclaration, initializer) {\n suppressLeadingAndTrailingTrivia(propertyDeclaration);\n const property = factory.updatePropertyDeclaration(\n propertyDeclaration,\n propertyDeclaration.modifiers,\n propertyDeclaration.name,\n propertyDeclaration.questionToken,\n propertyDeclaration.type,\n initializer\n );\n changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property);\n}\nfunction getInitializer(checker, propertyDeclaration) {\n return getDefaultValueFromType(checker, checker.getTypeFromTypeNode(propertyDeclaration.type));\n}\nfunction getDefaultValueFromType(checker, type) {\n if (type.flags & 512 /* BooleanLiteral */) {\n return type === checker.getFalseType() || type === checker.getFalseType(\n /*fresh*/\n true\n ) ? factory.createFalse() : factory.createTrue();\n } else if (type.isStringLiteral()) {\n return factory.createStringLiteral(type.value);\n } else if (type.isNumberLiteral()) {\n return factory.createNumericLiteral(type.value);\n } else if (type.flags & 2048 /* BigIntLiteral */) {\n return factory.createBigIntLiteral(type.value);\n } else if (type.isUnion()) {\n return firstDefined(type.types, (t) => getDefaultValueFromType(checker, t));\n } else if (type.isClass()) {\n const classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n if (!classDeclaration || hasSyntacticModifier(classDeclaration, 64 /* Abstract */)) return void 0;\n const constructorDeclaration = getFirstConstructorWithBody(classDeclaration);\n if (constructorDeclaration && constructorDeclaration.parameters.length) return void 0;\n return factory.createNewExpression(\n factory.createIdentifier(type.symbol.name),\n /*typeArguments*/\n void 0,\n /*argumentsArray*/\n void 0\n );\n } else if (checker.isArrayLikeType(type)) {\n return factory.createArrayLiteralExpression();\n }\n return void 0;\n}\n\n// src/services/codefixes/requireInTs.ts\nvar fixId43 = \"requireInTs\";\nvar errorCodes55 = [Diagnostics.require_call_may_be_converted_to_an_import.code];\nregisterCodeFix({\n errorCodes: errorCodes55,\n getCodeActions(context) {\n const info = getInfo18(context.sourceFile, context.program, context.span.start, context.preferences);\n if (!info) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange35(t, context.sourceFile, info));\n return [createCodeFixAction(fixId43, changes, Diagnostics.Convert_require_to_import, fixId43, Diagnostics.Convert_all_require_to_import)];\n },\n fixIds: [fixId43],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes55, (changes, diag2) => {\n const info = getInfo18(diag2.file, context.program, diag2.start, context.preferences);\n if (info) {\n doChange35(changes, context.sourceFile, info);\n }\n })\n});\nfunction doChange35(changes, sourceFile, info) {\n const { allowSyntheticDefaults, defaultImportName, namedImports, statement, moduleSpecifier } = info;\n changes.replaceNode(\n sourceFile,\n statement,\n defaultImportName && !allowSyntheticDefaults ? factory.createImportEqualsDeclaration(\n /*modifiers*/\n void 0,\n /*isTypeOnly*/\n false,\n defaultImportName,\n factory.createExternalModuleReference(moduleSpecifier)\n ) : factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.createImportClause(\n /*phaseModifier*/\n void 0,\n defaultImportName,\n namedImports\n ),\n moduleSpecifier,\n /*attributes*/\n void 0\n )\n );\n}\nfunction getInfo18(sourceFile, program, pos, preferences) {\n const { parent: parent2 } = getTokenAtPosition(sourceFile, pos);\n if (!isRequireCall(\n parent2,\n /*requireStringLiteralLikeArgument*/\n true\n )) {\n Debug.failBadSyntaxKind(parent2);\n }\n const decl = cast(parent2.parent, isVariableDeclaration);\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const defaultImportName = tryCast(decl.name, isIdentifier);\n const namedImports = isObjectBindingPattern(decl.name) ? tryCreateNamedImportsFromObjectBindingPattern(decl.name) : void 0;\n if (defaultImportName || namedImports) {\n const moduleSpecifier = first(parent2.arguments);\n return {\n allowSyntheticDefaults: getAllowSyntheticDefaultImports(program.getCompilerOptions()),\n defaultImportName,\n namedImports,\n statement: cast(decl.parent.parent, isVariableStatement),\n moduleSpecifier: isNoSubstitutionTemplateLiteral(moduleSpecifier) ? factory.createStringLiteral(moduleSpecifier.text, quotePreference === 0 /* Single */) : moduleSpecifier\n };\n }\n}\nfunction tryCreateNamedImportsFromObjectBindingPattern(node) {\n const importSpecifiers = [];\n for (const element of node.elements) {\n if (!isIdentifier(element.name) || element.initializer) {\n return void 0;\n }\n importSpecifiers.push(factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n tryCast(element.propertyName, isIdentifier),\n element.name\n ));\n }\n if (importSpecifiers.length) {\n return factory.createNamedImports(importSpecifiers);\n }\n}\n\n// src/services/codefixes/useDefaultImport.ts\nvar fixId44 = \"useDefaultImport\";\nvar errorCodes56 = [Diagnostics.Import_may_be_converted_to_a_default_import.code];\nregisterCodeFix({\n errorCodes: errorCodes56,\n getCodeActions(context) {\n const { sourceFile, span: { start } } = context;\n const info = getInfo19(sourceFile, start);\n if (!info) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange36(t, sourceFile, info, context.preferences));\n return [createCodeFixAction(fixId44, changes, Diagnostics.Convert_to_default_import, fixId44, Diagnostics.Convert_all_to_default_imports)];\n },\n fixIds: [fixId44],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes56, (changes, diag2) => {\n const info = getInfo19(diag2.file, diag2.start);\n if (info) doChange36(changes, diag2.file, info, context.preferences);\n })\n});\nfunction getInfo19(sourceFile, pos) {\n const name = getTokenAtPosition(sourceFile, pos);\n if (!isIdentifier(name)) return void 0;\n const { parent: parent2 } = name;\n if (isImportEqualsDeclaration(parent2) && isExternalModuleReference(parent2.moduleReference)) {\n return { importNode: parent2, name, moduleSpecifier: parent2.moduleReference.expression };\n } else if (isNamespaceImport(parent2) && isImportDeclaration(parent2.parent.parent)) {\n const importNode = parent2.parent.parent;\n return { importNode, name, moduleSpecifier: importNode.moduleSpecifier };\n }\n}\nfunction doChange36(changes, sourceFile, info, preferences) {\n changes.replaceNode(sourceFile, info.importNode, makeImport(\n info.name,\n /*namedImports*/\n void 0,\n info.moduleSpecifier,\n getQuotePreference(sourceFile, preferences)\n ));\n}\n\n// src/services/codefixes/useBigintLiteral.ts\nvar fixId45 = \"useBigintLiteral\";\nvar errorCodes57 = [\n Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code\n];\nregisterCodeFix({\n errorCodes: errorCodes57,\n getCodeActions: function getCodeActionsToUseBigintLiteral(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange10(t, context.sourceFile, context.span));\n if (changes.length > 0) {\n return [createCodeFixAction(fixId45, changes, Diagnostics.Convert_to_a_bigint_numeric_literal, fixId45, Diagnostics.Convert_all_to_bigint_numeric_literals)];\n }\n },\n fixIds: [fixId45],\n getAllCodeActions: (context) => {\n return codeFixAll(context, errorCodes57, (changes, diag2) => makeChange10(changes, diag2.file, diag2));\n }\n});\nfunction makeChange10(changeTracker, sourceFile, span) {\n const numericLiteral = tryCast(getTokenAtPosition(sourceFile, span.start), isNumericLiteral);\n if (!numericLiteral) {\n return;\n }\n const newText = numericLiteral.getText(sourceFile) + \"n\";\n changeTracker.replaceNode(sourceFile, numericLiteral, factory.createBigIntLiteral(newText));\n}\n\n// src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts\nvar fixIdAddMissingTypeof = \"fixAddModuleReferTypeMissingTypeof\";\nvar fixId46 = fixIdAddMissingTypeof;\nvar errorCodes58 = [Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];\nregisterCodeFix({\n errorCodes: errorCodes58,\n getCodeActions: function getCodeActionsToAddMissingTypeof(context) {\n const { sourceFile, span } = context;\n const importType = getImportTypeNode(sourceFile, span.start);\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange37(t, sourceFile, importType));\n return [createCodeFixAction(fixId46, changes, Diagnostics.Add_missing_typeof, fixId46, Diagnostics.Add_missing_typeof)];\n },\n fixIds: [fixId46],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes58, (changes, diag2) => doChange37(changes, context.sourceFile, getImportTypeNode(diag2.file, diag2.start)))\n});\nfunction getImportTypeNode(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n Debug.assert(token.kind === 102 /* ImportKeyword */, \"This token should be an ImportKeyword\");\n Debug.assert(token.parent.kind === 206 /* ImportType */, \"Token parent should be an ImportType\");\n return token.parent;\n}\nfunction doChange37(changes, sourceFile, importType) {\n const newTypeNode = factory.updateImportTypeNode(\n importType,\n importType.argument,\n importType.attributes,\n importType.qualifier,\n importType.typeArguments,\n /*isTypeOf*/\n true\n );\n changes.replaceNode(sourceFile, importType, newTypeNode);\n}\n\n// src/services/codefixes/wrapJsxInFragment.ts\nvar fixID2 = \"wrapJsxInFragment\";\nvar errorCodes59 = [Diagnostics.JSX_expressions_must_have_one_parent_element.code];\nregisterCodeFix({\n errorCodes: errorCodes59,\n getCodeActions: function getCodeActionsToWrapJsxInFragment(context) {\n const { sourceFile, span } = context;\n const node = findNodeToFix(sourceFile, span.start);\n if (!node) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange38(t, sourceFile, node));\n return [createCodeFixAction(fixID2, changes, Diagnostics.Wrap_in_JSX_fragment, fixID2, Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)];\n },\n fixIds: [fixID2],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes59, (changes, diag2) => {\n const node = findNodeToFix(context.sourceFile, diag2.start);\n if (!node) return void 0;\n doChange38(changes, context.sourceFile, node);\n })\n});\nfunction findNodeToFix(sourceFile, pos) {\n const lessThanToken = getTokenAtPosition(sourceFile, pos);\n const firstJsxElementOrOpenElement = lessThanToken.parent;\n let binaryExpr = firstJsxElementOrOpenElement.parent;\n if (!isBinaryExpression(binaryExpr)) {\n binaryExpr = binaryExpr.parent;\n if (!isBinaryExpression(binaryExpr)) return void 0;\n }\n if (!nodeIsMissing(binaryExpr.operatorToken)) return void 0;\n return binaryExpr;\n}\nfunction doChange38(changeTracker, sf, node) {\n const jsx = flattenInvalidBinaryExpr(node);\n if (jsx) changeTracker.replaceNode(sf, node, factory.createJsxFragment(factory.createJsxOpeningFragment(), jsx, factory.createJsxJsxClosingFragment()));\n}\nfunction flattenInvalidBinaryExpr(node) {\n const children = [];\n let current = node;\n while (true) {\n if (isBinaryExpression(current) && nodeIsMissing(current.operatorToken) && current.operatorToken.kind === 28 /* CommaToken */) {\n children.push(current.left);\n if (isJsxChild(current.right)) {\n children.push(current.right);\n return children;\n } else if (isBinaryExpression(current.right)) {\n current = current.right;\n continue;\n } else return void 0;\n } else return void 0;\n }\n}\n\n// src/services/codefixes/wrapDecoratorInParentheses.ts\nvar fixId47 = \"wrapDecoratorInParentheses\";\nvar errorCodes60 = [Diagnostics.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator.code];\nregisterCodeFix({\n errorCodes: errorCodes60,\n getCodeActions: function getCodeActionsToWrapDecoratorExpressionInParentheses(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange11(t, context.sourceFile, context.span.start));\n return [createCodeFixAction(fixId47, changes, Diagnostics.Wrap_in_parentheses, fixId47, Diagnostics.Wrap_all_invalid_decorator_expressions_in_parentheses)];\n },\n fixIds: [fixId47],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes60, (changes, diag2) => makeChange11(changes, diag2.file, diag2.start))\n});\nfunction makeChange11(changeTracker, sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const decorator = findAncestor(token, isDecorator);\n Debug.assert(!!decorator, \"Expected position to be owned by a decorator.\");\n const replacement = factory.createParenthesizedExpression(decorator.expression);\n changeTracker.replaceNode(sourceFile, decorator.expression, replacement);\n}\n\n// src/services/codefixes/convertToMappedObjectType.ts\nvar fixId48 = \"fixConvertToMappedObjectType\";\nvar errorCodes61 = [Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];\nregisterCodeFix({\n errorCodes: errorCodes61,\n getCodeActions: function getCodeActionsToConvertToMappedTypeObject(context) {\n const { sourceFile, span } = context;\n const info = getInfo20(sourceFile, span.start);\n if (!info) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange39(t, sourceFile, info));\n const name = idText(info.container.name);\n return [createCodeFixAction(fixId48, changes, [Diagnostics.Convert_0_to_mapped_object_type, name], fixId48, [Diagnostics.Convert_0_to_mapped_object_type, name])];\n },\n fixIds: [fixId48],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes61, (changes, diag2) => {\n const info = getInfo20(diag2.file, diag2.start);\n if (info) doChange39(changes, diag2.file, info);\n })\n});\nfunction getInfo20(sourceFile, pos) {\n const token = getTokenAtPosition(sourceFile, pos);\n const indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration);\n if (!indexSignature) return void 0;\n const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration);\n if (!container) return void 0;\n return { indexSignature, container };\n}\nfunction createTypeAliasFromInterface(declaration, type) {\n return factory.createTypeAliasDeclaration(declaration.modifiers, declaration.name, declaration.typeParameters, type);\n}\nfunction doChange39(changes, sourceFile, { indexSignature, container }) {\n const members = isInterfaceDeclaration(container) ? container.members : container.type.members;\n const otherMembers = members.filter((member) => !isIndexSignatureDeclaration(member));\n const parameter = first(indexSignature.parameters);\n const mappedTypeParameter = factory.createTypeParameterDeclaration(\n /*modifiers*/\n void 0,\n cast(parameter.name, isIdentifier),\n parameter.type\n );\n const mappedIntersectionType = factory.createMappedTypeNode(\n hasEffectiveReadonlyModifier(indexSignature) ? factory.createModifier(148 /* ReadonlyKeyword */) : void 0,\n mappedTypeParameter,\n /*nameType*/\n void 0,\n indexSignature.questionToken,\n indexSignature.type,\n /*members*/\n void 0\n );\n const intersectionType = factory.createIntersectionTypeNode([\n ...getAllSuperTypeNodes(container),\n mappedIntersectionType,\n ...otherMembers.length ? [factory.createTypeLiteralNode(otherMembers)] : emptyArray\n ]);\n changes.replaceNode(sourceFile, container, createTypeAliasFromInterface(container, intersectionType));\n}\n\n// src/services/codefixes/removeAccidentalCallParentheses.ts\nvar fixId49 = \"removeAccidentalCallParentheses\";\nvar errorCodes62 = [\n Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code\n];\nregisterCodeFix({\n errorCodes: errorCodes62,\n getCodeActions(context) {\n const callExpression = findAncestor(getTokenAtPosition(context.sourceFile, context.span.start), isCallExpression);\n if (!callExpression) {\n return void 0;\n }\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n t.deleteRange(context.sourceFile, { pos: callExpression.expression.end, end: callExpression.end });\n });\n return [createCodeFixActionWithoutFixAll(fixId49, changes, Diagnostics.Remove_parentheses)];\n },\n fixIds: [fixId49]\n});\n\n// src/services/codefixes/removeUnnecessaryAwait.ts\nvar fixId50 = \"removeUnnecessaryAwait\";\nvar errorCodes63 = [\n Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code\n];\nregisterCodeFix({\n errorCodes: errorCodes63,\n getCodeActions: function getCodeActionsToRemoveUnnecessaryAwait(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange12(t, context.sourceFile, context.span));\n if (changes.length > 0) {\n return [createCodeFixAction(fixId50, changes, Diagnostics.Remove_unnecessary_await, fixId50, Diagnostics.Remove_all_unnecessary_uses_of_await)];\n }\n },\n fixIds: [fixId50],\n getAllCodeActions: (context) => {\n return codeFixAll(context, errorCodes63, (changes, diag2) => makeChange12(changes, diag2.file, diag2));\n }\n});\nfunction makeChange12(changeTracker, sourceFile, span) {\n const awaitKeyword = tryCast(getTokenAtPosition(sourceFile, span.start), (node) => node.kind === 135 /* AwaitKeyword */);\n const awaitExpression = awaitKeyword && tryCast(awaitKeyword.parent, isAwaitExpression);\n if (!awaitExpression) {\n return;\n }\n let expressionToReplace = awaitExpression;\n const hasSurroundingParens = isParenthesizedExpression(awaitExpression.parent);\n if (hasSurroundingParens) {\n const leftMostExpression = getLeftmostExpression(\n awaitExpression.expression,\n /*stopAtCallExpressions*/\n false\n );\n if (isIdentifier(leftMostExpression)) {\n const precedingToken = findPrecedingToken(awaitExpression.parent.pos, sourceFile);\n if (precedingToken && precedingToken.kind !== 105 /* NewKeyword */) {\n expressionToReplace = awaitExpression.parent;\n }\n }\n }\n changeTracker.replaceNode(sourceFile, expressionToReplace, awaitExpression.expression);\n}\n\n// src/services/codefixes/splitTypeOnlyImport.ts\nvar errorCodes64 = [Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code];\nvar fixId51 = \"splitTypeOnlyImport\";\nregisterCodeFix({\n errorCodes: errorCodes64,\n fixIds: [fixId51],\n getCodeActions: function getCodeActionsToSplitTypeOnlyImport(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n return splitTypeOnlyImport(t, getImportDeclaration2(context.sourceFile, context.span), context);\n });\n if (changes.length) {\n return [createCodeFixAction(fixId51, changes, Diagnostics.Split_into_two_separate_import_declarations, fixId51, Diagnostics.Split_all_invalid_type_only_imports)];\n }\n },\n getAllCodeActions: (context) => codeFixAll(context, errorCodes64, (changes, error2) => {\n splitTypeOnlyImport(changes, getImportDeclaration2(context.sourceFile, error2), context);\n })\n});\nfunction getImportDeclaration2(sourceFile, span) {\n return findAncestor(getTokenAtPosition(sourceFile, span.start), isImportDeclaration);\n}\nfunction splitTypeOnlyImport(changes, importDeclaration, context) {\n if (!importDeclaration) {\n return;\n }\n const importClause = Debug.checkDefined(importDeclaration.importClause);\n changes.replaceNode(\n context.sourceFile,\n importDeclaration,\n factory.updateImportDeclaration(\n importDeclaration,\n importDeclaration.modifiers,\n factory.updateImportClause(\n importClause,\n importClause.phaseModifier,\n importClause.name,\n /*namedBindings*/\n void 0\n ),\n importDeclaration.moduleSpecifier,\n importDeclaration.attributes\n )\n );\n changes.insertNodeAfter(\n context.sourceFile,\n importDeclaration,\n factory.createImportDeclaration(\n /*modifiers*/\n void 0,\n factory.updateImportClause(\n importClause,\n importClause.phaseModifier,\n /*name*/\n void 0,\n importClause.namedBindings\n ),\n importDeclaration.moduleSpecifier,\n importDeclaration.attributes\n )\n );\n}\n\n// src/services/codefixes/convertConstToLet.ts\nvar fixId52 = \"fixConvertConstToLet\";\nvar errorCodes65 = [Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];\nregisterCodeFix({\n errorCodes: errorCodes65,\n getCodeActions: function getCodeActionsToConvertConstToLet(context) {\n const { sourceFile, span, program } = context;\n const info = getInfo21(sourceFile, span.start, program);\n if (info === void 0) return;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange40(t, sourceFile, info.token));\n return [createCodeFixActionMaybeFixAll(fixId52, changes, Diagnostics.Convert_const_to_let, fixId52, Diagnostics.Convert_all_const_to_let)];\n },\n getAllCodeActions: (context) => {\n const { program } = context;\n const seen = /* @__PURE__ */ new Set();\n return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n eachDiagnostic(context, errorCodes65, (diag2) => {\n const info = getInfo21(diag2.file, diag2.start, program);\n if (info) {\n if (addToSeen(seen, getSymbolId(info.symbol))) {\n return doChange40(changes, diag2.file, info.token);\n }\n }\n return void 0;\n });\n }));\n },\n fixIds: [fixId52]\n});\nfunction getInfo21(sourceFile, pos, program) {\n var _a;\n const checker = program.getTypeChecker();\n const symbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, pos));\n if (symbol === void 0) return;\n const declaration = tryCast((_a = symbol == null ? void 0 : symbol.valueDeclaration) == null ? void 0 : _a.parent, isVariableDeclarationList);\n if (declaration === void 0) return;\n const constToken = findChildOfKind(declaration, 87 /* ConstKeyword */, sourceFile);\n if (constToken === void 0) return;\n return { symbol, token: constToken };\n}\nfunction doChange40(changes, sourceFile, token) {\n changes.replaceNode(sourceFile, token, factory.createToken(121 /* LetKeyword */));\n}\n\n// src/services/codefixes/fixExpectedComma.ts\nvar fixId53 = \"fixExpectedComma\";\nvar expectedErrorCode = Diagnostics._0_expected.code;\nvar errorCodes66 = [expectedErrorCode];\nregisterCodeFix({\n errorCodes: errorCodes66,\n getCodeActions(context) {\n const { sourceFile } = context;\n const info = getInfo22(sourceFile, context.span.start, context.errorCode);\n if (!info) return void 0;\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange41(t, sourceFile, info));\n return [createCodeFixAction(\n fixId53,\n changes,\n [Diagnostics.Change_0_to_1, \";\", \",\"],\n fixId53,\n [Diagnostics.Change_0_to_1, \";\", \",\"]\n )];\n },\n fixIds: [fixId53],\n getAllCodeActions: (context) => codeFixAll(context, errorCodes66, (changes, diag2) => {\n const info = getInfo22(diag2.file, diag2.start, diag2.code);\n if (info) doChange41(changes, context.sourceFile, info);\n })\n});\nfunction getInfo22(sourceFile, pos, _) {\n const node = getTokenAtPosition(sourceFile, pos);\n return node.kind === 27 /* SemicolonToken */ && node.parent && (isObjectLiteralExpression(node.parent) || isArrayLiteralExpression(node.parent)) ? { node } : void 0;\n}\nfunction doChange41(changes, sourceFile, { node }) {\n const newNode = factory.createToken(28 /* CommaToken */);\n changes.replaceNode(sourceFile, node, newNode);\n}\n\n// src/services/codefixes/fixAddVoidToPromise.ts\nvar fixName7 = \"addVoidToPromise\";\nvar fixId54 = \"addVoidToPromise\";\nvar errorCodes67 = [\n Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,\n Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code\n];\nregisterCodeFix({\n errorCodes: errorCodes67,\n fixIds: [fixId54],\n getCodeActions(context) {\n const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange13(t, context.sourceFile, context.span, context.program));\n if (changes.length > 0) {\n return [createCodeFixAction(fixName7, changes, Diagnostics.Add_void_to_Promise_resolved_without_a_value, fixId54, Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)];\n }\n },\n getAllCodeActions(context) {\n return codeFixAll(context, errorCodes67, (changes, diag2) => makeChange13(changes, diag2.file, diag2, context.program, /* @__PURE__ */ new Set()));\n }\n});\nfunction makeChange13(changes, sourceFile, span, program, seen) {\n const node = getTokenAtPosition(sourceFile, span.start);\n if (!isIdentifier(node) || !isCallExpression(node.parent) || node.parent.expression !== node || node.parent.arguments.length !== 0) return;\n const checker = program.getTypeChecker();\n const symbol = checker.getSymbolAtLocation(node);\n const decl = symbol == null ? void 0 : symbol.valueDeclaration;\n if (!decl || !isParameter(decl) || !isNewExpression(decl.parent.parent)) return;\n if (seen == null ? void 0 : seen.has(decl)) return;\n seen == null ? void 0 : seen.add(decl);\n const typeArguments = getEffectiveTypeArguments(decl.parent.parent);\n if (some(typeArguments)) {\n const typeArgument = typeArguments[0];\n const needsParens = !isUnionTypeNode(typeArgument) && !isParenthesizedTypeNode(typeArgument) && isParenthesizedTypeNode(factory.createUnionTypeNode([typeArgument, factory.createKeywordTypeNode(116 /* VoidKeyword */)]).types[0]);\n if (needsParens) {\n changes.insertText(sourceFile, typeArgument.pos, \"(\");\n }\n changes.insertText(sourceFile, typeArgument.end, needsParens ? \") | void\" : \" | void\");\n } else {\n const signature = checker.getResolvedSignature(node.parent);\n const parameter = signature == null ? void 0 : signature.parameters[0];\n const parameterType = parameter && checker.getTypeOfSymbolAtLocation(parameter, decl.parent.parent);\n if (isInJSFile(decl)) {\n if (!parameterType || parameterType.flags & 3 /* AnyOrUnknown */) {\n changes.insertText(sourceFile, decl.parent.parent.end, `)`);\n changes.insertText(sourceFile, skipTrivia(sourceFile.text, decl.parent.parent.pos), `/** @type {Promise} */(`);\n }\n } else {\n if (!parameterType || parameterType.flags & 2 /* Unknown */) {\n changes.insertText(sourceFile, decl.parent.parent.expression.end, \"\");\n }\n }\n }\n}\nfunction getEffectiveTypeArguments(node) {\n var _a;\n if (isInJSFile(node)) {\n if (isParenthesizedExpression(node.parent)) {\n const jsDocType = (_a = getJSDocTypeTag(node.parent)) == null ? void 0 : _a.typeExpression.type;\n if (jsDocType && isTypeReferenceNode(jsDocType) && isIdentifier(jsDocType.typeName) && idText(jsDocType.typeName) === \"Promise\") {\n return jsDocType.typeArguments;\n }\n }\n } else {\n return node.typeArguments;\n }\n}\n\n// src/services/_namespaces/ts.Completions.ts\nvar ts_Completions_exports = {};\n__export(ts_Completions_exports, {\n CompletionKind: () => CompletionKind,\n CompletionSource: () => CompletionSource,\n SortText: () => SortText,\n StringCompletions: () => ts_Completions_StringCompletions_exports,\n SymbolOriginInfoKind: () => SymbolOriginInfoKind,\n createCompletionDetails: () => createCompletionDetails,\n createCompletionDetailsForSymbol: () => createCompletionDetailsForSymbol,\n getCompletionEntriesFromSymbols: () => getCompletionEntriesFromSymbols,\n getCompletionEntryDetails: () => getCompletionEntryDetails,\n getCompletionEntrySymbol: () => getCompletionEntrySymbol,\n getCompletionsAtPosition: () => getCompletionsAtPosition,\n getDefaultCommitCharacters: () => getDefaultCommitCharacters,\n getPropertiesForObjectExpression: () => getPropertiesForObjectExpression,\n moduleSpecifierResolutionCacheAttemptLimit: () => moduleSpecifierResolutionCacheAttemptLimit,\n moduleSpecifierResolutionLimit: () => moduleSpecifierResolutionLimit\n});\n\n// src/services/completions.ts\nvar moduleSpecifierResolutionLimit = 100;\nvar moduleSpecifierResolutionCacheAttemptLimit = 1e3;\nvar SortText = {\n // Presets\n LocalDeclarationPriority: \"10\",\n LocationPriority: \"11\",\n OptionalMember: \"12\",\n MemberDeclaredBySpreadAssignment: \"13\",\n SuggestedClassMembers: \"14\",\n GlobalsOrKeywords: \"15\",\n AutoImportSuggestions: \"16\",\n ClassMemberSnippets: \"17\",\n JavascriptIdentifiers: \"18\",\n // Transformations\n Deprecated(sortText) {\n return \"z\" + sortText;\n },\n ObjectLiteralProperty(presetSortText, symbolDisplayName) {\n return `${presetSortText}\\0${symbolDisplayName}\\0`;\n },\n SortBelow(sortText) {\n return sortText + \"1\";\n }\n};\nvar allCommitCharacters = [\".\", \",\", \";\"];\nvar noCommaCommitCharacters = [\".\", \";\"];\nvar CompletionSource = /* @__PURE__ */ ((CompletionSource2) => {\n CompletionSource2[\"ThisProperty\"] = \"ThisProperty/\";\n CompletionSource2[\"ClassMemberSnippet\"] = \"ClassMemberSnippet/\";\n CompletionSource2[\"TypeOnlyAlias\"] = \"TypeOnlyAlias/\";\n CompletionSource2[\"ObjectLiteralMethodSnippet\"] = \"ObjectLiteralMethodSnippet/\";\n CompletionSource2[\"SwitchCases\"] = \"SwitchCases/\";\n CompletionSource2[\"ObjectLiteralMemberWithComma\"] = \"ObjectLiteralMemberWithComma/\";\n return CompletionSource2;\n})(CompletionSource || {});\nvar SymbolOriginInfoKind = /* @__PURE__ */ ((SymbolOriginInfoKind2) => {\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ThisType\"] = 1] = \"ThisType\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMember\"] = 2] = \"SymbolMember\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Export\"] = 4] = \"Export\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Promise\"] = 8] = \"Promise\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Nullable\"] = 16] = \"Nullable\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ResolvedExport\"] = 32] = \"ResolvedExport\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"TypeOnlyAlias\"] = 64] = \"TypeOnlyAlias\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ObjectLiteralMethod\"] = 128] = \"ObjectLiteralMethod\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Ignore\"] = 256] = \"Ignore\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ComputedPropertyName\"] = 512] = \"ComputedPropertyName\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMemberNoExport\"] = 2 /* SymbolMember */] = \"SymbolMemberNoExport\";\n SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMemberExport\"] = 6] = \"SymbolMemberExport\";\n return SymbolOriginInfoKind2;\n})(SymbolOriginInfoKind || {});\nfunction originIsThisType(origin) {\n return !!(origin.kind & 1 /* ThisType */);\n}\nfunction originIsSymbolMember(origin) {\n return !!(origin.kind & 2 /* SymbolMember */);\n}\nfunction originIsExport(origin) {\n return !!(origin && origin.kind & 4 /* Export */);\n}\nfunction originIsResolvedExport(origin) {\n return !!(origin && origin.kind === 32 /* ResolvedExport */);\n}\nfunction originIncludesSymbolName(origin) {\n return originIsExport(origin) || originIsResolvedExport(origin) || originIsComputedPropertyName(origin);\n}\nfunction originIsPackageJsonImport(origin) {\n return (originIsExport(origin) || originIsResolvedExport(origin)) && !!origin.isFromPackageJson;\n}\nfunction originIsPromise(origin) {\n return !!(origin.kind & 8 /* Promise */);\n}\nfunction originIsNullableMember(origin) {\n return !!(origin.kind & 16 /* Nullable */);\n}\nfunction originIsTypeOnlyAlias(origin) {\n return !!(origin && origin.kind & 64 /* TypeOnlyAlias */);\n}\nfunction originIsObjectLiteralMethod(origin) {\n return !!(origin && origin.kind & 128 /* ObjectLiteralMethod */);\n}\nfunction originIsIgnore(origin) {\n return !!(origin && origin.kind & 256 /* Ignore */);\n}\nfunction originIsComputedPropertyName(origin) {\n return !!(origin && origin.kind & 512 /* ComputedPropertyName */);\n}\nfunction resolvingModuleSpecifiers(logPrefix, host, resolver, program, position, preferences, isForImportStatementCompletion, isValidTypeOnlyUseSite, cb) {\n var _a, _b, _c, _d;\n const start = timestamp();\n const needsFullResolution = isForImportStatementCompletion || getResolvePackageJsonExports(program.getCompilerOptions()) || ((_a = preferences.autoImportSpecifierExcludeRegexes) == null ? void 0 : _a.length);\n let skippedAny = false;\n let ambientCount = 0;\n let resolvedCount = 0;\n let resolvedFromCacheCount = 0;\n let cacheAttemptCount = 0;\n const result = cb({\n tryResolve,\n skippedAny: () => skippedAny,\n resolvedAny: () => resolvedCount > 0,\n resolvedBeyondLimit: () => resolvedCount > moduleSpecifierResolutionLimit\n });\n const hitRateMessage = cacheAttemptCount ? ` (${(resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1)}% hit rate)` : \"\";\n (_b = host.log) == null ? void 0 : _b.call(host, `${logPrefix}: resolved ${resolvedCount} module specifiers, plus ${ambientCount} ambient and ${resolvedFromCacheCount} from cache${hitRateMessage}`);\n (_c = host.log) == null ? void 0 : _c.call(host, `${logPrefix}: response is ${skippedAny ? \"incomplete\" : \"complete\"}`);\n (_d = host.log) == null ? void 0 : _d.call(host, `${logPrefix}: ${timestamp() - start}`);\n return result;\n function tryResolve(exportInfo, isFromAmbientModule) {\n if (isFromAmbientModule) {\n const result3 = resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite);\n if (result3) {\n ambientCount++;\n }\n return result3 || \"failed\";\n }\n const shouldResolveModuleSpecifier = needsFullResolution || preferences.allowIncompleteCompletions && resolvedCount < moduleSpecifierResolutionLimit;\n const shouldGetModuleSpecifierFromCache = !shouldResolveModuleSpecifier && preferences.allowIncompleteCompletions && cacheAttemptCount < moduleSpecifierResolutionCacheAttemptLimit;\n const result2 = shouldResolveModuleSpecifier || shouldGetModuleSpecifierFromCache ? resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, shouldGetModuleSpecifierFromCache) : void 0;\n if (!shouldResolveModuleSpecifier && !shouldGetModuleSpecifierFromCache || shouldGetModuleSpecifierFromCache && !result2) {\n skippedAny = true;\n }\n resolvedCount += (result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0;\n resolvedFromCacheCount += exportInfo.length - ((result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0);\n if (shouldGetModuleSpecifierFromCache) {\n cacheAttemptCount++;\n }\n return result2 || (needsFullResolution ? \"failed\" : \"skipped\");\n }\n}\nfunction getDefaultCommitCharacters(isNewIdentifierLocation) {\n if (isNewIdentifierLocation) {\n return [];\n }\n return allCommitCharacters;\n}\nfunction getCompletionsAtPosition(host, program, log, sourceFile, position, preferences, triggerCharacter, completionKind, cancellationToken, formatContext, includeSymbol = false) {\n var _a;\n const { previousToken } = getRelevantTokens(position, sourceFile);\n if (triggerCharacter && !isInString(sourceFile, position, previousToken) && !isValidTrigger(sourceFile, triggerCharacter, previousToken, position)) {\n return void 0;\n }\n if (triggerCharacter === \" \") {\n if (preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {\n return {\n isGlobalCompletion: true,\n isMemberCompletion: false,\n isNewIdentifierLocation: true,\n isIncomplete: true,\n entries: [],\n defaultCommitCharacters: getDefaultCommitCharacters(\n /*isNewIdentifierLocation*/\n true\n )\n };\n }\n return void 0;\n }\n const compilerOptions = program.getCompilerOptions();\n const checker = program.getTypeChecker();\n const incompleteCompletionsCache = preferences.allowIncompleteCompletions ? (_a = host.getIncompleteCompletionsCache) == null ? void 0 : _a.call(host) : void 0;\n if (incompleteCompletionsCache && completionKind === 3 /* TriggerForIncompleteCompletions */ && previousToken && isIdentifier(previousToken)) {\n const incompleteContinuation = continuePreviousIncompleteResponse(incompleteCompletionsCache, sourceFile, previousToken, program, host, preferences, cancellationToken, position);\n if (incompleteContinuation) {\n return incompleteContinuation;\n }\n } else {\n incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.clear();\n }\n const stringCompletions = ts_Completions_StringCompletions_exports.getStringLiteralCompletions(sourceFile, position, previousToken, compilerOptions, host, program, log, preferences, includeSymbol);\n if (stringCompletions) {\n return stringCompletions;\n }\n if (previousToken && isBreakOrContinueStatement(previousToken.parent) && (previousToken.kind === 83 /* BreakKeyword */ || previousToken.kind === 88 /* ContinueKeyword */ || previousToken.kind === 80 /* Identifier */)) {\n return getLabelCompletionAtPosition(previousToken.parent);\n }\n const completionData = getCompletionData(\n program,\n log,\n sourceFile,\n compilerOptions,\n position,\n preferences,\n /*detailsEntryId*/\n void 0,\n host,\n formatContext,\n cancellationToken\n );\n if (!completionData) {\n return void 0;\n }\n switch (completionData.kind) {\n case 0 /* Data */:\n const response = completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol);\n if (response == null ? void 0 : response.isIncomplete) {\n incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.set(response);\n }\n return response;\n case 1 /* JsDocTagName */:\n return jsdocCompletionInfo([\n ...ts_JsDoc_exports.getJSDocTagNameCompletions(),\n ...getJSDocParameterCompletions(\n sourceFile,\n position,\n checker,\n compilerOptions,\n preferences,\n /*tagNameOnly*/\n true\n )\n ]);\n case 2 /* JsDocTag */:\n return jsdocCompletionInfo([\n ...ts_JsDoc_exports.getJSDocTagCompletions(),\n ...getJSDocParameterCompletions(\n sourceFile,\n position,\n checker,\n compilerOptions,\n preferences,\n /*tagNameOnly*/\n false\n )\n ]);\n case 3 /* JsDocParameterName */:\n return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocParameterNameCompletions(completionData.tag));\n case 4 /* Keywords */:\n return specificKeywordCompletionInfo(completionData.keywordCompletions, completionData.isNewIdentifierLocation);\n default:\n return Debug.assertNever(completionData);\n }\n}\nfunction compareCompletionEntries(entryInArray, entryToInsert) {\n var _a, _b;\n let result = compareStringsCaseSensitiveUI(entryInArray.sortText, entryToInsert.sortText);\n if (result === 0 /* EqualTo */) {\n result = compareStringsCaseSensitiveUI(entryInArray.name, entryToInsert.name);\n }\n if (result === 0 /* EqualTo */ && ((_a = entryInArray.data) == null ? void 0 : _a.moduleSpecifier) && ((_b = entryToInsert.data) == null ? void 0 : _b.moduleSpecifier)) {\n result = compareNumberOfDirectorySeparators(\n entryInArray.data.moduleSpecifier,\n entryToInsert.data.moduleSpecifier\n );\n }\n if (result === 0 /* EqualTo */) {\n return -1 /* LessThan */;\n }\n return result;\n}\nfunction completionEntryDataIsResolved(data) {\n return !!(data == null ? void 0 : data.moduleSpecifier);\n}\nfunction continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken, position) {\n const previousResponse = cache.get();\n if (!previousResponse) return void 0;\n const touchNode = getTouchingPropertyName(file, position);\n const lowerCaseTokenText = location.text.toLowerCase();\n const exportMap = getExportInfoMap(file, host, program, preferences, cancellationToken);\n const newEntries = resolvingModuleSpecifiers(\n \"continuePreviousIncompleteResponse\",\n host,\n ts_codefix_exports.createImportSpecifierResolver(file, program, host, preferences),\n program,\n location.getStart(),\n preferences,\n /*isForImportStatementCompletion*/\n false,\n isValidTypeOnlyAliasUseSite(location),\n (context) => {\n const entries = mapDefined(previousResponse.entries, (entry) => {\n var _a;\n if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {\n return entry;\n }\n if (!charactersFuzzyMatchInString(entry.name, lowerCaseTokenText)) {\n return void 0;\n }\n const { origin } = Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host));\n const info = exportMap.get(file.path, entry.data.exportMapKey);\n const result = info && context.tryResolve(info, !isExternalModuleNameRelative(stripQuotes(origin.moduleSymbol.name)));\n if (result === \"skipped\") return entry;\n if (!result || result === \"failed\") {\n (_a = host.log) == null ? void 0 : _a.call(host, `Unexpected failure resolving auto import for '${entry.name}' from '${entry.source}'`);\n return void 0;\n }\n const newOrigin = {\n ...origin,\n kind: 32 /* ResolvedExport */,\n moduleSpecifier: result.moduleSpecifier\n };\n entry.data = originToCompletionEntryData(newOrigin);\n entry.source = getSourceFromOrigin(newOrigin);\n entry.sourceDisplay = [textPart(newOrigin.moduleSpecifier)];\n return entry;\n });\n if (!context.skippedAny()) {\n previousResponse.isIncomplete = void 0;\n }\n return entries;\n }\n );\n previousResponse.entries = newEntries;\n previousResponse.flags = (previousResponse.flags || 0) | 4 /* IsContinuation */;\n previousResponse.optionalReplacementSpan = getOptionalReplacementSpan(touchNode);\n return previousResponse;\n}\nfunction jsdocCompletionInfo(entries) {\n return {\n isGlobalCompletion: false,\n isMemberCompletion: false,\n isNewIdentifierLocation: false,\n entries,\n defaultCommitCharacters: getDefaultCommitCharacters(\n /*isNewIdentifierLocation*/\n false\n )\n };\n}\nfunction getJSDocParameterCompletions(sourceFile, position, checker, options, preferences, tagNameOnly) {\n const currentToken = getTokenAtPosition(sourceFile, position);\n if (!isJSDocTag(currentToken) && !isJSDoc(currentToken)) {\n return [];\n }\n const jsDoc = isJSDoc(currentToken) ? currentToken : currentToken.parent;\n if (!isJSDoc(jsDoc)) {\n return [];\n }\n const func = jsDoc.parent;\n if (!isFunctionLike(func)) {\n return [];\n }\n const isJs = isSourceFileJS(sourceFile);\n const isSnippet = preferences.includeCompletionsWithSnippetText || void 0;\n const paramTagCount = countWhere(jsDoc.tags, (tag) => isJSDocParameterTag(tag) && tag.getEnd() <= position);\n return mapDefined(func.parameters, (param) => {\n if (getJSDocParameterTags(param).length) {\n return void 0;\n }\n if (isIdentifier(param.name)) {\n const tabstopCounter = { tabstop: 1 };\n const paramName = param.name.text;\n let displayText = getJSDocParamAnnotation(\n paramName,\n param.initializer,\n param.dotDotDotToken,\n isJs,\n /*isObject*/\n false,\n /*isSnippet*/\n false,\n checker,\n options,\n preferences\n );\n let snippetText = isSnippet ? getJSDocParamAnnotation(\n paramName,\n param.initializer,\n param.dotDotDotToken,\n isJs,\n /*isObject*/\n false,\n /*isSnippet*/\n true,\n checker,\n options,\n preferences,\n tabstopCounter\n ) : void 0;\n if (tagNameOnly) {\n displayText = displayText.slice(1);\n if (snippetText) snippetText = snippetText.slice(1);\n }\n return {\n name: displayText,\n kind: \"parameter\" /* parameterElement */,\n sortText: SortText.LocationPriority,\n insertText: isSnippet ? snippetText : void 0,\n isSnippet\n };\n } else if (param.parent.parameters.indexOf(param) === paramTagCount) {\n const paramPath = `param${paramTagCount}`;\n const displayTextResult = generateJSDocParamTagsForDestructuring(\n paramPath,\n param.name,\n param.initializer,\n param.dotDotDotToken,\n isJs,\n /*isSnippet*/\n false,\n checker,\n options,\n preferences\n );\n const snippetTextResult = isSnippet ? generateJSDocParamTagsForDestructuring(\n paramPath,\n param.name,\n param.initializer,\n param.dotDotDotToken,\n isJs,\n /*isSnippet*/\n true,\n checker,\n options,\n preferences\n ) : void 0;\n let displayText = displayTextResult.join(getNewLineCharacter(options) + \"* \");\n let snippetText = snippetTextResult == null ? void 0 : snippetTextResult.join(getNewLineCharacter(options) + \"* \");\n if (tagNameOnly) {\n displayText = displayText.slice(1);\n if (snippetText) snippetText = snippetText.slice(1);\n }\n return {\n name: displayText,\n kind: \"parameter\" /* parameterElement */,\n sortText: SortText.LocationPriority,\n insertText: isSnippet ? snippetText : void 0,\n isSnippet\n };\n }\n });\n}\nfunction generateJSDocParamTagsForDestructuring(path, pattern, initializer, dotDotDotToken, isJs, isSnippet, checker, options, preferences) {\n if (!isJs) {\n return [\n getJSDocParamAnnotation(\n path,\n initializer,\n dotDotDotToken,\n isJs,\n /*isObject*/\n false,\n isSnippet,\n checker,\n options,\n preferences,\n { tabstop: 1 }\n )\n ];\n }\n return patternWorker(path, pattern, initializer, dotDotDotToken, { tabstop: 1 });\n function patternWorker(path2, pattern2, initializer2, dotDotDotToken2, counter) {\n if (isObjectBindingPattern(pattern2) && !dotDotDotToken2) {\n const oldTabstop = counter.tabstop;\n const childCounter = { tabstop: oldTabstop };\n const rootParam = getJSDocParamAnnotation(\n path2,\n initializer2,\n dotDotDotToken2,\n isJs,\n /*isObject*/\n true,\n isSnippet,\n checker,\n options,\n preferences,\n childCounter\n );\n let childTags = [];\n for (const element of pattern2.elements) {\n const elementTags = elementWorker(path2, element, childCounter);\n if (!elementTags) {\n childTags = void 0;\n break;\n } else {\n childTags.push(...elementTags);\n }\n }\n if (childTags) {\n counter.tabstop = childCounter.tabstop;\n return [rootParam, ...childTags];\n }\n }\n return [\n getJSDocParamAnnotation(\n path2,\n initializer2,\n dotDotDotToken2,\n isJs,\n /*isObject*/\n false,\n isSnippet,\n checker,\n options,\n preferences,\n counter\n )\n ];\n }\n function elementWorker(path2, element, counter) {\n if (!element.propertyName && isIdentifier(element.name) || isIdentifier(element.name)) {\n const propertyName = element.propertyName ? tryGetTextOfPropertyName(element.propertyName) : element.name.text;\n if (!propertyName) {\n return void 0;\n }\n const paramName = `${path2}.${propertyName}`;\n return [\n getJSDocParamAnnotation(\n paramName,\n element.initializer,\n element.dotDotDotToken,\n isJs,\n /*isObject*/\n false,\n isSnippet,\n checker,\n options,\n preferences,\n counter\n )\n ];\n } else if (element.propertyName) {\n const propertyName = tryGetTextOfPropertyName(element.propertyName);\n return propertyName && patternWorker(`${path2}.${propertyName}`, element.name, element.initializer, element.dotDotDotToken, counter);\n }\n return void 0;\n }\n}\nfunction getJSDocParamAnnotation(paramName, initializer, dotDotDotToken, isJs, isObject, isSnippet, checker, options, preferences, tabstopCounter) {\n if (isSnippet) {\n Debug.assertIsDefined(tabstopCounter);\n }\n if (initializer) {\n paramName = getJSDocParamNameWithInitializer(paramName, initializer);\n }\n if (isSnippet) {\n paramName = escapeSnippetText(paramName);\n }\n if (isJs) {\n let type = \"*\";\n if (isObject) {\n Debug.assert(!dotDotDotToken, `Cannot annotate a rest parameter with type 'Object'.`);\n type = \"Object\";\n } else {\n if (initializer) {\n const inferredType = checker.getTypeAtLocation(initializer.parent);\n if (!(inferredType.flags & (1 /* Any */ | 16384 /* Void */))) {\n const sourceFile = initializer.getSourceFile();\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const builderFlags = quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */;\n const typeNode = checker.typeToTypeNode(inferredType, findAncestor(initializer, isFunctionLike), builderFlags);\n if (typeNode) {\n const printer = isSnippet ? createSnippetPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target\n }) : createPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target\n });\n setEmitFlags(typeNode, 1 /* SingleLine */);\n type = printer.printNode(4 /* Unspecified */, typeNode, sourceFile);\n }\n }\n }\n if (isSnippet && type === \"*\") {\n type = `\\${${tabstopCounter.tabstop++}:${type}}`;\n }\n }\n const dotDotDot = !isObject && dotDotDotToken ? \"...\" : \"\";\n const description3 = isSnippet ? `\\${${tabstopCounter.tabstop++}}` : \"\";\n return `@param {${dotDotDot}${type}} ${paramName} ${description3}`;\n } else {\n const description3 = isSnippet ? `\\${${tabstopCounter.tabstop++}}` : \"\";\n return `@param ${paramName} ${description3}`;\n }\n}\nfunction getJSDocParamNameWithInitializer(paramName, initializer) {\n const initializerText = initializer.getText().trim();\n if (initializerText.includes(\"\\n\") || initializerText.length > 80) {\n return `[${paramName}]`;\n }\n return `[${paramName}=${initializerText}]`;\n}\nfunction keywordToCompletionEntry(keyword) {\n return {\n name: tokenToString(keyword),\n kind: \"keyword\" /* keyword */,\n kindModifiers: \"\" /* none */,\n sortText: SortText.GlobalsOrKeywords\n };\n}\nfunction specificKeywordCompletionInfo(entries, isNewIdentifierLocation) {\n return {\n isGlobalCompletion: false,\n isMemberCompletion: false,\n isNewIdentifierLocation,\n entries: entries.slice(),\n defaultCommitCharacters: getDefaultCommitCharacters(isNewIdentifierLocation)\n };\n}\nfunction keywordCompletionData(keywordFilters, filterOutTsOnlyKeywords, isNewIdentifierLocation) {\n return {\n kind: 4 /* Keywords */,\n keywordCompletions: getKeywordCompletions(keywordFilters, filterOutTsOnlyKeywords),\n isNewIdentifierLocation\n };\n}\nfunction keywordFiltersFromSyntaxKind(keywordCompletion) {\n switch (keywordCompletion) {\n case 156 /* TypeKeyword */:\n return 8 /* TypeKeyword */;\n default:\n Debug.fail(\"Unknown mapping from SyntaxKind to KeywordCompletionFilters\");\n }\n}\nfunction getOptionalReplacementSpan(location) {\n return (location == null ? void 0 : location.kind) === 80 /* Identifier */ ? createTextSpanFromNode(location) : void 0;\n}\nfunction completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol) {\n const {\n symbols,\n contextToken,\n completionKind,\n isInSnippetScope,\n isNewIdentifierLocation,\n location,\n propertyAccessToConvert,\n keywordFilters,\n symbolToOriginInfoMap,\n recommendedCompletion,\n isJsxInitializer,\n isTypeOnlyLocation,\n isJsxIdentifierExpected,\n isRightOfOpenTag,\n isRightOfDotOrQuestionDot,\n importStatementCompletion,\n insideJsDocTagTypeExpression,\n symbolToSortTextMap,\n hasUnresolvedAutoImports,\n defaultCommitCharacters\n } = completionData;\n let literals = completionData.literals;\n const checker = program.getTypeChecker();\n if (getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {\n const completionInfo = getJsxClosingTagCompletion(location, sourceFile);\n if (completionInfo) {\n return completionInfo;\n }\n }\n const caseClause = findAncestor(contextToken, isCaseClause);\n if (caseClause && (isCaseKeyword(contextToken) || isNodeDescendantOf(contextToken, caseClause.expression))) {\n const tracker = newCaseClauseTracker(checker, caseClause.parent.clauses);\n literals = literals.filter((literal) => !tracker.hasValue(literal));\n symbols.forEach((symbol, i) => {\n if (symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {\n const value = checker.getConstantValue(symbol.valueDeclaration);\n if (value !== void 0 && tracker.hasValue(value)) {\n symbolToOriginInfoMap[i] = { kind: 256 /* Ignore */ };\n }\n }\n });\n }\n const entries = createSortedArray();\n const isChecked = isCheckedFile(sourceFile, compilerOptions);\n if (isChecked && !isNewIdentifierLocation && (!symbols || symbols.length === 0) && keywordFilters === 0 /* None */) {\n return void 0;\n }\n const uniqueNames = getCompletionEntriesFromSymbols(\n symbols,\n entries,\n /*replacementToken*/\n void 0,\n contextToken,\n location,\n position,\n sourceFile,\n host,\n program,\n getEmitScriptTarget(compilerOptions),\n log,\n completionKind,\n preferences,\n compilerOptions,\n formatContext,\n isTypeOnlyLocation,\n propertyAccessToConvert,\n isJsxIdentifierExpected,\n isJsxInitializer,\n importStatementCompletion,\n recommendedCompletion,\n symbolToOriginInfoMap,\n symbolToSortTextMap,\n isJsxIdentifierExpected,\n isRightOfOpenTag,\n includeSymbol\n );\n if (keywordFilters !== 0 /* None */) {\n for (const keywordEntry of getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile))) {\n if (isTypeOnlyLocation && isTypeKeyword(stringToToken(keywordEntry.name)) || !isTypeOnlyLocation && isContextualKeywordInAutoImportableExpressionSpace(keywordEntry.name) || !uniqueNames.has(keywordEntry.name)) {\n uniqueNames.add(keywordEntry.name);\n insertSorted(\n entries,\n keywordEntry,\n compareCompletionEntries,\n /*equalityComparer*/\n void 0,\n /*allowDuplicates*/\n true\n );\n }\n }\n }\n for (const keywordEntry of getContextualKeywords(contextToken, position)) {\n if (!uniqueNames.has(keywordEntry.name)) {\n uniqueNames.add(keywordEntry.name);\n insertSorted(\n entries,\n keywordEntry,\n compareCompletionEntries,\n /*equalityComparer*/\n void 0,\n /*allowDuplicates*/\n true\n );\n }\n }\n for (const literal of literals) {\n const literalEntry = createCompletionEntryForLiteral(sourceFile, preferences, literal);\n uniqueNames.add(literalEntry.name);\n insertSorted(\n entries,\n literalEntry,\n compareCompletionEntries,\n /*equalityComparer*/\n void 0,\n /*allowDuplicates*/\n true\n );\n }\n if (!isChecked) {\n getJSCompletionEntries(sourceFile, location.pos, uniqueNames, getEmitScriptTarget(compilerOptions), entries);\n }\n let caseBlock;\n if (preferences.includeCompletionsWithInsertText && contextToken && !isRightOfOpenTag && !isRightOfDotOrQuestionDot && (caseBlock = findAncestor(contextToken, isCaseBlock))) {\n const cases = getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, compilerOptions, host, program, formatContext);\n if (cases) {\n entries.push(cases.entry);\n }\n }\n return {\n flags: completionData.flags,\n isGlobalCompletion: isInSnippetScope,\n isIncomplete: preferences.allowIncompleteCompletions && hasUnresolvedAutoImports ? true : void 0,\n isMemberCompletion: isMemberCompletionKind(completionKind),\n isNewIdentifierLocation,\n optionalReplacementSpan: getOptionalReplacementSpan(location),\n entries,\n defaultCommitCharacters: defaultCommitCharacters ?? getDefaultCommitCharacters(isNewIdentifierLocation)\n };\n}\nfunction isCheckedFile(sourceFile, compilerOptions) {\n return !isSourceFileJS(sourceFile) || !!isCheckJsEnabledForFile(sourceFile, compilerOptions);\n}\nfunction getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, options, host, program, formatContext) {\n const clauses = caseBlock.clauses;\n const checker = program.getTypeChecker();\n const switchType = checker.getTypeAtLocation(caseBlock.parent.expression);\n if (switchType && switchType.isUnion() && every(switchType.types, (type) => type.isLiteral())) {\n const tracker = newCaseClauseTracker(checker, clauses);\n const target = getEmitScriptTarget(options);\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host);\n const elements = [];\n for (const type of switchType.types) {\n if (type.flags & 1024 /* EnumLiteral */) {\n Debug.assert(type.symbol, \"An enum member type should have a symbol\");\n Debug.assert(type.symbol.parent, \"An enum member type should have a parent symbol (the enum symbol)\");\n const enumValue = type.symbol.valueDeclaration && checker.getConstantValue(type.symbol.valueDeclaration);\n if (enumValue !== void 0) {\n if (tracker.hasValue(enumValue)) {\n continue;\n }\n tracker.addValue(enumValue);\n }\n const typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, caseBlock, target);\n if (!typeNode) {\n return void 0;\n }\n const expr = typeNodeToExpression(typeNode, target, quotePreference);\n if (!expr) {\n return void 0;\n }\n elements.push(expr);\n } else if (!tracker.hasValue(type.value)) {\n switch (typeof type.value) {\n case \"object\":\n elements.push(type.value.negative ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createBigIntLiteral({ negative: false, base10Value: type.value.base10Value })) : factory.createBigIntLiteral(type.value));\n break;\n case \"number\":\n elements.push(type.value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-type.value)) : factory.createNumericLiteral(type.value));\n break;\n case \"string\":\n elements.push(factory.createStringLiteral(type.value, quotePreference === 0 /* Single */));\n break;\n }\n }\n }\n if (elements.length === 0) {\n return void 0;\n }\n const newClauses = map(elements, (element) => factory.createCaseClause(element, []));\n const newLineChar = getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options);\n const printer = createSnippetPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target,\n newLine: getNewLineKind(newLineChar)\n });\n const printNode = formatContext ? (node) => printer.printAndFormatNode(4 /* Unspecified */, node, sourceFile, formatContext) : (node) => printer.printNode(4 /* Unspecified */, node, sourceFile);\n const insertText = map(newClauses, (clause, i) => {\n if (preferences.includeCompletionsWithSnippetText) {\n return `${printNode(clause)}$${i + 1}`;\n }\n return `${printNode(clause)}`;\n }).join(newLineChar);\n const firstClause = printer.printNode(4 /* Unspecified */, newClauses[0], sourceFile);\n return {\n entry: {\n name: `${firstClause} ...`,\n kind: \"\" /* unknown */,\n sortText: SortText.GlobalsOrKeywords,\n insertText,\n hasAction: importAdder.hasFixes() || void 0,\n source: \"SwitchCases/\" /* SwitchCases */,\n isSnippet: preferences.includeCompletionsWithSnippetText ? true : void 0\n },\n importAdder\n };\n }\n return void 0;\n}\nfunction typeNodeToExpression(typeNode, languageVersion, quotePreference) {\n switch (typeNode.kind) {\n case 184 /* TypeReference */:\n const typeName = typeNode.typeName;\n return entityNameToExpression(typeName, languageVersion, quotePreference);\n case 200 /* IndexedAccessType */:\n const objectExpression = typeNodeToExpression(typeNode.objectType, languageVersion, quotePreference);\n const indexExpression = typeNodeToExpression(typeNode.indexType, languageVersion, quotePreference);\n return objectExpression && indexExpression && factory.createElementAccessExpression(objectExpression, indexExpression);\n case 202 /* LiteralType */:\n const literal = typeNode.literal;\n switch (literal.kind) {\n case 11 /* StringLiteral */:\n return factory.createStringLiteral(literal.text, quotePreference === 0 /* Single */);\n case 9 /* NumericLiteral */:\n return factory.createNumericLiteral(literal.text, literal.numericLiteralFlags);\n }\n return void 0;\n case 197 /* ParenthesizedType */:\n const exp = typeNodeToExpression(typeNode.type, languageVersion, quotePreference);\n return exp && (isIdentifier(exp) ? exp : factory.createParenthesizedExpression(exp));\n case 187 /* TypeQuery */:\n return entityNameToExpression(typeNode.exprName, languageVersion, quotePreference);\n case 206 /* ImportType */:\n Debug.fail(`We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'.`);\n }\n return void 0;\n}\nfunction entityNameToExpression(entityName, languageVersion, quotePreference) {\n if (isIdentifier(entityName)) {\n return entityName;\n }\n const unescapedName = unescapeLeadingUnderscores(entityName.right.escapedText);\n if (canUsePropertyAccess(unescapedName, languageVersion)) {\n return factory.createPropertyAccessExpression(\n entityNameToExpression(entityName.left, languageVersion, quotePreference),\n unescapedName\n );\n } else {\n return factory.createElementAccessExpression(\n entityNameToExpression(entityName.left, languageVersion, quotePreference),\n factory.createStringLiteral(unescapedName, quotePreference === 0 /* Single */)\n );\n }\n}\nfunction isMemberCompletionKind(kind) {\n switch (kind) {\n case 0 /* ObjectPropertyDeclaration */:\n case 3 /* MemberLike */:\n case 2 /* PropertyAccess */:\n return true;\n default:\n return false;\n }\n}\nfunction getJsxClosingTagCompletion(location, sourceFile) {\n const jsxClosingElement = findAncestor(location, (node) => {\n switch (node.kind) {\n case 288 /* JsxClosingElement */:\n return true;\n case 31 /* LessThanSlashToken */:\n case 32 /* GreaterThanToken */:\n case 80 /* Identifier */:\n case 212 /* PropertyAccessExpression */:\n return false;\n default:\n return \"quit\";\n }\n });\n if (jsxClosingElement) {\n const hasClosingAngleBracket = !!findChildOfKind(jsxClosingElement, 32 /* GreaterThanToken */, sourceFile);\n const tagName = jsxClosingElement.parent.openingElement.tagName;\n const closingTag = tagName.getText(sourceFile);\n const fullClosingTag = closingTag + (hasClosingAngleBracket ? \"\" : \">\");\n const replacementSpan = createTextSpanFromNode(jsxClosingElement.tagName);\n const entry = {\n name: fullClosingTag,\n kind: \"class\" /* classElement */,\n kindModifiers: void 0,\n sortText: SortText.LocationPriority\n };\n return {\n isGlobalCompletion: false,\n isMemberCompletion: true,\n isNewIdentifierLocation: false,\n optionalReplacementSpan: replacementSpan,\n entries: [entry],\n defaultCommitCharacters: getDefaultCommitCharacters(\n /*isNewIdentifierLocation*/\n false\n )\n };\n }\n return;\n}\nfunction getJSCompletionEntries(sourceFile, position, uniqueNames, target, entries) {\n getNameTable(sourceFile).forEach((pos, name) => {\n if (pos === position) {\n return;\n }\n const realName = unescapeLeadingUnderscores(name);\n if (!uniqueNames.has(realName) && isIdentifierText(realName, target)) {\n uniqueNames.add(realName);\n insertSorted(entries, {\n name: realName,\n kind: \"warning\" /* warning */,\n kindModifiers: \"\",\n sortText: SortText.JavascriptIdentifiers,\n isFromUncheckedFile: true,\n commitCharacters: []\n }, compareCompletionEntries);\n }\n });\n}\nfunction completionNameForLiteral(sourceFile, preferences, literal) {\n return typeof literal === \"object\" ? pseudoBigIntToString(literal) + \"n\" : isString(literal) ? quote(sourceFile, preferences, literal) : JSON.stringify(literal);\n}\nfunction createCompletionEntryForLiteral(sourceFile, preferences, literal) {\n return {\n name: completionNameForLiteral(sourceFile, preferences, literal),\n kind: \"string\" /* string */,\n kindModifiers: \"\" /* none */,\n sortText: SortText.LocationPriority,\n commitCharacters: []\n };\n}\nfunction createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, position, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, options, preferences, completionKind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol) {\n var _a, _b;\n let insertText;\n let filterText;\n let replacementSpan = getReplacementSpanForContextToken(replacementToken, position);\n let data;\n let isSnippet;\n let source = getSourceFromOrigin(origin);\n let sourceDisplay;\n let hasAction;\n let labelDetails;\n const typeChecker = program.getTypeChecker();\n const insertQuestionDot = origin && originIsNullableMember(origin);\n const useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess;\n if (origin && originIsThisType(origin)) {\n insertText = needsConvertPropertyAccess ? `this${insertQuestionDot ? \"?.\" : \"\"}[${quotePropertyName(sourceFile, preferences, name)}]` : `this${insertQuestionDot ? \"?.\" : \".\"}${name}`;\n } else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) {\n insertText = useBraces ? needsConvertPropertyAccess ? `[${quotePropertyName(sourceFile, preferences, name)}]` : `[${name}]` : name;\n if (insertQuestionDot || propertyAccessToConvert.questionDotToken) {\n insertText = `?.${insertText}`;\n }\n const dot = findChildOfKind(propertyAccessToConvert, 25 /* DotToken */, sourceFile) || findChildOfKind(propertyAccessToConvert, 29 /* QuestionDotToken */, sourceFile);\n if (!dot) {\n return void 0;\n }\n const end = startsWith(name, propertyAccessToConvert.name.text) ? propertyAccessToConvert.name.end : dot.end;\n replacementSpan = createTextSpanFromBounds(dot.getStart(sourceFile), end);\n }\n if (isJsxInitializer) {\n if (insertText === void 0) insertText = name;\n insertText = `{${insertText}}`;\n if (typeof isJsxInitializer !== \"boolean\") {\n replacementSpan = createTextSpanFromNode(isJsxInitializer, sourceFile);\n }\n }\n if (origin && originIsPromise(origin) && propertyAccessToConvert) {\n if (insertText === void 0) insertText = name;\n const precedingToken = findPrecedingToken(propertyAccessToConvert.pos, sourceFile);\n let awaitText = \"\";\n if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {\n awaitText = \";\";\n }\n awaitText += `(await ${propertyAccessToConvert.expression.getText()})`;\n insertText = needsConvertPropertyAccess ? `${awaitText}${insertText}` : `${awaitText}${insertQuestionDot ? \"?.\" : \".\"}${insertText}`;\n const isInAwaitExpression = tryCast(propertyAccessToConvert.parent, isAwaitExpression);\n const wrapNode = isInAwaitExpression ? propertyAccessToConvert.parent : propertyAccessToConvert.expression;\n replacementSpan = createTextSpanFromBounds(wrapNode.getStart(sourceFile), propertyAccessToConvert.end);\n }\n if (originIsResolvedExport(origin)) {\n sourceDisplay = [textPart(origin.moduleSpecifier)];\n if (importStatementCompletion) {\n ({ insertText, replacementSpan } = getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, program, preferences));\n isSnippet = preferences.includeCompletionsWithSnippetText ? true : void 0;\n }\n }\n if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) {\n hasAction = true;\n }\n if (completionKind === 0 /* ObjectPropertyDeclaration */ && contextToken && ((_a = findPrecedingToken(contextToken.pos, sourceFile, contextToken)) == null ? void 0 : _a.kind) !== 28 /* CommaToken */) {\n if (isMethodDeclaration(contextToken.parent.parent) || isGetAccessorDeclaration(contextToken.parent.parent) || isSetAccessorDeclaration(contextToken.parent.parent) || isSpreadAssignment(contextToken.parent) || ((_b = findAncestor(contextToken.parent, isPropertyAssignment)) == null ? void 0 : _b.getLastToken(sourceFile)) === contextToken || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n source = \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */;\n hasAction = true;\n }\n }\n if (preferences.includeCompletionsWithClassMemberSnippets && preferences.includeCompletionsWithInsertText && completionKind === 3 /* MemberLike */ && isClassLikeMemberCompletion(symbol, location, sourceFile)) {\n let importAdder;\n const memberCompletionEntry = getEntryForMemberCompletion(\n host,\n program,\n options,\n preferences,\n name,\n symbol,\n location,\n position,\n contextToken,\n formatContext\n );\n if (memberCompletionEntry) {\n ({ insertText, filterText, isSnippet, importAdder } = memberCompletionEntry);\n if ((importAdder == null ? void 0 : importAdder.hasFixes()) || memberCompletionEntry.eraseRange) {\n hasAction = true;\n source = \"ClassMemberSnippet/\" /* ClassMemberSnippet */;\n }\n } else {\n return void 0;\n }\n }\n if (origin && originIsObjectLiteralMethod(origin)) {\n ({ insertText, isSnippet, labelDetails } = origin);\n if (!preferences.useLabelDetailsInCompletionEntries) {\n name = name + labelDetails.detail;\n labelDetails = void 0;\n }\n source = \"ObjectLiteralMethodSnippet/\" /* ObjectLiteralMethodSnippet */;\n sortText = SortText.SortBelow(sortText);\n }\n if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== \"none\" && !(isJsxAttribute(location.parent) && location.parent.initializer)) {\n let useBraces2 = preferences.jsxAttributeCompletionStyle === \"braces\";\n const type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);\n if (preferences.jsxAttributeCompletionStyle === \"auto\" && !(type.flags & 528 /* BooleanLike */) && !(type.flags & 1048576 /* Union */ && find(type.types, (type2) => !!(type2.flags & 528 /* BooleanLike */)))) {\n if (type.flags & 402653316 /* StringLike */ || type.flags & 1048576 /* Union */ && every(type.types, (type2) => !!(type2.flags & (402653316 /* StringLike */ | 32768 /* Undefined */) || isStringAndEmptyAnonymousObjectIntersection(type2)))) {\n insertText = `${escapeSnippetText(name)}=${quote(sourceFile, preferences, \"$1\")}`;\n isSnippet = true;\n } else {\n useBraces2 = true;\n }\n }\n if (useBraces2) {\n insertText = `${escapeSnippetText(name)}={$1}`;\n isSnippet = true;\n }\n }\n if (insertText !== void 0 && !preferences.includeCompletionsWithInsertText) {\n return void 0;\n }\n if (originIsExport(origin) || originIsResolvedExport(origin)) {\n data = originToCompletionEntryData(origin);\n hasAction = !importStatementCompletion;\n }\n const parentNamedImportOrExport = findAncestor(location, isNamedImportsOrExports);\n if (parentNamedImportOrExport) {\n const languageVersion = getEmitScriptTarget(host.getCompilationSettings());\n if (!isIdentifierText(name, languageVersion)) {\n insertText = quotePropertyName(sourceFile, preferences, name);\n if (parentNamedImportOrExport.kind === 276 /* NamedImports */) {\n scanner.setText(sourceFile.text);\n scanner.resetTokenState(position);\n if (!(scanner.scan() === 130 /* AsKeyword */ && scanner.scan() === 80 /* Identifier */)) {\n insertText += \" as \" + generateIdentifierForArbitraryString(name, languageVersion);\n }\n }\n } else if (parentNamedImportOrExport.kind === 276 /* NamedImports */) {\n const possibleToken = stringToToken(name);\n if (possibleToken && (possibleToken === 135 /* AwaitKeyword */ || isNonContextualKeyword(possibleToken))) {\n insertText = `${name} as ${name}_`;\n }\n }\n }\n const kind = ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, location);\n const commitCharacters = kind === \"warning\" /* warning */ || kind === \"string\" /* string */ ? [] : void 0;\n return {\n name,\n kind,\n kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol),\n sortText,\n source,\n hasAction: hasAction ? true : void 0,\n isRecommended: isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker) || void 0,\n insertText,\n filterText,\n replacementSpan,\n sourceDisplay,\n labelDetails,\n isSnippet,\n isPackageJsonImport: originIsPackageJsonImport(origin) || void 0,\n isImportStatementCompletion: !!importStatementCompletion || void 0,\n data,\n commitCharacters,\n ...includeSymbol ? { symbol } : void 0\n };\n}\nfunction generateIdentifierForArbitraryString(text, languageVersion) {\n let needsUnderscore = false;\n let identifier = \"\";\n let ch;\n for (let i = 0; i < text.length; i += ch !== void 0 && ch >= 65536 ? 2 : 1) {\n ch = text.codePointAt(i);\n if (ch !== void 0 && (i === 0 ? isIdentifierStart(ch, languageVersion) : isIdentifierPart(ch, languageVersion))) {\n if (needsUnderscore) identifier += \"_\";\n identifier += String.fromCodePoint(ch);\n needsUnderscore = false;\n } else {\n needsUnderscore = true;\n }\n }\n if (needsUnderscore) identifier += \"_\";\n return identifier || \"_\";\n}\nfunction isClassLikeMemberCompletion(symbol, location, sourceFile) {\n if (isInJSFile(location)) {\n return false;\n }\n const memberFlags = 106500 /* ClassMember */ & 900095 /* EnumMemberExcludes */;\n return !!(symbol.flags & memberFlags) && (isClassLike(location) || location.parent && location.parent.parent && isClassElement(location.parent) && location === location.parent.name && location.parent.getLastToken(sourceFile) === location.parent.name && isClassLike(location.parent.parent) || location.parent && isSyntaxList(location) && isClassLike(location.parent));\n}\nfunction getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, position, contextToken, formatContext) {\n const classLikeDeclaration = findAncestor(location, isClassLike);\n if (!classLikeDeclaration) {\n return void 0;\n }\n let isSnippet;\n let insertText = name;\n const filterText = name;\n const checker = program.getTypeChecker();\n const sourceFile = location.getSourceFile();\n const printer = createSnippetPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target,\n omitTrailingSemicolon: false,\n newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options))\n });\n const importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host);\n let body;\n if (preferences.includeCompletionsWithSnippetText) {\n isSnippet = true;\n const emptyStmt = factory.createEmptyStatement();\n body = factory.createBlock(\n [emptyStmt],\n /*multiLine*/\n true\n );\n setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 });\n } else {\n body = factory.createBlock(\n [],\n /*multiLine*/\n true\n );\n }\n let modifiers = 0 /* None */;\n const { modifiers: presentModifiers, range: eraseRange, decorators: presentDecorators } = getPresentModifiers(contextToken, sourceFile, position);\n const isAbstract = presentModifiers & 64 /* Abstract */ && classLikeDeclaration.modifierFlagsCache & 64 /* Abstract */;\n let completionNodes = [];\n ts_codefix_exports.addNewNodeForMemberSymbol(\n symbol,\n classLikeDeclaration,\n sourceFile,\n { program, host },\n preferences,\n importAdder,\n // `addNewNodeForMemberSymbol` calls this callback function for each new member node\n // it adds for the given member symbol.\n // We store these member nodes in the `completionNodes` array.\n // Note: there might be:\n // - No nodes if `addNewNodeForMemberSymbol` cannot figure out a node for the member;\n // - One node;\n // - More than one node if the member is overloaded (e.g. a method with overload signatures).\n (node) => {\n let requiredModifiers = 0 /* None */;\n if (isAbstract) {\n requiredModifiers |= 64 /* Abstract */;\n }\n if (isClassElement(node) && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node, symbol) === 1 /* NeedsOverride */) {\n requiredModifiers |= 16 /* Override */;\n }\n if (!completionNodes.length) {\n modifiers = node.modifierFlagsCache | requiredModifiers;\n }\n node = factory.replaceModifiers(node, modifiers);\n completionNodes.push(node);\n },\n body,\n ts_codefix_exports.PreserveOptionalFlags.Property,\n !!isAbstract\n );\n if (completionNodes.length) {\n const isMethod = symbol.flags & 8192 /* Method */;\n let allowedModifiers = modifiers | 16 /* Override */ | 1 /* Public */;\n if (!isMethod) {\n allowedModifiers |= 128 /* Ambient */ | 8 /* Readonly */;\n } else {\n allowedModifiers |= 1024 /* Async */;\n }\n const allowedAndPresent = presentModifiers & allowedModifiers;\n if (presentModifiers & ~allowedModifiers) {\n return void 0;\n }\n if (modifiers & 4 /* Protected */ && allowedAndPresent & 1 /* Public */) {\n modifiers &= ~4 /* Protected */;\n }\n if (allowedAndPresent !== 0 /* None */ && !(allowedAndPresent & 1 /* Public */)) {\n modifiers &= ~1 /* Public */;\n }\n modifiers |= allowedAndPresent;\n completionNodes = completionNodes.map((node) => factory.replaceModifiers(node, modifiers));\n if (presentDecorators == null ? void 0 : presentDecorators.length) {\n const lastNode = completionNodes[completionNodes.length - 1];\n if (canHaveDecorators(lastNode)) {\n completionNodes[completionNodes.length - 1] = factory.replaceDecoratorsAndModifiers(lastNode, presentDecorators.concat(getModifiers(lastNode) || []));\n }\n }\n const format = 1 /* MultiLine */ | 131072 /* NoTrailingNewLine */;\n if (formatContext) {\n insertText = printer.printAndFormatSnippetList(\n format,\n factory.createNodeArray(completionNodes),\n sourceFile,\n formatContext\n );\n } else {\n insertText = printer.printSnippetList(\n format,\n factory.createNodeArray(completionNodes),\n sourceFile\n );\n }\n }\n return { insertText, filterText, isSnippet, importAdder, eraseRange };\n}\nfunction getPresentModifiers(contextToken, sourceFile, position) {\n if (!contextToken || getLineAndCharacterOfPosition(sourceFile, position).line > getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line) {\n return { modifiers: 0 /* None */ };\n }\n let modifiers = 0 /* None */;\n let decorators;\n let contextMod;\n const range = { pos: position, end: position };\n if (isPropertyDeclaration(contextToken.parent) && (contextMod = isModifierLike2(contextToken))) {\n if (contextToken.parent.modifiers) {\n modifiers |= modifiersToFlags(contextToken.parent.modifiers) & 98303 /* Modifier */;\n decorators = contextToken.parent.modifiers.filter(isDecorator) || [];\n range.pos = Math.min(...contextToken.parent.modifiers.map((n) => n.getStart(sourceFile)));\n }\n const contextModifierFlag = modifierToFlag(contextMod);\n if (!(modifiers & contextModifierFlag)) {\n modifiers |= contextModifierFlag;\n range.pos = Math.min(range.pos, contextToken.getStart(sourceFile));\n }\n if (contextToken.parent.name !== contextToken) {\n range.end = contextToken.parent.name.getStart(sourceFile);\n }\n }\n return { modifiers, decorators, range: range.pos < range.end ? range : void 0 };\n}\nfunction isModifierLike2(node) {\n if (isModifier(node)) {\n return node.kind;\n }\n if (isIdentifier(node)) {\n const originalKeywordKind = identifierToKeywordKind(node);\n if (originalKeywordKind && isModifierKind(originalKeywordKind)) {\n return originalKeywordKind;\n }\n }\n return void 0;\n}\nfunction getEntryForObjectLiteralMethodCompletion(symbol, name, enclosingDeclaration, program, host, options, preferences, formatContext) {\n const isSnippet = preferences.includeCompletionsWithSnippetText || void 0;\n let insertText = name;\n const sourceFile = enclosingDeclaration.getSourceFile();\n const method = createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences);\n if (!method) {\n return void 0;\n }\n const printer = createSnippetPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target,\n omitTrailingSemicolon: false,\n newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options))\n });\n if (formatContext) {\n insertText = printer.printAndFormatSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray(\n [method],\n /*hasTrailingComma*/\n true\n ), sourceFile, formatContext);\n } else {\n insertText = printer.printSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray(\n [method],\n /*hasTrailingComma*/\n true\n ), sourceFile);\n }\n const signaturePrinter = createPrinter({\n removeComments: true,\n module: options.module,\n moduleResolution: options.moduleResolution,\n target: options.target,\n omitTrailingSemicolon: true\n });\n const methodSignature = factory.createMethodSignature(\n /*modifiers*/\n void 0,\n /*name*/\n \"\",\n method.questionToken,\n method.typeParameters,\n method.parameters,\n method.type\n );\n const labelDetails = { detail: signaturePrinter.printNode(4 /* Unspecified */, methodSignature, sourceFile) };\n return { isSnippet, insertText, labelDetails };\n}\nfunction createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences) {\n const declarations = symbol.getDeclarations();\n if (!(declarations && declarations.length)) {\n return void 0;\n }\n const checker = program.getTypeChecker();\n const declaration = declarations[0];\n const name = getSynthesizedDeepClone(\n getNameOfDeclaration(declaration),\n /*includeTrivia*/\n false\n );\n const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));\n const quotePreference = getQuotePreference(sourceFile, preferences);\n const builderFlags = 33554432 /* OmitThisParameter */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n switch (declaration.kind) {\n case 172 /* PropertySignature */:\n case 173 /* PropertyDeclaration */:\n case 174 /* MethodSignature */:\n case 175 /* MethodDeclaration */: {\n let effectiveType = type.flags & 1048576 /* Union */ && type.types.length < 10 ? checker.getUnionType(type.types, 2 /* Subtype */) : type;\n if (effectiveType.flags & 1048576 /* Union */) {\n const functionTypes = filter(effectiveType.types, (type2) => checker.getSignaturesOfType(type2, 0 /* Call */).length > 0);\n if (functionTypes.length === 1) {\n effectiveType = functionTypes[0];\n } else {\n return void 0;\n }\n }\n const signatures = checker.getSignaturesOfType(effectiveType, 0 /* Call */);\n if (signatures.length !== 1) {\n return void 0;\n }\n const typeNode = checker.typeToTypeNode(\n effectiveType,\n enclosingDeclaration,\n builderFlags,\n /*internalFlags*/\n void 0,\n ts_codefix_exports.getNoopSymbolTrackerWithResolver({ program, host })\n );\n if (!typeNode || !isFunctionTypeNode(typeNode)) {\n return void 0;\n }\n let body;\n if (preferences.includeCompletionsWithSnippetText) {\n const emptyStmt = factory.createEmptyStatement();\n body = factory.createBlock(\n [emptyStmt],\n /*multiLine*/\n true\n );\n setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 });\n } else {\n body = factory.createBlock(\n [],\n /*multiLine*/\n true\n );\n }\n const parameters = typeNode.parameters.map(\n (typedParam) => factory.createParameterDeclaration(\n /*modifiers*/\n void 0,\n typedParam.dotDotDotToken,\n typedParam.name,\n /*questionToken*/\n void 0,\n /*type*/\n void 0,\n typedParam.initializer\n )\n );\n return factory.createMethodDeclaration(\n /*modifiers*/\n void 0,\n /*asteriskToken*/\n void 0,\n name,\n /*questionToken*/\n void 0,\n /*typeParameters*/\n void 0,\n parameters,\n /*type*/\n void 0,\n body\n );\n }\n default:\n return void 0;\n }\n}\nfunction createSnippetPrinter(printerOptions) {\n let escapes;\n const baseWriter = ts_textChanges_exports.createWriter(getNewLineCharacter(printerOptions));\n const printer = createPrinter(printerOptions, baseWriter);\n const writer = {\n ...baseWriter,\n write: (s) => escapingWrite(s, () => baseWriter.write(s)),\n nonEscapingWrite: baseWriter.write,\n writeLiteral: (s) => escapingWrite(s, () => baseWriter.writeLiteral(s)),\n writeStringLiteral: (s) => escapingWrite(s, () => baseWriter.writeStringLiteral(s)),\n writeSymbol: (s, symbol) => escapingWrite(s, () => baseWriter.writeSymbol(s, symbol)),\n writeParameter: (s) => escapingWrite(s, () => baseWriter.writeParameter(s)),\n writeComment: (s) => escapingWrite(s, () => baseWriter.writeComment(s)),\n writeProperty: (s) => escapingWrite(s, () => baseWriter.writeProperty(s))\n };\n return {\n printSnippetList,\n printAndFormatSnippetList,\n printNode,\n printAndFormatNode\n };\n function escapingWrite(s, write) {\n const escaped = escapeSnippetText(s);\n if (escaped !== s) {\n const start = baseWriter.getTextPos();\n write();\n const end = baseWriter.getTextPos();\n escapes = append(escapes || (escapes = []), { newText: escaped, span: { start, length: end - start } });\n } else {\n write();\n }\n }\n function printSnippetList(format, list, sourceFile) {\n const unescaped = printUnescapedSnippetList(format, list, sourceFile);\n return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped;\n }\n function printUnescapedSnippetList(format, list, sourceFile) {\n escapes = void 0;\n writer.clear();\n printer.writeList(format, list, sourceFile, writer);\n return writer.getText();\n }\n function printAndFormatSnippetList(format, list, sourceFile, formatContext) {\n const syntheticFile = {\n text: printUnescapedSnippetList(\n format,\n list,\n sourceFile\n ),\n getLineAndCharacterOfPosition(pos) {\n return getLineAndCharacterOfPosition(this, pos);\n }\n };\n const formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile);\n const changes = flatMap(list, (node) => {\n const nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node);\n return ts_formatting_exports.formatNodeGivenIndentation(\n nodeWithPos,\n syntheticFile,\n sourceFile.languageVariant,\n /* indentation */\n 0,\n /* delta */\n 0,\n { ...formatContext, options: formatOptions }\n );\n });\n const allChanges = escapes ? toSorted(concatenate(changes, escapes), (a, b) => compareTextSpans(a.span, b.span)) : changes;\n return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges);\n }\n function printNode(hint, node, sourceFile) {\n const unescaped = printUnescapedNode(hint, node, sourceFile);\n return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped;\n }\n function printUnescapedNode(hint, node, sourceFile) {\n escapes = void 0;\n writer.clear();\n printer.writeNode(hint, node, sourceFile, writer);\n return writer.getText();\n }\n function printAndFormatNode(hint, node, sourceFile, formatContext) {\n const syntheticFile = {\n text: printUnescapedNode(\n hint,\n node,\n sourceFile\n ),\n getLineAndCharacterOfPosition(pos) {\n return getLineAndCharacterOfPosition(this, pos);\n }\n };\n const formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile);\n const nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node);\n const changes = ts_formatting_exports.formatNodeGivenIndentation(\n nodeWithPos,\n syntheticFile,\n sourceFile.languageVariant,\n /* indentation */\n 0,\n /* delta */\n 0,\n { ...formatContext, options: formatOptions }\n );\n const allChanges = escapes ? toSorted(concatenate(changes, escapes), (a, b) => compareTextSpans(a.span, b.span)) : changes;\n return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges);\n }\n}\nfunction originToCompletionEntryData(origin) {\n const ambientModuleName = origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name);\n const isPackageJsonImport = origin.isFromPackageJson ? true : void 0;\n if (originIsResolvedExport(origin)) {\n const resolvedData = {\n exportName: origin.exportName,\n exportMapKey: origin.exportMapKey,\n moduleSpecifier: origin.moduleSpecifier,\n ambientModuleName,\n fileName: origin.fileName,\n isPackageJsonImport\n };\n return resolvedData;\n }\n const unresolvedData = {\n exportName: origin.exportName,\n exportMapKey: origin.exportMapKey,\n fileName: origin.fileName,\n ambientModuleName: origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name),\n isPackageJsonImport: origin.isFromPackageJson ? true : void 0\n };\n return unresolvedData;\n}\nfunction completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {\n const isDefaultExport = data.exportName === \"default\" /* Default */;\n const isFromPackageJson = !!data.isPackageJsonImport;\n if (completionEntryDataIsResolved(data)) {\n const resolvedOrigin = {\n kind: 32 /* ResolvedExport */,\n exportName: data.exportName,\n exportMapKey: data.exportMapKey,\n moduleSpecifier: data.moduleSpecifier,\n symbolName: completionName,\n fileName: data.fileName,\n moduleSymbol,\n isDefaultExport,\n isFromPackageJson\n };\n return resolvedOrigin;\n }\n const unresolvedOrigin = {\n kind: 4 /* Export */,\n exportName: data.exportName,\n exportMapKey: data.exportMapKey,\n symbolName: completionName,\n fileName: data.fileName,\n moduleSymbol,\n isDefaultExport,\n isFromPackageJson\n };\n return unresolvedOrigin;\n}\nfunction getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, program, preferences) {\n const replacementSpan = importStatementCompletion.replacementSpan;\n const quotedModuleSpecifier = escapeSnippetText(quote(sourceFile, preferences, origin.moduleSpecifier));\n const exportKind = origin.isDefaultExport ? 1 /* Default */ : origin.exportName === \"export=\" /* ExportEquals */ ? 2 /* ExportEquals */ : 0 /* Named */;\n const tabStop = preferences.includeCompletionsWithSnippetText ? \"$1\" : \"\";\n const importKind = ts_codefix_exports.getImportKind(\n sourceFile,\n exportKind,\n program,\n /*forceImportKeyword*/\n true\n );\n const isImportSpecifierTypeOnly = importStatementCompletion.couldBeTypeOnlyImportSpecifier;\n const topLevelTypeOnlyText = importStatementCompletion.isTopLevelTypeOnly ? ` ${tokenToString(156 /* TypeKeyword */)} ` : \" \";\n const importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? `${tokenToString(156 /* TypeKeyword */)} ` : \"\";\n const suffix = useSemicolons ? \";\" : \"\";\n switch (importKind) {\n case 3 /* CommonJS */:\n return { replacementSpan, insertText: `import${topLevelTypeOnlyText}${escapeSnippetText(name)}${tabStop} = require(${quotedModuleSpecifier})${suffix}` };\n case 1 /* Default */:\n return { replacementSpan, insertText: `import${topLevelTypeOnlyText}${escapeSnippetText(name)}${tabStop} from ${quotedModuleSpecifier}${suffix}` };\n case 2 /* Namespace */:\n return { replacementSpan, insertText: `import${topLevelTypeOnlyText}* as ${escapeSnippetText(name)} from ${quotedModuleSpecifier}${suffix}` };\n case 0 /* Named */:\n return { replacementSpan, insertText: `import${topLevelTypeOnlyText}{ ${importSpecifierTypeOnlyText}${escapeSnippetText(name)}${tabStop} } from ${quotedModuleSpecifier}${suffix}` };\n }\n}\nfunction quotePropertyName(sourceFile, preferences, name) {\n if (/^\\d+$/.test(name)) {\n return name;\n }\n return quote(sourceFile, preferences, name);\n}\nfunction isRecommendedCompletionMatch(localSymbol, recommendedCompletion, checker) {\n return localSymbol === recommendedCompletion || !!(localSymbol.flags & 1048576 /* ExportValue */) && checker.getExportSymbolOfSymbol(localSymbol) === recommendedCompletion;\n}\nfunction getSourceFromOrigin(origin) {\n if (originIsExport(origin)) {\n return stripQuotes(origin.moduleSymbol.name);\n }\n if (originIsResolvedExport(origin)) {\n return origin.moduleSpecifier;\n }\n if ((origin == null ? void 0 : origin.kind) === 1 /* ThisType */) {\n return \"ThisProperty/\" /* ThisProperty */;\n }\n if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) {\n return \"TypeOnlyAlias/\" /* TypeOnlyAlias */;\n }\n}\nfunction getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, position, sourceFile, host, program, target, log, kind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol = false) {\n const start = timestamp();\n const closestSymbolDeclaration = getClosestSymbolDeclaration(contextToken, location);\n const useSemicolons = probablyUsesSemicolons(sourceFile);\n const typeChecker = program.getTypeChecker();\n const uniques = /* @__PURE__ */ new Map();\n for (let i = 0; i < symbols.length; i++) {\n const symbol = symbols[i];\n const origin = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i];\n const info = getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, !!jsxIdentifierExpected);\n if (!info || uniques.get(info.name) && (!origin || !originIsObjectLiteralMethod(origin)) || kind === 1 /* Global */ && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) {\n continue;\n }\n if (!isTypeOnlyLocation && isInJSFile(sourceFile) && symbolAppearsToBeTypeOnly(symbol)) {\n continue;\n }\n const { name, needsConvertPropertyAccess } = info;\n const originalSortText = (symbolToSortTextMap == null ? void 0 : symbolToSortTextMap[getSymbolId(symbol)]) ?? SortText.LocationPriority;\n const sortText = isDeprecated(symbol, typeChecker) ? SortText.Deprecated(originalSortText) : originalSortText;\n const entry = createCompletionEntry(\n symbol,\n sortText,\n replacementToken,\n contextToken,\n location,\n position,\n sourceFile,\n host,\n program,\n name,\n needsConvertPropertyAccess,\n origin,\n recommendedCompletion,\n propertyAccessToConvert,\n isJsxInitializer,\n importStatementCompletion,\n useSemicolons,\n compilerOptions,\n preferences,\n kind,\n formatContext,\n isJsxIdentifierExpected,\n isRightOfOpenTag,\n includeSymbol\n );\n if (!entry) {\n continue;\n }\n const shouldShadowLaterSymbols = (!origin || originIsTypeOnlyAlias(origin)) && !(symbol.parent === void 0 && !some(symbol.declarations, (d) => d.getSourceFile() === location.getSourceFile()));\n uniques.set(name, shouldShadowLaterSymbols);\n insertSorted(\n entries,\n entry,\n compareCompletionEntries,\n /*equalityComparer*/\n void 0,\n /*allowDuplicates*/\n true\n );\n }\n log(\"getCompletionsAtPosition: getCompletionEntriesFromSymbols: \" + (timestamp() - start));\n return {\n has: (name) => uniques.has(name),\n add: (name) => uniques.set(name, true)\n };\n function shouldIncludeSymbol(symbol, symbolToSortTextMap2) {\n var _a;\n let allFlags = symbol.flags;\n if (location.parent && isExportAssignment(location.parent)) {\n return true;\n }\n if (closestSymbolDeclaration && tryCast(closestSymbolDeclaration, isVariableDeclaration)) {\n if (symbol.valueDeclaration === closestSymbolDeclaration) {\n return false;\n }\n if (isBindingPattern(closestSymbolDeclaration.name) && closestSymbolDeclaration.name.elements.some((e) => e === symbol.valueDeclaration)) {\n return false;\n }\n }\n const symbolDeclaration = symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);\n if (closestSymbolDeclaration && symbolDeclaration) {\n if (isParameter(closestSymbolDeclaration) && isParameter(symbolDeclaration)) {\n const parameters = closestSymbolDeclaration.parent.parameters;\n if (symbolDeclaration.pos >= closestSymbolDeclaration.pos && symbolDeclaration.pos < parameters.end) {\n return false;\n }\n } else if (isTypeParameterDeclaration(closestSymbolDeclaration) && isTypeParameterDeclaration(symbolDeclaration)) {\n if (closestSymbolDeclaration === symbolDeclaration && (contextToken == null ? void 0 : contextToken.kind) === 96 /* ExtendsKeyword */) {\n return false;\n }\n if (isInTypeParameterDefault(contextToken) && !isInferTypeNode(closestSymbolDeclaration.parent)) {\n const typeParameters = closestSymbolDeclaration.parent.typeParameters;\n if (typeParameters && symbolDeclaration.pos >= closestSymbolDeclaration.pos && symbolDeclaration.pos < typeParameters.end) {\n return false;\n }\n }\n }\n }\n const symbolOrigin = skipAlias(symbol, typeChecker);\n if (!!sourceFile.externalModuleIndicator && !compilerOptions.allowUmdGlobalAccess && symbolToSortTextMap2[getSymbolId(symbol)] === SortText.GlobalsOrKeywords && (symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.AutoImportSuggestions || symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.LocationPriority)) {\n return false;\n }\n allFlags |= getCombinedLocalAndExportSymbolFlags(symbolOrigin);\n if (isInRightSideOfInternalImportEqualsDeclaration(location)) {\n return !!(allFlags & 1920 /* Namespace */);\n }\n if (isTypeOnlyLocation) {\n return symbolCanBeReferencedAtTypeLocation(symbol, typeChecker);\n }\n return !!(allFlags & 111551 /* Value */);\n }\n function symbolAppearsToBeTypeOnly(symbol) {\n var _a;\n const flags = getCombinedLocalAndExportSymbolFlags(skipAlias(symbol, typeChecker));\n return !(flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(flags & 788968 /* Type */));\n }\n}\nfunction getLabelCompletionAtPosition(node) {\n const entries = getLabelStatementCompletions(node);\n if (entries.length) {\n return {\n isGlobalCompletion: false,\n isMemberCompletion: false,\n isNewIdentifierLocation: false,\n entries,\n defaultCommitCharacters: getDefaultCommitCharacters(\n /*isNewIdentifierLocation*/\n false\n )\n };\n }\n}\nfunction getLabelStatementCompletions(node) {\n const entries = [];\n const uniques = /* @__PURE__ */ new Map();\n let current = node;\n while (current) {\n if (isFunctionLike(current)) {\n break;\n }\n if (isLabeledStatement(current)) {\n const name = current.label.text;\n if (!uniques.has(name)) {\n uniques.set(name, true);\n entries.push({\n name,\n kindModifiers: \"\" /* none */,\n kind: \"label\" /* label */,\n sortText: SortText.LocationPriority\n });\n }\n }\n current = current.parent;\n }\n return entries;\n}\nfunction getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences) {\n if (entryId.source === \"SwitchCases/\" /* SwitchCases */) {\n return { type: \"cases\" };\n }\n if (entryId.data) {\n const autoImport = getAutoImportSymbolFromCompletionEntryData(entryId.name, entryId.data, program, host);\n if (autoImport) {\n const { contextToken: contextToken2, previousToken: previousToken2 } = getRelevantTokens(position, sourceFile);\n return {\n type: \"symbol\",\n symbol: autoImport.symbol,\n location: getTouchingPropertyName(sourceFile, position),\n previousToken: previousToken2,\n contextToken: contextToken2,\n isJsxInitializer: false,\n isTypeOnlyLocation: false,\n origin: autoImport.origin\n };\n }\n }\n const compilerOptions = program.getCompilerOptions();\n const completionData = getCompletionData(\n program,\n log,\n sourceFile,\n compilerOptions,\n position,\n { includeCompletionsForModuleExports: true, includeCompletionsWithInsertText: true },\n entryId,\n host,\n /*formatContext*/\n void 0\n );\n if (!completionData) {\n return { type: \"none\" };\n }\n if (completionData.kind !== 0 /* Data */) {\n return { type: \"request\", request: completionData };\n }\n const { symbols, literals, location, completionKind, symbolToOriginInfoMap, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData;\n const literal = find(literals, (l) => completionNameForLiteral(sourceFile, preferences, l) === entryId.name);\n if (literal !== void 0) return { type: \"literal\", literal };\n return firstDefined(symbols, (symbol, index) => {\n const origin = symbolToOriginInfoMap[index];\n const info = getCompletionEntryDisplayNameForSymbol(symbol, getEmitScriptTarget(compilerOptions), origin, completionKind, completionData.isJsxIdentifierExpected);\n return info && info.name === entryId.name && (entryId.source === \"ClassMemberSnippet/\" /* ClassMemberSnippet */ && symbol.flags & 106500 /* ClassMember */ || entryId.source === \"ObjectLiteralMethodSnippet/\" /* ObjectLiteralMethodSnippet */ && symbol.flags & (4 /* Property */ | 8192 /* Method */) || getSourceFromOrigin(origin) === entryId.source || entryId.source === \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */) ? { type: \"symbol\", symbol, location, origin, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } : void 0;\n }) || { type: \"none\" };\n}\nfunction getCompletionEntryDetails(program, log, sourceFile, position, entryId, host, formatContext, preferences, cancellationToken) {\n const typeChecker = program.getTypeChecker();\n const compilerOptions = program.getCompilerOptions();\n const { name, source, data } = entryId;\n const { previousToken, contextToken } = getRelevantTokens(position, sourceFile);\n if (isInString(sourceFile, position, previousToken)) {\n return ts_Completions_StringCompletions_exports.getStringLiteralCompletionDetails(name, sourceFile, position, previousToken, program, host, cancellationToken, preferences);\n }\n const symbolCompletion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);\n switch (symbolCompletion.type) {\n case \"request\": {\n const { request } = symbolCompletion;\n switch (request.kind) {\n case 1 /* JsDocTagName */:\n return ts_JsDoc_exports.getJSDocTagNameCompletionDetails(name);\n case 2 /* JsDocTag */:\n return ts_JsDoc_exports.getJSDocTagCompletionDetails(name);\n case 3 /* JsDocParameterName */:\n return ts_JsDoc_exports.getJSDocParameterNameCompletionDetails(name);\n case 4 /* Keywords */:\n return some(request.keywordCompletions, (c) => c.name === name) ? createSimpleDetails(name, \"keyword\" /* keyword */, 5 /* keyword */) : void 0;\n default:\n return Debug.assertNever(request);\n }\n }\n case \"symbol\": {\n const { symbol, location, contextToken: contextToken2, origin, previousToken: previousToken2 } = symbolCompletion;\n const { codeActions, sourceDisplay } = getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken2, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken2, formatContext, preferences, data, source, cancellationToken);\n const symbolName2 = originIsComputedPropertyName(origin) ? origin.symbolName : symbol.name;\n return createCompletionDetailsForSymbol(symbol, symbolName2, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay);\n }\n case \"literal\": {\n const { literal } = symbolCompletion;\n return createSimpleDetails(completionNameForLiteral(sourceFile, preferences, literal), \"string\" /* string */, typeof literal === \"string\" ? 8 /* stringLiteral */ : 7 /* numericLiteral */);\n }\n case \"cases\": {\n const snippets = getExhaustiveCaseSnippets(\n contextToken.parent,\n sourceFile,\n preferences,\n program.getCompilerOptions(),\n host,\n program,\n /*formatContext*/\n void 0\n );\n if (snippets == null ? void 0 : snippets.importAdder.hasFixes()) {\n const { entry, importAdder } = snippets;\n const changes = ts_textChanges_exports.ChangeTracker.with(\n { host, formatContext, preferences },\n importAdder.writeFixes\n );\n return {\n name: entry.name,\n kind: \"\" /* unknown */,\n kindModifiers: \"\",\n displayParts: [],\n sourceDisplay: void 0,\n codeActions: [{\n changes,\n description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name])\n }]\n };\n }\n return {\n name,\n kind: \"\" /* unknown */,\n kindModifiers: \"\",\n displayParts: [],\n sourceDisplay: void 0\n };\n }\n case \"none\":\n return allKeywordsCompletions().some((c) => c.name === name) ? createSimpleDetails(name, \"keyword\" /* keyword */, 5 /* keyword */) : void 0;\n default:\n Debug.assertNever(symbolCompletion);\n }\n}\nfunction createSimpleDetails(name, kind, kind2) {\n return createCompletionDetails(name, \"\" /* none */, kind, [displayPart(name, kind2)]);\n}\nfunction createCompletionDetailsForSymbol(symbol, name, checker, sourceFile, location, cancellationToken, codeActions, sourceDisplay) {\n const { displayParts, documentation, symbolKind, tags } = checker.runWithCancellationToken(cancellationToken, (checker2) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker2, symbol, sourceFile, location, location, 7 /* All */));\n return createCompletionDetails(name, ts_SymbolDisplay_exports.getSymbolModifiers(checker, symbol), symbolKind, displayParts, documentation, tags, codeActions, sourceDisplay);\n}\nfunction createCompletionDetails(name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source) {\n return { name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source, sourceDisplay: source };\n}\nfunction getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source, cancellationToken) {\n if (data == null ? void 0 : data.moduleSpecifier) {\n if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken, sourceFile).replacementSpan) {\n return { codeActions: void 0, sourceDisplay: [textPart(data.moduleSpecifier)] };\n }\n }\n if (source === \"ClassMemberSnippet/\" /* ClassMemberSnippet */) {\n const { importAdder, eraseRange } = getEntryForMemberCompletion(\n host,\n program,\n compilerOptions,\n preferences,\n name,\n symbol,\n location,\n position,\n contextToken,\n formatContext\n );\n if ((importAdder == null ? void 0 : importAdder.hasFixes()) || eraseRange) {\n const changes = ts_textChanges_exports.ChangeTracker.with(\n { host, formatContext, preferences },\n (tracker) => {\n if (importAdder) {\n importAdder.writeFixes(tracker);\n }\n if (eraseRange) {\n tracker.deleteRange(sourceFile, eraseRange);\n }\n }\n );\n return {\n sourceDisplay: void 0,\n codeActions: [{\n changes,\n description: (importAdder == null ? void 0 : importAdder.hasFixes()) ? diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]) : diagnosticToString([Diagnostics.Update_modifiers_of_0, name])\n }]\n };\n }\n }\n if (originIsTypeOnlyAlias(origin)) {\n const codeAction2 = ts_codefix_exports.getPromoteTypeOnlyCompletionAction(\n sourceFile,\n origin.declaration.name,\n program,\n host,\n formatContext,\n preferences\n );\n Debug.assertIsDefined(codeAction2, \"Expected to have a code action for promoting type-only alias\");\n return { codeActions: [codeAction2], sourceDisplay: void 0 };\n }\n if (source === \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */ && contextToken) {\n const changes = ts_textChanges_exports.ChangeTracker.with(\n { host, formatContext, preferences },\n (tracker) => tracker.insertText(sourceFile, contextToken.end, \",\")\n );\n if (changes) {\n return {\n sourceDisplay: void 0,\n codeActions: [{\n changes,\n description: diagnosticToString([Diagnostics.Add_missing_comma_for_object_member_completion_0, name])\n }]\n };\n }\n }\n if (!origin || !(originIsExport(origin) || originIsResolvedExport(origin))) {\n return { codeActions: void 0, sourceDisplay: void 0 };\n }\n const checker = origin.isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker();\n const { moduleSymbol } = origin;\n const targetSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker));\n const isJsxOpeningTagName = (contextToken == null ? void 0 : contextToken.kind) === 30 /* LessThanToken */ && isJsxOpeningLikeElement(contextToken.parent);\n const { moduleSpecifier, codeAction } = ts_codefix_exports.getImportCompletionAction(\n targetSymbol,\n moduleSymbol,\n data == null ? void 0 : data.exportMapKey,\n sourceFile,\n name,\n isJsxOpeningTagName,\n host,\n program,\n formatContext,\n previousToken && isIdentifier(previousToken) ? previousToken.getStart(sourceFile) : position,\n preferences,\n cancellationToken\n );\n Debug.assert(!(data == null ? void 0 : data.moduleSpecifier) || moduleSpecifier === data.moduleSpecifier);\n return { sourceDisplay: [textPart(moduleSpecifier)], codeActions: [codeAction] };\n}\nfunction getCompletionEntrySymbol(program, log, sourceFile, position, entryId, host, preferences) {\n const completion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);\n return completion.type === \"symbol\" ? completion.symbol : void 0;\n}\nvar CompletionKind = /* @__PURE__ */ ((CompletionKind2) => {\n CompletionKind2[CompletionKind2[\"ObjectPropertyDeclaration\"] = 0] = \"ObjectPropertyDeclaration\";\n CompletionKind2[CompletionKind2[\"Global\"] = 1] = \"Global\";\n CompletionKind2[CompletionKind2[\"PropertyAccess\"] = 2] = \"PropertyAccess\";\n CompletionKind2[CompletionKind2[\"MemberLike\"] = 3] = \"MemberLike\";\n CompletionKind2[CompletionKind2[\"String\"] = 4] = \"String\";\n CompletionKind2[CompletionKind2[\"None\"] = 5] = \"None\";\n return CompletionKind2;\n})(CompletionKind || {});\nfunction getRecommendedCompletion(previousToken, contextualType, checker) {\n return firstDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), (type) => {\n const symbol = type && type.symbol;\n return symbol && (symbol.flags & (8 /* EnumMember */ | 384 /* Enum */ | 32 /* Class */) && !isAbstractConstructorSymbol(symbol)) ? getFirstSymbolInChain(symbol, previousToken, checker) : void 0;\n });\n}\nfunction getContextualType(previousToken, position, sourceFile, checker) {\n const { parent: parent2 } = previousToken;\n switch (previousToken.kind) {\n case 80 /* Identifier */:\n return getContextualTypeFromParent(previousToken, checker);\n case 64 /* EqualsToken */:\n switch (parent2.kind) {\n case 261 /* VariableDeclaration */:\n return checker.getContextualType(parent2.initializer);\n // TODO: GH#18217\n case 227 /* BinaryExpression */:\n return checker.getTypeAtLocation(parent2.left);\n case 292 /* JsxAttribute */:\n return checker.getContextualTypeForJsxAttribute(parent2);\n default:\n return void 0;\n }\n case 105 /* NewKeyword */:\n return checker.getContextualType(parent2);\n case 84 /* CaseKeyword */:\n const caseClause = tryCast(parent2, isCaseClause);\n return caseClause ? getSwitchedType(caseClause, checker) : void 0;\n case 19 /* OpenBraceToken */:\n return isJsxExpression(parent2) && !isJsxElement(parent2.parent) && !isJsxFragment(parent2.parent) ? checker.getContextualTypeForJsxAttribute(parent2.parent) : void 0;\n default:\n const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile, checker);\n return argInfo ? checker.getContextualTypeForArgumentAtIndex(argInfo.invocation, argInfo.argumentIndex) : isEqualityOperatorKind(previousToken.kind) && isBinaryExpression(parent2) && isEqualityOperatorKind(parent2.operatorToken.kind) ? (\n // completion at `x ===/**/` should be for the right side\n checker.getTypeAtLocation(parent2.left)\n ) : checker.getContextualType(previousToken, 4 /* Completions */) || checker.getContextualType(previousToken);\n }\n}\nfunction getFirstSymbolInChain(symbol, enclosingDeclaration, checker) {\n const chain = checker.getAccessibleSymbolChain(\n symbol,\n enclosingDeclaration,\n /*meaning*/\n -1 /* All */,\n /*useOnlyExternalAliasing*/\n false\n );\n if (chain) return first(chain);\n return symbol.parent && (isModuleSymbol(symbol.parent) ? symbol : getFirstSymbolInChain(symbol.parent, enclosingDeclaration, checker));\n}\nfunction isModuleSymbol(symbol) {\n var _a;\n return !!((_a = symbol.declarations) == null ? void 0 : _a.some((d) => d.kind === 308 /* SourceFile */));\n}\nfunction getCompletionData(program, log, sourceFile, compilerOptions, position, preferences, detailsEntryId, host, formatContext, cancellationToken) {\n const typeChecker = program.getTypeChecker();\n const inCheckedFile = isCheckedFile(sourceFile, compilerOptions);\n let start = timestamp();\n let currentToken = getTokenAtPosition(sourceFile, position);\n log(\"getCompletionData: Get current token: \" + (timestamp() - start));\n start = timestamp();\n const insideComment = isInComment(sourceFile, position, currentToken);\n log(\"getCompletionData: Is inside comment: \" + (timestamp() - start));\n let insideJsDocTagTypeExpression = false;\n let insideJsDocImportTag = false;\n let isInSnippetScope = false;\n if (insideComment) {\n if (hasDocComment(sourceFile, position)) {\n if (sourceFile.text.charCodeAt(position - 1) === 64 /* at */) {\n return { kind: 1 /* JsDocTagName */ };\n } else {\n const lineStart = getLineStartPositionForPosition(position, sourceFile);\n if (!/[^*|\\s(/)]/.test(sourceFile.text.substring(lineStart, position))) {\n return { kind: 2 /* JsDocTag */ };\n }\n }\n }\n const tag = getJsDocTagAtPosition(currentToken, position);\n if (tag) {\n if (tag.tagName.pos <= position && position <= tag.tagName.end) {\n return { kind: 1 /* JsDocTagName */ };\n }\n if (isJSDocImportTag(tag)) {\n insideJsDocImportTag = true;\n } else {\n const typeExpression = tryGetTypeExpressionFromTag(tag);\n if (typeExpression) {\n currentToken = getTokenAtPosition(sourceFile, position);\n if (!currentToken || !isDeclarationName(currentToken) && (currentToken.parent.kind !== 349 /* JSDocPropertyTag */ || currentToken.parent.name !== currentToken)) {\n insideJsDocTagTypeExpression = isCurrentlyEditingNode(typeExpression);\n }\n }\n if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) {\n return { kind: 3 /* JsDocParameterName */, tag };\n }\n }\n }\n if (!insideJsDocTagTypeExpression && !insideJsDocImportTag) {\n log(\"Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.\");\n return void 0;\n }\n }\n start = timestamp();\n const isJsOnlyLocation = !insideJsDocTagTypeExpression && !insideJsDocImportTag && isSourceFileJS(sourceFile);\n const tokens = getRelevantTokens(position, sourceFile);\n const previousToken = tokens.previousToken;\n let contextToken = tokens.contextToken;\n log(\"getCompletionData: Get previous token: \" + (timestamp() - start));\n let node = currentToken;\n let propertyAccessToConvert;\n let isRightOfDot = false;\n let isRightOfQuestionDot = false;\n let isRightOfOpenTag = false;\n let isStartingCloseTag = false;\n let isJsxInitializer = false;\n let isJsxIdentifierExpected = false;\n let importStatementCompletion;\n let location = getTouchingPropertyName(sourceFile, position);\n let keywordFilters = 0 /* None */;\n let isNewIdentifierLocation = false;\n let flags = 0 /* None */;\n let defaultCommitCharacters;\n if (contextToken) {\n const importStatementCompletionInfo = getImportStatementCompletionInfo(contextToken, sourceFile);\n if (importStatementCompletionInfo.keywordCompletion) {\n if (importStatementCompletionInfo.isKeywordOnlyCompletion) {\n return {\n kind: 4 /* Keywords */,\n keywordCompletions: [keywordToCompletionEntry(importStatementCompletionInfo.keywordCompletion)],\n isNewIdentifierLocation: importStatementCompletionInfo.isNewIdentifierLocation\n };\n }\n keywordFilters = keywordFiltersFromSyntaxKind(importStatementCompletionInfo.keywordCompletion);\n }\n if (importStatementCompletionInfo.replacementSpan && preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {\n flags |= 2 /* IsImportStatementCompletion */;\n importStatementCompletion = importStatementCompletionInfo;\n isNewIdentifierLocation = importStatementCompletionInfo.isNewIdentifierLocation;\n }\n if (!importStatementCompletionInfo.replacementSpan && isCompletionListBlocker(contextToken)) {\n log(\"Returning an empty list because completion was requested in an invalid position.\");\n return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, computeCommitCharactersAndIsNewIdentifier().isNewIdentifierLocation) : void 0;\n }\n let parent2 = contextToken.parent;\n if (contextToken.kind === 25 /* DotToken */ || contextToken.kind === 29 /* QuestionDotToken */) {\n isRightOfDot = contextToken.kind === 25 /* DotToken */;\n isRightOfQuestionDot = contextToken.kind === 29 /* QuestionDotToken */;\n switch (parent2.kind) {\n case 212 /* PropertyAccessExpression */:\n propertyAccessToConvert = parent2;\n node = propertyAccessToConvert.expression;\n const leftmostAccessExpression = getLeftmostAccessExpression(propertyAccessToConvert);\n if (nodeIsMissing(leftmostAccessExpression) || (isCallExpression(node) || isFunctionLike(node)) && node.end === contextToken.pos && node.getChildCount(sourceFile) && last(node.getChildren(sourceFile)).kind !== 22 /* CloseParenToken */) {\n return void 0;\n }\n break;\n case 167 /* QualifiedName */:\n node = parent2.left;\n break;\n case 268 /* ModuleDeclaration */:\n node = parent2.name;\n break;\n case 206 /* ImportType */:\n node = parent2;\n break;\n case 237 /* MetaProperty */:\n node = parent2.getFirstToken(sourceFile);\n Debug.assert(node.kind === 102 /* ImportKeyword */ || node.kind === 105 /* NewKeyword */);\n break;\n default:\n return void 0;\n }\n } else if (!importStatementCompletion) {\n if (parent2 && parent2.kind === 212 /* PropertyAccessExpression */) {\n contextToken = parent2;\n parent2 = parent2.parent;\n }\n if (currentToken.parent === location) {\n switch (currentToken.kind) {\n case 32 /* GreaterThanToken */:\n if (currentToken.parent.kind === 285 /* JsxElement */ || currentToken.parent.kind === 287 /* JsxOpeningElement */) {\n location = currentToken;\n }\n break;\n case 31 /* LessThanSlashToken */:\n if (currentToken.parent.kind === 286 /* JsxSelfClosingElement */) {\n location = currentToken;\n }\n break;\n }\n }\n switch (parent2.kind) {\n case 288 /* JsxClosingElement */:\n if (contextToken.kind === 31 /* LessThanSlashToken */) {\n isStartingCloseTag = true;\n location = contextToken;\n }\n break;\n case 227 /* BinaryExpression */:\n if (!binaryExpressionMayBeOpenTag(parent2)) {\n break;\n }\n // falls through\n case 286 /* JsxSelfClosingElement */:\n case 285 /* JsxElement */:\n case 287 /* JsxOpeningElement */:\n isJsxIdentifierExpected = true;\n if (contextToken.kind === 30 /* LessThanToken */) {\n isRightOfOpenTag = true;\n location = contextToken;\n }\n break;\n case 295 /* JsxExpression */:\n case 294 /* JsxSpreadAttribute */:\n if (previousToken.kind === 20 /* CloseBraceToken */ || previousToken.kind === 80 /* Identifier */ && previousToken.parent.kind === 292 /* JsxAttribute */) {\n isJsxIdentifierExpected = true;\n }\n break;\n case 292 /* JsxAttribute */:\n if (parent2.initializer === previousToken && previousToken.end < position) {\n isJsxIdentifierExpected = true;\n break;\n }\n switch (previousToken.kind) {\n case 64 /* EqualsToken */:\n isJsxInitializer = true;\n break;\n case 80 /* Identifier */:\n isJsxIdentifierExpected = true;\n if (parent2 !== previousToken.parent && !parent2.initializer && findChildOfKind(parent2, 64 /* EqualsToken */, sourceFile)) {\n isJsxInitializer = previousToken;\n }\n }\n break;\n }\n }\n }\n const semanticStart = timestamp();\n let completionKind = 5 /* None */;\n let hasUnresolvedAutoImports = false;\n let symbols = [];\n let importSpecifierResolver;\n const symbolToOriginInfoMap = [];\n const symbolToSortTextMap = [];\n const seenPropertySymbols = /* @__PURE__ */ new Set();\n const isTypeOnlyLocation = isTypeOnlyCompletion();\n const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson) => {\n return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host);\n });\n if (isRightOfDot || isRightOfQuestionDot) {\n getTypeScriptMemberSymbols();\n } else if (isRightOfOpenTag) {\n symbols = typeChecker.getJsxIntrinsicTagNamesAt(location);\n Debug.assertEachIsDefined(symbols, \"getJsxIntrinsicTagNames() should all be defined\");\n tryGetGlobalSymbols();\n completionKind = 1 /* Global */;\n keywordFilters = 0 /* None */;\n } else if (isStartingCloseTag) {\n const tagName = contextToken.parent.parent.openingElement.tagName;\n const tagSymbol = typeChecker.getSymbolAtLocation(tagName);\n if (tagSymbol) {\n symbols = [tagSymbol];\n }\n completionKind = 1 /* Global */;\n keywordFilters = 0 /* None */;\n } else {\n if (!tryGetGlobalSymbols()) {\n return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, isNewIdentifierLocation) : void 0;\n }\n }\n log(\"getCompletionData: Semantic work: \" + (timestamp() - semanticStart));\n const contextualType = previousToken && getContextualType(previousToken, position, sourceFile, typeChecker);\n const isLiteralExpected = !tryCast(previousToken, isStringLiteralLike) && !isJsxIdentifierExpected;\n const literals = !isLiteralExpected ? [] : mapDefined(\n contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]),\n (t) => t.isLiteral() && !(t.flags & 1024 /* EnumLiteral */) ? t.value : void 0\n );\n const recommendedCompletion = previousToken && contextualType && getRecommendedCompletion(previousToken, contextualType, typeChecker);\n return {\n kind: 0 /* Data */,\n symbols,\n completionKind,\n isInSnippetScope,\n propertyAccessToConvert,\n isNewIdentifierLocation,\n location,\n keywordFilters,\n literals,\n symbolToOriginInfoMap,\n recommendedCompletion,\n previousToken,\n contextToken,\n isJsxInitializer,\n insideJsDocTagTypeExpression,\n symbolToSortTextMap,\n isTypeOnlyLocation,\n isJsxIdentifierExpected,\n isRightOfOpenTag,\n isRightOfDotOrQuestionDot: isRightOfDot || isRightOfQuestionDot,\n importStatementCompletion,\n hasUnresolvedAutoImports,\n flags,\n defaultCommitCharacters\n };\n function isTagWithTypeExpression(tag) {\n switch (tag.kind) {\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n case 343 /* JSDocReturnTag */:\n case 345 /* JSDocTypeTag */:\n case 347 /* JSDocTypedefTag */:\n case 350 /* JSDocThrowsTag */:\n case 351 /* JSDocSatisfiesTag */:\n return true;\n case 346 /* JSDocTemplateTag */:\n return !!tag.constraint;\n default:\n return false;\n }\n }\n function tryGetTypeExpressionFromTag(tag) {\n if (isTagWithTypeExpression(tag)) {\n const typeExpression = isJSDocTemplateTag(tag) ? tag.constraint : tag.typeExpression;\n return typeExpression && typeExpression.kind === 310 /* JSDocTypeExpression */ ? typeExpression : void 0;\n }\n if (isJSDocAugmentsTag(tag) || isJSDocImplementsTag(tag)) {\n return tag.class;\n }\n return void 0;\n }\n function getTypeScriptMemberSymbols() {\n completionKind = 2 /* PropertyAccess */;\n const isImportType = isLiteralImportTypeNode(node);\n const isTypeLocation = isImportType && !node.isTypeOf || isPartOfTypeNode(node.parent) || isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker);\n const isRhsOfImportDeclaration = isInRightSideOfInternalImportEqualsDeclaration(node);\n if (isEntityName(node) || isImportType || isPropertyAccessExpression(node)) {\n const isNamespaceName = isModuleDeclaration(node.parent);\n if (isNamespaceName) {\n isNewIdentifierLocation = true;\n defaultCommitCharacters = [];\n }\n let symbol = typeChecker.getSymbolAtLocation(node);\n if (symbol) {\n symbol = skipAlias(symbol, typeChecker);\n if (symbol.flags & (1536 /* Module */ | 384 /* Enum */)) {\n const exportedSymbols = typeChecker.getExportsOfModule(symbol);\n Debug.assertEachIsDefined(exportedSymbols, \"getExportsOfModule() should all be defined\");\n const isValidValueAccess = (symbol2) => typeChecker.isValidPropertyAccess(isImportType ? node : node.parent, symbol2.name);\n const isValidTypeAccess = (symbol2) => symbolCanBeReferencedAtTypeLocation(symbol2, typeChecker);\n const isValidAccess = isNamespaceName ? (symbol2) => {\n var _a;\n return !!(symbol2.flags & 1920 /* Namespace */) && !((_a = symbol2.declarations) == null ? void 0 : _a.every((d) => d.parent === node.parent));\n } : isRhsOfImportDeclaration ? (\n // Any kind is allowed when dotting off namespace in internal import equals declaration\n (symbol2) => isValidTypeAccess(symbol2) || isValidValueAccess(symbol2)\n ) : isTypeLocation || insideJsDocTagTypeExpression ? isValidTypeAccess : isValidValueAccess;\n for (const exportedSymbol of exportedSymbols) {\n if (isValidAccess(exportedSymbol)) {\n symbols.push(exportedSymbol);\n }\n }\n if (!isTypeLocation && !insideJsDocTagTypeExpression && symbol.declarations && symbol.declarations.some((d) => d.kind !== 308 /* SourceFile */ && d.kind !== 268 /* ModuleDeclaration */ && d.kind !== 267 /* EnumDeclaration */)) {\n let type = typeChecker.getTypeOfSymbolAtLocation(symbol, node).getNonOptionalType();\n let insertQuestionDot = false;\n if (type.isNullableType()) {\n const canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false;\n if (canCorrectToQuestionDot || isRightOfQuestionDot) {\n type = type.getNonNullableType();\n if (canCorrectToQuestionDot) {\n insertQuestionDot = true;\n }\n }\n }\n addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot);\n }\n return;\n }\n }\n }\n if (!isTypeLocation || isInTypeQuery(node)) {\n typeChecker.tryGetThisTypeAt(\n node,\n /*includeGlobalThis*/\n false\n );\n let type = typeChecker.getTypeAtLocation(node).getNonOptionalType();\n if (!isTypeLocation) {\n let insertQuestionDot = false;\n if (type.isNullableType()) {\n const canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false;\n if (canCorrectToQuestionDot || isRightOfQuestionDot) {\n type = type.getNonNullableType();\n if (canCorrectToQuestionDot) {\n insertQuestionDot = true;\n }\n }\n }\n addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot);\n } else {\n addTypeProperties(\n type.getNonNullableType(),\n /*insertAwait*/\n false,\n /*insertQuestionDot*/\n false\n );\n }\n }\n }\n function addTypeProperties(type, insertAwait, insertQuestionDot) {\n if (type.getStringIndexType()) {\n isNewIdentifierLocation = true;\n defaultCommitCharacters = [];\n }\n if (isRightOfQuestionDot && some(type.getCallSignatures())) {\n isNewIdentifierLocation = true;\n defaultCommitCharacters ?? (defaultCommitCharacters = allCommitCharacters);\n }\n const propertyAccess = node.kind === 206 /* ImportType */ ? node : node.parent;\n if (inCheckedFile) {\n for (const symbol of type.getApparentProperties()) {\n if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, symbol)) {\n addPropertySymbol(\n symbol,\n /*insertAwait*/\n false,\n insertQuestionDot\n );\n }\n }\n } else {\n symbols.push(...filter(getPropertiesForCompletion(type, typeChecker), (s) => typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, s)));\n }\n if (insertAwait && preferences.includeCompletionsWithInsertText) {\n const promiseType = typeChecker.getPromisedTypeOfPromise(type);\n if (promiseType) {\n for (const symbol of promiseType.getApparentProperties()) {\n if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, promiseType, symbol)) {\n addPropertySymbol(\n symbol,\n /*insertAwait*/\n true,\n insertQuestionDot\n );\n }\n }\n }\n }\n }\n function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {\n var _a;\n const computedPropertyName = firstDefined(symbol.declarations, (decl) => tryCast(getNameOfDeclaration(decl), isComputedPropertyName));\n if (computedPropertyName) {\n const leftMostName = getLeftMostName(computedPropertyName.expression);\n const nameSymbol = leftMostName && typeChecker.getSymbolAtLocation(leftMostName);\n const firstAccessibleSymbol = nameSymbol && getFirstSymbolInChain(nameSymbol, contextToken, typeChecker);\n const firstAccessibleSymbolId = firstAccessibleSymbol && getSymbolId(firstAccessibleSymbol);\n if (firstAccessibleSymbolId && addToSeen(seenPropertySymbols, firstAccessibleSymbolId)) {\n const index = symbols.length;\n symbols.push(firstAccessibleSymbol);\n symbolToSortTextMap[getSymbolId(firstAccessibleSymbol)] = SortText.GlobalsOrKeywords;\n const moduleSymbol = firstAccessibleSymbol.parent;\n if (!moduleSymbol || !isExternalModuleSymbol(moduleSymbol) || typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {\n symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };\n } else {\n const fileName = isExternalModuleNameRelative(stripQuotes(moduleSymbol.name)) ? (_a = getSourceFileOfModule(moduleSymbol)) == null ? void 0 : _a.fileName : void 0;\n const { moduleSpecifier } = (importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences))).getModuleSpecifierForBestExportInfo(\n [{\n exportKind: 0 /* Named */,\n moduleFileName: fileName,\n isFromPackageJson: false,\n moduleSymbol,\n symbol: firstAccessibleSymbol,\n targetFlags: skipAlias(firstAccessibleSymbol, typeChecker).flags\n }],\n position,\n isValidTypeOnlyAliasUseSite(location)\n ) || {};\n if (moduleSpecifier) {\n const origin = {\n kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),\n moduleSymbol,\n isDefaultExport: false,\n symbolName: firstAccessibleSymbol.name,\n exportName: firstAccessibleSymbol.name,\n fileName,\n moduleSpecifier\n };\n symbolToOriginInfoMap[index] = origin;\n }\n }\n } else if (preferences.includeCompletionsWithInsertText) {\n if (firstAccessibleSymbolId && seenPropertySymbols.has(firstAccessibleSymbolId)) {\n return;\n }\n addSymbolOriginInfo(symbol);\n addSymbolSortInfo(symbol);\n symbols.push(symbol);\n }\n } else {\n addSymbolOriginInfo(symbol);\n addSymbolSortInfo(symbol);\n symbols.push(symbol);\n }\n function addSymbolSortInfo(symbol2) {\n if (isStaticProperty(symbol2)) {\n symbolToSortTextMap[getSymbolId(symbol2)] = SortText.LocalDeclarationPriority;\n }\n }\n function addSymbolOriginInfo(symbol2) {\n if (preferences.includeCompletionsWithInsertText) {\n if (insertAwait && addToSeen(seenPropertySymbols, getSymbolId(symbol2))) {\n symbolToOriginInfoMap[symbols.length] = { kind: getNullableSymbolOriginInfoKind(8 /* Promise */) };\n } else if (insertQuestionDot) {\n symbolToOriginInfoMap[symbols.length] = { kind: 16 /* Nullable */ };\n }\n }\n }\n function getNullableSymbolOriginInfoKind(kind) {\n return insertQuestionDot ? kind | 16 /* Nullable */ : kind;\n }\n }\n function getLeftMostName(e) {\n return isIdentifier(e) ? e : isPropertyAccessExpression(e) ? getLeftMostName(e.expression) : void 0;\n }\n function tryGetGlobalSymbols() {\n const result = tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() || tryGetObjectLikeCompletionSymbols() || tryGetImportCompletionSymbols() || tryGetImportOrExportClauseCompletionSymbols() || tryGetImportAttributesCompletionSymbols() || tryGetLocalNamedExportCompletionSymbols() || tryGetConstructorCompletion() || tryGetClassLikeCompletionSymbols() || tryGetJsxCompletionSymbols() || (getGlobalCompletions(), 1 /* Success */);\n return result === 1 /* Success */;\n }\n function tryGetConstructorCompletion() {\n if (!tryGetConstructorLikeCompletionContainer(contextToken)) return 0 /* Continue */;\n completionKind = 5 /* None */;\n isNewIdentifierLocation = true;\n keywordFilters = 4 /* ConstructorParameterKeywords */;\n return 1 /* Success */;\n }\n function tryGetJsxCompletionSymbols() {\n const jsxContainer = tryGetContainingJsxElement(contextToken);\n const attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes);\n if (!attrsType) return 0 /* Continue */;\n const completionsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes, 4 /* Completions */);\n symbols = concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties));\n setSortTextToOptionalMember();\n completionKind = 3 /* MemberLike */;\n isNewIdentifierLocation = false;\n return 1 /* Success */;\n }\n function tryGetImportCompletionSymbols() {\n if (!importStatementCompletion) return 0 /* Continue */;\n isNewIdentifierLocation = true;\n collectAutoImports();\n return 1 /* Success */;\n }\n function getGlobalCompletions() {\n keywordFilters = tryGetFunctionLikeBodyCompletionContainer(contextToken) ? 5 /* FunctionLikeBodyKeywords */ : 1 /* All */;\n completionKind = 1 /* Global */;\n ({ isNewIdentifierLocation, defaultCommitCharacters } = computeCommitCharactersAndIsNewIdentifier());\n if (previousToken !== contextToken) {\n Debug.assert(!!previousToken, \"Expected 'contextToken' to be defined when different from 'previousToken'.\");\n }\n const adjustedPosition = previousToken !== contextToken ? previousToken.getStart() : position;\n const scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile;\n isInSnippetScope = isSnippetScope(scopeNode);\n const symbolMeanings = (isTypeOnlyLocation ? 0 /* None */ : 111551 /* Value */) | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */;\n const typeOnlyAliasNeedsPromotion = previousToken && !isValidTypeOnlyAliasUseSite(previousToken);\n symbols = concatenate(symbols, typeChecker.getSymbolsInScope(scopeNode, symbolMeanings));\n Debug.assertEachIsDefined(symbols, \"getSymbolsInScope() should all be defined\");\n for (let i = 0; i < symbols.length; i++) {\n const symbol = symbols[i];\n if (!typeChecker.isArgumentsSymbol(symbol) && !some(symbol.declarations, (d) => d.getSourceFile() === sourceFile)) {\n symbolToSortTextMap[getSymbolId(symbol)] = SortText.GlobalsOrKeywords;\n }\n if (typeOnlyAliasNeedsPromotion && !(symbol.flags & 111551 /* Value */)) {\n const typeOnlyAliasDeclaration = symbol.declarations && find(symbol.declarations, isTypeOnlyImportDeclaration);\n if (typeOnlyAliasDeclaration) {\n const origin = { kind: 64 /* TypeOnlyAlias */, declaration: typeOnlyAliasDeclaration };\n symbolToOriginInfoMap[i] = origin;\n }\n }\n }\n if (preferences.includeCompletionsWithInsertText && scopeNode.kind !== 308 /* SourceFile */) {\n const thisType = typeChecker.tryGetThisTypeAt(\n scopeNode,\n /*includeGlobalThis*/\n false,\n isClassLike(scopeNode.parent) ? scopeNode : void 0\n );\n if (thisType && !isProbablyGlobalType(thisType, sourceFile, typeChecker)) {\n for (const symbol of getPropertiesForCompletion(thisType, typeChecker)) {\n symbolToOriginInfoMap[symbols.length] = { kind: 1 /* ThisType */ };\n symbols.push(symbol);\n symbolToSortTextMap[getSymbolId(symbol)] = SortText.SuggestedClassMembers;\n }\n }\n }\n collectAutoImports();\n if (isTypeOnlyLocation) {\n keywordFilters = contextToken && isAssertionExpression(contextToken.parent) ? 6 /* TypeAssertionKeywords */ : 7 /* TypeKeywords */;\n }\n }\n function shouldOfferImportCompletions() {\n var _a;\n if (importStatementCompletion) return true;\n if (!preferences.includeCompletionsForModuleExports) return false;\n if (sourceFile.externalModuleIndicator || sourceFile.commonJsModuleIndicator) return true;\n if (compilerOptionsIndicateEsModules(program.getCompilerOptions())) return true;\n return ((_a = program.getSymlinkCache) == null ? void 0 : _a.call(program).hasAnySymlinks()) || !!program.getCompilerOptions().paths || programContainsModules(program);\n }\n function isSnippetScope(scopeNode) {\n switch (scopeNode.kind) {\n case 308 /* SourceFile */:\n case 229 /* TemplateExpression */:\n case 295 /* JsxExpression */:\n case 242 /* Block */:\n return true;\n default:\n return isStatement(scopeNode);\n }\n }\n function isTypeOnlyCompletion() {\n return insideJsDocTagTypeExpression || insideJsDocImportTag || !!importStatementCompletion && isTypeOnlyImportOrExportDeclaration(location.parent) || !isContextTokenValueLocation(contextToken) && (isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker) || isPartOfTypeNode(location) || isContextTokenTypeLocation(contextToken));\n }\n function isContextTokenValueLocation(contextToken2) {\n return contextToken2 && (contextToken2.kind === 114 /* TypeOfKeyword */ && (contextToken2.parent.kind === 187 /* TypeQuery */ || isTypeOfExpression(contextToken2.parent)) || contextToken2.kind === 131 /* AssertsKeyword */ && contextToken2.parent.kind === 183 /* TypePredicate */);\n }\n function isContextTokenTypeLocation(contextToken2) {\n if (contextToken2) {\n const parentKind = contextToken2.parent.kind;\n switch (contextToken2.kind) {\n case 59 /* ColonToken */:\n return parentKind === 173 /* PropertyDeclaration */ || parentKind === 172 /* PropertySignature */ || parentKind === 170 /* Parameter */ || parentKind === 261 /* VariableDeclaration */ || isFunctionLikeKind(parentKind);\n case 64 /* EqualsToken */:\n return parentKind === 266 /* TypeAliasDeclaration */ || parentKind === 169 /* TypeParameter */;\n case 130 /* AsKeyword */:\n return parentKind === 235 /* AsExpression */;\n case 30 /* LessThanToken */:\n return parentKind === 184 /* TypeReference */ || parentKind === 217 /* TypeAssertionExpression */;\n case 96 /* ExtendsKeyword */:\n return parentKind === 169 /* TypeParameter */;\n case 152 /* SatisfiesKeyword */:\n return parentKind === 239 /* SatisfiesExpression */;\n }\n }\n return false;\n }\n function collectAutoImports() {\n var _a, _b;\n if (!shouldOfferImportCompletions()) return;\n Debug.assert(!(detailsEntryId == null ? void 0 : detailsEntryId.data), \"Should not run 'collectAutoImports' when faster path is available via `data`\");\n if (detailsEntryId && !detailsEntryId.source) {\n return;\n }\n flags |= 1 /* MayIncludeAutoImports */;\n const isAfterTypeOnlyImportSpecifierModifier = previousToken === contextToken && importStatementCompletion;\n const lowerCaseTokenText = isAfterTypeOnlyImportSpecifierModifier ? \"\" : previousToken && isIdentifier(previousToken) ? previousToken.text.toLowerCase() : \"\";\n const moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n const exportInfo = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken);\n const packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) == null ? void 0 : _b.call(host);\n const packageJsonFilter = detailsEntryId ? void 0 : createPackageJsonImportFilter(sourceFile, preferences, host);\n resolvingModuleSpecifiers(\n \"collectAutoImports\",\n host,\n importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences)),\n program,\n position,\n preferences,\n !!importStatementCompletion,\n isValidTypeOnlyAliasUseSite(location),\n (context) => {\n exportInfo.search(\n sourceFile.path,\n /*preferCapitalized*/\n isRightOfOpenTag,\n (symbolName2, targetFlags) => {\n if (!isIdentifierText(symbolName2, getEmitScriptTarget(host.getCompilationSettings()))) return false;\n if (!detailsEntryId && isStringANonContextualKeyword(symbolName2)) return false;\n if (!isTypeOnlyLocation && !importStatementCompletion && !(targetFlags & 111551 /* Value */)) return false;\n if (isTypeOnlyLocation && !(targetFlags & (1536 /* Module */ | 788968 /* Type */))) return false;\n const firstChar = symbolName2.charCodeAt(0);\n if (isRightOfOpenTag && (firstChar < 65 /* A */ || firstChar > 90 /* Z */)) return false;\n if (detailsEntryId) return true;\n return charactersFuzzyMatchInString(symbolName2, lowerCaseTokenText);\n },\n (info, symbolName2, isFromAmbientModule, exportMapKey) => {\n if (detailsEntryId && !some(info, (i) => detailsEntryId.source === stripQuotes(i.moduleSymbol.name))) {\n return;\n }\n info = filter(info, isImportableExportInfo);\n if (!info.length) {\n return;\n }\n const result = context.tryResolve(info, isFromAmbientModule) || {};\n if (result === \"failed\") return;\n let exportInfo2 = info[0], moduleSpecifier;\n if (result !== \"skipped\") {\n ({ exportInfo: exportInfo2 = info[0], moduleSpecifier } = result);\n }\n const isDefaultExport = exportInfo2.exportKind === 1 /* Default */;\n const symbol = isDefaultExport && getLocalSymbolForExportDefault(Debug.checkDefined(exportInfo2.symbol)) || Debug.checkDefined(exportInfo2.symbol);\n pushAutoImportSymbol(symbol, {\n kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,\n moduleSpecifier,\n symbolName: symbolName2,\n exportMapKey,\n exportName: exportInfo2.exportKind === 2 /* ExportEquals */ ? \"export=\" /* ExportEquals */ : Debug.checkDefined(exportInfo2.symbol).name,\n fileName: exportInfo2.moduleFileName,\n isDefaultExport,\n moduleSymbol: exportInfo2.moduleSymbol,\n isFromPackageJson: exportInfo2.isFromPackageJson\n });\n }\n );\n hasUnresolvedAutoImports = context.skippedAny();\n flags |= context.resolvedAny() ? 8 /* ResolvedModuleSpecifiers */ : 0;\n flags |= context.resolvedBeyondLimit() ? 16 /* ResolvedModuleSpecifiersBeyondLimit */ : 0;\n }\n );\n function isImportableExportInfo(info) {\n return isImportable(\n info.isFromPackageJson ? packageJsonAutoImportProvider : program,\n sourceFile,\n tryCast(info.moduleSymbol.valueDeclaration, isSourceFile),\n info.moduleSymbol,\n preferences,\n packageJsonFilter,\n getModuleSpecifierResolutionHost(info.isFromPackageJson),\n moduleSpecifierCache\n );\n }\n }\n function pushAutoImportSymbol(symbol, origin) {\n const symbolId = getSymbolId(symbol);\n if (symbolToSortTextMap[symbolId] === SortText.GlobalsOrKeywords) {\n return;\n }\n symbolToOriginInfoMap[symbols.length] = origin;\n symbolToSortTextMap[symbolId] = importStatementCompletion ? SortText.LocationPriority : SortText.AutoImportSuggestions;\n symbols.push(symbol);\n }\n function collectObjectLiteralMethodSymbols(members, enclosingDeclaration) {\n if (isInJSFile(location)) {\n return;\n }\n members.forEach((member) => {\n if (!isObjectLiteralMethodSymbol(member)) {\n return;\n }\n const displayName = getCompletionEntryDisplayNameForSymbol(\n member,\n getEmitScriptTarget(compilerOptions),\n /*origin*/\n void 0,\n 0 /* ObjectPropertyDeclaration */,\n /*jsxIdentifierExpected*/\n false\n );\n if (!displayName) {\n return;\n }\n const { name } = displayName;\n const entryProps = getEntryForObjectLiteralMethodCompletion(\n member,\n name,\n enclosingDeclaration,\n program,\n host,\n compilerOptions,\n preferences,\n formatContext\n );\n if (!entryProps) {\n return;\n }\n const origin = { kind: 128 /* ObjectLiteralMethod */, ...entryProps };\n flags |= 32 /* MayIncludeMethodSnippets */;\n symbolToOriginInfoMap[symbols.length] = origin;\n symbols.push(member);\n });\n }\n function isObjectLiteralMethodSymbol(symbol) {\n if (!(symbol.flags & (4 /* Property */ | 8192 /* Method */))) {\n return false;\n }\n return true;\n }\n function getScopeNode(initialToken, position2, sourceFile2) {\n let scope = initialToken;\n while (scope && !positionBelongsToNode(scope, position2, sourceFile2)) {\n scope = scope.parent;\n }\n return scope;\n }\n function isCompletionListBlocker(contextToken2) {\n const start2 = timestamp();\n const result = isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) || isSolelyIdentifierDefinitionLocation(contextToken2) || isDotOfNumericLiteral(contextToken2) || isInJsxText(contextToken2) || isBigIntLiteral(contextToken2);\n log(\"getCompletionsAtPosition: isCompletionListBlocker: \" + (timestamp() - start2));\n return result;\n }\n function isInJsxText(contextToken2) {\n if (contextToken2.kind === 12 /* JsxText */) {\n return true;\n }\n if (contextToken2.kind === 32 /* GreaterThanToken */ && contextToken2.parent) {\n if (location === contextToken2.parent && (location.kind === 287 /* JsxOpeningElement */ || location.kind === 286 /* JsxSelfClosingElement */)) {\n return false;\n }\n if (contextToken2.parent.kind === 287 /* JsxOpeningElement */) {\n return location.parent.kind !== 287 /* JsxOpeningElement */;\n }\n if (contextToken2.parent.kind === 288 /* JsxClosingElement */ || contextToken2.parent.kind === 286 /* JsxSelfClosingElement */) {\n return !!contextToken2.parent.parent && contextToken2.parent.parent.kind === 285 /* JsxElement */;\n }\n }\n return false;\n }\n function computeCommitCharactersAndIsNewIdentifier() {\n if (contextToken) {\n const containingNodeKind = contextToken.parent.kind;\n const tokenKind = keywordForNode(contextToken);\n switch (tokenKind) {\n case 28 /* CommaToken */:\n switch (containingNodeKind) {\n case 214 /* CallExpression */:\n // func( a, |\n case 215 /* NewExpression */: {\n const expression = contextToken.parent.expression;\n if (getLineAndCharacterOfPosition(sourceFile, expression.end).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n }\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n }\n case 227 /* BinaryExpression */:\n return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n case 177 /* Constructor */:\n // constructor( a, | /* public, protected, private keywords are allowed here, so show completion */\n case 185 /* FunctionType */:\n // var x: (s: string, list|\n case 211 /* ObjectLiteralExpression */:\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n case 210 /* ArrayLiteralExpression */:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 21 /* OpenParenToken */:\n switch (containingNodeKind) {\n case 214 /* CallExpression */:\n // func( |\n case 215 /* NewExpression */: {\n const expression = contextToken.parent.expression;\n if (getLineAndCharacterOfPosition(sourceFile, expression.end).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n }\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n }\n case 218 /* ParenthesizedExpression */:\n return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n case 177 /* Constructor */:\n // constructor( |\n case 197 /* ParenthesizedType */:\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 23 /* OpenBracketToken */:\n switch (containingNodeKind) {\n case 210 /* ArrayLiteralExpression */:\n // [ |\n case 182 /* IndexSignature */:\n // [ | : string ]\n case 190 /* TupleType */:\n // [ | : string ]\n case 168 /* ComputedPropertyName */:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 144 /* ModuleKeyword */:\n // module |\n case 145 /* NamespaceKeyword */:\n // namespace |\n case 102 /* ImportKeyword */:\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n case 25 /* DotToken */:\n switch (containingNodeKind) {\n case 268 /* ModuleDeclaration */:\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 19 /* OpenBraceToken */:\n switch (containingNodeKind) {\n case 264 /* ClassDeclaration */:\n // class A { |\n case 211 /* ObjectLiteralExpression */:\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 64 /* EqualsToken */:\n switch (containingNodeKind) {\n case 261 /* VariableDeclaration */:\n // const x = a|\n case 227 /* BinaryExpression */:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n default:\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n case 16 /* TemplateHead */:\n return {\n defaultCommitCharacters: allCommitCharacters,\n isNewIdentifierLocation: containingNodeKind === 229 /* TemplateExpression */\n // `aa ${|\n };\n case 17 /* TemplateMiddle */:\n return {\n defaultCommitCharacters: allCommitCharacters,\n isNewIdentifierLocation: containingNodeKind === 240 /* TemplateSpan */\n // `aa ${10} dd ${|\n };\n case 134 /* AsyncKeyword */:\n return containingNodeKind === 175 /* MethodDeclaration */ || containingNodeKind === 305 /* ShorthandPropertyAssignment */ ? { defaultCommitCharacters: [], isNewIdentifierLocation: true } : { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n case 42 /* AsteriskToken */:\n return containingNodeKind === 175 /* MethodDeclaration */ ? { defaultCommitCharacters: [], isNewIdentifierLocation: true } : { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n if (isClassMemberCompletionKeyword(tokenKind)) {\n return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n }\n }\n return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n }\n function isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) {\n return (isRegularExpressionLiteral(contextToken2) || isStringTextContainingNode(contextToken2)) && (rangeContainsPositionExclusive(contextToken2, position) || position === contextToken2.end && (!!contextToken2.isUnterminated || isRegularExpressionLiteral(contextToken2)));\n }\n function tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() {\n const typeLiteralNode = tryGetTypeLiteralNode(contextToken);\n if (!typeLiteralNode) return 0 /* Continue */;\n const intersectionTypeNode = isIntersectionTypeNode(typeLiteralNode.parent) ? typeLiteralNode.parent : void 0;\n const containerTypeNode = intersectionTypeNode || typeLiteralNode;\n const containerExpectedType = getConstraintOfTypeArgumentProperty(containerTypeNode, typeChecker);\n if (!containerExpectedType) return 0 /* Continue */;\n const containerActualType = typeChecker.getTypeFromTypeNode(containerTypeNode);\n const members = getPropertiesForCompletion(containerExpectedType, typeChecker);\n const existingMembers = getPropertiesForCompletion(containerActualType, typeChecker);\n const existingMemberEscapedNames = /* @__PURE__ */ new Set();\n existingMembers.forEach((s) => existingMemberEscapedNames.add(s.escapedName));\n symbols = concatenate(symbols, filter(members, (s) => !existingMemberEscapedNames.has(s.escapedName)));\n completionKind = 0 /* ObjectPropertyDeclaration */;\n isNewIdentifierLocation = true;\n return 1 /* Success */;\n }\n function tryGetObjectLikeCompletionSymbols() {\n if ((contextToken == null ? void 0 : contextToken.kind) === 26 /* DotDotDotToken */) return 0 /* Continue */;\n const symbolsStartIndex = symbols.length;\n const objectLikeContainer = tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile);\n if (!objectLikeContainer) return 0 /* Continue */;\n completionKind = 0 /* ObjectPropertyDeclaration */;\n let typeMembers;\n let existingMembers;\n if (objectLikeContainer.kind === 211 /* ObjectLiteralExpression */) {\n const instantiatedType = tryGetObjectLiteralContextualType(objectLikeContainer, typeChecker);\n if (instantiatedType === void 0) {\n if (objectLikeContainer.flags & 67108864 /* InWithStatement */) {\n return 2 /* Fail */;\n }\n return 0 /* Continue */;\n }\n const completionsType = typeChecker.getContextualType(objectLikeContainer, 4 /* Completions */);\n const hasStringIndexType = (completionsType || instantiatedType).getStringIndexType();\n const hasNumberIndextype = (completionsType || instantiatedType).getNumberIndexType();\n isNewIdentifierLocation = !!hasStringIndexType || !!hasNumberIndextype;\n typeMembers = getPropertiesForObjectExpression(instantiatedType, completionsType, objectLikeContainer, typeChecker);\n existingMembers = objectLikeContainer.properties;\n if (typeMembers.length === 0) {\n if (!hasNumberIndextype) {\n return 0 /* Continue */;\n }\n }\n } else {\n Debug.assert(objectLikeContainer.kind === 207 /* ObjectBindingPattern */);\n isNewIdentifierLocation = false;\n const rootDeclaration = getRootDeclaration(objectLikeContainer.parent);\n if (!isVariableLike(rootDeclaration)) return Debug.fail(\"Root declaration is not variable-like.\");\n let canGetType = hasInitializer(rootDeclaration) || !!getEffectiveTypeAnnotationNode(rootDeclaration) || rootDeclaration.parent.parent.kind === 251 /* ForOfStatement */;\n if (!canGetType && rootDeclaration.kind === 170 /* Parameter */) {\n if (isExpression(rootDeclaration.parent)) {\n canGetType = !!typeChecker.getContextualType(rootDeclaration.parent);\n } else if (rootDeclaration.parent.kind === 175 /* MethodDeclaration */ || rootDeclaration.parent.kind === 179 /* SetAccessor */) {\n canGetType = isExpression(rootDeclaration.parent.parent) && !!typeChecker.getContextualType(rootDeclaration.parent.parent);\n }\n }\n if (canGetType) {\n const typeForObject = typeChecker.getTypeAtLocation(objectLikeContainer);\n if (!typeForObject) return 2 /* Fail */;\n typeMembers = typeChecker.getPropertiesOfType(typeForObject).filter((propertySymbol) => {\n return typeChecker.isPropertyAccessible(\n objectLikeContainer,\n /*isSuper*/\n false,\n /*isWrite*/\n false,\n typeForObject,\n propertySymbol\n );\n });\n existingMembers = objectLikeContainer.elements;\n }\n }\n if (typeMembers && typeMembers.length > 0) {\n const filteredMembers = filterObjectMembersList(typeMembers, Debug.checkDefined(existingMembers));\n symbols = concatenate(symbols, filteredMembers);\n setSortTextToOptionalMember();\n if (objectLikeContainer.kind === 211 /* ObjectLiteralExpression */ && preferences.includeCompletionsWithObjectLiteralMethodSnippets && preferences.includeCompletionsWithInsertText) {\n transformObjectLiteralMembersSortText(symbolsStartIndex);\n collectObjectLiteralMethodSymbols(filteredMembers, objectLikeContainer);\n }\n }\n return 1 /* Success */;\n }\n function tryGetImportOrExportClauseCompletionSymbols() {\n if (!contextToken) return 0 /* Continue */;\n const namedImportsOrExports = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isNamedImportsOrExports) : isTypeKeywordTokenOrIdentifier(contextToken) ? tryCast(contextToken.parent.parent, isNamedImportsOrExports) : void 0;\n if (!namedImportsOrExports) return 0 /* Continue */;\n if (!isTypeKeywordTokenOrIdentifier(contextToken)) {\n keywordFilters = 8 /* TypeKeyword */;\n }\n const { moduleSpecifier } = namedImportsOrExports.kind === 276 /* NamedImports */ ? namedImportsOrExports.parent.parent : namedImportsOrExports.parent;\n if (!moduleSpecifier) {\n isNewIdentifierLocation = true;\n return namedImportsOrExports.kind === 276 /* NamedImports */ ? 2 /* Fail */ : 0 /* Continue */;\n }\n const moduleSpecifierSymbol = typeChecker.getSymbolAtLocation(moduleSpecifier);\n if (!moduleSpecifierSymbol) {\n isNewIdentifierLocation = true;\n return 2 /* Fail */;\n }\n completionKind = 3 /* MemberLike */;\n isNewIdentifierLocation = false;\n const exports2 = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol);\n const existing = new Set(namedImportsOrExports.elements.filter((n) => !isCurrentlyEditingNode(n)).map((n) => moduleExportNameTextEscaped(n.propertyName || n.name)));\n const uniques = exports2.filter((e) => e.escapedName !== \"default\" /* Default */ && !existing.has(e.escapedName));\n symbols = concatenate(symbols, uniques);\n if (!uniques.length) {\n keywordFilters = 0 /* None */;\n }\n return 1 /* Success */;\n }\n function tryGetImportAttributesCompletionSymbols() {\n if (contextToken === void 0) return 0 /* Continue */;\n const importAttributes = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isImportAttributes) : contextToken.kind === 59 /* ColonToken */ ? tryCast(contextToken.parent.parent, isImportAttributes) : void 0;\n if (importAttributes === void 0) return 0 /* Continue */;\n const existing = new Set(importAttributes.elements.map(getNameFromImportAttribute));\n symbols = filter(typeChecker.getTypeAtLocation(importAttributes).getApparentProperties(), (attr) => !existing.has(attr.escapedName));\n return 1 /* Success */;\n }\n function tryGetLocalNamedExportCompletionSymbols() {\n var _a;\n const namedExports = contextToken && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */) ? tryCast(contextToken.parent, isNamedExports) : void 0;\n if (!namedExports) {\n return 0 /* Continue */;\n }\n const localsContainer = findAncestor(namedExports, or(isSourceFile, isModuleDeclaration));\n completionKind = 5 /* None */;\n isNewIdentifierLocation = false;\n (_a = localsContainer.locals) == null ? void 0 : _a.forEach((symbol, name) => {\n var _a2, _b;\n symbols.push(symbol);\n if ((_b = (_a2 = localsContainer.symbol) == null ? void 0 : _a2.exports) == null ? void 0 : _b.has(name)) {\n symbolToSortTextMap[getSymbolId(symbol)] = SortText.OptionalMember;\n }\n });\n return 1 /* Success */;\n }\n function tryGetClassLikeCompletionSymbols() {\n const decl = tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position);\n if (!decl) return 0 /* Continue */;\n completionKind = 3 /* MemberLike */;\n isNewIdentifierLocation = true;\n keywordFilters = contextToken.kind === 42 /* AsteriskToken */ ? 0 /* None */ : isClassLike(decl) ? 2 /* ClassElementKeywords */ : 3 /* InterfaceElementKeywords */;\n if (!isClassLike(decl)) return 1 /* Success */;\n const classElement = contextToken.kind === 27 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;\n let classElementModifierFlags = isClassElement(classElement) ? getEffectiveModifierFlags(classElement) : 0 /* None */;\n if (contextToken.kind === 80 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {\n switch (contextToken.getText()) {\n case \"private\":\n classElementModifierFlags = classElementModifierFlags | 2 /* Private */;\n break;\n case \"static\":\n classElementModifierFlags = classElementModifierFlags | 256 /* Static */;\n break;\n case \"override\":\n classElementModifierFlags = classElementModifierFlags | 16 /* Override */;\n break;\n }\n }\n if (isClassStaticBlockDeclaration(classElement)) {\n classElementModifierFlags |= 256 /* Static */;\n }\n if (!(classElementModifierFlags & 2 /* Private */)) {\n const baseTypeNodes = isClassLike(decl) && classElementModifierFlags & 16 /* Override */ ? singleElementArray(getEffectiveBaseTypeNode(decl)) : getAllSuperTypeNodes(decl);\n const baseSymbols = flatMap(baseTypeNodes, (baseTypeNode) => {\n const type = typeChecker.getTypeAtLocation(baseTypeNode);\n return classElementModifierFlags & 256 /* Static */ ? (type == null ? void 0 : type.symbol) && typeChecker.getPropertiesOfType(typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl)) : type && typeChecker.getPropertiesOfType(type);\n });\n symbols = concatenate(symbols, filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags));\n forEach(symbols, (symbol, index) => {\n const declaration = symbol == null ? void 0 : symbol.valueDeclaration;\n if (declaration && isClassElement(declaration) && declaration.name && isComputedPropertyName(declaration.name)) {\n const origin = {\n kind: 512 /* ComputedPropertyName */,\n symbolName: typeChecker.symbolToString(symbol)\n };\n symbolToOriginInfoMap[index] = origin;\n }\n });\n }\n return 1 /* Success */;\n }\n function isConstructorParameterCompletion(node2) {\n return !!node2.parent && isParameter(node2.parent) && isConstructorDeclaration(node2.parent.parent) && (isParameterPropertyModifier(node2.kind) || isDeclarationName(node2));\n }\n function tryGetConstructorLikeCompletionContainer(contextToken2) {\n if (contextToken2) {\n const parent2 = contextToken2.parent;\n switch (contextToken2.kind) {\n case 21 /* OpenParenToken */:\n case 28 /* CommaToken */:\n return isConstructorDeclaration(contextToken2.parent) ? contextToken2.parent : void 0;\n default:\n if (isConstructorParameterCompletion(contextToken2)) {\n return parent2.parent;\n }\n }\n }\n return void 0;\n }\n function tryGetFunctionLikeBodyCompletionContainer(contextToken2) {\n if (contextToken2) {\n let prev;\n const container = findAncestor(contextToken2.parent, (node2) => {\n if (isClassLike(node2)) {\n return \"quit\";\n }\n if (isFunctionLikeDeclaration(node2) && prev === node2.body) {\n return true;\n }\n prev = node2;\n return false;\n });\n return container && container;\n }\n }\n function tryGetContainingJsxElement(contextToken2) {\n if (contextToken2) {\n const parent2 = contextToken2.parent;\n switch (contextToken2.kind) {\n case 32 /* GreaterThanToken */:\n // End of a type argument list\n case 31 /* LessThanSlashToken */:\n case 44 /* SlashToken */:\n case 80 /* Identifier */:\n case 212 /* PropertyAccessExpression */:\n case 293 /* JsxAttributes */:\n case 292 /* JsxAttribute */:\n case 294 /* JsxSpreadAttribute */:\n if (parent2 && (parent2.kind === 286 /* JsxSelfClosingElement */ || parent2.kind === 287 /* JsxOpeningElement */)) {\n if (contextToken2.kind === 32 /* GreaterThanToken */) {\n const precedingToken = findPrecedingToken(\n contextToken2.pos,\n sourceFile,\n /*startNode*/\n void 0\n );\n if (!parent2.typeArguments || precedingToken && precedingToken.kind === 44 /* SlashToken */) break;\n }\n return parent2;\n } else if (parent2.kind === 292 /* JsxAttribute */) {\n return parent2.parent.parent;\n }\n break;\n // The context token is the closing } or \" of an attribute, which means\n // its parent is a JsxExpression, whose parent is a JsxAttribute,\n // whose parent is a JsxOpeningLikeElement\n case 11 /* StringLiteral */:\n if (parent2 && (parent2.kind === 292 /* JsxAttribute */ || parent2.kind === 294 /* JsxSpreadAttribute */)) {\n return parent2.parent.parent;\n }\n break;\n case 20 /* CloseBraceToken */:\n if (parent2 && parent2.kind === 295 /* JsxExpression */ && parent2.parent && parent2.parent.kind === 292 /* JsxAttribute */) {\n return parent2.parent.parent.parent;\n }\n if (parent2 && parent2.kind === 294 /* JsxSpreadAttribute */) {\n return parent2.parent.parent;\n }\n break;\n }\n }\n return void 0;\n }\n function isInDifferentLineThanContextToken(contextToken2, position2) {\n return sourceFile.getLineEndOfPosition(contextToken2.getEnd()) < position2;\n }\n function isSolelyIdentifierDefinitionLocation(contextToken2) {\n const parent2 = contextToken2.parent;\n const containingNodeKind = parent2.kind;\n switch (contextToken2.kind) {\n case 28 /* CommaToken */:\n return containingNodeKind === 261 /* VariableDeclaration */ || isVariableDeclarationListButNotTypeArgument(contextToken2) || containingNodeKind === 244 /* VariableStatement */ || containingNodeKind === 267 /* EnumDeclaration */ || // enum a { foo, |\n isFunctionLikeButNotConstructor(containingNodeKind) || containingNodeKind === 265 /* InterfaceDeclaration */ || // interface A= contextToken2.pos;\n case 25 /* DotToken */:\n return containingNodeKind === 208 /* ArrayBindingPattern */;\n // var [.|\n case 59 /* ColonToken */:\n return containingNodeKind === 209 /* BindingElement */;\n // var {x :html|\n case 23 /* OpenBracketToken */:\n return containingNodeKind === 208 /* ArrayBindingPattern */;\n // var [x|\n case 21 /* OpenParenToken */:\n return containingNodeKind === 300 /* CatchClause */ || isFunctionLikeButNotConstructor(containingNodeKind);\n case 19 /* OpenBraceToken */:\n return containingNodeKind === 267 /* EnumDeclaration */;\n // enum a { |\n case 30 /* LessThanToken */:\n return containingNodeKind === 264 /* ClassDeclaration */ || // class A< |\n containingNodeKind === 232 /* ClassExpression */ || // var C = class D< |\n containingNodeKind === 265 /* InterfaceDeclaration */ || // interface A< |\n containingNodeKind === 266 /* TypeAliasDeclaration */ || // type List< |\n isFunctionLikeKind(containingNodeKind);\n case 126 /* StaticKeyword */:\n return containingNodeKind === 173 /* PropertyDeclaration */ && !isClassLike(parent2.parent);\n case 26 /* DotDotDotToken */:\n return containingNodeKind === 170 /* Parameter */ || !!parent2.parent && parent2.parent.kind === 208 /* ArrayBindingPattern */;\n // var [...z|\n case 125 /* PublicKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n return containingNodeKind === 170 /* Parameter */ && !isConstructorDeclaration(parent2.parent);\n case 130 /* AsKeyword */:\n return containingNodeKind === 277 /* ImportSpecifier */ || containingNodeKind === 282 /* ExportSpecifier */ || containingNodeKind === 275 /* NamespaceImport */;\n case 139 /* GetKeyword */:\n case 153 /* SetKeyword */:\n return !isFromObjectTypeDeclaration(contextToken2);\n case 80 /* Identifier */: {\n if ((containingNodeKind === 277 /* ImportSpecifier */ || containingNodeKind === 282 /* ExportSpecifier */) && contextToken2 === parent2.name && contextToken2.text === \"type\") {\n return false;\n }\n const ancestorVariableDeclaration = findAncestor(\n contextToken2.parent,\n isVariableDeclaration\n );\n if (ancestorVariableDeclaration && isInDifferentLineThanContextToken(contextToken2, position)) {\n return false;\n }\n break;\n }\n case 86 /* ClassKeyword */:\n case 94 /* EnumKeyword */:\n case 120 /* InterfaceKeyword */:\n case 100 /* FunctionKeyword */:\n case 115 /* VarKeyword */:\n case 102 /* ImportKeyword */:\n case 121 /* LetKeyword */:\n case 87 /* ConstKeyword */:\n case 140 /* InferKeyword */:\n return true;\n case 156 /* TypeKeyword */:\n return containingNodeKind !== 277 /* ImportSpecifier */;\n case 42 /* AsteriskToken */:\n return isFunctionLike(contextToken2.parent) && !isMethodDeclaration(contextToken2.parent);\n }\n if (isClassMemberCompletionKeyword(keywordForNode(contextToken2)) && isFromObjectTypeDeclaration(contextToken2)) {\n return false;\n }\n if (isConstructorParameterCompletion(contextToken2)) {\n if (!isIdentifier(contextToken2) || isParameterPropertyModifier(keywordForNode(contextToken2)) || isCurrentlyEditingNode(contextToken2)) {\n return false;\n }\n }\n switch (keywordForNode(contextToken2)) {\n case 128 /* AbstractKeyword */:\n case 86 /* ClassKeyword */:\n case 87 /* ConstKeyword */:\n case 138 /* DeclareKeyword */:\n case 94 /* EnumKeyword */:\n case 100 /* FunctionKeyword */:\n case 120 /* InterfaceKeyword */:\n case 121 /* LetKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 125 /* PublicKeyword */:\n case 126 /* StaticKeyword */:\n case 115 /* VarKeyword */:\n return true;\n case 134 /* AsyncKeyword */:\n return isPropertyDeclaration(contextToken2.parent);\n }\n const ancestorClassLike = findAncestor(contextToken2.parent, isClassLike);\n if (ancestorClassLike && contextToken2 === previousToken && isPreviousPropertyDeclarationTerminated(contextToken2, position)) {\n return false;\n }\n const ancestorPropertyDeclaraion = getAncestor(contextToken2.parent, 173 /* PropertyDeclaration */);\n if (ancestorPropertyDeclaraion && contextToken2 !== previousToken && isClassLike(previousToken.parent.parent) && position <= previousToken.end) {\n if (isPreviousPropertyDeclarationTerminated(contextToken2, previousToken.end)) {\n return false;\n } else if (contextToken2.kind !== 64 /* EqualsToken */ && (isInitializedProperty(ancestorPropertyDeclaraion) || hasType(ancestorPropertyDeclaraion))) {\n return true;\n }\n }\n return isDeclarationName(contextToken2) && !isShorthandPropertyAssignment(contextToken2.parent) && !isJsxAttribute(contextToken2.parent) && !((isClassLike(contextToken2.parent) || isInterfaceDeclaration(contextToken2.parent) || isTypeParameterDeclaration(contextToken2.parent)) && (contextToken2 !== previousToken || position > previousToken.end));\n }\n function isPreviousPropertyDeclarationTerminated(contextToken2, position2) {\n return contextToken2.kind !== 64 /* EqualsToken */ && (contextToken2.kind === 27 /* SemicolonToken */ || !positionsAreOnSameLine(contextToken2.end, position2, sourceFile));\n }\n function isFunctionLikeButNotConstructor(kind) {\n return isFunctionLikeKind(kind) && kind !== 177 /* Constructor */;\n }\n function isDotOfNumericLiteral(contextToken2) {\n if (contextToken2.kind === 9 /* NumericLiteral */) {\n const text = contextToken2.getFullText();\n return text.charAt(text.length - 1) === \".\";\n }\n return false;\n }\n function isVariableDeclarationListButNotTypeArgument(node2) {\n return node2.parent.kind === 262 /* VariableDeclarationList */ && !isPossiblyTypeArgumentPosition(node2, sourceFile, typeChecker);\n }\n function filterObjectMembersList(contextualMemberSymbols, existingMembers) {\n if (existingMembers.length === 0) {\n return contextualMemberSymbols;\n }\n const membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set();\n const existingMemberNames = /* @__PURE__ */ new Set();\n for (const m of existingMembers) {\n if (m.kind !== 304 /* PropertyAssignment */ && m.kind !== 305 /* ShorthandPropertyAssignment */ && m.kind !== 209 /* BindingElement */ && m.kind !== 175 /* MethodDeclaration */ && m.kind !== 178 /* GetAccessor */ && m.kind !== 179 /* SetAccessor */ && m.kind !== 306 /* SpreadAssignment */) {\n continue;\n }\n if (isCurrentlyEditingNode(m)) {\n continue;\n }\n let existingName;\n if (isSpreadAssignment(m)) {\n setMembersDeclaredBySpreadAssignment(m, membersDeclaredBySpreadAssignment);\n } else if (isBindingElement(m) && m.propertyName) {\n if (m.propertyName.kind === 80 /* Identifier */) {\n existingName = m.propertyName.escapedText;\n }\n } else {\n const name = getNameOfDeclaration(m);\n existingName = name && isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : void 0;\n }\n if (existingName !== void 0) {\n existingMemberNames.add(existingName);\n }\n }\n const filteredSymbols = contextualMemberSymbols.filter((m) => !existingMemberNames.has(m.escapedName));\n setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);\n return filteredSymbols;\n }\n function setMembersDeclaredBySpreadAssignment(declaration, membersDeclaredBySpreadAssignment) {\n const expression = declaration.expression;\n const symbol = typeChecker.getSymbolAtLocation(expression);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, expression);\n const properties = type && type.properties;\n if (properties) {\n properties.forEach((property) => {\n membersDeclaredBySpreadAssignment.add(property.name);\n });\n }\n }\n function setSortTextToOptionalMember() {\n symbols.forEach((m) => {\n if (m.flags & 16777216 /* Optional */) {\n const symbolId = getSymbolId(m);\n symbolToSortTextMap[symbolId] = symbolToSortTextMap[symbolId] ?? SortText.OptionalMember;\n }\n });\n }\n function setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, contextualMemberSymbols) {\n if (membersDeclaredBySpreadAssignment.size === 0) {\n return;\n }\n for (const contextualMemberSymbol of contextualMemberSymbols) {\n if (membersDeclaredBySpreadAssignment.has(contextualMemberSymbol.name)) {\n symbolToSortTextMap[getSymbolId(contextualMemberSymbol)] = SortText.MemberDeclaredBySpreadAssignment;\n }\n }\n }\n function transformObjectLiteralMembersSortText(start2) {\n for (let i = start2; i < symbols.length; i++) {\n const symbol = symbols[i];\n const symbolId = getSymbolId(symbol);\n const origin = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i];\n const target = getEmitScriptTarget(compilerOptions);\n const displayName = getCompletionEntryDisplayNameForSymbol(\n symbol,\n target,\n origin,\n 0 /* ObjectPropertyDeclaration */,\n /*jsxIdentifierExpected*/\n false\n );\n if (displayName) {\n const originalSortText = symbolToSortTextMap[symbolId] ?? SortText.LocationPriority;\n const { name } = displayName;\n symbolToSortTextMap[symbolId] = SortText.ObjectLiteralProperty(originalSortText, name);\n }\n }\n }\n function filterClassMembersList(baseSymbols, existingMembers, currentClassElementModifierFlags) {\n const existingMemberNames = /* @__PURE__ */ new Set();\n for (const m of existingMembers) {\n if (m.kind !== 173 /* PropertyDeclaration */ && m.kind !== 175 /* MethodDeclaration */ && m.kind !== 178 /* GetAccessor */ && m.kind !== 179 /* SetAccessor */) {\n continue;\n }\n if (isCurrentlyEditingNode(m)) {\n continue;\n }\n if (hasEffectiveModifier(m, 2 /* Private */)) {\n continue;\n }\n if (isStatic(m) !== !!(currentClassElementModifierFlags & 256 /* Static */)) {\n continue;\n }\n const existingName = getPropertyNameForPropertyNameNode(m.name);\n if (existingName) {\n existingMemberNames.add(existingName);\n }\n }\n return baseSymbols.filter(\n (propertySymbol) => !existingMemberNames.has(propertySymbol.escapedName) && !!propertySymbol.declarations && !(getDeclarationModifierFlagsFromSymbol(propertySymbol) & 2 /* Private */) && !(propertySymbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(propertySymbol.valueDeclaration))\n );\n }\n function filterJsxAttributes(symbols2, attributes) {\n const seenNames = /* @__PURE__ */ new Set();\n const membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set();\n for (const attr of attributes) {\n if (isCurrentlyEditingNode(attr)) {\n continue;\n }\n if (attr.kind === 292 /* JsxAttribute */) {\n seenNames.add(getEscapedTextOfJsxAttributeName(attr.name));\n } else if (isJsxSpreadAttribute(attr)) {\n setMembersDeclaredBySpreadAssignment(attr, membersDeclaredBySpreadAssignment);\n }\n }\n const filteredSymbols = symbols2.filter((a) => !seenNames.has(a.escapedName));\n setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);\n return filteredSymbols;\n }\n function isCurrentlyEditingNode(node2) {\n return node2.getStart(sourceFile) <= position && position <= node2.getEnd();\n }\n}\nfunction tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile) {\n var _a;\n if (contextToken) {\n const { parent: parent2 } = contextToken;\n switch (contextToken.kind) {\n case 19 /* OpenBraceToken */:\n // const x = { |\n case 28 /* CommaToken */:\n if (isObjectLiteralExpression(parent2) || isObjectBindingPattern(parent2)) {\n return parent2;\n }\n break;\n case 42 /* AsteriskToken */:\n return isMethodDeclaration(parent2) ? tryCast(parent2.parent, isObjectLiteralExpression) : void 0;\n case 134 /* AsyncKeyword */:\n return tryCast(parent2.parent, isObjectLiteralExpression);\n case 80 /* Identifier */:\n if (contextToken.text === \"async\" && isShorthandPropertyAssignment(contextToken.parent)) {\n return contextToken.parent.parent;\n } else {\n if (isObjectLiteralExpression(contextToken.parent.parent) && (isSpreadAssignment(contextToken.parent) || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line)) {\n return contextToken.parent.parent;\n }\n const ancestorNode2 = findAncestor(parent2, isPropertyAssignment);\n if ((ancestorNode2 == null ? void 0 : ancestorNode2.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode2.parent)) {\n return ancestorNode2.parent;\n }\n }\n break;\n default:\n if (((_a = parent2.parent) == null ? void 0 : _a.parent) && (isMethodDeclaration(parent2.parent) || isGetAccessorDeclaration(parent2.parent) || isSetAccessorDeclaration(parent2.parent)) && isObjectLiteralExpression(parent2.parent.parent)) {\n return parent2.parent.parent;\n }\n if (isSpreadAssignment(parent2) && isObjectLiteralExpression(parent2.parent)) {\n return parent2.parent;\n }\n const ancestorNode = findAncestor(parent2, isPropertyAssignment);\n if (contextToken.kind !== 59 /* ColonToken */ && (ancestorNode == null ? void 0 : ancestorNode.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode.parent)) {\n return ancestorNode.parent;\n }\n }\n }\n return void 0;\n}\nfunction getRelevantTokens(position, sourceFile) {\n const previousToken = findPrecedingToken(position, sourceFile);\n if (previousToken && position <= previousToken.end && (isMemberName(previousToken) || isKeyword(previousToken.kind))) {\n const contextToken = findPrecedingToken(\n previousToken.getFullStart(),\n sourceFile,\n /*startNode*/\n void 0\n );\n return { contextToken, previousToken };\n }\n return { contextToken: previousToken, previousToken };\n}\nfunction getAutoImportSymbolFromCompletionEntryData(name, data, program, host) {\n const containingProgram = data.isPackageJsonImport ? host.getPackageJsonAutoImportProvider() : program;\n const checker = containingProgram.getTypeChecker();\n const moduleSymbol = data.ambientModuleName ? checker.tryFindAmbientModule(data.ambientModuleName) : data.fileName ? checker.getMergedSymbol(Debug.checkDefined(containingProgram.getSourceFile(data.fileName)).symbol) : void 0;\n if (!moduleSymbol) return void 0;\n let symbol = data.exportName === \"export=\" /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(data.exportName, moduleSymbol);\n if (!symbol) return void 0;\n const isDefaultExport = data.exportName === \"default\" /* Default */;\n symbol = isDefaultExport && getLocalSymbolForExportDefault(symbol) || symbol;\n return { symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };\n}\nfunction getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {\n if (originIsIgnore(origin)) {\n return void 0;\n }\n const name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;\n if (name === void 0 || symbol.flags & 1536 /* Module */ && isSingleOrDoubleQuote(name.charCodeAt(0)) || isKnownSymbol(symbol)) {\n return void 0;\n }\n const validNameResult = { name, needsConvertPropertyAccess: false };\n if (isIdentifierText(name, target, jsxIdentifierExpected ? 1 /* JSX */ : 0 /* Standard */) || symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) {\n return validNameResult;\n }\n if (symbol.flags & 2097152 /* Alias */) {\n return { name, needsConvertPropertyAccess: true };\n }\n switch (kind) {\n case 3 /* MemberLike */:\n return originIsComputedPropertyName(origin) ? { name: origin.symbolName, needsConvertPropertyAccess: false } : void 0;\n case 0 /* ObjectPropertyDeclaration */:\n return { name: JSON.stringify(name), needsConvertPropertyAccess: false };\n case 2 /* PropertyAccess */:\n case 1 /* Global */:\n return name.charCodeAt(0) === 32 /* space */ ? void 0 : { name, needsConvertPropertyAccess: true };\n case 5 /* None */:\n case 4 /* String */:\n return validNameResult;\n default:\n Debug.assertNever(kind);\n }\n}\nvar _keywordCompletions = [];\nvar allKeywordsCompletions = memoize(() => {\n const res = [];\n for (let i = 83 /* FirstKeyword */; i <= 166 /* LastKeyword */; i++) {\n res.push({\n name: tokenToString(i),\n kind: \"keyword\" /* keyword */,\n kindModifiers: \"\" /* none */,\n sortText: SortText.GlobalsOrKeywords\n });\n }\n return res;\n});\nfunction getKeywordCompletions(keywordFilter, filterOutTsOnlyKeywords) {\n if (!filterOutTsOnlyKeywords) return getTypescriptKeywordCompletions(keywordFilter);\n const index = keywordFilter + 8 /* Last */ + 1;\n return _keywordCompletions[index] || (_keywordCompletions[index] = getTypescriptKeywordCompletions(keywordFilter).filter((entry) => !isTypeScriptOnlyKeyword(stringToToken(entry.name))));\n}\nfunction getTypescriptKeywordCompletions(keywordFilter) {\n return _keywordCompletions[keywordFilter] || (_keywordCompletions[keywordFilter] = allKeywordsCompletions().filter((entry) => {\n const kind = stringToToken(entry.name);\n switch (keywordFilter) {\n case 0 /* None */:\n return false;\n case 1 /* All */:\n return isFunctionLikeBodyKeyword(kind) || kind === 138 /* DeclareKeyword */ || kind === 144 /* ModuleKeyword */ || kind === 156 /* TypeKeyword */ || kind === 145 /* NamespaceKeyword */ || kind === 128 /* AbstractKeyword */ || isTypeKeyword(kind) && kind !== 157 /* UndefinedKeyword */;\n case 5 /* FunctionLikeBodyKeywords */:\n return isFunctionLikeBodyKeyword(kind);\n case 2 /* ClassElementKeywords */:\n return isClassMemberCompletionKeyword(kind);\n case 3 /* InterfaceElementKeywords */:\n return isInterfaceOrTypeLiteralCompletionKeyword(kind);\n case 4 /* ConstructorParameterKeywords */:\n return isParameterPropertyModifier(kind);\n case 6 /* TypeAssertionKeywords */:\n return isTypeKeyword(kind) || kind === 87 /* ConstKeyword */;\n case 7 /* TypeKeywords */:\n return isTypeKeyword(kind);\n case 8 /* TypeKeyword */:\n return kind === 156 /* TypeKeyword */;\n default:\n return Debug.assertNever(keywordFilter);\n }\n }));\n}\nfunction isTypeScriptOnlyKeyword(kind) {\n switch (kind) {\n case 128 /* AbstractKeyword */:\n case 133 /* AnyKeyword */:\n case 163 /* BigIntKeyword */:\n case 136 /* BooleanKeyword */:\n case 138 /* DeclareKeyword */:\n case 94 /* EnumKeyword */:\n case 162 /* GlobalKeyword */:\n case 119 /* ImplementsKeyword */:\n case 140 /* InferKeyword */:\n case 120 /* InterfaceKeyword */:\n case 142 /* IsKeyword */:\n case 143 /* KeyOfKeyword */:\n case 144 /* ModuleKeyword */:\n case 145 /* NamespaceKeyword */:\n case 146 /* NeverKeyword */:\n case 150 /* NumberKeyword */:\n case 151 /* ObjectKeyword */:\n case 164 /* OverrideKeyword */:\n case 123 /* PrivateKeyword */:\n case 124 /* ProtectedKeyword */:\n case 125 /* PublicKeyword */:\n case 148 /* ReadonlyKeyword */:\n case 154 /* StringKeyword */:\n case 155 /* SymbolKeyword */:\n case 156 /* TypeKeyword */:\n case 158 /* UniqueKeyword */:\n case 159 /* UnknownKeyword */:\n return true;\n default:\n return false;\n }\n}\nfunction isInterfaceOrTypeLiteralCompletionKeyword(kind) {\n return kind === 148 /* ReadonlyKeyword */;\n}\nfunction isClassMemberCompletionKeyword(kind) {\n switch (kind) {\n case 128 /* AbstractKeyword */:\n case 129 /* AccessorKeyword */:\n case 137 /* ConstructorKeyword */:\n case 139 /* GetKeyword */:\n case 153 /* SetKeyword */:\n case 134 /* AsyncKeyword */:\n case 138 /* DeclareKeyword */:\n case 164 /* OverrideKeyword */:\n return true;\n default:\n return isClassMemberModifier(kind);\n }\n}\nfunction isFunctionLikeBodyKeyword(kind) {\n return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 160 /* UsingKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);\n}\nfunction keywordForNode(node) {\n return isIdentifier(node) ? identifierToKeywordKind(node) ?? 0 /* Unknown */ : node.kind;\n}\nfunction getContextualKeywords(contextToken, position) {\n const entries = [];\n if (contextToken) {\n const file = contextToken.getSourceFile();\n const parent2 = contextToken.parent;\n const tokenLine = file.getLineAndCharacterOfPosition(contextToken.end).line;\n const currentLine = file.getLineAndCharacterOfPosition(position).line;\n if ((isImportDeclaration(parent2) || isExportDeclaration(parent2) && parent2.moduleSpecifier) && contextToken === parent2.moduleSpecifier && tokenLine === currentLine) {\n entries.push({\n name: tokenToString(132 /* AssertKeyword */),\n kind: \"keyword\" /* keyword */,\n kindModifiers: \"\" /* none */,\n sortText: SortText.GlobalsOrKeywords\n });\n }\n }\n return entries;\n}\nfunction getJsDocTagAtPosition(node, position) {\n return findAncestor(node, (n) => isJSDocTag(n) && rangeContainsPosition(n, position) ? true : isJSDoc(n) ? \"quit\" : false);\n}\nfunction getPropertiesForObjectExpression(contextualType, completionsType, obj, checker) {\n const hasCompletionsType = completionsType && completionsType !== contextualType;\n const promiseFilteredContextualType = checker.getUnionType(\n filter(\n contextualType.flags & 1048576 /* Union */ ? contextualType.types : [contextualType],\n (t) => !checker.getPromisedTypeOfPromise(t)\n )\n );\n const type = hasCompletionsType && !(completionsType.flags & 3 /* AnyOrUnknown */) ? checker.getUnionType([promiseFilteredContextualType, completionsType]) : promiseFilteredContextualType;\n const properties = getApparentProperties(type, obj, checker);\n return type.isClass() && containsNonPublicProperties(properties) ? [] : hasCompletionsType ? filter(properties, hasDeclarationOtherThanSelf) : properties;\n function hasDeclarationOtherThanSelf(member) {\n if (!length(member.declarations)) return true;\n return some(member.declarations, (decl) => decl.parent !== obj);\n }\n}\nfunction getApparentProperties(type, node, checker) {\n if (!type.isUnion()) return type.getApparentProperties();\n return checker.getAllPossiblePropertiesOfTypes(filter(type.types, (memberType) => !(memberType.flags & 402784252 /* Primitive */ || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties()))));\n}\nfunction containsNonPublicProperties(props) {\n return some(props, (p) => !!(getDeclarationModifierFlagsFromSymbol(p) & 6 /* NonPublicAccessibilityModifier */));\n}\nfunction getPropertiesForCompletion(type, checker) {\n return type.isUnion() ? Debug.checkEachDefined(checker.getAllPossiblePropertiesOfTypes(type.types), \"getAllPossiblePropertiesOfTypes() should all be defined\") : Debug.checkEachDefined(type.getApparentProperties(), \"getApparentProperties() should all be defined\");\n}\nfunction tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position) {\n switch (location.kind) {\n case 353 /* SyntaxList */:\n return tryCast(location.parent, isObjectTypeDeclaration);\n case 1 /* EndOfFileToken */:\n const cls = tryCast(lastOrUndefined(cast(location.parent, isSourceFile).statements), isObjectTypeDeclaration);\n if (cls && !findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile)) {\n return cls;\n }\n break;\n case 81 /* PrivateIdentifier */:\n if (tryCast(location.parent, isPropertyDeclaration)) {\n return findAncestor(location, isClassLike);\n }\n break;\n case 80 /* Identifier */: {\n const originalKeywordKind = identifierToKeywordKind(location);\n if (originalKeywordKind) {\n return void 0;\n }\n if (isPropertyDeclaration(location.parent) && location.parent.initializer === location) {\n return void 0;\n }\n if (isFromObjectTypeDeclaration(location)) {\n return findAncestor(location, isObjectTypeDeclaration);\n }\n }\n }\n if (!contextToken) return void 0;\n if (location.kind === 137 /* ConstructorKeyword */ || isIdentifier(contextToken) && isPropertyDeclaration(contextToken.parent) && isClassLike(location)) {\n return findAncestor(contextToken, isClassLike);\n }\n switch (contextToken.kind) {\n case 64 /* EqualsToken */:\n return void 0;\n case 27 /* SemicolonToken */:\n // class c {getValue(): number; | }\n case 20 /* CloseBraceToken */:\n return isFromObjectTypeDeclaration(location) && location.parent.name === location ? location.parent.parent : tryCast(location, isObjectTypeDeclaration);\n case 19 /* OpenBraceToken */:\n // class c { |\n case 28 /* CommaToken */:\n return tryCast(contextToken.parent, isObjectTypeDeclaration);\n default:\n if (isObjectTypeDeclaration(location)) {\n if (getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n return location;\n }\n const isValidKeyword = isClassLike(contextToken.parent.parent) ? isClassMemberCompletionKeyword : isInterfaceOrTypeLiteralCompletionKeyword;\n return isValidKeyword(contextToken.kind) || contextToken.kind === 42 /* AsteriskToken */ || isIdentifier(contextToken) && isValidKeyword(identifierToKeywordKind(contextToken) ?? 0 /* Unknown */) ? contextToken.parent.parent : void 0;\n }\n return void 0;\n }\n}\nfunction tryGetTypeLiteralNode(node) {\n if (!node) return void 0;\n const parent2 = node.parent;\n switch (node.kind) {\n case 19 /* OpenBraceToken */:\n if (isTypeLiteralNode(parent2)) {\n return parent2;\n }\n break;\n case 27 /* SemicolonToken */:\n case 28 /* CommaToken */:\n case 80 /* Identifier */:\n if (parent2.kind === 172 /* PropertySignature */ && isTypeLiteralNode(parent2.parent)) {\n return parent2.parent;\n }\n break;\n }\n return void 0;\n}\nfunction getConstraintOfTypeArgumentProperty(node, checker) {\n if (!node) return void 0;\n if (isTypeNode(node) && isTypeReferenceType(node.parent)) {\n return checker.getTypeArgumentConstraint(node);\n }\n const t = getConstraintOfTypeArgumentProperty(node.parent, checker);\n if (!t) return void 0;\n switch (node.kind) {\n case 172 /* PropertySignature */:\n return checker.getTypeOfPropertyOfContextualType(t, node.symbol.escapedName);\n case 194 /* IntersectionType */:\n case 188 /* TypeLiteral */:\n case 193 /* UnionType */:\n return t;\n }\n}\nfunction isFromObjectTypeDeclaration(node) {\n return node.parent && isClassOrTypeElement(node.parent) && isObjectTypeDeclaration(node.parent.parent);\n}\nfunction isValidTrigger(sourceFile, triggerCharacter, contextToken, position) {\n switch (triggerCharacter) {\n case \".\":\n case \"@\":\n return true;\n case '\"':\n case \"'\":\n case \"`\":\n return !!contextToken && isStringLiteralOrTemplate(contextToken) && position === contextToken.getStart(sourceFile) + 1;\n case \"#\":\n return !!contextToken && isPrivateIdentifier(contextToken) && !!getContainingClass(contextToken);\n case \"<\":\n return !!contextToken && contextToken.kind === 30 /* LessThanToken */ && (!isBinaryExpression(contextToken.parent) || binaryExpressionMayBeOpenTag(contextToken.parent));\n case \"/\":\n return !!contextToken && (isStringLiteralLike(contextToken) ? !!tryGetImportFromModuleSpecifier(contextToken) : contextToken.kind === 31 /* LessThanSlashToken */ && isJsxClosingElement(contextToken.parent));\n case \" \":\n return !!contextToken && isImportKeyword(contextToken) && contextToken.parent.kind === 308 /* SourceFile */;\n default:\n return Debug.assertNever(triggerCharacter);\n }\n}\nfunction binaryExpressionMayBeOpenTag({ left }) {\n return nodeIsMissing(left);\n}\nfunction isProbablyGlobalType(type, sourceFile, checker) {\n const selfSymbol = checker.resolveName(\n \"self\",\n /*location*/\n void 0,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n if (selfSymbol && checker.getTypeOfSymbolAtLocation(selfSymbol, sourceFile) === type) {\n return true;\n }\n const globalSymbol = checker.resolveName(\n \"global\",\n /*location*/\n void 0,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n if (globalSymbol && checker.getTypeOfSymbolAtLocation(globalSymbol, sourceFile) === type) {\n return true;\n }\n const globalThisSymbol = checker.resolveName(\n \"globalThis\",\n /*location*/\n void 0,\n 111551 /* Value */,\n /*excludeGlobals*/\n false\n );\n if (globalThisSymbol && checker.getTypeOfSymbolAtLocation(globalThisSymbol, sourceFile) === type) {\n return true;\n }\n return false;\n}\nfunction isStaticProperty(symbol) {\n return !!(symbol.valueDeclaration && getEffectiveModifierFlags(symbol.valueDeclaration) & 256 /* Static */ && isClassLike(symbol.valueDeclaration.parent));\n}\nfunction tryGetObjectLiteralContextualType(node, typeChecker) {\n const type = typeChecker.getContextualType(node);\n if (type) {\n return type;\n }\n const parent2 = walkUpParenthesizedExpressions(node.parent);\n if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && node === parent2.left) {\n return typeChecker.getTypeAtLocation(parent2);\n }\n if (isExpression(parent2)) {\n return typeChecker.getContextualType(parent2);\n }\n return void 0;\n}\nfunction getImportStatementCompletionInfo(contextToken, sourceFile) {\n var _a, _b, _c;\n let keywordCompletion;\n let isKeywordOnlyCompletion = false;\n const candidate = getCandidate();\n return {\n isKeywordOnlyCompletion,\n keywordCompletion,\n isNewIdentifierLocation: !!(candidate || keywordCompletion === 156 /* TypeKeyword */),\n isTopLevelTypeOnly: !!((_b = (_a = tryCast(candidate, isImportDeclaration)) == null ? void 0 : _a.importClause) == null ? void 0 : _b.isTypeOnly) || !!((_c = tryCast(candidate, isImportEqualsDeclaration)) == null ? void 0 : _c.isTypeOnly),\n couldBeTypeOnlyImportSpecifier: !!candidate && couldBeTypeOnlyImportSpecifier(candidate, contextToken),\n replacementSpan: getSingleLineReplacementSpanForImportCompletionNode(candidate)\n };\n function getCandidate() {\n const parent2 = contextToken.parent;\n if (isImportEqualsDeclaration(parent2)) {\n const lastToken = parent2.getLastToken(sourceFile);\n if (isIdentifier(contextToken) && lastToken !== contextToken) {\n keywordCompletion = 161 /* FromKeyword */;\n isKeywordOnlyCompletion = true;\n return void 0;\n }\n keywordCompletion = contextToken.kind === 156 /* TypeKeyword */ ? void 0 : 156 /* TypeKeyword */;\n return isModuleSpecifierMissingOrEmpty(parent2.moduleReference) ? parent2 : void 0;\n }\n if (couldBeTypeOnlyImportSpecifier(parent2, contextToken) && canCompleteFromNamedBindings(parent2.parent)) {\n return parent2;\n }\n if (isNamedImports(parent2) || isNamespaceImport(parent2)) {\n if (!parent2.parent.isTypeOnly && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 102 /* ImportKeyword */ || contextToken.kind === 28 /* CommaToken */)) {\n keywordCompletion = 156 /* TypeKeyword */;\n }\n if (canCompleteFromNamedBindings(parent2)) {\n if (contextToken.kind === 20 /* CloseBraceToken */ || contextToken.kind === 80 /* Identifier */) {\n isKeywordOnlyCompletion = true;\n keywordCompletion = 161 /* FromKeyword */;\n } else {\n return parent2.parent.parent;\n }\n }\n return void 0;\n }\n if (isExportDeclaration(parent2) && contextToken.kind === 42 /* AsteriskToken */ || isNamedExports(parent2) && contextToken.kind === 20 /* CloseBraceToken */) {\n isKeywordOnlyCompletion = true;\n keywordCompletion = 161 /* FromKeyword */;\n return void 0;\n }\n if (isImportKeyword(contextToken) && isSourceFile(parent2)) {\n keywordCompletion = 156 /* TypeKeyword */;\n return contextToken;\n }\n if (isImportKeyword(contextToken) && isImportDeclaration(parent2)) {\n keywordCompletion = 156 /* TypeKeyword */;\n return isModuleSpecifierMissingOrEmpty(parent2.moduleSpecifier) ? parent2 : void 0;\n }\n return void 0;\n }\n}\nfunction getSingleLineReplacementSpanForImportCompletionNode(node) {\n var _a;\n if (!node) return void 0;\n const top = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration, isJSDocImportTag)) ?? node;\n const sourceFile = top.getSourceFile();\n if (rangeIsOnSingleLine(top, sourceFile)) {\n return createTextSpanFromNode(top, sourceFile);\n }\n Debug.assert(top.kind !== 102 /* ImportKeyword */ && top.kind !== 277 /* ImportSpecifier */);\n const potentialSplitPoint = top.kind === 273 /* ImportDeclaration */ || top.kind === 352 /* JSDocImportTag */ ? getPotentiallyInvalidImportSpecifier((_a = top.importClause) == null ? void 0 : _a.namedBindings) ?? top.moduleSpecifier : top.moduleReference;\n const withoutModuleSpecifier = {\n pos: top.getFirstToken().getStart(),\n end: potentialSplitPoint.pos\n };\n if (rangeIsOnSingleLine(withoutModuleSpecifier, sourceFile)) {\n return createTextSpanFromRange(withoutModuleSpecifier);\n }\n}\nfunction getPotentiallyInvalidImportSpecifier(namedBindings) {\n var _a;\n return find(\n (_a = tryCast(namedBindings, isNamedImports)) == null ? void 0 : _a.elements,\n (e) => {\n var _a2;\n return !e.propertyName && isStringANonContextualKeyword(e.name.text) && ((_a2 = findPrecedingToken(e.name.pos, namedBindings.getSourceFile(), namedBindings)) == null ? void 0 : _a2.kind) !== 28 /* CommaToken */;\n }\n );\n}\nfunction couldBeTypeOnlyImportSpecifier(importSpecifier, contextToken) {\n return isImportSpecifier(importSpecifier) && (importSpecifier.isTypeOnly || contextToken === importSpecifier.name && isTypeKeywordTokenOrIdentifier(contextToken));\n}\nfunction canCompleteFromNamedBindings(namedBindings) {\n if (!isModuleSpecifierMissingOrEmpty(namedBindings.parent.parent.moduleSpecifier) || namedBindings.parent.name) {\n return false;\n }\n if (isNamedImports(namedBindings)) {\n const invalidNamedImport = getPotentiallyInvalidImportSpecifier(namedBindings);\n const validImports = invalidNamedImport ? namedBindings.elements.indexOf(invalidNamedImport) : namedBindings.elements.length;\n return validImports < 2;\n }\n return true;\n}\nfunction isModuleSpecifierMissingOrEmpty(specifier) {\n var _a;\n if (nodeIsMissing(specifier)) return true;\n return !((_a = tryCast(isExternalModuleReference(specifier) ? specifier.expression : specifier, isStringLiteralLike)) == null ? void 0 : _a.text);\n}\nfunction getClosestSymbolDeclaration(contextToken, location) {\n if (!contextToken) return;\n let closestDeclaration = findAncestor(contextToken, (node) => isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? \"quit\" : (isParameter(node) || isTypeParameterDeclaration(node)) && !isIndexSignatureDeclaration(node.parent));\n if (!closestDeclaration) {\n closestDeclaration = findAncestor(location, (node) => isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? \"quit\" : isVariableDeclaration(node));\n }\n return closestDeclaration;\n}\nfunction isInTypeParameterDefault(contextToken) {\n if (!contextToken) {\n return false;\n }\n let node = contextToken;\n let parent2 = contextToken.parent;\n while (parent2) {\n if (isTypeParameterDeclaration(parent2)) {\n return parent2.default === node || node.kind === 64 /* EqualsToken */;\n }\n node = parent2;\n parent2 = parent2.parent;\n }\n return false;\n}\nfunction isArrowFunctionBody(node) {\n return node.parent && isArrowFunction(node.parent) && (node.parent.body === node || // const a = () => /**/;\n node.kind === 39 /* EqualsGreaterThanToken */);\n}\nfunction symbolCanBeReferencedAtTypeLocation(symbol, checker, seenModules = /* @__PURE__ */ new Set()) {\n return nonAliasCanBeReferencedAtTypeLocation(symbol) || nonAliasCanBeReferencedAtTypeLocation(skipAlias(symbol.exportSymbol || symbol, checker));\n function nonAliasCanBeReferencedAtTypeLocation(symbol2) {\n return !!(symbol2.flags & 788968 /* Type */) || checker.isUnknownSymbol(symbol2) || !!(symbol2.flags & 1536 /* Module */) && addToSeen(seenModules, symbol2) && checker.getExportsOfModule(symbol2).some((e) => symbolCanBeReferencedAtTypeLocation(e, checker, seenModules));\n }\n}\nfunction isDeprecated(symbol, checker) {\n const declarations = skipAlias(symbol, checker).declarations;\n return !!length(declarations) && every(declarations, isDeprecatedDeclaration);\n}\nfunction charactersFuzzyMatchInString(identifierString, lowercaseCharacters) {\n if (lowercaseCharacters.length === 0) {\n return true;\n }\n let matchedFirstCharacter = false;\n let prevChar;\n let characterIndex = 0;\n const len = identifierString.length;\n for (let strIndex = 0; strIndex < len; strIndex++) {\n const strChar = identifierString.charCodeAt(strIndex);\n const testChar = lowercaseCharacters.charCodeAt(characterIndex);\n if (strChar === testChar || strChar === toUpperCharCode(testChar)) {\n matchedFirstCharacter || (matchedFirstCharacter = prevChar === void 0 || // Beginning of word\n 97 /* a */ <= prevChar && prevChar <= 122 /* z */ && 65 /* A */ <= strChar && strChar <= 90 /* Z */ || // camelCase transition\n prevChar === 95 /* _ */ && strChar !== 95 /* _ */);\n if (matchedFirstCharacter) {\n characterIndex++;\n }\n if (characterIndex === lowercaseCharacters.length) {\n return true;\n }\n }\n prevChar = strChar;\n }\n return false;\n}\nfunction toUpperCharCode(charCode) {\n if (97 /* a */ <= charCode && charCode <= 122 /* z */) {\n return charCode - 32;\n }\n return charCode;\n}\nfunction isContextualKeywordInAutoImportableExpressionSpace(keyword) {\n return keyword === \"abstract\" || keyword === \"async\" || keyword === \"await\" || keyword === \"declare\" || keyword === \"module\" || keyword === \"namespace\" || keyword === \"type\" || keyword === \"satisfies\" || keyword === \"as\";\n}\n\n// src/services/_namespaces/ts.Completions.StringCompletions.ts\nvar ts_Completions_StringCompletions_exports = {};\n__export(ts_Completions_StringCompletions_exports, {\n getStringLiteralCompletionDetails: () => getStringLiteralCompletionDetails,\n getStringLiteralCompletions: () => getStringLiteralCompletions\n});\n\n// src/services/stringCompletions.ts\nvar kindPrecedence = {\n [\"directory\" /* directory */]: 0,\n [\"script\" /* scriptElement */]: 1,\n [\"external module name\" /* externalModuleName */]: 2\n};\nfunction createNameAndKindSet() {\n const map2 = /* @__PURE__ */ new Map();\n function add(value) {\n const existing = map2.get(value.name);\n if (!existing || kindPrecedence[existing.kind] < kindPrecedence[value.kind]) {\n map2.set(value.name, value);\n }\n }\n return {\n add,\n has: map2.has.bind(map2),\n values: map2.values.bind(map2)\n };\n}\nfunction getStringLiteralCompletions(sourceFile, position, contextToken, options, host, program, log, preferences, includeSymbol) {\n if (isInReferenceComment(sourceFile, position)) {\n const entries = getTripleSlashReferenceCompletion(sourceFile, position, program, host, createModuleSpecifierResolutionHost(program, host));\n return entries && convertPathCompletions(entries);\n }\n if (isInString(sourceFile, position, contextToken)) {\n if (!contextToken || !isStringLiteralLike(contextToken)) return void 0;\n const entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program, host, preferences);\n return convertStringLiteralCompletions(entries, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol);\n }\n}\nfunction convertStringLiteralCompletions(completion, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol) {\n if (completion === void 0) {\n return void 0;\n }\n const optionalReplacementSpan = createTextSpanFromStringLiteralLikeContent(contextToken, position);\n switch (completion.kind) {\n case 0 /* Paths */:\n return convertPathCompletions(completion.paths);\n case 1 /* Properties */: {\n const entries = createSortedArray();\n getCompletionEntriesFromSymbols(\n completion.symbols,\n entries,\n contextToken,\n contextToken,\n sourceFile,\n position,\n sourceFile,\n host,\n program,\n 99 /* ESNext */,\n log,\n 4 /* String */,\n preferences,\n options,\n /*formatContext*/\n void 0,\n /*isTypeOnlyLocation*/\n void 0,\n /*propertyAccessToConvert*/\n void 0,\n /*jsxIdentifierExpected*/\n void 0,\n /*isJsxInitializer*/\n void 0,\n /*importStatementCompletion*/\n void 0,\n /*recommendedCompletion*/\n void 0,\n /*symbolToOriginInfoMap*/\n void 0,\n /*symbolToSortTextMap*/\n void 0,\n /*isJsxIdentifierExpected*/\n void 0,\n /*isRightOfOpenTag*/\n void 0,\n includeSymbol\n );\n return {\n isGlobalCompletion: false,\n isMemberCompletion: true,\n isNewIdentifierLocation: completion.hasIndexSignature,\n optionalReplacementSpan,\n entries,\n defaultCommitCharacters: getDefaultCommitCharacters(completion.hasIndexSignature)\n };\n }\n case 2 /* Types */: {\n const quoteChar = contextToken.kind === 15 /* NoSubstitutionTemplateLiteral */ ? 96 /* backtick */ : startsWith(getTextOfNode(contextToken), \"'\") ? 39 /* singleQuote */ : 34 /* doubleQuote */;\n const entries = completion.types.map((type) => ({\n name: escapeString(type.value, quoteChar),\n kindModifiers: \"\" /* none */,\n kind: \"string\" /* string */,\n sortText: SortText.LocationPriority,\n replacementSpan: getReplacementSpanForContextToken(contextToken, position),\n commitCharacters: []\n }));\n return {\n isGlobalCompletion: false,\n isMemberCompletion: false,\n isNewIdentifierLocation: completion.isNewIdentifier,\n optionalReplacementSpan,\n entries,\n defaultCommitCharacters: getDefaultCommitCharacters(completion.isNewIdentifier)\n };\n }\n default:\n return Debug.assertNever(completion);\n }\n}\nfunction getStringLiteralCompletionDetails(name, sourceFile, position, contextToken, program, host, cancellationToken, preferences) {\n if (!contextToken || !isStringLiteralLike(contextToken)) return void 0;\n const completions = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program, host, preferences);\n return completions && stringLiteralCompletionDetails(name, contextToken, completions, sourceFile, program.getTypeChecker(), cancellationToken);\n}\nfunction stringLiteralCompletionDetails(name, location, completion, sourceFile, checker, cancellationToken) {\n switch (completion.kind) {\n case 0 /* Paths */: {\n const match = find(completion.paths, (p) => p.name === name);\n return match && createCompletionDetails(name, kindModifiersFromExtension(match.extension), match.kind, [textPart(name)]);\n }\n case 1 /* Properties */: {\n const match = find(completion.symbols, (s) => s.name === name);\n return match && createCompletionDetailsForSymbol(match, match.name, checker, sourceFile, location, cancellationToken);\n }\n case 2 /* Types */:\n return find(completion.types, (t) => t.value === name) ? createCompletionDetails(name, \"\" /* none */, \"string\" /* string */, [textPart(name)]) : void 0;\n default:\n return Debug.assertNever(completion);\n }\n}\nfunction convertPathCompletions(pathCompletions) {\n const isGlobalCompletion = false;\n const isNewIdentifierLocation = true;\n const entries = pathCompletions.map(({ name, kind, span, extension }) => ({ name, kind, kindModifiers: kindModifiersFromExtension(extension), sortText: SortText.LocationPriority, replacementSpan: span }));\n return {\n isGlobalCompletion,\n isMemberCompletion: false,\n isNewIdentifierLocation,\n entries,\n defaultCommitCharacters: getDefaultCommitCharacters(isNewIdentifierLocation)\n };\n}\nfunction kindModifiersFromExtension(extension) {\n switch (extension) {\n case \".d.ts\" /* Dts */:\n return \".d.ts\" /* dtsModifier */;\n case \".js\" /* Js */:\n return \".js\" /* jsModifier */;\n case \".json\" /* Json */:\n return \".json\" /* jsonModifier */;\n case \".jsx\" /* Jsx */:\n return \".jsx\" /* jsxModifier */;\n case \".ts\" /* Ts */:\n return \".ts\" /* tsModifier */;\n case \".tsx\" /* Tsx */:\n return \".tsx\" /* tsxModifier */;\n case \".d.mts\" /* Dmts */:\n return \".d.mts\" /* dmtsModifier */;\n case \".mjs\" /* Mjs */:\n return \".mjs\" /* mjsModifier */;\n case \".mts\" /* Mts */:\n return \".mts\" /* mtsModifier */;\n case \".d.cts\" /* Dcts */:\n return \".d.cts\" /* dctsModifier */;\n case \".cjs\" /* Cjs */:\n return \".cjs\" /* cjsModifier */;\n case \".cts\" /* Cts */:\n return \".cts\" /* ctsModifier */;\n case \".tsbuildinfo\" /* TsBuildInfo */:\n return Debug.fail(`Extension ${\".tsbuildinfo\" /* TsBuildInfo */} is unsupported.`);\n case void 0:\n return \"\" /* none */;\n default:\n return Debug.assertNever(extension);\n }\n}\nfunction getStringLiteralCompletionEntries(sourceFile, node, position, program, host, preferences) {\n const typeChecker = program.getTypeChecker();\n const parent2 = walkUpParentheses(node.parent);\n switch (parent2.kind) {\n case 202 /* LiteralType */: {\n const grandParent = walkUpParentheses(parent2.parent);\n if (grandParent.kind === 206 /* ImportType */) {\n return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) };\n }\n return fromUnionableLiteralType(grandParent);\n }\n case 304 /* PropertyAssignment */:\n if (isObjectLiteralExpression(parent2.parent) && parent2.name === node) {\n return stringLiteralCompletionsForObjectLiteral(typeChecker, parent2.parent);\n }\n return fromContextualType() || fromContextualType(0 /* None */);\n case 213 /* ElementAccessExpression */: {\n const { expression, argumentExpression } = parent2;\n if (node === skipParentheses(argumentExpression)) {\n return stringLiteralCompletionsFromProperties(typeChecker.getTypeAtLocation(expression));\n }\n return void 0;\n }\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 292 /* JsxAttribute */:\n if (!isRequireCallArgument(node) && !isImportCall(parent2)) {\n const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 292 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile, typeChecker);\n return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(0 /* None */);\n }\n // falls through (is `require(\"\")` or `require(\"\"` or `import(\"\")`)\n case 273 /* ImportDeclaration */:\n case 279 /* ExportDeclaration */:\n case 284 /* ExternalModuleReference */:\n case 352 /* JSDocImportTag */:\n return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) };\n case 297 /* CaseClause */:\n const tracker = newCaseClauseTracker(typeChecker, parent2.parent.clauses);\n const contextualTypes = fromContextualType();\n if (!contextualTypes) {\n return;\n }\n const literals = contextualTypes.types.filter((literal) => !tracker.hasValue(literal.value));\n return { kind: 2 /* Types */, types: literals, isNewIdentifier: false };\n case 277 /* ImportSpecifier */:\n case 282 /* ExportSpecifier */:\n const specifier = parent2;\n if (specifier.propertyName && node !== specifier.propertyName) {\n return;\n }\n const namedImportsOrExports = specifier.parent;\n const { moduleSpecifier } = namedImportsOrExports.kind === 276 /* NamedImports */ ? namedImportsOrExports.parent.parent : namedImportsOrExports.parent;\n if (!moduleSpecifier) return;\n const moduleSpecifierSymbol = typeChecker.getSymbolAtLocation(moduleSpecifier);\n if (!moduleSpecifierSymbol) return;\n const exports2 = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol);\n const existing = new Set(namedImportsOrExports.elements.map((n) => moduleExportNameTextEscaped(n.propertyName || n.name)));\n const uniques = exports2.filter((e) => e.escapedName !== \"default\" /* Default */ && !existing.has(e.escapedName));\n return { kind: 1 /* Properties */, symbols: uniques, hasIndexSignature: false };\n case 227 /* BinaryExpression */:\n if (parent2.operatorToken.kind === 103 /* InKeyword */) {\n const type = typeChecker.getTypeAtLocation(parent2.right);\n const properties = type.isUnion() ? typeChecker.getAllPossiblePropertiesOfTypes(type.types) : type.getApparentProperties();\n return {\n kind: 1 /* Properties */,\n symbols: properties.filter((prop) => !prop.valueDeclaration || !isPrivateIdentifierClassElementDeclaration(prop.valueDeclaration)),\n hasIndexSignature: false\n };\n }\n return fromContextualType(0 /* None */);\n default:\n return fromContextualType() || fromContextualType(0 /* None */);\n }\n function fromUnionableLiteralType(grandParent) {\n switch (grandParent.kind) {\n case 234 /* ExpressionWithTypeArguments */:\n case 184 /* TypeReference */: {\n const typeArgument = findAncestor(parent2, (n) => n.parent === grandParent);\n if (typeArgument) {\n return { kind: 2 /* Types */, types: getStringLiteralTypes(typeChecker.getTypeArgumentConstraint(typeArgument)), isNewIdentifier: false };\n }\n return void 0;\n }\n case 200 /* IndexedAccessType */:\n const { indexType, objectType } = grandParent;\n if (!rangeContainsPosition(indexType, position)) {\n return void 0;\n }\n return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode(objectType));\n case 193 /* UnionType */: {\n const result = fromUnionableLiteralType(walkUpParentheses(grandParent.parent));\n if (!result) {\n return void 0;\n }\n const alreadyUsedTypes = getAlreadyUsedTypesInStringLiteralUnion(grandParent, parent2);\n if (result.kind === 1 /* Properties */) {\n return { kind: 1 /* Properties */, symbols: result.symbols.filter((sym) => !contains(alreadyUsedTypes, sym.name)), hasIndexSignature: result.hasIndexSignature };\n }\n return { kind: 2 /* Types */, types: result.types.filter((t) => !contains(alreadyUsedTypes, t.value)), isNewIdentifier: false };\n }\n default:\n return void 0;\n }\n }\n function fromContextualType(contextFlags = 4 /* Completions */) {\n const types = getStringLiteralTypes(getContextualTypeFromParent(node, typeChecker, contextFlags));\n if (!types.length) {\n return;\n }\n return { kind: 2 /* Types */, types, isNewIdentifier: false };\n }\n}\nfunction walkUpParentheses(node) {\n switch (node.kind) {\n case 197 /* ParenthesizedType */:\n return walkUpParenthesizedTypes(node);\n case 218 /* ParenthesizedExpression */:\n return walkUpParenthesizedExpressions(node);\n default:\n return node;\n }\n}\nfunction getAlreadyUsedTypesInStringLiteralUnion(union, current) {\n return mapDefined(union.types, (type) => type !== current && isLiteralTypeNode(type) && isStringLiteral(type.literal) ? type.literal.text : void 0);\n}\nfunction getStringLiteralCompletionsFromSignature(call, arg, argumentInfo, checker) {\n let isNewIdentifier = false;\n const uniques = /* @__PURE__ */ new Set();\n const editingArgument = isJsxOpeningLikeElement(call) ? Debug.checkDefined(findAncestor(arg.parent, isJsxAttribute)) : arg;\n const candidates = checker.getCandidateSignaturesForStringLiteralCompletions(call, editingArgument);\n const types = flatMap(candidates, (candidate) => {\n if (!signatureHasRestParameter(candidate) && argumentInfo.argumentCount > candidate.parameters.length) return;\n let type = candidate.getTypeParameterAtPosition(argumentInfo.argumentIndex);\n if (isJsxOpeningLikeElement(call)) {\n const propType = checker.getTypeOfPropertyOfType(type, getTextOfJsxAttributeName(editingArgument.name));\n if (propType) {\n type = propType;\n }\n }\n isNewIdentifier = isNewIdentifier || !!(type.flags & 4 /* String */);\n return getStringLiteralTypes(type, uniques);\n });\n return length(types) ? { kind: 2 /* Types */, types, isNewIdentifier } : void 0;\n}\nfunction stringLiteralCompletionsFromProperties(type) {\n return type && {\n kind: 1 /* Properties */,\n symbols: filter(type.getApparentProperties(), (prop) => !(prop.valueDeclaration && isPrivateIdentifierClassElementDeclaration(prop.valueDeclaration))),\n hasIndexSignature: hasIndexSignature(type)\n };\n}\nfunction stringLiteralCompletionsForObjectLiteral(checker, objectLiteralExpression) {\n const contextualType = checker.getContextualType(objectLiteralExpression);\n if (!contextualType) return void 0;\n const completionsType = checker.getContextualType(objectLiteralExpression, 4 /* Completions */);\n const symbols = getPropertiesForObjectExpression(\n contextualType,\n completionsType,\n objectLiteralExpression,\n checker\n );\n return {\n kind: 1 /* Properties */,\n symbols,\n hasIndexSignature: hasIndexSignature(contextualType)\n };\n}\nfunction getStringLiteralTypes(type, uniques = /* @__PURE__ */ new Set()) {\n if (!type) return emptyArray;\n type = skipConstraint(type);\n return type.isUnion() ? flatMap(type.types, (t) => getStringLiteralTypes(t, uniques)) : type.isStringLiteral() && !(type.flags & 1024 /* EnumLiteral */) && addToSeen(uniques, type.value) ? [type] : emptyArray;\n}\nfunction nameAndKind(name, kind, extension) {\n return { name, kind, extension };\n}\nfunction directoryResult(name) {\n return nameAndKind(\n name,\n \"directory\" /* directory */,\n /*extension*/\n void 0\n );\n}\nfunction addReplacementSpans(text, textStart, names) {\n const span = getDirectoryFragmentTextSpan(text, textStart);\n const wholeSpan = text.length === 0 ? void 0 : createTextSpan(textStart, text.length);\n return names.map(({ name, kind, extension }) => name.includes(directorySeparator) || name.includes(altDirectorySeparator) ? { name, kind, extension, span: wholeSpan } : { name, kind, extension, span });\n}\nfunction getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) {\n return addReplacementSpans(node.text, node.getStart(sourceFile) + 1, getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, program, host, preferences));\n}\nfunction getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, program, host, preferences) {\n const literalValue = normalizeSlashes(node.text);\n const mode = isStringLiteralLike(node) ? program.getModeForUsageLocation(sourceFile, node) : void 0;\n const scriptPath = sourceFile.path;\n const scriptDirectory = getDirectoryPath(scriptPath);\n const compilerOptions = program.getCompilerOptions();\n const typeChecker = program.getTypeChecker();\n const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n const extensionOptions = getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile, typeChecker, preferences, mode);\n return isPathRelativeToScript(literalValue) || !compilerOptions.baseUrl && !compilerOptions.paths && (isRootedDiskPath(literalValue) || isUrl(literalValue)) ? getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, program, host, moduleSpecifierResolutionHost, scriptPath, extensionOptions) : getCompletionEntriesForNonRelativeModules(literalValue, scriptDirectory, mode, program, host, moduleSpecifierResolutionHost, extensionOptions);\n}\nfunction getExtensionOptions(compilerOptions, referenceKind, importingSourceFile, typeChecker, preferences, resolutionMode) {\n return {\n extensionsToSearch: flatten(getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker)),\n referenceKind,\n importingSourceFile,\n endingPreference: preferences == null ? void 0 : preferences.importModuleSpecifierEnding,\n resolutionMode\n };\n}\nfunction getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, program, host, moduleSpecifierResolutionHost, scriptPath, extensionOptions) {\n const compilerOptions = program.getCompilerOptions();\n if (compilerOptions.rootDirs) {\n return getCompletionEntriesForDirectoryFragmentWithRootDirs(\n compilerOptions.rootDirs,\n literalValue,\n scriptDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n scriptPath\n );\n } else {\n return arrayFrom(getCompletionEntriesForDirectoryFragment(\n literalValue,\n scriptDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n true,\n scriptPath\n ).values());\n }\n}\nfunction getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker) {\n const ambientModulesExtensions = !typeChecker ? [] : mapDefined(typeChecker.getAmbientModules(), (module2) => {\n const name = module2.name.slice(1, -1);\n if (!name.startsWith(\"*.\") || name.includes(\"/\")) return;\n return name.slice(1);\n });\n const extensions = [...getSupportedExtensions(compilerOptions), ambientModulesExtensions];\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n return moduleResolutionUsesNodeModules(moduleResolution) ? getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, extensions) : extensions;\n}\nfunction getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase) {\n rootDirs = rootDirs.map((rootDirectory) => ensureTrailingDirectorySeparator(normalizePath(isRootedDiskPath(rootDirectory) ? rootDirectory : combinePaths(basePath, rootDirectory))));\n const relativeDirectory = firstDefined(rootDirs, (rootDirectory) => containsPath(rootDirectory, scriptDirectory, basePath, ignoreCase) ? scriptDirectory.substr(rootDirectory.length) : void 0);\n return deduplicate(\n [...rootDirs.map((rootDirectory) => combinePaths(rootDirectory, relativeDirectory)), scriptDirectory].map((baseDir) => removeTrailingDirectorySeparator(baseDir)),\n equateStringsCaseSensitive,\n compareStringsCaseSensitive\n );\n}\nfunction getCompletionEntriesForDirectoryFragmentWithRootDirs(rootDirs, fragment, scriptDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, exclude) {\n const compilerOptions = program.getCompilerOptions();\n const basePath = compilerOptions.project || host.getCurrentDirectory();\n const ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames());\n const baseDirectories = getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase);\n return deduplicate(\n flatMap(baseDirectories, (baseDirectory) => arrayFrom(getCompletionEntriesForDirectoryFragment(\n fragment,\n baseDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n true,\n exclude\n ).values())),\n (itemA, itemB) => itemA.name === itemB.name && itemA.kind === itemB.kind && itemA.extension === itemB.extension\n );\n}\nfunction getCompletionEntriesForDirectoryFragment(fragment, scriptDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, moduleSpecifierIsRelative, exclude, result = createNameAndKindSet()) {\n var _a;\n if (fragment === void 0) {\n fragment = \"\";\n }\n fragment = normalizeSlashes(fragment);\n if (!hasTrailingDirectorySeparator(fragment)) {\n fragment = getDirectoryPath(fragment);\n }\n if (fragment === \"\") {\n fragment = \".\" + directorySeparator;\n }\n fragment = ensureTrailingDirectorySeparator(fragment);\n const absolutePath = resolvePath(scriptDirectory, fragment);\n const baseDirectory = hasTrailingDirectorySeparator(absolutePath) ? absolutePath : getDirectoryPath(absolutePath);\n if (!moduleSpecifierIsRelative) {\n const packageJsonPath = findPackageJson(baseDirectory, host);\n if (packageJsonPath) {\n const packageJson = readJson(packageJsonPath, host);\n const typesVersions = packageJson.typesVersions;\n if (typeof typesVersions === \"object\") {\n const versionPaths = (_a = getPackageJsonTypesVersionsPaths(typesVersions)) == null ? void 0 : _a.paths;\n if (versionPaths) {\n const packageDirectory = getDirectoryPath(packageJsonPath);\n const pathInPackage = absolutePath.slice(ensureTrailingDirectorySeparator(packageDirectory).length);\n if (addCompletionEntriesFromPaths(result, pathInPackage, packageDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, versionPaths)) {\n return result;\n }\n }\n }\n }\n }\n const ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames());\n if (!tryDirectoryExists(host, baseDirectory)) return result;\n const files = tryReadDirectory(\n host,\n baseDirectory,\n extensionOptions.extensionsToSearch,\n /*exclude*/\n void 0,\n /*include*/\n [\"./*\"]\n );\n if (files) {\n for (let filePath of files) {\n filePath = normalizePath(filePath);\n if (exclude && comparePaths(filePath, exclude, scriptDirectory, ignoreCase) === 0 /* EqualTo */) {\n continue;\n }\n const { name, extension } = getFilenameWithExtensionOption(\n getBaseFileName(filePath),\n program,\n extensionOptions,\n /*isExportsOrImportsWildcard*/\n false\n );\n result.add(nameAndKind(name, \"script\" /* scriptElement */, extension));\n }\n }\n const directories = tryGetDirectories(host, baseDirectory);\n if (directories) {\n for (const directory of directories) {\n const directoryName = getBaseFileName(normalizePath(directory));\n if (directoryName !== \"@types\") {\n result.add(directoryResult(directoryName));\n }\n }\n }\n return result;\n}\nfunction getFilenameWithExtensionOption(name, program, extensionOptions, isExportsOrImportsWildcard) {\n const nonJsResult = ts_moduleSpecifiers_exports.tryGetRealFileNameForNonJsDeclarationFileName(name);\n if (nonJsResult) {\n return { name: nonJsResult, extension: tryGetExtensionFromPath2(nonJsResult) };\n }\n if (extensionOptions.referenceKind === 0 /* Filename */) {\n return { name, extension: tryGetExtensionFromPath2(name) };\n }\n let allowedEndings = ts_moduleSpecifiers_exports.getModuleSpecifierPreferences(\n { importModuleSpecifierEnding: extensionOptions.endingPreference },\n program,\n program.getCompilerOptions(),\n extensionOptions.importingSourceFile\n ).getAllowedEndingsInPreferredOrder(extensionOptions.resolutionMode);\n if (isExportsOrImportsWildcard) {\n allowedEndings = allowedEndings.filter((e) => e !== 0 /* Minimal */ && e !== 1 /* Index */);\n }\n if (allowedEndings[0] === 3 /* TsExtension */) {\n if (fileExtensionIsOneOf(name, supportedTSImplementationExtensions)) {\n return { name, extension: tryGetExtensionFromPath2(name) };\n }\n const outputExtension2 = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, program.getCompilerOptions());\n return outputExtension2 ? { name: changeExtension(name, outputExtension2), extension: outputExtension2 } : { name, extension: tryGetExtensionFromPath2(name) };\n }\n if (!isExportsOrImportsWildcard && (allowedEndings[0] === 0 /* Minimal */ || allowedEndings[0] === 1 /* Index */) && fileExtensionIsOneOf(name, [\".js\" /* Js */, \".jsx\" /* Jsx */, \".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */])) {\n return { name: removeFileExtension(name), extension: tryGetExtensionFromPath2(name) };\n }\n const outputExtension = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, program.getCompilerOptions());\n return outputExtension ? { name: changeExtension(name, outputExtension), extension: outputExtension } : { name, extension: tryGetExtensionFromPath2(name) };\n}\nfunction addCompletionEntriesFromPaths(result, fragment, baseDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, paths) {\n const getPatternsForKey = (key) => paths[key];\n const comparePaths2 = (a, b) => {\n const patternA = tryParsePattern(a);\n const patternB = tryParsePattern(b);\n const lengthA = typeof patternA === \"object\" ? patternA.prefix.length : a.length;\n const lengthB = typeof patternB === \"object\" ? patternB.prefix.length : b.length;\n return compareValues(lengthB, lengthA);\n };\n return addCompletionEntriesFromPathsOrExportsOrImports(\n result,\n /*isExports*/\n false,\n /*isImports*/\n false,\n fragment,\n baseDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n getOwnKeys(paths),\n getPatternsForKey,\n comparePaths2\n );\n}\nfunction addCompletionEntriesFromPathsOrExportsOrImports(result, isExports, isImports, fragment, baseDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, keys, getPatternsForKey, comparePaths2) {\n let pathResults = [];\n let matchedPath;\n for (const key of keys) {\n if (key === \".\") continue;\n const keyWithoutLeadingDotSlash = key.replace(/^\\.\\//, \"\") + ((isExports || isImports) && endsWith(key, \"/\") ? \"*\" : \"\");\n const patterns = getPatternsForKey(key);\n if (patterns) {\n const pathPattern = tryParsePattern(keyWithoutLeadingDotSlash);\n if (!pathPattern) continue;\n const isMatch = typeof pathPattern === \"object\" && isPatternMatch(pathPattern, fragment);\n const isLongestMatch = isMatch && (matchedPath === void 0 || comparePaths2(keyWithoutLeadingDotSlash, matchedPath) === -1 /* LessThan */);\n if (isLongestMatch) {\n matchedPath = keyWithoutLeadingDotSlash;\n pathResults = pathResults.filter((r) => !r.matchedPattern);\n }\n if (typeof pathPattern === \"string\" || matchedPath === void 0 || comparePaths2(keyWithoutLeadingDotSlash, matchedPath) !== 1 /* GreaterThan */) {\n pathResults.push({\n matchedPattern: isMatch,\n results: getCompletionsForPathMapping(keyWithoutLeadingDotSlash, patterns, fragment, baseDirectory, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost).map(({ name, kind, extension }) => nameAndKind(name, kind, extension))\n });\n }\n }\n }\n pathResults.forEach((pathResult) => pathResult.results.forEach((r) => result.add(r)));\n return matchedPath !== void 0;\n}\nfunction getCompletionEntriesForNonRelativeModules(fragment, scriptPath, mode, program, host, moduleSpecifierResolutionHost, extensionOptions) {\n const typeChecker = program.getTypeChecker();\n const compilerOptions = program.getCompilerOptions();\n const { baseUrl, paths } = compilerOptions;\n const result = createNameAndKindSet();\n const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n if (baseUrl) {\n const absolute = normalizePath(combinePaths(host.getCurrentDirectory(), baseUrl));\n getCompletionEntriesForDirectoryFragment(\n fragment,\n absolute,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n false,\n /*exclude*/\n void 0,\n result\n );\n }\n if (paths) {\n const absolute = getPathsBasePath(compilerOptions, host);\n addCompletionEntriesFromPaths(result, fragment, absolute, extensionOptions, program, host, moduleSpecifierResolutionHost, paths);\n }\n const fragmentDirectory = getFragmentDirectory(fragment);\n for (const ambientName of getAmbientModuleCompletions(fragment, fragmentDirectory, typeChecker)) {\n result.add(nameAndKind(\n ambientName,\n \"external module name\" /* externalModuleName */,\n /*extension*/\n void 0\n ));\n }\n getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, fragmentDirectory, extensionOptions, result);\n if (moduleResolutionUsesNodeModules(moduleResolution)) {\n let foundGlobal = false;\n if (fragmentDirectory === void 0) {\n for (const moduleName of enumerateNodeModulesVisibleToScript(host, scriptPath)) {\n const moduleResult = nameAndKind(\n moduleName,\n \"external module name\" /* externalModuleName */,\n /*extension*/\n void 0\n );\n if (!result.has(moduleResult.name)) {\n foundGlobal = true;\n result.add(moduleResult);\n }\n }\n }\n if (!foundGlobal) {\n const resolvePackageJsonExports = getResolvePackageJsonExports(compilerOptions);\n const resolvePackageJsonImports = getResolvePackageJsonImports(compilerOptions);\n let seenPackageScope = false;\n const importsLookup = (directory) => {\n if (resolvePackageJsonImports && !seenPackageScope) {\n const packageFile = combinePaths(directory, \"package.json\");\n if (seenPackageScope = tryFileExists(host, packageFile)) {\n const packageJson = readJson(packageFile, host);\n exportsOrImportsLookup(\n packageJson.imports,\n fragment,\n directory,\n /*isExports*/\n false,\n /*isImports*/\n true\n );\n }\n }\n };\n let ancestorLookup = (ancestor) => {\n const nodeModules = combinePaths(ancestor, \"node_modules\");\n if (tryDirectoryExists(host, nodeModules)) {\n getCompletionEntriesForDirectoryFragment(\n fragment,\n nodeModules,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n false,\n /*exclude*/\n void 0,\n result\n );\n }\n importsLookup(ancestor);\n };\n if (fragmentDirectory && resolvePackageJsonExports) {\n const nodeModulesDirectoryOrImportsLookup = ancestorLookup;\n ancestorLookup = (ancestor) => {\n const components = getPathComponents(fragment);\n components.shift();\n let packagePath = components.shift();\n if (!packagePath) {\n return nodeModulesDirectoryOrImportsLookup(ancestor);\n }\n if (startsWith(packagePath, \"@\")) {\n const subName = components.shift();\n if (!subName) {\n return nodeModulesDirectoryOrImportsLookup(ancestor);\n }\n packagePath = combinePaths(packagePath, subName);\n }\n if (resolvePackageJsonImports && startsWith(packagePath, \"#\")) {\n return importsLookup(ancestor);\n }\n const packageDirectory = combinePaths(ancestor, \"node_modules\", packagePath);\n const packageFile = combinePaths(packageDirectory, \"package.json\");\n if (tryFileExists(host, packageFile)) {\n const packageJson = readJson(packageFile, host);\n const fragmentSubpath = components.join(\"/\") + (components.length && hasTrailingDirectorySeparator(fragment) ? \"/\" : \"\");\n exportsOrImportsLookup(\n packageJson.exports,\n fragmentSubpath,\n packageDirectory,\n /*isExports*/\n true,\n /*isImports*/\n false\n );\n return;\n }\n return nodeModulesDirectoryOrImportsLookup(ancestor);\n };\n }\n forEachAncestorDirectoryStoppingAtGlobalCache(host, scriptPath, ancestorLookup);\n }\n }\n return arrayFrom(result.values());\n function exportsOrImportsLookup(lookupTable, fragment2, baseDirectory, isExports, isImports) {\n if (typeof lookupTable !== \"object\" || lookupTable === null) {\n return;\n }\n const keys = getOwnKeys(lookupTable);\n const conditions = getConditions(compilerOptions, mode);\n addCompletionEntriesFromPathsOrExportsOrImports(\n result,\n isExports,\n isImports,\n fragment2,\n baseDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n keys,\n (key) => {\n const pattern = getPatternFromFirstMatchingCondition(lookupTable[key], conditions);\n if (pattern === void 0) {\n return void 0;\n }\n return singleElementArray(endsWith(key, \"/\") && endsWith(pattern, \"/\") ? pattern + \"*\" : pattern);\n },\n comparePatternKeys\n );\n }\n}\nfunction getPatternFromFirstMatchingCondition(target, conditions) {\n if (typeof target === \"string\") {\n return target;\n }\n if (target && typeof target === \"object\" && !isArray(target)) {\n for (const condition in target) {\n if (condition === \"default\" || conditions.includes(condition) || isApplicableVersionedTypesKey(conditions, condition)) {\n const pattern = target[condition];\n return getPatternFromFirstMatchingCondition(pattern, conditions);\n }\n }\n }\n}\nfunction getFragmentDirectory(fragment) {\n return containsSlash(fragment) ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0;\n}\nfunction getCompletionsForPathMapping(path, patterns, fragment, packageDirectory, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost) {\n const parsedPath = tryParsePattern(path);\n if (!parsedPath) {\n return emptyArray;\n }\n if (typeof parsedPath === \"string\") {\n return justPathMappingName(path, \"script\" /* scriptElement */);\n }\n const remainingFragment = tryRemovePrefix(fragment, parsedPath.prefix);\n if (remainingFragment === void 0) {\n const starIsFullPathComponent = endsWith(path, \"/*\");\n return starIsFullPathComponent ? justPathMappingName(parsedPath.prefix, \"directory\" /* directory */) : flatMap(patterns, (pattern) => {\n var _a;\n return (_a = getModulesForPathsPattern(\"\", packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost)) == null ? void 0 : _a.map(({ name, ...rest }) => ({ name: parsedPath.prefix + name + parsedPath.suffix, ...rest }));\n });\n }\n return flatMap(patterns, (pattern) => getModulesForPathsPattern(remainingFragment, packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost));\n function justPathMappingName(name, kind) {\n return startsWith(name, fragment) ? [{ name: removeTrailingDirectorySeparator(name), kind, extension: void 0 }] : emptyArray;\n }\n}\nfunction getModulesForPathsPattern(fragment, packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost) {\n if (!host.readDirectory) {\n return void 0;\n }\n const parsed = tryParsePattern(pattern);\n if (parsed === void 0 || isString(parsed)) {\n return void 0;\n }\n const normalizedPrefix = resolvePath(parsed.prefix);\n const normalizedPrefixDirectory = hasTrailingDirectorySeparator(parsed.prefix) ? normalizedPrefix : getDirectoryPath(normalizedPrefix);\n const normalizedPrefixBase = hasTrailingDirectorySeparator(parsed.prefix) ? \"\" : getBaseFileName(normalizedPrefix);\n const fragmentHasPath = containsSlash(fragment);\n const fragmentDirectory = fragmentHasPath ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0;\n const getCommonSourceDirectory2 = () => moduleSpecifierResolutionHost.getCommonSourceDirectory();\n const ignoreCase = !hostUsesCaseSensitiveFileNames(moduleSpecifierResolutionHost);\n const outDir = program.getCompilerOptions().outDir;\n const declarationDir = program.getCompilerOptions().declarationDir;\n const expandedPrefixDirectory = fragmentHasPath ? combinePaths(normalizedPrefixDirectory, normalizedPrefixBase + fragmentDirectory) : normalizedPrefixDirectory;\n const baseDirectory = normalizePath(combinePaths(packageDirectory, expandedPrefixDirectory));\n const possibleInputBaseDirectoryForOutDir = isImports && outDir && getPossibleOriginalInputPathWithoutChangingExt(baseDirectory, ignoreCase, outDir, getCommonSourceDirectory2);\n const possibleInputBaseDirectoryForDeclarationDir = isImports && declarationDir && getPossibleOriginalInputPathWithoutChangingExt(baseDirectory, ignoreCase, declarationDir, getCommonSourceDirectory2);\n const normalizedSuffix = normalizePath(parsed.suffix);\n const declarationExtension = normalizedSuffix && getDeclarationEmitExtensionForPath(\"_\" + normalizedSuffix);\n const inputExtension = normalizedSuffix ? getPossibleOriginalInputExtensionForExtension(\"_\" + normalizedSuffix) : void 0;\n const matchingSuffixes = [\n declarationExtension && changeExtension(normalizedSuffix, declarationExtension),\n ...inputExtension ? inputExtension.map((ext) => changeExtension(normalizedSuffix, ext)) : [],\n normalizedSuffix\n ].filter(isString);\n const includeGlobs = normalizedSuffix ? matchingSuffixes.map((suffix) => \"**/*\" + suffix) : [\"./*\"];\n const isExportsOrImportsWildcard = (isExports || isImports) && endsWith(pattern, \"/*\");\n let matches = getMatchesWithPrefix(baseDirectory);\n if (possibleInputBaseDirectoryForOutDir) {\n matches = concatenate(matches, getMatchesWithPrefix(possibleInputBaseDirectoryForOutDir));\n }\n if (possibleInputBaseDirectoryForDeclarationDir) {\n matches = concatenate(matches, getMatchesWithPrefix(possibleInputBaseDirectoryForDeclarationDir));\n }\n if (!normalizedSuffix) {\n matches = concatenate(matches, getDirectoryMatches(baseDirectory));\n if (possibleInputBaseDirectoryForOutDir) {\n matches = concatenate(matches, getDirectoryMatches(possibleInputBaseDirectoryForOutDir));\n }\n if (possibleInputBaseDirectoryForDeclarationDir) {\n matches = concatenate(matches, getDirectoryMatches(possibleInputBaseDirectoryForDeclarationDir));\n }\n }\n return matches;\n function getMatchesWithPrefix(directory) {\n const completePrefix = fragmentHasPath ? directory : ensureTrailingDirectorySeparator(directory) + normalizedPrefixBase;\n return mapDefined(tryReadDirectory(\n host,\n directory,\n extensionOptions.extensionsToSearch,\n /*exclude*/\n void 0,\n includeGlobs\n ), (match) => {\n const trimmedWithPattern = trimPrefixAndSuffix(match, completePrefix);\n if (trimmedWithPattern) {\n if (containsSlash(trimmedWithPattern)) {\n return directoryResult(getPathComponents(removeLeadingDirectorySeparator(trimmedWithPattern))[1]);\n }\n const { name, extension } = getFilenameWithExtensionOption(trimmedWithPattern, program, extensionOptions, isExportsOrImportsWildcard);\n return nameAndKind(name, \"script\" /* scriptElement */, extension);\n }\n });\n }\n function getDirectoryMatches(directoryName) {\n return mapDefined(tryGetDirectories(host, directoryName), (dir) => dir === \"node_modules\" ? void 0 : directoryResult(dir));\n }\n function trimPrefixAndSuffix(path, prefix) {\n return firstDefined(matchingSuffixes, (suffix) => {\n const inner = withoutStartAndEnd(normalizePath(path), prefix, suffix);\n return inner === void 0 ? void 0 : removeLeadingDirectorySeparator(inner);\n });\n }\n}\nfunction withoutStartAndEnd(s, start, end) {\n return startsWith(s, start) && endsWith(s, end) ? s.slice(start.length, s.length - end.length) : void 0;\n}\nfunction removeLeadingDirectorySeparator(path) {\n return path[0] === directorySeparator ? path.slice(1) : path;\n}\nfunction getAmbientModuleCompletions(fragment, fragmentDirectory, checker) {\n const ambientModules = checker.getAmbientModules().map((sym) => stripQuotes(sym.name));\n const nonRelativeModuleNames = ambientModules.filter((moduleName) => startsWith(moduleName, fragment) && !moduleName.includes(\"*\"));\n if (fragmentDirectory !== void 0) {\n const moduleNameWithSeparator = ensureTrailingDirectorySeparator(fragmentDirectory);\n return nonRelativeModuleNames.map((nonRelativeModuleName) => removePrefix(nonRelativeModuleName, moduleNameWithSeparator));\n }\n return nonRelativeModuleNames;\n}\nfunction getTripleSlashReferenceCompletion(sourceFile, position, program, host, moduleSpecifierResolutionHost) {\n const compilerOptions = program.getCompilerOptions();\n const token = getTokenAtPosition(sourceFile, position);\n const commentRanges = getLeadingCommentRanges(sourceFile.text, token.pos);\n const range = commentRanges && find(commentRanges, (commentRange) => position >= commentRange.pos && position <= commentRange.end);\n if (!range) {\n return void 0;\n }\n const text = sourceFile.text.slice(range.pos, position);\n const match = tripleSlashDirectiveFragmentRegex.exec(text);\n if (!match) {\n return void 0;\n }\n const [, prefix, kind, toComplete] = match;\n const scriptPath = getDirectoryPath(sourceFile.path);\n const names = kind === \"path\" ? getCompletionEntriesForDirectoryFragment(\n toComplete,\n scriptPath,\n getExtensionOptions(compilerOptions, 0 /* Filename */, sourceFile),\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n true,\n sourceFile.path\n ) : kind === \"types\" ? getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, getFragmentDirectory(toComplete), getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile)) : Debug.fail();\n return addReplacementSpans(toComplete, range.pos + prefix.length, arrayFrom(names.values()));\n}\nfunction getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, fragmentDirectory, extensionOptions, result = createNameAndKindSet()) {\n const options = program.getCompilerOptions();\n const seen = /* @__PURE__ */ new Map();\n const typeRoots = tryAndIgnoreErrors(() => getEffectiveTypeRoots(options, host)) || emptyArray;\n for (const root of typeRoots) {\n getCompletionEntriesFromDirectories(root);\n }\n for (const packageJson of findPackageJsons(scriptPath, host)) {\n const typesDir = combinePaths(getDirectoryPath(packageJson), \"node_modules/@types\");\n getCompletionEntriesFromDirectories(typesDir);\n }\n return result;\n function getCompletionEntriesFromDirectories(directory) {\n if (!tryDirectoryExists(host, directory)) return;\n for (const typeDirectoryName of tryGetDirectories(host, directory)) {\n const packageName = unmangleScopedPackageName(typeDirectoryName);\n if (options.types && !contains(options.types, packageName)) continue;\n if (fragmentDirectory === void 0) {\n if (!seen.has(packageName)) {\n result.add(nameAndKind(\n packageName,\n \"external module name\" /* externalModuleName */,\n /*extension*/\n void 0\n ));\n seen.set(packageName, true);\n }\n } else {\n const baseDirectory = combinePaths(directory, typeDirectoryName);\n const remainingFragment = tryRemoveDirectoryPrefix(fragmentDirectory, packageName, hostGetCanonicalFileName(host));\n if (remainingFragment !== void 0) {\n getCompletionEntriesForDirectoryFragment(\n remainingFragment,\n baseDirectory,\n extensionOptions,\n program,\n host,\n moduleSpecifierResolutionHost,\n /*moduleSpecifierIsRelative*/\n false,\n /*exclude*/\n void 0,\n result\n );\n }\n }\n }\n }\n}\nfunction enumerateNodeModulesVisibleToScript(host, scriptPath) {\n if (!host.readFile || !host.fileExists) return emptyArray;\n const result = [];\n for (const packageJson of findPackageJsons(scriptPath, host)) {\n const contents = readJson(packageJson, host);\n for (const key of nodeModulesDependencyKeys) {\n const dependencies = contents[key];\n if (!dependencies) continue;\n for (const dep in dependencies) {\n if (hasProperty(dependencies, dep) && !startsWith(dep, \"@types/\")) {\n result.push(dep);\n }\n }\n }\n }\n return result;\n}\nfunction getDirectoryFragmentTextSpan(text, textStart) {\n const index = Math.max(text.lastIndexOf(directorySeparator), text.lastIndexOf(altDirectorySeparator));\n const offset = index !== -1 ? index + 1 : 0;\n const length2 = text.length - offset;\n return length2 === 0 || isIdentifierText(text.substr(offset, length2), 99 /* ESNext */) ? void 0 : createTextSpan(textStart + offset, length2);\n}\nfunction isPathRelativeToScript(path) {\n if (path && path.length >= 2 && path.charCodeAt(0) === 46 /* dot */) {\n const slashIndex = path.length >= 3 && path.charCodeAt(1) === 46 /* dot */ ? 2 : 1;\n const slashCharCode = path.charCodeAt(slashIndex);\n return slashCharCode === 47 /* slash */ || slashCharCode === 92 /* backslash */;\n }\n return false;\n}\nvar tripleSlashDirectiveFragmentRegex = /^(\\/\\/\\/\\s* Core,\n DefinitionKind: () => DefinitionKind,\n EntryKind: () => EntryKind,\n ExportKind: () => ExportKind2,\n FindReferencesUse: () => FindReferencesUse,\n ImportExport: () => ImportExport,\n createImportTracker: () => createImportTracker,\n findModuleReferences: () => findModuleReferences,\n findReferenceOrRenameEntries: () => findReferenceOrRenameEntries,\n findReferencedSymbols: () => findReferencedSymbols,\n getContextNode: () => getContextNode,\n getExportInfo: () => getExportInfo,\n getImplementationsAtPosition: () => getImplementationsAtPosition,\n getImportOrExportSymbol: () => getImportOrExportSymbol,\n getReferenceEntriesForNode: () => getReferenceEntriesForNode,\n isContextWithStartAndEndNode: () => isContextWithStartAndEndNode,\n isDeclarationOfSymbol: () => isDeclarationOfSymbol,\n isWriteAccessForReference: () => isWriteAccessForReference,\n toContextSpan: () => toContextSpan,\n toHighlightSpan: () => toHighlightSpan,\n toReferenceEntry: () => toReferenceEntry,\n toRenameLocation: () => toRenameLocation\n});\n\n// src/services/importTracker.ts\nfunction createImportTracker(sourceFiles, sourceFilesSet, checker, cancellationToken) {\n const allDirectImports = getDirectImportsMap(sourceFiles, checker, cancellationToken);\n return (exportSymbol, exportInfo, isForRename) => {\n const { directImports, indirectUsers } = getImportersForExport(sourceFiles, sourceFilesSet, allDirectImports, exportInfo, checker, cancellationToken);\n return { indirectUsers, ...getSearchesFromDirectImports(directImports, exportSymbol, exportInfo.exportKind, checker, isForRename) };\n };\n}\nvar ExportKind2 = /* @__PURE__ */ ((ExportKind3) => {\n ExportKind3[ExportKind3[\"Named\"] = 0] = \"Named\";\n ExportKind3[ExportKind3[\"Default\"] = 1] = \"Default\";\n ExportKind3[ExportKind3[\"ExportEquals\"] = 2] = \"ExportEquals\";\n return ExportKind3;\n})(ExportKind2 || {});\nvar ImportExport = /* @__PURE__ */ ((ImportExport2) => {\n ImportExport2[ImportExport2[\"Import\"] = 0] = \"Import\";\n ImportExport2[ImportExport2[\"Export\"] = 1] = \"Export\";\n return ImportExport2;\n})(ImportExport || {});\nfunction getImportersForExport(sourceFiles, sourceFilesSet, allDirectImports, { exportingModuleSymbol, exportKind }, checker, cancellationToken) {\n const markSeenDirectImport = nodeSeenTracker();\n const markSeenIndirectUser = nodeSeenTracker();\n const directImports = [];\n const isAvailableThroughGlobal = !!exportingModuleSymbol.globalExports;\n const indirectUserDeclarations = isAvailableThroughGlobal ? void 0 : [];\n handleDirectImports(exportingModuleSymbol);\n return { directImports, indirectUsers: getIndirectUsers() };\n function getIndirectUsers() {\n if (isAvailableThroughGlobal) {\n return sourceFiles;\n }\n if (exportingModuleSymbol.declarations) {\n for (const decl of exportingModuleSymbol.declarations) {\n if (isExternalModuleAugmentation(decl) && sourceFilesSet.has(decl.getSourceFile().fileName)) {\n addIndirectUser(decl);\n }\n }\n }\n return indirectUserDeclarations.map(getSourceFileOfNode);\n }\n function handleDirectImports(exportingModuleSymbol2) {\n const theseDirectImports = getDirectImports(exportingModuleSymbol2);\n if (theseDirectImports) {\n for (const direct of theseDirectImports) {\n if (!markSeenDirectImport(direct)) {\n continue;\n }\n if (cancellationToken) cancellationToken.throwIfCancellationRequested();\n switch (direct.kind) {\n case 214 /* CallExpression */:\n if (isImportCall(direct)) {\n handleImportCall(direct);\n break;\n }\n if (!isAvailableThroughGlobal) {\n const parent2 = direct.parent;\n if (exportKind === 2 /* ExportEquals */ && parent2.kind === 261 /* VariableDeclaration */) {\n const { name } = parent2;\n if (name.kind === 80 /* Identifier */) {\n directImports.push(name);\n break;\n }\n }\n }\n break;\n case 80 /* Identifier */:\n break;\n // TODO: GH#23879\n case 272 /* ImportEqualsDeclaration */:\n handleNamespaceImport(\n direct,\n direct.name,\n hasSyntacticModifier(direct, 32 /* Export */),\n /*alreadyAddedDirect*/\n false\n );\n break;\n case 273 /* ImportDeclaration */:\n case 352 /* JSDocImportTag */:\n directImports.push(direct);\n const namedBindings = direct.importClause && direct.importClause.namedBindings;\n if (namedBindings && namedBindings.kind === 275 /* NamespaceImport */) {\n handleNamespaceImport(\n direct,\n namedBindings.name,\n /*isReExport*/\n false,\n /*alreadyAddedDirect*/\n true\n );\n } else if (!isAvailableThroughGlobal && isDefaultImport(direct)) {\n addIndirectUser(getSourceFileLikeForImportDeclaration(direct));\n }\n break;\n case 279 /* ExportDeclaration */:\n if (!direct.exportClause) {\n handleDirectImports(getContainingModuleSymbol(direct, checker));\n } else if (direct.exportClause.kind === 281 /* NamespaceExport */) {\n addIndirectUser(\n getSourceFileLikeForImportDeclaration(direct),\n /*addTransitiveDependencies*/\n true\n );\n } else {\n directImports.push(direct);\n }\n break;\n case 206 /* ImportType */:\n if (!isAvailableThroughGlobal && direct.isTypeOf && !direct.qualifier && isExported2(direct)) {\n addIndirectUser(\n direct.getSourceFile(),\n /*addTransitiveDependencies*/\n true\n );\n }\n directImports.push(direct);\n break;\n default:\n Debug.failBadSyntaxKind(direct, \"Unexpected import kind.\");\n }\n }\n }\n }\n function handleImportCall(importCall) {\n const top = findAncestor(importCall, isAmbientModuleDeclaration) || importCall.getSourceFile();\n addIndirectUser(\n top,\n /** addTransitiveDependencies */\n !!isExported2(\n importCall,\n /*stopAtAmbientModule*/\n true\n )\n );\n }\n function isExported2(node, stopAtAmbientModule = false) {\n return findAncestor(node, (node2) => {\n if (stopAtAmbientModule && isAmbientModuleDeclaration(node2)) return \"quit\";\n return canHaveModifiers(node2) && some(node2.modifiers, isExportModifier);\n });\n }\n function handleNamespaceImport(importDeclaration, name, isReExport, alreadyAddedDirect) {\n if (exportKind === 2 /* ExportEquals */) {\n if (!alreadyAddedDirect) directImports.push(importDeclaration);\n } else if (!isAvailableThroughGlobal) {\n const sourceFileLike = getSourceFileLikeForImportDeclaration(importDeclaration);\n Debug.assert(sourceFileLike.kind === 308 /* SourceFile */ || sourceFileLike.kind === 268 /* ModuleDeclaration */);\n if (isReExport || findNamespaceReExports(sourceFileLike, name, checker)) {\n addIndirectUser(\n sourceFileLike,\n /*addTransitiveDependencies*/\n true\n );\n } else {\n addIndirectUser(sourceFileLike);\n }\n }\n }\n function addIndirectUser(sourceFileLike, addTransitiveDependencies = false) {\n Debug.assert(!isAvailableThroughGlobal);\n const isNew = markSeenIndirectUser(sourceFileLike);\n if (!isNew) return;\n indirectUserDeclarations.push(sourceFileLike);\n if (!addTransitiveDependencies) return;\n const moduleSymbol = checker.getMergedSymbol(sourceFileLike.symbol);\n if (!moduleSymbol) return;\n Debug.assert(!!(moduleSymbol.flags & 1536 /* Module */));\n const directImports2 = getDirectImports(moduleSymbol);\n if (directImports2) {\n for (const directImport of directImports2) {\n if (!isImportTypeNode(directImport)) {\n addIndirectUser(\n getSourceFileLikeForImportDeclaration(directImport),\n /*addTransitiveDependencies*/\n true\n );\n }\n }\n }\n }\n function getDirectImports(moduleSymbol) {\n return allDirectImports.get(getSymbolId(moduleSymbol).toString());\n }\n}\nfunction getSearchesFromDirectImports(directImports, exportSymbol, exportKind, checker, isForRename) {\n const importSearches = [];\n const singleReferences = [];\n function addSearch(location, symbol) {\n importSearches.push([location, symbol]);\n }\n if (directImports) {\n for (const decl of directImports) {\n handleImport(decl);\n }\n }\n return { importSearches, singleReferences };\n function handleImport(decl) {\n if (decl.kind === 272 /* ImportEqualsDeclaration */) {\n if (isExternalModuleImportEquals(decl)) {\n handleNamespaceImportLike(decl.name);\n }\n return;\n }\n if (decl.kind === 80 /* Identifier */) {\n handleNamespaceImportLike(decl);\n return;\n }\n if (decl.kind === 206 /* ImportType */) {\n if (decl.qualifier) {\n const firstIdentifier = getFirstIdentifier(decl.qualifier);\n if (firstIdentifier.escapedText === symbolName(exportSymbol)) {\n singleReferences.push(firstIdentifier);\n }\n } else if (exportKind === 2 /* ExportEquals */) {\n singleReferences.push(decl.argument.literal);\n }\n return;\n }\n if (decl.moduleSpecifier.kind !== 11 /* StringLiteral */) {\n return;\n }\n if (decl.kind === 279 /* ExportDeclaration */) {\n if (decl.exportClause && isNamedExports(decl.exportClause)) {\n searchForNamedImport(decl.exportClause);\n }\n return;\n }\n const { name, namedBindings } = decl.importClause || { name: void 0, namedBindings: void 0 };\n if (namedBindings) {\n switch (namedBindings.kind) {\n case 275 /* NamespaceImport */:\n handleNamespaceImportLike(namedBindings.name);\n break;\n case 276 /* NamedImports */:\n if (exportKind === 0 /* Named */ || exportKind === 1 /* Default */) {\n searchForNamedImport(namedBindings);\n }\n break;\n default:\n Debug.assertNever(namedBindings);\n }\n }\n if (name && (exportKind === 1 /* Default */ || exportKind === 2 /* ExportEquals */) && (!isForRename || name.escapedText === symbolEscapedNameNoDefault(exportSymbol))) {\n const defaultImportAlias = checker.getSymbolAtLocation(name);\n addSearch(name, defaultImportAlias);\n }\n }\n function handleNamespaceImportLike(importName) {\n if (exportKind === 2 /* ExportEquals */ && (!isForRename || isNameMatch(importName.escapedText))) {\n addSearch(importName, checker.getSymbolAtLocation(importName));\n }\n }\n function searchForNamedImport(namedBindings) {\n if (!namedBindings) {\n return;\n }\n for (const element of namedBindings.elements) {\n const { name, propertyName } = element;\n if (!isNameMatch(moduleExportNameTextEscaped(propertyName || name))) {\n continue;\n }\n if (propertyName) {\n singleReferences.push(propertyName);\n if (!isForRename || moduleExportNameTextEscaped(name) === exportSymbol.escapedName) {\n addSearch(name, checker.getSymbolAtLocation(name));\n }\n } else {\n const localSymbol = element.kind === 282 /* ExportSpecifier */ && element.propertyName ? checker.getExportSpecifierLocalTargetSymbol(element) : checker.getSymbolAtLocation(name);\n addSearch(name, localSymbol);\n }\n }\n }\n function isNameMatch(name) {\n return name === exportSymbol.escapedName || exportKind !== 0 /* Named */ && name === \"default\" /* Default */;\n }\n}\nfunction findNamespaceReExports(sourceFileLike, name, checker) {\n const namespaceImportSymbol = checker.getSymbolAtLocation(name);\n return !!forEachPossibleImportOrExportStatement(sourceFileLike, (statement) => {\n if (!isExportDeclaration(statement)) return;\n const { exportClause, moduleSpecifier } = statement;\n return !moduleSpecifier && exportClause && isNamedExports(exportClause) && exportClause.elements.some((element) => checker.getExportSpecifierLocalTargetSymbol(element) === namespaceImportSymbol);\n });\n}\nfunction findModuleReferences(program, sourceFiles, searchModuleSymbol) {\n var _a;\n const refs = [];\n const checker = program.getTypeChecker();\n for (const referencingFile of sourceFiles) {\n const searchSourceFile = searchModuleSymbol.valueDeclaration;\n if ((searchSourceFile == null ? void 0 : searchSourceFile.kind) === 308 /* SourceFile */) {\n for (const ref of referencingFile.referencedFiles) {\n if (program.getSourceFileFromReference(referencingFile, ref) === searchSourceFile) {\n refs.push({ kind: \"reference\", referencingFile, ref });\n }\n }\n for (const ref of referencingFile.typeReferenceDirectives) {\n const referenced = (_a = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(ref, referencingFile)) == null ? void 0 : _a.resolvedTypeReferenceDirective;\n if (referenced !== void 0 && referenced.resolvedFileName === searchSourceFile.fileName) {\n refs.push({ kind: \"reference\", referencingFile, ref });\n }\n }\n }\n forEachImport(referencingFile, (importDecl, moduleSpecifier) => {\n const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n if (moduleSymbol === searchModuleSymbol) {\n refs.push(nodeIsSynthesized(importDecl) ? { kind: \"implicit\", literal: moduleSpecifier, referencingFile } : { kind: \"import\", literal: moduleSpecifier });\n }\n });\n }\n return refs;\n}\nfunction getDirectImportsMap(sourceFiles, checker, cancellationToken) {\n const map2 = /* @__PURE__ */ new Map();\n for (const sourceFile of sourceFiles) {\n if (cancellationToken) cancellationToken.throwIfCancellationRequested();\n forEachImport(sourceFile, (importDecl, moduleSpecifier) => {\n const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n if (moduleSymbol) {\n const id = getSymbolId(moduleSymbol).toString();\n let imports = map2.get(id);\n if (!imports) {\n map2.set(id, imports = []);\n }\n imports.push(importDecl);\n }\n });\n }\n return map2;\n}\nfunction forEachPossibleImportOrExportStatement(sourceFileLike, action) {\n return forEach(sourceFileLike.kind === 308 /* SourceFile */ ? sourceFileLike.statements : sourceFileLike.body.statements, (statement) => (\n // TODO: GH#18217\n action(statement) || isAmbientModuleDeclaration(statement) && forEach(statement.body && statement.body.statements, action)\n ));\n}\nfunction forEachImport(sourceFile, action) {\n if (sourceFile.externalModuleIndicator || sourceFile.imports !== void 0) {\n for (const i of sourceFile.imports) {\n action(importFromModuleSpecifier(i), i);\n }\n } else {\n forEachPossibleImportOrExportStatement(sourceFile, (statement) => {\n switch (statement.kind) {\n case 279 /* ExportDeclaration */:\n case 273 /* ImportDeclaration */: {\n const decl = statement;\n if (decl.moduleSpecifier && isStringLiteral(decl.moduleSpecifier)) {\n action(decl, decl.moduleSpecifier);\n }\n break;\n }\n case 272 /* ImportEqualsDeclaration */: {\n const decl = statement;\n if (isExternalModuleImportEquals(decl)) {\n action(decl, decl.moduleReference.expression);\n }\n break;\n }\n }\n });\n }\n}\nfunction getImportOrExportSymbol(node, symbol, checker, comingFromExport) {\n return comingFromExport ? getExport() : getExport() || getImport();\n function getExport() {\n var _a;\n const { parent: parent2 } = node;\n const grandparent = parent2.parent;\n if (symbol.exportSymbol) {\n if (parent2.kind === 212 /* PropertyAccessExpression */) {\n return ((_a = symbol.declarations) == null ? void 0 : _a.some((d) => d === parent2)) && isBinaryExpression(grandparent) ? getSpecialPropertyExport(\n grandparent,\n /*useLhsSymbol*/\n false\n ) : void 0;\n } else {\n return exportInfo(symbol.exportSymbol, getExportKindForDeclaration(parent2));\n }\n } else {\n const exportNode = getExportNode(parent2, node);\n if (exportNode && hasSyntacticModifier(exportNode, 32 /* Export */)) {\n if (isImportEqualsDeclaration(exportNode) && exportNode.moduleReference === node) {\n if (comingFromExport) {\n return void 0;\n }\n const lhsSymbol = checker.getSymbolAtLocation(exportNode.name);\n return { kind: 0 /* Import */, symbol: lhsSymbol };\n } else {\n return exportInfo(symbol, getExportKindForDeclaration(exportNode));\n }\n } else if (isNamespaceExport(parent2)) {\n return exportInfo(symbol, 0 /* Named */);\n } else if (isExportAssignment(parent2)) {\n return getExportAssignmentExport(parent2);\n } else if (isExportAssignment(grandparent)) {\n return getExportAssignmentExport(grandparent);\n } else if (isBinaryExpression(parent2)) {\n return getSpecialPropertyExport(\n parent2,\n /*useLhsSymbol*/\n true\n );\n } else if (isBinaryExpression(grandparent)) {\n return getSpecialPropertyExport(\n grandparent,\n /*useLhsSymbol*/\n true\n );\n } else if (isJSDocTypedefTag(parent2) || isJSDocCallbackTag(parent2)) {\n return exportInfo(symbol, 0 /* Named */);\n }\n }\n function getExportAssignmentExport(ex) {\n if (!ex.symbol.parent) return void 0;\n const exportKind = ex.isExportEquals ? 2 /* ExportEquals */ : 1 /* Default */;\n return { kind: 1 /* Export */, symbol, exportInfo: { exportingModuleSymbol: ex.symbol.parent, exportKind } };\n }\n function getSpecialPropertyExport(node2, useLhsSymbol) {\n let kind;\n switch (getAssignmentDeclarationKind(node2)) {\n case 1 /* ExportsProperty */:\n kind = 0 /* Named */;\n break;\n case 2 /* ModuleExports */:\n kind = 2 /* ExportEquals */;\n break;\n default:\n return void 0;\n }\n const sym = useLhsSymbol ? checker.getSymbolAtLocation(getNameOfAccessExpression(cast(node2.left, isAccessExpression))) : symbol;\n return sym && exportInfo(sym, kind);\n }\n }\n function getImport() {\n const isImport3 = isNodeImport(node);\n if (!isImport3) return void 0;\n let importedSymbol = checker.getImmediateAliasedSymbol(symbol);\n if (!importedSymbol) return void 0;\n importedSymbol = skipExportSpecifierSymbol(importedSymbol, checker);\n if (importedSymbol.escapedName === \"export=\") {\n importedSymbol = getExportEqualsLocalSymbol(importedSymbol, checker);\n if (importedSymbol === void 0) return void 0;\n }\n const importedName = symbolEscapedNameNoDefault(importedSymbol);\n if (importedName === void 0 || importedName === \"default\" /* Default */ || importedName === symbol.escapedName) {\n return { kind: 0 /* Import */, symbol: importedSymbol };\n }\n }\n function exportInfo(symbol2, kind) {\n const exportInfo2 = getExportInfo(symbol2, kind, checker);\n return exportInfo2 && { kind: 1 /* Export */, symbol: symbol2, exportInfo: exportInfo2 };\n }\n function getExportKindForDeclaration(node2) {\n return hasSyntacticModifier(node2, 2048 /* Default */) ? 1 /* Default */ : 0 /* Named */;\n }\n}\nfunction getExportEqualsLocalSymbol(importedSymbol, checker) {\n var _a, _b;\n if (importedSymbol.flags & 2097152 /* Alias */) {\n return checker.getImmediateAliasedSymbol(importedSymbol);\n }\n const decl = Debug.checkDefined(importedSymbol.valueDeclaration);\n if (isExportAssignment(decl)) {\n return (_a = tryCast(decl.expression, canHaveSymbol)) == null ? void 0 : _a.symbol;\n } else if (isBinaryExpression(decl)) {\n return (_b = tryCast(decl.right, canHaveSymbol)) == null ? void 0 : _b.symbol;\n } else if (isSourceFile(decl)) {\n return decl.symbol;\n }\n return void 0;\n}\nfunction getExportNode(parent2, node) {\n const declaration = isVariableDeclaration(parent2) ? parent2 : isBindingElement(parent2) ? walkUpBindingElementsAndPatterns(parent2) : void 0;\n if (declaration) {\n return parent2.name !== node ? void 0 : isCatchClause(declaration.parent) ? void 0 : isVariableStatement(declaration.parent.parent) ? declaration.parent.parent : void 0;\n } else {\n return parent2;\n }\n}\nfunction isNodeImport(node) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 272 /* ImportEqualsDeclaration */:\n return parent2.name === node && isExternalModuleImportEquals(parent2);\n case 277 /* ImportSpecifier */:\n return !parent2.propertyName;\n case 274 /* ImportClause */:\n case 275 /* NamespaceImport */:\n Debug.assert(parent2.name === node);\n return true;\n case 209 /* BindingElement */:\n return isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(parent2.parent.parent);\n default:\n return false;\n }\n}\nfunction getExportInfo(exportSymbol, exportKind, checker) {\n const moduleSymbol = exportSymbol.parent;\n if (!moduleSymbol) return void 0;\n const exportingModuleSymbol = checker.getMergedSymbol(moduleSymbol);\n return isExternalModuleSymbol(exportingModuleSymbol) ? { exportingModuleSymbol, exportKind } : void 0;\n}\nfunction skipExportSpecifierSymbol(symbol, checker) {\n if (symbol.declarations) {\n for (const declaration of symbol.declarations) {\n if (isExportSpecifier(declaration) && !declaration.propertyName && !declaration.parent.parent.moduleSpecifier) {\n return checker.getExportSpecifierLocalTargetSymbol(declaration) || symbol;\n } else if (isPropertyAccessExpression(declaration) && isModuleExportsAccessExpression(declaration.expression) && !isPrivateIdentifier(declaration.name)) {\n return checker.getSymbolAtLocation(declaration);\n } else if (isShorthandPropertyAssignment(declaration) && isBinaryExpression(declaration.parent.parent) && getAssignmentDeclarationKind(declaration.parent.parent) === 2 /* ModuleExports */) {\n return checker.getExportSpecifierLocalTargetSymbol(declaration.name);\n }\n }\n }\n return symbol;\n}\nfunction getContainingModuleSymbol(importer, checker) {\n return checker.getMergedSymbol(getSourceFileLikeForImportDeclaration(importer).symbol);\n}\nfunction getSourceFileLikeForImportDeclaration(node) {\n if (node.kind === 214 /* CallExpression */ || node.kind === 352 /* JSDocImportTag */) {\n return node.getSourceFile();\n }\n const { parent: parent2 } = node;\n if (parent2.kind === 308 /* SourceFile */) {\n return parent2;\n }\n Debug.assert(parent2.kind === 269 /* ModuleBlock */);\n return cast(parent2.parent, isAmbientModuleDeclaration);\n}\nfunction isAmbientModuleDeclaration(node) {\n return node.kind === 268 /* ModuleDeclaration */ && node.name.kind === 11 /* StringLiteral */;\n}\nfunction isExternalModuleImportEquals(eq) {\n return eq.moduleReference.kind === 284 /* ExternalModuleReference */ && eq.moduleReference.expression.kind === 11 /* StringLiteral */;\n}\n\n// src/services/findAllReferences.ts\nvar DefinitionKind = /* @__PURE__ */ ((DefinitionKind2) => {\n DefinitionKind2[DefinitionKind2[\"Symbol\"] = 0] = \"Symbol\";\n DefinitionKind2[DefinitionKind2[\"Label\"] = 1] = \"Label\";\n DefinitionKind2[DefinitionKind2[\"Keyword\"] = 2] = \"Keyword\";\n DefinitionKind2[DefinitionKind2[\"This\"] = 3] = \"This\";\n DefinitionKind2[DefinitionKind2[\"String\"] = 4] = \"String\";\n DefinitionKind2[DefinitionKind2[\"TripleSlashReference\"] = 5] = \"TripleSlashReference\";\n return DefinitionKind2;\n})(DefinitionKind || {});\nvar EntryKind = /* @__PURE__ */ ((EntryKind2) => {\n EntryKind2[EntryKind2[\"Span\"] = 0] = \"Span\";\n EntryKind2[EntryKind2[\"Node\"] = 1] = \"Node\";\n EntryKind2[EntryKind2[\"StringLiteral\"] = 2] = \"StringLiteral\";\n EntryKind2[EntryKind2[\"SearchedLocalFoundProperty\"] = 3] = \"SearchedLocalFoundProperty\";\n EntryKind2[EntryKind2[\"SearchedPropertyFoundLocal\"] = 4] = \"SearchedPropertyFoundLocal\";\n return EntryKind2;\n})(EntryKind || {});\nfunction nodeEntry(node, kind = 1 /* Node */) {\n return {\n kind,\n node: node.name || node,\n context: getContextNodeForNodeEntry(node)\n };\n}\nfunction isContextWithStartAndEndNode(node) {\n return node && node.kind === void 0;\n}\nfunction getContextNodeForNodeEntry(node) {\n if (isDeclaration(node)) {\n return getContextNode(node);\n }\n if (!node.parent) return void 0;\n if (!isDeclaration(node.parent) && !isExportAssignment(node.parent)) {\n if (isInJSFile(node)) {\n const binaryExpression = isBinaryExpression(node.parent) ? node.parent : isAccessExpression(node.parent) && isBinaryExpression(node.parent.parent) && node.parent.parent.left === node.parent ? node.parent.parent : void 0;\n if (binaryExpression && getAssignmentDeclarationKind(binaryExpression) !== 0 /* None */) {\n return getContextNode(binaryExpression);\n }\n }\n if (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) {\n return node.parent.parent;\n } else if (isJsxSelfClosingElement(node.parent) || isLabeledStatement(node.parent) || isBreakOrContinueStatement(node.parent)) {\n return node.parent;\n } else if (isStringLiteralLike(node)) {\n const validImport = tryGetImportFromModuleSpecifier(node);\n if (validImport) {\n const declOrStatement = findAncestor(validImport, (node2) => isDeclaration(node2) || isStatement(node2) || isJSDocTag(node2));\n return isDeclaration(declOrStatement) ? getContextNode(declOrStatement) : declOrStatement;\n }\n }\n const propertyName = findAncestor(node, isComputedPropertyName);\n return propertyName ? getContextNode(propertyName.parent) : void 0;\n }\n if (node.parent.name === node || // node is name of declaration, use parent\n isConstructorDeclaration(node.parent) || isExportAssignment(node.parent) || // Property name of the import export specifier or binding pattern, use parent\n (isImportOrExportSpecifier(node.parent) || isBindingElement(node.parent)) && node.parent.propertyName === node || // Is default export\n node.kind === 90 /* DefaultKeyword */ && hasSyntacticModifier(node.parent, 2080 /* ExportDefault */)) {\n return getContextNode(node.parent);\n }\n return void 0;\n}\nfunction getContextNode(node) {\n if (!node) return void 0;\n switch (node.kind) {\n case 261 /* VariableDeclaration */:\n return !isVariableDeclarationList(node.parent) || node.parent.declarations.length !== 1 ? node : isVariableStatement(node.parent.parent) ? node.parent.parent : isForInOrOfStatement(node.parent.parent) ? getContextNode(node.parent.parent) : node.parent;\n case 209 /* BindingElement */:\n return getContextNode(node.parent.parent);\n case 277 /* ImportSpecifier */:\n return node.parent.parent.parent;\n case 282 /* ExportSpecifier */:\n case 275 /* NamespaceImport */:\n return node.parent.parent;\n case 274 /* ImportClause */:\n case 281 /* NamespaceExport */:\n return node.parent;\n case 227 /* BinaryExpression */:\n return isExpressionStatement(node.parent) ? node.parent : node;\n case 251 /* ForOfStatement */:\n case 250 /* ForInStatement */:\n return {\n start: node.initializer,\n end: node.expression\n };\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n return isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent) ? getContextNode(\n findAncestor(node.parent, (node2) => isBinaryExpression(node2) || isForInOrOfStatement(node2))\n ) : node;\n case 256 /* SwitchStatement */:\n return {\n start: find(node.getChildren(node.getSourceFile()), (node2) => node2.kind === 109 /* SwitchKeyword */),\n end: node.caseBlock\n };\n default:\n return node;\n }\n}\nfunction toContextSpan(textSpan, sourceFile, context) {\n if (!context) return void 0;\n const contextSpan = isContextWithStartAndEndNode(context) ? getTextSpan(context.start, sourceFile, context.end) : getTextSpan(context, sourceFile);\n return contextSpan.start !== textSpan.start || contextSpan.length !== textSpan.length ? { contextSpan } : void 0;\n}\nvar FindReferencesUse = /* @__PURE__ */ ((FindReferencesUse2) => {\n FindReferencesUse2[FindReferencesUse2[\"Other\"] = 0] = \"Other\";\n FindReferencesUse2[FindReferencesUse2[\"References\"] = 1] = \"References\";\n FindReferencesUse2[FindReferencesUse2[\"Rename\"] = 2] = \"Rename\";\n return FindReferencesUse2;\n})(FindReferencesUse || {});\nfunction findReferencedSymbols(program, cancellationToken, sourceFiles, sourceFile, position) {\n const node = getTouchingPropertyName(sourceFile, position);\n const options = { use: 1 /* References */ };\n const referencedSymbols = Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options);\n const checker = program.getTypeChecker();\n const adjustedNode = Core.getAdjustedNode(node, options);\n const symbol = isDefinitionForReference(adjustedNode) ? checker.getSymbolAtLocation(adjustedNode) : void 0;\n return !referencedSymbols || !referencedSymbols.length ? void 0 : mapDefined(referencedSymbols, ({ definition, references }) => (\n // Only include referenced symbols that have a valid definition.\n definition && {\n definition: checker.runWithCancellationToken(cancellationToken, (checker2) => definitionToReferencedSymbolDefinitionInfo(definition, checker2, node)),\n references: references.map((r) => toReferencedSymbolEntry(r, symbol))\n }\n ));\n}\nfunction isDefinitionForReference(node) {\n return node.kind === 90 /* DefaultKeyword */ || !!getDeclarationFromName(node) || isLiteralComputedPropertyDeclarationName(node) || node.kind === 137 /* ConstructorKeyword */ && isConstructorDeclaration(node.parent);\n}\nfunction getImplementationsAtPosition(program, cancellationToken, sourceFiles, sourceFile, position) {\n const node = getTouchingPropertyName(sourceFile, position);\n let referenceEntries;\n const entries = getImplementationReferenceEntries(program, cancellationToken, sourceFiles, node, position);\n if (node.parent.kind === 212 /* PropertyAccessExpression */ || node.parent.kind === 209 /* BindingElement */ || node.parent.kind === 213 /* ElementAccessExpression */ || node.kind === 108 /* SuperKeyword */) {\n referenceEntries = entries && [...entries];\n } else if (entries) {\n const queue = createQueue(entries);\n const seenNodes = /* @__PURE__ */ new Set();\n while (!queue.isEmpty()) {\n const entry = queue.dequeue();\n if (!addToSeen(seenNodes, getNodeId(entry.node))) {\n continue;\n }\n referenceEntries = append(referenceEntries, entry);\n const entries2 = getImplementationReferenceEntries(program, cancellationToken, sourceFiles, entry.node, entry.node.pos);\n if (entries2) {\n queue.enqueue(...entries2);\n }\n }\n }\n const checker = program.getTypeChecker();\n return map(referenceEntries, (entry) => toImplementationLocation(entry, checker));\n}\nfunction getImplementationReferenceEntries(program, cancellationToken, sourceFiles, node, position) {\n if (node.kind === 308 /* SourceFile */) {\n return void 0;\n }\n const checker = program.getTypeChecker();\n if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n const result = [];\n Core.getReferenceEntriesForShorthandPropertyAssignment(node, checker, (node2) => result.push(nodeEntry(node2)));\n return result;\n } else if (node.kind === 108 /* SuperKeyword */ || isSuperProperty(node.parent)) {\n const symbol = checker.getSymbolAtLocation(node);\n return symbol.valueDeclaration && [nodeEntry(symbol.valueDeclaration)];\n } else {\n return getReferenceEntriesForNode(position, node, program, sourceFiles, cancellationToken, { implementations: true, use: 1 /* References */ });\n }\n}\nfunction findReferenceOrRenameEntries(program, cancellationToken, sourceFiles, node, position, options, convertEntry) {\n return map(flattenEntries(Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options)), (entry) => convertEntry(entry, node, program.getTypeChecker()));\n}\nfunction getReferenceEntriesForNode(position, node, program, sourceFiles, cancellationToken, options = {}, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n return flattenEntries(Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options, sourceFilesSet));\n}\nfunction flattenEntries(referenceSymbols) {\n return referenceSymbols && flatMap(referenceSymbols, (r) => r.references);\n}\nfunction definitionToReferencedSymbolDefinitionInfo(def, checker, originalNode) {\n const info = (() => {\n switch (def.type) {\n case 0 /* Symbol */: {\n const { symbol } = def;\n const { displayParts: displayParts2, kind: kind2 } = getDefinitionKindAndDisplayParts(symbol, checker, originalNode);\n const name2 = displayParts2.map((p) => p.text).join(\"\");\n const declaration = symbol.declarations && firstOrUndefined(symbol.declarations);\n const node = declaration ? getNameOfDeclaration(declaration) || declaration : originalNode;\n return {\n ...getFileAndTextSpanFromNode(node),\n name: name2,\n kind: kind2,\n displayParts: displayParts2,\n context: getContextNode(declaration)\n };\n }\n case 1 /* Label */: {\n const { node } = def;\n return { ...getFileAndTextSpanFromNode(node), name: node.text, kind: \"label\" /* label */, displayParts: [displayPart(node.text, 17 /* text */)] };\n }\n case 2 /* Keyword */: {\n const { node } = def;\n const name2 = tokenToString(node.kind);\n return { ...getFileAndTextSpanFromNode(node), name: name2, kind: \"keyword\" /* keyword */, displayParts: [{ text: name2, kind: \"keyword\" /* keyword */ }] };\n }\n case 3 /* This */: {\n const { node } = def;\n const symbol = checker.getSymbolAtLocation(node);\n const displayParts2 = symbol && ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(\n checker,\n symbol,\n node.getSourceFile(),\n getContainerNode(node),\n node\n ).displayParts || [textPart(\"this\")];\n return { ...getFileAndTextSpanFromNode(node), name: \"this\", kind: \"var\" /* variableElement */, displayParts: displayParts2 };\n }\n case 4 /* String */: {\n const { node } = def;\n return {\n ...getFileAndTextSpanFromNode(node),\n name: node.text,\n kind: \"var\" /* variableElement */,\n displayParts: [displayPart(getTextOfNode(node), 8 /* stringLiteral */)]\n };\n }\n case 5 /* TripleSlashReference */: {\n return {\n textSpan: createTextSpanFromRange(def.reference),\n sourceFile: def.file,\n name: def.reference.fileName,\n kind: \"string\" /* string */,\n displayParts: [displayPart(`\"${def.reference.fileName}\"`, 8 /* stringLiteral */)]\n };\n }\n default:\n return Debug.assertNever(def);\n }\n })();\n const { sourceFile, textSpan, name, kind, displayParts, context } = info;\n return {\n containerKind: \"\" /* unknown */,\n containerName: \"\",\n fileName: sourceFile.fileName,\n kind,\n name,\n textSpan,\n displayParts,\n ...toContextSpan(textSpan, sourceFile, context)\n };\n}\nfunction getFileAndTextSpanFromNode(node) {\n const sourceFile = node.getSourceFile();\n return {\n sourceFile,\n textSpan: getTextSpan(isComputedPropertyName(node) ? node.expression : node, sourceFile)\n };\n}\nfunction getDefinitionKindAndDisplayParts(symbol, checker, node) {\n const meaning = Core.getIntersectingMeaningFromDeclarations(node, symbol);\n const enclosingDeclaration = symbol.declarations && firstOrUndefined(symbol.declarations) || node;\n const { displayParts, symbolKind } = ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker, symbol, enclosingDeclaration.getSourceFile(), enclosingDeclaration, enclosingDeclaration, meaning);\n return { displayParts, kind: symbolKind };\n}\nfunction toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText, quotePreference) {\n return { ...entryToDocumentSpan(entry), ...providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker, quotePreference) };\n}\nfunction toReferencedSymbolEntry(entry, symbol) {\n const referenceEntry = toReferenceEntry(entry);\n if (!symbol) return referenceEntry;\n return {\n ...referenceEntry,\n isDefinition: entry.kind !== 0 /* Span */ && isDeclarationOfSymbol(entry.node, symbol)\n };\n}\nfunction toReferenceEntry(entry) {\n const documentSpan = entryToDocumentSpan(entry);\n if (entry.kind === 0 /* Span */) {\n return { ...documentSpan, isWriteAccess: false };\n }\n const { kind, node } = entry;\n return {\n ...documentSpan,\n isWriteAccess: isWriteAccessForReference(node),\n isInString: kind === 2 /* StringLiteral */ ? true : void 0\n };\n}\nfunction entryToDocumentSpan(entry) {\n if (entry.kind === 0 /* Span */) {\n return { textSpan: entry.textSpan, fileName: entry.fileName };\n } else {\n const sourceFile = entry.node.getSourceFile();\n const textSpan = getTextSpan(entry.node, sourceFile);\n return {\n textSpan,\n fileName: sourceFile.fileName,\n ...toContextSpan(textSpan, sourceFile, entry.context)\n };\n }\n}\nfunction getPrefixAndSuffixText(entry, originalNode, checker, quotePreference) {\n if (entry.kind !== 0 /* Span */ && (isIdentifier(originalNode) || isStringLiteralLike(originalNode))) {\n const { node, kind } = entry;\n const parent2 = node.parent;\n const name = originalNode.text;\n const isShorthandAssignment = isShorthandPropertyAssignment(parent2);\n if (isShorthandAssignment || isObjectBindingElementWithoutPropertyName(parent2) && parent2.name === node && parent2.dotDotDotToken === void 0) {\n const prefixColon = { prefixText: name + \": \" };\n const suffixColon = { suffixText: \": \" + name };\n if (kind === 3 /* SearchedLocalFoundProperty */) {\n return prefixColon;\n }\n if (kind === 4 /* SearchedPropertyFoundLocal */) {\n return suffixColon;\n }\n if (isShorthandAssignment) {\n const grandParent = parent2.parent;\n if (isObjectLiteralExpression(grandParent) && isBinaryExpression(grandParent.parent) && isModuleExportsAccessExpression(grandParent.parent.left)) {\n return prefixColon;\n }\n return suffixColon;\n } else {\n return prefixColon;\n }\n } else if (isImportSpecifier(parent2) && !parent2.propertyName) {\n const originalSymbol = isExportSpecifier(originalNode.parent) ? checker.getExportSpecifierLocalTargetSymbol(originalNode.parent) : checker.getSymbolAtLocation(originalNode);\n return contains(originalSymbol.declarations, parent2) ? { prefixText: name + \" as \" } : emptyOptions;\n } else if (isExportSpecifier(parent2) && !parent2.propertyName) {\n return originalNode === entry.node || checker.getSymbolAtLocation(originalNode) === checker.getSymbolAtLocation(entry.node) ? { prefixText: name + \" as \" } : { suffixText: \" as \" + name };\n }\n }\n if (entry.kind !== 0 /* Span */ && isNumericLiteral(entry.node) && isAccessExpression(entry.node.parent)) {\n const quote2 = getQuoteFromPreference(quotePreference);\n return { prefixText: quote2, suffixText: quote2 };\n }\n return emptyOptions;\n}\nfunction toImplementationLocation(entry, checker) {\n const documentSpan = entryToDocumentSpan(entry);\n if (entry.kind !== 0 /* Span */) {\n const { node } = entry;\n return {\n ...documentSpan,\n ...implementationKindDisplayParts(node, checker)\n };\n } else {\n return { ...documentSpan, kind: \"\" /* unknown */, displayParts: [] };\n }\n}\nfunction implementationKindDisplayParts(node, checker) {\n const symbol = checker.getSymbolAtLocation(isDeclaration(node) && node.name ? node.name : node);\n if (symbol) {\n return getDefinitionKindAndDisplayParts(symbol, checker, node);\n } else if (node.kind === 211 /* ObjectLiteralExpression */) {\n return {\n kind: \"interface\" /* interfaceElement */,\n displayParts: [punctuationPart(21 /* OpenParenToken */), textPart(\"object literal\"), punctuationPart(22 /* CloseParenToken */)]\n };\n } else if (node.kind === 232 /* ClassExpression */) {\n return {\n kind: \"local class\" /* localClassElement */,\n displayParts: [punctuationPart(21 /* OpenParenToken */), textPart(\"anonymous local class\"), punctuationPart(22 /* CloseParenToken */)]\n };\n } else {\n return { kind: getNodeKind(node), displayParts: [] };\n }\n}\nfunction toHighlightSpan(entry) {\n const documentSpan = entryToDocumentSpan(entry);\n if (entry.kind === 0 /* Span */) {\n return {\n fileName: documentSpan.fileName,\n span: {\n textSpan: documentSpan.textSpan,\n kind: \"reference\" /* reference */\n }\n };\n }\n const writeAccess = isWriteAccessForReference(entry.node);\n const span = {\n textSpan: documentSpan.textSpan,\n kind: writeAccess ? \"writtenReference\" /* writtenReference */ : \"reference\" /* reference */,\n isInString: entry.kind === 2 /* StringLiteral */ ? true : void 0,\n ...documentSpan.contextSpan && { contextSpan: documentSpan.contextSpan }\n };\n return { fileName: documentSpan.fileName, span };\n}\nfunction getTextSpan(node, sourceFile, endNode2) {\n let start = node.getStart(sourceFile);\n let end = (endNode2 || node).getEnd();\n if (isStringLiteralLike(node) && end - start > 2) {\n Debug.assert(endNode2 === void 0);\n start += 1;\n end -= 1;\n }\n if ((endNode2 == null ? void 0 : endNode2.kind) === 270 /* CaseBlock */) {\n end = endNode2.getFullStart();\n }\n return createTextSpanFromBounds(start, end);\n}\nfunction getTextSpanOfEntry(entry) {\n return entry.kind === 0 /* Span */ ? entry.textSpan : getTextSpan(entry.node, entry.node.getSourceFile());\n}\nfunction isWriteAccessForReference(node) {\n const decl = getDeclarationFromName(node);\n return !!decl && declarationIsWriteAccess(decl) || node.kind === 90 /* DefaultKeyword */ || isWriteAccess(node);\n}\nfunction isDeclarationOfSymbol(node, target) {\n var _a;\n if (!target) return false;\n const source = getDeclarationFromName(node) || (node.kind === 90 /* DefaultKeyword */ ? node.parent : isLiteralComputedPropertyDeclarationName(node) ? node.parent.parent : node.kind === 137 /* ConstructorKeyword */ && isConstructorDeclaration(node.parent) ? node.parent.parent : void 0);\n const commonjsSource = source && isBinaryExpression(source) ? source.left : void 0;\n return !!(source && ((_a = target.declarations) == null ? void 0 : _a.some((d) => d === source || d === commonjsSource)));\n}\nfunction declarationIsWriteAccess(decl) {\n if (!!(decl.flags & 33554432 /* Ambient */)) return true;\n switch (decl.kind) {\n case 227 /* BinaryExpression */:\n case 209 /* BindingElement */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 90 /* DefaultKeyword */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 282 /* ExportSpecifier */:\n case 274 /* ImportClause */:\n // default import\n case 272 /* ImportEqualsDeclaration */:\n case 277 /* ImportSpecifier */:\n case 265 /* InterfaceDeclaration */:\n case 339 /* JSDocCallbackTag */:\n case 347 /* JSDocTypedefTag */:\n case 292 /* JsxAttribute */:\n case 268 /* ModuleDeclaration */:\n case 271 /* NamespaceExportDeclaration */:\n case 275 /* NamespaceImport */:\n case 281 /* NamespaceExport */:\n case 170 /* Parameter */:\n case 305 /* ShorthandPropertyAssignment */:\n case 266 /* TypeAliasDeclaration */:\n case 169 /* TypeParameter */:\n return true;\n case 304 /* PropertyAssignment */:\n return !isArrayLiteralOrObjectLiteralDestructuringPattern(decl.parent);\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 177 /* Constructor */:\n case 175 /* MethodDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return !!decl.body;\n case 261 /* VariableDeclaration */:\n case 173 /* PropertyDeclaration */:\n return !!decl.initializer || isCatchClause(decl.parent);\n case 174 /* MethodSignature */:\n case 172 /* PropertySignature */:\n case 349 /* JSDocPropertyTag */:\n case 342 /* JSDocParameterTag */:\n return false;\n default:\n return Debug.failBadSyntaxKind(decl);\n }\n}\nvar Core;\n((Core2) => {\n function getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options = {}, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n var _a, _b;\n node = getAdjustedNode2(node, options);\n if (isSourceFile(node)) {\n const resolvedRef = ts_GoToDefinition_exports.getReferenceAtPosition(node, position, program);\n if (!(resolvedRef == null ? void 0 : resolvedRef.file)) {\n return void 0;\n }\n const moduleSymbol = program.getTypeChecker().getMergedSymbol(resolvedRef.file.symbol);\n if (moduleSymbol) {\n return getReferencedSymbolsForModule(\n program,\n moduleSymbol,\n /*excludeImportTypeOfExportEquals*/\n false,\n sourceFiles,\n sourceFilesSet\n );\n }\n const fileIncludeReasons = program.getFileIncludeReasons();\n if (!fileIncludeReasons) {\n return void 0;\n }\n return [{\n definition: { type: 5 /* TripleSlashReference */, reference: resolvedRef.reference, file: node },\n references: getReferencesForNonModule(resolvedRef.file, fileIncludeReasons, program) || emptyArray\n }];\n }\n if (!options.implementations) {\n const special = getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken);\n if (special) {\n return special;\n }\n }\n const checker = program.getTypeChecker();\n const symbol = checker.getSymbolAtLocation(isConstructorDeclaration(node) && node.parent.name || node);\n if (!symbol) {\n if (!options.implementations && isStringLiteralLike(node)) {\n if (isModuleSpecifierLike(node)) {\n const fileIncludeReasons = program.getFileIncludeReasons();\n const referencedFileName = (_b = (_a = program.getResolvedModuleFromModuleSpecifier(node)) == null ? void 0 : _a.resolvedModule) == null ? void 0 : _b.resolvedFileName;\n const referencedFile = referencedFileName ? program.getSourceFile(referencedFileName) : void 0;\n if (referencedFile) {\n return [{ definition: { type: 4 /* String */, node }, references: getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray }];\n }\n }\n return getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken);\n }\n return void 0;\n }\n if (symbol.escapedName === \"export=\" /* ExportEquals */) {\n return getReferencedSymbolsForModule(\n program,\n symbol.parent,\n /*excludeImportTypeOfExportEquals*/\n false,\n sourceFiles,\n sourceFilesSet\n );\n }\n const moduleReferences = getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet);\n if (moduleReferences && !(symbol.flags & 33554432 /* Transient */)) {\n return moduleReferences;\n }\n const aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker);\n const moduleReferencesOfExportTarget = aliasedSymbol && getReferencedSymbolsForModuleIfDeclaredBySourceFile(aliasedSymbol, program, sourceFiles, cancellationToken, options, sourceFilesSet);\n const references = getReferencedSymbolsForSymbol(symbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options);\n return mergeReferences(program, moduleReferences, references, moduleReferencesOfExportTarget);\n }\n Core2.getReferencedSymbolsForNode = getReferencedSymbolsForNode;\n function getAdjustedNode2(node, options) {\n if (options.use === 1 /* References */) {\n node = getAdjustedReferenceLocation(node);\n } else if (options.use === 2 /* Rename */) {\n node = getAdjustedRenameLocation(node);\n }\n return node;\n }\n Core2.getAdjustedNode = getAdjustedNode2;\n function getReferencesForFileName(fileName, program, sourceFiles, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n var _a, _b;\n const moduleSymbol = (_a = program.getSourceFile(fileName)) == null ? void 0 : _a.symbol;\n if (moduleSymbol) {\n return ((_b = getReferencedSymbolsForModule(\n program,\n moduleSymbol,\n /*excludeImportTypeOfExportEquals*/\n false,\n sourceFiles,\n sourceFilesSet\n )[0]) == null ? void 0 : _b.references) || emptyArray;\n }\n const fileIncludeReasons = program.getFileIncludeReasons();\n const referencedFile = program.getSourceFile(fileName);\n return referencedFile && fileIncludeReasons && getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray;\n }\n Core2.getReferencesForFileName = getReferencesForFileName;\n function getReferencesForNonModule(referencedFile, refFileMap, program) {\n let entries;\n const references = refFileMap.get(referencedFile.path) || emptyArray;\n for (const ref of references) {\n if (isReferencedFile(ref)) {\n const referencingFile = program.getSourceFileByPath(ref.file);\n const location = getReferencedFileLocation(program, ref);\n if (isReferenceFileLocation(location)) {\n entries = append(entries, {\n kind: 0 /* Span */,\n fileName: referencingFile.fileName,\n textSpan: createTextSpanFromRange(location)\n });\n }\n }\n }\n return entries;\n }\n function getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker) {\n if (node.parent && isNamespaceExportDeclaration(node.parent)) {\n const aliasedSymbol = checker.getAliasedSymbol(symbol);\n const targetSymbol = checker.getMergedSymbol(aliasedSymbol);\n if (aliasedSymbol !== targetSymbol) {\n return targetSymbol;\n }\n }\n return void 0;\n }\n function getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet) {\n const moduleSourceFile = symbol.flags & 1536 /* Module */ && symbol.declarations && find(symbol.declarations, isSourceFile);\n if (!moduleSourceFile) return void 0;\n const exportEquals = symbol.exports.get(\"export=\" /* ExportEquals */);\n const moduleReferences = getReferencedSymbolsForModule(program, symbol, !!exportEquals, sourceFiles, sourceFilesSet);\n if (!exportEquals || !sourceFilesSet.has(moduleSourceFile.fileName)) return moduleReferences;\n const checker = program.getTypeChecker();\n symbol = skipAlias(exportEquals, checker);\n return mergeReferences(program, moduleReferences, getReferencedSymbolsForSymbol(\n symbol,\n /*node*/\n void 0,\n sourceFiles,\n sourceFilesSet,\n checker,\n cancellationToken,\n options\n ));\n }\n function mergeReferences(program, ...referencesToMerge) {\n let result;\n for (const references of referencesToMerge) {\n if (!references || !references.length) continue;\n if (!result) {\n result = references;\n continue;\n }\n for (const entry of references) {\n if (!entry.definition || entry.definition.type !== 0 /* Symbol */) {\n result.push(entry);\n continue;\n }\n const symbol = entry.definition.symbol;\n const refIndex = findIndex(result, (ref) => !!ref.definition && ref.definition.type === 0 /* Symbol */ && ref.definition.symbol === symbol);\n if (refIndex === -1) {\n result.push(entry);\n continue;\n }\n const reference = result[refIndex];\n result[refIndex] = {\n definition: reference.definition,\n references: reference.references.concat(entry.references).sort((entry1, entry2) => {\n const entry1File = getSourceFileIndexOfEntry(program, entry1);\n const entry2File = getSourceFileIndexOfEntry(program, entry2);\n if (entry1File !== entry2File) {\n return compareValues(entry1File, entry2File);\n }\n const entry1Span = getTextSpanOfEntry(entry1);\n const entry2Span = getTextSpanOfEntry(entry2);\n return entry1Span.start !== entry2Span.start ? compareValues(entry1Span.start, entry2Span.start) : compareValues(entry1Span.length, entry2Span.length);\n })\n };\n }\n }\n return result;\n }\n function getSourceFileIndexOfEntry(program, entry) {\n const sourceFile = entry.kind === 0 /* Span */ ? program.getSourceFile(entry.fileName) : entry.node.getSourceFile();\n return program.getSourceFiles().indexOf(sourceFile);\n }\n function getReferencedSymbolsForModule(program, symbol, excludeImportTypeOfExportEquals, sourceFiles, sourceFilesSet) {\n Debug.assert(!!symbol.valueDeclaration);\n const references = mapDefined(findModuleReferences(program, sourceFiles, symbol), (reference) => {\n if (reference.kind === \"import\") {\n const parent2 = reference.literal.parent;\n if (isLiteralTypeNode(parent2)) {\n const importType = cast(parent2.parent, isImportTypeNode);\n if (excludeImportTypeOfExportEquals && !importType.qualifier) {\n return void 0;\n }\n }\n return nodeEntry(reference.literal);\n } else if (reference.kind === \"implicit\") {\n const range = reference.literal.text !== externalHelpersModuleNameText && forEachChildRecursively(\n reference.referencingFile,\n (n) => !(n.transformFlags & 2 /* ContainsJsx */) ? \"skip\" : isJsxElement(n) || isJsxSelfClosingElement(n) || isJsxFragment(n) ? n : void 0\n ) || reference.referencingFile.statements[0] || reference.referencingFile;\n return nodeEntry(range);\n } else {\n return {\n kind: 0 /* Span */,\n fileName: reference.referencingFile.fileName,\n textSpan: createTextSpanFromRange(reference.ref)\n };\n }\n });\n if (symbol.declarations) {\n for (const decl of symbol.declarations) {\n switch (decl.kind) {\n case 308 /* SourceFile */:\n break;\n case 268 /* ModuleDeclaration */:\n if (sourceFilesSet.has(decl.getSourceFile().fileName)) {\n references.push(nodeEntry(decl.name));\n }\n break;\n default:\n Debug.assert(!!(symbol.flags & 33554432 /* Transient */), \"Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.\");\n }\n }\n }\n const exported = symbol.exports.get(\"export=\" /* ExportEquals */);\n if (exported == null ? void 0 : exported.declarations) {\n for (const decl of exported.declarations) {\n const sourceFile = decl.getSourceFile();\n if (sourceFilesSet.has(sourceFile.fileName)) {\n const node = isBinaryExpression(decl) && isPropertyAccessExpression(decl.left) ? decl.left.expression : isExportAssignment(decl) ? Debug.checkDefined(findChildOfKind(decl, 95 /* ExportKeyword */, sourceFile)) : getNameOfDeclaration(decl) || decl;\n references.push(nodeEntry(node));\n }\n }\n }\n return references.length ? [{ definition: { type: 0 /* Symbol */, symbol }, references }] : emptyArray;\n }\n function isReadonlyTypeOperator(node) {\n return node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(node.parent) && node.parent.operator === 148 /* ReadonlyKeyword */;\n }\n function getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken) {\n if (isTypeKeyword(node.kind)) {\n if (node.kind === 116 /* VoidKeyword */ && isVoidExpression(node.parent)) {\n return void 0;\n }\n if (node.kind === 148 /* ReadonlyKeyword */ && !isReadonlyTypeOperator(node)) {\n return void 0;\n }\n return getAllReferencesForKeyword(\n sourceFiles,\n node.kind,\n cancellationToken,\n node.kind === 148 /* ReadonlyKeyword */ ? isReadonlyTypeOperator : void 0\n );\n }\n if (isImportMeta(node.parent) && node.parent.name === node) {\n return getAllReferencesForImportMeta(sourceFiles, cancellationToken);\n }\n if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) {\n return [{ definition: { type: 2 /* Keyword */, node }, references: [nodeEntry(node)] }];\n }\n if (isJumpStatementTarget(node)) {\n const labelDefinition = getTargetLabel(node.parent, node.text);\n return labelDefinition && getLabelReferencesInNode(labelDefinition.parent, labelDefinition);\n } else if (isLabelOfLabeledStatement(node)) {\n return getLabelReferencesInNode(node.parent, node);\n }\n if (isThis(node)) {\n return getReferencesForThisKeyword(node, sourceFiles, cancellationToken);\n }\n if (node.kind === 108 /* SuperKeyword */) {\n return getReferencesForSuperKeyword(node);\n }\n return void 0;\n }\n function getReferencedSymbolsForSymbol(originalSymbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options) {\n const symbol = node && skipPastExportOrImportSpecifierOrUnion(\n originalSymbol,\n node,\n checker,\n /*useLocalSymbolForExportSpecifier*/\n !isForRenameWithPrefixAndSuffixText(options)\n ) || originalSymbol;\n const searchMeaning = node && options.use !== 2 /* Rename */ ? getIntersectingMeaningFromDeclarations(node, symbol) : 7 /* All */;\n const result = [];\n const state = new State(sourceFiles, sourceFilesSet, node ? getSpecialSearchKind(node) : 0 /* None */, checker, cancellationToken, searchMeaning, options, result);\n const exportSpecifier = !isForRenameWithPrefixAndSuffixText(options) || !symbol.declarations ? void 0 : find(symbol.declarations, isExportSpecifier);\n if (exportSpecifier) {\n getReferencesAtExportSpecifier(\n exportSpecifier.name,\n symbol,\n exportSpecifier,\n state.createSearch(\n node,\n originalSymbol,\n /*comingFrom*/\n void 0\n ),\n state,\n /*addReferencesHere*/\n true,\n /*alwaysGetReferences*/\n true\n );\n } else if (node && node.kind === 90 /* DefaultKeyword */ && symbol.escapedName === \"default\" /* Default */ && symbol.parent) {\n addReference(node, symbol, state);\n searchForImportsOfExport(node, symbol, { exportingModuleSymbol: symbol.parent, exportKind: 1 /* Default */ }, state);\n } else {\n const search = state.createSearch(\n node,\n symbol,\n /*comingFrom*/\n void 0,\n { allSearchSymbols: node ? populateSearchSymbolSet(symbol, node, checker, options.use === 2 /* Rename */, !!options.providePrefixAndSuffixTextForRename, !!options.implementations) : [symbol] }\n );\n getReferencesInContainerOrFiles(symbol, state, search);\n }\n return result;\n }\n function getReferencesInContainerOrFiles(symbol, state, search) {\n const scope = getSymbolScope(symbol);\n if (scope) {\n getReferencesInContainer(\n scope,\n scope.getSourceFile(),\n search,\n state,\n /*addReferencesHere*/\n !(isSourceFile(scope) && !contains(state.sourceFiles, scope))\n );\n } else {\n for (const sourceFile of state.sourceFiles) {\n state.cancellationToken.throwIfCancellationRequested();\n searchForName(sourceFile, search, state);\n }\n }\n }\n function getSpecialSearchKind(node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n case 137 /* ConstructorKeyword */:\n return 1 /* Constructor */;\n case 80 /* Identifier */:\n if (isClassLike(node.parent)) {\n Debug.assert(node.parent.name === node);\n return 2 /* Class */;\n }\n // falls through\n default:\n return 0 /* None */;\n }\n }\n function skipPastExportOrImportSpecifierOrUnion(symbol, node, checker, useLocalSymbolForExportSpecifier) {\n const { parent: parent2 } = node;\n if (isExportSpecifier(parent2) && useLocalSymbolForExportSpecifier) {\n return getLocalSymbolForExportSpecifier(node, symbol, parent2, checker);\n }\n return firstDefined(symbol.declarations, (decl) => {\n if (!decl.parent) {\n if (symbol.flags & 33554432 /* Transient */) return void 0;\n Debug.fail(`Unexpected symbol at ${Debug.formatSyntaxKind(node.kind)}: ${Debug.formatSymbol(symbol)}`);\n }\n return isTypeLiteralNode(decl.parent) && isUnionTypeNode(decl.parent.parent) ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name) : void 0;\n });\n }\n let SpecialSearchKind;\n ((SpecialSearchKind2) => {\n SpecialSearchKind2[SpecialSearchKind2[\"None\"] = 0] = \"None\";\n SpecialSearchKind2[SpecialSearchKind2[\"Constructor\"] = 1] = \"Constructor\";\n SpecialSearchKind2[SpecialSearchKind2[\"Class\"] = 2] = \"Class\";\n })(SpecialSearchKind || (SpecialSearchKind = {}));\n function getNonModuleSymbolOfMergedModuleSymbol(symbol) {\n if (!(symbol.flags & (1536 /* Module */ | 33554432 /* Transient */))) return void 0;\n const decl = symbol.declarations && find(symbol.declarations, (d) => !isSourceFile(d) && !isModuleDeclaration(d));\n return decl && decl.symbol;\n }\n class State {\n constructor(sourceFiles, sourceFilesSet, specialSearchKind, checker, cancellationToken, searchMeaning, options, result) {\n this.sourceFiles = sourceFiles;\n this.sourceFilesSet = sourceFilesSet;\n this.specialSearchKind = specialSearchKind;\n this.checker = checker;\n this.cancellationToken = cancellationToken;\n this.searchMeaning = searchMeaning;\n this.options = options;\n this.result = result;\n /** Cache for `explicitlyinheritsFrom`. */\n this.inheritsFromCache = /* @__PURE__ */ new Map();\n /**\n * Type nodes can contain multiple references to the same type. For example:\n * let x: Foo & (Foo & Bar) = ...\n * Because we are returning the implementation locations and not the identifier locations,\n * duplicate entries would be returned here as each of the type references is part of\n * the same implementation. For that reason, check before we add a new entry.\n */\n this.markSeenContainingTypeReference = nodeSeenTracker();\n /**\n * It's possible that we will encounter the right side of `export { foo as bar } from \"x\";` more than once.\n * For example:\n * // b.ts\n * export { foo as bar } from \"./a\";\n * import { bar } from \"./b\";\n *\n * Normally at `foo as bar` we directly add `foo` and do not locally search for it (since it doesn't declare a local).\n * But another reference to it may appear in the same source file.\n * See `tests/cases/fourslash/transitiveExportImports3.ts`.\n */\n this.markSeenReExportRHS = nodeSeenTracker();\n this.symbolIdToReferences = [];\n // Source file ID -> symbol ID -> Whether the symbol has been searched for in the source file.\n this.sourceFileToSeenSymbols = [];\n }\n includesSourceFile(sourceFile) {\n return this.sourceFilesSet.has(sourceFile.fileName);\n }\n /** Gets every place to look for references of an exported symbols. See `ImportsResult` in `importTracker.ts` for more documentation. */\n getImportSearches(exportSymbol, exportInfo) {\n if (!this.importTracker) this.importTracker = createImportTracker(this.sourceFiles, this.sourceFilesSet, this.checker, this.cancellationToken);\n return this.importTracker(exportSymbol, exportInfo, this.options.use === 2 /* Rename */);\n }\n /** @param allSearchSymbols set of additional symbols for use by `includes`. */\n createSearch(location, symbol, comingFrom, searchOptions = {}) {\n const {\n text = stripQuotes(symbolName(getLocalSymbolForExportDefault(symbol) || getNonModuleSymbolOfMergedModuleSymbol(symbol) || symbol)),\n allSearchSymbols = [symbol]\n } = searchOptions;\n const escapedText = escapeLeadingUnderscores(text);\n const parents = this.options.implementations && location ? getParentSymbolsOfPropertyAccess(location, symbol, this.checker) : void 0;\n return { symbol, comingFrom, text, escapedText, parents, allSearchSymbols, includes: (sym) => contains(allSearchSymbols, sym) };\n }\n /**\n * Callback to add references for a particular searched symbol.\n * This initializes a reference group, so only call this if you will add at least one reference.\n */\n referenceAdder(searchSymbol) {\n const symbolId = getSymbolId(searchSymbol);\n let references = this.symbolIdToReferences[symbolId];\n if (!references) {\n references = this.symbolIdToReferences[symbolId] = [];\n this.result.push({ definition: { type: 0 /* Symbol */, symbol: searchSymbol }, references });\n }\n return (node, kind) => references.push(nodeEntry(node, kind));\n }\n /** Add a reference with no associated definition. */\n addStringOrCommentReference(fileName, textSpan) {\n this.result.push({\n definition: void 0,\n references: [{ kind: 0 /* Span */, fileName, textSpan }]\n });\n }\n /** Returns `true` the first time we search for a symbol in a file and `false` afterwards. */\n markSearchedSymbols(sourceFile, symbols) {\n const sourceId = getNodeId(sourceFile);\n const seenSymbols = this.sourceFileToSeenSymbols[sourceId] || (this.sourceFileToSeenSymbols[sourceId] = /* @__PURE__ */ new Set());\n let anyNewSymbols = false;\n for (const sym of symbols) {\n anyNewSymbols = tryAddToSet(seenSymbols, getSymbolId(sym)) || anyNewSymbols;\n }\n return anyNewSymbols;\n }\n }\n function searchForImportsOfExport(exportLocation, exportSymbol, exportInfo, state) {\n const { importSearches, singleReferences, indirectUsers } = state.getImportSearches(exportSymbol, exportInfo);\n if (singleReferences.length) {\n const addRef = state.referenceAdder(exportSymbol);\n for (const singleRef of singleReferences) {\n if (shouldAddSingleReference(singleRef, state)) addRef(singleRef);\n }\n }\n for (const [importLocation, importSymbol] of importSearches) {\n getReferencesInSourceFile(importLocation.getSourceFile(), state.createSearch(importLocation, importSymbol, 1 /* Export */), state);\n }\n if (indirectUsers.length) {\n let indirectSearch;\n switch (exportInfo.exportKind) {\n case 0 /* Named */:\n indirectSearch = state.createSearch(exportLocation, exportSymbol, 1 /* Export */);\n break;\n case 1 /* Default */:\n indirectSearch = state.options.use === 2 /* Rename */ ? void 0 : state.createSearch(exportLocation, exportSymbol, 1 /* Export */, { text: \"default\" });\n break;\n case 2 /* ExportEquals */:\n break;\n }\n if (indirectSearch) {\n for (const indirectUser of indirectUsers) {\n searchForName(indirectUser, indirectSearch, state);\n }\n }\n }\n }\n function eachExportReference(sourceFiles, checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName, isDefaultExport, cb) {\n const importTracker = createImportTracker(sourceFiles, new Set(sourceFiles.map((f) => f.fileName)), checker, cancellationToken);\n const { importSearches, indirectUsers, singleReferences } = importTracker(\n exportSymbol,\n { exportKind: isDefaultExport ? 1 /* Default */ : 0 /* Named */, exportingModuleSymbol },\n /*isForRename*/\n false\n );\n for (const [importLocation] of importSearches) {\n cb(importLocation);\n }\n for (const singleReference of singleReferences) {\n if (isIdentifier(singleReference) && isImportTypeNode(singleReference.parent)) {\n cb(singleReference);\n }\n }\n for (const indirectUser of indirectUsers) {\n for (const node of getPossibleSymbolReferenceNodes(indirectUser, isDefaultExport ? \"default\" : exportName)) {\n const symbol = checker.getSymbolAtLocation(node);\n const hasExportAssignmentDeclaration = some(symbol == null ? void 0 : symbol.declarations, (d) => tryCast(d, isExportAssignment) ? true : false);\n if (isIdentifier(node) && !isImportOrExportSpecifier(node.parent) && (symbol === exportSymbol || hasExportAssignmentDeclaration)) {\n cb(node);\n }\n }\n }\n }\n Core2.eachExportReference = eachExportReference;\n function shouldAddSingleReference(singleRef, state) {\n if (!hasMatchingMeaning(singleRef, state)) return false;\n if (state.options.use !== 2 /* Rename */) return true;\n if (!isIdentifier(singleRef) && !isImportOrExportSpecifier(singleRef.parent)) return false;\n return !(isImportOrExportSpecifier(singleRef.parent) && moduleExportNameIsDefault(singleRef));\n }\n function searchForImportedSymbol(symbol, state) {\n if (!symbol.declarations) return;\n for (const declaration of symbol.declarations) {\n const exportingFile = declaration.getSourceFile();\n getReferencesInSourceFile(exportingFile, state.createSearch(declaration, symbol, 0 /* Import */), state, state.includesSourceFile(exportingFile));\n }\n }\n function searchForName(sourceFile, search, state) {\n if (getNameTable(sourceFile).get(search.escapedText) !== void 0) {\n getReferencesInSourceFile(sourceFile, search, state);\n }\n }\n function getPropertySymbolOfDestructuringAssignment(location, checker) {\n return isArrayLiteralOrObjectLiteralDestructuringPattern(location.parent.parent) ? checker.getPropertySymbolOfDestructuringAssignment(location) : void 0;\n }\n function getSymbolScope(symbol) {\n const { declarations, flags, parent: parent2, valueDeclaration } = symbol;\n if (valueDeclaration && (valueDeclaration.kind === 219 /* FunctionExpression */ || valueDeclaration.kind === 232 /* ClassExpression */)) {\n return valueDeclaration;\n }\n if (!declarations) {\n return void 0;\n }\n if (flags & (4 /* Property */ | 8192 /* Method */)) {\n const privateDeclaration = find(declarations, (d) => hasEffectiveModifier(d, 2 /* Private */) || isPrivateIdentifierClassElementDeclaration(d));\n if (privateDeclaration) {\n return getAncestor(privateDeclaration, 264 /* ClassDeclaration */);\n }\n return void 0;\n }\n if (declarations.some(isObjectBindingElementWithoutPropertyName)) {\n return void 0;\n }\n const exposedByParent = parent2 && !(symbol.flags & 262144 /* TypeParameter */);\n if (exposedByParent && !(isExternalModuleSymbol(parent2) && !parent2.globalExports)) {\n return void 0;\n }\n let scope;\n for (const declaration of declarations) {\n const container = getContainerNode(declaration);\n if (scope && scope !== container) {\n return void 0;\n }\n if (!container || container.kind === 308 /* SourceFile */ && !isExternalOrCommonJsModule(container)) {\n return void 0;\n }\n scope = container;\n if (isFunctionExpression(scope)) {\n let next;\n while (next = getNextJSDocCommentLocation(scope)) {\n scope = next;\n }\n }\n }\n return exposedByParent ? scope.getSourceFile() : scope;\n }\n function isSymbolReferencedInFile(definition, checker, sourceFile, searchContainer = sourceFile) {\n return eachSymbolReferenceInFile(definition, checker, sourceFile, () => true, searchContainer) || false;\n }\n Core2.isSymbolReferencedInFile = isSymbolReferencedInFile;\n function eachSymbolReferenceInFile(definition, checker, sourceFile, cb, searchContainer = sourceFile) {\n const symbol = isParameterPropertyDeclaration(definition.parent, definition.parent.parent) ? first(checker.getSymbolsOfParameterPropertyDeclaration(definition.parent, definition.text)) : checker.getSymbolAtLocation(definition);\n if (!symbol) return void 0;\n for (const token of getPossibleSymbolReferenceNodes(sourceFile, symbol.name, searchContainer)) {\n if (!isIdentifier(token) || token === definition || token.escapedText !== definition.escapedText) continue;\n const referenceSymbol = checker.getSymbolAtLocation(token);\n if (referenceSymbol === symbol || checker.getShorthandAssignmentValueSymbol(token.parent) === symbol || isExportSpecifier(token.parent) && getLocalSymbolForExportSpecifier(token, referenceSymbol, token.parent, checker) === symbol) {\n const res = cb(token);\n if (res) return res;\n }\n }\n }\n Core2.eachSymbolReferenceInFile = eachSymbolReferenceInFile;\n function getTopMostDeclarationNamesInFile(declarationName, sourceFile) {\n const candidates = filter(getPossibleSymbolReferenceNodes(sourceFile, declarationName), (name) => !!getDeclarationFromName(name));\n return candidates.reduce((topMost, decl) => {\n const depth = getDepth(decl);\n if (!some(topMost.declarationNames) || depth === topMost.depth) {\n topMost.declarationNames.push(decl);\n topMost.depth = depth;\n } else if (depth < topMost.depth) {\n topMost.declarationNames = [decl];\n topMost.depth = depth;\n }\n return topMost;\n }, { depth: Infinity, declarationNames: [] }).declarationNames;\n function getDepth(declaration) {\n let depth = 0;\n while (declaration) {\n declaration = getContainerNode(declaration);\n depth++;\n }\n return depth;\n }\n }\n Core2.getTopMostDeclarationNamesInFile = getTopMostDeclarationNamesInFile;\n function someSignatureUsage(signature, sourceFiles, checker, cb) {\n if (!signature.name || !isIdentifier(signature.name)) return false;\n const symbol = Debug.checkDefined(checker.getSymbolAtLocation(signature.name));\n for (const sourceFile of sourceFiles) {\n for (const name of getPossibleSymbolReferenceNodes(sourceFile, symbol.name)) {\n if (!isIdentifier(name) || name === signature.name || name.escapedText !== signature.name.escapedText) continue;\n const called = climbPastPropertyAccess(name);\n const call = isCallExpression(called.parent) && called.parent.expression === called ? called.parent : void 0;\n const referenceSymbol = checker.getSymbolAtLocation(name);\n if (referenceSymbol && checker.getRootSymbols(referenceSymbol).some((s) => s === symbol)) {\n if (cb(name, call)) {\n return true;\n }\n }\n }\n }\n return false;\n }\n Core2.someSignatureUsage = someSignatureUsage;\n function getPossibleSymbolReferenceNodes(sourceFile, symbolName2, container = sourceFile) {\n return mapDefined(getPossibleSymbolReferencePositions(sourceFile, symbolName2, container), (pos) => {\n const referenceLocation = getTouchingPropertyName(sourceFile, pos);\n return referenceLocation === sourceFile ? void 0 : referenceLocation;\n });\n }\n function getPossibleSymbolReferencePositions(sourceFile, symbolName2, container = sourceFile) {\n const positions = [];\n if (!symbolName2 || !symbolName2.length) {\n return positions;\n }\n const text = sourceFile.text;\n const sourceLength = text.length;\n const symbolNameLength = symbolName2.length;\n let position = text.indexOf(symbolName2, container.pos);\n while (position >= 0) {\n if (position > container.end) break;\n const endPosition = position + symbolNameLength;\n if ((position === 0 || !isIdentifierPart(text.charCodeAt(position - 1), 99 /* Latest */)) && (endPosition === sourceLength || !isIdentifierPart(text.charCodeAt(endPosition), 99 /* Latest */))) {\n positions.push(position);\n }\n position = text.indexOf(symbolName2, position + symbolNameLength + 1);\n }\n return positions;\n }\n function getLabelReferencesInNode(container, targetLabel) {\n const sourceFile = container.getSourceFile();\n const labelName = targetLabel.text;\n const references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, labelName, container), (node) => (\n // Only pick labels that are either the target label, or have a target that is the target label\n node === targetLabel || isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel ? nodeEntry(node) : void 0\n ));\n return [{ definition: { type: 1 /* Label */, node: targetLabel }, references }];\n }\n function isValidReferencePosition(node, searchSymbolName) {\n switch (node.kind) {\n case 81 /* PrivateIdentifier */:\n if (isJSDocMemberName(node.parent)) {\n return true;\n }\n // falls through I guess\n case 80 /* Identifier */:\n return node.text.length === searchSymbolName.length;\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 11 /* StringLiteral */: {\n const str = node;\n return str.text.length === searchSymbolName.length && (isLiteralNameOfPropertyDeclarationOrIndexAccess(str) || isNameOfModuleDeclaration(node) || isExpressionOfExternalModuleImportEqualsDeclaration(node) || isCallExpression(node.parent) && isBindableObjectDefinePropertyCall(node.parent) && node.parent.arguments[1] === node || isImportOrExportSpecifier(node.parent));\n }\n case 9 /* NumericLiteral */:\n return isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && node.text.length === searchSymbolName.length;\n case 90 /* DefaultKeyword */:\n return \"default\".length === searchSymbolName.length;\n default:\n return false;\n }\n }\n function getAllReferencesForImportMeta(sourceFiles, cancellationToken) {\n const references = flatMap(sourceFiles, (sourceFile) => {\n cancellationToken.throwIfCancellationRequested();\n return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, \"meta\", sourceFile), (node) => {\n const parent2 = node.parent;\n if (isImportMeta(parent2)) {\n return nodeEntry(parent2);\n }\n });\n });\n return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references }] : void 0;\n }\n function getAllReferencesForKeyword(sourceFiles, keywordKind, cancellationToken, filter2) {\n const references = flatMap(sourceFiles, (sourceFile) => {\n cancellationToken.throwIfCancellationRequested();\n return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, tokenToString(keywordKind), sourceFile), (referenceLocation) => {\n if (referenceLocation.kind === keywordKind && (!filter2 || filter2(referenceLocation))) {\n return nodeEntry(referenceLocation);\n }\n });\n });\n return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references }] : void 0;\n }\n function getReferencesInSourceFile(sourceFile, search, state, addReferencesHere = true) {\n state.cancellationToken.throwIfCancellationRequested();\n return getReferencesInContainer(sourceFile, sourceFile, search, state, addReferencesHere);\n }\n function getReferencesInContainer(container, sourceFile, search, state, addReferencesHere) {\n if (!state.markSearchedSymbols(sourceFile, search.allSearchSymbols)) {\n return;\n }\n for (const position of getPossibleSymbolReferencePositions(sourceFile, search.text, container)) {\n getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere);\n }\n }\n function hasMatchingMeaning(referenceLocation, state) {\n return !!(getMeaningFromLocation(referenceLocation) & state.searchMeaning);\n }\n function getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere) {\n const referenceLocation = getTouchingPropertyName(sourceFile, position);\n if (!isValidReferencePosition(referenceLocation, search.text)) {\n if (!state.options.implementations && (state.options.findInStrings && isInString(sourceFile, position) || state.options.findInComments && isInNonReferenceComment(sourceFile, position))) {\n state.addStringOrCommentReference(sourceFile.fileName, createTextSpan(position, search.text.length));\n }\n return;\n }\n if (!hasMatchingMeaning(referenceLocation, state)) return;\n let referenceSymbol = state.checker.getSymbolAtLocation(referenceLocation);\n if (!referenceSymbol) {\n return;\n }\n const parent2 = referenceLocation.parent;\n if (isImportSpecifier(parent2) && parent2.propertyName === referenceLocation) {\n return;\n }\n if (isExportSpecifier(parent2)) {\n Debug.assert(referenceLocation.kind === 80 /* Identifier */ || referenceLocation.kind === 11 /* StringLiteral */);\n getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, parent2, search, state, addReferencesHere);\n return;\n }\n if (isJSDocPropertyLikeTag(parent2) && parent2.isNameFirst && parent2.typeExpression && isJSDocTypeLiteral(parent2.typeExpression.type) && parent2.typeExpression.type.jsDocPropertyTags && length(parent2.typeExpression.type.jsDocPropertyTags)) {\n getReferencesAtJSDocTypeLiteral(parent2.typeExpression.type.jsDocPropertyTags, referenceLocation, search, state);\n return;\n }\n const relatedSymbol = getRelatedSymbol(search, referenceSymbol, referenceLocation, state);\n if (!relatedSymbol) {\n getReferenceForShorthandProperty(referenceSymbol, search, state);\n return;\n }\n switch (state.specialSearchKind) {\n case 0 /* None */:\n if (addReferencesHere) addReference(referenceLocation, relatedSymbol, state);\n break;\n case 1 /* Constructor */:\n addConstructorReferences(referenceLocation, sourceFile, search, state);\n break;\n case 2 /* Class */:\n addClassStaticThisReferences(referenceLocation, search, state);\n break;\n default:\n Debug.assertNever(state.specialSearchKind);\n }\n if (isInJSFile(referenceLocation) && isBindingElement(referenceLocation.parent) && isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent.parent.parent)) {\n referenceSymbol = referenceLocation.parent.symbol;\n if (!referenceSymbol) return;\n }\n getImportOrExportReferences(referenceLocation, referenceSymbol, search, state);\n }\n function getReferencesAtJSDocTypeLiteral(jsDocPropertyTags, referenceLocation, search, state) {\n const addRef = state.referenceAdder(search.symbol);\n addReference(referenceLocation, search.symbol, state);\n forEach(jsDocPropertyTags, (propTag) => {\n if (isQualifiedName(propTag.name)) {\n addRef(propTag.name.left);\n }\n });\n }\n function getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, search, state, addReferencesHere, alwaysGetReferences) {\n Debug.assert(!alwaysGetReferences || !!state.options.providePrefixAndSuffixTextForRename, \"If alwaysGetReferences is true, then prefix/suffix text must be enabled\");\n const { parent: parent2, propertyName, name } = exportSpecifier;\n const exportDeclaration = parent2.parent;\n const localSymbol = getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, state.checker);\n if (!alwaysGetReferences && !search.includes(localSymbol)) {\n return;\n }\n if (!propertyName) {\n if (!(state.options.use === 2 /* Rename */ && moduleExportNameIsDefault(name))) {\n addRef();\n }\n } else if (referenceLocation === propertyName) {\n if (!exportDeclaration.moduleSpecifier) {\n addRef();\n }\n if (addReferencesHere && state.options.use !== 2 /* Rename */ && state.markSeenReExportRHS(name)) {\n addReference(name, Debug.checkDefined(exportSpecifier.symbol), state);\n }\n } else {\n if (state.markSeenReExportRHS(referenceLocation)) {\n addRef();\n }\n }\n if (!isForRenameWithPrefixAndSuffixText(state.options) || alwaysGetReferences) {\n const isDefaultExport = moduleExportNameIsDefault(referenceLocation) || moduleExportNameIsDefault(exportSpecifier.name);\n const exportKind = isDefaultExport ? 1 /* Default */ : 0 /* Named */;\n const exportSymbol = Debug.checkDefined(exportSpecifier.symbol);\n const exportInfo = getExportInfo(exportSymbol, exportKind, state.checker);\n if (exportInfo) {\n searchForImportsOfExport(referenceLocation, exportSymbol, exportInfo, state);\n }\n }\n if (search.comingFrom !== 1 /* Export */ && exportDeclaration.moduleSpecifier && !propertyName && !isForRenameWithPrefixAndSuffixText(state.options)) {\n const imported = state.checker.getExportSpecifierLocalTargetSymbol(exportSpecifier);\n if (imported) searchForImportedSymbol(imported, state);\n }\n function addRef() {\n if (addReferencesHere) addReference(referenceLocation, localSymbol, state);\n }\n }\n function getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, checker) {\n return isExportSpecifierAlias(referenceLocation, exportSpecifier) && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier) || referenceSymbol;\n }\n function isExportSpecifierAlias(referenceLocation, exportSpecifier) {\n const { parent: parent2, propertyName, name } = exportSpecifier;\n Debug.assert(propertyName === referenceLocation || name === referenceLocation);\n if (propertyName) {\n return propertyName === referenceLocation;\n } else {\n return !parent2.parent.moduleSpecifier;\n }\n }\n function getImportOrExportReferences(referenceLocation, referenceSymbol, search, state) {\n const importOrExport = getImportOrExportSymbol(referenceLocation, referenceSymbol, state.checker, search.comingFrom === 1 /* Export */);\n if (!importOrExport) return;\n const { symbol } = importOrExport;\n if (importOrExport.kind === 0 /* Import */) {\n if (!isForRenameWithPrefixAndSuffixText(state.options)) {\n searchForImportedSymbol(symbol, state);\n }\n } else {\n searchForImportsOfExport(referenceLocation, symbol, importOrExport.exportInfo, state);\n }\n }\n function getReferenceForShorthandProperty({ flags, valueDeclaration }, search, state) {\n const shorthandValueSymbol = state.checker.getShorthandAssignmentValueSymbol(valueDeclaration);\n const name = valueDeclaration && getNameOfDeclaration(valueDeclaration);\n if (!(flags & 33554432 /* Transient */) && name && search.includes(shorthandValueSymbol)) {\n addReference(name, shorthandValueSymbol, state);\n }\n }\n function addReference(referenceLocation, relatedSymbol, state) {\n const { kind, symbol } = \"kind\" in relatedSymbol ? relatedSymbol : { kind: void 0, symbol: relatedSymbol };\n if (state.options.use === 2 /* Rename */ && referenceLocation.kind === 90 /* DefaultKeyword */) {\n return;\n }\n const addRef = state.referenceAdder(symbol);\n if (state.options.implementations) {\n addImplementationReferences(referenceLocation, addRef, state);\n } else {\n addRef(referenceLocation, kind);\n }\n }\n function addConstructorReferences(referenceLocation, sourceFile, search, state) {\n if (isNewExpressionTarget(referenceLocation)) {\n addReference(referenceLocation, search.symbol, state);\n }\n const pusher = () => state.referenceAdder(search.symbol);\n if (isClassLike(referenceLocation.parent)) {\n Debug.assert(referenceLocation.kind === 90 /* DefaultKeyword */ || referenceLocation.parent.name === referenceLocation);\n findOwnConstructorReferences(search.symbol, sourceFile, pusher());\n } else {\n const classExtending = tryGetClassByExtendingIdentifier(referenceLocation);\n if (classExtending) {\n findSuperConstructorAccesses(classExtending, pusher());\n findInheritedConstructorReferences(classExtending, state);\n }\n }\n }\n function addClassStaticThisReferences(referenceLocation, search, state) {\n addReference(referenceLocation, search.symbol, state);\n const classLike = referenceLocation.parent;\n if (state.options.use === 2 /* Rename */ || !isClassLike(classLike)) return;\n Debug.assert(classLike.name === referenceLocation);\n const addRef = state.referenceAdder(search.symbol);\n for (const member of classLike.members) {\n if (!(isMethodOrAccessor(member) && isStatic(member))) {\n continue;\n }\n if (member.body) {\n member.body.forEachChild(function cb(node) {\n if (node.kind === 110 /* ThisKeyword */) {\n addRef(node);\n } else if (!isFunctionLike(node) && !isClassLike(node)) {\n node.forEachChild(cb);\n }\n });\n }\n }\n }\n function findOwnConstructorReferences(classSymbol, sourceFile, addNode) {\n const constructorSymbol = getClassConstructorSymbol(classSymbol);\n if (constructorSymbol && constructorSymbol.declarations) {\n for (const decl of constructorSymbol.declarations) {\n const ctrKeyword = findChildOfKind(decl, 137 /* ConstructorKeyword */, sourceFile);\n Debug.assert(decl.kind === 177 /* Constructor */ && !!ctrKeyword);\n addNode(ctrKeyword);\n }\n }\n if (classSymbol.exports) {\n classSymbol.exports.forEach((member) => {\n const decl = member.valueDeclaration;\n if (decl && decl.kind === 175 /* MethodDeclaration */) {\n const body = decl.body;\n if (body) {\n forEachDescendantOfKind(body, 110 /* ThisKeyword */, (thisKeyword) => {\n if (isNewExpressionTarget(thisKeyword)) {\n addNode(thisKeyword);\n }\n });\n }\n }\n });\n }\n }\n function getClassConstructorSymbol(classSymbol) {\n return classSymbol.members && classSymbol.members.get(\"__constructor\" /* Constructor */);\n }\n function findSuperConstructorAccesses(classDeclaration, addNode) {\n const constructor = getClassConstructorSymbol(classDeclaration.symbol);\n if (!(constructor && constructor.declarations)) {\n return;\n }\n for (const decl of constructor.declarations) {\n Debug.assert(decl.kind === 177 /* Constructor */);\n const body = decl.body;\n if (body) {\n forEachDescendantOfKind(body, 108 /* SuperKeyword */, (node) => {\n if (isCallExpressionTarget(node)) {\n addNode(node);\n }\n });\n }\n }\n }\n function hasOwnConstructor(classDeclaration) {\n return !!getClassConstructorSymbol(classDeclaration.symbol);\n }\n function findInheritedConstructorReferences(classDeclaration, state) {\n if (hasOwnConstructor(classDeclaration)) return;\n const classSymbol = classDeclaration.symbol;\n const search = state.createSearch(\n /*location*/\n void 0,\n classSymbol,\n /*comingFrom*/\n void 0\n );\n getReferencesInContainerOrFiles(classSymbol, state, search);\n }\n function addImplementationReferences(refNode, addReference2, state) {\n if (isDeclarationName(refNode) && isImplementation(refNode.parent)) {\n addReference2(refNode);\n return;\n }\n if (refNode.kind !== 80 /* Identifier */) {\n return;\n }\n if (refNode.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n getReferenceEntriesForShorthandPropertyAssignment(refNode, state.checker, addReference2);\n }\n const containingNode = getContainingNodeIfInHeritageClause(refNode);\n if (containingNode) {\n addReference2(containingNode);\n return;\n }\n const typeNode = findAncestor(refNode, (a) => !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent));\n const typeHavingNode = typeNode.parent;\n if (hasType(typeHavingNode) && typeHavingNode.type === typeNode && state.markSeenContainingTypeReference(typeHavingNode)) {\n if (hasInitializer(typeHavingNode)) {\n addIfImplementation(typeHavingNode.initializer);\n } else if (isFunctionLike(typeHavingNode) && typeHavingNode.body) {\n const body = typeHavingNode.body;\n if (body.kind === 242 /* Block */) {\n forEachReturnStatement(body, (returnStatement) => {\n if (returnStatement.expression) addIfImplementation(returnStatement.expression);\n });\n } else {\n addIfImplementation(body);\n }\n } else if (isAssertionExpression(typeHavingNode) || isSatisfiesExpression(typeHavingNode)) {\n addIfImplementation(typeHavingNode.expression);\n }\n }\n function addIfImplementation(e) {\n if (isImplementationExpression(e)) addReference2(e);\n }\n }\n function getContainingNodeIfInHeritageClause(node) {\n return isIdentifier(node) || isPropertyAccessExpression(node) ? getContainingNodeIfInHeritageClause(node.parent) : isExpressionWithTypeArguments(node) ? tryCast(node.parent.parent, or(isClassLike, isInterfaceDeclaration)) : void 0;\n }\n function isImplementationExpression(node) {\n switch (node.kind) {\n case 218 /* ParenthesizedExpression */:\n return isImplementationExpression(node.expression);\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n case 211 /* ObjectLiteralExpression */:\n case 232 /* ClassExpression */:\n case 210 /* ArrayLiteralExpression */:\n return true;\n default:\n return false;\n }\n }\n function explicitlyInheritsFrom(symbol, parent2, cachedResults, checker) {\n if (symbol === parent2) {\n return true;\n }\n const key = getSymbolId(symbol) + \",\" + getSymbolId(parent2);\n const cached = cachedResults.get(key);\n if (cached !== void 0) {\n return cached;\n }\n cachedResults.set(key, false);\n const inherits = !!symbol.declarations && symbol.declarations.some(\n (declaration) => getAllSuperTypeNodes(declaration).some((typeReference) => {\n const type = checker.getTypeAtLocation(typeReference);\n return !!type && !!type.symbol && explicitlyInheritsFrom(type.symbol, parent2, cachedResults, checker);\n })\n );\n cachedResults.set(key, inherits);\n return inherits;\n }\n function getReferencesForSuperKeyword(superKeyword) {\n let searchSpaceNode = getSuperContainer(\n superKeyword,\n /*stopOnFunctions*/\n false\n );\n if (!searchSpaceNode) {\n return void 0;\n }\n let staticFlag = 256 /* Static */;\n switch (searchSpaceNode.kind) {\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n searchSpaceNode = searchSpaceNode.parent;\n break;\n default:\n return void 0;\n }\n const sourceFile = searchSpaceNode.getSourceFile();\n const references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, \"super\", searchSpaceNode), (node) => {\n if (node.kind !== 108 /* SuperKeyword */) {\n return;\n }\n const container = getSuperContainer(\n node,\n /*stopOnFunctions*/\n false\n );\n return container && isStatic(container) === !!staticFlag && container.parent.symbol === searchSpaceNode.symbol ? nodeEntry(node) : void 0;\n });\n return [{ definition: { type: 0 /* Symbol */, symbol: searchSpaceNode.symbol }, references }];\n }\n function isParameterName(node) {\n return node.kind === 80 /* Identifier */ && node.parent.kind === 170 /* Parameter */ && node.parent.name === node;\n }\n function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles, cancellationToken) {\n let searchSpaceNode = getThisContainer(\n thisOrSuperKeyword,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n let staticFlag = 256 /* Static */;\n switch (searchSpaceNode.kind) {\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n if (isObjectLiteralMethod(searchSpaceNode)) {\n staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n searchSpaceNode = searchSpaceNode.parent;\n break;\n }\n // falls through\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n searchSpaceNode = searchSpaceNode.parent;\n break;\n case 308 /* SourceFile */:\n if (isExternalModule(searchSpaceNode) || isParameterName(thisOrSuperKeyword)) {\n return void 0;\n }\n // falls through\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n break;\n // Computed properties in classes are not handled here because references to this are illegal,\n // so there is no point finding references to them.\n default:\n return void 0;\n }\n const references = flatMap(searchSpaceNode.kind === 308 /* SourceFile */ ? sourceFiles : [searchSpaceNode.getSourceFile()], (sourceFile) => {\n cancellationToken.throwIfCancellationRequested();\n return getPossibleSymbolReferenceNodes(sourceFile, \"this\", isSourceFile(searchSpaceNode) ? sourceFile : searchSpaceNode).filter((node) => {\n if (!isThis(node)) {\n return false;\n }\n const container = getThisContainer(\n node,\n /*includeArrowFunctions*/\n false,\n /*includeClassComputedPropertyName*/\n false\n );\n if (!canHaveSymbol(container)) return false;\n switch (searchSpaceNode.kind) {\n case 219 /* FunctionExpression */:\n case 263 /* FunctionDeclaration */:\n return searchSpaceNode.symbol === container.symbol;\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n return isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol;\n case 232 /* ClassExpression */:\n case 264 /* ClassDeclaration */:\n case 211 /* ObjectLiteralExpression */:\n return container.parent && canHaveSymbol(container.parent) && searchSpaceNode.symbol === container.parent.symbol && isStatic(container) === !!staticFlag;\n case 308 /* SourceFile */:\n return container.kind === 308 /* SourceFile */ && !isExternalModule(container) && !isParameterName(node);\n }\n });\n }).map((n) => nodeEntry(n));\n const thisParameter = firstDefined(references, (r) => isParameter(r.node.parent) ? r.node : void 0);\n return [{\n definition: { type: 3 /* This */, node: thisParameter || thisOrSuperKeyword },\n references\n }];\n }\n function getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken) {\n const type = getContextualTypeFromParentOrAncestorTypeNode(node, checker);\n const references = flatMap(sourceFiles, (sourceFile) => {\n cancellationToken.throwIfCancellationRequested();\n return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, node.text), (ref) => {\n if (isStringLiteralLike(ref) && ref.text === node.text) {\n if (type) {\n const refType = getContextualTypeFromParentOrAncestorTypeNode(ref, checker);\n if (type !== checker.getStringType() && (type === refType || isStringLiteralPropertyReference(ref, checker))) {\n return nodeEntry(ref, 2 /* StringLiteral */);\n }\n } else {\n return isNoSubstitutionTemplateLiteral(ref) && !rangeIsOnSingleLine(ref, sourceFile) ? void 0 : nodeEntry(ref, 2 /* StringLiteral */);\n }\n }\n });\n });\n return [{\n definition: { type: 4 /* String */, node },\n references\n }];\n }\n function isStringLiteralPropertyReference(node, checker) {\n if (isPropertySignature(node.parent)) {\n return checker.getPropertyOfType(checker.getTypeAtLocation(node.parent.parent), node.text);\n }\n }\n function populateSearchSymbolSet(symbol, location, checker, isForRename, providePrefixAndSuffixText, implementations) {\n const result = [];\n forEachRelatedSymbol(\n symbol,\n location,\n checker,\n isForRename,\n !(isForRename && providePrefixAndSuffixText),\n (sym, root, base) => {\n if (base) {\n if (isStaticSymbol(symbol) !== isStaticSymbol(base)) {\n base = void 0;\n }\n }\n result.push(base || root || sym);\n },\n // when try to find implementation, implementations is true, and not allowed to find base class\n /*allowBaseTypes*/\n () => !implementations\n );\n return result;\n }\n function forEachRelatedSymbol(symbol, location, checker, isForRenamePopulateSearchSymbolSet, onlyIncludeBindingElementAtReferenceLocation, cbSymbol, allowBaseTypes) {\n const containingObjectLiteralElement = getContainingObjectLiteralElement(location);\n if (containingObjectLiteralElement) {\n const shorthandValueSymbol = checker.getShorthandAssignmentValueSymbol(location.parent);\n if (shorthandValueSymbol && isForRenamePopulateSearchSymbolSet) {\n return cbSymbol(\n shorthandValueSymbol,\n /*rootSymbol*/\n void 0,\n /*baseSymbol*/\n void 0,\n 3 /* SearchedLocalFoundProperty */\n );\n }\n const contextualType = checker.getContextualType(containingObjectLiteralElement.parent);\n const res2 = contextualType && firstDefined(\n getPropertySymbolsFromContextualType(\n containingObjectLiteralElement,\n checker,\n contextualType,\n /*unionSymbolOk*/\n true\n ),\n (sym) => fromRoot(sym, 4 /* SearchedPropertyFoundLocal */)\n );\n if (res2) return res2;\n const propertySymbol = getPropertySymbolOfDestructuringAssignment(location, checker);\n const res1 = propertySymbol && cbSymbol(\n propertySymbol,\n /*rootSymbol*/\n void 0,\n /*baseSymbol*/\n void 0,\n 4 /* SearchedPropertyFoundLocal */\n );\n if (res1) return res1;\n const res22 = shorthandValueSymbol && cbSymbol(\n shorthandValueSymbol,\n /*rootSymbol*/\n void 0,\n /*baseSymbol*/\n void 0,\n 3 /* SearchedLocalFoundProperty */\n );\n if (res22) return res22;\n }\n const aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(location, symbol, checker);\n if (aliasedSymbol) {\n const res2 = cbSymbol(\n aliasedSymbol,\n /*rootSymbol*/\n void 0,\n /*baseSymbol*/\n void 0,\n 1 /* Node */\n );\n if (res2) return res2;\n }\n const res = fromRoot(symbol);\n if (res) return res;\n if (symbol.valueDeclaration && isParameterPropertyDeclaration(symbol.valueDeclaration, symbol.valueDeclaration.parent)) {\n const paramProps = checker.getSymbolsOfParameterPropertyDeclaration(cast(symbol.valueDeclaration, isParameter), symbol.name);\n Debug.assert(paramProps.length === 2 && !!(paramProps[0].flags & 1 /* FunctionScopedVariable */) && !!(paramProps[1].flags & 4 /* Property */));\n return fromRoot(symbol.flags & 1 /* FunctionScopedVariable */ ? paramProps[1] : paramProps[0]);\n }\n const exportSpecifier = getDeclarationOfKind(symbol, 282 /* ExportSpecifier */);\n if (!isForRenamePopulateSearchSymbolSet || exportSpecifier && !exportSpecifier.propertyName) {\n const localSymbol = exportSpecifier && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier);\n if (localSymbol) {\n const res2 = cbSymbol(\n localSymbol,\n /*rootSymbol*/\n void 0,\n /*baseSymbol*/\n void 0,\n 1 /* Node */\n );\n if (res2) return res2;\n }\n }\n if (!isForRenamePopulateSearchSymbolSet) {\n let bindingElementPropertySymbol;\n if (onlyIncludeBindingElementAtReferenceLocation) {\n bindingElementPropertySymbol = isObjectBindingElementWithoutPropertyName(location.parent) ? getPropertySymbolFromBindingElement(checker, location.parent) : void 0;\n } else {\n bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker);\n }\n return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */);\n }\n Debug.assert(isForRenamePopulateSearchSymbolSet);\n const includeOriginalSymbolOfBindingElement = onlyIncludeBindingElementAtReferenceLocation;\n if (includeOriginalSymbolOfBindingElement) {\n const bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker);\n return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */);\n }\n function fromRoot(sym, kind) {\n return firstDefined(checker.getRootSymbols(sym), (rootSymbol) => cbSymbol(\n sym,\n rootSymbol,\n /*baseSymbol*/\n void 0,\n kind\n ) || (rootSymbol.parent && rootSymbol.parent.flags & (32 /* Class */ | 64 /* Interface */) && allowBaseTypes(rootSymbol) ? getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.name, checker, (base) => cbSymbol(sym, rootSymbol, base, kind)) : void 0));\n }\n function getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol2, checker2) {\n const bindingElement = getDeclarationOfKind(symbol2, 209 /* BindingElement */);\n if (bindingElement && isObjectBindingElementWithoutPropertyName(bindingElement)) {\n return getPropertySymbolFromBindingElement(checker2, bindingElement);\n }\n }\n }\n function getPropertySymbolsFromBaseTypes(symbol, propertyName, checker, cb) {\n const seen = /* @__PURE__ */ new Set();\n return recur(symbol);\n function recur(symbol2) {\n if (!(symbol2.flags & (32 /* Class */ | 64 /* Interface */)) || !addToSeen(seen, symbol2)) return;\n return firstDefined(symbol2.declarations, (declaration) => firstDefined(getAllSuperTypeNodes(declaration), (typeReference) => {\n const type = checker.getTypeAtLocation(typeReference);\n const propertySymbol = type.symbol && checker.getPropertyOfType(type, propertyName);\n return propertySymbol && firstDefined(checker.getRootSymbols(propertySymbol), cb) || type.symbol && recur(type.symbol);\n }));\n }\n }\n function isStaticSymbol(symbol) {\n if (!symbol.valueDeclaration) return false;\n const modifierFlags = getEffectiveModifierFlags(symbol.valueDeclaration);\n return !!(modifierFlags & 256 /* Static */);\n }\n function getRelatedSymbol(search, referenceSymbol, referenceLocation, state) {\n const { checker } = state;\n return forEachRelatedSymbol(\n referenceSymbol,\n referenceLocation,\n checker,\n /*isForRenamePopulateSearchSymbolSet*/\n false,\n /*onlyIncludeBindingElementAtReferenceLocation*/\n state.options.use !== 2 /* Rename */ || !!state.options.providePrefixAndSuffixTextForRename,\n (sym, rootSymbol, baseSymbol, kind) => {\n if (baseSymbol) {\n if (isStaticSymbol(referenceSymbol) !== isStaticSymbol(baseSymbol)) {\n baseSymbol = void 0;\n }\n }\n return search.includes(baseSymbol || rootSymbol || sym) ? { symbol: rootSymbol && !(getCheckFlags(sym) & 6 /* Synthetic */) ? rootSymbol : sym, kind } : void 0;\n },\n /*allowBaseTypes*/\n (rootSymbol) => !(search.parents && !search.parents.some((parent2) => explicitlyInheritsFrom(rootSymbol.parent, parent2, state.inheritsFromCache, checker)))\n );\n }\n function getIntersectingMeaningFromDeclarations(node, symbol) {\n let meaning = getMeaningFromLocation(node);\n const { declarations } = symbol;\n if (declarations) {\n let lastIterationMeaning;\n do {\n lastIterationMeaning = meaning;\n for (const declaration of declarations) {\n const declarationMeaning = getMeaningFromDeclaration(declaration);\n if (declarationMeaning & meaning) {\n meaning |= declarationMeaning;\n }\n }\n } while (meaning !== lastIterationMeaning);\n }\n return meaning;\n }\n Core2.getIntersectingMeaningFromDeclarations = getIntersectingMeaningFromDeclarations;\n function isImplementation(node) {\n return !!(node.flags & 33554432 /* Ambient */) ? !(isInterfaceDeclaration(node) || isTypeAliasDeclaration(node)) : isVariableLike(node) ? hasInitializer(node) : isFunctionLikeDeclaration(node) ? !!node.body : isClassLike(node) || isModuleOrEnumDeclaration(node);\n }\n function getReferenceEntriesForShorthandPropertyAssignment(node, checker, addReference2) {\n const refSymbol = checker.getSymbolAtLocation(node);\n const shorthandSymbol = checker.getShorthandAssignmentValueSymbol(refSymbol.valueDeclaration);\n if (shorthandSymbol) {\n for (const declaration of shorthandSymbol.getDeclarations()) {\n if (getMeaningFromDeclaration(declaration) & 1 /* Value */) {\n addReference2(declaration);\n }\n }\n }\n }\n Core2.getReferenceEntriesForShorthandPropertyAssignment = getReferenceEntriesForShorthandPropertyAssignment;\n function forEachDescendantOfKind(node, kind, action) {\n forEachChild(node, (child) => {\n if (child.kind === kind) {\n action(child);\n }\n forEachDescendantOfKind(child, kind, action);\n });\n }\n function tryGetClassByExtendingIdentifier(node) {\n return tryGetClassExtendingExpressionWithTypeArguments(climbPastPropertyAccess(node).parent);\n }\n function getParentSymbolsOfPropertyAccess(location, symbol, checker) {\n const propertyAccessExpression = isRightSideOfPropertyAccess(location) ? location.parent : void 0;\n const lhsType = propertyAccessExpression && checker.getTypeAtLocation(propertyAccessExpression.expression);\n const res = mapDefined(lhsType && (lhsType.isUnionOrIntersection() ? lhsType.types : lhsType.symbol === symbol.parent ? void 0 : [lhsType]), (t) => t.symbol && t.symbol.flags & (32 /* Class */ | 64 /* Interface */) ? t.symbol : void 0);\n return res.length === 0 ? void 0 : res;\n }\n function isForRenameWithPrefixAndSuffixText(options) {\n return options.use === 2 /* Rename */ && options.providePrefixAndSuffixTextForRename;\n }\n})(Core || (Core = {}));\n\n// src/services/_namespaces/ts.GoToDefinition.ts\nvar ts_GoToDefinition_exports = {};\n__export(ts_GoToDefinition_exports, {\n createDefinitionInfo: () => createDefinitionInfo,\n getDefinitionAndBoundSpan: () => getDefinitionAndBoundSpan,\n getDefinitionAtPosition: () => getDefinitionAtPosition,\n getReferenceAtPosition: () => getReferenceAtPosition,\n getTypeDefinitionAtPosition: () => getTypeDefinitionAtPosition\n});\n\n// src/services/goToDefinition.ts\nfunction getDefinitionAtPosition(program, sourceFile, position, searchOtherFilesOnly, stopAtAlias) {\n var _a;\n const resolvedRef = getReferenceAtPosition(sourceFile, position, program);\n const fileReferenceDefinition = resolvedRef && [getDefinitionInfoForFileReference(resolvedRef.reference.fileName, resolvedRef.fileName, resolvedRef.unverified)] || emptyArray;\n if (resolvedRef == null ? void 0 : resolvedRef.file) {\n return fileReferenceDefinition;\n }\n const node = getTouchingPropertyName(sourceFile, position);\n if (node === sourceFile) {\n return void 0;\n }\n const { parent: parent2 } = node;\n const typeChecker = program.getTypeChecker();\n if (node.kind === 164 /* OverrideKeyword */ || isIdentifier(node) && isJSDocOverrideTag(parent2) && parent2.tagName === node) {\n const def = getDefinitionFromOverriddenMember(typeChecker, node);\n if (def !== void 0 || node.kind !== 164 /* OverrideKeyword */) {\n return def || emptyArray;\n }\n }\n if (isJumpStatementTarget(node)) {\n const label = getTargetLabel(node.parent, node.text);\n return label ? [createDefinitionInfoFromName(\n typeChecker,\n label,\n \"label\" /* label */,\n node.text,\n /*containerName*/\n void 0\n )] : void 0;\n }\n switch (node.kind) {\n case 90 /* DefaultKeyword */:\n if (!isDefaultClause(node.parent)) {\n break;\n }\n // falls through\n case 84 /* CaseKeyword */:\n const switchStatement = findAncestor(node.parent, isSwitchStatement);\n if (switchStatement) {\n return [createDefinitionInfoFromSwitch(switchStatement, sourceFile)];\n }\n break;\n }\n let findFunctionDecl;\n switch (node.kind) {\n case 107 /* ReturnKeyword */:\n case 135 /* AwaitKeyword */:\n case 127 /* YieldKeyword */:\n findFunctionDecl = isFunctionLikeDeclaration;\n const functionDeclaration = findAncestor(node, findFunctionDecl);\n return functionDeclaration ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0;\n }\n if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) {\n const classDecl = node.parent.parent;\n const { symbol: symbol2, failedAliasResolution: failedAliasResolution2 } = getSymbol(classDecl, typeChecker, stopAtAlias);\n const staticBlocks = filter(classDecl.members, isClassStaticBlockDeclaration);\n const containerName = symbol2 ? typeChecker.symbolToString(symbol2, classDecl) : \"\";\n const sourceFile2 = node.getSourceFile();\n return map(staticBlocks, (staticBlock) => {\n let { pos } = moveRangePastModifiers(staticBlock);\n pos = skipTrivia(sourceFile2.text, pos);\n return createDefinitionInfoFromName(\n typeChecker,\n staticBlock,\n \"constructor\" /* constructorImplementationElement */,\n \"static {}\",\n containerName,\n /*unverified*/\n false,\n failedAliasResolution2,\n { start: pos, length: \"static\".length }\n );\n });\n }\n let { symbol, failedAliasResolution } = getSymbol(node, typeChecker, stopAtAlias);\n let fallbackNode = node;\n if (searchOtherFilesOnly && failedAliasResolution) {\n const importDeclaration = forEach([node, ...(symbol == null ? void 0 : symbol.declarations) || emptyArray], (n) => findAncestor(n, isAnyImportOrBareOrAccessedRequire));\n const moduleSpecifier = importDeclaration && tryGetModuleSpecifierFromDeclaration(importDeclaration);\n if (moduleSpecifier) {\n ({ symbol, failedAliasResolution } = getSymbol(moduleSpecifier, typeChecker, stopAtAlias));\n fallbackNode = moduleSpecifier;\n }\n }\n if (!symbol && isModuleSpecifierLike(fallbackNode)) {\n const ref = (_a = program.getResolvedModuleFromModuleSpecifier(fallbackNode, sourceFile)) == null ? void 0 : _a.resolvedModule;\n if (ref) {\n return [{\n name: fallbackNode.text,\n fileName: ref.resolvedFileName,\n containerName: void 0,\n containerKind: void 0,\n kind: \"script\" /* scriptElement */,\n textSpan: createTextSpan(0, 0),\n failedAliasResolution,\n isAmbient: isDeclarationFileName(ref.resolvedFileName),\n unverified: fallbackNode !== node\n }];\n }\n }\n if (isModifier(node) && (isClassElement(parent2) || isNamedDeclaration(parent2))) {\n symbol = parent2.symbol;\n }\n if (!symbol) {\n return concatenate(fileReferenceDefinition, getDefinitionInfoForIndexSignatures(node, typeChecker));\n }\n if (searchOtherFilesOnly && every(symbol.declarations, (d) => d.getSourceFile().fileName === sourceFile.fileName)) return void 0;\n const calledDeclaration = tryGetSignatureDeclaration(typeChecker, node);\n if (calledDeclaration && !(isJsxOpeningLikeElement(node.parent) && isJsxConstructorLike(calledDeclaration))) {\n const sigInfo = createDefinitionFromSignatureDeclaration(typeChecker, calledDeclaration, failedAliasResolution);\n let declarationFilter = (d) => d !== calledDeclaration;\n if (typeChecker.getRootSymbols(symbol).some((s) => symbolMatchesSignature(s, calledDeclaration))) {\n if (!isConstructorDeclaration(calledDeclaration)) return [sigInfo];\n declarationFilter = (d) => d !== calledDeclaration && (isClassDeclaration(d) || isClassExpression(d));\n }\n const defs = getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, declarationFilter) || emptyArray;\n return node.kind === 108 /* SuperKeyword */ ? [sigInfo, ...defs] : [...defs, sigInfo];\n }\n if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n const shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(symbol.valueDeclaration);\n const definitions = (shorthandSymbol == null ? void 0 : shorthandSymbol.declarations) ? shorthandSymbol.declarations.map((decl) => createDefinitionInfo(\n decl,\n typeChecker,\n shorthandSymbol,\n node,\n /*unverified*/\n false,\n failedAliasResolution\n )) : emptyArray;\n return concatenate(definitions, getDefinitionFromObjectLiteralElement(typeChecker, node));\n }\n if (isPropertyName(node) && isBindingElement(parent2) && isObjectBindingPattern(parent2.parent) && node === (parent2.propertyName || parent2.name)) {\n const name = getNameFromPropertyName(node);\n const type = typeChecker.getTypeAtLocation(parent2.parent);\n return name === void 0 ? emptyArray : flatMap(type.isUnion() ? type.types : [type], (t) => {\n const prop = t.getProperty(name);\n return prop && getDefinitionFromSymbol(typeChecker, prop, node);\n });\n }\n const objectLiteralElementDefinition = getDefinitionFromObjectLiteralElement(typeChecker, node);\n return concatenate(fileReferenceDefinition, objectLiteralElementDefinition.length ? objectLiteralElementDefinition : getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution));\n}\nfunction symbolMatchesSignature(s, calledDeclaration) {\n var _a;\n return s === calledDeclaration.symbol || s === calledDeclaration.symbol.parent || isAssignmentExpression(calledDeclaration.parent) || !isCallLikeExpression(calledDeclaration.parent) && s === ((_a = tryCast(calledDeclaration.parent, canHaveSymbol)) == null ? void 0 : _a.symbol);\n}\nfunction getDefinitionFromObjectLiteralElement(typeChecker, node) {\n const element = getContainingObjectLiteralElement(node);\n if (element) {\n const contextualType = element && typeChecker.getContextualType(element.parent);\n if (contextualType) {\n return flatMap(getPropertySymbolsFromContextualType(\n element,\n typeChecker,\n contextualType,\n /*unionSymbolOk*/\n false\n ), (propertySymbol) => getDefinitionFromSymbol(typeChecker, propertySymbol, node));\n }\n }\n return emptyArray;\n}\nfunction getDefinitionFromOverriddenMember(typeChecker, node) {\n const classElement = findAncestor(node, isClassElement);\n if (!(classElement && classElement.name)) return;\n const baseDeclaration = findAncestor(classElement, isClassLike);\n if (!baseDeclaration) return;\n const baseTypeNode = getEffectiveBaseTypeNode(baseDeclaration);\n if (!baseTypeNode) return;\n const expression = skipParentheses(baseTypeNode.expression);\n const base = isClassExpression(expression) ? expression.symbol : typeChecker.getSymbolAtLocation(expression);\n if (!base) return;\n const baseType = hasStaticModifier(classElement) ? typeChecker.getTypeOfSymbol(base) : typeChecker.getDeclaredTypeOfSymbol(base);\n let baseProp;\n if (isComputedPropertyName(classElement.name)) {\n const prop = typeChecker.getSymbolAtLocation(classElement.name);\n if (!prop) {\n return;\n }\n if (isKnownSymbol(prop)) {\n baseProp = find(typeChecker.getPropertiesOfType(baseType), (s) => s.escapedName === prop.escapedName);\n } else {\n baseProp = typeChecker.getPropertyOfType(baseType, unescapeLeadingUnderscores(prop.escapedName));\n }\n } else {\n baseProp = typeChecker.getPropertyOfType(baseType, unescapeLeadingUnderscores(getTextOfPropertyName(classElement.name)));\n }\n if (!baseProp) return;\n return getDefinitionFromSymbol(typeChecker, baseProp, node);\n}\nfunction getReferenceAtPosition(sourceFile, position, program) {\n var _a, _b;\n const referencePath = findReferenceInPosition(sourceFile.referencedFiles, position);\n if (referencePath) {\n const file = program.getSourceFileFromReference(sourceFile, referencePath);\n return file && { reference: referencePath, fileName: file.fileName, file, unverified: false };\n }\n const typeReferenceDirective = findReferenceInPosition(sourceFile.typeReferenceDirectives, position);\n if (typeReferenceDirective) {\n const reference = (_a = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeReferenceDirective, sourceFile)) == null ? void 0 : _a.resolvedTypeReferenceDirective;\n const file = reference && program.getSourceFile(reference.resolvedFileName);\n return file && { reference: typeReferenceDirective, fileName: file.fileName, file, unverified: false };\n }\n const libReferenceDirective = findReferenceInPosition(sourceFile.libReferenceDirectives, position);\n if (libReferenceDirective) {\n const file = program.getLibFileFromReference(libReferenceDirective);\n return file && { reference: libReferenceDirective, fileName: file.fileName, file, unverified: false };\n }\n if (sourceFile.imports.length || sourceFile.moduleAugmentations.length) {\n const node = getTouchingToken(sourceFile, position);\n let resolution;\n if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && (resolution = program.getResolvedModuleFromModuleSpecifier(node, sourceFile))) {\n const verifiedFileName = (_b = resolution.resolvedModule) == null ? void 0 : _b.resolvedFileName;\n const fileName = verifiedFileName || resolvePath(getDirectoryPath(sourceFile.fileName), node.text);\n return {\n file: program.getSourceFile(fileName),\n fileName,\n reference: {\n pos: node.getStart(),\n end: node.getEnd(),\n fileName: node.text\n },\n unverified: !verifiedFileName\n };\n }\n }\n return void 0;\n}\nvar typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([\n \"Array\",\n \"ArrayLike\",\n \"ReadonlyArray\",\n \"Promise\",\n \"PromiseLike\",\n \"Iterable\",\n \"IterableIterator\",\n \"AsyncIterable\",\n \"Set\",\n \"WeakSet\",\n \"ReadonlySet\",\n \"Map\",\n \"WeakMap\",\n \"ReadonlyMap\",\n \"Partial\",\n \"Required\",\n \"Readonly\",\n \"Pick\",\n \"Omit\"\n]);\nfunction shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {\n const referenceName = type.symbol.name;\n if (!typesWithUnwrappedTypeArguments.has(referenceName)) {\n return false;\n }\n const globalType = typeChecker.resolveName(\n referenceName,\n /*location*/\n void 0,\n 788968 /* Type */,\n /*excludeGlobals*/\n false\n );\n return !!globalType && globalType === type.target.symbol;\n}\nfunction shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {\n if (!type.aliasSymbol) {\n return false;\n }\n const referenceName = type.aliasSymbol.name;\n if (!typesWithUnwrappedTypeArguments.has(referenceName)) {\n return false;\n }\n const globalType = typeChecker.resolveName(\n referenceName,\n /*location*/\n void 0,\n 788968 /* Type */,\n /*excludeGlobals*/\n false\n );\n return !!globalType && globalType === type.aliasSymbol;\n}\nfunction getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {\n var _a, _b;\n if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {\n return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);\n }\n if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {\n return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);\n }\n if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {\n const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];\n if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {\n return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);\n }\n }\n return [];\n}\nfunction getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {\n const node = getTouchingPropertyName(sourceFile, position);\n if (node === sourceFile) {\n return void 0;\n }\n if (isImportMeta(node.parent) && node.parent.name === node) {\n return definitionFromType(\n typeChecker.getTypeAtLocation(node.parent),\n typeChecker,\n node.parent,\n /*failedAliasResolution*/\n false\n );\n }\n let { symbol, failedAliasResolution } = getSymbol(\n node,\n typeChecker,\n /*stopAtAlias*/\n false\n );\n if (isModifier(node) && (isClassElement(node.parent) || isNamedDeclaration(node.parent))) {\n symbol = node.parent.symbol;\n failedAliasResolution = false;\n }\n if (!symbol) return void 0;\n const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);\n const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution);\n const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];\n return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;\n}\nfunction definitionFromType(type, checker, node, failedAliasResolution) {\n return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));\n}\nfunction tryGetReturnTypeOfFunction(symbol, type, checker) {\n if (type.symbol === symbol || // At `const f = () => {}`, the symbol is `f` and the type symbol is at `() => {}`\n symbol.valueDeclaration && type.symbol && isVariableDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.initializer === type.symbol.valueDeclaration) {\n const sigs = type.getCallSignatures();\n if (sigs.length === 1) return checker.getReturnTypeOfSignature(first(sigs));\n }\n return void 0;\n}\nfunction getDefinitionAndBoundSpan(program, sourceFile, position) {\n const definitions = getDefinitionAtPosition(program, sourceFile, position);\n if (!definitions || definitions.length === 0) {\n return void 0;\n }\n const comment = findReferenceInPosition(sourceFile.referencedFiles, position) || findReferenceInPosition(sourceFile.typeReferenceDirectives, position) || findReferenceInPosition(sourceFile.libReferenceDirectives, position);\n if (comment) {\n return { definitions, textSpan: createTextSpanFromRange(comment) };\n }\n const node = getTouchingPropertyName(sourceFile, position);\n const textSpan = createTextSpan(node.getStart(), node.getWidth());\n return { definitions, textSpan };\n}\nfunction getDefinitionInfoForIndexSignatures(node, checker) {\n return mapDefined(checker.getIndexInfosAtLocation(node), (info) => info.declaration && createDefinitionFromSignatureDeclaration(checker, info.declaration));\n}\nfunction getSymbol(node, checker, stopAtAlias) {\n const symbol = checker.getSymbolAtLocation(node);\n let failedAliasResolution = false;\n if ((symbol == null ? void 0 : symbol.declarations) && symbol.flags & 2097152 /* Alias */ && !stopAtAlias && shouldSkipAlias(node, symbol.declarations[0])) {\n const aliased = checker.getAliasedSymbol(symbol);\n if (aliased.declarations) {\n return { symbol: aliased };\n } else {\n failedAliasResolution = true;\n }\n }\n return { symbol, failedAliasResolution };\n}\nfunction shouldSkipAlias(node, declaration) {\n if (node.kind !== 80 /* Identifier */ && (node.kind !== 11 /* StringLiteral */ || !isImportOrExportSpecifier(node.parent))) {\n return false;\n }\n if (node.parent === declaration) {\n return true;\n }\n if (declaration.kind === 275 /* NamespaceImport */) {\n return false;\n }\n return true;\n}\nfunction isExpandoDeclaration(node) {\n if (!isAssignmentDeclaration(node)) return false;\n const containingAssignment = findAncestor(node, (p) => {\n if (isAssignmentExpression(p)) return true;\n if (!isAssignmentDeclaration(p)) return \"quit\";\n return false;\n });\n return !!containingAssignment && getAssignmentDeclarationKind(containingAssignment) === 5 /* Property */;\n}\nfunction getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, declarationFilter) {\n const filteredDeclarations = declarationFilter !== void 0 ? filter(symbol.declarations, declarationFilter) : symbol.declarations;\n const signatureDefinition = !declarationFilter && (getConstructSignatureDefinition() || getCallSignatureDefinition());\n if (signatureDefinition) {\n return signatureDefinition;\n }\n const withoutExpandos = filter(filteredDeclarations, (d) => !isExpandoDeclaration(d));\n const results = some(withoutExpandos) ? withoutExpandos : filteredDeclarations;\n return map(results, (declaration) => createDefinitionInfo(\n declaration,\n typeChecker,\n symbol,\n node,\n /*unverified*/\n false,\n failedAliasResolution\n ));\n function getConstructSignatureDefinition() {\n if (symbol.flags & 32 /* Class */ && !(symbol.flags & (16 /* Function */ | 3 /* Variable */)) && (isNewExpressionTarget(node) || node.kind === 137 /* ConstructorKeyword */)) {\n const cls = find(filteredDeclarations, isClassLike);\n return cls && getSignatureDefinition(\n cls.members,\n /*selectConstructors*/\n true\n );\n }\n }\n function getCallSignatureDefinition() {\n return isCallOrNewExpressionTarget(node) || isNameOfFunctionDeclaration(node) ? getSignatureDefinition(\n filteredDeclarations,\n /*selectConstructors*/\n false\n ) : void 0;\n }\n function getSignatureDefinition(signatureDeclarations, selectConstructors) {\n if (!signatureDeclarations) {\n return void 0;\n }\n const declarations = signatureDeclarations.filter(selectConstructors ? isConstructorDeclaration : isFunctionLike);\n const declarationsWithBody = declarations.filter((d) => !!d.body);\n return declarations.length ? declarationsWithBody.length !== 0 ? declarationsWithBody.map((x) => createDefinitionInfo(x, typeChecker, symbol, node)) : [createDefinitionInfo(\n last(declarations),\n typeChecker,\n symbol,\n node,\n /*unverified*/\n false,\n failedAliasResolution\n )] : void 0;\n }\n}\nfunction createDefinitionInfo(declaration, checker, symbol, node, unverified, failedAliasResolution) {\n const symbolName2 = checker.symbolToString(symbol);\n const symbolKind = ts_SymbolDisplay_exports.getSymbolKind(checker, symbol, node);\n const containerName = symbol.parent ? checker.symbolToString(symbol.parent, node) : \"\";\n return createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution);\n}\nfunction createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution, textSpan) {\n const sourceFile = declaration.getSourceFile();\n if (!textSpan) {\n const name = getNameOfDeclaration(declaration) || declaration;\n textSpan = createTextSpanFromNode(name, sourceFile);\n }\n return {\n fileName: sourceFile.fileName,\n textSpan,\n kind: symbolKind,\n name: symbolName2,\n containerKind: void 0,\n // TODO: GH#18217\n containerName,\n ...ts_FindAllReferences_exports.toContextSpan(\n textSpan,\n sourceFile,\n ts_FindAllReferences_exports.getContextNode(declaration)\n ),\n isLocal: !isDefinitionVisible(checker, declaration),\n isAmbient: !!(declaration.flags & 33554432 /* Ambient */),\n unverified,\n failedAliasResolution\n };\n}\nfunction createDefinitionInfoFromSwitch(statement, sourceFile) {\n const keyword = ts_FindAllReferences_exports.getContextNode(statement);\n const textSpan = createTextSpanFromNode(isContextWithStartAndEndNode(keyword) ? keyword.start : keyword, sourceFile);\n return {\n fileName: sourceFile.fileName,\n textSpan,\n kind: \"keyword\" /* keyword */,\n name: \"switch\",\n containerKind: void 0,\n containerName: \"\",\n ...ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, keyword),\n isLocal: true,\n isAmbient: false,\n unverified: false,\n failedAliasResolution: void 0\n };\n}\nfunction isDefinitionVisible(checker, declaration) {\n if (checker.isDeclarationVisible(declaration)) return true;\n if (!declaration.parent) return false;\n if (hasInitializer(declaration.parent) && declaration.parent.initializer === declaration) return isDefinitionVisible(checker, declaration.parent);\n switch (declaration.kind) {\n case 173 /* PropertyDeclaration */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n case 175 /* MethodDeclaration */:\n if (hasEffectiveModifier(declaration, 2 /* Private */)) return false;\n // Public properties/methods are visible if its parents are visible, so:\n // falls through\n case 177 /* Constructor */:\n case 304 /* PropertyAssignment */:\n case 305 /* ShorthandPropertyAssignment */:\n case 211 /* ObjectLiteralExpression */:\n case 232 /* ClassExpression */:\n case 220 /* ArrowFunction */:\n case 219 /* FunctionExpression */:\n return isDefinitionVisible(checker, declaration.parent);\n default:\n return false;\n }\n}\nfunction createDefinitionFromSignatureDeclaration(typeChecker, decl, failedAliasResolution) {\n return createDefinitionInfo(\n decl,\n typeChecker,\n decl.symbol,\n decl,\n /*unverified*/\n false,\n failedAliasResolution\n );\n}\nfunction findReferenceInPosition(refs, pos) {\n return find(refs, (ref) => textRangeContainsPositionInclusive(ref, pos));\n}\nfunction getDefinitionInfoForFileReference(name, targetFileName, unverified) {\n return {\n fileName: targetFileName,\n textSpan: createTextSpanFromBounds(0, 0),\n kind: \"script\" /* scriptElement */,\n name,\n containerName: void 0,\n containerKind: void 0,\n // TODO: GH#18217\n unverified\n };\n}\nfunction getAncestorCallLikeExpression(node) {\n const target = findAncestor(node, (n) => !isRightSideOfPropertyAccess(n));\n const callLike = target == null ? void 0 : target.parent;\n return callLike && isCallLikeExpression(callLike) && getInvokedExpression(callLike) === target ? callLike : void 0;\n}\nfunction tryGetSignatureDeclaration(typeChecker, node) {\n const callLike = getAncestorCallLikeExpression(node);\n const signature = callLike && typeChecker.getResolvedSignature(callLike);\n return tryCast(signature && signature.declaration, (d) => isFunctionLike(d) && !isFunctionTypeNode(d));\n}\nfunction isJsxConstructorLike(node) {\n switch (node.kind) {\n case 177 /* Constructor */:\n case 186 /* ConstructorType */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n return true;\n default:\n return false;\n }\n}\n\n// src/services/_namespaces/ts.InlayHints.ts\nvar ts_InlayHints_exports = {};\n__export(ts_InlayHints_exports, {\n provideInlayHints: () => provideInlayHints\n});\n\n// src/services/inlayHints.ts\nvar leadingParameterNameCommentRegexFactory = (name) => {\n return new RegExp(`^\\\\s?/\\\\*\\\\*?\\\\s?${name}\\\\s?\\\\*\\\\/\\\\s?$`);\n};\nfunction shouldShowParameterNameHints(preferences) {\n return preferences.includeInlayParameterNameHints === \"literals\" || preferences.includeInlayParameterNameHints === \"all\";\n}\nfunction shouldShowLiteralParameterNameHintsOnly(preferences) {\n return preferences.includeInlayParameterNameHints === \"literals\";\n}\nfunction shouldUseInteractiveInlayHints(preferences) {\n return preferences.interactiveInlayHints === true;\n}\nfunction provideInlayHints(context) {\n const { file, program, span, cancellationToken, preferences } = context;\n const sourceFileText = file.text;\n const compilerOptions = program.getCompilerOptions();\n const quotePreference = getQuotePreference(file, preferences);\n const checker = program.getTypeChecker();\n const result = [];\n visitor(file);\n return result;\n function visitor(node) {\n if (!node || node.getFullWidth() === 0) {\n return;\n }\n switch (node.kind) {\n case 268 /* ModuleDeclaration */:\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 232 /* ClassExpression */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 220 /* ArrowFunction */:\n cancellationToken.throwIfCancellationRequested();\n }\n if (!textSpanIntersectsWith(span, node.pos, node.getFullWidth())) {\n return;\n }\n if (isTypeNode(node) && !isExpressionWithTypeArguments(node)) {\n return;\n }\n if (preferences.includeInlayVariableTypeHints && isVariableDeclaration(node)) {\n visitVariableLikeDeclaration(node);\n } else if (preferences.includeInlayPropertyDeclarationTypeHints && isPropertyDeclaration(node)) {\n visitVariableLikeDeclaration(node);\n } else if (preferences.includeInlayEnumMemberValueHints && isEnumMember(node)) {\n visitEnumMember(node);\n } else if (shouldShowParameterNameHints(preferences) && (isCallExpression(node) || isNewExpression(node))) {\n visitCallOrNewExpression(node);\n } else {\n if (preferences.includeInlayFunctionParameterTypeHints && isFunctionLikeDeclaration(node) && hasContextSensitiveParameters(node)) {\n visitFunctionLikeForParameterType(node);\n }\n if (preferences.includeInlayFunctionLikeReturnTypeHints && isSignatureSupportingReturnAnnotation(node)) {\n visitFunctionDeclarationLikeForReturnType(node);\n }\n }\n return forEachChild(node, visitor);\n }\n function isSignatureSupportingReturnAnnotation(node) {\n return isArrowFunction(node) || isFunctionExpression(node) || isFunctionDeclaration(node) || isMethodDeclaration(node) || isGetAccessorDeclaration(node);\n }\n function addParameterHints(text, parameter, position, isFirstVariadicArgument) {\n let hintText = `${isFirstVariadicArgument ? \"...\" : \"\"}${text}`;\n let displayParts;\n if (shouldUseInteractiveInlayHints(preferences)) {\n displayParts = [getNodeDisplayPart(hintText, parameter), { text: \":\" }];\n hintText = \"\";\n } else {\n hintText += \":\";\n }\n result.push({\n text: hintText,\n position,\n kind: \"Parameter\" /* Parameter */,\n whitespaceAfter: true,\n displayParts\n });\n }\n function addTypeHints(hintText, position) {\n result.push({\n text: typeof hintText === \"string\" ? `: ${hintText}` : \"\",\n displayParts: typeof hintText === \"string\" ? void 0 : [{ text: \": \" }, ...hintText],\n position,\n kind: \"Type\" /* Type */,\n whitespaceBefore: true\n });\n }\n function addEnumMemberValueHints(text, position) {\n result.push({\n text: `= ${text}`,\n position,\n kind: \"Enum\" /* Enum */,\n whitespaceBefore: true\n });\n }\n function visitEnumMember(member) {\n if (member.initializer) {\n return;\n }\n const enumValue = checker.getConstantValue(member);\n if (enumValue !== void 0) {\n addEnumMemberValueHints(enumValue.toString(), member.end);\n }\n }\n function isModuleReferenceType(type) {\n return type.symbol && type.symbol.flags & 1536 /* Module */;\n }\n function visitVariableLikeDeclaration(decl) {\n if (decl.initializer === void 0 && !(isPropertyDeclaration(decl) && !(checker.getTypeAtLocation(decl).flags & 1 /* Any */)) || isBindingPattern(decl.name) || isVariableDeclaration(decl) && !isHintableDeclaration(decl)) {\n return;\n }\n const effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(decl);\n if (effectiveTypeAnnotation) {\n return;\n }\n const declarationType = checker.getTypeAtLocation(decl);\n if (isModuleReferenceType(declarationType)) {\n return;\n }\n const hintParts = typeToInlayHintParts(declarationType);\n if (hintParts) {\n const hintText = typeof hintParts === \"string\" ? hintParts : hintParts.map((part) => part.text).join(\"\");\n const isVariableNameMatchesType = preferences.includeInlayVariableTypeHintsWhenTypeMatchesName === false && equateStringsCaseInsensitive(decl.name.getText(), hintText);\n if (isVariableNameMatchesType) {\n return;\n }\n addTypeHints(hintParts, decl.name.end);\n }\n }\n function visitCallOrNewExpression(expr) {\n const args = expr.arguments;\n if (!args || !args.length) {\n return;\n }\n const signature = checker.getResolvedSignature(expr);\n if (signature === void 0) return;\n let signatureParamPos = 0;\n for (const originalArg of args) {\n const arg = skipParentheses(originalArg);\n if (shouldShowLiteralParameterNameHintsOnly(preferences) && !isHintableLiteral(arg)) {\n signatureParamPos++;\n continue;\n }\n let spreadArgs = 0;\n if (isSpreadElement(arg)) {\n const spreadType = checker.getTypeAtLocation(arg.expression);\n if (checker.isTupleType(spreadType)) {\n const { elementFlags, fixedLength } = spreadType.target;\n if (fixedLength === 0) {\n continue;\n }\n const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));\n const requiredArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n if (requiredArgs > 0) {\n spreadArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n }\n }\n }\n const identifierInfo = checker.getParameterIdentifierInfoAtPosition(signature, signatureParamPos);\n signatureParamPos = signatureParamPos + (spreadArgs || 1);\n if (identifierInfo) {\n const { parameter, parameterName, isRestParameter: isFirstVariadicArgument } = identifierInfo;\n const isParameterNameNotSameAsArgument = preferences.includeInlayParameterNameHintsWhenArgumentMatchesName || !identifierOrAccessExpressionPostfixMatchesParameterName(arg, parameterName);\n if (!isParameterNameNotSameAsArgument && !isFirstVariadicArgument) {\n continue;\n }\n const name = unescapeLeadingUnderscores(parameterName);\n if (leadingCommentsContainsParameterName(arg, name)) {\n continue;\n }\n addParameterHints(name, parameter, originalArg.getStart(), isFirstVariadicArgument);\n }\n }\n }\n function identifierOrAccessExpressionPostfixMatchesParameterName(expr, parameterName) {\n if (isIdentifier(expr)) {\n return expr.text === parameterName;\n }\n if (isPropertyAccessExpression(expr)) {\n return expr.name.text === parameterName;\n }\n return false;\n }\n function leadingCommentsContainsParameterName(node, name) {\n if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions), getLanguageVariant(file.scriptKind))) {\n return false;\n }\n const ranges = getLeadingCommentRanges(sourceFileText, node.pos);\n if (!(ranges == null ? void 0 : ranges.length)) {\n return false;\n }\n const regex = leadingParameterNameCommentRegexFactory(name);\n return some(ranges, (range) => regex.test(sourceFileText.substring(range.pos, range.end)));\n }\n function isHintableLiteral(node) {\n switch (node.kind) {\n case 225 /* PrefixUnaryExpression */: {\n const operand = node.operand;\n return isLiteralExpression(operand) || isIdentifier(operand) && isInfinityOrNaNString(operand.escapedText);\n }\n case 112 /* TrueKeyword */:\n case 97 /* FalseKeyword */:\n case 106 /* NullKeyword */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 229 /* TemplateExpression */:\n return true;\n case 80 /* Identifier */: {\n const name = node.escapedText;\n return isUndefined(name) || isInfinityOrNaNString(name);\n }\n }\n return isLiteralExpression(node);\n }\n function visitFunctionDeclarationLikeForReturnType(decl) {\n if (isArrowFunction(decl)) {\n if (!findChildOfKind(decl, 21 /* OpenParenToken */, file)) {\n return;\n }\n }\n const effectiveTypeAnnotation = getEffectiveReturnTypeNode(decl);\n if (effectiveTypeAnnotation || !decl.body) {\n return;\n }\n const signature = checker.getSignatureFromDeclaration(decl);\n if (!signature) {\n return;\n }\n const typePredicate = checker.getTypePredicateOfSignature(signature);\n if (typePredicate == null ? void 0 : typePredicate.type) {\n const hintParts2 = typePredicateToInlayHintParts(typePredicate);\n if (hintParts2) {\n addTypeHints(hintParts2, getTypeAnnotationPosition(decl));\n return;\n }\n }\n const returnType = checker.getReturnTypeOfSignature(signature);\n if (isModuleReferenceType(returnType)) {\n return;\n }\n const hintParts = typeToInlayHintParts(returnType);\n if (hintParts) {\n addTypeHints(hintParts, getTypeAnnotationPosition(decl));\n }\n }\n function getTypeAnnotationPosition(decl) {\n const closeParenToken = findChildOfKind(decl, 22 /* CloseParenToken */, file);\n if (closeParenToken) {\n return closeParenToken.end;\n }\n return decl.parameters.end;\n }\n function visitFunctionLikeForParameterType(node) {\n const signature = checker.getSignatureFromDeclaration(node);\n if (!signature) {\n return;\n }\n let pos = 0;\n for (const param of node.parameters) {\n if (isHintableDeclaration(param)) {\n addParameterTypeHint(param, parameterIsThisKeyword(param) ? signature.thisParameter : signature.parameters[pos]);\n }\n if (parameterIsThisKeyword(param)) {\n continue;\n }\n pos++;\n }\n }\n function addParameterTypeHint(node, symbol) {\n const effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(node);\n if (effectiveTypeAnnotation || symbol === void 0) return;\n const typeHints = getParameterDeclarationTypeHints(symbol);\n if (typeHints === void 0) return;\n addTypeHints(typeHints, node.questionToken ? node.questionToken.end : node.name.end);\n }\n function getParameterDeclarationTypeHints(symbol) {\n const valueDeclaration = symbol.valueDeclaration;\n if (!valueDeclaration || !isParameter(valueDeclaration)) {\n return void 0;\n }\n const signatureParamType = checker.getTypeOfSymbolAtLocation(symbol, valueDeclaration);\n if (isModuleReferenceType(signatureParamType)) {\n return void 0;\n }\n return typeToInlayHintParts(signatureParamType);\n }\n function printTypeInSingleLine(type) {\n const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n const printer = createPrinterWithRemoveComments();\n return usingSingleLineStringWriter((writer) => {\n const typeNode = checker.typeToTypeNode(\n type,\n /*enclosingDeclaration*/\n void 0,\n flags\n );\n Debug.assertIsDefined(typeNode, \"should always get typenode\");\n printer.writeNode(\n 4 /* Unspecified */,\n typeNode,\n /*sourceFile*/\n file,\n writer\n );\n });\n }\n function printTypePredicateInSingleLine(typePredicate) {\n const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n const printer = createPrinterWithRemoveComments();\n return usingSingleLineStringWriter((writer) => {\n const typePredicateNode = checker.typePredicateToTypePredicateNode(\n typePredicate,\n /*enclosingDeclaration*/\n void 0,\n flags\n );\n Debug.assertIsDefined(typePredicateNode, \"should always get typePredicateNode\");\n printer.writeNode(\n 4 /* Unspecified */,\n typePredicateNode,\n /*sourceFile*/\n file,\n writer\n );\n });\n }\n function typeToInlayHintParts(type) {\n if (!shouldUseInteractiveInlayHints(preferences)) {\n return printTypeInSingleLine(type);\n }\n const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n const typeNode = checker.typeToTypeNode(\n type,\n /*enclosingDeclaration*/\n void 0,\n flags\n );\n Debug.assertIsDefined(typeNode, \"should always get typeNode\");\n return getInlayHintDisplayParts(typeNode);\n }\n function typePredicateToInlayHintParts(typePredicate) {\n if (!shouldUseInteractiveInlayHints(preferences)) {\n return printTypePredicateInSingleLine(typePredicate);\n }\n const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n const typeNode = checker.typePredicateToTypePredicateNode(\n typePredicate,\n /*enclosingDeclaration*/\n void 0,\n flags\n );\n Debug.assertIsDefined(typeNode, \"should always get typenode\");\n return getInlayHintDisplayParts(typeNode);\n }\n function getInlayHintDisplayParts(node) {\n const parts = [];\n visitForDisplayParts(node);\n return parts;\n function visitForDisplayParts(node2) {\n var _a, _b;\n if (!node2) {\n return;\n }\n const tokenString = tokenToString(node2.kind);\n if (tokenString) {\n parts.push({ text: tokenString });\n return;\n }\n if (isLiteralExpression(node2)) {\n parts.push({ text: getLiteralText2(node2) });\n return;\n }\n switch (node2.kind) {\n case 80 /* Identifier */:\n Debug.assertNode(node2, isIdentifier);\n const identifierText = idText(node2);\n const name = node2.symbol && node2.symbol.declarations && node2.symbol.declarations.length && getNameOfDeclaration(node2.symbol.declarations[0]);\n if (name) {\n parts.push(getNodeDisplayPart(identifierText, name));\n } else {\n parts.push({ text: identifierText });\n }\n break;\n case 167 /* QualifiedName */:\n Debug.assertNode(node2, isQualifiedName);\n visitForDisplayParts(node2.left);\n parts.push({ text: \".\" });\n visitForDisplayParts(node2.right);\n break;\n case 183 /* TypePredicate */:\n Debug.assertNode(node2, isTypePredicateNode);\n if (node2.assertsModifier) {\n parts.push({ text: \"asserts \" });\n }\n visitForDisplayParts(node2.parameterName);\n if (node2.type) {\n parts.push({ text: \" is \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 184 /* TypeReference */:\n Debug.assertNode(node2, isTypeReferenceNode);\n visitForDisplayParts(node2.typeName);\n if (node2.typeArguments) {\n parts.push({ text: \"<\" });\n visitDisplayPartList(node2.typeArguments, \", \");\n parts.push({ text: \">\" });\n }\n break;\n case 169 /* TypeParameter */:\n Debug.assertNode(node2, isTypeParameterDeclaration);\n if (node2.modifiers) {\n visitDisplayPartList(node2.modifiers, \" \");\n }\n visitForDisplayParts(node2.name);\n if (node2.constraint) {\n parts.push({ text: \" extends \" });\n visitForDisplayParts(node2.constraint);\n }\n if (node2.default) {\n parts.push({ text: \" = \" });\n visitForDisplayParts(node2.default);\n }\n break;\n case 170 /* Parameter */:\n Debug.assertNode(node2, isParameter);\n if (node2.modifiers) {\n visitDisplayPartList(node2.modifiers, \" \");\n }\n if (node2.dotDotDotToken) {\n parts.push({ text: \"...\" });\n }\n visitForDisplayParts(node2.name);\n if (node2.questionToken) {\n parts.push({ text: \"?\" });\n }\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 186 /* ConstructorType */:\n Debug.assertNode(node2, isConstructorTypeNode);\n parts.push({ text: \"new \" });\n visitParametersAndTypeParameters(node2);\n parts.push({ text: \" => \" });\n visitForDisplayParts(node2.type);\n break;\n case 187 /* TypeQuery */:\n Debug.assertNode(node2, isTypeQueryNode);\n parts.push({ text: \"typeof \" });\n visitForDisplayParts(node2.exprName);\n if (node2.typeArguments) {\n parts.push({ text: \"<\" });\n visitDisplayPartList(node2.typeArguments, \", \");\n parts.push({ text: \">\" });\n }\n break;\n case 188 /* TypeLiteral */:\n Debug.assertNode(node2, isTypeLiteralNode);\n parts.push({ text: \"{\" });\n if (node2.members.length) {\n parts.push({ text: \" \" });\n visitDisplayPartList(node2.members, \"; \");\n parts.push({ text: \" \" });\n }\n parts.push({ text: \"}\" });\n break;\n case 189 /* ArrayType */:\n Debug.assertNode(node2, isArrayTypeNode);\n visitForDisplayParts(node2.elementType);\n parts.push({ text: \"[]\" });\n break;\n case 190 /* TupleType */:\n Debug.assertNode(node2, isTupleTypeNode);\n parts.push({ text: \"[\" });\n visitDisplayPartList(node2.elements, \", \");\n parts.push({ text: \"]\" });\n break;\n case 203 /* NamedTupleMember */:\n Debug.assertNode(node2, isNamedTupleMember);\n if (node2.dotDotDotToken) {\n parts.push({ text: \"...\" });\n }\n visitForDisplayParts(node2.name);\n if (node2.questionToken) {\n parts.push({ text: \"?\" });\n }\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n break;\n case 191 /* OptionalType */:\n Debug.assertNode(node2, isOptionalTypeNode);\n visitForDisplayParts(node2.type);\n parts.push({ text: \"?\" });\n break;\n case 192 /* RestType */:\n Debug.assertNode(node2, isRestTypeNode);\n parts.push({ text: \"...\" });\n visitForDisplayParts(node2.type);\n break;\n case 193 /* UnionType */:\n Debug.assertNode(node2, isUnionTypeNode);\n visitDisplayPartList(node2.types, \" | \");\n break;\n case 194 /* IntersectionType */:\n Debug.assertNode(node2, isIntersectionTypeNode);\n visitDisplayPartList(node2.types, \" & \");\n break;\n case 195 /* ConditionalType */:\n Debug.assertNode(node2, isConditionalTypeNode);\n visitForDisplayParts(node2.checkType);\n parts.push({ text: \" extends \" });\n visitForDisplayParts(node2.extendsType);\n parts.push({ text: \" ? \" });\n visitForDisplayParts(node2.trueType);\n parts.push({ text: \" : \" });\n visitForDisplayParts(node2.falseType);\n break;\n case 196 /* InferType */:\n Debug.assertNode(node2, isInferTypeNode);\n parts.push({ text: \"infer \" });\n visitForDisplayParts(node2.typeParameter);\n break;\n case 197 /* ParenthesizedType */:\n Debug.assertNode(node2, isParenthesizedTypeNode);\n parts.push({ text: \"(\" });\n visitForDisplayParts(node2.type);\n parts.push({ text: \")\" });\n break;\n case 199 /* TypeOperator */:\n Debug.assertNode(node2, isTypeOperatorNode);\n parts.push({ text: `${tokenToString(node2.operator)} ` });\n visitForDisplayParts(node2.type);\n break;\n case 200 /* IndexedAccessType */:\n Debug.assertNode(node2, isIndexedAccessTypeNode);\n visitForDisplayParts(node2.objectType);\n parts.push({ text: \"[\" });\n visitForDisplayParts(node2.indexType);\n parts.push({ text: \"]\" });\n break;\n case 201 /* MappedType */:\n Debug.assertNode(node2, isMappedTypeNode);\n parts.push({ text: \"{ \" });\n if (node2.readonlyToken) {\n if (node2.readonlyToken.kind === 40 /* PlusToken */) {\n parts.push({ text: \"+\" });\n } else if (node2.readonlyToken.kind === 41 /* MinusToken */) {\n parts.push({ text: \"-\" });\n }\n parts.push({ text: \"readonly \" });\n }\n parts.push({ text: \"[\" });\n visitForDisplayParts(node2.typeParameter);\n if (node2.nameType) {\n parts.push({ text: \" as \" });\n visitForDisplayParts(node2.nameType);\n }\n parts.push({ text: \"]\" });\n if (node2.questionToken) {\n if (node2.questionToken.kind === 40 /* PlusToken */) {\n parts.push({ text: \"+\" });\n } else if (node2.questionToken.kind === 41 /* MinusToken */) {\n parts.push({ text: \"-\" });\n }\n parts.push({ text: \"?\" });\n }\n parts.push({ text: \": \" });\n if (node2.type) {\n visitForDisplayParts(node2.type);\n }\n parts.push({ text: \"; }\" });\n break;\n case 202 /* LiteralType */:\n Debug.assertNode(node2, isLiteralTypeNode);\n visitForDisplayParts(node2.literal);\n break;\n case 185 /* FunctionType */:\n Debug.assertNode(node2, isFunctionTypeNode);\n visitParametersAndTypeParameters(node2);\n parts.push({ text: \" => \" });\n visitForDisplayParts(node2.type);\n break;\n case 206 /* ImportType */:\n Debug.assertNode(node2, isImportTypeNode);\n if (node2.isTypeOf) {\n parts.push({ text: \"typeof \" });\n }\n parts.push({ text: \"import(\" });\n visitForDisplayParts(node2.argument);\n if (node2.assertions) {\n parts.push({ text: \", { assert: \" });\n visitDisplayPartList(node2.assertions.assertClause.elements, \", \");\n parts.push({ text: \" }\" });\n }\n parts.push({ text: \")\" });\n if (node2.qualifier) {\n parts.push({ text: \".\" });\n visitForDisplayParts(node2.qualifier);\n }\n if (node2.typeArguments) {\n parts.push({ text: \"<\" });\n visitDisplayPartList(node2.typeArguments, \", \");\n parts.push({ text: \">\" });\n }\n break;\n case 172 /* PropertySignature */:\n Debug.assertNode(node2, isPropertySignature);\n if ((_a = node2.modifiers) == null ? void 0 : _a.length) {\n visitDisplayPartList(node2.modifiers, \" \");\n parts.push({ text: \" \" });\n }\n visitForDisplayParts(node2.name);\n if (node2.questionToken) {\n parts.push({ text: \"?\" });\n }\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 182 /* IndexSignature */:\n Debug.assertNode(node2, isIndexSignatureDeclaration);\n parts.push({ text: \"[\" });\n visitDisplayPartList(node2.parameters, \", \");\n parts.push({ text: \"]\" });\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 174 /* MethodSignature */:\n Debug.assertNode(node2, isMethodSignature);\n if ((_b = node2.modifiers) == null ? void 0 : _b.length) {\n visitDisplayPartList(node2.modifiers, \" \");\n parts.push({ text: \" \" });\n }\n visitForDisplayParts(node2.name);\n if (node2.questionToken) {\n parts.push({ text: \"?\" });\n }\n visitParametersAndTypeParameters(node2);\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 180 /* CallSignature */:\n Debug.assertNode(node2, isCallSignatureDeclaration);\n visitParametersAndTypeParameters(node2);\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 181 /* ConstructSignature */:\n Debug.assertNode(node2, isConstructSignatureDeclaration);\n parts.push({ text: \"new \" });\n visitParametersAndTypeParameters(node2);\n if (node2.type) {\n parts.push({ text: \": \" });\n visitForDisplayParts(node2.type);\n }\n break;\n case 208 /* ArrayBindingPattern */:\n Debug.assertNode(node2, isArrayBindingPattern);\n parts.push({ text: \"[\" });\n visitDisplayPartList(node2.elements, \", \");\n parts.push({ text: \"]\" });\n break;\n case 207 /* ObjectBindingPattern */:\n Debug.assertNode(node2, isObjectBindingPattern);\n parts.push({ text: \"{\" });\n if (node2.elements.length) {\n parts.push({ text: \" \" });\n visitDisplayPartList(node2.elements, \", \");\n parts.push({ text: \" \" });\n }\n parts.push({ text: \"}\" });\n break;\n case 209 /* BindingElement */:\n Debug.assertNode(node2, isBindingElement);\n visitForDisplayParts(node2.name);\n break;\n case 225 /* PrefixUnaryExpression */:\n Debug.assertNode(node2, isPrefixUnaryExpression);\n parts.push({ text: tokenToString(node2.operator) });\n visitForDisplayParts(node2.operand);\n break;\n case 204 /* TemplateLiteralType */:\n Debug.assertNode(node2, isTemplateLiteralTypeNode);\n visitForDisplayParts(node2.head);\n node2.templateSpans.forEach(visitForDisplayParts);\n break;\n case 16 /* TemplateHead */:\n Debug.assertNode(node2, isTemplateHead);\n parts.push({ text: getLiteralText2(node2) });\n break;\n case 205 /* TemplateLiteralTypeSpan */:\n Debug.assertNode(node2, isTemplateLiteralTypeSpan);\n visitForDisplayParts(node2.type);\n visitForDisplayParts(node2.literal);\n break;\n case 17 /* TemplateMiddle */:\n Debug.assertNode(node2, isTemplateMiddle);\n parts.push({ text: getLiteralText2(node2) });\n break;\n case 18 /* TemplateTail */:\n Debug.assertNode(node2, isTemplateTail);\n parts.push({ text: getLiteralText2(node2) });\n break;\n case 198 /* ThisType */:\n Debug.assertNode(node2, isThisTypeNode);\n parts.push({ text: \"this\" });\n break;\n case 168 /* ComputedPropertyName */:\n Debug.assertNode(node2, isComputedPropertyName);\n parts.push({ text: \"[\" });\n visitForDisplayParts(node2.expression);\n parts.push({ text: \"]\" });\n break;\n default:\n Debug.failBadSyntaxKind(node2);\n }\n }\n function visitParametersAndTypeParameters(signatureDeclaration) {\n if (signatureDeclaration.typeParameters) {\n parts.push({ text: \"<\" });\n visitDisplayPartList(signatureDeclaration.typeParameters, \", \");\n parts.push({ text: \">\" });\n }\n parts.push({ text: \"(\" });\n visitDisplayPartList(signatureDeclaration.parameters, \", \");\n parts.push({ text: \")\" });\n }\n function visitDisplayPartList(nodes, separator) {\n nodes.forEach((node2, index) => {\n if (index > 0) {\n parts.push({ text: separator });\n }\n visitForDisplayParts(node2);\n });\n }\n function getLiteralText2(node2) {\n switch (node2.kind) {\n case 11 /* StringLiteral */:\n return quotePreference === 0 /* Single */ ? `'${escapeString(node2.text, 39 /* singleQuote */)}'` : `\"${escapeString(node2.text, 34 /* doubleQuote */)}\"`;\n case 16 /* TemplateHead */:\n case 17 /* TemplateMiddle */:\n case 18 /* TemplateTail */: {\n const rawText = node2.rawText ?? escapeTemplateSubstitution(escapeString(node2.text, 96 /* backtick */));\n switch (node2.kind) {\n case 16 /* TemplateHead */:\n return \"`\" + rawText + \"${\";\n case 17 /* TemplateMiddle */:\n return \"}\" + rawText + \"${\";\n case 18 /* TemplateTail */:\n return \"}\" + rawText + \"`\";\n }\n }\n }\n return node2.text;\n }\n }\n function isUndefined(name) {\n return name === \"undefined\";\n }\n function isHintableDeclaration(node) {\n if ((isPartOfParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) {\n const initializer = skipParentheses(node.initializer);\n return !(isHintableLiteral(initializer) || isNewExpression(initializer) || isObjectLiteralExpression(initializer) || isAssertionExpression(initializer));\n }\n return true;\n }\n function getNodeDisplayPart(text, node) {\n const sourceFile = node.getSourceFile();\n return {\n text,\n span: createTextSpanFromNode(node, sourceFile),\n file: sourceFile.fileName\n };\n }\n}\n\n// src/services/_namespaces/ts.JsDoc.ts\nvar ts_JsDoc_exports = {};\n__export(ts_JsDoc_exports, {\n getDocCommentTemplateAtPosition: () => getDocCommentTemplateAtPosition,\n getJSDocParameterNameCompletionDetails: () => getJSDocParameterNameCompletionDetails,\n getJSDocParameterNameCompletions: () => getJSDocParameterNameCompletions,\n getJSDocTagCompletionDetails: () => getJSDocTagCompletionDetails,\n getJSDocTagCompletions: () => getJSDocTagCompletions,\n getJSDocTagNameCompletionDetails: () => getJSDocTagNameCompletionDetails,\n getJSDocTagNameCompletions: () => getJSDocTagNameCompletions,\n getJsDocCommentsFromDeclarations: () => getJsDocCommentsFromDeclarations,\n getJsDocTagsFromDeclarations: () => getJsDocTagsFromDeclarations\n});\n\n// src/services/jsDoc.ts\nvar jsDocTagNames = [\n \"abstract\",\n \"access\",\n \"alias\",\n \"argument\",\n \"async\",\n \"augments\",\n \"author\",\n \"borrows\",\n \"callback\",\n \"class\",\n \"classdesc\",\n \"constant\",\n \"constructor\",\n \"constructs\",\n \"copyright\",\n \"default\",\n \"deprecated\",\n \"description\",\n \"emits\",\n \"enum\",\n \"event\",\n \"example\",\n \"exports\",\n \"extends\",\n \"external\",\n \"field\",\n \"file\",\n \"fileoverview\",\n \"fires\",\n \"function\",\n \"generator\",\n \"global\",\n \"hideconstructor\",\n \"host\",\n \"ignore\",\n \"implements\",\n \"import\",\n \"inheritdoc\",\n \"inner\",\n \"instance\",\n \"interface\",\n \"kind\",\n \"lends\",\n \"license\",\n \"link\",\n \"linkcode\",\n \"linkplain\",\n \"listens\",\n \"member\",\n \"memberof\",\n \"method\",\n \"mixes\",\n \"module\",\n \"name\",\n \"namespace\",\n \"overload\",\n \"override\",\n \"package\",\n \"param\",\n \"private\",\n \"prop\",\n \"property\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"requires\",\n \"returns\",\n \"satisfies\",\n \"see\",\n \"since\",\n \"static\",\n \"summary\",\n \"template\",\n \"this\",\n \"throws\",\n \"todo\",\n \"tutorial\",\n \"type\",\n \"typedef\",\n \"var\",\n \"variation\",\n \"version\",\n \"virtual\",\n \"yields\"\n];\nvar jsDocTagNameCompletionEntries;\nvar jsDocTagCompletionEntries;\nfunction getJsDocCommentsFromDeclarations(declarations, checker) {\n const parts = [];\n forEachUnique(declarations, (declaration) => {\n for (const jsdoc of getCommentHavingNodes(declaration)) {\n const inheritDoc = isJSDoc(jsdoc) && jsdoc.tags && find(jsdoc.tags, (t) => t.kind === 328 /* JSDocTag */ && (t.tagName.escapedText === \"inheritDoc\" || t.tagName.escapedText === \"inheritdoc\"));\n if (jsdoc.comment === void 0 && !inheritDoc || isJSDoc(jsdoc) && declaration.kind !== 347 /* JSDocTypedefTag */ && declaration.kind !== 339 /* JSDocCallbackTag */ && jsdoc.tags && jsdoc.tags.some((t) => t.kind === 347 /* JSDocTypedefTag */ || t.kind === 339 /* JSDocCallbackTag */) && !jsdoc.tags.some((t) => t.kind === 342 /* JSDocParameterTag */ || t.kind === 343 /* JSDocReturnTag */)) {\n continue;\n }\n let newparts = jsdoc.comment ? getDisplayPartsFromComment(jsdoc.comment, checker) : [];\n if (inheritDoc && inheritDoc.comment) {\n newparts = newparts.concat(getDisplayPartsFromComment(inheritDoc.comment, checker));\n }\n if (!contains(parts, newparts, isIdenticalListOfDisplayParts)) {\n parts.push(newparts);\n }\n }\n });\n return flatten(intersperse(parts, [lineBreakPart()]));\n}\nfunction isIdenticalListOfDisplayParts(parts1, parts2) {\n return arrayIsEqualTo(parts1, parts2, (p1, p2) => p1.kind === p2.kind && p1.text === p2.text);\n}\nfunction getCommentHavingNodes(declaration) {\n switch (declaration.kind) {\n case 342 /* JSDocParameterTag */:\n case 349 /* JSDocPropertyTag */:\n return [declaration];\n case 339 /* JSDocCallbackTag */:\n case 347 /* JSDocTypedefTag */:\n return [declaration, declaration.parent];\n case 324 /* JSDocSignature */:\n if (isJSDocOverloadTag(declaration.parent)) {\n return [declaration.parent.parent];\n }\n // falls through\n default:\n return getJSDocCommentsAndTags(declaration);\n }\n}\nfunction getJsDocTagsFromDeclarations(declarations, checker) {\n const infos = [];\n forEachUnique(declarations, (declaration) => {\n const tags = getJSDocTags(declaration);\n if (tags.some((t) => t.kind === 347 /* JSDocTypedefTag */ || t.kind === 339 /* JSDocCallbackTag */) && !tags.some((t) => t.kind === 342 /* JSDocParameterTag */ || t.kind === 343 /* JSDocReturnTag */)) {\n return;\n }\n for (const tag of tags) {\n infos.push({ name: tag.tagName.text, text: getCommentDisplayParts(tag, checker) });\n infos.push(...getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(tag), checker));\n }\n });\n return infos;\n}\nfunction getJSDocPropertyTagsInfo(nodes, checker) {\n return flatMap(nodes, (propTag) => concatenate([{ name: propTag.tagName.text, text: getCommentDisplayParts(propTag, checker) }], getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(propTag), checker)));\n}\nfunction tryGetJSDocPropertyTags(node) {\n return isJSDocPropertyLikeTag(node) && node.isNameFirst && node.typeExpression && isJSDocTypeLiteral(node.typeExpression.type) ? node.typeExpression.type.jsDocPropertyTags : void 0;\n}\nfunction getDisplayPartsFromComment(comment, checker) {\n if (typeof comment === \"string\") {\n return [textPart(comment)];\n }\n return flatMap(\n comment,\n (node) => node.kind === 322 /* JSDocText */ ? [textPart(node.text)] : buildLinkParts(node, checker)\n );\n}\nfunction getCommentDisplayParts(tag, checker) {\n const { comment, kind } = tag;\n const namePart = getTagNameDisplayPart(kind);\n switch (kind) {\n case 350 /* JSDocThrowsTag */:\n const typeExpression = tag.typeExpression;\n return typeExpression ? withNode(typeExpression) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n case 330 /* JSDocImplementsTag */:\n return withNode(tag.class);\n case 329 /* JSDocAugmentsTag */:\n return withNode(tag.class);\n case 346 /* JSDocTemplateTag */:\n const templateTag = tag;\n const displayParts = [];\n if (templateTag.constraint) {\n displayParts.push(textPart(templateTag.constraint.getText()));\n }\n if (length(templateTag.typeParameters)) {\n if (length(displayParts)) {\n displayParts.push(spacePart());\n }\n const lastTypeParameter = templateTag.typeParameters[templateTag.typeParameters.length - 1];\n forEach(templateTag.typeParameters, (tp) => {\n displayParts.push(namePart(tp.getText()));\n if (lastTypeParameter !== tp) {\n displayParts.push(...[punctuationPart(28 /* CommaToken */), spacePart()]);\n }\n });\n }\n if (comment) {\n displayParts.push(...[spacePart(), ...getDisplayPartsFromComment(comment, checker)]);\n }\n return displayParts;\n case 345 /* JSDocTypeTag */:\n case 351 /* JSDocSatisfiesTag */:\n return withNode(tag.typeExpression);\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n case 349 /* JSDocPropertyTag */:\n case 342 /* JSDocParameterTag */:\n case 348 /* JSDocSeeTag */:\n const { name } = tag;\n return name ? withNode(name) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n default:\n return comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n }\n function withNode(node) {\n return addComment(node.getText());\n }\n function addComment(s) {\n if (comment) {\n if (s.match(/^https?$/)) {\n return [textPart(s), ...getDisplayPartsFromComment(comment, checker)];\n } else {\n return [namePart(s), spacePart(), ...getDisplayPartsFromComment(comment, checker)];\n }\n } else {\n return [textPart(s)];\n }\n }\n}\nfunction getTagNameDisplayPart(kind) {\n switch (kind) {\n case 342 /* JSDocParameterTag */:\n return parameterNamePart;\n case 349 /* JSDocPropertyTag */:\n return propertyNamePart;\n case 346 /* JSDocTemplateTag */:\n return typeParameterNamePart;\n case 347 /* JSDocTypedefTag */:\n case 339 /* JSDocCallbackTag */:\n return typeAliasNamePart;\n default:\n return textPart;\n }\n}\nfunction getJSDocTagNameCompletions() {\n return jsDocTagNameCompletionEntries || (jsDocTagNameCompletionEntries = map(jsDocTagNames, (tagName) => {\n return {\n name: tagName,\n kind: \"keyword\" /* keyword */,\n kindModifiers: \"\",\n sortText: ts_Completions_exports.SortText.LocationPriority\n };\n }));\n}\nvar getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;\nfunction getJSDocTagCompletions() {\n return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = map(jsDocTagNames, (tagName) => {\n return {\n name: `@${tagName}`,\n kind: \"keyword\" /* keyword */,\n kindModifiers: \"\",\n sortText: ts_Completions_exports.SortText.LocationPriority\n };\n }));\n}\nfunction getJSDocTagCompletionDetails(name) {\n return {\n name,\n kind: \"\" /* unknown */,\n // TODO: should have its own kind?\n kindModifiers: \"\",\n displayParts: [textPart(name)],\n documentation: emptyArray,\n tags: void 0,\n codeActions: void 0\n };\n}\nfunction getJSDocParameterNameCompletions(tag) {\n if (!isIdentifier(tag.name)) {\n return emptyArray;\n }\n const nameThusFar = tag.name.text;\n const jsdoc = tag.parent;\n const fn = jsdoc.parent;\n if (!isFunctionLike(fn)) return [];\n return mapDefined(fn.parameters, (param) => {\n if (!isIdentifier(param.name)) return void 0;\n const name = param.name.text;\n if (jsdoc.tags.some((t) => t !== tag && isJSDocParameterTag(t) && isIdentifier(t.name) && t.name.escapedText === name) || nameThusFar !== void 0 && !startsWith(name, nameThusFar)) {\n return void 0;\n }\n return { name, kind: \"parameter\" /* parameterElement */, kindModifiers: \"\", sortText: ts_Completions_exports.SortText.LocationPriority };\n });\n}\nfunction getJSDocParameterNameCompletionDetails(name) {\n return {\n name,\n kind: \"parameter\" /* parameterElement */,\n kindModifiers: \"\",\n displayParts: [textPart(name)],\n documentation: emptyArray,\n tags: void 0,\n codeActions: void 0\n };\n}\nfunction getDocCommentTemplateAtPosition(newLine, sourceFile, position, options) {\n const tokenAtPos = getTokenAtPosition(sourceFile, position);\n const existingDocComment = findAncestor(tokenAtPos, isJSDoc);\n if (existingDocComment && (existingDocComment.comment !== void 0 || length(existingDocComment.tags))) {\n return void 0;\n }\n const tokenStart = tokenAtPos.getStart(sourceFile);\n if (!existingDocComment && tokenStart < position) {\n return void 0;\n }\n const commentOwnerInfo = getCommentOwnerInfo(tokenAtPos, options);\n if (!commentOwnerInfo) {\n return void 0;\n }\n const { commentOwner, parameters, hasReturn: hasReturn2 } = commentOwnerInfo;\n const commentOwnerJsDoc = hasJSDocNodes(commentOwner) && commentOwner.jsDoc ? commentOwner.jsDoc : void 0;\n const lastJsDoc = lastOrUndefined(commentOwnerJsDoc);\n if (commentOwner.getStart(sourceFile) < position || lastJsDoc && existingDocComment && lastJsDoc !== existingDocComment) {\n return void 0;\n }\n const indentationStr = getIndentationStringAtPosition(sourceFile, position);\n const isJavaScriptFile = hasJSFileExtension(sourceFile.fileName);\n const tags = (parameters ? parameterDocComments(parameters || [], isJavaScriptFile, indentationStr, newLine) : \"\") + (hasReturn2 ? returnsDocComment(indentationStr, newLine) : \"\");\n const openComment = \"/**\";\n const closeComment = \" */\";\n const hasTag = length(getJSDocTags(commentOwner)) > 0;\n if (tags && !hasTag) {\n const preamble = openComment + newLine + indentationStr + \" * \";\n const endLine = tokenStart === position ? newLine + indentationStr : \"\";\n const result = preamble + newLine + tags + indentationStr + closeComment + endLine;\n return { newText: result, caretOffset: preamble.length };\n }\n return { newText: openComment + closeComment, caretOffset: 3 };\n}\nfunction getIndentationStringAtPosition(sourceFile, position) {\n const { text } = sourceFile;\n const lineStart = getLineStartPositionForPosition(position, sourceFile);\n let pos = lineStart;\n for (; pos <= position && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) ;\n return text.slice(lineStart, pos);\n}\nfunction parameterDocComments(parameters, isJavaScriptFile, indentationStr, newLine) {\n return parameters.map(({ name, dotDotDotToken }, i) => {\n const paramName = name.kind === 80 /* Identifier */ ? name.text : \"param\" + i;\n const type = isJavaScriptFile ? dotDotDotToken ? \"{...any} \" : \"{any} \" : \"\";\n return `${indentationStr} * @param ${type}${paramName}${newLine}`;\n }).join(\"\");\n}\nfunction returnsDocComment(indentationStr, newLine) {\n return `${indentationStr} * @returns${newLine}`;\n}\nfunction getCommentOwnerInfo(tokenAtPos, options) {\n return forEachAncestor(tokenAtPos, (n) => getCommentOwnerInfoWorker(n, options));\n}\nfunction getCommentOwnerInfoWorker(commentOwner, options) {\n switch (commentOwner.kind) {\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 174 /* MethodSignature */:\n case 220 /* ArrowFunction */:\n const host = commentOwner;\n return { commentOwner, parameters: host.parameters, hasReturn: hasReturn(host, options) };\n case 304 /* PropertyAssignment */:\n return getCommentOwnerInfoWorker(commentOwner.initializer, options);\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 307 /* EnumMember */:\n case 266 /* TypeAliasDeclaration */:\n return { commentOwner };\n case 172 /* PropertySignature */: {\n const host2 = commentOwner;\n return host2.type && isFunctionTypeNode(host2.type) ? { commentOwner, parameters: host2.type.parameters, hasReturn: hasReturn(host2.type, options) } : { commentOwner };\n }\n case 244 /* VariableStatement */: {\n const varStatement = commentOwner;\n const varDeclarations = varStatement.declarationList.declarations;\n const host2 = varDeclarations.length === 1 && varDeclarations[0].initializer ? getRightHandSideOfAssignment(varDeclarations[0].initializer) : void 0;\n return host2 ? { commentOwner, parameters: host2.parameters, hasReturn: hasReturn(host2, options) } : { commentOwner };\n }\n case 308 /* SourceFile */:\n return \"quit\";\n case 268 /* ModuleDeclaration */:\n return commentOwner.parent.kind === 268 /* ModuleDeclaration */ ? void 0 : { commentOwner };\n case 245 /* ExpressionStatement */:\n return getCommentOwnerInfoWorker(commentOwner.expression, options);\n case 227 /* BinaryExpression */: {\n const be = commentOwner;\n if (getAssignmentDeclarationKind(be) === 0 /* None */) {\n return \"quit\";\n }\n return isFunctionLike(be.right) ? { commentOwner, parameters: be.right.parameters, hasReturn: hasReturn(be.right, options) } : { commentOwner };\n }\n case 173 /* PropertyDeclaration */:\n const init = commentOwner.initializer;\n if (init && (isFunctionExpression(init) || isArrowFunction(init))) {\n return { commentOwner, parameters: init.parameters, hasReturn: hasReturn(init, options) };\n }\n }\n}\nfunction hasReturn(node, options) {\n return !!(options == null ? void 0 : options.generateReturnInDocTemplate) && (isFunctionTypeNode(node) || isArrowFunction(node) && isExpression(node.body) || isFunctionLikeDeclaration(node) && node.body && isBlock(node.body) && !!forEachReturnStatement(node.body, (n) => n));\n}\nfunction getRightHandSideOfAssignment(rightHandSide) {\n while (rightHandSide.kind === 218 /* ParenthesizedExpression */) {\n rightHandSide = rightHandSide.expression;\n }\n switch (rightHandSide.kind) {\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n return rightHandSide;\n case 232 /* ClassExpression */:\n return find(rightHandSide.members, isConstructorDeclaration);\n }\n}\n\n// src/services/_namespaces/ts.MapCode.ts\nvar ts_MapCode_exports = {};\n__export(ts_MapCode_exports, {\n mapCode: () => mapCode\n});\n\n// src/services/mapCode.ts\nfunction mapCode(sourceFile, contents, focusLocations, host, formatContext, preferences) {\n return ts_textChanges_exports.ChangeTracker.with(\n { host, formatContext, preferences },\n (changeTracker) => {\n const parsed = contents.map((c) => parse(sourceFile, c));\n const flattenedLocations = focusLocations && flatten(focusLocations);\n for (const nodes of parsed) {\n placeNodeGroup(\n sourceFile,\n changeTracker,\n nodes,\n flattenedLocations\n );\n }\n }\n );\n}\nfunction parse(sourceFile, content) {\n const nodeKinds = [\n {\n parse: () => createSourceFile(\n \"__mapcode_content_nodes.ts\",\n content,\n sourceFile.languageVersion,\n /*setParentNodes*/\n true,\n sourceFile.scriptKind\n ),\n body: (sf) => sf.statements\n },\n {\n parse: () => createSourceFile(\n \"__mapcode_class_content_nodes.ts\",\n `class __class {\n${content}\n}`,\n sourceFile.languageVersion,\n /*setParentNodes*/\n true,\n sourceFile.scriptKind\n ),\n body: (cw) => cw.statements[0].members\n }\n ];\n const parsedNodes = [];\n for (const { parse: parse2, body: body2 } of nodeKinds) {\n const sourceFile2 = parse2();\n const bod = body2(sourceFile2);\n if (bod.length && sourceFile2.parseDiagnostics.length === 0) {\n return bod;\n } else if (bod.length) {\n parsedNodes.push({ sourceFile: sourceFile2, body: bod });\n }\n }\n parsedNodes.sort(\n (a, b) => a.sourceFile.parseDiagnostics.length - b.sourceFile.parseDiagnostics.length\n );\n const { body } = parsedNodes[0];\n return body;\n}\nfunction placeNodeGroup(originalFile, changeTracker, changes, focusLocations) {\n if (isClassElement(changes[0]) || isTypeElement(changes[0])) {\n placeClassNodeGroup(\n originalFile,\n changeTracker,\n changes,\n focusLocations\n );\n } else {\n placeStatements(\n originalFile,\n changeTracker,\n changes,\n focusLocations\n );\n }\n}\nfunction placeClassNodeGroup(originalFile, changeTracker, changes, focusLocations) {\n let classOrInterface;\n if (!focusLocations || !focusLocations.length) {\n classOrInterface = find(originalFile.statements, or(isClassLike, isInterfaceDeclaration));\n } else {\n classOrInterface = forEach(focusLocations, (location) => findAncestor(\n getTokenAtPosition(originalFile, location.start),\n or(isClassLike, isInterfaceDeclaration)\n ));\n }\n if (!classOrInterface) {\n return;\n }\n const firstMatch = classOrInterface.members.find((member) => changes.some((change) => matchNode(change, member)));\n if (firstMatch) {\n const lastMatch = findLast(\n classOrInterface.members,\n (member) => changes.some((change) => matchNode(change, member))\n );\n forEach(changes, wipeNode);\n changeTracker.replaceNodeRangeWithNodes(\n originalFile,\n firstMatch,\n lastMatch,\n changes\n );\n return;\n }\n forEach(changes, wipeNode);\n changeTracker.insertNodesAfter(\n originalFile,\n classOrInterface.members[classOrInterface.members.length - 1],\n changes\n );\n}\nfunction placeStatements(originalFile, changeTracker, changes, focusLocations) {\n if (!(focusLocations == null ? void 0 : focusLocations.length)) {\n changeTracker.insertNodesAtEndOfFile(\n originalFile,\n changes,\n /*blankLineBetween*/\n false\n );\n return;\n }\n for (const location of focusLocations) {\n const scope = findAncestor(\n getTokenAtPosition(originalFile, location.start),\n (block) => or(isBlock, isSourceFile)(block) && some(block.statements, (origStmt) => changes.some((newStmt) => matchNode(newStmt, origStmt)))\n );\n if (scope) {\n const start = scope.statements.find((stmt) => changes.some((node) => matchNode(node, stmt)));\n if (start) {\n const end = findLast(scope.statements, (stmt) => changes.some((node) => matchNode(node, stmt)));\n forEach(changes, wipeNode);\n changeTracker.replaceNodeRangeWithNodes(\n originalFile,\n start,\n end,\n changes\n );\n return;\n }\n }\n }\n let scopeStatements = originalFile.statements;\n for (const location of focusLocations) {\n const block = findAncestor(\n getTokenAtPosition(originalFile, location.start),\n isBlock\n );\n if (block) {\n scopeStatements = block.statements;\n break;\n }\n }\n forEach(changes, wipeNode);\n changeTracker.insertNodesAfter(\n originalFile,\n scopeStatements[scopeStatements.length - 1],\n changes\n );\n}\nfunction matchNode(a, b) {\n var _a, _b, _c, _d, _e, _f;\n if (a.kind !== b.kind) {\n return false;\n }\n if (a.kind === 177 /* Constructor */) {\n return a.kind === b.kind;\n }\n if (isNamedDeclaration(a) && isNamedDeclaration(b)) {\n return a.name.getText() === b.name.getText();\n }\n if (isIfStatement(a) && isIfStatement(b)) {\n return a.expression.getText() === b.expression.getText();\n }\n if (isWhileStatement(a) && isWhileStatement(b)) {\n return a.expression.getText() === b.expression.getText();\n }\n if (isForStatement(a) && isForStatement(b)) {\n return ((_a = a.initializer) == null ? void 0 : _a.getText()) === ((_b = b.initializer) == null ? void 0 : _b.getText()) && ((_c = a.incrementor) == null ? void 0 : _c.getText()) === ((_d = b.incrementor) == null ? void 0 : _d.getText()) && ((_e = a.condition) == null ? void 0 : _e.getText()) === ((_f = b.condition) == null ? void 0 : _f.getText());\n }\n if (isForInOrOfStatement(a) && isForInOrOfStatement(b)) {\n return a.expression.getText() === b.expression.getText() && a.initializer.getText() === b.initializer.getText();\n }\n if (isLabeledStatement(a) && isLabeledStatement(b)) {\n return a.label.getText() === b.label.getText();\n }\n if (a.getText() === b.getText()) {\n return true;\n }\n return false;\n}\nfunction wipeNode(node) {\n resetNodePositions(node);\n node.parent = void 0;\n}\nfunction resetNodePositions(node) {\n node.pos = -1;\n node.end = -1;\n node.forEachChild(resetNodePositions);\n}\n\n// src/services/_namespaces/ts.OrganizeImports.ts\nvar ts_OrganizeImports_exports = {};\n__export(ts_OrganizeImports_exports, {\n compareImportsOrRequireStatements: () => compareImportsOrRequireStatements,\n compareModuleSpecifiers: () => compareModuleSpecifiers2,\n getImportDeclarationInsertionIndex: () => getImportDeclarationInsertionIndex,\n getImportSpecifierInsertionIndex: () => getImportSpecifierInsertionIndex,\n getNamedImportSpecifierComparerWithDetection: () => getNamedImportSpecifierComparerWithDetection,\n getOrganizeImportsStringComparerWithDetection: () => getOrganizeImportsStringComparerWithDetection,\n organizeImports: () => organizeImports,\n testCoalesceExports: () => testCoalesceExports,\n testCoalesceImports: () => testCoalesceImports\n});\n\n// src/services/organizeImports.ts\nfunction organizeImports(sourceFile, formatContext, host, program, preferences, mode) {\n const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext({ host, formatContext, preferences });\n const shouldSort = mode === \"SortAndCombine\" /* SortAndCombine */ || mode === \"All\" /* All */;\n const shouldCombine = shouldSort;\n const shouldRemove = mode === \"RemoveUnused\" /* RemoveUnused */ || mode === \"All\" /* All */;\n const topLevelImportDecls = sourceFile.statements.filter(isImportDeclaration);\n const topLevelImportGroupDecls = groupByNewlineContiguous(sourceFile, topLevelImportDecls);\n const { comparersToTest, typeOrdersToTest } = getDetectionLists(preferences);\n const defaultComparer = comparersToTest[0];\n const comparer = {\n moduleSpecifierComparer: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? defaultComparer : void 0,\n namedImportComparer: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? defaultComparer : void 0,\n typeOrder: preferences.organizeImportsTypeOrder\n };\n if (typeof preferences.organizeImportsIgnoreCase !== \"boolean\") {\n ({ comparer: comparer.moduleSpecifierComparer } = detectModuleSpecifierCaseBySort(topLevelImportGroupDecls, comparersToTest));\n }\n if (!comparer.typeOrder || typeof preferences.organizeImportsIgnoreCase !== \"boolean\") {\n const namedImportSort = detectNamedImportOrganizationBySort(topLevelImportDecls, comparersToTest, typeOrdersToTest);\n if (namedImportSort) {\n const { namedImportComparer, typeOrder } = namedImportSort;\n comparer.namedImportComparer = comparer.namedImportComparer ?? namedImportComparer;\n comparer.typeOrder = comparer.typeOrder ?? typeOrder;\n }\n }\n topLevelImportGroupDecls.forEach((importGroupDecl) => organizeImportsWorker(importGroupDecl, comparer));\n if (mode !== \"RemoveUnused\" /* RemoveUnused */) {\n getTopLevelExportGroups(sourceFile).forEach((exportGroupDecl) => organizeExportsWorker(exportGroupDecl, comparer.namedImportComparer));\n }\n for (const ambientModule of sourceFile.statements.filter(isAmbientModule)) {\n if (!ambientModule.body) continue;\n const ambientModuleImportGroupDecls = groupByNewlineContiguous(sourceFile, ambientModule.body.statements.filter(isImportDeclaration));\n ambientModuleImportGroupDecls.forEach((importGroupDecl) => organizeImportsWorker(importGroupDecl, comparer));\n if (mode !== \"RemoveUnused\" /* RemoveUnused */) {\n const ambientModuleExportDecls = ambientModule.body.statements.filter(isExportDeclaration);\n organizeExportsWorker(ambientModuleExportDecls, comparer.namedImportComparer);\n }\n }\n return changeTracker.getChanges();\n function organizeDeclsWorker(oldImportDecls, coalesce) {\n if (length(oldImportDecls) === 0) {\n return;\n }\n setEmitFlags(oldImportDecls[0], 1024 /* NoLeadingComments */);\n const oldImportGroups = shouldCombine ? group(oldImportDecls, (importDecl) => getExternalModuleName2(importDecl.moduleSpecifier)) : [oldImportDecls];\n const sortedImportGroups = shouldSort ? toSorted(oldImportGroups, (group1, group2) => compareModuleSpecifiersWorker(group1[0].moduleSpecifier, group2[0].moduleSpecifier, comparer.moduleSpecifierComparer ?? defaultComparer)) : oldImportGroups;\n const newImportDecls = flatMap(sortedImportGroups, (importGroup) => getExternalModuleName2(importGroup[0].moduleSpecifier) || importGroup[0].moduleSpecifier === void 0 ? coalesce(importGroup) : importGroup);\n if (newImportDecls.length === 0) {\n changeTracker.deleteNodes(\n sourceFile,\n oldImportDecls,\n {\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n },\n /*hasTrailingComment*/\n true\n );\n } else {\n const replaceOptions = {\n leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n // Leave header comment in place\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include,\n suffix: getNewLineOrDefaultFromHost(host, formatContext.options)\n };\n changeTracker.replaceNodeWithNodes(sourceFile, oldImportDecls[0], newImportDecls, replaceOptions);\n const hasTrailingComment = changeTracker.nodeHasTrailingComment(sourceFile, oldImportDecls[0], replaceOptions);\n changeTracker.deleteNodes(sourceFile, oldImportDecls.slice(1), {\n trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n }, hasTrailingComment);\n }\n }\n function organizeImportsWorker(oldImportDecls, comparer2) {\n const detectedModuleCaseComparer = comparer2.moduleSpecifierComparer ?? defaultComparer;\n const detectedNamedImportCaseComparer = comparer2.namedImportComparer ?? defaultComparer;\n const detectedTypeOrder = comparer2.typeOrder ?? \"last\";\n const specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: detectedTypeOrder }, detectedNamedImportCaseComparer);\n const processImportsOfSameModuleSpecifier = (importGroup) => {\n if (shouldRemove) importGroup = removeUnusedImports(importGroup, sourceFile, program);\n if (shouldCombine) importGroup = coalesceImportsWorker(importGroup, detectedModuleCaseComparer, specifierComparer, sourceFile);\n if (shouldSort) importGroup = toSorted(importGroup, (s1, s2) => compareImportsOrRequireStatements(s1, s2, detectedModuleCaseComparer));\n return importGroup;\n };\n organizeDeclsWorker(oldImportDecls, processImportsOfSameModuleSpecifier);\n }\n function organizeExportsWorker(oldExportDecls, specifierCaseComparer) {\n const useComparer = getNamedImportSpecifierComparer(preferences, specifierCaseComparer);\n organizeDeclsWorker(oldExportDecls, (group2) => coalesceExportsWorker(group2, useComparer));\n }\n}\nfunction getDetectionLists(preferences) {\n return {\n comparersToTest: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? [getOrganizeImportsStringComparer(preferences, preferences.organizeImportsIgnoreCase)] : [getOrganizeImportsStringComparer(\n preferences,\n /*ignoreCase*/\n true\n ), getOrganizeImportsStringComparer(\n preferences,\n /*ignoreCase*/\n false\n )],\n typeOrdersToTest: preferences.organizeImportsTypeOrder ? [preferences.organizeImportsTypeOrder] : [\"last\", \"inline\", \"first\"]\n };\n}\nfunction groupByNewlineContiguous(sourceFile, decls) {\n const scanner2 = createScanner(\n sourceFile.languageVersion,\n /*skipTrivia*/\n false,\n sourceFile.languageVariant\n );\n const group2 = [];\n let groupIndex = 0;\n for (const decl of decls) {\n if (group2[groupIndex] && isNewGroup(sourceFile, decl, scanner2)) {\n groupIndex++;\n }\n if (!group2[groupIndex]) {\n group2[groupIndex] = [];\n }\n group2[groupIndex].push(decl);\n }\n return group2;\n}\nfunction isNewGroup(sourceFile, decl, scanner2) {\n const startPos = decl.getFullStart();\n const endPos = decl.getStart();\n scanner2.setText(sourceFile.text, startPos, endPos - startPos);\n let numberOfNewLines = 0;\n while (scanner2.getTokenStart() < endPos) {\n const tokenKind = scanner2.scan();\n if (tokenKind === 4 /* NewLineTrivia */) {\n numberOfNewLines++;\n if (numberOfNewLines >= 2) {\n return true;\n }\n }\n }\n return false;\n}\nfunction getTopLevelExportGroups(sourceFile) {\n const topLevelExportGroups = [];\n const statements = sourceFile.statements;\n const len = length(statements);\n let i = 0;\n let groupIndex = 0;\n while (i < len) {\n if (isExportDeclaration(statements[i])) {\n if (topLevelExportGroups[groupIndex] === void 0) {\n topLevelExportGroups[groupIndex] = [];\n }\n const exportDecl = statements[i];\n if (exportDecl.moduleSpecifier) {\n topLevelExportGroups[groupIndex].push(exportDecl);\n i++;\n } else {\n while (i < len && isExportDeclaration(statements[i])) {\n topLevelExportGroups[groupIndex].push(statements[i++]);\n }\n groupIndex++;\n }\n } else {\n i++;\n }\n }\n return flatMap(topLevelExportGroups, (exportGroupDecls) => groupByNewlineContiguous(sourceFile, exportGroupDecls));\n}\nfunction removeUnusedImports(oldImports, sourceFile, program) {\n const typeChecker = program.getTypeChecker();\n const compilerOptions = program.getCompilerOptions();\n const jsxNamespace = typeChecker.getJsxNamespace(sourceFile);\n const jsxFragmentFactory = typeChecker.getJsxFragmentFactory(sourceFile);\n const jsxElementsPresent = !!(sourceFile.transformFlags & 2 /* ContainsJsx */);\n const usedImports = [];\n for (const importDecl of oldImports) {\n const { importClause, moduleSpecifier } = importDecl;\n if (!importClause) {\n usedImports.push(importDecl);\n continue;\n }\n let { name, namedBindings } = importClause;\n if (name && !isDeclarationUsed(name)) {\n name = void 0;\n }\n if (namedBindings) {\n if (isNamespaceImport(namedBindings)) {\n if (!isDeclarationUsed(namedBindings.name)) {\n namedBindings = void 0;\n }\n } else {\n const newElements = namedBindings.elements.filter((e) => isDeclarationUsed(e.name));\n if (newElements.length < namedBindings.elements.length) {\n namedBindings = newElements.length ? factory.updateNamedImports(namedBindings, newElements) : void 0;\n }\n }\n }\n if (name || namedBindings) {\n usedImports.push(updateImportDeclarationAndClause(importDecl, name, namedBindings));\n } else if (hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier)) {\n if (sourceFile.isDeclarationFile) {\n usedImports.push(factory.createImportDeclaration(\n importDecl.modifiers,\n /*importClause*/\n void 0,\n moduleSpecifier,\n /*attributes*/\n void 0\n ));\n } else {\n usedImports.push(importDecl);\n }\n }\n }\n return usedImports;\n function isDeclarationUsed(identifier) {\n return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) && jsxModeNeedsExplicitImport(compilerOptions.jsx) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile);\n }\n}\nfunction getExternalModuleName2(specifier) {\n return specifier !== void 0 && isStringLiteralLike(specifier) ? specifier.text : void 0;\n}\nfunction getCategorizedImports(importGroup) {\n let importWithoutClause;\n const typeOnlyImports = { defaultImports: [], namespaceImports: [], namedImports: [] };\n const regularImports = { defaultImports: [], namespaceImports: [], namedImports: [] };\n for (const importDeclaration of importGroup) {\n if (importDeclaration.importClause === void 0) {\n importWithoutClause = importWithoutClause || importDeclaration;\n continue;\n }\n const group2 = importDeclaration.importClause.isTypeOnly ? typeOnlyImports : regularImports;\n const { name, namedBindings } = importDeclaration.importClause;\n if (name) {\n group2.defaultImports.push(importDeclaration);\n }\n if (namedBindings) {\n if (isNamespaceImport(namedBindings)) {\n group2.namespaceImports.push(importDeclaration);\n } else {\n group2.namedImports.push(importDeclaration);\n }\n }\n }\n return {\n importWithoutClause,\n typeOnlyImports,\n regularImports\n };\n}\nfunction coalesceImportsWorker(importGroup, comparer, specifierComparer, sourceFile) {\n if (importGroup.length === 0) {\n return importGroup;\n }\n const importGroupsByAttributes = groupBy(importGroup, (decl) => {\n if (decl.attributes) {\n let attrs = decl.attributes.token + \" \";\n for (const x of toSorted(decl.attributes.elements, (x2, y) => compareStringsCaseSensitive(x2.name.text, y.name.text))) {\n attrs += x.name.text + \":\";\n attrs += isStringLiteralLike(x.value) ? `\"${x.value.text}\"` : x.value.getText() + \" \";\n }\n return attrs;\n }\n return \"\";\n });\n const coalescedImports = [];\n for (const attribute in importGroupsByAttributes) {\n const importGroupSameAttrs = importGroupsByAttributes[attribute];\n const { importWithoutClause, typeOnlyImports, regularImports } = getCategorizedImports(importGroupSameAttrs);\n if (importWithoutClause) {\n coalescedImports.push(importWithoutClause);\n }\n for (const group2 of [regularImports, typeOnlyImports]) {\n const isTypeOnly = group2 === typeOnlyImports;\n const { defaultImports, namespaceImports, namedImports } = group2;\n if (!isTypeOnly && defaultImports.length === 1 && namespaceImports.length === 1 && namedImports.length === 0) {\n const defaultImport = defaultImports[0];\n coalescedImports.push(\n updateImportDeclarationAndClause(defaultImport, defaultImport.importClause.name, namespaceImports[0].importClause.namedBindings)\n );\n continue;\n }\n const sortedNamespaceImports = toSorted(namespaceImports, (i1, i2) => comparer(i1.importClause.namedBindings.name.text, i2.importClause.namedBindings.name.text));\n for (const namespaceImport of sortedNamespaceImports) {\n coalescedImports.push(\n updateImportDeclarationAndClause(\n namespaceImport,\n /*name*/\n void 0,\n namespaceImport.importClause.namedBindings\n )\n );\n }\n const firstDefaultImport = firstOrUndefined(defaultImports);\n const firstNamedImport = firstOrUndefined(namedImports);\n const importDecl = firstDefaultImport ?? firstNamedImport;\n if (!importDecl) {\n continue;\n }\n let newDefaultImport;\n const newImportSpecifiers = [];\n if (defaultImports.length === 1) {\n newDefaultImport = defaultImports[0].importClause.name;\n } else {\n for (const defaultImport of defaultImports) {\n newImportSpecifiers.push(\n factory.createImportSpecifier(\n /*isTypeOnly*/\n false,\n factory.createIdentifier(\"default\"),\n defaultImport.importClause.name\n )\n );\n }\n }\n newImportSpecifiers.push(...getNewImportSpecifiers(namedImports));\n const sortedImportSpecifiers = factory.createNodeArray(\n toSorted(newImportSpecifiers, specifierComparer),\n firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings.elements.hasTrailingComma\n );\n const newNamedImports = sortedImportSpecifiers.length === 0 ? newDefaultImport ? void 0 : factory.createNamedImports(emptyArray) : firstNamedImport ? factory.updateNamedImports(firstNamedImport.importClause.namedBindings, sortedImportSpecifiers) : factory.createNamedImports(sortedImportSpecifiers);\n if (sourceFile && newNamedImports && (firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings) && !rangeIsOnSingleLine(firstNamedImport.importClause.namedBindings, sourceFile)) {\n setEmitFlags(newNamedImports, 2 /* MultiLine */);\n }\n if (isTypeOnly && newDefaultImport && newNamedImports) {\n coalescedImports.push(\n updateImportDeclarationAndClause(\n importDecl,\n newDefaultImport,\n /*namedBindings*/\n void 0\n )\n );\n coalescedImports.push(\n updateImportDeclarationAndClause(\n firstNamedImport ?? importDecl,\n /*name*/\n void 0,\n newNamedImports\n )\n );\n } else {\n coalescedImports.push(\n updateImportDeclarationAndClause(importDecl, newDefaultImport, newNamedImports)\n );\n }\n }\n }\n return coalescedImports;\n}\nfunction coalesceExportsWorker(exportGroup, specifierComparer) {\n if (exportGroup.length === 0) {\n return exportGroup;\n }\n const { exportWithoutClause, namedExports, typeOnlyExports } = getCategorizedExports(exportGroup);\n const coalescedExports = [];\n if (exportWithoutClause) {\n coalescedExports.push(exportWithoutClause);\n }\n for (const exportGroup2 of [namedExports, typeOnlyExports]) {\n if (exportGroup2.length === 0) {\n continue;\n }\n const newExportSpecifiers = [];\n newExportSpecifiers.push(...flatMap(exportGroup2, (i) => i.exportClause && isNamedExports(i.exportClause) ? i.exportClause.elements : emptyArray));\n const sortedExportSpecifiers = toSorted(newExportSpecifiers, specifierComparer);\n const exportDecl = exportGroup2[0];\n coalescedExports.push(\n factory.updateExportDeclaration(\n exportDecl,\n exportDecl.modifiers,\n exportDecl.isTypeOnly,\n exportDecl.exportClause && (isNamedExports(exportDecl.exportClause) ? factory.updateNamedExports(exportDecl.exportClause, sortedExportSpecifiers) : factory.updateNamespaceExport(exportDecl.exportClause, exportDecl.exportClause.name)),\n exportDecl.moduleSpecifier,\n exportDecl.attributes\n )\n );\n }\n return coalescedExports;\n function getCategorizedExports(exportGroup2) {\n let exportWithoutClause2;\n const namedExports2 = [];\n const typeOnlyExports2 = [];\n for (const exportDeclaration of exportGroup2) {\n if (exportDeclaration.exportClause === void 0) {\n exportWithoutClause2 = exportWithoutClause2 || exportDeclaration;\n } else if (exportDeclaration.isTypeOnly) {\n typeOnlyExports2.push(exportDeclaration);\n } else {\n namedExports2.push(exportDeclaration);\n }\n }\n return {\n exportWithoutClause: exportWithoutClause2,\n namedExports: namedExports2,\n typeOnlyExports: typeOnlyExports2\n };\n }\n}\nfunction updateImportDeclarationAndClause(importDeclaration, name, namedBindings) {\n return factory.updateImportDeclaration(\n importDeclaration,\n importDeclaration.modifiers,\n factory.updateImportClause(importDeclaration.importClause, importDeclaration.importClause.phaseModifier, name, namedBindings),\n // TODO: GH#18217\n importDeclaration.moduleSpecifier,\n importDeclaration.attributes\n );\n}\nfunction compareImportOrExportSpecifiers(s1, s2, comparer, preferences) {\n switch (preferences == null ? void 0 : preferences.organizeImportsTypeOrder) {\n case \"first\":\n return compareBooleans(s2.isTypeOnly, s1.isTypeOnly) || comparer(s1.name.text, s2.name.text);\n case \"inline\":\n return comparer(s1.name.text, s2.name.text);\n default:\n return compareBooleans(s1.isTypeOnly, s2.isTypeOnly) || comparer(s1.name.text, s2.name.text);\n }\n}\nfunction compareModuleSpecifiersWorker(m1, m2, comparer) {\n const name1 = m1 === void 0 ? void 0 : getExternalModuleName2(m1);\n const name2 = m2 === void 0 ? void 0 : getExternalModuleName2(m2);\n return compareBooleans(name1 === void 0, name2 === void 0) || compareBooleans(isExternalModuleNameRelative(name1), isExternalModuleNameRelative(name2)) || comparer(name1, name2);\n}\nfunction getModuleNamesFromDecls(decls) {\n return decls.map((s) => getExternalModuleName2(getModuleSpecifierExpression(s)) || \"\");\n}\nfunction getModuleSpecifierExpression(declaration) {\n var _a;\n switch (declaration.kind) {\n case 272 /* ImportEqualsDeclaration */:\n return (_a = tryCast(declaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression;\n case 273 /* ImportDeclaration */:\n return declaration.moduleSpecifier;\n case 244 /* VariableStatement */:\n return declaration.declarationList.declarations[0].initializer.arguments[0];\n }\n}\nfunction hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier) {\n const moduleSpecifierText = isStringLiteral(moduleSpecifier) && moduleSpecifier.text;\n return isString(moduleSpecifierText) && some(sourceFile.moduleAugmentations, (moduleName) => isStringLiteral(moduleName) && moduleName.text === moduleSpecifierText);\n}\nfunction getNewImportSpecifiers(namedImports) {\n return flatMap(namedImports, (namedImport) => map(tryGetNamedBindingElements(namedImport), (importSpecifier) => importSpecifier.name && importSpecifier.propertyName && moduleExportNameTextEscaped(importSpecifier.name) === moduleExportNameTextEscaped(importSpecifier.propertyName) ? factory.updateImportSpecifier(\n importSpecifier,\n importSpecifier.isTypeOnly,\n /*propertyName*/\n void 0,\n importSpecifier.name\n ) : importSpecifier));\n}\nfunction tryGetNamedBindingElements(namedImport) {\n var _a;\n return ((_a = namedImport.importClause) == null ? void 0 : _a.namedBindings) && isNamedImports(namedImport.importClause.namedBindings) ? namedImport.importClause.namedBindings.elements : void 0;\n}\nfunction detectModuleSpecifierCaseBySort(importDeclsByGroup, comparersToTest) {\n const moduleSpecifiersByGroup = [];\n importDeclsByGroup.forEach((importGroup) => {\n moduleSpecifiersByGroup.push(getModuleNamesFromDecls(importGroup));\n });\n return detectCaseSensitivityBySort(moduleSpecifiersByGroup, comparersToTest);\n}\nfunction detectNamedImportOrganizationBySort(originalGroups, comparersToTest, typesToTest) {\n let bothNamedImports = false;\n const importDeclsWithNamed = originalGroups.filter((i) => {\n var _a, _b;\n const namedImports = (_b = tryCast((_a = i.importClause) == null ? void 0 : _a.namedBindings, isNamedImports)) == null ? void 0 : _b.elements;\n if (!(namedImports == null ? void 0 : namedImports.length)) return false;\n if (!bothNamedImports && namedImports.some((n) => n.isTypeOnly) && namedImports.some((n) => !n.isTypeOnly)) {\n bothNamedImports = true;\n }\n return true;\n });\n if (importDeclsWithNamed.length === 0) return;\n const namedImportsByDecl = importDeclsWithNamed.map((importDecl) => {\n var _a, _b;\n return (_b = tryCast((_a = importDecl.importClause) == null ? void 0 : _a.namedBindings, isNamedImports)) == null ? void 0 : _b.elements;\n }).filter((elements) => elements !== void 0);\n if (!bothNamedImports || typesToTest.length === 0) {\n const sortState = detectCaseSensitivityBySort(namedImportsByDecl.map((i) => i.map((n) => n.name.text)), comparersToTest);\n return {\n namedImportComparer: sortState.comparer,\n typeOrder: typesToTest.length === 1 ? typesToTest[0] : void 0,\n isSorted: sortState.isSorted\n };\n }\n const bestDiff = { first: Infinity, last: Infinity, inline: Infinity };\n const bestComparer = { first: comparersToTest[0], last: comparersToTest[0], inline: comparersToTest[0] };\n for (const curComparer of comparersToTest) {\n const currDiff = { first: 0, last: 0, inline: 0 };\n for (const importDecl of namedImportsByDecl) {\n for (const typeOrder of typesToTest) {\n currDiff[typeOrder] = (currDiff[typeOrder] ?? 0) + measureSortedness(importDecl, (n1, n2) => compareImportOrExportSpecifiers(n1, n2, curComparer, { organizeImportsTypeOrder: typeOrder }));\n }\n }\n for (const key of typesToTest) {\n const typeOrder = key;\n if (currDiff[typeOrder] < bestDiff[typeOrder]) {\n bestDiff[typeOrder] = currDiff[typeOrder];\n bestComparer[typeOrder] = curComparer;\n }\n }\n }\n outer: for (const bestKey of typesToTest) {\n const bestTypeOrder = bestKey;\n for (const testKey of typesToTest) {\n const testTypeOrder = testKey;\n if (bestDiff[testTypeOrder] < bestDiff[bestTypeOrder]) continue outer;\n }\n return { namedImportComparer: bestComparer[bestTypeOrder], typeOrder: bestTypeOrder, isSorted: bestDiff[bestTypeOrder] === 0 };\n }\n return { namedImportComparer: bestComparer.last, typeOrder: \"last\", isSorted: bestDiff.last === 0 };\n}\nfunction measureSortedness(arr, comparer) {\n let i = 0;\n for (let j = 0; j < arr.length - 1; j++) {\n if (comparer(arr[j], arr[j + 1]) > 0) {\n i++;\n }\n }\n return i;\n}\nfunction detectCaseSensitivityBySort(originalGroups, comparersToTest) {\n let bestComparer;\n let bestDiff = Infinity;\n for (const curComparer of comparersToTest) {\n let diffOfCurrentComparer = 0;\n for (const listToSort of originalGroups) {\n if (listToSort.length <= 1) continue;\n const diff = measureSortedness(listToSort, curComparer);\n diffOfCurrentComparer += diff;\n }\n if (diffOfCurrentComparer < bestDiff) {\n bestDiff = diffOfCurrentComparer;\n bestComparer = curComparer;\n }\n }\n return {\n comparer: bestComparer ?? comparersToTest[0],\n isSorted: bestDiff === 0\n };\n}\nfunction compareImportKind(s1, s2) {\n return compareValues(getImportKindOrder(s1), getImportKindOrder(s2));\n}\nfunction getImportKindOrder(s1) {\n var _a;\n switch (s1.kind) {\n case 273 /* ImportDeclaration */:\n if (!s1.importClause) return 0;\n if (s1.importClause.isTypeOnly) return 1;\n if (((_a = s1.importClause.namedBindings) == null ? void 0 : _a.kind) === 275 /* NamespaceImport */) return 2;\n if (s1.importClause.name) return 3;\n return 4;\n case 272 /* ImportEqualsDeclaration */:\n return 5;\n case 244 /* VariableStatement */:\n return 6;\n }\n}\nfunction getOrganizeImportsOrdinalStringComparer(ignoreCase) {\n return ignoreCase ? compareStringsCaseInsensitiveEslintCompatible : compareStringsCaseSensitive;\n}\nfunction getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) {\n const resolvedLocale = getOrganizeImportsLocale(preferences);\n const caseFirst = preferences.organizeImportsCaseFirst ?? false;\n const numeric = preferences.organizeImportsNumericCollation ?? false;\n const accents = preferences.organizeImportsAccentCollation ?? true;\n const sensitivity = ignoreCase ? accents ? \"accent\" : \"base\" : accents ? \"variant\" : \"case\";\n const collator = new Intl.Collator(resolvedLocale, {\n usage: \"sort\",\n caseFirst: caseFirst || \"false\",\n sensitivity,\n numeric\n });\n return collator.compare;\n}\nfunction getOrganizeImportsLocale(preferences) {\n let locale = preferences.organizeImportsLocale;\n if (locale === \"auto\") locale = getUILocale();\n if (locale === void 0) locale = \"en\";\n const supportedLocales = Intl.Collator.supportedLocalesOf(locale);\n const resolvedLocale = supportedLocales.length ? supportedLocales[0] : \"en\";\n return resolvedLocale;\n}\nfunction getOrganizeImportsStringComparer(preferences, ignoreCase) {\n const collation = preferences.organizeImportsCollation ?? \"ordinal\";\n return collation === \"unicode\" ? getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) : getOrganizeImportsOrdinalStringComparer(ignoreCase);\n}\nfunction getOrganizeImportsStringComparerWithDetection(originalImportDecls, preferences) {\n return detectModuleSpecifierCaseBySort([originalImportDecls], getDetectionLists(preferences).comparersToTest);\n}\nfunction getNamedImportSpecifierComparer(preferences, comparer) {\n const stringComparer = comparer ?? getOrganizeImportsOrdinalStringComparer(!!preferences.organizeImportsIgnoreCase);\n return (s1, s2) => compareImportOrExportSpecifiers(s1, s2, stringComparer, preferences);\n}\nfunction getNamedImportSpecifierComparerWithDetection(importDecl, preferences, sourceFile) {\n const { comparersToTest, typeOrdersToTest } = getDetectionLists(preferences);\n const detectFromDecl = detectNamedImportOrganizationBySort([importDecl], comparersToTest, typeOrdersToTest);\n let specifierComparer = getNamedImportSpecifierComparer(preferences, comparersToTest[0]);\n let isSorted;\n if (typeof preferences.organizeImportsIgnoreCase !== \"boolean\" || !preferences.organizeImportsTypeOrder) {\n if (detectFromDecl) {\n const { namedImportComparer, typeOrder, isSorted: isDetectedSorted } = detectFromDecl;\n isSorted = isDetectedSorted;\n specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: typeOrder }, namedImportComparer);\n } else if (sourceFile) {\n const detectFromFile = detectNamedImportOrganizationBySort(sourceFile.statements.filter(isImportDeclaration), comparersToTest, typeOrdersToTest);\n if (detectFromFile) {\n const { namedImportComparer, typeOrder, isSorted: isDetectedSorted } = detectFromFile;\n isSorted = isDetectedSorted;\n specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: typeOrder }, namedImportComparer);\n }\n }\n }\n return { specifierComparer, isSorted };\n}\nfunction getImportDeclarationInsertionIndex(sortedImports, newImport, comparer) {\n const index = binarySearch(sortedImports, newImport, identity, (a, b) => compareImportsOrRequireStatements(a, b, comparer));\n return index < 0 ? ~index : index;\n}\nfunction getImportSpecifierInsertionIndex(sortedImports, newImport, comparer) {\n const index = binarySearch(sortedImports, newImport, identity, comparer);\n return index < 0 ? ~index : index;\n}\nfunction compareImportsOrRequireStatements(s1, s2, comparer) {\n return compareModuleSpecifiersWorker(getModuleSpecifierExpression(s1), getModuleSpecifierExpression(s2), comparer) || compareImportKind(s1, s2);\n}\nfunction testCoalesceImports(importGroup, ignoreCase, sourceFile, preferences) {\n const comparer = getOrganizeImportsOrdinalStringComparer(ignoreCase);\n const specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: preferences == null ? void 0 : preferences.organizeImportsTypeOrder }, comparer);\n return coalesceImportsWorker(importGroup, comparer, specifierComparer, sourceFile);\n}\nfunction testCoalesceExports(exportGroup, ignoreCase, preferences) {\n const comparer = (s1, s2) => compareImportOrExportSpecifiers(s1, s2, getOrganizeImportsOrdinalStringComparer(ignoreCase), { organizeImportsTypeOrder: (preferences == null ? void 0 : preferences.organizeImportsTypeOrder) ?? \"last\" });\n return coalesceExportsWorker(exportGroup, comparer);\n}\nfunction compareModuleSpecifiers2(m1, m2, ignoreCase) {\n const comparer = getOrganizeImportsOrdinalStringComparer(!!ignoreCase);\n return compareModuleSpecifiersWorker(m1, m2, comparer);\n}\n\n// src/services/_namespaces/ts.OutliningElementsCollector.ts\nvar ts_OutliningElementsCollector_exports = {};\n__export(ts_OutliningElementsCollector_exports, {\n collectElements: () => collectElements\n});\n\n// src/services/outliningElementsCollector.ts\nfunction collectElements(sourceFile, cancellationToken) {\n const res = [];\n addNodeOutliningSpans(sourceFile, cancellationToken, res);\n addRegionOutliningSpans(sourceFile, res);\n res.sort((span1, span2) => span1.textSpan.start - span2.textSpan.start);\n return res;\n}\nfunction addNodeOutliningSpans(sourceFile, cancellationToken, out) {\n let depthRemaining = 40;\n let current = 0;\n const statements = sourceFile.statements;\n const n = statements.length;\n while (current < n) {\n while (current < n && !isAnyImportSyntax(statements[current])) {\n visitNode3(statements[current]);\n current++;\n }\n if (current === n) break;\n const firstImport = current;\n while (current < n && isAnyImportSyntax(statements[current])) {\n visitNode3(statements[current]);\n current++;\n }\n const lastImport = current - 1;\n if (lastImport !== firstImport) {\n out.push(createOutliningSpanFromBounds(findChildOfKind(statements[firstImport], 102 /* ImportKeyword */, sourceFile).getStart(sourceFile), statements[lastImport].getEnd(), \"imports\" /* Imports */));\n }\n }\n visitNode3(sourceFile.endOfFileToken);\n function visitNode3(n2) {\n var _a;\n if (depthRemaining === 0) return;\n cancellationToken.throwIfCancellationRequested();\n if (isDeclaration(n2) || isVariableStatement(n2) || isReturnStatement(n2) || isCallOrNewExpression(n2) || n2.kind === 1 /* EndOfFileToken */) {\n addOutliningForLeadingCommentsForNode(n2, sourceFile, cancellationToken, out);\n }\n if (isFunctionLike(n2) && isBinaryExpression(n2.parent) && isPropertyAccessExpression(n2.parent.left)) {\n addOutliningForLeadingCommentsForNode(n2.parent.left, sourceFile, cancellationToken, out);\n }\n if (isBlock(n2) || isModuleBlock(n2)) {\n addOutliningForLeadingCommentsForPos(n2.statements.end, sourceFile, cancellationToken, out);\n }\n if (isClassLike(n2) || isInterfaceDeclaration(n2)) {\n addOutliningForLeadingCommentsForPos(n2.members.end, sourceFile, cancellationToken, out);\n }\n const span = getOutliningSpanForNode(n2, sourceFile);\n if (span) out.push(span);\n depthRemaining--;\n if (isCallExpression(n2)) {\n depthRemaining++;\n visitNode3(n2.expression);\n depthRemaining--;\n n2.arguments.forEach(visitNode3);\n (_a = n2.typeArguments) == null ? void 0 : _a.forEach(visitNode3);\n } else if (isIfStatement(n2) && n2.elseStatement && isIfStatement(n2.elseStatement)) {\n visitNode3(n2.expression);\n visitNode3(n2.thenStatement);\n depthRemaining++;\n visitNode3(n2.elseStatement);\n depthRemaining--;\n } else {\n n2.forEachChild(visitNode3);\n }\n depthRemaining++;\n }\n}\nfunction addRegionOutliningSpans(sourceFile, out) {\n const regions = [];\n const lineStarts = sourceFile.getLineStarts();\n for (const currentLineStart of lineStarts) {\n const lineEnd = sourceFile.getLineEndOfPosition(currentLineStart);\n const lineText = sourceFile.text.substring(currentLineStart, lineEnd);\n const result = parseRegionDelimiter(lineText);\n if (!result || isInComment(sourceFile, currentLineStart)) {\n continue;\n }\n if (result.isStart) {\n const span = createTextSpanFromBounds(sourceFile.text.indexOf(\"//\", currentLineStart), lineEnd);\n regions.push(createOutliningSpan(\n span,\n \"region\" /* Region */,\n span,\n /*autoCollapse*/\n false,\n result.name || \"#region\"\n ));\n } else {\n const region = regions.pop();\n if (region) {\n region.textSpan.length = lineEnd - region.textSpan.start;\n region.hintSpan.length = lineEnd - region.textSpan.start;\n out.push(region);\n }\n }\n }\n}\nvar regionDelimiterRegExp = /^#(end)?region(.*)\\r?$/;\nfunction parseRegionDelimiter(lineText) {\n lineText = lineText.trimStart();\n if (!startsWith(lineText, \"//\")) {\n return null;\n }\n lineText = lineText.slice(2).trim();\n const result = regionDelimiterRegExp.exec(lineText);\n if (result) {\n return { isStart: !result[1], name: result[2].trim() };\n }\n return void 0;\n}\nfunction addOutliningForLeadingCommentsForPos(pos, sourceFile, cancellationToken, out) {\n const comments = getLeadingCommentRanges(sourceFile.text, pos);\n if (!comments) return;\n let firstSingleLineCommentStart = -1;\n let lastSingleLineCommentEnd = -1;\n let singleLineCommentCount = 0;\n const sourceText = sourceFile.getFullText();\n for (const { kind, pos: pos2, end } of comments) {\n cancellationToken.throwIfCancellationRequested();\n switch (kind) {\n case 2 /* SingleLineCommentTrivia */:\n const commentText = sourceText.slice(pos2, end);\n if (parseRegionDelimiter(commentText)) {\n combineAndAddMultipleSingleLineComments();\n singleLineCommentCount = 0;\n break;\n }\n if (singleLineCommentCount === 0) {\n firstSingleLineCommentStart = pos2;\n }\n lastSingleLineCommentEnd = end;\n singleLineCommentCount++;\n break;\n case 3 /* MultiLineCommentTrivia */:\n combineAndAddMultipleSingleLineComments();\n out.push(createOutliningSpanFromBounds(pos2, end, \"comment\" /* Comment */));\n singleLineCommentCount = 0;\n break;\n default:\n Debug.assertNever(kind);\n }\n }\n combineAndAddMultipleSingleLineComments();\n function combineAndAddMultipleSingleLineComments() {\n if (singleLineCommentCount > 1) {\n out.push(createOutliningSpanFromBounds(firstSingleLineCommentStart, lastSingleLineCommentEnd, \"comment\" /* Comment */));\n }\n }\n}\nfunction addOutliningForLeadingCommentsForNode(n, sourceFile, cancellationToken, out) {\n if (isJsxText(n)) return;\n addOutliningForLeadingCommentsForPos(n.pos, sourceFile, cancellationToken, out);\n}\nfunction createOutliningSpanFromBounds(pos, end, kind) {\n return createOutliningSpan(createTextSpanFromBounds(pos, end), kind);\n}\nfunction getOutliningSpanForNode(n, sourceFile) {\n switch (n.kind) {\n case 242 /* Block */:\n if (isFunctionLike(n.parent)) {\n return functionSpan(n.parent, n, sourceFile);\n }\n switch (n.parent.kind) {\n case 247 /* DoStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 249 /* ForStatement */:\n case 246 /* IfStatement */:\n case 248 /* WhileStatement */:\n case 255 /* WithStatement */:\n case 300 /* CatchClause */:\n return spanForNode(n.parent);\n case 259 /* TryStatement */:\n const tryStatement = n.parent;\n if (tryStatement.tryBlock === n) {\n return spanForNode(n.parent);\n } else if (tryStatement.finallyBlock === n) {\n const node = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile);\n if (node) return spanForNode(node);\n }\n // falls through\n default:\n return createOutliningSpan(createTextSpanFromNode(n, sourceFile), \"code\" /* Code */);\n }\n case 269 /* ModuleBlock */:\n return spanForNode(n.parent);\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 270 /* CaseBlock */:\n case 188 /* TypeLiteral */:\n case 207 /* ObjectBindingPattern */:\n return spanForNode(n);\n case 190 /* TupleType */:\n return spanForNode(\n n,\n /*autoCollapse*/\n false,\n /*useFullStart*/\n !isTupleTypeNode(n.parent),\n 23 /* OpenBracketToken */\n );\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n return spanForNodeArray(n.statements);\n case 211 /* ObjectLiteralExpression */:\n return spanForObjectOrArrayLiteral(n);\n case 210 /* ArrayLiteralExpression */:\n return spanForObjectOrArrayLiteral(n, 23 /* OpenBracketToken */);\n case 285 /* JsxElement */:\n return spanForJSXElement(n);\n case 289 /* JsxFragment */:\n return spanForJSXFragment(n);\n case 286 /* JsxSelfClosingElement */:\n case 287 /* JsxOpeningElement */:\n return spanForJSXAttributes(n.attributes);\n case 229 /* TemplateExpression */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n return spanForTemplateLiteral(n);\n case 208 /* ArrayBindingPattern */:\n return spanForNode(\n n,\n /*autoCollapse*/\n false,\n /*useFullStart*/\n !isBindingElement(n.parent),\n 23 /* OpenBracketToken */\n );\n case 220 /* ArrowFunction */:\n return spanForArrowFunction(n);\n case 214 /* CallExpression */:\n return spanForCallExpression(n);\n case 218 /* ParenthesizedExpression */:\n return spanForParenthesizedExpression(n);\n case 276 /* NamedImports */:\n case 280 /* NamedExports */:\n case 301 /* ImportAttributes */:\n return spanForImportExportElements(n);\n }\n function spanForImportExportElements(node) {\n if (!node.elements.length) {\n return void 0;\n }\n const openToken = findChildOfKind(node, 19 /* OpenBraceToken */, sourceFile);\n const closeToken = findChildOfKind(node, 20 /* CloseBraceToken */, sourceFile);\n if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) {\n return void 0;\n }\n return spanBetweenTokens(\n openToken,\n closeToken,\n node,\n sourceFile,\n /*autoCollapse*/\n false,\n /*useFullStart*/\n false\n );\n }\n function spanForCallExpression(node) {\n if (!node.arguments.length) {\n return void 0;\n }\n const openToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n const closeToken = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile);\n if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) {\n return void 0;\n }\n return spanBetweenTokens(\n openToken,\n closeToken,\n node,\n sourceFile,\n /*autoCollapse*/\n false,\n /*useFullStart*/\n true\n );\n }\n function spanForArrowFunction(node) {\n if (isBlock(node.body) || isParenthesizedExpression(node.body) || positionsAreOnSameLine(node.body.getFullStart(), node.body.getEnd(), sourceFile)) {\n return void 0;\n }\n const textSpan = createTextSpanFromBounds(node.body.getFullStart(), node.body.getEnd());\n return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(node));\n }\n function spanForJSXElement(node) {\n const textSpan = createTextSpanFromBounds(node.openingElement.getStart(sourceFile), node.closingElement.getEnd());\n const tagName = node.openingElement.tagName.getText(sourceFile);\n const bannerText = \"<\" + tagName + \">...\";\n return createOutliningSpan(\n textSpan,\n \"code\" /* Code */,\n textSpan,\n /*autoCollapse*/\n false,\n bannerText\n );\n }\n function spanForJSXFragment(node) {\n const textSpan = createTextSpanFromBounds(node.openingFragment.getStart(sourceFile), node.closingFragment.getEnd());\n const bannerText = \"<>...\";\n return createOutliningSpan(\n textSpan,\n \"code\" /* Code */,\n textSpan,\n /*autoCollapse*/\n false,\n bannerText\n );\n }\n function spanForJSXAttributes(node) {\n if (node.properties.length === 0) {\n return void 0;\n }\n return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), \"code\" /* Code */);\n }\n function spanForTemplateLiteral(node) {\n if (node.kind === 15 /* NoSubstitutionTemplateLiteral */ && node.text.length === 0) {\n return void 0;\n }\n return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), \"code\" /* Code */);\n }\n function spanForObjectOrArrayLiteral(node, open = 19 /* OpenBraceToken */) {\n return spanForNode(\n node,\n /*autoCollapse*/\n false,\n /*useFullStart*/\n !isArrayLiteralExpression(node.parent) && !isCallExpression(node.parent),\n open\n );\n }\n function spanForNode(hintSpanNode, autoCollapse = false, useFullStart = true, open = 19 /* OpenBraceToken */, close = open === 19 /* OpenBraceToken */ ? 20 /* CloseBraceToken */ : 24 /* CloseBracketToken */) {\n const openToken = findChildOfKind(n, open, sourceFile);\n const closeToken = findChildOfKind(n, close, sourceFile);\n return openToken && closeToken && spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse, useFullStart);\n }\n function spanForNodeArray(nodeArray) {\n return nodeArray.length ? createOutliningSpan(createTextSpanFromRange(nodeArray), \"code\" /* Code */) : void 0;\n }\n function spanForParenthesizedExpression(node) {\n if (positionsAreOnSameLine(node.getStart(), node.getEnd(), sourceFile)) return void 0;\n const textSpan = createTextSpanFromBounds(node.getStart(), node.getEnd());\n return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(node));\n }\n}\nfunction functionSpan(node, body, sourceFile) {\n const openToken = tryGetFunctionOpenToken(node, body, sourceFile);\n const closeToken = findChildOfKind(body, 20 /* CloseBraceToken */, sourceFile);\n return openToken && closeToken && spanBetweenTokens(\n openToken,\n closeToken,\n node,\n sourceFile,\n /*autoCollapse*/\n node.kind !== 220 /* ArrowFunction */\n );\n}\nfunction spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse = false, useFullStart = true) {\n const textSpan = createTextSpanFromBounds(useFullStart ? openToken.getFullStart() : openToken.getStart(sourceFile), closeToken.getEnd());\n return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(hintSpanNode, sourceFile), autoCollapse);\n}\nfunction createOutliningSpan(textSpan, kind, hintSpan = textSpan, autoCollapse = false, bannerText = \"...\") {\n return { textSpan, kind, hintSpan, bannerText, autoCollapse };\n}\nfunction tryGetFunctionOpenToken(node, body, sourceFile) {\n if (isNodeArrayMultiLine(node.parameters, sourceFile)) {\n const openParenToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n if (openParenToken) {\n return openParenToken;\n }\n }\n return findChildOfKind(body, 19 /* OpenBraceToken */, sourceFile);\n}\n\n// src/services/_namespaces/ts.Rename.ts\nvar ts_Rename_exports = {};\n__export(ts_Rename_exports, {\n getRenameInfo: () => getRenameInfo,\n nodeIsEligibleForRename: () => nodeIsEligibleForRename\n});\n\n// src/services/rename.ts\nfunction getRenameInfo(program, sourceFile, position, preferences) {\n const node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position));\n if (nodeIsEligibleForRename(node)) {\n const renameInfo = getRenameInfoForNode(node, program.getTypeChecker(), sourceFile, program, preferences);\n if (renameInfo) {\n return renameInfo;\n }\n }\n return getRenameInfoError(Diagnostics.You_cannot_rename_this_element);\n}\nfunction getRenameInfoForNode(node, typeChecker, sourceFile, program, preferences) {\n const symbol = typeChecker.getSymbolAtLocation(node);\n if (!symbol) {\n if (isStringLiteralLike(node)) {\n const type = getContextualTypeFromParentOrAncestorTypeNode(node, typeChecker);\n if (type && (type.flags & 128 /* StringLiteral */ || type.flags & 1048576 /* Union */ && every(type.types, (type2) => !!(type2.flags & 128 /* StringLiteral */)))) {\n return getRenameInfoSuccess(node.text, node.text, \"string\" /* string */, \"\", node, sourceFile);\n }\n } else if (isLabelName(node)) {\n const name = getTextOfNode(node);\n return getRenameInfoSuccess(name, name, \"label\" /* label */, \"\" /* none */, node, sourceFile);\n }\n return void 0;\n }\n const { declarations } = symbol;\n if (!declarations || declarations.length === 0) return;\n if (declarations.some((declaration) => isDefinedInLibraryFile(program, declaration))) {\n return getRenameInfoError(Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);\n }\n if (isIdentifier(node) && node.escapedText === \"default\" && symbol.parent && symbol.parent.flags & 1536 /* Module */) {\n return void 0;\n }\n if (isStringLiteralLike(node) && tryGetImportFromModuleSpecifier(node)) {\n return preferences.allowRenameOfImportPath ? getRenameInfoForModule(node, sourceFile, symbol) : void 0;\n }\n const wouldRenameNodeModules = wouldRenameInOtherNodeModules(sourceFile, symbol, typeChecker, preferences);\n if (wouldRenameNodeModules) {\n return getRenameInfoError(wouldRenameNodeModules);\n }\n const kind = ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, node);\n const specifierName = isImportOrExportSpecifierName(node) || isStringOrNumericLiteralLike(node) && node.parent.kind === 168 /* ComputedPropertyName */ ? stripQuotes(getTextOfIdentifierOrLiteral(node)) : void 0;\n const displayName = specifierName || typeChecker.symbolToString(symbol);\n const fullDisplayName = specifierName || typeChecker.getFullyQualifiedName(symbol);\n return getRenameInfoSuccess(displayName, fullDisplayName, kind, ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol), node, sourceFile);\n}\nfunction isDefinedInLibraryFile(program, declaration) {\n const sourceFile = declaration.getSourceFile();\n return program.isSourceFileDefaultLibrary(sourceFile) && fileExtensionIs(sourceFile.fileName, \".d.ts\" /* Dts */);\n}\nfunction wouldRenameInOtherNodeModules(originalFile, symbol, checker, preferences) {\n if (!preferences.providePrefixAndSuffixTextForRename && symbol.flags & 2097152 /* Alias */) {\n const importSpecifier = symbol.declarations && find(symbol.declarations, (decl) => isImportSpecifier(decl));\n if (importSpecifier && !importSpecifier.propertyName) {\n symbol = checker.getAliasedSymbol(symbol);\n }\n }\n const { declarations } = symbol;\n if (!declarations) {\n return void 0;\n }\n const originalPackage = getPackagePathComponents(originalFile.path);\n if (originalPackage === void 0) {\n if (some(declarations, (declaration) => isInsideNodeModules(declaration.getSourceFile().path))) {\n return Diagnostics.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder;\n } else {\n return void 0;\n }\n }\n for (const declaration of declarations) {\n const declPackage = getPackagePathComponents(declaration.getSourceFile().path);\n if (declPackage) {\n const length2 = Math.min(originalPackage.length, declPackage.length);\n for (let i = 0; i <= length2; i++) {\n if (compareStringsCaseSensitive(originalPackage[i], declPackage[i]) !== 0 /* EqualTo */) {\n return Diagnostics.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder;\n }\n }\n }\n }\n return void 0;\n}\nfunction getPackagePathComponents(filePath) {\n const components = getPathComponents(filePath);\n const nodeModulesIdx = components.lastIndexOf(\"node_modules\");\n if (nodeModulesIdx === -1) {\n return void 0;\n }\n return components.slice(0, nodeModulesIdx + 2);\n}\nfunction getRenameInfoForModule(node, sourceFile, moduleSymbol) {\n if (!isExternalModuleNameRelative(node.text)) {\n return getRenameInfoError(Diagnostics.You_cannot_rename_a_module_via_a_global_import);\n }\n const moduleSourceFile = moduleSymbol.declarations && find(moduleSymbol.declarations, isSourceFile);\n if (!moduleSourceFile) return void 0;\n const withoutIndex = endsWith(node.text, \"/index\") || endsWith(node.text, \"/index.js\") ? void 0 : tryRemoveSuffix(removeFileExtension(moduleSourceFile.fileName), \"/index\");\n const fileName = withoutIndex === void 0 ? moduleSourceFile.fileName : withoutIndex;\n const kind = withoutIndex === void 0 ? \"module\" /* moduleElement */ : \"directory\" /* directory */;\n const indexAfterLastSlash = node.text.lastIndexOf(\"/\") + 1;\n const triggerSpan = createTextSpan(node.getStart(sourceFile) + 1 + indexAfterLastSlash, node.text.length - indexAfterLastSlash);\n return {\n canRename: true,\n fileToRename: fileName,\n kind,\n displayName: fileName,\n fullDisplayName: node.text,\n kindModifiers: \"\" /* none */,\n triggerSpan\n };\n}\nfunction getRenameInfoSuccess(displayName, fullDisplayName, kind, kindModifiers, node, sourceFile) {\n return {\n canRename: true,\n fileToRename: void 0,\n kind,\n displayName,\n fullDisplayName,\n kindModifiers,\n triggerSpan: createTriggerSpanForNode(node, sourceFile)\n };\n}\nfunction getRenameInfoError(diagnostic) {\n return { canRename: false, localizedErrorMessage: getLocaleSpecificMessage(diagnostic) };\n}\nfunction createTriggerSpanForNode(node, sourceFile) {\n let start = node.getStart(sourceFile);\n let width = node.getWidth(sourceFile);\n if (isStringLiteralLike(node)) {\n start += 1;\n width -= 2;\n }\n return createTextSpan(start, width);\n}\nfunction nodeIsEligibleForRename(node) {\n switch (node.kind) {\n case 80 /* Identifier */:\n case 81 /* PrivateIdentifier */:\n case 11 /* StringLiteral */:\n case 15 /* NoSubstitutionTemplateLiteral */:\n case 110 /* ThisKeyword */:\n return true;\n case 9 /* NumericLiteral */:\n return isLiteralNameOfPropertyDeclarationOrIndexAccess(node);\n default:\n return false;\n }\n}\n\n// src/services/_namespaces/ts.SignatureHelp.ts\nvar ts_SignatureHelp_exports = {};\n__export(ts_SignatureHelp_exports, {\n getArgumentInfoForCompletions: () => getArgumentInfoForCompletions,\n getSignatureHelpItems: () => getSignatureHelpItems\n});\n\n// src/services/signatureHelp.ts\nfunction getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken) {\n const typeChecker = program.getTypeChecker();\n const startingToken = findTokenOnLeftOfPosition(sourceFile, position);\n if (!startingToken) {\n return void 0;\n }\n const onlyUseSyntacticOwners = !!triggerReason && triggerReason.kind === \"characterTyped\";\n if (onlyUseSyntacticOwners && (isInString(sourceFile, position, startingToken) || isInComment(sourceFile, position))) {\n return void 0;\n }\n const isManuallyInvoked = !!triggerReason && triggerReason.kind === \"invoked\";\n const argumentInfo = getContainingArgumentInfo(startingToken, position, sourceFile, typeChecker, isManuallyInvoked);\n if (!argumentInfo) return void 0;\n cancellationToken.throwIfCancellationRequested();\n const candidateInfo = getCandidateOrTypeInfo(argumentInfo, typeChecker, sourceFile, startingToken, onlyUseSyntacticOwners);\n cancellationToken.throwIfCancellationRequested();\n if (!candidateInfo) {\n return isSourceFileJS(sourceFile) ? createJSSignatureHelpItems(argumentInfo, program, cancellationToken) : void 0;\n }\n return typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => candidateInfo.kind === 0 /* Candidate */ ? createSignatureHelpItems(candidateInfo.candidates, candidateInfo.resolvedSignature, argumentInfo, sourceFile, typeChecker2) : createTypeHelpItems(candidateInfo.symbol, argumentInfo, sourceFile, typeChecker2));\n}\nfunction getCandidateOrTypeInfo({ invocation, argumentCount }, checker, sourceFile, startingToken, onlyUseSyntacticOwners) {\n switch (invocation.kind) {\n case 0 /* Call */: {\n if (onlyUseSyntacticOwners && !isSyntacticOwner(startingToken, invocation.node, sourceFile)) {\n return void 0;\n }\n const candidates = [];\n const resolvedSignature = checker.getResolvedSignatureForSignatureHelp(invocation.node, candidates, argumentCount);\n return candidates.length === 0 ? void 0 : { kind: 0 /* Candidate */, candidates, resolvedSignature };\n }\n case 1 /* TypeArgs */: {\n const { called } = invocation;\n if (onlyUseSyntacticOwners && !containsPrecedingToken(startingToken, sourceFile, isIdentifier(called) ? called.parent : called)) {\n return void 0;\n }\n const candidates = getPossibleGenericSignatures(called, argumentCount, checker);\n if (candidates.length !== 0) return { kind: 0 /* Candidate */, candidates, resolvedSignature: first(candidates) };\n const symbol = checker.getSymbolAtLocation(called);\n return symbol && { kind: 1 /* Type */, symbol };\n }\n case 2 /* Contextual */:\n return { kind: 0 /* Candidate */, candidates: [invocation.signature], resolvedSignature: invocation.signature };\n default:\n return Debug.assertNever(invocation);\n }\n}\nfunction isSyntacticOwner(startingToken, node, sourceFile) {\n if (!isCallOrNewExpression(node)) return false;\n const invocationChildren = node.getChildren(sourceFile);\n switch (startingToken.kind) {\n case 21 /* OpenParenToken */:\n return contains(invocationChildren, startingToken);\n case 28 /* CommaToken */: {\n const containingList = findContainingList(startingToken);\n return !!containingList && contains(invocationChildren, containingList);\n }\n case 30 /* LessThanToken */:\n return containsPrecedingToken(startingToken, sourceFile, node.expression);\n default:\n return false;\n }\n}\nfunction createJSSignatureHelpItems(argumentInfo, program, cancellationToken) {\n if (argumentInfo.invocation.kind === 2 /* Contextual */) return void 0;\n const expression = getExpressionFromInvocation(argumentInfo.invocation);\n const name = isPropertyAccessExpression(expression) ? expression.name.text : void 0;\n const typeChecker = program.getTypeChecker();\n return name === void 0 ? void 0 : firstDefined(program.getSourceFiles(), (sourceFile) => firstDefined(sourceFile.getNamedDeclarations().get(name), (declaration) => {\n const type = declaration.symbol && typeChecker.getTypeOfSymbolAtLocation(declaration.symbol, declaration);\n const callSignatures = type && type.getCallSignatures();\n if (callSignatures && callSignatures.length) {\n return typeChecker.runWithCancellationToken(\n cancellationToken,\n (typeChecker2) => createSignatureHelpItems(\n callSignatures,\n callSignatures[0],\n argumentInfo,\n sourceFile,\n typeChecker2,\n /*useFullPrefix*/\n true\n )\n );\n }\n }));\n}\nfunction containsPrecedingToken(startingToken, sourceFile, container) {\n const pos = startingToken.getFullStart();\n let currentParent = startingToken.parent;\n while (currentParent) {\n const precedingToken = findPrecedingToken(\n pos,\n sourceFile,\n currentParent,\n /*excludeJsdoc*/\n true\n );\n if (precedingToken) {\n return rangeContainsRange(container, precedingToken);\n }\n currentParent = currentParent.parent;\n }\n return Debug.fail(\"Could not find preceding token\");\n}\nfunction getArgumentInfoForCompletions(node, position, sourceFile, checker) {\n const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);\n return !info || info.isTypeParameterList || info.invocation.kind !== 0 /* Call */ ? void 0 : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex };\n}\nfunction getArgumentOrParameterListInfo(node, position, sourceFile, checker) {\n const info = getArgumentOrParameterListAndIndex(node, sourceFile, checker);\n if (!info) return void 0;\n const { list, argumentIndex } = info;\n const argumentCount = getArgumentCount(checker, list);\n const argumentsSpan = getApplicableSpanForArguments(list, sourceFile);\n return { list, argumentIndex, argumentCount, argumentsSpan };\n}\nfunction getArgumentOrParameterListAndIndex(node, sourceFile, checker) {\n if (node.kind === 30 /* LessThanToken */ || node.kind === 21 /* OpenParenToken */) {\n return { list: getChildListThatStartsWithOpenerToken(node.parent, node, sourceFile), argumentIndex: 0 };\n } else {\n const list = findContainingList(node);\n return list && { list, argumentIndex: getArgumentIndex(checker, list, node) };\n }\n}\nfunction getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker) {\n const { parent: parent2 } = node;\n if (isCallOrNewExpression(parent2)) {\n const invocation = parent2;\n const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);\n if (!info) return void 0;\n const { list, argumentIndex, argumentCount, argumentsSpan } = info;\n const isTypeParameterList = !!parent2.typeArguments && parent2.typeArguments.pos === list.pos;\n return { isTypeParameterList, invocation: { kind: 0 /* Call */, node: invocation }, argumentsSpan, argumentIndex, argumentCount };\n } else if (isNoSubstitutionTemplateLiteral(node) && isTaggedTemplateExpression(parent2)) {\n if (isInsideTemplateLiteral(node, position, sourceFile)) {\n return getArgumentListInfoForTemplate(\n parent2,\n /*argumentIndex*/\n 0,\n sourceFile\n );\n }\n return void 0;\n } else if (isTemplateHead(node) && parent2.parent.kind === 216 /* TaggedTemplateExpression */) {\n const templateExpression = parent2;\n const tagExpression = templateExpression.parent;\n Debug.assert(templateExpression.kind === 229 /* TemplateExpression */);\n const argumentIndex = isInsideTemplateLiteral(node, position, sourceFile) ? 0 : 1;\n return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile);\n } else if (isTemplateSpan(parent2) && isTaggedTemplateExpression(parent2.parent.parent)) {\n const templateSpan = parent2;\n const tagExpression = parent2.parent.parent;\n if (isTemplateTail(node) && !isInsideTemplateLiteral(node, position, sourceFile)) {\n return void 0;\n }\n const spanIndex = templateSpan.parent.templateSpans.indexOf(templateSpan);\n const argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile);\n return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile);\n } else if (isJsxOpeningLikeElement(parent2)) {\n const attributeSpanStart = parent2.attributes.pos;\n const attributeSpanEnd = skipTrivia(\n sourceFile.text,\n parent2.attributes.end,\n /*stopAfterLineBreak*/\n false\n );\n return {\n isTypeParameterList: false,\n invocation: { kind: 0 /* Call */, node: parent2 },\n argumentsSpan: createTextSpan(attributeSpanStart, attributeSpanEnd - attributeSpanStart),\n argumentIndex: 0,\n argumentCount: 1\n };\n } else {\n const typeArgInfo = getPossibleTypeArgumentsInfo(node, sourceFile);\n if (typeArgInfo) {\n const { called, nTypeArguments } = typeArgInfo;\n const invocation = { kind: 1 /* TypeArgs */, called };\n const argumentsSpan = createTextSpanFromBounds(called.getStart(sourceFile), node.end);\n return { isTypeParameterList: true, invocation, argumentsSpan, argumentIndex: nTypeArguments, argumentCount: nTypeArguments + 1 };\n }\n return void 0;\n }\n}\nfunction getImmediatelyContainingArgumentOrContextualParameterInfo(node, position, sourceFile, checker) {\n return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);\n}\nfunction getHighestBinary(b) {\n return isBinaryExpression(b.parent) ? getHighestBinary(b.parent) : b;\n}\nfunction countBinaryExpressionParameters(b) {\n return isBinaryExpression(b.left) ? countBinaryExpressionParameters(b.left) + 1 : 2;\n}\nfunction tryGetParameterInfo(startingToken, position, sourceFile, checker) {\n const node = getAdjustedNode(startingToken);\n if (node === void 0) return void 0;\n const info = getContextualSignatureLocationInfo(node, sourceFile, position, checker);\n if (info === void 0) return void 0;\n const { contextualType, argumentIndex, argumentCount, argumentsSpan } = info;\n const nonNullableContextualType = contextualType.getNonNullableType();\n const symbol = nonNullableContextualType.symbol;\n if (symbol === void 0) return void 0;\n const signature = lastOrUndefined(nonNullableContextualType.getCallSignatures());\n if (signature === void 0) return void 0;\n const invocation = { kind: 2 /* Contextual */, signature, node: startingToken, symbol: chooseBetterSymbol(symbol) };\n return { isTypeParameterList: false, invocation, argumentsSpan, argumentIndex, argumentCount };\n}\nfunction getAdjustedNode(node) {\n switch (node.kind) {\n case 21 /* OpenParenToken */:\n case 28 /* CommaToken */:\n return node;\n default:\n return findAncestor(node.parent, (n) => isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : \"quit\");\n }\n}\nfunction getContextualSignatureLocationInfo(node, sourceFile, position, checker) {\n const { parent: parent2 } = node;\n switch (parent2.kind) {\n case 218 /* ParenthesizedExpression */:\n case 175 /* MethodDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);\n if (!info) return void 0;\n const { argumentIndex, argumentCount, argumentsSpan } = info;\n const contextualType = isMethodDeclaration(parent2) ? checker.getContextualTypeForObjectLiteralElement(parent2) : checker.getContextualType(parent2);\n return contextualType && { contextualType, argumentIndex, argumentCount, argumentsSpan };\n case 227 /* BinaryExpression */: {\n const highestBinary = getHighestBinary(parent2);\n const contextualType2 = checker.getContextualType(highestBinary);\n const argumentIndex2 = node.kind === 21 /* OpenParenToken */ ? 0 : countBinaryExpressionParameters(parent2) - 1;\n const argumentCount2 = countBinaryExpressionParameters(highestBinary);\n return contextualType2 && { contextualType: contextualType2, argumentIndex: argumentIndex2, argumentCount: argumentCount2, argumentsSpan: createTextSpanFromNode(parent2) };\n }\n default:\n return void 0;\n }\n}\nfunction chooseBetterSymbol(s) {\n return s.name === \"__type\" /* Type */ ? firstDefined(s.declarations, (d) => {\n var _a;\n return isFunctionTypeNode(d) ? (_a = tryCast(d.parent, canHaveSymbol)) == null ? void 0 : _a.symbol : void 0;\n }) || s : s;\n}\nfunction getSpreadElementCount(node, checker) {\n const spreadType = checker.getTypeAtLocation(node.expression);\n if (checker.isTupleType(spreadType)) {\n const { elementFlags, fixedLength } = spreadType.target;\n if (fixedLength === 0) {\n return 0;\n }\n const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));\n return firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n }\n return 0;\n}\nfunction getArgumentIndex(checker, argumentsList, node) {\n return getArgumentIndexOrCount(checker, argumentsList, node);\n}\nfunction getArgumentCount(checker, argumentsList) {\n return getArgumentIndexOrCount(\n checker,\n argumentsList,\n /*node*/\n void 0\n );\n}\nfunction getArgumentIndexOrCount(checker, argumentsList, node) {\n const args = argumentsList.getChildren();\n let argumentIndex = 0;\n let skipComma = false;\n for (const child of args) {\n if (node && child === node) {\n if (!skipComma && child.kind === 28 /* CommaToken */) {\n argumentIndex++;\n }\n return argumentIndex;\n }\n if (isSpreadElement(child)) {\n argumentIndex += getSpreadElementCount(child, checker);\n skipComma = true;\n continue;\n }\n if (child.kind !== 28 /* CommaToken */) {\n argumentIndex++;\n skipComma = true;\n continue;\n }\n if (skipComma) {\n skipComma = false;\n continue;\n }\n argumentIndex++;\n }\n if (node) {\n return argumentIndex;\n }\n return args.length && last(args).kind === 28 /* CommaToken */ ? argumentIndex + 1 : argumentIndex;\n}\nfunction getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile) {\n Debug.assert(position >= node.getStart(), \"Assumed 'position' could not occur before node.\");\n if (isTemplateLiteralToken(node)) {\n if (isInsideTemplateLiteral(node, position, sourceFile)) {\n return 0;\n }\n return spanIndex + 2;\n }\n return spanIndex + 1;\n}\nfunction getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile) {\n const argumentCount = isNoSubstitutionTemplateLiteral(tagExpression.template) ? 1 : tagExpression.template.templateSpans.length + 1;\n if (argumentIndex !== 0) {\n Debug.assertLessThan(argumentIndex, argumentCount);\n }\n return {\n isTypeParameterList: false,\n invocation: { kind: 0 /* Call */, node: tagExpression },\n argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression, sourceFile),\n argumentIndex,\n argumentCount\n };\n}\nfunction getApplicableSpanForArguments(argumentsList, sourceFile) {\n const applicableSpanStart = argumentsList.getFullStart();\n const applicableSpanEnd = skipTrivia(\n sourceFile.text,\n argumentsList.getEnd(),\n /*stopAfterLineBreak*/\n false\n );\n return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);\n}\nfunction getApplicableSpanForTaggedTemplate(taggedTemplate, sourceFile) {\n const template = taggedTemplate.template;\n const applicableSpanStart = template.getStart();\n let applicableSpanEnd = template.getEnd();\n if (template.kind === 229 /* TemplateExpression */) {\n const lastSpan = last(template.templateSpans);\n if (lastSpan.literal.getFullWidth() === 0) {\n applicableSpanEnd = skipTrivia(\n sourceFile.text,\n applicableSpanEnd,\n /*stopAfterLineBreak*/\n false\n );\n }\n }\n return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);\n}\nfunction getContainingArgumentInfo(node, position, sourceFile, checker, isManuallyInvoked) {\n for (let n = node; !isSourceFile(n) && (isManuallyInvoked || !isBlock(n)); n = n.parent) {\n Debug.assert(rangeContainsRange(n.parent, n), \"Not a subspan\", () => `Child: ${Debug.formatSyntaxKind(n.kind)}, parent: ${Debug.formatSyntaxKind(n.parent.kind)}`);\n const argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker);\n if (argumentInfo) {\n return argumentInfo;\n }\n }\n return void 0;\n}\nfunction getChildListThatStartsWithOpenerToken(parent2, openerToken, sourceFile) {\n const children = parent2.getChildren(sourceFile);\n const indexOfOpenerToken = children.indexOf(openerToken);\n Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1);\n return children[indexOfOpenerToken + 1];\n}\nfunction getExpressionFromInvocation(invocation) {\n return invocation.kind === 0 /* Call */ ? getInvokedExpression(invocation.node) : invocation.called;\n}\nfunction getEnclosingDeclarationFromInvocation(invocation) {\n return invocation.kind === 0 /* Call */ ? invocation.node : invocation.kind === 1 /* TypeArgs */ ? invocation.called : invocation.node;\n}\nvar signatureHelpNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\nfunction createSignatureHelpItems(candidates, resolvedSignature, { isTypeParameterList, argumentCount, argumentsSpan: applicableSpan, invocation, argumentIndex }, sourceFile, typeChecker, useFullPrefix) {\n var _a;\n const enclosingDeclaration = getEnclosingDeclarationFromInvocation(invocation);\n const callTargetSymbol = invocation.kind === 2 /* Contextual */ ? invocation.symbol : typeChecker.getSymbolAtLocation(getExpressionFromInvocation(invocation)) || useFullPrefix && ((_a = resolvedSignature.declaration) == null ? void 0 : _a.symbol);\n const callTargetDisplayParts = callTargetSymbol ? symbolToDisplayParts(\n typeChecker,\n callTargetSymbol,\n useFullPrefix ? sourceFile : void 0,\n /*meaning*/\n void 0\n ) : emptyArray;\n const items = map(candidates, (candidateSignature) => getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, typeChecker, enclosingDeclaration, sourceFile));\n let selectedItemIndex = 0;\n let itemsSeen = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (candidates[i] === resolvedSignature) {\n selectedItemIndex = itemsSeen;\n if (item.length > 1) {\n let count = 0;\n for (const i2 of item) {\n if (i2.isVariadic || i2.parameters.length >= argumentCount) {\n selectedItemIndex = itemsSeen + count;\n break;\n }\n count++;\n }\n }\n }\n itemsSeen += item.length;\n }\n Debug.assert(selectedItemIndex !== -1);\n const help = { items: flatMapToMutable(items, identity), applicableSpan, selectedItemIndex, argumentIndex, argumentCount };\n const selected = help.items[selectedItemIndex];\n if (selected.isVariadic) {\n const firstRest = findIndex(selected.parameters, (p) => !!p.isRest);\n if (-1 < firstRest && firstRest < selected.parameters.length - 1) {\n help.argumentIndex = selected.parameters.length;\n } else {\n help.argumentIndex = Math.min(help.argumentIndex, selected.parameters.length - 1);\n }\n }\n return help;\n}\nfunction createTypeHelpItems(symbol, { argumentCount, argumentsSpan: applicableSpan, invocation, argumentIndex }, sourceFile, checker) {\n const typeParameters = checker.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n if (!typeParameters) return void 0;\n const items = [getTypeHelpItem(symbol, typeParameters, checker, getEnclosingDeclarationFromInvocation(invocation), sourceFile)];\n return { items, applicableSpan, selectedItemIndex: 0, argumentIndex, argumentCount };\n}\nfunction getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {\n const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);\n const printer = createPrinterWithRemoveComments();\n const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));\n const documentation = symbol.getDocumentationComment(checker);\n const tags = symbol.getJsDocTags(checker);\n const prefixDisplayParts = [...typeSymbolDisplay, punctuationPart(30 /* LessThanToken */)];\n return { isVariadic: false, prefixDisplayParts, suffixDisplayParts: [punctuationPart(32 /* GreaterThanToken */)], separatorDisplayParts, parameters, documentation, tags };\n}\nvar separatorDisplayParts = [punctuationPart(28 /* CommaToken */), spacePart()];\nfunction getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, checker, enclosingDeclaration, sourceFile) {\n const infos = (isTypeParameterList ? itemInfoForTypeParameters : itemInfoForParameters)(candidateSignature, checker, enclosingDeclaration, sourceFile);\n return map(infos, ({ isVariadic, parameters, prefix, suffix }) => {\n const prefixDisplayParts = [...callTargetDisplayParts, ...prefix];\n const suffixDisplayParts = [...suffix, ...returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker)];\n const documentation = candidateSignature.getDocumentationComment(checker);\n const tags = candidateSignature.getJsDocTags();\n return { isVariadic, prefixDisplayParts, suffixDisplayParts, separatorDisplayParts, parameters, documentation, tags };\n });\n}\nfunction returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker) {\n return mapToDisplayParts((writer) => {\n writer.writePunctuation(\":\");\n writer.writeSpace(\" \");\n const predicate = checker.getTypePredicateOfSignature(candidateSignature);\n if (predicate) {\n checker.writeTypePredicate(\n predicate,\n enclosingDeclaration,\n /*flags*/\n void 0,\n writer\n );\n } else {\n checker.writeType(\n checker.getReturnTypeOfSignature(candidateSignature),\n enclosingDeclaration,\n /*flags*/\n void 0,\n writer\n );\n }\n });\n}\nfunction itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {\n const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;\n const printer = createPrinterWithRemoveComments();\n const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));\n const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];\n return checker.getExpandedParameters(candidateSignature).map((paramList) => {\n const params = factory.createNodeArray([...thisParameter, ...map(paramList, (param) => checker.symbolToParameterDeclaration(param, enclosingDeclaration, signatureHelpNodeBuilderFlags))]);\n const parameterParts = mapToDisplayParts((writer) => {\n printer.writeList(2576 /* CallExpressionArguments */, params, sourceFile, writer);\n });\n return { isVariadic: false, parameters, prefix: [punctuationPart(30 /* LessThanToken */)], suffix: [punctuationPart(32 /* GreaterThanToken */), ...parameterParts] };\n });\n}\nfunction itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {\n const printer = createPrinterWithRemoveComments();\n const typeParameterParts = mapToDisplayParts((writer) => {\n if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {\n const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));\n printer.writeList(53776 /* TypeParameters */, args, sourceFile, writer);\n }\n });\n const lists = checker.getExpandedParameters(candidateSignature);\n const isVariadic = !checker.hasEffectiveRestParameter(candidateSignature) ? (_) => false : lists.length === 1 ? (_) => true : (pList) => {\n var _a;\n return !!(pList.length && ((_a = tryCast(pList[pList.length - 1], isTransientSymbol)) == null ? void 0 : _a.links.checkFlags) & 32768 /* RestParameter */);\n };\n return lists.map((parameterList) => ({\n isVariadic: isVariadic(parameterList),\n parameters: parameterList.map((p) => createSignatureHelpParameterForParameter(p, checker, enclosingDeclaration, sourceFile, printer)),\n prefix: [...typeParameterParts, punctuationPart(21 /* OpenParenToken */)],\n suffix: [punctuationPart(22 /* CloseParenToken */)]\n }));\n}\nfunction createSignatureHelpParameterForParameter(parameter, checker, enclosingDeclaration, sourceFile, printer) {\n const displayParts = mapToDisplayParts((writer) => {\n const param = checker.symbolToParameterDeclaration(parameter, enclosingDeclaration, signatureHelpNodeBuilderFlags);\n printer.writeNode(4 /* Unspecified */, param, sourceFile, writer);\n });\n const isOptional = checker.isOptionalParameter(parameter.valueDeclaration);\n const isRest = isTransientSymbol(parameter) && !!(parameter.links.checkFlags & 32768 /* RestParameter */);\n return { name: parameter.name, documentation: parameter.getDocumentationComment(checker), displayParts, isOptional, isRest };\n}\nfunction createSignatureHelpParameterForTypeParameter(typeParameter, checker, enclosingDeclaration, sourceFile, printer) {\n const displayParts = mapToDisplayParts((writer) => {\n const param = checker.typeParameterToDeclaration(typeParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags);\n printer.writeNode(4 /* Unspecified */, param, sourceFile, writer);\n });\n return { name: typeParameter.symbol.name, documentation: typeParameter.symbol.getDocumentationComment(checker), displayParts, isOptional: false, isRest: false };\n}\n\n// src/services/_namespaces/ts.SmartSelectionRange.ts\nvar ts_SmartSelectionRange_exports = {};\n__export(ts_SmartSelectionRange_exports, {\n getSmartSelectionRange: () => getSmartSelectionRange\n});\n\n// src/services/smartSelection.ts\nfunction getSmartSelectionRange(pos, sourceFile) {\n var _a, _b;\n let selectionRange = {\n textSpan: createTextSpanFromBounds(sourceFile.getFullStart(), sourceFile.getEnd())\n };\n let parentNode = sourceFile;\n outer:\n while (true) {\n const children = getSelectionChildren(parentNode);\n if (!children.length) break;\n for (let i = 0; i < children.length; i++) {\n const prevNode = children[i - 1];\n const node = children[i];\n const nextNode = children[i + 1];\n if (getTokenPosOfNode(\n node,\n sourceFile,\n /*includeJsDoc*/\n true\n ) > pos) {\n break outer;\n }\n const comment = singleOrUndefined(getTrailingCommentRanges(sourceFile.text, node.end));\n if (comment && comment.kind === 2 /* SingleLineCommentTrivia */) {\n pushSelectionCommentRange(comment.pos, comment.end);\n }\n if (positionShouldSnapToNode(sourceFile, pos, node)) {\n if (isFunctionBody(node) && isFunctionLikeDeclaration(parentNode) && !positionsAreOnSameLine(node.getStart(sourceFile), node.getEnd(), sourceFile)) {\n pushSelectionRange(node.getStart(sourceFile), node.getEnd());\n }\n if (isBlock(node) || isTemplateSpan(node) || isTemplateHead(node) || isTemplateTail(node) || prevNode && isTemplateHead(prevNode) || isVariableDeclarationList(node) && isVariableStatement(parentNode) || isSyntaxList(node) && isVariableDeclarationList(parentNode) || isVariableDeclaration(node) && isSyntaxList(parentNode) && children.length === 1 || isJSDocTypeExpression(node) || isJSDocSignature(node) || isJSDocTypeLiteral(node)) {\n parentNode = node;\n break;\n }\n if (isTemplateSpan(parentNode) && nextNode && isTemplateMiddleOrTemplateTail(nextNode)) {\n const start2 = node.getFullStart() - \"${\".length;\n const end2 = nextNode.getStart() + \"}\".length;\n pushSelectionRange(start2, end2);\n }\n const isBetweenMultiLineBookends = isSyntaxList(node) && isListOpener(prevNode) && isListCloser(nextNode) && !positionsAreOnSameLine(prevNode.getStart(), nextNode.getStart(), sourceFile);\n let start = isBetweenMultiLineBookends ? prevNode.getEnd() : node.getStart();\n const end = isBetweenMultiLineBookends ? nextNode.getStart() : getEndPos(sourceFile, node);\n if (hasJSDocNodes(node) && ((_a = node.jsDoc) == null ? void 0 : _a.length)) {\n pushSelectionRange(first(node.jsDoc).getStart(), end);\n }\n if (isSyntaxList(node)) {\n const firstChild = node.getChildren()[0];\n if (firstChild && hasJSDocNodes(firstChild) && ((_b = firstChild.jsDoc) == null ? void 0 : _b.length) && firstChild.getStart() !== node.pos) {\n start = Math.min(start, first(firstChild.jsDoc).getStart());\n }\n }\n pushSelectionRange(start, end);\n if (isStringLiteral(node) || isTemplateLiteral(node)) {\n pushSelectionRange(start + 1, end - 1);\n }\n parentNode = node;\n break;\n }\n if (i === children.length - 1) {\n break outer;\n }\n }\n }\n return selectionRange;\n function pushSelectionRange(start, end) {\n if (start !== end) {\n const textSpan = createTextSpanFromBounds(start, end);\n if (!selectionRange || // Skip ranges that are identical to the parent\n !textSpansEqual(textSpan, selectionRange.textSpan) && // Skip ranges that don't contain the original position\n textSpanIntersectsWithPosition(textSpan, pos)) {\n selectionRange = { textSpan, ...selectionRange && { parent: selectionRange } };\n }\n }\n }\n function pushSelectionCommentRange(start, end) {\n pushSelectionRange(start, end);\n let pos2 = start;\n while (sourceFile.text.charCodeAt(pos2) === 47 /* slash */) {\n pos2++;\n }\n pushSelectionRange(pos2, end);\n }\n}\nfunction positionShouldSnapToNode(sourceFile, pos, node) {\n Debug.assert(node.pos <= pos);\n if (pos < node.end) {\n return true;\n }\n const nodeEnd = node.getEnd();\n if (nodeEnd === pos) {\n return getTouchingPropertyName(sourceFile, pos).pos < node.end;\n }\n return false;\n}\nvar isImport2 = or(isImportDeclaration, isImportEqualsDeclaration);\nfunction getSelectionChildren(node) {\n var _a;\n if (isSourceFile(node)) {\n return groupChildren(node.getChildAt(0).getChildren(), isImport2);\n }\n if (isMappedTypeNode(node)) {\n const [openBraceToken, ...children] = node.getChildren();\n const closeBraceToken = Debug.checkDefined(children.pop());\n Debug.assertEqual(openBraceToken.kind, 19 /* OpenBraceToken */);\n Debug.assertEqual(closeBraceToken.kind, 20 /* CloseBraceToken */);\n const groupedWithPlusMinusTokens = groupChildren(children, (child) => child === node.readonlyToken || child.kind === 148 /* ReadonlyKeyword */ || child === node.questionToken || child.kind === 58 /* QuestionToken */);\n const groupedWithBrackets = groupChildren(groupedWithPlusMinusTokens, ({ kind }) => kind === 23 /* OpenBracketToken */ || kind === 169 /* TypeParameter */ || kind === 24 /* CloseBracketToken */);\n return [\n openBraceToken,\n // Pivot on `:`\n createSyntaxList2(splitChildren(groupedWithBrackets, ({ kind }) => kind === 59 /* ColonToken */)),\n closeBraceToken\n ];\n }\n if (isPropertySignature(node)) {\n const children = groupChildren(node.getChildren(), (child) => child === node.name || contains(node.modifiers, child));\n const firstJSDocChild = ((_a = children[0]) == null ? void 0 : _a.kind) === 321 /* JSDoc */ ? children[0] : void 0;\n const withJSDocSeparated = firstJSDocChild ? children.slice(1) : children;\n const splittedChildren = splitChildren(withJSDocSeparated, ({ kind }) => kind === 59 /* ColonToken */);\n return firstJSDocChild ? [firstJSDocChild, createSyntaxList2(splittedChildren)] : splittedChildren;\n }\n if (isParameter(node)) {\n const groupedDotDotDotAndName = groupChildren(node.getChildren(), (child) => child === node.dotDotDotToken || child === node.name);\n const groupedWithQuestionToken = groupChildren(groupedDotDotDotAndName, (child) => child === groupedDotDotDotAndName[0] || child === node.questionToken);\n return splitChildren(groupedWithQuestionToken, ({ kind }) => kind === 64 /* EqualsToken */);\n }\n if (isBindingElement(node)) {\n return splitChildren(node.getChildren(), ({ kind }) => kind === 64 /* EqualsToken */);\n }\n return node.getChildren();\n}\nfunction groupChildren(children, groupOn) {\n const result = [];\n let group2;\n for (const child of children) {\n if (groupOn(child)) {\n group2 = group2 || [];\n group2.push(child);\n } else {\n if (group2) {\n result.push(createSyntaxList2(group2));\n group2 = void 0;\n }\n result.push(child);\n }\n }\n if (group2) {\n result.push(createSyntaxList2(group2));\n }\n return result;\n}\nfunction splitChildren(children, pivotOn, separateTrailingSemicolon = true) {\n if (children.length < 2) {\n return children;\n }\n const splitTokenIndex = findIndex(children, pivotOn);\n if (splitTokenIndex === -1) {\n return children;\n }\n const leftChildren = children.slice(0, splitTokenIndex);\n const splitToken = children[splitTokenIndex];\n const lastToken = last(children);\n const separateLastToken = separateTrailingSemicolon && lastToken.kind === 27 /* SemicolonToken */;\n const rightChildren = children.slice(splitTokenIndex + 1, separateLastToken ? children.length - 1 : void 0);\n const result = compact([\n leftChildren.length ? createSyntaxList2(leftChildren) : void 0,\n splitToken,\n rightChildren.length ? createSyntaxList2(rightChildren) : void 0\n ]);\n return separateLastToken ? result.concat(lastToken) : result;\n}\nfunction createSyntaxList2(children) {\n Debug.assertGreaterThanOrEqual(children.length, 1);\n return setTextRangePosEnd(parseNodeFactory.createSyntaxList(children), children[0].pos, last(children).end);\n}\nfunction isListOpener(token) {\n const kind = token && token.kind;\n return kind === 19 /* OpenBraceToken */ || kind === 23 /* OpenBracketToken */ || kind === 21 /* OpenParenToken */ || kind === 287 /* JsxOpeningElement */;\n}\nfunction isListCloser(token) {\n const kind = token && token.kind;\n return kind === 20 /* CloseBraceToken */ || kind === 24 /* CloseBracketToken */ || kind === 22 /* CloseParenToken */ || kind === 288 /* JsxClosingElement */;\n}\nfunction getEndPos(sourceFile, node) {\n switch (node.kind) {\n case 342 /* JSDocParameterTag */:\n case 339 /* JSDocCallbackTag */:\n case 349 /* JSDocPropertyTag */:\n case 347 /* JSDocTypedefTag */:\n case 344 /* JSDocThisTag */:\n return sourceFile.getLineEndOfPosition(node.getStart());\n default:\n return node.getEnd();\n }\n}\n\n// src/services/_namespaces/ts.SymbolDisplay.ts\nvar ts_SymbolDisplay_exports = {};\n__export(ts_SymbolDisplay_exports, {\n getSymbolDisplayPartsDocumentationAndSymbolKind: () => getSymbolDisplayPartsDocumentationAndSymbolKind,\n getSymbolKind: () => getSymbolKind,\n getSymbolModifiers: () => getSymbolModifiers\n});\n\n// src/services/symbolDisplay.ts\nvar symbolDisplayNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\nfunction getSymbolKind(typeChecker, symbol, location) {\n const result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location);\n if (result !== \"\" /* unknown */) {\n return result;\n }\n const flags = getCombinedLocalAndExportSymbolFlags(symbol);\n if (flags & 32 /* Class */) {\n return getDeclarationOfKind(symbol, 232 /* ClassExpression */) ? \"local class\" /* localClassElement */ : \"class\" /* classElement */;\n }\n if (flags & 384 /* Enum */) return \"enum\" /* enumElement */;\n if (flags & 524288 /* TypeAlias */) return \"type\" /* typeElement */;\n if (flags & 64 /* Interface */) return \"interface\" /* interfaceElement */;\n if (flags & 262144 /* TypeParameter */) return \"type parameter\" /* typeParameterElement */;\n if (flags & 8 /* EnumMember */) return \"enum member\" /* enumMemberElement */;\n if (flags & 2097152 /* Alias */) return \"alias\" /* alias */;\n if (flags & 1536 /* Module */) return \"module\" /* moduleElement */;\n return result;\n}\nfunction getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) {\n const roots = typeChecker.getRootSymbols(symbol);\n if (roots.length === 1 && first(roots).flags & 8192 /* Method */ && typeChecker.getTypeOfSymbolAtLocation(symbol, location).getNonNullableType().getCallSignatures().length !== 0) {\n return \"method\" /* memberFunctionElement */;\n }\n if (typeChecker.isUndefinedSymbol(symbol)) {\n return \"var\" /* variableElement */;\n }\n if (typeChecker.isArgumentsSymbol(symbol)) {\n return \"local var\" /* localVariableElement */;\n }\n if (location.kind === 110 /* ThisKeyword */ && isExpression(location) || isThisInTypeQuery(location)) {\n return \"parameter\" /* parameterElement */;\n }\n const flags = getCombinedLocalAndExportSymbolFlags(symbol);\n if (flags & 3 /* Variable */) {\n if (isFirstDeclarationOfSymbolParameter(symbol)) {\n return \"parameter\" /* parameterElement */;\n } else if (symbol.valueDeclaration && isVarConst(symbol.valueDeclaration)) {\n return \"const\" /* constElement */;\n } else if (symbol.valueDeclaration && isVarUsing(symbol.valueDeclaration)) {\n return \"using\" /* variableUsingElement */;\n } else if (symbol.valueDeclaration && isVarAwaitUsing(symbol.valueDeclaration)) {\n return \"await using\" /* variableAwaitUsingElement */;\n } else if (forEach(symbol.declarations, isLet)) {\n return \"let\" /* letElement */;\n }\n return isLocalVariableOrFunction(symbol) ? \"local var\" /* localVariableElement */ : \"var\" /* variableElement */;\n }\n if (flags & 16 /* Function */) return isLocalVariableOrFunction(symbol) ? \"local function\" /* localFunctionElement */ : \"function\" /* functionElement */;\n if (flags & 32768 /* GetAccessor */) return \"getter\" /* memberGetAccessorElement */;\n if (flags & 65536 /* SetAccessor */) return \"setter\" /* memberSetAccessorElement */;\n if (flags & 8192 /* Method */) return \"method\" /* memberFunctionElement */;\n if (flags & 16384 /* Constructor */) return \"constructor\" /* constructorImplementationElement */;\n if (flags & 131072 /* Signature */) return \"index\" /* indexSignatureElement */;\n if (flags & 4 /* Property */) {\n if (flags & 33554432 /* Transient */ && symbol.links.checkFlags & 6 /* Synthetic */) {\n const unionPropertyKind = forEach(typeChecker.getRootSymbols(symbol), (rootSymbol) => {\n const rootSymbolFlags = rootSymbol.getFlags();\n if (rootSymbolFlags & (98308 /* PropertyOrAccessor */ | 3 /* Variable */)) {\n return \"property\" /* memberVariableElement */;\n }\n });\n if (!unionPropertyKind) {\n const typeOfUnionProperty = typeChecker.getTypeOfSymbolAtLocation(symbol, location);\n if (typeOfUnionProperty.getCallSignatures().length) {\n return \"method\" /* memberFunctionElement */;\n }\n return \"property\" /* memberVariableElement */;\n }\n return unionPropertyKind;\n }\n return \"property\" /* memberVariableElement */;\n }\n return \"\" /* unknown */;\n}\nfunction getNormalizedSymbolModifiers(symbol) {\n if (symbol.declarations && symbol.declarations.length) {\n const [declaration, ...declarations] = symbol.declarations;\n const excludeFlags = length(declarations) && isDeprecatedDeclaration(declaration) && some(declarations, (d) => !isDeprecatedDeclaration(d)) ? 65536 /* Deprecated */ : 0 /* None */;\n const modifiers = getNodeModifiers(declaration, excludeFlags);\n if (modifiers) {\n return modifiers.split(\",\");\n }\n }\n return [];\n}\nfunction getSymbolModifiers(typeChecker, symbol) {\n if (!symbol) {\n return \"\" /* none */;\n }\n const modifiers = new Set(getNormalizedSymbolModifiers(symbol));\n if (symbol.flags & 2097152 /* Alias */) {\n const resolvedSymbol = typeChecker.getAliasedSymbol(symbol);\n if (resolvedSymbol !== symbol) {\n forEach(getNormalizedSymbolModifiers(resolvedSymbol), (modifier) => {\n modifiers.add(modifier);\n });\n }\n }\n if (symbol.flags & 16777216 /* Optional */) {\n modifiers.add(\"optional\" /* optionalModifier */);\n }\n return modifiers.size > 0 ? arrayFrom(modifiers.values()).join(\",\") : \"\" /* none */;\n}\nfunction getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, type, semanticMeaning, alias, maximumLength, verbosityLevel) {\n var _a;\n const displayParts = [];\n let documentation = [];\n let tags = [];\n const symbolFlags = getCombinedLocalAndExportSymbolFlags(symbol);\n let symbolKind = semanticMeaning & 1 /* Value */ ? getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) : \"\" /* unknown */;\n let hasAddedSymbolInfo = false;\n const isThisExpression = location.kind === 110 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);\n let documentationFromAlias;\n let tagsFromAlias;\n let hasMultipleSignatures = false;\n const typeWriterOut = { canIncreaseExpansionDepth: false, truncated: false };\n let symbolWasExpanded = false;\n if (location.kind === 110 /* ThisKeyword */ && !isThisExpression) {\n return { displayParts: [keywordPart(110 /* ThisKeyword */)], documentation: [], symbolKind: \"primitive type\" /* primitiveType */, tags: void 0 };\n }\n if (symbolKind !== \"\" /* unknown */ || symbolFlags & 32 /* Class */ || symbolFlags & 2097152 /* Alias */) {\n if (symbolKind === \"getter\" /* memberGetAccessorElement */ || symbolKind === \"setter\" /* memberSetAccessorElement */) {\n const declaration = find(\n symbol.declarations,\n (declaration2) => declaration2.name === location && declaration2.kind !== 212 /* PropertyAccessExpression */\n );\n if (declaration) {\n switch (declaration.kind) {\n case 178 /* GetAccessor */:\n symbolKind = \"getter\" /* memberGetAccessorElement */;\n break;\n case 179 /* SetAccessor */:\n symbolKind = \"setter\" /* memberSetAccessorElement */;\n break;\n case 173 /* PropertyDeclaration */:\n symbolKind = \"accessor\" /* memberAccessorVariableElement */;\n break;\n default:\n Debug.assertNever(declaration);\n }\n } else {\n symbolKind = \"property\" /* memberVariableElement */;\n }\n }\n let signature;\n type ?? (type = isThisExpression ? typeChecker.getTypeAtLocation(location) : typeChecker.getTypeOfSymbolAtLocation(symbol, location));\n if (location.parent && location.parent.kind === 212 /* PropertyAccessExpression */) {\n const right = location.parent.name;\n if (right === location || right && right.getFullWidth() === 0) {\n location = location.parent;\n }\n }\n let callExpressionLike;\n if (isCallOrNewExpression(location)) {\n callExpressionLike = location;\n } else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) {\n callExpressionLike = location.parent;\n } else if (location.parent && (isJsxOpeningLikeElement(location.parent) || isTaggedTemplateExpression(location.parent)) && isFunctionLike(symbol.valueDeclaration)) {\n callExpressionLike = location.parent;\n }\n if (callExpressionLike) {\n signature = typeChecker.getResolvedSignature(callExpressionLike);\n const useConstructSignatures = callExpressionLike.kind === 215 /* NewExpression */ || isCallExpression(callExpressionLike) && callExpressionLike.expression.kind === 108 /* SuperKeyword */;\n const allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures();\n if (signature && !contains(allSignatures, signature.target) && !contains(allSignatures, signature)) {\n signature = allSignatures.length ? allSignatures[0] : void 0;\n }\n if (signature) {\n if (useConstructSignatures && symbolFlags & 32 /* Class */) {\n symbolKind = \"constructor\" /* constructorImplementationElement */;\n addPrefixForAnyFunctionOrVar(type.symbol, symbolKind);\n } else if (symbolFlags & 2097152 /* Alias */) {\n symbolKind = \"alias\" /* alias */;\n pushSymbolKind(symbolKind);\n displayParts.push(spacePart());\n if (useConstructSignatures) {\n if (signature.flags & 4 /* Abstract */) {\n displayParts.push(keywordPart(128 /* AbstractKeyword */));\n displayParts.push(spacePart());\n }\n displayParts.push(keywordPart(105 /* NewKeyword */));\n displayParts.push(spacePart());\n }\n addFullSymbolName(symbol);\n } else {\n addPrefixForAnyFunctionOrVar(symbol, symbolKind);\n }\n switch (symbolKind) {\n case \"JSX attribute\" /* jsxAttribute */:\n case \"property\" /* memberVariableElement */:\n case \"var\" /* variableElement */:\n case \"const\" /* constElement */:\n case \"let\" /* letElement */:\n case \"parameter\" /* parameterElement */:\n case \"local var\" /* localVariableElement */:\n displayParts.push(punctuationPart(59 /* ColonToken */));\n displayParts.push(spacePart());\n if (!(getObjectFlags(type) & 16 /* Anonymous */) && type.symbol) {\n addRange(displayParts, symbolToDisplayParts(\n typeChecker,\n type.symbol,\n enclosingDeclaration,\n /*meaning*/\n void 0,\n 4 /* AllowAnyNodeKind */ | 1 /* WriteTypeParametersOrArguments */\n ));\n displayParts.push(lineBreakPart());\n }\n if (useConstructSignatures) {\n if (signature.flags & 4 /* Abstract */) {\n displayParts.push(keywordPart(128 /* AbstractKeyword */));\n displayParts.push(spacePart());\n }\n displayParts.push(keywordPart(105 /* NewKeyword */));\n displayParts.push(spacePart());\n }\n addSignatureDisplayParts(signature, allSignatures, 262144 /* WriteArrowStyleSignature */);\n break;\n default:\n addSignatureDisplayParts(signature, allSignatures);\n }\n hasAddedSymbolInfo = true;\n hasMultipleSignatures = allSignatures.length > 1;\n }\n } else if (isNameOfFunctionDeclaration(location) && !(symbolFlags & 98304 /* Accessor */) || // name of function declaration\n location.kind === 137 /* ConstructorKeyword */ && location.parent.kind === 177 /* Constructor */) {\n const functionDeclaration = location.parent;\n const locationIsSymbolDeclaration = symbol.declarations && find(symbol.declarations, (declaration) => declaration === (location.kind === 137 /* ConstructorKeyword */ ? functionDeclaration.parent : functionDeclaration));\n if (locationIsSymbolDeclaration) {\n const allSignatures = functionDeclaration.kind === 177 /* Constructor */ ? type.getNonNullableType().getConstructSignatures() : type.getNonNullableType().getCallSignatures();\n if (!typeChecker.isImplementationOfOverload(functionDeclaration)) {\n signature = typeChecker.getSignatureFromDeclaration(functionDeclaration);\n } else {\n signature = allSignatures[0];\n }\n if (functionDeclaration.kind === 177 /* Constructor */) {\n symbolKind = \"constructor\" /* constructorImplementationElement */;\n addPrefixForAnyFunctionOrVar(type.symbol, symbolKind);\n } else {\n addPrefixForAnyFunctionOrVar(\n functionDeclaration.kind === 180 /* CallSignature */ && !(type.symbol.flags & 2048 /* TypeLiteral */ || type.symbol.flags & 4096 /* ObjectLiteral */) ? type.symbol : symbol,\n symbolKind\n );\n }\n if (signature) {\n addSignatureDisplayParts(signature, allSignatures);\n }\n hasAddedSymbolInfo = true;\n hasMultipleSignatures = allSignatures.length > 1;\n }\n }\n }\n if (symbolFlags & 32 /* Class */ && !hasAddedSymbolInfo && !isThisExpression) {\n addAliasPrefixIfNecessary();\n const classExpression = getDeclarationOfKind(symbol, 232 /* ClassExpression */);\n if (classExpression) {\n pushSymbolKind(\"local class\" /* localClassElement */);\n displayParts.push(spacePart());\n }\n if (!tryExpandSymbol(symbol, semanticMeaning)) {\n if (!classExpression) {\n displayParts.push(keywordPart(86 /* ClassKeyword */));\n displayParts.push(spacePart());\n }\n addFullSymbolName(symbol);\n writeTypeParametersOfSymbol(symbol, sourceFile);\n }\n }\n if (symbolFlags & 64 /* Interface */ && semanticMeaning & 2 /* Type */) {\n prefixNextMeaning();\n if (!tryExpandSymbol(symbol, semanticMeaning)) {\n displayParts.push(keywordPart(120 /* InterfaceKeyword */));\n displayParts.push(spacePart());\n addFullSymbolName(symbol);\n writeTypeParametersOfSymbol(symbol, sourceFile);\n }\n }\n if (symbolFlags & 524288 /* TypeAlias */ && semanticMeaning & 2 /* Type */) {\n prefixNextMeaning();\n displayParts.push(keywordPart(156 /* TypeKeyword */));\n displayParts.push(spacePart());\n addFullSymbolName(symbol);\n writeTypeParametersOfSymbol(symbol, sourceFile);\n displayParts.push(spacePart());\n displayParts.push(operatorPart(64 /* EqualsToken */));\n displayParts.push(spacePart());\n addRange(\n displayParts,\n typeToDisplayParts(\n typeChecker,\n location.parent && isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol),\n enclosingDeclaration,\n 8388608 /* InTypeAlias */,\n maximumLength,\n verbosityLevel,\n typeWriterOut\n )\n );\n }\n if (symbolFlags & 384 /* Enum */) {\n prefixNextMeaning();\n if (!tryExpandSymbol(symbol, semanticMeaning)) {\n if (some(symbol.declarations, (d) => isEnumDeclaration(d) && isEnumConst(d))) {\n displayParts.push(keywordPart(87 /* ConstKeyword */));\n displayParts.push(spacePart());\n }\n displayParts.push(keywordPart(94 /* EnumKeyword */));\n displayParts.push(spacePart());\n addFullSymbolName(\n symbol,\n /*enclosingDeclaration*/\n void 0\n );\n }\n }\n if (symbolFlags & 1536 /* Module */ && !isThisExpression) {\n prefixNextMeaning();\n if (!tryExpandSymbol(symbol, semanticMeaning)) {\n const declaration = getDeclarationOfKind(symbol, 268 /* ModuleDeclaration */);\n const isNamespace = declaration && declaration.name && declaration.name.kind === 80 /* Identifier */;\n displayParts.push(keywordPart(isNamespace ? 145 /* NamespaceKeyword */ : 144 /* ModuleKeyword */));\n displayParts.push(spacePart());\n addFullSymbolName(symbol);\n }\n }\n if (symbolFlags & 262144 /* TypeParameter */ && semanticMeaning & 2 /* Type */) {\n prefixNextMeaning();\n displayParts.push(punctuationPart(21 /* OpenParenToken */));\n displayParts.push(textPart(\"type parameter\"));\n displayParts.push(punctuationPart(22 /* CloseParenToken */));\n displayParts.push(spacePart());\n addFullSymbolName(symbol);\n if (symbol.parent) {\n addInPrefix();\n addFullSymbolName(symbol.parent, enclosingDeclaration);\n writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration);\n } else {\n const decl = getDeclarationOfKind(symbol, 169 /* TypeParameter */);\n if (decl === void 0) return Debug.fail();\n const declaration = decl.parent;\n if (declaration) {\n if (isFunctionLike(declaration)) {\n addInPrefix();\n const signature = typeChecker.getSignatureFromDeclaration(declaration);\n if (declaration.kind === 181 /* ConstructSignature */) {\n displayParts.push(keywordPart(105 /* NewKeyword */));\n displayParts.push(spacePart());\n } else if (declaration.kind !== 180 /* CallSignature */ && declaration.name) {\n addFullSymbolName(declaration.symbol);\n }\n addRange(displayParts, signatureToDisplayParts(typeChecker, signature, sourceFile, 32 /* WriteTypeArgumentsOfSignature */));\n } else if (isTypeAliasDeclaration(declaration)) {\n addInPrefix();\n displayParts.push(keywordPart(156 /* TypeKeyword */));\n displayParts.push(spacePart());\n addFullSymbolName(declaration.symbol);\n writeTypeParametersOfSymbol(declaration.symbol, sourceFile);\n }\n }\n }\n }\n if (symbolFlags & 8 /* EnumMember */) {\n symbolKind = \"enum member\" /* enumMemberElement */;\n addPrefixForAnyFunctionOrVar(symbol, \"enum member\");\n const declaration = (_a = symbol.declarations) == null ? void 0 : _a[0];\n if ((declaration == null ? void 0 : declaration.kind) === 307 /* EnumMember */) {\n const constantValue = typeChecker.getConstantValue(declaration);\n if (constantValue !== void 0) {\n displayParts.push(spacePart());\n displayParts.push(operatorPart(64 /* EqualsToken */));\n displayParts.push(spacePart());\n displayParts.push(displayPart(getTextOfConstantValue(constantValue), typeof constantValue === \"number\" ? 7 /* numericLiteral */ : 8 /* stringLiteral */));\n }\n }\n }\n if (symbol.flags & 2097152 /* Alias */) {\n prefixNextMeaning();\n if (!hasAddedSymbolInfo || documentation.length === 0 && tags.length === 0) {\n const resolvedSymbol = typeChecker.getAliasedSymbol(symbol);\n if (resolvedSymbol !== symbol && resolvedSymbol.declarations && resolvedSymbol.declarations.length > 0) {\n const resolvedNode = resolvedSymbol.declarations[0];\n const declarationName = getNameOfDeclaration(resolvedNode);\n if (declarationName && !hasAddedSymbolInfo) {\n const isExternalModuleDeclaration = isModuleWithStringLiteralName(resolvedNode) && hasSyntacticModifier(resolvedNode, 128 /* Ambient */);\n const shouldUseAliasName = symbol.name !== \"default\" && !isExternalModuleDeclaration;\n const resolvedInfo = getSymbolDisplayPartsDocumentationAndSymbolKindWorker(\n typeChecker,\n resolvedSymbol,\n getSourceFileOfNode(resolvedNode),\n enclosingDeclaration,\n declarationName,\n type,\n semanticMeaning,\n shouldUseAliasName ? symbol : resolvedSymbol,\n maximumLength,\n verbosityLevel\n );\n displayParts.push(...resolvedInfo.displayParts);\n displayParts.push(lineBreakPart());\n documentationFromAlias = resolvedInfo.documentation;\n tagsFromAlias = resolvedInfo.tags;\n if (typeWriterOut && resolvedInfo.canIncreaseVerbosityLevel) {\n typeWriterOut.canIncreaseExpansionDepth = true;\n }\n } else {\n documentationFromAlias = resolvedSymbol.getContextualDocumentationComment(resolvedNode, typeChecker);\n tagsFromAlias = resolvedSymbol.getJsDocTags(typeChecker);\n }\n }\n }\n if (symbol.declarations) {\n switch (symbol.declarations[0].kind) {\n case 271 /* NamespaceExportDeclaration */:\n displayParts.push(keywordPart(95 /* ExportKeyword */));\n displayParts.push(spacePart());\n displayParts.push(keywordPart(145 /* NamespaceKeyword */));\n break;\n case 278 /* ExportAssignment */:\n displayParts.push(keywordPart(95 /* ExportKeyword */));\n displayParts.push(spacePart());\n displayParts.push(keywordPart(symbol.declarations[0].isExportEquals ? 64 /* EqualsToken */ : 90 /* DefaultKeyword */));\n break;\n case 282 /* ExportSpecifier */:\n displayParts.push(keywordPart(95 /* ExportKeyword */));\n break;\n default:\n displayParts.push(keywordPart(102 /* ImportKeyword */));\n }\n }\n displayParts.push(spacePart());\n addFullSymbolName(symbol);\n forEach(symbol.declarations, (declaration) => {\n if (declaration.kind === 272 /* ImportEqualsDeclaration */) {\n const importEqualsDeclaration = declaration;\n if (isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) {\n displayParts.push(spacePart());\n displayParts.push(operatorPart(64 /* EqualsToken */));\n displayParts.push(spacePart());\n displayParts.push(keywordPart(149 /* RequireKeyword */));\n displayParts.push(punctuationPart(21 /* OpenParenToken */));\n displayParts.push(displayPart(getTextOfNode(getExternalModuleImportEqualsDeclarationExpression(importEqualsDeclaration)), 8 /* stringLiteral */));\n displayParts.push(punctuationPart(22 /* CloseParenToken */));\n } else {\n const internalAliasSymbol = typeChecker.getSymbolAtLocation(importEqualsDeclaration.moduleReference);\n if (internalAliasSymbol) {\n displayParts.push(spacePart());\n displayParts.push(operatorPart(64 /* EqualsToken */));\n displayParts.push(spacePart());\n addFullSymbolName(internalAliasSymbol, enclosingDeclaration);\n }\n }\n return true;\n }\n });\n }\n if (!hasAddedSymbolInfo) {\n if (symbolKind !== \"\" /* unknown */) {\n if (type) {\n if (isThisExpression) {\n prefixNextMeaning();\n displayParts.push(keywordPart(110 /* ThisKeyword */));\n } else {\n addPrefixForAnyFunctionOrVar(symbol, symbolKind);\n }\n if (symbolKind === \"property\" /* memberVariableElement */ || symbolKind === \"accessor\" /* memberAccessorVariableElement */ || symbolKind === \"getter\" /* memberGetAccessorElement */ || symbolKind === \"setter\" /* memberSetAccessorElement */ || symbolKind === \"JSX attribute\" /* jsxAttribute */ || symbolFlags & 3 /* Variable */ || symbolKind === \"local var\" /* localVariableElement */ || symbolKind === \"index\" /* indexSignatureElement */ || symbolKind === \"using\" /* variableUsingElement */ || symbolKind === \"await using\" /* variableAwaitUsingElement */ || isThisExpression) {\n displayParts.push(punctuationPart(59 /* ColonToken */));\n displayParts.push(spacePart());\n if (type.symbol && type.symbol.flags & 262144 /* TypeParameter */ && symbolKind !== \"index\" /* indexSignatureElement */) {\n const typeParameterParts = mapToDisplayParts((writer) => {\n const param = typeChecker.typeParameterToDeclaration(\n type,\n enclosingDeclaration,\n symbolDisplayNodeBuilderFlags,\n /*internalFlags*/\n void 0,\n /*tracker*/\n void 0,\n maximumLength,\n verbosityLevel,\n typeWriterOut\n );\n getPrinter().writeNode(4 /* Unspecified */, param, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration)), writer);\n }, maximumLength);\n addRange(displayParts, typeParameterParts);\n } else {\n addRange(\n displayParts,\n typeToDisplayParts(\n typeChecker,\n type,\n enclosingDeclaration,\n /*flags*/\n void 0,\n maximumLength,\n verbosityLevel,\n typeWriterOut\n )\n );\n }\n if (isTransientSymbol(symbol) && symbol.links.target && isTransientSymbol(symbol.links.target) && symbol.links.target.links.tupleLabelDeclaration) {\n const labelDecl = symbol.links.target.links.tupleLabelDeclaration;\n Debug.assertNode(labelDecl.name, isIdentifier);\n displayParts.push(spacePart());\n displayParts.push(punctuationPart(21 /* OpenParenToken */));\n displayParts.push(textPart(idText(labelDecl.name)));\n displayParts.push(punctuationPart(22 /* CloseParenToken */));\n }\n } else if (symbolFlags & 16 /* Function */ || symbolFlags & 8192 /* Method */ || symbolFlags & 16384 /* Constructor */ || symbolFlags & 131072 /* Signature */ || symbolFlags & 98304 /* Accessor */ || symbolKind === \"method\" /* memberFunctionElement */) {\n const allSignatures = type.getNonNullableType().getCallSignatures();\n if (allSignatures.length) {\n addSignatureDisplayParts(allSignatures[0], allSignatures);\n hasMultipleSignatures = allSignatures.length > 1;\n }\n }\n }\n } else {\n symbolKind = getSymbolKind(typeChecker, symbol, location);\n }\n }\n if (documentation.length === 0 && !hasMultipleSignatures) {\n documentation = symbol.getContextualDocumentationComment(enclosingDeclaration, typeChecker);\n }\n if (documentation.length === 0 && symbolFlags & 4 /* Property */) {\n if (symbol.parent && symbol.declarations && forEach(symbol.parent.declarations, (declaration) => declaration.kind === 308 /* SourceFile */)) {\n for (const declaration of symbol.declarations) {\n if (!declaration.parent || declaration.parent.kind !== 227 /* BinaryExpression */) {\n continue;\n }\n const rhsSymbol = typeChecker.getSymbolAtLocation(declaration.parent.right);\n if (!rhsSymbol) {\n continue;\n }\n documentation = rhsSymbol.getDocumentationComment(typeChecker);\n tags = rhsSymbol.getJsDocTags(typeChecker);\n if (documentation.length > 0) {\n break;\n }\n }\n }\n }\n if (documentation.length === 0 && isIdentifier(location) && symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration)) {\n const declaration = symbol.valueDeclaration;\n const parent2 = declaration.parent;\n const name = declaration.propertyName || declaration.name;\n if (isIdentifier(name) && isObjectBindingPattern(parent2)) {\n const propertyName = getTextOfIdentifierOrLiteral(name);\n const objectType = typeChecker.getTypeAtLocation(parent2);\n documentation = firstDefined(objectType.isUnion() ? objectType.types : [objectType], (t) => {\n const prop = t.getProperty(propertyName);\n return prop ? prop.getDocumentationComment(typeChecker) : void 0;\n }) || emptyArray;\n }\n }\n if (tags.length === 0 && !hasMultipleSignatures && !isInJSDoc(location)) {\n tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker);\n }\n if (documentation.length === 0 && documentationFromAlias) {\n documentation = documentationFromAlias;\n }\n if (tags.length === 0 && tagsFromAlias) {\n tags = tagsFromAlias;\n }\n const canIncreaseVerbosityLevel = !typeWriterOut.truncated && typeWriterOut.canIncreaseExpansionDepth;\n return {\n displayParts,\n documentation,\n symbolKind,\n tags: tags.length === 0 ? void 0 : tags,\n canIncreaseVerbosityLevel: verbosityLevel !== void 0 ? canIncreaseVerbosityLevel : void 0\n };\n function getPrinter() {\n return createPrinterWithRemoveComments();\n }\n function prefixNextMeaning() {\n if (displayParts.length) {\n displayParts.push(lineBreakPart());\n }\n addAliasPrefixIfNecessary();\n }\n function addAliasPrefixIfNecessary() {\n if (alias) {\n pushSymbolKind(\"alias\" /* alias */);\n displayParts.push(spacePart());\n }\n }\n function addInPrefix() {\n displayParts.push(spacePart());\n displayParts.push(keywordPart(103 /* InKeyword */));\n displayParts.push(spacePart());\n }\n function canExpandSymbol(symbol2, out) {\n if (verbosityLevel === void 0) {\n return false;\n }\n const type2 = symbol2.flags & (32 /* Class */ | 64 /* Interface */) ? typeChecker.getDeclaredTypeOfSymbol(symbol2) : typeChecker.getTypeOfSymbolAtLocation(symbol2, location);\n if (!type2 || typeChecker.isLibType(type2)) {\n return false;\n }\n if (0 < verbosityLevel) {\n return true;\n }\n if (out) {\n out.canIncreaseExpansionDepth = true;\n }\n return false;\n }\n function semanticToSymbolMeaning(meaning) {\n let symbolMeaning = 0 /* None */;\n if (meaning & 1 /* Value */) {\n symbolMeaning |= 111551 /* Value */;\n }\n if (meaning & 2 /* Type */) {\n symbolMeaning |= 788968 /* Type */;\n }\n if (meaning & 4 /* Namespace */) {\n symbolMeaning |= 1920 /* Namespace */;\n }\n return symbolMeaning;\n }\n function tryExpandSymbol(symbol2, meaning) {\n if (symbolWasExpanded) {\n return true;\n }\n if (canExpandSymbol(symbol2, typeWriterOut)) {\n const symbolMeaning = semanticToSymbolMeaning(meaning);\n const expandedDisplayParts = mapToDisplayParts((writer) => {\n const nodes = typeChecker.getEmitResolver().symbolToDeclarations(\n symbol2,\n symbolMeaning,\n 1024 /* MultilineObjectLiterals */ | 16384 /* UseAliasDefinedOutsideCurrentScope */,\n maximumLength,\n verbosityLevel !== void 0 ? verbosityLevel - 1 : void 0,\n typeWriterOut\n );\n const printer = getPrinter();\n const sourceFile2 = symbol2.valueDeclaration && getSourceFileOfNode(symbol2.valueDeclaration);\n nodes.forEach((node, i) => {\n if (i > 0) writer.writeLine();\n printer.writeNode(4 /* Unspecified */, node, sourceFile2, writer);\n });\n }, maximumLength);\n addRange(displayParts, expandedDisplayParts);\n symbolWasExpanded = true;\n return true;\n }\n return false;\n }\n function addFullSymbolName(symbolToDisplay, enclosingDeclaration2) {\n let indexInfos;\n if (alias && symbolToDisplay === symbol) {\n symbolToDisplay = alias;\n }\n if (symbolKind === \"index\" /* indexSignatureElement */) {\n indexInfos = typeChecker.getIndexInfosOfIndexSymbol(symbolToDisplay);\n }\n let fullSymbolDisplayParts = [];\n if (symbolToDisplay.flags & 131072 /* Signature */ && indexInfos) {\n if (symbolToDisplay.parent) {\n fullSymbolDisplayParts = symbolToDisplayParts(typeChecker, symbolToDisplay.parent);\n }\n fullSymbolDisplayParts.push(punctuationPart(23 /* OpenBracketToken */));\n indexInfos.forEach((info, i) => {\n fullSymbolDisplayParts.push(...typeToDisplayParts(typeChecker, info.keyType));\n if (i !== indexInfos.length - 1) {\n fullSymbolDisplayParts.push(spacePart());\n fullSymbolDisplayParts.push(punctuationPart(52 /* BarToken */));\n fullSymbolDisplayParts.push(spacePart());\n }\n });\n fullSymbolDisplayParts.push(punctuationPart(24 /* CloseBracketToken */));\n } else {\n fullSymbolDisplayParts = symbolToDisplayParts(\n typeChecker,\n symbolToDisplay,\n enclosingDeclaration2 || sourceFile,\n /*meaning*/\n void 0,\n 1 /* WriteTypeParametersOrArguments */ | 2 /* UseOnlyExternalAliasing */ | 4 /* AllowAnyNodeKind */\n );\n }\n addRange(displayParts, fullSymbolDisplayParts);\n if (symbol.flags & 16777216 /* Optional */) {\n displayParts.push(punctuationPart(58 /* QuestionToken */));\n }\n }\n function addPrefixForAnyFunctionOrVar(symbol2, symbolKind2) {\n prefixNextMeaning();\n if (symbolKind2) {\n pushSymbolKind(symbolKind2);\n if (symbol2 && !some(symbol2.declarations, (d) => isArrowFunction(d) || (isFunctionExpression(d) || isClassExpression(d)) && !d.name)) {\n displayParts.push(spacePart());\n addFullSymbolName(symbol2);\n }\n }\n }\n function pushSymbolKind(symbolKind2) {\n switch (symbolKind2) {\n case \"var\" /* variableElement */:\n case \"function\" /* functionElement */:\n case \"let\" /* letElement */:\n case \"const\" /* constElement */:\n case \"constructor\" /* constructorImplementationElement */:\n case \"using\" /* variableUsingElement */:\n case \"await using\" /* variableAwaitUsingElement */:\n displayParts.push(textOrKeywordPart(symbolKind2));\n return;\n default:\n displayParts.push(punctuationPart(21 /* OpenParenToken */));\n displayParts.push(textOrKeywordPart(symbolKind2));\n displayParts.push(punctuationPart(22 /* CloseParenToken */));\n return;\n }\n }\n function addSignatureDisplayParts(signature, allSignatures, flags = 0 /* None */) {\n addRange(displayParts, signatureToDisplayParts(typeChecker, signature, enclosingDeclaration, flags | 32 /* WriteTypeArgumentsOfSignature */, maximumLength, verbosityLevel, typeWriterOut));\n if (allSignatures.length > 1) {\n displayParts.push(spacePart());\n displayParts.push(punctuationPart(21 /* OpenParenToken */));\n displayParts.push(operatorPart(40 /* PlusToken */));\n displayParts.push(displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */));\n displayParts.push(spacePart());\n displayParts.push(textPart(allSignatures.length === 2 ? \"overload\" : \"overloads\"));\n displayParts.push(punctuationPart(22 /* CloseParenToken */));\n }\n documentation = signature.getDocumentationComment(typeChecker);\n tags = signature.getJsDocTags();\n if (allSignatures.length > 1 && documentation.length === 0 && tags.length === 0) {\n documentation = allSignatures[0].getDocumentationComment(typeChecker);\n tags = allSignatures[0].getJsDocTags().filter((tag) => tag.name !== \"deprecated\");\n }\n }\n function writeTypeParametersOfSymbol(symbol2, enclosingDeclaration2) {\n const typeParameterParts = mapToDisplayParts((writer) => {\n const params = typeChecker.symbolToTypeParameterDeclarations(symbol2, enclosingDeclaration2, symbolDisplayNodeBuilderFlags);\n getPrinter().writeList(53776 /* TypeParameters */, params, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration2)), writer);\n });\n addRange(displayParts, typeParameterParts);\n }\n}\nfunction getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, enclosingDeclaration, location, semanticMeaning = getMeaningFromLocation(location), alias, maximumLength, verbosityLevel) {\n return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(\n typeChecker,\n symbol,\n sourceFile,\n enclosingDeclaration,\n location,\n /*type*/\n void 0,\n semanticMeaning,\n alias,\n maximumLength,\n verbosityLevel\n );\n}\nfunction isLocalVariableOrFunction(symbol) {\n if (symbol.parent) {\n return false;\n }\n return forEach(symbol.declarations, (declaration) => {\n if (declaration.kind === 219 /* FunctionExpression */) {\n return true;\n }\n if (declaration.kind !== 261 /* VariableDeclaration */ && declaration.kind !== 263 /* FunctionDeclaration */) {\n return false;\n }\n for (let parent2 = declaration.parent; !isFunctionBlock(parent2); parent2 = parent2.parent) {\n if (parent2.kind === 308 /* SourceFile */ || parent2.kind === 269 /* ModuleBlock */) {\n return false;\n }\n }\n return true;\n });\n}\n\n// src/services/_namespaces/ts.textChanges.ts\nvar ts_textChanges_exports = {};\n__export(ts_textChanges_exports, {\n ChangeTracker: () => ChangeTracker,\n LeadingTriviaOption: () => LeadingTriviaOption,\n TrailingTriviaOption: () => TrailingTriviaOption,\n applyChanges: () => applyChanges,\n assignPositionsToNode: () => assignPositionsToNode,\n createWriter: () => createWriter,\n deleteNode: () => deleteNode,\n getAdjustedEndPosition: () => getAdjustedEndPosition,\n isThisTypeAnnotatable: () => isThisTypeAnnotatable,\n isValidLocationToAddComment: () => isValidLocationToAddComment\n});\n\n// src/services/textChanges.ts\nfunction getPos2(n) {\n const result = n.__pos;\n Debug.assert(typeof result === \"number\");\n return result;\n}\nfunction setPos(n, pos) {\n Debug.assert(typeof pos === \"number\");\n n.__pos = pos;\n}\nfunction getEnd(n) {\n const result = n.__end;\n Debug.assert(typeof result === \"number\");\n return result;\n}\nfunction setEnd(n, end) {\n Debug.assert(typeof end === \"number\");\n n.__end = end;\n}\nvar LeadingTriviaOption = /* @__PURE__ */ ((LeadingTriviaOption2) => {\n LeadingTriviaOption2[LeadingTriviaOption2[\"Exclude\"] = 0] = \"Exclude\";\n LeadingTriviaOption2[LeadingTriviaOption2[\"IncludeAll\"] = 1] = \"IncludeAll\";\n LeadingTriviaOption2[LeadingTriviaOption2[\"JSDoc\"] = 2] = \"JSDoc\";\n LeadingTriviaOption2[LeadingTriviaOption2[\"StartLine\"] = 3] = \"StartLine\";\n return LeadingTriviaOption2;\n})(LeadingTriviaOption || {});\nvar TrailingTriviaOption = /* @__PURE__ */ ((TrailingTriviaOption2) => {\n TrailingTriviaOption2[TrailingTriviaOption2[\"Exclude\"] = 0] = \"Exclude\";\n TrailingTriviaOption2[TrailingTriviaOption2[\"ExcludeWhitespace\"] = 1] = \"ExcludeWhitespace\";\n TrailingTriviaOption2[TrailingTriviaOption2[\"Include\"] = 2] = \"Include\";\n return TrailingTriviaOption2;\n})(TrailingTriviaOption || {});\nfunction skipWhitespacesAndLineBreaks(text, start) {\n return skipTrivia(\n text,\n start,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n );\n}\nfunction hasCommentsBeforeLineBreak(text, start) {\n let i = start;\n while (i < text.length) {\n const ch = text.charCodeAt(i);\n if (isWhiteSpaceSingleLine(ch)) {\n i++;\n continue;\n }\n return ch === 47 /* slash */;\n }\n return false;\n}\nvar useNonAdjustedPositions = {\n leadingTriviaOption: 0 /* Exclude */,\n trailingTriviaOption: 0 /* Exclude */\n};\nfunction getAdjustedRange(sourceFile, startNode2, endNode2, options) {\n return { pos: getAdjustedStartPosition(sourceFile, startNode2, options), end: getAdjustedEndPosition(sourceFile, endNode2, options) };\n}\nfunction getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment = false) {\n var _a, _b;\n const { leadingTriviaOption } = options;\n if (leadingTriviaOption === 0 /* Exclude */) {\n return node.getStart(sourceFile);\n }\n if (leadingTriviaOption === 3 /* StartLine */) {\n const startPos = node.getStart(sourceFile);\n const pos = getLineStartPositionForPosition(startPos, sourceFile);\n return rangeContainsPosition(node, pos) ? pos : startPos;\n }\n if (leadingTriviaOption === 2 /* JSDoc */) {\n const JSDocComments = getJSDocCommentRanges(node, sourceFile.text);\n if (JSDocComments == null ? void 0 : JSDocComments.length) {\n return getLineStartPositionForPosition(JSDocComments[0].pos, sourceFile);\n }\n }\n const fullStart = node.getFullStart();\n const start = node.getStart(sourceFile);\n if (fullStart === start) {\n return start;\n }\n const fullStartLine = getLineStartPositionForPosition(fullStart, sourceFile);\n const startLine = getLineStartPositionForPosition(start, sourceFile);\n if (startLine === fullStartLine) {\n return leadingTriviaOption === 1 /* IncludeAll */ ? fullStart : start;\n }\n if (hasTrailingComment) {\n const comment = ((_a = getLeadingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _a[0]) || ((_b = getTrailingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _b[0]);\n if (comment) {\n return skipTrivia(\n sourceFile.text,\n comment.end,\n /*stopAfterLineBreak*/\n true,\n /*stopAtComments*/\n true\n );\n }\n }\n const nextLineStart = fullStart > 0 ? 1 : 0;\n let adjustedStartPosition = getStartPositionOfLine(getLineOfLocalPosition(sourceFile, fullStartLine) + nextLineStart, sourceFile);\n adjustedStartPosition = skipWhitespacesAndLineBreaks(sourceFile.text, adjustedStartPosition);\n return getStartPositionOfLine(getLineOfLocalPosition(sourceFile, adjustedStartPosition), sourceFile);\n}\nfunction getEndPositionOfMultilineTrailingComment(sourceFile, node, options) {\n const { end } = node;\n const { trailingTriviaOption } = options;\n if (trailingTriviaOption === 2 /* Include */) {\n const comments = getTrailingCommentRanges(sourceFile.text, end);\n if (comments) {\n const nodeEndLine = getLineOfLocalPosition(sourceFile, node.end);\n for (const comment of comments) {\n if (comment.kind === 2 /* SingleLineCommentTrivia */ || getLineOfLocalPosition(sourceFile, comment.pos) > nodeEndLine) {\n break;\n }\n const commentEndLine = getLineOfLocalPosition(sourceFile, comment.end);\n if (commentEndLine > nodeEndLine) {\n return skipTrivia(\n sourceFile.text,\n comment.end,\n /*stopAfterLineBreak*/\n true,\n /*stopAtComments*/\n true\n );\n }\n }\n }\n }\n return void 0;\n}\nfunction getAdjustedEndPosition(sourceFile, node, options) {\n var _a;\n const { end } = node;\n const { trailingTriviaOption } = options;\n if (trailingTriviaOption === 0 /* Exclude */) {\n return end;\n }\n if (trailingTriviaOption === 1 /* ExcludeWhitespace */) {\n const comments = concatenate(getTrailingCommentRanges(sourceFile.text, end), getLeadingCommentRanges(sourceFile.text, end));\n const realEnd = (_a = comments == null ? void 0 : comments[comments.length - 1]) == null ? void 0 : _a.end;\n if (realEnd) {\n return realEnd;\n }\n return end;\n }\n const multilineEndPosition = getEndPositionOfMultilineTrailingComment(sourceFile, node, options);\n if (multilineEndPosition) {\n return multilineEndPosition;\n }\n const newEnd = skipTrivia(\n sourceFile.text,\n end,\n /*stopAfterLineBreak*/\n true\n );\n return newEnd !== end && (trailingTriviaOption === 2 /* Include */ || isLineBreak(sourceFile.text.charCodeAt(newEnd - 1))) ? newEnd : end;\n}\nfunction isSeparator(node, candidate) {\n return !!candidate && !!node.parent && (candidate.kind === 28 /* CommaToken */ || candidate.kind === 27 /* SemicolonToken */ && node.parent.kind === 211 /* ObjectLiteralExpression */);\n}\nfunction isThisTypeAnnotatable(containingFunction) {\n return isFunctionExpression(containingFunction) || isFunctionDeclaration(containingFunction);\n}\nvar ChangeTracker = class _ChangeTracker {\n /** Public for tests only. Other callers should use `ChangeTracker.with`. */\n constructor(newLineCharacter, formatContext) {\n this.newLineCharacter = newLineCharacter;\n this.formatContext = formatContext;\n this.changes = [];\n this.classesWithNodesInsertedAtStart = /* @__PURE__ */ new Map();\n // Set implemented as Map\n this.deletedNodes = [];\n }\n static fromContext(context) {\n return new _ChangeTracker(getNewLineOrDefaultFromHost(context.host, context.formatContext.options), context.formatContext);\n }\n static with(context, cb) {\n const tracker = _ChangeTracker.fromContext(context);\n cb(tracker);\n return tracker.getChanges();\n }\n pushRaw(sourceFile, change) {\n Debug.assertEqual(sourceFile.fileName, change.fileName);\n for (const c of change.textChanges) {\n this.changes.push({\n kind: 3 /* Text */,\n sourceFile,\n text: c.newText,\n range: createTextRangeFromSpan(c.span)\n });\n }\n }\n deleteRange(sourceFile, range) {\n this.changes.push({ kind: 0 /* Remove */, sourceFile, range });\n }\n delete(sourceFile, node) {\n this.deletedNodes.push({ sourceFile, node });\n }\n /** Stop! Consider using `delete` instead, which has logic for deleting nodes from delimited lists. */\n deleteNode(sourceFile, node, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n this.deleteRange(sourceFile, getAdjustedRange(sourceFile, node, node, options));\n }\n deleteNodes(sourceFile, nodes, options = { leadingTriviaOption: 1 /* IncludeAll */ }, hasTrailingComment) {\n for (const node of nodes) {\n const pos = getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment);\n const end = getAdjustedEndPosition(sourceFile, node, options);\n this.deleteRange(sourceFile, { pos, end });\n hasTrailingComment = !!getEndPositionOfMultilineTrailingComment(sourceFile, node, options);\n }\n }\n deleteModifier(sourceFile, modifier) {\n this.deleteRange(sourceFile, { pos: modifier.getStart(sourceFile), end: skipTrivia(\n sourceFile.text,\n modifier.end,\n /*stopAfterLineBreak*/\n true\n ) });\n }\n deleteNodeRange(sourceFile, startNode2, endNode2, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n const startPosition = getAdjustedStartPosition(sourceFile, startNode2, options);\n const endPosition = getAdjustedEndPosition(sourceFile, endNode2, options);\n this.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n }\n deleteNodeRangeExcludingEnd(sourceFile, startNode2, afterEndNode, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n const startPosition = getAdjustedStartPosition(sourceFile, startNode2, options);\n const endPosition = afterEndNode === void 0 ? sourceFile.text.length : getAdjustedStartPosition(sourceFile, afterEndNode, options);\n this.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n }\n replaceRange(sourceFile, range, newNode, options = {}) {\n this.changes.push({ kind: 1 /* ReplaceWithSingleNode */, sourceFile, range, options, node: newNode });\n }\n replaceNode(sourceFile, oldNode, newNode, options = useNonAdjustedPositions) {\n this.replaceRange(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNode, options);\n }\n replaceNodeRange(sourceFile, startNode2, endNode2, newNode, options = useNonAdjustedPositions) {\n this.replaceRange(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNode, options);\n }\n replaceRangeWithNodes(sourceFile, range, newNodes, options = {}) {\n this.changes.push({ kind: 2 /* ReplaceWithMultipleNodes */, sourceFile, range, options, nodes: newNodes });\n }\n replaceNodeWithNodes(sourceFile, oldNode, newNodes, options = useNonAdjustedPositions) {\n this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNodes, options);\n }\n replaceNodeWithText(sourceFile, oldNode, text) {\n this.replaceRangeWithText(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, useNonAdjustedPositions), text);\n }\n replaceNodeRangeWithNodes(sourceFile, startNode2, endNode2, newNodes, options = useNonAdjustedPositions) {\n this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNodes, options);\n }\n nodeHasTrailingComment(sourceFile, oldNode, configurableEnd = useNonAdjustedPositions) {\n return !!getEndPositionOfMultilineTrailingComment(sourceFile, oldNode, configurableEnd);\n }\n nextCommaToken(sourceFile, node) {\n const next = findNextToken(node, node.parent, sourceFile);\n return next && next.kind === 28 /* CommaToken */ ? next : void 0;\n }\n replacePropertyAssignment(sourceFile, oldNode, newNode) {\n const suffix = this.nextCommaToken(sourceFile, oldNode) ? \"\" : \",\" + this.newLineCharacter;\n this.replaceNode(sourceFile, oldNode, newNode, { suffix });\n }\n insertNodeAt(sourceFile, pos, newNode, options = {}) {\n this.replaceRange(sourceFile, createRange(pos), newNode, options);\n }\n insertNodesAt(sourceFile, pos, newNodes, options = {}) {\n this.replaceRangeWithNodes(sourceFile, createRange(pos), newNodes, options);\n }\n insertNodeAtTopOfFile(sourceFile, newNode, blankLineBetween) {\n this.insertAtTopOfFile(sourceFile, newNode, blankLineBetween);\n }\n insertNodesAtTopOfFile(sourceFile, newNodes, blankLineBetween) {\n this.insertAtTopOfFile(sourceFile, newNodes, blankLineBetween);\n }\n insertAtTopOfFile(sourceFile, insert, blankLineBetween) {\n const pos = getInsertionPositionAtSourceFileTop(sourceFile);\n const options = {\n prefix: pos === 0 ? void 0 : this.newLineCharacter,\n suffix: (isLineBreak(sourceFile.text.charCodeAt(pos)) ? \"\" : this.newLineCharacter) + (blankLineBetween ? this.newLineCharacter : \"\")\n };\n if (isArray(insert)) {\n this.insertNodesAt(sourceFile, pos, insert, options);\n } else {\n this.insertNodeAt(sourceFile, pos, insert, options);\n }\n }\n insertNodesAtEndOfFile(sourceFile, newNodes, blankLineBetween) {\n this.insertAtEndOfFile(sourceFile, newNodes, blankLineBetween);\n }\n insertAtEndOfFile(sourceFile, insert, blankLineBetween) {\n const pos = sourceFile.end + 1;\n const options = {\n prefix: this.newLineCharacter,\n suffix: this.newLineCharacter + (blankLineBetween ? this.newLineCharacter : \"\")\n };\n this.insertNodesAt(sourceFile, pos, insert, options);\n }\n insertStatementsInNewFile(fileName, statements, oldFile) {\n if (!this.newFileChanges) {\n this.newFileChanges = createMultiMap();\n }\n this.newFileChanges.add(fileName, { oldFile, statements });\n }\n insertFirstParameter(sourceFile, parameters, newParam) {\n const p0 = firstOrUndefined(parameters);\n if (p0) {\n this.insertNodeBefore(sourceFile, p0, newParam);\n } else {\n this.insertNodeAt(sourceFile, parameters.pos, newParam);\n }\n }\n insertNodeBefore(sourceFile, before, newNode, blankLineBetween = false, options = {}) {\n this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));\n }\n insertNodesBefore(sourceFile, before, newNodes, blankLineBetween = false, options = {}) {\n this.insertNodesAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNodes, this.getOptionsForInsertNodeBefore(before, first(newNodes), blankLineBetween));\n }\n insertModifierAt(sourceFile, pos, modifier, options = {}) {\n this.insertNodeAt(sourceFile, pos, factory.createToken(modifier), options);\n }\n insertModifierBefore(sourceFile, modifier, before) {\n return this.insertModifierAt(sourceFile, before.getStart(sourceFile), modifier, { suffix: \" \" });\n }\n insertCommentBeforeLine(sourceFile, lineNumber, position, commentText) {\n const lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile);\n const startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);\n const insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition);\n const token = getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position);\n const indent3 = sourceFile.text.slice(lineStartPosition, startPosition);\n const text = `${insertAtLineStart ? \"\" : this.newLineCharacter}//${commentText}${this.newLineCharacter}${indent3}`;\n this.insertText(sourceFile, token.getStart(sourceFile), text);\n }\n insertJsdocCommentBefore(sourceFile, node, tag) {\n const fnStart = node.getStart(sourceFile);\n if (node.jsDoc) {\n for (const jsdoc of node.jsDoc) {\n this.deleteRange(sourceFile, {\n pos: getLineStartPositionForPosition(jsdoc.getStart(sourceFile), sourceFile),\n end: getAdjustedEndPosition(\n sourceFile,\n jsdoc,\n /*options*/\n {}\n )\n });\n }\n }\n const startPosition = getPrecedingNonSpaceCharacterPosition(sourceFile.text, fnStart - 1);\n const indent3 = sourceFile.text.slice(startPosition, fnStart);\n this.insertNodeAt(sourceFile, fnStart, tag, { suffix: this.newLineCharacter + indent3 });\n }\n createJSDocText(sourceFile, node) {\n const comments = flatMap(node.jsDoc, (jsDoc2) => isString(jsDoc2.comment) ? factory.createJSDocText(jsDoc2.comment) : jsDoc2.comment);\n const jsDoc = singleOrUndefined(node.jsDoc);\n return jsDoc && positionsAreOnSameLine(jsDoc.pos, jsDoc.end, sourceFile) && length(comments) === 0 ? void 0 : factory.createNodeArray(intersperse(comments, factory.createJSDocText(\"\\n\")));\n }\n replaceJSDocComment(sourceFile, node, tags) {\n this.insertJsdocCommentBefore(sourceFile, updateJSDocHost(node), factory.createJSDocComment(this.createJSDocText(sourceFile, node), factory.createNodeArray(tags)));\n }\n addJSDocTags(sourceFile, parent2, newTags) {\n const oldTags = flatMapToMutable(parent2.jsDoc, (j) => j.tags);\n const unmergedNewTags = newTags.filter(\n (newTag) => !oldTags.some((tag, i) => {\n const merged = tryMergeJsdocTags(tag, newTag);\n if (merged) oldTags[i] = merged;\n return !!merged;\n })\n );\n this.replaceJSDocComment(sourceFile, parent2, [...oldTags, ...unmergedNewTags]);\n }\n filterJSDocTags(sourceFile, parent2, predicate) {\n this.replaceJSDocComment(sourceFile, parent2, filter(flatMapToMutable(parent2.jsDoc, (j) => j.tags), predicate));\n }\n replaceRangeWithText(sourceFile, range, text) {\n this.changes.push({ kind: 3 /* Text */, sourceFile, range, text });\n }\n insertText(sourceFile, pos, text) {\n this.replaceRangeWithText(sourceFile, createRange(pos), text);\n }\n /** Prefer this over replacing a node with another that has a type annotation, as it avoids reformatting the other parts of the node. */\n tryInsertTypeAnnotation(sourceFile, node, type) {\n let endNode2;\n if (isFunctionLike(node)) {\n endNode2 = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile);\n if (!endNode2) {\n if (!isArrowFunction(node)) return false;\n endNode2 = first(node.parameters);\n }\n } else {\n endNode2 = (node.kind === 261 /* VariableDeclaration */ ? node.exclamationToken : node.questionToken) ?? node.name;\n }\n this.insertNodeAt(sourceFile, endNode2.end, type, { prefix: \": \" });\n return true;\n }\n tryInsertThisTypeAnnotation(sourceFile, node, type) {\n const start = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile).getStart(sourceFile) + 1;\n const suffix = node.parameters.length ? \", \" : \"\";\n this.insertNodeAt(sourceFile, start, type, { prefix: \"this: \", suffix });\n }\n insertTypeParameters(sourceFile, node, typeParameters) {\n const start = (findChildOfKind(node, 21 /* OpenParenToken */, sourceFile) || first(node.parameters)).getStart(sourceFile);\n this.insertNodesAt(sourceFile, start, typeParameters, { prefix: \"<\", suffix: \">\", joiner: \", \" });\n }\n getOptionsForInsertNodeBefore(before, inserted, blankLineBetween) {\n if (isStatement(before) || isClassElement(before)) {\n return { suffix: blankLineBetween ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter };\n } else if (isVariableDeclaration(before)) {\n return { suffix: \", \" };\n } else if (isParameter(before)) {\n return isParameter(inserted) ? { suffix: \", \" } : {};\n } else if (isStringLiteral(before) && isImportDeclaration(before.parent) || isNamedImports(before)) {\n return { suffix: \", \" };\n } else if (isImportSpecifier(before)) {\n return { suffix: \",\" + (blankLineBetween ? this.newLineCharacter : \" \") };\n }\n return Debug.failBadSyntaxKind(before);\n }\n insertNodeAtConstructorStart(sourceFile, ctr, newStatement) {\n const firstStatement = firstOrUndefined(ctr.body.statements);\n if (!firstStatement || !ctr.body.multiLine) {\n this.replaceConstructorBody(sourceFile, ctr, [newStatement, ...ctr.body.statements]);\n } else {\n this.insertNodeBefore(sourceFile, firstStatement, newStatement);\n }\n }\n insertNodeAtConstructorStartAfterSuperCall(sourceFile, ctr, newStatement) {\n const superCallStatement = find(ctr.body.statements, (stmt) => isExpressionStatement(stmt) && isSuperCall(stmt.expression));\n if (!superCallStatement || !ctr.body.multiLine) {\n this.replaceConstructorBody(sourceFile, ctr, [...ctr.body.statements, newStatement]);\n } else {\n this.insertNodeAfter(sourceFile, superCallStatement, newStatement);\n }\n }\n insertNodeAtConstructorEnd(sourceFile, ctr, newStatement) {\n const lastStatement = lastOrUndefined(ctr.body.statements);\n if (!lastStatement || !ctr.body.multiLine) {\n this.replaceConstructorBody(sourceFile, ctr, [...ctr.body.statements, newStatement]);\n } else {\n this.insertNodeAfter(sourceFile, lastStatement, newStatement);\n }\n }\n replaceConstructorBody(sourceFile, ctr, statements) {\n this.replaceNode(sourceFile, ctr.body, factory.createBlock(\n statements,\n /*multiLine*/\n true\n ));\n }\n insertNodeAtEndOfScope(sourceFile, scope, newNode) {\n const pos = getAdjustedStartPosition(sourceFile, scope.getLastToken(), {});\n this.insertNodeAt(sourceFile, pos, newNode, {\n prefix: isLineBreak(sourceFile.text.charCodeAt(scope.getLastToken().pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,\n suffix: this.newLineCharacter\n });\n }\n insertMemberAtStart(sourceFile, node, newElement) {\n this.insertNodeAtStartWorker(sourceFile, node, newElement);\n }\n insertNodeAtObjectStart(sourceFile, obj, newElement) {\n this.insertNodeAtStartWorker(sourceFile, obj, newElement);\n }\n insertNodeAtStartWorker(sourceFile, node, newElement) {\n const indentation = this.guessIndentationFromExistingMembers(sourceFile, node) ?? this.computeIndentationForNewMember(sourceFile, node);\n this.insertNodeAt(sourceFile, getMembersOrProperties(node).pos, newElement, this.getInsertNodeAtStartInsertOptions(sourceFile, node, indentation));\n }\n /**\n * Tries to guess the indentation from the existing members of a class/interface/object. All members must be on\n * new lines and must share the same indentation.\n */\n guessIndentationFromExistingMembers(sourceFile, node) {\n let indentation;\n let lastRange = node;\n for (const member of getMembersOrProperties(node)) {\n if (rangeStartPositionsAreOnSameLine(lastRange, member, sourceFile)) {\n return void 0;\n }\n const memberStart = member.getStart(sourceFile);\n const memberIndentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(memberStart, sourceFile), memberStart, sourceFile, this.formatContext.options);\n if (indentation === void 0) {\n indentation = memberIndentation;\n } else if (memberIndentation !== indentation) {\n return void 0;\n }\n lastRange = member;\n }\n return indentation;\n }\n computeIndentationForNewMember(sourceFile, node) {\n const nodeStart = node.getStart(sourceFile);\n return ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(nodeStart, sourceFile), nodeStart, sourceFile, this.formatContext.options) + (this.formatContext.options.indentSize ?? 4);\n }\n getInsertNodeAtStartInsertOptions(sourceFile, node, indentation) {\n const members = getMembersOrProperties(node);\n const isEmpty = members.length === 0;\n const isFirstInsertion = !this.classesWithNodesInsertedAtStart.has(getNodeId(node));\n if (isFirstInsertion) {\n this.classesWithNodesInsertedAtStart.set(getNodeId(node), { node, sourceFile });\n }\n const insertTrailingComma = isObjectLiteralExpression(node) && (!isJsonSourceFile(sourceFile) || !isEmpty);\n const insertLeadingComma = isObjectLiteralExpression(node) && isJsonSourceFile(sourceFile) && isEmpty && !isFirstInsertion;\n return {\n indentation,\n prefix: (insertLeadingComma ? \",\" : \"\") + this.newLineCharacter,\n suffix: insertTrailingComma ? \",\" : isInterfaceDeclaration(node) && isEmpty ? \";\" : \"\"\n };\n }\n insertNodeAfterComma(sourceFile, after, newNode) {\n const endPosition = this.insertNodeAfterWorker(sourceFile, this.nextCommaToken(sourceFile, after) || after, newNode);\n this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after));\n }\n insertNodeAfter(sourceFile, after, newNode) {\n const endPosition = this.insertNodeAfterWorker(sourceFile, after, newNode);\n this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after));\n }\n insertNodeAtEndOfList(sourceFile, list, newNode) {\n this.insertNodeAt(sourceFile, list.end, newNode, { prefix: \", \" });\n }\n insertNodesAfter(sourceFile, after, newNodes) {\n const endPosition = this.insertNodeAfterWorker(sourceFile, after, first(newNodes));\n this.insertNodesAt(sourceFile, endPosition, newNodes, this.getInsertNodeAfterOptions(sourceFile, after));\n }\n insertNodeAfterWorker(sourceFile, after, newNode) {\n if (needSemicolonBetween(after, newNode)) {\n if (sourceFile.text.charCodeAt(after.end - 1) !== 59 /* semicolon */) {\n this.replaceRange(sourceFile, createRange(after.end), factory.createToken(27 /* SemicolonToken */));\n }\n }\n const endPosition = getAdjustedEndPosition(sourceFile, after, {});\n return endPosition;\n }\n getInsertNodeAfterOptions(sourceFile, after) {\n const options = this.getInsertNodeAfterOptionsWorker(after);\n return {\n ...options,\n prefix: after.end === sourceFile.end && isStatement(after) ? options.prefix ? `\n${options.prefix}` : \"\\n\" : options.prefix\n };\n }\n getInsertNodeAfterOptionsWorker(node) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n case 268 /* ModuleDeclaration */:\n return { prefix: this.newLineCharacter, suffix: this.newLineCharacter };\n case 261 /* VariableDeclaration */:\n case 11 /* StringLiteral */:\n case 80 /* Identifier */:\n return { prefix: \", \" };\n case 304 /* PropertyAssignment */:\n return { suffix: \",\" + this.newLineCharacter };\n case 95 /* ExportKeyword */:\n return { prefix: \" \" };\n case 170 /* Parameter */:\n return {};\n default:\n Debug.assert(isStatement(node) || isClassOrTypeElement(node));\n return { suffix: this.newLineCharacter };\n }\n }\n insertName(sourceFile, node, name) {\n Debug.assert(!node.name);\n if (node.kind === 220 /* ArrowFunction */) {\n const arrow = findChildOfKind(node, 39 /* EqualsGreaterThanToken */, sourceFile);\n const lparen = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n if (lparen) {\n this.insertNodesAt(sourceFile, lparen.getStart(sourceFile), [factory.createToken(100 /* FunctionKeyword */), factory.createIdentifier(name)], { joiner: \" \" });\n deleteNode(this, sourceFile, arrow);\n } else {\n this.insertText(sourceFile, first(node.parameters).getStart(sourceFile), `function ${name}(`);\n this.replaceRange(sourceFile, arrow, factory.createToken(22 /* CloseParenToken */));\n }\n if (node.body.kind !== 242 /* Block */) {\n this.insertNodesAt(sourceFile, node.body.getStart(sourceFile), [factory.createToken(19 /* OpenBraceToken */), factory.createToken(107 /* ReturnKeyword */)], { joiner: \" \", suffix: \" \" });\n this.insertNodesAt(sourceFile, node.body.end, [factory.createToken(27 /* SemicolonToken */), factory.createToken(20 /* CloseBraceToken */)], { joiner: \" \" });\n }\n } else {\n const pos = findChildOfKind(node, node.kind === 219 /* FunctionExpression */ ? 100 /* FunctionKeyword */ : 86 /* ClassKeyword */, sourceFile).end;\n this.insertNodeAt(sourceFile, pos, factory.createIdentifier(name), { prefix: \" \" });\n }\n }\n insertExportModifier(sourceFile, node) {\n this.insertText(sourceFile, node.getStart(sourceFile), \"export \");\n }\n insertImportSpecifierAtIndex(sourceFile, importSpecifier, namedImports, index) {\n const prevSpecifier = namedImports.elements[index - 1];\n if (prevSpecifier) {\n this.insertNodeInListAfter(sourceFile, prevSpecifier, importSpecifier);\n } else {\n this.insertNodeBefore(\n sourceFile,\n namedImports.elements[0],\n importSpecifier,\n !positionsAreOnSameLine(namedImports.elements[0].getStart(), namedImports.parent.parent.getStart(), sourceFile)\n );\n }\n }\n /**\n * This function should be used to insert nodes in lists when nodes don't carry separators as the part of the node range,\n * i.e. arguments in arguments lists, parameters in parameter lists etc.\n * Note that separators are part of the node in statements and class elements.\n */\n insertNodeInListAfter(sourceFile, after, newNode, containingList = ts_formatting_exports.SmartIndenter.getContainingList(after, sourceFile)) {\n if (!containingList) {\n Debug.fail(\"node is not a list element\");\n return;\n }\n const index = indexOfNode(containingList, after);\n if (index < 0) {\n return;\n }\n const end = after.getEnd();\n if (index !== containingList.length - 1) {\n const nextToken = getTokenAtPosition(sourceFile, after.end);\n if (nextToken && isSeparator(after, nextToken)) {\n const nextNode = containingList[index + 1];\n const startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart());\n const suffix = `${tokenToString(nextToken.kind)}${sourceFile.text.substring(nextToken.end, startPos)}`;\n this.insertNodesAt(sourceFile, startPos, [newNode], { suffix });\n }\n } else {\n const afterStart = after.getStart(sourceFile);\n const afterStartLinePosition = getLineStartPositionForPosition(afterStart, sourceFile);\n let separator;\n let multilineList = false;\n if (containingList.length === 1) {\n separator = 28 /* CommaToken */;\n } else {\n const tokenBeforeInsertPosition = findPrecedingToken(after.pos, sourceFile);\n separator = isSeparator(after, tokenBeforeInsertPosition) ? tokenBeforeInsertPosition.kind : 28 /* CommaToken */;\n const afterMinusOneStartLinePosition = getLineStartPositionForPosition(containingList[index - 1].getStart(sourceFile), sourceFile);\n multilineList = afterMinusOneStartLinePosition !== afterStartLinePosition;\n }\n if (hasCommentsBeforeLineBreak(sourceFile.text, after.end) || !positionsAreOnSameLine(containingList.pos, containingList.end, sourceFile)) {\n multilineList = true;\n }\n if (multilineList) {\n this.replaceRange(sourceFile, createRange(end), factory.createToken(separator));\n const indentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(afterStartLinePosition, afterStart, sourceFile, this.formatContext.options);\n let insertPos = skipTrivia(\n sourceFile.text,\n end,\n /*stopAfterLineBreak*/\n true,\n /*stopAtComments*/\n false\n );\n while (insertPos !== end && isLineBreak(sourceFile.text.charCodeAt(insertPos - 1))) {\n insertPos--;\n }\n this.replaceRange(sourceFile, createRange(insertPos), newNode, { indentation, prefix: this.newLineCharacter });\n } else {\n this.replaceRange(sourceFile, createRange(end), newNode, { prefix: `${tokenToString(separator)} ` });\n }\n }\n }\n parenthesizeExpression(sourceFile, expression) {\n this.replaceRange(sourceFile, rangeOfNode(expression), factory.createParenthesizedExpression(expression));\n }\n finishClassesWithNodesInsertedAtStart() {\n this.classesWithNodesInsertedAtStart.forEach(({ node, sourceFile }) => {\n const [openBraceEnd, closeBraceEnd] = getClassOrObjectBraceEnds(node, sourceFile);\n if (openBraceEnd !== void 0 && closeBraceEnd !== void 0) {\n const isEmpty = getMembersOrProperties(node).length === 0;\n const isSingleLine = positionsAreOnSameLine(openBraceEnd, closeBraceEnd, sourceFile);\n if (isEmpty && isSingleLine && openBraceEnd !== closeBraceEnd - 1) {\n this.deleteRange(sourceFile, createRange(openBraceEnd, closeBraceEnd - 1));\n }\n if (isSingleLine) {\n this.insertText(sourceFile, closeBraceEnd - 1, this.newLineCharacter);\n }\n }\n });\n }\n finishDeleteDeclarations() {\n const deletedNodesInLists = /* @__PURE__ */ new Set();\n for (const { sourceFile, node } of this.deletedNodes) {\n if (!this.deletedNodes.some((d) => d.sourceFile === sourceFile && rangeContainsRangeExclusive(d.node, node))) {\n if (isArray(node)) {\n this.deleteRange(sourceFile, rangeOfTypeParameters(sourceFile, node));\n } else {\n deleteDeclaration.deleteDeclaration(this, deletedNodesInLists, sourceFile, node);\n }\n }\n }\n deletedNodesInLists.forEach((node) => {\n const sourceFile = node.getSourceFile();\n const list = ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile);\n if (node !== last(list)) return;\n const lastNonDeletedIndex = findLastIndex(list, (n) => !deletedNodesInLists.has(n), list.length - 2);\n if (lastNonDeletedIndex !== -1) {\n this.deleteRange(sourceFile, { pos: list[lastNonDeletedIndex].end, end: startPositionToDeleteNodeInList(sourceFile, list[lastNonDeletedIndex + 1]) });\n }\n });\n }\n /**\n * Note: after calling this, the TextChanges object must be discarded!\n * @param validate only for tests\n * The reason we must validate as part of this method is that `getNonFormattedText` changes the node's positions,\n * so we can only call this once and can't get the non-formatted text separately.\n */\n getChanges(validate) {\n this.finishDeleteDeclarations();\n this.finishClassesWithNodesInsertedAtStart();\n const changes = changesToText.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, validate);\n if (this.newFileChanges) {\n this.newFileChanges.forEach((insertions, fileName) => {\n changes.push(changesToText.newFileChanges(fileName, insertions, this.newLineCharacter, this.formatContext));\n });\n }\n return changes;\n }\n createNewFile(oldFile, fileName, statements) {\n this.insertStatementsInNewFile(fileName, statements, oldFile);\n }\n};\nfunction updateJSDocHost(parent2) {\n if (parent2.kind !== 220 /* ArrowFunction */) {\n return parent2;\n }\n const jsDocNode = parent2.parent.kind === 173 /* PropertyDeclaration */ ? parent2.parent : parent2.parent.parent;\n jsDocNode.jsDoc = parent2.jsDoc;\n return jsDocNode;\n}\nfunction tryMergeJsdocTags(oldTag, newTag) {\n if (oldTag.kind !== newTag.kind) {\n return void 0;\n }\n switch (oldTag.kind) {\n case 342 /* JSDocParameterTag */: {\n const oldParam = oldTag;\n const newParam = newTag;\n return isIdentifier(oldParam.name) && isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText ? factory.createJSDocParameterTag(\n /*tagName*/\n void 0,\n newParam.name,\n /*isBracketed*/\n false,\n newParam.typeExpression,\n newParam.isNameFirst,\n oldParam.comment\n ) : void 0;\n }\n case 343 /* JSDocReturnTag */:\n return factory.createJSDocReturnTag(\n /*tagName*/\n void 0,\n newTag.typeExpression,\n oldTag.comment\n );\n case 345 /* JSDocTypeTag */:\n return factory.createJSDocTypeTag(\n /*tagName*/\n void 0,\n newTag.typeExpression,\n oldTag.comment\n );\n }\n}\nfunction startPositionToDeleteNodeInList(sourceFile, node) {\n return skipTrivia(\n sourceFile.text,\n getAdjustedStartPosition(sourceFile, node, { leadingTriviaOption: 1 /* IncludeAll */ }),\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n );\n}\nfunction endPositionToDeleteNodeInList(sourceFile, node, prevNode, nextNode) {\n const end = startPositionToDeleteNodeInList(sourceFile, nextNode);\n if (prevNode === void 0 || positionsAreOnSameLine(getAdjustedEndPosition(sourceFile, node, {}), end, sourceFile)) {\n return end;\n }\n const token = findPrecedingToken(nextNode.getStart(sourceFile), sourceFile);\n if (isSeparator(node, token)) {\n const prevToken = findPrecedingToken(node.getStart(sourceFile), sourceFile);\n if (isSeparator(prevNode, prevToken)) {\n const pos = skipTrivia(\n sourceFile.text,\n token.getEnd(),\n /*stopAfterLineBreak*/\n true,\n /*stopAtComments*/\n true\n );\n if (positionsAreOnSameLine(prevToken.getStart(sourceFile), token.getStart(sourceFile), sourceFile)) {\n return isLineBreak(sourceFile.text.charCodeAt(pos - 1)) ? pos - 1 : pos;\n }\n if (isLineBreak(sourceFile.text.charCodeAt(pos))) {\n return pos;\n }\n }\n }\n return end;\n}\nfunction getClassOrObjectBraceEnds(cls, sourceFile) {\n const open = findChildOfKind(cls, 19 /* OpenBraceToken */, sourceFile);\n const close = findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile);\n return [open == null ? void 0 : open.end, close == null ? void 0 : close.end];\n}\nfunction getMembersOrProperties(node) {\n return isObjectLiteralExpression(node) ? node.properties : node.members;\n}\nvar changesToText;\n((changesToText2) => {\n function getTextChangesFromChanges(changes, newLineCharacter, formatContext, validate) {\n return mapDefined(group(changes, (c) => c.sourceFile.path), (changesInFile) => {\n const sourceFile = changesInFile[0].sourceFile;\n const normalized = toSorted(changesInFile, (a, b) => a.range.pos - b.range.pos || a.range.end - b.range.end);\n for (let i = 0; i < normalized.length - 1; i++) {\n Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, \"Changes overlap\", () => `${JSON.stringify(normalized[i].range)} and ${JSON.stringify(normalized[i + 1].range)}`);\n }\n const textChanges2 = mapDefined(normalized, (c) => {\n const span = createTextSpanFromRange(c.range);\n const targetSourceFile = c.kind === 1 /* ReplaceWithSingleNode */ ? getSourceFileOfNode(getOriginalNode(c.node)) ?? c.sourceFile : c.kind === 2 /* ReplaceWithMultipleNodes */ ? getSourceFileOfNode(getOriginalNode(c.nodes[0])) ?? c.sourceFile : c.sourceFile;\n const newText = computeNewText(c, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate);\n if (span.length === newText.length && stringContainsAt(targetSourceFile.text, newText, span.start)) {\n return void 0;\n }\n return createTextChange(span, newText);\n });\n return textChanges2.length > 0 ? { fileName: sourceFile.fileName, textChanges: textChanges2 } : void 0;\n });\n }\n changesToText2.getTextChangesFromChanges = getTextChangesFromChanges;\n function newFileChanges(fileName, insertions, newLineCharacter, formatContext) {\n const text = newFileChangesWorker(getScriptKindFromFileName(fileName), insertions, newLineCharacter, formatContext);\n return { fileName, textChanges: [createTextChange(createTextSpan(0, 0), text)], isNewFile: true };\n }\n changesToText2.newFileChanges = newFileChanges;\n function newFileChangesWorker(scriptKind, insertions, newLineCharacter, formatContext) {\n const nonFormattedText = flatMap(insertions, (insertion) => insertion.statements.map((s) => s === 4 /* NewLineTrivia */ ? \"\" : getNonformattedText(s, insertion.oldFile, newLineCharacter).text)).join(newLineCharacter);\n const sourceFile = createSourceFile(\n \"any file name\",\n nonFormattedText,\n { languageVersion: 99 /* ESNext */, jsDocParsingMode: 1 /* ParseNone */ },\n /*setParentNodes*/\n true,\n scriptKind\n );\n const changes = ts_formatting_exports.formatDocument(sourceFile, formatContext);\n return applyChanges(nonFormattedText, changes) + newLineCharacter;\n }\n changesToText2.newFileChangesWorker = newFileChangesWorker;\n function computeNewText(change, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate) {\n var _a;\n if (change.kind === 0 /* Remove */) {\n return \"\";\n }\n if (change.kind === 3 /* Text */) {\n return change.text;\n }\n const { options = {}, range: { pos } } = change;\n const format = (n) => getFormattedTextOfNode(n, targetSourceFile, sourceFile, pos, options, newLineCharacter, formatContext, validate);\n const text = change.kind === 2 /* ReplaceWithMultipleNodes */ ? change.nodes.map((n) => removeSuffix(format(n), newLineCharacter)).join(((_a = change.options) == null ? void 0 : _a.joiner) || newLineCharacter) : format(change.node);\n const noIndent = options.indentation !== void 0 || getLineStartPositionForPosition(pos, targetSourceFile) === pos ? text : text.replace(/^\\s+/, \"\");\n return (options.prefix || \"\") + noIndent + (!options.suffix || endsWith(noIndent, options.suffix) ? \"\" : options.suffix);\n }\n function getFormattedTextOfNode(nodeIn, targetSourceFile, sourceFile, pos, { indentation, prefix, delta }, newLineCharacter, formatContext, validate) {\n const { node, text } = getNonformattedText(nodeIn, targetSourceFile, newLineCharacter);\n if (validate) validate(node, text);\n const formatOptions = getFormatCodeSettingsForWriting(formatContext, targetSourceFile);\n const initialIndentation = indentation !== void 0 ? indentation : ts_formatting_exports.SmartIndenter.getIndentation(pos, sourceFile, formatOptions, prefix === newLineCharacter || getLineStartPositionForPosition(pos, targetSourceFile) === pos);\n if (delta === void 0) {\n delta = ts_formatting_exports.SmartIndenter.shouldIndentChildNode(formatOptions, nodeIn) ? formatOptions.indentSize || 0 : 0;\n }\n const file = {\n text,\n getLineAndCharacterOfPosition(pos2) {\n return getLineAndCharacterOfPosition(this, pos2);\n }\n };\n const changes = ts_formatting_exports.formatNodeGivenIndentation(node, file, targetSourceFile.languageVariant, initialIndentation, delta, { ...formatContext, options: formatOptions });\n return applyChanges(text, changes);\n }\n function getNonformattedText(node, sourceFile, newLineCharacter) {\n const writer = createWriter(newLineCharacter);\n const newLine = getNewLineKind(newLineCharacter);\n createPrinter({\n newLine,\n neverAsciiEscape: true,\n preserveSourceNewlines: true,\n terminateUnterminatedLiterals: true\n }, writer).writeNode(4 /* Unspecified */, node, sourceFile, writer);\n return { text: writer.getText(), node: assignPositionsToNode(node) };\n }\n changesToText2.getNonformattedText = getNonformattedText;\n})(changesToText || (changesToText = {}));\nfunction applyChanges(text, changes) {\n for (let i = changes.length - 1; i >= 0; i--) {\n const { span, newText } = changes[i];\n text = `${text.substring(0, span.start)}${newText}${text.substring(textSpanEnd(span))}`;\n }\n return text;\n}\nfunction isTrivia2(s) {\n return skipTrivia(s, 0) === s.length;\n}\nvar textChangesTransformationContext = {\n ...nullTransformationContext,\n factory: createNodeFactory(\n nullTransformationContext.factory.flags | 1 /* NoParenthesizerRules */,\n nullTransformationContext.factory.baseFactory\n )\n};\nfunction assignPositionsToNode(node) {\n const visited = visitEachChild(node, assignPositionsToNode, textChangesTransformationContext, assignPositionsToNodeArray, assignPositionsToNode);\n const newNode = nodeIsSynthesized(visited) ? visited : Object.create(visited);\n setTextRangePosEnd(newNode, getPos2(node), getEnd(node));\n return newNode;\n}\nfunction assignPositionsToNodeArray(nodes, visitor, test, start, count) {\n const visited = visitNodes2(nodes, visitor, test, start, count);\n if (!visited) {\n return visited;\n }\n Debug.assert(nodes);\n const nodeArray = visited === nodes ? factory.createNodeArray(visited.slice(0)) : visited;\n setTextRangePosEnd(nodeArray, getPos2(nodes), getEnd(nodes));\n return nodeArray;\n}\nfunction createWriter(newLine) {\n let lastNonTriviaPosition = 0;\n const writer = createTextWriter(newLine);\n const onBeforeEmitNode = (node) => {\n if (node) {\n setPos(node, lastNonTriviaPosition);\n }\n };\n const onAfterEmitNode = (node) => {\n if (node) {\n setEnd(node, lastNonTriviaPosition);\n }\n };\n const onBeforeEmitNodeArray = (nodes) => {\n if (nodes) {\n setPos(nodes, lastNonTriviaPosition);\n }\n };\n const onAfterEmitNodeArray = (nodes) => {\n if (nodes) {\n setEnd(nodes, lastNonTriviaPosition);\n }\n };\n const onBeforeEmitToken = (node) => {\n if (node) {\n setPos(node, lastNonTriviaPosition);\n }\n };\n const onAfterEmitToken = (node) => {\n if (node) {\n setEnd(node, lastNonTriviaPosition);\n }\n };\n function setLastNonTriviaPosition(s, force) {\n if (force || !isTrivia2(s)) {\n lastNonTriviaPosition = writer.getTextPos();\n let i = 0;\n while (isWhiteSpaceLike(s.charCodeAt(s.length - i - 1))) {\n i++;\n }\n lastNonTriviaPosition -= i;\n }\n }\n function write(s) {\n writer.write(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeComment(s) {\n writer.writeComment(s);\n }\n function writeKeyword(s) {\n writer.writeKeyword(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeOperator(s) {\n writer.writeOperator(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writePunctuation(s) {\n writer.writePunctuation(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeTrailingSemicolon(s) {\n writer.writeTrailingSemicolon(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeParameter(s) {\n writer.writeParameter(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeProperty(s) {\n writer.writeProperty(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeSpace(s) {\n writer.writeSpace(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeStringLiteral(s) {\n writer.writeStringLiteral(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeSymbol(s, sym) {\n writer.writeSymbol(s, sym);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeLine(force) {\n writer.writeLine(force);\n }\n function increaseIndent() {\n writer.increaseIndent();\n }\n function decreaseIndent() {\n writer.decreaseIndent();\n }\n function getText() {\n return writer.getText();\n }\n function rawWrite(s) {\n writer.rawWrite(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n false\n );\n }\n function writeLiteral(s) {\n writer.writeLiteral(s);\n setLastNonTriviaPosition(\n s,\n /*force*/\n true\n );\n }\n function getTextPos() {\n return writer.getTextPos();\n }\n function getLine() {\n return writer.getLine();\n }\n function getColumn() {\n return writer.getColumn();\n }\n function getIndent() {\n return writer.getIndent();\n }\n function isAtStartOfLine() {\n return writer.isAtStartOfLine();\n }\n function clear2() {\n writer.clear();\n lastNonTriviaPosition = 0;\n }\n return {\n onBeforeEmitNode,\n onAfterEmitNode,\n onBeforeEmitNodeArray,\n onAfterEmitNodeArray,\n onBeforeEmitToken,\n onAfterEmitToken,\n write,\n writeComment,\n writeKeyword,\n writeOperator,\n writePunctuation,\n writeTrailingSemicolon,\n writeParameter,\n writeProperty,\n writeSpace,\n writeStringLiteral,\n writeSymbol,\n writeLine,\n increaseIndent,\n decreaseIndent,\n getText,\n rawWrite,\n writeLiteral,\n getTextPos,\n getLine,\n getColumn,\n getIndent,\n isAtStartOfLine,\n hasTrailingComment: () => writer.hasTrailingComment(),\n hasTrailingWhitespace: () => writer.hasTrailingWhitespace(),\n clear: clear2\n };\n}\nfunction getInsertionPositionAtSourceFileTop(sourceFile) {\n let lastPrologue;\n for (const node of sourceFile.statements) {\n if (isPrologueDirective(node)) {\n lastPrologue = node;\n } else {\n break;\n }\n }\n let position = 0;\n const text = sourceFile.text;\n if (lastPrologue) {\n position = lastPrologue.end;\n advancePastLineBreak();\n return position;\n }\n const shebang = getShebang(text);\n if (shebang !== void 0) {\n position = shebang.length;\n advancePastLineBreak();\n }\n const ranges = getLeadingCommentRanges(text, position);\n if (!ranges) return position;\n let lastComment;\n let firstNodeLine;\n for (const range of ranges) {\n if (range.kind === 3 /* MultiLineCommentTrivia */) {\n if (isPinnedComment(text, range.pos)) {\n lastComment = { range, pinnedOrTripleSlash: true };\n continue;\n }\n } else if (isRecognizedTripleSlashComment(text, range.pos, range.end)) {\n lastComment = { range, pinnedOrTripleSlash: true };\n continue;\n }\n if (lastComment) {\n if (lastComment.pinnedOrTripleSlash) break;\n const commentLine = sourceFile.getLineAndCharacterOfPosition(range.pos).line;\n const lastCommentEndLine = sourceFile.getLineAndCharacterOfPosition(lastComment.range.end).line;\n if (commentLine >= lastCommentEndLine + 2) break;\n }\n if (sourceFile.statements.length) {\n if (firstNodeLine === void 0) firstNodeLine = sourceFile.getLineAndCharacterOfPosition(sourceFile.statements[0].getStart()).line;\n const commentEndLine = sourceFile.getLineAndCharacterOfPosition(range.end).line;\n if (firstNodeLine < commentEndLine + 2) break;\n }\n lastComment = { range, pinnedOrTripleSlash: false };\n }\n if (lastComment) {\n position = lastComment.range.end;\n advancePastLineBreak();\n }\n return position;\n function advancePastLineBreak() {\n if (position < text.length) {\n const charCode = text.charCodeAt(position);\n if (isLineBreak(charCode)) {\n position++;\n if (position < text.length && charCode === 13 /* carriageReturn */ && text.charCodeAt(position) === 10 /* lineFeed */) {\n position++;\n }\n }\n }\n }\n}\nfunction isValidLocationToAddComment(sourceFile, position) {\n return !isInComment(sourceFile, position) && !isInString(sourceFile, position) && !isInTemplateString(sourceFile, position) && !isInJSXText(sourceFile, position);\n}\nfunction needSemicolonBetween(a, b) {\n return (isPropertySignature(a) || isPropertyDeclaration(a)) && isClassOrTypeElement(b) && b.name.kind === 168 /* ComputedPropertyName */ || isStatementButNotDeclaration(a) && isStatementButNotDeclaration(b);\n}\nvar deleteDeclaration;\n((_deleteDeclaration) => {\n function deleteDeclaration2(changes, deletedNodesInLists, sourceFile, node) {\n switch (node.kind) {\n case 170 /* Parameter */: {\n const oldFunction = node.parent;\n if (isArrowFunction(oldFunction) && oldFunction.parameters.length === 1 && !findChildOfKind(oldFunction, 21 /* OpenParenToken */, sourceFile)) {\n changes.replaceNodeWithText(sourceFile, node, \"()\");\n } else {\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n }\n break;\n }\n case 273 /* ImportDeclaration */:\n case 272 /* ImportEqualsDeclaration */:\n const isFirstImport = sourceFile.imports.length && node === first(sourceFile.imports).parent || node === find(sourceFile.statements, isAnyImportSyntax);\n deleteNode(changes, sourceFile, node, {\n leadingTriviaOption: isFirstImport ? 0 /* Exclude */ : hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */\n });\n break;\n case 209 /* BindingElement */:\n const pattern = node.parent;\n const preserveComma = pattern.kind === 208 /* ArrayBindingPattern */ && node !== last(pattern.elements);\n if (preserveComma) {\n deleteNode(changes, sourceFile, node);\n } else {\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n }\n break;\n case 261 /* VariableDeclaration */:\n deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node);\n break;\n case 169 /* TypeParameter */:\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n break;\n case 277 /* ImportSpecifier */:\n const namedImports = node.parent;\n if (namedImports.elements.length === 1) {\n deleteImportBinding(changes, sourceFile, namedImports);\n } else {\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n }\n break;\n case 275 /* NamespaceImport */:\n deleteImportBinding(changes, sourceFile, node);\n break;\n case 27 /* SemicolonToken */:\n deleteNode(changes, sourceFile, node, { trailingTriviaOption: 0 /* Exclude */ });\n break;\n case 100 /* FunctionKeyword */:\n deleteNode(changes, sourceFile, node, { leadingTriviaOption: 0 /* Exclude */ });\n break;\n case 264 /* ClassDeclaration */:\n case 263 /* FunctionDeclaration */:\n deleteNode(changes, sourceFile, node, { leadingTriviaOption: hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */ });\n break;\n default:\n if (!node.parent) {\n deleteNode(changes, sourceFile, node);\n } else if (isImportClause(node.parent) && node.parent.name === node) {\n deleteDefaultImport(changes, sourceFile, node.parent);\n } else if (isCallExpression(node.parent) && contains(node.parent.arguments, node)) {\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n } else {\n deleteNode(changes, sourceFile, node);\n }\n }\n }\n _deleteDeclaration.deleteDeclaration = deleteDeclaration2;\n function deleteDefaultImport(changes, sourceFile, importClause) {\n if (!importClause.namedBindings) {\n deleteNode(changes, sourceFile, importClause.parent);\n } else {\n const start = importClause.name.getStart(sourceFile);\n const nextToken = getTokenAtPosition(sourceFile, importClause.name.end);\n if (nextToken && nextToken.kind === 28 /* CommaToken */) {\n const end = skipTrivia(\n sourceFile.text,\n nextToken.end,\n /*stopAfterLineBreak*/\n false,\n /*stopAtComments*/\n true\n );\n changes.deleteRange(sourceFile, { pos: start, end });\n } else {\n deleteNode(changes, sourceFile, importClause.name);\n }\n }\n }\n function deleteImportBinding(changes, sourceFile, node) {\n if (node.parent.name) {\n const previousToken = Debug.checkDefined(getTokenAtPosition(sourceFile, node.pos - 1));\n changes.deleteRange(sourceFile, { pos: previousToken.getStart(sourceFile), end: node.end });\n } else {\n const importDecl = getAncestor(node, 273 /* ImportDeclaration */);\n deleteNode(changes, sourceFile, importDecl);\n }\n }\n function deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node) {\n const { parent: parent2 } = node;\n if (parent2.kind === 300 /* CatchClause */) {\n changes.deleteNodeRange(sourceFile, findChildOfKind(parent2, 21 /* OpenParenToken */, sourceFile), findChildOfKind(parent2, 22 /* CloseParenToken */, sourceFile));\n return;\n }\n if (parent2.declarations.length !== 1) {\n deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n return;\n }\n const gp = parent2.parent;\n switch (gp.kind) {\n case 251 /* ForOfStatement */:\n case 250 /* ForInStatement */:\n changes.replaceNode(sourceFile, node, factory.createObjectLiteralExpression());\n break;\n case 249 /* ForStatement */:\n deleteNode(changes, sourceFile, parent2);\n break;\n case 244 /* VariableStatement */:\n deleteNode(changes, sourceFile, gp, { leadingTriviaOption: hasJSDocNodes(gp) ? 2 /* JSDoc */ : 3 /* StartLine */ });\n break;\n default:\n Debug.assertNever(gp);\n }\n }\n})(deleteDeclaration || (deleteDeclaration = {}));\nfunction deleteNode(changes, sourceFile, node, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n const startPosition = getAdjustedStartPosition(sourceFile, node, options);\n const endPosition = getAdjustedEndPosition(sourceFile, node, options);\n changes.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n}\nfunction deleteNodeInList(changes, deletedNodesInLists, sourceFile, node) {\n const containingList = Debug.checkDefined(ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile));\n const index = indexOfNode(containingList, node);\n Debug.assert(index !== -1);\n if (containingList.length === 1) {\n deleteNode(changes, sourceFile, node);\n return;\n }\n Debug.assert(!deletedNodesInLists.has(node), \"Deleting a node twice\");\n deletedNodesInLists.add(node);\n changes.deleteRange(sourceFile, {\n pos: startPositionToDeleteNodeInList(sourceFile, node),\n end: index === containingList.length - 1 ? getAdjustedEndPosition(sourceFile, node, {}) : endPositionToDeleteNodeInList(sourceFile, node, containingList[index - 1], containingList[index + 1])\n });\n}\n\n// src/services/_namespaces/ts.formatting.ts\nvar ts_formatting_exports = {};\n__export(ts_formatting_exports, {\n FormattingContext: () => FormattingContext,\n FormattingRequestKind: () => FormattingRequestKind,\n RuleAction: () => RuleAction,\n RuleFlags: () => RuleFlags,\n SmartIndenter: () => SmartIndenter,\n anyContext: () => anyContext,\n createTextRangeWithKind: () => createTextRangeWithKind,\n formatDocument: () => formatDocument,\n formatNodeGivenIndentation: () => formatNodeGivenIndentation,\n formatOnClosingCurly: () => formatOnClosingCurly,\n formatOnEnter: () => formatOnEnter,\n formatOnOpeningCurly: () => formatOnOpeningCurly,\n formatOnSemicolon: () => formatOnSemicolon,\n formatSelection: () => formatSelection,\n getAllRules: () => getAllRules,\n getFormatContext: () => getFormatContext,\n getFormattingScanner: () => getFormattingScanner,\n getIndentationString: () => getIndentationString,\n getRangeOfEnclosingComment: () => getRangeOfEnclosingComment\n});\n\n// src/services/formatting/formattingContext.ts\nvar FormattingRequestKind = /* @__PURE__ */ ((FormattingRequestKind2) => {\n FormattingRequestKind2[FormattingRequestKind2[\"FormatDocument\"] = 0] = \"FormatDocument\";\n FormattingRequestKind2[FormattingRequestKind2[\"FormatSelection\"] = 1] = \"FormatSelection\";\n FormattingRequestKind2[FormattingRequestKind2[\"FormatOnEnter\"] = 2] = \"FormatOnEnter\";\n FormattingRequestKind2[FormattingRequestKind2[\"FormatOnSemicolon\"] = 3] = \"FormatOnSemicolon\";\n FormattingRequestKind2[FormattingRequestKind2[\"FormatOnOpeningCurlyBrace\"] = 4] = \"FormatOnOpeningCurlyBrace\";\n FormattingRequestKind2[FormattingRequestKind2[\"FormatOnClosingCurlyBrace\"] = 5] = \"FormatOnClosingCurlyBrace\";\n return FormattingRequestKind2;\n})(FormattingRequestKind || {});\nvar FormattingContext = class {\n constructor(sourceFile, formattingRequestKind, options) {\n this.sourceFile = sourceFile;\n this.formattingRequestKind = formattingRequestKind;\n this.options = options;\n }\n updateContext(currentRange, currentTokenParent, nextRange, nextTokenParent, commonParent) {\n this.currentTokenSpan = Debug.checkDefined(currentRange);\n this.currentTokenParent = Debug.checkDefined(currentTokenParent);\n this.nextTokenSpan = Debug.checkDefined(nextRange);\n this.nextTokenParent = Debug.checkDefined(nextTokenParent);\n this.contextNode = Debug.checkDefined(commonParent);\n this.contextNodeAllOnSameLine = void 0;\n this.nextNodeAllOnSameLine = void 0;\n this.tokensAreOnSameLine = void 0;\n this.contextNodeBlockIsOnOneLine = void 0;\n this.nextNodeBlockIsOnOneLine = void 0;\n }\n ContextNodeAllOnSameLine() {\n if (this.contextNodeAllOnSameLine === void 0) {\n this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode);\n }\n return this.contextNodeAllOnSameLine;\n }\n NextNodeAllOnSameLine() {\n if (this.nextNodeAllOnSameLine === void 0) {\n this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent);\n }\n return this.nextNodeAllOnSameLine;\n }\n TokensAreOnSameLine() {\n if (this.tokensAreOnSameLine === void 0) {\n const startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line;\n const endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;\n this.tokensAreOnSameLine = startLine === endLine;\n }\n return this.tokensAreOnSameLine;\n }\n ContextNodeBlockIsOnOneLine() {\n if (this.contextNodeBlockIsOnOneLine === void 0) {\n this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode);\n }\n return this.contextNodeBlockIsOnOneLine;\n }\n NextNodeBlockIsOnOneLine() {\n if (this.nextNodeBlockIsOnOneLine === void 0) {\n this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent);\n }\n return this.nextNodeBlockIsOnOneLine;\n }\n NodeIsOnOneLine(node) {\n const startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line;\n const endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line;\n return startLine === endLine;\n }\n BlockIsOnOneLine(node) {\n const openBrace = findChildOfKind(node, 19 /* OpenBraceToken */, this.sourceFile);\n const closeBrace = findChildOfKind(node, 20 /* CloseBraceToken */, this.sourceFile);\n if (openBrace && closeBrace) {\n const startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line;\n const endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line;\n return startLine === endLine;\n }\n return false;\n }\n};\n\n// src/services/formatting/formattingScanner.ts\nvar standardScanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false,\n 0 /* Standard */\n);\nvar jsxScanner = createScanner(\n 99 /* Latest */,\n /*skipTrivia*/\n false,\n 1 /* JSX */\n);\nfunction getFormattingScanner(text, languageVariant, startPos, endPos, cb) {\n const scanner2 = languageVariant === 1 /* JSX */ ? jsxScanner : standardScanner;\n scanner2.setText(text);\n scanner2.resetTokenState(startPos);\n let wasNewLine = true;\n let leadingTrivia;\n let trailingTrivia;\n let savedPos;\n let lastScanAction;\n let lastTokenInfo;\n const res = cb({\n advance,\n readTokenInfo,\n readEOFTokenRange,\n isOnToken,\n isOnEOF,\n getCurrentLeadingTrivia: () => leadingTrivia,\n lastTrailingTriviaWasNewLine: () => wasNewLine,\n skipToEndOf,\n skipToStartOf,\n getTokenFullStart: () => (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos) ?? scanner2.getTokenStart(),\n getStartPos: () => (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos) ?? scanner2.getTokenStart()\n });\n lastTokenInfo = void 0;\n scanner2.setText(void 0);\n return res;\n function advance() {\n lastTokenInfo = void 0;\n const isStarted = scanner2.getTokenFullStart() !== startPos;\n if (isStarted) {\n wasNewLine = !!trailingTrivia && last(trailingTrivia).kind === 4 /* NewLineTrivia */;\n } else {\n scanner2.scan();\n }\n leadingTrivia = void 0;\n trailingTrivia = void 0;\n let pos = scanner2.getTokenFullStart();\n while (pos < endPos) {\n const t = scanner2.getToken();\n if (!isTrivia(t)) {\n break;\n }\n scanner2.scan();\n const item = {\n pos,\n end: scanner2.getTokenFullStart(),\n kind: t\n };\n pos = scanner2.getTokenFullStart();\n leadingTrivia = append(leadingTrivia, item);\n }\n savedPos = scanner2.getTokenFullStart();\n }\n function shouldRescanGreaterThanToken(node) {\n switch (node.kind) {\n case 34 /* GreaterThanEqualsToken */:\n case 72 /* GreaterThanGreaterThanEqualsToken */:\n case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n case 49 /* GreaterThanGreaterThanToken */:\n return true;\n }\n return false;\n }\n function shouldRescanJsxIdentifier(node) {\n if (node.parent) {\n switch (node.parent.kind) {\n case 292 /* JsxAttribute */:\n case 287 /* JsxOpeningElement */:\n case 288 /* JsxClosingElement */:\n case 286 /* JsxSelfClosingElement */:\n return isKeyword(node.kind) || node.kind === 80 /* Identifier */;\n }\n }\n return false;\n }\n function shouldRescanJsxText(node) {\n return isJsxText(node) || isJsxElement(node) && (lastTokenInfo == null ? void 0 : lastTokenInfo.token.kind) === 12 /* JsxText */;\n }\n function shouldRescanSlashToken(container) {\n return container.kind === 14 /* RegularExpressionLiteral */;\n }\n function shouldRescanTemplateToken(container) {\n return container.kind === 17 /* TemplateMiddle */ || container.kind === 18 /* TemplateTail */;\n }\n function shouldRescanJsxAttributeValue(node) {\n return node.parent && isJsxAttribute(node.parent) && node.parent.initializer === node;\n }\n function startsWithSlashToken(t) {\n return t === 44 /* SlashToken */ || t === 69 /* SlashEqualsToken */;\n }\n function readTokenInfo(n) {\n Debug.assert(isOnToken());\n const expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 /* RescanGreaterThanToken */ : shouldRescanSlashToken(n) ? 2 /* RescanSlashToken */ : shouldRescanTemplateToken(n) ? 3 /* RescanTemplateToken */ : shouldRescanJsxIdentifier(n) ? 4 /* RescanJsxIdentifier */ : shouldRescanJsxText(n) ? 5 /* RescanJsxText */ : shouldRescanJsxAttributeValue(n) ? 6 /* RescanJsxAttributeValue */ : 0 /* Scan */;\n if (lastTokenInfo && expectedScanAction === lastScanAction) {\n return fixTokenKind(lastTokenInfo, n);\n }\n if (scanner2.getTokenFullStart() !== savedPos) {\n Debug.assert(lastTokenInfo !== void 0);\n scanner2.resetTokenState(savedPos);\n scanner2.scan();\n }\n let currentToken = getNextToken(n, expectedScanAction);\n const token = createTextRangeWithKind(\n scanner2.getTokenFullStart(),\n scanner2.getTokenEnd(),\n currentToken\n );\n if (trailingTrivia) {\n trailingTrivia = void 0;\n }\n while (scanner2.getTokenFullStart() < endPos) {\n currentToken = scanner2.scan();\n if (!isTrivia(currentToken)) {\n break;\n }\n const trivia = createTextRangeWithKind(\n scanner2.getTokenFullStart(),\n scanner2.getTokenEnd(),\n currentToken\n );\n if (!trailingTrivia) {\n trailingTrivia = [];\n }\n trailingTrivia.push(trivia);\n if (currentToken === 4 /* NewLineTrivia */) {\n scanner2.scan();\n break;\n }\n }\n lastTokenInfo = { leadingTrivia, trailingTrivia, token };\n return fixTokenKind(lastTokenInfo, n);\n }\n function getNextToken(n, expectedScanAction) {\n const token = scanner2.getToken();\n lastScanAction = 0 /* Scan */;\n switch (expectedScanAction) {\n case 1 /* RescanGreaterThanToken */:\n if (token === 32 /* GreaterThanToken */) {\n lastScanAction = 1 /* RescanGreaterThanToken */;\n const newToken = scanner2.reScanGreaterToken();\n Debug.assert(n.kind === newToken);\n return newToken;\n }\n break;\n case 2 /* RescanSlashToken */:\n if (startsWithSlashToken(token)) {\n lastScanAction = 2 /* RescanSlashToken */;\n const newToken = scanner2.reScanSlashToken();\n Debug.assert(n.kind === newToken);\n return newToken;\n }\n break;\n case 3 /* RescanTemplateToken */:\n if (token === 20 /* CloseBraceToken */) {\n lastScanAction = 3 /* RescanTemplateToken */;\n return scanner2.reScanTemplateToken(\n /*isTaggedTemplate*/\n false\n );\n }\n break;\n case 4 /* RescanJsxIdentifier */:\n lastScanAction = 4 /* RescanJsxIdentifier */;\n return scanner2.scanJsxIdentifier();\n case 5 /* RescanJsxText */:\n lastScanAction = 5 /* RescanJsxText */;\n return scanner2.reScanJsxToken(\n /*allowMultilineJsxText*/\n false\n );\n case 6 /* RescanJsxAttributeValue */:\n lastScanAction = 6 /* RescanJsxAttributeValue */;\n return scanner2.reScanJsxAttributeValue();\n case 0 /* Scan */:\n break;\n default:\n Debug.assertNever(expectedScanAction);\n }\n return token;\n }\n function readEOFTokenRange() {\n Debug.assert(isOnEOF());\n return createTextRangeWithKind(scanner2.getTokenFullStart(), scanner2.getTokenEnd(), 1 /* EndOfFileToken */);\n }\n function isOnToken() {\n const current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken();\n return current !== 1 /* EndOfFileToken */ && !isTrivia(current);\n }\n function isOnEOF() {\n const current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken();\n return current === 1 /* EndOfFileToken */;\n }\n function fixTokenKind(tokenInfo, container) {\n if (isToken(container) && tokenInfo.token.kind !== container.kind) {\n tokenInfo.token.kind = container.kind;\n }\n return tokenInfo;\n }\n function skipToEndOf(node) {\n scanner2.resetTokenState(node.end);\n savedPos = scanner2.getTokenFullStart();\n lastScanAction = void 0;\n lastTokenInfo = void 0;\n wasNewLine = false;\n leadingTrivia = void 0;\n trailingTrivia = void 0;\n }\n function skipToStartOf(node) {\n scanner2.resetTokenState(node.pos);\n savedPos = scanner2.getTokenFullStart();\n lastScanAction = void 0;\n lastTokenInfo = void 0;\n wasNewLine = false;\n leadingTrivia = void 0;\n trailingTrivia = void 0;\n }\n}\n\n// src/services/formatting/rule.ts\nvar anyContext = emptyArray;\nvar RuleAction = /* @__PURE__ */ ((RuleAction2) => {\n RuleAction2[RuleAction2[\"None\"] = 0] = \"None\";\n RuleAction2[RuleAction2[\"StopProcessingSpaceActions\"] = 1] = \"StopProcessingSpaceActions\";\n RuleAction2[RuleAction2[\"StopProcessingTokenActions\"] = 2] = \"StopProcessingTokenActions\";\n RuleAction2[RuleAction2[\"InsertSpace\"] = 4] = \"InsertSpace\";\n RuleAction2[RuleAction2[\"InsertNewLine\"] = 8] = \"InsertNewLine\";\n RuleAction2[RuleAction2[\"DeleteSpace\"] = 16] = \"DeleteSpace\";\n RuleAction2[RuleAction2[\"DeleteToken\"] = 32] = \"DeleteToken\";\n RuleAction2[RuleAction2[\"InsertTrailingSemicolon\"] = 64] = \"InsertTrailingSemicolon\";\n RuleAction2[RuleAction2[\"StopAction\"] = 3] = \"StopAction\";\n RuleAction2[RuleAction2[\"ModifySpaceAction\"] = 28] = \"ModifySpaceAction\";\n RuleAction2[RuleAction2[\"ModifyTokenAction\"] = 96] = \"ModifyTokenAction\";\n return RuleAction2;\n})(RuleAction || {});\nvar RuleFlags = /* @__PURE__ */ ((RuleFlags2) => {\n RuleFlags2[RuleFlags2[\"None\"] = 0] = \"None\";\n RuleFlags2[RuleFlags2[\"CanDeleteNewLines\"] = 1] = \"CanDeleteNewLines\";\n return RuleFlags2;\n})(RuleFlags || {});\n\n// src/services/formatting/rules.ts\nfunction getAllRules() {\n const allTokens = [];\n for (let token = 0 /* FirstToken */; token <= 166 /* LastToken */; token++) {\n if (token !== 1 /* EndOfFileToken */) {\n allTokens.push(token);\n }\n }\n function anyTokenExcept(...tokens) {\n return { tokens: allTokens.filter((t) => !tokens.some((t2) => t2 === t)), isSpecific: false };\n }\n const anyToken = { tokens: allTokens, isSpecific: false };\n const anyTokenIncludingMultilineComments = tokenRangeFrom([...allTokens, 3 /* MultiLineCommentTrivia */]);\n const anyTokenIncludingEOF = tokenRangeFrom([...allTokens, 1 /* EndOfFileToken */]);\n const keywords = tokenRangeFromRange(83 /* FirstKeyword */, 166 /* LastKeyword */);\n const binaryOperators = tokenRangeFromRange(30 /* FirstBinaryOperator */, 79 /* LastBinaryOperator */);\n const binaryKeywordOperators = [\n 103 /* InKeyword */,\n 104 /* InstanceOfKeyword */,\n 165 /* OfKeyword */,\n 130 /* AsKeyword */,\n 142 /* IsKeyword */,\n 152 /* SatisfiesKeyword */\n ];\n const unaryPrefixOperators = [46 /* PlusPlusToken */, 47 /* MinusMinusToken */, 55 /* TildeToken */, 54 /* ExclamationToken */];\n const unaryPrefixExpressions = [\n 9 /* NumericLiteral */,\n 10 /* BigIntLiteral */,\n 80 /* Identifier */,\n 21 /* OpenParenToken */,\n 23 /* OpenBracketToken */,\n 19 /* OpenBraceToken */,\n 110 /* ThisKeyword */,\n 105 /* NewKeyword */\n ];\n const unaryPreincrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */];\n const unaryPostincrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */];\n const unaryPredecrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */];\n const unaryPostdecrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */];\n const comments = [2 /* SingleLineCommentTrivia */, 3 /* MultiLineCommentTrivia */];\n const typeNames = [80 /* Identifier */, ...typeKeywords];\n const functionOpenBraceLeftTokenRange = anyTokenIncludingMultilineComments;\n const typeScriptOpenBraceLeftTokenRange = tokenRangeFrom([80 /* Identifier */, 32 /* GreaterThanToken */, 3 /* MultiLineCommentTrivia */, 86 /* ClassKeyword */, 95 /* ExportKeyword */, 102 /* ImportKeyword */]);\n const controlOpenBraceLeftTokenRange = tokenRangeFrom([22 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 92 /* DoKeyword */, 113 /* TryKeyword */, 98 /* FinallyKeyword */, 93 /* ElseKeyword */, 85 /* CatchKeyword */]);\n const highPriorityCommonRules = [\n // Leave comments alone\n rule(\"IgnoreBeforeComment\", anyToken, comments, anyContext, 1 /* StopProcessingSpaceActions */),\n rule(\"IgnoreAfterLineComment\", 2 /* SingleLineCommentTrivia */, anyToken, anyContext, 1 /* StopProcessingSpaceActions */),\n rule(\"NotSpaceBeforeColon\", anyToken, 59 /* ColonToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */),\n rule(\"SpaceAfterColon\", 59 /* ColonToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNextTokenParentNotJsxNamespacedName], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeQuestionMark\", anyToken, 58 /* QuestionToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */),\n // insert space after '?' only when it is used in conditional operator\n rule(\"SpaceAfterQuestionMarkInConditionalOperator\", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], 4 /* InsertSpace */),\n // in other cases there should be no space between '?' and next token\n rule(\"NoSpaceAfterQuestionMark\", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeDot\", anyToken, [25 /* DotToken */, 29 /* QuestionDotToken */], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterDot\", [25 /* DotToken */, 29 /* QuestionDotToken */], anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBetweenImportParenInImportType\", 102 /* ImportKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isImportTypeContext], 16 /* DeleteSpace */),\n // Special handling of unary operators.\n // Prefix operators generally shouldn't have a space between\n // them and their target unary expression.\n rule(\"NoSpaceAfterUnaryPrefixOperator\", unaryPrefixOperators, unaryPrefixExpressions, [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterUnaryPreincrementOperator\", 46 /* PlusPlusToken */, unaryPreincrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterUnaryPredecrementOperator\", 47 /* MinusMinusToken */, unaryPredecrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeUnaryPostincrementOperator\", unaryPostincrementExpressions, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeUnaryPostdecrementOperator\", unaryPostdecrementExpressions, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */),\n // More unary operator special-casing.\n // DevDiv 181814: Be careful when removing leading whitespace\n // around unary operators. Examples:\n // 1 - -2 --X--> 1--2\n // a + ++b --X--> a+++b\n rule(\"SpaceAfterPostincrementWhenFollowedByAdd\", 46 /* PlusPlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterAddWhenFollowedByUnaryPlus\", 40 /* PlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterAddWhenFollowedByPreincrement\", 40 /* PlusToken */, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterPostdecrementWhenFollowedBySubtract\", 47 /* MinusMinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterSubtractWhenFollowedByUnaryMinus\", 41 /* MinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterSubtractWhenFollowedByPredecrement\", 41 /* MinusToken */, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterCloseBrace\", 20 /* CloseBraceToken */, [28 /* CommaToken */, 27 /* SemicolonToken */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // For functions and control block place } on a new line [multi-line rule]\n rule(\"NewLineBeforeCloseBraceInBlockContext\", anyTokenIncludingMultilineComments, 20 /* CloseBraceToken */, [isMultilineBlockContext], 8 /* InsertNewLine */),\n // Space/new line after }.\n rule(\"SpaceAfterCloseBrace\", 20 /* CloseBraceToken */, anyTokenExcept(22 /* CloseParenToken */), [isNonJsxSameLineTokenContext, isAfterCodeBlockContext], 4 /* InsertSpace */),\n // Special case for (}, else) and (}, while) since else & while tokens are not part of the tree which makes SpaceAfterCloseBrace rule not applied\n // Also should not apply to })\n rule(\"SpaceBetweenCloseBraceAndElse\", 20 /* CloseBraceToken */, 93 /* ElseKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBetweenCloseBraceAndWhile\", 20 /* CloseBraceToken */, 117 /* WhileKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */),\n // Add a space after control dec context if the next character is an open bracket ex: 'if (false)[a, b] = [1, 2];' -> 'if (false) [a, b] = [1, 2];'\n rule(\"SpaceAfterConditionalClosingParen\", 22 /* CloseParenToken */, 23 /* OpenBracketToken */, [isControlDeclContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenFunctionKeywordAndStar\", 100 /* FunctionKeyword */, 42 /* AsteriskToken */, [isFunctionDeclarationOrFunctionExpressionContext], 16 /* DeleteSpace */),\n rule(\"SpaceAfterStarInGeneratorDeclaration\", 42 /* AsteriskToken */, 80 /* Identifier */, [isFunctionDeclarationOrFunctionExpressionContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterFunctionInFuncDecl\", 100 /* FunctionKeyword */, anyToken, [isFunctionDeclContext], 4 /* InsertSpace */),\n // Insert new line after { and before } in multi-line contexts.\n rule(\"NewLineAfterOpenBraceInBlockContext\", 19 /* OpenBraceToken */, anyToken, [isMultilineBlockContext], 8 /* InsertNewLine */),\n // For get/set members, we check for (identifier,identifier) since get/set don't have tokens and they are represented as just an identifier token.\n // Though, we do extra check on the context to make sure we are dealing with get/set node. Example:\n // get x() {}\n // set x(val) {}\n rule(\"SpaceAfterGetSetInMember\", [139 /* GetKeyword */, 153 /* SetKeyword */], 80 /* Identifier */, [isFunctionDeclContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenYieldKeywordAndStar\", 127 /* YieldKeyword */, 42 /* AsteriskToken */, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 16 /* DeleteSpace */),\n rule(\"SpaceBetweenYieldOrYieldStarAndOperand\", [127 /* YieldKeyword */, 42 /* AsteriskToken */], anyToken, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenReturnAndSemicolon\", 107 /* ReturnKeyword */, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"SpaceAfterCertainKeywords\", [115 /* VarKeyword */, 111 /* ThrowKeyword */, 105 /* NewKeyword */, 91 /* DeleteKeyword */, 107 /* ReturnKeyword */, 114 /* TypeOfKeyword */, 135 /* AwaitKeyword */], anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterLetConstInVariableDeclaration\", [121 /* LetKeyword */, 87 /* ConstKeyword */], anyToken, [isNonJsxSameLineTokenContext, isStartOfVariableDeclarationList], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeOpenParenInFuncCall\", anyToken, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isFunctionCallOrNewContext, isPreviousTokenNotComma], 16 /* DeleteSpace */),\n // Special case for binary operators (that are keywords). For these we have to add a space and shouldn't follow any user options.\n rule(\"SpaceBeforeBinaryKeywordOperator\", anyToken, binaryKeywordOperators, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterBinaryKeywordOperator\", binaryKeywordOperators, anyToken, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterVoidOperator\", 116 /* VoidKeyword */, anyToken, [isNonJsxSameLineTokenContext, isVoidOpContext], 4 /* InsertSpace */),\n // Async-await\n rule(\"SpaceBetweenAsyncAndOpenParen\", 134 /* AsyncKeyword */, 21 /* OpenParenToken */, [isArrowFunctionContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBetweenAsyncAndFunctionKeyword\", 134 /* AsyncKeyword */, [100 /* FunctionKeyword */, 80 /* Identifier */], [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n // Template string\n rule(\"NoSpaceBetweenTagAndTemplateString\", [80 /* Identifier */, 22 /* CloseParenToken */], [15 /* NoSubstitutionTemplateLiteral */, 16 /* TemplateHead */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // JSX opening elements\n rule(\"SpaceBeforeJsxAttribute\", anyToken, 80 /* Identifier */, [isNextTokenParentJsxAttribute, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBeforeSlashInJsxOpeningElement\", anyToken, 44 /* SlashToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeGreaterThanTokenInJsxOpeningElement\", 44 /* SlashToken */, 32 /* GreaterThanToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeEqualInJsxAttribute\", anyToken, 64 /* EqualsToken */, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterEqualInJsxAttribute\", 64 /* EqualsToken */, anyToken, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeJsxNamespaceColon\", 80 /* Identifier */, 59 /* ColonToken */, [isNextTokenParentJsxNamespacedName], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterJsxNamespaceColon\", 59 /* ColonToken */, 80 /* Identifier */, [isNextTokenParentJsxNamespacedName], 16 /* DeleteSpace */),\n // TypeScript-specific rules\n // Use of module as a function call. e.g.: import m2 = module(\"m2\");\n rule(\"NoSpaceAfterModuleImport\", [144 /* ModuleKeyword */, 149 /* RequireKeyword */], 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Add a space around certain TypeScript keywords\n rule(\n \"SpaceAfterCertainTypeScriptKeywords\",\n [\n 128 /* AbstractKeyword */,\n 129 /* AccessorKeyword */,\n 86 /* ClassKeyword */,\n 138 /* DeclareKeyword */,\n 90 /* DefaultKeyword */,\n 94 /* EnumKeyword */,\n 95 /* ExportKeyword */,\n 96 /* ExtendsKeyword */,\n 139 /* GetKeyword */,\n 119 /* ImplementsKeyword */,\n 102 /* ImportKeyword */,\n 120 /* InterfaceKeyword */,\n 144 /* ModuleKeyword */,\n 145 /* NamespaceKeyword */,\n 123 /* PrivateKeyword */,\n 125 /* PublicKeyword */,\n 124 /* ProtectedKeyword */,\n 148 /* ReadonlyKeyword */,\n 153 /* SetKeyword */,\n 126 /* StaticKeyword */,\n 156 /* TypeKeyword */,\n 161 /* FromKeyword */,\n 143 /* KeyOfKeyword */,\n 140 /* InferKeyword */\n ],\n anyToken,\n [isNonJsxSameLineTokenContext],\n 4 /* InsertSpace */\n ),\n rule(\n \"SpaceBeforeCertainTypeScriptKeywords\",\n anyToken,\n [96 /* ExtendsKeyword */, 119 /* ImplementsKeyword */, 161 /* FromKeyword */],\n [isNonJsxSameLineTokenContext],\n 4 /* InsertSpace */\n ),\n // Treat string literals in module names as identifiers, and add a space between the literal and the opening Brace braces, e.g.: module \"m2\" {\n rule(\"SpaceAfterModuleName\", 11 /* StringLiteral */, 19 /* OpenBraceToken */, [isModuleDeclContext], 4 /* InsertSpace */),\n // Lambda expressions\n rule(\"SpaceBeforeArrow\", anyToken, 39 /* EqualsGreaterThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterArrow\", 39 /* EqualsGreaterThanToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n // Optional parameters and let args\n rule(\"NoSpaceAfterEllipsis\", 26 /* DotDotDotToken */, 80 /* Identifier */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterOptionalParameters\", 58 /* QuestionToken */, [22 /* CloseParenToken */, 28 /* CommaToken */], [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */),\n // Remove spaces in empty interface literals. e.g.: x: {}\n rule(\"NoSpaceBetweenEmptyInterfaceBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectTypeContext], 16 /* DeleteSpace */),\n // generics and type assertions\n rule(\"NoSpaceBeforeOpenAngularBracket\", typeNames, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBetweenCloseParenAndAngularBracket\", 22 /* CloseParenToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterOpenAngularBracket\", 30 /* LessThanToken */, anyToken, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeCloseAngularBracket\", anyToken, 32 /* GreaterThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterCloseAngularBracket\", 32 /* GreaterThanToken */, [21 /* OpenParenToken */, 23 /* OpenBracketToken */, 32 /* GreaterThanToken */, 28 /* CommaToken */], [\n isNonJsxSameLineTokenContext,\n isTypeArgumentOrParameterOrAssertionContext,\n isNotFunctionDeclContext,\n /*To prevent an interference with the SpaceBeforeOpenParenInFuncDecl rule*/\n isNonTypeAssertionContext\n ], 16 /* DeleteSpace */),\n // decorators\n rule(\"SpaceBeforeAt\", [22 /* CloseParenToken */, 80 /* Identifier */], 60 /* AtToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterAt\", 60 /* AtToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Insert space after @ in decorator\n rule(\n \"SpaceAfterDecorator\",\n anyToken,\n [\n 128 /* AbstractKeyword */,\n 80 /* Identifier */,\n 95 /* ExportKeyword */,\n 90 /* DefaultKeyword */,\n 86 /* ClassKeyword */,\n 126 /* StaticKeyword */,\n 125 /* PublicKeyword */,\n 123 /* PrivateKeyword */,\n 124 /* ProtectedKeyword */,\n 139 /* GetKeyword */,\n 153 /* SetKeyword */,\n 23 /* OpenBracketToken */,\n 42 /* AsteriskToken */\n ],\n [isEndOfDecoratorContextOnSameLine],\n 4 /* InsertSpace */\n ),\n rule(\"NoSpaceBeforeNonNullAssertionOperator\", anyToken, 54 /* ExclamationToken */, [isNonJsxSameLineTokenContext, isNonNullAssertionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterNewKeywordOnConstructorSignature\", 105 /* NewKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isConstructorSignatureContext], 16 /* DeleteSpace */),\n rule(\"SpaceLessThanAndNonJSXTypeAnnotation\", 30 /* LessThanToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */)\n ];\n const userConfigurableRules = [\n // Treat constructor as an identifier in a function declaration, and remove spaces between constructor and following left parentheses\n rule(\"SpaceAfterConstructor\", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterConstructor\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterConstructor\", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterConstructor\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"SpaceAfterComma\", 28 /* CommaToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterCommaDelimiter\"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNextTokenNotCloseBracket, isNextTokenNotCloseParen], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterComma\", 28 /* CommaToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterCommaDelimiter\"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext], 16 /* DeleteSpace */),\n // Insert space after function keyword for anonymous functions\n rule(\"SpaceAfterAnonymousFunctionKeyword\", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"), isFunctionDeclContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterAnonymousFunctionKeyword\", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"), isFunctionDeclContext], 16 /* DeleteSpace */),\n // Insert space after keywords in control flow statements\n rule(\"SpaceAfterKeywordInControl\", keywords, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterKeywordsInControlFlowStatements\"), isControlDeclContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterKeywordInControl\", keywords, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterKeywordsInControlFlowStatements\"), isControlDeclContext], 16 /* DeleteSpace */),\n // Insert space after opening and before closing nonempty parenthesis\n rule(\"SpaceAfterOpenParen\", 21 /* OpenParenToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBeforeCloseParen\", anyToken, 22 /* CloseParenToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBetweenOpenParens\", 21 /* OpenParenToken */, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenParens\", 21 /* OpenParenToken */, 22 /* CloseParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterOpenParen\", 21 /* OpenParenToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeCloseParen\", anyToken, 22 /* CloseParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Insert space after opening and before closing nonempty brackets\n rule(\"SpaceAfterOpenBracket\", 23 /* OpenBracketToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"SpaceBeforeCloseBracket\", anyToken, 24 /* CloseBracketToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenBrackets\", 23 /* OpenBracketToken */, 24 /* CloseBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterOpenBracket\", 23 /* OpenBracketToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeCloseBracket\", anyToken, 24 /* CloseBracketToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Insert a space after { and before } in single-line contexts, but remove space from empty object literals {}.\n rule(\"SpaceAfterOpenBrace\", 19 /* OpenBraceToken */, anyToken, [isOptionEnabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isBraceWrappedContext], 4 /* InsertSpace */),\n rule(\"SpaceBeforeCloseBrace\", anyToken, 20 /* CloseBraceToken */, [isOptionEnabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isBraceWrappedContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterOpenBrace\", 19 /* OpenBraceToken */, anyToken, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeCloseBrace\", anyToken, 20 /* CloseBraceToken */, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Insert a space after opening and before closing empty brace brackets\n rule(\"SpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingEmptyBraces\")], 4 /* InsertSpace */),\n rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingEmptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Insert space after opening and before closing template string braces\n rule(\"SpaceAfterTemplateHeadAndMiddle\", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxTextContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n rule(\"SpaceBeforeTemplateMiddleAndTail\", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterTemplateHeadAndMiddle\", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxTextContext], 16 /* DeleteSpace */, 1 /* CanDeleteNewLines */),\n rule(\"NoSpaceBeforeTemplateMiddleAndTail\", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // No space after { and before } in JSX expression\n rule(\"SpaceAfterOpenBraceInJsxExpression\", 19 /* OpenBraceToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */),\n rule(\"SpaceBeforeCloseBraceInJsxExpression\", anyToken, 20 /* CloseBraceToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterOpenBraceInJsxExpression\", 19 /* OpenBraceToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceBeforeCloseBraceInJsxExpression\", anyToken, 20 /* CloseBraceToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */),\n // Insert space after semicolon in for statement\n rule(\"SpaceAfterSemicolonInFor\", 27 /* SemicolonToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterSemicolonInForStatements\"), isNonJsxSameLineTokenContext, isForContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterSemicolonInFor\", 27 /* SemicolonToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterSemicolonInForStatements\"), isNonJsxSameLineTokenContext, isForContext], 16 /* DeleteSpace */),\n // Insert space before and after binary operators\n rule(\"SpaceBeforeBinaryOperator\", anyToken, binaryOperators, [isOptionEnabled(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"SpaceAfterBinaryOperator\", binaryOperators, anyToken, [isOptionEnabled(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeBinaryOperator\", anyToken, binaryOperators, [isOptionDisabledOrUndefined(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterBinaryOperator\", binaryOperators, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */),\n rule(\"SpaceBeforeOpenParenInFuncDecl\", anyToken, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceBeforeFunctionParenthesis\"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeOpenParenInFuncDecl\", anyToken, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceBeforeFunctionParenthesis\"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 16 /* DeleteSpace */),\n // Open Brace braces after control block\n rule(\"NewLineBeforeOpenBraceInControl\", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForControlBlocks\"), isControlDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n // Open Brace braces after function\n // TypeScript: Function can have return types, which can be made of tons of different token kinds\n rule(\"NewLineBeforeOpenBraceInFunction\", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForFunctions\"), isFunctionDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n // Open Brace braces after TypeScript module/class/interface\n rule(\"NewLineBeforeOpenBraceInTypeScriptDeclWithBlock\", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForFunctions\"), isTypeScriptDeclWithBlockContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n rule(\"SpaceAfterTypeAssertion\", 32 /* GreaterThanToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterTypeAssertion\"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 4 /* InsertSpace */),\n rule(\"NoSpaceAfterTypeAssertion\", 32 /* GreaterThanToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterTypeAssertion\"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 16 /* DeleteSpace */),\n rule(\"SpaceBeforeTypeAnnotation\", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionEnabled(\"insertSpaceBeforeTypeAnnotation\"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 4 /* InsertSpace */),\n rule(\"NoSpaceBeforeTypeAnnotation\", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionDisabledOrUndefined(\"insertSpaceBeforeTypeAnnotation\"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 16 /* DeleteSpace */),\n rule(\"NoOptionalSemicolon\", 27 /* SemicolonToken */, anyTokenIncludingEOF, [optionEquals(\"semicolons\", \"remove\" /* Remove */), isSemicolonDeletionContext], 32 /* DeleteToken */),\n rule(\"OptionalSemicolon\", anyToken, anyTokenIncludingEOF, [optionEquals(\"semicolons\", \"insert\" /* Insert */), isSemicolonInsertionContext], 64 /* InsertTrailingSemicolon */)\n ];\n const lowPriorityCommonRules = [\n // Space after keyword but not before ; or : or ?\n rule(\"NoSpaceBeforeSemicolon\", anyToken, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"SpaceBeforeOpenBraceInControl\", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForControlBlocks\"), isControlDeclContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n rule(\"SpaceBeforeOpenBraceInFunction\", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForFunctions\"), isFunctionDeclContext, isBeforeBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n rule(\"SpaceBeforeOpenBraceInTypeScriptDeclWithBlock\", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForFunctions\"), isTypeScriptDeclWithBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n rule(\"NoSpaceBeforeComma\", anyToken, 28 /* CommaToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // No space before and after indexer `x[]`\n rule(\"NoSpaceBeforeOpenBracket\", anyTokenExcept(134 /* AsyncKeyword */, 84 /* CaseKeyword */), 23 /* OpenBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n rule(\"NoSpaceAfterCloseBracket\", 24 /* CloseBracketToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBeforeBlockInFunctionDeclarationContext], 16 /* DeleteSpace */),\n rule(\"SpaceAfterSemicolon\", 27 /* SemicolonToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n // Remove extra space between for and await\n rule(\"SpaceBetweenForAndAwaitKeyword\", 99 /* ForKeyword */, 135 /* AwaitKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n // Remove extra spaces between ... and type name in tuple spread\n rule(\"SpaceBetweenDotDotDotAndTypeName\", 26 /* DotDotDotToken */, typeNames, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n // Add a space between statements. All keywords except (do,else,case) has open/close parens after them.\n // So, we have a rule to add a space for [),Any], [do,Any], [else,Any], and [case,Any]\n rule(\n \"SpaceBetweenStatements\",\n [22 /* CloseParenToken */, 92 /* DoKeyword */, 93 /* ElseKeyword */, 84 /* CaseKeyword */],\n anyToken,\n [isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNotForContext],\n 4 /* InsertSpace */\n ),\n // This low-pri rule takes care of \"try {\", \"catch {\" and \"finally {\" in case the rule SpaceBeforeOpenBraceInControl didn't execute on FormatOnEnter.\n rule(\"SpaceAfterTryCatchFinally\", [113 /* TryKeyword */, 85 /* CatchKeyword */, 98 /* FinallyKeyword */], 19 /* OpenBraceToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */)\n ];\n return [\n ...highPriorityCommonRules,\n ...userConfigurableRules,\n ...lowPriorityCommonRules\n ];\n}\nfunction rule(debugName, left, right, context, action, flags = 0 /* None */) {\n return { leftTokenRange: toTokenRange(left), rightTokenRange: toTokenRange(right), rule: { debugName, context, action, flags } };\n}\nfunction tokenRangeFrom(tokens) {\n return { tokens, isSpecific: true };\n}\nfunction toTokenRange(arg) {\n return typeof arg === \"number\" ? tokenRangeFrom([arg]) : isArray(arg) ? tokenRangeFrom(arg) : arg;\n}\nfunction tokenRangeFromRange(from, to, except = []) {\n const tokens = [];\n for (let token = from; token <= to; token++) {\n if (!contains(except, token)) {\n tokens.push(token);\n }\n }\n return tokenRangeFrom(tokens);\n}\nfunction optionEquals(optionName, optionValue) {\n return (context) => context.options && context.options[optionName] === optionValue;\n}\nfunction isOptionEnabled(optionName) {\n return (context) => context.options && hasProperty(context.options, optionName) && !!context.options[optionName];\n}\nfunction isOptionDisabled(optionName) {\n return (context) => context.options && hasProperty(context.options, optionName) && !context.options[optionName];\n}\nfunction isOptionDisabledOrUndefined(optionName) {\n return (context) => !context.options || !hasProperty(context.options, optionName) || !context.options[optionName];\n}\nfunction isOptionDisabledOrUndefinedOrTokensOnSameLine(optionName) {\n return (context) => !context.options || !hasProperty(context.options, optionName) || !context.options[optionName] || context.TokensAreOnSameLine();\n}\nfunction isOptionEnabledOrUndefined(optionName) {\n return (context) => !context.options || !hasProperty(context.options, optionName) || !!context.options[optionName];\n}\nfunction isForContext(context) {\n return context.contextNode.kind === 249 /* ForStatement */;\n}\nfunction isNotForContext(context) {\n return !isForContext(context);\n}\nfunction isBinaryOpContext(context) {\n switch (context.contextNode.kind) {\n case 227 /* BinaryExpression */:\n return context.contextNode.operatorToken.kind !== 28 /* CommaToken */;\n case 228 /* ConditionalExpression */:\n case 195 /* ConditionalType */:\n case 235 /* AsExpression */:\n case 282 /* ExportSpecifier */:\n case 277 /* ImportSpecifier */:\n case 183 /* TypePredicate */:\n case 193 /* UnionType */:\n case 194 /* IntersectionType */:\n case 239 /* SatisfiesExpression */:\n return true;\n // equals in binding elements: function foo([[x, y] = [1, 2]])\n case 209 /* BindingElement */:\n // equals in type X = ...\n // falls through\n case 266 /* TypeAliasDeclaration */:\n // equal in import a = module('a');\n // falls through\n case 272 /* ImportEqualsDeclaration */:\n // equal in export = 1\n // falls through\n case 278 /* ExportAssignment */:\n // equal in let a = 0\n // falls through\n case 261 /* VariableDeclaration */:\n // equal in p = 0\n // falls through\n case 170 /* Parameter */:\n case 307 /* EnumMember */:\n case 173 /* PropertyDeclaration */:\n case 172 /* PropertySignature */:\n return context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */;\n // \"in\" keyword in for (let x in []) { }\n case 250 /* ForInStatement */:\n // \"in\" keyword in [P in keyof T]: T[P]\n // falls through\n case 169 /* TypeParameter */:\n return context.currentTokenSpan.kind === 103 /* InKeyword */ || context.nextTokenSpan.kind === 103 /* InKeyword */ || context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */;\n // Technically, \"of\" is not a binary operator, but format it the same way as \"in\"\n case 251 /* ForOfStatement */:\n return context.currentTokenSpan.kind === 165 /* OfKeyword */ || context.nextTokenSpan.kind === 165 /* OfKeyword */;\n }\n return false;\n}\nfunction isNotBinaryOpContext(context) {\n return !isBinaryOpContext(context);\n}\nfunction isNotTypeAnnotationContext(context) {\n return !isTypeAnnotationContext(context);\n}\nfunction isTypeAnnotationContext(context) {\n const contextKind = context.contextNode.kind;\n return contextKind === 173 /* PropertyDeclaration */ || contextKind === 172 /* PropertySignature */ || contextKind === 170 /* Parameter */ || contextKind === 261 /* VariableDeclaration */ || isFunctionLikeKind(contextKind);\n}\nfunction isOptionalPropertyContext(context) {\n return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;\n}\nfunction isNonOptionalPropertyContext(context) {\n return !isOptionalPropertyContext(context);\n}\nfunction isConditionalOperatorContext(context) {\n return context.contextNode.kind === 228 /* ConditionalExpression */ || context.contextNode.kind === 195 /* ConditionalType */;\n}\nfunction isSameLineTokenOrBeforeBlockContext(context) {\n return context.TokensAreOnSameLine() || isBeforeBlockContext(context);\n}\nfunction isBraceWrappedContext(context) {\n return context.contextNode.kind === 207 /* ObjectBindingPattern */ || context.contextNode.kind === 201 /* MappedType */ || isSingleLineBlockContext(context);\n}\nfunction isBeforeMultilineBlockContext(context) {\n return isBeforeBlockContext(context) && !(context.NextNodeAllOnSameLine() || context.NextNodeBlockIsOnOneLine());\n}\nfunction isMultilineBlockContext(context) {\n return isBlockContext(context) && !(context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine());\n}\nfunction isSingleLineBlockContext(context) {\n return isBlockContext(context) && (context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine());\n}\nfunction isBlockContext(context) {\n return nodeIsBlockContext(context.contextNode);\n}\nfunction isBeforeBlockContext(context) {\n return nodeIsBlockContext(context.nextTokenParent);\n}\nfunction nodeIsBlockContext(node) {\n if (nodeIsTypeScriptDeclWithBlockContext(node)) {\n return true;\n }\n switch (node.kind) {\n case 242 /* Block */:\n case 270 /* CaseBlock */:\n case 211 /* ObjectLiteralExpression */:\n case 269 /* ModuleBlock */:\n return true;\n }\n return false;\n}\nfunction isFunctionDeclContext(context) {\n switch (context.contextNode.kind) {\n case 263 /* FunctionDeclaration */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n // case SyntaxKind.MemberFunctionDeclaration:\n // falls through\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n // case SyntaxKind.MethodSignature:\n // falls through\n case 180 /* CallSignature */:\n case 219 /* FunctionExpression */:\n case 177 /* Constructor */:\n case 220 /* ArrowFunction */:\n // case SyntaxKind.ConstructorDeclaration:\n // case SyntaxKind.SimpleArrowFunctionExpression:\n // case SyntaxKind.ParenthesizedArrowFunctionExpression:\n // falls through\n case 265 /* InterfaceDeclaration */:\n return true;\n }\n return false;\n}\nfunction isNotFunctionDeclContext(context) {\n return !isFunctionDeclContext(context);\n}\nfunction isFunctionDeclarationOrFunctionExpressionContext(context) {\n return context.contextNode.kind === 263 /* FunctionDeclaration */ || context.contextNode.kind === 219 /* FunctionExpression */;\n}\nfunction isTypeScriptDeclWithBlockContext(context) {\n return nodeIsTypeScriptDeclWithBlockContext(context.contextNode);\n}\nfunction nodeIsTypeScriptDeclWithBlockContext(node) {\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 188 /* TypeLiteral */:\n case 268 /* ModuleDeclaration */:\n case 279 /* ExportDeclaration */:\n case 280 /* NamedExports */:\n case 273 /* ImportDeclaration */:\n case 276 /* NamedImports */:\n return true;\n }\n return false;\n}\nfunction isAfterCodeBlockContext(context) {\n switch (context.currentTokenParent.kind) {\n case 264 /* ClassDeclaration */:\n case 268 /* ModuleDeclaration */:\n case 267 /* EnumDeclaration */:\n case 300 /* CatchClause */:\n case 269 /* ModuleBlock */:\n case 256 /* SwitchStatement */:\n return true;\n case 242 /* Block */: {\n const blockParent = context.currentTokenParent.parent;\n if (!blockParent || blockParent.kind !== 220 /* ArrowFunction */ && blockParent.kind !== 219 /* FunctionExpression */) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isControlDeclContext(context) {\n switch (context.contextNode.kind) {\n case 246 /* IfStatement */:\n case 256 /* SwitchStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 248 /* WhileStatement */:\n case 259 /* TryStatement */:\n case 247 /* DoStatement */:\n case 255 /* WithStatement */:\n // TODO\n // case SyntaxKind.ElseClause:\n // falls through\n case 300 /* CatchClause */:\n return true;\n default:\n return false;\n }\n}\nfunction isObjectContext(context) {\n return context.contextNode.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isFunctionCallContext(context) {\n return context.contextNode.kind === 214 /* CallExpression */;\n}\nfunction isNewContext(context) {\n return context.contextNode.kind === 215 /* NewExpression */;\n}\nfunction isFunctionCallOrNewContext(context) {\n return isFunctionCallContext(context) || isNewContext(context);\n}\nfunction isPreviousTokenNotComma(context) {\n return context.currentTokenSpan.kind !== 28 /* CommaToken */;\n}\nfunction isNextTokenNotCloseBracket(context) {\n return context.nextTokenSpan.kind !== 24 /* CloseBracketToken */;\n}\nfunction isNextTokenNotCloseParen(context) {\n return context.nextTokenSpan.kind !== 22 /* CloseParenToken */;\n}\nfunction isArrowFunctionContext(context) {\n return context.contextNode.kind === 220 /* ArrowFunction */;\n}\nfunction isImportTypeContext(context) {\n return context.contextNode.kind === 206 /* ImportType */;\n}\nfunction isNonJsxSameLineTokenContext(context) {\n return context.TokensAreOnSameLine() && context.contextNode.kind !== 12 /* JsxText */;\n}\nfunction isNonJsxTextContext(context) {\n return context.contextNode.kind !== 12 /* JsxText */;\n}\nfunction isNonJsxElementOrFragmentContext(context) {\n return context.contextNode.kind !== 285 /* JsxElement */ && context.contextNode.kind !== 289 /* JsxFragment */;\n}\nfunction isJsxExpressionContext(context) {\n return context.contextNode.kind === 295 /* JsxExpression */ || context.contextNode.kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isNextTokenParentJsxAttribute(context) {\n return context.nextTokenParent.kind === 292 /* JsxAttribute */ || context.nextTokenParent.kind === 296 /* JsxNamespacedName */ && context.nextTokenParent.parent.kind === 292 /* JsxAttribute */;\n}\nfunction isJsxAttributeContext(context) {\n return context.contextNode.kind === 292 /* JsxAttribute */;\n}\nfunction isNextTokenParentNotJsxNamespacedName(context) {\n return context.nextTokenParent.kind !== 296 /* JsxNamespacedName */;\n}\nfunction isNextTokenParentJsxNamespacedName(context) {\n return context.nextTokenParent.kind === 296 /* JsxNamespacedName */;\n}\nfunction isJsxSelfClosingElementContext(context) {\n return context.contextNode.kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isNotBeforeBlockInFunctionDeclarationContext(context) {\n return !isFunctionDeclContext(context) && !isBeforeBlockContext(context);\n}\nfunction isEndOfDecoratorContextOnSameLine(context) {\n return context.TokensAreOnSameLine() && hasDecorators(context.contextNode) && nodeIsInDecoratorContext(context.currentTokenParent) && !nodeIsInDecoratorContext(context.nextTokenParent);\n}\nfunction nodeIsInDecoratorContext(node) {\n while (node && isExpression(node)) {\n node = node.parent;\n }\n return node && node.kind === 171 /* Decorator */;\n}\nfunction isStartOfVariableDeclarationList(context) {\n return context.currentTokenParent.kind === 262 /* VariableDeclarationList */ && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos;\n}\nfunction isNotFormatOnEnter(context) {\n return context.formattingRequestKind !== 2 /* FormatOnEnter */;\n}\nfunction isModuleDeclContext(context) {\n return context.contextNode.kind === 268 /* ModuleDeclaration */;\n}\nfunction isObjectTypeContext(context) {\n return context.contextNode.kind === 188 /* TypeLiteral */;\n}\nfunction isConstructorSignatureContext(context) {\n return context.contextNode.kind === 181 /* ConstructSignature */;\n}\nfunction isTypeArgumentOrParameterOrAssertion(token, parent2) {\n if (token.kind !== 30 /* LessThanToken */ && token.kind !== 32 /* GreaterThanToken */) {\n return false;\n }\n switch (parent2.kind) {\n case 184 /* TypeReference */:\n case 217 /* TypeAssertionExpression */:\n case 266 /* TypeAliasDeclaration */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 234 /* ExpressionWithTypeArguments */:\n return true;\n default:\n return false;\n }\n}\nfunction isTypeArgumentOrParameterOrAssertionContext(context) {\n return isTypeArgumentOrParameterOrAssertion(context.currentTokenSpan, context.currentTokenParent) || isTypeArgumentOrParameterOrAssertion(context.nextTokenSpan, context.nextTokenParent);\n}\nfunction isTypeAssertionContext(context) {\n return context.contextNode.kind === 217 /* TypeAssertionExpression */;\n}\nfunction isNonTypeAssertionContext(context) {\n return !isTypeAssertionContext(context);\n}\nfunction isVoidOpContext(context) {\n return context.currentTokenSpan.kind === 116 /* VoidKeyword */ && context.currentTokenParent.kind === 223 /* VoidExpression */;\n}\nfunction isYieldOrYieldStarWithOperand(context) {\n return context.contextNode.kind === 230 /* YieldExpression */ && context.contextNode.expression !== void 0;\n}\nfunction isNonNullAssertionContext(context) {\n return context.contextNode.kind === 236 /* NonNullExpression */;\n}\nfunction isNotStatementConditionContext(context) {\n return !isStatementConditionContext(context);\n}\nfunction isStatementConditionContext(context) {\n switch (context.contextNode.kind) {\n case 246 /* IfStatement */:\n case 249 /* ForStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n return true;\n default:\n return false;\n }\n}\nfunction isSemicolonDeletionContext(context) {\n let nextTokenKind = context.nextTokenSpan.kind;\n let nextTokenStart = context.nextTokenSpan.pos;\n if (isTrivia(nextTokenKind)) {\n const nextRealToken = context.nextTokenParent === context.currentTokenParent ? findNextToken(\n context.currentTokenParent,\n findAncestor(context.currentTokenParent, (a) => !a.parent),\n context.sourceFile\n ) : context.nextTokenParent.getFirstToken(context.sourceFile);\n if (!nextRealToken) {\n return true;\n }\n nextTokenKind = nextRealToken.kind;\n nextTokenStart = nextRealToken.getStart(context.sourceFile);\n }\n const startLine = context.sourceFile.getLineAndCharacterOfPosition(context.currentTokenSpan.pos).line;\n const endLine = context.sourceFile.getLineAndCharacterOfPosition(nextTokenStart).line;\n if (startLine === endLine) {\n return nextTokenKind === 20 /* CloseBraceToken */ || nextTokenKind === 1 /* EndOfFileToken */;\n }\n if (nextTokenKind === 27 /* SemicolonToken */ && context.currentTokenSpan.kind === 27 /* SemicolonToken */) {\n return true;\n }\n if (nextTokenKind === 241 /* SemicolonClassElement */ || nextTokenKind === 27 /* SemicolonToken */) {\n return false;\n }\n if (context.contextNode.kind === 265 /* InterfaceDeclaration */ || context.contextNode.kind === 266 /* TypeAliasDeclaration */) {\n return !isPropertySignature(context.currentTokenParent) || !!context.currentTokenParent.type || nextTokenKind !== 21 /* OpenParenToken */;\n }\n if (isPropertyDeclaration(context.currentTokenParent)) {\n return !context.currentTokenParent.initializer;\n }\n return context.currentTokenParent.kind !== 249 /* ForStatement */ && context.currentTokenParent.kind !== 243 /* EmptyStatement */ && context.currentTokenParent.kind !== 241 /* SemicolonClassElement */ && nextTokenKind !== 23 /* OpenBracketToken */ && nextTokenKind !== 21 /* OpenParenToken */ && nextTokenKind !== 40 /* PlusToken */ && nextTokenKind !== 41 /* MinusToken */ && nextTokenKind !== 44 /* SlashToken */ && nextTokenKind !== 14 /* RegularExpressionLiteral */ && nextTokenKind !== 28 /* CommaToken */ && nextTokenKind !== 229 /* TemplateExpression */ && nextTokenKind !== 16 /* TemplateHead */ && nextTokenKind !== 15 /* NoSubstitutionTemplateLiteral */ && nextTokenKind !== 25 /* DotToken */;\n}\nfunction isSemicolonInsertionContext(context) {\n return positionIsASICandidate(context.currentTokenSpan.end, context.currentTokenParent, context.sourceFile);\n}\nfunction isNotPropertyAccessOnIntegerLiteral(context) {\n return !isPropertyAccessExpression(context.contextNode) || !isNumericLiteral(context.contextNode.expression) || context.contextNode.expression.getText().includes(\".\");\n}\n\n// src/services/formatting/rulesMap.ts\nfunction getFormatContext(options, host) {\n return { options, getRules: getRulesMap(), host };\n}\nvar rulesMapCache;\nfunction getRulesMap() {\n if (rulesMapCache === void 0) {\n rulesMapCache = createRulesMap(getAllRules());\n }\n return rulesMapCache;\n}\nfunction getRuleActionExclusion(ruleAction) {\n let mask2 = 0 /* None */;\n if (ruleAction & 1 /* StopProcessingSpaceActions */) {\n mask2 |= 28 /* ModifySpaceAction */;\n }\n if (ruleAction & 2 /* StopProcessingTokenActions */) {\n mask2 |= 96 /* ModifyTokenAction */;\n }\n if (ruleAction & 28 /* ModifySpaceAction */) {\n mask2 |= 28 /* ModifySpaceAction */;\n }\n if (ruleAction & 96 /* ModifyTokenAction */) {\n mask2 |= 96 /* ModifyTokenAction */;\n }\n return mask2;\n}\nfunction createRulesMap(rules) {\n const map2 = buildMap(rules);\n return (context) => {\n const bucket = map2[getRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind)];\n if (bucket) {\n const rules2 = [];\n let ruleActionMask = 0;\n for (const rule2 of bucket) {\n const acceptRuleActions = ~getRuleActionExclusion(ruleActionMask);\n if (rule2.action & acceptRuleActions && every(rule2.context, (c) => c(context))) {\n rules2.push(rule2);\n ruleActionMask |= rule2.action;\n }\n }\n if (rules2.length) {\n return rules2;\n }\n }\n };\n}\nfunction buildMap(rules) {\n const map2 = new Array(mapRowLength * mapRowLength);\n const rulesBucketConstructionStateList = new Array(map2.length);\n for (const rule2 of rules) {\n const specificRule = rule2.leftTokenRange.isSpecific && rule2.rightTokenRange.isSpecific;\n for (const left of rule2.leftTokenRange.tokens) {\n for (const right of rule2.rightTokenRange.tokens) {\n const index = getRuleBucketIndex(left, right);\n let rulesBucket = map2[index];\n if (rulesBucket === void 0) {\n rulesBucket = map2[index] = [];\n }\n addRule(rulesBucket, rule2.rule, specificRule, rulesBucketConstructionStateList, index);\n }\n }\n }\n return map2;\n}\nfunction getRuleBucketIndex(row, column) {\n Debug.assert(row <= 166 /* LastKeyword */ && column <= 166 /* LastKeyword */, \"Must compute formatting context from tokens\");\n return row * mapRowLength + column;\n}\nvar maskBitSize = 5;\nvar mask = 31;\nvar mapRowLength = 166 /* LastToken */ + 1;\nvar RulesPosition = ((RulesPosition2) => {\n RulesPosition2[RulesPosition2[\"StopRulesSpecific\"] = 0] = \"StopRulesSpecific\";\n RulesPosition2[RulesPosition2[\"StopRulesAny\"] = maskBitSize * 1] = \"StopRulesAny\";\n RulesPosition2[RulesPosition2[\"ContextRulesSpecific\"] = maskBitSize * 2] = \"ContextRulesSpecific\";\n RulesPosition2[RulesPosition2[\"ContextRulesAny\"] = maskBitSize * 3] = \"ContextRulesAny\";\n RulesPosition2[RulesPosition2[\"NoContextRulesSpecific\"] = maskBitSize * 4] = \"NoContextRulesSpecific\";\n RulesPosition2[RulesPosition2[\"NoContextRulesAny\"] = maskBitSize * 5] = \"NoContextRulesAny\";\n return RulesPosition2;\n})(RulesPosition || {});\nfunction addRule(rules, rule2, specificTokens, constructionState, rulesBucketIndex) {\n const position = rule2.action & 3 /* StopAction */ ? specificTokens ? 0 /* StopRulesSpecific */ : RulesPosition.StopRulesAny : rule2.context !== anyContext ? specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny : specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny;\n const state = constructionState[rulesBucketIndex] || 0;\n rules.splice(getInsertionIndex(state, position), 0, rule2);\n constructionState[rulesBucketIndex] = increaseInsertionIndex(state, position);\n}\nfunction getInsertionIndex(indexBitmap, maskPosition) {\n let index = 0;\n for (let pos = 0; pos <= maskPosition; pos += maskBitSize) {\n index += indexBitmap & mask;\n indexBitmap >>= maskBitSize;\n }\n return index;\n}\nfunction increaseInsertionIndex(indexBitmap, maskPosition) {\n const value = (indexBitmap >> maskPosition & mask) + 1;\n Debug.assert((value & mask) === value, \"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\");\n return indexBitmap & ~(mask << maskPosition) | value << maskPosition;\n}\n\n// src/services/formatting/formatting.ts\nfunction createTextRangeWithKind(pos, end, kind) {\n const textRangeWithKind = { pos, end, kind };\n if (Debug.isDebugging) {\n Object.defineProperty(textRangeWithKind, \"__debugKind\", {\n get: () => Debug.formatSyntaxKind(kind)\n });\n }\n return textRangeWithKind;\n}\nfunction formatOnEnter(position, sourceFile, formatContext) {\n const line = sourceFile.getLineAndCharacterOfPosition(position).line;\n if (line === 0) {\n return [];\n }\n let endOfFormatSpan = getEndLinePosition(line, sourceFile);\n while (isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(endOfFormatSpan))) {\n endOfFormatSpan--;\n }\n if (isLineBreak(sourceFile.text.charCodeAt(endOfFormatSpan))) {\n endOfFormatSpan--;\n }\n const span = {\n // get start position for the previous line\n pos: getStartPositionOfLine(line - 1, sourceFile),\n // end value is exclusive so add 1 to the result\n end: endOfFormatSpan + 1\n };\n return formatSpan(span, sourceFile, formatContext, 2 /* FormatOnEnter */);\n}\nfunction formatOnSemicolon(position, sourceFile, formatContext) {\n const semicolon = findImmediatelyPrecedingTokenOfKind(position, 27 /* SemicolonToken */, sourceFile);\n return formatNodeLines(findOutermostNodeWithinListLevel(semicolon), sourceFile, formatContext, 3 /* FormatOnSemicolon */);\n}\nfunction formatOnOpeningCurly(position, sourceFile, formatContext) {\n const openingCurly = findImmediatelyPrecedingTokenOfKind(position, 19 /* OpenBraceToken */, sourceFile);\n if (!openingCurly) {\n return [];\n }\n const curlyBraceRange = openingCurly.parent;\n const outermostNode = findOutermostNodeWithinListLevel(curlyBraceRange);\n const textRange = {\n pos: getLineStartPositionForPosition(outermostNode.getStart(sourceFile), sourceFile),\n // TODO: GH#18217\n end: position\n };\n return formatSpan(textRange, sourceFile, formatContext, 4 /* FormatOnOpeningCurlyBrace */);\n}\nfunction formatOnClosingCurly(position, sourceFile, formatContext) {\n const precedingToken = findImmediatelyPrecedingTokenOfKind(position, 20 /* CloseBraceToken */, sourceFile);\n return formatNodeLines(findOutermostNodeWithinListLevel(precedingToken), sourceFile, formatContext, 5 /* FormatOnClosingCurlyBrace */);\n}\nfunction formatDocument(sourceFile, formatContext) {\n const span = {\n pos: 0,\n end: sourceFile.text.length\n };\n return formatSpan(span, sourceFile, formatContext, 0 /* FormatDocument */);\n}\nfunction formatSelection(start, end, sourceFile, formatContext) {\n const span = {\n pos: getLineStartPositionForPosition(start, sourceFile),\n end\n };\n return formatSpan(span, sourceFile, formatContext, 1 /* FormatSelection */);\n}\nfunction findImmediatelyPrecedingTokenOfKind(end, expectedTokenKind, sourceFile) {\n const precedingToken = findPrecedingToken(end, sourceFile);\n return precedingToken && precedingToken.kind === expectedTokenKind && end === precedingToken.getEnd() ? precedingToken : void 0;\n}\nfunction findOutermostNodeWithinListLevel(node) {\n let current = node;\n while (current && current.parent && current.parent.end === node.end && !isListElement(current.parent, current)) {\n current = current.parent;\n }\n return current;\n}\nfunction isListElement(parent2, node) {\n switch (parent2.kind) {\n case 264 /* ClassDeclaration */:\n case 265 /* InterfaceDeclaration */:\n return rangeContainsRange(parent2.members, node);\n case 268 /* ModuleDeclaration */:\n const body = parent2.body;\n return !!body && body.kind === 269 /* ModuleBlock */ && rangeContainsRange(body.statements, node);\n case 308 /* SourceFile */:\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n return rangeContainsRange(parent2.statements, node);\n case 300 /* CatchClause */:\n return rangeContainsRange(parent2.block.statements, node);\n }\n return false;\n}\nfunction findEnclosingNode(range, sourceFile) {\n return find2(sourceFile);\n function find2(n) {\n const candidate = forEachChild(n, (c) => startEndContainsRange(c.getStart(sourceFile), c.end, range) && c);\n if (candidate) {\n const result = find2(candidate);\n if (result) {\n return result;\n }\n }\n return n;\n }\n}\nfunction prepareRangeContainsErrorFunction(errors, originalRange) {\n if (!errors.length) {\n return rangeHasNoErrors;\n }\n const sorted = errors.filter((d) => rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length)).sort((e1, e2) => e1.start - e2.start);\n if (!sorted.length) {\n return rangeHasNoErrors;\n }\n let index = 0;\n return (r) => {\n while (true) {\n if (index >= sorted.length) {\n return false;\n }\n const error2 = sorted[index];\n if (r.end <= error2.start) {\n return false;\n }\n if (startEndOverlapsWithStartEnd(r.pos, r.end, error2.start, error2.start + error2.length)) {\n return true;\n }\n index++;\n }\n };\n function rangeHasNoErrors() {\n return false;\n }\n}\nfunction getScanStartPosition(enclosingNode, originalRange, sourceFile) {\n const start = enclosingNode.getStart(sourceFile);\n if (start === originalRange.pos && enclosingNode.end === originalRange.end) {\n return start;\n }\n const precedingToken = findPrecedingToken(originalRange.pos, sourceFile);\n if (!precedingToken) {\n return enclosingNode.pos;\n }\n if (precedingToken.end >= originalRange.pos) {\n return enclosingNode.pos;\n }\n return precedingToken.end;\n}\nfunction getOwnOrInheritedDelta(n, options, sourceFile) {\n let previousLine = -1 /* Unknown */;\n let child;\n while (n) {\n const line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line;\n if (previousLine !== -1 /* Unknown */ && line !== previousLine) {\n break;\n }\n if (SmartIndenter.shouldIndentChildNode(options, n, child, sourceFile)) {\n return options.indentSize;\n }\n previousLine = line;\n child = n;\n n = n.parent;\n }\n return 0;\n}\nfunction formatNodeGivenIndentation(node, sourceFileLike, languageVariant, initialIndentation, delta, formatContext) {\n const range = { pos: node.pos, end: node.end };\n return getFormattingScanner(sourceFileLike.text, languageVariant, range.pos, range.end, (scanner2) => formatSpanWorker(\n range,\n node,\n initialIndentation,\n delta,\n scanner2,\n formatContext,\n 1 /* FormatSelection */,\n (_) => false,\n // assume that node does not have any errors\n sourceFileLike\n ));\n}\nfunction formatNodeLines(node, sourceFile, formatContext, requestKind) {\n if (!node) {\n return [];\n }\n const span = {\n pos: getLineStartPositionForPosition(node.getStart(sourceFile), sourceFile),\n end: node.end\n };\n return formatSpan(span, sourceFile, formatContext, requestKind);\n}\nfunction formatSpan(originalRange, sourceFile, formatContext, requestKind) {\n const enclosingNode = findEnclosingNode(originalRange, sourceFile);\n return getFormattingScanner(\n sourceFile.text,\n sourceFile.languageVariant,\n getScanStartPosition(enclosingNode, originalRange, sourceFile),\n originalRange.end,\n (scanner2) => formatSpanWorker(\n originalRange,\n enclosingNode,\n SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, formatContext.options),\n getOwnOrInheritedDelta(enclosingNode, formatContext.options, sourceFile),\n scanner2,\n formatContext,\n requestKind,\n prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange),\n sourceFile\n )\n );\n}\nfunction formatSpanWorker(originalRange, enclosingNode, initialIndentation, delta, formattingScanner, { options, getRules, host }, requestKind, rangeContainsError, sourceFile) {\n var _a;\n const formattingContext = new FormattingContext(sourceFile, requestKind, options);\n let previousRangeTriviaEnd;\n let previousRange;\n let previousParent;\n let previousRangeStartLine;\n let lastIndentedLine;\n let indentationOnLastIndentedLine = -1 /* Unknown */;\n const edits = [];\n formattingScanner.advance();\n if (formattingScanner.isOnToken()) {\n const startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line;\n let undecoratedStartLine = startLine;\n if (hasDecorators(enclosingNode)) {\n undecoratedStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(enclosingNode, sourceFile)).line;\n }\n processNode(enclosingNode, enclosingNode, startLine, undecoratedStartLine, initialIndentation, delta);\n }\n const remainingTrivia = formattingScanner.getCurrentLeadingTrivia();\n if (remainingTrivia) {\n const indentation = SmartIndenter.nodeWillIndentChild(\n options,\n enclosingNode,\n /*child*/\n void 0,\n sourceFile,\n /*indentByDefault*/\n false\n ) ? initialIndentation + options.indentSize : initialIndentation;\n indentTriviaItems(\n remainingTrivia,\n indentation,\n /*indentNextTokenOrTrivia*/\n true,\n (item) => {\n processRange(\n item,\n sourceFile.getLineAndCharacterOfPosition(item.pos),\n enclosingNode,\n enclosingNode,\n /*dynamicIndentation*/\n void 0\n );\n insertIndentation(\n item.pos,\n indentation,\n /*lineAdded*/\n false\n );\n }\n );\n if (options.trimTrailingWhitespace !== false) {\n trimTrailingWhitespacesForRemainingRange(remainingTrivia);\n }\n }\n if (previousRange && formattingScanner.getTokenFullStart() >= originalRange.end) {\n const tokenInfo = formattingScanner.isOnEOF() ? formattingScanner.readEOFTokenRange() : formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(enclosingNode).token : void 0;\n if (tokenInfo && tokenInfo.pos === previousRangeTriviaEnd) {\n const parent2 = ((_a = findPrecedingToken(tokenInfo.end, sourceFile, enclosingNode)) == null ? void 0 : _a.parent) || previousParent;\n processPair(\n tokenInfo,\n sourceFile.getLineAndCharacterOfPosition(tokenInfo.pos).line,\n parent2,\n previousRange,\n previousRangeStartLine,\n previousParent,\n parent2,\n /*dynamicIndentation*/\n void 0\n );\n }\n }\n return edits;\n function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) {\n if (rangeOverlapsWithStartEnd(range, startPos, endPos) || rangeContainsStartEnd(range, startPos, endPos)) {\n if (inheritedIndentation !== -1 /* Unknown */) {\n return inheritedIndentation;\n }\n } else {\n const startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line;\n const startLinePosition = getLineStartPositionForPosition(startPos, sourceFile);\n const column = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options);\n if (startLine !== parentStartLine || startPos === column) {\n const baseIndentSize = SmartIndenter.getBaseIndentation(options);\n return baseIndentSize > column ? baseIndentSize : column;\n }\n }\n return -1 /* Unknown */;\n }\n function computeIndentation(node, startLine, inheritedIndentation, parent2, parentDynamicIndentation, effectiveParentStartLine) {\n const delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0;\n if (effectiveParentStartLine === startLine) {\n return {\n indentation: startLine === lastIndentedLine ? indentationOnLastIndentedLine : parentDynamicIndentation.getIndentation(),\n delta: Math.min(options.indentSize, parentDynamicIndentation.getDelta(node) + delta2)\n };\n } else if (inheritedIndentation === -1 /* Unknown */) {\n if (node.kind === 21 /* OpenParenToken */ && startLine === lastIndentedLine) {\n return { indentation: indentationOnLastIndentedLine, delta: parentDynamicIndentation.getDelta(node) };\n } else if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent2, node, startLine, sourceFile) || SmartIndenter.childIsUnindentedBranchOfConditionalExpression(parent2, node, startLine, sourceFile) || SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(parent2, node, startLine, sourceFile)) {\n return { indentation: parentDynamicIndentation.getIndentation(), delta: delta2 };\n } else {\n return { indentation: parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(node), delta: delta2 };\n }\n } else {\n return { indentation: inheritedIndentation, delta: delta2 };\n }\n }\n function getFirstNonDecoratorTokenOfNode(node) {\n if (canHaveModifiers(node)) {\n const modifier = find(node.modifiers, isModifier, findIndex(node.modifiers, isDecorator));\n if (modifier) return modifier.kind;\n }\n switch (node.kind) {\n case 264 /* ClassDeclaration */:\n return 86 /* ClassKeyword */;\n case 265 /* InterfaceDeclaration */:\n return 120 /* InterfaceKeyword */;\n case 263 /* FunctionDeclaration */:\n return 100 /* FunctionKeyword */;\n case 267 /* EnumDeclaration */:\n return 267 /* EnumDeclaration */;\n case 178 /* GetAccessor */:\n return 139 /* GetKeyword */;\n case 179 /* SetAccessor */:\n return 153 /* SetKeyword */;\n case 175 /* MethodDeclaration */:\n if (node.asteriskToken) {\n return 42 /* AsteriskToken */;\n }\n // falls through\n case 173 /* PropertyDeclaration */:\n case 170 /* Parameter */:\n const name = getNameOfDeclaration(node);\n if (name) {\n return name.kind;\n }\n }\n }\n function getDynamicIndentation(node, nodeStartLine, indentation, delta2) {\n return {\n getIndentationForComment: (kind, tokenIndentation, container) => {\n switch (kind) {\n // preceding comment to the token that closes the indentation scope inherits the indentation from the scope\n // .. {\n // // comment\n // }\n case 20 /* CloseBraceToken */:\n case 24 /* CloseBracketToken */:\n case 22 /* CloseParenToken */:\n return indentation + getDelta(container);\n }\n return tokenIndentation !== -1 /* Unknown */ ? tokenIndentation : indentation;\n },\n // if list end token is LessThanToken '>' then its delta should be explicitly suppressed\n // so that LessThanToken as a binary operator can still be indented.\n // foo.then\n // <\n // number,\n // string,\n // >();\n // vs\n // var a = xValue\n // > yValue;\n getIndentationForToken: (line, kind, container, suppressDelta) => !suppressDelta && shouldAddDelta(line, kind, container) ? indentation + getDelta(container) : indentation,\n getIndentation: () => indentation,\n getDelta,\n recomputeIndentation: (lineAdded, parent2) => {\n if (SmartIndenter.shouldIndentChildNode(options, parent2, node, sourceFile)) {\n indentation += lineAdded ? options.indentSize : -options.indentSize;\n delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0;\n }\n }\n };\n function shouldAddDelta(line, kind, container) {\n switch (kind) {\n // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent\n case 19 /* OpenBraceToken */:\n case 20 /* CloseBraceToken */:\n case 22 /* CloseParenToken */:\n case 93 /* ElseKeyword */:\n case 117 /* WhileKeyword */:\n case 60 /* AtToken */:\n return false;\n case 44 /* SlashToken */:\n case 32 /* GreaterThanToken */:\n switch (container.kind) {\n case 287 /* JsxOpeningElement */:\n case 288 /* JsxClosingElement */:\n case 286 /* JsxSelfClosingElement */:\n return false;\n }\n break;\n case 23 /* OpenBracketToken */:\n case 24 /* CloseBracketToken */:\n if (container.kind !== 201 /* MappedType */) {\n return false;\n }\n break;\n }\n return nodeStartLine !== line && !(hasDecorators(node) && kind === getFirstNonDecoratorTokenOfNode(node));\n }\n function getDelta(child) {\n return SmartIndenter.nodeWillIndentChild(\n options,\n node,\n child,\n sourceFile,\n /*indentByDefault*/\n true\n ) ? delta2 : 0;\n }\n }\n function processNode(node, contextNode, nodeStartLine, undecoratedNodeStartLine, indentation, delta2) {\n if (!rangeOverlapsWithStartEnd(originalRange, node.getStart(sourceFile), node.getEnd())) {\n return;\n }\n const nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta2);\n let childContextNode = contextNode;\n forEachChild(\n node,\n (child) => {\n processChildNode(\n child,\n /*inheritedIndentation*/\n -1 /* Unknown */,\n node,\n nodeDynamicIndentation,\n nodeStartLine,\n undecoratedNodeStartLine,\n /*isListItem*/\n false\n );\n },\n (nodes) => {\n processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation);\n }\n );\n while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n const tokenInfo = formattingScanner.readTokenInfo(node);\n if (tokenInfo.token.end > Math.min(node.end, originalRange.end)) {\n break;\n }\n consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation, node);\n }\n function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) {\n Debug.assert(!nodeIsSynthesized(child));\n if (nodeIsMissing(child) || isGrammarError(parent2, child)) {\n return inheritedIndentation;\n }\n const childStartPos = child.getStart(sourceFile);\n const childStartLine = sourceFile.getLineAndCharacterOfPosition(childStartPos).line;\n let undecoratedChildStartLine = childStartLine;\n if (hasDecorators(child)) {\n undecoratedChildStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(child, sourceFile)).line;\n }\n let childIndentationAmount = -1 /* Unknown */;\n if (isListItem && rangeContainsRange(originalRange, parent2)) {\n childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation);\n if (childIndentationAmount !== -1 /* Unknown */) {\n inheritedIndentation = childIndentationAmount;\n }\n }\n if (!rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) {\n if (child.end < originalRange.pos) {\n formattingScanner.skipToEndOf(child);\n }\n return inheritedIndentation;\n }\n if (child.getFullWidth() === 0) {\n return inheritedIndentation;\n }\n while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n const tokenInfo = formattingScanner.readTokenInfo(node);\n if (tokenInfo.token.end > originalRange.end) {\n return inheritedIndentation;\n }\n if (tokenInfo.token.end > childStartPos) {\n if (tokenInfo.token.pos > childStartPos) {\n formattingScanner.skipToStartOf(child);\n }\n break;\n }\n consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, node);\n }\n if (!formattingScanner.isOnToken() || formattingScanner.getTokenFullStart() >= originalRange.end) {\n return inheritedIndentation;\n }\n if (isToken(child)) {\n const tokenInfo = formattingScanner.readTokenInfo(child);\n if (child.kind !== 12 /* JsxText */) {\n Debug.assert(tokenInfo.token.end === child.end, \"Token end is child end\");\n consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);\n return inheritedIndentation;\n }\n }\n const effectiveParentStartLine = child.kind === 171 /* Decorator */ ? childStartLine : undecoratedParentStartLine;\n const childIndentation = computeIndentation(child, childStartLine, childIndentationAmount, node, parentDynamicIndentation, effectiveParentStartLine);\n processNode(child, childContextNode, childStartLine, undecoratedChildStartLine, childIndentation.indentation, childIndentation.delta);\n childContextNode = node;\n if (isFirstListItem && parent2.kind === 210 /* ArrayLiteralExpression */ && inheritedIndentation === -1 /* Unknown */) {\n inheritedIndentation = childIndentation.indentation;\n }\n return inheritedIndentation;\n }\n function processChildNodes(nodes, parent2, parentStartLine, parentDynamicIndentation) {\n Debug.assert(isNodeArray(nodes));\n Debug.assert(!nodeIsSynthesized(nodes));\n const listStartToken = getOpenTokenForList(parent2, nodes);\n let listDynamicIndentation = parentDynamicIndentation;\n let startLine = parentStartLine;\n if (!rangeOverlapsWithStartEnd(originalRange, nodes.pos, nodes.end)) {\n if (nodes.end < originalRange.pos) {\n formattingScanner.skipToEndOf(nodes);\n }\n return;\n }\n if (listStartToken !== 0 /* Unknown */) {\n while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n const tokenInfo = formattingScanner.readTokenInfo(parent2);\n if (tokenInfo.token.end > nodes.pos) {\n break;\n } else if (tokenInfo.token.kind === listStartToken) {\n startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line;\n consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2);\n let indentationOnListStartToken;\n if (indentationOnLastIndentedLine !== -1 /* Unknown */) {\n indentationOnListStartToken = indentationOnLastIndentedLine;\n } else {\n const startLinePosition = getLineStartPositionForPosition(tokenInfo.token.pos, sourceFile);\n indentationOnListStartToken = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, tokenInfo.token.pos, sourceFile, options);\n }\n listDynamicIndentation = getDynamicIndentation(parent2, parentStartLine, indentationOnListStartToken, options.indentSize);\n } else {\n consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2);\n }\n }\n }\n let inheritedIndentation = -1 /* Unknown */;\n for (let i = 0; i < nodes.length; i++) {\n const child = nodes[i];\n inheritedIndentation = processChildNode(\n child,\n inheritedIndentation,\n node,\n listDynamicIndentation,\n startLine,\n startLine,\n /*isListItem*/\n true,\n /*isFirstListItem*/\n i === 0\n );\n }\n const listEndToken = getCloseTokenForOpenToken(listStartToken);\n if (listEndToken !== 0 /* Unknown */ && formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n let tokenInfo = formattingScanner.readTokenInfo(parent2);\n if (tokenInfo.token.kind === 28 /* CommaToken */) {\n consumeTokenAndAdvanceScanner(tokenInfo, parent2, listDynamicIndentation, parent2);\n tokenInfo = formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(parent2) : void 0;\n }\n if (tokenInfo && tokenInfo.token.kind === listEndToken && rangeContainsRange(parent2, tokenInfo.token)) {\n consumeTokenAndAdvanceScanner(\n tokenInfo,\n parent2,\n listDynamicIndentation,\n parent2,\n /*isListEndToken*/\n true\n );\n }\n }\n }\n function consumeTokenAndAdvanceScanner(currentTokenInfo, parent2, dynamicIndentation, container, isListEndToken) {\n Debug.assert(rangeContainsRange(parent2, currentTokenInfo.token));\n const lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine();\n let indentToken = false;\n if (currentTokenInfo.leadingTrivia) {\n processTrivia(currentTokenInfo.leadingTrivia, parent2, childContextNode, dynamicIndentation);\n }\n let lineAction = 0 /* None */;\n const isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token);\n const tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos);\n if (isTokenInRange) {\n const rangeHasError = rangeContainsError(currentTokenInfo.token);\n const savePreviousRange = previousRange;\n lineAction = processRange(currentTokenInfo.token, tokenStart, parent2, childContextNode, dynamicIndentation);\n if (!rangeHasError) {\n if (lineAction === 0 /* None */) {\n const prevEndLine = savePreviousRange && sourceFile.getLineAndCharacterOfPosition(savePreviousRange.end).line;\n indentToken = lastTriviaWasNewLine && tokenStart.line !== prevEndLine;\n } else {\n indentToken = lineAction === 1 /* LineAdded */;\n }\n }\n }\n if (currentTokenInfo.trailingTrivia) {\n previousRangeTriviaEnd = last(currentTokenInfo.trailingTrivia).end;\n processTrivia(currentTokenInfo.trailingTrivia, parent2, childContextNode, dynamicIndentation);\n }\n if (indentToken) {\n const tokenIndentation = isTokenInRange && !rangeContainsError(currentTokenInfo.token) ? dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind, container, !!isListEndToken) : -1 /* Unknown */;\n let indentNextTokenOrTrivia = true;\n if (currentTokenInfo.leadingTrivia) {\n const commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind, tokenIndentation, container);\n indentNextTokenOrTrivia = indentTriviaItems(currentTokenInfo.leadingTrivia, commentIndentation, indentNextTokenOrTrivia, (item) => insertIndentation(\n item.pos,\n commentIndentation,\n /*lineAdded*/\n false\n ));\n }\n if (tokenIndentation !== -1 /* Unknown */ && indentNextTokenOrTrivia) {\n insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAction === 1 /* LineAdded */);\n lastIndentedLine = tokenStart.line;\n indentationOnLastIndentedLine = tokenIndentation;\n }\n }\n formattingScanner.advance();\n childContextNode = parent2;\n }\n }\n function indentTriviaItems(trivia, commentIndentation, indentNextTokenOrTrivia, indentSingleLine) {\n for (const triviaItem of trivia) {\n const triviaInRange = rangeContainsRange(originalRange, triviaItem);\n switch (triviaItem.kind) {\n case 3 /* MultiLineCommentTrivia */:\n if (triviaInRange) {\n indentMultilineComment(\n triviaItem,\n commentIndentation,\n /*firstLineIsIndented*/\n !indentNextTokenOrTrivia\n );\n }\n indentNextTokenOrTrivia = false;\n break;\n case 2 /* SingleLineCommentTrivia */:\n if (indentNextTokenOrTrivia && triviaInRange) {\n indentSingleLine(triviaItem);\n }\n indentNextTokenOrTrivia = false;\n break;\n case 4 /* NewLineTrivia */:\n indentNextTokenOrTrivia = true;\n break;\n }\n }\n return indentNextTokenOrTrivia;\n }\n function processTrivia(trivia, parent2, contextNode, dynamicIndentation) {\n for (const triviaItem of trivia) {\n if (isComment(triviaItem.kind) && rangeContainsRange(originalRange, triviaItem)) {\n const triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos);\n processRange(triviaItem, triviaItemStart, parent2, contextNode, dynamicIndentation);\n }\n }\n }\n function processRange(range, rangeStart, parent2, contextNode, dynamicIndentation) {\n const rangeHasError = rangeContainsError(range);\n let lineAction = 0 /* None */;\n if (!rangeHasError) {\n if (!previousRange) {\n const originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos);\n trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line);\n } else {\n lineAction = processPair(range, rangeStart.line, parent2, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation);\n }\n }\n previousRange = range;\n previousRangeTriviaEnd = range.end;\n previousParent = parent2;\n previousRangeStartLine = rangeStart.line;\n return lineAction;\n }\n function processPair(currentItem, currentStartLine, currentParent, previousItem, previousStartLine, previousParent2, contextNode, dynamicIndentation) {\n formattingContext.updateContext(previousItem, previousParent2, currentItem, currentParent, contextNode);\n const rules = getRules(formattingContext);\n let trimTrailingWhitespaces = formattingContext.options.trimTrailingWhitespace !== false;\n let lineAction = 0 /* None */;\n if (rules) {\n forEachRight(rules, (rule2) => {\n lineAction = applyRuleEdits(rule2, previousItem, previousStartLine, currentItem, currentStartLine);\n if (dynamicIndentation) {\n switch (lineAction) {\n case 2 /* LineRemoved */:\n if (currentParent.getStart(sourceFile) === currentItem.pos) {\n dynamicIndentation.recomputeIndentation(\n /*lineAddedByFormatting*/\n false,\n contextNode\n );\n }\n break;\n case 1 /* LineAdded */:\n if (currentParent.getStart(sourceFile) === currentItem.pos) {\n dynamicIndentation.recomputeIndentation(\n /*lineAddedByFormatting*/\n true,\n contextNode\n );\n }\n break;\n default:\n Debug.assert(lineAction === 0 /* None */);\n }\n }\n trimTrailingWhitespaces = trimTrailingWhitespaces && !(rule2.action & 16 /* DeleteSpace */) && rule2.flags !== 1 /* CanDeleteNewLines */;\n });\n } else {\n trimTrailingWhitespaces = trimTrailingWhitespaces && currentItem.kind !== 1 /* EndOfFileToken */;\n }\n if (currentStartLine !== previousStartLine && trimTrailingWhitespaces) {\n trimTrailingWhitespacesForLines(previousStartLine, currentStartLine, previousItem);\n }\n return lineAction;\n }\n function insertIndentation(pos, indentation, lineAdded) {\n const indentationString = getIndentationString(indentation, options);\n if (lineAdded) {\n recordReplace(pos, 0, indentationString);\n } else {\n const tokenStart = sourceFile.getLineAndCharacterOfPosition(pos);\n const startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile);\n if (indentation !== characterToColumn(startLinePosition, tokenStart.character) || indentationIsDifferent(indentationString, startLinePosition)) {\n recordReplace(startLinePosition, tokenStart.character, indentationString);\n }\n }\n }\n function characterToColumn(startLinePosition, characterInLine) {\n let column = 0;\n for (let i = 0; i < characterInLine; i++) {\n if (sourceFile.text.charCodeAt(startLinePosition + i) === 9 /* tab */) {\n column += options.tabSize - column % options.tabSize;\n } else {\n column++;\n }\n }\n return column;\n }\n function indentationIsDifferent(indentationString, startLinePosition) {\n return indentationString !== sourceFile.text.substr(startLinePosition, indentationString.length);\n }\n function indentMultilineComment(commentRange, indentation, firstLineIsIndented, indentFinalLine = true) {\n let startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line;\n if (startLine === endLine) {\n if (!firstLineIsIndented) {\n insertIndentation(\n commentRange.pos,\n indentation,\n /*lineAdded*/\n false\n );\n }\n return;\n }\n const parts = [];\n let startPos = commentRange.pos;\n for (let line = startLine; line < endLine; line++) {\n const endOfLine = getEndLinePosition(line, sourceFile);\n parts.push({ pos: startPos, end: endOfLine });\n startPos = getStartPositionOfLine(line + 1, sourceFile);\n }\n if (indentFinalLine) {\n parts.push({ pos: startPos, end: commentRange.end });\n }\n if (parts.length === 0) return;\n const startLinePos = getStartPositionOfLine(startLine, sourceFile);\n const nonWhitespaceColumnInFirstPart = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options);\n let startIndex = 0;\n if (firstLineIsIndented) {\n startIndex = 1;\n startLine++;\n }\n const delta2 = indentation - nonWhitespaceColumnInFirstPart.column;\n for (let i = startIndex; i < parts.length; i++, startLine++) {\n const startLinePos2 = getStartPositionOfLine(startLine, sourceFile);\n const nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options);\n const newIndentation = nonWhitespaceCharacterAndColumn.column + delta2;\n if (newIndentation > 0) {\n const indentationString = getIndentationString(newIndentation, options);\n recordReplace(startLinePos2, nonWhitespaceCharacterAndColumn.character, indentationString);\n } else {\n recordDelete(startLinePos2, nonWhitespaceCharacterAndColumn.character);\n }\n }\n }\n function trimTrailingWhitespacesForLines(line1, line2, range) {\n for (let line = line1; line < line2; line++) {\n const lineStartPosition = getStartPositionOfLine(line, sourceFile);\n const lineEndPosition = getEndLinePosition(line, sourceFile);\n if (range && (isComment(range.kind) || isStringOrRegularExpressionOrTemplateLiteral(range.kind)) && range.pos <= lineEndPosition && range.end > lineEndPosition) {\n continue;\n }\n const whitespaceStart = getTrailingWhitespaceStartPosition(lineStartPosition, lineEndPosition);\n if (whitespaceStart !== -1) {\n Debug.assert(whitespaceStart === lineStartPosition || !isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(whitespaceStart - 1)));\n recordDelete(whitespaceStart, lineEndPosition + 1 - whitespaceStart);\n }\n }\n }\n function getTrailingWhitespaceStartPosition(start, end) {\n let pos = end;\n while (pos >= start && isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(pos))) {\n pos--;\n }\n if (pos !== end) {\n return pos + 1;\n }\n return -1;\n }\n function trimTrailingWhitespacesForRemainingRange(trivias) {\n let startPos = previousRange ? previousRange.end : originalRange.pos;\n for (const trivia of trivias) {\n if (isComment(trivia.kind)) {\n if (startPos < trivia.pos) {\n trimTrailingWitespacesForPositions(startPos, trivia.pos - 1, previousRange);\n }\n startPos = trivia.end + 1;\n }\n }\n if (startPos < originalRange.end) {\n trimTrailingWitespacesForPositions(startPos, originalRange.end, previousRange);\n }\n }\n function trimTrailingWitespacesForPositions(startPos, endPos, previousRange2) {\n const startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(endPos).line;\n trimTrailingWhitespacesForLines(startLine, endLine + 1, previousRange2);\n }\n function recordDelete(start, len) {\n if (len) {\n edits.push(createTextChangeFromStartLength(start, len, \"\"));\n }\n }\n function recordReplace(start, len, newText) {\n if (len || newText) {\n edits.push(createTextChangeFromStartLength(start, len, newText));\n }\n }\n function recordInsert(start, text) {\n if (text) {\n edits.push(createTextChangeFromStartLength(start, 0, text));\n }\n }\n function applyRuleEdits(rule2, previousRange2, previousStartLine, currentRange, currentStartLine) {\n const onLaterLine = currentStartLine !== previousStartLine;\n switch (rule2.action) {\n case 1 /* StopProcessingSpaceActions */:\n return 0 /* None */;\n case 16 /* DeleteSpace */:\n if (previousRange2.end !== currentRange.pos) {\n recordDelete(previousRange2.end, currentRange.pos - previousRange2.end);\n return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;\n }\n break;\n case 32 /* DeleteToken */:\n recordDelete(previousRange2.pos, previousRange2.end - previousRange2.pos);\n break;\n case 8 /* InsertNewLine */:\n if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {\n return 0 /* None */;\n }\n const lineDelta = currentStartLine - previousStartLine;\n if (lineDelta !== 1) {\n recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, getNewLineOrDefaultFromHost(host, options));\n return onLaterLine ? 0 /* None */ : 1 /* LineAdded */;\n }\n break;\n case 4 /* InsertSpace */:\n if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {\n return 0 /* None */;\n }\n const posDelta = currentRange.pos - previousRange2.end;\n if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange2.end) !== 32 /* space */) {\n recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, \" \");\n return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;\n }\n break;\n case 64 /* InsertTrailingSemicolon */:\n recordInsert(previousRange2.end, \";\");\n }\n return 0 /* None */;\n }\n}\nfunction getRangeOfEnclosingComment(sourceFile, position, precedingToken, tokenAtPosition = getTokenAtPosition(sourceFile, position)) {\n const jsdoc = findAncestor(tokenAtPosition, isJSDoc);\n if (jsdoc) tokenAtPosition = jsdoc.parent;\n const tokenStart = tokenAtPosition.getStart(sourceFile);\n if (tokenStart <= position && position < tokenAtPosition.getEnd()) {\n return void 0;\n }\n precedingToken = precedingToken === null ? void 0 : precedingToken === void 0 ? findPrecedingToken(position, sourceFile) : precedingToken;\n const trailingRangesOfPreviousToken = precedingToken && getTrailingCommentRanges(sourceFile.text, precedingToken.end);\n const leadingCommentRangesOfNextToken = getLeadingCommentRangesOfNode(tokenAtPosition, sourceFile);\n const commentRanges = concatenate(trailingRangesOfPreviousToken, leadingCommentRangesOfNextToken);\n return commentRanges && find(commentRanges, (range) => rangeContainsPositionExclusive(range, position) || // The end marker of a single-line comment does not include the newline character.\n // With caret at `^`, in the following case, we are inside a comment (^ denotes the cursor position):\n //\n // // asdf ^\\n\n //\n // But for closed multi-line comments, we don't want to be inside the comment in the following case:\n //\n // /* asdf */^\n //\n // However, unterminated multi-line comments *do* contain their end.\n //\n // Internally, we represent the end of the comment at the newline and closing '/', respectively.\n //\n position === range.end && (range.kind === 2 /* SingleLineCommentTrivia */ || position === sourceFile.getFullWidth()));\n}\nfunction getOpenTokenForList(node, list) {\n switch (node.kind) {\n case 177 /* Constructor */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 220 /* ArrowFunction */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n if (node.typeParameters === list) {\n return 30 /* LessThanToken */;\n } else if (node.parameters === list) {\n return 21 /* OpenParenToken */;\n }\n break;\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n if (node.typeArguments === list) {\n return 30 /* LessThanToken */;\n } else if (node.arguments === list) {\n return 21 /* OpenParenToken */;\n }\n break;\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n if (node.typeParameters === list) {\n return 30 /* LessThanToken */;\n }\n break;\n case 184 /* TypeReference */:\n case 216 /* TaggedTemplateExpression */:\n case 187 /* TypeQuery */:\n case 234 /* ExpressionWithTypeArguments */:\n case 206 /* ImportType */:\n if (node.typeArguments === list) {\n return 30 /* LessThanToken */;\n }\n break;\n case 188 /* TypeLiteral */:\n return 19 /* OpenBraceToken */;\n }\n return 0 /* Unknown */;\n}\nfunction getCloseTokenForOpenToken(kind) {\n switch (kind) {\n case 21 /* OpenParenToken */:\n return 22 /* CloseParenToken */;\n case 30 /* LessThanToken */:\n return 32 /* GreaterThanToken */;\n case 19 /* OpenBraceToken */:\n return 20 /* CloseBraceToken */;\n }\n return 0 /* Unknown */;\n}\nvar internedSizes;\nvar internedTabsIndentation;\nvar internedSpacesIndentation;\nfunction getIndentationString(indentation, options) {\n const resetInternedStrings = !internedSizes || (internedSizes.tabSize !== options.tabSize || internedSizes.indentSize !== options.indentSize);\n if (resetInternedStrings) {\n internedSizes = { tabSize: options.tabSize, indentSize: options.indentSize };\n internedTabsIndentation = internedSpacesIndentation = void 0;\n }\n if (!options.convertTabsToSpaces) {\n const tabs = Math.floor(indentation / options.tabSize);\n const spaces = indentation - tabs * options.tabSize;\n let tabString;\n if (!internedTabsIndentation) {\n internedTabsIndentation = [];\n }\n if (internedTabsIndentation[tabs] === void 0) {\n internedTabsIndentation[tabs] = tabString = repeatString(\"\t\", tabs);\n } else {\n tabString = internedTabsIndentation[tabs];\n }\n return spaces ? tabString + repeatString(\" \", spaces) : tabString;\n } else {\n let spacesString;\n const quotient = Math.floor(indentation / options.indentSize);\n const remainder = indentation % options.indentSize;\n if (!internedSpacesIndentation) {\n internedSpacesIndentation = [];\n }\n if (internedSpacesIndentation[quotient] === void 0) {\n spacesString = repeatString(\" \", options.indentSize * quotient);\n internedSpacesIndentation[quotient] = spacesString;\n } else {\n spacesString = internedSpacesIndentation[quotient];\n }\n return remainder ? spacesString + repeatString(\" \", remainder) : spacesString;\n }\n}\n\n// src/services/formatting/smartIndenter.ts\nvar SmartIndenter;\n((SmartIndenter2) => {\n let Value;\n ((Value2) => {\n Value2[Value2[\"Unknown\"] = -1] = \"Unknown\";\n })(Value || (Value = {}));\n function getIndentation(position, sourceFile, options, assumeNewLineBeforeCloseBrace = false) {\n if (position > sourceFile.text.length) {\n return getBaseIndentation(options);\n }\n if (options.indentStyle === 0 /* None */) {\n return 0;\n }\n const precedingToken = findPrecedingToken(\n position,\n sourceFile,\n /*startNode*/\n void 0,\n /*excludeJsdoc*/\n true\n );\n const enclosingCommentRange = getRangeOfEnclosingComment(sourceFile, position, precedingToken || null);\n if (enclosingCommentRange && enclosingCommentRange.kind === 3 /* MultiLineCommentTrivia */) {\n return getCommentIndent(sourceFile, position, options, enclosingCommentRange);\n }\n if (!precedingToken) {\n return getBaseIndentation(options);\n }\n const precedingTokenIsLiteral = isStringOrRegularExpressionOrTemplateLiteral(precedingToken.kind);\n if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && position < precedingToken.end) {\n return 0;\n }\n const lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line;\n const currentToken = getTokenAtPosition(sourceFile, position);\n const isObjectLiteral = currentToken.kind === 19 /* OpenBraceToken */ && currentToken.parent.kind === 211 /* ObjectLiteralExpression */;\n if (options.indentStyle === 1 /* Block */ || isObjectLiteral) {\n return getBlockIndent(sourceFile, position, options);\n }\n if (precedingToken.kind === 28 /* CommaToken */ && precedingToken.parent.kind !== 227 /* BinaryExpression */) {\n const actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options);\n if (actualIndentation !== -1 /* Unknown */) {\n return actualIndentation;\n }\n }\n const containerList = getListByPosition(position, precedingToken.parent, sourceFile);\n if (containerList && !rangeContainsRange(containerList, precedingToken)) {\n const useTheSameBaseIndentation = [219 /* FunctionExpression */, 220 /* ArrowFunction */].includes(currentToken.parent.kind);\n const indentSize = useTheSameBaseIndentation ? 0 : options.indentSize;\n return getActualIndentationForListStartLine(containerList, sourceFile, options) + indentSize;\n }\n return getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options);\n }\n SmartIndenter2.getIndentation = getIndentation;\n function getCommentIndent(sourceFile, position, options, enclosingCommentRange) {\n const previousLine = getLineAndCharacterOfPosition(sourceFile, position).line - 1;\n const commentStartLine = getLineAndCharacterOfPosition(sourceFile, enclosingCommentRange.pos).line;\n Debug.assert(commentStartLine >= 0);\n if (previousLine <= commentStartLine) {\n return findFirstNonWhitespaceColumn(getStartPositionOfLine(commentStartLine, sourceFile), position, sourceFile, options);\n }\n const startPositionOfLine = getStartPositionOfLine(previousLine, sourceFile);\n const { column, character } = findFirstNonWhitespaceCharacterAndColumn(startPositionOfLine, position, sourceFile, options);\n if (column === 0) {\n return column;\n }\n const firstNonWhitespaceCharacterCode = sourceFile.text.charCodeAt(startPositionOfLine + character);\n return firstNonWhitespaceCharacterCode === 42 /* asterisk */ ? column - 1 : column;\n }\n function getBlockIndent(sourceFile, position, options) {\n let current = position;\n while (current > 0) {\n const char = sourceFile.text.charCodeAt(current);\n if (!isWhiteSpaceLike(char)) {\n break;\n }\n current--;\n }\n const lineStart = getLineStartPositionForPosition(current, sourceFile);\n return findFirstNonWhitespaceColumn(lineStart, current, sourceFile, options);\n }\n function getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options) {\n let previous;\n let current = precedingToken;\n while (current) {\n if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(\n options,\n current,\n previous,\n sourceFile,\n /*isNextChild*/\n true\n )) {\n const currentStart = getStartLineAndCharacterForNode(current, sourceFile);\n const nextTokenKind = nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile);\n const indentationDelta = nextTokenKind !== 0 /* Unknown */ ? assumeNewLineBeforeCloseBrace && nextTokenKind === 2 /* CloseBrace */ ? options.indentSize : 0 : lineAtPosition !== currentStart.line ? options.indentSize : 0;\n return getIndentationForNodeWorker(\n current,\n currentStart,\n /*ignoreActualIndentationRange*/\n void 0,\n indentationDelta,\n sourceFile,\n /*isNextChild*/\n true,\n options\n );\n }\n const actualIndentation = getActualIndentationForListItem(\n current,\n sourceFile,\n options,\n /*listIndentsChild*/\n true\n );\n if (actualIndentation !== -1 /* Unknown */) {\n return actualIndentation;\n }\n previous = current;\n current = current.parent;\n }\n return getBaseIndentation(options);\n }\n function getIndentationForNode(n, ignoreActualIndentationRange, sourceFile, options) {\n const start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile));\n return getIndentationForNodeWorker(\n n,\n start,\n ignoreActualIndentationRange,\n /*indentationDelta*/\n 0,\n sourceFile,\n /*isNextChild*/\n false,\n options\n );\n }\n SmartIndenter2.getIndentationForNode = getIndentationForNode;\n function getBaseIndentation(options) {\n return options.baseIndentSize || 0;\n }\n SmartIndenter2.getBaseIndentation = getBaseIndentation;\n function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, isNextChild, options) {\n var _a;\n let parent2 = current.parent;\n while (parent2) {\n let useActualIndentation = true;\n if (ignoreActualIndentationRange) {\n const start = current.getStart(sourceFile);\n useActualIndentation = start < ignoreActualIndentationRange.pos || start > ignoreActualIndentationRange.end;\n }\n const containingListOrParentStart = getContainingListOrParentStart(parent2, current, sourceFile);\n const parentAndChildShareLine = containingListOrParentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent2, current, currentStart.line, sourceFile);\n if (useActualIndentation) {\n const firstListChild = (_a = getContainingList(current, sourceFile)) == null ? void 0 : _a[0];\n const listIndentsChild = !!firstListChild && getStartLineAndCharacterForNode(firstListChild, sourceFile).line > containingListOrParentStart.line;\n let actualIndentation = getActualIndentationForListItem(current, sourceFile, options, listIndentsChild);\n if (actualIndentation !== -1 /* Unknown */) {\n return actualIndentation + indentationDelta;\n }\n actualIndentation = getActualIndentationForNode(current, parent2, currentStart, parentAndChildShareLine, sourceFile, options);\n if (actualIndentation !== -1 /* Unknown */) {\n return actualIndentation + indentationDelta;\n }\n }\n if (shouldIndentChildNode(options, parent2, current, sourceFile, isNextChild) && !parentAndChildShareLine) {\n indentationDelta += options.indentSize;\n }\n const useTrueStart = isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, current, currentStart.line, sourceFile);\n current = parent2;\n parent2 = current.parent;\n currentStart = useTrueStart ? sourceFile.getLineAndCharacterOfPosition(current.getStart(sourceFile)) : containingListOrParentStart;\n }\n return indentationDelta + getBaseIndentation(options);\n }\n function getContainingListOrParentStart(parent2, child, sourceFile) {\n const containingList = getContainingList(child, sourceFile);\n const startPos = containingList ? containingList.pos : parent2.getStart(sourceFile);\n return sourceFile.getLineAndCharacterOfPosition(startPos);\n }\n function getActualIndentationForListItemBeforeComma(commaToken, sourceFile, options) {\n const commaItemInfo = findListItemInfo(commaToken);\n if (commaItemInfo && commaItemInfo.listItemIndex > 0) {\n return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options);\n } else {\n return -1 /* Unknown */;\n }\n }\n function getActualIndentationForNode(current, parent2, currentLineAndChar, parentAndChildShareLine, sourceFile, options) {\n const useActualIndentation = (isDeclaration(current) || isStatementButNotDeclaration(current)) && (parent2.kind === 308 /* SourceFile */ || !parentAndChildShareLine);\n if (!useActualIndentation) {\n return -1 /* Unknown */;\n }\n return findColumnForFirstNonWhitespaceCharacterInLine(currentLineAndChar, sourceFile, options);\n }\n let NextTokenKind;\n ((NextTokenKind2) => {\n NextTokenKind2[NextTokenKind2[\"Unknown\"] = 0] = \"Unknown\";\n NextTokenKind2[NextTokenKind2[\"OpenBrace\"] = 1] = \"OpenBrace\";\n NextTokenKind2[NextTokenKind2[\"CloseBrace\"] = 2] = \"CloseBrace\";\n })(NextTokenKind || (NextTokenKind = {}));\n function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile) {\n const nextToken = findNextToken(precedingToken, current, sourceFile);\n if (!nextToken) {\n return 0 /* Unknown */;\n }\n if (nextToken.kind === 19 /* OpenBraceToken */) {\n return 1 /* OpenBrace */;\n } else if (nextToken.kind === 20 /* CloseBraceToken */) {\n const nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line;\n return lineAtPosition === nextTokenStartLine ? 2 /* CloseBrace */ : 0 /* Unknown */;\n }\n return 0 /* Unknown */;\n }\n function getStartLineAndCharacterForNode(n, sourceFile) {\n return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile));\n }\n function isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, child, childStartLine, sourceFile) {\n if (!(isCallExpression(parent2) && contains(parent2.arguments, child))) {\n return false;\n }\n const expressionOfCallExpressionEnd = parent2.expression.getEnd();\n const expressionOfCallExpressionEndLine = getLineAndCharacterOfPosition(sourceFile, expressionOfCallExpressionEnd).line;\n return expressionOfCallExpressionEndLine === childStartLine;\n }\n SmartIndenter2.isArgumentAndStartLineOverlapsExpressionBeingCalled = isArgumentAndStartLineOverlapsExpressionBeingCalled;\n function childStartsOnTheSameLineWithElseInIfStatement(parent2, child, childStartLine, sourceFile) {\n if (parent2.kind === 246 /* IfStatement */ && parent2.elseStatement === child) {\n const elseKeyword = findChildOfKind(parent2, 93 /* ElseKeyword */, sourceFile);\n Debug.assert(elseKeyword !== void 0);\n const elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line;\n return elseKeywordStartLine === childStartLine;\n }\n return false;\n }\n SmartIndenter2.childStartsOnTheSameLineWithElseInIfStatement = childStartsOnTheSameLineWithElseInIfStatement;\n function childIsUnindentedBranchOfConditionalExpression(parent2, child, childStartLine, sourceFile) {\n if (isConditionalExpression(parent2) && (child === parent2.whenTrue || child === parent2.whenFalse)) {\n const conditionEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.condition.end).line;\n if (child === parent2.whenTrue) {\n return childStartLine === conditionEndLine;\n } else {\n const trueStartLine = getStartLineAndCharacterForNode(parent2.whenTrue, sourceFile).line;\n const trueEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.whenTrue.end).line;\n return conditionEndLine === trueStartLine && trueEndLine === childStartLine;\n }\n }\n return false;\n }\n SmartIndenter2.childIsUnindentedBranchOfConditionalExpression = childIsUnindentedBranchOfConditionalExpression;\n function argumentStartsOnSameLineAsPreviousArgument(parent2, child, childStartLine, sourceFile) {\n if (isCallOrNewExpression(parent2)) {\n if (!parent2.arguments) return false;\n const currentNode = find(parent2.arguments, (arg) => arg.pos === child.pos);\n if (!currentNode) return false;\n const currentIndex = parent2.arguments.indexOf(currentNode);\n if (currentIndex === 0) return false;\n const previousNode = parent2.arguments[currentIndex - 1];\n const lineOfPreviousNode = getLineAndCharacterOfPosition(sourceFile, previousNode.getEnd()).line;\n if (childStartLine === lineOfPreviousNode) {\n return true;\n }\n }\n return false;\n }\n SmartIndenter2.argumentStartsOnSameLineAsPreviousArgument = argumentStartsOnSameLineAsPreviousArgument;\n function getContainingList(node, sourceFile) {\n return node.parent && getListByRange(node.getStart(sourceFile), node.getEnd(), node.parent, sourceFile);\n }\n SmartIndenter2.getContainingList = getContainingList;\n function getListByPosition(pos, node, sourceFile) {\n return node && getListByRange(pos, pos, node, sourceFile);\n }\n function getListByRange(start, end, node, sourceFile) {\n switch (node.kind) {\n case 184 /* TypeReference */:\n return getList(node.typeArguments);\n case 211 /* ObjectLiteralExpression */:\n return getList(node.properties);\n case 210 /* ArrayLiteralExpression */:\n return getList(node.elements);\n case 188 /* TypeLiteral */:\n return getList(node.members);\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 220 /* ArrowFunction */:\n case 175 /* MethodDeclaration */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 177 /* Constructor */:\n case 186 /* ConstructorType */:\n case 181 /* ConstructSignature */:\n return getList(node.typeParameters) || getList(node.parameters);\n case 178 /* GetAccessor */:\n return getList(node.parameters);\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 346 /* JSDocTemplateTag */:\n return getList(node.typeParameters);\n case 215 /* NewExpression */:\n case 214 /* CallExpression */:\n return getList(node.typeArguments) || getList(node.arguments);\n case 262 /* VariableDeclarationList */:\n return getList(node.declarations);\n case 276 /* NamedImports */:\n case 280 /* NamedExports */:\n return getList(node.elements);\n case 207 /* ObjectBindingPattern */:\n case 208 /* ArrayBindingPattern */:\n return getList(node.elements);\n }\n function getList(list) {\n return list && rangeContainsStartEnd(getVisualListRange(node, list, sourceFile), start, end) ? list : void 0;\n }\n }\n function getVisualListRange(node, list, sourceFile) {\n const children = node.getChildren(sourceFile);\n for (let i = 1; i < children.length - 1; i++) {\n if (children[i].pos === list.pos && children[i].end === list.end) {\n return { pos: children[i - 1].end, end: children[i + 1].getStart(sourceFile) };\n }\n }\n return list;\n }\n function getActualIndentationForListStartLine(list, sourceFile, options) {\n if (!list) {\n return -1 /* Unknown */;\n }\n return findColumnForFirstNonWhitespaceCharacterInLine(sourceFile.getLineAndCharacterOfPosition(list.pos), sourceFile, options);\n }\n function getActualIndentationForListItem(node, sourceFile, options, listIndentsChild) {\n if (node.parent && node.parent.kind === 262 /* VariableDeclarationList */) {\n return -1 /* Unknown */;\n }\n const containingList = getContainingList(node, sourceFile);\n if (containingList) {\n const index = containingList.indexOf(node);\n if (index !== -1) {\n const result = deriveActualIndentationFromList(containingList, index, sourceFile, options);\n if (result !== -1 /* Unknown */) {\n return result;\n }\n }\n return getActualIndentationForListStartLine(containingList, sourceFile, options) + (listIndentsChild ? options.indentSize : 0);\n }\n return -1 /* Unknown */;\n }\n function deriveActualIndentationFromList(list, index, sourceFile, options) {\n Debug.assert(index >= 0 && index < list.length);\n const node = list[index];\n let lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile);\n for (let i = index - 1; i >= 0; i--) {\n if (list[i].kind === 28 /* CommaToken */) {\n continue;\n }\n const prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line;\n if (prevEndLine !== lineAndCharacter.line) {\n return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options);\n }\n lineAndCharacter = getStartLineAndCharacterForNode(list[i], sourceFile);\n }\n return -1 /* Unknown */;\n }\n function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options) {\n const lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0);\n return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options);\n }\n function findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options) {\n let character = 0;\n let column = 0;\n for (let pos = startPos; pos < endPos; pos++) {\n const ch = sourceFile.text.charCodeAt(pos);\n if (!isWhiteSpaceSingleLine(ch)) {\n break;\n }\n if (ch === 9 /* tab */) {\n column += options.tabSize + column % options.tabSize;\n } else {\n column++;\n }\n character++;\n }\n return { column, character };\n }\n SmartIndenter2.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn;\n function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) {\n return findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options).column;\n }\n SmartIndenter2.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn;\n function nodeWillIndentChild(settings, parent2, child, sourceFile, indentByDefault) {\n const childKind = child ? child.kind : 0 /* Unknown */;\n switch (parent2.kind) {\n case 245 /* ExpressionStatement */:\n case 264 /* ClassDeclaration */:\n case 232 /* ClassExpression */:\n case 265 /* InterfaceDeclaration */:\n case 267 /* EnumDeclaration */:\n case 266 /* TypeAliasDeclaration */:\n case 210 /* ArrayLiteralExpression */:\n case 242 /* Block */:\n case 269 /* ModuleBlock */:\n case 211 /* ObjectLiteralExpression */:\n case 188 /* TypeLiteral */:\n case 201 /* MappedType */:\n case 190 /* TupleType */:\n case 218 /* ParenthesizedExpression */:\n case 212 /* PropertyAccessExpression */:\n case 214 /* CallExpression */:\n case 215 /* NewExpression */:\n case 244 /* VariableStatement */:\n case 278 /* ExportAssignment */:\n case 254 /* ReturnStatement */:\n case 228 /* ConditionalExpression */:\n case 208 /* ArrayBindingPattern */:\n case 207 /* ObjectBindingPattern */:\n case 287 /* JsxOpeningElement */:\n case 290 /* JsxOpeningFragment */:\n case 286 /* JsxSelfClosingElement */:\n case 295 /* JsxExpression */:\n case 174 /* MethodSignature */:\n case 180 /* CallSignature */:\n case 181 /* ConstructSignature */:\n case 170 /* Parameter */:\n case 185 /* FunctionType */:\n case 186 /* ConstructorType */:\n case 197 /* ParenthesizedType */:\n case 216 /* TaggedTemplateExpression */:\n case 224 /* AwaitExpression */:\n case 280 /* NamedExports */:\n case 276 /* NamedImports */:\n case 282 /* ExportSpecifier */:\n case 277 /* ImportSpecifier */:\n case 173 /* PropertyDeclaration */:\n case 297 /* CaseClause */:\n case 298 /* DefaultClause */:\n return true;\n case 270 /* CaseBlock */:\n return settings.indentSwitchCase ?? true;\n case 261 /* VariableDeclaration */:\n case 304 /* PropertyAssignment */:\n case 227 /* BinaryExpression */:\n if (!settings.indentMultiLineObjectLiteralBeginningOnBlankLine && sourceFile && childKind === 211 /* ObjectLiteralExpression */) {\n return rangeIsOnOneLine(sourceFile, child);\n }\n if (parent2.kind === 227 /* BinaryExpression */ && sourceFile && child && childKind === 285 /* JsxElement */) {\n const parentStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, parent2.pos)).line;\n const childStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, child.pos)).line;\n return parentStartLine !== childStartLine;\n }\n if (parent2.kind !== 227 /* BinaryExpression */) {\n return true;\n }\n break;\n case 247 /* DoStatement */:\n case 248 /* WhileStatement */:\n case 250 /* ForInStatement */:\n case 251 /* ForOfStatement */:\n case 249 /* ForStatement */:\n case 246 /* IfStatement */:\n case 263 /* FunctionDeclaration */:\n case 219 /* FunctionExpression */:\n case 175 /* MethodDeclaration */:\n case 177 /* Constructor */:\n case 178 /* GetAccessor */:\n case 179 /* SetAccessor */:\n return childKind !== 242 /* Block */;\n case 220 /* ArrowFunction */:\n if (sourceFile && childKind === 218 /* ParenthesizedExpression */) {\n return rangeIsOnOneLine(sourceFile, child);\n }\n return childKind !== 242 /* Block */;\n case 279 /* ExportDeclaration */:\n return childKind !== 280 /* NamedExports */;\n case 273 /* ImportDeclaration */:\n return childKind !== 274 /* ImportClause */ || !!child.namedBindings && child.namedBindings.kind !== 276 /* NamedImports */;\n case 285 /* JsxElement */:\n return childKind !== 288 /* JsxClosingElement */;\n case 289 /* JsxFragment */:\n return childKind !== 291 /* JsxClosingFragment */;\n case 194 /* IntersectionType */:\n case 193 /* UnionType */:\n case 239 /* SatisfiesExpression */:\n if (childKind === 188 /* TypeLiteral */ || childKind === 190 /* TupleType */ || childKind === 201 /* MappedType */) {\n return false;\n }\n break;\n case 259 /* TryStatement */:\n if (childKind === 242 /* Block */) {\n return false;\n }\n break;\n }\n return indentByDefault;\n }\n SmartIndenter2.nodeWillIndentChild = nodeWillIndentChild;\n function isControlFlowEndingStatement(kind, parent2) {\n switch (kind) {\n case 254 /* ReturnStatement */:\n case 258 /* ThrowStatement */:\n case 252 /* ContinueStatement */:\n case 253 /* BreakStatement */:\n return parent2.kind !== 242 /* Block */;\n default:\n return false;\n }\n }\n function shouldIndentChildNode(settings, parent2, child, sourceFile, isNextChild = false) {\n return nodeWillIndentChild(\n settings,\n parent2,\n child,\n sourceFile,\n /*indentByDefault*/\n false\n ) && !(isNextChild && child && isControlFlowEndingStatement(child.kind, parent2));\n }\n SmartIndenter2.shouldIndentChildNode = shouldIndentChildNode;\n function rangeIsOnOneLine(sourceFile, range) {\n const rangeStart = skipTrivia(sourceFile.text, range.pos);\n const startLine = sourceFile.getLineAndCharacterOfPosition(rangeStart).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(range.end).line;\n return startLine === endLine;\n }\n})(SmartIndenter || (SmartIndenter = {}));\n\n// src/services/_namespaces/ts.preparePasteEdits.ts\nvar ts_preparePasteEdits_exports = {};\n__export(ts_preparePasteEdits_exports, {\n preparePasteEdits: () => preparePasteEdits\n});\n\n// src/services/preparePasteEdits.ts\nfunction preparePasteEdits(sourceFile, copiedFromRange, checker) {\n let shouldProvidePasteEdits = false;\n copiedFromRange.forEach((range) => {\n const enclosingNode = findAncestor(\n getTokenAtPosition(sourceFile, range.pos),\n (ancestorNode) => rangeContainsRange(ancestorNode, range)\n );\n if (!enclosingNode) return;\n forEachChild(enclosingNode, function checkNameResolution(node) {\n var _a;\n if (shouldProvidePasteEdits) return;\n if (isIdentifier(node) && rangeContainsPosition(range, node.getStart(sourceFile))) {\n const resolvedSymbol = checker.resolveName(\n node.text,\n node,\n -1 /* All */,\n /*excludeGlobals*/\n false\n );\n if (resolvedSymbol && resolvedSymbol.declarations) {\n for (const decl of resolvedSymbol.declarations) {\n if (isInImport(decl) || !!(node.text && sourceFile.symbol && ((_a = sourceFile.symbol.exports) == null ? void 0 : _a.has(node.escapedText)))) {\n shouldProvidePasteEdits = true;\n return;\n }\n }\n }\n }\n node.forEachChild(checkNameResolution);\n });\n if (shouldProvidePasteEdits) return;\n });\n return shouldProvidePasteEdits;\n}\n\n// src/services/_namespaces/ts.PasteEdits.ts\nvar ts_PasteEdits_exports = {};\n__export(ts_PasteEdits_exports, {\n pasteEditsProvider: () => pasteEditsProvider\n});\n\n// src/services/pasteEdits.ts\nvar fixId55 = \"providePostPasteEdits\";\nfunction pasteEditsProvider(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken) {\n const changes = ts_textChanges_exports.ChangeTracker.with({ host, formatContext, preferences }, (changeTracker) => pasteEdits(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken, changeTracker));\n return { edits: changes, fixId: fixId55 };\n}\nfunction pasteEdits(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken, changes) {\n let actualPastedText;\n if (pastedText.length !== pasteLocations.length) {\n actualPastedText = pastedText.length === 1 ? pastedText[0] : pastedText.join(getNewLineOrDefaultFromHost(formatContext.host, formatContext.options));\n }\n const statements = [];\n let newText = targetFile.text;\n for (let i = pasteLocations.length - 1; i >= 0; i--) {\n const { pos, end } = pasteLocations[i];\n newText = actualPastedText ? newText.slice(0, pos) + actualPastedText + newText.slice(end) : newText.slice(0, pos) + pastedText[i] + newText.slice(end);\n }\n let importAdder;\n Debug.checkDefined(host.runWithTemporaryFileUpdate).call(host, targetFile.fileName, newText, (updatedProgram, originalProgram, updatedFile) => {\n importAdder = ts_codefix_exports.createImportAdder(updatedFile, updatedProgram, preferences, host);\n if (copiedFrom == null ? void 0 : copiedFrom.range) {\n Debug.assert(copiedFrom.range.length === pastedText.length);\n copiedFrom.range.forEach((copy) => {\n const statementsInSourceFile = copiedFrom.file.statements;\n const startNodeIndex = findIndex(statementsInSourceFile, (s) => s.end > copy.pos);\n if (startNodeIndex === -1) return void 0;\n let endNodeIndex = findIndex(statementsInSourceFile, (s) => s.end >= copy.end, startNodeIndex);\n if (endNodeIndex !== -1 && copy.end <= statementsInSourceFile[endNodeIndex].getStart()) {\n endNodeIndex--;\n }\n statements.push(...statementsInSourceFile.slice(startNodeIndex, endNodeIndex === -1 ? statementsInSourceFile.length : endNodeIndex + 1));\n });\n Debug.assertIsDefined(originalProgram, \"no original program found\");\n const originalProgramTypeChecker = originalProgram.getTypeChecker();\n const usageInfoRange = getUsageInfoRangeForPasteEdits(copiedFrom);\n const usage = getUsageInfo(copiedFrom.file, statements, originalProgramTypeChecker, getExistingLocals(updatedFile, statements, originalProgramTypeChecker), usageInfoRange);\n const useEsModuleSyntax = !fileShouldUseJavaScriptRequire(targetFile.fileName, originalProgram, host, !!copiedFrom.file.commonJsModuleIndicator);\n addExportsInOldFile(copiedFrom.file, usage.targetFileImportsFromOldFile, changes, useEsModuleSyntax);\n addTargetFileImports(copiedFrom.file, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, originalProgramTypeChecker, updatedProgram, importAdder);\n } else {\n const context = {\n sourceFile: updatedFile,\n program: originalProgram,\n cancellationToken,\n host,\n preferences,\n formatContext\n };\n let offset = 0;\n pasteLocations.forEach((location, i) => {\n const oldTextLength = location.end - location.pos;\n const textToBePasted = actualPastedText ?? pastedText[i];\n const startPos = location.pos + offset;\n const endPos = startPos + textToBePasted.length;\n const range = { pos: startPos, end: endPos };\n offset += textToBePasted.length - oldTextLength;\n const enclosingNode = findAncestor(\n getTokenAtPosition(context.sourceFile, range.pos),\n (ancestorNode) => rangeContainsRange(ancestorNode, range)\n );\n if (!enclosingNode) return;\n forEachChild(enclosingNode, function importUnresolvedIdentifiers(node) {\n const isImportCandidate = isIdentifier(node) && rangeContainsPosition(range, node.getStart(updatedFile)) && !(updatedProgram == null ? void 0 : updatedProgram.getTypeChecker().resolveName(\n node.text,\n node,\n -1 /* All */,\n /*excludeGlobals*/\n false\n ));\n if (isImportCandidate) {\n return importAdder.addImportForUnresolvedIdentifier(\n context,\n node,\n /*useAutoImportProvider*/\n true\n );\n }\n node.forEachChild(importUnresolvedIdentifiers);\n });\n });\n }\n importAdder.writeFixes(changes, getQuotePreference(copiedFrom ? copiedFrom.file : targetFile, preferences));\n });\n if (!importAdder.hasFixes()) {\n return;\n }\n pasteLocations.forEach((paste, i) => {\n changes.replaceRangeWithText(\n targetFile,\n { pos: paste.pos, end: paste.end },\n actualPastedText ?? pastedText[i]\n );\n });\n}\nfunction getUsageInfoRangeForPasteEdits({ file: sourceFile, range }) {\n const pos = range[0].pos;\n const end = range[range.length - 1].end;\n const startToken = getTokenAtPosition(sourceFile, pos);\n const endToken = findTokenOnLeftOfPosition(sourceFile, pos) ?? getTokenAtPosition(sourceFile, end);\n return {\n pos: isIdentifier(startToken) && pos <= startToken.getStart(sourceFile) ? startToken.getFullStart() : pos,\n end: isIdentifier(endToken) && end === endToken.getEnd() ? ts_textChanges_exports.getAdjustedEndPosition(sourceFile, endToken, {}) : end\n };\n}\n\n// src/server/_namespaces/ts.ts\nvar ts_exports2 = {};\n__export(ts_exports2, {\n ANONYMOUS: () => ANONYMOUS,\n AccessFlags: () => AccessFlags,\n AssertionLevel: () => AssertionLevel,\n AssignmentDeclarationKind: () => AssignmentDeclarationKind,\n AssignmentKind: () => AssignmentKind,\n Associativity: () => Associativity,\n BreakpointResolver: () => ts_BreakpointResolver_exports,\n BuilderFileEmit: () => BuilderFileEmit,\n BuilderProgramKind: () => BuilderProgramKind,\n BuilderState: () => BuilderState,\n CallHierarchy: () => ts_CallHierarchy_exports,\n CharacterCodes: () => CharacterCodes,\n CheckFlags: () => CheckFlags,\n CheckMode: () => CheckMode,\n ClassificationType: () => ClassificationType,\n ClassificationTypeNames: () => ClassificationTypeNames,\n CommentDirectiveType: () => CommentDirectiveType,\n Comparison: () => Comparison,\n CompletionInfoFlags: () => CompletionInfoFlags,\n CompletionTriggerKind: () => CompletionTriggerKind,\n Completions: () => ts_Completions_exports,\n ContainerFlags: () => ContainerFlags,\n ContextFlags: () => ContextFlags,\n Debug: () => Debug,\n DiagnosticCategory: () => DiagnosticCategory,\n Diagnostics: () => Diagnostics,\n DocumentHighlights: () => DocumentHighlights,\n ElementFlags: () => ElementFlags,\n EmitFlags: () => EmitFlags,\n EmitHint: () => EmitHint,\n EmitOnly: () => EmitOnly,\n EndOfLineState: () => EndOfLineState,\n ExitStatus: () => ExitStatus,\n ExportKind: () => ExportKind,\n Extension: () => Extension,\n ExternalEmitHelpers: () => ExternalEmitHelpers,\n FileIncludeKind: () => FileIncludeKind,\n FilePreprocessingDiagnosticsKind: () => FilePreprocessingDiagnosticsKind,\n FileSystemEntryKind: () => FileSystemEntryKind,\n FileWatcherEventKind: () => FileWatcherEventKind,\n FindAllReferences: () => ts_FindAllReferences_exports,\n FlattenLevel: () => FlattenLevel,\n FlowFlags: () => FlowFlags,\n ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences,\n FunctionFlags: () => FunctionFlags,\n GeneratedIdentifierFlags: () => GeneratedIdentifierFlags,\n GetLiteralTextFlags: () => GetLiteralTextFlags,\n GoToDefinition: () => ts_GoToDefinition_exports,\n HighlightSpanKind: () => HighlightSpanKind,\n IdentifierNameMap: () => IdentifierNameMap,\n ImportKind: () => ImportKind,\n ImportsNotUsedAsValues: () => ImportsNotUsedAsValues,\n IndentStyle: () => IndentStyle,\n IndexFlags: () => IndexFlags,\n IndexKind: () => IndexKind,\n InferenceFlags: () => InferenceFlags,\n InferencePriority: () => InferencePriority,\n InlayHintKind: () => InlayHintKind2,\n InlayHints: () => ts_InlayHints_exports,\n InternalEmitFlags: () => InternalEmitFlags,\n InternalNodeBuilderFlags: () => InternalNodeBuilderFlags,\n InternalSymbolName: () => InternalSymbolName,\n IntersectionFlags: () => IntersectionFlags,\n InvalidatedProjectKind: () => InvalidatedProjectKind,\n JSDocParsingMode: () => JSDocParsingMode,\n JsDoc: () => ts_JsDoc_exports,\n JsTyping: () => ts_JsTyping_exports,\n JsxEmit: () => JsxEmit,\n JsxFlags: () => JsxFlags,\n JsxReferenceKind: () => JsxReferenceKind,\n LanguageFeatureMinimumTarget: () => LanguageFeatureMinimumTarget,\n LanguageServiceMode: () => LanguageServiceMode,\n LanguageVariant: () => LanguageVariant,\n LexicalEnvironmentFlags: () => LexicalEnvironmentFlags,\n ListFormat: () => ListFormat,\n LogLevel: () => LogLevel,\n MapCode: () => ts_MapCode_exports,\n MemberOverrideStatus: () => MemberOverrideStatus,\n ModifierFlags: () => ModifierFlags,\n ModuleDetectionKind: () => ModuleDetectionKind,\n ModuleInstanceState: () => ModuleInstanceState,\n ModuleKind: () => ModuleKind,\n ModuleResolutionKind: () => ModuleResolutionKind,\n ModuleSpecifierEnding: () => ModuleSpecifierEnding,\n NavigateTo: () => ts_NavigateTo_exports,\n NavigationBar: () => ts_NavigationBar_exports,\n NewLineKind: () => NewLineKind,\n NodeBuilderFlags: () => NodeBuilderFlags,\n NodeCheckFlags: () => NodeCheckFlags,\n NodeFactoryFlags: () => NodeFactoryFlags,\n NodeFlags: () => NodeFlags,\n NodeResolutionFeatures: () => NodeResolutionFeatures,\n ObjectFlags: () => ObjectFlags,\n OperationCanceledException: () => OperationCanceledException,\n OperatorPrecedence: () => OperatorPrecedence,\n OrganizeImports: () => ts_OrganizeImports_exports,\n OrganizeImportsMode: () => OrganizeImportsMode,\n OuterExpressionKinds: () => OuterExpressionKinds,\n OutliningElementsCollector: () => ts_OutliningElementsCollector_exports,\n OutliningSpanKind: () => OutliningSpanKind,\n OutputFileType: () => OutputFileType,\n PackageJsonAutoImportPreference: () => PackageJsonAutoImportPreference,\n PackageJsonDependencyGroup: () => PackageJsonDependencyGroup,\n PatternMatchKind: () => PatternMatchKind,\n PollingInterval: () => PollingInterval,\n PollingWatchKind: () => PollingWatchKind,\n PragmaKindFlags: () => PragmaKindFlags,\n PredicateSemantics: () => PredicateSemantics,\n PreparePasteEdits: () => ts_preparePasteEdits_exports,\n PrivateIdentifierKind: () => PrivateIdentifierKind,\n ProcessLevel: () => ProcessLevel,\n ProgramUpdateLevel: () => ProgramUpdateLevel,\n QuotePreference: () => QuotePreference,\n RegularExpressionFlags: () => RegularExpressionFlags,\n RelationComparisonResult: () => RelationComparisonResult,\n Rename: () => ts_Rename_exports,\n ScriptElementKind: () => ScriptElementKind,\n ScriptElementKindModifier: () => ScriptElementKindModifier,\n ScriptKind: () => ScriptKind,\n ScriptSnapshot: () => ScriptSnapshot,\n ScriptTarget: () => ScriptTarget,\n SemanticClassificationFormat: () => SemanticClassificationFormat,\n SemanticMeaning: () => SemanticMeaning,\n SemicolonPreference: () => SemicolonPreference,\n SignatureCheckMode: () => SignatureCheckMode,\n SignatureFlags: () => SignatureFlags,\n SignatureHelp: () => ts_SignatureHelp_exports,\n SignatureInfo: () => SignatureInfo,\n SignatureKind: () => SignatureKind,\n SmartSelectionRange: () => ts_SmartSelectionRange_exports,\n SnippetKind: () => SnippetKind,\n StatisticType: () => StatisticType,\n StructureIsReused: () => StructureIsReused,\n SymbolAccessibility: () => SymbolAccessibility,\n SymbolDisplay: () => ts_SymbolDisplay_exports,\n SymbolDisplayPartKind: () => SymbolDisplayPartKind,\n SymbolFlags: () => SymbolFlags,\n SymbolFormatFlags: () => SymbolFormatFlags,\n SyntaxKind: () => SyntaxKind,\n Ternary: () => Ternary,\n ThrottledCancellationToken: () => ThrottledCancellationToken,\n TokenClass: () => TokenClass,\n TokenFlags: () => TokenFlags,\n TransformFlags: () => TransformFlags,\n TypeFacts: () => TypeFacts,\n TypeFlags: () => TypeFlags,\n TypeFormatFlags: () => TypeFormatFlags,\n TypeMapKind: () => TypeMapKind,\n TypePredicateKind: () => TypePredicateKind,\n TypeReferenceSerializationKind: () => TypeReferenceSerializationKind,\n UnionReduction: () => UnionReduction,\n UpToDateStatusType: () => UpToDateStatusType,\n VarianceFlags: () => VarianceFlags,\n Version: () => Version,\n VersionRange: () => VersionRange,\n WatchDirectoryFlags: () => WatchDirectoryFlags,\n WatchDirectoryKind: () => WatchDirectoryKind,\n WatchFileKind: () => WatchFileKind,\n WatchLogLevel: () => WatchLogLevel,\n WatchType: () => WatchType,\n accessPrivateIdentifier: () => accessPrivateIdentifier,\n addEmitFlags: () => addEmitFlags,\n addEmitHelper: () => addEmitHelper,\n addEmitHelpers: () => addEmitHelpers,\n addInternalEmitFlags: () => addInternalEmitFlags,\n addNodeFactoryPatcher: () => addNodeFactoryPatcher,\n addObjectAllocatorPatcher: () => addObjectAllocatorPatcher,\n addRange: () => addRange,\n addRelatedInfo: () => addRelatedInfo,\n addSyntheticLeadingComment: () => addSyntheticLeadingComment,\n addSyntheticTrailingComment: () => addSyntheticTrailingComment,\n addToSeen: () => addToSeen,\n advancedAsyncSuperHelper: () => advancedAsyncSuperHelper,\n affectsDeclarationPathOptionDeclarations: () => affectsDeclarationPathOptionDeclarations,\n affectsEmitOptionDeclarations: () => affectsEmitOptionDeclarations,\n allKeysStartWithDot: () => allKeysStartWithDot,\n altDirectorySeparator: () => altDirectorySeparator,\n and: () => and,\n append: () => append,\n appendIfUnique: () => appendIfUnique,\n arrayFrom: () => arrayFrom,\n arrayIsEqualTo: () => arrayIsEqualTo,\n arrayIsHomogeneous: () => arrayIsHomogeneous,\n arrayOf: () => arrayOf,\n arrayReverseIterator: () => arrayReverseIterator,\n arrayToMap: () => arrayToMap,\n arrayToMultiMap: () => arrayToMultiMap,\n arrayToNumericMap: () => arrayToNumericMap,\n assertType: () => assertType,\n assign: () => assign,\n asyncSuperHelper: () => asyncSuperHelper,\n attachFileToDiagnostics: () => attachFileToDiagnostics,\n base64decode: () => base64decode,\n base64encode: () => base64encode,\n binarySearch: () => binarySearch,\n binarySearchKey: () => binarySearchKey,\n bindSourceFile: () => bindSourceFile,\n breakIntoCharacterSpans: () => breakIntoCharacterSpans,\n breakIntoWordSpans: () => breakIntoWordSpans,\n buildLinkParts: () => buildLinkParts,\n buildOpts: () => buildOpts,\n buildOverload: () => buildOverload,\n bundlerModuleNameResolver: () => bundlerModuleNameResolver,\n canBeConvertedToAsync: () => canBeConvertedToAsync,\n canHaveDecorators: () => canHaveDecorators,\n canHaveExportModifier: () => canHaveExportModifier,\n canHaveFlowNode: () => canHaveFlowNode,\n canHaveIllegalDecorators: () => canHaveIllegalDecorators,\n canHaveIllegalModifiers: () => canHaveIllegalModifiers,\n canHaveIllegalType: () => canHaveIllegalType,\n canHaveIllegalTypeParameters: () => canHaveIllegalTypeParameters,\n canHaveJSDoc: () => canHaveJSDoc,\n canHaveLocals: () => canHaveLocals,\n canHaveModifiers: () => canHaveModifiers,\n canHaveModuleSpecifier: () => canHaveModuleSpecifier,\n canHaveSymbol: () => canHaveSymbol,\n canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,\n canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,\n canProduceDiagnostics: () => canProduceDiagnostics,\n canUsePropertyAccess: () => canUsePropertyAccess,\n canWatchAffectingLocation: () => canWatchAffectingLocation,\n canWatchAtTypes: () => canWatchAtTypes,\n canWatchDirectoryOrFile: () => canWatchDirectoryOrFile,\n canWatchDirectoryOrFilePath: () => canWatchDirectoryOrFilePath,\n cartesianProduct: () => cartesianProduct,\n cast: () => cast,\n chainBundle: () => chainBundle,\n chainDiagnosticMessages: () => chainDiagnosticMessages,\n changeAnyExtension: () => changeAnyExtension,\n changeCompilerHostLikeToUseCache: () => changeCompilerHostLikeToUseCache,\n changeExtension: () => changeExtension,\n changeFullExtension: () => changeFullExtension,\n changesAffectModuleResolution: () => changesAffectModuleResolution,\n changesAffectingProgramStructure: () => changesAffectingProgramStructure,\n characterCodeToRegularExpressionFlag: () => characterCodeToRegularExpressionFlag,\n childIsDecorated: () => childIsDecorated,\n classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,\n classHasClassThisAssignment: () => classHasClassThisAssignment,\n classHasDeclaredOrExplicitlyAssignedName: () => classHasDeclaredOrExplicitlyAssignedName,\n classHasExplicitlyAssignedName: () => classHasExplicitlyAssignedName,\n classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated,\n classicNameResolver: () => classicNameResolver,\n classifier: () => ts_classifier_exports,\n cleanExtendedConfigCache: () => cleanExtendedConfigCache,\n clear: () => clear,\n clearMap: () => clearMap,\n clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher,\n climbPastPropertyAccess: () => climbPastPropertyAccess,\n clone: () => clone,\n cloneCompilerOptions: () => cloneCompilerOptions,\n closeFileWatcher: () => closeFileWatcher,\n closeFileWatcherOf: () => closeFileWatcherOf,\n codefix: () => ts_codefix_exports,\n collapseTextChangeRangesAcrossMultipleVersions: () => collapseTextChangeRangesAcrossMultipleVersions,\n collectExternalModuleInfo: () => collectExternalModuleInfo,\n combine: () => combine,\n combinePaths: () => combinePaths,\n commandLineOptionOfCustomType: () => commandLineOptionOfCustomType,\n commentPragmas: () => commentPragmas,\n commonOptionsWithBuild: () => commonOptionsWithBuild,\n compact: () => compact,\n compareBooleans: () => compareBooleans,\n compareDataObjects: () => compareDataObjects,\n compareDiagnostics: () => compareDiagnostics,\n compareEmitHelpers: () => compareEmitHelpers,\n compareNumberOfDirectorySeparators: () => compareNumberOfDirectorySeparators,\n comparePaths: () => comparePaths,\n comparePathsCaseInsensitive: () => comparePathsCaseInsensitive,\n comparePathsCaseSensitive: () => comparePathsCaseSensitive,\n comparePatternKeys: () => comparePatternKeys,\n compareProperties: () => compareProperties,\n compareStringsCaseInsensitive: () => compareStringsCaseInsensitive,\n compareStringsCaseInsensitiveEslintCompatible: () => compareStringsCaseInsensitiveEslintCompatible,\n compareStringsCaseSensitive: () => compareStringsCaseSensitive,\n compareStringsCaseSensitiveUI: () => compareStringsCaseSensitiveUI,\n compareTextSpans: () => compareTextSpans,\n compareValues: () => compareValues,\n compilerOptionsAffectDeclarationPath: () => compilerOptionsAffectDeclarationPath,\n compilerOptionsAffectEmit: () => compilerOptionsAffectEmit,\n compilerOptionsAffectSemanticDiagnostics: () => compilerOptionsAffectSemanticDiagnostics,\n compilerOptionsDidYouMeanDiagnostics: () => compilerOptionsDidYouMeanDiagnostics,\n compilerOptionsIndicateEsModules: () => compilerOptionsIndicateEsModules,\n computeCommonSourceDirectoryOfFilenames: () => computeCommonSourceDirectoryOfFilenames,\n computeLineAndCharacterOfPosition: () => computeLineAndCharacterOfPosition,\n computeLineOfPosition: () => computeLineOfPosition,\n computeLineStarts: () => computeLineStarts,\n computePositionOfLineAndCharacter: () => computePositionOfLineAndCharacter,\n computeSignatureWithDiagnostics: () => computeSignatureWithDiagnostics,\n computeSuggestionDiagnostics: () => computeSuggestionDiagnostics,\n computedOptions: () => computedOptions,\n concatenate: () => concatenate,\n concatenateDiagnosticMessageChains: () => concatenateDiagnosticMessageChains,\n consumesNodeCoreModules: () => consumesNodeCoreModules,\n contains: () => contains,\n containsIgnoredPath: () => containsIgnoredPath,\n containsObjectRestOrSpread: () => containsObjectRestOrSpread,\n containsParseError: () => containsParseError,\n containsPath: () => containsPath,\n convertCompilerOptionsForTelemetry: () => convertCompilerOptionsForTelemetry,\n convertCompilerOptionsFromJson: () => convertCompilerOptionsFromJson,\n convertJsonOption: () => convertJsonOption,\n convertToBase64: () => convertToBase64,\n convertToJson: () => convertToJson,\n convertToObject: () => convertToObject,\n convertToOptionsWithAbsolutePaths: () => convertToOptionsWithAbsolutePaths,\n convertToRelativePath: () => convertToRelativePath,\n convertToTSConfig: () => convertToTSConfig,\n convertTypeAcquisitionFromJson: () => convertTypeAcquisitionFromJson,\n copyComments: () => copyComments,\n copyEntries: () => copyEntries,\n copyLeadingComments: () => copyLeadingComments,\n copyProperties: () => copyProperties,\n copyTrailingAsLeadingComments: () => copyTrailingAsLeadingComments,\n copyTrailingComments: () => copyTrailingComments,\n couldStartTrivia: () => couldStartTrivia,\n countWhere: () => countWhere,\n createAbstractBuilder: () => createAbstractBuilder,\n createAccessorPropertyBackingField: () => createAccessorPropertyBackingField,\n createAccessorPropertyGetRedirector: () => createAccessorPropertyGetRedirector,\n createAccessorPropertySetRedirector: () => createAccessorPropertySetRedirector,\n createBaseNodeFactory: () => createBaseNodeFactory,\n createBinaryExpressionTrampoline: () => createBinaryExpressionTrampoline,\n createBuilderProgram: () => createBuilderProgram,\n createBuilderProgramUsingIncrementalBuildInfo: () => createBuilderProgramUsingIncrementalBuildInfo,\n createBuilderStatusReporter: () => createBuilderStatusReporter,\n createCacheableExportInfoMap: () => createCacheableExportInfoMap,\n createCachedDirectoryStructureHost: () => createCachedDirectoryStructureHost,\n createClassifier: () => createClassifier,\n createCommentDirectivesMap: () => createCommentDirectivesMap,\n createCompilerDiagnostic: () => createCompilerDiagnostic,\n createCompilerDiagnosticForInvalidCustomType: () => createCompilerDiagnosticForInvalidCustomType,\n createCompilerDiagnosticFromMessageChain: () => createCompilerDiagnosticFromMessageChain,\n createCompilerHost: () => createCompilerHost,\n createCompilerHostFromProgramHost: () => createCompilerHostFromProgramHost,\n createCompilerHostWorker: () => createCompilerHostWorker,\n createDetachedDiagnostic: () => createDetachedDiagnostic,\n createDiagnosticCollection: () => createDiagnosticCollection,\n createDiagnosticForFileFromMessageChain: () => createDiagnosticForFileFromMessageChain,\n createDiagnosticForNode: () => createDiagnosticForNode,\n createDiagnosticForNodeArray: () => createDiagnosticForNodeArray,\n createDiagnosticForNodeArrayFromMessageChain: () => createDiagnosticForNodeArrayFromMessageChain,\n createDiagnosticForNodeFromMessageChain: () => createDiagnosticForNodeFromMessageChain,\n createDiagnosticForNodeInSourceFile: () => createDiagnosticForNodeInSourceFile,\n createDiagnosticForRange: () => createDiagnosticForRange,\n createDiagnosticMessageChainFromDiagnostic: () => createDiagnosticMessageChainFromDiagnostic,\n createDiagnosticReporter: () => createDiagnosticReporter,\n createDocumentPositionMapper: () => createDocumentPositionMapper,\n createDocumentRegistry: () => createDocumentRegistry,\n createDocumentRegistryInternal: () => createDocumentRegistryInternal,\n createEmitAndSemanticDiagnosticsBuilderProgram: () => createEmitAndSemanticDiagnosticsBuilderProgram,\n createEmitHelperFactory: () => createEmitHelperFactory,\n createEmptyExports: () => createEmptyExports,\n createEvaluator: () => createEvaluator,\n createExpressionForJsxElement: () => createExpressionForJsxElement,\n createExpressionForJsxFragment: () => createExpressionForJsxFragment,\n createExpressionForObjectLiteralElementLike: () => createExpressionForObjectLiteralElementLike,\n createExpressionForPropertyName: () => createExpressionForPropertyName,\n createExpressionFromEntityName: () => createExpressionFromEntityName,\n createExternalHelpersImportDeclarationIfNeeded: () => createExternalHelpersImportDeclarationIfNeeded,\n createFileDiagnostic: () => createFileDiagnostic,\n createFileDiagnosticFromMessageChain: () => createFileDiagnosticFromMessageChain,\n createFlowNode: () => createFlowNode,\n createForOfBindingStatement: () => createForOfBindingStatement,\n createFutureSourceFile: () => createFutureSourceFile,\n createGetCanonicalFileName: () => createGetCanonicalFileName,\n createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,\n createGetSourceFile: () => createGetSourceFile,\n createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,\n createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,\n createGetSymbolWalker: () => createGetSymbolWalker,\n createIncrementalCompilerHost: () => createIncrementalCompilerHost,\n createIncrementalProgram: () => createIncrementalProgram,\n createJsxFactoryExpression: () => createJsxFactoryExpression,\n createLanguageService: () => createLanguageService,\n createLanguageServiceSourceFile: () => createLanguageServiceSourceFile,\n createMemberAccessForPropertyName: () => createMemberAccessForPropertyName,\n createModeAwareCache: () => createModeAwareCache,\n createModeAwareCacheKey: () => createModeAwareCacheKey,\n createModeMismatchDetails: () => createModeMismatchDetails,\n createModuleNotFoundChain: () => createModuleNotFoundChain,\n createModuleResolutionCache: () => createModuleResolutionCache,\n createModuleResolutionLoader: () => createModuleResolutionLoader,\n createModuleResolutionLoaderUsingGlobalCache: () => createModuleResolutionLoaderUsingGlobalCache,\n createModuleSpecifierResolutionHost: () => createModuleSpecifierResolutionHost,\n createMultiMap: () => createMultiMap,\n createNameResolver: () => createNameResolver,\n createNodeConverters: () => createNodeConverters,\n createNodeFactory: () => createNodeFactory,\n createOptionNameMap: () => createOptionNameMap,\n createOverload: () => createOverload,\n createPackageJsonImportFilter: () => createPackageJsonImportFilter,\n createPackageJsonInfo: () => createPackageJsonInfo,\n createParenthesizerRules: () => createParenthesizerRules,\n createPatternMatcher: () => createPatternMatcher,\n createPrinter: () => createPrinter,\n createPrinterWithDefaults: () => createPrinterWithDefaults,\n createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,\n createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,\n createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n createProgram: () => createProgram,\n createProgramDiagnostics: () => createProgramDiagnostics,\n createProgramHost: () => createProgramHost,\n createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,\n createQueue: () => createQueue,\n createRange: () => createRange,\n createRedirectedBuilderProgram: () => createRedirectedBuilderProgram,\n createResolutionCache: () => createResolutionCache,\n createRuntimeTypeSerializer: () => createRuntimeTypeSerializer,\n createScanner: () => createScanner,\n createSemanticDiagnosticsBuilderProgram: () => createSemanticDiagnosticsBuilderProgram,\n createSet: () => createSet,\n createSolutionBuilder: () => createSolutionBuilder,\n createSolutionBuilderHost: () => createSolutionBuilderHost,\n createSolutionBuilderWithWatch: () => createSolutionBuilderWithWatch,\n createSolutionBuilderWithWatchHost: () => createSolutionBuilderWithWatchHost,\n createSortedArray: () => createSortedArray,\n createSourceFile: () => createSourceFile,\n createSourceMapGenerator: () => createSourceMapGenerator,\n createSourceMapSource: () => createSourceMapSource,\n createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,\n createSymbolTable: () => createSymbolTable,\n createSymlinkCache: () => createSymlinkCache,\n createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,\n createSystemWatchFunctions: () => createSystemWatchFunctions,\n createTextChange: () => createTextChange,\n createTextChangeFromStartLength: () => createTextChangeFromStartLength,\n createTextChangeRange: () => createTextChangeRange,\n createTextRangeFromNode: () => createTextRangeFromNode,\n createTextRangeFromSpan: () => createTextRangeFromSpan,\n createTextSpan: () => createTextSpan,\n createTextSpanFromBounds: () => createTextSpanFromBounds,\n createTextSpanFromNode: () => createTextSpanFromNode,\n createTextSpanFromRange: () => createTextSpanFromRange,\n createTextSpanFromStringLiteralLikeContent: () => createTextSpanFromStringLiteralLikeContent,\n createTextWriter: () => createTextWriter,\n createTokenRange: () => createTokenRange,\n createTypeChecker: () => createTypeChecker,\n createTypeReferenceDirectiveResolutionCache: () => createTypeReferenceDirectiveResolutionCache,\n createTypeReferenceResolutionLoader: () => createTypeReferenceResolutionLoader,\n createWatchCompilerHost: () => createWatchCompilerHost2,\n createWatchCompilerHostOfConfigFile: () => createWatchCompilerHostOfConfigFile,\n createWatchCompilerHostOfFilesAndCompilerOptions: () => createWatchCompilerHostOfFilesAndCompilerOptions,\n createWatchFactory: () => createWatchFactory,\n createWatchHost: () => createWatchHost,\n createWatchProgram: () => createWatchProgram,\n createWatchStatusReporter: () => createWatchStatusReporter,\n createWriteFileMeasuringIO: () => createWriteFileMeasuringIO,\n declarationNameToString: () => declarationNameToString,\n decodeMappings: () => decodeMappings,\n decodedTextSpanIntersectsWith: () => decodedTextSpanIntersectsWith,\n deduplicate: () => deduplicate,\n defaultHoverMaximumTruncationLength: () => defaultHoverMaximumTruncationLength,\n defaultInitCompilerOptions: () => defaultInitCompilerOptions,\n defaultMaximumTruncationLength: () => defaultMaximumTruncationLength,\n diagnosticCategoryName: () => diagnosticCategoryName,\n diagnosticToString: () => diagnosticToString,\n diagnosticsEqualityComparer: () => diagnosticsEqualityComparer,\n directoryProbablyExists: () => directoryProbablyExists,\n directorySeparator: () => directorySeparator,\n displayPart: () => displayPart,\n displayPartsToString: () => displayPartsToString,\n disposeEmitNodes: () => disposeEmitNodes,\n documentSpansEqual: () => documentSpansEqual,\n dumpTracingLegend: () => dumpTracingLegend,\n elementAt: () => elementAt,\n elideNodes: () => elideNodes,\n emitDetachedComments: () => emitDetachedComments,\n emitFiles: () => emitFiles,\n emitFilesAndReportErrors: () => emitFilesAndReportErrors,\n emitFilesAndReportErrorsAndGetExitStatus: () => emitFilesAndReportErrorsAndGetExitStatus,\n emitModuleKindIsNonNodeESM: () => emitModuleKindIsNonNodeESM,\n emitNewLineBeforeLeadingCommentOfPosition: () => emitNewLineBeforeLeadingCommentOfPosition,\n emitResolverSkipsTypeChecking: () => emitResolverSkipsTypeChecking,\n emitSkippedWithNoDiagnostics: () => emitSkippedWithNoDiagnostics,\n emptyArray: () => emptyArray,\n emptyFileSystemEntries: () => emptyFileSystemEntries,\n emptyMap: () => emptyMap,\n emptyOptions: () => emptyOptions,\n endsWith: () => endsWith,\n ensurePathIsNonModuleName: () => ensurePathIsNonModuleName,\n ensureScriptKind: () => ensureScriptKind,\n ensureTrailingDirectorySeparator: () => ensureTrailingDirectorySeparator,\n entityNameToString: () => entityNameToString,\n enumerateInsertsAndDeletes: () => enumerateInsertsAndDeletes,\n equalOwnProperties: () => equalOwnProperties,\n equateStringsCaseInsensitive: () => equateStringsCaseInsensitive,\n equateStringsCaseSensitive: () => equateStringsCaseSensitive,\n equateValues: () => equateValues,\n escapeJsxAttributeString: () => escapeJsxAttributeString,\n escapeLeadingUnderscores: () => escapeLeadingUnderscores,\n escapeNonAsciiString: () => escapeNonAsciiString,\n escapeSnippetText: () => escapeSnippetText,\n escapeString: () => escapeString,\n escapeTemplateSubstitution: () => escapeTemplateSubstitution,\n evaluatorResult: () => evaluatorResult,\n every: () => every,\n exclusivelyPrefixedNodeCoreModules: () => exclusivelyPrefixedNodeCoreModules,\n executeCommandLine: () => executeCommandLine,\n expandPreOrPostfixIncrementOrDecrementExpression: () => expandPreOrPostfixIncrementOrDecrementExpression,\n explainFiles: () => explainFiles,\n explainIfFileIsRedirectAndImpliedFormat: () => explainIfFileIsRedirectAndImpliedFormat,\n exportAssignmentIsAlias: () => exportAssignmentIsAlias,\n expressionResultIsUnused: () => expressionResultIsUnused,\n extend: () => extend,\n extensionFromPath: () => extensionFromPath,\n extensionIsTS: () => extensionIsTS,\n extensionsNotSupportingExtensionlessResolution: () => extensionsNotSupportingExtensionlessResolution,\n externalHelpersModuleNameText: () => externalHelpersModuleNameText,\n factory: () => factory,\n fileExtensionIs: () => fileExtensionIs,\n fileExtensionIsOneOf: () => fileExtensionIsOneOf,\n fileIncludeReasonToDiagnostics: () => fileIncludeReasonToDiagnostics,\n fileShouldUseJavaScriptRequire: () => fileShouldUseJavaScriptRequire,\n filter: () => filter,\n filterMutate: () => filterMutate,\n filterSemanticDiagnostics: () => filterSemanticDiagnostics,\n find: () => find,\n findAncestor: () => findAncestor,\n findBestPatternMatch: () => findBestPatternMatch,\n findChildOfKind: () => findChildOfKind,\n findComputedPropertyNameCacheAssignment: () => findComputedPropertyNameCacheAssignment,\n findConfigFile: () => findConfigFile,\n findConstructorDeclaration: () => findConstructorDeclaration,\n findContainingList: () => findContainingList,\n findDiagnosticForNode: () => findDiagnosticForNode,\n findFirstNonJsxWhitespaceToken: () => findFirstNonJsxWhitespaceToken,\n findIndex: () => findIndex,\n findLast: () => findLast,\n findLastIndex: () => findLastIndex,\n findListItemInfo: () => findListItemInfo,\n findModifier: () => findModifier,\n findNextToken: () => findNextToken,\n findPackageJson: () => findPackageJson,\n findPackageJsons: () => findPackageJsons,\n findPrecedingMatchingToken: () => findPrecedingMatchingToken,\n findPrecedingToken: () => findPrecedingToken,\n findSuperStatementIndexPath: () => findSuperStatementIndexPath,\n findTokenOnLeftOfPosition: () => findTokenOnLeftOfPosition,\n findUseStrictPrologue: () => findUseStrictPrologue,\n first: () => first,\n firstDefined: () => firstDefined,\n firstDefinedIterator: () => firstDefinedIterator,\n firstIterator: () => firstIterator,\n firstOrOnly: () => firstOrOnly,\n firstOrUndefined: () => firstOrUndefined,\n firstOrUndefinedIterator: () => firstOrUndefinedIterator,\n fixupCompilerOptions: () => fixupCompilerOptions,\n flatMap: () => flatMap,\n flatMapIterator: () => flatMapIterator,\n flatMapToMutable: () => flatMapToMutable,\n flatten: () => flatten,\n flattenCommaList: () => flattenCommaList,\n flattenDestructuringAssignment: () => flattenDestructuringAssignment,\n flattenDestructuringBinding: () => flattenDestructuringBinding,\n flattenDiagnosticMessageText: () => flattenDiagnosticMessageText,\n forEach: () => forEach,\n forEachAncestor: () => forEachAncestor,\n forEachAncestorDirectory: () => forEachAncestorDirectory,\n forEachAncestorDirectoryStoppingAtGlobalCache: () => forEachAncestorDirectoryStoppingAtGlobalCache,\n forEachChild: () => forEachChild,\n forEachChildRecursively: () => forEachChildRecursively,\n forEachDynamicImportOrRequireCall: () => forEachDynamicImportOrRequireCall,\n forEachEmittedFile: () => forEachEmittedFile,\n forEachEnclosingBlockScopeContainer: () => forEachEnclosingBlockScopeContainer,\n forEachEntry: () => forEachEntry,\n forEachExternalModuleToImportFrom: () => forEachExternalModuleToImportFrom,\n forEachImportClauseDeclaration: () => forEachImportClauseDeclaration,\n forEachKey: () => forEachKey,\n forEachLeadingCommentRange: () => forEachLeadingCommentRange,\n forEachNameInAccessChainWalkingLeft: () => forEachNameInAccessChainWalkingLeft,\n forEachNameOfDefaultExport: () => forEachNameOfDefaultExport,\n forEachOptionsSyntaxByName: () => forEachOptionsSyntaxByName,\n forEachProjectReference: () => forEachProjectReference,\n forEachPropertyAssignment: () => forEachPropertyAssignment,\n forEachResolvedProjectReference: () => forEachResolvedProjectReference,\n forEachReturnStatement: () => forEachReturnStatement,\n forEachRight: () => forEachRight,\n forEachTrailingCommentRange: () => forEachTrailingCommentRange,\n forEachTsConfigPropArray: () => forEachTsConfigPropArray,\n forEachUnique: () => forEachUnique,\n forEachYieldExpression: () => forEachYieldExpression,\n formatColorAndReset: () => formatColorAndReset,\n formatDiagnostic: () => formatDiagnostic,\n formatDiagnostics: () => formatDiagnostics,\n formatDiagnosticsWithColorAndContext: () => formatDiagnosticsWithColorAndContext,\n formatGeneratedName: () => formatGeneratedName,\n formatGeneratedNamePart: () => formatGeneratedNamePart,\n formatLocation: () => formatLocation,\n formatMessage: () => formatMessage,\n formatStringFromArgs: () => formatStringFromArgs,\n formatting: () => ts_formatting_exports,\n generateDjb2Hash: () => generateDjb2Hash,\n generateTSConfig: () => generateTSConfig,\n getAdjustedReferenceLocation: () => getAdjustedReferenceLocation,\n getAdjustedRenameLocation: () => getAdjustedRenameLocation,\n getAliasDeclarationFromName: () => getAliasDeclarationFromName,\n getAllAccessorDeclarations: () => getAllAccessorDeclarations,\n getAllDecoratorsOfClass: () => getAllDecoratorsOfClass,\n getAllDecoratorsOfClassElement: () => getAllDecoratorsOfClassElement,\n getAllJSDocTags: () => getAllJSDocTags,\n getAllJSDocTagsOfKind: () => getAllJSDocTagsOfKind,\n getAllKeys: () => getAllKeys,\n getAllProjectOutputs: () => getAllProjectOutputs,\n getAllSuperTypeNodes: () => getAllSuperTypeNodes,\n getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,\n getAllowJSCompilerOption: () => getAllowJSCompilerOption,\n getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,\n getAncestor: () => getAncestor,\n getAnyExtensionFromPath: () => getAnyExtensionFromPath,\n getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,\n getAssignedExpandoInitializer: () => getAssignedExpandoInitializer,\n getAssignedName: () => getAssignedName,\n getAssignmentDeclarationKind: () => getAssignmentDeclarationKind,\n getAssignmentDeclarationPropertyAccessKind: () => getAssignmentDeclarationPropertyAccessKind,\n getAssignmentTargetKind: () => getAssignmentTargetKind,\n getAutomaticTypeDirectiveNames: () => getAutomaticTypeDirectiveNames,\n getBaseFileName: () => getBaseFileName,\n getBinaryOperatorPrecedence: () => getBinaryOperatorPrecedence,\n getBuildInfo: () => getBuildInfo,\n getBuildInfoFileVersionMap: () => getBuildInfoFileVersionMap,\n getBuildInfoText: () => getBuildInfoText,\n getBuildOrderFromAnyBuildOrder: () => getBuildOrderFromAnyBuildOrder,\n getBuilderCreationParameters: () => getBuilderCreationParameters,\n getBuilderFileEmit: () => getBuilderFileEmit,\n getCanonicalDiagnostic: () => getCanonicalDiagnostic,\n getCheckFlags: () => getCheckFlags,\n getClassExtendsHeritageElement: () => getClassExtendsHeritageElement,\n getClassLikeDeclarationOfSymbol: () => getClassLikeDeclarationOfSymbol,\n getCombinedLocalAndExportSymbolFlags: () => getCombinedLocalAndExportSymbolFlags,\n getCombinedModifierFlags: () => getCombinedModifierFlags,\n getCombinedNodeFlags: () => getCombinedNodeFlags,\n getCombinedNodeFlagsAlwaysIncludeJSDoc: () => getCombinedNodeFlagsAlwaysIncludeJSDoc,\n getCommentRange: () => getCommentRange,\n getCommonSourceDirectory: () => getCommonSourceDirectory,\n getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,\n getCompilerOptionValue: () => getCompilerOptionValue,\n getConditions: () => getConditions,\n getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,\n getConstantValue: () => getConstantValue,\n getContainerFlags: () => getContainerFlags,\n getContainerNode: () => getContainerNode,\n getContainingClass: () => getContainingClass,\n getContainingClassExcludingClassDecorators: () => getContainingClassExcludingClassDecorators,\n getContainingClassStaticBlock: () => getContainingClassStaticBlock,\n getContainingFunction: () => getContainingFunction,\n getContainingFunctionDeclaration: () => getContainingFunctionDeclaration,\n getContainingFunctionOrClassStaticBlock: () => getContainingFunctionOrClassStaticBlock,\n getContainingNodeArray: () => getContainingNodeArray,\n getContainingObjectLiteralElement: () => getContainingObjectLiteralElement,\n getContextualTypeFromParent: () => getContextualTypeFromParent,\n getContextualTypeFromParentOrAncestorTypeNode: () => getContextualTypeFromParentOrAncestorTypeNode,\n getDeclarationDiagnostics: () => getDeclarationDiagnostics,\n getDeclarationEmitExtensionForPath: () => getDeclarationEmitExtensionForPath,\n getDeclarationEmitOutputFilePath: () => getDeclarationEmitOutputFilePath,\n getDeclarationEmitOutputFilePathWorker: () => getDeclarationEmitOutputFilePathWorker,\n getDeclarationFileExtension: () => getDeclarationFileExtension,\n getDeclarationFromName: () => getDeclarationFromName,\n getDeclarationModifierFlagsFromSymbol: () => getDeclarationModifierFlagsFromSymbol,\n getDeclarationOfKind: () => getDeclarationOfKind,\n getDeclarationsOfKind: () => getDeclarationsOfKind,\n getDeclaredExpandoInitializer: () => getDeclaredExpandoInitializer,\n getDecorators: () => getDecorators,\n getDefaultCompilerOptions: () => getDefaultCompilerOptions2,\n getDefaultFormatCodeSettings: () => getDefaultFormatCodeSettings,\n getDefaultLibFileName: () => getDefaultLibFileName,\n getDefaultLibFilePath: () => getDefaultLibFilePath,\n getDefaultLikeExportInfo: () => getDefaultLikeExportInfo,\n getDefaultLikeExportNameFromDeclaration: () => getDefaultLikeExportNameFromDeclaration,\n getDefaultResolutionModeForFileWorker: () => getDefaultResolutionModeForFileWorker,\n getDiagnosticText: () => getDiagnosticText,\n getDiagnosticsWithinSpan: () => getDiagnosticsWithinSpan,\n getDirectoryPath: () => getDirectoryPath,\n getDirectoryToWatchFailedLookupLocation: () => getDirectoryToWatchFailedLookupLocation,\n getDirectoryToWatchFailedLookupLocationFromTypeRoot: () => getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n getDocumentPositionMapper: () => getDocumentPositionMapper,\n getDocumentSpansEqualityComparer: () => getDocumentSpansEqualityComparer,\n getESModuleInterop: () => getESModuleInterop,\n getEditsForFileRename: () => getEditsForFileRename,\n getEffectiveBaseTypeNode: () => getEffectiveBaseTypeNode,\n getEffectiveConstraintOfTypeParameter: () => getEffectiveConstraintOfTypeParameter,\n getEffectiveContainerForJSDocTemplateTag: () => getEffectiveContainerForJSDocTemplateTag,\n getEffectiveImplementsTypeNodes: () => getEffectiveImplementsTypeNodes,\n getEffectiveInitializer: () => getEffectiveInitializer,\n getEffectiveJSDocHost: () => getEffectiveJSDocHost,\n getEffectiveModifierFlags: () => getEffectiveModifierFlags,\n getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n getEffectiveModifierFlagsNoCache: () => getEffectiveModifierFlagsNoCache,\n getEffectiveReturnTypeNode: () => getEffectiveReturnTypeNode,\n getEffectiveSetAccessorTypeAnnotationNode: () => getEffectiveSetAccessorTypeAnnotationNode,\n getEffectiveTypeAnnotationNode: () => getEffectiveTypeAnnotationNode,\n getEffectiveTypeParameterDeclarations: () => getEffectiveTypeParameterDeclarations,\n getEffectiveTypeRoots: () => getEffectiveTypeRoots,\n getElementOrPropertyAccessArgumentExpressionOrName: () => getElementOrPropertyAccessArgumentExpressionOrName,\n getElementOrPropertyAccessName: () => getElementOrPropertyAccessName,\n getElementsOfBindingOrAssignmentPattern: () => getElementsOfBindingOrAssignmentPattern,\n getEmitDeclarations: () => getEmitDeclarations,\n getEmitFlags: () => getEmitFlags,\n getEmitHelpers: () => getEmitHelpers,\n getEmitModuleDetectionKind: () => getEmitModuleDetectionKind,\n getEmitModuleFormatOfFileWorker: () => getEmitModuleFormatOfFileWorker,\n getEmitModuleKind: () => getEmitModuleKind,\n getEmitModuleResolutionKind: () => getEmitModuleResolutionKind,\n getEmitScriptTarget: () => getEmitScriptTarget,\n getEmitStandardClassFields: () => getEmitStandardClassFields,\n getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer,\n getEnclosingContainer: () => getEnclosingContainer,\n getEncodedSemanticClassifications: () => getEncodedSemanticClassifications,\n getEncodedSyntacticClassifications: () => getEncodedSyntacticClassifications,\n getEndLinePosition: () => getEndLinePosition,\n getEntityNameFromTypeNode: () => getEntityNameFromTypeNode,\n getEntrypointsFromPackageJsonInfo: () => getEntrypointsFromPackageJsonInfo,\n getErrorCountForSummary: () => getErrorCountForSummary,\n getErrorSpanForNode: () => getErrorSpanForNode,\n getErrorSummaryText: () => getErrorSummaryText,\n getEscapedTextOfIdentifierOrLiteral: () => getEscapedTextOfIdentifierOrLiteral,\n getEscapedTextOfJsxAttributeName: () => getEscapedTextOfJsxAttributeName,\n getEscapedTextOfJsxNamespacedName: () => getEscapedTextOfJsxNamespacedName,\n getExpandoInitializer: () => getExpandoInitializer,\n getExportAssignmentExpression: () => getExportAssignmentExpression,\n getExportInfoMap: () => getExportInfoMap,\n getExportNeedsImportStarHelper: () => getExportNeedsImportStarHelper,\n getExpressionAssociativity: () => getExpressionAssociativity,\n getExpressionPrecedence: () => getExpressionPrecedence,\n getExternalHelpersModuleName: () => getExternalHelpersModuleName,\n getExternalModuleImportEqualsDeclarationExpression: () => getExternalModuleImportEqualsDeclarationExpression,\n getExternalModuleName: () => getExternalModuleName,\n getExternalModuleNameFromDeclaration: () => getExternalModuleNameFromDeclaration,\n getExternalModuleNameFromPath: () => getExternalModuleNameFromPath,\n getExternalModuleNameLiteral: () => getExternalModuleNameLiteral,\n getExternalModuleRequireArgument: () => getExternalModuleRequireArgument,\n getFallbackOptions: () => getFallbackOptions,\n getFileEmitOutput: () => getFileEmitOutput,\n getFileMatcherPatterns: () => getFileMatcherPatterns,\n getFileNamesFromConfigSpecs: () => getFileNamesFromConfigSpecs,\n getFileWatcherEventKind: () => getFileWatcherEventKind,\n getFilesInErrorForSummary: () => getFilesInErrorForSummary,\n getFirstConstructorWithBody: () => getFirstConstructorWithBody,\n getFirstIdentifier: () => getFirstIdentifier,\n getFirstNonSpaceCharacterPosition: () => getFirstNonSpaceCharacterPosition,\n getFirstProjectOutput: () => getFirstProjectOutput,\n getFixableErrorSpanExpression: () => getFixableErrorSpanExpression,\n getFormatCodeSettingsForWriting: () => getFormatCodeSettingsForWriting,\n getFullWidth: () => getFullWidth,\n getFunctionFlags: () => getFunctionFlags,\n getHeritageClause: () => getHeritageClause,\n getHostSignatureFromJSDoc: () => getHostSignatureFromJSDoc,\n getIdentifierAutoGenerate: () => getIdentifierAutoGenerate,\n getIdentifierGeneratedImportReference: () => getIdentifierGeneratedImportReference,\n getIdentifierTypeArguments: () => getIdentifierTypeArguments,\n getImmediatelyInvokedFunctionExpression: () => getImmediatelyInvokedFunctionExpression,\n getImpliedNodeFormatForEmitWorker: () => getImpliedNodeFormatForEmitWorker,\n getImpliedNodeFormatForFile: () => getImpliedNodeFormatForFile,\n getImpliedNodeFormatForFileWorker: () => getImpliedNodeFormatForFileWorker,\n getImportNeedsImportDefaultHelper: () => getImportNeedsImportDefaultHelper,\n getImportNeedsImportStarHelper: () => getImportNeedsImportStarHelper,\n getIndentString: () => getIndentString,\n getInferredLibraryNameResolveFrom: () => getInferredLibraryNameResolveFrom,\n getInitializedVariables: () => getInitializedVariables,\n getInitializerOfBinaryExpression: () => getInitializerOfBinaryExpression,\n getInitializerOfBindingOrAssignmentElement: () => getInitializerOfBindingOrAssignmentElement,\n getInterfaceBaseTypeNodes: () => getInterfaceBaseTypeNodes,\n getInternalEmitFlags: () => getInternalEmitFlags,\n getInvokedExpression: () => getInvokedExpression,\n getIsFileExcluded: () => getIsFileExcluded,\n getIsolatedModules: () => getIsolatedModules,\n getJSDocAugmentsTag: () => getJSDocAugmentsTag,\n getJSDocClassTag: () => getJSDocClassTag,\n getJSDocCommentRanges: () => getJSDocCommentRanges,\n getJSDocCommentsAndTags: () => getJSDocCommentsAndTags,\n getJSDocDeprecatedTag: () => getJSDocDeprecatedTag,\n getJSDocDeprecatedTagNoCache: () => getJSDocDeprecatedTagNoCache,\n getJSDocEnumTag: () => getJSDocEnumTag,\n getJSDocHost: () => getJSDocHost,\n getJSDocImplementsTags: () => getJSDocImplementsTags,\n getJSDocOverloadTags: () => getJSDocOverloadTags,\n getJSDocOverrideTagNoCache: () => getJSDocOverrideTagNoCache,\n getJSDocParameterTags: () => getJSDocParameterTags,\n getJSDocParameterTagsNoCache: () => getJSDocParameterTagsNoCache,\n getJSDocPrivateTag: () => getJSDocPrivateTag,\n getJSDocPrivateTagNoCache: () => getJSDocPrivateTagNoCache,\n getJSDocProtectedTag: () => getJSDocProtectedTag,\n getJSDocProtectedTagNoCache: () => getJSDocProtectedTagNoCache,\n getJSDocPublicTag: () => getJSDocPublicTag,\n getJSDocPublicTagNoCache: () => getJSDocPublicTagNoCache,\n getJSDocReadonlyTag: () => getJSDocReadonlyTag,\n getJSDocReadonlyTagNoCache: () => getJSDocReadonlyTagNoCache,\n getJSDocReturnTag: () => getJSDocReturnTag,\n getJSDocReturnType: () => getJSDocReturnType,\n getJSDocRoot: () => getJSDocRoot,\n getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,\n getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,\n getJSDocTags: () => getJSDocTags,\n getJSDocTemplateTag: () => getJSDocTemplateTag,\n getJSDocThisTag: () => getJSDocThisTag,\n getJSDocType: () => getJSDocType,\n getJSDocTypeAliasName: () => getJSDocTypeAliasName,\n getJSDocTypeAssertionType: () => getJSDocTypeAssertionType,\n getJSDocTypeParameterDeclarations: () => getJSDocTypeParameterDeclarations,\n getJSDocTypeParameterTags: () => getJSDocTypeParameterTags,\n getJSDocTypeParameterTagsNoCache: () => getJSDocTypeParameterTagsNoCache,\n getJSDocTypeTag: () => getJSDocTypeTag,\n getJSXImplicitImportBase: () => getJSXImplicitImportBase,\n getJSXRuntimeImport: () => getJSXRuntimeImport,\n getJSXTransformEnabled: () => getJSXTransformEnabled,\n getKeyForCompilerOptions: () => getKeyForCompilerOptions,\n getLanguageVariant: () => getLanguageVariant,\n getLastChild: () => getLastChild,\n getLeadingCommentRanges: () => getLeadingCommentRanges,\n getLeadingCommentRangesOfNode: () => getLeadingCommentRangesOfNode,\n getLeftmostAccessExpression: () => getLeftmostAccessExpression,\n getLeftmostExpression: () => getLeftmostExpression,\n getLibFileNameFromLibReference: () => getLibFileNameFromLibReference,\n getLibNameFromLibReference: () => getLibNameFromLibReference,\n getLibraryNameFromLibFileName: () => getLibraryNameFromLibFileName,\n getLineAndCharacterOfPosition: () => getLineAndCharacterOfPosition,\n getLineInfo: () => getLineInfo,\n getLineOfLocalPosition: () => getLineOfLocalPosition,\n getLineStartPositionForPosition: () => getLineStartPositionForPosition,\n getLineStarts: () => getLineStarts,\n getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n getLinesBetweenPositions: () => getLinesBetweenPositions,\n getLinesBetweenRangeEndAndRangeStart: () => getLinesBetweenRangeEndAndRangeStart,\n getLinesBetweenRangeEndPositions: () => getLinesBetweenRangeEndPositions,\n getLiteralText: () => getLiteralText,\n getLocalNameForExternalImport: () => getLocalNameForExternalImport,\n getLocalSymbolForExportDefault: () => getLocalSymbolForExportDefault,\n getLocaleSpecificMessage: () => getLocaleSpecificMessage,\n getLocaleTimeString: () => getLocaleTimeString,\n getMappedContextSpan: () => getMappedContextSpan,\n getMappedDocumentSpan: () => getMappedDocumentSpan,\n getMappedLocation: () => getMappedLocation,\n getMatchedFileSpec: () => getMatchedFileSpec,\n getMatchedIncludeSpec: () => getMatchedIncludeSpec,\n getMeaningFromDeclaration: () => getMeaningFromDeclaration,\n getMeaningFromLocation: () => getMeaningFromLocation,\n getMembersOfDeclaration: () => getMembersOfDeclaration,\n getModeForFileReference: () => getModeForFileReference,\n getModeForResolutionAtIndex: () => getModeForResolutionAtIndex,\n getModeForUsageLocation: () => getModeForUsageLocation,\n getModifiedTime: () => getModifiedTime,\n getModifiers: () => getModifiers,\n getModuleInstanceState: () => getModuleInstanceState,\n getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,\n getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,\n getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,\n getNameForExportedSymbol: () => getNameForExportedSymbol,\n getNameFromImportAttribute: () => getNameFromImportAttribute,\n getNameFromIndexInfo: () => getNameFromIndexInfo,\n getNameFromPropertyName: () => getNameFromPropertyName,\n getNameOfAccessExpression: () => getNameOfAccessExpression,\n getNameOfCompilerOptionValue: () => getNameOfCompilerOptionValue,\n getNameOfDeclaration: () => getNameOfDeclaration,\n getNameOfExpando: () => getNameOfExpando,\n getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,\n getNameOfScriptTarget: () => getNameOfScriptTarget,\n getNameOrArgument: () => getNameOrArgument,\n getNameTable: () => getNameTable,\n getNamespaceDeclarationNode: () => getNamespaceDeclarationNode,\n getNewLineCharacter: () => getNewLineCharacter,\n getNewLineKind: () => getNewLineKind,\n getNewLineOrDefaultFromHost: () => getNewLineOrDefaultFromHost,\n getNewTargetContainer: () => getNewTargetContainer,\n getNextJSDocCommentLocation: () => getNextJSDocCommentLocation,\n getNodeChildren: () => getNodeChildren,\n getNodeForGeneratedName: () => getNodeForGeneratedName,\n getNodeId: () => getNodeId,\n getNodeKind: () => getNodeKind,\n getNodeModifiers: () => getNodeModifiers,\n getNodeModulePathParts: () => getNodeModulePathParts,\n getNonAssignedNameOfDeclaration: () => getNonAssignedNameOfDeclaration,\n getNonAssignmentOperatorForCompoundAssignment: () => getNonAssignmentOperatorForCompoundAssignment,\n getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,\n getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,\n getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,\n getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,\n getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,\n getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,\n getNormalizedPathComponents: () => getNormalizedPathComponents,\n getObjectFlags: () => getObjectFlags,\n getOperatorAssociativity: () => getOperatorAssociativity,\n getOperatorPrecedence: () => getOperatorPrecedence,\n getOptionFromName: () => getOptionFromName,\n getOptionsForLibraryResolution: () => getOptionsForLibraryResolution,\n getOptionsNameMap: () => getOptionsNameMap,\n getOptionsSyntaxByArrayElementValue: () => getOptionsSyntaxByArrayElementValue,\n getOptionsSyntaxByValue: () => getOptionsSyntaxByValue,\n getOrCreateEmitNode: () => getOrCreateEmitNode,\n getOrUpdate: () => getOrUpdate,\n getOriginalNode: () => getOriginalNode,\n getOriginalNodeId: () => getOriginalNodeId,\n getOutputDeclarationFileName: () => getOutputDeclarationFileName,\n getOutputDeclarationFileNameWorker: () => getOutputDeclarationFileNameWorker,\n getOutputExtension: () => getOutputExtension,\n getOutputFileNames: () => getOutputFileNames,\n getOutputJSFileNameWorker: () => getOutputJSFileNameWorker,\n getOutputPathsFor: () => getOutputPathsFor,\n getOwnEmitOutputFilePath: () => getOwnEmitOutputFilePath,\n getOwnKeys: () => getOwnKeys,\n getOwnValues: () => getOwnValues,\n getPackageJsonTypesVersionsPaths: () => getPackageJsonTypesVersionsPaths,\n getPackageNameFromTypesPackageName: () => getPackageNameFromTypesPackageName,\n getPackageScopeForPath: () => getPackageScopeForPath,\n getParameterSymbolFromJSDoc: () => getParameterSymbolFromJSDoc,\n getParentNodeInSpan: () => getParentNodeInSpan,\n getParseTreeNode: () => getParseTreeNode,\n getParsedCommandLineOfConfigFile: () => getParsedCommandLineOfConfigFile,\n getPathComponents: () => getPathComponents,\n getPathFromPathComponents: () => getPathFromPathComponents,\n getPathUpdater: () => getPathUpdater,\n getPathsBasePath: () => getPathsBasePath,\n getPatternFromSpec: () => getPatternFromSpec,\n getPendingEmitKindWithSeen: () => getPendingEmitKindWithSeen,\n getPositionOfLineAndCharacter: () => getPositionOfLineAndCharacter,\n getPossibleGenericSignatures: () => getPossibleGenericSignatures,\n getPossibleOriginalInputExtensionForExtension: () => getPossibleOriginalInputExtensionForExtension,\n getPossibleOriginalInputPathWithoutChangingExt: () => getPossibleOriginalInputPathWithoutChangingExt,\n getPossibleTypeArgumentsInfo: () => getPossibleTypeArgumentsInfo,\n getPreEmitDiagnostics: () => getPreEmitDiagnostics,\n getPrecedingNonSpaceCharacterPosition: () => getPrecedingNonSpaceCharacterPosition,\n getPrivateIdentifier: () => getPrivateIdentifier,\n getProperties: () => getProperties,\n getProperty: () => getProperty,\n getPropertyAssignmentAliasLikeExpression: () => getPropertyAssignmentAliasLikeExpression,\n getPropertyNameForPropertyNameNode: () => getPropertyNameForPropertyNameNode,\n getPropertyNameFromType: () => getPropertyNameFromType,\n getPropertyNameOfBindingOrAssignmentElement: () => getPropertyNameOfBindingOrAssignmentElement,\n getPropertySymbolFromBindingElement: () => getPropertySymbolFromBindingElement,\n getPropertySymbolsFromContextualType: () => getPropertySymbolsFromContextualType,\n getQuoteFromPreference: () => getQuoteFromPreference,\n getQuotePreference: () => getQuotePreference,\n getRangesWhere: () => getRangesWhere,\n getRefactorContextSpan: () => getRefactorContextSpan,\n getReferencedFileLocation: () => getReferencedFileLocation,\n getRegexFromPattern: () => getRegexFromPattern,\n getRegularExpressionForWildcard: () => getRegularExpressionForWildcard,\n getRegularExpressionsForWildcards: () => getRegularExpressionsForWildcards,\n getRelativePathFromDirectory: () => getRelativePathFromDirectory,\n getRelativePathFromFile: () => getRelativePathFromFile,\n getRelativePathToDirectoryOrUrl: () => getRelativePathToDirectoryOrUrl,\n getRenameLocation: () => getRenameLocation,\n getReplacementSpanForContextToken: () => getReplacementSpanForContextToken,\n getResolutionDiagnostic: () => getResolutionDiagnostic,\n getResolutionModeOverride: () => getResolutionModeOverride,\n getResolveJsonModule: () => getResolveJsonModule,\n getResolvePackageJsonExports: () => getResolvePackageJsonExports,\n getResolvePackageJsonImports: () => getResolvePackageJsonImports,\n getResolvedExternalModuleName: () => getResolvedExternalModuleName,\n getResolvedModuleFromResolution: () => getResolvedModuleFromResolution,\n getResolvedTypeReferenceDirectiveFromResolution: () => getResolvedTypeReferenceDirectiveFromResolution,\n getRestIndicatorOfBindingOrAssignmentElement: () => getRestIndicatorOfBindingOrAssignmentElement,\n getRestParameterElementType: () => getRestParameterElementType,\n getRightMostAssignedExpression: () => getRightMostAssignedExpression,\n getRootDeclaration: () => getRootDeclaration,\n getRootDirectoryOfResolutionCache: () => getRootDirectoryOfResolutionCache,\n getRootLength: () => getRootLength,\n getScriptKind: () => getScriptKind,\n getScriptKindFromFileName: () => getScriptKindFromFileName,\n getScriptTargetFeatures: () => getScriptTargetFeatures,\n getSelectedEffectiveModifierFlags: () => getSelectedEffectiveModifierFlags,\n getSelectedSyntacticModifierFlags: () => getSelectedSyntacticModifierFlags,\n getSemanticClassifications: () => getSemanticClassifications,\n getSemanticJsxChildren: () => getSemanticJsxChildren,\n getSetAccessorTypeAnnotationNode: () => getSetAccessorTypeAnnotationNode,\n getSetAccessorValueParameter: () => getSetAccessorValueParameter,\n getSetExternalModuleIndicator: () => getSetExternalModuleIndicator,\n getShebang: () => getShebang,\n getSingleVariableOfVariableStatement: () => getSingleVariableOfVariableStatement,\n getSnapshotText: () => getSnapshotText,\n getSnippetElement: () => getSnippetElement,\n getSourceFileOfModule: () => getSourceFileOfModule,\n getSourceFileOfNode: () => getSourceFileOfNode,\n getSourceFilePathInNewDir: () => getSourceFilePathInNewDir,\n getSourceFileVersionAsHashFromText: () => getSourceFileVersionAsHashFromText,\n getSourceFilesToEmit: () => getSourceFilesToEmit,\n getSourceMapRange: () => getSourceMapRange,\n getSourceMapper: () => getSourceMapper,\n getSourceTextOfNodeFromSourceFile: () => getSourceTextOfNodeFromSourceFile,\n getSpanOfTokenAtPosition: () => getSpanOfTokenAtPosition,\n getSpellingSuggestion: () => getSpellingSuggestion,\n getStartPositionOfLine: () => getStartPositionOfLine,\n getStartPositionOfRange: () => getStartPositionOfRange,\n getStartsOnNewLine: () => getStartsOnNewLine,\n getStaticPropertiesAndClassStaticBlock: () => getStaticPropertiesAndClassStaticBlock,\n getStrictOptionValue: () => getStrictOptionValue,\n getStringComparer: () => getStringComparer,\n getSubPatternFromSpec: () => getSubPatternFromSpec,\n getSuperCallFromStatement: () => getSuperCallFromStatement,\n getSuperContainer: () => getSuperContainer,\n getSupportedCodeFixes: () => getSupportedCodeFixes,\n getSupportedExtensions: () => getSupportedExtensions,\n getSupportedExtensionsWithJsonIfResolveJsonModule: () => getSupportedExtensionsWithJsonIfResolveJsonModule,\n getSwitchedType: () => getSwitchedType,\n getSymbolId: () => getSymbolId,\n getSymbolNameForPrivateIdentifier: () => getSymbolNameForPrivateIdentifier,\n getSymbolTarget: () => getSymbolTarget,\n getSyntacticClassifications: () => getSyntacticClassifications,\n getSyntacticModifierFlags: () => getSyntacticModifierFlags,\n getSyntacticModifierFlagsNoCache: () => getSyntacticModifierFlagsNoCache,\n getSynthesizedDeepClone: () => getSynthesizedDeepClone,\n getSynthesizedDeepCloneWithReplacements: () => getSynthesizedDeepCloneWithReplacements,\n getSynthesizedDeepClones: () => getSynthesizedDeepClones,\n getSynthesizedDeepClonesWithReplacements: () => getSynthesizedDeepClonesWithReplacements,\n getSyntheticLeadingComments: () => getSyntheticLeadingComments,\n getSyntheticTrailingComments: () => getSyntheticTrailingComments,\n getTargetLabel: () => getTargetLabel,\n getTargetOfBindingOrAssignmentElement: () => getTargetOfBindingOrAssignmentElement,\n getTemporaryModuleResolutionState: () => getTemporaryModuleResolutionState,\n getTextOfConstantValue: () => getTextOfConstantValue,\n getTextOfIdentifierOrLiteral: () => getTextOfIdentifierOrLiteral,\n getTextOfJSDocComment: () => getTextOfJSDocComment,\n getTextOfJsxAttributeName: () => getTextOfJsxAttributeName,\n getTextOfJsxNamespacedName: () => getTextOfJsxNamespacedName,\n getTextOfNode: () => getTextOfNode,\n getTextOfNodeFromSourceText: () => getTextOfNodeFromSourceText,\n getTextOfPropertyName: () => getTextOfPropertyName,\n getThisContainer: () => getThisContainer,\n getThisParameter: () => getThisParameter,\n getTokenAtPosition: () => getTokenAtPosition,\n getTokenPosOfNode: () => getTokenPosOfNode,\n getTokenSourceMapRange: () => getTokenSourceMapRange,\n getTouchingPropertyName: () => getTouchingPropertyName,\n getTouchingToken: () => getTouchingToken,\n getTrailingCommentRanges: () => getTrailingCommentRanges,\n getTrailingSemicolonDeferringWriter: () => getTrailingSemicolonDeferringWriter,\n getTransformers: () => getTransformers,\n getTsBuildInfoEmitOutputFilePath: () => getTsBuildInfoEmitOutputFilePath,\n getTsConfigObjectLiteralExpression: () => getTsConfigObjectLiteralExpression,\n getTsConfigPropArrayElementValue: () => getTsConfigPropArrayElementValue,\n getTypeAnnotationNode: () => getTypeAnnotationNode,\n getTypeArgumentOrTypeParameterList: () => getTypeArgumentOrTypeParameterList,\n getTypeKeywordOfTypeOnlyImport: () => getTypeKeywordOfTypeOnlyImport,\n getTypeNode: () => getTypeNode,\n getTypeNodeIfAccessible: () => getTypeNodeIfAccessible,\n getTypeParameterFromJsDoc: () => getTypeParameterFromJsDoc,\n getTypeParameterOwner: () => getTypeParameterOwner,\n getTypesPackageName: () => getTypesPackageName,\n getUILocale: () => getUILocale,\n getUniqueName: () => getUniqueName,\n getUniqueSymbolId: () => getUniqueSymbolId,\n getUseDefineForClassFields: () => getUseDefineForClassFields,\n getWatchErrorSummaryDiagnosticMessage: () => getWatchErrorSummaryDiagnosticMessage,\n getWatchFactory: () => getWatchFactory,\n group: () => group,\n groupBy: () => groupBy,\n guessIndentation: () => guessIndentation,\n handleNoEmitOptions: () => handleNoEmitOptions,\n handleWatchOptionsConfigDirTemplateSubstitution: () => handleWatchOptionsConfigDirTemplateSubstitution,\n hasAbstractModifier: () => hasAbstractModifier,\n hasAccessorModifier: () => hasAccessorModifier,\n hasAmbientModifier: () => hasAmbientModifier,\n hasChangesInResolutions: () => hasChangesInResolutions,\n hasContextSensitiveParameters: () => hasContextSensitiveParameters,\n hasDecorators: () => hasDecorators,\n hasDocComment: () => hasDocComment,\n hasDynamicName: () => hasDynamicName,\n hasEffectiveModifier: () => hasEffectiveModifier,\n hasEffectiveModifiers: () => hasEffectiveModifiers,\n hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,\n hasExtension: () => hasExtension,\n hasImplementationTSFileExtension: () => hasImplementationTSFileExtension,\n hasIndexSignature: () => hasIndexSignature,\n hasInferredType: () => hasInferredType,\n hasInitializer: () => hasInitializer,\n hasInvalidEscape: () => hasInvalidEscape,\n hasJSDocNodes: () => hasJSDocNodes,\n hasJSDocParameterTags: () => hasJSDocParameterTags,\n hasJSFileExtension: () => hasJSFileExtension,\n hasJsonModuleEmitEnabled: () => hasJsonModuleEmitEnabled,\n hasOnlyExpressionInitializer: () => hasOnlyExpressionInitializer,\n hasOverrideModifier: () => hasOverrideModifier,\n hasPossibleExternalModuleReference: () => hasPossibleExternalModuleReference,\n hasProperty: () => hasProperty,\n hasPropertyAccessExpressionWithName: () => hasPropertyAccessExpressionWithName,\n hasQuestionToken: () => hasQuestionToken,\n hasRecordedExternalHelpers: () => hasRecordedExternalHelpers,\n hasResolutionModeOverride: () => hasResolutionModeOverride,\n hasRestParameter: () => hasRestParameter,\n hasScopeMarker: () => hasScopeMarker,\n hasStaticModifier: () => hasStaticModifier,\n hasSyntacticModifier: () => hasSyntacticModifier,\n hasSyntacticModifiers: () => hasSyntacticModifiers,\n hasTSFileExtension: () => hasTSFileExtension,\n hasTabstop: () => hasTabstop,\n hasTrailingDirectorySeparator: () => hasTrailingDirectorySeparator,\n hasType: () => hasType,\n hasTypeArguments: () => hasTypeArguments,\n hasZeroOrOneAsteriskCharacter: () => hasZeroOrOneAsteriskCharacter,\n hostGetCanonicalFileName: () => hostGetCanonicalFileName,\n hostUsesCaseSensitiveFileNames: () => hostUsesCaseSensitiveFileNames,\n idText: () => idText,\n identifierIsThisKeyword: () => identifierIsThisKeyword,\n identifierToKeywordKind: () => identifierToKeywordKind,\n identity: () => identity,\n identitySourceMapConsumer: () => identitySourceMapConsumer,\n ignoreSourceNewlines: () => ignoreSourceNewlines,\n ignoredPaths: () => ignoredPaths,\n importFromModuleSpecifier: () => importFromModuleSpecifier,\n importSyntaxAffectsModuleResolution: () => importSyntaxAffectsModuleResolution,\n indexOfAnyCharCode: () => indexOfAnyCharCode,\n indexOfNode: () => indexOfNode,\n indicesOf: () => indicesOf,\n inferredTypesContainingFile: () => inferredTypesContainingFile,\n injectClassNamedEvaluationHelperBlockIfMissing: () => injectClassNamedEvaluationHelperBlockIfMissing,\n injectClassThisAssignmentIfMissing: () => injectClassThisAssignmentIfMissing,\n insertImports: () => insertImports,\n insertSorted: () => insertSorted,\n insertStatementAfterCustomPrologue: () => insertStatementAfterCustomPrologue,\n insertStatementAfterStandardPrologue: () => insertStatementAfterStandardPrologue,\n insertStatementsAfterCustomPrologue: () => insertStatementsAfterCustomPrologue,\n insertStatementsAfterStandardPrologue: () => insertStatementsAfterStandardPrologue,\n intersperse: () => intersperse,\n intrinsicTagNameToString: () => intrinsicTagNameToString,\n introducesArgumentsExoticObject: () => introducesArgumentsExoticObject,\n inverseJsxOptionMap: () => inverseJsxOptionMap,\n isAbstractConstructorSymbol: () => isAbstractConstructorSymbol,\n isAbstractModifier: () => isAbstractModifier,\n isAccessExpression: () => isAccessExpression,\n isAccessibilityModifier: () => isAccessibilityModifier,\n isAccessor: () => isAccessor,\n isAccessorModifier: () => isAccessorModifier,\n isAliasableExpression: () => isAliasableExpression,\n isAmbientModule: () => isAmbientModule,\n isAmbientPropertyDeclaration: () => isAmbientPropertyDeclaration,\n isAnyDirectorySeparator: () => isAnyDirectorySeparator,\n isAnyImportOrBareOrAccessedRequire: () => isAnyImportOrBareOrAccessedRequire,\n isAnyImportOrReExport: () => isAnyImportOrReExport,\n isAnyImportOrRequireStatement: () => isAnyImportOrRequireStatement,\n isAnyImportSyntax: () => isAnyImportSyntax,\n isAnySupportedFileExtension: () => isAnySupportedFileExtension,\n isApplicableVersionedTypesKey: () => isApplicableVersionedTypesKey,\n isArgumentExpressionOfElementAccess: () => isArgumentExpressionOfElementAccess,\n isArray: () => isArray,\n isArrayBindingElement: () => isArrayBindingElement,\n isArrayBindingOrAssignmentElement: () => isArrayBindingOrAssignmentElement,\n isArrayBindingOrAssignmentPattern: () => isArrayBindingOrAssignmentPattern,\n isArrayBindingPattern: () => isArrayBindingPattern,\n isArrayLiteralExpression: () => isArrayLiteralExpression,\n isArrayLiteralOrObjectLiteralDestructuringPattern: () => isArrayLiteralOrObjectLiteralDestructuringPattern,\n isArrayTypeNode: () => isArrayTypeNode,\n isArrowFunction: () => isArrowFunction,\n isAsExpression: () => isAsExpression,\n isAssertClause: () => isAssertClause,\n isAssertEntry: () => isAssertEntry,\n isAssertionExpression: () => isAssertionExpression,\n isAssertsKeyword: () => isAssertsKeyword,\n isAssignmentDeclaration: () => isAssignmentDeclaration,\n isAssignmentExpression: () => isAssignmentExpression,\n isAssignmentOperator: () => isAssignmentOperator,\n isAssignmentPattern: () => isAssignmentPattern,\n isAssignmentTarget: () => isAssignmentTarget,\n isAsteriskToken: () => isAsteriskToken,\n isAsyncFunction: () => isAsyncFunction,\n isAsyncModifier: () => isAsyncModifier,\n isAutoAccessorPropertyDeclaration: () => isAutoAccessorPropertyDeclaration,\n isAwaitExpression: () => isAwaitExpression,\n isAwaitKeyword: () => isAwaitKeyword,\n isBigIntLiteral: () => isBigIntLiteral,\n isBinaryExpression: () => isBinaryExpression,\n isBinaryLogicalOperator: () => isBinaryLogicalOperator,\n isBinaryOperatorToken: () => isBinaryOperatorToken,\n isBindableObjectDefinePropertyCall: () => isBindableObjectDefinePropertyCall,\n isBindableStaticAccessExpression: () => isBindableStaticAccessExpression,\n isBindableStaticElementAccessExpression: () => isBindableStaticElementAccessExpression,\n isBindableStaticNameExpression: () => isBindableStaticNameExpression,\n isBindingElement: () => isBindingElement,\n isBindingElementOfBareOrAccessedRequire: () => isBindingElementOfBareOrAccessedRequire,\n isBindingName: () => isBindingName,\n isBindingOrAssignmentElement: () => isBindingOrAssignmentElement,\n isBindingOrAssignmentPattern: () => isBindingOrAssignmentPattern,\n isBindingPattern: () => isBindingPattern,\n isBlock: () => isBlock,\n isBlockLike: () => isBlockLike,\n isBlockOrCatchScoped: () => isBlockOrCatchScoped,\n isBlockScope: () => isBlockScope,\n isBlockScopedContainerTopLevel: () => isBlockScopedContainerTopLevel,\n isBooleanLiteral: () => isBooleanLiteral,\n isBreakOrContinueStatement: () => isBreakOrContinueStatement,\n isBreakStatement: () => isBreakStatement,\n isBuildCommand: () => isBuildCommand,\n isBuildInfoFile: () => isBuildInfoFile,\n isBuilderProgram: () => isBuilderProgram,\n isBundle: () => isBundle,\n isCallChain: () => isCallChain,\n isCallExpression: () => isCallExpression,\n isCallExpressionTarget: () => isCallExpressionTarget,\n isCallLikeExpression: () => isCallLikeExpression,\n isCallLikeOrFunctionLikeExpression: () => isCallLikeOrFunctionLikeExpression,\n isCallOrNewExpression: () => isCallOrNewExpression,\n isCallOrNewExpressionTarget: () => isCallOrNewExpressionTarget,\n isCallSignatureDeclaration: () => isCallSignatureDeclaration,\n isCallToHelper: () => isCallToHelper,\n isCaseBlock: () => isCaseBlock,\n isCaseClause: () => isCaseClause,\n isCaseKeyword: () => isCaseKeyword,\n isCaseOrDefaultClause: () => isCaseOrDefaultClause,\n isCatchClause: () => isCatchClause,\n isCatchClauseVariableDeclaration: () => isCatchClauseVariableDeclaration,\n isCatchClauseVariableDeclarationOrBindingElement: () => isCatchClauseVariableDeclarationOrBindingElement,\n isCheckJsEnabledForFile: () => isCheckJsEnabledForFile,\n isCircularBuildOrder: () => isCircularBuildOrder,\n isClassDeclaration: () => isClassDeclaration,\n isClassElement: () => isClassElement,\n isClassExpression: () => isClassExpression,\n isClassInstanceProperty: () => isClassInstanceProperty,\n isClassLike: () => isClassLike,\n isClassMemberModifier: () => isClassMemberModifier,\n isClassNamedEvaluationHelperBlock: () => isClassNamedEvaluationHelperBlock,\n isClassOrTypeElement: () => isClassOrTypeElement,\n isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration,\n isClassThisAssignmentBlock: () => isClassThisAssignmentBlock,\n isColonToken: () => isColonToken,\n isCommaExpression: () => isCommaExpression,\n isCommaListExpression: () => isCommaListExpression,\n isCommaSequence: () => isCommaSequence,\n isCommaToken: () => isCommaToken,\n isComment: () => isComment,\n isCommonJsExportPropertyAssignment: () => isCommonJsExportPropertyAssignment,\n isCommonJsExportedExpression: () => isCommonJsExportedExpression,\n isCompoundAssignment: () => isCompoundAssignment,\n isComputedNonLiteralName: () => isComputedNonLiteralName,\n isComputedPropertyName: () => isComputedPropertyName,\n isConciseBody: () => isConciseBody,\n isConditionalExpression: () => isConditionalExpression,\n isConditionalTypeNode: () => isConditionalTypeNode,\n isConstAssertion: () => isConstAssertion,\n isConstTypeReference: () => isConstTypeReference,\n isConstructSignatureDeclaration: () => isConstructSignatureDeclaration,\n isConstructorDeclaration: () => isConstructorDeclaration,\n isConstructorTypeNode: () => isConstructorTypeNode,\n isContextualKeyword: () => isContextualKeyword,\n isContinueStatement: () => isContinueStatement,\n isCustomPrologue: () => isCustomPrologue,\n isDebuggerStatement: () => isDebuggerStatement,\n isDeclaration: () => isDeclaration,\n isDeclarationBindingElement: () => isDeclarationBindingElement,\n isDeclarationFileName: () => isDeclarationFileName,\n isDeclarationName: () => isDeclarationName,\n isDeclarationNameOfEnumOrNamespace: () => isDeclarationNameOfEnumOrNamespace,\n isDeclarationReadonly: () => isDeclarationReadonly,\n isDeclarationStatement: () => isDeclarationStatement,\n isDeclarationWithTypeParameterChildren: () => isDeclarationWithTypeParameterChildren,\n isDeclarationWithTypeParameters: () => isDeclarationWithTypeParameters,\n isDecorator: () => isDecorator,\n isDecoratorTarget: () => isDecoratorTarget,\n isDefaultClause: () => isDefaultClause,\n isDefaultImport: () => isDefaultImport,\n isDefaultModifier: () => isDefaultModifier,\n isDefaultedExpandoInitializer: () => isDefaultedExpandoInitializer,\n isDeleteExpression: () => isDeleteExpression,\n isDeleteTarget: () => isDeleteTarget,\n isDeprecatedDeclaration: () => isDeprecatedDeclaration,\n isDestructuringAssignment: () => isDestructuringAssignment,\n isDiskPathRoot: () => isDiskPathRoot,\n isDoStatement: () => isDoStatement,\n isDocumentRegistryEntry: () => isDocumentRegistryEntry,\n isDotDotDotToken: () => isDotDotDotToken,\n isDottedName: () => isDottedName,\n isDynamicName: () => isDynamicName,\n isEffectiveExternalModule: () => isEffectiveExternalModule,\n isEffectiveStrictModeSourceFile: () => isEffectiveStrictModeSourceFile,\n isElementAccessChain: () => isElementAccessChain,\n isElementAccessExpression: () => isElementAccessExpression,\n isEmittedFileOfProgram: () => isEmittedFileOfProgram,\n isEmptyArrayLiteral: () => isEmptyArrayLiteral,\n isEmptyBindingElement: () => isEmptyBindingElement,\n isEmptyBindingPattern: () => isEmptyBindingPattern,\n isEmptyObjectLiteral: () => isEmptyObjectLiteral,\n isEmptyStatement: () => isEmptyStatement,\n isEmptyStringLiteral: () => isEmptyStringLiteral,\n isEntityName: () => isEntityName,\n isEntityNameExpression: () => isEntityNameExpression,\n isEnumConst: () => isEnumConst,\n isEnumDeclaration: () => isEnumDeclaration,\n isEnumMember: () => isEnumMember,\n isEqualityOperatorKind: () => isEqualityOperatorKind,\n isEqualsGreaterThanToken: () => isEqualsGreaterThanToken,\n isExclamationToken: () => isExclamationToken,\n isExcludedFile: () => isExcludedFile,\n isExclusivelyTypeOnlyImportOrExport: () => isExclusivelyTypeOnlyImportOrExport,\n isExpandoPropertyDeclaration: () => isExpandoPropertyDeclaration,\n isExportAssignment: () => isExportAssignment,\n isExportDeclaration: () => isExportDeclaration,\n isExportModifier: () => isExportModifier,\n isExportName: () => isExportName,\n isExportNamespaceAsDefaultDeclaration: () => isExportNamespaceAsDefaultDeclaration,\n isExportOrDefaultModifier: () => isExportOrDefaultModifier,\n isExportSpecifier: () => isExportSpecifier,\n isExportsIdentifier: () => isExportsIdentifier,\n isExportsOrModuleExportsOrAlias: () => isExportsOrModuleExportsOrAlias,\n isExpression: () => isExpression,\n isExpressionNode: () => isExpressionNode,\n isExpressionOfExternalModuleImportEqualsDeclaration: () => isExpressionOfExternalModuleImportEqualsDeclaration,\n isExpressionOfOptionalChainRoot: () => isExpressionOfOptionalChainRoot,\n isExpressionStatement: () => isExpressionStatement,\n isExpressionWithTypeArguments: () => isExpressionWithTypeArguments,\n isExpressionWithTypeArgumentsInClassExtendsClause: () => isExpressionWithTypeArgumentsInClassExtendsClause,\n isExternalModule: () => isExternalModule,\n isExternalModuleAugmentation: () => isExternalModuleAugmentation,\n isExternalModuleImportEqualsDeclaration: () => isExternalModuleImportEqualsDeclaration,\n isExternalModuleIndicator: () => isExternalModuleIndicator,\n isExternalModuleNameRelative: () => isExternalModuleNameRelative,\n isExternalModuleReference: () => isExternalModuleReference,\n isExternalModuleSymbol: () => isExternalModuleSymbol,\n isExternalOrCommonJsModule: () => isExternalOrCommonJsModule,\n isFileLevelReservedGeneratedIdentifier: () => isFileLevelReservedGeneratedIdentifier,\n isFileLevelUniqueName: () => isFileLevelUniqueName,\n isFileProbablyExternalModule: () => isFileProbablyExternalModule,\n isFirstDeclarationOfSymbolParameter: () => isFirstDeclarationOfSymbolParameter,\n isFixablePromiseHandler: () => isFixablePromiseHandler,\n isForInOrOfStatement: () => isForInOrOfStatement,\n isForInStatement: () => isForInStatement,\n isForInitializer: () => isForInitializer,\n isForOfStatement: () => isForOfStatement,\n isForStatement: () => isForStatement,\n isFullSourceFile: () => isFullSourceFile,\n isFunctionBlock: () => isFunctionBlock,\n isFunctionBody: () => isFunctionBody,\n isFunctionDeclaration: () => isFunctionDeclaration,\n isFunctionExpression: () => isFunctionExpression,\n isFunctionExpressionOrArrowFunction: () => isFunctionExpressionOrArrowFunction,\n isFunctionLike: () => isFunctionLike,\n isFunctionLikeDeclaration: () => isFunctionLikeDeclaration,\n isFunctionLikeKind: () => isFunctionLikeKind,\n isFunctionLikeOrClassStaticBlockDeclaration: () => isFunctionLikeOrClassStaticBlockDeclaration,\n isFunctionOrConstructorTypeNode: () => isFunctionOrConstructorTypeNode,\n isFunctionOrModuleBlock: () => isFunctionOrModuleBlock,\n isFunctionSymbol: () => isFunctionSymbol,\n isFunctionTypeNode: () => isFunctionTypeNode,\n isGeneratedIdentifier: () => isGeneratedIdentifier,\n isGeneratedPrivateIdentifier: () => isGeneratedPrivateIdentifier,\n isGetAccessor: () => isGetAccessor,\n isGetAccessorDeclaration: () => isGetAccessorDeclaration,\n isGetOrSetAccessorDeclaration: () => isGetOrSetAccessorDeclaration,\n isGlobalScopeAugmentation: () => isGlobalScopeAugmentation,\n isGlobalSourceFile: () => isGlobalSourceFile,\n isGrammarError: () => isGrammarError,\n isHeritageClause: () => isHeritageClause,\n isHoistedFunction: () => isHoistedFunction,\n isHoistedVariableStatement: () => isHoistedVariableStatement,\n isIdentifier: () => isIdentifier,\n isIdentifierANonContextualKeyword: () => isIdentifierANonContextualKeyword,\n isIdentifierName: () => isIdentifierName,\n isIdentifierOrThisTypeNode: () => isIdentifierOrThisTypeNode,\n isIdentifierPart: () => isIdentifierPart,\n isIdentifierStart: () => isIdentifierStart,\n isIdentifierText: () => isIdentifierText,\n isIdentifierTypePredicate: () => isIdentifierTypePredicate,\n isIdentifierTypeReference: () => isIdentifierTypeReference,\n isIfStatement: () => isIfStatement,\n isIgnoredFileFromWildCardWatching: () => isIgnoredFileFromWildCardWatching,\n isImplicitGlob: () => isImplicitGlob,\n isImportAttribute: () => isImportAttribute,\n isImportAttributeName: () => isImportAttributeName,\n isImportAttributes: () => isImportAttributes,\n isImportCall: () => isImportCall,\n isImportClause: () => isImportClause,\n isImportDeclaration: () => isImportDeclaration,\n isImportEqualsDeclaration: () => isImportEqualsDeclaration,\n isImportKeyword: () => isImportKeyword,\n isImportMeta: () => isImportMeta,\n isImportOrExportSpecifier: () => isImportOrExportSpecifier,\n isImportOrExportSpecifierName: () => isImportOrExportSpecifierName,\n isImportSpecifier: () => isImportSpecifier,\n isImportTypeAssertionContainer: () => isImportTypeAssertionContainer,\n isImportTypeNode: () => isImportTypeNode,\n isImportable: () => isImportable,\n isInComment: () => isInComment,\n isInCompoundLikeAssignment: () => isInCompoundLikeAssignment,\n isInExpressionContext: () => isInExpressionContext,\n isInJSDoc: () => isInJSDoc,\n isInJSFile: () => isInJSFile,\n isInJSXText: () => isInJSXText,\n isInJsonFile: () => isInJsonFile,\n isInNonReferenceComment: () => isInNonReferenceComment,\n isInReferenceComment: () => isInReferenceComment,\n isInRightSideOfInternalImportEqualsDeclaration: () => isInRightSideOfInternalImportEqualsDeclaration,\n isInString: () => isInString,\n isInTemplateString: () => isInTemplateString,\n isInTopLevelContext: () => isInTopLevelContext,\n isInTypeQuery: () => isInTypeQuery,\n isIncrementalBuildInfo: () => isIncrementalBuildInfo,\n isIncrementalBundleEmitBuildInfo: () => isIncrementalBundleEmitBuildInfo,\n isIncrementalCompilation: () => isIncrementalCompilation,\n isIndexSignatureDeclaration: () => isIndexSignatureDeclaration,\n isIndexedAccessTypeNode: () => isIndexedAccessTypeNode,\n isInferTypeNode: () => isInferTypeNode,\n isInfinityOrNaNString: () => isInfinityOrNaNString,\n isInitializedProperty: () => isInitializedProperty,\n isInitializedVariable: () => isInitializedVariable,\n isInsideJsxElement: () => isInsideJsxElement,\n isInsideJsxElementOrAttribute: () => isInsideJsxElementOrAttribute,\n isInsideNodeModules: () => isInsideNodeModules,\n isInsideTemplateLiteral: () => isInsideTemplateLiteral,\n isInstanceOfExpression: () => isInstanceOfExpression,\n isInstantiatedModule: () => isInstantiatedModule,\n isInterfaceDeclaration: () => isInterfaceDeclaration,\n isInternalDeclaration: () => isInternalDeclaration,\n isInternalModuleImportEqualsDeclaration: () => isInternalModuleImportEqualsDeclaration,\n isInternalName: () => isInternalName,\n isIntersectionTypeNode: () => isIntersectionTypeNode,\n isIntrinsicJsxName: () => isIntrinsicJsxName,\n isIterationStatement: () => isIterationStatement,\n isJSDoc: () => isJSDoc,\n isJSDocAllType: () => isJSDocAllType,\n isJSDocAugmentsTag: () => isJSDocAugmentsTag,\n isJSDocAuthorTag: () => isJSDocAuthorTag,\n isJSDocCallbackTag: () => isJSDocCallbackTag,\n isJSDocClassTag: () => isJSDocClassTag,\n isJSDocCommentContainingNode: () => isJSDocCommentContainingNode,\n isJSDocConstructSignature: () => isJSDocConstructSignature,\n isJSDocDeprecatedTag: () => isJSDocDeprecatedTag,\n isJSDocEnumTag: () => isJSDocEnumTag,\n isJSDocFunctionType: () => isJSDocFunctionType,\n isJSDocImplementsTag: () => isJSDocImplementsTag,\n isJSDocImportTag: () => isJSDocImportTag,\n isJSDocIndexSignature: () => isJSDocIndexSignature,\n isJSDocLikeText: () => isJSDocLikeText,\n isJSDocLink: () => isJSDocLink,\n isJSDocLinkCode: () => isJSDocLinkCode,\n isJSDocLinkLike: () => isJSDocLinkLike,\n isJSDocLinkPlain: () => isJSDocLinkPlain,\n isJSDocMemberName: () => isJSDocMemberName,\n isJSDocNameReference: () => isJSDocNameReference,\n isJSDocNamepathType: () => isJSDocNamepathType,\n isJSDocNamespaceBody: () => isJSDocNamespaceBody,\n isJSDocNode: () => isJSDocNode,\n isJSDocNonNullableType: () => isJSDocNonNullableType,\n isJSDocNullableType: () => isJSDocNullableType,\n isJSDocOptionalParameter: () => isJSDocOptionalParameter,\n isJSDocOptionalType: () => isJSDocOptionalType,\n isJSDocOverloadTag: () => isJSDocOverloadTag,\n isJSDocOverrideTag: () => isJSDocOverrideTag,\n isJSDocParameterTag: () => isJSDocParameterTag,\n isJSDocPrivateTag: () => isJSDocPrivateTag,\n isJSDocPropertyLikeTag: () => isJSDocPropertyLikeTag,\n isJSDocPropertyTag: () => isJSDocPropertyTag,\n isJSDocProtectedTag: () => isJSDocProtectedTag,\n isJSDocPublicTag: () => isJSDocPublicTag,\n isJSDocReadonlyTag: () => isJSDocReadonlyTag,\n isJSDocReturnTag: () => isJSDocReturnTag,\n isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,\n isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,\n isJSDocSeeTag: () => isJSDocSeeTag,\n isJSDocSignature: () => isJSDocSignature,\n isJSDocTag: () => isJSDocTag,\n isJSDocTemplateTag: () => isJSDocTemplateTag,\n isJSDocThisTag: () => isJSDocThisTag,\n isJSDocThrowsTag: () => isJSDocThrowsTag,\n isJSDocTypeAlias: () => isJSDocTypeAlias,\n isJSDocTypeAssertion: () => isJSDocTypeAssertion,\n isJSDocTypeExpression: () => isJSDocTypeExpression,\n isJSDocTypeLiteral: () => isJSDocTypeLiteral,\n isJSDocTypeTag: () => isJSDocTypeTag,\n isJSDocTypedefTag: () => isJSDocTypedefTag,\n isJSDocUnknownTag: () => isJSDocUnknownTag,\n isJSDocUnknownType: () => isJSDocUnknownType,\n isJSDocVariadicType: () => isJSDocVariadicType,\n isJSXTagName: () => isJSXTagName,\n isJsonEqual: () => isJsonEqual,\n isJsonSourceFile: () => isJsonSourceFile,\n isJsxAttribute: () => isJsxAttribute,\n isJsxAttributeLike: () => isJsxAttributeLike,\n isJsxAttributeName: () => isJsxAttributeName,\n isJsxAttributes: () => isJsxAttributes,\n isJsxCallLike: () => isJsxCallLike,\n isJsxChild: () => isJsxChild,\n isJsxClosingElement: () => isJsxClosingElement,\n isJsxClosingFragment: () => isJsxClosingFragment,\n isJsxElement: () => isJsxElement,\n isJsxExpression: () => isJsxExpression,\n isJsxFragment: () => isJsxFragment,\n isJsxNamespacedName: () => isJsxNamespacedName,\n isJsxOpeningElement: () => isJsxOpeningElement,\n isJsxOpeningFragment: () => isJsxOpeningFragment,\n isJsxOpeningLikeElement: () => isJsxOpeningLikeElement,\n isJsxOpeningLikeElementTagName: () => isJsxOpeningLikeElementTagName,\n isJsxSelfClosingElement: () => isJsxSelfClosingElement,\n isJsxSpreadAttribute: () => isJsxSpreadAttribute,\n isJsxTagNameExpression: () => isJsxTagNameExpression,\n isJsxText: () => isJsxText,\n isJumpStatementTarget: () => isJumpStatementTarget,\n isKeyword: () => isKeyword,\n isKeywordOrPunctuation: () => isKeywordOrPunctuation,\n isKnownSymbol: () => isKnownSymbol,\n isLabelName: () => isLabelName,\n isLabelOfLabeledStatement: () => isLabelOfLabeledStatement,\n isLabeledStatement: () => isLabeledStatement,\n isLateVisibilityPaintedStatement: () => isLateVisibilityPaintedStatement,\n isLeftHandSideExpression: () => isLeftHandSideExpression,\n isLet: () => isLet,\n isLineBreak: () => isLineBreak,\n isLiteralComputedPropertyDeclarationName: () => isLiteralComputedPropertyDeclarationName,\n isLiteralExpression: () => isLiteralExpression,\n isLiteralExpressionOfObject: () => isLiteralExpressionOfObject,\n isLiteralImportTypeNode: () => isLiteralImportTypeNode,\n isLiteralKind: () => isLiteralKind,\n isLiteralNameOfPropertyDeclarationOrIndexAccess: () => isLiteralNameOfPropertyDeclarationOrIndexAccess,\n isLiteralTypeLiteral: () => isLiteralTypeLiteral,\n isLiteralTypeNode: () => isLiteralTypeNode,\n isLocalName: () => isLocalName,\n isLogicalOperator: () => isLogicalOperator,\n isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,\n isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,\n isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,\n isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,\n isMappedTypeNode: () => isMappedTypeNode,\n isMemberName: () => isMemberName,\n isMetaProperty: () => isMetaProperty,\n isMethodDeclaration: () => isMethodDeclaration,\n isMethodOrAccessor: () => isMethodOrAccessor,\n isMethodSignature: () => isMethodSignature,\n isMinusToken: () => isMinusToken,\n isMissingDeclaration: () => isMissingDeclaration,\n isMissingPackageJsonInfo: () => isMissingPackageJsonInfo,\n isModifier: () => isModifier,\n isModifierKind: () => isModifierKind,\n isModifierLike: () => isModifierLike,\n isModuleAugmentationExternal: () => isModuleAugmentationExternal,\n isModuleBlock: () => isModuleBlock,\n isModuleBody: () => isModuleBody,\n isModuleDeclaration: () => isModuleDeclaration,\n isModuleExportName: () => isModuleExportName,\n isModuleExportsAccessExpression: () => isModuleExportsAccessExpression,\n isModuleIdentifier: () => isModuleIdentifier,\n isModuleName: () => isModuleName,\n isModuleOrEnumDeclaration: () => isModuleOrEnumDeclaration,\n isModuleReference: () => isModuleReference,\n isModuleSpecifierLike: () => isModuleSpecifierLike,\n isModuleWithStringLiteralName: () => isModuleWithStringLiteralName,\n isNameOfFunctionDeclaration: () => isNameOfFunctionDeclaration,\n isNameOfModuleDeclaration: () => isNameOfModuleDeclaration,\n isNamedDeclaration: () => isNamedDeclaration,\n isNamedEvaluation: () => isNamedEvaluation,\n isNamedEvaluationSource: () => isNamedEvaluationSource,\n isNamedExportBindings: () => isNamedExportBindings,\n isNamedExports: () => isNamedExports,\n isNamedImportBindings: () => isNamedImportBindings,\n isNamedImports: () => isNamedImports,\n isNamedImportsOrExports: () => isNamedImportsOrExports,\n isNamedTupleMember: () => isNamedTupleMember,\n isNamespaceBody: () => isNamespaceBody,\n isNamespaceExport: () => isNamespaceExport,\n isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,\n isNamespaceImport: () => isNamespaceImport,\n isNamespaceReexportDeclaration: () => isNamespaceReexportDeclaration,\n isNewExpression: () => isNewExpression,\n isNewExpressionTarget: () => isNewExpressionTarget,\n isNewScopeNode: () => isNewScopeNode,\n isNoSubstitutionTemplateLiteral: () => isNoSubstitutionTemplateLiteral,\n isNodeArray: () => isNodeArray,\n isNodeArrayMultiLine: () => isNodeArrayMultiLine,\n isNodeDescendantOf: () => isNodeDescendantOf,\n isNodeKind: () => isNodeKind,\n isNodeLikeSystem: () => isNodeLikeSystem,\n isNodeModulesDirectory: () => isNodeModulesDirectory,\n isNodeWithPossibleHoistedDeclaration: () => isNodeWithPossibleHoistedDeclaration,\n isNonContextualKeyword: () => isNonContextualKeyword,\n isNonGlobalAmbientModule: () => isNonGlobalAmbientModule,\n isNonNullAccess: () => isNonNullAccess,\n isNonNullChain: () => isNonNullChain,\n isNonNullExpression: () => isNonNullExpression,\n isNonStaticMethodOrAccessorWithPrivateName: () => isNonStaticMethodOrAccessorWithPrivateName,\n isNotEmittedStatement: () => isNotEmittedStatement,\n isNullishCoalesce: () => isNullishCoalesce,\n isNumber: () => isNumber,\n isNumericLiteral: () => isNumericLiteral,\n isNumericLiteralName: () => isNumericLiteralName,\n isObjectBindingElementWithoutPropertyName: () => isObjectBindingElementWithoutPropertyName,\n isObjectBindingOrAssignmentElement: () => isObjectBindingOrAssignmentElement,\n isObjectBindingOrAssignmentPattern: () => isObjectBindingOrAssignmentPattern,\n isObjectBindingPattern: () => isObjectBindingPattern,\n isObjectLiteralElement: () => isObjectLiteralElement,\n isObjectLiteralElementLike: () => isObjectLiteralElementLike,\n isObjectLiteralExpression: () => isObjectLiteralExpression,\n isObjectLiteralMethod: () => isObjectLiteralMethod,\n isObjectLiteralOrClassExpressionMethodOrAccessor: () => isObjectLiteralOrClassExpressionMethodOrAccessor,\n isObjectTypeDeclaration: () => isObjectTypeDeclaration,\n isOmittedExpression: () => isOmittedExpression,\n isOptionalChain: () => isOptionalChain,\n isOptionalChainRoot: () => isOptionalChainRoot,\n isOptionalDeclaration: () => isOptionalDeclaration,\n isOptionalJSDocPropertyLikeTag: () => isOptionalJSDocPropertyLikeTag,\n isOptionalTypeNode: () => isOptionalTypeNode,\n isOuterExpression: () => isOuterExpression,\n isOutermostOptionalChain: () => isOutermostOptionalChain,\n isOverrideModifier: () => isOverrideModifier,\n isPackageJsonInfo: () => isPackageJsonInfo,\n isPackedArrayLiteral: () => isPackedArrayLiteral,\n isParameter: () => isParameter,\n isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,\n isParameterPropertyModifier: () => isParameterPropertyModifier,\n isParenthesizedExpression: () => isParenthesizedExpression,\n isParenthesizedTypeNode: () => isParenthesizedTypeNode,\n isParseTreeNode: () => isParseTreeNode,\n isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,\n isPartOfTypeNode: () => isPartOfTypeNode,\n isPartOfTypeOnlyImportOrExportDeclaration: () => isPartOfTypeOnlyImportOrExportDeclaration,\n isPartOfTypeQuery: () => isPartOfTypeQuery,\n isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,\n isPatternMatch: () => isPatternMatch,\n isPinnedComment: () => isPinnedComment,\n isPlainJsFile: () => isPlainJsFile,\n isPlusToken: () => isPlusToken,\n isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,\n isPostfixUnaryExpression: () => isPostfixUnaryExpression,\n isPrefixUnaryExpression: () => isPrefixUnaryExpression,\n isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,\n isPrivateIdentifier: () => isPrivateIdentifier,\n isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,\n isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,\n isPrivateIdentifierSymbol: () => isPrivateIdentifierSymbol,\n isProgramUptoDate: () => isProgramUptoDate,\n isPrologueDirective: () => isPrologueDirective,\n isPropertyAccessChain: () => isPropertyAccessChain,\n isPropertyAccessEntityNameExpression: () => isPropertyAccessEntityNameExpression,\n isPropertyAccessExpression: () => isPropertyAccessExpression,\n isPropertyAccessOrQualifiedName: () => isPropertyAccessOrQualifiedName,\n isPropertyAccessOrQualifiedNameOrImportTypeNode: () => isPropertyAccessOrQualifiedNameOrImportTypeNode,\n isPropertyAssignment: () => isPropertyAssignment,\n isPropertyDeclaration: () => isPropertyDeclaration,\n isPropertyName: () => isPropertyName,\n isPropertyNameLiteral: () => isPropertyNameLiteral,\n isPropertySignature: () => isPropertySignature,\n isPrototypeAccess: () => isPrototypeAccess,\n isPrototypePropertyAssignment: () => isPrototypePropertyAssignment,\n isPunctuation: () => isPunctuation,\n isPushOrUnshiftIdentifier: () => isPushOrUnshiftIdentifier,\n isQualifiedName: () => isQualifiedName,\n isQuestionDotToken: () => isQuestionDotToken,\n isQuestionOrExclamationToken: () => isQuestionOrExclamationToken,\n isQuestionOrPlusOrMinusToken: () => isQuestionOrPlusOrMinusToken,\n isQuestionToken: () => isQuestionToken,\n isReadonlyKeyword: () => isReadonlyKeyword,\n isReadonlyKeywordOrPlusOrMinusToken: () => isReadonlyKeywordOrPlusOrMinusToken,\n isRecognizedTripleSlashComment: () => isRecognizedTripleSlashComment,\n isReferenceFileLocation: () => isReferenceFileLocation,\n isReferencedFile: () => isReferencedFile,\n isRegularExpressionLiteral: () => isRegularExpressionLiteral,\n isRequireCall: () => isRequireCall,\n isRequireVariableStatement: () => isRequireVariableStatement,\n isRestParameter: () => isRestParameter,\n isRestTypeNode: () => isRestTypeNode,\n isReturnStatement: () => isReturnStatement,\n isReturnStatementWithFixablePromiseHandler: () => isReturnStatementWithFixablePromiseHandler,\n isRightSideOfAccessExpression: () => isRightSideOfAccessExpression,\n isRightSideOfInstanceofExpression: () => isRightSideOfInstanceofExpression,\n isRightSideOfPropertyAccess: () => isRightSideOfPropertyAccess,\n isRightSideOfQualifiedName: () => isRightSideOfQualifiedName,\n isRightSideOfQualifiedNameOrPropertyAccess: () => isRightSideOfQualifiedNameOrPropertyAccess,\n isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n isRootedDiskPath: () => isRootedDiskPath,\n isSameEntityName: () => isSameEntityName,\n isSatisfiesExpression: () => isSatisfiesExpression,\n isSemicolonClassElement: () => isSemicolonClassElement,\n isSetAccessor: () => isSetAccessor,\n isSetAccessorDeclaration: () => isSetAccessorDeclaration,\n isShiftOperatorOrHigher: () => isShiftOperatorOrHigher,\n isShorthandAmbientModuleSymbol: () => isShorthandAmbientModuleSymbol,\n isShorthandPropertyAssignment: () => isShorthandPropertyAssignment,\n isSideEffectImport: () => isSideEffectImport,\n isSignedNumericLiteral: () => isSignedNumericLiteral,\n isSimpleCopiableExpression: () => isSimpleCopiableExpression,\n isSimpleInlineableExpression: () => isSimpleInlineableExpression,\n isSimpleParameterList: () => isSimpleParameterList,\n isSingleOrDoubleQuote: () => isSingleOrDoubleQuote,\n isSolutionConfig: () => isSolutionConfig,\n isSourceElement: () => isSourceElement,\n isSourceFile: () => isSourceFile,\n isSourceFileFromLibrary: () => isSourceFileFromLibrary,\n isSourceFileJS: () => isSourceFileJS,\n isSourceFileNotJson: () => isSourceFileNotJson,\n isSourceMapping: () => isSourceMapping,\n isSpecialPropertyDeclaration: () => isSpecialPropertyDeclaration,\n isSpreadAssignment: () => isSpreadAssignment,\n isSpreadElement: () => isSpreadElement,\n isStatement: () => isStatement,\n isStatementButNotDeclaration: () => isStatementButNotDeclaration,\n isStatementOrBlock: () => isStatementOrBlock,\n isStatementWithLocals: () => isStatementWithLocals,\n isStatic: () => isStatic,\n isStaticModifier: () => isStaticModifier,\n isString: () => isString,\n isStringANonContextualKeyword: () => isStringANonContextualKeyword,\n isStringAndEmptyAnonymousObjectIntersection: () => isStringAndEmptyAnonymousObjectIntersection,\n isStringDoubleQuoted: () => isStringDoubleQuoted,\n isStringLiteral: () => isStringLiteral,\n isStringLiteralLike: () => isStringLiteralLike,\n isStringLiteralOrJsxExpression: () => isStringLiteralOrJsxExpression,\n isStringLiteralOrTemplate: () => isStringLiteralOrTemplate,\n isStringOrNumericLiteralLike: () => isStringOrNumericLiteralLike,\n isStringOrRegularExpressionOrTemplateLiteral: () => isStringOrRegularExpressionOrTemplateLiteral,\n isStringTextContainingNode: () => isStringTextContainingNode,\n isSuperCall: () => isSuperCall,\n isSuperKeyword: () => isSuperKeyword,\n isSuperProperty: () => isSuperProperty,\n isSupportedSourceFileName: () => isSupportedSourceFileName,\n isSwitchStatement: () => isSwitchStatement,\n isSyntaxList: () => isSyntaxList,\n isSyntheticExpression: () => isSyntheticExpression,\n isSyntheticReference: () => isSyntheticReference,\n isTagName: () => isTagName,\n isTaggedTemplateExpression: () => isTaggedTemplateExpression,\n isTaggedTemplateTag: () => isTaggedTemplateTag,\n isTemplateExpression: () => isTemplateExpression,\n isTemplateHead: () => isTemplateHead,\n isTemplateLiteral: () => isTemplateLiteral,\n isTemplateLiteralKind: () => isTemplateLiteralKind,\n isTemplateLiteralToken: () => isTemplateLiteralToken,\n isTemplateLiteralTypeNode: () => isTemplateLiteralTypeNode,\n isTemplateLiteralTypeSpan: () => isTemplateLiteralTypeSpan,\n isTemplateMiddle: () => isTemplateMiddle,\n isTemplateMiddleOrTemplateTail: () => isTemplateMiddleOrTemplateTail,\n isTemplateSpan: () => isTemplateSpan,\n isTemplateTail: () => isTemplateTail,\n isTextWhiteSpaceLike: () => isTextWhiteSpaceLike,\n isThis: () => isThis,\n isThisContainerOrFunctionBlock: () => isThisContainerOrFunctionBlock,\n isThisIdentifier: () => isThisIdentifier,\n isThisInTypeQuery: () => isThisInTypeQuery,\n isThisInitializedDeclaration: () => isThisInitializedDeclaration,\n isThisInitializedObjectBindingExpression: () => isThisInitializedObjectBindingExpression,\n isThisProperty: () => isThisProperty,\n isThisTypeNode: () => isThisTypeNode,\n isThisTypeParameter: () => isThisTypeParameter,\n isThisTypePredicate: () => isThisTypePredicate,\n isThrowStatement: () => isThrowStatement,\n isToken: () => isToken,\n isTokenKind: () => isTokenKind,\n isTraceEnabled: () => isTraceEnabled,\n isTransientSymbol: () => isTransientSymbol,\n isTrivia: () => isTrivia,\n isTryStatement: () => isTryStatement,\n isTupleTypeNode: () => isTupleTypeNode,\n isTypeAlias: () => isTypeAlias,\n isTypeAliasDeclaration: () => isTypeAliasDeclaration,\n isTypeAssertionExpression: () => isTypeAssertionExpression,\n isTypeDeclaration: () => isTypeDeclaration,\n isTypeElement: () => isTypeElement,\n isTypeKeyword: () => isTypeKeyword,\n isTypeKeywordTokenOrIdentifier: () => isTypeKeywordTokenOrIdentifier,\n isTypeLiteralNode: () => isTypeLiteralNode,\n isTypeNode: () => isTypeNode,\n isTypeNodeKind: () => isTypeNodeKind,\n isTypeOfExpression: () => isTypeOfExpression,\n isTypeOnlyExportDeclaration: () => isTypeOnlyExportDeclaration,\n isTypeOnlyImportDeclaration: () => isTypeOnlyImportDeclaration,\n isTypeOnlyImportOrExportDeclaration: () => isTypeOnlyImportOrExportDeclaration,\n isTypeOperatorNode: () => isTypeOperatorNode,\n isTypeParameterDeclaration: () => isTypeParameterDeclaration,\n isTypePredicateNode: () => isTypePredicateNode,\n isTypeQueryNode: () => isTypeQueryNode,\n isTypeReferenceNode: () => isTypeReferenceNode,\n isTypeReferenceType: () => isTypeReferenceType,\n isTypeUsableAsPropertyName: () => isTypeUsableAsPropertyName,\n isUMDExportSymbol: () => isUMDExportSymbol,\n isUnaryExpression: () => isUnaryExpression,\n isUnaryExpressionWithWrite: () => isUnaryExpressionWithWrite,\n isUnicodeIdentifierStart: () => isUnicodeIdentifierStart,\n isUnionTypeNode: () => isUnionTypeNode,\n isUrl: () => isUrl,\n isValidBigIntString: () => isValidBigIntString,\n isValidESSymbolDeclaration: () => isValidESSymbolDeclaration,\n isValidTypeOnlyAliasUseSite: () => isValidTypeOnlyAliasUseSite,\n isValueSignatureDeclaration: () => isValueSignatureDeclaration,\n isVarAwaitUsing: () => isVarAwaitUsing,\n isVarConst: () => isVarConst,\n isVarConstLike: () => isVarConstLike,\n isVarUsing: () => isVarUsing,\n isVariableDeclaration: () => isVariableDeclaration,\n isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,\n isVariableDeclarationInitializedToBareOrAccessedRequire: () => isVariableDeclarationInitializedToBareOrAccessedRequire,\n isVariableDeclarationInitializedToRequire: () => isVariableDeclarationInitializedToRequire,\n isVariableDeclarationList: () => isVariableDeclarationList,\n isVariableLike: () => isVariableLike,\n isVariableStatement: () => isVariableStatement,\n isVoidExpression: () => isVoidExpression,\n isWatchSet: () => isWatchSet,\n isWhileStatement: () => isWhileStatement,\n isWhiteSpaceLike: () => isWhiteSpaceLike,\n isWhiteSpaceSingleLine: () => isWhiteSpaceSingleLine,\n isWithStatement: () => isWithStatement,\n isWriteAccess: () => isWriteAccess,\n isWriteOnlyAccess: () => isWriteOnlyAccess,\n isYieldExpression: () => isYieldExpression,\n jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,\n keywordPart: () => keywordPart,\n last: () => last,\n lastOrUndefined: () => lastOrUndefined,\n length: () => length,\n libMap: () => libMap,\n libs: () => libs,\n lineBreakPart: () => lineBreakPart,\n loadModuleFromGlobalCache: () => loadModuleFromGlobalCache,\n loadWithModeAwareCache: () => loadWithModeAwareCache,\n makeIdentifierFromModuleName: () => makeIdentifierFromModuleName,\n makeImport: () => makeImport,\n makeStringLiteral: () => makeStringLiteral,\n mangleScopedPackageName: () => mangleScopedPackageName,\n map: () => map,\n mapAllOrFail: () => mapAllOrFail,\n mapDefined: () => mapDefined,\n mapDefinedIterator: () => mapDefinedIterator,\n mapEntries: () => mapEntries,\n mapIterator: () => mapIterator,\n mapOneOrMany: () => mapOneOrMany,\n mapToDisplayParts: () => mapToDisplayParts,\n matchFiles: () => matchFiles,\n matchPatternOrExact: () => matchPatternOrExact,\n matchedText: () => matchedText,\n matchesExclude: () => matchesExclude,\n matchesExcludeWorker: () => matchesExcludeWorker,\n maxBy: () => maxBy,\n maybeBind: () => maybeBind,\n maybeSetLocalizedDiagnosticMessages: () => maybeSetLocalizedDiagnosticMessages,\n memoize: () => memoize,\n memoizeOne: () => memoizeOne,\n min: () => min,\n minAndMax: () => minAndMax,\n missingFileModifiedTime: () => missingFileModifiedTime,\n modifierToFlag: () => modifierToFlag,\n modifiersToFlags: () => modifiersToFlags,\n moduleExportNameIsDefault: () => moduleExportNameIsDefault,\n moduleExportNameTextEscaped: () => moduleExportNameTextEscaped,\n moduleExportNameTextUnescaped: () => moduleExportNameTextUnescaped,\n moduleOptionDeclaration: () => moduleOptionDeclaration,\n moduleResolutionIsEqualTo: () => moduleResolutionIsEqualTo,\n moduleResolutionNameAndModeGetter: () => moduleResolutionNameAndModeGetter,\n moduleResolutionOptionDeclarations: () => moduleResolutionOptionDeclarations,\n moduleResolutionSupportsPackageJsonExportsAndImports: () => moduleResolutionSupportsPackageJsonExportsAndImports,\n moduleResolutionUsesNodeModules: () => moduleResolutionUsesNodeModules,\n moduleSpecifierToValidIdentifier: () => moduleSpecifierToValidIdentifier,\n moduleSpecifiers: () => ts_moduleSpecifiers_exports,\n moduleSupportsImportAttributes: () => moduleSupportsImportAttributes,\n moduleSymbolToValidIdentifier: () => moduleSymbolToValidIdentifier,\n moveEmitHelpers: () => moveEmitHelpers,\n moveRangeEnd: () => moveRangeEnd,\n moveRangePastDecorators: () => moveRangePastDecorators,\n moveRangePastModifiers: () => moveRangePastModifiers,\n moveRangePos: () => moveRangePos,\n moveSyntheticComments: () => moveSyntheticComments,\n mutateMap: () => mutateMap,\n mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,\n needsParentheses: () => needsParentheses,\n needsScopeMarker: () => needsScopeMarker,\n newCaseClauseTracker: () => newCaseClauseTracker,\n newPrivateEnvironment: () => newPrivateEnvironment,\n noEmitNotification: () => noEmitNotification,\n noEmitSubstitution: () => noEmitSubstitution,\n noTransformers: () => noTransformers,\n noTruncationMaximumTruncationLength: () => noTruncationMaximumTruncationLength,\n nodeCanBeDecorated: () => nodeCanBeDecorated,\n nodeCoreModules: () => nodeCoreModules,\n nodeHasName: () => nodeHasName,\n nodeIsDecorated: () => nodeIsDecorated,\n nodeIsMissing: () => nodeIsMissing,\n nodeIsPresent: () => nodeIsPresent,\n nodeIsSynthesized: () => nodeIsSynthesized,\n nodeModuleNameResolver: () => nodeModuleNameResolver,\n nodeModulesPathPart: () => nodeModulesPathPart,\n nodeNextJsonConfigResolver: () => nodeNextJsonConfigResolver,\n nodeOrChildIsDecorated: () => nodeOrChildIsDecorated,\n nodeOverlapsWithStartEnd: () => nodeOverlapsWithStartEnd,\n nodePosToString: () => nodePosToString,\n nodeSeenTracker: () => nodeSeenTracker,\n nodeStartsNewLexicalEnvironment: () => nodeStartsNewLexicalEnvironment,\n noop: () => noop,\n noopFileWatcher: () => noopFileWatcher,\n normalizePath: () => normalizePath,\n normalizeSlashes: () => normalizeSlashes,\n normalizeSpans: () => normalizeSpans,\n not: () => not,\n notImplemented: () => notImplemented,\n notImplementedResolver: () => notImplementedResolver,\n nullNodeConverters: () => nullNodeConverters,\n nullParenthesizerRules: () => nullParenthesizerRules,\n nullTransformationContext: () => nullTransformationContext,\n objectAllocator: () => objectAllocator,\n operatorPart: () => operatorPart,\n optionDeclarations: () => optionDeclarations,\n optionMapToObject: () => optionMapToObject,\n optionsAffectingProgramStructure: () => optionsAffectingProgramStructure,\n optionsForBuild: () => optionsForBuild,\n optionsForWatch: () => optionsForWatch,\n optionsHaveChanges: () => optionsHaveChanges,\n or: () => or,\n orderedRemoveItem: () => orderedRemoveItem,\n orderedRemoveItemAt: () => orderedRemoveItemAt,\n packageIdToPackageName: () => packageIdToPackageName,\n packageIdToString: () => packageIdToString,\n parameterIsThisKeyword: () => parameterIsThisKeyword,\n parameterNamePart: () => parameterNamePart,\n parseBaseNodeFactory: () => parseBaseNodeFactory,\n parseBigInt: () => parseBigInt,\n parseBuildCommand: () => parseBuildCommand,\n parseCommandLine: () => parseCommandLine,\n parseCommandLineWorker: () => parseCommandLineWorker,\n parseConfigFileTextToJson: () => parseConfigFileTextToJson,\n parseConfigFileWithSystem: () => parseConfigFileWithSystem,\n parseConfigHostFromCompilerHostLike: () => parseConfigHostFromCompilerHostLike,\n parseCustomTypeOption: () => parseCustomTypeOption,\n parseIsolatedEntityName: () => parseIsolatedEntityName,\n parseIsolatedJSDocComment: () => parseIsolatedJSDocComment,\n parseJSDocTypeExpressionForTests: () => parseJSDocTypeExpressionForTests,\n parseJsonConfigFileContent: () => parseJsonConfigFileContent,\n parseJsonSourceFileConfigFileContent: () => parseJsonSourceFileConfigFileContent,\n parseJsonText: () => parseJsonText,\n parseListTypeOption: () => parseListTypeOption,\n parseNodeFactory: () => parseNodeFactory,\n parseNodeModuleFromPath: () => parseNodeModuleFromPath,\n parsePackageName: () => parsePackageName,\n parsePseudoBigInt: () => parsePseudoBigInt,\n parseValidBigInt: () => parseValidBigInt,\n pasteEdits: () => ts_PasteEdits_exports,\n patchWriteFileEnsuringDirectory: () => patchWriteFileEnsuringDirectory,\n pathContainsNodeModules: () => pathContainsNodeModules,\n pathIsAbsolute: () => pathIsAbsolute,\n pathIsBareSpecifier: () => pathIsBareSpecifier,\n pathIsRelative: () => pathIsRelative,\n patternText: () => patternText,\n performIncrementalCompilation: () => performIncrementalCompilation,\n performance: () => ts_performance_exports,\n positionBelongsToNode: () => positionBelongsToNode,\n positionIsASICandidate: () => positionIsASICandidate,\n positionIsSynthesized: () => positionIsSynthesized,\n positionsAreOnSameLine: () => positionsAreOnSameLine,\n preProcessFile: () => preProcessFile,\n probablyUsesSemicolons: () => probablyUsesSemicolons,\n processCommentPragmas: () => processCommentPragmas,\n processPragmasIntoFields: () => processPragmasIntoFields,\n processTaggedTemplateExpression: () => processTaggedTemplateExpression,\n programContainsEsModules: () => programContainsEsModules,\n programContainsModules: () => programContainsModules,\n projectReferenceIsEqualTo: () => projectReferenceIsEqualTo,\n propertyNamePart: () => propertyNamePart,\n pseudoBigIntToString: () => pseudoBigIntToString,\n punctuationPart: () => punctuationPart,\n pushIfUnique: () => pushIfUnique,\n quote: () => quote,\n quotePreferenceFromString: () => quotePreferenceFromString,\n rangeContainsPosition: () => rangeContainsPosition,\n rangeContainsPositionExclusive: () => rangeContainsPositionExclusive,\n rangeContainsRange: () => rangeContainsRange,\n rangeContainsRangeExclusive: () => rangeContainsRangeExclusive,\n rangeContainsStartEnd: () => rangeContainsStartEnd,\n rangeEndIsOnSameLineAsRangeStart: () => rangeEndIsOnSameLineAsRangeStart,\n rangeEndPositionsAreOnSameLine: () => rangeEndPositionsAreOnSameLine,\n rangeEquals: () => rangeEquals,\n rangeIsOnSingleLine: () => rangeIsOnSingleLine,\n rangeOfNode: () => rangeOfNode,\n rangeOfTypeParameters: () => rangeOfTypeParameters,\n rangeOverlapsWithStartEnd: () => rangeOverlapsWithStartEnd,\n rangeStartIsOnSameLineAsRangeEnd: () => rangeStartIsOnSameLineAsRangeEnd,\n rangeStartPositionsAreOnSameLine: () => rangeStartPositionsAreOnSameLine,\n readBuilderProgram: () => readBuilderProgram,\n readConfigFile: () => readConfigFile,\n readJson: () => readJson,\n readJsonConfigFile: () => readJsonConfigFile,\n readJsonOrUndefined: () => readJsonOrUndefined,\n reduceEachLeadingCommentRange: () => reduceEachLeadingCommentRange,\n reduceEachTrailingCommentRange: () => reduceEachTrailingCommentRange,\n reduceLeft: () => reduceLeft,\n reduceLeftIterator: () => reduceLeftIterator,\n reducePathComponents: () => reducePathComponents,\n refactor: () => ts_refactor_exports,\n regExpEscape: () => regExpEscape,\n regularExpressionFlagToCharacterCode: () => regularExpressionFlagToCharacterCode,\n relativeComplement: () => relativeComplement,\n removeAllComments: () => removeAllComments,\n removeEmitHelper: () => removeEmitHelper,\n removeExtension: () => removeExtension,\n removeFileExtension: () => removeFileExtension,\n removeIgnoredPath: () => removeIgnoredPath,\n removeMinAndVersionNumbers: () => removeMinAndVersionNumbers,\n removePrefix: () => removePrefix,\n removeSuffix: () => removeSuffix,\n removeTrailingDirectorySeparator: () => removeTrailingDirectorySeparator,\n repeatString: () => repeatString,\n replaceElement: () => replaceElement,\n replaceFirstStar: () => replaceFirstStar,\n resolutionExtensionIsTSOrJson: () => resolutionExtensionIsTSOrJson,\n resolveConfigFileProjectName: () => resolveConfigFileProjectName,\n resolveJSModule: () => resolveJSModule,\n resolveLibrary: () => resolveLibrary,\n resolveModuleName: () => resolveModuleName,\n resolveModuleNameFromCache: () => resolveModuleNameFromCache,\n resolvePackageNameToPackageJson: () => resolvePackageNameToPackageJson,\n resolvePath: () => resolvePath,\n resolveProjectReferencePath: () => resolveProjectReferencePath,\n resolveTripleslashReference: () => resolveTripleslashReference,\n resolveTypeReferenceDirective: () => resolveTypeReferenceDirective,\n resolvingEmptyArray: () => resolvingEmptyArray,\n returnFalse: () => returnFalse,\n returnNoopFileWatcher: () => returnNoopFileWatcher,\n returnTrue: () => returnTrue,\n returnUndefined: () => returnUndefined,\n returnsPromise: () => returnsPromise,\n rewriteModuleSpecifier: () => rewriteModuleSpecifier,\n sameFlatMap: () => sameFlatMap,\n sameMap: () => sameMap,\n sameMapping: () => sameMapping,\n scanTokenAtPosition: () => scanTokenAtPosition,\n scanner: () => scanner,\n semanticDiagnosticsOptionDeclarations: () => semanticDiagnosticsOptionDeclarations,\n serializeCompilerOptions: () => serializeCompilerOptions,\n server: () => ts_server_exports3,\n servicesVersion: () => servicesVersion,\n setCommentRange: () => setCommentRange,\n setConfigFileInOptions: () => setConfigFileInOptions,\n setConstantValue: () => setConstantValue,\n setEmitFlags: () => setEmitFlags,\n setGetSourceFileAsHashVersioned: () => setGetSourceFileAsHashVersioned,\n setIdentifierAutoGenerate: () => setIdentifierAutoGenerate,\n setIdentifierGeneratedImportReference: () => setIdentifierGeneratedImportReference,\n setIdentifierTypeArguments: () => setIdentifierTypeArguments,\n setInternalEmitFlags: () => setInternalEmitFlags,\n setLocalizedDiagnosticMessages: () => setLocalizedDiagnosticMessages,\n setNodeChildren: () => setNodeChildren,\n setNodeFlags: () => setNodeFlags,\n setObjectAllocator: () => setObjectAllocator,\n setOriginalNode: () => setOriginalNode,\n setParent: () => setParent,\n setParentRecursive: () => setParentRecursive,\n setPrivateIdentifier: () => setPrivateIdentifier,\n setSnippetElement: () => setSnippetElement,\n setSourceMapRange: () => setSourceMapRange,\n setStackTraceLimit: () => setStackTraceLimit,\n setStartsOnNewLine: () => setStartsOnNewLine,\n setSyntheticLeadingComments: () => setSyntheticLeadingComments,\n setSyntheticTrailingComments: () => setSyntheticTrailingComments,\n setSys: () => setSys,\n setSysLog: () => setSysLog,\n setTextRange: () => setTextRange,\n setTextRangeEnd: () => setTextRangeEnd,\n setTextRangePos: () => setTextRangePos,\n setTextRangePosEnd: () => setTextRangePosEnd,\n setTextRangePosWidth: () => setTextRangePosWidth,\n setTokenSourceMapRange: () => setTokenSourceMapRange,\n setTypeNode: () => setTypeNode,\n setUILocale: () => setUILocale,\n setValueDeclaration: () => setValueDeclaration,\n shouldAllowImportingTsExtension: () => shouldAllowImportingTsExtension,\n shouldPreserveConstEnums: () => shouldPreserveConstEnums,\n shouldRewriteModuleSpecifier: () => shouldRewriteModuleSpecifier,\n shouldUseUriStyleNodeCoreModules: () => shouldUseUriStyleNodeCoreModules,\n showModuleSpecifier: () => showModuleSpecifier,\n signatureHasRestParameter: () => signatureHasRestParameter,\n signatureToDisplayParts: () => signatureToDisplayParts,\n single: () => single,\n singleElementArray: () => singleElementArray,\n singleIterator: () => singleIterator,\n singleOrMany: () => singleOrMany,\n singleOrUndefined: () => singleOrUndefined,\n skipAlias: () => skipAlias,\n skipConstraint: () => skipConstraint,\n skipOuterExpressions: () => skipOuterExpressions,\n skipParentheses: () => skipParentheses,\n skipPartiallyEmittedExpressions: () => skipPartiallyEmittedExpressions,\n skipTrivia: () => skipTrivia,\n skipTypeChecking: () => skipTypeChecking,\n skipTypeCheckingIgnoringNoCheck: () => skipTypeCheckingIgnoringNoCheck,\n skipTypeParentheses: () => skipTypeParentheses,\n skipWhile: () => skipWhile,\n sliceAfter: () => sliceAfter,\n some: () => some,\n sortAndDeduplicate: () => sortAndDeduplicate,\n sortAndDeduplicateDiagnostics: () => sortAndDeduplicateDiagnostics,\n sourceFileAffectingCompilerOptions: () => sourceFileAffectingCompilerOptions,\n sourceFileMayBeEmitted: () => sourceFileMayBeEmitted,\n sourceMapCommentRegExp: () => sourceMapCommentRegExp,\n sourceMapCommentRegExpDontCareLineStart: () => sourceMapCommentRegExpDontCareLineStart,\n spacePart: () => spacePart,\n spanMap: () => spanMap,\n startEndContainsRange: () => startEndContainsRange,\n startEndOverlapsWithStartEnd: () => startEndOverlapsWithStartEnd,\n startOnNewLine: () => startOnNewLine,\n startTracing: () => startTracing,\n startsWith: () => startsWith,\n startsWithDirectory: () => startsWithDirectory,\n startsWithUnderscore: () => startsWithUnderscore,\n startsWithUseStrict: () => startsWithUseStrict,\n stringContainsAt: () => stringContainsAt,\n stringToToken: () => stringToToken,\n stripQuotes: () => stripQuotes,\n supportedDeclarationExtensions: () => supportedDeclarationExtensions,\n supportedJSExtensionsFlat: () => supportedJSExtensionsFlat,\n supportedLocaleDirectories: () => supportedLocaleDirectories,\n supportedTSExtensionsFlat: () => supportedTSExtensionsFlat,\n supportedTSImplementationExtensions: () => supportedTSImplementationExtensions,\n suppressLeadingAndTrailingTrivia: () => suppressLeadingAndTrailingTrivia,\n suppressLeadingTrivia: () => suppressLeadingTrivia,\n suppressTrailingTrivia: () => suppressTrailingTrivia,\n symbolEscapedNameNoDefault: () => symbolEscapedNameNoDefault,\n symbolName: () => symbolName,\n symbolNameNoDefault: () => symbolNameNoDefault,\n symbolToDisplayParts: () => symbolToDisplayParts,\n sys: () => sys,\n sysLog: () => sysLog,\n tagNamesAreEquivalent: () => tagNamesAreEquivalent,\n takeWhile: () => takeWhile,\n targetOptionDeclaration: () => targetOptionDeclaration,\n targetToLibMap: () => targetToLibMap,\n testFormatSettings: () => testFormatSettings,\n textChangeRangeIsUnchanged: () => textChangeRangeIsUnchanged,\n textChangeRangeNewSpan: () => textChangeRangeNewSpan,\n textChanges: () => ts_textChanges_exports,\n textOrKeywordPart: () => textOrKeywordPart,\n textPart: () => textPart,\n textRangeContainsPositionInclusive: () => textRangeContainsPositionInclusive,\n textRangeContainsTextSpan: () => textRangeContainsTextSpan,\n textRangeIntersectsWithTextSpan: () => textRangeIntersectsWithTextSpan,\n textSpanContainsPosition: () => textSpanContainsPosition,\n textSpanContainsTextRange: () => textSpanContainsTextRange,\n textSpanContainsTextSpan: () => textSpanContainsTextSpan,\n textSpanEnd: () => textSpanEnd,\n textSpanIntersection: () => textSpanIntersection,\n textSpanIntersectsWith: () => textSpanIntersectsWith,\n textSpanIntersectsWithPosition: () => textSpanIntersectsWithPosition,\n textSpanIntersectsWithTextSpan: () => textSpanIntersectsWithTextSpan,\n textSpanIsEmpty: () => textSpanIsEmpty,\n textSpanOverlap: () => textSpanOverlap,\n textSpanOverlapsWith: () => textSpanOverlapsWith,\n textSpansEqual: () => textSpansEqual,\n textToKeywordObj: () => textToKeywordObj,\n timestamp: () => timestamp,\n toArray: () => toArray,\n toBuilderFileEmit: () => toBuilderFileEmit,\n toBuilderStateFileInfoForMultiEmit: () => toBuilderStateFileInfoForMultiEmit,\n toEditorSettings: () => toEditorSettings,\n toFileNameLowerCase: () => toFileNameLowerCase,\n toPath: () => toPath,\n toProgramEmitPending: () => toProgramEmitPending,\n toSorted: () => toSorted,\n tokenIsIdentifierOrKeyword: () => tokenIsIdentifierOrKeyword,\n tokenIsIdentifierOrKeywordOrGreaterThan: () => tokenIsIdentifierOrKeywordOrGreaterThan,\n tokenToString: () => tokenToString,\n trace: () => trace,\n tracing: () => tracing,\n tracingEnabled: () => tracingEnabled,\n transferSourceFileChildren: () => transferSourceFileChildren,\n transform: () => transform,\n transformClassFields: () => transformClassFields,\n transformDeclarations: () => transformDeclarations,\n transformECMAScriptModule: () => transformECMAScriptModule,\n transformES2015: () => transformES2015,\n transformES2016: () => transformES2016,\n transformES2017: () => transformES2017,\n transformES2018: () => transformES2018,\n transformES2019: () => transformES2019,\n transformES2020: () => transformES2020,\n transformES2021: () => transformES2021,\n transformESDecorators: () => transformESDecorators,\n transformESNext: () => transformESNext,\n transformGenerators: () => transformGenerators,\n transformImpliedNodeFormatDependentModule: () => transformImpliedNodeFormatDependentModule,\n transformJsx: () => transformJsx,\n transformLegacyDecorators: () => transformLegacyDecorators,\n transformModule: () => transformModule,\n transformNamedEvaluation: () => transformNamedEvaluation,\n transformNodes: () => transformNodes,\n transformSystemModule: () => transformSystemModule,\n transformTypeScript: () => transformTypeScript,\n transpile: () => transpile,\n transpileDeclaration: () => transpileDeclaration,\n transpileModule: () => transpileModule,\n transpileOptionValueCompilerOptions: () => transpileOptionValueCompilerOptions,\n tryAddToSet: () => tryAddToSet,\n tryAndIgnoreErrors: () => tryAndIgnoreErrors,\n tryCast: () => tryCast,\n tryDirectoryExists: () => tryDirectoryExists,\n tryExtractTSExtension: () => tryExtractTSExtension,\n tryFileExists: () => tryFileExists,\n tryGetClassExtendingExpressionWithTypeArguments: () => tryGetClassExtendingExpressionWithTypeArguments,\n tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n tryGetDirectories: () => tryGetDirectories,\n tryGetExtensionFromPath: () => tryGetExtensionFromPath2,\n tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,\n tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,\n tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,\n tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,\n tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,\n tryGetPropertyAccessOrIdentifierToString: () => tryGetPropertyAccessOrIdentifierToString,\n tryGetPropertyNameOfBindingOrAssignmentElement: () => tryGetPropertyNameOfBindingOrAssignmentElement,\n tryGetSourceMappingURL: () => tryGetSourceMappingURL,\n tryGetTextOfPropertyName: () => tryGetTextOfPropertyName,\n tryParseJson: () => tryParseJson,\n tryParsePattern: () => tryParsePattern,\n tryParsePatterns: () => tryParsePatterns,\n tryParseRawSourceMap: () => tryParseRawSourceMap,\n tryReadDirectory: () => tryReadDirectory,\n tryReadFile: () => tryReadFile,\n tryRemoveDirectoryPrefix: () => tryRemoveDirectoryPrefix,\n tryRemoveExtension: () => tryRemoveExtension,\n tryRemovePrefix: () => tryRemovePrefix,\n tryRemoveSuffix: () => tryRemoveSuffix,\n tscBuildOption: () => tscBuildOption,\n typeAcquisitionDeclarations: () => typeAcquisitionDeclarations,\n typeAliasNamePart: () => typeAliasNamePart,\n typeDirectiveIsEqualTo: () => typeDirectiveIsEqualTo,\n typeKeywords: () => typeKeywords,\n typeParameterNamePart: () => typeParameterNamePart,\n typeToDisplayParts: () => typeToDisplayParts,\n unchangedPollThresholds: () => unchangedPollThresholds,\n unchangedTextChangeRange: () => unchangedTextChangeRange,\n unescapeLeadingUnderscores: () => unescapeLeadingUnderscores,\n unmangleScopedPackageName: () => unmangleScopedPackageName,\n unorderedRemoveItem: () => unorderedRemoveItem,\n unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,\n unreachableCodeIsError: () => unreachableCodeIsError,\n unsetNodeChildren: () => unsetNodeChildren,\n unusedLabelIsError: () => unusedLabelIsError,\n unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,\n unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,\n updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,\n updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,\n updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,\n updateResolutionField: () => updateResolutionField,\n updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,\n updateSourceFile: () => updateSourceFile,\n updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,\n usingSingleLineStringWriter: () => usingSingleLineStringWriter,\n utf16EncodeAsString: () => utf16EncodeAsString,\n validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,\n version: () => version,\n versionMajorMinor: () => versionMajorMinor,\n visitArray: () => visitArray,\n visitCommaListElements: () => visitCommaListElements,\n visitEachChild: () => visitEachChild,\n visitFunctionBody: () => visitFunctionBody,\n visitIterationBody: () => visitIterationBody,\n visitLexicalEnvironment: () => visitLexicalEnvironment,\n visitNode: () => visitNode,\n visitNodes: () => visitNodes2,\n visitParameterList: () => visitParameterList,\n walkUpBindingElementsAndPatterns: () => walkUpBindingElementsAndPatterns,\n walkUpOuterExpressions: () => walkUpOuterExpressions,\n walkUpParenthesizedExpressions: () => walkUpParenthesizedExpressions,\n walkUpParenthesizedTypes: () => walkUpParenthesizedTypes,\n walkUpParenthesizedTypesAndGetParentAndChild: () => walkUpParenthesizedTypesAndGetParentAndChild,\n whitespaceOrMapCommentRegExp: () => whitespaceOrMapCommentRegExp,\n writeCommentRange: () => writeCommentRange,\n writeFile: () => writeFile,\n writeFileEnsuringDirectories: () => writeFileEnsuringDirectories,\n zipWith: () => zipWith\n});\n\n// src/deprecatedCompat/deprecate.ts\nvar enableDeprecationWarnings = true;\nvar typeScriptVersion2;\nfunction getTypeScriptVersion() {\n return typeScriptVersion2 ?? (typeScriptVersion2 = new Version(version));\n}\nfunction formatDeprecationMessage(name, error2, errorAfter, since, message) {\n let deprecationMessage = error2 ? \"DeprecationError: \" : \"DeprecationWarning: \";\n deprecationMessage += `'${name}' `;\n deprecationMessage += since ? `has been deprecated since v${since}` : \"is deprecated\";\n deprecationMessage += error2 ? \" and can no longer be used.\" : errorAfter ? ` and will no longer be usable after v${errorAfter}.` : \".\";\n deprecationMessage += message ? ` ${formatStringFromArgs(message, [name])}` : \"\";\n return deprecationMessage;\n}\nfunction createErrorDeprecation(name, errorAfter, since, message) {\n const deprecationMessage = formatDeprecationMessage(\n name,\n /*error*/\n true,\n errorAfter,\n since,\n message\n );\n return () => {\n throw new TypeError(deprecationMessage);\n };\n}\nfunction createWarningDeprecation(name, errorAfter, since, message) {\n let hasWrittenDeprecation = false;\n return () => {\n if (enableDeprecationWarnings && !hasWrittenDeprecation) {\n Debug.log.warn(formatDeprecationMessage(\n name,\n /*error*/\n false,\n errorAfter,\n since,\n message\n ));\n hasWrittenDeprecation = true;\n }\n };\n}\nfunction createDeprecation(name, options = {}) {\n const version2 = typeof options.typeScriptVersion === \"string\" ? new Version(options.typeScriptVersion) : options.typeScriptVersion ?? getTypeScriptVersion();\n const errorAfter = typeof options.errorAfter === \"string\" ? new Version(options.errorAfter) : options.errorAfter;\n const warnAfter = typeof options.warnAfter === \"string\" ? new Version(options.warnAfter) : options.warnAfter;\n const since = typeof options.since === \"string\" ? new Version(options.since) : options.since ?? warnAfter;\n const error2 = options.error || errorAfter && version2.compareTo(errorAfter) >= 0;\n const warn = !warnAfter || version2.compareTo(warnAfter) >= 0;\n return error2 ? createErrorDeprecation(name, errorAfter, since, options.message) : warn ? createWarningDeprecation(name, errorAfter, since, options.message) : noop;\n}\nfunction wrapFunction(deprecation, func) {\n return function() {\n deprecation();\n return func.apply(this, arguments);\n };\n}\nfunction deprecate(func, options) {\n const deprecation = createDeprecation((options == null ? void 0 : options.name) ?? Debug.getFunctionName(func), options);\n return wrapFunction(deprecation, func);\n}\n\n// src/deprecatedCompat/deprecations.ts\nfunction createOverload(name, overloads, binder2, deprecations) {\n Object.defineProperty(call, \"name\", { ...Object.getOwnPropertyDescriptor(call, \"name\"), value: name });\n if (deprecations) {\n for (const key of Object.keys(deprecations)) {\n const index = +key;\n if (!isNaN(index) && hasProperty(overloads, `${index}`)) {\n overloads[index] = deprecate(overloads[index], { ...deprecations[index], name });\n }\n }\n }\n const bind = createBinder2(overloads, binder2);\n return call;\n function call(...args) {\n const index = bind(args);\n const fn = index !== void 0 ? overloads[index] : void 0;\n if (typeof fn === \"function\") {\n return fn(...args);\n }\n throw new TypeError(\"Invalid arguments\");\n }\n}\nfunction createBinder2(overloads, binder2) {\n return (args) => {\n for (let i = 0; hasProperty(overloads, `${i}`) && hasProperty(binder2, `${i}`); i++) {\n const fn = binder2[i];\n if (fn(args)) {\n return i;\n }\n }\n };\n}\nfunction buildOverload(name) {\n return {\n overload: (overloads) => ({\n bind: (binder2) => ({\n finish: () => createOverload(name, overloads, binder2),\n deprecate: (deprecations) => ({\n finish: () => createOverload(name, overloads, binder2, deprecations)\n })\n })\n })\n };\n}\n\n// src/server/_namespaces/ts.server.ts\nvar ts_server_exports3 = {};\n__export(ts_server_exports3, {\n ActionInvalidate: () => ActionInvalidate,\n ActionPackageInstalled: () => ActionPackageInstalled,\n ActionSet: () => ActionSet,\n ActionWatchTypingLocations: () => ActionWatchTypingLocations,\n Arguments: () => Arguments,\n AutoImportProviderProject: () => AutoImportProviderProject,\n AuxiliaryProject: () => AuxiliaryProject,\n CharRangeSection: () => CharRangeSection,\n CloseFileWatcherEvent: () => CloseFileWatcherEvent,\n CommandNames: () => CommandNames,\n ConfigFileDiagEvent: () => ConfigFileDiagEvent,\n ConfiguredProject: () => ConfiguredProject2,\n ConfiguredProjectLoadKind: () => ConfiguredProjectLoadKind,\n CreateDirectoryWatcherEvent: () => CreateDirectoryWatcherEvent,\n CreateFileWatcherEvent: () => CreateFileWatcherEvent,\n Errors: () => Errors,\n EventBeginInstallTypes: () => EventBeginInstallTypes,\n EventEndInstallTypes: () => EventEndInstallTypes,\n EventInitializationFailed: () => EventInitializationFailed,\n EventTypesRegistry: () => EventTypesRegistry,\n ExternalProject: () => ExternalProject,\n GcTimer: () => GcTimer,\n InferredProject: () => InferredProject2,\n LargeFileReferencedEvent: () => LargeFileReferencedEvent,\n LineIndex: () => LineIndex,\n LineLeaf: () => LineLeaf,\n LineNode: () => LineNode,\n LogLevel: () => LogLevel2,\n Msg: () => Msg,\n OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent,\n Project: () => Project2,\n ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent,\n ProjectKind: () => ProjectKind,\n ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent,\n ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent,\n ProjectLoadingStartEvent: () => ProjectLoadingStartEvent,\n ProjectService: () => ProjectService2,\n ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent,\n ScriptInfo: () => ScriptInfo,\n ScriptVersionCache: () => ScriptVersionCache,\n Session: () => Session3,\n TextStorage: () => TextStorage,\n ThrottledOperations: () => ThrottledOperations,\n TypingsInstallerAdapter: () => TypingsInstallerAdapter,\n allFilesAreJsOrDts: () => allFilesAreJsOrDts,\n allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts,\n asNormalizedPath: () => asNormalizedPath,\n convertCompilerOptions: () => convertCompilerOptions,\n convertFormatOptions: () => convertFormatOptions,\n convertScriptKindName: () => convertScriptKindName,\n convertTypeAcquisition: () => convertTypeAcquisition,\n convertUserPreferences: () => convertUserPreferences,\n convertWatchOptions: () => convertWatchOptions,\n countEachFileTypes: () => countEachFileTypes,\n createInstallTypingsRequest: () => createInstallTypingsRequest,\n createModuleSpecifierCache: () => createModuleSpecifierCache,\n createNormalizedPathMap: () => createNormalizedPathMap,\n createPackageJsonCache: () => createPackageJsonCache,\n createSortedArray: () => createSortedArray2,\n emptyArray: () => emptyArray2,\n findArgument: () => findArgument,\n formatDiagnosticToProtocol: () => formatDiagnosticToProtocol,\n formatMessage: () => formatMessage2,\n getBaseConfigFileName: () => getBaseConfigFileName,\n getDetailWatchInfo: () => getDetailWatchInfo,\n getLocationInNewDocument: () => getLocationInNewDocument,\n hasArgument: () => hasArgument,\n hasNoTypeScriptSource: () => hasNoTypeScriptSource,\n indent: () => indent2,\n isBackgroundProject: () => isBackgroundProject,\n isConfigFile: () => isConfigFile,\n isConfiguredProject: () => isConfiguredProject,\n isDynamicFileName: () => isDynamicFileName,\n isExternalProject: () => isExternalProject,\n isInferredProject: () => isInferredProject,\n isInferredProjectName: () => isInferredProjectName,\n isProjectDeferredClose: () => isProjectDeferredClose,\n makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName,\n makeAuxiliaryProjectName: () => makeAuxiliaryProjectName,\n makeInferredProjectName: () => makeInferredProjectName,\n maxFileSize: () => maxFileSize,\n maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles,\n normalizedPathToPath: () => normalizedPathToPath,\n nowString: () => nowString,\n nullCancellationToken: () => nullCancellationToken,\n nullTypingsInstaller: () => nullTypingsInstaller,\n protocol: () => ts_server_protocol_exports,\n scriptInfoIsContainedByBackgroundProject: () => scriptInfoIsContainedByBackgroundProject,\n scriptInfoIsContainedByDeferredClosedProject: () => scriptInfoIsContainedByDeferredClosedProject,\n stringifyIndented: () => stringifyIndented,\n toEvent: () => toEvent,\n toNormalizedPath: () => toNormalizedPath,\n tryConvertScriptKindName: () => tryConvertScriptKindName,\n typingsInstaller: () => ts_server_typingsInstaller_exports,\n updateProjectIfDirty: () => updateProjectIfDirty\n});\n\n// src/typingsInstallerCore/_namespaces/ts.server.typingsInstaller.ts\nvar ts_server_typingsInstaller_exports = {};\n__export(ts_server_typingsInstaller_exports, {\n TypingsInstaller: () => TypingsInstaller,\n getNpmCommandForInstallation: () => getNpmCommandForInstallation,\n installNpmPackages: () => installNpmPackages,\n typingsName: () => typingsName\n});\n\n// src/typingsInstallerCore/typingsInstaller.ts\nvar nullLog = {\n isEnabled: () => false,\n writeLine: noop\n};\nfunction typingToFileName(cachePath, packageName, installTypingHost, log) {\n try {\n const result = resolveModuleName(packageName, combinePaths(cachePath, \"index.d.ts\"), { moduleResolution: 2 /* Node10 */ }, installTypingHost);\n return result.resolvedModule && result.resolvedModule.resolvedFileName;\n } catch (e) {\n if (log.isEnabled()) {\n log.writeLine(`Failed to resolve ${packageName} in folder '${cachePath}': ${e.message}`);\n }\n return void 0;\n }\n}\nfunction installNpmPackages(npmPath, tsVersion, packageNames, install) {\n let hasError = false;\n for (let remaining = packageNames.length; remaining > 0; ) {\n const result = getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining);\n remaining = result.remaining;\n hasError = install(result.command) || hasError;\n }\n return hasError;\n}\nfunction getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining) {\n const sliceStart = packageNames.length - remaining;\n let command, toSlice = remaining;\n while (true) {\n command = `${npmPath} install --ignore-scripts ${(toSlice === packageNames.length ? packageNames : packageNames.slice(sliceStart, sliceStart + toSlice)).join(\" \")} --save-dev --user-agent=\"typesInstaller/${tsVersion}\"`;\n if (command.length < 8e3) {\n break;\n }\n toSlice = toSlice - Math.floor(toSlice / 2);\n }\n return { command, remaining: remaining - toSlice };\n}\nvar TypingsInstaller = class {\n constructor(installTypingHost, globalCachePath, safeListPath, typesMapLocation, throttleLimit, log = nullLog) {\n this.installTypingHost = installTypingHost;\n this.globalCachePath = globalCachePath;\n this.safeListPath = safeListPath;\n this.typesMapLocation = typesMapLocation;\n this.throttleLimit = throttleLimit;\n this.log = log;\n this.packageNameToTypingLocation = /* @__PURE__ */ new Map();\n this.missingTypingsSet = /* @__PURE__ */ new Set();\n this.knownCachesSet = /* @__PURE__ */ new Set();\n this.projectWatchers = /* @__PURE__ */ new Map();\n this.pendingRunRequests = [];\n this.installRunCount = 1;\n this.inFlightRequestCount = 0;\n // eslint-disable-line @typescript-eslint/unified-signatures\n this.latestDistTag = \"latest\";\n const isLoggingEnabled = this.log.isEnabled();\n if (isLoggingEnabled) {\n this.log.writeLine(`Global cache location '${globalCachePath}', safe file path '${safeListPath}', types map path ${typesMapLocation}`);\n }\n this.processCacheLocation(this.globalCachePath);\n }\n /** @internal */\n handleRequest(req) {\n switch (req.kind) {\n case \"discover\":\n this.install(req);\n break;\n case \"closeProject\":\n this.closeProject(req);\n break;\n case \"typesRegistry\": {\n const typesRegistry = {};\n this.typesRegistry.forEach((value, key) => {\n typesRegistry[key] = value;\n });\n const response = { kind: EventTypesRegistry, typesRegistry };\n this.sendResponse(response);\n break;\n }\n case \"installPackage\": {\n this.installPackage(req);\n break;\n }\n default:\n Debug.assertNever(req);\n }\n }\n closeProject(req) {\n this.closeWatchers(req.projectName);\n }\n closeWatchers(projectName) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Closing file watchers for project '${projectName}'`);\n }\n const watchers = this.projectWatchers.get(projectName);\n if (!watchers) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`No watchers are registered for project '${projectName}'`);\n }\n return;\n }\n this.projectWatchers.delete(projectName);\n this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files: [] });\n if (this.log.isEnabled()) {\n this.log.writeLine(`Closing file watchers for project '${projectName}' - done.`);\n }\n }\n install(req) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Got install request${stringifyIndented(req)}`);\n }\n if (req.cachePath) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Request specifies cache path '${req.cachePath}', loading cached information...`);\n }\n this.processCacheLocation(req.cachePath);\n }\n if (this.safeList === void 0) {\n this.initializeSafeList();\n }\n const discoverTypingsResult = ts_JsTyping_exports.discoverTypings(\n this.installTypingHost,\n this.log.isEnabled() ? (s) => this.log.writeLine(s) : void 0,\n req.fileNames,\n req.projectRootPath,\n this.safeList,\n this.packageNameToTypingLocation,\n req.typeAcquisition,\n req.unresolvedImports,\n this.typesRegistry,\n req.compilerOptions\n );\n this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch);\n if (discoverTypingsResult.newTypingNames.length) {\n this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames);\n } else {\n this.sendResponse(this.createSetTypings(req, discoverTypingsResult.cachedTypingPaths));\n if (this.log.isEnabled()) {\n this.log.writeLine(`No new typings were requested as a result of typings discovery`);\n }\n }\n }\n /** @internal */\n installPackage(req) {\n const { fileName, packageName, projectName, projectRootPath, id } = req;\n const cwd = forEachAncestorDirectory(getDirectoryPath(fileName), (directory) => {\n if (this.installTypingHost.fileExists(combinePaths(directory, \"package.json\"))) {\n return directory;\n }\n }) || projectRootPath;\n if (cwd) {\n this.installWorker(-1, [packageName], cwd, (success) => {\n const message = success ? `Package ${packageName} installed.` : `There was an error installing ${packageName}.`;\n const response = {\n kind: ActionPackageInstalled,\n projectName,\n id,\n success,\n message\n };\n this.sendResponse(response);\n });\n } else {\n const response = {\n kind: ActionPackageInstalled,\n projectName,\n id,\n success: false,\n message: \"Could not determine a project root path.\"\n };\n this.sendResponse(response);\n }\n }\n initializeSafeList() {\n if (this.typesMapLocation) {\n const safeListFromMap = ts_JsTyping_exports.loadTypesMap(this.installTypingHost, this.typesMapLocation);\n if (safeListFromMap) {\n this.log.writeLine(`Loaded safelist from types map file '${this.typesMapLocation}'`);\n this.safeList = safeListFromMap;\n return;\n }\n this.log.writeLine(`Failed to load safelist from types map file '${this.typesMapLocation}'`);\n }\n this.safeList = ts_JsTyping_exports.loadSafeList(this.installTypingHost, this.safeListPath);\n }\n processCacheLocation(cacheLocation) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Processing cache location '${cacheLocation}'`);\n }\n if (this.knownCachesSet.has(cacheLocation)) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Cache location was already processed...`);\n }\n return;\n }\n const packageJson = combinePaths(cacheLocation, \"package.json\");\n const packageLockJson = combinePaths(cacheLocation, \"package-lock.json\");\n if (this.log.isEnabled()) {\n this.log.writeLine(`Trying to find '${packageJson}'...`);\n }\n if (this.installTypingHost.fileExists(packageJson) && this.installTypingHost.fileExists(packageLockJson)) {\n const npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson));\n const npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson));\n if (this.log.isEnabled()) {\n this.log.writeLine(`Loaded content of '${packageJson}':${stringifyIndented(npmConfig)}`);\n this.log.writeLine(`Loaded content of '${packageLockJson}':${stringifyIndented(npmLock)}`);\n }\n if (npmConfig.devDependencies && (npmLock.packages || npmLock.dependencies)) {\n for (const key in npmConfig.devDependencies) {\n if (npmLock.packages && !hasProperty(npmLock.packages, `node_modules/${key}`) || npmLock.dependencies && !hasProperty(npmLock.dependencies, key)) {\n continue;\n }\n const packageName = getBaseFileName(key);\n if (!packageName) {\n continue;\n }\n const typingFile = typingToFileName(cacheLocation, packageName, this.installTypingHost, this.log);\n if (!typingFile) {\n this.missingTypingsSet.add(packageName);\n continue;\n }\n const existingTypingFile = this.packageNameToTypingLocation.get(packageName);\n if (existingTypingFile) {\n if (existingTypingFile.typingLocation === typingFile) {\n continue;\n }\n if (this.log.isEnabled()) {\n this.log.writeLine(`New typing for package ${packageName} from '${typingFile}' conflicts with existing typing file '${existingTypingFile}'`);\n }\n }\n if (this.log.isEnabled()) {\n this.log.writeLine(`Adding entry into typings cache: '${packageName}' => '${typingFile}'`);\n }\n const info = npmLock.packages && getProperty(npmLock.packages, `node_modules/${key}`) || getProperty(npmLock.dependencies, key);\n const version2 = info && info.version;\n if (!version2) {\n continue;\n }\n const newTyping = { typingLocation: typingFile, version: new Version(version2) };\n this.packageNameToTypingLocation.set(packageName, newTyping);\n }\n }\n }\n if (this.log.isEnabled()) {\n this.log.writeLine(`Finished processing cache location '${cacheLocation}'`);\n }\n this.knownCachesSet.add(cacheLocation);\n }\n filterTypings(typingsToInstall) {\n return mapDefined(typingsToInstall, (typing) => {\n const typingKey = mangleScopedPackageName(typing);\n if (this.missingTypingsSet.has(typingKey)) {\n if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: '${typingKey}' is in missingTypingsSet - skipping...`);\n return void 0;\n }\n const validationResult = ts_JsTyping_exports.validatePackageName(typing);\n if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) {\n this.missingTypingsSet.add(typingKey);\n if (this.log.isEnabled()) this.log.writeLine(ts_JsTyping_exports.renderPackageNameValidationFailure(validationResult, typing));\n return void 0;\n }\n if (!this.typesRegistry.has(typingKey)) {\n if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: Entry for package '${typingKey}' does not exist in local types registry - skipping...`);\n return void 0;\n }\n if (this.packageNameToTypingLocation.get(typingKey) && ts_JsTyping_exports.isTypingUpToDate(this.packageNameToTypingLocation.get(typingKey), this.typesRegistry.get(typingKey))) {\n if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: '${typingKey}' already has an up-to-date typing - skipping...`);\n return void 0;\n }\n return typingKey;\n });\n }\n ensurePackageDirectoryExists(directory) {\n const npmConfigPath = combinePaths(directory, \"package.json\");\n if (this.log.isEnabled()) {\n this.log.writeLine(`Npm config file: ${npmConfigPath}`);\n }\n if (!this.installTypingHost.fileExists(npmConfigPath)) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Npm config file: '${npmConfigPath}' is missing, creating new one...`);\n }\n this.ensureDirectoryExists(directory, this.installTypingHost);\n this.installTypingHost.writeFile(npmConfigPath, '{ \"private\": true }');\n }\n }\n installTypings(req, cachePath, currentlyCachedTypings, typingsToInstall) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`Installing typings ${JSON.stringify(typingsToInstall)}`);\n }\n const filteredTypings = this.filterTypings(typingsToInstall);\n if (filteredTypings.length === 0) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`All typings are known to be missing or invalid - no need to install more typings`);\n }\n this.sendResponse(this.createSetTypings(req, currentlyCachedTypings));\n return;\n }\n this.ensurePackageDirectoryExists(cachePath);\n const requestId = this.installRunCount;\n this.installRunCount++;\n this.sendResponse({\n kind: EventBeginInstallTypes,\n eventId: requestId,\n typingsInstallerVersion: version,\n projectName: req.projectName\n });\n const scopedTypings = filteredTypings.map(typingsName);\n this.installTypingsAsync(requestId, scopedTypings, cachePath, (ok) => {\n try {\n if (!ok) {\n if (this.log.isEnabled()) {\n this.log.writeLine(`install request failed, marking packages as missing to prevent repeated requests: ${JSON.stringify(filteredTypings)}`);\n }\n for (const typing of filteredTypings) {\n this.missingTypingsSet.add(typing);\n }\n return;\n }\n if (this.log.isEnabled()) {\n this.log.writeLine(`Installed typings ${JSON.stringify(scopedTypings)}`);\n }\n const installedTypingFiles = [];\n for (const packageName of filteredTypings) {\n const typingFile = typingToFileName(cachePath, packageName, this.installTypingHost, this.log);\n if (!typingFile) {\n this.missingTypingsSet.add(packageName);\n continue;\n }\n const distTags = this.typesRegistry.get(packageName);\n const newVersion = new Version(distTags[`ts${versionMajorMinor}`] || distTags[this.latestDistTag]);\n const newTyping = { typingLocation: typingFile, version: newVersion };\n this.packageNameToTypingLocation.set(packageName, newTyping);\n installedTypingFiles.push(typingFile);\n }\n if (this.log.isEnabled()) {\n this.log.writeLine(`Installed typing files ${JSON.stringify(installedTypingFiles)}`);\n }\n this.sendResponse(this.createSetTypings(req, currentlyCachedTypings.concat(installedTypingFiles)));\n } finally {\n const response = {\n kind: EventEndInstallTypes,\n eventId: requestId,\n projectName: req.projectName,\n packagesToInstall: scopedTypings,\n installSuccess: ok,\n typingsInstallerVersion: version\n };\n this.sendResponse(response);\n }\n });\n }\n ensureDirectoryExists(directory, host) {\n const directoryName = getDirectoryPath(directory);\n if (!host.directoryExists(directoryName)) {\n this.ensureDirectoryExists(directoryName, host);\n }\n if (!host.directoryExists(directory)) {\n host.createDirectory(directory);\n }\n }\n watchFiles(projectName, files) {\n if (!files.length) {\n this.closeWatchers(projectName);\n return;\n }\n const existing = this.projectWatchers.get(projectName);\n const newSet = new Set(files);\n if (!existing || forEachKey(newSet, (s) => !existing.has(s)) || forEachKey(existing, (s) => !newSet.has(s))) {\n this.projectWatchers.set(projectName, newSet);\n this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files });\n } else {\n this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files: void 0 });\n }\n }\n createSetTypings(request, typings) {\n return {\n projectName: request.projectName,\n typeAcquisition: request.typeAcquisition,\n compilerOptions: request.compilerOptions,\n typings,\n unresolvedImports: request.unresolvedImports,\n kind: ActionSet\n };\n }\n installTypingsAsync(requestId, packageNames, cwd, onRequestCompleted) {\n this.pendingRunRequests.unshift({ requestId, packageNames, cwd, onRequestCompleted });\n this.executeWithThrottling();\n }\n executeWithThrottling() {\n while (this.inFlightRequestCount < this.throttleLimit && this.pendingRunRequests.length) {\n this.inFlightRequestCount++;\n const request = this.pendingRunRequests.pop();\n this.installWorker(request.requestId, request.packageNames, request.cwd, (ok) => {\n this.inFlightRequestCount--;\n request.onRequestCompleted(ok);\n this.executeWithThrottling();\n });\n }\n }\n};\nfunction typingsName(packageName) {\n return `@types/${packageName}@ts${versionMajorMinor}`;\n}\n\n// src/server/utilitiesPublic.ts\nvar LogLevel2 = /* @__PURE__ */ ((LogLevel3) => {\n LogLevel3[LogLevel3[\"terse\"] = 0] = \"terse\";\n LogLevel3[LogLevel3[\"normal\"] = 1] = \"normal\";\n LogLevel3[LogLevel3[\"requestTime\"] = 2] = \"requestTime\";\n LogLevel3[LogLevel3[\"verbose\"] = 3] = \"verbose\";\n return LogLevel3;\n})(LogLevel2 || {});\nvar emptyArray2 = createSortedArray2();\nvar Msg = /* @__PURE__ */ ((Msg2) => {\n Msg2[\"Err\"] = \"Err\";\n Msg2[\"Info\"] = \"Info\";\n Msg2[\"Perf\"] = \"Perf\";\n return Msg2;\n})(Msg || {});\nfunction createInstallTypingsRequest(project, typeAcquisition, unresolvedImports, cachePath) {\n return {\n projectName: project.getProjectName(),\n fileNames: project.getFileNames(\n /*excludeFilesFromExternalLibraries*/\n true,\n /*excludeConfigFiles*/\n true\n ).concat(project.getExcludedFiles()),\n compilerOptions: project.getCompilationSettings(),\n typeAcquisition,\n unresolvedImports,\n projectRootPath: project.getCurrentDirectory(),\n cachePath,\n kind: \"discover\"\n };\n}\nvar Errors;\n((Errors2) => {\n function ThrowNoProject() {\n throw new Error(\"No Project.\");\n }\n Errors2.ThrowNoProject = ThrowNoProject;\n function ThrowProjectLanguageServiceDisabled() {\n throw new Error(\"The project's language service is disabled.\");\n }\n Errors2.ThrowProjectLanguageServiceDisabled = ThrowProjectLanguageServiceDisabled;\n function ThrowProjectDoesNotContainDocument(fileName, project) {\n throw new Error(`Project '${project.getProjectName()}' does not contain document '${fileName}'`);\n }\n Errors2.ThrowProjectDoesNotContainDocument = ThrowProjectDoesNotContainDocument;\n})(Errors || (Errors = {}));\nfunction toNormalizedPath(fileName) {\n return normalizePath(fileName);\n}\nfunction normalizedPathToPath(normalizedPath, currentDirectory, getCanonicalFileName) {\n const f = isRootedDiskPath(normalizedPath) ? normalizedPath : getNormalizedAbsolutePath(normalizedPath, currentDirectory);\n return getCanonicalFileName(f);\n}\nfunction asNormalizedPath(fileName) {\n return fileName;\n}\nfunction createNormalizedPathMap() {\n const map2 = /* @__PURE__ */ new Map();\n return {\n get(path) {\n return map2.get(path);\n },\n set(path, value) {\n map2.set(path, value);\n },\n contains(path) {\n return map2.has(path);\n },\n remove(path) {\n map2.delete(path);\n }\n };\n}\nfunction isInferredProjectName(name) {\n return /dev\\/null\\/inferredProject\\d+\\*/.test(name);\n}\nfunction makeInferredProjectName(counter) {\n return `/dev/null/inferredProject${counter}*`;\n}\nfunction makeAutoImportProviderProjectName(counter) {\n return `/dev/null/autoImportProviderProject${counter}*`;\n}\nfunction makeAuxiliaryProjectName(counter) {\n return `/dev/null/auxiliaryProject${counter}*`;\n}\nfunction createSortedArray2() {\n return [];\n}\n\n// src/server/utilities.ts\nvar ThrottledOperations = class _ThrottledOperations {\n constructor(host, logger) {\n this.host = host;\n this.pendingTimeouts = /* @__PURE__ */ new Map();\n this.logger = logger.hasLevel(3 /* verbose */) ? logger : void 0;\n }\n /**\n * Wait `number` milliseconds and then invoke `cb`. If, while waiting, schedule\n * is called again with the same `operationId`, cancel this operation in favor\n * of the new one. (Note that the amount of time the canceled operation had been\n * waiting does not affect the amount of time that the new operation waits.)\n */\n schedule(operationId, delay, cb) {\n const pendingTimeout = this.pendingTimeouts.get(operationId);\n if (pendingTimeout) {\n this.host.clearTimeout(pendingTimeout);\n }\n this.pendingTimeouts.set(operationId, this.host.setTimeout(_ThrottledOperations.run, delay, operationId, this, cb));\n if (this.logger) {\n this.logger.info(`Scheduled: ${operationId}${pendingTimeout ? \", Cancelled earlier one\" : \"\"}`);\n }\n }\n cancel(operationId) {\n const pendingTimeout = this.pendingTimeouts.get(operationId);\n if (!pendingTimeout) return false;\n this.host.clearTimeout(pendingTimeout);\n return this.pendingTimeouts.delete(operationId);\n }\n static run(operationId, self, cb) {\n self.pendingTimeouts.delete(operationId);\n if (self.logger) {\n self.logger.info(`Running: ${operationId}`);\n }\n cb();\n }\n};\nvar GcTimer = class _GcTimer {\n constructor(host, delay, logger) {\n this.host = host;\n this.delay = delay;\n this.logger = logger;\n }\n scheduleCollect() {\n if (!this.host.gc || this.timerId !== void 0) {\n return;\n }\n this.timerId = this.host.setTimeout(_GcTimer.run, this.delay, this);\n }\n static run(self) {\n self.timerId = void 0;\n const log = self.logger.hasLevel(2 /* requestTime */);\n const before = log && self.host.getMemoryUsage();\n self.host.gc();\n if (log) {\n const after = self.host.getMemoryUsage();\n self.logger.perftrc(`GC::before ${before}, after ${after}`);\n }\n }\n};\nfunction getBaseConfigFileName(configFilePath) {\n const base = getBaseFileName(configFilePath);\n return base === \"tsconfig.json\" || base === \"jsconfig.json\" ? base : void 0;\n}\n\n// src/server/_namespaces/ts.server.protocol.ts\nvar ts_server_protocol_exports = {};\n__export(ts_server_protocol_exports, {\n ClassificationType: () => ClassificationType,\n CommandTypes: () => CommandTypes,\n CompletionTriggerKind: () => CompletionTriggerKind,\n IndentStyle: () => IndentStyle2,\n JsxEmit: () => JsxEmit2,\n ModuleKind: () => ModuleKind2,\n ModuleResolutionKind: () => ModuleResolutionKind2,\n NewLineKind: () => NewLineKind2,\n OrganizeImportsMode: () => OrganizeImportsMode,\n PollingWatchKind: () => PollingWatchKind2,\n ScriptTarget: () => ScriptTarget11,\n SemicolonPreference: () => SemicolonPreference,\n WatchDirectoryKind: () => WatchDirectoryKind2,\n WatchFileKind: () => WatchFileKind2\n});\n\n// src/server/protocol.ts\nvar CommandTypes = /* @__PURE__ */ ((CommandTypes2) => {\n CommandTypes2[\"JsxClosingTag\"] = \"jsxClosingTag\";\n CommandTypes2[\"LinkedEditingRange\"] = \"linkedEditingRange\";\n CommandTypes2[\"Brace\"] = \"brace\";\n CommandTypes2[\"BraceFull\"] = \"brace-full\";\n CommandTypes2[\"BraceCompletion\"] = \"braceCompletion\";\n CommandTypes2[\"GetSpanOfEnclosingComment\"] = \"getSpanOfEnclosingComment\";\n CommandTypes2[\"Change\"] = \"change\";\n CommandTypes2[\"Close\"] = \"close\";\n CommandTypes2[\"Completions\"] = \"completions\";\n CommandTypes2[\"CompletionInfo\"] = \"completionInfo\";\n CommandTypes2[\"CompletionsFull\"] = \"completions-full\";\n CommandTypes2[\"CompletionDetails\"] = \"completionEntryDetails\";\n CommandTypes2[\"CompletionDetailsFull\"] = \"completionEntryDetails-full\";\n CommandTypes2[\"CompileOnSaveAffectedFileList\"] = \"compileOnSaveAffectedFileList\";\n CommandTypes2[\"CompileOnSaveEmitFile\"] = \"compileOnSaveEmitFile\";\n CommandTypes2[\"Configure\"] = \"configure\";\n CommandTypes2[\"Definition\"] = \"definition\";\n CommandTypes2[\"DefinitionFull\"] = \"definition-full\";\n CommandTypes2[\"DefinitionAndBoundSpan\"] = \"definitionAndBoundSpan\";\n CommandTypes2[\"DefinitionAndBoundSpanFull\"] = \"definitionAndBoundSpan-full\";\n CommandTypes2[\"Implementation\"] = \"implementation\";\n CommandTypes2[\"ImplementationFull\"] = \"implementation-full\";\n CommandTypes2[\"EmitOutput\"] = \"emit-output\";\n CommandTypes2[\"Exit\"] = \"exit\";\n CommandTypes2[\"FileReferences\"] = \"fileReferences\";\n CommandTypes2[\"FileReferencesFull\"] = \"fileReferences-full\";\n CommandTypes2[\"Format\"] = \"format\";\n CommandTypes2[\"Formatonkey\"] = \"formatonkey\";\n CommandTypes2[\"FormatFull\"] = \"format-full\";\n CommandTypes2[\"FormatonkeyFull\"] = \"formatonkey-full\";\n CommandTypes2[\"FormatRangeFull\"] = \"formatRange-full\";\n CommandTypes2[\"Geterr\"] = \"geterr\";\n CommandTypes2[\"GeterrForProject\"] = \"geterrForProject\";\n CommandTypes2[\"SemanticDiagnosticsSync\"] = \"semanticDiagnosticsSync\";\n CommandTypes2[\"SyntacticDiagnosticsSync\"] = \"syntacticDiagnosticsSync\";\n CommandTypes2[\"SuggestionDiagnosticsSync\"] = \"suggestionDiagnosticsSync\";\n CommandTypes2[\"NavBar\"] = \"navbar\";\n CommandTypes2[\"NavBarFull\"] = \"navbar-full\";\n CommandTypes2[\"Navto\"] = \"navto\";\n CommandTypes2[\"NavtoFull\"] = \"navto-full\";\n CommandTypes2[\"NavTree\"] = \"navtree\";\n CommandTypes2[\"NavTreeFull\"] = \"navtree-full\";\n CommandTypes2[\"DocumentHighlights\"] = \"documentHighlights\";\n CommandTypes2[\"DocumentHighlightsFull\"] = \"documentHighlights-full\";\n CommandTypes2[\"Open\"] = \"open\";\n CommandTypes2[\"Quickinfo\"] = \"quickinfo\";\n CommandTypes2[\"QuickinfoFull\"] = \"quickinfo-full\";\n CommandTypes2[\"References\"] = \"references\";\n CommandTypes2[\"ReferencesFull\"] = \"references-full\";\n CommandTypes2[\"Reload\"] = \"reload\";\n CommandTypes2[\"Rename\"] = \"rename\";\n CommandTypes2[\"RenameInfoFull\"] = \"rename-full\";\n CommandTypes2[\"RenameLocationsFull\"] = \"renameLocations-full\";\n CommandTypes2[\"Saveto\"] = \"saveto\";\n CommandTypes2[\"SignatureHelp\"] = \"signatureHelp\";\n CommandTypes2[\"SignatureHelpFull\"] = \"signatureHelp-full\";\n CommandTypes2[\"FindSourceDefinition\"] = \"findSourceDefinition\";\n CommandTypes2[\"Status\"] = \"status\";\n CommandTypes2[\"TypeDefinition\"] = \"typeDefinition\";\n CommandTypes2[\"ProjectInfo\"] = \"projectInfo\";\n CommandTypes2[\"ReloadProjects\"] = \"reloadProjects\";\n CommandTypes2[\"Unknown\"] = \"unknown\";\n CommandTypes2[\"OpenExternalProject\"] = \"openExternalProject\";\n CommandTypes2[\"OpenExternalProjects\"] = \"openExternalProjects\";\n CommandTypes2[\"CloseExternalProject\"] = \"closeExternalProject\";\n CommandTypes2[\"SynchronizeProjectList\"] = \"synchronizeProjectList\";\n CommandTypes2[\"ApplyChangedToOpenFiles\"] = \"applyChangedToOpenFiles\";\n CommandTypes2[\"UpdateOpen\"] = \"updateOpen\";\n CommandTypes2[\"EncodedSyntacticClassificationsFull\"] = \"encodedSyntacticClassifications-full\";\n CommandTypes2[\"EncodedSemanticClassificationsFull\"] = \"encodedSemanticClassifications-full\";\n CommandTypes2[\"Cleanup\"] = \"cleanup\";\n CommandTypes2[\"GetOutliningSpans\"] = \"getOutliningSpans\";\n CommandTypes2[\"GetOutliningSpansFull\"] = \"outliningSpans\";\n CommandTypes2[\"TodoComments\"] = \"todoComments\";\n CommandTypes2[\"Indentation\"] = \"indentation\";\n CommandTypes2[\"DocCommentTemplate\"] = \"docCommentTemplate\";\n CommandTypes2[\"CompilerOptionsDiagnosticsFull\"] = \"compilerOptionsDiagnostics-full\";\n CommandTypes2[\"NameOrDottedNameSpan\"] = \"nameOrDottedNameSpan\";\n CommandTypes2[\"BreakpointStatement\"] = \"breakpointStatement\";\n CommandTypes2[\"CompilerOptionsForInferredProjects\"] = \"compilerOptionsForInferredProjects\";\n CommandTypes2[\"GetCodeFixes\"] = \"getCodeFixes\";\n CommandTypes2[\"GetCodeFixesFull\"] = \"getCodeFixes-full\";\n CommandTypes2[\"GetCombinedCodeFix\"] = \"getCombinedCodeFix\";\n CommandTypes2[\"GetCombinedCodeFixFull\"] = \"getCombinedCodeFix-full\";\n CommandTypes2[\"ApplyCodeActionCommand\"] = \"applyCodeActionCommand\";\n CommandTypes2[\"GetSupportedCodeFixes\"] = \"getSupportedCodeFixes\";\n CommandTypes2[\"GetApplicableRefactors\"] = \"getApplicableRefactors\";\n CommandTypes2[\"GetEditsForRefactor\"] = \"getEditsForRefactor\";\n CommandTypes2[\"GetMoveToRefactoringFileSuggestions\"] = \"getMoveToRefactoringFileSuggestions\";\n CommandTypes2[\"PreparePasteEdits\"] = \"preparePasteEdits\";\n CommandTypes2[\"GetPasteEdits\"] = \"getPasteEdits\";\n CommandTypes2[\"GetEditsForRefactorFull\"] = \"getEditsForRefactor-full\";\n CommandTypes2[\"OrganizeImports\"] = \"organizeImports\";\n CommandTypes2[\"OrganizeImportsFull\"] = \"organizeImports-full\";\n CommandTypes2[\"GetEditsForFileRename\"] = \"getEditsForFileRename\";\n CommandTypes2[\"GetEditsForFileRenameFull\"] = \"getEditsForFileRename-full\";\n CommandTypes2[\"ConfigurePlugin\"] = \"configurePlugin\";\n CommandTypes2[\"SelectionRange\"] = \"selectionRange\";\n CommandTypes2[\"SelectionRangeFull\"] = \"selectionRange-full\";\n CommandTypes2[\"ToggleLineComment\"] = \"toggleLineComment\";\n CommandTypes2[\"ToggleLineCommentFull\"] = \"toggleLineComment-full\";\n CommandTypes2[\"ToggleMultilineComment\"] = \"toggleMultilineComment\";\n CommandTypes2[\"ToggleMultilineCommentFull\"] = \"toggleMultilineComment-full\";\n CommandTypes2[\"CommentSelection\"] = \"commentSelection\";\n CommandTypes2[\"CommentSelectionFull\"] = \"commentSelection-full\";\n CommandTypes2[\"UncommentSelection\"] = \"uncommentSelection\";\n CommandTypes2[\"UncommentSelectionFull\"] = \"uncommentSelection-full\";\n CommandTypes2[\"PrepareCallHierarchy\"] = \"prepareCallHierarchy\";\n CommandTypes2[\"ProvideCallHierarchyIncomingCalls\"] = \"provideCallHierarchyIncomingCalls\";\n CommandTypes2[\"ProvideCallHierarchyOutgoingCalls\"] = \"provideCallHierarchyOutgoingCalls\";\n CommandTypes2[\"ProvideInlayHints\"] = \"provideInlayHints\";\n CommandTypes2[\"WatchChange\"] = \"watchChange\";\n CommandTypes2[\"MapCode\"] = \"mapCode\";\n CommandTypes2[\"CopilotRelated\"] = \"copilotRelated\";\n return CommandTypes2;\n})(CommandTypes || {});\nvar WatchFileKind2 = /* @__PURE__ */ ((WatchFileKind3) => {\n WatchFileKind3[\"FixedPollingInterval\"] = \"FixedPollingInterval\";\n WatchFileKind3[\"PriorityPollingInterval\"] = \"PriorityPollingInterval\";\n WatchFileKind3[\"DynamicPriorityPolling\"] = \"DynamicPriorityPolling\";\n WatchFileKind3[\"FixedChunkSizePolling\"] = \"FixedChunkSizePolling\";\n WatchFileKind3[\"UseFsEvents\"] = \"UseFsEvents\";\n WatchFileKind3[\"UseFsEventsOnParentDirectory\"] = \"UseFsEventsOnParentDirectory\";\n return WatchFileKind3;\n})(WatchFileKind2 || {});\nvar WatchDirectoryKind2 = /* @__PURE__ */ ((WatchDirectoryKind3) => {\n WatchDirectoryKind3[\"UseFsEvents\"] = \"UseFsEvents\";\n WatchDirectoryKind3[\"FixedPollingInterval\"] = \"FixedPollingInterval\";\n WatchDirectoryKind3[\"DynamicPriorityPolling\"] = \"DynamicPriorityPolling\";\n WatchDirectoryKind3[\"FixedChunkSizePolling\"] = \"FixedChunkSizePolling\";\n return WatchDirectoryKind3;\n})(WatchDirectoryKind2 || {});\nvar PollingWatchKind2 = /* @__PURE__ */ ((PollingWatchKind3) => {\n PollingWatchKind3[\"FixedInterval\"] = \"FixedInterval\";\n PollingWatchKind3[\"PriorityInterval\"] = \"PriorityInterval\";\n PollingWatchKind3[\"DynamicPriority\"] = \"DynamicPriority\";\n PollingWatchKind3[\"FixedChunkSize\"] = \"FixedChunkSize\";\n return PollingWatchKind3;\n})(PollingWatchKind2 || {});\nvar IndentStyle2 = /* @__PURE__ */ ((IndentStyle3) => {\n IndentStyle3[\"None\"] = \"None\";\n IndentStyle3[\"Block\"] = \"Block\";\n IndentStyle3[\"Smart\"] = \"Smart\";\n return IndentStyle3;\n})(IndentStyle2 || {});\nvar JsxEmit2 = /* @__PURE__ */ ((JsxEmit3) => {\n JsxEmit3[\"None\"] = \"none\";\n JsxEmit3[\"Preserve\"] = \"preserve\";\n JsxEmit3[\"ReactNative\"] = \"react-native\";\n JsxEmit3[\"React\"] = \"react\";\n JsxEmit3[\"ReactJSX\"] = \"react-jsx\";\n JsxEmit3[\"ReactJSXDev\"] = \"react-jsxdev\";\n return JsxEmit3;\n})(JsxEmit2 || {});\nvar ModuleKind2 = /* @__PURE__ */ ((ModuleKind3) => {\n ModuleKind3[\"None\"] = \"none\";\n ModuleKind3[\"CommonJS\"] = \"commonjs\";\n ModuleKind3[\"AMD\"] = \"amd\";\n ModuleKind3[\"UMD\"] = \"umd\";\n ModuleKind3[\"System\"] = \"system\";\n ModuleKind3[\"ES6\"] = \"es6\";\n ModuleKind3[\"ES2015\"] = \"es2015\";\n ModuleKind3[\"ES2020\"] = \"es2020\";\n ModuleKind3[\"ES2022\"] = \"es2022\";\n ModuleKind3[\"ESNext\"] = \"esnext\";\n ModuleKind3[\"Node16\"] = \"node16\";\n ModuleKind3[\"Node18\"] = \"node18\";\n ModuleKind3[\"Node20\"] = \"node20\";\n ModuleKind3[\"NodeNext\"] = \"nodenext\";\n ModuleKind3[\"Preserve\"] = \"preserve\";\n return ModuleKind3;\n})(ModuleKind2 || {});\nvar ModuleResolutionKind2 = /* @__PURE__ */ ((ModuleResolutionKind3) => {\n ModuleResolutionKind3[\"Classic\"] = \"classic\";\n ModuleResolutionKind3[\"Node\"] = \"node\";\n ModuleResolutionKind3[\"NodeJs\"] = \"node\";\n ModuleResolutionKind3[\"Node10\"] = \"node10\";\n ModuleResolutionKind3[\"Node16\"] = \"node16\";\n ModuleResolutionKind3[\"NodeNext\"] = \"nodenext\";\n ModuleResolutionKind3[\"Bundler\"] = \"bundler\";\n return ModuleResolutionKind3;\n})(ModuleResolutionKind2 || {});\nvar NewLineKind2 = /* @__PURE__ */ ((NewLineKind3) => {\n NewLineKind3[\"Crlf\"] = \"Crlf\";\n NewLineKind3[\"Lf\"] = \"Lf\";\n return NewLineKind3;\n})(NewLineKind2 || {});\nvar ScriptTarget11 = /* @__PURE__ */ ((ScriptTarget12) => {\n ScriptTarget12[\"ES3\"] = \"es3\";\n ScriptTarget12[\"ES5\"] = \"es5\";\n ScriptTarget12[\"ES6\"] = \"es6\";\n ScriptTarget12[\"ES2015\"] = \"es2015\";\n ScriptTarget12[\"ES2016\"] = \"es2016\";\n ScriptTarget12[\"ES2017\"] = \"es2017\";\n ScriptTarget12[\"ES2018\"] = \"es2018\";\n ScriptTarget12[\"ES2019\"] = \"es2019\";\n ScriptTarget12[\"ES2020\"] = \"es2020\";\n ScriptTarget12[\"ES2021\"] = \"es2021\";\n ScriptTarget12[\"ES2022\"] = \"es2022\";\n ScriptTarget12[\"ES2023\"] = \"es2023\";\n ScriptTarget12[\"ES2024\"] = \"es2024\";\n ScriptTarget12[\"ESNext\"] = \"esnext\";\n ScriptTarget12[\"JSON\"] = \"json\";\n ScriptTarget12[\"Latest\"] = \"esnext\" /* ESNext */;\n return ScriptTarget12;\n})(ScriptTarget11 || {});\n{\n}\n\n// src/server/scriptInfo.ts\nvar TextStorage = class {\n constructor(host, info, initialVersion) {\n this.host = host;\n this.info = info;\n /**\n * True if the text is for the file thats open in the editor\n */\n this.isOpen = false;\n /**\n * True if the text present is the text from the file on the disk\n */\n this.ownFileText = false;\n /**\n * True when reloading contents of file from the disk is pending\n */\n this.pendingReloadFromDisk = false;\n this.version = initialVersion || 0;\n }\n getVersion() {\n return this.svc ? `SVC-${this.version}-${this.svc.getSnapshotVersion()}` : `Text-${this.version}`;\n }\n hasScriptVersionCache_TestOnly() {\n return this.svc !== void 0;\n }\n resetSourceMapInfo() {\n this.info.sourceFileLike = void 0;\n this.info.closeSourceMapFileWatcher();\n this.info.sourceMapFilePath = void 0;\n this.info.declarationInfoPath = void 0;\n this.info.sourceInfos = void 0;\n this.info.documentPositionMapper = void 0;\n }\n /** Public for testing */\n useText(newText) {\n this.svc = void 0;\n this.text = newText;\n this.textSnapshot = void 0;\n this.lineMap = void 0;\n this.fileSize = void 0;\n this.resetSourceMapInfo();\n this.version++;\n }\n edit(start, end, newText) {\n this.switchToScriptVersionCache().edit(start, end - start, newText);\n this.ownFileText = false;\n this.text = void 0;\n this.textSnapshot = void 0;\n this.lineMap = void 0;\n this.fileSize = void 0;\n this.resetSourceMapInfo();\n }\n /**\n * Set the contents as newText\n * returns true if text changed\n */\n reload(newText) {\n Debug.assert(newText !== void 0);\n this.pendingReloadFromDisk = false;\n if (!this.text && this.svc) {\n this.text = getSnapshotText(this.svc.getSnapshot());\n }\n if (this.text !== newText) {\n this.useText(newText);\n this.ownFileText = false;\n return true;\n }\n return false;\n }\n /**\n * Reads the contents from tempFile(if supplied) or own file and sets it as contents\n * returns true if text changed\n */\n reloadWithFileText(tempFileName) {\n const { text: newText, fileSize } = tempFileName || !this.info.isDynamicOrHasMixedContent() ? this.getFileTextAndSize(tempFileName) : { text: \"\", fileSize: void 0 };\n const reloaded = this.reload(newText);\n this.fileSize = fileSize;\n this.ownFileText = !tempFileName || tempFileName === this.info.fileName;\n if (this.ownFileText && this.info.mTime === missingFileModifiedTime.getTime()) {\n this.info.mTime = (this.host.getModifiedTime(this.info.fileName) || missingFileModifiedTime).getTime();\n }\n return reloaded;\n }\n /**\n * Schedule reload from the disk if its not already scheduled and its not own text\n * returns true when scheduling reload\n */\n scheduleReloadIfNeeded() {\n return !this.pendingReloadFromDisk && !this.ownFileText ? this.pendingReloadFromDisk = true : false;\n }\n delayReloadFromFileIntoText() {\n this.pendingReloadFromDisk = true;\n }\n /**\n * For telemetry purposes, we would like to be able to report the size of the file.\n * However, we do not want telemetry to require extra file I/O so we report a size\n * that may be stale (e.g. may not reflect change made on disk since the last reload).\n * NB: Will read from disk if the file contents have never been loaded because\n * telemetry falsely indicating size 0 would be counter-productive.\n */\n getTelemetryFileSize() {\n return !!this.fileSize ? this.fileSize : !!this.text ? this.text.length : !!this.svc ? this.svc.getSnapshot().getLength() : this.getSnapshot().getLength();\n }\n getSnapshot() {\n var _a;\n return ((_a = this.tryUseScriptVersionCache()) == null ? void 0 : _a.getSnapshot()) || (this.textSnapshot ?? (this.textSnapshot = ScriptSnapshot.fromString(Debug.checkDefined(this.text))));\n }\n getAbsolutePositionAndLineText(oneBasedLine) {\n const svc = this.tryUseScriptVersionCache();\n if (svc) return svc.getAbsolutePositionAndLineText(oneBasedLine);\n const lineMap = this.getLineMap();\n return oneBasedLine <= lineMap.length ? {\n absolutePosition: lineMap[oneBasedLine - 1],\n lineText: this.text.substring(lineMap[oneBasedLine - 1], lineMap[oneBasedLine])\n } : {\n absolutePosition: this.text.length,\n lineText: void 0\n };\n }\n /**\n * @param line 0 based index\n */\n lineToTextSpan(line) {\n const svc = this.tryUseScriptVersionCache();\n if (svc) return svc.lineToTextSpan(line);\n const lineMap = this.getLineMap();\n const start = lineMap[line];\n const end = line + 1 < lineMap.length ? lineMap[line + 1] : this.text.length;\n return createTextSpanFromBounds(start, end);\n }\n /**\n * @param line 1 based index\n * @param offset 1 based index\n */\n lineOffsetToPosition(line, offset, allowEdits) {\n const svc = this.tryUseScriptVersionCache();\n return svc ? svc.lineOffsetToPosition(line, offset) : computePositionOfLineAndCharacter(this.getLineMap(), line - 1, offset - 1, this.text, allowEdits);\n }\n positionToLineOffset(position) {\n const svc = this.tryUseScriptVersionCache();\n if (svc) return svc.positionToLineOffset(position);\n const { line, character } = computeLineAndCharacterOfPosition(this.getLineMap(), position);\n return { line: line + 1, offset: character + 1 };\n }\n getFileTextAndSize(tempFileName) {\n let text;\n const fileName = tempFileName || this.info.fileName;\n const getText = () => text === void 0 ? text = this.host.readFile(fileName) || \"\" : text;\n if (!hasTSFileExtension(this.info.fileName)) {\n const fileSize = this.host.getFileSize ? this.host.getFileSize(fileName) : getText().length;\n if (fileSize > maxFileSize) {\n Debug.assert(!!this.info.containingProjects.length);\n const service = this.info.containingProjects[0].projectService;\n service.logger.info(`Skipped loading contents of large file ${fileName} for info ${this.info.fileName}: fileSize: ${fileSize}`);\n this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(fileName, fileSize);\n return { text: \"\", fileSize };\n }\n }\n return { text: getText() };\n }\n /** @internal */\n switchToScriptVersionCache() {\n if (!this.svc || this.pendingReloadFromDisk) {\n this.svc = ScriptVersionCache.fromString(this.getOrLoadText());\n this.textSnapshot = void 0;\n this.version++;\n }\n return this.svc;\n }\n tryUseScriptVersionCache() {\n if (!this.svc || this.pendingReloadFromDisk) {\n this.getOrLoadText();\n }\n if (this.isOpen) {\n if (!this.svc && !this.textSnapshot) {\n this.svc = ScriptVersionCache.fromString(Debug.checkDefined(this.text));\n this.textSnapshot = void 0;\n }\n return this.svc;\n }\n return this.svc;\n }\n getOrLoadText() {\n if (this.text === void 0 || this.pendingReloadFromDisk) {\n Debug.assert(!this.svc || this.pendingReloadFromDisk, \"ScriptVersionCache should not be set when reloading from disk\");\n this.reloadWithFileText();\n }\n return this.text;\n }\n getLineMap() {\n Debug.assert(!this.svc, \"ScriptVersionCache should not be set\");\n return this.lineMap || (this.lineMap = computeLineStarts(Debug.checkDefined(this.text)));\n }\n getLineInfo() {\n const svc = this.tryUseScriptVersionCache();\n if (svc) {\n return {\n getLineCount: () => svc.getLineCount(),\n getLineText: (line) => svc.getAbsolutePositionAndLineText(line + 1).lineText\n };\n }\n const lineMap = this.getLineMap();\n return getLineInfo(this.text, lineMap);\n }\n};\nfunction isDynamicFileName(fileName) {\n return fileName[0] === \"^\" || (fileName.includes(\"walkThroughSnippet:/\") || fileName.includes(\"untitled:/\")) && getBaseFileName(fileName)[0] === \"^\" || fileName.includes(\":^\") && !fileName.includes(directorySeparator);\n}\nvar ScriptInfo = class {\n constructor(host, fileName, scriptKind, hasMixedContent, path, initialVersion) {\n this.host = host;\n this.fileName = fileName;\n this.scriptKind = scriptKind;\n this.hasMixedContent = hasMixedContent;\n this.path = path;\n /**\n * All projects that include this file\n */\n this.containingProjects = [];\n this.isDynamic = isDynamicFileName(fileName);\n this.textStorage = new TextStorage(host, this, initialVersion);\n if (hasMixedContent || this.isDynamic) {\n this.realpath = this.path;\n }\n this.scriptKind = scriptKind ? scriptKind : getScriptKindFromFileName(fileName);\n }\n /** @internal */\n isDynamicOrHasMixedContent() {\n return this.hasMixedContent || this.isDynamic;\n }\n isScriptOpen() {\n return this.textStorage.isOpen;\n }\n open(newText) {\n this.textStorage.isOpen = true;\n if (newText !== void 0 && this.textStorage.reload(newText)) {\n this.markContainingProjectsAsDirty();\n }\n }\n close(fileExists = true) {\n this.textStorage.isOpen = false;\n if (fileExists && this.textStorage.scheduleReloadIfNeeded()) {\n this.markContainingProjectsAsDirty();\n }\n }\n getSnapshot() {\n return this.textStorage.getSnapshot();\n }\n ensureRealPath() {\n if (this.realpath === void 0) {\n this.realpath = this.path;\n if (this.host.realpath) {\n Debug.assert(!!this.containingProjects.length);\n const project = this.containingProjects[0];\n const realpath = this.host.realpath(this.path);\n if (realpath) {\n this.realpath = project.toPath(realpath);\n if (this.realpath !== this.path) {\n project.projectService.realpathToScriptInfos.add(this.realpath, this);\n }\n }\n }\n }\n }\n /** @internal */\n getRealpathIfDifferent() {\n return this.realpath && this.realpath !== this.path ? this.realpath : void 0;\n }\n /**\n * @internal\n * Does not compute realpath; uses precomputed result. Use `ensureRealPath`\n * first if a definite result is needed.\n */\n isSymlink() {\n return this.realpath && this.realpath !== this.path;\n }\n getFormatCodeSettings() {\n return this.formatSettings;\n }\n getPreferences() {\n return this.preferences;\n }\n attachToProject(project) {\n const isNew = !this.isAttached(project);\n if (isNew) {\n this.containingProjects.push(project);\n if (!project.getCompilerOptions().preserveSymlinks) {\n this.ensureRealPath();\n }\n project.onFileAddedOrRemoved(this.isSymlink());\n }\n return isNew;\n }\n isAttached(project) {\n switch (this.containingProjects.length) {\n case 0:\n return false;\n case 1:\n return this.containingProjects[0] === project;\n case 2:\n return this.containingProjects[0] === project || this.containingProjects[1] === project;\n default:\n return contains(this.containingProjects, project);\n }\n }\n detachFromProject(project) {\n switch (this.containingProjects.length) {\n case 0:\n return;\n case 1:\n if (this.containingProjects[0] === project) {\n project.onFileAddedOrRemoved(this.isSymlink());\n this.containingProjects.pop();\n }\n break;\n case 2:\n if (this.containingProjects[0] === project) {\n project.onFileAddedOrRemoved(this.isSymlink());\n this.containingProjects[0] = this.containingProjects.pop();\n } else if (this.containingProjects[1] === project) {\n project.onFileAddedOrRemoved(this.isSymlink());\n this.containingProjects.pop();\n }\n break;\n default:\n if (orderedRemoveItem(this.containingProjects, project)) {\n project.onFileAddedOrRemoved(this.isSymlink());\n }\n break;\n }\n }\n detachAllProjects() {\n for (const p of this.containingProjects) {\n if (isConfiguredProject(p)) {\n p.getCachedDirectoryStructureHost().addOrDeleteFile(this.fileName, this.path, 2 /* Deleted */);\n }\n const existingRoot = p.getRootFilesMap().get(this.path);\n p.removeFile(\n this,\n /*fileExists*/\n false,\n /*detachFromProject*/\n false\n );\n p.onFileAddedOrRemoved(this.isSymlink());\n if (existingRoot && !isInferredProject(p)) {\n p.addMissingFileRoot(existingRoot.fileName);\n }\n }\n clear(this.containingProjects);\n }\n getDefaultProject() {\n switch (this.containingProjects.length) {\n case 0:\n return Errors.ThrowNoProject();\n case 1:\n return isProjectDeferredClose(this.containingProjects[0]) || isBackgroundProject(this.containingProjects[0]) ? Errors.ThrowNoProject() : this.containingProjects[0];\n default:\n let firstConfiguredProject;\n let firstInferredProject;\n let firstNonSourceOfProjectReferenceRedirect;\n let defaultConfiguredProject;\n for (let index = 0; index < this.containingProjects.length; index++) {\n const project = this.containingProjects[index];\n if (isConfiguredProject(project)) {\n if (project.deferredClose) continue;\n if (!project.isSourceOfProjectReferenceRedirect(this.fileName)) {\n if (defaultConfiguredProject === void 0 && index !== this.containingProjects.length - 1) {\n defaultConfiguredProject = project.projectService.findDefaultConfiguredProject(this) || false;\n }\n if (defaultConfiguredProject === project) return project;\n if (!firstNonSourceOfProjectReferenceRedirect) firstNonSourceOfProjectReferenceRedirect = project;\n }\n if (!firstConfiguredProject) firstConfiguredProject = project;\n } else if (isExternalProject(project)) {\n return project;\n } else if (!firstInferredProject && isInferredProject(project)) {\n firstInferredProject = project;\n }\n }\n return (defaultConfiguredProject || firstNonSourceOfProjectReferenceRedirect || firstConfiguredProject || firstInferredProject) ?? Errors.ThrowNoProject();\n }\n }\n registerFileUpdate() {\n for (const p of this.containingProjects) {\n p.registerFileUpdate(this.path);\n }\n }\n setOptions(formatSettings, preferences) {\n if (formatSettings) {\n if (!this.formatSettings) {\n this.formatSettings = getDefaultFormatCodeSettings(this.host.newLine);\n assign(this.formatSettings, formatSettings);\n } else {\n this.formatSettings = { ...this.formatSettings, ...formatSettings };\n }\n }\n if (preferences) {\n if (!this.preferences) {\n this.preferences = emptyOptions;\n }\n this.preferences = { ...this.preferences, ...preferences };\n }\n }\n getLatestVersion() {\n this.textStorage.getSnapshot();\n return this.textStorage.getVersion();\n }\n saveTo(fileName) {\n this.host.writeFile(fileName, getSnapshotText(this.textStorage.getSnapshot()));\n }\n /** @internal */\n delayReloadNonMixedContentFile() {\n Debug.assert(!this.isDynamicOrHasMixedContent());\n this.textStorage.delayReloadFromFileIntoText();\n this.markContainingProjectsAsDirty();\n }\n reloadFromFile(tempFileName) {\n if (this.textStorage.reloadWithFileText(tempFileName)) {\n this.markContainingProjectsAsDirty();\n return true;\n }\n return false;\n }\n editContent(start, end, newText) {\n this.textStorage.edit(start, end, newText);\n this.markContainingProjectsAsDirty();\n }\n markContainingProjectsAsDirty() {\n for (const p of this.containingProjects) {\n p.markFileAsDirty(this.path);\n }\n }\n isOrphan() {\n return this.deferredDelete || !forEach(this.containingProjects, (p) => !p.isOrphan());\n }\n /**\n * @param line 1 based index\n */\n lineToTextSpan(line) {\n return this.textStorage.lineToTextSpan(line);\n }\n // eslint-disable-line @typescript-eslint/unified-signatures\n lineOffsetToPosition(line, offset, allowEdits) {\n return this.textStorage.lineOffsetToPosition(line, offset, allowEdits);\n }\n positionToLineOffset(position) {\n failIfInvalidPosition(position);\n const location = this.textStorage.positionToLineOffset(position);\n failIfInvalidLocation(location);\n return location;\n }\n isJavaScript() {\n return this.scriptKind === 1 /* JS */ || this.scriptKind === 2 /* JSX */;\n }\n /** @internal */\n closeSourceMapFileWatcher() {\n if (this.sourceMapFilePath && !isString(this.sourceMapFilePath)) {\n closeFileWatcherOf(this.sourceMapFilePath);\n this.sourceMapFilePath = void 0;\n }\n }\n};\nfunction failIfInvalidPosition(position) {\n Debug.assert(typeof position === \"number\", `Expected position ${position} to be a number.`);\n Debug.assert(position >= 0, `Expected position to be non-negative.`);\n}\nfunction failIfInvalidLocation(location) {\n Debug.assert(typeof location.line === \"number\", `Expected line ${location.line} to be a number.`);\n Debug.assert(typeof location.offset === \"number\", `Expected offset ${location.offset} to be a number.`);\n Debug.assert(location.line > 0, `Expected line to be non-${location.line === 0 ? \"zero\" : \"negative\"}`);\n Debug.assert(location.offset > 0, `Expected offset to be non-${location.offset === 0 ? \"zero\" : \"negative\"}`);\n}\nfunction scriptInfoIsContainedByBackgroundProject(info) {\n return some(\n info.containingProjects,\n isBackgroundProject\n );\n}\nfunction scriptInfoIsContainedByDeferredClosedProject(info) {\n return some(\n info.containingProjects,\n isProjectDeferredClose\n );\n}\n\n// src/server/project.ts\nvar ProjectKind = /* @__PURE__ */ ((ProjectKind2) => {\n ProjectKind2[ProjectKind2[\"Inferred\"] = 0] = \"Inferred\";\n ProjectKind2[ProjectKind2[\"Configured\"] = 1] = \"Configured\";\n ProjectKind2[ProjectKind2[\"External\"] = 2] = \"External\";\n ProjectKind2[ProjectKind2[\"AutoImportProvider\"] = 3] = \"AutoImportProvider\";\n ProjectKind2[ProjectKind2[\"Auxiliary\"] = 4] = \"Auxiliary\";\n return ProjectKind2;\n})(ProjectKind || {});\nfunction countEachFileTypes(infos, includeSizes = false) {\n const result = {\n js: 0,\n jsSize: 0,\n jsx: 0,\n jsxSize: 0,\n ts: 0,\n tsSize: 0,\n tsx: 0,\n tsxSize: 0,\n dts: 0,\n dtsSize: 0,\n deferred: 0,\n deferredSize: 0\n };\n for (const info of infos) {\n const fileSize = includeSizes ? info.textStorage.getTelemetryFileSize() : 0;\n switch (info.scriptKind) {\n case 1 /* JS */:\n result.js += 1;\n result.jsSize += fileSize;\n break;\n case 2 /* JSX */:\n result.jsx += 1;\n result.jsxSize += fileSize;\n break;\n case 3 /* TS */:\n if (isDeclarationFileName(info.fileName)) {\n result.dts += 1;\n result.dtsSize += fileSize;\n } else {\n result.ts += 1;\n result.tsSize += fileSize;\n }\n break;\n case 4 /* TSX */:\n result.tsx += 1;\n result.tsxSize += fileSize;\n break;\n case 7 /* Deferred */:\n result.deferred += 1;\n result.deferredSize += fileSize;\n break;\n }\n }\n return result;\n}\nfunction hasOneOrMoreJsAndNoTsFiles(project) {\n const counts2 = countEachFileTypes(project.getScriptInfos());\n return counts2.js > 0 && counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction allRootFilesAreJsOrDts(project) {\n const counts2 = countEachFileTypes(project.getRootScriptInfos());\n return counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction allFilesAreJsOrDts(project) {\n const counts2 = countEachFileTypes(project.getScriptInfos());\n return counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction hasNoTypeScriptSource(fileNames) {\n return !fileNames.some((fileName) => fileExtensionIs(fileName, \".ts\" /* Ts */) && !isDeclarationFileName(fileName) || fileExtensionIs(fileName, \".tsx\" /* Tsx */));\n}\nfunction isGeneratedFileWatcher(watch) {\n return watch.generatedFilePath !== void 0;\n}\nfunction setIsEqualTo(arr1, arr2) {\n if (arr1 === arr2) {\n return true;\n }\n if ((arr1 || emptyArray2).length === 0 && (arr2 || emptyArray2).length === 0) {\n return true;\n }\n const set = /* @__PURE__ */ new Map();\n let unique = 0;\n for (const v of arr1) {\n if (set.get(v) !== true) {\n set.set(v, true);\n unique++;\n }\n }\n for (const v of arr2) {\n const isSet = set.get(v);\n if (isSet === void 0) {\n return false;\n }\n if (isSet === true) {\n set.set(v, false);\n unique--;\n }\n }\n return unique === 0;\n}\nfunction typeAcquisitionChanged(opt1, opt2) {\n return opt1.enable !== opt2.enable || !setIsEqualTo(opt1.include, opt2.include) || !setIsEqualTo(opt1.exclude, opt2.exclude);\n}\nfunction compilerOptionsChanged(opt1, opt2) {\n return getAllowJSCompilerOption(opt1) !== getAllowJSCompilerOption(opt2);\n}\nfunction unresolvedImportsChanged(imports1, imports2) {\n if (imports1 === imports2) {\n return false;\n }\n return !arrayIsEqualTo(imports1, imports2);\n}\nvar Project2 = class _Project {\n /** @internal */\n constructor(projectName, projectKind, projectService, hasExplicitListOfFiles, lastFileExceededProgramSize, compilerOptions, compileOnSaveEnabled, watchOptions, directoryStructureHost, currentDirectory) {\n this.projectKind = projectKind;\n this.projectService = projectService;\n this.compilerOptions = compilerOptions;\n this.compileOnSaveEnabled = compileOnSaveEnabled;\n this.watchOptions = watchOptions;\n this.rootFilesMap = /* @__PURE__ */ new Map();\n /** @internal */\n this.plugins = [];\n /**\n * This is map from files to unresolved imports in it\n * Maop does not contain entries for files that do not have unresolved imports\n * This helps in containing the set of files to invalidate\n *\n * @internal\n */\n this.cachedUnresolvedImportsPerFile = /* @__PURE__ */ new Map();\n this.hasAddedorRemovedFiles = false;\n this.hasAddedOrRemovedSymlinks = false;\n /**\n * Last version that was reported.\n */\n this.lastReportedVersion = 0;\n /**\n * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one)\n * This property is changed in 'updateGraph' based on the set of files in program\n * @internal\n */\n this.projectProgramVersion = 0;\n /**\n * Current version of the project state. It is changed when:\n * - new root file was added/removed\n * - edit happen in some file that is currently included in the project.\n * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project\n * @internal\n */\n this.projectStateVersion = 0;\n /** @internal */\n this.initialLoadPending = false;\n /** @internal */\n this.dirty = false;\n /** @internal */\n this.typingFiles = emptyArray2;\n this.moduleSpecifierCache = createModuleSpecifierCache(this);\n /** @internal */\n this.createHash = maybeBind(this.projectService.host, this.projectService.host.createHash);\n /** @internal */\n this.globalCacheResolutionModuleName = ts_JsTyping_exports.nonRelativeModuleNameForTypingCache;\n /** @internal */\n this.updateFromProjectInProgress = false;\n projectService.logger.info(`Creating ${ProjectKind[projectKind]}Project: ${projectName}, currentDirectory: ${currentDirectory}`);\n this.projectName = projectName;\n this.directoryStructureHost = directoryStructureHost;\n this.currentDirectory = this.projectService.getNormalizedAbsolutePath(currentDirectory);\n this.getCanonicalFileName = this.projectService.toCanonicalFileName;\n this.jsDocParsingMode = this.projectService.jsDocParsingMode;\n this.cancellationToken = new ThrottledCancellationToken(this.projectService.cancellationToken, this.projectService.throttleWaitMilliseconds);\n if (!this.compilerOptions) {\n this.compilerOptions = getDefaultCompilerOptions2();\n this.compilerOptions.allowNonTsExtensions = true;\n this.compilerOptions.allowJs = true;\n } else if (hasExplicitListOfFiles || getAllowJSCompilerOption(this.compilerOptions) || this.projectService.hasDeferredExtension()) {\n this.compilerOptions.allowNonTsExtensions = true;\n }\n switch (projectService.serverMode) {\n case 0 /* Semantic */:\n this.languageServiceEnabled = true;\n break;\n case 1 /* PartialSemantic */:\n this.languageServiceEnabled = true;\n this.compilerOptions.noResolve = true;\n this.compilerOptions.types = [];\n break;\n case 2 /* Syntactic */:\n this.languageServiceEnabled = false;\n this.compilerOptions.noResolve = true;\n this.compilerOptions.types = [];\n break;\n default:\n Debug.assertNever(projectService.serverMode);\n }\n this.setInternalCompilerOptionsForEmittingJsFiles();\n const host = this.projectService.host;\n if (this.projectService.logger.loggingEnabled()) {\n this.trace = (s) => this.writeLog(s);\n } else if (host.trace) {\n this.trace = (s) => host.trace(s);\n }\n this.realpath = maybeBind(host, host.realpath);\n this.preferNonRecursiveWatch = this.projectService.canUseWatchEvents || host.preferNonRecursiveWatch;\n this.resolutionCache = createResolutionCache(\n this,\n this.currentDirectory,\n /*logChangesWhenResolvingModule*/\n true\n );\n this.languageService = createLanguageService(\n this,\n this.projectService.documentRegistry,\n this.projectService.serverMode\n );\n if (lastFileExceededProgramSize) {\n this.disableLanguageService(lastFileExceededProgramSize);\n }\n this.markAsDirty();\n if (!isBackgroundProject(this)) {\n this.projectService.pendingEnsureProjectForOpenFiles = true;\n }\n this.projectService.onProjectCreation(this);\n }\n /** @internal */\n getRedirectFromSourceFile(_fileName) {\n return void 0;\n }\n isNonTsProject() {\n updateProjectIfDirty(this);\n return allFilesAreJsOrDts(this);\n }\n isJsOnlyProject() {\n updateProjectIfDirty(this);\n return hasOneOrMoreJsAndNoTsFiles(this);\n }\n static resolveModule(moduleName, initialDir, host, log) {\n return _Project.importServicePluginSync({ name: moduleName }, [initialDir], host, log).resolvedModule;\n }\n /** @internal */\n static importServicePluginSync(pluginConfigEntry, searchPaths, host, log) {\n Debug.assertIsDefined(host.require);\n let errorLogs;\n let resolvedModule;\n for (const initialDir of searchPaths) {\n const resolvedPath = normalizeSlashes(host.resolvePath(combinePaths(initialDir, \"node_modules\")));\n log(`Loading ${pluginConfigEntry.name} from ${initialDir} (resolved to ${resolvedPath})`);\n const result = host.require(resolvedPath, pluginConfigEntry.name);\n if (!result.error) {\n resolvedModule = result.module;\n break;\n }\n const err = result.error.stack || result.error.message || JSON.stringify(result.error);\n (errorLogs ?? (errorLogs = [])).push(`Failed to load module '${pluginConfigEntry.name}' from ${resolvedPath}: ${err}`);\n }\n return { pluginConfigEntry, resolvedModule, errorLogs };\n }\n /** @internal */\n static async importServicePluginAsync(pluginConfigEntry, searchPaths, host, log) {\n Debug.assertIsDefined(host.importPlugin);\n let errorLogs;\n let resolvedModule;\n for (const initialDir of searchPaths) {\n const resolvedPath = combinePaths(initialDir, \"node_modules\");\n log(`Dynamically importing ${pluginConfigEntry.name} from ${initialDir} (resolved to ${resolvedPath})`);\n let result;\n try {\n result = await host.importPlugin(resolvedPath, pluginConfigEntry.name);\n } catch (e) {\n result = { module: void 0, error: e };\n }\n if (!result.error) {\n resolvedModule = result.module;\n break;\n }\n const err = result.error.stack || result.error.message || JSON.stringify(result.error);\n (errorLogs ?? (errorLogs = [])).push(`Failed to dynamically import module '${pluginConfigEntry.name}' from ${resolvedPath}: ${err}`);\n }\n return { pluginConfigEntry, resolvedModule, errorLogs };\n }\n isKnownTypesPackageName(name) {\n return this.projectService.typingsInstaller.isKnownTypesPackageName(name);\n }\n installPackage(options) {\n return this.projectService.typingsInstaller.installPackage({ ...options, projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) });\n }\n /** @internal */\n getGlobalTypingsCacheLocation() {\n return this.getTypeAcquisition().enable ? this.projectService.typingsInstaller.globalTypingsCacheLocation : void 0;\n }\n /** @internal */\n getSymlinkCache() {\n if (!this.symlinks) {\n this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName);\n }\n if (this.program && !this.symlinks.hasProcessedResolutions()) {\n this.symlinks.setSymlinksFromResolutions(\n this.program.forEachResolvedModule,\n this.program.forEachResolvedTypeReferenceDirective,\n this.program.getAutomaticTypeDirectiveResolutions()\n );\n }\n return this.symlinks;\n }\n // Method of LanguageServiceHost\n getCompilationSettings() {\n return this.compilerOptions;\n }\n // Method to support public API\n getCompilerOptions() {\n return this.getCompilationSettings();\n }\n getNewLine() {\n return this.projectService.host.newLine;\n }\n getProjectVersion() {\n return this.projectStateVersion.toString();\n }\n getProjectReferences() {\n return void 0;\n }\n getScriptFileNames() {\n if (!this.rootFilesMap.size) {\n return emptyArray;\n }\n let result;\n this.rootFilesMap.forEach((value) => {\n if (this.languageServiceEnabled || value.info && value.info.isScriptOpen()) {\n (result || (result = [])).push(value.fileName);\n }\n });\n return addRange(result, this.typingFiles) || emptyArray;\n }\n getOrCreateScriptInfoAndAttachToProject(fileName) {\n const scriptInfo = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n fileName,\n this.currentDirectory,\n this.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n );\n if (scriptInfo) {\n const existingValue = this.rootFilesMap.get(scriptInfo.path);\n if (existingValue && existingValue.info !== scriptInfo) {\n existingValue.info = scriptInfo;\n }\n scriptInfo.attachToProject(this);\n }\n return scriptInfo;\n }\n getScriptKind(fileName) {\n const info = this.projectService.getScriptInfoForPath(this.toPath(fileName));\n return info && info.scriptKind;\n }\n getScriptVersion(filename) {\n const info = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n filename,\n this.currentDirectory,\n this.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n );\n return info && info.getLatestVersion();\n }\n getScriptSnapshot(filename) {\n const scriptInfo = this.getOrCreateScriptInfoAndAttachToProject(filename);\n if (scriptInfo) {\n return scriptInfo.getSnapshot();\n }\n }\n getCancellationToken() {\n return this.cancellationToken;\n }\n getCurrentDirectory() {\n return this.currentDirectory;\n }\n getDefaultLibFileName() {\n const nodeModuleBinDir = getDirectoryPath(normalizePath(this.projectService.getExecutingFilePath()));\n return combinePaths(nodeModuleBinDir, getDefaultLibFileName(this.compilerOptions));\n }\n useCaseSensitiveFileNames() {\n return this.projectService.host.useCaseSensitiveFileNames;\n }\n readDirectory(path, extensions, exclude, include, depth) {\n return this.directoryStructureHost.readDirectory(path, extensions, exclude, include, depth);\n }\n readFile(fileName) {\n return this.projectService.host.readFile(fileName);\n }\n writeFile(fileName, content) {\n return this.projectService.host.writeFile(fileName, content);\n }\n fileExists(file) {\n const path = this.toPath(file);\n return !!this.projectService.getScriptInfoForPath(path) || !this.isWatchedMissingFile(path) && this.directoryStructureHost.fileExists(file);\n }\n /** @internal */\n resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n return this.resolutionCache.resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames);\n }\n /** @internal */\n getModuleResolutionCache() {\n return this.resolutionCache.getModuleResolutionCache();\n }\n /** @internal */\n resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n return this.resolutionCache.resolveTypeReferenceDirectiveReferences(\n typeDirectiveReferences,\n containingFile,\n redirectedReference,\n options,\n containingSourceFile,\n reusedNames\n );\n }\n /** @internal */\n resolveLibrary(libraryName, resolveFrom, options, libFileName) {\n return this.resolutionCache.resolveLibrary(libraryName, resolveFrom, options, libFileName);\n }\n directoryExists(path) {\n return this.directoryStructureHost.directoryExists(path);\n }\n getDirectories(path) {\n return this.directoryStructureHost.getDirectories(path);\n }\n /** @internal */\n getCachedDirectoryStructureHost() {\n return void 0;\n }\n /** @internal */\n toPath(fileName) {\n return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName);\n }\n /** @internal */\n watchDirectoryOfFailedLookupLocation(directory, cb, flags) {\n return this.projectService.watchFactory.watchDirectory(\n directory,\n cb,\n flags,\n this.projectService.getWatchOptions(this),\n WatchType.FailedLookupLocations,\n this\n );\n }\n /** @internal */\n watchAffectingFileLocation(file, cb) {\n return this.projectService.watchFactory.watchFile(\n file,\n cb,\n 2e3 /* High */,\n this.projectService.getWatchOptions(this),\n WatchType.AffectingFileLocation,\n this\n );\n }\n /** @internal */\n clearInvalidateResolutionOfFailedLookupTimer() {\n return this.projectService.throttledOperations.cancel(`${this.getProjectName()}FailedLookupInvalidation`);\n }\n /** @internal */\n scheduleInvalidateResolutionsOfFailedLookupLocations() {\n this.projectService.throttledOperations.schedule(\n `${this.getProjectName()}FailedLookupInvalidation`,\n /*delay*/\n 1e3,\n () => {\n if (this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n }\n }\n );\n }\n /** @internal */\n invalidateResolutionsOfFailedLookupLocations() {\n if (this.clearInvalidateResolutionOfFailedLookupTimer() && this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n this.markAsDirty();\n this.projectService.delayEnsureProjectForOpenFiles();\n }\n }\n /** @internal */\n onInvalidatedResolution() {\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n }\n /** @internal */\n watchTypeRootsDirectory(directory, cb, flags) {\n return this.projectService.watchFactory.watchDirectory(\n directory,\n cb,\n flags,\n this.projectService.getWatchOptions(this),\n WatchType.TypeRoots,\n this\n );\n }\n /** @internal */\n hasChangedAutomaticTypeDirectiveNames() {\n return this.resolutionCache.hasChangedAutomaticTypeDirectiveNames();\n }\n /** @internal */\n onChangedAutomaticTypeDirectiveNames() {\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n }\n /** @internal */\n fileIsOpen(filePath) {\n return this.projectService.openFiles.has(filePath);\n }\n /** @internal */\n writeLog(s) {\n this.projectService.logger.info(s);\n }\n log(s) {\n this.writeLog(s);\n }\n error(s) {\n this.projectService.logger.msg(s, \"Err\" /* Err */);\n }\n setInternalCompilerOptionsForEmittingJsFiles() {\n if (this.projectKind === 0 /* Inferred */ || this.projectKind === 2 /* External */) {\n this.compilerOptions.noEmitForJsFiles = true;\n }\n }\n /**\n * Get the errors that dont have any file name associated\n */\n getGlobalProjectErrors() {\n return filter(this.projectErrors, (diagnostic) => !diagnostic.file) || emptyArray2;\n }\n /**\n * Get all the project errors\n */\n getAllProjectErrors() {\n return this.projectErrors || emptyArray2;\n }\n setProjectErrors(projectErrors) {\n this.projectErrors = projectErrors;\n }\n getLanguageService(ensureSynchronized = true) {\n if (ensureSynchronized) {\n updateProjectIfDirty(this);\n }\n return this.languageService;\n }\n /** @internal */\n getSourceMapper() {\n return this.getLanguageService().getSourceMapper();\n }\n /** @internal */\n clearSourceMapperCache() {\n this.languageService.clearSourceMapperCache();\n }\n /** @internal */\n getDocumentPositionMapper(generatedFileName, sourceFileName) {\n return this.projectService.getDocumentPositionMapper(this, generatedFileName, sourceFileName);\n }\n /** @internal */\n getSourceFileLike(fileName) {\n return this.projectService.getSourceFileLike(fileName, this);\n }\n /** @internal */\n shouldEmitFile(scriptInfo) {\n return scriptInfo && !scriptInfo.isDynamicOrHasMixedContent() && !this.program.isSourceOfProjectReferenceRedirect(scriptInfo.path);\n }\n getCompileOnSaveAffectedFileList(scriptInfo) {\n if (!this.languageServiceEnabled) {\n return [];\n }\n updateProjectIfDirty(this);\n this.builderState = BuilderState.create(\n this.program,\n this.builderState,\n /*disableUseFileVersionAsSignature*/\n true\n );\n return mapDefined(\n BuilderState.getFilesAffectedBy(\n this.builderState,\n this.program,\n scriptInfo.path,\n this.cancellationToken,\n this.projectService.host\n ),\n (sourceFile) => this.shouldEmitFile(this.projectService.getScriptInfoForPath(sourceFile.path)) ? sourceFile.fileName : void 0\n );\n }\n /**\n * Returns true if emit was conducted\n */\n emitFile(scriptInfo, writeFile2) {\n if (!this.languageServiceEnabled || !this.shouldEmitFile(scriptInfo)) {\n return { emitSkipped: true, diagnostics: emptyArray2 };\n }\n const { emitSkipped, diagnostics, outputFiles } = this.getLanguageService().getEmitOutput(scriptInfo.fileName);\n if (!emitSkipped) {\n for (const outputFile of outputFiles) {\n const outputFileAbsoluteFileName = getNormalizedAbsolutePath(outputFile.name, this.currentDirectory);\n writeFile2(outputFileAbsoluteFileName, outputFile.text, outputFile.writeByteOrderMark);\n }\n if (this.builderState && getEmitDeclarations(this.compilerOptions)) {\n const dtsFiles = outputFiles.filter((f) => isDeclarationFileName(f.name));\n if (dtsFiles.length === 1) {\n const sourceFile = this.program.getSourceFile(scriptInfo.fileName);\n const signature = this.projectService.host.createHash ? this.projectService.host.createHash(dtsFiles[0].text) : generateDjb2Hash(dtsFiles[0].text);\n BuilderState.updateSignatureOfFile(this.builderState, signature, sourceFile.resolvedPath);\n }\n }\n }\n return { emitSkipped, diagnostics };\n }\n enableLanguageService() {\n if (this.languageServiceEnabled || this.projectService.serverMode === 2 /* Syntactic */) {\n return;\n }\n this.languageServiceEnabled = true;\n this.lastFileExceededProgramSize = void 0;\n this.projectService.onUpdateLanguageServiceStateForProject(\n this,\n /*languageServiceEnabled*/\n true\n );\n }\n /** @internal */\n cleanupProgram() {\n if (this.program) {\n for (const f of this.program.getSourceFiles()) {\n this.detachScriptInfoIfNotRoot(f.fileName);\n }\n this.program.forEachResolvedProjectReference((ref) => this.detachScriptInfoFromProject(ref.sourceFile.fileName));\n this.program = void 0;\n }\n }\n disableLanguageService(lastFileExceededProgramSize) {\n if (!this.languageServiceEnabled) {\n return;\n }\n Debug.assert(this.projectService.serverMode !== 2 /* Syntactic */);\n this.languageService.cleanupSemanticCache();\n this.languageServiceEnabled = false;\n this.cleanupProgram();\n this.lastFileExceededProgramSize = lastFileExceededProgramSize;\n this.builderState = void 0;\n if (this.autoImportProviderHost) {\n this.autoImportProviderHost.close();\n }\n this.autoImportProviderHost = void 0;\n this.resolutionCache.closeTypeRootsWatch();\n this.clearGeneratedFileWatch();\n this.projectService.verifyDocumentRegistry();\n this.projectService.onUpdateLanguageServiceStateForProject(\n this,\n /*languageServiceEnabled*/\n false\n );\n }\n getProjectName() {\n return this.projectName;\n }\n removeLocalTypingsFromTypeAcquisition(newTypeAcquisition) {\n if (!newTypeAcquisition.enable || !newTypeAcquisition.include) {\n return newTypeAcquisition;\n }\n return { ...newTypeAcquisition, include: this.removeExistingTypings(newTypeAcquisition.include) };\n }\n getExternalFiles(updateLevel) {\n return toSorted(flatMap(this.plugins, (plugin) => {\n if (typeof plugin.module.getExternalFiles !== \"function\") return;\n try {\n return plugin.module.getExternalFiles(this, updateLevel || 0 /* Update */);\n } catch (e) {\n this.projectService.logger.info(`A plugin threw an exception in getExternalFiles: ${e}`);\n if (e.stack) {\n this.projectService.logger.info(e.stack);\n }\n }\n }));\n }\n getSourceFile(path) {\n if (!this.program) {\n return void 0;\n }\n return this.program.getSourceFileByPath(path);\n }\n /** @internal */\n getSourceFileOrConfigFile(path) {\n const options = this.program.getCompilerOptions();\n return path === options.configFilePath ? options.configFile : this.getSourceFile(path);\n }\n close() {\n var _a;\n if (this.typingsCache) this.projectService.typingsInstaller.onProjectClosed(this);\n this.typingsCache = void 0;\n this.closeWatchingTypingLocations();\n this.cleanupProgram();\n forEach(this.externalFiles, (externalFile) => this.detachScriptInfoIfNotRoot(externalFile));\n this.rootFilesMap.forEach((root) => {\n var _a2;\n return (_a2 = root.info) == null ? void 0 : _a2.detachFromProject(this);\n });\n this.projectService.pendingEnsureProjectForOpenFiles = true;\n this.rootFilesMap = void 0;\n this.externalFiles = void 0;\n this.program = void 0;\n this.builderState = void 0;\n this.resolutionCache.clear();\n this.resolutionCache = void 0;\n this.cachedUnresolvedImportsPerFile = void 0;\n (_a = this.packageJsonWatches) == null ? void 0 : _a.forEach((watcher) => {\n watcher.projects.delete(this);\n watcher.close();\n });\n this.packageJsonWatches = void 0;\n this.moduleSpecifierCache.clear();\n this.moduleSpecifierCache = void 0;\n this.directoryStructureHost = void 0;\n this.exportMapCache = void 0;\n this.projectErrors = void 0;\n this.plugins.length = 0;\n if (this.missingFilesMap) {\n clearMap(this.missingFilesMap, closeFileWatcher);\n this.missingFilesMap = void 0;\n }\n this.clearGeneratedFileWatch();\n this.clearInvalidateResolutionOfFailedLookupTimer();\n if (this.autoImportProviderHost) {\n this.autoImportProviderHost.close();\n }\n this.autoImportProviderHost = void 0;\n if (this.noDtsResolutionProject) {\n this.noDtsResolutionProject.close();\n }\n this.noDtsResolutionProject = void 0;\n this.languageService.dispose();\n this.languageService = void 0;\n }\n detachScriptInfoIfNotRoot(uncheckedFilename) {\n const info = this.projectService.getScriptInfo(uncheckedFilename);\n if (info && !this.isRoot(info)) {\n info.detachFromProject(this);\n }\n }\n isClosed() {\n return this.rootFilesMap === void 0;\n }\n hasRoots() {\n var _a;\n return !!((_a = this.rootFilesMap) == null ? void 0 : _a.size);\n }\n /** @internal */\n isOrphan() {\n return false;\n }\n getRootFiles() {\n return this.rootFilesMap && arrayFrom(mapDefinedIterator(this.rootFilesMap.values(), (value) => {\n var _a;\n return (_a = value.info) == null ? void 0 : _a.fileName;\n }));\n }\n /** @internal */\n getRootFilesMap() {\n return this.rootFilesMap;\n }\n getRootScriptInfos() {\n return arrayFrom(mapDefinedIterator(this.rootFilesMap.values(), (value) => value.info));\n }\n getScriptInfos() {\n if (!this.languageServiceEnabled) {\n return this.getRootScriptInfos();\n }\n return map(this.program.getSourceFiles(), (sourceFile) => {\n const scriptInfo = this.projectService.getScriptInfoForPath(sourceFile.resolvedPath);\n Debug.assert(!!scriptInfo, \"getScriptInfo\", () => `scriptInfo for a file '${sourceFile.fileName}' Path: '${sourceFile.path}' / '${sourceFile.resolvedPath}' is missing.`);\n return scriptInfo;\n });\n }\n getExcludedFiles() {\n return emptyArray2;\n }\n getFileNames(excludeFilesFromExternalLibraries, excludeConfigFiles) {\n if (!this.program) {\n return [];\n }\n if (!this.languageServiceEnabled) {\n let rootFiles = this.getRootFiles();\n if (this.compilerOptions) {\n const defaultLibrary = getDefaultLibFilePath(this.compilerOptions);\n if (defaultLibrary) {\n (rootFiles || (rootFiles = [])).push(asNormalizedPath(defaultLibrary));\n }\n }\n return rootFiles;\n }\n const result = [];\n for (const f of this.program.getSourceFiles()) {\n if (excludeFilesFromExternalLibraries && this.program.isSourceFileFromExternalLibrary(f)) {\n continue;\n }\n result.push(asNormalizedPath(f.fileName));\n }\n if (!excludeConfigFiles) {\n const configFile = this.program.getCompilerOptions().configFile;\n if (configFile) {\n result.push(asNormalizedPath(configFile.fileName));\n if (configFile.extendedSourceFiles) {\n for (const f of configFile.extendedSourceFiles) {\n result.push(asNormalizedPath(f));\n }\n }\n }\n }\n return result;\n }\n /** @internal */\n getFileNamesWithRedirectInfo(includeProjectReferenceRedirectInfo) {\n return this.getFileNames().map((fileName) => ({\n fileName,\n isSourceOfProjectReferenceRedirect: includeProjectReferenceRedirectInfo && this.isSourceOfProjectReferenceRedirect(fileName)\n }));\n }\n hasConfigFile(configFilePath) {\n if (this.program && this.languageServiceEnabled) {\n const configFile = this.program.getCompilerOptions().configFile;\n if (configFile) {\n if (configFilePath === asNormalizedPath(configFile.fileName)) {\n return true;\n }\n if (configFile.extendedSourceFiles) {\n for (const f of configFile.extendedSourceFiles) {\n if (configFilePath === asNormalizedPath(f)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n containsScriptInfo(info) {\n if (this.isRoot(info)) return true;\n if (!this.program) return false;\n const file = this.program.getSourceFileByPath(info.path);\n return !!file && file.resolvedPath === info.path;\n }\n containsFile(filename, requireOpen) {\n const info = this.projectService.getScriptInfoForNormalizedPath(filename);\n if (info && (info.isScriptOpen() || !requireOpen)) {\n return this.containsScriptInfo(info);\n }\n return false;\n }\n isRoot(info) {\n var _a, _b;\n return ((_b = (_a = this.rootFilesMap) == null ? void 0 : _a.get(info.path)) == null ? void 0 : _b.info) === info;\n }\n // add a root file to project\n addRoot(info, fileName) {\n Debug.assert(!this.isRoot(info));\n this.rootFilesMap.set(info.path, { fileName: fileName || info.fileName, info });\n info.attachToProject(this);\n this.markAsDirty();\n }\n // add a root file that doesnt exist on host\n addMissingFileRoot(fileName) {\n const path = this.projectService.toPath(fileName);\n this.rootFilesMap.set(path, { fileName });\n this.markAsDirty();\n }\n removeFile(info, fileExists, detachFromProject) {\n if (this.isRoot(info)) {\n this.removeRoot(info);\n }\n if (fileExists) {\n this.resolutionCache.removeResolutionsOfFile(info.path);\n } else {\n this.resolutionCache.invalidateResolutionOfFile(info.path);\n }\n this.cachedUnresolvedImportsPerFile.delete(info.path);\n if (detachFromProject) {\n info.detachFromProject(this);\n }\n this.markAsDirty();\n }\n registerFileUpdate(fileName) {\n (this.updatedFileNames || (this.updatedFileNames = /* @__PURE__ */ new Set())).add(fileName);\n }\n /** @internal */\n markFileAsDirty(changedFile) {\n this.markAsDirty();\n if (this.exportMapCache && !this.exportMapCache.isEmpty()) {\n (this.changedFilesForExportMapCache || (this.changedFilesForExportMapCache = /* @__PURE__ */ new Set())).add(changedFile);\n }\n }\n /** @internal */\n markAsDirty() {\n if (!this.dirty) {\n this.projectStateVersion++;\n this.dirty = true;\n }\n }\n /** @internal */\n markAutoImportProviderAsDirty() {\n var _a;\n if (!this.autoImportProviderHost) this.autoImportProviderHost = void 0;\n (_a = this.autoImportProviderHost) == null ? void 0 : _a.markAsDirty();\n }\n /** @internal */\n onAutoImportProviderSettingsChanged() {\n this.markAutoImportProviderAsDirty();\n }\n /** @internal */\n onPackageJsonChange() {\n this.moduleSpecifierCache.clear();\n this.markAutoImportProviderAsDirty();\n }\n /** @internal */\n onFileAddedOrRemoved(isSymlink) {\n this.hasAddedorRemovedFiles = true;\n if (isSymlink) {\n this.hasAddedOrRemovedSymlinks = true;\n }\n }\n /** @internal */\n onDiscoveredSymlink() {\n this.hasAddedOrRemovedSymlinks = true;\n }\n /** @internal */\n onReleaseOldSourceFile(oldSourceFile, _oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath) {\n if (!newSourceFileByResolvedPath || oldSourceFile.resolvedPath === oldSourceFile.path && newSourceFileByResolvedPath.resolvedPath !== oldSourceFile.path) {\n this.detachScriptInfoFromProject(oldSourceFile.fileName, hasSourceFileByPath);\n }\n }\n /** @internal */\n updateFromProject() {\n updateProjectIfDirty(this);\n }\n /**\n * Updates set of files that contribute to this project\n * @returns: true if set of files in the project stays the same and false - otherwise.\n */\n updateGraph() {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"updateGraph\", { name: this.projectName, kind: ProjectKind[this.projectKind] });\n this.resolutionCache.startRecordingFilesWithChangedResolutions();\n const hasNewProgram = this.updateGraphWorker();\n const hasAddedorRemovedFiles = this.hasAddedorRemovedFiles;\n this.hasAddedorRemovedFiles = false;\n this.hasAddedOrRemovedSymlinks = false;\n const changedFiles = this.resolutionCache.finishRecordingFilesWithChangedResolutions() || emptyArray2;\n for (const file of changedFiles) {\n this.cachedUnresolvedImportsPerFile.delete(file);\n }\n if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */ && !this.isOrphan()) {\n if (hasNewProgram || changedFiles.length) {\n this.lastCachedUnresolvedImportsList = getUnresolvedImports(this.program, this.cachedUnresolvedImportsPerFile);\n }\n this.enqueueInstallTypingsForProject(hasAddedorRemovedFiles);\n } else {\n this.lastCachedUnresolvedImportsList = void 0;\n }\n const isFirstProgramLoad = this.projectProgramVersion === 0 && hasNewProgram;\n if (hasNewProgram) {\n this.projectProgramVersion++;\n }\n if (hasAddedorRemovedFiles) {\n this.markAutoImportProviderAsDirty();\n }\n if (isFirstProgramLoad) {\n this.getPackageJsonAutoImportProvider();\n }\n (_b = tracing) == null ? void 0 : _b.pop();\n return !hasNewProgram;\n }\n /** @internal */\n enqueueInstallTypingsForProject(forceRefresh) {\n const typeAcquisition = this.getTypeAcquisition();\n if (!typeAcquisition || !typeAcquisition.enable || this.projectService.typingsInstaller === nullTypingsInstaller) {\n return;\n }\n const entry = this.typingsCache;\n if (forceRefresh || !entry || typeAcquisitionChanged(typeAcquisition, entry.typeAcquisition) || compilerOptionsChanged(this.getCompilationSettings(), entry.compilerOptions) || unresolvedImportsChanged(this.lastCachedUnresolvedImportsList, entry.unresolvedImports)) {\n this.typingsCache = {\n compilerOptions: this.getCompilationSettings(),\n typeAcquisition,\n unresolvedImports: this.lastCachedUnresolvedImportsList\n };\n this.projectService.typingsInstaller.enqueueInstallTypingsRequest(this, typeAcquisition, this.lastCachedUnresolvedImportsList);\n }\n }\n /** @internal */\n updateTypingFiles(compilerOptions, typeAcquisition, unresolvedImports, newTypings) {\n this.typingsCache = {\n compilerOptions,\n typeAcquisition,\n unresolvedImports\n };\n const typingFiles = !typeAcquisition || !typeAcquisition.enable ? emptyArray2 : toSorted(newTypings);\n if (enumerateInsertsAndDeletes(\n typingFiles,\n this.typingFiles,\n getStringComparer(!this.useCaseSensitiveFileNames()),\n /*inserted*/\n noop,\n (removed) => this.detachScriptInfoFromProject(removed)\n )) {\n this.typingFiles = typingFiles;\n this.resolutionCache.setFilesWithInvalidatedNonRelativeUnresolvedImports(this.cachedUnresolvedImportsPerFile);\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n }\n }\n closeWatchingTypingLocations() {\n if (this.typingWatchers) clearMap(this.typingWatchers, closeFileWatcher);\n this.typingWatchers = void 0;\n }\n onTypingInstallerWatchInvoke() {\n this.typingWatchers.isInvoked = true;\n this.projectService.updateTypingsForProject({ projectName: this.getProjectName(), kind: ActionInvalidate });\n }\n /** @internal */\n watchTypingLocations(files) {\n if (!files) {\n this.typingWatchers.isInvoked = false;\n return;\n }\n if (!files.length) {\n this.closeWatchingTypingLocations();\n return;\n }\n const toRemove = new Map(this.typingWatchers);\n if (!this.typingWatchers) this.typingWatchers = /* @__PURE__ */ new Map();\n this.typingWatchers.isInvoked = false;\n const createProjectWatcher = (path, typingsWatcherType) => {\n const canonicalPath = this.toPath(path);\n toRemove.delete(canonicalPath);\n if (!this.typingWatchers.has(canonicalPath)) {\n const watchType = typingsWatcherType === \"FileWatcher\" /* FileWatcher */ ? WatchType.TypingInstallerLocationFile : WatchType.TypingInstallerLocationDirectory;\n this.typingWatchers.set(\n canonicalPath,\n canWatchDirectoryOrFilePath(canonicalPath) ? typingsWatcherType === \"FileWatcher\" /* FileWatcher */ ? this.projectService.watchFactory.watchFile(\n path,\n () => !this.typingWatchers.isInvoked ? this.onTypingInstallerWatchInvoke() : this.writeLog(`TypingWatchers already invoked`),\n 2e3 /* High */,\n this.projectService.getWatchOptions(this),\n watchType,\n this\n ) : this.projectService.watchFactory.watchDirectory(\n path,\n (f) => {\n if (this.typingWatchers.isInvoked) return this.writeLog(`TypingWatchers already invoked`);\n if (!fileExtensionIs(f, \".json\" /* Json */)) return this.writeLog(`Ignoring files that are not *.json`);\n if (comparePaths(f, combinePaths(this.projectService.typingsInstaller.globalTypingsCacheLocation, \"package.json\"), !this.useCaseSensitiveFileNames())) return this.writeLog(`Ignoring package.json change at global typings location`);\n this.onTypingInstallerWatchInvoke();\n },\n 1 /* Recursive */,\n this.projectService.getWatchOptions(this),\n watchType,\n this\n ) : (this.writeLog(`Skipping watcher creation at ${path}:: ${getDetailWatchInfo(watchType, this)}`), noopFileWatcher)\n );\n }\n };\n for (const file of files) {\n const basename = getBaseFileName(file);\n if (basename === \"package.json\" || basename === \"bower.json\") {\n createProjectWatcher(file, \"FileWatcher\" /* FileWatcher */);\n continue;\n }\n if (containsPath(this.currentDirectory, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) {\n const subDirectory = file.indexOf(directorySeparator, this.currentDirectory.length + 1);\n if (subDirectory !== -1) {\n createProjectWatcher(file.substr(0, subDirectory), \"DirectoryWatcher\" /* DirectoryWatcher */);\n } else {\n createProjectWatcher(file, \"DirectoryWatcher\" /* DirectoryWatcher */);\n }\n continue;\n }\n if (containsPath(this.projectService.typingsInstaller.globalTypingsCacheLocation, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) {\n createProjectWatcher(this.projectService.typingsInstaller.globalTypingsCacheLocation, \"DirectoryWatcher\" /* DirectoryWatcher */);\n continue;\n }\n createProjectWatcher(file, \"DirectoryWatcher\" /* DirectoryWatcher */);\n }\n toRemove.forEach((watch, path) => {\n watch.close();\n this.typingWatchers.delete(path);\n });\n }\n /** @internal */\n getCurrentProgram() {\n return this.program;\n }\n removeExistingTypings(include) {\n if (!include.length) return include;\n const existing = getAutomaticTypeDirectiveNames(this.getCompilerOptions(), this);\n return filter(include, (i) => !existing.includes(i));\n }\n updateGraphWorker() {\n var _a, _b;\n const oldProgram = this.languageService.getCurrentProgram();\n Debug.assert(oldProgram === this.program);\n Debug.assert(!this.isClosed(), \"Called update graph worker of closed project\");\n this.writeLog(`Starting updateGraphWorker: Project: ${this.getProjectName()}`);\n const start = timestamp();\n const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = this.resolutionCache.createHasInvalidatedResolutions(returnFalse, returnFalse);\n this.hasInvalidatedResolutions = hasInvalidatedResolutions;\n this.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions;\n this.resolutionCache.startCachingPerDirectoryResolution();\n this.dirty = false;\n this.updateFromProjectInProgress = true;\n this.program = this.languageService.getProgram();\n this.updateFromProjectInProgress = false;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"finishCachingPerDirectoryResolution\");\n this.resolutionCache.finishCachingPerDirectoryResolution(this.program, oldProgram);\n (_b = tracing) == null ? void 0 : _b.pop();\n Debug.assert(oldProgram === void 0 || this.program !== void 0);\n let hasNewProgram = false;\n if (this.program && (!oldProgram || this.program !== oldProgram && this.program.structureIsReused !== 2 /* Completely */)) {\n hasNewProgram = true;\n this.rootFilesMap.forEach((value, path) => {\n var _a2;\n const file = this.program.getSourceFileByPath(path);\n const info = value.info;\n if (!file || ((_a2 = value.info) == null ? void 0 : _a2.path) === file.resolvedPath) return;\n value.info = this.projectService.getScriptInfo(file.fileName);\n Debug.assert(value.info.isAttached(this));\n info == null ? void 0 : info.detachFromProject(this);\n });\n updateMissingFilePathsWatch(\n this.program,\n this.missingFilesMap || (this.missingFilesMap = /* @__PURE__ */ new Map()),\n // Watch the missing files\n (missingFilePath, missingFileName) => this.addMissingFileWatcher(missingFilePath, missingFileName)\n );\n if (this.generatedFilesMap) {\n const outPath = this.compilerOptions.outFile;\n if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n if (!outPath || !this.isValidGeneratedFileWatcher(\n removeFileExtension(outPath) + \".d.ts\" /* Dts */,\n this.generatedFilesMap\n )) {\n this.clearGeneratedFileWatch();\n }\n } else {\n if (outPath) {\n this.clearGeneratedFileWatch();\n } else {\n this.generatedFilesMap.forEach((watcher, source) => {\n const sourceFile = this.program.getSourceFileByPath(source);\n if (!sourceFile || sourceFile.resolvedPath !== source || !this.isValidGeneratedFileWatcher(\n getDeclarationEmitOutputFilePathWorker(sourceFile.fileName, this.compilerOptions, this.program),\n watcher\n )) {\n closeFileWatcherOf(watcher);\n this.generatedFilesMap.delete(source);\n }\n });\n }\n }\n }\n if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) {\n this.resolutionCache.updateTypeRootsWatch();\n }\n }\n this.projectService.verifyProgram(this);\n if (this.exportMapCache && !this.exportMapCache.isEmpty()) {\n this.exportMapCache.releaseSymbols();\n if (this.hasAddedorRemovedFiles || oldProgram && !this.program.structureIsReused) {\n this.exportMapCache.clear();\n } else if (this.changedFilesForExportMapCache && oldProgram && this.program) {\n forEachKey(this.changedFilesForExportMapCache, (fileName) => {\n const oldSourceFile = oldProgram.getSourceFileByPath(fileName);\n const sourceFile = this.program.getSourceFileByPath(fileName);\n if (!oldSourceFile || !sourceFile) {\n this.exportMapCache.clear();\n return true;\n }\n return this.exportMapCache.onFileChanged(oldSourceFile, sourceFile, !!this.getTypeAcquisition().enable);\n });\n }\n }\n if (this.changedFilesForExportMapCache) {\n this.changedFilesForExportMapCache.clear();\n }\n if (this.hasAddedOrRemovedSymlinks || this.program && !this.program.structureIsReused && this.getCompilerOptions().preserveSymlinks) {\n this.symlinks = void 0;\n this.moduleSpecifierCache.clear();\n }\n const oldExternalFiles = this.externalFiles || emptyArray2;\n this.externalFiles = this.getExternalFiles();\n enumerateInsertsAndDeletes(\n this.externalFiles,\n oldExternalFiles,\n getStringComparer(!this.useCaseSensitiveFileNames()),\n // Ensure a ScriptInfo is created for new external files. This is performed indirectly\n // by the host for files in the program when the program is retrieved above but\n // the program doesn't contain external files so this must be done explicitly.\n (inserted) => {\n const scriptInfo = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n inserted,\n this.currentDirectory,\n this.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n );\n scriptInfo == null ? void 0 : scriptInfo.attachToProject(this);\n },\n (removed) => this.detachScriptInfoFromProject(removed)\n );\n const elapsed = timestamp() - start;\n this.sendPerformanceEvent(\"UpdateGraph\", elapsed);\n this.writeLog(`Finishing updateGraphWorker: Project: ${this.getProjectName()} projectStateVersion: ${this.projectStateVersion} projectProgramVersion: ${this.projectProgramVersion} structureChanged: ${hasNewProgram}${this.program ? ` structureIsReused:: ${StructureIsReused[this.program.structureIsReused]}` : \"\"} Elapsed: ${elapsed}ms`);\n if (this.projectService.logger.isTestLogger) {\n if (this.program !== oldProgram) {\n this.print(\n /*writeProjectFileNames*/\n true,\n this.hasAddedorRemovedFiles,\n /*writeFileVersionAndText*/\n true\n );\n } else {\n this.writeLog(`Same program as before`);\n }\n } else if (this.hasAddedorRemovedFiles) {\n this.print(\n /*writeProjectFileNames*/\n true,\n /*writeFileExplaination*/\n true,\n /*writeFileVersionAndText*/\n false\n );\n } else if (this.program !== oldProgram) {\n this.writeLog(`Different program with same set of files`);\n }\n this.projectService.verifyDocumentRegistry();\n return hasNewProgram;\n }\n /** @internal */\n sendPerformanceEvent(kind, durationMs) {\n this.projectService.sendPerformanceEvent(kind, durationMs);\n }\n detachScriptInfoFromProject(uncheckedFileName, noRemoveResolution) {\n const scriptInfoToDetach = this.projectService.getScriptInfo(uncheckedFileName);\n if (scriptInfoToDetach) {\n scriptInfoToDetach.detachFromProject(this);\n if (!noRemoveResolution) {\n this.resolutionCache.removeResolutionsOfFile(scriptInfoToDetach.path);\n }\n }\n }\n addMissingFileWatcher(missingFilePath, missingFileName) {\n var _a;\n if (isConfiguredProject(this)) {\n const configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(missingFilePath);\n if ((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.projects.has(this.canonicalConfigFilePath)) return noopFileWatcher;\n }\n const fileWatcher = this.projectService.watchFactory.watchFile(\n getNormalizedAbsolutePath(missingFileName, this.currentDirectory),\n (fileName, eventKind) => {\n if (isConfiguredProject(this)) {\n this.getCachedDirectoryStructureHost().addOrDeleteFile(fileName, missingFilePath, eventKind);\n }\n if (eventKind === 0 /* Created */ && this.missingFilesMap.has(missingFilePath)) {\n this.missingFilesMap.delete(missingFilePath);\n fileWatcher.close();\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n }\n },\n 500 /* Medium */,\n this.projectService.getWatchOptions(this),\n WatchType.MissingFile,\n this\n );\n return fileWatcher;\n }\n isWatchedMissingFile(path) {\n return !!this.missingFilesMap && this.missingFilesMap.has(path);\n }\n /** @internal */\n addGeneratedFileWatch(generatedFile, sourceFile) {\n if (this.compilerOptions.outFile) {\n if (!this.generatedFilesMap) {\n this.generatedFilesMap = this.createGeneratedFileWatcher(generatedFile);\n }\n } else {\n const path = this.toPath(sourceFile);\n if (this.generatedFilesMap) {\n if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n Debug.fail(`${this.projectName} Expected to not have --out watcher for generated file with options: ${JSON.stringify(this.compilerOptions)}`);\n return;\n }\n if (this.generatedFilesMap.has(path)) return;\n } else {\n this.generatedFilesMap = /* @__PURE__ */ new Map();\n }\n this.generatedFilesMap.set(path, this.createGeneratedFileWatcher(generatedFile));\n }\n }\n createGeneratedFileWatcher(generatedFile) {\n return {\n generatedFilePath: this.toPath(generatedFile),\n watcher: this.projectService.watchFactory.watchFile(\n generatedFile,\n () => {\n this.clearSourceMapperCache();\n this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n },\n 2e3 /* High */,\n this.projectService.getWatchOptions(this),\n WatchType.MissingGeneratedFile,\n this\n )\n };\n }\n isValidGeneratedFileWatcher(generateFile, watcher) {\n return this.toPath(generateFile) === watcher.generatedFilePath;\n }\n clearGeneratedFileWatch() {\n if (this.generatedFilesMap) {\n if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n closeFileWatcherOf(this.generatedFilesMap);\n } else {\n clearMap(this.generatedFilesMap, closeFileWatcherOf);\n }\n this.generatedFilesMap = void 0;\n }\n }\n getScriptInfoForNormalizedPath(fileName) {\n const scriptInfo = this.projectService.getScriptInfoForPath(this.toPath(fileName));\n if (scriptInfo && !scriptInfo.isAttached(this)) {\n return Errors.ThrowProjectDoesNotContainDocument(fileName, this);\n }\n return scriptInfo;\n }\n getScriptInfo(uncheckedFileName) {\n return this.projectService.getScriptInfo(uncheckedFileName);\n }\n filesToString(writeProjectFileNames) {\n return this.filesToStringWorker(\n writeProjectFileNames,\n /*writeFileExplaination*/\n true,\n /*writeFileVersionAndText*/\n false\n );\n }\n filesToStringWorker(writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) {\n if (this.initialLoadPending) return \"\tFiles (0) InitialLoadPending\\n\";\n if (!this.program) return \"\tFiles (0) NoProgram\\n\";\n const sourceFiles = this.program.getSourceFiles();\n let strBuilder = `\tFiles (${sourceFiles.length})\n`;\n if (writeProjectFileNames) {\n for (const file of sourceFiles) {\n strBuilder += `\t${file.fileName}${writeFileVersionAndText ? ` ${file.version} ${JSON.stringify(file.text)}` : \"\"}\n`;\n }\n if (writeFileExplaination) {\n strBuilder += \"\\n\\n\";\n explainFiles(this.program, (s) => strBuilder += `\t${s}\n`);\n }\n }\n return strBuilder;\n }\n /** @internal */\n print(writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) {\n var _a;\n this.writeLog(`Project '${this.projectName}' (${ProjectKind[this.projectKind]})`);\n this.writeLog(this.filesToStringWorker(\n writeProjectFileNames && this.projectService.logger.hasLevel(3 /* verbose */),\n writeFileExplaination && this.projectService.logger.hasLevel(3 /* verbose */),\n writeFileVersionAndText && this.projectService.logger.hasLevel(3 /* verbose */)\n ));\n this.writeLog(\"-----------------------------------------------\");\n if (this.autoImportProviderHost) {\n this.autoImportProviderHost.print(\n /*writeProjectFileNames*/\n false,\n /*writeFileExplaination*/\n false,\n /*writeFileVersionAndText*/\n false\n );\n }\n (_a = this.noDtsResolutionProject) == null ? void 0 : _a.print(\n /*writeProjectFileNames*/\n false,\n /*writeFileExplaination*/\n false,\n /*writeFileVersionAndText*/\n false\n );\n }\n setCompilerOptions(compilerOptions) {\n var _a;\n if (compilerOptions) {\n compilerOptions.allowNonTsExtensions = true;\n const oldOptions = this.compilerOptions;\n this.compilerOptions = compilerOptions;\n this.setInternalCompilerOptionsForEmittingJsFiles();\n (_a = this.noDtsResolutionProject) == null ? void 0 : _a.setCompilerOptions(this.getCompilerOptionsForNoDtsResolutionProject());\n if (changesAffectModuleResolution(oldOptions, compilerOptions)) {\n this.cachedUnresolvedImportsPerFile.clear();\n this.lastCachedUnresolvedImportsList = void 0;\n this.resolutionCache.onChangesAffectModuleResolution();\n this.moduleSpecifierCache.clear();\n }\n this.markAsDirty();\n }\n }\n /** @internal */\n setWatchOptions(watchOptions) {\n this.watchOptions = watchOptions;\n }\n /** @internal */\n getWatchOptions() {\n return this.watchOptions;\n }\n setTypeAcquisition(newTypeAcquisition) {\n if (newTypeAcquisition) {\n this.typeAcquisition = this.removeLocalTypingsFromTypeAcquisition(newTypeAcquisition);\n }\n }\n getTypeAcquisition() {\n return this.typeAcquisition || {};\n }\n /** @internal */\n getChangesSinceVersion(lastKnownVersion, includeProjectReferenceRedirectInfo) {\n var _a, _b;\n const includeProjectReferenceRedirectInfoIfRequested = includeProjectReferenceRedirectInfo ? (files) => arrayFrom(files.entries(), ([fileName, isSourceOfProjectReferenceRedirect]) => ({\n fileName,\n isSourceOfProjectReferenceRedirect\n })) : (files) => arrayFrom(files.keys());\n if (!this.initialLoadPending) {\n updateProjectIfDirty(this);\n }\n const info = {\n projectName: this.getProjectName(),\n version: this.projectProgramVersion,\n isInferred: isInferredProject(this),\n options: this.getCompilationSettings(),\n languageServiceDisabled: !this.languageServiceEnabled,\n lastFileExceededProgramSize: this.lastFileExceededProgramSize\n };\n const updatedFileNames = this.updatedFileNames;\n this.updatedFileNames = void 0;\n if (this.lastReportedFileNames && lastKnownVersion === this.lastReportedVersion) {\n if (this.projectProgramVersion === this.lastReportedVersion && !updatedFileNames) {\n return { info, projectErrors: this.getGlobalProjectErrors() };\n }\n const lastReportedFileNames = this.lastReportedFileNames;\n const externalFiles = ((_a = this.externalFiles) == null ? void 0 : _a.map((f) => ({\n fileName: toNormalizedPath(f),\n isSourceOfProjectReferenceRedirect: false\n }))) || emptyArray2;\n const currentFiles = arrayToMap(\n this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo).concat(externalFiles),\n (info2) => info2.fileName,\n (info2) => info2.isSourceOfProjectReferenceRedirect\n );\n const added = /* @__PURE__ */ new Map();\n const removed = /* @__PURE__ */ new Map();\n const updated = updatedFileNames ? arrayFrom(updatedFileNames.keys()) : [];\n const updatedRedirects = [];\n forEachEntry(currentFiles, (isSourceOfProjectReferenceRedirect, fileName) => {\n if (!lastReportedFileNames.has(fileName)) {\n added.set(fileName, isSourceOfProjectReferenceRedirect);\n } else if (includeProjectReferenceRedirectInfo && isSourceOfProjectReferenceRedirect !== lastReportedFileNames.get(fileName)) {\n updatedRedirects.push({\n fileName,\n isSourceOfProjectReferenceRedirect\n });\n }\n });\n forEachEntry(lastReportedFileNames, (isSourceOfProjectReferenceRedirect, fileName) => {\n if (!currentFiles.has(fileName)) {\n removed.set(fileName, isSourceOfProjectReferenceRedirect);\n }\n });\n this.lastReportedFileNames = currentFiles;\n this.lastReportedVersion = this.projectProgramVersion;\n return {\n info,\n changes: {\n added: includeProjectReferenceRedirectInfoIfRequested(added),\n removed: includeProjectReferenceRedirectInfoIfRequested(removed),\n updated: includeProjectReferenceRedirectInfo ? updated.map((fileName) => ({\n fileName,\n isSourceOfProjectReferenceRedirect: this.isSourceOfProjectReferenceRedirect(fileName)\n })) : updated,\n updatedRedirects: includeProjectReferenceRedirectInfo ? updatedRedirects : void 0\n },\n projectErrors: this.getGlobalProjectErrors()\n };\n } else {\n const projectFileNames = this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo);\n const externalFiles = ((_b = this.externalFiles) == null ? void 0 : _b.map((f) => ({\n fileName: toNormalizedPath(f),\n isSourceOfProjectReferenceRedirect: false\n }))) || emptyArray2;\n const allFiles = projectFileNames.concat(externalFiles);\n this.lastReportedFileNames = arrayToMap(\n allFiles,\n (info2) => info2.fileName,\n (info2) => info2.isSourceOfProjectReferenceRedirect\n );\n this.lastReportedVersion = this.projectProgramVersion;\n return {\n info,\n files: includeProjectReferenceRedirectInfo ? allFiles : allFiles.map((f) => f.fileName),\n projectErrors: this.getGlobalProjectErrors()\n };\n }\n }\n // remove a root file from project\n removeRoot(info) {\n this.rootFilesMap.delete(info.path);\n }\n /** @internal */\n isSourceOfProjectReferenceRedirect(fileName) {\n return !!this.program && this.program.isSourceOfProjectReferenceRedirect(fileName);\n }\n /** @internal */\n getGlobalPluginSearchPaths() {\n return [\n ...this.projectService.pluginProbeLocations,\n // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/\n combinePaths(this.projectService.getExecutingFilePath(), \"../../..\")\n ];\n }\n enableGlobalPlugins(options) {\n if (!this.projectService.globalPlugins.length) return;\n const host = this.projectService.host;\n if (!host.require && !host.importPlugin) {\n this.projectService.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n return;\n }\n const searchPaths = this.getGlobalPluginSearchPaths();\n for (const globalPluginName of this.projectService.globalPlugins) {\n if (!globalPluginName) continue;\n if (options.plugins && options.plugins.some((p) => p.name === globalPluginName)) continue;\n this.projectService.logger.info(`Loading global plugin ${globalPluginName}`);\n this.enablePlugin({ name: globalPluginName, global: true }, searchPaths);\n }\n }\n enablePlugin(pluginConfigEntry, searchPaths) {\n this.projectService.requestEnablePlugin(this, pluginConfigEntry, searchPaths);\n }\n /** @internal */\n enableProxy(pluginModuleFactory, configEntry) {\n try {\n if (typeof pluginModuleFactory !== \"function\") {\n this.projectService.logger.info(`Skipped loading plugin ${configEntry.name} because it did not expose a proper factory function`);\n return;\n }\n const info = {\n config: configEntry,\n project: this,\n languageService: this.languageService,\n languageServiceHost: this,\n serverHost: this.projectService.host,\n session: this.projectService.session\n };\n const pluginModule = pluginModuleFactory({ typescript: ts_exports2 });\n const newLS = pluginModule.create(info);\n for (const k of Object.keys(this.languageService)) {\n if (!(k in newLS)) {\n this.projectService.logger.info(`Plugin activation warning: Missing proxied method ${k} in created LS. Patching.`);\n newLS[k] = this.languageService[k];\n }\n }\n this.projectService.logger.info(`Plugin validation succeeded`);\n this.languageService = newLS;\n this.plugins.push({ name: configEntry.name, module: pluginModule });\n } catch (e) {\n this.projectService.logger.info(`Plugin activation failed: ${e}`);\n }\n }\n /** @internal */\n onPluginConfigurationChanged(pluginName, configuration) {\n this.plugins.filter((plugin) => plugin.name === pluginName).forEach((plugin) => {\n if (plugin.module.onConfigurationChanged) {\n plugin.module.onConfigurationChanged(configuration);\n }\n });\n }\n /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */\n refreshDiagnostics() {\n this.projectService.sendProjectsUpdatedInBackgroundEvent();\n }\n /** @internal */\n getPackageJsonsVisibleToFile(fileName, rootDir) {\n if (this.projectService.serverMode !== 0 /* Semantic */) return emptyArray2;\n return this.projectService.getPackageJsonsVisibleToFile(fileName, this, rootDir);\n }\n /** @internal */\n getNearestAncestorDirectoryWithPackageJson(fileName) {\n return this.projectService.getNearestAncestorDirectoryWithPackageJson(fileName, this);\n }\n /** @internal */\n getPackageJsonsForAutoImport(rootDir) {\n return this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir);\n }\n /** @internal */\n getPackageJsonCache() {\n return this.projectService.packageJsonCache;\n }\n /** @internal */\n getCachedExportInfoMap() {\n return this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this));\n }\n /** @internal */\n clearCachedExportInfoMap() {\n var _a;\n (_a = this.exportMapCache) == null ? void 0 : _a.clear();\n }\n /** @internal */\n getModuleSpecifierCache() {\n return this.moduleSpecifierCache;\n }\n /** @internal */\n includePackageJsonAutoImports() {\n if (this.projectService.includePackageJsonAutoImports() === 0 /* Off */ || !this.languageServiceEnabled || isInsideNodeModules(this.currentDirectory) || !this.isDefaultProjectForOpenFiles()) {\n return 0 /* Off */;\n }\n return this.projectService.includePackageJsonAutoImports();\n }\n /** @internal */\n getHostForAutoImportProvider() {\n var _a, _b;\n if (this.program) {\n return {\n fileExists: this.program.fileExists,\n directoryExists: this.program.directoryExists,\n realpath: this.program.realpath || ((_a = this.projectService.host.realpath) == null ? void 0 : _a.bind(this.projectService.host)),\n getCurrentDirectory: this.getCurrentDirectory.bind(this),\n readFile: this.projectService.host.readFile.bind(this.projectService.host),\n getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host),\n trace: (_b = this.projectService.host.trace) == null ? void 0 : _b.bind(this.projectService.host),\n useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(),\n readDirectory: this.projectService.host.readDirectory.bind(this.projectService.host)\n };\n }\n return this.projectService.host;\n }\n /** @internal */\n getPackageJsonAutoImportProvider() {\n var _a, _b, _c;\n if (this.autoImportProviderHost === false) {\n return void 0;\n }\n if (this.projectService.serverMode !== 0 /* Semantic */) {\n this.autoImportProviderHost = false;\n return void 0;\n }\n if (this.autoImportProviderHost) {\n updateProjectIfDirty(this.autoImportProviderHost);\n if (this.autoImportProviderHost.isEmpty()) {\n this.autoImportProviderHost.close();\n this.autoImportProviderHost = void 0;\n return void 0;\n }\n return this.autoImportProviderHost.getCurrentProgram();\n }\n const dependencySelection = this.includePackageJsonAutoImports();\n if (dependencySelection) {\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"getPackageJsonAutoImportProvider\");\n const start = timestamp();\n this.autoImportProviderHost = AutoImportProviderProject.create(\n dependencySelection,\n this,\n this.getHostForAutoImportProvider()\n ) ?? false;\n if (this.autoImportProviderHost) {\n updateProjectIfDirty(this.autoImportProviderHost);\n this.sendPerformanceEvent(\"CreatePackageJsonAutoImportProvider\", timestamp() - start);\n (_b = tracing) == null ? void 0 : _b.pop();\n return this.autoImportProviderHost.getCurrentProgram();\n }\n (_c = tracing) == null ? void 0 : _c.pop();\n }\n }\n isDefaultProjectForOpenFiles() {\n return !!forEachEntry(\n this.projectService.openFiles,\n (_projectRootPath, path) => this.projectService.tryGetDefaultProjectForFile(this.projectService.getScriptInfoForPath(path)) === this\n );\n }\n /** @internal */\n watchNodeModulesForPackageJsonChanges(directoryPath) {\n return this.projectService.watchPackageJsonsInNodeModules(directoryPath, this);\n }\n /** @internal */\n getIncompleteCompletionsCache() {\n return this.projectService.getIncompleteCompletionsCache();\n }\n /** @internal */\n getNoDtsResolutionProject(rootFile) {\n Debug.assert(this.projectService.serverMode === 0 /* Semantic */);\n this.noDtsResolutionProject ?? (this.noDtsResolutionProject = new AuxiliaryProject(this));\n if (this.noDtsResolutionProject.rootFile !== rootFile) {\n this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(\n this.noDtsResolutionProject,\n [rootFile]\n );\n this.noDtsResolutionProject.rootFile = rootFile;\n }\n return this.noDtsResolutionProject;\n }\n /** @internal */\n runWithTemporaryFileUpdate(rootFile, updatedText, cb) {\n var _a, _b, _c, _d;\n const originalProgram = this.program;\n const rootSourceFile = Debug.checkDefined((_a = this.program) == null ? void 0 : _a.getSourceFile(rootFile), \"Expected file to be part of program\");\n const originalText = Debug.checkDefined(rootSourceFile.getFullText());\n (_b = this.getScriptInfo(rootFile)) == null ? void 0 : _b.editContent(0, originalText.length, updatedText);\n this.updateGraph();\n try {\n cb(this.program, originalProgram, (_c = this.program) == null ? void 0 : _c.getSourceFile(rootFile));\n } finally {\n (_d = this.getScriptInfo(rootFile)) == null ? void 0 : _d.editContent(0, updatedText.length, originalText);\n }\n }\n /** @internal */\n getCompilerOptionsForNoDtsResolutionProject() {\n return {\n ...this.getCompilerOptions(),\n noDtsResolution: true,\n allowJs: true,\n maxNodeModuleJsDepth: 3,\n diagnostics: false,\n skipLibCheck: true,\n sourceMap: false,\n types: emptyArray,\n lib: emptyArray,\n noLib: true\n };\n }\n};\nfunction getUnresolvedImports(program, cachedUnresolvedImportsPerFile) {\n var _a, _b;\n const sourceFiles = program.getSourceFiles();\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"getUnresolvedImports\", { count: sourceFiles.length });\n const ambientModules = program.getTypeChecker().getAmbientModules().map((mod) => stripQuotes(mod.getName()));\n const result = sortAndDeduplicate(flatMap(sourceFiles, (sourceFile) => extractUnresolvedImportsFromSourceFile(\n program,\n sourceFile,\n ambientModules,\n cachedUnresolvedImportsPerFile\n )));\n (_b = tracing) == null ? void 0 : _b.pop();\n return result;\n}\nfunction extractUnresolvedImportsFromSourceFile(program, file, ambientModules, cachedUnresolvedImportsPerFile) {\n return getOrUpdate(cachedUnresolvedImportsPerFile, file.path, () => {\n let unresolvedImports;\n program.forEachResolvedModule(({ resolvedModule }, name) => {\n if ((!resolvedModule || !resolutionExtensionIsTSOrJson(resolvedModule.extension)) && !isExternalModuleNameRelative(name) && !ambientModules.some((m) => m === name)) {\n unresolvedImports = append(unresolvedImports, parsePackageName(name).packageName);\n }\n }, file);\n return unresolvedImports || emptyArray2;\n });\n}\nvar InferredProject2 = class extends Project2 {\n /** @internal */\n constructor(projectService, compilerOptions, watchOptions, projectRootPath, currentDirectory, typeAcquisition) {\n super(\n projectService.newInferredProjectName(),\n 0 /* Inferred */,\n projectService,\n /*hasExplicitListOfFiles*/\n false,\n /*lastFileExceededProgramSize*/\n void 0,\n compilerOptions,\n /*compileOnSaveEnabled*/\n false,\n watchOptions,\n projectService.host,\n currentDirectory\n );\n this._isJsInferredProject = false;\n this.typeAcquisition = typeAcquisition;\n this.projectRootPath = projectRootPath && projectService.toCanonicalFileName(projectRootPath);\n if (!projectRootPath && !projectService.useSingleInferredProject) {\n this.canonicalCurrentDirectory = projectService.toCanonicalFileName(this.currentDirectory);\n }\n this.enableGlobalPlugins(this.getCompilerOptions());\n }\n toggleJsInferredProject(isJsInferredProject) {\n if (isJsInferredProject !== this._isJsInferredProject) {\n this._isJsInferredProject = isJsInferredProject;\n this.setCompilerOptions();\n }\n }\n setCompilerOptions(options) {\n if (!options && !this.getCompilationSettings()) {\n return;\n }\n const newOptions = cloneCompilerOptions(options || this.getCompilationSettings());\n if (this._isJsInferredProject && typeof newOptions.maxNodeModuleJsDepth !== \"number\") {\n newOptions.maxNodeModuleJsDepth = 2;\n } else if (!this._isJsInferredProject) {\n newOptions.maxNodeModuleJsDepth = void 0;\n }\n newOptions.allowJs = true;\n super.setCompilerOptions(newOptions);\n }\n addRoot(info) {\n Debug.assert(info.isScriptOpen());\n this.projectService.startWatchingConfigFilesForInferredProjectRoot(info);\n if (!this._isJsInferredProject && info.isJavaScript()) {\n this.toggleJsInferredProject(\n /*isJsInferredProject*/\n true\n );\n } else if (this.isOrphan() && this._isJsInferredProject && !info.isJavaScript()) {\n this.toggleJsInferredProject(\n /*isJsInferredProject*/\n false\n );\n }\n super.addRoot(info);\n }\n removeRoot(info) {\n this.projectService.stopWatchingConfigFilesForScriptInfo(info);\n super.removeRoot(info);\n if (!this.isOrphan() && this._isJsInferredProject && info.isJavaScript()) {\n if (every(this.getRootScriptInfos(), (rootInfo) => !rootInfo.isJavaScript())) {\n this.toggleJsInferredProject(\n /*isJsInferredProject*/\n false\n );\n }\n }\n }\n /** @internal */\n isOrphan() {\n return !this.hasRoots();\n }\n isProjectWithSingleRoot() {\n return !this.projectRootPath && !this.projectService.useSingleInferredProject || this.getRootScriptInfos().length === 1;\n }\n close() {\n forEach(this.getRootScriptInfos(), (info) => this.projectService.stopWatchingConfigFilesForScriptInfo(info));\n super.close();\n }\n getTypeAcquisition() {\n return this.typeAcquisition || {\n enable: allRootFilesAreJsOrDts(this),\n include: emptyArray,\n exclude: emptyArray\n };\n }\n};\nvar AuxiliaryProject = class extends Project2 {\n constructor(hostProject) {\n super(\n hostProject.projectService.newAuxiliaryProjectName(),\n 4 /* Auxiliary */,\n hostProject.projectService,\n /*hasExplicitListOfFiles*/\n false,\n /*lastFileExceededProgramSize*/\n void 0,\n hostProject.getCompilerOptionsForNoDtsResolutionProject(),\n /*compileOnSaveEnabled*/\n false,\n /*watchOptions*/\n void 0,\n hostProject.projectService.host,\n hostProject.currentDirectory\n );\n }\n isOrphan() {\n return true;\n }\n scheduleInvalidateResolutionsOfFailedLookupLocations() {\n return;\n }\n};\nvar _AutoImportProviderProject = class _AutoImportProviderProject extends Project2 {\n /** @internal */\n constructor(hostProject, initialRootNames, compilerOptions) {\n super(\n hostProject.projectService.newAutoImportProviderProjectName(),\n 3 /* AutoImportProvider */,\n hostProject.projectService,\n /*hasExplicitListOfFiles*/\n false,\n /*lastFileExceededProgramSize*/\n void 0,\n compilerOptions,\n /*compileOnSaveEnabled*/\n false,\n hostProject.getWatchOptions(),\n hostProject.projectService.host,\n hostProject.currentDirectory\n );\n this.hostProject = hostProject;\n this.rootFileNames = initialRootNames;\n this.useSourceOfProjectReferenceRedirect = maybeBind(this.hostProject, this.hostProject.useSourceOfProjectReferenceRedirect);\n this.getParsedCommandLine = maybeBind(this.hostProject, this.hostProject.getParsedCommandLine);\n }\n /** @internal */\n static getRootFileNames(dependencySelection, hostProject, host, compilerOptions) {\n var _a, _b;\n if (!dependencySelection) {\n return emptyArray;\n }\n const program = hostProject.getCurrentProgram();\n if (!program) {\n return emptyArray;\n }\n const start = timestamp();\n let dependencyNames;\n let rootNames;\n const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile);\n const packageJsons = hostProject.getPackageJsonsForAutoImport(combinePaths(hostProject.currentDirectory, rootFileName));\n for (const packageJson of packageJsons) {\n (_a = packageJson.dependencies) == null ? void 0 : _a.forEach((_, dependenyName) => addDependency(dependenyName));\n (_b = packageJson.peerDependencies) == null ? void 0 : _b.forEach((_, dependencyName) => addDependency(dependencyName));\n }\n let dependenciesAdded = 0;\n if (dependencyNames) {\n const symlinkCache = hostProject.getSymlinkCache();\n for (const name of arrayFrom(dependencyNames.keys())) {\n if (dependencySelection === 2 /* Auto */ && dependenciesAdded >= this.maxDependencies) {\n hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`);\n return emptyArray;\n }\n const packageJson = resolvePackageNameToPackageJson(\n name,\n hostProject.currentDirectory,\n compilerOptions,\n host,\n program.getModuleResolutionCache()\n );\n if (packageJson) {\n const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache);\n if (entrypoints) {\n dependenciesAdded += addRootNames(entrypoints);\n continue;\n }\n }\n const done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], (directory) => {\n if (directory) {\n const typesPackageJson = resolvePackageNameToPackageJson(\n `@types/${name}`,\n directory,\n compilerOptions,\n host,\n program.getModuleResolutionCache()\n );\n if (typesPackageJson) {\n const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);\n dependenciesAdded += addRootNames(entrypoints);\n return true;\n }\n }\n });\n if (done) continue;\n if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) {\n const entrypoints = getRootNamesFromPackageJson(\n packageJson,\n program,\n symlinkCache,\n /*resolveJs*/\n true\n );\n dependenciesAdded += addRootNames(entrypoints);\n }\n }\n }\n const references = program.getResolvedProjectReferences();\n let referencesAddded = 0;\n if ((references == null ? void 0 : references.length) && hostProject.projectService.getHostPreferences().includeCompletionsForModuleExports) {\n references.forEach((ref) => {\n if (ref == null ? void 0 : ref.commandLine.options.outFile) {\n referencesAddded += addRootNames(filterEntrypoints([\n changeExtension(ref.commandLine.options.outFile, \".d.ts\")\n ]));\n } else if (ref) {\n const getCommonSourceDirectory2 = memoize(\n () => getCommonSourceDirectoryOfConfig(\n ref.commandLine,\n !hostProject.useCaseSensitiveFileNames()\n )\n );\n referencesAddded += addRootNames(filterEntrypoints(mapDefined(\n ref.commandLine.fileNames,\n (fileName) => !isDeclarationFileName(fileName) && !fileExtensionIs(fileName, \".json\" /* Json */) && !program.getSourceFile(fileName) ? getOutputDeclarationFileName(\n fileName,\n ref.commandLine,\n !hostProject.useCaseSensitiveFileNames(),\n getCommonSourceDirectory2\n ) : void 0\n )));\n }\n });\n }\n if (rootNames == null ? void 0 : rootNames.size) {\n hostProject.log(`AutoImportProviderProject: found ${rootNames.size} root files in ${dependenciesAdded} dependencies ${referencesAddded} referenced projects in ${timestamp() - start} ms`);\n }\n return rootNames ? arrayFrom(rootNames.values()) : emptyArray;\n function addRootNames(entrypoints) {\n if (!(entrypoints == null ? void 0 : entrypoints.length)) return 0;\n rootNames ?? (rootNames = /* @__PURE__ */ new Set());\n entrypoints.forEach((entry) => rootNames.add(entry));\n return 1;\n }\n function addDependency(dependency) {\n if (!startsWith(dependency, \"@types/\")) {\n (dependencyNames || (dependencyNames = /* @__PURE__ */ new Set())).add(dependency);\n }\n }\n function getRootNamesFromPackageJson(packageJson, program2, symlinkCache, resolveJs) {\n var _a2;\n const entrypoints = getEntrypointsFromPackageJsonInfo(\n packageJson,\n compilerOptions,\n host,\n program2.getModuleResolutionCache(),\n resolveJs\n );\n if (entrypoints) {\n const real = (_a2 = host.realpath) == null ? void 0 : _a2.call(host, packageJson.packageDirectory);\n const realPath2 = real ? hostProject.toPath(real) : void 0;\n const isSymlink = realPath2 && realPath2 !== hostProject.toPath(packageJson.packageDirectory);\n if (isSymlink) {\n symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, {\n real: ensureTrailingDirectorySeparator(real),\n realPath: ensureTrailingDirectorySeparator(realPath2)\n });\n }\n return filterEntrypoints(entrypoints, isSymlink ? (entrypoint) => entrypoint.replace(packageJson.packageDirectory, real) : void 0);\n }\n }\n function filterEntrypoints(entrypoints, symlinkName) {\n return mapDefined(entrypoints, (entrypoint) => {\n const resolvedFileName = symlinkName ? symlinkName(entrypoint) : entrypoint;\n if (!program.getSourceFile(resolvedFileName) && !(symlinkName && program.getSourceFile(entrypoint))) {\n return resolvedFileName;\n }\n });\n }\n }\n /** @internal */\n static create(dependencySelection, hostProject, host) {\n if (dependencySelection === 0 /* Off */) {\n return void 0;\n }\n const compilerOptions = {\n ...hostProject.getCompilerOptions(),\n ...this.compilerOptionsOverrides\n };\n const rootNames = this.getRootFileNames(dependencySelection, hostProject, host, compilerOptions);\n if (!rootNames.length) {\n return void 0;\n }\n return new _AutoImportProviderProject(hostProject, rootNames, compilerOptions);\n }\n /** @internal */\n isEmpty() {\n return !some(this.rootFileNames);\n }\n /** @internal */\n isOrphan() {\n return true;\n }\n updateGraph() {\n let rootFileNames = this.rootFileNames;\n if (!rootFileNames) {\n rootFileNames = _AutoImportProviderProject.getRootFileNames(\n this.hostProject.includePackageJsonAutoImports(),\n this.hostProject,\n this.hostProject.getHostForAutoImportProvider(),\n this.getCompilationSettings()\n );\n }\n this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(this, rootFileNames);\n this.rootFileNames = rootFileNames;\n const oldProgram = this.getCurrentProgram();\n const hasSameSetOfFiles = super.updateGraph();\n if (oldProgram && oldProgram !== this.getCurrentProgram()) {\n this.hostProject.clearCachedExportInfoMap();\n }\n return hasSameSetOfFiles;\n }\n /** @internal */\n scheduleInvalidateResolutionsOfFailedLookupLocations() {\n return;\n }\n hasRoots() {\n var _a;\n return !!((_a = this.rootFileNames) == null ? void 0 : _a.length);\n }\n /** @internal */\n markAsDirty() {\n this.rootFileNames = void 0;\n super.markAsDirty();\n }\n getScriptFileNames() {\n return this.rootFileNames || emptyArray;\n }\n getLanguageService() {\n throw new Error(\"AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`.\");\n }\n /** @internal */\n onAutoImportProviderSettingsChanged() {\n throw new Error(\"AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead.\");\n }\n /** @internal */\n onPackageJsonChange() {\n throw new Error(\"package.json changes should be notified on an AutoImportProvider's host project\");\n }\n getHostForAutoImportProvider() {\n throw new Error(\"AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead.\");\n }\n getProjectReferences() {\n return this.hostProject.getProjectReferences();\n }\n /** @internal */\n includePackageJsonAutoImports() {\n return 0 /* Off */;\n }\n /** @internal */\n getSymlinkCache() {\n return this.hostProject.getSymlinkCache();\n }\n /** @internal */\n getModuleResolutionCache() {\n var _a;\n return (_a = this.hostProject.getCurrentProgram()) == null ? void 0 : _a.getModuleResolutionCache();\n }\n};\n_AutoImportProviderProject.maxDependencies = 10;\n/** @internal */\n_AutoImportProviderProject.compilerOptionsOverrides = {\n diagnostics: false,\n skipLibCheck: true,\n sourceMap: false,\n types: emptyArray,\n lib: emptyArray,\n noLib: true\n};\nvar AutoImportProviderProject = _AutoImportProviderProject;\nvar ConfiguredProject2 = class extends Project2 {\n /** @internal */\n constructor(configFileName, canonicalConfigFilePath, projectService, cachedDirectoryStructureHost, pendingUpdateReason) {\n super(\n configFileName,\n 1 /* Configured */,\n projectService,\n /*hasExplicitListOfFiles*/\n false,\n /*lastFileExceededProgramSize*/\n void 0,\n /*compilerOptions*/\n {},\n /*compileOnSaveEnabled*/\n false,\n /*watchOptions*/\n void 0,\n cachedDirectoryStructureHost,\n getDirectoryPath(configFileName)\n );\n this.canonicalConfigFilePath = canonicalConfigFilePath;\n /** @internal */\n this.openFileWatchTriggered = /* @__PURE__ */ new Map();\n /** @internal */\n this.initialLoadPending = true;\n /** @internal */\n this.sendLoadingProjectFinish = false;\n this.pendingUpdateLevel = 2 /* Full */;\n this.pendingUpdateReason = pendingUpdateReason;\n }\n /** @internal */\n setCompilerHost(host) {\n this.compilerHost = host;\n }\n /** @internal */\n getCompilerHost() {\n return this.compilerHost;\n }\n /** @internal */\n useSourceOfProjectReferenceRedirect() {\n return this.languageServiceEnabled;\n }\n /** @internal */\n getParsedCommandLine(fileName) {\n const configFileName = toNormalizedPath(fileName);\n const canonicalConfigFilePath = asNormalizedPath(this.projectService.toCanonicalFileName(configFileName));\n let configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo) {\n this.projectService.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: this.projectService.host.fileExists(configFileName) });\n }\n this.projectService.ensureParsedConfigUptoDate(configFileName, canonicalConfigFilePath, configFileExistenceInfo, this);\n if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) {\n this.projectService.watchWildcards(configFileName, configFileExistenceInfo, this);\n }\n return configFileExistenceInfo.exists ? configFileExistenceInfo.config.parsedCommandLine : void 0;\n }\n /** @internal */\n onReleaseParsedCommandLine(fileName) {\n this.releaseParsedConfig(asNormalizedPath(this.projectService.toCanonicalFileName(toNormalizedPath(fileName))));\n }\n releaseParsedConfig(canonicalConfigFilePath) {\n this.projectService.stopWatchingWildCards(canonicalConfigFilePath, this);\n this.projectService.releaseParsedConfig(canonicalConfigFilePath, this);\n }\n /**\n * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph\n * @returns: true if set of files in the project stays the same and false - otherwise.\n */\n updateGraph() {\n if (this.deferredClose) return false;\n const isDirty = this.dirty;\n this.initialLoadPending = false;\n const updateLevel = this.pendingUpdateLevel;\n this.pendingUpdateLevel = 0 /* Update */;\n let result;\n switch (updateLevel) {\n case 1 /* RootNamesAndUpdate */:\n this.openFileWatchTriggered.clear();\n result = this.projectService.reloadFileNamesOfConfiguredProject(this);\n break;\n case 2 /* Full */:\n this.openFileWatchTriggered.clear();\n const reason = Debug.checkDefined(this.pendingUpdateReason);\n this.projectService.reloadConfiguredProject(this, reason);\n result = true;\n break;\n default:\n result = super.updateGraph();\n }\n this.compilerHost = void 0;\n this.projectService.sendProjectLoadingFinishEvent(this);\n this.projectService.sendProjectTelemetry(this);\n if (updateLevel === 2 /* Full */ || // Already sent event through reload\n result && // Not new program\n (!isDirty || !this.triggerFileForConfigFileDiag || this.getCurrentProgram().structureIsReused === 2 /* Completely */)) {\n this.triggerFileForConfigFileDiag = void 0;\n } else if (!this.triggerFileForConfigFileDiag) {\n this.projectService.sendConfigFileDiagEvent(\n this,\n /*triggerFile*/\n void 0,\n /*force*/\n false\n );\n }\n return result;\n }\n /** @internal */\n getCachedDirectoryStructureHost() {\n return this.directoryStructureHost;\n }\n getConfigFilePath() {\n return asNormalizedPath(this.getProjectName());\n }\n getProjectReferences() {\n return this.projectReferences;\n }\n updateReferences(refs) {\n this.projectReferences = refs;\n this.potentialProjectReferences = void 0;\n }\n /** @internal */\n setPotentialProjectReference(canonicalConfigPath) {\n Debug.assert(this.initialLoadPending);\n (this.potentialProjectReferences || (this.potentialProjectReferences = /* @__PURE__ */ new Set())).add(canonicalConfigPath);\n }\n /** @internal */\n getRedirectFromSourceFile(fileName) {\n const program = this.getCurrentProgram();\n return program && program.getRedirectFromSourceFile(fileName);\n }\n /** @internal */\n forEachResolvedProjectReference(cb) {\n var _a;\n return (_a = this.getCurrentProgram()) == null ? void 0 : _a.forEachResolvedProjectReference(cb);\n }\n /** @internal */\n enablePluginsWithOptions(options) {\n var _a;\n this.plugins.length = 0;\n if (!((_a = options.plugins) == null ? void 0 : _a.length) && !this.projectService.globalPlugins.length) return;\n const host = this.projectService.host;\n if (!host.require && !host.importPlugin) {\n this.projectService.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n return;\n }\n const searchPaths = this.getGlobalPluginSearchPaths();\n if (this.projectService.allowLocalPluginLoads) {\n const local = getDirectoryPath(this.canonicalConfigFilePath);\n this.projectService.logger.info(`Local plugin loading enabled; adding ${local} to search paths`);\n searchPaths.unshift(local);\n }\n if (options.plugins) {\n for (const pluginConfigEntry of options.plugins) {\n this.enablePlugin(pluginConfigEntry, searchPaths);\n }\n }\n return this.enableGlobalPlugins(options);\n }\n /**\n * Get the errors that dont have any file name associated\n */\n getGlobalProjectErrors() {\n return filter(this.projectErrors, (diagnostic) => !diagnostic.file) || emptyArray2;\n }\n /**\n * Get all the project errors\n */\n getAllProjectErrors() {\n return this.projectErrors || emptyArray2;\n }\n setProjectErrors(projectErrors) {\n this.projectErrors = projectErrors;\n }\n close() {\n this.projectService.configFileExistenceInfoCache.forEach((_configFileExistenceInfo, canonicalConfigFilePath) => this.releaseParsedConfig(canonicalConfigFilePath));\n this.projectErrors = void 0;\n this.openFileWatchTriggered.clear();\n this.compilerHost = void 0;\n super.close();\n }\n /** @internal */\n markAsDirty() {\n if (this.deferredClose) return;\n super.markAsDirty();\n }\n /** @internal */\n isOrphan() {\n return !!this.deferredClose;\n }\n getEffectiveTypeRoots() {\n return getEffectiveTypeRoots(this.getCompilationSettings(), this) || [];\n }\n /** @internal */\n updateErrorOnNoInputFiles(parsedCommandLine) {\n this.parsedCommandLine = parsedCommandLine;\n updateErrorForNoInputFiles(\n parsedCommandLine.fileNames,\n this.getConfigFilePath(),\n this.getCompilerOptions().configFile.configFileSpecs,\n this.projectErrors,\n canJsonReportNoInputFiles(parsedCommandLine.raw)\n );\n }\n};\nvar ExternalProject = class extends Project2 {\n /** @internal */\n constructor(externalProjectName, projectService, compilerOptions, lastFileExceededProgramSize, compileOnSaveEnabled, projectFilePath, watchOptions) {\n super(\n externalProjectName,\n 2 /* External */,\n projectService,\n /*hasExplicitListOfFiles*/\n true,\n lastFileExceededProgramSize,\n compilerOptions,\n compileOnSaveEnabled,\n watchOptions,\n projectService.host,\n getDirectoryPath(projectFilePath || normalizeSlashes(externalProjectName))\n );\n this.externalProjectName = externalProjectName;\n this.compileOnSaveEnabled = compileOnSaveEnabled;\n this.excludedFiles = [];\n this.enableGlobalPlugins(this.getCompilerOptions());\n }\n updateGraph() {\n const result = super.updateGraph();\n this.projectService.sendProjectTelemetry(this);\n return result;\n }\n getExcludedFiles() {\n return this.excludedFiles;\n }\n};\nfunction isInferredProject(project) {\n return project.projectKind === 0 /* Inferred */;\n}\nfunction isConfiguredProject(project) {\n return project.projectKind === 1 /* Configured */;\n}\nfunction isExternalProject(project) {\n return project.projectKind === 2 /* External */;\n}\nfunction isBackgroundProject(project) {\n return project.projectKind === 3 /* AutoImportProvider */ || project.projectKind === 4 /* Auxiliary */;\n}\nfunction isProjectDeferredClose(project) {\n return isConfiguredProject(project) && !!project.deferredClose;\n}\n\n// src/server/editorServices.ts\nvar maxProgramSizeForNonTsFiles = 20 * 1024 * 1024;\nvar maxFileSize = 4 * 1024 * 1024;\nvar ProjectsUpdatedInBackgroundEvent = \"projectsUpdatedInBackground\";\nvar ProjectLoadingStartEvent = \"projectLoadingStart\";\nvar ProjectLoadingFinishEvent = \"projectLoadingFinish\";\nvar LargeFileReferencedEvent = \"largeFileReferenced\";\nvar ConfigFileDiagEvent = \"configFileDiag\";\nvar ProjectLanguageServiceStateEvent = \"projectLanguageServiceState\";\nvar ProjectInfoTelemetryEvent = \"projectInfo\";\nvar OpenFileInfoTelemetryEvent = \"openFileInfo\";\nvar CreateFileWatcherEvent = \"createFileWatcher\";\nvar CreateDirectoryWatcherEvent = \"createDirectoryWatcher\";\nvar CloseFileWatcherEvent = \"closeFileWatcher\";\nvar ensureProjectForOpenFileSchedule = \"*ensureProjectForOpenFiles*\";\nfunction prepareConvertersForEnumLikeCompilerOptions(commandLineOptions) {\n const map2 = /* @__PURE__ */ new Map();\n for (const option of commandLineOptions) {\n if (typeof option.type === \"object\") {\n const optionMap = option.type;\n optionMap.forEach((value) => {\n Debug.assert(typeof value === \"number\");\n });\n map2.set(option.name, optionMap);\n }\n }\n return map2;\n}\nvar compilerOptionConverters = prepareConvertersForEnumLikeCompilerOptions(optionDeclarations);\nvar watchOptionsConverters = prepareConvertersForEnumLikeCompilerOptions(optionsForWatch);\nvar indentStyle = new Map(Object.entries({\n none: 0 /* None */,\n block: 1 /* Block */,\n smart: 2 /* Smart */\n}));\nvar defaultTypeSafeList = {\n \"jquery\": {\n // jquery files can have names like \"jquery-1.10.2.min.js\" (or \"jquery.intellisense.js\")\n match: /jquery(-[\\d.]+)?(\\.intellisense)?(\\.min)?\\.js$/i,\n types: [\"jquery\"]\n },\n \"WinJS\": {\n // e.g. c:/temp/UWApp1/lib/winjs-4.0.1/js/base.js\n match: /^(.*\\/winjs-[.\\d]+)\\/js\\/base\\.js$/i,\n // If the winjs/base.js file is found..\n exclude: [[\"^\", 1, \"/.*\"]],\n // ..then exclude all files under the winjs folder\n types: [\"winjs\"]\n // And fetch the @types package for WinJS\n },\n \"Kendo\": {\n // e.g. /Kendo3/wwwroot/lib/kendo/kendo.all.min.js\n match: /^(.*\\/kendo(-ui)?)\\/kendo\\.all(\\.min)?\\.js$/i,\n exclude: [[\"^\", 1, \"/.*\"]],\n types: [\"kendo-ui\"]\n },\n \"Office Nuget\": {\n // e.g. /scripts/Office/1/excel-15.debug.js\n match: /^(.*\\/office\\/1)\\/excel-\\d+\\.debug\\.js$/i,\n // Office NuGet package is installed under a \"1/office\" folder\n exclude: [[\"^\", 1, \"/.*\"]],\n // Exclude that whole folder if the file indicated above is found in it\n types: [\"office\"]\n // @types package to fetch instead\n },\n \"References\": {\n match: /^(.*\\/_references\\.js)$/i,\n exclude: [[\"^\", 1, \"$\"]]\n }\n};\nfunction convertFormatOptions(protocolOptions) {\n if (isString(protocolOptions.indentStyle)) {\n protocolOptions.indentStyle = indentStyle.get(protocolOptions.indentStyle.toLowerCase());\n Debug.assert(protocolOptions.indentStyle !== void 0);\n }\n return protocolOptions;\n}\nfunction convertCompilerOptions(protocolOptions) {\n compilerOptionConverters.forEach((mappedValues, id) => {\n const propertyValue = protocolOptions[id];\n if (isString(propertyValue)) {\n protocolOptions[id] = mappedValues.get(propertyValue.toLowerCase());\n }\n });\n return protocolOptions;\n}\nfunction convertWatchOptions(protocolOptions, currentDirectory) {\n let watchOptions;\n let errors;\n optionsForWatch.forEach((option) => {\n const propertyValue = protocolOptions[option.name];\n if (propertyValue === void 0) return;\n const mappedValues = watchOptionsConverters.get(option.name);\n (watchOptions || (watchOptions = {}))[option.name] = mappedValues ? isString(propertyValue) ? mappedValues.get(propertyValue.toLowerCase()) : propertyValue : convertJsonOption(option, propertyValue, currentDirectory || \"\", errors || (errors = []));\n });\n return watchOptions && { watchOptions, errors };\n}\nfunction convertTypeAcquisition(protocolOptions) {\n let result;\n typeAcquisitionDeclarations.forEach((option) => {\n const propertyValue = protocolOptions[option.name];\n if (propertyValue === void 0) return;\n (result || (result = {}))[option.name] = propertyValue;\n });\n return result;\n}\nfunction tryConvertScriptKindName(scriptKindName) {\n return isString(scriptKindName) ? convertScriptKindName(scriptKindName) : scriptKindName;\n}\nfunction convertScriptKindName(scriptKindName) {\n switch (scriptKindName) {\n case \"JS\":\n return 1 /* JS */;\n case \"JSX\":\n return 2 /* JSX */;\n case \"TS\":\n return 3 /* TS */;\n case \"TSX\":\n return 4 /* TSX */;\n default:\n return 0 /* Unknown */;\n }\n}\nfunction convertUserPreferences(preferences) {\n const { lazyConfiguredProjectsFromExternalProject: _, ...userPreferences } = preferences;\n return userPreferences;\n}\nvar fileNamePropertyReader = {\n getFileName: (x) => x,\n getScriptKind: (fileName, extraFileExtensions) => {\n let result;\n if (extraFileExtensions) {\n const fileExtension = getAnyExtensionFromPath(fileName);\n if (fileExtension) {\n some(extraFileExtensions, (info) => {\n if (info.extension === fileExtension) {\n result = info.scriptKind;\n return true;\n }\n return false;\n });\n }\n }\n return result;\n },\n hasMixedContent: (fileName, extraFileExtensions) => some(extraFileExtensions, (ext) => ext.isMixedContent && fileExtensionIs(fileName, ext.extension))\n};\nvar externalFilePropertyReader = {\n getFileName: (x) => x.fileName,\n getScriptKind: (x) => tryConvertScriptKindName(x.scriptKind),\n // TODO: GH#18217\n hasMixedContent: (x) => !!x.hasMixedContent\n};\nfunction findProjectByName(projectName, projects) {\n for (const proj of projects) {\n if (proj.getProjectName() === projectName) {\n return proj;\n }\n }\n}\nvar nullTypingsInstaller = {\n isKnownTypesPackageName: returnFalse,\n // Should never be called because we never provide a types registry.\n installPackage: notImplemented,\n enqueueInstallTypingsRequest: noop,\n attach: noop,\n onProjectClosed: noop,\n globalTypingsCacheLocation: void 0\n // TODO: GH#18217\n};\nvar noopConfigFileWatcher = { close: noop };\nfunction getConfigFileNameFromCache(info, cache) {\n if (!cache) return void 0;\n const configFileForOpenFile = cache.get(info.path);\n if (configFileForOpenFile === void 0) return void 0;\n if (!isAncestorConfigFileInfo(info)) {\n return isString(configFileForOpenFile) || !configFileForOpenFile ? configFileForOpenFile : (\n // direct result\n configFileForOpenFile.get(\n /*key*/\n false\n )\n );\n } else {\n return configFileForOpenFile && !isString(configFileForOpenFile) ? (\n // Map with fileName as key\n configFileForOpenFile.get(info.fileName)\n ) : void 0;\n }\n}\nfunction isOpenScriptInfo(infoOrFileNameOrConfig) {\n return !!infoOrFileNameOrConfig.containingProjects;\n}\nfunction isAncestorConfigFileInfo(infoOrFileNameOrConfig) {\n return !!infoOrFileNameOrConfig.configFileInfo;\n}\nvar ConfiguredProjectLoadKind = /* @__PURE__ */ ((ConfiguredProjectLoadKind2) => {\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"FindOptimized\"] = 0] = \"FindOptimized\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Find\"] = 1] = \"Find\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateReplayOptimized\"] = 2] = \"CreateReplayOptimized\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateReplay\"] = 3] = \"CreateReplay\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateOptimized\"] = 4] = \"CreateOptimized\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Create\"] = 5] = \"Create\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"ReloadOptimized\"] = 6] = \"ReloadOptimized\";\n ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Reload\"] = 7] = \"Reload\";\n return ConfiguredProjectLoadKind2;\n})(ConfiguredProjectLoadKind || {});\nfunction toConfiguredProjectLoadOptimized(kind) {\n return kind - 1;\n}\nfunction forEachAncestorProjectLoad(info, project, cb, kind, reason, allowDeferredClosed, reloadedProjects, searchOnlyPotentialSolution, delayReloadedConfiguredProjects) {\n var _a;\n while (true) {\n if (project.parsedCommandLine && (searchOnlyPotentialSolution && !project.parsedCommandLine.options.composite || // Currently disableSolutionSearching is shared for finding solution/project when\n // - loading solution for find all references\n // - trying to find default project\n project.parsedCommandLine.options.disableSolutionSearching)) return;\n const configFileName = project.projectService.getConfigFileNameForFile(\n {\n fileName: project.getConfigFilePath(),\n path: info.path,\n configFileInfo: true,\n isForDefaultProject: !searchOnlyPotentialSolution\n },\n kind <= 3 /* CreateReplay */\n );\n if (!configFileName) return;\n const ancestor = project.projectService.findCreateOrReloadConfiguredProject(\n configFileName,\n kind,\n reason,\n allowDeferredClosed,\n !searchOnlyPotentialSolution ? info.fileName : void 0,\n // Config Diag event for project if its for default project\n reloadedProjects,\n searchOnlyPotentialSolution,\n // Delay load if we are searching for solution\n delayReloadedConfiguredProjects\n );\n if (!ancestor) return;\n if (!ancestor.project.parsedCommandLine && ((_a = project.parsedCommandLine) == null ? void 0 : _a.options.composite)) {\n ancestor.project.setPotentialProjectReference(project.canonicalConfigFilePath);\n }\n const result = cb(ancestor);\n if (result) return result;\n project = ancestor.project;\n }\n}\nfunction forEachResolvedProjectReferenceProjectLoad(project, parentConfig, cb, kind, reason, allowDeferredClosed, reloadedProjects, seenResolvedRefs) {\n const loadKind = parentConfig.options.disableReferencedProjectLoad ? 0 /* FindOptimized */ : kind;\n let children;\n return forEach(\n parentConfig.projectReferences,\n (ref) => {\n var _a;\n const childConfigName = toNormalizedPath(resolveProjectReferencePath(ref));\n const childCanonicalConfigPath = asNormalizedPath(project.projectService.toCanonicalFileName(childConfigName));\n const seenValue = seenResolvedRefs == null ? void 0 : seenResolvedRefs.get(childCanonicalConfigPath);\n if (seenValue !== void 0 && seenValue >= loadKind) return void 0;\n const configFileExistenceInfo = project.projectService.configFileExistenceInfoCache.get(childCanonicalConfigPath);\n let childConfig = loadKind === 0 /* FindOptimized */ ? (configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.exists) || ((_a = project.resolvedChildConfigs) == null ? void 0 : _a.has(childCanonicalConfigPath)) ? configFileExistenceInfo.config.parsedCommandLine : void 0 : project.getParsedCommandLine(childConfigName);\n if (childConfig && loadKind !== kind && loadKind > 2 /* CreateReplayOptimized */) {\n childConfig = project.getParsedCommandLine(childConfigName);\n }\n if (!childConfig) return void 0;\n const childProject = project.projectService.findConfiguredProjectByProjectName(childConfigName, allowDeferredClosed);\n if (loadKind === 2 /* CreateReplayOptimized */ && !configFileExistenceInfo && !childProject) return void 0;\n switch (loadKind) {\n case 6 /* ReloadOptimized */:\n if (childProject) childProject.projectService.reloadConfiguredProjectOptimized(childProject, reason, reloadedProjects);\n // falls through\n case 4 /* CreateOptimized */:\n (project.resolvedChildConfigs ?? (project.resolvedChildConfigs = /* @__PURE__ */ new Set())).add(childCanonicalConfigPath);\n // falls through\n case 2 /* CreateReplayOptimized */:\n case 0 /* FindOptimized */:\n if (childProject || loadKind !== 0 /* FindOptimized */) {\n const result = cb(\n configFileExistenceInfo ?? project.projectService.configFileExistenceInfoCache.get(childCanonicalConfigPath),\n childProject,\n childConfigName,\n reason,\n project,\n childCanonicalConfigPath\n );\n if (result) return result;\n }\n break;\n default:\n Debug.assertNever(loadKind);\n }\n (seenResolvedRefs ?? (seenResolvedRefs = /* @__PURE__ */ new Map())).set(childCanonicalConfigPath, loadKind);\n (children ?? (children = [])).push(childConfig);\n }\n ) || forEach(\n children,\n (childConfig) => childConfig.projectReferences && forEachResolvedProjectReferenceProjectLoad(\n project,\n childConfig,\n cb,\n loadKind,\n reason,\n allowDeferredClosed,\n reloadedProjects,\n seenResolvedRefs\n )\n );\n}\nfunction updateProjectFoundUsingFind(project, kind, triggerFile, reason, reloadedProjects) {\n let sentConfigFileDiag = false;\n let configFileExistenceInfo;\n switch (kind) {\n case 2 /* CreateReplayOptimized */:\n case 3 /* CreateReplay */:\n if (useConfigFileExistenceInfoForOptimizedLoading(project)) {\n configFileExistenceInfo = project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath);\n }\n break;\n case 4 /* CreateOptimized */:\n configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n if (configFileExistenceInfo) break;\n // falls through\n case 5 /* Create */:\n sentConfigFileDiag = updateConfiguredProject(project, triggerFile);\n break;\n case 6 /* ReloadOptimized */:\n project.projectService.reloadConfiguredProjectOptimized(project, reason, reloadedProjects);\n configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n if (configFileExistenceInfo) break;\n // falls through\n case 7 /* Reload */:\n sentConfigFileDiag = project.projectService.reloadConfiguredProjectClearingSemanticCache(\n project,\n reason,\n reloadedProjects\n );\n break;\n case 0 /* FindOptimized */:\n case 1 /* Find */:\n break;\n default:\n Debug.assertNever(kind);\n }\n return { project, sentConfigFileDiag, configFileExistenceInfo, reason };\n}\nfunction forEachPotentialProjectReference(project, cb) {\n return project.initialLoadPending ? (project.potentialProjectReferences && forEachKey(project.potentialProjectReferences, cb)) ?? (project.resolvedChildConfigs && forEachKey(project.resolvedChildConfigs, cb)) : void 0;\n}\nfunction forEachAnyProjectReferenceKind(project, cb, cbProjectRef, cbPotentialProjectRef) {\n return project.getCurrentProgram() ? project.forEachResolvedProjectReference(cb) : project.initialLoadPending ? forEachPotentialProjectReference(project, cbPotentialProjectRef) : forEach(project.getProjectReferences(), cbProjectRef);\n}\nfunction callbackRefProject(project, cb, refPath) {\n const refProject = refPath && project.projectService.configuredProjects.get(refPath);\n return refProject && cb(refProject);\n}\nfunction forEachReferencedProject(project, cb) {\n return forEachAnyProjectReferenceKind(\n project,\n (resolvedRef) => callbackRefProject(project, cb, resolvedRef.sourceFile.path),\n (projectRef) => callbackRefProject(project, cb, project.toPath(resolveProjectReferencePath(projectRef))),\n (potentialProjectRef) => callbackRefProject(project, cb, potentialProjectRef)\n );\n}\nfunction getDetailWatchInfo(watchType, project) {\n return `${isString(project) ? `Config: ${project} ` : project ? `Project: ${project.getProjectName()} ` : \"\"}WatchType: ${watchType}`;\n}\nfunction isScriptInfoWatchedFromNodeModules(info) {\n return !info.isScriptOpen() && info.mTime !== void 0;\n}\nfunction updateProjectIfDirty(project) {\n project.invalidateResolutionsOfFailedLookupLocations();\n return project.dirty && !project.updateGraph();\n}\nfunction updateWithTriggerFile(project, triggerFile, isReload) {\n if (!isReload) {\n project.invalidateResolutionsOfFailedLookupLocations();\n if (!project.dirty) return false;\n }\n project.triggerFileForConfigFileDiag = triggerFile;\n const updateLevel = project.pendingUpdateLevel;\n project.updateGraph();\n if (!project.triggerFileForConfigFileDiag && !isReload) return updateLevel === 2 /* Full */;\n const sent = project.projectService.sendConfigFileDiagEvent(project, triggerFile, isReload);\n project.triggerFileForConfigFileDiag = void 0;\n return sent;\n}\nfunction updateConfiguredProject(project, triggerFile) {\n if (triggerFile) {\n if (updateWithTriggerFile(\n project,\n triggerFile,\n /*isReload*/\n false\n )) return true;\n } else {\n updateProjectIfDirty(project);\n }\n return false;\n}\nfunction configFileExistenceInfoForOptimizedLoading(project) {\n const configFileName = toNormalizedPath(project.getConfigFilePath());\n const configFileExistenceInfo = project.projectService.ensureParsedConfigUptoDate(\n configFileName,\n project.canonicalConfigFilePath,\n project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath),\n project\n );\n const parsedCommandLine = configFileExistenceInfo.config.parsedCommandLine;\n project.parsedCommandLine = parsedCommandLine;\n project.resolvedChildConfigs = void 0;\n project.updateReferences(parsedCommandLine.projectReferences);\n if (useConfigFileExistenceInfoForOptimizedLoading(project)) return configFileExistenceInfo;\n}\nfunction useConfigFileExistenceInfoForOptimizedLoading(project) {\n return !!project.parsedCommandLine && (!!project.parsedCommandLine.options.composite || // If solution, no need to load it to determine if file belongs to it\n !!isSolutionConfig(project.parsedCommandLine));\n}\nfunction configFileExistenceInfoForOptimizedReplay(project) {\n return useConfigFileExistenceInfoForOptimizedLoading(project) ? project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath) : void 0;\n}\nfunction fileOpenReason(info) {\n return `Creating possible configured project for ${info.fileName} to open`;\n}\nfunction reloadReason(reason) {\n return `User requested reload projects: ${reason}`;\n}\nfunction setProjectOptionsUsed(project) {\n if (isConfiguredProject(project)) {\n project.projectOptions = true;\n }\n}\nfunction createProjectNameFactoryWithCounter(nameFactory) {\n let nextId = 1;\n return () => nameFactory(nextId++);\n}\nfunction getHostWatcherMap() {\n return { idToCallbacks: /* @__PURE__ */ new Map(), pathToId: /* @__PURE__ */ new Map() };\n}\nfunction getCanUseWatchEvents(service, canUseWatchEvents) {\n return !!canUseWatchEvents && !!service.eventHandler && !!service.session;\n}\nfunction createWatchFactoryHostUsingWatchEvents(service, canUseWatchEvents) {\n if (!getCanUseWatchEvents(service, canUseWatchEvents)) return void 0;\n const watchedFiles = getHostWatcherMap();\n const watchedDirectories = getHostWatcherMap();\n const watchedDirectoriesRecursive = getHostWatcherMap();\n let ids = 1;\n service.session.addProtocolHandler(\"watchChange\" /* WatchChange */, (req) => {\n onWatchChange(req.arguments);\n return { responseRequired: false };\n });\n return {\n watchFile: watchFile2,\n watchDirectory,\n getCurrentDirectory: () => service.host.getCurrentDirectory(),\n useCaseSensitiveFileNames: service.host.useCaseSensitiveFileNames\n };\n function watchFile2(path, callback) {\n return getOrCreateFileWatcher(\n watchedFiles,\n path,\n callback,\n (id) => ({ eventName: CreateFileWatcherEvent, data: { id, path } })\n );\n }\n function watchDirectory(path, callback, recursive) {\n return getOrCreateFileWatcher(\n recursive ? watchedDirectoriesRecursive : watchedDirectories,\n path,\n callback,\n (id) => ({\n eventName: CreateDirectoryWatcherEvent,\n data: {\n id,\n path,\n recursive: !!recursive,\n // Special case node_modules as we watch it for changes to closed script infos as well\n ignoreUpdate: !path.endsWith(\"/node_modules\") ? true : void 0\n }\n })\n );\n }\n function getOrCreateFileWatcher({ pathToId, idToCallbacks }, path, callback, event) {\n const key = service.toPath(path);\n let id = pathToId.get(key);\n if (!id) pathToId.set(key, id = ids++);\n let callbacks = idToCallbacks.get(id);\n if (!callbacks) {\n idToCallbacks.set(id, callbacks = /* @__PURE__ */ new Set());\n service.eventHandler(event(id));\n }\n callbacks.add(callback);\n return {\n close() {\n const callbacks2 = idToCallbacks.get(id);\n if (!(callbacks2 == null ? void 0 : callbacks2.delete(callback))) return;\n if (callbacks2.size) return;\n idToCallbacks.delete(id);\n pathToId.delete(key);\n service.eventHandler({ eventName: CloseFileWatcherEvent, data: { id } });\n }\n };\n }\n function onWatchChange(args) {\n if (isArray(args)) args.forEach(onWatchChangeRequestArgs);\n else onWatchChangeRequestArgs(args);\n }\n function onWatchChangeRequestArgs({ id, created, deleted, updated }) {\n onWatchEventType(id, created, 0 /* Created */);\n onWatchEventType(id, deleted, 2 /* Deleted */);\n onWatchEventType(id, updated, 1 /* Changed */);\n }\n function onWatchEventType(id, paths, eventKind) {\n if (!(paths == null ? void 0 : paths.length)) return;\n forEachCallback(watchedFiles, id, paths, (callback, eventPath) => callback(eventPath, eventKind));\n forEachCallback(watchedDirectories, id, paths, (callback, eventPath) => callback(eventPath));\n forEachCallback(watchedDirectoriesRecursive, id, paths, (callback, eventPath) => callback(eventPath));\n }\n function forEachCallback(hostWatcherMap, id, eventPaths, cb) {\n var _a;\n (_a = hostWatcherMap.idToCallbacks.get(id)) == null ? void 0 : _a.forEach((callback) => {\n eventPaths.forEach((eventPath) => cb(callback, normalizeSlashes(eventPath)));\n });\n }\n}\nvar _ProjectService = class _ProjectService {\n constructor(opts) {\n /**\n * Container of all known scripts\n *\n * @internal\n */\n this.filenameToScriptInfo = /* @__PURE__ */ new Map();\n this.nodeModulesWatchers = /* @__PURE__ */ new Map();\n /**\n * Contains all the deleted script info's version information so that\n * it does not reset when creating script info again\n * (and could have potentially collided with version where contents mismatch)\n */\n this.filenameToScriptInfoVersion = /* @__PURE__ */ new Map();\n // Set of all '.js' files ever opened.\n this.allJsFilesForOpenFileTelemetry = /* @__PURE__ */ new Set();\n /**\n * maps external project file name to list of config files that were the part of this project\n */\n this.externalProjectToConfiguredProjectMap = /* @__PURE__ */ new Map();\n /**\n * external projects (configuration and list of root files is not controlled by tsserver)\n */\n this.externalProjects = [];\n /**\n * projects built from openFileRoots\n */\n this.inferredProjects = [];\n /**\n * projects specified by a tsconfig.json file\n */\n this.configuredProjects = /* @__PURE__ */ new Map();\n /** @internal */\n this.newInferredProjectName = createProjectNameFactoryWithCounter(makeInferredProjectName);\n /** @internal */\n this.newAutoImportProviderProjectName = createProjectNameFactoryWithCounter(makeAutoImportProviderProjectName);\n /** @internal */\n this.newAuxiliaryProjectName = createProjectNameFactoryWithCounter(makeAuxiliaryProjectName);\n /**\n * Open files: with value being project root path, and key being Path of the file that is open\n */\n this.openFiles = /* @__PURE__ */ new Map();\n /** Config files looked up and cached config files for open script info */\n this.configFileForOpenFiles = /* @__PURE__ */ new Map();\n /** Set of open script infos that are root of inferred project */\n this.rootOfInferredProjects = /* @__PURE__ */ new Set();\n /**\n * Map of open files that are opened without complete path but have projectRoot as current directory\n */\n this.openFilesWithNonRootedDiskPath = /* @__PURE__ */ new Map();\n this.compilerOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n this.watchOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n this.typeAcquisitionForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n /**\n * Project size for configured or external projects\n */\n this.projectToSizeMap = /* @__PURE__ */ new Map();\n /**\n * This is a map of config file paths existence that doesnt need query to disk\n * - The entry can be present because there is inferred project that needs to watch addition of config file to directory\n * In this case the exists could be true/false based on config file is present or not\n * - Or it is present if we have configured project open with config file at that location\n * In this case the exists property is always true\n *\n * @internal\n */\n this.configFileExistenceInfoCache = /* @__PURE__ */ new Map();\n this.safelist = defaultTypeSafeList;\n this.legacySafelist = /* @__PURE__ */ new Map();\n this.pendingProjectUpdates = /* @__PURE__ */ new Map();\n /** @internal */\n this.pendingEnsureProjectForOpenFiles = false;\n /** Tracks projects that we have already sent telemetry for. */\n this.seenProjects = /* @__PURE__ */ new Map();\n this.sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map();\n this.extendedConfigCache = /* @__PURE__ */ new Map();\n /** @internal */\n this.baseline = noop;\n /** @internal */\n this.verifyDocumentRegistry = noop;\n /** @internal */\n this.verifyProgram = noop;\n /** @internal */\n this.onProjectCreation = noop;\n var _a;\n this.host = opts.host;\n this.logger = opts.logger;\n this.cancellationToken = opts.cancellationToken;\n this.useSingleInferredProject = opts.useSingleInferredProject;\n this.useInferredProjectPerProjectRoot = opts.useInferredProjectPerProjectRoot;\n this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller;\n this.throttleWaitMilliseconds = opts.throttleWaitMilliseconds;\n this.eventHandler = opts.eventHandler;\n this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents;\n this.globalPlugins = opts.globalPlugins || emptyArray2;\n this.pluginProbeLocations = opts.pluginProbeLocations || emptyArray2;\n this.allowLocalPluginLoads = !!opts.allowLocalPluginLoads;\n this.typesMapLocation = opts.typesMapLocation === void 0 ? combinePaths(getDirectoryPath(this.getExecutingFilePath()), \"typesMap.json\") : opts.typesMapLocation;\n this.session = opts.session;\n this.jsDocParsingMode = opts.jsDocParsingMode;\n if (opts.serverMode !== void 0) {\n this.serverMode = opts.serverMode;\n } else {\n this.serverMode = 0 /* Semantic */;\n }\n if (this.host.realpath) {\n this.realpathToScriptInfos = createMultiMap();\n }\n this.currentDirectory = toNormalizedPath(this.host.getCurrentDirectory());\n this.toCanonicalFileName = createGetCanonicalFileName(this.host.useCaseSensitiveFileNames);\n this.globalCacheLocationDirectoryPath = this.typingsInstaller.globalTypingsCacheLocation ? ensureTrailingDirectorySeparator(this.toPath(this.typingsInstaller.globalTypingsCacheLocation)) : void 0;\n this.throttledOperations = new ThrottledOperations(this.host, this.logger);\n this.logger.info(`currentDirectory:: ${this.host.getCurrentDirectory()} useCaseSensitiveFileNames:: ${this.host.useCaseSensitiveFileNames}`);\n this.logger.info(`libs Location:: ${getDirectoryPath(this.host.getExecutingFilePath())}`);\n this.logger.info(`globalTypingsCacheLocation:: ${this.typingsInstaller.globalTypingsCacheLocation}`);\n if (this.typesMapLocation) {\n this.loadTypesMap();\n } else {\n this.logger.info(\"No types map provided; using the default\");\n }\n this.typingsInstaller.attach(this);\n this.hostConfiguration = {\n formatCodeOptions: getDefaultFormatCodeSettings(this.host.newLine),\n preferences: emptyOptions,\n hostInfo: \"Unknown host\",\n extraFileExtensions: []\n };\n this.documentRegistry = createDocumentRegistryInternal(\n this.host.useCaseSensitiveFileNames,\n this.currentDirectory,\n this.jsDocParsingMode,\n this\n );\n const watchLogLevel = this.logger.hasLevel(3 /* verbose */) ? 2 /* Verbose */ : this.logger.loggingEnabled() ? 1 /* TriggerOnly */ : 0 /* None */;\n const log = watchLogLevel !== 0 /* None */ ? (s) => this.logger.info(s) : noop;\n this.packageJsonCache = createPackageJsonCache(this);\n this.watchFactory = this.serverMode !== 0 /* Semantic */ ? {\n watchFile: returnNoopFileWatcher,\n watchDirectory: returnNoopFileWatcher\n } : getWatchFactory(\n createWatchFactoryHostUsingWatchEvents(this, opts.canUseWatchEvents) || this.host,\n watchLogLevel,\n log,\n getDetailWatchInfo\n );\n this.canUseWatchEvents = getCanUseWatchEvents(this, opts.canUseWatchEvents);\n (_a = opts.incrementalVerifier) == null ? void 0 : _a.call(opts, this);\n }\n toPath(fileName) {\n return toPath(fileName, this.currentDirectory, this.toCanonicalFileName);\n }\n /** @internal */\n getExecutingFilePath() {\n return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath());\n }\n /** @internal */\n getNormalizedAbsolutePath(fileName) {\n return getNormalizedAbsolutePath(fileName, this.host.getCurrentDirectory());\n }\n /** @internal */\n setDocument(key, path, sourceFile) {\n const info = Debug.checkDefined(this.getScriptInfoForPath(path));\n info.cacheSourceFile = { key, sourceFile };\n }\n /** @internal */\n getDocument(key, path) {\n const info = this.getScriptInfoForPath(path);\n return info && info.cacheSourceFile && info.cacheSourceFile.key === key ? info.cacheSourceFile.sourceFile : void 0;\n }\n /** @internal */\n ensureInferredProjectsUpToDate_TestOnly() {\n this.ensureProjectStructuresUptoDate();\n }\n /** @internal */\n getCompilerOptionsForInferredProjects() {\n return this.compilerOptionsForInferredProjects;\n }\n /** @internal */\n onUpdateLanguageServiceStateForProject(project, languageServiceEnabled) {\n if (!this.eventHandler) {\n return;\n }\n const event = {\n eventName: ProjectLanguageServiceStateEvent,\n data: { project, languageServiceEnabled }\n };\n this.eventHandler(event);\n }\n loadTypesMap() {\n try {\n const fileContent = this.host.readFile(this.typesMapLocation);\n if (fileContent === void 0) {\n this.logger.info(`Provided types map file \"${this.typesMapLocation}\" doesn't exist`);\n return;\n }\n const raw = JSON.parse(fileContent);\n for (const k of Object.keys(raw.typesMap)) {\n raw.typesMap[k].match = new RegExp(raw.typesMap[k].match, \"i\");\n }\n this.safelist = raw.typesMap;\n for (const key in raw.simpleMap) {\n if (hasProperty(raw.simpleMap, key)) {\n this.legacySafelist.set(key, raw.simpleMap[key].toLowerCase());\n }\n }\n } catch (e) {\n this.logger.info(`Error loading types map: ${e}`);\n this.safelist = defaultTypeSafeList;\n this.legacySafelist.clear();\n }\n }\n // eslint-disable-line @typescript-eslint/unified-signatures\n updateTypingsForProject(response) {\n const project = this.findProject(response.projectName);\n if (!project) {\n return;\n }\n switch (response.kind) {\n case ActionSet:\n project.updateTypingFiles(\n response.compilerOptions,\n response.typeAcquisition,\n response.unresolvedImports,\n response.typings\n );\n return;\n case ActionInvalidate:\n project.enqueueInstallTypingsForProject(\n /*forceRefresh*/\n true\n );\n return;\n }\n }\n /** @internal */\n watchTypingLocations(response) {\n var _a;\n (_a = this.findProject(response.projectName)) == null ? void 0 : _a.watchTypingLocations(response.files);\n }\n /** @internal */\n delayEnsureProjectForOpenFiles() {\n if (!this.openFiles.size) return;\n this.pendingEnsureProjectForOpenFiles = true;\n this.throttledOperations.schedule(\n ensureProjectForOpenFileSchedule,\n /*delay*/\n 2500,\n () => {\n if (this.pendingProjectUpdates.size !== 0) {\n this.delayEnsureProjectForOpenFiles();\n } else {\n if (this.pendingEnsureProjectForOpenFiles) {\n this.ensureProjectForOpenFiles();\n this.sendProjectsUpdatedInBackgroundEvent();\n }\n }\n }\n );\n }\n delayUpdateProjectGraph(project) {\n if (isProjectDeferredClose(project)) return;\n project.markAsDirty();\n if (isBackgroundProject(project)) return;\n const projectName = project.getProjectName();\n this.pendingProjectUpdates.set(projectName, project);\n this.throttledOperations.schedule(\n projectName,\n /*delay*/\n 250,\n () => {\n if (this.pendingProjectUpdates.delete(projectName)) {\n updateProjectIfDirty(project);\n }\n }\n );\n }\n /** @internal */\n hasPendingProjectUpdate(project) {\n return this.pendingProjectUpdates.has(project.getProjectName());\n }\n /** @internal */\n sendProjectsUpdatedInBackgroundEvent() {\n if (!this.eventHandler) {\n return;\n }\n const event = {\n eventName: ProjectsUpdatedInBackgroundEvent,\n data: {\n openFiles: arrayFrom(this.openFiles.keys(), (path) => this.getScriptInfoForPath(path).fileName)\n }\n };\n this.eventHandler(event);\n }\n /** @internal */\n sendLargeFileReferencedEvent(file, fileSize) {\n if (!this.eventHandler) {\n return;\n }\n const event = {\n eventName: LargeFileReferencedEvent,\n data: { file, fileSize, maxFileSize }\n };\n this.eventHandler(event);\n }\n /** @internal */\n sendProjectLoadingStartEvent(project, reason) {\n if (!this.eventHandler) {\n return;\n }\n project.sendLoadingProjectFinish = true;\n const event = {\n eventName: ProjectLoadingStartEvent,\n data: { project, reason }\n };\n this.eventHandler(event);\n }\n /** @internal */\n sendProjectLoadingFinishEvent(project) {\n if (!this.eventHandler || !project.sendLoadingProjectFinish) {\n return;\n }\n project.sendLoadingProjectFinish = false;\n const event = {\n eventName: ProjectLoadingFinishEvent,\n data: { project }\n };\n this.eventHandler(event);\n }\n /** @internal */\n sendPerformanceEvent(kind, durationMs) {\n if (this.performanceEventHandler) {\n this.performanceEventHandler({ kind, durationMs });\n }\n }\n /** @internal */\n delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project) {\n this.delayUpdateProjectGraph(project);\n this.delayEnsureProjectForOpenFiles();\n }\n delayUpdateProjectGraphs(projects, clearSourceMapperCache) {\n if (projects.length) {\n for (const project of projects) {\n if (clearSourceMapperCache) project.clearSourceMapperCache();\n this.delayUpdateProjectGraph(project);\n }\n this.delayEnsureProjectForOpenFiles();\n }\n }\n setCompilerOptionsForInferredProjects(projectCompilerOptions, projectRootPath) {\n Debug.assert(projectRootPath === void 0 || this.useInferredProjectPerProjectRoot, \"Setting compiler options per project root path is only supported when useInferredProjectPerProjectRoot is enabled\");\n const compilerOptions = convertCompilerOptions(projectCompilerOptions);\n const watchOptions = convertWatchOptions(projectCompilerOptions, projectRootPath);\n const typeAcquisition = convertTypeAcquisition(projectCompilerOptions);\n compilerOptions.allowNonTsExtensions = true;\n const canonicalProjectRootPath = projectRootPath && this.toCanonicalFileName(projectRootPath);\n if (canonicalProjectRootPath) {\n this.compilerOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, compilerOptions);\n this.watchOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, watchOptions || false);\n this.typeAcquisitionForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, typeAcquisition);\n } else {\n this.compilerOptionsForInferredProjects = compilerOptions;\n this.watchOptionsForInferredProjects = watchOptions;\n this.typeAcquisitionForInferredProjects = typeAcquisition;\n }\n for (const project of this.inferredProjects) {\n if (canonicalProjectRootPath ? project.projectRootPath === canonicalProjectRootPath : !project.projectRootPath || !this.compilerOptionsForInferredProjectsPerProjectRoot.has(project.projectRootPath)) {\n project.setCompilerOptions(compilerOptions);\n project.setTypeAcquisition(typeAcquisition);\n project.setWatchOptions(watchOptions == null ? void 0 : watchOptions.watchOptions);\n project.setProjectErrors(watchOptions == null ? void 0 : watchOptions.errors);\n project.compileOnSaveEnabled = compilerOptions.compileOnSave;\n project.markAsDirty();\n this.delayUpdateProjectGraph(project);\n }\n }\n this.delayEnsureProjectForOpenFiles();\n }\n findProject(projectName) {\n if (projectName === void 0) {\n return void 0;\n }\n if (isInferredProjectName(projectName)) {\n return findProjectByName(projectName, this.inferredProjects);\n }\n return this.findExternalProjectByProjectName(projectName) || this.findConfiguredProjectByProjectName(toNormalizedPath(projectName));\n }\n /** @internal */\n forEachProject(cb) {\n this.externalProjects.forEach(cb);\n this.configuredProjects.forEach(cb);\n this.inferredProjects.forEach(cb);\n }\n /** @internal */\n forEachEnabledProject(cb) {\n this.forEachProject((project) => {\n if (!project.isOrphan() && project.languageServiceEnabled) {\n cb(project);\n }\n });\n }\n getDefaultProjectForFile(fileName, ensureProject) {\n return ensureProject ? this.ensureDefaultProjectForFile(fileName) : this.tryGetDefaultProjectForFile(fileName);\n }\n /** @internal */\n tryGetDefaultProjectForFile(fileNameOrScriptInfo) {\n const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n return scriptInfo && !scriptInfo.isOrphan() ? scriptInfo.getDefaultProject() : void 0;\n }\n /**\n * If there is default project calculation pending for this file,\n * then it completes that calculation so that correct default project is used for the project\n */\n tryGetDefaultProjectForEnsuringConfiguredProjectForFile(fileNameOrScriptInfo) {\n var _a;\n const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n if (!scriptInfo) return void 0;\n if ((_a = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a.delete(scriptInfo.path)) {\n this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n scriptInfo,\n 5 /* Create */\n );\n if (scriptInfo.isOrphan()) {\n this.assignOrphanScriptInfoToInferredProject(scriptInfo, this.openFiles.get(scriptInfo.path));\n }\n }\n return this.tryGetDefaultProjectForFile(scriptInfo);\n }\n /** @internal */\n ensureDefaultProjectForFile(fileNameOrScriptInfo) {\n return this.tryGetDefaultProjectForEnsuringConfiguredProjectForFile(fileNameOrScriptInfo) || this.doEnsureDefaultProjectForFile(fileNameOrScriptInfo);\n }\n doEnsureDefaultProjectForFile(fileNameOrScriptInfo) {\n this.ensureProjectStructuresUptoDate();\n const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n return scriptInfo ? scriptInfo.getDefaultProject() : (this.logErrorForScriptInfoNotFound(isString(fileNameOrScriptInfo) ? fileNameOrScriptInfo : fileNameOrScriptInfo.fileName), Errors.ThrowNoProject());\n }\n getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName) {\n this.ensureProjectStructuresUptoDate();\n return this.getScriptInfo(uncheckedFileName);\n }\n /**\n * Ensures the project structures are upto date\n * This means,\n * - we go through all the projects and update them if they are dirty\n * - if updates reflect some change in structure or there was pending request to ensure projects for open files\n * ensure that each open script info has project\n */\n ensureProjectStructuresUptoDate() {\n let hasChanges = this.pendingEnsureProjectForOpenFiles;\n this.pendingProjectUpdates.clear();\n const updateGraph = (project) => {\n hasChanges = updateProjectIfDirty(project) || hasChanges;\n };\n this.externalProjects.forEach(updateGraph);\n this.configuredProjects.forEach(updateGraph);\n this.inferredProjects.forEach(updateGraph);\n if (hasChanges) {\n this.ensureProjectForOpenFiles();\n }\n }\n getFormatCodeOptions(file) {\n const info = this.getScriptInfoForNormalizedPath(file);\n return info && info.getFormatCodeSettings() || this.hostConfiguration.formatCodeOptions;\n }\n getPreferences(file) {\n const info = this.getScriptInfoForNormalizedPath(file);\n return { ...this.hostConfiguration.preferences, ...info && info.getPreferences() };\n }\n getHostFormatCodeOptions() {\n return this.hostConfiguration.formatCodeOptions;\n }\n getHostPreferences() {\n return this.hostConfiguration.preferences;\n }\n onSourceFileChanged(info, eventKind) {\n Debug.assert(!info.isScriptOpen());\n if (eventKind === 2 /* Deleted */) {\n this.handleDeletedFile(\n info,\n /*deferredDelete*/\n true\n );\n } else {\n if (info.deferredDelete) info.deferredDelete = void 0;\n info.delayReloadNonMixedContentFile();\n this.delayUpdateProjectGraphs(\n info.containingProjects,\n /*clearSourceMapperCache*/\n false\n );\n this.handleSourceMapProjects(info);\n }\n }\n handleSourceMapProjects(info) {\n if (info.sourceMapFilePath) {\n if (isString(info.sourceMapFilePath)) {\n const sourceMapFileInfo = this.getScriptInfoForPath(info.sourceMapFilePath);\n this.delayUpdateSourceInfoProjects(sourceMapFileInfo == null ? void 0 : sourceMapFileInfo.sourceInfos);\n } else {\n this.delayUpdateSourceInfoProjects(info.sourceMapFilePath.sourceInfos);\n }\n }\n this.delayUpdateSourceInfoProjects(info.sourceInfos);\n if (info.declarationInfoPath) {\n this.delayUpdateProjectsOfScriptInfoPath(info.declarationInfoPath);\n }\n }\n delayUpdateSourceInfoProjects(sourceInfos) {\n if (sourceInfos) {\n sourceInfos.forEach((_value, path) => this.delayUpdateProjectsOfScriptInfoPath(path));\n }\n }\n delayUpdateProjectsOfScriptInfoPath(path) {\n const info = this.getScriptInfoForPath(path);\n if (info) {\n this.delayUpdateProjectGraphs(\n info.containingProjects,\n /*clearSourceMapperCache*/\n true\n );\n }\n }\n handleDeletedFile(info, deferredDelete) {\n Debug.assert(!info.isScriptOpen());\n this.delayUpdateProjectGraphs(\n info.containingProjects,\n /*clearSourceMapperCache*/\n false\n );\n this.handleSourceMapProjects(info);\n info.detachAllProjects();\n if (deferredDelete) {\n info.delayReloadNonMixedContentFile();\n info.deferredDelete = true;\n } else {\n this.deleteScriptInfo(info);\n }\n }\n /**\n * This is to watch whenever files are added or removed to the wildcard directories\n */\n watchWildcardDirectory(directory, flags, configFileName, config) {\n let watcher = this.watchFactory.watchDirectory(\n directory,\n (fileOrDirectory) => this.onWildCardDirectoryWatcherInvoke(\n directory,\n configFileName,\n config,\n result,\n fileOrDirectory\n ),\n flags,\n this.getWatchOptionsFromProjectWatchOptions(config.parsedCommandLine.watchOptions, getDirectoryPath(configFileName)),\n WatchType.WildcardDirectory,\n configFileName\n );\n const result = {\n packageJsonWatches: void 0,\n close() {\n var _a;\n if (watcher) {\n watcher.close();\n watcher = void 0;\n (_a = result.packageJsonWatches) == null ? void 0 : _a.forEach((watcher2) => {\n watcher2.projects.delete(result);\n watcher2.close();\n });\n result.packageJsonWatches = void 0;\n }\n }\n };\n return result;\n }\n onWildCardDirectoryWatcherInvoke(directory, configFileName, config, wildCardWatcher, fileOrDirectory) {\n const fileOrDirectoryPath = this.toPath(fileOrDirectory);\n const fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n if (getBaseFileName(fileOrDirectoryPath) === \"package.json\" && !isInsideNodeModules(fileOrDirectoryPath) && (fsResult && fsResult.fileExists || !fsResult && this.host.fileExists(fileOrDirectory))) {\n const file = this.getNormalizedAbsolutePath(fileOrDirectory);\n this.logger.info(`Config: ${configFileName} Detected new package.json: ${file}`);\n this.packageJsonCache.addOrUpdate(file, fileOrDirectoryPath);\n this.watchPackageJsonFile(file, fileOrDirectoryPath, wildCardWatcher);\n }\n if (!(fsResult == null ? void 0 : fsResult.fileExists)) {\n this.sendSourceFileChange(fileOrDirectoryPath);\n }\n const configuredProjectForConfig = this.findConfiguredProjectByProjectName(configFileName);\n if (isIgnoredFileFromWildCardWatching({\n watchedDirPath: this.toPath(directory),\n fileOrDirectory,\n fileOrDirectoryPath,\n configFileName,\n extraFileExtensions: this.hostConfiguration.extraFileExtensions,\n currentDirectory: this.currentDirectory,\n options: config.parsedCommandLine.options,\n program: (configuredProjectForConfig == null ? void 0 : configuredProjectForConfig.getCurrentProgram()) || config.parsedCommandLine.fileNames,\n useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames,\n writeLog: (s) => this.logger.info(s),\n toPath: (s) => this.toPath(s),\n getScriptKind: configuredProjectForConfig ? (fileName) => configuredProjectForConfig.getScriptKind(fileName) : void 0\n })) return;\n if (config.updateLevel !== 2 /* Full */) config.updateLevel = 1 /* RootNamesAndUpdate */;\n config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => {\n var _a;\n if (!watchWildcardDirectories) return;\n const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);\n if (!project) return;\n if (configuredProjectForConfig !== project && this.getHostPreferences().includeCompletionsForModuleExports) {\n const path = this.toPath(configFileName);\n if (find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {\n project.markAutoImportProviderAsDirty();\n }\n }\n const updateLevel = configuredProjectForConfig === project ? 1 /* RootNamesAndUpdate */ : 0 /* Update */;\n if (project.pendingUpdateLevel > updateLevel) return;\n if (this.openFiles.has(fileOrDirectoryPath)) {\n const info = Debug.checkDefined(this.getScriptInfoForPath(fileOrDirectoryPath));\n if (info.isAttached(project)) {\n const loadLevelToSet = Math.max(updateLevel, project.openFileWatchTriggered.get(fileOrDirectoryPath) || 0 /* Update */);\n project.openFileWatchTriggered.set(fileOrDirectoryPath, loadLevelToSet);\n } else {\n project.pendingUpdateLevel = updateLevel;\n this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project);\n }\n } else {\n project.pendingUpdateLevel = updateLevel;\n this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project);\n }\n });\n }\n delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalConfigFilePath, loadReason) {\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!(configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config)) return false;\n let scheduledAnyProjectUpdate = false;\n configFileExistenceInfo.config.updateLevel = 2 /* Full */;\n configFileExistenceInfo.config.cachedDirectoryStructureHost.clearCache();\n configFileExistenceInfo.config.projects.forEach((_watchWildcardDirectories, projectCanonicalPath) => {\n var _a, _b, _c;\n const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);\n if (!project) return;\n scheduledAnyProjectUpdate = true;\n if (projectCanonicalPath === canonicalConfigFilePath) {\n if (project.initialLoadPending) return;\n project.pendingUpdateLevel = 2 /* Full */;\n project.pendingUpdateReason = loadReason;\n this.delayUpdateProjectGraph(project);\n project.markAutoImportProviderAsDirty();\n } else {\n if (project.initialLoadPending) {\n (_b = (_a = this.configFileExistenceInfoCache.get(projectCanonicalPath)) == null ? void 0 : _a.openFilesImpactedByConfigFile) == null ? void 0 : _b.forEach((path2) => {\n var _a2;\n if (!((_a2 = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a2.has(path2))) {\n (this.pendingOpenFileProjectUpdates ?? (this.pendingOpenFileProjectUpdates = /* @__PURE__ */ new Map())).set(\n path2,\n this.configFileForOpenFiles.get(path2)\n );\n }\n });\n return;\n }\n const path = this.toPath(canonicalConfigFilePath);\n project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(path);\n this.delayUpdateProjectGraph(project);\n if (this.getHostPreferences().includeCompletionsForModuleExports && find((_c = project.getCurrentProgram()) == null ? void 0 : _c.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {\n project.markAutoImportProviderAsDirty();\n }\n }\n });\n return scheduledAnyProjectUpdate;\n }\n onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind) {\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n const project = this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath);\n const wasDefferedClose = project == null ? void 0 : project.deferredClose;\n if (eventKind === 2 /* Deleted */) {\n configFileExistenceInfo.exists = false;\n if (project) project.deferredClose = true;\n } else {\n configFileExistenceInfo.exists = true;\n if (wasDefferedClose) {\n project.deferredClose = void 0;\n project.markAsDirty();\n }\n }\n this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(\n canonicalConfigFilePath,\n \"Change in config file detected\"\n );\n this.openFiles.forEach((_projectRootPath, path) => {\n var _a, _b;\n const configFileForOpenFile = this.configFileForOpenFiles.get(path);\n if (!((_a = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(path))) return;\n this.configFileForOpenFiles.delete(path);\n const info = this.getScriptInfoForPath(path);\n const newConfigFileNameForInfo = this.getConfigFileNameForFile(\n info,\n /*findFromCacheOnly*/\n false\n );\n if (!newConfigFileNameForInfo) return;\n if (!((_b = this.pendingOpenFileProjectUpdates) == null ? void 0 : _b.has(path))) {\n (this.pendingOpenFileProjectUpdates ?? (this.pendingOpenFileProjectUpdates = /* @__PURE__ */ new Map())).set(path, configFileForOpenFile);\n }\n });\n this.delayEnsureProjectForOpenFiles();\n }\n removeProject(project) {\n this.logger.info(\"`remove Project::\");\n project.print(\n /*writeProjectFileNames*/\n true,\n /*writeFileExplaination*/\n true,\n /*writeFileVersionAndText*/\n false\n );\n project.close();\n if (Debug.shouldAssert(1 /* Normal */)) {\n this.filenameToScriptInfo.forEach(\n (info) => Debug.assert(\n !info.isAttached(project),\n \"Found script Info still attached to project\",\n () => `${project.projectName}: ScriptInfos still attached: ${JSON.stringify(\n arrayFrom(\n mapDefinedIterator(\n this.filenameToScriptInfo.values(),\n (info2) => info2.isAttached(project) ? {\n fileName: info2.fileName,\n projects: info2.containingProjects.map((p) => p.projectName),\n hasMixedContent: info2.hasMixedContent\n } : void 0\n )\n ),\n /*replacer*/\n void 0,\n \" \"\n )}`\n )\n );\n }\n this.pendingProjectUpdates.delete(project.getProjectName());\n switch (project.projectKind) {\n case 2 /* External */:\n unorderedRemoveItem(this.externalProjects, project);\n this.projectToSizeMap.delete(project.getProjectName());\n break;\n case 1 /* Configured */:\n this.configuredProjects.delete(project.canonicalConfigFilePath);\n this.projectToSizeMap.delete(project.canonicalConfigFilePath);\n break;\n case 0 /* Inferred */:\n unorderedRemoveItem(this.inferredProjects, project);\n break;\n }\n }\n /** @internal */\n assignOrphanScriptInfoToInferredProject(info, projectRootPath) {\n Debug.assert(info.isOrphan());\n const project = this.getOrCreateInferredProjectForProjectRootPathIfEnabled(info, projectRootPath) || this.getOrCreateSingleInferredProjectIfEnabled() || this.getOrCreateSingleInferredWithoutProjectRoot(\n info.isDynamic ? projectRootPath || this.currentDirectory : getDirectoryPath(\n isRootedDiskPath(info.fileName) ? info.fileName : getNormalizedAbsolutePath(\n info.fileName,\n projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory\n )\n )\n );\n project.addRoot(info);\n if (info.containingProjects[0] !== project) {\n orderedRemoveItem(info.containingProjects, project);\n info.containingProjects.unshift(project);\n }\n project.updateGraph();\n if (!this.useSingleInferredProject && !project.projectRootPath) {\n for (const inferredProject of this.inferredProjects) {\n if (inferredProject === project || inferredProject.isOrphan()) {\n continue;\n }\n const roots = inferredProject.getRootScriptInfos();\n Debug.assert(roots.length === 1 || !!inferredProject.projectRootPath);\n if (roots.length === 1 && forEach(roots[0].containingProjects, (p) => p !== roots[0].containingProjects[0] && !p.isOrphan())) {\n inferredProject.removeFile(\n roots[0],\n /*fileExists*/\n true,\n /*detachFromProject*/\n true\n );\n }\n }\n }\n return project;\n }\n assignOrphanScriptInfosToInferredProject() {\n this.openFiles.forEach((projectRootPath, path) => {\n const info = this.getScriptInfoForPath(path);\n if (info.isOrphan()) {\n this.assignOrphanScriptInfoToInferredProject(info, projectRootPath);\n }\n });\n }\n /**\n * Remove this file from the set of open, non-configured files.\n * @param info The file that has been closed or newly configured\n */\n closeOpenFile(info, skipAssignOrphanScriptInfosToInferredProject) {\n var _a;\n const fileExists = info.isDynamic ? false : this.host.fileExists(info.fileName);\n info.close(fileExists);\n this.stopWatchingConfigFilesForScriptInfo(info);\n const canonicalFileName = this.toCanonicalFileName(info.fileName);\n if (this.openFilesWithNonRootedDiskPath.get(canonicalFileName) === info) {\n this.openFilesWithNonRootedDiskPath.delete(canonicalFileName);\n }\n let ensureProjectsForOpenFiles = false;\n for (const p of info.containingProjects) {\n if (isConfiguredProject(p)) {\n if (info.hasMixedContent) {\n info.registerFileUpdate();\n }\n const updateLevel = p.openFileWatchTriggered.get(info.path);\n if (updateLevel !== void 0) {\n p.openFileWatchTriggered.delete(info.path);\n if (p.pendingUpdateLevel < updateLevel) {\n p.pendingUpdateLevel = updateLevel;\n p.markFileAsDirty(info.path);\n }\n }\n } else if (isInferredProject(p) && p.isRoot(info)) {\n if (p.isProjectWithSingleRoot()) {\n ensureProjectsForOpenFiles = true;\n }\n p.removeFile(\n info,\n fileExists,\n /*detachFromProject*/\n true\n );\n }\n if (!p.languageServiceEnabled) {\n p.markAsDirty();\n }\n }\n this.openFiles.delete(info.path);\n this.configFileForOpenFiles.delete(info.path);\n (_a = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a.delete(info.path);\n Debug.assert(!this.rootOfInferredProjects.has(info));\n if (!skipAssignOrphanScriptInfosToInferredProject && ensureProjectsForOpenFiles) {\n this.assignOrphanScriptInfosToInferredProject();\n }\n if (fileExists) {\n this.watchClosedScriptInfo(info);\n } else {\n this.handleDeletedFile(\n info,\n /*deferredDelete*/\n false\n );\n }\n return ensureProjectsForOpenFiles;\n }\n deleteScriptInfo(info) {\n Debug.assert(!info.isScriptOpen());\n this.filenameToScriptInfo.delete(info.path);\n this.filenameToScriptInfoVersion.set(info.path, info.textStorage.version);\n this.stopWatchingScriptInfo(info);\n const realpath = info.getRealpathIfDifferent();\n if (realpath) {\n this.realpathToScriptInfos.remove(realpath, info);\n }\n info.closeSourceMapFileWatcher();\n }\n configFileExists(configFileName, canonicalConfigFilePath, info) {\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n let openFilesImpactedByConfigFile;\n if (this.openFiles.has(info.path) && (!isAncestorConfigFileInfo(info) || info.isForDefaultProject)) {\n if (configFileExistenceInfo) (configFileExistenceInfo.openFilesImpactedByConfigFile ?? (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Set())).add(info.path);\n else (openFilesImpactedByConfigFile = /* @__PURE__ */ new Set()).add(info.path);\n }\n if (configFileExistenceInfo) return configFileExistenceInfo.exists;\n const exists = this.host.fileExists(configFileName);\n this.configFileExistenceInfoCache.set(canonicalConfigFilePath, { exists, openFilesImpactedByConfigFile });\n return exists;\n }\n createConfigFileWatcherForParsedConfig(configFileName, canonicalConfigFilePath, forProject) {\n var _a, _b;\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo.watcher || configFileExistenceInfo.watcher === noopConfigFileWatcher) {\n configFileExistenceInfo.watcher = this.watchFactory.watchFile(\n configFileName,\n (_fileName, eventKind) => this.onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind),\n 2e3 /* High */,\n this.getWatchOptionsFromProjectWatchOptions((_b = (_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.parsedCommandLine) == null ? void 0 : _b.watchOptions, getDirectoryPath(configFileName)),\n WatchType.ConfigFile,\n forProject\n );\n }\n this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n }\n ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject) {\n const projects = configFileExistenceInfo.config.projects;\n projects.set(forProject.canonicalConfigFilePath, projects.get(forProject.canonicalConfigFilePath) || false);\n }\n /** @internal */\n releaseParsedConfig(canonicalConfigFilePath, forProject) {\n var _a, _b, _c;\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!((_a = configFileExistenceInfo.config) == null ? void 0 : _a.projects.delete(forProject.canonicalConfigFilePath))) return;\n if ((_b = configFileExistenceInfo.config) == null ? void 0 : _b.projects.size) return;\n configFileExistenceInfo.config = void 0;\n clearSharedExtendedConfigFileWatcher(canonicalConfigFilePath, this.sharedExtendedConfigFileWatchers);\n Debug.checkDefined(configFileExistenceInfo.watcher);\n if ((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) {\n if (configFileExistenceInfo.inferredProjectRoots) {\n if (!canWatchDirectoryOrFilePath(getDirectoryPath(canonicalConfigFilePath))) {\n configFileExistenceInfo.watcher.close();\n configFileExistenceInfo.watcher = noopConfigFileWatcher;\n }\n } else {\n configFileExistenceInfo.watcher.close();\n configFileExistenceInfo.watcher = void 0;\n }\n } else {\n configFileExistenceInfo.watcher.close();\n this.configFileExistenceInfoCache.delete(canonicalConfigFilePath);\n }\n }\n /**\n * This is called on file close or when its removed from inferred project as root,\n * so that we handle the watches and inferred project root data\n * @internal\n */\n stopWatchingConfigFilesForScriptInfo(info) {\n if (this.serverMode !== 0 /* Semantic */) return;\n const isRootOfInferredProject = this.rootOfInferredProjects.delete(info);\n const isOpen = info.isScriptOpen();\n if (isOpen && !isRootOfInferredProject) return;\n this.forEachConfigFileLocation(info, (canonicalConfigFilePath) => {\n var _a, _b, _c;\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo) return;\n if (isOpen) {\n if (!((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(info.path))) return;\n } else {\n if (!((_b = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _b.delete(info.path))) return;\n }\n if (isRootOfInferredProject) {\n configFileExistenceInfo.inferredProjectRoots--;\n if (configFileExistenceInfo.watcher && !configFileExistenceInfo.config && !configFileExistenceInfo.inferredProjectRoots) {\n configFileExistenceInfo.watcher.close();\n configFileExistenceInfo.watcher = void 0;\n }\n }\n if (!((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) && !configFileExistenceInfo.config) {\n Debug.assert(!configFileExistenceInfo.watcher);\n this.configFileExistenceInfoCache.delete(canonicalConfigFilePath);\n }\n });\n }\n /**\n * This is called by inferred project whenever script info is added as a root\n *\n * @internal\n */\n startWatchingConfigFilesForInferredProjectRoot(info) {\n if (this.serverMode !== 0 /* Semantic */) return;\n Debug.assert(info.isScriptOpen());\n this.rootOfInferredProjects.add(info);\n this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName) => {\n let configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo) {\n configFileExistenceInfo = { exists: this.host.fileExists(configFileName), inferredProjectRoots: 1 };\n this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo);\n } else {\n configFileExistenceInfo.inferredProjectRoots = (configFileExistenceInfo.inferredProjectRoots ?? 0) + 1;\n }\n (configFileExistenceInfo.openFilesImpactedByConfigFile ?? (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Set())).add(info.path);\n configFileExistenceInfo.watcher || (configFileExistenceInfo.watcher = canWatchDirectoryOrFilePath(getDirectoryPath(canonicalConfigFilePath)) ? this.watchFactory.watchFile(\n configFileName,\n (_filename, eventKind) => this.onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind),\n 2e3 /* High */,\n this.hostConfiguration.watchOptions,\n WatchType.ConfigFileForInferredRoot\n ) : noopConfigFileWatcher);\n });\n }\n /**\n * This function tries to search for a tsconfig.json for the given file.\n * This is different from the method the compiler uses because\n * the compiler can assume it will always start searching in the\n * current directory (the directory in which tsc was invoked).\n * The server must start searching from the directory containing\n * the newly opened file.\n */\n forEachConfigFileLocation(info, action) {\n if (this.serverMode !== 0 /* Semantic */) {\n return void 0;\n }\n Debug.assert(!isOpenScriptInfo(info) || this.openFiles.has(info.path));\n const projectRootPath = this.openFiles.get(info.path);\n const scriptInfo = Debug.checkDefined(this.getScriptInfo(info.path));\n if (scriptInfo.isDynamic) return void 0;\n let searchPath = asNormalizedPath(getDirectoryPath(info.fileName));\n const isSearchPathInProjectRoot = () => containsPath(projectRootPath, searchPath, this.currentDirectory, !this.host.useCaseSensitiveFileNames);\n const anySearchPathOk = !projectRootPath || !isSearchPathInProjectRoot();\n let searchTsconfig = true;\n let searchJsconfig = true;\n if (isAncestorConfigFileInfo(info)) {\n if (endsWith(info.fileName, \"tsconfig.json\")) searchTsconfig = false;\n else searchTsconfig = searchJsconfig = false;\n }\n do {\n const canonicalSearchPath = normalizedPathToPath(searchPath, this.currentDirectory, this.toCanonicalFileName);\n if (searchTsconfig) {\n const tsconfigFileName = asNormalizedPath(combinePaths(searchPath, \"tsconfig.json\"));\n const result = action(combinePaths(canonicalSearchPath, \"tsconfig.json\"), tsconfigFileName);\n if (result) return tsconfigFileName;\n }\n if (searchJsconfig) {\n const jsconfigFileName = asNormalizedPath(combinePaths(searchPath, \"jsconfig.json\"));\n const result = action(combinePaths(canonicalSearchPath, \"jsconfig.json\"), jsconfigFileName);\n if (result) return jsconfigFileName;\n }\n if (isNodeModulesDirectory(canonicalSearchPath)) {\n break;\n }\n const parentPath = asNormalizedPath(getDirectoryPath(searchPath));\n if (parentPath === searchPath) break;\n searchPath = parentPath;\n searchTsconfig = searchJsconfig = true;\n } while (anySearchPathOk || isSearchPathInProjectRoot());\n return void 0;\n }\n /** @internal */\n findDefaultConfiguredProject(info) {\n var _a;\n return (_a = this.findDefaultConfiguredProjectWorker(\n info,\n 1 /* Find */\n )) == null ? void 0 : _a.defaultProject;\n }\n /** @internal */\n findDefaultConfiguredProjectWorker(info, kind) {\n return info.isScriptOpen() ? this.tryFindDefaultConfiguredProjectForOpenScriptInfo(\n info,\n kind\n ) : void 0;\n }\n /** Get cached configFileName for scriptInfo or ancestor of open script info */\n getConfigFileNameForFileFromCache(info, lookInPendingFilesForValue) {\n if (lookInPendingFilesForValue) {\n const result = getConfigFileNameFromCache(info, this.pendingOpenFileProjectUpdates);\n if (result !== void 0) return result;\n }\n return getConfigFileNameFromCache(info, this.configFileForOpenFiles);\n }\n /** Caches the configFilename for script info or ancestor of open script info */\n setConfigFileNameForFileInCache(info, configFileName) {\n if (!this.openFiles.has(info.path)) return;\n const config = configFileName || false;\n if (!isAncestorConfigFileInfo(info)) {\n this.configFileForOpenFiles.set(info.path, config);\n } else {\n let configFileForOpenFile = this.configFileForOpenFiles.get(info.path);\n if (!configFileForOpenFile || isString(configFileForOpenFile)) {\n this.configFileForOpenFiles.set(\n info.path,\n configFileForOpenFile = (/* @__PURE__ */ new Map()).set(false, configFileForOpenFile)\n );\n }\n configFileForOpenFile.set(info.fileName, config);\n }\n }\n /**\n * This function tries to search for a tsconfig.json for the given file.\n * This is different from the method the compiler uses because\n * the compiler can assume it will always start searching in the\n * current directory (the directory in which tsc was invoked).\n * The server must start searching from the directory containing\n * the newly opened file.\n * If script info is passed in, it is asserted to be open script info\n * otherwise just file name\n * when findFromCacheOnly is true only looked up in cache instead of hitting disk to figure things out\n * @internal\n */\n getConfigFileNameForFile(info, findFromCacheOnly) {\n const fromCache = this.getConfigFileNameForFileFromCache(info, findFromCacheOnly);\n if (fromCache !== void 0) return fromCache || void 0;\n if (findFromCacheOnly) return void 0;\n const configFileName = this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName2) => this.configFileExists(configFileName2, canonicalConfigFilePath, info));\n this.logger.info(`getConfigFileNameForFile:: File: ${info.fileName} ProjectRootPath: ${this.openFiles.get(info.path)}:: Result: ${configFileName}`);\n this.setConfigFileNameForFileInCache(info, configFileName);\n return configFileName;\n }\n printProjects() {\n if (!this.logger.hasLevel(1 /* normal */)) {\n return;\n }\n this.logger.startGroup();\n this.externalProjects.forEach(printProjectWithoutFileNames);\n this.configuredProjects.forEach(printProjectWithoutFileNames);\n this.inferredProjects.forEach(printProjectWithoutFileNames);\n this.logger.info(\"Open files: \");\n this.openFiles.forEach((projectRootPath, path) => {\n const info = this.getScriptInfoForPath(path);\n this.logger.info(`\tFileName: ${info.fileName} ProjectRootPath: ${projectRootPath}`);\n this.logger.info(`\t\tProjects: ${info.containingProjects.map((p) => p.getProjectName())}`);\n });\n this.logger.endGroup();\n }\n /** @internal */\n findConfiguredProjectByProjectName(configFileName, allowDeferredClosed) {\n const canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName));\n const result = this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath);\n return allowDeferredClosed ? result : !(result == null ? void 0 : result.deferredClose) ? result : void 0;\n }\n getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath) {\n return this.configuredProjects.get(canonicalConfigFilePath);\n }\n findExternalProjectByProjectName(projectFileName) {\n return findProjectByName(projectFileName, this.externalProjects);\n }\n /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */\n getFilenameForExceededTotalSizeLimitForNonTsFiles(name, options, fileNames, propertyReader) {\n if (options && options.disableSizeLimit || !this.host.getFileSize) {\n return;\n }\n let availableSpace = maxProgramSizeForNonTsFiles;\n this.projectToSizeMap.set(name, 0);\n this.projectToSizeMap.forEach((val) => availableSpace -= val || 0);\n let totalNonTsFileSize = 0;\n for (const f of fileNames) {\n const fileName = propertyReader.getFileName(f);\n if (hasTSFileExtension(fileName)) {\n continue;\n }\n totalNonTsFileSize += this.host.getFileSize(fileName);\n if (totalNonTsFileSize > maxProgramSizeForNonTsFiles || totalNonTsFileSize > availableSpace) {\n const top5LargestFiles = fileNames.map((f2) => propertyReader.getFileName(f2)).filter((name2) => !hasTSFileExtension(name2)).map((name2) => ({ name: name2, size: this.host.getFileSize(name2) })).sort((a, b) => b.size - a.size).slice(0, 5);\n this.logger.info(`Non TS file size exceeded limit (${totalNonTsFileSize}). Largest files: ${top5LargestFiles.map((file) => `${file.name}:${file.size}`).join(\", \")}`);\n return fileName;\n }\n }\n this.projectToSizeMap.set(name, totalNonTsFileSize);\n }\n createExternalProject(projectFileName, files, options, typeAcquisition, excludedFiles) {\n const compilerOptions = convertCompilerOptions(options);\n const watchOptionsAndErrors = convertWatchOptions(options, getDirectoryPath(normalizeSlashes(projectFileName)));\n const project = new ExternalProject(\n projectFileName,\n this,\n compilerOptions,\n /*lastFileExceededProgramSize*/\n this.getFilenameForExceededTotalSizeLimitForNonTsFiles(projectFileName, compilerOptions, files, externalFilePropertyReader),\n options.compileOnSave === void 0 ? true : options.compileOnSave,\n /*projectFilePath*/\n void 0,\n watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions\n );\n project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n project.excludedFiles = excludedFiles;\n this.addFilesToNonInferredProject(project, files, externalFilePropertyReader, typeAcquisition);\n this.externalProjects.push(project);\n return project;\n }\n /** @internal */\n sendProjectTelemetry(project) {\n if (this.seenProjects.has(project.projectName)) {\n setProjectOptionsUsed(project);\n return;\n }\n this.seenProjects.set(project.projectName, true);\n if (!this.eventHandler || !this.host.createSHA256Hash) {\n setProjectOptionsUsed(project);\n return;\n }\n const projectOptions = isConfiguredProject(project) ? project.projectOptions : void 0;\n setProjectOptionsUsed(project);\n const data = {\n projectId: this.host.createSHA256Hash(project.projectName),\n fileStats: countEachFileTypes(\n project.getScriptInfos(),\n /*includeSizes*/\n true\n ),\n compilerOptions: convertCompilerOptionsForTelemetry(project.getCompilationSettings()),\n typeAcquisition: convertTypeAcquisition2(project.getTypeAcquisition()),\n extends: projectOptions && projectOptions.configHasExtendsProperty,\n files: projectOptions && projectOptions.configHasFilesProperty,\n include: projectOptions && projectOptions.configHasIncludeProperty,\n exclude: projectOptions && projectOptions.configHasExcludeProperty,\n compileOnSave: project.compileOnSaveEnabled,\n configFileName: configFileName(),\n projectType: project instanceof ExternalProject ? \"external\" : \"configured\",\n languageServiceEnabled: project.languageServiceEnabled,\n version\n };\n this.eventHandler({ eventName: ProjectInfoTelemetryEvent, data });\n function configFileName() {\n if (!isConfiguredProject(project)) {\n return \"other\";\n }\n return getBaseConfigFileName(project.getConfigFilePath()) || \"other\";\n }\n function convertTypeAcquisition2({ enable: enable2, include, exclude }) {\n return {\n enable: enable2,\n include: include !== void 0 && include.length !== 0,\n exclude: exclude !== void 0 && exclude.length !== 0\n };\n }\n }\n addFilesToNonInferredProject(project, files, propertyReader, typeAcquisition) {\n this.updateNonInferredProjectFiles(project, files, propertyReader);\n project.setTypeAcquisition(typeAcquisition);\n project.markAsDirty();\n }\n /** @internal */\n createConfiguredProject(configFileName, reason) {\n var _a;\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"createConfiguredProject\", { configFilePath: configFileName });\n const canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName));\n let configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo) {\n this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: true });\n } else {\n configFileExistenceInfo.exists = true;\n }\n if (!configFileExistenceInfo.config) {\n configFileExistenceInfo.config = {\n cachedDirectoryStructureHost: createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames),\n projects: /* @__PURE__ */ new Map(),\n updateLevel: 2 /* Full */\n };\n }\n const project = new ConfiguredProject2(\n configFileName,\n canonicalConfigFilePath,\n this,\n configFileExistenceInfo.config.cachedDirectoryStructureHost,\n reason\n );\n Debug.assert(!this.configuredProjects.has(canonicalConfigFilePath));\n this.configuredProjects.set(canonicalConfigFilePath, project);\n this.createConfigFileWatcherForParsedConfig(configFileName, canonicalConfigFilePath, project);\n return project;\n }\n /**\n * Read the config file of the project, and update the project root file names.\n */\n loadConfiguredProject(project, reason) {\n var _a, _b;\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"loadConfiguredProject\", { configFilePath: project.canonicalConfigFilePath });\n this.sendProjectLoadingStartEvent(project, reason);\n const configFilename = toNormalizedPath(project.getConfigFilePath());\n const configFileExistenceInfo = this.ensureParsedConfigUptoDate(\n configFilename,\n project.canonicalConfigFilePath,\n this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath),\n project\n );\n const parsedCommandLine = configFileExistenceInfo.config.parsedCommandLine;\n Debug.assert(!!parsedCommandLine.fileNames);\n const compilerOptions = parsedCommandLine.options;\n if (!project.projectOptions) {\n project.projectOptions = {\n configHasExtendsProperty: parsedCommandLine.raw.extends !== void 0,\n configHasFilesProperty: parsedCommandLine.raw.files !== void 0,\n configHasIncludeProperty: parsedCommandLine.raw.include !== void 0,\n configHasExcludeProperty: parsedCommandLine.raw.exclude !== void 0\n };\n }\n project.parsedCommandLine = parsedCommandLine;\n project.setProjectErrors(parsedCommandLine.options.configFile.parseDiagnostics);\n project.updateReferences(parsedCommandLine.projectReferences);\n const lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(project.canonicalConfigFilePath, compilerOptions, parsedCommandLine.fileNames, fileNamePropertyReader);\n if (lastFileExceededProgramSize) {\n project.disableLanguageService(lastFileExceededProgramSize);\n this.configFileExistenceInfoCache.forEach((_configFileExistenceInfo, canonicalConfigFilePath) => this.stopWatchingWildCards(canonicalConfigFilePath, project));\n } else {\n project.setCompilerOptions(compilerOptions);\n project.setWatchOptions(parsedCommandLine.watchOptions);\n project.enableLanguageService();\n this.watchWildcards(configFilename, configFileExistenceInfo, project);\n }\n project.enablePluginsWithOptions(compilerOptions);\n const filesToAdd = parsedCommandLine.fileNames.concat(project.getExternalFiles(2 /* Full */));\n this.updateRootAndOptionsOfNonInferredProject(project, filesToAdd, fileNamePropertyReader, compilerOptions, parsedCommandLine.typeAcquisition, parsedCommandLine.compileOnSave, parsedCommandLine.watchOptions);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n /** @internal */\n ensureParsedConfigUptoDate(configFilename, canonicalConfigFilePath, configFileExistenceInfo, forProject) {\n var _a, _b, _c;\n if (configFileExistenceInfo.config) {\n if (configFileExistenceInfo.config.updateLevel === 1 /* RootNamesAndUpdate */) {\n this.reloadFileNamesOfParsedConfig(configFilename, configFileExistenceInfo.config);\n }\n if (!configFileExistenceInfo.config.updateLevel) {\n this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n return configFileExistenceInfo;\n }\n }\n if (!configFileExistenceInfo.exists && configFileExistenceInfo.config) {\n configFileExistenceInfo.config.updateLevel = void 0;\n this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n return configFileExistenceInfo;\n }\n const cachedDirectoryStructureHost = ((_a = configFileExistenceInfo.config) == null ? void 0 : _a.cachedDirectoryStructureHost) || createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames);\n const configFileContent = tryReadFile(configFilename, (fileName) => this.host.readFile(fileName));\n const configFile = parseJsonText(configFilename, isString(configFileContent) ? configFileContent : \"\");\n const configFileErrors = configFile.parseDiagnostics;\n if (!isString(configFileContent)) configFileErrors.push(configFileContent);\n const configDir = getDirectoryPath(configFilename);\n const parsedCommandLine = parseJsonSourceFileConfigFileContent(\n configFile,\n cachedDirectoryStructureHost,\n configDir,\n /*existingOptions*/\n void 0,\n configFilename,\n /*resolutionStack*/\n void 0,\n this.hostConfiguration.extraFileExtensions,\n this.extendedConfigCache\n );\n if (parsedCommandLine.errors.length) {\n configFileErrors.push(...parsedCommandLine.errors);\n }\n this.logger.info(`Config: ${configFilename} : ${JSON.stringify(\n {\n rootNames: parsedCommandLine.fileNames,\n options: parsedCommandLine.options,\n watchOptions: parsedCommandLine.watchOptions,\n projectReferences: parsedCommandLine.projectReferences\n },\n /*replacer*/\n void 0,\n \" \"\n )}`);\n const oldCommandLine = (_b = configFileExistenceInfo.config) == null ? void 0 : _b.parsedCommandLine;\n if (!configFileExistenceInfo.config) {\n configFileExistenceInfo.config = { parsedCommandLine, cachedDirectoryStructureHost, projects: /* @__PURE__ */ new Map() };\n } else {\n configFileExistenceInfo.config.parsedCommandLine = parsedCommandLine;\n configFileExistenceInfo.config.watchedDirectoriesStale = true;\n configFileExistenceInfo.config.updateLevel = void 0;\n }\n if (!oldCommandLine && !isJsonEqual(\n // Old options\n this.getWatchOptionsFromProjectWatchOptions(\n /*projectOptions*/\n void 0,\n configDir\n ),\n // New options\n this.getWatchOptionsFromProjectWatchOptions(parsedCommandLine.watchOptions, configDir)\n )) {\n (_c = configFileExistenceInfo.watcher) == null ? void 0 : _c.close();\n configFileExistenceInfo.watcher = void 0;\n }\n this.createConfigFileWatcherForParsedConfig(configFilename, canonicalConfigFilePath, forProject);\n updateSharedExtendedConfigFileWatcher(\n canonicalConfigFilePath,\n parsedCommandLine.options,\n this.sharedExtendedConfigFileWatchers,\n (extendedConfigFileName, extendedConfigFilePath) => this.watchFactory.watchFile(\n extendedConfigFileName,\n () => {\n var _a2;\n cleanExtendedConfigCache(this.extendedConfigCache, extendedConfigFilePath, (fileName) => this.toPath(fileName));\n let ensureProjectsForOpenFiles = false;\n (_a2 = this.sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a2.projects.forEach((canonicalPath) => {\n ensureProjectsForOpenFiles = this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, `Change in extended config file ${extendedConfigFileName} detected`) || ensureProjectsForOpenFiles;\n });\n if (ensureProjectsForOpenFiles) this.delayEnsureProjectForOpenFiles();\n },\n 2e3 /* High */,\n this.hostConfiguration.watchOptions,\n WatchType.ExtendedConfigFile,\n configFilename\n ),\n (fileName) => this.toPath(fileName)\n );\n return configFileExistenceInfo;\n }\n /** @internal */\n watchWildcards(configFileName, { exists, config }, forProject) {\n config.projects.set(forProject.canonicalConfigFilePath, true);\n if (exists) {\n if (config.watchedDirectories && !config.watchedDirectoriesStale) return;\n config.watchedDirectoriesStale = false;\n updateWatchingWildcardDirectories(\n config.watchedDirectories || (config.watchedDirectories = /* @__PURE__ */ new Map()),\n config.parsedCommandLine.wildcardDirectories,\n // Create new directory watcher\n (directory, flags) => this.watchWildcardDirectory(directory, flags, configFileName, config)\n );\n } else {\n config.watchedDirectoriesStale = false;\n if (!config.watchedDirectories) return;\n clearMap(config.watchedDirectories, closeFileWatcherOf);\n config.watchedDirectories = void 0;\n }\n }\n /** @internal */\n stopWatchingWildCards(canonicalConfigFilePath, forProject) {\n const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n if (!configFileExistenceInfo.config || !configFileExistenceInfo.config.projects.get(forProject.canonicalConfigFilePath)) {\n return;\n }\n configFileExistenceInfo.config.projects.set(forProject.canonicalConfigFilePath, false);\n if (forEachEntry(configFileExistenceInfo.config.projects, identity)) return;\n if (configFileExistenceInfo.config.watchedDirectories) {\n clearMap(configFileExistenceInfo.config.watchedDirectories, closeFileWatcherOf);\n configFileExistenceInfo.config.watchedDirectories = void 0;\n }\n configFileExistenceInfo.config.watchedDirectoriesStale = void 0;\n }\n updateNonInferredProjectFiles(project, files, propertyReader) {\n var _a;\n const projectRootFilesMap = project.getRootFilesMap();\n const newRootScriptInfoMap = /* @__PURE__ */ new Map();\n for (const f of files) {\n const newRootFile = propertyReader.getFileName(f);\n const fileName = toNormalizedPath(newRootFile);\n const isDynamic = isDynamicFileName(fileName);\n let path;\n if (!isDynamic && !project.fileExists(newRootFile)) {\n path = normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName);\n const existingValue = projectRootFilesMap.get(path);\n if (existingValue) {\n if (((_a = existingValue.info) == null ? void 0 : _a.path) === path) {\n project.removeFile(\n existingValue.info,\n /*fileExists*/\n false,\n /*detachFromProject*/\n true\n );\n existingValue.info = void 0;\n }\n existingValue.fileName = fileName;\n } else {\n projectRootFilesMap.set(path, { fileName });\n }\n } else {\n const scriptKind = propertyReader.getScriptKind(f, this.hostConfiguration.extraFileExtensions);\n const hasMixedContent = propertyReader.hasMixedContent(f, this.hostConfiguration.extraFileExtensions);\n const scriptInfo = Debug.checkDefined(this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(\n fileName,\n project.currentDirectory,\n scriptKind,\n hasMixedContent,\n project.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n ));\n path = scriptInfo.path;\n const existingValue = projectRootFilesMap.get(path);\n if (!existingValue || existingValue.info !== scriptInfo) {\n project.addRoot(scriptInfo, fileName);\n if (scriptInfo.isScriptOpen()) {\n this.removeRootOfInferredProjectIfNowPartOfOtherProject(scriptInfo);\n }\n } else {\n existingValue.fileName = fileName;\n }\n }\n newRootScriptInfoMap.set(path, true);\n }\n if (projectRootFilesMap.size > newRootScriptInfoMap.size) {\n projectRootFilesMap.forEach((value, path) => {\n if (!newRootScriptInfoMap.has(path)) {\n if (value.info) {\n project.removeFile(\n value.info,\n project.fileExists(value.info.fileName),\n /*detachFromProject*/\n true\n );\n } else {\n projectRootFilesMap.delete(path);\n }\n }\n });\n }\n }\n updateRootAndOptionsOfNonInferredProject(project, newUncheckedFiles, propertyReader, newOptions, newTypeAcquisition, compileOnSave, watchOptions) {\n project.setCompilerOptions(newOptions);\n project.setWatchOptions(watchOptions);\n if (compileOnSave !== void 0) {\n project.compileOnSaveEnabled = compileOnSave;\n }\n this.addFilesToNonInferredProject(project, newUncheckedFiles, propertyReader, newTypeAcquisition);\n }\n /**\n * Reload the file names from config file specs and update the project graph\n *\n * @internal\n */\n reloadFileNamesOfConfiguredProject(project) {\n const config = this.reloadFileNamesOfParsedConfig(project.getConfigFilePath(), this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath).config);\n project.updateErrorOnNoInputFiles(config);\n this.updateNonInferredProjectFiles(\n project,\n config.fileNames.concat(project.getExternalFiles(1 /* RootNamesAndUpdate */)),\n fileNamePropertyReader\n );\n project.markAsDirty();\n return project.updateGraph();\n }\n reloadFileNamesOfParsedConfig(configFileName, config) {\n if (config.updateLevel === void 0) return config.parsedCommandLine;\n Debug.assert(config.updateLevel === 1 /* RootNamesAndUpdate */);\n const configFileSpecs = config.parsedCommandLine.options.configFile.configFileSpecs;\n const fileNames = getFileNamesFromConfigSpecs(\n configFileSpecs,\n getDirectoryPath(configFileName),\n config.parsedCommandLine.options,\n config.cachedDirectoryStructureHost,\n this.hostConfiguration.extraFileExtensions\n );\n config.parsedCommandLine = { ...config.parsedCommandLine, fileNames };\n config.updateLevel = void 0;\n return config.parsedCommandLine;\n }\n /** @internal */\n setFileNamesOfAutoImportProviderOrAuxillaryProject(project, fileNames) {\n this.updateNonInferredProjectFiles(project, fileNames, fileNamePropertyReader);\n }\n /** @internal */\n reloadConfiguredProjectOptimized(project, reason, reloadedProjects) {\n if (reloadedProjects.has(project)) return;\n reloadedProjects.set(project, 6 /* ReloadOptimized */);\n if (!project.initialLoadPending) {\n this.setProjectForReload(project, 2 /* Full */, reason);\n }\n }\n /** @internal */\n reloadConfiguredProjectClearingSemanticCache(project, reason, reloadedProjects) {\n if (reloadedProjects.get(project) === 7 /* Reload */) return false;\n reloadedProjects.set(project, 7 /* Reload */);\n this.clearSemanticCache(project);\n this.reloadConfiguredProject(project, reloadReason(reason));\n return true;\n }\n setProjectForReload(project, updateLevel, reason) {\n if (updateLevel === 2 /* Full */) this.clearSemanticCache(project);\n project.pendingUpdateReason = reason && reloadReason(reason);\n project.pendingUpdateLevel = updateLevel;\n }\n /**\n * Read the config file of the project again by clearing the cache and update the project graph\n *\n * @internal\n */\n reloadConfiguredProject(project, reason) {\n project.initialLoadPending = false;\n this.setProjectForReload(project, 0 /* Update */);\n this.loadConfiguredProject(project, reason);\n updateWithTriggerFile(\n project,\n project.triggerFileForConfigFileDiag ?? project.getConfigFilePath(),\n /*isReload*/\n true\n );\n }\n clearSemanticCache(project) {\n project.originalConfiguredProjects = void 0;\n project.resolutionCache.clear();\n project.getLanguageService(\n /*ensureSynchronized*/\n false\n ).cleanupSemanticCache();\n project.cleanupProgram();\n project.markAsDirty();\n }\n /** @internal */\n sendConfigFileDiagEvent(project, triggerFile, force) {\n if (!this.eventHandler || this.suppressDiagnosticEvents) return false;\n const diagnostics = project.getLanguageService().getCompilerOptionsDiagnostics();\n diagnostics.push(...project.getAllProjectErrors());\n if (!force && diagnostics.length === (project.configDiagDiagnosticsReported ?? 0)) return false;\n project.configDiagDiagnosticsReported = diagnostics.length;\n this.eventHandler(\n {\n eventName: ConfigFileDiagEvent,\n data: { configFileName: project.getConfigFilePath(), diagnostics, triggerFile: triggerFile ?? project.getConfigFilePath() }\n }\n );\n return true;\n }\n getOrCreateInferredProjectForProjectRootPathIfEnabled(info, projectRootPath) {\n if (!this.useInferredProjectPerProjectRoot || // Its a dynamic info opened without project root\n info.isDynamic && projectRootPath === void 0) {\n return void 0;\n }\n if (projectRootPath) {\n const canonicalProjectRootPath = this.toCanonicalFileName(projectRootPath);\n for (const project of this.inferredProjects) {\n if (project.projectRootPath === canonicalProjectRootPath) {\n return project;\n }\n }\n return this.createInferredProject(\n projectRootPath,\n /*isSingleInferredProject*/\n false,\n projectRootPath\n );\n }\n let bestMatch;\n for (const project of this.inferredProjects) {\n if (!project.projectRootPath) continue;\n if (!containsPath(project.projectRootPath, info.path, this.host.getCurrentDirectory(), !this.host.useCaseSensitiveFileNames)) continue;\n if (bestMatch && bestMatch.projectRootPath.length > project.projectRootPath.length) continue;\n bestMatch = project;\n }\n return bestMatch;\n }\n getOrCreateSingleInferredProjectIfEnabled() {\n if (!this.useSingleInferredProject) {\n return void 0;\n }\n if (this.inferredProjects.length > 0 && this.inferredProjects[0].projectRootPath === void 0) {\n return this.inferredProjects[0];\n }\n return this.createInferredProject(\n this.currentDirectory,\n /*isSingleInferredProject*/\n true,\n /*projectRootPath*/\n void 0\n );\n }\n getOrCreateSingleInferredWithoutProjectRoot(currentDirectory) {\n Debug.assert(!this.useSingleInferredProject);\n const expectedCurrentDirectory = this.toCanonicalFileName(this.getNormalizedAbsolutePath(currentDirectory));\n for (const inferredProject of this.inferredProjects) {\n if (!inferredProject.projectRootPath && inferredProject.isOrphan() && inferredProject.canonicalCurrentDirectory === expectedCurrentDirectory) {\n return inferredProject;\n }\n }\n return this.createInferredProject(\n currentDirectory,\n /*isSingleInferredProject*/\n false,\n /*projectRootPath*/\n void 0\n );\n }\n createInferredProject(currentDirectory, isSingleInferredProject, projectRootPath) {\n const compilerOptions = projectRootPath && this.compilerOptionsForInferredProjectsPerProjectRoot.get(projectRootPath) || this.compilerOptionsForInferredProjects;\n let watchOptionsAndErrors;\n let typeAcquisition;\n if (projectRootPath) {\n watchOptionsAndErrors = this.watchOptionsForInferredProjectsPerProjectRoot.get(projectRootPath);\n typeAcquisition = this.typeAcquisitionForInferredProjectsPerProjectRoot.get(projectRootPath);\n }\n if (watchOptionsAndErrors === void 0) {\n watchOptionsAndErrors = this.watchOptionsForInferredProjects;\n }\n if (typeAcquisition === void 0) {\n typeAcquisition = this.typeAcquisitionForInferredProjects;\n }\n watchOptionsAndErrors = watchOptionsAndErrors || void 0;\n const project = new InferredProject2(\n this,\n compilerOptions,\n watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions,\n projectRootPath,\n currentDirectory,\n typeAcquisition\n );\n project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n if (isSingleInferredProject) {\n this.inferredProjects.unshift(project);\n } else {\n this.inferredProjects.push(project);\n }\n return project;\n }\n /** @internal */\n getOrCreateScriptInfoNotOpenedByClient(uncheckedFileName, currentDirectory, hostToQueryFileExistsOn, deferredDeleteOk) {\n return this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(\n toNormalizedPath(uncheckedFileName),\n currentDirectory,\n /*scriptKind*/\n void 0,\n /*hasMixedContent*/\n void 0,\n hostToQueryFileExistsOn,\n deferredDeleteOk\n );\n }\n getScriptInfo(uncheckedFileName) {\n return this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName));\n }\n /** @internal */\n getScriptInfoOrConfig(uncheckedFileName) {\n const path = toNormalizedPath(uncheckedFileName);\n const info = this.getScriptInfoForNormalizedPath(path);\n if (info) return info;\n const configProject = this.configuredProjects.get(this.toPath(uncheckedFileName));\n return configProject && configProject.getCompilerOptions().configFile;\n }\n /** @internal */\n logErrorForScriptInfoNotFound(fileName) {\n const names = arrayFrom(\n mapDefinedIterator(\n this.filenameToScriptInfo.entries(),\n (entry) => entry[1].deferredDelete ? void 0 : entry\n ),\n ([path, scriptInfo]) => ({ path, fileName: scriptInfo.fileName })\n );\n this.logger.msg(`Could not find file ${JSON.stringify(fileName)}.\nAll files are: ${JSON.stringify(names)}`, \"Err\" /* Err */);\n }\n /**\n * Returns the projects that contain script info through SymLink\n * Note that this does not return projects in info.containingProjects\n *\n * @internal\n */\n getSymlinkedProjects(info) {\n let projects;\n if (this.realpathToScriptInfos) {\n const realpath = info.getRealpathIfDifferent();\n if (realpath) {\n forEach(this.realpathToScriptInfos.get(realpath), combineProjects);\n }\n forEach(this.realpathToScriptInfos.get(info.path), combineProjects);\n }\n return projects;\n function combineProjects(toAddInfo) {\n if (toAddInfo !== info) {\n for (const project of toAddInfo.containingProjects) {\n if (project.languageServiceEnabled && !project.isOrphan() && !project.getCompilerOptions().preserveSymlinks && !info.isAttached(project)) {\n if (!projects) {\n projects = createMultiMap();\n projects.add(toAddInfo.path, project);\n } else if (!forEachEntry(projects, (projs, path) => path === toAddInfo.path ? false : contains(projs, project))) {\n projects.add(toAddInfo.path, project);\n }\n }\n }\n }\n }\n }\n watchClosedScriptInfo(info) {\n Debug.assert(!info.fileWatcher);\n if (!info.isDynamicOrHasMixedContent() && (!this.globalCacheLocationDirectoryPath || !startsWith(info.path, this.globalCacheLocationDirectoryPath))) {\n const indexOfNodeModules = info.fileName.indexOf(\"/node_modules/\");\n if (!this.host.getModifiedTime || indexOfNodeModules === -1) {\n info.fileWatcher = this.watchFactory.watchFile(\n info.fileName,\n (_fileName, eventKind) => this.onSourceFileChanged(info, eventKind),\n 500 /* Medium */,\n this.hostConfiguration.watchOptions,\n WatchType.ClosedScriptInfo\n );\n } else {\n info.mTime = this.getModifiedTime(info);\n info.fileWatcher = this.watchClosedScriptInfoInNodeModules(info.fileName.substring(0, indexOfNodeModules));\n }\n }\n }\n createNodeModulesWatcher(dir, dirPath) {\n let watcher = this.watchFactory.watchDirectory(\n dir,\n (fileOrDirectory) => {\n var _a;\n const fileOrDirectoryPath = removeIgnoredPath(this.toPath(fileOrDirectory));\n if (!fileOrDirectoryPath) return;\n const basename = getBaseFileName(fileOrDirectoryPath);\n if (((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size) && (basename === \"package.json\" || basename === \"node_modules\")) {\n result.affectedModuleSpecifierCacheProjects.forEach((project) => {\n var _a2;\n (_a2 = project.getModuleSpecifierCache()) == null ? void 0 : _a2.clear();\n });\n }\n if (result.refreshScriptInfoRefCount) {\n if (dirPath === fileOrDirectoryPath) {\n this.refreshScriptInfosInDirectory(dirPath);\n } else {\n const info = this.filenameToScriptInfo.get(fileOrDirectoryPath);\n if (info) {\n if (isScriptInfoWatchedFromNodeModules(info)) {\n this.refreshScriptInfo(info);\n }\n } else if (!hasExtension(fileOrDirectoryPath)) {\n this.refreshScriptInfosInDirectory(fileOrDirectoryPath);\n }\n }\n }\n },\n 1 /* Recursive */,\n this.hostConfiguration.watchOptions,\n WatchType.NodeModules\n );\n const result = {\n refreshScriptInfoRefCount: 0,\n affectedModuleSpecifierCacheProjects: void 0,\n close: () => {\n var _a;\n if (watcher && !result.refreshScriptInfoRefCount && !((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size)) {\n watcher.close();\n watcher = void 0;\n this.nodeModulesWatchers.delete(dirPath);\n }\n }\n };\n this.nodeModulesWatchers.set(dirPath, result);\n return result;\n }\n /** @internal */\n watchPackageJsonsInNodeModules(dir, project) {\n var _a;\n const dirPath = this.toPath(dir);\n const watcher = this.nodeModulesWatchers.get(dirPath) || this.createNodeModulesWatcher(dir, dirPath);\n Debug.assert(!((_a = watcher.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.has(project)));\n (watcher.affectedModuleSpecifierCacheProjects || (watcher.affectedModuleSpecifierCacheProjects = /* @__PURE__ */ new Set())).add(project);\n return {\n close: () => {\n var _a2;\n (_a2 = watcher.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a2.delete(project);\n watcher.close();\n }\n };\n }\n watchClosedScriptInfoInNodeModules(dir) {\n const watchDir = dir + \"/node_modules\";\n const watchDirPath = this.toPath(watchDir);\n const watcher = this.nodeModulesWatchers.get(watchDirPath) || this.createNodeModulesWatcher(watchDir, watchDirPath);\n watcher.refreshScriptInfoRefCount++;\n return {\n close: () => {\n watcher.refreshScriptInfoRefCount--;\n watcher.close();\n }\n };\n }\n getModifiedTime(info) {\n return (this.host.getModifiedTime(info.fileName) || missingFileModifiedTime).getTime();\n }\n refreshScriptInfo(info) {\n const mTime = this.getModifiedTime(info);\n if (mTime !== info.mTime) {\n const eventKind = getFileWatcherEventKind(info.mTime, mTime);\n info.mTime = mTime;\n this.onSourceFileChanged(info, eventKind);\n }\n }\n refreshScriptInfosInDirectory(dir) {\n dir = dir + directorySeparator;\n this.filenameToScriptInfo.forEach((info) => {\n if (isScriptInfoWatchedFromNodeModules(info) && startsWith(info.path, dir)) {\n this.refreshScriptInfo(info);\n }\n });\n }\n stopWatchingScriptInfo(info) {\n if (info.fileWatcher) {\n info.fileWatcher.close();\n info.fileWatcher = void 0;\n }\n }\n getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(fileName, currentDirectory, scriptKind, hasMixedContent, hostToQueryFileExistsOn, deferredDeleteOk) {\n if (isRootedDiskPath(fileName) || isDynamicFileName(fileName)) {\n return this.getOrCreateScriptInfoWorker(\n fileName,\n currentDirectory,\n /*openedByClient*/\n false,\n /*fileContent*/\n void 0,\n scriptKind,\n !!hasMixedContent,\n hostToQueryFileExistsOn,\n deferredDeleteOk\n );\n }\n const info = this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName));\n if (info) {\n return info;\n }\n return void 0;\n }\n getOrCreateScriptInfoForNormalizedPath(fileName, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn) {\n return this.getOrCreateScriptInfoWorker(\n fileName,\n this.currentDirectory,\n openedByClient,\n fileContent,\n scriptKind,\n !!hasMixedContent,\n hostToQueryFileExistsOn,\n /*deferredDeleteOk*/\n false\n );\n }\n getOrCreateScriptInfoWorker(fileName, currentDirectory, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn, deferredDeleteOk) {\n Debug.assert(fileContent === void 0 || openedByClient, \"ScriptInfo needs to be opened by client to be able to set its user defined content\");\n const path = normalizedPathToPath(fileName, currentDirectory, this.toCanonicalFileName);\n let info = this.filenameToScriptInfo.get(path);\n if (!info) {\n const isDynamic = isDynamicFileName(fileName);\n Debug.assert(isRootedDiskPath(fileName) || isDynamic || openedByClient, \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory`);\n Debug.assert(!isRootedDiskPath(fileName) || this.currentDirectory === currentDirectory || !this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(fileName)), \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names`);\n Debug.assert(!isDynamic || this.currentDirectory === currentDirectory || this.useInferredProjectPerProjectRoot, \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath.`);\n if (!openedByClient && !isDynamic && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {\n return;\n }\n info = new ScriptInfo(this.host, fileName, scriptKind, hasMixedContent, path, this.filenameToScriptInfoVersion.get(path));\n this.filenameToScriptInfo.set(info.path, info);\n this.filenameToScriptInfoVersion.delete(info.path);\n if (!openedByClient) {\n this.watchClosedScriptInfo(info);\n } else if (!isRootedDiskPath(fileName) && (!isDynamic || this.currentDirectory !== currentDirectory)) {\n this.openFilesWithNonRootedDiskPath.set(this.toCanonicalFileName(fileName), info);\n }\n } else if (info.deferredDelete) {\n Debug.assert(!info.isDynamic);\n if (!openedByClient && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {\n return deferredDeleteOk ? info : void 0;\n }\n info.deferredDelete = void 0;\n }\n if (openedByClient) {\n this.stopWatchingScriptInfo(info);\n info.open(fileContent);\n if (hasMixedContent) {\n info.registerFileUpdate();\n }\n }\n return info;\n }\n /**\n * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred\n */\n getScriptInfoForNormalizedPath(fileName) {\n return !isRootedDiskPath(fileName) && this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName)) || this.getScriptInfoForPath(normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName));\n }\n getScriptInfoForPath(fileName) {\n const info = this.filenameToScriptInfo.get(fileName);\n return !info || !info.deferredDelete ? info : void 0;\n }\n /** @internal */\n getDocumentPositionMapper(project, generatedFileName, sourceFileName) {\n const declarationInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n generatedFileName,\n project.currentDirectory,\n this.host,\n /*deferredDeleteOk*/\n false\n );\n if (!declarationInfo) {\n if (sourceFileName) {\n project.addGeneratedFileWatch(generatedFileName, sourceFileName);\n }\n return void 0;\n }\n declarationInfo.getSnapshot();\n if (isString(declarationInfo.sourceMapFilePath)) {\n const sourceMapFileInfo2 = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath);\n if (sourceMapFileInfo2) {\n sourceMapFileInfo2.getSnapshot();\n if (sourceMapFileInfo2.documentPositionMapper !== void 0) {\n sourceMapFileInfo2.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo2.sourceInfos);\n return sourceMapFileInfo2.documentPositionMapper ? sourceMapFileInfo2.documentPositionMapper : void 0;\n }\n }\n declarationInfo.sourceMapFilePath = void 0;\n } else if (declarationInfo.sourceMapFilePath) {\n declarationInfo.sourceMapFilePath.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, declarationInfo.sourceMapFilePath.sourceInfos);\n return void 0;\n } else if (declarationInfo.sourceMapFilePath !== void 0) {\n return void 0;\n }\n let sourceMapFileInfo;\n let readMapFile = (mapFileName, mapFileNameFromDts) => {\n const mapInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n mapFileName,\n project.currentDirectory,\n this.host,\n /*deferredDeleteOk*/\n true\n );\n sourceMapFileInfo = mapInfo || mapFileNameFromDts;\n if (!mapInfo || mapInfo.deferredDelete) return void 0;\n const snap = mapInfo.getSnapshot();\n if (mapInfo.documentPositionMapper !== void 0) return mapInfo.documentPositionMapper;\n return getSnapshotText(snap);\n };\n const projectName = project.projectName;\n const documentPositionMapper = getDocumentPositionMapper(\n { getCanonicalFileName: this.toCanonicalFileName, log: (s) => this.logger.info(s), getSourceFileLike: (f) => this.getSourceFileLike(f, projectName, declarationInfo) },\n declarationInfo.fileName,\n declarationInfo.textStorage.getLineInfo(),\n readMapFile\n );\n readMapFile = void 0;\n if (sourceMapFileInfo) {\n if (!isString(sourceMapFileInfo)) {\n declarationInfo.sourceMapFilePath = sourceMapFileInfo.path;\n sourceMapFileInfo.declarationInfoPath = declarationInfo.path;\n if (!sourceMapFileInfo.deferredDelete) sourceMapFileInfo.documentPositionMapper = documentPositionMapper || false;\n sourceMapFileInfo.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo.sourceInfos);\n } else {\n declarationInfo.sourceMapFilePath = {\n watcher: this.addMissingSourceMapFile(\n project.currentDirectory === this.currentDirectory ? sourceMapFileInfo : getNormalizedAbsolutePath(sourceMapFileInfo, project.currentDirectory),\n declarationInfo.path\n ),\n sourceInfos: this.addSourceInfoToSourceMap(sourceFileName, project)\n };\n }\n } else {\n declarationInfo.sourceMapFilePath = false;\n }\n return documentPositionMapper;\n }\n addSourceInfoToSourceMap(sourceFileName, project, sourceInfos) {\n if (sourceFileName) {\n const sourceInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n sourceFileName,\n project.currentDirectory,\n project.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n );\n (sourceInfos || (sourceInfos = /* @__PURE__ */ new Set())).add(sourceInfo.path);\n }\n return sourceInfos;\n }\n addMissingSourceMapFile(mapFileName, declarationInfoPath) {\n const fileWatcher = this.watchFactory.watchFile(\n mapFileName,\n () => {\n const declarationInfo = this.getScriptInfoForPath(declarationInfoPath);\n if (declarationInfo && declarationInfo.sourceMapFilePath && !isString(declarationInfo.sourceMapFilePath)) {\n this.delayUpdateProjectGraphs(\n declarationInfo.containingProjects,\n /*clearSourceMapperCache*/\n true\n );\n this.delayUpdateSourceInfoProjects(declarationInfo.sourceMapFilePath.sourceInfos);\n declarationInfo.closeSourceMapFileWatcher();\n }\n },\n 2e3 /* High */,\n this.hostConfiguration.watchOptions,\n WatchType.MissingSourceMapFile\n );\n return fileWatcher;\n }\n /** @internal */\n getSourceFileLike(fileName, projectNameOrProject, declarationInfo) {\n const project = projectNameOrProject.projectName ? projectNameOrProject : this.findProject(projectNameOrProject);\n if (project) {\n const path = project.toPath(fileName);\n const sourceFile = project.getSourceFile(path);\n if (sourceFile && sourceFile.resolvedPath === path) return sourceFile;\n }\n const info = this.getOrCreateScriptInfoNotOpenedByClient(\n fileName,\n (project || this).currentDirectory,\n project ? project.directoryStructureHost : this.host,\n /*deferredDeleteOk*/\n false\n );\n if (!info) return void 0;\n if (declarationInfo && isString(declarationInfo.sourceMapFilePath) && info !== declarationInfo) {\n const sourceMapInfo = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath);\n if (sourceMapInfo) {\n (sourceMapInfo.sourceInfos ?? (sourceMapInfo.sourceInfos = /* @__PURE__ */ new Set())).add(info.path);\n }\n }\n if (info.cacheSourceFile) return info.cacheSourceFile.sourceFile;\n if (!info.sourceFileLike) {\n info.sourceFileLike = {\n get text() {\n Debug.fail(\"shouldnt need text\");\n return \"\";\n },\n getLineAndCharacterOfPosition: (pos) => {\n const lineOffset = info.positionToLineOffset(pos);\n return { line: lineOffset.line - 1, character: lineOffset.offset - 1 };\n },\n getPositionOfLineAndCharacter: (line, character, allowEdits) => info.lineOffsetToPosition(line + 1, character + 1, allowEdits)\n };\n }\n return info.sourceFileLike;\n }\n /** @internal */\n setPerformanceEventHandler(performanceEventHandler) {\n this.performanceEventHandler = performanceEventHandler;\n }\n setHostConfiguration(args) {\n var _a;\n if (args.file) {\n const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(args.file));\n if (info) {\n info.setOptions(convertFormatOptions(args.formatOptions), args.preferences);\n this.logger.info(`Host configuration update for file ${args.file}`);\n }\n } else {\n if (args.hostInfo !== void 0) {\n this.hostConfiguration.hostInfo = args.hostInfo;\n this.logger.info(`Host information ${args.hostInfo}`);\n }\n if (args.formatOptions) {\n this.hostConfiguration.formatCodeOptions = { ...this.hostConfiguration.formatCodeOptions, ...convertFormatOptions(args.formatOptions) };\n this.logger.info(\"Format host information updated\");\n }\n if (args.preferences) {\n const {\n lazyConfiguredProjectsFromExternalProject,\n includePackageJsonAutoImports,\n includeCompletionsForModuleExports\n } = this.hostConfiguration.preferences;\n this.hostConfiguration.preferences = { ...this.hostConfiguration.preferences, ...args.preferences };\n if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {\n this.externalProjectToConfiguredProjectMap.forEach(\n (projects) => projects.forEach((project) => {\n if (!project.deferredClose && !project.isClosed() && project.pendingUpdateLevel === 2 /* Full */ && !this.hasPendingProjectUpdate(project)) {\n project.updateGraph();\n }\n })\n );\n }\n if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports || !!includeCompletionsForModuleExports !== !!args.preferences.includeCompletionsForModuleExports) {\n this.forEachProject((project) => {\n project.onAutoImportProviderSettingsChanged();\n });\n }\n }\n if (args.extraFileExtensions) {\n this.hostConfiguration.extraFileExtensions = args.extraFileExtensions;\n this.reloadProjects();\n this.logger.info(\"Host file extension mappings updated\");\n }\n if (args.watchOptions) {\n const watchOptions = (_a = convertWatchOptions(args.watchOptions)) == null ? void 0 : _a.watchOptions;\n const substitution = handleWatchOptionsConfigDirTemplateSubstitution(watchOptions, this.currentDirectory);\n this.hostConfiguration.watchOptions = substitution;\n this.hostConfiguration.beforeSubstitution = substitution === watchOptions ? void 0 : watchOptions;\n this.logger.info(`Host watch options changed to ${JSON.stringify(this.hostConfiguration.watchOptions)}, it will be take effect for next watches.`);\n }\n }\n }\n /** @internal */\n getWatchOptions(project) {\n return this.getWatchOptionsFromProjectWatchOptions(project.getWatchOptions(), project.getCurrentDirectory());\n }\n getWatchOptionsFromProjectWatchOptions(projectOptions, basePath) {\n const hostWatchOptions = !this.hostConfiguration.beforeSubstitution ? this.hostConfiguration.watchOptions : handleWatchOptionsConfigDirTemplateSubstitution(\n this.hostConfiguration.beforeSubstitution,\n basePath\n );\n return projectOptions && hostWatchOptions ? { ...hostWatchOptions, ...projectOptions } : projectOptions || hostWatchOptions;\n }\n closeLog() {\n this.logger.close();\n }\n sendSourceFileChange(inPath) {\n this.filenameToScriptInfo.forEach((info) => {\n if (this.openFiles.has(info.path)) return;\n if (!info.fileWatcher) return;\n const eventKind = memoize(\n () => this.host.fileExists(info.fileName) ? info.deferredDelete ? 0 /* Created */ : 1 /* Changed */ : 2 /* Deleted */\n );\n if (inPath) {\n if (isScriptInfoWatchedFromNodeModules(info) || !info.path.startsWith(inPath)) return;\n if (eventKind() === 2 /* Deleted */ && info.deferredDelete) return;\n this.logger.info(`Invoking sourceFileChange on ${info.fileName}:: ${eventKind()}`);\n }\n this.onSourceFileChanged(\n info,\n eventKind()\n );\n });\n }\n /**\n * This function rebuilds the project for every file opened by the client\n * This does not reload contents of open files from disk. But we could do that if needed\n */\n reloadProjects() {\n this.logger.info(\"reload projects.\");\n this.sendSourceFileChange(\n /*inPath*/\n void 0\n );\n this.pendingProjectUpdates.forEach((_project, projectName) => {\n this.throttledOperations.cancel(projectName);\n this.pendingProjectUpdates.delete(projectName);\n });\n this.throttledOperations.cancel(ensureProjectForOpenFileSchedule);\n this.pendingOpenFileProjectUpdates = void 0;\n this.pendingEnsureProjectForOpenFiles = false;\n this.configFileExistenceInfoCache.forEach((info) => {\n if (info.config) {\n info.config.updateLevel = 2 /* Full */;\n info.config.cachedDirectoryStructureHost.clearCache();\n }\n });\n this.configFileForOpenFiles.clear();\n this.externalProjects.forEach((project) => {\n this.clearSemanticCache(project);\n project.updateGraph();\n });\n const reloadedConfiguredProjects = /* @__PURE__ */ new Map();\n const delayReloadedConfiguredProjects = /* @__PURE__ */ new Set();\n this.externalProjectToConfiguredProjectMap.forEach((projects, externalProjectName) => {\n const reason = `Reloading configured project in external project: ${externalProjectName}`;\n projects.forEach((project) => {\n if (this.getHostPreferences().lazyConfiguredProjectsFromExternalProject) {\n this.reloadConfiguredProjectOptimized(project, reason, reloadedConfiguredProjects);\n } else {\n this.reloadConfiguredProjectClearingSemanticCache(\n project,\n reason,\n reloadedConfiguredProjects\n );\n }\n });\n });\n this.openFiles.forEach((_projectRootPath, path) => {\n const info = this.getScriptInfoForPath(path);\n if (find(info.containingProjects, isExternalProject)) return;\n this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n info,\n 7 /* Reload */,\n reloadedConfiguredProjects,\n delayReloadedConfiguredProjects\n );\n });\n delayReloadedConfiguredProjects.forEach((p) => reloadedConfiguredProjects.set(p, 7 /* Reload */));\n this.inferredProjects.forEach((project) => this.clearSemanticCache(project));\n this.ensureProjectForOpenFiles();\n this.cleanupProjectsAndScriptInfos(\n reloadedConfiguredProjects,\n new Set(this.openFiles.keys()),\n new Set(this.externalProjectToConfiguredProjectMap.keys())\n );\n this.logger.info(\"After reloading projects..\");\n this.printProjects();\n }\n /**\n * Remove the root of inferred project if script info is part of another project\n */\n removeRootOfInferredProjectIfNowPartOfOtherProject(info) {\n Debug.assert(info.containingProjects.length > 0);\n const firstProject = info.containingProjects[0];\n if (!firstProject.isOrphan() && isInferredProject(firstProject) && firstProject.isRoot(info) && forEach(info.containingProjects, (p) => p !== firstProject && !p.isOrphan())) {\n firstProject.removeFile(\n info,\n /*fileExists*/\n true,\n /*detachFromProject*/\n true\n );\n }\n }\n /**\n * This function is to update the project structure for every inferred project.\n * It is called on the premise that all the configured projects are\n * up to date.\n * This will go through open files and assign them to inferred project if open file is not part of any other project\n * After that all the inferred project graphs are updated\n */\n ensureProjectForOpenFiles() {\n this.logger.info(\"Before ensureProjectForOpenFiles:\");\n this.printProjects();\n const pendingOpenFileProjectUpdates = this.pendingOpenFileProjectUpdates;\n this.pendingOpenFileProjectUpdates = void 0;\n pendingOpenFileProjectUpdates == null ? void 0 : pendingOpenFileProjectUpdates.forEach(\n (_config, path) => this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n this.getScriptInfoForPath(path),\n 5 /* Create */\n )\n );\n this.openFiles.forEach((projectRootPath, path) => {\n const info = this.getScriptInfoForPath(path);\n if (info.isOrphan()) {\n this.assignOrphanScriptInfoToInferredProject(info, projectRootPath);\n } else {\n this.removeRootOfInferredProjectIfNowPartOfOtherProject(info);\n }\n });\n this.pendingEnsureProjectForOpenFiles = false;\n this.inferredProjects.forEach(updateProjectIfDirty);\n this.logger.info(\"After ensureProjectForOpenFiles:\");\n this.printProjects();\n }\n /**\n * Open file whose contents is managed by the client\n * @param filename is absolute pathname\n * @param fileContent is a known version of the file content that is more up to date than the one on disk\n */\n openClientFile(fileName, fileContent, scriptKind, projectRootPath) {\n return this.openClientFileWithNormalizedPath(\n toNormalizedPath(fileName),\n fileContent,\n scriptKind,\n /*hasMixedContent*/\n false,\n projectRootPath ? toNormalizedPath(projectRootPath) : void 0\n );\n }\n /** @internal */\n getOriginalLocationEnsuringConfiguredProject(project, location) {\n const isSourceOfProjectReferenceRedirect = project.isSourceOfProjectReferenceRedirect(location.fileName);\n const originalLocation = isSourceOfProjectReferenceRedirect ? location : project.getSourceMapper().tryGetSourcePosition(location);\n if (!originalLocation) return void 0;\n const { fileName } = originalLocation;\n const scriptInfo = this.getScriptInfo(fileName);\n if (!scriptInfo && !this.host.fileExists(fileName)) return void 0;\n const originalFileInfo = { fileName: toNormalizedPath(fileName), path: this.toPath(fileName) };\n const configFileName = this.getConfigFileNameForFile(\n originalFileInfo,\n /*findFromCacheOnly*/\n false\n );\n if (!configFileName) return void 0;\n let configuredProject = this.findConfiguredProjectByProjectName(configFileName);\n if (!configuredProject) {\n if (project.getCompilerOptions().disableReferencedProjectLoad) {\n if (isSourceOfProjectReferenceRedirect) {\n return location;\n }\n return (scriptInfo == null ? void 0 : scriptInfo.containingProjects.length) ? originalLocation : location;\n }\n configuredProject = this.createConfiguredProject(configFileName, `Creating project for original file: ${originalFileInfo.fileName}${location !== originalLocation ? \" for location: \" + location.fileName : \"\"}`);\n }\n const result = this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(\n originalFileInfo,\n 5 /* Create */,\n updateProjectFoundUsingFind(\n configuredProject,\n 4 /* CreateOptimized */\n ),\n (project2) => `Creating project referenced in solution ${project2.projectName} to find possible configured project for original file: ${originalFileInfo.fileName}${location !== originalLocation ? \" for location: \" + location.fileName : \"\"}`\n );\n if (!result.defaultProject) return void 0;\n if (result.defaultProject === project) return originalLocation;\n addOriginalConfiguredProject(result.defaultProject);\n const originalScriptInfo = this.getScriptInfo(fileName);\n if (!originalScriptInfo || !originalScriptInfo.containingProjects.length) return void 0;\n originalScriptInfo.containingProjects.forEach((project2) => {\n if (isConfiguredProject(project2)) {\n addOriginalConfiguredProject(project2);\n }\n });\n return originalLocation;\n function addOriginalConfiguredProject(originalProject) {\n (project.originalConfiguredProjects ?? (project.originalConfiguredProjects = /* @__PURE__ */ new Set())).add(originalProject.canonicalConfigFilePath);\n }\n }\n /** @internal */\n fileExists(fileName) {\n return !!this.getScriptInfoForNormalizedPath(fileName) || this.host.fileExists(fileName);\n }\n findExternalProjectContainingOpenScriptInfo(info) {\n return find(this.externalProjects, (proj) => {\n updateProjectIfDirty(proj);\n return proj.containsScriptInfo(info);\n });\n }\n getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {\n const info = this.getOrCreateScriptInfoWorker(\n fileName,\n projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory,\n /*openedByClient*/\n true,\n fileContent,\n scriptKind,\n !!hasMixedContent,\n /*hostToQueryFileExistsOn*/\n void 0,\n /*deferredDeleteOk*/\n true\n );\n this.openFiles.set(info.path, projectRootPath);\n return info;\n }\n assignProjectToOpenedScriptInfo(info) {\n let configFileName;\n let configFileErrors;\n const project = this.findExternalProjectContainingOpenScriptInfo(info);\n let retainProjects;\n let sentConfigDiag;\n if (!project && this.serverMode === 0 /* Semantic */) {\n const result = this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n info,\n 5 /* Create */\n );\n if (result) {\n retainProjects = result.seenProjects;\n sentConfigDiag = result.sentConfigDiag;\n if (result.defaultProject) {\n configFileName = result.defaultProject.getConfigFilePath();\n configFileErrors = result.defaultProject.getAllProjectErrors();\n }\n }\n }\n info.containingProjects.forEach(updateProjectIfDirty);\n if (info.isOrphan()) {\n retainProjects == null ? void 0 : retainProjects.forEach((kind, project2) => {\n if (kind !== 4 /* CreateOptimized */ && !sentConfigDiag.has(project2)) this.sendConfigFileDiagEvent(\n project2,\n info.fileName,\n /*force*/\n true\n );\n });\n Debug.assert(this.openFiles.has(info.path));\n this.assignOrphanScriptInfoToInferredProject(info, this.openFiles.get(info.path));\n }\n Debug.assert(!info.isOrphan());\n return { configFileName, configFileErrors, retainProjects };\n }\n /**\n * Depending on kind\n * - Find the configuedProject and return it - if allowDeferredClosed is set it will find the deferredClosed project as well\n * - Create - if the project doesnt exist, it creates one as well. If not delayLoad, the project is updated (with triggerFile if passed)\n * - Reload - if the project doesnt exist, it creates one. If not delayLoad, the project is reloaded clearing semantic cache\n * @internal\n */\n findCreateOrReloadConfiguredProject(configFileName, kind, reason, allowDeferredClosed, triggerFile, reloadedProjects, delayLoad, delayReloadedConfiguredProjects, projectForConfigFile) {\n let project = projectForConfigFile ?? this.findConfiguredProjectByProjectName(configFileName, allowDeferredClosed);\n let sentConfigFileDiag = false;\n let configFileExistenceInfo;\n switch (kind) {\n case 0 /* FindOptimized */:\n case 1 /* Find */:\n case 3 /* CreateReplay */:\n if (!project) return;\n break;\n case 2 /* CreateReplayOptimized */:\n if (!project) return;\n configFileExistenceInfo = configFileExistenceInfoForOptimizedReplay(project);\n break;\n case 4 /* CreateOptimized */:\n case 5 /* Create */:\n project ?? (project = this.createConfiguredProject(configFileName, reason));\n if (!delayLoad) {\n ({ sentConfigFileDiag, configFileExistenceInfo } = updateProjectFoundUsingFind(\n project,\n kind,\n triggerFile\n ));\n }\n break;\n case 6 /* ReloadOptimized */:\n project ?? (project = this.createConfiguredProject(configFileName, reloadReason(reason)));\n project.projectService.reloadConfiguredProjectOptimized(project, reason, reloadedProjects);\n configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n if (configFileExistenceInfo) break;\n // falls through\n case 7 /* Reload */:\n project ?? (project = this.createConfiguredProject(configFileName, reloadReason(reason)));\n sentConfigFileDiag = !delayReloadedConfiguredProjects && this.reloadConfiguredProjectClearingSemanticCache(project, reason, reloadedProjects);\n if (delayReloadedConfiguredProjects && !delayReloadedConfiguredProjects.has(project) && !reloadedProjects.has(project)) {\n this.setProjectForReload(project, 2 /* Full */, reason);\n delayReloadedConfiguredProjects.add(project);\n }\n break;\n default:\n Debug.assertNever(kind);\n }\n return { project, sentConfigFileDiag, configFileExistenceInfo, reason };\n }\n /**\n * Finds the default configured project for given info\n * For any tsconfig found, it looks into that project, if not then all its references,\n * The search happens for all tsconfigs till projectRootPath\n */\n tryFindDefaultConfiguredProjectForOpenScriptInfo(info, kind, allowDeferredClosed, reloadedProjects) {\n const configFileName = this.getConfigFileNameForFile(info, kind <= 3 /* CreateReplay */);\n if (!configFileName) return;\n const optimizedKind = toConfiguredProjectLoadOptimized(kind);\n const result = this.findCreateOrReloadConfiguredProject(\n configFileName,\n optimizedKind,\n fileOpenReason(info),\n allowDeferredClosed,\n info.fileName,\n reloadedProjects\n );\n return result && this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(\n info,\n kind,\n result,\n (project) => `Creating project referenced in solution ${project.projectName} to find possible configured project for ${info.fileName} to open`,\n allowDeferredClosed,\n reloadedProjects\n );\n }\n isMatchedByConfig(configFileName, config, info) {\n if (config.fileNames.some((rootName) => this.toPath(rootName) === info.path)) return true;\n if (isSupportedSourceFileName(\n info.fileName,\n config.options,\n this.hostConfiguration.extraFileExtensions\n )) return false;\n const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = config.options.configFile.configFileSpecs;\n const basePath = toNormalizedPath(getNormalizedAbsolutePath(getDirectoryPath(configFileName), this.currentDirectory));\n if (validatedFilesSpec == null ? void 0 : validatedFilesSpec.some((fileSpec) => this.toPath(getNormalizedAbsolutePath(fileSpec, basePath)) === info.path)) return true;\n if (!(validatedIncludeSpecs == null ? void 0 : validatedIncludeSpecs.length)) return false;\n if (matchesExcludeWorker(\n info.fileName,\n validatedExcludeSpecs,\n this.host.useCaseSensitiveFileNames,\n this.currentDirectory,\n basePath\n )) return false;\n return validatedIncludeSpecs == null ? void 0 : validatedIncludeSpecs.some((includeSpec) => {\n const pattern = getPatternFromSpec(includeSpec, basePath, \"files\");\n return !!pattern && getRegexFromPattern(`(${pattern})$`, this.host.useCaseSensitiveFileNames).test(info.fileName);\n });\n }\n tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(info, kind, initialConfigResult, referencedProjectReason, allowDeferredClosed, reloadedProjects) {\n const infoIsOpenScriptInfo = isOpenScriptInfo(info);\n const optimizedKind = toConfiguredProjectLoadOptimized(kind);\n const seenProjects = /* @__PURE__ */ new Map();\n let seenConfigs;\n const sentConfigDiag = /* @__PURE__ */ new Set();\n let defaultProject;\n let possiblyDefault;\n let tsconfigOfDefault;\n let tsconfigOfPossiblyDefault;\n tryFindDefaultConfiguredProject(initialConfigResult);\n return {\n defaultProject: defaultProject ?? possiblyDefault,\n tsconfigProject: tsconfigOfDefault ?? tsconfigOfPossiblyDefault,\n sentConfigDiag,\n seenProjects,\n seenConfigs\n };\n function tryFindDefaultConfiguredProject(result) {\n return isDefaultProjectOptimized(result, result.project) ?? tryFindDefaultConfiguredProjectFromReferences(result.project) ?? tryFindDefaultConfiguredProjectFromAncestor(result.project);\n }\n function isDefaultConfigFileExistenceInfo(configFileExistenceInfo, project, childConfigName, reason, tsconfigProject, canonicalConfigFilePath) {\n if (project) {\n if (seenProjects.has(project)) return;\n seenProjects.set(project, optimizedKind);\n } else {\n if (seenConfigs == null ? void 0 : seenConfigs.has(canonicalConfigFilePath)) return;\n (seenConfigs ?? (seenConfigs = /* @__PURE__ */ new Set())).add(canonicalConfigFilePath);\n }\n if (!tsconfigProject.projectService.isMatchedByConfig(\n childConfigName,\n configFileExistenceInfo.config.parsedCommandLine,\n info\n )) {\n if (tsconfigProject.languageServiceEnabled) {\n tsconfigProject.projectService.watchWildcards(\n childConfigName,\n configFileExistenceInfo,\n tsconfigProject\n );\n }\n return;\n }\n const result = project ? updateProjectFoundUsingFind(\n project,\n kind,\n info.fileName,\n reason,\n reloadedProjects\n ) : tsconfigProject.projectService.findCreateOrReloadConfiguredProject(\n childConfigName,\n kind,\n reason,\n allowDeferredClosed,\n info.fileName,\n reloadedProjects\n );\n if (!result) {\n Debug.assert(kind === 3 /* CreateReplay */);\n return void 0;\n }\n seenProjects.set(result.project, optimizedKind);\n if (result.sentConfigFileDiag) sentConfigDiag.add(result.project);\n return isDefaultProject(result.project, tsconfigProject);\n }\n function isDefaultProject(project, tsconfigProject) {\n if (seenProjects.get(project) === kind) return;\n seenProjects.set(project, kind);\n const scriptInfo = infoIsOpenScriptInfo ? info : project.projectService.getScriptInfo(info.fileName);\n const projectWithInfo = scriptInfo && project.containsScriptInfo(scriptInfo);\n if (projectWithInfo && !project.isSourceOfProjectReferenceRedirect(scriptInfo.path)) {\n tsconfigOfDefault = tsconfigProject;\n return defaultProject = project;\n }\n if (!possiblyDefault && infoIsOpenScriptInfo && projectWithInfo) {\n tsconfigOfPossiblyDefault = tsconfigProject;\n possiblyDefault = project;\n }\n }\n function isDefaultProjectOptimized(result, tsconfigProject) {\n if (result.sentConfigFileDiag) sentConfigDiag.add(result.project);\n return result.configFileExistenceInfo ? isDefaultConfigFileExistenceInfo(\n result.configFileExistenceInfo,\n result.project,\n toNormalizedPath(result.project.getConfigFilePath()),\n result.reason,\n result.project,\n result.project.canonicalConfigFilePath\n ) : isDefaultProject(result.project, tsconfigProject);\n }\n function tryFindDefaultConfiguredProjectFromReferences(project) {\n return project.parsedCommandLine && forEachResolvedProjectReferenceProjectLoad(\n project,\n project.parsedCommandLine,\n isDefaultConfigFileExistenceInfo,\n optimizedKind,\n referencedProjectReason(project),\n allowDeferredClosed,\n reloadedProjects\n );\n }\n function tryFindDefaultConfiguredProjectFromAncestor(project) {\n return infoIsOpenScriptInfo ? forEachAncestorProjectLoad(\n // If not in referenced projects, try ancestors and its references\n info,\n project,\n tryFindDefaultConfiguredProject,\n optimizedKind,\n `Creating possible configured project for ${info.fileName} to open`,\n allowDeferredClosed,\n reloadedProjects,\n /*searchOnlyPotentialSolution*/\n false\n ) : void 0;\n }\n }\n tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(info, kind, reloadedProjects, delayReloadedConfiguredProjects) {\n const allowDeferredClosed = kind === 1 /* Find */;\n const result = this.tryFindDefaultConfiguredProjectForOpenScriptInfo(\n info,\n kind,\n allowDeferredClosed,\n reloadedProjects\n );\n if (!result) return;\n const { defaultProject, tsconfigProject, seenProjects } = result;\n if (defaultProject) {\n forEachAncestorProjectLoad(\n info,\n tsconfigProject,\n (ancestor) => {\n seenProjects.set(ancestor.project, kind);\n },\n kind,\n `Creating project possibly referencing default composite project ${defaultProject.getProjectName()} of open file ${info.fileName}`,\n allowDeferredClosed,\n reloadedProjects,\n /*searchOnlyPotentialSolution*/\n true,\n delayReloadedConfiguredProjects\n );\n }\n return result;\n }\n /** @internal */\n loadAncestorProjectTree(forProjects) {\n forProjects ?? (forProjects = new Set(\n mapDefinedIterator(this.configuredProjects.entries(), ([key, project]) => !project.initialLoadPending ? key : void 0)\n ));\n const seenProjects = /* @__PURE__ */ new Set();\n const currentConfiguredProjects = arrayFrom(this.configuredProjects.values());\n for (const project of currentConfiguredProjects) {\n if (forEachPotentialProjectReference(project, (potentialRefPath) => forProjects.has(potentialRefPath))) {\n updateProjectIfDirty(project);\n }\n this.ensureProjectChildren(project, forProjects, seenProjects);\n }\n }\n ensureProjectChildren(project, forProjects, seenProjects) {\n var _a;\n if (!tryAddToSet(seenProjects, project.canonicalConfigFilePath)) return;\n if (project.getCompilerOptions().disableReferencedProjectLoad) return;\n const children = (_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences();\n if (!children) return;\n for (const child of children) {\n if (!child) continue;\n const referencedProject = forEachResolvedProjectReference(child.references, (ref) => forProjects.has(ref.sourceFile.path) ? ref : void 0);\n if (!referencedProject) continue;\n const configFileName = toNormalizedPath(child.sourceFile.fileName);\n const childProject = this.findConfiguredProjectByProjectName(configFileName) ?? this.createConfiguredProject(\n configFileName,\n `Creating project referenced by : ${project.projectName} as it references project ${referencedProject.sourceFile.fileName}`\n );\n updateProjectIfDirty(childProject);\n this.ensureProjectChildren(childProject, forProjects, seenProjects);\n }\n }\n cleanupConfiguredProjects(toRetainConfiguredProjects, externalProjectsRetainingConfiguredProjects, openFilesWithRetainedConfiguredProject) {\n this.getOrphanConfiguredProjects(\n toRetainConfiguredProjects,\n openFilesWithRetainedConfiguredProject,\n externalProjectsRetainingConfiguredProjects\n ).forEach((project) => this.removeProject(project));\n }\n cleanupProjectsAndScriptInfos(toRetainConfiguredProjects, openFilesWithRetainedConfiguredProject, externalProjectsRetainingConfiguredProjects) {\n this.cleanupConfiguredProjects(\n toRetainConfiguredProjects,\n externalProjectsRetainingConfiguredProjects,\n openFilesWithRetainedConfiguredProject\n );\n for (const inferredProject of this.inferredProjects.slice()) {\n if (inferredProject.isOrphan()) {\n this.removeProject(inferredProject);\n }\n }\n this.removeOrphanScriptInfos();\n }\n tryInvokeWildCardDirectories(info) {\n this.configFileExistenceInfoCache.forEach((configFileExistenceInfo, config) => {\n var _a, _b;\n if (!((_a = configFileExistenceInfo.config) == null ? void 0 : _a.parsedCommandLine) || contains(\n configFileExistenceInfo.config.parsedCommandLine.fileNames,\n info.fileName,\n !this.host.useCaseSensitiveFileNames ? equateStringsCaseInsensitive : equateStringsCaseSensitive\n )) {\n return;\n }\n (_b = configFileExistenceInfo.config.watchedDirectories) == null ? void 0 : _b.forEach((watcher, directory) => {\n if (containsPath(directory, info.fileName, !this.host.useCaseSensitiveFileNames)) {\n this.logger.info(`Invoking ${config}:: wildcard for open scriptInfo:: ${info.fileName}`);\n this.onWildCardDirectoryWatcherInvoke(\n directory,\n config,\n configFileExistenceInfo.config,\n watcher.watcher,\n info.fileName\n );\n }\n });\n });\n }\n openClientFileWithNormalizedPath(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {\n const existing = this.getScriptInfoForPath(normalizedPathToPath(\n fileName,\n projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory,\n this.toCanonicalFileName\n ));\n const info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath);\n if (!existing && info && !info.isDynamic) this.tryInvokeWildCardDirectories(info);\n const { retainProjects, ...result } = this.assignProjectToOpenedScriptInfo(info);\n this.cleanupProjectsAndScriptInfos(\n retainProjects,\n /* @__PURE__ */ new Set([info.path]),\n /*externalProjectsRetainingConfiguredProjects*/\n void 0\n );\n this.telemetryOnOpenFile(info);\n this.printProjects();\n return result;\n }\n /** @internal */\n getOrphanConfiguredProjects(toRetainConfiguredProjects, openFilesWithRetainedConfiguredProject, externalProjectsRetainingConfiguredProjects) {\n const toRemoveConfiguredProjects = new Set(this.configuredProjects.values());\n const markOriginalProjectsAsUsed = (project) => {\n if (project.originalConfiguredProjects && (isConfiguredProject(project) || !project.isOrphan())) {\n project.originalConfiguredProjects.forEach(\n (_value, configuredProjectPath) => {\n const project2 = this.getConfiguredProjectByCanonicalConfigFilePath(configuredProjectPath);\n return project2 && retainConfiguredProject(project2);\n }\n );\n }\n };\n toRetainConfiguredProjects == null ? void 0 : toRetainConfiguredProjects.forEach((_, project) => retainConfiguredProject(project));\n if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n this.inferredProjects.forEach(markOriginalProjectsAsUsed);\n this.externalProjects.forEach(markOriginalProjectsAsUsed);\n this.externalProjectToConfiguredProjectMap.forEach((projects, externalProjectName) => {\n if (!(externalProjectsRetainingConfiguredProjects == null ? void 0 : externalProjectsRetainingConfiguredProjects.has(externalProjectName))) {\n projects.forEach(retainConfiguredProject);\n }\n });\n if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n forEachEntry(this.openFiles, (_projectRootPath, path) => {\n if (openFilesWithRetainedConfiguredProject == null ? void 0 : openFilesWithRetainedConfiguredProject.has(path)) return;\n const info = this.getScriptInfoForPath(path);\n if (find(info.containingProjects, isExternalProject)) return;\n const result = this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n info,\n 1 /* Find */\n );\n if (result == null ? void 0 : result.defaultProject) {\n result == null ? void 0 : result.seenProjects.forEach((_, project) => retainConfiguredProject(project));\n if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n }\n });\n if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n forEachEntry(this.configuredProjects, (project) => {\n if (toRemoveConfiguredProjects.has(project)) {\n if (isPendingUpdate(project) || forEachReferencedProject(project, isRetained)) {\n retainConfiguredProject(project);\n if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n }\n }\n });\n return toRemoveConfiguredProjects;\n function isRetained(project) {\n return !toRemoveConfiguredProjects.has(project) || isPendingUpdate(project);\n }\n function isPendingUpdate(project) {\n var _a, _b;\n return (project.deferredClose || project.projectService.hasPendingProjectUpdate(project)) && !!((_b = (_a = project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath)) == null ? void 0 : _a.openFilesImpactedByConfigFile) == null ? void 0 : _b.size);\n }\n function retainConfiguredProject(project) {\n if (!toRemoveConfiguredProjects.delete(project)) return;\n markOriginalProjectsAsUsed(project);\n forEachReferencedProject(project, retainConfiguredProject);\n }\n }\n removeOrphanScriptInfos() {\n const toRemoveScriptInfos = new Map(this.filenameToScriptInfo);\n this.filenameToScriptInfo.forEach((info) => {\n if (info.deferredDelete) return;\n if (!info.isScriptOpen() && info.isOrphan() && !scriptInfoIsContainedByDeferredClosedProject(info) && !scriptInfoIsContainedByBackgroundProject(info)) {\n if (!info.sourceMapFilePath) return;\n let sourceInfos;\n if (isString(info.sourceMapFilePath)) {\n const sourceMapInfo = this.filenameToScriptInfo.get(info.sourceMapFilePath);\n sourceInfos = sourceMapInfo == null ? void 0 : sourceMapInfo.sourceInfos;\n } else {\n sourceInfos = info.sourceMapFilePath.sourceInfos;\n }\n if (!sourceInfos) return;\n if (!forEachKey(sourceInfos, (path) => {\n const info2 = this.getScriptInfoForPath(path);\n return !!info2 && (info2.isScriptOpen() || !info2.isOrphan());\n })) {\n return;\n }\n }\n toRemoveScriptInfos.delete(info.path);\n if (info.sourceMapFilePath) {\n let sourceInfos;\n if (isString(info.sourceMapFilePath)) {\n const sourceMapInfo = this.filenameToScriptInfo.get(info.sourceMapFilePath);\n if (sourceMapInfo == null ? void 0 : sourceMapInfo.deferredDelete) {\n info.sourceMapFilePath = {\n watcher: this.addMissingSourceMapFile(sourceMapInfo.fileName, info.path),\n sourceInfos: sourceMapInfo.sourceInfos\n };\n } else {\n toRemoveScriptInfos.delete(info.sourceMapFilePath);\n }\n sourceInfos = sourceMapInfo == null ? void 0 : sourceMapInfo.sourceInfos;\n } else {\n sourceInfos = info.sourceMapFilePath.sourceInfos;\n }\n if (sourceInfos) {\n sourceInfos.forEach((_value, path) => toRemoveScriptInfos.delete(path));\n }\n }\n });\n toRemoveScriptInfos.forEach((info) => this.deleteScriptInfo(info));\n }\n telemetryOnOpenFile(scriptInfo) {\n if (this.serverMode !== 0 /* Semantic */ || !this.eventHandler || !scriptInfo.isJavaScript() || !addToSeen(this.allJsFilesForOpenFileTelemetry, scriptInfo.path)) {\n return;\n }\n const project = this.ensureDefaultProjectForFile(scriptInfo);\n if (!project.languageServiceEnabled) {\n return;\n }\n const sourceFile = project.getSourceFile(scriptInfo.path);\n const checkJs = !!sourceFile && !!sourceFile.checkJsDirective;\n this.eventHandler({ eventName: OpenFileInfoTelemetryEvent, data: { info: { checkJs } } });\n }\n closeClientFile(uncheckedFileName, skipAssignOrphanScriptInfosToInferredProject) {\n const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName));\n const result = info ? this.closeOpenFile(info, skipAssignOrphanScriptInfosToInferredProject) : false;\n if (!skipAssignOrphanScriptInfosToInferredProject) {\n this.printProjects();\n }\n return result;\n }\n collectChanges(lastKnownProjectVersions, currentProjects, includeProjectReferenceRedirectInfo, result) {\n for (const proj of currentProjects) {\n const knownProject = find(lastKnownProjectVersions, (p) => p.projectName === proj.getProjectName());\n result.push(proj.getChangesSinceVersion(knownProject && knownProject.version, includeProjectReferenceRedirectInfo));\n }\n }\n /** @internal */\n synchronizeProjectList(knownProjects, includeProjectReferenceRedirectInfo) {\n const files = [];\n this.collectChanges(knownProjects, this.externalProjects, includeProjectReferenceRedirectInfo, files);\n this.collectChanges(knownProjects, mapDefinedIterator(this.configuredProjects.values(), (p) => p.deferredClose ? void 0 : p), includeProjectReferenceRedirectInfo, files);\n this.collectChanges(knownProjects, this.inferredProjects, includeProjectReferenceRedirectInfo, files);\n return files;\n }\n /** @internal */\n applyChangesInOpenFiles(openFiles, changedFiles, closedFiles) {\n let existingOpenScriptInfos;\n let openScriptInfos;\n let assignOrphanScriptInfosToInferredProject = false;\n if (openFiles) {\n for (const file of openFiles) {\n (existingOpenScriptInfos ?? (existingOpenScriptInfos = [])).push(this.getScriptInfoForPath(normalizedPathToPath(\n toNormalizedPath(file.fileName),\n file.projectRootPath ? this.getNormalizedAbsolutePath(file.projectRootPath) : this.currentDirectory,\n this.toCanonicalFileName\n )));\n const info = this.getOrCreateOpenScriptInfo(\n toNormalizedPath(file.fileName),\n file.content,\n tryConvertScriptKindName(file.scriptKind),\n file.hasMixedContent,\n file.projectRootPath ? toNormalizedPath(file.projectRootPath) : void 0\n );\n (openScriptInfos || (openScriptInfos = [])).push(info);\n }\n }\n if (changedFiles) {\n for (const file of changedFiles) {\n const scriptInfo = this.getScriptInfo(file.fileName);\n Debug.assert(!!scriptInfo);\n this.applyChangesToFile(scriptInfo, file.changes);\n }\n }\n if (closedFiles) {\n for (const file of closedFiles) {\n assignOrphanScriptInfosToInferredProject = this.closeClientFile(\n file,\n /*skipAssignOrphanScriptInfosToInferredProject*/\n true\n ) || assignOrphanScriptInfosToInferredProject;\n }\n }\n let retainProjects;\n forEach(\n existingOpenScriptInfos,\n (existing, index) => !existing && openScriptInfos[index] && !openScriptInfos[index].isDynamic ? this.tryInvokeWildCardDirectories(openScriptInfos[index]) : void 0\n );\n openScriptInfos == null ? void 0 : openScriptInfos.forEach(\n (info) => {\n var _a;\n return (_a = this.assignProjectToOpenedScriptInfo(info).retainProjects) == null ? void 0 : _a.forEach(\n (kind, p) => (retainProjects ?? (retainProjects = /* @__PURE__ */ new Map())).set(p, kind)\n );\n }\n );\n if (assignOrphanScriptInfosToInferredProject) {\n this.assignOrphanScriptInfosToInferredProject();\n }\n if (openScriptInfos) {\n this.cleanupProjectsAndScriptInfos(\n retainProjects,\n new Set(openScriptInfos.map((info) => info.path)),\n /*externalProjectsRetainingConfiguredProjects*/\n void 0\n );\n openScriptInfos.forEach((info) => this.telemetryOnOpenFile(info));\n this.printProjects();\n } else if (length(closedFiles)) {\n this.printProjects();\n }\n }\n /** @internal */\n applyChangesToFile(scriptInfo, changes) {\n for (const change of changes) {\n scriptInfo.editContent(change.span.start, change.span.start + change.span.length, change.newText);\n }\n }\n // eslint-disable-line @typescript-eslint/unified-signatures\n closeExternalProject(uncheckedFileName, cleanupAfter) {\n const fileName = toNormalizedPath(uncheckedFileName);\n const projects = this.externalProjectToConfiguredProjectMap.get(fileName);\n if (projects) {\n this.externalProjectToConfiguredProjectMap.delete(fileName);\n } else {\n const externalProject = this.findExternalProjectByProjectName(uncheckedFileName);\n if (externalProject) {\n this.removeProject(externalProject);\n }\n }\n if (cleanupAfter) {\n this.cleanupConfiguredProjects();\n this.printProjects();\n }\n }\n openExternalProjects(projects) {\n const projectsToClose = new Set(this.externalProjects.map((p) => p.getProjectName()));\n this.externalProjectToConfiguredProjectMap.forEach((_, externalProjectName) => projectsToClose.add(externalProjectName));\n for (const externalProject of projects) {\n this.openExternalProject(\n externalProject,\n /*cleanupAfter*/\n false\n );\n projectsToClose.delete(externalProject.projectFileName);\n }\n projectsToClose.forEach((externalProjectName) => this.closeExternalProject(\n externalProjectName,\n /*cleanupAfter*/\n false\n ));\n this.cleanupConfiguredProjects();\n this.printProjects();\n }\n static escapeFilenameForRegex(filename) {\n return filename.replace(this.filenameEscapeRegexp, \"\\\\$&\");\n }\n resetSafeList() {\n this.safelist = defaultTypeSafeList;\n }\n applySafeList(proj) {\n const typeAcquisition = proj.typeAcquisition;\n Debug.assert(!!typeAcquisition, \"proj.typeAcquisition should be set by now\");\n const result = this.applySafeListWorker(proj, proj.rootFiles, typeAcquisition);\n return (result == null ? void 0 : result.excludedFiles) ?? [];\n }\n applySafeListWorker(proj, rootFiles, typeAcquisition) {\n if (typeAcquisition.enable === false || typeAcquisition.disableFilenameBasedTypeAcquisition) {\n return void 0;\n }\n const typeAcqInclude = typeAcquisition.include || (typeAcquisition.include = []);\n const excludeRules = [];\n const normalizedNames = rootFiles.map((f) => normalizeSlashes(f.fileName));\n for (const name of Object.keys(this.safelist)) {\n const rule2 = this.safelist[name];\n for (const root of normalizedNames) {\n if (rule2.match.test(root)) {\n this.logger.info(`Excluding files based on rule ${name} matching file '${root}'`);\n if (rule2.types) {\n for (const type of rule2.types) {\n if (!typeAcqInclude.includes(type)) {\n typeAcqInclude.push(type);\n }\n }\n }\n if (rule2.exclude) {\n for (const exclude of rule2.exclude) {\n const processedRule = root.replace(rule2.match, (...groups) => {\n return exclude.map((groupNumberOrString) => {\n if (typeof groupNumberOrString === \"number\") {\n if (!isString(groups[groupNumberOrString])) {\n this.logger.info(`Incorrect RegExp specification in safelist rule ${name} - not enough groups`);\n return \"\\\\*\";\n }\n return _ProjectService.escapeFilenameForRegex(groups[groupNumberOrString]);\n }\n return groupNumberOrString;\n }).join(\"\");\n });\n if (!excludeRules.includes(processedRule)) {\n excludeRules.push(processedRule);\n }\n }\n } else {\n const escaped = _ProjectService.escapeFilenameForRegex(root);\n if (!excludeRules.includes(escaped)) {\n excludeRules.push(escaped);\n }\n }\n }\n }\n }\n const excludeRegexes = excludeRules.map((e) => new RegExp(e, \"i\"));\n let filesToKeep;\n let excludedFiles;\n for (let i = 0; i < rootFiles.length; i++) {\n if (excludeRegexes.some((re) => re.test(normalizedNames[i]))) {\n addExcludedFile(i);\n } else {\n if (typeAcquisition.enable) {\n const baseName = getBaseFileName(toFileNameLowerCase(normalizedNames[i]));\n if (fileExtensionIs(baseName, \"js\")) {\n const inferredTypingName = removeFileExtension(baseName);\n const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName);\n const typeName = this.legacySafelist.get(cleanedTypingName);\n if (typeName !== void 0) {\n this.logger.info(`Excluded '${normalizedNames[i]}' because it matched ${cleanedTypingName} from the legacy safelist`);\n addExcludedFile(i);\n if (!typeAcqInclude.includes(typeName)) {\n typeAcqInclude.push(typeName);\n }\n continue;\n }\n }\n }\n if (/^.+[.-]min\\.js$/.test(normalizedNames[i])) {\n addExcludedFile(i);\n } else {\n filesToKeep == null ? void 0 : filesToKeep.push(rootFiles[i]);\n }\n }\n }\n return excludedFiles ? {\n rootFiles: filesToKeep,\n excludedFiles\n } : void 0;\n function addExcludedFile(index) {\n if (!excludedFiles) {\n Debug.assert(!filesToKeep);\n filesToKeep = rootFiles.slice(0, index);\n excludedFiles = [];\n }\n excludedFiles.push(normalizedNames[index]);\n }\n }\n // eslint-disable-line @typescript-eslint/unified-signatures\n openExternalProject(proj, cleanupAfter) {\n const existingExternalProject = this.findExternalProjectByProjectName(proj.projectFileName);\n let configuredProjects;\n let rootFiles = [];\n for (const file of proj.rootFiles) {\n const normalized = toNormalizedPath(file.fileName);\n if (getBaseConfigFileName(normalized)) {\n if (this.serverMode === 0 /* Semantic */ && this.host.fileExists(normalized)) {\n let project = this.findConfiguredProjectByProjectName(normalized);\n if (!project) {\n project = this.createConfiguredProject(normalized, `Creating configured project in external project: ${proj.projectFileName}`);\n if (!this.getHostPreferences().lazyConfiguredProjectsFromExternalProject) project.updateGraph();\n }\n (configuredProjects ?? (configuredProjects = /* @__PURE__ */ new Set())).add(project);\n Debug.assert(!project.isClosed());\n }\n } else {\n rootFiles.push(file);\n }\n }\n if (configuredProjects) {\n this.externalProjectToConfiguredProjectMap.set(proj.projectFileName, configuredProjects);\n if (existingExternalProject) this.removeProject(existingExternalProject);\n } else {\n this.externalProjectToConfiguredProjectMap.delete(proj.projectFileName);\n const typeAcquisition = proj.typeAcquisition || {};\n typeAcquisition.include = typeAcquisition.include || [];\n typeAcquisition.exclude = typeAcquisition.exclude || [];\n if (typeAcquisition.enable === void 0) {\n typeAcquisition.enable = hasNoTypeScriptSource(rootFiles.map((f) => f.fileName));\n }\n const excludeResult = this.applySafeListWorker(proj, rootFiles, typeAcquisition);\n const excludedFiles = (excludeResult == null ? void 0 : excludeResult.excludedFiles) ?? [];\n rootFiles = (excludeResult == null ? void 0 : excludeResult.rootFiles) ?? rootFiles;\n if (existingExternalProject) {\n existingExternalProject.excludedFiles = excludedFiles;\n const compilerOptions = convertCompilerOptions(proj.options);\n const watchOptionsAndErrors = convertWatchOptions(proj.options, existingExternalProject.getCurrentDirectory());\n const lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(proj.projectFileName, compilerOptions, rootFiles, externalFilePropertyReader);\n if (lastFileExceededProgramSize) {\n existingExternalProject.disableLanguageService(lastFileExceededProgramSize);\n } else {\n existingExternalProject.enableLanguageService();\n }\n existingExternalProject.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n this.updateRootAndOptionsOfNonInferredProject(existingExternalProject, rootFiles, externalFilePropertyReader, compilerOptions, typeAcquisition, proj.options.compileOnSave, watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions);\n existingExternalProject.updateGraph();\n } else {\n const project = this.createExternalProject(proj.projectFileName, rootFiles, proj.options, typeAcquisition, excludedFiles);\n project.updateGraph();\n }\n }\n if (cleanupAfter) {\n this.cleanupConfiguredProjects(\n configuredProjects,\n /* @__PURE__ */ new Set([proj.projectFileName])\n );\n this.printProjects();\n }\n }\n hasDeferredExtension() {\n for (const extension of this.hostConfiguration.extraFileExtensions) {\n if (extension.scriptKind === 7 /* Deferred */) {\n return true;\n }\n }\n return false;\n }\n /**\n * Performs the initial steps of enabling a plugin by finding and instantiating the module for a plugin either asynchronously or synchronously\n * @internal\n */\n requestEnablePlugin(project, pluginConfigEntry, searchPaths) {\n if (!this.host.importPlugin && !this.host.require) {\n this.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n return;\n }\n this.logger.info(`Enabling plugin ${pluginConfigEntry.name} from candidate paths: ${searchPaths.join(\",\")}`);\n if (!pluginConfigEntry.name || isExternalModuleNameRelative(pluginConfigEntry.name) || /[\\\\/]\\.\\.?(?:$|[\\\\/])/.test(pluginConfigEntry.name)) {\n this.logger.info(`Skipped loading plugin ${pluginConfigEntry.name || JSON.stringify(pluginConfigEntry)} because only package name is allowed plugin name`);\n return;\n }\n if (this.host.importPlugin) {\n const importPromise = Project2.importServicePluginAsync(\n pluginConfigEntry,\n searchPaths,\n this.host,\n (s) => this.logger.info(s)\n );\n this.pendingPluginEnablements ?? (this.pendingPluginEnablements = /* @__PURE__ */ new Map());\n let promises = this.pendingPluginEnablements.get(project);\n if (!promises) this.pendingPluginEnablements.set(project, promises = []);\n promises.push(importPromise);\n return;\n }\n this.endEnablePlugin(\n project,\n Project2.importServicePluginSync(\n pluginConfigEntry,\n searchPaths,\n this.host,\n (s) => this.logger.info(s)\n )\n );\n }\n /**\n * Performs the remaining steps of enabling a plugin after its module has been instantiated.\n */\n endEnablePlugin(project, { pluginConfigEntry, resolvedModule, errorLogs }) {\n var _a;\n if (resolvedModule) {\n const configurationOverride = (_a = this.currentPluginConfigOverrides) == null ? void 0 : _a.get(pluginConfigEntry.name);\n if (configurationOverride) {\n const pluginName = pluginConfigEntry.name;\n pluginConfigEntry = configurationOverride;\n pluginConfigEntry.name = pluginName;\n }\n project.enableProxy(resolvedModule, pluginConfigEntry);\n } else {\n forEach(errorLogs, (message) => this.logger.info(message));\n this.logger.info(`Couldn't find ${pluginConfigEntry.name}`);\n }\n }\n /** @internal */\n hasNewPluginEnablementRequests() {\n return !!this.pendingPluginEnablements;\n }\n /** @internal */\n hasPendingPluginEnablements() {\n return !!this.currentPluginEnablementPromise;\n }\n /**\n * Waits for any ongoing plugin enablement requests to complete.\n *\n * @internal\n */\n async waitForPendingPlugins() {\n while (this.currentPluginEnablementPromise) {\n await this.currentPluginEnablementPromise;\n }\n }\n /**\n * Starts enabling any requested plugins without waiting for the result.\n *\n * @internal\n */\n enableRequestedPlugins() {\n if (this.pendingPluginEnablements) {\n void this.enableRequestedPluginsAsync();\n }\n }\n async enableRequestedPluginsAsync() {\n if (this.currentPluginEnablementPromise) {\n await this.waitForPendingPlugins();\n }\n if (!this.pendingPluginEnablements) {\n return;\n }\n const entries = arrayFrom(this.pendingPluginEnablements.entries());\n this.pendingPluginEnablements = void 0;\n this.currentPluginEnablementPromise = this.enableRequestedPluginsWorker(entries);\n await this.currentPluginEnablementPromise;\n }\n async enableRequestedPluginsWorker(pendingPlugins) {\n Debug.assert(this.currentPluginEnablementPromise === void 0);\n let sendProjectsUpdatedInBackgroundEvent = false;\n await Promise.all(map(pendingPlugins, async ([project, promises]) => {\n const results = await Promise.all(promises);\n if (project.isClosed() || isProjectDeferredClose(project)) {\n this.logger.info(`Cancelling plugin enabling for ${project.getProjectName()} as it is ${project.isClosed() ? \"closed\" : \"deferred close\"}`);\n return;\n }\n sendProjectsUpdatedInBackgroundEvent = true;\n for (const result of results) {\n this.endEnablePlugin(project, result);\n }\n this.delayUpdateProjectGraph(project);\n }));\n this.currentPluginEnablementPromise = void 0;\n if (sendProjectsUpdatedInBackgroundEvent) this.sendProjectsUpdatedInBackgroundEvent();\n }\n configurePlugin(args) {\n this.forEachEnabledProject((project) => project.onPluginConfigurationChanged(args.pluginName, args.configuration));\n this.currentPluginConfigOverrides = this.currentPluginConfigOverrides || /* @__PURE__ */ new Map();\n this.currentPluginConfigOverrides.set(args.pluginName, args.configuration);\n }\n /** @internal */\n getPackageJsonsVisibleToFile(fileName, project, rootDir) {\n const packageJsonCache = this.packageJsonCache;\n const rootPath = rootDir && this.toPath(rootDir);\n const result = [];\n const processDirectory = (directory) => {\n switch (packageJsonCache.directoryHasPackageJson(directory)) {\n // Sync and check same directory again\n case 3 /* Maybe */:\n packageJsonCache.searchDirectoryAndAncestors(directory, project);\n return processDirectory(directory);\n // Check package.json\n case -1 /* True */:\n const packageJsonFileName = combinePaths(directory, \"package.json\");\n this.watchPackageJsonFile(packageJsonFileName, this.toPath(packageJsonFileName), project);\n const info = packageJsonCache.getInDirectory(directory);\n if (info) result.push(info);\n }\n if (rootPath && rootPath === directory) {\n return true;\n }\n };\n forEachAncestorDirectoryStoppingAtGlobalCache(\n project,\n getDirectoryPath(fileName),\n processDirectory\n );\n return result;\n }\n /** @internal */\n getNearestAncestorDirectoryWithPackageJson(fileName, project) {\n return forEachAncestorDirectoryStoppingAtGlobalCache(\n project,\n fileName,\n (directory) => {\n switch (this.packageJsonCache.directoryHasPackageJson(directory)) {\n case -1 /* True */:\n return directory;\n case 0 /* False */:\n return void 0;\n case 3 /* Maybe */:\n return this.host.fileExists(combinePaths(directory, \"package.json\")) ? directory : void 0;\n }\n }\n );\n }\n watchPackageJsonFile(file, path, project) {\n Debug.assert(project !== void 0);\n let result = (this.packageJsonFilesMap ?? (this.packageJsonFilesMap = /* @__PURE__ */ new Map())).get(path);\n if (!result) {\n let watcher = this.watchFactory.watchFile(\n file,\n (fileName, eventKind) => {\n switch (eventKind) {\n case 0 /* Created */:\n case 1 /* Changed */:\n this.packageJsonCache.addOrUpdate(fileName, path);\n this.onPackageJsonChange(result);\n break;\n case 2 /* Deleted */:\n this.packageJsonCache.delete(path);\n this.onPackageJsonChange(result);\n result.projects.clear();\n result.close();\n }\n },\n 250 /* Low */,\n this.hostConfiguration.watchOptions,\n WatchType.PackageJson\n );\n result = {\n projects: /* @__PURE__ */ new Set(),\n close: () => {\n var _a;\n if (result.projects.size || !watcher) return;\n watcher.close();\n watcher = void 0;\n (_a = this.packageJsonFilesMap) == null ? void 0 : _a.delete(path);\n this.packageJsonCache.invalidate(path);\n }\n };\n this.packageJsonFilesMap.set(path, result);\n }\n result.projects.add(project);\n (project.packageJsonWatches ?? (project.packageJsonWatches = /* @__PURE__ */ new Set())).add(result);\n }\n onPackageJsonChange(result) {\n result.projects.forEach((project) => {\n var _a;\n return (_a = project.onPackageJsonChange) == null ? void 0 : _a.call(project);\n });\n }\n /** @internal */\n includePackageJsonAutoImports() {\n switch (this.hostConfiguration.preferences.includePackageJsonAutoImports) {\n case \"on\":\n return 1 /* On */;\n case \"off\":\n return 0 /* Off */;\n default:\n return 2 /* Auto */;\n }\n }\n /** @internal */\n getIncompleteCompletionsCache() {\n return this.incompleteCompletionsCache || (this.incompleteCompletionsCache = createIncompleteCompletionsCache());\n }\n};\n/** Makes a filename safe to insert in a RegExp */\n_ProjectService.filenameEscapeRegexp = /[-/\\\\^$*+?.()|[\\]{}]/g;\nvar ProjectService2 = _ProjectService;\nfunction createIncompleteCompletionsCache() {\n let info;\n return {\n get() {\n return info;\n },\n set(newInfo) {\n info = newInfo;\n },\n clear() {\n info = void 0;\n }\n };\n}\nfunction isConfigFile(config) {\n return config.kind !== void 0;\n}\nfunction printProjectWithoutFileNames(project) {\n project.print(\n /*writeProjectFileNames*/\n false,\n /*writeFileExplaination*/\n false,\n /*writeFileVersionAndText*/\n false\n );\n}\n\n// src/server/moduleSpecifierCache.ts\nfunction createModuleSpecifierCache(host) {\n let containedNodeModulesWatchers;\n let cache;\n let currentKey;\n const result = {\n get(fromFileName, toFileName2, preferences, options) {\n if (!cache || currentKey !== key(fromFileName, preferences, options)) return void 0;\n return cache.get(toFileName2);\n },\n set(fromFileName, toFileName2, preferences, options, kind, modulePaths, moduleSpecifiers) {\n ensureCache(fromFileName, preferences, options).set(toFileName2, createInfo(\n kind,\n modulePaths,\n moduleSpecifiers,\n /*packageName*/\n void 0,\n /*isBlockedByPackageJsonDependencies*/\n false\n ));\n if (moduleSpecifiers) {\n for (const p of modulePaths) {\n if (p.isInNodeModules) {\n const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n const key2 = host.toPath(nodeModulesPath);\n if (!(containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.has(key2))) {\n (containedNodeModulesWatchers || (containedNodeModulesWatchers = /* @__PURE__ */ new Map())).set(\n key2,\n host.watchNodeModulesForPackageJsonChanges(nodeModulesPath)\n );\n }\n }\n }\n }\n },\n setModulePaths(fromFileName, toFileName2, preferences, options, modulePaths) {\n const cache2 = ensureCache(fromFileName, preferences, options);\n const info = cache2.get(toFileName2);\n if (info) {\n info.modulePaths = modulePaths;\n } else {\n cache2.set(toFileName2, createInfo(\n /*kind*/\n void 0,\n modulePaths,\n /*moduleSpecifiers*/\n void 0,\n /*packageName*/\n void 0,\n /*isBlockedByPackageJsonDependencies*/\n void 0\n ));\n }\n },\n setBlockedByPackageJsonDependencies(fromFileName, toFileName2, preferences, options, packageName, isBlockedByPackageJsonDependencies) {\n const cache2 = ensureCache(fromFileName, preferences, options);\n const info = cache2.get(toFileName2);\n if (info) {\n info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n info.packageName = packageName;\n } else {\n cache2.set(toFileName2, createInfo(\n /*kind*/\n void 0,\n /*modulePaths*/\n void 0,\n /*moduleSpecifiers*/\n void 0,\n packageName,\n isBlockedByPackageJsonDependencies\n ));\n }\n },\n clear() {\n containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.forEach(closeFileWatcher);\n cache == null ? void 0 : cache.clear();\n containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.clear();\n currentKey = void 0;\n },\n count() {\n return cache ? cache.size : 0;\n }\n };\n if (Debug.isDebugging) {\n Object.defineProperty(result, \"__cache\", { get: () => cache });\n }\n return result;\n function ensureCache(fromFileName, preferences, options) {\n const newKey = key(fromFileName, preferences, options);\n if (cache && currentKey !== newKey) {\n result.clear();\n }\n currentKey = newKey;\n return cache || (cache = /* @__PURE__ */ new Map());\n }\n function key(fromFileName, preferences, options) {\n return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n }\n function createInfo(kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies) {\n return { kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies };\n }\n}\n\n// src/server/packageJsonCache.ts\nfunction createPackageJsonCache(host) {\n const packageJsons = /* @__PURE__ */ new Map();\n const directoriesWithoutPackageJson = /* @__PURE__ */ new Map();\n return {\n addOrUpdate,\n invalidate,\n delete: (fileName) => {\n packageJsons.delete(fileName);\n directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true);\n },\n getInDirectory: (directory) => {\n return packageJsons.get(host.toPath(combinePaths(directory, \"package.json\"))) || void 0;\n },\n directoryHasPackageJson: (directory) => directoryHasPackageJson(host.toPath(directory)),\n searchDirectoryAndAncestors: (directory, project) => {\n forEachAncestorDirectoryStoppingAtGlobalCache(\n project,\n directory,\n (ancestor) => {\n const ancestorPath = host.toPath(ancestor);\n if (directoryHasPackageJson(ancestorPath) !== 3 /* Maybe */) {\n return true;\n }\n const packageJsonFileName = combinePaths(ancestor, \"package.json\");\n if (tryFileExists(host, packageJsonFileName)) {\n addOrUpdate(packageJsonFileName, combinePaths(ancestorPath, \"package.json\"));\n } else {\n directoriesWithoutPackageJson.set(ancestorPath, true);\n }\n }\n );\n }\n };\n function addOrUpdate(fileName, path) {\n const packageJsonInfo = Debug.checkDefined(createPackageJsonInfo(fileName, host.host));\n packageJsons.set(path, packageJsonInfo);\n directoriesWithoutPackageJson.delete(getDirectoryPath(path));\n }\n function invalidate(path) {\n packageJsons.delete(path);\n directoriesWithoutPackageJson.delete(getDirectoryPath(path));\n }\n function directoryHasPackageJson(directory) {\n return packageJsons.has(combinePaths(directory, \"package.json\")) ? -1 /* True */ : directoriesWithoutPackageJson.has(directory) ? 0 /* False */ : 3 /* Maybe */;\n }\n}\n\n// src/server/session.ts\nvar nullCancellationToken = {\n isCancellationRequested: () => false,\n setRequest: () => void 0,\n resetRequest: () => void 0\n};\nfunction hrTimeToMilliseconds(time) {\n const seconds = time[0];\n const nanoseconds = time[1];\n return (1e9 * seconds + nanoseconds) / 1e6;\n}\nfunction isDeclarationFileInJSOnlyNonConfiguredProject(project, file) {\n if ((isInferredProject(project) || isExternalProject(project)) && project.isJsOnlyProject()) {\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n return scriptInfo && !scriptInfo.isJavaScript();\n }\n return false;\n}\nfunction dtsChangeCanAffectEmit(compilationSettings) {\n return getEmitDeclarations(compilationSettings) || !!compilationSettings.emitDecoratorMetadata;\n}\nfunction formatDiag(fileName, project, diag2) {\n const scriptInfo = project.getScriptInfoForNormalizedPath(fileName);\n return {\n start: scriptInfo.positionToLineOffset(diag2.start),\n end: scriptInfo.positionToLineOffset(diag2.start + diag2.length),\n // TODO: GH#18217\n text: flattenDiagnosticMessageText(diag2.messageText, \"\\n\"),\n code: diag2.code,\n category: diagnosticCategoryName(diag2),\n reportsUnnecessary: diag2.reportsUnnecessary,\n reportsDeprecated: diag2.reportsDeprecated,\n source: diag2.source,\n relatedInformation: map(diag2.relatedInformation, formatRelatedInformation)\n };\n}\nfunction formatRelatedInformation(info) {\n if (!info.file) {\n return {\n message: flattenDiagnosticMessageText(info.messageText, \"\\n\"),\n category: diagnosticCategoryName(info),\n code: info.code\n };\n }\n return {\n span: {\n start: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start)),\n end: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start + info.length)),\n // TODO: GH#18217\n file: info.file.fileName\n },\n message: flattenDiagnosticMessageText(info.messageText, \"\\n\"),\n category: diagnosticCategoryName(info),\n code: info.code\n };\n}\nfunction convertToLocation(lineAndCharacter) {\n return { line: lineAndCharacter.line + 1, offset: lineAndCharacter.character + 1 };\n}\nfunction formatDiagnosticToProtocol(diag2, includeFileName) {\n const start = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start));\n const end = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start + diag2.length));\n const text = flattenDiagnosticMessageText(diag2.messageText, \"\\n\");\n const { code, source } = diag2;\n const category = diagnosticCategoryName(diag2);\n const common = {\n start,\n end,\n text,\n code,\n category,\n reportsUnnecessary: diag2.reportsUnnecessary,\n reportsDeprecated: diag2.reportsDeprecated,\n source,\n relatedInformation: map(diag2.relatedInformation, formatRelatedInformation)\n };\n return includeFileName ? { ...common, fileName: diag2.file && diag2.file.fileName } : common;\n}\nfunction allEditsBeforePos(edits, pos) {\n return edits.every((edit) => textSpanEnd(edit.span) < pos);\n}\nvar CommandNames = CommandTypes;\nfunction formatMessage2(msg, logger, byteLength, newLine) {\n const verboseLogging = logger.hasLevel(3 /* verbose */);\n const json = JSON.stringify(msg);\n if (verboseLogging) {\n logger.info(`${msg.type}:${stringifyIndented(msg)}`);\n }\n const len = byteLength(json, \"utf8\");\n return `Content-Length: ${1 + len}\\r\n\\r\n${json}${newLine}`;\n}\nvar MultistepOperation = class {\n constructor(operationHost) {\n this.operationHost = operationHost;\n }\n startNew(action) {\n this.complete();\n this.requestId = this.operationHost.getCurrentRequestId();\n this.executeAction(action);\n }\n complete() {\n if (this.requestId !== void 0) {\n this.operationHost.sendRequestCompletedEvent(this.requestId, this.performanceData);\n this.requestId = void 0;\n }\n this.setTimerHandle(void 0);\n this.setImmediateId(void 0);\n this.performanceData = void 0;\n }\n immediate(actionType, action) {\n const requestId = this.requestId;\n Debug.assert(requestId === this.operationHost.getCurrentRequestId(), \"immediate: incorrect request id\");\n this.setImmediateId(\n this.operationHost.getServerHost().setImmediate(() => {\n this.immediateId = void 0;\n this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action), this.performanceData);\n }, actionType)\n );\n }\n delay(actionType, ms, action) {\n const requestId = this.requestId;\n Debug.assert(requestId === this.operationHost.getCurrentRequestId(), \"delay: incorrect request id\");\n this.setTimerHandle(\n this.operationHost.getServerHost().setTimeout(\n () => {\n this.timerHandle = void 0;\n this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action), this.performanceData);\n },\n ms,\n actionType\n )\n );\n }\n executeAction(action) {\n var _a, _b, _c, _d, _e, _f;\n let stop = false;\n try {\n if (this.operationHost.isCancellationRequested()) {\n stop = true;\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"stepCanceled\", { seq: this.requestId, early: true });\n } else {\n (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.Session, \"stepAction\", { seq: this.requestId });\n action(this);\n (_c = tracing) == null ? void 0 : _c.pop();\n }\n } catch (e) {\n (_d = tracing) == null ? void 0 : _d.popAll();\n stop = true;\n if (e instanceof OperationCanceledException) {\n (_e = tracing) == null ? void 0 : _e.instant(tracing.Phase.Session, \"stepCanceled\", { seq: this.requestId });\n } else {\n (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, \"stepError\", { seq: this.requestId, message: e.message });\n this.operationHost.logError(e, `delayed processing of request ${this.requestId}`);\n }\n }\n this.performanceData = this.operationHost.getPerformanceData();\n if (stop || !this.hasPendingWork()) {\n this.complete();\n }\n }\n setTimerHandle(timerHandle) {\n if (this.timerHandle !== void 0) {\n this.operationHost.getServerHost().clearTimeout(this.timerHandle);\n }\n this.timerHandle = timerHandle;\n }\n setImmediateId(immediateId) {\n if (this.immediateId !== void 0) {\n this.operationHost.getServerHost().clearImmediate(this.immediateId);\n }\n this.immediateId = immediateId;\n }\n hasPendingWork() {\n return !!this.timerHandle || !!this.immediateId;\n }\n};\nfunction toEvent(eventName, body) {\n return {\n seq: 0,\n type: \"event\",\n event: eventName,\n body\n };\n}\nfunction combineProjectOutput(defaultValue, getValue, projects, action) {\n const outputs = flatMapToMutable(isArray(projects) ? projects : projects.projects, (project) => action(project, defaultValue));\n if (!isArray(projects) && projects.symLinkedProjects) {\n projects.symLinkedProjects.forEach((projects2, path) => {\n const value = getValue(path);\n outputs.push(...flatMap(projects2, (project) => action(project, value)));\n });\n }\n return deduplicate(outputs, equateValues);\n}\nfunction createDocumentSpanSet(useCaseSensitiveFileNames2) {\n return createSet(({ textSpan }) => textSpan.start + 100003 * textSpan.length, getDocumentSpansEqualityComparer(useCaseSensitiveFileNames2));\n}\nfunction getRenameLocationsWorker(projects, defaultProject, initialLocation, findInStrings, findInComments, preferences, useCaseSensitiveFileNames2) {\n const perProjectResults = getPerProjectReferences(\n projects,\n defaultProject,\n initialLocation,\n getDefinitionLocation(\n defaultProject,\n initialLocation,\n /*isForRename*/\n true\n ),\n mapDefinitionInProject,\n (project, position) => project.getLanguageService().findRenameLocations(position.fileName, position.pos, findInStrings, findInComments, preferences),\n (renameLocation, cb) => cb(documentSpanLocation(renameLocation))\n );\n if (isArray(perProjectResults)) {\n return perProjectResults;\n }\n const results = [];\n const seen = createDocumentSpanSet(useCaseSensitiveFileNames2);\n perProjectResults.forEach((projectResults, project) => {\n for (const result of projectResults) {\n if (!seen.has(result) && !getMappedLocationForProject(documentSpanLocation(result), project)) {\n results.push(result);\n seen.add(result);\n }\n }\n });\n return results;\n}\nfunction getDefinitionLocation(defaultProject, initialLocation, isForRename) {\n const infos = defaultProject.getLanguageService().getDefinitionAtPosition(\n initialLocation.fileName,\n initialLocation.pos,\n /*searchOtherFilesOnly*/\n false,\n /*stopAtAlias*/\n isForRename\n );\n const info = infos && firstOrUndefined(infos);\n return info && !info.isLocal ? { fileName: info.fileName, pos: info.textSpan.start } : void 0;\n}\nfunction getReferencesWorker(projects, defaultProject, initialLocation, useCaseSensitiveFileNames2, logger) {\n var _a, _b;\n const perProjectResults = getPerProjectReferences(\n projects,\n defaultProject,\n initialLocation,\n getDefinitionLocation(\n defaultProject,\n initialLocation,\n /*isForRename*/\n false\n ),\n mapDefinitionInProject,\n (project, position) => {\n logger.info(`Finding references to ${position.fileName} position ${position.pos} in project ${project.getProjectName()}`);\n return project.getLanguageService().findReferences(position.fileName, position.pos);\n },\n (referencedSymbol, cb) => {\n cb(documentSpanLocation(referencedSymbol.definition));\n for (const ref of referencedSymbol.references) {\n cb(documentSpanLocation(ref));\n }\n }\n );\n if (isArray(perProjectResults)) {\n return perProjectResults;\n }\n const defaultProjectResults = perProjectResults.get(defaultProject);\n if (((_b = (_a = defaultProjectResults == null ? void 0 : defaultProjectResults[0]) == null ? void 0 : _a.references[0]) == null ? void 0 : _b.isDefinition) === void 0) {\n perProjectResults.forEach((projectResults) => {\n for (const referencedSymbol of projectResults) {\n for (const ref of referencedSymbol.references) {\n delete ref.isDefinition;\n }\n }\n });\n } else {\n const knownSymbolSpans = createDocumentSpanSet(useCaseSensitiveFileNames2);\n for (const referencedSymbol of defaultProjectResults) {\n for (const ref of referencedSymbol.references) {\n if (ref.isDefinition) {\n knownSymbolSpans.add(ref);\n break;\n }\n }\n }\n const updatedProjects = /* @__PURE__ */ new Set();\n while (true) {\n let progress = false;\n perProjectResults.forEach((referencedSymbols, project) => {\n if (updatedProjects.has(project)) return;\n const updated = project.getLanguageService().updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans);\n if (updated) {\n updatedProjects.add(project);\n progress = true;\n }\n });\n if (!progress) break;\n }\n perProjectResults.forEach((referencedSymbols, project) => {\n if (updatedProjects.has(project)) return;\n for (const referencedSymbol of referencedSymbols) {\n for (const ref of referencedSymbol.references) {\n ref.isDefinition = false;\n }\n }\n });\n }\n const results = [];\n const seenRefs = createDocumentSpanSet(useCaseSensitiveFileNames2);\n perProjectResults.forEach((projectResults, project) => {\n for (const referencedSymbol of projectResults) {\n const mappedDefinitionFile = getMappedLocationForProject(documentSpanLocation(referencedSymbol.definition), project);\n const definition = mappedDefinitionFile === void 0 ? referencedSymbol.definition : {\n ...referencedSymbol.definition,\n textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length),\n // Why would the length be the same in the original?\n fileName: mappedDefinitionFile.fileName,\n contextSpan: getMappedContextSpanForProject(referencedSymbol.definition, project)\n };\n let symbolToAddTo = find(results, (o) => documentSpansEqual(o.definition, definition, useCaseSensitiveFileNames2));\n if (!symbolToAddTo) {\n symbolToAddTo = { definition, references: [] };\n results.push(symbolToAddTo);\n }\n for (const ref of referencedSymbol.references) {\n if (!seenRefs.has(ref) && !getMappedLocationForProject(documentSpanLocation(ref), project)) {\n seenRefs.add(ref);\n symbolToAddTo.references.push(ref);\n }\n }\n }\n });\n return results.filter((o) => o.references.length !== 0);\n}\nfunction forEachProjectInProjects(projects, path, cb) {\n for (const project of isArray(projects) ? projects : projects.projects) {\n cb(project, path);\n }\n if (!isArray(projects) && projects.symLinkedProjects) {\n projects.symLinkedProjects.forEach((symlinkedProjects, symlinkedPath) => {\n for (const project of symlinkedProjects) {\n cb(project, symlinkedPath);\n }\n });\n }\n}\nfunction getPerProjectReferences(projects, defaultProject, initialLocation, defaultDefinition, mapDefinitionInProject2, getResultsForPosition, forPositionInResult) {\n const resultsMap = /* @__PURE__ */ new Map();\n const queue = createQueue();\n queue.enqueue({ project: defaultProject, location: initialLocation });\n forEachProjectInProjects(projects, initialLocation.fileName, (project, path) => {\n const location = { fileName: path, pos: initialLocation.pos };\n queue.enqueue({ project, location });\n });\n const projectService = defaultProject.projectService;\n const cancellationToken = defaultProject.getCancellationToken();\n const getGeneratedDefinition = memoize(\n () => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition)\n );\n const getSourceDefinition = memoize(\n () => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition)\n );\n const searchedProjectKeys = /* @__PURE__ */ new Set();\n onCancellation:\n while (!queue.isEmpty()) {\n while (!queue.isEmpty()) {\n if (cancellationToken.isCancellationRequested()) break onCancellation;\n const { project, location } = queue.dequeue();\n if (resultsMap.has(project)) continue;\n if (isLocationProjectReferenceRedirect(project, location)) continue;\n updateProjectIfDirty(project);\n if (!project.containsFile(toNormalizedPath(location.fileName))) {\n continue;\n }\n const projectResults = searchPosition(project, location);\n resultsMap.set(project, projectResults ?? emptyArray2);\n searchedProjectKeys.add(getProjectKey(project));\n }\n if (defaultDefinition) {\n projectService.loadAncestorProjectTree(searchedProjectKeys);\n projectService.forEachEnabledProject((project) => {\n if (cancellationToken.isCancellationRequested()) return;\n if (resultsMap.has(project)) return;\n const location = mapDefinitionInProject2(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition);\n if (location) {\n queue.enqueue({ project, location });\n }\n });\n }\n }\n if (resultsMap.size === 1) {\n return firstIterator(resultsMap.values());\n }\n return resultsMap;\n function searchPosition(project, location) {\n const projectResults = getResultsForPosition(project, location);\n if (!projectResults || !forPositionInResult) return projectResults;\n for (const result of projectResults) {\n forPositionInResult(result, (position) => {\n const originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(project, position);\n if (!originalLocation) return;\n const originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName);\n for (const project2 of originalScriptInfo.containingProjects) {\n if (!project2.isOrphan() && !resultsMap.has(project2)) {\n queue.enqueue({ project: project2, location: originalLocation });\n }\n }\n const symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo);\n if (symlinkedProjectsMap) {\n symlinkedProjectsMap.forEach((symlinkedProjects, symlinkedPath) => {\n for (const symlinkedProject of symlinkedProjects) {\n if (!symlinkedProject.isOrphan() && !resultsMap.has(symlinkedProject)) {\n queue.enqueue({ project: symlinkedProject, location: { fileName: symlinkedPath, pos: originalLocation.pos } });\n }\n }\n });\n }\n });\n }\n return projectResults;\n }\n}\nfunction mapDefinitionInProjectIfFileInProject(definition, project) {\n if (project.containsFile(toNormalizedPath(definition.fileName)) && !isLocationProjectReferenceRedirect(project, definition)) {\n return definition;\n }\n}\nfunction mapDefinitionInProject(definition, project, getGeneratedDefinition, getSourceDefinition) {\n const result = mapDefinitionInProjectIfFileInProject(definition, project);\n if (result) return result;\n const generatedDefinition = getGeneratedDefinition();\n if (generatedDefinition && project.containsFile(toNormalizedPath(generatedDefinition.fileName))) return generatedDefinition;\n const sourceDefinition = getSourceDefinition();\n return sourceDefinition && project.containsFile(toNormalizedPath(sourceDefinition.fileName)) ? sourceDefinition : void 0;\n}\nfunction isLocationProjectReferenceRedirect(project, location) {\n if (!location) return false;\n const program = project.getLanguageService().getProgram();\n if (!program) return false;\n const sourceFile = program.getSourceFile(location.fileName);\n return !!sourceFile && sourceFile.resolvedPath !== sourceFile.path && sourceFile.resolvedPath !== project.toPath(location.fileName);\n}\nfunction getProjectKey(project) {\n return isConfiguredProject(project) ? project.canonicalConfigFilePath : project.getProjectName();\n}\nfunction documentSpanLocation({ fileName, textSpan }) {\n return { fileName, pos: textSpan.start };\n}\nfunction getMappedLocationForProject(location, project) {\n return getMappedLocation(location, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nfunction getMappedDocumentSpanForProject(documentSpan, project) {\n return getMappedDocumentSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nfunction getMappedContextSpanForProject(documentSpan, project) {\n return getMappedContextSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nvar invalidPartialSemanticModeCommands = [\n \"openExternalProject\" /* OpenExternalProject */,\n \"openExternalProjects\" /* OpenExternalProjects */,\n \"closeExternalProject\" /* CloseExternalProject */,\n \"synchronizeProjectList\" /* SynchronizeProjectList */,\n \"emit-output\" /* EmitOutput */,\n \"compileOnSaveAffectedFileList\" /* CompileOnSaveAffectedFileList */,\n \"compileOnSaveEmitFile\" /* CompileOnSaveEmitFile */,\n \"compilerOptionsDiagnostics-full\" /* CompilerOptionsDiagnosticsFull */,\n \"encodedSemanticClassifications-full\" /* EncodedSemanticClassificationsFull */,\n \"semanticDiagnosticsSync\" /* SemanticDiagnosticsSync */,\n \"suggestionDiagnosticsSync\" /* SuggestionDiagnosticsSync */,\n \"geterrForProject\" /* GeterrForProject */,\n \"reload\" /* Reload */,\n \"reloadProjects\" /* ReloadProjects */,\n \"getCodeFixes\" /* GetCodeFixes */,\n \"getCodeFixes-full\" /* GetCodeFixesFull */,\n \"getCombinedCodeFix\" /* GetCombinedCodeFix */,\n \"getCombinedCodeFix-full\" /* GetCombinedCodeFixFull */,\n \"applyCodeActionCommand\" /* ApplyCodeActionCommand */,\n \"getSupportedCodeFixes\" /* GetSupportedCodeFixes */,\n \"getApplicableRefactors\" /* GetApplicableRefactors */,\n \"getMoveToRefactoringFileSuggestions\" /* GetMoveToRefactoringFileSuggestions */,\n \"getEditsForRefactor\" /* GetEditsForRefactor */,\n \"getEditsForRefactor-full\" /* GetEditsForRefactorFull */,\n \"organizeImports\" /* OrganizeImports */,\n \"organizeImports-full\" /* OrganizeImportsFull */,\n \"getEditsForFileRename\" /* GetEditsForFileRename */,\n \"getEditsForFileRename-full\" /* GetEditsForFileRenameFull */,\n \"prepareCallHierarchy\" /* PrepareCallHierarchy */,\n \"provideCallHierarchyIncomingCalls\" /* ProvideCallHierarchyIncomingCalls */,\n \"provideCallHierarchyOutgoingCalls\" /* ProvideCallHierarchyOutgoingCalls */,\n \"getPasteEdits\" /* GetPasteEdits */,\n \"copilotRelated\" /* CopilotRelated */\n];\nvar invalidSyntacticModeCommands = [\n ...invalidPartialSemanticModeCommands,\n \"definition\" /* Definition */,\n \"definition-full\" /* DefinitionFull */,\n \"definitionAndBoundSpan\" /* DefinitionAndBoundSpan */,\n \"definitionAndBoundSpan-full\" /* DefinitionAndBoundSpanFull */,\n \"typeDefinition\" /* TypeDefinition */,\n \"implementation\" /* Implementation */,\n \"implementation-full\" /* ImplementationFull */,\n \"references\" /* References */,\n \"references-full\" /* ReferencesFull */,\n \"rename\" /* Rename */,\n \"renameLocations-full\" /* RenameLocationsFull */,\n \"rename-full\" /* RenameInfoFull */,\n \"quickinfo\" /* Quickinfo */,\n \"quickinfo-full\" /* QuickinfoFull */,\n \"completionInfo\" /* CompletionInfo */,\n \"completions\" /* Completions */,\n \"completions-full\" /* CompletionsFull */,\n \"completionEntryDetails\" /* CompletionDetails */,\n \"completionEntryDetails-full\" /* CompletionDetailsFull */,\n \"signatureHelp\" /* SignatureHelp */,\n \"signatureHelp-full\" /* SignatureHelpFull */,\n \"navto\" /* Navto */,\n \"navto-full\" /* NavtoFull */,\n \"documentHighlights\" /* DocumentHighlights */,\n \"documentHighlights-full\" /* DocumentHighlightsFull */,\n \"preparePasteEdits\" /* PreparePasteEdits */\n];\nvar Session3 = class _Session {\n constructor(opts) {\n this.changeSeq = 0;\n // Minimum number of lines for attempting to use region diagnostics for a file.\n /** @internal */\n this.regionDiagLineCountThreshold = 500;\n this.handlers = new Map(Object.entries({\n // TODO(jakebailey): correctly type the handlers\n [\"status\" /* Status */]: () => {\n const response = { version };\n return this.requiredResponse(response);\n },\n [\"openExternalProject\" /* OpenExternalProject */]: (request) => {\n this.projectService.openExternalProject(\n request.arguments,\n /*cleanupAfter*/\n true\n );\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"openExternalProjects\" /* OpenExternalProjects */]: (request) => {\n this.projectService.openExternalProjects(request.arguments.projects);\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"closeExternalProject\" /* CloseExternalProject */]: (request) => {\n this.projectService.closeExternalProject(\n request.arguments.projectFileName,\n /*cleanupAfter*/\n true\n );\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"synchronizeProjectList\" /* SynchronizeProjectList */]: (request) => {\n const result = this.projectService.synchronizeProjectList(request.arguments.knownProjects, request.arguments.includeProjectReferenceRedirectInfo);\n if (!result.some((p) => p.projectErrors && p.projectErrors.length !== 0)) {\n return this.requiredResponse(result);\n }\n const converted = map(result, (p) => {\n if (!p.projectErrors || p.projectErrors.length === 0) {\n return p;\n }\n return {\n info: p.info,\n changes: p.changes,\n files: p.files,\n projectErrors: this.convertToDiagnosticsWithLinePosition(\n p.projectErrors,\n /*scriptInfo*/\n void 0\n )\n };\n });\n return this.requiredResponse(converted);\n },\n [\"updateOpen\" /* UpdateOpen */]: (request) => {\n this.changeSeq++;\n this.projectService.applyChangesInOpenFiles(\n request.arguments.openFiles && mapIterator(request.arguments.openFiles, (file) => ({\n fileName: file.file,\n content: file.fileContent,\n scriptKind: file.scriptKindName,\n projectRootPath: file.projectRootPath\n })),\n request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({\n fileName: file.fileName,\n changes: mapDefinedIterator(arrayReverseIterator(file.textChanges), (change) => {\n const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file.fileName));\n const start = scriptInfo.lineOffsetToPosition(change.start.line, change.start.offset);\n const end = scriptInfo.lineOffsetToPosition(change.end.line, change.end.offset);\n return start >= 0 ? { span: { start, length: end - start }, newText: change.newText } : void 0;\n })\n })),\n request.arguments.closedFiles\n );\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"applyChangedToOpenFiles\" /* ApplyChangedToOpenFiles */]: (request) => {\n this.changeSeq++;\n this.projectService.applyChangesInOpenFiles(\n request.arguments.openFiles,\n request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({\n fileName: file.fileName,\n // apply changes in reverse order\n changes: arrayReverseIterator(file.changes)\n })),\n request.arguments.closedFiles\n );\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"exit\" /* Exit */]: () => {\n this.exit();\n return this.notRequired(\n /*request*/\n void 0\n );\n },\n [\"definition\" /* Definition */]: (request) => {\n return this.requiredResponse(this.getDefinition(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"definition-full\" /* DefinitionFull */]: (request) => {\n return this.requiredResponse(this.getDefinition(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"definitionAndBoundSpan\" /* DefinitionAndBoundSpan */]: (request) => {\n return this.requiredResponse(this.getDefinitionAndBoundSpan(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"definitionAndBoundSpan-full\" /* DefinitionAndBoundSpanFull */]: (request) => {\n return this.requiredResponse(this.getDefinitionAndBoundSpan(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"findSourceDefinition\" /* FindSourceDefinition */]: (request) => {\n return this.requiredResponse(this.findSourceDefinition(request.arguments));\n },\n [\"emit-output\" /* EmitOutput */]: (request) => {\n return this.requiredResponse(this.getEmitOutput(request.arguments));\n },\n [\"typeDefinition\" /* TypeDefinition */]: (request) => {\n return this.requiredResponse(this.getTypeDefinition(request.arguments));\n },\n [\"implementation\" /* Implementation */]: (request) => {\n return this.requiredResponse(this.getImplementation(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"implementation-full\" /* ImplementationFull */]: (request) => {\n return this.requiredResponse(this.getImplementation(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"references\" /* References */]: (request) => {\n return this.requiredResponse(this.getReferences(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"references-full\" /* ReferencesFull */]: (request) => {\n return this.requiredResponse(this.getReferences(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"rename\" /* Rename */]: (request) => {\n return this.requiredResponse(this.getRenameLocations(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"renameLocations-full\" /* RenameLocationsFull */]: (request) => {\n return this.requiredResponse(this.getRenameLocations(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"rename-full\" /* RenameInfoFull */]: (request) => {\n return this.requiredResponse(this.getRenameInfo(request.arguments));\n },\n [\"open\" /* Open */]: (request) => {\n this.openClientFile(\n toNormalizedPath(request.arguments.file),\n request.arguments.fileContent,\n convertScriptKindName(request.arguments.scriptKindName),\n // TODO: GH#18217\n request.arguments.projectRootPath ? toNormalizedPath(request.arguments.projectRootPath) : void 0\n );\n return this.notRequired(request);\n },\n [\"quickinfo\" /* Quickinfo */]: (request) => {\n return this.requiredResponse(this.getQuickInfoWorker(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"quickinfo-full\" /* QuickinfoFull */]: (request) => {\n return this.requiredResponse(this.getQuickInfoWorker(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"getOutliningSpans\" /* GetOutliningSpans */]: (request) => {\n return this.requiredResponse(this.getOutliningSpans(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"outliningSpans\" /* GetOutliningSpansFull */]: (request) => {\n return this.requiredResponse(this.getOutliningSpans(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"todoComments\" /* TodoComments */]: (request) => {\n return this.requiredResponse(this.getTodoComments(request.arguments));\n },\n [\"indentation\" /* Indentation */]: (request) => {\n return this.requiredResponse(this.getIndentation(request.arguments));\n },\n [\"nameOrDottedNameSpan\" /* NameOrDottedNameSpan */]: (request) => {\n return this.requiredResponse(this.getNameOrDottedNameSpan(request.arguments));\n },\n [\"breakpointStatement\" /* BreakpointStatement */]: (request) => {\n return this.requiredResponse(this.getBreakpointStatement(request.arguments));\n },\n [\"braceCompletion\" /* BraceCompletion */]: (request) => {\n return this.requiredResponse(this.isValidBraceCompletion(request.arguments));\n },\n [\"docCommentTemplate\" /* DocCommentTemplate */]: (request) => {\n return this.requiredResponse(this.getDocCommentTemplate(request.arguments));\n },\n [\"getSpanOfEnclosingComment\" /* GetSpanOfEnclosingComment */]: (request) => {\n return this.requiredResponse(this.getSpanOfEnclosingComment(request.arguments));\n },\n [\"fileReferences\" /* FileReferences */]: (request) => {\n return this.requiredResponse(this.getFileReferences(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"fileReferences-full\" /* FileReferencesFull */]: (request) => {\n return this.requiredResponse(this.getFileReferences(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"format\" /* Format */]: (request) => {\n return this.requiredResponse(this.getFormattingEditsForRange(request.arguments));\n },\n [\"formatonkey\" /* Formatonkey */]: (request) => {\n return this.requiredResponse(this.getFormattingEditsAfterKeystroke(request.arguments));\n },\n [\"format-full\" /* FormatFull */]: (request) => {\n return this.requiredResponse(this.getFormattingEditsForDocumentFull(request.arguments));\n },\n [\"formatonkey-full\" /* FormatonkeyFull */]: (request) => {\n return this.requiredResponse(this.getFormattingEditsAfterKeystrokeFull(request.arguments));\n },\n [\"formatRange-full\" /* FormatRangeFull */]: (request) => {\n return this.requiredResponse(this.getFormattingEditsForRangeFull(request.arguments));\n },\n [\"completionInfo\" /* CompletionInfo */]: (request) => {\n return this.requiredResponse(this.getCompletions(request.arguments, \"completionInfo\" /* CompletionInfo */));\n },\n [\"completions\" /* Completions */]: (request) => {\n return this.requiredResponse(this.getCompletions(request.arguments, \"completions\" /* Completions */));\n },\n [\"completions-full\" /* CompletionsFull */]: (request) => {\n return this.requiredResponse(this.getCompletions(request.arguments, \"completions-full\" /* CompletionsFull */));\n },\n [\"completionEntryDetails\" /* CompletionDetails */]: (request) => {\n return this.requiredResponse(this.getCompletionEntryDetails(\n request.arguments,\n /*fullResult*/\n false\n ));\n },\n [\"completionEntryDetails-full\" /* CompletionDetailsFull */]: (request) => {\n return this.requiredResponse(this.getCompletionEntryDetails(\n request.arguments,\n /*fullResult*/\n true\n ));\n },\n [\"compileOnSaveAffectedFileList\" /* CompileOnSaveAffectedFileList */]: (request) => {\n return this.requiredResponse(this.getCompileOnSaveAffectedFileList(request.arguments));\n },\n [\"compileOnSaveEmitFile\" /* CompileOnSaveEmitFile */]: (request) => {\n return this.requiredResponse(this.emitFile(request.arguments));\n },\n [\"signatureHelp\" /* SignatureHelp */]: (request) => {\n return this.requiredResponse(this.getSignatureHelpItems(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"signatureHelp-full\" /* SignatureHelpFull */]: (request) => {\n return this.requiredResponse(this.getSignatureHelpItems(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"compilerOptionsDiagnostics-full\" /* CompilerOptionsDiagnosticsFull */]: (request) => {\n return this.requiredResponse(this.getCompilerOptionsDiagnostics(request.arguments));\n },\n [\"encodedSyntacticClassifications-full\" /* EncodedSyntacticClassificationsFull */]: (request) => {\n return this.requiredResponse(this.getEncodedSyntacticClassifications(request.arguments));\n },\n [\"encodedSemanticClassifications-full\" /* EncodedSemanticClassificationsFull */]: (request) => {\n return this.requiredResponse(this.getEncodedSemanticClassifications(request.arguments));\n },\n [\"cleanup\" /* Cleanup */]: () => {\n this.cleanup();\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"semanticDiagnosticsSync\" /* SemanticDiagnosticsSync */]: (request) => {\n return this.requiredResponse(this.getSemanticDiagnosticsSync(request.arguments));\n },\n [\"syntacticDiagnosticsSync\" /* SyntacticDiagnosticsSync */]: (request) => {\n return this.requiredResponse(this.getSyntacticDiagnosticsSync(request.arguments));\n },\n [\"suggestionDiagnosticsSync\" /* SuggestionDiagnosticsSync */]: (request) => {\n return this.requiredResponse(this.getSuggestionDiagnosticsSync(request.arguments));\n },\n [\"geterr\" /* Geterr */]: (request) => {\n this.errorCheck.startNew((next) => this.getDiagnostics(next, request.arguments.delay, request.arguments.files));\n return this.notRequired(\n /*request*/\n void 0\n );\n },\n [\"geterrForProject\" /* GeterrForProject */]: (request) => {\n this.errorCheck.startNew((next) => this.getDiagnosticsForProject(next, request.arguments.delay, request.arguments.file));\n return this.notRequired(\n /*request*/\n void 0\n );\n },\n [\"change\" /* Change */]: (request) => {\n this.change(request.arguments);\n return this.notRequired(request);\n },\n [\"configure\" /* Configure */]: (request) => {\n this.projectService.setHostConfiguration(request.arguments);\n return this.notRequired(request);\n },\n [\"reload\" /* Reload */]: (request) => {\n this.reload(request.arguments);\n return this.requiredResponse({ reloadFinished: true });\n },\n [\"saveto\" /* Saveto */]: (request) => {\n const savetoArgs = request.arguments;\n this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile);\n return this.notRequired(request);\n },\n [\"close\" /* Close */]: (request) => {\n const closeArgs = request.arguments;\n this.closeClientFile(closeArgs.file);\n return this.notRequired(request);\n },\n [\"navto\" /* Navto */]: (request) => {\n return this.requiredResponse(this.getNavigateToItems(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"navto-full\" /* NavtoFull */]: (request) => {\n return this.requiredResponse(this.getNavigateToItems(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"brace\" /* Brace */]: (request) => {\n return this.requiredResponse(this.getBraceMatching(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"brace-full\" /* BraceFull */]: (request) => {\n return this.requiredResponse(this.getBraceMatching(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"navbar\" /* NavBar */]: (request) => {\n return this.requiredResponse(this.getNavigationBarItems(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"navbar-full\" /* NavBarFull */]: (request) => {\n return this.requiredResponse(this.getNavigationBarItems(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"navtree\" /* NavTree */]: (request) => {\n return this.requiredResponse(this.getNavigationTree(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"navtree-full\" /* NavTreeFull */]: (request) => {\n return this.requiredResponse(this.getNavigationTree(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"documentHighlights\" /* DocumentHighlights */]: (request) => {\n return this.requiredResponse(this.getDocumentHighlights(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"documentHighlights-full\" /* DocumentHighlightsFull */]: (request) => {\n return this.requiredResponse(this.getDocumentHighlights(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"compilerOptionsForInferredProjects\" /* CompilerOptionsForInferredProjects */]: (request) => {\n this.setCompilerOptionsForInferredProjects(request.arguments);\n return this.requiredResponse(\n /*response*/\n true\n );\n },\n [\"projectInfo\" /* ProjectInfo */]: (request) => {\n return this.requiredResponse(this.getProjectInfo(request.arguments));\n },\n [\"reloadProjects\" /* ReloadProjects */]: (request) => {\n this.projectService.reloadProjects();\n return this.notRequired(request);\n },\n [\"jsxClosingTag\" /* JsxClosingTag */]: (request) => {\n return this.requiredResponse(this.getJsxClosingTag(request.arguments));\n },\n [\"linkedEditingRange\" /* LinkedEditingRange */]: (request) => {\n return this.requiredResponse(this.getLinkedEditingRange(request.arguments));\n },\n [\"getCodeFixes\" /* GetCodeFixes */]: (request) => {\n return this.requiredResponse(this.getCodeFixes(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"getCodeFixes-full\" /* GetCodeFixesFull */]: (request) => {\n return this.requiredResponse(this.getCodeFixes(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"getCombinedCodeFix\" /* GetCombinedCodeFix */]: (request) => {\n return this.requiredResponse(this.getCombinedCodeFix(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"getCombinedCodeFix-full\" /* GetCombinedCodeFixFull */]: (request) => {\n return this.requiredResponse(this.getCombinedCodeFix(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"applyCodeActionCommand\" /* ApplyCodeActionCommand */]: (request) => {\n return this.requiredResponse(this.applyCodeActionCommand(request.arguments));\n },\n [\"getSupportedCodeFixes\" /* GetSupportedCodeFixes */]: (request) => {\n return this.requiredResponse(this.getSupportedCodeFixes(request.arguments));\n },\n [\"getApplicableRefactors\" /* GetApplicableRefactors */]: (request) => {\n return this.requiredResponse(this.getApplicableRefactors(request.arguments));\n },\n [\"getEditsForRefactor\" /* GetEditsForRefactor */]: (request) => {\n return this.requiredResponse(this.getEditsForRefactor(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"getMoveToRefactoringFileSuggestions\" /* GetMoveToRefactoringFileSuggestions */]: (request) => {\n return this.requiredResponse(this.getMoveToRefactoringFileSuggestions(request.arguments));\n },\n [\"preparePasteEdits\" /* PreparePasteEdits */]: (request) => {\n return this.requiredResponse(this.preparePasteEdits(request.arguments));\n },\n [\"getPasteEdits\" /* GetPasteEdits */]: (request) => {\n return this.requiredResponse(this.getPasteEdits(request.arguments));\n },\n [\"getEditsForRefactor-full\" /* GetEditsForRefactorFull */]: (request) => {\n return this.requiredResponse(this.getEditsForRefactor(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"organizeImports\" /* OrganizeImports */]: (request) => {\n return this.requiredResponse(this.organizeImports(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"organizeImports-full\" /* OrganizeImportsFull */]: (request) => {\n return this.requiredResponse(this.organizeImports(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"getEditsForFileRename\" /* GetEditsForFileRename */]: (request) => {\n return this.requiredResponse(this.getEditsForFileRename(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"getEditsForFileRename-full\" /* GetEditsForFileRenameFull */]: (request) => {\n return this.requiredResponse(this.getEditsForFileRename(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"configurePlugin\" /* ConfigurePlugin */]: (request) => {\n this.configurePlugin(request.arguments);\n return this.notRequired(request);\n },\n [\"selectionRange\" /* SelectionRange */]: (request) => {\n return this.requiredResponse(this.getSmartSelectionRange(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"selectionRange-full\" /* SelectionRangeFull */]: (request) => {\n return this.requiredResponse(this.getSmartSelectionRange(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"prepareCallHierarchy\" /* PrepareCallHierarchy */]: (request) => {\n return this.requiredResponse(this.prepareCallHierarchy(request.arguments));\n },\n [\"provideCallHierarchyIncomingCalls\" /* ProvideCallHierarchyIncomingCalls */]: (request) => {\n return this.requiredResponse(this.provideCallHierarchyIncomingCalls(request.arguments));\n },\n [\"provideCallHierarchyOutgoingCalls\" /* ProvideCallHierarchyOutgoingCalls */]: (request) => {\n return this.requiredResponse(this.provideCallHierarchyOutgoingCalls(request.arguments));\n },\n [\"toggleLineComment\" /* ToggleLineComment */]: (request) => {\n return this.requiredResponse(this.toggleLineComment(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"toggleLineComment-full\" /* ToggleLineCommentFull */]: (request) => {\n return this.requiredResponse(this.toggleLineComment(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"toggleMultilineComment\" /* ToggleMultilineComment */]: (request) => {\n return this.requiredResponse(this.toggleMultilineComment(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"toggleMultilineComment-full\" /* ToggleMultilineCommentFull */]: (request) => {\n return this.requiredResponse(this.toggleMultilineComment(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"commentSelection\" /* CommentSelection */]: (request) => {\n return this.requiredResponse(this.commentSelection(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"commentSelection-full\" /* CommentSelectionFull */]: (request) => {\n return this.requiredResponse(this.commentSelection(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"uncommentSelection\" /* UncommentSelection */]: (request) => {\n return this.requiredResponse(this.uncommentSelection(\n request.arguments,\n /*simplifiedResult*/\n true\n ));\n },\n [\"uncommentSelection-full\" /* UncommentSelectionFull */]: (request) => {\n return this.requiredResponse(this.uncommentSelection(\n request.arguments,\n /*simplifiedResult*/\n false\n ));\n },\n [\"provideInlayHints\" /* ProvideInlayHints */]: (request) => {\n return this.requiredResponse(this.provideInlayHints(request.arguments));\n },\n [\"mapCode\" /* MapCode */]: (request) => {\n return this.requiredResponse(this.mapCode(request.arguments));\n },\n [\"copilotRelated\" /* CopilotRelated */]: () => {\n return this.requiredResponse(this.getCopilotRelatedInfo());\n }\n }));\n this.host = opts.host;\n this.cancellationToken = opts.cancellationToken;\n this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller;\n this.byteLength = opts.byteLength;\n this.hrtime = opts.hrtime;\n this.logger = opts.logger;\n this.canUseEvents = opts.canUseEvents;\n this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents;\n this.noGetErrOnBackgroundUpdate = opts.noGetErrOnBackgroundUpdate;\n const { throttleWaitMilliseconds } = opts;\n this.eventHandler = this.canUseEvents ? opts.eventHandler || ((event) => this.defaultEventHandler(event)) : void 0;\n const multistepOperationHost = {\n executeWithRequestId: (requestId, action, performanceData) => this.executeWithRequestId(requestId, action, performanceData),\n getCurrentRequestId: () => this.currentRequestId,\n getPerformanceData: () => this.performanceData,\n getServerHost: () => this.host,\n logError: (err, cmd) => this.logError(err, cmd),\n sendRequestCompletedEvent: (requestId, performanceData) => this.sendRequestCompletedEvent(requestId, performanceData),\n isCancellationRequested: () => this.cancellationToken.isCancellationRequested()\n };\n this.errorCheck = new MultistepOperation(multistepOperationHost);\n const settings = {\n host: this.host,\n logger: this.logger,\n cancellationToken: this.cancellationToken,\n useSingleInferredProject: opts.useSingleInferredProject,\n useInferredProjectPerProjectRoot: opts.useInferredProjectPerProjectRoot,\n typingsInstaller: this.typingsInstaller,\n throttleWaitMilliseconds,\n eventHandler: this.eventHandler,\n suppressDiagnosticEvents: this.suppressDiagnosticEvents,\n globalPlugins: opts.globalPlugins,\n pluginProbeLocations: opts.pluginProbeLocations,\n allowLocalPluginLoads: opts.allowLocalPluginLoads,\n typesMapLocation: opts.typesMapLocation,\n serverMode: opts.serverMode,\n session: this,\n canUseWatchEvents: opts.canUseWatchEvents,\n incrementalVerifier: opts.incrementalVerifier\n };\n this.projectService = new ProjectService2(settings);\n this.projectService.setPerformanceEventHandler(this.performanceEventHandler.bind(this));\n this.gcTimer = new GcTimer(\n this.host,\n /*delay*/\n 7e3,\n this.logger\n );\n switch (this.projectService.serverMode) {\n case 0 /* Semantic */:\n break;\n case 1 /* PartialSemantic */:\n invalidPartialSemanticModeCommands.forEach(\n (commandName) => this.handlers.set(commandName, (request) => {\n throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.PartialSemantic`);\n })\n );\n break;\n case 2 /* Syntactic */:\n invalidSyntacticModeCommands.forEach(\n (commandName) => this.handlers.set(commandName, (request) => {\n throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.Syntactic`);\n })\n );\n break;\n default:\n Debug.assertNever(this.projectService.serverMode);\n }\n }\n sendRequestCompletedEvent(requestId, performanceData) {\n this.event(\n {\n request_seq: requestId,\n performanceData: performanceData && toProtocolPerformanceData(performanceData)\n },\n \"requestCompleted\"\n );\n }\n addPerformanceData(key, value) {\n if (!this.performanceData) {\n this.performanceData = {};\n }\n this.performanceData[key] = (this.performanceData[key] ?? 0) + value;\n }\n addDiagnosticsPerformanceData(file, kind, duration) {\n var _a, _b;\n if (!this.performanceData) {\n this.performanceData = {};\n }\n let fileDiagnosticDuration = (_a = this.performanceData.diagnosticsDuration) == null ? void 0 : _a.get(file);\n if (!fileDiagnosticDuration) ((_b = this.performanceData).diagnosticsDuration ?? (_b.diagnosticsDuration = /* @__PURE__ */ new Map())).set(file, fileDiagnosticDuration = {});\n fileDiagnosticDuration[kind] = duration;\n }\n performanceEventHandler(event) {\n switch (event.kind) {\n case \"UpdateGraph\":\n this.addPerformanceData(\"updateGraphDurationMs\", event.durationMs);\n break;\n case \"CreatePackageJsonAutoImportProvider\":\n this.addPerformanceData(\"createAutoImportProviderProgramDurationMs\", event.durationMs);\n break;\n }\n }\n defaultEventHandler(event) {\n switch (event.eventName) {\n case ProjectsUpdatedInBackgroundEvent:\n this.projectsUpdatedInBackgroundEvent(event.data.openFiles);\n break;\n case ProjectLoadingStartEvent:\n this.event({\n projectName: event.data.project.getProjectName(),\n reason: event.data.reason\n }, event.eventName);\n break;\n case ProjectLoadingFinishEvent:\n this.event({\n projectName: event.data.project.getProjectName()\n }, event.eventName);\n break;\n case LargeFileReferencedEvent:\n case CreateFileWatcherEvent:\n case CreateDirectoryWatcherEvent:\n case CloseFileWatcherEvent:\n this.event(event.data, event.eventName);\n break;\n case ConfigFileDiagEvent:\n this.event({\n triggerFile: event.data.triggerFile,\n configFile: event.data.configFileName,\n diagnostics: map(event.data.diagnostics, (diagnostic) => formatDiagnosticToProtocol(\n diagnostic,\n /*includeFileName*/\n true\n ))\n }, event.eventName);\n break;\n case ProjectLanguageServiceStateEvent: {\n this.event({\n projectName: event.data.project.getProjectName(),\n languageServiceEnabled: event.data.languageServiceEnabled\n }, event.eventName);\n break;\n }\n case ProjectInfoTelemetryEvent: {\n const eventName = \"telemetry\";\n this.event({\n telemetryEventName: event.eventName,\n payload: event.data\n }, eventName);\n break;\n }\n }\n }\n projectsUpdatedInBackgroundEvent(openFiles) {\n this.projectService.logger.info(`got projects updated in background ${openFiles}`);\n if (openFiles.length) {\n if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) {\n this.projectService.logger.info(`Queueing diagnostics update for ${openFiles}`);\n this.errorCheck.startNew((next) => this.updateErrorCheck(\n next,\n openFiles,\n 100,\n /*requireOpen*/\n true\n ));\n }\n this.event({\n openFiles\n }, ProjectsUpdatedInBackgroundEvent);\n }\n }\n logError(err, cmd) {\n this.logErrorWorker(err, cmd);\n }\n logErrorWorker(err, cmd, fileRequest) {\n let msg = \"Exception on executing command \" + cmd;\n if (err.message) {\n msg += \":\\n\" + indent2(err.message);\n if (err.stack) {\n msg += \"\\n\" + indent2(err.stack);\n }\n }\n if (this.logger.hasLevel(3 /* verbose */)) {\n if (fileRequest) {\n try {\n const { file, project } = this.getFileAndProject(fileRequest);\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n if (scriptInfo) {\n const text = getSnapshotText(scriptInfo.getSnapshot());\n msg += `\n\nFile text of ${fileRequest.file}:${indent2(text)}\n`;\n }\n } catch {\n }\n }\n if (err.ProgramFiles) {\n msg += `\n\nProgram files: ${JSON.stringify(err.ProgramFiles)}\n`;\n msg += `\n\nProjects::\n`;\n let counter = 0;\n const addProjectInfo = (project) => {\n msg += `\nProject '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter}\n`;\n msg += project.filesToString(\n /*writeProjectFileNames*/\n true\n );\n msg += \"\\n-----------------------------------------------\\n\";\n counter++;\n };\n this.projectService.externalProjects.forEach(addProjectInfo);\n this.projectService.configuredProjects.forEach(addProjectInfo);\n this.projectService.inferredProjects.forEach(addProjectInfo);\n }\n }\n this.logger.msg(msg, \"Err\" /* Err */);\n }\n send(msg) {\n if (msg.type === \"event\" && !this.canUseEvents) {\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`Session does not support events: ignored event: ${stringifyIndented(msg)}`);\n }\n return;\n }\n this.writeMessage(msg);\n }\n writeMessage(msg) {\n const msgText = formatMessage2(msg, this.logger, this.byteLength, this.host.newLine);\n this.host.write(msgText);\n }\n event(body, eventName) {\n this.send(toEvent(eventName, body));\n }\n /** @internal */\n doOutput(info, cmdName, reqSeq, success, performanceData, message) {\n const res = {\n seq: 0,\n type: \"response\",\n command: cmdName,\n request_seq: reqSeq,\n success,\n performanceData: performanceData && toProtocolPerformanceData(performanceData)\n };\n if (success) {\n let metadata;\n if (isArray(info)) {\n res.body = info;\n metadata = info.metadata;\n delete info.metadata;\n } else if (typeof info === \"object\") {\n if (info.metadata) {\n const { metadata: infoMetadata, ...body } = info;\n res.body = body;\n metadata = infoMetadata;\n } else {\n res.body = info;\n }\n } else {\n res.body = info;\n }\n if (metadata) res.metadata = metadata;\n } else {\n Debug.assert(info === void 0);\n }\n if (message) {\n res.message = message;\n }\n this.send(res);\n }\n semanticCheck(file, project) {\n var _a, _b;\n const diagnosticsStartTime = timestamp();\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"semanticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n const diags = isDeclarationFileInJSOnlyNonConfiguredProject(project, file) ? emptyArray2 : project.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file);\n this.sendDiagnosticsEvent(file, project, diags, \"semanticDiag\", diagnosticsStartTime);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n syntacticCheck(file, project) {\n var _a, _b;\n const diagnosticsStartTime = timestamp();\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"syntacticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSyntacticDiagnostics(file), \"syntaxDiag\", diagnosticsStartTime);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n suggestionCheck(file, project) {\n var _a, _b;\n const diagnosticsStartTime = timestamp();\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"suggestionCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSuggestionDiagnostics(file), \"suggestionDiag\", diagnosticsStartTime);\n (_b = tracing) == null ? void 0 : _b.pop();\n }\n regionSemanticCheck(file, project, ranges) {\n var _a, _b, _c;\n const diagnosticsStartTime = timestamp();\n (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"regionSemanticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n let diagnosticsResult;\n if (!this.shouldDoRegionCheck(file) || !(diagnosticsResult = project.getLanguageService().getRegionSemanticDiagnostics(file, ranges))) {\n (_b = tracing) == null ? void 0 : _b.pop();\n return;\n }\n this.sendDiagnosticsEvent(file, project, diagnosticsResult.diagnostics, \"regionSemanticDiag\", diagnosticsStartTime, diagnosticsResult.spans);\n (_c = tracing) == null ? void 0 : _c.pop();\n return;\n }\n // We should only do the region-based semantic check if we think it would be\n // considerably faster than a whole-file semantic check.\n /** @internal */\n shouldDoRegionCheck(file) {\n var _a;\n const lineCount = (_a = this.projectService.getScriptInfoForNormalizedPath(file)) == null ? void 0 : _a.textStorage.getLineInfo().getLineCount();\n return !!(lineCount && lineCount >= this.regionDiagLineCountThreshold);\n }\n sendDiagnosticsEvent(file, project, diagnostics, kind, diagnosticsStartTime, spans) {\n try {\n const scriptInfo = Debug.checkDefined(project.getScriptInfo(file));\n const duration = timestamp() - diagnosticsStartTime;\n const body = {\n file,\n diagnostics: diagnostics.map((diag2) => formatDiag(file, project, diag2)),\n spans: spans == null ? void 0 : spans.map((span) => toProtocolTextSpan(span, scriptInfo))\n };\n this.event(\n body,\n kind\n );\n this.addDiagnosticsPerformanceData(file, kind, duration);\n } catch (err) {\n this.logError(err, kind);\n }\n }\n /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */\n updateErrorCheck(next, checkList, ms, requireOpen = true) {\n if (checkList.length === 0) {\n return;\n }\n Debug.assert(!this.suppressDiagnosticEvents);\n const seq = this.changeSeq;\n const followMs = Math.min(ms, 200);\n let index = 0;\n const goNext = () => {\n index++;\n if (checkList.length > index) {\n return next.delay(\"checkOne\", followMs, checkOne);\n }\n };\n const doSemanticCheck = (fileName, project) => {\n this.semanticCheck(fileName, project);\n if (this.changeSeq !== seq) {\n return;\n }\n if (this.getPreferences(fileName).disableSuggestions) {\n return goNext();\n }\n next.immediate(\"suggestionCheck\", () => {\n this.suggestionCheck(fileName, project);\n goNext();\n });\n };\n const checkOne = () => {\n if (this.changeSeq !== seq) {\n return;\n }\n let ranges;\n let item = checkList[index];\n if (isString(item)) {\n item = this.toPendingErrorCheck(item);\n } else if (\"ranges\" in item) {\n ranges = item.ranges;\n item = this.toPendingErrorCheck(item.file);\n }\n if (!item) {\n return goNext();\n }\n const { fileName, project } = item;\n updateProjectIfDirty(project);\n if (!project.containsFile(fileName, requireOpen)) {\n return;\n }\n this.syntacticCheck(fileName, project);\n if (this.changeSeq !== seq) {\n return;\n }\n if (project.projectService.serverMode !== 0 /* Semantic */) {\n return goNext();\n }\n if (ranges) {\n return next.immediate(\"regionSemanticCheck\", () => {\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(fileName);\n if (scriptInfo) {\n this.regionSemanticCheck(fileName, project, ranges.map((range) => this.getRange({ file: fileName, ...range }, scriptInfo)));\n }\n if (this.changeSeq !== seq) {\n return;\n }\n next.immediate(\"semanticCheck\", () => doSemanticCheck(fileName, project));\n });\n }\n next.immediate(\"semanticCheck\", () => doSemanticCheck(fileName, project));\n };\n if (checkList.length > index && this.changeSeq === seq) {\n next.delay(\"checkOne\", ms, checkOne);\n }\n }\n cleanProjects(caption, projects) {\n if (!projects) {\n return;\n }\n this.logger.info(`cleaning ${caption}`);\n for (const p of projects) {\n p.getLanguageService(\n /*ensureSynchronized*/\n false\n ).cleanupSemanticCache();\n p.cleanupProgram();\n }\n }\n cleanup() {\n this.cleanProjects(\"inferred projects\", this.projectService.inferredProjects);\n this.cleanProjects(\"configured projects\", arrayFrom(this.projectService.configuredProjects.values()));\n this.cleanProjects(\"external projects\", this.projectService.externalProjects);\n if (this.host.gc) {\n this.logger.info(`host.gc()`);\n this.host.gc();\n }\n }\n getEncodedSyntacticClassifications(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n return languageService.getEncodedSyntacticClassifications(file, args);\n }\n getEncodedSemanticClassifications(args) {\n const { file, project } = this.getFileAndProject(args);\n const format = args.format === \"2020\" ? \"2020\" /* TwentyTwenty */ : \"original\" /* Original */;\n return project.getLanguageService().getEncodedSemanticClassifications(file, args, format);\n }\n getProject(projectFileName) {\n return projectFileName === void 0 ? void 0 : this.projectService.findProject(projectFileName);\n }\n getConfigFileAndProject(args) {\n const project = this.getProject(args.projectFileName);\n const file = toNormalizedPath(args.file);\n return {\n configFile: project && project.hasConfigFile(file) ? file : void 0,\n project\n };\n }\n getConfigFileDiagnostics(configFile, project, includeLinePosition) {\n const projectErrors = project.getAllProjectErrors();\n const optionsErrors = project.getLanguageService().getCompilerOptionsDiagnostics();\n const diagnosticsForConfigFile = filter(\n concatenate(projectErrors, optionsErrors),\n (diagnostic) => !!diagnostic.file && diagnostic.file.fileName === configFile\n );\n return includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnosticsForConfigFile) : map(\n diagnosticsForConfigFile,\n (diagnostic) => formatDiagnosticToProtocol(\n diagnostic,\n /*includeFileName*/\n false\n )\n );\n }\n convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) {\n return diagnostics.map((d) => ({\n message: flattenDiagnosticMessageText(d.messageText, this.host.newLine),\n start: d.start,\n // TODO: GH#18217\n length: d.length,\n // TODO: GH#18217\n category: diagnosticCategoryName(d),\n code: d.code,\n source: d.source,\n startLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start)),\n // TODO: GH#18217\n endLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start + d.length)),\n // TODO: GH#18217\n reportsUnnecessary: d.reportsUnnecessary,\n reportsDeprecated: d.reportsDeprecated,\n relatedInformation: map(d.relatedInformation, formatRelatedInformation)\n }));\n }\n getCompilerOptionsDiagnostics(args) {\n const project = this.getProject(args.projectFileName);\n return this.convertToDiagnosticsWithLinePosition(\n filter(\n project.getLanguageService().getCompilerOptionsDiagnostics(),\n (diagnostic) => !diagnostic.file\n ),\n /*scriptInfo*/\n void 0\n );\n }\n convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) {\n return diagnostics.map(\n (d) => ({\n message: flattenDiagnosticMessageText(d.messageText, this.host.newLine),\n start: d.start,\n length: d.length,\n category: diagnosticCategoryName(d),\n code: d.code,\n source: d.source,\n startLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start),\n // TODO: GH#18217\n endLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start + d.length),\n reportsUnnecessary: d.reportsUnnecessary,\n reportsDeprecated: d.reportsDeprecated,\n relatedInformation: map(d.relatedInformation, formatRelatedInformation)\n })\n );\n }\n getDiagnosticsWorker(args, isSemantic, selector, includeLinePosition) {\n const { project, file } = this.getFileAndProject(args);\n if (isSemantic && isDeclarationFileInJSOnlyNonConfiguredProject(project, file)) {\n return emptyArray2;\n }\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n const diagnostics = selector(project, file);\n return includeLinePosition ? this.convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) : diagnostics.map((d) => formatDiag(file, project, d));\n }\n getDefinition(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getDefinitionAtPosition(file, position) || emptyArray2, project);\n return simplifiedResult ? this.mapDefinitionInfo(definitions, project) : definitions.map(_Session.mapToOriginalLocation);\n }\n mapDefinitionInfoLocations(definitions, project) {\n return definitions.map((info) => {\n const newDocumentSpan = getMappedDocumentSpanForProject(info, project);\n return !newDocumentSpan ? info : {\n ...newDocumentSpan,\n containerKind: info.containerKind,\n containerName: info.containerName,\n kind: info.kind,\n name: info.name,\n failedAliasResolution: info.failedAliasResolution,\n ...info.unverified && { unverified: info.unverified }\n };\n });\n }\n getDefinitionAndBoundSpan(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const scriptInfo = Debug.checkDefined(project.getScriptInfo(file));\n const unmappedDefinitionAndBoundSpan = project.getLanguageService().getDefinitionAndBoundSpan(file, position);\n if (!unmappedDefinitionAndBoundSpan || !unmappedDefinitionAndBoundSpan.definitions) {\n return {\n definitions: emptyArray2,\n textSpan: void 0\n // TODO: GH#18217\n };\n }\n const definitions = this.mapDefinitionInfoLocations(unmappedDefinitionAndBoundSpan.definitions, project);\n const { textSpan } = unmappedDefinitionAndBoundSpan;\n if (simplifiedResult) {\n return {\n definitions: this.mapDefinitionInfo(definitions, project),\n textSpan: toProtocolTextSpan(textSpan, scriptInfo)\n };\n }\n return {\n definitions: definitions.map(_Session.mapToOriginalLocation),\n textSpan\n };\n }\n findSourceDefinition(args) {\n var _a;\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const unmappedDefinitions = project.getLanguageService().getDefinitionAtPosition(file, position);\n let definitions = this.mapDefinitionInfoLocations(unmappedDefinitions || emptyArray2, project).slice();\n const needsJsResolution = this.projectService.serverMode === 0 /* Semantic */ && (!some(definitions, (d) => toNormalizedPath(d.fileName) !== file && !d.isAmbient) || some(definitions, (d) => !!d.failedAliasResolution));\n if (needsJsResolution) {\n const definitionSet = createSet(\n (d) => d.textSpan.start,\n getDocumentSpansEqualityComparer(this.host.useCaseSensitiveFileNames)\n );\n definitions == null ? void 0 : definitions.forEach((d) => definitionSet.add(d));\n const noDtsProject = project.getNoDtsResolutionProject(file);\n const ls = noDtsProject.getLanguageService();\n const jsDefinitions = (_a = ls.getDefinitionAtPosition(\n file,\n position,\n /*searchOtherFilesOnly*/\n true,\n /*stopAtAlias*/\n false\n )) == null ? void 0 : _a.filter((d) => toNormalizedPath(d.fileName) !== file);\n if (some(jsDefinitions)) {\n for (const jsDefinition of jsDefinitions) {\n if (jsDefinition.unverified) {\n const refined = tryRefineDefinition(jsDefinition, project.getLanguageService().getProgram(), ls.getProgram());\n if (some(refined)) {\n for (const def of refined) {\n definitionSet.add(def);\n }\n continue;\n }\n }\n definitionSet.add(jsDefinition);\n }\n } else {\n const ambientCandidates = definitions.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient);\n for (const candidate of some(ambientCandidates) ? ambientCandidates : getAmbientCandidatesByClimbingAccessChain()) {\n const fileNameToSearch = findImplementationFileFromDtsFileName(candidate.fileName, file, noDtsProject);\n if (!fileNameToSearch) continue;\n const info = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n fileNameToSearch,\n noDtsProject.currentDirectory,\n noDtsProject.directoryStructureHost,\n /*deferredDeleteOk*/\n false\n );\n if (!info) continue;\n if (!noDtsProject.containsScriptInfo(info)) {\n noDtsProject.addRoot(info);\n noDtsProject.updateGraph();\n }\n const noDtsProgram = ls.getProgram();\n const fileToSearch = Debug.checkDefined(noDtsProgram.getSourceFile(fileNameToSearch));\n for (const match of searchForDeclaration(candidate.name, fileToSearch, noDtsProgram)) {\n definitionSet.add(match);\n }\n }\n }\n definitions = arrayFrom(definitionSet.values());\n }\n definitions = definitions.filter((d) => !d.isAmbient && !d.failedAliasResolution);\n return this.mapDefinitionInfo(definitions, project);\n function findImplementationFileFromDtsFileName(fileName, resolveFromFile, auxiliaryProject) {\n var _a2, _b, _c;\n const nodeModulesPathParts = getNodeModulePathParts(fileName);\n if (nodeModulesPathParts && fileName.lastIndexOf(nodeModulesPathPart) === nodeModulesPathParts.topLevelNodeModulesIndex) {\n const packageDirectory = fileName.substring(0, nodeModulesPathParts.packageRootIndex);\n const packageJsonCache = (_a2 = project.getModuleResolutionCache()) == null ? void 0 : _a2.getPackageJsonInfoCache();\n const compilerOptions = project.getCompilationSettings();\n const packageJson = getPackageScopeForPath(getNormalizedAbsolutePath(packageDirectory, project.getCurrentDirectory()), getTemporaryModuleResolutionState(packageJsonCache, project, compilerOptions));\n if (!packageJson) return void 0;\n const entrypoints = getEntrypointsFromPackageJsonInfo(\n packageJson,\n { moduleResolution: 2 /* Node10 */ },\n project,\n project.getModuleResolutionCache()\n );\n const packageNamePathPart = fileName.substring(\n nodeModulesPathParts.topLevelPackageNameIndex + 1,\n nodeModulesPathParts.packageRootIndex\n );\n const packageName = getPackageNameFromTypesPackageName(unmangleScopedPackageName(packageNamePathPart));\n const path = project.toPath(fileName);\n if (entrypoints && some(entrypoints, (e) => project.toPath(e) === path)) {\n return (_b = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(packageName, resolveFromFile).resolvedModule) == null ? void 0 : _b.resolvedFileName;\n } else {\n const pathToFileInPackage = fileName.substring(nodeModulesPathParts.packageRootIndex + 1);\n const specifier = `${packageName}/${removeFileExtension(pathToFileInPackage)}`;\n return (_c = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(specifier, resolveFromFile).resolvedModule) == null ? void 0 : _c.resolvedFileName;\n }\n }\n return void 0;\n }\n function getAmbientCandidatesByClimbingAccessChain() {\n const ls = project.getLanguageService();\n const program = ls.getProgram();\n const initialNode = getTouchingPropertyName(program.getSourceFile(file), position);\n if ((isStringLiteralLike(initialNode) || isIdentifier(initialNode)) && isAccessExpression(initialNode.parent)) {\n return forEachNameInAccessChainWalkingLeft(initialNode, (nameInChain) => {\n var _a2;\n if (nameInChain === initialNode) return void 0;\n const candidates = (_a2 = ls.getDefinitionAtPosition(\n file,\n nameInChain.getStart(),\n /*searchOtherFilesOnly*/\n true,\n /*stopAtAlias*/\n false\n )) == null ? void 0 : _a2.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient).map((d) => ({\n fileName: d.fileName,\n name: getTextOfIdentifierOrLiteral(initialNode)\n }));\n if (some(candidates)) {\n return candidates;\n }\n }) || emptyArray2;\n }\n return emptyArray2;\n }\n function tryRefineDefinition(definition, program, noDtsProgram) {\n var _a2;\n const fileToSearch = noDtsProgram.getSourceFile(definition.fileName);\n if (!fileToSearch) {\n return void 0;\n }\n const initialNode = getTouchingPropertyName(program.getSourceFile(file), position);\n const symbol = program.getTypeChecker().getSymbolAtLocation(initialNode);\n const importSpecifier = symbol && getDeclarationOfKind(symbol, 277 /* ImportSpecifier */);\n if (!importSpecifier) return void 0;\n const nameToSearch = ((_a2 = importSpecifier.propertyName) == null ? void 0 : _a2.text) || importSpecifier.name.text;\n return searchForDeclaration(nameToSearch, fileToSearch, noDtsProgram);\n }\n function searchForDeclaration(declarationName, fileToSearch, noDtsProgram) {\n const matches = ts_FindAllReferences_exports.Core.getTopMostDeclarationNamesInFile(declarationName, fileToSearch);\n return mapDefined(matches, (match) => {\n const symbol = noDtsProgram.getTypeChecker().getSymbolAtLocation(match);\n const decl = getDeclarationFromName(match);\n if (symbol && decl) {\n return ts_GoToDefinition_exports.createDefinitionInfo(\n decl,\n noDtsProgram.getTypeChecker(),\n symbol,\n decl,\n /*unverified*/\n true\n );\n }\n });\n }\n }\n getEmitOutput(args) {\n const { file, project } = this.getFileAndProject(args);\n if (!project.shouldEmitFile(project.getScriptInfo(file))) {\n return { emitSkipped: true, outputFiles: [], diagnostics: [] };\n }\n const result = project.getLanguageService().getEmitOutput(file);\n return args.richResponse ? {\n ...result,\n diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(result.diagnostics) : result.diagnostics.map((d) => formatDiagnosticToProtocol(\n d,\n /*includeFileName*/\n true\n ))\n } : result;\n }\n mapJSDocTagInfo(tags, project, richResponse) {\n return tags ? tags.map((tag) => {\n var _a;\n return {\n ...tag,\n text: richResponse ? this.mapDisplayParts(tag.text, project) : (_a = tag.text) == null ? void 0 : _a.map((part) => part.text).join(\"\")\n };\n }) : [];\n }\n mapDisplayParts(parts, project) {\n if (!parts) {\n return [];\n }\n return parts.map(\n (part) => part.kind !== \"linkName\" ? part : {\n ...part,\n target: this.toFileSpan(part.target.fileName, part.target.textSpan, project)\n }\n );\n }\n mapSignatureHelpItems(items, project, richResponse) {\n return items.map((item) => ({\n ...item,\n documentation: this.mapDisplayParts(item.documentation, project),\n parameters: item.parameters.map((p) => ({ ...p, documentation: this.mapDisplayParts(p.documentation, project) })),\n tags: this.mapJSDocTagInfo(item.tags, project, richResponse)\n }));\n }\n mapDefinitionInfo(definitions, project) {\n return definitions.map((def) => ({ ...this.toFileSpanWithContext(def.fileName, def.textSpan, def.contextSpan, project), ...def.unverified && { unverified: def.unverified } }));\n }\n /*\n * When we map a .d.ts location to .ts, Visual Studio gets confused because there's no associated Roslyn Document in\n * the same project which corresponds to the file. VS Code has no problem with this, and luckily we have two protocols.\n * This retains the existing behavior for the \"simplified\" (VS Code) protocol but stores the .d.ts location in a\n * set of additional fields, and does the reverse for VS (store the .d.ts location where\n * it used to be and stores the .ts location in the additional fields).\n */\n static mapToOriginalLocation(def) {\n if (def.originalFileName) {\n Debug.assert(def.originalTextSpan !== void 0, \"originalTextSpan should be present if originalFileName is\");\n return {\n ...def,\n fileName: def.originalFileName,\n textSpan: def.originalTextSpan,\n targetFileName: def.fileName,\n targetTextSpan: def.textSpan,\n contextSpan: def.originalContextSpan,\n targetContextSpan: def.contextSpan\n };\n }\n return def;\n }\n toFileSpan(fileName, textSpan, project) {\n const ls = project.getLanguageService();\n const start = ls.toLineColumnOffset(fileName, textSpan.start);\n const end = ls.toLineColumnOffset(fileName, textSpanEnd(textSpan));\n return {\n file: fileName,\n start: { line: start.line + 1, offset: start.character + 1 },\n end: { line: end.line + 1, offset: end.character + 1 }\n };\n }\n toFileSpanWithContext(fileName, textSpan, contextSpan, project) {\n const fileSpan = this.toFileSpan(fileName, textSpan, project);\n const context = contextSpan && this.toFileSpan(fileName, contextSpan, project);\n return context ? { ...fileSpan, contextStart: context.start, contextEnd: context.end } : fileSpan;\n }\n getTypeDefinition(args) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getTypeDefinitionAtPosition(file, position) || emptyArray2, project);\n return this.mapDefinitionInfo(definitions, project);\n }\n mapImplementationLocations(implementations, project) {\n return implementations.map((info) => {\n const newDocumentSpan = getMappedDocumentSpanForProject(info, project);\n return !newDocumentSpan ? info : {\n ...newDocumentSpan,\n kind: info.kind,\n displayParts: info.displayParts\n };\n });\n }\n getImplementation(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const implementations = this.mapImplementationLocations(project.getLanguageService().getImplementationAtPosition(file, position) || emptyArray2, project);\n return simplifiedResult ? implementations.map(({ fileName, textSpan, contextSpan }) => this.toFileSpanWithContext(fileName, textSpan, contextSpan, project)) : implementations.map(_Session.mapToOriginalLocation);\n }\n getSyntacticDiagnosticsSync(args) {\n const { configFile } = this.getConfigFileAndProject(args);\n if (configFile) {\n return emptyArray2;\n }\n return this.getDiagnosticsWorker(\n args,\n /*isSemantic*/\n false,\n (project, file) => project.getLanguageService().getSyntacticDiagnostics(file),\n !!args.includeLinePosition\n );\n }\n getSemanticDiagnosticsSync(args) {\n const { configFile, project } = this.getConfigFileAndProject(args);\n if (configFile) {\n return this.getConfigFileDiagnostics(configFile, project, !!args.includeLinePosition);\n }\n return this.getDiagnosticsWorker(\n args,\n /*isSemantic*/\n true,\n (project2, file) => project2.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file),\n !!args.includeLinePosition\n );\n }\n getSuggestionDiagnosticsSync(args) {\n const { configFile } = this.getConfigFileAndProject(args);\n if (configFile) {\n return emptyArray2;\n }\n return this.getDiagnosticsWorker(\n args,\n /*isSemantic*/\n true,\n (project, file) => project.getLanguageService().getSuggestionDiagnostics(file),\n !!args.includeLinePosition\n );\n }\n getJsxClosingTag(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n const tag = languageService.getJsxClosingTagAtPosition(file, position);\n return tag === void 0 ? void 0 : { newText: tag.newText, caretOffset: 0 };\n }\n getLinkedEditingRange(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n const linkedEditInfo = languageService.getLinkedEditingRangeAtPosition(file, position);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n if (scriptInfo === void 0 || linkedEditInfo === void 0) return void 0;\n return convertLinkedEditInfoToRanges(linkedEditInfo, scriptInfo);\n }\n getDocumentHighlights(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const documentHighlights = project.getLanguageService().getDocumentHighlights(file, position, args.filesToSearch);\n if (!documentHighlights) return emptyArray2;\n if (!simplifiedResult) return documentHighlights;\n return documentHighlights.map(({ fileName, highlightSpans }) => {\n const scriptInfo = project.getScriptInfo(fileName);\n return {\n file: fileName,\n highlightSpans: highlightSpans.map(({ textSpan, kind, contextSpan }) => ({\n ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo),\n kind\n }))\n };\n });\n }\n provideInlayHints(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const hints = project.getLanguageService().provideInlayHints(file, args, this.getPreferences(file));\n return hints.map((hint) => {\n const { position, displayParts } = hint;\n return {\n ...hint,\n position: scriptInfo.positionToLineOffset(position),\n displayParts: displayParts == null ? void 0 : displayParts.map(({ text, span, file: file2 }) => {\n if (span) {\n Debug.assertIsDefined(file2, \"Target file should be defined together with its span.\");\n const scriptInfo2 = this.projectService.getScriptInfo(file2);\n return {\n text,\n span: {\n start: scriptInfo2.positionToLineOffset(span.start),\n end: scriptInfo2.positionToLineOffset(span.start + span.length),\n file: file2\n }\n };\n } else {\n return { text };\n }\n })\n };\n });\n }\n mapCode(args) {\n var _a;\n const formatOptions = this.getHostFormatOptions();\n const preferences = this.getHostPreferences();\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const focusLocations = (_a = args.mapping.focusLocations) == null ? void 0 : _a.map((spans) => {\n return spans.map((loc) => {\n const start = scriptInfo.lineOffsetToPosition(loc.start.line, loc.start.offset);\n const end = scriptInfo.lineOffsetToPosition(loc.end.line, loc.end.offset);\n return {\n start,\n length: end - start\n };\n });\n });\n const changes = languageService.mapCode(file, args.mapping.contents, focusLocations, formatOptions, preferences);\n return this.mapTextChangesToCodeEdits(changes);\n }\n getCopilotRelatedInfo() {\n return {\n relatedFiles: []\n };\n }\n setCompilerOptionsForInferredProjects(args) {\n this.projectService.setCompilerOptionsForInferredProjects(args.options, args.projectRootPath);\n }\n getProjectInfo(args) {\n return this.getProjectInfoWorker(\n args.file,\n args.projectFileName,\n args.needFileNameList,\n args.needDefaultConfiguredProjectInfo,\n /*excludeConfigFiles*/\n false\n );\n }\n getProjectInfoWorker(uncheckedFileName, projectFileName, needFileNameList, needDefaultConfiguredProjectInfo, excludeConfigFiles) {\n const { project } = this.getFileAndProjectWorker(uncheckedFileName, projectFileName);\n updateProjectIfDirty(project);\n const projectInfo = {\n configFileName: project.getProjectName(),\n languageServiceDisabled: !project.languageServiceEnabled,\n fileNames: needFileNameList ? project.getFileNames(\n /*excludeFilesFromExternalLibraries*/\n false,\n excludeConfigFiles\n ) : void 0,\n configuredProjectInfo: needDefaultConfiguredProjectInfo ? this.getDefaultConfiguredProjectInfo(uncheckedFileName) : void 0\n };\n return projectInfo;\n }\n getDefaultConfiguredProjectInfo(uncheckedFileName) {\n var _a;\n const info = this.projectService.getScriptInfo(uncheckedFileName);\n if (!info) return;\n const result = this.projectService.findDefaultConfiguredProjectWorker(\n info,\n 3 /* CreateReplay */\n );\n if (!result) return void 0;\n let notMatchedByConfig;\n let notInProject;\n result.seenProjects.forEach((kind, project) => {\n if (project !== result.defaultProject) {\n if (kind !== 3 /* CreateReplay */) {\n (notMatchedByConfig ?? (notMatchedByConfig = [])).push(toNormalizedPath(project.getConfigFilePath()));\n } else {\n (notInProject ?? (notInProject = [])).push(toNormalizedPath(project.getConfigFilePath()));\n }\n }\n });\n (_a = result.seenConfigs) == null ? void 0 : _a.forEach((config) => (notMatchedByConfig ?? (notMatchedByConfig = [])).push(config));\n return {\n notMatchedByConfig,\n notInProject,\n defaultProject: result.defaultProject && toNormalizedPath(result.defaultProject.getConfigFilePath())\n };\n }\n getRenameInfo(args) {\n const { file, project } = this.getFileAndProject(args);\n const position = this.getPositionInFile(args, file);\n const preferences = this.getPreferences(file);\n return project.getLanguageService().getRenameInfo(file, position, preferences);\n }\n getProjects(args, getScriptInfoEnsuringProjectsUptoDate, ignoreNoProjectError) {\n let projects;\n let symLinkedProjects;\n if (args.projectFileName) {\n const project = this.getProject(args.projectFileName);\n if (project) {\n projects = [project];\n }\n } else {\n const scriptInfo = getScriptInfoEnsuringProjectsUptoDate ? this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file) : this.projectService.getScriptInfo(args.file);\n if (!scriptInfo) {\n if (ignoreNoProjectError) return emptyArray2;\n this.projectService.logErrorForScriptInfoNotFound(args.file);\n return Errors.ThrowNoProject();\n } else if (!getScriptInfoEnsuringProjectsUptoDate) {\n this.projectService.ensureDefaultProjectForFile(scriptInfo);\n }\n projects = scriptInfo.containingProjects;\n symLinkedProjects = this.projectService.getSymlinkedProjects(scriptInfo);\n }\n projects = filter(projects, (p) => p.languageServiceEnabled && !p.isOrphan());\n if (!ignoreNoProjectError && (!projects || !projects.length) && !symLinkedProjects) {\n this.projectService.logErrorForScriptInfoNotFound(args.file ?? args.projectFileName);\n return Errors.ThrowNoProject();\n }\n return symLinkedProjects ? { projects, symLinkedProjects } : projects;\n }\n getDefaultProject(args) {\n if (args.projectFileName) {\n const project = this.getProject(args.projectFileName);\n if (project) {\n return project;\n }\n if (!args.file) {\n return Errors.ThrowNoProject();\n }\n }\n const info = this.projectService.getScriptInfo(args.file);\n return info.getDefaultProject();\n }\n getRenameLocations(args, simplifiedResult) {\n const file = toNormalizedPath(args.file);\n const position = this.getPositionInFile(args, file);\n const projects = this.getProjects(args);\n const defaultProject = this.getDefaultProject(args);\n const preferences = this.getPreferences(file);\n const renameInfo = this.mapRenameInfo(\n defaultProject.getLanguageService().getRenameInfo(file, position, preferences),\n Debug.checkDefined(this.projectService.getScriptInfo(file))\n );\n if (!renameInfo.canRename) return simplifiedResult ? { info: renameInfo, locs: [] } : [];\n const locations = getRenameLocationsWorker(\n projects,\n defaultProject,\n { fileName: args.file, pos: position },\n !!args.findInStrings,\n !!args.findInComments,\n preferences,\n this.host.useCaseSensitiveFileNames\n );\n if (!simplifiedResult) return locations;\n return { info: renameInfo, locs: this.toSpanGroups(locations) };\n }\n mapRenameInfo(info, scriptInfo) {\n if (info.canRename) {\n const { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan } = info;\n return identity(\n { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan: toProtocolTextSpan(triggerSpan, scriptInfo) }\n );\n } else {\n return info;\n }\n }\n toSpanGroups(locations) {\n const map2 = /* @__PURE__ */ new Map();\n for (const { fileName, textSpan, contextSpan, originalContextSpan: _2, originalTextSpan: _, originalFileName: _1, ...prefixSuffixText } of locations) {\n let group2 = map2.get(fileName);\n if (!group2) map2.set(fileName, group2 = { file: fileName, locs: [] });\n const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(fileName));\n group2.locs.push({ ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), ...prefixSuffixText });\n }\n return arrayFrom(map2.values());\n }\n getReferences(args, simplifiedResult) {\n const file = toNormalizedPath(args.file);\n const projects = this.getProjects(args);\n const position = this.getPositionInFile(args, file);\n const references = getReferencesWorker(\n projects,\n this.getDefaultProject(args),\n { fileName: args.file, pos: position },\n this.host.useCaseSensitiveFileNames,\n this.logger\n );\n if (!simplifiedResult) return references;\n const preferences = this.getPreferences(file);\n const defaultProject = this.getDefaultProject(args);\n const scriptInfo = defaultProject.getScriptInfoForNormalizedPath(file);\n const nameInfo = defaultProject.getLanguageService().getQuickInfoAtPosition(file, position);\n const symbolDisplayString = nameInfo ? displayPartsToString(nameInfo.displayParts) : \"\";\n const nameSpan = nameInfo && nameInfo.textSpan;\n const symbolStartOffset = nameSpan ? scriptInfo.positionToLineOffset(nameSpan.start).offset : 0;\n const symbolName2 = nameSpan ? scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan)) : \"\";\n const refs = flatMap(references, (referencedSymbol) => {\n return referencedSymbol.references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences));\n });\n return { refs, symbolName: symbolName2, symbolStartOffset, symbolDisplayString };\n }\n getFileReferences(args, simplifiedResult) {\n const projects = this.getProjects(args);\n const fileName = toNormalizedPath(args.file);\n const preferences = this.getPreferences(fileName);\n const initialLocation = { fileName, pos: 0 };\n const perProjectResults = getPerProjectReferences(\n projects,\n this.getDefaultProject(args),\n initialLocation,\n initialLocation,\n mapDefinitionInProjectIfFileInProject,\n (project) => {\n this.logger.info(`Finding references to file ${fileName} in project ${project.getProjectName()}`);\n return project.getLanguageService().getFileReferences(fileName);\n }\n );\n let references;\n if (isArray(perProjectResults)) {\n references = perProjectResults;\n } else {\n references = [];\n const seen = createDocumentSpanSet(this.host.useCaseSensitiveFileNames);\n perProjectResults.forEach((projectOutputs) => {\n for (const referenceEntry of projectOutputs) {\n if (!seen.has(referenceEntry)) {\n references.push(referenceEntry);\n seen.add(referenceEntry);\n }\n }\n });\n }\n if (!simplifiedResult) return references;\n const refs = references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences));\n return {\n refs,\n symbolName: `\"${args.file}\"`\n };\n }\n /**\n * @param fileName is the name of the file to be opened\n * @param fileContent is a version of the file content that is known to be more up to date than the one on disk\n */\n openClientFile(fileName, fileContent, scriptKind, projectRootPath) {\n this.projectService.openClientFileWithNormalizedPath(\n fileName,\n fileContent,\n scriptKind,\n /*hasMixedContent*/\n false,\n projectRootPath\n );\n }\n getPosition(args, scriptInfo) {\n return args.position !== void 0 ? args.position : scriptInfo.lineOffsetToPosition(args.line, args.offset);\n }\n getPositionInFile(args, file) {\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n return this.getPosition(args, scriptInfo);\n }\n getFileAndProject(args) {\n return this.getFileAndProjectWorker(args.file, args.projectFileName);\n }\n getFileAndLanguageServiceForSyntacticOperation(args) {\n const { file, project } = this.getFileAndProject(args);\n return {\n file,\n languageService: project.getLanguageService(\n /*ensureSynchronized*/\n false\n )\n };\n }\n getFileAndProjectWorker(uncheckedFileName, projectFileName) {\n const file = toNormalizedPath(uncheckedFileName);\n const project = this.getProject(projectFileName) || this.projectService.ensureDefaultProjectForFile(file);\n return { file, project };\n }\n getOutliningSpans(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const spans = languageService.getOutliningSpans(file);\n if (simplifiedResult) {\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n return spans.map((s) => ({\n textSpan: toProtocolTextSpan(s.textSpan, scriptInfo),\n hintSpan: toProtocolTextSpan(s.hintSpan, scriptInfo),\n bannerText: s.bannerText,\n autoCollapse: s.autoCollapse,\n kind: s.kind\n }));\n } else {\n return spans;\n }\n }\n getTodoComments(args) {\n const { file, project } = this.getFileAndProject(args);\n return project.getLanguageService().getTodoComments(file, args.descriptors);\n }\n getDocCommentTemplate(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file));\n }\n getSpanOfEnclosingComment(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const onlyMultiLine = args.onlyMultiLine;\n const position = this.getPositionInFile(args, file);\n return languageService.getSpanOfEnclosingComment(file, position, onlyMultiLine);\n }\n getIndentation(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n const indentation = languageService.getIndentationAtPosition(file, position, options);\n return { position, indentation };\n }\n getBreakpointStatement(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n return languageService.getBreakpointStatementAtPosition(file, position);\n }\n getNameOrDottedNameSpan(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n return languageService.getNameOrDottedNameSpan(file, position, position);\n }\n isValidBraceCompletion(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const position = this.getPositionInFile(args, file);\n return languageService.isValidBraceCompletionAtPosition(file, position, args.openingBrace.charCodeAt(0));\n }\n getQuickInfoWorker(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const userPreferences = this.getPreferences(file);\n const quickInfo = project.getLanguageService().getQuickInfoAtPosition(\n file,\n this.getPosition(args, scriptInfo),\n userPreferences.maximumHoverLength,\n args.verbosityLevel\n );\n if (!quickInfo) {\n return void 0;\n }\n const useDisplayParts = !!userPreferences.displayPartsForJSDoc;\n if (simplifiedResult) {\n const displayString = displayPartsToString(quickInfo.displayParts);\n return {\n kind: quickInfo.kind,\n kindModifiers: quickInfo.kindModifiers,\n start: scriptInfo.positionToLineOffset(quickInfo.textSpan.start),\n end: scriptInfo.positionToLineOffset(textSpanEnd(quickInfo.textSpan)),\n displayString,\n documentation: useDisplayParts ? this.mapDisplayParts(quickInfo.documentation, project) : displayPartsToString(quickInfo.documentation),\n tags: this.mapJSDocTagInfo(quickInfo.tags, project, useDisplayParts),\n canIncreaseVerbosityLevel: quickInfo.canIncreaseVerbosityLevel\n };\n } else {\n return useDisplayParts ? quickInfo : {\n ...quickInfo,\n tags: this.mapJSDocTagInfo(\n quickInfo.tags,\n project,\n /*richResponse*/\n false\n )\n };\n }\n }\n getFormattingEditsForRange(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const startPosition = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n const endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n const edits = languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.getFormatOptions(file));\n if (!edits) {\n return void 0;\n }\n return edits.map((edit) => this.convertTextChangeToCodeEdit(edit, scriptInfo));\n }\n getFormattingEditsForRangeFull(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n return languageService.getFormattingEditsForRange(file, args.position, args.endPosition, options);\n }\n getFormattingEditsForDocumentFull(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n return languageService.getFormattingEditsForDocument(file, options);\n }\n getFormattingEditsAfterKeystrokeFull(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n return languageService.getFormattingEditsAfterKeystroke(file, args.position, args.key, options);\n }\n getFormattingEditsAfterKeystroke(args) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const position = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n const formatOptions = this.getFormatOptions(file);\n const edits = languageService.getFormattingEditsAfterKeystroke(file, position, args.key, formatOptions);\n if (args.key === \"\\n\" && (!edits || edits.length === 0 || allEditsBeforePos(edits, position))) {\n const { lineText, absolutePosition } = scriptInfo.textStorage.getAbsolutePositionAndLineText(args.line);\n if (lineText && lineText.search(\"\\\\S\") < 0) {\n const preferredIndent = languageService.getIndentationAtPosition(file, position, formatOptions);\n let hasIndent = 0;\n let i, len;\n for (i = 0, len = lineText.length; i < len; i++) {\n if (lineText.charAt(i) === \" \") {\n hasIndent++;\n } else if (lineText.charAt(i) === \"\t\") {\n hasIndent += formatOptions.tabSize;\n } else {\n break;\n }\n }\n if (preferredIndent !== hasIndent) {\n const firstNoWhiteSpacePosition = absolutePosition + i;\n edits.push({\n span: createTextSpanFromBounds(absolutePosition, firstNoWhiteSpacePosition),\n newText: ts_formatting_exports.getIndentationString(preferredIndent, formatOptions)\n });\n }\n }\n }\n if (!edits) {\n return void 0;\n }\n return edits.map((edit) => {\n return {\n start: scriptInfo.positionToLineOffset(edit.span.start),\n end: scriptInfo.positionToLineOffset(textSpanEnd(edit.span)),\n newText: edit.newText ? edit.newText : \"\"\n };\n });\n }\n getCompletions(args, kind) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const position = this.getPosition(args, scriptInfo);\n const completions = project.getLanguageService().getCompletionsAtPosition(\n file,\n position,\n {\n ...convertUserPreferences(this.getPreferences(file)),\n triggerCharacter: args.triggerCharacter,\n triggerKind: args.triggerKind,\n includeExternalModuleExports: args.includeExternalModuleExports,\n includeInsertTextCompletions: args.includeInsertTextCompletions\n },\n project.projectService.getFormatCodeOptions(file)\n );\n if (completions === void 0) return void 0;\n if (kind === \"completions-full\" /* CompletionsFull */) return completions;\n const prefix = args.prefix || \"\";\n const entries = mapDefined(completions.entries, (entry) => {\n if (completions.isMemberCompletion || startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) {\n const convertedSpan = entry.replacementSpan ? toProtocolTextSpan(entry.replacementSpan, scriptInfo) : void 0;\n return {\n ...entry,\n replacementSpan: convertedSpan,\n hasAction: entry.hasAction || void 0,\n symbol: void 0\n };\n }\n });\n if (kind === \"completions\" /* Completions */) {\n if (completions.metadata) entries.metadata = completions.metadata;\n return entries;\n }\n const res = {\n ...completions,\n optionalReplacementSpan: completions.optionalReplacementSpan && toProtocolTextSpan(completions.optionalReplacementSpan, scriptInfo),\n entries\n };\n return res;\n }\n getCompletionEntryDetails(args, fullResult) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const position = this.getPosition(args, scriptInfo);\n const formattingOptions = project.projectService.getFormatCodeOptions(file);\n const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc;\n const result = mapDefined(args.entryNames, (entryName) => {\n const { name, source, data } = typeof entryName === \"string\" ? { name: entryName, source: void 0, data: void 0 } : entryName;\n return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, this.getPreferences(file), data ? cast(data, isCompletionEntryData) : void 0);\n });\n return fullResult ? useDisplayParts ? result : result.map((details) => ({ ...details, tags: this.mapJSDocTagInfo(\n details.tags,\n project,\n /*richResponse*/\n false\n ) })) : result.map((details) => ({\n ...details,\n codeActions: map(details.codeActions, (action) => this.mapCodeAction(action)),\n documentation: this.mapDisplayParts(details.documentation, project),\n tags: this.mapJSDocTagInfo(details.tags, project, useDisplayParts)\n }));\n }\n getCompileOnSaveAffectedFileList(args) {\n const projects = this.getProjects(\n args,\n /*getScriptInfoEnsuringProjectsUptoDate*/\n true,\n /*ignoreNoProjectError*/\n true\n );\n const info = this.projectService.getScriptInfo(args.file);\n if (!info) {\n return emptyArray2;\n }\n return combineProjectOutput(\n info,\n (path) => this.projectService.getScriptInfoForPath(path),\n projects,\n (project, info2) => {\n if (!project.compileOnSaveEnabled || !project.languageServiceEnabled || project.isOrphan()) {\n return void 0;\n }\n const compilationSettings = project.getCompilationSettings();\n if (!!compilationSettings.noEmit || isDeclarationFileName(info2.fileName) && !dtsChangeCanAffectEmit(compilationSettings)) {\n return void 0;\n }\n return {\n projectFileName: project.getProjectName(),\n fileNames: project.getCompileOnSaveAffectedFileList(info2),\n projectUsesOutFile: !!compilationSettings.outFile\n };\n }\n );\n }\n emitFile(args) {\n const { file, project } = this.getFileAndProject(args);\n if (!project) {\n Errors.ThrowNoProject();\n }\n if (!project.languageServiceEnabled) {\n return args.richResponse ? { emitSkipped: true, diagnostics: [] } : false;\n }\n const scriptInfo = project.getScriptInfo(file);\n const { emitSkipped, diagnostics } = project.emitFile(scriptInfo, (path, data, writeByteOrderMark) => this.host.writeFile(path, data, writeByteOrderMark));\n return args.richResponse ? {\n emitSkipped,\n diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) : diagnostics.map((d) => formatDiagnosticToProtocol(\n d,\n /*includeFileName*/\n true\n ))\n } : !emitSkipped;\n }\n getSignatureHelpItems(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const position = this.getPosition(args, scriptInfo);\n const helpItems = project.getLanguageService().getSignatureHelpItems(file, position, args);\n const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc;\n if (helpItems && simplifiedResult) {\n const span = helpItems.applicableSpan;\n return {\n ...helpItems,\n applicableSpan: {\n start: scriptInfo.positionToLineOffset(span.start),\n end: scriptInfo.positionToLineOffset(span.start + span.length)\n },\n items: this.mapSignatureHelpItems(helpItems.items, project, useDisplayParts)\n };\n } else if (useDisplayParts || !helpItems) {\n return helpItems;\n } else {\n return {\n ...helpItems,\n items: helpItems.items.map((item) => ({ ...item, tags: this.mapJSDocTagInfo(\n item.tags,\n project,\n /*richResponse*/\n false\n ) }))\n };\n }\n }\n toPendingErrorCheck(uncheckedFileName) {\n const fileName = toNormalizedPath(uncheckedFileName);\n const project = this.projectService.tryGetDefaultProjectForFile(fileName);\n return project && { fileName, project };\n }\n getDiagnostics(next, delay, fileArgs) {\n if (this.suppressDiagnosticEvents) {\n return;\n }\n if (fileArgs.length > 0) {\n this.updateErrorCheck(next, fileArgs, delay);\n }\n }\n change(args) {\n const scriptInfo = this.projectService.getScriptInfo(args.file);\n Debug.assert(!!scriptInfo);\n scriptInfo.textStorage.switchToScriptVersionCache();\n const start = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n const end = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n if (start >= 0) {\n this.changeSeq++;\n this.projectService.applyChangesToFile(\n scriptInfo,\n singleIterator({\n span: { start, length: end - start },\n newText: args.insertString\n // TODO: GH#18217\n })\n );\n }\n }\n reload(args) {\n const file = toNormalizedPath(args.file);\n const tempFileName = args.tmpfile === void 0 ? void 0 : toNormalizedPath(args.tmpfile);\n const info = this.projectService.getScriptInfoForNormalizedPath(file);\n if (info) {\n this.changeSeq++;\n info.reloadFromFile(tempFileName);\n }\n }\n saveToTmp(fileName, tempFileName) {\n const scriptInfo = this.projectService.getScriptInfo(fileName);\n if (scriptInfo) {\n scriptInfo.saveTo(tempFileName);\n }\n }\n closeClientFile(fileName) {\n if (!fileName) {\n return;\n }\n const file = normalizePath(fileName);\n this.projectService.closeClientFile(file);\n }\n mapLocationNavigationBarItems(items, scriptInfo) {\n return map(items, (item) => ({\n text: item.text,\n kind: item.kind,\n kindModifiers: item.kindModifiers,\n spans: item.spans.map((span) => toProtocolTextSpan(span, scriptInfo)),\n childItems: this.mapLocationNavigationBarItems(item.childItems, scriptInfo),\n indent: item.indent\n }));\n }\n getNavigationBarItems(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const items = languageService.getNavigationBarItems(file);\n return !items ? void 0 : simplifiedResult ? this.mapLocationNavigationBarItems(items, this.projectService.getScriptInfoForNormalizedPath(file)) : items;\n }\n toLocationNavigationTree(tree, scriptInfo) {\n return {\n text: tree.text,\n kind: tree.kind,\n kindModifiers: tree.kindModifiers,\n spans: tree.spans.map((span) => toProtocolTextSpan(span, scriptInfo)),\n nameSpan: tree.nameSpan && toProtocolTextSpan(tree.nameSpan, scriptInfo),\n childItems: map(tree.childItems, (item) => this.toLocationNavigationTree(item, scriptInfo))\n };\n }\n getNavigationTree(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const tree = languageService.getNavigationTree(file);\n return !tree ? void 0 : simplifiedResult ? this.toLocationNavigationTree(tree, this.projectService.getScriptInfoForNormalizedPath(file)) : tree;\n }\n getNavigateToItems(args, simplifiedResult) {\n const full = this.getFullNavigateToItems(args);\n return !simplifiedResult ? flatMap(full, ({ navigateToItems }) => navigateToItems) : flatMap(\n full,\n ({ project, navigateToItems }) => navigateToItems.map((navItem) => {\n const scriptInfo = project.getScriptInfo(navItem.fileName);\n const bakedItem = {\n name: navItem.name,\n kind: navItem.kind,\n kindModifiers: navItem.kindModifiers,\n isCaseSensitive: navItem.isCaseSensitive,\n matchKind: navItem.matchKind,\n file: navItem.fileName,\n start: scriptInfo.positionToLineOffset(navItem.textSpan.start),\n end: scriptInfo.positionToLineOffset(textSpanEnd(navItem.textSpan))\n };\n if (navItem.kindModifiers && navItem.kindModifiers !== \"\") {\n bakedItem.kindModifiers = navItem.kindModifiers;\n }\n if (navItem.containerName && navItem.containerName.length > 0) {\n bakedItem.containerName = navItem.containerName;\n }\n if (navItem.containerKind && navItem.containerKind.length > 0) {\n bakedItem.containerKind = navItem.containerKind;\n }\n return bakedItem;\n })\n );\n }\n getFullNavigateToItems(args) {\n const { currentFileOnly, searchValue, maxResultCount, projectFileName } = args;\n if (currentFileOnly) {\n Debug.assertIsDefined(args.file);\n const { file, project } = this.getFileAndProject(args);\n return [{ project, navigateToItems: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }];\n }\n const preferences = this.getHostPreferences();\n const outputs = [];\n const seenItems = /* @__PURE__ */ new Map();\n if (!args.file && !projectFileName) {\n this.projectService.loadAncestorProjectTree();\n this.projectService.forEachEnabledProject((project) => addItemsForProject(project));\n } else {\n const projects = this.getProjects(args);\n forEachProjectInProjects(\n projects,\n /*path*/\n void 0,\n (project) => addItemsForProject(project)\n );\n }\n return outputs;\n function addItemsForProject(project) {\n const projectItems = project.getLanguageService().getNavigateToItems(\n searchValue,\n maxResultCount,\n /*fileName*/\n void 0,\n /*excludeDts*/\n project.isNonTsProject(),\n /*excludeLibFiles*/\n preferences.excludeLibrarySymbolsInNavTo\n );\n const unseenItems = filter(projectItems, (item) => tryAddSeenItem(item) && !getMappedLocationForProject(documentSpanLocation(item), project));\n if (unseenItems.length) {\n outputs.push({ project, navigateToItems: unseenItems });\n }\n }\n function tryAddSeenItem(item) {\n const name = item.name;\n if (!seenItems.has(name)) {\n seenItems.set(name, [item]);\n return true;\n }\n const seen = seenItems.get(name);\n for (const seenItem of seen) {\n if (navigateToItemIsEqualTo(seenItem, item)) {\n return false;\n }\n }\n seen.push(item);\n return true;\n }\n function navigateToItemIsEqualTo(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n 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;\n }\n }\n getSupportedCodeFixes(args) {\n if (!args) return getSupportedCodeFixes();\n if (args.file) {\n const { file, project: project2 } = this.getFileAndProject(args);\n return project2.getLanguageService().getSupportedCodeFixes(file);\n }\n const project = this.getProject(args.projectFileName);\n if (!project) Errors.ThrowNoProject();\n return project.getLanguageService().getSupportedCodeFixes();\n }\n isLocation(locationOrSpan) {\n return locationOrSpan.line !== void 0;\n }\n extractPositionOrRange(args, scriptInfo) {\n let position;\n let textRange;\n if (this.isLocation(args)) {\n position = getPosition(args);\n } else {\n textRange = this.getRange(args, scriptInfo);\n }\n return Debug.checkDefined(position === void 0 ? textRange : position);\n function getPosition(loc) {\n return loc.position !== void 0 ? loc.position : scriptInfo.lineOffsetToPosition(loc.line, loc.offset);\n }\n }\n getRange(args, scriptInfo) {\n const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo);\n return { pos: startPosition, end: endPosition };\n }\n getApplicableRefactors(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n const result = project.getLanguageService().getApplicableRefactors(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file), args.triggerReason, args.kind, args.includeInteractiveActions);\n return result.map((result2) => ({ ...result2, actions: result2.actions.map((action) => ({ ...action, range: action.range ? { start: convertToLocation({ line: action.range.start.line, character: action.range.start.offset }), end: convertToLocation({ line: action.range.end.line, character: action.range.end.offset }) } : void 0 })) }));\n }\n getEditsForRefactor(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n const result = project.getLanguageService().getEditsForRefactor(\n file,\n this.getFormatOptions(file),\n this.extractPositionOrRange(args, scriptInfo),\n args.refactor,\n args.action,\n this.getPreferences(file),\n args.interactiveRefactorArguments\n );\n if (result === void 0) {\n return {\n edits: []\n };\n }\n if (simplifiedResult) {\n const { renameFilename, renameLocation, edits } = result;\n let mappedRenameLocation;\n if (renameFilename !== void 0 && renameLocation !== void 0) {\n const renameScriptInfo = project.getScriptInfoForNormalizedPath(toNormalizedPath(renameFilename));\n mappedRenameLocation = getLocationInNewDocument(getSnapshotText(renameScriptInfo.getSnapshot()), renameFilename, renameLocation, edits);\n }\n return {\n renameLocation: mappedRenameLocation,\n renameFilename,\n edits: this.mapTextChangesToCodeEdits(edits),\n notApplicableReason: result.notApplicableReason\n };\n }\n return result;\n }\n getMoveToRefactoringFileSuggestions(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n return project.getLanguageService().getMoveToRefactoringFileSuggestions(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file));\n }\n preparePasteEdits(args) {\n const { file, project } = this.getFileAndProject(args);\n return project.getLanguageService().preparePasteEditsForFile(file, args.copiedTextSpan.map((copies) => this.getRange({ file, startLine: copies.start.line, startOffset: copies.start.offset, endLine: copies.end.line, endOffset: copies.end.offset }, this.projectService.getScriptInfoForNormalizedPath(file))));\n }\n getPasteEdits(args) {\n const { file, project } = this.getFileAndProject(args);\n if (isDynamicFileName(file)) return void 0;\n const copiedFrom = args.copiedFrom ? { file: args.copiedFrom.file, range: args.copiedFrom.spans.map((copies) => this.getRange({ file: args.copiedFrom.file, startLine: copies.start.line, startOffset: copies.start.offset, endLine: copies.end.line, endOffset: copies.end.offset }, project.getScriptInfoForNormalizedPath(toNormalizedPath(args.copiedFrom.file)))) } : void 0;\n const result = project.getLanguageService().getPasteEdits(\n {\n targetFile: file,\n pastedText: args.pastedText,\n pasteLocations: args.pasteLocations.map((paste) => this.getRange({ file, startLine: paste.start.line, startOffset: paste.start.offset, endLine: paste.end.line, endOffset: paste.end.offset }, project.getScriptInfoForNormalizedPath(file))),\n copiedFrom,\n preferences: this.getPreferences(file)\n },\n this.getFormatOptions(file)\n );\n return result && this.mapPasteEditsAction(result);\n }\n organizeImports(args, simplifiedResult) {\n Debug.assert(args.scope.type === \"file\");\n const { file, project } = this.getFileAndProject(args.scope.args);\n const changes = project.getLanguageService().organizeImports(\n {\n fileName: file,\n mode: args.mode ?? (args.skipDestructiveCodeActions ? \"SortAndCombine\" /* SortAndCombine */ : void 0),\n type: \"file\"\n },\n this.getFormatOptions(file),\n this.getPreferences(file)\n );\n if (simplifiedResult) {\n return this.mapTextChangesToCodeEdits(changes);\n } else {\n return changes;\n }\n }\n getEditsForFileRename(args, simplifiedResult) {\n const oldPath = toNormalizedPath(args.oldFilePath);\n const newPath = toNormalizedPath(args.newFilePath);\n const formatOptions = this.getHostFormatOptions();\n const preferences = this.getHostPreferences();\n const seenFiles = /* @__PURE__ */ new Set();\n const textChanges2 = [];\n this.projectService.loadAncestorProjectTree();\n this.projectService.forEachEnabledProject((project) => {\n const projectTextChanges = project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences);\n const projectFiles = [];\n for (const textChange of projectTextChanges) {\n if (!seenFiles.has(textChange.fileName)) {\n textChanges2.push(textChange);\n projectFiles.push(textChange.fileName);\n }\n }\n for (const file of projectFiles) {\n seenFiles.add(file);\n }\n });\n return simplifiedResult ? textChanges2.map((c) => this.mapTextChangeToCodeEdit(c)) : textChanges2;\n }\n getCodeFixes(args, simplifiedResult) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo);\n let codeActions;\n try {\n codeActions = project.getLanguageService().getCodeFixesAtPosition(file, startPosition, endPosition, args.errorCodes, this.getFormatOptions(file), this.getPreferences(file));\n } catch (e) {\n const error2 = e instanceof Error ? e : new Error(e);\n const ls = project.getLanguageService();\n const existingDiagCodes = [\n ...ls.getSyntacticDiagnostics(file),\n ...ls.getSemanticDiagnostics(file),\n ...ls.getSuggestionDiagnostics(file)\n ].filter((d) => decodedTextSpanIntersectsWith(startPosition, endPosition - startPosition, d.start, d.length)).map((d) => d.code);\n const badCode = args.errorCodes.find((c) => !existingDiagCodes.includes(c));\n if (badCode !== void 0) {\n error2.message += `\nAdditional information: BADCLIENT: Bad error code, ${badCode} not found in range ${startPosition}..${endPosition} (found: ${existingDiagCodes.join(\", \")})`;\n }\n throw error2;\n }\n return simplifiedResult ? codeActions.map((codeAction) => this.mapCodeFixAction(codeAction)) : codeActions;\n }\n getCombinedCodeFix({ scope, fixId: fixId56 }, simplifiedResult) {\n Debug.assert(scope.type === \"file\");\n const { file, project } = this.getFileAndProject(scope.args);\n const res = project.getLanguageService().getCombinedCodeFix({ type: \"file\", fileName: file }, fixId56, this.getFormatOptions(file), this.getPreferences(file));\n if (simplifiedResult) {\n return { changes: this.mapTextChangesToCodeEdits(res.changes), commands: res.commands };\n } else {\n return res;\n }\n }\n applyCodeActionCommand(args) {\n const commands = args.command;\n for (const command of toArray(commands)) {\n const { file, project } = this.getFileAndProject(command);\n project.getLanguageService().applyCodeActionCommand(command, this.getFormatOptions(file)).then(\n (_result) => {\n },\n (_error) => {\n }\n );\n }\n return {};\n }\n getStartAndEndPosition(args, scriptInfo) {\n let startPosition, endPosition;\n if (args.startPosition !== void 0) {\n startPosition = args.startPosition;\n } else {\n startPosition = scriptInfo.lineOffsetToPosition(args.startLine, args.startOffset);\n args.startPosition = startPosition;\n }\n if (args.endPosition !== void 0) {\n endPosition = args.endPosition;\n } else {\n endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n args.endPosition = endPosition;\n }\n return { startPosition, endPosition };\n }\n mapCodeAction({ description: description3, changes, commands }) {\n return { description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands };\n }\n mapCodeFixAction({ fixName: fixName8, description: description3, changes, commands, fixId: fixId56, fixAllDescription }) {\n return { fixName: fixName8, description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands, fixId: fixId56, fixAllDescription };\n }\n mapPasteEditsAction({ edits, fixId: fixId56 }) {\n return { edits: this.mapTextChangesToCodeEdits(edits), fixId: fixId56 };\n }\n mapTextChangesToCodeEdits(textChanges2) {\n return textChanges2.map((change) => this.mapTextChangeToCodeEdit(change));\n }\n mapTextChangeToCodeEdit(textChanges2) {\n const scriptInfo = this.projectService.getScriptInfoOrConfig(textChanges2.fileName);\n if (!!textChanges2.isNewFile === !!scriptInfo) {\n if (!scriptInfo) {\n this.projectService.logErrorForScriptInfoNotFound(textChanges2.fileName);\n }\n Debug.fail(\"Expected isNewFile for (only) new files. \" + JSON.stringify({ isNewFile: !!textChanges2.isNewFile, hasScriptInfo: !!scriptInfo }));\n }\n return scriptInfo ? { fileName: textChanges2.fileName, textChanges: textChanges2.textChanges.map((textChange) => convertTextChangeToCodeEdit(textChange, scriptInfo)) } : convertNewFileTextChangeToCodeEdit(textChanges2);\n }\n convertTextChangeToCodeEdit(change, scriptInfo) {\n return {\n start: scriptInfo.positionToLineOffset(change.span.start),\n end: scriptInfo.positionToLineOffset(change.span.start + change.span.length),\n newText: change.newText ? change.newText : \"\"\n };\n }\n getBraceMatching(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const position = this.getPosition(args, scriptInfo);\n const spans = languageService.getBraceMatchingAtPosition(file, position);\n return !spans ? void 0 : simplifiedResult ? spans.map((span) => toProtocolTextSpan(span, scriptInfo)) : spans;\n }\n getDiagnosticsForProject(next, delay, fileName) {\n if (this.suppressDiagnosticEvents) {\n return;\n }\n const { fileNames, languageServiceDisabled } = this.getProjectInfoWorker(\n fileName,\n /*projectFileName*/\n void 0,\n /*needFileNameList*/\n true,\n /*needDefaultConfiguredProjectInfo*/\n void 0,\n /*excludeConfigFiles*/\n true\n );\n if (languageServiceDisabled) return;\n const fileNamesInProject = fileNames.filter((value) => !value.includes(\"lib.d.ts\"));\n if (fileNamesInProject.length === 0) return;\n const highPriorityFiles = [];\n const mediumPriorityFiles = [];\n const lowPriorityFiles = [];\n const veryLowPriorityFiles = [];\n const normalizedFileName = toNormalizedPath(fileName);\n const project = this.projectService.ensureDefaultProjectForFile(normalizedFileName);\n for (const fileNameInProject of fileNamesInProject) {\n if (this.getCanonicalFileName(fileNameInProject) === this.getCanonicalFileName(fileName)) {\n highPriorityFiles.push(fileNameInProject);\n } else {\n const info = this.projectService.getScriptInfo(fileNameInProject);\n if (!info.isScriptOpen()) {\n if (isDeclarationFileName(fileNameInProject)) {\n veryLowPriorityFiles.push(fileNameInProject);\n } else {\n lowPriorityFiles.push(fileNameInProject);\n }\n } else {\n mediumPriorityFiles.push(fileNameInProject);\n }\n }\n }\n const sortedFiles = [...highPriorityFiles, ...mediumPriorityFiles, ...lowPriorityFiles, ...veryLowPriorityFiles];\n const checkList = sortedFiles.map((fileName2) => ({ fileName: fileName2, project }));\n this.updateErrorCheck(\n next,\n checkList,\n delay,\n /*requireOpen*/\n false\n );\n }\n configurePlugin(args) {\n this.projectService.configurePlugin(args);\n }\n getSmartSelectionRange(args, simplifiedResult) {\n const { locations } = args;\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file));\n return map(locations, (location) => {\n const pos = this.getPosition(location, scriptInfo);\n const selectionRange = languageService.getSmartSelectionRange(file, pos);\n return simplifiedResult ? this.mapSelectionRange(selectionRange, scriptInfo) : selectionRange;\n });\n }\n toggleLineComment(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfo(file);\n const textRange = this.getRange(args, scriptInfo);\n const textChanges2 = languageService.toggleLineComment(file, textRange);\n if (simplifiedResult) {\n const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n }\n return textChanges2;\n }\n toggleMultilineComment(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const textRange = this.getRange(args, scriptInfo);\n const textChanges2 = languageService.toggleMultilineComment(file, textRange);\n if (simplifiedResult) {\n const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n }\n return textChanges2;\n }\n commentSelection(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const textRange = this.getRange(args, scriptInfo);\n const textChanges2 = languageService.commentSelection(file, textRange);\n if (simplifiedResult) {\n const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n }\n return textChanges2;\n }\n uncommentSelection(args, simplifiedResult) {\n const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n const textRange = this.getRange(args, scriptInfo);\n const textChanges2 = languageService.uncommentSelection(file, textRange);\n if (simplifiedResult) {\n const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n }\n return textChanges2;\n }\n mapSelectionRange(selectionRange, scriptInfo) {\n const result = {\n textSpan: toProtocolTextSpan(selectionRange.textSpan, scriptInfo)\n };\n if (selectionRange.parent) {\n result.parent = this.mapSelectionRange(selectionRange.parent, scriptInfo);\n }\n return result;\n }\n getScriptInfoFromProjectService(file) {\n const normalizedFile = toNormalizedPath(file);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(normalizedFile);\n if (!scriptInfo) {\n this.projectService.logErrorForScriptInfoNotFound(normalizedFile);\n return Errors.ThrowNoProject();\n }\n return scriptInfo;\n }\n toProtocolCallHierarchyItem(item) {\n const scriptInfo = this.getScriptInfoFromProjectService(item.file);\n return {\n name: item.name,\n kind: item.kind,\n kindModifiers: item.kindModifiers,\n file: item.file,\n containerName: item.containerName,\n span: toProtocolTextSpan(item.span, scriptInfo),\n selectionSpan: toProtocolTextSpan(item.selectionSpan, scriptInfo)\n };\n }\n toProtocolCallHierarchyIncomingCall(incomingCall) {\n const scriptInfo = this.getScriptInfoFromProjectService(incomingCall.from.file);\n return {\n from: this.toProtocolCallHierarchyItem(incomingCall.from),\n fromSpans: incomingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo))\n };\n }\n toProtocolCallHierarchyOutgoingCall(outgoingCall, scriptInfo) {\n return {\n to: this.toProtocolCallHierarchyItem(outgoingCall.to),\n fromSpans: outgoingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo))\n };\n }\n prepareCallHierarchy(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n if (scriptInfo) {\n const position = this.getPosition(args, scriptInfo);\n const result = project.getLanguageService().prepareCallHierarchy(file, position);\n return result && mapOneOrMany(result, (item) => this.toProtocolCallHierarchyItem(item));\n }\n return void 0;\n }\n provideCallHierarchyIncomingCalls(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.getScriptInfoFromProjectService(file);\n const incomingCalls = project.getLanguageService().provideCallHierarchyIncomingCalls(file, this.getPosition(args, scriptInfo));\n return incomingCalls.map((call) => this.toProtocolCallHierarchyIncomingCall(call));\n }\n provideCallHierarchyOutgoingCalls(args) {\n const { file, project } = this.getFileAndProject(args);\n const scriptInfo = this.getScriptInfoFromProjectService(file);\n const outgoingCalls = project.getLanguageService().provideCallHierarchyOutgoingCalls(file, this.getPosition(args, scriptInfo));\n return outgoingCalls.map((call) => this.toProtocolCallHierarchyOutgoingCall(call, scriptInfo));\n }\n getCanonicalFileName(fileName) {\n const name = this.host.useCaseSensitiveFileNames ? fileName : toFileNameLowerCase(fileName);\n return normalizePath(name);\n }\n exit() {\n }\n notRequired(request) {\n if (request) this.doOutput(\n /*info*/\n void 0,\n request.command,\n request.seq,\n /*success*/\n true,\n this.performanceData\n );\n return { responseRequired: false, performanceData: this.performanceData };\n }\n requiredResponse(response) {\n return { response, responseRequired: true, performanceData: this.performanceData };\n }\n addProtocolHandler(command, handler) {\n if (this.handlers.has(command)) {\n throw new Error(`Protocol handler already exists for command \"${command}\"`);\n }\n this.handlers.set(command, handler);\n }\n setCurrentRequest(requestId) {\n Debug.assert(this.currentRequestId === void 0);\n this.currentRequestId = requestId;\n this.cancellationToken.setRequest(requestId);\n }\n resetCurrentRequest(requestId) {\n Debug.assert(this.currentRequestId === requestId);\n this.currentRequestId = void 0;\n this.cancellationToken.resetRequest(requestId);\n }\n // eslint-disable-line @typescript-eslint/unified-signatures\n executeWithRequestId(requestId, f, perfomanceData) {\n const currentPerformanceData = this.performanceData;\n try {\n this.performanceData = perfomanceData;\n this.setCurrentRequest(requestId);\n return f();\n } finally {\n this.resetCurrentRequest(requestId);\n this.performanceData = currentPerformanceData;\n }\n }\n executeCommand(request) {\n const handler = this.handlers.get(request.command);\n if (handler) {\n const response = this.executeWithRequestId(\n request.seq,\n () => handler(request),\n /*perfomanceData*/\n void 0\n );\n this.projectService.enableRequestedPlugins();\n return response;\n } else {\n this.logger.msg(`Unrecognized JSON command:${stringifyIndented(request)}`, \"Err\" /* Err */);\n this.doOutput(\n /*info*/\n void 0,\n \"unknown\" /* Unknown */,\n request.seq,\n /*success*/\n false,\n /*performanceData*/\n void 0,\n `Unrecognized JSON command: ${request.command}`\n );\n return { responseRequired: false };\n }\n }\n onMessage(message) {\n var _a, _b, _c, _d, _e, _f, _g;\n this.gcTimer.scheduleCollect();\n let start;\n const currentPerformanceData = this.performanceData;\n if (this.logger.hasLevel(2 /* requestTime */)) {\n start = this.hrtime();\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`request:${indent2(this.toStringMessage(message))}`);\n }\n }\n let request;\n let relevantFile;\n try {\n request = this.parseMessage(message);\n relevantFile = request.arguments && request.arguments.file ? request.arguments : void 0;\n (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"request\", { seq: request.seq, command: request.command });\n (_b = tracing) == null ? void 0 : _b.push(\n tracing.Phase.Session,\n \"executeCommand\",\n { seq: request.seq, command: request.command },\n /*separateBeginAndEnd*/\n true\n );\n const { response, responseRequired, performanceData } = this.executeCommand(request);\n (_c = tracing) == null ? void 0 : _c.pop();\n if (this.logger.hasLevel(2 /* requestTime */)) {\n const elapsedTime = hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);\n if (responseRequired) {\n this.logger.perftrc(`${request.seq}::${request.command}: elapsed time (in milliseconds) ${elapsedTime}`);\n } else {\n this.logger.perftrc(`${request.seq}::${request.command}: async elapsed time (in milliseconds) ${elapsedTime}`);\n }\n }\n (_d = tracing) == null ? void 0 : _d.instant(tracing.Phase.Session, \"response\", { seq: request.seq, command: request.command, success: !!response });\n if (response) {\n this.doOutput(\n response,\n request.command,\n request.seq,\n /*success*/\n true,\n performanceData\n );\n } else if (responseRequired) {\n this.doOutput(\n /*info*/\n void 0,\n request.command,\n request.seq,\n /*success*/\n false,\n performanceData,\n \"No content available.\"\n );\n }\n } catch (err) {\n (_e = tracing) == null ? void 0 : _e.popAll();\n if (err instanceof OperationCanceledException) {\n (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, \"commandCanceled\", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command });\n this.doOutput(\n { canceled: true },\n request.command,\n request.seq,\n /*success*/\n true,\n this.performanceData\n );\n return;\n }\n this.logErrorWorker(err, this.toStringMessage(message), relevantFile);\n (_g = tracing) == null ? void 0 : _g.instant(tracing.Phase.Session, \"commandError\", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command, message: err.message });\n this.doOutput(\n /*info*/\n void 0,\n request ? request.command : \"unknown\" /* Unknown */,\n request ? request.seq : 0,\n /*success*/\n false,\n this.performanceData,\n \"Error processing request. \" + err.message + \"\\n\" + err.stack\n );\n } finally {\n this.performanceData = currentPerformanceData;\n }\n }\n parseMessage(message) {\n return JSON.parse(message);\n }\n toStringMessage(message) {\n return message;\n }\n getFormatOptions(file) {\n return this.projectService.getFormatCodeOptions(file);\n }\n getPreferences(file) {\n return this.projectService.getPreferences(file);\n }\n getHostFormatOptions() {\n return this.projectService.getHostFormatCodeOptions();\n }\n getHostPreferences() {\n return this.projectService.getHostPreferences();\n }\n};\nfunction toProtocolPerformanceData(performanceData) {\n const diagnosticsDuration = performanceData.diagnosticsDuration && arrayFrom(performanceData.diagnosticsDuration, ([file, data]) => ({ ...data, file }));\n return { ...performanceData, diagnosticsDuration };\n}\nfunction toProtocolTextSpan(textSpan, scriptInfo) {\n return {\n start: scriptInfo.positionToLineOffset(textSpan.start),\n end: scriptInfo.positionToLineOffset(textSpanEnd(textSpan))\n };\n}\nfunction toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) {\n const textSpan = toProtocolTextSpan(span, scriptInfo);\n const contextTextSpan = contextSpan && toProtocolTextSpan(contextSpan, scriptInfo);\n return contextTextSpan ? { ...textSpan, contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end } : textSpan;\n}\nfunction convertTextChangeToCodeEdit(change, scriptInfo) {\n return { start: positionToLineOffset(scriptInfo, change.span.start), end: positionToLineOffset(scriptInfo, textSpanEnd(change.span)), newText: change.newText };\n}\nfunction positionToLineOffset(info, position) {\n return isConfigFile(info) ? locationFromLineAndCharacter(info.getLineAndCharacterOfPosition(position)) : info.positionToLineOffset(position);\n}\nfunction convertLinkedEditInfoToRanges(linkedEdit, scriptInfo) {\n const ranges = linkedEdit.ranges.map(\n (r) => {\n return {\n start: scriptInfo.positionToLineOffset(r.start),\n end: scriptInfo.positionToLineOffset(r.start + r.length)\n };\n }\n );\n if (!linkedEdit.wordPattern) return { ranges };\n return { ranges, wordPattern: linkedEdit.wordPattern };\n}\nfunction locationFromLineAndCharacter(lc) {\n return { line: lc.line + 1, offset: lc.character + 1 };\n}\nfunction convertNewFileTextChangeToCodeEdit(textChanges2) {\n Debug.assert(textChanges2.textChanges.length === 1);\n const change = first(textChanges2.textChanges);\n Debug.assert(change.span.start === 0 && change.span.length === 0);\n return { fileName: textChanges2.fileName, textChanges: [{ start: { line: 0, offset: 0 }, end: { line: 0, offset: 0 }, newText: change.newText }] };\n}\nfunction getLocationInNewDocument(oldText, renameFilename, renameLocation, edits) {\n const newText = applyEdits(oldText, renameFilename, edits);\n const { line, character } = computeLineAndCharacterOfPosition(computeLineStarts(newText), renameLocation);\n return { line: line + 1, offset: character + 1 };\n}\nfunction applyEdits(text, textFilename, edits) {\n for (const { fileName, textChanges: textChanges2 } of edits) {\n if (fileName !== textFilename) {\n continue;\n }\n for (let i = textChanges2.length - 1; i >= 0; i--) {\n const { newText, span: { start, length: length2 } } = textChanges2[i];\n text = text.slice(0, start) + newText + text.slice(start + length2);\n }\n }\n return text;\n}\nfunction referenceEntryToReferencesResponseItem(projectService, { fileName, textSpan, contextSpan, isWriteAccess: isWriteAccess2, isDefinition }, { disableLineTextInReferences }) {\n const scriptInfo = Debug.checkDefined(projectService.getScriptInfo(fileName));\n const span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo);\n const lineText = disableLineTextInReferences ? void 0 : getLineText(scriptInfo, span);\n return {\n file: fileName,\n ...span,\n lineText,\n isWriteAccess: isWriteAccess2,\n isDefinition\n };\n}\nfunction getLineText(scriptInfo, span) {\n const lineSpan = scriptInfo.lineToTextSpan(span.start.line - 1);\n return scriptInfo.getSnapshot().getText(lineSpan.start, textSpanEnd(lineSpan)).replace(/\\r|\\n/g, \"\");\n}\nfunction isCompletionEntryData(data) {\n 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\"));\n}\n\n// src/server/scriptVersionCache.ts\nvar lineCollectionCapacity = 4;\nvar CharRangeSection = /* @__PURE__ */ ((CharRangeSection2) => {\n CharRangeSection2[CharRangeSection2[\"PreStart\"] = 0] = \"PreStart\";\n CharRangeSection2[CharRangeSection2[\"Start\"] = 1] = \"Start\";\n CharRangeSection2[CharRangeSection2[\"Entire\"] = 2] = \"Entire\";\n CharRangeSection2[CharRangeSection2[\"Mid\"] = 3] = \"Mid\";\n CharRangeSection2[CharRangeSection2[\"End\"] = 4] = \"End\";\n CharRangeSection2[CharRangeSection2[\"PostEnd\"] = 5] = \"PostEnd\";\n return CharRangeSection2;\n})(CharRangeSection || {});\nvar EditWalker = class {\n constructor() {\n this.goSubtree = true;\n this.lineIndex = new LineIndex();\n this.endBranch = [];\n this.state = 2 /* Entire */;\n this.initialText = \"\";\n this.trailingText = \"\";\n this.lineIndex.root = new LineNode();\n this.startPath = [this.lineIndex.root];\n this.stack = [this.lineIndex.root];\n }\n get done() {\n return false;\n }\n insertLines(insertedText, suppressTrailingText) {\n if (suppressTrailingText) {\n this.trailingText = \"\";\n }\n if (insertedText) {\n insertedText = this.initialText + insertedText + this.trailingText;\n } else {\n insertedText = this.initialText + this.trailingText;\n }\n const lm = LineIndex.linesFromText(insertedText);\n const lines = lm.lines;\n if (lines.length > 1 && lines[lines.length - 1] === \"\") {\n lines.pop();\n }\n let branchParent;\n let lastZeroCount;\n for (let k = this.endBranch.length - 1; k >= 0; k--) {\n this.endBranch[k].updateCounts();\n if (this.endBranch[k].charCount() === 0) {\n lastZeroCount = this.endBranch[k];\n if (k > 0) {\n branchParent = this.endBranch[k - 1];\n } else {\n branchParent = this.branchNode;\n }\n }\n }\n if (lastZeroCount) {\n branchParent.remove(lastZeroCount);\n }\n const leafNode = this.startPath[this.startPath.length - 1];\n if (lines.length > 0) {\n leafNode.text = lines[0];\n if (lines.length > 1) {\n let insertedNodes = new Array(lines.length - 1);\n let startNode2 = leafNode;\n for (let i = 1; i < lines.length; i++) {\n insertedNodes[i - 1] = new LineLeaf(lines[i]);\n }\n let pathIndex = this.startPath.length - 2;\n while (pathIndex >= 0) {\n const insertionNode = this.startPath[pathIndex];\n insertedNodes = insertionNode.insertAt(startNode2, insertedNodes);\n pathIndex--;\n startNode2 = insertionNode;\n }\n let insertedNodesLen = insertedNodes.length;\n while (insertedNodesLen > 0) {\n const newRoot = new LineNode();\n newRoot.add(this.lineIndex.root);\n insertedNodes = newRoot.insertAt(this.lineIndex.root, insertedNodes);\n insertedNodesLen = insertedNodes.length;\n this.lineIndex.root = newRoot;\n }\n this.lineIndex.root.updateCounts();\n } else {\n for (let j = this.startPath.length - 2; j >= 0; j--) {\n this.startPath[j].updateCounts();\n }\n }\n } else {\n const insertionNode = this.startPath[this.startPath.length - 2];\n insertionNode.remove(leafNode);\n for (let j = this.startPath.length - 2; j >= 0; j--) {\n this.startPath[j].updateCounts();\n }\n }\n return this.lineIndex;\n }\n post(_relativeStart, _relativeLength, lineCollection) {\n if (lineCollection === this.lineCollectionAtBranch) {\n this.state = 4 /* End */;\n }\n this.stack.pop();\n }\n pre(_relativeStart, _relativeLength, lineCollection, _parent, nodeType) {\n const currentNode = this.stack[this.stack.length - 1];\n if (this.state === 2 /* Entire */ && nodeType === 1 /* Start */) {\n this.state = 1 /* Start */;\n this.branchNode = currentNode;\n this.lineCollectionAtBranch = lineCollection;\n }\n let child;\n function fresh(node) {\n if (node.isLeaf()) {\n return new LineLeaf(\"\");\n } else return new LineNode();\n }\n switch (nodeType) {\n case 0 /* PreStart */:\n this.goSubtree = false;\n if (this.state !== 4 /* End */) {\n currentNode.add(lineCollection);\n }\n break;\n case 1 /* Start */:\n if (this.state === 4 /* End */) {\n this.goSubtree = false;\n } else {\n child = fresh(lineCollection);\n currentNode.add(child);\n this.startPath.push(child);\n }\n break;\n case 2 /* Entire */:\n if (this.state !== 4 /* End */) {\n child = fresh(lineCollection);\n currentNode.add(child);\n this.startPath.push(child);\n } else {\n if (!lineCollection.isLeaf()) {\n child = fresh(lineCollection);\n currentNode.add(child);\n this.endBranch.push(child);\n }\n }\n break;\n case 3 /* Mid */:\n this.goSubtree = false;\n break;\n case 4 /* End */:\n if (this.state !== 4 /* End */) {\n this.goSubtree = false;\n } else {\n if (!lineCollection.isLeaf()) {\n child = fresh(lineCollection);\n currentNode.add(child);\n this.endBranch.push(child);\n }\n }\n break;\n case 5 /* PostEnd */:\n this.goSubtree = false;\n if (this.state !== 1 /* Start */) {\n currentNode.add(lineCollection);\n }\n break;\n }\n if (this.goSubtree) {\n this.stack.push(child);\n }\n }\n // just gather text from the leaves\n leaf(relativeStart, relativeLength, ll) {\n if (this.state === 1 /* Start */) {\n this.initialText = ll.text.substring(0, relativeStart);\n } else if (this.state === 2 /* Entire */) {\n this.initialText = ll.text.substring(0, relativeStart);\n this.trailingText = ll.text.substring(relativeStart + relativeLength);\n } else {\n this.trailingText = ll.text.substring(relativeStart + relativeLength);\n }\n }\n};\nvar TextChange9 = class {\n constructor(pos, deleteLen, insertedText) {\n this.pos = pos;\n this.deleteLen = deleteLen;\n this.insertedText = insertedText;\n }\n getTextChangeRange() {\n return createTextChangeRange(createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0);\n }\n};\nvar _ScriptVersionCache = class _ScriptVersionCache {\n constructor() {\n this.changes = [];\n this.versions = new Array(_ScriptVersionCache.maxVersions);\n this.minVersion = 0;\n // no versions earlier than min version will maintain change history\n this.currentVersion = 0;\n }\n versionToIndex(version2) {\n if (version2 < this.minVersion || version2 > this.currentVersion) {\n return void 0;\n }\n return version2 % _ScriptVersionCache.maxVersions;\n }\n currentVersionToIndex() {\n return this.currentVersion % _ScriptVersionCache.maxVersions;\n }\n // REVIEW: can optimize by coalescing simple edits\n edit(pos, deleteLen, insertedText) {\n this.changes.push(new TextChange9(pos, deleteLen, insertedText));\n if (this.changes.length > _ScriptVersionCache.changeNumberThreshold || deleteLen > _ScriptVersionCache.changeLengthThreshold || insertedText && insertedText.length > _ScriptVersionCache.changeLengthThreshold) {\n this.getSnapshot();\n }\n }\n getSnapshot() {\n return this._getSnapshot();\n }\n _getSnapshot() {\n let snap = this.versions[this.currentVersionToIndex()];\n if (this.changes.length > 0) {\n let snapIndex = snap.index;\n for (const change of this.changes) {\n snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText);\n }\n snap = new LineIndexSnapshot(this.currentVersion + 1, this, snapIndex, this.changes);\n this.currentVersion = snap.version;\n this.versions[this.currentVersionToIndex()] = snap;\n this.changes = [];\n if (this.currentVersion - this.minVersion >= _ScriptVersionCache.maxVersions) {\n this.minVersion = this.currentVersion - _ScriptVersionCache.maxVersions + 1;\n }\n }\n return snap;\n }\n getSnapshotVersion() {\n return this._getSnapshot().version;\n }\n getAbsolutePositionAndLineText(oneBasedLine) {\n return this._getSnapshot().index.lineNumberToInfo(oneBasedLine);\n }\n lineOffsetToPosition(line, column) {\n return this._getSnapshot().index.absolutePositionOfStartOfLine(line) + (column - 1);\n }\n positionToLineOffset(position) {\n return this._getSnapshot().index.positionToLineOffset(position);\n }\n lineToTextSpan(line) {\n const index = this._getSnapshot().index;\n const { lineText, absolutePosition } = index.lineNumberToInfo(line + 1);\n const len = lineText !== void 0 ? lineText.length : index.absolutePositionOfStartOfLine(line + 2) - absolutePosition;\n return createTextSpan(absolutePosition, len);\n }\n getTextChangesBetweenVersions(oldVersion, newVersion) {\n if (oldVersion < newVersion) {\n if (oldVersion >= this.minVersion) {\n const textChangeRanges = [];\n for (let i = oldVersion + 1; i <= newVersion; i++) {\n const snap = this.versions[this.versionToIndex(i)];\n for (const textChange of snap.changesSincePreviousVersion) {\n textChangeRanges.push(textChange.getTextChangeRange());\n }\n }\n return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges);\n } else {\n return void 0;\n }\n } else {\n return unchangedTextChangeRange;\n }\n }\n getLineCount() {\n return this._getSnapshot().index.getLineCount();\n }\n static fromString(script) {\n const svc = new _ScriptVersionCache();\n const snap = new LineIndexSnapshot(0, svc, new LineIndex());\n svc.versions[svc.currentVersion] = snap;\n const lm = LineIndex.linesFromText(script);\n snap.index.load(lm.lines);\n return svc;\n }\n};\n_ScriptVersionCache.changeNumberThreshold = 8;\n_ScriptVersionCache.changeLengthThreshold = 256;\n_ScriptVersionCache.maxVersions = 8;\nvar ScriptVersionCache = _ScriptVersionCache;\nvar LineIndexSnapshot = class _LineIndexSnapshot {\n constructor(version2, cache, index, changesSincePreviousVersion = emptyArray2) {\n this.version = version2;\n this.cache = cache;\n this.index = index;\n this.changesSincePreviousVersion = changesSincePreviousVersion;\n }\n getText(rangeStart, rangeEnd) {\n return this.index.getText(rangeStart, rangeEnd - rangeStart);\n }\n getLength() {\n return this.index.getLength();\n }\n getChangeRange(oldSnapshot) {\n if (oldSnapshot instanceof _LineIndexSnapshot && this.cache === oldSnapshot.cache) {\n if (this.version <= oldSnapshot.version) {\n return unchangedTextChangeRange;\n } else {\n return this.cache.getTextChangesBetweenVersions(oldSnapshot.version, this.version);\n }\n }\n }\n};\nvar LineIndex = class _LineIndex {\n constructor() {\n // set this to true to check each edit for accuracy\n this.checkEdits = false;\n }\n absolutePositionOfStartOfLine(oneBasedLine) {\n return this.lineNumberToInfo(oneBasedLine).absolutePosition;\n }\n positionToLineOffset(position) {\n const { oneBasedLine, zeroBasedColumn } = this.root.charOffsetToLineInfo(1, position);\n return { line: oneBasedLine, offset: zeroBasedColumn + 1 };\n }\n positionToColumnAndLineText(position) {\n return this.root.charOffsetToLineInfo(1, position);\n }\n getLineCount() {\n return this.root.lineCount();\n }\n lineNumberToInfo(oneBasedLine) {\n const lineCount = this.getLineCount();\n if (oneBasedLine <= lineCount) {\n const { position, leaf } = this.root.lineNumberToInfo(oneBasedLine, 0);\n return { absolutePosition: position, lineText: leaf && leaf.text };\n } else {\n return { absolutePosition: this.root.charCount(), lineText: void 0 };\n }\n }\n load(lines) {\n if (lines.length > 0) {\n const leaves = [];\n for (let i = 0; i < lines.length; i++) {\n leaves[i] = new LineLeaf(lines[i]);\n }\n this.root = _LineIndex.buildTreeFromBottom(leaves);\n } else {\n this.root = new LineNode();\n }\n }\n walk(rangeStart, rangeLength, walkFns) {\n this.root.walk(rangeStart, rangeLength, walkFns);\n }\n getText(rangeStart, rangeLength) {\n let accum = \"\";\n if (rangeLength > 0 && rangeStart < this.root.charCount()) {\n this.walk(rangeStart, rangeLength, {\n goSubtree: true,\n done: false,\n leaf: (relativeStart, relativeLength, ll) => {\n accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength));\n }\n });\n }\n return accum;\n }\n getLength() {\n return this.root.charCount();\n }\n every(f, rangeStart, rangeEnd) {\n if (!rangeEnd) {\n rangeEnd = this.root.charCount();\n }\n const walkFns = {\n goSubtree: true,\n done: false,\n leaf(relativeStart, relativeLength, ll) {\n if (!f(ll, relativeStart, relativeLength)) {\n this.done = true;\n }\n }\n };\n this.walk(rangeStart, rangeEnd - rangeStart, walkFns);\n return !walkFns.done;\n }\n edit(pos, deleteLength, newText) {\n if (this.root.charCount() === 0) {\n Debug.assert(deleteLength === 0);\n if (newText !== void 0) {\n this.load(_LineIndex.linesFromText(newText).lines);\n return this;\n }\n return void 0;\n } else {\n let checkText;\n if (this.checkEdits) {\n const source = this.getText(0, this.root.charCount());\n checkText = source.slice(0, pos) + newText + source.slice(pos + deleteLength);\n }\n const walker = new EditWalker();\n let suppressTrailingText = false;\n if (pos >= this.root.charCount()) {\n pos = this.root.charCount() - 1;\n const endString = this.getText(pos, 1);\n if (newText) {\n newText = endString + newText;\n } else {\n newText = endString;\n }\n deleteLength = 0;\n suppressTrailingText = true;\n } else if (deleteLength > 0) {\n const e = pos + deleteLength;\n const { zeroBasedColumn, lineText } = this.positionToColumnAndLineText(e);\n if (zeroBasedColumn === 0) {\n deleteLength += lineText.length;\n newText = newText ? newText + lineText : lineText;\n }\n }\n this.root.walk(pos, deleteLength, walker);\n walker.insertLines(newText, suppressTrailingText);\n if (this.checkEdits) {\n const updatedText = walker.lineIndex.getText(0, walker.lineIndex.getLength());\n Debug.assert(checkText === updatedText, \"buffer edit mismatch\");\n }\n return walker.lineIndex;\n }\n }\n static buildTreeFromBottom(nodes) {\n if (nodes.length < lineCollectionCapacity) {\n return new LineNode(nodes);\n }\n const interiorNodes = new Array(Math.ceil(nodes.length / lineCollectionCapacity));\n let nodeIndex = 0;\n for (let i = 0; i < interiorNodes.length; i++) {\n const end = Math.min(nodeIndex + lineCollectionCapacity, nodes.length);\n interiorNodes[i] = new LineNode(nodes.slice(nodeIndex, end));\n nodeIndex = end;\n }\n return this.buildTreeFromBottom(interiorNodes);\n }\n static linesFromText(text) {\n const lineMap = computeLineStarts(text);\n if (lineMap.length === 0) {\n return { lines: [], lineMap };\n }\n const lines = new Array(lineMap.length);\n const lc = lineMap.length - 1;\n for (let lmi = 0; lmi < lc; lmi++) {\n lines[lmi] = text.substring(lineMap[lmi], lineMap[lmi + 1]);\n }\n const endText = text.substring(lineMap[lc]);\n if (endText.length > 0) {\n lines[lc] = endText;\n } else {\n lines.pop();\n }\n return { lines, lineMap };\n }\n};\nvar LineNode = class _LineNode {\n constructor(children = []) {\n this.children = children;\n this.totalChars = 0;\n this.totalLines = 0;\n if (children.length) this.updateCounts();\n }\n isLeaf() {\n return false;\n }\n updateCounts() {\n this.totalChars = 0;\n this.totalLines = 0;\n for (const child of this.children) {\n this.totalChars += child.charCount();\n this.totalLines += child.lineCount();\n }\n }\n execWalk(rangeStart, rangeLength, walkFns, childIndex, nodeType) {\n if (walkFns.pre) {\n walkFns.pre(rangeStart, rangeLength, this.children[childIndex], this, nodeType);\n }\n if (walkFns.goSubtree) {\n this.children[childIndex].walk(rangeStart, rangeLength, walkFns);\n if (walkFns.post) {\n walkFns.post(rangeStart, rangeLength, this.children[childIndex], this, nodeType);\n }\n } else {\n walkFns.goSubtree = true;\n }\n return walkFns.done;\n }\n skipChild(relativeStart, relativeLength, childIndex, walkFns, nodeType) {\n if (walkFns.pre && !walkFns.done) {\n walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType);\n walkFns.goSubtree = true;\n }\n }\n walk(rangeStart, rangeLength, walkFns) {\n if (this.children.length === 0) return;\n let childIndex = 0;\n let childCharCount = this.children[childIndex].charCount();\n let adjustedStart = rangeStart;\n while (adjustedStart >= childCharCount) {\n this.skipChild(adjustedStart, rangeLength, childIndex, walkFns, 0 /* PreStart */);\n adjustedStart -= childCharCount;\n childIndex++;\n childCharCount = this.children[childIndex].charCount();\n }\n if (adjustedStart + rangeLength <= childCharCount) {\n if (this.execWalk(adjustedStart, rangeLength, walkFns, childIndex, 2 /* Entire */)) {\n return;\n }\n } else {\n if (this.execWalk(adjustedStart, childCharCount - adjustedStart, walkFns, childIndex, 1 /* Start */)) {\n return;\n }\n let adjustedLength = rangeLength - (childCharCount - adjustedStart);\n childIndex++;\n const child = this.children[childIndex];\n childCharCount = child.charCount();\n while (adjustedLength > childCharCount) {\n if (this.execWalk(0, childCharCount, walkFns, childIndex, 3 /* Mid */)) {\n return;\n }\n adjustedLength -= childCharCount;\n childIndex++;\n childCharCount = this.children[childIndex].charCount();\n }\n if (adjustedLength > 0) {\n if (this.execWalk(0, adjustedLength, walkFns, childIndex, 4 /* End */)) {\n return;\n }\n }\n }\n if (walkFns.pre) {\n const clen = this.children.length;\n if (childIndex < clen - 1) {\n for (let ej = childIndex + 1; ej < clen; ej++) {\n this.skipChild(0, 0, ej, walkFns, 5 /* PostEnd */);\n }\n }\n }\n }\n // Input position is relative to the start of this node.\n // Output line number is absolute.\n charOffsetToLineInfo(lineNumberAccumulator, relativePosition) {\n if (this.children.length === 0) {\n return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: void 0 };\n }\n for (const child of this.children) {\n if (child.charCount() > relativePosition) {\n if (child.isLeaf()) {\n return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: child.text };\n } else {\n return child.charOffsetToLineInfo(lineNumberAccumulator, relativePosition);\n }\n } else {\n relativePosition -= child.charCount();\n lineNumberAccumulator += child.lineCount();\n }\n }\n const lineCount = this.lineCount();\n if (lineCount === 0) {\n return { oneBasedLine: 1, zeroBasedColumn: 0, lineText: void 0 };\n }\n const leaf = Debug.checkDefined(this.lineNumberToInfo(lineCount, 0).leaf);\n return { oneBasedLine: lineCount, zeroBasedColumn: leaf.charCount(), lineText: void 0 };\n }\n /**\n * Input line number is relative to the start of this node.\n * Output line number is relative to the child.\n * positionAccumulator will be an absolute position once relativeLineNumber reaches 0.\n */\n lineNumberToInfo(relativeOneBasedLine, positionAccumulator) {\n for (const child of this.children) {\n const childLineCount = child.lineCount();\n if (childLineCount >= relativeOneBasedLine) {\n return child.isLeaf() ? { position: positionAccumulator, leaf: child } : child.lineNumberToInfo(relativeOneBasedLine, positionAccumulator);\n } else {\n relativeOneBasedLine -= childLineCount;\n positionAccumulator += child.charCount();\n }\n }\n return { position: positionAccumulator, leaf: void 0 };\n }\n splitAfter(childIndex) {\n let splitNode;\n const clen = this.children.length;\n childIndex++;\n const endLength = childIndex;\n if (childIndex < clen) {\n splitNode = new _LineNode();\n while (childIndex < clen) {\n splitNode.add(this.children[childIndex]);\n childIndex++;\n }\n splitNode.updateCounts();\n }\n this.children.length = endLength;\n return splitNode;\n }\n remove(child) {\n const childIndex = this.findChildIndex(child);\n const clen = this.children.length;\n if (childIndex < clen - 1) {\n for (let i = childIndex; i < clen - 1; i++) {\n this.children[i] = this.children[i + 1];\n }\n }\n this.children.pop();\n }\n findChildIndex(child) {\n const childIndex = this.children.indexOf(child);\n Debug.assert(childIndex !== -1);\n return childIndex;\n }\n insertAt(child, nodes) {\n let childIndex = this.findChildIndex(child);\n const clen = this.children.length;\n const nodeCount = nodes.length;\n if (clen < lineCollectionCapacity && childIndex === clen - 1 && nodeCount === 1) {\n this.add(nodes[0]);\n this.updateCounts();\n return [];\n } else {\n const shiftNode = this.splitAfter(childIndex);\n let nodeIndex = 0;\n childIndex++;\n while (childIndex < lineCollectionCapacity && nodeIndex < nodeCount) {\n this.children[childIndex] = nodes[nodeIndex];\n childIndex++;\n nodeIndex++;\n }\n let splitNodes = [];\n let splitNodeCount = 0;\n if (nodeIndex < nodeCount) {\n splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity);\n splitNodes = new Array(splitNodeCount);\n let splitNodeIndex = 0;\n for (let i = 0; i < splitNodeCount; i++) {\n splitNodes[i] = new _LineNode();\n }\n let splitNode = splitNodes[0];\n while (nodeIndex < nodeCount) {\n splitNode.add(nodes[nodeIndex]);\n nodeIndex++;\n if (splitNode.children.length === lineCollectionCapacity) {\n splitNodeIndex++;\n splitNode = splitNodes[splitNodeIndex];\n }\n }\n for (let i = splitNodes.length - 1; i >= 0; i--) {\n if (splitNodes[i].children.length === 0) {\n splitNodes.pop();\n }\n }\n }\n if (shiftNode) {\n splitNodes.push(shiftNode);\n }\n this.updateCounts();\n for (let i = 0; i < splitNodeCount; i++) {\n splitNodes[i].updateCounts();\n }\n return splitNodes;\n }\n }\n // assume there is room for the item; return true if more room\n add(collection) {\n this.children.push(collection);\n Debug.assert(this.children.length <= lineCollectionCapacity);\n }\n charCount() {\n return this.totalChars;\n }\n lineCount() {\n return this.totalLines;\n }\n};\nvar LineLeaf = class {\n constructor(text) {\n this.text = text;\n }\n isLeaf() {\n return true;\n }\n walk(rangeStart, rangeLength, walkFns) {\n walkFns.leaf(rangeStart, rangeLength, this);\n }\n charCount() {\n return this.text.length;\n }\n lineCount() {\n return 1;\n }\n};\n\n// src/server/typingInstallerAdapter.ts\nvar _TypingsInstallerAdapter = class _TypingsInstallerAdapter {\n constructor(telemetryEnabled, logger, host, globalTypingsCacheLocation, event, maxActiveRequestCount) {\n this.telemetryEnabled = telemetryEnabled;\n this.logger = logger;\n this.host = host;\n this.globalTypingsCacheLocation = globalTypingsCacheLocation;\n this.event = event;\n this.maxActiveRequestCount = maxActiveRequestCount;\n this.activeRequestCount = 0;\n this.requestQueue = createQueue();\n this.requestMap = /* @__PURE__ */ new Map();\n // Maps project name to newest requestQueue entry for that project\n /** We will lazily request the types registry on the first call to `isKnownTypesPackageName` and store it in `typesRegistryCache`. */\n this.requestedRegistry = false;\n this.packageInstallId = 0;\n }\n isKnownTypesPackageName(name) {\n var _a;\n const validationResult = ts_JsTyping_exports.validatePackageName(name);\n if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) {\n return false;\n }\n if (!this.requestedRegistry) {\n this.requestedRegistry = true;\n this.installer.send({ kind: \"typesRegistry\" });\n }\n return !!((_a = this.typesRegistryCache) == null ? void 0 : _a.has(name));\n }\n installPackage(options) {\n this.packageInstallId++;\n const request = { kind: \"installPackage\", ...options, id: this.packageInstallId };\n const promise = new Promise((resolve, reject) => {\n (this.packageInstalledPromise ?? (this.packageInstalledPromise = /* @__PURE__ */ new Map())).set(this.packageInstallId, { resolve, reject });\n });\n this.installer.send(request);\n return promise;\n }\n attach(projectService) {\n this.projectService = projectService;\n this.installer = this.createInstallerProcess();\n }\n onProjectClosed(p) {\n this.installer.send({ projectName: p.getProjectName(), kind: \"closeProject\" });\n }\n enqueueInstallTypingsRequest(project, typeAcquisition, unresolvedImports) {\n const request = createInstallTypingsRequest(project, typeAcquisition, unresolvedImports);\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(request)}`);\n }\n if (this.activeRequestCount < this.maxActiveRequestCount) {\n this.scheduleRequest(request);\n } else {\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Deferring request for: ${request.projectName}`);\n }\n this.requestQueue.enqueue(request);\n this.requestMap.set(request.projectName, request);\n }\n }\n handleMessage(response) {\n var _a, _b;\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Received response:${stringifyIndented(response)}`);\n }\n switch (response.kind) {\n case EventTypesRegistry:\n this.typesRegistryCache = new Map(Object.entries(response.typesRegistry));\n break;\n case ActionPackageInstalled: {\n const promise = (_a = this.packageInstalledPromise) == null ? void 0 : _a.get(response.id);\n Debug.assertIsDefined(promise, \"Should find the promise for package install\");\n (_b = this.packageInstalledPromise) == null ? void 0 : _b.delete(response.id);\n if (response.success) {\n promise.resolve({ successMessage: response.message });\n } else {\n promise.reject(response.message);\n }\n this.projectService.updateTypingsForProject(response);\n this.event(response, \"setTypings\");\n break;\n }\n case EventInitializationFailed: {\n const body = {\n message: response.message\n };\n const eventName = \"typesInstallerInitializationFailed\";\n this.event(body, eventName);\n break;\n }\n case EventBeginInstallTypes: {\n const body = {\n eventId: response.eventId,\n packages: response.packagesToInstall\n };\n const eventName = \"beginInstallTypes\";\n this.event(body, eventName);\n break;\n }\n case EventEndInstallTypes: {\n if (this.telemetryEnabled) {\n const body2 = {\n telemetryEventName: \"typingsInstalled\",\n payload: {\n installedPackages: response.packagesToInstall.join(\",\"),\n installSuccess: response.installSuccess,\n typingsInstallerVersion: response.typingsInstallerVersion\n }\n };\n const eventName2 = \"telemetry\";\n this.event(body2, eventName2);\n }\n const body = {\n eventId: response.eventId,\n packages: response.packagesToInstall,\n success: response.installSuccess\n };\n const eventName = \"endInstallTypes\";\n this.event(body, eventName);\n break;\n }\n case ActionInvalidate: {\n this.projectService.updateTypingsForProject(response);\n break;\n }\n case ActionSet: {\n if (this.activeRequestCount > 0) {\n this.activeRequestCount--;\n } else {\n Debug.fail(\"TIAdapter:: Received too many responses\");\n }\n while (!this.requestQueue.isEmpty()) {\n const queuedRequest = this.requestQueue.dequeue();\n if (this.requestMap.get(queuedRequest.projectName) === queuedRequest) {\n this.requestMap.delete(queuedRequest.projectName);\n this.scheduleRequest(queuedRequest);\n break;\n }\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Skipping defunct request for: ${queuedRequest.projectName}`);\n }\n }\n this.projectService.updateTypingsForProject(response);\n this.event(response, \"setTypings\");\n break;\n }\n case ActionWatchTypingLocations:\n this.projectService.watchTypingLocations(response);\n break;\n default:\n assertType(response);\n }\n }\n scheduleRequest(request) {\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Scheduling request for: ${request.projectName}`);\n }\n this.activeRequestCount++;\n this.host.setTimeout(\n () => {\n if (this.logger.hasLevel(3 /* verbose */)) {\n this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(request)}`);\n }\n this.installer.send(request);\n },\n _TypingsInstallerAdapter.requestDelayMillis,\n `${request.projectName}::${request.kind}`\n );\n }\n};\n// This number is essentially arbitrary. Processing more than one typings request\n// at a time makes sense, but having too many in the pipe results in a hang\n// (see https://github.com/nodejs/node/issues/7657).\n// It would be preferable to base our limit on the amount of space left in the\n// buffer, but we have yet to find a way to retrieve that value.\n_TypingsInstallerAdapter.requestDelayMillis = 100;\nvar TypingsInstallerAdapter = _TypingsInstallerAdapter;\n\n// src/typescript/_namespaces/ts.server.ts\nvar ts_server_exports4 = {};\n__export(ts_server_exports4, {\n ActionInvalidate: () => ActionInvalidate,\n ActionPackageInstalled: () => ActionPackageInstalled,\n ActionSet: () => ActionSet,\n ActionWatchTypingLocations: () => ActionWatchTypingLocations,\n Arguments: () => Arguments,\n AutoImportProviderProject: () => AutoImportProviderProject,\n AuxiliaryProject: () => AuxiliaryProject,\n CharRangeSection: () => CharRangeSection,\n CloseFileWatcherEvent: () => CloseFileWatcherEvent,\n CommandNames: () => CommandNames,\n ConfigFileDiagEvent: () => ConfigFileDiagEvent,\n ConfiguredProject: () => ConfiguredProject2,\n ConfiguredProjectLoadKind: () => ConfiguredProjectLoadKind,\n CreateDirectoryWatcherEvent: () => CreateDirectoryWatcherEvent,\n CreateFileWatcherEvent: () => CreateFileWatcherEvent,\n Errors: () => Errors,\n EventBeginInstallTypes: () => EventBeginInstallTypes,\n EventEndInstallTypes: () => EventEndInstallTypes,\n EventInitializationFailed: () => EventInitializationFailed,\n EventTypesRegistry: () => EventTypesRegistry,\n ExternalProject: () => ExternalProject,\n GcTimer: () => GcTimer,\n InferredProject: () => InferredProject2,\n LargeFileReferencedEvent: () => LargeFileReferencedEvent,\n LineIndex: () => LineIndex,\n LineLeaf: () => LineLeaf,\n LineNode: () => LineNode,\n LogLevel: () => LogLevel2,\n Msg: () => Msg,\n OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent,\n Project: () => Project2,\n ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent,\n ProjectKind: () => ProjectKind,\n ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent,\n ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent,\n ProjectLoadingStartEvent: () => ProjectLoadingStartEvent,\n ProjectService: () => ProjectService2,\n ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent,\n ScriptInfo: () => ScriptInfo,\n ScriptVersionCache: () => ScriptVersionCache,\n Session: () => Session3,\n TextStorage: () => TextStorage,\n ThrottledOperations: () => ThrottledOperations,\n TypingsInstallerAdapter: () => TypingsInstallerAdapter,\n allFilesAreJsOrDts: () => allFilesAreJsOrDts,\n allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts,\n asNormalizedPath: () => asNormalizedPath,\n convertCompilerOptions: () => convertCompilerOptions,\n convertFormatOptions: () => convertFormatOptions,\n convertScriptKindName: () => convertScriptKindName,\n convertTypeAcquisition: () => convertTypeAcquisition,\n convertUserPreferences: () => convertUserPreferences,\n convertWatchOptions: () => convertWatchOptions,\n countEachFileTypes: () => countEachFileTypes,\n createInstallTypingsRequest: () => createInstallTypingsRequest,\n createModuleSpecifierCache: () => createModuleSpecifierCache,\n createNormalizedPathMap: () => createNormalizedPathMap,\n createPackageJsonCache: () => createPackageJsonCache,\n createSortedArray: () => createSortedArray2,\n emptyArray: () => emptyArray2,\n findArgument: () => findArgument,\n formatDiagnosticToProtocol: () => formatDiagnosticToProtocol,\n formatMessage: () => formatMessage2,\n getBaseConfigFileName: () => getBaseConfigFileName,\n getDetailWatchInfo: () => getDetailWatchInfo,\n getLocationInNewDocument: () => getLocationInNewDocument,\n hasArgument: () => hasArgument,\n hasNoTypeScriptSource: () => hasNoTypeScriptSource,\n indent: () => indent2,\n isBackgroundProject: () => isBackgroundProject,\n isConfigFile: () => isConfigFile,\n isConfiguredProject: () => isConfiguredProject,\n isDynamicFileName: () => isDynamicFileName,\n isExternalProject: () => isExternalProject,\n isInferredProject: () => isInferredProject,\n isInferredProjectName: () => isInferredProjectName,\n isProjectDeferredClose: () => isProjectDeferredClose,\n makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName,\n makeAuxiliaryProjectName: () => makeAuxiliaryProjectName,\n makeInferredProjectName: () => makeInferredProjectName,\n maxFileSize: () => maxFileSize,\n maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles,\n normalizedPathToPath: () => normalizedPathToPath,\n nowString: () => nowString,\n nullCancellationToken: () => nullCancellationToken,\n nullTypingsInstaller: () => nullTypingsInstaller,\n protocol: () => ts_server_protocol_exports,\n scriptInfoIsContainedByBackgroundProject: () => scriptInfoIsContainedByBackgroundProject,\n scriptInfoIsContainedByDeferredClosedProject: () => scriptInfoIsContainedByDeferredClosedProject,\n stringifyIndented: () => stringifyIndented,\n toEvent: () => toEvent,\n toNormalizedPath: () => toNormalizedPath,\n tryConvertScriptKindName: () => tryConvertScriptKindName,\n typingsInstaller: () => ts_server_typingsInstaller_exports,\n updateProjectIfDirty: () => updateProjectIfDirty\n});\n\n// src/typescript/typescript.ts\nif (typeof console !== \"undefined\") {\n Debug.loggingHost = {\n log(level, s) {\n switch (level) {\n case 1 /* Error */:\n return console.error(s);\n case 2 /* Warning */:\n return console.warn(s);\n case 3 /* Info */:\n return console.log(s);\n case 4 /* Verbose */:\n return console.log(s);\n }\n }\n };\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n ANONYMOUS,\n AccessFlags,\n AssertionLevel,\n AssignmentDeclarationKind,\n AssignmentKind,\n Associativity,\n BreakpointResolver,\n BuilderFileEmit,\n BuilderProgramKind,\n BuilderState,\n CallHierarchy,\n CharacterCodes,\n CheckFlags,\n CheckMode,\n ClassificationType,\n ClassificationTypeNames,\n CommentDirectiveType,\n Comparison,\n CompletionInfoFlags,\n CompletionTriggerKind,\n Completions,\n ContainerFlags,\n ContextFlags,\n Debug,\n DiagnosticCategory,\n Diagnostics,\n DocumentHighlights,\n ElementFlags,\n EmitFlags,\n EmitHint,\n EmitOnly,\n EndOfLineState,\n ExitStatus,\n ExportKind,\n Extension,\n ExternalEmitHelpers,\n FileIncludeKind,\n FilePreprocessingDiagnosticsKind,\n FileSystemEntryKind,\n FileWatcherEventKind,\n FindAllReferences,\n FlattenLevel,\n FlowFlags,\n ForegroundColorEscapeSequences,\n FunctionFlags,\n GeneratedIdentifierFlags,\n GetLiteralTextFlags,\n GoToDefinition,\n HighlightSpanKind,\n IdentifierNameMap,\n ImportKind,\n ImportsNotUsedAsValues,\n IndentStyle,\n IndexFlags,\n IndexKind,\n InferenceFlags,\n InferencePriority,\n InlayHintKind,\n InlayHints,\n InternalEmitFlags,\n InternalNodeBuilderFlags,\n InternalSymbolName,\n IntersectionFlags,\n InvalidatedProjectKind,\n JSDocParsingMode,\n JsDoc,\n JsTyping,\n JsxEmit,\n JsxFlags,\n JsxReferenceKind,\n LanguageFeatureMinimumTarget,\n LanguageServiceMode,\n LanguageVariant,\n LexicalEnvironmentFlags,\n ListFormat,\n LogLevel,\n MapCode,\n MemberOverrideStatus,\n ModifierFlags,\n ModuleDetectionKind,\n ModuleInstanceState,\n ModuleKind,\n ModuleResolutionKind,\n ModuleSpecifierEnding,\n NavigateTo,\n NavigationBar,\n NewLineKind,\n NodeBuilderFlags,\n NodeCheckFlags,\n NodeFactoryFlags,\n NodeFlags,\n NodeResolutionFeatures,\n ObjectFlags,\n OperationCanceledException,\n OperatorPrecedence,\n OrganizeImports,\n OrganizeImportsMode,\n OuterExpressionKinds,\n OutliningElementsCollector,\n OutliningSpanKind,\n OutputFileType,\n PackageJsonAutoImportPreference,\n PackageJsonDependencyGroup,\n PatternMatchKind,\n PollingInterval,\n PollingWatchKind,\n PragmaKindFlags,\n PredicateSemantics,\n PreparePasteEdits,\n PrivateIdentifierKind,\n ProcessLevel,\n ProgramUpdateLevel,\n QuotePreference,\n RegularExpressionFlags,\n RelationComparisonResult,\n Rename,\n ScriptElementKind,\n ScriptElementKindModifier,\n ScriptKind,\n ScriptSnapshot,\n ScriptTarget,\n SemanticClassificationFormat,\n SemanticMeaning,\n SemicolonPreference,\n SignatureCheckMode,\n SignatureFlags,\n SignatureHelp,\n SignatureInfo,\n SignatureKind,\n SmartSelectionRange,\n SnippetKind,\n StatisticType,\n StructureIsReused,\n SymbolAccessibility,\n SymbolDisplay,\n SymbolDisplayPartKind,\n SymbolFlags,\n SymbolFormatFlags,\n SyntaxKind,\n Ternary,\n ThrottledCancellationToken,\n TokenClass,\n TokenFlags,\n TransformFlags,\n TypeFacts,\n TypeFlags,\n TypeFormatFlags,\n TypeMapKind,\n TypePredicateKind,\n TypeReferenceSerializationKind,\n UnionReduction,\n UpToDateStatusType,\n VarianceFlags,\n Version,\n VersionRange,\n WatchDirectoryFlags,\n WatchDirectoryKind,\n WatchFileKind,\n WatchLogLevel,\n WatchType,\n accessPrivateIdentifier,\n addEmitFlags,\n addEmitHelper,\n addEmitHelpers,\n addInternalEmitFlags,\n addNodeFactoryPatcher,\n addObjectAllocatorPatcher,\n addRange,\n addRelatedInfo,\n addSyntheticLeadingComment,\n addSyntheticTrailingComment,\n addToSeen,\n advancedAsyncSuperHelper,\n affectsDeclarationPathOptionDeclarations,\n affectsEmitOptionDeclarations,\n allKeysStartWithDot,\n altDirectorySeparator,\n and,\n append,\n appendIfUnique,\n arrayFrom,\n arrayIsEqualTo,\n arrayIsHomogeneous,\n arrayOf,\n arrayReverseIterator,\n arrayToMap,\n arrayToMultiMap,\n arrayToNumericMap,\n assertType,\n assign,\n asyncSuperHelper,\n attachFileToDiagnostics,\n base64decode,\n base64encode,\n binarySearch,\n binarySearchKey,\n bindSourceFile,\n breakIntoCharacterSpans,\n breakIntoWordSpans,\n buildLinkParts,\n buildOpts,\n buildOverload,\n bundlerModuleNameResolver,\n canBeConvertedToAsync,\n canHaveDecorators,\n canHaveExportModifier,\n canHaveFlowNode,\n canHaveIllegalDecorators,\n canHaveIllegalModifiers,\n canHaveIllegalType,\n canHaveIllegalTypeParameters,\n canHaveJSDoc,\n canHaveLocals,\n canHaveModifiers,\n canHaveModuleSpecifier,\n canHaveSymbol,\n canIncludeBindAndCheckDiagnostics,\n canJsonReportNoInputFiles,\n canProduceDiagnostics,\n canUsePropertyAccess,\n canWatchAffectingLocation,\n canWatchAtTypes,\n canWatchDirectoryOrFile,\n canWatchDirectoryOrFilePath,\n cartesianProduct,\n cast,\n chainBundle,\n chainDiagnosticMessages,\n changeAnyExtension,\n changeCompilerHostLikeToUseCache,\n changeExtension,\n changeFullExtension,\n changesAffectModuleResolution,\n changesAffectingProgramStructure,\n characterCodeToRegularExpressionFlag,\n childIsDecorated,\n classElementOrClassElementParameterIsDecorated,\n classHasClassThisAssignment,\n classHasDeclaredOrExplicitlyAssignedName,\n classHasExplicitlyAssignedName,\n classOrConstructorParameterIsDecorated,\n classicNameResolver,\n classifier,\n cleanExtendedConfigCache,\n clear,\n clearMap,\n clearSharedExtendedConfigFileWatcher,\n climbPastPropertyAccess,\n clone,\n cloneCompilerOptions,\n closeFileWatcher,\n closeFileWatcherOf,\n codefix,\n collapseTextChangeRangesAcrossMultipleVersions,\n collectExternalModuleInfo,\n combine,\n combinePaths,\n commandLineOptionOfCustomType,\n commentPragmas,\n commonOptionsWithBuild,\n compact,\n compareBooleans,\n compareDataObjects,\n compareDiagnostics,\n compareEmitHelpers,\n compareNumberOfDirectorySeparators,\n comparePaths,\n comparePathsCaseInsensitive,\n comparePathsCaseSensitive,\n comparePatternKeys,\n compareProperties,\n compareStringsCaseInsensitive,\n compareStringsCaseInsensitiveEslintCompatible,\n compareStringsCaseSensitive,\n compareStringsCaseSensitiveUI,\n compareTextSpans,\n compareValues,\n compilerOptionsAffectDeclarationPath,\n compilerOptionsAffectEmit,\n compilerOptionsAffectSemanticDiagnostics,\n compilerOptionsDidYouMeanDiagnostics,\n compilerOptionsIndicateEsModules,\n computeCommonSourceDirectoryOfFilenames,\n computeLineAndCharacterOfPosition,\n computeLineOfPosition,\n computeLineStarts,\n computePositionOfLineAndCharacter,\n computeSignatureWithDiagnostics,\n computeSuggestionDiagnostics,\n computedOptions,\n concatenate,\n concatenateDiagnosticMessageChains,\n consumesNodeCoreModules,\n contains,\n containsIgnoredPath,\n containsObjectRestOrSpread,\n containsParseError,\n containsPath,\n convertCompilerOptionsForTelemetry,\n convertCompilerOptionsFromJson,\n convertJsonOption,\n convertToBase64,\n convertToJson,\n convertToObject,\n convertToOptionsWithAbsolutePaths,\n convertToRelativePath,\n convertToTSConfig,\n convertTypeAcquisitionFromJson,\n copyComments,\n copyEntries,\n copyLeadingComments,\n copyProperties,\n copyTrailingAsLeadingComments,\n copyTrailingComments,\n couldStartTrivia,\n countWhere,\n createAbstractBuilder,\n createAccessorPropertyBackingField,\n createAccessorPropertyGetRedirector,\n createAccessorPropertySetRedirector,\n createBaseNodeFactory,\n createBinaryExpressionTrampoline,\n createBuilderProgram,\n createBuilderProgramUsingIncrementalBuildInfo,\n createBuilderStatusReporter,\n createCacheableExportInfoMap,\n createCachedDirectoryStructureHost,\n createClassifier,\n createCommentDirectivesMap,\n createCompilerDiagnostic,\n createCompilerDiagnosticForInvalidCustomType,\n createCompilerDiagnosticFromMessageChain,\n createCompilerHost,\n createCompilerHostFromProgramHost,\n createCompilerHostWorker,\n createDetachedDiagnostic,\n createDiagnosticCollection,\n createDiagnosticForFileFromMessageChain,\n createDiagnosticForNode,\n createDiagnosticForNodeArray,\n createDiagnosticForNodeArrayFromMessageChain,\n createDiagnosticForNodeFromMessageChain,\n createDiagnosticForNodeInSourceFile,\n createDiagnosticForRange,\n createDiagnosticMessageChainFromDiagnostic,\n createDiagnosticReporter,\n createDocumentPositionMapper,\n createDocumentRegistry,\n createDocumentRegistryInternal,\n createEmitAndSemanticDiagnosticsBuilderProgram,\n createEmitHelperFactory,\n createEmptyExports,\n createEvaluator,\n createExpressionForJsxElement,\n createExpressionForJsxFragment,\n createExpressionForObjectLiteralElementLike,\n createExpressionForPropertyName,\n createExpressionFromEntityName,\n createExternalHelpersImportDeclarationIfNeeded,\n createFileDiagnostic,\n createFileDiagnosticFromMessageChain,\n createFlowNode,\n createForOfBindingStatement,\n createFutureSourceFile,\n createGetCanonicalFileName,\n createGetIsolatedDeclarationErrors,\n createGetSourceFile,\n createGetSymbolAccessibilityDiagnosticForNode,\n createGetSymbolAccessibilityDiagnosticForNodeName,\n createGetSymbolWalker,\n createIncrementalCompilerHost,\n createIncrementalProgram,\n createJsxFactoryExpression,\n createLanguageService,\n createLanguageServiceSourceFile,\n createMemberAccessForPropertyName,\n createModeAwareCache,\n createModeAwareCacheKey,\n createModeMismatchDetails,\n createModuleNotFoundChain,\n createModuleResolutionCache,\n createModuleResolutionLoader,\n createModuleResolutionLoaderUsingGlobalCache,\n createModuleSpecifierResolutionHost,\n createMultiMap,\n createNameResolver,\n createNodeConverters,\n createNodeFactory,\n createOptionNameMap,\n createOverload,\n createPackageJsonImportFilter,\n createPackageJsonInfo,\n createParenthesizerRules,\n createPatternMatcher,\n createPrinter,\n createPrinterWithDefaults,\n createPrinterWithRemoveComments,\n createPrinterWithRemoveCommentsNeverAsciiEscape,\n createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n createProgram,\n createProgramDiagnostics,\n createProgramHost,\n createPropertyNameNodeForIdentifierOrLiteral,\n createQueue,\n createRange,\n createRedirectedBuilderProgram,\n createResolutionCache,\n createRuntimeTypeSerializer,\n createScanner,\n createSemanticDiagnosticsBuilderProgram,\n createSet,\n createSolutionBuilder,\n createSolutionBuilderHost,\n createSolutionBuilderWithWatch,\n createSolutionBuilderWithWatchHost,\n createSortedArray,\n createSourceFile,\n createSourceMapGenerator,\n createSourceMapSource,\n createSuperAccessVariableStatement,\n createSymbolTable,\n createSymlinkCache,\n createSyntacticTypeNodeBuilder,\n createSystemWatchFunctions,\n createTextChange,\n createTextChangeFromStartLength,\n createTextChangeRange,\n createTextRangeFromNode,\n createTextRangeFromSpan,\n createTextSpan,\n createTextSpanFromBounds,\n createTextSpanFromNode,\n createTextSpanFromRange,\n createTextSpanFromStringLiteralLikeContent,\n createTextWriter,\n createTokenRange,\n createTypeChecker,\n createTypeReferenceDirectiveResolutionCache,\n createTypeReferenceResolutionLoader,\n createWatchCompilerHost,\n createWatchCompilerHostOfConfigFile,\n createWatchCompilerHostOfFilesAndCompilerOptions,\n createWatchFactory,\n createWatchHost,\n createWatchProgram,\n createWatchStatusReporter,\n createWriteFileMeasuringIO,\n declarationNameToString,\n decodeMappings,\n decodedTextSpanIntersectsWith,\n deduplicate,\n defaultHoverMaximumTruncationLength,\n defaultInitCompilerOptions,\n defaultMaximumTruncationLength,\n diagnosticCategoryName,\n diagnosticToString,\n diagnosticsEqualityComparer,\n directoryProbablyExists,\n directorySeparator,\n displayPart,\n displayPartsToString,\n disposeEmitNodes,\n documentSpansEqual,\n dumpTracingLegend,\n elementAt,\n elideNodes,\n emitDetachedComments,\n emitFiles,\n emitFilesAndReportErrors,\n emitFilesAndReportErrorsAndGetExitStatus,\n emitModuleKindIsNonNodeESM,\n emitNewLineBeforeLeadingCommentOfPosition,\n emitResolverSkipsTypeChecking,\n emitSkippedWithNoDiagnostics,\n emptyArray,\n emptyFileSystemEntries,\n emptyMap,\n emptyOptions,\n endsWith,\n ensurePathIsNonModuleName,\n ensureScriptKind,\n ensureTrailingDirectorySeparator,\n entityNameToString,\n enumerateInsertsAndDeletes,\n equalOwnProperties,\n equateStringsCaseInsensitive,\n equateStringsCaseSensitive,\n equateValues,\n escapeJsxAttributeString,\n escapeLeadingUnderscores,\n escapeNonAsciiString,\n escapeSnippetText,\n escapeString,\n escapeTemplateSubstitution,\n evaluatorResult,\n every,\n exclusivelyPrefixedNodeCoreModules,\n executeCommandLine,\n expandPreOrPostfixIncrementOrDecrementExpression,\n explainFiles,\n explainIfFileIsRedirectAndImpliedFormat,\n exportAssignmentIsAlias,\n expressionResultIsUnused,\n extend,\n extensionFromPath,\n extensionIsTS,\n extensionsNotSupportingExtensionlessResolution,\n externalHelpersModuleNameText,\n factory,\n fileExtensionIs,\n fileExtensionIsOneOf,\n fileIncludeReasonToDiagnostics,\n fileShouldUseJavaScriptRequire,\n filter,\n filterMutate,\n filterSemanticDiagnostics,\n find,\n findAncestor,\n findBestPatternMatch,\n findChildOfKind,\n findComputedPropertyNameCacheAssignment,\n findConfigFile,\n findConstructorDeclaration,\n findContainingList,\n findDiagnosticForNode,\n findFirstNonJsxWhitespaceToken,\n findIndex,\n findLast,\n findLastIndex,\n findListItemInfo,\n findModifier,\n findNextToken,\n findPackageJson,\n findPackageJsons,\n findPrecedingMatchingToken,\n findPrecedingToken,\n findSuperStatementIndexPath,\n findTokenOnLeftOfPosition,\n findUseStrictPrologue,\n first,\n firstDefined,\n firstDefinedIterator,\n firstIterator,\n firstOrOnly,\n firstOrUndefined,\n firstOrUndefinedIterator,\n fixupCompilerOptions,\n flatMap,\n flatMapIterator,\n flatMapToMutable,\n flatten,\n flattenCommaList,\n flattenDestructuringAssignment,\n flattenDestructuringBinding,\n flattenDiagnosticMessageText,\n forEach,\n forEachAncestor,\n forEachAncestorDirectory,\n forEachAncestorDirectoryStoppingAtGlobalCache,\n forEachChild,\n forEachChildRecursively,\n forEachDynamicImportOrRequireCall,\n forEachEmittedFile,\n forEachEnclosingBlockScopeContainer,\n forEachEntry,\n forEachExternalModuleToImportFrom,\n forEachImportClauseDeclaration,\n forEachKey,\n forEachLeadingCommentRange,\n forEachNameInAccessChainWalkingLeft,\n forEachNameOfDefaultExport,\n forEachOptionsSyntaxByName,\n forEachProjectReference,\n forEachPropertyAssignment,\n forEachResolvedProjectReference,\n forEachReturnStatement,\n forEachRight,\n forEachTrailingCommentRange,\n forEachTsConfigPropArray,\n forEachUnique,\n forEachYieldExpression,\n formatColorAndReset,\n formatDiagnostic,\n formatDiagnostics,\n formatDiagnosticsWithColorAndContext,\n formatGeneratedName,\n formatGeneratedNamePart,\n formatLocation,\n formatMessage,\n formatStringFromArgs,\n formatting,\n generateDjb2Hash,\n generateTSConfig,\n getAdjustedReferenceLocation,\n getAdjustedRenameLocation,\n getAliasDeclarationFromName,\n getAllAccessorDeclarations,\n getAllDecoratorsOfClass,\n getAllDecoratorsOfClassElement,\n getAllJSDocTags,\n getAllJSDocTagsOfKind,\n getAllKeys,\n getAllProjectOutputs,\n getAllSuperTypeNodes,\n getAllowImportingTsExtensions,\n getAllowJSCompilerOption,\n getAllowSyntheticDefaultImports,\n getAncestor,\n getAnyExtensionFromPath,\n getAreDeclarationMapsEnabled,\n getAssignedExpandoInitializer,\n getAssignedName,\n getAssignmentDeclarationKind,\n getAssignmentDeclarationPropertyAccessKind,\n getAssignmentTargetKind,\n getAutomaticTypeDirectiveNames,\n getBaseFileName,\n getBinaryOperatorPrecedence,\n getBuildInfo,\n getBuildInfoFileVersionMap,\n getBuildInfoText,\n getBuildOrderFromAnyBuildOrder,\n getBuilderCreationParameters,\n getBuilderFileEmit,\n getCanonicalDiagnostic,\n getCheckFlags,\n getClassExtendsHeritageElement,\n getClassLikeDeclarationOfSymbol,\n getCombinedLocalAndExportSymbolFlags,\n getCombinedModifierFlags,\n getCombinedNodeFlags,\n getCombinedNodeFlagsAlwaysIncludeJSDoc,\n getCommentRange,\n getCommonSourceDirectory,\n getCommonSourceDirectoryOfConfig,\n getCompilerOptionValue,\n getConditions,\n getConfigFileParsingDiagnostics,\n getConstantValue,\n getContainerFlags,\n getContainerNode,\n getContainingClass,\n getContainingClassExcludingClassDecorators,\n getContainingClassStaticBlock,\n getContainingFunction,\n getContainingFunctionDeclaration,\n getContainingFunctionOrClassStaticBlock,\n getContainingNodeArray,\n getContainingObjectLiteralElement,\n getContextualTypeFromParent,\n getContextualTypeFromParentOrAncestorTypeNode,\n getDeclarationDiagnostics,\n getDeclarationEmitExtensionForPath,\n getDeclarationEmitOutputFilePath,\n getDeclarationEmitOutputFilePathWorker,\n getDeclarationFileExtension,\n getDeclarationFromName,\n getDeclarationModifierFlagsFromSymbol,\n getDeclarationOfKind,\n getDeclarationsOfKind,\n getDeclaredExpandoInitializer,\n getDecorators,\n getDefaultCompilerOptions,\n getDefaultFormatCodeSettings,\n getDefaultLibFileName,\n getDefaultLibFilePath,\n getDefaultLikeExportInfo,\n getDefaultLikeExportNameFromDeclaration,\n getDefaultResolutionModeForFileWorker,\n getDiagnosticText,\n getDiagnosticsWithinSpan,\n getDirectoryPath,\n getDirectoryToWatchFailedLookupLocation,\n getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n getDocumentPositionMapper,\n getDocumentSpansEqualityComparer,\n getESModuleInterop,\n getEditsForFileRename,\n getEffectiveBaseTypeNode,\n getEffectiveConstraintOfTypeParameter,\n getEffectiveContainerForJSDocTemplateTag,\n getEffectiveImplementsTypeNodes,\n getEffectiveInitializer,\n getEffectiveJSDocHost,\n getEffectiveModifierFlags,\n getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n getEffectiveModifierFlagsNoCache,\n getEffectiveReturnTypeNode,\n getEffectiveSetAccessorTypeAnnotationNode,\n getEffectiveTypeAnnotationNode,\n getEffectiveTypeParameterDeclarations,\n getEffectiveTypeRoots,\n getElementOrPropertyAccessArgumentExpressionOrName,\n getElementOrPropertyAccessName,\n getElementsOfBindingOrAssignmentPattern,\n getEmitDeclarations,\n getEmitFlags,\n getEmitHelpers,\n getEmitModuleDetectionKind,\n getEmitModuleFormatOfFileWorker,\n getEmitModuleKind,\n getEmitModuleResolutionKind,\n getEmitScriptTarget,\n getEmitStandardClassFields,\n getEnclosingBlockScopeContainer,\n getEnclosingContainer,\n getEncodedSemanticClassifications,\n getEncodedSyntacticClassifications,\n getEndLinePosition,\n getEntityNameFromTypeNode,\n getEntrypointsFromPackageJsonInfo,\n getErrorCountForSummary,\n getErrorSpanForNode,\n getErrorSummaryText,\n getEscapedTextOfIdentifierOrLiteral,\n getEscapedTextOfJsxAttributeName,\n getEscapedTextOfJsxNamespacedName,\n getExpandoInitializer,\n getExportAssignmentExpression,\n getExportInfoMap,\n getExportNeedsImportStarHelper,\n getExpressionAssociativity,\n getExpressionPrecedence,\n getExternalHelpersModuleName,\n getExternalModuleImportEqualsDeclarationExpression,\n getExternalModuleName,\n getExternalModuleNameFromDeclaration,\n getExternalModuleNameFromPath,\n getExternalModuleNameLiteral,\n getExternalModuleRequireArgument,\n getFallbackOptions,\n getFileEmitOutput,\n getFileMatcherPatterns,\n getFileNamesFromConfigSpecs,\n getFileWatcherEventKind,\n getFilesInErrorForSummary,\n getFirstConstructorWithBody,\n getFirstIdentifier,\n getFirstNonSpaceCharacterPosition,\n getFirstProjectOutput,\n getFixableErrorSpanExpression,\n getFormatCodeSettingsForWriting,\n getFullWidth,\n getFunctionFlags,\n getHeritageClause,\n getHostSignatureFromJSDoc,\n getIdentifierAutoGenerate,\n getIdentifierGeneratedImportReference,\n getIdentifierTypeArguments,\n getImmediatelyInvokedFunctionExpression,\n getImpliedNodeFormatForEmitWorker,\n getImpliedNodeFormatForFile,\n getImpliedNodeFormatForFileWorker,\n getImportNeedsImportDefaultHelper,\n getImportNeedsImportStarHelper,\n getIndentString,\n getInferredLibraryNameResolveFrom,\n getInitializedVariables,\n getInitializerOfBinaryExpression,\n getInitializerOfBindingOrAssignmentElement,\n getInterfaceBaseTypeNodes,\n getInternalEmitFlags,\n getInvokedExpression,\n getIsFileExcluded,\n getIsolatedModules,\n getJSDocAugmentsTag,\n getJSDocClassTag,\n getJSDocCommentRanges,\n getJSDocCommentsAndTags,\n getJSDocDeprecatedTag,\n getJSDocDeprecatedTagNoCache,\n getJSDocEnumTag,\n getJSDocHost,\n getJSDocImplementsTags,\n getJSDocOverloadTags,\n getJSDocOverrideTagNoCache,\n getJSDocParameterTags,\n getJSDocParameterTagsNoCache,\n getJSDocPrivateTag,\n getJSDocPrivateTagNoCache,\n getJSDocProtectedTag,\n getJSDocProtectedTagNoCache,\n getJSDocPublicTag,\n getJSDocPublicTagNoCache,\n getJSDocReadonlyTag,\n getJSDocReadonlyTagNoCache,\n getJSDocReturnTag,\n getJSDocReturnType,\n getJSDocRoot,\n getJSDocSatisfiesExpressionType,\n getJSDocSatisfiesTag,\n getJSDocTags,\n getJSDocTemplateTag,\n getJSDocThisTag,\n getJSDocType,\n getJSDocTypeAliasName,\n getJSDocTypeAssertionType,\n getJSDocTypeParameterDeclarations,\n getJSDocTypeParameterTags,\n getJSDocTypeParameterTagsNoCache,\n getJSDocTypeTag,\n getJSXImplicitImportBase,\n getJSXRuntimeImport,\n getJSXTransformEnabled,\n getKeyForCompilerOptions,\n getLanguageVariant,\n getLastChild,\n getLeadingCommentRanges,\n getLeadingCommentRangesOfNode,\n getLeftmostAccessExpression,\n getLeftmostExpression,\n getLibFileNameFromLibReference,\n getLibNameFromLibReference,\n getLibraryNameFromLibFileName,\n getLineAndCharacterOfPosition,\n getLineInfo,\n getLineOfLocalPosition,\n getLineStartPositionForPosition,\n getLineStarts,\n getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n getLinesBetweenPositions,\n getLinesBetweenRangeEndAndRangeStart,\n getLinesBetweenRangeEndPositions,\n getLiteralText,\n getLocalNameForExternalImport,\n getLocalSymbolForExportDefault,\n getLocaleSpecificMessage,\n getLocaleTimeString,\n getMappedContextSpan,\n getMappedDocumentSpan,\n getMappedLocation,\n getMatchedFileSpec,\n getMatchedIncludeSpec,\n getMeaningFromDeclaration,\n getMeaningFromLocation,\n getMembersOfDeclaration,\n getModeForFileReference,\n getModeForResolutionAtIndex,\n getModeForUsageLocation,\n getModifiedTime,\n getModifiers,\n getModuleInstanceState,\n getModuleNameStringLiteralAt,\n getModuleSpecifierEndingPreference,\n getModuleSpecifierResolverHost,\n getNameForExportedSymbol,\n getNameFromImportAttribute,\n getNameFromIndexInfo,\n getNameFromPropertyName,\n getNameOfAccessExpression,\n getNameOfCompilerOptionValue,\n getNameOfDeclaration,\n getNameOfExpando,\n getNameOfJSDocTypedef,\n getNameOfScriptTarget,\n getNameOrArgument,\n getNameTable,\n getNamespaceDeclarationNode,\n getNewLineCharacter,\n getNewLineKind,\n getNewLineOrDefaultFromHost,\n getNewTargetContainer,\n getNextJSDocCommentLocation,\n getNodeChildren,\n getNodeForGeneratedName,\n getNodeId,\n getNodeKind,\n getNodeModifiers,\n getNodeModulePathParts,\n getNonAssignedNameOfDeclaration,\n getNonAssignmentOperatorForCompoundAssignment,\n getNonAugmentationDeclaration,\n getNonDecoratorTokenPosOfNode,\n getNonIncrementalBuildInfoRoots,\n getNonModifierTokenPosOfNode,\n getNormalizedAbsolutePath,\n getNormalizedAbsolutePathWithoutRoot,\n getNormalizedPathComponents,\n getObjectFlags,\n getOperatorAssociativity,\n getOperatorPrecedence,\n getOptionFromName,\n getOptionsForLibraryResolution,\n getOptionsNameMap,\n getOptionsSyntaxByArrayElementValue,\n getOptionsSyntaxByValue,\n getOrCreateEmitNode,\n getOrUpdate,\n getOriginalNode,\n getOriginalNodeId,\n getOutputDeclarationFileName,\n getOutputDeclarationFileNameWorker,\n getOutputExtension,\n getOutputFileNames,\n getOutputJSFileNameWorker,\n getOutputPathsFor,\n getOwnEmitOutputFilePath,\n getOwnKeys,\n getOwnValues,\n getPackageJsonTypesVersionsPaths,\n getPackageNameFromTypesPackageName,\n getPackageScopeForPath,\n getParameterSymbolFromJSDoc,\n getParentNodeInSpan,\n getParseTreeNode,\n getParsedCommandLineOfConfigFile,\n getPathComponents,\n getPathFromPathComponents,\n getPathUpdater,\n getPathsBasePath,\n getPatternFromSpec,\n getPendingEmitKindWithSeen,\n getPositionOfLineAndCharacter,\n getPossibleGenericSignatures,\n getPossibleOriginalInputExtensionForExtension,\n getPossibleOriginalInputPathWithoutChangingExt,\n getPossibleTypeArgumentsInfo,\n getPreEmitDiagnostics,\n getPrecedingNonSpaceCharacterPosition,\n getPrivateIdentifier,\n getProperties,\n getProperty,\n getPropertyAssignmentAliasLikeExpression,\n getPropertyNameForPropertyNameNode,\n getPropertyNameFromType,\n getPropertyNameOfBindingOrAssignmentElement,\n getPropertySymbolFromBindingElement,\n getPropertySymbolsFromContextualType,\n getQuoteFromPreference,\n getQuotePreference,\n getRangesWhere,\n getRefactorContextSpan,\n getReferencedFileLocation,\n getRegexFromPattern,\n getRegularExpressionForWildcard,\n getRegularExpressionsForWildcards,\n getRelativePathFromDirectory,\n getRelativePathFromFile,\n getRelativePathToDirectoryOrUrl,\n getRenameLocation,\n getReplacementSpanForContextToken,\n getResolutionDiagnostic,\n getResolutionModeOverride,\n getResolveJsonModule,\n getResolvePackageJsonExports,\n getResolvePackageJsonImports,\n getResolvedExternalModuleName,\n getResolvedModuleFromResolution,\n getResolvedTypeReferenceDirectiveFromResolution,\n getRestIndicatorOfBindingOrAssignmentElement,\n getRestParameterElementType,\n getRightMostAssignedExpression,\n getRootDeclaration,\n getRootDirectoryOfResolutionCache,\n getRootLength,\n getScriptKind,\n getScriptKindFromFileName,\n getScriptTargetFeatures,\n getSelectedEffectiveModifierFlags,\n getSelectedSyntacticModifierFlags,\n getSemanticClassifications,\n getSemanticJsxChildren,\n getSetAccessorTypeAnnotationNode,\n getSetAccessorValueParameter,\n getSetExternalModuleIndicator,\n getShebang,\n getSingleVariableOfVariableStatement,\n getSnapshotText,\n getSnippetElement,\n getSourceFileOfModule,\n getSourceFileOfNode,\n getSourceFilePathInNewDir,\n getSourceFileVersionAsHashFromText,\n getSourceFilesToEmit,\n getSourceMapRange,\n getSourceMapper,\n getSourceTextOfNodeFromSourceFile,\n getSpanOfTokenAtPosition,\n getSpellingSuggestion,\n getStartPositionOfLine,\n getStartPositionOfRange,\n getStartsOnNewLine,\n getStaticPropertiesAndClassStaticBlock,\n getStrictOptionValue,\n getStringComparer,\n getSubPatternFromSpec,\n getSuperCallFromStatement,\n getSuperContainer,\n getSupportedCodeFixes,\n getSupportedExtensions,\n getSupportedExtensionsWithJsonIfResolveJsonModule,\n getSwitchedType,\n getSymbolId,\n getSymbolNameForPrivateIdentifier,\n getSymbolTarget,\n getSyntacticClassifications,\n getSyntacticModifierFlags,\n getSyntacticModifierFlagsNoCache,\n getSynthesizedDeepClone,\n getSynthesizedDeepCloneWithReplacements,\n getSynthesizedDeepClones,\n getSynthesizedDeepClonesWithReplacements,\n getSyntheticLeadingComments,\n getSyntheticTrailingComments,\n getTargetLabel,\n getTargetOfBindingOrAssignmentElement,\n getTemporaryModuleResolutionState,\n getTextOfConstantValue,\n getTextOfIdentifierOrLiteral,\n getTextOfJSDocComment,\n getTextOfJsxAttributeName,\n getTextOfJsxNamespacedName,\n getTextOfNode,\n getTextOfNodeFromSourceText,\n getTextOfPropertyName,\n getThisContainer,\n getThisParameter,\n getTokenAtPosition,\n getTokenPosOfNode,\n getTokenSourceMapRange,\n getTouchingPropertyName,\n getTouchingToken,\n getTrailingCommentRanges,\n getTrailingSemicolonDeferringWriter,\n getTransformers,\n getTsBuildInfoEmitOutputFilePath,\n getTsConfigObjectLiteralExpression,\n getTsConfigPropArrayElementValue,\n getTypeAnnotationNode,\n getTypeArgumentOrTypeParameterList,\n getTypeKeywordOfTypeOnlyImport,\n getTypeNode,\n getTypeNodeIfAccessible,\n getTypeParameterFromJsDoc,\n getTypeParameterOwner,\n getTypesPackageName,\n getUILocale,\n getUniqueName,\n getUniqueSymbolId,\n getUseDefineForClassFields,\n getWatchErrorSummaryDiagnosticMessage,\n getWatchFactory,\n group,\n groupBy,\n guessIndentation,\n handleNoEmitOptions,\n handleWatchOptionsConfigDirTemplateSubstitution,\n hasAbstractModifier,\n hasAccessorModifier,\n hasAmbientModifier,\n hasChangesInResolutions,\n hasContextSensitiveParameters,\n hasDecorators,\n hasDocComment,\n hasDynamicName,\n hasEffectiveModifier,\n hasEffectiveModifiers,\n hasEffectiveReadonlyModifier,\n hasExtension,\n hasImplementationTSFileExtension,\n hasIndexSignature,\n hasInferredType,\n hasInitializer,\n hasInvalidEscape,\n hasJSDocNodes,\n hasJSDocParameterTags,\n hasJSFileExtension,\n hasJsonModuleEmitEnabled,\n hasOnlyExpressionInitializer,\n hasOverrideModifier,\n hasPossibleExternalModuleReference,\n hasProperty,\n hasPropertyAccessExpressionWithName,\n hasQuestionToken,\n hasRecordedExternalHelpers,\n hasResolutionModeOverride,\n hasRestParameter,\n hasScopeMarker,\n hasStaticModifier,\n hasSyntacticModifier,\n hasSyntacticModifiers,\n hasTSFileExtension,\n hasTabstop,\n hasTrailingDirectorySeparator,\n hasType,\n hasTypeArguments,\n hasZeroOrOneAsteriskCharacter,\n hostGetCanonicalFileName,\n hostUsesCaseSensitiveFileNames,\n idText,\n identifierIsThisKeyword,\n identifierToKeywordKind,\n identity,\n identitySourceMapConsumer,\n ignoreSourceNewlines,\n ignoredPaths,\n importFromModuleSpecifier,\n importSyntaxAffectsModuleResolution,\n indexOfAnyCharCode,\n indexOfNode,\n indicesOf,\n inferredTypesContainingFile,\n injectClassNamedEvaluationHelperBlockIfMissing,\n injectClassThisAssignmentIfMissing,\n insertImports,\n insertSorted,\n insertStatementAfterCustomPrologue,\n insertStatementAfterStandardPrologue,\n insertStatementsAfterCustomPrologue,\n insertStatementsAfterStandardPrologue,\n intersperse,\n intrinsicTagNameToString,\n introducesArgumentsExoticObject,\n inverseJsxOptionMap,\n isAbstractConstructorSymbol,\n isAbstractModifier,\n isAccessExpression,\n isAccessibilityModifier,\n isAccessor,\n isAccessorModifier,\n isAliasableExpression,\n isAmbientModule,\n isAmbientPropertyDeclaration,\n isAnyDirectorySeparator,\n isAnyImportOrBareOrAccessedRequire,\n isAnyImportOrReExport,\n isAnyImportOrRequireStatement,\n isAnyImportSyntax,\n isAnySupportedFileExtension,\n isApplicableVersionedTypesKey,\n isArgumentExpressionOfElementAccess,\n isArray,\n isArrayBindingElement,\n isArrayBindingOrAssignmentElement,\n isArrayBindingOrAssignmentPattern,\n isArrayBindingPattern,\n isArrayLiteralExpression,\n isArrayLiteralOrObjectLiteralDestructuringPattern,\n isArrayTypeNode,\n isArrowFunction,\n isAsExpression,\n isAssertClause,\n isAssertEntry,\n isAssertionExpression,\n isAssertsKeyword,\n isAssignmentDeclaration,\n isAssignmentExpression,\n isAssignmentOperator,\n isAssignmentPattern,\n isAssignmentTarget,\n isAsteriskToken,\n isAsyncFunction,\n isAsyncModifier,\n isAutoAccessorPropertyDeclaration,\n isAwaitExpression,\n isAwaitKeyword,\n isBigIntLiteral,\n isBinaryExpression,\n isBinaryLogicalOperator,\n isBinaryOperatorToken,\n isBindableObjectDefinePropertyCall,\n isBindableStaticAccessExpression,\n isBindableStaticElementAccessExpression,\n isBindableStaticNameExpression,\n isBindingElement,\n isBindingElementOfBareOrAccessedRequire,\n isBindingName,\n isBindingOrAssignmentElement,\n isBindingOrAssignmentPattern,\n isBindingPattern,\n isBlock,\n isBlockLike,\n isBlockOrCatchScoped,\n isBlockScope,\n isBlockScopedContainerTopLevel,\n isBooleanLiteral,\n isBreakOrContinueStatement,\n isBreakStatement,\n isBuildCommand,\n isBuildInfoFile,\n isBuilderProgram,\n isBundle,\n isCallChain,\n isCallExpression,\n isCallExpressionTarget,\n isCallLikeExpression,\n isCallLikeOrFunctionLikeExpression,\n isCallOrNewExpression,\n isCallOrNewExpressionTarget,\n isCallSignatureDeclaration,\n isCallToHelper,\n isCaseBlock,\n isCaseClause,\n isCaseKeyword,\n isCaseOrDefaultClause,\n isCatchClause,\n isCatchClauseVariableDeclaration,\n isCatchClauseVariableDeclarationOrBindingElement,\n isCheckJsEnabledForFile,\n isCircularBuildOrder,\n isClassDeclaration,\n isClassElement,\n isClassExpression,\n isClassInstanceProperty,\n isClassLike,\n isClassMemberModifier,\n isClassNamedEvaluationHelperBlock,\n isClassOrTypeElement,\n isClassStaticBlockDeclaration,\n isClassThisAssignmentBlock,\n isColonToken,\n isCommaExpression,\n isCommaListExpression,\n isCommaSequence,\n isCommaToken,\n isComment,\n isCommonJsExportPropertyAssignment,\n isCommonJsExportedExpression,\n isCompoundAssignment,\n isComputedNonLiteralName,\n isComputedPropertyName,\n isConciseBody,\n isConditionalExpression,\n isConditionalTypeNode,\n isConstAssertion,\n isConstTypeReference,\n isConstructSignatureDeclaration,\n isConstructorDeclaration,\n isConstructorTypeNode,\n isContextualKeyword,\n isContinueStatement,\n isCustomPrologue,\n isDebuggerStatement,\n isDeclaration,\n isDeclarationBindingElement,\n isDeclarationFileName,\n isDeclarationName,\n isDeclarationNameOfEnumOrNamespace,\n isDeclarationReadonly,\n isDeclarationStatement,\n isDeclarationWithTypeParameterChildren,\n isDeclarationWithTypeParameters,\n isDecorator,\n isDecoratorTarget,\n isDefaultClause,\n isDefaultImport,\n isDefaultModifier,\n isDefaultedExpandoInitializer,\n isDeleteExpression,\n isDeleteTarget,\n isDeprecatedDeclaration,\n isDestructuringAssignment,\n isDiskPathRoot,\n isDoStatement,\n isDocumentRegistryEntry,\n isDotDotDotToken,\n isDottedName,\n isDynamicName,\n isEffectiveExternalModule,\n isEffectiveStrictModeSourceFile,\n isElementAccessChain,\n isElementAccessExpression,\n isEmittedFileOfProgram,\n isEmptyArrayLiteral,\n isEmptyBindingElement,\n isEmptyBindingPattern,\n isEmptyObjectLiteral,\n isEmptyStatement,\n isEmptyStringLiteral,\n isEntityName,\n isEntityNameExpression,\n isEnumConst,\n isEnumDeclaration,\n isEnumMember,\n isEqualityOperatorKind,\n isEqualsGreaterThanToken,\n isExclamationToken,\n isExcludedFile,\n isExclusivelyTypeOnlyImportOrExport,\n isExpandoPropertyDeclaration,\n isExportAssignment,\n isExportDeclaration,\n isExportModifier,\n isExportName,\n isExportNamespaceAsDefaultDeclaration,\n isExportOrDefaultModifier,\n isExportSpecifier,\n isExportsIdentifier,\n isExportsOrModuleExportsOrAlias,\n isExpression,\n isExpressionNode,\n isExpressionOfExternalModuleImportEqualsDeclaration,\n isExpressionOfOptionalChainRoot,\n isExpressionStatement,\n isExpressionWithTypeArguments,\n isExpressionWithTypeArgumentsInClassExtendsClause,\n isExternalModule,\n isExternalModuleAugmentation,\n isExternalModuleImportEqualsDeclaration,\n isExternalModuleIndicator,\n isExternalModuleNameRelative,\n isExternalModuleReference,\n isExternalModuleSymbol,\n isExternalOrCommonJsModule,\n isFileLevelReservedGeneratedIdentifier,\n isFileLevelUniqueName,\n isFileProbablyExternalModule,\n isFirstDeclarationOfSymbolParameter,\n isFixablePromiseHandler,\n isForInOrOfStatement,\n isForInStatement,\n isForInitializer,\n isForOfStatement,\n isForStatement,\n isFullSourceFile,\n isFunctionBlock,\n isFunctionBody,\n isFunctionDeclaration,\n isFunctionExpression,\n isFunctionExpressionOrArrowFunction,\n isFunctionLike,\n isFunctionLikeDeclaration,\n isFunctionLikeKind,\n isFunctionLikeOrClassStaticBlockDeclaration,\n isFunctionOrConstructorTypeNode,\n isFunctionOrModuleBlock,\n isFunctionSymbol,\n isFunctionTypeNode,\n isGeneratedIdentifier,\n isGeneratedPrivateIdentifier,\n isGetAccessor,\n isGetAccessorDeclaration,\n isGetOrSetAccessorDeclaration,\n isGlobalScopeAugmentation,\n isGlobalSourceFile,\n isGrammarError,\n isHeritageClause,\n isHoistedFunction,\n isHoistedVariableStatement,\n isIdentifier,\n isIdentifierANonContextualKeyword,\n isIdentifierName,\n isIdentifierOrThisTypeNode,\n isIdentifierPart,\n isIdentifierStart,\n isIdentifierText,\n isIdentifierTypePredicate,\n isIdentifierTypeReference,\n isIfStatement,\n isIgnoredFileFromWildCardWatching,\n isImplicitGlob,\n isImportAttribute,\n isImportAttributeName,\n isImportAttributes,\n isImportCall,\n isImportClause,\n isImportDeclaration,\n isImportEqualsDeclaration,\n isImportKeyword,\n isImportMeta,\n isImportOrExportSpecifier,\n isImportOrExportSpecifierName,\n isImportSpecifier,\n isImportTypeAssertionContainer,\n isImportTypeNode,\n isImportable,\n isInComment,\n isInCompoundLikeAssignment,\n isInExpressionContext,\n isInJSDoc,\n isInJSFile,\n isInJSXText,\n isInJsonFile,\n isInNonReferenceComment,\n isInReferenceComment,\n isInRightSideOfInternalImportEqualsDeclaration,\n isInString,\n isInTemplateString,\n isInTopLevelContext,\n isInTypeQuery,\n isIncrementalBuildInfo,\n isIncrementalBundleEmitBuildInfo,\n isIncrementalCompilation,\n isIndexSignatureDeclaration,\n isIndexedAccessTypeNode,\n isInferTypeNode,\n isInfinityOrNaNString,\n isInitializedProperty,\n isInitializedVariable,\n isInsideJsxElement,\n isInsideJsxElementOrAttribute,\n isInsideNodeModules,\n isInsideTemplateLiteral,\n isInstanceOfExpression,\n isInstantiatedModule,\n isInterfaceDeclaration,\n isInternalDeclaration,\n isInternalModuleImportEqualsDeclaration,\n isInternalName,\n isIntersectionTypeNode,\n isIntrinsicJsxName,\n isIterationStatement,\n isJSDoc,\n isJSDocAllType,\n isJSDocAugmentsTag,\n isJSDocAuthorTag,\n isJSDocCallbackTag,\n isJSDocClassTag,\n isJSDocCommentContainingNode,\n isJSDocConstructSignature,\n isJSDocDeprecatedTag,\n isJSDocEnumTag,\n isJSDocFunctionType,\n isJSDocImplementsTag,\n isJSDocImportTag,\n isJSDocIndexSignature,\n isJSDocLikeText,\n isJSDocLink,\n isJSDocLinkCode,\n isJSDocLinkLike,\n isJSDocLinkPlain,\n isJSDocMemberName,\n isJSDocNameReference,\n isJSDocNamepathType,\n isJSDocNamespaceBody,\n isJSDocNode,\n isJSDocNonNullableType,\n isJSDocNullableType,\n isJSDocOptionalParameter,\n isJSDocOptionalType,\n isJSDocOverloadTag,\n isJSDocOverrideTag,\n isJSDocParameterTag,\n isJSDocPrivateTag,\n isJSDocPropertyLikeTag,\n isJSDocPropertyTag,\n isJSDocProtectedTag,\n isJSDocPublicTag,\n isJSDocReadonlyTag,\n isJSDocReturnTag,\n isJSDocSatisfiesExpression,\n isJSDocSatisfiesTag,\n isJSDocSeeTag,\n isJSDocSignature,\n isJSDocTag,\n isJSDocTemplateTag,\n isJSDocThisTag,\n isJSDocThrowsTag,\n isJSDocTypeAlias,\n isJSDocTypeAssertion,\n isJSDocTypeExpression,\n isJSDocTypeLiteral,\n isJSDocTypeTag,\n isJSDocTypedefTag,\n isJSDocUnknownTag,\n isJSDocUnknownType,\n isJSDocVariadicType,\n isJSXTagName,\n isJsonEqual,\n isJsonSourceFile,\n isJsxAttribute,\n isJsxAttributeLike,\n isJsxAttributeName,\n isJsxAttributes,\n isJsxCallLike,\n isJsxChild,\n isJsxClosingElement,\n isJsxClosingFragment,\n isJsxElement,\n isJsxExpression,\n isJsxFragment,\n isJsxNamespacedName,\n isJsxOpeningElement,\n isJsxOpeningFragment,\n isJsxOpeningLikeElement,\n isJsxOpeningLikeElementTagName,\n isJsxSelfClosingElement,\n isJsxSpreadAttribute,\n isJsxTagNameExpression,\n isJsxText,\n isJumpStatementTarget,\n isKeyword,\n isKeywordOrPunctuation,\n isKnownSymbol,\n isLabelName,\n isLabelOfLabeledStatement,\n isLabeledStatement,\n isLateVisibilityPaintedStatement,\n isLeftHandSideExpression,\n isLet,\n isLineBreak,\n isLiteralComputedPropertyDeclarationName,\n isLiteralExpression,\n isLiteralExpressionOfObject,\n isLiteralImportTypeNode,\n isLiteralKind,\n isLiteralNameOfPropertyDeclarationOrIndexAccess,\n isLiteralTypeLiteral,\n isLiteralTypeNode,\n isLocalName,\n isLogicalOperator,\n isLogicalOrCoalescingAssignmentExpression,\n isLogicalOrCoalescingAssignmentOperator,\n isLogicalOrCoalescingBinaryExpression,\n isLogicalOrCoalescingBinaryOperator,\n isMappedTypeNode,\n isMemberName,\n isMetaProperty,\n isMethodDeclaration,\n isMethodOrAccessor,\n isMethodSignature,\n isMinusToken,\n isMissingDeclaration,\n isMissingPackageJsonInfo,\n isModifier,\n isModifierKind,\n isModifierLike,\n isModuleAugmentationExternal,\n isModuleBlock,\n isModuleBody,\n isModuleDeclaration,\n isModuleExportName,\n isModuleExportsAccessExpression,\n isModuleIdentifier,\n isModuleName,\n isModuleOrEnumDeclaration,\n isModuleReference,\n isModuleSpecifierLike,\n isModuleWithStringLiteralName,\n isNameOfFunctionDeclaration,\n isNameOfModuleDeclaration,\n isNamedDeclaration,\n isNamedEvaluation,\n isNamedEvaluationSource,\n isNamedExportBindings,\n isNamedExports,\n isNamedImportBindings,\n isNamedImports,\n isNamedImportsOrExports,\n isNamedTupleMember,\n isNamespaceBody,\n isNamespaceExport,\n isNamespaceExportDeclaration,\n isNamespaceImport,\n isNamespaceReexportDeclaration,\n isNewExpression,\n isNewExpressionTarget,\n isNewScopeNode,\n isNoSubstitutionTemplateLiteral,\n isNodeArray,\n isNodeArrayMultiLine,\n isNodeDescendantOf,\n isNodeKind,\n isNodeLikeSystem,\n isNodeModulesDirectory,\n isNodeWithPossibleHoistedDeclaration,\n isNonContextualKeyword,\n isNonGlobalAmbientModule,\n isNonNullAccess,\n isNonNullChain,\n isNonNullExpression,\n isNonStaticMethodOrAccessorWithPrivateName,\n isNotEmittedStatement,\n isNullishCoalesce,\n isNumber,\n isNumericLiteral,\n isNumericLiteralName,\n isObjectBindingElementWithoutPropertyName,\n isObjectBindingOrAssignmentElement,\n isObjectBindingOrAssignmentPattern,\n isObjectBindingPattern,\n isObjectLiteralElement,\n isObjectLiteralElementLike,\n isObjectLiteralExpression,\n isObjectLiteralMethod,\n isObjectLiteralOrClassExpressionMethodOrAccessor,\n isObjectTypeDeclaration,\n isOmittedExpression,\n isOptionalChain,\n isOptionalChainRoot,\n isOptionalDeclaration,\n isOptionalJSDocPropertyLikeTag,\n isOptionalTypeNode,\n isOuterExpression,\n isOutermostOptionalChain,\n isOverrideModifier,\n isPackageJsonInfo,\n isPackedArrayLiteral,\n isParameter,\n isParameterPropertyDeclaration,\n isParameterPropertyModifier,\n isParenthesizedExpression,\n isParenthesizedTypeNode,\n isParseTreeNode,\n isPartOfParameterDeclaration,\n isPartOfTypeNode,\n isPartOfTypeOnlyImportOrExportDeclaration,\n isPartOfTypeQuery,\n isPartiallyEmittedExpression,\n isPatternMatch,\n isPinnedComment,\n isPlainJsFile,\n isPlusToken,\n isPossiblyTypeArgumentPosition,\n isPostfixUnaryExpression,\n isPrefixUnaryExpression,\n isPrimitiveLiteralValue,\n isPrivateIdentifier,\n isPrivateIdentifierClassElementDeclaration,\n isPrivateIdentifierPropertyAccessExpression,\n isPrivateIdentifierSymbol,\n isProgramUptoDate,\n isPrologueDirective,\n isPropertyAccessChain,\n isPropertyAccessEntityNameExpression,\n isPropertyAccessExpression,\n isPropertyAccessOrQualifiedName,\n isPropertyAccessOrQualifiedNameOrImportTypeNode,\n isPropertyAssignment,\n isPropertyDeclaration,\n isPropertyName,\n isPropertyNameLiteral,\n isPropertySignature,\n isPrototypeAccess,\n isPrototypePropertyAssignment,\n isPunctuation,\n isPushOrUnshiftIdentifier,\n isQualifiedName,\n isQuestionDotToken,\n isQuestionOrExclamationToken,\n isQuestionOrPlusOrMinusToken,\n isQuestionToken,\n isReadonlyKeyword,\n isReadonlyKeywordOrPlusOrMinusToken,\n isRecognizedTripleSlashComment,\n isReferenceFileLocation,\n isReferencedFile,\n isRegularExpressionLiteral,\n isRequireCall,\n isRequireVariableStatement,\n isRestParameter,\n isRestTypeNode,\n isReturnStatement,\n isReturnStatementWithFixablePromiseHandler,\n isRightSideOfAccessExpression,\n isRightSideOfInstanceofExpression,\n isRightSideOfPropertyAccess,\n isRightSideOfQualifiedName,\n isRightSideOfQualifiedNameOrPropertyAccess,\n isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n isRootedDiskPath,\n isSameEntityName,\n isSatisfiesExpression,\n isSemicolonClassElement,\n isSetAccessor,\n isSetAccessorDeclaration,\n isShiftOperatorOrHigher,\n isShorthandAmbientModuleSymbol,\n isShorthandPropertyAssignment,\n isSideEffectImport,\n isSignedNumericLiteral,\n isSimpleCopiableExpression,\n isSimpleInlineableExpression,\n isSimpleParameterList,\n isSingleOrDoubleQuote,\n isSolutionConfig,\n isSourceElement,\n isSourceFile,\n isSourceFileFromLibrary,\n isSourceFileJS,\n isSourceFileNotJson,\n isSourceMapping,\n isSpecialPropertyDeclaration,\n isSpreadAssignment,\n isSpreadElement,\n isStatement,\n isStatementButNotDeclaration,\n isStatementOrBlock,\n isStatementWithLocals,\n isStatic,\n isStaticModifier,\n isString,\n isStringANonContextualKeyword,\n isStringAndEmptyAnonymousObjectIntersection,\n isStringDoubleQuoted,\n isStringLiteral,\n isStringLiteralLike,\n isStringLiteralOrJsxExpression,\n isStringLiteralOrTemplate,\n isStringOrNumericLiteralLike,\n isStringOrRegularExpressionOrTemplateLiteral,\n isStringTextContainingNode,\n isSuperCall,\n isSuperKeyword,\n isSuperProperty,\n isSupportedSourceFileName,\n isSwitchStatement,\n isSyntaxList,\n isSyntheticExpression,\n isSyntheticReference,\n isTagName,\n isTaggedTemplateExpression,\n isTaggedTemplateTag,\n isTemplateExpression,\n isTemplateHead,\n isTemplateLiteral,\n isTemplateLiteralKind,\n isTemplateLiteralToken,\n isTemplateLiteralTypeNode,\n isTemplateLiteralTypeSpan,\n isTemplateMiddle,\n isTemplateMiddleOrTemplateTail,\n isTemplateSpan,\n isTemplateTail,\n isTextWhiteSpaceLike,\n isThis,\n isThisContainerOrFunctionBlock,\n isThisIdentifier,\n isThisInTypeQuery,\n isThisInitializedDeclaration,\n isThisInitializedObjectBindingExpression,\n isThisProperty,\n isThisTypeNode,\n isThisTypeParameter,\n isThisTypePredicate,\n isThrowStatement,\n isToken,\n isTokenKind,\n isTraceEnabled,\n isTransientSymbol,\n isTrivia,\n isTryStatement,\n isTupleTypeNode,\n isTypeAlias,\n isTypeAliasDeclaration,\n isTypeAssertionExpression,\n isTypeDeclaration,\n isTypeElement,\n isTypeKeyword,\n isTypeKeywordTokenOrIdentifier,\n isTypeLiteralNode,\n isTypeNode,\n isTypeNodeKind,\n isTypeOfExpression,\n isTypeOnlyExportDeclaration,\n isTypeOnlyImportDeclaration,\n isTypeOnlyImportOrExportDeclaration,\n isTypeOperatorNode,\n isTypeParameterDeclaration,\n isTypePredicateNode,\n isTypeQueryNode,\n isTypeReferenceNode,\n isTypeReferenceType,\n isTypeUsableAsPropertyName,\n isUMDExportSymbol,\n isUnaryExpression,\n isUnaryExpressionWithWrite,\n isUnicodeIdentifierStart,\n isUnionTypeNode,\n isUrl,\n isValidBigIntString,\n isValidESSymbolDeclaration,\n isValidTypeOnlyAliasUseSite,\n isValueSignatureDeclaration,\n isVarAwaitUsing,\n isVarConst,\n isVarConstLike,\n isVarUsing,\n isVariableDeclaration,\n isVariableDeclarationInVariableStatement,\n isVariableDeclarationInitializedToBareOrAccessedRequire,\n isVariableDeclarationInitializedToRequire,\n isVariableDeclarationList,\n isVariableLike,\n isVariableStatement,\n isVoidExpression,\n isWatchSet,\n isWhileStatement,\n isWhiteSpaceLike,\n isWhiteSpaceSingleLine,\n isWithStatement,\n isWriteAccess,\n isWriteOnlyAccess,\n isYieldExpression,\n jsxModeNeedsExplicitImport,\n keywordPart,\n last,\n lastOrUndefined,\n length,\n libMap,\n libs,\n lineBreakPart,\n loadModuleFromGlobalCache,\n loadWithModeAwareCache,\n makeIdentifierFromModuleName,\n makeImport,\n makeStringLiteral,\n mangleScopedPackageName,\n map,\n mapAllOrFail,\n mapDefined,\n mapDefinedIterator,\n mapEntries,\n mapIterator,\n mapOneOrMany,\n mapToDisplayParts,\n matchFiles,\n matchPatternOrExact,\n matchedText,\n matchesExclude,\n matchesExcludeWorker,\n maxBy,\n maybeBind,\n maybeSetLocalizedDiagnosticMessages,\n memoize,\n memoizeOne,\n min,\n minAndMax,\n missingFileModifiedTime,\n modifierToFlag,\n modifiersToFlags,\n moduleExportNameIsDefault,\n moduleExportNameTextEscaped,\n moduleExportNameTextUnescaped,\n moduleOptionDeclaration,\n moduleResolutionIsEqualTo,\n moduleResolutionNameAndModeGetter,\n moduleResolutionOptionDeclarations,\n moduleResolutionSupportsPackageJsonExportsAndImports,\n moduleResolutionUsesNodeModules,\n moduleSpecifierToValidIdentifier,\n moduleSpecifiers,\n moduleSupportsImportAttributes,\n moduleSymbolToValidIdentifier,\n moveEmitHelpers,\n moveRangeEnd,\n moveRangePastDecorators,\n moveRangePastModifiers,\n moveRangePos,\n moveSyntheticComments,\n mutateMap,\n mutateMapSkippingNewValues,\n needsParentheses,\n needsScopeMarker,\n newCaseClauseTracker,\n newPrivateEnvironment,\n noEmitNotification,\n noEmitSubstitution,\n noTransformers,\n noTruncationMaximumTruncationLength,\n nodeCanBeDecorated,\n nodeCoreModules,\n nodeHasName,\n nodeIsDecorated,\n nodeIsMissing,\n nodeIsPresent,\n nodeIsSynthesized,\n nodeModuleNameResolver,\n nodeModulesPathPart,\n nodeNextJsonConfigResolver,\n nodeOrChildIsDecorated,\n nodeOverlapsWithStartEnd,\n nodePosToString,\n nodeSeenTracker,\n nodeStartsNewLexicalEnvironment,\n noop,\n noopFileWatcher,\n normalizePath,\n normalizeSlashes,\n normalizeSpans,\n not,\n notImplemented,\n notImplementedResolver,\n nullNodeConverters,\n nullParenthesizerRules,\n nullTransformationContext,\n objectAllocator,\n operatorPart,\n optionDeclarations,\n optionMapToObject,\n optionsAffectingProgramStructure,\n optionsForBuild,\n optionsForWatch,\n optionsHaveChanges,\n or,\n orderedRemoveItem,\n orderedRemoveItemAt,\n packageIdToPackageName,\n packageIdToString,\n parameterIsThisKeyword,\n parameterNamePart,\n parseBaseNodeFactory,\n parseBigInt,\n parseBuildCommand,\n parseCommandLine,\n parseCommandLineWorker,\n parseConfigFileTextToJson,\n parseConfigFileWithSystem,\n parseConfigHostFromCompilerHostLike,\n parseCustomTypeOption,\n parseIsolatedEntityName,\n parseIsolatedJSDocComment,\n parseJSDocTypeExpressionForTests,\n parseJsonConfigFileContent,\n parseJsonSourceFileConfigFileContent,\n parseJsonText,\n parseListTypeOption,\n parseNodeFactory,\n parseNodeModuleFromPath,\n parsePackageName,\n parsePseudoBigInt,\n parseValidBigInt,\n pasteEdits,\n patchWriteFileEnsuringDirectory,\n pathContainsNodeModules,\n pathIsAbsolute,\n pathIsBareSpecifier,\n pathIsRelative,\n patternText,\n performIncrementalCompilation,\n performance,\n positionBelongsToNode,\n positionIsASICandidate,\n positionIsSynthesized,\n positionsAreOnSameLine,\n preProcessFile,\n probablyUsesSemicolons,\n processCommentPragmas,\n processPragmasIntoFields,\n processTaggedTemplateExpression,\n programContainsEsModules,\n programContainsModules,\n projectReferenceIsEqualTo,\n propertyNamePart,\n pseudoBigIntToString,\n punctuationPart,\n pushIfUnique,\n quote,\n quotePreferenceFromString,\n rangeContainsPosition,\n rangeContainsPositionExclusive,\n rangeContainsRange,\n rangeContainsRangeExclusive,\n rangeContainsStartEnd,\n rangeEndIsOnSameLineAsRangeStart,\n rangeEndPositionsAreOnSameLine,\n rangeEquals,\n rangeIsOnSingleLine,\n rangeOfNode,\n rangeOfTypeParameters,\n rangeOverlapsWithStartEnd,\n rangeStartIsOnSameLineAsRangeEnd,\n rangeStartPositionsAreOnSameLine,\n readBuilderProgram,\n readConfigFile,\n readJson,\n readJsonConfigFile,\n readJsonOrUndefined,\n reduceEachLeadingCommentRange,\n reduceEachTrailingCommentRange,\n reduceLeft,\n reduceLeftIterator,\n reducePathComponents,\n refactor,\n regExpEscape,\n regularExpressionFlagToCharacterCode,\n relativeComplement,\n removeAllComments,\n removeEmitHelper,\n removeExtension,\n removeFileExtension,\n removeIgnoredPath,\n removeMinAndVersionNumbers,\n removePrefix,\n removeSuffix,\n removeTrailingDirectorySeparator,\n repeatString,\n replaceElement,\n replaceFirstStar,\n resolutionExtensionIsTSOrJson,\n resolveConfigFileProjectName,\n resolveJSModule,\n resolveLibrary,\n resolveModuleName,\n resolveModuleNameFromCache,\n resolvePackageNameToPackageJson,\n resolvePath,\n resolveProjectReferencePath,\n resolveTripleslashReference,\n resolveTypeReferenceDirective,\n resolvingEmptyArray,\n returnFalse,\n returnNoopFileWatcher,\n returnTrue,\n returnUndefined,\n returnsPromise,\n rewriteModuleSpecifier,\n sameFlatMap,\n sameMap,\n sameMapping,\n scanTokenAtPosition,\n scanner,\n semanticDiagnosticsOptionDeclarations,\n serializeCompilerOptions,\n server,\n servicesVersion,\n setCommentRange,\n setConfigFileInOptions,\n setConstantValue,\n setEmitFlags,\n setGetSourceFileAsHashVersioned,\n setIdentifierAutoGenerate,\n setIdentifierGeneratedImportReference,\n setIdentifierTypeArguments,\n setInternalEmitFlags,\n setLocalizedDiagnosticMessages,\n setNodeChildren,\n setNodeFlags,\n setObjectAllocator,\n setOriginalNode,\n setParent,\n setParentRecursive,\n setPrivateIdentifier,\n setSnippetElement,\n setSourceMapRange,\n setStackTraceLimit,\n setStartsOnNewLine,\n setSyntheticLeadingComments,\n setSyntheticTrailingComments,\n setSys,\n setSysLog,\n setTextRange,\n setTextRangeEnd,\n setTextRangePos,\n setTextRangePosEnd,\n setTextRangePosWidth,\n setTokenSourceMapRange,\n setTypeNode,\n setUILocale,\n setValueDeclaration,\n shouldAllowImportingTsExtension,\n shouldPreserveConstEnums,\n shouldRewriteModuleSpecifier,\n shouldUseUriStyleNodeCoreModules,\n showModuleSpecifier,\n signatureHasRestParameter,\n signatureToDisplayParts,\n single,\n singleElementArray,\n singleIterator,\n singleOrMany,\n singleOrUndefined,\n skipAlias,\n skipConstraint,\n skipOuterExpressions,\n skipParentheses,\n skipPartiallyEmittedExpressions,\n skipTrivia,\n skipTypeChecking,\n skipTypeCheckingIgnoringNoCheck,\n skipTypeParentheses,\n skipWhile,\n sliceAfter,\n some,\n sortAndDeduplicate,\n sortAndDeduplicateDiagnostics,\n sourceFileAffectingCompilerOptions,\n sourceFileMayBeEmitted,\n sourceMapCommentRegExp,\n sourceMapCommentRegExpDontCareLineStart,\n spacePart,\n spanMap,\n startEndContainsRange,\n startEndOverlapsWithStartEnd,\n startOnNewLine,\n startTracing,\n startsWith,\n startsWithDirectory,\n startsWithUnderscore,\n startsWithUseStrict,\n stringContainsAt,\n stringToToken,\n stripQuotes,\n supportedDeclarationExtensions,\n supportedJSExtensionsFlat,\n supportedLocaleDirectories,\n supportedTSExtensionsFlat,\n supportedTSImplementationExtensions,\n suppressLeadingAndTrailingTrivia,\n suppressLeadingTrivia,\n suppressTrailingTrivia,\n symbolEscapedNameNoDefault,\n symbolName,\n symbolNameNoDefault,\n symbolToDisplayParts,\n sys,\n sysLog,\n tagNamesAreEquivalent,\n takeWhile,\n targetOptionDeclaration,\n targetToLibMap,\n testFormatSettings,\n textChangeRangeIsUnchanged,\n textChangeRangeNewSpan,\n textChanges,\n textOrKeywordPart,\n textPart,\n textRangeContainsPositionInclusive,\n textRangeContainsTextSpan,\n textRangeIntersectsWithTextSpan,\n textSpanContainsPosition,\n textSpanContainsTextRange,\n textSpanContainsTextSpan,\n textSpanEnd,\n textSpanIntersection,\n textSpanIntersectsWith,\n textSpanIntersectsWithPosition,\n textSpanIntersectsWithTextSpan,\n textSpanIsEmpty,\n textSpanOverlap,\n textSpanOverlapsWith,\n textSpansEqual,\n textToKeywordObj,\n timestamp,\n toArray,\n toBuilderFileEmit,\n toBuilderStateFileInfoForMultiEmit,\n toEditorSettings,\n toFileNameLowerCase,\n toPath,\n toProgramEmitPending,\n toSorted,\n tokenIsIdentifierOrKeyword,\n tokenIsIdentifierOrKeywordOrGreaterThan,\n tokenToString,\n trace,\n tracing,\n tracingEnabled,\n transferSourceFileChildren,\n transform,\n transformClassFields,\n transformDeclarations,\n transformECMAScriptModule,\n transformES2015,\n transformES2016,\n transformES2017,\n transformES2018,\n transformES2019,\n transformES2020,\n transformES2021,\n transformESDecorators,\n transformESNext,\n transformGenerators,\n transformImpliedNodeFormatDependentModule,\n transformJsx,\n transformLegacyDecorators,\n transformModule,\n transformNamedEvaluation,\n transformNodes,\n transformSystemModule,\n transformTypeScript,\n transpile,\n transpileDeclaration,\n transpileModule,\n transpileOptionValueCompilerOptions,\n tryAddToSet,\n tryAndIgnoreErrors,\n tryCast,\n tryDirectoryExists,\n tryExtractTSExtension,\n tryFileExists,\n tryGetClassExtendingExpressionWithTypeArguments,\n tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n tryGetDirectories,\n tryGetExtensionFromPath,\n tryGetImportFromModuleSpecifier,\n tryGetJSDocSatisfiesTypeNode,\n tryGetModuleNameFromFile,\n tryGetModuleSpecifierFromDeclaration,\n tryGetNativePerformanceHooks,\n tryGetPropertyAccessOrIdentifierToString,\n tryGetPropertyNameOfBindingOrAssignmentElement,\n tryGetSourceMappingURL,\n tryGetTextOfPropertyName,\n tryParseJson,\n tryParsePattern,\n tryParsePatterns,\n tryParseRawSourceMap,\n tryReadDirectory,\n tryReadFile,\n tryRemoveDirectoryPrefix,\n tryRemoveExtension,\n tryRemovePrefix,\n tryRemoveSuffix,\n tscBuildOption,\n typeAcquisitionDeclarations,\n typeAliasNamePart,\n typeDirectiveIsEqualTo,\n typeKeywords,\n typeParameterNamePart,\n typeToDisplayParts,\n unchangedPollThresholds,\n unchangedTextChangeRange,\n unescapeLeadingUnderscores,\n unmangleScopedPackageName,\n unorderedRemoveItem,\n unprefixedNodeCoreModules,\n unreachableCodeIsError,\n unsetNodeChildren,\n unusedLabelIsError,\n unwrapInnermostStatementOfLabel,\n unwrapParenthesizedExpression,\n updateErrorForNoInputFiles,\n updateLanguageServiceSourceFile,\n updateMissingFilePathsWatch,\n updateResolutionField,\n updateSharedExtendedConfigFileWatcher,\n updateSourceFile,\n updateWatchingWildcardDirectories,\n usingSingleLineStringWriter,\n utf16EncodeAsString,\n validateLocaleAndSetLanguage,\n version,\n versionMajorMinor,\n visitArray,\n visitCommaListElements,\n visitEachChild,\n visitFunctionBody,\n visitIterationBody,\n visitLexicalEnvironment,\n visitNode,\n visitNodes,\n visitParameterList,\n walkUpBindingElementsAndPatterns,\n walkUpOuterExpressions,\n walkUpParenthesizedExpressions,\n walkUpParenthesizedTypes,\n walkUpParenthesizedTypesAndGetParentAndChild,\n whitespaceOrMapCommentRegExp,\n writeCommentRange,\n writeFile,\n writeFileEnsuringDirectories,\n zipWith\n});\n})({ get exports() { return ts; }, set exports(v) { ts = v; if (typeof module !== \"undefined\" && module.exports) { module.exports = v; } } })\n//# sourceMappingURL=typescript.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import ts from \"typescript\";\n\nconst REPO_ROOT = \"/User/test/JetStream/\";\n\nclass CompilerHost {\n constructor(options, srcFileData) {\n this.options = options;\n this.srcFileData = srcFileData;\n this.outFileData = Object.create(null);\n }\n getSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile) {\n const fileContent = this.readFile(fileName);\n return ts.createSourceFile(fileName, fileContent, languageVersion);\n }\n resolveModuleNames(moduleNames, containingFile) {\n const resolvedModules = [];\n for (const moduleName of moduleNames) {\n const result = ts.resolveModuleName(\n moduleName,\n containingFile,\n this.options,\n this\n );\n if (result.resolvedModule) {\n resolvedModules.push(result.resolvedModule);\n } else {\n resolvedModules.push(undefined);\n }\n }\n return resolvedModules;\n }\n getDefaultLibFileName() {\n return \"lib.d.ts\";\n }\n getCurrentDirectory() {\n return \"\";\n }\n getCanonicalFileName(fileName) {\n return fileName.toLowerCase();\n }\n useCaseSensitiveFileNames() {\n return true;\n }\n getNewLine() {\n return \"\\n\";\n }\n fileExists(filePath) {\n return filePath in this.srcFileData;\n }\n readFile(filePath) {\n const fileContent = this.srcFileData[filePath.toLowerCase()];\n if (fileContent === undefined) {\n throw new Error(`\"${filePath}\" does not exist.`);\n }\n return fileContent;\n }\n writeFile(fileName, data, writeByteOrderMark) {\n this.outFileData[fileName] = data;\n }\n}\n\nexport function compileTest(tsConfig, srcFileData) {\n const options = ts.convertCompilerOptionsFromJson(\n tsConfig.compilerOptions,\n REPO_ROOT\n ).options;\n options.lib = [...(options.lib || []), \"dom\"];\n const host = new CompilerHost(options, srcFileData);\n const program = ts.createProgram(Object.keys(srcFileData), options, host);\n const emitResult = program.emit();\n const diagnostics = formatDiagnostics(program, emitResult);\n return {\n diagnostics,\n resultFilesCount: Object.keys(host.outFileData).length,\n };\n}\n\nfunction formatDiagnostics(program, emitResult) {\n const allDiagnostics = ts\n .getPreEmitDiagnostics(program)\n .concat(emitResult.diagnostics);\n if (allDiagnostics.length > 0) {\n console.log(`Found ${allDiagnostics.length} errors:`);\n }\n const formattedDiagnostics = allDiagnostics.map((diagnostic) => {\n if (diagnostic.file) {\n const { line, character } = ts.getLineAndCharacterOfPosition(\n diagnostic.file,\n diagnostic.start\n );\n const message = ts.flattenDiagnosticMessageText(\n diagnostic.messageText,\n \"\\n\"\n );\n return `${diagnostic.file.fileName} (${line + 1},${\n character + 1\n }): ${message}`;\n } else {\n return ts.flattenDiagnosticMessageText(diagnostic.messageText, \"\\n\");\n }\n });\n formattedDiagnostics.slice(0, 20).map((each) => console.log(each));\n return formattedDiagnostics;\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","ts","__defProp","Object","defineProperty","__export","getOwnPropertyDescriptor","getOwnPropertyNames","prototype","hasOwnProperty","target","all","name","get","enumerable","typescript_exports","ANONYMOUS","AccessFlags","AssertionLevel","AssignmentDeclarationKind","AssignmentKind","Associativity","BreakpointResolver","ts_BreakpointResolver_exports","BuilderFileEmit","BuilderProgramKind","BuilderState","CallHierarchy","ts_CallHierarchy_exports","CharacterCodes","CheckFlags","CheckMode","ClassificationType","ClassificationTypeNames","CommentDirectiveType","Comparison","CompletionInfoFlags","CompletionTriggerKind","Completions","ts_Completions_exports","ContainerFlags","ContextFlags","Debug","DiagnosticCategory","Diagnostics","DocumentHighlights","ElementFlags","EmitFlags","EmitHint","EmitOnly","EndOfLineState","ExitStatus","ExportKind","Extension","ExternalEmitHelpers","FileIncludeKind","FilePreprocessingDiagnosticsKind","FileSystemEntryKind","FileWatcherEventKind","FindAllReferences","ts_FindAllReferences_exports","FlattenLevel","FlowFlags","ForegroundColorEscapeSequences","FunctionFlags","GeneratedIdentifierFlags","GetLiteralTextFlags","GoToDefinition","ts_GoToDefinition_exports","HighlightSpanKind","IdentifierNameMap","ImportKind","ImportsNotUsedAsValues","IndentStyle","IndexFlags","IndexKind","InferenceFlags","InferencePriority","InlayHintKind","InlayHintKind2","InlayHints","ts_InlayHints_exports","InternalEmitFlags","InternalNodeBuilderFlags","InternalSymbolName","IntersectionFlags","InvalidatedProjectKind","JSDocParsingMode","JsDoc","ts_JsDoc_exports","JsTyping","ts_JsTyping_exports","JsxEmit","JsxFlags","JsxReferenceKind","LanguageFeatureMinimumTarget","LanguageServiceMode","LanguageVariant","LexicalEnvironmentFlags","ListFormat","LogLevel","MapCode","ts_MapCode_exports","MemberOverrideStatus","ModifierFlags","ModuleDetectionKind","ModuleInstanceState","ModuleKind","ModuleResolutionKind","ModuleSpecifierEnding","NavigateTo","ts_NavigateTo_exports","NavigationBar","ts_NavigationBar_exports","NewLineKind","NodeBuilderFlags","NodeCheckFlags","NodeFactoryFlags","NodeFlags","NodeResolutionFeatures","ObjectFlags","OperationCanceledException","OperatorPrecedence","OrganizeImports","ts_OrganizeImports_exports","OrganizeImportsMode","OuterExpressionKinds","OutliningElementsCollector","ts_OutliningElementsCollector_exports","OutliningSpanKind","OutputFileType","PackageJsonAutoImportPreference","PackageJsonDependencyGroup","PatternMatchKind","PollingInterval","PollingWatchKind","PragmaKindFlags","PredicateSemantics","PreparePasteEdits","ts_preparePasteEdits_exports","PrivateIdentifierKind","ProcessLevel","ProgramUpdateLevel","QuotePreference","RegularExpressionFlags","RelationComparisonResult","Rename","ts_Rename_exports","ScriptElementKind","ScriptElementKindModifier","ScriptKind","ScriptSnapshot","ScriptTarget","SemanticClassificationFormat","SemanticMeaning","SemicolonPreference","SignatureCheckMode","SignatureFlags","SignatureHelp","ts_SignatureHelp_exports","SignatureInfo","SignatureKind","SmartSelectionRange","ts_SmartSelectionRange_exports","SnippetKind","StatisticType","StructureIsReused","SymbolAccessibility","SymbolDisplay","ts_SymbolDisplay_exports","SymbolDisplayPartKind","SymbolFlags","SymbolFormatFlags","SyntaxKind","Ternary","ThrottledCancellationToken","TokenClass","TokenFlags","TransformFlags","TypeFacts","TypeFlags","TypeFormatFlags","TypeMapKind","TypePredicateKind","TypeReferenceSerializationKind","UnionReduction","UpToDateStatusType","VarianceFlags","Version","VersionRange","WatchDirectoryFlags","WatchDirectoryKind","WatchFileKind","WatchLogLevel","WatchType","accessPrivateIdentifier","addEmitFlags","addEmitHelper","addEmitHelpers","addInternalEmitFlags","addNodeFactoryPatcher","addObjectAllocatorPatcher","addRange","addRelatedInfo","addSyntheticLeadingComment","addSyntheticTrailingComment","addToSeen","advancedAsyncSuperHelper","affectsDeclarationPathOptionDeclarations","affectsEmitOptionDeclarations","allKeysStartWithDot","altDirectorySeparator","and","append","appendIfUnique","arrayFrom","arrayIsEqualTo","arrayIsHomogeneous","arrayOf","arrayReverseIterator","arrayToMap","arrayToMultiMap","arrayToNumericMap","assertType","assign","asyncSuperHelper","attachFileToDiagnostics","base64decode","base64encode","binarySearch","binarySearchKey","bindSourceFile","breakIntoCharacterSpans","breakIntoWordSpans","buildLinkParts","buildOpts","buildOverload","bundlerModuleNameResolver","canBeConvertedToAsync","canHaveDecorators","canHaveExportModifier","canHaveFlowNode","canHaveIllegalDecorators","canHaveIllegalModifiers","canHaveIllegalType","canHaveIllegalTypeParameters","canHaveJSDoc","canHaveLocals","canHaveModifiers","canHaveModuleSpecifier","canHaveSymbol","canIncludeBindAndCheckDiagnostics","canJsonReportNoInputFiles","canProduceDiagnostics","canUsePropertyAccess","canWatchAffectingLocation","canWatchAtTypes","canWatchDirectoryOrFile","canWatchDirectoryOrFilePath","cartesianProduct","cast","chainBundle","chainDiagnosticMessages","changeAnyExtension","changeCompilerHostLikeToUseCache","changeExtension","changeFullExtension","changesAffectModuleResolution","changesAffectingProgramStructure","characterCodeToRegularExpressionFlag","childIsDecorated","classElementOrClassElementParameterIsDecorated","classHasClassThisAssignment","classHasDeclaredOrExplicitlyAssignedName","classHasExplicitlyAssignedName","classOrConstructorParameterIsDecorated","classicNameResolver","classifier","ts_classifier_exports","cleanExtendedConfigCache","clear","clearMap","clearSharedExtendedConfigFileWatcher","climbPastPropertyAccess","clone","cloneCompilerOptions","closeFileWatcher","closeFileWatcherOf","codefix","ts_codefix_exports","collapseTextChangeRangesAcrossMultipleVersions","collectExternalModuleInfo","combine","combinePaths","commandLineOptionOfCustomType","commentPragmas","commonOptionsWithBuild","compact","compareBooleans","compareDataObjects","compareDiagnostics","compareEmitHelpers","compareNumberOfDirectorySeparators","comparePaths","comparePathsCaseInsensitive","comparePathsCaseSensitive","comparePatternKeys","compareProperties","compareStringsCaseInsensitive","compareStringsCaseInsensitiveEslintCompatible","compareStringsCaseSensitive","compareStringsCaseSensitiveUI","compareTextSpans","compareValues","compilerOptionsAffectDeclarationPath","compilerOptionsAffectEmit","compilerOptionsAffectSemanticDiagnostics","compilerOptionsDidYouMeanDiagnostics","compilerOptionsIndicateEsModules","computeCommonSourceDirectoryOfFilenames","computeLineAndCharacterOfPosition","computeLineOfPosition","computeLineStarts","computePositionOfLineAndCharacter","computeSignatureWithDiagnostics","computeSuggestionDiagnostics","computedOptions","concatenate","concatenateDiagnosticMessageChains","consumesNodeCoreModules","contains","containsIgnoredPath","containsObjectRestOrSpread","containsParseError","containsPath","convertCompilerOptionsForTelemetry","convertCompilerOptionsFromJson","convertJsonOption","convertToBase64","convertToJson","convertToObject","convertToOptionsWithAbsolutePaths","convertToRelativePath","convertToTSConfig","convertTypeAcquisitionFromJson","copyComments","copyEntries","copyLeadingComments","copyProperties","copyTrailingAsLeadingComments","copyTrailingComments","couldStartTrivia","countWhere","createAbstractBuilder","createAccessorPropertyBackingField","createAccessorPropertyGetRedirector","createAccessorPropertySetRedirector","createBaseNodeFactory","createBinaryExpressionTrampoline","createBuilderProgram","createBuilderProgramUsingIncrementalBuildInfo","createBuilderStatusReporter","createCacheableExportInfoMap","createCachedDirectoryStructureHost","createClassifier","createCommentDirectivesMap","createCompilerDiagnostic","createCompilerDiagnosticForInvalidCustomType","createCompilerDiagnosticFromMessageChain","createCompilerHost","createCompilerHostFromProgramHost","createCompilerHostWorker","createDetachedDiagnostic","createDiagnosticCollection","createDiagnosticForFileFromMessageChain","createDiagnosticForNode","createDiagnosticForNodeArray","createDiagnosticForNodeArrayFromMessageChain","createDiagnosticForNodeFromMessageChain","createDiagnosticForNodeInSourceFile","createDiagnosticForRange","createDiagnosticMessageChainFromDiagnostic","createDiagnosticReporter","createDocumentPositionMapper","createDocumentRegistry","createDocumentRegistryInternal","createEmitAndSemanticDiagnosticsBuilderProgram","createEmitHelperFactory","createEmptyExports","createEvaluator","createExpressionForJsxElement","createExpressionForJsxFragment","createExpressionForObjectLiteralElementLike","createExpressionForPropertyName","createExpressionFromEntityName","createExternalHelpersImportDeclarationIfNeeded","createFileDiagnostic","createFileDiagnosticFromMessageChain","createFlowNode","createForOfBindingStatement","createFutureSourceFile","createGetCanonicalFileName","createGetIsolatedDeclarationErrors","createGetSourceFile","createGetSymbolAccessibilityDiagnosticForNode","createGetSymbolAccessibilityDiagnosticForNodeName","createGetSymbolWalker","createIncrementalCompilerHost","createIncrementalProgram","createJsxFactoryExpression","createLanguageService","createLanguageServiceSourceFile","createMemberAccessForPropertyName","createModeAwareCache","createModeAwareCacheKey","createModeMismatchDetails","createModuleNotFoundChain","createModuleResolutionCache","createModuleResolutionLoader","createModuleResolutionLoaderUsingGlobalCache","createModuleSpecifierResolutionHost","createMultiMap","createNameResolver","createNodeConverters","createNodeFactory","createOptionNameMap","createOverload","createPackageJsonImportFilter","createPackageJsonInfo","createParenthesizerRules","createPatternMatcher","createPrinter","createPrinterWithDefaults","createPrinterWithRemoveComments","createPrinterWithRemoveCommentsNeverAsciiEscape","createPrinterWithRemoveCommentsOmitTrailingSemicolon","createProgram","createProgramDiagnostics","createProgramHost","createPropertyNameNodeForIdentifierOrLiteral","createQueue","createRange","createRedirectedBuilderProgram","createResolutionCache","createRuntimeTypeSerializer","createScanner","createSemanticDiagnosticsBuilderProgram","createSet","createSolutionBuilder","createSolutionBuilderHost","createSolutionBuilderWithWatch","createSolutionBuilderWithWatchHost","createSortedArray","createSourceFile","createSourceMapGenerator","createSourceMapSource","createSuperAccessVariableStatement","createSymbolTable","createSymlinkCache","createSyntacticTypeNodeBuilder","createSystemWatchFunctions","createTextChange","createTextChangeFromStartLength","createTextChangeRange","createTextRangeFromNode","createTextRangeFromSpan","createTextSpan","createTextSpanFromBounds","createTextSpanFromNode","createTextSpanFromRange","createTextSpanFromStringLiteralLikeContent","createTextWriter","createTokenRange","createTypeChecker","createTypeReferenceDirectiveResolutionCache","createTypeReferenceResolutionLoader","createWatchCompilerHost","createWatchCompilerHost2","createWatchCompilerHostOfConfigFile","createWatchCompilerHostOfFilesAndCompilerOptions","createWatchFactory","createWatchHost","createWatchProgram","createWatchStatusReporter","createWriteFileMeasuringIO","declarationNameToString","decodeMappings","decodedTextSpanIntersectsWith","deduplicate","defaultHoverMaximumTruncationLength","defaultInitCompilerOptions","defaultMaximumTruncationLength","diagnosticCategoryName","diagnosticToString","diagnosticsEqualityComparer","directoryProbablyExists","directorySeparator","displayPart","displayPartsToString","disposeEmitNodes","documentSpansEqual","dumpTracingLegend","elementAt","elideNodes","emitDetachedComments","emitFiles","emitFilesAndReportErrors","emitFilesAndReportErrorsAndGetExitStatus","emitModuleKindIsNonNodeESM","emitNewLineBeforeLeadingCommentOfPosition","emitResolverSkipsTypeChecking","emitSkippedWithNoDiagnostics","emptyArray","emptyFileSystemEntries","emptyMap","emptyOptions","endsWith","ensurePathIsNonModuleName","ensureScriptKind","ensureTrailingDirectorySeparator","entityNameToString","enumerateInsertsAndDeletes","equalOwnProperties","equateStringsCaseInsensitive","equateStringsCaseSensitive","equateValues","escapeJsxAttributeString","escapeLeadingUnderscores","escapeNonAsciiString","escapeSnippetText","escapeString","escapeTemplateSubstitution","evaluatorResult","every","exclusivelyPrefixedNodeCoreModules","executeCommandLine","expandPreOrPostfixIncrementOrDecrementExpression","explainFiles","explainIfFileIsRedirectAndImpliedFormat","exportAssignmentIsAlias","expressionResultIsUnused","extend","extensionFromPath","extensionIsTS","extensionsNotSupportingExtensionlessResolution","externalHelpersModuleNameText","factory","fileExtensionIs","fileExtensionIsOneOf","fileIncludeReasonToDiagnostics","fileShouldUseJavaScriptRequire","filter","filterMutate","filterSemanticDiagnostics","find","findAncestor","findBestPatternMatch","findChildOfKind","findComputedPropertyNameCacheAssignment","findConfigFile","findConstructorDeclaration","findContainingList","findDiagnosticForNode","findFirstNonJsxWhitespaceToken","findIndex","findLast","findLastIndex","findListItemInfo","findModifier","findNextToken","findPackageJson","findPackageJsons","findPrecedingMatchingToken","findPrecedingToken","findSuperStatementIndexPath","findTokenOnLeftOfPosition","findUseStrictPrologue","first","firstDefined","firstDefinedIterator","firstIterator","firstOrOnly","firstOrUndefined","firstOrUndefinedIterator","fixupCompilerOptions","flatMap","flatMapIterator","flatMapToMutable","flatten","flattenCommaList","flattenDestructuringAssignment","flattenDestructuringBinding","flattenDiagnosticMessageText","forEach","forEachAncestor","forEachAncestorDirectory","forEachAncestorDirectoryStoppingAtGlobalCache","forEachChild","forEachChildRecursively","forEachDynamicImportOrRequireCall","forEachEmittedFile","forEachEnclosingBlockScopeContainer","forEachEntry","forEachExternalModuleToImportFrom","forEachImportClauseDeclaration","forEachKey","forEachLeadingCommentRange","forEachNameInAccessChainWalkingLeft","forEachNameOfDefaultExport","forEachOptionsSyntaxByName","forEachProjectReference","forEachPropertyAssignment","forEachResolvedProjectReference","forEachReturnStatement","forEachRight","forEachTrailingCommentRange","forEachTsConfigPropArray","forEachUnique","forEachYieldExpression","formatColorAndReset","formatDiagnostic","formatDiagnostics","formatDiagnosticsWithColorAndContext","formatGeneratedName","formatGeneratedNamePart","formatLocation","formatMessage","formatStringFromArgs","formatting","ts_formatting_exports","generateDjb2Hash","generateTSConfig","getAdjustedReferenceLocation","getAdjustedRenameLocation","getAliasDeclarationFromName","getAllAccessorDeclarations","getAllDecoratorsOfClass","getAllDecoratorsOfClassElement","getAllJSDocTags","getAllJSDocTagsOfKind","getAllKeys","getAllProjectOutputs","getAllSuperTypeNodes","getAllowImportingTsExtensions","getAllowJSCompilerOption","getAllowSyntheticDefaultImports","getAncestor","getAnyExtensionFromPath","getAreDeclarationMapsEnabled","getAssignedExpandoInitializer","getAssignedName","getAssignmentDeclarationKind","getAssignmentDeclarationPropertyAccessKind","getAssignmentTargetKind","getAutomaticTypeDirectiveNames","getBaseFileName","getBinaryOperatorPrecedence","getBuildInfo","getBuildInfoFileVersionMap","getBuildInfoText","getBuildOrderFromAnyBuildOrder","getBuilderCreationParameters","getBuilderFileEmit","getCanonicalDiagnostic","getCheckFlags","getClassExtendsHeritageElement","getClassLikeDeclarationOfSymbol","getCombinedLocalAndExportSymbolFlags","getCombinedModifierFlags","getCombinedNodeFlags","getCombinedNodeFlagsAlwaysIncludeJSDoc","getCommentRange","getCommonSourceDirectory","getCommonSourceDirectoryOfConfig","getCompilerOptionValue","getConditions","getConfigFileParsingDiagnostics","getConstantValue","getContainerFlags","getContainerNode","getContainingClass","getContainingClassExcludingClassDecorators","getContainingClassStaticBlock","getContainingFunction","getContainingFunctionDeclaration","getContainingFunctionOrClassStaticBlock","getContainingNodeArray","getContainingObjectLiteralElement","getContextualTypeFromParent","getContextualTypeFromParentOrAncestorTypeNode","getDeclarationDiagnostics","getDeclarationEmitExtensionForPath","getDeclarationEmitOutputFilePath","getDeclarationEmitOutputFilePathWorker","getDeclarationFileExtension","getDeclarationFromName","getDeclarationModifierFlagsFromSymbol","getDeclarationOfKind","getDeclarationsOfKind","getDeclaredExpandoInitializer","getDecorators","getDefaultCompilerOptions","getDefaultCompilerOptions2","getDefaultFormatCodeSettings","getDefaultLibFileName","getDefaultLibFilePath","getDefaultLikeExportInfo","getDefaultLikeExportNameFromDeclaration","getDefaultResolutionModeForFileWorker","getDiagnosticText","getDiagnosticsWithinSpan","getDirectoryPath","getDirectoryToWatchFailedLookupLocation","getDirectoryToWatchFailedLookupLocationFromTypeRoot","getDocumentPositionMapper","getDocumentSpansEqualityComparer","getESModuleInterop","getEditsForFileRename","getEffectiveBaseTypeNode","getEffectiveConstraintOfTypeParameter","getEffectiveContainerForJSDocTemplateTag","getEffectiveImplementsTypeNodes","getEffectiveInitializer","getEffectiveJSDocHost","getEffectiveModifierFlags","getEffectiveModifierFlagsAlwaysIncludeJSDoc","getEffectiveModifierFlagsNoCache","getEffectiveReturnTypeNode","getEffectiveSetAccessorTypeAnnotationNode","getEffectiveTypeAnnotationNode","getEffectiveTypeParameterDeclarations","getEffectiveTypeRoots","getElementOrPropertyAccessArgumentExpressionOrName","getElementOrPropertyAccessName","getElementsOfBindingOrAssignmentPattern","getEmitDeclarations","getEmitFlags","getEmitHelpers","getEmitModuleDetectionKind","getEmitModuleFormatOfFileWorker","getEmitModuleKind","getEmitModuleResolutionKind","getEmitScriptTarget","getEmitStandardClassFields","getEnclosingBlockScopeContainer","getEnclosingContainer","getEncodedSemanticClassifications","getEncodedSyntacticClassifications","getEndLinePosition","getEntityNameFromTypeNode","getEntrypointsFromPackageJsonInfo","getErrorCountForSummary","getErrorSpanForNode","getErrorSummaryText","getEscapedTextOfIdentifierOrLiteral","getEscapedTextOfJsxAttributeName","getEscapedTextOfJsxNamespacedName","getExpandoInitializer","getExportAssignmentExpression","getExportInfoMap","getExportNeedsImportStarHelper","getExpressionAssociativity","getExpressionPrecedence","getExternalHelpersModuleName","getExternalModuleImportEqualsDeclarationExpression","getExternalModuleName","getExternalModuleNameFromDeclaration","getExternalModuleNameFromPath","getExternalModuleNameLiteral","getExternalModuleRequireArgument","getFallbackOptions","getFileEmitOutput","getFileMatcherPatterns","getFileNamesFromConfigSpecs","getFileWatcherEventKind","getFilesInErrorForSummary","getFirstConstructorWithBody","getFirstIdentifier","getFirstNonSpaceCharacterPosition","getFirstProjectOutput","getFixableErrorSpanExpression","getFormatCodeSettingsForWriting","getFullWidth","getFunctionFlags","getHeritageClause","getHostSignatureFromJSDoc","getIdentifierAutoGenerate","getIdentifierGeneratedImportReference","getIdentifierTypeArguments","getImmediatelyInvokedFunctionExpression","getImpliedNodeFormatForEmitWorker","getImpliedNodeFormatForFile","getImpliedNodeFormatForFileWorker","getImportNeedsImportDefaultHelper","getImportNeedsImportStarHelper","getIndentString","getInferredLibraryNameResolveFrom","getInitializedVariables","getInitializerOfBinaryExpression","getInitializerOfBindingOrAssignmentElement","getInterfaceBaseTypeNodes","getInternalEmitFlags","getInvokedExpression","getIsFileExcluded","getIsolatedModules","getJSDocAugmentsTag","getJSDocClassTag","getJSDocCommentRanges","getJSDocCommentsAndTags","getJSDocDeprecatedTag","getJSDocDeprecatedTagNoCache","getJSDocEnumTag","getJSDocHost","getJSDocImplementsTags","getJSDocOverloadTags","getJSDocOverrideTagNoCache","getJSDocParameterTags","getJSDocParameterTagsNoCache","getJSDocPrivateTag","getJSDocPrivateTagNoCache","getJSDocProtectedTag","getJSDocProtectedTagNoCache","getJSDocPublicTag","getJSDocPublicTagNoCache","getJSDocReadonlyTag","getJSDocReadonlyTagNoCache","getJSDocReturnTag","getJSDocReturnType","getJSDocRoot","getJSDocSatisfiesExpressionType","getJSDocSatisfiesTag","getJSDocTags","getJSDocTemplateTag","getJSDocThisTag","getJSDocType","getJSDocTypeAliasName","getJSDocTypeAssertionType","getJSDocTypeParameterDeclarations","getJSDocTypeParameterTags","getJSDocTypeParameterTagsNoCache","getJSDocTypeTag","getJSXImplicitImportBase","getJSXRuntimeImport","getJSXTransformEnabled","getKeyForCompilerOptions","getLanguageVariant","getLastChild","getLeadingCommentRanges","getLeadingCommentRangesOfNode","getLeftmostAccessExpression","getLeftmostExpression","getLibFileNameFromLibReference","getLibNameFromLibReference","getLibraryNameFromLibFileName","getLineAndCharacterOfPosition","getLineInfo","getLineOfLocalPosition","getLineStartPositionForPosition","getLineStarts","getLinesBetweenPositionAndNextNonWhitespaceCharacter","getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter","getLinesBetweenPositions","getLinesBetweenRangeEndAndRangeStart","getLinesBetweenRangeEndPositions","getLiteralText","getLocalNameForExternalImport","getLocalSymbolForExportDefault","getLocaleSpecificMessage","getLocaleTimeString","getMappedContextSpan","getMappedDocumentSpan","getMappedLocation","getMatchedFileSpec","getMatchedIncludeSpec","getMeaningFromDeclaration","getMeaningFromLocation","getMembersOfDeclaration","getModeForFileReference","getModeForResolutionAtIndex","getModeForUsageLocation","getModifiedTime","getModifiers","getModuleInstanceState","getModuleNameStringLiteralAt","getModuleSpecifierEndingPreference","getModuleSpecifierResolverHost","getNameForExportedSymbol","getNameFromImportAttribute","getNameFromIndexInfo","getNameFromPropertyName","getNameOfAccessExpression","getNameOfCompilerOptionValue","getNameOfDeclaration","getNameOfExpando","getNameOfJSDocTypedef","getNameOfScriptTarget","getNameOrArgument","getNameTable","getNamespaceDeclarationNode","getNewLineCharacter","getNewLineKind","getNewLineOrDefaultFromHost","getNewTargetContainer","getNextJSDocCommentLocation","getNodeChildren","getNodeForGeneratedName","getNodeId","getNodeKind","getNodeModifiers","getNodeModulePathParts","getNonAssignedNameOfDeclaration","getNonAssignmentOperatorForCompoundAssignment","getNonAugmentationDeclaration","getNonDecoratorTokenPosOfNode","getNonIncrementalBuildInfoRoots","getNonModifierTokenPosOfNode","getNormalizedAbsolutePath","getNormalizedAbsolutePathWithoutRoot","getNormalizedPathComponents","getObjectFlags","getOperatorAssociativity","getOperatorPrecedence","getOptionFromName","getOptionsForLibraryResolution","getOptionsNameMap","getOptionsSyntaxByArrayElementValue","getOptionsSyntaxByValue","getOrCreateEmitNode","getOrUpdate","getOriginalNode","getOriginalNodeId","getOutputDeclarationFileName","getOutputDeclarationFileNameWorker","getOutputExtension","getOutputFileNames","getOutputJSFileNameWorker","getOutputPathsFor","getOwnEmitOutputFilePath","getOwnKeys","getOwnValues","getPackageJsonTypesVersionsPaths","getPackageNameFromTypesPackageName","getPackageScopeForPath","getParameterSymbolFromJSDoc","getParentNodeInSpan","getParseTreeNode","getParsedCommandLineOfConfigFile","getPathComponents","getPathFromPathComponents","getPathUpdater","getPathsBasePath","getPatternFromSpec","getPendingEmitKindWithSeen","getPositionOfLineAndCharacter","getPossibleGenericSignatures","getPossibleOriginalInputExtensionForExtension","getPossibleOriginalInputPathWithoutChangingExt","getPossibleTypeArgumentsInfo","getPreEmitDiagnostics","getPrecedingNonSpaceCharacterPosition","getPrivateIdentifier","getProperties","getProperty","getPropertyAssignmentAliasLikeExpression","getPropertyNameForPropertyNameNode","getPropertyNameFromType","getPropertyNameOfBindingOrAssignmentElement","getPropertySymbolFromBindingElement","getPropertySymbolsFromContextualType","getQuoteFromPreference","getQuotePreference","getRangesWhere","getRefactorContextSpan","getReferencedFileLocation","getRegexFromPattern","getRegularExpressionForWildcard","getRegularExpressionsForWildcards","getRelativePathFromDirectory","getRelativePathFromFile","getRelativePathToDirectoryOrUrl","getRenameLocation","getReplacementSpanForContextToken","getResolutionDiagnostic","getResolutionModeOverride","getResolveJsonModule","getResolvePackageJsonExports","getResolvePackageJsonImports","getResolvedExternalModuleName","getResolvedModuleFromResolution","getResolvedTypeReferenceDirectiveFromResolution","getRestIndicatorOfBindingOrAssignmentElement","getRestParameterElementType","getRightMostAssignedExpression","getRootDeclaration","getRootDirectoryOfResolutionCache","getRootLength","getScriptKind","getScriptKindFromFileName","getScriptTargetFeatures","getSelectedEffectiveModifierFlags","getSelectedSyntacticModifierFlags","getSemanticClassifications","getSemanticJsxChildren","getSetAccessorTypeAnnotationNode","getSetAccessorValueParameter","getSetExternalModuleIndicator","getShebang","getSingleVariableOfVariableStatement","getSnapshotText","getSnippetElement","getSourceFileOfModule","getSourceFileOfNode","getSourceFilePathInNewDir","getSourceFileVersionAsHashFromText","getSourceFilesToEmit","getSourceMapRange","getSourceMapper","getSourceTextOfNodeFromSourceFile","getSpanOfTokenAtPosition","getSpellingSuggestion","getStartPositionOfLine","getStartPositionOfRange","getStartsOnNewLine","getStaticPropertiesAndClassStaticBlock","getStrictOptionValue","getStringComparer","getSubPatternFromSpec","getSuperCallFromStatement","getSuperContainer","getSupportedCodeFixes","getSupportedExtensions","getSupportedExtensionsWithJsonIfResolveJsonModule","getSwitchedType","getSymbolId","getSymbolNameForPrivateIdentifier","getSymbolTarget","getSyntacticClassifications","getSyntacticModifierFlags","getSyntacticModifierFlagsNoCache","getSynthesizedDeepClone","getSynthesizedDeepCloneWithReplacements","getSynthesizedDeepClones","getSynthesizedDeepClonesWithReplacements","getSyntheticLeadingComments","getSyntheticTrailingComments","getTargetLabel","getTargetOfBindingOrAssignmentElement","getTemporaryModuleResolutionState","getTextOfConstantValue","getTextOfIdentifierOrLiteral","getTextOfJSDocComment","getTextOfJsxAttributeName","getTextOfJsxNamespacedName","getTextOfNode","getTextOfNodeFromSourceText","getTextOfPropertyName","getThisContainer","getThisParameter","getTokenAtPosition","getTokenPosOfNode","getTokenSourceMapRange","getTouchingPropertyName","getTouchingToken","getTrailingCommentRanges","getTrailingSemicolonDeferringWriter","getTransformers","getTsBuildInfoEmitOutputFilePath","getTsConfigObjectLiteralExpression","getTsConfigPropArrayElementValue","getTypeAnnotationNode","getTypeArgumentOrTypeParameterList","getTypeKeywordOfTypeOnlyImport","getTypeNode","getTypeNodeIfAccessible","getTypeParameterFromJsDoc","getTypeParameterOwner","getTypesPackageName","getUILocale","getUniqueName","getUniqueSymbolId","getUseDefineForClassFields","getWatchErrorSummaryDiagnosticMessage","getWatchFactory","group","groupBy","guessIndentation","handleNoEmitOptions","handleWatchOptionsConfigDirTemplateSubstitution","hasAbstractModifier","hasAccessorModifier","hasAmbientModifier","hasChangesInResolutions","hasContextSensitiveParameters","hasDecorators","hasDocComment","hasDynamicName","hasEffectiveModifier","hasEffectiveModifiers","hasEffectiveReadonlyModifier","hasExtension","hasImplementationTSFileExtension","hasIndexSignature","hasInferredType","hasInitializer","hasInvalidEscape","hasJSDocNodes","hasJSDocParameterTags","hasJSFileExtension","hasJsonModuleEmitEnabled","hasOnlyExpressionInitializer","hasOverrideModifier","hasPossibleExternalModuleReference","hasProperty","hasPropertyAccessExpressionWithName","hasQuestionToken","hasRecordedExternalHelpers","hasResolutionModeOverride","hasRestParameter","hasScopeMarker","hasStaticModifier","hasSyntacticModifier","hasSyntacticModifiers","hasTSFileExtension","hasTabstop","hasTrailingDirectorySeparator","hasType","hasTypeArguments","hasZeroOrOneAsteriskCharacter","hostGetCanonicalFileName","hostUsesCaseSensitiveFileNames","idText","identifierIsThisKeyword","identifierToKeywordKind","identity","identitySourceMapConsumer","ignoreSourceNewlines","ignoredPaths","importFromModuleSpecifier","importSyntaxAffectsModuleResolution","indexOfAnyCharCode","indexOfNode","indicesOf","inferredTypesContainingFile","injectClassNamedEvaluationHelperBlockIfMissing","injectClassThisAssignmentIfMissing","insertImports","insertSorted","insertStatementAfterCustomPrologue","insertStatementAfterStandardPrologue","insertStatementsAfterCustomPrologue","insertStatementsAfterStandardPrologue","intersperse","intrinsicTagNameToString","introducesArgumentsExoticObject","inverseJsxOptionMap","isAbstractConstructorSymbol","isAbstractModifier","isAccessExpression","isAccessibilityModifier","isAccessor","isAccessorModifier","isAliasableExpression","isAmbientModule","isAmbientPropertyDeclaration","isAnyDirectorySeparator","isAnyImportOrBareOrAccessedRequire","isAnyImportOrReExport","isAnyImportOrRequireStatement","isAnyImportSyntax","isAnySupportedFileExtension","isApplicableVersionedTypesKey","isArgumentExpressionOfElementAccess","isArray","isArrayBindingElement","isArrayBindingOrAssignmentElement","isArrayBindingOrAssignmentPattern","isArrayBindingPattern","isArrayLiteralExpression","isArrayLiteralOrObjectLiteralDestructuringPattern","isArrayTypeNode","isArrowFunction","isAsExpression","isAssertClause","isAssertEntry","isAssertionExpression","isAssertsKeyword","isAssignmentDeclaration","isAssignmentExpression","isAssignmentOperator","isAssignmentPattern","isAssignmentTarget","isAsteriskToken","isAsyncFunction","isAsyncModifier","isAutoAccessorPropertyDeclaration","isAwaitExpression","isAwaitKeyword","isBigIntLiteral","isBinaryExpression","isBinaryLogicalOperator","isBinaryOperatorToken","isBindableObjectDefinePropertyCall","isBindableStaticAccessExpression","isBindableStaticElementAccessExpression","isBindableStaticNameExpression","isBindingElement","isBindingElementOfBareOrAccessedRequire","isBindingName","isBindingOrAssignmentElement","isBindingOrAssignmentPattern","isBindingPattern","isBlock","isBlockLike","isBlockOrCatchScoped","isBlockScope","isBlockScopedContainerTopLevel","isBooleanLiteral","isBreakOrContinueStatement","isBreakStatement","isBuildCommand","isBuildInfoFile","isBuilderProgram","isBundle","isCallChain","isCallExpression","isCallExpressionTarget","isCallLikeExpression","isCallLikeOrFunctionLikeExpression","isCallOrNewExpression","isCallOrNewExpressionTarget","isCallSignatureDeclaration","isCallToHelper","isCaseBlock","isCaseClause","isCaseKeyword","isCaseOrDefaultClause","isCatchClause","isCatchClauseVariableDeclaration","isCatchClauseVariableDeclarationOrBindingElement","isCheckJsEnabledForFile","isCircularBuildOrder","isClassDeclaration","isClassElement","isClassExpression","isClassInstanceProperty","isClassLike","isClassMemberModifier","isClassNamedEvaluationHelperBlock","isClassOrTypeElement","isClassStaticBlockDeclaration","isClassThisAssignmentBlock","isColonToken","isCommaExpression","isCommaListExpression","isCommaSequence","isCommaToken","isComment","isCommonJsExportPropertyAssignment","isCommonJsExportedExpression","isCompoundAssignment","isComputedNonLiteralName","isComputedPropertyName","isConciseBody","isConditionalExpression","isConditionalTypeNode","isConstAssertion","isConstTypeReference","isConstructSignatureDeclaration","isConstructorDeclaration","isConstructorTypeNode","isContextualKeyword","isContinueStatement","isCustomPrologue","isDebuggerStatement","isDeclaration","isDeclarationBindingElement","isDeclarationFileName","isDeclarationName","isDeclarationNameOfEnumOrNamespace","isDeclarationReadonly","isDeclarationStatement","isDeclarationWithTypeParameterChildren","isDeclarationWithTypeParameters","isDecorator","isDecoratorTarget","isDefaultClause","isDefaultImport","isDefaultModifier","isDefaultedExpandoInitializer","isDeleteExpression","isDeleteTarget","isDeprecatedDeclaration","isDestructuringAssignment","isDiskPathRoot","isDoStatement","isDocumentRegistryEntry","isDotDotDotToken","isDottedName","isDynamicName","isEffectiveExternalModule","isEffectiveStrictModeSourceFile","isElementAccessChain","isElementAccessExpression","isEmittedFileOfProgram","isEmptyArrayLiteral","isEmptyBindingElement","isEmptyBindingPattern","isEmptyObjectLiteral","isEmptyStatement","isEmptyStringLiteral","isEntityName","isEntityNameExpression","isEnumConst","isEnumDeclaration","isEnumMember","isEqualityOperatorKind","isEqualsGreaterThanToken","isExclamationToken","isExcludedFile","isExclusivelyTypeOnlyImportOrExport","isExpandoPropertyDeclaration","isExportAssignment","isExportDeclaration","isExportModifier","isExportName","isExportNamespaceAsDefaultDeclaration","isExportOrDefaultModifier","isExportSpecifier","isExportsIdentifier","isExportsOrModuleExportsOrAlias","isExpression","isExpressionNode","isExpressionOfExternalModuleImportEqualsDeclaration","isExpressionOfOptionalChainRoot","isExpressionStatement","isExpressionWithTypeArguments","isExpressionWithTypeArgumentsInClassExtendsClause","isExternalModule","isExternalModuleAugmentation","isExternalModuleImportEqualsDeclaration","isExternalModuleIndicator","isExternalModuleNameRelative","isExternalModuleReference","isExternalModuleSymbol","isExternalOrCommonJsModule","isFileLevelReservedGeneratedIdentifier","isFileLevelUniqueName","isFileProbablyExternalModule","isFirstDeclarationOfSymbolParameter","isFixablePromiseHandler","isForInOrOfStatement","isForInStatement","isForInitializer","isForOfStatement","isForStatement","isFullSourceFile","isFunctionBlock","isFunctionBody","isFunctionDeclaration","isFunctionExpression","isFunctionExpressionOrArrowFunction","isFunctionLike","isFunctionLikeDeclaration","isFunctionLikeKind","isFunctionLikeOrClassStaticBlockDeclaration","isFunctionOrConstructorTypeNode","isFunctionOrModuleBlock","isFunctionSymbol","isFunctionTypeNode","isGeneratedIdentifier","isGeneratedPrivateIdentifier","isGetAccessor","isGetAccessorDeclaration","isGetOrSetAccessorDeclaration","isGlobalScopeAugmentation","isGlobalSourceFile","isGrammarError","isHeritageClause","isHoistedFunction","isHoistedVariableStatement","isIdentifier","isIdentifierANonContextualKeyword","isIdentifierName","isIdentifierOrThisTypeNode","isIdentifierPart","isIdentifierStart","isIdentifierText","isIdentifierTypePredicate","isIdentifierTypeReference","isIfStatement","isIgnoredFileFromWildCardWatching","isImplicitGlob","isImportAttribute","isImportAttributeName","isImportAttributes","isImportCall","isImportClause","isImportDeclaration","isImportEqualsDeclaration","isImportKeyword","isImportMeta","isImportOrExportSpecifier","isImportOrExportSpecifierName","isImportSpecifier","isImportTypeAssertionContainer","isImportTypeNode","isImportable","isInComment","isInCompoundLikeAssignment","isInExpressionContext","isInJSDoc","isInJSFile","isInJSXText","isInJsonFile","isInNonReferenceComment","isInReferenceComment","isInRightSideOfInternalImportEqualsDeclaration","isInString","isInTemplateString","isInTopLevelContext","isInTypeQuery","isIncrementalBuildInfo","isIncrementalBundleEmitBuildInfo","isIncrementalCompilation","isIndexSignatureDeclaration","isIndexedAccessTypeNode","isInferTypeNode","isInfinityOrNaNString","isInitializedProperty","isInitializedVariable","isInsideJsxElement","isInsideJsxElementOrAttribute","isInsideNodeModules","isInsideTemplateLiteral","isInstanceOfExpression","isInstantiatedModule","isInterfaceDeclaration","isInternalDeclaration","isInternalModuleImportEqualsDeclaration","isInternalName","isIntersectionTypeNode","isIntrinsicJsxName","isIterationStatement","isJSDoc","isJSDocAllType","isJSDocAugmentsTag","isJSDocAuthorTag","isJSDocCallbackTag","isJSDocClassTag","isJSDocCommentContainingNode","isJSDocConstructSignature","isJSDocDeprecatedTag","isJSDocEnumTag","isJSDocFunctionType","isJSDocImplementsTag","isJSDocImportTag","isJSDocIndexSignature","isJSDocLikeText","isJSDocLink","isJSDocLinkCode","isJSDocLinkLike","isJSDocLinkPlain","isJSDocMemberName","isJSDocNameReference","isJSDocNamepathType","isJSDocNamespaceBody","isJSDocNode","isJSDocNonNullableType","isJSDocNullableType","isJSDocOptionalParameter","isJSDocOptionalType","isJSDocOverloadTag","isJSDocOverrideTag","isJSDocParameterTag","isJSDocPrivateTag","isJSDocPropertyLikeTag","isJSDocPropertyTag","isJSDocProtectedTag","isJSDocPublicTag","isJSDocReadonlyTag","isJSDocReturnTag","isJSDocSatisfiesExpression","isJSDocSatisfiesTag","isJSDocSeeTag","isJSDocSignature","isJSDocTag","isJSDocTemplateTag","isJSDocThisTag","isJSDocThrowsTag","isJSDocTypeAlias","isJSDocTypeAssertion","isJSDocTypeExpression","isJSDocTypeLiteral","isJSDocTypeTag","isJSDocTypedefTag","isJSDocUnknownTag","isJSDocUnknownType","isJSDocVariadicType","isJSXTagName","isJsonEqual","isJsonSourceFile","isJsxAttribute","isJsxAttributeLike","isJsxAttributeName","isJsxAttributes","isJsxCallLike","isJsxChild","isJsxClosingElement","isJsxClosingFragment","isJsxElement","isJsxExpression","isJsxFragment","isJsxNamespacedName","isJsxOpeningElement","isJsxOpeningFragment","isJsxOpeningLikeElement","isJsxOpeningLikeElementTagName","isJsxSelfClosingElement","isJsxSpreadAttribute","isJsxTagNameExpression","isJsxText","isJumpStatementTarget","isKeyword","isKeywordOrPunctuation","isKnownSymbol","isLabelName","isLabelOfLabeledStatement","isLabeledStatement","isLateVisibilityPaintedStatement","isLeftHandSideExpression","isLet","isLineBreak","isLiteralComputedPropertyDeclarationName","isLiteralExpression","isLiteralExpressionOfObject","isLiteralImportTypeNode","isLiteralKind","isLiteralNameOfPropertyDeclarationOrIndexAccess","isLiteralTypeLiteral","isLiteralTypeNode","isLocalName","isLogicalOperator","isLogicalOrCoalescingAssignmentExpression","isLogicalOrCoalescingAssignmentOperator","isLogicalOrCoalescingBinaryExpression","isLogicalOrCoalescingBinaryOperator","isMappedTypeNode","isMemberName","isMetaProperty","isMethodDeclaration","isMethodOrAccessor","isMethodSignature","isMinusToken","isMissingDeclaration","isMissingPackageJsonInfo","isModifier","isModifierKind","isModifierLike","isModuleAugmentationExternal","isModuleBlock","isModuleBody","isModuleDeclaration","isModuleExportName","isModuleExportsAccessExpression","isModuleIdentifier","isModuleName","isModuleOrEnumDeclaration","isModuleReference","isModuleSpecifierLike","isModuleWithStringLiteralName","isNameOfFunctionDeclaration","isNameOfModuleDeclaration","isNamedDeclaration","isNamedEvaluation","isNamedEvaluationSource","isNamedExportBindings","isNamedExports","isNamedImportBindings","isNamedImports","isNamedImportsOrExports","isNamedTupleMember","isNamespaceBody","isNamespaceExport","isNamespaceExportDeclaration","isNamespaceImport","isNamespaceReexportDeclaration","isNewExpression","isNewExpressionTarget","isNewScopeNode","isNoSubstitutionTemplateLiteral","isNodeArray","isNodeArrayMultiLine","isNodeDescendantOf","isNodeKind","isNodeLikeSystem","isNodeModulesDirectory","isNodeWithPossibleHoistedDeclaration","isNonContextualKeyword","isNonGlobalAmbientModule","isNonNullAccess","isNonNullChain","isNonNullExpression","isNonStaticMethodOrAccessorWithPrivateName","isNotEmittedStatement","isNullishCoalesce","isNumber","isNumericLiteral","isNumericLiteralName","isObjectBindingElementWithoutPropertyName","isObjectBindingOrAssignmentElement","isObjectBindingOrAssignmentPattern","isObjectBindingPattern","isObjectLiteralElement","isObjectLiteralElementLike","isObjectLiteralExpression","isObjectLiteralMethod","isObjectLiteralOrClassExpressionMethodOrAccessor","isObjectTypeDeclaration","isOmittedExpression","isOptionalChain","isOptionalChainRoot","isOptionalDeclaration","isOptionalJSDocPropertyLikeTag","isOptionalTypeNode","isOuterExpression","isOutermostOptionalChain","isOverrideModifier","isPackageJsonInfo","isPackedArrayLiteral","isParameter","isParameterPropertyDeclaration","isParameterPropertyModifier","isParenthesizedExpression","isParenthesizedTypeNode","isParseTreeNode","isPartOfParameterDeclaration","isPartOfTypeNode","isPartOfTypeOnlyImportOrExportDeclaration","isPartOfTypeQuery","isPartiallyEmittedExpression","isPatternMatch","isPinnedComment","isPlainJsFile","isPlusToken","isPossiblyTypeArgumentPosition","isPostfixUnaryExpression","isPrefixUnaryExpression","isPrimitiveLiteralValue","isPrivateIdentifier","isPrivateIdentifierClassElementDeclaration","isPrivateIdentifierPropertyAccessExpression","isPrivateIdentifierSymbol","isProgramUptoDate","isPrologueDirective","isPropertyAccessChain","isPropertyAccessEntityNameExpression","isPropertyAccessExpression","isPropertyAccessOrQualifiedName","isPropertyAccessOrQualifiedNameOrImportTypeNode","isPropertyAssignment","isPropertyDeclaration","isPropertyName","isPropertyNameLiteral","isPropertySignature","isPrototypeAccess","isPrototypePropertyAssignment","isPunctuation","isPushOrUnshiftIdentifier","isQualifiedName","isQuestionDotToken","isQuestionOrExclamationToken","isQuestionOrPlusOrMinusToken","isQuestionToken","isReadonlyKeyword","isReadonlyKeywordOrPlusOrMinusToken","isRecognizedTripleSlashComment","isReferenceFileLocation","isReferencedFile","isRegularExpressionLiteral","isRequireCall","isRequireVariableStatement","isRestParameter","isRestTypeNode","isReturnStatement","isReturnStatementWithFixablePromiseHandler","isRightSideOfAccessExpression","isRightSideOfInstanceofExpression","isRightSideOfPropertyAccess","isRightSideOfQualifiedName","isRightSideOfQualifiedNameOrPropertyAccess","isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName","isRootedDiskPath","isSameEntityName","isSatisfiesExpression","isSemicolonClassElement","isSetAccessor","isSetAccessorDeclaration","isShiftOperatorOrHigher","isShorthandAmbientModuleSymbol","isShorthandPropertyAssignment","isSideEffectImport","isSignedNumericLiteral","isSimpleCopiableExpression","isSimpleInlineableExpression","isSimpleParameterList","isSingleOrDoubleQuote","isSolutionConfig","isSourceElement","isSourceFile","isSourceFileFromLibrary","isSourceFileJS","isSourceFileNotJson","isSourceMapping","isSpecialPropertyDeclaration","isSpreadAssignment","isSpreadElement","isStatement","isStatementButNotDeclaration","isStatementOrBlock","isStatementWithLocals","isStatic","isStaticModifier","isString","isStringANonContextualKeyword","isStringAndEmptyAnonymousObjectIntersection","isStringDoubleQuoted","isStringLiteral","isStringLiteralLike","isStringLiteralOrJsxExpression","isStringLiteralOrTemplate","isStringOrNumericLiteralLike","isStringOrRegularExpressionOrTemplateLiteral","isStringTextContainingNode","isSuperCall","isSuperKeyword","isSuperProperty","isSupportedSourceFileName","isSwitchStatement","isSyntaxList","isSyntheticExpression","isSyntheticReference","isTagName","isTaggedTemplateExpression","isTaggedTemplateTag","isTemplateExpression","isTemplateHead","isTemplateLiteral","isTemplateLiteralKind","isTemplateLiteralToken","isTemplateLiteralTypeNode","isTemplateLiteralTypeSpan","isTemplateMiddle","isTemplateMiddleOrTemplateTail","isTemplateSpan","isTemplateTail","isTextWhiteSpaceLike","isThis","isThisContainerOrFunctionBlock","isThisIdentifier","isThisInTypeQuery","isThisInitializedDeclaration","isThisInitializedObjectBindingExpression","isThisProperty","isThisTypeNode","isThisTypeParameter","isThisTypePredicate","isThrowStatement","isToken","isTokenKind","isTraceEnabled","isTransientSymbol","isTrivia","isTryStatement","isTupleTypeNode","isTypeAlias","isTypeAliasDeclaration","isTypeAssertionExpression","isTypeDeclaration","isTypeElement","isTypeKeyword","isTypeKeywordTokenOrIdentifier","isTypeLiteralNode","isTypeNode","isTypeNodeKind","isTypeOfExpression","isTypeOnlyExportDeclaration","isTypeOnlyImportDeclaration","isTypeOnlyImportOrExportDeclaration","isTypeOperatorNode","isTypeParameterDeclaration","isTypePredicateNode","isTypeQueryNode","isTypeReferenceNode","isTypeReferenceType","isTypeUsableAsPropertyName","isUMDExportSymbol","isUnaryExpression","isUnaryExpressionWithWrite","isUnicodeIdentifierStart","isUnionTypeNode","isUrl","isValidBigIntString","isValidESSymbolDeclaration","isValidTypeOnlyAliasUseSite","isValueSignatureDeclaration","isVarAwaitUsing","isVarConst","isVarConstLike","isVarUsing","isVariableDeclaration","isVariableDeclarationInVariableStatement","isVariableDeclarationInitializedToBareOrAccessedRequire","isVariableDeclarationInitializedToRequire","isVariableDeclarationList","isVariableLike","isVariableStatement","isVoidExpression","isWatchSet","isWhileStatement","isWhiteSpaceLike","isWhiteSpaceSingleLine","isWithStatement","isWriteAccess","isWriteOnlyAccess","isYieldExpression","jsxModeNeedsExplicitImport","keywordPart","last","lastOrUndefined","length","libMap","libs","lineBreakPart","loadModuleFromGlobalCache","loadWithModeAwareCache","makeIdentifierFromModuleName","makeImport","makeStringLiteral","mangleScopedPackageName","map","mapAllOrFail","mapDefined","mapDefinedIterator","mapEntries","mapIterator","mapOneOrMany","mapToDisplayParts","matchFiles","matchPatternOrExact","matchedText","matchesExclude","matchesExcludeWorker","maxBy","maybeBind","maybeSetLocalizedDiagnosticMessages","memoize","memoizeOne","min","minAndMax","missingFileModifiedTime","modifierToFlag","modifiersToFlags","moduleExportNameIsDefault","moduleExportNameTextEscaped","moduleExportNameTextUnescaped","moduleOptionDeclaration","moduleResolutionIsEqualTo","moduleResolutionNameAndModeGetter","moduleResolutionOptionDeclarations","moduleResolutionSupportsPackageJsonExportsAndImports","moduleResolutionUsesNodeModules","moduleSpecifierToValidIdentifier","moduleSpecifiers","ts_moduleSpecifiers_exports","moduleSupportsImportAttributes","moduleSymbolToValidIdentifier","moveEmitHelpers","moveRangeEnd","moveRangePastDecorators","moveRangePastModifiers","moveRangePos","moveSyntheticComments","mutateMap","mutateMapSkippingNewValues","needsParentheses","needsScopeMarker","newCaseClauseTracker","newPrivateEnvironment","noEmitNotification","noEmitSubstitution","noTransformers","noTruncationMaximumTruncationLength","nodeCanBeDecorated","nodeCoreModules","nodeHasName","nodeIsDecorated","nodeIsMissing","nodeIsPresent","nodeIsSynthesized","nodeModuleNameResolver","nodeModulesPathPart","nodeNextJsonConfigResolver","nodeOrChildIsDecorated","nodeOverlapsWithStartEnd","nodePosToString","nodeSeenTracker","nodeStartsNewLexicalEnvironment","noop","noopFileWatcher","normalizePath","normalizeSlashes","normalizeSpans","not","notImplemented","notImplementedResolver","nullNodeConverters","nullParenthesizerRules","nullTransformationContext","objectAllocator","operatorPart","optionDeclarations","optionMapToObject","optionsAffectingProgramStructure","optionsForBuild","optionsForWatch","optionsHaveChanges","or","orderedRemoveItem","orderedRemoveItemAt","packageIdToPackageName","packageIdToString","parameterIsThisKeyword","parameterNamePart","parseBaseNodeFactory","parseBigInt","parseBuildCommand","parseCommandLine","parseCommandLineWorker","parseConfigFileTextToJson","parseConfigFileWithSystem","parseConfigHostFromCompilerHostLike","parseCustomTypeOption","parseIsolatedEntityName","parseIsolatedJSDocComment","parseJSDocTypeExpressionForTests","parseJsonConfigFileContent","parseJsonSourceFileConfigFileContent","parseJsonText","parseListTypeOption","parseNodeFactory","parseNodeModuleFromPath","parsePackageName","parsePseudoBigInt","parseValidBigInt","pasteEdits","ts_PasteEdits_exports","patchWriteFileEnsuringDirectory","pathContainsNodeModules","pathIsAbsolute","pathIsBareSpecifier","pathIsRelative","patternText","performIncrementalCompilation","performance","ts_performance_exports","positionBelongsToNode","positionIsASICandidate","positionIsSynthesized","positionsAreOnSameLine","preProcessFile","probablyUsesSemicolons","processCommentPragmas","processPragmasIntoFields","processTaggedTemplateExpression","programContainsEsModules","programContainsModules","projectReferenceIsEqualTo","propertyNamePart","pseudoBigIntToString","punctuationPart","pushIfUnique","quote","quotePreferenceFromString","rangeContainsPosition","rangeContainsPositionExclusive","rangeContainsRange","rangeContainsRangeExclusive","rangeContainsStartEnd","rangeEndIsOnSameLineAsRangeStart","rangeEndPositionsAreOnSameLine","rangeEquals","rangeIsOnSingleLine","rangeOfNode","rangeOfTypeParameters","rangeOverlapsWithStartEnd","rangeStartIsOnSameLineAsRangeEnd","rangeStartPositionsAreOnSameLine","readBuilderProgram","readConfigFile","readJson","readJsonConfigFile","readJsonOrUndefined","reduceEachLeadingCommentRange","reduceEachTrailingCommentRange","reduceLeft","reduceLeftIterator","reducePathComponents","refactor","ts_refactor_exports","regExpEscape","regularExpressionFlagToCharacterCode","relativeComplement","removeAllComments","removeEmitHelper","removeExtension","removeFileExtension","removeIgnoredPath","removeMinAndVersionNumbers","removePrefix","removeSuffix","removeTrailingDirectorySeparator","repeatString","replaceElement","replaceFirstStar","resolutionExtensionIsTSOrJson","resolveConfigFileProjectName","resolveJSModule","resolveLibrary","resolveModuleName","resolveModuleNameFromCache","resolvePackageNameToPackageJson","resolvePath","resolveProjectReferencePath","resolveTripleslashReference","resolveTypeReferenceDirective","resolvingEmptyArray","returnFalse","returnNoopFileWatcher","returnTrue","returnUndefined","returnsPromise","rewriteModuleSpecifier","sameFlatMap","sameMap","sameMapping","scanTokenAtPosition","scanner","semanticDiagnosticsOptionDeclarations","serializeCompilerOptions","server","ts_server_exports4","servicesVersion","setCommentRange","setConfigFileInOptions","setConstantValue","setEmitFlags","setGetSourceFileAsHashVersioned","setIdentifierAutoGenerate","setIdentifierGeneratedImportReference","setIdentifierTypeArguments","setInternalEmitFlags","setLocalizedDiagnosticMessages","setNodeChildren","setNodeFlags","setObjectAllocator","setOriginalNode","setParent","setParentRecursive","setPrivateIdentifier","setSnippetElement","setSourceMapRange","setStackTraceLimit","setStartsOnNewLine","setSyntheticLeadingComments","setSyntheticTrailingComments","setSys","setSysLog","setTextRange","setTextRangeEnd","setTextRangePos","setTextRangePosEnd","setTextRangePosWidth","setTokenSourceMapRange","setTypeNode","setUILocale","setValueDeclaration","shouldAllowImportingTsExtension","shouldPreserveConstEnums","shouldRewriteModuleSpecifier","shouldUseUriStyleNodeCoreModules","showModuleSpecifier","signatureHasRestParameter","signatureToDisplayParts","single","singleElementArray","singleIterator","singleOrMany","singleOrUndefined","skipAlias","skipConstraint","skipOuterExpressions","skipParentheses","skipPartiallyEmittedExpressions","skipTrivia","skipTypeChecking","skipTypeCheckingIgnoringNoCheck","skipTypeParentheses","skipWhile","sliceAfter","some","sortAndDeduplicate","sortAndDeduplicateDiagnostics","sourceFileAffectingCompilerOptions","sourceFileMayBeEmitted","sourceMapCommentRegExp","sourceMapCommentRegExpDontCareLineStart","spacePart","spanMap","startEndContainsRange","startEndOverlapsWithStartEnd","startOnNewLine","startTracing","startsWith","startsWithDirectory","startsWithUnderscore","startsWithUseStrict","stringContainsAt","stringToToken","stripQuotes","supportedDeclarationExtensions","supportedJSExtensionsFlat","supportedLocaleDirectories","supportedTSExtensionsFlat","supportedTSImplementationExtensions","suppressLeadingAndTrailingTrivia","suppressLeadingTrivia","suppressTrailingTrivia","symbolEscapedNameNoDefault","symbolName","symbolNameNoDefault","symbolToDisplayParts","sys","sysLog","tagNamesAreEquivalent","takeWhile","targetOptionDeclaration","targetToLibMap","testFormatSettings","textChangeRangeIsUnchanged","textChangeRangeNewSpan","textChanges","ts_textChanges_exports","textOrKeywordPart","textPart","textRangeContainsPositionInclusive","textRangeContainsTextSpan","textRangeIntersectsWithTextSpan","textSpanContainsPosition","textSpanContainsTextRange","textSpanContainsTextSpan","textSpanEnd","textSpanIntersection","textSpanIntersectsWith","textSpanIntersectsWithPosition","textSpanIntersectsWithTextSpan","textSpanIsEmpty","textSpanOverlap","textSpanOverlapsWith","textSpansEqual","textToKeywordObj","timestamp","toArray","toBuilderFileEmit","toBuilderStateFileInfoForMultiEmit","toEditorSettings","toFileNameLowerCase","toPath","toProgramEmitPending","toSorted","tokenIsIdentifierOrKeyword","tokenIsIdentifierOrKeywordOrGreaterThan","tokenToString","trace","tracing","tracingEnabled","transferSourceFileChildren","transform","transformClassFields","transformDeclarations","transformECMAScriptModule","transformES2015","transformES2016","transformES2017","transformES2018","transformES2019","transformES2020","transformES2021","transformESDecorators","transformESNext","transformGenerators","transformImpliedNodeFormatDependentModule","transformJsx","transformLegacyDecorators","transformModule","transformNamedEvaluation","transformNodes","transformSystemModule","transformTypeScript","transpile","transpileDeclaration","transpileModule","transpileOptionValueCompilerOptions","tryAddToSet","tryAndIgnoreErrors","tryCast","tryDirectoryExists","tryExtractTSExtension","tryFileExists","tryGetClassExtendingExpressionWithTypeArguments","tryGetClassImplementingOrExtendingExpressionWithTypeArguments","tryGetDirectories","tryGetExtensionFromPath","tryGetExtensionFromPath2","tryGetImportFromModuleSpecifier","tryGetJSDocSatisfiesTypeNode","tryGetModuleNameFromFile","tryGetModuleSpecifierFromDeclaration","tryGetNativePerformanceHooks","tryGetPropertyAccessOrIdentifierToString","tryGetPropertyNameOfBindingOrAssignmentElement","tryGetSourceMappingURL","tryGetTextOfPropertyName","tryParseJson","tryParsePattern","tryParsePatterns","tryParseRawSourceMap","tryReadDirectory","tryReadFile","tryRemoveDirectoryPrefix","tryRemoveExtension","tryRemovePrefix","tryRemoveSuffix","tscBuildOption","typeAcquisitionDeclarations","typeAliasNamePart","typeDirectiveIsEqualTo","typeKeywords","typeParameterNamePart","typeToDisplayParts","unchangedPollThresholds","unchangedTextChangeRange","unescapeLeadingUnderscores","unmangleScopedPackageName","unorderedRemoveItem","unprefixedNodeCoreModules","unreachableCodeIsError","unsetNodeChildren","unusedLabelIsError","unwrapInnermostStatementOfLabel","unwrapParenthesizedExpression","updateErrorForNoInputFiles","updateLanguageServiceSourceFile","updateMissingFilePathsWatch","updateResolutionField","updateSharedExtendedConfigFileWatcher","updateSourceFile","updateWatchingWildcardDirectories","usingSingleLineStringWriter","utf16EncodeAsString","validateLocaleAndSetLanguage","version","versionMajorMinor","visitArray","visitCommaListElements","visitEachChild","visitFunctionBody","visitIterationBody","visitLexicalEnvironment","visitNode","visitNodes","visitNodes2","visitParameterList","walkUpBindingElementsAndPatterns","walkUpOuterExpressions","walkUpParenthesizedExpressions","walkUpParenthesizedTypes","walkUpParenthesizedTypesAndGetParentAndChild","whitespaceOrMapCommentRegExp","writeCommentRange","writeFile","writeFileEnsuringDirectories","zipWith","Comparison3","Map","array","callback","i","result","iter","value","iterator","f","initial","pos","arrayA","arrayB","assertEqual","push","input","element","n","predicate","startIndex","equalityComparer","text","charCodes","start","charCodeAt","count","len","slice","item","outIndex","mapFn","x","mapped","v","mapfn","iter2","map2","key","has","set","add","keyfn","previousKey","newKey","newValue","arr","pred","cb","array1","array2","selectIndex","_","deduplicateRelational","comparer","indices","stableSortIndices","sort","y","last2","deduplicated","index","deduplicateEquality","insert","compare","allowDuplicates","insertIndex","idx","splice","deduplicateSorted","next","fail","loopB","offsetA","offsetB","assertGreaterThanOrEqual","loopA","startA","to","xs","ys","toOffset","offset","from","end","toAdd","Array","at","assert","checkDefined","keySelector","keyComparer","low","high","middle","size","arguments","call","obj","names","getPrototypeOf","collection","values","t","args","arg","p","left","right","makeKey","makeValue","getGroupId","resultSelector","object","first2","second","fn","bind","multiMapAdd","remove","multiMapRemove","this","delete","items","elements","headIndex","isEmpty","enqueue","items2","dequeue","newLength","copyWithin","getHashCode","equals","multiMap","getElementIterator","hash","candidates","unorderedRemoveItemAt","action","entries","Symbol","toStringTag","test","getFunctionName","toLowerCase","fileNameLowerCaseRegExp","replace","AssertionLevel2","a","b","toUpperCase","compareComparableValues","init","mapper","Math","max","ignoreCase","uiComparerCaseSensitive","uiLocale","createUIStringComparer","createIntlCollatorStringComparer","locale","Intl","Collator","usage","sensitivity","numeric","compareWithCallback","getName","maximumLengthDifference","floor","bestCandidate","bestDistance","candidate","candidateName","abs","distance","levenshteinWithMax","s1","s2","previous","current","big","c1","minJ","ceil","maxJ","colMin","j","substitutionDistance","dist","temp","res","str","suffix","expectedPos","indexOf","fileName","ch","pop","unorderedRemoveFirstItemWhere","useCaseSensitiveFileNames2","prefix","pattern","substring","getPattern","matchedValue","longestMatchPrefixLength","lastIndexOf","substr","getCanonicalFileName","g","fs","lastResult","newItems","oldItems","inserted","deleted","unchanged","newIndex","oldIndex","newLen","oldLen","hasChanges","newItem","oldItem","compareResult","arrays","cartesianProductWorker","outer","inner","process","nextTick","browser","LogLevel3","Debug2","currentAssertionLevel","shouldLog","level","currentLogLevel","logMessage","s","loggingHost","log","_log","isDebugging","error","error2","warn","log2","trace2","assertionCache","shouldAssert","shouldAssertFunction","assertion","message","stackCrawlMark","captureStackTrace","expression","verboseDebugInfo","assertIsDefined","assertEachIsDefined","assertNever","member","formatSyntaxKind","kind","JSON","stringify","type","_value","func","Function","toString","match","exec","formatEnum","enumObject","isFlags","members","getEnumMembers","existing","enumMemberCache","sorted","remainingFlags","enumValue","enumName","join","getAssertionLevel","setAssertionLevel","prevAssertionLevel","cachedFunc","failBadSyntaxKind","node","msg","msg2","assertLessThan","assertLessThanOrEqual","checkEachDefined","assertEachNode","nodes","assertNode","assertNotNode","assertOptionalNode","assertOptionalToken","assertMissingNode","formatSymbol","symbol","escapedName","formatSymbolFlags","flags","declarations","formatNodeFlags","formatModifierFlags","formatTransformFlags","formatEmitFlags","formatTypeFlags","formatSignatureFlags","formatObjectFlags","formatFlowFlags","formatSnippetKind","formatScriptKind","formatNodeCheckFlags","formatRelationComparisonResult","formatCheckMode","mode","formatSignatureCheckMode","formatTypeFacts","facts","flowNodeProto","nodeArrayProto","isDebugInfoEnabled","attachFlowNodeDebugInfoWorker","flowNode","defineProperties","__tsDebuggerDisplay","flowHeader","__debugFlowFlags","__debugToString","formatControlFlowGraph","attachNodeArrayDebugInfoWorker","defaultValue","String","attachFlowNodeDebugInfo","setPrototypeOf","create","attachNodeArrayDebugInfo","enableDebugInfo","weakTypeTextMap","WeakMap","weakNodeTextMap","getSymbolConstructor","symbolHeader","remainingSymbolFlags","__debugFlags","getTypeConstructor","typeHeader","intrinsicName","debugIntrinsicName","negative","base10Value","objectFlags","remainingObjectFlags","__debugObjectFlags","__debugTypeToString","checker","typeToString","getSignatureConstructor","__debugSignatureToString","_a","signatureToString","nodeConstructors","getNodeConstructor","getIdentifierConstructor","getTokenConstructor","getSourceFileConstructor","ctor","__debugKind","__debugNodeFlags","__debugModifierFlags","__debugTransformFlags","transformFlags","__debugIsParseTreeNode","__debugEmitFlags","__debugGetText","includeTrivia","parseNode","sourceFile","formatVariance","varianceFlags","variance","DebugTypeMapper","debugInfo","source","sources","targets","mapper1","split","mapper2","BoxCharacter","nextDebugFlowId","getDebugFlowNodeId","BoxCharacter2","Connection","Connection2","links","edges","root","buildGraphNode","Set","renderFlowNode","circular","computeLevel","height","computeHeight","height2","child","getChildren","columnWidths","computeColumnWidths","columns","fill","computeLanes","lane","endLane","children","renderGraph","columnCount","laneCount","lanes","grid","connectors","connector","parents","getParents","parent2","column","above","fill2","writeLane","repeat","getBoxCharacter","edge","flowNode2","seen","graphNode","hasAntecedents","antecedent","buildGraphEdge","hasAntecedent","getNodeText","getHeader2","isFlowSwitchClause","clauses","switchStatement","clauseStart","clauseEnd","clause","caseBlock","hasNode","length2","attachDebugPrototypeIfDebug","printControlFlowGraph","console","versionRegExp","prereleaseRegExp","prereleasePartRegExp","buildRegExp","buildPartRegExp","numericIdentifierRegExp","_Version","constructor","major","minor","patch","prerelease","build2","tryParseComponents","build","prereleaseArray","buildArray","tryParse","compareTo","other","comparePrereleaseIdentifiers","leftIdentifier","rightIdentifier","leftIsNumeric","rightIsNumeric","increment","field","fields","zero","parseInt","_VersionRange","spec","_alternatives","parseRange","sets","range","version2","testDisjunction","alternatives","alternative","testAlternative","formatDisjunction","formatAlternative","logicalOrRegExp","whitespaceRegExp","partialRegExp","hyphenRegExp","rangeRegExp","trim","comparators","parseHyphen","simple","match2","parseComparator","parsePartial","isWildcard","leftResult","rightResult","createComparator","operator","with","part","operand","comparator","testComparator","cmp","formatComparator","nativePerformanceHooks","tryGetPerformanceHooks","tryGetPerformance","performance2","shouldWriteNativeEvents","hooks","performanceTime","timeOrigin","now","mark","measure","clearMarks","clearMeasures","nativePerformanceTime","perfHooks","performanceImpl","Date","createTimerIf","condition","measureName","startMarkName","endMarkName","createTimer","nullTimer","enterCount","enter","exit","disable","enable","forEachMark","forEachMeasure","getCount","getDuration","isEnabled","enabled","timeorigin","marks","counts","durations","markName","onProfilerEvent","previousDuration","duration","_time","system","cpuProfilingEnabled","debugMode","tracingEnabled2","traceCount","traceFd","typeCatalog","legendPath","legend","Phase","Phase2","startTracing2","tracingMode","traceDir","configFilePath","existsSync","mkdirSync","recursive","countPart","pid","tracePath","typesPath","openSync","meta","cat","ph","tid","writeSync","stopTracing","closeSync","dumpTypes","types","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","typesFd","recursionIdentityMap","numTypes","aliasSymbol","display","indexedAccessProperties","indexedAccessType","indexedAccessObjectType","objectType","indexedAccessIndexType","indexType","referenceProperties","referenceType","instantiatedType","typeArguments","resolvedTypeArguments","referenceLocation","getLocation","conditionalProperties","conditionalType","conditionalCheckType","checkType","conditionalExtendsType","extendsType","conditionalTrueType","resolvedTrueType","conditionalFalseType","resolvedFalseType","substitutionProperties","substitutionType","substitutionBaseType","baseType","constraintType","constraint","reverseMappedProperties","reverseMappedType","reverseMappedSourceType","reverseMappedMappedType","mappedType","reverseMappedConstraintType","recursionToken","evolvingArrayProperties","evolvingArrayType","evolvingArrayElementType","elementType","evolvingArrayFinalType","finalArrayType","recursionIdentity","getRecursionIdentity","descriptor","recursionId","isTuple","unionTypes","intersectionTypes","aliasTypeArguments","keyofType","destructuringPattern","firstDeclaration","recordType","instant","phase","writeEvent","eventStack","separateBeginAndEnd","time","results","writeStackEvent","popAll","endTime","sampleInterval","eventType","extras","file","path","indexFromOne","lc","line","character","dumpLegend","writeFileSync","SyntaxKind5","NodeFlags3","ModifierFlags3","JsxFlags2","RelationComparisonResult3","PredicateSemantics2","GeneratedIdentifierFlags2","RegularExpressionFlags2","TokenFlags2","FlowFlags2","CommentDirectiveType2","FileIncludeKind2","FilePreprocessingDiagnosticsKind2","EmitOnly4","StructureIsReused2","ExitStatus2","MemberOverrideStatus2","UnionReduction2","IntersectionFlags2","ContextFlags3","NodeBuilderFlags2","InternalNodeBuilderFlags2","TypeFormatFlags2","SymbolFormatFlags2","SymbolAccessibility2","TypePredicateKind2","TypeReferenceSerializationKind2","SymbolFlags3","CheckFlags2","InternalSymbolName2","NodeCheckFlags3","TypeFlags2","ObjectFlags3","VarianceFlags2","ElementFlags2","AccessFlags2","IndexFlags2","JsxReferenceKind2","SignatureKind2","SignatureFlags5","IndexKind2","TypeMapKind2","InferencePriority2","InferenceFlags2","Ternary2","AssignmentDeclarationKind2","DiagnosticCategory2","d","lowerCase","category","ModuleResolutionKind3","ModuleDetectionKind2","WatchFileKind3","WatchDirectoryKind3","PollingWatchKind3","ModuleKind3","JsxEmit3","ImportsNotUsedAsValues2","NewLineKind3","ScriptKind7","ScriptTarget12","LanguageVariant3","WatchDirectoryFlags3","CharacterCodes2","Extension2","TransformFlags3","SnippetKind3","EmitFlags3","InternalEmitFlags3","Classes","ForOf","Generators","Iteration","SpreadElements","RestElements","TaggedTemplates","DestructuringAssignment","BindingPatterns","ArrowFunctions","BlockScopedVariables","ObjectAssign","RegularExpressionFlagsUnicode","RegularExpressionFlagsSticky","Exponentiation","AsyncFunctions","ForAwaitOf","AsyncGenerators","AsyncIteration","ObjectSpreadRest","RegularExpressionFlagsDotAll","BindinglessCatch","BigInt","NullishCoalesce","OptionalChaining","LogicalAssignment","TopLevelAwait","ClassFields","PrivateNamesAndClassStaticBlocks","RegularExpressionFlagsHasIndices","ShebangComments","RegularExpressionFlagsUnicodeSets","UsingAndAwaitUsing","ClassAndClassElementDecorators","ExternalEmitHelpers2","EmitHint5","OuterExpressionKinds2","LexicalEnvironmentFlags2","ListFormat2","PragmaKindFlags2","optional","captureSpan","JSDocParsingMode6","data","acc","stackTraceLimit","FileWatcherEventKind2","PollingInterval3","host","createPollingIntervalBasedLevels","levels","Low","Medium","High","defaultChunkLevels","pollingChunkSize","pollWatchedFileQueue","queue","pollIndex","chunkSize","callbackOnWatchFileStat","definedValueCopyToIndex","canVisit","nextPollIndex","watchedFile","isClosed","fileChanged","onWatchedFileStat","createDynamicPriorityPollingWatchFile","watchedFiles","changedFilesInLastPoll","lowPollingIntervalQueue","createPollingIntervalQueue","mediumPollingIntervalQueue","highPollingIntervalQueue","watchFile2","defaultPollingInterval","unchangedPolls","mtime","addToPollingIntervalQueue","close","pollingInterval","pollScheduled","pollPollingIntervalQueue","_timeoutType","pollQueue","scheduleNextPoll","pollLowPollingIntervalQueue","onWatchFileStat","pollIndex2","addChangedFileToLowPollingIntervalQueue","scheduleNextPollIfNotAlreadyScheduled","pollingIntervalQueue","setTimeout","createUseFsEventsOnParentDirectoryWatchFile","fsWatch","getModifiedTime3","fsWatchWithTimestamp","fileWatcherCallbacks","fileTimestamps","dirWatchers","toCanonicalName","nonPollingWatchFile","_pollingInterval","fallbackOptions","filePath","dirPath","watcher","createDirectoryWatcher","dirName","eventName","relativeFileName","callbacks","currentModifiedTime","eventKind","existingTime","getTime","fileCallback","referenceCount","createSingleWatcherPerName","cache","createWatcher","toCanonicalFileName","param1","param2","param3","modifiedTime","oldTime","newTime","curSysLog","logger","createDirectoryWatcherSupportingRecursive","watchDirectory","useCaseSensitiveFileNames","getCurrentDirectory","getAccessibleSortedChildDirectories","fileSystemEntryExists","realpath","setTimeout2","clearTimeout","clearTimeout2","callbackCache","cacheToUpdateChildWatches","timerToUpdateChildWatches","filePathComparer","toCanonicalFilePath","options","link","directoryWatcher","refCount","isIgnoredPath","synchronousWatchDirectory","targetWatcher","invokeCallbacks","updateChildWatches","nonSyncUpdateChildWatches","parentWatcher","scheduleUpdateChildWatches","fileNames","onTimerToUpdateChildWatches","closeTargetWatcher","removeChildWatches","childWatches","callbackToAdd","directoryWatcher2","fileNameOrInvokeMap","invokeMap","rootDirName","toPathInLink","fileName2","done","existingChildWatches","childWatcher","parentDir","parentDirPath","newChildWatches","childFullName","createAndAddChildDirectoryWatcher","childName","addChildDirectoryWatcher","searchPath","isInPath","includes","isIgnoredByWatchOptions","FileSystemEntryKind2","pathToCheck","excludeDirectories","excludeFiles","createFsWatchCallbackForDirectoryWatcherCallback","directoryName","pollingWatchFileWorker","fsWatchWorker","fsSupportsRecursiveFsWatch","tscWatchFile","useNonPollingWatchers","tscWatchDirectory","inodeWatching","sysLog2","pollingWatches","fsWatches","fsWatchesRecursive","dynamicPollingWatchFile","fixedChunkSizePollingWatchFile","hostRecursiveDirectoryWatcher","hitSystemWatcherLimit","watchFile","nonRecursiveWatchDirectory","updateOptionsForWatchFile","useNonPollingWatchers2","generateWatchFileOptions","watchFileKind","pollingWatchFile","ensureDynamicPollingWatchFile","ensureFixedChunkSizePollingWatchFile","createFsWatchCallbackForFileWatcherCallback","_relativeFileName","createFixedChunkSizePollingWatchFile","watchFile3","fallbackPolling","defaultFallbackPolling","watchDirectoryOptions","updateOptionsForWatchDirectory","watchDirectoryKind","fileOrDirectory","entryKind","fallbackPollingInterval","fsWatchHandlingExistenceOnHost","lastDirectoryPartWithDirectorySeparator","lastDirectoryPart","watchPresentFileSystemEntry","watchMissingFileSystemEntry","updateWatcher","watchPresentFileSystemEntryWithFsWatchFile","presentWatcher","fsWatchWorkerHandlingTimestamp","callbackChangingToMissingFileSystemEntry","on","event","relativeName","originalRelativeName","createFileWatcherCallback","_fileName","sys2","originalWriteFile","writeBom","path2","data2","writeByteOrderMark","createDirectory","directoryExists","getNodeSystem","nativePattern","_fs","_path","_os","_crypto","activeSession","profilePath","isMacOs","platform","isLinuxOrMacOs","statSyncOptions","throwIfNoEntry","isFileSystemCaseSensitive","fileExists","swapCase","up","__filename","fsRealpath","realpathSync","native","fsRealPathHandlingLongPath","executingFilePath","dirname","cwd","fsWatchFileWorker","persistent","interval","unwatchFile","curr","prev","isPreviouslyDeleted","watch","getAccessibleFileSystemEntries","directories","env","TSC_WATCHFILE","TSC_NONPOLLING_WATCHER","TSC_WATCHDIRECTORY","nodeSystem","argv","newLine","EOL","write","stdout","getWidthOfTerminal","writeOutputIsTTY","isTTY","readFile","_encoding","buffer","readFileSync","writeFile2","fd","preferNonRecursiveWatch","getExecutingFilePath","getDirectories","getEnvironmentVariable","readDirectory","extensions","excludes","depth","setModifiedTime","utimesSync","deleteFile","unlinkSync","createHash","createSHA256Hash","getMemoryUsage","gc","memoryUsage","heapUsed","getFileSize","stat","statSync","isFile","exitCode","disableCPUProfiler","enableCPUProfiler","inspector","Session","session","connect","post","execArgv","NODE_INSPECTOR_IPC","VSCODE_INSPECTOR_OPTIONS","recordreplay","tryEnableSourceMapsForHost","clearScreen","setBlocking","handle","_handle","Buffer","require","baseDir","moduleName","modulePath","err","profile","isDirectory","toISOString","cleanupPaths","externalFileCounter","remappedPaths","normalizedDir","fileUrlRoot","callFrame","url","disconnect","readdirSync","withFileTypes","files","dirent","entry","isSymbolicLink","update","digest","setCustomPollingValues","pollingIntervalChanged","setCustomLevels","baseVariable","customLevels","getCustomLevels","setLevel","setCustomLevel","customLevel","getLevel","envVar","Number","getCustomPollingBasedLevels","defaultLevels","urlSchemeSeparator","backslashRegExp","charCode","getEncodedRootLength","rootLength","extension","isVolumeCharacter","ch0","p1","ch2","schemeEnd","authorityStart","authorityEnd","scheme","authority","volumeSeparatorEnd","getFileUrlVolumeSeparatorEnd","stringEqualityComparer","pathExtension","getAnyExtensionFromPathWorker","baseFileName","extensionIndex","currentDirectory","pathComponents","rest","pathComponents2","components","reduced","component","paths","relativePath","simpleNormalized","simpleNormalizePath","normalized","segmentStart","normalizedUpTo","seenNonDotDotSegment","segmentEnd","segmentLength","lastSlash","relativePathSegmentRegExp","simplified","getPathWithoutRoot","basePath","ext","pathext","newExtension","declarationExtension","comparePathsWorker","componentComparer","aRoot","bRoot","aRest","bRest","aComponents","bComponents","sharedLength","result2","parentComponents","childComponents","componentEqualityComparer","canonicalFileName","canonicalDirectoryName","getPathComponentsRelativeTo","fromComponents","toComponents","relative","fromDirectory","getCanonicalFileNameOrIgnoreCase","absoluteOrRelativePath","directoryPathOrUrl","relativeOrAbsolutePath","isAbsolutePathAnUrl","firstComponent","charAt","directory","parentPath","diag","reportsUnnecessary","elidedInCompatabilityPyramid","reportsDeprecated","Unterminated_string_literal","Identifier_expected","_0_expected","A_file_cannot_have_a_reference_to_itself","The_parser_expected_to_find_a_1_to_match_the_0_token_here","Trailing_comma_not_allowed","Asterisk_Slash_expected","An_element_access_expression_should_take_an_argument","Unexpected_token","A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma","A_rest_parameter_must_be_last_in_a_parameter_list","Parameter_cannot_have_question_mark_and_initializer","A_required_parameter_cannot_follow_an_optional_parameter","An_index_signature_cannot_have_a_rest_parameter","An_index_signature_parameter_cannot_have_an_accessibility_modifier","An_index_signature_parameter_cannot_have_a_question_mark","An_index_signature_parameter_cannot_have_an_initializer","An_index_signature_must_have_a_type_annotation","An_index_signature_parameter_must_have_a_type_annotation","readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature","An_index_signature_cannot_have_a_trailing_comma","Accessibility_modifier_already_seen","_0_modifier_must_precede_1_modifier","_0_modifier_already_seen","_0_modifier_cannot_appear_on_class_elements_of_this_kind","super_must_be_followed_by_an_argument_list_or_member_access","Only_ambient_modules_can_use_quoted_names","Statements_are_not_allowed_in_ambient_contexts","A_declare_modifier_cannot_be_used_in_an_already_ambient_context","Initializers_are_not_allowed_in_ambient_contexts","_0_modifier_cannot_be_used_in_an_ambient_context","_0_modifier_cannot_be_used_here","_0_modifier_cannot_appear_on_a_module_or_namespace_element","Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier","A_rest_parameter_cannot_be_optional","A_rest_parameter_cannot_have_an_initializer","A_set_accessor_must_have_exactly_one_parameter","A_set_accessor_cannot_have_an_optional_parameter","A_set_accessor_parameter_cannot_have_an_initializer","A_set_accessor_cannot_have_rest_parameter","A_get_accessor_cannot_have_parameters","Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value","Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher","The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member","A_promise_must_have_a_then_method","The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback","Enum_member_must_have_initializer","Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method","An_export_assignment_cannot_be_used_in_a_namespace","The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0","The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type","In_ambient_enum_declarations_member_initializer_must_be_constant_expression","Unexpected_token_A_constructor_method_accessor_or_property_was_expected","Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces","_0_modifier_cannot_appear_on_a_type_member","_0_modifier_cannot_appear_on_an_index_signature","A_0_modifier_cannot_be_used_with_an_import_declaration","Invalid_reference_directive_syntax","_0_modifier_cannot_appear_on_a_constructor_declaration","_0_modifier_cannot_appear_on_a_parameter","Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement","Type_parameters_cannot_appear_on_a_constructor_declaration","Type_annotation_cannot_appear_on_a_constructor_declaration","An_accessor_cannot_have_type_parameters","A_set_accessor_cannot_have_a_return_type_annotation","An_index_signature_must_have_exactly_one_parameter","_0_list_cannot_be_empty","Type_parameter_list_cannot_be_empty","Type_argument_list_cannot_be_empty","Invalid_use_of_0_in_strict_mode","with_statements_are_not_allowed_in_strict_mode","delete_cannot_be_called_on_an_identifier_in_strict_mode","for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules","A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement","A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement","The_left_hand_side_of_a_for_of_statement_may_not_be_async","Jump_target_cannot_cross_function_boundary","A_return_statement_can_only_be_used_within_a_function_body","Expression_expected","Type_expected","Private_field_0_must_be_declared_in_an_enclosing_class","A_default_clause_cannot_appear_more_than_once_in_a_switch_statement","Duplicate_label_0","A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement","A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement","An_object_literal_cannot_have_multiple_properties_with_the_same_name","An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name","An_object_literal_cannot_have_property_and_accessor_with_the_same_name","An_export_assignment_cannot_have_modifiers","Octal_literals_are_not_allowed_Use_the_syntax_0","Variable_declaration_list_cannot_be_empty","Digit_expected","Hexadecimal_digit_expected","Unexpected_end_of_text","Invalid_character","Declaration_or_statement_expected","Statement_expected","case_or_default_expected","Property_or_signature_expected","Enum_member_expected","Variable_declaration_expected","Argument_expression_expected","Property_assignment_expected","Expression_or_comma_expected","Parameter_declaration_expected","Type_parameter_declaration_expected","Type_argument_expected","String_literal_expected","Line_break_not_permitted_here","or_expected","or_JSX_element_expected","Declaration_expected","Import_declarations_in_a_namespace_cannot_reference_a_module","Cannot_use_imports_exports_or_module_augmentations_when_module_is_none","File_name_0_differs_from_already_included_file_name_1_only_in_casing","_0_declarations_must_be_initialized","_0_declarations_can_only_be_declared_inside_a_block","Unterminated_template_literal","Unterminated_regular_expression_literal","An_object_member_cannot_be_declared_optional","A_yield_expression_is_only_allowed_in_a_generator_body","Computed_property_names_are_not_allowed_in_enums","A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type","A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type","A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type","A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type","A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type","A_comma_expression_is_not_allowed_in_a_computed_property_name","extends_clause_already_seen","extends_clause_must_precede_implements_clause","Classes_can_only_extend_a_single_class","implements_clause_already_seen","Interface_declaration_cannot_have_implements_clause","Binary_digit_expected","Octal_digit_expected","Unexpected_token_expected","Property_destructuring_pattern_expected","Array_element_destructuring_pattern_expected","A_destructuring_declaration_must_have_an_initializer","An_implementation_cannot_be_declared_in_ambient_contexts","Modifiers_cannot_appear_here","Merge_conflict_marker_encountered","A_rest_element_cannot_have_an_initializer","A_parameter_property_may_not_be_declared_using_a_binding_pattern","Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement","The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer","The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer","An_import_declaration_cannot_have_modifiers","Module_0_has_no_default_export","An_export_declaration_cannot_have_modifiers","Export_declarations_are_not_permitted_in_a_namespace","export_Asterisk_does_not_re_export_a_default","Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified","Catch_clause_variable_cannot_have_an_initializer","An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive","Unterminated_Unicode_escape_sequence","Line_terminator_not_permitted_before_arrow","Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead","Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead","Re_exporting_a_type_when_0_is_enabled_requires_using_export_type","Decorators_are_not_valid_here","Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name","Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0","Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode","A_class_declaration_without_the_default_modifier_must_have_a_name","Identifier_expected_0_is_a_reserved_word_in_strict_mode","Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode","Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode","Invalid_use_of_0_Modules_are_automatically_in_strict_mode","Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules","Export_assignment_is_not_supported_when_module_flag_is_system","Generators_are_not_allowed_in_an_ambient_context","An_overload_signature_cannot_be_declared_as_a_generator","_0_tag_already_specified","Signature_0_must_be_a_type_predicate","Cannot_find_parameter_0","Type_predicate_0_is_not_assignable_to_1","Parameter_0_is_not_in_the_same_position_as_parameter_1","A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods","A_type_predicate_cannot_reference_a_rest_parameter","A_type_predicate_cannot_reference_element_0_in_a_binding_pattern","An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration","An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module","An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module","An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file","A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module","The_return_type_of_a_property_decorator_function_must_be_either_void_or_any","The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any","Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression","Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression","Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression","Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression","abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration","_0_modifier_cannot_be_used_with_1_modifier","Abstract_methods_can_only_appear_within_an_abstract_class","Method_0_cannot_have_an_implementation_because_it_is_marked_abstract","An_interface_property_cannot_have_an_initializer","A_type_literal_property_cannot_have_an_initializer","A_class_member_cannot_have_the_0_keyword","A_decorator_can_only_decorate_a_method_implementation_not_an_overload","Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5","Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode","Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode","Abstract_properties_can_only_appear_within_an_abstract_class","A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference","A_definite_assignment_assertion_is_not_permitted_in_this_context","A_required_element_cannot_follow_an_optional_element","A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration","Module_0_can_only_be_default_imported_using_the_1_flag","Keywords_cannot_contain_escape_characters","Already_included_file_name_0_differs_from_file_name_1_only_in_casing","Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module","Declarations_with_initializers_cannot_also_have_definite_assignment_assertions","Declarations_with_definite_assignment_assertions_must_also_have_type_annotations","A_rest_element_cannot_follow_another_rest_element","An_optional_element_cannot_follow_a_rest_element","Property_0_cannot_have_an_initializer_because_it_is_marked_abstract","An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type","Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled","Decorator_function_return_type_0_is_not_assignable_to_type_1","Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any","A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled","_0_modifier_cannot_appear_on_a_type_parameter","_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias","accessor_modifier_can_only_appear_on_a_property_declaration","An_accessor_property_cannot_be_declared_optional","_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class","The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0","The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0","Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement","Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead","An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type","An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration","An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type","An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration","ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax","A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled","An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled","_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported","_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default","_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported","_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default","ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve","This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled","ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript","with_statements_are_not_allowed_in_an_async_function_block","await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules","The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level","Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern","The_body_of_an_if_statement_cannot_be_the_empty_statement","Global_module_exports_may_only_appear_in_module_files","Global_module_exports_may_only_appear_in_declaration_files","Global_module_exports_may_only_appear_at_top_level","A_parameter_property_cannot_be_declared_using_a_rest_parameter","An_abstract_accessor_cannot_have_an_implementation","A_default_export_can_only_be_used_in_an_ECMAScript_style_module","Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member","Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member","Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member","Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext","Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve","Argument_of_dynamic_import_cannot_be_spread_element","This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments","String_literal_with_double_quotes_expected","Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal","_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0","A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly","A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly","A_variable_whose_type_is_a_unique_symbol_type_must_be_const","unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name","unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement","unique_symbol_types_are_not_allowed_here","An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead","infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type","Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here","Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0","Class_constructor_may_not_be_an_accessor","The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext","A_label_is_not_allowed_here","An_expression_of_type_void_cannot_be_tested_for_truthiness","This_parameter_is_not_allowed_with_use_strict_directive","use_strict_directive_cannot_be_used_with_non_simple_parameter_list","Non_simple_parameter_declared_here","use_strict_directive_used_here","Print_the_final_configuration_instead_of_building","An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal","A_bigint_literal_cannot_use_exponential_notation","A_bigint_literal_must_be_an_integer","readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types","A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals","Did_you_mean_to_mark_this_function_as_async","An_enum_member_name_must_be_followed_by_a_or","Tagged_template_expressions_are_not_permitted_in_an_optional_chain","Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here","Type_0_does_not_satisfy_the_expected_type_1","_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type","_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type","A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both","Convert_to_type_only_export","Convert_all_re_exported_types_to_type_only_exports","Split_into_two_separate_import_declarations","Split_all_invalid_type_only_imports","Class_constructor_may_not_be_a_generator","Did_you_mean_0","await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module","_0_was_imported_here","_0_was_exported_here","Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher","An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type","An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type","Unexpected_token_Did_you_mean_or_rbrace","Unexpected_token_Did_you_mean_or_gt","Function_type_notation_must_be_parenthesized_when_used_in_a_union_type","Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type","Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type","Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type","_0_is_not_allowed_as_a_variable_declaration_name","_0_is_not_allowed_as_a_parameter_name","An_import_alias_cannot_use_import_type","Imported_via_0_from_file_1","Imported_via_0_from_file_1_with_packageId_2","Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions","Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions","Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions","Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions","File_is_included_via_import_here","Referenced_via_0_from_file_1","File_is_included_via_reference_here","Type_library_referenced_via_0_from_file_1","Type_library_referenced_via_0_from_file_1_with_packageId_2","File_is_included_via_type_library_reference_here","Library_referenced_via_0_from_file_1","File_is_included_via_library_reference_here","Matched_by_include_pattern_0_in_1","File_is_matched_by_include_pattern_specified_here","Part_of_files_list_in_tsconfig_json","File_is_matched_by_files_list_specified_here","Output_from_referenced_project_0_included_because_1_specified","Output_from_referenced_project_0_included_because_module_is_specified_as_none","File_is_output_from_referenced_project_specified_here","Source_from_referenced_project_0_included_because_1_specified","Source_from_referenced_project_0_included_because_module_is_specified_as_none","File_is_source_from_referenced_project_specified_here","Entry_point_of_type_library_0_specified_in_compilerOptions","Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1","File_is_entry_point_of_type_library_specified_here","Entry_point_for_implicit_type_library_0","Entry_point_for_implicit_type_library_0_with_packageId_1","Library_0_specified_in_compilerOptions","File_is_library_specified_here","Default_library","Default_library_for_target_0","File_is_default_library_for_target_specified_here","Root_file_specified_for_compilation","File_is_output_of_project_reference_source_0","File_redirects_to_file_0","The_file_is_in_the_program_because_Colon","for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module","Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher","Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters","Unexpected_keyword_or_identifier","Unknown_keyword_or_identifier_Did_you_mean_0","Decorators_must_precede_the_name_and_all_keywords_of_property_declarations","Namespace_must_be_given_a_name","Interface_must_be_given_a_name","Type_alias_must_be_given_a_name","Variable_declaration_not_allowed_at_this_location","Cannot_start_a_function_call_in_a_type_annotation","Expected_for_property_initializer","Module_declaration_names_may_only_use_or_quoted_strings","_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled","Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed","Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments","Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression","resolution_mode_should_be_either_require_or_import","resolution_mode_can_only_be_set_for_type_only_imports","resolution_mode_is_the_only_valid_key_for_type_import_assertions","Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require","Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk","File_is_ECMAScript_module_because_0_has_field_type_with_value_module","File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module","File_is_CommonJS_module_because_0_does_not_have_field_type","File_is_CommonJS_module_because_package_json_was_not_found","resolution_mode_is_the_only_valid_key_for_type_import_attributes","Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require","The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output","Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead","catch_or_finally_expected","An_import_declaration_can_only_be_used_at_the_top_level_of_a_module","An_export_declaration_can_only_be_used_at_the_top_level_of_a_module","Control_what_method_is_used_to_detect_module_format_JS_files","auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules","An_instantiation_expression_cannot_be_followed_by_a_property_access","Identifier_or_string_literal_expected","The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead","To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module","To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1","To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0","To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module","_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled","_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled","Decorator_used_before_export_here","Octal_escape_sequences_are_not_allowed_Use_the_syntax_0","Escape_sequence_0_is_not_allowed","Decimals_with_leading_zeros_are_not_allowed","File_appears_to_be_binary","_0_modifier_cannot_appear_on_a_using_declaration","_0_declarations_may_not_have_binding_patterns","The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration","The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration","_0_modifier_cannot_appear_on_an_await_using_declaration","Identifier_string_literal_or_number_literal_expected","Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator","Invalid_syntax_in_decorator","Unknown_regular_expression_flag","Duplicate_regular_expression_flag","This_regular_expression_flag_is_only_available_when_targeting_0_or_later","The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously","Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later","Subpattern_flags_must_be_present_when_there_is_a_minus_sign","Incomplete_quantifier_Digit_expected","Numbers_out_of_order_in_quantifier","There_is_nothing_available_for_repetition","Unexpected_0_Did_you_mean_to_escape_it_with_backslash","This_regular_expression_flag_cannot_be_toggled_within_a_subpattern","k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets","q_is_only_available_inside_character_class","c_must_be_followed_by_an_ASCII_letter","Undetermined_character_escape","Expected_a_capturing_group_name","Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other","A_character_class_range_must_not_be_bounded_by_another_character_class","Range_out_of_order_in_character_class","Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class","Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead","Expected_a_class_set_operand","q_must_be_followed_by_string_alternatives_enclosed_in_braces","A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash","Expected_a_Unicode_property_name","Unknown_Unicode_property_name","Expected_a_Unicode_property_value","Unknown_Unicode_property_value","Expected_a_Unicode_property_name_or_value","Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set","Unknown_Unicode_property_name_or_value","Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set","_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces","There_is_no_capturing_group_named_0_in_this_regular_expression","This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression","This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression","This_character_cannot_be_escaped_in_a_regular_expression","Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead","Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class","Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set","A_bigint_literal_cannot_be_used_as_a_property_name","A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead","Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute","Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute","Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0","Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0","using_declarations_are_not_allowed_in_ambient_contexts","await_using_declarations_are_not_allowed_in_ambient_contexts","The_types_of_0_are_incompatible_between_these_types","The_types_returned_by_0_are_incompatible_between_these_types","Call_signature_return_types_0_and_1_are_incompatible","Construct_signature_return_types_0_and_1_are_incompatible","Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1","Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1","The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement","The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement","This_type_parameter_might_need_an_extends_0_constraint","The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate","The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate","Add_extends_constraint","Add_extends_constraint_to_all_type_parameters","Duplicate_identifier_0","Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor","Static_members_cannot_reference_class_type_parameters","Circular_definition_of_import_alias_0","Cannot_find_name_0","Module_0_has_no_exported_member_1","File_0_is_not_a_module","Cannot_find_module_0_or_its_corresponding_type_declarations","Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity","An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements","Type_0_recursively_references_itself_as_a_base_type","Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function","An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members","Type_parameter_0_has_a_circular_constraint","Generic_type_0_requires_1_type_argument_s","Type_0_is_not_generic","Global_type_0_must_be_a_class_or_interface_type","Global_type_0_must_have_1_type_parameter_s","Cannot_find_global_type_0","Named_property_0_of_types_1_and_2_are_not_identical","Interface_0_cannot_simultaneously_extend_types_1_and_2","Excessive_stack_depth_comparing_types_0_and_1","Type_0_is_not_assignable_to_type_1","Cannot_redeclare_exported_variable_0","Property_0_is_missing_in_type_1","Property_0_is_private_in_type_1_but_not_in_type_2","Types_of_property_0_are_incompatible","Property_0_is_optional_in_type_1_but_required_in_type_2","Types_of_parameters_0_and_1_are_incompatible","Index_signature_for_type_0_is_missing_in_type_1","_0_and_1_index_signatures_are_incompatible","this_cannot_be_referenced_in_a_module_or_namespace_body","this_cannot_be_referenced_in_current_location","this_cannot_be_referenced_in_a_static_property_initializer","super_can_only_be_referenced_in_a_derived_class","super_cannot_be_referenced_in_constructor_arguments","Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors","super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class","Property_0_does_not_exist_on_type_1","Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword","Property_0_is_private_and_only_accessible_within_class_1","This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0","Type_0_does_not_satisfy_the_constraint_1","Argument_of_type_0_is_not_assignable_to_parameter_of_type_1","Call_target_does_not_contain_any_signatures","Untyped_function_calls_may_not_accept_type_arguments","Value_of_type_0_is_not_callable_Did_you_mean_to_include_new","This_expression_is_not_callable","Only_a_void_function_can_be_called_with_the_new_keyword","This_expression_is_not_constructable","Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first","Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1","This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found","A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value","An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type","The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access","The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter","The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method","The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type","The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type","The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access","Operator_0_cannot_be_applied_to_types_1_and_2","Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined","This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap","Type_parameter_name_cannot_be_0","A_parameter_property_is_only_allowed_in_a_constructor_implementation","A_rest_parameter_must_be_of_an_array_type","A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation","Parameter_0_cannot_reference_itself","Parameter_0_cannot_reference_identifier_1_declared_after_it","Duplicate_index_signature_for_type_0","Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties","A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers","Constructors_for_derived_classes_must_contain_a_super_call","A_get_accessor_must_return_a_value","Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties","Overload_signatures_must_all_be_exported_or_non_exported","Overload_signatures_must_all_be_ambient_or_non_ambient","Overload_signatures_must_all_be_public_private_or_protected","Overload_signatures_must_all_be_optional_or_required","Function_overload_must_be_static","Function_overload_must_not_be_static","Function_implementation_name_must_be_0","Constructor_implementation_is_missing","Function_implementation_is_missing_or_not_immediately_following_the_declaration","Multiple_constructor_implementations_are_not_allowed","Duplicate_function_implementation","This_overload_signature_is_not_compatible_with_its_implementation_signature","Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local","Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters","Declaration_name_conflicts_with_built_in_global_identifier_0","constructor_cannot_be_used_as_a_parameter_property_name","Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference","Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference","A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers","Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference","Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2","The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation","The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any","The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access","The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0","Setters_cannot_return_a_value","Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class","The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any","Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target","Property_0_of_type_1_is_not_assignable_to_2_index_type_3","_0_index_type_1_is_not_assignable_to_2_index_type_3","Class_name_cannot_be_0","Class_0_incorrectly_extends_base_class_1","Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2","Class_static_side_0_incorrectly_extends_base_class_static_side_1","Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1","Types_of_construct_signatures_are_incompatible","Class_0_incorrectly_implements_interface_1","A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members","Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor","Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function","Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function","Interface_name_cannot_be_0","All_declarations_of_0_must_have_identical_type_parameters","Interface_0_incorrectly_extends_interface_1","Enum_name_cannot_be_0","In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element","A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged","A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged","Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces","Ambient_module_declaration_cannot_specify_relative_module_name","Module_0_is_hidden_by_a_local_declaration_with_the_same_name","Import_name_cannot_be_0","Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name","Import_declaration_conflicts_with_local_declaration_of_0","Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module","Types_have_separate_declarations_of_a_private_property_0","Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2","Property_0_is_protected_in_type_1_but_public_in_type_2","Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses","Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2","The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead","Block_scoped_variable_0_used_before_its_declaration","Class_0_used_before_its_declaration","Enum_0_used_before_its_declaration","Cannot_redeclare_block_scoped_variable_0","An_enum_member_cannot_have_a_numeric_name","Variable_0_is_used_before_being_assigned","Type_alias_0_circularly_references_itself","Type_alias_name_cannot_be_0","An_AMD_module_cannot_have_multiple_name_assignments","Module_0_declares_1_locally_but_it_is_not_exported","Module_0_declares_1_locally_but_it_is_exported_as_2","Type_0_is_not_an_array_type","A_rest_element_must_be_last_in_a_destructuring_pattern","A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature","A_computed_property_name_must_be_of_type_string_number_symbol_or_any","this_cannot_be_referenced_in_a_computed_property_name","super_cannot_be_referenced_in_a_computed_property_name","A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type","Cannot_find_global_value_0","The_0_operator_cannot_be_applied_to_type_symbol","Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher","Enum_declarations_must_all_be_const_or_non_const","const_enum_member_initializers_must_be_constant_expressions","const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query","A_const_enum_member_can_only_be_accessed_using_a_string_literal","const_enum_member_initializer_was_evaluated_to_a_non_finite_value","const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN","let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations","Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1","The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation","Export_declaration_conflicts_with_exported_declaration_of_0","The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access","Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator","An_iterator_must_have_a_next_method","The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property","The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern","Cannot_redeclare_identifier_0_in_catch_clause","Tuple_type_0_of_length_1_has_no_element_at_index_2","Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher","Type_0_is_not_an_array_type_or_a_string_type","The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression","This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export","Module_0_uses_export_and_cannot_be_used_with_export_Asterisk","An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments","A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments","A_rest_element_cannot_contain_a_binding_pattern","_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation","Cannot_find_namespace_0","Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator","A_generator_cannot_have_a_void_type_annotation","_0_is_referenced_directly_or_indirectly_in_its_own_base_expression","Type_0_is_not_a_constructor_function_type","No_base_constructor_has_the_specified_number_of_type_arguments","Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members","Base_constructors_must_all_have_the_same_return_type","Cannot_create_an_instance_of_an_abstract_class","Overload_signatures_must_all_be_abstract_or_non_abstract","Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression","A_tuple_type_cannot_be_indexed_with_a_negative_value","Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2","All_declarations_of_an_abstract_method_must_be_consecutive","Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type","A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard","An_async_iterator_must_have_a_next_method","Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions","The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method","yield_expressions_cannot_be_used_in_a_parameter_initializer","await_expressions_cannot_be_used_in_a_parameter_initializer","A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface","The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary","A_module_cannot_have_multiple_default_exports","Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions","Property_0_is_incompatible_with_index_signature","Object_is_possibly_null","Object_is_possibly_undefined","Object_is_possibly_null_or_undefined","A_function_returning_never_cannot_have_a_reachable_end_point","Type_0_cannot_be_used_to_index_type_1","Type_0_has_no_matching_index_signature_for_type_1","Type_0_cannot_be_used_as_an_index_type","Cannot_assign_to_0_because_it_is_not_a_variable","Cannot_assign_to_0_because_it_is_a_read_only_property","Index_signature_in_type_0_only_permits_reading","Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference","Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference","A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any","The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property","Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator","Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator","Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later","Property_0_does_not_exist_on_type_1_Did_you_mean_2","Cannot_find_name_0_Did_you_mean_1","Computed_values_are_not_permitted_in_an_enum_with_string_valued_members","Expected_0_arguments_but_got_1","Expected_at_least_0_arguments_but_got_1","A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter","Expected_0_type_arguments_but_got_1","Type_0_has_no_properties_in_common_with_type_1","Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it","Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2","Base_class_expressions_cannot_reference_class_type_parameters","The_containing_function_or_module_body_is_too_large_for_control_flow_analysis","Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor","Property_0_is_used_before_being_assigned","A_rest_element_cannot_have_a_property_name","Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations","Property_0_may_not_exist_on_type_1_Did_you_mean_2","Could_not_find_name_0_Did_you_mean_1","Object_is_of_type_unknown","A_rest_element_type_must_be_an_array_type","No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments","Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead","Return_type_annotation_circularly_references_itself","Unused_ts_expect_error_directive","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha","Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later","Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom","_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later","Cannot_assign_to_0_because_it_is_a_constant","Type_instantiation_is_excessively_deep_and_possibly_infinite","Expression_produces_a_union_type_that_is_too_complex_to_represent","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig","This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag","_0_can_only_be_imported_by_using_a_default_import","_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import","_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import","_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import","JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist","Property_0_in_type_1_is_not_assignable_to_type_2","JSX_element_type_0_does_not_have_any_construct_or_call_signatures","Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property","JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property","The_global_type_JSX_0_may_not_have_more_than_one_property","JSX_spread_child_must_be_an_array_type","_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property","_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor","Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration","Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead","Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead","Type_of_property_0_circularly_references_itself_in_mapped_type_1","_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import","_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import","Source_has_0_element_s_but_target_requires_1","Source_has_0_element_s_but_target_allows_only_1","Target_requires_0_element_s_but_source_may_have_fewer","Target_allows_only_0_element_s_but_source_may_have_more","Source_provides_no_match_for_required_element_at_position_0_in_target","Source_provides_no_match_for_variadic_element_at_position_0_in_target","Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target","Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target","Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target","Cannot_assign_to_0_because_it_is_an_enum","Cannot_assign_to_0_because_it_is_a_class","Cannot_assign_to_0_because_it_is_a_function","Cannot_assign_to_0_because_it_is_a_namespace","Cannot_assign_to_0_because_it_is_an_import","JSX_property_access_expressions_cannot_include_JSX_namespace_names","_0_index_signatures_are_incompatible","Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable","Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation","Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types","Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator","React_components_cannot_include_JSX_namespace_names","Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity","Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more","A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums","Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead","Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1","Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2","Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more","Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1","JSX_expressions_must_have_one_parent_element","Type_0_provides_no_match_for_the_signature_1","super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher","super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions","Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module","Cannot_find_name_0_Did_you_mean_the_static_member_1_0","Cannot_find_name_0_Did_you_mean_the_instance_member_this_0","Invalid_module_name_in_augmentation_module_0_cannot_be_found","Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented","Exports_and_export_assignments_are_not_permitted_in_module_augmentations","Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module","export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible","Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations","Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context","Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity","Cannot_assign_a_0_constructor_type_to_a_1_constructor_type","Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration","Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration","Cannot_extend_a_class_0_Class_constructor_is_marked_as_private","Accessors_must_both_be_abstract_or_non_abstract","A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type","Type_0_is_not_comparable_to_type_1","A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void","A_0_parameter_must_be_the_first_parameter","A_constructor_cannot_have_a_this_parameter","this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation","The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1","The_this_types_of_each_signature_are_incompatible","_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead","All_declarations_of_0_must_have_identical_modifiers","Cannot_find_type_definition_file_for_0","Cannot_extend_an_interface_0_Did_you_mean_implements","_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0","_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible","_0_only_refers_to_a_type_but_is_being_used_as_a_value_here","Namespace_0_has_no_exported_member_1","Left_side_of_comma_operator_is_unused_and_has_no_side_effects","The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead","An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option","Spread_types_may_only_be_created_from_object_types","Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1","Rest_types_may_only_be_created_from_object_types","The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access","_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here","The_operand_of_a_delete_operator_must_be_a_property_reference","The_operand_of_a_delete_operator_cannot_be_a_read_only_property","An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option","Required_type_parameters_may_not_follow_optional_type_parameters","Generic_type_0_requires_between_1_and_2_type_arguments","Cannot_use_namespace_0_as_a_value","Cannot_use_namespace_0_as_a_type","_0_are_specified_twice_The_attribute_named_0_will_be_overwritten","A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option","A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option","Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1","The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context","Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor","Type_parameter_0_has_a_circular_default","Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2","Duplicate_property_0","Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated","Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass","Cannot_invoke_an_object_which_is_possibly_null","Cannot_invoke_an_object_which_is_possibly_undefined","Cannot_invoke_an_object_which_is_possibly_null_or_undefined","_0_has_no_exported_member_named_1_Did_you_mean_2","Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0","Cannot_find_lib_definition_for_0","Cannot_find_lib_definition_for_0_Did_you_mean_1","_0_is_declared_here","Property_0_is_used_before_its_initialization","An_arrow_function_cannot_have_a_this_parameter","Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String","Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension","Property_0_was_also_declared_here","Are_you_missing_a_semicolon","Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1","Operator_0_cannot_be_applied_to_type_1","BigInt_literals_are_not_available_when_targeting_lower_than_ES2020","An_outer_value_of_this_is_shadowed_by_this_container","Type_0_is_missing_the_following_properties_from_type_1_Colon_2","Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more","Property_0_is_missing_in_type_1_but_required_in_type_2","The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary","No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments","Type_parameter_defaults_can_only_reference_previously_declared_type_parameters","This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided","This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided","_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2","Cannot_access_ambient_const_enums_when_0_is_enabled","_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0","The_implementation_signature_is_declared_here","Circularity_originates_in_type_at_this_location","The_first_export_default_is_here","Another_export_default_is_here","super_may_not_use_type_arguments","No_constituent_of_type_0_is_callable","Not_all_constituents_of_type_0_are_callable","Type_0_has_no_call_signatures","Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other","No_constituent_of_type_0_is_constructable","Not_all_constituents_of_type_0_are_constructable","Type_0_has_no_construct_signatures","Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other","Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0","Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0","Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0","Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0","The_0_property_of_an_iterator_must_be_a_method","The_0_property_of_an_async_iterator_must_be_a_method","No_overload_matches_this_call","The_last_overload_gave_the_following_error","The_last_overload_is_declared_here","Overload_0_of_1_2_gave_the_following_error","Did_you_forget_to_use_await","This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead","Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation","Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name","The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access","The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access","The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access","The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access","The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access","_0_needs_an_explicit_type_annotation","_0_is_specified_more_than_once_so_this_usage_will_be_overwritten","get_and_set_accessors_cannot_declare_this_parameters","This_spread_always_overwrites_this_property","_0_cannot_be_used_as_a_JSX_component","Its_return_type_0_is_not_a_valid_JSX_element","Its_instance_type_0_is_not_a_valid_JSX_element","Its_element_type_0_is_not_a_valid_JSX_element","The_operand_of_a_delete_operator_must_be_optional","Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later","Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option","The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible","Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise","The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types","It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked","A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract","The_declaration_was_marked_as_deprecated_here","Type_produces_a_tuple_type_that_is_too_large_to_represent","Expression_produces_a_tuple_type_that_is_too_large_to_represent","This_condition_will_always_return_true_since_this_0_is_always_defined","Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher","Cannot_assign_to_private_method_0_Private_methods_are_not_writable","Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name","Private_accessor_was_defined_without_a_getter","This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0","A_get_accessor_must_be_at_least_as_accessible_as_the_setter","Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses","Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments","Initializer_for_property_0","Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom","Class_declaration_cannot_implement_overload_list_for_0","Function_with_bodies_can_only_merge_with_classes_that_are_ambient","arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks","Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class","Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block","Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers","Namespace_name_cannot_be_0","Type_0_is_not_assignable_to_type_1_Did_you_mean_2","Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve","Import_assertions_cannot_be_used_with_type_only_imports_or_exports","Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve","Cannot_find_namespace_0_Did_you_mean_1","Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path","Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0","Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls","Import_assertion_values_must_be_string_literal_expressions","All_declarations_of_0_must_have_identical_constraints","This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value","An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types","_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation","We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here","Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor","This_condition_will_always_return_0","A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead","The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression","Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1","The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined","The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined","await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules","await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module","Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher","Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super","Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls","Import_attributes_cannot_be_used_with_type_only_imports_or_exports","Import_attribute_values_must_be_string_literal_expressions","Excessive_complexity_comparing_types_0_and_1","The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method","An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression","Type_0_is_generic_and_can_only_be_indexed_for_reading","A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values","A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types","Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled","Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun","Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig","Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish","This_binary_expression_is_never_nullish_Are_you_missing_parentheses","This_expression_is_always_nullish","This_kind_of_expression_is_always_truthy","This_kind_of_expression_is_always_falsy","This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found","This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed","This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0","This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path","This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files","Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found","Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert","This_expression_is_never_nullish","Import_declaration_0_is_using_private_name_1","Type_parameter_0_of_exported_class_has_or_is_using_private_name_1","Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1","Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1","Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1","Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1","Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1","Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1","Type_parameter_0_of_exported_function_has_or_is_using_private_name_1","Implements_clause_of_exported_class_0_has_or_is_using_private_name_1","extends_clause_of_exported_class_0_has_or_is_using_private_name_1","extends_clause_of_exported_class_has_or_is_using_private_name_0","extends_clause_of_exported_interface_0_has_or_is_using_private_name_1","Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Exported_variable_0_has_or_is_using_name_1_from_private_module_2","Exported_variable_0_has_or_is_using_private_name_1","Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2","Public_static_property_0_of_exported_class_has_or_is_using_private_name_1","Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2","Public_property_0_of_exported_class_has_or_is_using_private_name_1","Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2","Property_0_of_exported_interface_has_or_is_using_private_name_1","Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2","Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1","Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2","Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1","Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2","Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1","Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2","Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1","Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1","Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0","Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1","Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0","Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1","Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0","Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named","Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1","Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0","Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named","Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1","Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0","Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1","Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0","Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named","Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1","Return_type_of_exported_function_has_or_is_using_private_name_0","Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1","Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1","Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1","Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1","Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1","Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1","Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_exported_function_has_or_is_using_private_name_1","Exported_type_alias_0_has_or_is_using_private_name_1","Default_export_of_the_module_has_or_is_using_private_name_0","Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1","Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2","Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1","Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1","Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected","Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2","Public_static_method_0_of_exported_class_has_or_is_using_private_name_1","Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2","Public_method_0_of_exported_class_has_or_is_using_private_name_1","Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2","Method_0_of_exported_interface_has_or_is_using_private_name_1","Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1","The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1","Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter","Parameter_0_of_accessor_has_or_is_using_private_name_1","Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2","Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named","Type_arguments_for_0_circularly_reference_themselves","Tuple_type_arguments_circularly_reference_themselves","Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0","This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class","This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0","This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0","This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0","This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0","This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1","The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized","This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0","This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0","This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class","This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0","This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1","Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next","Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given","One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value","This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic","This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic","The_current_host_does_not_support_the_0_option","Cannot_find_the_common_subdirectory_path_for_the_input_files","File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0","Cannot_read_file_0_Colon_1","Unknown_compiler_option_0","Compiler_option_0_requires_a_value_of_type_1","Unknown_compiler_option_0_Did_you_mean_1","Could_not_write_file_0_Colon_1","Option_project_cannot_be_mixed_with_source_files_on_a_command_line","Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher","Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided","Option_0_cannot_be_specified_without_specifying_option_1","Option_0_cannot_be_specified_with_option_1","A_tsconfig_json_file_is_already_defined_at_Colon_0","Cannot_write_file_0_because_it_would_overwrite_input_file","Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files","Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0","The_specified_path_does_not_exist_Colon_0","Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier","Pattern_0_can_have_at_most_one_Asterisk_character","Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character","Substitutions_for_pattern_0_should_be_an_array","Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2","File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0","Substitutions_for_pattern_0_shouldn_t_be_an_empty_array","Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name","Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig","Option_0_cannot_be_specified_without_specifying_option_1_or_option_2","Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic","Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd","Unknown_build_option_0","Build_option_0_requires_a_value_of_type_1","Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified","_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2","_0_and_1_operations_cannot_be_mixed_without_parentheses","Unknown_build_option_0_Did_you_mean_1","Unknown_watch_option_0","Unknown_watch_option_0_Did_you_mean_1","Watch_option_0_requires_a_value_of_type_1","Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0","_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1","Cannot_read_file_0","A_tuple_member_cannot_be_both_optional_and_rest","A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type","A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type","The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary","Option_0_cannot_be_specified_when_option_jsx_is_1","Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash","Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled","The_root_value_of_a_0_file_must_be_an_object","Compiler_option_0_may_only_be_used_with_build","Compiler_option_0_may_not_be_used_with_build","Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later","Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set","An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled","Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler","Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error","Option_0_has_been_removed_Please_remove_it_from_your_configuration","Invalid_value_for_ignoreDeprecations","Option_0_is_redundant_and_cannot_be_specified_with_option_1","Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System","Use_0_instead","Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error","Option_0_1_has_been_removed_Please_remove_it_from_your_configuration","Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1","Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1","Generates_a_sourcemap_for_each_corresponding_d_ts_file","Concatenate_and_emit_output_to_single_file","Generates_corresponding_d_ts_file","Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations","Watch_input_files","Redirect_output_structure_to_the_directory","Do_not_erase_const_enum_declarations_in_generated_code","Do_not_emit_outputs_if_any_errors_were_reported","Do_not_emit_comments_to_output","Do_not_emit_outputs","Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking","Skip_type_checking_of_declaration_files","Do_not_resolve_the_real_path_of_symlinks","Only_emit_d_ts_declaration_files","Specify_ECMAScript_target_version","Specify_module_code_generation","Print_this_message","Print_the_compiler_s_version","Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json","Syntax_Colon_0","Examples_Colon_0","Options_Colon","Version_0","Insert_command_line_options_and_files_from_a_file","Starting_compilation_in_watch_mode","File_change_detected_Starting_incremental_compilation","KIND","FILE","VERSION","LOCATION","DIRECTORY","STRATEGY","FILE_OR_DIRECTORY","Errors_Files","Generates_corresponding_map_file","Compiler_option_0_expects_an_argument","Unterminated_quoted_string_in_response_file_0","Argument_for_0_option_must_be_Colon_1","Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1","Unable_to_open_file_0","Corrupted_locale_file_0","Raise_error_on_expressions_and_declarations_with_an_implied_any_type","File_0_not_found","File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1","Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures","Do_not_emit_declarations_for_code_that_has_an_internal_annotation","Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir","File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files","Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix","NEWLINE","Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line","Enables_experimental_support_for_ES7_decorators","Enables_experimental_support_for_emitting_type_metadata_for_decorators","Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file","Successfully_created_a_tsconfig_json_file","Suppress_excess_property_checks_for_object_literals","Stylize_errors_and_messages_using_color_and_context_experimental","Do_not_report_errors_on_unused_labels","Report_error_when_not_all_code_paths_in_function_return_a_value","Report_errors_for_fallthrough_cases_in_switch_statement","Do_not_report_errors_on_unreachable_code","Disallow_inconsistently_cased_references_to_the_same_file","Specify_library_files_to_be_included_in_the_compilation","Specify_JSX_code_generation","Only_amd_and_system_modules_are_supported_alongside_0","Base_directory_to_resolve_non_absolute_module_names","Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit","Enable_tracing_of_the_name_resolution_process","Resolving_module_0_from_1","Explicitly_specified_module_resolution_kind_Colon_0","Module_resolution_kind_is_not_specified_using_0","Module_name_0_was_successfully_resolved_to_1","Module_name_0_was_not_resolved","paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0","Module_name_0_matched_pattern_1","Trying_substitution_0_candidate_module_location_Colon_1","Resolving_module_name_0_relative_to_base_url_1_2","Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1","File_0_does_not_exist","File_0_exists_use_it_as_a_name_resolution_result","Loading_module_0_from_node_modules_folder_target_file_types_Colon_1","Found_package_json_at_0","package_json_does_not_have_a_0_field","package_json_has_0_field_1_that_references_2","Allow_javascript_files_to_be_compiled","Checking_if_0_is_the_longest_matching_prefix_for_1_2","Expected_type_of_0_field_in_package_json_to_be_1_got_2","baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1","rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0","Longest_matching_prefix_for_0_is_1","Loading_0_from_the_root_dir_1_candidate_location_2","Trying_other_entries_in_rootDirs","Module_resolution_using_rootDirs_has_failed","Do_not_emit_use_strict_directives_in_module_output","Enable_strict_null_checks","Unknown_option_excludes_Did_you_mean_exclude","Raise_error_on_this_expressions_with_an_implied_any_type","Resolving_type_reference_directive_0_containing_file_1_root_directory_2","Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2","Type_reference_directive_0_was_not_resolved","Resolving_with_primary_search_path_0","Root_directory_cannot_be_determined_skipping_primary_search_paths","Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set","Type_declaration_files_to_be_included_in_compilation","Looking_up_in_node_modules_folder_initial_location_0","Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder","Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1","Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set","Resolving_real_path_for_0_result_1","Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system","File_name_0_has_a_1_extension_stripping_it","_0_is_declared_but_its_value_is_never_read","Report_errors_on_unused_locals","Report_errors_on_unused_parameters","The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files","Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1","Property_0_is_declared_but_its_value_is_never_read","Import_emit_helpers_from_tslib","Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2","Parse_in_strict_mode_and_emit_use_strict_for_each_source_file","Module_0_was_resolved_to_1_but_jsx_is_not_set","Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1","Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h","Resolution_for_module_0_was_found_in_cache_from_location_1","Directory_0_does_not_exist_skipping_all_lookups_in_it","Show_diagnostic_information","Show_verbose_diagnostic_information","Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file","Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set","Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule","Print_names_of_generated_files_part_of_the_compilation","Print_names_of_files_part_of_the_compilation","The_locale_used_when_displaying_messages_to_the_user_e_g_en_us","Do_not_generate_custom_helper_functions_like_extends_in_compiled_output","Do_not_include_the_default_library_file_lib_d_ts","Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files","Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files","List_of_folders_to_include_type_definitions_from","Disable_size_limitations_on_JavaScript_projects","The_character_set_of_the_input_files","Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1","Do_not_truncate_error_messages","Output_directory_for_generated_declaration_files","A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl","List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime","Show_all_compiler_options","Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file","Command_line_Options","Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5","Enable_all_strict_type_checking_options","Scoped_package_detected_looking_in_0","Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2","Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3","Enable_strict_checking_of_function_types","Enable_strict_checking_of_property_initialization_in_classes","Numeric_separators_are_not_allowed_here","Multiple_consecutive_numeric_separators_are_not_permitted","Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen","All_imports_in_import_declaration_are_unused","Found_1_error_Watching_for_file_changes","Found_0_errors_Watching_for_file_changes","Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols","_0_is_declared_but_never_used","Include_modules_imported_with_json_extension","All_destructured_elements_are_unused","All_variables_are_unused","Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0","Conflicts_are_in_this_file","Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0","_0_was_also_declared_here","and_here","All_type_parameters_are_unused","package_json_has_a_typesVersions_field_with_version_specific_path_mappings","package_json_does_not_have_a_typesVersions_entry_that_matches_version_0","package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2","package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range","An_argument_for_0_was_not_provided","An_argument_matching_this_binding_pattern_was_not_provided","Did_you_mean_to_call_this_expression","Did_you_mean_to_use_new_with_this_expression","Enable_strict_bind_call_and_apply_methods_on_functions","Using_compiler_options_of_project_reference_redirect_0","Found_1_error","Found_0_errors","Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2","Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3","package_json_had_a_falsy_0_field","Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects","Emit_class_fields_with_Define_instead_of_Set","Generates_a_CPU_profile","Disable_solution_searching_for_this_project","Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory","Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling","Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize","Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3","Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line","Could_not_resolve_the_path_0_with_the_extensions_Colon_1","Declaration_augments_declaration_in_another_file_This_cannot_be_serialized","This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file","This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without","Disable_loading_referenced_projects","Arguments_for_the_rest_parameter_0_were_not_provided","Generates_an_event_trace_and_a_list_of_types","Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react","File_0_exists_according_to_earlier_cached_lookups","File_0_does_not_exist_according_to_earlier_cached_lookups","Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1","Resolving_type_reference_directive_0_containing_file_1","Interpret_optional_property_types_as_written_rather_than_adding_undefined","Modules","File_Management","Emit","JavaScript_Support","Type_Checking","Editor_Support","Watch_and_Build_Modes","Compiler_Diagnostics","Interop_Constraints","Backwards_Compatibility","Language_and_Environment","Projects","Output_Formatting","Completeness","_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file","Found_1_error_in_0","Found_0_errors_in_the_same_file_starting_at_Colon_1","Found_0_errors_in_1_files","File_name_0_has_a_1_extension_looking_up_2_instead","Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set","Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present","Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder","Option_0_can_only_be_specified_on_command_line","Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve","Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1","Invalid_import_specifier_0_has_no_possible_resolutions","package_json_scope_0_has_no_imports_defined","package_json_scope_0_explicitly_maps_specifier_1_to_null","package_json_scope_0_has_invalid_type_for_target_of_specifier_1","Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1","Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update","There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings","Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update","There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler","package_json_has_a_peerDependencies_field","Found_peerDependency_0_with_1_version","Failed_to_find_peerDependency_0","File_Layout","Environment_Settings","See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule","For_nodejs_Colon","and_npm_install_D_types_Slashnode","Other_Outputs","Stricter_Typechecking_Options","Style_Options","Recommended_Options","Enable_project_compilation","Composite_projects_may_not_disable_declaration_emit","Output_file_0_has_not_been_built_from_source_file_1","Referenced_project_0_must_have_setting_composite_Colon_true","File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern","Referenced_project_0_may_not_disable_emit","Project_0_is_out_of_date_because_output_1_is_older_than_input_2","Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2","Project_0_is_out_of_date_because_output_file_1_does_not_exist","Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date","Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies","Projects_in_this_build_Colon_0","A_non_dry_build_would_delete_the_following_files_Colon_0","A_non_dry_build_would_build_project_0","Building_project_0","Updating_output_timestamps_of_project_0","Project_0_is_up_to_date","Skipping_build_of_project_0_because_its_dependency_1_has_errors","Project_0_can_t_be_built_because_its_dependency_1_has_errors","Build_one_or_more_projects_and_their_dependencies_if_out_of_date","Delete_the_outputs_of_all_projects","Show_what_would_be_built_or_deleted_if_specified_with_clean","Option_build_must_be_the_first_command_line_argument","Options_0_and_1_cannot_be_combined","Updating_unchanged_output_timestamps_of_project_0","A_non_dry_build_would_update_timestamps_for_output_of_project_0","Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1","Composite_projects_may_not_disable_incremental_compilation","Specify_file_to_store_incremental_compilation_information","Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2","Skipping_build_of_project_0_because_its_dependency_1_was_not_built","Project_0_can_t_be_built_because_its_dependency_1_was_not_built","Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it","_0_is_deprecated","Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found","The_signature_0_of_1_is_deprecated","Project_0_is_being_forcibly_rebuilt","Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved","Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2","Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3","Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved","Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3","Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4","Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved","Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3","Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4","Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved","Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted","Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files","Project_0_is_out_of_date_because_there_was_error_reading_file_1","Resolving_in_0_mode_with_conditions_1","Matched_0_condition_1","Using_0_subpath_1_with_target_2","Saw_non_matching_condition_0","Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions","Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set","Use_the_package_json_exports_field_when_resolving_package_imports","Use_the_package_json_imports_field_when_resolving_imports","Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports","true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false","Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more","Entering_conditional_exports","Resolved_under_condition_0","Failed_to_resolve_under_condition_0","Exiting_conditional_exports","Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0","Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0","Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors","Project_0_is_out_of_date_because_1","Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files","The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1","The_expected_type_comes_from_this_index_signature","The_expected_type_comes_from_the_return_type_of_this_signature","Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing","File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option","Print_names_of_files_and_the_reason_they_are_part_of_the_compilation","Consider_adding_a_declare_modifier_to_this_class","Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files","Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export","Allow_accessing_UMD_globals_from_modules","Disable_error_reporting_for_unreachable_code","Disable_error_reporting_for_unused_labels","Ensure_use_strict_is_always_emitted","Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it","Specify_the_base_directory_to_resolve_non_relative_module_names","No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files","Enable_error_reporting_in_type_checked_JavaScript_files","Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references","Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project","Specify_the_output_directory_for_generated_declaration_files","Create_sourcemaps_for_d_ts_files","Output_compiler_performance_information_after_building","Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project","Reduce_the_number_of_projects_loaded_automatically_by_TypeScript","Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server","Opt_a_project_out_of_multi_project_reference_checking_when_editing","Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects","Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration","Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files","Only_output_d_ts_files_and_not_JavaScript_files","Emit_design_type_metadata_for_decorated_declarations_in_source_files","Disable_the_type_acquisition_for_JavaScript_projects","Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility","Filters_results_from_the_include_option","Remove_a_list_of_directories_from_the_watch_process","Remove_a_list_of_files_from_the_watch_mode_s_processing","Enable_experimental_support_for_legacy_experimental_decorators","Print_files_read_during_the_compilation_including_why_it_was_included","Output_more_detailed_compiler_performance_information_after_building","Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited","Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers","Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include","Build_all_projects_including_those_that_appear_to_be_up_to_date","Ensure_that_casing_is_correct_in_imports","Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging","Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file","Skip_building_downstream_projects_on_error_in_upstream_project","Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation","Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects","Include_sourcemap_files_inside_the_emitted_JavaScript","Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript","Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports","Specify_what_JSX_code_is_generated","Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h","Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment","Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk","Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option","Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment","Print_the_names_of_emitted_files_after_a_compilation","Print_all_of_the_files_read_during_the_compilation","Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit","Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations","Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs","Specify_what_module_code_is_generated","Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier","Set_the_newline_character_for_emitting_files","Disable_emitting_files_from_a_compilation","Disable_generating_custom_helper_functions_like_extends_in_compiled_output","Disable_emitting_files_if_any_type_checking_errors_are_reported","Disable_truncating_types_in_error_messages","Enable_error_reporting_for_fallthrough_cases_in_switch_statements","Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type","Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier","Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function","Enable_error_reporting_when_this_is_given_the_type_any","Disable_adding_use_strict_directives_in_emitted_JavaScript_files","Disable_including_any_library_files_including_the_default_lib_d_ts","Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type","Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project","Disable_strict_checking_of_generic_signatures_in_function_types","Add_undefined_to_a_type_when_accessed_using_an_index","Enable_error_reporting_when_local_variables_aren_t_read","Raise_an_error_when_a_function_parameter_isn_t_read","Deprecated_setting_Use_outFile_instead","Specify_an_output_folder_for_all_emitted_files","Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output","Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations","Specify_a_list_of_language_service_plugins_to_include","Disable_erasing_const_enum_declarations_in_generated_code","Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node","Disable_wiping_the_console_in_watch_mode","Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read","Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit","Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references","Disable_emitting_comments","Enable_importing_json_files","Specify_the_root_folder_within_your_source_files","Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules","Skip_type_checking_d_ts_files_that_are_included_with_TypeScript","Skip_type_checking_all_d_ts_files","Create_source_map_files_for_emitted_JavaScript_files","Specify_the_root_path_for_debuggers_to_find_the_reference_source_code","Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function","When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible","When_type_checking_take_into_account_null_and_undefined","Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor","Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments","Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals","Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures","Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively","Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations","Log_paths_used_during_the_moduleResolution_process","Specify_the_path_to_tsbuildinfo_incremental_compilation_file","Specify_options_for_automatic_acquisition_of_declaration_files","Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types","Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file","Emit_ECMAScript_standard_compliant_class_fields","Enable_verbose_logging","Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality","Specify_how_the_TypeScript_watch_mode_works","Require_undeclared_properties_from_index_signatures_to_use_element_accesses","Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types","Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files","Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any","Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript","Default_catch_clause_variables_as_unknown_instead_of_any","Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting","Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported","Check_side_effect_imports","This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2","Enable_lib_replacement","one_of_Colon","one_or_more_Colon","type_Colon","default_Colon","module_system_or_esModuleInterop","false_unless_strict_is_set","false_unless_composite_is_set","node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified","if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk","true_if_composite_false_otherwise","module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node","Computed_from_the_list_of_input_files","Platform_specific","You_can_learn_about_all_of_the_compiler_options_at_0","Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon","Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0","COMMON_COMMANDS","ALL_COMPILER_OPTIONS","WATCH_OPTIONS","BUILD_OPTIONS","COMMON_COMPILER_OPTIONS","COMMAND_LINE_FLAGS","tsc_Colon_The_TypeScript_Compiler","Compiles_the_current_project_tsconfig_json_in_the_working_directory","Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options","Build_a_composite_project_in_the_working_directory","Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory","Compiles_the_TypeScript_project_located_at_the_specified_path","An_expanded_version_of_this_information_showing_all_possible_compiler_options","Compiles_the_current_project_with_additional_settings","true_for_ES2022_and_above_including_ESNext","List_of_file_name_suffixes_to_search_when_resolving_a_module","Variable_0_implicitly_has_an_1_type","Parameter_0_implicitly_has_an_1_type","Member_0_implicitly_has_an_1_type","new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type","_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type","Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type","This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation","Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type","Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type","Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number","Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type","Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature","Object_literal_s_property_0_implicitly_has_an_1_type","Rest_parameter_0_implicitly_has_an_any_type","Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type","_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer","_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions","Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions","Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation","JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists","Unreachable_code_detected","Unused_label","Fallthrough_case_in_switch","Not_all_code_paths_return_a_value","Binding_element_0_implicitly_has_an_1_type","Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation","Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation","Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined","Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0","Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0","Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports","Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead","Mapped_object_type_implicitly_has_an_any_template_type","If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1","The_containing_arrow_function_captures_the_global_value_of_this","Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used","Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage","Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage","Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage","Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage","Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage","Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage","Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage","_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage","Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1","Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1","Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1","No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1","_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type","The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed","yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation","If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1","This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead","This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint","A_mapped_type_may_not_declare_properties_or_methods","You_cannot_rename_this_element","You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library","import_can_only_be_used_in_TypeScript_files","export_can_only_be_used_in_TypeScript_files","Type_parameter_declarations_can_only_be_used_in_TypeScript_files","implements_clauses_can_only_be_used_in_TypeScript_files","_0_declarations_can_only_be_used_in_TypeScript_files","Type_aliases_can_only_be_used_in_TypeScript_files","The_0_modifier_can_only_be_used_in_TypeScript_files","Type_annotations_can_only_be_used_in_TypeScript_files","Type_arguments_can_only_be_used_in_TypeScript_files","Parameter_modifiers_can_only_be_used_in_TypeScript_files","Non_null_assertions_can_only_be_used_in_TypeScript_files","Type_assertion_expressions_can_only_be_used_in_TypeScript_files","Signature_declarations_can_only_be_used_in_TypeScript_files","Report_errors_in_js_files","JSDoc_types_can_only_be_used_inside_documentation_comments","JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags","JSDoc_0_is_not_attached_to_a_class","JSDoc_0_1_does_not_match_the_extends_2_clause","JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name","Class_declarations_cannot_have_more_than_one_augments_or_extends_tag","Expected_0_type_arguments_provide_these_with_an_extends_tag","Expected_0_1_type_arguments_provide_these_with_an_extends_tag","JSDoc_may_only_appear_in_the_last_parameter_of_a_signature","JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type","The_type_of_a_function_declaration_must_match_the_function_s_signature","You_cannot_rename_a_module_via_a_global_import","Qualified_name_0_is_not_allowed_without_a_leading_param_object_1","A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags","The_tag_was_first_specified_here","You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder","You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder","Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files","Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export","A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag","Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit","Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit","Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations","Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations","At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations","Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations","Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations","Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations","Expression_type_can_t_be_inferred_with_isolatedDeclarations","Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations","Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations","Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations","Only_const_arrays_can_be_inferred_with_isolatedDeclarations","Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations","Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations","Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations","Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations","Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations","Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function","Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations","Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations","Add_a_type_annotation_to_the_variable_0","Add_a_type_annotation_to_the_parameter_0","Add_a_type_annotation_to_the_property_0","Add_a_return_type_to_the_function_expression","Add_a_return_type_to_the_function_declaration","Add_a_return_type_to_the_get_accessor_declaration","Add_a_type_to_parameter_of_the_set_accessor_declaration","Add_a_return_type_to_the_method","Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit","Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it","Default_exports_can_t_be_inferred_with_isolatedDeclarations","Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations","Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations","JSX_attributes_must_only_be_assigned_a_non_empty_expression","JSX_elements_cannot_have_multiple_attributes_with_the_same_name","Expected_corresponding_JSX_closing_tag_for_0","Cannot_use_JSX_unless_the_jsx_flag_is_provided","A_constructor_cannot_contain_a_super_call_when_its_class_extends_null","An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses","A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses","JSX_element_0_has_no_corresponding_closing_tag","super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class","Unknown_type_acquisition_option_0","super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class","_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2","Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor","JSX_fragment_has_no_corresponding_closing_tag","Expected_corresponding_closing_tag_for_JSX_fragment","The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option","An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments","Unknown_type_acquisition_option_0_Did_you_mean_1","_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1","_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1","Unicode_escape_sequence_cannot_appear_here","Circularity_detected_while_resolving_configuration_Colon_0","The_files_list_in_config_file_0_is_empty","No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2","File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module","This_constructor_function_may_be_converted_to_a_class_declaration","Import_may_be_converted_to_a_default_import","JSDoc_types_may_be_moved_to_TypeScript_types","require_call_may_be_converted_to_an_import","This_may_be_converted_to_an_async_function","await_has_no_effect_on_the_type_of_this_expression","Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers","JSDoc_typedef_may_be_converted_to_TypeScript_type","JSDoc_typedefs_may_be_converted_to_TypeScript_types","Add_missing_super_call","Make_super_call_the_first_statement_in_the_constructor","Change_extends_to_implements","Remove_unused_declaration_for_Colon_0","Remove_import_from_0","Implement_interface_0","Implement_inherited_abstract_class","Add_0_to_unresolved_variable","Remove_variable_statement","Remove_template_tag","Remove_type_parameters","Import_0_from_1","Change_0_to_1","Declare_property_0","Add_index_signature_for_property_0","Disable_checking_for_this_file","Ignore_this_error_message","Initialize_property_0_in_the_constructor","Initialize_static_property_0","Change_spelling_to_0","Declare_method_0","Declare_static_method_0","Prefix_0_with_an_underscore","Rewrite_as_the_indexed_access_type_0","Declare_static_property_0","Call_decorator_expression","Add_async_modifier_to_containing_function","Replace_infer_0_with_unknown","Replace_all_unused_infer_with_unknown","Add_parameter_name","Declare_private_property_0","Replace_0_with_Promise_1","Fix_all_incorrect_return_type_of_an_async_functions","Declare_private_method_0","Remove_unused_destructuring_declaration","Remove_unused_declarations_for_Colon_0","Declare_a_private_field_named_0","Includes_imports_of_types_referenced_by_0","Remove_type_from_import_declaration_from_0","Remove_type_from_import_of_0_from_1","Add_import_from_0","Update_import_from_0","Export_0_from_module_1","Export_all_referenced_locals","Update_modifiers_of_0","Add_annotation_of_type_0","Add_return_type_0","Extract_base_class_to_variable","Extract_default_export_to_variable","Extract_binding_expressions_to_variable","Add_all_missing_type_annotations","Add_satisfies_and_an_inline_type_assertion_with_0","Extract_to_variable_and_replace_with_0_as_typeof_0","Mark_array_literal_as_const","Annotate_types_of_properties_expando_function_in_a_namespace","Convert_function_to_an_ES2015_class","Convert_0_to_1_in_0","Extract_to_0_in_1","Extract_function","Extract_constant","Extract_to_0_in_enclosing_scope","Extract_to_0_in_1_scope","Annotate_with_type_from_JSDoc","Infer_type_of_0_from_usage","Infer_parameter_types_from_usage","Convert_to_default_import","Install_0","Replace_import_with_0","Use_synthetic_default_member","Convert_to_ES_module","Add_undefined_type_to_property_0","Add_initializer_to_property_0","Add_definite_assignment_assertion_to_property_0","Convert_all_type_literals_to_mapped_type","Add_all_missing_members","Infer_all_types_from_usage","Delete_all_unused_declarations","Prefix_all_unused_declarations_with_where_possible","Fix_all_detected_spelling_errors","Add_initializers_to_all_uninitialized_properties","Add_definite_assignment_assertions_to_all_uninitialized_properties","Add_undefined_type_to_all_uninitialized_properties","Change_all_jsdoc_style_types_to_TypeScript","Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types","Implement_all_unimplemented_interfaces","Install_all_missing_types_packages","Rewrite_all_as_indexed_access_types","Convert_all_to_default_imports","Make_all_super_calls_the_first_statement_in_their_constructor","Add_qualifier_to_all_unresolved_variables_matching_a_member_name","Change_all_extended_interfaces_to_implements","Add_all_missing_super_calls","Implement_all_inherited_abstract_classes","Add_all_missing_async_modifiers","Add_ts_ignore_to_all_error_messages","Annotate_everything_with_types_from_JSDoc","Add_to_all_uncalled_decorators","Convert_all_constructor_functions_to_classes","Generate_get_and_set_accessors","Convert_require_to_import","Convert_all_require_to_import","Move_to_a_new_file","Remove_unreachable_code","Remove_all_unreachable_code","Add_missing_typeof","Remove_unused_label","Remove_all_unused_labels","Convert_0_to_mapped_object_type","Convert_namespace_import_to_named_imports","Convert_named_imports_to_namespace_import","Add_or_remove_braces_in_an_arrow_function","Add_braces_to_arrow_function","Remove_braces_from_arrow_function","Convert_default_export_to_named_export","Convert_named_export_to_default_export","Add_missing_enum_member_0","Add_all_missing_imports","Convert_to_async_function","Convert_all_to_async_functions","Add_missing_call_parentheses","Add_all_missing_call_parentheses","Add_unknown_conversion_for_non_overlapping_types","Add_unknown_to_all_conversions_of_non_overlapping_types","Add_missing_new_operator_to_call","Add_missing_new_operator_to_all_calls","Add_names_to_all_parameters_without_names","Enable_the_experimentalDecorators_option_in_your_configuration_file","Convert_parameters_to_destructured_object","Extract_type","Extract_to_type_alias","Extract_to_typedef","Infer_this_type_of_0_from_usage","Add_const_to_unresolved_variable","Add_const_to_all_unresolved_variables","Add_await","Add_await_to_initializer_for_0","Fix_all_expressions_possibly_missing_await","Remove_unnecessary_await","Remove_all_unnecessary_uses_of_await","Enable_the_jsx_flag_in_your_configuration_file","Add_await_to_initializers","Extract_to_interface","Convert_to_a_bigint_numeric_literal","Convert_all_to_bigint_numeric_literals","Convert_const_to_let","Prefix_with_declare","Prefix_all_incorrect_property_declarations_with_declare","Convert_to_template_string","Add_export_to_make_this_file_into_a_module","Set_the_target_option_in_your_configuration_file_to_0","Set_the_module_option_in_your_configuration_file_to_0","Convert_invalid_character_to_its_html_entity_code","Convert_all_invalid_characters_to_HTML_entity_code","Convert_all_const_to_let","Convert_function_expression_0_to_arrow_function","Convert_function_declaration_0_to_arrow_function","Fix_all_implicit_this_errors","Wrap_invalid_character_in_an_expression_container","Wrap_all_invalid_characters_in_an_expression_container","Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file","Add_a_return_statement","Remove_braces_from_arrow_function_body","Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal","Add_all_missing_return_statement","Remove_braces_from_all_arrow_function_bodies_with_relevant_issues","Wrap_all_object_literal_with_parentheses","Move_labeled_tuple_element_modifiers_to_labels","Convert_overload_list_to_single_signature","Generate_get_and_set_accessors_for_all_overriding_properties","Wrap_in_JSX_fragment","Wrap_all_unparented_JSX_in_JSX_fragment","Convert_arrow_function_or_function_expression","Convert_to_anonymous_function","Convert_to_named_function","Convert_to_arrow_function","Remove_parentheses","Could_not_find_a_containing_arrow_function","Containing_function_is_not_an_arrow_function","Could_not_find_export_statement","This_file_already_has_a_default_export","Could_not_find_import_clause","Could_not_find_namespace_import_or_named_imports","Selection_is_not_a_valid_type_node","No_type_could_be_extracted_from_this_type_node","Could_not_find_property_for_which_to_generate_accessor","Name_is_not_valid","Can_only_convert_property_with_modifier","Switch_each_misused_0_to_1","Convert_to_optional_chain_expression","Could_not_find_convertible_access_expression","Could_not_find_matching_access_expressions","Can_only_convert_logical_AND_access_chains","Add_void_to_Promise_resolved_without_a_value","Add_void_to_all_Promises_resolved_without_a_value","Use_element_access_for_0","Use_element_access_for_all_undeclared_properties","Delete_all_unused_imports","Infer_function_return_type","Return_type_must_be_inferred_from_a_function","Could_not_determine_function_return_type","Could_not_convert_to_arrow_function","Could_not_convert_to_named_function","Could_not_convert_to_anonymous_function","Can_only_convert_string_concatenations_and_string_literals","Selection_is_not_a_valid_statement_or_statements","Add_missing_function_declaration_0","Add_all_missing_function_declarations","Method_not_implemented","Function_not_implemented","Add_override_modifier","Remove_override_modifier","Add_all_missing_override_modifiers","Remove_all_unnecessary_override_modifiers","Can_only_convert_named_export","Add_missing_properties","Add_all_missing_properties","Add_missing_attributes","Add_all_missing_attributes","Add_undefined_to_optional_property_type","Convert_named_imports_to_default_import","Delete_unused_param_tag_0","Delete_all_unused_param_tags","Rename_param_tag_name_0_to_1","Use_0","Use_Number_isNaN_in_all_conditions","Convert_typedef_to_TypeScript_type","Convert_all_typedef_to_TypeScript_types","Move_to_file","Cannot_move_to_file_selected_file_is_invalid","Use_import_type","Use_type_0","Fix_all_with_type_only_imports","Cannot_move_statements_to_the_selected_file","Inline_variable","Could_not_find_variable_to_inline","Variables_with_multiple_declarations_cannot_be_inlined","Add_missing_comma_for_object_member_completion_0","Add_missing_parameter_to_0","Add_missing_parameters_to_0","Add_all_missing_parameters","Add_optional_parameter_to_0","Add_optional_parameters_to_0","Add_all_optional_parameters","Wrap_in_parentheses","Wrap_all_invalid_decorator_expressions_in_parentheses","Add_resolution_mode_import_attribute","Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it","No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer","Classes_may_not_have_a_field_named_constructor","JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array","Private_identifiers_cannot_be_used_as_parameters","An_accessibility_modifier_cannot_be_used_with_a_private_identifier","The_operand_of_a_delete_operator_cannot_be_a_private_identifier","constructor_is_a_reserved_word","Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier","The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling","Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2","Private_identifiers_are_not_allowed_outside_class_bodies","The_shadowing_declaration_of_0_is_defined_here","The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here","_0_modifier_cannot_be_used_with_a_private_identifier","An_enum_member_cannot_be_named_with_a_private_identifier","can_only_be_used_at_the_start_of_a_file","Compiler_reserves_name_0_when_emitting_private_identifier_downlevel","Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher","Private_identifiers_are_not_allowed_in_variable_declarations","An_optional_chain_cannot_contain_private_identifiers","The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents","The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some","Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values","Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment","Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name","Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator","await_expression_cannot_be_used_inside_a_class_static_block","for_await_loops_cannot_be_used_inside_a_class_static_block","Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block","A_return_statement_cannot_be_used_inside_a_class_static_block","_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation","Types_cannot_appear_in_export_declarations_in_JavaScript_files","_0_is_automatically_exported_here","Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher","_0_is_of_type_unknown","_0_is_possibly_null","_0_is_possibly_undefined","_0_is_possibly_null_or_undefined","The_value_0_cannot_be_used_here","Compiler_option_0_cannot_be_given_an_empty_string","Its_type_0_is_not_a_valid_JSX_element_type","await_using_statements_cannot_be_used_inside_a_class_static_block","_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled","Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled","String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020","Default_imports_are_not_allowed_in_a_deferred_import","Named_imports_are_not_allowed_in_a_deferred_import","Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve","_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer","token","abstract","accessor","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","debugger","declare","default","defer","do","else","enum","export","extends","false","finally","for","function","if","implements","import","in","infer","instanceof","interface","intrinsic","is","keyof","let","namespace","never","new","null","number","package","private","protected","public","override","out","readonly","global","return","satisfies","static","string","super","switch","throw","true","try","typeof","undefined","unique","unknown","using","var","void","while","yield","async","await","of","textToKeyword","textToToken","charCodeToRegExpFlag","regExpFlagToFirstAvailableLanguageVersion","unicodeES5IdentifierStart","unicodeES5IdentifierPart","unicodeESNextIdentifierStart","unicodeESNextIdentifierPart","commentDirectiveRegExSingleLine","commentDirectiveRegExMultiLine","jsDocSeeOrLink","lookupInUnicodeMap","mid","lo","hi","languageVersion","makeReverseMap","tokenStrings","regExpFlagCharCodes","lineStart","allowEdits","lineStarts","debugText","lineMap","position","lineNumber","lowerBound","pos1","pos2","lower","isNegative","upper","lowerLine","upperLine","isDigit","isHexDigit","isASCIILetter","isWordCharacter","isOctalDigit","stopAfterLineBreak","stopAtComments","inJSDoc","canConsumeStar","isConflictMarkerTrivia","scanConflictMarkerTrivia","isShebangTrivia","scanShebangTrivia","mergeConflictMarkerLength","currentChar","shebangTriviaRegex","iterateCommentRanges","reduce","trailing","state","pendingPos","pendingEnd","pendingKind","pendingHasTrailingNewLine","hasPendingCommentRange","collecting","accumulator","shebang","scan","nextChar","hasTrailingNewLine","startPos","appendCommentRange","_state","comments","identifierVariant","isUnicodeIdentifierPart","codePointAt","charSize","skipTrivia2","languageVariant","textInitial","onError","fullStartPos","tokenStart","tokenValue","tokenFlags","commentDirectives","skipJsDocLeadingAsterisks","scriptKind","jsDocParsingMode","setText","scanner2","getTokenFullStart","getStartPos","getTokenEnd","getTextPos","getToken","getTokenStart","getTokenPos","getTokenText","getTokenValue","hasUnicodeEscape","hasExtendedUnicodeEscape","hasPrecedingLineBreak","hasPrecedingJSDocComment","hasPrecedingJSDocLeadingAsterisks","isReservedWord","isUnterminated","getCommentDirectives","getNumericLiteralFlags","getTokenFlags","reScanGreaterToken","charCodeUnchecked","reScanAsteriskEqualsToken","reScanSlashToken","reportErrors2","startOfRegExpBody","inEscape","namedCaptureGroups","inCharacterClass","charCodeChecked","endOfRegExpBody","characterClassDepth","inDecimalQuantifier","groupDepth","regExpFlags","codePointChecked","flag","checkRegularExpressionFlagAvailability","scanRange","scanRegularExpressionWorker","annexB","groupSpecifiers","groupNameReferences","decimalEscapes","topNamedCapturingGroupsScope","unicodeSetsMode","anyUnicodeMode","anyUnicodeModeOrNonAnnexB","mayContainStrings","numberOfCapturingGroups","namedCapturingGroupsScopeStack","scanDisjunction","isInGroup","scanAlternative","isPreviousTermQuantifiable","start2","scanAtomEscape","groupNameStart","scanGroupName","scanExpectedChar","start3","setFlags","scanPatternModifiers","digitsStart","scanDigits","min2","fromCharCode","scanClassSetExpression","scanClassRanges","scanSourceCharacter","currFlags","scanCharacterClassEscape","scanDecimalEscape","scanCharacterEscape","atomEscape","scanEscapeSequence","isReference","scanIdentifier","group2","isClassContentExit","minStart","minCharacter","scanClassAtom","maxStart","maxCharacter","minCharacterValue","maxCharacterValue","isCharacterComplement","expressionMayContainStrings","scanClassSetOperand","scanClassSetSubExpression","secondStart","secondOperand","expressionType","scanClassStringDisjunctionContents","scanClassSetCharacter","characterCount","propertyNameOrValueStart","propertyNameOrValue","scanWordCharacters","propertyName","nonBinaryUnicodeProperties","suggestion","propertyValueStart","propertyValue","valuesOfNonBinaryUnicodeProperties","binaryUnicodePropertiesOfStrings","General_Category","binaryUnicodeProperties","reference","escape","reScanTemplateToken","isTaggedTemplate","scanTemplateAndSetTokenValue","reScanTemplateHeadOrNoSubstitutionTemplate","scanJsxIdentifier","oldPos","scanIdentifierParts","getIdentifierToken","scanJsxAttributeValue","reScanJsxAttributeValue","reScanJsxToken","allowMultilineJsxText","scanJsxToken","reScanLessThanToken","reScanHashToken","reScanQuestionToken","reScanInvalidIdentifier","codePointUnchecked","identifierKind","scanJsDocToken","scanJSDocCommentTextToken","inBackticks","getText","clearCommentDirectives","setScriptTarget","scriptTarget","setLanguageVariant","variant","setScriptKind","setJSDocParsingMode","setOnError","errorCallback","resetTokenState","setTextPos","setSkipJsDocLeadingAsterisks","skip","tryScan","speculationHelper","lookAhead","text2","errPos","length3","arg0","scanNumberFragment","allowSeparator","isPreviousTokenSeparator","scanNumber","mainFragment","decimalFragment","scientificFragment","withMinus","literal","end2","preNumericPart","finalFragment","checkForIdentifierStartAfterNumericLiteral","checkBigIntSuffix","numericStart","isScientific","identifierStart","isOctal","scanMinimumNumberOfHexDigits","canHaveSeparators","scanHexDigits","minCount","scanAsManyAsPossible","valueChars","scanString","jsxAttributeString","quote2","shouldEmitInvalidEscapeError","startedWithBacktick","resultingToken","contents","currChar","padStart","scanExtendedUnicodeEscape","escapedValue","escapedValueString","nextStart","nextPos","nextEscapedValue","escapedStart","isInvalidExtendedEscape","peekUnicodeEscape","scanExactNumberOfHexDigits","valueString","peekExtendedUnicodeEscape","keyword","scanBinaryOrOctalDigits","base","separatorAllowed","numericValue","appendIfCommentDirective","isJSDoc2","commentClosed","lastLineStart","shouldParseJSDoc","extendedCookedChar","cookedChar","charAfterHash","extendedCookedChar2","cookedChar2","startCharacter","languageVersion2","availableFrom","commentDirectives2","commentDirectiveRegEx","getDirectiveFromComment","trimStart","char","firstNonWhitespace","isLookahead","savePos","saveStartPos","saveTokenPos","saveToken","saveTokenValue","saveTokenFlags","saveEnd","saveErrorExpectations","newText","utf16EncodeAsStringWorker","fromCodePoint","codePoint","utf16EncodeAsStringFallback","codeUnit1","codeUnit2","Script","sc","Script_Extensions","scx","diagnostics","span","span1","span2","overlap","start1","length1","spans","changes","change0","oldStartN","oldEndN","newEndN","nextChange","oldStart1","oldEnd1","newEnd1","oldStart2","oldEnd2","newEnd2","parent","binding","getCombinedFlags","getFlags","getNodeFlags","errors","lowerCaseLocale","matchResult","language","territory","trySetLanguageAndTerritory","language2","territory2","errors2","fileContents","parse","nodeTest","original","identifier","identifierOrPrivateName","escapedText","valueDeclaration","nameForNamelessJSDocTypedef","declaration","hostNode","getDeclarationIdentifier","declarationList","expr","operatorToken","argumentExpression","statement","expr2","modifiers","getJSDocParameterTagsWorker","param","noCache","getJSDocTagsWorker","tag","parameters","paramTags","getJSDocTypeParameterTagsWorker","typeParameters","tp","getFirstJSDocTag","typeExpression","tag2","returnTag","typeTag","sig","tags","jsDoc","jsDocCache","doc","comment","c","formatJSDocLink","space","decls","questionDotToken","typeName","isTypeOnly","phaseModifier","moduleSpecifier","exportClause","emitNode","autoGenerate","idToken","isFunctionLikeDeclarationKind","bindingElement","isLeftHandSideExpressionKind","isUnaryExpressionKind","isExpressionKind","lookInLabeledStatements","isScopeMarker","statements","isDeclarationStatementKind","isStatementKindButNotDeclarationKind","isDeclarationKind","isBlockStatement","initializer","MAX_SMI_X86","lines","indentation","dotDotDotToken","hasInternalAnnotation","parseTreeNode","paramIdx","previousSibling","commentRanges","symbols","moduleSymbol","stringWriter","createSingleLineStringWriter","writeText","rawWrite","writeKeyword","writeOperator","writePunctuation","writeSpace","writeStringLiteral","writeLiteral","writeParameter","writeProperty","writeSymbol","writeTrailingSemicolon","writeComment","getLine","getColumn","getIndent","isAtStartOfLine","hasTrailingComment","hasTrailingWhitespace","writeLine","increaseIndent","decreaseIndent","oldOptions","newOptions","optionsHaveModuleResolutionChanges","optionDeclarations2","o","oldString","oldRef","newRef","prepend","oldResolution","newResolution","resolvedModule","isExternalLibraryImport","resolvedFileName","originalPath","packageIdIsEqual","subModuleName","peerDependencies","packageId","alternateResult","resolution","resolvedTypeReferenceDirective","moduleReference","packageName","getResolvedModule","alternateResultMessage","getCompilerOptions","typesPackageExists","packageBundlesTypes","repopulateInfo","currentSourceFile","scope","packageJsonScope","targetExt","packageJsonContent","packageDirectory","primary","newResolutions","getOldResolution","aggregateChildData","module2","checkJs","checkJsDirective","loc","lineIndex","sourceText","hasGlobalName","identifiers","questionToken","exclamationToken","isGrammarErrorElement","equalsToken","nodeArray","isElement","insertStatementsAfterPrologue","isPrologueDirective2","statementIndex","insertStatementAfterPrologue","isAnyPrologueDirective","commentPos","commentEnd","textSubStr","fullTripleSlashReferencePathRegEx","fullTripleSlashAMDReferencePathRegEx","fullTripleSlashAMDModuleRegEx","fullTripleSlashReferenceTypeReferenceDirectiveRegEx","fullTripleSlashLibReferenceRegEx","defaultLibReferenceRegEx","directivesByLine","commentDirective","usedLines","getUnusedExpectations","directive","markUsed","includeJsDoc","lastDecorator","lastModifier","isJSDocTypeExpressionOrChild","getPos","internalFlags","es2015","es2016","es2019","es2022","es2023","Iterator","AsyncIterator","ArrayBuffer","es2024","Atomics","es2017","esnext","SharedArrayBuffer","AsyncIterable","es2018","AsyncIterableIterator","AsyncGenerator","AsyncGeneratorFunction","RegExp","Reflect","ArrayConstructor","ObjectConstructor","NumberConstructor","MapConstructor","PromiseConstructor","es2020","es2021","WeakSet","StringConstructor","DateTimeFormat","Promise","RegExpMatchArray","RegExpExecArray","NumberFormat","SymbolConstructor","DataView","RelativeTimeFormat","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float16Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","GetLiteralTextFlags2","canUseOriginalText","numericLiteralFlags","escapeText","singleQuote","rawText","isShorthandAmbientModule","body","compilerOptions","isCommonJSContainingModuleKind","commonJsModuleIndicator","isDeclarationFile","parentNode","container","info","messageChain","relatedInformation","assertDiagnosticLocation","messageText","canonicalHead","diagnostic","errorNode","getErrorSpanForArrowFunction","startLine","endLine","tagName","constructorDeclaration","isMissing","externalModuleIndicator","blockScopeKind","keywordToken","argument","isHoistedVariable","sourceFileOfNode","isPartOfTypeExpressionWithTypeArguments","isTypeOf","visitor","traverse","properties","beforeUnwrapLabelCallback","objectLiteral","key2","property","propName","tsConfigSourceFile","propKey","elementValue","decorator","includeArrowFunctions","includeClassComputedPropertyName","stopOnFunctions","useLegacyDecorators","grandparent","m","firstAccessor","secondAccessor","setAccessor","firstAccessorWithDecorators","parameter","textSourceNode","forStatement","incrementor","forInOrOfStatement","objectAssignmentInitializer","callExpression","requireStringLiteralLikeArgument","isVariableDeclarationInitializedWithRequireHelper","allowAccessedRequire","decl","isPrototypeAssignment","getDefaultedExpandoInitializer","hasExpandoValueProperty","isLiteralLikeAccess","isLiteralLikeElementAccess","special","getAssignmentDeclarationKindWorker","entityName","isVoidZero","excludeThisKeyword","lhs","nextToLast","isEffectiveModuleDeclaration","node2","specifier","rewriteRelativeImportExtensions","importClause","namedBindings","getSourceOfDefaultedAssignment","getSingleInitializerOfVariableStatementOrPropertyDeclaration","getNestedModuleDeclaration","filterOwnedJSDocTags","lastJsDoc","ownedTags","ownsJSDocTag","typeAlias","getSourceOfAssignment","AssignmentKind2","getAssignmentTarget","binaryExpression","unaryExpression","unaryOperator","binaryOperator","isCompoundLikeAssignment","assignment","walkUp","excludeJSDocTypeAssertions","ancestor","binExp","heritageClause","heritageClauses","originalKeywordKind","FunctionFlags2","asteriskToken","nameExpression","containingClassSymbol","description3","isAnonymousFunctionDefinition","isProtoSetter","Associativity2","getOperator","hasArguments","OperatorPrecedence2","nodeKind","operatorKind","containsOnlyTriviaWhiteSpaces","nonFileDiagnostics","filesWithDiagnostics","fileDiagnostics","hasReadNonFileDiagnostics","compareDiagnosticsSkipRelatedInformation","lookup","getGlobalDiagnostics","getDiagnostics","getDiagnostics2","fileDiags","unshift","templateSubstitutionRegExp","containsInvalidEscapeFlag","templateFlags","template","head","templateSpans","doubleQuoteEscapedCharsRegExp","singleQuoteEscapedCharsRegExp","backtickQuoteEscapedCharsRegExp","escapedCharsMap","encodeUtf16EscapeSequence","getReplacement","quoteChar","escapedCharsRegExp","nonAsciiCharacters","jsxDoubleQuoteEscapedCharsRegExp","jsxSingleQuoteEscapedCharsRegExp","jsxEscapedCharsMap","getJsxAttributeStringReplacement","encodeJsxCharacterEntity","isQuoteOrBacktick","indentStrings","singleLevel","getIndentSize","output","indent3","lineCount","linePos","updateLineCountAndPosFor","lineStartsOfS","reset2","force","writer","pendingTrailingSemicolon","commitPendingTrailingSemicolon","sym","referenceFile","getCanonicalAbsolutePath","resolver","getExternalModuleFileFromDeclaration","referencePath","dir","extensionless","emitOutputFilePathWithoutExtension","outDir","outputDir","declarationDir","getSourceFilePathInNewDirWorker","getCommonSourceDirectory2","baseUrl","pathsBasePath","targetSourceFile","forceDtsEmit","outFile","moduleKind","moduleEmitEnabled","emitDeclarationOnly","getSourceFiles","noEmitForJsFiles","isSourceFileFromExternalLibrary","isSourceOfProjectReferenceRedirect","getRedirectFromSourceFile","rootDir","composite","commonDir","outputPath","newDirPath","commonSourceDirectory","sourceFilePath","sourceFiles","hostErrorMessage","ensureDirectoriesExist","directoryPath","getLineOfLocalPositionFromLineMap","hasThis","signature","thisParameter","getAccessor","isNonTypeAliasTemplate","emitNewLineBeforeLeadingComments","leadingComments","emitNewLineBeforeLeadingCommentsOfPosition","removeComments","currentDetachedCommentInfo","isPinnedCommentLocal","detachedComments","lastComment","lastCommentLine","emitComments","leadingSeparator","trailingSeparator","emitInterveningSeparator","nodePos","detachedCommentEndPos","firstCommentLineAndCharacter","firstCommentLineIndent","currentLine","nextLineStart","calculateIndent","spacesToEmit","numberOfSingleSpacesToEmit","indentSizeSpaceString","writeTrimmedCurrentLine","currentLineText","currentLineIndent","getModifierFlagsWorker","includeJSDoc","alwaysIncludeJSDoc","modifierFlagsCache","getRawJSDocModifierFlagsNoCache","selectEffectiveModifierFlags","selectSyntacticModifierFlags","getJSDocModifierFlagsNoCache","modifier","cls","isImplements","excludeCompoundAssignment","baseStr","isExportDefaultSymbol","localSymbol","supportedTSExtensionsForExtractExtension","base64Digits","getExpandedCharCodes","byte1","byte2","byte3","byte4","expandedCharCodes","ch1","ch3","ch4","code1","code2","code3","getStringFromExpandedCharCodes","codes","nextCode","hostOrText","jsonText","looseResult","config","carriageReturnLineFeed","lineFeed","range1","range2","includeSecondRangeComments","range2Start","list","includeComments","stopPos","prevPos","getPreviousNonWhitespacePosition","r1","r2","checkFlags","isWrite","getAliasedSymbol","exportSymbol","accessKind","parentAccess","reverseAccessKind","dst","src","onDeleteValue","newMap","onExistingValue","existingValue","createNewValue","valueInNewMap","lastChild","walkAccessExpression","access","stopAtCallExpressions","Symbol4","mergeId","constEnumOnlyModule","isReferenced","lastAssignmentPos","Type3","Signature2","Node4","Token","Identifier2","SourceMapSource","localizedDiagnosticMessages","getPrivateIdentifierConstructor","getSourceMapSourceConstructor","objectAllocatorPatchers","alloc","_match","messages","getMessages","isDiagnosticWithDetachedLocation","attachFileToDiagnostic","diagnosticWithLocation","related","diagnosticsWithLocation","chain","details","headChain","tailChain","lastChain","getDiagnosticFilePath","d1","d2","compareRelatedInformation","d1i","getDiagnosticCode","compareMessageText","headMsg1","getDiagnosticMessage","headMsg2","chain1","chain2","compareMessageChain","c2","compareMessageChainSize","compareMessageChainContent","msg1","messageTextEqualityComparer","m1","m2","t1","t2","walkTreeForJSXTags","isFileModuleFromUsingJSXTag","isFileForcedToBeModuleByFormat","checks","jsx","combined","moduleResolution","_computedOptions","allowImportingTsExtensions","dependencies","computeValue","moduleDetection","isolatedModules","verbatimModuleSyntax","esModuleInterop","allowSyntheticDefaultImports","resolvePackageJsonExports","resolvePackageJsonImports","resolveJsonModule","preserveConstEnums","incremental","declarationMap","allowJs","useDefineForClassFields","noImplicitAny","noImplicitThis","strictNullChecks","strictFunctionTypes","strictBindCallApply","strictPropertyInitialization","strictBuiltinIteratorReturn","alwaysStrict","useUnknownInCatchVariables","allowUnreachableCode","allowUnusedLabels","strict","option","strictFlag","allowJsFlag","jsxImportSourcePragmas","pragmas","jsxImportSourcePragma","jsxRuntimePragmas","jsxRuntimePragma","jsxImportSource","seenAsterisk","symlinkedDirectories","symlinkedDirectoriesByRealpath","symlinkedFiles","hasProcessedResolutions","getSymlinkedFiles","getSymlinkedDirectories","getSymlinkedDirectoriesByRealpath","setSymlinkedFile","real","setSymlinkedDirectory","symlink","symlinkPath","realPath","setSymlinksFromResolutions","forEachResolvedModule","forEachResolvedTypeReferenceDirective","typeReferenceDirectives","processResolution","setSymlinksFromResolution","hasAnySymlinks","commonResolved","commonOriginal","guessDirectorySymlink","aParts","bParts","isNodeModulesOrScopedPackageDirectory","withoutPrefix","stripLeadingDirectorySeparator","reservedCharacterPattern","escapeRegExpCharacter","wildcardCharCodes","implicitExcludePathRegexPattern","filesMatcher","singleAsteriskRegexFragment","doubleAsteriskRegexFragment","replaceWildcardCharacter","directoriesMatcher","excludeMatcher","wildcardMatchers","exclude","specs","patterns","pattern2","lastPathComponent","replaceWildcardCharacter2","subpattern","hasWrittenComponent","lastComponent","optionalCount","componentPattern","absolutePath","includeFilePatterns","includeFilePattern","includeDirectoryPattern","excludePattern","basePaths","getBasePaths","getFileSystemEntries","includeFileRegexes","includeDirectoryRegex","excludeRegex","visited","toCanonical","visitDirectory","depth2","canonicalPath","absoluteName","includeIndex","re","includeBasePaths","include","absolute","getIncludeBasePath","includeBasePath","wildcardOffset","supportedTSExtensions","supportedTSExtensionsWithJson","allSupportedExtensions","allSupportedExtensionsWithJson","extraFileExtensions","needJsExtensions","builtins","flatBuiltins","isJSLike","supportedExtensions","ModuleSpecifierEnding2","preference","resolutionMode","moduleResolutionIsNodeNext","inferPreference","usesExtensionsOnImports","imports","hasExtension2","usesJsExtensions","specifiers","getRequiresAtTopOfFile","requires","nonRequireStatementCount","r","numberOfDirectorySeparators","path1","extensionsToRemove","indexOfStar","parsedPatternsCache","matchableStringSet","pathList","patternOrStr","parsedPatterns","getValue","skipTypeCheckingWorker","ignoreNoCheck","skipLibCheck","skipDefaultLibCheck","hasNoDefaultLib","noCheck","isCheckJs","stringValue","log2Base","nIndex","nonZeroStart","endIndex","bitsNeeded","segments","bitOffset","segment","digitChar","shiftedDigit","residual","firstNonzeroSegment","segmentsRemaining","mod10","newSegment","segmentValue","roundTripOnly","success","useSite","isIdentifierInNonEmittingHeritageClause","isPartOfPossiblyValidTypeOrAbstractComputedPropertyName","containerKind","isShorthandPropertyNameUseSite","width","newFlags","rootNode","bindParentToChildIgnoringJSDoc","bindParentToChild","bindJSDoc","isPackedElement","parent3","parent4","stringNamed","isMethod","isMethodNamedNew","createIdentifier","createNumericLiteral","createStringLiteral","isThisType","fullPath","States","topLevelNodeModulesIndex","topLevelPackageNameIndex","packageRootIndex","fileNameIndex","States2","partStart","partEnd","isBracketed","firstChar","attributes","stringReplace","replacement","isSyntacticallyString","resolvedOtherFiles","hasExternalReferences","evaluateElementAccessExpression","evaluateEntityNameExpression","evaluate","location","evaluateTemplateExpression","spanResult","requireSymbol","argumentsSymbol","getSymbolOfDeclaration","globals","setRequiresScopeChangeCache","getRequiresScopeChangeCache","onPropertyWithInvalidInitializer","onFailedToResolveSymbol","onSuccessfullyResolvedSymbol","isolatedModulesLikeFlagName","emitStandardClassFields","emptySymbols","resolveNameHelper","nameArg","meaning","nameNotFoundMessage","isUse","excludeGlobals","originalLocation","lastLocation","lastSelfReferenceLocation","propertyWithInvalidInitializer","associatedDeclarationForContainingInitializerOrBindingName","withinDeferredContext","loop","locals","useResult","useOuterVariableScopeInParameter","trueType","getIsDeferredContext","moduleExports","moduleExport","isTypeParameterSymbolDeclaredInContainer","className","functionName","parameterName","typeParameter","isSelfReferenceLocation","functionLocation","declarationRequiresScopeChange","requiresScopeChange","requiresScopeChangeWorker","includeBigInt","unprefixedNodeCoreModulesList","includeTypeSpaceImports","isJavaScriptFile","getNodeAtPosition","lastIndex","moduleNameExpr","getContainingChild","libReference","libName","resolvedProjectReferences","resolvedRef","projectReferences","cbResolvedRef","cbRef","seenResolvedRefs","worker","projectReferences2","resolvedProjectReferences2","skipChildren","commandLine","references","optionsObject","getPropertyArrayElementValue","clone2","getSynthesizedDeepCloneWorker","replaceNode","nodeClone","ns","createStringLiteralFromNode","cloneNode","cloned","createNodeArray","hasTrailingComma","addEmitFlagsRecursively","getFirstChild","getChild","NodeConstructor2","TokenConstructor2","IdentifierConstructor2","PrivateIdentifierConstructor2","SourceFileConstructor2","createBaseSourceFileNode","createBaseIdentifierNode","createBasePrivateIdentifierNode","createBaseTokenNode","createBaseNode","factory2","binaryLeftOperandParenthesizerCache","binaryRightOperandParenthesizerCache","getParenthesizeLeftSideOfBinaryForOperator","parenthesizerRule","parenthesizeLeftSideOfBinary","getParenthesizeRightSideOfBinaryForOperator","parenthesizeRightSideOfBinary","parenthesizeExpressionOfComputedPropertyName","createParenthesizedExpression","parenthesizeConditionOfConditionalExpression","conditionalPrecedence","emittedCondition","parenthesizeBranchOfConditionalExpression","branch","parenthesizeExpressionOfExportDefault","check","needsParens","parenthesizeExpressionOfNew","leftmostExpr","parenthesizeLeftSideOfAccess","parenthesizeOperandOfPostfixUnary","parenthesizeOperandOfPrefixUnary","parenthesizeExpressionsOfCommaDelimitedList","parenthesizeExpressionForDisallowedComma","parenthesizeExpressionOfExpressionStatement","emittedExpression","callee","updated","updateCallExpression","restoreOuterExpressions","leftmostExpressionKind","parenthesizeConciseBodyOfArrowFunction","parenthesizeCheckTypeOfConditionalType","parenthesizeExtendsTypeOfConditionalType","createParenthesizedType","parenthesizeConstituentTypesOfUnionType","parenthesizeConstituentTypeOfUnionType","parenthesizeConstituentTypesOfIntersectionType","parenthesizeConstituentTypeOfIntersectionType","parenthesizeOperandOfTypeOperator","parenthesizeOperandOfReadonlyTypeOperator","parenthesizeNonArrayTypeOfPostfixType","parenthesizeElementTypesOfTupleType","parenthesizeElementTypeOfTupleType","parenthesizeTypeOfOptionalType","hasJSDocPostfixQuestion","parenthesizeTypeArguments","parenthesizeOrdinalTypeArgument","parenthesizeLeadingTypeArgument","getLiteralKindOfBinaryPlusOperand","cachedLiteralKind","leftKind","literalKind","parenthesizeBinaryOperand","isLeftSideOfBinary","leftOperand","binaryOperandNeedsParentheses","binaryOperatorPrecedence","binaryOperatorAssociativity","emittedOperand","operatorHasAssociativeProperty","leftSide","rightSide","optionalChain","postfix","falseType","_binaryOperator","_leftSide","convertToFunctionBlock","multiLine","returnStatement","createReturnStatement","createBlock","convertToFunctionExpression","createFunctionExpression","convertToClassExpression","createClassExpression","convertToArrayAssignmentElement","convertToObjectAssignmentElement","convertToAssignmentPattern","convertToObjectAssignmentPattern","convertToArrayAssignmentPattern","convertToAssignmentElementTarget","createSpreadElement","createAssignment","createSpreadAssignment","createPropertyAssignment","createShorthandPropertyAssignment","createObjectLiteralExpression","createArrayLiteralExpression","rawTextScanner","nextAutoGenerateId","NodeFactoryFlags2","nodeFactoryPatchers","baseFactory2","setOriginal","parenthesizerRules","converters","getBinaryCreateFunction","createBinaryExpression","getPrefixUnaryCreateFunction","createPrefixUnaryExpression","getPostfixUnaryCreateFunction","createPostfixUnaryExpression","getJSDocPrimaryTypeCreateFunction","createJSDocPrimaryTypeWorker","getJSDocUnaryTypeCreateFunction","createJSDocUnaryTypeWorker","getJSDocUnaryTypeUpdateFunction","updateJSDocUnaryTypeWorker","getJSDocPrePostfixUnaryTypeCreateFunction","createJSDocPrePostfixUnaryTypeWorker","getJSDocPrePostfixUnaryTypeUpdateFunction","updateJSDocPrePostfixUnaryTypeWorker","getJSDocSimpleTagCreateFunction","createJSDocSimpleTagWorker","getJSDocSimpleTagUpdateFunction","updateJSDocSimpleTagWorker","getDefaultTagName","getJSDocTypeLikeTagCreateFunction","createJSDocTypeLikeTagWorker","getJSDocTypeLikeTagUpdateFunction","updateJSDocTypeLikeTagWorker","parenthesizer","baseFactory","createBigIntLiteral","sourceNode","createBaseStringLiteral","createRegularExpressionLiteral","createLiteralLikeNode","createJsxText","createTemplateLiteralLikeNode","createTempVariable","createLoopVariable","reservedInNestedScopes","flags2","createBaseGeneratedIdentifier","createUniqueName","getGeneratedNameForNode","createPrivateIdentifier","createBasePrivateIdentifier","createUniquePrivateName","createBaseGeneratedPrivateIdentifier","getGeneratedPrivateNameForNode","createToken","createSuper","createThis","createNull","createTrue","createFalse","createModifier","createModifiersFromModifierFlags","createQualifiedName","updateQualifiedName","createComputedPropertyName","updateComputedPropertyName","createTypeParameterDeclaration","updateTypeParameterDeclaration","createParameterDeclaration","updateParameterDeclaration","createDecorator","updateDecorator","createPropertySignature","updatePropertySignature","createPropertyDeclaration","updatePropertyDeclaration","updatePropertyDeclaration2","createMethodSignature","updateMethodSignature","createMethodDeclaration","updateMethodDeclaration","createConstructorDeclaration","updateConstructorDeclaration","createGetAccessorDeclaration","updateGetAccessorDeclaration","createSetAccessorDeclaration","updateSetAccessorDeclaration","createCallSignature","updateCallSignature","finishUpdateBaseSignatureDeclaration","createConstructSignature","updateConstructSignature","createIndexSignature","updateIndexSignature","createClassStaticBlockDeclaration","updateClassStaticBlockDeclaration","finishUpdateClassStaticBlockDeclaration","createTemplateLiteralTypeSpan","updateTemplateLiteralTypeSpan","createKeywordTypeNode","createTypePredicateNode","updateTypePredicateNode","assertsModifier","createTypeReferenceNode","updateTypeReferenceNode","createFunctionTypeNode","updateFunctionTypeNode","finishUpdateFunctionTypeNode","createConstructorTypeNode","updateConstructorTypeNode","updateConstructorTypeNode1","updateConstructorTypeNode2","createTypeQueryNode","updateTypeQueryNode","exprName","createTypeLiteralNode","updateTypeLiteralNode","createArrayTypeNode","updateArrayTypeNode","createTupleTypeNode","updateTupleTypeNode","createNamedTupleMember","updateNamedTupleMember","createOptionalTypeNode","updateOptionalTypeNode","createRestTypeNode","updateRestTypeNode","createUnionTypeNode","createUnionOrIntersectionTypeNode","updateUnionTypeNode","updateUnionOrIntersectionTypeNode","createIntersectionTypeNode","updateIntersectionTypeNode","createConditionalTypeNode","updateConditionalTypeNode","createInferTypeNode","updateInferTypeNode","createImportTypeNode","updateImportTypeNode","qualifier","updateParenthesizedType","createThisTypeNode","createTypeOperatorNode","updateTypeOperatorNode","createIndexedAccessTypeNode","updateIndexedAccessTypeNode","createMappedTypeNode","updateMappedTypeNode","readonlyToken","nameType","createLiteralTypeNode","updateLiteralTypeNode","createTemplateLiteralType","updateTemplateLiteralType","createObjectBindingPattern","updateObjectBindingPattern","createArrayBindingPattern","updateArrayBindingPattern","createBindingElement","updateBindingElement","updateArrayLiteralExpression","updateObjectLiteralExpression","createPropertyAccessExpression","updatePropertyAccessExpression","updatePropertyAccessChain","createPropertyAccessChain","createElementAccessExpression","updateElementAccessExpression","updateElementAccessChain","createElementAccessChain","createCallExpression","argumentsArray","updateCallChain","createCallChain","createNewExpression","updateNewExpression","createTaggedTemplateExpression","updateTaggedTemplateExpression","createTypeAssertion","updateTypeAssertion","updateParenthesizedExpression","updateFunctionExpression","createArrowFunction","updateArrowFunction","createDeleteExpression","updateDeleteExpression","createTypeOfExpression","updateTypeOfExpression","createVoidExpression","updateVoidExpression","createAwaitExpression","updateAwaitExpression","updatePrefixUnaryExpression","updatePostfixUnaryExpression","updateBinaryExpression","createConditionalExpression","updateConditionalExpression","whenTrue","colonToken","whenFalse","createTemplateExpression","updateTemplateExpression","createTemplateHead","checkTemplateLiteralLikeNode","createTemplateMiddle","createTemplateTail","createNoSubstitutionTemplateLiteral","createTemplateLiteralLikeDeclaration","createYieldExpression","updateYieldExpression","updateSpreadElement","updateClassExpression","createOmittedExpression","createExpressionWithTypeArguments","updateExpressionWithTypeArguments","createAsExpression","updateAsExpression","createNonNullExpression","updateNonNullExpression","createSatisfiesExpression","updateSatisfiesExpression","createNonNullChain","updateNonNullChain","createMetaProperty","updateMetaProperty","createTemplateSpan","updateTemplateSpan","createSemicolonClassElement","updateBlock","createVariableStatement","updateVariableStatement","createEmptyStatement","createExpressionStatement","updateExpressionStatement","createIfStatement","updateIfStatement","thenStatement","elseStatement","createDoStatement","updateDoStatement","createWhileStatement","updateWhileStatement","createForStatement","updateForStatement","createForInStatement","updateForInStatement","createForOfStatement","updateForOfStatement","awaitModifier","createContinueStatement","updateContinueStatement","label","createBreakStatement","updateBreakStatement","updateReturnStatement","createWithStatement","updateWithStatement","createSwitchStatement","updateSwitchStatement","createLabeledStatement","updateLabeledStatement","createThrowStatement","updateThrowStatement","createTryStatement","updateTryStatement","tryBlock","catchClause","finallyBlock","createDebuggerStatement","createVariableDeclaration","updateVariableDeclaration","createVariableDeclarationList","updateVariableDeclarationList","createFunctionDeclaration","updateFunctionDeclaration","createClassDeclaration","updateClassDeclaration","createInterfaceDeclaration","updateInterfaceDeclaration","createTypeAliasDeclaration","updateTypeAliasDeclaration","createEnumDeclaration","updateEnumDeclaration","createModuleDeclaration","updateModuleDeclaration","createModuleBlock","updateModuleBlock","createCaseBlock","updateCaseBlock","createNamespaceExportDeclaration","updateNamespaceExportDeclaration","finishUpdateNamespaceExportDeclaration","createImportEqualsDeclaration","updateImportEqualsDeclaration","createImportDeclaration","updateImportDeclaration","createImportClause","createImportClause2","updateImportClause","createAssertClause","updateAssertClause","createAssertEntry","updateAssertEntry","createImportTypeAssertionContainer","updateImportTypeAssertionContainer","assertClause","createImportAttributes","updateImportAttributes","createImportAttribute","updateImportAttribute","createNamespaceImport","updateNamespaceImport","createNamespaceExport","updateNamespaceExport","createNamedImports","updateNamedImports","createImportSpecifier","updateImportSpecifier","createExportAssignment","createExportAssignment2","updateExportAssignment","createExportDeclaration","updateExportDeclaration","createNamedExports","updateNamedExports","createExportSpecifier","updateExportSpecifier","createMissingDeclaration","createBaseDeclaration","createExternalModuleReference","updateExternalModuleReference","createJSDocAllType","createJSDocUnknownType","createJSDocNonNullableType","updateJSDocNonNullableType","createJSDocNullableType","updateJSDocNullableType","createJSDocOptionalType","updateJSDocOptionalType","createJSDocVariadicType","updateJSDocVariadicType","createJSDocNamepathType","updateJSDocNamepathType","createJSDocFunctionType","updateJSDocFunctionType","createJSDocTypeLiteral","updateJSDocTypeLiteral","propertyTags","isArrayType","jsDocPropertyTags","createJSDocTypeExpression","updateJSDocTypeExpression","createJSDocSignature","updateJSDocSignature","createJSDocTemplateTag","updateJSDocTemplateTag","createJSDocTypedefTag","updateJSDocTypedefTag","fullName","createJSDocParameterTag","updateJSDocParameterTag","isNameFirst","createJSDocPropertyTag","updateJSDocPropertyTag","createJSDocCallbackTag","updateJSDocCallbackTag","createJSDocOverloadTag","updateJSDocOverloadTag","createJSDocAugmentsTag","updateJSDocAugmentsTag","createJSDocImplementsTag","updateJSDocImplementsTag","createJSDocSeeTag","updateJSDocSeeTag","createJSDocImportTag","updateJSDocImportTag","createJSDocNameReference","updateJSDocNameReference","createJSDocMemberName","updateJSDocMemberName","createJSDocLink","updateJSDocLink","createJSDocLinkCode","updateJSDocLinkCode","createJSDocLinkPlain","updateJSDocLinkPlain","createJSDocTypeTag","updateJSDocTypeTag","createJSDocReturnTag","updateJSDocReturnTag","createJSDocThisTag","updateJSDocThisTag","createJSDocAuthorTag","updateJSDocAuthorTag","createJSDocClassTag","updateJSDocClassTag","createJSDocPublicTag","updateJSDocPublicTag","createJSDocPrivateTag","updateJSDocPrivateTag","createJSDocProtectedTag","updateJSDocProtectedTag","createJSDocReadonlyTag","updateJSDocReadonlyTag","createJSDocOverrideTag","updateJSDocOverrideTag","createJSDocDeprecatedTag","updateJSDocDeprecatedTag","createJSDocThrowsTag","updateJSDocThrowsTag","createJSDocSatisfiesTag","updateJSDocSatisfiesTag","createJSDocEnumTag","updateJSDocEnumTag","createJSDocUnknownTag","updateJSDocUnknownTag","createJSDocText","updateJSDocText","createJSDocComment","updateJSDocComment","createJsxElement","updateJsxElement","openingElement","closingElement","createJsxSelfClosingElement","updateJsxSelfClosingElement","createJsxOpeningElement","updateJsxOpeningElement","createJsxClosingElement","updateJsxClosingElement","createJsxFragment","updateJsxText","createJsxOpeningFragment","createJsxJsxClosingFragment","updateJsxFragment","openingFragment","closingFragment","createJsxAttribute","updateJsxAttribute","createJsxAttributes","updateJsxAttributes","createJsxSpreadAttribute","updateJsxSpreadAttribute","createJsxExpression","updateJsxExpression","createJsxNamespacedName","updateJsxNamespacedName","createCaseClause","updateCaseClause","createDefaultClause","updateDefaultClause","createHeritageClause","updateHeritageClause","createCatchClause","updateCatchClause","variableDeclaration","block","updatePropertyAssignment","updateShorthandPropertyAssignment","finishUpdateShorthandPropertyAssignment","updateSpreadAssignment","createEnumMember","updateEnumMember","createSourceFile2","endOfFileToken","resolvedPath","originalFileName","propagateChildrenFlags","propagateChildFlags","nextContainer","endFlowNode","nodeCount","identifierCount","symbolCount","parseDiagnostics","bindDiagnostics","bindSuggestionDiagnostics","setExternalModuleIndicator","referencedFiles","libReferenceDirectives","amdDependencies","packageJsonLocations","moduleAugmentations","ambientModuleNames","classifiableNames","impliedNodeFormat","updateSourceFile2","cloneSourceFileWithChanges","typeReferences","libReferences","cloneSourceFile","createRedirectedSourceFile","createBundle","updateBundle","createSyntheticExpression","isSpread","tupleNameSource","createSyntaxList","createSyntaxList3","_children","createNotEmittedStatement","createNotEmittedTypeElement","createPartiallyEmittedExpression","updatePartiallyEmittedExpression","createCommaListExpression","updateCommaListExpression","createSyntheticReferenceExpression","updateSyntheticReferenceExpression","thisArg","createComma","createLogicalOr","createLogicalAnd","createBitwiseOr","createBitwiseXor","createBitwiseAnd","createStrictEquality","createStrictInequality","createEquality","createInequality","createLessThan","createLessThanEquals","createGreaterThan","createGreaterThanEquals","createLeftShift","createRightShift","createUnsignedRightShift","createAdd","createSubtract","createMultiply","createDivide","createModulo","createExponent","createPrefixPlus","createPrefixMinus","createPrefixIncrement","createPrefixDecrement","createBitwiseNot","createLogicalNot","createPostfixIncrement","createPostfixDecrement","createImmediatelyInvokedFunctionExpression","paramValue","createImmediatelyInvokedArrowFunction","createVoidZero","createExportDefault","createExternalModuleExport","exportName","createTypeCheck","createIsNotTypeCheck","createMethodCall","createGlobalMethodCall","createFunctionBindCall","argumentsList","createFunctionCallCall","createFunctionApplyCall","argumentsExpression","createArraySliceCall","asExpression","createArrayConcatCall","createObjectDefinePropertyCall","createObjectGetOwnPropertyDescriptorCall","createReflectGetCall","propertyKey","receiver","createReflectSetCall","createPropertyDescriptor","singleLine","tryAddPropertyAssignment","configurable","isData","writable","isAccessor2","createCallBinding","recordTempVariable","cacheIdentifiers","shouldBeCapturedInTempVariable","createAssignmentTargetWrapper","paramName","inlineExpressions","expressions","getInternalName","allowComments","allowSourceMaps","getLocalName","ignoreAssignedName","getExportName","getDeclarationName","getNamespaceMemberName","getExternalModuleOrNamespaceExportName","outerExpression","innerExpression","kinds","isIgnorableParen","updateOuterExpression","restoreEnclosingLabel","outermostLabeledStatement","afterRestoreLabelCallback","createUseStrictPrologue","copyPrologue","ensureUseStrict2","copyStandardPrologue","copyCustomPrologue","ensureUseStrict","liftToBlock","mergeLexicalEnvironment","leftStandardPrologueEnd","findSpanEnd","leftHoistedFunctionsEnd","leftHoistedVariablesEnd","rightStandardPrologueEnd","rightHoistedFunctionsEnd","rightHoistedVariablesEnd","rightCustomPrologueEnd","leftPrologues","leftPrologue","rightPrologue","replaceModifiers","modifierArray","equalsGreaterThanToken","replaceDecoratorsAndModifiers","replacePropertyName","aggregateChildrenFlags","createBaseToken","isSingleQuote","createBaseIdentifier","autoGenerateFlags","asName","propagateIdentifierNameFlags","defaultType","asNodeArray","asInitializer","propagateNameFlags","finishUpdatePropertySignature","questionOrExclamationToken","isAmbient","isAsync","isGenerator","isAsyncGenerator","returnFlowNode","finishUpdateMethodDeclaration","finishUpdateConstructorDeclaration","finishUpdateGetAccessorDeclaration","finishUpdateSetAccessorDeclaration","createConstructorTypeNode1","createConstructorTypeNode2","parenthesize","assertions","lastElement","elementsArray","createBasePropertyAccessExpression","createBaseElementAccessExpression","createBaseCallExpression","asToken","propagateAssignmentPatternFlags","flowNodeWhenFalse","flowNodeWhenTrue","cooked","getCookedText","invalidValueSentinel","getTransformFlagsOfTemplateLiteralLike","createTemplateLiteralLikeToken","asEmbeddedStatement","possiblyExhaustive","finishUpdateFunctionDeclaration","isExportEquals","finishUpdateExportDeclaration","defaultTagName","getDefaultTagNameForKind","createBaseJSDocTag","createBaseJSDocTagDeclaration","asVariableDeclaration","finishUpdatePropertyAssignment","redirectInfo","redirectTarget","cloneRedirectedSourceFile","cloneSourceFileWorker","syntheticFileReferences","syntheticTypeReferences","syntheticLibReferences","flattenCommaElements","cloneGeneratedIdentifier","cloneIdentifier","cloneGeneratedPrivateIdentifier","clonePrivateIdentifier","methodName","globalObjectName","emitFlags","nodeName","qualifiedName","isUseStrictPrologue2","statementOffset","foundUseStrict","numStatements","filter2","childFlags","getTransformFlagsSubtreeExclusions","propagatePropertyNameFlagsOfChild","subtreeFlags","makeSynthetic","SourceMapSource2","mergeEmitNode","sourceEmitNode","destEmitNode","trailingComments","commentRange","sourceMapRange","tokenSourceMapRanges","constantValue","helpers","startsOnNewLine","snippetElement","classThis","assignedName","mergeTokenSourceMapRanges","sourceRanges","destRanges","helper","annotatedNodes","emit","sourceEmitHelpers","targetEmitNode","helpersRemoved","snippet","typeNode","identifierTypeArguments","generatedImportReference","PrivateIdentifierKind2","context","immutableTrue","immutableFalse","getUnscopedHelperName","createDecorateHelper","decoratorExpressions","memberName","requestEmitHelper","decorateHelper","createMetadataHelper","metadataKey","metadataValue","metadataHelper","createParamHelper","parameterOffset","paramHelper","createESDecorateHelper","descriptorIn","decorators","contextIn","initializers","extraInitializers","esDecorateHelper","createESDecorateContextObject","createRunInitializersHelper","runInitializersHelper","createAssignHelper","attributesSegments","assignHelper","createAwaitHelper","awaitHelper","createAsyncGeneratorHelper","generatorFunc","hasLexicalThis","asyncGeneratorHelper","createAsyncDelegatorHelper","asyncDelegator","createAsyncValuesHelper","asyncValues","createRestHelper","computedTempVariables","restHelper","propertyNames","computedTempVariableOffset","createAwaiterHelper","promiseConstructor","awaiterHelper","createExtendsHelper","extendsHelper","createTemplateObjectHelper","raw","templateObjectHelper","createSpreadArrayHelper","packFrom","spreadArrayHelper","createPropKeyHelper","propKeyHelper","createSetFunctionNameHelper","setFunctionNameHelper","createValuesHelper","valuesHelper","createReadHelper","iteratorRecord","readHelper","createGeneratorHelper","generatorHelper","createImportStarHelper","importStarHelper","createImportStarCallbackHelper","createImportDefaultHelper","importDefaultHelper","createExportStarHelper","moduleExpression","exportsExpression","exportStarHelper","createBindingHelper","createClassPrivateFieldGetHelper","classPrivateFieldGetHelper","createClassPrivateFieldSetHelper","classPrivateFieldSetHelper","createClassPrivateFieldInHelper","classPrivateFieldInHelper","createAddDisposableResourceHelper","envBinding","addDisposableResourceHelper","createDisposeResourcesHelper","disposeResourcesHelper","createRewriteRelativeImportExtensionsHelper","rewriteRelativeImportExtensionsHelper","createESDecorateClassElementAccessObject","createESDecorateClassElementAccessHasMethod","elementName","computed","createESDecorateClassElementAccessGetMethod","createESDecorateClassElementAccessSetMethod","createESDecorateClassContextObject","metadata","createESDecorateClassElementContextObject","priority","helperString","uniqueName","importName","scoped","firstSegment","helperName","BinaryExpressionState","sourceFileToNodeChildren","origSourceFile","createReactNamespace","reactNamespace","react","createJsxFactoryExpressionFromEntityName","jsxFactory","jsxFactoryEntity","props","jsxFragmentFactoryEntity","parentElement","createJsxFragmentFactoryExpression","boundValue","updatedDeclaration","updatedExpression","createExpressionForAccessorDeclaration","createExpressionForPropertyAssignment","createExpressionForShorthandPropertyAssignment","createExpressionForMethodDeclaration","method","resultVariable","operation","isUseStrictPrologue","firstStatement","externalHelpersModuleName","externalHelpers","nodeFactory","helperFactory","hasExportStarsToExportValues","hasImportStar","hasImportDefault","importHelpers","impliedModuleKind","getImportedHelpers","helperNames","externalHelpersImportDeclaration","getOrCreateExternalHelpersModuleNameIfNeeded","hasImportStarOrImportDefault","namespaceDeclaration","importNode","tryGetModuleNameFromDeclaration","tryRenameExternalModule","rename","renamedDependencies","isStringOrNumericLiteral","rightNode","isShiftOperator","isAdditiveOperatorOrHigher","isAdditiveOperator","isMultiplicativeOperatorOrHigher","isExponentiationOperator","isMultiplicativeOperator","isEqualityOperatorOrHigher","isEqualityOperator","isRelationalOperatorOrHigher","isRelationalOperator","isLogicalOperatorOrHigher","isLogicalOperator2","isBitwiseOperatorOrHigher","isBitwiseOperator","isBinaryOperator","isAssignmentOperatorOrHigher","BinaryExpressionState2","machine","stackIndex","stateStack","nodeStack","userStateStack","_resultHolder","outerState","prevUserState","onEnter","nextState","_outerState","onLeft","nextNode","checkCircularity","pushStack","onOperator","onRight","resultHolder","onExit","foldState","side","_machine","_nodeStack","_userStateStack","currentState","NodeConstructor","TokenConstructor","IdentifierConstructor","PrivateIdentifierConstructor","SourceFileConstructor","BinaryExpressionStateMachine","trampoline","isExportOrDefaultKeywordKind","autoGenerateId","autoGenerate2","generateName","formatIdentifier","formatIdentifierWorker","privateName","baseName","flattenCommaListWorker","isSyntheticParenthesizedExpression","visitNode2","cbNode","cbNodes","isAnExternalModuleIndicatorNode","getImportMetaIfNecessary","walkTreeForImportMeta","hasModifierOfKind","isImportMeta2","Parser","forEachChildTable","forEachChildInQualifiedName","_cbNodes","forEachChildInTypeParameter","forEachChildInShorthandPropertyAssignment","forEachChildInSpreadAssignment","forEachChildInParameter","forEachChildInPropertyDeclaration","forEachChildInPropertySignature","forEachChildInPropertyAssignment","forEachChildInVariableDeclaration","forEachChildInBindingElement","forEachChildInIndexSignature","forEachChildInConstructorType","forEachChildInFunctionType","forEachChildInCallOrConstructSignature","forEachChildInMethodDeclaration","forEachChildInMethodSignature","forEachChildInConstructor","forEachChildInGetAccessor","forEachChildInSetAccessor","forEachChildInFunctionDeclaration","forEachChildInFunctionExpression","forEachChildInArrowFunction","forEachChildInClassStaticBlockDeclaration","forEachChildInTypeReference","forEachChildInTypePredicate","forEachChildInTypeQuery","forEachChildInTypeLiteral","forEachChildInArrayType","forEachChildInTupleType","forEachChildInUnionOrIntersectionType","forEachChildInConditionalType","forEachChildInInferType","forEachChildInImportType","forEachChildInImportTypeAssertionContainer","forEachChildInParenthesizedTypeOrTypeOperator","forEachChildInIndexedAccessType","forEachChildInMappedType","forEachChildInLiteralType","forEachChildInNamedTupleMember","forEachChildInObjectOrArrayBindingPattern","forEachChildInArrayLiteralExpression","forEachChildInObjectLiteralExpression","forEachChildInPropertyAccessExpression","forEachChildInElementAccessExpression","forEachChildInCallOrNewExpression","forEachChildInTaggedTemplateExpression","forEachChildInTypeAssertionExpression","forEachChildInParenthesizedExpression","forEachChildInDeleteExpression","forEachChildInTypeOfExpression","forEachChildInVoidExpression","forEachChildInPrefixUnaryExpression","forEachChildInYieldExpression","forEachChildInAwaitExpression","forEachChildInPostfixUnaryExpression","forEachChildInBinaryExpression","forEachChildInAsExpression","forEachChildInNonNullExpression","forEachChildInSatisfiesExpression","forEachChildInMetaProperty","forEachChildInConditionalExpression","forEachChildInSpreadElement","forEachChildInBlock","forEachChildInSourceFile","forEachChildInVariableStatement","forEachChildInVariableDeclarationList","forEachChildInExpressionStatement","forEachChildInIfStatement","forEachChildInDoStatement","forEachChildInWhileStatement","forEachChildInForStatement","forEachChildInForInStatement","forEachChildInForOfStatement","forEachChildInContinueOrBreakStatement","forEachChildInReturnStatement","forEachChildInWithStatement","forEachChildInSwitchStatement","forEachChildInCaseBlock","forEachChildInCaseClause","forEachChildInDefaultClause","forEachChildInLabeledStatement","forEachChildInThrowStatement","forEachChildInTryStatement","forEachChildInCatchClause","forEachChildInDecorator","forEachChildInClassDeclarationOrExpression","forEachChildInInterfaceDeclaration","forEachChildInTypeAliasDeclaration","forEachChildInEnumDeclaration","forEachChildInEnumMember","forEachChildInModuleDeclaration","forEachChildInImportEqualsDeclaration","forEachChildInImportDeclaration","forEachChildInImportClause","forEachChildInImportAttributes","forEachChildInImportAttribute","forEachChildInNamespaceExportDeclaration","forEachChildInNamespaceImport","forEachChildInNamespaceExport","forEachChildInNamedImportsOrExports","forEachChildInExportDeclaration","forEachChildInImportOrExportSpecifier","forEachChildInExportAssignment","forEachChildInTemplateExpression","forEachChildInTemplateSpan","forEachChildInTemplateLiteralType","forEachChildInTemplateLiteralTypeSpan","forEachChildInComputedPropertyName","forEachChildInHeritageClause","forEachChildInExpressionWithTypeArguments","forEachChildInExternalModuleReference","forEachChildInMissingDeclaration","forEachChildInCommaListExpression","forEachChildInJsxElement","forEachChildInJsxFragment","forEachChildInJsxOpeningOrSelfClosingElement","forEachChildInJsxAttributes","forEachChildInJsxAttribute","forEachChildInJsxSpreadAttribute","forEachChildInJsxExpression","forEachChildInJsxClosingElement","forEachChildInJsxNamespacedName","forEachChildInOptionalRestOrJSDocParameterModifier","forEachChildInJSDocFunctionType","forEachChildInJSDoc","forEachChildInJSDocSeeTag","forEachChildInJSDocNameReference","forEachChildInJSDocMemberName","forEachChildInJSDocParameterOrPropertyTag","forEachChildInJSDocAuthorTag","forEachChildInJSDocImplementsTag","forEachChildInJSDocAugmentsTag","forEachChildInJSDocTemplateTag","forEachChildInJSDocTypedefTag","forEachChildInJSDocCallbackTag","forEachChildInJSDocTypeLikeTag","forEachChildInJSDocSignature","forEachChildInJSDocLinkCodeOrPlain","forEachChildInJSDocTypeLiteral","forEachChildInJSDocTag","forEachChildInJSDocImportTag","forEachChildInPartiallyEmittedExpression","gatherPossibleChildren","addWorkItem","languageVersionOrOptions","setParentNodes","Parse","overrideSetExternalModuleIndicator","format","parseSourceFile","setIndicator","textChangeRange","aggressiveChecks","newSourceFile","IncrementalParser","content","JSDocParser","fixupParentReferences","Parser2","disallowInAndDecoratorContext","countNode","sourceFlags","jsDocDiagnostics","syntaxCursor","currentToken","parsingContext","notParenthesizedArrow","contextFlags","factoryCreateNodeArray","factoryCreateNumericLiteral","factoryCreateStringLiteral","factoryCreateLiteralLikeNode","factoryCreateIdentifier","factoryCreatePrivateIdentifier","factoryCreateToken","factoryCreateArrayLiteralExpression","factoryCreateObjectLiteralExpression","factoryCreatePropertyAccessExpression","factoryCreatePropertyAccessChain","factoryCreateElementAccessExpression","factoryCreateElementAccessChain","factoryCreateCallExpression","factoryCreateCallChain","factoryCreateNewExpression","factoryCreateParenthesizedExpression","factoryCreateBlock","factoryCreateVariableStatement","factoryCreateExpressionStatement","factoryCreateIfStatement","factoryCreateWhileStatement","factoryCreateForStatement","factoryCreateForOfStatement","factoryCreateVariableDeclaration","factoryCreateVariableDeclarationList","topLevel","parseErrorBeforeNextFinishedNode","parseJsonText2","sourceText2","syntaxCursor2","initializeState","nextToken","getNodePos","parseTokenNode","expression2","parseArrayLiteralExpression","parsePrefixUnaryExpression","parseObjectLiteralExpression","parseLiteralNode","parseErrorAtCurrentToken","finishNode","parseExpectedToken","clearState","_sourceText","_languageVersion","_syntaxCursor","_scriptKind","_jsDocParsingMode","scanError","scriptKind2","setExternalModuleIndicatorOverride","parseSourceFileWorker","setExternalModuleIndicator2","parseList","parseStatement","endHasJSDoc","withJSDoc","reportPragmaDiagnostic","parseIsolatedEntityName2","parseEntityName","isValid","hasDeprecatedTag","hasJSDoc","parseJSDocComment","setFields","oldSourceFile","reparseTopLevelAwait","savedSyntaxCursor","baseSyntaxCursor","createSyntaxCursor","currentNode","currentNode2","containsPossibleTopLevelAwait","markAsIntersectingIncrementalChange","savedParseDiagnostics","findNextStatementWithAwait","prevStatement","nextStatement","findNextStatementWithoutAwait","diagnosticStart","diagnosticEnd","savedContextFlags","parseListElement","nonAwaitStatement","statements2","sourceFile2","setContextFlag","val","setDisallowInContext","setYieldContext","setDecoratorContext","setAwaitContext","doOutsideOfContext","contextFlagsToClear","doInsideOfContext","contextFlagsToSet","allowInAnd","allowConditionalTypesAnd","disallowConditionalTypesAnd","doInAwaitContext","doOutsideOfAwaitContext","inContext","inYieldContext","inDisallowInContext","inDisallowConditionalTypesContext","inDecoratorContext","inAwaitContext","parseErrorAt","parseErrorAtPosition","lastError","parseErrorAtRange","nextTokenWithoutCheck","nextTokenAnd","nextTokenJSDoc","nextJSDocCommentTextToken","scanJsxText","speculationKind","saveParseDiagnosticsLength","saveParseErrorBeforeNextFinishedNode","saveContextFlags","isBindingIdentifier","isIdentifier2","parseExpected","diagnosticMessage","shouldAdvance","viableKeywordSuggestions","parseErrorForMissingSemicolonAfter","expressionText","parseErrorForInvalidName","getSpaceSuggestion","nameDiagnostic","blankDiagnostic","tokenIfBlankName","parseExpectedJSDoc","parseExpectedMatchingBrackets","openKind","closeKind","openParsed","openPosition","parseOptional","parseOptionalToken","parseOptionalTokenJSDoc","parseTokenNodeJSDoc","createMissingNode","canParseSemicolon","tryParseSemicolon","parseSemicolon","reportAtCurrentPosition","internIdentifier","isIdentifier3","privateIdentifierDiagnosticMessage","msgArg","defaultMessage","parseBindingIdentifier","parseIdentifier","parseIdentifierName","parseIdentifierNameErrorOnUnicodeEscapeSequence","isLiteralPropertyName","parsePropertyNameWorker","allowComputedPropertyNames","parseComputedPropertyName","parseExpression","parsePrivateIdentifier","parsePropertyName","parseContextualModifier","nextTokenCanFollowModifier","nextTokenIsOnSameLineAndCanFollowModifier","canFollowModifier","nextTokenCanFollowDefaultKeyword","nextTokenCanFollowExportModifier","canFollowExportModifier","canFollowGetOrSetKeyword","nextTokenIsClassKeywordOnSameLine","nextTokenIsFunctionKeywordOnSameLine","isListElement2","parsingContext2","inErrorRecovery","isStartOfStatement","isTypeMemberStart","isClassMemberStart","isImportAttributeName2","isValidHeritageClauseObjectLiteral","isHeritageClauseExtendsOrImplementsKeyword","isStartOfLeftHandSideExpression","isBindingIdentifierOrPrivateIdentifierOrPattern","isStartOfExpression","isStartOfParameter","isStartOfType","isHeritageClause2","nextTokenIsStringLiteral","nextTokenIsIdentifier","nextTokenIsIdentifierOrKeyword","nextTokenIsIdentifierOrKeywordOrGreaterThan","nextTokenIsStartOfExpression","nextTokenIsStartOfType","isListTerminator","isVariableDeclaratorListTerminator","isInOrOfKeyword","nextTokenIsSlash","parseElement","saveParsingContext","listPos","abortParsingListOrMoveToNextToken","consumeNode","isReusableParsingContext","intersectsIncrementalChange","intersectingChangeSet","canReuseNode","isReusableClassMember","methodDeclaration","isReusableSwitchClause","isReusableStatement","isReusableEnumMember","isReusableTypeMember","isReusableVariableDeclaration","variableDeclarator","isReusableParameter","parsingContextErrors","isInSomeParsingContext","parseDelimitedList","considerSemicolonAsDelimiter","commaStart","getExpectedCommaDiagnostic","createMissingList","isMissingList","parseBracketedList","open","allowReservedWords","entity","parseRightSideOfDot","allowIdentifierNames","allowPrivateIdentifiers","allowUnicodeEscapeSequenceInIdentifierName","nextTokenIsIdentifierOrKeywordOnSameLine","parseTemplateExpression","parseTemplateHead","parseTemplateSpans","parseTemplateSpan","parseTemplateType","parseTemplateTypeSpans","parseTemplateTypeSpan","parseType","parseLiteralOfTemplateSpan","parseTemplateMiddleOrTemplateTail","fragment","parseLiteralLikeNode","getTemplateLiteralRawText","isLast","tokenText","parseEntityNameOfTypeReference","parseTypeArgumentsOfTypeReference","parseTypeReference","typeHasArrowFunctionBlockingParseError","parseThisTypeNode","parseJSDocParameter","parseJSDocType","moduleTag","terminate","hasDotDotDot","parseTypeOrTypePredicate","parseTypeParameter","parseModifiers","parseUnaryExpressionOrHigher","parseTypeParameters","isJSDocParameter","parseParameter","inOuterAwaitContext","parseParameterWorker","allowAmbiguity","parseTypeAnnotation","savedTopLevel","isParameterNameStart","parseNameOfParameter","parseIdentifierOrPattern","parseInitializer","parseReturnType","returnToken","isType","shouldParseReturnType","parseParametersWorker","savedYieldContext","savedAwaitContext","parseParameterForSpeculation","parseParameters","parseTypeMemberSemicolon","parseSignatureMember","isIndexSignature","isUnambiguouslyIndexSignature","parseIndexSignatureDeclaration","parseTypeMember","nextTokenIsOpenParenOrLessThan","parseAccessorDeclaration","parsePropertyOrMethodSignature","nextTokenIsDot","nextTokenIsOpenParenOrLessThanOrDot","parseObjectTypeMembers","isStartOfMappedType","parseMappedType","parseMappedTypeParameter","parseTupleElementType","isNextTokenColonOrQuestionColon","isTupleElementName","parseTupleElementNameOrTupleElementType","parseFunctionOrConstructorType","parseModifiersForConstructorType","isConstructorType","parseKeywordAndNoDot","parseLiteralTypeNode","isStartOfTypeOfImportType","parseImportType","openBracePosition","currentToken2","parseImportAttributes","nextTokenIsNumericOrBigIntLiteral","parseNonArrayType","parseJSDocAllType","parseJSDocUnknownOrNullableType","parseJSDocFunctionType","nextTokenIsOpenParen","parseJSDocNonNullableType","thisKeyword","parseThisTypePredicate","parseTypeQuery","tryParseTypeArguments","parseTypeLiteral","parseTupleType","parseParenthesizedType","parseAssertsTypePredicate","inStartOfParameter","isStartOfParenthesizedOrFunctionType","parsePostfixTypeOrHigher","tryParseConstraintOfInferType","parseInferType","parseTypeParameterOfInferType","parseTypeOperatorOrHigher","parseTypeOperator","parseFunctionOrConstructorTypeToError","isInUnionType","isStartOfFunctionTypeOrConstructorType","parseUnionOrIntersectionType","parseConstituentType","createTypeNode","isUnionType","hasLeadingOperator","parseIntersectionTypeOrHigher","nextTokenIsNewKeyword","isUnambiguouslyStartOfFunctionType","skipParameterStart","previousErrorCount","typePredicateVariable","parseTypePredicatePrefix","parseUnionTypeOrHigher","isBinaryOperator2","saveDecoratorContext","parseAssignmentExpressionOrHigher","makeBinaryExpression","allowReturnTypeInArrowFunction","isYieldExpression2","nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine","parseYieldExpression","arrowExpression","tryParseParenthesizedArrowFunctionExpression","triState","isParenthesizedArrowFunctionExpression","isParenthesizedArrowFunctionExpressionWorker","parseParenthesizedArrowFunctionExpression","parsePossibleParenthesizedArrowFunctionExpression","tokenPos","tryParseAsyncSimpleArrowFunctionExpression","isUnParenthesizedAsyncArrowFunctionWorker","asyncModifier","parseModifiersForArrowFunction","parseSimpleArrowFunctionExpression","parseBinaryExpressionOrHigher","parseConditionalExpressionRest","nextTokenIsIdentifierOnSameLine","parseArrowFunctionExpressionBody","third","maybeParameters","hasReturnColon","unwrappedType","hasJSDocFunctionType","lastToken","parseFunctionBlock","isStartOfExpressionStatement","precedence","parseBinaryExpressionRest","newPrecedence","keywordKind","makeSatisfiesExpression","makeAsExpression","parseSimpleUnaryExpression","isUpdateExpression","updateExpression","parseUpdateExpression","simpleUnaryExpression","parseDeleteExpression","parseTypeOfExpression","parseVoidExpression","parseJsxElementOrSelfClosingElementOrFragment","parseTypeAssertion","isAwaitExpression2","parseAwaitExpression","parseLeftHandSideExpressionOrHigher","parseMemberExpressionOrHigher","parseSuperExpression","parseTypeArgumentsInExpression","isTemplateStartOfTaggedTemplate","parseCallExpressionRest","parseMemberExpressionRest","parsePrimaryExpression","inExpressionContext","topInvalidNodePosition","openingTag","mustBeUnary","opening","parseJsxOpeningOrSelfClosingElementOrOpeningFragment","parseJsxElementName","parseJsxAttributes","parseJsxAttribute","parseJsxChildren","newLast","parseJsxClosingElement","parseJsxClosingFragment","topBadPos","invalidElement","parseJsxChild","token2","parseJsxText","parseJsxExpression","initialExpression","parseJsxTagName","isThis2","parseJsxSpreadAttribute","parseJsxAttributeName","attrName","parseJsxAttributeValue","nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate","isStartOfOptionalPropertyOrElementAccessChain","tryReparseOptionalChain","parsePropertyAccessExpressionRest","isOptionalChain2","propertyAccess","parseElementAccessExpressionRest","allowOptionalChain","isPropertyAccess","parseTaggedTemplateRest","tagExpression","argumentList","parseArgumentList","parseArgumentExpression","canFollowTypeArgumentsInExpression","parseParenthesizedExpression","parseFunctionExpression","parseDecoratedExpression","parseClassDeclarationOrExpression","missing","parseClassExpression","parseNewExpressionOrNewDotTarget","parseArgumentOrArrayLiteralElement","parseSpreadElement","openBracketPosition","openBracketParsed","parseObjectLiteralElement","tokenIsIdentifier","parseMethodDeclaration","openBraceParsed","savedDecoratorContext","doInYieldAndAwaitContext","parseOptionalBindingIdentifier","doInYieldContext","parseBlock","ignoreMissingOpenBrace","parseForOrForInOrForOfStatement","awaitToken","nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf","nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine","parseVariableDeclarationList","disallowInAnd","parseBreakOrContinueStatement","parseCaseOrDefaultClause","parseCaseClause","parseDefaultClause","parseSwitchStatement","parseCaseBlock","parseTryStatement","parseCatchClause","parseVariableDeclaration","isDeclaration2","isUsingDeclaration","isAwaitUsingDeclaration","nextTokenIsIdentifierOrStringLiteralOnSameLine","previousToken","isStartOfDeclaration","nextTokenIsBindingIdentifierOrStartOfDestructuring","nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine","nextTokenIsEqualsOrSemicolonOrColonToken","disallowOf","parseEmptyStatement","parseVariableStatement","isLetDeclaration","parseFunctionDeclaration","parseClassDeclaration","parseIfStatement","openParenPosition","openParenParsed","parseDoStatement","parseWhileStatement","parseReturnStatement","parseWithStatement","parseThrowStatement","parseDebuggerStatement","parseDeclaration","parseExpressionOrLabeledStatement","hasParen","isDeclareModifier","tryReuseAmbientDeclaration","parseDeclarationWorker","modifiersIn","parseInterfaceDeclaration","parseHeritageClauses","parseTypeAliasDeclaration","parseEnumDeclaration","doOutsideOfYieldAndAwaitContext","parseEnumMember","parseModuleDeclaration","parseAmbientExternalModuleDeclaration","parseModuleOrNamespaceDeclaration","parseImportDeclarationOrImportEqualsDeclaration","afterImportPos","nextTokenIsFromKeywordOrEqualsToken","tokenAfterImportDefinitelyProducesImportDeclaration","tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration","parseImportEqualsDeclaration","parseModuleReference","isExternalModuleReference2","parseExternalModuleReference","parseModuleSpecifier","finished","tryParseImportClause","tryParseImportAttributes","parseExportAssignment","parseNamespaceExportDeclaration","parseExportDeclaration","namespaceExportPos","parseNamespaceExport","parseModuleExportName","parseNamedImportsOrExports","parseFunctionBlockOrSemicolon","parseArrayBindingElement","parseObjectBindingElement","parseArrayBindingPattern","parseObjectBindingPattern","parseVariableDeclarationAllowExclamation","allowExclamation","inForStatementInitializer","canFollowContextualOfKeyword","savedDisallowIn","modifierFlags","tryParseConstructorDeclaration","parseConstructorName","literalNode","parsePropertyDeclaration","parseSemicolonAfterPropertyName","parsePropertyOrMethodDeclaration","parseClassStaticBlockDeclaration","parseClassStaticBlockBody","parseDecoratorExpression","awaitExpression","tryParseDecorator","doInDecoratorContext","tryParseModifier","hasSeenStaticModifier","permitConstAsModifier","stopOnStartOfClassStaticBlock","nextTokenIsOpenBrace","parseAnyContextualModifier","allowDecorators","hasLeadingModifier","hasTrailingDecorator","parseClassElement","parseNameOfClassDeclarationOrExpression","isImplementsClause","parseClassMembers","parseHeritageClause","tok","parseExpressionWithTypeArguments","parseModuleBlock","namespaceFlag","parseImportClause","parseNamespaceImport","parseImportAttribute","skipKeyword","canParseModuleExportName","parseName","parseImportSpecifier","parseExportSpecifier","parseImportOrExportSpecifier","checkIdentifierIsKeyword","checkIdentifierStart","checkIdentifierEnd","canParseAsKeyword","firstAs","secondAs","parseNameWithKeywordCheck","ParsingContext","ParsingContext2","Tristate","Tristate2","JSDocParser2","parseJSDocTypeExpression","mayOmitBraces","hasBrace","parseJSDocNameReference","p2","JSDocState","JSDocState2","PropertyLikeParse","PropertyLikeParse2","parseJSDocCommentWorker","tagsPos","tagsEnd","linkEnd","commentsPos","parts","doJSDocScan","margin","pushComment","parseOptionalJsdoc","removeTrailingWhitespace","addTag","parseTag","asterisk","whitespace","parseJSDocLink","removeLeadingNewlines","trimmedComments","trimEnd","tagsArray","comments2","shift","trimmed","isNextNonwhitespaceTokenEndOfFile","skipWhitespace","skipWhitespaceOrAsterisk","precedingLineBreak","seenLineBreak","indentText","parseJSDocIdentifierName","parseAuthorTag","commentStart","textOnly","parseAuthorNameAndEmail","inEmail","parseTrailingTagComments","allParts","parseImplementsTag","parseExpressionWithTypeArgumentsForAugments","parseAugmentsTag","parseSimpleTag","parseThisTag","parseEnumTag","parseParameterOrPropertyTag","parseReturnTag","tryParseTypeExpression","parseTemplateTag","parseTypeTag","parseTypedefTag","parseJSDocTypeNameWithNamespace","parseTagComments","isObjectOrObjectArrayTypeReference","childTypeTag","hasChildren","parseChildPropertyTag","jsdocTypeLiteral","typedefTag","parseCallbackTag","parseJSDocSignature","parseOverloadTag","parseSatisfiesTag","parseSeeTag","isJSDocLinkTag","parseThrowsTag","parseImportTag","afterImportTagPos","parseUnknownTag","initialMargin","commentsPos2","parts2","linkEnd2","linkType","parseJSDocLinkPrefix","parseJSDocLinkName","parseBracketNameInPropertyAndParamTag","isBackquoted","parseJSDocEntityName","parseExpectedTokenJSDoc","nestedTypeLiteral","parseNestedTypeLiteral","parseChildParameterOrPropertyTag","usedBrace","parsePropertyAccessEntityNameExpression","createTag","nested","typeNameOrNamespaceName","parseCallbackTagParameters","escapedTextsEqual","canParseTag","tryParseChildTag","parseTemplateTagTypeParameter","typeParameterPos","parseTemplateTagTypeParameters","parseJSDocTypeExpressionForTests2","jsDocTypeExpression","parseIsolatedJSDocComment2","incrementallyParsedFiles","standardExtension","extractPragmas","pragma","currentValue","reportDiagnostic","entryOrList","lib","preserve","_preserve","parsed","parseResolutionMode","IncrementalParser2","moveElementEntirelyPastChangeRange","isArray2","delta","oldText","visitArray2","visitNode3","shouldCheckNode","jsDocComment","checkNodePositions","adjustIntersectingElement","changeStart","changeRangeOldEnd","changeRangeNewEnd","findNearestNodeStartingBeforeOrAtPosition","lastNodeEntirelyBeforePosition","bestResult","visit","lastChildOfLastEntireNodeBeforePosition","getLastDescendant","checkChangeRange","oldTextPrefix","newTextPrefix","oldTextSuffix","newTextSuffix","currentArray","currentArrayIndex","lastQueriedPosition","findHighestListElementThatStartsAtPosition","InvalidPosition","InvalidPosition2","markAsIncrementallyParsed","changeRange","extendToAffectedRange","maxLookahead","nearestNode","finalSpan","finalLength","updateTokenPositionsAndMarkElements","fullEnd","getNewCommentDirectives","oldDirectives","newDirectives","addedNewlyScannedDirectives","addNewlyScannedDirectives","updatedDirective","namedArgRegExCache","getNamedArgRegEx","tripleSlashXMLCommentStartRegEx","singleLinePragmaRegEx","tripleSlash","addPragmaForMatch","multiLinePragmaRegEx","multiLineMatch","getNamedPragmaArguments","argMap","rhs","compileOnSaveCommandLineOption","defaultValueDescription","jsxOptionMap","libEntries","fixedpollinginterval","prioritypollinginterval","dynamicprioritypolling","fixedchunksizepolling","usefsevents","usefseventsonparentdirectory","description","fixedinterval","priorityinterval","dynamicpriority","fixedchunksize","isFilePath","extraValidation","specToDiagnostic","allowConfigDirTemplateSubstitution","shortName","showInSimplifiedHelpView","isCommandLineOnly","paramType","transpileOptionValue","affectsBuildInfo","affectsSemanticDiagnostics","affectsEmit","es3","es5","es6","affectsSourceFile","affectsModuleResolution","deprecatedKeys","none","commonjs","amd","umd","node16","node18","node20","nodenext","commandOptionsWithoutBuild","affectsProgramStructure","affectsDeclarationPath","isTSConfigOnly","affectsBindDiagnostics","node10","classic","bundler","listPreserveFalsyValues","crlf","lf","auto","legacy","configDirTemplateSubstitutionOptions","configDirTemplateSubstitutionWatchOptions","isCommandLineOptionOfCustomType","optionsNameMapCache","optionsNameMap","shortOptionNames","compilerOptionsAlternateMode","getBuildOptionsNameMap","forceConsistentCasingInFileNames","opt","createDiagnosticForInvalidCustomType","createDiagnostic","namesOfType","stringNames","k","convertJsonOptionOfCustomType","validateJsonOptionValue","getOptionName","createUnknownOptionError","unknownOption","unknownOptionErrorText","otherOption","alternateMode","createDiagnosticForNodeInSourceFileOrCompilerDiagnostic","possibleOption","unknownDidYouMeanDiagnostic","unknownOptionDiagnostic","watchOptions","parseStrings","parseResponseFile","inputOptionName","getOptionDeclarationFromName","parseOptionValue","watchOpt","watchOptionsDidYouMeanDiagnostics","optValue","optionTypeMismatchDiagnostic","getCompilerOptionValueTypeString","buildOptionsNameMapCache","optionName","allowShort","getOptionNameMap","short","buildOptionsDidYouMeanDiagnostics","projects","buildOptions","clean","verbose","dry","configFileName","optionsToExtend","extendedConfigCache","watchOptionsToExtend","configFileText","onUnRecoverableConfigFileDiagnostic","textOrDiagnostic","jsonSourceFile","convertConfigFileToObject","commandLineOptionsToMap","watchOptionsNameMapCache","typeAcquisitionDidYouMeanDiagnostics","getWatchOptionsNameMap","commandLineCompilerOptionsMapCache","commandLineWatchOptionsMapCache","commandLineTypeAcquisitionMapCache","getCommandLineCompilerOptionsMap","getCommandLineWatchOptionsMap","getCommandLineTypeAcquisitionMap","_tsconfigRootOptions","extendsOptionDeclaration","disallowNullOrUndefined","compilerOptionsDeclaration","elementOptions","extraKeyDiagnostics","watchOptionsDeclaration","typeAcquisitionDeclaration","jsonConversionNotifier","rootExpression","firstObject","returnValue","convertPropertyValueToJson","rootOptions","valueExpression","isDoubleQuotedString","convertObjectLiteralExpressionToJson","objectOption","textOfKey","keyText","onPropertySet","convertArrayLiteralExpressionToJson","elementOption","isCompilerOptionsValue","isNullOrUndefined","configParseResult","configFile","configFileSpecs","validatedIncludeSpecs","matchesSpecs","includeSpecs","excludeSpecs","excludeRe","includeRe","validatedExcludeSpecs","pathOptions","optionMap","watchOptionMap","serializeWatchOptions","serializeOptionBaseObject","showConfig","help","listFiles","listEmittedFiles","project","filterSameAsDefaultInclude","compileOnSave","providedKeys","impliedCompilerOptions","optionDependsOn","dependsOn","optionDependsOnRecursive","option2","dep","fromEntries","defaultIncludeSpec","getCustomTypeMapOfCommandLineOption","optionDefinition","customTypeMap","mapValue","tab","allSetOptions","emitHeader","emitOption","newline","header","setting","commented","existingOptionIndex","formatValueOrArray","settingName","map3","formatSingleValue","toAbsolutePath","convertToOptionValueWithAbsolutePaths","json","existingOptions","resolutionStack","existingWatchOptions","parseJsonConfigFileContentWorker","directoryOfCombinedPath","parsedConfig","parseConfig","handleOptionConfigDirTemplateSubstitution","basePathForFileNames","getConfigFileSpecs","referencesOfRaw","getPropFromRaw","filesSpecs","toPropValue","getSpecsFromRaw","hasZeroOrNoReferences","hasExtends","nodeValue","createCompilerDiagnosticOnlyIfJson","excludeOfRaw","validatedIncludeSpecsBeforeSubstitution","validatedExcludeSpecsBeforeSubstitution","isDefaultIncludeSpec","validateSpecs","getSubstitutedStringArrayWithConfigDirTemplate","validatedFilesSpecBeforeSubstitution","validatedFilesSpec","getFileNames","basePath2","shouldReportNoInputFiles","getErrorForNoInputFiles","getProjectReferences","ref","typeAcquisition","getDefaultTypeAcquisition","wildcardDirectories","getWildcardDirectories","specResult","prop","validateElement","elementTypeName","startsWithConfigDirTemplate","setOptionValue","getSubstitutedPathWithConfigDirTemplate","listResult","objectResult","getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate","configDirTemplate","mapLike","subStitution","canJsonReportNoInutFiles","configParseDiagnostics","existingErrors","isErrorNoInputFiles","ownConfig","parseOwnConfigOfJson","convertCompilerOptionsFromJsonWorker","convertTypeAcquisitionFromJsonWorker","convertWatchOptionsFromJsonWorker","jsonOptions","convertOptionsFromJson","convertCompileOnSaveOptionFromJson","jsonOption","extendedConfigPath","getExtendsConfigPathOrArray","parseOwnConfigOfJsonSourceFile","rootCompilerOptions","getTsconfigRootOptionsMap","propertyAssignment","parentOption","currentOption","concat","applyExtendedConfig","extendedSourceFiles","assignWatchOptions","extendedConfig","getExtendedConfig","extendedResult","extenedSourceFile","isSuccessfulParsedTsconfig","extendsRaw","relativeDifference","setPropertyInResultIfNotUndefined","watchOptionsCopied","newBase","getExtendsConfigPath","resolved","maxNodeModuleJsDepth","noEmit","defaultOptions","optType","convertJsonOptionOfListType","validatedValue","normalizeNonListOptionValue","typeScriptVersion","invalidTrailingRecursionPattern","wildcardDirectoryPattern","keyMapper","literalFileMap","wildcardFileMap","wildCardJsonFileMap","supportedExtensionsWithJsonIfResolveJsonModule","jsonOnlyIncludeRegexes","hasFileWithHigherPriorityExtension","removeWildcardFilesWithLowerPriorityExtension","literalFiles","wildcardFiles","invalidDotDotAfterRecursiveWildcard","wildcardIndex","disallowTrailingRecursion","specKey","diag2","rawExcludeRegex","wildCardKeyToPath","recursiveKeys","getWildcardDirectoryFromSpec","existingPath","existingFlags","recursiveKey","toCanonicalKey","questionWildcardIndex","starWildcardIndex","lastDirectorySeperatorIndex","extensionGroup","higherPriorityPath","lowerPriorityPath","opts","getOptionValueWithEmptyStrings","optionEnumValue","optionStringValue","traceResolution","withPackageId","packageInfo","getPeerDependenciesOfPackageJsonInfo","resolvedUsingTsExtension","noPackageId","removeIgnoredPackageId","formatExtensions","resolvedTypeScriptOnly","createResolvedModuleWithFailedLookupLocationsHandlingSymlink","failedLookupLocations","affectingLocations","resultFromCache","preserveSymlinks","getOriginalAndResolvedFileName","traceEnabled","createResolvedModuleWithFailedLookupLocations","isReadonly","initializeResolutionFieldForReadonlyCache","resolutionDiagnostics","initializeResolutionField","fromCache","readPackageJsonField","jsonContent","fieldName","typeOfTag","readPackageJsonPathField","baseDirectory","readPackageJsonTypesVersionPaths","typesVersions","readPackageJsonTypesVersionsField","bestVersionKey","bestVersionPaths","keyRange","typeRoots","getDefaultTypeRoots","atTypes","nodeModulesAtTypes","arePathsEqual","pathsAreEqual","getCandidateFromTypeRoot","typeRoot","typeReferenceDirectiveName","moduleResolutionState","mangleScopedPackageNameWithTrace","containingFile","redirectedReference","containingDirectory","getFromDirectoryCache","getFromNonRelativeNameCache","traceResult","features","getNodeResolutionFeatures","conditions","packageJsonInfoCache","requestContainingDirectory","isConfigLookup","candidateIsFromPackageJsonField","resolvedPackageDirectory","primaryLookup","resolvedFromFile","loadModuleFromFile","getPackageJsonInfo","loadNodeModuleFromDirectory","secondaryLookup","initialLocationForSecondaryLookup","normalizePathForCJSResolution","nodeLoadModuleByRelativeName","searchResult","loadModuleFromNearestNodeModulesDirectory","getOrCreateCacheForDirectory","getOrCreateCacheForNonRelativeName","noDtsResolution","customConditions","getPackageJsonInfoCache","ancestorDirectory","nodeModulesFolder","typeDirectivePath","packageJsonPath","typings","compilerOptionValueToString","affectingOptionDeclarations","createCacheWithRedirects","ownOptions","optionsToRedirectsKey","redirectsMap","redirectsKeyToMap","ownMap","getMapOfCacheRedirects","getOrCreateMap","getOrCreateMapOfCacheRedirects","clear2","ownKey","getOwnMap","redirectOptions","getRedirectsCacheKey","getOrCreateCache","cacheWithRedirects","underlying","memoizedReverseKeys","getUnderlyingCacheKey","elem","getOriginalOrResolvedModuleFileName","getOriginalOrResolvedTypeReferenceFileName","createNonRelativeNameResolutionCache","getResolvedFileName","moduleNameToDirectoryMap","nonRelativeModuleName","createPerModuleNameCache","options2","directoryPathMap","commonPrefix","getCommonPrefix","resolutionDirectory","limit","sep","createModuleOrTypeReferenceResolutionCache","perDirectoryResolutionCache","createPerDirectoryResolutionCache","directoryToModuleNameMap","nonRelativeNameResolutionCache","createPackageJsonInfoCache","getPackageJsonInfo2","setPackageJsonInfo","getInternalMap","clearAllExceptPackageJsonInfoCache","getOrCreateCacheForModuleName","nonRelativeName","libraryName","resolveFrom","node16ModuleNameResolver","nodeNextModuleNameResolverWorker","nodeNextModuleNameResolver","tryLoadModuleUsingOptionalResolutionSettings","loader","tryLoadModuleUsingPathsIfEligible","tryLoadModuleUsingPaths","tryLoadModuleUsingRootDirs","rootDirs","matchedRootDir","matchedNormalizedPrefix","normalizedRoot","isLongestMatchingPrefix","candidate2","resolvedFileName2","tryLoadModuleUsingBaseUrl","initialDir","tryResolveJSModuleWorker","nodeModuleNameResolverWorker","NodeResolutionFeatures2","esmMode","priorityExtensions","secondaryExtensions","tryResolve","wantedTypesButGotJs","extensionIsOk","traceIfEnabled","diagnosticResult","diagnosticsCompilerOptions","extensions2","state2","extensions3","onlyRecordFailures","state3","toSearchResult","resolved2","resolved3","loadModuleFromImports","loadModuleFromExportsOrImports","loadModuleFromSelfNameReference","nameParts","trailingParts","subpath","loadModuleFromExports","resolveFromTypeRoot","lastPart","considerPackageJson","parentOfCandidate","isFolder","indexAfterNodeModules","indexAfterPackageName","moveToNextDirectorySeparatorIfAvailable","prevSeparatorIndex","nextSeparatorIndex","loadModuleFromFileNoPackageId","resolvedByReplacingExtension","loadModuleFromFileNoImplicitExtensions","resolvedByAddingExtension","tryAddingExtensions","loadFileNameFromPackageJsonField","packageJsonValue","tryFile","originalExtension","tryExtension","moduleSuffixes","tryFileLookup","fileNameNoExtension","loadNodeModuleFromDirectoryWorker","packageJsonInfo","resolveJs","resolvedEntrypoints","entrypoints","loadPackageJsonMainState","mainResolution","conditionSets","loadPackageJsonExportsState","exportResolutions","loadEntrypointsFromExportMap","exports2","loadEntrypointsFromTargetExports","extensionsToExtensionsArray","partsAfterFirst","finalPath","getVersionPathsOfPackageJsonInfo","versionPaths","readPackageJsonPeerDependencies","nodeModules","peerPackageJson","packageJson","packageFile","readPackageJsonTSConfigField","readPackageJsonTypesFields","readPackageJsonMainField","onlyRecordFailures2","fromFile","expandedExtensions","onlyRecordFailuresForPackageFile","onlyRecordFailuresForIndex","indexPath","pathPatterns","packageFileResult","mainExport","noKeyStartsWithDot","getLoadModuleFromTargetExportOrImport","loadModuleFromTargetExportOrImport","aPatternIndex","bPatternIndex","baseLenA","baseLenB","lookupTable","isImports","expandingKeys","hasOneAsterisk","patternKey","firstStar","potentialTarget","matchesPatternWithTrailer","starPos","combinedLookup","resolvedTarget","subpathParts","inputLink","tryLoadInputFileForPath","packagePath","isImports2","_a2","_b2","commonSourceDirGuesses","requestingFile","commonDir2","commonSourceDirGuess","candidateDirectories","getOutputDirectoriesForBaseDirectory","candidateDir","possibleInputBase","jsAndDtsExtensions","inputExts","possibleExt","possibleInputWithInputExtension","_a3","_b3","currentDir","combineDirectoryPath","subTarget","loadModuleFromNearestNodeModulesDirectoryWorker","typesScopeOnly","resolutionFromCache","tryFindNonRelativeModuleNameInCache","loadModuleFromImmediateNodeModulesDirectory","globalCache","getGlobalTypingsCacheLocation","nodeModulesFolderExists","packageResult","loadModuleFromSpecificNodeModulesDirectory","nodeModulesAtTypes2","nodeModulesAtTypesExists","nodeModulesDirectory","nodeModulesDirectoryExists","rootPackageInfo","pathAndExtension","packageDirectoryExists","fromPaths","matchedPattern","matchedStar","matchedPatternText","subst","mangledScopedPackageSeparator","mangled","replaceSlash","mangledName","withoutAtTypePrefix","typesPackageName","resolvedUsingSettings","searchName","loadModuleFromNearestNodeModulesDirectoryTypesScope","fromFileName","projectName","ModuleInstanceState2","getModuleInstanceStateCached","nodeId","getModuleInstanceStateWorker","exportDeclaration","specifierState","getModuleInstanceStateForAliasTarget","childState","found","ContainerFlags2","binder","createBinder","thisParentContainer","blockScopeContainer","lastContainer","delayedTypeAliases","seenThisKeyword","jsDocImports","currentFlow","currentBreakTarget","currentContinueTarget","currentReturnTarget","currentTrueTarget","currentFalseTarget","currentExceptionTarget","preSwitchCaseFlow","activeLabelList","hasExplicitReturn","inReturnPosition","hasFlowEffects","inStrictMode","Symbol48","inAssignmentPattern","unreachableFlow","reportedUnreachableFlow","bindBinaryExpressionFlow","createBindBinaryExpressionFlow","saveInStrictMode","bindWorker","saveParent","inStrictModeStack","parentStack","isTopLevelLogicalExpression","postExpressionLabel","createBranchLabel","saveCurrentFlow","saveHasFlowEffects","bindLogicalLikeExpression","finishFlowLabel","maybeBound","maybeBind2","maybeBindExpressionFlowIfCall","_node","bindAssignmentTargetFlow","isNarrowableOperand","createFlowMutation","savedInStrictMode","savedParent","bindSourceFile2","bindInStrictMode","file2","Bind","delayedBindJSDocTypedefTag","saveContainer","saveLastContainer","saveBlockScopeContainer","declName","isTopLevel","isTopLevelNamespaceAssignment","bindPotentiallyMissingNamespaces","oldContainer","declareModuleMember","bindBlockScopedDeclaration","bindJSDocImports","jsDocImportTag","enclosingContainer","enclosingBlockScopeContainer","createDiagnosticForNode2","createSymbol","addDeclarationToSymbol","symbolFlags","containingClass","getDisplayName","declareSymbol","symbolTable","isReplaceableByMethod","isComputedName","isDefaultExport","messageNeedsName","multipleDefaultExports","declarationName","diag3","symbolExcludes","hasExportModifier","jsdocTreatAsExported","exportKind","local","bindEachFunctionsFirst","bindEach","bindFunction","bindEachChild","bindChildren","saveInAssignmentPattern","checkUnreachable","reportError","isEnumDeclarationWithPreservedEmit","shouldReportErrorOnModuleDeclaration","instanceState","isError","eachUnreachableRange","isExecutableStatement","afterEnd","isPurelyTypeDeclaration","errorOrSuggestionOnRange","bindWhileStatement","preWhileLabel","setContinueTarget","createLoopLabel","preBodyLabel","postWhileLabel","addAntecedent","bindCondition","bindIterativeStatement","bindDoStatement","preDoLabel","preConditionLabel","postDoLabel","bindForStatement","preLoopLabel","preIncrementorLabel","postLoopLabel","bindForInOrForOfStatement","bindIfStatement","thenLabel","elseLabel","postIfLabel","bindReturnOrThrow","savedInReturnPosition","bindBreakOrContinueStatement","activeLabel","findActiveLabel","referenced","bindBreakOrContinueFlow","breakTarget","continueTarget","bindTryStatement","saveReturnTarget","saveExceptionTarget","normalExitLabel","returnLabel","exceptionLabel","finallyLabel","createReduceLabel","bindSwitchStatement","postSwitchLabel","saveBreakTarget","savePreSwitchCaseFlow","hasDefault","createFlowSwitchClause","bindCaseBlock","isNarrowingSwitch","isNarrowingExpression","fallthroughFlow","preCaseLabel","noFallthroughCasesInSwitch","fallthroughFlowNode","bindCaseClause","bindExpressionStatement","bindLabeledStatement","postStatementLabel","errorOrSuggestionOnNode","bindPrefixUnaryExpressionFlow","saveTrueTarget","bindPostfixUnaryExpressionFlow","bindDestructuringAssignmentFlow","bindDeleteExpressionFlow","bindConditionalExpressionFlow","trueLabel","falseLabel","bindVariableDeclarationFlow","bindInitializedVariableFlow","bindAccessExpressionFlow","bindOptionalChainFlow","bindCallExpressionFlow","createFlowCall","bindNonNullExpressionFlow","bindJSDocTypeAlias","bindJSDocImportTag","bindBindingElementFlow","bindInitializer","bindParameterFlow","containsNarrowableReference","hasNarrowableArgument","isNarrowingBinaryExpression","isNarrowingTypeofOperands","isNarrowableReference","expr1","antecedents","setFlowNodeReferenced","flow","createFlowCondition","isLogicalExpression","isStatementCondition","doWithConditionalBranches","trueTarget","falseTarget","savedTrueTarget","savedFalseTarget","isLogicalAssignmentExpression","saveContinueTarget","flowLabel","bindDestructuringTargetFlow","preRightLabel","entryFlow","exitFlow","bindOptionalChainRest","bindOptionalChain","preChainLabel","bindOptionalExpression","addToContainerChain","declareSymbolAndAddToSymbolTable","declareSourceFileMember","declareClassMember","setExportContextFlag","hasExportDeclarations","declareModuleSymbol","instantiated","bindAnonymousDeclaration","checkContextualIdentifier","getStrictModeIdentifierMessage","checkStrictModeEvalOrArguments","contextNode","isEvalOrArgumentsIdentifier","getStrictModeEvalOrArgumentsMessage","checkStrictModeFunctionName","checkStrictModeFunctionDeclaration","errorSpan","getStrictModeBlockScopeFunctionDeclarationMessage","errorOnFirstToken","startNode2","endNode2","addErrorOrSuggestionDiagnostic","tracingPath","containerFlags","bindContainer","saveThisParentContainer","savedBlockScopeContainer","saveActiveLabelList","saveHasExplicitReturn","isImmediatelyInvoked","updateStrictModeStatementList","isUseStrictPrologueDirective","nodeText2","checkPrivateIdentifier","bindSpecialPropertyDeclaration","bindThisPropertyAssignment","bindPrototypePropertyAssignment","bindStaticPropertyAssignment","lookupSymbolForName","bindExportsPropertyAssignment","bindModuleExportsAssignment","setCommonJsModuleIndicator","assignedExpression","bindExportAssignedObjectMemberAlias","bindPrototypeAssignment","bindPropertyAssignment","bindSpecialPropertyAssignment","parentSymbol","lookupSymbolForPropertyAccess","rootExpr","addLateBoundAssignmentDeclarationToSymbol","checkStrictModeBinaryExpression","checkStrictModeCatchClause","checkStrictModeDeleteExpression","checkStrictModePostfixUnaryExpression","checkStrictModePrefixUnaryExpression","checkStrictModeWithStatement","checkStrictModeLabeledStatement","bindTypeParameter","container2","getInferTypeContainer","bindParameter","bindVariableDeclarationOrBindingElement","bindPropertyWorker","isAutoAccessor","bindPropertyOrMethodOrAccessor","bindFunctionDeclaration","bindFunctionOrConstructorType","typeLiteralSymbol","bindAnonymousTypeWorker","bindJSDocClassTag","bindObjectLiteralExpression","bindFunctionExpression","bindingName","bindObjectDefinePropertyAssignment","namespaceSymbol","isToplevel","bindPotentiallyNewExpandoMemberToNamespace","bindObjectDefinePropertyExport","forEachIdentifierInEntityName","symbol2","bindObjectDefinePrototypeProperty","bindCallExpression","bindClassLikeDeclaration","prototypeSymbol","symbolExport","bindEnumDeclaration","bindModuleDeclaration","patternAmbientModules","bindJsxAttributes","bindJsxAttribute","bindNamespaceExportDeclaration","globalExports","bindImportClause","bindExportDeclaration","bindExportAssignment","bindSourceFileIfExternalModule","bindSourceFileAsExternalModule","originalSymbol","propTag","thisContainer","constructorSymbol","l","bindDynamicallyNamedThisPropertyAssignment","assignmentDeclarationMembers","classPrototype","constructorFunction","isPrototypeProperty","containerIsClass","excludeFlags","jsGlobalAugmentations","isExpandoSymbol","getParentOfBinaryExpression","lookupContainer","possibleVariableDecl","classDeclaration","q","getRestTypeOfSignature","getTypePredicateOfSignature","getReturnTypeOfSignature","getBaseTypes","resolveStructuredTypeMembers","getTypeOfSymbol","getResolvedSymbol","getConstraintOfTypeParameter","getFirstIdentifier2","getTypeArguments","getSymbolWalker","accept","visitedTypes","visitedSymbols","walkType","visitType","walkSymbol","visitSymbol","visitTypeReference","visitMappedType","templateType","modifiersType","visitInterfaceType","interfaceT","visitObjectType","thisType","visitTypeParameter","visitUnionOrIntersectionType","visitIndexType","visitIndexedAccessType","visitSignature","typePredicate","indexInfos","keyType","callSignatures","constructSignatures","symbolId","query","RelativePreference","countPathComponents","forEachFileNameOfModule","getLocalModuleSpecifierBetweenFileNames","getModuleSpecifier","getModuleSpecifierPreferences","getModuleSpecifiers","getModuleSpecifiersWithCacheInfo","getNodeModulesPackageName","tryGetJSExtensionForFile","tryGetModuleSpecifiersFromCache","tryGetRealFileNameForNonJsDeclarationFileName","updateModuleSpecifier","stringToRegex","slash","RelativePreference2","importModuleSpecifierPreference","importModuleSpecifierEnding","autoImportSpecifierExcludeRegexes","importingSourceFile","oldImportSpecifier","filePreferredEnding","getPreferredEnding","excludeRegexes","relativePreference","getAllowedEndingsInPreferredOrder","syntaxImpliedNodeFormat","getDefaultResolutionModeForFile","preferredEnding","allowImportingTsExtension","importingSourceFileName","toFileName2","getModuleSpecifierWorker","nodeModulesFileName","preferences","getInfo","getAllModulePaths","tryGetModuleNameAsNodeModule","overrideImportMode","userPreferences","getLocalModuleSpecifier","tryGetModuleSpecifiersFromCacheWorker","computedWithoutCache","moduleSourceFile","getModuleSpecifierCache","cached","modulePaths","forAutoImport","ambient","tryGetModuleNameFromAmbientModule","ambientModuleDeclareCandidates","topNamespace","getTopNamespace","exportAssignment","getSymbolAtLocation","ambientModuleDeclare","isExcludedByRegex","getAllModulePathsWorker","computeModuleSpecifiers","existingSpecifier","getFileIncludeReasons","reason","existingMode","targetMode","importedFileIsInNodeModules","isInNodeModules","nodeModulesSpecifiers","pathsSpecifiers","redirectPathsSpecifiers","relativeSpecifiers","isRedirect","importingFile","targetFileName","sourceDirectory","canonicalSourceDirectory","moduleFileName","importMode","getAllowedEndingsInPrefererredOrder","pathsOnly","allowedEndings","tryGetModuleNameFromRootDirs","normalizedTargetPaths","getPathsRelativeToRootDirs","normalizedSourcePaths","relativePaths","sourcePath","targetPath","shortest","processEnding","relativeToBaseUrl","getRelativePathIfInSameVolume","fromPackageJsonImports","tryGetModuleNameFromPackageJsonImports","preferTsExtension","ancestorDirectoryWithPackageJson","getNearestAncestorDirectoryWithPackageJson","cachedPackageJson","tryGetModuleNameFromExportsOrImports","moduleFileToTry","prefersTsExtension","tsPriority","tryGetModuleNameFromPaths","maybeNonRelative","relativeIsExcluded","nonRelativeIsExcluded","projectDirectory","sourceIsInternal","targetIsInternal","packageJsonPathsAreEqual","isPathRelativeToParent","comparePathsByRedirectAndNumberOfDirectorySeparators","importingFileName","importedFileName","preferSymlinks","referenceRedirect","outputDts","importedPath","redirects","redirectTargetsMap","shouldFilterIgnoredPaths","getSymlinkCache","fullImportedFileName","realPathDirectory","symlinkDirectories","symlinkDirectory","importingFilePath","importedFilePath","setModulePaths","runtimeDependencyFields","getModuleResolutionCache","toResolve","getAllRuntimeDependencies","deps","depName","allFileNames","importedFileFromNodeModules","sortedPaths","directoryStart","pathsInDirectory","newDirectory","remainingPaths","patternText2","ending","validateEnding","targetFilePath","outputFile","declarationFile","pathOrPattern","extensionSwappedTarget","canTryTsExtension","getJSExtensionForFile","leadingSlice","trailingSlice","starReplacement","substituted","jsExtension","packageNameOnly","overrideMode","isPackageRootPath","packageRootPath","blockedByExports","verbatimFromExports","tryDirectoryWithPackageJson","globalTypingsCacheLocation","pathToTopLevelNodeModules","nodeModulesDirectoryName","maybeBlockedByTypesVersions","packageName2","fromExports","tryGetModuleNameFromExports","subPackageName","mainFileRelative","main","mainExportFile","canonicalModuleFileToTry","noExtension","jsPriority","withoutIndex","tryGetAnyFileFromPath","isMixedContent","extensionlessPriority","JsxNames","JsxNames2","ReactNames","ambientModuleSymbolRegex","anon","nextSymbolId","nextNodeId","nextMergeId","nextFlowId","TypeFacts3","typeofNEFacts","CheckMode3","SignatureCheckMode3","isNotOverloadAndNotAccessor","isNotOverload","isNotAccessor","intrinsicTypeKinds","Uppercase","Lowercase","Capitalize","Uncapitalize","NoInfer","SymbolLinks","NodeLinks","moduleState","cancellationToken","varianceTypeParameter","deferredDiagnosticsCallbacks","addLazyDiagnostic","Type29","Signature13","typeCount","totalInstantiationCount","instantiationCount","instantiationDepth","inlineLevel","isInferencePartiallyBlocked","arrayVariances","legacyDecorators","experimentalDecorators","exactOptionalPropertyTypes","noUncheckedSideEffectImports","checkBinaryExpression","createCheckBinaryExpression","checkMode","setLeftType","setLastResult","typeStack","checkExpression","checkNullishCoalesceOperands","grammarErrorOnNode","checkNullishCoalesceOperandLeft","leftTarget","nullishSemantics","getSyntacticNullishnessSemantics","checkNullishCoalesceOperandRight","rightTarget","isNotWithinNullishCoalesceExpression","checkDestructuringAssignment","maybeCheckExpression","leftType","getLastResult","checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType","checkTruthinessOfType","getLeftType","rightType","checkBinaryLikeExpressionWorker","_side","emitResolver","createResolver","getReferencedExportContainer","getReferencedImportDeclaration","getReferencedDeclarationWithCollidingName","isDeclarationWithCollidingName","isValueAliasDeclaration","nodeIn","canCollectSymbolAliasAccessabilityData","isReferencedAliasDeclaration","checkChildren","hasNodeCheckFlag","isTopLevelValueImportEqualsWithEntityName","isDeclarationVisible","isImplementationOfOverload","requiresAddingImplicitUndefined","isExpandoFunctionDeclaration","getPropertiesOfContainerFunction","createTypeOfDeclaration","createReturnTypeOfSignatureDeclaration","createLiteralConstValue","isSymbolAccessible","isEntityNameVisible","canHaveConstantValue","getConstantValue2","getEnumMemberValue","collectLinkedAliases","markLinkedReferences","getReferencedValueDeclaration","getReferencedValueDeclarations","getTypeReferenceSerializationKind","isOptionalParameter","isArgumentsLocalBinding","isLiteralConstDeclaration","isLateBound","getJsxFactoryEntity","getJsxFragmentFactoryEntity","isBindingCapturedByNode","parseDecl","getNodeLinks","capturedBlockScopeBindings","getDeclarationStatementsForSourceFile","tracker","resolveExternalModuleSymbol","nodeBuilder","symbolTableToDeclarationStatements","isImportRequiredByAugmentation","importTarget","getExportsOfModule","merged","getMergedSymbol","isDefinitelyReferenceToGlobalSymbolObject","createLateBoundIndexSignatures","enclosing","staticInfos","getIndexInfosOfType","instanceIndexSymbol","getIndexSymbol","instanceInfos","getIndexInfosOfIndexSymbol","getMembersOfSymbol","infoList","anyBaseTypeIndexInfo","accessibility","newComponents","hasLateBindableName","trackComputedName","mods","typeToTypeNode","indexInfoToIndexSignatureDeclaration","accessExpression","trackSymbol","firstIdentifier","resolveName","symbolToDeclarations","maximumLength","verbosityLevel","createNodeBuilder","syntacticBuilderResolver","shouldRemoveDeclaration","checkComputedPropertyName","createRecoveryBoundary","throwIfCancellationRequested","trackedSymbols","unreportedErrors","hadError","oldTracker","oldTrackedSymbols","oldEncounteredError","encounteredError","SymbolTrackerImpl","reportCyclicStructureError","markError","reportInaccessibleThisError","reportInaccessibleUniqueSymbolError","reportLikelyUnsafeImportRequiredError","reportNonSerializableProperty","reportPrivateInBaseOfClassExpression","moduleResolverHost","startRecoveryScope","finalizeBoundary","unreportedError","trackedSymbolsTop","unreportedErrorsTop","enclosingDeclaration","getAllAccessorDeclarationsForDeclaration","containsNonMissingUndefinedType","missingType","isUndefinedIdentifierExpression","undefinedSymbol","shouldComputeAliasToMakeVisible","serializeExistingTypeNode","addUndefined","getTypeFromTypeNode2","someType","canReuseTypeNode","syntacticNodeBuilder","tryReuseExistingTypeNode","typeToTypeNodeHelper","serializeReturnTypeForSignature","syntacticContext","signatureDeclaration","getSignatureFromDeclaration","returnType","enclosingSymbolTypes","instantiateType","serializeInferredReturnTypeForSignature","serializeTypeOfExpression","getWidenedType","getRegularTypeOfExpression","serializeTypeOfDeclaration","getWriteTypeOfSymbol","errorType","getWidenedLiteralType","getOptionalType","serializeInferredTypeForDeclaration","serializeNameOfParameter","parameterToParameterDeclarationName","serializeEntityName","isValueSymbolAccessible","symbolToExpression","serializeTypeName","resolveEntityName","resolvedSymbol","resolveAlias","symbolToTypeNode","getJsDocPropertyOverride","jsDocTypeLiteral","jsDocProperty","typeViaParent","getTypeOfPropertyOfType","enterNewScope","getInferTypeParameters","getDeclaredTypeOfTypeParameter","markNodeReuse","setTextRange2","trackExistingEntityName","getModuleSpecifierOverride","lit","bundled","enclosingFile","originalName","nodeSymbol","lookupSymbolChain","getSpecifierForModuleSymbol","targetFile","canReuseTypeNodeAnnotation","requiresAddingUndefined","getTypeOfAccessors","annotationType","getTypeFromTypeNodeWithoutContext","isErrorType","addOptionality","typeNodeIsEquivalentToType","annotatedDeclaration","typeFromTypeNode","getTypeWithFacts","hasEffectiveQuestionToken","existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount","withContext2","typePredicateToTypePredicateNode","typePredicateToTypePredicateNodeHelper","serializeTypeForDeclaration","serializeTypeForExpression","indexInfo","indexInfoToIndexSignatureDeclarationHelper","signatureToSignatureDeclaration","signatureToSignatureDeclarationHelper","symbolToEntityName","symbolToName","symbolToTypeParameterDeclarations","typeParametersToTypeParameterDeclarations","symbolToParameterDeclaration","typeParameterToDeclaration","symbolToNode","symbolToDeclarationsWorker","getDeclaredTypeOfSymbol","table","simplifyClassDeclaration","classDecl","classDeclarations","originalClassDecl","simplifyModifiers","simplifyInterfaceDeclaration","interfaceDecl","noMappedTypes","getSymbolLinks","newDecl","isDeclKind","createBasicNodeBuilderModuleSpecifierResolutionHost","maxTruncationLength","maxExpansionDepth","suppressReportInferenceFallback","reportedDiagnostic","symbolDepth","inferTypeParameters","approximateLength","truncating","usedSymbolNames","remappedSymbolNames","remappedSymbolReferences","reverseMappedStack","mustCreateTypeParameterSymbolList","typeParameterSymbolList","mustCreateTypeParametersNamesLookups","typeParameterNames","typeParameterNamesByText","typeParameterNamesByTextNextNameCount","canIncreaseExpansionDepth","truncated","resultingNode","reportTruncationError","addSymbolTypeToContext","oldType","restore","saveRestoreFlags","checkTruncationLengthIfExpanding","checkTruncationLength","canPossiblyExpandType","shouldExpandType","isAlias","isLibType","restoreFlags","typeToTypeNodeWorker","inTypeAlias","expandingEnum","getReducedType","symbolToEntityNameNode","mapToTypeNodes","unresolvedType","intrinsicMarkerType","getParentOfSymbol","parentName","appendReferenceToType","isTypeSymbolAccessible","typeSymbol","isSymbolAccessibleWorker","typeArgumentNodes","isReservedMemberName","globalArrayType","createAnonymousTypeNode","visitAndTransformType","typeReferenceToTypeNode","constraintNode","inferredConstraint","getInferredTypeParameterConstraint","isTypeIdenticalTo","typeParameterToDeclarationWithConstraint","name2","typeParameterToName","markerSuperTypeForCheck","markerSubTypeForCheck","origin","formatUnionTypes","booleanType","getBaseTypeOfEnumLikeType","getRegularTypeOfLiteralType","nullType","undefinedType","typeNodes","indexedType","indexTypeNode","texts","templateHead","objectTypeNode","type2","conditionalTypeToTypeNode","noInferSymbol","isNoInferType","getGlobalTypeSymbol","checkTypeNode","isDistributive","newParam","createTypeParameter","newTypeVariable","newMapper","prependTypeMapping","saveInferTypeParameters2","extendsTypeNode2","trueTypeNode2","typeToTypeNodeOrCircularityElision","falseTypeNode2","saveInferTypeParameters","extendsTypeNode","trueTypeNode","getTrueTypeFromConditionalType","falseTypeNode","getFalseTypeFromConditionalType","getTypeId","createElidedInformationPlaceholder","type3","isMappedTypeHomomorphic","getHomomorphicTypeVariable","isHomomorphicMappedTypeWithNonHomomorphicInstantiation","createMappedTypeNodeFromType","appropriateConstraintTypeNode","getTemplateTypeFromMappedType","getTypeParameterFromMappedType","needsModifierPreservingWrapper","isMappedTypeWithKeyofConstraintDeclaration","getModifiersTypeFromMappedType","getConstraintTypeFromMappedType","newConstraintParam","makeArrayTypeMapper","typeParameterNode","cleanup","nameTypeNode","getNameTypeFromMappedType","templateTypeNode","removeMissingType","getMappedTypeModifiers","mappedTypeNode","originalConstraint","unknownType","forceClassExpansion","forceExpansion","typeId","createTypeNodeFromObjectType","isInstanceType","isClassInstanceSide","isJSConstructor","getBaseTypeVariableOfClass","shouldWriteTypeOfFunctionSymbol","getTypeAliasForTypeLiteral","isStaticMethodSymbol","isLateBindableIndexSignature","isNonLocalFunctionSymbol","transform2","isConstructorObject","serializedTypes","cachedResult","addedLength","deepCloneOrReuseNode","prevTrackedSymbols","startLength","deepCloneOrReuseNodes","isGenericMappedType","containsError","abstractSignatures","getOrCreateTypeFromSignature","getResolvedTypeWithoutAbstractConstructSignatures","objectTypeWithoutAbstractConstructSignatures","typeCopy","createAnonymousType","getIntersectionType","createTypeNodesFromResolvedType","typeLiteralNode","globalReadonlyArrayType","typeArgumentNode","arrayType","outerTypeParameters","resultType","getParentSymbolOfTypeParameter","typeArgumentSlice","restoreFlags2","typeParameterCount","isReferenceToType2","getGlobalIterableType","getGlobalIterableIteratorType","getGlobalAsyncIterableType","getGlobalAsyncIterableIteratorType","typeArgument","getDefaultFromTypeParameter","finalRef","elementFlags","arity","getTypeReferenceArity","tupleConstituentNodes","labeledElementDeclarations","labeledElementDeclaration","getTupleElementLabel","tupleTypeNode","ids","getAccessStack","indexInfoToObjectComputedNamesOrSignatureDeclaration","context2","resolvedType","typeElements","propertySymbol","isExpanding","typeElement","addPropertyToElementList","shouldUsePlaceholderForProperty","propertyType","isDeeplyNestedReverseMappedTypeProperty","propertyIsReverseMapped","anyType","getNonMissingTypeOfSymbol","saveEnclosingDeclaration","canTrackSymbol","isLateBoundName","symbolToString","getPropertyNameNodeForSymbol","writeType","symbolMapper","propDeclaration","getterDeclaration","getterSignature","setCommentRange2","instantiateSignature","setterDeclaration","setterSignature","fakeGetterSignature","createSignature","setterParam","fakeSetterSignature","voidType","optionalToken","getPropertiesOfObjectType","isReadonlySymbol","signatures","getSignaturesOfType","filterType","preserveCommentsOn","propertyTypeNode","propertySignature","jsdocPropertyTag","commentText","isBareList","seenNames","typeNode2","types2","typesAreSameReference","resultIndex","indexerTypeNode","indexingParameter","expandedParams","getExpandedParameters","tryGetThisParameterDeclaration","thisTag","returnTypeNode","suppressAny","isTypeAny","declarationSymbol","originalParameters","cleanupContext","cloneNodeBuilderContext","cleanupParams","cleanupTypeParams","oldEnclosingDecl","oldMapper","pushFakeScope2","addAll","existingFakeScope","fakeScopeForSignatureDeclaration","newLocals","oldLocals","oldSymbol","undo","fakeScope","pIndex","originalParam","unknownSymbol","bindPattern","bindElement","typeParam","getTypeParameterModifiers","defaultParameter","defaultParameterNode","typeToTypeNodeHelperWithPossibleReusableTypeNode","getConstraintDeclaration","getEffectiveParameterDeclaration","parameterSymbol","parameterDeclaration","preserveModifierFlags","parameterTypeNode","parameterNode","cloneBindingName","elideInitializerAndSetEmitFlags","isLateBindableName","fallback","yieldModuleSymbol","lookupSymbolChainWorker","getSymbolChain","meaning2","endOfChain","parentSpecifiers","accessibleSymbolChain","getAccessibleSymbolChain","needsQualification","getQualifiedLeftMeaning","getContainersOfSymbol","symbol3","hasNonGlobalAugmentationExternalModuleSymbol","sortByBestName","sortedParents","parentChain","getSymbolIfSameReference","getAliasForSymbolInContainer","specifierA","specifierB","isBRelative","typeParameterNodes","getTargetSymbol","getLocalTypeParametersOfClassOrInterfaceOrTypeAlias","lookupTypeParameterNodes","nextSymbol","params","getTypeParametersOfClassOrInterface","getOuterTypeParametersOfClassOrInterface","getMappedType","getTopmostIndexedAccessType","top","equivalentFileSymbol","getFileSymbolIfFileSymbolExportEqualsContainer","originalModuleSpecifier","contextFile","cacheKey","specifierCache","isBundle2","specifierCompilerOptions","overrideTypeArguments","nonRootParts","createAccessFromSymbolChain","oldSpecifier","swappedMode","splitNode","lastId","lastTypeArgs","stopper","symbolName2","getNameOfSymbolAsWritten","getExportsOfSymbol","ex","LHS","typeParameterShadowsOtherTypeParameterInScope","rawtext","expectsIdentifier","createEntityNameFromSymbolChain","createExpressionFromSymbolChain","literalText","isStringNamed","isSingleQuotedStringNamed","hashPrivateName","getClonedHashPrivateName","fromNameType","getPropertyNameNodeForSymbolFromNameType","oldMustCreateTypeParameterSymbolList","oldMustCreateTypeParametersNamesLookups","oldTypeParameterNames","oldTypeParameterNamesByText","oldTypeParameterNamesByTextNextNameCount","oldTypeParameterSymbolList","getDeclarationWithTypeAnnotation","getNonlocalEffectiveTypeAnnotationNode","getTypeFromTypeReference","existingTarget","getMinTypeArgumentCount","addUndefinedForParameter","serializeTypeOfAccessor","oldSuppressReportInferenceFallback","instantiateTypePredicate","introducesError","leftmost","getMeaningOfEntityNameReference","attachSymbolToLeftmostIdentifier","getExportSymbolOfValueSymbolIfExported","symAtLocation","reportInferenceFallback","getTypeFromImportTypeNode","declaredType","getIntendedTypeFromJSDocTypeReference","effectiveEnclosingContext","getEnclosingDeclarationIgnoringFakeScope","serializePropertySymbolForClass","makeSerializePropertySymbol","serializePropertySymbolForInterfaceWorker","question","deferredPrivatesStack","oldcontext","includePrivateSymbol","getInternalSymbolName","addingDeclare","exportEquals","visitSymbolTable","mergeRedundantStatements","inlineExportModifiers","exportDecl","replacements","associatedIndices","index2","addExportModifier","mergeExportDeclarations","reexports","groups","flattenExportAssignedNamespace","nsIndex","excessExports","getNamesOfDeclaration","isIdentifierAndNotUndefined","mixinExportFlag","addResult","removeExportModifier","symbolTable2","suppressNewPrivateContext","propertyAsAlias","createTruncationStatement","serializeSymbol","isPrivate","getPropertiesOfType","visitedSym","scopeCleanup","pushErrorFallbackNode","serializeSymbolWorker","popErrorFallbackNode","escapedSymbolName","isDefault","needsPostExportDefault","needsExportDeclaration","isConstMergedWithNS","isConstMergedWithNSPrintableAsSignatureMerge","isTypeRepresentableAsFunctionNamespaceMerge","serializeAsFunctionNamespaceMerge","serializeTypeAlias","aliasType","getDeclaredTypeOfTypeAlias","typeParams","typeParamDecls","jsdocAliasDecl","internalSymbolName","serializeMaybeAliasAssignment","localName","isConstantVariable","getUnusedName","textRange","propertyAccessRequire","alias","serializeEnum","memberProps","initializedValue","initializer2","memberName2","member2","memberDecl","initializerLength","isConstEnumSymbol","serializeAsAlias","serializeAsClass","originalDecl","oldEnclosing","localParams","classType","getTypeWithThisArgument","getDeclaredTypeOfClassOrInterface","baseTypes","originalImplements","implementsExpressions","sanitizeJSDocImplements","getImplementsTypes","resolvedImplementsTypes","implementsTypeNodes","implementsType","getTypeFromTypeNode","serializeImplementedType","staticType","isClass","staticBaseType","getBaseConstructorTypeOfClass","serializeBaseType","rootName","trySerializeAsTypeReference","tempName","symbolProps","getNonInheritedProperties","properties2","publicSymbolProps","isHashPrivate","hasPrivateIdentifier","privateProperties","serializePropertySymbolsForClassOrInterface","publicProperties","staticMembers","isNamespaceMember","isNonConstructableClassLikeInJsFile","constructors","serializeSignatures","indexSignatures","serializeIndexSignatures","isTypeOnlyNamespace","getNamespaceMembersForSerialization","getSymbolFlags","resolveSymbol","serializeModule","expanding","locationMap","realMembers","mergedMembers","oldFlags","localText","serializeAsNamespaceDeclaration","nsBody","localName2","aliasDecl","getDeclarationOfAliasSymbol","reportNonlocalAugmentation","getTargetOfAliasDeclaration","targetName","serializeInterface","interfaceType","resolveExternalModuleName","isExternalImportAlias","additionalModifierFlags","oldModifierFlags","newModifierFlags","enclosingDeclaration2","isExportingScope","modifiersLength","isStatic2","placeholder","createTruncationProperty","serializePropertySymbolForInterface","dotDotDotText","membersSet","exported","getSignatureTextRangeLocation","nodeFlags","localProps","fakespace","oldResults","oldAddingDeclare","subcontext","oldContext","defaultReplaced","exportModifierStripped","verbatimTargetName","getSomeTargetNameFromDeclarations","isAliasSymbolDeclaration","specifier2","propertyNameText","serializeExportSpecifier","isLocalImport","generatedSpecifier","isExportAssignmentCompatibleSymbolName","getFirstNonModuleExportsIdentifier","prevDisableTrackSymbol","disableTrackSymbol","varName","typeToSerialize","hostSymbol","ctxSrc","createProperty2","methodKind","useAccessors","serializePropertySymbol","omitType","getPropertyOfType","firstPropertyLikeDecl","setter","propDecl","paramSymbol","modifierFlags2","results2","outputKind","baseSigs","failed2","compareSignaturesIdentical","compareTypesIdentical","privateProtected","baseInfo","getIndexInfoOfType","typeArgs","isSymbolAccessibleByFlags","getNameCandidateWorker","nameCandidate","rootSymbol","evaluateEnumMember","globalThisSymbol","apparentArgumentCount","lastGetCombinedNodeFlagsNode","lastGetCombinedModifierFlagsNode","lastGetCombinedNodeFlagsResult","lastGetCombinedModifierFlagsResult","getSymbol2","checkAndReportErrorForInvalidInitializer","errorLocation","checkAndReportErrorForMissingPrefix","diagnosticName","checkAndReportErrorForExtendingInterface","checkAndReportErrorForUsingTypeAsNamespace","namespaceMeaning","checkAndReportErrorForExportingPrimitiveType","isPrimitiveTypeName","checkAndReportErrorForUsingNamespaceAsTypeOrValue","checkAndReportErrorForUsingTypeAsValue","heritageKind","allFlags","rawName","isES2015OrLaterConstructorName","maybeMappedType","allTypesAssignableToKind","checkAndReportErrorForUsingValueAsType","suggestedLib","getSuggestedLibForNonExistentName","missingName","typeFeatures","suggestionCount","maximumSuggestionCount","getSuggestedSymbolForNonexistentSymbol","suggestionName","isUncheckedJS","isUncheckedJSSuggestion","createError","addErrorOrSuggestion","isInExternalModule","exportOrLocalSymbol","checkResolvedBlockScopedVariable","isBlockScopedNameDeclaredBeforeUse","errorOrSuggestion","allowUmdGlobalAccess","getLateBoundSymbol","typeOnlyDeclaration","getTypeOnlyAliasDeclaration","unescapedName","addTypeOnlyDeclarationRelatedInfo","nonValueSymbol","importDecl","resolveNameForSymbolSuggestion","getSuggestionForSymbolNameLookup","getSpellingSuggestionForName","getNodeCount","getIdentifierCount","getSymbolCount","getTypeCount","getInstantiationCount","getRelationCacheSizes","assignable","assignableRelation","identityRelation","subtype","subtypeRelation","strictSubtype","strictSubtypeRelation","isUndefinedSymbol","isArgumentsSymbol","isUnknownSymbol","symbolIsValue","ensurePendingDiagnosticWorkComplete","getUnmatchedProperties","getTypeOfSymbolAtLocation","locationIn","removeOptionalTypeMarker","checkPropertyAccessExpression","getTypeOfExpression","getAnnotatedAccessorTypeNode","getWriteTypeOfAccessors","getSymbolsOfParameterPropertyDeclaration","parameterIn","getPrivateIdentifierPropertyOfType","lexicallyScopedIdentifier","lookupSymbolForPrivateIdentifierDeclaration","stringType","numberType","getIndexTypeOfType","getIndexType","getBaseTypeOfLiteralType","fillMissingTypeArguments","getParameterType","getTypeAtPosition","getParameterIdentifierInfoAtPosition","paramCount","paramIdent","getParameterDeclarationIdentifier","restParameter","restIdent","restType","isTupleType","associatedNames","associatedName","isRestTupleElement","getPromisedTypeOfPromise","getAwaitedType","isNullableType","getNullableType","getNonNullableType","getNonOptionalType","getSymbolsInScope","isStaticSymbol","populateSymbols","symbolsToArray","copySymbols","copyLocallyVisibleExportSymbols","copySymbol","getIndexInfosAtLocation","getLiteralTypeFromPropertyName","isApplicableIndexType","getShorthandAssignmentValueSymbol","getExportSpecifierLocalTargetSymbol","getExternalModuleMember","getExportSymbolOfSymbol","getTypeAtLocation","getTypeOfNode","getTypeOfAssignmentPattern","getPropertySymbolOfDestructuringAssignment","typeOfObjectLiteral","typePredicateToString","writeSignature","writeTypePredicate","getAugmentedPropertiesOfType","getRootSymbols","roots","getImmediateRootSymbols","containingType","leftSpread","rightSpread","syntheticOrigin","tryGetTarget","getSymbolOfExpando","getContextualType","runWithInferenceBlockedFromSourceNode","getContextualType2","getContextualTypeForObjectLiteralElement","getContextualTypeForArgumentAtIndex","argIndex","getContextualTypeForJsxAttribute","isContextSensitive","getTypeOfPropertyOfContextualType","getFullyQualifiedName","getResolvedSignature","candidatesOutArray","argumentCount","getResolvedSignatureWorker","getCandidateSignaturesForStringLiteralCompletions","editingArgument","candidatesSet","runWithoutResolvedSignatureCaching","getResolvedSignatureForSignatureHelp","hasEffectiveRestParameter","containsArgumentsReference","isValidPropertyAccess","isValidPropertyAccessWithType","isValidPropertyAccessForCompletions","declarationIn","getImmediateAliasedSymbol","getEmitResolver","cancellationToken2","skipDiagnostics","getExportsOfModuleAsArray","getExportsAndPropertiesOfModule","shouldTreatPropertiesOfExternalModuleAsExports","forEachExportAndPropertyOfModule","forEachPropertyOfType","getReducedApparentType","isNamedMember","tryGetRestTypeOfSignature","getAmbientModules","ambientModulesCache","global2","getJsxIntrinsicTagNamesAt","intrinsics","getJsxType","IntrinsicElements","tryGetMemberInModuleExports","tryGetMemberInModuleExportsAndProperties","tryFindAmbientModule","getApparentType","getUnionType","isTypeAssignableTo","createIndexInfo","getAnyType","getStringType","getStringLiteralType","getNumberType","getNumberLiteralType","getBigIntType","bigintType","getBigIntLiteralType","getUnknownType","createPromiseType","createArrayType","getElementTypeOfArrayType","getBooleanType","getFalseType","fresh","regularFalseType","getTrueType","regularTrueType","getVoidType","getUndefinedType","getNullType","getESSymbolType","esSymbolType","getNeverType","neverType","getNonPrimitiveType","nonPrimitiveType","optionalType","getPromiseType","getGlobalPromiseType","getPromiseLikeType","getGlobalPromiseLikeType","getAnyAsyncIterableType","emptyGenericType","createTypeReference","isArrayLikeType","isEmptyAnonymousObjectType","isTypeInvalidDueToUnionDiscriminant","contextualType","expected","isLiteralType","getExactOptionalProperties","targetProp","containsMissingType","getAllPossiblePropertiesOfTypes","unionType","memberType","createUnionOrIntersectionProperty","getSuggestedSymbolForNonexistentProperty","getSuggestedSymbolForNonexistentJSXAttribute","getSuggestedSymbolForNonexistentModule","getSuggestedSymbolForNonexistentClassMember","getBaseConstraintOfType","getJsxNamespace","getJsxFragmentFactory","jsxFragmentFactory","moduleSpecifierIn","tryGetThisTypeAt","includeGlobalThis","getTypeArgumentConstraint","typeReferenceNode","getTypeParametersForTypeReferenceOrImport","createTypeMapper","getEffectiveTypeArguments2","getSuggestionDiagnostics","fileIn","ct","diagnostics2","checkSourceFileWithEagerDiagnostics","suggestionDiagnostics","checkUnusedIdentifiers","getPotentiallyUnusedIdentifiers","containingNode","unusedIsError","runWithCancellationToken","isPropertyAccessible","getMemberOverrideModifierStatus","memberSymbol","classSymbol","typeWithThis","baseWithThis","baseStaticType","memberHasOverrideModifier","checkMemberForOverrideModifier","isTypeParameterPossiblyReferenced","typeHasCallOrConstructSignatures","getTypeArgumentsForResolvedSignature","instantiateTypes","cachedResolvedSignatures","cachedTypes2","nodeLinks2","resolvedSignature","symbolLinks2","containingCall","toMarkSkip","skipDirectInference","tupleTypes","unionOfUnionTypes","stringLiteralTypes","numberLiteralTypes","bigIntLiteralTypes","enumLiteralTypes","indexedAccessTypes","templateLiteralTypes","stringMappingTypes","substitutionTypes","subtypeReductionCache","decoratorContextOverrideTypeCache","cachedTypes","evolvingArrayTypes","undefinedProperties","markerTypes","resolvingSymbol","unresolvedSymbols","errorTypes","seenIntrinsicNames","createIntrinsicType","autoType","wildcardType","blockedStringType","nonInferrableAnyType","undefinedWideningType","undefinedOrMissingType","nullWideningType","regularType","freshType","outofbandVarianceMarkerHandler","silentNeverType","implicitNeverType","unreachableNeverType","stringOrNumberType","stringNumberSymbolType","numberOrBigIntType","templateConstraintType","numericStringType","getTemplateLiteralType","restrictiveMapper","makeFunctionTypeMapper","getRestrictiveTypeParameter","noConstraintType","restrictiveInstantiation","permissiveMapper","uniqueLiteralType","uniqueLiteralMapper","reportUnreliableMapper","markerSuperType","markerSubType","markerOtherType","reportUnmeasurableMapper","emptyObjectType","emptyJsxObjectType","emptyFreshJsxObjectType","emptyTypeLiteralSymbol","emptyTypeLiteralType","unknownEmptyObjectType","unknownUnionType","instantiations","anyFunctionType","circularConstraintType","resolvingDefaultType","amalgamatedDuplicates","patternAmbientModuleAugmentations","globalObjectType","globalFunctionType","globalCallableFunctionType","globalNewableFunctionType","globalStringType","globalNumberType","globalBooleanType","globalRegExpType","globalThisType","anyArrayType","autoArrayType","anyReadonlyArrayType","deferredGlobalNonNullableTypeAlias","deferredGlobalESSymbolConstructorSymbol","deferredGlobalESSymbolConstructorTypeSymbol","deferredGlobalESSymbolType","deferredGlobalTypedPropertyDescriptorType","deferredGlobalPromiseType","deferredGlobalPromiseLikeType","deferredGlobalPromiseConstructorSymbol","deferredGlobalPromiseConstructorLikeType","deferredGlobalIterableType","deferredGlobalIteratorType","deferredGlobalIterableIteratorType","deferredGlobalIteratorObjectType","deferredGlobalGeneratorType","deferredGlobalIteratorYieldResultType","deferredGlobalIteratorReturnResultType","deferredGlobalAsyncIterableType","deferredGlobalAsyncIteratorType","deferredGlobalAsyncIterableIteratorType","deferredGlobalBuiltinIteratorTypes","deferredGlobalBuiltinAsyncIteratorTypes","deferredGlobalAsyncIteratorObjectType","deferredGlobalAsyncGeneratorType","deferredGlobalTemplateStringsArrayType","deferredGlobalImportMetaType","deferredGlobalImportMetaExpressionType","deferredGlobalImportCallOptionsType","deferredGlobalImportAttributesType","deferredGlobalDisposableType","deferredGlobalAsyncDisposableType","deferredGlobalExtractSymbol","deferredGlobalOmitSymbol","deferredGlobalAwaitedSymbol","deferredGlobalBigIntType","deferredGlobalNaNSymbol","deferredGlobalRecordSymbol","deferredGlobalClassDecoratorContextType","deferredGlobalClassMethodDecoratorContextType","deferredGlobalClassGetterDecoratorContextType","deferredGlobalClassSetterDecoratorContextType","deferredGlobalClassAccessorDecoratorContextType","deferredGlobalClassAccessorDecoratorTargetType","deferredGlobalClassAccessorDecoratorResultType","deferredGlobalClassFieldDecoratorContextType","lastFlowNode","lastFlowNodeReachable","flowTypeCache","_jsxNamespace","_jsxFactoryEntity","noTypePredicate","createTypePredicate","anySignature","unknownSignature","resolvingSignature","silentNeverSignature","enumNumberIndexInfo","iterationTypesCache","noIterationTypes","yieldType","nextType","anyIterationTypes","createIterationTypes","silentNeverIterationTypes","asyncIterationTypesResolver","iterableCacheKey","iteratorCacheKey","iteratorSymbolName","getGlobalIteratorType","getGlobalAsyncIteratorType","getGlobalType","getGlobalIteratorObjectType","getGlobalAsyncIteratorObjectType","getGlobalGeneratorType","getGlobalAsyncGeneratorType","getGlobalBuiltinIteratorTypes","getGlobalBuiltinAsyncIteratorTypes","getGlobalBuiltinTypes","resolveIterationType","mustHaveANextMethodDiagnostic","mustBeAMethodDiagnostic","mustHaveAValueDiagnostic","syncIterationTypesResolver","_errorNode","reverseMappedCache","reverseHomomorphicMappedCache","allPotentiallyUnusedIdentifiers","flowLoopStart","flowLoopCount","sharedFlowCount","flowAnalysisDisabled","flowInvocationCount","contextualTypeNodes","contextualTypes","contextualIsCache","contextualTypeCount","contextualBindingPatterns","inferenceContextNodes","inferenceContexts","inferenceContextCount","activeTypeMappers","activeTypeMappersCaches","activeTypeMappersCount","emptyStringType","zeroType","zeroBigIntType","resolutionTargets","resolutionResults","resolutionPropertyNames","resolutionStart","inVarianceComputation","mergedSymbols","symbolLinks","nodeLinks","flowLoopCaches","flowLoopNodes","flowLoopKeys","flowLoopTypes","sharedFlowNodes","sharedFlowTypes","flowNodeReachable","flowNodePostSuper","potentialThisCollisions","potentialNewTargetCollisions","potentialWeakMapSetCollisions","potentialReflectCollisions","potentialUnusedRenamedBindingElementsInTypes","awaitedTypeStack","reverseMappedSourceStack","reverseMappedTargetStack","reverseExpandingFlags","typeofType","createTypeofType","comparableRelation","enumRelation","suggestedExtensions","initializeTypeChecker","augmentations","fileGlobalThisSymbol","mergeSymbolTable","sourceSymbol","augmentation","mergeModuleAugmentation","addUndefinedToGlobalsOrErrorOnRedeclaration","targetSymbol","createObjectType","getGlobalTypeOrUndefined","createTypeFromGenericGlobalType","firstFile","secondFile","conflictingSymbols","isBlockScoped","firstFileLocations","secondFileLocations","addDuplicateDeclarationError","getGlobalSymbol","getCachedType","setCachedType","localJsxFragmentNamespace","jsxFragmentPragma","chosenPragma","localJsxFragmentFactory","markAsSynthetic","localJsxNamespace","getLocalJsxNamespace","jsxPragma","localJsxFactory","errorSkippedOn","skippedOn","getVerbatimModuleSyntaxErrorMessage","errorAndMaybeSuggestAwait","maybeMissingAwait","addDeprecatedSuggestionWorker","deprecatedTag","isDeprecatedSymbol","isDeprecatedDeclaration2","getCombinedNodeFlagsCached","addDeprecatedSuggestion","deprecatedEntity","createParameter2","createProperty","getExcludedSymbolFlags","recordMergedSymbol","cloneSymbol","mergeSymbol","unidirectional","reportMergeSymbolError","target2","source2","isEitherEnum","isEitherBlockScoped","sourceSymbolFile","targetSymbolFile","isSourcePlainJs","isTargetPlainJs","filesDuplicates","conflictingSymbolInfo","addDuplicateLocations","addDuplicateDeclarationErrorsForSymbols","locs","relatedNodes","lookupOrIssueError","relatedNode","adjustedNode","leadingMessage","followOnMessage","mergedParent","moduleAugmentation","mainModule","resolveExternalModuleNameWorker","resolvedExports","getResolvedMembersOrExportsOfSymbol","useFile","declContainer","isUsedInFunctionOrInstanceProperty","isInAmbientOrTypeNode","errorBindingElement","isImmediatelyUsedInInitializerOfBlockScopedVariable","declaration2","usage2","isSameScopeDescendentOf","isPropertyImmediatelyReferencedWithinDeclaration","isUsedInFunctionOrInstancePropertyWorker","propertyDeclaration","isPropertyInitializedInStaticBlocks","propType","staticBlocks","endPos","staticBlock","containsUndefinedType","getFlowTypeOfReference","stopAtAnyPropertyDeclaration","isTypeReferenceIdentifier","getEntityNameForExtendingInterface","stopAt","getAnyImportSyntax","isAliasableOrJsExpression","getTargetOfImportEqualsDeclaration","dontResolveAlias","commonJSPropertyAccess","getCommonJSPropertyAccess","resolveExternalModuleTypeByLiteral","immediate","getExportOfModule","markSymbolOfAliasDeclarationIfTypeOnly","getSymbolOfPartOfRightHandSideOfImportEquals","checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol","isExport","relatedMessage","resolveExportByName","exportValue","isSyntacticDefault","getEmitSyntaxForModuleSpecifierExpression","getEmitSyntaxForUsageLocation","isOnlyImportableAsDefault","canHaveSyntheticDefault","usageMode","getImpliedNodeFormatForEmit","defaultExportSymbol","hasExportAssignmentSymbol","getTargetofModuleDefault","getModuleSpecifierForImportOrExport","exportDefaultSymbol","exportModuleDotExportsSymbol","hasDefaultOnly","hasSyntheticDefault","compilerOptionName","reportNonDefaultExport","exportStar","defaultExport","errorNoModuleMemberSymbol","nameText","typeOnlyExportStarMap","resolveESModuleSymbol","symbolFromVariable","getPropertyOfVariable","typeAnnotation","symbolFromModule","combineValueAndTypeSymbols","valueSymbol","reportNonExportedMember","exportedEqualsSymbol","reportInvalidImportEqualsExportMember","exportedSymbol","getTargetOfExportSpecifier","getTargetOfAliasLikeExpression","checkExpressionCached","aliasLike","dontRecursivelyResolve","getTargetOfImportClause","getTargetOfNamespaceImport","getTargetOfNamespaceExport","getTargetOfImportSpecifier","getTargetOfExportAssignment","getTargetOfNamespaceExportDeclaration","getTargetOfAccessExpression","isNonLocalAlias","aliasTarget","excludeTypeOnlyMeanings","excludeLocalMeanings","typeOnlyDeclarationIsExportStar","typeOnlyResolution","typeOnlyExportStarTargets","seenSymbols","aliasDeclaration","immediateTarget","finalTarget","overwriteEmpty","exportStarDeclaration","exportStarName","links2","typeOnlyExportStarName","markSymbolOfAliasDeclarationIfTypeOnlyWorker","aliasDeclarationLinks","typeOnly","containingLocation","ignoreErrors","getCannotFindNameDiagnosticForName","symbolFromJSPrototype","resolveEntityNameFromAssignmentDeclaration","isJSDocTypeReference","secondaryLocation","getAssignmentDeclarationLocation","host2","getDeclarationOfJSPrototypeContainer","isCommonJsRequire","moduleSym","resolvedModuleSymbol","namespaceName","suggestionForNonexistentModule","containingQualifiedName","getContainingQualifiedNameNode","canSuggestTypeof","tryGetQualifiedNameAsValue","exportedTypeSymbol","moduleReferenceExpression","errorMessage","moduleNotFoundError","isForAugmentation","resolveExternalModule","ambientModule","contextSpecifier","moduleResolutionKind","resolutionDiagnostic","getSourceFile","importOrExport","getSuggestedImportSource","tsExtension","importSourceWithoutExtension","preferTs","shouldRewrite","redirect","ownRootDir","otherRootDir","errorOnImplicitAnyModule","isSyncImport","overrideHost","diagnosticDetails","isExtensionlessRelativePathImport","resolutionIsNode16OrNext","absoluteRef","suggestedExt","actualExt","_importExt","errorInfo","getCommonJsExportEquals","cjsExportMerged","resolvedMembers","referencingLocation","suppressInteropError","referenceParent","namespaceImport","defaultOnlyType","getTypeWithSyntheticDefaultOnly","cloneTypeAsModuleType","hasSignatures","isEsmCjsRef","isESMFormatImportImportingCommonjsFormatFile","getTypeWithSyntheticDefaultImportType","createDefaultPropertyWrapperForModule","getSignaturesOfStructuredType","moduleType","originatingImport","resolvedModuleType","resolvedExternalModuleType","getExportsOfModuleWorker","extendExportSymbols","exportNode","collisionTracker","exportsWithDuplicate","specifierText","nonTypeOnlyNames","exportStars","nestedSymbols","getSymbolOfNode","getFunctionExpressionParentSymbolOrSymbol","getWithAlternativeContainers","containers","bestContainers","alternativeContainers","bestMatch","additionalContainers","fileSymbolIfFileSymbolExportEqualsContainer","reexportContainers","getAlternativeContainingModules","extendedContainersByFile","importRef","extendedContainers","otherFiles","objectLiteralContainer","getVariableDeclarationOfObjectLiteral","firstDecl","firstVariableMatch","forEachSymbolTableInScope","fileSymbol","getExternalModuleContainer","quick","includeTypeOnlyMembers","createType","createTypeWithSymbol","createOriginType","checkIntrinsicName","debug","getNamedMembers","setStructuredTypeMembers","rightMeaning","useOnlyExternalAliasing","visitedSymbolTablesMap","isPropertyOrMethodDeclarationSymbol","accessibleChainCache","firstRelevantLocation","__","___","visitedSymbolTables","getAccessibleSymbolChainFromSymbolTable","ignoreQualification","isLocalNameLookup","trySymbolTable","isAccessible","symbolFromSymbolTable","getCandidateListForSymbol","canQualifySymbol","resolvedAliasSymbol","resolvedImportedSymbol","candidateTable","accessibleSymbolsFromExports","qualify","shouldResolveAlias","isAnySymbolAccessible","initialSymbol","shouldComputeAliasesToMakeVisible","allowModules","hadAccessibleChain","earlyModuleBail","hasAccessibleDeclarations","hasVisibleDeclarations","parentResult","errorSymbolName","errorModuleName","symbolExternalModule","hasExternalModuleSymbol","aliasesToMakeVisible","getIsDeclarationVisible","anyImportSyntax","addVisibleAlias","rootDeclaration","variableStatement","aliasingStatement","isVisible","internalNodeFlags","builder","symbolToStringWorker","writer2","printer","writeNode","signatureToStringWorker","sigOutput","toNodeBuilderFlags","noTruncation","noErrorTruncation","maxLength2","getTypeNamesForErrorDisplay","leftStr","symbolValueDeclarationIsContextSensitive","rightStr","getTypeNameForErrorDisplay","isSourceFileDefaultLibrary","typePredicateToStringWorker","nodeBuilderFlags","visibilityToString","isTopLevelInExternalModuleAugmentation","isDefaultBindingContext","getNameOfSymbolFromNameType","determineIfDeclarationIsVisible","getDeclarationContainer","getCombinedModifierFlagsCached","setVisibility","buildVisibleNodeList","resultNode","importSymbol","pushTypeResolution","resolutionCycleStartIndex","findResolutionCycleStartIndex","resolutionTargetHasProperty","resolvedBaseConstructorType","resolvedReturnType","immediateBaseConstraint","baseTypesResolved","parameterInitializerContainsUndefined","popTypeResolution","getTypeOfPropertyOrIndexSignatureOfType","getApplicableIndexInfoForName","getTypeForBindingElementParent","getTypeForVariableLikeDeclaration","getRestType","mapType","omitKeyType","spreadableProperties","unspreadableToRestKeys","literalTypeFromProperty","getLiteralTypeFromProperty","isSpreadableProperty","isGenericObjectType","isGenericIndexType","omitTypeAlias","getGlobalOmitSymbol","getGlobalTypeAliasSymbol","getTypeAliasInstantiation","getSpreadSymbol","isGenericTypeWithUndefinedConstraint","maybeTypeOfKind","getNonUndefinedType","getBaseConstraintOrType","getFlowTypeOfDestructuring","getSyntheticElementAccess","getParentElementAccess","getDestructuringPropertyName","lhsExpr","getLiteralPropertyNameText","getTypeForBindingElement","parentType","getBindingElementTypeFromParentType","noTupleBoundsCheck","hasTypeFacts","getTypeOfInitializer","accessFlags","hasDefaultValue","isValidSpreadType","literalMembers","getIndexedAccessType","checkIteratedTypeOrElementType","baseConstraint","everyType","sliceTupleType","getIndexedAccessTypeOrUndefined","checkDeclarationInitializer","widenTypeInferredFromInitializer","getTypeForDeclarationFromJSDocComment","jsdocType","isEmptyArrayLiteral2","isProperty","isOptional","includeOptionality","getNonNullableTypeIfNeeded","getExtractStringType","checkRightHandSideOfForOf","tryGetTypeFromEffectiveTypeNode","isNullOrUndefined3","hasBindableName","getter","getAccessorThisParameter","parameterTypeOfTypeTag","getParameterTypeOfTypeTag","getSignatureOfTypeTag","getRestTypeAtPosition","getContextualThisParameterType","getContextuallyTypedParameterType","containerObjectType","getJSContainerObjectType","getFlowTypeInStaticBlocks","accessName","flowType","getFlowTypeOfProperty","convertAutoToAny","getTypeOfPropertyInBaseClass","getFlowTypeInConstructor","getTypeFromBindingPattern","isConstructorDeclaredProperty","getDeclaringConstructor","isPossiblyAliasedThisProperty","getAnnotatedTypeForAssignmentDeclaration","isAutoTypedProperty","initialType","getWidenedTypeForAssignmentDeclaration","definedInConstructor","definedInMethod","isDeclarationInConstructor","getInitializerTypeFromAssignmentDeclaration","constructorTypes","getConstructorDefinedThisAssignmentTypes","widened","reportImplicitAny","errorNextVariableOrPropertyDeclarationMustHaveSameType","possiblyAnnotatedSymbol","annotationSymbol","objectLitType","valueType","getFunc","getSig","getSingleCallSignature","setFunc","setSig","getTypeOfFirstParameterOfSignature","containsSameNamedThisProperty","thisProperty","isMatchingReference","isDirectExport","exportedType","initialSize","exportedMember","exportedMemberName","union","getPropagatingFlagsOfTypes","isEmptyArrayLiteralType","getTypeFromBindingElement","includePatternInType","getWidenedLiteralTypeForInitializer","declarationBelongsToPrivateAmbientMember","getTypeFromObjectBindingPattern","stringIndexInfo","exprType","getTypeFromArrayBindingPattern","restElement","createIterableType","elementTypes","minLength","createTupleType","cloneTypeReference","getWidenedTypeForVariableLikeDeclaration","widenTypeForVariableLikeDeclaration","getTypeFromImportAttributes","attr","checkImportAttribute","isGlobalSymbolConstructor","globalSymbol","getGlobalESSymbolConstructorTypeSymbol","getESSymbolLikeTypeForNode","reportErrorsFromWidening","isPrivateWithinAmbient","getTypeOfVariableOrParameterOrProperty","getTypeOfVariableOrParameterOrPropertyWorker","getTypeOfPrototypeProperty","getTypeOfFuncClassEnumModule","reportCircularityError","checkPropertyAssignment","checkJsxAttribute","checkExpressionForMutableLocation","checkObjectLiteralMethod","getTypeOfEnumMember","isParameterOfContextSensitiveSignature","isContextSensitiveFunctionOrObjectLiteralMethod","getAnnotatedAccessorType","getReturnTypeFromBody","baseConstructorType","originalLinks","expando","mergeJSSymbols","getTypeOfFuncClassEnumModuleWorker","baseTypeVariable","getDeclaredTypeOfEnumMember","getTypeOfAlias","isDuplicatedCommonJSExport","getFlowTypeFromCommonJSExport","areAllModuleExports","getTypeOfSymbolWithDeferredType","deferralParent","deferralConstituents","getWriteTypeOfSymbolWithDeferredType","deferralWriteConstituents","getWriteTypeOfInstantiatedSymbol","getTypeOfInstantiatedSymbol","getTypeOfMappedSymbol","appendTypeMapping","removeMissingOrUndefinedType","getTypeOfReverseMappedSymbol","inferReverseMappedType","isReferenceToSomeType","getTargetType","hasBaseType","checkBase","appendTypeParameters","getOuterTypeParameters","includeThisTypes","assignmentKind","outerAndOwnTypeParameters","isMixinConstructorType","getTypeOfParameter","getBaseTypeNodeOfClass","getConstructorsForTypeArguments","typeArgCount","isJavascript","getInstantiatedConstructorsForTypeArguments","getSignatureInstantiation","extended","baseTypeNode","getConstraintFromTypeParameter","ctorReturn","ctorSig","reportCircularBaseType","resolvedBaseTypes","getTupleBaseType","resolveBaseTypesOfClass","originalBaseType","areAllOuterTypeParametersApplied","getTypeFromClassOrInterfaceReference","reducedBaseType","isValidBaseType","elaborateNeverIntersection","resolveBaseTypesOfInterface","getAssignedClassSymbol","assignmentSymbol","getAssignedJSPrototype","localTypeParameters","isThislessInterface","baseTypeNodes","baseSymbol","getTypeListId","getBuiltinIteratorReturnType","getDeclaredTypeOfEnum","memberTypeList","getFreshTypeOfLiteralType","getEnumLiteralType","createComputedEnumType","enumType","tryGetDeclaredTypeOfSymbol","getDeclaredTypeOfAlias","isThislessType","isThislessTypeParameter","isThislessVariableLikeDeclaration","isThisless","isThislessFunctionLikeDeclaration","createInstantiatedSymbolTable","mappingThisOnly","instantiateSymbol","addInheritedMembers","baseSymbols","isStaticPrivateIdentifierProperty","derived","resolveDeclaredMembers","declaredProperties","declaredCallSignatures","declaredConstructSignatures","declaredIndexInfos","getSignaturesOfSymbol","getIndexInfosOfSymbol","isLateBindableAST","isTypeUsableAsIndexSignature","hasLateBindableIndexSignature","isNonBindableDynamicName","lateBindMember","earlySymbols","lateSymbols","lateSymbol","earlySymbol","addDeclarationToLateBoundSymbol","lateBindIndexSignature","indexSymbol","early","resolutionKind","assignments","combineSymbolTables","thisArgument","needApparentType","resolveObjectTypeMembers","instantiateSignatures","instantiateIndexInfos","sourceIndex","instantiatedBaseType","inheritedIndexInfos","findIndexInfo","resolvedTypePredicate","minArgumentCount","resolvedMinArgumentCount","compositeSignatures","compositeKind","cloneSignature","createUnionSignature","unionSignatures","getOptionalCallSignature","callChainFlags","optionalCallSignatureCache","createOptionalCallSignature","skipUnionExpanding","restIndex","restSymbol","expandSignatureParametersWithTupleMembers","getUniqAssociatedNamesFromTupleType","labeledElement","duplicates","uniqueNames","counters","counter","restParams","getParameterNameAtPosition","findMatchingSignature","signatureList","partialMatch","ignoreThisTypes","ignoreReturnTypes","compareTypesSubtypeOf","findMatchingSignatures","signatureLists","listIndex","getUnionSignatures","indexWithLengthOverOne","firstThisParameterOfUnionSignatures","createSymbolWithType","masterList","compareTypeParametersIdentical","combineSignaturesOfUnionMembers","sourceParams","targetParams","paramMapper","combineUnionParameters","leftCount","getParameterCount","rightCount","longest","shorter","longestCount","eitherHasEffectiveRest","needsExtraRestElement","longestParamType","tryGetTypeAtPosition","shorterParamType","unionParamType","isRestParam","getMinArgumentCount","leftName","rightName","restParamSymbol","lastParam","thisParam","combineUnionThisParam","combineTypeMappers","getUnionIndexInfos","sourceInfos","intersectTypes","type1","findMixins","constructorTypeCount","mixinFlags","firstMixinIndex","includeMixinType","mixedTypes","appendSignatures","newSignatures","appendIndexInfo","newInfo","resolveAnonymousTypeMembers","members2","baseConstructorIndexInfo","varsOnly","getNamedOrIndexSignatureMembers","getIndexSymbolFromSymbolTable","getDefaultConstructSignatures","baseSignatures","isAbstract","isJavaScript","typeArgumentsFromTypeReferenceNode","baseSig","minTypeArgumentCount","typeParamCount","createSignatureInstantiation","replaceIndexedAccess","instantiable","resolveReverseMappedTypeMembers","readonlyMask","optionalMask","limitedConstraint","getLimitedConstraint","inferredProp","newTypeParam","newMappedType","getLowerBoundOfKeyType","isGenericTupleType","getKnownKeysOfTupleType","getConditionalTypeInstantiation","getIsLateCheckFlag","forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType","stringsOnly","resolveMappedTypeMembers","shouldLinkPropDeclarations","getMappedTypeNameTypeKind","templateModifiers","addMemberForKeyType","forEachType","addMemberForKeyTypeWorker","propNameType","existingProp","modifiersProp","stripOptional","isValidIndexKeyType","indexKeyType","modifiersIndexInfo","getApplicableIndexInfo","getConstraintDeclarationForMappedType","constraintDeclaration","getTypeFromMappedTypeNode","extendedConstraint","getMappedTypeOptionality","getCombinedMappedTypeOptionality","optionality","makeUnaryTypeMapper","resolveTypeReferenceMembers","resolveClassOrInterfaceMembers","resolveUnionTypeMembers","resolveIntersectionTypeMembers","mixinCount","infos","getPropertyOfObjectType","getPropertiesOfUnionOrIntersectionType","resolvedProperties","combinedProp","getPropertyOfUnionOrIntersectionType","getConstraintOfType","getConstraintOfIndexedAccess","hasNonCircularBaseConstraint","getConstraintFromIndexedAccess","isMappedTypeGenericIndexedAccess","substituteIndexedMappedType","indexConstraint","getSimplifiedTypeOrConstraint","indexedAccess","objectConstraint","getConstraintOfConditionalType","isConstTypeVariable","isConstMappedType","typeVariable","getElementTypes","getSimplifiedType","getDefaultConstraintOfConditionalType","resolvedDefaultConstraint","trueConstraint","getInferredTrueTypeFromConditionalType","resolvedInferredTrueType","combinedMapper","falseConstraint","getConstraintOfDistributiveConditionalType","resolvedConstraintOfDistributive","getConstraintFromConditionalType","getResolvedBaseConstraint","resolvedBaseConstraint","stack","getImmediateBaseConstraint","identity2","computeBaseConstraint","getBaseConstraint","different","constraints","getStringMappingType","baseObjectType","baseIndexType","baseIndexedAccess","getSubstitutionIntersection","isArrayOrTupleType","getResolvedTypeParameterDefault","targetDefault","defaultDeclaration","hasTypeParameterDefault","getApparentTypeOfMappedType","resolvedApparentType","getResolvedApparentTypeOfMappedType","isArrayOrTupleOrIntersection","getApparentTypeOfIntersectionType","getGlobalBigIntType","getGlobalESSymbolType","skipObjectFunctionPropertyAugment","singleProp","propSet","indexTypes","propFlags","isUnion","optionalFlag","syntheticFlag","mergedInstantiations","compareProperties2","getRestTypeOfTupleType","isObjectLiteralType2","getCommonDeclarationsOfSymbols","commonDeclarations","firstType","propTypes","writeTypes","firstValueDeclaration","hasNonUniformValueDeclaration","isPatternLiteralType","getUnionOrIntersectionProperty","propertyCacheWithoutObjectFunctionPropertyAugment","propertyCache","resolvedReducedType","getReducedUnionType","reducedTypes","isNeverReducedProperty","isDiscriminantWithNeverType","isConflictingPrivateProperty","isGenericReducibleType","isReducibleIntersection","uniqueFilled","uniqueLiteralFilledInstantiation","neverProp","privateProp","functionType","arrayFallbackSignatures","isArrayOrTupleSymbol","isReadonlyArraySymbol","findApplicableIndexInfo","applicableInfo","applicableInfos","getIndexInfosOfStructuredType","getApplicableIndexInfos","getTypeParametersFromDeclaration","withAugmentations","parameterIndex","iife","getEffectiveCallArguments","isJavaScriptImplicitAny","numTypeParameters","numTypeArguments","baseDefaultType","getDefaultTypeArgumentType","hasThisParameter2","isJSConstructSignature","getContextualSignatureForFunctionLikeDeclaration","otherKind","getAnnotatedAccessorThisParameter","hostDeclaration","maybeAddJsSyntheticRestParameter","lastParamTags","lastParamVariadicType","syntheticArgsSymbol","getReferencedValueSymbol","jsDocSignature","getThisTypeOfSignature","targetTypePredicate","getUnionOrIntersectionTypePredicate","typePredicateKindsMatch","compositeType","getUnionOrIntersectionType","jsdocPredicate","jsdocSignature","createTypePredicateFromTypePredicateNode","getTypePredicateFromBody","singleReturn","functionHasImplicitReturn","checkIfExpressionRefinesAnyParameter","initType","isSymbolAssigned","trueType2","checkIfExpressionRefinesParameter","trueCondition","falseCondition","falseSubtype","unionReduction","getReturnTypeFromAnnotation","addOptionalTypeMarker","jsDocType","setterType","getReturnTypeOfTypeTag","isResolvingReturnTypeOfSignature","sigRestType","inferredTypeParameters","instantiatedSignature","getSignatureInstantiationWithoutFillingInTypeArguments","returnSignature","getSingleCallOrConstructSignature","newReturnSignature","newReturnType","newInstantiatedSignature","instantiation","createSignatureTypeMapper","getTypeParametersForMapper","getErasedSignature","erasedSignatureCache","createErasedSignature","createTypeEraser","getCanonicalSignature","canonicalSignatureCache","createCanonicalSignature","getBaseSignature","baseSignatureCache","typeEraser","baseConstraintMapper","baseConstraints","isolatedSignatureType","isConstructor","siblingSymbols","hasComputedNumberProperty","readonlyComputedNumberProperty","hasComputedSymbolProperty","readonlyComputedSymbolProperty","hasComputedStringProperty","readonlyComputedStringProperty","computedPropertySymbols","allPropertySymbols","getObjectLiteralIndexInfo","isGenericType","omitTypeReferences","inferences","childTypeParameter","grandParent","checkMappedType2","typeReference","declaredConstraint","makeDeferredTypeMapper","getEffectiveTypeArgumentAtIndex","targetConstraint","startId","getAliasId","excludeKinds","tryCreateTypeReference","createDeferredTypeReference","localAliasTypeArguments","getTypeArgumentsForAliasSymbol","getAliasSymbolForTypeNode","isJs","missingAugmentsTag","isDeferredTypeReferenceNode","checkNoTypeArguments","typeKind","getNoInferType","instantiateTypeWithAlias","isLocalTypeAlias","getSymbolPath","getUnresolvedSymbolForEntityName","resolveTypeReferenceName","getTypeReferenceName","getTypeReferenceType","getExpandoSymbol","initSymbol","getTypeFromTypeAliasReference","errorType2","newAliasSymbol","aliasSymbol2","getTypeFromJSDocValueReference","resolvedJSDocType","typeType","isImportTypeWithQualifier","isNoInferTargetType","getOrCreateSubstitutionType","getSubstitutionType","isUnaryTupleTypeNode","getImpliedConstraint","checkNode","extendsNode","getActualTypeVariable","indexed","getTypeFromTypeQueryNode","checkExpressionWithTypeArguments","getTypeOfGlobalSymbol","getTypeDeclaration","getGlobalValueSymbol","typeNames","getGlobalImportMetaType","getGlobalImportMetaExpressionType","importMetaType","metaPropertySymbol","getGlobalImportCallOptionsType","getGlobalImportAttributesType","getGlobalESSymbolConstructorSymbol","getGlobalPromiseConstructorSymbol","getGlobalDisposableType","getGlobalAwaitedSymbol","genericGlobalType","createTypedPropertyDescriptorType","getGlobalTypedPropertyDescriptorType","iteratedType","getTupleElementFlags","getRestTypeElementFlags","getArrayElementTypeNode","getArrayOrTupleTargetType","isReadonlyTypeOperator","getTupleTargetType","memberIfLabeledElementDeclaration","hasDefaultTypeArguments","isResolvedByTypeAlias","mayResolveTypeAlias","namedMemberDeclarations","tupleTarget","createNormalizedTypeReference","createTupleTargetType","combinedFlags","tupleLabelDeclaration","fixedLength","lengthSymbol","literalTypes","hasRestElement","createNormalizedTupleType","unionIndex","checkCrossProductUnion","expandedTypes","expandedFlags","expandedDeclarations","lastRequiredIndex","firstRestIndex","lastOptionalOrRestIndex","addElement","endSkipCount","getRestArrayTypeOfTupleType","getEndElementCount","getTotalFixedElementCount","containsType","insertType","addTypeToUnion","typeSet","addTypesToUnion","lastType","isNamedUnionType","isTypeMatchedByTemplateLiteralOrStringMapping","isTypeMatchedByTemplateLiteralType","isMemberOfStringMapping","addNamedUnions","namedUnions","createOriginUnionOrIntersectionType","infix","getUnionTypeWorker","removeRedundantLiteralTypes","reduceVoidUndefined","isFreshLiteralType","removeStringLiteralsMatchedByTemplateLiterals","templates","removeConstrainedTypeVariables","typeVariables","primitives","removeSubtypes","hasObjectTypes","hasEmptyObject","isEmptyResolvedType","isTypeRelatedTo","keyProperty","isUnitType","keyPropertyType","CheckTypes","typeIds","isTypeDerivedFrom","sum","getUnionTypeFromSortedList","precomputedObjectFlags","addTypeToIntersection","addTypesToIntersection","eachUnionContains","unionTypes2","u","primitive","removeFromEach","typeMembershipMap","extractRedundantTemplateLiterals","literals","isTypeSubtypeOf","removeRedundantSupertypes","typeVarIndex","primitiveType","isGenericStringLikeType","isTypeStrictSubtypeOf","intersectUnionsOfPrimitiveTypes","checked","containedUndefinedType","constituents","getCrossProductIntersections","getCrossProductUnionSize","intersections","sourceTypes","getConstituentCountOfTypes","createIntersectionType","getConstituentCount","createIndexType","indexFlags","getIndexTypeForGenericType","resolvedStringIndexType","resolvedIndexType","getIndexTypeForMappedType","keyTypes","includeNonPublic","isKeyTypeIncluded","getLiteralTypeFromProperties","includeOrigin","createOriginIndexType","shouldDeferIndexType","hasDistributiveNameType","extractTypeAlias","getGlobalExtractSymbol","newTypes","newTexts","addSpans","texts2","getTemplateStringForType","isPatternLiteralPlaceholderType","applyStringMapping","applyTemplateStringMapping","getStringMappingTypeForGenericType","createStringMappingType","isJSLiteralType","getPropertyNameFromIndex","accessNode","isUncalledFunctionReference","hasMatchingArgument","getPropertyTypeForIndexType","originalObjectType","fullIndexType","markPropertyAsReferenced","isSelfTypeAccess","isAssignmentToReadonlyEntity","isThisPropertyAccessInConstructor","indexNode","getIndexNodeForAccessExpression","errorIfWritingToReadonlyIndex","getTupleElementTypeOutOfStartCount","isTypeAssignableToKind","isConstEnumObjectType","typeHasStaticProperty","getSuggestionForNonexistentProperty","suggestion2","getSuggestionForNonexistentIndexSignature","keyedType","hasProp","suggestedMethod","typeString","seenPlaceholder","getGenericObjectFlags","writing","getSimplifiedIndexedAccessType","distributedOverIndex","distributeObjectOverIndexType","distributedOverObject","distributeIndexOverObjectType","getElementTypeOfSliceOfTupleType","getSimplifiedConditionalType","falseType2","getRestrictiveInstantiation","isIntersectionEmpty","templateMapper","instantiatedTemplateType","couldAccessOptionalProperty","indexTypeLessThan","isStringIndexSignatureOnlyType","noUncheckedIndexedAccess","persistentAccessFlags","createIndexedAccessType","apparentObjectType","wasMissingProp","getTypeFromIndexedAccessTypeNode","potentialAlias","isSimpleTupleType","isDeferredType","checkTuples","getConditionalType","forConstraint","extraTypes","tailCount","checkTypeDeferred","createInferenceContext","nonFixingMapper","inferTypes","inferredExtendsType","getPermissiveInstantiation","newRoot","canTailRecurse","trueMapper","newType","typeParamMapper","newRootMapper","newCheckType","getIdentifierChain","targetMeaning","innerModuleSymbol","resolveImportSymbolType","nameStack","currentNamespace","mergedResolvedSymbol","getInstantiationExpressionType","getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode","isNonGenericObjectType","isEmptyObjectTypeOrSpreadsIntoEmptyObject","isEmptyObjectType","tryMergeUnionOfObjectTypeAndEmptyObject","getAnonymousPartialType","isSetonlyAccessor","spread","getSpreadType","lastLeft","skippedPrivateMembers","rightProp","leftProp","leftTypeWithoutUndefined","rightTypeWithoutUndefined","getIndexInfoWithReadonly","createLiteralType","enumId","uniqueESSymbolType","createUniqueESSymbolType","getTypeFromThisTypeNode","getThisType","getTypeFromRestTypeNode","getConditionalFlowTypeOfType","covariant","getTypeFromTypeNodeWorker","getTypeFromLiteralTypeNode","getTypeFromArrayOrTupleTypeNode","getTypeFromOptionalTypeNode","getTypeFromUnionTypeNode","getTypeFromIntersectionTypeNode","emptyIndex","noSupertypeReduction","getTypeFromJSDocNullableTypeNode","getTypeFromNamedTupleTypeNode","getTypeFromJSDocVariadicType","paramTag","isCallbackTag","lastParamDeclaration","getTypeFromTypeOperatorNode","getTypeFromConditionalTypeNode","allOuterTypeParameters","getTypeFromInferTypeNode","getTypeFromTemplateTypeNode","instantiateList","instantiator","instantiateIndexInfo","makeCompositeTypeMapper","mergeTypeMappers","cloneTypeParameter","eraseTypeParameters","freshTypeParameters","couldContainTypeVariables","getObjectTypeInstantiation","allDeclarations","newAliasTypeArguments","instantiateMappedType","mappedTypeVariable","mapTypeWithAlias","instantiateConstituent","instantiateAnonymousType","instantiateMappedArrayType","instantiateMappedTypeTemplate","getModifiedReadonlyState","isReadonlyArrayType","instantiateMappedTupleType","tupleType","fixedMapper","newElementTypes","newElementFlags","newReadonly","resultObjectFlags","resultCouldContainTypeVariables","containsReference","maybeTypeParameterReference","firstIdentifierSymbol","tpDeclaration","tpScope","idDecl","origTypeParameter","freshTypeParameter","distributionType","findActiveMapper","pushActiveMapper","mapperCache","instantiateTypeWorker","newTypeArguments","instantiateReverseMappedType","innerMappedType","innerIndexType","inferTypeForHomomorphicMappedType","newBaseType","newConstraint","popActiveMapper","permissiveInstantiation","isContextSensitiveFunctionLikeDeclaration","hasContextSensitiveReturnExpression","getTypeWithoutSignatures","compareTypesAssignable","isFunctionObjectType","isTypeComparableTo","areTypesComparable","checkTypeAssignableTo","headMessage","containingMessageChain","errorOutputObject","checkTypeRelatedTo","checkTypeAssignableToAndOptionallyElaborate","checkTypeRelatedToAndOptionallyElaborate","relation","errorOutputContainer","elaborateError","isOrHasGenericConditional","elaborateDidYouMeanToCallOrConstruct","resultObj","elaborateObjectLiteral","elaborateElementwise","generateObjectLiteralElements","elaborateArrayLiteral","isTupleLikeType","generateLimitedTupleElements","pushContextualType","tupleizedType","checkArrayLiteral","popContextualType","elaborateJsxComponents","invalidTextDiagnostic","generateJsxAttributes","isHyphenatedJsxName","containingElement","childPropName","getJsxElementChildrenPropertyName","getJsxNamespaceAt","childrenPropName","childrenNameType","childrenTargetType","validChildren","moreThanOneRealChildren","arrayLikeTargetParts","nonArrayLikeTargetParts","anyIterable","isArrayOrTupleLikeType","realSource","checkJsxChildren","generateJsxChildren","getInvalidTextDiagnostic","memberOffset","getElaborationElementForJsxChild","getInvalidTextualChildDiagnostic","elaborateIterableOrArrayLikeTargetElementwise","tupleOrArrayLikeTargetParts","nonTupleOrArrayLikeTargetParts","iterationType","getIterationTypeOfIterable","reportedError","status","targetPropType","targetIndexedPropType","getBestMatchIndexedAccessTypeOrUndefined","sourcePropType","specificSource","checkExpressionForMutableLocationWithContextualType","isExactOptionalPropertyMismatch","targetIsOptional","sourceIsOptional","skipLogging","tagNameText","elaborateArrowFunction","sourceSig","targetSignatures","returnExpression","sourceReturn","targetReturn","elaborated","best","getBestMatchingType","reportedDiag","issuedElaboration","targetNode","getEffectiveCheckNode","checkTypeComparableTo","isTopSignature","compareSignaturesRelated","errorReporter","incompatibleErrorReporter","compareTypes","reportUnreliableMarkers","targetCount","instantiateSignatureInContextOf","sourceCount","sourceRestType","getNonArrayRestType","targetRestType","strictVariance","sourceThisType","targetThisType","sourceType","getRestOrAnyTypeAtPosition","targetType","isInstantiatedGenericParameter","targetSig","getTypeFacts","targetReturnType","sourceReturnType","sourceTypePredicate","compareTypePredicateRelatedTo","isImplementationCompatibleWithOverload","implementation","overload","erasedSource","erasedTarget","isSignatureAssignableTo","isEnumTypeRelatedTo","targetEnumType","sourceProperty","targetProperty","sourceValue","targetValue","sourceIsString","targetIsString","escapedSource","escapedTarget","knownStringValue","isSimpleTypeRelatedTo","isUnknownLikeUnionType","getRelationKey","isIgnoredJsxProperty","sourceProp","getNormalizedType","getNormalizedTupleType","getSingleBaseForNonAugmentingSubtype","getNormalizedUnionOrIntersectionType","shouldNormalizeIntersection","hasInstantiable","hasNullableOrEmpty","normalizedTypes","normalizedElements","relatedInfo","maybeKeys","maybeKeysSet","sourceStack","targetStack","lastSkippedInfo","incompatibleStack","maybeCount","sourceDepth","targetDepth","expandingFlags","overflow","overrideNextErrorInfo","skipParentCounter","relationCount","isRelatedTo","reportIncompatibleStack","sourceId","targetId","resetErrorInfo","saved","captureErrorCalculationState","reportIncompatibleError","reportRelationError","secondaryRootErrors","mappedMsg","originalValue","reportParentSkippedError","associateRelatedInfo","generalizedSource","generalizedSourceType","typeCouldHaveTopLevelSingletonTypes","needsOriginalSource","getExactOptionalUnassignableProperties","suggestedType","getSuggestedTypeForNonexistentStringLiteralType","tryElaborateArrayLikeErrors","isMutableArrayOrTuple","isRelatedToWorker","originalSource","originalTarget","recursionFlags","headMessage2","intersectionState","reportErrorResults","traceUnionsOrIntersectionsTooLarge","recursiveTypeRelatedTo","hasExcessProperties","isExcessPropertyCheckTarget","isComparingJsxAttributes","isTypeSubsetOf","checkTypes","reducedTarget","findMatchingDiscriminantType","filterPrimitivesIfContainsNonPrimitive","shouldCheckAsExcessProperty","isKnownProperty","errorTarget","suggestionSymbol","objectLiteralDeclaration","getTypeOfPropertyInTypes","isPerformingCommonPropertyChecks","isWeakType","hasCommonProperties","sourceString","targetString","calls","constructs","unionOrIntersectionRelatedTo","sourceHasBase","targetHasBase","maybeSuppress","currentError","tryElaborateErrorsForPrimitivesAndObjects","targetTypes","intrinsicAttributes","IntrinsicAttributes","intrinsicClassAttributes","IntrinsicClassAttributes","savedErrorState","canonical","syntheticParam","targetConstraintString","sourceUnionOrIntersection","targetUnionOrIntersection","sourceSize","targetSize","sourceOrigin","targetOrigin","someTypeRelatedToType","eachTypeRelatedToType","undefinedStrippedTarget","getUndefinedStrippedTargetIfNeeded","extractTypesOfKind","related2","typeRelatedToSomeType","getRegularTypeOfObjectLiteral","typeRelatedToEachType","eachTypeRelatedToSomeType","alternateForm","getMatchingUnionConstituentForType","bestMatchingType","broadestEquivalentId","maybeStart","saveExpandingFlags","originalHandler","isDeeplyNestedType","propagatingVarianceFlags","onlyUnreliable","sourceIdStack","targetIdStack","structuredTypeRelatedTo","saveErrorInfo","structuredTypeRelatedToWorker","originalErrorInfo","varianceCheckFailed","targetFlags","result3","isMarkerType","variances","getAliasVariances","minParams","varianceResult","relateVariances","isSingleElementGenericTupleType","targetKeys","getApparentMappedTypeKeys","countMessageChainBreadth","keysRemapped","sourceKeys","includeOptional","filteredByApplicability","templateType2","nonNullComponent","isDistributionDependent","skipTrue","skipFalse","templateLiteralTypesDefinitelyUnrelated","sourceStart","targetStart","sourceEnd","targetEnd","startLen","endLen","isDeferredMappedIndex","sourceMappedKeys","sourceExtends","ctx","defaultConstraint","distributiveConstraint","isPartialMappedType","mappedTypeRelatedTo","modifiersRelated","sourceIsPrimitive","getVariances","reportStructuralErrors","propertiesRelatedTo","signaturesRelatedTo","indexSignaturesRelatedTo","objectOnlyTarget","typeRelatedToDiscriminatedType","sourceProperties","sourcePropertiesFiltered","findDiscriminantProperties","numCombinations","countTypes","sourceDiscriminantTypes","excludedProperties","sourcePropertyType","discriminantCombinations","matchingTypes","combination","hasMatch","propertyRelatedTo","sourceTypeArguments","targetTypeArguments","intersectionState2","typeArgumentsRelatedTo","allowStructuralFallback","hasCovariantVoidArgument","getEffectiveConstraintOfIntersection","targetIsUnion","hasDisjointDomainType","resetMaybeStack","markAllAsSucceeded","mappedKeys","excludeProperties","getTypeOfSourceProperty","skipOptional","sourcePropFlags","targetPropFlags","isValidOverrideOf","forEachProperty2","isPropertyInClassDerivedFrom","baseClass","sp","sourceClass","getDeclaringClass","isPropertySymbolTypeRelated","effectiveTarget","optionalsOnly","propertiesIdenticalTo","targetProperties","sourceArity","targetArity","sourceRestFlag","targetHasRestElement","sourceMinLength","targetMinLength","targetStartCount","getStartElementCount","targetEndCount","canExcludeDiscriminants","sourcePosition","sourcePositionFromEnd","targetPosition","requireOptionalProperties","unmatchedProperty","getUnmatchedProperty","shouldReportUnmatchedPropertyError","typeCallSignatures","typeConstructSignatures","typeProperties","reportUnmatchedProperty","shouldSkipElaboration","privateIdentifierDescription","symbolTableKey","sourceName","numericNamesOnly","signaturesIdenticalTo","sourceSignatures","sourceIsJSConstructor","targetIsJSConstructor","sourceIsAbstract","targetIsAbstract","constructorVisibilitiesAreCompatible","sourceSignature","targetSignature","sourceAccessibility","targetAccessibility","incompatibleReporter","reportIncompatibleConstructSignatureReturn","reportIncompatibleCallSignatureReturn","sourceObjectFlags","targetObjectFlags","signatureRelatedTo","eraseGenerics","constructSignatureToString","shouldElaborateErrors","siga","sigb","erase","isRelatedToWorker2","source3","target3","reportErrors3","indexInfoRelatedTo","sourceInfo","targetInfo","indexSignaturesIdenticalTo","targetInfos","targetHasStringIndex","typeRelatedToIndexInfo","isObjectTypeWithInferableIndex","membersRelatedToIndexInfo","findMatchingTypeReferenceOrTypeAliasReference","unionTarget","overlapObjFlags","findBestTypeForObjectLiteral","findBestTypeForInvokable","signatureKind","hasSignatures2","findMostOverlappyType","matchingCount","discriminateTypeByDiscriminableItems","discriminators","getDiscriminatingType","matched","filtered","getVariancesWorker","oldVarianceComputation","saveResolutionStart","unmeasurable","unreliable","oldHandler","typeWithSuper","createMarkerType","typeWithSub","isUnconstrainedTypeParameter","isTypeReferenceWithGenericArguments","isNonDeferredTypeReference","ignoreConstraints","postFix","getGenericTypeReferenceRelationKey","constraintMarker","getTypeReferenceId","baseClassType","isClassDerivedFromDeclaringClasses","checkClass","maxDepth","getMappedTargetWithSymbol","lastTypeId","hasMatchingRecursionIdentity","isObjectOrArrayLiteralType","isPropertyIdenticalTo","sourcePropAccessibility","isMatchingSignature","sourceParameterCount","targetParameterCount","sourceMinArgumentCount","targetMinArgumentCount","sourceHasRestParameter","targetHasRestParameter","targetLen","compareTypePredicatesIdentical","getCombinedTypeFlags","getCommonSupertype","primaryTypes","superTypeOrUnion","literalTypesWithSameBaseType","commonBaseType","getSingleCommonSupertype","isMutableArrayLikeType","cachedEquivalentBaseType","bases","instantiatedBase","isEmptyLiteralType","lengthType","isNeitherUnitTypeNorNever","isUnitLikeType","getBaseTypeOfLiteralTypeUnion","getBaseTypeOfLiteralTypeForComparison","getWidenedUniqueESSymbolType","getWidenedLiteralLikeTypeForContextualType","isLiteralOfContextualType","getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded","contextualSignatureReturnType","getIterationTypeOfGeneratorFunctionReturnType","undefinedOrMissingType2","noReductions","isZeroBigInt","removeDefinitelyFalsyTypes","getDefinitelyFalsyPartOfType","missingOrUndefined","getAdjustedTypeWithFacts","removeType","propagateOptionalTypeMarker","wasOptional","getOptionalExpressionType","transformTypeOfMembers","regularNew","createWideningContext","siblings","getSiblingsOfContext","getPropertiesOfContext","getWidenedProperty","getWidenedTypeWithContext","getUndefinedProperty","getWidenedTypeOfObjectLiteral","unionContext","widenedTypes","reportWideningErrorsInType","errorReported","wideningKind","typeAsString","newName","shouldReportErrorsFromWideningWithContextualSignature","getAwaitedTypeNoAlias","applyToParameterTypes","getEffectiveRestType","targetNonRestCount","applyToReturnTypes","createInferenceContextWorker","createInferenceInfo","cloneInferenceContext","extraFlags","cloneInferenceInfo","makeFixingMapperForContext","inference","isFixed","inferFromIntraExpressionSites","intraExpressionInferenceSites","getContextualTypeForObjectLiteralMethod","clearCachedInferences","getInferredType","makeNonFixingMapperForContext","inferredType","addIntraExpressionInferenceSite","contraCandidates","impliedArity","getMapperFromContext","isNonGenericTopLevelType","isTypeParameterAtTopLevel","createReverseMappedType","isPartiallyInferableType","reversed","inferReverseMappedTypeWorker","getTypeFromInference","matchDiscriminantProperties","hasSkipDirectInferenceFlag","isFromInferenceBlockedSource","isValidNumberString","isFinite","parseBigIntLiteralType","mappingStack","memo","isValidTypeForTemplateLiteralPlaceholder","inferTypesFromTemplateLiteralType","inferFromLiteralPartsToTemplateLiteral","getStringLikeTypeForType","sourceTexts","lastSourceIndex","sourceStartText","sourceEndText","targetTexts","lastTargetIndex","targetStartText","targetEndText","remainingEndText","matches","seg","delim","getSourceText","addMatch","matchType","contravariant","propagationType","bivariant","inferencePriority","inferFromTypes","savePropagationType","inferFromTypeArguments","tempSources","tempTargets","inferFromMatchingTypes","isTypeOrBaseIdenticalTo","isTypeCloselyMatchedBy","inferWithPriority","getInferenceInfoForType","simplified2","inferFromContravariantTypes","inferFromContravariantTypesWithPriority","newPriority","savePriority","createEmptyObjectTypeFromStringLiteral","literalProp","invokeOnce","inferToConditionalType","inferToMultipleTypes","inferToTemplateLiteralType","inferenceContext","constraintTypes","allTypeFlags","matchingType","inferFromGenericMappedTypes","apparentSource","inferFromObjectTypes","saveInferencePriority","matchedSources","matchedTargets","inferFromContravariantTypesIfStrictFunctionTypes","typeVariableCount","nakedTypeVariable","inferenceCircularity","intersectionTypeVariable","getSingleTypeVariableFromIntersectionTypes","unmatched","inferToMappedType","inferToMultipleTypesWithPriority","sourceNameType","targetNameType","typesDefinitelyUnrelated","tupleTypesDefinitelyUnrelated","isTupleTypeStructureMatching","endLength","middleLength","endsInOptional","inferFromIndexTypes","inferFromProperties","inferFromSignatures","sourceLen","inferFromSignature","saveBivariant","priority2","getContravariantInference","getCommonSubtype","getCovariantInference","unionObjectAndArrayLiteralCandidates","objectLiterals","literalsType","primitiveConstraint","hasPrimitiveConstraint","widenLiteralTypes","isTypeParameterAtTopLevelInReturnType","baseCandidates","fallbackType","inferredCovariantType","inferredContravariantType","preferCovariantType","createBackreferenceMapper","forwardInferences","instantiatedConstraint","clearActiveMapperCaches","isInJavaScriptFile","getInferredTypes","getFlowCacheKey","flowContainer","getAccessedPropertyName","isParameterOrMutableLocalVariable","sourcePropertyName","targetPropertyName","tryGetElementAccessExpressionName","tryGetNameFromEntityNameExpression","tryGetNameFromType","initializerType","containsMatchingReference","optionalChainContainsReference","isDiscriminantProperty","getKeyPropertyName","keyPropertyName","mapByKeyProperty","mapTypesByKeyProperty","discriminant","duplicate","constituentMap","getConstituentTypeForKeyType","isOrContainsMatchingReference","getFlowNodeId","getAssignmentReducedType","assignedType","getAssignmentReducedTypeWorker","filteredType","typeMaybeAssignableTo","reducedType","mask2","getTypeFactsWorker","callerOnlyNeeds","isZero","getIntersectionTypeFacts","ignoreObjects","oredFacts","andedFacts","recombineUnknownType","removeNullableByIntersection","getGlobalNonNullableTypeInstantiation","targetFacts","otherFacts","otherIncludesFacts","otherType","emptyAndOtherUnion","getTypeWithDefault","defaultExpression","getTypeOfDestructuredProperty","includeUndefinedInIndexSignature","getTypeOfDestructuredArrayElement","getTupleElementType","getTypeOfDestructuredSpreadExpression","isDestructuringAssignmentTarget","getAssignedTypeOfPropertyAssignment","getAssignedType","getAssignedTypeOfBinaryExpression","getAssignedTypeOfArrayLiteralElement","getAssignedTypeOfSpreadExpression","getAssignedTypeOfShorthandPropertyAssignment","getInitialType","getInitialTypeOfVariableDeclaration","getInitialTypeOfBindingElement","getReferenceCandidate","getReferenceRoot","getTypeOfSwitchClause","getSwitchClauseTypes","switchTypes","getSwitchClauseTypeOfWitnesses","witnesses","isTypeSubsetOfUnion","newOrigin","originTypes","originFiltered","mappedTypes","changed","replacePrimitivesWithLiterals","typeWithPrimitives","typeWithLiterals","isIncomplete","getTypeFromFlowType","createFlowType","incomplete","getEvolvingArrayType","createEvolvingArrayType","addEvolvingArrayElementType","getContextFreeTypeOfExpression","getFinalArrayType","createFinalArrayType","finalizeEvolvingArrayType","getElementTypeOfEvolvingArrayType","isEvolvingArrayOperationTarget","isLengthPushOrUnshift","isElementAssignment","getExplicitTypeOfSymbol","isDeclarationWithExplicitTypeAnnotation","getTypeOfDottedName","getExplicitThisType","checkSuperExpression","getEffectsSignature","effectsSignature","funcType","getSymbolHasInstanceMethodOfObjectType","checkNonNullExpression","checkNonNullType","hasTypePredicateOrNeverReturnType","isReachableFlowNode","isReachableFlowNodeWorker","isFalseExpression","noCacheCheck","reachable","predicateArgument","saveAntecedents","isExhaustiveSwitchStatement","isPostSuperFlowNode","postSuper","isConstantReference","isSomeSymbolAssigned","isVarConstLike2","isKeySet","flowDepth","sharedFlowStart","evolvedType","getTypeAtFlowNode","getOrSetCacheKey","flowId","reportFlowControlError","sharedFlow","getTypeAtFlowAssignment","getTypeAtFlowCall","getTypeAtFlowCondition","getTypeAtSwitchClause","getTypeAtFlowBranchLabel","getTypeAtFlowLoopLabel","getTypeAtFlowArrayMutation","getInitialOrAssignedType","getNarrowableTypeForReference","isEmptyArrayAssignment","narrowTypeByAssertion","narrowType","narrowedType","narrowTypeByTypePredicate","evolvedType2","assumeTrue","nonEvolvingType","narrowTypeBySwitchOnDiscriminant","narrowTypeBySwitchOnTypeOf","defaultIndex","notEqualFacts","getNotEqualFactsFromTypeofSwitch","narrowTypeByTypeName","narrowTypeBySwitchOnTrue","hasDefaultClause","narrowTypeBySwitchOptionalChainContainment","getDiscriminantPropertyAccess","narrowTypeBySwitchOnDiscriminantProperty","narrowTypeByDiscriminant","antecedentTypes","bypassFlow","subtypeReduction","seenIncomplete","getUnionOrEvolvingArrayType","firstAntecedentType","saveFlowTypeCache","cached2","isEvolvingArrayTypeList","hasEvolvingArrayType","computedType","getCandidateDiscriminantPropertyAccess","narrowType2","removeNullable","narrowedPropType","discriminantType","narrowTypeByDiscriminantProperty","narrowTypeByEquality","narrowTypeByTruthiness","isTypePresencePossible","narrowTypeByInKeyword","recordSymbol","getGlobalRecordSymbol","narrowTypeByBooleanComparison","bool","narrowTypeByBinaryExpression","narrowTypeByTypeof","narrowTypeByOptionalChainContainment","leftAccess","rightAccess","isMatchingConstructorReference","narrowTypeByConstructor","narrowTypeByInstanceof","getNarrowedType","instanceType","getInstanceType","narrowTypeByPrivateIdentifierInInExpression","getSymbolForPrivateIdentifierExpression","equalsOperator","nullableFlags","doubleEquals","isCoercibleUnderDoubleEquals","typeOfExpr","narrowTypeByLiteralExpression","clauseCheck","clauseTypes","groundClauseTypes","caseType","extractUnitType","narrowTypeByTypeFacts","impliedType","identifierType","isFunctionType","prototypeProperty","prototypeType","isConstructedBy","constructorType","prototypePropertyType","checkDerived","getNarrowedTypeWorker","isRelated","directlyRelated","getTypePredicateArgument","invokedExpression","narrowTypeByOptionality","assumePresent","narrowTypeByCallExpression","callAccess","getControlFlowContainer","isPastLastAssignment","isFunctionOrSourceFile","hasParentWithAssignmentsMarked","markNodeAssignments","isSomeSymbolAssignedWorker","assigmentTarget","hasDefiniteAssignment","MAX_VALUE","referencingFunction","declaringFunction","extendAssignmentPosition","sign","getDeclarationNodeFlagsFromSymbol","isMutableLocalVariableDeclaration","removeOptionalityFromDeclaredType","removeUndefined","containsUndefined","isGenericTypeWithUnionConstraint","isGenericTypeWithoutNullableConstraint","substituteConstraints","isConstraintPosition","hasContextualTypeWithNoGenericTypes","isExportOrExportExpression","hint","propSymbol","markIdentifierAliasReferenced","markPropertyAliasReferenced","markExportAssignmentAliasReferenced","markJsxAliasReferenced","markAsyncFunctionAliasReferenced","markImportEqualsAliasReferenced","markExportSpecifierAliasReferenced","markDecoratorAliasReferenced","shouldMarkIdentifierAliasReferenced","topProp","checkExternalImportOrExportDeclaration","emitDecoratorMetadata","markAliasReferenced","lexicallyScopedSymbol","apparentType","isMethodAccessForCall","isConstEnumOrConstEnumOnlyModule","getJsxNamespaceContainerForImplicitImport","jsxFactoryRefErr","jsxFactoryNamespace","jsxFactoryLocation","shouldFactoryRefErr","jsxFactorySym","markAliasSymbolAsReferenced","markTypeNodeAsReferenced","markEntityNameOrEntityExpressionAsReference","markExportAsReferenced","exportedName","firstDecorator","checkExternalEmitHelpers","markDecoratorMedataDataTypeNodeAsReferenced","getParameterTypeNodeForDecoratorCheck","otherAccessor","containingSignature","forDecoratorMetadata","getEntityNameForDecoratorMetadata","checkIdentifierCalculateNodeCheckFlags","isInPropertyInitializerOrClassStaticBlock","localOrExportSymbol","resolveAliasWithDeprecationCheck","checkNestedBlockScopedBinding","isCaptured","isInsideFunctionOrInstancePropertyInitializer","threshold","enclosingIterationStatement","getEnclosingIterationStatement","capturesBlockScopeBindingInLoopBody","varDeclList","getPartOfForStatementContainingNode","isAssignedInBodyOfForStatement","isAssigned","checkIdentifier","checkThisExpression","immediateDeclaration","getNarrowedTypeOfSymbol","parentTypeConstraint","contextualSignature","getContextualSignature","getInferenceContext","isParameter2","declarationContainer","isOuterVariable","isSpreadDestructuringAssignmentTarget","isModuleExports","typeIsAutomatic","isAutomaticTypeInNonNull","isNeverInitialized","isSymbolAssignedDefinitely","assumeInitialized","isSameScopedBindingElement","greatGrandparent","captureLexicalThis","findFirstSuperCall","classDeclarationExtendsNull","checkThisBeforeSuper","containingClassDecl","isNodeInTypeQuery","capturedByArrowFunction","thisInComputedPropertyName","checkThisInStaticClassFieldInitializerInDecoratedClass","thisExpression","globalThisType2","outsideThis","isInJS","isInParameterInitializerBeforeContainingFunction","getThisTypeOfDeclaration","getTypeForThisExpressionFromJSDoc","getClassNameFromPrototypeMethod","isCallExpression2","immediateContainer","needToCaptureLexicalThis","inAsyncFunction","nodeCheckFlag","isLegalUsageOfSuperExpression","classLikeDeclaration","isInConstructorArgumentInitializer","constructorDecl","getContainingObjectLiteral","getThisTypeArgument","getThisTypeFromContextualType","getThisTypeOfObjectLiteralFromContextualType","containingLiteral","getApparentTypeOfContextualType","inJs","indexOfParameter","getSpreadArgumentType","getContextualTypeForVariableLikeDeclaration","getContextualTypeForBindingElement","getContextualTypeForElementExpression","getContextualTypeForStaticPropertyDeclaration","inBindingInitializer","getContextualIterationType","functionDecl","contextualReturnType","getContextualReturnType","returnType2","functionFlags","checkGeneratorInstantiationAssignabilityToReturnType","getAwaitedTypeOfPromise","getContextualTypeForArgument","callTarget","getEffectiveFirstArgumentForJsxSignature","getContextualTypeForBinaryOperand","getContextualTypeForAssignmentDeclaration","lhsSymbol","getSymbolForExpression","lhsType","tryGetPrivateIdentifierPropertyOfType","overallAnnotation","getContextualTypeForThisPropertyAssignment","decl2","annotated2","nameStr","annotated","thisAccess","isExcludedMappedPropertyName","propertyNameType","indexInfoCandidates","ignoreIndexInfos","constituentType","appendContextualPropertyTypeConstituent","getIndexedMappedTypeSubstitutedTypeOfContextualType","getTypeOfConcretePropertyOfContextualType","getTypeFromIndexInfosOfContextualType","isCircularMappedProperty","propertyAssignmentType","firstSpreadIndex","lastSpreadIndex","fixedEndLength","getIteratedTypeOrElementType","getContextualTypeForJsxExpression","exprParent","getContextualTypeForChildJsxExpression","attributesType","jsxChildrenPropertyName","realChildren","childIndex","childFieldType","attribute","isPossiblyDiscriminantValue","discriminateContextualTypeByObjectMembers","getMatchingUnionConstituentForObjectLiteral","propNode","instantiateContextualType","discriminateContextualTypeByJSXAttributes","hasInferenceCandidatesOrDefault","instantiateInstantiableTypes","returnMapper","findContextualNode","getContextualTypeForInitializerExpression","getContextualTypeForReturnExpression","iterationReturnType","contextualAwaitedType","createPromiseLikeType","getContextualTypeForYieldOperand","iterationTypes","getIterationTypesOfGeneratorFunctionReturnType","generatorType","createGeneratorType","getContextualTypeForAwaitOperand","getContextualTypeForDecorator","getDecoratorCallSignature","arrayLiteral","elementIndex","spreadIndices","getSpreadIndices","getContextualTypeForConditionalOperand","conditional","getContextualTypeForSubstitutionExpression","substitutionExpression","getContextualJsxElementAttributesType","getContextualImportAttributeType","pushCachedContextualType","isCache","includeCaches","getJsxReferenceKind","getJsxPropsTypeFromCallSignature","propsType","getTypeOfFirstParameterOfSignatureWithFallback","getJsxManagedAttributesFromLocatedAttributes","intrinsicAttribs","getJsxPropsTypeFromClassType","forcedLookupLocation","getJsxElementPropertiesName","jsxNamespace","getNameFromJsxElementAttributesContainer","ElementAttributesPropertyNameContainer","getJsxPropsTypeForSignatureFromMember","instance","apparentAttributesType","intrinsicClassAttribs","hostClassType","libraryManagedAttributeType","managedSym","getJsxLibraryManagedAttributes","LibraryManagedAttributes","ctorType","getStaticTypeOfReferencedJsxConstructor","getJSXFragmentType","isJsxIntrinsicTagName","createSignatureForJSXIntrinsic","getIntrinsicAttributesTypeFromJsxOpeningLikeElement","tagType","getIntrinsicAttributesTypeFromStringLiteralType","instantiateAliasOrInterfaceWithDefaults","getIntersectedSignatures","combineSignaturesOfIntersectionMembers","combineIntersectionParameters","combineIntersectionThisParam","minArgCount","getContextualCallSignature","applicableByArity","isAritySmaller","typeTagSignature","checkRegularExpressionLiteral","checkGrammarRegularExpressionLiteral","hasParseDiagnostics","error3","forceTuple","elementCount","inDestructuringPattern","inConstContext","isConstContext","inTupleContext","isSpreadIntoCallOrNew","hasOmittedExpression","downlevelIteration","spreadType","restElementType","createArrayLiteralType","literalType","isNumericName","isNumericComputedName","isSymbolWithNumericName","isSymbolWithSymbolName","isSymbolWithComputedName","checkObjectLiteral","checkGrammarObjectLiteralExpression","inDestructuring","checkGrammarComputedPropertyName","mod","currentKind","checkGrammarForInvalidExclamationToken","checkGrammarForInvalidQuestionMark","checkGrammarNumericLiteral","effectiveName","getEffectivePropertyNameForPropertyNameNode","existingKind","allPropertiesTable","propertiesTable","propertiesArray","contextualTypeHasPattern","isInJavascript","enumTag","isJSObjectLiteral","patternWithComputedProperties","computedNameType","impliedProp","createObjectLiteralType","mergedType","checkSpreadPropOverrides","checkNodeDeferred","createJsxAttributesTypeFromAttributesProperty","openingLikeElement","allAttributesTable","typeToIntersect","attributesTable","hasSpreadAnyType","explicitlySpecifyChildrenAttribute","attributesSymbol","attributeParent","attributeDecl","attributeSymbol","createJsxAttributesTypeHelper","childrenTypes","childrenContextualType","childrenPropSymbol","childPropMap","createJsxAttributesType","getIntrinsicTagSymbol","intrinsicElementsType","intrinsicProp","jsxFlags","getApplicableIndexSymbol","jsxImplicitImportContainer","runtimeImportSpecifier","getJSXRuntimeImportSpecifier","jsxImportIndex","resolvedNamespace","JSX","nameOfAttribPropContainer","jsxElementAttribPropInterfaceSym","jsxElementAttribPropInterfaceType","propertiesOfJsxElementAttribPropInterface","ElementChildrenAttributeNameContainer","getUninstantiatedJsxSignaturesOfType","caller","intrinsicType","apparentElemType","indexSignatureType","resolvedJsxElementAttributesType","getJsxElementClassTypeAt","ElementClass","getJsxElementTypeAt","Element","getJsxStatelessElementTypeAt","jsxElementType","getJsxElementTypeTypeAt","getJsxElementTypeSymbol","ElementType","declaredManagedType","checkJsxOpeningLikeElementOrOpeningFragment","isNodeOpeningLikeElement","checkGrammarJsxElement","checkGrammarJsxName","checkGrammarTypeArguments","checkJsxPreconditions","checkDeprecatedSignature","jsxOpeningLikeNode","elementTypeConstraint","componentName","checkJsxReturnAssignableToAppropriateBound","refKind","elemInstanceType","sfcReturnConstraint","generateInitialErrorChain","classConstraint","checkJsxExpression","checkGrammarJsxExpression","checkPropertyAccessibility","isSuper","checkPropertyAccessibilityAtLocation","symbolHasNonMethodDeclaration","declaringClassDeclaration","isNodeUsedDuringClassInitialization","isNodeWithinClass","enclosingClass","forEachEnclosingClass","getEnclosingClassFromThisParameter","getThisParameterFromNodeContext","reportObjectPossiblyNullOrUndefinedError","reportCannotInvokePossiblyNullOrUndefinedError","checkNonNullTypeWithReporter","checkNonNullNonVoidType","nonNullType","writeOnly","checkPropertyAccessChain","nonOptionalType","checkPropertyAccessExpressionOrQualifiedName","checkQualifiedName","checkPrivateIdentifierExpression","privId","checkGrammarPrivateIdentifierExpression","isInOperation","isAnyLike","checkPrivateIdentifierPropertyAccess","propertyOnType","diagName","typeValueDecl","typeClass","lexicalValueDecl","lexicalClass","targetPropSymbol","checkPropertyNotUsedBeforeDeclaration","isOptionalPropertyDeclaration","isPropertyDeclaredInAncestorClass","getSuperClass","superProperty","reportNonexistentProperty","noPropertyAccessFromIndexSignature","getFlowTypeOfAccessExpression","excludeClasses","suggestionHasNoExtendsOrDecorators","assumeUninitialized","isPropertyWithoutInitializer","ignoreArrowFunctions","nonExistentPropCheckCache","promisedType","missingProperty","libSuggestion","getSuggestedLibForNonExistentProperty","containingTypeName","libTarget","featuresOfType","suggestedName","containerSeemsToBeEmptyDomElement","everyContainedType","resultDiagnostic","strName","outerName","targetModule","getCandidateName","tryResolveAlias","nodeForCheckWriteOnly","isSelfTypeAccess2","hasPrivateModifier","containingMethod","declClass","getForInVariableSymbol","variable","hasNumericPropertyNames","checkIndexedAccess","checkElementAccessChain","checkElementAccessExpression","indexExpression","effectiveIndexType","isForInVariableForNumericPropertyNames","assignmentTargetKind","checkIndexedAccessIndexType","callLikeExpressionMayHaveTypeArguments","resolveUntypedCall","checkSourceElement","resolveErrorCall","isSpreadArgument","getSpreadArgumentIndex","acceptsVoid","acceptsVoidUndefinedUnknownOrAny","hasCorrectArity","signatureHelpTrailingComma","argCount","callIsIncomplete","effectiveParameterCount","effectiveMinimumArguments","lastSpan","templateLiteral","getDecoratorArgumentCount","spreadArgIndex","hasCorrectTypeArgumentArity","getSingleSignature","allowMembers","getThisArgumentType","thisArgumentNode","thisArgumentType","inferTypeArguments","inferJsxTypeArguments","checkAttrType","checkExpressionWithContextualType","skipBindingPatterns","inferenceTargetType","outerContext","inferenceSourceType","returnContext","returnSourceType","createOuterReturnMapper","outerReturnMapper","hasInferenceCandidates","cloneInferredPartOfContext","info2","getThisArgumentOfCall","argType","getMutableArrayOrTupleType","hasPrimitiveContextualType","checkTypeArguments","typeArgumentTypes","typeArgumentHeadMessage","getSignatureApplicabilityError","checkApplicableSignatureForJsxCallLikeElement","checkAttributesType","checkTagNameDoesNotExpectTooManyArguments","tagCallSignatures","factorySymbol","hasFirstParamSignatures","maxParamCount","signaturesOfParam","paramSig","absoluteMinArgCount","Infinity","tagSig","tagRequiredArgCount","tagNameDeclaration","checkArgType","effectiveCheckArgumentNode","maybeAddMissingAwaitInfo","restArgCount","awaitedTypeOfSource","args2","getEffectiveDecoratorArguments","spreadIndex","effectiveArgs","i2","syntheticArg","getLegacyDecoratorArgumentCount","getDiagnosticSpanForCallNode","getDiagnosticForCallNode","getArgumentArityError","closestSignature","POSITIVE_INFINITY","NEGATIVE_INFINITY","maxBelow","minAbove","minParameter","maxParameter","hasRestParameter2","parameterRange","isVoidPromiseError","isPromiseResolveArityError","globalPromiseSymbol","resolveCall","isDecorator2","isJsxOpeningOrSelfClosingElement","isJsxOpenFragment","isInstanceof","candidatesForArgumentError","candidateForArgumentArityError","candidateForTypeArgumentError","argCheckMode","reorderCandidates","lastParent","lastSymbol","spliceIndex","cutoffIndex","specializedIndex","signatureHasLiteralTypes","isSingleNonGenericCandidate","chooseOverload","getCandidateForOverloadFailure","hasCandidatesOutArray","pickLongestCandidateSignature","bestIndex","getLongestCandidateIndex","argsCount","maxParamsIndex","maxParams","getTypeArgumentsFromNodes","inferSignatureInstantiationForOverloadFailure","createUnionOfSignaturesForOverloadFailure","thisParameters","createCombinedSymbolFromTypes","maxNonRestParam","getNumNonRestParameters","restParameterSymbols","createCombinedSymbolForOverloadFailure","diags","addImplementationSuccessElaboration","allDiagnostics","minIndex","diags2","getErrorNodeForCallNode","callLike","signaturesWithCorrectTypeArgumentArity","getTypeArgumentArityError","belowArgCount","aboveArgCount","oldCandidatesForArgumentError","oldCandidateForArgumentArityError","oldCandidateForTypeArgumentError","failedSignatureDeclarations","implDecl","isSingleNonGenericCandidate2","candidates2","signatureHelpTrailingComma2","candidateIndex","checkCandidate","numParams","isGenericFunctionReturningFunction","isUntypedFunctionCall","apparentFuncType","numCallSignatures","numConstructSignatures","resolveNewExpression","isConstructorAccessible","declaringClass","typeHasProtectedAccessibleBase","someSignature","valueDecl","invocationError","firstBase","intersectionMember","invocationErrorDetails","isCall","awaitedType","constituent","invocationErrorRecovery","sigs","resolveDecorator","isPotentiallyUncalledDecorator","nodeStr","getDiagnosticHeadMessageForDecoratorResolution","errorDetails","returnNode","sourceFileLinks","jsxFragmentType","jsxFragmentFactoryName","shouldModuleRefErr","jsxFactorySymbol","Fragment","resolvedAlias","reactExports","resolveJsxOpeningLikeElement","exprTypes","fakeSignature","resolveSignature","resolveCallExpression","superType","skippedGenericFunction","resolveTaggedTemplateExpression","resolveInstanceofExpression","hasInstanceMethodType","inferredClassSymbol","inferred","allowDeclaration","parentNodeOperator","suggestionNode","getDeprecatedSuggestionNode","addDeprecatedSuggestionWithSignature","signatureString","isSymbolOrSymbolForCall","globalESSymbol","checkImportCallExpression","checkGrammarImportCallExpression","nodeArguments","checkGrammarForDisallowedTrailingComma","spreadElement","createPromiseReturnType","specifierType","optionsType","importCallOptionsType","esModuleSymbol","anonymousSymbol","memberTable","newSymbol","synthType","syntheticType","defaultContainingObject","resolvedRequire","targetDeclarationKind","checkTaggedTemplateExpression","checkGrammarTaggedTemplateChain","isValidConstAssertionArgument","op","checkAssertionWorker","getAssertionTypeAndExpression","assertionExpressionType","checkNonNullAssertion","checkNonNullChain","checkGrammarExpressionWithTypeArguments","instantiationExpressionTypes","nonApplicableType","hasSomeApplicableSignature","getInstantiatedType","hasApplicableSignature","getInstantiatedTypePart","getInstantiatedSignatures","checkSatisfiesExpressionWorker","checkMetaProperty","checkGrammarMetaProperty","isCallee","grammarErrorAtPos","checkNewTargetMetaProperty","checkImportMetaProperty","checkMetaPropertyKeyword","createNewTargetExpressionType","targetPropertySymbol","getTupleElementLabelFromBindingElement","overrideRestType","isValidDeclarationForTupleLabel","getNameableDeclarationAtPosition","parameterCount","strongArityForUntypedJS","voidIsNonOptional","firstOptionalIndex","requiredCount","inferFromAnnotatedParametersAndReturn","assignParameterType","assignBindingElementTypes","createClassDecoratorContextType","getGlobalClassDecoratorContextType","createClassMethodDecoratorContextType","getGlobalClassMethodDecoratorContextType","createClassGetterDecoratorContextType","getGlobalClassGetterDecoratorContextType","createClassSetterDecoratorContextType","getGlobalClassSetterDecoratorContextType","createClassAccessorDecoratorContextType","getGlobalClassAccessorDecoratorContextType","createClassFieldDecoratorContextType","getGlobalClassFieldDecoratorContextType","createClassMemberDecoratorContextTypeForNode","contextType","overrideType","getClassMemberDecoratorContextOverrideType","createClassAccessorDecoratorTargetType","getGlobalClassAccessorDecoratorTargetType","createClassAccessorDecoratorResultType","getGlobalClassAccessorDecoratorResultType","createESDecoratorCallSignature","nonOptionalReturnType","getESDecoratorCallSignature","decoratorSignature","createGetterFunctionType","createSetterFunctionType","createClassFieldDecoratorInitializerMutatorType","createFunctionType","getLegacyDecoratorCallSignature","targetParam","getParentTypeOfClassElement","getClassElementPropertyKeyType","keyParam","indexParam","descriptorParam","globalPromiseType","unwrapAwaitedType","globalPromiseLikeType","promiseType","fallbackReturnType","checkAwaitedType","returnTypes","checkAndAggregateReturnExpressionTypes","yieldTypes","nextTypes","checkAndAggregateYieldOperandTypes","yieldExpression","yieldExpressionType","getYieldedTypeOfYieldExpression","getIterationTypesOfIterable","unwrapReturnType","getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded","globalGeneratorType","globalIterableIteratorType","sentType","yieldedType","witness","isExhaustive","exhaustive","computeExhaustiveSwitchStatement","operandConstraint","eachTypeContainedIn","aggregatedTypes","hasReturnWithNoExpression","hasReturnOfTypeNever","mayReturnNever","checkAllCodePathsInNonVoidFunctionReturnOrThrow","checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics","noImplicitReturns","inferredReturnType","isUnwrappedReturnTypeUndefinedVoidOrAny","checkFunctionExpressionOrObjectLiteralMethod","checkCollisionsForDeclarationName","contextFreeType","returnOnlySignature","returnOnlyType","checkGrammarFunctionLikeDeclaration","checkGrammarForGenerator","contextuallyCheckFunctionExpressionOrObjectLiteralMethod","instantiatedContextualSignature","assignContextualParameterTypes","assignNonContextualParameterTypes","checkSignatureDeclaration","checkArithmeticOperandType","isAwaitValid","isReadonlyAssignmentDeclaration","writableProp","writableType","rawOriginalType","isAssignmentDeclaration2","isLocalPropertyDeclaration","isLocalParameterProperty","isLocalThisPropertyAssignment","isLocalThisPropertyAssignmentConstructorFunction","checkReferenceExpression","invalidReferenceMessage","invalidOptionalChainMessage","checkDeleteExpression","checkDeleteExpressionMustBeOptional","checkAwaitGrammar","hasError","getUnaryResultType","operandType","maybeTypeOfKindConsideringBaseConstraint","subType","hasInstancePropertyName","getPropertyNameForKnownSymbolName","hasInstanceProperty","hasInstancePropertyType","checkInExpression","hasEmptyObjectIntersection","checkObjectLiteralDestructuringPropertyAssignment","objectLiteralType","propertyIndex","allProperties","rightIsThis","nonRestNames","otherProperty","checkArrayLiteralDestructuringElementAssignment","elementType2","restExpression","exprOrAssignment","checkBinaryLikeExpression","checkTruthinessExpression","checkObjectLiteralAssignment","checkArrayLiteralAssignment","possiblyOutOfBoundsType","inBoundsType","checkReferenceAssignment","optionalError","isSideEffectFree","isTypeEqualityComparableTo","suggestedOperator","getSuggestedBooleanOperator","operator2","leftOk","rightOk","resultType2","bothAreBigIntLike","reportOperatorError","checkAssignmentOperator","rhsEval","checkForDisallowedESSymbolOperand","closeEnoughKind","left2","right2","reportOperatorErrorUnless","leftAssignableToNumber","rightAssignableToNumber","eqType","checkNaNEquality","errorNode2","isLeftNaN","isGlobalNaN","isRightNaN","operatorString","checkInstanceOfExpression","declKind","checkAssignmentDeclaration","rightType2","isIndirectCall","sf","offendingSymbolOperand","checkAssignmentOperatorWorker","assigneeType","typesAreCompatible","wouldWorkWithAwait","errNode","awaitedLeftType","awaitedRightType","effectiveLeft","effectiveRight","getBaseTypesIfUnrelated","leftBase","rightBase","tryGiveBetterPrimaryError","globalNaNSymbol","getGlobalNaNSymbol","isTemplateLiteralContext","checkTemplateExpression","evaluated","isTemplateLiteralContextualType","getContextNode2","pushInferenceContext","popInferenceContext","saveFlowLoopStart","isTypeAssertion","getQuickTypeOfExpression","padObjectLiteralType","missingElements","getPropertyNameFromBindingElement","padTupleType","patternElements","candidateType","checkGrammarMethod","instantiateTypeWithSingleGenericCallSignature","callSignature","constructSignature","uniqueTypeParameters","getUniqueTypeParameters","oldTypeParameters","newTypeParameters","hasTypeParameterByName","newTypeParameter","getUniqueTypeParameterName","hasOverlappingInferences","mergeInferences","augmentedName","getReturnTypeOfSingleNonGenericCallSignature","quickType","cachedType","startInvocationCount","getReturnTypeOfSingleNonGenericSignatureOfCallChain","Check","saveCurrentNode","uninstantiatedType","checkExpressionWorker","checkGrammarBigIntLiteral","checkCallExpression","jsSymbol","jsAssignmentType","checkParenthesizedExpression","checkClassExpression","checkClassLikeDeclaration","checkClassExpressionExternalHelpers","getFirstTransformableStaticClassElement","checkTypeOfExpression","checkAssertion","erasableSyntaxOnly","checkSatisfiesExpression","checkVoidExpression","checkAwaitExpression","checkPrefixUnaryExpression","checkPostfixUnaryExpression","checkConditionalExpression","checkSpreadExpression","checkYieldExpression","checkYieldExpressionGrammar","grammarErrorOnFirstToken","signatureYieldType","signatureNextType","checkSyntheticExpression","checkJsxElement","_checkMode","checkJsxSelfClosingElement","checkJsxFragment","nodeSourceFile","checkJsxAttributes","checkConstEnumAccess","ok","isInRightSideOfImportOrExportAssignment","constEnumDeclaration","getRedirectFromOutput","checkTypeParameter","checkGrammarModifiers","hasNonCircularTypeParameterDefault","checkTypeNameIsReserved","checkParameter","checkVariableLikeDeclaration","checkIfTypePredicateVariableIsDeclaredInBindingPattern","predicateVariableNode","predicateVariableName","checkGrammarIndexSignature","checkGrammarIndexSignatureParameters","checkTypeParameters","checkUnmatchedJSDocParameters","jsdocParameters","excludedParameters","containsArguments","lastJSDocParamIndex","lastJSDocParam","checkSignatureDeclarationDiagnostics","checkCollisionWithArgumentsInGeneratedCode","returnTypeErrorLocation","functionFlags2","checkAsyncFunctionReturnType","reportErrorForInvalidReturnType","promiseConstructorName","promiseConstructorSymbol","promiseConstructorType","globalPromiseConstructorLikeType","getGlobalPromiseConstructorLikeType","collidingSymbol","returnTypeNode2","returnTypeErrorLocation2","registerForUnusedIdentifiersCheck","generatorYieldType","checkObjectTypeForDuplicateDeclarations","checkTypeForDuplicateIndexSignatures","indexSignatureMap","checkPropertyDeclaration","checkGrammarProperty","checkGrammarForInvalidDynamicName","checkAmbientInitializer","setNodeLinksForPrivateIdentifierScope","lexicalScope","checkConstructorDeclaration","checkGrammarConstructorTypeParameters","jsdocTypeParameters","checkGrammarConstructorTypeAnnotation","isInstancePropertyWithInitializerOrPrivateIdentifierProperty","checkFunctionOrConstructorSymbol","checkConstructorDeclarationDiagnostics","classExtendsNull","superCall","superCallIsRootLevelInConstructor","superCallParent","superCallStatement","nodeImmediatelyReferencesSuperOrThis","checkAccessorDeclaration","checkAccessorDeclarationDiagnostics","checkGrammarAccessor","doesAccessorHaveCorrectParameterCount","checkDecorators","getNodeCheckFlags","getterFlags","setterFlags","checkTypeArgumentConstraints","getTypeParametersForTypeAndSymbol","checkTypeReferenceNode","checkTypeReferenceOrImport","objectIndexType","hasNumberIndexInfo","checkMappedType","checkGrammarMappedType","checkTypeOperator","checkGrammarTypeOperatorNode","getEffectiveDeclarationFlags","flagsToCheck","checkFunctionOrConstructorSymbolWorker","getCanonicalOverload","overloads","checkFlagAgreementBetweenOverloads","flagsToCheck2","someOverloadFlags","allOverloadFlags","canonicalFlags","overloadsInFile","canonicalFlagsForFile","deviation","deviationInFile","checkQuestionTokenAgreementBetweenOverloads","someHaveQuestionToken2","allHaveQuestionToken2","canonicalHasQuestionToken","bodyDeclaration","lastSeenNonAmbientDeclaration","previousDeclaration","someNodeFlags","allNodeFlags","someHaveQuestionToken","allHaveQuestionToken","hasOverloads","reportImplementationExpectedError","subsequentNode","subsequentName","duplicateFunctionDeclaration","multipleConstructorImplementation","hasNonAmbientClass","functionDeclarations","inAmbientContext","inAmbientContextOrInterface","currentNodeFlags","bodyIsPresent","relatedDiagnostics","bodySignature","checkExportsOnMergedDeclarations","checkExportsOnMergedDeclarationsWorker","exportedDeclarationSpaces","nonExportedDeclarationSpaces","defaultExportedDeclarationSpaces","declarationSpaces","getDeclarationSpaces","effectiveDeclarationFlags","commonDeclarationSpacesForExportsAndLocals","commonDeclarationSpacesForDefaultAndNonDefault","thisTypeForErrorOut","typeAsPromise","promisedTypeOfPromise","thenFunction","thenSignatures","thisTypeForError","thenSignature","onfulfilledParameterType","onfulfilledParameterSignatures","withAlias","isThenableType","isAwaitedTypeInstantiation","awaitedSymbol","isAwaitedTypeNeeded","createAwaitedTypeIfNeeded","tryCreateAwaitedType","typeAsAwaitable","awaitedTypeOfType","checkDecorator","checkGrammarDecorator","canHaveCallExpression","expectedReturnType","getEntityNameForDecoratorMetadataFromTypeList","commonEntityName","individualEntityName","getIdentifierFromEntityNameExpression","checkFunctionOrMethodDeclaration","checkFunctionOrMethodDeclarationDiagnostics","registerForUnusedIdentifiersCheckDiagnostics","potentiallyUnusedIdentifiers","addDiagnostic","checkUnusedClassMembers","checkUnusedTypeParameters","checkUnusedLocalsAndParameters","checkUnusedInferTypeParameter","errorUnusedLocal","isIdentifierThatStartsWithUnderscore","isTypeParameterUnused","seenParentsWithEveryUnused","messageAndArg","addToGroup","getKey","keyString","tryGetRootParameterDeclaration","isValidUnusedLocalDeclaration","isImportedDeclaration","nodeWithLocals","unusedImports","unusedDestructures","unusedVariables","importClauseFromImported","unuseds","unused","bindingPattern","bindingElements","bindingNameText","checkBlock","checkGrammarStatementInAmbientContext","saveFlowAnalysisDisabled","needCollisionCheckForIdentifier","checkIfThisIsCapturedInEnclosingScope","checkIfNewTargetIsCapturedInEnclosingScope","checkWeakMapSetCollision","checkReflectCollision","hasCollision","checkCollisionWithRequireExportsInGeneratedCode","getEmitModuleFormatOfFile","checkCollisionWithGlobalPromiseInGeneratedCode","recordPotentialCollisionWithWeakMapSetInGeneratedCode","recordPotentialCollisionWithReflectInGeneratedCode","checkClassNameCollisionWithObject","needCheckInitializer","needCheckWidenedType","widenedType","checkAliasSymbol","globalAsyncDisposableType","getGlobalAsyncDisposableType","globalDisposableType","optionalDisposableType","areDeclarationFlagsIdentical","declarationType","checkVarDeclaredNamesNotShadowed","localDeclarationSymbol","nextDeclaration","nextDeclarationName","checkVariableDeclaration","checkGrammarVariableDeclaration","checkESModuleMarker","checkGrammarNameInLetOrConstDeclarations","checkBindingElement","checkGrammarBindingElement","checkVariableDeclarationList","checkVariableStatement","checkGrammarVariableDeclarationList","checkGrammarForDisallowedBlockScopedVariableStatement","allowBlockDeclarations","condExpr","condType","bothHelper","condExpr2","body2","isPropertyExpressionCast","isPromise","testedNode","testedSymbol","isUsed","isSymbolUsedInBinaryExpressionChain","isSymbolUsedInConditionBody","childNode","childSymbol","testedExpression","childExpression","semantics","getSyntacticTruthySemantics","checkForInStatement","checkGrammarForInOrForOfStatement","varExpr","getIndexTypeOrString","use","inputType","checkAssignability","allowAsyncIterables","reportTypeNotIterableError","uplevelIteration","possibleOutOfBounds","hasStringConstituent","arrayTypes","filteredTypes","allowsStrings","defaultDiagnostic","getIterationDiagnosticDetails","downlevelIteration2","isES2015OrLaterIterable","arrayElementType","getIterationTypesKeyFromIterationTypeKind","combineIterationTypes","getCachedIterationTypes","setCachedIterationTypes","iterationTypes2","getIterationTypesOfIterableWorker","rootDiag","allIterationTypes","getAsyncFromSyncIterationTypes","getIterationTypesOfIterableCached","getIterationTypesOfIterableFast","getIterationTypesOfIterableSlow","uniqueType","methodType","allSignatures","validSignatures","getIterationTypesOfIteratorWorker","getIterationTypesOfIteratorCached","getIterationTypesOfIteratorFast","getIterationTypesOfIteratorSlow","getIterationTypesOfMethod","isIteratorResult","doneType","isYieldIteratorResult","isReturnIteratorResult","getIterationTypesOfIteratorResult","getGlobalIteratorYieldResultType","getGlobalIteratorReturnResultType","yieldIteratorResult","returnIteratorResult","methodSignatures","globalIteratorType","isGeneratorMethod","isIteratorMethod","globalType","methodParameterTypes","methodReturnTypes","methodParameterType","methodReturnType","getIterationTypesOfIterator","checkBreakOrContinueStatement","checkGrammarBreakOrContinueStatement","returnIterationType","checkReturnExpression","unwrappedReturnType","inConditionalExpression","unwrappedExpr","inReturnStatement","unwrappedExprType","effectiveExpr","checkThrowStatement","grammarErrorAfterFirstToken","checkIndexConstraints","isStaticIndex","checkIndexConstraintForProperty","typeDeclaration","checkIndexConstraintForIndexSignature","interfaceDeclaration","localPropDeclaration","localIndexDeclaration","checkInfo","localCheckDeclaration","typeParameterDeclarations","seenDefault","createCheckTypeParameterDiagnostic","checkTypeParametersNotReferenced","checkTypeParameterListsIdentical","typeParametersChecked","getClassOrInterfaceDeclarationsOfSymbol","areTypeParametersIdentical","targetParameters","getTypeParameterDeclarations","maxTypeArgumentCount","sourceParameters","sourceConstraint","sourceDefault","willTransformStaticElementsOfDecoratedClass","willTransformPrivateElementsOrClassStaticBlocks","willTransformInitializers","checkGrammarClassLikeDeclaration","checkGrammarClassDeclarationHeritageClauses","seenExtendsClause","seenImplementsClause","checkGrammarHeritageClause","checkGrammarTypeParameterList","checkClassForDuplicateDeclarations","instanceNames","staticNames","privateIdentifiers","addName","isStaticMember","privateStaticFlags","prevIsMethod","checkClassForStaticPropertyNameConflicts","memberNameNode","checkBaseTypeAccessibility","issueMemberSpecificError","checkKindsOfPropertyMemberOverrides","baseProperties","notImplementedInfo","basePropertyCheck","baseProperty","baseDeclarationFlags","derivedClassDecl","otherBaseType","baseSymbol2","derivedElsewhere","baseTypeName","basePropertyName","missedProperties","derivedDeclarationFlags","basePropertyFlags","derivedPropertyFlags","isPropertyAbstractOrInterface","overriddenInstanceProperty","errorMessage2","uninitialized","isPropertyInitializedInConstructor","memberInfo","remainingMissedProperties","checkMembersForOverrideModifier","checkExistingMemberForOverrideModifier","implementedTypeNodes","typeRefNode","createImplementsDiagnostics","genericDiag","checkPropertyInitialization","memberIsParameterProperty","declaredProp","memberHasAbstractModifier","memberIsStatic","nodeInAmbientContext","noImplicitOverride","baseProp","baseClassName","baseHasAbstract","broadDiag","issuedMemberError","rootChain","checkInterfaceDeclaration","checkGrammarInterfaceDeclaration","firstInterfaceDecl","checkInheritedPropertiesAreIdentical","typeName1","typeName2","heritageElement","computeEnumMemberValues","autoValue","computeEnumMemberValue","enumMemberValue","computeConstantEnumMemberValue","isConstEnum","isNaN","prevValue","checkEnumDeclaration","checkEnumDeclarationWorker","enumSymbol","enumIsConst","seenEnumMissingInitialInitializer","enumDeclaration","firstEnumMember","checkModuleDeclaration","checkModuleDeclarationDiagnostics","isGlobalAugmentation","isAmbientExternalModule","contextErrorMessage","checkGrammarModuleElementContext","firstNonAmbientClassOrFunc","getFirstNonAmbientClassOrFunctionDeclaration","mergedClass","inSameLexicalScope","node1","container1","exportModifier","checkModuleAugmentationElement","el","inAmbientExternalModule","checkModuleExportName","allowStringLiteral","alreadyExportedSymbol","exportingDeclaration","importDeclaration","importedIdentifier","typeOnlyAlias","checkImportBinding","checkImportAttributes","importAttributesType","validForTypeAttributes","isImportAttributes2","checkImportDeclaration","checkGrammarImportClause","checkGrammarNamedImportsOrExports","hasTypeJsonImportAttribute","checkExportDeclaration","checkGrammarExportDeclaration","checkExportSpecifier","inAmbientNamespaceDeclaration","isInAppropriateContext","hasModuleSpecifier","checkExternalModuleExports","exportsChecked","exportEqualsSymbol","hasExportedMembers","exportedDeclarationsCount","checkSourceElementWorker","checkJSDocCommentWorker","checkPropertySignature","checkMethodDeclaration","checkClassStaticBlockDeclaration","checkTypePredicate","getTypePredicateParent","leadingError","hasReportedError","checkTypeQuery","checkTypeLiteral","checkTypeLiteralDiagnostics","checkArrayType","checkTupleType","seenOptionalElement","seenRestElement","checkUnionOrIntersectionType","checkThisType","checkConditionalType","checkInferType","checkTemplateLiteralType","checkImportType","checkNamedTupleMember","checkJSDocAugmentsTag","classLike","augmentsTags","extend2","checkJSDocImplementsTag","checkJSDocTypeAliasTag","checkJSDocTemplateTag","checkJSDocTypeTag","checkJSDocLinkLikeTag","resolveJSDocMemberName","checkJSDocParameterTag","checkJSDocPropertyTag","checkJSDocFunctionType","checkJSDocFunctionTypeImplicitAny","checkJSDocTypeIsInJsFile","checkJSDocVariadicType","checkJSDocAccessibilityModifiers","checkJSDocSatisfiesTag","checkJSDocThisTag","checkJSDocImportTag","checkIndexedAccessType","checkFunctionDeclaration","checkFunctionDeclarationDiagnostics","checkExpressionStatement","checkIfStatement","checkDoStatement","checkWhileStatement","checkForStatement","checkForOfStatement","checkReturnStatement","exprType2","checkWithStatement","checkSwitchStatement","firstDefaultClause","hasDuplicateDefaultClause","createLazyCaseClauseDiagnostics","clause2","checkLabeledStatement","checkTryStatement","blockLocals","caughtName","blockLocal","checkClassDeclaration","checkTypeAliasDeclaration","checkEnumMember","checkImportEqualsDeclaration","checkExportAssignment","typeAnnotationNode","isIllegalExportDefaultInCJS","nonLocalMeanings","checkMissingDeclaration","deferredNodes","checkDeferredNodes","checkDeferredNode","checkFunctionExpressionOrObjectLiteralMethodDeferred","returnOrPromisedType","checkClassExpressionDeferred","checkTypeParameterDeferred","saveVarianceTypeParameter","checkJsxSelfClosingElementDeferred","checkJsxElementDeferred","checkAssertionDeferred","checkSourceFile","nodesToCheck","beforeMark","afterMark","checkSourceFileNodesWorker","checkGrammarSourceFile","checkSourceFileWorker","noUnusedLocals","noUnusedParameters","checkPotentialUncheckedRenamedBindingElementsInTypes","wrappingDeclaration","getDiagnosticsWorker","previousGlobalDiagnostics","previousGlobalDiagnosticsSize","semanticDiagnostics","currentGlobalDiagnostics","oldAddLazyDiagnostics","getLeftSideOfImportEqualsOrExportAssignment","nodeOnRightSide","getSymbolOfNameOrPropertyAccessExpression","isThisPropertyAndThisTyped","specialPropertyAssignmentSymbol","getSpecialPropertyAssignmentSymbolFromEntityName","importEqualsDeclaration","possibleImportNode","isImportTypeQualifierPart","isInNameOfExpressionWithTypeArguments","entityNameSymbol","nodeListId","filteredIndexSymbolCache","copy","proto","isDeclarationNameOrImportPropertyName","isTypeDeclarationName","typeOfArrayLiteral","propsByName","prefixLocals","isNameOfModuleOrEnumDeclaration","symbolFile","getReferencedValueOrAliasSymbol","isSymbolOfDeclarationWithCollidingName","isSymbolOfDestructuredElementOfCatchBinding","isDeclaredInLoop","inLoopInitializer","inLoopBodyBlock","isAliasResolvedToValue","excludeTypeOnlyValues","signaturesOfSymbol","isRequiredInitializedParameter","isOptionalUninitializedParameterProperty","declaredParameterTypeContainsUndefined","calculateNodeCheckFlagWorker","calculatedFlags","checkSingleSuperExpression","checkChildSuperExpressions","checkChildIdentifiers","checkSingleIdentifier","checkContainingBlockScopeBindingUses","forEachNodeRecursively","rootResult","checkSuperExpressions","checkIdentifiers","isExpressionNodeOrShorthandPropertyAssignmentName","checkBlockScopeBindings","checkSingleBlockScopeBinding","typeNameIn","rootValueSymbol","resolvedValueSymbol","resolvedTypeSymbol","signatureDeclarationIn","exprIn","startInDeclarationContainer","referenceIn","literalTypeToNode","enumResult","literalValue","jsxFragPragmas","jsxFragPragma","direct","helpersModule","resolveHelpersModule","externalHelpersModule","getImportHelpersImportSpecifier","requestedExternalEmitHelpers","uncheckedHelpers","getHelperNames","quickResult","reportObviousDecoratorErrors","findFirstIllegalDecorator","reportObviousModifierErrors","findFirstIllegalModifier","findFirstModifierExcept","lastStatic","lastDeclare","lastAsync","lastOverride","sawExportBeforeDecorators","hasLeadingDecorators","accessors","inOutFlag","inOutText","checkGrammarAsyncModifier","allowedModifier","checkGrammarForUseStrictSimpleParameterList","useStrictDirective","nonSimpleParameters","getNonSimpleParameters","checkGrammarParameterList","seenOptionalParameter","checkGrammarArrowFunction","checkGrammarForAtLeastOneTypeArgument","listType","computedPropertyName","variableList","isStringOrNumberLiteralExpression","isInvalidInitializer","isSimpleLiteralEnumReference","isBigIntLiteralExpression","grammarErrorOnNodeSkippedOn","blockScopeFlags","nodeForSourceFile","checkGrammarTopLevelElementForRequiredDeclareModifier","checkGrammarTopLevelElementsForRequiredDeclareModifier","hasReportedStatementInAmbientContext","isFractional","discriminated","_SymbolTrackerImpl","onDiagnosticReported","augmentingSymbol","lift","visitedNode","extractSingleNode","visitArrayWorker","updatedArray","nodesVisitor","startLexicalEnvironment","endLexicalEnvironment","setLexicalEnvironmentFlags","getLexicalEnvironmentFlags","addDefaultValueAssignmentsIfNeeded","addDefaultValueAssignmentIfNeeded","suspendLexicalEnvironment","addDefaultValueAssignmentForBindingPattern","addInitializationStatement","addDefaultValueAssignmentForInitializer","nodeVisitor","resumeLexicalEnvironment","startBlockScope","endBlockScope","discardVisitor","discarded","tokenVisitor","visitEachChildTable","visitEachChildOfQualifiedName","_nodesVisitor","_tokenVisitor","visitEachChildOfComputedPropertyName","visitEachChildOfTypeParameterDeclaration","visitEachChildOfParameterDeclaration","visitEachChildOfDecorator","visitEachChildOfPropertySignature","visitEachChildOfPropertyDeclaration","visitEachChildOfMethodSignature","visitEachChildOfMethodDeclaration","visitEachChildOfConstructorDeclaration","visitEachChildOfGetAccessorDeclaration","visitEachChildOfSetAccessorDeclaration","visitEachChildOfClassStaticBlockDeclaration","visitEachChildOfCallSignatureDeclaration","visitEachChildOfConstructSignatureDeclaration","visitEachChildOfIndexSignatureDeclaration","visitEachChildOfTypePredicateNode","visitEachChildOfTypeReferenceNode","visitEachChildOfFunctionTypeNode","visitEachChildOfConstructorTypeNode","visitEachChildOfTypeQueryNode","visitEachChildOfTypeLiteralNode","_nodeVisitor","visitEachChildOfArrayTypeNode","visitEachChildOfTupleTypeNode","visitEachChildOfOptionalTypeNode","visitEachChildOfRestTypeNode","visitEachChildOfUnionTypeNode","visitEachChildOfIntersectionTypeNode","visitEachChildOfConditionalTypeNode","visitEachChildOfInferTypeNode","visitEachChildOfImportTypeNode","visitEachChildOfImportTypeAssertionContainer","visitEachChildOfNamedTupleMember","visitEachChildOfParenthesizedType","visitEachChildOfTypeOperatorNode","visitEachChildOfIndexedAccessType","visitEachChildOfMappedType","visitEachChildOfLiteralTypeNode","visitEachChildOfTemplateLiteralType","visitEachChildOfTemplateLiteralTypeSpan","visitEachChildOfObjectBindingPattern","visitEachChildOfArrayBindingPattern","visitEachChildOfBindingElement","visitEachChildOfArrayLiteralExpression","visitEachChildOfObjectLiteralExpression","visitEachChildOfPropertyAccessExpression","visitEachChildOfElementAccessExpression","visitEachChildOfCallExpression","visitEachChildOfNewExpression","visitEachChildOfTaggedTemplateExpression","visitEachChildOfTypeAssertionExpression","visitEachChildOfParenthesizedExpression","visitEachChildOfFunctionExpression","visitEachChildOfArrowFunction","visitEachChildOfDeleteExpression","visitEachChildOfTypeOfExpression","visitEachChildOfVoidExpression","visitEachChildOfAwaitExpression","visitEachChildOfPrefixUnaryExpression","visitEachChildOfPostfixUnaryExpression","visitEachChildOfBinaryExpression","visitEachChildOfConditionalExpression","visitEachChildOfTemplateExpression","visitEachChildOfYieldExpression","visitEachChildOfSpreadElement","visitEachChildOfClassExpression","visitEachChildOfExpressionWithTypeArguments","visitEachChildOfAsExpression","visitEachChildOfSatisfiesExpression","visitEachChildOfNonNullExpression","visitEachChildOfMetaProperty","visitEachChildOfTemplateSpan","visitEachChildOfBlock","visitEachChildOfVariableStatement","visitEachChildOfExpressionStatement","visitEachChildOfIfStatement","visitEachChildOfDoStatement","visitEachChildOfWhileStatement","visitEachChildOfForStatement","visitEachChildOfForInStatement","visitEachChildOfForOfStatement","visitEachChildOfContinueStatement","visitEachChildOfBreakStatement","visitEachChildOfReturnStatement","visitEachChildOfWithStatement","visitEachChildOfSwitchStatement","visitEachChildOfLabeledStatement","visitEachChildOfThrowStatement","visitEachChildOfTryStatement","visitEachChildOfVariableDeclaration","visitEachChildOfVariableDeclarationList","visitEachChildOfFunctionDeclaration","visitEachChildOfClassDeclaration","visitEachChildOfInterfaceDeclaration","visitEachChildOfTypeAliasDeclaration","visitEachChildOfEnumDeclaration","visitEachChildOfModuleDeclaration","visitEachChildOfModuleBlock","visitEachChildOfCaseBlock","visitEachChildOfNamespaceExportDeclaration","visitEachChildOfImportEqualsDeclaration","visitEachChildOfImportDeclaration","visitEachChildOfImportAttributes","visitEachChildOfImportAttribute","visitEachChildOfImportClause","visitEachChildOfNamespaceImport","visitEachChildOfNamespaceExport","visitEachChildOfNamedImports","visitEachChildOfImportSpecifier","visitEachChildOfExportAssignment","visitEachChildOfExportDeclaration","visitEachChildOfNamedExports","visitEachChildOfExportSpecifier","visitEachChildOfExternalModuleReference","visitEachChildOfJsxElement","visitEachChildOfJsxSelfClosingElement","visitEachChildOfJsxOpeningElement","visitEachChildOfJsxClosingElement","forEachChildInJsxNamespacedName2","visitEachChildOfJsxFragment","visitEachChildOfJsxAttribute","visitEachChildOfJsxAttributes","visitEachChildOfJsxSpreadAttribute","visitEachChildOfJsxExpression","visitEachChildOfCaseClause","visitEachChildOfDefaultClause","visitEachChildOfHeritageClause","visitEachChildOfCatchClause","visitEachChildOfPropertyAssignment","visitEachChildOfShorthandPropertyAssignment","visitEachChildOfSpreadAssignment","visitEachChildOfEnumMember","visitEachChildOfSourceFile","visitEachChildOfPartiallyEmittedExpression","visitEachChildOfCommaListExpression","sourceRoot","sourcesDirectoryPath","generatorOptions","sourcesContent","nameToNameIndexMap","extendedDiagnostics","rawSources","sourceToSourceIndexMap","mappingCharCodes","mappings","lastGeneratedLine","lastGeneratedCharacter","lastSourceLine","lastSourceCharacter","lastNameIndex","hasLast","pendingGeneratedLine","pendingGeneratedCharacter","pendingSourceIndex","pendingSourceLine","pendingSourceCharacter","pendingNameIndex","hasPending","hasPendingSource","hasPendingName","getSources","addSource","setSourceContent","addMapping","appendSourceMap","generatedLine","generatedCharacter","sourceMapPath","sourceIndexToNewSourceIndexMap","nameIndexToNewNameIndexMap","mappingIterator","newSourceIndex","newSourceLine","newSourceCharacter","newNameIndex","rawPath","combinedPath","sourceLine","sourceCharacter","nameIndex","rawGeneratedLine","newGeneratedLine","rawGeneratedCharacter","toJSON","isNewGeneratedPosition","isBacktrackingSourcePosition","commitPendingMapping","appendMappingCharCode","flushMappingBuffer","shouldCommitMapping","appendBase64VLQ","apply","inValue","currentDigit","base64FormatEncode","getLineCount","getLineText","lineInfo","isStringOrNull","isRawSourceMap","captureMapping","hasSource","hasName","base64VLQFormatDecode","stopIterating","setErrorAndStopIterating","isSourceMappingSegmentEnd","setError","moreDigits","shiftCount","currentByte","base64FormatDecode","mapping","isSourceMappedPosition","sameMappedPosition","generatedPosition","compareSourcePositions","compareGeneratedPositions","getSourcePositionOfMapping","getGeneratedPositionOfMapping","mapPath","mapDirectory","generatedAbsoluteFilePath","generatedFile","getSourceFileLike","sourceFileAbsolutePaths","decodedMappings","generatedMappings","sourceMappings","getSourcePosition","generatedMappings2","getGeneratedMappings","getDecodedMappings","targetIndex","getGeneratedPosition","sourceMappings2","getSourceMappings","lists","processMapping","decoder","containsDefaultReference","isNamedDefaultReference","transformSourceFile","transformSourceFileOrBundle","transformBundle","bindings","defaultRefCount","externalImports","exportSpecifiers","IdentifierNameMultiMap","exportedBindings","uniqueExports","exportedFunctions","exportedNames","hasExportDefault","addExportedNamesForExportDeclaration","multiMapSparseArrayAdd","collectExportedVariableInfo","addExportedFunctionDeclaration","getEmitHelperFactory","specifierNameText","_IdentifierNameMap","_map","toKey","findSuperStatementIndexPathWorker","requireInitializer","isInitializedOrStaticProperty","isStaticPropertyDeclarationOrClassStaticBlockDeclaration","isStaticPropertyDeclaration","getDecoratorsOfParameters","firstParameterIsThis","firstParameterOffset","numParameters","getAllDecoratorsOfAccessors","setDecorators","getAllDecoratorsOfMethod","getAllDecoratorsOfProperty","privateEnv","generatedIdentifiers","walkUpLexicalEnvironments","env2","isSimpleParameter","updatedText","FlattenLevel2","needsValue","createAssignmentCallback","flattenContext","hoistTempVariables","emitExpression","emitBindingOrAssignment","value2","location2","createArrayBindingOrAssignmentPattern","makeArrayAssignmentPattern","createObjectBindingOrAssignmentPattern","makeObjectAssignmentPattern","createArrayBindingOrAssignmentElement","makeAssignmentElement","bindingOrAssignmentElementAssignsToName","bindingOrAssignmentElementContainsNonLiteralComputedName","ensureIdentifier","flattenBindingOrAssignmentElement","bindingOrAssignmentPatternAssignsToName","bindingOrAssignmentPatternContainsNonLiteralComputedName","rval","skipInitializer","pendingExpressions","pendingDeclarations","makeArrayBindingPattern","makeObjectBindingPattern","makeBindingElement","hoistVariableDeclaration","pendingDeclaration","pendingExpressions2","bindingTarget","createDefaultValueCheck","flattenObjectBindingOrAssignmentPattern","numElements","rhsValue","createDestructuringPropertyAccess","flattenArrayBindingOrAssignmentPattern","restContainingElements","hasTransformedPriorElement","isSimpleBindingOrAssignmentElement","reuseIdentifierExpressions","createClassThisAssignmentBlock","updatedNode","getAssignedNameOfIdentifier","getAssignedNameOfPropertyName","assignedNameText","namedEvaluationBlock","createClassNamedEvaluationHelperBlock","insertionIndex","leading","finishTransformNamedEvaluation","ignoreEmptyStringLiteral","transformNamedEvaluationOfPropertyAssignment","transformNamedEvaluationOfShorthandAssignmentProperty","transformNamedEvaluationOfVariableDeclaration","transformNamedEvaluationOfParameterDeclaration","transformNamedEvaluationOfBindingElement","transformNamedEvaluationOfPropertyDeclaration","transformNamedEvaluationOfAssignmentExpression","transformNamedEvaluationOfExportAssignment","ProcessLevel2","recordTaggedTemplateString","templateArguments","cookedStrings","rawStrings","createTemplateCooked","getRawLiteral","templateSpan","helperCall","tempVar","USE_NEW_TYPE_METADATA_FORMAT","emitHelpers","typeSerializer","previousOnEmitNode","onEmitNode","previousOnSubstituteNode","onSubstituteNode","currentNamespaceContainerName","currentLexicalScope","currentScopeFirstDeclarationsOfName","emitCallback","savedApplicableSubstitutions","applicableSubstitutions","savedCurrentSourceFile","enabledSubstitutions","isTransformedModuleDeclaration","isTransformedEnumDeclaration","substituteExpression","substituteExpressionIdentifier","trySubstituteNamespaceExportedName","substitutePropertyAccessExpression","substituteConstantValue","substituteElementAccessExpression","substituteShorthandPropertyAssignment","enableSubstitution","saveStateAndInvoke","visitSourceFile","readEmitHelpers","savedCurrentScope","savedCurrentScopeFirstDeclarationsOfName","onBeforeVisitNode","recordEmittedDeclarationInScope","visitorWorker","visitTypeScript","sourceElementVisitor","sourceElementVisitorWorker","visitElidableStatement","isElisionBlocked","visitImportDeclaration","visitImportClause","visitImportEqualsDeclaration","visitExportAssignment","visitExportDeclaration","allowEmpty","visitNamedExportBindings","visitNamespaceExports","visitNamedExports","visitExportSpecifier","namespaceElementVisitor","namespaceElementVisitorWorker","getClassElementVisitor","classElementVisitorWorker","visitConstructor","shouldEmitFunctionLikeDeclaration","transformConstructorBody","parametersWithPropertyAssignments","prologueStatementCount","superPath","parameterPropertyAssignments","transformParameterWithPropertyAssignment","transformConstructorBodyWorker","visitPropertyDeclaration","modifierElidingVisitor","decoratorElidingVisitor","injectClassElementTypeMetadata","visitPropertyNameOfClassElement","visitGetAccessor","visitSetAccessor","visitMethodDeclaration","getObjectLiteralElementVisitor","objectLiteralElementVisitorWorker","modifierVisitor","visitClassDeclaration","getClassFacts","extendsClauseElement","isExportOfNamespace","isDefaultExternalModuleExport","isExternalModuleExport","isNamedExternalModuleExport","promoteToIIFE","isClassLikeDeclarationWithTypeScriptSyntax","hasTypeScriptClassSyntax","moveModifiers","injectClassTypeMetadata","needsName","transformClassMembers","closingBraceLocation","varDecl","varStatement","createExportMemberAssignmentStatement","visitClassExpression","visitHeritageClause","visitExpressionWithTypeArguments","visitObjectLiteralExpression","visitFunctionDeclaration","addExportMemberAssignment","visitFunctionExpression","visitArrowFunction","visitParameter","visitParenthesizedExpression","visitAssertionExpression","visitSatisfiesExpression","visitCallExpression","visitNewExpression","visitTaggedTemplateExpression","visitNonNullExpression","visitEnumDeclaration","shouldEmitEnumDeclaration","varAdded","addVarForEnumOrModuleDeclaration","getNamespaceParameterName","containerName","getNamespaceContainerName","moduleArg","enumStatement","transformEnumBody","savedCurrentNamespaceLocalName","transformEnumMember","visitVariableStatement","variables","transformInitializedVariable","visitVariableDeclaration","visitModuleDeclaration","visitJsxSelfClosingElement","visitJsxJsxOpeningElement","newMembers","parameterProperty","getTypeMetadata","modifiersArray","getNewTypeMetadata","shouldAddTypeMetadata","serializeTypeOfNode","currentNameScope","shouldAddParamTypesMetadata","serializeParameterTypesOfNode","shouldAddReturnTypeMetadata","serializeReturnTypeOfNode","typeInfoMetadata","getOldTypeMetadata","typeMetadata","paramTypesMetadata","returnTypeMetadata","generatedName","statementsOut","statementsIn","superPathDepth","initializerStatements","superStatementIndex","superStatement","tryBlockStatements","shouldEmitAccessorDeclaration","createNamespaceExportExpression","getNamespaceMemberNameWithSourceMapsAndWithoutComments","getExpressionForPropertyName","generateNameForComputedPropertyName","transformEnumMemberDeclarationValue","enableSubstitutionForNonQualifiedEnumMembers","innerAssignment","outerAssignment","declaredNameInScope","varFlags","isFirstEmittedDeclarationInScope","shouldEmitModuleDeclaration","enableSubstitutionForNamespaceExports","enableEmitNotification","moduleStatement","transformModuleBody","namespaceLocalName","savedCurrentNamespaceContainerName","savedCurrentNamespace","statementsLocation","blockLocation","getInnerMostModuleDeclarationFromDottedModule","moduleDeclaration","shouldEmitAliasDeclaration","visitNamedImportBindings","visitImportSpecifier","shouldEmitImportEqualsDeclaration","tryGetConstEnumValue","substitute","safeMultiLineComment","addBlockScopedVariable","shouldTransformInitializersUsingSet","shouldTransformInitializersUsingDefine","shouldTransformInitializers","shouldTransformPrivateElementsOrClassStaticBlocks","shouldTransformAutoAccessors","shouldTransformThisInStaticInitializers","shouldTransformSuperInStaticInitializers","shouldTransformAnything","trySubstituteClassAlias","classAlias","classAliases","substituteThisExpression","lexicalEnvironment","noSubstitution","classConstructor","substituteThis","shouldSubstituteThisWithClassThis","lex","lexicalEnvironmentMap","savedLexicalEnvironment","savedPreviousShouldSubstituteThisWithClassThis","previousShouldSubstituteThisWithClassThis","savedShouldSubstituteThisWithClassThis","pendingStatements","shouldTransformPrivateStaticElementsInFile","currentClassContainer","currentClassElement","shouldTransformAutoAccessorsInCurrentClass","visitInNewClassLexicalEnvironment","visitClassDeclarationInNewClassLexicalEnvironment","visitClassExpressionInNewClassLexicalEnvironment","visitPropertyAssignment","isAnonymousClassNeedingAssignedName","savedPendingStatements","visitParameterDeclaration","visitBindingElement","visitPrivateIdentifier","visitPropertyAccessExpression","privateIdentifierInfo","accessPrivateIdentifier2","createPrivateIdentifierAccess","isStaticPropertyDeclarationOrClassStaticBlock","superClassReference","visitInvalidSuperProperty","visitElementAccessExpression","visitPreOrPostfixUnaryExpression","visitBinaryExpression","invocation","visitExpressionStatement","discardedValueVisitor","visitForStatement","visitThisExpression","setCurrentClassElementAnd","fallbackVisitor","visitCommaListExpression","heritageClauseVisitor","visitExpressionWithTypeArgumentsInHeritageClause","getClassLexicalEnvironment","assignmentTargetVisitor","visitAssignmentPattern","classElementVisitor","visitConstructorDeclaration","visitMethodOrAccessorDeclaration","visitClassStaticBlockDeclaration","visitComputedPropertyName","propertyNameVisitor","accessorFieldResultVisitor","transformFieldInitializer","injectPendingExpressions","transformConstructor","shouldTransformClassElementToWeakMap","getHoistedFunctionName","getterName","setterName","getPendingExpressions","classElement","visitor2","savedCurrentClassElement","transformAutoAccessor","cacheAssignment","backingField","tryGetClassThis","setterModifiers","transformPublicFieldInitializer","getPropertyNameExpressionIfNeeded","shouldHoist","inlinable","initializerStatement","transformPropertyOrClassStaticBlock","transformPrivateFieldInitializer","ensureDynamicThisIfNeeded","shouldForceDynamicThis","createPrivateIdentifierAccessHelper","brandCheckIdentifier","variableName","readExpression","initializeExpression","createCopiableReceiverExpr","createPrivateIdentifierAssignment","transformClassStaticBlockDeclaration","staticPropertiesOrClassStaticBlocks","savedPendingExpressions","superPropertyGet","isPrivateIdentifierInExpression","transformPrivateIdentifierInInExpression","visitorFunc","getPrivateInstanceMethodsAndAccessors","savedCurrentClassContainer","startClassLexicalEnvironment","shouldAlwaysTransformPrivateStaticElements","getPrivateIdentifierEnvironment","prefixName","privateInstanceMethodsAndAccessors","weakSetName","createHoistedVariableForClass","containsPublicInstanceFields","containsInitializedPublicInstanceFields","containsInstancePrivateElements","containsInstanceAutoAccessors","enableSubstitutionForClassStaticThisOrSuperReference","endClassLexicalEnvironment","pendingClassReferenceAssignment","isClassWithConstructorReference","prologue","staticProperties","addPropertyOrClassStaticBlockStatements","enableSubstitutionForClassAliases","isDecoratedClassDeclaration","requiresBlockScopedVar","createClassTempVar","temp2","classExpression","generateInitializedPropertyExpressionsOrClassStaticBlock","propertiesOrClassStaticBlocks","transformProperty","shouldTransformPrivateStaticElementsInClass","addPrivateIdentifierToEnvironment","addPrivateIdentifierClassElementToEnvironment","createBrandCheckWeakSetForPrivateMethods","storageName","addPrivateIdentifierPropertyDeclarationToEnvironment","syntheticConstructor","syntheticStaticBlock","arrow","membersArray","classThisAssignmentBlock","classNamedEvaluationHelperBlock","isDerivedClass","instanceProperties","privateMethodsAndAccessors","needsConstructorBody","needsSyntheticConstructor","addInstanceMethodStatements","methods","createPrivateInstanceMethodInitializer","parameterProperties","nonParameterProperties","superStatementIndices","propertyOriginalNode","transformed","transformPropertyWorker","emitAssignment","createPrivateStaticFieldInitializer","createPrivateInstanceFieldInitializer","weakMapName","memberAccess","previousInfo","addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment","_previousInfo","createHoistedVariableForPrivateName","addPrivateIdentifierMethodDeclarationToEnvironment","addPrivateIdentifierGetAccessorDeclarationToEnvironment","addPrivateIdentifierSetAccessorDeclarationToEnvironment","addDeclaration","isReservedPrivateName","visitDestructuringAssignmentTarget","wrapPrivateIdentifierForDestructuringTarget","visitAssignmentElement","visitArrayAssignmentElement","visitAssignmentRestElement","visitObjectAssignmentElement","visitAssignmentRestProperty","visitShorthandAssignmentProperty","visitAssignmentProperty","assignmentElement","isStaticPropertyDeclaration2","serializeTypeNode","serializerContext","setSerializerContextAnd","savedCurrentLexicalScope","savedCurrentNameScope","getAccessorTypeNode","getParametersOfDecoratedDeclaration","serializeLiteralOfLiteralTypeNode","getGlobalConstructor","serializeTypeReferenceNode","serialized","serializeEntityNameAsExpressionFallback","serializeEntityNameAsExpression","serializeUnionOrIntersectionConstituents","isIntersection","serializedType","serializedConstituent","equateSerializedTypeNodes","createCheckedValue","copied","serializeQualifiedNameAsExpression","minLanguageVersion","getGlobalConstructorWithFallback","transformClassDeclarationWithClassDecorators","getClassAliasIfNeeded","decorationStatements","transformDecoratorsOfClassElements","assignClassAliasInStaticBlock","varInitializer","addConstructorDecorationStatement","generateConstructorDecorationExpression","allDecorators","transformAllDecoratorsOfDeclaration","decorate","exportStatement","transformClassDeclarationWithoutClassDecorators","finishClassElement","visitSetAccessorDeclaration","visitGetAccessorDeclaration","decoratorContainsPrivateIdentifierInExpression","parameterDecoratorsContainPrivateIdentifierInExpression","parameterDecorators","addClassElementDecorationStatements","hasClassElementWithDecoratorContainingPrivateIdentifierInExpression","isSyntheticMetadataDecorator","transformDecorator","transformDecoratorsOfParameter","generateClassElementDecorationExpressions","getDecoratedClassElements","isDecoratedClassElement","isStaticElement","generateClassElementDecorationExpression","getClassMemberPrefix","getClassPrototype","classInfo","classSuper","updateState","enterClass","classInfo2","exitClass","enterClassElement","exitClassElement","enterName","exitName","shouldVisitNode","isDecoratedClassLike","originalClass","transformClassLike","varDecls","modifierVisitorNoExport","canIgnoreEmptyStringLiteralInAssignedName","visitPartiallyEmittedExpression","boundTag","enterOther","exitOther","prepareConstructor","nonPrologueStart","descriptorName","partialTransformClassElement","createMethodDescriptorObject","createMethodDescriptorForwarder","createGetAccessorDescriptorObject","createGetAccessorDescriptorForwarder","createSetAccessorDescriptorObject","createSetAccessorDescriptorForwarder","initializersName","extraInitializersName","createAccessorPropertyDescriptorObject","hasStaticInitializers","injectPendingInitializers","pendingStaticInitializers","pendingInstanceInitializers","modifiersWithoutAccessor","savedClassThis","createHelperVariable","getHelperVariableName","createLet","classReference","createClassInfo","metadataReference","instanceMethodExtraInitializersName","staticMethodExtraInitializersName","classThis2","hasNonAmbientInstanceFields","hasStaticPrivateClassElements","needsUniqueClassThis","classDefinitionStatements","leadingBlockStatements","trailingBlockStatements","classDecorators","classDecoratorsName","classDescriptorName","classExtraInitializersName","extendsClause","extendsElement","extendsExpression","unwrapped","safeExtendsExpression","updatedExtendsElement","updatedExtendsClause","renamedClassThis","createMetadata","classSuper2","createSymbolMetadataReference","outerThis","thisVisitor","constructorStatements","spreadArguments","constructorBody","memberInfos","memberDecoratorsName","memberInitializersName","memberExtraInitializersName","memberDescriptorName","staticNonFieldDecorationStatements","nonStaticNonFieldDecorationStatements","staticFieldDecorationStatements","nonStaticFieldDecorationStatements","valueProperty","classDescriptor","classDescriptorAssignment","classNameReference","esDecorateHelper2","esDecorateStatement","classDescriptorValueReference","classThisAssignment","classReferenceAssignment","createSymbolMetadata","runClassInitializersHelper","runClassInitializersStatement","leadingStaticBlock","trailingStaticBlock","existingNamedEvaluationHelperBlockIndex","classReferenceDeclaration","classReferenceVarDeclList","returnExpr","_parent","createDescriptor","referencedName","modifiers2","visitPropertyName","memberDecorators","memberDecoratorsArray","memberDecoratorsAssignment","visitReferencedPropertyName","methodExtraInitializersName","esDecorateExpression","assignmentTarget","injectPendingExpressionsCommon","createDescriptorMethod","namedFunction","enclosingFunctionParameterNames","capturedSuperProperties","hasSuperElementAccess","lexicalArgumentsBinding","enclosingSuperContainerFlags","substitutedSuperAccessors","isSuperContainer","superContainerFlags","savedEnclosingSuperContainerFlags","substituteCallExpression","doWithContext","visitDefault","argumentsVisitor","visitAwaitExpression","inTopLevelContext","asyncBodyVisitor","visitVariableStatementInAsyncBody","isVariableDeclarationListWithCollidingName","visitVariableDeclarationListWithCollidingNames","visitForStatementInAsyncBody","visitForInStatementInAsyncBody","visitForOfStatementInAsyncBody","visitCatchClauseInAsyncBody","catchClauseNames","catchClauseUnshadowedNames","recordDeclarationName","savedEnclosingFunctionParameterNames","savedLexicalArgumentsBinding","transformMethodBody","transformAsyncFunctionParameterList","transformAsyncFunctionBody","collidesWithParameterName","hasReceiver","hoistVariableDeclarationList","hoistVariable","converted","savedCapturedSuperProperties","savedHasSuperElementAccess","originalMethod","enableSubstitutionForAsyncMethodsWithSuper","createCaptureArgumentsStatement","newParameters","newParameter","newParametersArray","outerParameters","innerParameters","nodeType","getPromiseConstructor","serializationKind","isArrowFunction2","captureLexicalArguments","parameterBindings","originalParameter","outerParameter","inHasLexicalThisContext","asyncBody","transformAsyncFunctionBodyWorker","emitSuperHelpers","createSuperElementAccessInAsyncMethod","hasBinding","getterAndSetter","enclosingFunctionFlags","parametersWithPrecedingObjectRestOrSpread","taggedTemplateStringDeclarations","exportedVariableStatement","hierarchyFacts","ancestorFacts","enterSubtree","exitSubtree","excludeFacts","includeFacts","visitorWithUnusedExpressionResult","visitorNoAsyncModifier","doWithHierarchyFacts","affectsSubtree","expressionResultIsUnused2","visitYieldExpression","createDownlevelAwait","visitReturnStatement","visitLabeledStatement","visitForOfStatement","objects","chunkObjectLiteralElements","chunkObject","visitCatchClause","visitedBindings","savedExportedVariableStatement","visitVariableDeclarationWorker","visitVoidExpression","exportedVariableStatement2","transformForOfStatementWithObjectRest","initializerWithoutParens","bodyLocation","transformForAwaitOfStatement","nonUserCode","errorRecord","catchVariable","returnMethod","callValues","callNext","getDone","callReturn","convertForOfStatementHead","iteratorValueExpression","iteratorValueStatement","exitNonUserCodeExpression","exitNonUserCodeStatement","parameterVisitor","collectParametersWithPrecedingObjectRestOrSpread","savedEnclosingFunctionFlags","savedParametersWithPrecedingObjectRestOrSpread","transformFunctionBody2","transformAsyncGeneratorFunctionParameterList","transformAsyncGeneratorFunctionBody","outerStatements","appendObjectRestAssignmentsIfNeeded","leadingStatements","containsPrecedingObjectRestOrSpread","typeCheck","visitNonOptionalCallExpression","visitOptionalExpression","transformNullishCoalescingExpression","createNotNullCondition","visitDeleteExpression","visitNonOptionalExpression","visitNonOptionalParenthesizedExpression","captureThisArg","isDelete","visitNonOptionalPropertyOrElementAccessExpression","flattenChain","leftThisArg","capturedLeft","leftExpression","rightExpression","invert","transformLogicalAssignment","nonAssignmentOperator","propertyAccessTargetSimpleCopiable","propertyAccessTarget","propertyAccessTargetAssignment","elementAccessArgumentSimpleCopiable","elementAccessArgument","exportBindings","exportVars","defaultExportBinding","exportEqualsBinding","usingKind","getUsingKindOfStatements","prologueCount","countPrologueStatements","topLevelStatements","getUsingKind","createEnvBinding","bodyStatements","transformUsingDeclarations","createDownlevelUsingStatements","visitBlock","isUsingVariableDeclarationList","forInitializer","forDecl","isAwaitUsing","getUsingKindOfVariableDeclarationList","usingVar","usingVarList","usingVarStatement","visitSwitchStatement","getUsingKindOfCaseOrDefaultClauses","visitCaseOrDefaultClause","varList","hoistOrAppendNode","hoist","hoistImportOrExportOrHoistedDeclaration","hoistExportAssignment","hoistExportEquals","hoistExportDefault","hoistBindingIdentifier","hoistClassDeclaration","isExported2","hoistVariableStatement","hoistBindingElement","hoistInitializedVariable","isExportedDeclaration","exportAlias","envObject","envVarList","envVarStatement","bodyCatchBinding","tryStatement","getUsingKindOfVariableStatement","currentFileState","importSpecifier","filenameDeclaration","utilizedImplicitRuntimeImports","importSource","importSpecifiersMap","importStatement","requireStatement","getCurrentFileNameExpression","getJsxFactoryCallee","isStaticChildren","getJsxFactoryCalleePrimitive","getImplicitImportForName","specifierSourceImports","visitJsxElement","visitJsxFragment","visitJsxExpression","transformJsxChildToExpression","visitJsxText","fixed","fixupWhitespaceAndDecodeEntities","lastNonWhitespace","addLineOfJsxText","hasProto","shouldUseCreateElement","hasKeyAfterPropsSpread","isChild","visitJsxOpeningLikeElementCreateElement","visitJsxOpeningLikeElementJSX","visitJsxOpeningFragmentCreateElement","visitJsxOpeningFragmentJSX","convertJsxChildrenToChildrenPropAssignment","nonWhitespaceChildren","getTagName","childrenProp","keyAttr","attrs","visitJsxOpeningLikeElementOrFragmentJSX","transformJsxAttributesToObjectProps","objectProperties","transformJsxAttributeInitializer","originalFile","lineCol","childrenProps","convertJsxChildrenToChildrenPropObject","getImplicitJsxFragmentReference","transformJsxAttributesToProps","attrs2","transformJsxSpreadAttributeToProps","transformJsxAttributeToObjectLiteralElement","transformJsxAttributesToExpression","finishObjectLiteralIfNeeded","getAttributeName","tryDecodeEntities","decoded","decodeEntities","trimmedLine","_all","_number","_digits","decimal","hex","word","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","exist","empty","nabla","isin","notin","ni","prod","minus","lowast","radic","infin","ang","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","visitExponentiationAssignmentExpression","expressionTemp","argumentExpressionTemp","visitExponentiationExpression","createSpreadSegment","currentText","convertedLoopState","isPartOfClassBody","blockScope","substituteThisKeyword","createCapturedThis","substituteIdentifier","isNameOfDeclarationWithCollidingName","insertCaptureThisForNodeIfNeeded","isReturnVoidStatementInConstructorWithCapturedSuper","isOrMayContainReturnCompletion","shouldConvertIterationStatement","classWrapperStatementVisitor","callExpressionVisitor","visitSuperKeyword","transformClassLikeDeclarationToExpression","savedConvertedLoopState","visitIdentifier","visitVariableDeclarationList","enableSubstitutionsForBlockScopedBindings","visitVariableDeclarationInLetDeclarationList","getRangeUnion","savedAllowedNonLabeledJumps","allowedNonLabeledJumps","visitCaseBlock","isFunctionBody2","visitBreakOrContinueStatement","jump","labels","labelMarker","setLabeledJump","nonLocalJumps","loopOutParameters","outParams","copyExpr","copyOutParameter","recordLabel","visitIterationStatement","visitDoOrWhileStatement","visitForInStatement","resetLabel","numInitialProperties","hasComputed","addObjectLiteralMembers","numProperties","transformAccessorsToExpression","transformObjectLiteralMethodDeclarationToExpression","transformPropertyAssignmentToExpression","transformShorthandPropertyAssignmentToExpression","newVariableDeclaration","vars","destructure","addStatementToStartOfBlock","transformedStatements","visitShorthandPropertyAssignment","visitArrayLiteralExpression","transformAndSpreadElements","visitTypeScriptClassWrapper","isVariableStatementWithInitializer","stmt","classStatements","remainingStatements","aliasAssignment","funcStatements","classBodyStart","classBodyEnd","extendsCall","visitCallExpressionWithPotentialCapturedThisAssignment","assignToCapturedThis","resultingCall","createActualThis","visitTemplateLiteral","visitStringLiteral","visitNumericLiteral","visitTemplateExpression","visitSpreadElement","visitThisKeyword","containsLexicalThis","thisName","visitMetaProperty","functionExpression","transformFunctionLikeToExpression","visitAccessorDeclaration","isVariableStatementOfTypeScriptClassWrapper","hoistVariableDeclarationDeclaredInConvertedLoop","returnCapturedThis","argumentsName","classFunction","createSyntheticSuper","transformClassBody","constructorLikeName","addExtendsHelperIfNeeded","addConstructor","hasSynthesizedSuper","hasSynthesizedDefaultSuperCall","hasExtendsClause","statementExpression","callArgument","transformConstructorParameters","createDefaultConstructorBody","createDefaultSuperCallOrThis","statementsArray","standardPrologueEnd","containsSuperCall","mayReplaceThis","addDefaultValueAssignmentsIfNeeded2","addRestParameterIfNeeded","insertCaptureNewTargetIfNeeded","insertCaptureThisForNode","isSufficientlyCoveredByReturnStatements","simplifyConstructor","inputBody","simplifyConstructorInlineSuperInThisCaptureVariable","isThisCapturingVariableStatement","thisCaptureStatementIndex","superCallIndex","statement2","isTransformedSuperCallLike","isUninitializedVariableStatement","following","isThisCapturingAssignment","newVarDecl","newDeclList","newVarStatement","newStatements","simplifyConstructorInlineSuperReturn","canElideThisCapturingVariable","isCapturedThis","preceding","isThisCapturingTransformedSuperCallWithFallback","newReturnStatement","simplifyConstructorElideUnusedThisCapture","elideUnusedThisCaptureWorker","complicateConstructorInjectSuperPresenceCheck","injectSuperPresenceCheckWorker","addClassMembers","transformSemicolonClassElementToStatement","transformClassMethodDeclarationToStatement","transformAccessorsToStatement","named","isSyntheticSuper","isThisCapturingVariableDeclaration","isTransformedSuperCall","isTransformedSuperCallWithFallback","isImplicitSuperCall","isImplicitSuperCallWithFallback","isThisCapturingImplicitSuperCallWithFallback","ifStatement","lastStatement","hasDefaultValueOrBindingPattern","added","insertDefaultValueAssignmentForBindingPattern","insertDefaultValueAssignmentForInitializer","inConstructorWithSynthesizedSuper","prologueStatements","shouldAddRestParameter","expressionName","enableSubstitutionsForCapturedThis","captureThisStatement","newTarget","captureNewTargetStatement","memberFunction","visitedAccessorName","getterFunction","setterFunction","closeBraceLocation","shouldEmitExplicitInitializerForLetDeclaration","isCapturedInFunction","visitIterationStatementWithFacts","convert","convertIterationStatementBodyIfNecessary","saveAllowedNonLabeledJumps","visitEachChildOfForStatement2","createConvertedLoopState","loopInitializer","loopParameters","hasCapturedBindingsInForHead","shouldConvertInitializerOfForStatement","shouldConvertConditionOfForStatement","shouldConvertIncrementorOfForStatement","processLoopVariableDeclaration","hoistedLocalVariables","outerConvertedLoopState","initializerFunction","createFunctionForInitializerOfForStatement","containsYield","copyOutParameters","functionDeclaration","createOutVariable","bodyFunction","shouldConvertBodyOfIterationStatement","createFunctionForBodyOfIterationStatement","conditionVariable","loopBody","generateCallToConvertedLoop","loopFunctionExpressionName","isSimpleLoop","labeledNonLocalBreaks","labeledNonLocalContinues","callResult","loopResultName","stateVariable","caseClauses","processLabeledJumps","addExtraDeclarationsForConvertedLoop","extraVariableDeclarations","outParam","outParamName","generateCallToConvertedLoopInitializer","initFunctionExpressionName","convertIterationStatementCore","convertForOfStatementForIterable","convertForOfStatementForArray","convertedLoopBodyStatements","firstOriginalDeclaration","createSyntheticBlockForConvertedStatements","rhsReference","shouldConvertPartOfIterationStatement","convertedLoopBody","convertForStatement","shouldConvertCondition","shouldConvertIncrementor","convertForInStatement","convertForOfStatement","convertDoStatement","convertWhileStatement","copyDirection","partFlags","isBreak","labelText","outerLoop","needsOutParam","isArgumentList","partitionSpread","partition","visitPartition","_start","startsWithSpread","visitSpanOfSpreads","visitSpanOfNonSpreads","chunk","visitExpressionOfSpread","isCallToReadHelper","isExpressionOfCall","hoistFunctionDeclaration","renamedCatchVariables","renamedCatchVariableDeclarations","inGeneratorFunctionBody","inStatementContainingYield","blocks","blockOffsets","blockActions","blockStack","labelOffsets","labelExpressions","operations","operationArguments","operationLocations","labelNumbers","lastOperationWasAbrupt","lastOperationWasCompletion","exceptionBlockStack","currentExceptionBlock","withBlockStack","nextLabelId","blockIndex","labelNumber","visitJavaScriptInStatementContainingYield","visitDoStatement","beginScriptLoopBlock","endLoopBlock","visitWhileStatement","beginScriptSwitchBlock","beginBlock","isScript","breakLabel","endSwitchBlock","beginScriptLabeledBlock","endLabeledBlock","visitJavaScriptInGeneratorFunctionBody","visitGenerator","savedInGeneratorFunctionBody","savedInStatementContainingYield","transformAndEmitVariableDeclarationList","visitBreakStatement","findBreakTarget","createInlineBreak","visitContinueStatement","findContinueTarget","createInlineReturn","createInstruction","visitJavaScriptContainingYield","assoc","visitLeftAssociativeBinaryExpression","visitLogicalBinaryExpression","resultLabel","defineLabel","resultLocal","declareLocal","emitBreakWhenFalse","emitBreakWhenTrue","markLabel","visitCommaExpression","cacheExpression","visitRightAssociativeBinaryExpression","emitWorker","visitConditionalExpression","whenFalseLabel","emitBreak","resumeLabel","emitYieldStar","emitYield","createGeneratorResume","visitElements","countInitialNodesWithoutYield","reduceProperty","expressions2","emitStatement","transformGeneratorFunctionBody","savedBlocks","savedBlockOffsets","savedBlockActions","savedBlockStack","savedLabelOffsets","savedLabelExpressions","savedNextLabelId","savedOperations","savedOperationArguments","savedOperationLocations","savedState","transformAndEmitStatements","buildResult","buildStatements","operationIndex","writeOperation","flushFinalLabel","labelExpression","leadingElement","numInitialElements","initialElements","reduceElement","hasAssignedTemp","transformAndEmitStatement","transformAndEmitEmbeddedStatement","transformAndEmitStatementWorker","transformAndEmitBlock","transformAndEmitExpressionStatement","transformAndEmitIfStatement","endLabel","transformAndEmitDoStatement","conditionLabel","loopLabel","beginLoopBlock","transformAndEmitWhileStatement","transformAndEmitForStatement","incrementLabel","transformAndEmitForInStatement","keysArray","keysIndex","endLoopLabel","variable2","transformAndEmitContinueStatement","transformAndEmitBreakStatement","transformAndEmitReturnStatement","emitReturn","transformAndEmitWithStatement","beginWithBlock","startLabel","endWithBlock","peekBlockKind","endBlock","transformAndEmitSwitchStatement","numClauses","beginSwitchBlock","clauseLabels","defaultClauseIndex","clausesWritten","pendingClauses","defaultClausesSkipped","transformAndEmitLabeledStatement","beginLabeledBlock","transformAndEmitThrowStatement","emitThrow","transformAndEmitTryStatement","beginExceptionBlock","emitNop","beginCatchBlock","exception","peekBlock","catchLabel","beginFinallyBlock","endExceptionBlock","emitEndfinally","numVariables","variablesWritten","numNodes","continueLabel","supportsUnlabeledBreak","supportsLabeledBreakOrContinue","supportsUnlabeledContinue","hasImmediateContainingLabeledBlock","containingBlock","createLabel","MAX_SAFE_INTEGER","instruction","getInstructionName","flushLabel","appendLabel","isFinalLabelReachable","tryEnterLabel","writeReturn","updateLabelExpressions","labelNumber2","markLabelEnd","withBlock","tryEnterOrLeaveBlock","blockAction","opcode","writeEndfinally","writeStatement","writeAssign","operationLocation","writeBreak","writeBreakWhenTrue","writeBreakWhenFalse","writeYield","writeYieldStar","writeThrow","getEmitHost","substituteTaggedTemplateExpression","substituteBinaryExpression","getExports","createExportExpression","exportedOrImportedName","currentModuleInfo","moduleInfoMap","importsAndRequiresToRewriteOrShim","needUMDDynamicImportHelper","getTransformModuleDelegate","moduleKind2","transformAMDModule","transformUMDModule","transformCommonJSModule","transformModule2","shouldEmitUnderscoreUnderscoreESModule","topLevelVisitor","createUnderscoreUnderscoreESModule","nextId","appendExportsOfHoistedDeclaration","addExportEqualsIfNeeded","define","aliasedModuleNames","unaliasedModuleNames","importAliasNames","collectAsynchronousDependencies","transformAsynchronousModuleBody","umdHeader","includeNonAmdDependencies","amdDependency","externalModuleName","importAliasName","getAMDImportExpressionForImport","getHelperExpressionForImport","dynamicImportUMDHelper","emitAsReturn","expressionResult","visitTopLevelImportDeclaration","createRequireCall2","appendExportsOfImportDeclaration","appendExportsOfDeclaration","importBinding","visitTopLevelImportEqualsDeclaration","appendExportsOfImportEqualsDeclaration","visitTopLevelExportDeclaration","specifierName","exportedValue","getHelperExpressionForExport","innerExpr","visitTopLevelExportAssignment","createExportStatement","topLevelNestedVisitor","removeCommentsOnExpressions","appendExportsOfVariableStatement","appendExportsOfVariableDeclarationList","exportStatements","mergedBody","visitWithStatement","visitIfStatement","visitCaseClause","visitDefaultClause","visitTryStatement","valueIsDiscarded","needsRewrite","shouldTransformImportCall","visitImportCallExpression","rewriteOrShim","firstArgument","createImportCallExpressionAMD","createImportCallExpressionUMD","argClone","createImportCallExpressionCommonJS","shimOrRewriteImportOrRequireCall","visitDestructuringAssignment","destructuringNeedsFlattening","createAllExportExpressions","reject","promise","isInlineable","needSyncEval","promiseResolveCall","requireCall","isForInOrOfInitializer","appendExportsOfBindingElement","appendExportStatement","liveBinding","exportSpecifier","exportContainer","bindingsSet","isSubstitutionPrevented","importedName","preventSubstitution","substituteMetaProperty","contextObject","substituteUnspecified","moduleInfo","exportFunction","exportFunctionsMap","noSubstitutionMap","contextObjectMap","hoistedStatements","enclosingBlockScopedContainer","dependencyGroups","collectDependencyGroups","groupIndices","externalImport","groupIndex","moduleBodyBlock","createSystemModuleBody","executeStatements","exportStarFunction","addExportStarIfNeeded","hasExportDeclarationWithExportClause","exportStarFunction2","createExportStarFunction","exportedLocalName","exportedNamesStorageRef","moduleObject","createSettersArray","moduleBodyFunction","dependencyGroup","localNames","setters","importVariableName","shouldHoistVariableDeclarationList","exportSelf","createExportedVariableAssignment","createNonExportedVariableAssignment","createVariableAssignment","excludeName","savedEnclosingBlockScopedContainer","visitForInitializer","shouldHoistForInitializer","hasExportedReferenceInDestructuringTarget","visitPrefixOrPostfixUnaryExpression","getReferencedDeclaration","exportedNames2","helperNameSubstitutions","substituteHelperName","substitution","importRequireStatements","updateExternalModule","updatedModuleSpecifier","oldIdentifier","synthName","visitImportOrRequireCall","createRequireName","requireHelperName","esmTransform","esmOnSubstituteNode","esmOnEmitNode","cjsTransform","cjsOnSubstituteNode","cjsOnEmitNode","getEmitModuleFormatOfFile2","getModuleTransformForFile","getAccessorNameVisibilityError","symbolAccessibilityResult","getAccessorNameVisibilityDiagnosticMessage","getMethodNameVisibilityError","getMethodNameVisibilityDiagnosticMessage","getVariableDeclarationTypeVisibilityError","getAccessorDeclarationTypeVisibilityError","getReturnTypeVisibilityError","getParameterDeclarationTypeVisibilityError","getParameterDeclarationTypeVisibilityDiagnosticMessage","getTypeParameterConstraintVisibilityError","getHeritageClauseVisibilityError","getImportEntityNameVisibilityError","getTypeAliasDeclarationVisibilityError","getVariableDeclarationTypeVisibilityDiagnosticMessage","relatedSuggestionByDeclarationKind","errorByDeclarationKind","getDiagnostic2","createEntityInTypeNodeError","addParentDeclarationRelatedInfo","createAccessorTypeError","createObjectLiteralError","createArrayLiteralError","createReturnTypeError","createBindingElementError","createVariableOrPropertyError","targetStr","createParameterError","createExpressionError","createClassExpressionError","findNearestDeclaration","parentDeclaration","declarationEmitNodeBuilderFlags","declarationEmitInternalNodeBuilderFlags","throwDiagnostic","lateMarkedStatements","lateStatementReplacementMap","suppressNewDiagnosticContexts","getSymbolAccessibilityDiagnostic","needsDeclare","isBundledEmit","resultHasExternalModuleIndicator","needsScopeFixMarker","resultHasScopeMarker","restoreFallbackNode","symbolTracker","handleSymbolAccessibilityError","errorNameNode","errorFallbackNode","errorDeclarationNameWithFallback","primaryDeclaration","augmentingDeclarations","currentFallback","currentRestore","rawReferencedFiles","rawTypeReferenceDirectives","rawLibReferenceDirectives","getIsolatedDeclarationError","stripInternal","isolatedDeclarations","transformRoot","bundle","collectFileReferences","transformDeclarationsForJS","visitDeclarationStatements","transformAndReplaceLatePaintedStatements","outputFilePath2","declarationFilePath","getReferencedFiles","getTypeReferences","getLibReferences","combinedStatements","outputFilePath","copyFileReferenceAsSynthetic","getSourceFileFromReference","declFileName","jsFilePath","reportExpandoFunctionErrors","oldDiag","filterBindingPatternInitializers","checkEntityNameVisibility","ensureParameter","modifierMask","maskModifiers","modifierAdditions","maskModifierFlags","ensureType","ensureNoInitializer","shouldPrintWithInitializer","canHaveLiteralInitializer","ignorePrivate","visitDeclarationSubtree","oldErrorNameNode","isDeclarationAndNotVisible","getBindingNameVisible","updateParamsList","newParams","updateAccessorParamsList","newValueParameter","valueParameter","ensureTypeParams","isEnclosingDeclaration","preserveJsDoc","rewriteModuleSpecifier2","tryGetResolutionModeOverride","priorNeedsDeclare","transformTopLevelDeclaration","visitLateVisibilityMarkedStatements","shouldStripInternal","previousEnclosingDeclaration","canProduceDiagnostic","oldWithinObjectLiteralType","shouldEnterSuppressNewDiagnosticsContextContext","ensureModifiers","isProcessedComponent","recreateBindingPattern","isPrivateMethodTypeParameter","checkName","isPreservedDeclarationStatement","newId","stripExportModifiers","updateModuleDeclarationAndKeyword","transformImportEqualsDeclaration","transformImportDeclaration","visibleDefaultBinding","bindingList","canProdiceDiagnostic","previousNeedsDeclare","clean2","transformHeritageClauses","shouldEmitFunctionProperties","overloadSignatures","exportMappings","isNonContextualKeywordName","gen","exp","namespaceDecl","cleanDeclaration","exportDefaultDeclaration","oldNeedsScopeFix","oldHasScopeFix","lateStatements","hasScopeMarker2","isScopeMarker2","oldDiag2","walkBindingPattern","elems","memberNodes","oldId","newClause","transformVariableStatement","declList","constValue","newInitializer","recreateBindingElement","currentFlags","ensureModifierFlags","additions","isAlwaysType","parentIsFile","scriptTransformers","declarationTransformers","customTransformers","emitOnly","getScriptTransformers","getDeclarationTransformers","transformers","before","wrapScriptTransformerFactory","getModuleTransformer","after","afterDeclarations","wrapDeclarationTransformerFactory","wrapCustomTransformerFactory","transformer","handleDefault","customTransformer","wrapCustomTransformer","_hint","allowDtsFiles","enabledSyntaxKindFeatures","lexicalEnvironmentVariableDeclarations","lexicalEnvironmentFunctionDeclarations","lexicalEnvironmentStatements","blockScopedVariableDeclarations","lexicalEnvironmentFlags","lexicalEnvironmentVariableDeclarationsStack","lexicalEnvironmentFunctionDeclarationsStack","lexicalEnvironmentStatementsStack","lexicalEnvironmentFlagsStack","lexicalEnvironmentStackOffset","lexicalEnvironmentSuspended","blockScopedVariableDeclarationsStack","blockScopeStackOffset","h","isSubstitutionEnabled","isEmitNotificationEnabled","transformersWithContext","transformation","substituteNode","emitNodeWithNotification","dispose","brackets","createBracketsMap","brackets2","sourceFilesOrTargetSourceFile","onlyBuildInfo","includeBuildInfo","buildInfoPath","canEmitTsBuildInfo","tscBuild","tsBuildInfoFile","outPath","buildInfoExtensionLess","configFileExtensionLess","getOutputPathsForBundle","forceDtsPaths","sourceMapFilePath","getSourceMapFilePath","declarationMapPath","ownOutputFilePath","isJsonFile","isJsonEmittedToSameLocation","sourceMap","inlineSourceMap","getOutputPathWithoutChangingExt","inputFileName","getOutputJSFileName","outputFileName","createAddOutput","outputs","addOutput","getOutputs","getSingleOutputFileNames","getOwnOutputFileNames","js","dts","emittedFiles","checkSourceFilesBelongToPath","skipBuildInfo","sourceMapDataList","emittedFilesList","emitterDiagnostics","emitSkipped","emitSourceFileOrBundle","sourceFileOrBundle","emitJsFileOrBundle","isEmitBlocked","noEmitHelpers","inlineSources","printSourceFileOrBundle","emitDeclarationFileOrBundle","filesForEmit","inputListOrBundle","declarationTransform","declBlocked","printerOptions","onlyPrintJsDocStyle","omitBraceSourceMapPositions","dtsWritten","mapRoot","emitBuildInfo","buildInfo","sourceMaps","mapOptions","sourceMapGenerator","sourceMapUrlPos","shouldEmitSourceMaps","getSourceRoot","getSourceMapDirectory","sourceMapDir","writeBundle","inputSourceFileNames","sourceMappingURL","getSourceMappingURL","sourceMapText","sourceMapFile","encodeURI","emitBOM","skippedDtsWrite","buildInfoFile","buildInfoText","neverAsciiEscape","omitTrailingSemicolon","handlers","nodeIdToGeneratedName","nodeIdToGeneratedPrivateName","autoGeneratedIdToGeneratedName","generatedNames","formattedNameTempFlagsStack","formattedNameTempFlags","privateNameTempFlagsStack","privateNameTempFlags","tempFlagsStack","tempFlags","reservedNamesStack","reservedNames","reservedPrivateNamesStack","reservedPrivateNames","nextListElementPos","ownWriter","isOwnFileEmit","sourceMapSource","mostRecentlyAddedSourceMapSource","currentLineMap","detachedCommentsInfo","lastSubstitution","currentParenthesizerRule","onBeforeEmitNode","onAfterEmitNode","onBeforeEmitNodeArray","onAfterEmitNodeArray","onBeforeEmitToken","onAfterEmitToken","omitBraceSourcePositions","bundledHelpers","preserveSourceNewlines","writeBase","sourceMapsDisabled","sourceMapSourceIndex","mostRecentlyAddedSourceMapSourceIndex","containerPos","containerEnd","declarationListContainerEnd","hasWrittenComment","commentsDisabled","enterComment","exitComment","typeArgumentParenthesizerRuleSelector","select","emitBinaryExpression","createEmitBinaryExpression","preserveSourceNewlinesStack","containerPosStack","containerEndStack","declarationListContainerEndStack","emitComments2","shouldEmitCommentsStack","shouldEmitComments","emitSourceMaps","shouldEmitSourceMapsStack","emitCommentsBeforeNode","emitSourceMapsBeforeNode","beforeEmitNode","_workArea","maybeEmitExpression","isCommaOperator","linesBeforeOperator","getLinesBetweenNodes","linesAfterOperator","writeLinesAndIndent","emitLeadingCommentsOfPosition","writeTokenNode","emitTrailingCommentsOfPosition","decreaseIndentIf","savedPreserveSourceNewlines","savedContainerPos","savedContainerEnd","savedDeclarationListContainerEnd","shouldEmitComments2","shouldEmitSourceMaps2","afterEmitNode","emitSourceMapsAfterNode","emitCommentsAfterNode","pipelinePhase","getPipelinePhase","pipelineEmitWithSubstitution","getNextPipelinePhase","pipelineEmitWithComments","pipelineEmitWithSourceMaps","pipelineEmitWithHint","printNode","printFile","printBundle","beginPrint","endPrint","printList","writeList","previousWriter","setWriter","print","setSourceFile","emitList","sourceMapGenerator2","emitShebangIfNeeded","emitPrologueDirectivesIfNeeded","emitSyntheticTripleSlashReferencesIfNeeded","emitTripleSlashDirectives","pipelineEmit","setSourceMapSource","_writer","_sourceMapGenerator","getCurrentLineMap","emitIdentifierName","emitJsxAttributeValue","emitHint","pipelineEmitWithNotification","currentPhase","pipelineEmitWithHintWorker","allowSnippets","emitSnippetNode","emitPlaceholder","nonEscapingWrite","order","emitTabStop","emitSourceFile","emitIdentifier","emitLiteral","emitMappedTypeParameter","emitImportTypeNodeAttributes","emitEmptyStatement","emitPrivateIdentifier","emitQualifiedName","emitEntityName","emitComputedPropertyName","emitTypeParameter","emitModifierList","emitParameter","emitDecoratorsAndModifiers","emitNodeWithWriter","emitTypeAnnotation","emitInitializer","emitDecorator","emitPropertySignature","emitPropertyDeclaration","emitMethodSignature","emitSignatureAndBody","emitSignatureHead","emitEmptyFunctionBody","emitMethodDeclaration","emitFunctionBody","emitClassStaticBlockDeclaration","pushNameGenerationScope","emitBlockFunctionBody","popNameGenerationScope","emitConstructor","emitAccessorDeclaration","emitTokenWithComment","emitCallSignature","emitConstructSignature","emitIndexSignature","emitParametersForIndexSignature","emitTypePredicate","emitTypeReference","emitTypeArguments","emitFunctionType","emitFunctionTypeHead","emitFunctionTypeBody","emitConstructorType","emitTypeQuery","emitTypeLiteral","generateMemberNames","emitArrayType","emitTupleType","emitOptionalType","emitUnionType","emitIntersectionType","emitConditionalType","emitInferType","emitParenthesizedType","emitExpressionWithTypeArguments","emitThisType","emitTypeOperator","writeTokenText","emitIndexedAccessType","emitMappedType","emitLiteralType","emitNamedTupleMember","emitTemplateType","emitTemplateTypeSpan","emitImportTypeNode","emitObjectBindingPattern","emitArrayBindingPattern","emitBindingElement","emitTemplateSpan","emitSemicolonClassElement","emitBlock","emitBlockStatements","isEmptyBlock","emitVariableStatement","emitExpressionStatement","emitIfStatement","openParenPos","emitEmbeddedStatement","writeLineOrSpace","emitDoStatement","emitWhileClause","emitWhileStatement","emitForStatement","emitForBinding","emitExpressionWithLeadingSpace","emitForInStatement","emitForOfStatement","emitWithTrailingSpace","emitContinueStatement","emitWithLeadingSpace","emitBreakStatement","emitReturnStatement","parenthesizeExpressionForNoAsi","emitWithStatement","emitSwitchStatement","emitLabeledStatement","emitThrowStatement","emitTryStatement","emitDebuggerStatement","writeToken","emitVariableDeclaration","emitVariableDeclarationList","emitFunctionDeclaration","emitFunctionDeclarationOrExpression","emitClassDeclaration","emitClassDeclarationOrExpression","emitInterfaceDeclaration","emitTypeParameters","emitTypeAliasDeclaration","emitEnumDeclaration","emitModuleDeclaration","emitModuleBlock","generateNames","emitCaseBlock","emitNamespaceExportDeclaration","emitImportEqualsDeclaration","emitModuleReference","emitImportDeclaration","emitImportClause","emitNamespaceImport","asPos","emitNamespaceExport","emitNamedImports","emitNamedImportsOrExports","emitImportSpecifier","emitImportOrExportSpecifier","emitExportAssignment","emitExportDeclaration","emitNamedExports","emitExportSpecifier","emitImportAttributes","emitImportAttribute","emitExternalModuleReference","emitJsxText","emitJsxOpeningElementOrFragment","indented","writeLineSeparatorsAndIndentBefore","emitJsxTagName","writeLineSeparatorsAfter","emitJsxClosingElementOrFragment","emitJsxAttribute","emitNodeWithPrefix","prefixWriter","emit2","emitJsxAttributes","emitJsxSpreadAttribute","emitJsxExpression","hasCommentsAtPosition","hasTrailingCommentsAtPosition","hasLeadingCommentsAtPosition","isMultiline","emitJsxNamespacedName","emitCaseClause","emitCaseOrDefaultClauseRest","emitDefaultClause","emitHeritageClause","emitCatchClause","emitPropertyAssignment","emitShorthandPropertyAssignment","emitSpreadAssignment","emitEnumMember","emitJSDocTypeExpression","emitJSDocNameReference","emitJSDocNullableType","emitJSDocNonNullableType","emitJSDocOptionalType","emitJSDocFunctionType","emitParameters","emitRestOrJSDocVariadicType","emitJSDoc","emitJSDocTypeLiteral","emitJSDocSignature","emitJSDocSimpleTag","emitJSDocTagName","emitJSDocComment","emitJSDocHeritageTag","emitJSDocCallbackTag","emitJSDocOverloadTag","emitJSDocPropertyLikeTag","emitJSDocSimpleTypedTag","emitJSDocTemplateTag","emitJSDocTypedefTag","emitJSDocSeeTag","emitJSDocImportTag","emitNumericOrBigIntLiteral","emitArrayLiteralExpression","preferNewLine","emitExpressionList","emitObjectLiteralExpression","indentedFlag","allowTrailingComma","emitPropertyAccessExpression","linesBeforeDot","linesAfterDot","shouldEmitDotDot","mayNeedDotDotForPropertyAccess","getLiteralTextOfNode","emitElementAccessExpression","emitCallExpression","indirectCall","emitNewExpression","emitTaggedTemplateExpression","emitTypeAssertionExpression","emitParenthesizedExpression","emitFunctionExpression","generateNameIfNeeded","emitArrowFunction","emitArrowFunctionHead","emitArrowFunctionBody","emitDeleteExpression","emitTypeOfExpression","emitVoidExpression","emitAwaitExpression","emitPrefixUnaryExpression","shouldEmitWhitespaceBeforeOperand","emitPostfixUnaryExpression","emitConditionalExpression","linesBeforeQuestion","linesAfterQuestion","linesBeforeColon","linesAfterColon","emitTemplateExpression","emitYieldExpression","parenthesizeExpressionForNoAsiAndDisallowedComma","emitSpreadElement","emitClassExpression","emitAsExpression","emitNonNullExpression","emitSatisfiesExpression","emitMetaProperty","emitJsxElement","emitJsxSelfClosingElement","emitJsxFragment","emitPartiallyEmittedExpression","emitCommaList","helpersEmitted","shouldSkip","shouldBundle","getSortedEmitHelpers","writeLines","makeFileLevelOptimisticUniqueName","jsxAttributeEscape","getTextOfNode2","emitParametersForArrow","forceSingleLine","isEmbeddedStatement","indentLeading","isSimilarNode","needsIndent","isJsxExprContext","commentWillEmitNewLine","willEmitLeadingNewLine","leadingCommentRanges","parens","emitSignatureHead2","emitBody","emitBlockFunctionBody2","shouldEmitBlockFunctionBodyOnSingleLine","getLeadingLineTerminatorCount","getClosingLineTerminatorCount","previousStatement","getSeparatingLineTerminatorCount","emitBlockFunctionBodyOnSingleLine","emitBlockFunctionBodyWorker","emitBodyWithDetachedComments","emitBlockFunctionBodyOnSingleLine2","emitPrologueDirectives","colonPos","emitSourceFileWorker","libs2","writeDirectives","directives","emitTripleSlashDirectivesIfNeeded","seenPrologueDirectives","needsToSetSourceFile","savedWrite","emitDecoratorList","lastMode","emitNodeListItems","equalCommentStartPos","canEmitSimpleArrowHead","writeDelimiter","emitNodeList","getOpeningBracket","getClosingBracket","childrenTextRange","mayEmitInterveningComments","shouldEmitInterveningComments","leadingLineTerminatorCount","emitListItem","getEmitListItem","emitListItemNoParenthesizer","emitListItemWithParenthesizerRuleSelector","emitListItemWithParenthesizerRule","shouldDecreaseIndentAfterEmit","separatingLineTerminatorCount","skipTrailingComments","emitTrailingComma","closingLineTerminatorCount","emitTokenWithSourceMap","skipSourceTrivia","emitSourcePos","tokenString","prevChildNode","nextChildNode","lineText","writeSpaceIfNotIndenting","value1","firstChild","getEffectiveLines","synthesizedNodeStartsOnNewLine","previousNode","siblingNodePositionsAreComparable","parentNodeArray","prevNodeIndex","originalNodesHaveSameParent","nodeA","nodeB","getLineDifference","leadingNewlines","trailingNewlines","skipSynthesizedParentheses","canUseSourceFile","terminateUnterminatedLiterals","reserveNameInNestedScopes","reservePrivateNameInNestedScopes","generateNameCached","makeName","makeTempVariableName","makeUniqueName2","isFileLevelUniqueNameInCurrentFile","isUniqueName","generateNameForNode","isReservedName","_isPrivate","setTempFlags","formattedNameKey","tempFlags2","getTempFlags","checkFn","optimistic","generateNameForModuleOrEnum","isUniqueLocalName","generateNameForExportDefault","generateNameForImportOrExportDeclaration","generateNameForClassExpression","generateNameForMethodOrAccessor","emitLeadingCommentsOfNode","skipLeadingComments","emitLeadingComments","emitLeadingSynthesizedComment","emitTrailingCommentsOfNode","emitTrailingSynthesizedComment","emitTrailingComments","forEachTrailingCommentToEmit","emitTrailingComment","hasLeadingNewline","writeSynthesizedComment","formatSynthesizedComment","detachedRange","emitDetachedCommentsAndUpdateCommentsInfo","emitComment","isEmittedNode","forEachLeadingCommentToEmit","emitNonTripleSlashLeadingComment","emitLeadingComment","emitTripleSlashLeadingComment","rangePos","isTripleSlashComment","shouldWriteComment","emitPos","_kind","prefixSpace","forceNoNewline","emitTrailingCommentOfPositionNoNewline","emitTrailingCommentOfPosition","hasDetachedComments","forEachLeadingCommentWithoutDetachedComments","newLine2","isJsonSourceMapSource","savedSourceMapSource","savedSourceMapSourceIndex","resetSourceMapSource","_parenthesizerRule","_index","parenthesizerRuleSelector","cachedReadDirectoryResult","getCachedFileSystemEntriesForBaseDir","toPath3","hasEntry","sortedAndCanonicalizedFiles","getBaseNameOfFileName","encoding","rootDirPath","tryReadDirectory2","rootSymLinkResult","getFileSystemEntriesFromHost","canonicalizedBaseName","sortedAndCanonicalizedDirectories","updateFilesOfFileSystemEntry","addOrDeleteFileOrDirectory","fileOrDirectoryPath","getCachedFileSystemEntries","clearCache","clearFirstAncestorEntry","fsQueryResult","addOrDeleteFile","createCachedFileSystemEntries","resultFromHost","fileExists2","canonicalizedFiles","sortedIndex","unsortedIndex","ProgramUpdateLevel2","projectPath","extendedConfigFilesMap","createExtendedConfigFileWatch","extendedConfigs","extendedConfigFilePath","extendedConfigFileName","existing2","extendedFile","program","missingFileWatches","createMissingFileWatch","getMissingFilePaths","existingWatchedForWildcards","createWildcardDirectoryWatcher","updateWildcardDirectoryWatcher","existingWatcher","watchedDirPath","writeLog","getScriptKind2","newPath","isSupportedScriptKind","filePathWithoutExtension","realProgram","getProgramOrUndefined","builderProgram","hasSourceFile","getSourceFileByPath","fileInfos","rootFile","isEmittedFile","WatchLogLevel2","watchLogLevel","getDetailWatchInfo2","plainInvokeFactory","triggerInvokingFactory","createTriggerLoggingAddWatch","createFileWatcherWithLogging","detailInfo1","detailInfo2","getWatchInfo","createDirectoryWatcherWithLogging","watchInfo","elapsed","watchInfo2","elapsed2","excludeWatcherFactory","createExcludeWatcherWithLogging","createExcludeHandlingAddWatch","triggerredInfo","getDetailWatchInfo3","objWithWatcher","configName","commonPathComponents","sourcePathComponents","actualWriteFile","existingDirectories","getDefaultLibLocation","compilerHost","getNewLine","originalReadFile","originalFileExists","originalDirectoryExists","originalCreateDirectory","readFileCache","fileExistsCache","directoryExistsCache","sourceFileCache","setReadFileCache","getSourceFileWithCache","shouldCreateNewSourceFile","forImpliedNodeFormat","readFileWithCache","getOptionsDiagnostics","getSyntacticDiagnostics","getSemanticDiagnostics","ForegroundColorEscapeSequences2","gutterStyleSequence","gutterSeparator","resetEscapeSequence","ellipsis","halfIndent","indent","getCategoryFormat","formatStyle","formatCodeSpan","squiggleColor","firstLine","firstLineChar","lastLine","lastLineChar","lastLineInFile","hasMoreThanFiveLines","gutterWidth","lineEnd","lineContent","lastCharForLine","color","kid","containingFileMode","getModeForUsageLocationWorker","getEmitSyntaxForUsageLocationWorker","exprParentParent","shouldTransformImportCallWorker","fileEmitMode","emptyResolution","getModuleResolutionName","getMode","nameAndMode","getTypeReferenceResolutionName","typeReferenceResolutionNameAndModeGetter","typeRef","resoluionMode","containingSourceFile","resolutionCache","createLoader","resolutions","libFileName","importLiteral","getResolvedModuleFromModuleSpecifier","getResolvedTypeReferenceDirectiveFromTypeReferenceDirective","rootFileNames","getSourceVersion","hasInvalidatedResolutions","hasInvalidatedLibResolutions","hasChangedAutomaticTypeDirectiveNames","getParsedCommandLine","getRootFileNames","projectReferenceUptoDate","resolvedProjectReferenceUptoDate","getResolvedProjectReferences","sourceFileNotUptoDate","sourceFileVersionUptoDate","missingPaths","currentOptions","resolvedLibReferences","oldResolvedRef","refPath2","newParsedCommandLine","childResolvedRef","refPath","configFileParseResult","shouldLookupFromPackageJson","lookupFromPackageJson","plainJSErrors","_rootNamesOrOptions","_options","_host","_oldProgram","_configFileParsingDiagnostics","_createProgramOptions","createCreateProgramOptions","rootNames","oldProgram","configFileParsingDiagnostics","typeScriptVersion3","createProgramOptionsHost","reportInvalidIgnoreDeprecations","createOptionValueDiagnostic","processingDefaultLibFiles","processingOtherFiles","symlinks","typeChecker","filesWithReferencesProcessed","cachedBindAndCheckDiagnosticsForFile","cachedDeclarationDiagnosticsForFile","programDiagnostics","getCompilerOptionsObjectLiteralSyntax","automaticTypeDirectiveNames","automaticTypeDirectiveResolutions","resolvedLibProcessing","resolvedModules","resolvedModulesProcessing","resolvedTypeReferenceDirectiveNames","resolvedTypeReferenceDirectiveNamesProcessing","packageMap","currentNodeModulesDepth","modulesWithElidedImports","sourceFilesFoundSearchingNodeModules","Program","configParsingHost","skipDefaultLib","noLib","getDefaultLibraryFileName","defaultLibraryPath","skipVerifyCompilerOptions","hasEmitBlockingDiagnostics","_compilerOptionsObjectLiteralSyntax","_compilerOptionsPropertySyntax","moduleResolutionCache","actualResolveModuleNamesWorker","actualResolveTypeReferenceDirectiveNamesWorker","resolveModuleNameLiterals","resolveModuleNames","moduleNames","reusedNames","resolveTypeReferenceDirectiveReferences","resolveTypeReferenceDirectives","typeDirectiveNames","typeReferenceDirectiveResolutionCache","actualResolveLibrary","libraryResolutionCache","packageIdToSourceFile","usesUriStyleNodeCoreModules","sourceFileToPackageName","filesByName","missingFileNames","filesByNameIgnoreCase","projectReferenceRedirects","mapSourceFileToResolvedRef","mapOutputFileToResolvedRef","useSourceOfProjectReferenceRedirect","disableSourceOfProjectReferenceRedirect","onProgramCreateComplete","updateHostForUseSourceOfProjectReferenceRedirect","setOfDeclarationDirectories","originalGetDirectories","originalRealpath","handleDirectoryCouldBeSymlink","fileOrDirectoryExistsUsingSource","fileExistsIfProjectReferenceDts","directoryExistsIfProjectReferenceDeclDir","dirPathWithTrailingDirectorySeparator","declDirPath","symlinkCache","realPath2","fileOrDirectoryExistsUsingSource2","symlinkedDirectory","forEachResolvedProjectReference2","hasOldProgram","shouldProgramCreateNewSourceFiles","structureIsReused","tryReuseStructureFromOldProgram","canReuseProjectReferences","newResolvedRef","parseProjectReferenceConfigFile","oldProjectReferences","getResolvedProjectReferenceByPath","newSourceFiles","modifiedSourceFiles","missingFileName","oldSourceFiles","SeenPackageName","SeenPackageName2","seenPackageNames","sourceFileOptions","getCreateSourceFileOptions","unredirected","prevKind","newKind","fileReferenceIsEqualTo","collectExternalModuleReferences","moduleNameIsEqualTo","getModuleNames","resolveModuleNamesReusingOldState","optionsForFile","getCompilerOptionsForFile","typesReferenceDirectives","typeReferenceResolutions","resolveTypeReferenceDirectiveNamesReusingOldState","getResolvedTypeReferenceDirective","getModeForTypeReferenceDirectiveInFile","pathForLibFileWorker","actual","getFilesByNameMap","oldFile","isConfigIdentical","reuseStateFromOldProgram","getProgramDiagnosticsContainer","getAutomaticTypeDirectiveResolutions","getCurrentPackagesMap","parsedRef","processProjectReferenceFile","getCommonSourceDirectory3","processRootFile","containingFilename","processTypeReferenceDirective","defaultLibraryFileName","pathForLibFile","compareDefaultLibFiles","getDefaultLibFilePriority","onReleaseOldSourceFile","newFile","resolvedProjectReference","onReleaseParsedCommandLine","oldRefPath","getDiagnosticsHelper","getSyntacticDiagnosticsForFile","getCombinedDiagnostics","getOptionsDiagnosticsOfConfigFile","getTypeChecker","getSemanticDiagnosticsForFile","getBindAndCheckDiagnosticsForFile","getProgramDiagnostics","getCachedSemanticDiagnostics","getDeclarationDiagnostics2","getDeclarationDiagnosticsForFile","getBindAndCheckDiagnostics","getClassifiableNames","writeFileCallback","program2","typeChecker2","emitResult","getFileProcessingDiagnostics","resolvedLib","getModeForUsageLocation2","getModeForResolutionAtIndex2","referencingFile","getSourceFileFromReferenceWorker","getLibFileFromReference","actualFileName","getPackagesMap","isSameFile","getConfigFileParsingDiagnostics2","getDefaultResolutionModeForFile2","getImpliedNodeFormatForEmit2","getFileReasons","verifyCompilerOptions","createDiagnosticForOptionName","addConfigDiagnostic","verifyDeprecatedCompilerOptions","useInstead","createDiagnosticForOption","checkDeprecations","createDeprecatedDiagnostic","noImplicitUseStrict","keyofStringsOnly","suppressExcessPropertyErrors","suppressImplicitAnyIndexErrors","noStrictGenericChecks","charset","importsNotUsedAsValues","preserveValueImports","verifyProjectReferences","suppressOutputPathCheck","parentFile","verifyDeprecatedProjectReference","_name","_useInstead","createDiagnosticForReference","rootPaths","addLazyConfigDiagnostic","createDiagnosticForOptionPaths","typeOfSubst","createDiagnosticForOptionPathKeyValue","firstNonAmbientExternalModuleSourceFile","moduleKindName","moduleResolutionName","emitHost","emitFilesSeen","emitFileNames","verifyEmitFilePath","emitFileName","emitFilePath","blockEmittingOfFile","emitFileKey","typeDirectiveName","forEachResolution","addResolutionDiagnostics","addFileProcessingDiagnostic","addResolutionDiagnosticsFromResolutionOrCache","containingDir","getRedirectReferenceForResolution","resolveModuleNamesWorker","containingFileName","resolveTypeReferenceDirectiveNamesWorker","resultFromDts","realDeclarationPath","basename","commonSourceDirectory2","rootDirectory","allFilesBelongToPath","absoluteRootDirectoryPath","setCommonSourceDirectory","resolveNamesReusingOldState","nameAndModeGetter","resolutionWorker","getResolutionFromOldProgram","getResolved","canReuseResolutionsInFile","resolveToOwnAmbientModule","unknownEntries","unknownEntryIndices","reuseResolutions","oldResolved","programDiagnosticsInFile","getDiagnosticsWithPrecedingDirectives","additionalSyntacticDiagnostics","getJSSyntacticDiagnosticsForFile","walk","walkArray","interfaceKeyword","moduleKeyword","enumKeyword","decoratorIndex","exportIndex","trailingDecoratorIndex","createDiagnosticForNodeArray2","checkModifiers","isConstValid","getBindAndCheckDiagnosticsForFileNoCache","isPlainJs","checkDiagnostics","getMergedBindAndCheckDiagnostics","includeBindAndCheckDiagnostics","partialCheck","flatDiagnostics","errorExpectation","markPrecedingCommentDirectiveLine","getDeclarationDiagnosticsWorker","getDeclarationDiagnosticsForFileNoCache","isDefaultLib","ignoreNoDefaultLib","processSourceFile","createSyntheticImport","externalHelpersModuleReference","isExternalModuleFile","ambientModules","jsxImport","collectModuleReferences","inAmbientModule","getSourceFile2","allowNonTsExtensions","sourceFileNoExtension","sourceFileWithAddedExtension","findSourceFile","addFilePreprocessingFileExplainingDiagnostic","reportFileNamesDifferOnlyInCasingError","existingFile","fileIncludeKind","findSourceFileWorker","addFileToFilesByName","addedReason","addFileIncludeReason","checkedName","noResolve","processReferencedFiles","processTypeReferenceDirectives","processLibReferenceDirectives","processImportedModules","redirectedPath","redirectProject","packageIdKey","fileFromPackageId","dupFile","pathLowerCase","moduleResolutionCache2","checkExisting","updateFilesByNameMap","projectReferencePath","typeDirectives","resolutionsInFile","typeReferenceDirective","hasResolved","processTypeReferenceDirectiveWorker","_c2","_d2","_e2","libReplacement","libraryName2","resolveFrom2","isFromNodeModulesSearch","isJsFile","isJsFileFromNodeModules","elideImport","shouldAddFile","outDts","deprecatedIn","removedIn","deprecatedInVersion","removedInVersion","typescriptVersion","ignoreDeprecationsVersion","getIgnoreDeprecationsVersion","ignoreDeprecations","mustBeRemoved","canBeSilenced","fileProcessingReason","valueIndex","needCompilerDiagnostic","forEachOptionPathsSyntax","pathProp","keyProps","createCompilerOptionsDiagnostic","onKey","createOptionDiagnosticInObjectLiteralSyntax","option1","option3","referencesSyntax","compilerOptionsObjectLiteralSyntax","compilerOptionsProperty","getCompilerOptionsPropertySyntax","key1","needsCompilerDiagnostic","file1","noEmitOnError","directoryStructureHost","needJsx","needAllowJs","needResolveJsonModule","needAllowArbitraryExtensions","allowArbitraryExtensions","aug","augIndex","computedDiagnostics","fileProcessingDiagnostics","configDiagnostics","lazyConfigDiagnostics","fileReasonsToChain","reasonToRelatedInfo","fileReasons","oldProgramDiagnostics","getConfigDiagnostics","getLazyConfigDiagnostics","createDiagnosticExplainingFile","filePreprocessingLibreferenceDiagnostic","seenReasons","fileIncludeReasons","fileIncludeReasonDetails","reasons","locationReason","cachedChain","populateRelatedInfo","processReason","processedExtraReason","cachedFileIncludeDetailsHasProcessedExtraReason","getFileIncludeReasonToRelatedInformation","fileIncludeReasonToRelatedInformation","message2","configFileNode","matchedByFiles","matchedByInclude","referencedResolvedRef","referenceInfo","emitOnlyDtsFiles","outputFiles","SignatureInfo2","BuilderState2","createManyToManyPathMap","create2","forward","reverse","getKeys","getValues","deleteKey","deleteFromMultimap","vSet","existingVSet","addToMultimap","getReferencedFilesFromImportLiteral","getReferencedFilesFromImportedModuleSymbol","getReferencedFileFromFileName","sourceFileDirectory","declarationSourceFilePaths","addReferencedFile","referencedFile","addReferenceFromAmbientModule","declarationSourceFile","referencedPath","canReuseOldState","newReferencedMap","oldState","referencedMap","createReferencedMap","getFilesAffectedByWithOldState","programOfThisState","updateShapeSignature","getFilesAffectedByUpdatedShapeWhenModuleEmit","getFilesAffectedByUpdatedShapeWhenNonModuleEmit","computeDtsSignature","onNewSignature","_writeByteOrderMark","_onError","useFileVersionAsSignature","hasCalledUpdateShapeSignature","prevSignature","latestSignature","storeSignatureInfo","signatureInfo","oldSignatures","getAllFileNames","getReferencedByPaths","referencedFilePath","isFileAffectingGlobalScope","containsGlobalScopeAugmentation","containsOnlyAmbientModules","getAllFilesExcludingDefaultLibraryFile","firstSourceFile","allFilesExcludingDefaultLibraryFile","addSourceFile","sourceFileWithUpdatedShape","seenFileNamesMap","currentPath","newProgram","disableUseFileVersionAsSignature","useOldState","oldUncommittedSignature","newReferences","affectsGlobalScope","impliedFormat","releaseCache","releaseCache2","getFilesAffectedBy","updateSignatureOfFile","getAllDependencies","seenMap","BuilderFileEmit2","isBuilderProgramStateWithDefinedProgram","getPendingEmitKind","optionsOrEmitKind","oldOptionsOrEmitKind","oldEmitKind","emitKind","diff","createBuilderProgramState","outFilePath","semanticDiagnosticsPerFile","outSignature","getEmitSignatureFromOldSignature","changedFilesSet","latestChangedDtsFile","checkPending","oldCompilerOptions","canCopySemanticDiagnostics","canCopyEmitSignatures","emitSignatures","canCopyEmitDiagnostics","affectedFilesPendingEmit","seenAffectedFiles","programEmitPending","hasErrorsFromOldState","hasErrors","buildInfoEmitPending","oldReferencedMap","copyDeclarationFileDiagnostics","copyLibFileDiagnostics","oldInfo","hasSameKeys","map1","addFileToChangeSet","emitDiagnostics","emitDiagnosticsPerFile","hasReusableDiagnostic","convertToDiagnostics","repopulateDiagnostics","semanticDiagnosticsFromOldState","oldEmitSignature","pendingEmitKind","addToAffectedFilesPendingEmit","repopulatedChain","convertOrRepopulateDiagnosticMessageChain","convertOrRepopulateDiagnosticMessageChainArray","diagnosticFilePath","buildInfoDirectory","convertToDiagnosticRelatedInformation","toPathInBuildInfoDirectory","reportDeprecated","assertSourceFileOkWithoutNextAffectedCall","affectedFiles","affectedFilesIndex","getNextAffectedFile","affectedFile","handleDtsMayChangeOfAffectedFile","currentChangedFilePath","nextKey","clearAffectedFilesPendingEmit","isForDtsErrors","pending","seenOldOptionsOrEmitKind","getBuilderFileEmitAllDts","removeDiagnosticsOfLibraryFiles","cleanedDiagnosticsOfLibFiles","removeSemanticDiagnosticsOf","assumeChangesOnlyAffectDirectDependencies","handleDtsMayChangeOfReferencingExportOfAffectedFile","isChangedSignature","handleDtsMayChangeOfGlobalScope","handleDtsMayChangeOf","seenFileAndExportsOfFile","invalidateJsFiles","aliased","exportedFromPath","handleDtsMayChangeOfFileAndExportsOfFile","oldSignature","referencingFilePath","getSemanticDiagnosticsOfFile","getBinderAndCheckerDiagnosticsOfFile","cachedDiagnostics","ensureHasErrorsForState","bindAndCheckDiagnostics","hasSyntaxOrGlobalErrors","getBuildInfoEmitPending","BuilderProgramKind2","newProgramOrRootNames","hostOrOptions","oldProgramOrHost","configFileParsingDiagnosticsOrOldProgram","getProgram","getTextHandlingSourceMapForSignature","locationInfo","flattenDiagnosticMessageText2","getBuildInfo2","relativeToBuildInfoEnsuringAbsolutePath","fileNameToFileId","relativeToBuildInfo","fileInfos2","tryAddRoot","toFileId","resolvedRoot","toResolvedRoot","toIncrementalBuildInfoCompilerOptions","toIncrementalBuildInfoDiagnostics","toIncrementalBuildInfoEmitDiagnostics","changeFileSet","toChangeFileSet","pendingEmit","fileIdsList","fileNamesToFileIdListId","fileId","actualSignature","emitSignature","toFileIdListId","fullEmitForOptions","seenFiles","fileIds","fileIdListId","isLastStartEnd","lastButOne","optionInfo","toReusableCompilerOptionValue","toReusableDiagnostic","toReusableDiagnosticRelatedInformation","toReusableDiagnosticMessageChain","toReusableDiagnosticMessageChainArray","reusable","toBuilderProgramStateWithDefinedProgram","hasChangedEmitSignature","affectedResult","getSemanticDiagnosticsOfNextAffectedFile","affected","affectedEmitResult","emitNextAffectedFileOrDtsErrors","handleNonEmitBuilderWithEmitOrDtsErrors","emitNextAffectedFile","getWriteFileCallback","releaseProgram","programEmitKind","seenProgramEmit","seenKind","pendingAffectedFile","getNextAffectedFilePendingEmit","seenEmittedFiles","pendingForDiagnostics","getNextPendingEmitDiagnosticsFile","affected2","affectedSourceFile","setEmitDiagnosticsPerFile","newSignature","handleNewSignature","oldSignatureFormat","computeSignature","differsOnlyInMap","ignoreSourceFile","affectedFilePendingEmit","fileInfo","filePaths","filePathsSetList","toFilePath","toPerFileSemanticDiagnostics","toPerFileEmitDiagnostics","stateFileInfo","toManyToManyPathMap","referenceMap","toFilePathsSet","fileIdsListId","rootIndex","resolvedRoots","addRoot","isNonIncrementalBuildInfo","emitOnlyDts","newConfigFileParsingDiagnostics","perceivedOsRootLengthForWatching","indexAfterOsRoot","isDosStyle","search","canWatchAffectedPackageJsonOrNodeModulesOfAtTypes","isInDirectoryPath","dirComponents","fileOrDirComponents","fileOrDirPath","failedLookupLocation","failedLookupLocationPath","rootPath","rootPathComponents","isRootWatchable","failedLookupPathComponents","failedLookupComponents","perceivedOsRootLength","nodeModulesIndex","lastNodeModulesIndex","getDirectoryOfFailedLookupWatch","nonRecursive","getDirectoryToWatchFromFailedLookupLocationDirectory","dirPathComponents","dirPathComponentsLength","packageDirLength","packageDir","packageDirPath","typeRootPath","filterCustomPath","typeRootPathComponents","toWatch","rootDirForResolution","getModuleResolutionHost","resolutionHost","getCompilerHost","resolveModuleNameUsingGlobalCache","primaryResult","globalCacheResolutionModuleName","logChangesWhenResolvingModule","filesWithChangedSetOfUnresolvedImports","filesWithInvalidatedResolutions","filesWithInvalidatedNonRelativeUnresolvedImports","nonRelativeExternalModuleResolutions","resolutionsWithFailedLookups","resolutionsWithOnlyAffectingLocations","resolvedFileToResolution","impliedFormatPackageJsons","affectingPathChecksForFile","affectingPathChecks","failedLookupChecks","startsWithPathChecks","isInDirectoryChecks","allModuleAndTypeResolutionsAreInvalidated","cachedDirectoryStructureHost","getCachedDirectoryStructureHost","resolvedModuleNames","getCompilationSettings","resolvedTypeReferenceDirectives","resolvedLibraries","directoryWatchesOfFailedLookups","fileWatchesOfAffectingLocations","isSymlinkCache","packageDirWatchers","dirPathToSymlinkPackageRefCount","typeRootsWatches","watchFailedLookupLocationsOfExternalModuleResolutions","startRecordingFilesWithChangedResolutions","finishRecordingFilesWithChangedResolutions","collected","startCachingPerDirectoryResolution","watchFailedLookupLocationOfNonRelativeModuleResolutions","finishCachingPerDirectoryResolution","cleanupLibResolutionWatching","stopWatchFailedLookupLocationOfResolution","createFileWatcherOfAffectingLocation","closeDirectoryWatchesOfFailedLookup","closeFileWatcherOfAffectingLocation","closePackageDirWatcher","moduleLiterals","resolveNamesWithLocalCache","perFileCache","getResolutionWithResolvedFileName","shouldRetryResolution","logChanges","deferWatchingNonRelativeResolution","typeDirectiveReferences","resolveLibrary2","isInvalidated","existingResolution","resolveSingleModuleNameWithoutWatching","beforeResolveSingleModuleNameWithoutWatching","afterResolveSingleModuleNameWithoutWatching","removeResolutionsFromProjectReferenceRedirects","getCurrentProgram","removeResolutionsOfFile","invalidateResolutionOfFile","prevHasChangedAutomaticTypeDirectiveNames","invalidateResolutions","onChangedAutomaticTypeDirectiveNames","invalidateResolutionsOfFailedLookupLocations","setFilesWithInvalidatedNonRelativeUnresolvedImports","filesMap","createHasInvalidatedResolutions","customHasInvalidatedResolutions","customHasInvalidatedLibResolutions","isFileWithInvalidatedNonRelativeUnresolvedImports","updateTypeRootsWatch","closeTypeRootsWatch","createTypeRootsWatch","onChangesAffectModuleResolution","dirPathToWatcher","hasInvalidatedNonRelativeUnresolvedImport","oldRedirect","unmatchedRedirects","seenNamesInFile","onDiscoveredSymlink","resolutionIsSymlink","resolutionIsEqualTo","oldResult","newResult","isNodeModulesAtTypesDirectory","watchFailedLookupLocationOfResolution","watchFailedLookupLocation","setAtRoot","setDirectoryWatcher","watchAffectingLocationsOfResolution","addToResolutionsWithOnlyAffectingLocations","affectingLocation","forResolution","fileWatcher","symlinkWatcher","locationToWatch","isSymlink","watchAffectingFileLocation","invalidateAffectingFileWatcher","scheduleInvalidateResolutionsOfFailedLookupLocations","symlinkWatcher2","packageJsonMap","createDirectoryWatcherForPackageDir","packageDirWatcher","removeDirectoryWatcher","createDirPathToWatcher","forDirPath","createOrAddRefToDirectoryWatchOfFailedLookups","dirWatcher","stopWatchFailedLookupLocation","removeAtRoot","watchDirectoryOfFailedLookupLocation","scheduleInvalidateResolutionOfFailedLookupLocation","removeResolutionsOfFileFromCache","canInvalidate","invalidated","containingFilePath","isCreatingWatchedDirectory","updatedPath","fileIsOpen","dirOfFileOrDirectory","invalidatePackageJsonMap","isInvalidatedFailedLookup","canInvalidateFailedLookupResolution","canInvalidatedFailedLookupResolutionWithAffectingLocation","locationPath","canWatchTypeRootPath","watchTypeRootsDirectory","dirPath2","sysFormatDiagnosticsHost","pretty","clearScreenIfNotWatchingForFileChanges","preserveWatchOutput","screenStartingMessageCodes","toLocaleTimeString","timeZone","getPlainDiagnosticFollowingNewLines","reportUnrecoverableDiagnostic","errorDiagnostic","diagnosticForFileName","errorCount","prettyPathForFileError","filesInError","nonNilFiles","fileInError","distinctFileNamesWithLines","self","firstFileReference","messageAndArgs","createTabularErrorsDisplay","distinctFiles","numberLength","num","LOG10E","fileToErrorCount","maxErrors","headerRow","leftColumnHeadingLength","leftPaddingGoal","headerPadding","tabularData","row","errorCountDigitsLength","leftPadding","fileRef","toFileName","fileNameConvertor","fileSpec","includeSpec","referenceText","isOutput","reportSummary","configFileParsingDiagnosticsLength","listFilesOnly","filepath","reportWatchStatus2","onWatchStatusChange","ConfigFile","ExtendedConfigFile","SourceFile","MissingFile","WildcardDirectory","FailedLookupLocations","AffectingFileLocation","TypeRoots","ConfigFileOfReferencedProject","ExtendedConfigOfReferencedProject","WildcardDirectoryOfReferencedProject","PackageJson","ClosedScriptInfo","ConfigFileForInferredRoot","NodeModules","MissingSourceMapFile","NoopConfigFileForInferredRoot","MissingGeneratedFile","NodeModulesForModuleSpecifierCache","TypingInstallerLocationFile","TypingInstallerLocationDirectory","originalGetSourceFile","createProgram2","afterProgramCreate","reportWatchStatus","diagnosticReporter","rootFiles","exitStatus","reportErrorSummary","afterProgramEmitAndDiagnostics","rootFilesOrConfigFileName","projectReferencesOrWatchOptionsToExtend","watchOptionsOrExtraFileExtensions","updateLevel","missingFilesMap","watchedWildcardDirectories","timerToUpdateProgram","timerToInvalidateFailedLookupResolutions","parsedConfigs","sharedExtendedConfigFileWatchers","staleWatches","reportFileChangeDetectedOnCreateProgram","sourceFilesCache","missingFilePathsRequestedForRelease","hasChangedCompilerOptions","optionsToExtendForConfigFile","canConfigFileJsonReportNoInputFiles","hasChangedConfigFileParsingErrors","parseConfigFileHost","updateNewLine","configFileParsingResult","setConfigFileParsingResult","reportWatchDiagnostic","parseConfigFile2","configFileWatcher","scheduleProgramReload","scheduleProgramUpdate","getNewSourceFile","getVersionedSourceFileByPath","isFileMissingOnHost","_oldOptions","hasSourceFileByPath","hostSourceFileInfo","watchedDirectories","clearInvalidateResolutionsOfFailedLookupLocations","invalidateResolutionsOfFailedLookup","onInvalidatedResolution","customHasInvalidLibResolutions","synchronizeProgram","getCurrentBuilderProgram","updateProgram","getResolutionCache","updateRootFileNames","hostSourceFile","createNewProgram","needsUpdateInTypeRootWatch","watchMissingFilePath","missingFilePath","configPath","watchReferencedProject","configFileName2","updateCachedSystemWithFile","parsedCommandLine","nextSourceFileVersion","updateExtendedConfigFilesWatches","watchConfigFileWildCardDirectories","watchWildcardDirectory","isFilePresenceUnknownOnHost","watchFilePath","onSourceFileChange","updateProgramWithWatchStatus","reloadFileNamesFromConfigFile","reloadConfigFile","getParsedCommandLineFromConfigFileHost","watchType","onMissingFileChange","forProjectPath","watchOptions2","UpToDateStatusType2","minimumDate","getOrCreateValueMapFromConfigFileMap","configFileMap","getOrCreateValueFromConfigFileMap","createT","getCurrentTime","buildOrder","anyBuildOrder","createSolutionBuilderHostBase","reportSolutionBuilderStatus","date","reportErrorSummary2","createSolutionBuilderWorker","baseWatchOptions","createSolutionBuilderState","hostOrHostWithWatch","hostWithWatch","baseCompilerOptions","getCompilerOptionsOfBuildOptions","projectCompilerOptions","parseConfigFile","toResolvedConfigFilePath","getBuildInfo3","resolvedConfigFilePaths","configFileCache","projectStatus","buildInfoCache","outputTimeStamps","builderPrograms","projectPendingBuild","projectErrorsReported","allProjectBuildPending","needsSummary","watchAllProjectsPending","allWatchedWildcardDirectories","allWatchedInputFiles","allWatchedConfigFiles","allWatchedExtendedConfigFiles","allWatchedPackageJsonFiles","filesWatched","lastCachedPackageJsonLookups","timerToBuildInvalidatedProject","reportFileChangeDetected","toPath2","isParsedCommandLine","getCachedParsedConfigFile","resolveProjectName","createBuildOrder","temporaryMarks","permanentMarks","circularityReportStack","circularDiagnostics","inCircularContext","projPath","getBuildOrder","createStateBuildOrder","currentProjects","noopOnDelete","existingMap","getBuildOrderFor","onlyReferences","resolvedProject","buildOrderFromState","enableCache","disableCache","originalReadFileWithCache","clearProjectStatus","addProjToQueue","proj","setupInitialBuild","InvalidatedProjectKind2","doneInvalidatedProject","createBuildOrUpdateInvalidedProject","projectIndex","step","getBuilderProgram","withProgramOrUndefined","withProgramOrEmptyArray","getCustomTransformers","executeSteps","reportStatus","reportAndStoreErrors","getOldProgram","internalMap","emittedOutputs","isIncremental","outputTimeStampMap","isChangedSignature2","getBuildInfoCacheEntry","latestChangedDtsTime","getOutputTimeStampMap","updateOutputTimestampsWorker","oldestOutputFileName","afterProgramDone","till","currentStep","queueReferencingProjects","getNextInvalidatedProjectCreateInfo","reportQueue","reportBuildQueue","reportParseConfigFileDiagnostic","watchConfigFile","watchExtendedConfigFiles","watchWildCardDirectories","watchInputFiles","watchPackageJsonFiles","getUpToDateStatus","verboseReportProjectStatus","upstreamProjectBlocked","upstreamProjectName","createInvalidatedProjectWithInfo","createUpdateOutputFileStampsProject","updateOutputFileStampsPending","updateOutputFileStatmps","updateOutputTimestamps","getNextInvalidatedProject","isFileWatcherWithModifiedTime","getModifiedTime2","resolvedConfigFilePath","resolvedConfigPath","checkConfigFileUpToDateStatus","oldestOutputFileTime","outOfDateOutputFileName","newerInputFileName","hasSameBuildInfo","buildInfoCacheEntry","resolvedRefPath","prior","getUpToDateStatusWorker","referenceStatuses","resolvedConfig","refStatus","stopBuildOnErrors","buildInfoTime","missingOutputFileName","incrementalBuildInfo","newestInputFileName","newestInputFileTime","pseudoInputUpToDate","seenRoots","buildInfoVersionMap","existingRoot","inputFile","inputTime","inputPath","currentVersion","resolvedInputPath","_resolved","existingRoot2","outputTime","pseudoUpToDate","newerProjectName","newestDeclarationFileContentChangedTime","getLatestChangedDtsTime","configStatus","extendedConfigStatus","packageJsonLookups","dependentPackageFileStatus","verboseMessage","skipOutputs","modifiedOutputs","reportVerbose","nextProject","nextProjectPath","nextProjectConfig","buildWorker","successfulProjects","invalidatedProject","startWatching","cfg","cleanWorker","reportErrors","filesToDelete","inputFileNames","invalidateProject","invalidateProjectAndScheduleBuilds","scheduleBuildInvalidatedProject","changeDetected","buildNextInvalidatedProject","buildNextInvalidatedProjectWorker","projectsBuilt","projectConfigFilePath","buildReferences","cleanReferences","getUpToDateStatusOfProject","stopWatching","watchedPacageJsonFiles","relName","canReportSummary","totalErrors","singleProjectErrors","buildQueue","reportUpToDateStatus","StatisticType2","countLines","counts2","getCountsMap","getCountKey","updateReportDiagnostic","shouldBePretty","defaultIsPretty","getOptionsForHelp","printVersion","createColors","bold","blue","blueBackground","brightWhite","isWindows","isWindowsTerminal","isVSCode","supportsRicherColors","getDisplayNameTextOfOption","generateOptionOutput","rightAlignOfLeft","leftAlignOfRight","colors","valueCandidates","getValueCandidate","getValueType","possibleValues","getPossibleValues","inverted","synonyms","formatDefaultValue","terminalWidth","getPrettyOutput","showAdditionalInfoOutput","diagType","valueCandidates2","defaultValueDescription2","rightAlignOfLeft2","leftAlignOfRight2","terminalWidth2","colorLeft","isFirstLine","remainRight","rightCharacterNumber","curLeft","padEnd","curRight","generateGroupOptionOutput","optionsList","curLength","rightAlignOfLeftPart","leftAlignOfRightPart","tmp","generateSectionOptionsOutput","sectionName","subCategory","beforeOptionsDescription","afterOptionsDescription","categoryMap","curCategory","optionsOfCurCategory","printBuildHelp","getHeader","tsIconFirstLine","tsIconSecondLine","leftAlign","printHelp","printAllHelp","printEasyHelp","simpleOptions","example","cliCommands","configOpts","desc","examples","example2","executeCommandLineWorker","writeConfigFile","commandLineOptions","reportWatchModeWithoutSysSupport","createWatchOfConfigFile","watchCompilerHost","createWatchStatusReporter2","updateWatchCompilationHost","performIncrementalCompilation2","performCompilation","createWatchOfFilesAndCompilerOptions","commandLineArgs","firstOption","generateCpuProfile","performBuild","defaultJSDocParsingMode","buildHost2","solutionPerformance2","enableSolutionPerformance","updateSolutionBuilderHost","reportBuildStatistics","reportSolutionBuilderTimes","builder2","buildHost","createReportErrorSummary","solutionPerformance","enableStatisticsAndTracing","reportStatistics","updateCreateProgram","isBuildMode","compileUsingBuilder","emitFilesUsingBuilder","createSolutionPerfomrance","statistics","addAggregateStatistic","forEachAggregateStatistics","forEachAggreateStatistics","reportSolutionBuilderCountStatistic","getNameFromSolutionBuilderMarkOrMeasure","isSolutionMarkOrMeasure","reportAllStatistics","canReportDiagnostics","canTrace","generateTrace","memoryUsed","reportCountStatistic","lineCounts","reportStatisticalValue","isPerformanceEnabled","programTime","bindTime","checkTime","emitTime","caches","reportTimeStatistic","aggregate","nameSize","valueSize","statisticValue","toFixed","round","syntacticResult","reportFallback","notImplemented2","alreadyReported","failed","typeFromParameter","typeFromVariable","serializeTypeAnnotationOfDeclaration","isContextuallyTyped","typeFromExpression","inferTypeOfDeclaration","typeFromProperty","typeFromExpandoProperty","typeFromPropertyAssignment","assertionNode","createReturnFromSignature","reuseNode","visitExistingNodeTreeSymbols","recover","onExitNewScope","visitExistingNodeTreeSymbolsWorker","overrideTypeNode","newTypeNode","getEffectiveDotDotDotForParameter","getNameForJSDocFunctionParameter","tryVisitIndexedAccess","tryVisitTypeReference","visitEachChild2","tryVisitTypeQuery","computedPropertyNameType","disposeScope","extendType","tryVisitKeyOf","visitNodesWithoutCopyingPositions","tryVisitSimpleTypeNode","innerNode","typeOperatorNode","resultObjectType","serializedName","canAddUndefined","addUndefinedIfNeeded","useFallback","serializeExistingTypeNodeWithFallback","typeFromAccessor","accessorDeclarations","accessorType","getTypeAnnotationFromAllAccessorDeclarations","getTypeAnnotationFromAccessor","withNewScope","inferAccessorType","preserveLiterals","inferExpressionType","noInferenceFallback","allAccessors","typeFromTypeAssertion","createUndefinedTypeNode","typeFromFunctionLikeExpression","fnNode","reuseTypeParameters","typeFromPrimitiveLiteral","typeFromArrayLiteral","canGetTypeFromArrayLiteral","oldNoInferenceFallback","elementTypesInfo","typeFromObjectLiteral","canGetTypeFromObjectLiteral","newProp","typeFromObjectLiteralMethod","typeFromObjectLiteralPropertyAssignment","typeFromObjectLiteralAccessor","primitiveNode","tpName","getAccessorType","setAccessorType","owner","optionalDeclaration","typeFromSingleReturnExpression","candidateExpr","inferReturnTypeOfSignatureSignature","NameValidationResult","discoverTypings","isTypingUpToDate","loadSafeList","loadTypesMap","nonRelativeModuleNameForTypingCache","renderPackageNameValidationFailure","validatePackageName","Arguments","Arguments2","ActionSet","ActionInvalidate","ActionPackageInstalled","EventTypesRegistry","EventBeginInstallTypes","EventEndInstallTypes","EventInitializationFailed","ActionWatchTypingLocations","hasArgument","argumentName","findArgument","nowString","getHours","getMinutes","getSeconds","getMilliseconds","GlobalCacheLocation","LogFile","EnableTelemetry","TypingSafeListLocation","TypesMapLocation","NpmLocation","ValidateDefaultNpmLocation","indentStr","indent2","stringifyIndented","cachedTyping","availableTypingVersions","safeListPath","typesMapPath","simpleMap","projectRootPath","safeList","packageNameToTypingLocation","unresolvedImports","typesRegistry","cachedTypingPaths","newTypingNames","filesToWatch","inferredTypings","addInferredTypings","possibleSearchDirs","searchDir","getTypingNames","disableFilenameBasedTypeAcquisition","getTypingNamesFromSourceFileNames","fileNames2","fromFileNames","cleanedTypingName","addInferredTyping","excludeTypingName","typing","registryEntry","typingLocation","typingName","typingNames","projectRootPath2","manifestName","modulesDirName","filesToWatch2","manifestPath","manifest","manifestTypingNames","devDependencies","optionalDependencies","packagesFolderPath","packageNames","dependencyManifestNames","manifestPath2","isScoped","normalizedFileName","manifest2","ownTypes","NameValidationResult2","maxPackageNameLength","validatePackageNameWorker","supportScopedPackage","scopeResult","isScopeName","encodeURIComponent","renderPackageNameValidationFailureWorker","ScriptSnapshot2","StringScriptSnapshot","getLength","getChangeRange","fromString","PackageJsonDependencyGroup2","PackageJsonAutoImportPreference2","LanguageServiceMode2","SemanticClassificationFormat2","OrganizeImportsMode2","CompletionTriggerKind2","InlayHintKind3","HighlightSpanKind2","IndentStyle3","SemicolonPreference2","newLineCharacter","indentSize","tabSize","convertTabsToSpaces","indentStyle","insertSpaceAfterConstructor","insertSpaceAfterCommaDelimiter","insertSpaceAfterSemicolonInForStatements","insertSpaceBeforeAndAfterBinaryOperators","insertSpaceAfterKeywordsInControlFlowStatements","insertSpaceAfterFunctionKeywordForAnonymousFunctions","insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis","insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets","insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces","insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces","insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces","insertSpaceBeforeFunctionParenthesis","placeOpenBraceOnNewLineForFunctions","placeOpenBraceOnNewLineForControlBlocks","semicolons","trimTrailingWhitespace","indentSwitchCase","SymbolDisplayPartKind2","CompletionInfoFlags2","OutliningSpanKind2","OutputFileType2","EndOfLineState2","TokenClass2","ScriptElementKind2","ScriptElementKindModifier2","ClassificationTypeNames2","ClassificationType2","SemanticMeaning2","getMeaningFromRightHandSideOfImportEquals","isTypeReference","isNamespaceReference","isQualifiedNameNamespaceReference","isLastClause","isPropertyAccessNamespaceReference","includeElementAccess","skipPastOuterExpressions","isCalleeWorker","selectExpressionOfCallOrNewExpressionOrDecorator","selectTagOfTaggedTemplateExpression","selectTagNameOfJsxOpeningLikeElement","calleeSelector","climbPastPropertyOrElementAccess","referenceNode","labelName","funcName","getKindOfVariableDeclaration","rightKind","tripleSlashDirectivePrefixRegex","getStart","end1","isCompletedNode","nodeEndsWith","hasChildOfKind","expectedLastToken","listItemIndex","syntaxList","isDefaultModifier2","isClassKeyword","isFunctionKeyword","ancestorTypeNode","getAncestorTypeNode","lastTypeNode","getAdjustedLocationForDeclaration","forRename","getAdjustedLocationForClass","defaultModifier","classKeyword","getAdjustedLocationForFunction","functionKeyword","getAdjustedLocationForImportDeclaration","onlyBinding","getAdjustedLocationForExportDeclaration","getAdjustedLocation","getAdjustedLocationForHeritageClause","includePrecedingTokenAtEndPosition","getTokenAtPositionWorker","allowPositionInLeadingTrivia","includeEndPosition","foundToken","getEnd","getFullStart","nodeContainsPosition","tokenAtPosition","isWhiteSpaceOnlyJsxText","find2","nodeHasTokens","excludeJsdoc","isNonWhitespaceToken","findRightmostChildNodeWithTokens","findRightmostToken","exclusiveStartPosition","parentKind","isInsideJsxElementTraversal","matchingTokenKind","closeTokenText","matchingTokenText","tokenFullStart","bestGuessIndex","nodeAtGuess","tokenKind","remainingMatchingTokens","called","nTypeArguments","typeArgumentCount","removeOptionality","isOptionalExpression","getConstructSignatures","getCallSignatures","tokenIn","remainingLessThanTokens","getRangeOfEnclosingComment","getWidth","areIntersectedTypesAvoidingStringReduction","isInReferenceCommentWorker","shouldBeReference","contextToken","replacementEnd","isTypeKeywordToken","snap","isTypeParameter","getConstraint","defaultImport","namedImports","quotePreference","QuotePreference6","firstModuleSpecifier","qp","escaped","typeOfPattern","spanContainsNode","blankLineBetween","importKindPredicate","existingImportStatements","isSorted","getOrganizeImportsStringComparerWithDetection","sortedNewImports","compareImportsOrRequireStatements","newImport","getImportDeclarationInsertionIndex","leadingTriviaOption","LeadingTriviaOption","Exclude","insertNodeBefore","prevImport","insertNodeAfter","lastExistingImport","insertNodesAfter","insertNodesAtTopOfFile","insertStatementsInNewFile","getChildAt","textSpan","sourceMapper","mapsTo","tryGetSourcePosition","documentSpan","newPosition","newEndPosition","originalTextSpan","contextSpan","originalContextSpan","contextSpanStart","contextSpanEnd","displayPartWriterCache","getDisplayPartWriter","getDisplayPartWriterWorker","absoluteMaximumLength","displayParts","resetWriter","unknownWrite","writeKind","finalText","writeIndent","indentString","symbolPart","displayPartKind","linkTextPart","linkPart","findLinkNameEnd","skipSeparatorFromLinkText","linkNamePart","separator","lineFeed2","formatSettings","writeDisplayParts","displayPartWriter","typechecker","isAliasSymbol","hasLeadingLineBreak","edits","renameFilename","preferLastLocation","lastPos","textChanges2","change","indexInTextChange","commentKind","getAddCommentsFunction","htnl","quoted","getStringIndexType","getNumberIndexType","caseClause","enclosingScope","typeIsAccessible","notAccessible","syntaxRequiresTrailingCommaOrSemicolonOrASI","syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI","syntaxRequiresTrailingModuleBlockOrSemicolonOrASI","syntaxRequiresTrailingSemicolonOrASI","syntaxMayBeASICandidate","contextAncestor","nodeIsASICandidate","getLastToken","withSemicolon","withoutSemicolon","tryIOAndConsumeErrors","toApply","startDirectory","currentConfigPath","dependencyKeys","dependencyMap","parseable","dependencyName","inGroups","packageJsons","getPackageJsonsVisibleToFile","packageJsonFileName","usesNodeCoreModules","ambientModuleCache","allowsImportingAmbientModule","moduleSpecifierResolutionHost","declaredModuleSpecifier","isAllowedCoreNodeModulesImport","declaringNodeModuleName","getNodeModulesPackageNameFromFileName","moduleSpecifierIsCoveredByPackageJson","getSourceFileInfo","importable","allowsImportingSpecifier","getNodeModuleRootSpecifier","fullSpecifier","isDiagnosticWithLocation","sortedFileDiagnostics","startPosition","endPosition","valueOrArray","preferCapitalized","getSymbolParentOrFail","inJS","forceCapitalize","lastCharWasValid","firstCharCode","haystack","needle","needleLength","decisionFromFile","shouldAutoDetectSemicolonPreference","shouldRemoveSemicolons","existingStrings","existingNumbers","existingBigInts","parsedBigInt","addValue","hasValue","preferRequire","syntaxModuleIndicator","moduleResolutionHost","ImportKind2","ExportKind3","exportInfoId","exportInfo","packages","usableByFileName","isUsableByFile","moduleFile","isFromPackageJson","nodeModulesPathParts","prevDeepestNodeModulesPath","nodeModulesPath","namedSymbol","getNamesForExportedSymbol","capitalizedName","capitalizedSymbolName","storedSymbol","storedModuleSymbol","ambientModuleName","moduleKey","rehydrateCachedInfo","parseKey","firstSpace","secondSpace","symbolNameLength","isNotShadowedByDeeperNodeModulesPackage","typingsCacheLocation","packageDeepestNodeModulesPath","releaseSymbols","onFileChanged","typeAcquisitionEnabled","fileIsGlobalOnly","ambientModuleDeclarationsAreEqual","oldFileStatementIndex","newFileStatementIndex","isMatchingModuleDeclaration","cachedSymbol","cachedModuleSymbol","getPackageJsonAutoImportProvider","toFile","toModule","packageJsonFilter","moduleSpecifierCache","useNodePrefix","fileContainsPackageImport","isBlockedByPackageJsonDependencies","globalTypingsCache","hasImportablePath","isImportablePath","fromPath","globalCachePath","toNodeModules","toNodeModulesParent","importInfo","setBlockedByPackageJsonDependencies","useAutoImportProvider","excludePatterns","autoImportFileExcludePatterns","getIsExcludedPatterns","forEachExternalModule","autoImportProvider","allSourceFiles","isExcluded","getIsExcluded","realpathsWithSymlinks","getCachedExportInfoMap","moduleCount","seenExports","defaultInfo","isImportableSymbol","defaultExport2","fromDeclaration","final","getEncodedLexicalClassifications","lexState","syntacticClassifierAbsent","lastNonTriviaToken","templateStack","pushTemplate","getPrefixFromLexState","endOfLineState","angleBracketStack","handleToken","pushEncodedClassification","classFromKind","getNewEndOfLineState","noRegexTable","lastTemplateStackToken","canFollow","keyword1","keyword2","getClassificationsForLine","convertClassificationsToResult","classifications","dense","lastEnd","whitespaceLength2","classification","convertClassification","whitespaceLength","finalLexState","lastOnTemplateStack","lastCharIndex","numBackslashes","isBinaryExpressionOperatorToken","isPrefixUnaryExpressionOperatorToken","convertClassificationsToSpans","checkForClassificationCancellation","classifySymbol","pushClassification","meaningAtPosition","hasValueSideModule","getClassificationTypeName","classificationType","spanStart","spanLength","triviaScanner","mergeConflictScanner","processElement","classifyComment","docCommentAndDiagnostics","classifyJSDocComment","docComment","pushCommentRange","processJSDocParameterTag","processJSDocTemplateTag","tryClassifyTripleSlashComment","tripleSlashXMLCommentRegEx","attributeRegex","attrText","attrPos","attrMatch","newAttrPos","classifyDisabledMergeCode","classifyDisabledCodeToken","classifyTokenType","tryClassifyNode","classifiedElementName","tryClassifyJsxElementName","classifyLeadingTriviaAndGetTokenStart","tokenWidth","externalCache","buckets","settingsOrHost","acquireDocumentWithKey","compilationSettings","scriptSnapshot","acquireOrUpdateDocument","updateDocumentWithKey","getDocumentRegistryEntry","bucketEntry","compilationSettingsOrHost","acquiring","oldBucketCount","keyWithMode","getDocumentRegistryBucketKeyWithMode","bucket","otherBucketKey","bucket2","bucketKey","getDocument","languageServiceRefCount","setBucketEntry","setDocument","scriptKindMap","releaseDocumentWithKey","acquireDocument","getKeyForCompilationSettings","updateDocument","releaseDocument","reportStats","bucketInfoArray","getBuckets","settings","oldFileOrDirPath","newFileOrDirPath","formatContext","oldToNew","newToOld","ChangeTracker","changeTracker","updateTsconfigFiles","configDir","jsonObjectLiteral","updatePaths","foundExactMatch","tryUpdateString","elementFileName","combinePathsSafe","replaceRangeWithText","createStringRange","forEachProperty","matchers","property2","propertyName2","pathsProperty","updateImports","allFiles","newFromOld","newImportFromPath","newImportFromDirectory","oldFromNew","oldImportFromPath","oldImportFromDirectory","importingSourceFileMoved","updateImportsWorker","oldAbsolute","newAbsolute","importedModuleSymbol","toImport","getSourceFileToImportFromResolved","getSourceFileToImport","newFileName","canonicalOldPath","getUpdatedPath","pathToUpdate","makeCorrespondingRelativeChange","a0","b0","a1","rel","pathA","pathB","combineNormal","oldFileName","getResolvedModuleWithFailedLookupLocationsFromCache","tryChange","tryChangeWithIgnoringPackageJsonExisting","tryChangeWithIgnoringPackageJson","updateRef","updateImport","importStringLiteral","DocumentHighlights3","getHighlightSpanForNode","aggregateOwnedThrowStatements","flatMapChildren","aggregateAllBreakAndContinueStatements","ownsBreakOrContinueStatement","actualOwner","getBreakOrContinueOwner","isLabeledBy","pushKeywordIf","keywordList","getLoopBreakContinueOccurrences","loopNode","keywords","getFirstToken","loopTokens","getBreakOrContinueStatementOccurrences","breakOrContinueStatement","getSwitchCaseDefaultOccurrences","getTryCatchFinallyOccurrences","getThrowOccurrences","throwStatement","getThrowStatementOwner","throwStatement2","getReturnOccurrences","returnStatement2","getAsyncAndAwaitOccurrences","traverseWithoutCrossingFunction","getDocumentHighlights","sourceFilesToSearch","highlightSpans","getSemanticDocumentHighlights","sourceFilesSet","referenceEntries","getReferenceEntriesForNode","toHighlightSpan","getSyntacticDocumentHighlights","getHighlightSpans","getIfElseOccurrences","getIfElseKeywords","elseKeyword","ifKeyword","shouldCombineElseAndIf","useParent","getFromAllDeclarations","getYieldOccurrences","getModifierOccurrences","getNodesToSearchForModifier","modifierFlag","getNodes4","PatternMatchKind2","createPatternMatch","isCaseSensitive","stringToWordSpans","dotSeparatedSegments","createSegment","totalTextChunk","createTextChunk","subWordTextChunks","breakPatternIntoTextChunks","getMatchForLastSegmentOfPattern","getFullMatch","patternContainsDots","candidateContainers","candidateMatch","matchSegment","betterMatch","getWordSpans","matchTextChunk","indexOfIgnoringCase","every2","valueChar","toLowerCase2","textLowerCase","isLowerCase","wordSpans","partStartsWith","isUpperCaseLetter","characterSpans","candidateParts","tryCamelCaseMatch","subWordTextChunk","compareMatches","candidateSpan","patternSpan","everyInRange","equalChars","chunkCharacterSpans","firstMatch","contiguous","currentCandidate","currentChunkSpan","candidatePart","gotOneMatchThisCandidate","chunkCharacterSpan","isLowerCaseLetter","isDigit2","isWordChar","wordStart","wordLength","breakIntoSpans","lastIsDigit","currentIsDigit","hasTransitionFromLowerToUpper","transitionFromLowerToUpper","hasTransitionFromUpperToLower","transitionFromUpperToLower","charIsPunctuation","isAllPunctuation","lastIsUpper","readImportFiles","detectJavaScriptImports","pragmaContext","importedFiles","ambientExternalModules","braceNesting","externalModule","getFileReference","recordModuleName","markAsExternalModuleIfTopLevel","tryConsumeDeclare","recordAmbientExternalModule","tryConsumeImport","tryConsumeRequireCall","tryConsumeExport","skipCurrentToken","allowTemplateLiterals","tryConsumeDefine","processImports","isLibFile","base64UrlRegExp","sourceFileLike","documentPositionMappers","newLoc","getDocumentPositionMapper2","tryGetGeneratedPosition","declarationPath","toLineColumnOffset","generatedFileName","sourceFileName","getOrCreateSourceFileLike","fileFromCache","createSourceFileLike","generatedFileLineInfo","readMapFile","mapFileName","base64Object","convertDocumentToSourceMapper","possibleMapLocations","originalMapFileName","mapFileName2","mapFileContents","visitedNestedConvertibleFunctions","containsTopLevelCommonjs","propertyAccessLeftHandSide","getErrorNodeFromCommonJsIndicator","canBeConvertedToClass","jsdocTypedefNodes","getJSDocTypedefNodes","jsdocTypedefNode","parameterShouldGetTypeFromJSDoc","addConvertToAsyncFunctionDiagnostics","isConvertibleFunction","hasReturnStatementWithPromiseHandler","getKeyFromNode","importNameForConvertToDefaultImport","resolvedFile","isPromiseHandler","hasSupportedNumberOfArguments","isFixablePromiseArgument","maxArguments","optionsRedundantWithVerbatimModuleSyntax","transpileOptions","transpileWorker","barebonesLibSourceFile","commandLineOptionsStringToEnum","barebonesLibContent","barebonesLibName","outputText","reportDiagnostics","getNavigateToItems","searchValue","maxResultCount","excludeDtsFiles","excludeLibFiles","patternMatcher","rawItems","singleCurrentFile","shouldExcludeFile","getNamedDeclarations","getItemsFromNamedDeclaration","compareNavigateToItems","createNavigateToItem","shouldKeepItem","fullMatch","getContainers","matchKind","importer","imported","tryAddSingleDeclarationName","pushLiteral","tryAddComputedPropertyName","i1","rawItem","kindModifiers","getNavigationBarItems","getNavigationTree","curCancellationToken","curSourceFile","trackedEs5Classes","whiteSpaceRegex","maxLength","parentsStack","trackedEs5ClassesStack","emptyChildItemArray","primaryNavBarMenuItems","primaryNavBarMenuItems2","recur","shouldAppearInPrimaryNavBarMenu","navigationBarNodeKind","isTopLevelFunctionDeclaration","item2","rootNavigationBarNode","convertToPrimaryNavBarMenuItem","reset","convertToTree","nodeText","cleanText","pushChild","additionalNodes","addChildrenRecursively","endNode","addLeafNode","emptyNavigationBarNode","addTrackedEs5Class","endNestedNodes","startNestedNodes","startNode","navNode","mergeChildren","sortChildren","addNodeWithRecursiveChild","addNodeWithRecursiveInitializer","isFunctionOrClassExpression","hasNavigationBarName","ctr","nameNode","isComputedProperty","getInteriorModule","prototypeAccess","defineCall","classNameIdentifier","targetFunction","nameToItems","itemsWithSameName","itemWithSameName","tryMerge","isEs5ClassMember","bIndex","tryMergeEs5Class","isPossibleConstructor","bAssignmentDeclarationKind","aAssignmentDeclarationKind","isSynthesized","lastANode","ctorFunction","bNode","shouldReallyMerge","isOwnChild","areSameModule","getFullyQualifiedModuleName","merge","par","compareChildren","child1","child2","tryGetName","getModuleName","getFunctionOrClassName","getItemName","getModifiers2","getSpans","nameSpan","getNodeSpan","childItems","convertToSecondaryNavBarMenuItem","n2","bolded","grayed","getCalledExpressionName","addExportsInOldFile","addImportsForMovedSymbols","addNewFileToTsconfig","addOrRemoveBracesToArrowFunction","ts_refactor_addOrRemoveBracesToArrowFunction_exports","addTargetFileImports","containsJsx","convertArrowFunctionOrFunctionExpression","ts_refactor_convertArrowFunctionOrFunctionExpression_exports","convertParamsToDestructuredObject","ts_refactor_convertParamsToDestructuredObject_exports","convertStringOrTemplateLiteral","ts_refactor_convertStringOrTemplateLiteral_exports","convertToOptionalChainExpression","ts_refactor_convertToOptionalChainExpression_exports","createNewFileName","doChangeNamedToNamespaceOrDefault","extractSymbol","ts_refactor_extractSymbol_exports","generateGetAccessorAndSetAccessor","ts_refactor_generateGetAccessorAndSetAccessor_exports","getApplicableRefactors","getEditsForRefactor","getExistingLocals","getIdentifierForNode","getNewStatementsAndRemoveFromOldFile","getStatementsToMove","getUsageInfo","inferFunctionReturnType","ts_refactor_inferFunctionReturnType_exports","isInImport","isRefactorErrorInfo","refactorKindBeginsWith","registerRefactor","refactors","includeInteractiveActions","isCancellationRequested","getAvailableActions","refactorName14","actionName2","interactiveRefactorArguments","getEditsForAction","refactorName","defaultToNamedAction","namedToDefaultAction","getInfo2","considerPartialSpans","exportingModuleSymbol","getExportingModuleSymbol","wasDefault","noSymbolError","vs","makeImportSpecifier","makeExportSpecifier","getRefactorActionsToConvertBetweenNamedAndDefaultExports","triggerReason","actions","provideRefactorNotApplicableReason","notApplicableReason","getRefactorEditsToConvertBetweenNamedAndDefaultExports","doChange","exportingSourceFile","changeExport","exportKeyword","Core","isSymbolReferencedInFile","deleteModifier","changeImports","eachExportReference","changeDefaultToNamedImport","deleteRange","insertNodeAtEndOfList","importTypeNode","changeNamedToDefaultImport","renameLocation","refactorName2","getImportConversionInfo","convertTo","getShouldUseDefault","isExportEqualsModule","getRightOfPropertyAccessOrQualifiedName","propertyAccessOrQualifiedName","toConvert","shouldUseDefault","toConvertSymbols","namedImport","preferredName","namespaceImportName","hasNamespaceNameConflict","eachSymbolReferenceInFile","neededNamedImports","newNamedImports","createImport","defaultImportName","getRefactorActionsToConvertBetweenNamedAndNamespacedImports","getRefactorEditsToConvertBetweenNamedAndNamespacedImports","doChange2","doChangeNamespaceToNamed","usedAsNamespaceOrDefault","nodesToReplace","conflictingNames","getLeftOfPropertyAccessOrQualifiedName","exportNameToImportName","importSpecifiers","refactorName3","extractToTypeAliasAction","extractToInterfaceAction","extractToTypeDefAction","getRangeToExtract","considerEmptySpans","isJS","isCursorRequest","getFirstTypeAt","currentNodes","overlappingRange","rangeContainsSkipTrivia","affectedTextRange","enclosingNode","getEnclosingNode","expandedFirstType","getExpandedSelectionNode","typeList","selection","collectTypeParameters","selectionArray","selectionRange","conditionalTypeNode","functionLikeNode","flattenTypeLiteralNodeReference","flattenedTypeMembers","getNodesToEdit","firstTypeNode","getRefactorActionsToExtractType","getRefactorEditsToExtractType","doTypeAliasChange","newTypeDeclaration","replaceNodeRange","trailingTriviaOption","TrailingTriviaOption","ExcludeWhitespace","doTypedefChange","insertNodeAt","doInterfaceChange","refactorNameForMoveToFile","moveToFileAction","toMove","importAdderForNewFile","importAdderForOldFile","prologueDirectives","useEsModuleSyntax","oldFileImportsFromTargetFile","deleteUnusedOldImports","toDelete","importAdder","forEachImportInStatement","forEachAliasDeclarationInImportOrRequire","removeExistingImport","unusedImportsFromOldFile","writeFixes","deleteMovedStatements","moved","afterLast","deleteNodeRangeExcludingEnd","ranges","updateImportsInOtherFiles","movedSymbols","moduleSpecifierFromImport","shouldMove","deleteUnusedImports","pathToTargetFileWithExtension","newModuleSpecifier","newImportDeclaration","filterImport","getNamespaceLikeImport","updateNamespaceLikeImport","targetFileImportsFromOldFile","oldImportsNeededByTargetFile","addExports","needExport","useEs6Exports","isTopLevelDeclarationStatement","isExported","forEachTopLevelDeclaration","addExport","addEs6Export","addCommonjsExport","getNamesToExportInCommonJS","moveStatementsToTargetFile","removedExports","targetExports","targetToSourceExports","topLevelDeclarations","updatedElements","isTopLevelDeclaration","deleteNode","lastReExport","insertNodesBefore","insertNodesAtEndOfFile","hasFixes","newFileNameWithExtension","newFileAbsolutePath","newFilePath","cfgObject","filesProp","insertNodeInListAfter","markSeenTop","nameOfTopLevelDeclaration","getTopLevelDeclarationStatement","addExportToChanges","oldImportId","oldImportNode","preferredNewNamespaceName","needUniqueName","toChange","newNamespaceName","updateNamespaceLikeImportNode","newNamespaceId","newModuleString","createRequireCall","importOrRequire","isValidTypeOnlyUseSite","addImportForNonExistentExport","isUnused","isNonVariableTopLevelDeclaration","keep","filterNamedBindings","newElements","filterBindingName","makeVariableStatement","insertExportModifier","makeUniqueFilename","proposedFilename","inDirectory","newFilename","inferNewFileName","importsFromNewFile","rangeToMove","getRangeToMove","startNodeIndex","overloadRangeToMove","getOverloadRangeToMove","endNodeIndex","endingOverloadRangeToMove","isAllowedStatementToMove","afterEndIndex","isPureImport","existingTargetLocals","enclosingRange","jsxNamespaceSymbol","getJsxNamespaceSymbol","containsJsx2","jsxNamespaceSymbol2","forEachReference","importedDeclaration","prevIsTypeOnly","unusedImport","onReference","forEachTopLevelDeclarationInBindingName","isVariableDeclarationInImport","em","lastDecl","statementsToMove","existingLocals","known","requested","importsToCopy","addVerbatimImport","addImportForModuleSymbol","addImportFromExportedSymbol","getRefactorActionsToMoveToFile","startNodeAncestor","endNodeAncestor","allowTextChangesInNewFiles","getRefactorEditsToMoveToFile","doChange3","isForNewFile","createImportAdder","refactorName4","refactorDescription","inlineVariableAction","getInliningInfo","tryWithReferenceToken","isDeclarationExported","getReferenceNodes","definition","cannotInline","isWriteAccessForReference","getReplacementExpression","replaceTemplateStringVariableWithLiteral","templateExpression","prevNode","closestStringIdentifierParent","refactorName5","description2","moveToNewFileAction","getRefactorActionsToMoveToNewFile","getRefactorEditsToMoveToNewFile","doChange4","refactorName6","refactorDescription2","functionOverloadAction","isConvertableSignatureDeclaration","getConvertableOverloadListAtPosition","containingDecl","signatureSymbol","kindOne","signatureDecls","returnOne","getRefactorEditsToConvertOverloadsToOneSignature","lastDeclaration","getNewParametersForCombinedSignature","signatureDeclarations","lastSig","convertSignatureParametersToTuple","convertParameterToNamedTupleMember","parameterDocComment","getDocumentationComment","newComment","getRefactorActionsToConvertOverloadsToOneSignature","refactorName7","refactorDescription3","addBracesAction","removeBracesAction","getConvertibleArrowFunctionAtPosition","considerFunctionBodies","addBraces","getRefactorEditsToRemoveFunctionBraces","actualExpression","getRefactorActionsToRemoveFunctionBraces","refactorName8","refactorDescription4","toAnonymousFunctionAction","toNamedFunctionAction","toArrowFunctionAction","containingThis","containsThis","checkThis","getFunctionInfo","tryGetFunctionFromVariableDeclaration","isSingleVariableDeclaration","isFunctionReferencedInFile","selectedVariableDeclaration","maybeFunc","convertToBlock","getRefactorEditsToConvertFunctionExpressions","getEditInfoForConvertToAnonymousFunction","newNode","variableInfo","getVariableInfo","variableDeclarationList","getEditInfoForConvertToNamedFunction","modifiersFlags","getEditInfoForConvertToArrowFunction","canBeConvertedToExpression","getRefactorActionsToConvertFunctionExpressions","possibleActions","refactorName9","refactorDescription5","toDestructuredAction","getSymbolForContextualType","getSymbol","entryToImportOrExport","entryToDeclaration","entryToFunctionCall","functionReference","callOrNewExpression","propertyAccessExpression","callOrNewExpression2","elementAccessExpression","entryToAccessExpression","entryToType","getFunctionDeclarationAtPosition","isTopLevelJSDoc","containingJSDoc","containingNonJSDoc","isValidFunctionDeclaration","isValidParameterNodeArray","getRefactorableParametersLength","hasThisParameter","paramDecl","isValidParameterDeclaration","hasNameOrDefault","isSingleImplementation","contextualSymbol","isValidVariableDeclaration","isValidMethodSignature","functionOrClassDeclaration","getRefactorableParameters","createNewArgument","functionArguments","createPropertyOrShorthandAssignment","getParameterName","restArguments","restProperty","createNewParameters","refactorableParameters","createBindingElementFromParameterDeclaration","objectParameterName","objectParameterType","createParameterTypeNode","createPropertySignatureFromParameterDeclaration","objectInitializer","objectParameter","newThisParameter","parameterType","getTypeNode3","paramDeclaration","getRefactorEditsToConvertParametersToDestructuredObject","groupedReferences","getGroupedReferences","functionNames","getFunctionNames","ctrKeyword","classNames","getClassNames","groupReferences","valid","classReferences","accessExpressions","typeUsages","groupedReferences2","functionCalls","functionSymbols","getSymbolTargetAtLocation","classSymbols","contextualSymbols","EntryKind","Span","doChange5","newFunctionDeclarationParams","replaceParameters","newArgument","IncludeAll","Include","declarationOrSignature","parameterDeclarations","replaceNodeRangeWithNodes","joiner","getRefactorActionsToConvertParametersToDestructuredObject","refactorName10","refactorDescription6","convertStringAction","getNodeOrParentOfParentheses","nestedBinary","getParentBinaryExpression","treeToArray","isValidConcatenation","getEditsForToTemplateLiteral","maybeBinary","nodesToTemplate","operators","copyOperatorComments","copyTrailingOperatorComments","copyCommentFromStringLiterals","copyCommentFromMultiNode","begin","headText","rawHeadText","headIndexes","concatConsecutiveString","noSubstitutionTemplateLiteral","getExpressionFromParenthesesOrExpression","subsequentText","rawSubsequentText","stringIndexes","copyExpressionComments","isLastSpan","getRawTextOfTemplate","templatePart","trailingCommentRanges","trailingRange","isNotEqualsOperator","current2","validOperators","hasString","nodes2","operators2","leftHasString","leftOperatorValid","currentOperatorValid","validOperators2","getRefactorEditsToConvertToTemplateString","getRefactorActionsToConvertToTemplateString","nodeIsStringLiteral","refactorInfo","indexes","escapeRawStringForTemplate","rightShaving","refactorName11","convertToOptionalChainExpressionMessage","toOptionalChainAction","isValidExpression","isValidExpressionOrStatement","isValidStatement","getInfo3","forEmptySpan","startToken","endToken","adjustedSpan","getValidParentNodeOfEmptySpan","getValidParentNodeContainingSpan","getExpression","getConditionalInfo","finalExpression","getFinalExpressionInChain","getMatchingStart","occurrences","getOccurrencesInExpression","getBinaryInfo","matchTo","finalMatch","subchain","chainStartsWith","getTextOfChainNode","convertOccurrences","lastOccurrence","isOccurrence","getRefactorEditsToConvertToOptionalChain","doChange6","_actionName","firstOccurrence","convertedChain","getRefactorActionsToConvertToOptionalChain","Messages","RangeFacts","getRangeToExtract2","getRefactorActionsToExtractSymbol","getRefactorEditsToExtractSymbol","refactorName12","extractConstantAction","extractFunctionAction","requestedRefactor","rangeToExtract","targetRange","getStringError","extractions","getPossibleExtractions","scopes","readsAndWrites","functionErrorsPerScope","constantErrorsPerScope","getPossibleExtractionsWorker","functionDescriptionPart","getDescriptionForFunctionInScope","constantDescriptionPart","getDescriptionForConstantInScope","scopeDescription","getDescriptionForFunctionLikeDeclaration","getDescriptionForClassLikeDeclaration","getDescriptionForModuleLikeDeclaration","functionDescription","constantDescription","functionExtraction","constantExtraction","functionActions","usedFunctionNames","innermostErrorFunctionAction","constantActions","usedConstantNames","innermostErrorConstantAction","parsedFunctionIndexMatch","getFunctionExtractionAtIndex","requestedChangesIndex","usagesPerScope","exposedVariableDeclarations","extractFunctionInScope","usages","usagesInScope","typeParameterUsages","substitutions","functionNameText","callArguments","writes","typeToAutoImportableTypeNode","typeParametersAndDeclarations","getFirstDeclarationBeforePosition","compareTypesByDeclarationOrder","callTypeArguments","returnValueProperty","transformFunctionBody","hasReturn2","hasWritesOrVariableDeclarations","ignoreReturns","rewrittenStatements","getPropertyAssignmentsForWritesAndVariableDeclarations","oldIgnoreReturns","newFunction","callThis","thisNode","fromContext","nodeToInsertBefore","getNodeToInsertFunctionBefore","minPos","getStatementsOrClassElements","isReadonlyArray","insertNodeAtEndOfScope","newNodes","getCalledExpression","isInJSXContent","commonNodeFlags","sawExplicitType","variableType","typeLiteral","getTypeDeepCloneUnionUndefined","replaceNodeWithNodes","getChanges","withoutParens","parsedConstantIndexMatch","getConstantExtractionAtIndex","extractConstantInScope","rangeFacts","localNameText","transformConstantInitializer","transformFunctionInitializerAndType","newVariable","localReference","getNodeToInsertPropertyBefore","maxPos","prevMember","oldVariableDeclaration","getContainingVariableDeclarationIfInList","isScope","newVariableStatement","getNodeToInsertConstantBefore","prevScope","insertNodeAtTopOfFile","variableType2","functionSignature","getTypeParameters","hasAny","getReturnType","firstParameter","Messages2","createMessage","cannotExtractRange","cannotExtractImport","cannotExtractSuper","cannotExtractJSDoc","cannotExtractEmpty","expressionExpected","uselessConstantType","statementOrExpressionExpected","cannotExtractRangeContainingConditionalBreakOrContinueStatements","cannotExtractRangeContainingConditionalReturnStatement","cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange","cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators","typeWillNotBeVisibleInTheNewScope","functionWillNotBeVisibleInTheNewScope","cannotExtractIdentifier","cannotExtractExportedEntity","cannotWriteInExpression","cannotExtractReadonlyPropertyInitializerOutsideConstructor","cannotExtractAmbientBlock","cannotAccessVariablesFromNestedScopes","cannotExtractToJSClass","cannotExtractToExpressionArrowFunction","cannotExtractFunctionsContainingThisToMethod","RangeFacts2","invoked","cursorRequest","getAdjustedSpanFromNodes","getExtractableParent","isExtractableExpression","refineNode","lastInitializer","numInitializers","checkRootNode","getStatementOrExpressionRange","nodeToCheck","PermittedJumps","PermittedJumps2","isStringLiteralJsxAttribute","checkForStaticContext","seenLabels","permittedJumps","containingClass2","savedPermittedJumps","collectEnclosingScopes","containingFunction","enclosingTextRange","getEnclosingTextRange","collectReadsAndWrites","allTypeParameterUsages","substitutionsPerScope","visibleDeclarationsInExtractedRange","exposedVariableSymbolSet","firstExposedNonVariableDeclaration","expressionDiagnostic","constantErrors","seenUsages","unmodifiedNode","inGenericContext","isInGenericContext","collectUsages","recordTypeParameterUsages","seenTypeParameterUsages","typeParameterDecl","checkForUsedDeclarations","scopeUsages","readonlyClassPropertyWrite","hasWrite","symbolWalker","visitedType","valueUsage","recordUsage","isTypeNode2","recordUsagebySymbol","isTypeName","getSymbolReferencedByIdentifier","lastUsage","perScope","getDeclarations","declInFile","tryReplaceWithQualifiedNameOrPropertyAccess","idString","scopeDecl","declaration1","variableAssignments","writeAssignments","w","actionName","actionDescription","generateGetSetAction","getRefactorActionsToGenerateGetAndSetAccessors","getAccessorConvertiblePropertyAtPosition","generateAccessorFromProperty","nameNeedRename","renameAccessor","accessorName","refactorName13","refactorDescription7","inferReturnTypeAction","getInfo4","isConvertibleDeclaration","typePredicateTypeNode","getRefactorEditsToInferReturnType","doChange7","closeParen","needParens","getRefactorActionsToInferReturnType","TokenEncodingConsts","TokenEncodingConsts2","TokenType","TokenType2","TokenModifier","TokenModifier2","getSemanticClassifications2","getEncodedSemanticClassifications2","getSemanticTokens","resultTokens","collectTokens","collector","inJSXElement","prevInJSXElement","inImportClause","typeIdx","classifySymbol2","getDeclarationForBindingElement","tokenFromDeclarationMapping","modifierSet","isRightSideOfQualifiedNameOrPropertyAccess2","reclassifyByType","isExpressionInCallExpression","isLocalDeclaration","createNode","NodeObject","IdentifierObject","PrivateIdentifierObject","TokenObject","assertHasRealPosition","includeJsDocComment","getLeadingTriviaWidth","getFullText","getChildCount","createChildren","processNode","addSyntheticNodes","processNodes","cbNodeArray","textPos","TokenOrIdentifierObject","SymbolObject","getEscapedName","documentationComment","labelDecl","getContextualDocumentationComment","contextualGetAccessorDocumentationComment","contextualSetAccessorDocumentationComment","getJsDocTags","getJsDocTagsOfDeclarations","getContextualJsDocTags","contextualGetAccessorTags","contextualSetAccessorTags","TypeObject","getApparentProperties","isClassOrInterface","getDefault","isUnionOrIntersection","isLiteral","isNumberLiteral","isIndexType","SignatureObject","getDeclaration","getParameters","getTypeParameterAtPosition","jsDocTags","hasJSDocInheritDocTag","getJsDocTagsFromDeclarations","inheritedTags","findBaseOfDeclaration","getJsDocCommentsFromDeclarations","inheritedDocs","classOrInterfaceDeclaration","superTypeNode","SourceFileObject","getLineEndOfPosition","lastCharPos","fullText","namedDeclarations","computeNamedDeclarations","SourceMapSourceObject","optionsAsMap","allPropertiesAreCamelCased","isCamelCase","displayPart2","getSupportedErrorCodes","SyntaxTreeCache","getCurrentSourceFile","getScriptSnapshot","getScriptVersion","currentFileName","currentFileVersion","editRange","currentFileScriptSnapshot","setSourceFileFields","scriptTargetOrOptions","setNodeParents","changedText","nameTable","NoopCancellationToken","CancellationTokenObject","hostCancellationToken","throttleWaitMilliseconds","lastCancellationCheckTime","invalidOperationsInPartialSemanticMode","invalidOperationsInSyntacticMode","documentRegistry","syntaxOnlyOrLanguageServiceMode","languageServiceMode","syntaxTreeCache","lastProjectVersion","lastTypesRootVersion","getCancellationToken","getLocalizedDiagnosticMessages","getValidSourceFile","ProgramFiles","synchronizeHostData","updateFromProject","updateFromProjectInProgress","synchronizeHostDataWorker","getProjectVersion","hostProjectVersion","typeRootsVersion","getTypeRootsVersion","getScriptFileNames","newSettings","parsedCommandLines","getOrCreateSourceFile","getOrCreateSourceFileByPath","setCompilerHost","parseConfigHost","documentRegistryBucketKey","releasedScriptKinds","getParsedCommandLineOfConfigFileUsingSourceFile","releaseOldSourceFile","oldSettingsKey","newSourceFileByResolvedPath","scriptVersion","cleanupSemanticCache","getNodesForSpan","chooseOverlappingNodes","nodeOverlapsWithSpan","spanEnd","addSourceElement","chooseOverlappingBlockLike","childResult","stmts","chooseOverlappingClassLike","overlaps","getReferencesWorker2","FindReferencesUse","findReferenceOrRenameEntries","braceMatching","applySingleCodeActionCommand","installPackage","getLinesForRange","toggleLineComment","insertComment","isCommenting","leftMostPosition","lineTextStarts","firstNonWhitespaceCharacterRegex","isJsx","openComment","regExec","lineTextStart","toggleMultilineComment","isInsideJsx","hasComment","positions","openMultiline","closeMultiline","openMultilineRegex","closeMultilineRegex","newPos","firstPos","isUnclosedTag","isUnclosedFragment","getRefactorContext","positionOrRange","formatOptions","getFormatContext","ls","declarationDiagnostics","getRegionSemanticDiagnostics","getNodesForRanges","nodesForSpan","checkedSpans","getCompilerOptionsDiagnostics","getSyntacticClassifications2","getSemanticClassifications3","getEncodedSyntacticClassifications2","getEncodedSemanticClassifications3","getCompletionsAtPosition","getCompletionsAtPosition2","formattingSettings","fullPreferences","includeCompletionsForModuleExports","includeExternalModuleExports","includeCompletionsWithInsertText","includeInsertTextCompletions","triggerCharacter","triggerKind","includeSymbol","getCompletionEntryDetails","getCompletionEntryDetails2","formattingOptions","getCompletionEntrySymbol","getCompletionEntrySymbol2","getSignatureHelpItems","getSignatureHelpItems2","getQuickInfoAtPosition","nodeForQuickInfo","getNodeForQuickInfo","getSymbolAtLocationForQuickInfo","shouldGetType","documentation","symbolKind","canIncreaseVerbosityLevel","getSymbolDisplayPartsDocumentationAndSymbolKind","getSymbolModifiers","getDefinitionAtPosition","getDefinitionAtPosition2","searchOtherFilesOnly","stopAtAlias","getDefinitionAndBoundSpan","getDefinitionAndBoundSpan2","getImplementationAtPosition","getImplementationsAtPosition","getTypeDefinitionAtPosition","getTypeDefinitionAtPosition2","getReferencesAtPosition","References","toReferenceEntry","findReferences","findReferencedSymbols","getFileReferences","getReferencesForFileName","filesToSearch","getNameOrDottedNameSpan","_endPos","nodeForStartPos","getBreakpointStatementAtPosition","spanInSourceFileAtLocation","getNavigateToItems2","getRenameInfo","getRenameInfo2","getSmartSelectionRange","getSmartSelectionRange2","findRenameLocations","findInStrings","findInComments","nodeIsEligibleForRename","toContextSpan","providePrefixAndSuffixTextForRename","originalNode","toRenameLocation","getNavigationBarItems2","getNavigationTree2","getOutliningSpans","collectElements","getTodoComments","descriptors","isNodeModulesFile","regExp","getTodoCommentsRegExp","preamble","escapeRegExp","matchArray","firstDescriptorCaptureIndex","matchPosition","isLetterOrDigit","getBraceMatchingAtPosition","getIndentationAtPosition","editorOptions","SmartIndenter","getIndentation","getFormattingEditsForRange","formatSelection","getFormattingEditsForDocument","formatDocument","getFormattingEditsAfterKeystroke","formatOnOpeningCurly","formatOnClosingCurly","formatOnSemicolon","formatOnEnter","getDocCommentTemplateAtPosition","getDocCommentTemplateAtPosition2","isValidBraceCompletionAtPosition","openingBrace","getJsxClosingTagAtPosition","getLinkedEditingRangeAtPosition","jsxTagWordPattern","openFragment","closeFragment","openPos","closePos","wordPattern","openTag","closeTag","openTagNameStart","openTagNameEnd","closeTagNameStart","closeTagNameEnd","getSpanOfEnclosingComment","onlyMultiLine","getCodeFixesAtPosition","errorCodes68","errorCode","getFixes","getCombinedCodeFix","fixId56","getAllFixes","fixId","applyCodeActionCommand","actionOrFormatSettingsOrUndefined","organizeImports","organizeImports2","skipDestructiveCodeActions","getEditsForFileRename2","oldFilePath","getEmitOutput","getNonBoundSourceFile","getAutoImportProvider","updateIsDefinitionOfReferencedSymbols","referencedSymbols","knownSymbolSpans","getSymbolForProgram","referencedSymbol","refNode","getNodeForSpan","mappedSpan","isDeclarationOfSymbol","isDefinition","docSpan","rawNode","getAdjustedNode","getApplicableRefactors2","getEditsForRefactor2","getMoveToRefactoringFileSuggestions","toMoveContainsJsx","fileNameExtension","clearSourceMapperCache","prepareCallHierarchy","resolveCallHierarchyDeclaration","createCallHierarchyItem","provideCallHierarchyIncomingCalls","getIncomingCalls","provideCallHierarchyOutgoingCalls","getOutgoingCalls","commentSelection","uncommentSelection","provideInlayHints","provideInlayHints2","getInlayHintsContext","preparePasteEditsForFile","copiedTextRange","preparePasteEdits","getPasteEdits","pasteEditsProvider","pastedText","pasteLocations","copiedFrom","mapCode","mapCode2","focusLocations","initializeNameTable","literalIsName","isArgumentOfElementAccessExpression","getContainingObjectLiteralElementWorker","unionSymbolOk","discriminatedPropertySymbols","getServicesObjectAllocator","tokenAtLocation","lineOfPosition","spanInNode","textSpanEndingAtNextToken","previousTokenToFindNextEndToken","spanInNodeIfStartsOnSameLine","otherwiseOnNode","spanInPreviousNode","spanInNextNode","spanInVariableDeclaration","spanInParameterDeclaration","spanInBindingPattern","canHaveSpanInParameterDeclaration","spanInFunctionDeclaration","canFunctionHaveSpanInWholeDeclaration","spanInFunctionBlock","nodeForSpanInBlock","spanInBlock","spanInForStatement","spanInInitializerOfForLike","spanInNodeArray","spanInOpenBraceToken","spanInCloseBraceToken","lastClause","spanInCloseBracketToken","spanInOpenParenToken","spanInCloseParenToken","spanInColonToken","spanInGreaterThanOrLessThanToken","spanInWhileKeyword","spanInOfKeyword","spanInArrayLiteralOrObjectLiteralDestructuringPattern","textSpanFromVariableDeclaration","forLikeStatement","firstBindingElement","isVariableLike2","isAssignedExpression","isPossibleCallHierarchyDeclaration","isValidCallHierarchyDeclaration","isNamedExpression","getCallHierarchyDeclarationReferenceNode","isDefaultModifier3","getSymbolOfCallHierarchyDeclaration","findImplementation","findAllInitialDeclarations","sortedDeclarations","findImplementationOrAllInitialDeclarations","followingSymbol","getCallHierarchyItemName","getCallHierarchItemContainerName","selectionSpan","isDefined","convertEntryToCallSite","Node","getCallSiteGroupKey","convertCallSiteGroupToIncomingCall","createCallHierarchyIncomingCall","fromSpans","collectCallSites","callSites","collect","createCallSiteCollector","recordCallSite","collectCallSitesOfSourceFile","collectCallSitesOfModuleDeclaration","collectCallSitesOfFunctionLikeDeclaration","collectCallSitesOfClassLikeDeclaration","heritage","collectCallSitesOfClassStaticBlockDeclaration","convertCallSiteGroupToOutgoingCall","createCallHierarchyOutgoingCall","v2020","ts_classifier_v2020_exports","PreserveOptionalFlags","addNewNodeForMemberSymbol","codeFixAll","createCodeFixAction","createCodeFixActionMaybeFixAll","createCodeFixActionWithoutFixAll","createCombinedCodeActions","createFileTextChanges","createImportSpecifierResolver","createMissingMemberNodes","createSignatureDeclarationFromCallExpression","createSignatureDeclarationFromSignature","createStubbedBody","eachDiagnostic","findAncestorMatchingSpan","getImportCompletionAction","getImportKind","getNoopSymbolTrackerWithResolver","getPromoteTypeOnlyCompletionAction","importFixName","importSymbols","registerCodeFix","setJsonCompilerOptionValue","setJsonCompilerOptionValues","tryGetAutoImportableReferenceFromTypeNode","typeNodeToAutoImportableTypeNode","typePredicateToAutoImportableTypeNode","typeToMinimizedReferenceType","errorCodeToFixesArray","errorCodeToFixes","fixIdToRegistration","fixName8","createCodeFixActionWorker","fixAllDescription","command","fixName","commands","errorCodes","fixIds","getCodeActions","removeFixIdIfFixAllUnavailable","registration","maybeFixableDiagnostics","fixAllUnavailable","getAllCodeActions","makeChange","getAssertion","getCodeActionsToAddConvertToUnknownForNonOverlappingTypes","getCodeActionsToAddEmptyExportDeclaration","changes2","fixId2","errorCodes2","getFix","trackChanges","fixedDeclarations","makeChange2","insertionSite","cloneWithModifier","getFixableErrorSpanDeclaration","getCodeActionsToAddMissingAsync","getIsMatchingAsyncError","fixId3","propertyAccessCode","callableConstructableErrorCodes","errorCodes3","getAwaitErrorSpanExpression","isMissingAwaitError","isInsideAwaitableBody","getDeclarationSiteFix","awaitableInitializers","findAwaitableInitializers","getIdentifiersFromErrorSpanExpression","isCompleteFix","sides","symbolReferenceIsAlsoMissingAwait","needsSecondPassForFixAll","makeChange3","getUseSiteFix","diagnostic2","asyncIter","forOf","insertLeadingSemicolonIfNeeded","beforeNode","precedingToken","insertText","getCodeActionsToAddMissingAwait","fixId4","errorCodes4","makeChange4","fixedNodes","isPossiblyPartOfDestructuring","applyChange","arrayElementCouldBeVariableDeclaration","commaExpression","isPossiblyPartOfCommaSeperatedInitializer","expressionCouldBeVariableDeclaration","insertModifierBefore","getCodeActionsToAddMissingConst","fixId5","errorCodes5","makeChange5","getCodeActionsToAddMissingDeclareOnProperty","fixId6","errorCodes6","makeChange6","getCodeActionsToAddMissingInvocationForDecorator","fixId7","errorCodes7","makeChange7","useSingleQuotes","canUseImportMode","getCodeActionsToAddMissingResolutionModeImportAttribute","fixId8","errorCodes8","makeChange8","nextParam","tryGetNextParam","replaceRange","getCodeActionsToAddNameToNamelessParameter","addOptionalPropertyUndefined","getSourceTarget","parentTarget","getPropertiesToAdd","sourceTarget","shouldUseParentTypeOfProperty","addUndefinedToOptionalProperty","fixId9","errorCodes10","isDeclarationWithType","hasUsableJSDoc","doChange8","insertTypeParameters","tryInsertTypeAnnotation","transformJSDocType","transformJSDocOptionalType","transformJSDocNullableType","transformJSDocVariadicType","transformJSDocFunctionType","transformJSDocParameter","transformJSDocTypeReference","transformJSDocIndexSignature","indexSignature","transformJSDocTypeLiteral","isRest","dotdotdot","fixId10","errorCodes11","doChange9","ctorSymbol","ctorDeclaration","createClassFromFunction","memberElements","createClassElementsFromSymbol","getModifierKindFromSource","createClassFromVariableDeclaration","createClassElement","prototypeAssignment","isConstructorAssignment","memberDeclaration","assignmentBinaryExpression","assignmentExpr","shouldConvertDeclaration","_target","nodeToDelete","tryGetPropertyName","createFunctionLikeExpressionMember","createFunctionExpressionMember","fullModifiers","createArrowFunctionExpressionMember","arrowFunction","arrowFunctionBody","bodyBlock","fixId11","errorCodes12","codeActionSucceeded","convertToAsyncFunction","functionToConvert","synthNamesMap","setOfExpressionsToReturn","getAllPromiseExpressionsToReturn","isPromiseReturningCallExpression","isPromiseTypedExpression","functionToConvertRenamed","renameCollidingVarNames","nodeToRename","identsToRenameMap","collidingSymbolMap","lastCallSignature","getLastCallSignature","symbolIdString","collidingSymbols","prevSymbol","getNewNameIfConflict","createSynthIdentifier","ident","renameInfo","returnStatements","getReturnStatementsWithPromiseHandlers","ret","insertModifierAt","transformExpression","hasFailed","isReferenceToType","getExplicitPromisedTypeOfPromiseReturningCallExpression","originalNames","numVarsSameName","silentFail","returnContextNode","hasContinuation","continuationArgName","transformThen","onFulfilled","onRejected","isNullOrUndefined2","transformCatch","inputArgName","getArgBindingName","inlinedLeftHandSide","inlinedCallback","transformCallbackArgument","transformFinally","onFinally","possibleNameForVarDecl","getPossibleNameForVarDecl","finishCatchOrFinallyTransform","transformPromiseExpressionOfPropertyAccess","shouldReturn","createVariableOrAssignmentOrExpressionStatement","isSynthIdentifier","newSynthName","createUniqueSynthName","prevArgName","declareSynthIdentifier","varDeclIdentifier","typeArray","unionTypeNode","isSynthBindingPattern","declareSynthBindingPattern","declareSynthBindingName","rightHandSide","isEmptyBindingName","hasBeenDeclared","referenceSynthIdentifier","maybeAnnotateAndReturn","expressionToReturn","synthCall","varDeclOrAssignment","funcBody","refactoredStmts","seenReturnStatement","transformReturnStatementWithFixablePromiseHandler","possiblyAwaitedRightHandSide","getPossiblyAwaitedRightHandSide","removeReturns","possiblyAwaitedExpression","inlinedStatements","transformedStatement","innerRetStmt","innerCbBody","funcNode","getMappedBindingNameOrDefault","getMapEntryOrDefault","createSynthBindingPattern","getOriginalNode2","hasBeenReferenced","synthId","synthPattern","fixImportOfModuleExports","exportingFile","forEachExportReference","convertStatement","useSitesToUnqualify","convertVariableStatement","convertAssignment","tryChangeModuleExportsObject","convertExportsDotXEquals_replaceNode","exportConst","functionExpressionToDeclaration","classExpressionToDeclaration","additionalModifiers","replaceImportUseSites","makeConst","convertReExportAll","reExported","reExportDefault","reExportStar","convertNamedExport","makeExportDeclaration","convertExportsPropertyAssignment","insertName","semi","foundImport","convertedImports","convertSingleImport","makeImportSpecifier2","makeUniqueName","convertSingleIdentifierImport","nameSymbol","namedBindingsNames","needDefaultImport","importDefaultName","idName","convertPropertyAccessImport","makeSingleImport","combinedUseSites","newImports","nodeOrNodes","additional","collectFreeIdentifiers","forEachFreeIdentifier","isFreeIdentifier","moduleExportsChangedToDefault","convertFileToEsModule","collectExportRenames","convertExportsAccesses","isAssignmentLhs","newUseSites","moduleExportsChanged","fixId12","errorCodes13","getQualifiedName","doChange10","rightText","errorCodes14","fixId13","getExportSpecifierForDiagnosticSpan","fixSingleExportDeclaration","typeExportSpecifiers","getTypeExportSpecifiers","originExportSpecifier","valueExportDeclaration","typeExportDeclaration","getCodeActionsToConvertToTypeOnlyExport","getAllCodeActionsToConvertToTypeOnlyExport","fixedExportDeclarations","errorCodes15","fixId14","getDeclaration2","canConvertImportDeclarationForSpecifier","nonTypeOnlySpecifiers","doChange11","newNamedBindings","getCodeActionsToConvertToTypeOnlyImport","importDeclarationChanges","mainAction","getAllCodeActionsToConvertToTypeOnlyImport","fixedImportDeclarations","errorDeclaration","fixId15","errorCodes16","doChange12","fixAll","createDeclaration","createInterfaceForTypeLiteral","propertySignatures","createSignatureFromTypeLiteral","createTypeAliasForTypeExpression","commentNode","leftSibling","rightSibling","getLeftAndRightSiblings","typedefNode","maxChildIndex","currentNodeIndex","findEndOfTextBetween","getPropertyName","fixId16","errorCodes17","getInfo5","doChange13","getCodeActionsToConvertLiteralTypeToMappedType","errorCodes18","fixId17","getClass","symbolPointsToNonPrivateMember","addMissingDeclarations","implementedTypeNode","maybeHeritageClauseSymbol","getHeritageClauseSymbolTable","heritageClauseNode","heritageClauseType","heritageClauseTypeSymbols","implementedType","nonPrivateAndNotExistedInHeritageClauseMembers","createMissingIndexSignatureDeclaration","indexInfoOfKind","insertInterfaceMemberNode","newElement","insertMemberAtStart","seenClassDeclarations","importFixId","errorCodes19","createImportAdderWorker","addToNamespace","importType","addToExisting","removeExisting","verbatimImports","addImportFromDiagnostic","getFixInfos","addImport","referenceImport","getAllExportInfoForSymbol","useRequire","shouldUseRequire","fix","getImportFixForSymbol","addAsTypeOnly","errorIdentifierText","symbolAlias","moduleSpecifierResult","getAddAsTypeOnly","importKind","existingFix","moduleSpecifierKind","oldFileQuotePreference","importSpecifiersToRemoveWhileAdding","newDeclarations","addNamespaceQualifier","addImportType","importDeclarationsWithRemovals","variableDeclarationsWithRemovals","emptyImportDeclarations","emptyVariableDeclarations","namedBindingsToDelete","importClauseOrBindingPattern","doAddExistingFix","namespaceLikeImport","getNewRequires","getNewImports","getCombinedVerbatimImports","addImportForUnresolvedIdentifier","symbolToken","useAutoImportProvider2","getFixInfosWithoutDiagnostic","getFixesInfoForNonUMDImport","packageJsonImportFilter","sortFixInfo","exportingFileName","exportedMeanings","isImportUsageValidAsTypeOnly","fixes","getImportFixes","futureExportingSourceFile","prevTypeOnly","reduceAddAsTypeOnlyValues","getNewImportEntry","typeOnlyKey","newImportsKey","nonTypeOnlyKey","typeOnlyEntry","nonTypeOnlyEntry","newEntry","prevValue2","topLevelTypeOnly","importDeclarations","requireStatements","importMap","createExistingImportMap","getModuleSpecifierForBestExportInfo","fromCacheOnly","computedWithoutCacheCount","getBestFix","exportMapKey","isJsxTagName","exportInfos","getSingleExportInfoForSymbol","codeAction","codeFixActionToCodeAction","codeActionForFix","getSymbolNamesToImport","getTypeOnlyPromotionFix","includeSymbolNameInDescription","getChecker","createGetChecker","isFileExcluded","mergedModuleSymbol","moduleSymbolExcluded","mainProgramInfo","getInfoWithChecker","usagePosition","existingImports","getImportsForExportInfo","useNamespace","tryUseExistingNamespaceImport","namespacePrefix","getNamespaceLikeImportText","tryAddToExistingImport","existingImport","getAddToExistingImportFix","getFixesForAddImport","existingDeclaration","newImportInfoFromExistingSpecifier","getNewImportFixes","rejectNodeModulesRelativePaths","getModuleSpecifiers2","exportInfo2","importedSymbolHasValueMeaning","isReExport","qualification","isForNewImportDeclaration","matchingDeclarations","otherFile","getFixesInfoForUMDImport","umdSymbol","getUmdSymbol","_toPath","isJsxNamespaceFix","compareModuleSpecifiers","compareModuleSpecifierRelativity","compareNodeCoreModuleSpecifiers","isFixPossiblyReExportingImportingFile","isIndexFileName","forceImportKeyword","getExportEqualsImportKind","allowSyntheticDefaults","getUmdImportKind","getExportInfos","currentTokenMeaning","originalSymbolToExportInfos","getModuleSpecifierResolutionHost","addSymbol","symbolFlagsHaveMeaning","exportSymbolWithIdenticalName","typeOnlyAliasDeclaration","needsJsxNamespaceFix","codeActionForFixWorker","getImportTypePrefix","moduleSpecifierWithoutQuotes","promotedDeclaration","promoteFromTypeOnly","convertExistingToTypeOnly","newSpecifier","specifierComparer","getNamedImportSpecifierComparerWithDetection","getImportSpecifierInsertionIndex","insertImportSpecifierAtIndex","promoteImportClause","changedExtension","getModuleSpecifierText","removeExistingImportSpecifiers","addElementToBindingPattern","promoteFromTypeOnly2","existingSpecifiers","newSpecifiers","shouldUseTypeOnly","transformedExistingSpecifiers","namedImports2","needsTypeOnly","preferTypeOnlyAutoImports","quotedModuleSpecifier","createConstEqualsRequireDeclaration","fixId18","errorCodes20","getInfo6","tryGetConstraintType","tryGetConstraintFromDiagnosticMessage","addMissingConstraint","fixAddOverrideId","fixRemoveOverrideId","errorCodes21","errorCodeFixIdMap","descriptions","fixAllDescriptions","dispatchChanges","doAddOverrideModifierChange","findContainerClassElementLike","addJSDocTags","staticModifier","abstractModifier","accessibilityModifier","modifierPos","doRemoveOverrideModifierChange","filterJSDocTags","overrideModifier","isClassElementLikeHasJSDoc","getCodeActionsToFixOverrideModifierIssues","fixId19","errorCodes22","doChange14","getPropertyAccessExpression","fixId20","errorCodes23","doChange15","fnKeyword","getCodeActionsToFixImplicitThis","fixId21","errorCodes24","getInfo7","getNodeOfSymbol","doChanges","updateExport","createExport","tryGetExportDeclaration","namedExports","allowTypeModifier","createExportSpecifiers","doChange16","typeOnlyExports","fixId22","getCodeActionsToFixIncorrectNamedTupleSyntax","namedTupleMember","getNamedTupleMember","doChange17","sawOptional","sawRest","fixId23","errorCodes26","getInfo8","suggestedSymbol","receiverType","resolvedSourceFile","getResolvedSourceFileFromImportDeclaration","baseDeclaration","convertSemanticMeaningToSymbolFlags","doChange18","valDecl","fixId24","fixIdAddReturnStatement","fixRemoveBracesFromArrowFunctionBody","fixIdWrapTheBlockWithParen","errorCodes27","createObjectTypeFromLabeledExpression","getFixInfo","expectType","checkFixedAssignableTo","commentSource","firstBlockStatement","newSig","getInfo9","getVariableLikeInitializer","addReturnStatement","probablyNeedSemi","removeBlockBodyBrace","withParen","newBody","wrapBlockWithParen","getActionForfixAddReturnStatement","getActionForfixWrapTheBlockWithParen","getCodeActionsToCorrectReturnValue","getActionForFixRemoveBracesFromArrowFunctionBody","fixMissingMember","fixMissingProperties","fixMissingAttributes","fixMissingFunctionDeclaration","errorCodes28","getInfo10","getUnmatchedAttributes","attrsType","targetProps","findScope","leftExpressionType","moduleDeclarationSourceFile","makeStatic","declSourceFile","isJSFile","addMissingMemberInJs","tokenName","staticInitialization","initializePropertyToUndefined","lastProp","getNodeToInsertPropertyAfter","propertyInitialization","insertNodeAtConstructorEnd","createUndefined","getTypeNode2","otherExpression","addPropertyDeclaration","addMethodDeclaration","containingMethodDeclaration","tryGetContainingMethodDeclaration","addEnumMemberDeclaration","hasStringInitializer","enumMember","addFunctionDeclaration","addJsxAttributes","jsxAttributesNode","hasSpreadAttribute","tryGetValueFromType","jsxAttribute","jsxAttributes","addObjectLiteralProperties","createPropertyNameFromSymbol","isObjectLiteralType","getActionsForMissingMethodDeclaration","addMethodDeclarationChanges","actions2","getActionsForMissingMemberDeclaration","createActionForAddMissingMemberInJavascriptFile","createActionsForAddMissingMemberInTypeScriptFile","addPropertyDeclarationChanges","createAddIndexSignatureAction","stringTypeNode","typeDeclToMembers","supers","getAllSupers","superElement","superSymbol","superDecl","superClassOrInterface","superInfos","fixId25","errorCodes29","addMissingNewOperator","findAncestorMatchingSpan2","newExpression","addMissingParamFixId","addOptionalParamFixId","errorCodes30","getInfo11","convertibleSignatureDeclarations","isConvertibleSignatureDeclaration","nonOverloadDeclaration","tryGetName2","newOptionalParameters","parametersLength","argumentsLength","getOverloads","paramIndex","createParameter","isOptionalPos","doChange19","updateParameters","isOverload","importableReference","fixIdInstallTypesPackage","errorCodeCannotFindModule","errorCannotFindImplicitJsxImport","errorCodes31","getInstallCommand","tryGetImportedPackageName","moduleSpecifierText","getTypesPackageNameToInstall","diagCode","isKnownTypesPackageName","getCodeActionsToFixNotFoundModule","_changes","pkg","errorCodes32","fixId26","getClass2","addMissingMembers","instantiatedExtendsType","abstractAndNonPrivateExtendsSymbols","symbolPointsToNonPrivateAndAbstractMember","getCodeActionsToFixClassNotImplementingInheritedMembers","getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember","fixId27","errorCodes33","doChange20","insertNodeAtConstructorStart","getNodes","findSuperCall","seenClasses","fixId28","errorCodes34","getNode","doChange21","fixID","errorCodes35","doChange22","getCodeActionsToFixEnableJsxFlag","fixId29","errorCodes36","getInfo12","getSuggestion","doChange23","getCodeActionsToFixModuleAndTarget","codeFixes","fixId30","errorCodes37","doChange24","getProperty2","fixId31","errorCodes38","getNodes2","extendsToken","doChanges2","implementsToken","implementsFullStart","fixId32","didYouMeanStaticMemberCode","errorCodes39","getInfo13","doChange25","fixIdExpression","fixIdHtmlEntity","errorCodes40","changeToExpression","doChange26","changeToHtmlEntity","htmlEntity","useHtmlEntity","isValidCharacter","deleteUnmatchedParameter","renameUnmatchedParameter","errorCodes41","getInfo14","jsDocParameterTag","jsDocHost","getCodeActionsToFixUnmatchedParameter","getDeleteAction","getRenameAction","newJSDocParameterTag","replaceJSDocComment","getAllCodeActionsToFixUnmatchedParameter","tagsToSignature","tagsSet","fixId33","getImportDeclaration","namespaceChanges","doNamespaceImportChange","typeOnlyChanges","doTypeOnlyImportChange","fixName3","fixIdPrefix","fixIdDelete","fixIdDeleteImports","fixIdInfer","errorCodes43","changeInferToUnknown","createDeleteFix","deleteTypeParameters","isImport","tryGetFullImport","canDeleteEntireVariableStatement","deleteEntireVariableStatement","tryPrefixDeclaration","canPrefix","tryDeleteDeclaration","isFixAll","tryDeleteDeclarationWorker","tryDeleteParameter","mayDeleteParameter","referent","getReferencedSymbolsForNode","isSuperCall2","isSuperMethodCall","isOverriddenMethod","isCallbackLike","isLastParameter","isNotProvidedArguments","mayDeleteExpression","someSignatureUsage","deleteFunctionLikeDeclaration","deletion","deleteDestructuringElements","deleteDestructuring","fixId34","errorCodes44","doChange27","logData","statementKind","lastWhere","deleteNodeRange","fixId35","errorCodes45","doChange28","labeledStatement","statementPos","fixIdPlain","fixIdNullable","errorCodes46","doChange29","oldTypeNode","getInfo15","isTypeContainer","getType","fixedType","fixId36","errorCodes47","doChange30","replaceNodeWithText","getCallName","callName","fixId37","addAnnotationFix","addInlineTypeAssertion","errorCodes48","canHaveTypeAnnotation","declarationEmitNodeBuilderFlags2","addCodeAction","typePrintMode","withContext","emptyInferenceResult","mutatedTarget","expandoPropertiesAdded","typePrinter","addTypeAnnotation","nodeWithDiag","expandoFunction","findExpandoFunction","createNamespaceForExpandoProperties","expandoFunc","newProperties","typeToTypeNode2","fixIsolatedDeclarationError","nodeMissingType","findAncestorWithMissingType","addInlineAssertion","findBestFittingNode","isExpressionTarget","isShorthandPropertyAssignmentTarget","inferType","createSatisfiesAsExpression","needsParenthesizedExpressionForAssertion","typeToStringForDiag","extractAsVariable","parentPropertyAssignment","replacementTarget","initializationNode","isConstAssertion2","variableDefinition","expandoDeclaration","addTypeToVariableLike","addTypeToSignatureDeclaration","transformExportAssignment","defaultIdentifier","transformExtendsClauseWithExpression","heritageExpression","heritageTypeNode","heritageVariable","realEnd","transformDestructuringPatterns","enclosingVariableDeclaration","enclosingVarStmt","baseExpr","tempHolderForReturn","addArrayBindingPatterns","addObjectBindingPatterns","expressionToVar","computedExpression","identifierForComputedProperty","variableDecl","variableInitializer","createChainedExpression","arrayIndex","reverseTraverse","chainedExpression","nextSubExpr","relativeType","typePredicateToTypeNode","createTypeOfFromEntityNameExpression","typeFromSpreads","createSpread","makeNodeOfKind","finalType","newSpreads","currentVariableProperties","finalizesVariablePart","makeVariable","typeFromArraySpreadElements","typeFromObjectSpreadAssignment","mTrue","mFalse","isTruncated","minimizedTypeNode","fixId38","errorCodes49","getNodes3","insertBefore","doChange31","getAllCodeActionsToFixAwaitInSyncFunction","errorCodes50","fixId39","doChange32","edit","pushRaw","fixId40","errorCodes51","getDiagnostic","doChange33","markSeen","mapSuggestionDiagnostic","annotateVariableDeclaration","inferTypeForVariableFromUsage","annotateSetAccessor","annotateParameters","parameterInferences","inferTypeForParametersFromUsage","getFunctionReferences","inferTypeFromReferences","annotateJSDocParameters","annotate","isThisTypeAnnotatable","annotateThis","thisInference","annotateJSDocThis","tryInsertThisTypeAnnotation","setAccessorDeclaration","tryReplaceImportTypeNodeWithAutoImport","getReferences","searchToken","builtinConstructors","single2","combineTypes","inferTypesFromReferencesSingle","isNumberOrString","candidateTypes","numberIndex","stringIndex","candidateThisTypes","inferredTypes","calculateUsageOfNode","argumentTypes","combineUsages","combinedProperties","ps","references2","inferTypeFromExpressionStatement","addCandidateType","inferTypeFromPrefixUnaryExpression","inferTypeFromBinaryExpression","otherOperandType","inferTypeFromSwitchStatementLabel","inferTypeFromCallExpression","return_","inferTypeFromContextualType","inferTypeFromPropertyAccessExpression","propertyUsage","inferTypeFromPropertyElementExpression","indexUsage","inferTypeFromPropertyAssignment","nodeWithRealType","addCandidateThisType","inferTypeFromPropertyDeclaration","combineFromUsage","stringNumber","good","removeLowPriorityInferences","priorities","toRemove","anons","combineAnonymousTypes","stringIndices","numberIndices","stringIndexReadonly","numberIndexReadonly","anon2","numberIndexInfo","inferStructuralType","callsType","inferNamedTypesFromProperties","allPropertiesAreAssignableToUsage","propUsage","getFunctionFromCalls","getSignatureFromCalls","inferInstantiationFromUsage","generic","singleTypeParameter","genericPropertyType","genericType","usageType","genericArgs","usageArgs","genericSigs","usageSigs","genericSig","usageSig","genericParam","usageParam","genericParamType","genericReturn","usageReturn","parameters2","fixId41","errorCodes52","getInfo16","promisedTypeNode","doChange34","getCodeActionsToFixReturnTypeInAsyncFunction","fixName4","fixId42","errorCodes53","makeChange9","seenLines","insertCommentBeforeLine","possiblyMissingSymbols","addClassElement","classMembers","getCodeActionsToDisableJsDiagnostics","isValidLocationToAddComment","PreserveOptionalFlags2","preserveOptional","createDeclarationName","effectiveModifierFlags","createModifiers","shouldAddOverrideKeyword","createName","orderedAccessors","createBody","createDummyParameters","outputMethod","createMethodImplementingSignatures","maxArgsSignature","someSigHasRestParameter","maxNonRestArgs","maxArgsParameterSymbolNames","createStubbedMethod","createStubbedMethodBody","getReturnTypeFromSignatures","quotePreference2","ambient2","parameterDecl","instanceTypes","argumentTypeNodes","argumentTypeParameters","getArgumentTypesAndTypeParameters","typeContainsTypeParameter","synthesizedTypeParameterName","createTypeParameterName","widenedInstanceType","argumentTypeNode","argumentTypeParameter","getFirstTypeParameterName","instanceTypeConstraint","isAnonymousObjectConstraintType","argumentType","createTypeParametersForArguments","usedNames","pair","constraintsByName","typeArgumentsWithNewTypes","usedName","cutoff","endOfRequiredTypeParameters","fullTypeArguments","typePredicateNode","subTypeName","parameterNameCounts","parameterNameCount","tsconfigObjectLiteral","findJsonProperty","insertNodeAtObjectStart","createJsonPropertyAssignment","optionValue","optionProperty","replaceFirstIdentifierOfEntityName","newIdentifier","fieldInfo","accessorModifiers","fieldModifiers","prepareModifierFlagsForAccessor","prepareModifierFlagsForField","updateFieldDeclaration","updatePropertyAssignmentDeclaration","replacePropertyAssignment","generateGetAccessor","createAccessorAccessExpression","insertAccessor","updateReadonlyPropertyInitializerStatementConstructor","generateSetAccessor","isAcceptedDeclaration","createPropertyName","leftHead","isConvertibleName","startWithUnderscore","getDeclarationType","insertNodeAfterComma","fixName5","createAction","getImportCodeFixesForExpression","relatedImport","getCodeFixesForImportDeclaration","variations","getActionsForUsageOfInvalidImport","targetKind","getActionsForInvalidImportLocation","fixName6","fixIdAddDefiniteAssignmentAssertions","fixIdAddUndefinedType","fixIdAddInitializer","errorCodes54","getInfo17","addDefiniteAssignmentAssertion","propertyDeclarationSourceFile","addUndefinedType","undefinedTypeNode","addInitializer","getInitializer","getDefaultValueFromType","getCodeActionsForStrictClassInitializationErrors","getActionForAddMissingUndefinedType","getActionForAddMissingDefiniteAssignmentAssertion","getActionForAddMissingInitializer","fixId43","errorCodes55","doChange35","getInfo18","tryCreateNamedImportsFromObjectBindingPattern","fixId44","errorCodes56","getInfo19","doChange36","fixId45","errorCodes57","makeChange10","numericLiteral","getCodeActionsToUseBigintLiteral","fixId46","errorCodes58","getImportTypeNode","doChange37","getCodeActionsToAddMissingTypeof","fixID2","errorCodes59","findNodeToFix","binaryExpr","doChange38","flattenInvalidBinaryExpr","getCodeActionsToWrapJsxInFragment","fixId47","errorCodes60","makeChange11","getCodeActionsToWrapDecoratorExpressionInParentheses","fixId48","errorCodes61","getInfo20","doChange39","otherMembers","mappedTypeParameter","mappedIntersectionType","intersectionType","createTypeAliasFromInterface","getCodeActionsToConvertToMappedTypeObject","fixId49","fixId50","errorCodes63","makeChange12","awaitKeyword","expressionToReplace","getCodeActionsToRemoveUnnecessaryAwait","errorCodes64","fixId51","getImportDeclaration2","splitTypeOnlyImport","getCodeActionsToSplitTypeOnlyImport","fixId52","errorCodes65","getInfo21","constToken","doChange40","getCodeActionsToConvertConstToLet","fixId53","errorCodes66","getInfo22","doChange41","fixId54","errorCodes67","makeChange13","getEffectiveTypeArguments","CompletionKind","CompletionSource","SortText","StringCompletions","ts_Completions_StringCompletions_exports","SymbolOriginInfoKind","createCompletionDetails","createCompletionDetailsForSymbol","getCompletionEntriesFromSymbols","getDefaultCommitCharacters","getPropertiesForObjectExpression","moduleSpecifierResolutionCacheAttemptLimit","moduleSpecifierResolutionLimit","LocalDeclarationPriority","LocationPriority","OptionalMember","MemberDeclaredBySpreadAssignment","SuggestedClassMembers","GlobalsOrKeywords","AutoImportSuggestions","ClassMemberSnippets","JavascriptIdentifiers","Deprecated","sortText","ObjectLiteralProperty","presetSortText","symbolDisplayName","SortBelow","allCommitCharacters","noCommaCommitCharacters","CompletionSource2","SymbolOriginInfoKind2","originIsExport","originIsResolvedExport","originIsPackageJsonImport","originIsTypeOnlyAlias","originIsObjectLiteralMethod","originIsComputedPropertyName","resolvingModuleSpecifiers","logPrefix","isForImportStatementCompletion","needsFullResolution","skippedAny","ambientCount","resolvedCount","resolvedFromCacheCount","cacheAttemptCount","isFromAmbientModule","shouldResolveModuleSpecifier","allowIncompleteCompletions","shouldGetModuleSpecifierFromCache","resolvedAny","resolvedBeyondLimit","hitRateMessage","isNewIdentifierLocation","completionKind","getRelevantTokens","isValidTrigger","binaryExpressionMayBeOpenTag","includeCompletionsForImportStatements","isGlobalCompletion","isMemberCompletion","defaultCommitCharacters","incompleteCompletionsCache","getIncompleteCompletionsCache","incompleteContinuation","continuePreviousIncompleteResponse","previousResponse","touchNode","lowerCaseTokenText","exportMap","newEntries","hasAction","completionEntryDataIsResolved","charactersFuzzyMatchInString","getAutoImportSymbolFromCompletionEntryData","originToCompletionEntryData","getSourceFromOrigin","sourceDisplay","optionalReplacementSpan","getOptionalReplacementSpan","stringCompletions","getStringLiteralCompletions","getLabelCompletionAtPosition","getLabelStatementCompletions","uniques","completionData","getCompletionData","response","completionInfoFromData","isInSnippetScope","propertyAccessToConvert","keywordFilters","symbolToOriginInfoMap","recommendedCompletion","isJsxInitializer","isTypeOnlyLocation","isJsxIdentifierExpected","isRightOfOpenTag","isRightOfDotOrQuestionDot","importStatementCompletion","insideJsDocTagTypeExpression","symbolToSortTextMap","hasUnresolvedAutoImports","completionInfo","getJsxClosingTagCompletion","jsxClosingElement","hasClosingAngleBracket","fullClosingTag","isChecked","isCheckedFile","keywordEntry","getKeywordCompletions","isContextualKeywordInAutoImportableExpressionSpace","compareCompletionEntries","getContextualKeywords","tokenLine","literalEntry","createCompletionEntryForLiteral","getJSCompletionEntries","realName","isFromUncheckedFile","commitCharacters","cases","getExhaustiveCaseSnippets","isMemberCompletionKind","jsdocCompletionInfo","getJSDocTagNameCompletions","getJSDocParameterCompletions","getJSDocTagCompletions","getJSDocParameterNameCompletions","specificKeywordCompletionInfo","keywordCompletions","entryInArray","entryToInsert","tagNameOnly","isSnippet","includeCompletionsWithSnippetText","paramTagCount","tabstopCounter","tabstop","displayText","getJSDocParamAnnotation","snippetText","paramPath","displayTextResult","generateJSDocParamTagsForDestructuring","snippetTextResult","patternWorker","dotDotDotToken2","childCounter","rootParam","childTags","elementTags","elementWorker","isObject","getJSDocParamNameWithInitializer","initializerText","builderFlags","createSnippetPrinter","keywordCompletionData","filterOutTsOnlyKeywords","switchType","typeNodeToExpression","newClauses","newLineChar","printAndFormatNode","entityNameToExpression","objectExpression","completionNameForLiteral","createCompletionEntry","replacementToken","needsConvertPropertyAccess","useSemicolons","filterText","labelDetails","replacementSpan","insertQuestionDot","originIsNullableMember","useBraces","originIsSymbolMember","originIsThisType","quotePropertyName","dot","originIsPromise","awaitText","getInsertTextAndReplacementSpanForImportCompletion","tabStop","isImportSpecifierTypeOnly","couldBeTypeOnlyImportSpecifier","topLevelTypeOnlyText","isTopLevelTypeOnly","importSpecifierTypeOnlyText","includeCompletionsWithClassMemberSnippets","isClassLikeMemberCompletion","memberFlags","memberCompletionEntry","getEntryForMemberCompletion","eraseRange","useLabelDetailsInCompletionEntries","detail","jsxAttributeCompletionStyle","useBraces2","parentNamedImportOrExport","possibleToken","generateIdentifierForArbitraryString","needsUnderscore","getSymbolKind","isRecommended","isRecommendedCompletionMatch","isPackageJsonImport","isImportStatementCompletion","emptyStmt","presentModifiers","presentDecorators","getPresentModifiers","contextMod","isModifierLike2","contextModifierFlag","completionNodes","requiredModifiers","Property","allowedModifiers","allowedAndPresent","lastNode","printAndFormatSnippetList","printSnippetList","getEntryForObjectLiteralMethodCompletion","createObjectLiteralMethod","effectiveType","functionTypes","typedParam","signaturePrinter","methodSignature","escapes","baseWriter","createWriter","escapingWrite","unescaped","printUnescapedSnippetList","applyChanges","syntheticFile","nodeWithPos","assignPositionsToNode","formatNodeGivenIndentation","allChanges","printUnescapedNode","completionEntryDataToSymbolOriginInfo","completionName","jsxIdentifierExpected","closestSymbolDeclaration","getClosestSymbolDeclaration","closestDeclaration","isArrowFunctionBody","getCompletionEntryDisplayNameForSymbol","shouldIncludeSymbol","symbolAppearsToBeTypeOnly","originalSortText","isDeprecated","shouldShadowLaterSymbols","symbolToSortTextMap2","symbolDeclaration","isInTypeParameterDefault","symbolOrigin","symbolCanBeReferencedAtTypeLocation","getSymbolCompletionFromEntryId","entryId","autoImport","contextToken2","previousToken2","request","getStringLiteralCompletionDetails","symbolCompletion","getJSDocTagNameCompletionDetails","getJSDocTagCompletionDetails","getJSDocParameterNameCompletionDetails","createSimpleDetails","codeActions","getCompletionEntryCodeActionsAndSourceDisplay","getImportStatementCompletionInfo","codeAction2","isJsxOpeningTagName","snippets","allKeywordsCompletions","kind2","checker2","completion","CompletionKind2","getFirstSymbolInChain","isModuleSymbol","detailsEntryId","inCheckedFile","insideComment","insideJsDocImportTag","getJsDocTagAtPosition","tryGetTypeExpressionFromTag","isTagWithTypeExpression","isCurrentlyEditingNode","isJsOnlyLocation","tokens","isRightOfDot","isRightOfQuestionDot","isStartingCloseTag","importStatementCompletionInfo","keywordCompletion","isKeywordOnlyCompletion","keywordFiltersFromSyntaxKind","isCompletionListBlocker","isInStringOrRegularExpressionOrTemplateLiteral","isSolelyIdentifierDefinitionLocation","containingNodeKind","isVariableDeclarationListButNotTypeArgument","isFunctionLikeButNotConstructor","isFromObjectTypeDeclaration","isInDifferentLineThanContextToken","position2","isClassMemberCompletionKeyword","keywordForNode","isConstructorParameterCompletion","ancestorClassLike","isPreviousPropertyDeclarationTerminated","ancestorPropertyDeclaraion","isDotOfNumericLiteral","isInJsxText","computeCommitCharactersAndIsNewIdentifier","semanticStart","importSpecifierResolver","seenPropertySymbols","isTypeOnlyCompletion","isContextTokenValueLocation","isContextTokenTypeLocation","getTypeScriptMemberSymbols","isImportType","isTypeLocation","isRhsOfImportDeclaration","isNamespaceName","exportedSymbols","isValidValueAccess","isValidTypeAccess","isValidAccess","canCorrectToQuestionDot","includeAutomaticOptionalChainCompletions","addTypeProperties","tryGetGlobalSymbols","tagSymbol","argInfo","getArgumentInfoForCompletions","argumentIndex","getRecommendedCompletion","insertAwait","addPropertySymbol","getPropertiesForCompletion","leftMostName","getLeftMostName","firstAccessibleSymbol","firstAccessibleSymbolId","getNullableSymbolOriginInfoKind","addSymbolOriginInfo","addSymbolSortInfo","isStaticProperty","tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols","tryGetTypeLiteralNode","containerTypeNode","containerExpectedType","getConstraintOfTypeArgumentProperty","containerActualType","existingMembers","existingMemberEscapedNames","tryGetObjectLikeCompletionSymbols","symbolsStartIndex","objectLikeContainer","tryGetObjectLikeCompletionContainer","ancestorNode2","ancestorNode","typeMembers","tryGetObjectLiteralContextualType","completionsType","hasStringIndexType","hasNumberIndextype","canGetType","typeForObject","filteredMembers","filterObjectMembersList","contextualMemberSymbols","membersDeclaredBySpreadAssignment","existingMemberNames","existingName","setMembersDeclaredBySpreadAssignment","filteredSymbols","setSortTextToMemberDeclaredBySpreadAssignment","setSortTextToOptionalMember","includeCompletionsWithObjectLiteralMethodSnippets","transformObjectLiteralMembersSortText","displayName","collectObjectLiteralMethodSymbols","isObjectLiteralMethodSymbol","entryProps","tryGetImportCompletionSymbols","collectAutoImports","tryGetImportOrExportClauseCompletionSymbols","namedImportsOrExports","moduleSpecifierSymbol","tryGetImportAttributesCompletionSymbols","importAttributes","tryGetLocalNamedExportCompletionSymbols","localsContainer","tryGetConstructorCompletion","tryGetConstructorLikeCompletionContainer","tryGetClassLikeCompletionSymbols","tryGetObjectTypeDeclarationCompletionContainer","isValidKeyword","isInterfaceOrTypeLiteralCompletionKeyword","classElementModifierFlags","filterClassMembersList","currentClassElementModifierFlags","tryGetJsxCompletionSymbols","jsxContainer","tryGetContainingJsxElement","filterJsxAttributes","symbols2","getGlobalCompletions","tryGetFunctionLikeBodyCompletionContainer","adjustedPosition","scopeNode","getScopeNode","initialToken","isSnippetScope","symbolMeanings","typeOnlyAliasNeedsPromotion","isProbablyGlobalType","selfSymbol","shouldOfferImportCompletions","packageJsonAutoImportProvider","isImportableExportInfo","pushAutoImportSymbol","contextualMemberSymbol","containingProgram","originIsIgnore","originIncludesSymbolName","validNameResult","_keywordCompletions","keywordFilter","getTypescriptKeywordCompletions","isTypeScriptOnlyKeyword","isFunctionLikeBodyKeyword","hasCompletionsType","promiseFilteredContextualType","containsNonPublicProperties","hasDeclarationOtherThanSelf","getCandidate","isModuleSpecifierMissingOrEmpty","canCompleteFromNamedBindings","getSingleLineReplacementSpanForImportCompletionNode","potentialSplitPoint","getPotentiallyInvalidImportSpecifier","withoutModuleSpecifier","invalidNamedImport","seenModules","nonAliasCanBeReferencedAtTypeLocation","identifierString","lowercaseCharacters","prevChar","matchedFirstCharacter","characterIndex","strIndex","strChar","testChar","toUpperCharCode","kindPrecedence","createNameAndKindSet","getTripleSlashReferenceCompletion","tripleSlashDirectiveFragmentRegex","toComplete","scriptPath","getCompletionEntriesForDirectoryFragment","getExtensionOptions","getCompletionEntriesFromTypings","getFragmentDirectory","addReplacementSpans","convertPathCompletions","convertStringLiteralCompletions","isNewIdentifier","getStringLiteralCompletionEntries","completions","stringLiteralCompletionDetails","kindModifiersFromExtension","pathCompletions","walkUpParentheses","getStringLiteralCompletionsFromModuleNames","fromUnionableLiteralType","getStringLiteralTypes","stringLiteralCompletionsFromProperties","alreadyUsedTypes","getAlreadyUsedTypesInStringLiteralUnion","stringLiteralCompletionsForObjectLiteral","objectLiteralExpression","fromContextualType","isRequireCallArgument","argumentInfo","getStringLiteralCompletionsFromSignature","nameAndKind","directoryResult","textStart","getDirectoryFragmentTextSpan","wholeSpan","getStringLiteralCompletionsFromModuleNamesWorker","scriptDirectory","extensionOptions","isPathRelativeToScript","slashIndex","slashCharCode","getCompletionEntriesForRelativeModules","getCompletionEntriesForDirectoryFragmentWithRootDirs","baseDirectories","getBaseDirectoriesFromRootDirs","relativeDirectory","itemA","itemB","getCompletionEntriesForNonRelativeModules","addCompletionEntriesFromPaths","fragmentDirectory","ambientName","getAmbientModuleCompletions","nonRelativeModuleNames","moduleNameWithSeparator","foundGlobal","enumerateNodeModulesVisibleToScript","nodeModulesDependencyKeys","moduleResult","seenPackageScope","importsLookup","exportsOrImportsLookup","ancestorLookup","nodeModulesDirectoryOrImportsLookup","subName","fragmentSubpath","fragment2","isExports","addCompletionEntriesFromPathsOrExportsOrImports","getPatternFromFirstMatchingCondition","referenceKind","extensionsToSearch","getSupportedExtensionsForModuleResolution","endingPreference","ambientModulesExtensions","moduleSpecifierIsRelative","getFilenameWithExtensionOption","isExportsOrImportsWildcard","nonJsResult","outputExtension2","outputExtension","patternA","patternB","lengthA","getPatternsForKey","comparePaths2","matchedPath","pathResults","keyWithoutLeadingDotSlash","pathPattern","isMatch","getCompletionsForPathMapping","pathResult","containsSlash","parsedPath","justPathMappingName","remainingFragment","getModulesForPathsPattern","normalizedPrefix","normalizedPrefixDirectory","normalizedPrefixBase","fragmentHasPath","expandedPrefixDirectory","possibleInputBaseDirectoryForOutDir","possibleInputBaseDirectoryForDeclarationDir","normalizedSuffix","inputExtension","matchingSuffixes","includeGlobs","getMatchesWithPrefix","getDirectoryMatches","completePrefix","trimmedWithPattern","trimPrefixAndSuffix","withoutStartAndEnd","removeLeadingDirectorySeparator","getCompletionEntriesFromDirectories","typeDirectoryName","createImportTracker","allDirectImports","getDirectImportsMap","forEachImport","isForRename","directImports","indirectUsers","getImportersForExport","markSeenDirectImport","markSeenIndirectUser","isAvailableThroughGlobal","indirectUserDeclarations","handleDirectImports","getIndirectUsers","addIndirectUser","exportingModuleSymbol2","theseDirectImports","getDirectImports","handleImportCall","handleNamespaceImport","getSourceFileLikeForImportDeclaration","getContainingModuleSymbol","importCall","isAmbientModuleDeclaration","stopAtAmbientModule","alreadyAddedDirect","findNamespaceReExports","namespaceImportSymbol","forEachPossibleImportOrExportStatement","addTransitiveDependencies","directImports2","directImport","getSearchesFromDirectImports","DefinitionKind","ExportKind2","ImportExport","findModuleReferences","getContextNode","getExportInfo","getImportOrExportSymbol","isContextWithStartAndEndNode","ImportExport2","importSearches","singleReferences","addSearch","handleImport","isExternalModuleImportEquals","handleNamespaceImportLike","searchForNamedImport","isNameMatch","searchModuleSymbol","refs","searchSourceFile","comingFromExport","getExport","getImport","isNodeImport","importedSymbol","skipExportSpecifierSymbol","getExportEqualsLocalSymbol","getSpecialPropertyExport","getExportKindForDeclaration","getExportNode","getExportAssignmentExport","useLhsSymbol","eq","DefinitionKind2","EntryKind2","nodeEntry","getContextNodeForNodeEntry","validImport","declOrStatement","getTextSpan","FindReferencesUse2","isDefinitionForReference","definitionToReferencedSymbolDefinitionInfo","def","displayParts2","getDefinitionKindAndDisplayParts","getFileAndTextSpanFromNode","toReferencedSymbolEntry","referenceEntry","getImplementationReferenceEntries","seenNodes","entries2","toImplementationLocation","entryToDocumentSpan","implementationKindDisplayParts","getReferenceEntriesForShorthandPropertyAssignment","implementations","convertEntry","flattenEntries","referenceSymbols","getIntersectingMeaningFromDeclarations","providePrefixAndSuffixText","getPrefixAndSuffixText","isShorthandAssignment","prefixColon","prefixText","suffixColon","suffixText","writeAccess","getTextSpanOfEntry","declarationIsWriteAccess","commonjsSource","Core2","getAdjustedNode2","getReferencesForNonModule","refFileMap","getMergedAliasedSymbolOfNamespaceExportDeclaration","aliasedSymbol","getReferencedSymbolsForModuleIfDeclaredBySourceFile","moduleReferences","getReferencedSymbolsForModule","mergeReferences","getReferencedSymbolsForSymbol","referencesToMerge","refIndex","entry1","entry2","entry1File","getSourceFileIndexOfEntry","entry2File","entry1Span","entry2Span","excludeImportTypeOfExportEquals","skipPastExportOrImportSpecifierOrUnion","useLocalSymbolForExportSpecifier","getLocalSymbolForExportSpecifier","isForRenameWithPrefixAndSuffixText","searchMeaning","State","getSpecialSearchKind","getReferencesAtExportSpecifier","createSearch","addReference","searchForImportsOfExport","allSearchSymbols","populateSearchSymbolSet","getReferencesInContainerOrFiles","getSymbolScope","privateDeclaration","exposedByParent","getReferencesInContainer","searchForName","SpecialSearchKind","SpecialSearchKind2","getNonModuleSymbolOfMergedModuleSymbol","getReferenceAtPosition","getReferencedSymbolsSpecial","getAllReferencesForKeyword","getPossibleSymbolReferenceNodes","getAllReferencesForImportMeta","labelDefinition","getLabelReferencesInNode","getReferencesForThisKeyword","thisOrSuperKeyword","searchSpaceNode","staticFlag","isParameterName","getReferencesForSuperKeyword","superKeyword","referencedFileName","getReferencesForStringLiteral","refType","isStringLiteralPropertyReference","moduleReferencesOfExportTarget","specialSearchKind","inheritsFromCache","markSeenContainingTypeReference","markSeenReExportRHS","symbolIdToReferences","sourceFileToSeenSymbols","includesSourceFile","getImportSearches","importTracker","comingFrom","searchOptions","getParentSymbolsOfPropertyAccess","referenceAdder","searchSymbol","addStringOrCommentReference","markSearchedSymbols","anyNewSymbols","exportLocation","addRef","singleRef","shouldAddSingleReference","importLocation","getReferencesInSourceFile","indirectSearch","indirectUser","hasMatchingMeaning","searchForImportedSymbol","searchContainer","referenceSymbol","getPossibleSymbolReferencePositions","sourceLength","targetLabel","addReferencesHere","getReferencesAtLocation","isValidReferencePosition","searchSymbolName","getReferencesAtJSDocTypeLiteral","relatedSymbol","getRelatedSymbol","forEachRelatedSymbol","explicitlyInheritsFrom","addConstructorReferences","pusher","findOwnConstructorReferences","addNode","getClassConstructorSymbol","forEachDescendantOfKind","classExtending","tryGetClassByExtendingIdentifier","findSuperConstructorAccesses","findInheritedConstructorReferences","hasOwnConstructor","addClassStaticThisReferences","getImportOrExportReferences","getReferenceForShorthandProperty","shorthandValueSymbol","alwaysGetReferences","isExportSpecifierAlias","addImplementationReferences","addReference2","isImplementation","getContainingNodeIfInHeritageClause","typeHavingNode","addIfImplementation","isImplementationExpression","cachedResults","inherits","isForRenamePopulateSearchSymbolSet","onlyIncludeBindingElementAtReferenceLocation","cbSymbol","allowBaseTypes","containingObjectLiteralElement","res2","fromRoot","res1","res22","paramProps","bindingElementPropertySymbol","getPropertySymbolOfObjectBindingPatternWithoutPropertyName","getPropertySymbolsFromBaseTypes","lastIterationMeaning","declarationMeaning","refSymbol","shorthandSymbol","singleReference","hasExportAssignmentDeclaration","getTopMostDeclarationNamesInFile","topMost","getDepth","declarationNames","fileReferenceDefinition","unverified","getDefinitionFromOverriddenMember","getDefinitionFromSymbol","createDefinitionInfoFromName","createDefinitionInfoFromSwitch","findFunctionDecl","createDefinitionFromSignatureDeclaration","failedAliasResolution","failedAliasResolution2","fallbackNode","getDefinitionInfoForIndexSignatures","calledDeclaration","tryGetSignatureDeclaration","getAncestorCallLikeExpression","isJsxConstructorLike","sigInfo","declarationFilter","symbolMatchesSignature","defs","createDefinitionInfo","getDefinitionFromObjectLiteralElement","objectLiteralElementDefinition","findReferenceInPosition","libReferenceDirective","verifiedFileName","typesWithUnwrappedTypeArguments","shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias","referenceName","getFirstTypeArgumentDefinitions","shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference","definitionFromType","typeAtLocation","tryGetReturnTypeOfFunction","fromReturnType","typeDefinitions","definitions","shouldSkipAlias","filteredDeclarations","signatureDefinition","getConstructSignatureDefinition","getSignatureDefinition","getCallSignatureDefinition","withoutExpandos","isExpandoDeclaration","containingAssignment","selectConstructors","declarationsWithBody","isLocal","isDefinitionVisible","leadingParameterNameCommentRegexFactory","shouldShowLiteralParameterNameHintsOnly","includeInlayParameterNameHints","shouldUseInteractiveInlayHints","interactiveInlayHints","sourceFileText","includeInlayVariableTypeHints","includeInlayPropertyDeclarationTypeHints","visitVariableLikeDeclaration","includeInlayEnumMemberValueHints","visitEnumMember","addEnumMemberValueHints","whitespaceBefore","shouldShowParameterNameHints","includeInlayFunctionParameterTypeHints","visitFunctionLikeForParameterType","isHintableDeclaration","addParameterTypeHint","includeInlayFunctionLikeReturnTypeHints","isSignatureSupportingReturnAnnotation","visitFunctionDeclarationLikeForReturnType","hintParts2","typePredicateToInlayHintParts","printTypePredicateInSingleLine","getInlayHintDisplayParts","addTypeHints","getTypeAnnotationPosition","isModuleReferenceType","hintParts","typeToInlayHintParts","visitCallOrNewExpression","signatureParamPos","originalArg","isHintableLiteral","spreadArgs","identifierInfo","isFirstVariadicArgument","includeInlayParameterNameHintsWhenArgumentMatchesName","identifierOrAccessExpressionPostfixMatchesParameterName","leadingCommentsContainsParameterName","addParameterHints","hintText","getNodeDisplayPart","whitespaceAfter","includeInlayVariableTypeHintsWhenTypeMatchesName","regex","isUndefined","closeParenToken","typeHints","getParameterDeclarationTypeHints","signatureParamType","printTypeInSingleLine","visitForDisplayParts","getLiteralText2","identifierText","visitDisplayPartList","visitParametersAndTypeParameters","jsDocTagNameCompletionEntries","jsDocTagCompletionEntries","jsDocTagNames","jsdoc","getCommentHavingNodes","inheritDoc","newparts","getDisplayPartsFromComment","isIdenticalListOfDisplayParts","parts1","getCommentDisplayParts","getJSDocPropertyTagsInfo","tryGetJSDocPropertyTags","namePart","getTagNameDisplayPart","withNode","templateTag","lastTypeParameter","addComment","nameThusFar","tokenAtPos","existingDocComment","commentOwnerInfo","getCommentOwnerInfo","getCommentOwnerInfoWorker","commentOwner","hasReturn","indentationStr","getIndentationStringAtPosition","parameterDocComments","returnsDocComment","hasTag","caretOffset","varDeclarations","getRightHandSideOfAssignment","be","generateReturnInDocTemplate","nodeKinds","cw","parsedNodes","parse2","bod","flattenedLocations","placeNodeGroup","placeClassNodeGroup","classOrInterface","matchNode","lastMatch","wipeNode","placeStatements","origStmt","newStmt","scopeStatements","resetNodePositions","shouldSort","shouldCombine","shouldRemove","topLevelImportDecls","topLevelImportGroupDecls","groupByNewlineContiguous","comparersToTest","typeOrdersToTest","getDetectionLists","defaultComparer","moduleSpecifierComparer","organizeImportsIgnoreCase","namedImportComparer","typeOrder","organizeImportsTypeOrder","detectModuleSpecifierCaseBySort","namedImportSort","detectNamedImportOrganizationBySort","importGroupDecl","organizeImportsWorker","getTopLevelExportGroups","topLevelExportGroups","exportGroupDecls","exportGroupDecl","organizeExportsWorker","organizeDeclsWorker","oldImportDecls","coalesce","oldImportGroups","getExternalModuleName2","newImportDecls","group1","compareModuleSpecifiersWorker","importGroup","deleteNodes","replaceOptions","nodeHasTrailingComment","comparer2","detectedModuleCaseComparer","detectedNamedImportCaseComparer","getNamedImportSpecifierComparer","removeUnusedImports","oldImports","jsxElementsPresent","usedImports","isDeclarationUsed","updateImportDeclarationAndClause","hasModuleDeclarationMatchingSpecifier","coalesceImportsWorker","oldExportDecls","specifierCaseComparer","useComparer","coalesceExportsWorker","getOrganizeImportsStringComparer","isNewGroup","numberOfNewLines","getCategorizedImports","importWithoutClause","typeOnlyImports","defaultImports","namespaceImports","regularImports","importGroupsByAttributes","x2","coalescedImports","importGroupSameAttrs","sortedNamespaceImports","firstDefaultImport","firstNamedImport","newDefaultImport","newImportSpecifiers","getNewImportSpecifiers","sortedImportSpecifiers","exportGroup","exportWithoutClause","getCategorizedExports","exportGroup2","exportWithoutClause2","namedExports2","typeOnlyExports2","coalescedExports","newExportSpecifiers","sortedExportSpecifiers","compareImportOrExportSpecifiers","name1","getModuleSpecifierExpression","tryGetNamedBindingElements","importDeclsByGroup","moduleSpecifiersByGroup","getModuleNamesFromDecls","detectCaseSensitivityBySort","originalGroups","typesToTest","bothNamedImports","importDeclsWithNamed","namedImportsByDecl","sortState","bestDiff","inline","bestComparer","curComparer","currDiff","measureSortedness","n1","bestKey","bestTypeOrder","testKey","diffOfCurrentComparer","listToSort","getImportKindOrder","getOrganizeImportsOrdinalStringComparer","getOrganizeImportsUnicodeStringComparer","resolvedLocale","getOrganizeImportsLocale","organizeImportsLocale","supportedLocales","supportedLocalesOf","caseFirst","organizeImportsCaseFirst","organizeImportsNumericCollation","accents","organizeImportsAccentCollation","organizeImportsCollation","originalImportDecls","stringComparer","detectFromDecl","isDetectedSorted","detectFromFile","sortedImports","compareImportKind","testCoalesceImports","testCoalesceExports","compareModuleSpecifiers2","addNodeOutliningSpans","depthRemaining","firstImport","lastImport","createOutliningSpanFromBounds","addOutliningForLeadingCommentsForNode","addOutliningForLeadingCommentsForPos","getOutliningSpanForNode","functionSpan","openToken","tryGetFunctionOpenToken","openParenToken","closeToken","spanBetweenTokens","spanForNode","createOutliningSpan","spanForNodeArray","spanForObjectOrArrayLiteral","spanForJSXElement","spanForJSXFragment","spanForJSXAttributes","spanForTemplateLiteral","spanForArrowFunction","spanForCallExpression","spanForParenthesizedExpression","spanForImportExportElements","hintSpanNode","autoCollapse","useFullStart","addRegionOutliningSpans","regions","currentLineStart","parseRegionDelimiter","isStart","region","hintSpan","regionDelimiterRegExp","firstSingleLineCommentStart","lastSingleLineCommentEnd","singleLineCommentCount","combineAndAddMultipleSingleLineComments","bannerText","getRenameInfoForNode","getRenameInfoSuccess","isDefinedInLibraryFile","getRenameInfoError","allowRenameOfImportPath","getRenameInfoForModule","indexAfterLastSlash","triggerSpan","canRename","fileToRename","fullDisplayName","wouldRenameNodeModules","wouldRenameInOtherNodeModules","originalPackage","getPackagePathComponents","declPackage","nodeModulesIdx","createTriggerSpanForNode","localizedErrorMessage","startingToken","onlyUseSyntacticOwners","isManuallyInvoked","getContainingArgumentInfo","getImmediatelyContainingArgumentOrContextualParameterInfo","candidateInfo","getCandidateOrTypeInfo","isSyntacticOwner","invocationChildren","containingList","containsPrecedingToken","createSignatureHelpItems","createTypeHelpItems","argumentsSpan","applicableSpan","getTypeHelpItem","getEnclosingDeclarationFromInvocation","selectedItemIndex","createJSSignatureHelpItems","getExpressionFromInvocation","currentParent","getImmediatelyContainingArgumentInfo","isTypeParameterList","getArgumentOrParameterListInfo","getArgumentOrParameterListAndIndex","getChildListThatStartsWithOpenerToken","getArgumentIndex","getArgumentCount","getArgumentIndexOrCount","getApplicableSpanForArguments","applicableSpanStart","applicableSpanEnd","getArgumentListInfoForTemplate","getArgumentIndexForTemplatePiece","spanIndex","attributeSpanStart","typeArgInfo","tryGetParameterInfo","getContextualSignatureLocationInfo","highestBinary","getHighestBinary","contextualType2","argumentIndex2","countBinaryExpressionParameters","argumentCount2","nonNullableContextualType","chooseBetterSymbol","getSpreadElementCount","skipComma","getApplicableSpanForTaggedTemplate","taggedTemplate","openerToken","indexOfOpenerToken","signatureHelpNodeBuilderFlags","useFullPrefix","callTargetSymbol","callTargetDisplayParts","candidateSignature","getSignatureHelpItem","itemInfoForTypeParameters","itemInfoForParameters","isVariadic","prefixDisplayParts","suffixDisplayParts","returnTypeToDisplayParts","separatorDisplayParts","itemsSeen","selected","firstRest","typeSymbolDisplay","createSignatureHelpParameterForTypeParameter","paramList","parameterParts","typeParameterParts","pList","parameterList","createSignatureHelpParameterForParameter","getSelectionChildren","pushSelectionCommentRange","positionShouldSnapToNode","pushSelectionRange","isBetweenMultiLineBookends","isListOpener","isListCloser","getEndPos","isImport2","groupChildren","openBraceToken","closeBraceToken","groupedWithPlusMinusTokens","createSyntaxList2","splitChildren","firstJSDocChild","splittedChildren","groupedDotDotDotAndName","groupOn","pivotOn","separateTrailingSemicolon","splitTokenIndex","leftChildren","splitToken","separateLastToken","rightChildren","symbolDisplayNodeBuilderFlags","getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar","isLocalVariableOrFunction","unionPropertyKind","getNormalizedSymbolModifiers","getSymbolDisplayPartsDocumentationAndSymbolKindWorker","semanticMeaning","hasAddedSymbolInfo","isThisExpression","documentationFromAlias","tagsFromAlias","hasMultipleSignatures","typeWriterOut","symbolWasExpanded","callExpressionLike","useConstructSignatures","addPrefixForAnyFunctionOrVar","pushSymbolKind","addFullSymbolName","addSignatureDisplayParts","addAliasPrefixIfNecessary","tryExpandSymbol","writeTypeParametersOfSymbol","prefixNextMeaning","isNamespace","addInPrefix","resolvedNode","isExternalModuleDeclaration","shouldUseAliasName","resolvedInfo","internalAliasSymbol","getPrinter","rhsSymbol","canExpandSymbol","symbolMeaning","semanticToSymbolMeaning","expandedDisplayParts","symbolToDisplay","fullSymbolDisplayParts","symbolKind2","getPos2","__pos","setPos","__end","setEnd","getAdjustedEndPosition","LeadingTriviaOption2","TrailingTriviaOption2","skipWhitespacesAndLineBreaks","useNonAdjustedPositions","getAdjustedRange","getAdjustedStartPosition","JSDocComments","fullStart","fullStartLine","adjustedStartPosition","getEndPositionOfMultilineTrailingComment","nodeEndLine","multilineEndPosition","newEnd","isSeparator","changesToText","_ChangeTracker","classesWithNodesInsertedAtStart","deletedNodes","afterEndNode","oldNode","replaceRangeWithNodes","configurableEnd","nextCommaToken","insertNodesAt","insertAtTopOfFile","getInsertionPositionAtSourceFileTop","lastPrologue","advancePastLineBreak","firstNodeLine","pinnedOrTripleSlash","insertAtEndOfFile","newFileChanges","insertFirstParameter","p0","getOptionsForInsertNodeBefore","lineStartPosition","insertAtLineStart","insertJsdocCommentBefore","fnStart","jsDoc2","updateJSDocHost","jsDocNode","newTags","oldTags","unmergedNewTags","newTag","tryMergeJsdocTags","oldTag","oldParam","newStatement","replaceConstructorBody","insertNodeAtConstructorStartAfterSuperCall","insertNodeAtStartWorker","guessIndentationFromExistingMembers","computeIndentationForNewMember","getMembersOrProperties","getInsertNodeAtStartInsertOptions","lastRange","memberStart","memberIndentation","findFirstNonWhitespaceColumn","nodeStart","isFirstInsertion","insertTrailingComma","insertNodeAfterWorker","getInsertNodeAfterOptions","needSemicolonBetween","getInsertNodeAfterOptionsWorker","lparen","prevSpecifier","getContainingList","afterStart","afterStartLinePosition","multilineList","tokenBeforeInsertPosition","hasCommentsBeforeLineBreak","insertPos","parenthesizeExpression","finishClassesWithNodesInsertedAtStart","openBraceEnd","closeBraceEnd","getClassOrObjectBraceEnds","isSingleLine","finishDeleteDeclarations","deletedNodesInLists","deleteDeclaration","lastNonDeletedIndex","startPositionToDeleteNodeInList","validate","getTextChangesFromChanges","insertions","createNewFile","endPositionToDeleteNodeInList","prevToken","changesToText2","newFileChangesWorker","nonFormattedText","insertion","getNonformattedText","changesInFile","computeNewText","getFormattedTextOfNode","initialIndentation","shouldIndentChildNode","noIndent","isNewFile","textChangesTransformationContext","assignPositionsToNodeArray","lastNonTriviaPosition","setLastNonTriviaPosition","isTrivia2","deleteNodeInList","_deleteDeclaration","deleteImportBinding","deleteDeclaration2","oldFunction","deleteVariableDeclaration","gp","deleteDefaultImport","FormattingContext","FormattingRequestKind","RuleAction","RuleFlags","anyContext","createTextRangeWithKind","getAllRules","getFormattingScanner","getIndentationString","FormattingRequestKind2","formattingRequestKind","updateContext","currentRange","currentTokenParent","nextRange","nextTokenParent","commonParent","currentTokenSpan","nextTokenSpan","contextNodeAllOnSameLine","nextNodeAllOnSameLine","tokensAreOnSameLine","contextNodeBlockIsOnOneLine","nextNodeBlockIsOnOneLine","ContextNodeAllOnSameLine","NodeIsOnOneLine","NextNodeAllOnSameLine","TokensAreOnSameLine","ContextNodeBlockIsOnOneLine","BlockIsOnOneLine","NextNodeBlockIsOnOneLine","openBrace","closeBrace","standardScanner","jsxScanner","leadingTrivia","trailingTrivia","savedPos","lastScanAction","lastTokenInfo","wasNewLine","advance","readTokenInfo","isOnToken","expectedScanAction","shouldRescanGreaterThanToken","shouldRescanSlashToken","shouldRescanTemplateToken","shouldRescanJsxIdentifier","shouldRescanJsxText","shouldRescanJsxAttributeValue","fixTokenKind","getNextToken","newToken","startsWithSlashToken","trivia","readEOFTokenRange","isOnEOF","getCurrentLeadingTrivia","lastTrailingTriviaWasNewLine","skipToEndOf","skipToStartOf","tokenInfo","rulesMapCache","RuleAction2","RuleFlags2","allTokens","anyTokenExcept","isSpecific","anyToken","anyTokenIncludingMultilineComments","tokenRangeFrom","anyTokenIncludingEOF","tokenRangeFromRange","binaryOperators","binaryKeywordOperators","functionOpenBraceLeftTokenRange","typeScriptOpenBraceLeftTokenRange","controlOpenBraceLeftTokenRange","rule","isNonJsxSameLineTokenContext","isNotBinaryOpContext","isNotTypeAnnotationContext","isNextTokenParentNotJsxNamespacedName","isConditionalOperatorContext","isNonOptionalPropertyContext","isNotPropertyAccessOnIntegerLiteral","isImportTypeContext","isNotStatementConditionContext","isBinaryOpContext","isMultilineBlockContext","isAfterCodeBlockContext","isObjectContext","isControlDeclContext","isFunctionDeclarationOrFunctionExpressionContext","isFunctionDeclContext","isYieldOrYieldStarWithOperand","isStartOfVariableDeclarationList","isFunctionCallOrNewContext","isPreviousTokenNotComma","isVoidOpContext","isArrowFunctionContext","isNextTokenParentJsxAttribute","isJsxSelfClosingElementContext","isJsxAttributeContext","isNextTokenParentJsxNamespacedName","isModuleDeclContext","isObjectTypeContext","isTypeArgumentOrParameterOrAssertionContext","isNotFunctionDeclContext","isNonTypeAssertionContext","isEndOfDecoratorContextOnSameLine","isNonNullAssertionContext","isConstructorSignatureContext","isOptionEnabled","isOptionDisabledOrUndefined","isNonJsxElementOrFragmentContext","isNextTokenNotCloseBracket","isNextTokenNotCloseParen","isOptionEnabledOrUndefined","isBraceWrappedContext","isOptionDisabled","isNonJsxTextContext","isJsxExpressionContext","isForContext","isBeforeMultilineBlockContext","isTypeScriptDeclWithBlockContext","isTypeAssertionContext","isTypeAnnotationContext","optionEquals","isSemicolonDeletionContext","isSemicolonInsertionContext","isOptionDisabledOrUndefinedOrTokensOnSameLine","isNotFormatOnEnter","isSameLineTokenOrBeforeBlockContext","isBeforeBlockContext","isNotBeforeBlockInFunctionDeclarationContext","isNotForContext","debugName","leftTokenRange","toTokenRange","rightTokenRange","except","contextKind","isOptionalPropertyContext","isSingleLineBlockContext","isBlockContext","nodeIsBlockContext","nodeIsTypeScriptDeclWithBlockContext","blockParent","isFunctionCallContext","isNewContext","nodeIsInDecoratorContext","isTypeArgumentOrParameterOrAssertion","isStatementConditionContext","nextTokenKind","nextTokenStart","nextRealToken","getRules","getRulesMap","createRulesMap","rules","buildMap","mapRowLength","rulesBucketConstructionStateList","rule2","specificRule","getRuleBucketIndex","rulesBucket","addRule","rules2","ruleActionMask","acceptRuleActions","getRuleActionExclusion","ruleAction","RulesPosition2","internedSizes","internedTabsIndentation","internedSpacesIndentation","maskBitSize","mask","RulesPosition","specificTokens","constructionState","rulesBucketIndex","StopRulesAny","ContextRulesSpecific","ContextRulesAny","NoContextRulesSpecific","NoContextRulesAny","getInsertionIndex","indexBitmap","maskPosition","increaseInsertionIndex","textRangeWithKind","endOfFormatSpan","formatSpan","formatNodeLines","findOutermostNodeWithinListLevel","findImmediatelyPrecedingTokenOfKind","openingCurly","expectedTokenKind","isListElement","formatSpanWorker","requestKind","originalRange","findEnclosingNode","getScanStartPosition","getIndentationForNode","getOwnOrInheritedDelta","previousLine","prepareRangeContainsErrorFunction","rangeHasNoErrors","e1","e2","formattingScanner","rangeContainsError","formattingContext","previousRangeTriviaEnd","previousRange","previousParent","previousRangeStartLine","lastIndentedLine","indentationOnLastIndentedLine","undecoratedStartLine","nodeStartLine","undecoratedNodeStartLine","delta2","nodeDynamicIndentation","getDynamicIndentation","childContextNode","processChildNode","processChildNodes","consumeTokenAndAdvanceScanner","inheritedIndentation","parentDynamicIndentation","parentStartLine","undecoratedParentStartLine","isListItem","isFirstListItem","childStartPos","childStartLine","undecoratedChildStartLine","childIndentationAmount","tryComputeIndentationForListItem","startLinePosition","baseIndentSize","getBaseIndentation","effectiveParentStartLine","childIndentation","computeIndentation","getDelta","childStartsOnTheSameLineWithElseInIfStatement","childIsUnindentedBranchOfConditionalExpression","argumentStartsOnSameLineAsPreviousArgument","listStartToken","getOpenTokenForList","listDynamicIndentation","indentationOnListStartToken","listEndToken","getCloseTokenForOpenToken","currentTokenInfo","dynamicIndentation","isListEndToken","lastTriviaWasNewLine","indentToken","processTrivia","lineAction","isTokenInRange","rangeHasError","savePreviousRange","processRange","prevEndLine","tokenIndentation","getIndentationForToken","indentNextTokenOrTrivia","commentIndentation","getIndentationForComment","indentTriviaItems","insertIndentation","remainingTrivia","nodeWillIndentChild","trimTrailingWhitespacesForRemainingRange","trivias","trimTrailingWitespacesForPositions","processPair","suppressDelta","shouldAddDelta","getFirstNonDecoratorTokenOfNode","recomputeIndentation","lineAdded","indentSingleLine","triviaItem","triviaInRange","indentMultilineComment","rangeStart","trimTrailingWhitespacesForLines","currentItem","currentStartLine","previousItem","previousStartLine","previousParent2","trimTrailingWhitespaces","applyRuleEdits","previousRange2","onLaterLine","recordDelete","recordReplace","recordInsert","indentationString","characterToColumn","characterInLine","indentationIsDifferent","firstLineIsIndented","indentFinalLine","endOfLine","startLinePos","nonWhitespaceColumnInFirstPart","findFirstNonWhitespaceCharacterAndColumn","startLinePos2","nonWhitespaceCharacterAndColumn","newIndentation","line1","line2","lineEndPosition","whitespaceStart","getTrailingWhitespaceStartPosition","spacesString","quotient","remainder","tabs","spaces","tabString","SmartIndenter2","Value","Value2","getIndentationForNodeWorker","currentStart","ignoreActualIndentationRange","indentationDelta","isNextChild","useActualIndentation","containingListOrParentStart","getContainingListOrParentStart","parentAndChildShareLine","firstListChild","actualIndentation","getActualIndentationForListItem","getStartLineAndCharacterForNode","getActualIndentationForNode","useTrueStart","isArgumentAndStartLineOverlapsExpressionBeingCalled","currentLineAndChar","findColumnForFirstNonWhitespaceCharacterInLine","NextTokenKind","NextTokenKind2","nextTokenIsCurlyBraceOnSameLineAsCursor","lineAtPosition","getListByRange","getList","getVisualListRange","getActualIndentationForListStartLine","listIndentsChild","deriveActualIndentationFromList","lineAndCharacter","indentByDefault","childKind","indentMultiLineObjectLiteralBeginningOnBlankLine","rangeIsOnOneLine","isControlFlowEndingStatement","assumeNewLineBeforeCloseBrace","enclosingCommentRange","getCommentIndent","commentStartLine","startPositionOfLine","firstNonWhitespaceCharacterCode","isObjectLiteral","getBlockIndent","getActualIndentationForListItemBeforeComma","commaToken","commaItemInfo","containerList","getListByPosition","getSmartIndent","conditionEndLine","trueStartLine","trueEndLine","currentIndex","copiedFromRange","shouldProvidePasteEdits","checkNameResolution","fixId55","actualPastedText","runWithTemporaryFileUpdate","updatedProgram","originalProgram","updatedFile","statementsInSourceFile","originalProgramTypeChecker","usageInfoRange","getUsageInfoRangeForPasteEdits","oldTextLength","textToBePasted","importUnresolvedIdentifiers","paste","ts_exports2","ts_server_exports3","typeScriptVersion2","enableDeprecationWarnings","formatDeprecationMessage","errorAfter","since","deprecationMessage","createDeprecation","getTypeScriptVersion","warnAfter","createErrorDeprecation","TypeError","createWarningDeprecation","hasWrittenDeprecation","deprecate","wrapFunction","deprecation","binder2","deprecations","createBinder2","finish","AutoImportProviderProject","AuxiliaryProject","CharRangeSection","CloseFileWatcherEvent","CommandNames","ConfigFileDiagEvent","ConfiguredProject","ConfiguredProject2","ConfiguredProjectLoadKind","CreateDirectoryWatcherEvent","CreateFileWatcherEvent","Errors","ExternalProject","GcTimer","InferredProject","InferredProject2","LargeFileReferencedEvent","LineIndex","LineLeaf","LineNode","LogLevel2","Msg","OpenFileInfoTelemetryEvent","Project","Project2","ProjectInfoTelemetryEvent","ProjectKind","ProjectLanguageServiceStateEvent","ProjectLoadingFinishEvent","ProjectLoadingStartEvent","ProjectService","ProjectService2","ProjectsUpdatedInBackgroundEvent","ScriptInfo","ScriptVersionCache","Session3","TextStorage","ThrottledOperations","TypingsInstallerAdapter","allFilesAreJsOrDts","allRootFilesAreJsOrDts","asNormalizedPath","convertCompilerOptions","convertFormatOptions","convertScriptKindName","convertTypeAcquisition","convertUserPreferences","convertWatchOptions","countEachFileTypes","createInstallTypingsRequest","createModuleSpecifierCache","createNormalizedPathMap","createPackageJsonCache","createSortedArray2","emptyArray2","formatDiagnosticToProtocol","formatMessage2","getBaseConfigFileName","getDetailWatchInfo","getLocationInNewDocument","hasNoTypeScriptSource","isBackgroundProject","isConfigFile","isConfiguredProject","isDynamicFileName","isExternalProject","isInferredProject","isInferredProjectName","isProjectDeferredClose","makeAutoImportProviderProjectName","makeAuxiliaryProjectName","makeInferredProjectName","maxFileSize","maxProgramSizeForNonTsFiles","normalizedPathToPath","nullCancellationToken","nullTypingsInstaller","protocol","ts_server_protocol_exports","scriptInfoIsContainedByBackgroundProject","scriptInfoIsContainedByDeferredClosedProject","toEvent","toNormalizedPath","tryConvertScriptKindName","typingsInstaller","ts_server_typingsInstaller_exports","updateProjectIfDirty","TypingsInstaller","getNpmCommandForInstallation","installNpmPackages","typingsName","nullLog","typingToFileName","cachePath","installTypingHost","npmPath","tsVersion","install","remaining","sliceStart","toSlice","typesMapLocation","throttleLimit","missingTypingsSet","knownCachesSet","projectWatchers","pendingRunRequests","installRunCount","inFlightRequestCount","latestDistTag","processCacheLocation","handleRequest","closeProject","sendResponse","closeWatchers","initializeSafeList","discoverTypingsResult","watchFiles","installTypings","createSetTypings","installWorker","safeListFromMap","cacheLocation","packageLockJson","npmConfig","npmLock","typingFile","existingTypingFile","newTyping","filterTypings","typingsToInstall","typingKey","validationResult","Ok","ensurePackageDirectoryExists","npmConfigPath","ensureDirectoryExists","currentlyCachedTypings","filteredTypings","requestId","eventId","typingsInstallerVersion","scopedTypings","installTypingsAsync","installedTypingFiles","distTags","packagesToInstall","installSuccess","newSet","onRequestCompleted","executeWithThrottling","Errors2","Msg2","getProjectName","getExcludedFiles","normalizedPath","ThrowNoProject","ThrowProjectLanguageServiceDisabled","ThrowProjectDoesNotContainDocument","_ThrottledOperations","pendingTimeouts","hasLevel","schedule","operationId","delay","pendingTimeout","run","cancel","_GcTimer","scheduleCollect","timerId","perftrc","CommandTypes","IndentStyle2","JsxEmit2","ModuleKind2","ModuleResolutionKind2","NewLineKind2","PollingWatchKind2","ScriptTarget11","WatchDirectoryKind2","WatchFileKind2","CommandTypes2","initialVersion","isOpen","ownFileText","pendingReloadFromDisk","getVersion","svc","getSnapshotVersion","hasScriptVersionCache_TestOnly","resetSourceMapInfo","closeSourceMapFileWatcher","declarationInfoPath","documentPositionMapper","useText","textSnapshot","fileSize","switchToScriptVersionCache","reload","getSnapshot","reloadWithFileText","tempFileName","isDynamicOrHasMixedContent","getFileTextAndSize","reloaded","mTime","scheduleReloadIfNeeded","delayReloadFromFileIntoText","getTelemetryFileSize","tryUseScriptVersionCache","getAbsolutePositionAndLineText","oneBasedLine","getLineMap","absolutePosition","lineToTextSpan","lineOffsetToPosition","positionToLineOffset","containingProjects","projectService","sendLargeFileReferencedEvent","getOrLoadText","hasMixedContent","isDynamic","textStorage","isScriptOpen","markContainingProjectsAsDirty","ensureRealPath","realpathToScriptInfos","getRealpathIfDifferent","getFormatCodeSettings","getPreferences","attachToProject","isNew","isAttached","onFileAddedOrRemoved","detachFromProject","detachAllProjects","getRootFilesMap","removeFile","addMissingFileRoot","getDefaultProject","firstConfiguredProject","firstInferredProject","firstNonSourceOfProjectReferenceRedirect","defaultConfiguredProject","deferredClose","findDefaultConfiguredProject","registerFileUpdate","setOptions","getLatestVersion","saveTo","delayReloadNonMixedContentFile","reloadFromFile","editContent","markFileAsDirty","isOrphan","deferredDelete","failIfInvalidPosition","failIfInvalidLocation","ProjectKind2","includeSizes","jsSize","jsxSize","tsSize","tsx","tsxSize","dtsSize","deferred","deferredSize","getRootScriptInfos","getScriptInfos","isGeneratedFileWatcher","generatedFilePath","setIsEqualTo","arr1","arr2","isSet","_Project","projectKind","hasExplicitListOfFiles","lastFileExceededProgramSize","compileOnSaveEnabled","rootFilesMap","plugins","cachedUnresolvedImportsPerFile","hasAddedorRemovedFiles","hasAddedOrRemovedSymlinks","lastReportedVersion","projectProgramVersion","projectStateVersion","initialLoadPending","dirty","typingFiles","hasDeferredExtension","serverMode","languageServiceEnabled","setInternalCompilerOptionsForEmittingJsFiles","loggingEnabled","canUseWatchEvents","languageService","disableLanguageService","markAsDirty","pendingEnsureProjectForOpenFiles","onProjectCreation","isNonTsProject","isJsOnlyProject","hasOneOrMoreJsAndNoTsFiles","resolveModule","importServicePluginSync","pluginConfigEntry","searchPaths","errorLogs","importServicePluginAsync","importPlugin","getTypeAcquisition","getOrCreateScriptInfoAndAttachToProject","scriptInfo","getOrCreateScriptInfoNotOpenedByClient","getScriptInfoForPath","filename","isWatchedMissingFile","watchFactory","getWatchOptions","clearInvalidateResolutionOfFailedLookupTimer","throttledOperations","delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles","delayEnsureProjectForOpenFiles","openFiles","getGlobalProjectErrors","projectErrors","getAllProjectErrors","setProjectErrors","getLanguageService","ensureSynchronized","shouldEmitFile","getCompileOnSaveAffectedFileList","builderState","emitFile","dtsFiles","enableLanguageService","onUpdateLanguageServiceStateForProject","cleanupProgram","detachScriptInfoIfNotRoot","detachScriptInfoFromProject","autoImportProviderHost","clearGeneratedFileWatch","verifyDocumentRegistry","removeLocalTypingsFromTypeAcquisition","newTypeAcquisition","removeExistingTypings","getExternalFiles","plugin","getSourceFileOrConfigFile","typingsCache","onProjectClosed","closeWatchingTypingLocations","externalFiles","externalFile","packageJsonWatches","exportMapCache","noDtsResolutionProject","uncheckedFilename","getScriptInfo","isRoot","hasRoots","getRootFiles","excludeFilesFromExternalLibraries","excludeConfigFiles","defaultLibrary","getFileNamesWithRedirectInfo","includeProjectReferenceRedirectInfo","hasConfigFile","containsScriptInfo","containsFile","requireOpen","getScriptInfoForNormalizedPath","removeRoot","updatedFileNames","changedFile","changedFilesForExportMapCache","markAutoImportProviderAsDirty","onAutoImportProviderSettingsChanged","onPackageJsonChange","updateGraph","hasNewProgram","updateGraphWorker","changedFiles","lastCachedUnresolvedImportsList","getUnresolvedImports","extractUnresolvedImportsFromSourceFile","enqueueInstallTypingsForProject","isFirstProgramLoad","forceRefresh","typeAcquisitionChanged","opt1","opt2","compilerOptionsChanged","unresolvedImportsChanged","imports1","imports2","enqueueInstallTypingsRequest","updateTypingFiles","newTypings","removed","typingWatchers","onTypingInstallerWatchInvoke","isInvoked","updateTypingsForProject","watchTypingLocations","createProjectWatcher","typingsWatcherType","subDirectory","addMissingFileWatcher","generatedFilesMap","isValidGeneratedFileWatcher","verifyProgram","oldExternalFiles","sendPerformanceEvent","isTestLogger","durationMs","uncheckedFileName","noRemoveResolution","scriptInfoToDetach","configFileExistenceInfo","configFileExistenceInfoCache","canonicalConfigFilePath","addGeneratedFileWatch","createGeneratedFileWatcher","generateFile","filesToString","writeProjectFileNames","filesToStringWorker","writeFileExplaination","writeFileVersionAndText","strBuilder","setCompilerOptions","getCompilerOptionsForNoDtsResolutionProject","setWatchOptions","setTypeAcquisition","getChangesSinceVersion","lastKnownVersion","includeProjectReferenceRedirectInfoIfRequested","isInferred","languageServiceDisabled","lastReportedFileNames","currentFiles","updatedRedirects","projectFileNames","getGlobalPluginSearchPaths","pluginProbeLocations","enableGlobalPlugins","globalPlugins","globalPluginName","enablePlugin","requestEnablePlugin","enableProxy","pluginModuleFactory","configEntry","languageServiceHost","serverHost","pluginModule","typescript","newLS","onPluginConfigurationChanged","pluginName","configuration","onConfigurationChanged","refreshDiagnostics","sendProjectsUpdatedInBackgroundEvent","getPackageJsonsForAutoImport","getPackageJsonCache","packageJsonCache","clearCachedExportInfoMap","includePackageJsonAutoImports","isDefaultProjectForOpenFiles","getHostForAutoImportProvider","dependencySelection","_projectRootPath","tryGetDefaultProjectForFile","watchNodeModulesForPackageJsonChanges","watchPackageJsonsInNodeModules","getNoDtsResolutionProject","setFileNamesOfAutoImportProviderOrAuxillaryProject","rootSourceFile","originalText","newInferredProjectName","_isJsInferredProject","useSingleInferredProject","canonicalCurrentDirectory","toggleJsInferredProject","isJsInferredProject","startWatchingConfigFilesForInferredProjectRoot","stopWatchingConfigFilesForScriptInfo","rootInfo","isProjectWithSingleRoot","hostProject","newAuxiliaryProjectName","_AutoImportProviderProject","initialRootNames","newAutoImportProviderProjectName","dependencyNames","rootFileName","dependenyName","addDependency","dependenciesAdded","maxDependencies","getRootNamesFromPackageJson","addRootNames","typesPackageJson","referencesAddded","getHostPreferences","filterEntrypoints","dependency","entrypoint","symlinkName","compilerOptionsOverrides","hasSameSetOfFiles","pendingUpdateReason","openFileWatchTriggered","sendLoadingProjectFinish","pendingUpdateLevel","exists","ensureParsedConfigUptoDate","watchWildcards","releaseParsedConfig","stopWatchingWildCards","isDirty","reloadFileNamesOfConfiguredProject","reloadConfiguredProject","sendProjectLoadingFinishEvent","sendProjectTelemetry","triggerFileForConfigFileDiag","sendConfigFileDiagEvent","getConfigFilePath","updateReferences","potentialProjectReferences","setPotentialProjectReference","canonicalConfigPath","enablePluginsWithOptions","allowLocalPluginLoads","_configFileExistenceInfo","updateErrorOnNoInputFiles","externalProjectName","projectFilePath","excludedFiles","ensureProjectForOpenFileSchedule","prepareConvertersForEnumLikeCompilerOptions","compilerOptionConverters","watchOptionsConverters","smart","defaultTypeSafeList","protocolOptions","mappedValues","scriptKindName","lazyConfiguredProjectsFromExternalProject","fileNamePropertyReader","getFileName","fileExtension","externalFilePropertyReader","findProjectByName","attach","noopConfigFileWatcher","getConfigFileNameFromCache","configFileForOpenFile","isAncestorConfigFileInfo","isOpenScriptInfo","infoOrFileNameOrConfig","configFileInfo","ConfiguredProjectLoadKind2","toConfiguredProjectLoadOptimized","forEachAncestorProjectLoad","allowDeferredClosed","reloadedProjects","searchOnlyPotentialSolution","delayReloadedConfiguredProjects","disableSolutionSearching","getConfigFileNameForFile","isForDefaultProject","findCreateOrReloadConfiguredProject","forEachResolvedProjectReferenceProjectLoad","parentConfig","loadKind","disableReferencedProjectLoad","childConfigName","childCanonicalConfigPath","seenValue","childConfig","resolvedChildConfigs","childProject","findConfiguredProjectByProjectName","reloadConfiguredProjectOptimized","updateProjectFoundUsingFind","triggerFile","sentConfigFileDiag","useConfigFileExistenceInfoForOptimizedLoading","configFileExistenceInfoForOptimizedLoading","updateConfiguredProject","updateWithTriggerFile","reloadConfiguredProjectClearingSemanticCache","forEachPotentialProjectReference","callbackRefProject","refProject","configuredProjects","forEachReferencedProject","forEachAnyProjectReferenceKind","cbProjectRef","cbPotentialProjectRef","projectRef","potentialProjectRef","isScriptInfoWatchedFromNodeModules","isReload","sent","reloadReason","setProjectOptionsUsed","projectOptions","createProjectNameFactoryWithCounter","nameFactory","getHostWatcherMap","idToCallbacks","pathToId","getCanUseWatchEvents","service","eventHandler","createWatchFactoryHostUsingWatchEvents","watchedDirectoriesRecursive","addProtocolHandler","onWatchChange","onWatchChangeRequestArgs","responseRequired","getOrCreateFileWatcher","ignoreUpdate","callbacks2","created","onWatchEventType","forEachCallback","eventPath","hostWatcherMap","eventPaths","_ProjectService","filenameToScriptInfo","nodeModulesWatchers","filenameToScriptInfoVersion","allJsFilesForOpenFileTelemetry","externalProjectToConfiguredProjectMap","externalProjects","inferredProjects","configFileForOpenFiles","rootOfInferredProjects","openFilesWithNonRootedDiskPath","compilerOptionsForInferredProjectsPerProjectRoot","watchOptionsForInferredProjectsPerProjectRoot","typeAcquisitionForInferredProjectsPerProjectRoot","projectToSizeMap","safelist","legacySafelist","pendingProjectUpdates","seenProjects","baseline","useInferredProjectPerProjectRoot","suppressDiagnosticEvents","globalCacheLocationDirectoryPath","hostConfiguration","formatCodeOptions","hostInfo","incrementalVerifier","cacheSourceFile","ensureInferredProjectsUpToDate_TestOnly","ensureProjectStructuresUptoDate","getCompilerOptionsForInferredProjects","compilerOptionsForInferredProjects","fileContent","typesMap","findProject","ensureProjectForOpenFiles","delayUpdateProjectGraph","hasPendingProjectUpdate","sendProjectLoadingStartEvent","performanceEventHandler","delayUpdateProjectGraphs","setCompilerOptionsForInferredProjects","canonicalProjectRootPath","watchOptionsForInferredProjects","typeAcquisitionForInferredProjects","findExternalProjectByProjectName","forEachProject","forEachEnabledProject","getDefaultProjectForFile","ensureProject","ensureDefaultProjectForFile","fileNameOrScriptInfo","tryGetDefaultProjectForEnsuringConfiguredProjectForFile","pendingOpenFileProjectUpdates","tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo","assignOrphanScriptInfoToInferredProject","doEnsureDefaultProjectForFile","logErrorForScriptInfoNotFound","getScriptInfoEnsuringProjectsUptoDate","getFormatCodeOptions","getHostFormatCodeOptions","onSourceFileChanged","handleDeletedFile","handleSourceMapProjects","sourceMapFileInfo","delayUpdateSourceInfoProjects","delayUpdateProjectsOfScriptInfoPath","deleteScriptInfo","onWildCardDirectoryWatcherInvoke","getWatchOptionsFromProjectWatchOptions","watcher2","wildCardWatcher","fsResult","addOrUpdate","watchPackageJsonFile","sendSourceFileChange","configuredProjectForConfig","watchWildcardDirectories","projectCanonicalPath","getConfiguredProjectByCanonicalConfigFilePath","loadLevelToSet","delayUpdateProjectsFromParsedConfigOnConfigFileChange","loadReason","scheduledAnyProjectUpdate","_watchWildcardDirectories","openFilesImpactedByConfigFile","onConfigFileChanged","wasDefferedClose","removeProject","getOrCreateInferredProjectForProjectRootPathIfEnabled","getOrCreateSingleInferredProjectIfEnabled","getOrCreateSingleInferredWithoutProjectRoot","inferredProject","assignOrphanScriptInfosToInferredProject","closeOpenFile","skipAssignOrphanScriptInfosToInferredProject","ensureProjectsForOpenFiles","watchClosedScriptInfo","stopWatchingScriptInfo","configFileExists","createConfigFileWatcherForParsedConfig","forProject","ensureConfigFileWatcherForProject","inferredProjectRoots","isRootOfInferredProject","forEachConfigFileLocation","_filename","isSearchPathInProjectRoot","anySearchPathOk","searchTsconfig","searchJsconfig","canonicalSearchPath","tsconfigFileName","jsconfigFileName","findDefaultConfiguredProjectWorker","defaultProject","tryFindDefaultConfiguredProjectForOpenScriptInfo","getConfigFileNameForFileFromCache","lookInPendingFilesForValue","setConfigFileNameForFileInCache","findFromCacheOnly","printProjects","startGroup","printProjectWithoutFileNames","endGroup","projectFileName","getFilenameForExceededTotalSizeLimitForNonTsFiles","propertyReader","disableSizeLimit","availableSpace","totalNonTsFileSize","top5LargestFiles","f2","createExternalProject","watchOptionsAndErrors","addFilesToNonInferredProject","projectId","fileStats","convertTypeAcquisition2","enable2","configHasExtendsProperty","configHasFilesProperty","configHasIncludeProperty","configHasExcludeProperty","projectType","updateNonInferredProjectFiles","createConfiguredProject","loadConfiguredProject","configFilename","filesToAdd","updateRootAndOptionsOfNonInferredProject","reloadFileNamesOfParsedConfig","configFileContent","configFileErrors","oldCommandLine","watchedDirectoriesStale","projectRootFilesMap","newRootScriptInfoMap","newRootFile","getOrCreateScriptInfoNotOpenedByClientForNormalizedPath","removeRootOfInferredProjectIfNowPartOfOtherProject","newUncheckedFiles","setProjectForReload","clearSemanticCache","originalConfiguredProjects","configDiagDiagnosticsReported","createInferredProject","expectedCurrentDirectory","isSingleInferredProject","hostToQueryFileExistsOn","deferredDeleteOk","getScriptInfoOrConfig","configProject","getSymlinkedProjects","combineProjects","toAddInfo","projs","indexOfNodeModules","watchClosedScriptInfoInNodeModules","createNodeModulesWatcher","affectedModuleSpecifierCacheProjects","refreshScriptInfoRefCount","refreshScriptInfosInDirectory","refreshScriptInfo","watchDir","watchDirPath","getOrCreateScriptInfoWorker","getOrCreateScriptInfoForNormalizedPath","openedByClient","hostCurrentDirectory","openKeys","declarationInfo","sourceMapFileInfo2","addSourceInfoToSourceMap","mapFileNameFromDts","mapInfo","addMissingSourceMapFile","projectNameOrProject","sourceMapInfo","lineOffset","setPerformanceEventHandler","setHostConfiguration","reloadProjects","beforeSubstitution","hostWatchOptions","closeLog","inPath","_project","reloadedConfiguredProjects","cleanupProjectsAndScriptInfos","firstProject","_config","openClientFile","openClientFileWithNormalizedPath","getOriginalLocationEnsuringConfiguredProject","originalFileInfo","configuredProject","tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo","project2","addOriginalConfiguredProject","originalScriptInfo","originalProject","findExternalProjectContainingOpenScriptInfo","getOrCreateOpenScriptInfo","assignProjectToOpenedScriptInfo","retainProjects","sentConfigDiag","delayLoad","projectForConfigFile","configFileExistenceInfoForOptimizedReplay","optimizedKind","fileOpenReason","isMatchedByConfig","initialConfigResult","referencedProjectReason","infoIsOpenScriptInfo","seenConfigs","possiblyDefault","tsconfigOfDefault","tsconfigOfPossiblyDefault","tryFindDefaultConfiguredProject","tsconfigProject","isDefaultProjectOptimized","isDefaultConfigFileExistenceInfo","isDefaultProject","tryFindDefaultConfiguredProjectFromReferences","tryFindDefaultConfiguredProjectFromAncestor","projectWithInfo","loadAncestorProjectTree","forProjects","currentConfiguredProjects","potentialRefPath","ensureProjectChildren","referencedProject","cleanupConfiguredProjects","toRetainConfiguredProjects","externalProjectsRetainingConfiguredProjects","openFilesWithRetainedConfiguredProject","getOrphanConfiguredProjects","removeOrphanScriptInfos","tryInvokeWildCardDirectories","telemetryOnOpenFile","toRemoveConfiguredProjects","markOriginalProjectsAsUsed","configuredProjectPath","retainConfiguredProject","isPendingUpdate","isRetained","toRemoveScriptInfos","closeClientFile","collectChanges","lastKnownProjectVersions","knownProject","synchronizeProjectList","knownProjects","applyChangesInOpenFiles","closedFiles","existingOpenScriptInfos","openScriptInfos","applyChangesToFile","closeExternalProject","cleanupAfter","externalProject","openExternalProjects","projectsToClose","openExternalProject","escapeFilenameForRegex","filenameEscapeRegexp","resetSafeList","applySafeList","applySafeListWorker","typeAcqInclude","excludeRules","normalizedNames","processedRule","groupNumberOrString","filesToKeep","addExcludedFile","existingExternalProject","excludeResult","importPromise","pendingPluginEnablements","promises","endEnablePlugin","configurationOverride","currentPluginConfigOverrides","hasNewPluginEnablementRequests","hasPendingPluginEnablements","currentPluginEnablementPromise","waitForPendingPlugins","enableRequestedPlugins","enableRequestedPluginsAsync","enableRequestedPluginsWorker","pendingPlugins","configurePlugin","processDirectory","directoryHasPackageJson","searchDirectoryAndAncestors","getInDirectory","packageJsonFilesMap","invalidate","createIncompleteCompletionsCache","containedNodeModulesWatchers","currentKey","ensureCache","createInfo","cache2","directoriesWithoutPackageJson","ancestorPath","setRequest","resetRequest","isDeclarationFileInJSOnlyNonConfiguredProject","formatDiag","formatRelatedInformation","convertToLocation","includeFileName","common","byteLength","verboseLogging","MultistepOperation","operationHost","startNew","complete","getCurrentRequestId","executeAction","sendRequestCompletedEvent","performanceData","setTimerHandle","setImmediateId","actionType","getServerHost","setImmediate","immediateId","executeWithRequestId","ms","timerHandle","stop","seq","logError","getPerformanceData","hasPendingWork","clearImmediate","createDocumentSpanSet","getDefinitionLocation","initialLocation","forEachProjectInProjects","symLinkedProjects","symlinkedProjects","symlinkedPath","getPerProjectReferences","defaultDefinition","mapDefinitionInProject2","getResultsForPosition","forPositionInResult","resultsMap","getGeneratedDefinition","getSourceDefinition","searchedProjectKeys","onCancellation","isLocationProjectReferenceRedirect","projectResults","searchPosition","getProjectKey","symlinkedProjectsMap","symlinkedProject","mapDefinitionInProjectIfFileInProject","mapDefinitionInProject","generatedDefinition","sourceDefinition","documentSpanLocation","getMappedLocationForProject","getMappedDocumentSpanForProject","getMappedContextSpanForProject","invalidPartialSemanticModeCommands","invalidSyntacticModeCommands","_Session","changeSeq","regionDiagLineCountThreshold","requiredResponse","convertToDiagnosticsWithLinePosition","notRequired","getDefinition","findSourceDefinition","getTypeDefinition","getImplementation","getRenameLocations","getQuickInfoWorker","getBreakpointStatement","isValidBraceCompletion","getDocCommentTemplate","getFormattingEditsForDocumentFull","getFormattingEditsAfterKeystrokeFull","getFormattingEditsForRangeFull","getCompletions","getSemanticDiagnosticsSync","getSyntacticDiagnosticsSync","getSuggestionDiagnosticsSync","errorCheck","getDiagnosticsForProject","reloadFinished","savetoArgs","saveToTmp","tmpfile","closeArgs","getBraceMatching","getProjectInfo","getJsxClosingTag","getLinkedEditingRange","getCodeFixes","getCopilotRelatedInfo","hrtime","canUseEvents","noGetErrOnBackgroundUpdate","defaultEventHandler","multistepOperationHost","currentRequestId","cmd","gcTimer","commandName","request_seq","toProtocolPerformanceData","addPerformanceData","addDiagnosticsPerformanceData","fileDiagnosticDuration","diagnosticsDuration","projectsUpdatedInBackgroundEvent","telemetryEventName","payload","updateErrorCheck","logErrorWorker","fileRequest","getFileAndProject","addProjectInfo","send","writeMessage","msgText","doOutput","cmdName","reqSeq","infoMetadata","semanticCheck","diagnosticsStartTime","sendDiagnosticsEvent","syntacticCheck","suggestionCheck","regionSemanticCheck","diagnosticsResult","shouldDoRegionCheck","toProtocolTextSpan","checkList","followMs","goNext","checkOne","doSemanticCheck","disableSuggestions","toPendingErrorCheck","getRange","cleanProjects","caption","getFileAndLanguageServiceForSyntacticOperation","getProject","getConfigFileAndProject","getConfigFileDiagnostics","includeLinePosition","diagnosticsForConfigFile","convertToDiagnosticsWithLinePositionFromDiagnosticFile","startLocation","endLocation","isSemantic","selector","simplifiedResult","getPositionInFile","mapDefinitionInfoLocations","mapDefinitionInfo","mapToOriginalLocation","newDocumentSpan","unmappedDefinitionAndBoundSpan","unmappedDefinitions","definitionSet","noDtsProject","jsDefinitions","jsDefinition","refined","tryRefineDefinition","ambientCandidates","getAmbientCandidatesByClimbingAccessChain","initialNode","nameInChain","fileNameToSearch","findImplementationFileFromDtsFileName","noDtsProgram","fileToSearch","searchForDeclaration","resolveFromFile","auxiliaryProject","richResponse","mapJSDocTagInfo","mapDisplayParts","toFileSpan","mapSignatureHelpItems","toFileSpanWithContext","targetTextSpan","targetContextSpan","fileSpan","contextStart","contextEnd","mapImplementationLocations","linkedEditInfo","convertLinkedEditInfoToRanges","linkedEdit","documentHighlights","toProtocolTextSpanWithContext","scriptInfo2","getHostFormatOptions","mapTextChangesToCodeEdits","relatedFiles","getProjectInfoWorker","needFileNameList","needDefaultConfiguredProjectInfo","getFileAndProjectWorker","configuredProjectInfo","getDefaultConfiguredProjectInfo","notMatchedByConfig","notInProject","getProjects","ignoreNoProjectError","mapRenameInfo","locations","getRenameLocationsWorker","perProjectResults","toSpanGroups","_2","_1","prefixSuffixText","getReferencesWorker","defaultProjectResults","updatedProjects","progress","seenRefs","mappedDefinitionFile","symbolToAddTo","nameInfo","symbolDisplayString","symbolStartOffset","referenceEntryToReferencesResponseItem","projectOutputs","getPosition","getFormatOptions","quickInfo","maximumHoverLength","useDisplayParts","displayPartsForJSDoc","displayString","endOffset","convertTextChangeToCodeEdit","allEditsBeforePos","preferredIndent","hasIndent","firstNoWhiteSpacePosition","convertedSpan","fullResult","entryNames","entryName","isCompletionEntryData","mapCodeAction","combineProjectOutput","projects2","dtsChangeCanAffectEmit","projectUsesOutFile","helpItems","fileArgs","insertString","mapLocationNavigationBarItems","toLocationNavigationTree","tree","full","getFullNavigateToItems","navigateToItems","navItem","bakedItem","currentFileOnly","seenItems","addItemsForProject","unseenItems","excludeLibrarySymbolsInNavTo","tryAddSeenItem","seenItem","navigateToItemIsEqualTo","isLocation","locationOrSpan","extractPositionOrRange","getStartAndEndPosition","mappedRenameLocation","copiedTextSpan","copies","startOffset","mapPasteEditsAction","oldPath","projectTextChanges","projectFiles","textChange","mapTextChangeToCodeEdit","existingDiagCodes","badCode","mapCodeFixAction","then","_result","_error","hasScriptInfo","convertNewFileTextChangeToCodeEdit","fileNamesInProject","highPriorityFiles","mediumPriorityFiles","lowPriorityFiles","veryLowPriorityFiles","fileNameInProject","mapSelectionRange","getScriptInfoFromProjectService","normalizedFile","toProtocolCallHierarchyItem","toProtocolCallHierarchyIncomingCall","incomingCall","fromSpan","toProtocolCallHierarchyOutgoingCall","outgoingCall","handler","setCurrentRequest","resetCurrentRequest","perfomanceData","currentPerformanceData","executeCommand","onMessage","relevantFile","toStringMessage","parseMessage","elapsedTime","hrTimeToMilliseconds","canceled","contextTextSpan","locationFromLineAndCharacter","applyEdits","textFilename","isWriteAccess2","disableLineTextInReferences","lineSpan","CharRangeSection2","EditWalker","goSubtree","endBranch","initialText","trailingText","startPath","insertLines","insertedText","suppressTrailingText","linesFromText","branchParent","lastZeroCount","updateCounts","charCount","branchNode","leafNode","insertedNodes","pathIndex","insertionNode","insertAt","insertedNodesLen","_relativeStart","_relativeLength","lineCollection","lineCollectionAtBranch","pre","isLeaf","leaf","relativeStart","relativeLength","ll","TextChange9","deleteLen","getTextChangeRange","_ScriptVersionCache","versions","maxVersions","minVersion","versionToIndex","currentVersionToIndex","changeNumberThreshold","changeLengthThreshold","_getSnapshot","snapIndex","LineIndexSnapshot","lineNumberToInfo","absolutePositionOfStartOfLine","getTextChangesBetweenVersions","oldVersion","newVersion","textChangeRanges","changesSincePreviousVersion","script","lm","load","_LineIndexSnapshot","rangeEnd","oldSnapshot","_LineIndex","checkEdits","zeroBasedColumn","charOffsetToLineInfo","positionToColumnAndLineText","leaves","buildTreeFromBottom","rangeLength","walkFns","accum","deleteLength","checkText","walker","endString","interiorNodes","nodeIndex","lmi","endText","_LineNode","totalChars","totalLines","execWalk","skipChild","childCharCount","adjustedStart","adjustedLength","clen","ej","lineNumberAccumulator","relativePosition","relativeOneBasedLine","positionAccumulator","childLineCount","splitAfter","findChildIndex","shiftNode","splitNodes","splitNodeCount","splitNodeIndex","_TypingsInstallerAdapter","telemetryEnabled","maxActiveRequestCount","activeRequestCount","requestQueue","requestMap","requestedRegistry","packageInstallId","installer","typesRegistryCache","packageInstalledPromise","createInstallerProcess","scheduleRequest","handleMessage","successMessage","installedPackages","eventName2","queuedRequest","requestDelayMillis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis","window","REPO_ROOT","CompilerHost","srcFileData","outFileData","compileTest","tsConfig","formattedDiagnostics","each","resultFilesCount"],"sourceRoot":""} \ No newline at end of file diff --git a/TypeScript/package-lock.json b/TypeScript/package-lock.json new file mode 100644 index 00000000..4a876a04 --- /dev/null +++ b/TypeScript/package-lock.json @@ -0,0 +1,2194 @@ +{ + "name": "typescript-compile", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "typescript-compile", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@dapplets/unicode-escape-webpack-plugin": "^0.1.1", + "@types/node": "^24.2.0", + "ansi-styles": "^6.2.1", + "glob": "^11.0.3", + "path-browserify": "^1.0.1", + "typescript": "^5.9.2", + "undici-types": "^7.13.0", + "util": "^0.12.5", + "webpack": "^5.101.0", + "webpack-cli": "^6.0.1" + } + }, + "node_modules/@dapplets/unicode-escape-webpack-plugin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@dapplets/unicode-escape-webpack-plugin/-/unicode-escape-webpack-plugin-0.1.1.tgz", + "integrity": "sha512-dBcrCWE6ZOOHD1XLe3raXk29CwQSJQCXYx8QNcCMvfG+cZ9tZh1h2OVV7D936pmues8OTm1KhjWeiZXbH30SAg==", + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", + "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.0.tgz", + "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/node/node_modules/undici-types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001731", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", + "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.198", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.198.tgz", + "integrity": "sha512-G5COfnp3w+ydVu80yprgWSfmfQaYRh9DOxfhAxstLyetKaLyl55QrNjx8C38Pc/C+RaDmb1M0Lk8wPEMQ+bGgQ==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "license": "ISC", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz", + "integrity": "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.101.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.2", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", + "colorette": "^2.0.14", + "commander": "^12.1.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.82.0" + }, + "peerDependenciesMeta": { + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/TypeScript/package.json b/TypeScript/package.json new file mode 100644 index 00000000..bbb8bed9 --- /dev/null +++ b/TypeScript/package.json @@ -0,0 +1,29 @@ +{ + "name": "typescript-compile", + "version": "1.0.0", + "description": "A demo project to evaluate TypeScript performance.", + "main": "index.js", + "scripts": { + "test": "node ./src/benchmark-node.mjs", + "clean": "rm -rf dist/* && rm -rf src/gen/*.json", + "import": "node ./build/import-src-project.mjs", + "prebuild": "npm run clean && npm run import", + "build": "webpack", + "build:dev": "npm run prebuild && webpack --mode development" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@dapplets/unicode-escape-webpack-plugin": "^0.1.1", + "@types/node": "^24.2.0", + "ansi-styles": "^6.2.1", + "glob": "^11.0.3", + "path-browserify": "^1.0.1", + "typescript": "^5.9.2", + "undici-types": "^7.13.0", + "util": "^0.12.5", + "webpack": "^5.101.0", + "webpack-cli": "^6.0.1" + } +} diff --git a/TypeScript/src/benchmark-node.mjs b/TypeScript/src/benchmark-node.mjs new file mode 100644 index 00000000..f8d3211e --- /dev/null +++ b/TypeScript/src/benchmark-node.mjs @@ -0,0 +1,14 @@ +import { compileTest } from "./test.mjs"; +import tsConfig from "./gen/immer-tiny/tsconfig.json" with { type: "json" }; +import srcFileData from "./gen/immer-tiny/files.json" with { type: "json" }; + +console.log("Starting TypeScript in-memory compilation benchmark..."); +const startTime = performance.now(); + +compileTest(tsConfig, srcFileData); + +const endTime = performance.now(); +const duration = (endTime - startTime) / 1000; + +console.log(`TypeScript compilation finished.`); +console.log(`Compilation took ${duration.toFixed(2)} seconds.`); diff --git a/TypeScript/src/gen/README.md b/TypeScript/src/gen/README.md new file mode 100644 index 00000000..7885b5d1 --- /dev/null +++ b/TypeScript/src/gen/README.md @@ -0,0 +1,4 @@ +Auto-generated path-to-file-content mapping for an in-memory filesystem +consumed by TypeScript. + +See ../../build/import-src-project.mjs for more details. diff --git a/TypeScript/src/gen/immer-tiny/files.json b/TypeScript/src/gen/immer-tiny/files.json new file mode 100644 index 00000000..959e6cb3 --- /dev/null +++ b/TypeScript/src/gen/immer-tiny/files.json @@ -0,0 +1,120 @@ +{ + "src/internal.ts": "export * from \"./utils/env\"\nexport * from \"./utils/errors\"\nexport * from \"./types/types-external\"\nexport * from \"./types/types-internal\"\nexport * from \"./utils/common\"\nexport * from \"./utils/plugins\"\nexport * from \"./core/scope\"\nexport * from \"./core/finalize\"\nexport * from \"./core/proxy\"\nexport * from \"./core/immerClass\"\nexport * from \"./core/current\"\n", + "src/immer.ts": "import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n", + "src/utils/plugins.ts": "import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n", + "src/utils/errors.ts": "export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n", + "src/utils/env.ts": "// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n", + "src/utils/common.ts": "import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n * Regardless whether they are enumerable or symbols\n */\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void\n): void\nexport function each(obj: any, iter: any) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\tReflect.ownKeys(obj).forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.values (only string-like, enumerables) instead of each()\n\t\tObject.values(obj).forEach(value => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\treturn Object.isFrozen(obj)\n}\n", + "src/types/types-internal.ts": "import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const enum ArchType {\n\tObject,\n\tArray,\n\tMap,\n\tSet\n}\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n", + "src/types/types-external.ts": "import {NOTHING} from \"../internal\"\n\ntype AnyFunc = (...args: any[]) => any\n\ntype PrimitiveType = number | string | boolean\n\n/** Object types that should never be mapped */\ntype AtomicObject = Function | Promise | Date | RegExp\n\n/**\n * If the lib \"ES2015.Collection\" is not included in tsconfig.json,\n * types like ReadonlyArray, WeakMap etc. fall back to `any` (specified nowhere)\n * or `{}` (from the node types), in both cases entering an infinite recursion in\n * pattern matching type mappings\n * This type can be used to cast these types to `void` in these cases.\n */\nexport type IfAvailable =\n\t// fallback if any\n\ttrue | false extends (T extends never\n\t? true\n\t: false)\n\t\t? Fallback // fallback if empty type\n\t\t: keyof T extends never\n\t\t? Fallback // original type\n\t\t: T\n\n/**\n * These should also never be mapped but must be tested after regular Map and\n * Set\n */\ntype WeakReferences = IfAvailable> | IfAvailable>\n\nexport type WritableDraft = {-readonly [K in keyof T]: Draft}\n\n/** Convert a readonly type into a mutable type, if possible */\nexport type Draft = T extends PrimitiveType\n\t? T\n\t: T extends AtomicObject\n\t? T\n\t: T extends ReadonlyMap // Map extends ReadonlyMap\n\t? Map, Draft>\n\t: T extends ReadonlySet // Set extends ReadonlySet\n\t? Set>\n\t: T extends WeakReferences\n\t? T\n\t: T extends object\n\t? WritableDraft\n\t: T\n\n/** Convert a mutable type into a readonly type */\nexport type Immutable = T extends PrimitiveType\n\t? T\n\t: T extends AtomicObject\n\t? T\n\t: T extends ReadonlyMap // Map extends ReadonlyMap\n\t? ReadonlyMap, Immutable>\n\t: T extends ReadonlySet // Set extends ReadonlySet\n\t? ReadonlySet>\n\t: T extends WeakReferences\n\t? T\n\t: T extends object\n\t? {readonly [K in keyof T]: Immutable}\n\t: T\n\nexport interface Patch {\n\top: \"replace\" | \"remove\" | \"add\"\n\tpath: (string | number)[]\n\tvalue?: any\n}\n\nexport type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void\n\n/** Converts `nothing` into `undefined` */\ntype FromNothing = T extends typeof NOTHING ? undefined : T\n\n/** The inferred return type of `produce` */\nexport type Produced = Return extends void\n\t? Base\n\t: FromNothing\n\n/**\n * Utility types\n */\ntype PatchesTuple = readonly [T, Patch[], Patch[]]\n\ntype ValidRecipeReturnType =\n\t| State\n\t| void\n\t| undefined\n\t| (State extends undefined ? typeof NOTHING : never)\n\ntype ReturnTypeWithPatchesIfNeeded<\n\tState,\n\tUsePatches extends boolean\n> = UsePatches extends true ? PatchesTuple : State\n\n/**\n * Core Producer inference\n */\ntype InferRecipeFromCurried = Curried extends (\n\tbase: infer State,\n\t...rest: infer Args\n) => any // extra assertion to make sure this is a proper curried function (state, args) => state\n\t? ReturnType extends State\n\t\t? (\n\t\t\t\tdraft: Draft,\n\t\t\t\t...rest: Args\n\t\t ) => ValidRecipeReturnType>\n\t\t: never\n\t: never\n\ntype InferInitialStateFromCurried = Curried extends (\n\tbase: infer State,\n\t...rest: any[]\n) => any // extra assertion to make sure this is a proper curried function (state, args) => state\n\t? State\n\t: never\n\ntype InferCurriedFromRecipe<\n\tRecipe,\n\tUsePatches extends boolean\n> = Recipe extends (draft: infer DraftState, ...args: infer RestArgs) => any // verify return type\n\t? ReturnType extends ValidRecipeReturnType\n\t\t? (\n\t\t\t\tbase: Immutable,\n\t\t\t\t...args: RestArgs\n\t\t ) => ReturnTypeWithPatchesIfNeeded // N.b. we return mutable draftstate, in case the recipe's first arg isn't read only, and that isn't expected as output either\n\t\t: never // incorrect return type\n\t: never // not a function\n\ntype InferCurriedFromInitialStateAndRecipe<\n\tState,\n\tRecipe,\n\tUsePatches extends boolean\n> = Recipe extends (\n\tdraft: Draft,\n\t...rest: infer RestArgs\n) => ValidRecipeReturnType\n\t? (\n\t\t\tbase?: State | undefined,\n\t\t\t...args: RestArgs\n\t ) => ReturnTypeWithPatchesIfNeeded\n\t: never // recipe doesn't match initial state\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport interface IProduce {\n\t/** Curried producer that infers the recipe from the curried output function (e.g. when passing to setState) */\n\t(\n\t\trecipe: InferRecipeFromCurried,\n\t\tinitialState?: InferInitialStateFromCurried\n\t): Curried\n\n\t/** Curried producer that infers curried from the recipe */\n\t(recipe: Recipe): InferCurriedFromRecipe<\n\t\tRecipe,\n\t\tfalse\n\t>\n\n\t/** Curried producer that infers curried from the State generic, which is explicitly passed in. */\n\t(\n\t\trecipe: (\n\t\t\tstate: Draft,\n\t\t\tinitialState: State\n\t\t) => ValidRecipeReturnType\n\t): (state?: State) => State\n\t(\n\t\trecipe: (\n\t\t\tstate: Draft,\n\t\t\t...args: Args\n\t\t) => ValidRecipeReturnType,\n\t\tinitialState: State\n\t): (state?: State, ...args: Args) => State\n\t(recipe: (state: Draft) => ValidRecipeReturnType): (\n\t\tstate: State\n\t) => State\n\t(\n\t\trecipe: (state: Draft, ...args: Args) => ValidRecipeReturnType\n\t): (state: State, ...args: Args) => State\n\n\t/** Curried producer with initial state, infers recipe from initial state */\n\t(\n\t\trecipe: Recipe,\n\t\tinitialState: State\n\t): InferCurriedFromInitialStateAndRecipe\n\n\t/** Normal producer */\n\t>( // By using a default inferred D, rather than Draft in the recipe, we can override it.\n\t\tbase: Base,\n\t\trecipe: (draft: D) => ValidRecipeReturnType,\n\t\tlistener?: PatchListener\n\t): Base\n}\n\n/**\n * Like `produce`, but instead of just returning the new state,\n * a tuple is returned with [nextState, patches, inversePatches]\n *\n * Like produce, this function supports currying\n */\nexport interface IProduceWithPatches {\n\t// Types copied from IProduce, wrapped with PatchesTuple\n\t(recipe: Recipe): InferCurriedFromRecipe\n\t(\n\t\trecipe: Recipe,\n\t\tinitialState: State\n\t): InferCurriedFromInitialStateAndRecipe\n\t>(\n\t\tbase: Base,\n\t\trecipe: (draft: D) => ValidRecipeReturnType,\n\t\tlistener?: PatchListener\n\t): PatchesTuple\n}\n\n/**\n * The type for `recipe function`\n */\nexport type Producer = (draft: Draft) => ValidRecipeReturnType>\n\n// Fixes #507: bili doesn't export the types of this file if there is no actual source in it..\n// hopefully it get's tree-shaken away for everyone :)\nexport function never_used() {}\n", + "src/types/globals.d.ts": "declare const __DEV__: boolean\n", + "src/plugins/patches.ts": "import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tProxyArrayState,\n\tMapState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tgetPrototypeOf,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tArchType,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING,\n\terrors\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst errorOffset = 16\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\terrors.push(\n\t\t\t'Sets cannot have \"replace\" patches.',\n\t\t\tfunction(op: string) {\n\t\t\t\treturn \"Unsupported patch operation: \" + op\n\t\t\t},\n\t\t\tfunction(path: string) {\n\t\t\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t\t\t},\n\t\t\t\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n\t\t)\n\t}\n\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ArchType.Object:\n\t\t\tcase ArchType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ArchType.Array:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ArchType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tfor (let i = copy_.length - 1; base_.length <= i; --i) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tinversePatches.push({\n\t\t\t\top: REMOVE,\n\t\t\t\tpath\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_(draft: T, patches: readonly Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchType.Object || parentType === ArchType.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\")\n\t\t\t\t\tdie(errorOffset + 3)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(errorOffset + 2, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\tdie(errorOffset)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchType.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchType.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchType.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(errorOffset + 1, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n", + "src/plugins/mapset.ts": "// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tdie,\n\tArchType,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\tclass DraftMap extends Map {\n\t\t[DRAFT_STATE]: MapState\n\n\t\tconstructor(target: AnyMap, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tset(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tforEach(cb: (value: any, key: any, self: any) => void, thisArg?: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tget(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tkeys(): IterableIterator {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tvalues(): IterableIterator {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[Symbol.iterator]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.entries()\n\t\t}\n\t}\n\n\tfunction proxyMap_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tclass DraftSet extends Set {\n\t\t[DRAFT_STATE]: SetState\n\t\tconstructor(target: AnySet, parent?: ImmerState) {\n\t\t\tsuper()\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ArchType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t}\n\t\t}\n\n\t\tget size(): number {\n\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t}\n\n\t\thas(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tadd(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tdelete(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tclear() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tvalues(): IterableIterator {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tentries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tkeys(): IterableIterator {\n\t\t\treturn this.values()\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tforEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\t}\n\tfunction proxySet_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n", + "src/core/scope.ts": "import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n", + "src/core/proxy.ts": "import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n", + "src/core/immerclass.ts": "import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\";\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\tapplyPatches(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n", + "src/core/finalize.ts": "import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(value, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path)\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\tObject.prototype.propertyIsEnumerable.call(targetObject, prop)\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n", + "src/core/current.ts": "import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(copy, (key, childValue) => {\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n", + "typescript.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\ndeclare namespace ts {\n namespace server {\n namespace protocol {\n export import ApplicableRefactorInfo = ts.ApplicableRefactorInfo;\n export import ClassificationType = ts.ClassificationType;\n export import CompletionsTriggerCharacter = ts.CompletionsTriggerCharacter;\n export import CompletionTriggerKind = ts.CompletionTriggerKind;\n export import InlayHintKind = ts.InlayHintKind;\n export import OrganizeImportsMode = ts.OrganizeImportsMode;\n export import RefactorActionInfo = ts.RefactorActionInfo;\n export import RefactorTriggerReason = ts.RefactorTriggerReason;\n export import RenameInfoFailure = ts.RenameInfoFailure;\n export import SemicolonPreference = ts.SemicolonPreference;\n export import SignatureHelpCharacterTypedReason = ts.SignatureHelpCharacterTypedReason;\n export import SignatureHelpInvokedReason = ts.SignatureHelpInvokedReason;\n export import SignatureHelpParameter = ts.SignatureHelpParameter;\n export import SignatureHelpRetriggerCharacter = ts.SignatureHelpRetriggerCharacter;\n export import SignatureHelpRetriggeredReason = ts.SignatureHelpRetriggeredReason;\n export import SignatureHelpTriggerCharacter = ts.SignatureHelpTriggerCharacter;\n export import SignatureHelpTriggerReason = ts.SignatureHelpTriggerReason;\n export import SymbolDisplayPart = ts.SymbolDisplayPart;\n export import UserPreferences = ts.UserPreferences;\n type ChangePropertyTypes<\n T,\n Substitutions extends {\n [K in keyof T]?: any;\n },\n > = {\n [K in keyof T]: K extends keyof Substitutions ? Substitutions[K] : T[K];\n };\n type ChangeStringIndexSignature = {\n [K in keyof T]: string extends K ? NewStringIndexSignatureType : T[K];\n };\n export enum CommandTypes {\n JsxClosingTag = \"jsxClosingTag\",\n LinkedEditingRange = \"linkedEditingRange\",\n Brace = \"brace\",\n BraceCompletion = \"braceCompletion\",\n GetSpanOfEnclosingComment = \"getSpanOfEnclosingComment\",\n Change = \"change\",\n Close = \"close\",\n /** @deprecated Prefer CompletionInfo -- see comment on CompletionsResponse */\n Completions = \"completions\",\n CompletionInfo = \"completionInfo\",\n CompletionDetails = \"completionEntryDetails\",\n CompileOnSaveAffectedFileList = \"compileOnSaveAffectedFileList\",\n CompileOnSaveEmitFile = \"compileOnSaveEmitFile\",\n Configure = \"configure\",\n Definition = \"definition\",\n DefinitionAndBoundSpan = \"definitionAndBoundSpan\",\n Implementation = \"implementation\",\n Exit = \"exit\",\n FileReferences = \"fileReferences\",\n Format = \"format\",\n Formatonkey = \"formatonkey\",\n Geterr = \"geterr\",\n GeterrForProject = \"geterrForProject\",\n SemanticDiagnosticsSync = \"semanticDiagnosticsSync\",\n SyntacticDiagnosticsSync = \"syntacticDiagnosticsSync\",\n SuggestionDiagnosticsSync = \"suggestionDiagnosticsSync\",\n NavBar = \"navbar\",\n Navto = \"navto\",\n NavTree = \"navtree\",\n NavTreeFull = \"navtree-full\",\n DocumentHighlights = \"documentHighlights\",\n Open = \"open\",\n Quickinfo = \"quickinfo\",\n References = \"references\",\n Reload = \"reload\",\n Rename = \"rename\",\n Saveto = \"saveto\",\n SignatureHelp = \"signatureHelp\",\n FindSourceDefinition = \"findSourceDefinition\",\n Status = \"status\",\n TypeDefinition = \"typeDefinition\",\n ProjectInfo = \"projectInfo\",\n ReloadProjects = \"reloadProjects\",\n Unknown = \"unknown\",\n OpenExternalProject = \"openExternalProject\",\n OpenExternalProjects = \"openExternalProjects\",\n CloseExternalProject = \"closeExternalProject\",\n UpdateOpen = \"updateOpen\",\n GetOutliningSpans = \"getOutliningSpans\",\n TodoComments = \"todoComments\",\n Indentation = \"indentation\",\n DocCommentTemplate = \"docCommentTemplate\",\n CompilerOptionsForInferredProjects = \"compilerOptionsForInferredProjects\",\n GetCodeFixes = \"getCodeFixes\",\n GetCombinedCodeFix = \"getCombinedCodeFix\",\n ApplyCodeActionCommand = \"applyCodeActionCommand\",\n GetSupportedCodeFixes = \"getSupportedCodeFixes\",\n GetApplicableRefactors = \"getApplicableRefactors\",\n GetEditsForRefactor = \"getEditsForRefactor\",\n GetMoveToRefactoringFileSuggestions = \"getMoveToRefactoringFileSuggestions\",\n PreparePasteEdits = \"preparePasteEdits\",\n GetPasteEdits = \"getPasteEdits\",\n OrganizeImports = \"organizeImports\",\n GetEditsForFileRename = \"getEditsForFileRename\",\n ConfigurePlugin = \"configurePlugin\",\n SelectionRange = \"selectionRange\",\n ToggleLineComment = \"toggleLineComment\",\n ToggleMultilineComment = \"toggleMultilineComment\",\n CommentSelection = \"commentSelection\",\n UncommentSelection = \"uncommentSelection\",\n PrepareCallHierarchy = \"prepareCallHierarchy\",\n ProvideCallHierarchyIncomingCalls = \"provideCallHierarchyIncomingCalls\",\n ProvideCallHierarchyOutgoingCalls = \"provideCallHierarchyOutgoingCalls\",\n ProvideInlayHints = \"provideInlayHints\",\n WatchChange = \"watchChange\",\n MapCode = \"mapCode\",\n }\n /**\n * A TypeScript Server message\n */\n export interface Message {\n /**\n * Sequence number of the message\n */\n seq: number;\n /**\n * One of \"request\", \"response\", or \"event\"\n */\n type: \"request\" | \"response\" | \"event\";\n }\n /**\n * Client-initiated request message\n */\n export interface Request extends Message {\n type: \"request\";\n /**\n * The command to execute\n */\n command: string;\n /**\n * Object containing arguments for the command\n */\n arguments?: any;\n }\n /**\n * Request to reload the project structure for all the opened files\n */\n export interface ReloadProjectsRequest extends Request {\n command: CommandTypes.ReloadProjects;\n }\n /**\n * Server-initiated event message\n */\n export interface Event extends Message {\n type: \"event\";\n /**\n * Name of event\n */\n event: string;\n /**\n * Event-specific information\n */\n body?: any;\n }\n /**\n * Response by server to client request message.\n */\n export interface Response extends Message {\n type: \"response\";\n /**\n * Sequence number of the request message.\n */\n request_seq: number;\n /**\n * Outcome of the request.\n */\n success: boolean;\n /**\n * The command requested.\n */\n command: string;\n /**\n * If success === false, this should always be provided.\n * Otherwise, may (or may not) contain a success message.\n */\n message?: string;\n /**\n * Contains message body if success === true.\n */\n body?: any;\n /**\n * Contains extra information that plugin can include to be passed on\n */\n metadata?: unknown;\n /**\n * Exposes information about the performance of this request-response pair.\n */\n performanceData?: PerformanceData;\n }\n export interface PerformanceData {\n /**\n * Time spent updating the program graph, in milliseconds.\n */\n updateGraphDurationMs?: number;\n /**\n * The time spent creating or updating the auto-import program, in milliseconds.\n */\n createAutoImportProviderProgramDurationMs?: number;\n /**\n * The time spent computing diagnostics, in milliseconds.\n */\n diagnosticsDuration?: FileDiagnosticPerformanceData[];\n }\n /**\n * Time spent computing each kind of diagnostics, in milliseconds.\n */\n export type DiagnosticPerformanceData = {\n [Kind in DiagnosticEventKind]?: number;\n };\n export interface FileDiagnosticPerformanceData extends DiagnosticPerformanceData {\n /**\n * The file for which the performance data is reported.\n */\n file: string;\n }\n /**\n * Arguments for FileRequest messages.\n */\n export interface FileRequestArgs {\n /**\n * The file for the request (absolute pathname required).\n */\n file: string;\n projectFileName?: string;\n }\n export interface StatusRequest extends Request {\n command: CommandTypes.Status;\n }\n export interface StatusResponseBody {\n /**\n * The TypeScript version (`ts.version`).\n */\n version: string;\n }\n /**\n * Response to StatusRequest\n */\n export interface StatusResponse extends Response {\n body: StatusResponseBody;\n }\n /**\n * Requests a JS Doc comment template for a given position\n */\n export interface DocCommentTemplateRequest extends FileLocationRequest {\n command: CommandTypes.DocCommentTemplate;\n }\n /**\n * Response to DocCommentTemplateRequest\n */\n export interface DocCommandTemplateResponse extends Response {\n body?: TextInsertion;\n }\n /**\n * A request to get TODO comments from the file\n */\n export interface TodoCommentRequest extends FileRequest {\n command: CommandTypes.TodoComments;\n arguments: TodoCommentRequestArgs;\n }\n /**\n * Arguments for TodoCommentRequest request.\n */\n export interface TodoCommentRequestArgs extends FileRequestArgs {\n /**\n * Array of target TodoCommentDescriptors that describes TODO comments to be found\n */\n descriptors: TodoCommentDescriptor[];\n }\n /**\n * Response for TodoCommentRequest request.\n */\n export interface TodoCommentsResponse extends Response {\n body?: TodoComment[];\n }\n /**\n * A request to determine if the caret is inside a comment.\n */\n export interface SpanOfEnclosingCommentRequest extends FileLocationRequest {\n command: CommandTypes.GetSpanOfEnclosingComment;\n arguments: SpanOfEnclosingCommentRequestArgs;\n }\n export interface SpanOfEnclosingCommentRequestArgs extends FileLocationRequestArgs {\n /**\n * Requires that the enclosing span be a multi-line comment, or else the request returns undefined.\n */\n onlyMultiLine: boolean;\n }\n /**\n * Request to obtain outlining spans in file.\n */\n export interface OutliningSpansRequest extends FileRequest {\n command: CommandTypes.GetOutliningSpans;\n }\n export type OutliningSpan = ChangePropertyTypes;\n /**\n * Response to OutliningSpansRequest request.\n */\n export interface OutliningSpansResponse extends Response {\n body?: OutliningSpan[];\n }\n /**\n * A request to get indentation for a location in file\n */\n export interface IndentationRequest extends FileLocationRequest {\n command: CommandTypes.Indentation;\n arguments: IndentationRequestArgs;\n }\n /**\n * Response for IndentationRequest request.\n */\n export interface IndentationResponse extends Response {\n body?: IndentationResult;\n }\n /**\n * Indentation result representing where indentation should be placed\n */\n export interface IndentationResult {\n /**\n * The base position in the document that the indent should be relative to\n */\n position: number;\n /**\n * The number of columns the indent should be at relative to the position's column.\n */\n indentation: number;\n }\n /**\n * Arguments for IndentationRequest request.\n */\n export interface IndentationRequestArgs extends FileLocationRequestArgs {\n /**\n * An optional set of settings to be used when computing indentation.\n * If argument is omitted - then it will use settings for file that were previously set via 'configure' request or global settings.\n */\n options?: EditorSettings;\n }\n /**\n * Arguments for ProjectInfoRequest request.\n */\n export interface ProjectInfoRequestArgs extends FileRequestArgs {\n /**\n * Indicate if the file name list of the project is needed\n */\n needFileNameList: boolean;\n /**\n * if true returns details about default configured project calculation\n */\n needDefaultConfiguredProjectInfo?: boolean;\n }\n /**\n * A request to get the project information of the current file.\n */\n export interface ProjectInfoRequest extends Request {\n command: CommandTypes.ProjectInfo;\n arguments: ProjectInfoRequestArgs;\n }\n /**\n * A request to retrieve compiler options diagnostics for a project\n */\n export interface CompilerOptionsDiagnosticsRequest extends Request {\n arguments: CompilerOptionsDiagnosticsRequestArgs;\n }\n /**\n * Arguments for CompilerOptionsDiagnosticsRequest request.\n */\n export interface CompilerOptionsDiagnosticsRequestArgs {\n /**\n * Name of the project to retrieve compiler options diagnostics.\n */\n projectFileName: string;\n }\n /**\n * Details about the default project for the file if tsconfig file is found\n */\n export interface DefaultConfiguredProjectInfo {\n /** List of config files looked and did not match because file was not part of root file names */\n notMatchedByConfig?: readonly string[];\n /** List of projects which were loaded but file was not part of the project or is file from referenced project */\n notInProject?: readonly string[];\n /** Configured project used as default */\n defaultProject?: string;\n }\n /**\n * Response message body for \"projectInfo\" request\n */\n export interface ProjectInfo {\n /**\n * For configured project, this is the normalized path of the 'tsconfig.json' file\n * For inferred project, this is undefined\n */\n configFileName: string;\n /**\n * The list of normalized file name in the project, including 'lib.d.ts'\n */\n fileNames?: string[];\n /**\n * Indicates if the project has a active language service instance\n */\n languageServiceDisabled?: boolean;\n /**\n * Information about default project\n */\n configuredProjectInfo?: DefaultConfiguredProjectInfo;\n }\n /**\n * Represents diagnostic info that includes location of diagnostic in two forms\n * - start position and length of the error span\n * - startLocation and endLocation - a pair of Location objects that store start/end line and offset of the error span.\n */\n export interface DiagnosticWithLinePosition {\n message: string;\n start: number;\n length: number;\n startLocation: Location;\n endLocation: Location;\n category: string;\n code: number;\n /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */\n reportsUnnecessary?: {};\n reportsDeprecated?: {};\n relatedInformation?: DiagnosticRelatedInformation[];\n }\n /**\n * Response message for \"projectInfo\" request\n */\n export interface ProjectInfoResponse extends Response {\n body?: ProjectInfo;\n }\n /**\n * Request whose sole parameter is a file name.\n */\n export interface FileRequest extends Request {\n arguments: FileRequestArgs;\n }\n /**\n * Instances of this interface specify a location in a source file:\n * (file, line, character offset), where line and character offset are 1-based.\n */\n export interface FileLocationRequestArgs extends FileRequestArgs {\n /**\n * The line number for the request (1-based).\n */\n line: number;\n /**\n * The character offset (on the line) for the request (1-based).\n */\n offset: number;\n }\n export type FileLocationOrRangeRequestArgs = FileLocationRequestArgs | FileRangeRequestArgs;\n /**\n * Request refactorings at a given position or selection area.\n */\n export interface GetApplicableRefactorsRequest extends Request {\n command: CommandTypes.GetApplicableRefactors;\n arguments: GetApplicableRefactorsRequestArgs;\n }\n export type GetApplicableRefactorsRequestArgs = FileLocationOrRangeRequestArgs & {\n triggerReason?: RefactorTriggerReason;\n kind?: string;\n /**\n * Include refactor actions that require additional arguments to be passed when\n * calling 'GetEditsForRefactor'. When true, clients should inspect the\n * `isInteractive` property of each returned `RefactorActionInfo`\n * and ensure they are able to collect the appropriate arguments for any\n * interactive refactor before offering it.\n */\n includeInteractiveActions?: boolean;\n };\n /**\n * Response is a list of available refactorings.\n * Each refactoring exposes one or more \"Actions\"; a user selects one action to invoke a refactoring\n */\n export interface GetApplicableRefactorsResponse extends Response {\n body?: ApplicableRefactorInfo[];\n }\n /**\n * Request refactorings at a given position or selection area to move to an existing file.\n */\n export interface GetMoveToRefactoringFileSuggestionsRequest extends Request {\n command: CommandTypes.GetMoveToRefactoringFileSuggestions;\n arguments: GetMoveToRefactoringFileSuggestionsRequestArgs;\n }\n export type GetMoveToRefactoringFileSuggestionsRequestArgs = FileLocationOrRangeRequestArgs & {\n kind?: string;\n };\n /**\n * Response is a list of available files.\n * Each refactoring exposes one or more \"Actions\"; a user selects one action to invoke a refactoring\n */\n export interface GetMoveToRefactoringFileSuggestions extends Response {\n body: {\n newFileName: string;\n files: string[];\n };\n }\n /**\n * Request to check if `pasteEdits` should be provided for a given location post copying text from that location.\n */\n export interface PreparePasteEditsRequest extends FileRequest {\n command: CommandTypes.PreparePasteEdits;\n arguments: PreparePasteEditsRequestArgs;\n }\n export interface PreparePasteEditsRequestArgs extends FileRequestArgs {\n copiedTextSpan: TextSpan[];\n }\n export interface PreparePasteEditsResponse extends Response {\n body: boolean;\n }\n /**\n * Request refactorings at a given position post pasting text from some other location.\n */\n export interface GetPasteEditsRequest extends Request {\n command: CommandTypes.GetPasteEdits;\n arguments: GetPasteEditsRequestArgs;\n }\n export interface GetPasteEditsRequestArgs extends FileRequestArgs {\n /** The text that gets pasted in a file. */\n pastedText: string[];\n /** Locations of where the `pastedText` gets added in a file. If the length of the `pastedText` and `pastedLocations` are not the same,\n * then the `pastedText` is combined into one and added at all the `pastedLocations`.\n */\n pasteLocations: TextSpan[];\n /** The source location of each `pastedText`. If present, the length of `spans` must be equal to the length of `pastedText`. */\n copiedFrom?: {\n file: string;\n spans: TextSpan[];\n };\n }\n export interface GetPasteEditsResponse extends Response {\n body: PasteEditsAction;\n }\n export interface PasteEditsAction {\n edits: FileCodeEdits[];\n fixId?: {};\n }\n export interface GetEditsForRefactorRequest extends Request {\n command: CommandTypes.GetEditsForRefactor;\n arguments: GetEditsForRefactorRequestArgs;\n }\n /**\n * Request the edits that a particular refactoring action produces.\n * Callers must specify the name of the refactor and the name of the action.\n */\n export type GetEditsForRefactorRequestArgs = FileLocationOrRangeRequestArgs & {\n refactor: string;\n action: string;\n interactiveRefactorArguments?: InteractiveRefactorArguments;\n };\n export interface GetEditsForRefactorResponse extends Response {\n body?: RefactorEditInfo;\n }\n export interface RefactorEditInfo {\n edits: FileCodeEdits[];\n /**\n * An optional location where the editor should start a rename operation once\n * the refactoring edits have been applied\n */\n renameLocation?: Location;\n renameFilename?: string;\n notApplicableReason?: string;\n }\n /**\n * Organize imports by:\n * 1) Removing unused imports\n * 2) Coalescing imports from the same module\n * 3) Sorting imports\n */\n export interface OrganizeImportsRequest extends Request {\n command: CommandTypes.OrganizeImports;\n arguments: OrganizeImportsRequestArgs;\n }\n export type OrganizeImportsScope = GetCombinedCodeFixScope;\n export interface OrganizeImportsRequestArgs {\n scope: OrganizeImportsScope;\n /** @deprecated Use `mode` instead */\n skipDestructiveCodeActions?: boolean;\n mode?: OrganizeImportsMode;\n }\n export interface OrganizeImportsResponse extends Response {\n body: readonly FileCodeEdits[];\n }\n export interface GetEditsForFileRenameRequest extends Request {\n command: CommandTypes.GetEditsForFileRename;\n arguments: GetEditsForFileRenameRequestArgs;\n }\n /** Note: Paths may also be directories. */\n export interface GetEditsForFileRenameRequestArgs {\n readonly oldFilePath: string;\n readonly newFilePath: string;\n }\n export interface GetEditsForFileRenameResponse extends Response {\n body: readonly FileCodeEdits[];\n }\n /**\n * Request for the available codefixes at a specific position.\n */\n export interface CodeFixRequest extends Request {\n command: CommandTypes.GetCodeFixes;\n arguments: CodeFixRequestArgs;\n }\n export interface GetCombinedCodeFixRequest extends Request {\n command: CommandTypes.GetCombinedCodeFix;\n arguments: GetCombinedCodeFixRequestArgs;\n }\n export interface GetCombinedCodeFixResponse extends Response {\n body: CombinedCodeActions;\n }\n export interface ApplyCodeActionCommandRequest extends Request {\n command: CommandTypes.ApplyCodeActionCommand;\n arguments: ApplyCodeActionCommandRequestArgs;\n }\n export interface ApplyCodeActionCommandResponse extends Response {\n }\n export interface FileRangeRequestArgs extends FileRequestArgs, FileRange {\n }\n /**\n * Instances of this interface specify errorcodes on a specific location in a sourcefile.\n */\n export interface CodeFixRequestArgs extends FileRangeRequestArgs {\n /**\n * Errorcodes we want to get the fixes for.\n */\n errorCodes: readonly number[];\n }\n export interface GetCombinedCodeFixRequestArgs {\n scope: GetCombinedCodeFixScope;\n fixId: {};\n }\n export interface GetCombinedCodeFixScope {\n type: \"file\";\n args: FileRequestArgs;\n }\n export interface ApplyCodeActionCommandRequestArgs {\n /** May also be an array of commands. */\n command: {};\n }\n /**\n * Response for GetCodeFixes request.\n */\n export interface GetCodeFixesResponse extends Response {\n body?: CodeAction[];\n }\n /**\n * A request whose arguments specify a file location (file, line, col).\n */\n export interface FileLocationRequest extends FileRequest {\n arguments: FileLocationRequestArgs;\n }\n /**\n * A request to get codes of supported code fixes.\n */\n export interface GetSupportedCodeFixesRequest extends Request {\n command: CommandTypes.GetSupportedCodeFixes;\n arguments?: Partial;\n }\n /**\n * A response for GetSupportedCodeFixesRequest request.\n */\n export interface GetSupportedCodeFixesResponse extends Response {\n /**\n * List of error codes supported by the server.\n */\n body?: string[];\n }\n /**\n * A request to get encoded semantic classifications for a span in the file\n */\n export interface EncodedSemanticClassificationsRequest extends FileRequest {\n arguments: EncodedSemanticClassificationsRequestArgs;\n }\n /**\n * Arguments for EncodedSemanticClassificationsRequest request.\n */\n export interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs {\n /**\n * Start position of the span.\n */\n start: number;\n /**\n * Length of the span.\n */\n length: number;\n /**\n * Optional parameter for the semantic highlighting response, if absent it\n * defaults to \"original\".\n */\n format?: \"original\" | \"2020\";\n }\n /** The response for a EncodedSemanticClassificationsRequest */\n export interface EncodedSemanticClassificationsResponse extends Response {\n body?: EncodedSemanticClassificationsResponseBody;\n }\n /**\n * Implementation response message. Gives series of text spans depending on the format ar.\n */\n export interface EncodedSemanticClassificationsResponseBody {\n endOfLineState: EndOfLineState;\n spans: number[];\n }\n /**\n * Arguments in document highlight request; include: filesToSearch, file,\n * line, offset.\n */\n export interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs {\n /**\n * List of files to search for document highlights.\n */\n filesToSearch: string[];\n }\n /**\n * Go to definition request; value of command field is\n * \"definition\". Return response giving the file locations that\n * define the symbol found in file at location line, col.\n */\n export interface DefinitionRequest extends FileLocationRequest {\n command: CommandTypes.Definition;\n }\n export interface DefinitionAndBoundSpanRequest extends FileLocationRequest {\n readonly command: CommandTypes.DefinitionAndBoundSpan;\n }\n export interface FindSourceDefinitionRequest extends FileLocationRequest {\n readonly command: CommandTypes.FindSourceDefinition;\n }\n export interface DefinitionAndBoundSpanResponse extends Response {\n readonly body: DefinitionInfoAndBoundSpan;\n }\n /**\n * Go to type request; value of command field is\n * \"typeDefinition\". Return response giving the file locations that\n * define the type for the symbol found in file at location line, col.\n */\n export interface TypeDefinitionRequest extends FileLocationRequest {\n command: CommandTypes.TypeDefinition;\n }\n /**\n * Go to implementation request; value of command field is\n * \"implementation\". Return response giving the file locations that\n * implement the symbol found in file at location line, col.\n */\n export interface ImplementationRequest extends FileLocationRequest {\n command: CommandTypes.Implementation;\n }\n /**\n * Location in source code expressed as (one-based) line and (one-based) column offset.\n */\n export interface Location {\n line: number;\n offset: number;\n }\n /**\n * Object found in response messages defining a span of text in source code.\n */\n export interface TextSpan {\n /**\n * First character of the definition.\n */\n start: Location;\n /**\n * One character past last character of the definition.\n */\n end: Location;\n }\n /**\n * Object found in response messages defining a span of text in a specific source file.\n */\n export interface FileSpan extends TextSpan {\n /**\n * File containing text span.\n */\n file: string;\n }\n export interface JSDocTagInfo {\n /** Name of the JSDoc tag */\n name: string;\n /**\n * Comment text after the JSDoc tag -- the text after the tag name until the next tag or end of comment\n * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise.\n */\n text?: string | SymbolDisplayPart[];\n }\n export interface TextSpanWithContext extends TextSpan {\n contextStart?: Location;\n contextEnd?: Location;\n }\n export interface FileSpanWithContext extends FileSpan, TextSpanWithContext {\n }\n export interface DefinitionInfo extends FileSpanWithContext {\n /**\n * When true, the file may or may not exist.\n */\n unverified?: boolean;\n }\n export interface DefinitionInfoAndBoundSpan {\n definitions: readonly DefinitionInfo[];\n textSpan: TextSpan;\n }\n /**\n * Definition response message. Gives text range for definition.\n */\n export interface DefinitionResponse extends Response {\n body?: DefinitionInfo[];\n }\n export interface DefinitionInfoAndBoundSpanResponse extends Response {\n body?: DefinitionInfoAndBoundSpan;\n }\n /** @deprecated Use `DefinitionInfoAndBoundSpanResponse` instead. */\n export type DefinitionInfoAndBoundSpanReponse = DefinitionInfoAndBoundSpanResponse;\n /**\n * Definition response message. Gives text range for definition.\n */\n export interface TypeDefinitionResponse extends Response {\n body?: FileSpanWithContext[];\n }\n /**\n * Implementation response message. Gives text range for implementations.\n */\n export interface ImplementationResponse extends Response {\n body?: FileSpanWithContext[];\n }\n /**\n * Request to get brace completion for a location in the file.\n */\n export interface BraceCompletionRequest extends FileLocationRequest {\n command: CommandTypes.BraceCompletion;\n arguments: BraceCompletionRequestArgs;\n }\n /**\n * Argument for BraceCompletionRequest request.\n */\n export interface BraceCompletionRequestArgs extends FileLocationRequestArgs {\n /**\n * Kind of opening brace\n */\n openingBrace: string;\n }\n export interface JsxClosingTagRequest extends FileLocationRequest {\n readonly command: CommandTypes.JsxClosingTag;\n readonly arguments: JsxClosingTagRequestArgs;\n }\n export interface JsxClosingTagRequestArgs extends FileLocationRequestArgs {\n }\n export interface JsxClosingTagResponse extends Response {\n readonly body: TextInsertion;\n }\n export interface LinkedEditingRangeRequest extends FileLocationRequest {\n readonly command: CommandTypes.LinkedEditingRange;\n }\n export interface LinkedEditingRangesBody {\n ranges: TextSpan[];\n wordPattern?: string;\n }\n export interface LinkedEditingRangeResponse extends Response {\n readonly body: LinkedEditingRangesBody;\n }\n /**\n * Get document highlights request; value of command field is\n * \"documentHighlights\". Return response giving spans that are relevant\n * in the file at a given line and column.\n */\n export interface DocumentHighlightsRequest extends FileLocationRequest {\n command: CommandTypes.DocumentHighlights;\n arguments: DocumentHighlightsRequestArgs;\n }\n /**\n * Span augmented with extra information that denotes the kind of the highlighting to be used for span.\n */\n export interface HighlightSpan extends TextSpanWithContext {\n kind: HighlightSpanKind;\n }\n /**\n * Represents a set of highligh spans for a give name\n */\n export interface DocumentHighlightsItem {\n /**\n * File containing highlight spans.\n */\n file: string;\n /**\n * Spans to highlight in file.\n */\n highlightSpans: HighlightSpan[];\n }\n /**\n * Response for a DocumentHighlightsRequest request.\n */\n export interface DocumentHighlightsResponse extends Response {\n body?: DocumentHighlightsItem[];\n }\n /**\n * Find references request; value of command field is\n * \"references\". Return response giving the file locations that\n * reference the symbol found in file at location line, col.\n */\n export interface ReferencesRequest extends FileLocationRequest {\n command: CommandTypes.References;\n }\n export interface ReferencesResponseItem extends FileSpanWithContext {\n /**\n * Text of line containing the reference. Including this\n * with the response avoids latency of editor loading files\n * to show text of reference line (the server already has loaded the referencing files).\n *\n * If {@link UserPreferences.disableLineTextInReferences} is enabled, the property won't be filled\n */\n lineText?: string;\n /**\n * True if reference is a write location, false otherwise.\n */\n isWriteAccess: boolean;\n /**\n * Present only if the search was triggered from a declaration.\n * True indicates that the references refers to the same symbol\n * (i.e. has the same meaning) as the declaration that began the\n * search.\n */\n isDefinition?: boolean;\n }\n /**\n * The body of a \"references\" response message.\n */\n export interface ReferencesResponseBody {\n /**\n * The file locations referencing the symbol.\n */\n refs: readonly ReferencesResponseItem[];\n /**\n * The name of the symbol.\n */\n symbolName: string;\n /**\n * The start character offset of the symbol (on the line provided by the references request).\n */\n symbolStartOffset: number;\n /**\n * The full display name of the symbol.\n */\n symbolDisplayString: string;\n }\n /**\n * Response to \"references\" request.\n */\n export interface ReferencesResponse extends Response {\n body?: ReferencesResponseBody;\n }\n export interface FileReferencesRequest extends FileRequest {\n command: CommandTypes.FileReferences;\n }\n export interface FileReferencesResponseBody {\n /**\n * The file locations referencing the symbol.\n */\n refs: readonly ReferencesResponseItem[];\n /**\n * The name of the symbol.\n */\n symbolName: string;\n }\n export interface FileReferencesResponse extends Response {\n body?: FileReferencesResponseBody;\n }\n /**\n * Argument for RenameRequest request.\n */\n export interface RenameRequestArgs extends FileLocationRequestArgs {\n /**\n * Should text at specified location be found/changed in comments?\n */\n findInComments?: boolean;\n /**\n * Should text at specified location be found/changed in strings?\n */\n findInStrings?: boolean;\n }\n /**\n * Rename request; value of command field is \"rename\". Return\n * response giving the file locations that reference the symbol\n * found in file at location line, col. Also return full display\n * name of the symbol so that client can print it unambiguously.\n */\n export interface RenameRequest extends FileLocationRequest {\n command: CommandTypes.Rename;\n arguments: RenameRequestArgs;\n }\n /**\n * Information about the item to be renamed.\n */\n export type RenameInfo = RenameInfoSuccess | RenameInfoFailure;\n export type RenameInfoSuccess = ChangePropertyTypes;\n /**\n * A group of text spans, all in 'file'.\n */\n export interface SpanGroup {\n /** The file to which the spans apply */\n file: string;\n /** The text spans in this group */\n locs: RenameTextSpan[];\n }\n export interface RenameTextSpan extends TextSpanWithContext {\n readonly prefixText?: string;\n readonly suffixText?: string;\n }\n export interface RenameResponseBody {\n /**\n * Information about the item to be renamed.\n */\n info: RenameInfo;\n /**\n * An array of span groups (one per file) that refer to the item to be renamed.\n */\n locs: readonly SpanGroup[];\n }\n /**\n * Rename response message.\n */\n export interface RenameResponse extends Response {\n body?: RenameResponseBody;\n }\n /**\n * Represents a file in external project.\n * External project is project whose set of files, compilation options and open\\close state\n * is maintained by the client (i.e. if all this data come from .csproj file in Visual Studio).\n * External project will exist even if all files in it are closed and should be closed explicitly.\n * If external project includes one or more tsconfig.json/jsconfig.json files then tsserver will\n * create configured project for every config file but will maintain a link that these projects were created\n * as a result of opening external project so they should be removed once external project is closed.\n */\n export interface ExternalFile {\n /**\n * Name of file file\n */\n fileName: string;\n /**\n * Script kind of the file\n */\n scriptKind?: ScriptKindName | ScriptKind;\n /**\n * Whether file has mixed content (i.e. .cshtml file that combines html markup with C#/JavaScript)\n */\n hasMixedContent?: boolean;\n /**\n * Content of the file\n */\n content?: string;\n }\n /**\n * Represent an external project\n */\n export interface ExternalProject {\n /**\n * Project name\n */\n projectFileName: string;\n /**\n * List of root files in project\n */\n rootFiles: ExternalFile[];\n /**\n * Compiler options for the project\n */\n options: ExternalProjectCompilerOptions;\n /**\n * Explicitly specified type acquisition for the project\n */\n typeAcquisition?: TypeAcquisition;\n }\n export interface CompileOnSaveMixin {\n /**\n * If compile on save is enabled for the project\n */\n compileOnSave?: boolean;\n }\n /**\n * For external projects, some of the project settings are sent together with\n * compiler settings.\n */\n export type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin & WatchOptions;\n export interface FileWithProjectReferenceRedirectInfo {\n /**\n * Name of file\n */\n fileName: string;\n /**\n * True if the file is primarily included in a referenced project\n */\n isSourceOfProjectReferenceRedirect: boolean;\n }\n /**\n * Represents a set of changes that happen in project\n */\n export interface ProjectChanges {\n /**\n * List of added files\n */\n added: string[] | FileWithProjectReferenceRedirectInfo[];\n /**\n * List of removed files\n */\n removed: string[] | FileWithProjectReferenceRedirectInfo[];\n /**\n * List of updated files\n */\n updated: string[] | FileWithProjectReferenceRedirectInfo[];\n /**\n * List of files that have had their project reference redirect status updated\n * Only provided when the synchronizeProjectList request has includeProjectReferenceRedirectInfo set to true\n */\n updatedRedirects?: FileWithProjectReferenceRedirectInfo[];\n }\n /**\n * Information found in a configure request.\n */\n export interface ConfigureRequestArguments {\n /**\n * Information about the host, for example 'Emacs 24.4' or\n * 'Sublime Text version 3075'\n */\n hostInfo?: string;\n /**\n * If present, tab settings apply only to this file.\n */\n file?: string;\n /**\n * The format options to use during formatting and other code editing features.\n */\n formatOptions?: FormatCodeSettings;\n preferences?: UserPreferences;\n /**\n * The host's additional supported .js file extensions\n */\n extraFileExtensions?: FileExtensionInfo[];\n watchOptions?: WatchOptions;\n }\n export enum WatchFileKind {\n FixedPollingInterval = \"FixedPollingInterval\",\n PriorityPollingInterval = \"PriorityPollingInterval\",\n DynamicPriorityPolling = \"DynamicPriorityPolling\",\n FixedChunkSizePolling = \"FixedChunkSizePolling\",\n UseFsEvents = \"UseFsEvents\",\n UseFsEventsOnParentDirectory = \"UseFsEventsOnParentDirectory\",\n }\n export enum WatchDirectoryKind {\n UseFsEvents = \"UseFsEvents\",\n FixedPollingInterval = \"FixedPollingInterval\",\n DynamicPriorityPolling = \"DynamicPriorityPolling\",\n FixedChunkSizePolling = \"FixedChunkSizePolling\",\n }\n export enum PollingWatchKind {\n FixedInterval = \"FixedInterval\",\n PriorityInterval = \"PriorityInterval\",\n DynamicPriority = \"DynamicPriority\",\n FixedChunkSize = \"FixedChunkSize\",\n }\n export interface WatchOptions {\n watchFile?: WatchFileKind | ts.WatchFileKind;\n watchDirectory?: WatchDirectoryKind | ts.WatchDirectoryKind;\n fallbackPolling?: PollingWatchKind | ts.PollingWatchKind;\n synchronousWatchDirectory?: boolean;\n excludeDirectories?: string[];\n excludeFiles?: string[];\n [option: string]: CompilerOptionsValue | undefined;\n }\n /**\n * Configure request; value of command field is \"configure\". Specifies\n * host information, such as host type, tab size, and indent size.\n */\n export interface ConfigureRequest extends Request {\n command: CommandTypes.Configure;\n arguments: ConfigureRequestArguments;\n }\n /**\n * Response to \"configure\" request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface ConfigureResponse extends Response {\n }\n export interface ConfigurePluginRequestArguments {\n pluginName: string;\n configuration: any;\n }\n export interface ConfigurePluginRequest extends Request {\n command: CommandTypes.ConfigurePlugin;\n arguments: ConfigurePluginRequestArguments;\n }\n export interface ConfigurePluginResponse extends Response {\n }\n export interface SelectionRangeRequest extends FileRequest {\n command: CommandTypes.SelectionRange;\n arguments: SelectionRangeRequestArgs;\n }\n export interface SelectionRangeRequestArgs extends FileRequestArgs {\n locations: Location[];\n }\n export interface SelectionRangeResponse extends Response {\n body?: SelectionRange[];\n }\n export interface SelectionRange {\n textSpan: TextSpan;\n parent?: SelectionRange;\n }\n export interface ToggleLineCommentRequest extends FileRequest {\n command: CommandTypes.ToggleLineComment;\n arguments: FileRangeRequestArgs;\n }\n export interface ToggleMultilineCommentRequest extends FileRequest {\n command: CommandTypes.ToggleMultilineComment;\n arguments: FileRangeRequestArgs;\n }\n export interface CommentSelectionRequest extends FileRequest {\n command: CommandTypes.CommentSelection;\n arguments: FileRangeRequestArgs;\n }\n export interface UncommentSelectionRequest extends FileRequest {\n command: CommandTypes.UncommentSelection;\n arguments: FileRangeRequestArgs;\n }\n /**\n * Information found in an \"open\" request.\n */\n export interface OpenRequestArgs extends FileRequestArgs {\n /**\n * Used when a version of the file content is known to be more up to date than the one on disk.\n * Then the known content will be used upon opening instead of the disk copy\n */\n fileContent?: string;\n /**\n * Used to specify the script kind of the file explicitly. It could be one of the following:\n * \"TS\", \"JS\", \"TSX\", \"JSX\"\n */\n scriptKindName?: ScriptKindName;\n /**\n * Used to limit the searching for project config file. If given the searching will stop at this\n * root path; otherwise it will go all the way up to the dist root path.\n */\n projectRootPath?: string;\n }\n export type ScriptKindName = \"TS\" | \"JS\" | \"TSX\" | \"JSX\";\n /**\n * Open request; value of command field is \"open\". Notify the\n * server that the client has file open. The server will not\n * monitor the filesystem for changes in this file and will assume\n * that the client is updating the server (using the change and/or\n * reload messages) when the file changes. Server does not currently\n * send a response to an open request.\n */\n export interface OpenRequest extends Request {\n command: CommandTypes.Open;\n arguments: OpenRequestArgs;\n }\n /**\n * Request to open or update external project\n */\n export interface OpenExternalProjectRequest extends Request {\n command: CommandTypes.OpenExternalProject;\n arguments: OpenExternalProjectArgs;\n }\n /**\n * Arguments to OpenExternalProjectRequest request\n */\n export type OpenExternalProjectArgs = ExternalProject;\n /**\n * Request to open multiple external projects\n */\n export interface OpenExternalProjectsRequest extends Request {\n command: CommandTypes.OpenExternalProjects;\n arguments: OpenExternalProjectsArgs;\n }\n /**\n * Arguments to OpenExternalProjectsRequest\n */\n export interface OpenExternalProjectsArgs {\n /**\n * List of external projects to open or update\n */\n projects: ExternalProject[];\n }\n /**\n * Response to OpenExternalProjectRequest request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface OpenExternalProjectResponse extends Response {\n }\n /**\n * Response to OpenExternalProjectsRequest request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface OpenExternalProjectsResponse extends Response {\n }\n /**\n * Request to close external project.\n */\n export interface CloseExternalProjectRequest extends Request {\n command: CommandTypes.CloseExternalProject;\n arguments: CloseExternalProjectRequestArgs;\n }\n /**\n * Arguments to CloseExternalProjectRequest request\n */\n export interface CloseExternalProjectRequestArgs {\n /**\n * Name of the project to close\n */\n projectFileName: string;\n }\n /**\n * Response to CloseExternalProjectRequest request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface CloseExternalProjectResponse extends Response {\n }\n /**\n * Request to synchronize list of open files with the client\n */\n export interface UpdateOpenRequest extends Request {\n command: CommandTypes.UpdateOpen;\n arguments: UpdateOpenRequestArgs;\n }\n /**\n * Arguments to UpdateOpenRequest\n */\n export interface UpdateOpenRequestArgs {\n /**\n * List of newly open files\n */\n openFiles?: OpenRequestArgs[];\n /**\n * List of open files files that were changes\n */\n changedFiles?: FileCodeEdits[];\n /**\n * List of files that were closed\n */\n closedFiles?: string[];\n }\n /**\n * External projects have a typeAcquisition option so they need to be added separately to compiler options for inferred projects.\n */\n export type InferredProjectCompilerOptions = ExternalProjectCompilerOptions & TypeAcquisition;\n /**\n * Request to set compiler options for inferred projects.\n * External projects are opened / closed explicitly.\n * Configured projects are opened when user opens loose file that has 'tsconfig.json' or 'jsconfig.json' anywhere in one of containing folders.\n * This configuration file will be used to obtain a list of files and configuration settings for the project.\n * Inferred projects are created when user opens a loose file that is not the part of external project\n * or configured project and will contain only open file and transitive closure of referenced files if 'useOneInferredProject' is false,\n * or all open loose files and its transitive closure of referenced files if 'useOneInferredProject' is true.\n */\n export interface SetCompilerOptionsForInferredProjectsRequest extends Request {\n command: CommandTypes.CompilerOptionsForInferredProjects;\n arguments: SetCompilerOptionsForInferredProjectsArgs;\n }\n /**\n * Argument for SetCompilerOptionsForInferredProjectsRequest request.\n */\n export interface SetCompilerOptionsForInferredProjectsArgs {\n /**\n * Compiler options to be used with inferred projects.\n */\n options: InferredProjectCompilerOptions;\n /**\n * Specifies the project root path used to scope compiler options.\n * It is an error to provide this property if the server has not been started with\n * `useInferredProjectPerProjectRoot` enabled.\n */\n projectRootPath?: string;\n }\n /**\n * Response to SetCompilerOptionsForInferredProjectsResponse request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface SetCompilerOptionsForInferredProjectsResponse extends Response {\n }\n /**\n * Exit request; value of command field is \"exit\". Ask the server process\n * to exit.\n */\n export interface ExitRequest extends Request {\n command: CommandTypes.Exit;\n }\n /**\n * Close request; value of command field is \"close\". Notify the\n * server that the client has closed a previously open file. If\n * file is still referenced by open files, the server will resume\n * monitoring the filesystem for changes to file. Server does not\n * currently send a response to a close request.\n */\n export interface CloseRequest extends FileRequest {\n command: CommandTypes.Close;\n }\n export interface WatchChangeRequest extends Request {\n command: CommandTypes.WatchChange;\n arguments: WatchChangeRequestArgs | readonly WatchChangeRequestArgs[];\n }\n export interface WatchChangeRequestArgs {\n id: number;\n created?: string[];\n deleted?: string[];\n updated?: string[];\n }\n /**\n * Request to obtain the list of files that should be regenerated if target file is recompiled.\n * NOTE: this us query-only operation and does not generate any output on disk.\n */\n export interface CompileOnSaveAffectedFileListRequest extends FileRequest {\n command: CommandTypes.CompileOnSaveAffectedFileList;\n }\n /**\n * Contains a list of files that should be regenerated in a project\n */\n export interface CompileOnSaveAffectedFileListSingleProject {\n /**\n * Project name\n */\n projectFileName: string;\n /**\n * List of files names that should be recompiled\n */\n fileNames: string[];\n /**\n * true if project uses outFile or out compiler option\n */\n projectUsesOutFile: boolean;\n }\n /**\n * Response for CompileOnSaveAffectedFileListRequest request;\n */\n export interface CompileOnSaveAffectedFileListResponse extends Response {\n body: CompileOnSaveAffectedFileListSingleProject[];\n }\n /**\n * Request to recompile the file. All generated outputs (.js, .d.ts or .js.map files) is written on disk.\n */\n export interface CompileOnSaveEmitFileRequest extends FileRequest {\n command: CommandTypes.CompileOnSaveEmitFile;\n arguments: CompileOnSaveEmitFileRequestArgs;\n }\n /**\n * Arguments for CompileOnSaveEmitFileRequest\n */\n export interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs {\n /**\n * if true - then file should be recompiled even if it does not have any changes.\n */\n forced?: boolean;\n includeLinePosition?: boolean;\n /** if true - return response as object with emitSkipped and diagnostics */\n richResponse?: boolean;\n }\n export interface CompileOnSaveEmitFileResponse extends Response {\n body: boolean | EmitResult;\n }\n export interface EmitResult {\n emitSkipped: boolean;\n diagnostics: Diagnostic[] | DiagnosticWithLinePosition[];\n }\n /**\n * Quickinfo request; value of command field is\n * \"quickinfo\". Return response giving a quick type and\n * documentation string for the symbol found in file at location\n * line, col.\n */\n export interface QuickInfoRequest extends FileLocationRequest {\n command: CommandTypes.Quickinfo;\n arguments: FileLocationRequestArgs;\n }\n export interface QuickInfoRequestArgs extends FileLocationRequestArgs {\n /**\n * This controls how many levels of definitions will be expanded in the quick info response.\n * The default value is 0.\n */\n verbosityLevel?: number;\n }\n /**\n * Body of QuickInfoResponse.\n */\n export interface QuickInfoResponseBody {\n /**\n * The symbol's kind (such as 'className' or 'parameterName' or plain 'text').\n */\n kind: ScriptElementKind;\n /**\n * Optional modifiers for the kind (such as 'public').\n */\n kindModifiers: string;\n /**\n * Starting file location of symbol.\n */\n start: Location;\n /**\n * One past last character of symbol.\n */\n end: Location;\n /**\n * Type and kind of symbol.\n */\n displayString: string;\n /**\n * Documentation associated with symbol.\n * Display parts when UserPreferences.displayPartsForJSDoc is true, flattened to string otherwise.\n */\n documentation: string | SymbolDisplayPart[];\n /**\n * JSDoc tags associated with symbol.\n */\n tags: JSDocTagInfo[];\n /**\n * Whether the verbosity level can be increased for this quick info response.\n */\n canIncreaseVerbosityLevel?: boolean;\n }\n /**\n * Quickinfo response message.\n */\n export interface QuickInfoResponse extends Response {\n body?: QuickInfoResponseBody;\n }\n /**\n * Arguments for format messages.\n */\n export interface FormatRequestArgs extends FileLocationRequestArgs {\n /**\n * Last line of range for which to format text in file.\n */\n endLine: number;\n /**\n * Character offset on last line of range for which to format text in file.\n */\n endOffset: number;\n /**\n * Format options to be used.\n */\n options?: FormatCodeSettings;\n }\n /**\n * Format request; value of command field is \"format\". Return\n * response giving zero or more edit instructions. The edit\n * instructions will be sorted in file order. Applying the edit\n * instructions in reverse to file will result in correctly\n * reformatted text.\n */\n export interface FormatRequest extends FileLocationRequest {\n command: CommandTypes.Format;\n arguments: FormatRequestArgs;\n }\n /**\n * Object found in response messages defining an editing\n * instruction for a span of text in source code. The effect of\n * this instruction is to replace the text starting at start and\n * ending one character before end with newText. For an insertion,\n * the text span is empty. For a deletion, newText is empty.\n */\n export interface CodeEdit {\n /**\n * First character of the text span to edit.\n */\n start: Location;\n /**\n * One character past last character of the text span to edit.\n */\n end: Location;\n /**\n * Replace the span defined above with this string (may be\n * the empty string).\n */\n newText: string;\n }\n export interface FileCodeEdits {\n fileName: string;\n textChanges: CodeEdit[];\n }\n export interface CodeFixResponse extends Response {\n /** The code actions that are available */\n body?: CodeFixAction[];\n }\n export interface CodeAction {\n /** Description of the code action to display in the UI of the editor */\n description: string;\n /** Text changes to apply to each file as part of the code action */\n changes: FileCodeEdits[];\n /** A command is an opaque object that should be passed to `ApplyCodeActionCommandRequestArgs` without modification. */\n commands?: {}[];\n }\n export interface CombinedCodeActions {\n changes: readonly FileCodeEdits[];\n commands?: readonly {}[];\n }\n export interface CodeFixAction extends CodeAction {\n /** Short name to identify the fix, for use by telemetry. */\n fixName: string;\n /**\n * If present, one may call 'getCombinedCodeFix' with this fixId.\n * This may be omitted to indicate that the code fix can't be applied in a group.\n */\n fixId?: {};\n /** Should be present if and only if 'fixId' is. */\n fixAllDescription?: string;\n }\n /**\n * Format and format on key response message.\n */\n export interface FormatResponse extends Response {\n body?: CodeEdit[];\n }\n /**\n * Arguments for format on key messages.\n */\n export interface FormatOnKeyRequestArgs extends FileLocationRequestArgs {\n /**\n * Key pressed (';', '\\n', or '}').\n */\n key: string;\n options?: FormatCodeSettings;\n }\n /**\n * Format on key request; value of command field is\n * \"formatonkey\". Given file location and key typed (as string),\n * return response giving zero or more edit instructions. The\n * edit instructions will be sorted in file order. Applying the\n * edit instructions in reverse to file will result in correctly\n * reformatted text.\n */\n export interface FormatOnKeyRequest extends FileLocationRequest {\n command: CommandTypes.Formatonkey;\n arguments: FormatOnKeyRequestArgs;\n }\n /**\n * Arguments for completions messages.\n */\n export interface CompletionsRequestArgs extends FileLocationRequestArgs {\n /**\n * Optional prefix to apply to possible completions.\n */\n prefix?: string;\n /**\n * Character that was responsible for triggering completion.\n * Should be `undefined` if a user manually requested completion.\n */\n triggerCharacter?: CompletionsTriggerCharacter;\n triggerKind?: CompletionTriggerKind;\n /**\n * @deprecated Use UserPreferences.includeCompletionsForModuleExports\n */\n includeExternalModuleExports?: boolean;\n /**\n * @deprecated Use UserPreferences.includeCompletionsWithInsertText\n */\n includeInsertTextCompletions?: boolean;\n }\n /**\n * Completions request; value of command field is \"completions\".\n * Given a file location (file, line, col) and a prefix (which may\n * be the empty string), return the possible completions that\n * begin with prefix.\n */\n export interface CompletionsRequest extends FileLocationRequest {\n command: CommandTypes.Completions | CommandTypes.CompletionInfo;\n arguments: CompletionsRequestArgs;\n }\n /**\n * Arguments for completion details request.\n */\n export interface CompletionDetailsRequestArgs extends FileLocationRequestArgs {\n /**\n * Names of one or more entries for which to obtain details.\n */\n entryNames: (string | CompletionEntryIdentifier)[];\n }\n export interface CompletionEntryIdentifier {\n name: string;\n source?: string;\n data?: unknown;\n }\n /**\n * Completion entry details request; value of command field is\n * \"completionEntryDetails\". Given a file location (file, line,\n * col) and an array of completion entry names return more\n * detailed information for each completion entry.\n */\n export interface CompletionDetailsRequest extends FileLocationRequest {\n command: CommandTypes.CompletionDetails;\n arguments: CompletionDetailsRequestArgs;\n }\n /** A part of a symbol description that links from a jsdoc @link tag to a declaration */\n export interface JSDocLinkDisplayPart extends SymbolDisplayPart {\n /** The location of the declaration that the @link tag links to. */\n target: FileSpan;\n }\n export type CompletionEntry = ChangePropertyTypes, {\n replacementSpan: TextSpan;\n data: unknown;\n }>;\n /**\n * Additional completion entry details, available on demand\n */\n export type CompletionEntryDetails = ChangePropertyTypes;\n /** @deprecated Prefer CompletionInfoResponse, which supports several top-level fields in addition to the array of entries. */\n export interface CompletionsResponse extends Response {\n body?: CompletionEntry[];\n }\n export interface CompletionInfoResponse extends Response {\n body?: CompletionInfo;\n }\n export type CompletionInfo = ChangePropertyTypes;\n export interface CompletionDetailsResponse extends Response {\n body?: CompletionEntryDetails[];\n }\n /**\n * Represents a single signature to show in signature help.\n */\n export type SignatureHelpItem = ChangePropertyTypes;\n /**\n * Signature help items found in the response of a signature help request.\n */\n export interface SignatureHelpItems {\n /**\n * The signature help items.\n */\n items: SignatureHelpItem[];\n /**\n * The span for which signature help should appear on a signature\n */\n applicableSpan: TextSpan;\n /**\n * The item selected in the set of available help items.\n */\n selectedItemIndex: number;\n /**\n * The argument selected in the set of parameters.\n */\n argumentIndex: number;\n /**\n * The argument count\n */\n argumentCount: number;\n }\n /**\n * Arguments of a signature help request.\n */\n export interface SignatureHelpRequestArgs extends FileLocationRequestArgs {\n /**\n * Reason why signature help was invoked.\n * See each individual possible\n */\n triggerReason?: SignatureHelpTriggerReason;\n }\n /**\n * Signature help request; value of command field is \"signatureHelp\".\n * Given a file location (file, line, col), return the signature\n * help.\n */\n export interface SignatureHelpRequest extends FileLocationRequest {\n command: CommandTypes.SignatureHelp;\n arguments: SignatureHelpRequestArgs;\n }\n /**\n * Response object for a SignatureHelpRequest.\n */\n export interface SignatureHelpResponse extends Response {\n body?: SignatureHelpItems;\n }\n export interface InlayHintsRequestArgs extends FileRequestArgs {\n /**\n * Start position of the span.\n */\n start: number;\n /**\n * Length of the span.\n */\n length: number;\n }\n export interface InlayHintsRequest extends Request {\n command: CommandTypes.ProvideInlayHints;\n arguments: InlayHintsRequestArgs;\n }\n export type InlayHintItem = ChangePropertyTypes;\n export interface InlayHintItemDisplayPart {\n text: string;\n span?: FileSpan;\n }\n export interface InlayHintsResponse extends Response {\n body?: InlayHintItem[];\n }\n export interface MapCodeRequestArgs extends FileRequestArgs {\n /**\n * The files and changes to try and apply/map.\n */\n mapping: MapCodeRequestDocumentMapping;\n }\n export interface MapCodeRequestDocumentMapping {\n /**\n * The specific code to map/insert/replace in the file.\n */\n contents: string[];\n /**\n * Areas of \"focus\" to inform the code mapper with. For example, cursor\n * location, current selection, viewport, etc. Nested arrays denote\n * priority: toplevel arrays are more important than inner arrays, and\n * inner array priorities are based on items within that array. Items\n * earlier in the arrays have higher priority.\n */\n focusLocations?: TextSpan[][];\n }\n export interface MapCodeRequest extends FileRequest {\n command: CommandTypes.MapCode;\n arguments: MapCodeRequestArgs;\n }\n export interface MapCodeResponse extends Response {\n body: readonly FileCodeEdits[];\n }\n /**\n * Synchronous request for semantic diagnostics of one file.\n */\n export interface SemanticDiagnosticsSyncRequest extends FileRequest {\n command: CommandTypes.SemanticDiagnosticsSync;\n arguments: SemanticDiagnosticsSyncRequestArgs;\n }\n export interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs {\n includeLinePosition?: boolean;\n }\n /**\n * Response object for synchronous sematic diagnostics request.\n */\n export interface SemanticDiagnosticsSyncResponse extends Response {\n body?: Diagnostic[] | DiagnosticWithLinePosition[];\n }\n export interface SuggestionDiagnosticsSyncRequest extends FileRequest {\n command: CommandTypes.SuggestionDiagnosticsSync;\n arguments: SuggestionDiagnosticsSyncRequestArgs;\n }\n export type SuggestionDiagnosticsSyncRequestArgs = SemanticDiagnosticsSyncRequestArgs;\n export type SuggestionDiagnosticsSyncResponse = SemanticDiagnosticsSyncResponse;\n /**\n * Synchronous request for syntactic diagnostics of one file.\n */\n export interface SyntacticDiagnosticsSyncRequest extends FileRequest {\n command: CommandTypes.SyntacticDiagnosticsSync;\n arguments: SyntacticDiagnosticsSyncRequestArgs;\n }\n export interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs {\n includeLinePosition?: boolean;\n }\n /**\n * Response object for synchronous syntactic diagnostics request.\n */\n export interface SyntacticDiagnosticsSyncResponse extends Response {\n body?: Diagnostic[] | DiagnosticWithLinePosition[];\n }\n /**\n * Arguments for GeterrForProject request.\n */\n export interface GeterrForProjectRequestArgs {\n /**\n * the file requesting project error list\n */\n file: string;\n /**\n * Delay in milliseconds to wait before starting to compute\n * errors for the files in the file list\n */\n delay: number;\n }\n /**\n * GeterrForProjectRequest request; value of command field is\n * \"geterrForProject\". It works similarly with 'Geterr', only\n * it request for every file in this project.\n */\n export interface GeterrForProjectRequest extends Request {\n command: CommandTypes.GeterrForProject;\n arguments: GeterrForProjectRequestArgs;\n }\n /**\n * Arguments for geterr messages.\n */\n export interface GeterrRequestArgs {\n /**\n * List of file names for which to compute compiler errors.\n * The files will be checked in list order.\n */\n files: (string | FileRangesRequestArgs)[];\n /**\n * Delay in milliseconds to wait before starting to compute\n * errors for the files in the file list\n */\n delay: number;\n }\n /**\n * Geterr request; value of command field is \"geterr\". Wait for\n * delay milliseconds and then, if during the wait no change or\n * reload messages have arrived for the first file in the files\n * list, get the syntactic errors for the file, field requests,\n * and then get the semantic errors for the file. Repeat with a\n * smaller delay for each subsequent file on the files list. Best\n * practice for an editor is to send a file list containing each\n * file that is currently visible, in most-recently-used order.\n */\n export interface GeterrRequest extends Request {\n command: CommandTypes.Geterr;\n arguments: GeterrRequestArgs;\n }\n export interface FileRange {\n /**\n * The line number for the request (1-based).\n */\n startLine: number;\n /**\n * The character offset (on the line) for the request (1-based).\n */\n startOffset: number;\n /**\n * The line number for the request (1-based).\n */\n endLine: number;\n /**\n * The character offset (on the line) for the request (1-based).\n */\n endOffset: number;\n }\n export interface FileRangesRequestArgs extends Pick {\n ranges: FileRange[];\n }\n export type RequestCompletedEventName = \"requestCompleted\";\n /**\n * Event that is sent when server have finished processing request with specified id.\n */\n export interface RequestCompletedEvent extends Event {\n event: RequestCompletedEventName;\n body: RequestCompletedEventBody;\n }\n export interface RequestCompletedEventBody {\n request_seq: number;\n performanceData?: PerformanceData;\n }\n /**\n * Item of diagnostic information found in a DiagnosticEvent message.\n */\n export interface Diagnostic {\n /**\n * Starting file location at which text applies.\n */\n start: Location;\n /**\n * The last file location at which the text applies.\n */\n end: Location;\n /**\n * Text of diagnostic message.\n */\n text: string;\n /**\n * The category of the diagnostic message, e.g. \"error\", \"warning\", or \"suggestion\".\n */\n category: string;\n reportsUnnecessary?: {};\n reportsDeprecated?: {};\n /**\n * Any related spans the diagnostic may have, such as other locations relevant to an error, such as declarartion sites\n */\n relatedInformation?: DiagnosticRelatedInformation[];\n /**\n * The error code of the diagnostic message.\n */\n code?: number;\n /**\n * The name of the plugin reporting the message.\n */\n source?: string;\n }\n export interface DiagnosticWithFileName extends Diagnostic {\n /**\n * Name of the file the diagnostic is in\n */\n fileName: string;\n }\n /**\n * Represents additional spans returned with a diagnostic which are relevant to it\n */\n export interface DiagnosticRelatedInformation {\n /**\n * The category of the related information message, e.g. \"error\", \"warning\", or \"suggestion\".\n */\n category: string;\n /**\n * The code used ot identify the related information\n */\n code: number;\n /**\n * Text of related or additional information.\n */\n message: string;\n /**\n * Associated location\n */\n span?: FileSpan;\n }\n export interface DiagnosticEventBody {\n /**\n * The file for which diagnostic information is reported.\n */\n file: string;\n /**\n * An array of diagnostic information items.\n */\n diagnostics: Diagnostic[];\n /**\n * Spans where the region diagnostic was requested, if this is a region semantic diagnostic event.\n */\n spans?: TextSpan[];\n }\n export type DiagnosticEventKind = \"semanticDiag\" | \"syntaxDiag\" | \"suggestionDiag\" | \"regionSemanticDiag\";\n /**\n * Event message for DiagnosticEventKind event types.\n * These events provide syntactic and semantic errors for a file.\n */\n export interface DiagnosticEvent extends Event {\n body?: DiagnosticEventBody;\n event: DiagnosticEventKind;\n }\n export interface ConfigFileDiagnosticEventBody {\n /**\n * The file which trigged the searching and error-checking of the config file\n */\n triggerFile: string;\n /**\n * The name of the found config file.\n */\n configFile: string;\n /**\n * An arry of diagnostic information items for the found config file.\n */\n diagnostics: DiagnosticWithFileName[];\n }\n /**\n * Event message for \"configFileDiag\" event type.\n * This event provides errors for a found config file.\n */\n export interface ConfigFileDiagnosticEvent extends Event {\n body?: ConfigFileDiagnosticEventBody;\n event: \"configFileDiag\";\n }\n export type ProjectLanguageServiceStateEventName = \"projectLanguageServiceState\";\n export interface ProjectLanguageServiceStateEvent extends Event {\n event: ProjectLanguageServiceStateEventName;\n body?: ProjectLanguageServiceStateEventBody;\n }\n export interface ProjectLanguageServiceStateEventBody {\n /**\n * Project name that has changes in the state of language service.\n * For configured projects this will be the config file path.\n * For external projects this will be the name of the projects specified when project was open.\n * For inferred projects this event is not raised.\n */\n projectName: string;\n /**\n * True if language service state switched from disabled to enabled\n * and false otherwise.\n */\n languageServiceEnabled: boolean;\n }\n export type ProjectsUpdatedInBackgroundEventName = \"projectsUpdatedInBackground\";\n export interface ProjectsUpdatedInBackgroundEvent extends Event {\n event: ProjectsUpdatedInBackgroundEventName;\n body: ProjectsUpdatedInBackgroundEventBody;\n }\n export interface ProjectsUpdatedInBackgroundEventBody {\n /**\n * Current set of open files\n */\n openFiles: string[];\n }\n export type ProjectLoadingStartEventName = \"projectLoadingStart\";\n export interface ProjectLoadingStartEvent extends Event {\n event: ProjectLoadingStartEventName;\n body: ProjectLoadingStartEventBody;\n }\n export interface ProjectLoadingStartEventBody {\n /** name of the project */\n projectName: string;\n /** reason for loading */\n reason: string;\n }\n export type ProjectLoadingFinishEventName = \"projectLoadingFinish\";\n export interface ProjectLoadingFinishEvent extends Event {\n event: ProjectLoadingFinishEventName;\n body: ProjectLoadingFinishEventBody;\n }\n export interface ProjectLoadingFinishEventBody {\n /** name of the project */\n projectName: string;\n }\n export type SurveyReadyEventName = \"surveyReady\";\n export interface SurveyReadyEvent extends Event {\n event: SurveyReadyEventName;\n body: SurveyReadyEventBody;\n }\n export interface SurveyReadyEventBody {\n /** Name of the survey. This is an internal machine- and programmer-friendly name */\n surveyId: string;\n }\n export type LargeFileReferencedEventName = \"largeFileReferenced\";\n export interface LargeFileReferencedEvent extends Event {\n event: LargeFileReferencedEventName;\n body: LargeFileReferencedEventBody;\n }\n export interface LargeFileReferencedEventBody {\n /**\n * name of the large file being loaded\n */\n file: string;\n /**\n * size of the file\n */\n fileSize: number;\n /**\n * max file size allowed on the server\n */\n maxFileSize: number;\n }\n export type CreateFileWatcherEventName = \"createFileWatcher\";\n export interface CreateFileWatcherEvent extends Event {\n readonly event: CreateFileWatcherEventName;\n readonly body: CreateFileWatcherEventBody;\n }\n export interface CreateFileWatcherEventBody {\n readonly id: number;\n readonly path: string;\n }\n export type CreateDirectoryWatcherEventName = \"createDirectoryWatcher\";\n export interface CreateDirectoryWatcherEvent extends Event {\n readonly event: CreateDirectoryWatcherEventName;\n readonly body: CreateDirectoryWatcherEventBody;\n }\n export interface CreateDirectoryWatcherEventBody {\n readonly id: number;\n readonly path: string;\n readonly recursive: boolean;\n readonly ignoreUpdate?: boolean;\n }\n export type CloseFileWatcherEventName = \"closeFileWatcher\";\n export interface CloseFileWatcherEvent extends Event {\n readonly event: CloseFileWatcherEventName;\n readonly body: CloseFileWatcherEventBody;\n }\n export interface CloseFileWatcherEventBody {\n readonly id: number;\n }\n /**\n * Arguments for reload request.\n */\n export interface ReloadRequestArgs extends FileRequestArgs {\n /**\n * Name of temporary file from which to reload file\n * contents. May be same as file.\n */\n tmpfile: string;\n }\n /**\n * Reload request message; value of command field is \"reload\".\n * Reload contents of file with name given by the 'file' argument\n * from temporary file with name given by the 'tmpfile' argument.\n * The two names can be identical.\n */\n export interface ReloadRequest extends FileRequest {\n command: CommandTypes.Reload;\n arguments: ReloadRequestArgs;\n }\n /**\n * Response to \"reload\" request. This is just an acknowledgement, so\n * no body field is required.\n */\n export interface ReloadResponse extends Response {\n }\n /**\n * Arguments for saveto request.\n */\n export interface SavetoRequestArgs extends FileRequestArgs {\n /**\n * Name of temporary file into which to save server's view of\n * file contents.\n */\n tmpfile: string;\n }\n /**\n * Saveto request message; value of command field is \"saveto\".\n * For debugging purposes, save to a temporaryfile (named by\n * argument 'tmpfile') the contents of file named by argument\n * 'file'. The server does not currently send a response to a\n * \"saveto\" request.\n */\n export interface SavetoRequest extends FileRequest {\n command: CommandTypes.Saveto;\n arguments: SavetoRequestArgs;\n }\n /**\n * Arguments for navto request message.\n */\n export interface NavtoRequestArgs {\n /**\n * Search term to navigate to from current location; term can\n * be '.*' or an identifier prefix.\n */\n searchValue: string;\n /**\n * Optional limit on the number of items to return.\n */\n maxResultCount?: number;\n /**\n * The file for the request (absolute pathname required).\n */\n file?: string;\n /**\n * Optional flag to indicate we want results for just the current file\n * or the entire project.\n */\n currentFileOnly?: boolean;\n projectFileName?: string;\n }\n /**\n * Navto request message; value of command field is \"navto\".\n * Return list of objects giving file locations and symbols that\n * match the search term given in argument 'searchTerm'. The\n * context for the search is given by the named file.\n */\n export interface NavtoRequest extends Request {\n command: CommandTypes.Navto;\n arguments: NavtoRequestArgs;\n }\n /**\n * An item found in a navto response.\n */\n export interface NavtoItem extends FileSpan {\n /**\n * The symbol's name.\n */\n name: string;\n /**\n * The symbol's kind (such as 'className' or 'parameterName').\n */\n kind: ScriptElementKind;\n /**\n * exact, substring, or prefix.\n */\n matchKind: string;\n /**\n * If this was a case sensitive or insensitive match.\n */\n isCaseSensitive: boolean;\n /**\n * Optional modifiers for the kind (such as 'public').\n */\n kindModifiers?: string;\n /**\n * Name of symbol's container symbol (if any); for example,\n * the class name if symbol is a class member.\n */\n containerName?: string;\n /**\n * Kind of symbol's container symbol (if any).\n */\n containerKind?: ScriptElementKind;\n }\n /**\n * Navto response message. Body is an array of navto items. Each\n * item gives a symbol that matched the search term.\n */\n export interface NavtoResponse extends Response {\n body?: NavtoItem[];\n }\n /**\n * Arguments for change request message.\n */\n export interface ChangeRequestArgs extends FormatRequestArgs {\n /**\n * Optional string to insert at location (file, line, offset).\n */\n insertString?: string;\n }\n /**\n * Change request message; value of command field is \"change\".\n * Update the server's view of the file named by argument 'file'.\n * Server does not currently send a response to a change request.\n */\n export interface ChangeRequest extends FileLocationRequest {\n command: CommandTypes.Change;\n arguments: ChangeRequestArgs;\n }\n /**\n * Response to \"brace\" request.\n */\n export interface BraceResponse extends Response {\n body?: TextSpan[];\n }\n /**\n * Brace matching request; value of command field is \"brace\".\n * Return response giving the file locations of matching braces\n * found in file at location line, offset.\n */\n export interface BraceRequest extends FileLocationRequest {\n command: CommandTypes.Brace;\n }\n /**\n * NavBar items request; value of command field is \"navbar\".\n * Return response giving the list of navigation bar entries\n * extracted from the requested file.\n */\n export interface NavBarRequest extends FileRequest {\n command: CommandTypes.NavBar;\n }\n /**\n * NavTree request; value of command field is \"navtree\".\n * Return response giving the navigation tree of the requested file.\n */\n export interface NavTreeRequest extends FileRequest {\n command: CommandTypes.NavTree;\n }\n export interface NavigationBarItem {\n /**\n * The item's display text.\n */\n text: string;\n /**\n * The symbol's kind (such as 'className' or 'parameterName').\n */\n kind: ScriptElementKind;\n /**\n * Optional modifiers for the kind (such as 'public').\n */\n kindModifiers?: string;\n /**\n * The definition locations of the item.\n */\n spans: TextSpan[];\n /**\n * Optional children.\n */\n childItems?: NavigationBarItem[];\n /**\n * Number of levels deep this item should appear.\n */\n indent: number;\n }\n /** protocol.NavigationTree is identical to ts.NavigationTree, except using protocol.TextSpan instead of ts.TextSpan */\n export interface NavigationTree {\n text: string;\n kind: ScriptElementKind;\n kindModifiers: string;\n spans: TextSpan[];\n nameSpan: TextSpan | undefined;\n childItems?: NavigationTree[];\n }\n export type TelemetryEventName = \"telemetry\";\n export interface TelemetryEvent extends Event {\n event: TelemetryEventName;\n body: TelemetryEventBody;\n }\n export interface TelemetryEventBody {\n telemetryEventName: string;\n payload: any;\n }\n export type TypesInstallerInitializationFailedEventName = \"typesInstallerInitializationFailed\";\n export interface TypesInstallerInitializationFailedEvent extends Event {\n event: TypesInstallerInitializationFailedEventName;\n body: TypesInstallerInitializationFailedEventBody;\n }\n export interface TypesInstallerInitializationFailedEventBody {\n message: string;\n }\n export type TypingsInstalledTelemetryEventName = \"typingsInstalled\";\n export interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody {\n telemetryEventName: TypingsInstalledTelemetryEventName;\n payload: TypingsInstalledTelemetryEventPayload;\n }\n export interface TypingsInstalledTelemetryEventPayload {\n /**\n * Comma separated list of installed typing packages\n */\n installedPackages: string;\n /**\n * true if install request succeeded, otherwise - false\n */\n installSuccess: boolean;\n /**\n * version of typings installer\n */\n typingsInstallerVersion: string;\n }\n export type BeginInstallTypesEventName = \"beginInstallTypes\";\n export type EndInstallTypesEventName = \"endInstallTypes\";\n export interface BeginInstallTypesEvent extends Event {\n event: BeginInstallTypesEventName;\n body: BeginInstallTypesEventBody;\n }\n export interface EndInstallTypesEvent extends Event {\n event: EndInstallTypesEventName;\n body: EndInstallTypesEventBody;\n }\n export interface InstallTypesEventBody {\n /**\n * correlation id to match begin and end events\n */\n eventId: number;\n /**\n * list of packages to install\n */\n packages: readonly string[];\n }\n export interface BeginInstallTypesEventBody extends InstallTypesEventBody {\n }\n export interface EndInstallTypesEventBody extends InstallTypesEventBody {\n /**\n * true if installation succeeded, otherwise false\n */\n success: boolean;\n }\n export interface NavBarResponse extends Response {\n body?: NavigationBarItem[];\n }\n export interface NavTreeResponse extends Response {\n body?: NavigationTree;\n }\n export type CallHierarchyItem = ChangePropertyTypes;\n export interface CallHierarchyIncomingCall {\n from: CallHierarchyItem;\n fromSpans: TextSpan[];\n }\n export interface CallHierarchyOutgoingCall {\n to: CallHierarchyItem;\n fromSpans: TextSpan[];\n }\n export interface PrepareCallHierarchyRequest extends FileLocationRequest {\n command: CommandTypes.PrepareCallHierarchy;\n }\n export interface PrepareCallHierarchyResponse extends Response {\n readonly body: CallHierarchyItem | CallHierarchyItem[];\n }\n export interface ProvideCallHierarchyIncomingCallsRequest extends FileLocationRequest {\n command: CommandTypes.ProvideCallHierarchyIncomingCalls;\n }\n export interface ProvideCallHierarchyIncomingCallsResponse extends Response {\n readonly body: CallHierarchyIncomingCall[];\n }\n export interface ProvideCallHierarchyOutgoingCallsRequest extends FileLocationRequest {\n command: CommandTypes.ProvideCallHierarchyOutgoingCalls;\n }\n export interface ProvideCallHierarchyOutgoingCallsResponse extends Response {\n readonly body: CallHierarchyOutgoingCall[];\n }\n export enum IndentStyle {\n None = \"None\",\n Block = \"Block\",\n Smart = \"Smart\",\n }\n export type EditorSettings = ChangePropertyTypes;\n export type FormatCodeSettings = ChangePropertyTypes;\n export type CompilerOptions = ChangePropertyTypes, {\n jsx: JsxEmit | ts.JsxEmit;\n module: ModuleKind | ts.ModuleKind;\n moduleResolution: ModuleResolutionKind | ts.ModuleResolutionKind;\n newLine: NewLineKind | ts.NewLineKind;\n target: ScriptTarget | ts.ScriptTarget;\n }>;\n export enum JsxEmit {\n None = \"none\",\n Preserve = \"preserve\",\n ReactNative = \"react-native\",\n React = \"react\",\n ReactJSX = \"react-jsx\",\n ReactJSXDev = \"react-jsxdev\",\n }\n export enum ModuleKind {\n None = \"none\",\n CommonJS = \"commonjs\",\n AMD = \"amd\",\n UMD = \"umd\",\n System = \"system\",\n ES6 = \"es6\",\n ES2015 = \"es2015\",\n ES2020 = \"es2020\",\n ES2022 = \"es2022\",\n ESNext = \"esnext\",\n Node16 = \"node16\",\n Node18 = \"node18\",\n Node20 = \"node20\",\n NodeNext = \"nodenext\",\n Preserve = \"preserve\",\n }\n export enum ModuleResolutionKind {\n Classic = \"classic\",\n /** @deprecated Renamed to `Node10` */\n Node = \"node\",\n /** @deprecated Renamed to `Node10` */\n NodeJs = \"node\",\n Node10 = \"node10\",\n Node16 = \"node16\",\n NodeNext = \"nodenext\",\n Bundler = \"bundler\",\n }\n export enum NewLineKind {\n Crlf = \"Crlf\",\n Lf = \"Lf\",\n }\n export enum ScriptTarget {\n /** @deprecated */\n ES3 = \"es3\",\n ES5 = \"es5\",\n ES6 = \"es6\",\n ES2015 = \"es2015\",\n ES2016 = \"es2016\",\n ES2017 = \"es2017\",\n ES2018 = \"es2018\",\n ES2019 = \"es2019\",\n ES2020 = \"es2020\",\n ES2021 = \"es2021\",\n ES2022 = \"es2022\",\n ES2023 = \"es2023\",\n ES2024 = \"es2024\",\n ESNext = \"esnext\",\n JSON = \"json\",\n Latest = \"esnext\",\n }\n }\n namespace typingsInstaller {\n interface Log {\n isEnabled(): boolean;\n writeLine(text: string): void;\n }\n type RequestCompletedAction = (success: boolean) => void;\n interface PendingRequest {\n requestId: number;\n packageNames: string[];\n cwd: string;\n onRequestCompleted: RequestCompletedAction;\n }\n abstract class TypingsInstaller {\n protected readonly installTypingHost: InstallTypingHost;\n private readonly globalCachePath;\n private readonly safeListPath;\n private readonly typesMapLocation;\n private readonly throttleLimit;\n protected readonly log: Log;\n private readonly packageNameToTypingLocation;\n private readonly missingTypingsSet;\n private readonly knownCachesSet;\n private readonly projectWatchers;\n private safeList;\n private pendingRunRequests;\n private installRunCount;\n private inFlightRequestCount;\n abstract readonly typesRegistry: Map>;\n constructor(installTypingHost: InstallTypingHost, globalCachePath: string, safeListPath: Path, typesMapLocation: Path, throttleLimit: number, log?: Log);\n closeProject(req: CloseProject): void;\n private closeWatchers;\n install(req: DiscoverTypings): void;\n private initializeSafeList;\n private processCacheLocation;\n private filterTypings;\n protected ensurePackageDirectoryExists(directory: string): void;\n private installTypings;\n private ensureDirectoryExists;\n private watchFiles;\n private createSetTypings;\n private installTypingsAsync;\n private executeWithThrottling;\n protected abstract installWorker(requestId: number, packageNames: string[], cwd: string, onRequestCompleted: RequestCompletedAction): void;\n protected abstract sendResponse(response: SetTypings | InvalidateCachedTypings | BeginInstallTypes | EndInstallTypes | WatchTypingLocations): void;\n protected readonly latestDistTag = \"latest\";\n }\n }\n type ActionSet = \"action::set\";\n type ActionInvalidate = \"action::invalidate\";\n type ActionPackageInstalled = \"action::packageInstalled\";\n type EventTypesRegistry = \"event::typesRegistry\";\n type EventBeginInstallTypes = \"event::beginInstallTypes\";\n type EventEndInstallTypes = \"event::endInstallTypes\";\n type EventInitializationFailed = \"event::initializationFailed\";\n type ActionWatchTypingLocations = \"action::watchTypingLocations\";\n interface TypingInstallerResponse {\n readonly kind: ActionSet | ActionInvalidate | EventTypesRegistry | ActionPackageInstalled | EventBeginInstallTypes | EventEndInstallTypes | EventInitializationFailed | ActionWatchTypingLocations;\n }\n interface TypingInstallerRequestWithProjectName {\n readonly projectName: string;\n }\n interface DiscoverTypings extends TypingInstallerRequestWithProjectName {\n readonly fileNames: string[];\n readonly projectRootPath: Path;\n readonly compilerOptions: CompilerOptions;\n readonly typeAcquisition: TypeAcquisition;\n readonly unresolvedImports: SortedReadonlyArray;\n readonly cachePath?: string;\n readonly kind: \"discover\";\n }\n interface CloseProject extends TypingInstallerRequestWithProjectName {\n readonly kind: \"closeProject\";\n }\n interface TypesRegistryRequest {\n readonly kind: \"typesRegistry\";\n }\n interface InstallPackageRequest extends TypingInstallerRequestWithProjectName {\n readonly kind: \"installPackage\";\n readonly fileName: Path;\n readonly packageName: string;\n readonly projectRootPath: Path;\n readonly id: number;\n }\n interface PackageInstalledResponse extends ProjectResponse {\n readonly kind: ActionPackageInstalled;\n readonly id: number;\n readonly success: boolean;\n readonly message: string;\n }\n interface InitializationFailedResponse extends TypingInstallerResponse {\n readonly kind: EventInitializationFailed;\n readonly message: string;\n readonly stack?: string;\n }\n interface ProjectResponse extends TypingInstallerResponse {\n readonly projectName: string;\n }\n interface InvalidateCachedTypings extends ProjectResponse {\n readonly kind: ActionInvalidate;\n }\n interface InstallTypes extends ProjectResponse {\n readonly kind: EventBeginInstallTypes | EventEndInstallTypes;\n readonly eventId: number;\n readonly typingsInstallerVersion: string;\n readonly packagesToInstall: readonly string[];\n }\n interface BeginInstallTypes extends InstallTypes {\n readonly kind: EventBeginInstallTypes;\n }\n interface EndInstallTypes extends InstallTypes {\n readonly kind: EventEndInstallTypes;\n readonly installSuccess: boolean;\n }\n interface InstallTypingHost extends JsTyping.TypingResolutionHost {\n useCaseSensitiveFileNames: boolean;\n writeFile(path: string, content: string): void;\n createDirectory(path: string): void;\n getCurrentDirectory?(): string;\n }\n interface SetTypings extends ProjectResponse {\n readonly typeAcquisition: TypeAcquisition;\n readonly compilerOptions: CompilerOptions;\n readonly typings: string[];\n readonly unresolvedImports: SortedReadonlyArray;\n readonly kind: ActionSet;\n }\n interface WatchTypingLocations extends ProjectResponse {\n /** if files is undefined, retain same set of watchers */\n readonly files: readonly string[] | undefined;\n readonly kind: ActionWatchTypingLocations;\n }\n interface CompressedData {\n length: number;\n compressionKind: string;\n data: any;\n }\n type ModuleImportResult = {\n module: {};\n error: undefined;\n } | {\n module: undefined;\n error: {\n stack?: string;\n message?: string;\n };\n };\n /** @deprecated Use {@link ModuleImportResult} instead. */\n type RequireResult = ModuleImportResult;\n interface ServerHost extends System {\n watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher;\n watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher;\n preferNonRecursiveWatch?: boolean;\n setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any;\n clearTimeout(timeoutId: any): void;\n setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;\n clearImmediate(timeoutId: any): void;\n gc?(): void;\n trace?(s: string): void;\n require?(initialPath: string, moduleName: string): ModuleImportResult;\n }\n interface InstallPackageOptionsWithProject extends InstallPackageOptions {\n projectName: string;\n projectRootPath: Path;\n }\n interface ITypingsInstaller {\n isKnownTypesPackageName(name: string): boolean;\n installPackage(options: InstallPackageOptionsWithProject): Promise;\n enqueueInstallTypingsRequest(p: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray | undefined): void;\n attach(projectService: ProjectService): void;\n onProjectClosed(p: Project): void;\n readonly globalTypingsCacheLocation: string | undefined;\n }\n function createInstallTypingsRequest(project: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray, cachePath?: string): DiscoverTypings;\n function toNormalizedPath(fileName: string): NormalizedPath;\n function normalizedPathToPath(normalizedPath: NormalizedPath, currentDirectory: string, getCanonicalFileName: (f: string) => string): Path;\n function asNormalizedPath(fileName: string): NormalizedPath;\n function createNormalizedPathMap(): NormalizedPathMap;\n function isInferredProjectName(name: string): boolean;\n function makeInferredProjectName(counter: number): string;\n function createSortedArray(): SortedArray;\n enum LogLevel {\n terse = 0,\n normal = 1,\n requestTime = 2,\n verbose = 3,\n }\n const emptyArray: SortedReadonlyArray;\n interface Logger {\n close(): void;\n hasLevel(level: LogLevel): boolean;\n loggingEnabled(): boolean;\n perftrc(s: string): void;\n info(s: string): void;\n startGroup(): void;\n endGroup(): void;\n msg(s: string, type?: Msg): void;\n getLogFileName(): string | undefined;\n }\n enum Msg {\n Err = \"Err\",\n Info = \"Info\",\n Perf = \"Perf\",\n }\n namespace Errors {\n function ThrowNoProject(): never;\n function ThrowProjectLanguageServiceDisabled(): never;\n function ThrowProjectDoesNotContainDocument(fileName: string, project: Project): never;\n }\n type NormalizedPath = string & {\n __normalizedPathTag: any;\n };\n interface NormalizedPathMap {\n get(path: NormalizedPath): T | undefined;\n set(path: NormalizedPath, value: T): void;\n contains(path: NormalizedPath): boolean;\n remove(path: NormalizedPath): void;\n }\n function isDynamicFileName(fileName: NormalizedPath): boolean;\n class ScriptInfo {\n private readonly host;\n readonly fileName: NormalizedPath;\n readonly scriptKind: ScriptKind;\n readonly hasMixedContent: boolean;\n readonly path: Path;\n /**\n * All projects that include this file\n */\n readonly containingProjects: Project[];\n private formatSettings;\n private preferences;\n private realpath;\n constructor(host: ServerHost, fileName: NormalizedPath, scriptKind: ScriptKind, hasMixedContent: boolean, path: Path, initialVersion?: number);\n isScriptOpen(): boolean;\n open(newText: string | undefined): void;\n close(fileExists?: boolean): void;\n getSnapshot(): IScriptSnapshot;\n private ensureRealPath;\n getFormatCodeSettings(): FormatCodeSettings | undefined;\n getPreferences(): protocol.UserPreferences | undefined;\n attachToProject(project: Project): boolean;\n isAttached(project: Project): boolean;\n detachFromProject(project: Project): void;\n detachAllProjects(): void;\n getDefaultProject(): Project;\n registerFileUpdate(): void;\n setOptions(formatSettings: FormatCodeSettings, preferences: protocol.UserPreferences | undefined): void;\n getLatestVersion(): string;\n saveTo(fileName: string): void;\n reloadFromFile(tempFileName?: NormalizedPath): boolean;\n editContent(start: number, end: number, newText: string): void;\n markContainingProjectsAsDirty(): void;\n isOrphan(): boolean;\n /**\n * @param line 1 based index\n */\n lineToTextSpan(line: number): TextSpan;\n /**\n * @param line 1 based index\n * @param offset 1 based index\n */\n lineOffsetToPosition(line: number, offset: number): number;\n positionToLineOffset(position: number): protocol.Location;\n isJavaScript(): boolean;\n }\n function allRootFilesAreJsOrDts(project: Project): boolean;\n function allFilesAreJsOrDts(project: Project): boolean;\n enum ProjectKind {\n Inferred = 0,\n Configured = 1,\n External = 2,\n AutoImportProvider = 3,\n Auxiliary = 4,\n }\n interface PluginCreateInfo {\n project: Project;\n languageService: LanguageService;\n languageServiceHost: LanguageServiceHost;\n serverHost: ServerHost;\n session?: Session;\n config: any;\n }\n interface PluginModule {\n create(createInfo: PluginCreateInfo): LanguageService;\n getExternalFiles?(proj: Project, updateLevel: ProgramUpdateLevel): string[];\n onConfigurationChanged?(config: any): void;\n }\n interface PluginModuleWithName {\n name: string;\n module: PluginModule;\n }\n type PluginModuleFactory = (mod: {\n typescript: typeof ts;\n }) => PluginModule;\n abstract class Project implements LanguageServiceHost, ModuleResolutionHost {\n readonly projectKind: ProjectKind;\n readonly projectService: ProjectService;\n private compilerOptions;\n compileOnSaveEnabled: boolean;\n protected watchOptions: WatchOptions | undefined;\n private rootFilesMap;\n private program;\n private externalFiles;\n private missingFilesMap;\n private generatedFilesMap;\n private hasAddedorRemovedFiles;\n private hasAddedOrRemovedSymlinks;\n protected languageService: LanguageService;\n languageServiceEnabled: boolean;\n readonly trace?: (s: string) => void;\n readonly realpath?: (path: string) => string;\n private builderState;\n private updatedFileNames;\n private lastReportedFileNames;\n private lastReportedVersion;\n protected projectErrors: Diagnostic[] | undefined;\n private typingsCache;\n private typingWatchers;\n private readonly cancellationToken;\n isNonTsProject(): boolean;\n isJsOnlyProject(): boolean;\n static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void): {} | undefined;\n private exportMapCache;\n private changedFilesForExportMapCache;\n private moduleSpecifierCache;\n private symlinks;\n readonly jsDocParsingMode: JSDocParsingMode | undefined;\n isKnownTypesPackageName(name: string): boolean;\n installPackage(options: InstallPackageOptions): Promise;\n getCompilationSettings(): CompilerOptions;\n getCompilerOptions(): CompilerOptions;\n getNewLine(): string;\n getProjectVersion(): string;\n getProjectReferences(): readonly ProjectReference[] | undefined;\n getScriptFileNames(): string[];\n private getOrCreateScriptInfoAndAttachToProject;\n getScriptKind(fileName: string): ScriptKind;\n getScriptVersion(filename: string): string;\n getScriptSnapshot(filename: string): IScriptSnapshot | undefined;\n getCancellationToken(): HostCancellationToken;\n getCurrentDirectory(): string;\n getDefaultLibFileName(): string;\n useCaseSensitiveFileNames(): boolean;\n readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];\n readFile(fileName: string): string | undefined;\n writeFile(fileName: string, content: string): void;\n fileExists(file: string): boolean;\n directoryExists(path: string): boolean;\n getDirectories(path: string): string[];\n log(s: string): void;\n error(s: string): void;\n private setInternalCompilerOptionsForEmittingJsFiles;\n /**\n * Get the errors that dont have any file name associated\n */\n getGlobalProjectErrors(): readonly Diagnostic[];\n /**\n * Get all the project errors\n */\n getAllProjectErrors(): readonly Diagnostic[];\n setProjectErrors(projectErrors: Diagnostic[] | undefined): void;\n getLanguageService(ensureSynchronized?: boolean): LanguageService;\n getCompileOnSaveAffectedFileList(scriptInfo: ScriptInfo): string[];\n /**\n * Returns true if emit was conducted\n */\n emitFile(scriptInfo: ScriptInfo, writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void): EmitResult;\n enableLanguageService(): void;\n disableLanguageService(lastFileExceededProgramSize?: string): void;\n getProjectName(): string;\n protected removeLocalTypingsFromTypeAcquisition(newTypeAcquisition: TypeAcquisition): TypeAcquisition;\n getExternalFiles(updateLevel?: ProgramUpdateLevel): SortedReadonlyArray;\n getSourceFile(path: Path): SourceFile | undefined;\n close(): void;\n private detachScriptInfoIfNotRoot;\n isClosed(): boolean;\n hasRoots(): boolean;\n getRootFiles(): NormalizedPath[];\n getRootScriptInfos(): ScriptInfo[];\n getScriptInfos(): ScriptInfo[];\n getExcludedFiles(): readonly NormalizedPath[];\n getFileNames(excludeFilesFromExternalLibraries?: boolean, excludeConfigFiles?: boolean): NormalizedPath[];\n hasConfigFile(configFilePath: NormalizedPath): boolean;\n containsScriptInfo(info: ScriptInfo): boolean;\n containsFile(filename: NormalizedPath, requireOpen?: boolean): boolean;\n isRoot(info: ScriptInfo): boolean;\n addRoot(info: ScriptInfo, fileName?: NormalizedPath): void;\n addMissingFileRoot(fileName: NormalizedPath): void;\n removeFile(info: ScriptInfo, fileExists: boolean, detachFromProject: boolean): void;\n registerFileUpdate(fileName: string): void;\n /**\n * Updates set of files that contribute to this project\n * @returns: true if set of files in the project stays the same and false - otherwise.\n */\n updateGraph(): boolean;\n private closeWatchingTypingLocations;\n private onTypingInstallerWatchInvoke;\n protected removeExistingTypings(include: string[]): string[];\n private updateGraphWorker;\n private detachScriptInfoFromProject;\n private addMissingFileWatcher;\n private isWatchedMissingFile;\n private createGeneratedFileWatcher;\n private isValidGeneratedFileWatcher;\n private clearGeneratedFileWatch;\n getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined;\n getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined;\n filesToString(writeProjectFileNames: boolean): string;\n private filesToStringWorker;\n setCompilerOptions(compilerOptions: CompilerOptions): void;\n setTypeAcquisition(newTypeAcquisition: TypeAcquisition | undefined): void;\n getTypeAcquisition(): TypeAcquisition;\n protected removeRoot(info: ScriptInfo): void;\n protected enableGlobalPlugins(options: CompilerOptions): void;\n protected enablePlugin(pluginConfigEntry: PluginImport, searchPaths: string[]): void;\n /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */\n refreshDiagnostics(): void;\n private isDefaultProjectForOpenFiles;\n }\n /**\n * If a file is opened and no tsconfig (or jsconfig) is found,\n * the file and its imports/references are put into an InferredProject.\n */\n class InferredProject extends Project {\n private _isJsInferredProject;\n toggleJsInferredProject(isJsInferredProject: boolean): void;\n setCompilerOptions(options?: CompilerOptions): void;\n /** this is canonical project root path */\n readonly projectRootPath: string | undefined;\n addRoot(info: ScriptInfo): void;\n removeRoot(info: ScriptInfo): void;\n isProjectWithSingleRoot(): boolean;\n close(): void;\n getTypeAcquisition(): TypeAcquisition;\n }\n class AutoImportProviderProject extends Project {\n private hostProject;\n private static readonly maxDependencies;\n private rootFileNames;\n updateGraph(): boolean;\n hasRoots(): boolean;\n getScriptFileNames(): string[];\n getLanguageService(): never;\n getHostForAutoImportProvider(): never;\n getProjectReferences(): readonly ProjectReference[] | undefined;\n }\n /**\n * If a file is opened, the server will look for a tsconfig (or jsconfig)\n * and if successful create a ConfiguredProject for it.\n * Otherwise it will create an InferredProject.\n */\n class ConfiguredProject extends Project {\n readonly canonicalConfigFilePath: NormalizedPath;\n private projectReferences;\n private compilerHost?;\n private releaseParsedConfig;\n /**\n * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph\n * @returns: true if set of files in the project stays the same and false - otherwise.\n */\n updateGraph(): boolean;\n getConfigFilePath(): NormalizedPath;\n getProjectReferences(): readonly ProjectReference[] | undefined;\n updateReferences(refs: readonly ProjectReference[] | undefined): void;\n /**\n * Get the errors that dont have any file name associated\n */\n getGlobalProjectErrors(): readonly Diagnostic[];\n /**\n * Get all the project errors\n */\n getAllProjectErrors(): readonly Diagnostic[];\n setProjectErrors(projectErrors: Diagnostic[]): void;\n close(): void;\n getEffectiveTypeRoots(): string[];\n }\n /**\n * Project whose configuration is handled externally, such as in a '.csproj'.\n * These are created only if a host explicitly calls `openExternalProject`.\n */\n class ExternalProject extends Project {\n externalProjectName: string;\n compileOnSaveEnabled: boolean;\n excludedFiles: readonly NormalizedPath[];\n updateGraph(): boolean;\n getExcludedFiles(): readonly NormalizedPath[];\n }\n function convertFormatOptions(protocolOptions: protocol.FormatCodeSettings): FormatCodeSettings;\n function convertCompilerOptions(protocolOptions: protocol.ExternalProjectCompilerOptions): CompilerOptions & protocol.CompileOnSaveMixin;\n function convertWatchOptions(protocolOptions: protocol.ExternalProjectCompilerOptions, currentDirectory?: string): WatchOptionsAndErrors | undefined;\n function convertTypeAcquisition(protocolOptions: protocol.InferredProjectCompilerOptions): TypeAcquisition | undefined;\n function tryConvertScriptKindName(scriptKindName: protocol.ScriptKindName | ScriptKind): ScriptKind;\n function convertScriptKindName(scriptKindName: protocol.ScriptKindName): ScriptKind;\n const maxProgramSizeForNonTsFiles: number;\n const ProjectsUpdatedInBackgroundEvent = \"projectsUpdatedInBackground\";\n interface ProjectsUpdatedInBackgroundEvent {\n eventName: typeof ProjectsUpdatedInBackgroundEvent;\n data: {\n openFiles: string[];\n };\n }\n const ProjectLoadingStartEvent = \"projectLoadingStart\";\n interface ProjectLoadingStartEvent {\n eventName: typeof ProjectLoadingStartEvent;\n data: {\n project: Project;\n reason: string;\n };\n }\n const ProjectLoadingFinishEvent = \"projectLoadingFinish\";\n interface ProjectLoadingFinishEvent {\n eventName: typeof ProjectLoadingFinishEvent;\n data: {\n project: Project;\n };\n }\n const LargeFileReferencedEvent = \"largeFileReferenced\";\n interface LargeFileReferencedEvent {\n eventName: typeof LargeFileReferencedEvent;\n data: {\n file: string;\n fileSize: number;\n maxFileSize: number;\n };\n }\n const ConfigFileDiagEvent = \"configFileDiag\";\n interface ConfigFileDiagEvent {\n eventName: typeof ConfigFileDiagEvent;\n data: {\n triggerFile: string;\n configFileName: string;\n diagnostics: readonly Diagnostic[];\n };\n }\n const ProjectLanguageServiceStateEvent = \"projectLanguageServiceState\";\n interface ProjectLanguageServiceStateEvent {\n eventName: typeof ProjectLanguageServiceStateEvent;\n data: {\n project: Project;\n languageServiceEnabled: boolean;\n };\n }\n const ProjectInfoTelemetryEvent = \"projectInfo\";\n /** This will be converted to the payload of a protocol.TelemetryEvent in session.defaultEventHandler. */\n interface ProjectInfoTelemetryEvent {\n readonly eventName: typeof ProjectInfoTelemetryEvent;\n readonly data: ProjectInfoTelemetryEventData;\n }\n const OpenFileInfoTelemetryEvent = \"openFileInfo\";\n /**\n * Info that we may send about a file that was just opened.\n * Info about a file will only be sent once per session, even if the file changes in ways that might affect the info.\n * Currently this is only sent for '.js' files.\n */\n interface OpenFileInfoTelemetryEvent {\n readonly eventName: typeof OpenFileInfoTelemetryEvent;\n readonly data: OpenFileInfoTelemetryEventData;\n }\n const CreateFileWatcherEvent: protocol.CreateFileWatcherEventName;\n interface CreateFileWatcherEvent {\n readonly eventName: protocol.CreateFileWatcherEventName;\n readonly data: protocol.CreateFileWatcherEventBody;\n }\n const CreateDirectoryWatcherEvent: protocol.CreateDirectoryWatcherEventName;\n interface CreateDirectoryWatcherEvent {\n readonly eventName: protocol.CreateDirectoryWatcherEventName;\n readonly data: protocol.CreateDirectoryWatcherEventBody;\n }\n const CloseFileWatcherEvent: protocol.CloseFileWatcherEventName;\n interface CloseFileWatcherEvent {\n readonly eventName: protocol.CloseFileWatcherEventName;\n readonly data: protocol.CloseFileWatcherEventBody;\n }\n interface ProjectInfoTelemetryEventData {\n /** Cryptographically secure hash of project file location. */\n readonly projectId: string;\n /** Count of file extensions seen in the project. */\n readonly fileStats: FileStats;\n /**\n * Any compiler options that might contain paths will be taken out.\n * Enum compiler options will be converted to strings.\n */\n readonly compilerOptions: CompilerOptions;\n readonly extends: boolean | undefined;\n readonly files: boolean | undefined;\n readonly include: boolean | undefined;\n readonly exclude: boolean | undefined;\n readonly compileOnSave: boolean;\n readonly typeAcquisition: ProjectInfoTypeAcquisitionData;\n readonly configFileName: \"tsconfig.json\" | \"jsconfig.json\" | \"other\";\n readonly projectType: \"external\" | \"configured\";\n readonly languageServiceEnabled: boolean;\n /** TypeScript version used by the server. */\n readonly version: string;\n }\n interface OpenFileInfoTelemetryEventData {\n readonly info: OpenFileInfo;\n }\n interface ProjectInfoTypeAcquisitionData {\n readonly enable: boolean | undefined;\n readonly include: boolean;\n readonly exclude: boolean;\n }\n interface FileStats {\n readonly js: number;\n readonly jsSize?: number;\n readonly jsx: number;\n readonly jsxSize?: number;\n readonly ts: number;\n readonly tsSize?: number;\n readonly tsx: number;\n readonly tsxSize?: number;\n readonly dts: number;\n readonly dtsSize?: number;\n readonly deferred: number;\n readonly deferredSize?: number;\n }\n interface OpenFileInfo {\n readonly checkJs: boolean;\n }\n type ProjectServiceEvent = LargeFileReferencedEvent | ProjectsUpdatedInBackgroundEvent | ProjectLoadingStartEvent | ProjectLoadingFinishEvent | ConfigFileDiagEvent | ProjectLanguageServiceStateEvent | ProjectInfoTelemetryEvent | OpenFileInfoTelemetryEvent | CreateFileWatcherEvent | CreateDirectoryWatcherEvent | CloseFileWatcherEvent;\n type ProjectServiceEventHandler = (event: ProjectServiceEvent) => void;\n interface SafeList {\n [name: string]: {\n match: RegExp;\n exclude?: (string | number)[][];\n types?: string[];\n };\n }\n interface TypesMapFile {\n typesMap: SafeList;\n simpleMap: {\n [libName: string]: string;\n };\n }\n interface HostConfiguration {\n formatCodeOptions: FormatCodeSettings;\n preferences: protocol.UserPreferences;\n hostInfo: string;\n extraFileExtensions?: FileExtensionInfo[];\n watchOptions?: WatchOptions;\n }\n interface OpenConfiguredProjectResult {\n configFileName?: NormalizedPath;\n configFileErrors?: readonly Diagnostic[];\n }\n const nullTypingsInstaller: ITypingsInstaller;\n interface ProjectServiceOptions {\n host: ServerHost;\n logger: Logger;\n cancellationToken: HostCancellationToken;\n useSingleInferredProject: boolean;\n useInferredProjectPerProjectRoot: boolean;\n typingsInstaller?: ITypingsInstaller;\n eventHandler?: ProjectServiceEventHandler;\n canUseWatchEvents?: boolean;\n suppressDiagnosticEvents?: boolean;\n throttleWaitMilliseconds?: number;\n globalPlugins?: readonly string[];\n pluginProbeLocations?: readonly string[];\n allowLocalPluginLoads?: boolean;\n typesMapLocation?: string;\n serverMode?: LanguageServiceMode;\n session: Session | undefined;\n jsDocParsingMode?: JSDocParsingMode;\n }\n interface WatchOptionsAndErrors {\n watchOptions: WatchOptions;\n errors: Diagnostic[] | undefined;\n }\n class ProjectService {\n private readonly nodeModulesWatchers;\n private readonly filenameToScriptInfoVersion;\n private readonly allJsFilesForOpenFileTelemetry;\n private readonly externalProjectToConfiguredProjectMap;\n /**\n * external projects (configuration and list of root files is not controlled by tsserver)\n */\n readonly externalProjects: ExternalProject[];\n /**\n * projects built from openFileRoots\n */\n readonly inferredProjects: InferredProject[];\n /**\n * projects specified by a tsconfig.json file\n */\n readonly configuredProjects: Map;\n /**\n * Open files: with value being project root path, and key being Path of the file that is open\n */\n readonly openFiles: Map;\n private readonly configFileForOpenFiles;\n private rootOfInferredProjects;\n private readonly openFilesWithNonRootedDiskPath;\n private compilerOptionsForInferredProjects;\n private compilerOptionsForInferredProjectsPerProjectRoot;\n private watchOptionsForInferredProjects;\n private watchOptionsForInferredProjectsPerProjectRoot;\n private typeAcquisitionForInferredProjects;\n private typeAcquisitionForInferredProjectsPerProjectRoot;\n private readonly projectToSizeMap;\n private readonly hostConfiguration;\n private safelist;\n private readonly legacySafelist;\n private pendingProjectUpdates;\n private pendingOpenFileProjectUpdates?;\n readonly currentDirectory: NormalizedPath;\n readonly toCanonicalFileName: (f: string) => string;\n readonly host: ServerHost;\n readonly logger: Logger;\n readonly cancellationToken: HostCancellationToken;\n readonly useSingleInferredProject: boolean;\n readonly useInferredProjectPerProjectRoot: boolean;\n readonly typingsInstaller: ITypingsInstaller;\n private readonly globalCacheLocationDirectoryPath;\n readonly throttleWaitMilliseconds?: number;\n private readonly suppressDiagnosticEvents?;\n readonly globalPlugins: readonly string[];\n readonly pluginProbeLocations: readonly string[];\n readonly allowLocalPluginLoads: boolean;\n readonly typesMapLocation: string | undefined;\n readonly serverMode: LanguageServiceMode;\n private readonly seenProjects;\n private readonly sharedExtendedConfigFileWatchers;\n private readonly extendedConfigCache;\n private packageJsonFilesMap;\n private incompleteCompletionsCache;\n private performanceEventHandler?;\n private pendingPluginEnablements?;\n private currentPluginEnablementPromise?;\n readonly jsDocParsingMode: JSDocParsingMode | undefined;\n constructor(opts: ProjectServiceOptions);\n toPath(fileName: string): Path;\n private loadTypesMap;\n updateTypingsForProject(response: SetTypings | InvalidateCachedTypings | PackageInstalledResponse): void;\n private delayUpdateProjectGraph;\n private delayUpdateProjectGraphs;\n setCompilerOptionsForInferredProjects(projectCompilerOptions: protocol.InferredProjectCompilerOptions, projectRootPath?: string): void;\n findProject(projectName: string): Project | undefined;\n getDefaultProjectForFile(fileName: NormalizedPath, ensureProject: boolean): Project | undefined;\n private tryGetDefaultProjectForEnsuringConfiguredProjectForFile;\n private doEnsureDefaultProjectForFile;\n getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName: string): ScriptInfo | undefined;\n private ensureProjectStructuresUptoDate;\n getFormatCodeOptions(file: NormalizedPath): FormatCodeSettings;\n getPreferences(file: NormalizedPath): protocol.UserPreferences;\n getHostFormatCodeOptions(): FormatCodeSettings;\n getHostPreferences(): protocol.UserPreferences;\n private onSourceFileChanged;\n private handleSourceMapProjects;\n private delayUpdateSourceInfoProjects;\n private delayUpdateProjectsOfScriptInfoPath;\n private handleDeletedFile;\n private watchWildcardDirectory;\n private onWildCardDirectoryWatcherInvoke;\n private delayUpdateProjectsFromParsedConfigOnConfigFileChange;\n private onConfigFileChanged;\n private removeProject;\n private assignOrphanScriptInfosToInferredProject;\n private closeOpenFile;\n private deleteScriptInfo;\n private configFileExists;\n private createConfigFileWatcherForParsedConfig;\n private ensureConfigFileWatcherForProject;\n private forEachConfigFileLocation;\n private getConfigFileNameForFileFromCache;\n private setConfigFileNameForFileInCache;\n private printProjects;\n private getConfiguredProjectByCanonicalConfigFilePath;\n private findExternalProjectByProjectName;\n private getFilenameForExceededTotalSizeLimitForNonTsFiles;\n private createExternalProject;\n private addFilesToNonInferredProject;\n private loadConfiguredProject;\n private updateNonInferredProjectFiles;\n private updateRootAndOptionsOfNonInferredProject;\n private reloadFileNamesOfParsedConfig;\n private setProjectForReload;\n private clearSemanticCache;\n private getOrCreateInferredProjectForProjectRootPathIfEnabled;\n private getOrCreateSingleInferredProjectIfEnabled;\n private getOrCreateSingleInferredWithoutProjectRoot;\n private createInferredProject;\n getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined;\n private watchClosedScriptInfo;\n private createNodeModulesWatcher;\n private watchClosedScriptInfoInNodeModules;\n private getModifiedTime;\n private refreshScriptInfo;\n private refreshScriptInfosInDirectory;\n private stopWatchingScriptInfo;\n private getOrCreateScriptInfoNotOpenedByClientForNormalizedPath;\n getOrCreateScriptInfoForNormalizedPath(fileName: NormalizedPath, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, hostToQueryFileExistsOn?: {\n fileExists(path: string): boolean;\n }): ScriptInfo | undefined;\n private getOrCreateScriptInfoWorker;\n /**\n * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred\n */\n getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined;\n getScriptInfoForPath(fileName: Path): ScriptInfo | undefined;\n private addSourceInfoToSourceMap;\n private addMissingSourceMapFile;\n setHostConfiguration(args: protocol.ConfigureRequestArguments): void;\n private getWatchOptionsFromProjectWatchOptions;\n closeLog(): void;\n private sendSourceFileChange;\n /**\n * This function rebuilds the project for every file opened by the client\n * This does not reload contents of open files from disk. But we could do that if needed\n */\n reloadProjects(): void;\n private removeRootOfInferredProjectIfNowPartOfOtherProject;\n private ensureProjectForOpenFiles;\n /**\n * Open file whose contents is managed by the client\n * @param filename is absolute pathname\n * @param fileContent is a known version of the file content that is more up to date than the one on disk\n */\n openClientFile(fileName: string, fileContent?: string, scriptKind?: ScriptKind, projectRootPath?: string): OpenConfiguredProjectResult;\n private findExternalProjectContainingOpenScriptInfo;\n private getOrCreateOpenScriptInfo;\n private assignProjectToOpenedScriptInfo;\n private tryFindDefaultConfiguredProjectForOpenScriptInfo;\n private isMatchedByConfig;\n private tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo;\n private tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo;\n private ensureProjectChildren;\n private cleanupConfiguredProjects;\n private cleanupProjectsAndScriptInfos;\n private tryInvokeWildCardDirectories;\n openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult;\n private removeOrphanScriptInfos;\n private telemetryOnOpenFile;\n /**\n * Close file whose contents is managed by the client\n * @param filename is absolute pathname\n */\n closeClientFile(uncheckedFileName: string): void;\n private collectChanges;\n closeExternalProject(uncheckedFileName: string): void;\n openExternalProjects(projects: protocol.ExternalProject[]): void;\n private static readonly filenameEscapeRegexp;\n private static escapeFilenameForRegex;\n resetSafeList(): void;\n applySafeList(proj: protocol.ExternalProject): NormalizedPath[];\n private applySafeListWorker;\n openExternalProject(proj: protocol.ExternalProject): void;\n hasDeferredExtension(): boolean;\n private endEnablePlugin;\n private enableRequestedPluginsAsync;\n private enableRequestedPluginsWorker;\n configurePlugin(args: protocol.ConfigurePluginRequestArguments): void;\n private watchPackageJsonFile;\n private onPackageJsonChange;\n }\n function formatMessage(msg: T, logger: Logger, byteLength: (s: string, encoding: BufferEncoding) => number, newLine: string): string;\n interface ServerCancellationToken extends HostCancellationToken {\n setRequest(requestId: number): void;\n resetRequest(requestId: number): void;\n }\n const nullCancellationToken: ServerCancellationToken;\n /** @deprecated use ts.server.protocol.CommandTypes */\n type CommandNames = protocol.CommandTypes;\n /** @deprecated use ts.server.protocol.CommandTypes */\n const CommandNames: any;\n type Event = (body: T, eventName: string) => void;\n interface EventSender {\n event: Event;\n }\n interface SessionOptions {\n host: ServerHost;\n cancellationToken: ServerCancellationToken;\n useSingleInferredProject: boolean;\n useInferredProjectPerProjectRoot: boolean;\n typingsInstaller?: ITypingsInstaller;\n byteLength: (buf: string, encoding?: BufferEncoding) => number;\n hrtime: (start?: [\n number,\n number,\n ]) => [\n number,\n number,\n ];\n logger: Logger;\n /**\n * If falsy, all events are suppressed.\n */\n canUseEvents: boolean;\n canUseWatchEvents?: boolean;\n eventHandler?: ProjectServiceEventHandler;\n /** Has no effect if eventHandler is also specified. */\n suppressDiagnosticEvents?: boolean;\n serverMode?: LanguageServiceMode;\n throttleWaitMilliseconds?: number;\n noGetErrOnBackgroundUpdate?: boolean;\n globalPlugins?: readonly string[];\n pluginProbeLocations?: readonly string[];\n allowLocalPluginLoads?: boolean;\n typesMapLocation?: string;\n }\n class Session implements EventSender {\n private readonly gcTimer;\n protected projectService: ProjectService;\n private changeSeq;\n private performanceData;\n private currentRequestId;\n private errorCheck;\n protected host: ServerHost;\n private readonly cancellationToken;\n protected readonly typingsInstaller: ITypingsInstaller;\n protected byteLength: (buf: string, encoding?: BufferEncoding) => number;\n private hrtime;\n protected logger: Logger;\n protected canUseEvents: boolean;\n private suppressDiagnosticEvents?;\n private eventHandler;\n private readonly noGetErrOnBackgroundUpdate?;\n constructor(opts: SessionOptions);\n private sendRequestCompletedEvent;\n private addPerformanceData;\n private addDiagnosticsPerformanceData;\n private performanceEventHandler;\n private defaultEventHandler;\n private projectsUpdatedInBackgroundEvent;\n logError(err: Error, cmd: string): void;\n private logErrorWorker;\n send(msg: protocol.Message): void;\n protected writeMessage(msg: protocol.Message): void;\n event(body: T, eventName: string): void;\n private semanticCheck;\n private syntacticCheck;\n private suggestionCheck;\n private regionSemanticCheck;\n private sendDiagnosticsEvent;\n private updateErrorCheck;\n private cleanProjects;\n private cleanup;\n private getEncodedSyntacticClassifications;\n private getEncodedSemanticClassifications;\n private getProject;\n private getConfigFileAndProject;\n private getConfigFileDiagnostics;\n private convertToDiagnosticsWithLinePositionFromDiagnosticFile;\n private getCompilerOptionsDiagnostics;\n private convertToDiagnosticsWithLinePosition;\n private getDiagnosticsWorker;\n private getDefinition;\n private mapDefinitionInfoLocations;\n private getDefinitionAndBoundSpan;\n private findSourceDefinition;\n private getEmitOutput;\n private mapJSDocTagInfo;\n private mapDisplayParts;\n private mapSignatureHelpItems;\n private mapDefinitionInfo;\n private static mapToOriginalLocation;\n private toFileSpan;\n private toFileSpanWithContext;\n private getTypeDefinition;\n private mapImplementationLocations;\n private getImplementation;\n private getSyntacticDiagnosticsSync;\n private getSemanticDiagnosticsSync;\n private getSuggestionDiagnosticsSync;\n private getJsxClosingTag;\n private getLinkedEditingRange;\n private getDocumentHighlights;\n private provideInlayHints;\n private mapCode;\n private getCopilotRelatedInfo;\n private setCompilerOptionsForInferredProjects;\n private getProjectInfo;\n private getProjectInfoWorker;\n private getDefaultConfiguredProjectInfo;\n private getRenameInfo;\n private getProjects;\n private getDefaultProject;\n private getRenameLocations;\n private mapRenameInfo;\n private toSpanGroups;\n private getReferences;\n private getFileReferences;\n private openClientFile;\n private getPosition;\n private getPositionInFile;\n private getFileAndProject;\n private getFileAndLanguageServiceForSyntacticOperation;\n private getFileAndProjectWorker;\n private getOutliningSpans;\n private getTodoComments;\n private getDocCommentTemplate;\n private getSpanOfEnclosingComment;\n private getIndentation;\n private getBreakpointStatement;\n private getNameOrDottedNameSpan;\n private isValidBraceCompletion;\n private getQuickInfoWorker;\n private getFormattingEditsForRange;\n private getFormattingEditsForRangeFull;\n private getFormattingEditsForDocumentFull;\n private getFormattingEditsAfterKeystrokeFull;\n private getFormattingEditsAfterKeystroke;\n private getCompletions;\n private getCompletionEntryDetails;\n private getCompileOnSaveAffectedFileList;\n private emitFile;\n private getSignatureHelpItems;\n private toPendingErrorCheck;\n private getDiagnostics;\n private change;\n private reload;\n private saveToTmp;\n private closeClientFile;\n private mapLocationNavigationBarItems;\n private getNavigationBarItems;\n private toLocationNavigationTree;\n private getNavigationTree;\n private getNavigateToItems;\n private getFullNavigateToItems;\n private getSupportedCodeFixes;\n private isLocation;\n private extractPositionOrRange;\n private getRange;\n private getApplicableRefactors;\n private getEditsForRefactor;\n private getMoveToRefactoringFileSuggestions;\n private preparePasteEdits;\n private getPasteEdits;\n private organizeImports;\n private getEditsForFileRename;\n private getCodeFixes;\n private getCombinedCodeFix;\n private applyCodeActionCommand;\n private getStartAndEndPosition;\n private mapCodeAction;\n private mapCodeFixAction;\n private mapPasteEditsAction;\n private mapTextChangesToCodeEdits;\n private mapTextChangeToCodeEdit;\n private convertTextChangeToCodeEdit;\n private getBraceMatching;\n private getDiagnosticsForProject;\n private configurePlugin;\n private getSmartSelectionRange;\n private toggleLineComment;\n private toggleMultilineComment;\n private commentSelection;\n private uncommentSelection;\n private mapSelectionRange;\n private getScriptInfoFromProjectService;\n private toProtocolCallHierarchyItem;\n private toProtocolCallHierarchyIncomingCall;\n private toProtocolCallHierarchyOutgoingCall;\n private prepareCallHierarchy;\n private provideCallHierarchyIncomingCalls;\n private provideCallHierarchyOutgoingCalls;\n getCanonicalFileName(fileName: string): string;\n exit(): void;\n private notRequired;\n private requiredResponse;\n private handlers;\n addProtocolHandler(command: string, handler: (request: protocol.Request) => HandlerResponse): void;\n private setCurrentRequest;\n private resetCurrentRequest;\n executeWithRequestId(requestId: number, f: () => T): T;\n executeCommand(request: protocol.Request): HandlerResponse;\n onMessage(message: TMessage): void;\n protected parseMessage(message: TMessage): protocol.Request;\n protected toStringMessage(message: TMessage): string;\n private getFormatOptions;\n private getPreferences;\n private getHostFormatOptions;\n private getHostPreferences;\n }\n interface HandlerResponse {\n response?: {};\n responseRequired?: boolean;\n }\n }\n namespace JsTyping {\n interface TypingResolutionHost {\n directoryExists(path: string): boolean;\n fileExists(fileName: string): boolean;\n readFile(path: string, encoding?: string): string | undefined;\n readDirectory(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[] | undefined, depth?: number): string[];\n }\n }\n const versionMajorMinor = \"5.9\";\n /** The version of the TypeScript compiler release */\n const version: string;\n /**\n * Type of objects whose values are all of the same type.\n * The `in` and `for-in` operators can *not* be safely used,\n * since `Object.prototype` may be modified by outside code.\n */\n interface MapLike {\n [index: string]: T;\n }\n interface SortedReadonlyArray extends ReadonlyArray {\n \" __sortedArrayBrand\": any;\n }\n interface SortedArray extends Array {\n \" __sortedArrayBrand\": any;\n }\n type Path = string & {\n __pathBrand: any;\n };\n interface TextRange {\n pos: number;\n end: number;\n }\n interface ReadonlyTextRange {\n readonly pos: number;\n readonly end: number;\n }\n enum SyntaxKind {\n Unknown = 0,\n EndOfFileToken = 1,\n SingleLineCommentTrivia = 2,\n MultiLineCommentTrivia = 3,\n NewLineTrivia = 4,\n WhitespaceTrivia = 5,\n ShebangTrivia = 6,\n ConflictMarkerTrivia = 7,\n NonTextFileMarkerTrivia = 8,\n NumericLiteral = 9,\n BigIntLiteral = 10,\n StringLiteral = 11,\n JsxText = 12,\n JsxTextAllWhiteSpaces = 13,\n RegularExpressionLiteral = 14,\n NoSubstitutionTemplateLiteral = 15,\n TemplateHead = 16,\n TemplateMiddle = 17,\n TemplateTail = 18,\n OpenBraceToken = 19,\n CloseBraceToken = 20,\n OpenParenToken = 21,\n CloseParenToken = 22,\n OpenBracketToken = 23,\n CloseBracketToken = 24,\n DotToken = 25,\n DotDotDotToken = 26,\n SemicolonToken = 27,\n CommaToken = 28,\n QuestionDotToken = 29,\n LessThanToken = 30,\n LessThanSlashToken = 31,\n GreaterThanToken = 32,\n LessThanEqualsToken = 33,\n GreaterThanEqualsToken = 34,\n EqualsEqualsToken = 35,\n ExclamationEqualsToken = 36,\n EqualsEqualsEqualsToken = 37,\n ExclamationEqualsEqualsToken = 38,\n EqualsGreaterThanToken = 39,\n PlusToken = 40,\n MinusToken = 41,\n AsteriskToken = 42,\n AsteriskAsteriskToken = 43,\n SlashToken = 44,\n PercentToken = 45,\n PlusPlusToken = 46,\n MinusMinusToken = 47,\n LessThanLessThanToken = 48,\n GreaterThanGreaterThanToken = 49,\n GreaterThanGreaterThanGreaterThanToken = 50,\n AmpersandToken = 51,\n BarToken = 52,\n CaretToken = 53,\n ExclamationToken = 54,\n TildeToken = 55,\n AmpersandAmpersandToken = 56,\n BarBarToken = 57,\n QuestionToken = 58,\n ColonToken = 59,\n AtToken = 60,\n QuestionQuestionToken = 61,\n /** Only the JSDoc scanner produces BacktickToken. The normal scanner produces NoSubstitutionTemplateLiteral and related kinds. */\n BacktickToken = 62,\n /** Only the JSDoc scanner produces HashToken. The normal scanner produces PrivateIdentifier. */\n HashToken = 63,\n EqualsToken = 64,\n PlusEqualsToken = 65,\n MinusEqualsToken = 66,\n AsteriskEqualsToken = 67,\n AsteriskAsteriskEqualsToken = 68,\n SlashEqualsToken = 69,\n PercentEqualsToken = 70,\n LessThanLessThanEqualsToken = 71,\n GreaterThanGreaterThanEqualsToken = 72,\n GreaterThanGreaterThanGreaterThanEqualsToken = 73,\n AmpersandEqualsToken = 74,\n BarEqualsToken = 75,\n BarBarEqualsToken = 76,\n AmpersandAmpersandEqualsToken = 77,\n QuestionQuestionEqualsToken = 78,\n CaretEqualsToken = 79,\n Identifier = 80,\n PrivateIdentifier = 81,\n BreakKeyword = 83,\n CaseKeyword = 84,\n CatchKeyword = 85,\n ClassKeyword = 86,\n ConstKeyword = 87,\n ContinueKeyword = 88,\n DebuggerKeyword = 89,\n DefaultKeyword = 90,\n DeleteKeyword = 91,\n DoKeyword = 92,\n ElseKeyword = 93,\n EnumKeyword = 94,\n ExportKeyword = 95,\n ExtendsKeyword = 96,\n FalseKeyword = 97,\n FinallyKeyword = 98,\n ForKeyword = 99,\n FunctionKeyword = 100,\n IfKeyword = 101,\n ImportKeyword = 102,\n InKeyword = 103,\n InstanceOfKeyword = 104,\n NewKeyword = 105,\n NullKeyword = 106,\n ReturnKeyword = 107,\n SuperKeyword = 108,\n SwitchKeyword = 109,\n ThisKeyword = 110,\n ThrowKeyword = 111,\n TrueKeyword = 112,\n TryKeyword = 113,\n TypeOfKeyword = 114,\n VarKeyword = 115,\n VoidKeyword = 116,\n WhileKeyword = 117,\n WithKeyword = 118,\n ImplementsKeyword = 119,\n InterfaceKeyword = 120,\n LetKeyword = 121,\n PackageKeyword = 122,\n PrivateKeyword = 123,\n ProtectedKeyword = 124,\n PublicKeyword = 125,\n StaticKeyword = 126,\n YieldKeyword = 127,\n AbstractKeyword = 128,\n AccessorKeyword = 129,\n AsKeyword = 130,\n AssertsKeyword = 131,\n AssertKeyword = 132,\n AnyKeyword = 133,\n AsyncKeyword = 134,\n AwaitKeyword = 135,\n BooleanKeyword = 136,\n ConstructorKeyword = 137,\n DeclareKeyword = 138,\n GetKeyword = 139,\n InferKeyword = 140,\n IntrinsicKeyword = 141,\n IsKeyword = 142,\n KeyOfKeyword = 143,\n ModuleKeyword = 144,\n NamespaceKeyword = 145,\n NeverKeyword = 146,\n OutKeyword = 147,\n ReadonlyKeyword = 148,\n RequireKeyword = 149,\n NumberKeyword = 150,\n ObjectKeyword = 151,\n SatisfiesKeyword = 152,\n SetKeyword = 153,\n StringKeyword = 154,\n SymbolKeyword = 155,\n TypeKeyword = 156,\n UndefinedKeyword = 157,\n UniqueKeyword = 158,\n UnknownKeyword = 159,\n UsingKeyword = 160,\n FromKeyword = 161,\n GlobalKeyword = 162,\n BigIntKeyword = 163,\n OverrideKeyword = 164,\n OfKeyword = 165,\n DeferKeyword = 166,\n QualifiedName = 167,\n ComputedPropertyName = 168,\n TypeParameter = 169,\n Parameter = 170,\n Decorator = 171,\n PropertySignature = 172,\n PropertyDeclaration = 173,\n MethodSignature = 174,\n MethodDeclaration = 175,\n ClassStaticBlockDeclaration = 176,\n Constructor = 177,\n GetAccessor = 178,\n SetAccessor = 179,\n CallSignature = 180,\n ConstructSignature = 181,\n IndexSignature = 182,\n TypePredicate = 183,\n TypeReference = 184,\n FunctionType = 185,\n ConstructorType = 186,\n TypeQuery = 187,\n TypeLiteral = 188,\n ArrayType = 189,\n TupleType = 190,\n OptionalType = 191,\n RestType = 192,\n UnionType = 193,\n IntersectionType = 194,\n ConditionalType = 195,\n InferType = 196,\n ParenthesizedType = 197,\n ThisType = 198,\n TypeOperator = 199,\n IndexedAccessType = 200,\n MappedType = 201,\n LiteralType = 202,\n NamedTupleMember = 203,\n TemplateLiteralType = 204,\n TemplateLiteralTypeSpan = 205,\n ImportType = 206,\n ObjectBindingPattern = 207,\n ArrayBindingPattern = 208,\n BindingElement = 209,\n ArrayLiteralExpression = 210,\n ObjectLiteralExpression = 211,\n PropertyAccessExpression = 212,\n ElementAccessExpression = 213,\n CallExpression = 214,\n NewExpression = 215,\n TaggedTemplateExpression = 216,\n TypeAssertionExpression = 217,\n ParenthesizedExpression = 218,\n FunctionExpression = 219,\n ArrowFunction = 220,\n DeleteExpression = 221,\n TypeOfExpression = 222,\n VoidExpression = 223,\n AwaitExpression = 224,\n PrefixUnaryExpression = 225,\n PostfixUnaryExpression = 226,\n BinaryExpression = 227,\n ConditionalExpression = 228,\n TemplateExpression = 229,\n YieldExpression = 230,\n SpreadElement = 231,\n ClassExpression = 232,\n OmittedExpression = 233,\n ExpressionWithTypeArguments = 234,\n AsExpression = 235,\n NonNullExpression = 236,\n MetaProperty = 237,\n SyntheticExpression = 238,\n SatisfiesExpression = 239,\n TemplateSpan = 240,\n SemicolonClassElement = 241,\n Block = 242,\n EmptyStatement = 243,\n VariableStatement = 244,\n ExpressionStatement = 245,\n IfStatement = 246,\n DoStatement = 247,\n WhileStatement = 248,\n ForStatement = 249,\n ForInStatement = 250,\n ForOfStatement = 251,\n ContinueStatement = 252,\n BreakStatement = 253,\n ReturnStatement = 254,\n WithStatement = 255,\n SwitchStatement = 256,\n LabeledStatement = 257,\n ThrowStatement = 258,\n TryStatement = 259,\n DebuggerStatement = 260,\n VariableDeclaration = 261,\n VariableDeclarationList = 262,\n FunctionDeclaration = 263,\n ClassDeclaration = 264,\n InterfaceDeclaration = 265,\n TypeAliasDeclaration = 266,\n EnumDeclaration = 267,\n ModuleDeclaration = 268,\n ModuleBlock = 269,\n CaseBlock = 270,\n NamespaceExportDeclaration = 271,\n ImportEqualsDeclaration = 272,\n ImportDeclaration = 273,\n ImportClause = 274,\n NamespaceImport = 275,\n NamedImports = 276,\n ImportSpecifier = 277,\n ExportAssignment = 278,\n ExportDeclaration = 279,\n NamedExports = 280,\n NamespaceExport = 281,\n ExportSpecifier = 282,\n MissingDeclaration = 283,\n ExternalModuleReference = 284,\n JsxElement = 285,\n JsxSelfClosingElement = 286,\n JsxOpeningElement = 287,\n JsxClosingElement = 288,\n JsxFragment = 289,\n JsxOpeningFragment = 290,\n JsxClosingFragment = 291,\n JsxAttribute = 292,\n JsxAttributes = 293,\n JsxSpreadAttribute = 294,\n JsxExpression = 295,\n JsxNamespacedName = 296,\n CaseClause = 297,\n DefaultClause = 298,\n HeritageClause = 299,\n CatchClause = 300,\n ImportAttributes = 301,\n ImportAttribute = 302,\n /** @deprecated */ AssertClause = 301,\n /** @deprecated */ AssertEntry = 302,\n /** @deprecated */ ImportTypeAssertionContainer = 303,\n PropertyAssignment = 304,\n ShorthandPropertyAssignment = 305,\n SpreadAssignment = 306,\n EnumMember = 307,\n SourceFile = 308,\n Bundle = 309,\n JSDocTypeExpression = 310,\n JSDocNameReference = 311,\n JSDocMemberName = 312,\n JSDocAllType = 313,\n JSDocUnknownType = 314,\n JSDocNullableType = 315,\n JSDocNonNullableType = 316,\n JSDocOptionalType = 317,\n JSDocFunctionType = 318,\n JSDocVariadicType = 319,\n JSDocNamepathType = 320,\n JSDoc = 321,\n /** @deprecated Use SyntaxKind.JSDoc */\n JSDocComment = 321,\n JSDocText = 322,\n JSDocTypeLiteral = 323,\n JSDocSignature = 324,\n JSDocLink = 325,\n JSDocLinkCode = 326,\n JSDocLinkPlain = 327,\n JSDocTag = 328,\n JSDocAugmentsTag = 329,\n JSDocImplementsTag = 330,\n JSDocAuthorTag = 331,\n JSDocDeprecatedTag = 332,\n JSDocClassTag = 333,\n JSDocPublicTag = 334,\n JSDocPrivateTag = 335,\n JSDocProtectedTag = 336,\n JSDocReadonlyTag = 337,\n JSDocOverrideTag = 338,\n JSDocCallbackTag = 339,\n JSDocOverloadTag = 340,\n JSDocEnumTag = 341,\n JSDocParameterTag = 342,\n JSDocReturnTag = 343,\n JSDocThisTag = 344,\n JSDocTypeTag = 345,\n JSDocTemplateTag = 346,\n JSDocTypedefTag = 347,\n JSDocSeeTag = 348,\n JSDocPropertyTag = 349,\n JSDocThrowsTag = 350,\n JSDocSatisfiesTag = 351,\n JSDocImportTag = 352,\n SyntaxList = 353,\n NotEmittedStatement = 354,\n NotEmittedTypeElement = 355,\n PartiallyEmittedExpression = 356,\n CommaListExpression = 357,\n SyntheticReferenceExpression = 358,\n Count = 359,\n FirstAssignment = 64,\n LastAssignment = 79,\n FirstCompoundAssignment = 65,\n LastCompoundAssignment = 79,\n FirstReservedWord = 83,\n LastReservedWord = 118,\n FirstKeyword = 83,\n LastKeyword = 166,\n FirstFutureReservedWord = 119,\n LastFutureReservedWord = 127,\n FirstTypeNode = 183,\n LastTypeNode = 206,\n FirstPunctuation = 19,\n LastPunctuation = 79,\n FirstToken = 0,\n LastToken = 166,\n FirstTriviaToken = 2,\n LastTriviaToken = 7,\n FirstLiteralToken = 9,\n LastLiteralToken = 15,\n FirstTemplateToken = 15,\n LastTemplateToken = 18,\n FirstBinaryOperator = 30,\n LastBinaryOperator = 79,\n FirstStatement = 244,\n LastStatement = 260,\n FirstNode = 167,\n FirstJSDocNode = 310,\n LastJSDocNode = 352,\n FirstJSDocTagNode = 328,\n LastJSDocTagNode = 352,\n }\n type TriviaSyntaxKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia;\n type LiteralSyntaxKind = SyntaxKind.NumericLiteral | SyntaxKind.BigIntLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral;\n type PseudoLiteralSyntaxKind = SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail;\n type PunctuationSyntaxKind =\n | SyntaxKind.OpenBraceToken\n | SyntaxKind.CloseBraceToken\n | SyntaxKind.OpenParenToken\n | SyntaxKind.CloseParenToken\n | SyntaxKind.OpenBracketToken\n | SyntaxKind.CloseBracketToken\n | SyntaxKind.DotToken\n | SyntaxKind.DotDotDotToken\n | SyntaxKind.SemicolonToken\n | SyntaxKind.CommaToken\n | SyntaxKind.QuestionDotToken\n | SyntaxKind.LessThanToken\n | SyntaxKind.LessThanSlashToken\n | SyntaxKind.GreaterThanToken\n | SyntaxKind.LessThanEqualsToken\n | SyntaxKind.GreaterThanEqualsToken\n | SyntaxKind.EqualsEqualsToken\n | SyntaxKind.ExclamationEqualsToken\n | SyntaxKind.EqualsEqualsEqualsToken\n | SyntaxKind.ExclamationEqualsEqualsToken\n | SyntaxKind.EqualsGreaterThanToken\n | SyntaxKind.PlusToken\n | SyntaxKind.MinusToken\n | SyntaxKind.AsteriskToken\n | SyntaxKind.AsteriskAsteriskToken\n | SyntaxKind.SlashToken\n | SyntaxKind.PercentToken\n | SyntaxKind.PlusPlusToken\n | SyntaxKind.MinusMinusToken\n | SyntaxKind.LessThanLessThanToken\n | SyntaxKind.GreaterThanGreaterThanToken\n | SyntaxKind.GreaterThanGreaterThanGreaterThanToken\n | SyntaxKind.AmpersandToken\n | SyntaxKind.BarToken\n | SyntaxKind.CaretToken\n | SyntaxKind.ExclamationToken\n | SyntaxKind.TildeToken\n | SyntaxKind.AmpersandAmpersandToken\n | SyntaxKind.AmpersandAmpersandEqualsToken\n | SyntaxKind.BarBarToken\n | SyntaxKind.BarBarEqualsToken\n | SyntaxKind.QuestionQuestionToken\n | SyntaxKind.QuestionQuestionEqualsToken\n | SyntaxKind.QuestionToken\n | SyntaxKind.ColonToken\n | SyntaxKind.AtToken\n | SyntaxKind.BacktickToken\n | SyntaxKind.HashToken\n | SyntaxKind.EqualsToken\n | SyntaxKind.PlusEqualsToken\n | SyntaxKind.MinusEqualsToken\n | SyntaxKind.AsteriskEqualsToken\n | SyntaxKind.AsteriskAsteriskEqualsToken\n | SyntaxKind.SlashEqualsToken\n | SyntaxKind.PercentEqualsToken\n | SyntaxKind.LessThanLessThanEqualsToken\n | SyntaxKind.GreaterThanGreaterThanEqualsToken\n | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken\n | SyntaxKind.AmpersandEqualsToken\n | SyntaxKind.BarEqualsToken\n | SyntaxKind.CaretEqualsToken;\n type KeywordSyntaxKind =\n | SyntaxKind.AbstractKeyword\n | SyntaxKind.AccessorKeyword\n | SyntaxKind.AnyKeyword\n | SyntaxKind.AsKeyword\n | SyntaxKind.AssertsKeyword\n | SyntaxKind.AssertKeyword\n | SyntaxKind.AsyncKeyword\n | SyntaxKind.AwaitKeyword\n | SyntaxKind.BigIntKeyword\n | SyntaxKind.BooleanKeyword\n | SyntaxKind.BreakKeyword\n | SyntaxKind.CaseKeyword\n | SyntaxKind.CatchKeyword\n | SyntaxKind.ClassKeyword\n | SyntaxKind.ConstKeyword\n | SyntaxKind.ConstructorKeyword\n | SyntaxKind.ContinueKeyword\n | SyntaxKind.DebuggerKeyword\n | SyntaxKind.DeclareKeyword\n | SyntaxKind.DefaultKeyword\n | SyntaxKind.DeferKeyword\n | SyntaxKind.DeleteKeyword\n | SyntaxKind.DoKeyword\n | SyntaxKind.ElseKeyword\n | SyntaxKind.EnumKeyword\n | SyntaxKind.ExportKeyword\n | SyntaxKind.ExtendsKeyword\n | SyntaxKind.FalseKeyword\n | SyntaxKind.FinallyKeyword\n | SyntaxKind.ForKeyword\n | SyntaxKind.FromKeyword\n | SyntaxKind.FunctionKeyword\n | SyntaxKind.GetKeyword\n | SyntaxKind.GlobalKeyword\n | SyntaxKind.IfKeyword\n | SyntaxKind.ImplementsKeyword\n | SyntaxKind.ImportKeyword\n | SyntaxKind.InferKeyword\n | SyntaxKind.InKeyword\n | SyntaxKind.InstanceOfKeyword\n | SyntaxKind.InterfaceKeyword\n | SyntaxKind.IntrinsicKeyword\n | SyntaxKind.IsKeyword\n | SyntaxKind.KeyOfKeyword\n | SyntaxKind.LetKeyword\n | SyntaxKind.ModuleKeyword\n | SyntaxKind.NamespaceKeyword\n | SyntaxKind.NeverKeyword\n | SyntaxKind.NewKeyword\n | SyntaxKind.NullKeyword\n | SyntaxKind.NumberKeyword\n | SyntaxKind.ObjectKeyword\n | SyntaxKind.OfKeyword\n | SyntaxKind.PackageKeyword\n | SyntaxKind.PrivateKeyword\n | SyntaxKind.ProtectedKeyword\n | SyntaxKind.PublicKeyword\n | SyntaxKind.ReadonlyKeyword\n | SyntaxKind.OutKeyword\n | SyntaxKind.OverrideKeyword\n | SyntaxKind.RequireKeyword\n | SyntaxKind.ReturnKeyword\n | SyntaxKind.SatisfiesKeyword\n | SyntaxKind.SetKeyword\n | SyntaxKind.StaticKeyword\n | SyntaxKind.StringKeyword\n | SyntaxKind.SuperKeyword\n | SyntaxKind.SwitchKeyword\n | SyntaxKind.SymbolKeyword\n | SyntaxKind.ThisKeyword\n | SyntaxKind.ThrowKeyword\n | SyntaxKind.TrueKeyword\n | SyntaxKind.TryKeyword\n | SyntaxKind.TypeKeyword\n | SyntaxKind.TypeOfKeyword\n | SyntaxKind.UndefinedKeyword\n | SyntaxKind.UniqueKeyword\n | SyntaxKind.UnknownKeyword\n | SyntaxKind.UsingKeyword\n | SyntaxKind.VarKeyword\n | SyntaxKind.VoidKeyword\n | SyntaxKind.WhileKeyword\n | SyntaxKind.WithKeyword\n | SyntaxKind.YieldKeyword;\n type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AccessorKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword;\n type KeywordTypeSyntaxKind = SyntaxKind.AnyKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VoidKeyword;\n type TokenSyntaxKind = SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | TriviaSyntaxKind | LiteralSyntaxKind | PseudoLiteralSyntaxKind | PunctuationSyntaxKind | SyntaxKind.Identifier | KeywordSyntaxKind;\n type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken;\n type JSDocSyntaxKind = SyntaxKind.EndOfFileToken | SyntaxKind.WhitespaceTrivia | SyntaxKind.AtToken | SyntaxKind.NewLineTrivia | SyntaxKind.AsteriskToken | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.LessThanToken | SyntaxKind.GreaterThanToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.OpenParenToken | SyntaxKind.CloseParenToken | SyntaxKind.EqualsToken | SyntaxKind.CommaToken | SyntaxKind.DotToken | SyntaxKind.Identifier | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.Unknown | KeywordSyntaxKind;\n enum NodeFlags {\n None = 0,\n Let = 1,\n Const = 2,\n Using = 4,\n AwaitUsing = 6,\n NestedNamespace = 8,\n Synthesized = 16,\n Namespace = 32,\n OptionalChain = 64,\n ExportContext = 128,\n ContainsThis = 256,\n HasImplicitReturn = 512,\n HasExplicitReturn = 1024,\n GlobalAugmentation = 2048,\n HasAsyncFunctions = 4096,\n DisallowInContext = 8192,\n YieldContext = 16384,\n DecoratorContext = 32768,\n AwaitContext = 65536,\n DisallowConditionalTypesContext = 131072,\n ThisNodeHasError = 262144,\n JavaScriptFile = 524288,\n ThisNodeOrAnySubNodesHasError = 1048576,\n HasAggregatedChildData = 2097152,\n JSDoc = 16777216,\n JsonFile = 134217728,\n BlockScoped = 7,\n Constant = 6,\n ReachabilityCheckFlags = 1536,\n ReachabilityAndEmitFlags = 5632,\n ContextFlags = 101441536,\n TypeExcludesFlags = 81920,\n }\n enum ModifierFlags {\n None = 0,\n Public = 1,\n Private = 2,\n Protected = 4,\n Readonly = 8,\n Override = 16,\n Export = 32,\n Abstract = 64,\n Ambient = 128,\n Static = 256,\n Accessor = 512,\n Async = 1024,\n Default = 2048,\n Const = 4096,\n In = 8192,\n Out = 16384,\n Decorator = 32768,\n Deprecated = 65536,\n HasComputedJSDocModifiers = 268435456,\n HasComputedFlags = 536870912,\n AccessibilityModifier = 7,\n ParameterPropertyModifier = 31,\n NonPublicAccessibilityModifier = 6,\n TypeScriptModifier = 28895,\n ExportDefault = 2080,\n All = 131071,\n Modifier = 98303,\n }\n enum JsxFlags {\n None = 0,\n /** An element from a named property of the JSX.IntrinsicElements interface */\n IntrinsicNamedElement = 1,\n /** An element inferred from the string index signature of the JSX.IntrinsicElements interface */\n IntrinsicIndexedElement = 2,\n IntrinsicElement = 3,\n }\n interface Node extends ReadonlyTextRange {\n readonly kind: SyntaxKind;\n readonly flags: NodeFlags;\n readonly parent: Node;\n }\n interface Node {\n getSourceFile(): SourceFile;\n getChildCount(sourceFile?: SourceFile): number;\n getChildAt(index: number, sourceFile?: SourceFile): Node;\n getChildren(sourceFile?: SourceFile): readonly Node[];\n getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number;\n getFullStart(): number;\n getEnd(): number;\n getWidth(sourceFile?: SourceFileLike): number;\n getFullWidth(): number;\n getLeadingTriviaWidth(sourceFile?: SourceFile): number;\n getFullText(sourceFile?: SourceFile): string;\n getText(sourceFile?: SourceFile): string;\n getFirstToken(sourceFile?: SourceFile): Node | undefined;\n getLastToken(sourceFile?: SourceFile): Node | undefined;\n forEachChild(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray) => T | undefined): T | undefined;\n }\n interface JSDocContainer extends Node {\n _jsdocContainerBrand: any;\n }\n interface LocalsContainer extends Node {\n _localsContainerBrand: any;\n }\n interface FlowContainer extends Node {\n _flowContainerBrand: any;\n }\n type HasJSDoc =\n | AccessorDeclaration\n | ArrowFunction\n | BinaryExpression\n | Block\n | BreakStatement\n | CallSignatureDeclaration\n | CaseClause\n | ClassLikeDeclaration\n | ClassStaticBlockDeclaration\n | ConstructorDeclaration\n | ConstructorTypeNode\n | ConstructSignatureDeclaration\n | ContinueStatement\n | DebuggerStatement\n | DoStatement\n | ElementAccessExpression\n | EmptyStatement\n | EndOfFileToken\n | EnumDeclaration\n | EnumMember\n | ExportAssignment\n | ExportDeclaration\n | ExportSpecifier\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeNode\n | Identifier\n | IfStatement\n | ImportDeclaration\n | ImportEqualsDeclaration\n | IndexSignatureDeclaration\n | InterfaceDeclaration\n | JSDocFunctionType\n | JSDocSignature\n | LabeledStatement\n | MethodDeclaration\n | MethodSignature\n | ModuleDeclaration\n | NamedTupleMember\n | NamespaceExportDeclaration\n | ObjectLiteralExpression\n | ParameterDeclaration\n | ParenthesizedExpression\n | PropertyAccessExpression\n | PropertyAssignment\n | PropertyDeclaration\n | PropertySignature\n | ReturnStatement\n | SemicolonClassElement\n | ShorthandPropertyAssignment\n | SpreadAssignment\n | SwitchStatement\n | ThrowStatement\n | TryStatement\n | TypeAliasDeclaration\n | TypeParameterDeclaration\n | VariableDeclaration\n | VariableStatement\n | WhileStatement\n | WithStatement;\n type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType;\n type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement;\n type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute;\n type HasExpressionInitializer = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | EnumMember;\n type HasDecorators = ParameterDeclaration | PropertyDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ClassExpression | ClassDeclaration;\n type HasModifiers = TypeParameterDeclaration | ParameterDeclaration | ConstructorTypeNode | PropertySignature | PropertyDeclaration | MethodSignature | MethodDeclaration | ConstructorDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | IndexSignatureDeclaration | FunctionExpression | ArrowFunction | ClassExpression | VariableStatement | FunctionDeclaration | ClassDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | ExportAssignment | ExportDeclaration;\n interface NodeArray extends ReadonlyArray, ReadonlyTextRange {\n readonly hasTrailingComma: boolean;\n }\n interface Token extends Node {\n readonly kind: TKind;\n }\n type EndOfFileToken = Token & JSDocContainer;\n interface PunctuationToken extends Token {\n }\n type DotToken = PunctuationToken;\n type DotDotDotToken = PunctuationToken;\n type QuestionToken = PunctuationToken;\n type ExclamationToken = PunctuationToken;\n type ColonToken = PunctuationToken;\n type EqualsToken = PunctuationToken;\n type AmpersandAmpersandEqualsToken = PunctuationToken;\n type BarBarEqualsToken = PunctuationToken;\n type QuestionQuestionEqualsToken = PunctuationToken;\n type AsteriskToken = PunctuationToken;\n type EqualsGreaterThanToken = PunctuationToken;\n type PlusToken = PunctuationToken;\n type MinusToken = PunctuationToken;\n type QuestionDotToken = PunctuationToken;\n interface KeywordToken extends Token {\n }\n type AssertsKeyword = KeywordToken;\n type AssertKeyword = KeywordToken;\n type AwaitKeyword = KeywordToken;\n type CaseKeyword = KeywordToken;\n interface ModifierToken extends KeywordToken {\n }\n type AbstractKeyword = ModifierToken;\n type AccessorKeyword = ModifierToken;\n type AsyncKeyword = ModifierToken;\n type ConstKeyword = ModifierToken;\n type DeclareKeyword = ModifierToken;\n type DefaultKeyword = ModifierToken;\n type ExportKeyword = ModifierToken;\n type InKeyword = ModifierToken;\n type PrivateKeyword = ModifierToken;\n type ProtectedKeyword = ModifierToken;\n type PublicKeyword = ModifierToken;\n type ReadonlyKeyword = ModifierToken;\n type OutKeyword = ModifierToken;\n type OverrideKeyword = ModifierToken;\n type StaticKeyword = ModifierToken;\n type Modifier = AbstractKeyword | AccessorKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword;\n type ModifierLike = Modifier | Decorator;\n type AccessibilityModifier = PublicKeyword | PrivateKeyword | ProtectedKeyword;\n type ParameterPropertyModifier = AccessibilityModifier | ReadonlyKeyword;\n type ClassMemberModifier = AccessibilityModifier | ReadonlyKeyword | StaticKeyword | AccessorKeyword;\n type ModifiersArray = NodeArray;\n enum GeneratedIdentifierFlags {\n None = 0,\n ReservedInNestedScopes = 8,\n Optimistic = 16,\n FileLevel = 32,\n AllowNameSubstitution = 64,\n }\n interface Identifier extends PrimaryExpression, Declaration, JSDocContainer, FlowContainer {\n readonly kind: SyntaxKind.Identifier;\n /**\n * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.)\n * Text of identifier, but if the identifier begins with two underscores, this will begin with three.\n */\n readonly escapedText: __String;\n }\n interface Identifier {\n readonly text: string;\n }\n interface TransientIdentifier extends Identifier {\n resolvedSymbol: Symbol;\n }\n interface QualifiedName extends Node, FlowContainer {\n readonly kind: SyntaxKind.QualifiedName;\n readonly left: EntityName;\n readonly right: Identifier;\n }\n type EntityName = Identifier | QualifiedName;\n type PropertyName = Identifier | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier | BigIntLiteral;\n type MemberName = Identifier | PrivateIdentifier;\n type DeclarationName = PropertyName | JsxAttributeName | StringLiteralLike | ElementAccessExpression | BindingPattern | EntityNameExpression;\n interface Declaration extends Node {\n _declarationBrand: any;\n }\n interface NamedDeclaration extends Declaration {\n readonly name?: DeclarationName;\n }\n interface DeclarationStatement extends NamedDeclaration, Statement {\n readonly name?: Identifier | StringLiteral | NumericLiteral;\n }\n interface ComputedPropertyName extends Node {\n readonly kind: SyntaxKind.ComputedPropertyName;\n readonly parent: Declaration;\n readonly expression: Expression;\n }\n interface PrivateIdentifier extends PrimaryExpression {\n readonly kind: SyntaxKind.PrivateIdentifier;\n readonly escapedText: __String;\n }\n interface PrivateIdentifier {\n readonly text: string;\n }\n interface Decorator extends Node {\n readonly kind: SyntaxKind.Decorator;\n readonly parent: NamedDeclaration;\n readonly expression: LeftHandSideExpression;\n }\n interface TypeParameterDeclaration extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.TypeParameter;\n readonly parent: DeclarationWithTypeParameterChildren | InferTypeNode;\n readonly modifiers?: NodeArray;\n readonly name: Identifier;\n /** Note: Consider calling `getEffectiveConstraintOfTypeParameter` */\n readonly constraint?: TypeNode;\n readonly default?: TypeNode;\n expression?: Expression;\n }\n interface SignatureDeclarationBase extends NamedDeclaration, JSDocContainer {\n readonly kind: SignatureDeclaration[\"kind\"];\n readonly name?: PropertyName;\n readonly typeParameters?: NodeArray | undefined;\n readonly parameters: NodeArray;\n readonly type?: TypeNode | undefined;\n }\n type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction;\n interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {\n readonly kind: SyntaxKind.CallSignature;\n }\n interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement, LocalsContainer {\n readonly kind: SyntaxKind.ConstructSignature;\n }\n type BindingName = Identifier | BindingPattern;\n interface VariableDeclaration extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.VariableDeclaration;\n readonly parent: VariableDeclarationList | CatchClause;\n readonly name: BindingName;\n readonly exclamationToken?: ExclamationToken;\n readonly type?: TypeNode;\n readonly initializer?: Expression;\n }\n interface VariableDeclarationList extends Node {\n readonly kind: SyntaxKind.VariableDeclarationList;\n readonly parent: VariableStatement | ForStatement | ForOfStatement | ForInStatement;\n readonly declarations: NodeArray;\n }\n interface ParameterDeclaration extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.Parameter;\n readonly parent: SignatureDeclaration;\n readonly modifiers?: NodeArray;\n readonly dotDotDotToken?: DotDotDotToken;\n readonly name: BindingName;\n readonly questionToken?: QuestionToken;\n readonly type?: TypeNode;\n readonly initializer?: Expression;\n }\n interface BindingElement extends NamedDeclaration, FlowContainer {\n readonly kind: SyntaxKind.BindingElement;\n readonly parent: BindingPattern;\n readonly propertyName?: PropertyName;\n readonly dotDotDotToken?: DotDotDotToken;\n readonly name: BindingName;\n readonly initializer?: Expression;\n }\n interface PropertySignature extends TypeElement, JSDocContainer {\n readonly kind: SyntaxKind.PropertySignature;\n readonly parent: TypeLiteralNode | InterfaceDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: PropertyName;\n readonly questionToken?: QuestionToken;\n readonly type?: TypeNode;\n }\n interface PropertyDeclaration extends ClassElement, JSDocContainer {\n readonly kind: SyntaxKind.PropertyDeclaration;\n readonly parent: ClassLikeDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: PropertyName;\n readonly questionToken?: QuestionToken;\n readonly exclamationToken?: ExclamationToken;\n readonly type?: TypeNode;\n readonly initializer?: Expression;\n }\n interface AutoAccessorPropertyDeclaration extends PropertyDeclaration {\n _autoAccessorBrand: any;\n }\n interface ObjectLiteralElement extends NamedDeclaration {\n _objectLiteralBrand: any;\n readonly name?: PropertyName;\n }\n /** Unlike ObjectLiteralElement, excludes JSXAttribute and JSXSpreadAttribute. */\n type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration;\n interface PropertyAssignment extends ObjectLiteralElement, JSDocContainer {\n readonly kind: SyntaxKind.PropertyAssignment;\n readonly parent: ObjectLiteralExpression;\n readonly name: PropertyName;\n readonly initializer: Expression;\n }\n interface ShorthandPropertyAssignment extends ObjectLiteralElement, JSDocContainer {\n readonly kind: SyntaxKind.ShorthandPropertyAssignment;\n readonly parent: ObjectLiteralExpression;\n readonly name: Identifier;\n readonly equalsToken?: EqualsToken;\n readonly objectAssignmentInitializer?: Expression;\n }\n interface SpreadAssignment extends ObjectLiteralElement, JSDocContainer {\n readonly kind: SyntaxKind.SpreadAssignment;\n readonly parent: ObjectLiteralExpression;\n readonly expression: Expression;\n }\n type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag;\n interface ObjectBindingPattern extends Node {\n readonly kind: SyntaxKind.ObjectBindingPattern;\n readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;\n readonly elements: NodeArray;\n }\n interface ArrayBindingPattern extends Node {\n readonly kind: SyntaxKind.ArrayBindingPattern;\n readonly parent: VariableDeclaration | ParameterDeclaration | BindingElement;\n readonly elements: NodeArray;\n }\n type BindingPattern = ObjectBindingPattern | ArrayBindingPattern;\n type ArrayBindingElement = BindingElement | OmittedExpression;\n /**\n * Several node kinds share function-like features such as a signature,\n * a name, and a body. These nodes should extend FunctionLikeDeclarationBase.\n * Examples:\n * - FunctionDeclaration\n * - MethodDeclaration\n * - AccessorDeclaration\n */\n interface FunctionLikeDeclarationBase extends SignatureDeclarationBase {\n _functionLikeDeclarationBrand: any;\n readonly asteriskToken?: AsteriskToken | undefined;\n readonly questionToken?: QuestionToken | undefined;\n readonly exclamationToken?: ExclamationToken | undefined;\n readonly body?: Block | Expression | undefined;\n }\n type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction;\n /** @deprecated Use SignatureDeclaration */\n type FunctionLike = SignatureDeclaration;\n interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement, LocalsContainer {\n readonly kind: SyntaxKind.FunctionDeclaration;\n readonly modifiers?: NodeArray;\n readonly name?: Identifier;\n readonly body?: FunctionBody;\n }\n interface MethodSignature extends SignatureDeclarationBase, TypeElement, LocalsContainer {\n readonly kind: SyntaxKind.MethodSignature;\n readonly parent: TypeLiteralNode | InterfaceDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: PropertyName;\n }\n interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.MethodDeclaration;\n readonly parent: ClassLikeDeclaration | ObjectLiteralExpression;\n readonly modifiers?: NodeArray | undefined;\n readonly name: PropertyName;\n readonly body?: FunctionBody | undefined;\n }\n interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer, LocalsContainer {\n readonly kind: SyntaxKind.Constructor;\n readonly parent: ClassLikeDeclaration;\n readonly modifiers?: NodeArray | undefined;\n readonly body?: FunctionBody | undefined;\n }\n /** For when we encounter a semicolon in a class declaration. ES6 allows these as class elements. */\n interface SemicolonClassElement extends ClassElement, JSDocContainer {\n readonly kind: SyntaxKind.SemicolonClassElement;\n readonly parent: ClassLikeDeclaration;\n }\n interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.GetAccessor;\n readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: PropertyName;\n readonly body?: FunctionBody;\n }\n interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, TypeElement, ObjectLiteralElement, JSDocContainer, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.SetAccessor;\n readonly parent: ClassLikeDeclaration | ObjectLiteralExpression | TypeLiteralNode | InterfaceDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: PropertyName;\n readonly body?: FunctionBody;\n }\n type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration;\n interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement, LocalsContainer {\n readonly kind: SyntaxKind.IndexSignature;\n readonly parent: ObjectTypeDeclaration;\n readonly modifiers?: NodeArray;\n readonly type: TypeNode;\n }\n interface ClassStaticBlockDeclaration extends ClassElement, JSDocContainer, LocalsContainer {\n readonly kind: SyntaxKind.ClassStaticBlockDeclaration;\n readonly parent: ClassDeclaration | ClassExpression;\n readonly body: Block;\n }\n interface TypeNode extends Node {\n _typeNodeBrand: any;\n }\n interface KeywordTypeNode extends KeywordToken, TypeNode {\n readonly kind: TKind;\n }\n /** @deprecated */\n interface ImportTypeAssertionContainer extends Node {\n readonly kind: SyntaxKind.ImportTypeAssertionContainer;\n readonly parent: ImportTypeNode;\n /** @deprecated */ readonly assertClause: AssertClause;\n readonly multiLine?: boolean;\n }\n interface ImportTypeNode extends NodeWithTypeArguments {\n readonly kind: SyntaxKind.ImportType;\n readonly isTypeOf: boolean;\n readonly argument: TypeNode;\n /** @deprecated */ readonly assertions?: ImportTypeAssertionContainer;\n readonly attributes?: ImportAttributes;\n readonly qualifier?: EntityName;\n }\n interface ThisTypeNode extends TypeNode {\n readonly kind: SyntaxKind.ThisType;\n }\n type FunctionOrConstructorTypeNode = FunctionTypeNode | ConstructorTypeNode;\n interface FunctionOrConstructorTypeNodeBase extends TypeNode, SignatureDeclarationBase {\n readonly kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType;\n readonly type: TypeNode;\n }\n interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {\n readonly kind: SyntaxKind.FunctionType;\n }\n interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase, LocalsContainer {\n readonly kind: SyntaxKind.ConstructorType;\n readonly modifiers?: NodeArray;\n }\n interface NodeWithTypeArguments extends TypeNode {\n readonly typeArguments?: NodeArray;\n }\n type TypeReferenceType = TypeReferenceNode | ExpressionWithTypeArguments;\n interface TypeReferenceNode extends NodeWithTypeArguments {\n readonly kind: SyntaxKind.TypeReference;\n readonly typeName: EntityName;\n }\n interface TypePredicateNode extends TypeNode {\n readonly kind: SyntaxKind.TypePredicate;\n readonly parent: SignatureDeclaration | JSDocTypeExpression;\n readonly assertsModifier?: AssertsKeyword;\n readonly parameterName: Identifier | ThisTypeNode;\n readonly type?: TypeNode;\n }\n interface TypeQueryNode extends NodeWithTypeArguments {\n readonly kind: SyntaxKind.TypeQuery;\n readonly exprName: EntityName;\n }\n interface TypeLiteralNode extends TypeNode, Declaration {\n readonly kind: SyntaxKind.TypeLiteral;\n readonly members: NodeArray;\n }\n interface ArrayTypeNode extends TypeNode {\n readonly kind: SyntaxKind.ArrayType;\n readonly elementType: TypeNode;\n }\n interface TupleTypeNode extends TypeNode {\n readonly kind: SyntaxKind.TupleType;\n readonly elements: NodeArray;\n }\n interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {\n readonly kind: SyntaxKind.NamedTupleMember;\n readonly dotDotDotToken?: Token;\n readonly name: Identifier;\n readonly questionToken?: Token;\n readonly type: TypeNode;\n }\n interface OptionalTypeNode extends TypeNode {\n readonly kind: SyntaxKind.OptionalType;\n readonly type: TypeNode;\n }\n interface RestTypeNode extends TypeNode {\n readonly kind: SyntaxKind.RestType;\n readonly type: TypeNode;\n }\n type UnionOrIntersectionTypeNode = UnionTypeNode | IntersectionTypeNode;\n interface UnionTypeNode extends TypeNode {\n readonly kind: SyntaxKind.UnionType;\n readonly types: NodeArray;\n }\n interface IntersectionTypeNode extends TypeNode {\n readonly kind: SyntaxKind.IntersectionType;\n readonly types: NodeArray;\n }\n interface ConditionalTypeNode extends TypeNode, LocalsContainer {\n readonly kind: SyntaxKind.ConditionalType;\n readonly checkType: TypeNode;\n readonly extendsType: TypeNode;\n readonly trueType: TypeNode;\n readonly falseType: TypeNode;\n }\n interface InferTypeNode extends TypeNode {\n readonly kind: SyntaxKind.InferType;\n readonly typeParameter: TypeParameterDeclaration;\n }\n interface ParenthesizedTypeNode extends TypeNode {\n readonly kind: SyntaxKind.ParenthesizedType;\n readonly type: TypeNode;\n }\n interface TypeOperatorNode extends TypeNode {\n readonly kind: SyntaxKind.TypeOperator;\n readonly operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword;\n readonly type: TypeNode;\n }\n interface IndexedAccessTypeNode extends TypeNode {\n readonly kind: SyntaxKind.IndexedAccessType;\n readonly objectType: TypeNode;\n readonly indexType: TypeNode;\n }\n interface MappedTypeNode extends TypeNode, Declaration, LocalsContainer {\n readonly kind: SyntaxKind.MappedType;\n readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken;\n readonly typeParameter: TypeParameterDeclaration;\n readonly nameType?: TypeNode;\n readonly questionToken?: QuestionToken | PlusToken | MinusToken;\n readonly type?: TypeNode;\n /** Used only to produce grammar errors */\n readonly members?: NodeArray;\n }\n interface LiteralTypeNode extends TypeNode {\n readonly kind: SyntaxKind.LiteralType;\n readonly literal: NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression;\n }\n interface StringLiteral extends LiteralExpression, Declaration {\n readonly kind: SyntaxKind.StringLiteral;\n }\n type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral;\n type PropertyNameLiteral = Identifier | StringLiteralLike | NumericLiteral | JsxNamespacedName | BigIntLiteral;\n interface TemplateLiteralTypeNode extends TypeNode {\n kind: SyntaxKind.TemplateLiteralType;\n readonly head: TemplateHead;\n readonly templateSpans: NodeArray;\n }\n interface TemplateLiteralTypeSpan extends TypeNode {\n readonly kind: SyntaxKind.TemplateLiteralTypeSpan;\n readonly parent: TemplateLiteralTypeNode;\n readonly type: TypeNode;\n readonly literal: TemplateMiddle | TemplateTail;\n }\n interface Expression extends Node {\n _expressionBrand: any;\n }\n interface OmittedExpression extends Expression {\n readonly kind: SyntaxKind.OmittedExpression;\n }\n interface PartiallyEmittedExpression extends LeftHandSideExpression {\n readonly kind: SyntaxKind.PartiallyEmittedExpression;\n readonly expression: Expression;\n }\n interface UnaryExpression extends Expression {\n _unaryExpressionBrand: any;\n }\n /** Deprecated, please use UpdateExpression */\n type IncrementExpression = UpdateExpression;\n interface UpdateExpression extends UnaryExpression {\n _updateExpressionBrand: any;\n }\n type PrefixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken;\n interface PrefixUnaryExpression extends UpdateExpression {\n readonly kind: SyntaxKind.PrefixUnaryExpression;\n readonly operator: PrefixUnaryOperator;\n readonly operand: UnaryExpression;\n }\n type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken;\n interface PostfixUnaryExpression extends UpdateExpression {\n readonly kind: SyntaxKind.PostfixUnaryExpression;\n readonly operand: LeftHandSideExpression;\n readonly operator: PostfixUnaryOperator;\n }\n interface LeftHandSideExpression extends UpdateExpression {\n _leftHandSideExpressionBrand: any;\n }\n interface MemberExpression extends LeftHandSideExpression {\n _memberExpressionBrand: any;\n }\n interface PrimaryExpression extends MemberExpression {\n _primaryExpressionBrand: any;\n }\n interface NullLiteral extends PrimaryExpression {\n readonly kind: SyntaxKind.NullKeyword;\n }\n interface TrueLiteral extends PrimaryExpression {\n readonly kind: SyntaxKind.TrueKeyword;\n }\n interface FalseLiteral extends PrimaryExpression {\n readonly kind: SyntaxKind.FalseKeyword;\n }\n type BooleanLiteral = TrueLiteral | FalseLiteral;\n interface ThisExpression extends PrimaryExpression, FlowContainer {\n readonly kind: SyntaxKind.ThisKeyword;\n }\n interface SuperExpression extends PrimaryExpression, FlowContainer {\n readonly kind: SyntaxKind.SuperKeyword;\n }\n interface ImportExpression extends PrimaryExpression {\n readonly kind: SyntaxKind.ImportKeyword;\n }\n interface DeleteExpression extends UnaryExpression {\n readonly kind: SyntaxKind.DeleteExpression;\n readonly expression: UnaryExpression;\n }\n interface TypeOfExpression extends UnaryExpression {\n readonly kind: SyntaxKind.TypeOfExpression;\n readonly expression: UnaryExpression;\n }\n interface VoidExpression extends UnaryExpression {\n readonly kind: SyntaxKind.VoidExpression;\n readonly expression: UnaryExpression;\n }\n interface AwaitExpression extends UnaryExpression {\n readonly kind: SyntaxKind.AwaitExpression;\n readonly expression: UnaryExpression;\n }\n interface YieldExpression extends Expression {\n readonly kind: SyntaxKind.YieldExpression;\n readonly asteriskToken?: AsteriskToken;\n readonly expression?: Expression;\n }\n interface SyntheticExpression extends Expression {\n readonly kind: SyntaxKind.SyntheticExpression;\n readonly isSpread: boolean;\n readonly type: Type;\n readonly tupleNameSource?: ParameterDeclaration | NamedTupleMember;\n }\n type ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken;\n type MultiplicativeOperator = SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken;\n type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator;\n type AdditiveOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken;\n type AdditiveOperatorOrHigher = MultiplicativeOperatorOrHigher | AdditiveOperator;\n type ShiftOperator = SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken;\n type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator;\n type RelationalOperator = SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword;\n type RelationalOperatorOrHigher = ShiftOperatorOrHigher | RelationalOperator;\n type EqualityOperator = SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken;\n type EqualityOperatorOrHigher = RelationalOperatorOrHigher | EqualityOperator;\n type BitwiseOperator = SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken;\n type BitwiseOperatorOrHigher = EqualityOperatorOrHigher | BitwiseOperator;\n type LogicalOperator = SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken;\n type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator;\n type CompoundAssignmentOperator = SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;\n type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator;\n type AssignmentOperatorOrHigher = SyntaxKind.QuestionQuestionToken | LogicalOperatorOrHigher | AssignmentOperator;\n type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken;\n type LogicalOrCoalescingAssignmentOperator = SyntaxKind.AmpersandAmpersandEqualsToken | SyntaxKind.BarBarEqualsToken | SyntaxKind.QuestionQuestionEqualsToken;\n type BinaryOperatorToken = Token;\n interface BinaryExpression extends Expression, Declaration, JSDocContainer {\n readonly kind: SyntaxKind.BinaryExpression;\n readonly left: Expression;\n readonly operatorToken: BinaryOperatorToken;\n readonly right: Expression;\n }\n type AssignmentOperatorToken = Token;\n interface AssignmentExpression extends BinaryExpression {\n readonly left: LeftHandSideExpression;\n readonly operatorToken: TOperator;\n }\n interface ObjectDestructuringAssignment extends AssignmentExpression {\n readonly left: ObjectLiteralExpression;\n }\n interface ArrayDestructuringAssignment extends AssignmentExpression {\n readonly left: ArrayLiteralExpression;\n }\n type DestructuringAssignment = ObjectDestructuringAssignment | ArrayDestructuringAssignment;\n type BindingOrAssignmentElement = VariableDeclaration | ParameterDeclaration | ObjectBindingOrAssignmentElement | ArrayBindingOrAssignmentElement;\n type ObjectBindingOrAssignmentElement = BindingElement | PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment;\n type ArrayBindingOrAssignmentElement = BindingElement | OmittedExpression | SpreadElement | ArrayLiteralExpression | ObjectLiteralExpression | AssignmentExpression | Identifier | PropertyAccessExpression | ElementAccessExpression;\n type BindingOrAssignmentElementRestIndicator = DotDotDotToken | SpreadElement | SpreadAssignment;\n type BindingOrAssignmentElementTarget = BindingOrAssignmentPattern | Identifier | PropertyAccessExpression | ElementAccessExpression | OmittedExpression;\n type ObjectBindingOrAssignmentPattern = ObjectBindingPattern | ObjectLiteralExpression;\n type ArrayBindingOrAssignmentPattern = ArrayBindingPattern | ArrayLiteralExpression;\n type AssignmentPattern = ObjectLiteralExpression | ArrayLiteralExpression;\n type BindingOrAssignmentPattern = ObjectBindingOrAssignmentPattern | ArrayBindingOrAssignmentPattern;\n interface ConditionalExpression extends Expression {\n readonly kind: SyntaxKind.ConditionalExpression;\n readonly condition: Expression;\n readonly questionToken: QuestionToken;\n readonly whenTrue: Expression;\n readonly colonToken: ColonToken;\n readonly whenFalse: Expression;\n }\n type FunctionBody = Block;\n type ConciseBody = FunctionBody | Expression;\n interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.FunctionExpression;\n readonly modifiers?: NodeArray;\n readonly name?: Identifier;\n readonly body: FunctionBody;\n }\n interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.ArrowFunction;\n readonly modifiers?: NodeArray;\n readonly equalsGreaterThanToken: EqualsGreaterThanToken;\n readonly body: ConciseBody;\n readonly name: never;\n }\n interface LiteralLikeNode extends Node {\n text: string;\n isUnterminated?: boolean;\n hasExtendedUnicodeEscape?: boolean;\n }\n interface TemplateLiteralLikeNode extends LiteralLikeNode {\n rawText?: string;\n }\n interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {\n _literalExpressionBrand: any;\n }\n interface RegularExpressionLiteral extends LiteralExpression {\n readonly kind: SyntaxKind.RegularExpressionLiteral;\n }\n interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode, Declaration {\n readonly kind: SyntaxKind.NoSubstitutionTemplateLiteral;\n }\n enum TokenFlags {\n None = 0,\n Scientific = 16,\n Octal = 32,\n HexSpecifier = 64,\n BinarySpecifier = 128,\n OctalSpecifier = 256,\n }\n interface NumericLiteral extends LiteralExpression, Declaration {\n readonly kind: SyntaxKind.NumericLiteral;\n }\n interface BigIntLiteral extends LiteralExpression {\n readonly kind: SyntaxKind.BigIntLiteral;\n }\n type LiteralToken = NumericLiteral | BigIntLiteral | StringLiteral | JsxText | RegularExpressionLiteral | NoSubstitutionTemplateLiteral;\n interface TemplateHead extends TemplateLiteralLikeNode {\n readonly kind: SyntaxKind.TemplateHead;\n readonly parent: TemplateExpression | TemplateLiteralTypeNode;\n }\n interface TemplateMiddle extends TemplateLiteralLikeNode {\n readonly kind: SyntaxKind.TemplateMiddle;\n readonly parent: TemplateSpan | TemplateLiteralTypeSpan;\n }\n interface TemplateTail extends TemplateLiteralLikeNode {\n readonly kind: SyntaxKind.TemplateTail;\n readonly parent: TemplateSpan | TemplateLiteralTypeSpan;\n }\n type PseudoLiteralToken = TemplateHead | TemplateMiddle | TemplateTail;\n type TemplateLiteralToken = NoSubstitutionTemplateLiteral | PseudoLiteralToken;\n interface TemplateExpression extends PrimaryExpression {\n readonly kind: SyntaxKind.TemplateExpression;\n readonly head: TemplateHead;\n readonly templateSpans: NodeArray;\n }\n type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral;\n interface TemplateSpan extends Node {\n readonly kind: SyntaxKind.TemplateSpan;\n readonly parent: TemplateExpression;\n readonly expression: Expression;\n readonly literal: TemplateMiddle | TemplateTail;\n }\n interface ParenthesizedExpression extends PrimaryExpression, JSDocContainer {\n readonly kind: SyntaxKind.ParenthesizedExpression;\n readonly expression: Expression;\n }\n interface ArrayLiteralExpression extends PrimaryExpression {\n readonly kind: SyntaxKind.ArrayLiteralExpression;\n readonly elements: NodeArray;\n }\n interface SpreadElement extends Expression {\n readonly kind: SyntaxKind.SpreadElement;\n readonly parent: ArrayLiteralExpression | CallExpression | NewExpression;\n readonly expression: Expression;\n }\n /**\n * This interface is a base interface for ObjectLiteralExpression and JSXAttributes to extend from. JSXAttributes is similar to\n * ObjectLiteralExpression in that it contains array of properties; however, JSXAttributes' properties can only be\n * JSXAttribute or JSXSpreadAttribute. ObjectLiteralExpression, on the other hand, can only have properties of type\n * ObjectLiteralElement (e.g. PropertyAssignment, ShorthandPropertyAssignment etc.)\n */\n interface ObjectLiteralExpressionBase extends PrimaryExpression, Declaration {\n readonly properties: NodeArray;\n }\n interface ObjectLiteralExpression extends ObjectLiteralExpressionBase, JSDocContainer {\n readonly kind: SyntaxKind.ObjectLiteralExpression;\n }\n type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;\n type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;\n type AccessExpression = PropertyAccessExpression | ElementAccessExpression;\n interface PropertyAccessExpression extends MemberExpression, NamedDeclaration, JSDocContainer, FlowContainer {\n readonly kind: SyntaxKind.PropertyAccessExpression;\n readonly expression: LeftHandSideExpression;\n readonly questionDotToken?: QuestionDotToken;\n readonly name: MemberName;\n }\n interface PropertyAccessChain extends PropertyAccessExpression {\n _optionalChainBrand: any;\n readonly name: MemberName;\n }\n interface SuperPropertyAccessExpression extends PropertyAccessExpression {\n readonly expression: SuperExpression;\n }\n /** Brand for a PropertyAccessExpression which, like a QualifiedName, consists of a sequence of identifiers separated by dots. */\n interface PropertyAccessEntityNameExpression extends PropertyAccessExpression {\n _propertyAccessExpressionLikeQualifiedNameBrand?: any;\n readonly expression: EntityNameExpression;\n readonly name: Identifier;\n }\n interface ElementAccessExpression extends MemberExpression, Declaration, JSDocContainer, FlowContainer {\n readonly kind: SyntaxKind.ElementAccessExpression;\n readonly expression: LeftHandSideExpression;\n readonly questionDotToken?: QuestionDotToken;\n readonly argumentExpression: Expression;\n }\n interface ElementAccessChain extends ElementAccessExpression {\n _optionalChainBrand: any;\n }\n interface SuperElementAccessExpression extends ElementAccessExpression {\n readonly expression: SuperExpression;\n }\n type SuperProperty = SuperPropertyAccessExpression | SuperElementAccessExpression;\n interface CallExpression extends LeftHandSideExpression, Declaration {\n readonly kind: SyntaxKind.CallExpression;\n readonly expression: LeftHandSideExpression;\n readonly questionDotToken?: QuestionDotToken;\n readonly typeArguments?: NodeArray;\n readonly arguments: NodeArray;\n }\n interface CallChain extends CallExpression {\n _optionalChainBrand: any;\n }\n type OptionalChain = PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain;\n interface SuperCall extends CallExpression {\n readonly expression: SuperExpression;\n }\n interface ImportCall extends CallExpression {\n readonly expression: ImportExpression | ImportDeferProperty;\n }\n interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments {\n readonly kind: SyntaxKind.ExpressionWithTypeArguments;\n readonly expression: LeftHandSideExpression;\n }\n interface NewExpression extends PrimaryExpression, Declaration {\n readonly kind: SyntaxKind.NewExpression;\n readonly expression: LeftHandSideExpression;\n readonly typeArguments?: NodeArray;\n readonly arguments?: NodeArray;\n }\n interface TaggedTemplateExpression extends MemberExpression {\n readonly kind: SyntaxKind.TaggedTemplateExpression;\n readonly tag: LeftHandSideExpression;\n readonly typeArguments?: NodeArray;\n readonly template: TemplateLiteral;\n }\n interface InstanceofExpression extends BinaryExpression {\n readonly operatorToken: Token;\n }\n type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxCallLike | InstanceofExpression;\n interface AsExpression extends Expression {\n readonly kind: SyntaxKind.AsExpression;\n readonly expression: Expression;\n readonly type: TypeNode;\n }\n interface TypeAssertion extends UnaryExpression {\n readonly kind: SyntaxKind.TypeAssertionExpression;\n readonly type: TypeNode;\n readonly expression: UnaryExpression;\n }\n interface SatisfiesExpression extends Expression {\n readonly kind: SyntaxKind.SatisfiesExpression;\n readonly expression: Expression;\n readonly type: TypeNode;\n }\n type AssertionExpression = TypeAssertion | AsExpression;\n interface NonNullExpression extends LeftHandSideExpression {\n readonly kind: SyntaxKind.NonNullExpression;\n readonly expression: Expression;\n }\n interface NonNullChain extends NonNullExpression {\n _optionalChainBrand: any;\n }\n interface MetaProperty extends PrimaryExpression, FlowContainer {\n readonly kind: SyntaxKind.MetaProperty;\n readonly keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword;\n readonly name: Identifier;\n }\n interface ImportDeferProperty extends MetaProperty {\n readonly keywordToken: SyntaxKind.ImportKeyword;\n readonly name: Identifier & {\n readonly escapedText: __String & \"defer\";\n };\n }\n interface JsxElement extends PrimaryExpression {\n readonly kind: SyntaxKind.JsxElement;\n readonly openingElement: JsxOpeningElement;\n readonly children: NodeArray;\n readonly closingElement: JsxClosingElement;\n }\n type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement;\n type JsxCallLike = JsxOpeningLikeElement | JsxOpeningFragment;\n type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute;\n type JsxAttributeName = Identifier | JsxNamespacedName;\n type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess | JsxNamespacedName;\n interface JsxTagNamePropertyAccess extends PropertyAccessExpression {\n readonly expression: Identifier | ThisExpression | JsxTagNamePropertyAccess;\n }\n interface JsxAttributes extends PrimaryExpression, Declaration {\n readonly properties: NodeArray;\n readonly kind: SyntaxKind.JsxAttributes;\n readonly parent: JsxOpeningLikeElement;\n }\n interface JsxNamespacedName extends Node {\n readonly kind: SyntaxKind.JsxNamespacedName;\n readonly name: Identifier;\n readonly namespace: Identifier;\n }\n interface JsxOpeningElement extends Expression {\n readonly kind: SyntaxKind.JsxOpeningElement;\n readonly parent: JsxElement;\n readonly tagName: JsxTagNameExpression;\n readonly typeArguments?: NodeArray;\n readonly attributes: JsxAttributes;\n }\n interface JsxSelfClosingElement extends PrimaryExpression {\n readonly kind: SyntaxKind.JsxSelfClosingElement;\n readonly tagName: JsxTagNameExpression;\n readonly typeArguments?: NodeArray;\n readonly attributes: JsxAttributes;\n }\n interface JsxFragment extends PrimaryExpression {\n readonly kind: SyntaxKind.JsxFragment;\n readonly openingFragment: JsxOpeningFragment;\n readonly children: NodeArray;\n readonly closingFragment: JsxClosingFragment;\n }\n interface JsxOpeningFragment extends Expression {\n readonly kind: SyntaxKind.JsxOpeningFragment;\n readonly parent: JsxFragment;\n }\n interface JsxClosingFragment extends Expression {\n readonly kind: SyntaxKind.JsxClosingFragment;\n readonly parent: JsxFragment;\n }\n interface JsxAttribute extends Declaration {\n readonly kind: SyntaxKind.JsxAttribute;\n readonly parent: JsxAttributes;\n readonly name: JsxAttributeName;\n readonly initializer?: JsxAttributeValue;\n }\n type JsxAttributeValue = StringLiteral | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment;\n interface JsxSpreadAttribute extends ObjectLiteralElement {\n readonly kind: SyntaxKind.JsxSpreadAttribute;\n readonly parent: JsxAttributes;\n readonly expression: Expression;\n }\n interface JsxClosingElement extends Node {\n readonly kind: SyntaxKind.JsxClosingElement;\n readonly parent: JsxElement;\n readonly tagName: JsxTagNameExpression;\n }\n interface JsxExpression extends Expression {\n readonly kind: SyntaxKind.JsxExpression;\n readonly parent: JsxElement | JsxFragment | JsxAttributeLike;\n readonly dotDotDotToken?: Token;\n readonly expression?: Expression;\n }\n interface JsxText extends LiteralLikeNode {\n readonly kind: SyntaxKind.JsxText;\n readonly parent: JsxElement | JsxFragment;\n readonly containsOnlyTriviaWhiteSpaces: boolean;\n }\n type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment;\n interface Statement extends Node, JSDocContainer {\n _statementBrand: any;\n }\n interface NotEmittedStatement extends Statement {\n readonly kind: SyntaxKind.NotEmittedStatement;\n }\n interface NotEmittedTypeElement extends TypeElement {\n readonly kind: SyntaxKind.NotEmittedTypeElement;\n }\n /**\n * A list of comma-separated expressions. This node is only created by transformations.\n */\n interface CommaListExpression extends Expression {\n readonly kind: SyntaxKind.CommaListExpression;\n readonly elements: NodeArray;\n }\n interface EmptyStatement extends Statement {\n readonly kind: SyntaxKind.EmptyStatement;\n }\n interface DebuggerStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.DebuggerStatement;\n }\n interface MissingDeclaration extends DeclarationStatement, PrimaryExpression {\n readonly kind: SyntaxKind.MissingDeclaration;\n readonly name?: Identifier;\n }\n type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause;\n interface Block extends Statement, LocalsContainer {\n readonly kind: SyntaxKind.Block;\n readonly statements: NodeArray;\n }\n interface VariableStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.VariableStatement;\n readonly modifiers?: NodeArray;\n readonly declarationList: VariableDeclarationList;\n }\n interface ExpressionStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.ExpressionStatement;\n readonly expression: Expression;\n }\n interface IfStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.IfStatement;\n readonly expression: Expression;\n readonly thenStatement: Statement;\n readonly elseStatement?: Statement;\n }\n interface IterationStatement extends Statement {\n readonly statement: Statement;\n }\n interface DoStatement extends IterationStatement, FlowContainer {\n readonly kind: SyntaxKind.DoStatement;\n readonly expression: Expression;\n }\n interface WhileStatement extends IterationStatement, FlowContainer {\n readonly kind: SyntaxKind.WhileStatement;\n readonly expression: Expression;\n }\n type ForInitializer = VariableDeclarationList | Expression;\n interface ForStatement extends IterationStatement, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.ForStatement;\n readonly initializer?: ForInitializer;\n readonly condition?: Expression;\n readonly incrementor?: Expression;\n }\n type ForInOrOfStatement = ForInStatement | ForOfStatement;\n interface ForInStatement extends IterationStatement, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.ForInStatement;\n readonly initializer: ForInitializer;\n readonly expression: Expression;\n }\n interface ForOfStatement extends IterationStatement, LocalsContainer, FlowContainer {\n readonly kind: SyntaxKind.ForOfStatement;\n readonly awaitModifier?: AwaitKeyword;\n readonly initializer: ForInitializer;\n readonly expression: Expression;\n }\n interface BreakStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.BreakStatement;\n readonly label?: Identifier;\n }\n interface ContinueStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.ContinueStatement;\n readonly label?: Identifier;\n }\n type BreakOrContinueStatement = BreakStatement | ContinueStatement;\n interface ReturnStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.ReturnStatement;\n readonly expression?: Expression;\n }\n interface WithStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.WithStatement;\n readonly expression: Expression;\n readonly statement: Statement;\n }\n interface SwitchStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.SwitchStatement;\n readonly expression: Expression;\n readonly caseBlock: CaseBlock;\n possiblyExhaustive?: boolean;\n }\n interface CaseBlock extends Node, LocalsContainer {\n readonly kind: SyntaxKind.CaseBlock;\n readonly parent: SwitchStatement;\n readonly clauses: NodeArray;\n }\n interface CaseClause extends Node, JSDocContainer {\n readonly kind: SyntaxKind.CaseClause;\n readonly parent: CaseBlock;\n readonly expression: Expression;\n readonly statements: NodeArray;\n }\n interface DefaultClause extends Node {\n readonly kind: SyntaxKind.DefaultClause;\n readonly parent: CaseBlock;\n readonly statements: NodeArray;\n }\n type CaseOrDefaultClause = CaseClause | DefaultClause;\n interface LabeledStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.LabeledStatement;\n readonly label: Identifier;\n readonly statement: Statement;\n }\n interface ThrowStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.ThrowStatement;\n readonly expression: Expression;\n }\n interface TryStatement extends Statement, FlowContainer {\n readonly kind: SyntaxKind.TryStatement;\n readonly tryBlock: Block;\n readonly catchClause?: CatchClause;\n readonly finallyBlock?: Block;\n }\n interface CatchClause extends Node, LocalsContainer {\n readonly kind: SyntaxKind.CatchClause;\n readonly parent: TryStatement;\n readonly variableDeclaration?: VariableDeclaration;\n readonly block: Block;\n }\n type ObjectTypeDeclaration = ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode;\n type DeclarationWithTypeParameters = DeclarationWithTypeParameterChildren | JSDocTypedefTag | JSDocCallbackTag | JSDocSignature;\n type DeclarationWithTypeParameterChildren = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag;\n interface ClassLikeDeclarationBase extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.ClassDeclaration | SyntaxKind.ClassExpression;\n readonly name?: Identifier;\n readonly typeParameters?: NodeArray;\n readonly heritageClauses?: NodeArray;\n readonly members: NodeArray;\n }\n interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement {\n readonly kind: SyntaxKind.ClassDeclaration;\n readonly modifiers?: NodeArray;\n /** May be undefined in `export default class { ... }`. */\n readonly name?: Identifier;\n }\n interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression {\n readonly kind: SyntaxKind.ClassExpression;\n readonly modifiers?: NodeArray;\n }\n type ClassLikeDeclaration = ClassDeclaration | ClassExpression;\n interface ClassElement extends NamedDeclaration {\n _classElementBrand: any;\n readonly name?: PropertyName;\n }\n interface TypeElement extends NamedDeclaration {\n _typeElementBrand: any;\n readonly name?: PropertyName;\n readonly questionToken?: QuestionToken | undefined;\n }\n interface InterfaceDeclaration extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.InterfaceDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: Identifier;\n readonly typeParameters?: NodeArray;\n readonly heritageClauses?: NodeArray;\n readonly members: NodeArray;\n }\n interface HeritageClause extends Node {\n readonly kind: SyntaxKind.HeritageClause;\n readonly parent: InterfaceDeclaration | ClassLikeDeclaration;\n readonly token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword;\n readonly types: NodeArray;\n }\n interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {\n readonly kind: SyntaxKind.TypeAliasDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: Identifier;\n readonly typeParameters?: NodeArray;\n readonly type: TypeNode;\n }\n interface EnumMember extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.EnumMember;\n readonly parent: EnumDeclaration;\n readonly name: PropertyName;\n readonly initializer?: Expression;\n }\n interface EnumDeclaration extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.EnumDeclaration;\n readonly modifiers?: NodeArray;\n readonly name: Identifier;\n readonly members: NodeArray;\n }\n type ModuleName = Identifier | StringLiteral;\n type ModuleBody = NamespaceBody | JSDocNamespaceBody;\n interface ModuleDeclaration extends DeclarationStatement, JSDocContainer, LocalsContainer {\n readonly kind: SyntaxKind.ModuleDeclaration;\n readonly parent: ModuleBody | SourceFile;\n readonly modifiers?: NodeArray;\n readonly name: ModuleName;\n readonly body?: ModuleBody | JSDocNamespaceDeclaration;\n }\n type NamespaceBody = ModuleBlock | NamespaceDeclaration;\n interface NamespaceDeclaration extends ModuleDeclaration {\n readonly name: Identifier;\n readonly body: NamespaceBody;\n }\n type JSDocNamespaceBody = Identifier | JSDocNamespaceDeclaration;\n interface JSDocNamespaceDeclaration extends ModuleDeclaration {\n readonly name: Identifier;\n readonly body?: JSDocNamespaceBody;\n }\n interface ModuleBlock extends Node, Statement {\n readonly kind: SyntaxKind.ModuleBlock;\n readonly parent: ModuleDeclaration;\n readonly statements: NodeArray;\n }\n type ModuleReference = EntityName | ExternalModuleReference;\n /**\n * One of:\n * - import x = require(\"mod\");\n * - import x = M.x;\n */\n interface ImportEqualsDeclaration extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.ImportEqualsDeclaration;\n readonly parent: SourceFile | ModuleBlock;\n readonly modifiers?: NodeArray;\n readonly name: Identifier;\n readonly isTypeOnly: boolean;\n readonly moduleReference: ModuleReference;\n }\n interface ExternalModuleReference extends Node {\n readonly kind: SyntaxKind.ExternalModuleReference;\n readonly parent: ImportEqualsDeclaration;\n readonly expression: Expression;\n }\n interface ImportDeclaration extends Statement {\n readonly kind: SyntaxKind.ImportDeclaration;\n readonly parent: SourceFile | ModuleBlock;\n readonly modifiers?: NodeArray;\n readonly importClause?: ImportClause;\n /** If this is not a StringLiteral it will be a grammar error. */\n readonly moduleSpecifier: Expression;\n /** @deprecated */ readonly assertClause?: AssertClause;\n readonly attributes?: ImportAttributes;\n }\n type NamedImportBindings = NamespaceImport | NamedImports;\n type NamedExportBindings = NamespaceExport | NamedExports;\n interface ImportClause extends NamedDeclaration {\n readonly kind: SyntaxKind.ImportClause;\n readonly parent: ImportDeclaration | JSDocImportTag;\n /** @deprecated Use `phaseModifier` instead */\n readonly isTypeOnly: boolean;\n readonly phaseModifier: undefined | ImportPhaseModifierSyntaxKind;\n readonly name?: Identifier;\n readonly namedBindings?: NamedImportBindings;\n }\n type ImportPhaseModifierSyntaxKind = SyntaxKind.TypeKeyword | SyntaxKind.DeferKeyword;\n /** @deprecated */\n type AssertionKey = ImportAttributeName;\n /** @deprecated */\n interface AssertEntry extends ImportAttribute {\n }\n /** @deprecated */\n interface AssertClause extends ImportAttributes {\n }\n type ImportAttributeName = Identifier | StringLiteral;\n interface ImportAttribute extends Node {\n readonly kind: SyntaxKind.ImportAttribute;\n readonly parent: ImportAttributes;\n readonly name: ImportAttributeName;\n readonly value: Expression;\n }\n interface ImportAttributes extends Node {\n readonly token: SyntaxKind.WithKeyword | SyntaxKind.AssertKeyword;\n readonly kind: SyntaxKind.ImportAttributes;\n readonly parent: ImportDeclaration | ExportDeclaration;\n readonly elements: NodeArray;\n readonly multiLine?: boolean;\n }\n interface NamespaceImport extends NamedDeclaration {\n readonly kind: SyntaxKind.NamespaceImport;\n readonly parent: ImportClause;\n readonly name: Identifier;\n }\n interface NamespaceExport extends NamedDeclaration {\n readonly kind: SyntaxKind.NamespaceExport;\n readonly parent: ExportDeclaration;\n readonly name: ModuleExportName;\n }\n interface NamespaceExportDeclaration extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.NamespaceExportDeclaration;\n readonly name: Identifier;\n }\n interface ExportDeclaration extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.ExportDeclaration;\n readonly parent: SourceFile | ModuleBlock;\n readonly modifiers?: NodeArray;\n readonly isTypeOnly: boolean;\n /** Will not be assigned in the case of `export * from \"foo\";` */\n readonly exportClause?: NamedExportBindings;\n /** If this is not a StringLiteral it will be a grammar error. */\n readonly moduleSpecifier?: Expression;\n /** @deprecated */ readonly assertClause?: AssertClause;\n readonly attributes?: ImportAttributes;\n }\n interface NamedImports extends Node {\n readonly kind: SyntaxKind.NamedImports;\n readonly parent: ImportClause;\n readonly elements: NodeArray;\n }\n interface NamedExports extends Node {\n readonly kind: SyntaxKind.NamedExports;\n readonly parent: ExportDeclaration;\n readonly elements: NodeArray;\n }\n type NamedImportsOrExports = NamedImports | NamedExports;\n interface ImportSpecifier extends NamedDeclaration {\n readonly kind: SyntaxKind.ImportSpecifier;\n readonly parent: NamedImports;\n readonly propertyName?: ModuleExportName;\n readonly name: Identifier;\n readonly isTypeOnly: boolean;\n }\n interface ExportSpecifier extends NamedDeclaration, JSDocContainer {\n readonly kind: SyntaxKind.ExportSpecifier;\n readonly parent: NamedExports;\n readonly isTypeOnly: boolean;\n readonly propertyName?: ModuleExportName;\n readonly name: ModuleExportName;\n }\n type ModuleExportName = Identifier | StringLiteral;\n type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier;\n type TypeOnlyCompatibleAliasDeclaration = ImportClause | ImportEqualsDeclaration | NamespaceImport | ImportOrExportSpecifier | ExportDeclaration | NamespaceExport;\n type TypeOnlyImportDeclaration =\n | ImportClause & {\n readonly isTypeOnly: true;\n readonly name: Identifier;\n }\n | ImportEqualsDeclaration & {\n readonly isTypeOnly: true;\n }\n | NamespaceImport & {\n readonly parent: ImportClause & {\n readonly isTypeOnly: true;\n };\n }\n | ImportSpecifier\n & ({\n readonly isTypeOnly: true;\n } | {\n readonly parent: NamedImports & {\n readonly parent: ImportClause & {\n readonly isTypeOnly: true;\n };\n };\n });\n type TypeOnlyExportDeclaration =\n | ExportSpecifier\n & ({\n readonly isTypeOnly: true;\n } | {\n readonly parent: NamedExports & {\n readonly parent: ExportDeclaration & {\n readonly isTypeOnly: true;\n };\n };\n })\n | ExportDeclaration & {\n readonly isTypeOnly: true;\n readonly moduleSpecifier: Expression;\n }\n | NamespaceExport & {\n readonly parent: ExportDeclaration & {\n readonly isTypeOnly: true;\n readonly moduleSpecifier: Expression;\n };\n };\n type TypeOnlyAliasDeclaration = TypeOnlyImportDeclaration | TypeOnlyExportDeclaration;\n /**\n * This is either an `export =` or an `export default` declaration.\n * Unless `isExportEquals` is set, this node was parsed as an `export default`.\n */\n interface ExportAssignment extends DeclarationStatement, JSDocContainer {\n readonly kind: SyntaxKind.ExportAssignment;\n readonly parent: SourceFile;\n readonly modifiers?: NodeArray;\n readonly isExportEquals?: boolean;\n readonly expression: Expression;\n }\n interface FileReference extends TextRange {\n fileName: string;\n resolutionMode?: ResolutionMode;\n preserve?: boolean;\n }\n interface CheckJsDirective extends TextRange {\n enabled: boolean;\n }\n type CommentKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia;\n interface CommentRange extends TextRange {\n hasTrailingNewLine?: boolean;\n kind: CommentKind;\n }\n interface SynthesizedComment extends CommentRange {\n text: string;\n pos: -1;\n end: -1;\n hasLeadingNewline?: boolean;\n }\n interface JSDocTypeExpression extends TypeNode {\n readonly kind: SyntaxKind.JSDocTypeExpression;\n readonly type: TypeNode;\n }\n interface JSDocNameReference extends Node {\n readonly kind: SyntaxKind.JSDocNameReference;\n readonly name: EntityName | JSDocMemberName;\n }\n /** Class#method reference in JSDoc */\n interface JSDocMemberName extends Node {\n readonly kind: SyntaxKind.JSDocMemberName;\n readonly left: EntityName | JSDocMemberName;\n readonly right: Identifier;\n }\n interface JSDocType extends TypeNode {\n _jsDocTypeBrand: any;\n }\n interface JSDocAllType extends JSDocType {\n readonly kind: SyntaxKind.JSDocAllType;\n }\n interface JSDocUnknownType extends JSDocType {\n readonly kind: SyntaxKind.JSDocUnknownType;\n }\n interface JSDocNonNullableType extends JSDocType {\n readonly kind: SyntaxKind.JSDocNonNullableType;\n readonly type: TypeNode;\n readonly postfix: boolean;\n }\n interface JSDocNullableType extends JSDocType {\n readonly kind: SyntaxKind.JSDocNullableType;\n readonly type: TypeNode;\n readonly postfix: boolean;\n }\n interface JSDocOptionalType extends JSDocType {\n readonly kind: SyntaxKind.JSDocOptionalType;\n readonly type: TypeNode;\n }\n interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase, LocalsContainer {\n readonly kind: SyntaxKind.JSDocFunctionType;\n }\n interface JSDocVariadicType extends JSDocType {\n readonly kind: SyntaxKind.JSDocVariadicType;\n readonly type: TypeNode;\n }\n interface JSDocNamepathType extends JSDocType {\n readonly kind: SyntaxKind.JSDocNamepathType;\n readonly type: TypeNode;\n }\n type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType;\n interface JSDoc extends Node {\n readonly kind: SyntaxKind.JSDoc;\n readonly parent: HasJSDoc;\n readonly tags?: NodeArray;\n readonly comment?: string | NodeArray;\n }\n interface JSDocTag extends Node {\n readonly parent: JSDoc | JSDocTypeLiteral;\n readonly tagName: Identifier;\n readonly comment?: string | NodeArray;\n }\n interface JSDocLink extends Node {\n readonly kind: SyntaxKind.JSDocLink;\n readonly name?: EntityName | JSDocMemberName;\n text: string;\n }\n interface JSDocLinkCode extends Node {\n readonly kind: SyntaxKind.JSDocLinkCode;\n readonly name?: EntityName | JSDocMemberName;\n text: string;\n }\n interface JSDocLinkPlain extends Node {\n readonly kind: SyntaxKind.JSDocLinkPlain;\n readonly name?: EntityName | JSDocMemberName;\n text: string;\n }\n type JSDocComment = JSDocText | JSDocLink | JSDocLinkCode | JSDocLinkPlain;\n interface JSDocText extends Node {\n readonly kind: SyntaxKind.JSDocText;\n text: string;\n }\n interface JSDocUnknownTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocTag;\n }\n /**\n * Note that `@extends` is a synonym of `@augments`.\n * Both tags are represented by this interface.\n */\n interface JSDocAugmentsTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocAugmentsTag;\n readonly class: ExpressionWithTypeArguments & {\n readonly expression: Identifier | PropertyAccessEntityNameExpression;\n };\n }\n interface JSDocImplementsTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocImplementsTag;\n readonly class: ExpressionWithTypeArguments & {\n readonly expression: Identifier | PropertyAccessEntityNameExpression;\n };\n }\n interface JSDocAuthorTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocAuthorTag;\n }\n interface JSDocDeprecatedTag extends JSDocTag {\n kind: SyntaxKind.JSDocDeprecatedTag;\n }\n interface JSDocClassTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocClassTag;\n }\n interface JSDocPublicTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocPublicTag;\n }\n interface JSDocPrivateTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocPrivateTag;\n }\n interface JSDocProtectedTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocProtectedTag;\n }\n interface JSDocReadonlyTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocReadonlyTag;\n }\n interface JSDocOverrideTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocOverrideTag;\n }\n interface JSDocEnumTag extends JSDocTag, Declaration, LocalsContainer {\n readonly kind: SyntaxKind.JSDocEnumTag;\n readonly parent: JSDoc;\n readonly typeExpression: JSDocTypeExpression;\n }\n interface JSDocThisTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocThisTag;\n readonly typeExpression: JSDocTypeExpression;\n }\n interface JSDocTemplateTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocTemplateTag;\n readonly constraint: JSDocTypeExpression | undefined;\n readonly typeParameters: NodeArray;\n }\n interface JSDocSeeTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocSeeTag;\n readonly name?: JSDocNameReference;\n }\n interface JSDocReturnTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocReturnTag;\n readonly typeExpression?: JSDocTypeExpression;\n }\n interface JSDocTypeTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocTypeTag;\n readonly typeExpression: JSDocTypeExpression;\n }\n interface JSDocTypedefTag extends JSDocTag, NamedDeclaration, LocalsContainer {\n readonly kind: SyntaxKind.JSDocTypedefTag;\n readonly parent: JSDoc;\n readonly fullName?: JSDocNamespaceDeclaration | Identifier;\n readonly name?: Identifier;\n readonly typeExpression?: JSDocTypeExpression | JSDocTypeLiteral;\n }\n interface JSDocCallbackTag extends JSDocTag, NamedDeclaration, LocalsContainer {\n readonly kind: SyntaxKind.JSDocCallbackTag;\n readonly parent: JSDoc;\n readonly fullName?: JSDocNamespaceDeclaration | Identifier;\n readonly name?: Identifier;\n readonly typeExpression: JSDocSignature;\n }\n interface JSDocOverloadTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocOverloadTag;\n readonly parent: JSDoc;\n readonly typeExpression: JSDocSignature;\n }\n interface JSDocThrowsTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocThrowsTag;\n readonly typeExpression?: JSDocTypeExpression;\n }\n interface JSDocSignature extends JSDocType, Declaration, JSDocContainer, LocalsContainer {\n readonly kind: SyntaxKind.JSDocSignature;\n readonly typeParameters?: readonly JSDocTemplateTag[];\n readonly parameters: readonly JSDocParameterTag[];\n readonly type: JSDocReturnTag | undefined;\n }\n interface JSDocPropertyLikeTag extends JSDocTag, Declaration {\n readonly parent: JSDoc;\n readonly name: EntityName;\n readonly typeExpression?: JSDocTypeExpression;\n /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */\n readonly isNameFirst: boolean;\n readonly isBracketed: boolean;\n }\n interface JSDocPropertyTag extends JSDocPropertyLikeTag {\n readonly kind: SyntaxKind.JSDocPropertyTag;\n }\n interface JSDocParameterTag extends JSDocPropertyLikeTag {\n readonly kind: SyntaxKind.JSDocParameterTag;\n }\n interface JSDocTypeLiteral extends JSDocType, Declaration {\n readonly kind: SyntaxKind.JSDocTypeLiteral;\n readonly jsDocPropertyTags?: readonly JSDocPropertyLikeTag[];\n /** If true, then this type literal represents an *array* of its type. */\n readonly isArrayType: boolean;\n }\n interface JSDocSatisfiesTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocSatisfiesTag;\n readonly typeExpression: JSDocTypeExpression;\n }\n interface JSDocImportTag extends JSDocTag {\n readonly kind: SyntaxKind.JSDocImportTag;\n readonly parent: JSDoc;\n readonly importClause?: ImportClause;\n readonly moduleSpecifier: Expression;\n readonly attributes?: ImportAttributes;\n }\n type FlowType = Type | IncompleteType;\n interface IncompleteType {\n flags: TypeFlags | 0;\n type: Type;\n }\n interface AmdDependency {\n path: string;\n name?: string;\n }\n /**\n * Subset of properties from SourceFile that are used in multiple utility functions\n */\n interface SourceFileLike {\n readonly text: string;\n languageVariant?: LanguageVariant;\n }\n interface SourceFileLike {\n getLineAndCharacterOfPosition(pos: number): LineAndCharacter;\n }\n type ResolutionMode = ModuleKind.ESNext | ModuleKind.CommonJS | undefined;\n interface SourceFile extends Declaration, LocalsContainer {\n readonly kind: SyntaxKind.SourceFile;\n readonly statements: NodeArray;\n readonly endOfFileToken: Token;\n fileName: string;\n text: string;\n amdDependencies: readonly AmdDependency[];\n moduleName?: string;\n referencedFiles: readonly FileReference[];\n typeReferenceDirectives: readonly FileReference[];\n libReferenceDirectives: readonly FileReference[];\n languageVariant: LanguageVariant;\n isDeclarationFile: boolean;\n /**\n * lib.d.ts should have a reference comment like\n *\n * /// \n *\n * If any other file has this comment, it signals not to include lib.d.ts\n * because this containing file is intended to act as a default library.\n */\n hasNoDefaultLib: boolean;\n languageVersion: ScriptTarget;\n /**\n * When `module` is `Node16` or `NodeNext`, this field controls whether the\n * source file in question is an ESNext-output-format file, or a CommonJS-output-format\n * module. This is derived by the module resolver as it looks up the file, since\n * it is derived from either the file extension of the module, or the containing\n * `package.json` context, and affects both checking and emit.\n *\n * It is _public_ so that (pre)transformers can set this field,\n * since it switches the builtin `node` module transform. Generally speaking, if unset,\n * the field is treated as though it is `ModuleKind.CommonJS`.\n *\n * Note that this field is only set by the module resolution process when\n * `moduleResolution` is `Node16` or `NodeNext`, which is implied by the `module` setting\n * of `Node16` or `NodeNext`, respectively, but may be overriden (eg, by a `moduleResolution`\n * of `node`). If so, this field will be unset and source files will be considered to be\n * CommonJS-output-format by the node module transformer and type checker, regardless of extension or context.\n */\n impliedNodeFormat?: ResolutionMode;\n }\n interface SourceFile {\n getLineAndCharacterOfPosition(pos: number): LineAndCharacter;\n getLineEndOfPosition(pos: number): number;\n getLineStarts(): readonly number[];\n getPositionOfLineAndCharacter(line: number, character: number): number;\n update(newText: string, textChangeRange: TextChangeRange): SourceFile;\n }\n interface Bundle extends Node {\n readonly kind: SyntaxKind.Bundle;\n readonly sourceFiles: readonly SourceFile[];\n }\n interface JsonSourceFile extends SourceFile {\n readonly statements: NodeArray;\n }\n interface TsConfigSourceFile extends JsonSourceFile {\n extendedSourceFiles?: string[];\n }\n interface JsonMinusNumericLiteral extends PrefixUnaryExpression {\n readonly kind: SyntaxKind.PrefixUnaryExpression;\n readonly operator: SyntaxKind.MinusToken;\n readonly operand: NumericLiteral;\n }\n type JsonObjectExpression = ObjectLiteralExpression | ArrayLiteralExpression | JsonMinusNumericLiteral | NumericLiteral | StringLiteral | BooleanLiteral | NullLiteral;\n interface JsonObjectExpressionStatement extends ExpressionStatement {\n readonly expression: JsonObjectExpression;\n }\n interface ScriptReferenceHost {\n getCompilerOptions(): CompilerOptions;\n getSourceFile(fileName: string): SourceFile | undefined;\n getSourceFileByPath(path: Path): SourceFile | undefined;\n getCurrentDirectory(): string;\n }\n interface ParseConfigHost extends ModuleResolutionHost {\n useCaseSensitiveFileNames: boolean;\n readDirectory(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): readonly string[];\n /**\n * Gets a value indicating whether the specified path exists and is a file.\n * @param path The path to test.\n */\n fileExists(path: string): boolean;\n readFile(path: string): string | undefined;\n trace?(s: string): void;\n }\n /**\n * Branded string for keeping track of when we've turned an ambiguous path\n * specified like \"./blah\" to an absolute path to an actual\n * tsconfig file, e.g. \"/root/blah/tsconfig.json\"\n */\n type ResolvedConfigFileName = string & {\n _isResolvedConfigFileName: never;\n };\n interface WriteFileCallbackData {\n }\n type WriteFileCallback = (fileName: string, text: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], data?: WriteFileCallbackData) => void;\n class OperationCanceledException {\n }\n interface CancellationToken {\n isCancellationRequested(): boolean;\n /** @throws OperationCanceledException if isCancellationRequested is true */\n throwIfCancellationRequested(): void;\n }\n interface Program extends ScriptReferenceHost {\n getCurrentDirectory(): string;\n /**\n * Get a list of root file names that were passed to a 'createProgram'\n */\n getRootFileNames(): readonly string[];\n /**\n * Get a list of files in the program\n */\n getSourceFiles(): readonly SourceFile[];\n /**\n * Emits the JavaScript and declaration files. If targetSourceFile is not specified, then\n * the JavaScript and declaration files will be produced for all the files in this program.\n * If targetSourceFile is specified, then only the JavaScript and declaration for that\n * specific file will be generated.\n *\n * If writeFile is not specified then the writeFile callback from the compiler host will be\n * used for writing the JavaScript and declaration files. Otherwise, the writeFile parameter\n * will be invoked when writing the JavaScript and declaration files.\n */\n emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult;\n getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];\n /** The first time this is called, it will return global diagnostics (no location). */\n getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];\n getConfigFileParsingDiagnostics(): readonly Diagnostic[];\n /**\n * Gets a type checker that can be used to semantically analyze source files in the program.\n */\n getTypeChecker(): TypeChecker;\n getNodeCount(): number;\n getIdentifierCount(): number;\n getSymbolCount(): number;\n getTypeCount(): number;\n getInstantiationCount(): number;\n getRelationCacheSizes(): {\n assignable: number;\n identity: number;\n subtype: number;\n strictSubtype: number;\n };\n isSourceFileFromExternalLibrary(file: SourceFile): boolean;\n isSourceFileDefaultLibrary(file: SourceFile): boolean;\n /**\n * Calculates the final resolution mode for a given module reference node. This function only returns a result when module resolution\n * settings allow differing resolution between ESM imports and CJS requires, or when a mode is explicitly provided via import attributes,\n * which cause an `import` or `require` condition to be used during resolution regardless of module resolution settings. In absence of\n * overriding attributes, and in modes that support differing resolution, the result indicates the syntax the usage would emit to JavaScript.\n * Some examples:\n *\n * ```ts\n * // tsc foo.mts --module nodenext\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `impliedNodeFormat` set by .mts file extension\n *\n * // tsc foo.cts --module nodenext\n * import {} from \"mod\";\n * // Result: CommonJS - the import emits as CJS due to `impliedNodeFormat` set by .cts file extension\n *\n * // tsc foo.ts --module preserve --moduleResolution bundler\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `--module preserve` and `--moduleResolution bundler`\n * // supports conditional imports/exports\n *\n * // tsc foo.ts --module preserve --moduleResolution node10\n * import {} from \"mod\";\n * // Result: undefined - the import emits as ESM due to `--module preserve`, but `--moduleResolution node10`\n * // does not support conditional imports/exports\n *\n * // tsc foo.ts --module commonjs --moduleResolution node10\n * import type {} from \"mod\" with { \"resolution-mode\": \"import\" };\n * // Result: ESNext - conditional imports/exports always supported with \"resolution-mode\" attribute\n * ```\n */\n getModeForUsageLocation(file: SourceFile, usage: StringLiteralLike): ResolutionMode;\n /**\n * Calculates the final resolution mode for an import at some index within a file's `imports` list. This function only returns a result\n * when module resolution settings allow differing resolution between ESM imports and CJS requires, or when a mode is explicitly provided\n * via import attributes, which cause an `import` or `require` condition to be used during resolution regardless of module resolution\n * settings. In absence of overriding attributes, and in modes that support differing resolution, the result indicates the syntax the\n * usage would emit to JavaScript. Some examples:\n *\n * ```ts\n * // tsc foo.mts --module nodenext\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `impliedNodeFormat` set by .mts file extension\n *\n * // tsc foo.cts --module nodenext\n * import {} from \"mod\";\n * // Result: CommonJS - the import emits as CJS due to `impliedNodeFormat` set by .cts file extension\n *\n * // tsc foo.ts --module preserve --moduleResolution bundler\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `--module preserve` and `--moduleResolution bundler`\n * // supports conditional imports/exports\n *\n * // tsc foo.ts --module preserve --moduleResolution node10\n * import {} from \"mod\";\n * // Result: undefined - the import emits as ESM due to `--module preserve`, but `--moduleResolution node10`\n * // does not support conditional imports/exports\n *\n * // tsc foo.ts --module commonjs --moduleResolution node10\n * import type {} from \"mod\" with { \"resolution-mode\": \"import\" };\n * // Result: ESNext - conditional imports/exports always supported with \"resolution-mode\" attribute\n * ```\n */\n getModeForResolutionAtIndex(file: SourceFile, index: number): ResolutionMode;\n getProjectReferences(): readonly ProjectReference[] | undefined;\n getResolvedProjectReferences(): readonly (ResolvedProjectReference | undefined)[] | undefined;\n }\n interface ResolvedProjectReference {\n commandLine: ParsedCommandLine;\n sourceFile: SourceFile;\n references?: readonly (ResolvedProjectReference | undefined)[];\n }\n type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer;\n interface CustomTransformer {\n transformSourceFile(node: SourceFile): SourceFile;\n transformBundle(node: Bundle): Bundle;\n }\n interface CustomTransformers {\n /** Custom transformers to evaluate before built-in .js transformations. */\n before?: (TransformerFactory | CustomTransformerFactory)[];\n /** Custom transformers to evaluate after built-in .js transformations. */\n after?: (TransformerFactory | CustomTransformerFactory)[];\n /** Custom transformers to evaluate after built-in .d.ts transformations. */\n afterDeclarations?: (TransformerFactory | CustomTransformerFactory)[];\n }\n interface SourceMapSpan {\n /** Line number in the .js file. */\n emittedLine: number;\n /** Column number in the .js file. */\n emittedColumn: number;\n /** Line number in the .ts file. */\n sourceLine: number;\n /** Column number in the .ts file. */\n sourceColumn: number;\n /** Optional name (index into names array) associated with this span. */\n nameIndex?: number;\n /** .ts file (index into sources array) associated with this span */\n sourceIndex: number;\n }\n /** Return code used by getEmitOutput function to indicate status of the function */\n enum ExitStatus {\n Success = 0,\n DiagnosticsPresent_OutputsSkipped = 1,\n DiagnosticsPresent_OutputsGenerated = 2,\n InvalidProject_OutputsSkipped = 3,\n ProjectReferenceCycle_OutputsSkipped = 4,\n }\n interface EmitResult {\n emitSkipped: boolean;\n /** Contains declaration emit diagnostics */\n diagnostics: readonly Diagnostic[];\n emittedFiles?: string[];\n }\n interface TypeChecker {\n getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type;\n getTypeOfSymbol(symbol: Symbol): Type;\n getDeclaredTypeOfSymbol(symbol: Symbol): Type;\n getPropertiesOfType(type: Type): Symbol[];\n getPropertyOfType(type: Type, propertyName: string): Symbol | undefined;\n getPrivateIdentifierPropertyOfType(leftType: Type, name: string, location: Node): Symbol | undefined;\n getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined;\n getIndexInfosOfType(type: Type): readonly IndexInfo[];\n getIndexInfosOfIndexSymbol: (indexSymbol: Symbol, siblingSymbols?: Symbol[] | undefined) => IndexInfo[];\n getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[];\n getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined;\n getBaseTypes(type: InterfaceType): BaseType[];\n getBaseTypeOfLiteralType(type: Type): Type;\n getWidenedType(type: Type): Type;\n /**\n * Gets the \"awaited type\" of a type.\n *\n * If an expression has a Promise-like type, the \"awaited type\" of the expression is\n * derived from the type of the first argument of the fulfillment callback for that\n * Promise's `then` method. If the \"awaited type\" is itself a Promise-like, it is\n * recursively unwrapped in the same manner until a non-promise type is found.\n *\n * If an expression does not have a Promise-like type, its \"awaited type\" is the type\n * of the expression.\n *\n * If the resulting \"awaited type\" is a generic object type, then it is wrapped in\n * an `Awaited`.\n *\n * In the event the \"awaited type\" circularly references itself, or is a non-Promise\n * object-type with a callable `then()` method, an \"awaited type\" cannot be determined\n * and the value `undefined` will be returned.\n *\n * This is used to reflect the runtime behavior of the `await` keyword.\n */\n getAwaitedType(type: Type): Type | undefined;\n getReturnTypeOfSignature(signature: Signature): Type;\n getNullableType(type: Type, flags: TypeFlags): Type;\n getNonNullableType(type: Type): Type;\n getTypeArguments(type: TypeReference): readonly Type[];\n /** Note that the resulting nodes cannot be checked. */\n typeToTypeNode(type: Type, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeNode | undefined;\n /** Note that the resulting nodes cannot be checked. */\n signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined):\n | SignatureDeclaration & {\n typeArguments?: NodeArray;\n }\n | undefined;\n /** Note that the resulting nodes cannot be checked. */\n indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): IndexSignatureDeclaration | undefined;\n /** Note that the resulting nodes cannot be checked. */\n symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): EntityName | undefined;\n /** Note that the resulting nodes cannot be checked. */\n symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined;\n /** Note that the resulting nodes cannot be checked. */\n symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray | undefined;\n /** Note that the resulting nodes cannot be checked. */\n symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined;\n /** Note that the resulting nodes cannot be checked. */\n typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): TypeParameterDeclaration | undefined;\n getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];\n getSymbolAtLocation(node: Node): Symbol | undefined;\n getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[];\n /**\n * The function returns the value (local variable) symbol of an identifier in the short-hand property assignment.\n * This is necessary as an identifier in short-hand property assignment can contains two meaning: property name and property value.\n */\n getShorthandAssignmentValueSymbol(location: Node | undefined): Symbol | undefined;\n getExportSpecifierLocalTargetSymbol(location: ExportSpecifier | Identifier): Symbol | undefined;\n /**\n * If a symbol is a local symbol with an associated exported symbol, returns the exported symbol.\n * Otherwise returns its input.\n * For example, at `export type T = number;`:\n * - `getSymbolAtLocation` at the location `T` will return the exported symbol for `T`.\n * - But the result of `getSymbolsInScope` will contain the *local* symbol for `T`, not the exported symbol.\n * - Calling `getExportSymbolOfSymbol` on that local symbol will return the exported symbol.\n */\n getExportSymbolOfSymbol(symbol: Symbol): Symbol;\n getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol | undefined;\n getTypeOfAssignmentPattern(pattern: AssignmentPattern): Type;\n getTypeAtLocation(node: Node): Type;\n getTypeFromTypeNode(node: TypeNode): Type;\n signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string;\n typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;\n symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string;\n typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;\n getFullyQualifiedName(symbol: Symbol): string;\n getAugmentedPropertiesOfType(type: Type): Symbol[];\n getRootSymbols(symbol: Symbol): readonly Symbol[];\n getSymbolOfExpando(node: Node, allowDeclaration: boolean): Symbol | undefined;\n getContextualType(node: Expression): Type | undefined;\n /**\n * returns unknownSignature in the case of an error.\n * returns undefined if the node is not valid.\n * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`.\n */\n getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined;\n getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature | undefined;\n isImplementationOfOverload(node: SignatureDeclaration): boolean | undefined;\n isUndefinedSymbol(symbol: Symbol): boolean;\n isArgumentsSymbol(symbol: Symbol): boolean;\n isUnknownSymbol(symbol: Symbol): boolean;\n getMergedSymbol(symbol: Symbol): Symbol;\n getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): string | number | undefined;\n isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName | ImportTypeNode, propertyName: string): boolean;\n /** Follow all aliases to get the original symbol. */\n getAliasedSymbol(symbol: Symbol): Symbol;\n /** Follow a *single* alias to get the immediately aliased symbol. */\n getImmediateAliasedSymbol(symbol: Symbol): Symbol | undefined;\n getExportsOfModule(moduleSymbol: Symbol): Symbol[];\n getJsxIntrinsicTagNamesAt(location: Node): Symbol[];\n isOptionalParameter(node: ParameterDeclaration): boolean;\n getAmbientModules(): Symbol[];\n tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined;\n getApparentType(type: Type): Type;\n getBaseConstraintOfType(type: Type): Type | undefined;\n getDefaultFromTypeParameter(type: Type): Type | undefined;\n /**\n * Gets the intrinsic `any` type. There are multiple types that act as `any` used internally in the compiler,\n * so the type returned by this function should not be used in equality checks to determine if another type\n * is `any`. Instead, use `type.flags & TypeFlags.Any`.\n */\n getAnyType(): Type;\n getStringType(): Type;\n getStringLiteralType(value: string): StringLiteralType;\n getNumberType(): Type;\n getNumberLiteralType(value: number): NumberLiteralType;\n getBigIntType(): Type;\n getBigIntLiteralType(value: PseudoBigInt): BigIntLiteralType;\n getBooleanType(): Type;\n getUnknownType(): Type;\n getFalseType(): Type;\n getTrueType(): Type;\n getVoidType(): Type;\n /**\n * Gets the intrinsic `undefined` type. There are multiple types that act as `undefined` used internally in the compiler\n * depending on compiler options, so the type returned by this function should not be used in equality checks to determine\n * if another type is `undefined`. Instead, use `type.flags & TypeFlags.Undefined`.\n */\n getUndefinedType(): Type;\n /**\n * Gets the intrinsic `null` type. There are multiple types that act as `null` used internally in the compiler,\n * so the type returned by this function should not be used in equality checks to determine if another type\n * is `null`. Instead, use `type.flags & TypeFlags.Null`.\n */\n getNullType(): Type;\n getESSymbolType(): Type;\n /**\n * Gets the intrinsic `never` type. There are multiple types that act as `never` used internally in the compiler,\n * so the type returned by this function should not be used in equality checks to determine if another type\n * is `never`. Instead, use `type.flags & TypeFlags.Never`.\n */\n getNeverType(): Type;\n /**\n * Gets the intrinsic `object` type.\n */\n getNonPrimitiveType(): Type;\n /**\n * Returns true if the \"source\" type is assignable to the \"target\" type.\n *\n * ```ts\n * declare const abcLiteral: ts.Type; // Type of \"abc\"\n * declare const stringType: ts.Type; // Type of string\n *\n * isTypeAssignableTo(abcLiteral, abcLiteral); // true; \"abc\" is assignable to \"abc\"\n * isTypeAssignableTo(abcLiteral, stringType); // true; \"abc\" is assignable to string\n * isTypeAssignableTo(stringType, abcLiteral); // false; string is not assignable to \"abc\"\n * isTypeAssignableTo(stringType, stringType); // true; string is assignable to string\n * ```\n */\n isTypeAssignableTo(source: Type, target: Type): boolean;\n /**\n * True if this type is the `Array` or `ReadonlyArray` type from lib.d.ts.\n * This function will _not_ return true if passed a type which\n * extends `Array` (for example, the TypeScript AST's `NodeArray` type).\n */\n isArrayType(type: Type): boolean;\n /**\n * True if this type is a tuple type. This function will _not_ return true if\n * passed a type which extends from a tuple.\n */\n isTupleType(type: Type): boolean;\n /**\n * True if this type is assignable to `ReadonlyArray`.\n */\n isArrayLikeType(type: Type): boolean;\n resolveName(name: string, location: Node | undefined, meaning: SymbolFlags, excludeGlobals: boolean): Symbol | undefined;\n getTypePredicateOfSignature(signature: Signature): TypePredicate | undefined;\n /**\n * Depending on the operation performed, it may be appropriate to throw away the checker\n * if the cancellation token is triggered. Typically, if it is used for error checking\n * and the operation is cancelled, then it should be discarded, otherwise it is safe to keep.\n */\n runWithCancellationToken(token: CancellationToken, cb: (checker: TypeChecker) => T): T;\n getTypeArgumentsForResolvedSignature(signature: Signature): readonly Type[] | undefined;\n }\n enum NodeBuilderFlags {\n None = 0,\n NoTruncation = 1,\n WriteArrayAsGenericType = 2,\n GenerateNamesForShadowedTypeParams = 4,\n UseStructuralFallback = 8,\n ForbidIndexedAccessSymbolReferences = 16,\n WriteTypeArgumentsOfSignature = 32,\n UseFullyQualifiedType = 64,\n UseOnlyExternalAliasing = 128,\n SuppressAnyReturnType = 256,\n WriteTypeParametersInQualifiedName = 512,\n MultilineObjectLiterals = 1024,\n WriteClassExpressionAsTypeLiteral = 2048,\n UseTypeOfFunction = 4096,\n OmitParameterModifiers = 8192,\n UseAliasDefinedOutsideCurrentScope = 16384,\n UseSingleQuotesForStringLiteralType = 268435456,\n NoTypeReduction = 536870912,\n OmitThisParameter = 33554432,\n AllowThisInObjectLiteral = 32768,\n AllowQualifiedNameInPlaceOfIdentifier = 65536,\n AllowAnonymousIdentifier = 131072,\n AllowEmptyUnionOrIntersection = 262144,\n AllowEmptyTuple = 524288,\n AllowUniqueESSymbolType = 1048576,\n AllowEmptyIndexInfoType = 2097152,\n AllowNodeModulesRelativePaths = 67108864,\n IgnoreErrors = 70221824,\n InObjectTypeLiteral = 4194304,\n InTypeAlias = 8388608,\n InInitialEntityName = 16777216,\n }\n enum TypeFormatFlags {\n None = 0,\n NoTruncation = 1,\n WriteArrayAsGenericType = 2,\n GenerateNamesForShadowedTypeParams = 4,\n UseStructuralFallback = 8,\n WriteTypeArgumentsOfSignature = 32,\n UseFullyQualifiedType = 64,\n SuppressAnyReturnType = 256,\n MultilineObjectLiterals = 1024,\n WriteClassExpressionAsTypeLiteral = 2048,\n UseTypeOfFunction = 4096,\n OmitParameterModifiers = 8192,\n UseAliasDefinedOutsideCurrentScope = 16384,\n UseSingleQuotesForStringLiteralType = 268435456,\n NoTypeReduction = 536870912,\n OmitThisParameter = 33554432,\n AllowUniqueESSymbolType = 1048576,\n AddUndefined = 131072,\n WriteArrowStyleSignature = 262144,\n InArrayType = 524288,\n InElementType = 2097152,\n InFirstTypeArgument = 4194304,\n InTypeAlias = 8388608,\n NodeBuilderFlagsMask = 848330095,\n }\n enum SymbolFormatFlags {\n None = 0,\n WriteTypeParametersOrArguments = 1,\n UseOnlyExternalAliasing = 2,\n AllowAnyNodeKind = 4,\n UseAliasDefinedOutsideCurrentScope = 8,\n }\n enum TypePredicateKind {\n This = 0,\n Identifier = 1,\n AssertsThis = 2,\n AssertsIdentifier = 3,\n }\n interface TypePredicateBase {\n kind: TypePredicateKind;\n type: Type | undefined;\n }\n interface ThisTypePredicate extends TypePredicateBase {\n kind: TypePredicateKind.This;\n parameterName: undefined;\n parameterIndex: undefined;\n type: Type;\n }\n interface IdentifierTypePredicate extends TypePredicateBase {\n kind: TypePredicateKind.Identifier;\n parameterName: string;\n parameterIndex: number;\n type: Type;\n }\n interface AssertsThisTypePredicate extends TypePredicateBase {\n kind: TypePredicateKind.AssertsThis;\n parameterName: undefined;\n parameterIndex: undefined;\n type: Type | undefined;\n }\n interface AssertsIdentifierTypePredicate extends TypePredicateBase {\n kind: TypePredicateKind.AssertsIdentifier;\n parameterName: string;\n parameterIndex: number;\n type: Type | undefined;\n }\n type TypePredicate = ThisTypePredicate | IdentifierTypePredicate | AssertsThisTypePredicate | AssertsIdentifierTypePredicate;\n enum SymbolFlags {\n None = 0,\n FunctionScopedVariable = 1,\n BlockScopedVariable = 2,\n Property = 4,\n EnumMember = 8,\n Function = 16,\n Class = 32,\n Interface = 64,\n ConstEnum = 128,\n RegularEnum = 256,\n ValueModule = 512,\n NamespaceModule = 1024,\n TypeLiteral = 2048,\n ObjectLiteral = 4096,\n Method = 8192,\n Constructor = 16384,\n GetAccessor = 32768,\n SetAccessor = 65536,\n Signature = 131072,\n TypeParameter = 262144,\n TypeAlias = 524288,\n ExportValue = 1048576,\n Alias = 2097152,\n Prototype = 4194304,\n ExportStar = 8388608,\n Optional = 16777216,\n Transient = 33554432,\n Assignment = 67108864,\n ModuleExports = 134217728,\n All = -1,\n Enum = 384,\n Variable = 3,\n Value = 111551,\n Type = 788968,\n Namespace = 1920,\n Module = 1536,\n Accessor = 98304,\n FunctionScopedVariableExcludes = 111550,\n BlockScopedVariableExcludes = 111551,\n ParameterExcludes = 111551,\n PropertyExcludes = 0,\n EnumMemberExcludes = 900095,\n FunctionExcludes = 110991,\n ClassExcludes = 899503,\n InterfaceExcludes = 788872,\n RegularEnumExcludes = 899327,\n ConstEnumExcludes = 899967,\n ValueModuleExcludes = 110735,\n NamespaceModuleExcludes = 0,\n MethodExcludes = 103359,\n GetAccessorExcludes = 46015,\n SetAccessorExcludes = 78783,\n AccessorExcludes = 13247,\n TypeParameterExcludes = 526824,\n TypeAliasExcludes = 788968,\n AliasExcludes = 2097152,\n ModuleMember = 2623475,\n ExportHasLocal = 944,\n BlockScoped = 418,\n PropertyOrAccessor = 98308,\n ClassMember = 106500,\n }\n interface Symbol {\n flags: SymbolFlags;\n escapedName: __String;\n declarations?: Declaration[];\n valueDeclaration?: Declaration;\n members?: SymbolTable;\n exports?: SymbolTable;\n globalExports?: SymbolTable;\n }\n interface Symbol {\n readonly name: string;\n getFlags(): SymbolFlags;\n getEscapedName(): __String;\n getName(): string;\n getDeclarations(): Declaration[] | undefined;\n getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[];\n getJsDocTags(checker?: TypeChecker): JSDocTagInfo[];\n }\n enum InternalSymbolName {\n Call = \"__call\",\n Constructor = \"__constructor\",\n New = \"__new\",\n Index = \"__index\",\n ExportStar = \"__export\",\n Global = \"__global\",\n Missing = \"__missing\",\n Type = \"__type\",\n Object = \"__object\",\n JSXAttributes = \"__jsxAttributes\",\n Class = \"__class\",\n Function = \"__function\",\n Computed = \"__computed\",\n Resolving = \"__resolving__\",\n ExportEquals = \"export=\",\n Default = \"default\",\n This = \"this\",\n InstantiationExpression = \"__instantiationExpression\",\n ImportAttributes = \"__importAttributes\",\n }\n /**\n * This represents a string whose leading underscore have been escaped by adding extra leading underscores.\n * The shape of this brand is rather unique compared to others we've used.\n * Instead of just an intersection of a string and an object, it is that union-ed\n * with an intersection of void and an object. This makes it wholly incompatible\n * with a normal string (which is good, it cannot be misused on assignment or on usage),\n * while still being comparable with a normal string via === (also good) and castable from a string.\n */\n type __String =\n | (string & {\n __escapedIdentifier: void;\n })\n | (void & {\n __escapedIdentifier: void;\n })\n | InternalSymbolName;\n /** @deprecated Use ReadonlyMap<__String, T> instead. */\n type ReadonlyUnderscoreEscapedMap = ReadonlyMap<__String, T>;\n /** @deprecated Use Map<__String, T> instead. */\n type UnderscoreEscapedMap = Map<__String, T>;\n /** SymbolTable based on ES6 Map interface. */\n type SymbolTable = Map<__String, Symbol>;\n enum TypeFlags {\n Any = 1,\n Unknown = 2,\n String = 4,\n Number = 8,\n Boolean = 16,\n Enum = 32,\n BigInt = 64,\n StringLiteral = 128,\n NumberLiteral = 256,\n BooleanLiteral = 512,\n EnumLiteral = 1024,\n BigIntLiteral = 2048,\n ESSymbol = 4096,\n UniqueESSymbol = 8192,\n Void = 16384,\n Undefined = 32768,\n Null = 65536,\n Never = 131072,\n TypeParameter = 262144,\n Object = 524288,\n Union = 1048576,\n Intersection = 2097152,\n Index = 4194304,\n IndexedAccess = 8388608,\n Conditional = 16777216,\n Substitution = 33554432,\n NonPrimitive = 67108864,\n TemplateLiteral = 134217728,\n StringMapping = 268435456,\n Literal = 2944,\n Unit = 109472,\n Freshable = 2976,\n StringOrNumberLiteral = 384,\n PossiblyFalsy = 117724,\n StringLike = 402653316,\n NumberLike = 296,\n BigIntLike = 2112,\n BooleanLike = 528,\n EnumLike = 1056,\n ESSymbolLike = 12288,\n VoidLike = 49152,\n UnionOrIntersection = 3145728,\n StructuredType = 3670016,\n TypeVariable = 8650752,\n InstantiableNonPrimitive = 58982400,\n InstantiablePrimitive = 406847488,\n Instantiable = 465829888,\n StructuredOrInstantiable = 469499904,\n Narrowable = 536624127,\n }\n type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression;\n interface Type {\n flags: TypeFlags;\n symbol: Symbol;\n pattern?: DestructuringPattern;\n aliasSymbol?: Symbol;\n aliasTypeArguments?: readonly Type[];\n }\n interface Type {\n getFlags(): TypeFlags;\n getSymbol(): Symbol | undefined;\n getProperties(): Symbol[];\n getProperty(propertyName: string): Symbol | undefined;\n getApparentProperties(): Symbol[];\n getCallSignatures(): readonly Signature[];\n getConstructSignatures(): readonly Signature[];\n getStringIndexType(): Type | undefined;\n getNumberIndexType(): Type | undefined;\n getBaseTypes(): BaseType[] | undefined;\n getNonNullableType(): Type;\n getConstraint(): Type | undefined;\n getDefault(): Type | undefined;\n isUnion(): this is UnionType;\n isIntersection(): this is IntersectionType;\n isUnionOrIntersection(): this is UnionOrIntersectionType;\n isLiteral(): this is LiteralType;\n isStringLiteral(): this is StringLiteralType;\n isNumberLiteral(): this is NumberLiteralType;\n isTypeParameter(): this is TypeParameter;\n isClassOrInterface(): this is InterfaceType;\n isClass(): this is InterfaceType;\n isIndexType(): this is IndexType;\n }\n interface FreshableType extends Type {\n freshType: FreshableType;\n regularType: FreshableType;\n }\n interface LiteralType extends FreshableType {\n value: string | number | PseudoBigInt;\n }\n interface UniqueESSymbolType extends Type {\n symbol: Symbol;\n escapedName: __String;\n }\n interface StringLiteralType extends LiteralType {\n value: string;\n }\n interface NumberLiteralType extends LiteralType {\n value: number;\n }\n interface BigIntLiteralType extends LiteralType {\n value: PseudoBigInt;\n }\n interface EnumType extends FreshableType {\n }\n enum ObjectFlags {\n None = 0,\n Class = 1,\n Interface = 2,\n Reference = 4,\n Tuple = 8,\n Anonymous = 16,\n Mapped = 32,\n Instantiated = 64,\n ObjectLiteral = 128,\n EvolvingArray = 256,\n ObjectLiteralPatternWithComputedProperties = 512,\n ReverseMapped = 1024,\n JsxAttributes = 2048,\n JSLiteral = 4096,\n FreshLiteral = 8192,\n ArrayLiteral = 16384,\n SingleSignatureType = 134217728,\n ClassOrInterface = 3,\n ContainsSpread = 2097152,\n ObjectRestType = 4194304,\n InstantiationExpressionType = 8388608,\n }\n interface ObjectType extends Type {\n objectFlags: ObjectFlags;\n }\n /** Class and interface types (ObjectFlags.Class and ObjectFlags.Interface). */\n interface InterfaceType extends ObjectType {\n typeParameters: TypeParameter[] | undefined;\n outerTypeParameters: TypeParameter[] | undefined;\n localTypeParameters: TypeParameter[] | undefined;\n thisType: TypeParameter | undefined;\n }\n type BaseType = ObjectType | IntersectionType | TypeVariable;\n interface InterfaceTypeWithDeclaredMembers extends InterfaceType {\n declaredProperties: Symbol[];\n declaredCallSignatures: Signature[];\n declaredConstructSignatures: Signature[];\n declaredIndexInfos: IndexInfo[];\n }\n /**\n * Type references (ObjectFlags.Reference). When a class or interface has type parameters or\n * a \"this\" type, references to the class or interface are made using type references. The\n * typeArguments property specifies the types to substitute for the type parameters of the\n * class or interface and optionally includes an extra element that specifies the type to\n * substitute for \"this\" in the resulting instantiation. When no extra argument is present,\n * the type reference itself is substituted for \"this\". The typeArguments property is undefined\n * if the class or interface has no type parameters and the reference isn't specifying an\n * explicit \"this\" argument.\n */\n interface TypeReference extends ObjectType {\n target: GenericType;\n node?: TypeReferenceNode | ArrayTypeNode | TupleTypeNode;\n }\n interface TypeReference {\n typeArguments?: readonly Type[];\n }\n interface DeferredTypeReference extends TypeReference {\n }\n interface GenericType extends InterfaceType, TypeReference {\n }\n enum ElementFlags {\n Required = 1,\n Optional = 2,\n Rest = 4,\n Variadic = 8,\n Fixed = 3,\n Variable = 12,\n NonRequired = 14,\n NonRest = 11,\n }\n interface TupleType extends GenericType {\n elementFlags: readonly ElementFlags[];\n /** Number of required or variadic elements */\n minLength: number;\n /** Number of initial required or optional elements */\n fixedLength: number;\n /**\n * True if tuple has any rest or variadic elements\n *\n * @deprecated Use `.combinedFlags & ElementFlags.Variable` instead\n */\n hasRestElement: boolean;\n combinedFlags: ElementFlags;\n readonly: boolean;\n labeledElementDeclarations?: readonly (NamedTupleMember | ParameterDeclaration | undefined)[];\n }\n interface TupleTypeReference extends TypeReference {\n target: TupleType;\n }\n interface UnionOrIntersectionType extends Type {\n types: Type[];\n }\n interface UnionType extends UnionOrIntersectionType {\n }\n interface IntersectionType extends UnionOrIntersectionType {\n }\n type StructuredType = ObjectType | UnionType | IntersectionType;\n interface EvolvingArrayType extends ObjectType {\n elementType: Type;\n finalArrayType?: Type;\n }\n interface InstantiableType extends Type {\n }\n interface TypeParameter extends InstantiableType {\n }\n interface IndexedAccessType extends InstantiableType {\n objectType: Type;\n indexType: Type;\n constraint?: Type;\n simplifiedForReading?: Type;\n simplifiedForWriting?: Type;\n }\n type TypeVariable = TypeParameter | IndexedAccessType;\n interface IndexType extends InstantiableType {\n type: InstantiableType | UnionOrIntersectionType;\n }\n interface ConditionalRoot {\n node: ConditionalTypeNode;\n checkType: Type;\n extendsType: Type;\n isDistributive: boolean;\n inferTypeParameters?: TypeParameter[];\n outerTypeParameters?: TypeParameter[];\n instantiations?: Map;\n aliasSymbol?: Symbol;\n aliasTypeArguments?: Type[];\n }\n interface ConditionalType extends InstantiableType {\n root: ConditionalRoot;\n checkType: Type;\n extendsType: Type;\n resolvedTrueType?: Type;\n resolvedFalseType?: Type;\n }\n interface TemplateLiteralType extends InstantiableType {\n texts: readonly string[];\n types: readonly Type[];\n }\n interface StringMappingType extends InstantiableType {\n symbol: Symbol;\n type: Type;\n }\n interface SubstitutionType extends InstantiableType {\n objectFlags: ObjectFlags;\n baseType: Type;\n constraint: Type;\n }\n enum SignatureKind {\n Call = 0,\n Construct = 1,\n }\n interface Signature {\n declaration?: SignatureDeclaration | JSDocSignature;\n typeParameters?: readonly TypeParameter[];\n parameters: readonly Symbol[];\n thisParameter?: Symbol;\n }\n interface Signature {\n getDeclaration(): SignatureDeclaration;\n getTypeParameters(): TypeParameter[] | undefined;\n getParameters(): Symbol[];\n getTypeParameterAtPosition(pos: number): Type;\n getReturnType(): Type;\n getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[];\n getJsDocTags(): JSDocTagInfo[];\n }\n enum IndexKind {\n String = 0,\n Number = 1,\n }\n type ElementWithComputedPropertyName = (ClassElement | ObjectLiteralElement) & {\n name: ComputedPropertyName;\n };\n interface IndexInfo {\n keyType: Type;\n type: Type;\n isReadonly: boolean;\n declaration?: IndexSignatureDeclaration;\n components?: ElementWithComputedPropertyName[];\n }\n enum InferencePriority {\n None = 0,\n NakedTypeVariable = 1,\n SpeculativeTuple = 2,\n SubstituteSource = 4,\n HomomorphicMappedType = 8,\n PartialHomomorphicMappedType = 16,\n MappedTypeConstraint = 32,\n ContravariantConditional = 64,\n ReturnType = 128,\n LiteralKeyof = 256,\n NoConstraints = 512,\n AlwaysStrict = 1024,\n MaxValue = 2048,\n PriorityImpliesCombination = 416,\n Circularity = -1,\n }\n interface FileExtensionInfo {\n extension: string;\n isMixedContent: boolean;\n scriptKind?: ScriptKind;\n }\n interface DiagnosticMessage {\n key: string;\n category: DiagnosticCategory;\n code: number;\n message: string;\n reportsUnnecessary?: {};\n reportsDeprecated?: {};\n }\n /**\n * A linked list of formatted diagnostic messages to be used as part of a multiline message.\n * It is built from the bottom up, leaving the head to be the \"main\" diagnostic.\n * While it seems that DiagnosticMessageChain is structurally similar to DiagnosticMessage,\n * the difference is that messages are all preformatted in DMC.\n */\n interface DiagnosticMessageChain {\n messageText: string;\n category: DiagnosticCategory;\n code: number;\n next?: DiagnosticMessageChain[];\n }\n interface Diagnostic extends DiagnosticRelatedInformation {\n /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */\n reportsUnnecessary?: {};\n reportsDeprecated?: {};\n source?: string;\n relatedInformation?: DiagnosticRelatedInformation[];\n }\n interface DiagnosticRelatedInformation {\n category: DiagnosticCategory;\n code: number;\n file: SourceFile | undefined;\n start: number | undefined;\n length: number | undefined;\n messageText: string | DiagnosticMessageChain;\n }\n interface DiagnosticWithLocation extends Diagnostic {\n file: SourceFile;\n start: number;\n length: number;\n }\n enum DiagnosticCategory {\n Warning = 0,\n Error = 1,\n Suggestion = 2,\n Message = 3,\n }\n enum ModuleResolutionKind {\n Classic = 1,\n /**\n * @deprecated\n * `NodeJs` was renamed to `Node10` to better reflect the version of Node that it targets.\n * Use the new name or consider switching to a modern module resolution target.\n */\n NodeJs = 2,\n Node10 = 2,\n Node16 = 3,\n NodeNext = 99,\n Bundler = 100,\n }\n enum ModuleDetectionKind {\n /**\n * Files with imports, exports and/or import.meta are considered modules\n */\n Legacy = 1,\n /**\n * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node16+\n */\n Auto = 2,\n /**\n * Consider all non-declaration files modules, regardless of present syntax\n */\n Force = 3,\n }\n interface PluginImport {\n name: string;\n }\n interface ProjectReference {\n /** A normalized path on disk */\n path: string;\n /** The path as the user originally wrote it */\n originalPath?: string;\n /** @deprecated */\n prepend?: boolean;\n /** True if it is intended that this reference form a circularity */\n circular?: boolean;\n }\n enum WatchFileKind {\n FixedPollingInterval = 0,\n PriorityPollingInterval = 1,\n DynamicPriorityPolling = 2,\n FixedChunkSizePolling = 3,\n UseFsEvents = 4,\n UseFsEventsOnParentDirectory = 5,\n }\n enum WatchDirectoryKind {\n UseFsEvents = 0,\n FixedPollingInterval = 1,\n DynamicPriorityPolling = 2,\n FixedChunkSizePolling = 3,\n }\n enum PollingWatchKind {\n FixedInterval = 0,\n PriorityInterval = 1,\n DynamicPriority = 2,\n FixedChunkSize = 3,\n }\n type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike | PluginImport[] | ProjectReference[] | null | undefined;\n interface CompilerOptions {\n allowImportingTsExtensions?: boolean;\n allowJs?: boolean;\n allowArbitraryExtensions?: boolean;\n allowSyntheticDefaultImports?: boolean;\n allowUmdGlobalAccess?: boolean;\n allowUnreachableCode?: boolean;\n allowUnusedLabels?: boolean;\n alwaysStrict?: boolean;\n baseUrl?: string;\n /** @deprecated */\n charset?: string;\n checkJs?: boolean;\n customConditions?: string[];\n declaration?: boolean;\n declarationMap?: boolean;\n emitDeclarationOnly?: boolean;\n declarationDir?: string;\n disableSizeLimit?: boolean;\n disableSourceOfProjectReferenceRedirect?: boolean;\n disableSolutionSearching?: boolean;\n disableReferencedProjectLoad?: boolean;\n downlevelIteration?: boolean;\n emitBOM?: boolean;\n emitDecoratorMetadata?: boolean;\n exactOptionalPropertyTypes?: boolean;\n experimentalDecorators?: boolean;\n forceConsistentCasingInFileNames?: boolean;\n ignoreDeprecations?: string;\n importHelpers?: boolean;\n /** @deprecated */\n importsNotUsedAsValues?: ImportsNotUsedAsValues;\n inlineSourceMap?: boolean;\n inlineSources?: boolean;\n isolatedModules?: boolean;\n isolatedDeclarations?: boolean;\n jsx?: JsxEmit;\n /** @deprecated */\n keyofStringsOnly?: boolean;\n lib?: string[];\n libReplacement?: boolean;\n locale?: string;\n mapRoot?: string;\n maxNodeModuleJsDepth?: number;\n module?: ModuleKind;\n moduleResolution?: ModuleResolutionKind;\n moduleSuffixes?: string[];\n moduleDetection?: ModuleDetectionKind;\n newLine?: NewLineKind;\n noEmit?: boolean;\n noCheck?: boolean;\n noEmitHelpers?: boolean;\n noEmitOnError?: boolean;\n noErrorTruncation?: boolean;\n noFallthroughCasesInSwitch?: boolean;\n noImplicitAny?: boolean;\n noImplicitReturns?: boolean;\n noImplicitThis?: boolean;\n /** @deprecated */\n noStrictGenericChecks?: boolean;\n noUnusedLocals?: boolean;\n noUnusedParameters?: boolean;\n /** @deprecated */\n noImplicitUseStrict?: boolean;\n noPropertyAccessFromIndexSignature?: boolean;\n assumeChangesOnlyAffectDirectDependencies?: boolean;\n noLib?: boolean;\n noResolve?: boolean;\n noUncheckedIndexedAccess?: boolean;\n /** @deprecated */\n out?: string;\n outDir?: string;\n outFile?: string;\n paths?: MapLike;\n preserveConstEnums?: boolean;\n noImplicitOverride?: boolean;\n preserveSymlinks?: boolean;\n /** @deprecated */\n preserveValueImports?: boolean;\n project?: string;\n reactNamespace?: string;\n jsxFactory?: string;\n jsxFragmentFactory?: string;\n jsxImportSource?: string;\n composite?: boolean;\n incremental?: boolean;\n tsBuildInfoFile?: string;\n removeComments?: boolean;\n resolvePackageJsonExports?: boolean;\n resolvePackageJsonImports?: boolean;\n rewriteRelativeImportExtensions?: boolean;\n rootDir?: string;\n rootDirs?: string[];\n skipLibCheck?: boolean;\n skipDefaultLibCheck?: boolean;\n sourceMap?: boolean;\n sourceRoot?: string;\n strict?: boolean;\n strictFunctionTypes?: boolean;\n strictBindCallApply?: boolean;\n strictNullChecks?: boolean;\n strictPropertyInitialization?: boolean;\n strictBuiltinIteratorReturn?: boolean;\n stripInternal?: boolean;\n /** @deprecated */\n suppressExcessPropertyErrors?: boolean;\n /** @deprecated */\n suppressImplicitAnyIndexErrors?: boolean;\n target?: ScriptTarget;\n traceResolution?: boolean;\n useUnknownInCatchVariables?: boolean;\n noUncheckedSideEffectImports?: boolean;\n resolveJsonModule?: boolean;\n types?: string[];\n /** Paths used to compute primary types search locations */\n typeRoots?: string[];\n verbatimModuleSyntax?: boolean;\n erasableSyntaxOnly?: boolean;\n esModuleInterop?: boolean;\n useDefineForClassFields?: boolean;\n [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined;\n }\n interface WatchOptions {\n watchFile?: WatchFileKind;\n watchDirectory?: WatchDirectoryKind;\n fallbackPolling?: PollingWatchKind;\n synchronousWatchDirectory?: boolean;\n excludeDirectories?: string[];\n excludeFiles?: string[];\n [option: string]: CompilerOptionsValue | undefined;\n }\n interface TypeAcquisition {\n enable?: boolean;\n include?: string[];\n exclude?: string[];\n disableFilenameBasedTypeAcquisition?: boolean;\n [option: string]: CompilerOptionsValue | undefined;\n }\n enum ModuleKind {\n None = 0,\n CommonJS = 1,\n AMD = 2,\n UMD = 3,\n System = 4,\n ES2015 = 5,\n ES2020 = 6,\n ES2022 = 7,\n ESNext = 99,\n Node16 = 100,\n Node18 = 101,\n Node20 = 102,\n NodeNext = 199,\n Preserve = 200,\n }\n enum JsxEmit {\n None = 0,\n Preserve = 1,\n React = 2,\n ReactNative = 3,\n ReactJSX = 4,\n ReactJSXDev = 5,\n }\n /** @deprecated */\n enum ImportsNotUsedAsValues {\n Remove = 0,\n Preserve = 1,\n Error = 2,\n }\n enum NewLineKind {\n CarriageReturnLineFeed = 0,\n LineFeed = 1,\n }\n interface LineAndCharacter {\n /** 0-based. */\n line: number;\n character: number;\n }\n enum ScriptKind {\n Unknown = 0,\n JS = 1,\n JSX = 2,\n TS = 3,\n TSX = 4,\n External = 5,\n JSON = 6,\n /**\n * Used on extensions that doesn't define the ScriptKind but the content defines it.\n * Deferred extensions are going to be included in all project contexts.\n */\n Deferred = 7,\n }\n enum ScriptTarget {\n /** @deprecated */\n ES3 = 0,\n ES5 = 1,\n ES2015 = 2,\n ES2016 = 3,\n ES2017 = 4,\n ES2018 = 5,\n ES2019 = 6,\n ES2020 = 7,\n ES2021 = 8,\n ES2022 = 9,\n ES2023 = 10,\n ES2024 = 11,\n ESNext = 99,\n JSON = 100,\n Latest = 99,\n }\n enum LanguageVariant {\n Standard = 0,\n JSX = 1,\n }\n /** Either a parsed command line or a parsed tsconfig.json */\n interface ParsedCommandLine {\n options: CompilerOptions;\n typeAcquisition?: TypeAcquisition;\n fileNames: string[];\n projectReferences?: readonly ProjectReference[];\n watchOptions?: WatchOptions;\n raw?: any;\n errors: Diagnostic[];\n wildcardDirectories?: MapLike;\n compileOnSave?: boolean;\n }\n enum WatchDirectoryFlags {\n None = 0,\n Recursive = 1,\n }\n interface CreateProgramOptions {\n rootNames: readonly string[];\n options: CompilerOptions;\n projectReferences?: readonly ProjectReference[];\n host?: CompilerHost;\n oldProgram?: Program;\n configFileParsingDiagnostics?: readonly Diagnostic[];\n }\n interface ModuleResolutionHost {\n fileExists(fileName: string): boolean;\n readFile(fileName: string): string | undefined;\n trace?(s: string): void;\n directoryExists?(directoryName: string): boolean;\n /**\n * Resolve a symbolic link.\n * @see https://nodejs.org/api/fs.html#fs_fs_realpathsync_path_options\n */\n realpath?(path: string): string;\n getCurrentDirectory?(): string;\n getDirectories?(path: string): string[];\n useCaseSensitiveFileNames?: boolean | (() => boolean) | undefined;\n }\n /**\n * Used by services to specify the minimum host area required to set up source files under any compilation settings\n */\n interface MinimalResolutionCacheHost extends ModuleResolutionHost {\n getCompilationSettings(): CompilerOptions;\n getCompilerHost?(): CompilerHost | undefined;\n }\n /**\n * Represents the result of module resolution.\n * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off.\n * The Program will then filter results based on these flags.\n *\n * Prefer to return a `ResolvedModuleFull` so that the file type does not have to be inferred.\n */\n interface ResolvedModule {\n /** Path of the file the module was resolved to. */\n resolvedFileName: string;\n /** True if `resolvedFileName` comes from `node_modules`. */\n isExternalLibraryImport?: boolean;\n /**\n * True if the original module reference used a .ts extension to refer directly to a .ts file,\n * which should produce an error during checking if emit is enabled.\n */\n resolvedUsingTsExtension?: boolean;\n }\n /**\n * ResolvedModule with an explicitly provided `extension` property.\n * Prefer this over `ResolvedModule`.\n * If changing this, remember to change `moduleResolutionIsEqualTo`.\n */\n interface ResolvedModuleFull extends ResolvedModule {\n /**\n * Extension of resolvedFileName. This must match what's at the end of resolvedFileName.\n * This is optional for backwards-compatibility, but will be added if not provided.\n */\n extension: string;\n packageId?: PackageId;\n }\n /**\n * Unique identifier with a package name and version.\n * If changing this, remember to change `packageIdIsEqual`.\n */\n interface PackageId {\n /**\n * Name of the package.\n * Should not include `@types`.\n * If accessing a non-index file, this should include its name e.g. \"foo/bar\".\n */\n name: string;\n /**\n * Name of a submodule within this package.\n * May be \"\".\n */\n subModuleName: string;\n /** Version of the package, e.g. \"1.2.3\" */\n version: string;\n }\n enum Extension {\n Ts = \".ts\",\n Tsx = \".tsx\",\n Dts = \".d.ts\",\n Js = \".js\",\n Jsx = \".jsx\",\n Json = \".json\",\n TsBuildInfo = \".tsbuildinfo\",\n Mjs = \".mjs\",\n Mts = \".mts\",\n Dmts = \".d.mts\",\n Cjs = \".cjs\",\n Cts = \".cts\",\n Dcts = \".d.cts\",\n }\n interface ResolvedModuleWithFailedLookupLocations {\n readonly resolvedModule: ResolvedModuleFull | undefined;\n }\n interface ResolvedTypeReferenceDirective {\n primary: boolean;\n resolvedFileName: string | undefined;\n packageId?: PackageId;\n /** True if `resolvedFileName` comes from `node_modules`. */\n isExternalLibraryImport?: boolean;\n }\n interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {\n readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined;\n }\n interface CompilerHost extends ModuleResolutionHost {\n getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined;\n getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined;\n getCancellationToken?(): CancellationToken;\n getDefaultLibFileName(options: CompilerOptions): string;\n getDefaultLibLocation?(): string;\n writeFile: WriteFileCallback;\n getCurrentDirectory(): string;\n getCanonicalFileName(fileName: string): string;\n useCaseSensitiveFileNames(): boolean;\n getNewLine(): string;\n readDirectory?(rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number): string[];\n /** @deprecated supply resolveModuleNameLiterals instead for resolution that can handle newer resolution modes like nodenext */\n resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[];\n /**\n * Returns the module resolution cache used by a provided `resolveModuleNames` implementation so that any non-name module resolution operations (eg, package.json lookup) can reuse it\n */\n getModuleResolutionCache?(): ModuleResolutionCache | undefined;\n /**\n * @deprecated supply resolveTypeReferenceDirectiveReferences instead for resolution that can handle newer resolution modes like nodenext\n *\n * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files\n */\n resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: ResolutionMode): (ResolvedTypeReferenceDirective | undefined)[];\n resolveModuleNameLiterals?(moduleLiterals: readonly StringLiteralLike[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile, reusedNames: readonly StringLiteralLike[] | undefined): readonly ResolvedModuleWithFailedLookupLocations[];\n resolveTypeReferenceDirectiveReferences?(typeDirectiveReferences: readonly T[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile | undefined, reusedNames: readonly T[] | undefined): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];\n getEnvironmentVariable?(name: string): string | undefined;\n /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */\n hasInvalidatedResolutions?(filePath: Path): boolean;\n createHash?(data: string): string;\n getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined;\n jsDocParsingMode?: JSDocParsingMode;\n }\n interface SourceMapRange extends TextRange {\n source?: SourceMapSource;\n }\n interface SourceMapSource {\n fileName: string;\n text: string;\n skipTrivia?: (pos: number) => number;\n }\n interface SourceMapSource {\n getLineAndCharacterOfPosition(pos: number): LineAndCharacter;\n }\n enum EmitFlags {\n None = 0,\n SingleLine = 1,\n MultiLine = 2,\n AdviseOnEmitNode = 4,\n NoSubstitution = 8,\n CapturesThis = 16,\n NoLeadingSourceMap = 32,\n NoTrailingSourceMap = 64,\n NoSourceMap = 96,\n NoNestedSourceMaps = 128,\n NoTokenLeadingSourceMaps = 256,\n NoTokenTrailingSourceMaps = 512,\n NoTokenSourceMaps = 768,\n NoLeadingComments = 1024,\n NoTrailingComments = 2048,\n NoComments = 3072,\n NoNestedComments = 4096,\n HelperName = 8192,\n ExportName = 16384,\n LocalName = 32768,\n InternalName = 65536,\n Indented = 131072,\n NoIndentation = 262144,\n AsyncFunctionBody = 524288,\n ReuseTempVariableScope = 1048576,\n CustomPrologue = 2097152,\n NoHoisting = 4194304,\n Iterator = 8388608,\n NoAsciiEscaping = 16777216,\n }\n interface EmitHelperBase {\n readonly name: string;\n readonly scoped: boolean;\n readonly text: string | ((node: EmitHelperUniqueNameCallback) => string);\n readonly priority?: number;\n readonly dependencies?: EmitHelper[];\n }\n interface ScopedEmitHelper extends EmitHelperBase {\n readonly scoped: true;\n }\n interface UnscopedEmitHelper extends EmitHelperBase {\n readonly scoped: false;\n readonly text: string;\n }\n type EmitHelper = ScopedEmitHelper | UnscopedEmitHelper;\n type EmitHelperUniqueNameCallback = (name: string) => string;\n enum EmitHint {\n SourceFile = 0,\n Expression = 1,\n IdentifierName = 2,\n MappedTypeParameter = 3,\n Unspecified = 4,\n EmbeddedStatement = 5,\n JsxAttributeValue = 6,\n ImportTypeNodeAttributes = 7,\n }\n enum OuterExpressionKinds {\n Parentheses = 1,\n TypeAssertions = 2,\n NonNullAssertions = 4,\n PartiallyEmittedExpressions = 8,\n ExpressionsWithTypeArguments = 16,\n Satisfies = 32,\n Assertions = 38,\n All = 63,\n ExcludeJSDocTypeAssertion = -2147483648,\n }\n type ImmediatelyInvokedFunctionExpression = CallExpression & {\n readonly expression: FunctionExpression;\n };\n type ImmediatelyInvokedArrowFunction = CallExpression & {\n readonly expression: ParenthesizedExpression & {\n readonly expression: ArrowFunction;\n };\n };\n interface NodeFactory {\n createNodeArray(elements?: readonly T[], hasTrailingComma?: boolean): NodeArray;\n createNumericLiteral(value: string | number, numericLiteralFlags?: TokenFlags): NumericLiteral;\n createBigIntLiteral(value: string | PseudoBigInt): BigIntLiteral;\n createStringLiteral(text: string, isSingleQuote?: boolean): StringLiteral;\n createStringLiteralFromNode(sourceNode: PropertyNameLiteral | PrivateIdentifier, isSingleQuote?: boolean): StringLiteral;\n createRegularExpressionLiteral(text: string): RegularExpressionLiteral;\n createIdentifier(text: string): Identifier;\n /**\n * Create a unique temporary variable.\n * @param recordTempVariable An optional callback used to record the temporary variable name. This\n * should usually be a reference to `hoistVariableDeclaration` from a `TransformationContext`, but\n * can be `undefined` if you plan to record the temporary variable manually.\n * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes\n * during emit so that the variable can be referenced in a nested function body. This is an alternative to\n * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself.\n */\n createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined, reservedInNestedScopes?: boolean): Identifier;\n /**\n * Create a unique temporary variable for use in a loop.\n * @param reservedInNestedScopes When `true`, reserves the temporary variable name in all nested scopes\n * during emit so that the variable can be referenced in a nested function body. This is an alternative to\n * setting `EmitFlags.ReuseTempVariableScope` on the nested function itself.\n */\n createLoopVariable(reservedInNestedScopes?: boolean): Identifier;\n /** Create a unique name based on the supplied text. */\n createUniqueName(text: string, flags?: GeneratedIdentifierFlags): Identifier;\n /** Create a unique name generated for a node. */\n getGeneratedNameForNode(node: Node | undefined, flags?: GeneratedIdentifierFlags): Identifier;\n createPrivateIdentifier(text: string): PrivateIdentifier;\n createUniquePrivateName(text?: string): PrivateIdentifier;\n getGeneratedPrivateNameForNode(node: Node): PrivateIdentifier;\n createToken(token: SyntaxKind.SuperKeyword): SuperExpression;\n createToken(token: SyntaxKind.ThisKeyword): ThisExpression;\n createToken(token: SyntaxKind.NullKeyword): NullLiteral;\n createToken(token: SyntaxKind.TrueKeyword): TrueLiteral;\n createToken(token: SyntaxKind.FalseKeyword): FalseLiteral;\n createToken(token: SyntaxKind.EndOfFileToken): EndOfFileToken;\n createToken(token: SyntaxKind.Unknown): Token;\n createToken(token: TKind): PunctuationToken;\n createToken(token: TKind): KeywordTypeNode;\n createToken(token: TKind): ModifierToken;\n createToken(token: TKind): KeywordToken;\n createSuper(): SuperExpression;\n createThis(): ThisExpression;\n createNull(): NullLiteral;\n createTrue(): TrueLiteral;\n createFalse(): FalseLiteral;\n createModifier(kind: T): ModifierToken;\n createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined;\n createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName;\n updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName;\n createComputedPropertyName(expression: Expression): ComputedPropertyName;\n updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName;\n createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration;\n updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration;\n createParameterDeclaration(modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration;\n updateParameterDeclaration(node: ParameterDeclaration, modifiers: readonly ModifierLike[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration;\n createDecorator(expression: Expression): Decorator;\n updateDecorator(node: Decorator, expression: Expression): Decorator;\n createPropertySignature(modifiers: readonly Modifier[] | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature;\n updatePropertySignature(node: PropertySignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined): PropertySignature;\n createPropertyDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;\n updatePropertyDeclaration(node: PropertyDeclaration, modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;\n createMethodSignature(modifiers: readonly Modifier[] | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): MethodSignature;\n updateMethodSignature(node: MethodSignature, modifiers: readonly Modifier[] | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode | undefined): MethodSignature;\n createMethodDeclaration(modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;\n updateMethodDeclaration(node: MethodDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): MethodDeclaration;\n createConstructorDeclaration(modifiers: readonly ModifierLike[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration;\n updateConstructorDeclaration(node: ConstructorDeclaration, modifiers: readonly ModifierLike[] | undefined, parameters: readonly ParameterDeclaration[], body: Block | undefined): ConstructorDeclaration;\n createGetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;\n updateGetAccessorDeclaration(node: GetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration;\n createSetAccessorDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration;\n updateSetAccessorDeclaration(node: SetAccessorDeclaration, modifiers: readonly ModifierLike[] | undefined, name: PropertyName, parameters: readonly ParameterDeclaration[], body: Block | undefined): SetAccessorDeclaration;\n createCallSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): CallSignatureDeclaration;\n updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode | undefined): CallSignatureDeclaration;\n createConstructSignature(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): ConstructSignatureDeclaration;\n updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode | undefined): ConstructSignatureDeclaration;\n createIndexSignature(modifiers: readonly ModifierLike[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration;\n updateIndexSignature(node: IndexSignatureDeclaration, modifiers: readonly ModifierLike[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): IndexSignatureDeclaration;\n createTemplateLiteralTypeSpan(type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan;\n updateTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, type: TypeNode, literal: TemplateMiddle | TemplateTail): TemplateLiteralTypeSpan;\n createClassStaticBlockDeclaration(body: Block): ClassStaticBlockDeclaration;\n updateClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, body: Block): ClassStaticBlockDeclaration;\n createKeywordTypeNode(kind: TKind): KeywordTypeNode;\n createTypePredicateNode(assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode | string, type: TypeNode | undefined): TypePredicateNode;\n updateTypePredicateNode(node: TypePredicateNode, assertsModifier: AssertsKeyword | undefined, parameterName: Identifier | ThisTypeNode, type: TypeNode | undefined): TypePredicateNode;\n createTypeReferenceNode(typeName: string | EntityName, typeArguments?: readonly TypeNode[]): TypeReferenceNode;\n updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray | undefined): TypeReferenceNode;\n createFunctionTypeNode(typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): FunctionTypeNode;\n updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): FunctionTypeNode;\n createConstructorTypeNode(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode): ConstructorTypeNode;\n updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode;\n createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode;\n updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode;\n createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode;\n updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray): TypeLiteralNode;\n createArrayTypeNode(elementType: TypeNode): ArrayTypeNode;\n updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode;\n createTupleTypeNode(elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode;\n updateTupleTypeNode(node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode;\n createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;\n updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;\n createOptionalTypeNode(type: TypeNode): OptionalTypeNode;\n updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode;\n createRestTypeNode(type: TypeNode): RestTypeNode;\n updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode;\n createUnionTypeNode(types: readonly TypeNode[]): UnionTypeNode;\n updateUnionTypeNode(node: UnionTypeNode, types: NodeArray): UnionTypeNode;\n createIntersectionTypeNode(types: readonly TypeNode[]): IntersectionTypeNode;\n updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray): IntersectionTypeNode;\n createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode;\n updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode;\n createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode;\n updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode;\n createImportTypeNode(argument: TypeNode, attributes?: ImportAttributes, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode;\n updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, attributes: ImportAttributes | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode;\n createParenthesizedType(type: TypeNode): ParenthesizedTypeNode;\n updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode;\n createThisTypeNode(): ThisTypeNode;\n createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode;\n updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode;\n createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode;\n updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode;\n createMappedTypeNode(readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray | undefined): MappedTypeNode;\n updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray | undefined): MappedTypeNode;\n createLiteralTypeNode(literal: LiteralTypeNode[\"literal\"]): LiteralTypeNode;\n updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode[\"literal\"]): LiteralTypeNode;\n createTemplateLiteralType(head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode;\n updateTemplateLiteralType(node: TemplateLiteralTypeNode, head: TemplateHead, templateSpans: readonly TemplateLiteralTypeSpan[]): TemplateLiteralTypeNode;\n createObjectBindingPattern(elements: readonly BindingElement[]): ObjectBindingPattern;\n updateObjectBindingPattern(node: ObjectBindingPattern, elements: readonly BindingElement[]): ObjectBindingPattern;\n createArrayBindingPattern(elements: readonly ArrayBindingElement[]): ArrayBindingPattern;\n updateArrayBindingPattern(node: ArrayBindingPattern, elements: readonly ArrayBindingElement[]): ArrayBindingPattern;\n createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement;\n updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement;\n createArrayLiteralExpression(elements?: readonly Expression[], multiLine?: boolean): ArrayLiteralExpression;\n updateArrayLiteralExpression(node: ArrayLiteralExpression, elements: readonly Expression[]): ArrayLiteralExpression;\n createObjectLiteralExpression(properties?: readonly ObjectLiteralElementLike[], multiLine?: boolean): ObjectLiteralExpression;\n updateObjectLiteralExpression(node: ObjectLiteralExpression, properties: readonly ObjectLiteralElementLike[]): ObjectLiteralExpression;\n createPropertyAccessExpression(expression: Expression, name: string | MemberName): PropertyAccessExpression;\n updatePropertyAccessExpression(node: PropertyAccessExpression, expression: Expression, name: MemberName): PropertyAccessExpression;\n createPropertyAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, name: string | MemberName): PropertyAccessChain;\n updatePropertyAccessChain(node: PropertyAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, name: MemberName): PropertyAccessChain;\n createElementAccessExpression(expression: Expression, index: number | Expression): ElementAccessExpression;\n updateElementAccessExpression(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression;\n createElementAccessChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, index: number | Expression): ElementAccessChain;\n updateElementAccessChain(node: ElementAccessChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, argumentExpression: Expression): ElementAccessChain;\n createCallExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallExpression;\n updateCallExpression(node: CallExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallExpression;\n createCallChain(expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): CallChain;\n updateCallChain(node: CallChain, expression: Expression, questionDotToken: QuestionDotToken | undefined, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[]): CallChain;\n createNewExpression(expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression;\n updateNewExpression(node: NewExpression, expression: Expression, typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined): NewExpression;\n createTaggedTemplateExpression(tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression;\n updateTaggedTemplateExpression(node: TaggedTemplateExpression, tag: Expression, typeArguments: readonly TypeNode[] | undefined, template: TemplateLiteral): TaggedTemplateExpression;\n createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion;\n updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion;\n createParenthesizedExpression(expression: Expression): ParenthesizedExpression;\n updateParenthesizedExpression(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression;\n createFunctionExpression(modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[] | undefined, type: TypeNode | undefined, body: Block): FunctionExpression;\n updateFunctionExpression(node: FunctionExpression, modifiers: readonly Modifier[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block): FunctionExpression;\n createArrowFunction(modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction;\n updateArrowFunction(node: ArrowFunction, modifiers: readonly Modifier[] | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken, body: ConciseBody): ArrowFunction;\n createDeleteExpression(expression: Expression): DeleteExpression;\n updateDeleteExpression(node: DeleteExpression, expression: Expression): DeleteExpression;\n createTypeOfExpression(expression: Expression): TypeOfExpression;\n updateTypeOfExpression(node: TypeOfExpression, expression: Expression): TypeOfExpression;\n createVoidExpression(expression: Expression): VoidExpression;\n updateVoidExpression(node: VoidExpression, expression: Expression): VoidExpression;\n createAwaitExpression(expression: Expression): AwaitExpression;\n updateAwaitExpression(node: AwaitExpression, expression: Expression): AwaitExpression;\n createPrefixUnaryExpression(operator: PrefixUnaryOperator, operand: Expression): PrefixUnaryExpression;\n updatePrefixUnaryExpression(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression;\n createPostfixUnaryExpression(operand: Expression, operator: PostfixUnaryOperator): PostfixUnaryExpression;\n updatePostfixUnaryExpression(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression;\n createBinaryExpression(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression;\n updateBinaryExpression(node: BinaryExpression, left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression;\n createConditionalExpression(condition: Expression, questionToken: QuestionToken | undefined, whenTrue: Expression, colonToken: ColonToken | undefined, whenFalse: Expression): ConditionalExpression;\n updateConditionalExpression(node: ConditionalExpression, condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression;\n createTemplateExpression(head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression;\n updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: readonly TemplateSpan[]): TemplateExpression;\n createTemplateHead(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateHead;\n createTemplateHead(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateHead;\n createTemplateMiddle(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateMiddle;\n createTemplateMiddle(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateMiddle;\n createTemplateTail(text: string, rawText?: string, templateFlags?: TokenFlags): TemplateTail;\n createTemplateTail(text: string | undefined, rawText: string, templateFlags?: TokenFlags): TemplateTail;\n createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral;\n createNoSubstitutionTemplateLiteral(text: string | undefined, rawText: string): NoSubstitutionTemplateLiteral;\n createYieldExpression(asteriskToken: AsteriskToken, expression: Expression): YieldExpression;\n createYieldExpression(asteriskToken: undefined, expression: Expression | undefined): YieldExpression;\n updateYieldExpression(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression | undefined): YieldExpression;\n createSpreadElement(expression: Expression): SpreadElement;\n updateSpreadElement(node: SpreadElement, expression: Expression): SpreadElement;\n createClassExpression(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression;\n updateClassExpression(node: ClassExpression, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassExpression;\n createOmittedExpression(): OmittedExpression;\n createExpressionWithTypeArguments(expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments;\n updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, expression: Expression, typeArguments: readonly TypeNode[] | undefined): ExpressionWithTypeArguments;\n createAsExpression(expression: Expression, type: TypeNode): AsExpression;\n updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression;\n createNonNullExpression(expression: Expression): NonNullExpression;\n updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression;\n createNonNullChain(expression: Expression): NonNullChain;\n updateNonNullChain(node: NonNullChain, expression: Expression): NonNullChain;\n createMetaProperty(keywordToken: MetaProperty[\"keywordToken\"], name: Identifier): MetaProperty;\n updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty;\n createSatisfiesExpression(expression: Expression, type: TypeNode): SatisfiesExpression;\n updateSatisfiesExpression(node: SatisfiesExpression, expression: Expression, type: TypeNode): SatisfiesExpression;\n createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan;\n updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan;\n createSemicolonClassElement(): SemicolonClassElement;\n createBlock(statements: readonly Statement[], multiLine?: boolean): Block;\n updateBlock(node: Block, statements: readonly Statement[]): Block;\n createVariableStatement(modifiers: readonly ModifierLike[] | undefined, declarationList: VariableDeclarationList | readonly VariableDeclaration[]): VariableStatement;\n updateVariableStatement(node: VariableStatement, modifiers: readonly ModifierLike[] | undefined, declarationList: VariableDeclarationList): VariableStatement;\n createEmptyStatement(): EmptyStatement;\n createExpressionStatement(expression: Expression): ExpressionStatement;\n updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement;\n createIfStatement(expression: Expression, thenStatement: Statement, elseStatement?: Statement): IfStatement;\n updateIfStatement(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined): IfStatement;\n createDoStatement(statement: Statement, expression: Expression): DoStatement;\n updateDoStatement(node: DoStatement, statement: Statement, expression: Expression): DoStatement;\n createWhileStatement(expression: Expression, statement: Statement): WhileStatement;\n updateWhileStatement(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement;\n createForStatement(initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement;\n updateForStatement(node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement;\n createForInStatement(initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement;\n updateForInStatement(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement;\n createForOfStatement(awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement;\n updateForOfStatement(node: ForOfStatement, awaitModifier: AwaitKeyword | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement;\n createContinueStatement(label?: string | Identifier): ContinueStatement;\n updateContinueStatement(node: ContinueStatement, label: Identifier | undefined): ContinueStatement;\n createBreakStatement(label?: string | Identifier): BreakStatement;\n updateBreakStatement(node: BreakStatement, label: Identifier | undefined): BreakStatement;\n createReturnStatement(expression?: Expression): ReturnStatement;\n updateReturnStatement(node: ReturnStatement, expression: Expression | undefined): ReturnStatement;\n createWithStatement(expression: Expression, statement: Statement): WithStatement;\n updateWithStatement(node: WithStatement, expression: Expression, statement: Statement): WithStatement;\n createSwitchStatement(expression: Expression, caseBlock: CaseBlock): SwitchStatement;\n updateSwitchStatement(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement;\n createLabeledStatement(label: string | Identifier, statement: Statement): LabeledStatement;\n updateLabeledStatement(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement;\n createThrowStatement(expression: Expression): ThrowStatement;\n updateThrowStatement(node: ThrowStatement, expression: Expression): ThrowStatement;\n createTryStatement(tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement;\n updateTryStatement(node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement;\n createDebuggerStatement(): DebuggerStatement;\n createVariableDeclaration(name: string | BindingName, exclamationToken?: ExclamationToken, type?: TypeNode, initializer?: Expression): VariableDeclaration;\n updateVariableDeclaration(node: VariableDeclaration, name: BindingName, exclamationToken: ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration;\n createVariableDeclarationList(declarations: readonly VariableDeclaration[], flags?: NodeFlags): VariableDeclarationList;\n updateVariableDeclarationList(node: VariableDeclarationList, declarations: readonly VariableDeclaration[]): VariableDeclarationList;\n createFunctionDeclaration(modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;\n updateFunctionDeclaration(node: FunctionDeclaration, modifiers: readonly ModifierLike[] | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration;\n createClassDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration;\n updateClassDeclaration(node: ClassDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier | undefined, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly ClassElement[]): ClassDeclaration;\n createInterfaceDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration;\n updateInterfaceDeclaration(node: InterfaceDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, heritageClauses: readonly HeritageClause[] | undefined, members: readonly TypeElement[]): InterfaceDeclaration;\n createTypeAliasDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration;\n updateTypeAliasDeclaration(node: TypeAliasDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier, typeParameters: readonly TypeParameterDeclaration[] | undefined, type: TypeNode): TypeAliasDeclaration;\n createEnumDeclaration(modifiers: readonly ModifierLike[] | undefined, name: string | Identifier, members: readonly EnumMember[]): EnumDeclaration;\n updateEnumDeclaration(node: EnumDeclaration, modifiers: readonly ModifierLike[] | undefined, name: Identifier, members: readonly EnumMember[]): EnumDeclaration;\n createModuleDeclaration(modifiers: readonly ModifierLike[] | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration;\n updateModuleDeclaration(node: ModuleDeclaration, modifiers: readonly ModifierLike[] | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;\n createModuleBlock(statements: readonly Statement[]): ModuleBlock;\n updateModuleBlock(node: ModuleBlock, statements: readonly Statement[]): ModuleBlock;\n createCaseBlock(clauses: readonly CaseOrDefaultClause[]): CaseBlock;\n updateCaseBlock(node: CaseBlock, clauses: readonly CaseOrDefaultClause[]): CaseBlock;\n createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration;\n updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration;\n createImportEqualsDeclaration(modifiers: readonly ModifierLike[] | undefined, isTypeOnly: boolean, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;\n updateImportEqualsDeclaration(node: ImportEqualsDeclaration, modifiers: readonly ModifierLike[] | undefined, isTypeOnly: boolean, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration;\n createImportDeclaration(modifiers: readonly ModifierLike[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, attributes?: ImportAttributes): ImportDeclaration;\n updateImportDeclaration(node: ImportDeclaration, modifiers: readonly ModifierLike[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, attributes: ImportAttributes | undefined): ImportDeclaration;\n createImportClause(phaseModifier: ImportPhaseModifierSyntaxKind | undefined, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;\n /** @deprecated */ createImportClause(isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;\n updateImportClause(node: ImportClause, phaseModifier: ImportPhaseModifierSyntaxKind | undefined, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;\n /** @deprecated */ updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause;\n /** @deprecated */ createAssertClause(elements: NodeArray, multiLine?: boolean): AssertClause;\n /** @deprecated */ updateAssertClause(node: AssertClause, elements: NodeArray, multiLine?: boolean): AssertClause;\n /** @deprecated */ createAssertEntry(name: AssertionKey, value: Expression): AssertEntry;\n /** @deprecated */ updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry;\n /** @deprecated */ createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer;\n /** @deprecated */ updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer;\n createImportAttributes(elements: NodeArray, multiLine?: boolean): ImportAttributes;\n updateImportAttributes(node: ImportAttributes, elements: NodeArray, multiLine?: boolean): ImportAttributes;\n createImportAttribute(name: ImportAttributeName, value: Expression): ImportAttribute;\n updateImportAttribute(node: ImportAttribute, name: ImportAttributeName, value: Expression): ImportAttribute;\n createNamespaceImport(name: Identifier): NamespaceImport;\n updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport;\n createNamespaceExport(name: ModuleExportName): NamespaceExport;\n updateNamespaceExport(node: NamespaceExport, name: ModuleExportName): NamespaceExport;\n createNamedImports(elements: readonly ImportSpecifier[]): NamedImports;\n updateNamedImports(node: NamedImports, elements: readonly ImportSpecifier[]): NamedImports;\n createImportSpecifier(isTypeOnly: boolean, propertyName: ModuleExportName | undefined, name: Identifier): ImportSpecifier;\n updateImportSpecifier(node: ImportSpecifier, isTypeOnly: boolean, propertyName: ModuleExportName | undefined, name: Identifier): ImportSpecifier;\n createExportAssignment(modifiers: readonly ModifierLike[] | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment;\n updateExportAssignment(node: ExportAssignment, modifiers: readonly ModifierLike[] | undefined, expression: Expression): ExportAssignment;\n createExportDeclaration(modifiers: readonly ModifierLike[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier?: Expression, attributes?: ImportAttributes): ExportDeclaration;\n updateExportDeclaration(node: ExportDeclaration, modifiers: readonly ModifierLike[] | undefined, isTypeOnly: boolean, exportClause: NamedExportBindings | undefined, moduleSpecifier: Expression | undefined, attributes: ImportAttributes | undefined): ExportDeclaration;\n createNamedExports(elements: readonly ExportSpecifier[]): NamedExports;\n updateNamedExports(node: NamedExports, elements: readonly ExportSpecifier[]): NamedExports;\n createExportSpecifier(isTypeOnly: boolean, propertyName: string | ModuleExportName | undefined, name: string | ModuleExportName): ExportSpecifier;\n updateExportSpecifier(node: ExportSpecifier, isTypeOnly: boolean, propertyName: ModuleExportName | undefined, name: ModuleExportName): ExportSpecifier;\n createExternalModuleReference(expression: Expression): ExternalModuleReference;\n updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference;\n createJSDocAllType(): JSDocAllType;\n createJSDocUnknownType(): JSDocUnknownType;\n createJSDocNonNullableType(type: TypeNode, postfix?: boolean): JSDocNonNullableType;\n updateJSDocNonNullableType(node: JSDocNonNullableType, type: TypeNode): JSDocNonNullableType;\n createJSDocNullableType(type: TypeNode, postfix?: boolean): JSDocNullableType;\n updateJSDocNullableType(node: JSDocNullableType, type: TypeNode): JSDocNullableType;\n createJSDocOptionalType(type: TypeNode): JSDocOptionalType;\n updateJSDocOptionalType(node: JSDocOptionalType, type: TypeNode): JSDocOptionalType;\n createJSDocFunctionType(parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType;\n updateJSDocFunctionType(node: JSDocFunctionType, parameters: readonly ParameterDeclaration[], type: TypeNode | undefined): JSDocFunctionType;\n createJSDocVariadicType(type: TypeNode): JSDocVariadicType;\n updateJSDocVariadicType(node: JSDocVariadicType, type: TypeNode): JSDocVariadicType;\n createJSDocNamepathType(type: TypeNode): JSDocNamepathType;\n updateJSDocNamepathType(node: JSDocNamepathType, type: TypeNode): JSDocNamepathType;\n createJSDocTypeExpression(type: TypeNode): JSDocTypeExpression;\n updateJSDocTypeExpression(node: JSDocTypeExpression, type: TypeNode): JSDocTypeExpression;\n createJSDocNameReference(name: EntityName | JSDocMemberName): JSDocNameReference;\n updateJSDocNameReference(node: JSDocNameReference, name: EntityName | JSDocMemberName): JSDocNameReference;\n createJSDocMemberName(left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName;\n updateJSDocMemberName(node: JSDocMemberName, left: EntityName | JSDocMemberName, right: Identifier): JSDocMemberName;\n createJSDocLink(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink;\n updateJSDocLink(node: JSDocLink, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLink;\n createJSDocLinkCode(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode;\n updateJSDocLinkCode(node: JSDocLinkCode, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkCode;\n createJSDocLinkPlain(name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain;\n updateJSDocLinkPlain(node: JSDocLinkPlain, name: EntityName | JSDocMemberName | undefined, text: string): JSDocLinkPlain;\n createJSDocTypeLiteral(jsDocPropertyTags?: readonly JSDocPropertyLikeTag[], isArrayType?: boolean): JSDocTypeLiteral;\n updateJSDocTypeLiteral(node: JSDocTypeLiteral, jsDocPropertyTags: readonly JSDocPropertyLikeTag[] | undefined, isArrayType: boolean | undefined): JSDocTypeLiteral;\n createJSDocSignature(typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type?: JSDocReturnTag): JSDocSignature;\n updateJSDocSignature(node: JSDocSignature, typeParameters: readonly JSDocTemplateTag[] | undefined, parameters: readonly JSDocParameterTag[], type: JSDocReturnTag | undefined): JSDocSignature;\n createJSDocTemplateTag(tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment?: string | NodeArray): JSDocTemplateTag;\n updateJSDocTemplateTag(node: JSDocTemplateTag, tagName: Identifier | undefined, constraint: JSDocTypeExpression | undefined, typeParameters: readonly TypeParameterDeclaration[], comment: string | NodeArray | undefined): JSDocTemplateTag;\n createJSDocTypedefTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression | JSDocTypeLiteral, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray): JSDocTypedefTag;\n updateJSDocTypedefTag(node: JSDocTypedefTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | JSDocTypeLiteral | undefined, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray | undefined): JSDocTypedefTag;\n createJSDocParameterTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray): JSDocParameterTag;\n updateJSDocParameterTag(node: JSDocParameterTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray | undefined): JSDocParameterTag;\n createJSDocPropertyTag(tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression?: JSDocTypeExpression, isNameFirst?: boolean, comment?: string | NodeArray): JSDocPropertyTag;\n updateJSDocPropertyTag(node: JSDocPropertyTag, tagName: Identifier | undefined, name: EntityName, isBracketed: boolean, typeExpression: JSDocTypeExpression | undefined, isNameFirst: boolean, comment: string | NodeArray | undefined): JSDocPropertyTag;\n createJSDocTypeTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray): JSDocTypeTag;\n updateJSDocTypeTag(node: JSDocTypeTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray | undefined): JSDocTypeTag;\n createJSDocSeeTag(tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray): JSDocSeeTag;\n updateJSDocSeeTag(node: JSDocSeeTag, tagName: Identifier | undefined, nameExpression: JSDocNameReference | undefined, comment?: string | NodeArray): JSDocSeeTag;\n createJSDocReturnTag(tagName: Identifier | undefined, typeExpression?: JSDocTypeExpression, comment?: string | NodeArray): JSDocReturnTag;\n updateJSDocReturnTag(node: JSDocReturnTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray | undefined): JSDocReturnTag;\n createJSDocThisTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray): JSDocThisTag;\n updateJSDocThisTag(node: JSDocThisTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment: string | NodeArray | undefined): JSDocThisTag;\n createJSDocEnumTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray): JSDocEnumTag;\n updateJSDocEnumTag(node: JSDocEnumTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray | undefined): JSDocEnumTag;\n createJSDocCallbackTag(tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName?: Identifier | JSDocNamespaceDeclaration, comment?: string | NodeArray): JSDocCallbackTag;\n updateJSDocCallbackTag(node: JSDocCallbackTag, tagName: Identifier | undefined, typeExpression: JSDocSignature, fullName: Identifier | JSDocNamespaceDeclaration | undefined, comment: string | NodeArray | undefined): JSDocCallbackTag;\n createJSDocOverloadTag(tagName: Identifier | undefined, typeExpression: JSDocSignature, comment?: string | NodeArray): JSDocOverloadTag;\n updateJSDocOverloadTag(node: JSDocOverloadTag, tagName: Identifier | undefined, typeExpression: JSDocSignature, comment: string | NodeArray | undefined): JSDocOverloadTag;\n createJSDocAugmentsTag(tagName: Identifier | undefined, className: JSDocAugmentsTag[\"class\"], comment?: string | NodeArray): JSDocAugmentsTag;\n updateJSDocAugmentsTag(node: JSDocAugmentsTag, tagName: Identifier | undefined, className: JSDocAugmentsTag[\"class\"], comment: string | NodeArray | undefined): JSDocAugmentsTag;\n createJSDocImplementsTag(tagName: Identifier | undefined, className: JSDocImplementsTag[\"class\"], comment?: string | NodeArray): JSDocImplementsTag;\n updateJSDocImplementsTag(node: JSDocImplementsTag, tagName: Identifier | undefined, className: JSDocImplementsTag[\"class\"], comment: string | NodeArray | undefined): JSDocImplementsTag;\n createJSDocAuthorTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocAuthorTag;\n updateJSDocAuthorTag(node: JSDocAuthorTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocAuthorTag;\n createJSDocClassTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocClassTag;\n updateJSDocClassTag(node: JSDocClassTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocClassTag;\n createJSDocPublicTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocPublicTag;\n updateJSDocPublicTag(node: JSDocPublicTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocPublicTag;\n createJSDocPrivateTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocPrivateTag;\n updateJSDocPrivateTag(node: JSDocPrivateTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocPrivateTag;\n createJSDocProtectedTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocProtectedTag;\n updateJSDocProtectedTag(node: JSDocProtectedTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocProtectedTag;\n createJSDocReadonlyTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocReadonlyTag;\n updateJSDocReadonlyTag(node: JSDocReadonlyTag, tagName: Identifier | undefined, comment: string | NodeArray | undefined): JSDocReadonlyTag;\n createJSDocUnknownTag(tagName: Identifier, comment?: string | NodeArray): JSDocUnknownTag;\n updateJSDocUnknownTag(node: JSDocUnknownTag, tagName: Identifier, comment: string | NodeArray | undefined): JSDocUnknownTag;\n createJSDocDeprecatedTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocDeprecatedTag;\n updateJSDocDeprecatedTag(node: JSDocDeprecatedTag, tagName: Identifier | undefined, comment?: string | NodeArray): JSDocDeprecatedTag;\n createJSDocOverrideTag(tagName: Identifier | undefined, comment?: string | NodeArray): JSDocOverrideTag;\n updateJSDocOverrideTag(node: JSDocOverrideTag, tagName: Identifier | undefined, comment?: string | NodeArray): JSDocOverrideTag;\n createJSDocThrowsTag(tagName: Identifier, typeExpression: JSDocTypeExpression | undefined, comment?: string | NodeArray): JSDocThrowsTag;\n updateJSDocThrowsTag(node: JSDocThrowsTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression | undefined, comment?: string | NodeArray | undefined): JSDocThrowsTag;\n createJSDocSatisfiesTag(tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment?: string | NodeArray): JSDocSatisfiesTag;\n updateJSDocSatisfiesTag(node: JSDocSatisfiesTag, tagName: Identifier | undefined, typeExpression: JSDocTypeExpression, comment: string | NodeArray | undefined): JSDocSatisfiesTag;\n createJSDocImportTag(tagName: Identifier | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, attributes?: ImportAttributes, comment?: string | NodeArray): JSDocImportTag;\n updateJSDocImportTag(node: JSDocImportTag, tagName: Identifier | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, attributes: ImportAttributes | undefined, comment: string | NodeArray | undefined): JSDocImportTag;\n createJSDocText(text: string): JSDocText;\n updateJSDocText(node: JSDocText, text: string): JSDocText;\n createJSDocComment(comment?: string | NodeArray | undefined, tags?: readonly JSDocTag[] | undefined): JSDoc;\n updateJSDocComment(node: JSDoc, comment: string | NodeArray | undefined, tags: readonly JSDocTag[] | undefined): JSDoc;\n createJsxElement(openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement;\n updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement): JsxElement;\n createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement;\n updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxSelfClosingElement;\n createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement;\n updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: readonly TypeNode[] | undefined, attributes: JsxAttributes): JsxOpeningElement;\n createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement;\n updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement;\n createJsxFragment(openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment;\n createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText;\n updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText;\n createJsxOpeningFragment(): JsxOpeningFragment;\n createJsxJsxClosingFragment(): JsxClosingFragment;\n updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: readonly JsxChild[], closingFragment: JsxClosingFragment): JsxFragment;\n createJsxAttribute(name: JsxAttributeName, initializer: JsxAttributeValue | undefined): JsxAttribute;\n updateJsxAttribute(node: JsxAttribute, name: JsxAttributeName, initializer: JsxAttributeValue | undefined): JsxAttribute;\n createJsxAttributes(properties: readonly JsxAttributeLike[]): JsxAttributes;\n updateJsxAttributes(node: JsxAttributes, properties: readonly JsxAttributeLike[]): JsxAttributes;\n createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute;\n updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute;\n createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression;\n updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression;\n createJsxNamespacedName(namespace: Identifier, name: Identifier): JsxNamespacedName;\n updateJsxNamespacedName(node: JsxNamespacedName, namespace: Identifier, name: Identifier): JsxNamespacedName;\n createCaseClause(expression: Expression, statements: readonly Statement[]): CaseClause;\n updateCaseClause(node: CaseClause, expression: Expression, statements: readonly Statement[]): CaseClause;\n createDefaultClause(statements: readonly Statement[]): DefaultClause;\n updateDefaultClause(node: DefaultClause, statements: readonly Statement[]): DefaultClause;\n createHeritageClause(token: HeritageClause[\"token\"], types: readonly ExpressionWithTypeArguments[]): HeritageClause;\n updateHeritageClause(node: HeritageClause, types: readonly ExpressionWithTypeArguments[]): HeritageClause;\n createCatchClause(variableDeclaration: string | BindingName | VariableDeclaration | undefined, block: Block): CatchClause;\n updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause;\n createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment;\n updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment;\n createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer?: Expression): ShorthandPropertyAssignment;\n updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined): ShorthandPropertyAssignment;\n createSpreadAssignment(expression: Expression): SpreadAssignment;\n updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment;\n createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember;\n updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember;\n createSourceFile(statements: readonly Statement[], endOfFileToken: EndOfFileToken, flags: NodeFlags): SourceFile;\n updateSourceFile(node: SourceFile, statements: readonly Statement[], isDeclarationFile?: boolean, referencedFiles?: readonly FileReference[], typeReferences?: readonly FileReference[], hasNoDefaultLib?: boolean, libReferences?: readonly FileReference[]): SourceFile;\n createNotEmittedStatement(original: Node): NotEmittedStatement;\n createNotEmittedTypeElement(): NotEmittedTypeElement;\n createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression;\n updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression;\n createCommaListExpression(elements: readonly Expression[]): CommaListExpression;\n updateCommaListExpression(node: CommaListExpression, elements: readonly Expression[]): CommaListExpression;\n createBundle(sourceFiles: readonly SourceFile[]): Bundle;\n updateBundle(node: Bundle, sourceFiles: readonly SourceFile[]): Bundle;\n createComma(left: Expression, right: Expression): BinaryExpression;\n createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment;\n createAssignment(left: Expression, right: Expression): AssignmentExpression;\n createLogicalOr(left: Expression, right: Expression): BinaryExpression;\n createLogicalAnd(left: Expression, right: Expression): BinaryExpression;\n createBitwiseOr(left: Expression, right: Expression): BinaryExpression;\n createBitwiseXor(left: Expression, right: Expression): BinaryExpression;\n createBitwiseAnd(left: Expression, right: Expression): BinaryExpression;\n createStrictEquality(left: Expression, right: Expression): BinaryExpression;\n createStrictInequality(left: Expression, right: Expression): BinaryExpression;\n createEquality(left: Expression, right: Expression): BinaryExpression;\n createInequality(left: Expression, right: Expression): BinaryExpression;\n createLessThan(left: Expression, right: Expression): BinaryExpression;\n createLessThanEquals(left: Expression, right: Expression): BinaryExpression;\n createGreaterThan(left: Expression, right: Expression): BinaryExpression;\n createGreaterThanEquals(left: Expression, right: Expression): BinaryExpression;\n createLeftShift(left: Expression, right: Expression): BinaryExpression;\n createRightShift(left: Expression, right: Expression): BinaryExpression;\n createUnsignedRightShift(left: Expression, right: Expression): BinaryExpression;\n createAdd(left: Expression, right: Expression): BinaryExpression;\n createSubtract(left: Expression, right: Expression): BinaryExpression;\n createMultiply(left: Expression, right: Expression): BinaryExpression;\n createDivide(left: Expression, right: Expression): BinaryExpression;\n createModulo(left: Expression, right: Expression): BinaryExpression;\n createExponent(left: Expression, right: Expression): BinaryExpression;\n createPrefixPlus(operand: Expression): PrefixUnaryExpression;\n createPrefixMinus(operand: Expression): PrefixUnaryExpression;\n createPrefixIncrement(operand: Expression): PrefixUnaryExpression;\n createPrefixDecrement(operand: Expression): PrefixUnaryExpression;\n createBitwiseNot(operand: Expression): PrefixUnaryExpression;\n createLogicalNot(operand: Expression): PrefixUnaryExpression;\n createPostfixIncrement(operand: Expression): PostfixUnaryExpression;\n createPostfixDecrement(operand: Expression): PostfixUnaryExpression;\n createImmediatelyInvokedFunctionExpression(statements: readonly Statement[]): CallExpression;\n createImmediatelyInvokedFunctionExpression(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): CallExpression;\n createImmediatelyInvokedArrowFunction(statements: readonly Statement[]): ImmediatelyInvokedArrowFunction;\n createImmediatelyInvokedArrowFunction(statements: readonly Statement[], param: ParameterDeclaration, paramValue: Expression): ImmediatelyInvokedArrowFunction;\n createVoidZero(): VoidExpression;\n createExportDefault(expression: Expression): ExportAssignment;\n createExternalModuleExport(exportName: Identifier): ExportDeclaration;\n restoreOuterExpressions(outerExpression: Expression | undefined, innerExpression: Expression, kinds?: OuterExpressionKinds): Expression;\n /**\n * Updates a node that may contain modifiers, replacing only the modifiers of the node.\n */\n replaceModifiers(node: T, modifiers: readonly Modifier[] | ModifierFlags | undefined): T;\n /**\n * Updates a node that may contain decorators or modifiers, replacing only the decorators and modifiers of the node.\n */\n replaceDecoratorsAndModifiers(node: T, modifiers: readonly ModifierLike[] | undefined): T;\n /**\n * Updates a node that contains a property name, replacing only the name of the node.\n */\n replacePropertyName(node: T, name: T[\"name\"]): T;\n }\n interface CoreTransformationContext {\n readonly factory: NodeFactory;\n /** Gets the compiler options supplied to the transformer. */\n getCompilerOptions(): CompilerOptions;\n /** Starts a new lexical environment. */\n startLexicalEnvironment(): void;\n /** Suspends the current lexical environment, usually after visiting a parameter list. */\n suspendLexicalEnvironment(): void;\n /** Resumes a suspended lexical environment, usually before visiting a function body. */\n resumeLexicalEnvironment(): void;\n /** Ends a lexical environment, returning any declarations. */\n endLexicalEnvironment(): Statement[] | undefined;\n /** Hoists a function declaration to the containing scope. */\n hoistFunctionDeclaration(node: FunctionDeclaration): void;\n /** Hoists a variable declaration to the containing scope. */\n hoistVariableDeclaration(node: Identifier): void;\n }\n interface TransformationContext extends CoreTransformationContext {\n /** Records a request for a non-scoped emit helper in the current context. */\n requestEmitHelper(helper: EmitHelper): void;\n /** Gets and resets the requested non-scoped emit helpers. */\n readEmitHelpers(): EmitHelper[] | undefined;\n /** Enables expression substitutions in the pretty printer for the provided SyntaxKind. */\n enableSubstitution(kind: SyntaxKind): void;\n /** Determines whether expression substitutions are enabled for the provided node. */\n isSubstitutionEnabled(node: Node): boolean;\n /**\n * Hook used by transformers to substitute expressions just before they\n * are emitted by the pretty printer.\n *\n * NOTE: Transformation hooks should only be modified during `Transformer` initialization,\n * before returning the `NodeTransformer` callback.\n */\n onSubstituteNode: (hint: EmitHint, node: Node) => Node;\n /**\n * Enables before/after emit notifications in the pretty printer for the provided\n * SyntaxKind.\n */\n enableEmitNotification(kind: SyntaxKind): void;\n /**\n * Determines whether before/after emit notifications should be raised in the pretty\n * printer when it emits a node.\n */\n isEmitNotificationEnabled(node: Node): boolean;\n /**\n * Hook used to allow transformers to capture state before or after\n * the printer emits a node.\n *\n * NOTE: Transformation hooks should only be modified during `Transformer` initialization,\n * before returning the `NodeTransformer` callback.\n */\n onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) => void;\n }\n interface TransformationResult {\n /** Gets the transformed source files. */\n transformed: T[];\n /** Gets diagnostics for the transformation. */\n diagnostics?: DiagnosticWithLocation[];\n /**\n * Gets a substitute for a node, if one is available; otherwise, returns the original node.\n *\n * @param hint A hint as to the intended usage of the node.\n * @param node The node to substitute.\n */\n substituteNode(hint: EmitHint, node: Node): Node;\n /**\n * Emits a node with possible notification.\n *\n * @param hint A hint as to the intended usage of the node.\n * @param node The node to emit.\n * @param emitCallback A callback used to emit the node.\n */\n emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void;\n /**\n * Indicates if a given node needs an emit notification\n *\n * @param node The node to emit.\n */\n isEmitNotificationEnabled?(node: Node): boolean;\n /**\n * Clean up EmitNode entries on any parse-tree nodes.\n */\n dispose(): void;\n }\n /**\n * A function that is used to initialize and return a `Transformer` callback, which in turn\n * will be used to transform one or more nodes.\n */\n type TransformerFactory = (context: TransformationContext) => Transformer;\n /**\n * A function that transforms a node.\n */\n type Transformer = (node: T) => T;\n /**\n * A function that accepts and possibly transforms a node.\n */\n type Visitor = (node: TIn) => VisitResult;\n /**\n * A function that walks a node using the given visitor, lifting node arrays into single nodes,\n * returning an node which satisfies the test.\n *\n * - If the input node is undefined, then the output is undefined.\n * - If the visitor returns undefined, then the output is undefined.\n * - If the output node is not undefined, then it will satisfy the test function.\n * - In order to obtain a return type that is more specific than `Node`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * For the canonical implementation of this type, @see {visitNode}.\n */\n interface NodeVisitor {\n (node: TIn, visitor: Visitor, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);\n (node: TIn, visitor: Visitor, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);\n }\n /**\n * A function that walks a node array using the given visitor, returning an array whose contents satisfy the test.\n *\n * - If the input node array is undefined, the output is undefined.\n * - If the visitor can return undefined, the node it visits in the array will be reused.\n * - If the output node array is not undefined, then its contents will satisfy the test.\n * - In order to obtain a return type that is more specific than `NodeArray`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * For the canonical implementation of this type, @see {visitNodes}.\n */\n interface NodesVisitor {\n | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray | (TInArray & undefined);\n | undefined>(nodes: TInArray, visitor: Visitor, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray | (TInArray & undefined);\n }\n type VisitResult = T | readonly Node[];\n interface Printer {\n /**\n * Print a node and its subtree as-is, without any emit transformations.\n * @param hint A value indicating the purpose of a node. This is primarily used to\n * distinguish between an `Identifier` used in an expression position, versus an\n * `Identifier` used as an `IdentifierName` as part of a declaration. For most nodes you\n * should just pass `Unspecified`.\n * @param node The node to print. The node and its subtree are printed as-is, without any\n * emit transformations.\n * @param sourceFile A source file that provides context for the node. The source text of\n * the file is used to emit the original source content for literals and identifiers, while\n * the identifiers of the source file are used when generating unique names to avoid\n * collisions.\n */\n printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): string;\n /**\n * Prints a list of nodes using the given format flags\n */\n printList(format: ListFormat, list: NodeArray, sourceFile: SourceFile): string;\n /**\n * Prints a source file as-is, without any emit transformations.\n */\n printFile(sourceFile: SourceFile): string;\n /**\n * Prints a bundle of source files as-is, without any emit transformations.\n */\n printBundle(bundle: Bundle): string;\n }\n interface PrintHandlers {\n /**\n * A hook used by the Printer when generating unique names to avoid collisions with\n * globally defined names that exist outside of the current source file.\n */\n hasGlobalName?(name: string): boolean;\n /**\n * A hook used by the Printer to provide notifications prior to emitting a node. A\n * compatible implementation **must** invoke `emitCallback` with the provided `hint` and\n * `node` values.\n * @param hint A hint indicating the intended purpose of the node.\n * @param node The node to emit.\n * @param emitCallback A callback that, when invoked, will emit the node.\n * @example\n * ```ts\n * var printer = createPrinter(printerOptions, {\n * onEmitNode(hint, node, emitCallback) {\n * // set up or track state prior to emitting the node...\n * emitCallback(hint, node);\n * // restore state after emitting the node...\n * }\n * });\n * ```\n */\n onEmitNode?(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void;\n /**\n * A hook used to check if an emit notification is required for a node.\n * @param node The node to emit.\n */\n isEmitNotificationEnabled?(node: Node): boolean;\n /**\n * A hook used by the Printer to perform just-in-time substitution of a node. This is\n * primarily used by node transformations that need to substitute one node for another,\n * such as replacing `myExportedVar` with `exports.myExportedVar`.\n * @param hint A hint indicating the intended purpose of the node.\n * @param node The node to emit.\n * @example\n * ```ts\n * var printer = createPrinter(printerOptions, {\n * substituteNode(hint, node) {\n * // perform substitution if necessary...\n * return node;\n * }\n * });\n * ```\n */\n substituteNode?(hint: EmitHint, node: Node): Node;\n }\n interface PrinterOptions {\n removeComments?: boolean;\n newLine?: NewLineKind;\n omitTrailingSemicolon?: boolean;\n noEmitHelpers?: boolean;\n }\n interface GetEffectiveTypeRootsHost {\n getCurrentDirectory?(): string;\n }\n interface TextSpan {\n start: number;\n length: number;\n }\n interface TextChangeRange {\n span: TextSpan;\n newLength: number;\n }\n interface SyntaxList extends Node {\n kind: SyntaxKind.SyntaxList;\n }\n enum ListFormat {\n None = 0,\n SingleLine = 0,\n MultiLine = 1,\n PreserveLines = 2,\n LinesMask = 3,\n NotDelimited = 0,\n BarDelimited = 4,\n AmpersandDelimited = 8,\n CommaDelimited = 16,\n AsteriskDelimited = 32,\n DelimitersMask = 60,\n AllowTrailingComma = 64,\n Indented = 128,\n SpaceBetweenBraces = 256,\n SpaceBetweenSiblings = 512,\n Braces = 1024,\n Parenthesis = 2048,\n AngleBrackets = 4096,\n SquareBrackets = 8192,\n BracketsMask = 15360,\n OptionalIfUndefined = 16384,\n OptionalIfEmpty = 32768,\n Optional = 49152,\n PreferNewLine = 65536,\n NoTrailingNewLine = 131072,\n NoInterveningComments = 262144,\n NoSpaceIfEmpty = 524288,\n SingleElement = 1048576,\n SpaceAfterList = 2097152,\n Modifiers = 2359808,\n HeritageClauses = 512,\n SingleLineTypeLiteralMembers = 768,\n MultiLineTypeLiteralMembers = 32897,\n SingleLineTupleTypeElements = 528,\n MultiLineTupleTypeElements = 657,\n UnionTypeConstituents = 516,\n IntersectionTypeConstituents = 520,\n ObjectBindingPatternElements = 525136,\n ArrayBindingPatternElements = 524880,\n ObjectLiteralExpressionProperties = 526226,\n ImportAttributes = 526226,\n /** @deprecated */ ImportClauseEntries = 526226,\n ArrayLiteralExpressionElements = 8914,\n CommaListElements = 528,\n CallExpressionArguments = 2576,\n NewExpressionArguments = 18960,\n TemplateExpressionSpans = 262144,\n SingleLineBlockStatements = 768,\n MultiLineBlockStatements = 129,\n VariableDeclarationList = 528,\n SingleLineFunctionBodyStatements = 768,\n MultiLineFunctionBodyStatements = 1,\n ClassHeritageClauses = 0,\n ClassMembers = 129,\n InterfaceMembers = 129,\n EnumMembers = 145,\n CaseBlockClauses = 129,\n NamedImportsOrExportsElements = 525136,\n JsxElementOrFragmentChildren = 262144,\n JsxElementAttributes = 262656,\n CaseOrDefaultClauseStatements = 163969,\n HeritageClauseTypes = 528,\n SourceFileStatements = 131073,\n Decorators = 2146305,\n TypeArguments = 53776,\n TypeParameters = 53776,\n Parameters = 2576,\n IndexSignatureParameters = 8848,\n JSDocComment = 33,\n }\n enum JSDocParsingMode {\n /**\n * Always parse JSDoc comments and include them in the AST.\n *\n * This is the default if no mode is provided.\n */\n ParseAll = 0,\n /**\n * Never parse JSDoc comments, mo matter the file type.\n */\n ParseNone = 1,\n /**\n * Parse only JSDoc comments which are needed to provide correct type errors.\n *\n * This will always parse JSDoc in non-TS files, but only parse JSDoc comments\n * containing `@see` and `@link` in TS files.\n */\n ParseForTypeErrors = 2,\n /**\n * Parse only JSDoc comments which are needed to provide correct type info.\n *\n * This will always parse JSDoc in non-TS files, but never in TS files.\n *\n * Note: Do not use this mode if you require accurate type errors; use {@link ParseForTypeErrors} instead.\n */\n ParseForTypeInfo = 3,\n }\n interface UserPreferences {\n readonly disableSuggestions?: boolean;\n readonly quotePreference?: \"auto\" | \"double\" | \"single\";\n /**\n * If enabled, TypeScript will search through all external modules' exports and add them to the completions list.\n * This affects lone identifier completions but not completions on the right hand side of `obj.`.\n */\n readonly includeCompletionsForModuleExports?: boolean;\n /**\n * Enables auto-import-style completions on partially-typed import statements. E.g., allows\n * `import write|` to be completed to `import { writeFile } from \"fs\"`.\n */\n readonly includeCompletionsForImportStatements?: boolean;\n /**\n * Allows completions to be formatted with snippet text, indicated by `CompletionItem[\"isSnippet\"]`.\n */\n readonly includeCompletionsWithSnippetText?: boolean;\n /**\n * Unless this option is `false`, or `includeCompletionsWithInsertText` is not enabled,\n * member completion lists triggered with `.` will include entries on potentially-null and potentially-undefined\n * values, with insertion text to replace preceding `.` tokens with `?.`.\n */\n readonly includeAutomaticOptionalChainCompletions?: boolean;\n /**\n * If enabled, the completion list will include completions with invalid identifier names.\n * For those entries, The `insertText` and `replacementSpan` properties will be set to change from `.x` property access to `[\"x\"]`.\n */\n readonly includeCompletionsWithInsertText?: boolean;\n /**\n * If enabled, completions for class members (e.g. methods and properties) will include\n * a whole declaration for the member.\n * E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of\n * `class A { foo }`.\n */\n readonly includeCompletionsWithClassMemberSnippets?: boolean;\n /**\n * If enabled, object literal methods will have a method declaration completion entry in addition\n * to the regular completion entry containing just the method name.\n * E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`,\n * in addition to `const objectLiteral: T = { foo }`.\n */\n readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean;\n /**\n * Indicates whether {@link CompletionEntry.labelDetails completion entry label details} are supported.\n * If not, contents of `labelDetails` may be included in the {@link CompletionEntry.name} property.\n */\n readonly useLabelDetailsInCompletionEntries?: boolean;\n readonly allowIncompleteCompletions?: boolean;\n readonly importModuleSpecifierPreference?: \"shortest\" | \"project-relative\" | \"relative\" | \"non-relative\";\n /** Determines whether we import `foo/index.ts` as \"foo\", \"foo/index\", or \"foo/index.js\" */\n readonly importModuleSpecifierEnding?: \"auto\" | \"minimal\" | \"index\" | \"js\";\n readonly allowTextChangesInNewFiles?: boolean;\n readonly providePrefixAndSuffixTextForRename?: boolean;\n readonly includePackageJsonAutoImports?: \"auto\" | \"on\" | \"off\";\n readonly provideRefactorNotApplicableReason?: boolean;\n readonly jsxAttributeCompletionStyle?: \"auto\" | \"braces\" | \"none\";\n readonly includeInlayParameterNameHints?: \"none\" | \"literals\" | \"all\";\n readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean;\n readonly includeInlayFunctionParameterTypeHints?: boolean;\n readonly includeInlayVariableTypeHints?: boolean;\n readonly includeInlayVariableTypeHintsWhenTypeMatchesName?: boolean;\n readonly includeInlayPropertyDeclarationTypeHints?: boolean;\n readonly includeInlayFunctionLikeReturnTypeHints?: boolean;\n readonly includeInlayEnumMemberValueHints?: boolean;\n readonly interactiveInlayHints?: boolean;\n readonly allowRenameOfImportPath?: boolean;\n readonly autoImportFileExcludePatterns?: string[];\n readonly autoImportSpecifierExcludeRegexes?: string[];\n readonly preferTypeOnlyAutoImports?: boolean;\n /**\n * Indicates whether imports should be organized in a case-insensitive manner.\n */\n readonly organizeImportsIgnoreCase?: \"auto\" | boolean;\n /**\n * Indicates whether imports should be organized via an \"ordinal\" (binary) comparison using the numeric value\n * of their code points, or via \"unicode\" collation (via the\n * [Unicode Collation Algorithm](https://unicode.org/reports/tr10/#Scope)) using rules associated with the locale\n * specified in {@link organizeImportsCollationLocale}.\n *\n * Default: `\"ordinal\"`.\n */\n readonly organizeImportsCollation?: \"ordinal\" | \"unicode\";\n /**\n * Indicates the locale to use for \"unicode\" collation. If not specified, the locale `\"en\"` is used as an invariant\n * for the sake of consistent sorting. Use `\"auto\"` to use the detected UI locale.\n *\n * This preference is ignored if {@link organizeImportsCollation} is not `\"unicode\"`.\n *\n * Default: `\"en\"`\n */\n readonly organizeImportsLocale?: string;\n /**\n * Indicates whether numeric collation should be used for digit sequences in strings. When `true`, will collate\n * strings such that `a1z < a2z < a100z`. When `false`, will collate strings such that `a1z < a100z < a2z`.\n *\n * This preference is ignored if {@link organizeImportsCollation} is not `\"unicode\"`.\n *\n * Default: `false`\n */\n readonly organizeImportsNumericCollation?: boolean;\n /**\n * Indicates whether accents and other diacritic marks are considered unequal for the purpose of collation. When\n * `true`, characters with accents and other diacritics will be collated in the order defined by the locale specified\n * in {@link organizeImportsCollationLocale}.\n *\n * This preference is ignored if {@link organizeImportsCollation} is not `\"unicode\"`.\n *\n * Default: `true`\n */\n readonly organizeImportsAccentCollation?: boolean;\n /**\n * Indicates whether upper case or lower case should sort first. When `false`, the default order for the locale\n * specified in {@link organizeImportsCollationLocale} is used.\n *\n * This preference is ignored if {@link organizeImportsCollation} is not `\"unicode\"`. This preference is also\n * ignored if we are using case-insensitive sorting, which occurs when {@link organizeImportsIgnoreCase} is `true`,\n * or if {@link organizeImportsIgnoreCase} is `\"auto\"` and the auto-detected case sensitivity is determined to be\n * case-insensitive.\n *\n * Default: `false`\n */\n readonly organizeImportsCaseFirst?: \"upper\" | \"lower\" | false;\n /**\n * Indicates where named type-only imports should sort. \"inline\" sorts named imports without regard to if the import is\n * type-only.\n *\n * Default: `last`\n */\n readonly organizeImportsTypeOrder?: OrganizeImportsTypeOrder;\n /**\n * Indicates whether to exclude standard library and node_modules file symbols from navTo results.\n */\n readonly excludeLibrarySymbolsInNavTo?: boolean;\n readonly lazyConfiguredProjectsFromExternalProject?: boolean;\n readonly displayPartsForJSDoc?: boolean;\n readonly generateReturnInDocTemplate?: boolean;\n readonly disableLineTextInReferences?: boolean;\n /**\n * A positive integer indicating the maximum length of a hover text before it is truncated.\n *\n * Default: `500`\n */\n readonly maximumHoverLength?: number;\n }\n type OrganizeImportsTypeOrder = \"last\" | \"inline\" | \"first\";\n /** Represents a bigint literal value without requiring bigint support */\n interface PseudoBigInt {\n negative: boolean;\n base10Value: string;\n }\n enum FileWatcherEventKind {\n Created = 0,\n Changed = 1,\n Deleted = 2,\n }\n type FileWatcherCallback = (fileName: string, eventKind: FileWatcherEventKind, modifiedTime?: Date) => void;\n type DirectoryWatcherCallback = (fileName: string) => void;\n type BufferEncoding = \"ascii\" | \"utf8\" | \"utf-8\" | \"utf16le\" | \"ucs2\" | \"ucs-2\" | \"base64\" | \"latin1\" | \"binary\" | \"hex\";\n interface System {\n args: string[];\n newLine: string;\n useCaseSensitiveFileNames: boolean;\n write(s: string): void;\n writeOutputIsTTY?(): boolean;\n getWidthOfTerminal?(): number;\n readFile(path: string, encoding?: string): string | undefined;\n getFileSize?(path: string): number;\n writeFile(path: string, data: string, writeByteOrderMark?: boolean): void;\n /**\n * @pollingInterval - this parameter is used in polling-based watchers and ignored in watchers that\n * use native OS file watching\n */\n watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher;\n watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher;\n resolvePath(path: string): string;\n fileExists(path: string): boolean;\n directoryExists(path: string): boolean;\n createDirectory(path: string): void;\n getExecutingFilePath(): string;\n getCurrentDirectory(): string;\n getDirectories(path: string): string[];\n readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];\n getModifiedTime?(path: string): Date | undefined;\n setModifiedTime?(path: string, time: Date): void;\n deleteFile?(path: string): void;\n /**\n * A good implementation is node.js' `crypto.createHash`. (https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm)\n */\n createHash?(data: string): string;\n /** This must be cryptographically secure. Only implement this method using `crypto.createHash(\"sha256\")`. */\n createSHA256Hash?(data: string): string;\n getMemoryUsage?(): number;\n exit(exitCode?: number): void;\n realpath?(path: string): string;\n setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any;\n clearTimeout?(timeoutId: any): void;\n clearScreen?(): void;\n base64decode?(input: string): string;\n base64encode?(input: string): string;\n }\n interface FileWatcher {\n close(): void;\n }\n let sys: System;\n function tokenToString(t: SyntaxKind): string | undefined;\n function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number;\n function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter;\n function isWhiteSpaceLike(ch: number): boolean;\n /** Does not include line breaks. For that, see isWhiteSpaceLike. */\n function isWhiteSpaceSingleLine(ch: number): boolean;\n function isLineBreak(ch: number): boolean;\n function couldStartTrivia(text: string, pos: number): boolean;\n function forEachLeadingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined;\n function forEachLeadingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined;\n function forEachTrailingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined;\n function forEachTrailingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined;\n function reduceEachLeadingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T, initial: U): U | undefined;\n function reduceEachTrailingCommentRange(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T, initial: U): U | undefined;\n function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined;\n function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined;\n /** Optionally, get the shebang */\n function getShebang(text: string): string | undefined;\n function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean;\n function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined, identifierVariant?: LanguageVariant): boolean;\n function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner;\n type ErrorCallback = (message: DiagnosticMessage, length: number, arg0?: any) => void;\n interface Scanner {\n /** @deprecated use {@link getTokenFullStart} */\n getStartPos(): number;\n getToken(): SyntaxKind;\n getTokenFullStart(): number;\n getTokenStart(): number;\n getTokenEnd(): number;\n /** @deprecated use {@link getTokenEnd} */\n getTextPos(): number;\n /** @deprecated use {@link getTokenStart} */\n getTokenPos(): number;\n getTokenText(): string;\n getTokenValue(): string;\n hasUnicodeEscape(): boolean;\n hasExtendedUnicodeEscape(): boolean;\n hasPrecedingLineBreak(): boolean;\n isIdentifier(): boolean;\n isReservedWord(): boolean;\n isUnterminated(): boolean;\n reScanGreaterToken(): SyntaxKind;\n reScanSlashToken(): SyntaxKind;\n reScanAsteriskEqualsToken(): SyntaxKind;\n reScanTemplateToken(isTaggedTemplate: boolean): SyntaxKind;\n /** @deprecated use {@link reScanTemplateToken}(false) */\n reScanTemplateHeadOrNoSubstitutionTemplate(): SyntaxKind;\n scanJsxIdentifier(): SyntaxKind;\n scanJsxAttributeValue(): SyntaxKind;\n reScanJsxAttributeValue(): SyntaxKind;\n reScanJsxToken(allowMultilineJsxText?: boolean): JsxTokenSyntaxKind;\n reScanLessThanToken(): SyntaxKind;\n reScanHashToken(): SyntaxKind;\n reScanQuestionToken(): SyntaxKind;\n reScanInvalidIdentifier(): SyntaxKind;\n scanJsxToken(): JsxTokenSyntaxKind;\n scanJsDocToken(): JSDocSyntaxKind;\n scan(): SyntaxKind;\n getText(): string;\n setText(text: string | undefined, start?: number, length?: number): void;\n setOnError(onError: ErrorCallback | undefined): void;\n setScriptTarget(scriptTarget: ScriptTarget): void;\n setLanguageVariant(variant: LanguageVariant): void;\n setScriptKind(scriptKind: ScriptKind): void;\n setJSDocParsingMode(kind: JSDocParsingMode): void;\n /** @deprecated use {@link resetTokenState} */\n setTextPos(textPos: number): void;\n resetTokenState(pos: number): void;\n lookAhead(callback: () => T): T;\n scanRange(start: number, length: number, callback: () => T): T;\n tryScan(callback: () => T): T;\n }\n function isExternalModuleNameRelative(moduleName: string): boolean;\n function sortAndDeduplicateDiagnostics(diagnostics: readonly T[]): SortedReadonlyArray;\n function getDefaultLibFileName(options: CompilerOptions): string;\n function textSpanEnd(span: TextSpan): number;\n function textSpanIsEmpty(span: TextSpan): boolean;\n function textSpanContainsPosition(span: TextSpan, position: number): boolean;\n function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean;\n function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean;\n function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan | undefined;\n function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean;\n function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean;\n function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean;\n function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean;\n function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan | undefined;\n function createTextSpan(start: number, length: number): TextSpan;\n function createTextSpanFromBounds(start: number, end: number): TextSpan;\n function textChangeRangeNewSpan(range: TextChangeRange): TextSpan;\n function textChangeRangeIsUnchanged(range: TextChangeRange): boolean;\n function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange;\n /**\n * Called to merge all the changes that occurred across several versions of a script snapshot\n * into a single change. i.e. if a user keeps making successive edits to a script we will\n * have a text change from V1 to V2, V2 to V3, ..., Vn.\n *\n * This function will then merge those changes into a single change range valid between V1 and\n * Vn.\n */\n function collapseTextChangeRangesAcrossMultipleVersions(changes: readonly TextChangeRange[]): TextChangeRange;\n function getTypeParameterOwner(d: Declaration): Declaration | undefined;\n function isParameterPropertyDeclaration(node: Node, parent: Node): node is ParameterPropertyDeclaration;\n function isEmptyBindingPattern(node: BindingName): node is BindingPattern;\n function isEmptyBindingElement(node: BindingElement | ArrayBindingElement): boolean;\n function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration;\n function getCombinedModifierFlags(node: Declaration): ModifierFlags;\n function getCombinedNodeFlags(node: Node): NodeFlags;\n /**\n * Checks to see if the locale is in the appropriate format,\n * and if it is, attempts to set the appropriate language.\n */\n function validateLocaleAndSetLanguage(locale: string, sys: {\n getExecutingFilePath(): string;\n resolvePath(path: string): string;\n fileExists(fileName: string): boolean;\n readFile(fileName: string): string | undefined;\n }, errors?: Diagnostic[]): void;\n function getOriginalNode(node: Node): Node;\n function getOriginalNode(node: Node, nodeTest: (node: Node) => node is T): T;\n function getOriginalNode(node: Node | undefined): Node | undefined;\n function getOriginalNode(node: Node | undefined, nodeTest: (node: Node) => node is T): T | undefined;\n /**\n * Iterates through the parent chain of a node and performs the callback on each parent until the callback\n * returns a truthy value, then returns that value.\n * If no such value is found, it applies the callback until the parent pointer is undefined or the callback returns \"quit\"\n * At that point findAncestor returns undefined.\n */\n function findAncestor(node: Node | undefined, callback: (element: Node) => element is T): T | undefined;\n function findAncestor(node: Node | undefined, callback: (element: Node) => boolean | \"quit\"): Node | undefined;\n /**\n * Gets a value indicating whether a node originated in the parse tree.\n *\n * @param node The node to test.\n */\n function isParseTreeNode(node: Node): boolean;\n /**\n * Gets the original parse tree node for a node.\n *\n * @param node The original node.\n * @returns The original parse tree node if found; otherwise, undefined.\n */\n function getParseTreeNode(node: Node | undefined): Node | undefined;\n /**\n * Gets the original parse tree node for a node.\n *\n * @param node The original node.\n * @param nodeTest A callback used to ensure the correct type of parse tree node is returned.\n * @returns The original parse tree node if found; otherwise, undefined.\n */\n function getParseTreeNode(node: T | undefined, nodeTest?: (node: Node) => node is T): T | undefined;\n /** Add an extra underscore to identifiers that start with two underscores to avoid issues with magic names like '__proto__' */\n function escapeLeadingUnderscores(identifier: string): __String;\n /**\n * Remove extra underscore from escaped identifier text content.\n *\n * @param identifier The escaped identifier text.\n * @returns The unescaped identifier text.\n */\n function unescapeLeadingUnderscores(identifier: __String): string;\n function idText(identifierOrPrivateName: Identifier | PrivateIdentifier): string;\n /**\n * If the text of an Identifier matches a keyword (including contextual and TypeScript-specific keywords), returns the\n * SyntaxKind for the matching keyword.\n */\n function identifierToKeywordKind(node: Identifier): KeywordSyntaxKind | undefined;\n function symbolName(symbol: Symbol): string;\n function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | PrivateIdentifier | undefined;\n function getNameOfDeclaration(declaration: Declaration | Expression | undefined): DeclarationName | undefined;\n function getDecorators(node: HasDecorators): readonly Decorator[] | undefined;\n function getModifiers(node: HasModifiers): readonly Modifier[] | undefined;\n /**\n * Gets the JSDoc parameter tags for the node if present.\n *\n * @remarks Returns any JSDoc param tag whose name matches the provided\n * parameter, whether a param tag on a containing function\n * expression, or a param tag on a variable declaration whose\n * initializer is the containing function. The tags closest to the\n * node are returned first, so in the previous example, the param\n * tag on the containing function expression would be first.\n *\n * For binding patterns, parameter tags are matched by position.\n */\n function getJSDocParameterTags(param: ParameterDeclaration): readonly JSDocParameterTag[];\n /**\n * Gets the JSDoc type parameter tags for the node if present.\n *\n * @remarks Returns any JSDoc template tag whose names match the provided\n * parameter, whether a template tag on a containing function\n * expression, or a template tag on a variable declaration whose\n * initializer is the containing function. The tags closest to the\n * node are returned first, so in the previous example, the template\n * tag on the containing function expression would be first.\n */\n function getJSDocTypeParameterTags(param: TypeParameterDeclaration): readonly JSDocTemplateTag[];\n /**\n * Return true if the node has JSDoc parameter tags.\n *\n * @remarks Includes parameter tags that are not directly on the node,\n * for example on a variable declaration whose initializer is a function expression.\n */\n function hasJSDocParameterTags(node: FunctionLikeDeclaration | SignatureDeclaration): boolean;\n /** Gets the JSDoc augments tag for the node if present */\n function getJSDocAugmentsTag(node: Node): JSDocAugmentsTag | undefined;\n /** Gets the JSDoc implements tags for the node if present */\n function getJSDocImplementsTags(node: Node): readonly JSDocImplementsTag[];\n /** Gets the JSDoc class tag for the node if present */\n function getJSDocClassTag(node: Node): JSDocClassTag | undefined;\n /** Gets the JSDoc public tag for the node if present */\n function getJSDocPublicTag(node: Node): JSDocPublicTag | undefined;\n /** Gets the JSDoc private tag for the node if present */\n function getJSDocPrivateTag(node: Node): JSDocPrivateTag | undefined;\n /** Gets the JSDoc protected tag for the node if present */\n function getJSDocProtectedTag(node: Node): JSDocProtectedTag | undefined;\n /** Gets the JSDoc protected tag for the node if present */\n function getJSDocReadonlyTag(node: Node): JSDocReadonlyTag | undefined;\n function getJSDocOverrideTagNoCache(node: Node): JSDocOverrideTag | undefined;\n /** Gets the JSDoc deprecated tag for the node if present */\n function getJSDocDeprecatedTag(node: Node): JSDocDeprecatedTag | undefined;\n /** Gets the JSDoc enum tag for the node if present */\n function getJSDocEnumTag(node: Node): JSDocEnumTag | undefined;\n /** Gets the JSDoc this tag for the node if present */\n function getJSDocThisTag(node: Node): JSDocThisTag | undefined;\n /** Gets the JSDoc return tag for the node if present */\n function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined;\n /** Gets the JSDoc template tag for the node if present */\n function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined;\n function getJSDocSatisfiesTag(node: Node): JSDocSatisfiesTag | undefined;\n /** Gets the JSDoc type tag for the node if present and valid */\n function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined;\n /**\n * Gets the type node for the node if provided via JSDoc.\n *\n * @remarks The search includes any JSDoc param tag that relates\n * to the provided parameter, for example a type tag on the\n * parameter itself, or a param tag on a containing function\n * expression, or a param tag on a variable declaration whose\n * initializer is the containing function. The tags closest to the\n * node are examined first, so in the previous example, the type\n * tag directly on the node would be returned.\n */\n function getJSDocType(node: Node): TypeNode | undefined;\n /**\n * Gets the return type node for the node if provided via JSDoc return tag or type tag.\n *\n * @remarks `getJSDocReturnTag` just gets the whole JSDoc tag. This function\n * gets the type from inside the braces, after the fat arrow, etc.\n */\n function getJSDocReturnType(node: Node): TypeNode | undefined;\n /** Get all JSDoc tags related to a node, including those on parent nodes. */\n function getJSDocTags(node: Node): readonly JSDocTag[];\n /** Gets all JSDoc tags that match a specified predicate */\n function getAllJSDocTags(node: Node, predicate: (tag: JSDocTag) => tag is T): readonly T[];\n /** Gets all JSDoc tags of a specified kind */\n function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): readonly JSDocTag[];\n /** Gets the text of a jsdoc comment, flattening links to their text. */\n function getTextOfJSDocComment(comment?: string | NodeArray): string | undefined;\n /**\n * Gets the effective type parameters. If the node was parsed in a\n * JavaScript file, gets the type parameters from the `@template` tag from JSDoc.\n *\n * This does *not* return type parameters from a jsdoc reference to a generic type, eg\n *\n * type Id = (x: T) => T\n * /** @type {Id} /\n * function id(x) { return x }\n */\n function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): readonly TypeParameterDeclaration[];\n function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined;\n function isMemberName(node: Node): node is MemberName;\n function isPropertyAccessChain(node: Node): node is PropertyAccessChain;\n function isElementAccessChain(node: Node): node is ElementAccessChain;\n function isCallChain(node: Node): node is CallChain;\n function isOptionalChain(node: Node): node is PropertyAccessChain | ElementAccessChain | CallChain | NonNullChain;\n function isNullishCoalesce(node: Node): boolean;\n function isConstTypeReference(node: Node): boolean;\n function skipPartiallyEmittedExpressions(node: Expression): Expression;\n function skipPartiallyEmittedExpressions(node: Node): Node;\n function isNonNullChain(node: Node): node is NonNullChain;\n function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement;\n function isNamedExportBindings(node: Node): node is NamedExportBindings;\n function isJSDocPropertyLikeTag(node: Node): node is JSDocPropertyLikeTag;\n /**\n * True if kind is of some token syntax kind.\n * For example, this is true for an IfKeyword but not for an IfStatement.\n * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail.\n */\n function isTokenKind(kind: SyntaxKind): boolean;\n /**\n * True if node is of some token syntax kind.\n * For example, this is true for an IfKeyword but not for an IfStatement.\n * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail.\n */\n function isToken(n: Node): boolean;\n function isLiteralExpression(node: Node): node is LiteralExpression;\n function isTemplateLiteralToken(node: Node): node is TemplateLiteralToken;\n function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail;\n function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier;\n function isTypeOnlyImportDeclaration(node: Node): node is TypeOnlyImportDeclaration;\n function isTypeOnlyExportDeclaration(node: Node): node is TypeOnlyExportDeclaration;\n function isTypeOnlyImportOrExportDeclaration(node: Node): node is TypeOnlyAliasDeclaration;\n function isPartOfTypeOnlyImportOrExportDeclaration(node: Node): boolean;\n function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken;\n function isImportAttributeName(node: Node): node is ImportAttributeName;\n function isModifier(node: Node): node is Modifier;\n function isEntityName(node: Node): node is EntityName;\n function isPropertyName(node: Node): node is PropertyName;\n function isBindingName(node: Node): node is BindingName;\n function isFunctionLike(node: Node | undefined): node is SignatureDeclaration;\n function isClassElement(node: Node): node is ClassElement;\n function isClassLike(node: Node): node is ClassLikeDeclaration;\n function isAccessor(node: Node): node is AccessorDeclaration;\n function isAutoAccessorPropertyDeclaration(node: Node): node is AutoAccessorPropertyDeclaration;\n function isModifierLike(node: Node): node is ModifierLike;\n function isTypeElement(node: Node): node is TypeElement;\n function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement;\n function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike;\n /**\n * Node test that determines whether a node is a valid type node.\n * This differs from the `isPartOfTypeNode` function which determines whether a node is *part*\n * of a TypeNode.\n */\n function isTypeNode(node: Node): node is TypeNode;\n function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode;\n function isArrayBindingElement(node: Node): node is ArrayBindingElement;\n function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName;\n function isCallLikeExpression(node: Node): node is CallLikeExpression;\n function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression;\n function isTemplateLiteral(node: Node): node is TemplateLiteral;\n function isLeftHandSideExpression(node: Node): node is LeftHandSideExpression;\n function isLiteralTypeLiteral(node: Node): node is NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression;\n /**\n * Determines whether a node is an expression based only on its kind.\n */\n function isExpression(node: Node): node is Expression;\n function isAssertionExpression(node: Node): node is AssertionExpression;\n function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement;\n function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement;\n function isConciseBody(node: Node): node is ConciseBody;\n function isForInitializer(node: Node): node is ForInitializer;\n function isModuleBody(node: Node): node is ModuleBody;\n function isNamedImportBindings(node: Node): node is NamedImportBindings;\n function isDeclarationStatement(node: Node): node is DeclarationStatement;\n function isStatement(node: Node): node is Statement;\n function isModuleReference(node: Node): node is ModuleReference;\n function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression;\n function isJsxChild(node: Node): node is JsxChild;\n function isJsxAttributeLike(node: Node): node is JsxAttributeLike;\n function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression;\n function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement;\n function isJsxCallLike(node: Node): node is JsxCallLike;\n function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause;\n /** True if node is of a kind that may contain comment text. */\n function isJSDocCommentContainingNode(node: Node): boolean;\n function isSetAccessor(node: Node): node is SetAccessorDeclaration;\n function isGetAccessor(node: Node): node is GetAccessorDeclaration;\n /** True if has initializer node attached to it. */\n function hasOnlyExpressionInitializer(node: Node): node is HasExpressionInitializer;\n function isObjectLiteralElement(node: Node): node is ObjectLiteralElement;\n function isStringLiteralLike(node: Node | FileReference): node is StringLiteralLike;\n function isJSDocLinkLike(node: Node): node is JSDocLink | JSDocLinkCode | JSDocLinkPlain;\n function hasRestParameter(s: SignatureDeclaration | JSDocSignature): boolean;\n function isRestParameter(node: ParameterDeclaration | JSDocParameterTag): boolean;\n function isInternalDeclaration(node: Node, sourceFile?: SourceFile): boolean;\n const unchangedTextChangeRange: TextChangeRange;\n type ParameterPropertyDeclaration = ParameterDeclaration & {\n parent: ConstructorDeclaration;\n name: Identifier;\n };\n function isPartOfTypeNode(node: Node): boolean;\n /**\n * This function checks multiple locations for JSDoc comments that apply to a host node.\n * At each location, the whole comment may apply to the node, or only a specific tag in\n * the comment. In the first case, location adds the entire {@link JSDoc} object. In the\n * second case, it adds the applicable {@link JSDocTag}.\n *\n * For example, a JSDoc comment before a parameter adds the entire {@link JSDoc}. But a\n * `@param` tag on the parent function only adds the {@link JSDocTag} for the `@param`.\n *\n * ```ts\n * /** JSDoc will be returned for `a` *\\/\n * const a = 0\n * /**\n * * Entire JSDoc will be returned for `b`\n * * @param c JSDocTag will be returned for `c`\n * *\\/\n * function b(/** JSDoc will be returned for `c` *\\/ c) {}\n * ```\n */\n function getJSDocCommentsAndTags(hostNode: Node): readonly (JSDoc | JSDocTag)[];\n /**\n * Create an external source map source file reference\n */\n function createSourceMapSource(fileName: string, text: string, skipTrivia?: (pos: number) => number): SourceMapSource;\n function setOriginalNode(node: T, original: Node | undefined): T;\n const factory: NodeFactory;\n /**\n * Clears any `EmitNode` entries from parse-tree nodes.\n * @param sourceFile A source file.\n */\n function disposeEmitNodes(sourceFile: SourceFile | undefined): void;\n /**\n * Sets flags that control emit behavior of a node.\n */\n function setEmitFlags(node: T, emitFlags: EmitFlags): T;\n /**\n * Gets a custom text range to use when emitting source maps.\n */\n function getSourceMapRange(node: Node): SourceMapRange;\n /**\n * Sets a custom text range to use when emitting source maps.\n */\n function setSourceMapRange(node: T, range: SourceMapRange | undefined): T;\n /**\n * Gets the TextRange to use for source maps for a token of a node.\n */\n function getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange | undefined;\n /**\n * Sets the TextRange to use for source maps for a token of a node.\n */\n function setTokenSourceMapRange(node: T, token: SyntaxKind, range: SourceMapRange | undefined): T;\n /**\n * Gets a custom text range to use when emitting comments.\n */\n function getCommentRange(node: Node): TextRange;\n /**\n * Sets a custom text range to use when emitting comments.\n */\n function setCommentRange(node: T, range: TextRange): T;\n function getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined;\n function setSyntheticLeadingComments(node: T, comments: SynthesizedComment[] | undefined): T;\n function addSyntheticLeadingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T;\n function getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined;\n function setSyntheticTrailingComments(node: T, comments: SynthesizedComment[] | undefined): T;\n function addSyntheticTrailingComment(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T;\n function moveSyntheticComments(node: T, original: Node): T;\n /**\n * Gets the constant value to emit for an expression representing an enum.\n */\n function getConstantValue(node: AccessExpression): string | number | undefined;\n /**\n * Sets the constant value to emit for an expression.\n */\n function setConstantValue(node: AccessExpression, value: string | number): AccessExpression;\n /**\n * Adds an EmitHelper to a node.\n */\n function addEmitHelper(node: T, helper: EmitHelper): T;\n /**\n * Add EmitHelpers to a node.\n */\n function addEmitHelpers(node: T, helpers: EmitHelper[] | undefined): T;\n /**\n * Removes an EmitHelper from a node.\n */\n function removeEmitHelper(node: Node, helper: EmitHelper): boolean;\n /**\n * Gets the EmitHelpers of a node.\n */\n function getEmitHelpers(node: Node): EmitHelper[] | undefined;\n /**\n * Moves matching emit helpers from a source node to a target node.\n */\n function moveEmitHelpers(source: Node, target: Node, predicate: (helper: EmitHelper) => boolean): void;\n function isNumericLiteral(node: Node): node is NumericLiteral;\n function isBigIntLiteral(node: Node): node is BigIntLiteral;\n function isStringLiteral(node: Node): node is StringLiteral;\n function isJsxText(node: Node): node is JsxText;\n function isRegularExpressionLiteral(node: Node): node is RegularExpressionLiteral;\n function isNoSubstitutionTemplateLiteral(node: Node): node is NoSubstitutionTemplateLiteral;\n function isTemplateHead(node: Node): node is TemplateHead;\n function isTemplateMiddle(node: Node): node is TemplateMiddle;\n function isTemplateTail(node: Node): node is TemplateTail;\n function isDotDotDotToken(node: Node): node is DotDotDotToken;\n function isPlusToken(node: Node): node is PlusToken;\n function isMinusToken(node: Node): node is MinusToken;\n function isAsteriskToken(node: Node): node is AsteriskToken;\n function isExclamationToken(node: Node): node is ExclamationToken;\n function isQuestionToken(node: Node): node is QuestionToken;\n function isColonToken(node: Node): node is ColonToken;\n function isQuestionDotToken(node: Node): node is QuestionDotToken;\n function isEqualsGreaterThanToken(node: Node): node is EqualsGreaterThanToken;\n function isIdentifier(node: Node): node is Identifier;\n function isPrivateIdentifier(node: Node): node is PrivateIdentifier;\n function isAssertsKeyword(node: Node): node is AssertsKeyword;\n function isAwaitKeyword(node: Node): node is AwaitKeyword;\n function isQualifiedName(node: Node): node is QualifiedName;\n function isComputedPropertyName(node: Node): node is ComputedPropertyName;\n function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration;\n function isParameter(node: Node): node is ParameterDeclaration;\n function isDecorator(node: Node): node is Decorator;\n function isPropertySignature(node: Node): node is PropertySignature;\n function isPropertyDeclaration(node: Node): node is PropertyDeclaration;\n function isMethodSignature(node: Node): node is MethodSignature;\n function isMethodDeclaration(node: Node): node is MethodDeclaration;\n function isClassStaticBlockDeclaration(node: Node): node is ClassStaticBlockDeclaration;\n function isConstructorDeclaration(node: Node): node is ConstructorDeclaration;\n function isGetAccessorDeclaration(node: Node): node is GetAccessorDeclaration;\n function isSetAccessorDeclaration(node: Node): node is SetAccessorDeclaration;\n function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration;\n function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration;\n function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration;\n function isTypePredicateNode(node: Node): node is TypePredicateNode;\n function isTypeReferenceNode(node: Node): node is TypeReferenceNode;\n function isFunctionTypeNode(node: Node): node is FunctionTypeNode;\n function isConstructorTypeNode(node: Node): node is ConstructorTypeNode;\n function isTypeQueryNode(node: Node): node is TypeQueryNode;\n function isTypeLiteralNode(node: Node): node is TypeLiteralNode;\n function isArrayTypeNode(node: Node): node is ArrayTypeNode;\n function isTupleTypeNode(node: Node): node is TupleTypeNode;\n function isNamedTupleMember(node: Node): node is NamedTupleMember;\n function isOptionalTypeNode(node: Node): node is OptionalTypeNode;\n function isRestTypeNode(node: Node): node is RestTypeNode;\n function isUnionTypeNode(node: Node): node is UnionTypeNode;\n function isIntersectionTypeNode(node: Node): node is IntersectionTypeNode;\n function isConditionalTypeNode(node: Node): node is ConditionalTypeNode;\n function isInferTypeNode(node: Node): node is InferTypeNode;\n function isParenthesizedTypeNode(node: Node): node is ParenthesizedTypeNode;\n function isThisTypeNode(node: Node): node is ThisTypeNode;\n function isTypeOperatorNode(node: Node): node is TypeOperatorNode;\n function isIndexedAccessTypeNode(node: Node): node is IndexedAccessTypeNode;\n function isMappedTypeNode(node: Node): node is MappedTypeNode;\n function isLiteralTypeNode(node: Node): node is LiteralTypeNode;\n function isImportTypeNode(node: Node): node is ImportTypeNode;\n function isTemplateLiteralTypeSpan(node: Node): node is TemplateLiteralTypeSpan;\n function isTemplateLiteralTypeNode(node: Node): node is TemplateLiteralTypeNode;\n function isObjectBindingPattern(node: Node): node is ObjectBindingPattern;\n function isArrayBindingPattern(node: Node): node is ArrayBindingPattern;\n function isBindingElement(node: Node): node is BindingElement;\n function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression;\n function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression;\n function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression;\n function isElementAccessExpression(node: Node): node is ElementAccessExpression;\n function isCallExpression(node: Node): node is CallExpression;\n function isNewExpression(node: Node): node is NewExpression;\n function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression;\n function isTypeAssertionExpression(node: Node): node is TypeAssertion;\n function isParenthesizedExpression(node: Node): node is ParenthesizedExpression;\n function isFunctionExpression(node: Node): node is FunctionExpression;\n function isArrowFunction(node: Node): node is ArrowFunction;\n function isDeleteExpression(node: Node): node is DeleteExpression;\n function isTypeOfExpression(node: Node): node is TypeOfExpression;\n function isVoidExpression(node: Node): node is VoidExpression;\n function isAwaitExpression(node: Node): node is AwaitExpression;\n function isPrefixUnaryExpression(node: Node): node is PrefixUnaryExpression;\n function isPostfixUnaryExpression(node: Node): node is PostfixUnaryExpression;\n function isBinaryExpression(node: Node): node is BinaryExpression;\n function isConditionalExpression(node: Node): node is ConditionalExpression;\n function isTemplateExpression(node: Node): node is TemplateExpression;\n function isYieldExpression(node: Node): node is YieldExpression;\n function isSpreadElement(node: Node): node is SpreadElement;\n function isClassExpression(node: Node): node is ClassExpression;\n function isOmittedExpression(node: Node): node is OmittedExpression;\n function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments;\n function isAsExpression(node: Node): node is AsExpression;\n function isSatisfiesExpression(node: Node): node is SatisfiesExpression;\n function isNonNullExpression(node: Node): node is NonNullExpression;\n function isMetaProperty(node: Node): node is MetaProperty;\n function isSyntheticExpression(node: Node): node is SyntheticExpression;\n function isPartiallyEmittedExpression(node: Node): node is PartiallyEmittedExpression;\n function isCommaListExpression(node: Node): node is CommaListExpression;\n function isTemplateSpan(node: Node): node is TemplateSpan;\n function isSemicolonClassElement(node: Node): node is SemicolonClassElement;\n function isBlock(node: Node): node is Block;\n function isVariableStatement(node: Node): node is VariableStatement;\n function isEmptyStatement(node: Node): node is EmptyStatement;\n function isExpressionStatement(node: Node): node is ExpressionStatement;\n function isIfStatement(node: Node): node is IfStatement;\n function isDoStatement(node: Node): node is DoStatement;\n function isWhileStatement(node: Node): node is WhileStatement;\n function isForStatement(node: Node): node is ForStatement;\n function isForInStatement(node: Node): node is ForInStatement;\n function isForOfStatement(node: Node): node is ForOfStatement;\n function isContinueStatement(node: Node): node is ContinueStatement;\n function isBreakStatement(node: Node): node is BreakStatement;\n function isReturnStatement(node: Node): node is ReturnStatement;\n function isWithStatement(node: Node): node is WithStatement;\n function isSwitchStatement(node: Node): node is SwitchStatement;\n function isLabeledStatement(node: Node): node is LabeledStatement;\n function isThrowStatement(node: Node): node is ThrowStatement;\n function isTryStatement(node: Node): node is TryStatement;\n function isDebuggerStatement(node: Node): node is DebuggerStatement;\n function isVariableDeclaration(node: Node): node is VariableDeclaration;\n function isVariableDeclarationList(node: Node): node is VariableDeclarationList;\n function isFunctionDeclaration(node: Node): node is FunctionDeclaration;\n function isClassDeclaration(node: Node): node is ClassDeclaration;\n function isInterfaceDeclaration(node: Node): node is InterfaceDeclaration;\n function isTypeAliasDeclaration(node: Node): node is TypeAliasDeclaration;\n function isEnumDeclaration(node: Node): node is EnumDeclaration;\n function isModuleDeclaration(node: Node): node is ModuleDeclaration;\n function isModuleBlock(node: Node): node is ModuleBlock;\n function isCaseBlock(node: Node): node is CaseBlock;\n function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration;\n function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration;\n function isImportDeclaration(node: Node): node is ImportDeclaration;\n function isImportClause(node: Node): node is ImportClause;\n function isImportTypeAssertionContainer(node: Node): node is ImportTypeAssertionContainer;\n /** @deprecated */\n function isAssertClause(node: Node): node is AssertClause;\n /** @deprecated */\n function isAssertEntry(node: Node): node is AssertEntry;\n function isImportAttributes(node: Node): node is ImportAttributes;\n function isImportAttribute(node: Node): node is ImportAttribute;\n function isNamespaceImport(node: Node): node is NamespaceImport;\n function isNamespaceExport(node: Node): node is NamespaceExport;\n function isNamedImports(node: Node): node is NamedImports;\n function isImportSpecifier(node: Node): node is ImportSpecifier;\n function isExportAssignment(node: Node): node is ExportAssignment;\n function isExportDeclaration(node: Node): node is ExportDeclaration;\n function isNamedExports(node: Node): node is NamedExports;\n function isExportSpecifier(node: Node): node is ExportSpecifier;\n function isModuleExportName(node: Node): node is ModuleExportName;\n function isMissingDeclaration(node: Node): node is MissingDeclaration;\n function isNotEmittedStatement(node: Node): node is NotEmittedStatement;\n function isExternalModuleReference(node: Node): node is ExternalModuleReference;\n function isJsxElement(node: Node): node is JsxElement;\n function isJsxSelfClosingElement(node: Node): node is JsxSelfClosingElement;\n function isJsxOpeningElement(node: Node): node is JsxOpeningElement;\n function isJsxClosingElement(node: Node): node is JsxClosingElement;\n function isJsxFragment(node: Node): node is JsxFragment;\n function isJsxOpeningFragment(node: Node): node is JsxOpeningFragment;\n function isJsxClosingFragment(node: Node): node is JsxClosingFragment;\n function isJsxAttribute(node: Node): node is JsxAttribute;\n function isJsxAttributes(node: Node): node is JsxAttributes;\n function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute;\n function isJsxExpression(node: Node): node is JsxExpression;\n function isJsxNamespacedName(node: Node): node is JsxNamespacedName;\n function isCaseClause(node: Node): node is CaseClause;\n function isDefaultClause(node: Node): node is DefaultClause;\n function isHeritageClause(node: Node): node is HeritageClause;\n function isCatchClause(node: Node): node is CatchClause;\n function isPropertyAssignment(node: Node): node is PropertyAssignment;\n function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment;\n function isSpreadAssignment(node: Node): node is SpreadAssignment;\n function isEnumMember(node: Node): node is EnumMember;\n function isSourceFile(node: Node): node is SourceFile;\n function isBundle(node: Node): node is Bundle;\n function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression;\n function isJSDocNameReference(node: Node): node is JSDocNameReference;\n function isJSDocMemberName(node: Node): node is JSDocMemberName;\n function isJSDocLink(node: Node): node is JSDocLink;\n function isJSDocLinkCode(node: Node): node is JSDocLinkCode;\n function isJSDocLinkPlain(node: Node): node is JSDocLinkPlain;\n function isJSDocAllType(node: Node): node is JSDocAllType;\n function isJSDocUnknownType(node: Node): node is JSDocUnknownType;\n function isJSDocNullableType(node: Node): node is JSDocNullableType;\n function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType;\n function isJSDocOptionalType(node: Node): node is JSDocOptionalType;\n function isJSDocFunctionType(node: Node): node is JSDocFunctionType;\n function isJSDocVariadicType(node: Node): node is JSDocVariadicType;\n function isJSDocNamepathType(node: Node): node is JSDocNamepathType;\n function isJSDoc(node: Node): node is JSDoc;\n function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral;\n function isJSDocSignature(node: Node): node is JSDocSignature;\n function isJSDocAugmentsTag(node: Node): node is JSDocAugmentsTag;\n function isJSDocAuthorTag(node: Node): node is JSDocAuthorTag;\n function isJSDocClassTag(node: Node): node is JSDocClassTag;\n function isJSDocCallbackTag(node: Node): node is JSDocCallbackTag;\n function isJSDocPublicTag(node: Node): node is JSDocPublicTag;\n function isJSDocPrivateTag(node: Node): node is JSDocPrivateTag;\n function isJSDocProtectedTag(node: Node): node is JSDocProtectedTag;\n function isJSDocReadonlyTag(node: Node): node is JSDocReadonlyTag;\n function isJSDocOverrideTag(node: Node): node is JSDocOverrideTag;\n function isJSDocOverloadTag(node: Node): node is JSDocOverloadTag;\n function isJSDocDeprecatedTag(node: Node): node is JSDocDeprecatedTag;\n function isJSDocSeeTag(node: Node): node is JSDocSeeTag;\n function isJSDocEnumTag(node: Node): node is JSDocEnumTag;\n function isJSDocParameterTag(node: Node): node is JSDocParameterTag;\n function isJSDocReturnTag(node: Node): node is JSDocReturnTag;\n function isJSDocThisTag(node: Node): node is JSDocThisTag;\n function isJSDocTypeTag(node: Node): node is JSDocTypeTag;\n function isJSDocTemplateTag(node: Node): node is JSDocTemplateTag;\n function isJSDocTypedefTag(node: Node): node is JSDocTypedefTag;\n function isJSDocUnknownTag(node: Node): node is JSDocUnknownTag;\n function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag;\n function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag;\n function isJSDocSatisfiesTag(node: Node): node is JSDocSatisfiesTag;\n function isJSDocThrowsTag(node: Node): node is JSDocThrowsTag;\n function isJSDocImportTag(node: Node): node is JSDocImportTag;\n function isQuestionOrExclamationToken(node: Node): node is QuestionToken | ExclamationToken;\n function isIdentifierOrThisTypeNode(node: Node): node is Identifier | ThisTypeNode;\n function isReadonlyKeywordOrPlusOrMinusToken(node: Node): node is ReadonlyKeyword | PlusToken | MinusToken;\n function isQuestionOrPlusOrMinusToken(node: Node): node is QuestionToken | PlusToken | MinusToken;\n function isModuleName(node: Node): node is ModuleName;\n function isBinaryOperatorToken(node: Node): node is BinaryOperatorToken;\n function setTextRange(range: T, location: TextRange | undefined): T;\n function canHaveModifiers(node: Node): node is HasModifiers;\n function canHaveDecorators(node: Node): node is HasDecorators;\n /**\n * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes\n * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise,\n * embedded arrays are flattened and the 'cbNode' callback is invoked for each element. If a callback returns\n * a truthy value, iteration stops and that value is returned. Otherwise, undefined is returned.\n *\n * @param node a given node to visit its children\n * @param cbNode a callback to be invoked for all child nodes\n * @param cbNodes a callback to be invoked for embedded array\n *\n * @remarks `forEachChild` must visit the children of a node in the order\n * that they appear in the source code. The language service depends on this property to locate nodes by position.\n */\n function forEachChild(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined;\n function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile;\n function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined;\n /**\n * Parse json text into SyntaxTree and return node and parse errors if any\n * @param fileName\n * @param sourceText\n */\n function parseJsonText(fileName: string, sourceText: string): JsonSourceFile;\n function isExternalModule(file: SourceFile): boolean;\n function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;\n interface CreateSourceFileOptions {\n languageVersion: ScriptTarget;\n /**\n * Controls the format the file is detected as - this can be derived from only the path\n * and files on disk, but needs to be done with a module resolution cache in scope to be performant.\n * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node16` or `nodenext`.\n */\n impliedNodeFormat?: ResolutionMode;\n /**\n * Controls how module-y-ness is set for the given file. Usually the result of calling\n * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default\n * check specified by `isFileProbablyExternalModule` will be used to set the field.\n */\n setExternalModuleIndicator?: (file: SourceFile) => void;\n jsDocParsingMode?: JSDocParsingMode;\n }\n function parseCommandLine(commandLine: readonly string[], readFile?: (path: string) => string | undefined): ParsedCommandLine;\n function parseBuildCommand(commandLine: readonly string[]): ParsedBuildCommand;\n /**\n * Reads the config file, reports errors if any and exits if the config file cannot be found\n */\n function getParsedCommandLineOfConfigFile(configFileName: string, optionsToExtend: CompilerOptions | undefined, host: ParseConfigFileHost, extendedConfigCache?: Map, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): ParsedCommandLine | undefined;\n /**\n * Read tsconfig.json file\n * @param fileName The path to the config file\n */\n function readConfigFile(fileName: string, readFile: (path: string) => string | undefined): {\n config?: any;\n error?: Diagnostic;\n };\n /**\n * Parse the text of the tsconfig.json file\n * @param fileName The path to the config file\n * @param jsonText The text of the config file\n */\n function parseConfigFileTextToJson(fileName: string, jsonText: string): {\n config?: any;\n error?: Diagnostic;\n };\n /**\n * Read tsconfig.json file\n * @param fileName The path to the config file\n */\n function readJsonConfigFile(fileName: string, readFile: (path: string) => string | undefined): TsConfigSourceFile;\n /**\n * Convert the json syntax tree into the json value\n */\n function convertToObject(sourceFile: JsonSourceFile, errors: Diagnostic[]): any;\n /**\n * Parse the contents of a config file (tsconfig.json).\n * @param json The contents of the config file to parse\n * @param host Instance of ParseConfigHost used to enumerate files in folder.\n * @param basePath A root directory to resolve relative path entries in the config\n * file to. e.g. outDir\n */\n function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map, existingWatchOptions?: WatchOptions): ParsedCommandLine;\n /**\n * Parse the contents of a config file (tsconfig.json).\n * @param jsonNode The contents of the config file to parse\n * @param host Instance of ParseConfigHost used to enumerate files in folder.\n * @param basePath A root directory to resolve relative path entries in the config\n * file to. e.g. outDir\n */\n function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map, existingWatchOptions?: WatchOptions): ParsedCommandLine;\n function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): {\n options: CompilerOptions;\n errors: Diagnostic[];\n };\n function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): {\n options: TypeAcquisition;\n errors: Diagnostic[];\n };\n /** Parsed command line for build */\n interface ParsedBuildCommand {\n buildOptions: BuildOptions;\n watchOptions: WatchOptions | undefined;\n projects: string[];\n errors: Diagnostic[];\n }\n type DiagnosticReporter = (diagnostic: Diagnostic) => void;\n /**\n * Reports config file diagnostics\n */\n interface ConfigFileDiagnosticsReporter {\n /**\n * Reports unrecoverable error when parsing config file\n */\n onUnRecoverableConfigFileDiagnostic: DiagnosticReporter;\n }\n /**\n * Interface extending ParseConfigHost to support ParseConfigFile that reads config file and reports errors\n */\n interface ParseConfigFileHost extends ParseConfigHost, ConfigFileDiagnosticsReporter {\n getCurrentDirectory(): string;\n }\n interface ParsedTsconfig {\n raw: any;\n options?: CompilerOptions;\n watchOptions?: WatchOptions;\n typeAcquisition?: TypeAcquisition;\n /**\n * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet\n */\n extendedConfigPath?: string | string[];\n }\n interface ExtendedConfigCacheEntry {\n extendedResult: TsConfigSourceFile;\n extendedConfig: ParsedTsconfig | undefined;\n }\n function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): string[] | undefined;\n /**\n * @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown.\n * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups\n * is assumed to be the same as root directory of the project.\n */\n function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: ResolutionMode): ResolvedTypeReferenceDirectiveWithFailedLookupLocations;\n /**\n * Given a set of options, returns the set of type directive names\n * that should be included for this program automatically.\n * This list could either come from the config file,\n * or from enumerating the types root + initial secondary types lookup location.\n * More type directives might appear in the program later as a result of loading actual source files;\n * this list is only the set of defaults that are implicitly included.\n */\n function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[];\n function createModuleResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions, packageJsonInfoCache?: PackageJsonInfoCache): ModuleResolutionCache;\n function createTypeReferenceDirectiveResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions, packageJsonInfoCache?: PackageJsonInfoCache): TypeReferenceDirectiveResolutionCache;\n function resolveModuleNameFromCache(moduleName: string, containingFile: string, cache: ModuleResolutionCache, mode?: ResolutionMode): ResolvedModuleWithFailedLookupLocations | undefined;\n function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ResolutionMode): ResolvedModuleWithFailedLookupLocations;\n function bundlerModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;\n function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;\n function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations;\n interface TypeReferenceDirectiveResolutionCache extends PerDirectoryResolutionCache, NonRelativeNameResolutionCache, PackageJsonInfoCache {\n }\n interface ModeAwareCache {\n get(key: string, mode: ResolutionMode): T | undefined;\n set(key: string, mode: ResolutionMode, value: T): this;\n delete(key: string, mode: ResolutionMode): this;\n has(key: string, mode: ResolutionMode): boolean;\n forEach(cb: (elem: T, key: string, mode: ResolutionMode) => void): void;\n size(): number;\n }\n /**\n * Cached resolutions per containing directory.\n * This assumes that any module id will have the same resolution for sibling files located in the same folder.\n */\n interface PerDirectoryResolutionCache {\n getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;\n getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache;\n clear(): void;\n /**\n * Updates with the current compilerOptions the cache will operate with.\n * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects\n */\n update(options: CompilerOptions): void;\n }\n interface NonRelativeNameResolutionCache {\n getFromNonRelativeNameCache(nonRelativeName: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;\n getOrCreateCacheForNonRelativeName(nonRelativeName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerNonRelativeNameCache;\n clear(): void;\n /**\n * Updates with the current compilerOptions the cache will operate with.\n * This updates the redirects map as well if needed so module resolutions are cached if they can across the projects\n */\n update(options: CompilerOptions): void;\n }\n interface PerNonRelativeNameCache {\n get(directory: string): T | undefined;\n set(directory: string, result: T): void;\n }\n interface ModuleResolutionCache extends PerDirectoryResolutionCache, NonRelativeModuleNameResolutionCache, PackageJsonInfoCache {\n getPackageJsonInfoCache(): PackageJsonInfoCache;\n }\n /**\n * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory\n * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive.\n */\n interface NonRelativeModuleNameResolutionCache extends NonRelativeNameResolutionCache, PackageJsonInfoCache {\n /** @deprecated Use getOrCreateCacheForNonRelativeName */\n getOrCreateCacheForModuleName(nonRelativeModuleName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerModuleNameCache;\n }\n interface PackageJsonInfoCache {\n clear(): void;\n }\n type PerModuleNameCache = PerNonRelativeNameCache;\n /**\n * Visits a Node using the supplied visitor, possibly returning a new Node in its place.\n *\n * - If the input node is undefined, then the output is undefined.\n * - If the visitor returns undefined, then the output is undefined.\n * - If the output node is not undefined, then it will satisfy the test function.\n * - In order to obtain a return type that is more specific than `Node`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * @param node The Node to visit.\n * @param visitor The callback used to visit the Node.\n * @param test A callback to execute to verify the Node is valid.\n * @param lift An optional callback to execute to lift a NodeArray into a valid Node.\n */\n function visitNode(node: TIn, visitor: Visitor, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);\n /**\n * Visits a Node using the supplied visitor, possibly returning a new Node in its place.\n *\n * - If the input node is undefined, then the output is undefined.\n * - If the visitor returns undefined, then the output is undefined.\n * - If the output node is not undefined, then it will satisfy the test function.\n * - In order to obtain a return type that is more specific than `Node`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * @param node The Node to visit.\n * @param visitor The callback used to visit the Node.\n * @param test A callback to execute to verify the Node is valid.\n * @param lift An optional callback to execute to lift a NodeArray into a valid Node.\n */\n function visitNode(node: TIn, visitor: Visitor, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);\n /**\n * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.\n *\n * - If the input node array is undefined, the output is undefined.\n * - If the visitor can return undefined, the node it visits in the array will be reused.\n * - If the output node array is not undefined, then its contents will satisfy the test.\n * - In order to obtain a return type that is more specific than `NodeArray`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * @param nodes The NodeArray to visit.\n * @param visitor The callback used to visit a Node.\n * @param test A node test to execute for each node.\n * @param start An optional value indicating the starting offset at which to start visiting.\n * @param count An optional value indicating the maximum number of nodes to visit.\n */\n function visitNodes | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray | (TInArray & undefined);\n /**\n * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.\n *\n * - If the input node array is undefined, the output is undefined.\n * - If the visitor can return undefined, the node it visits in the array will be reused.\n * - If the output node array is not undefined, then its contents will satisfy the test.\n * - In order to obtain a return type that is more specific than `NodeArray`, a test\n * function _must_ be provided, and that function must be a type predicate.\n *\n * @param nodes The NodeArray to visit.\n * @param visitor The callback used to visit a Node.\n * @param test A node test to execute for each node.\n * @param start An optional value indicating the starting offset at which to start visiting.\n * @param count An optional value indicating the maximum number of nodes to visit.\n */\n function visitNodes | undefined>(nodes: TInArray, visitor: Visitor, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray | (TInArray & undefined);\n /**\n * Starts a new lexical environment and visits a statement list, ending the lexical environment\n * and merging hoisted declarations upon completion.\n */\n function visitLexicalEnvironment(statements: NodeArray, visitor: Visitor, context: TransformationContext, start?: number, ensureUseStrict?: boolean, nodesVisitor?: NodesVisitor): NodeArray;\n /**\n * Starts a new lexical environment and visits a parameter list, suspending the lexical\n * environment upon completion.\n */\n function visitParameterList(nodes: NodeArray, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray;\n function visitParameterList(nodes: NodeArray | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor): NodeArray | undefined;\n /**\n * Resumes a suspended lexical environment and visits a function body, ending the lexical\n * environment and merging hoisted declarations upon completion.\n */\n function visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): FunctionBody;\n /**\n * Resumes a suspended lexical environment and visits a function body, ending the lexical\n * environment and merging hoisted declarations upon completion.\n */\n function visitFunctionBody(node: FunctionBody | undefined, visitor: Visitor, context: TransformationContext): FunctionBody | undefined;\n /**\n * Resumes a suspended lexical environment and visits a concise body, ending the lexical\n * environment and merging hoisted declarations upon completion.\n */\n function visitFunctionBody(node: ConciseBody, visitor: Visitor, context: TransformationContext): ConciseBody;\n /**\n * Visits an iteration body, adding any block-scoped variables required by the transformation.\n */\n function visitIterationBody(body: Statement, visitor: Visitor, context: TransformationContext): Statement;\n /**\n * Visits the elements of a {@link CommaListExpression}.\n * @param visitor The visitor to use when visiting expressions whose result will not be discarded at runtime.\n * @param discardVisitor The visitor to use when visiting expressions whose result will be discarded at runtime. Defaults to {@link visitor}.\n */\n function visitCommaListElements(elements: NodeArray, visitor: Visitor, discardVisitor?: Visitor): NodeArray;\n /**\n * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place.\n *\n * @param node The Node whose children will be visited.\n * @param visitor The callback used to visit each child.\n * @param context A lexical environment context for the visitor.\n */\n function visitEachChild(node: T, visitor: Visitor, context: TransformationContext | undefined): T;\n /**\n * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place.\n *\n * @param node The Node whose children will be visited.\n * @param visitor The callback used to visit each child.\n * @param context A lexical environment context for the visitor.\n */\n function visitEachChild(node: T | undefined, visitor: Visitor, context: TransformationContext | undefined, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined;\n function getTsBuildInfoEmitOutputFilePath(options: CompilerOptions): string | undefined;\n function getOutputFileNames(commandLine: ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[];\n function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer;\n enum ProgramUpdateLevel {\n /** Program is updated with same root file names and options */\n Update = 0,\n /** Loads program after updating root file names from the disk */\n RootNamesAndUpdate = 1,\n /**\n * Loads program completely, including:\n * - re-reading contents of config file from disk\n * - calculating root file names for the program\n * - Updating the program\n */\n Full = 2,\n }\n function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined;\n function resolveTripleslashReference(moduleName: string, containingFile: string): string;\n function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;\n function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n function formatDiagnostics(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string;\n function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string;\n function formatDiagnosticsWithColorAndContext(diagnostics: readonly Diagnostic[], host: FormatDiagnosticsHost): string;\n function flattenDiagnosticMessageText(diag: string | DiagnosticMessageChain | undefined, newLine: string, indent?: number): string;\n /**\n * Calculates the resulting resolution mode for some reference in some file - this is generally the explicitly\n * provided resolution mode in the reference, unless one is not present, in which case it is the mode of the containing file.\n */\n function getModeForFileReference(ref: FileReference | string, containingFileMode: ResolutionMode): ResolutionMode;\n /**\n * Use `program.getModeForResolutionAtIndex`, which retrieves the correct `compilerOptions`, instead of this function whenever possible.\n * Calculates the final resolution mode for an import at some index within a file's `imports` list. This is the resolution mode\n * explicitly provided via import attributes, if present, or the syntax the usage would have if emitted to JavaScript. In\n * `--module node16` or `nodenext`, this may depend on the file's `impliedNodeFormat`. In `--module preserve`, it depends only on the\n * input syntax of the reference. In other `module` modes, when overriding import attributes are not provided, this function returns\n * `undefined`, as the result would have no impact on module resolution, emit, or type checking.\n * @param file File to fetch the resolution mode within\n * @param index Index into the file's complete resolution list to get the resolution of - this is a concatenation of the file's imports and module augmentations\n * @param compilerOptions The compiler options for the program that owns the file. If the file belongs to a referenced project, the compiler options\n * should be the options of the referenced project, not the referencing project.\n */\n function getModeForResolutionAtIndex(file: SourceFile, index: number, compilerOptions: CompilerOptions): ResolutionMode;\n /**\n * Use `program.getModeForUsageLocation`, which retrieves the correct `compilerOptions`, instead of this function whenever possible.\n * Calculates the final resolution mode for a given module reference node. This function only returns a result when module resolution\n * settings allow differing resolution between ESM imports and CJS requires, or when a mode is explicitly provided via import attributes,\n * which cause an `import` or `require` condition to be used during resolution regardless of module resolution settings. In absence of\n * overriding attributes, and in modes that support differing resolution, the result indicates the syntax the usage would emit to JavaScript.\n * Some examples:\n *\n * ```ts\n * // tsc foo.mts --module nodenext\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `impliedNodeFormat` set by .mts file extension\n *\n * // tsc foo.cts --module nodenext\n * import {} from \"mod\";\n * // Result: CommonJS - the import emits as CJS due to `impliedNodeFormat` set by .cts file extension\n *\n * // tsc foo.ts --module preserve --moduleResolution bundler\n * import {} from \"mod\";\n * // Result: ESNext - the import emits as ESM due to `--module preserve` and `--moduleResolution bundler`\n * // supports conditional imports/exports\n *\n * // tsc foo.ts --module preserve --moduleResolution node10\n * import {} from \"mod\";\n * // Result: undefined - the import emits as ESM due to `--module preserve`, but `--moduleResolution node10`\n * // does not support conditional imports/exports\n *\n * // tsc foo.ts --module commonjs --moduleResolution node10\n * import type {} from \"mod\" with { \"resolution-mode\": \"import\" };\n * // Result: ESNext - conditional imports/exports always supported with \"resolution-mode\" attribute\n * ```\n *\n * @param file The file the import or import-like reference is contained within\n * @param usage The module reference string\n * @param compilerOptions The compiler options for the program that owns the file. If the file belongs to a referenced project, the compiler options\n * should be the options of the referenced project, not the referencing project.\n * @returns The final resolution mode of the import\n */\n function getModeForUsageLocation(file: SourceFile, usage: StringLiteralLike, compilerOptions: CompilerOptions): ResolutionMode;\n function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): readonly Diagnostic[];\n /**\n * A function for determining if a given file is esm or cjs format, assuming modern node module resolution rules, as configured by the\n * `options` parameter.\n *\n * @param fileName The file name to check the format of (it need not exist on disk)\n * @param [packageJsonInfoCache] A cache for package file lookups - it's best to have a cache when this function is called often\n * @param host The ModuleResolutionHost which can perform the filesystem lookups for package json data\n * @param options The compiler options to perform the analysis under - relevant options are `moduleResolution` and `traceResolution`\n * @returns `undefined` if the path has no relevant implied format, `ModuleKind.ESNext` for esm format, and `ModuleKind.CommonJS` for cjs format\n */\n function getImpliedNodeFormatForFile(fileName: string, packageJsonInfoCache: PackageJsonInfoCache | undefined, host: ModuleResolutionHost, options: CompilerOptions): ResolutionMode;\n /**\n * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions'\n * that represent a compilation unit.\n *\n * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and\n * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in.\n *\n * @param createProgramOptions - The options for creating a program.\n * @returns A 'Program' object.\n */\n function createProgram(createProgramOptions: CreateProgramOptions): Program;\n /**\n * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions'\n * that represent a compilation unit.\n *\n * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and\n * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in.\n *\n * @param rootNames - A set of root files.\n * @param options - The compiler options which should be used.\n * @param host - The host interacts with the underlying file system.\n * @param oldProgram - Reuses an old program structure.\n * @param configFileParsingDiagnostics - error during config file parsing\n * @returns A 'Program' object.\n */\n function createProgram(rootNames: readonly string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: readonly Diagnostic[]): Program;\n /**\n * Returns the target config filename of a project reference.\n * Note: The file might not exist.\n */\n function resolveProjectReferencePath(ref: ProjectReference): ResolvedConfigFileName;\n interface FormatDiagnosticsHost {\n getCurrentDirectory(): string;\n getCanonicalFileName(fileName: string): string;\n getNewLine(): string;\n }\n interface EmitOutput {\n outputFiles: OutputFile[];\n emitSkipped: boolean;\n diagnostics: readonly Diagnostic[];\n }\n interface OutputFile {\n name: string;\n writeByteOrderMark: boolean;\n text: string;\n }\n /**\n * Create the builder to manage semantic diagnostics and cache them\n */\n function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): SemanticDiagnosticsBuilderProgram;\n function createSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): SemanticDiagnosticsBuilderProgram;\n /**\n * Create the builder that can handle the changes in program and iterate through changed files\n * to emit the those files and manage semantic diagnostics cache as well\n */\n function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): EmitAndSemanticDiagnosticsBuilderProgram;\n function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): EmitAndSemanticDiagnosticsBuilderProgram;\n /**\n * Creates a builder thats just abstraction over program and can be used with watch\n */\n function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[]): BuilderProgram;\n function createAbstractBuilder(rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[]): BuilderProgram;\n type AffectedFileResult = {\n result: T;\n affected: SourceFile | Program;\n } | undefined;\n interface BuilderProgramHost {\n /**\n * If provided this would be used this hash instead of actual file shape text for detecting changes\n */\n createHash?: (data: string) => string;\n /**\n * When emit or emitNextAffectedFile are called without writeFile,\n * this callback if present would be used to write files\n */\n writeFile?: WriteFileCallback;\n }\n /**\n * Builder to manage the program state changes\n */\n interface BuilderProgram {\n /**\n * Returns current program\n */\n getProgram(): Program;\n /**\n * Get compiler options of the program\n */\n getCompilerOptions(): CompilerOptions;\n /**\n * Get the source file in the program with file name\n */\n getSourceFile(fileName: string): SourceFile | undefined;\n /**\n * Get a list of files in the program\n */\n getSourceFiles(): readonly SourceFile[];\n /**\n * Get the diagnostics for compiler options\n */\n getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n /**\n * Get the diagnostics that dont belong to any file\n */\n getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n /**\n * Get the diagnostics from config file parsing\n */\n getConfigFileParsingDiagnostics(): readonly Diagnostic[];\n /**\n * Get the syntax diagnostics, for all source files if source file is not supplied\n */\n getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n /**\n * Get the declaration diagnostics, for all source files if source file is not supplied\n */\n getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly DiagnosticWithLocation[];\n /**\n * Get all the dependencies of the file\n */\n getAllDependencies(sourceFile: SourceFile): readonly string[];\n /**\n * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program\n * The semantic diagnostics are cached and managed here\n * Note that it is assumed that when asked about semantic diagnostics through this API,\n * the file has been taken out of affected files so it is safe to use cache or get from program and cache the diagnostics\n * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided,\n * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics\n */\n getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n /**\n * Emits the JavaScript and declaration files.\n * When targetSource file is specified, emits the files corresponding to that source file,\n * otherwise for the whole program.\n * In case of EmitAndSemanticDiagnosticsBuilderProgram, when targetSourceFile is specified,\n * it is assumed that that file is handled from affected file list. If targetSourceFile is not specified,\n * it will only emit all the affected files instead of whole program\n *\n * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host\n * in that order would be used to write the files\n */\n emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult;\n /**\n * Get the current directory of the program\n */\n getCurrentDirectory(): string;\n }\n /**\n * The builder that caches the semantic diagnostics for the program and handles the changed files and affected files\n */\n interface SemanticDiagnosticsBuilderProgram extends BuilderProgram {\n /**\n * Gets the semantic diagnostics from the program for the next affected file and caches it\n * Returns undefined if the iteration is complete\n */\n getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult;\n }\n /**\n * The builder that can handle the changes in program and iterate through changed file to emit the files\n * The semantic diagnostics are cached per file and managed by clearing for the changed/affected files\n */\n interface EmitAndSemanticDiagnosticsBuilderProgram extends SemanticDiagnosticsBuilderProgram {\n /**\n * Emits the next affected file's emit result (EmitResult and sourceFiles emitted) or returns undefined if iteration is complete\n * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host\n * in that order would be used to write the files\n */\n emitNextAffectedFile(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): AffectedFileResult;\n }\n function readBuilderProgram(compilerOptions: CompilerOptions, host: ReadBuildProgramHost): EmitAndSemanticDiagnosticsBuilderProgram | undefined;\n function createIncrementalCompilerHost(options: CompilerOptions, system?: System): CompilerHost;\n function createIncrementalProgram({ rootNames, options, configFileParsingDiagnostics, projectReferences, host, createProgram }: IncrementalProgramOptions): T;\n /**\n * Create the watch compiler host for either configFile or fileNames and its options\n */\n function createWatchCompilerHost(configFileName: string, optionsToExtend: CompilerOptions | undefined, system: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, watchOptionsToExtend?: WatchOptions, extraFileExtensions?: readonly FileExtensionInfo[]): WatchCompilerHostOfConfigFile;\n function createWatchCompilerHost(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, projectReferences?: readonly ProjectReference[], watchOptions?: WatchOptions): WatchCompilerHostOfFilesAndCompilerOptions;\n /**\n * Creates the watch from the host for root files and compiler options\n */\n function createWatchProgram(host: WatchCompilerHostOfFilesAndCompilerOptions): WatchOfFilesAndCompilerOptions;\n /**\n * Creates the watch from the host for config file\n */\n function createWatchProgram(host: WatchCompilerHostOfConfigFile): WatchOfConfigFile;\n interface ReadBuildProgramHost {\n useCaseSensitiveFileNames(): boolean;\n getCurrentDirectory(): string;\n readFile(fileName: string): string | undefined;\n }\n interface IncrementalProgramOptions {\n rootNames: readonly string[];\n options: CompilerOptions;\n configFileParsingDiagnostics?: readonly Diagnostic[];\n projectReferences?: readonly ProjectReference[];\n host?: CompilerHost;\n createProgram?: CreateProgram;\n }\n type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number) => void;\n /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */\n type CreateProgram = (rootNames: readonly string[] | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: readonly Diagnostic[], projectReferences?: readonly ProjectReference[] | undefined) => T;\n /** Host that has watch functionality used in --watch mode */\n interface WatchHost {\n /** If provided, called with Diagnostic message that informs about change in watch status */\n onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions, errorCount?: number): void;\n /** Used to watch changes in source files, missing files needed to update the program or config file */\n watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number, options?: WatchOptions): FileWatcher;\n /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */\n watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean, options?: WatchOptions): FileWatcher;\n /** If provided, will be used to set delayed compilation, so that multiple changes in short span are compiled together */\n setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any;\n /** If provided, will be used to reset existing delayed compilation */\n clearTimeout?(timeoutId: any): void;\n preferNonRecursiveWatch?: boolean;\n }\n interface ProgramHost {\n /**\n * Used to create the program when need for program creation or recreation detected\n */\n createProgram: CreateProgram;\n useCaseSensitiveFileNames(): boolean;\n getNewLine(): string;\n getCurrentDirectory(): string;\n getDefaultLibFileName(options: CompilerOptions): string;\n getDefaultLibLocation?(): string;\n createHash?(data: string): string;\n /**\n * Use to check file presence for source files and\n * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well\n */\n fileExists(path: string): boolean;\n /**\n * Use to read file text for source files and\n * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well\n */\n readFile(path: string, encoding?: string): string | undefined;\n /** If provided, used for module resolution as well as to handle directory structure */\n directoryExists?(path: string): boolean;\n /** If provided, used in resolutions as well as handling directory structure */\n getDirectories?(path: string): string[];\n /** If provided, used to cache and handle directory structure modifications */\n readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];\n /** Symbol links resolution */\n realpath?(path: string): string;\n /** If provided would be used to write log about compilation */\n trace?(s: string): void;\n /** If provided is used to get the environment variable */\n getEnvironmentVariable?(name: string): string | undefined;\n /**\n * @deprecated supply resolveModuleNameLiterals instead for resolution that can handle newer resolution modes like nodenext\n *\n * If provided, used to resolve the module names, otherwise typescript's default module resolution\n */\n resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[];\n /**\n * @deprecated supply resolveTypeReferenceDirectiveReferences instead for resolution that can handle newer resolution modes like nodenext\n *\n * If provided, used to resolve type reference directives, otherwise typescript's default resolution\n */\n resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: ResolutionMode): (ResolvedTypeReferenceDirective | undefined)[];\n resolveModuleNameLiterals?(moduleLiterals: readonly StringLiteralLike[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile, reusedNames: readonly StringLiteralLike[] | undefined): readonly ResolvedModuleWithFailedLookupLocations[];\n resolveTypeReferenceDirectiveReferences?(typeDirectiveReferences: readonly T[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile | undefined, reusedNames: readonly T[] | undefined): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];\n /** If provided along with custom resolveModuleNames or resolveTypeReferenceDirectives, used to determine if unchanged file path needs to re-resolve modules/type reference directives */\n hasInvalidatedResolutions?(filePath: Path): boolean;\n /**\n * Returns the module resolution cache used by a provided `resolveModuleNames` implementation so that any non-name module resolution operations (eg, package.json lookup) can reuse it\n */\n getModuleResolutionCache?(): ModuleResolutionCache | undefined;\n jsDocParsingMode?: JSDocParsingMode;\n }\n interface WatchCompilerHost extends ProgramHost, WatchHost {\n /** Instead of using output d.ts file from project reference, use its source file */\n useSourceOfProjectReferenceRedirect?(): boolean;\n /** If provided, use this method to get parsed command lines for referenced projects */\n getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined;\n /** If provided, callback to invoke after every new program creation */\n afterProgramCreate?(program: T): void;\n }\n /**\n * Host to create watch with root files and options\n */\n interface WatchCompilerHostOfFilesAndCompilerOptions extends WatchCompilerHost {\n /** root files to use to generate program */\n rootFiles: string[];\n /** Compiler options */\n options: CompilerOptions;\n watchOptions?: WatchOptions;\n /** Project References */\n projectReferences?: readonly ProjectReference[];\n }\n /**\n * Host to create watch with config file\n */\n interface WatchCompilerHostOfConfigFile extends WatchCompilerHost, ConfigFileDiagnosticsReporter {\n /** Name of the config file to compile */\n configFileName: string;\n /** Options to extend */\n optionsToExtend?: CompilerOptions;\n watchOptionsToExtend?: WatchOptions;\n extraFileExtensions?: readonly FileExtensionInfo[];\n /**\n * Used to generate source file names from the config file and its include, exclude, files rules\n * and also to cache the directory stucture\n */\n readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];\n }\n interface Watch {\n /** Synchronize with host and get updated program */\n getProgram(): T;\n /** Closes the watch */\n close(): void;\n }\n /**\n * Creates the watch what generates program using the config file\n */\n interface WatchOfConfigFile extends Watch {\n }\n /**\n * Creates the watch that generates program using the root files and compiler options\n */\n interface WatchOfFilesAndCompilerOptions extends Watch {\n /** Updates the root files in the program, only if this is not config file compilation */\n updateRootFileNames(fileNames: string[]): void;\n }\n /**\n * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic\n */\n function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter;\n function createSolutionBuilderHost(system?: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost;\n function createSolutionBuilderWithWatchHost(system?: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost;\n function createSolutionBuilder(host: SolutionBuilderHost, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder;\n function createSolutionBuilderWithWatch(host: SolutionBuilderWithWatchHost, rootNames: readonly string[], defaultOptions: BuildOptions, baseWatchOptions?: WatchOptions): SolutionBuilder;\n interface BuildOptions {\n dry?: boolean;\n force?: boolean;\n verbose?: boolean;\n stopBuildOnErrors?: boolean;\n incremental?: boolean;\n assumeChangesOnlyAffectDirectDependencies?: boolean;\n declaration?: boolean;\n declarationMap?: boolean;\n emitDeclarationOnly?: boolean;\n sourceMap?: boolean;\n inlineSourceMap?: boolean;\n traceResolution?: boolean;\n [option: string]: CompilerOptionsValue | undefined;\n }\n type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void;\n interface ReportFileInError {\n fileName: string;\n line: number;\n }\n interface SolutionBuilderHostBase extends ProgramHost {\n createDirectory?(path: string): void;\n /**\n * Should provide create directory and writeFile if done of invalidatedProjects is not invoked with\n * writeFileCallback\n */\n writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void;\n getCustomTransformers?: (project: string) => CustomTransformers | undefined;\n getModifiedTime(fileName: string): Date | undefined;\n setModifiedTime(fileName: string, date: Date): void;\n deleteFile(fileName: string): void;\n getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined;\n reportDiagnostic: DiagnosticReporter;\n reportSolutionBuilderStatus: DiagnosticReporter;\n afterProgramEmitAndDiagnostics?(program: T): void;\n }\n interface SolutionBuilderHost extends SolutionBuilderHostBase {\n reportErrorSummary?: ReportEmitErrorSummary;\n }\n interface SolutionBuilderWithWatchHost extends SolutionBuilderHostBase, WatchHost {\n }\n interface SolutionBuilder {\n build(project?: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus;\n clean(project?: string): ExitStatus;\n buildReferences(project: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus;\n cleanReferences(project?: string): ExitStatus;\n getNextInvalidatedProject(cancellationToken?: CancellationToken): InvalidatedProject | undefined;\n }\n enum InvalidatedProjectKind {\n Build = 0,\n UpdateOutputFileStamps = 1,\n }\n interface InvalidatedProjectBase {\n readonly kind: InvalidatedProjectKind;\n readonly project: ResolvedConfigFileName;\n /**\n * To dispose this project and ensure that all the necessary actions are taken and state is updated accordingly\n */\n done(cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): ExitStatus;\n getCompilerOptions(): CompilerOptions;\n getCurrentDirectory(): string;\n }\n interface UpdateOutputFileStampsProject extends InvalidatedProjectBase {\n readonly kind: InvalidatedProjectKind.UpdateOutputFileStamps;\n updateOutputFileStatmps(): void;\n }\n interface BuildInvalidedProject extends InvalidatedProjectBase {\n readonly kind: InvalidatedProjectKind.Build;\n getBuilderProgram(): T | undefined;\n getProgram(): Program | undefined;\n getSourceFile(fileName: string): SourceFile | undefined;\n getSourceFiles(): readonly SourceFile[];\n getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[];\n getConfigFileParsingDiagnostics(): readonly Diagnostic[];\n getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n getAllDependencies(sourceFile: SourceFile): readonly string[];\n getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[];\n getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult;\n emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined;\n }\n type InvalidatedProject = UpdateOutputFileStampsProject | BuildInvalidedProject;\n /** Returns true if commandline is --build and needs to be parsed useing parseBuildCommand */\n function isBuildCommand(commandLineArgs: readonly string[]): boolean;\n function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings;\n /**\n * Represents an immutable snapshot of a script at a specified time.Once acquired, the\n * snapshot is observably immutable. i.e. the same calls with the same parameters will return\n * the same values.\n */\n interface IScriptSnapshot {\n /** Gets a portion of the script snapshot specified by [start, end). */\n getText(start: number, end: number): string;\n /** Gets the length of this script snapshot. */\n getLength(): number;\n /**\n * Gets the TextChangeRange that describe how the text changed between this text and\n * an older version. This information is used by the incremental parser to determine\n * what sections of the script need to be re-parsed. 'undefined' can be returned if the\n * change range cannot be determined. However, in that case, incremental parsing will\n * not happen and the entire document will be re - parsed.\n */\n getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined;\n /** Releases all resources held by this script snapshot */\n dispose?(): void;\n }\n namespace ScriptSnapshot {\n function fromString(text: string): IScriptSnapshot;\n }\n interface PreProcessedFileInfo {\n referencedFiles: FileReference[];\n typeReferenceDirectives: FileReference[];\n libReferenceDirectives: FileReference[];\n importedFiles: FileReference[];\n ambientExternalModules?: string[];\n isLibFile: boolean;\n }\n interface HostCancellationToken {\n isCancellationRequested(): boolean;\n }\n interface InstallPackageOptions {\n fileName: Path;\n packageName: string;\n }\n interface PerformanceEvent {\n kind: \"UpdateGraph\" | \"CreatePackageJsonAutoImportProvider\";\n durationMs: number;\n }\n enum LanguageServiceMode {\n Semantic = 0,\n PartialSemantic = 1,\n Syntactic = 2,\n }\n interface IncompleteCompletionsCache {\n get(): CompletionInfo | undefined;\n set(response: CompletionInfo): void;\n clear(): void;\n }\n interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost {\n getCompilationSettings(): CompilerOptions;\n getNewLine?(): string;\n getProjectVersion?(): string;\n getScriptFileNames(): string[];\n getScriptKind?(fileName: string): ScriptKind;\n getScriptVersion(fileName: string): string;\n getScriptSnapshot(fileName: string): IScriptSnapshot | undefined;\n getProjectReferences?(): readonly ProjectReference[] | undefined;\n getLocalizedDiagnosticMessages?(): any;\n getCancellationToken?(): HostCancellationToken;\n getCurrentDirectory(): string;\n getDefaultLibFileName(options: CompilerOptions): string;\n log?(s: string): void;\n trace?(s: string): void;\n error?(s: string): void;\n useCaseSensitiveFileNames?(): boolean;\n readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[];\n realpath?(path: string): string;\n readFile(path: string, encoding?: string): string | undefined;\n fileExists(path: string): boolean;\n getTypeRootsVersion?(): number;\n /** @deprecated supply resolveModuleNameLiterals instead for resolution that can handle newer resolution modes like nodenext */\n resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[];\n getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ResolutionMode): ResolvedModuleWithFailedLookupLocations | undefined;\n /** @deprecated supply resolveTypeReferenceDirectiveReferences instead for resolution that can handle newer resolution modes like nodenext */\n resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: ResolutionMode): (ResolvedTypeReferenceDirective | undefined)[];\n resolveModuleNameLiterals?(moduleLiterals: readonly StringLiteralLike[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile, reusedNames: readonly StringLiteralLike[] | undefined): readonly ResolvedModuleWithFailedLookupLocations[];\n resolveTypeReferenceDirectiveReferences?(typeDirectiveReferences: readonly T[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile: SourceFile | undefined, reusedNames: readonly T[] | undefined): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];\n getDirectories?(directoryName: string): string[];\n /**\n * Gets a set of custom transformers to use during emit.\n */\n getCustomTransformers?(): CustomTransformers | undefined;\n isKnownTypesPackageName?(name: string): boolean;\n installPackage?(options: InstallPackageOptions): Promise;\n writeFile?(fileName: string, content: string): void;\n getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined;\n jsDocParsingMode?: JSDocParsingMode | undefined;\n }\n type WithMetadata = T & {\n metadata?: unknown;\n };\n enum SemanticClassificationFormat {\n Original = \"original\",\n TwentyTwenty = \"2020\",\n }\n interface LanguageService {\n /** This is used as a part of restarting the language service. */\n cleanupSemanticCache(): void;\n /**\n * Gets errors indicating invalid syntax in a file.\n *\n * In English, \"this cdeo have, erorrs\" is syntactically invalid because it has typos,\n * grammatical errors, and misplaced punctuation. Likewise, examples of syntax\n * errors in TypeScript are missing parentheses in an `if` statement, mismatched\n * curly braces, and using a reserved keyword as a variable name.\n *\n * These diagnostics are inexpensive to compute and don't require knowledge of\n * other files. Note that a non-empty result increases the likelihood of false positives\n * from `getSemanticDiagnostics`.\n *\n * While these represent the majority of syntax-related diagnostics, there are some\n * that require the type system, which will be present in `getSemanticDiagnostics`.\n *\n * @param fileName A path to the file you want syntactic diagnostics for\n */\n getSyntacticDiagnostics(fileName: string): DiagnosticWithLocation[];\n /**\n * Gets warnings or errors indicating type system issues in a given file.\n * Requesting semantic diagnostics may start up the type system and\n * run deferred work, so the first call may take longer than subsequent calls.\n *\n * Unlike the other get*Diagnostics functions, these diagnostics can potentially not\n * include a reference to a source file. Specifically, the first time this is called,\n * it will return global diagnostics with no associated location.\n *\n * To contrast the differences between semantic and syntactic diagnostics, consider the\n * sentence: \"The sun is green.\" is syntactically correct; those are real English words with\n * correct sentence structure. However, it is semantically invalid, because it is not true.\n *\n * @param fileName A path to the file you want semantic diagnostics for\n */\n getSemanticDiagnostics(fileName: string): Diagnostic[];\n /**\n * Gets suggestion diagnostics for a specific file. These diagnostics tend to\n * proactively suggest refactors, as opposed to diagnostics that indicate\n * potentially incorrect runtime behavior.\n *\n * @param fileName A path to the file you want semantic diagnostics for\n */\n getSuggestionDiagnostics(fileName: string): DiagnosticWithLocation[];\n /**\n * Gets global diagnostics related to the program configuration and compiler options.\n */\n getCompilerOptionsDiagnostics(): Diagnostic[];\n /** @deprecated Use getEncodedSyntacticClassifications instead. */\n getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];\n getSyntacticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[];\n /** @deprecated Use getEncodedSemanticClassifications instead. */\n getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[];\n getSemanticClassifications(fileName: string, span: TextSpan, format: SemanticClassificationFormat): ClassifiedSpan[] | ClassifiedSpan2020[];\n /** Encoded as triples of [start, length, ClassificationType]. */\n getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications;\n /**\n * Gets semantic highlights information for a particular file. Has two formats, an older\n * version used by VS and a format used by VS Code.\n *\n * @param fileName The path to the file\n * @param position A text span to return results within\n * @param format Which format to use, defaults to \"original\"\n * @returns a number array encoded as triples of [start, length, ClassificationType, ...].\n */\n getEncodedSemanticClassifications(fileName: string, span: TextSpan, format?: SemanticClassificationFormat): Classifications;\n /**\n * Gets completion entries at a particular position in a file.\n *\n * @param fileName The path to the file\n * @param position A zero-based index of the character where you want the entries\n * @param options An object describing how the request was triggered and what kinds\n * of code actions can be returned with the completions.\n * @param formattingSettings settings needed for calling formatting functions.\n */\n getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata | undefined;\n /**\n * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`.\n *\n * @param fileName The path to the file\n * @param position A zero based index of the character where you want the entries\n * @param entryName The `name` from an existing completion which came from `getCompletionsAtPosition`\n * @param formatOptions How should code samples in the completions be formatted, can be undefined for backwards compatibility\n * @param source `source` property from the completion entry\n * @param preferences User settings, can be undefined for backwards compatibility\n * @param data `data` property from the completion entry\n */\n getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences | undefined, data: CompletionEntryData | undefined): CompletionEntryDetails | undefined;\n getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol | undefined;\n /**\n * Gets semantic information about the identifier at a particular position in a\n * file. Quick info is what you typically see when you hover in an editor.\n *\n * @param fileName The path to the file\n * @param position A zero-based index of the character where you want the quick info\n * @param maximumLength Maximum length of a quickinfo text before it is truncated.\n */\n getQuickInfoAtPosition(fileName: string, position: number, maximumLength?: number): QuickInfo | undefined;\n getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined;\n getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined;\n getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined;\n getRenameInfo(fileName: string, position: number, preferences: UserPreferences): RenameInfo;\n /** @deprecated Use the signature with `UserPreferences` instead. */\n getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo;\n findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, preferences: UserPreferences): readonly RenameLocation[] | undefined;\n /** @deprecated Pass `providePrefixAndSuffixTextForRename` as part of a `UserPreferences` parameter. */\n findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): readonly RenameLocation[] | undefined;\n getSmartSelectionRange(fileName: string, position: number): SelectionRange;\n getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined;\n getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined;\n getTypeDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined;\n getImplementationAtPosition(fileName: string, position: number): readonly ImplementationLocation[] | undefined;\n getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined;\n findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined;\n getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined;\n getFileReferences(fileName: string): ReferenceEntry[];\n getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean, excludeLibFiles?: boolean): NavigateToItem[];\n getNavigationBarItems(fileName: string): NavigationBarItem[];\n getNavigationTree(fileName: string): NavigationTree;\n prepareCallHierarchy(fileName: string, position: number): CallHierarchyItem | CallHierarchyItem[] | undefined;\n provideCallHierarchyIncomingCalls(fileName: string, position: number): CallHierarchyIncomingCall[];\n provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[];\n provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences | undefined): InlayHint[];\n getOutliningSpans(fileName: string): OutliningSpan[];\n getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[];\n getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[];\n getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number;\n getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[];\n getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];\n getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[];\n getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined;\n isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean;\n /**\n * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag.\n * Editors should call this after `>` is typed.\n */\n getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined;\n getLinkedEditingRangeAtPosition(fileName: string, position: number): LinkedEditingInfo | undefined;\n getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined;\n toLineColumnOffset?(fileName: string, position: number): LineAndCharacter;\n getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: readonly number[], formatOptions: FormatCodeSettings, preferences: UserPreferences): readonly CodeFixAction[];\n getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions;\n applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise;\n applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise;\n applyCodeActionCommand(action: CodeActionCommand | CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise;\n /** @deprecated `fileName` will be ignored */\n applyCodeActionCommand(fileName: string, action: CodeActionCommand): Promise;\n /** @deprecated `fileName` will be ignored */\n applyCodeActionCommand(fileName: string, action: CodeActionCommand[]): Promise;\n /** @deprecated `fileName` will be ignored */\n applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise;\n /**\n * @param includeInteractiveActions Include refactor actions that require additional arguments to be\n * passed when calling `getEditsForRefactor`. When true, clients should inspect the `isInteractive`\n * property of each returned `RefactorActionInfo` and ensure they are able to collect the appropriate\n * arguments for any interactive action before offering it.\n */\n getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined, triggerReason?: RefactorTriggerReason, kind?: string, includeInteractiveActions?: boolean): ApplicableRefactorInfo[];\n getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined, interactiveRefactorArguments?: InteractiveRefactorArguments): RefactorEditInfo | undefined;\n getMoveToRefactoringFileSuggestions(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined, triggerReason?: RefactorTriggerReason, kind?: string): {\n newFileName: string;\n files: string[];\n };\n organizeImports(args: OrganizeImportsArgs, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[];\n getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): readonly FileTextChanges[];\n getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): EmitOutput;\n getProgram(): Program | undefined;\n toggleLineComment(fileName: string, textRange: TextRange): TextChange[];\n toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[];\n commentSelection(fileName: string, textRange: TextRange): TextChange[];\n uncommentSelection(fileName: string, textRange: TextRange): TextChange[];\n getSupportedCodeFixes(fileName?: string): readonly string[];\n dispose(): void;\n preparePasteEditsForFile(fileName: string, copiedTextRanges: TextRange[]): boolean;\n getPasteEdits(args: PasteEditsArgs, formatOptions: FormatCodeSettings): PasteEdits;\n }\n interface JsxClosingTagInfo {\n readonly newText: string;\n }\n interface LinkedEditingInfo {\n readonly ranges: TextSpan[];\n wordPattern?: string;\n }\n interface CombinedCodeFixScope {\n type: \"file\";\n fileName: string;\n }\n enum OrganizeImportsMode {\n All = \"All\",\n SortAndCombine = \"SortAndCombine\",\n RemoveUnused = \"RemoveUnused\",\n }\n interface PasteEdits {\n edits: readonly FileTextChanges[];\n fixId?: {};\n }\n interface PasteEditsArgs {\n targetFile: string;\n pastedText: string[];\n pasteLocations: TextRange[];\n copiedFrom: {\n file: string;\n range: TextRange[];\n } | undefined;\n preferences: UserPreferences;\n }\n interface OrganizeImportsArgs extends CombinedCodeFixScope {\n /** @deprecated Use `mode` instead */\n skipDestructiveCodeActions?: boolean;\n mode?: OrganizeImportsMode;\n }\n type CompletionsTriggerCharacter = \".\" | '\"' | \"'\" | \"`\" | \"/\" | \"@\" | \"<\" | \"#\" | \" \";\n enum CompletionTriggerKind {\n /** Completion was triggered by typing an identifier, manual invocation (e.g Ctrl+Space) or via API. */\n Invoked = 1,\n /** Completion was triggered by a trigger character. */\n TriggerCharacter = 2,\n /** Completion was re-triggered as the current completion list is incomplete. */\n TriggerForIncompleteCompletions = 3,\n }\n interface GetCompletionsAtPositionOptions extends UserPreferences {\n /**\n * If the editor is asking for completions because a certain character was typed\n * (as opposed to when the user explicitly requested them) this should be set.\n */\n triggerCharacter?: CompletionsTriggerCharacter;\n triggerKind?: CompletionTriggerKind;\n /**\n * Include a `symbol` property on each completion entry object.\n * Symbols reference cyclic data structures and sometimes an entire TypeChecker instance,\n * so use caution when serializing or retaining completion entries retrieved with this option.\n * @default false\n */\n includeSymbol?: boolean;\n /** @deprecated Use includeCompletionsForModuleExports */\n includeExternalModuleExports?: boolean;\n /** @deprecated Use includeCompletionsWithInsertText */\n includeInsertTextCompletions?: boolean;\n }\n type SignatureHelpTriggerCharacter = \",\" | \"(\" | \"<\";\n type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | \")\";\n interface SignatureHelpItemsOptions {\n triggerReason?: SignatureHelpTriggerReason;\n }\n type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason;\n /**\n * Signals that the user manually requested signature help.\n * The language service will unconditionally attempt to provide a result.\n */\n interface SignatureHelpInvokedReason {\n kind: \"invoked\";\n triggerCharacter?: undefined;\n }\n /**\n * Signals that the signature help request came from a user typing a character.\n * Depending on the character and the syntactic context, the request may or may not be served a result.\n */\n interface SignatureHelpCharacterTypedReason {\n kind: \"characterTyped\";\n /**\n * Character that was responsible for triggering signature help.\n */\n triggerCharacter: SignatureHelpTriggerCharacter;\n }\n /**\n * Signals that this signature help request came from typing a character or moving the cursor.\n * This should only occur if a signature help session was already active and the editor needs to see if it should adjust.\n * The language service will unconditionally attempt to provide a result.\n * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move.\n */\n interface SignatureHelpRetriggeredReason {\n kind: \"retrigger\";\n /**\n * Character that was responsible for triggering signature help.\n */\n triggerCharacter?: SignatureHelpRetriggerCharacter;\n }\n interface ApplyCodeActionCommandResult {\n successMessage: string;\n }\n interface Classifications {\n spans: number[];\n endOfLineState: EndOfLineState;\n }\n interface ClassifiedSpan {\n textSpan: TextSpan;\n classificationType: ClassificationTypeNames;\n }\n interface ClassifiedSpan2020 {\n textSpan: TextSpan;\n classificationType: number;\n }\n /**\n * Navigation bar interface designed for visual studio's dual-column layout.\n * This does not form a proper tree.\n * The navbar is returned as a list of top-level items, each of which has a list of child items.\n * Child items always have an empty array for their `childItems`.\n */\n interface NavigationBarItem {\n text: string;\n kind: ScriptElementKind;\n kindModifiers: string;\n spans: TextSpan[];\n childItems: NavigationBarItem[];\n indent: number;\n bolded: boolean;\n grayed: boolean;\n }\n /**\n * Node in a tree of nested declarations in a file.\n * The top node is always a script or module node.\n */\n interface NavigationTree {\n /** Name of the declaration, or a short description, e.g. \"\". */\n text: string;\n kind: ScriptElementKind;\n /** ScriptElementKindModifier separated by commas, e.g. \"public,abstract\" */\n kindModifiers: string;\n /**\n * Spans of the nodes that generated this declaration.\n * There will be more than one if this is the result of merging.\n */\n spans: TextSpan[];\n nameSpan: TextSpan | undefined;\n /** Present if non-empty */\n childItems?: NavigationTree[];\n }\n interface CallHierarchyItem {\n name: string;\n kind: ScriptElementKind;\n kindModifiers?: string;\n file: string;\n span: TextSpan;\n selectionSpan: TextSpan;\n containerName?: string;\n }\n interface CallHierarchyIncomingCall {\n from: CallHierarchyItem;\n fromSpans: TextSpan[];\n }\n interface CallHierarchyOutgoingCall {\n to: CallHierarchyItem;\n fromSpans: TextSpan[];\n }\n enum InlayHintKind {\n Type = \"Type\",\n Parameter = \"Parameter\",\n Enum = \"Enum\",\n }\n interface InlayHint {\n /** This property will be the empty string when displayParts is set. */\n text: string;\n position: number;\n kind: InlayHintKind;\n whitespaceBefore?: boolean;\n whitespaceAfter?: boolean;\n displayParts?: InlayHintDisplayPart[];\n }\n interface InlayHintDisplayPart {\n text: string;\n span?: TextSpan;\n file?: string;\n }\n interface TodoCommentDescriptor {\n text: string;\n priority: number;\n }\n interface TodoComment {\n descriptor: TodoCommentDescriptor;\n message: string;\n position: number;\n }\n interface TextChange {\n span: TextSpan;\n newText: string;\n }\n interface FileTextChanges {\n fileName: string;\n textChanges: readonly TextChange[];\n isNewFile?: boolean;\n }\n interface CodeAction {\n /** Description of the code action to display in the UI of the editor */\n description: string;\n /** Text changes to apply to each file as part of the code action */\n changes: FileTextChanges[];\n /**\n * If the user accepts the code fix, the editor should send the action back in a `applyAction` request.\n * This allows the language service to have side effects (e.g. installing dependencies) upon a code fix.\n */\n commands?: CodeActionCommand[];\n }\n interface CodeFixAction extends CodeAction {\n /** Short name to identify the fix, for use by telemetry. */\n fixName: string;\n /**\n * If present, one may call 'getCombinedCodeFix' with this fixId.\n * This may be omitted to indicate that the code fix can't be applied in a group.\n */\n fixId?: {};\n fixAllDescription?: string;\n }\n interface CombinedCodeActions {\n changes: readonly FileTextChanges[];\n commands?: readonly CodeActionCommand[];\n }\n type CodeActionCommand = InstallPackageAction;\n interface InstallPackageAction {\n }\n /**\n * A set of one or more available refactoring actions, grouped under a parent refactoring.\n */\n interface ApplicableRefactorInfo {\n /**\n * The programmatic name of the refactoring\n */\n name: string;\n /**\n * A description of this refactoring category to show to the user.\n * If the refactoring gets inlined (see below), this text will not be visible.\n */\n description: string;\n /**\n * Inlineable refactorings can have their actions hoisted out to the top level\n * of a context menu. Non-inlineanable refactorings should always be shown inside\n * their parent grouping.\n *\n * If not specified, this value is assumed to be 'true'\n */\n inlineable?: boolean;\n actions: RefactorActionInfo[];\n }\n /**\n * Represents a single refactoring action - for example, the \"Extract Method...\" refactor might\n * offer several actions, each corresponding to a surround class or closure to extract into.\n */\n interface RefactorActionInfo {\n /**\n * The programmatic name of the refactoring action\n */\n name: string;\n /**\n * A description of this refactoring action to show to the user.\n * If the parent refactoring is inlined away, this will be the only text shown,\n * so this description should make sense by itself if the parent is inlineable=true\n */\n description: string;\n /**\n * A message to show to the user if the refactoring cannot be applied in\n * the current context.\n */\n notApplicableReason?: string;\n /**\n * The hierarchical dotted name of the refactor action.\n */\n kind?: string;\n /**\n * Indicates that the action requires additional arguments to be passed\n * when calling `getEditsForRefactor`.\n */\n isInteractive?: boolean;\n /**\n * Range of code the refactoring will be applied to.\n */\n range?: {\n start: {\n line: number;\n offset: number;\n };\n end: {\n line: number;\n offset: number;\n };\n };\n }\n /**\n * A set of edits to make in response to a refactor action, plus an optional\n * location where renaming should be invoked from\n */\n interface RefactorEditInfo {\n edits: FileTextChanges[];\n renameFilename?: string;\n renameLocation?: number;\n commands?: CodeActionCommand[];\n notApplicableReason?: string;\n }\n type RefactorTriggerReason = \"implicit\" | \"invoked\";\n interface TextInsertion {\n newText: string;\n /** The position in newText the caret should point to after the insertion. */\n caretOffset: number;\n }\n interface DocumentSpan {\n textSpan: TextSpan;\n fileName: string;\n /**\n * If the span represents a location that was remapped (e.g. via a .d.ts.map file),\n * then the original filename and span will be specified here\n */\n originalTextSpan?: TextSpan;\n originalFileName?: string;\n /**\n * If DocumentSpan.textSpan is the span for name of the declaration,\n * then this is the span for relevant declaration\n */\n contextSpan?: TextSpan;\n originalContextSpan?: TextSpan;\n }\n interface RenameLocation extends DocumentSpan {\n readonly prefixText?: string;\n readonly suffixText?: string;\n }\n interface ReferenceEntry extends DocumentSpan {\n isWriteAccess: boolean;\n isInString?: true;\n }\n interface ImplementationLocation extends DocumentSpan {\n kind: ScriptElementKind;\n displayParts: SymbolDisplayPart[];\n }\n enum HighlightSpanKind {\n none = \"none\",\n definition = \"definition\",\n reference = \"reference\",\n writtenReference = \"writtenReference\",\n }\n interface HighlightSpan {\n fileName?: string;\n isInString?: true;\n textSpan: TextSpan;\n contextSpan?: TextSpan;\n kind: HighlightSpanKind;\n }\n interface NavigateToItem {\n name: string;\n kind: ScriptElementKind;\n kindModifiers: string;\n matchKind: \"exact\" | \"prefix\" | \"substring\" | \"camelCase\";\n isCaseSensitive: boolean;\n fileName: string;\n textSpan: TextSpan;\n containerName: string;\n containerKind: ScriptElementKind;\n }\n enum IndentStyle {\n None = 0,\n Block = 1,\n Smart = 2,\n }\n enum SemicolonPreference {\n Ignore = \"ignore\",\n Insert = \"insert\",\n Remove = \"remove\",\n }\n /** @deprecated - consider using EditorSettings instead */\n interface EditorOptions {\n BaseIndentSize?: number;\n IndentSize: number;\n TabSize: number;\n NewLineCharacter: string;\n ConvertTabsToSpaces: boolean;\n IndentStyle: IndentStyle;\n }\n interface EditorSettings {\n baseIndentSize?: number;\n indentSize?: number;\n tabSize?: number;\n newLineCharacter?: string;\n convertTabsToSpaces?: boolean;\n indentStyle?: IndentStyle;\n trimTrailingWhitespace?: boolean;\n }\n /** @deprecated - consider using FormatCodeSettings instead */\n interface FormatCodeOptions extends EditorOptions {\n InsertSpaceAfterCommaDelimiter: boolean;\n InsertSpaceAfterSemicolonInForStatements: boolean;\n InsertSpaceBeforeAndAfterBinaryOperators: boolean;\n InsertSpaceAfterConstructor?: boolean;\n InsertSpaceAfterKeywordsInControlFlowStatements: boolean;\n InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean;\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean;\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean;\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;\n InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean;\n InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;\n InsertSpaceAfterTypeAssertion?: boolean;\n InsertSpaceBeforeFunctionParenthesis?: boolean;\n PlaceOpenBraceOnNewLineForFunctions: boolean;\n PlaceOpenBraceOnNewLineForControlBlocks: boolean;\n insertSpaceBeforeTypeAnnotation?: boolean;\n }\n interface FormatCodeSettings extends EditorSettings {\n readonly insertSpaceAfterCommaDelimiter?: boolean;\n readonly insertSpaceAfterSemicolonInForStatements?: boolean;\n readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean;\n readonly insertSpaceAfterConstructor?: boolean;\n readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean;\n readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean;\n readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;\n readonly insertSpaceAfterTypeAssertion?: boolean;\n readonly insertSpaceBeforeFunctionParenthesis?: boolean;\n readonly placeOpenBraceOnNewLineForFunctions?: boolean;\n readonly placeOpenBraceOnNewLineForControlBlocks?: boolean;\n readonly insertSpaceBeforeTypeAnnotation?: boolean;\n readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean;\n readonly semicolons?: SemicolonPreference;\n readonly indentSwitchCase?: boolean;\n }\n interface DefinitionInfo extends DocumentSpan {\n kind: ScriptElementKind;\n name: string;\n containerKind: ScriptElementKind;\n containerName: string;\n unverified?: boolean;\n }\n interface DefinitionInfoAndBoundSpan {\n definitions?: readonly DefinitionInfo[];\n textSpan: TextSpan;\n }\n interface ReferencedSymbolDefinitionInfo extends DefinitionInfo {\n displayParts: SymbolDisplayPart[];\n }\n interface ReferencedSymbol {\n definition: ReferencedSymbolDefinitionInfo;\n references: ReferencedSymbolEntry[];\n }\n interface ReferencedSymbolEntry extends ReferenceEntry {\n isDefinition?: boolean;\n }\n enum SymbolDisplayPartKind {\n aliasName = 0,\n className = 1,\n enumName = 2,\n fieldName = 3,\n interfaceName = 4,\n keyword = 5,\n lineBreak = 6,\n numericLiteral = 7,\n stringLiteral = 8,\n localName = 9,\n methodName = 10,\n moduleName = 11,\n operator = 12,\n parameterName = 13,\n propertyName = 14,\n punctuation = 15,\n space = 16,\n text = 17,\n typeParameterName = 18,\n enumMemberName = 19,\n functionName = 20,\n regularExpressionLiteral = 21,\n link = 22,\n linkName = 23,\n linkText = 24,\n }\n interface SymbolDisplayPart {\n /**\n * Text of an item describing the symbol.\n */\n text: string;\n /**\n * The symbol's kind (such as 'className' or 'parameterName' or plain 'text').\n */\n kind: string;\n }\n interface JSDocLinkDisplayPart extends SymbolDisplayPart {\n target: DocumentSpan;\n }\n interface JSDocTagInfo {\n name: string;\n text?: SymbolDisplayPart[];\n }\n interface QuickInfo {\n kind: ScriptElementKind;\n kindModifiers: string;\n textSpan: TextSpan;\n displayParts?: SymbolDisplayPart[];\n documentation?: SymbolDisplayPart[];\n tags?: JSDocTagInfo[];\n canIncreaseVerbosityLevel?: boolean;\n }\n type RenameInfo = RenameInfoSuccess | RenameInfoFailure;\n interface RenameInfoSuccess {\n canRename: true;\n /**\n * File or directory to rename.\n * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`.\n */\n fileToRename?: string;\n displayName: string;\n /**\n * Full display name of item to be renamed.\n * If item to be renamed is a file, then this is the original text of the module specifer\n */\n fullDisplayName: string;\n kind: ScriptElementKind;\n kindModifiers: string;\n triggerSpan: TextSpan;\n }\n interface RenameInfoFailure {\n canRename: false;\n localizedErrorMessage: string;\n }\n /**\n * @deprecated Use `UserPreferences` instead.\n */\n interface RenameInfoOptions {\n readonly allowRenameOfImportPath?: boolean;\n }\n interface DocCommentTemplateOptions {\n readonly generateReturnInDocTemplate?: boolean;\n }\n interface InteractiveRefactorArguments {\n targetFile: string;\n }\n /**\n * Signature help information for a single parameter\n */\n interface SignatureHelpParameter {\n name: string;\n documentation: SymbolDisplayPart[];\n displayParts: SymbolDisplayPart[];\n isOptional: boolean;\n isRest?: boolean;\n }\n interface SelectionRange {\n textSpan: TextSpan;\n parent?: SelectionRange;\n }\n /**\n * Represents a single signature to show in signature help.\n * The id is used for subsequent calls into the language service to ask questions about the\n * signature help item in the context of any documents that have been updated. i.e. after\n * an edit has happened, while signature help is still active, the host can ask important\n * questions like 'what parameter is the user currently contained within?'.\n */\n interface SignatureHelpItem {\n isVariadic: boolean;\n prefixDisplayParts: SymbolDisplayPart[];\n suffixDisplayParts: SymbolDisplayPart[];\n separatorDisplayParts: SymbolDisplayPart[];\n parameters: SignatureHelpParameter[];\n documentation: SymbolDisplayPart[];\n tags: JSDocTagInfo[];\n }\n /**\n * Represents a set of signature help items, and the preferred item that should be selected.\n */\n interface SignatureHelpItems {\n items: SignatureHelpItem[];\n applicableSpan: TextSpan;\n selectedItemIndex: number;\n argumentIndex: number;\n argumentCount: number;\n }\n enum CompletionInfoFlags {\n None = 0,\n MayIncludeAutoImports = 1,\n IsImportStatementCompletion = 2,\n IsContinuation = 4,\n ResolvedModuleSpecifiers = 8,\n ResolvedModuleSpecifiersBeyondLimit = 16,\n MayIncludeMethodSnippets = 32,\n }\n interface CompletionInfo {\n /** For performance telemetry. */\n flags?: CompletionInfoFlags;\n /** Not true for all global completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */\n isGlobalCompletion: boolean;\n isMemberCompletion: boolean;\n /**\n * In the absence of `CompletionEntry[\"replacementSpan\"]`, the editor may choose whether to use\n * this span or its default one. If `CompletionEntry[\"replacementSpan\"]` is defined, that span\n * must be used to commit that completion entry.\n */\n optionalReplacementSpan?: TextSpan;\n /**\n * true when the current location also allows for a new identifier\n */\n isNewIdentifierLocation: boolean;\n /**\n * Indicates to client to continue requesting completions on subsequent keystrokes.\n */\n isIncomplete?: true;\n entries: CompletionEntry[];\n /**\n * Default commit characters for the completion entries.\n */\n defaultCommitCharacters?: string[];\n }\n interface CompletionEntryDataAutoImport {\n /**\n * The name of the property or export in the module's symbol table. Differs from the completion name\n * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default.\n */\n exportName: string;\n exportMapKey?: ExportMapInfoKey;\n moduleSpecifier?: string;\n /** The file name declaring the export's module symbol, if it was an external module */\n fileName?: string;\n /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */\n ambientModuleName?: string;\n /** True if the export was found in the package.json AutoImportProvider */\n isPackageJsonImport?: true;\n }\n interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport {\n exportMapKey: ExportMapInfoKey;\n }\n interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport {\n moduleSpecifier: string;\n }\n type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved;\n interface CompletionEntry {\n name: string;\n kind: ScriptElementKind;\n kindModifiers?: string;\n /**\n * A string that is used for comparing completion items so that they can be ordered. This\n * is often the same as the name but may be different in certain circumstances.\n */\n sortText: string;\n /**\n * Text to insert instead of `name`.\n * This is used to support bracketed completions; If `name` might be \"a-b\" but `insertText` would be `[\"a-b\"]`,\n * coupled with `replacementSpan` to replace a dotted access with a bracket access.\n */\n insertText?: string;\n /**\n * A string that should be used when filtering a set of\n * completion items.\n */\n filterText?: string;\n /**\n * `insertText` should be interpreted as a snippet if true.\n */\n isSnippet?: true;\n /**\n * An optional span that indicates the text to be replaced by this completion item.\n * If present, this span should be used instead of the default one.\n * It will be set if the required span differs from the one generated by the default replacement behavior.\n */\n replacementSpan?: TextSpan;\n /**\n * Indicates whether commiting this completion entry will require additional code actions to be\n * made to avoid errors. The CompletionEntryDetails will have these actions.\n */\n hasAction?: true;\n /**\n * Identifier (not necessarily human-readable) identifying where this completion came from.\n */\n source?: string;\n /**\n * Human-readable description of the `source`.\n */\n sourceDisplay?: SymbolDisplayPart[];\n /**\n * Additional details for the label.\n */\n labelDetails?: CompletionEntryLabelDetails;\n /**\n * If true, this completion should be highlighted as recommended. There will only be one of these.\n * This will be set when we know the user should write an expression with a certain type and that type is an enum or constructable class.\n * Then either that enum/class or a namespace containing it will be the recommended symbol.\n */\n isRecommended?: true;\n /**\n * If true, this completion was generated from traversing the name table of an unchecked JS file,\n * and therefore may not be accurate.\n */\n isFromUncheckedFile?: true;\n /**\n * If true, this completion was for an auto-import of a module not yet in the program, but listed\n * in the project package.json. Used for telemetry reporting.\n */\n isPackageJsonImport?: true;\n /**\n * If true, this completion was an auto-import-style completion of an import statement (i.e., the\n * module specifier was inserted along with the imported identifier). Used for telemetry reporting.\n */\n isImportStatementCompletion?: true;\n /**\n * For API purposes.\n * Included for non-string completions only when `includeSymbol: true` option is passed to `getCompletionsAtPosition`.\n * @example Get declaration of completion: `symbol.valueDeclaration`\n */\n symbol?: Symbol;\n /**\n * A property to be sent back to TS Server in the CompletionDetailsRequest, along with `name`,\n * that allows TS Server to look up the symbol represented by the completion item, disambiguating\n * items with the same name. Currently only defined for auto-import completions, but the type is\n * `unknown` in the protocol, so it can be changed as needed to support other kinds of completions.\n * The presence of this property should generally not be used to assume that this completion entry\n * is an auto-import.\n */\n data?: CompletionEntryData;\n /**\n * If this completion entry is selected, typing a commit character will cause the entry to be accepted.\n */\n commitCharacters?: string[];\n }\n interface CompletionEntryLabelDetails {\n /**\n * An optional string which is rendered less prominently directly after\n * {@link CompletionEntry.name name}, without any spacing. Should be\n * used for function signatures or type annotations.\n */\n detail?: string;\n /**\n * An optional string which is rendered less prominently after\n * {@link CompletionEntryLabelDetails.detail}. Should be used for fully qualified\n * names or file path.\n */\n description?: string;\n }\n interface CompletionEntryDetails {\n name: string;\n kind: ScriptElementKind;\n kindModifiers: string;\n displayParts: SymbolDisplayPart[];\n documentation?: SymbolDisplayPart[];\n tags?: JSDocTagInfo[];\n codeActions?: CodeAction[];\n /** @deprecated Use `sourceDisplay` instead. */\n source?: SymbolDisplayPart[];\n sourceDisplay?: SymbolDisplayPart[];\n }\n interface OutliningSpan {\n /** The span of the document to actually collapse. */\n textSpan: TextSpan;\n /** The span of the document to display when the user hovers over the collapsed span. */\n hintSpan: TextSpan;\n /** The text to display in the editor for the collapsed region. */\n bannerText: string;\n /**\n * Whether or not this region should be automatically collapsed when\n * the 'Collapse to Definitions' command is invoked.\n */\n autoCollapse: boolean;\n /**\n * Classification of the contents of the span\n */\n kind: OutliningSpanKind;\n }\n enum OutliningSpanKind {\n /** Single or multi-line comments */\n Comment = \"comment\",\n /** Sections marked by '// #region' and '// #endregion' comments */\n Region = \"region\",\n /** Declarations and expressions */\n Code = \"code\",\n /** Contiguous blocks of import declarations */\n Imports = \"imports\",\n }\n enum OutputFileType {\n JavaScript = 0,\n SourceMap = 1,\n Declaration = 2,\n }\n enum EndOfLineState {\n None = 0,\n InMultiLineCommentTrivia = 1,\n InSingleQuoteStringLiteral = 2,\n InDoubleQuoteStringLiteral = 3,\n InTemplateHeadOrNoSubstitutionTemplate = 4,\n InTemplateMiddleOrTail = 5,\n InTemplateSubstitutionPosition = 6,\n }\n enum TokenClass {\n Punctuation = 0,\n Keyword = 1,\n Operator = 2,\n Comment = 3,\n Whitespace = 4,\n Identifier = 5,\n NumberLiteral = 6,\n BigIntLiteral = 7,\n StringLiteral = 8,\n RegExpLiteral = 9,\n }\n interface ClassificationResult {\n finalLexState: EndOfLineState;\n entries: ClassificationInfo[];\n }\n interface ClassificationInfo {\n length: number;\n classification: TokenClass;\n }\n interface Classifier {\n /**\n * Gives lexical classifications of tokens on a line without any syntactic context.\n * For instance, a token consisting of the text 'string' can be either an identifier\n * named 'string' or the keyword 'string', however, because this classifier is not aware,\n * it relies on certain heuristics to give acceptable results. For classifications where\n * speed trumps accuracy, this function is preferable; however, for true accuracy, the\n * syntactic classifier is ideal. In fact, in certain editing scenarios, combining the\n * lexical, syntactic, and semantic classifiers may issue the best user experience.\n *\n * @param text The text of a line to classify.\n * @param lexState The state of the lexical classifier at the end of the previous line.\n * @param syntacticClassifierAbsent Whether the client is *not* using a syntactic classifier.\n * If there is no syntactic classifier (syntacticClassifierAbsent=true),\n * certain heuristics may be used in its place; however, if there is a\n * syntactic classifier (syntacticClassifierAbsent=false), certain\n * classifications which may be incorrectly categorized will be given\n * back as Identifiers in order to allow the syntactic classifier to\n * subsume the classification.\n * @deprecated Use getLexicalClassifications instead.\n */\n getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult;\n getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications;\n }\n enum ScriptElementKind {\n unknown = \"\",\n warning = \"warning\",\n /** predefined type (void) or keyword (class) */\n keyword = \"keyword\",\n /** top level script node */\n scriptElement = \"script\",\n /** module foo {} */\n moduleElement = \"module\",\n /** class X {} */\n classElement = \"class\",\n /** var x = class X {} */\n localClassElement = \"local class\",\n /** interface Y {} */\n interfaceElement = \"interface\",\n /** type T = ... */\n typeElement = \"type\",\n /** enum E */\n enumElement = \"enum\",\n enumMemberElement = \"enum member\",\n /**\n * Inside module and script only\n * const v = ..\n */\n variableElement = \"var\",\n /** Inside function */\n localVariableElement = \"local var\",\n /** using foo = ... */\n variableUsingElement = \"using\",\n /** await using foo = ... */\n variableAwaitUsingElement = \"await using\",\n /**\n * Inside module and script only\n * function f() { }\n */\n functionElement = \"function\",\n /** Inside function */\n localFunctionElement = \"local function\",\n /** class X { [public|private]* foo() {} } */\n memberFunctionElement = \"method\",\n /** class X { [public|private]* [get|set] foo:number; } */\n memberGetAccessorElement = \"getter\",\n memberSetAccessorElement = \"setter\",\n /**\n * class X { [public|private]* foo:number; }\n * interface Y { foo:number; }\n */\n memberVariableElement = \"property\",\n /** class X { [public|private]* accessor foo: number; } */\n memberAccessorVariableElement = \"accessor\",\n /**\n * class X { constructor() { } }\n * class X { static { } }\n */\n constructorImplementationElement = \"constructor\",\n /** interface Y { ():number; } */\n callSignatureElement = \"call\",\n /** interface Y { []:number; } */\n indexSignatureElement = \"index\",\n /** interface Y { new():Y; } */\n constructSignatureElement = \"construct\",\n /** function foo(*Y*: string) */\n parameterElement = \"parameter\",\n typeParameterElement = \"type parameter\",\n primitiveType = \"primitive type\",\n label = \"label\",\n alias = \"alias\",\n constElement = \"const\",\n letElement = \"let\",\n directory = \"directory\",\n externalModuleName = \"external module name\",\n /**\n * \n * @deprecated\n */\n jsxAttribute = \"JSX attribute\",\n /** String literal */\n string = \"string\",\n /** Jsdoc @link: in `{@link C link text}`, the before and after text \"{@link \" and \"}\" */\n link = \"link\",\n /** Jsdoc @link: in `{@link C link text}`, the entity name \"C\" */\n linkName = \"link name\",\n /** Jsdoc @link: in `{@link C link text}`, the link text \"link text\" */\n linkText = \"link text\",\n }\n enum ScriptElementKindModifier {\n none = \"\",\n publicMemberModifier = \"public\",\n privateMemberModifier = \"private\",\n protectedMemberModifier = \"protected\",\n exportedModifier = \"export\",\n ambientModifier = \"declare\",\n staticModifier = \"static\",\n abstractModifier = \"abstract\",\n optionalModifier = \"optional\",\n deprecatedModifier = \"deprecated\",\n dtsModifier = \".d.ts\",\n tsModifier = \".ts\",\n tsxModifier = \".tsx\",\n jsModifier = \".js\",\n jsxModifier = \".jsx\",\n jsonModifier = \".json\",\n dmtsModifier = \".d.mts\",\n mtsModifier = \".mts\",\n mjsModifier = \".mjs\",\n dctsModifier = \".d.cts\",\n ctsModifier = \".cts\",\n cjsModifier = \".cjs\",\n }\n enum ClassificationTypeNames {\n comment = \"comment\",\n identifier = \"identifier\",\n keyword = \"keyword\",\n numericLiteral = \"number\",\n bigintLiteral = \"bigint\",\n operator = \"operator\",\n stringLiteral = \"string\",\n whiteSpace = \"whitespace\",\n text = \"text\",\n punctuation = \"punctuation\",\n className = \"class name\",\n enumName = \"enum name\",\n interfaceName = \"interface name\",\n moduleName = \"module name\",\n typeParameterName = \"type parameter name\",\n typeAliasName = \"type alias name\",\n parameterName = \"parameter name\",\n docCommentTagName = \"doc comment tag name\",\n jsxOpenTagName = \"jsx open tag name\",\n jsxCloseTagName = \"jsx close tag name\",\n jsxSelfClosingTagName = \"jsx self closing tag name\",\n jsxAttribute = \"jsx attribute\",\n jsxText = \"jsx text\",\n jsxAttributeStringLiteralValue = \"jsx attribute string literal value\",\n }\n enum ClassificationType {\n comment = 1,\n identifier = 2,\n keyword = 3,\n numericLiteral = 4,\n operator = 5,\n stringLiteral = 6,\n regularExpressionLiteral = 7,\n whiteSpace = 8,\n text = 9,\n punctuation = 10,\n className = 11,\n enumName = 12,\n interfaceName = 13,\n moduleName = 14,\n typeParameterName = 15,\n typeAliasName = 16,\n parameterName = 17,\n docCommentTagName = 18,\n jsxOpenTagName = 19,\n jsxCloseTagName = 20,\n jsxSelfClosingTagName = 21,\n jsxAttribute = 22,\n jsxText = 23,\n jsxAttributeStringLiteralValue = 24,\n bigintLiteral = 25,\n }\n interface InlayHintsContext {\n file: SourceFile;\n program: Program;\n cancellationToken: CancellationToken;\n host: LanguageServiceHost;\n span: TextSpan;\n preferences: UserPreferences;\n }\n type ExportMapInfoKey = string & {\n __exportInfoKey: void;\n };\n /** The classifier is used for syntactic highlighting in editors via the TSServer */\n function createClassifier(): Classifier;\n interface DocumentHighlights {\n fileName: string;\n highlightSpans: HighlightSpan[];\n }\n function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string, jsDocParsingMode?: JSDocParsingMode): DocumentRegistry;\n /**\n * The document registry represents a store of SourceFile objects that can be shared between\n * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST)\n * of files in the context.\n * SourceFile objects account for most of the memory usage by the language service. Sharing\n * the same DocumentRegistry instance between different instances of LanguageService allow\n * for more efficient memory utilization since all projects will share at least the library\n * file (lib.d.ts).\n *\n * A more advanced use of the document registry is to serialize sourceFile objects to disk\n * and re-hydrate them when needed.\n *\n * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it\n * to all subsequent createLanguageService calls.\n */\n interface DocumentRegistry {\n /**\n * Request a stored SourceFile with a given fileName and compilationSettings.\n * The first call to acquire will call createLanguageServiceSourceFile to generate\n * the SourceFile if was not found in the registry.\n *\n * @param fileName The name of the file requested\n * @param compilationSettingsOrHost Some compilation settings like target affects the\n * shape of a the resulting SourceFile. This allows the DocumentRegistry to store\n * multiple copies of the same file for different compilation settings. A minimal\n * resolution cache is needed to fully define a source file's shape when\n * the compilation settings include `module: node16`+, so providing a cache host\n * object should be preferred. A common host is a language service `ConfiguredProject`.\n * @param scriptSnapshot Text of the file. Only used if the file was not found\n * in the registry and a new one was created.\n * @param version Current version of the file. Only used if the file was not found\n * in the registry and a new one was created.\n */\n acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile;\n acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile;\n /**\n * Request an updated version of an already existing SourceFile with a given fileName\n * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile\n * to get an updated SourceFile.\n *\n * @param fileName The name of the file requested\n * @param compilationSettingsOrHost Some compilation settings like target affects the\n * shape of a the resulting SourceFile. This allows the DocumentRegistry to store\n * multiple copies of the same file for different compilation settings. A minimal\n * resolution cache is needed to fully define a source file's shape when\n * the compilation settings include `module: node16`+, so providing a cache host\n * object should be preferred. A common host is a language service `ConfiguredProject`.\n * @param scriptSnapshot Text of the file.\n * @param version Current version of the file.\n */\n updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile;\n updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind, sourceFileOptions?: CreateSourceFileOptions | ScriptTarget): SourceFile;\n getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey;\n /**\n * Informs the DocumentRegistry that a file is not needed any longer.\n *\n * Note: It is not allowed to call release on a SourceFile that was not acquired from\n * this registry originally.\n *\n * @param fileName The name of the file to be released\n * @param compilationSettings The compilation settings used to acquire the file\n * @param scriptKind The script kind of the file to be released\n *\n * @deprecated pass scriptKind and impliedNodeFormat for correctness\n */\n releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind?: ScriptKind): void;\n /**\n * Informs the DocumentRegistry that a file is not needed any longer.\n *\n * Note: It is not allowed to call release on a SourceFile that was not acquired from\n * this registry originally.\n *\n * @param fileName The name of the file to be released\n * @param compilationSettings The compilation settings used to acquire the file\n * @param scriptKind The script kind of the file to be released\n * @param impliedNodeFormat The implied source file format of the file to be released\n */\n releaseDocument(fileName: string, compilationSettings: CompilerOptions, scriptKind: ScriptKind, impliedNodeFormat: ResolutionMode): void;\n /**\n * @deprecated pass scriptKind for and impliedNodeFormat correctness */\n releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind?: ScriptKind): void;\n releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey, scriptKind: ScriptKind, impliedNodeFormat: ResolutionMode): void;\n reportStats(): string;\n }\n type DocumentRegistryBucketKey = string & {\n __bucketKey: any;\n };\n function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo;\n function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput;\n function transpileDeclaration(input: string, transpileOptions: TranspileOptions): TranspileOutput;\n function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string;\n interface TranspileOptions {\n compilerOptions?: CompilerOptions;\n fileName?: string;\n reportDiagnostics?: boolean;\n moduleName?: string;\n renamedDependencies?: MapLike;\n transformers?: CustomTransformers;\n jsDocParsingMode?: JSDocParsingMode;\n }\n interface TranspileOutput {\n outputText: string;\n diagnostics?: Diagnostic[];\n sourceMapText?: string;\n }\n function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings;\n function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string;\n function getDefaultCompilerOptions(): CompilerOptions;\n function getSupportedCodeFixes(): readonly string[];\n function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile;\n function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean): SourceFile;\n function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService;\n /**\n * Get the path of the default library files (lib.d.ts) as distributed with the typescript\n * node package.\n * The functionality is not supported if the ts module is consumed outside of a node module.\n */\n function getDefaultLibFilePath(options: CompilerOptions): string;\n /** The version of the language service API */\n const servicesVersion = \"0.8\";\n /**\n * Transform one or more nodes using the supplied transformers.\n * @param source A single `Node` or an array of `Node` objects.\n * @param transformers An array of `TransformerFactory` callbacks used to process the transformation.\n * @param compilerOptions Optional compiler options.\n */\n function transform(source: T | T[], transformers: TransformerFactory[], compilerOptions?: CompilerOptions): TransformationResult;\n}\nexport = ts;\n", + "tsserverlibrary.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\nimport ts = require(\"./typescript.js\");\nexport = ts;\n", + "lib.webworker.iterable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Worker Iterable APIs\n/////////////////////////////\n\ninterface CSSNumericArray {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSNumericValue]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface CSSTransformValue {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSTransformComponent]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface CSSUnparsedValue {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSUnparsedSegment]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface Cache {\n /**\n * The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)\n */\n addAll(requests: Iterable): Promise;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: Iterable): void;\n}\n\ninterface CookieStoreManager {\n /**\n * The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)\n */\n subscribe(subscriptions: Iterable): Promise;\n /**\n * The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)\n */\n unsubscribe(subscriptions: Iterable): Promise;\n}\n\ninterface DOMStringList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface FileList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface FontFaceSet extends Set {\n}\n\ninterface FormDataIterator extends IteratorObject {\n [Symbol.iterator](): FormDataIterator;\n}\n\ninterface FormData {\n [Symbol.iterator](): FormDataIterator<[string, FormDataEntryValue]>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): FormDataIterator<[string, FormDataEntryValue]>;\n /** Returns a list of keys in the list. */\n keys(): FormDataIterator;\n /** Returns a list of values in the list. */\n values(): FormDataIterator;\n}\n\ninterface HeadersIterator extends IteratorObject {\n [Symbol.iterator](): HeadersIterator;\n}\n\ninterface Headers {\n [Symbol.iterator](): HeadersIterator<[string, string]>;\n /** Returns an iterator allowing to go through all key/value pairs contained in this object. */\n entries(): HeadersIterator<[string, string]>;\n /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */\n keys(): HeadersIterator;\n /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */\n values(): HeadersIterator;\n}\n\ninterface IDBDatabase {\n /**\n * The **`transaction`** method of the IDBDatabase interface immediately returns a transaction object (IDBTransaction) containing the IDBTransaction.objectStore method, which you can use to access your object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | Iterable, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n}\n\ninterface IDBObjectStore {\n /**\n * The **`createIndex()`** method of the field/column defining a new data point for each database record to contain.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | Iterable, options?: IDBIndexParameters): IDBIndex;\n}\n\ninterface ImageTrackList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface MessageEvent {\n /** @deprecated */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable): void;\n}\n\ninterface StylePropertyMapReadOnlyIterator extends IteratorObject {\n [Symbol.iterator](): StylePropertyMapReadOnlyIterator;\n}\n\ninterface StylePropertyMapReadOnly {\n [Symbol.iterator](): StylePropertyMapReadOnlyIterator<[string, Iterable]>;\n entries(): StylePropertyMapReadOnlyIterator<[string, Iterable]>;\n keys(): StylePropertyMapReadOnlyIterator;\n values(): StylePropertyMapReadOnlyIterator>;\n}\n\ninterface SubtleCrypto {\n /**\n * The **`deriveKey()`** method of the SubtleCrypto interface can be used to derive a secret key from a master key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)\n */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`generateKey()`** method of the SubtleCrypto interface is used to generate a new key (for symmetric algorithms) or key pair (for public-key algorithms).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)\n */\n generateKey(algorithm: \"Ed25519\" | { name: \"Ed25519\" }, extractable: boolean, keyUsages: ReadonlyArray<\"sign\" | \"verify\">): Promise;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`importKey()`** method of the SubtleCrypto interface imports a key: that is, it takes as input a key in an external, portable format and gives you a CryptoKey object that you can use in the Web Crypto API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)\n */\n importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n importKey(format: Exclude, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`unwrapKey()`** method of the SubtleCrypto interface 'unwraps' a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey)\n */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable): Promise;\n}\n\ninterface URLSearchParamsIterator extends IteratorObject {\n [Symbol.iterator](): URLSearchParamsIterator;\n}\n\ninterface URLSearchParams {\n [Symbol.iterator](): URLSearchParamsIterator<[string, string]>;\n /** Returns an array of key, value pairs for every entry in the search params. */\n entries(): URLSearchParamsIterator<[string, string]>;\n /** Returns a list of keys in the search params. */\n keys(): URLSearchParamsIterator;\n /** Returns a list of values in the search params. */\n values(): URLSearchParamsIterator;\n}\n\ninterface WEBGL_draw_buffers {\n /**\n * The **`WEBGL_draw_buffers.drawBuffersWEBGL()`** method is part of the WebGL API and allows you to define the draw buffers to which all fragment colors are written.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL)\n */\n drawBuffersWEBGL(buffers: Iterable): void;\n}\n\ninterface WEBGL_multi_draw {\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL)\n */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: number, countsList: Int32Array | Iterable, countsOffset: number, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL)\n */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: number, countsList: Int32Array | Iterable, countsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL)\n */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: number, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL)\n */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: number, drawcount: GLsizei): void;\n}\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: Iterable): GLuint[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: Iterable, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable, bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Iterable): void;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n}\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Iterable): void;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n}\n", + "lib.webworker.importscripts.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// WorkerGlobalScope APIs\n/////////////////////////////\n// These are only available in a Web Worker\ndeclare function importScripts(...urls: string[]): void;\n", + "lib.webworker.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Worker APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n additionalData?: BufferSource;\n iv: BufferSource;\n tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AudioConfiguration {\n bitrate?: number;\n channels?: string;\n contentType: string;\n samplerate?: number;\n spatialRendering?: boolean;\n}\n\ninterface AudioDataCopyToOptions {\n format?: AudioSampleFormat;\n frameCount?: number;\n frameOffset?: number;\n planeIndex: number;\n}\n\ninterface AudioDataInit {\n data: BufferSource;\n format: AudioSampleFormat;\n numberOfChannels: number;\n numberOfFrames: number;\n sampleRate: number;\n timestamp: number;\n transfer?: ArrayBuffer[];\n}\n\ninterface AudioDecoderConfig {\n codec: string;\n description?: AllowSharedBufferSource;\n numberOfChannels: number;\n sampleRate: number;\n}\n\ninterface AudioDecoderInit {\n error: WebCodecsErrorCallback;\n output: AudioDataOutputCallback;\n}\n\ninterface AudioDecoderSupport {\n config?: AudioDecoderConfig;\n supported?: boolean;\n}\n\ninterface AudioEncoderConfig {\n bitrate?: number;\n bitrateMode?: BitrateMode;\n codec: string;\n numberOfChannels: number;\n opus?: OpusEncoderConfig;\n sampleRate: number;\n}\n\ninterface AudioEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedAudioChunkOutputCallback;\n}\n\ninterface AudioEncoderSupport {\n config?: AudioEncoderConfig;\n supported?: boolean;\n}\n\ninterface AvcEncoderConfig {\n format?: AvcBitstreamFormat;\n}\n\ninterface BlobPropertyBag {\n endings?: EndingType;\n type?: string;\n}\n\ninterface CSSMatrixComponentOptions {\n is2D?: boolean;\n}\n\ninterface CSSNumericType {\n angle?: number;\n flex?: number;\n frequency?: number;\n length?: number;\n percent?: number;\n percentHint?: CSSNumericBaseType;\n resolution?: number;\n time?: number;\n}\n\ninterface CacheQueryOptions {\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface ClientQueryOptions {\n includeUncontrolled?: boolean;\n type?: ClientTypes;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CookieInit {\n domain?: string | null;\n expires?: DOMHighResTimeStamp | null;\n name: string;\n partitioned?: boolean;\n path?: string;\n sameSite?: CookieSameSite;\n value: string;\n}\n\ninterface CookieListItem {\n name?: string;\n value?: string;\n}\n\ninterface CookieStoreDeleteOptions {\n domain?: string | null;\n name: string;\n partitioned?: boolean;\n path?: string;\n}\n\ninterface CookieStoreGetOptions {\n name?: string;\n url?: string;\n}\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ninterface CustomEventInit extends EventInit {\n detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n a?: number;\n b?: number;\n c?: number;\n d?: number;\n e?: number;\n f?: number;\n m11?: number;\n m12?: number;\n m21?: number;\n m22?: number;\n m41?: number;\n m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n is2D?: boolean;\n m13?: number;\n m14?: number;\n m23?: number;\n m24?: number;\n m31?: number;\n m32?: number;\n m33?: number;\n m34?: number;\n m43?: number;\n m44?: number;\n}\n\ninterface DOMPointInit {\n w?: number;\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DOMQuadInit {\n p1?: DOMPointInit;\n p2?: DOMPointInit;\n p3?: DOMPointInit;\n p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n height?: number;\n width?: number;\n x?: number;\n y?: number;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface EncodedAudioChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n transfer?: ArrayBuffer[];\n type: EncodedAudioChunkType;\n}\n\ninterface EncodedAudioChunkMetadata {\n decoderConfig?: AudioDecoderConfig;\n}\n\ninterface EncodedVideoChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n type: EncodedVideoChunkType;\n}\n\ninterface EncodedVideoChunkMetadata {\n decoderConfig?: VideoDecoderConfig;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface EventSourceInit {\n withCredentials?: boolean;\n}\n\ninterface ExtendableCookieChangeEventInit extends ExtendableEventInit {\n changed?: CookieList;\n deleted?: CookieList;\n}\n\ninterface ExtendableEventInit extends EventInit {\n}\n\ninterface ExtendableMessageEventInit extends ExtendableEventInit {\n data?: any;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: Client | ServiceWorker | MessagePort | null;\n}\n\ninterface FetchEventInit extends ExtendableEventInit {\n clientId?: string;\n handled?: Promise;\n preloadResponse?: Promise;\n request: Request;\n resultingClientId?: string;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n lastModified?: number;\n}\n\ninterface FileSystemCreateWritableOptions {\n keepExistingData?: boolean;\n}\n\ninterface FileSystemGetDirectoryOptions {\n create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n create?: boolean;\n}\n\ninterface FileSystemReadWriteOptions {\n at?: number;\n}\n\ninterface FileSystemRemoveOptions {\n recursive?: boolean;\n}\n\ninterface FontFaceDescriptors {\n ascentOverride?: string;\n descentOverride?: string;\n display?: FontDisplay;\n featureSettings?: string;\n lineGapOverride?: string;\n stretch?: string;\n style?: string;\n unicodeRange?: string;\n weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n fontfaces?: FontFace[];\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n info: BufferSource;\n salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface IDBDatabaseInfo {\n name?: string;\n version?: number;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n newVersion?: number | null;\n oldVersion?: number;\n}\n\ninterface ImageBitmapOptions {\n colorSpaceConversion?: ColorSpaceConversion;\n imageOrientation?: ImageOrientation;\n premultiplyAlpha?: PremultiplyAlpha;\n resizeHeight?: number;\n resizeQuality?: ResizeQuality;\n resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImageDecodeOptions {\n completeFramesOnly?: boolean;\n frameIndex?: number;\n}\n\ninterface ImageDecodeResult {\n complete: boolean;\n image: VideoFrame;\n}\n\ninterface ImageDecoderInit {\n colorSpaceConversion?: ColorSpaceConversion;\n data: ImageBufferSource;\n desiredHeight?: number;\n desiredWidth?: number;\n preferAnimation?: boolean;\n transfer?: ArrayBuffer[];\n type: string;\n}\n\ninterface ImageEncodeOptions {\n quality?: number;\n type?: string;\n}\n\ninterface JsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\ninterface KeyAlgorithm {\n name: string;\n}\n\ninterface KeySystemTrackConfiguration {\n robustness?: string;\n}\n\ninterface LockInfo {\n clientId?: string;\n mode?: LockMode;\n name?: string;\n}\n\ninterface LockManagerSnapshot {\n held?: LockInfo[];\n pending?: LockInfo[];\n}\n\ninterface LockOptions {\n ifAvailable?: boolean;\n mode?: LockMode;\n signal?: AbortSignal;\n steal?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n}\n\ninterface MediaCapabilitiesInfo {\n powerEfficient: boolean;\n smooth: boolean;\n supported: boolean;\n}\n\ninterface MediaCapabilitiesKeySystemConfiguration {\n audio?: KeySystemTrackConfiguration;\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataType?: string;\n keySystem: string;\n persistentState?: MediaKeysRequirement;\n sessionTypes?: string[];\n video?: KeySystemTrackConfiguration;\n}\n\ninterface MediaConfiguration {\n audio?: AudioConfiguration;\n video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n keySystemConfiguration?: MediaCapabilitiesKeySystemConfiguration;\n type: MediaDecodingType;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n type: MediaEncodingType;\n}\n\ninterface MediaStreamTrackProcessorInit {\n maxBufferSize?: number;\n}\n\ninterface MessageEventInit extends EventInit {\n data?: T;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: MessageEventSource | null;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n cacheName?: string;\n}\n\ninterface NavigationPreloadState {\n enabled?: boolean;\n headerValue?: string;\n}\n\ninterface NotificationEventInit extends ExtendableEventInit {\n action?: string;\n notification: Notification;\n}\n\ninterface NotificationOptions {\n badge?: string;\n body?: string;\n data?: any;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n requireInteraction?: boolean;\n silent?: boolean | null;\n tag?: string;\n}\n\ninterface OpusEncoderConfig {\n complexity?: number;\n format?: OpusBitstreamFormat;\n frameDuration?: number;\n packetlossperc?: number;\n usedtx?: boolean;\n useinbandfec?: boolean;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n hash: HashAlgorithmIdentifier;\n iterations: number;\n salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n detail?: any;\n startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n detail?: any;\n duration?: DOMHighResTimeStamp;\n end?: string | DOMHighResTimeStamp;\n start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n buffered?: boolean;\n entryTypes?: string[];\n type?: string;\n}\n\ninterface PermissionDescriptor {\n name: PermissionName;\n}\n\ninterface PlaneLayout {\n offset: number;\n stride: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: Promise;\n reason?: any;\n}\n\ninterface PushEventInit extends ExtendableEventInit {\n data?: PushMessageDataInit;\n}\n\ninterface PushSubscriptionChangeEventInit extends ExtendableEventInit {\n newSubscription?: PushSubscription;\n oldSubscription?: PushSubscription;\n}\n\ninterface PushSubscriptionJSON {\n endpoint?: string;\n expirationTime?: EpochTimeStamp | null;\n keys?: Record;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: BufferSource | string | null;\n userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy {\n highWaterMark?: number;\n size?: QueuingStrategySize;\n}\n\ninterface QueuingStrategyInit {\n /**\n * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n *\n * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n */\n highWaterMark: number;\n}\n\ninterface RTCEncodedAudioFrameMetadata extends RTCEncodedFrameMetadata {\n sequenceNumber?: number;\n}\n\ninterface RTCEncodedFrameMetadata {\n contributingSources?: number[];\n mimeType?: string;\n payloadType?: number;\n rtpTimestamp?: number;\n synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata extends RTCEncodedFrameMetadata {\n dependencies?: number[];\n frameId?: number;\n height?: number;\n spatialIndex?: number;\n temporalIndex?: number;\n timestamp?: number;\n width?: number;\n}\n\ninterface ReadableStreamGetReaderOptions {\n /**\n * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n *\n * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle \"bring your own buffer\" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n */\n mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamIteratorOptions {\n /**\n * Asynchronously iterates over the chunks in the stream's internal queue.\n *\n * Asynchronously iterating over the stream will lock it, preventing any other consumer from acquiring a reader. The lock will be released if the async iterator's return() method is called, e.g. by breaking out of the loop.\n *\n * By default, calling the async iterator's return() method will also cancel the stream. To prevent this, use the stream's values() method, passing true for the preventCancel option.\n */\n preventCancel?: boolean;\n}\n\ninterface ReadableStreamReadDoneResult {\n done: true;\n value: T | undefined;\n}\n\ninterface ReadableStreamReadValueResult {\n done: false;\n value: T;\n}\n\ninterface ReadableWritablePair {\n readable: ReadableStream;\n /**\n * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n */\n writable: WritableStream;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n type?: WorkerType;\n updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface ReportingObserverOptions {\n buffered?: boolean;\n types?: string[];\n}\n\ninterface RequestInit {\n /** A BodyInit object or null to set request's body. */\n body?: BodyInit | null;\n /** A string indicating how the request will interact with the browser's cache to set request's cache. */\n cache?: RequestCache;\n /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */\n credentials?: RequestCredentials;\n /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */\n headers?: HeadersInit;\n /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */\n integrity?: string;\n /** A boolean to set request's keepalive. */\n keepalive?: boolean;\n /** A string to set request's method. */\n method?: string;\n /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */\n mode?: RequestMode;\n priority?: RequestPriority;\n /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */\n redirect?: RequestRedirect;\n /** A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request's referrer. */\n referrer?: string;\n /** A referrer policy to set request's referrerPolicy. */\n referrerPolicy?: ReferrerPolicy;\n /** An AbortSignal to set request's signal. */\n signal?: AbortSignal | null;\n /** Can only be null. Used to disassociate request from any Window. */\n window?: null;\n}\n\ninterface ResponseInit {\n headers?: HeadersInit;\n status?: number;\n statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n d?: string;\n r?: string;\n t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n saltLength: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n blockedURI?: string;\n columnNumber?: number;\n disposition?: SecurityPolicyViolationEventDisposition;\n documentURI?: string;\n effectiveDirective?: string;\n lineNumber?: number;\n originalPolicy?: string;\n referrer?: string;\n sample?: string;\n sourceFile?: string;\n statusCode?: number;\n violatedDirective?: string;\n}\n\ninterface StorageEstimate {\n quota?: number;\n usage?: number;\n}\n\ninterface StreamPipeOptions {\n preventAbort?: boolean;\n preventCancel?: boolean;\n /**\n * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n *\n * Errors and closures of the source and destination streams propagate as follows:\n *\n * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.\n *\n * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.\n *\n * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n *\n * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n *\n * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n */\n preventClose?: boolean;\n signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n transfer?: Transferable[];\n}\n\ninterface TextDecodeOptions {\n stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n read: number;\n written: number;\n}\n\ninterface Transformer {\n flush?: TransformerFlushCallback;\n readableType?: undefined;\n start?: TransformerStartCallback;\n transform?: TransformerTransformCallback;\n writableType?: undefined;\n}\n\ninterface UnderlyingByteSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableByteStreamController) => void | PromiseLike;\n start?: (controller: ReadableByteStreamController) => any;\n type: \"bytes\";\n}\n\ninterface UnderlyingDefaultSource {\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableStreamDefaultController) => void | PromiseLike;\n start?: (controller: ReadableStreamDefaultController) => any;\n type?: undefined;\n}\n\ninterface UnderlyingSink {\n abort?: UnderlyingSinkAbortCallback;\n close?: UnderlyingSinkCloseCallback;\n start?: UnderlyingSinkStartCallback;\n type?: undefined;\n write?: UnderlyingSinkWriteCallback;\n}\n\ninterface UnderlyingSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: UnderlyingSourcePullCallback;\n start?: UnderlyingSourceStartCallback;\n type?: ReadableStreamType;\n}\n\ninterface VideoColorSpaceInit {\n fullRange?: boolean | null;\n matrix?: VideoMatrixCoefficients | null;\n primaries?: VideoColorPrimaries | null;\n transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n bitrate: number;\n colorGamut?: ColorGamut;\n contentType: string;\n framerate: number;\n hasAlphaChannel?: boolean;\n hdrMetadataType?: HdrMetadataType;\n height: number;\n scalabilityMode?: string;\n transferFunction?: TransferFunction;\n width: number;\n}\n\ninterface VideoDecoderConfig {\n codec: string;\n codedHeight?: number;\n codedWidth?: number;\n colorSpace?: VideoColorSpaceInit;\n description?: AllowSharedBufferSource;\n displayAspectHeight?: number;\n displayAspectWidth?: number;\n hardwareAcceleration?: HardwareAcceleration;\n optimizeForLatency?: boolean;\n}\n\ninterface VideoDecoderInit {\n error: WebCodecsErrorCallback;\n output: VideoFrameOutputCallback;\n}\n\ninterface VideoDecoderSupport {\n config?: VideoDecoderConfig;\n supported?: boolean;\n}\n\ninterface VideoEncoderConfig {\n alpha?: AlphaOption;\n avc?: AvcEncoderConfig;\n bitrate?: number;\n bitrateMode?: VideoEncoderBitrateMode;\n codec: string;\n contentHint?: string;\n displayHeight?: number;\n displayWidth?: number;\n framerate?: number;\n hardwareAcceleration?: HardwareAcceleration;\n height: number;\n latencyMode?: LatencyMode;\n scalabilityMode?: string;\n width: number;\n}\n\ninterface VideoEncoderEncodeOptions {\n avc?: VideoEncoderEncodeOptionsForAvc;\n keyFrame?: boolean;\n}\n\ninterface VideoEncoderEncodeOptionsForAvc {\n quantizer?: number | null;\n}\n\ninterface VideoEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedVideoChunkOutputCallback;\n}\n\ninterface VideoEncoderSupport {\n config?: VideoEncoderConfig;\n supported?: boolean;\n}\n\ninterface VideoFrameBufferInit {\n codedHeight: number;\n codedWidth: number;\n colorSpace?: VideoColorSpaceInit;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n format: VideoPixelFormat;\n layout?: PlaneLayout[];\n timestamp: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface VideoFrameCopyToOptions {\n colorSpace?: PredefinedColorSpace;\n format?: VideoPixelFormat;\n layout?: PlaneLayout[];\n rect?: DOMRectInit;\n}\n\ninterface VideoFrameInit {\n alpha?: AlphaOption;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n timestamp?: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface WebGLContextAttributes {\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n desynchronized?: boolean;\n failIfMajorPerformanceCaveat?: boolean;\n powerPreference?: WebGLPowerPreference;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WebTransportCloseInfo {\n closeCode?: number;\n reason?: string;\n}\n\ninterface WebTransportErrorOptions {\n source?: WebTransportErrorSource;\n streamErrorCode?: number | null;\n}\n\ninterface WebTransportHash {\n algorithm?: string;\n value?: BufferSource;\n}\n\ninterface WebTransportOptions {\n allowPooling?: boolean;\n congestionControl?: WebTransportCongestionControl;\n requireUnreliable?: boolean;\n serverCertificateHashes?: WebTransportHash[];\n}\n\ninterface WebTransportSendOptions {\n sendOrder?: number;\n}\n\ninterface WebTransportSendStreamOptions extends WebTransportSendOptions {\n}\n\ninterface WorkerOptions {\n credentials?: RequestCredentials;\n name?: string;\n type?: WorkerType;\n}\n\ninterface WriteParams {\n data?: BufferSource | Blob | string | null;\n position?: number | null;\n size?: number | null;\n type: WriteCommandType;\n}\n\n/**\n * The **`ANGLE_instanced_arrays`** extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)\n */\ninterface ANGLE_instanced_arrays {\n /**\n * The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawArrays() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE)\n */\n drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n /**\n * The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawElements() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE)\n */\n drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n /**\n * The **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the WebGL API modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with ANGLE_instanced_arrays.drawArraysInstancedANGLE() and ANGLE_instanced_arrays.drawElementsInstancedANGLE().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE)\n */\n vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;\n}\n\n/**\n * The **`AbortController`** interface represents a controller object that allows you to abort one or more Web requests as and when desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)\n */\ninterface AbortController {\n /**\n * The **`signal`** read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * The **`abort()`** method of the AbortController interface aborts an asynchronous operation before it has completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)\n */\n abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n prototype: AbortController;\n new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n \"abort\": Event;\n}\n\n/**\n * The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an AbortController object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)\n */\ninterface AbortSignal extends EventTarget {\n /**\n * The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (`true`) or not (`false`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)\n */\n readonly aborted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */\n onabort: ((this: AbortSignal, ev: Event) => any) | null;\n /**\n * The **`reason`** read-only property returns a JavaScript value that indicates the abort reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason)\n */\n readonly reason: any;\n /**\n * The **`throwIfAborted()`** method throws the signal's abort AbortSignal.reason if the signal has been aborted; otherwise it does nothing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted)\n */\n throwIfAborted(): void;\n addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n prototype: AbortSignal;\n new(): AbortSignal;\n /**\n * The **`AbortSignal.abort()`** static method returns an AbortSignal that is already set as aborted (and which does not trigger an AbortSignal/abort_event event).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static)\n */\n abort(reason?: any): AbortSignal;\n /**\n * The **`AbortSignal.any()`** static method takes an iterable of abort signals and returns an AbortSignal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/any_static)\n */\n any(signals: AbortSignal[]): AbortSignal;\n /**\n * The **`AbortSignal.timeout()`** static method returns an AbortSignal that will automatically abort after a specified time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static)\n */\n timeout(milliseconds: number): AbortSignal;\n};\n\ninterface AbstractWorkerEventMap {\n \"error\": ErrorEvent;\n}\n\ninterface AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */\n onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ninterface AnimationFrameProvider {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\n cancelAnimationFrame(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\n requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/**\n * The **`AudioData`** interface of the WebCodecs API represents an audio sample.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData)\n */\ninterface AudioData {\n /**\n * The **`duration`** read-only property of the AudioData interface returns the duration in microseconds of this `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration)\n */\n readonly duration: number;\n /**\n * The **`format`** read-only property of the AudioData interface returns the sample format of the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format)\n */\n readonly format: AudioSampleFormat | null;\n /**\n * The **`numberOfChannels`** read-only property of the AudioData interface returns the number of channels in the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels)\n */\n readonly numberOfChannels: number;\n /**\n * The **`numberOfFrames`** read-only property of the AudioData interface returns the number of frames in the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames)\n */\n readonly numberOfFrames: number;\n /**\n * The **`sampleRate`** read-only property of the AudioData interface returns the sample rate in Hz.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate)\n */\n readonly sampleRate: number;\n /**\n * The **`timestamp`** read-only property of the AudioData interface returns the timestamp of this `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`allocationSize()`** method of the AudioData interface returns the size in bytes required to hold the current sample as filtered by options passed into the method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize)\n */\n allocationSize(options: AudioDataCopyToOptions): number;\n /**\n * The **`clone()`** method of the AudioData interface creates a new `AudioData` object with reference to the same media resource as the original.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone)\n */\n clone(): AudioData;\n /**\n * The **`close()`** method of the AudioData interface clears all states and releases the reference to the media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close)\n */\n close(): void;\n /**\n * The **`copyTo()`** method of the AudioData interface copies a plane of an `AudioData` object to a destination buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions): void;\n}\n\ndeclare var AudioData: {\n prototype: AudioData;\n new(init: AudioDataInit): AudioData;\n};\n\ninterface AudioDecoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`AudioDecoder`** interface of the WebCodecs API decodes chunks of audio.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)\n */\ninterface AudioDecoder extends EventTarget {\n /**\n * The **`decodeQueueSize`** read-only property of the AudioDecoder interface returns the number of pending decode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize)\n */\n readonly decodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */\n ondequeue: ((this: AudioDecoder, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the AudioDecoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the AudioDecoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the AudioDecoder interface enqueues a control message to configure the audio decoder for decoding chunks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure)\n */\n configure(config: AudioDecoderConfig): void;\n /**\n * The **`decode()`** method of the AudioDecoder interface enqueues a control message to decode a given chunk of audio.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode)\n */\n decode(chunk: EncodedAudioChunk): void;\n /**\n * The **`flush()`** method of the AudioDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the AudioDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioDecoder: {\n prototype: AudioDecoder;\n new(init: AudioDecoderInit): AudioDecoder;\n /**\n * The **`isConfigSupported()`** static method of the AudioDecoder interface checks if the given config is supported (that is, if AudioDecoder objects can be successfully configured with the given config).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static)\n */\n isConfigSupported(config: AudioDecoderConfig): Promise;\n};\n\ninterface AudioEncoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`AudioEncoder`** interface of the WebCodecs API encodes AudioData objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)\n */\ninterface AudioEncoder extends EventTarget {\n /**\n * The **`encodeQueueSize`** read-only property of the AudioEncoder interface returns the number of pending encode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize)\n */\n readonly encodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */\n ondequeue: ((this: AudioEncoder, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the AudioEncoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the AudioEncoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the AudioEncoder interface enqueues a control message to configure the audio encoder for encoding chunks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure)\n */\n configure(config: AudioEncoderConfig): void;\n /**\n * The **`encode()`** method of the AudioEncoder interface enqueues a control message to encode a given AudioData object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode)\n */\n encode(data: AudioData): void;\n /**\n * The **`flush()`** method of the AudioEncoder interface returns a Promise that resolves once all pending messages in the queue have been completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the AudioEncoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioEncoder: {\n prototype: AudioEncoder;\n new(init: AudioEncoderInit): AudioEncoder;\n /**\n * The **`isConfigSupported()`** static method of the AudioEncoder interface checks if the given config is supported (that is, if AudioEncoder objects can be successfully configured with the given config).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static)\n */\n isConfigSupported(config: AudioEncoderConfig): Promise;\n};\n\n/**\n * The **`Blob`** interface represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a ReadableStream so its methods can be used for processing the data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)\n */\ninterface Blob {\n /**\n * The **`size`** read-only property of the Blob interface returns the size of the Blob or File in bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size)\n */\n readonly size: number;\n /**\n * The **`type`** read-only property of the Blob interface returns the MIME type of the file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type)\n */\n readonly type: string;\n /**\n * The **`arrayBuffer()`** method of the Blob interface returns a Promise that resolves with the contents of the blob as binary data contained in an ArrayBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer)\n */\n arrayBuffer(): Promise;\n /**\n * The **`bytes()`** method of the Blob interface returns a Promise that resolves with a Uint8Array containing the contents of the blob as an array of bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/bytes)\n */\n bytes(): Promise>;\n /**\n * The **`slice()`** method of the Blob interface creates and returns a new `Blob` object which contains data from a subset of the blob on which it's called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice)\n */\n slice(start?: number, end?: number, contentType?: string): Blob;\n /**\n * The **`stream()`** method of the Blob interface returns a ReadableStream which upon reading returns the data contained within the `Blob`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream)\n */\n stream(): ReadableStream>;\n /**\n * The **`text()`** method of the string containing the contents of the blob, interpreted as UTF-8.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text)\n */\n text(): Promise;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\ninterface Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */\n readonly body: ReadableStream> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n readonly bodyUsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) */\n bytes(): Promise>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */\n formData(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */\n json(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */\n text(): Promise;\n}\n\ninterface BroadcastChannelEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\n/**\n * The **`BroadcastChannel`** interface represents a named channel that any browsing context of a given origin can subscribe to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel)\n */\ninterface BroadcastChannel extends EventTarget {\n /**\n * The **`name`** read-only property of the BroadcastChannel interface returns a string, which uniquely identifies the given channel with its name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */\n onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */\n onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /**\n * The **`close()`** method of the BroadcastChannel interface terminates the connection to the underlying channel, allowing the object to be garbage collected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)\n */\n close(): void;\n /**\n * The **`postMessage()`** method of the BroadcastChannel interface sends a message, which can be of any kind of Object, to each listener in any browsing context with the same origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)\n */\n postMessage(message: any): void;\n addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n prototype: BroadcastChannel;\n new(name: string): BroadcastChannel;\n};\n\n/**\n * The **`ByteLengthQueuingStrategy`** interface of the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)\n */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy {\n /**\n * The read-only **`ByteLengthQueuingStrategy.highWaterMark`** property returns the total number of bytes that can be contained in the internal queue before backpressure is applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark)\n */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n prototype: ByteLengthQueuingStrategy;\n new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/**\n * The **`CSSImageValue`** interface of the CSS Typed Object Model API represents values for properties that take an image, for example background-image, list-style-image, or border-image-source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue)\n */\ninterface CSSImageValue extends CSSStyleValue {\n}\n\ndeclare var CSSImageValue: {\n prototype: CSSImageValue;\n new(): CSSImageValue;\n};\n\n/**\n * The **`CSSKeywordValue`** interface of the CSS Typed Object Model API creates an object to represent CSS keywords and other identifiers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue)\n */\ninterface CSSKeywordValue extends CSSStyleValue {\n /**\n * The **`value`** property of the `CSSKeywordValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value)\n */\n value: string;\n}\n\ndeclare var CSSKeywordValue: {\n prototype: CSSKeywordValue;\n new(value: string): CSSKeywordValue;\n};\n\ninterface CSSMathClamp extends CSSMathValue {\n readonly lower: CSSNumericValue;\n readonly upper: CSSNumericValue;\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathClamp: {\n prototype: CSSMathClamp;\n new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;\n};\n\n/**\n * The **`CSSMathInvert`** interface of the CSS Typed Object Model API represents a CSS calc used as `calc(1 / )`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert)\n */\ninterface CSSMathInvert extends CSSMathValue {\n /**\n * The CSSMathInvert.value read-only property of the A CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value)\n */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathInvert: {\n prototype: CSSMathInvert;\n new(arg: CSSNumberish): CSSMathInvert;\n};\n\n/**\n * The **`CSSMathMax`** interface of the CSS Typed Object Model API represents the CSS max function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax)\n */\ninterface CSSMathMax extends CSSMathValue {\n /**\n * The CSSMathMax.values read-only property of the which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMax: {\n prototype: CSSMathMax;\n new(...args: CSSNumberish[]): CSSMathMax;\n};\n\n/**\n * The **`CSSMathMin`** interface of the CSS Typed Object Model API represents the CSS min function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin)\n */\ninterface CSSMathMin extends CSSMathValue {\n /**\n * The CSSMathMin.values read-only property of the which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMin: {\n prototype: CSSMathMin;\n new(...args: CSSNumberish[]): CSSMathMin;\n};\n\n/**\n * The **`CSSMathNegate`** interface of the CSS Typed Object Model API negates the value passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate)\n */\ninterface CSSMathNegate extends CSSMathValue {\n /**\n * The CSSMathNegate.value read-only property of the A CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value)\n */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathNegate: {\n prototype: CSSMathNegate;\n new(arg: CSSNumberish): CSSMathNegate;\n};\n\n/**\n * The **`CSSMathProduct`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct)\n */\ninterface CSSMathProduct extends CSSMathValue {\n /**\n * The **`CSSMathProduct.values`** read-only property of the CSSMathProduct interface returns a A CSSNumericArray.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathProduct: {\n prototype: CSSMathProduct;\n new(...args: CSSNumberish[]): CSSMathProduct;\n};\n\n/**\n * The **`CSSMathSum`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum)\n */\ninterface CSSMathSum extends CSSMathValue {\n /**\n * The **`CSSMathSum.values`** read-only property of the CSSMathSum interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathSum: {\n prototype: CSSMathSum;\n new(...args: CSSNumberish[]): CSSMathSum;\n};\n\n/**\n * The **`CSSMathValue`** interface of the CSS Typed Object Model API a base class for classes representing complex numeric values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue)\n */\ninterface CSSMathValue extends CSSNumericValue {\n /**\n * The **`CSSMathValue.operator`** read-only property of the CSSMathValue interface indicates the operator that the current subtype represents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator)\n */\n readonly operator: CSSMathOperator;\n}\n\ndeclare var CSSMathValue: {\n prototype: CSSMathValue;\n new(): CSSMathValue;\n};\n\n/**\n * The **`CSSMatrixComponent`** interface of the CSS Typed Object Model API represents the matrix() and matrix3d() values of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent)\n */\ninterface CSSMatrixComponent extends CSSTransformComponent {\n /**\n * The **`matrix`** property of the See the matrix() and matrix3d() pages for examples.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix)\n */\n matrix: DOMMatrix;\n}\n\ndeclare var CSSMatrixComponent: {\n prototype: CSSMatrixComponent;\n new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;\n};\n\n/**\n * The **`CSSNumericArray`** interface of the CSS Typed Object Model API contains a list of CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray)\n */\ninterface CSSNumericArray {\n /**\n * The read-only **`length`** property of the An integer representing the number of CSSNumericValue objects in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length)\n */\n readonly length: number;\n forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;\n [index: number]: CSSNumericValue;\n}\n\ndeclare var CSSNumericArray: {\n prototype: CSSNumericArray;\n new(): CSSNumericArray;\n};\n\n/**\n * The **`CSSNumericValue`** interface of the CSS Typed Object Model API represents operations that all numeric values can perform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue)\n */\ninterface CSSNumericValue extends CSSStyleValue {\n /**\n * The **`add()`** method of the `CSSNumericValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add)\n */\n add(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`div()`** method of the supplied value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div)\n */\n div(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`equals()`** method of the value are strictly equal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals)\n */\n equals(...value: CSSNumberish[]): boolean;\n /**\n * The **`max()`** method of the passed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max)\n */\n max(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`min()`** method of the values passed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min)\n */\n min(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`mul()`** method of the the supplied value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul)\n */\n mul(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`sub()`** method of the `CSSNumericValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub)\n */\n sub(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`to()`** method of the another.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to)\n */\n to(unit: string): CSSUnitValue;\n /**\n * The **`toSum()`** method of the ```js-nolint toSum(units) ``` - `units` - : The units to convert to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum)\n */\n toSum(...units: string[]): CSSMathSum;\n /**\n * The **`type()`** method of the `CSSNumericValue`, one of `angle`, `flex`, `frequency`, `length`, `resolution`, `percent`, `percentHint`, or `time`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type)\n */\n type(): CSSNumericType;\n}\n\ndeclare var CSSNumericValue: {\n prototype: CSSNumericValue;\n new(): CSSNumericValue;\n};\n\n/**\n * The **`CSSPerspective`** interface of the CSS Typed Object Model API represents the perspective() value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective)\n */\ninterface CSSPerspective extends CSSTransformComponent {\n /**\n * The **`length`** property of the It is used to apply a perspective transform to the element and its content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length)\n */\n length: CSSPerspectiveValue;\n}\n\ndeclare var CSSPerspective: {\n prototype: CSSPerspective;\n new(length: CSSPerspectiveValue): CSSPerspective;\n};\n\n/**\n * The **`CSSRotate`** interface of the CSS Typed Object Model API represents the rotate value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate)\n */\ninterface CSSRotate extends CSSTransformComponent {\n /**\n * The **`angle`** property of the denotes a clockwise rotation, a negative angle a counter-clockwise one.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle)\n */\n angle: CSSNumericValue;\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x)\n */\n x: CSSNumberish;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y)\n */\n y: CSSNumberish;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z)\n */\n z: CSSNumberish;\n}\n\ndeclare var CSSRotate: {\n prototype: CSSRotate;\n new(angle: CSSNumericValue): CSSRotate;\n new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;\n};\n\n/**\n * The **`CSSScale`** interface of the CSS Typed Object Model API represents the scale() and scale3d() values of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale)\n */\ninterface CSSScale extends CSSTransformComponent {\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x)\n */\n x: CSSNumberish;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y)\n */\n y: CSSNumberish;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z)\n */\n z: CSSNumberish;\n}\n\ndeclare var CSSScale: {\n prototype: CSSScale;\n new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;\n};\n\n/**\n * The **`CSSSkew`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew)\n */\ninterface CSSSkew extends CSSTransformComponent {\n /**\n * The **`ax`** property of the along the x-axis (or abscissa).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax)\n */\n ax: CSSNumericValue;\n /**\n * The **`ay`** property of the along the y-axis (or ordinate).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay)\n */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkew: {\n prototype: CSSSkew;\n new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;\n};\n\n/**\n * The **`CSSSkewX`** interface of the CSS Typed Object Model API represents the `skewX()` value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX)\n */\ninterface CSSSkewX extends CSSTransformComponent {\n /**\n * The **`ax`** property of the along the x-axis (or abscissa).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax)\n */\n ax: CSSNumericValue;\n}\n\ndeclare var CSSSkewX: {\n prototype: CSSSkewX;\n new(ax: CSSNumericValue): CSSSkewX;\n};\n\n/**\n * The **`CSSSkewY`** interface of the CSS Typed Object Model API represents the `skewY()` value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY)\n */\ninterface CSSSkewY extends CSSTransformComponent {\n /**\n * The **`ay`** property of the along the y-axis (or ordinate).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay)\n */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkewY: {\n prototype: CSSSkewY;\n new(ay: CSSNumericValue): CSSSkewY;\n};\n\n/**\n * The **`CSSStyleValue`** interface of the CSS Typed Object Model API is the base class of all CSS values accessible through the Typed OM API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue)\n */\ninterface CSSStyleValue {\n toString(): string;\n}\n\ndeclare var CSSStyleValue: {\n prototype: CSSStyleValue;\n new(): CSSStyleValue;\n};\n\n/**\n * The **`CSSTransformComponent`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent)\n */\ninterface CSSTransformComponent {\n /**\n * The **`is2D`** read-only property of the CSSTransformComponent interface indicates where the transform is 2D or 3D.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D)\n */\n is2D: boolean;\n /**\n * The **`toMatrix()`** method of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix)\n */\n toMatrix(): DOMMatrix;\n toString(): string;\n}\n\ndeclare var CSSTransformComponent: {\n prototype: CSSTransformComponent;\n new(): CSSTransformComponent;\n};\n\n/**\n * The **`CSSTransformValue`** interface of the CSS Typed Object Model API represents `transform-list` values as used by the CSS transform property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue)\n */\ninterface CSSTransformValue extends CSSStyleValue {\n /**\n * The read-only **`is2D`** property of the In the case of the `CSSTransformValue` this property returns true unless any of the individual functions return false for `Is2D`, in which case it returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D)\n */\n readonly is2D: boolean;\n /**\n * The read-only **`length`** property of the the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length)\n */\n readonly length: number;\n /**\n * The **`toMatrix()`** method of the ```js-nolint toMatrix() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix)\n */\n toMatrix(): DOMMatrix;\n forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;\n [index: number]: CSSTransformComponent;\n}\n\ndeclare var CSSTransformValue: {\n prototype: CSSTransformValue;\n new(transforms: CSSTransformComponent[]): CSSTransformValue;\n};\n\n/**\n * The **`CSSTranslate`** interface of the CSS Typed Object Model API represents the translate() value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate)\n */\ninterface CSSTranslate extends CSSTransformComponent {\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x)\n */\n x: CSSNumericValue;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y)\n */\n y: CSSNumericValue;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z)\n */\n z: CSSNumericValue;\n}\n\ndeclare var CSSTranslate: {\n prototype: CSSTranslate;\n new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;\n};\n\n/**\n * The **`CSSUnitValue`** interface of the CSS Typed Object Model API represents values that contain a single unit type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue)\n */\ninterface CSSUnitValue extends CSSNumericValue {\n /**\n * The **`CSSUnitValue.unit`** read-only property of the CSSUnitValue interface returns a string indicating the type of unit.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit)\n */\n readonly unit: string;\n /**\n * The **`CSSUnitValue.value`** property of the A double.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value)\n */\n value: number;\n}\n\ndeclare var CSSUnitValue: {\n prototype: CSSUnitValue;\n new(value: number, unit: string): CSSUnitValue;\n};\n\n/**\n * The **`CSSUnparsedValue`** interface of the CSS Typed Object Model API represents property values that reference custom properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue)\n */\ninterface CSSUnparsedValue extends CSSStyleValue {\n /**\n * The **`length`** read-only property of the An integer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length)\n */\n readonly length: number;\n forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;\n [index: number]: CSSUnparsedSegment;\n}\n\ndeclare var CSSUnparsedValue: {\n prototype: CSSUnparsedValue;\n new(members: CSSUnparsedSegment[]): CSSUnparsedValue;\n};\n\n/**\n * The **`CSSVariableReferenceValue`** interface of the CSS Typed Object Model API allows you to create a custom name for a built-in CSS value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue)\n */\ninterface CSSVariableReferenceValue {\n /**\n * The **`fallback`** read-only property of the A CSSUnparsedValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback)\n */\n readonly fallback: CSSUnparsedValue | null;\n /**\n * The **`variable`** property of the A string beginning with `--` (that is, a custom property name).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable)\n */\n variable: string;\n}\n\ndeclare var CSSVariableReferenceValue: {\n prototype: CSSVariableReferenceValue;\n new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;\n};\n\n/**\n * The **`Cache`** interface provides a persistent storage mechanism for Request / Response object pairs that are cached in long lived memory.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)\n */\ninterface Cache {\n /**\n * The **`add()`** method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add)\n */\n add(request: RequestInfo | URL): Promise;\n /**\n * The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)\n */\n addAll(requests: RequestInfo[]): Promise;\n /**\n * The **`delete()`** method of the Cache interface finds the Cache entry whose key is the request, and if found, deletes the Cache entry and returns a Promise that resolves to `true`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete)\n */\n delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /**\n * The **`keys()`** method of the Cache interface returns a representing the keys of the Cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys)\n */\n keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /**\n * The **`match()`** method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match)\n */\n match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /**\n * The **`matchAll()`** method of the Cache interface returns a Promise that resolves to an array of all matching responses in the Cache object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll)\n */\n matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /**\n * The **`put()`** method of the Often, you will just want to Window/fetch one or more requests, then add the result straight to your cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put)\n */\n put(request: RequestInfo | URL, response: Response): Promise;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\n/**\n * The **`CacheStorage`** interface represents the storage for Cache objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)\n */\ninterface CacheStorage {\n /**\n * The **`delete()`** method of the CacheStorage interface finds the Cache object matching the `cacheName`, and if found, deletes the Cache object and returns a Promise that resolves to `true`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete)\n */\n delete(cacheName: string): Promise;\n /**\n * The **`has()`** method of the CacheStorage interface returns a Promise that resolves to `true` if a You can access `CacheStorage` through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has)\n */\n has(cacheName: string): Promise;\n /**\n * The **`keys()`** method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys)\n */\n keys(): Promise;\n /**\n * The **`match()`** method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match)\n */\n match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise;\n /**\n * The **`open()`** method of the the Cache object matching the `cacheName`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open)\n */\n open(cacheName: string): Promise;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\ninterface CanvasCompositing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */\n globalAlpha: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */\n globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */\n drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */\n beginPath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */\n fill(fillRule?: CanvasFillRule): void;\n fill(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */\n isPointInStroke(x: number, y: number): boolean;\n isPointInStroke(path: Path2D, x: number, y: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */\n stroke(): void;\n stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */\n fillStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */\n strokeStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */\n createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */\n createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */\n filter: string;\n}\n\n/**\n * The **`CanvasGradient`** interface represents an opaque object describing a gradient.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n */\ninterface CanvasGradient {\n /**\n * The **`CanvasGradient.addColorStop()`** method adds a new color stop, defined by an `offset` and a `color`, to a given canvas gradient.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)\n */\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */\n createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n createImageData(imageData: ImageData): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */\n putImageData(imageData: ImageData, dx: number, dy: number): void;\n putImageData(imageData: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */\n imageSmoothingEnabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */\n imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */\n closePath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */\n lineTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */\n rect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */\n lineCap: CanvasLineCap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */\n lineDashOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */\n lineJoin: CanvasLineJoin;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */\n lineWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */\n miterLimit: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */\n getLineDash(): number[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: number[]): void;\n}\n\n/**\n * The **`CanvasPattern`** interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)\n */\ninterface CanvasPattern {\n /**\n * The **`CanvasPattern.setTransform()`** method uses a DOMMatrix object as the pattern's transformation matrix and invokes it on the pattern.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)\n */\n setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */\n clearRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */\n fillRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */\n strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\ninterface CanvasShadowStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */\n shadowBlur: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */\n shadowColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */\n shadowOffsetX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */\n shadowOffsetY: number;\n}\n\ninterface CanvasState {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isContextLost) */\n isContextLost(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */\n reset(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */\n restore(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */\n save(): void;\n}\n\ninterface CanvasText {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */\n fillText(text: string, x: number, y: number, maxWidth?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */\n measureText(text: string): TextMetrics;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */\n strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n}\n\ninterface CanvasTextDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */\n direction: CanvasDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */\n fontKerning: CanvasFontKerning;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */\n fontStretch: CanvasFontStretch;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */\n fontVariantCaps: CanvasFontVariantCaps;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */\n letterSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */\n textAlign: CanvasTextAlign;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */\n textBaseline: CanvasTextBaseline;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */\n textRendering: CanvasTextRendering;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */\n wordSpacing: string;\n}\n\ninterface CanvasTransform {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */\n getTransform(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */\n resetTransform(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */\n rotate(angle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */\n scale(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n setTransform(transform?: DOMMatrix2DInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */\n transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */\n translate(x: number, y: number): void;\n}\n\n/**\n * The `Client` interface represents an executable context such as a Worker, or a SharedWorker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client)\n */\ninterface Client {\n /**\n * The **`frameType`** read-only property of the Client interface indicates the type of browsing context of the current Client.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/frameType)\n */\n readonly frameType: FrameType;\n /**\n * The **`id`** read-only property of the Client interface returns the universally unique identifier of the Client object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/id)\n */\n readonly id: string;\n /**\n * The **`type`** read-only property of the Client interface indicates the type of client the service worker is controlling.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/type)\n */\n readonly type: ClientTypes;\n /**\n * The **`url`** read-only property of the Client interface returns the URL of the current service worker client.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/url)\n */\n readonly url: string;\n /**\n * The **`postMessage()`** method of the (a Window, Worker, or SharedWorker).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n}\n\ndeclare var Client: {\n prototype: Client;\n new(): Client;\n};\n\n/**\n * The `Clients` interface provides access to Client objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients)\n */\ninterface Clients {\n /**\n * The **`claim()`** method of the Clients interface allows an active service worker to set itself as the ServiceWorkerContainer.controller for all clients within its ServiceWorkerRegistration.scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/claim)\n */\n claim(): Promise;\n /**\n * The **`get()`** method of the `id` and returns it in a Promise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/get)\n */\n get(id: string): Promise;\n /**\n * The **`matchAll()`** method of the Clients interface returns a Promise for a list of service worker clients whose origin is the same as the associated service worker's origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/matchAll)\n */\n matchAll(options?: T): Promise>;\n /**\n * The **`openWindow()`** method of the Clients interface creates a new top level browsing context and loads a given URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/openWindow)\n */\n openWindow(url: string | URL): Promise;\n}\n\ndeclare var Clients: {\n prototype: Clients;\n new(): Clients;\n};\n\n/**\n * A `CloseEvent` is sent to clients using WebSockets when the connection is closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)\n */\ninterface CloseEvent extends Event {\n /**\n * The **`code`** read-only property of the CloseEvent interface returns a WebSocket connection close code indicating the reason the connection was closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)\n */\n readonly code: number;\n /**\n * The **`reason`** read-only property of the CloseEvent interface returns the WebSocket connection close reason the server gave for closing the connection; that is, a concise human-readable prose explanation for the closure.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)\n */\n readonly reason: string;\n /**\n * The **`wasClean`** read-only property of the CloseEvent interface returns `true` if the connection closed cleanly.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)\n */\n readonly wasClean: boolean;\n}\n\ndeclare var CloseEvent: {\n prototype: CloseEvent;\n new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\n/**\n * The **`CompressionStream`** interface of the Compression Streams API is an API for compressing a stream of data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream)\n */\ninterface CompressionStream extends GenericTransformStream {\n readonly readable: ReadableStream>;\n readonly writable: WritableStream;\n}\n\ndeclare var CompressionStream: {\n prototype: CompressionStream;\n new(format: CompressionFormat): CompressionStream;\n};\n\n/**\n * The **`CookieStore`** interface of the Cookie Store API provides methods for getting and setting cookies asynchronously from either a page or a service worker.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore)\n */\ninterface CookieStore extends EventTarget {\n /**\n * The **`delete()`** method of the CookieStore interface deletes a cookie that matches the given `name` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/delete)\n */\n delete(name: string): Promise;\n delete(options: CookieStoreDeleteOptions): Promise;\n /**\n * The **`get()`** method of the CookieStore interface returns a Promise that resolves to a single cookie matching the given `name` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/get)\n */\n get(name: string): Promise;\n get(options?: CookieStoreGetOptions): Promise;\n /**\n * The **`getAll()`** method of the CookieStore interface returns a Promise that resolves as an array of cookies that match the `name` or `options` passed to it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/getAll)\n */\n getAll(name: string): Promise;\n getAll(options?: CookieStoreGetOptions): Promise;\n /**\n * The **`set()`** method of the CookieStore interface sets a cookie with the given `name` and `value` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/set)\n */\n set(name: string, value: string): Promise;\n set(options: CookieInit): Promise;\n}\n\ndeclare var CookieStore: {\n prototype: CookieStore;\n new(): CookieStore;\n};\n\n/**\n * The **`CookieStoreManager`** interface of the Cookie Store API allows service workers to subscribe to cookie change events.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager)\n */\ninterface CookieStoreManager {\n /**\n * The **`getSubscriptions()`** method of the CookieStoreManager interface returns a list of all the cookie change subscriptions for this ServiceWorkerRegistration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/getSubscriptions)\n */\n getSubscriptions(): Promise;\n /**\n * The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)\n */\n subscribe(subscriptions: CookieStoreGetOptions[]): Promise;\n /**\n * The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)\n */\n unsubscribe(subscriptions: CookieStoreGetOptions[]): Promise;\n}\n\ndeclare var CookieStoreManager: {\n prototype: CookieStoreManager;\n new(): CookieStoreManager;\n};\n\n/**\n * The **`CountQueuingStrategy`** interface of the Streams API provides a built-in chunk counting queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)\n */\ninterface CountQueuingStrategy extends QueuingStrategy {\n /**\n * The read-only **`CountQueuingStrategy.highWaterMark`** property returns the total number of chunks that can be contained in the internal queue before backpressure is applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark)\n */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var CountQueuingStrategy: {\n prototype: CountQueuingStrategy;\n new(init: QueuingStrategyInit): CountQueuingStrategy;\n};\n\n/**\n * The **`Crypto`** interface represents basic cryptography features available in the current context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)\n */\ninterface Crypto {\n /**\n * The **`Crypto.subtle`** read-only property returns a cryptographic operations.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)\n */\n readonly subtle: SubtleCrypto;\n /**\n * The **`Crypto.getRandomValues()`** method lets you get cryptographically strong random values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues)\n */\n getRandomValues(array: T): T;\n /**\n * The **`randomUUID()`** method of the Crypto interface is used to generate a v4 UUID using a cryptographically secure random number generator.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)\n */\n randomUUID(): `${string}-${string}-${string}-${string}-${string}`;\n}\n\ndeclare var Crypto: {\n prototype: Crypto;\n new(): Crypto;\n};\n\n/**\n * The **`CryptoKey`** interface of the Web Crypto API represents a cryptographic key obtained from one of the SubtleCrypto methods SubtleCrypto.generateKey, SubtleCrypto.deriveKey, SubtleCrypto.importKey, or SubtleCrypto.unwrapKey.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)\n */\ninterface CryptoKey {\n /**\n * The read-only **`algorithm`** property of the CryptoKey interface returns an object describing the algorithm for which this key can be used, and any associated extra parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm)\n */\n readonly algorithm: KeyAlgorithm;\n /**\n * The read-only **`extractable`** property of the CryptoKey interface indicates whether or not the key may be extracted using `SubtleCrypto.exportKey()` or `SubtleCrypto.wrapKey()`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable)\n */\n readonly extractable: boolean;\n /**\n * The read-only **`type`** property of the CryptoKey interface indicates which kind of key is represented by the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type)\n */\n readonly type: KeyType;\n /**\n * The read-only **`usages`** property of the CryptoKey interface indicates what can be done with the key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages)\n */\n readonly usages: KeyUsage[];\n}\n\ndeclare var CryptoKey: {\n prototype: CryptoKey;\n new(): CryptoKey;\n};\n\n/**\n * The **`CustomEvent`** interface represents events initialized by an application for any purpose.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent)\n */\ninterface CustomEvent extends Event {\n /**\n * The read-only **`detail`** property of the CustomEvent interface returns any data passed when initializing the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)\n */\n readonly detail: T;\n /**\n * The **`CustomEvent.initCustomEvent()`** method initializes a CustomEvent object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)\n */\n initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;\n}\n\ndeclare var CustomEvent: {\n prototype: CustomEvent;\n new(type: string, eventInitDict?: CustomEventInit): CustomEvent;\n};\n\n/**\n * The **`DOMException`** interface represents an abnormal event (called an **exception**) that occurs as a result of calling a method or accessing a property of a web API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)\n */\ninterface DOMException extends Error {\n /**\n * The **`code`** read-only property of the DOMException interface returns one of the legacy error code constants, or `0` if none match.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)\n */\n readonly code: number;\n /**\n * The **`message`** read-only property of the a message or description associated with the given error name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message)\n */\n readonly message: string;\n /**\n * The **`name`** read-only property of the one of the strings associated with an error name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name)\n */\n readonly name: string;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n}\n\ndeclare var DOMException: {\n prototype: DOMException;\n new(message?: string, name?: string): DOMException;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n};\n\n/**\n * The **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix)\n */\ninterface DOMMatrix extends DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n f: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m44: number;\n /**\n * The **`invertSelf()`** method of the DOMMatrix interface inverts the original matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/invertSelf)\n */\n invertSelf(): DOMMatrix;\n /**\n * The **`multiplySelf()`** method of the DOMMatrix interface multiplies a matrix by the `otherMatrix` parameter, computing the dot product of the original matrix and the specified matrix: `A⋅B`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/multiplySelf)\n */\n multiplySelf(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The **`preMultiplySelf()`** method of the DOMMatrix interface modifies the matrix by pre-multiplying it with the specified `DOMMatrix`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/preMultiplySelf)\n */\n preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The `rotateAxisAngleSelf()` method of the DOMMatrix interface is a transformation method that rotates the source matrix by the given vector and angle, returning the altered matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateAxisAngleSelf)\n */\n rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /**\n * The `rotateFromVectorSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by rotating the matrix by the angle between the specified vector and `(1, 0)`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateFromVectorSelf)\n */\n rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\n /**\n * The `rotateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateSelf)\n */\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /**\n * The **`scale3dSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor to all three axes, centered on the given origin, with a default origin of `(0, 0, 0)`, returning the 3D-scaled matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf)\n */\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The **`scaleSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor, centered on the given origin, with a default origin of `(0, 0)`, returning the scaled matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf)\n */\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The `skewXSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewXSelf)\n */\n skewXSelf(sx?: number): DOMMatrix;\n /**\n * The `skewYSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewYSelf)\n */\n skewYSelf(sy?: number): DOMMatrix;\n /**\n * The `translateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/translateSelf)\n */\n translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrix: {\n prototype: DOMMatrix;\n new(init?: string | number[]): DOMMatrix;\n fromFloat32Array(array32: Float32Array): DOMMatrix;\n fromFloat64Array(array64: Float64Array): DOMMatrix;\n fromMatrix(other?: DOMMatrixInit): DOMMatrix;\n};\n\n/**\n * The **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix, suitable for 2D and 3D operations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly)\n */\ninterface DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly f: number;\n /**\n * The readonly **`is2D`** property of the DOMMatrixReadOnly interface is a Boolean flag that is `true` when the matrix is 2D.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D)\n */\n readonly is2D: boolean;\n /**\n * The readonly **`isIdentity`** property of the DOMMatrixReadOnly interface is a Boolean whose value is `true` if the matrix is the identity matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity)\n */\n readonly isIdentity: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m44: number;\n /**\n * The **`flipX()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the x-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX)\n */\n flipX(): DOMMatrix;\n /**\n * The **`flipY()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the y-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY)\n */\n flipY(): DOMMatrix;\n /**\n * The **`inverse()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the inverse of the original matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse)\n */\n inverse(): DOMMatrix;\n /**\n * The **`multiply()`** method of the DOMMatrixReadOnly interface creates and returns a new matrix which is the dot product of the matrix and the `otherMatrix` parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply)\n */\n multiply(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The `rotate()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix around each of its axes by the specified number of degrees.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate)\n */\n rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /**\n * The `rotateAxisAngle()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix by the given vector and angle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle)\n */\n rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /**\n * The `rotateFromVector()` method of the DOMMatrixReadOnly interface is returns a new DOMMatrix created by rotating the source matrix by the angle between the specified vector and `(1, 0)`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector)\n */\n rotateFromVector(x?: number, y?: number): DOMMatrix;\n /**\n * The **`scale()`** method of the original matrix with a scale transform applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale)\n */\n scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The **`scale3d()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the result of a 3D scale transform being applied to the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d)\n */\n scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** @deprecated */\n scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\n /**\n * The `skewX()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its x-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX)\n */\n skewX(sx?: number): DOMMatrix;\n /**\n * The `skewY()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its y-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY)\n */\n skewY(sy?: number): DOMMatrix;\n /**\n * The **`toFloat32Array()`** method of the DOMMatrixReadOnly interface returns a new Float32Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array)\n */\n toFloat32Array(): Float32Array;\n /**\n * The **`toFloat64Array()`** method of the DOMMatrixReadOnly interface returns a new Float64Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array)\n */\n toFloat64Array(): Float64Array;\n /**\n * The **`toJSON()`** method of the DOMMatrixReadOnly interface creates and returns a JSON object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toJSON)\n */\n toJSON(): any;\n /**\n * The **`transformPoint`** method of the You can also create a new `DOMPoint` by applying a matrix to a point with the DOMPointReadOnly.matrixTransform() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint)\n */\n transformPoint(point?: DOMPointInit): DOMPoint;\n /**\n * The `translate()` method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix with a translation applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate)\n */\n translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrixReadOnly: {\n prototype: DOMMatrixReadOnly;\n new(init?: string | number[]): DOMMatrixReadOnly;\n fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\n fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\n fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\n};\n\n/**\n * A **`DOMPoint`** object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint)\n */\ninterface DOMPoint extends DOMPointReadOnly {\n /**\n * The **`DOMPoint`** interface's **`w`** property holds the point's perspective value, w, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w)\n */\n w: number;\n /**\n * The **`DOMPoint`** interface's **`x`** property holds the horizontal coordinate, x, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x)\n */\n x: number;\n /**\n * The **`DOMPoint`** interface's **`y`** property holds the vertical coordinate, _y_, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y)\n */\n y: number;\n /**\n * The **`DOMPoint`** interface's **`z`** property specifies the depth coordinate of a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z)\n */\n z: number;\n}\n\ndeclare var DOMPoint: {\n prototype: DOMPoint;\n new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\n /**\n * The **`fromPoint()`** static method of the DOMPoint interface creates and returns a new mutable `DOMPoint` object given a source point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static)\n */\n fromPoint(other?: DOMPointInit): DOMPoint;\n};\n\n/**\n * The **`DOMPointReadOnly`** interface specifies the coordinate and perspective fields used by DOMPoint to define a 2D or 3D point in a coordinate system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly)\n */\ninterface DOMPointReadOnly {\n /**\n * The **`DOMPointReadOnly`** interface's **`w`** property holds the point's perspective value, `w`, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w)\n */\n readonly w: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`x`** property holds the horizontal coordinate, x, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x)\n */\n readonly x: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`y`** property holds the vertical coordinate, y, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y)\n */\n readonly y: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`z`** property holds the depth coordinate, z, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z)\n */\n readonly z: number;\n /**\n * The **`matrixTransform()`** method of the DOMPointReadOnly interface applies a matrix transform specified as an object to the DOMPointReadOnly object, creating and returning a new `DOMPointReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform)\n */\n matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\n /**\n * The DOMPointReadOnly method `toJSON()` returns an object giving the ```js-nolint toJSON() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMPointReadOnly: {\n prototype: DOMPointReadOnly;\n new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\n /**\n * The static **DOMPointReadOnly** method `fromPoint()` creates and returns a new `DOMPointReadOnly` object given a source point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static)\n */\n fromPoint(other?: DOMPointInit): DOMPointReadOnly;\n};\n\n/**\n * A `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an arbitrary quadrilateral.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad)\n */\ninterface DOMQuad {\n /**\n * The **`DOMQuad`** interface's **`p1`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1)\n */\n readonly p1: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p2`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2)\n */\n readonly p2: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p3`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3)\n */\n readonly p3: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p4`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4)\n */\n readonly p4: DOMPoint;\n /**\n * The DOMQuad method `getBounds()` returns a DOMRect object representing the smallest rectangle that fully contains the `DOMQuad` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds)\n */\n getBounds(): DOMRect;\n /**\n * The DOMQuad method `toJSON()` returns a ```js-nolint toJSON() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMQuad: {\n prototype: DOMQuad;\n new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\n fromQuad(other?: DOMQuadInit): DOMQuad;\n fromRect(other?: DOMRectInit): DOMQuad;\n};\n\n/**\n * A **`DOMRect`** describes the size and position of a rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect)\n */\ninterface DOMRect extends DOMRectReadOnly {\n /**\n * The **`height`** property of the DOMRect interface represents the height of the rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/height)\n */\n height: number;\n /**\n * The **`width`** property of the DOMRect interface represents the width of the rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/width)\n */\n width: number;\n /**\n * The **`x`** property of the DOMRect interface represents the x-coordinate of the rectangle, which is the horizontal distance between the viewport's left edge and the rectangle's origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/x)\n */\n x: number;\n /**\n * The **`y`** property of the DOMRect interface represents the y-coordinate of the rectangle, which is the vertical distance between the viewport's top edge and the rectangle's origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/y)\n */\n y: number;\n}\n\ndeclare var DOMRect: {\n prototype: DOMRect;\n new(x?: number, y?: number, width?: number, height?: number): DOMRect;\n /**\n * The **`fromRect()`** static method of the object with a given location and dimensions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static)\n */\n fromRect(other?: DOMRectInit): DOMRect;\n};\n\n/**\n * The **`DOMRectReadOnly`** interface specifies the standard properties (also used by DOMRect) to define a rectangle whose properties are immutable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly)\n */\ninterface DOMRectReadOnly {\n /**\n * The **`bottom`** read-only property of the **`DOMRectReadOnly`** interface returns the bottom coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom)\n */\n readonly bottom: number;\n /**\n * The **`height`** read-only property of the **`DOMRectReadOnly`** interface represents the height of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height)\n */\n readonly height: number;\n /**\n * The **`left`** read-only property of the **`DOMRectReadOnly`** interface returns the left coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left)\n */\n readonly left: number;\n /**\n * The **`right`** read-only property of the **`DOMRectReadOnly`** interface returns the right coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right)\n */\n readonly right: number;\n /**\n * The **`top`** read-only property of the **`DOMRectReadOnly`** interface returns the top coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top)\n */\n readonly top: number;\n /**\n * The **`width`** read-only property of the **`DOMRectReadOnly`** interface represents the width of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width)\n */\n readonly width: number;\n /**\n * The **`x`** read-only property of the **`DOMRectReadOnly`** interface represents the x coordinate of the `DOMRect`'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x)\n */\n readonly x: number;\n /**\n * The **`y`** read-only property of the **`DOMRectReadOnly`** interface represents the y coordinate of the `DOMRect`'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y)\n */\n readonly y: number;\n /**\n * The DOMRectReadOnly method `toJSON()` returns a JSON representation of the `DOMRectReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMRectReadOnly: {\n prototype: DOMRectReadOnly;\n new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\n /**\n * The **`fromRect()`** static method of the object with a given location and dimensions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static)\n */\n fromRect(other?: DOMRectInit): DOMRectReadOnly;\n};\n\n/**\n * The **`DOMStringList`** interface is a legacy type returned by some APIs and represents a non-modifiable list of strings (`DOMString`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)\n */\ninterface DOMStringList {\n /**\n * The read-only **`length`** property indicates the number of strings in the DOMStringList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)\n */\n readonly length: number;\n /**\n * The **`contains()`** method returns a boolean indicating whether the given string is in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)\n */\n contains(string: string): boolean;\n /**\n * The **`item()`** method returns a string from a `DOMStringList` by index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)\n */\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n prototype: DOMStringList;\n new(): DOMStringList;\n};\n\n/**\n * The **`DecompressionStream`** interface of the Compression Streams API is an API for decompressing a stream of data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream)\n */\ninterface DecompressionStream extends GenericTransformStream {\n readonly readable: ReadableStream>;\n readonly writable: WritableStream;\n}\n\ndeclare var DecompressionStream: {\n prototype: DecompressionStream;\n new(format: CompressionFormat): DecompressionStream;\n};\n\ninterface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap, MessageEventTargetEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n \"rtctransform\": RTCTransformEvent;\n}\n\n/**\n * The **`DedicatedWorkerGlobalScope`** object (the Worker global scope) is accessible through the WorkerGlobalScope.self keyword.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope)\n */\ninterface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider, MessageEventTarget {\n /**\n * The **`name`** read-only property of the the Worker.Worker constructor can pass to get a reference to the DedicatedWorkerGlobalScope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */\n onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: RTCTransformEvent) => any) | null;\n /**\n * The **`close()`** method of the DedicatedWorkerGlobalScope interface discards any tasks queued in the `DedicatedWorkerGlobalScope`'s event loop, effectively closing this particular scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close)\n */\n close(): void;\n /**\n * The **`postMessage()`** method of the DedicatedWorkerGlobalScope interface sends a message to the main thread that spawned it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var DedicatedWorkerGlobalScope: {\n prototype: DedicatedWorkerGlobalScope;\n new(): DedicatedWorkerGlobalScope;\n};\n\n/**\n * The **`EXT_blend_minmax`** extension is part of the WebGL API and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax)\n */\ninterface EXT_blend_minmax {\n readonly MIN_EXT: 0x8007;\n readonly MAX_EXT: 0x8008;\n}\n\n/**\n * The **`EXT_color_buffer_float`** extension is part of WebGL and adds the ability to render a variety of floating point formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float)\n */\ninterface EXT_color_buffer_float {\n}\n\n/**\n * The **`EXT_color_buffer_half_float`** extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float)\n */\ninterface EXT_color_buffer_half_float {\n readonly RGBA16F_EXT: 0x881A;\n readonly RGB16F_EXT: 0x881B;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/**\n * The WebGL API's `EXT_float_blend` extension allows blending and draw buffers with 32-bit floating-point components.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend)\n */\ninterface EXT_float_blend {\n}\n\n/**\n * The **`EXT_frag_depth`** extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)\n */\ninterface EXT_frag_depth {\n}\n\n/**\n * The **`EXT_sRGB`** extension is part of the WebGL API and adds sRGB support to textures and framebuffer objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB)\n */\ninterface EXT_sRGB {\n readonly SRGB_EXT: 0x8C40;\n readonly SRGB_ALPHA_EXT: 0x8C42;\n readonly SRGB8_ALPHA8_EXT: 0x8C43;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;\n}\n\n/**\n * The **`EXT_shader_texture_lod`** extension is part of the WebGL API and adds additional texture functions to the OpenGL ES Shading Language which provide the shader writer with explicit control of LOD (Level of detail).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod)\n */\ninterface EXT_shader_texture_lod {\n}\n\n/**\n * The `EXT_texture_compression_bptc` extension is part of the WebGL API and exposes 4 BPTC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc)\n */\ninterface EXT_texture_compression_bptc {\n readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;\n readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;\n readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;\n readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;\n}\n\n/**\n * The `EXT_texture_compression_rgtc` extension is part of the WebGL API and exposes 4 RGTC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc)\n */\ninterface EXT_texture_compression_rgtc {\n readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;\n readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;\n readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;\n readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;\n}\n\n/**\n * The **`EXT_texture_filter_anisotropic`** extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)\n */\ninterface EXT_texture_filter_anisotropic {\n readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;\n}\n\n/**\n * The **`EXT_texture_norm16`** extension is part of the WebGL API and provides a set of new 16-bit signed normalized and unsigned normalized formats (fixed-point texture, renderbuffer and texture buffer).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16)\n */\ninterface EXT_texture_norm16 {\n readonly R16_EXT: 0x822A;\n readonly RG16_EXT: 0x822C;\n readonly RGB16_EXT: 0x8054;\n readonly RGBA16_EXT: 0x805B;\n readonly R16_SNORM_EXT: 0x8F98;\n readonly RG16_SNORM_EXT: 0x8F99;\n readonly RGB16_SNORM_EXT: 0x8F9A;\n readonly RGBA16_SNORM_EXT: 0x8F9B;\n}\n\n/**\n * The **`EncodedAudioChunk`** interface of the WebCodecs API represents a chunk of encoded audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk)\n */\ninterface EncodedAudioChunk {\n /**\n * The **`byteLength`** read-only property of the EncodedAudioChunk interface returns the length in bytes of the encoded audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength)\n */\n readonly byteLength: number;\n /**\n * The **`duration`** read-only property of the EncodedAudioChunk interface returns an integer indicating the duration of the audio in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration)\n */\n readonly duration: number | null;\n /**\n * The **`timestamp`** read-only property of the EncodedAudioChunk interface returns an integer indicating the timestamp of the audio in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`type`** read-only property of the EncodedAudioChunk interface returns a value indicating whether the audio chunk is a key chunk, which does not relying on other frames for decoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type)\n */\n readonly type: EncodedAudioChunkType;\n /**\n * The **`copyTo()`** method of the EncodedAudioChunk interface copies the encoded chunk of audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedAudioChunk: {\n prototype: EncodedAudioChunk;\n new(init: EncodedAudioChunkInit): EncodedAudioChunk;\n};\n\n/**\n * The **`EncodedVideoChunk`** interface of the WebCodecs API represents a chunk of encoded video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk)\n */\ninterface EncodedVideoChunk {\n /**\n * The **`byteLength`** read-only property of the EncodedVideoChunk interface returns the length in bytes of the encoded video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength)\n */\n readonly byteLength: number;\n /**\n * The **`duration`** read-only property of the EncodedVideoChunk interface returns an integer indicating the duration of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration)\n */\n readonly duration: number | null;\n /**\n * The **`timestamp`** read-only property of the EncodedVideoChunk interface returns an integer indicating the timestamp of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`type`** read-only property of the EncodedVideoChunk interface returns a value indicating whether the video chunk is a key chunk, which does not rely on other frames for decoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type)\n */\n readonly type: EncodedVideoChunkType;\n /**\n * The **`copyTo()`** method of the EncodedVideoChunk interface copies the encoded chunk of video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedVideoChunk: {\n prototype: EncodedVideoChunk;\n new(init: EncodedVideoChunkInit): EncodedVideoChunk;\n};\n\n/**\n * The **`ErrorEvent`** interface represents events providing information related to errors in scripts or in files.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)\n */\ninterface ErrorEvent extends Event {\n /**\n * The **`colno`** read-only property of the ErrorEvent interface returns an integer containing the column number of the script file on which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno)\n */\n readonly colno: number;\n /**\n * The **`error`** read-only property of the ErrorEvent interface returns a JavaScript value, such as an Error or DOMException, representing the error associated with this event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error)\n */\n readonly error: any;\n /**\n * The **`filename`** read-only property of the ErrorEvent interface returns a string containing the name of the script file in which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename)\n */\n readonly filename: string;\n /**\n * The **`lineno`** read-only property of the ErrorEvent interface returns an integer containing the line number of the script file on which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno)\n */\n readonly lineno: number;\n /**\n * The **`message`** read-only property of the ErrorEvent interface returns a string containing a human-readable error message describing the problem.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message)\n */\n readonly message: string;\n}\n\ndeclare var ErrorEvent: {\n prototype: ErrorEvent;\n new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\n/**\n * The **`Event`** interface represents an event which takes place on an `EventTarget`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)\n */\ninterface Event {\n /**\n * The **`bubbles`** read-only property of the Event interface indicates whether the event bubbles up through the DOM tree or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)\n */\n readonly bubbles: boolean;\n /**\n * The **`cancelBubble`** property of the Event interface is deprecated.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)\n */\n cancelBubble: boolean;\n /**\n * The **`cancelable`** read-only property of the Event interface indicates whether the event can be canceled, and therefore prevented as if the event never happened.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)\n */\n readonly cancelable: boolean;\n /**\n * The read-only **`composed`** property of the or not the event will propagate across the shadow DOM boundary into the standard DOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)\n */\n readonly composed: boolean;\n /**\n * The **`currentTarget`** read-only property of the Event interface identifies the element to which the event handler has been attached.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)\n */\n readonly currentTarget: EventTarget | null;\n /**\n * The **`defaultPrevented`** read-only property of the Event interface returns a boolean value indicating whether or not the call to Event.preventDefault() canceled the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)\n */\n readonly defaultPrevented: boolean;\n /**\n * The **`eventPhase`** read-only property of the being evaluated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)\n */\n readonly eventPhase: number;\n /**\n * The **`isTrusted`** read-only property of the when the event was generated by the user agent (including via user actions and programmatic methods such as HTMLElement.focus()), and `false` when the event was dispatched via The only exception is the `click` event, which initializes the `isTrusted` property to `false` in user agents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)\n */\n readonly isTrusted: boolean;\n /**\n * The Event property **`returnValue`** indicates whether the default action for this event has been prevented or not.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)\n */\n returnValue: boolean;\n /**\n * The deprecated **`Event.srcElement`** is an alias for the Event.target property.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)\n */\n readonly srcElement: EventTarget | null;\n /**\n * The read-only **`target`** property of the dispatched.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)\n */\n readonly target: EventTarget | null;\n /**\n * The **`timeStamp`** read-only property of the Event interface returns the time (in milliseconds) at which the event was created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)\n */\n readonly timeStamp: DOMHighResTimeStamp;\n /**\n * The **`type`** read-only property of the Event interface returns a string containing the event's type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)\n */\n readonly type: string;\n /**\n * The **`composedPath()`** method of the Event interface returns the event's path which is an array of the objects on which listeners will be invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)\n */\n composedPath(): EventTarget[];\n /**\n * The **`Event.initEvent()`** method is used to initialize the value of an event created using Document.createEvent().\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)\n */\n initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\n /**\n * The **`preventDefault()`** method of the Event interface tells the user agent that if the event does not get explicitly handled, its default action should not be taken as it normally would be.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)\n */\n preventDefault(): void;\n /**\n * The **`stopImmediatePropagation()`** method of the If several listeners are attached to the same element for the same event type, they are called in the order in which they were added.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)\n */\n stopImmediatePropagation(): void;\n /**\n * The **`stopPropagation()`** method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)\n */\n stopPropagation(): void;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n}\n\ndeclare var Event: {\n prototype: Event;\n new(type: string, eventInitDict?: EventInit): Event;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n};\n\ninterface EventListener {\n (evt: Event): void;\n}\n\ninterface EventListenerObject {\n handleEvent(object: Event): void;\n}\n\ninterface EventSourceEventMap {\n \"error\": Event;\n \"message\": MessageEvent;\n \"open\": Event;\n}\n\n/**\n * The **`EventSource`** interface is web content's interface to server-sent events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource)\n */\ninterface EventSource extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n onerror: ((this: EventSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n onopen: ((this: EventSource, ev: Event) => any) | null;\n /**\n * The **`readyState`** read-only property of the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n */\n readonly readyState: number;\n /**\n * The **`url`** read-only property of the URL of the source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n */\n readonly url: string;\n /**\n * The **`withCredentials`** read-only property of the the `EventSource` object was instantiated with CORS credentials set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n readonly withCredentials: boolean;\n /**\n * The **`close()`** method of the EventSource interface closes the connection, if one is made, and sets the ```js-nolint close() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n */\n close(): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventSource: {\n prototype: EventSource;\n new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n};\n\n/**\n * The **`EventTarget`** interface is implemented by objects that can receive events and may have listeners for them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)\n */\ninterface EventTarget {\n /**\n * The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)\n */\n addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;\n /**\n * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\n dispatchEvent(event: Event): boolean;\n /**\n * The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)\n */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\n}\n\ndeclare var EventTarget: {\n prototype: EventTarget;\n new(): EventTarget;\n};\n\n/**\n * The **`ExtendableCookieChangeEvent`** interface of the Cookie Store API is the event type passed to ServiceWorkerGlobalScope/cookiechange_event event fired at the ServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent)\n */\ninterface ExtendableCookieChangeEvent extends ExtendableEvent {\n /**\n * The **`changed`** read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been changed by the given `ExtendableCookieChangeEvent` instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent/changed)\n */\n readonly changed: ReadonlyArray;\n /**\n * The **`deleted`** read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been deleted by the given `ExtendableCookieChangeEvent` instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent/deleted)\n */\n readonly deleted: ReadonlyArray;\n}\n\ndeclare var ExtendableCookieChangeEvent: {\n prototype: ExtendableCookieChangeEvent;\n new(type: string, eventInitDict?: ExtendableCookieChangeEventInit): ExtendableCookieChangeEvent;\n};\n\n/**\n * The **`ExtendableEvent`** interface extends the lifetime of the `install` and `activate` events dispatched on the global scope as part of the service worker lifecycle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent)\n */\ninterface ExtendableEvent extends Event {\n /**\n * The **`ExtendableEvent.waitUntil()`** method tells the event dispatcher that work is ongoing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent/waitUntil)\n */\n waitUntil(f: Promise): void;\n}\n\ndeclare var ExtendableEvent: {\n prototype: ExtendableEvent;\n new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;\n};\n\n/**\n * The **`ExtendableMessageEvent`** interface of the Service Worker API represents the event object of a ServiceWorkerGlobalScope/message_event event fired on a service worker (when a message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent)\n */\ninterface ExtendableMessageEvent extends ExtendableEvent {\n /**\n * The **`data`** read-only property of the data type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/data)\n */\n readonly data: any;\n /**\n * The **`lastEventID`** read-only property of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/lastEventId)\n */\n readonly lastEventId: string;\n /**\n * The **`origin`** read-only property of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/origin)\n */\n readonly origin: string;\n /**\n * The **`ports`** read-only property of the channel (the channel the message is being sent through.) An array of MessagePort objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/ports)\n */\n readonly ports: ReadonlyArray;\n /**\n * The **`source`** read-only property of the A Client, ServiceWorker or MessagePort object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/source)\n */\n readonly source: Client | ServiceWorker | MessagePort | null;\n}\n\ndeclare var ExtendableMessageEvent: {\n prototype: ExtendableMessageEvent;\n new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;\n};\n\n/**\n * This is the event type for `fetch` events dispatched on the ServiceWorkerGlobalScope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent)\n */\ninterface FetchEvent extends ExtendableEvent {\n /**\n * The **`clientId`** read-only property of the current service worker is controlling.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/clientId)\n */\n readonly clientId: string;\n /**\n * The **`handled`** property of the FetchEvent interface returns a promise indicating if the event has been handled by the fetch algorithm or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/handled)\n */\n readonly handled: Promise;\n /**\n * The **`preloadResponse`** read-only property of the FetchEvent interface returns a Promise that resolves to the navigation preload Response if navigation preload was triggered, or `undefined` otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/preloadResponse)\n */\n readonly preloadResponse: Promise;\n /**\n * The **`request`** read-only property of the the event handler.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/request)\n */\n readonly request: Request;\n /**\n * The **`resultingClientId`** read-only property of the navigation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/resultingClientId)\n */\n readonly resultingClientId: string;\n /**\n * The **`respondWith()`** method of allows you to provide a promise for a Response yourself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/respondWith)\n */\n respondWith(r: Response | PromiseLike): void;\n}\n\ndeclare var FetchEvent: {\n prototype: FetchEvent;\n new(type: string, eventInitDict: FetchEventInit): FetchEvent;\n};\n\n/**\n * The **`File`** interface provides information about files and allows JavaScript in a web page to access their content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)\n */\ninterface File extends Blob {\n /**\n * The **`lastModified`** read-only property of the File interface provides the last modified date of the file as the number of milliseconds since the Unix epoch (January 1, 1970 at midnight).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified)\n */\n readonly lastModified: number;\n /**\n * The **`name`** read-only property of the File interface returns the name of the file represented by a File object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name)\n */\n readonly name: string;\n /**\n * The **`webkitRelativePath`** read-only property of the File interface contains a string which specifies the file's path relative to the directory selected by the user in an input element with its `webkitdirectory` attribute set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath)\n */\n readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n prototype: File;\n new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\n};\n\n/**\n * The **`FileList`** interface represents an object of this type returned by the `files` property of the HTML input element; this lets you access the list of files selected with the `` element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)\n */\ninterface FileList {\n /**\n * The **`length`** read-only property of the FileList interface returns the number of files in the `FileList`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length)\n */\n readonly length: number;\n /**\n * The **`item()`** method of the FileList interface returns a File object representing the file at the specified index in the file list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item)\n */\n item(index: number): File | null;\n [index: number]: File;\n}\n\ndeclare var FileList: {\n prototype: FileList;\n new(): FileList;\n};\n\ninterface FileReaderEventMap {\n \"abort\": ProgressEvent;\n \"error\": ProgressEvent;\n \"load\": ProgressEvent;\n \"loadend\": ProgressEvent;\n \"loadstart\": ProgressEvent;\n \"progress\": ProgressEvent;\n}\n\n/**\n * The **`FileReader`** interface lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)\n */\ninterface FileReader extends EventTarget {\n /**\n * The **`error`** read-only property of the FileReader interface returns the error that occurred while reading the file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error)\n */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */\n onabort: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */\n onerror: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */\n onload: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */\n onloadend: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */\n onloadstart: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */\n onprogress: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /**\n * The **`readyState`** read-only property of the FileReader interface provides the current state of the reading operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState)\n */\n readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;\n /**\n * The **`result`** read-only property of the FileReader interface returns the file's contents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result)\n */\n readonly result: string | ArrayBuffer | null;\n /**\n * The **`abort()`** method of the FileReader interface aborts the read operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort)\n */\n abort(): void;\n /**\n * The **`readAsArrayBuffer()`** method of the FileReader interface is used to start reading the contents of a specified Blob or File.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer)\n */\n readAsArrayBuffer(blob: Blob): void;\n /**\n * The **`readAsBinaryString()`** method of the FileReader interface is used to start reading the contents of the specified Blob or File.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): void;\n /**\n * The **`readAsDataURL()`** method of the FileReader interface is used to read the contents of the specified file's data as a base64 encoded string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL)\n */\n readAsDataURL(blob: Blob): void;\n /**\n * The **`readAsText()`** method of the FileReader interface is used to read the contents of the specified Blob or File.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText)\n */\n readAsText(blob: Blob, encoding?: string): void;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n addEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FileReader: {\n prototype: FileReader;\n new(): FileReader;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n};\n\n/**\n * The **`FileReaderSync`** interface allows to read File or Blob objects synchronously.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync)\n */\ninterface FileReaderSync {\n /**\n * The **`readAsArrayBuffer()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into an ArrayBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsArrayBuffer)\n */\n readAsArrayBuffer(blob: Blob): ArrayBuffer;\n /**\n * The **`readAsBinaryString()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): string;\n /**\n * The **`readAsDataURL()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string representing a data URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsDataURL)\n */\n readAsDataURL(blob: Blob): string;\n /**\n * The **`readAsText()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsText)\n */\n readAsText(blob: Blob, encoding?: string): string;\n}\n\ndeclare var FileReaderSync: {\n prototype: FileReaderSync;\n new(): FileReaderSync;\n};\n\n/**\n * The **`FileSystemDirectoryHandle`** interface of the File System API provides a handle to a file system directory.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)\n */\ninterface FileSystemDirectoryHandle extends FileSystemHandle {\n readonly kind: \"directory\";\n /**\n * The **`getDirectoryHandle()`** method of the within the directory handle on which the method is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle)\n */\n getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise;\n /**\n * The **`getFileHandle()`** method of the directory the method is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle)\n */\n getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise;\n /**\n * The **`removeEntry()`** method of the directory handle contains a file or directory called the name specified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry)\n */\n removeEntry(name: string, options?: FileSystemRemoveOptions): Promise;\n /**\n * The **`resolve()`** method of the directory names from the parent handle to the specified child entry, with the name of the child entry as the last array item.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve)\n */\n resolve(possibleDescendant: FileSystemHandle): Promise;\n}\n\ndeclare var FileSystemDirectoryHandle: {\n prototype: FileSystemDirectoryHandle;\n new(): FileSystemDirectoryHandle;\n};\n\n/**\n * The **`FileSystemFileHandle`** interface of the File System API represents a handle to a file system entry.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)\n */\ninterface FileSystemFileHandle extends FileSystemHandle {\n readonly kind: \"file\";\n /**\n * The **`createSyncAccessHandle()`** method of the that can be used to synchronously read from and write to a file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle)\n */\n createSyncAccessHandle(): Promise;\n /**\n * The **`createWritable()`** method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable)\n */\n createWritable(options?: FileSystemCreateWritableOptions): Promise;\n /**\n * The **`getFile()`** method of the If the file on disk changes or is removed after this method is called, the returned ```js-nolint getFile() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile)\n */\n getFile(): Promise;\n}\n\ndeclare var FileSystemFileHandle: {\n prototype: FileSystemFileHandle;\n new(): FileSystemFileHandle;\n};\n\n/**\n * The **`FileSystemHandle`** interface of the File System API is an object which represents a file or directory entry.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)\n */\ninterface FileSystemHandle {\n /**\n * The **`kind`** read-only property of the `'file'` if the associated entry is a file or `'directory'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind)\n */\n readonly kind: FileSystemHandleKind;\n /**\n * The **`name`** read-only property of the handle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name)\n */\n readonly name: string;\n /**\n * The **`isSameEntry()`** method of the ```js-nolint isSameEntry(fileSystemHandle) ``` - FileSystemHandle - : The `FileSystemHandle` to match against the handle on which the method is invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry)\n */\n isSameEntry(other: FileSystemHandle): Promise;\n}\n\ndeclare var FileSystemHandle: {\n prototype: FileSystemHandle;\n new(): FileSystemHandle;\n};\n\n/**\n * The **`FileSystemSyncAccessHandle`** interface of the File System API represents a synchronous handle to a file system entry.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle)\n */\ninterface FileSystemSyncAccessHandle {\n /**\n * The **`close()`** method of the ```js-nolint close() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/close)\n */\n close(): void;\n /**\n * The **`flush()`** method of the Bear in mind that you only need to call this method if you need the changes committed to disk at a specific time, otherwise you can leave the underlying operating system to handle this when it sees fit, which should be OK in most cases.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/flush)\n */\n flush(): void;\n /**\n * The **`getSize()`** method of the ```js-nolint getSize() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/getSize)\n */\n getSize(): number;\n /**\n * The **`read()`** method of the ```js-nolint read(buffer, options) ``` - `buffer` - : An ArrayBuffer or `ArrayBufferView` (such as a DataView) representing the buffer that the file content should be read into.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/read)\n */\n read(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;\n /**\n * The **`truncate()`** method of the ```js-nolint truncate(newSize) ``` - `newSize` - : The number of bytes to resize the file to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/truncate)\n */\n truncate(newSize: number): void;\n /**\n * The **`write()`** method of the Files within the origin private file system are not visible to end-users, therefore are not subject to the same security checks as methods running on files within the user-visible file system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/write)\n */\n write(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;\n}\n\ndeclare var FileSystemSyncAccessHandle: {\n prototype: FileSystemSyncAccessHandle;\n new(): FileSystemSyncAccessHandle;\n};\n\n/**\n * The **`FileSystemWritableFileStream`** interface of the File System API is a WritableStream object with additional convenience methods, which operates on a single file on disk.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)\n */\ninterface FileSystemWritableFileStream extends WritableStream {\n /**\n * The **`seek()`** method of the FileSystemWritableFileStream interface updates the current file cursor offset to the position (in bytes) specified when calling the method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek)\n */\n seek(position: number): Promise;\n /**\n * The **`truncate()`** method of the FileSystemWritableFileStream interface resizes the file associated with the stream to the specified size in bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate)\n */\n truncate(size: number): Promise;\n /**\n * The **`write()`** method of the FileSystemWritableFileStream interface writes content into the file the method is called on, at the current file cursor offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write)\n */\n write(data: FileSystemWriteChunkType): Promise;\n}\n\ndeclare var FileSystemWritableFileStream: {\n prototype: FileSystemWritableFileStream;\n new(): FileSystemWritableFileStream;\n};\n\n/**\n * The **`FontFace`** interface of the CSS Font Loading API represents a single usable font face.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace)\n */\ninterface FontFace {\n /**\n * The **`ascentOverride`** property of the FontFace interface returns and sets the ascent metric for the font, the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride)\n */\n ascentOverride: string;\n /**\n * The **`descentOverride`** property of the FontFace interface returns and sets the value of the @font-face/descent-override descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride)\n */\n descentOverride: string;\n /**\n * The **`display`** property of the FontFace interface determines how a font face is displayed based on whether and when it is downloaded and ready to use.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display)\n */\n display: FontDisplay;\n /**\n * The **`FontFace.family`** property allows the author to get or set the font family of a FontFace object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family)\n */\n family: string;\n /**\n * The **`featureSettings`** property of the FontFace interface retrieves or sets infrequently used font features that are not available from a font's variant properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings)\n */\n featureSettings: string;\n /**\n * The **`lineGapOverride`** property of the FontFace interface returns and sets the value of the @font-face/line-gap-override descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride)\n */\n lineGapOverride: string;\n /**\n * The **`loaded`** read-only property of the FontFace interface returns a Promise that resolves with the current `FontFace` object when the font specified in the object's constructor is done loading or rejects with a `SyntaxError`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded)\n */\n readonly loaded: Promise;\n /**\n * The **`status`** read-only property of the FontFace interface returns an enumerated value indicating the status of the font, one of `'unloaded'`, `'loading'`, `'loaded'`, or `'error'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status)\n */\n readonly status: FontFaceLoadStatus;\n /**\n * The **`stretch`** property of the FontFace interface retrieves or sets how the font stretches.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch)\n */\n stretch: string;\n /**\n * The **`style`** property of the FontFace interface retrieves or sets the font's style.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style)\n */\n style: string;\n /**\n * The **`unicodeRange`** property of the FontFace interface retrieves or sets the range of unicode code points encompassing the font.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange)\n */\n unicodeRange: string;\n /**\n * The **`weight`** property of the FontFace interface retrieves or sets the weight of the font.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight)\n */\n weight: string;\n /**\n * The **`load()`** method of the FontFace interface requests and loads a font whose `source` was specified as a URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load)\n */\n load(): Promise;\n}\n\ndeclare var FontFace: {\n prototype: FontFace;\n new(family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;\n};\n\ninterface FontFaceSetEventMap {\n \"loading\": FontFaceSetLoadEvent;\n \"loadingdone\": FontFaceSetLoadEvent;\n \"loadingerror\": FontFaceSetLoadEvent;\n}\n\n/**\n * The **`FontFaceSet`** interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet)\n */\ninterface FontFaceSet extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */\n onloading: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */\n onloadingdone: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */\n onloadingerror: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /**\n * The `ready` read-only property of the FontFaceSet interface returns a Promise that resolves to the given FontFaceSet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready)\n */\n readonly ready: Promise;\n /**\n * The **`status`** read-only property of the FontFaceSet interface returns the loading state of the fonts in the set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status)\n */\n readonly status: FontFaceSetLoadStatus;\n /**\n * The `check()` method of the FontFaceSet returns `true` if you can render some text using the given font specification without attempting to use any fonts in this `FontFaceSet` that are not yet fully loaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check)\n */\n check(font: string, text?: string): boolean;\n /**\n * The `load()` method of the FontFaceSet forces all the fonts given in parameters to be loaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load)\n */\n load(font: string, text?: string): Promise;\n forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;\n addEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FontFaceSet: {\n prototype: FontFaceSet;\n new(): FontFaceSet;\n};\n\n/**\n * The **`FontFaceSetLoadEvent`** interface of the CSS Font Loading API represents events fired at a FontFaceSet after it starts loading font faces.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent)\n */\ninterface FontFaceSetLoadEvent extends Event {\n /**\n * The **`fontfaces`** read-only property of the An array of FontFace instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces)\n */\n readonly fontfaces: ReadonlyArray;\n}\n\ndeclare var FontFaceSetLoadEvent: {\n prototype: FontFaceSetLoadEvent;\n new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;\n};\n\ninterface FontFaceSource {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\n readonly fonts: FontFaceSet;\n}\n\n/**\n * The **`FormData`** interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the Window/fetch, XMLHttpRequest.send() or navigator.sendBeacon() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)\n */\ninterface FormData {\n /**\n * The **`append()`** method of the FormData interface appends a new value onto an existing key inside a `FormData` object, or adds the key if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append)\n */\n append(name: string, value: string | Blob): void;\n append(name: string, value: string): void;\n append(name: string, blobValue: Blob, filename?: string): void;\n /**\n * The **`delete()`** method of the FormData interface deletes a key and its value(s) from a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete)\n */\n delete(name: string): void;\n /**\n * The **`get()`** method of the FormData interface returns the first value associated with a given key from within a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get)\n */\n get(name: string): FormDataEntryValue | null;\n /**\n * The **`getAll()`** method of the FormData interface returns all the values associated with a given key from within a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll)\n */\n getAll(name: string): FormDataEntryValue[];\n /**\n * The **`has()`** method of the FormData interface returns whether a `FormData` object contains a certain key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has)\n */\n has(name: string): boolean;\n /**\n * The **`set()`** method of the FormData interface sets a new value for an existing key inside a `FormData` object, or adds the key/value if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set)\n */\n set(name: string, value: string | Blob): void;\n set(name: string, value: string): void;\n set(name: string, blobValue: Blob, filename?: string): void;\n forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\n}\n\ndeclare var FormData: {\n prototype: FormData;\n new(): FormData;\n};\n\n/**\n * The **`GPUError`** interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the GPUDevice.uncapturederror_event event.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError)\n */\ninterface GPUError {\n /**\n * The **`message`** read-only property of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError/message)\n */\n readonly message: string;\n}\n\ninterface GenericTransformStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */\n readonly writable: WritableStream;\n}\n\n/**\n * The **`Headers`** interface of the Fetch API allows you to perform various actions on HTTP request and response headers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers)\n */\ninterface Headers {\n /**\n * The **`append()`** method of the Headers interface appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)\n */\n append(name: string, value: string): void;\n /**\n * The **`delete()`** method of the Headers interface deletes a header from the current `Headers` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete)\n */\n delete(name: string): void;\n /**\n * The **`get()`** method of the Headers interface returns a byte string of all the values of a header within a `Headers` object with a given name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get)\n */\n get(name: string): string | null;\n /**\n * The **`getSetCookie()`** method of the Headers interface returns an array containing the values of all Set-Cookie headers associated with a response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie)\n */\n getSetCookie(): string[];\n /**\n * The **`has()`** method of the Headers interface returns a boolean stating whether a `Headers` object contains a certain header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has)\n */\n has(name: string): boolean;\n /**\n * The **`set()`** method of the Headers interface sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)\n */\n set(name: string, value: string): void;\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\n}\n\ndeclare var Headers: {\n prototype: Headers;\n new(init?: HeadersInit): Headers;\n};\n\n/**\n * The **`IDBCursor`** interface of the IndexedDB API represents a cursor for traversing or iterating over multiple records in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor)\n */\ninterface IDBCursor {\n /**\n * The **`direction`** read-only property of the direction of traversal of the cursor (set using section below for possible values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/direction)\n */\n readonly direction: IDBCursorDirection;\n /**\n * The **`key`** read-only property of the position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/key)\n */\n readonly key: IDBValidKey;\n /**\n * The **`primaryKey`** read-only property of the cursor is currently being iterated or has iterated outside its range, this is set to undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/primaryKey)\n */\n readonly primaryKey: IDBValidKey;\n /**\n * The **`request`** read-only property of the IDBCursor interface returns the IDBRequest used to obtain the cursor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/request)\n */\n readonly request: IDBRequest;\n /**\n * The **`source`** read-only property of the null or throws an exception, even if the cursor is currently being iterated, has iterated past its end, or its transaction is not active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/source)\n */\n readonly source: IDBObjectStore | IDBIndex;\n /**\n * The **`advance()`** method of the IDBCursor interface sets the number of times a cursor should move its position forward.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/advance)\n */\n advance(count: number): void;\n /**\n * The **`continue()`** method of the IDBCursor interface advances the cursor to the next position along its direction, to the item whose key matches the optional key parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continue)\n */\n continue(key?: IDBValidKey): void;\n /**\n * The **`continuePrimaryKey()`** method of the matches the key parameter as well as whose primary key matches the primary key parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continuePrimaryKey)\n */\n continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\n /**\n * The **`delete()`** method of the IDBCursor interface returns an IDBRequest object, and, in a separate thread, deletes the record at the cursor's position, without changing the cursor's position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/delete)\n */\n delete(): IDBRequest;\n /**\n * The **`update()`** method of the IDBCursor interface returns an IDBRequest object, and, in a separate thread, updates the value at the current position of the cursor in the object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/update)\n */\n update(value: any): IDBRequest;\n}\n\ndeclare var IDBCursor: {\n prototype: IDBCursor;\n new(): IDBCursor;\n};\n\n/**\n * The **`IDBCursorWithValue`** interface of the IndexedDB API represents a cursor for traversing or iterating over multiple records in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue)\n */\ninterface IDBCursorWithValue extends IDBCursor {\n /**\n * The **`value`** read-only property of the whatever that is.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue/value)\n */\n readonly value: any;\n}\n\ndeclare var IDBCursorWithValue: {\n prototype: IDBCursorWithValue;\n new(): IDBCursorWithValue;\n};\n\ninterface IDBDatabaseEventMap {\n \"abort\": Event;\n \"close\": Event;\n \"error\": Event;\n \"versionchange\": IDBVersionChangeEvent;\n}\n\n/**\n * The **`IDBDatabase`** interface of the IndexedDB API provides a connection to a database; you can use an `IDBDatabase` object to open a transaction on your database then create, manipulate, and delete objects (data) in that database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase)\n */\ninterface IDBDatabase extends EventTarget {\n /**\n * The **`name`** read-only property of the `IDBDatabase` interface is a string that contains the name of the connected database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name)\n */\n readonly name: string;\n /**\n * The **`objectStoreNames`** read-only property of the list of the names of the object stores currently in the connected database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n onabort: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close_event) */\n onclose: ((this: IDBDatabase, ev: Event) => any) | null;\n onerror: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/versionchange_event) */\n onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\n /**\n * The **`version`** property of the IDBDatabase interface is a 64-bit integer that contains the version of the connected database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version)\n */\n readonly version: number;\n /**\n * The **`close()`** method of the IDBDatabase interface returns immediately and closes the connection in a separate thread.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close)\n */\n close(): void;\n /**\n * The **`createObjectStore()`** method of the The method takes the name of the store as well as a parameter object that lets you define important optional properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore)\n */\n createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;\n /**\n * The **`deleteObjectStore()`** method of the the connected database, along with any indexes that reference it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore)\n */\n deleteObjectStore(name: string): void;\n /**\n * The **`transaction`** method of the IDBDatabase interface immediately returns a transaction object (IDBTransaction) containing the IDBTransaction.objectStore method, which you can use to access your object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n addEventListener(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBDatabase: {\n prototype: IDBDatabase;\n new(): IDBDatabase;\n};\n\n/**\n * The **`IDBFactory`** interface of the IndexedDB API lets applications asynchronously access the indexed databases.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory)\n */\ninterface IDBFactory {\n /**\n * The **`cmp()`** method of the IDBFactory interface compares two values as keys to determine equality and ordering for IndexedDB operations, such as storing and iterating.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp)\n */\n cmp(first: any, second: any): number;\n /**\n * The **`databases`** method of the IDBFactory interface returns a Promise that fulfills with an array of objects containing the name and version of all the available databases.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/databases)\n */\n databases(): Promise;\n /**\n * The **`deleteDatabase()`** method of the returns an IDBOpenDBRequest object immediately, and performs the deletion operation asynchronously.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase)\n */\n deleteDatabase(name: string): IDBOpenDBRequest;\n /**\n * The **`open()`** method of the IDBFactory interface requests opening a connection to a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/open)\n */\n open(name: string, version?: number): IDBOpenDBRequest;\n}\n\ndeclare var IDBFactory: {\n prototype: IDBFactory;\n new(): IDBFactory;\n};\n\n/**\n * `IDBIndex` interface of the IndexedDB API provides asynchronous access to an index in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex)\n */\ninterface IDBIndex {\n /**\n * The **`keyPath`** property of the IDBIndex interface returns the key path of the current index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath)\n */\n readonly keyPath: string | string[];\n /**\n * The **`multiEntry`** read-only property of the behaves when the result of evaluating the index's key path yields an array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry)\n */\n readonly multiEntry: boolean;\n /**\n * The **`name`** property of the IDBIndex interface contains a string which names the index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/name)\n */\n name: string;\n /**\n * The **`objectStore`** property of the IDBIndex interface returns the object store referenced by the current index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore)\n */\n readonly objectStore: IDBObjectStore;\n /**\n * The **`unique`** read-only property returns a boolean that states whether the index allows duplicate keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique)\n */\n readonly unique: boolean;\n /**\n * The **`count()`** method of the IDBIndex interface returns an IDBRequest object, and in a separate thread, returns the number of records within a key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`get()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, finds either the value in the referenced object store that corresponds to the given key or the first corresponding value, if `key` is set to an If a value is found, then a structured clone of it is created and set as the `result` of the request object: this returns the record the key is associated with.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`getAll()`** method of the IDBIndex interface retrieves all objects that are inside the index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest;\n /**\n * The **`getAllKeys()`** method of the IDBIndex interface asynchronously retrieves the primary keys of all objects inside the index, setting them as the `result` of the request object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest;\n /**\n * The **`getKey()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, finds either the primary key that corresponds to the given key in this index or the first corresponding primary key, if `key` is set to an If a primary key is found, it is set as the `result` of the request object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`openCursor()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, creates a cursor over the specified key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest;\n /**\n * The **`openKeyCursor()`** method of the a separate thread, creates a cursor over the specified key range, as arranged by this index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest;\n}\n\ndeclare var IDBIndex: {\n prototype: IDBIndex;\n new(): IDBIndex;\n};\n\n/**\n * The **`IDBKeyRange`** interface of the IndexedDB API represents a continuous interval over some data type that is used for keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange)\n */\ninterface IDBKeyRange {\n /**\n * The **`lower`** read-only property of the The lower bound of the key range (can be any type.) The following example illustrates how you'd use a key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lower)\n */\n readonly lower: any;\n /**\n * The **`lowerOpen`** read-only property of the lower-bound value is included in the key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerOpen)\n */\n readonly lowerOpen: boolean;\n /**\n * The **`upper`** read-only property of the The upper bound of the key range (can be any type.) The following example illustrates how you'd use a key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upper)\n */\n readonly upper: any;\n /**\n * The **`upperOpen`** read-only property of the upper-bound value is included in the key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperOpen)\n */\n readonly upperOpen: boolean;\n /**\n * The `includes()` method of the IDBKeyRange interface returns a boolean indicating whether a specified key is inside the key range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/includes)\n */\n includes(key: any): boolean;\n}\n\ndeclare var IDBKeyRange: {\n prototype: IDBKeyRange;\n new(): IDBKeyRange;\n /**\n * The **`bound()`** static method of the IDBKeyRange interface creates a new key range with the specified upper and lower bounds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/bound_static)\n */\n bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\n /**\n * The **`lowerBound()`** static method of the By default, it includes the lower endpoint value and is closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerBound_static)\n */\n lowerBound(lower: any, open?: boolean): IDBKeyRange;\n /**\n * The **`only()`** static method of the IDBKeyRange interface creates a new key range containing a single value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/only_static)\n */\n only(value: any): IDBKeyRange;\n /**\n * The **`upperBound()`** static method of the it includes the upper endpoint value and is closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperBound_static)\n */\n upperBound(upper: any, open?: boolean): IDBKeyRange;\n};\n\n/**\n * The **`IDBObjectStore`** interface of the IndexedDB API represents an object store in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)\n */\ninterface IDBObjectStore {\n /**\n * The **`autoIncrement`** read-only property of the for this object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement)\n */\n readonly autoIncrement: boolean;\n /**\n * The **`indexNames`** read-only property of the in this object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames)\n */\n readonly indexNames: DOMStringList;\n /**\n * The **`keyPath`** read-only property of the If this property is null, the application must provide a key for each modification operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath)\n */\n readonly keyPath: string | string[] | null;\n /**\n * The **`name`** property of the IDBObjectStore interface indicates the name of this object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name)\n */\n name: string;\n /**\n * The **`transaction`** read-only property of the object store belongs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction)\n */\n readonly transaction: IDBTransaction;\n /**\n * The **`add()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, creates a structured clone of the value, and stores the cloned value in the object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add)\n */\n add(value: any, key?: IDBValidKey): IDBRequest;\n /**\n * The **`clear()`** method of the IDBObjectStore interface creates and immediately returns an IDBRequest object, and clears this object store in a separate thread.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear)\n */\n clear(): IDBRequest;\n /**\n * The **`count()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, returns the total number of records that match the provided key or of records in the store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`createIndex()`** method of the field/column defining a new data point for each database record to contain.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\n /**\n * The **`delete()`** method of the and, in a separate thread, deletes the specified record or records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete)\n */\n delete(query: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`deleteIndex()`** method of the the connected database, used during a version upgrade.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex)\n */\n deleteIndex(name: string): void;\n /**\n * The **`get()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, returns the object selected by the specified key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`getAll()`** method of the containing all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest;\n /**\n * The `getAllKeys()` method of the IDBObjectStore interface returns an IDBRequest object retrieves record keys for all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest;\n /**\n * The **`getKey()`** method of the and, in a separate thread, returns the key selected by the specified query.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest;\n /**\n * The **`index()`** method of the IDBObjectStore interface opens a named index in the current object store, after which it can be used to, for example, return a series of records sorted by that index using a cursor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index)\n */\n index(name: string): IDBIndex;\n /**\n * The **`openCursor()`** method of the and, in a separate thread, returns a new IDBCursorWithValue object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest;\n /**\n * The **`openKeyCursor()`** method of the whose result will be set to an IDBCursor that can be used to iterate through matching results.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest;\n /**\n * The **`put()`** method of the IDBObjectStore interface updates a given record in a database, or inserts a new record if the given item does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put)\n */\n put(value: any, key?: IDBValidKey): IDBRequest;\n}\n\ndeclare var IDBObjectStore: {\n prototype: IDBObjectStore;\n new(): IDBObjectStore;\n};\n\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\n \"blocked\": IDBVersionChangeEvent;\n \"upgradeneeded\": IDBVersionChangeEvent;\n}\n\n/**\n * The **`IDBOpenDBRequest`** interface of the IndexedDB API provides access to the results of requests to open or delete databases (performed using IDBFactory.open and IDBFactory.deleteDatabase), using specific event handler attributes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)\n */\ninterface IDBOpenDBRequest extends IDBRequest {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/blocked_event) */\n onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) */\n onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n addEventListener(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBOpenDBRequest: {\n prototype: IDBOpenDBRequest;\n new(): IDBOpenDBRequest;\n};\n\ninterface IDBRequestEventMap {\n \"error\": Event;\n \"success\": Event;\n}\n\n/**\n * The **`IDBRequest`** interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest)\n */\ninterface IDBRequest extends EventTarget {\n /**\n * The **`error`** read-only property of the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error)\n */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error_event) */\n onerror: ((this: IDBRequest, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/success_event) */\n onsuccess: ((this: IDBRequest, ev: Event) => any) | null;\n /**\n * The **`readyState`** read-only property of the Every request starts in the `pending` state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState)\n */\n readonly readyState: IDBRequestReadyState;\n /**\n * The **`result`** read-only property of the any - `InvalidStateError` DOMException - : Thrown when attempting to access the property if the request is not completed, and therefore the result is not available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/result)\n */\n readonly result: T;\n /**\n * The **`source`** read-only property of the Index or an object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/source)\n */\n readonly source: IDBObjectStore | IDBIndex | IDBCursor;\n /**\n * The **`transaction`** read-only property of the IDBRequest interface returns the transaction for the request, that is, the transaction the request is being made inside.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction)\n */\n readonly transaction: IDBTransaction | null;\n addEventListener(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBRequest: {\n prototype: IDBRequest;\n new(): IDBRequest;\n};\n\ninterface IDBTransactionEventMap {\n \"abort\": Event;\n \"complete\": Event;\n \"error\": Event;\n}\n\n/**\n * The **`IDBTransaction`** interface of the IndexedDB API provides a static, asynchronous transaction on a database using event handler attributes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction)\n */\ninterface IDBTransaction extends EventTarget {\n /**\n * The **`db`** read-only property of the IDBTransaction interface returns the database connection with which this transaction is associated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db)\n */\n readonly db: IDBDatabase;\n /**\n * The **`durability`** read-only property of the IDBTransaction interface returns the durability hint the transaction was created with.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/durability)\n */\n readonly durability: IDBTransactionDurability;\n /**\n * The **`IDBTransaction.error`** property of the IDBTransaction interface returns the type of error when there is an unsuccessful transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error)\n */\n readonly error: DOMException | null;\n /**\n * The **`mode`** read-only property of the data in the object stores in the scope of the transaction (i.e., is the mode to be read-only, or do you want to write to the object stores?) The default value is `readonly`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode)\n */\n readonly mode: IDBTransactionMode;\n /**\n * The **`objectStoreNames`** read-only property of the of IDBObjectStore objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort_event) */\n onabort: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/complete_event) */\n oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error_event) */\n onerror: ((this: IDBTransaction, ev: Event) => any) | null;\n /**\n * The **`abort()`** method of the IDBTransaction interface rolls back all the changes to objects in the database associated with this transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort)\n */\n abort(): void;\n /**\n * The **`commit()`** method of the IDBTransaction interface commits the transaction if it is called on an active transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit)\n */\n commit(): void;\n /**\n * The **`objectStore()`** method of the added to the scope of this transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore)\n */\n objectStore(name: string): IDBObjectStore;\n addEventListener(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBTransaction: {\n prototype: IDBTransaction;\n new(): IDBTransaction;\n};\n\n/**\n * The **`IDBVersionChangeEvent`** interface of the IndexedDB API indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.upgradeneeded_event event handler function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent)\n */\ninterface IDBVersionChangeEvent extends Event {\n /**\n * The **`newVersion`** read-only property of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/newVersion)\n */\n readonly newVersion: number | null;\n /**\n * The **`oldVersion`** read-only property of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/oldVersion)\n */\n readonly oldVersion: number;\n}\n\ndeclare var IDBVersionChangeEvent: {\n prototype: IDBVersionChangeEvent;\n new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\n};\n\n/**\n * The **`ImageBitmap`** interface represents a bitmap image which can be drawn to a canvas without undue latency.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap)\n */\ninterface ImageBitmap {\n /**\n * The **`ImageBitmap.height`** read-only property returns the ImageBitmap object's height in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/height)\n */\n readonly height: number;\n /**\n * The **`ImageBitmap.width`** read-only property returns the ImageBitmap object's width in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/width)\n */\n readonly width: number;\n /**\n * The **`ImageBitmap.close()`** method disposes of all graphical resources associated with an `ImageBitmap`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close)\n */\n close(): void;\n}\n\ndeclare var ImageBitmap: {\n prototype: ImageBitmap;\n new(): ImageBitmap;\n};\n\n/**\n * The **`ImageBitmapRenderingContext`** interface is a canvas rendering context that provides the functionality to replace the canvas's contents with the given ImageBitmap.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext)\n */\ninterface ImageBitmapRenderingContext {\n /**\n * The **`ImageBitmapRenderingContext.transferFromImageBitmap()`** method displays the given ImageBitmap in the canvas associated with this rendering context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)\n */\n transferFromImageBitmap(bitmap: ImageBitmap | null): void;\n}\n\ndeclare var ImageBitmapRenderingContext: {\n prototype: ImageBitmapRenderingContext;\n new(): ImageBitmapRenderingContext;\n};\n\n/**\n * The **`ImageData`** interface represents the underlying pixel data of an area of a canvas element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData)\n */\ninterface ImageData {\n /**\n * The read-only **`ImageData.colorSpace`** property is a string indicating the color space of the image data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace)\n */\n readonly colorSpace: PredefinedColorSpace;\n /**\n * The readonly **`ImageData.data`** property returns a pixel data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)\n */\n readonly data: ImageDataArray;\n /**\n * The readonly **`ImageData.height`** property returns the number of rows in the ImageData object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)\n */\n readonly height: number;\n /**\n * The readonly **`ImageData.width`** property returns the number of pixels per row in the ImageData object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)\n */\n readonly width: number;\n}\n\ndeclare var ImageData: {\n prototype: ImageData;\n new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n new(data: ImageDataArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;\n};\n\n/**\n * The **`ImageDecoder`** interface of the WebCodecs API provides a way to unpack and decode encoded image data.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder)\n */\ninterface ImageDecoder {\n /**\n * The **`complete`** read-only property of the ImageDecoder interface returns true if encoded data has completed buffering.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/complete)\n */\n readonly complete: boolean;\n /**\n * The **`completed`** read-only property of the ImageDecoder interface returns a promise that resolves once encoded data has finished buffering.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/completed)\n */\n readonly completed: Promise;\n /**\n * The **`tracks`** read-only property of the ImageDecoder interface returns a list of the tracks in the encoded image data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/tracks)\n */\n readonly tracks: ImageTrackList;\n /**\n * The **`type`** read-only property of the ImageDecoder interface reflects the MIME type configured during construction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/type)\n */\n readonly type: string;\n /**\n * The **`close()`** method of the ImageDecoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/close)\n */\n close(): void;\n /**\n * The **`decode()`** method of the ImageDecoder interface enqueues a control message to decode the frame of an image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/decode)\n */\n decode(options?: ImageDecodeOptions): Promise;\n /**\n * The **`reset()`** method of the ImageDecoder interface aborts all pending `decode()` operations; rejecting all pending promises.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/reset)\n */\n reset(): void;\n}\n\ndeclare var ImageDecoder: {\n prototype: ImageDecoder;\n new(init: ImageDecoderInit): ImageDecoder;\n /**\n * The **`ImageDecoder.isTypeSupported()`** static method checks if a given MIME type can be decoded by the user agent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/isTypeSupported_static)\n */\n isTypeSupported(type: string): Promise;\n};\n\n/**\n * The **`ImageTrack`** interface of the WebCodecs API represents an individual image track.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack)\n */\ninterface ImageTrack {\n /**\n * The **`animated`** property of the ImageTrack interface returns `true` if the track is animated and therefore has multiple frames.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/animated)\n */\n readonly animated: boolean;\n /**\n * The **`frameCount`** property of the ImageTrack interface returns the number of frames in the track.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/frameCount)\n */\n readonly frameCount: number;\n /**\n * The **`repetitionCount`** property of the ImageTrack interface returns the number of repetitions of this track.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/repetitionCount)\n */\n readonly repetitionCount: number;\n /**\n * The **`selected`** property of the ImageTrack interface returns `true` if the track is selected for decoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/selected)\n */\n selected: boolean;\n}\n\ndeclare var ImageTrack: {\n prototype: ImageTrack;\n new(): ImageTrack;\n};\n\n/**\n * The **`ImageTrackList`** interface of the WebCodecs API represents a list of image tracks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList)\n */\ninterface ImageTrackList {\n /**\n * The **`length`** property of the ImageTrackList interface returns the length of the `ImageTrackList`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/length)\n */\n readonly length: number;\n /**\n * The **`ready`** property of the ImageTrackList interface returns a Promise that resolves when the `ImageTrackList` is populated with ImageTrack.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/ready)\n */\n readonly ready: Promise;\n /**\n * The **`selectedIndex`** property of the ImageTrackList interface returns the `index` of the selected track.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/selectedIndex)\n */\n readonly selectedIndex: number;\n /**\n * The **`selectedTrack`** property of the ImageTrackList interface returns an ImageTrack object representing the currently selected track.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/selectedTrack)\n */\n readonly selectedTrack: ImageTrack | null;\n [index: number]: ImageTrack;\n}\n\ndeclare var ImageTrackList: {\n prototype: ImageTrackList;\n new(): ImageTrackList;\n};\n\ninterface ImportMeta {\n url: string;\n resolve(specifier: string): string;\n}\n\n/**\n * The **`KHR_parallel_shader_compile`** extension is part of the WebGL API and enables a non-blocking poll operation, so that compile/link status availability (`COMPLETION_STATUS_KHR`) can be queried without potentially incurring stalls.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KHR_parallel_shader_compile)\n */\ninterface KHR_parallel_shader_compile {\n readonly COMPLETION_STATUS_KHR: 0x91B1;\n}\n\n/**\n * The **`Lock`** interface of the Web Locks API provides the name and mode of a lock.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock)\n */\ninterface Lock {\n /**\n * The **`mode`** read-only property of the Lock interface returns the access mode passed to LockManager.request() when the lock was requested.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/mode)\n */\n readonly mode: LockMode;\n /**\n * The **`name`** read-only property of the Lock interface returns the _name_ passed to The name of a lock is passed by script when the lock is requested.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/name)\n */\n readonly name: string;\n}\n\ndeclare var Lock: {\n prototype: Lock;\n new(): Lock;\n};\n\n/**\n * The **`LockManager`** interface of the Web Locks API provides methods for requesting a new Lock object and querying for an existing `Lock` object.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager)\n */\ninterface LockManager {\n /**\n * The **`query()`** method of the LockManager interface returns a Promise that resolves with an object containing information about held and pending locks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query)\n */\n query(): Promise;\n /**\n * The **`request()`** method of the LockManager interface requests a Lock object with parameters specifying its name and characteristics.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request)\n */\n request(name: string, callback: LockGrantedCallback): Promise;\n request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise;\n}\n\ndeclare var LockManager: {\n prototype: LockManager;\n new(): LockManager;\n};\n\n/**\n * The **`MediaCapabilities`** interface of the Media Capabilities API provides information about the decoding abilities of the device, system and browser.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities)\n */\ninterface MediaCapabilities {\n /**\n * The **`decodingInfo()`** method of the MediaCapabilities interface returns a promise that fulfils with information about how well the user agent can decode/display media with a given configuration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo)\n */\n decodingInfo(configuration: MediaDecodingConfiguration): Promise;\n /**\n * The **`encodingInfo()`** method of the MediaCapabilities interface returns a promise that fulfills with the tested media configuration's capabilities for encoding media.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo)\n */\n encodingInfo(configuration: MediaEncodingConfiguration): Promise;\n}\n\ndeclare var MediaCapabilities: {\n prototype: MediaCapabilities;\n new(): MediaCapabilities;\n};\n\n/**\n * The **`MediaSourceHandle`** interface of the Media Source Extensions API is a proxy for a MediaSource that can be transferred from a dedicated worker back to the main thread and attached to a media element via its HTMLMediaElement.srcObject property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSourceHandle)\n */\ninterface MediaSourceHandle {\n}\n\ndeclare var MediaSourceHandle: {\n prototype: MediaSourceHandle;\n new(): MediaSourceHandle;\n};\n\n/**\n * The **`MediaStreamTrackProcessor`** interface of the Insertable Streams for MediaStreamTrack API consumes a video MediaStreamTrack object's source and generates a stream of VideoFrame objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackProcessor)\n */\ninterface MediaStreamTrackProcessor {\n /**\n * The **`readable`** property of the MediaStreamTrackProcessor interface returns a ReadableStream of VideoFrames.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackProcessor/readable)\n */\n readonly readable: ReadableStream;\n}\n\ndeclare var MediaStreamTrackProcessor: {\n prototype: MediaStreamTrackProcessor;\n new(init: MediaStreamTrackProcessorInit): MediaStreamTrackProcessor;\n};\n\n/**\n * The **`MessageChannel`** interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel)\n */\ninterface MessageChannel {\n /**\n * The **`port1`** read-only property of the the port attached to the context that originated the channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port1)\n */\n readonly port1: MessagePort;\n /**\n * The **`port2`** read-only property of the the port attached to the context at the other end of the channel, which the message is initially sent to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port2)\n */\n readonly port2: MessagePort;\n}\n\ndeclare var MessageChannel: {\n prototype: MessageChannel;\n new(): MessageChannel;\n};\n\n/**\n * The **`MessageEvent`** interface represents a message received by a target object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent)\n */\ninterface MessageEvent extends Event {\n /**\n * The **`data`** read-only property of the The data sent by the message emitter; this can be any data type, depending on what originated this event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data)\n */\n readonly data: T;\n /**\n * The **`lastEventId`** read-only property of the unique ID for the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/lastEventId)\n */\n readonly lastEventId: string;\n /**\n * The **`origin`** read-only property of the origin of the message emitter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/origin)\n */\n readonly origin: string;\n /**\n * The **`ports`** read-only property of the containing all MessagePort objects sent with the message, in order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports)\n */\n readonly ports: ReadonlyArray;\n /**\n * The **`source`** read-only property of the a WindowProxy, MessagePort, or a `MessageEventSource` (which can be a WindowProxy, message emitter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/source)\n */\n readonly source: MessageEventSource | null;\n /** @deprecated */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;\n}\n\ndeclare var MessageEvent: {\n prototype: MessageEvent;\n new(type: string, eventInitDict?: MessageEventInit): MessageEvent;\n};\n\ninterface MessageEventTargetEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\ninterface MessageEventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */\n onmessage: ((this: T, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */\n onmessageerror: ((this: T, ev: MessageEvent) => any) | null;\n addEventListener(type: K, listener: (this: T, ev: MessageEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: T, ev: MessageEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ninterface MessagePortEventMap extends MessageEventTargetEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\n/**\n * The **`MessagePort`** interface of the Channel Messaging API represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort)\n */\ninterface MessagePort extends EventTarget, MessageEventTarget {\n /**\n * The **`close()`** method of the MessagePort interface disconnects the port, so it is no longer active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/close)\n */\n close(): void;\n /**\n * The **`postMessage()`** method of the transfers ownership of objects to other browsing contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * The **`start()`** method of the MessagePort interface starts the sending of messages queued on the port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/start)\n */\n start(): void;\n addEventListener(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MessagePort: {\n prototype: MessagePort;\n new(): MessagePort;\n};\n\n/**\n * The **`NavigationPreloadManager`** interface of the Service Worker API provides methods for managing the preloading of resources in parallel with service worker bootup.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager)\n */\ninterface NavigationPreloadManager {\n /**\n * The **`disable()`** method of the NavigationPreloadManager interface halts the automatic preloading of service-worker-managed resources previously started using NavigationPreloadManager.enable() It returns a promise that resolves with `undefined`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/disable)\n */\n disable(): Promise;\n /**\n * The **`enable()`** method of the NavigationPreloadManager interface is used to enable preloading of resources managed by the service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/enable)\n */\n enable(): Promise;\n /**\n * The **`getState()`** method of the NavigationPreloadManager interface returns a Promise that resolves to an object with properties that indicate whether preload is enabled and what value will be sent in the Service-Worker-Navigation-Preload HTTP header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/getState)\n */\n getState(): Promise;\n /**\n * The **`setHeaderValue()`** method of the NavigationPreloadManager interface sets the value of the Service-Worker-Navigation-Preload header that will be sent with requests resulting from a Window/fetch operation made during service worker navigation preloading.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/setHeaderValue)\n */\n setHeaderValue(value: string): Promise;\n}\n\ndeclare var NavigationPreloadManager: {\n prototype: NavigationPreloadManager;\n new(): NavigationPreloadManager;\n};\n\n/** Available only in secure contexts. */\ninterface NavigatorBadge {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clearAppBadge) */\n clearAppBadge(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/setAppBadge) */\n setAppBadge(contents?: number): Promise;\n}\n\ninterface NavigatorConcurrentHardware {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/hardwareConcurrency) */\n readonly hardwareConcurrency: number;\n}\n\ninterface NavigatorID {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appCodeName)\n */\n readonly appCodeName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appName)\n */\n readonly appName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appVersion)\n */\n readonly appVersion: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/platform)\n */\n readonly platform: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/product)\n */\n readonly product: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userAgent) */\n readonly userAgent: string;\n}\n\ninterface NavigatorLanguage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/language) */\n readonly language: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/languages) */\n readonly languages: ReadonlyArray;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorLocks {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/locks) */\n readonly locks: LockManager;\n}\n\ninterface NavigatorOnLine {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/onLine) */\n readonly onLine: boolean;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/storage) */\n readonly storage: StorageManager;\n}\n\ninterface NotificationEventMap {\n \"click\": Event;\n \"close\": Event;\n \"error\": Event;\n \"show\": Event;\n}\n\n/**\n * The **`Notification`** interface of the Notifications API is used to configure and display desktop notifications to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification)\n */\ninterface Notification extends EventTarget {\n /**\n * The **`badge`** read-only property of the Notification interface returns a string containing the URL of an image to represent the notification when there is not enough space to display the notification itself such as for example, the Android Notification Bar.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/badge)\n */\n readonly badge: string;\n /**\n * The **`body`** read-only property of the specified in the `body` option of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/body)\n */\n readonly body: string;\n /**\n * The **`data`** read-only property of the data, as specified in the `data` option of the The notification's data can be any arbitrary data that you want associated with the notification.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/data)\n */\n readonly data: any;\n /**\n * The **`dir`** read-only property of the Notification interface indicates the text direction of the notification, as specified in the `dir` option of the Notification.Notification constructor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/dir)\n */\n readonly dir: NotificationDirection;\n /**\n * The **`icon`** read-only property of the part of the notification, as specified in the `icon` option of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/icon)\n */\n readonly icon: string;\n /**\n * The **`lang`** read-only property of the as specified in the `lang` option of the The language itself is specified using a string representing a language tag according to MISSING: RFC(5646, 'Tags for Identifying Languages (also known as BCP 47)')].\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/lang)\n */\n readonly lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/click_event) */\n onclick: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close_event) */\n onclose: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/error_event) */\n onerror: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/show_event) */\n onshow: ((this: Notification, ev: Event) => any) | null;\n /**\n * The **`requireInteraction`** read-only property of the Notification interface returns a boolean value indicating that a notification should remain active until the user clicks or dismisses it, rather than closing automatically.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction)\n */\n readonly requireInteraction: boolean;\n /**\n * The **`silent`** read-only property of the silent, i.e., no sounds or vibrations should be issued regardless of the device settings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/silent)\n */\n readonly silent: boolean | null;\n /**\n * The **`tag`** read-only property of the as specified in the `tag` option of the The idea of notification tags is that more than one notification can share the same tag, linking them together.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/tag)\n */\n readonly tag: string;\n /**\n * The **`title`** read-only property of the specified in the `title` parameter of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/title)\n */\n readonly title: string;\n /**\n * The **`close()`** method of the Notification interface is used to close/remove a previously displayed notification.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close)\n */\n close(): void;\n addEventListener(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Notification: {\n prototype: Notification;\n new(title: string, options?: NotificationOptions): Notification;\n /**\n * The **`permission`** read-only static property of the Notification interface indicates the current permission granted by the user for the current origin to display web notifications.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/permission_static)\n */\n readonly permission: NotificationPermission;\n};\n\n/**\n * The **`NotificationEvent`** interface of the Notifications API represents a notification event dispatched on the ServiceWorkerGlobalScope of a ServiceWorker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent)\n */\ninterface NotificationEvent extends ExtendableEvent {\n /**\n * The **`action`** read-only property of the NotificationEvent interface returns the string ID of the notification button the user clicked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent/action)\n */\n readonly action: string;\n /**\n * The **`notification`** read-only property of the NotificationEvent interface returns the instance of the Notification that was clicked to fire the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent/notification)\n */\n readonly notification: Notification;\n}\n\ndeclare var NotificationEvent: {\n prototype: NotificationEvent;\n new(type: string, eventInitDict: NotificationEventInit): NotificationEvent;\n};\n\n/**\n * The **`OES_draw_buffers_indexed`** extension is part of the WebGL API and enables the use of different blend options when writing to multiple color buffers simultaneously.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed)\n */\ninterface OES_draw_buffers_indexed {\n /**\n * The `blendEquationSeparateiOES()` method of the OES_draw_buffers_indexed WebGL extension sets the RGB and alpha blend equations separately for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationSeparateiOES)\n */\n blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;\n /**\n * The `blendEquationiOES()` method of the `OES_draw_buffers_indexed` WebGL extension sets both the RGB blend and alpha blend equations for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationiOES)\n */\n blendEquationiOES(buf: GLuint, mode: GLenum): void;\n /**\n * The `blendFuncSeparateiOES()` method of the OES_draw_buffers_indexed WebGL extension defines which function is used when blending pixels for RGB and alpha components separately for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFuncSeparateiOES)\n */\n blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /**\n * The `blendFunciOES()` method of the OES_draw_buffers_indexed WebGL extension defines which function is used when blending pixels for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFunciOES)\n */\n blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;\n /**\n * The `colorMaskiOES()` method of the OES_draw_buffers_indexed WebGL extension sets which color components to enable or to disable when drawing or rendering for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/colorMaskiOES)\n */\n colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;\n /**\n * The `disableiOES()` method of the OES_draw_buffers_indexed WebGL extension enables blending for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/disableiOES)\n */\n disableiOES(target: GLenum, index: GLuint): void;\n /**\n * The `enableiOES()` method of the OES_draw_buffers_indexed WebGL extension enables blending for a particular draw buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/enableiOES)\n */\n enableiOES(target: GLenum, index: GLuint): void;\n}\n\n/**\n * The **`OES_element_index_uint`** extension is part of the WebGL API and adds support for `gl.UNSIGNED_INT` types to WebGLRenderingContext.drawElements().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_element_index_uint)\n */\ninterface OES_element_index_uint {\n}\n\n/**\n * The `OES_fbo_render_mipmap` extension is part of the WebGL API and makes it possible to attach any level of a texture to a framebuffer object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_fbo_render_mipmap)\n */\ninterface OES_fbo_render_mipmap {\n}\n\n/**\n * The **`OES_standard_derivatives`** extension is part of the WebGL API and adds the GLSL derivative functions `dFdx`, `dFdy`, and `fwidth`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_standard_derivatives)\n */\ninterface OES_standard_derivatives {\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;\n}\n\n/**\n * The **`OES_texture_float`** extension is part of the WebGL API and exposes floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float)\n */\ninterface OES_texture_float {\n}\n\n/**\n * The **`OES_texture_float_linear`** extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float_linear)\n */\ninterface OES_texture_float_linear {\n}\n\n/**\n * The **`OES_texture_half_float`** extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float)\n */\ninterface OES_texture_half_float {\n readonly HALF_FLOAT_OES: 0x8D61;\n}\n\n/**\n * The **`OES_texture_half_float_linear`** extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float_linear)\n */\ninterface OES_texture_half_float_linear {\n}\n\n/**\n * The **OES_vertex_array_object** extension is part of the WebGL API and provides vertex array objects (VAOs) which encapsulate vertex array states.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object)\n */\ninterface OES_vertex_array_object {\n /**\n * The **`OES_vertex_array_object.bindVertexArrayOES()`** method of the WebGL API binds a passed WebGLVertexArrayObject object to the buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/bindVertexArrayOES)\n */\n bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /**\n * The **`OES_vertex_array_object.createVertexArrayOES()`** method of the WebGL API creates and initializes a pointing to vertex array data and which provides names for different sets of vertex data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/createVertexArrayOES)\n */\n createVertexArrayOES(): WebGLVertexArrayObjectOES;\n /**\n * The **`OES_vertex_array_object.deleteVertexArrayOES()`** method of the WebGL API deletes a given ```js-nolint deleteVertexArrayOES(arrayObject) ``` - `arrayObject` - : A WebGLVertexArrayObject (VAO) object to delete.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/deleteVertexArrayOES)\n */\n deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /**\n * The **`OES_vertex_array_object.isVertexArrayOES()`** method of the WebGL API returns `true` if the passed object is a WebGLVertexArrayObject object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/isVertexArrayOES)\n */\n isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\n readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;\n}\n\n/**\n * The `OVR_multiview2` extension is part of the WebGL API and adds support for rendering into multiple views simultaneously.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2)\n */\ninterface OVR_multiview2 {\n /**\n * The **`OVR_multiview2.framebufferTextureMultiviewOVR()`** method of the WebGL API attaches a multiview texture to a WebGLFramebuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2/framebufferTextureMultiviewOVR)\n */\n framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;\n readonly MAX_VIEWS_OVR: 0x9631;\n readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;\n}\n\ninterface OffscreenCanvasEventMap {\n \"contextlost\": Event;\n \"contextrestored\": Event;\n}\n\n/**\n * When using the canvas element or the Canvas API, rendering, animation, and user interaction usually happen on the main execution thread of a web application.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas)\n */\ninterface OffscreenCanvas extends EventTarget {\n /**\n * The **`height`** property returns and sets the height of an OffscreenCanvas object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/height)\n */\n height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/contextlost_event) */\n oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/contextrestored_event) */\n oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;\n /**\n * The **`width`** property returns and sets the width of an OffscreenCanvas object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/width)\n */\n width: number;\n /**\n * The **`OffscreenCanvas.convertToBlob()`** method creates a Blob object representing the image contained in the canvas.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)\n */\n convertToBlob(options?: ImageEncodeOptions): Promise;\n /**\n * The **`OffscreenCanvas.getContext()`** method returns a drawing context for an offscreen canvas, or `null` if the context identifier is not supported, or the offscreen canvas has already been set to a different context mode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)\n */\n getContext(contextId: \"2d\", options?: any): OffscreenCanvasRenderingContext2D | null;\n getContext(contextId: \"bitmaprenderer\", options?: any): ImageBitmapRenderingContext | null;\n getContext(contextId: \"webgl\", options?: any): WebGLRenderingContext | null;\n getContext(contextId: \"webgl2\", options?: any): WebGL2RenderingContext | null;\n getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\n /**\n * The **`OffscreenCanvas.transferToImageBitmap()`** method creates an ImageBitmap object from the most recently rendered image of the `OffscreenCanvas`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap)\n */\n transferToImageBitmap(): ImageBitmap;\n addEventListener(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OffscreenCanvas: {\n prototype: OffscreenCanvas;\n new(width: number, height: number): OffscreenCanvas;\n};\n\n/**\n * The **`OffscreenCanvasRenderingContext2D`** interface is a CanvasRenderingContext2D rendering context for drawing to the bitmap of an `OffscreenCanvas` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D)\n */\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas) */\n readonly canvas: OffscreenCanvas;\n}\n\ndeclare var OffscreenCanvasRenderingContext2D: {\n prototype: OffscreenCanvasRenderingContext2D;\n new(): OffscreenCanvasRenderingContext2D;\n};\n\n/**\n * The **`Path2D`** interface of the Canvas 2D API is used to declare a path that can then be used on a CanvasRenderingContext2D object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D)\n */\ninterface Path2D extends CanvasPath {\n /**\n * The **`Path2D.addPath()`** method of the Canvas 2D API adds one Path2D object to another `Path2D` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)\n */\n addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var Path2D: {\n prototype: Path2D;\n new(path?: Path2D | string): Path2D;\n};\n\ninterface PerformanceEventMap {\n \"resourcetimingbufferfull\": Event;\n}\n\n/**\n * The **`Performance`** interface provides access to performance-related information for the current page.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance)\n */\ninterface Performance extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/resourcetimingbufferfull_event) */\n onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\n /**\n * The **`timeOrigin`** read-only property of the Performance interface returns the high resolution timestamp that is used as the baseline for performance-related timestamps.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timeOrigin)\n */\n readonly timeOrigin: DOMHighResTimeStamp;\n /**\n * The **`clearMarks()`** method removes all or specific PerformanceMark objects from the browser's performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMarks)\n */\n clearMarks(markName?: string): void;\n /**\n * The **`clearMeasures()`** method removes all or specific PerformanceMeasure objects from the browser's performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMeasures)\n */\n clearMeasures(measureName?: string): void;\n /**\n * The **`clearResourceTimings()`** method removes all performance entries with an PerformanceEntry.entryType of `'resource'` from the browser's performance timeline and sets the size of the performance resource data buffer to zero.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearResourceTimings)\n */\n clearResourceTimings(): void;\n /**\n * The **`getEntries()`** method returns an array of all PerformanceEntry objects currently present in the performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntries)\n */\n getEntries(): PerformanceEntryList;\n /**\n * The **`getEntriesByName()`** method returns an array of PerformanceEntry objects currently present in the performance timeline with the given _name_ and _type_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByName)\n */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /**\n * The **`getEntriesByType()`** method returns an array of PerformanceEntry objects currently present in the performance timeline for a given _type_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByType)\n */\n getEntriesByType(type: string): PerformanceEntryList;\n /**\n * The **`mark()`** method creates a named PerformanceMark object representing a high resolution timestamp marker in the browser's performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/mark)\n */\n mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n /**\n * The **`measure()`** method creates a named PerformanceMeasure object representing a time measurement between two marks in the browser's performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/measure)\n */\n measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;\n /**\n * The **`performance.now()`** method returns a high resolution timestamp in milliseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/now)\n */\n now(): DOMHighResTimeStamp;\n /**\n * The **`setResourceTimingBufferSize()`** method sets the desired size of the browser's resource timing buffer which stores the `'resource'` performance entries.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/setResourceTimingBufferSize)\n */\n setResourceTimingBufferSize(maxSize: number): void;\n /**\n * The **`toJSON()`** method of the Performance interface is a Serialization; it returns a JSON representation of the Performance object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/toJSON)\n */\n toJSON(): any;\n addEventListener(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Performance: {\n prototype: Performance;\n new(): Performance;\n};\n\n/**\n * The **`PerformanceEntry`** object encapsulates a single performance metric that is part of the browser's performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry)\n */\ninterface PerformanceEntry {\n /**\n * The read-only **`duration`** property returns a DOMHighResTimeStamp that is the duration of the PerformanceEntry.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/duration)\n */\n readonly duration: DOMHighResTimeStamp;\n /**\n * The read-only **`entryType`** property returns a string representing the type of performance metric that this entry represents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/entryType)\n */\n readonly entryType: string;\n /**\n * The read-only **`name`** property of the PerformanceEntry interface is a string representing the name for a performance entry.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/name)\n */\n readonly name: string;\n /**\n * The read-only **`startTime`** property returns the first DOMHighResTimeStamp recorded for this PerformanceEntry.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/startTime)\n */\n readonly startTime: DOMHighResTimeStamp;\n /**\n * The **`toJSON()`** method is a Serialization; it returns a JSON representation of the PerformanceEntry object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var PerformanceEntry: {\n prototype: PerformanceEntry;\n new(): PerformanceEntry;\n};\n\n/**\n * **`PerformanceMark`** is an interface for PerformanceEntry objects with an PerformanceEntry.entryType of `'mark'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark)\n */\ninterface PerformanceMark extends PerformanceEntry {\n /**\n * The read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (either when using Performance.mark or the PerformanceMark.PerformanceMark constructor).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark/detail)\n */\n readonly detail: any;\n}\n\ndeclare var PerformanceMark: {\n prototype: PerformanceMark;\n new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n};\n\n/**\n * **`PerformanceMeasure`** is an _abstract_ interface for PerformanceEntry objects with an PerformanceEntry.entryType of `'measure'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure)\n */\ninterface PerformanceMeasure extends PerformanceEntry {\n /**\n * The read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (when using Performance.measure.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure/detail)\n */\n readonly detail: any;\n}\n\ndeclare var PerformanceMeasure: {\n prototype: PerformanceMeasure;\n new(): PerformanceMeasure;\n};\n\n/**\n * The **`PerformanceObserver`** interface is used to observe performance measurement events and be notified of new PerformanceEntry as they are recorded in the browser's _performance timeline_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver)\n */\ninterface PerformanceObserver {\n /**\n * The **`disconnect()`** method of the PerformanceObserver interface is used to stop the performance observer from receiving any PerformanceEntry events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/disconnect)\n */\n disconnect(): void;\n /**\n * The **`observe()`** method of the **PerformanceObserver** interface is used to specify the set of performance entry types to observe.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/observe)\n */\n observe(options?: PerformanceObserverInit): void;\n /**\n * The **`takeRecords()`** method of the PerformanceObserver interface returns the current list of PerformanceEntry objects stored in the performance observer, emptying it out.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/takeRecords)\n */\n takeRecords(): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserver: {\n prototype: PerformanceObserver;\n new(callback: PerformanceObserverCallback): PerformanceObserver;\n /**\n * The static **`supportedEntryTypes`** read-only property of the PerformanceObserver interface returns an array of the PerformanceEntry.entryType values supported by the user agent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/supportedEntryTypes_static)\n */\n readonly supportedEntryTypes: ReadonlyArray;\n};\n\n/**\n * The **`PerformanceObserverEntryList`** interface is a list of PerformanceEntry that were explicitly observed via the PerformanceObserver.observe method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList)\n */\ninterface PerformanceObserverEntryList {\n /**\n * The **`getEntries()`** method of the PerformanceObserverEntryList interface returns a list of explicitly observed PerformanceEntry objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntries)\n */\n getEntries(): PerformanceEntryList;\n /**\n * The **`getEntriesByName()`** method of the PerformanceObserverEntryList interface returns a list of explicitly observed PerformanceEntry objects for a given PerformanceEntry.name and PerformanceEntry.entryType.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByName)\n */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /**\n * The **`getEntriesByType()`** method of the PerformanceObserverEntryList returns a list of explicitly _observed_ PerformanceEntry objects for a given PerformanceEntry.entryType.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByType)\n */\n getEntriesByType(type: string): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserverEntryList: {\n prototype: PerformanceObserverEntryList;\n new(): PerformanceObserverEntryList;\n};\n\n/**\n * The **`PerformanceResourceTiming`** interface enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming)\n */\ninterface PerformanceResourceTiming extends PerformanceEntry {\n /**\n * The **`connectEnd`** read-only property returns the DOMHighResTimeStamp immediately after the browser finishes establishing the connection to the server to retrieve the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectEnd)\n */\n readonly connectEnd: DOMHighResTimeStamp;\n /**\n * The **`connectStart`** read-only property returns the DOMHighResTimeStamp immediately before the user agent starts establishing the connection to the server to retrieve the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectStart)\n */\n readonly connectStart: DOMHighResTimeStamp;\n /**\n * The **`decodedBodySize`** read-only property returns the size (in octets) received from the fetch (HTTP or cache) of the message body after removing any applied content encoding (like gzip or Brotli).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/decodedBodySize)\n */\n readonly decodedBodySize: number;\n /**\n * The **`domainLookupEnd`** read-only property returns the DOMHighResTimeStamp immediately after the browser finishes the domain-name lookup for the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupEnd)\n */\n readonly domainLookupEnd: DOMHighResTimeStamp;\n /**\n * The **`domainLookupStart`** read-only property returns the DOMHighResTimeStamp immediately before the browser starts the domain name lookup for the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupStart)\n */\n readonly domainLookupStart: DOMHighResTimeStamp;\n /**\n * The **`encodedBodySize`** read-only property represents the size (in octets) received from the fetch (HTTP or cache) of the payload body before removing any applied content encodings (like gzip or Brotli).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/encodedBodySize)\n */\n readonly encodedBodySize: number;\n /**\n * The **`fetchStart`** read-only property represents a DOMHighResTimeStamp immediately before the browser starts to fetch the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/fetchStart)\n */\n readonly fetchStart: DOMHighResTimeStamp;\n /**\n * The **`initiatorType`** read-only property is a string representing web platform feature that initiated the resource load.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/initiatorType)\n */\n readonly initiatorType: string;\n /**\n * The **`nextHopProtocol`** read-only property is a string representing the network protocol used to fetch the resource, as identified by the ALPN Protocol ID (RFC7301).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/nextHopProtocol)\n */\n readonly nextHopProtocol: string;\n /**\n * The **`redirectEnd`** read-only property returns a DOMHighResTimeStamp immediately after receiving the last byte of the response of the last redirect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectEnd)\n */\n readonly redirectEnd: DOMHighResTimeStamp;\n /**\n * The **`redirectStart`** read-only property returns a DOMHighResTimeStamp representing the start time of the fetch which that initiates the redirect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectStart)\n */\n readonly redirectStart: DOMHighResTimeStamp;\n /**\n * The **`requestStart`** read-only property returns a DOMHighResTimeStamp of the time immediately before the browser starts requesting the resource from the server, cache, or local resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/requestStart)\n */\n readonly requestStart: DOMHighResTimeStamp;\n /**\n * The **`responseEnd`** read-only property returns a DOMHighResTimeStamp immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseEnd)\n */\n readonly responseEnd: DOMHighResTimeStamp;\n /**\n * The **`responseStart`** read-only property returns a DOMHighResTimeStamp immediately after the browser receives the first byte of the response from the server, cache, or local resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStart)\n */\n readonly responseStart: DOMHighResTimeStamp;\n /**\n * The **`responseStatus`** read-only property represents the HTTP response status code returned when fetching the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStatus)\n */\n readonly responseStatus: number;\n /**\n * The **`secureConnectionStart`** read-only property returns a DOMHighResTimeStamp immediately before the browser starts the handshake process to secure the current connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/secureConnectionStart)\n */\n readonly secureConnectionStart: DOMHighResTimeStamp;\n /**\n * The **`serverTiming`** read-only property returns an array of PerformanceServerTiming entries containing server timing metrics.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/serverTiming)\n */\n readonly serverTiming: ReadonlyArray;\n /**\n * The **`transferSize`** read-only property represents the size (in octets) of the fetched resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/transferSize)\n */\n readonly transferSize: number;\n /**\n * The **`workerStart`** read-only property of the PerformanceResourceTiming interface returns a The `workerStart` property can have the following values: - A DOMHighResTimeStamp.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/workerStart)\n */\n readonly workerStart: DOMHighResTimeStamp;\n /**\n * The **`toJSON()`** method of the PerformanceResourceTiming interface is a Serialization; it returns a JSON representation of the PerformanceResourceTiming object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var PerformanceResourceTiming: {\n prototype: PerformanceResourceTiming;\n new(): PerformanceResourceTiming;\n};\n\n/**\n * The **`PerformanceServerTiming`** interface surfaces server metrics that are sent with the response in the Server-Timing HTTP header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming)\n */\ninterface PerformanceServerTiming {\n /**\n * The **`description`** read-only property returns a string value of the server-specified metric description, or an empty string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/description)\n */\n readonly description: string;\n /**\n * The **`duration`** read-only property returns a double that contains the server-specified metric duration, or the value `0.0`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/duration)\n */\n readonly duration: DOMHighResTimeStamp;\n /**\n * The **`name`** read-only property returns a string value of the server-specified metric name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/name)\n */\n readonly name: string;\n /**\n * The **`toJSON()`** method of the PerformanceServerTiming interface is a Serialization; it returns a JSON representation of the PerformanceServerTiming object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var PerformanceServerTiming: {\n prototype: PerformanceServerTiming;\n new(): PerformanceServerTiming;\n};\n\ninterface PermissionStatusEventMap {\n \"change\": Event;\n}\n\n/**\n * The **`PermissionStatus`** interface of the Permissions API provides the state of an object and an event handler for monitoring changes to said state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus)\n */\ninterface PermissionStatus extends EventTarget {\n /**\n * The **`name`** read-only property of the PermissionStatus interface returns the name of a requested permission.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/change_event) */\n onchange: ((this: PermissionStatus, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the This property returns one of `'granted'`, `'denied'`, or `'prompt'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/state)\n */\n readonly state: PermissionState;\n addEventListener(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PermissionStatus: {\n prototype: PermissionStatus;\n new(): PermissionStatus;\n};\n\n/**\n * The **`Permissions`** interface of the Permissions API provides the core Permission API functionality, such as methods for querying and revoking permissions - Permissions.query - : Returns the user permission status for a given API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions)\n */\ninterface Permissions {\n /**\n * The **`query()`** method of the Permissions interface returns the state of a user permission on the global scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions/query)\n */\n query(permissionDesc: PermissionDescriptor): Promise;\n}\n\ndeclare var Permissions: {\n prototype: Permissions;\n new(): Permissions;\n};\n\n/**\n * The **`ProgressEvent`** interface represents events that measure the progress of an underlying process, like an HTTP request (e.g., an `XMLHttpRequest`, or the loading of the underlying resource of an img, audio, video, style or link).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent)\n */\ninterface ProgressEvent extends Event {\n /**\n * The **`ProgressEvent.lengthComputable`** read-only property is a boolean flag indicating if the resource concerned by the A boolean.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/lengthComputable)\n */\n readonly lengthComputable: boolean;\n /**\n * The **`ProgressEvent.loaded`** read-only property is a number indicating the size of the data already transmitted or processed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/loaded)\n */\n readonly loaded: number;\n readonly target: T | null;\n /**\n * The **`ProgressEvent.total`** read-only property is a number indicating the total size of the data being transmitted or processed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/total)\n */\n readonly total: number;\n}\n\ndeclare var ProgressEvent: {\n prototype: ProgressEvent;\n new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\n};\n\n/**\n * The **`PromiseRejectionEvent`** interface represents events which are sent to the global script context when JavaScript Promises are rejected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent)\n */\ninterface PromiseRejectionEvent extends Event {\n /**\n * The PromiseRejectionEvent interface's **`promise`** read-only property indicates the JavaScript rejected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise)\n */\n readonly promise: Promise;\n /**\n * The PromiseRejectionEvent **`reason`** read-only property is any JavaScript value or Object which provides the reason passed into Promise.reject().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason)\n */\n readonly reason: any;\n}\n\ndeclare var PromiseRejectionEvent: {\n prototype: PromiseRejectionEvent;\n new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\n};\n\n/**\n * The **`PushEvent`** interface of the Push API represents a push message that has been received.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent)\n */\ninterface PushEvent extends ExtendableEvent {\n /**\n * The `data` read-only property of the **`PushEvent`** interface returns a reference to a PushMessageData object containing data sent to the PushSubscription.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent/data)\n */\n readonly data: PushMessageData | null;\n}\n\ndeclare var PushEvent: {\n prototype: PushEvent;\n new(type: string, eventInitDict?: PushEventInit): PushEvent;\n};\n\n/**\n * The **`PushManager`** interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager)\n */\ninterface PushManager {\n /**\n * The **`PushManager.getSubscription()`** method of the PushManager interface retrieves an existing push subscription.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/getSubscription)\n */\n getSubscription(): Promise;\n /**\n * The **`permissionState()`** method of the string indicating the permission state of the push manager.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/permissionState)\n */\n permissionState(options?: PushSubscriptionOptionsInit): Promise;\n /**\n * The **`subscribe()`** method of the PushManager interface subscribes to a push service.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/subscribe)\n */\n subscribe(options?: PushSubscriptionOptionsInit): Promise;\n}\n\ndeclare var PushManager: {\n prototype: PushManager;\n new(): PushManager;\n /**\n * The **`supportedContentEncodings`** read-only static property of the PushManager interface returns an array of supported content codings that can be used to encrypt the payload of a push message.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/supportedContentEncodings_static)\n */\n readonly supportedContentEncodings: ReadonlyArray;\n};\n\n/**\n * The **`PushMessageData`** interface of the Push API provides methods which let you retrieve the push data sent by a server in various formats.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData)\n */\ninterface PushMessageData {\n /**\n * The **`arrayBuffer()`** method of the PushMessageData interface extracts push message data as an ArrayBuffer object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/arrayBuffer)\n */\n arrayBuffer(): ArrayBuffer;\n /**\n * The **`blob()`** method of the PushMessageData interface extracts push message data as a Blob object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/blob)\n */\n blob(): Blob;\n /**\n * The **`bytes()`** method of the PushMessageData interface extracts push message data as an Uint8Array object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/bytes)\n */\n bytes(): Uint8Array;\n /**\n * The **`json()`** method of the PushMessageData interface extracts push message data by parsing it as a JSON string and returning the result.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/json)\n */\n json(): any;\n /**\n * The **`text()`** method of the PushMessageData interface extracts push message data as a plain text string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/text)\n */\n text(): string;\n}\n\ndeclare var PushMessageData: {\n prototype: PushMessageData;\n new(): PushMessageData;\n};\n\n/**\n * The `PushSubscription` interface of the Push API provides a subscription's URL endpoint along with the public key and secrets that should be used for encrypting push messages to this subscription.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription)\n */\ninterface PushSubscription {\n /**\n * The **`endpoint`** read-only property of the the endpoint associated with the push subscription.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint)\n */\n readonly endpoint: string;\n /**\n * The **`expirationTime`** read-only property of the of the subscription expiration time associated with the push subscription, if there is one, or `null` otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime)\n */\n readonly expirationTime: EpochTimeStamp | null;\n /**\n * The **`options`** read-only property of the PushSubscription interface is an object containing the options used to create the subscription.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/options)\n */\n readonly options: PushSubscriptionOptions;\n /**\n * The `getKey()` method of the PushSubscription interface returns an ArrayBuffer representing a client public key, which can then be sent to a server and used in encrypting push message data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey)\n */\n getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\n /**\n * The `toJSON()` method of the PushSubscription interface is a standard serializer: it returns a JSON representation of the subscription properties, providing a useful shortcut.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON)\n */\n toJSON(): PushSubscriptionJSON;\n /**\n * The `unsubscribe()` method of the PushSubscription interface returns a Promise that resolves to a boolean value when the current subscription is successfully unsubscribed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe)\n */\n unsubscribe(): Promise;\n}\n\ndeclare var PushSubscription: {\n prototype: PushSubscription;\n new(): PushSubscription;\n};\n\n/** Available only in secure contexts. */\ninterface PushSubscriptionChangeEvent extends ExtendableEvent {\n readonly newSubscription: PushSubscription | null;\n readonly oldSubscription: PushSubscription | null;\n}\n\ndeclare var PushSubscriptionChangeEvent: {\n prototype: PushSubscriptionChangeEvent;\n new(type: string, eventInitDict?: PushSubscriptionChangeEventInit): PushSubscriptionChangeEvent;\n};\n\n/**\n * The **`PushSubscriptionOptions`** interface of the Push API represents the options associated with a push subscription.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions)\n */\ninterface PushSubscriptionOptions {\n /**\n * The **`applicationServerKey`** read-only property of the PushSubscriptionOptions interface contains the public key used by the push server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/applicationServerKey)\n */\n readonly applicationServerKey: ArrayBuffer | null;\n /**\n * The **`userVisibleOnly`** read-only property of the PushSubscriptionOptions interface indicates if the returned push subscription will only be used for messages whose effect is made visible to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/userVisibleOnly)\n */\n readonly userVisibleOnly: boolean;\n}\n\ndeclare var PushSubscriptionOptions: {\n prototype: PushSubscriptionOptions;\n new(): PushSubscriptionOptions;\n};\n\ninterface RTCDataChannelEventMap {\n \"bufferedamountlow\": Event;\n \"close\": Event;\n \"closing\": Event;\n \"error\": Event;\n \"message\": MessageEvent;\n \"open\": Event;\n}\n\n/**\n * The **`RTCDataChannel`** interface represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel)\n */\ninterface RTCDataChannel extends EventTarget {\n /**\n * The property **`binaryType`** on the the type of object which should be used to represent binary data received on the RTCDataChannel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/binaryType)\n */\n binaryType: BinaryType;\n /**\n * The read-only `RTCDataChannel` property **`bufferedAmount`** returns the number of bytes of data currently queued to be sent over the data channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmount)\n */\n readonly bufferedAmount: number;\n /**\n * The `RTCDataChannel` property **`bufferedAmountLowThreshold`** is used to specify the number of bytes of buffered outgoing data that is considered 'low.' The default value is 0\\.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmountLowThreshold)\n */\n bufferedAmountLowThreshold: number;\n /**\n * The read-only `RTCDataChannel` property **`id`** returns an ID number (between 0 and 65,534) which uniquely identifies the RTCDataChannel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/id)\n */\n readonly id: number | null;\n /**\n * The read-only `RTCDataChannel` property **`label`** returns a string containing a name describing the data channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/label)\n */\n readonly label: string;\n /**\n * The read-only `RTCDataChannel` property **`maxPacketLifeTime`** returns the amount of time, in milliseconds, the browser is allowed to take to attempt to transmit a message, as set when the data channel was created, or `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxPacketLifeTime)\n */\n readonly maxPacketLifeTime: number | null;\n /**\n * The read-only `RTCDataChannel` property **`maxRetransmits`** returns the maximum number of times the browser should try to retransmit a message before giving up, as set when the data channel was created, or `null`, which indicates that there is no maximum.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxRetransmits)\n */\n readonly maxRetransmits: number | null;\n /**\n * The read-only `RTCDataChannel` property **`negotiated`** indicates whether the (`true`) or by the WebRTC layer (`false`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/negotiated)\n */\n readonly negotiated: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedamountlow_event) */\n onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close_event) */\n onclose: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/closing_event) */\n onclosing: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/error_event) */\n onerror: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/message_event) */\n onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/open_event) */\n onopen: ((this: RTCDataChannel, ev: Event) => any) | null;\n /**\n * The read-only `RTCDataChannel` property **`ordered`** indicates whether or not the data channel guarantees in-order delivery of messages; the default is `true`, which indicates that the data channel is indeed ordered.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/ordered)\n */\n readonly ordered: boolean;\n /**\n * The read-only `RTCDataChannel` property **`protocol`** returns a string containing the name of the subprotocol in use.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/protocol)\n */\n readonly protocol: string;\n /**\n * The read-only `RTCDataChannel` property **`readyState`** returns a string which indicates the state of the data channel's underlying data connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/readyState)\n */\n readonly readyState: RTCDataChannelState;\n /**\n * The **`RTCDataChannel.close()`** method closes the closure of the channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close)\n */\n close(): void;\n /**\n * The **`send()`** method of the remote peer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/send)\n */\n send(data: string): void;\n send(data: Blob): void;\n send(data: ArrayBuffer): void;\n send(data: ArrayBufferView): void;\n addEventListener(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCDataChannel: {\n prototype: RTCDataChannel;\n new(): RTCDataChannel;\n};\n\n/**\n * The **`RTCEncodedAudioFrame`** of the WebRTC API represents an encoded audio frame in the WebRTC receiver or sender pipeline, which may be modified using a WebRTC Encoded Transform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame)\n */\ninterface RTCEncodedAudioFrame {\n /**\n * The **`data`** property of the RTCEncodedAudioFrame interface returns a buffer containing the data for an encoded frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/data)\n */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp) */\n readonly timestamp: number;\n /**\n * The **`getMetadata()`** method of the RTCEncodedAudioFrame interface returns an object containing the metadata associated with the frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/getMetadata)\n */\n getMetadata(): RTCEncodedAudioFrameMetadata;\n}\n\ndeclare var RTCEncodedAudioFrame: {\n prototype: RTCEncodedAudioFrame;\n new(): RTCEncodedAudioFrame;\n};\n\n/**\n * The **`RTCEncodedVideoFrame`** of the WebRTC API represents an encoded video frame in the WebRTC receiver or sender pipeline, which may be modified using a WebRTC Encoded Transform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame)\n */\ninterface RTCEncodedVideoFrame {\n /**\n * The **`data`** property of the RTCEncodedVideoFrame interface returns a buffer containing the frame data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/data)\n */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp) */\n readonly timestamp: number;\n /**\n * The **`type`** read-only property of the RTCEncodedVideoFrame interface indicates whether this frame is a key frame, delta frame, or empty frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/type)\n */\n readonly type: RTCEncodedVideoFrameType;\n /**\n * The **`getMetadata()`** method of the RTCEncodedVideoFrame interface returns an object containing the metadata associated with the frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/getMetadata)\n */\n getMetadata(): RTCEncodedVideoFrameMetadata;\n}\n\ndeclare var RTCEncodedVideoFrame: {\n prototype: RTCEncodedVideoFrame;\n new(): RTCEncodedVideoFrame;\n};\n\n/**\n * The **`RTCRtpScriptTransformer`** interface of the WebRTC API provides a worker-side Stream API interface that a WebRTC Encoded Transform can use to modify encoded media frames in the incoming and outgoing WebRTC pipelines.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer)\n */\ninterface RTCRtpScriptTransformer extends EventTarget {\n /**\n * The **`options`** read-only property of the RTCRtpScriptTransformer interface returns the object that was (optionally) passed as the second argument during construction of the corresponding RTCRtpScriptTransform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/options)\n */\n readonly options: any;\n /**\n * The **`readable`** read-only property of the RTCRtpScriptTransformer interface returns a ReadableStream instance is a source for encoded media frames.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/readable)\n */\n readonly readable: ReadableStream;\n /**\n * The **`writable`** read-only property of the RTCRtpScriptTransformer interface returns a WritableStream instance that can be used as a sink for encoded media frames enqueued on the corresponding RTCRtpScriptTransformer.readable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/writable)\n */\n readonly writable: WritableStream;\n /**\n * The **`generateKeyFrame()`** method of the RTCRtpScriptTransformer interface causes a video encoder to generate a key frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/generateKeyFrame)\n */\n generateKeyFrame(rid?: string): Promise;\n /**\n * The **`sendKeyFrameRequest()`** method of the RTCRtpScriptTransformer interface may be called by a WebRTC Encoded Transform that is processing incoming encoded video frames, in order to request a key frame from the sender.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/sendKeyFrameRequest)\n */\n sendKeyFrameRequest(): Promise;\n}\n\ndeclare var RTCRtpScriptTransformer: {\n prototype: RTCRtpScriptTransformer;\n new(): RTCRtpScriptTransformer;\n};\n\n/**\n * The **`RTCTransformEvent`** of the WebRTC API represent an event that is fired in a dedicated worker when an encoded frame has been queued for processing by a WebRTC Encoded Transform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent)\n */\ninterface RTCTransformEvent extends Event {\n /**\n * The read-only **`transformer`** property of the RTCTransformEvent interface returns the RTCRtpScriptTransformer associated with the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent/transformer)\n */\n readonly transformer: RTCRtpScriptTransformer;\n}\n\ndeclare var RTCTransformEvent: {\n prototype: RTCTransformEvent;\n new(): RTCTransformEvent;\n};\n\n/**\n * The **`ReadableByteStreamController`** interface of the Streams API represents a controller for a readable byte stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController)\n */\ninterface ReadableByteStreamController {\n /**\n * The **`byobRequest`** read-only property of the ReadableByteStreamController interface returns the current BYOB request, or `null` if there are no pending requests.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest)\n */\n readonly byobRequest: ReadableStreamBYOBRequest | null;\n /**\n * The **`desiredSize`** read-only property of the ReadableByteStreamController interface returns the number of bytes required to fill the stream's internal queue to its 'desired size'.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize)\n */\n readonly desiredSize: number | null;\n /**\n * The **`close()`** method of the ReadableByteStreamController interface closes the associated stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close)\n */\n close(): void;\n /**\n * The **`enqueue()`** method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is copied into the stream's internal queues).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue)\n */\n enqueue(chunk: ArrayBufferView): void;\n /**\n * The **`error()`** method of the ReadableByteStreamController interface causes any future interactions with the associated stream to error with the specified reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error)\n */\n error(e?: any): void;\n}\n\ndeclare var ReadableByteStreamController: {\n prototype: ReadableByteStreamController;\n new(): ReadableByteStreamController;\n};\n\n/**\n * The `ReadableStream` interface of the Streams API represents a readable stream of byte data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream)\n */\ninterface ReadableStream {\n /**\n * The **`locked`** read-only property of the ReadableStream interface returns whether or not the readable stream is locked to a reader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked)\n */\n readonly locked: boolean;\n /**\n * The **`cancel()`** method of the ReadableStream interface returns a Promise that resolves when the stream is canceled.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel)\n */\n cancel(reason?: any): Promise;\n /**\n * The **`getReader()`** method of the ReadableStream interface creates a reader and locks the stream to it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader)\n */\n getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader;\n getReader(): ReadableStreamDefaultReader;\n getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader;\n /**\n * The **`pipeThrough()`** method of the ReadableStream interface provides a chainable way of piping the current stream through a transform stream or any other writable/readable pair.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough)\n */\n pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream;\n /**\n * The **`pipeTo()`** method of the ReadableStream interface pipes the current `ReadableStream` to a given WritableStream and returns a Promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo)\n */\n pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise;\n /**\n * The **`tee()`** method of the two-element array containing the two resulting branches as new ReadableStream instances.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee)\n */\n tee(): [ReadableStream, ReadableStream];\n}\n\ndeclare var ReadableStream: {\n prototype: ReadableStream;\n new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream>;\n new(underlyingSource: UnderlyingDefaultSource, strategy?: QueuingStrategy): ReadableStream;\n new(underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream;\n};\n\n/**\n * The `ReadableStreamBYOBReader` interface of the Streams API defines a reader for a ReadableStream that supports zero-copy reading from an underlying byte source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader)\n */\ninterface ReadableStreamBYOBReader extends ReadableStreamGenericReader {\n /**\n * The **`read()`** method of the ReadableStreamBYOBReader interface is used to read data into a view on a user-supplied buffer from an associated readable byte stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read)\n */\n read(view: T): Promise>;\n /**\n * The **`releaseLock()`** method of the ReadableStreamBYOBReader interface releases the reader's lock on the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock)\n */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamBYOBReader: {\n prototype: ReadableStreamBYOBReader;\n new(stream: ReadableStream>): ReadableStreamBYOBReader;\n};\n\n/**\n * The **`ReadableStreamBYOBRequest`** interface of the Streams API represents a 'pull request' for data from an underlying source that will made as a zero-copy transfer to a consumer (bypassing the stream's internal queues).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest)\n */\ninterface ReadableStreamBYOBRequest {\n /**\n * The **`view`** getter property of the ReadableStreamBYOBRequest interface returns the current view.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view)\n */\n readonly view: ArrayBufferView | null;\n /**\n * The **`respond()`** method of the ReadableStreamBYOBRequest interface is used to signal to the associated readable byte stream that the specified number of bytes were written into the ReadableStreamBYOBRequest.view.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond)\n */\n respond(bytesWritten: number): void;\n /**\n * The **`respondWithNewView()`** method of the ReadableStreamBYOBRequest interface specifies a new view that the consumer of the associated readable byte stream should write to instead of ReadableStreamBYOBRequest.view.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView)\n */\n respondWithNewView(view: ArrayBufferView): void;\n}\n\ndeclare var ReadableStreamBYOBRequest: {\n prototype: ReadableStreamBYOBRequest;\n new(): ReadableStreamBYOBRequest;\n};\n\n/**\n * The **`ReadableStreamDefaultController`** interface of the Streams API represents a controller allowing control of a ReadableStream's state and internal queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController)\n */\ninterface ReadableStreamDefaultController {\n /**\n * The **`desiredSize`** read-only property of the required to fill the stream's internal queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize)\n */\n readonly desiredSize: number | null;\n /**\n * The **`close()`** method of the ReadableStreamDefaultController interface closes the associated stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close)\n */\n close(): void;\n /**\n * The **`enqueue()`** method of the ```js-nolint enqueue(chunk) ``` - `chunk` - : The chunk to enqueue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue)\n */\n enqueue(chunk?: R): void;\n /**\n * The **`error()`** method of the with the associated stream to error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error)\n */\n error(e?: any): void;\n}\n\ndeclare var ReadableStreamDefaultController: {\n prototype: ReadableStreamDefaultController;\n new(): ReadableStreamDefaultController;\n};\n\n/**\n * The **`ReadableStreamDefaultReader`** interface of the Streams API represents a default reader that can be used to read stream data supplied from a network (such as a fetch request).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader)\n */\ninterface ReadableStreamDefaultReader extends ReadableStreamGenericReader {\n /**\n * The **`read()`** method of the ReadableStreamDefaultReader interface returns a Promise providing access to the next chunk in the stream's internal queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read)\n */\n read(): Promise>;\n /**\n * The **`releaseLock()`** method of the ReadableStreamDefaultReader interface releases the reader's lock on the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock)\n */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamDefaultReader: {\n prototype: ReadableStreamDefaultReader;\n new(stream: ReadableStream): ReadableStreamDefaultReader;\n};\n\ninterface ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/closed) */\n readonly closed: Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/cancel) */\n cancel(reason?: any): Promise;\n}\n\n/**\n * The `Report` interface of the Reporting API represents a single report.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report)\n */\ninterface Report {\n /**\n * The **`body`** read-only property of the Report interface returns the body of the report, which is a `ReportBody` object containing the detailed report information.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/body)\n */\n readonly body: ReportBody | null;\n /**\n * The **`type`** read-only property of the Report interface returns the type of report generated, e.g., `deprecation` or `intervention`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/type)\n */\n readonly type: string;\n /**\n * The **`url`** read-only property of the Report interface returns the URL of the document that generated the report.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/url)\n */\n readonly url: string;\n toJSON(): any;\n}\n\ndeclare var Report: {\n prototype: Report;\n new(): Report;\n};\n\n/**\n * The **`ReportBody`** interface of the Reporting API represents the body of a report.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody)\n */\ninterface ReportBody {\n /**\n * The **`toJSON()`** method of the ReportBody interface is a _serializer_, and returns a JSON representation of the `ReportBody` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var ReportBody: {\n prototype: ReportBody;\n new(): ReportBody;\n};\n\n/**\n * The `ReportingObserver` interface of the Reporting API allows you to collect and access reports.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver)\n */\ninterface ReportingObserver {\n /**\n * The **`disconnect()`** method of the previously started observing from collecting reports.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/disconnect)\n */\n disconnect(): void;\n /**\n * The **`observe()`** method of the collecting reports in its report queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/observe)\n */\n observe(): void;\n /**\n * The **`takeRecords()`** method of the in the observer's report queue, and empties the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/takeRecords)\n */\n takeRecords(): ReportList;\n}\n\ndeclare var ReportingObserver: {\n prototype: ReportingObserver;\n new(callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;\n};\n\n/**\n * The **`Request`** interface of the Fetch API represents a resource request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request)\n */\ninterface Request extends Body {\n /**\n * The **`cache`** read-only property of the Request interface contains the cache mode of the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache)\n */\n readonly cache: RequestCache;\n /**\n * The **`credentials`** read-only property of the Request interface reflects the value given to the Request.Request() constructor in the `credentials` option.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/credentials)\n */\n readonly credentials: RequestCredentials;\n /**\n * The **`destination`** read-only property of the **Request** interface returns a string describing the type of content being requested.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/destination)\n */\n readonly destination: RequestDestination;\n /**\n * The **`headers`** read-only property of the with the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers)\n */\n readonly headers: Headers;\n /**\n * The **`integrity`** read-only property of the Request interface contains the subresource integrity value of the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity)\n */\n readonly integrity: string;\n /**\n * The **`keepalive`** read-only property of the Request interface contains the request's `keepalive` setting (`true` or `false`), which indicates whether the browser will keep the associated request alive if the page that initiated it is unloaded before the request is complete.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/keepalive)\n */\n readonly keepalive: boolean;\n /**\n * The **`method`** read-only property of the `POST`, etc.) A String indicating the method of the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method)\n */\n readonly method: string;\n /**\n * The **`mode`** read-only property of the Request interface contains the mode of the request (e.g., `cors`, `no-cors`, `same-origin`, or `navigate`.) This is used to determine if cross-origin requests lead to valid responses, and which properties of the response are readable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/mode)\n */\n readonly mode: RequestMode;\n /**\n * The **`redirect`** read-only property of the Request interface contains the mode for how redirects are handled.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect)\n */\n readonly redirect: RequestRedirect;\n /**\n * The **`referrer`** read-only property of the Request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrer)\n */\n readonly referrer: string;\n /**\n * The **`referrerPolicy`** read-only property of the referrer information, sent in the Referer header, should be included with the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrerPolicy)\n */\n readonly referrerPolicy: ReferrerPolicy;\n /**\n * The read-only **`signal`** property of the Request interface returns the AbortSignal associated with the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal)\n */\n readonly signal: AbortSignal;\n /**\n * The **`url`** read-only property of the Request interface contains the URL of the request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url)\n */\n readonly url: string;\n /**\n * The **`clone()`** method of the Request interface creates a copy of the current `Request` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone)\n */\n clone(): Request;\n}\n\ndeclare var Request: {\n prototype: Request;\n new(input: RequestInfo | URL, init?: RequestInit): Request;\n};\n\n/**\n * The **`Response`** interface of the Fetch API represents the response to a request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response)\n */\ninterface Response extends Body {\n /**\n * The **`headers`** read-only property of the with the response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers)\n */\n readonly headers: Headers;\n /**\n * The **`ok`** read-only property of the Response interface contains a Boolean stating whether the response was successful (status in the range 200-299) or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok)\n */\n readonly ok: boolean;\n /**\n * The **`redirected`** read-only property of the Response interface indicates whether or not the response is the result of a request you made which was redirected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected)\n */\n readonly redirected: boolean;\n /**\n * The **`status`** read-only property of the Response interface contains the HTTP status codes of the response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)\n */\n readonly status: number;\n /**\n * The **`statusText`** read-only property of the Response interface contains the status message corresponding to the HTTP status code in Response.status.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText)\n */\n readonly statusText: string;\n /**\n * The **`type`** read-only property of the Response interface contains the type of the response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type)\n */\n readonly type: ResponseType;\n /**\n * The **`url`** read-only property of the Response interface contains the URL of the response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url)\n */\n readonly url: string;\n /**\n * The **`clone()`** method of the Response interface creates a clone of a response object, identical in every way, but stored in a different variable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone)\n */\n clone(): Response;\n}\n\ndeclare var Response: {\n prototype: Response;\n new(body?: BodyInit | null, init?: ResponseInit): Response;\n /**\n * The **`error()`** static method of the Response interface returns a new `Response` object associated with a network error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/error_static)\n */\n error(): Response;\n /**\n * The **`json()`** static method of the Response interface returns a `Response` that contains the provided JSON data as body, and a Content-Type header which is set to `application/json`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/json_static)\n */\n json(data: any, init?: ResponseInit): Response;\n /**\n * The **`redirect()`** static method of the Response interface returns a `Response` resulting in a redirect to the specified URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirect_static)\n */\n redirect(url: string | URL, status?: number): Response;\n};\n\n/**\n * The **`SecurityPolicyViolationEvent`** interface inherits from Event, and represents the event object of a `securitypolicyviolation` event sent on an Element/securitypolicyviolation_event, Document/securitypolicyviolation_event, or WorkerGlobalScope/securitypolicyviolation_event when its Content Security Policy (CSP) is violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent)\n */\ninterface SecurityPolicyViolationEvent extends Event {\n /**\n * The **`blockedURI`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URI of the resource that was blocked because it violates a Content Security Policy (CSP).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/blockedURI)\n */\n readonly blockedURI: string;\n /**\n * The **`columnNumber`** read-only property of the SecurityPolicyViolationEvent interface is the column number in the document or worker script at which the Content Security Policy (CSP) violation occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/columnNumber)\n */\n readonly columnNumber: number;\n /**\n * The **`disposition`** read-only property of the SecurityPolicyViolationEvent interface indicates how the violated Content Security Policy (CSP) is configured to be treated by the user agent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/disposition)\n */\n readonly disposition: SecurityPolicyViolationEventDisposition;\n /**\n * The **`documentURI`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URI of the document or worker in which the Content Security Policy (CSP) violation occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/documentURI)\n */\n readonly documentURI: string;\n /**\n * The **`effectiveDirective`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the Content Security Policy (CSP) directive that was violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/effectiveDirective)\n */\n readonly effectiveDirective: string;\n /**\n * The **`lineNumber`** read-only property of the SecurityPolicyViolationEvent interface is the line number in the document or worker script at which the Content Security Policy (CSP) violation occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/lineNumber)\n */\n readonly lineNumber: number;\n /**\n * The **`originalPolicy`** read-only property of the SecurityPolicyViolationEvent interface is a string containing the Content Security Policy (CSP) whose enforcement uncovered the violation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/originalPolicy)\n */\n readonly originalPolicy: string;\n /**\n * The **`referrer`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the referrer for the resources whose Content Security Policy (CSP) was violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/referrer)\n */\n readonly referrer: string;\n /**\n * The **`sample`** read-only property of the SecurityPolicyViolationEvent interface is a string representing a sample of the resource that caused the Content Security Policy (CSP) violation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sample)\n */\n readonly sample: string;\n /**\n * The **`sourceFile`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URL of the script in which the Content Security Policy (CSP) violation occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sourceFile)\n */\n readonly sourceFile: string;\n /**\n * The **`statusCode`** read-only property of the SecurityPolicyViolationEvent interface is a number representing the HTTP status code of the window or worker in which the Content Security Policy (CSP) violation occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/statusCode)\n */\n readonly statusCode: number;\n /**\n * The **`violatedDirective`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the Content Security Policy (CSP) directive that was violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/violatedDirective)\n */\n readonly violatedDirective: string;\n}\n\ndeclare var SecurityPolicyViolationEvent: {\n prototype: SecurityPolicyViolationEvent;\n new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\n};\n\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\n \"statechange\": Event;\n}\n\n/**\n * The **`ServiceWorker`** interface of the Service Worker API provides a reference to a service worker.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker)\n */\ninterface ServiceWorker extends EventTarget, AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/statechange_event) */\n onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\n /**\n * Returns the `ServiceWorker` serialized script URL defined as part of `ServiceWorkerRegistration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/scriptURL)\n */\n readonly scriptURL: string;\n /**\n * The **`state`** read-only property of the of the service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/state)\n */\n readonly state: ServiceWorkerState;\n /**\n * The **`postMessage()`** method of the ServiceWorker interface sends a message to the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n addEventListener(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorker: {\n prototype: ServiceWorker;\n new(): ServiceWorker;\n};\n\ninterface ServiceWorkerContainerEventMap {\n \"controllerchange\": Event;\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\n/**\n * The **`ServiceWorkerContainer`** interface of the Service Worker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer)\n */\ninterface ServiceWorkerContainer extends EventTarget {\n /**\n * The **`controller`** read-only property of the ServiceWorkerContainer interface returns a `activated` (the same object returned by `null` if the request is a force refresh (_Shift_ + refresh) or if there is no active worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controller)\n */\n readonly controller: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controllerchange_event) */\n oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/message_event) */\n onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/messageerror_event) */\n onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /**\n * The **`ready`** read-only property of the ServiceWorkerContainer interface provides a way of delaying code execution until a service worker is active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/ready)\n */\n readonly ready: Promise;\n /**\n * The **`getRegistration()`** method of the client URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistration)\n */\n getRegistration(clientURL?: string | URL): Promise;\n /**\n * The **`getRegistrations()`** method of the `ServiceWorkerContainer`, in an array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistrations)\n */\n getRegistrations(): Promise>;\n /**\n * The **`register()`** method of the ServiceWorkerContainer interface creates or updates a ServiceWorkerRegistration for the given scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/register)\n */\n register(scriptURL: string | URL, options?: RegistrationOptions): Promise;\n /**\n * The **`startMessages()`** method of the ServiceWorkerContainer interface explicitly starts the flow of messages being dispatched from a service worker to pages under its control (e.g., sent via Client.postMessage()).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/startMessages)\n */\n startMessages(): void;\n addEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerContainer: {\n prototype: ServiceWorkerContainer;\n new(): ServiceWorkerContainer;\n};\n\ninterface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n \"activate\": ExtendableEvent;\n \"cookiechange\": ExtendableCookieChangeEvent;\n \"fetch\": FetchEvent;\n \"install\": ExtendableEvent;\n \"message\": ExtendableMessageEvent;\n \"messageerror\": MessageEvent;\n \"notificationclick\": NotificationEvent;\n \"notificationclose\": NotificationEvent;\n \"push\": PushEvent;\n \"pushsubscriptionchange\": PushSubscriptionChangeEvent;\n}\n\n/**\n * The **`ServiceWorkerGlobalScope`** interface of the Service Worker API represents the global execution context of a service worker.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope)\n */\ninterface ServiceWorkerGlobalScope extends WorkerGlobalScope {\n /**\n * The **`clients`** read-only property of the object associated with the service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/clients)\n */\n readonly clients: Clients;\n /**\n * The **`cookieStore`** read-only property of the ServiceWorkerGlobalScope interface returns a reference to the CookieStore object associated with this service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/cookieStore)\n */\n readonly cookieStore: CookieStore;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/activate_event) */\n onactivate: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/cookiechange_event) */\n oncookiechange: ((this: ServiceWorkerGlobalScope, ev: ExtendableCookieChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/fetch_event) */\n onfetch: ((this: ServiceWorkerGlobalScope, ev: FetchEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/install_event) */\n oninstall: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/message_event) */\n onmessage: ((this: ServiceWorkerGlobalScope, ev: ExtendableMessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/messageerror_event) */\n onmessageerror: ((this: ServiceWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclick_event) */\n onnotificationclick: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclose_event) */\n onnotificationclose: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/push_event) */\n onpush: ((this: ServiceWorkerGlobalScope, ev: PushEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event) */\n onpushsubscriptionchange: ((this: ServiceWorkerGlobalScope, ev: PushSubscriptionChangeEvent) => any) | null;\n /**\n * The **`registration`** read-only property of the ServiceWorkerGlobalScope interface returns a reference to the ServiceWorkerRegistration object, which represents the service worker's registration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/registration)\n */\n readonly registration: ServiceWorkerRegistration;\n /**\n * The **`serviceWorker`** read-only property of the ServiceWorkerGlobalScope interface returns a reference to the ServiceWorker object, which represents the service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/serviceWorker)\n */\n readonly serviceWorker: ServiceWorker;\n /**\n * The **`skipWaiting()`** method of the ServiceWorkerGlobalScope interface forces the waiting service worker to become the active service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting)\n */\n skipWaiting(): Promise;\n addEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerGlobalScope: {\n prototype: ServiceWorkerGlobalScope;\n new(): ServiceWorkerGlobalScope;\n};\n\ninterface ServiceWorkerRegistrationEventMap {\n \"updatefound\": Event;\n}\n\n/**\n * The **`ServiceWorkerRegistration`** interface of the Service Worker API represents the service worker registration.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration)\n */\ninterface ServiceWorkerRegistration extends EventTarget {\n /**\n * The **`active`** read-only property of the This property is initially set to `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/active)\n */\n readonly active: ServiceWorker | null;\n /**\n * The **`cookies`** read-only property of the ServiceWorkerRegistration interface returns a reference to the CookieStoreManager interface, which enables a web app to subscribe to and unsubscribe from cookie change events in a service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/cookies)\n */\n readonly cookies: CookieStoreManager;\n /**\n * The **`installing`** read-only property of the initially set to `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/installing)\n */\n readonly installing: ServiceWorker | null;\n /**\n * The **`navigationPreload`** read-only property of the ServiceWorkerRegistration interface returns the NavigationPreloadManager associated with the current service worker registration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/navigationPreload)\n */\n readonly navigationPreload: NavigationPreloadManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updatefound_event) */\n onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\n /**\n * The **`pushManager`** read-only property of the support for subscribing, getting an active subscription, and accessing push permission status.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/pushManager)\n */\n readonly pushManager: PushManager;\n /**\n * The **`scope`** read-only property of the ServiceWorkerRegistration interface returns a string representing a URL that defines a service worker's registration scope; that is, the range of URLs a service worker can control.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/scope)\n */\n readonly scope: string;\n /**\n * The **`updateViaCache`** read-only property of the ServiceWorkerRegistration interface returns the value of the setting used to determine the circumstances in which the browser will consult the HTTP cache when it tries to update the service worker or any scripts that are imported via WorkerGlobalScope.importScripts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updateViaCache)\n */\n readonly updateViaCache: ServiceWorkerUpdateViaCache;\n /**\n * The **`waiting`** read-only property of the set to `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/waiting)\n */\n readonly waiting: ServiceWorker | null;\n /**\n * The **`getNotifications()`** method of the ServiceWorkerRegistration interface returns a list of the notifications in the order that they were created from the current origin via the current service worker registration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/getNotifications)\n */\n getNotifications(filter?: GetNotificationOptions): Promise;\n /**\n * The **`showNotification()`** method of the service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/showNotification)\n */\n showNotification(title: string, options?: NotificationOptions): Promise;\n /**\n * The **`unregister()`** method of the registration and returns a Promise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/unregister)\n */\n unregister(): Promise;\n /**\n * The **`update()`** method of the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/update)\n */\n update(): Promise;\n addEventListener(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerRegistration: {\n prototype: ServiceWorkerRegistration;\n new(): ServiceWorkerRegistration;\n};\n\ninterface SharedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n \"connect\": MessageEvent;\n}\n\n/**\n * The **`SharedWorkerGlobalScope`** object (the SharedWorker global scope) is accessible through the window.self keyword.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope)\n */\ninterface SharedWorkerGlobalScope extends WorkerGlobalScope {\n /**\n * The **`name`** read-only property of the that the SharedWorker.SharedWorker constructor can pass to get a reference to the SharedWorkerGlobalScope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/connect_event) */\n onconnect: ((this: SharedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /**\n * The **`close()`** method of the SharedWorkerGlobalScope interface discards any tasks queued in the `SharedWorkerGlobalScope`'s event loop, effectively closing this particular scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/close)\n */\n close(): void;\n addEventListener(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SharedWorkerGlobalScope: {\n prototype: SharedWorkerGlobalScope;\n new(): SharedWorkerGlobalScope;\n};\n\n/**\n * The **`StorageManager`** interface of the Storage API provides an interface for managing persistence permissions and estimating available storage.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager)\n */\ninterface StorageManager {\n /**\n * The **`estimate()`** method of the StorageManager interface asks the Storage Manager for how much storage the current origin takes up (`usage`), and how much space is available (`quota`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/estimate)\n */\n estimate(): Promise;\n /**\n * The **`getDirectory()`** method of the StorageManager interface is used to obtain a reference to a FileSystemDirectoryHandle object allowing access to a directory and its contents, stored in the origin private file system (OPFS).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/getDirectory)\n */\n getDirectory(): Promise;\n /**\n * The **`persisted()`** method of the StorageManager interface returns a Promise that resolves to `true` if your site's storage bucket is persistent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persisted)\n */\n persisted(): Promise;\n}\n\ndeclare var StorageManager: {\n prototype: StorageManager;\n new(): StorageManager;\n};\n\n/**\n * The **`StylePropertyMapReadOnly`** interface of the CSS Typed Object Model API provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly)\n */\ninterface StylePropertyMapReadOnly {\n /**\n * The **`size`** read-only property of the containing the size of the `StylePropertyMapReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/size)\n */\n readonly size: number;\n /**\n * The **`get()`** method of the object for the first value of the specified property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/get)\n */\n get(property: string): undefined | CSSStyleValue;\n /**\n * The **`getAll()`** method of the ```js-nolint getAll(property) ``` - `property` - : The name of the property to retrieve all values of.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/getAll)\n */\n getAll(property: string): CSSStyleValue[];\n /**\n * The **`has()`** method of the property is in the `StylePropertyMapReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/has)\n */\n has(property: string): boolean;\n forEach(callbackfn: (value: CSSStyleValue[], key: string, parent: StylePropertyMapReadOnly) => void, thisArg?: any): void;\n}\n\ndeclare var StylePropertyMapReadOnly: {\n prototype: StylePropertyMapReadOnly;\n new(): StylePropertyMapReadOnly;\n};\n\n/**\n * The **`SubtleCrypto`** interface of the Web Crypto API provides a number of low-level cryptographic functions.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)\n */\ninterface SubtleCrypto {\n /**\n * The **`decrypt()`** method of the SubtleCrypto interface decrypts some encrypted data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt)\n */\n decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise;\n /**\n * The **`deriveBits()`** method of the key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)\n */\n deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null): Promise;\n /**\n * The **`deriveKey()`** method of the SubtleCrypto interface can be used to derive a secret key from a master key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)\n */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise;\n /**\n * The **`digest()`** method of the SubtleCrypto interface generates a _digest_ of the given data, using the specified hash function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest)\n */\n digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise;\n /**\n * The **`encrypt()`** method of the SubtleCrypto interface encrypts data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt)\n */\n encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise;\n /**\n * The **`exportKey()`** method of the SubtleCrypto interface exports a key: that is, it takes as input a CryptoKey object and gives you the key in an external, portable format.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey)\n */\n exportKey(format: \"jwk\", key: CryptoKey): Promise;\n exportKey(format: Exclude, key: CryptoKey): Promise;\n exportKey(format: KeyFormat, key: CryptoKey): Promise;\n /**\n * The **`generateKey()`** method of the SubtleCrypto interface is used to generate a new key (for symmetric algorithms) or key pair (for public-key algorithms).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)\n */\n generateKey(algorithm: \"Ed25519\" | { name: \"Ed25519\" }, extractable: boolean, keyUsages: ReadonlyArray<\"sign\" | \"verify\">): Promise;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise;\n /**\n * The **`importKey()`** method of the SubtleCrypto interface imports a key: that is, it takes as input a key in an external, portable format and gives you a CryptoKey object that you can use in the Web Crypto API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)\n */\n importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n importKey(format: Exclude, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise;\n /**\n * The **`sign()`** method of the SubtleCrypto interface generates a digital signature.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign)\n */\n sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise;\n /**\n * The **`unwrapKey()`** method of the SubtleCrypto interface 'unwraps' a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey)\n */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise;\n /**\n * The **`verify()`** method of the SubtleCrypto interface verifies a digital signature.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify)\n */\n verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise;\n /**\n * The **`wrapKey()`** method of the SubtleCrypto interface 'wraps' a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey)\n */\n wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise;\n}\n\ndeclare var SubtleCrypto: {\n prototype: SubtleCrypto;\n new(): SubtleCrypto;\n};\n\n/**\n * The **`TextDecoder`** interface represents a decoder for a specific text encoding, such as `UTF-8`, `ISO-8859-2`, `KOI8-R`, `GBK`, etc.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder)\n */\ninterface TextDecoder extends TextDecoderCommon {\n /**\n * The **`TextDecoder.decode()`** method returns a string containing text decoded from the buffer passed as a parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode)\n */\n decode(input?: AllowSharedBufferSource, options?: TextDecodeOptions): string;\n}\n\ndeclare var TextDecoder: {\n prototype: TextDecoder;\n new(label?: string, options?: TextDecoderOptions): TextDecoder;\n};\n\ninterface TextDecoderCommon {\n /**\n * Returns encoding's name, lowercased.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/encoding)\n */\n readonly encoding: string;\n /**\n * Returns true if error mode is \"fatal\", otherwise false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/fatal)\n */\n readonly fatal: boolean;\n /**\n * Returns the value of ignore BOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/ignoreBOM)\n */\n readonly ignoreBOM: boolean;\n}\n\n/**\n * The **`TextDecoderStream`** interface of the Encoding API converts a stream of text in a binary encoding, such as UTF-8 etc., to a stream of strings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream)\n */\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\n readonly readable: ReadableStream;\n readonly writable: WritableStream;\n}\n\ndeclare var TextDecoderStream: {\n prototype: TextDecoderStream;\n new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\n};\n\n/**\n * The **`TextEncoder`** interface takes a stream of code points as input and emits a stream of UTF-8 bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder)\n */\ninterface TextEncoder extends TextEncoderCommon {\n /**\n * The **`TextEncoder.encode()`** method takes a string as input, and returns a Global_Objects/Uint8Array containing the text given in parameters encoded with the specific method for that TextEncoder object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode)\n */\n encode(input?: string): Uint8Array;\n /**\n * The **`TextEncoder.encodeInto()`** method takes a string to encode and a destination Uint8Array to put resulting UTF-8 encoded text into, and returns a dictionary object indicating the progress of the encoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto)\n */\n encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\n}\n\ndeclare var TextEncoder: {\n prototype: TextEncoder;\n new(): TextEncoder;\n};\n\ninterface TextEncoderCommon {\n /**\n * Returns \"utf-8\".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encoding)\n */\n readonly encoding: string;\n}\n\n/**\n * The **`TextEncoderStream`** interface of the Encoding API converts a stream of strings into bytes in the UTF-8 encoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream)\n */\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\n readonly readable: ReadableStream>;\n readonly writable: WritableStream;\n}\n\ndeclare var TextEncoderStream: {\n prototype: TextEncoderStream;\n new(): TextEncoderStream;\n};\n\n/**\n * The **`TextMetrics`** interface represents the dimensions of a piece of text in the canvas; a `TextMetrics` instance can be retrieved using the CanvasRenderingContext2D.measureText() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics)\n */\ninterface TextMetrics {\n /**\n * The read-only **`actualBoundingBoxAscent`** property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the top of the bounding rectangle used to render the text, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxAscent)\n */\n readonly actualBoundingBoxAscent: number;\n /**\n * The read-only `actualBoundingBoxDescent` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the bottom of the bounding rectangle used to render the text, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxDescent)\n */\n readonly actualBoundingBoxDescent: number;\n /**\n * The read-only `actualBoundingBoxLeft` property of the TextMetrics interface is a `double` giving the distance parallel to the baseline from the alignment point given by the CanvasRenderingContext2D.textAlign property to the left side of the bounding rectangle of the given text, in CSS pixels; positive numbers indicating a distance going left from the given alignment point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxLeft)\n */\n readonly actualBoundingBoxLeft: number;\n /**\n * The read-only `actualBoundingBoxRight` property of the TextMetrics interface is a `double` giving the distance parallel to the baseline from the alignment point given by the CanvasRenderingContext2D.textAlign property to the right side of the bounding rectangle of the given text, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxRight)\n */\n readonly actualBoundingBoxRight: number;\n /**\n * The read-only `alphabeticBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the alphabetic baseline of the line box, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/alphabeticBaseline)\n */\n readonly alphabeticBaseline: number;\n /**\n * The read-only `emHeightAscent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the top of the _em_ square in the line box, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightAscent)\n */\n readonly emHeightAscent: number;\n /**\n * The read-only `emHeightDescent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the bottom of the _em_ square in the line box, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightDescent)\n */\n readonly emHeightDescent: number;\n /**\n * The read-only `fontBoundingBoxAscent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute, to the top of the highest bounding rectangle of all the fonts used to render the text, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxAscent)\n */\n readonly fontBoundingBoxAscent: number;\n /**\n * The read-only `fontBoundingBoxDescent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the bottom of the bounding rectangle of all the fonts used to render the text, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxDescent)\n */\n readonly fontBoundingBoxDescent: number;\n /**\n * The read-only `hangingBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the hanging baseline of the line box, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/hangingBaseline)\n */\n readonly hangingBaseline: number;\n /**\n * The read-only `ideographicBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the ideographic baseline of the line box, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/ideographicBaseline)\n */\n readonly ideographicBaseline: number;\n /**\n * The read-only **`width`** property of the TextMetrics interface contains the text's advance width (the width of that inline box) in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/width)\n */\n readonly width: number;\n}\n\ndeclare var TextMetrics: {\n prototype: TextMetrics;\n new(): TextMetrics;\n};\n\n/**\n * The **`TransformStream`** interface of the Streams API represents a concrete implementation of the pipe chain _transform stream_ concept.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream)\n */\ninterface TransformStream {\n /**\n * The **`readable`** read-only property of the TransformStream interface returns the ReadableStream instance controlled by this `TransformStream`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable)\n */\n readonly readable: ReadableStream;\n /**\n * The **`writable`** read-only property of the TransformStream interface returns the WritableStream instance controlled by this `TransformStream`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable)\n */\n readonly writable: WritableStream;\n}\n\ndeclare var TransformStream: {\n prototype: TransformStream;\n new(transformer?: Transformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy): TransformStream;\n};\n\n/**\n * The **`TransformStreamDefaultController`** interface of the Streams API provides methods to manipulate the associated ReadableStream and WritableStream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController)\n */\ninterface TransformStreamDefaultController {\n /**\n * The **`desiredSize`** read-only property of the TransformStreamDefaultController interface returns the desired size to fill the queue of the associated ReadableStream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize)\n */\n readonly desiredSize: number | null;\n /**\n * The **`enqueue()`** method of the TransformStreamDefaultController interface enqueues the given chunk in the readable side of the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue)\n */\n enqueue(chunk?: O): void;\n /**\n * The **`error()`** method of the TransformStreamDefaultController interface errors both sides of the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error)\n */\n error(reason?: any): void;\n /**\n * The **`terminate()`** method of the TransformStreamDefaultController interface closes the readable side and errors the writable side of the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate)\n */\n terminate(): void;\n}\n\ndeclare var TransformStreamDefaultController: {\n prototype: TransformStreamDefaultController;\n new(): TransformStreamDefaultController;\n};\n\n/**\n * The **`URL`** interface is used to parse, construct, normalize, and encode URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL)\n */\ninterface URL {\n /**\n * The **`hash`** property of the URL interface is a string containing a `'#'` followed by the fragment identifier of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash)\n */\n hash: string;\n /**\n * The **`host`** property of the URL interface is a string containing the host, which is the URL.hostname, and then, if the port of the URL is nonempty, a `':'`, followed by the URL.port of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host)\n */\n host: string;\n /**\n * The **`hostname`** property of the URL interface is a string containing either the domain name or IP address of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname)\n */\n hostname: string;\n /**\n * The **`href`** property of the URL interface is a string containing the whole URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href)\n */\n href: string;\n toString(): string;\n /**\n * The **`origin`** read-only property of the URL interface returns a string containing the Unicode serialization of the origin of the represented URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin)\n */\n readonly origin: string;\n /**\n * The **`password`** property of the URL interface is a string containing the password component of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password)\n */\n password: string;\n /**\n * The **`pathname`** property of the URL interface represents a location in a hierarchical structure.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname)\n */\n pathname: string;\n /**\n * The **`port`** property of the URL interface is a string containing the port number of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port)\n */\n port: string;\n /**\n * The **`protocol`** property of the URL interface is a string containing the protocol or scheme of the URL, including the final `':'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol)\n */\n protocol: string;\n /**\n * The **`search`** property of the URL interface is a search string, also called a _query string_, that is a string containing a `'?'` followed by the parameters of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search)\n */\n search: string;\n /**\n * The **`searchParams`** read-only property of the access to the [MISSING: httpmethod('GET')] decoded query arguments contained in the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams)\n */\n readonly searchParams: URLSearchParams;\n /**\n * The **`username`** property of the URL interface is a string containing the username component of the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username)\n */\n username: string;\n /**\n * The **`toJSON()`** method of the URL interface returns a string containing a serialized version of the URL, although in practice it seems to have the same effect as ```js-nolint toJSON() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON)\n */\n toJSON(): string;\n}\n\ndeclare var URL: {\n prototype: URL;\n new(url: string | URL, base?: string | URL): URL;\n /**\n * The **`URL.canParse()`** static method of the URL interface returns a boolean indicating whether or not an absolute URL, or a relative URL combined with a base URL, are parsable and valid.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static)\n */\n canParse(url: string | URL, base?: string | URL): boolean;\n /**\n * The **`createObjectURL()`** static method of the URL interface creates a string containing a URL representing the object given in the parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static)\n */\n createObjectURL(obj: Blob): string;\n /**\n * The **`URL.parse()`** static method of the URL interface returns a newly created URL object representing the URL defined by the parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/parse_static)\n */\n parse(url: string | URL, base?: string | URL): URL | null;\n /**\n * The **`revokeObjectURL()`** static method of the URL interface releases an existing object URL which was previously created by calling Call this method when you've finished using an object URL to let the browser know not to keep the reference to the file any longer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static)\n */\n revokeObjectURL(url: string): void;\n};\n\n/**\n * The **`URLSearchParams`** interface defines utility methods to work with the query string of a URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams)\n */\ninterface URLSearchParams {\n /**\n * The **`size`** read-only property of the URLSearchParams interface indicates the total number of search parameter entries.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size)\n */\n readonly size: number;\n /**\n * The **`append()`** method of the URLSearchParams interface appends a specified key/value pair as a new search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append)\n */\n append(name: string, value: string): void;\n /**\n * The **`delete()`** method of the URLSearchParams interface deletes specified parameters and their associated value(s) from the list of all search parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete)\n */\n delete(name: string, value?: string): void;\n /**\n * The **`get()`** method of the URLSearchParams interface returns the first value associated to the given search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get)\n */\n get(name: string): string | null;\n /**\n * The **`getAll()`** method of the URLSearchParams interface returns all the values associated with a given search parameter as an array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll)\n */\n getAll(name: string): string[];\n /**\n * The **`has()`** method of the URLSearchParams interface returns a boolean value that indicates whether the specified parameter is in the search parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has)\n */\n has(name: string, value?: string): boolean;\n /**\n * The **`set()`** method of the URLSearchParams interface sets the value associated with a given search parameter to the given value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set)\n */\n set(name: string, value: string): void;\n /**\n * The **`URLSearchParams.sort()`** method sorts all key/value pairs contained in this object in place and returns `undefined`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort)\n */\n sort(): void;\n toString(): string;\n forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\n}\n\ndeclare var URLSearchParams: {\n prototype: URLSearchParams;\n new(init?: string[][] | Record | string | URLSearchParams): URLSearchParams;\n};\n\n/**\n * The **`VideoColorSpace`** interface of the WebCodecs API represents the color space of a video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace)\n */\ninterface VideoColorSpace {\n /**\n * The **`fullRange`** read-only property of the VideoColorSpace interface returns `true` if full-range color values are used.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/fullRange)\n */\n readonly fullRange: boolean | null;\n /**\n * The **`matrix`** read-only property of the VideoColorSpace interface returns the matrix coefficient of the video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/matrix)\n */\n readonly matrix: VideoMatrixCoefficients | null;\n /**\n * The **`primaries`** read-only property of the VideoColorSpace interface returns the color gamut of the video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/primaries)\n */\n readonly primaries: VideoColorPrimaries | null;\n /**\n * The **`transfer`** read-only property of the VideoColorSpace interface returns the opto-electronic transfer characteristics of the video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/transfer)\n */\n readonly transfer: VideoTransferCharacteristics | null;\n /**\n * The **`toJSON()`** method of the VideoColorSpace interface is a _serializer_ that returns a JSON representation of the `VideoColorSpace` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON)\n */\n toJSON(): VideoColorSpaceInit;\n}\n\ndeclare var VideoColorSpace: {\n prototype: VideoColorSpace;\n new(init?: VideoColorSpaceInit): VideoColorSpace;\n};\n\ninterface VideoDecoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`VideoDecoder`** interface of the WebCodecs API decodes chunks of video.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder)\n */\ninterface VideoDecoder extends EventTarget {\n /**\n * The **`decodeQueueSize`** read-only property of the VideoDecoder interface returns the number of pending decode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize)\n */\n readonly decodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/dequeue_event) */\n ondequeue: ((this: VideoDecoder, ev: Event) => any) | null;\n /**\n * The **`state`** property of the VideoDecoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the VideoDecoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the VideoDecoder interface enqueues a control message to configure the video decoder for decoding chunks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure)\n */\n configure(config: VideoDecoderConfig): void;\n /**\n * The **`decode()`** method of the VideoDecoder interface enqueues a control message to decode a given chunk of video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode)\n */\n decode(chunk: EncodedVideoChunk): void;\n /**\n * The **`flush()`** method of the VideoDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the VideoDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoDecoder: {\n prototype: VideoDecoder;\n new(init: VideoDecoderInit): VideoDecoder;\n /**\n * The **`isConfigSupported()`** static method of the VideoDecoder interface checks if the given config is supported (that is, if VideoDecoder objects can be successfully configured with the given config).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/isConfigSupported_static)\n */\n isConfigSupported(config: VideoDecoderConfig): Promise;\n};\n\ninterface VideoEncoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`VideoEncoder`** interface of the WebCodecs API encodes VideoFrame objects into EncodedVideoChunks.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder)\n */\ninterface VideoEncoder extends EventTarget {\n /**\n * The **`encodeQueueSize`** read-only property of the VideoEncoder interface returns the number of pending encode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize)\n */\n readonly encodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/dequeue_event) */\n ondequeue: ((this: VideoEncoder, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the VideoEncoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the VideoEncoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the VideoEncoder interface changes the VideoEncoder.state of the encoder to 'configured' and asynchronously prepares the encoder to accept VideoEncoders for encoding with the specified parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure)\n */\n configure(config: VideoEncoderConfig): void;\n /**\n * The **`encode()`** method of the VideoEncoder interface asynchronously encodes a VideoFrame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode)\n */\n encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions): void;\n /**\n * The **`flush()`** method of the VideoEncoder interface forces all pending encodes to complete.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the VideoEncoder interface synchronously cancels all pending encodes and callbacks, frees all underlying resources and sets the VideoEncoder.state to 'unconfigured'.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoEncoder: {\n prototype: VideoEncoder;\n new(init: VideoEncoderInit): VideoEncoder;\n /**\n * The **`isConfigSupported()`** static method of the VideoEncoder interface checks if VideoEncoder can be successfully configured with the given config.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/isConfigSupported_static)\n */\n isConfigSupported(config: VideoEncoderConfig): Promise;\n};\n\n/**\n * The **`VideoFrame`** interface of the Web Codecs API represents a frame of a video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame)\n */\ninterface VideoFrame {\n /**\n * The **`codedHeight`** property of the VideoFrame interface returns the height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight)\n */\n readonly codedHeight: number;\n /**\n * The **`codedRect`** property of the VideoFrame interface returns a DOMRectReadOnly with the width and height matching VideoFrame.codedWidth and VideoFrame.codedHeight.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect)\n */\n readonly codedRect: DOMRectReadOnly | null;\n /**\n * The **`codedWidth`** property of the VideoFrame interface returns the width of the `VideoFrame` in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth)\n */\n readonly codedWidth: number;\n /**\n * The **`colorSpace`** property of the VideoFrame interface returns a VideoColorSpace object representing the color space of the video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace)\n */\n readonly colorSpace: VideoColorSpace;\n /**\n * The **`displayHeight`** property of the VideoFrame interface returns the height of the `VideoFrame` after applying aspect ratio adjustments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight)\n */\n readonly displayHeight: number;\n /**\n * The **`displayWidth`** property of the VideoFrame interface returns the width of the `VideoFrame` after applying aspect ratio adjustments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth)\n */\n readonly displayWidth: number;\n /**\n * The **`duration`** property of the VideoFrame interface returns an integer indicating the duration of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/duration)\n */\n readonly duration: number | null;\n /**\n * The **`format`** property of the VideoFrame interface returns the pixel format of the `VideoFrame`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/format)\n */\n readonly format: VideoPixelFormat | null;\n /**\n * The **`timestamp`** property of the VideoFrame interface returns an integer indicating the timestamp of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`visibleRect`** property of the VideoFrame interface returns a DOMRectReadOnly describing the visible rectangle of pixels for this `VideoFrame`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect)\n */\n readonly visibleRect: DOMRectReadOnly | null;\n /**\n * The **`allocationSize()`** method of the VideoFrame interface returns the number of bytes required to hold the video as filtered by options passed into the method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize)\n */\n allocationSize(options?: VideoFrameCopyToOptions): number;\n /**\n * The **`clone()`** method of the VideoFrame interface creates a new `VideoFrame` object referencing the same media resource as the original.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone)\n */\n clone(): VideoFrame;\n /**\n * The **`close()`** method of the VideoFrame interface clears all states and releases the reference to the media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/close)\n */\n close(): void;\n /**\n * The **`copyTo()`** method of the VideoFrame interface copies the contents of the `VideoFrame` to an `ArrayBuffer`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource, options?: VideoFrameCopyToOptions): Promise;\n}\n\ndeclare var VideoFrame: {\n prototype: VideoFrame;\n new(image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;\n new(data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;\n};\n\n/**\n * The **`WEBGL_color_buffer_float`** extension is part of the WebGL API and adds the ability to render to 32-bit floating-point color buffers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_color_buffer_float)\n */\ninterface WEBGL_color_buffer_float {\n readonly RGBA32F_EXT: 0x8814;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/**\n * The **`WEBGL_compressed_texture_astc`** extension is part of the WebGL API and exposes Adaptive Scalable Texture Compression (ASTC) compressed texture formats to WebGL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc)\n */\ninterface WEBGL_compressed_texture_astc {\n /**\n * The **`WEBGL_compressed_texture_astc.getSupportedProfiles()`** method returns an array of strings containing the names of the ASTC profiles supported by the implementation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc/getSupportedProfiles)\n */\n getSupportedProfiles(): string[];\n readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;\n readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;\n readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;\n readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;\n readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;\n readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;\n readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;\n readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;\n readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;\n readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;\n readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;\n readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;\n readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;\n readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;\n}\n\n/**\n * The **`WEBGL_compressed_texture_etc`** extension is part of the WebGL API and exposes 10 ETC/EAC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc)\n */\ninterface WEBGL_compressed_texture_etc {\n readonly COMPRESSED_R11_EAC: 0x9270;\n readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;\n readonly COMPRESSED_RG11_EAC: 0x9272;\n readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;\n readonly COMPRESSED_RGB8_ETC2: 0x9274;\n readonly COMPRESSED_SRGB8_ETC2: 0x9275;\n readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;\n readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;\n readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;\n readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;\n}\n\n/**\n * The **`WEBGL_compressed_texture_etc1`** extension is part of the WebGL API and exposes the ETC1 compressed texture format.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc1)\n */\ninterface WEBGL_compressed_texture_etc1 {\n readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;\n}\n\n/**\n * The **`WEBGL_compressed_texture_pvrtc`** extension is part of the WebGL API and exposes four PVRTC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_pvrtc)\n */\ninterface WEBGL_compressed_texture_pvrtc {\n readonly COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00;\n readonly COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01;\n readonly COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02;\n readonly COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03;\n}\n\n/**\n * The **`WEBGL_compressed_texture_s3tc`** extension is part of the WebGL API and exposes four S3TC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc)\n */\ninterface WEBGL_compressed_texture_s3tc {\n readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;\n readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;\n readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;\n readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;\n}\n\n/**\n * The **`WEBGL_compressed_texture_s3tc_srgb`** extension is part of the WebGL API and exposes four S3TC compressed texture formats for the sRGB colorspace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb)\n */\ninterface WEBGL_compressed_texture_s3tc_srgb {\n readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;\n}\n\n/**\n * The **`WEBGL_debug_renderer_info`** extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info)\n */\ninterface WEBGL_debug_renderer_info {\n readonly UNMASKED_VENDOR_WEBGL: 0x9245;\n readonly UNMASKED_RENDERER_WEBGL: 0x9246;\n}\n\n/**\n * The **`WEBGL_debug_shaders`** extension is part of the WebGL API and exposes a method to debug shaders from privileged contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders)\n */\ninterface WEBGL_debug_shaders {\n /**\n * The **`WEBGL_debug_shaders.getTranslatedShaderSource()`** method is part of the WebGL API and allows you to debug a translated shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders/getTranslatedShaderSource)\n */\n getTranslatedShaderSource(shader: WebGLShader): string;\n}\n\n/**\n * The **`WEBGL_depth_texture`** extension is part of the WebGL API and defines 2D depth and depth-stencil textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_depth_texture)\n */\ninterface WEBGL_depth_texture {\n readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;\n}\n\n/**\n * The **`WEBGL_draw_buffers`** extension is part of the WebGL API and enables a fragment shader to write to several textures, which is useful for deferred shading, for example.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers)\n */\ninterface WEBGL_draw_buffers {\n /**\n * The **`WEBGL_draw_buffers.drawBuffersWEBGL()`** method is part of the WebGL API and allows you to define the draw buffers to which all fragment colors are written.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL)\n */\n drawBuffersWEBGL(buffers: GLenum[]): void;\n readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;\n readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;\n readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;\n readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;\n readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;\n readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;\n readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;\n readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;\n readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;\n readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;\n readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;\n readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;\n readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;\n readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;\n readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;\n readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;\n readonly DRAW_BUFFER0_WEBGL: 0x8825;\n readonly DRAW_BUFFER1_WEBGL: 0x8826;\n readonly DRAW_BUFFER2_WEBGL: 0x8827;\n readonly DRAW_BUFFER3_WEBGL: 0x8828;\n readonly DRAW_BUFFER4_WEBGL: 0x8829;\n readonly DRAW_BUFFER5_WEBGL: 0x882A;\n readonly DRAW_BUFFER6_WEBGL: 0x882B;\n readonly DRAW_BUFFER7_WEBGL: 0x882C;\n readonly DRAW_BUFFER8_WEBGL: 0x882D;\n readonly DRAW_BUFFER9_WEBGL: 0x882E;\n readonly DRAW_BUFFER10_WEBGL: 0x882F;\n readonly DRAW_BUFFER11_WEBGL: 0x8830;\n readonly DRAW_BUFFER12_WEBGL: 0x8831;\n readonly DRAW_BUFFER13_WEBGL: 0x8832;\n readonly DRAW_BUFFER14_WEBGL: 0x8833;\n readonly DRAW_BUFFER15_WEBGL: 0x8834;\n readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;\n readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;\n}\n\n/**\n * The **WEBGL_lose_context** extension is part of the WebGL API and exposes functions to simulate losing and restoring a WebGLRenderingContext.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context)\n */\ninterface WEBGL_lose_context {\n /**\n * The **WEBGL_lose_context.loseContext()** method is part of the WebGL API and allows you to simulate losing the context of a WebGLRenderingContext context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/loseContext)\n */\n loseContext(): void;\n /**\n * The **WEBGL_lose_context.restoreContext()** method is part of the WebGL API and allows you to simulate restoring the context of a WebGLRenderingContext object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/restoreContext)\n */\n restoreContext(): void;\n}\n\n/**\n * The **`WEBGL_multi_draw`** extension is part of the WebGL API and allows to render more than one primitive with a single function call.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw)\n */\ninterface WEBGL_multi_draw {\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL)\n */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL)\n */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL)\n */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL)\n */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, drawcount: GLsizei): void;\n}\n\n/**\n * The **WebGL2RenderingContext** interface provides the OpenGL ES 3.0 rendering context for the drawing surface of an HTML canvas element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext)\n */\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\n}\n\ndeclare var WebGL2RenderingContext: {\n prototype: WebGL2RenderingContext;\n new(): WebGL2RenderingContext;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginQuery) */\n beginQuery(target: GLenum, query: WebGLQuery): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginTransformFeedback) */\n beginTransformFeedback(primitiveMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferBase) */\n bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferRange) */\n bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindSampler) */\n bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindTransformFeedback) */\n bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindVertexArray) */\n bindVertexArray(array: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/blitFramebuffer) */\n blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clientWaitSync) */\n clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexImage3D) */\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexSubImage3D) */\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyBufferSubData) */\n copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyTexSubImage3D) */\n copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createQuery) */\n createQuery(): WebGLQuery;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createSampler) */\n createSampler(): WebGLSampler;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createTransformFeedback) */\n createTransformFeedback(): WebGLTransformFeedback;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createVertexArray) */\n createVertexArray(): WebGLVertexArrayObject;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteQuery) */\n deleteQuery(query: WebGLQuery | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSampler) */\n deleteSampler(sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSync) */\n deleteSync(sync: WebGLSync | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteTransformFeedback) */\n deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteVertexArray) */\n deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) */\n drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawElementsInstanced) */\n drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawRangeElements) */\n drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endQuery) */\n endQuery(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endTransformFeedback) */\n endTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/fenceSync) */\n fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/framebufferTextureLayer) */\n framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockName) */\n getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockParameter) */\n getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getBufferSubData) */\n getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getFragDataLocation) */\n getFragDataLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getIndexedParameter) */\n getIndexedParameter(target: GLenum, index: GLuint): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getInternalformatParameter) */\n getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQuery) */\n getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQueryParameter) */\n getQueryParameter(query: WebGLQuery, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSamplerParameter) */\n getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSyncParameter) */\n getSyncParameter(sync: WebGLSync, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getTransformFeedbackVarying) */\n getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformBlockIndex) */\n getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isQuery) */\n isQuery(query: WebGLQuery | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSampler) */\n isSampler(sampler: WebGLSampler | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSync) */\n isSync(sync: WebGLSync | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isTransformFeedback) */\n isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isVertexArray) */\n isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/pauseTransformFeedback) */\n pauseTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/readBuffer) */\n readBuffer(src: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/renderbufferStorageMultisample) */\n renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/resumeTransformFeedback) */\n resumeTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texImage3D) */\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage2D) */\n texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage3D) */\n texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texSubImage3D) */\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformBlockBinding) */\n uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribDivisor) */\n vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribIPointer) */\n vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/waitSync) */\n waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, srcData: AllowSharedBufferSource | null, usage: GLenum): void;\n bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource): void;\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n}\n\n/**\n * The **WebGLActiveInfo** interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo)\n */\ninterface WebGLActiveInfo {\n /**\n * The read-only **`WebGLActiveInfo.name`** property represents the name of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/name)\n */\n readonly name: string;\n /**\n * The read-only **`WebGLActiveInfo.size`** property is a Number representing the size of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/size)\n */\n readonly size: GLint;\n /**\n * The read-only **`WebGLActiveInfo.type`** property represents the type of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/type)\n */\n readonly type: GLenum;\n}\n\ndeclare var WebGLActiveInfo: {\n prototype: WebGLActiveInfo;\n new(): WebGLActiveInfo;\n};\n\n/**\n * The **WebGLBuffer** interface is part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLBuffer)\n */\ninterface WebGLBuffer {\n}\n\ndeclare var WebGLBuffer: {\n prototype: WebGLBuffer;\n new(): WebGLBuffer;\n};\n\n/**\n * The **WebGLContextEvent** interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent)\n */\ninterface WebGLContextEvent extends Event {\n /**\n * The read-only **`WebGLContextEvent.statusMessage`** property contains additional event status information, or is an empty string if no additional information is available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent/statusMessage)\n */\n readonly statusMessage: string;\n}\n\ndeclare var WebGLContextEvent: {\n prototype: WebGLContextEvent;\n new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\n};\n\n/**\n * The **WebGLFramebuffer** interface is part of the WebGL API and represents a collection of buffers that serve as a rendering destination.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLFramebuffer)\n */\ninterface WebGLFramebuffer {\n}\n\ndeclare var WebGLFramebuffer: {\n prototype: WebGLFramebuffer;\n new(): WebGLFramebuffer;\n};\n\n/**\n * The **`WebGLProgram`** is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLProgram)\n */\ninterface WebGLProgram {\n}\n\ndeclare var WebGLProgram: {\n prototype: WebGLProgram;\n new(): WebGLProgram;\n};\n\n/**\n * The **`WebGLQuery`** interface is part of the WebGL 2 API and provides ways to asynchronously query for information.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLQuery)\n */\ninterface WebGLQuery {\n}\n\ndeclare var WebGLQuery: {\n prototype: WebGLQuery;\n new(): WebGLQuery;\n};\n\n/**\n * The **WebGLRenderbuffer** interface is part of the WebGL API and represents a buffer that can contain an image, or that can be a source or target of a rendering operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderbuffer)\n */\ninterface WebGLRenderbuffer {\n}\n\ndeclare var WebGLRenderbuffer: {\n prototype: WebGLRenderbuffer;\n new(): WebGLRenderbuffer;\n};\n\n/**\n * The **`WebGLRenderingContext`** interface provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML canvas element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext)\n */\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\n}\n\ndeclare var WebGLRenderingContext: {\n prototype: WebGLRenderingContext;\n new(): WebGLRenderingContext;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawingBufferColorSpace) */\n drawingBufferColorSpace: PredefinedColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) */\n readonly drawingBufferHeight: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) */\n readonly drawingBufferWidth: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/unpackColorSpace) */\n unpackColorSpace: PredefinedColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/activeTexture) */\n activeTexture(texture: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/attachShader) */\n attachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindAttribLocation) */\n bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindBuffer) */\n bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindFramebuffer) */\n bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) */\n bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindTexture) */\n bindTexture(target: GLenum, texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendColor) */\n blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquation) */\n blendEquation(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) */\n blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFunc) */\n blendFunc(sfactor: GLenum, dfactor: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) */\n blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) */\n checkFramebufferStatus(target: GLenum): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clear) */\n clear(mask: GLbitfield): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearColor) */\n clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearDepth) */\n clearDepth(depth: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearStencil) */\n clearStencil(s: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/colorMask) */\n colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compileShader) */\n compileShader(shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexImage2D) */\n copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) */\n copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createBuffer) */\n createBuffer(): WebGLBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createFramebuffer) */\n createFramebuffer(): WebGLFramebuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createProgram) */\n createProgram(): WebGLProgram;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createRenderbuffer) */\n createRenderbuffer(): WebGLRenderbuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createShader) */\n createShader(type: GLenum): WebGLShader | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createTexture) */\n createTexture(): WebGLTexture;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/cullFace) */\n cullFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteBuffer) */\n deleteBuffer(buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) */\n deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteProgram) */\n deleteProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) */\n deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteShader) */\n deleteShader(shader: WebGLShader | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteTexture) */\n deleteTexture(texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthFunc) */\n depthFunc(func: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthMask) */\n depthMask(flag: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthRange) */\n depthRange(zNear: GLclampf, zFar: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/detachShader) */\n detachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disable) */\n disable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) */\n disableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawArrays) */\n drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawElements) */\n drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enable) */\n enable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) */\n enableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/finish) */\n finish(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/flush) */\n flush(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) */\n framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) */\n framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/frontFace) */\n frontFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/generateMipmap) */\n generateMipmap(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveAttrib) */\n getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveUniform) */\n getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttachedShaders) */\n getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttribLocation) */\n getAttribLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getBufferParameter) */\n getBufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes) */\n getContextAttributes(): WebGLContextAttributes | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getError) */\n getError(): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getExtension) */\n getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null;\n getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null;\n getExtension(extensionName: \"EXT_color_buffer_float\"): EXT_color_buffer_float | null;\n getExtension(extensionName: \"EXT_color_buffer_half_float\"): EXT_color_buffer_half_float | null;\n getExtension(extensionName: \"EXT_float_blend\"): EXT_float_blend | null;\n getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null;\n getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null;\n getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null;\n getExtension(extensionName: \"EXT_texture_compression_bptc\"): EXT_texture_compression_bptc | null;\n getExtension(extensionName: \"EXT_texture_compression_rgtc\"): EXT_texture_compression_rgtc | null;\n getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null;\n getExtension(extensionName: \"KHR_parallel_shader_compile\"): KHR_parallel_shader_compile | null;\n getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null;\n getExtension(extensionName: \"OES_fbo_render_mipmap\"): OES_fbo_render_mipmap | null;\n getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null;\n getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null;\n getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null;\n getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null;\n getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null;\n getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null;\n getExtension(extensionName: \"OVR_multiview2\"): OVR_multiview2 | null;\n getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_etc\"): WEBGL_compressed_texture_etc | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_etc1\"): WEBGL_compressed_texture_etc1 | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_pvrtc\"): WEBGL_compressed_texture_pvrtc | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null;\n getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null;\n getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null;\n getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null;\n getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null;\n getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null;\n getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null;\n getExtension(extensionName: \"WEBGL_multi_draw\"): WEBGL_multi_draw | null;\n getExtension(name: string): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) */\n getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getParameter) */\n getParameter(pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) */\n getProgramInfoLog(program: WebGLProgram): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramParameter) */\n getProgramParameter(program: WebGLProgram, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) */\n getRenderbufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) */\n getShaderInfoLog(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderParameter) */\n getShaderParameter(shader: WebGLShader, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) */\n getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderSource) */\n getShaderSource(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) */\n getSupportedExtensions(): string[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getTexParameter) */\n getTexParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniform) */\n getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniformLocation) */\n getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttrib) */\n getVertexAttrib(index: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) */\n getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/hint) */\n hint(target: GLenum, mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isBuffer) */\n isBuffer(buffer: WebGLBuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isContextLost) */\n isContextLost(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isEnabled) */\n isEnabled(cap: GLenum): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isFramebuffer) */\n isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isProgram) */\n isProgram(program: WebGLProgram | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isRenderbuffer) */\n isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isShader) */\n isShader(shader: WebGLShader | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isTexture) */\n isTexture(texture: WebGLTexture | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/lineWidth) */\n lineWidth(width: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/linkProgram) */\n linkProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/pixelStorei) */\n pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/polygonOffset) */\n polygonOffset(factor: GLfloat, units: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/renderbufferStorage) */\n renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/sampleCoverage) */\n sampleCoverage(value: GLclampf, invert: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/scissor) */\n scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/shaderSource) */\n shaderSource(shader: WebGLShader, source: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFunc) */\n stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) */\n stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMask) */\n stencilMask(mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) */\n stencilMaskSeparate(face: GLenum, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOp) */\n stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) */\n stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/useProgram) */\n useProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/validateProgram) */\n validateProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1f(index: GLuint, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) */\n vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/viewport) */\n viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, data: AllowSharedBufferSource | null, usage: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n}\n\n/**\n * The **`WebGLSampler`** interface is part of the WebGL 2 API and stores sampling parameters for WebGLTexture access inside of a shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSampler)\n */\ninterface WebGLSampler {\n}\n\ndeclare var WebGLSampler: {\n prototype: WebGLSampler;\n new(): WebGLSampler;\n};\n\n/**\n * The **WebGLShader** is part of the WebGL API and can either be a vertex or a fragment shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShader)\n */\ninterface WebGLShader {\n}\n\ndeclare var WebGLShader: {\n prototype: WebGLShader;\n new(): WebGLShader;\n};\n\n/**\n * The **WebGLShaderPrecisionFormat** interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat)\n */\ninterface WebGLShaderPrecisionFormat {\n /**\n * The read-only **`WebGLShaderPrecisionFormat.precision`** property returns the number of bits of precision that can be represented.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/precision)\n */\n readonly precision: GLint;\n /**\n * The read-only **`WebGLShaderPrecisionFormat.rangeMax`** property returns the base 2 log of the absolute value of the maximum value that can be represented.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMax)\n */\n readonly rangeMax: GLint;\n /**\n * The read-only **`WebGLShaderPrecisionFormat.rangeMin`** property returns the base 2 log of the absolute value of the minimum value that can be represented.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMin)\n */\n readonly rangeMin: GLint;\n}\n\ndeclare var WebGLShaderPrecisionFormat: {\n prototype: WebGLShaderPrecisionFormat;\n new(): WebGLShaderPrecisionFormat;\n};\n\n/**\n * The **`WebGLSync`** interface is part of the WebGL 2 API and is used to synchronize activities between the GPU and the application.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSync)\n */\ninterface WebGLSync {\n}\n\ndeclare var WebGLSync: {\n prototype: WebGLSync;\n new(): WebGLSync;\n};\n\n/**\n * The **WebGLTexture** interface is part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTexture)\n */\ninterface WebGLTexture {\n}\n\ndeclare var WebGLTexture: {\n prototype: WebGLTexture;\n new(): WebGLTexture;\n};\n\n/**\n * The **`WebGLTransformFeedback`** interface is part of the WebGL 2 API and enables transform feedback, which is the process of capturing primitives generated by vertex processing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTransformFeedback)\n */\ninterface WebGLTransformFeedback {\n}\n\ndeclare var WebGLTransformFeedback: {\n prototype: WebGLTransformFeedback;\n new(): WebGLTransformFeedback;\n};\n\n/**\n * The **WebGLUniformLocation** interface is part of the WebGL API and represents the location of a uniform variable in a shader program.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLUniformLocation)\n */\ninterface WebGLUniformLocation {\n}\n\ndeclare var WebGLUniformLocation: {\n prototype: WebGLUniformLocation;\n new(): WebGLUniformLocation;\n};\n\n/**\n * The **`WebGLVertexArrayObject`** interface is part of the WebGL 2 API, represents vertex array objects (VAOs) pointing to vertex array data, and provides names for different sets of vertex data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject)\n */\ninterface WebGLVertexArrayObject {\n}\n\ndeclare var WebGLVertexArrayObject: {\n prototype: WebGLVertexArrayObject;\n new(): WebGLVertexArrayObject;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject) */\ninterface WebGLVertexArrayObjectOES {\n}\n\ninterface WebSocketEventMap {\n \"close\": CloseEvent;\n \"error\": Event;\n \"message\": MessageEvent;\n \"open\": Event;\n}\n\n/**\n * The `WebSocket` object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket)\n */\ninterface WebSocket extends EventTarget {\n /**\n * The **`WebSocket.binaryType`** property controls the type of binary data being received over the WebSocket connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/binaryType)\n */\n binaryType: BinaryType;\n /**\n * The **`WebSocket.bufferedAmount`** read-only property returns the number of bytes of data that have been queued using calls to `send()` but not yet transmitted to the network.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/bufferedAmount)\n */\n readonly bufferedAmount: number;\n /**\n * The **`WebSocket.extensions`** read-only property returns the extensions selected by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions)\n */\n readonly extensions: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close_event) */\n onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/error_event) */\n onerror: ((this: WebSocket, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/message_event) */\n onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/open_event) */\n onopen: ((this: WebSocket, ev: Event) => any) | null;\n /**\n * The **`WebSocket.protocol`** read-only property returns the name of the sub-protocol the server selected; this will be one of the strings specified in the `protocols` parameter when creating the WebSocket object, or the empty string if no connection is established.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol)\n */\n readonly protocol: string;\n /**\n * The **`WebSocket.readyState`** read-only property returns the current state of the WebSocket connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState)\n */\n readonly readyState: number;\n /**\n * The **`WebSocket.url`** read-only property returns the absolute URL of the WebSocket as resolved by the constructor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url)\n */\n readonly url: string;\n /**\n * The **`WebSocket.close()`** method closes the already `CLOSED`, this method does nothing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close)\n */\n close(code?: number, reason?: string): void;\n /**\n * The **`WebSocket.send()`** method enqueues the specified data to be transmitted to the server over the WebSocket connection, increasing the value of `bufferedAmount` by the number of bytes needed to contain the data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send)\n */\n send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n addEventListener(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WebSocket: {\n prototype: WebSocket;\n new(url: string | URL, protocols?: string | string[]): WebSocket;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n};\n\n/**\n * The **`WebTransport`** interface of the WebTransport API provides functionality to enable a user agent to connect to an HTTP/3 server, initiate reliable and unreliable transport in either or both directions, and close the connection once it is no longer needed.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport)\n */\ninterface WebTransport {\n /**\n * The **`closed`** read-only property of the WebTransport interface returns a promise that resolves when the transport is closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/closed)\n */\n readonly closed: Promise;\n /**\n * The **`datagrams`** read-only property of the WebTransport interface returns a WebTransportDatagramDuplexStream instance that can be used to send and receive datagrams — unreliable data transmission.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/datagrams)\n */\n readonly datagrams: WebTransportDatagramDuplexStream;\n /**\n * The **`incomingBidirectionalStreams`** read-only property of the WebTransport interface represents one or more bidirectional streams opened by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingBidirectionalStreams)\n */\n readonly incomingBidirectionalStreams: ReadableStream;\n /**\n * The **`incomingUnidirectionalStreams`** read-only property of the WebTransport interface represents one or more unidirectional streams opened by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingUnidirectionalStreams)\n */\n readonly incomingUnidirectionalStreams: ReadableStream;\n /**\n * The **`ready`** read-only property of the WebTransport interface returns a promise that resolves when the transport is ready to use.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/ready)\n */\n readonly ready: Promise;\n /**\n * The **`close()`** method of the WebTransport interface closes an ongoing WebTransport session.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/close)\n */\n close(closeInfo?: WebTransportCloseInfo): void;\n /**\n * The **`createBidirectionalStream()`** method of the WebTransport interface asynchronously opens and returns a bidirectional stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createBidirectionalStream)\n */\n createBidirectionalStream(options?: WebTransportSendStreamOptions): Promise;\n /**\n * The **`createUnidirectionalStream()`** method of the WebTransport interface asynchronously opens a unidirectional stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createUnidirectionalStream)\n */\n createUnidirectionalStream(options?: WebTransportSendStreamOptions): Promise;\n}\n\ndeclare var WebTransport: {\n prototype: WebTransport;\n new(url: string | URL, options?: WebTransportOptions): WebTransport;\n};\n\n/**\n * The **`WebTransportBidirectionalStream`** interface of the WebTransport API represents a bidirectional stream created by a server or a client that can be used for reliable transport.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream)\n */\ninterface WebTransportBidirectionalStream {\n /**\n * The **`readable`** read-only property of the WebTransportBidirectionalStream interface returns a WebTransportReceiveStream instance that can be used to reliably read incoming data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/readable)\n */\n readonly readable: ReadableStream;\n /**\n * The **`writable`** read-only property of the WebTransportBidirectionalStream interface returns a WebTransportSendStream instance that can be used to write outgoing data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/writable)\n */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportBidirectionalStream: {\n prototype: WebTransportBidirectionalStream;\n new(): WebTransportBidirectionalStream;\n};\n\n/**\n * The **`WebTransportDatagramDuplexStream`** interface of the WebTransport API represents a duplex stream that can be used for unreliable transport of datagrams between client and server.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream)\n */\ninterface WebTransportDatagramDuplexStream {\n /**\n * The **`incomingHighWaterMark`** property of the WebTransportDatagramDuplexStream interface gets or sets the high water mark for incoming chunks of data — this is the maximum size, in chunks, that the incoming ReadableStream's internal queue can reach before it is considered full.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingHighWaterMark)\n */\n incomingHighWaterMark: number;\n /**\n * The **`incomingMaxAge`** property of the WebTransportDatagramDuplexStream interface gets or sets the maximum age for incoming datagrams, in milliseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingMaxAge)\n */\n incomingMaxAge: number | null;\n /**\n * The **`maxDatagramSize`** read-only property of the WebTransportDatagramDuplexStream interface returns the maximum allowable size of outgoing datagrams, in bytes, that can be written to WebTransportDatagramDuplexStream.writable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize)\n */\n readonly maxDatagramSize: number;\n /**\n * The **`outgoingHighWaterMark`** property of the WebTransportDatagramDuplexStream interface gets or sets the high water mark for outgoing chunks of data — this is the maximum size, in chunks, that the outgoing WritableStream's internal queue can reach before it is considered full.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingHighWaterMark)\n */\n outgoingHighWaterMark: number;\n /**\n * The **`outgoingMaxAge`** property of the WebTransportDatagramDuplexStream interface gets or sets the maximum age for outgoing datagrams, in milliseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingMaxAge)\n */\n outgoingMaxAge: number | null;\n /**\n * The **`readable`** read-only property of the WebTransportDatagramDuplexStream interface returns a ReadableStream instance that can be used to unreliably read incoming datagrams from the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/readable)\n */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable) */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportDatagramDuplexStream: {\n prototype: WebTransportDatagramDuplexStream;\n new(): WebTransportDatagramDuplexStream;\n};\n\n/**\n * The **`WebTransportError`** interface of the WebTransport API represents an error related to the API, which can arise from server errors, network connection problems, or client-initiated abort operations (for example, arising from a WritableStream.abort() call).\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError)\n */\ninterface WebTransportError extends DOMException {\n /**\n * The **`source`** read-only property of the WebTransportError interface returns an enumerated value indicating the source of the error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/source)\n */\n readonly source: WebTransportErrorSource;\n /**\n * The **`streamErrorCode`** read-only property of the WebTransportError interface returns a number in the range 0-255 indicating the application protocol error code for this error, or `null` if one is not available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/streamErrorCode)\n */\n readonly streamErrorCode: number | null;\n}\n\ndeclare var WebTransportError: {\n prototype: WebTransportError;\n new(message?: string, options?: WebTransportErrorOptions): WebTransportError;\n};\n\n/**\n * The `WindowClient` interface of the ServiceWorker API represents the scope of a service worker client that is a document in a browsing context, controlled by an active worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient)\n */\ninterface WindowClient extends Client {\n /**\n * The **`focused`** read-only property of the the current client has focus.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focused)\n */\n readonly focused: boolean;\n /**\n * The **`visibilityState`** read-only property of the This value can be one of `'hidden'`, `'visible'`, or `'prerender'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/visibilityState)\n */\n readonly visibilityState: DocumentVisibilityState;\n /**\n * The **`focus()`** method of the WindowClient interface gives user input focus to the current client and returns a ```js-nolint focus() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focus)\n */\n focus(): Promise;\n /**\n * The **`navigate()`** method of the WindowClient interface loads a specified URL into a controlled client page then returns a ```js-nolint navigate(url) ``` - `url` - : The location to navigate to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/navigate)\n */\n navigate(url: string | URL): Promise;\n}\n\ndeclare var WindowClient: {\n prototype: WindowClient;\n new(): WindowClient;\n};\n\ninterface WindowOrWorkerGlobalScope {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/caches)\n */\n readonly caches: CacheStorage;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crossOriginIsolated) */\n readonly crossOriginIsolated: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crypto) */\n readonly crypto: Crypto;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/indexedDB) */\n readonly indexedDB: IDBFactory;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/isSecureContext) */\n readonly isSecureContext: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/performance) */\n readonly performance: Performance;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/atob) */\n atob(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/btoa) */\n btoa(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearInterval) */\n clearInterval(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearTimeout) */\n clearTimeout(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/createImageBitmap) */\n createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise;\n createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fetch) */\n fetch(input: RequestInfo | URL, init?: RequestInit): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */\n queueMicrotask(callback: VoidFunction): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/reportError) */\n reportError(e: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */\n setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */\n setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/structuredClone) */\n structuredClone(value: T, options?: StructuredSerializeOptions): T;\n}\n\ninterface WorkerEventMap extends AbstractWorkerEventMap, MessageEventTargetEventMap {\n}\n\n/**\n * The **`Worker`** interface of the Web Workers API represents a background task that can be created via script, which can send messages back to its creator.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker)\n */\ninterface Worker extends EventTarget, AbstractWorker, MessageEventTarget {\n /**\n * The **`postMessage()`** method of the Worker interface sends a message to the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * The **`terminate()`** method of the Worker interface immediately terminates the Worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/terminate)\n */\n terminate(): void;\n addEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Worker: {\n prototype: Worker;\n new(scriptURL: string | URL, options?: WorkerOptions): Worker;\n};\n\ninterface WorkerGlobalScopeEventMap {\n \"error\": ErrorEvent;\n \"languagechange\": Event;\n \"offline\": Event;\n \"online\": Event;\n \"rejectionhandled\": PromiseRejectionEvent;\n \"unhandledrejection\": PromiseRejectionEvent;\n}\n\n/**\n * The **`WorkerGlobalScope`** interface of the Web Workers API is an interface representing the scope of any worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope)\n */\ninterface WorkerGlobalScope extends EventTarget, FontFaceSource, WindowOrWorkerGlobalScope {\n /**\n * The **`location`** read-only property of the WorkerGlobalScope interface returns the WorkerLocation associated with the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/location)\n */\n readonly location: WorkerLocation;\n /**\n * The **`navigator`** read-only property of the WorkerGlobalScope interface returns the WorkerNavigator associated with the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/navigator)\n */\n readonly navigator: WorkerNavigator;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/error_event) */\n onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/languagechange_event) */\n onlanguagechange: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/offline_event) */\n onoffline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/online_event) */\n ononline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/rejectionhandled_event) */\n onrejectionhandled: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/unhandledrejection_event) */\n onunhandledrejection: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n /**\n * The **`self`** read-only property of the WorkerGlobalScope interface returns a reference to the `WorkerGlobalScope` itself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/self)\n */\n readonly self: WorkerGlobalScope & typeof globalThis;\n /**\n * The **`importScripts()`** method of the WorkerGlobalScope interface synchronously imports one or more scripts into the worker's scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/importScripts)\n */\n importScripts(...urls: (string | URL)[]): void;\n addEventListener(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WorkerGlobalScope: {\n prototype: WorkerGlobalScope;\n new(): WorkerGlobalScope;\n};\n\n/**\n * The **`WorkerLocation`** interface defines the absolute location of the script executed by the Worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation)\n */\ninterface WorkerLocation {\n /**\n * The **`hash`** property of a WorkerLocation object returns the URL.hash part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hash)\n */\n readonly hash: string;\n /**\n * The **`host`** property of a WorkerLocation object returns the URL.host part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/host)\n */\n readonly host: string;\n /**\n * The **`hostname`** property of a WorkerLocation object returns the URL.hostname part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hostname)\n */\n readonly hostname: string;\n /**\n * The **`href`** property of a WorkerLocation object returns a string containing the serialized URL for the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/href)\n */\n readonly href: string;\n toString(): string;\n /**\n * The **`origin`** property of a WorkerLocation object returns the worker's URL.origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/origin)\n */\n readonly origin: string;\n /**\n * The **`pathname`** property of a WorkerLocation object returns the URL.pathname part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/pathname)\n */\n readonly pathname: string;\n /**\n * The **`port`** property of a WorkerLocation object returns the URL.port part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/port)\n */\n readonly port: string;\n /**\n * The **`protocol`** property of a WorkerLocation object returns the URL.protocol part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/protocol)\n */\n readonly protocol: string;\n /**\n * The **`search`** property of a WorkerLocation object returns the URL.search part of the worker's location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/search)\n */\n readonly search: string;\n}\n\ndeclare var WorkerLocation: {\n prototype: WorkerLocation;\n new(): WorkerLocation;\n};\n\n/**\n * The **`WorkerNavigator`** interface represents a subset of the Navigator interface allowed to be accessed from a Worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator)\n */\ninterface WorkerNavigator extends NavigatorBadge, NavigatorConcurrentHardware, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {\n /**\n * The read-only **`mediaCapabilities`** property of the WorkerNavigator interface references a MediaCapabilities object that can expose information about the decoding and encoding capabilities for a given format and output capabilities (as defined by the Media Capabilities API).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/mediaCapabilities)\n */\n readonly mediaCapabilities: MediaCapabilities;\n /**\n * The **`permissions`** read-only property of the WorkerNavigator interface returns a Permissions object that can be used to query and update permission status of APIs covered by the Permissions API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/permissions)\n */\n readonly permissions: Permissions;\n /**\n * The **`serviceWorker`** read-only property of the WorkerNavigator interface returns the ServiceWorkerContainer object for the associated document, which provides access to registration, removal, upgrade, and communication with the ServiceWorker.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/serviceWorker)\n */\n readonly serviceWorker: ServiceWorkerContainer;\n}\n\ndeclare var WorkerNavigator: {\n prototype: WorkerNavigator;\n new(): WorkerNavigator;\n};\n\n/**\n * The **`WritableStream`** interface of the Streams API provides a standard abstraction for writing streaming data to a destination, known as a sink.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream)\n */\ninterface WritableStream {\n /**\n * The **`locked`** read-only property of the WritableStream interface returns a boolean indicating whether the `WritableStream` is locked to a writer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked)\n */\n readonly locked: boolean;\n /**\n * The **`abort()`** method of the WritableStream interface aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort)\n */\n abort(reason?: any): Promise;\n /**\n * The **`close()`** method of the WritableStream interface closes the associated stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close)\n */\n close(): Promise;\n /**\n * The **`getWriter()`** method of the WritableStream interface returns a new instance of WritableStreamDefaultWriter and locks the stream to that instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter)\n */\n getWriter(): WritableStreamDefaultWriter;\n}\n\ndeclare var WritableStream: {\n prototype: WritableStream;\n new(underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream;\n};\n\n/**\n * The **`WritableStreamDefaultController`** interface of the Streams API represents a controller allowing control of a WritableStream's state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController)\n */\ninterface WritableStreamDefaultController {\n /**\n * The read-only **`signal`** property of the WritableStreamDefaultController interface returns the AbortSignal associated with the controller.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * The **`error()`** method of the with the associated stream to error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error)\n */\n error(e?: any): void;\n}\n\ndeclare var WritableStreamDefaultController: {\n prototype: WritableStreamDefaultController;\n new(): WritableStreamDefaultController;\n};\n\n/**\n * The **`WritableStreamDefaultWriter`** interface of the Streams API is the object returned by WritableStream.getWriter() and once created locks the writer to the `WritableStream` ensuring that no other streams can write to the underlying sink.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter)\n */\ninterface WritableStreamDefaultWriter {\n /**\n * The **`closed`** read-only property of the the stream errors or the writer's lock is released.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed)\n */\n readonly closed: Promise;\n /**\n * The **`desiredSize`** read-only property of the to fill the stream's internal queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize)\n */\n readonly desiredSize: number | null;\n /**\n * The **`ready`** read-only property of the that resolves when the desired size of the stream's internal queue transitions from non-positive to positive, signaling that it is no longer applying backpressure.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready)\n */\n readonly ready: Promise;\n /**\n * The **`abort()`** method of the the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort)\n */\n abort(reason?: any): Promise;\n /**\n * The **`close()`** method of the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close)\n */\n close(): Promise;\n /**\n * The **`releaseLock()`** method of the corresponding stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock)\n */\n releaseLock(): void;\n /**\n * The **`write()`** method of the operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write)\n */\n write(chunk?: W): Promise;\n}\n\ndeclare var WritableStreamDefaultWriter: {\n prototype: WritableStreamDefaultWriter;\n new(stream: WritableStream): WritableStreamDefaultWriter;\n};\n\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\n \"readystatechange\": Event;\n}\n\n/**\n * `XMLHttpRequest` (XHR) objects are used to interact with servers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest)\n */\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readystatechange_event) */\n onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\n /**\n * The **XMLHttpRequest.readyState** property returns the state an XMLHttpRequest client is in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState)\n */\n readonly readyState: number;\n /**\n * The XMLHttpRequest **`response`** property returns the response's body content as an ArrayBuffer, a Blob, a Document, a JavaScript Object, or a string, depending on the value of the request's XMLHttpRequest.responseType property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response)\n */\n readonly response: any;\n /**\n * The read-only XMLHttpRequest property **`responseText`** returns the text received from a server following a request being sent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText)\n */\n readonly responseText: string;\n /**\n * The XMLHttpRequest property **`responseType`** is an enumerated string value specifying the type of data contained in the response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType)\n */\n responseType: XMLHttpRequestResponseType;\n /**\n * The read-only **`XMLHttpRequest.responseURL`** property returns the serialized URL of the response or the empty string if the URL is `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL)\n */\n readonly responseURL: string;\n /**\n * The read-only **`XMLHttpRequest.status`** property returns the numerical HTTP status code of the `XMLHttpRequest`'s response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status)\n */\n readonly status: number;\n /**\n * The read-only **`XMLHttpRequest.statusText`** property returns a string containing the response's status message as returned by the HTTP server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText)\n */\n readonly statusText: string;\n /**\n * The **`XMLHttpRequest.timeout`** property is an `unsigned long` representing the number of milliseconds a request can take before automatically being terminated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout)\n */\n timeout: number;\n /**\n * The XMLHttpRequest `upload` property returns an XMLHttpRequestUpload object that can be observed to monitor an upload's progress.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload)\n */\n readonly upload: XMLHttpRequestUpload;\n /**\n * The **`XMLHttpRequest.withCredentials`** property is a boolean value that indicates whether or not cross-site `Access-Control` requests should be made using credentials such as cookies, authentication headers or TLS client certificates.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials)\n */\n withCredentials: boolean;\n /**\n * The **`XMLHttpRequest.abort()`** method aborts the request if it has already been sent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort)\n */\n abort(): void;\n /**\n * The XMLHttpRequest method **`getAllResponseHeaders()`** returns all the response headers, separated by CRLF, as a string, or returns `null` if no response has been received.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders)\n */\n getAllResponseHeaders(): string;\n /**\n * The XMLHttpRequest method **`getResponseHeader()`** returns the string containing the text of a particular header's value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader)\n */\n getResponseHeader(name: string): string | null;\n /**\n * The XMLHttpRequest method **`open()`** initializes a newly-created request, or re-initializes an existing one.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open)\n */\n open(method: string, url: string | URL): void;\n open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;\n /**\n * The XMLHttpRequest method **`overrideMimeType()`** specifies a MIME type other than the one provided by the server to be used instead when interpreting the data being transferred in a request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType)\n */\n overrideMimeType(mime: string): void;\n /**\n * The XMLHttpRequest method **`send()`** sends the request to the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send)\n */\n send(body?: XMLHttpRequestBodyInit | null): void;\n /**\n * The XMLHttpRequest method **`setRequestHeader()`** sets the value of an HTTP request header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader)\n */\n setRequestHeader(name: string, value: string): void;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n addEventListener(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequest: {\n prototype: XMLHttpRequest;\n new(): XMLHttpRequest;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n};\n\ninterface XMLHttpRequestEventTargetEventMap {\n \"abort\": ProgressEvent;\n \"error\": ProgressEvent;\n \"load\": ProgressEvent;\n \"loadend\": ProgressEvent;\n \"loadstart\": ProgressEvent;\n \"progress\": ProgressEvent;\n \"timeout\": ProgressEvent;\n}\n\n/**\n * `XMLHttpRequestEventTarget` is the interface that describes the event handlers shared on XMLHttpRequest and XMLHttpRequestUpload.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestEventTarget)\n */\ninterface XMLHttpRequestEventTarget extends EventTarget {\n onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n addEventListener(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestEventTarget: {\n prototype: XMLHttpRequestEventTarget;\n new(): XMLHttpRequestEventTarget;\n};\n\n/**\n * The **`XMLHttpRequestUpload`** interface represents the upload process for a specific XMLHttpRequest.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestUpload)\n */\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n addEventListener(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestUpload: {\n prototype: XMLHttpRequestUpload;\n new(): XMLHttpRequestUpload;\n};\n\ndeclare namespace WebAssembly {\n interface CompileError extends Error {\n }\n\n var CompileError: {\n prototype: CompileError;\n new(message?: string): CompileError;\n (message?: string): CompileError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Global) */\n interface Global {\n value: ValueTypeMap[T];\n valueOf(): ValueTypeMap[T];\n }\n\n var Global: {\n prototype: Global;\n new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Instance) */\n interface Instance {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Instance/exports) */\n readonly exports: Exports;\n }\n\n var Instance: {\n prototype: Instance;\n new(module: Module, importObject?: Imports): Instance;\n };\n\n interface LinkError extends Error {\n }\n\n var LinkError: {\n prototype: LinkError;\n new(message?: string): LinkError;\n (message?: string): LinkError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory) */\n interface Memory {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory/buffer) */\n readonly buffer: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory/grow) */\n grow(delta: number): number;\n }\n\n var Memory: {\n prototype: Memory;\n new(descriptor: MemoryDescriptor): Memory;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module) */\n interface Module {\n }\n\n var Module: {\n prototype: Module;\n new(bytes: BufferSource): Module;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/customSections_static) */\n customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/exports_static) */\n exports(moduleObject: Module): ModuleExportDescriptor[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/imports_static) */\n imports(moduleObject: Module): ModuleImportDescriptor[];\n };\n\n interface RuntimeError extends Error {\n }\n\n var RuntimeError: {\n prototype: RuntimeError;\n new(message?: string): RuntimeError;\n (message?: string): RuntimeError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table) */\n interface Table {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/get) */\n get(index: number): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/grow) */\n grow(delta: number, value?: any): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/set) */\n set(index: number, value?: any): void;\n }\n\n var Table: {\n prototype: Table;\n new(descriptor: TableDescriptor, value?: any): Table;\n };\n\n interface GlobalDescriptor {\n mutable?: boolean;\n value: T;\n }\n\n interface MemoryDescriptor {\n initial: number;\n maximum?: number;\n shared?: boolean;\n }\n\n interface ModuleExportDescriptor {\n kind: ImportExportKind;\n name: string;\n }\n\n interface ModuleImportDescriptor {\n kind: ImportExportKind;\n module: string;\n name: string;\n }\n\n interface TableDescriptor {\n element: TableKind;\n initial: number;\n maximum?: number;\n }\n\n interface ValueTypeMap {\n anyfunc: Function;\n externref: any;\n f32: number;\n f64: number;\n i32: number;\n i64: bigint;\n v128: never;\n }\n\n interface WebAssemblyInstantiatedSource {\n instance: Instance;\n module: Module;\n }\n\n type ImportExportKind = \"function\" | \"global\" | \"memory\" | \"table\";\n type TableKind = \"anyfunc\" | \"externref\";\n type ExportValue = Function | Global | Memory | Table;\n type Exports = Record;\n type ImportValue = ExportValue | number;\n type Imports = Record;\n type ModuleImports = Record;\n type ValueType = keyof ValueTypeMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/compile_static) */\n function compile(bytes: BufferSource): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/compileStreaming_static) */\n function compileStreaming(source: Response | PromiseLike): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/instantiate_static) */\n function instantiate(bytes: BufferSource, importObject?: Imports): Promise;\n function instantiate(moduleObject: Module, importObject?: Imports): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/instantiateStreaming_static) */\n function instantiateStreaming(source: Response | PromiseLike, importObject?: Imports): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/validate_static) */\n function validate(bytes: BufferSource): boolean;\n}\n\n/** The **`console`** object provides access to the debugging console (e.g., the Web console in Firefox). */\n/**\n * The **`console`** object provides access to the debugging console (e.g., the Web console in Firefox).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console)\n */\ninterface Console {\n /**\n * The **`console.assert()`** static method writes an error message to the console if the assertion is false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static)\n */\n assert(condition?: boolean, ...data: any[]): void;\n /**\n * The **`console.clear()`** static method clears the console if possible.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static)\n */\n clear(): void;\n /**\n * The **`console.count()`** static method logs the number of times that this particular call to `count()` has been called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static)\n */\n count(label?: string): void;\n /**\n * The **`console.countReset()`** static method resets counter used with console/count_static.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static)\n */\n countReset(label?: string): void;\n /**\n * The **`console.debug()`** static method outputs a message to the console at the 'debug' log level.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static)\n */\n debug(...data: any[]): void;\n /**\n * The **`console.dir()`** static method displays a list of the properties of the specified JavaScript object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static)\n */\n dir(item?: any, options?: any): void;\n /**\n * The **`console.dirxml()`** static method displays an interactive tree of the descendant elements of the specified XML/HTML element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static)\n */\n dirxml(...data: any[]): void;\n /**\n * The **`console.error()`** static method outputs a message to the console at the 'error' log level.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static)\n */\n error(...data: any[]): void;\n /**\n * The **`console.group()`** static method creates a new inline group in the Web console log, causing any subsequent console messages to be indented by an additional level, until console/groupEnd_static is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static)\n */\n group(...data: any[]): void;\n /**\n * The **`console.groupCollapsed()`** static method creates a new inline group in the console.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static)\n */\n groupCollapsed(...data: any[]): void;\n /**\n * The **`console.groupEnd()`** static method exits the current inline group in the console.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static)\n */\n groupEnd(): void;\n /**\n * The **`console.info()`** static method outputs a message to the console at the 'info' log level.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static)\n */\n info(...data: any[]): void;\n /**\n * The **`console.log()`** static method outputs a message to the console.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\n */\n log(...data: any[]): void;\n /**\n * The **`console.table()`** static method displays tabular data as a table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static)\n */\n table(tabularData?: any, properties?: string[]): void;\n /**\n * The **`console.time()`** static method starts a timer you can use to track how long an operation takes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static)\n */\n time(label?: string): void;\n /**\n * The **`console.timeEnd()`** static method stops a timer that was previously started by calling console/time_static.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static)\n */\n timeEnd(label?: string): void;\n /**\n * The **`console.timeLog()`** static method logs the current value of a timer that was previously started by calling console/time_static.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static)\n */\n timeLog(label?: string, ...data: any[]): void;\n timeStamp(label?: string): void;\n /**\n * The **`console.trace()`** static method outputs a stack trace to the console.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static)\n */\n trace(...data: any[]): void;\n /**\n * The **`console.warn()`** static method outputs a warning message to the console at the 'warning' log level.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static)\n */\n warn(...data: any[]): void;\n}\n\ndeclare var console: Console;\n\ninterface AudioDataOutputCallback {\n (output: AudioData): void;\n}\n\ninterface EncodedAudioChunkOutputCallback {\n (output: EncodedAudioChunk, metadata?: EncodedAudioChunkMetadata): void;\n}\n\ninterface EncodedVideoChunkOutputCallback {\n (chunk: EncodedVideoChunk, metadata?: EncodedVideoChunkMetadata): void;\n}\n\ninterface FrameRequestCallback {\n (time: DOMHighResTimeStamp): void;\n}\n\ninterface LockGrantedCallback {\n (lock: Lock | null): T;\n}\n\ninterface OnErrorEventHandlerNonNull {\n (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n}\n\ninterface PerformanceObserverCallback {\n (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\n}\n\ninterface QueuingStrategySize {\n (chunk: T): number;\n}\n\ninterface ReportingObserverCallback {\n (reports: Report[], observer: ReportingObserver): void;\n}\n\ninterface TransformerFlushCallback {\n (controller: TransformStreamDefaultController): void | PromiseLike;\n}\n\ninterface TransformerStartCallback {\n (controller: TransformStreamDefaultController): any;\n}\n\ninterface TransformerTransformCallback {\n (chunk: I, controller: TransformStreamDefaultController): void | PromiseLike;\n}\n\ninterface UnderlyingSinkAbortCallback {\n (reason?: any): void | PromiseLike;\n}\n\ninterface UnderlyingSinkCloseCallback {\n (): void | PromiseLike;\n}\n\ninterface UnderlyingSinkStartCallback {\n (controller: WritableStreamDefaultController): any;\n}\n\ninterface UnderlyingSinkWriteCallback {\n (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike;\n}\n\ninterface UnderlyingSourceCancelCallback {\n (reason?: any): void | PromiseLike;\n}\n\ninterface UnderlyingSourcePullCallback {\n (controller: ReadableStreamController): void | PromiseLike;\n}\n\ninterface UnderlyingSourceStartCallback {\n (controller: ReadableStreamController): any;\n}\n\ninterface VideoFrameOutputCallback {\n (output: VideoFrame): void;\n}\n\ninterface VoidFunction {\n (): void;\n}\n\ninterface WebCodecsErrorCallback {\n (error: DOMException): void;\n}\n\n/**\n * The **`name`** read-only property of the the Worker.Worker constructor can pass to get a reference to the DedicatedWorkerGlobalScope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name)\n */\ndeclare var name: string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */\ndeclare var onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: RTCTransformEvent) => any) | null;\n/**\n * The **`close()`** method of the DedicatedWorkerGlobalScope interface discards any tasks queued in the `DedicatedWorkerGlobalScope`'s event loop, effectively closing this particular scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close)\n */\ndeclare function close(): void;\n/**\n * The **`postMessage()`** method of the DedicatedWorkerGlobalScope interface sends a message to the main thread that spawned it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)\n */\ndeclare function postMessage(message: any, transfer: Transferable[]): void;\ndeclare function postMessage(message: any, options?: StructuredSerializeOptions): void;\n/**\n * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\ndeclare function dispatchEvent(event: Event): boolean;\n/**\n * The **`location`** read-only property of the WorkerGlobalScope interface returns the WorkerLocation associated with the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/location)\n */\ndeclare var location: WorkerLocation;\n/**\n * The **`navigator`** read-only property of the WorkerGlobalScope interface returns the WorkerNavigator associated with the worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/navigator)\n */\ndeclare var navigator: WorkerNavigator;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/error_event) */\ndeclare var onerror: ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/languagechange_event) */\ndeclare var onlanguagechange: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/offline_event) */\ndeclare var onoffline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/online_event) */\ndeclare var ononline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/rejectionhandled_event) */\ndeclare var onrejectionhandled: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/unhandledrejection_event) */\ndeclare var onunhandledrejection: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n/**\n * The **`self`** read-only property of the WorkerGlobalScope interface returns a reference to the `WorkerGlobalScope` itself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/self)\n */\ndeclare var self: WorkerGlobalScope & typeof globalThis;\n/**\n * The **`importScripts()`** method of the WorkerGlobalScope interface synchronously imports one or more scripts into the worker's scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/importScripts)\n */\ndeclare function importScripts(...urls: (string | URL)[]): void;\n/**\n * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\ndeclare function dispatchEvent(event: Event): boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\ndeclare var fonts: FontFaceSet;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/caches)\n */\ndeclare var caches: CacheStorage;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crossOriginIsolated) */\ndeclare var crossOriginIsolated: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crypto) */\ndeclare var crypto: Crypto;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/indexedDB) */\ndeclare var indexedDB: IDBFactory;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/isSecureContext) */\ndeclare var isSecureContext: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/origin) */\ndeclare var origin: string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/performance) */\ndeclare var performance: Performance;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/atob) */\ndeclare function atob(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/btoa) */\ndeclare function btoa(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearInterval) */\ndeclare function clearInterval(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearTimeout) */\ndeclare function clearTimeout(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/createImageBitmap) */\ndeclare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise;\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fetch) */\ndeclare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */\ndeclare function queueMicrotask(callback: VoidFunction): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/reportError) */\ndeclare function reportError(e: any): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/structuredClone) */\ndeclare function structuredClone(value: T, options?: StructuredSerializeOptions): T;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\ndeclare function cancelAnimationFrame(handle: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */\ndeclare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */\ndeclare var onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\ndeclare function addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\ndeclare function removeEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\ntype AlgorithmIdentifier = Algorithm | string;\ntype AllowSharedBufferSource = ArrayBufferLike | ArrayBufferView;\ntype BigInteger = Uint8Array;\ntype BlobPart = BufferSource | Blob | string;\ntype BodyInit = ReadableStream | XMLHttpRequestBodyInit;\ntype BufferSource = ArrayBufferView | ArrayBuffer;\ntype CSSKeywordish = string | CSSKeywordValue;\ntype CSSNumberish = number | CSSNumericValue;\ntype CSSPerspectiveValue = CSSNumericValue | CSSKeywordish;\ntype CSSUnparsedSegment = string | CSSVariableReferenceValue;\ntype CanvasImageSource = ImageBitmap | OffscreenCanvas | VideoFrame;\ntype CookieList = CookieListItem[];\ntype DOMHighResTimeStamp = number;\ntype EpochTimeStamp = number;\ntype EventListenerOrEventListenerObject = EventListener | EventListenerObject;\ntype FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams;\ntype Float32List = Float32Array | GLfloat[];\ntype FormDataEntryValue = File | string;\ntype GLbitfield = number;\ntype GLboolean = boolean;\ntype GLclampf = number;\ntype GLenum = number;\ntype GLfloat = number;\ntype GLint = number;\ntype GLint64 = number;\ntype GLintptr = number;\ntype GLsizei = number;\ntype GLsizeiptr = number;\ntype GLuint = number;\ntype GLuint64 = number;\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\ntype HeadersInit = [string, string][] | Record | Headers;\ntype IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\ntype ImageBufferSource = AllowSharedBufferSource | ReadableStream;\ntype ImageDataArray = Uint8ClampedArray;\ntype Int32List = Int32Array | GLint[];\ntype MessageEventSource = MessagePort | ServiceWorker;\ntype NamedCurve = string;\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\ntype PerformanceEntryList = PerformanceEntry[];\ntype PushMessageDataInit = BufferSource | string;\ntype ReadableStreamController = ReadableStreamDefaultController | ReadableByteStreamController;\ntype ReadableStreamReadResult = ReadableStreamReadValueResult | ReadableStreamReadDoneResult;\ntype ReadableStreamReader = ReadableStreamDefaultReader | ReadableStreamBYOBReader;\ntype ReportList = Report[];\ntype RequestInfo = Request | string;\ntype TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame;\ntype TimerHandler = string | Function;\ntype Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | RTCDataChannel | ArrayBuffer;\ntype Uint32List = Uint32Array | GLuint[];\ntype XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;\ntype AlphaOption = \"discard\" | \"keep\";\ntype AudioSampleFormat = \"f32\" | \"f32-planar\" | \"s16\" | \"s16-planar\" | \"s32\" | \"s32-planar\" | \"u8\" | \"u8-planar\";\ntype AvcBitstreamFormat = \"annexb\" | \"avc\";\ntype BinaryType = \"arraybuffer\" | \"blob\";\ntype BitrateMode = \"constant\" | \"variable\";\ntype CSSMathOperator = \"clamp\" | \"invert\" | \"max\" | \"min\" | \"negate\" | \"product\" | \"sum\";\ntype CSSNumericBaseType = \"angle\" | \"flex\" | \"frequency\" | \"length\" | \"percent\" | \"resolution\" | \"time\";\ntype CanvasDirection = \"inherit\" | \"ltr\" | \"rtl\";\ntype CanvasFillRule = \"evenodd\" | \"nonzero\";\ntype CanvasFontKerning = \"auto\" | \"none\" | \"normal\";\ntype CanvasFontStretch = \"condensed\" | \"expanded\" | \"extra-condensed\" | \"extra-expanded\" | \"normal\" | \"semi-condensed\" | \"semi-expanded\" | \"ultra-condensed\" | \"ultra-expanded\";\ntype CanvasFontVariantCaps = \"all-petite-caps\" | \"all-small-caps\" | \"normal\" | \"petite-caps\" | \"small-caps\" | \"titling-caps\" | \"unicase\";\ntype CanvasLineCap = \"butt\" | \"round\" | \"square\";\ntype CanvasLineJoin = \"bevel\" | \"miter\" | \"round\";\ntype CanvasTextAlign = \"center\" | \"end\" | \"left\" | \"right\" | \"start\";\ntype CanvasTextBaseline = \"alphabetic\" | \"bottom\" | \"hanging\" | \"ideographic\" | \"middle\" | \"top\";\ntype CanvasTextRendering = \"auto\" | \"geometricPrecision\" | \"optimizeLegibility\" | \"optimizeSpeed\";\ntype ClientTypes = \"all\" | \"sharedworker\" | \"window\" | \"worker\";\ntype CodecState = \"closed\" | \"configured\" | \"unconfigured\";\ntype ColorGamut = \"p3\" | \"rec2020\" | \"srgb\";\ntype ColorSpaceConversion = \"default\" | \"none\";\ntype CompressionFormat = \"deflate\" | \"deflate-raw\" | \"gzip\";\ntype CookieSameSite = \"lax\" | \"none\" | \"strict\";\ntype DocumentVisibilityState = \"hidden\" | \"visible\";\ntype EncodedAudioChunkType = \"delta\" | \"key\";\ntype EncodedVideoChunkType = \"delta\" | \"key\";\ntype EndingType = \"native\" | \"transparent\";\ntype FileSystemHandleKind = \"directory\" | \"file\";\ntype FontDisplay = \"auto\" | \"block\" | \"fallback\" | \"optional\" | \"swap\";\ntype FontFaceLoadStatus = \"error\" | \"loaded\" | \"loading\" | \"unloaded\";\ntype FontFaceSetLoadStatus = \"loaded\" | \"loading\";\ntype FrameType = \"auxiliary\" | \"nested\" | \"none\" | \"top-level\";\ntype GlobalCompositeOperation = \"color\" | \"color-burn\" | \"color-dodge\" | \"copy\" | \"darken\" | \"destination-atop\" | \"destination-in\" | \"destination-out\" | \"destination-over\" | \"difference\" | \"exclusion\" | \"hard-light\" | \"hue\" | \"lighten\" | \"lighter\" | \"luminosity\" | \"multiply\" | \"overlay\" | \"saturation\" | \"screen\" | \"soft-light\" | \"source-atop\" | \"source-in\" | \"source-out\" | \"source-over\" | \"xor\";\ntype HardwareAcceleration = \"no-preference\" | \"prefer-hardware\" | \"prefer-software\";\ntype HdrMetadataType = \"smpteSt2086\" | \"smpteSt2094-10\" | \"smpteSt2094-40\";\ntype IDBCursorDirection = \"next\" | \"nextunique\" | \"prev\" | \"prevunique\";\ntype IDBRequestReadyState = \"done\" | \"pending\";\ntype IDBTransactionDurability = \"default\" | \"relaxed\" | \"strict\";\ntype IDBTransactionMode = \"readonly\" | \"readwrite\" | \"versionchange\";\ntype ImageOrientation = \"flipY\" | \"from-image\" | \"none\";\ntype ImageSmoothingQuality = \"high\" | \"low\" | \"medium\";\ntype KeyFormat = \"jwk\" | \"pkcs8\" | \"raw\" | \"spki\";\ntype KeyType = \"private\" | \"public\" | \"secret\";\ntype KeyUsage = \"decrypt\" | \"deriveBits\" | \"deriveKey\" | \"encrypt\" | \"sign\" | \"unwrapKey\" | \"verify\" | \"wrapKey\";\ntype LatencyMode = \"quality\" | \"realtime\";\ntype LockMode = \"exclusive\" | \"shared\";\ntype MediaDecodingType = \"file\" | \"media-source\" | \"webrtc\";\ntype MediaEncodingType = \"record\" | \"webrtc\";\ntype MediaKeysRequirement = \"not-allowed\" | \"optional\" | \"required\";\ntype NotificationDirection = \"auto\" | \"ltr\" | \"rtl\";\ntype NotificationPermission = \"default\" | \"denied\" | \"granted\";\ntype OffscreenRenderingContextId = \"2d\" | \"bitmaprenderer\" | \"webgl\" | \"webgl2\" | \"webgpu\";\ntype OpusBitstreamFormat = \"ogg\" | \"opus\";\ntype PermissionName = \"camera\" | \"geolocation\" | \"microphone\" | \"midi\" | \"notifications\" | \"persistent-storage\" | \"push\" | \"screen-wake-lock\" | \"storage-access\";\ntype PermissionState = \"denied\" | \"granted\" | \"prompt\";\ntype PredefinedColorSpace = \"display-p3\" | \"srgb\";\ntype PremultiplyAlpha = \"default\" | \"none\" | \"premultiply\";\ntype PushEncryptionKeyName = \"auth\" | \"p256dh\";\ntype RTCDataChannelState = \"closed\" | \"closing\" | \"connecting\" | \"open\";\ntype RTCEncodedVideoFrameType = \"delta\" | \"empty\" | \"key\";\ntype ReadableStreamReaderMode = \"byob\";\ntype ReadableStreamType = \"bytes\";\ntype ReferrerPolicy = \"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\";\ntype RequestCache = \"default\" | \"force-cache\" | \"no-cache\" | \"no-store\" | \"only-if-cached\" | \"reload\";\ntype RequestCredentials = \"include\" | \"omit\" | \"same-origin\";\ntype RequestDestination = \"\" | \"audio\" | \"audioworklet\" | \"document\" | \"embed\" | \"font\" | \"frame\" | \"iframe\" | \"image\" | \"manifest\" | \"object\" | \"paintworklet\" | \"report\" | \"script\" | \"sharedworker\" | \"style\" | \"track\" | \"video\" | \"worker\" | \"xslt\";\ntype RequestMode = \"cors\" | \"navigate\" | \"no-cors\" | \"same-origin\";\ntype RequestPriority = \"auto\" | \"high\" | \"low\";\ntype RequestRedirect = \"error\" | \"follow\" | \"manual\";\ntype ResizeQuality = \"high\" | \"low\" | \"medium\" | \"pixelated\";\ntype ResponseType = \"basic\" | \"cors\" | \"default\" | \"error\" | \"opaque\" | \"opaqueredirect\";\ntype SecurityPolicyViolationEventDisposition = \"enforce\" | \"report\";\ntype ServiceWorkerState = \"activated\" | \"activating\" | \"installed\" | \"installing\" | \"parsed\" | \"redundant\";\ntype ServiceWorkerUpdateViaCache = \"all\" | \"imports\" | \"none\";\ntype TransferFunction = \"hlg\" | \"pq\" | \"srgb\";\ntype VideoColorPrimaries = \"bt470bg\" | \"bt709\" | \"smpte170m\";\ntype VideoEncoderBitrateMode = \"constant\" | \"quantizer\" | \"variable\";\ntype VideoMatrixCoefficients = \"bt470bg\" | \"bt709\" | \"rgb\" | \"smpte170m\";\ntype VideoPixelFormat = \"BGRA\" | \"BGRX\" | \"I420\" | \"I420A\" | \"I422\" | \"I444\" | \"NV12\" | \"RGBA\" | \"RGBX\";\ntype VideoTransferCharacteristics = \"bt709\" | \"iec61966-2-1\" | \"smpte170m\";\ntype WebGLPowerPreference = \"default\" | \"high-performance\" | \"low-power\";\ntype WebTransportCongestionControl = \"default\" | \"low-latency\" | \"throughput\";\ntype WebTransportErrorSource = \"session\" | \"stream\";\ntype WorkerType = \"classic\" | \"module\";\ntype WriteCommandType = \"seek\" | \"truncate\" | \"write\";\ntype XMLHttpRequestResponseType = \"\" | \"arraybuffer\" | \"blob\" | \"document\" | \"json\" | \"text\";\n", + "lib.webworker.asynciterable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Worker Async Iterable APIs\n/////////////////////////////\n\ninterface FileSystemDirectoryHandleAsyncIterator extends AsyncIteratorObject {\n [Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator;\n}\n\ninterface FileSystemDirectoryHandle {\n [Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator<[string, FileSystemHandle]>;\n entries(): FileSystemDirectoryHandleAsyncIterator<[string, FileSystemHandle]>;\n keys(): FileSystemDirectoryHandleAsyncIterator;\n values(): FileSystemDirectoryHandleAsyncIterator;\n}\n\ninterface ReadableStreamAsyncIterator extends AsyncIteratorObject {\n [Symbol.asyncIterator](): ReadableStreamAsyncIterator;\n}\n\ninterface ReadableStream {\n [Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator;\n values(options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator;\n}\n", + "lib.scripthost.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Windows Script Host APIS\n/////////////////////////////\n\ninterface ActiveXObject {\n new (s: string): any;\n}\ndeclare var ActiveXObject: ActiveXObject;\n\ninterface ITextWriter {\n Write(s: string): void;\n WriteLine(s: string): void;\n Close(): void;\n}\n\ninterface TextStreamBase {\n /**\n * The column number of the current character position in an input stream.\n */\n Column: number;\n\n /**\n * The current line number in an input stream.\n */\n Line: number;\n\n /**\n * Closes a text stream.\n * It is not necessary to close standard streams; they close automatically when the process ends. If\n * you close a standard stream, be aware that any other pointers to that standard stream become invalid.\n */\n Close(): void;\n}\n\ninterface TextStreamWriter extends TextStreamBase {\n /**\n * Sends a string to an output stream.\n */\n Write(s: string): void;\n\n /**\n * Sends a specified number of blank lines (newline characters) to an output stream.\n */\n WriteBlankLines(intLines: number): void;\n\n /**\n * Sends a string followed by a newline character to an output stream.\n */\n WriteLine(s: string): void;\n}\n\ninterface TextStreamReader extends TextStreamBase {\n /**\n * Returns a specified number of characters from an input stream, starting at the current pointer position.\n * Does not return until the ENTER key is pressed.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n Read(characters: number): string;\n\n /**\n * Returns all characters from an input stream.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n ReadAll(): string;\n\n /**\n * Returns an entire line from an input stream.\n * Although this method extracts the newline character, it does not add it to the returned string.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n ReadLine(): string;\n\n /**\n * Skips a specified number of characters when reading from an input text stream.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)\n */\n Skip(characters: number): void;\n\n /**\n * Skips the next line when reading from an input text stream.\n * Can only be used on a stream in reading mode, not writing or appending mode.\n */\n SkipLine(): void;\n\n /**\n * Indicates whether the stream pointer position is at the end of a line.\n */\n AtEndOfLine: boolean;\n\n /**\n * Indicates whether the stream pointer position is at the end of a stream.\n */\n AtEndOfStream: boolean;\n}\n\ndeclare var WScript: {\n /**\n * Outputs text to either a message box (under WScript.exe) or the command console window followed by\n * a newline (under CScript.exe).\n */\n Echo(s: any): void;\n\n /**\n * Exposes the write-only error output stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdErr: TextStreamWriter;\n\n /**\n * Exposes the write-only output stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdOut: TextStreamWriter;\n Arguments: { length: number; Item(n: number): string; };\n\n /**\n * The full path of the currently running script.\n */\n ScriptFullName: string;\n\n /**\n * Forces the script to stop immediately, with an optional exit code.\n */\n Quit(exitCode?: number): number;\n\n /**\n * The Windows Script Host build version number.\n */\n BuildVersion: number;\n\n /**\n * Fully qualified path of the host executable.\n */\n FullName: string;\n\n /**\n * Gets/sets the script mode - interactive(true) or batch(false).\n */\n Interactive: boolean;\n\n /**\n * The name of the host executable (WScript.exe or CScript.exe).\n */\n Name: string;\n\n /**\n * Path of the directory containing the host executable.\n */\n Path: string;\n\n /**\n * The filename of the currently running script.\n */\n ScriptName: string;\n\n /**\n * Exposes the read-only input stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdIn: TextStreamReader;\n\n /**\n * Windows Script Host version\n */\n Version: string;\n\n /**\n * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event.\n */\n ConnectObject(objEventSource: any, strPrefix: string): void;\n\n /**\n * Creates a COM object.\n * @param strProgiID\n * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.\n */\n CreateObject(strProgID: string, strPrefix?: string): any;\n\n /**\n * Disconnects a COM object from its event sources.\n */\n DisconnectObject(obj: any): void;\n\n /**\n * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.\n * @param strPathname Fully qualified path to the file containing the object persisted to disk.\n * For objects in memory, pass a zero-length string.\n * @param strProgID\n * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.\n */\n GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;\n\n /**\n * Suspends script execution for a specified length of time, then continues execution.\n * @param intTime Interval (in milliseconds) to suspend script execution.\n */\n Sleep(intTime: number): void;\n};\n\n/**\n * WSH is an alias for WScript under Windows Script Host\n */\ndeclare var WSH: typeof WScript;\n\n/**\n * Represents an Automation SAFEARRAY\n */\ndeclare class SafeArray {\n private constructor();\n private SafeArray_typekey: SafeArray;\n}\n\n/**\n * Allows enumerating over a COM collection, which may not have indexed item access.\n */\ninterface Enumerator {\n /**\n * Returns true if the current item is the last one in the collection, or the collection is empty,\n * or the current item is undefined.\n */\n atEnd(): boolean;\n\n /**\n * Returns the current item in the collection\n */\n item(): T;\n\n /**\n * Resets the current item in the collection to the first item. If there are no items in the collection,\n * the current item is set to undefined.\n */\n moveFirst(): void;\n\n /**\n * Moves the current item to the next item in the collection. If the enumerator is at the end of\n * the collection or the collection is empty, the current item is set to undefined.\n */\n moveNext(): void;\n}\n\ninterface EnumeratorConstructor {\n new (safearray: SafeArray): Enumerator;\n new (collection: { Item(index: any): T; }): Enumerator;\n new (collection: any): Enumerator;\n}\n\ndeclare var Enumerator: EnumeratorConstructor;\n\n/**\n * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.\n */\ninterface VBArray {\n /**\n * Returns the number of dimensions (1-based).\n */\n dimensions(): number;\n\n /**\n * Takes an index for each dimension in the array, and returns the item at the corresponding location.\n */\n getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;\n\n /**\n * Returns the smallest available index for a given dimension.\n * @param dimension 1-based dimension (defaults to 1)\n */\n lbound(dimension?: number): number;\n\n /**\n * Returns the largest available index for a given dimension.\n * @param dimension 1-based dimension (defaults to 1)\n */\n ubound(dimension?: number): number;\n\n /**\n * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,\n * each successive dimension is appended to the end of the array.\n * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]\n */\n toArray(): T[];\n}\n\ninterface VBArrayConstructor {\n new (safeArray: SafeArray): VBArray;\n}\n\ndeclare var VBArray: VBArrayConstructor;\n\n/**\n * Automation date (VT_DATE)\n */\ndeclare class VarDate {\n private constructor();\n private VarDate_typekey: VarDate;\n}\n\ninterface DateConstructor {\n new (vd: VarDate): Date;\n}\n\ninterface Date {\n getVarDate: () => VarDate;\n}\n", + "lib.esnext.sharedmemory.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Atomics {\n /**\n * Performs a finite-time microwait by signaling to the operating system or\n * CPU that the current executing code is in a spin-wait loop.\n */\n pause(n?: number): void;\n}\n", + "lib.esnext.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface PromiseConstructor {\n /**\n * Takes a callback of any kind (returns or throws, synchronously or asynchronously) and wraps its result\n * in a Promise.\n *\n * @param callbackFn A function that is called synchronously. It can do anything: either return\n * a value, throw an error, or return a promise.\n * @param args Additional arguments, that will be passed to the callback.\n *\n * @returns A Promise that is:\n * - Already fulfilled, if the callback synchronously returns a value.\n * - Already rejected, if the callback synchronously throws an error.\n * - Asynchronously fulfilled or rejected, if the callback returns a promise.\n */\n try(callbackFn: (...args: U) => T | PromiseLike, ...args: U): Promise>;\n}\n", + "lib.esnext.iterator.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\n// NOTE: This is specified as what is essentially an unreachable module. All actual global declarations can be found\n// in the `declare global` section, below. This is necessary as there is currently no way to declare an `abstract`\n// member without declaring a `class`, but declaring `class Iterator` globally would conflict with TypeScript's\n// general purpose `Iterator` interface.\nexport {};\n\n// Abstract type that allows us to mark `next` as `abstract`\ndeclare abstract class Iterator { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging\n abstract next(value?: TNext): IteratorResult;\n}\n\n// Merge all members of `IteratorObject` into `Iterator`\ninterface Iterator extends globalThis.IteratorObject {}\n\n// Capture the `Iterator` constructor in a type we can use in the `extends` clause of `IteratorConstructor`.\ntype IteratorObjectConstructor = typeof Iterator;\n\ndeclare global {\n // Global `IteratorObject` interface that can be augmented by polyfills\n interface IteratorObject {\n /**\n * Returns this iterator.\n */\n [Symbol.iterator](): IteratorObject;\n\n /**\n * Creates an iterator whose values are the result of applying the callback to the values from this iterator.\n * @param callbackfn A function that accepts up to two arguments to be used to transform values from the underlying iterator.\n */\n map(callbackfn: (value: T, index: number) => U): IteratorObject;\n\n /**\n * Creates an iterator whose values are those from this iterator for which the provided predicate returns true.\n * @param predicate A function that accepts up to two arguments to be used to test values from the underlying iterator.\n */\n filter(predicate: (value: T, index: number) => value is S): IteratorObject;\n\n /**\n * Creates an iterator whose values are those from this iterator for which the provided predicate returns true.\n * @param predicate A function that accepts up to two arguments to be used to test values from the underlying iterator.\n */\n filter(predicate: (value: T, index: number) => unknown): IteratorObject;\n\n /**\n * Creates an iterator whose values are the values from this iterator, stopping once the provided limit is reached.\n * @param limit The maximum number of values to yield.\n */\n take(limit: number): IteratorObject;\n\n /**\n * Creates an iterator whose values are the values from this iterator after skipping the provided count.\n * @param count The number of values to drop.\n */\n drop(count: number): IteratorObject;\n\n /**\n * Creates an iterator whose values are the result of applying the callback to the values from this iterator and then flattening the resulting iterators or iterables.\n * @param callback A function that accepts up to two arguments to be used to transform values from the underlying iterator into new iterators or iterables to be flattened into the result.\n */\n flatMap(callback: (value: T, index: number) => Iterator | Iterable): IteratorObject;\n\n /**\n * Calls the specified callback function for all the elements in this iterator. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to three arguments. The reduce method calls the callbackfn function one time for each element in the iterator.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of a value from the iterator.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number) => T): T;\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number) => T, initialValue: T): T;\n\n /**\n * Calls the specified callback function for all the elements in this iterator. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to three arguments. The reduce method calls the callbackfn function one time for each element in the iterator.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of a value from the iterator.\n */\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number) => U, initialValue: U): U;\n\n /**\n * Creates a new array from the values yielded by this iterator.\n */\n toArray(): T[];\n\n /**\n * Performs the specified action for each element in the iterator.\n * @param callbackfn A function that accepts up to two arguments. forEach calls the callbackfn function one time for each element in the iterator.\n */\n forEach(callbackfn: (value: T, index: number) => void): void;\n\n /**\n * Determines whether the specified callback function returns true for any element of this iterator.\n * @param predicate A function that accepts up to two arguments. The some method calls\n * the predicate function for each element in this iterator until the predicate returns a value\n * true, or until the end of the iterator.\n */\n some(predicate: (value: T, index: number) => unknown): boolean;\n\n /**\n * Determines whether all the members of this iterator satisfy the specified test.\n * @param predicate A function that accepts up to two arguments. The every method calls\n * the predicate function for each element in this iterator until the predicate returns\n * false, or until the end of this iterator.\n */\n every(predicate: (value: T, index: number) => unknown): boolean;\n\n /**\n * Returns the value of the first element in this iterator where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of this iterator, in\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n */\n find(predicate: (value: T, index: number) => value is S): S | undefined;\n find(predicate: (value: T, index: number) => unknown): T | undefined;\n\n readonly [Symbol.toStringTag]: string;\n }\n\n // Global `IteratorConstructor` interface that can be augmented by polyfills\n interface IteratorConstructor extends IteratorObjectConstructor {\n /**\n * Creates a native iterator from an iterator or iterable object.\n * Returns its input if the input already inherits from the built-in Iterator class.\n * @param value An iterator or iterable object to convert a native iterator.\n */\n from(value: Iterator | Iterable): IteratorObject;\n }\n\n var Iterator: IteratorConstructor;\n}\n", + "lib.esnext.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n // Empty\n}\n", + "lib.esnext.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.esnext.float16.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\n/**\n * A typed array of 16-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Float16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Float16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Float16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Float16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Float16Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Float16Array.from([11.25, 2, -22.5, 1]);\n * myNums.toSorted((a, b) => a - b) // Float16Array(4) [-22.5, 1, 2, 11.5]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Float16Array;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Float16Array;\n\n [index: number]: number;\n\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n\n readonly [Symbol.toStringTag]: \"Float16Array\";\n}\n\ninterface Float16ArrayConstructor {\n readonly prototype: Float16Array;\n new (length?: number): Float16Array;\n new (array: ArrayLike | Iterable): Float16Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Float16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Float16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Float16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Float16Array;\n}\ndeclare var Float16Array: Float16ArrayConstructor;\n\ninterface Math {\n /**\n * Returns the nearest half precision float representation of a number.\n * @param x A numeric expression.\n */\n f16round(x: number): number;\n}\n\ninterface DataView {\n /**\n * Gets the Float16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getFloat16(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Stores an Float16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setFloat16(byteOffset: number, value: number, littleEndian?: boolean): void;\n}\n", + "lib.esnext.error.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ErrorConstructor {\n /**\n * Indicates whether the argument provided is a built-in Error instance or not.\n */\n isError(error: unknown): error is Error;\n}\n", + "lib.esnext.disposable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n\ninterface SymbolConstructor {\n /**\n * A method that is used to release resources held by an object. Called by the semantics of the `using` statement.\n */\n readonly dispose: unique symbol;\n\n /**\n * A method that is used to asynchronously release resources held by an object. Called by the semantics of the `await using` statement.\n */\n readonly asyncDispose: unique symbol;\n}\n\ninterface Disposable {\n [Symbol.dispose](): void;\n}\n\ninterface AsyncDisposable {\n [Symbol.asyncDispose](): PromiseLike;\n}\n\ninterface SuppressedError extends Error {\n error: any;\n suppressed: any;\n}\n\ninterface SuppressedErrorConstructor {\n new (error: any, suppressed: any, message?: string): SuppressedError;\n (error: any, suppressed: any, message?: string): SuppressedError;\n readonly prototype: SuppressedError;\n}\ndeclare var SuppressedError: SuppressedErrorConstructor;\n\ninterface DisposableStack {\n /**\n * Returns a value indicating whether this stack has been disposed.\n */\n readonly disposed: boolean;\n /**\n * Disposes each resource in the stack in the reverse order that they were added.\n */\n dispose(): void;\n /**\n * Adds a disposable resource to the stack, returning the resource.\n * @param value The resource to add. `null` and `undefined` will not be added, but will be returned.\n * @returns The provided {@link value}.\n */\n use(value: T): T;\n /**\n * Adds a value and associated disposal callback as a resource to the stack.\n * @param value The value to add.\n * @param onDispose The callback to use in place of a `[Symbol.dispose]()` method. Will be invoked with `value`\n * as the first parameter.\n * @returns The provided {@link value}.\n */\n adopt(value: T, onDispose: (value: T) => void): T;\n /**\n * Adds a callback to be invoked when the stack is disposed.\n */\n defer(onDispose: () => void): void;\n /**\n * Move all resources out of this stack and into a new `DisposableStack`, and marks this stack as disposed.\n * @example\n * ```ts\n * class C {\n * #res1: Disposable;\n * #res2: Disposable;\n * #disposables: DisposableStack;\n * constructor() {\n * // stack will be disposed when exiting constructor for any reason\n * using stack = new DisposableStack();\n *\n * // get first resource\n * this.#res1 = stack.use(getResource1());\n *\n * // get second resource. If this fails, both `stack` and `#res1` will be disposed.\n * this.#res2 = stack.use(getResource2());\n *\n * // all operations succeeded, move resources out of `stack` so that they aren't disposed\n * // when constructor exits\n * this.#disposables = stack.move();\n * }\n *\n * [Symbol.dispose]() {\n * this.#disposables.dispose();\n * }\n * }\n * ```\n */\n move(): DisposableStack;\n [Symbol.dispose](): void;\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface DisposableStackConstructor {\n new (): DisposableStack;\n readonly prototype: DisposableStack;\n}\ndeclare var DisposableStack: DisposableStackConstructor;\n\ninterface AsyncDisposableStack {\n /**\n * Returns a value indicating whether this stack has been disposed.\n */\n readonly disposed: boolean;\n /**\n * Disposes each resource in the stack in the reverse order that they were added.\n */\n disposeAsync(): Promise;\n /**\n * Adds a disposable resource to the stack, returning the resource.\n * @param value The resource to add. `null` and `undefined` will not be added, but will be returned.\n * @returns The provided {@link value}.\n */\n use(value: T): T;\n /**\n * Adds a value and associated disposal callback as a resource to the stack.\n * @param value The value to add.\n * @param onDisposeAsync The callback to use in place of a `[Symbol.asyncDispose]()` method. Will be invoked with `value`\n * as the first parameter.\n * @returns The provided {@link value}.\n */\n adopt(value: T, onDisposeAsync: (value: T) => PromiseLike | void): T;\n /**\n * Adds a callback to be invoked when the stack is disposed.\n */\n defer(onDisposeAsync: () => PromiseLike | void): void;\n /**\n * Move all resources out of this stack and into a new `DisposableStack`, and marks this stack as disposed.\n * @example\n * ```ts\n * class C {\n * #res1: Disposable;\n * #res2: Disposable;\n * #disposables: DisposableStack;\n * constructor() {\n * // stack will be disposed when exiting constructor for any reason\n * using stack = new DisposableStack();\n *\n * // get first resource\n * this.#res1 = stack.use(getResource1());\n *\n * // get second resource. If this fails, both `stack` and `#res1` will be disposed.\n * this.#res2 = stack.use(getResource2());\n *\n * // all operations succeeded, move resources out of `stack` so that they aren't disposed\n * // when constructor exits\n * this.#disposables = stack.move();\n * }\n *\n * [Symbol.dispose]() {\n * this.#disposables.dispose();\n * }\n * }\n * ```\n */\n move(): AsyncDisposableStack;\n [Symbol.asyncDispose](): Promise;\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface AsyncDisposableStackConstructor {\n new (): AsyncDisposableStack;\n readonly prototype: AsyncDisposableStack;\n}\ndeclare var AsyncDisposableStack: AsyncDisposableStackConstructor;\n\ninterface IteratorObject extends Disposable {\n}\n\ninterface AsyncIteratorObject extends AsyncDisposable {\n}\n", + "lib.esnext.decorators.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\ninterface SymbolConstructor {\n readonly metadata: unique symbol;\n}\n\ninterface Function {\n [Symbol.metadata]: DecoratorMetadata | null;\n}\n", + "lib.esnext.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.esnext.collection.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface ReadonlySetLike {\n /**\n * Despite its name, returns an iterator of the values in the set-like.\n */\n keys(): Iterator;\n /**\n * @returns a boolean indicating whether an element with the specified value exists in the set-like or not.\n */\n has(value: T): boolean;\n /**\n * @returns the number of (unique) elements in the set-like.\n */\n readonly size: number;\n}\n\ninterface Set {\n /**\n * @returns a new Set containing all the elements in this Set and also all the elements in the argument.\n */\n union(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements which are both in this Set and in the argument.\n */\n intersection(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements in this Set which are not also in the argument.\n */\n difference(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements which are in either this Set or in the argument, but not in both.\n */\n symmetricDifference(other: ReadonlySetLike): Set;\n /**\n * @returns a boolean indicating whether all the elements in this Set are also in the argument.\n */\n isSubsetOf(other: ReadonlySetLike): boolean;\n /**\n * @returns a boolean indicating whether all the elements in the argument are also in this Set.\n */\n isSupersetOf(other: ReadonlySetLike): boolean;\n /**\n * @returns a boolean indicating whether this Set has no elements in common with the argument.\n */\n isDisjointFrom(other: ReadonlySetLike): boolean;\n}\n\ninterface ReadonlySet {\n /**\n * @returns a new Set containing all the elements in this Set and also all the elements in the argument.\n */\n union(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements which are both in this Set and in the argument.\n */\n intersection(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements in this Set which are not also in the argument.\n */\n difference(other: ReadonlySetLike): Set;\n /**\n * @returns a new Set containing all the elements which are in either this Set or in the argument, but not in both.\n */\n symmetricDifference(other: ReadonlySetLike): Set;\n /**\n * @returns a boolean indicating whether all the elements in this Set are also in the argument.\n */\n isSubsetOf(other: ReadonlySetLike): boolean;\n /**\n * @returns a boolean indicating whether all the elements in the argument are also in this Set.\n */\n isSupersetOf(other: ReadonlySetLike): boolean;\n /**\n * @returns a boolean indicating whether this Set has no elements in common with the argument.\n */\n isDisjointFrom(other: ReadonlySetLike): boolean;\n}\n", + "lib.esnext.array.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ArrayConstructor {\n /**\n * Creates an array from an async iterator or iterable object.\n * @param iterableOrArrayLike An async iterator or array-like object to convert to an array.\n */\n fromAsync(iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise;\n\n /**\n * Creates an array from an async iterator or iterable object.\n *\n * @param iterableOrArrayLike An async iterator or array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of itarableOrArrayLike.\n * Each return value is awaited before being added to result array.\n * @param thisArg Value of 'this' used when executing mapfn.\n */\n fromAsync(iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited, index: number) => U, thisArg?: any): Promise[]>;\n}\n", + "lib.es6.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n", + "lib.es5.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\n/////////////////////////////\n/// ECMAScript APIs\n/////////////////////////////\n\ndeclare var NaN: number;\ndeclare var Infinity: number;\n\n/**\n * Evaluates JavaScript code and executes it.\n * @param x A String value that contains valid JavaScript code.\n */\ndeclare function eval(x: string): any;\n\n/**\n * Converts a string to an integer.\n * @param string A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\n * All other strings are considered decimal.\n */\ndeclare function parseInt(string: string, radix?: number): number;\n\n/**\n * Converts a string to a floating-point number.\n * @param string A string that contains a floating-point number.\n */\ndeclare function parseFloat(string: string): number;\n\n/**\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\n * @param number A numeric value.\n */\ndeclare function isNaN(number: number): boolean;\n\n/**\n * Determines whether a supplied number is finite.\n * @param number Any numeric value.\n */\ndeclare function isFinite(number: number): boolean;\n\n/**\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\n * @param encodedURI A value representing an encoded URI.\n */\ndeclare function decodeURI(encodedURI: string): string;\n\n/**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n * @param encodedURIComponent A value representing an encoded URI component.\n */\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\n\n/**\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\n * @param uri A value representing an unencoded URI.\n */\ndeclare function encodeURI(uri: string): string;\n\n/**\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\n * @param uriComponent A value representing an unencoded URI component.\n */\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\n\n/**\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\n * @deprecated A legacy feature for browser compatibility\n * @param string A string value\n */\ndeclare function escape(string: string): string;\n\n/**\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\n * @deprecated A legacy feature for browser compatibility\n * @param string A string value\n */\ndeclare function unescape(string: string): string;\n\ninterface Symbol {\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): symbol;\n}\n\ndeclare type PropertyKey = string | number | symbol;\n\ninterface PropertyDescriptor {\n configurable?: boolean;\n enumerable?: boolean;\n value?: any;\n writable?: boolean;\n get?(): any;\n set?(v: any): void;\n}\n\ninterface PropertyDescriptorMap {\n [key: PropertyKey]: PropertyDescriptor;\n}\n\ninterface Object {\n /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\n constructor: Function;\n\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns a date converted to a string using the current locale. */\n toLocaleString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Object;\n\n /**\n * Determines whether an object has a property with the specified name.\n * @param v A property name.\n */\n hasOwnProperty(v: PropertyKey): boolean;\n\n /**\n * Determines whether an object exists in another object's prototype chain.\n * @param v Another object whose prototype chain is to be checked.\n */\n isPrototypeOf(v: Object): boolean;\n\n /**\n * Determines whether a specified property is enumerable.\n * @param v A property name.\n */\n propertyIsEnumerable(v: PropertyKey): boolean;\n}\n\ninterface ObjectConstructor {\n new (value?: any): Object;\n (): any;\n (value: any): any;\n\n /** A reference to the prototype for a class of objects. */\n readonly prototype: Object;\n\n /**\n * Returns the prototype of an object.\n * @param o The object that references the prototype.\n */\n getPrototypeOf(o: any): any;\n\n /**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\n * @param o Object that contains the property.\n * @param p Name of the property.\n */\n getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\n\n /**\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\n * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\n * @param o Object that contains the own properties.\n */\n getOwnPropertyNames(o: any): string[];\n\n /**\n * Creates an object that has the specified prototype or that has null prototype.\n * @param o Object to use as a prototype. May be null.\n */\n create(o: object | null): any;\n\n /**\n * Creates an object that has the specified prototype, and that optionally contains specified properties.\n * @param o Object to use as a prototype. May be null\n * @param properties JavaScript object that contains one or more property descriptors.\n */\n create(o: object | null, properties: PropertyDescriptorMap & ThisType): any;\n\n /**\n * Adds a property to an object, or modifies attributes of an existing property.\n * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\n * @param p The property name.\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\n */\n defineProperty(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType): T;\n\n /**\n * Adds one or more properties to an object, and/or modifies attributes of existing properties.\n * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\n * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\n */\n defineProperties(o: T, properties: PropertyDescriptorMap & ThisType): T;\n\n /**\n * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n seal(o: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param f Object on which to lock the attributes.\n */\n freeze(f: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze(o: T): Readonly;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze(o: T): Readonly;\n\n /**\n * Prevents the addition of new properties to an object.\n * @param o Object to make non-extensible.\n */\n preventExtensions(o: T): T;\n\n /**\n * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isSealed(o: any): boolean;\n\n /**\n * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isFrozen(o: any): boolean;\n\n /**\n * Returns a value that indicates whether new properties can be added to an object.\n * @param o Object to test.\n */\n isExtensible(o: any): boolean;\n\n /**\n * Returns the names of the enumerable string properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n keys(o: object): string[];\n}\n\n/**\n * Provides functionality common to all JavaScript objects.\n */\ndeclare var Object: ObjectConstructor;\n\n/**\n * Creates a new function.\n */\ninterface Function {\n /**\n * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\n * @param thisArg The object to be used as the this object.\n * @param argArray A set of arguments to be passed to the function.\n */\n apply(this: Function, thisArg: any, argArray?: any): any;\n\n /**\n * Calls a method of an object, substituting another object for the current object.\n * @param thisArg The object to be used as the current object.\n * @param argArray A list of arguments to be passed to the method.\n */\n call(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg An object to which the this keyword can refer inside the new function.\n * @param argArray A list of arguments to be passed to the new function.\n */\n bind(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /** Returns a string representation of a function. */\n toString(): string;\n\n prototype: any;\n readonly length: number;\n\n // Non-standard extensions\n arguments: any;\n caller: Function;\n}\n\ninterface FunctionConstructor {\n /**\n * Creates a new function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): Function;\n (...args: string[]): Function;\n readonly prototype: Function;\n}\n\ndeclare var Function: FunctionConstructor;\n\n/**\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\n */\ntype ThisParameterType = T extends (this: infer U, ...args: never) => any ? U : unknown;\n\n/**\n * Removes the 'this' parameter from a function type.\n */\ntype OmitThisParameter = unknown extends ThisParameterType ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\n\ninterface CallableFunction extends Function {\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n */\n apply(this: (this: T) => R, thisArg: T): R;\n\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args An array of argument values to be passed to the function.\n */\n apply(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\n\n /**\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args Argument values to be passed to the function.\n */\n call(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n */\n bind(this: T, thisArg: ThisParameterType): OmitThisParameter;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n * @param args Arguments to bind to the parameters of the function.\n */\n bind(this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R;\n}\n\ninterface NewableFunction extends Function {\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n */\n apply(this: new () => T, thisArg: T): void;\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args An array of argument values to be passed to the function.\n */\n apply(this: new (...args: A) => T, thisArg: T, args: A): void;\n\n /**\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args Argument values to be passed to the function.\n */\n call(this: new (...args: A) => T, thisArg: T, ...args: A): void;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n */\n bind(this: T, thisArg: any): T;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n * @param args Arguments to bind to the parameters of the function.\n */\n bind(this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R;\n}\n\ninterface IArguments {\n [index: number]: any;\n length: number;\n callee: Function;\n}\n\ninterface String {\n /** Returns a string representation of a string. */\n toString(): string;\n\n /**\n * Returns the character at the specified index.\n * @param pos The zero-based index of the desired character.\n */\n charAt(pos: number): string;\n\n /**\n * Returns the Unicode value of the character at the specified location.\n * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\n */\n charCodeAt(index: number): number;\n\n /**\n * Returns a string that contains the concatenation of two or more strings.\n * @param strings The strings to append to the end of the string.\n */\n concat(...strings: string[]): string;\n\n /**\n * Returns the position of the first occurrence of a substring.\n * @param searchString The substring to search for in the string\n * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\n */\n indexOf(searchString: string, position?: number): number;\n\n /**\n * Returns the last occurrence of a substring in the string.\n * @param searchString The substring to search for.\n * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\n */\n lastIndexOf(searchString: string, position?: number): number;\n\n /**\n * Determines whether two strings are equivalent in the current locale.\n * @param that String to compare to target string\n */\n localeCompare(that: string): number;\n\n /**\n * Matches a string with a regular expression, and returns an array containing the results of that search.\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\n */\n match(regexp: string | RegExp): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string or regular expression to search for.\n * @param replaceValue A string containing the text to replace. When the {@linkcode searchValue} is a `RegExp`, all matches are replaced if the `g` flag is set (or only those matches at the beginning, if the `y` flag is also present). Otherwise, only the first match of {@linkcode searchValue} is replaced.\n */\n replace(searchValue: string | RegExp, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param regexp The regular expression pattern and applicable flags.\n */\n search(regexp: string | RegExp): number;\n\n /**\n * Returns a section of a string.\n * @param start The index to the beginning of the specified portion of stringObj.\n * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\n * If this value is not specified, the substring continues to the end of stringObj.\n */\n slice(start?: number, end?: number): string;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(separator: string | RegExp, limit?: number): string[];\n\n /**\n * Returns the substring at the specified location within a String object.\n * @param start The zero-based index number indicating the beginning of the substring.\n * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\n * If end is omitted, the characters from start through the end of the original string are returned.\n */\n substring(start: number, end?: number): string;\n\n /** Converts all the alphabetic characters in a string to lowercase. */\n toLowerCase(): string;\n\n /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\n toLocaleLowerCase(locales?: string | string[]): string;\n\n /** Converts all the alphabetic characters in a string to uppercase. */\n toUpperCase(): string;\n\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\n toLocaleUpperCase(locales?: string | string[]): string;\n\n /** Removes the leading and trailing white space and line terminator characters from a string. */\n trim(): string;\n\n /** Returns the length of a String object. */\n readonly length: number;\n\n // IE extensions\n /**\n * Gets a substring beginning at the specified location and having the specified length.\n * @deprecated A legacy feature for browser compatibility\n * @param from The starting position of the desired substring. The index of the first character in the string is zero.\n * @param length The number of characters to include in the returned substring.\n */\n substr(from: number, length?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): string;\n\n readonly [index: number]: string;\n}\n\ninterface StringConstructor {\n new (value?: any): String;\n (value?: any): string;\n readonly prototype: String;\n fromCharCode(...codes: number[]): string;\n}\n\n/**\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\n */\ndeclare var String: StringConstructor;\n\ninterface Boolean {\n /** Returns the primitive value of the specified object. */\n valueOf(): boolean;\n}\n\ninterface BooleanConstructor {\n new (value?: any): Boolean;\n (value?: T): boolean;\n readonly prototype: Boolean;\n}\n\ndeclare var Boolean: BooleanConstructor;\n\ninterface Number {\n /**\n * Returns a string representation of an object.\n * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\n */\n toString(radix?: number): string;\n\n /**\n * Returns a string representing a number in fixed-point notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toFixed(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented in exponential notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toExponential(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\n * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\n */\n toPrecision(precision?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): number;\n}\n\ninterface NumberConstructor {\n new (value?: any): Number;\n (value?: any): number;\n readonly prototype: Number;\n\n /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\n readonly MAX_VALUE: number;\n\n /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\n readonly MIN_VALUE: number;\n\n /**\n * A value that is not a number.\n * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\n */\n readonly NaN: number;\n\n /**\n * A value that is less than the largest negative number that can be represented in JavaScript.\n * JavaScript displays NEGATIVE_INFINITY values as -infinity.\n */\n readonly NEGATIVE_INFINITY: number;\n\n /**\n * A value greater than the largest number that can be represented in JavaScript.\n * JavaScript displays POSITIVE_INFINITY values as infinity.\n */\n readonly POSITIVE_INFINITY: number;\n}\n\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\ndeclare var Number: NumberConstructor;\n\ninterface TemplateStringsArray extends ReadonlyArray {\n readonly raw: readonly string[];\n}\n\n/**\n * The type of `import.meta`.\n *\n * If you need to declare that a given property exists on `import.meta`,\n * this type may be augmented via interface merging.\n */\ninterface ImportMeta {\n}\n\n/**\n * The type for the optional second argument to `import()`.\n *\n * If your host environment supports additional options, this type may be\n * augmented via interface merging.\n */\ninterface ImportCallOptions {\n /** @deprecated*/ assert?: ImportAssertions;\n with?: ImportAttributes;\n}\n\n/**\n * The type for the `assert` property of the optional second argument to `import()`.\n * @deprecated\n */\ninterface ImportAssertions {\n [key: string]: string;\n}\n\n/**\n * The type for the `with` property of the optional second argument to `import()`.\n */\ninterface ImportAttributes {\n [key: string]: string;\n}\n\ninterface Math {\n /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\n readonly E: number;\n /** The natural logarithm of 10. */\n readonly LN10: number;\n /** The natural logarithm of 2. */\n readonly LN2: number;\n /** The base-2 logarithm of e. */\n readonly LOG2E: number;\n /** The base-10 logarithm of e. */\n readonly LOG10E: number;\n /** Pi. This is the ratio of the circumference of a circle to its diameter. */\n readonly PI: number;\n /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\n readonly SQRT1_2: number;\n /** The square root of 2. */\n readonly SQRT2: number;\n /**\n * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\n * For example, the absolute value of -5 is the same as the absolute value of 5.\n * @param x A numeric expression for which the absolute value is needed.\n */\n abs(x: number): number;\n /**\n * Returns the arc cosine (or inverse cosine) of a number.\n * @param x A numeric expression.\n */\n acos(x: number): number;\n /**\n * Returns the arcsine of a number.\n * @param x A numeric expression.\n */\n asin(x: number): number;\n /**\n * Returns the arctangent of a number.\n * @param x A numeric expression for which the arctangent is needed.\n */\n atan(x: number): number;\n /**\n * Returns the angle (in radians) between the X axis and the line going through both the origin and the given point.\n * @param y A numeric expression representing the cartesian y-coordinate.\n * @param x A numeric expression representing the cartesian x-coordinate.\n */\n atan2(y: number, x: number): number;\n /**\n * Returns the smallest integer greater than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n ceil(x: number): number;\n /**\n * Returns the cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n cos(x: number): number;\n /**\n * Returns e (the base of natural logarithms) raised to a power.\n * @param x A numeric expression representing the power of e.\n */\n exp(x: number): number;\n /**\n * Returns the greatest integer less than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n floor(x: number): number;\n /**\n * Returns the natural logarithm (base e) of a number.\n * @param x A numeric expression.\n */\n log(x: number): number;\n /**\n * Returns the larger of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n max(...values: number[]): number;\n /**\n * Returns the smaller of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n min(...values: number[]): number;\n /**\n * Returns the value of a base expression taken to a specified power.\n * @param x The base value of the expression.\n * @param y The exponent value of the expression.\n */\n pow(x: number, y: number): number;\n /** Returns a pseudorandom number between 0 and 1. */\n random(): number;\n /**\n * Returns a supplied numeric expression rounded to the nearest integer.\n * @param x The value to be rounded to the nearest integer.\n */\n round(x: number): number;\n /**\n * Returns the sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n sin(x: number): number;\n /**\n * Returns the square root of a number.\n * @param x A numeric expression.\n */\n sqrt(x: number): number;\n /**\n * Returns the tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n tan(x: number): number;\n}\n/** An intrinsic object that provides basic mathematics functionality and constants. */\ndeclare var Math: Math;\n\n/** Enables basic storage and retrieval of dates and times. */\ninterface Date {\n /** Returns a string representation of a date. The format of the string depends on the locale. */\n toString(): string;\n /** Returns a date as a string value. */\n toDateString(): string;\n /** Returns a time as a string value. */\n toTimeString(): string;\n /** Returns a value as a string value appropriate to the host environment's current locale. */\n toLocaleString(): string;\n /** Returns a date as a string value appropriate to the host environment's current locale. */\n toLocaleDateString(): string;\n /** Returns a time as a string value appropriate to the host environment's current locale. */\n toLocaleTimeString(): string;\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\n valueOf(): number;\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\n getTime(): number;\n /** Gets the year, using local time. */\n getFullYear(): number;\n /** Gets the year using Universal Coordinated Time (UTC). */\n getUTCFullYear(): number;\n /** Gets the month, using local time. */\n getMonth(): number;\n /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\n getUTCMonth(): number;\n /** Gets the day-of-the-month, using local time. */\n getDate(): number;\n /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\n getUTCDate(): number;\n /** Gets the day of the week, using local time. */\n getDay(): number;\n /** Gets the day of the week using Universal Coordinated Time (UTC). */\n getUTCDay(): number;\n /** Gets the hours in a date, using local time. */\n getHours(): number;\n /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\n getUTCHours(): number;\n /** Gets the minutes of a Date object, using local time. */\n getMinutes(): number;\n /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\n getUTCMinutes(): number;\n /** Gets the seconds of a Date object, using local time. */\n getSeconds(): number;\n /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCSeconds(): number;\n /** Gets the milliseconds of a Date, using local time. */\n getMilliseconds(): number;\n /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCMilliseconds(): number;\n /** Gets the difference in minutes between Universal Coordinated Time (UTC) and the time on the local computer. */\n getTimezoneOffset(): number;\n /**\n * Sets the date and time value in the Date object.\n * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\n */\n setTime(time: number): number;\n /**\n * Sets the milliseconds value in the Date object using local time.\n * @param ms A numeric value equal to the millisecond value.\n */\n setMilliseconds(ms: number): number;\n /**\n * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\n * @param ms A numeric value equal to the millisecond value.\n */\n setUTCMilliseconds(ms: number): number;\n\n /**\n * Sets the seconds value in the Date object using local time.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setSeconds(sec: number, ms?: number): number;\n /**\n * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCSeconds(sec: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using local time.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the hour value in the Date object using local time.\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the numeric day-of-the-month value of the Date object using local time.\n * @param date A numeric value equal to the day of the month.\n */\n setDate(date: number): number;\n /**\n * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\n * @param date A numeric value equal to the day of the month.\n */\n setUTCDate(date: number): number;\n /**\n * Sets the month value in the Date object using local time.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\n */\n setMonth(month: number, date?: number): number;\n /**\n * Sets the month value in the Date object using Universal Coordinated Time (UTC).\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\n */\n setUTCMonth(month: number, date?: number): number;\n /**\n * Sets the year of the Date object using local time.\n * @param year A numeric value for the year.\n * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\n * @param date A numeric value equal for the day of the month.\n */\n setFullYear(year: number, month?: number, date?: number): number;\n /**\n * Sets the year value in the Date object using Universal Coordinated Time (UTC).\n * @param year A numeric value equal to the year.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\n * @param date A numeric value equal to the day of the month.\n */\n setUTCFullYear(year: number, month?: number, date?: number): number;\n /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\n toUTCString(): string;\n /** Returns a date as a string value in ISO format. */\n toISOString(): string;\n /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\n toJSON(key?: any): string;\n}\n\ninterface DateConstructor {\n new (): Date;\n new (value: number | string): Date;\n /**\n * Creates a new Date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n new (year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\n (): string;\n readonly prototype: Date;\n /**\n * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\n * @param s A date string\n */\n parse(s: string): number;\n /**\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n UTC(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\n /** Returns the number of milliseconds elapsed since midnight, January 1, 1970 Universal Coordinated Time (UTC). */\n now(): number;\n}\n\ndeclare var Date: DateConstructor;\n\ninterface RegExpMatchArray extends Array {\n /**\n * The index of the search at which the result was found.\n */\n index?: number;\n /**\n * A copy of the search string.\n */\n input?: string;\n /**\n * The first match. This will always be present because `null` will be returned if there are no matches.\n */\n 0: string;\n}\n\ninterface RegExpExecArray extends Array {\n /**\n * The index of the search at which the result was found.\n */\n index: number;\n /**\n * A copy of the search string.\n */\n input: string;\n /**\n * The first match. This will always be present because `null` will be returned if there are no matches.\n */\n 0: string;\n}\n\ninterface RegExp {\n /**\n * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\n * @param string The String object or string literal on which to perform the search.\n */\n exec(string: string): RegExpExecArray | null;\n\n /**\n * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\n * @param string String on which to perform the search.\n */\n test(string: string): boolean;\n\n /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\n readonly source: string;\n\n /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\n readonly global: boolean;\n\n /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\n readonly ignoreCase: boolean;\n\n /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\n readonly multiline: boolean;\n\n lastIndex: number;\n\n // Non-standard extensions\n /** @deprecated A legacy feature for browser compatibility */\n compile(pattern: string, flags?: string): this;\n}\n\ninterface RegExpConstructor {\n new (pattern: RegExp | string): RegExp;\n new (pattern: string, flags?: string): RegExp;\n (pattern: RegExp | string): RegExp;\n (pattern: string, flags?: string): RegExp;\n readonly \"prototype\": RegExp;\n\n // Non-standard extensions\n /** @deprecated A legacy feature for browser compatibility */\n \"$1\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$2\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$3\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$4\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$5\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$6\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$7\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$8\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$9\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"input\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$_\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"lastMatch\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$&\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"lastParen\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$+\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"leftContext\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$`\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"rightContext\": string;\n /** @deprecated A legacy feature for browser compatibility */\n \"$'\": string;\n}\n\ndeclare var RegExp: RegExpConstructor;\n\ninterface Error {\n name: string;\n message: string;\n stack?: string;\n}\n\ninterface ErrorConstructor {\n new (message?: string): Error;\n (message?: string): Error;\n readonly prototype: Error;\n}\n\ndeclare var Error: ErrorConstructor;\n\ninterface EvalError extends Error {\n}\n\ninterface EvalErrorConstructor extends ErrorConstructor {\n new (message?: string): EvalError;\n (message?: string): EvalError;\n readonly prototype: EvalError;\n}\n\ndeclare var EvalError: EvalErrorConstructor;\n\ninterface RangeError extends Error {\n}\n\ninterface RangeErrorConstructor extends ErrorConstructor {\n new (message?: string): RangeError;\n (message?: string): RangeError;\n readonly prototype: RangeError;\n}\n\ndeclare var RangeError: RangeErrorConstructor;\n\ninterface ReferenceError extends Error {\n}\n\ninterface ReferenceErrorConstructor extends ErrorConstructor {\n new (message?: string): ReferenceError;\n (message?: string): ReferenceError;\n readonly prototype: ReferenceError;\n}\n\ndeclare var ReferenceError: ReferenceErrorConstructor;\n\ninterface SyntaxError extends Error {\n}\n\ninterface SyntaxErrorConstructor extends ErrorConstructor {\n new (message?: string): SyntaxError;\n (message?: string): SyntaxError;\n readonly prototype: SyntaxError;\n}\n\ndeclare var SyntaxError: SyntaxErrorConstructor;\n\ninterface TypeError extends Error {\n}\n\ninterface TypeErrorConstructor extends ErrorConstructor {\n new (message?: string): TypeError;\n (message?: string): TypeError;\n readonly prototype: TypeError;\n}\n\ndeclare var TypeError: TypeErrorConstructor;\n\ninterface URIError extends Error {\n}\n\ninterface URIErrorConstructor extends ErrorConstructor {\n new (message?: string): URIError;\n (message?: string): URIError;\n readonly prototype: URIError;\n}\n\ndeclare var URIError: URIErrorConstructor;\n\ninterface JSON {\n /**\n * Converts a JavaScript Object Notation (JSON) string into an object.\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object.\n * If a member contains nested objects, the nested objects are transformed before the parent object is.\n * @throws {SyntaxError} If `text` is not valid JSON.\n */\n parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @throws {TypeError} If a circular reference or a BigInt value is found.\n */\n stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @throws {TypeError} If a circular reference or a BigInt value is found.\n */\n stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\n}\n\n/**\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\n */\ndeclare var JSON: JSON;\n\n/////////////////////////////\n/// ECMAScript Array API (specially handled by compiler)\n/////////////////////////////\n\ninterface ReadonlyArray {\n /**\n * Gets the length of the array. This is a number one higher than the highest element defined in an array.\n */\n readonly length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\n */\n toLocaleString(): string;\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: ConcatArray[]): T[];\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: (T | ConcatArray)[]): T[];\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\n readonly [n: number]: T;\n}\n\ninterface ConcatArray {\n readonly length: number;\n readonly [n: number]: T;\n join(separator?: string): string;\n slice(start?: number, end?: number): T[];\n}\n\ninterface Array {\n /**\n * Gets or sets the length of the array. This is a number one higher than the highest index in the array.\n */\n length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\n */\n toLocaleString(): string;\n /**\n * Removes the last element from an array and returns it.\n * If the array is empty, undefined is returned and the array is not modified.\n */\n pop(): T | undefined;\n /**\n * Appends new elements to the end of an array, and returns the new length of the array.\n * @param items New elements to add to the array.\n */\n push(...items: T[]): number;\n /**\n * Combines two or more arrays.\n * This method returns a new array without modifying any existing arrays.\n * @param items Additional arrays and/or items to add to the end of the array.\n */\n concat(...items: ConcatArray[]): T[];\n /**\n * Combines two or more arrays.\n * This method returns a new array without modifying any existing arrays.\n * @param items Additional arrays and/or items to add to the end of the array.\n */\n concat(...items: (T | ConcatArray)[]): T[];\n /**\n * Adds all the elements of an array into a string, separated by the specified separator string.\n * @param separator A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Reverses the elements in an array in place.\n * This method mutates the array and returns a reference to the same array.\n */\n reverse(): T[];\n /**\n * Removes the first element from an array and returns it.\n * If the array is empty, undefined is returned and the array is not modified.\n */\n shift(): T | undefined;\n /**\n * Returns a copy of a section of an array.\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\n * For example, -2 refers to the second to last element of the array.\n * @param start The beginning index of the specified portion of the array.\n * If start is undefined, then the slice begins at index 0.\n * @param end The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\n * If end is undefined, then the slice extends to the end of the array.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Sorts an array in place.\n * This method mutates the array and returns a reference to the same array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, UTF-16 code unit order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: T, b: T) => number): this;\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove. Omitting this argument will remove all elements from the start\n * paramater location to end of the array. If value of this argument is either a negative number, zero, undefined, or a type\n * that cannot be converted to an integer, the function will evaluate the argument as zero and not remove any elements.\n * @returns An array containing the elements that were deleted.\n */\n splice(start: number, deleteCount?: number): T[];\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove. If value of this argument is either a negative number, zero,\n * undefined, or a type that cannot be converted to an integer, the function will evaluate the argument as zero and\n * not remove any elements.\n * @param items Elements to insert into the array in place of the deleted elements.\n * @returns An array containing the elements that were deleted.\n */\n splice(start: number, deleteCount: number, ...items: T[]): T[];\n /**\n * Inserts new elements at the start of an array, and returns the new length of the array.\n * @param items Elements to insert at the start of the array.\n */\n unshift(...items: T[]): number;\n /**\n * Returns the index of the first occurrence of a value in an array, or -1 if it is not present.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n\n [n: number]: T;\n}\n\ninterface ArrayConstructor {\n new (arrayLength?: number): any[];\n new (arrayLength: number): T[];\n new (...items: T[]): T[];\n (arrayLength?: number): any[];\n (arrayLength: number): T[];\n (...items: T[]): T[];\n isArray(arg: any): arg is any[];\n readonly prototype: any[];\n}\n\ndeclare var Array: ArrayConstructor;\n\ninterface TypedPropertyDescriptor {\n enumerable?: boolean;\n configurable?: boolean;\n writable?: boolean;\n value?: T;\n get?: () => T;\n set?: (value: T) => void;\n}\n\ndeclare type PromiseConstructorLike = new (executor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void) => PromiseLike;\n\ninterface PromiseLike {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): PromiseLike;\n}\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise;\n\n /**\n * Attaches a callback for only the rejection of the Promise.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of the callback.\n */\n catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise;\n}\n\n/**\n * Recursively unwraps the \"awaited type\" of a type. Non-promise \"thenables\" should resolve to `never`. This emulates the behavior of `await`.\n */\ntype Awaited = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\n T extends object & { then(onfulfilled: infer F, ...args: infer _): any; } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\n F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\n Awaited : // recursively unwrap the value\n never : // the argument to `then` was not callable\n T; // non-object or non-thenable\n\ninterface ArrayLike {\n readonly length: number;\n readonly [n: number]: T;\n}\n\n/**\n * Make all properties in T optional\n */\ntype Partial = {\n [P in keyof T]?: T[P];\n};\n\n/**\n * Make all properties in T required\n */\ntype Required = {\n [P in keyof T]-?: T[P];\n};\n\n/**\n * Make all properties in T readonly\n */\ntype Readonly = {\n readonly [P in keyof T]: T[P];\n};\n\n/**\n * From T, pick a set of properties whose keys are in the union K\n */\ntype Pick = {\n [P in K]: T[P];\n};\n\n/**\n * Construct a type with a set of properties K of type T\n */\ntype Record = {\n [P in K]: T;\n};\n\n/**\n * Exclude from T those types that are assignable to U\n */\ntype Exclude = T extends U ? never : T;\n\n/**\n * Extract from T those types that are assignable to U\n */\ntype Extract = T extends U ? T : never;\n\n/**\n * Construct a type with the properties of T except for those in type K.\n */\ntype Omit = Pick>;\n\n/**\n * Exclude null and undefined from T\n */\ntype NonNullable = T & {};\n\n/**\n * Obtain the parameters of a function type in a tuple\n */\ntype Parameters any> = T extends (...args: infer P) => any ? P : never;\n\n/**\n * Obtain the parameters of a constructor function type in a tuple\n */\ntype ConstructorParameters any> = T extends abstract new (...args: infer P) => any ? P : never;\n\n/**\n * Obtain the return type of a function type\n */\ntype ReturnType any> = T extends (...args: any) => infer R ? R : any;\n\n/**\n * Obtain the return type of a constructor function type\n */\ntype InstanceType any> = T extends abstract new (...args: any) => infer R ? R : any;\n\n/**\n * Convert string literal type to uppercase\n */\ntype Uppercase = intrinsic;\n\n/**\n * Convert string literal type to lowercase\n */\ntype Lowercase = intrinsic;\n\n/**\n * Convert first character of string literal type to uppercase\n */\ntype Capitalize = intrinsic;\n\n/**\n * Convert first character of string literal type to lowercase\n */\ntype Uncapitalize = intrinsic;\n\n/**\n * Marker for non-inference type position\n */\ntype NoInfer = intrinsic;\n\n/**\n * Marker for contextual 'this' type\n */\ninterface ThisType {}\n\n/**\n * Stores types to be used with WeakSet, WeakMap, WeakRef, and FinalizationRegistry\n */\ninterface WeakKeyTypes {\n object: object;\n}\n\ntype WeakKey = WeakKeyTypes[keyof WeakKeyTypes];\n\n/**\n * Represents a raw buffer of binary data, which is used to store data for the\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\n * but can be passed to a typed array or DataView Object to interpret the raw\n * buffer as needed.\n */\ninterface ArrayBuffer {\n /**\n * Read-only. The length of the ArrayBuffer (in bytes).\n */\n readonly byteLength: number;\n\n /**\n * Returns a section of an ArrayBuffer.\n */\n slice(begin?: number, end?: number): ArrayBuffer;\n}\n\n/**\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\n */\ninterface ArrayBufferTypes {\n ArrayBuffer: ArrayBuffer;\n}\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\n\ninterface ArrayBufferConstructor {\n readonly prototype: ArrayBuffer;\n new (byteLength: number): ArrayBuffer;\n isView(arg: any): arg is ArrayBufferView;\n}\ndeclare var ArrayBuffer: ArrayBufferConstructor;\n\ninterface ArrayBufferView {\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n}\n\ninterface DataView {\n readonly buffer: TArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n /**\n * Gets the Float32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getFloat32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Float64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getFloat64(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Int8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getInt8(byteOffset: number): number;\n\n /**\n * Gets the Int16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getInt16(byteOffset: number, littleEndian?: boolean): number;\n /**\n * Gets the Int32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getInt32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getUint8(byteOffset: number): number;\n\n /**\n * Gets the Uint16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getUint16(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getUint32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Stores an Float32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Float64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setInt8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Int16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setUint8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Uint16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\n}\ninterface DataViewConstructor {\n readonly prototype: DataView;\n new (buffer: TArrayBuffer, byteOffset?: number, byteLength?: number): DataView;\n}\ndeclare var DataView: DataViewConstructor;\n\n/**\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Int8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Int8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Int8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Int8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Int8ArrayConstructor {\n readonly prototype: Int8Array;\n new (length: number): Int8Array;\n new (array: ArrayLike): Int8Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Int8Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int8Array;\n new (array: ArrayLike | ArrayBuffer): Int8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\n}\ndeclare var Int8Array: Int8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Uint8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Uint8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Uint8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Uint8ArrayConstructor {\n readonly prototype: Uint8Array;\n new (length: number): Uint8Array;\n new (array: ArrayLike): Uint8Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint8Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8Array;\n new (array: ArrayLike | ArrayBuffer): Uint8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\n}\ndeclare var Uint8Array: Uint8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\n * If the requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8ClampedArray {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Uint8ClampedArray;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint8ClampedArray;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Uint8ClampedArrayConstructor {\n readonly prototype: Uint8ClampedArray;\n new (length: number): Uint8ClampedArray;\n new (array: ArrayLike): Uint8ClampedArray;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint8ClampedArray;\n new (array: ArrayLike | ArrayBuffer): Uint8ClampedArray;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\n}\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\n\n/**\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Int16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Int16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Int16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Int16ArrayConstructor {\n readonly prototype: Int16Array;\n new (length: number): Int16Array;\n new (array: ArrayLike): Int16Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Int16Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int16Array;\n new (array: ArrayLike | ArrayBuffer): Int16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\n}\ndeclare var Int16Array: Int16ArrayConstructor;\n\n/**\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Uint16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Uint16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Uint16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Uint16ArrayConstructor {\n readonly prototype: Uint16Array;\n new (length: number): Uint16Array;\n new (array: ArrayLike): Uint16Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint16Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint16Array;\n new (array: ArrayLike | ArrayBuffer): Uint16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\n}\ndeclare var Uint16Array: Uint16ArrayConstructor;\n/**\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Int32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Int32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Int32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Int32ArrayConstructor {\n readonly prototype: Int32Array;\n new (length: number): Int32Array;\n new (array: ArrayLike): Int32Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Int32Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Int32Array;\n new (array: ArrayLike | ArrayBuffer): Int32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\n}\ndeclare var Int32Array: Int32ArrayConstructor;\n\n/**\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Uint32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Uint32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Uint32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Uint32ArrayConstructor {\n readonly prototype: Uint32Array;\n new (length: number): Uint32Array;\n new (array: ArrayLike): Uint32Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Uint32Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Uint32Array;\n new (array: ArrayLike | ArrayBuffer): Uint32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\n}\ndeclare var Uint32Array: Uint32ArrayConstructor;\n\n/**\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Float32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Float32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Float32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Float32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Float32ArrayConstructor {\n readonly prototype: Float32Array;\n new (length: number): Float32Array;\n new (array: ArrayLike): Float32Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Float32Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float32Array;\n new (array: ArrayLike | ArrayBuffer): Float32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\n}\ndeclare var Float32Array: Float32ArrayConstructor;\n\n/**\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Float64Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: TArrayBuffer;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: this) => any, thisArg?: any): Float64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: this) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: this) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: this) => number, thisArg?: any): Float64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: this) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\n */\n slice(start?: number, end?: number): Float64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Float64Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): this;\n\n [index: number]: number;\n}\ninterface Float64ArrayConstructor {\n readonly prototype: Float64Array;\n new (length: number): Float64Array;\n new (array: ArrayLike): Float64Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): Float64Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): Float64Array;\n new (array: ArrayLike | ArrayBuffer): Float64Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\n}\ndeclare var Float64Array: Float64ArrayConstructor;\n\n/////////////////////////////\n/// ECMAScript Internationalization API\n/////////////////////////////\n\ndeclare namespace Intl {\n interface CollatorOptions {\n usage?: \"sort\" | \"search\" | undefined;\n localeMatcher?: \"lookup\" | \"best fit\" | undefined;\n numeric?: boolean | undefined;\n caseFirst?: \"upper\" | \"lower\" | \"false\" | undefined;\n sensitivity?: \"base\" | \"accent\" | \"case\" | \"variant\" | undefined;\n collation?: \"big5han\" | \"compat\" | \"dict\" | \"direct\" | \"ducet\" | \"emoji\" | \"eor\" | \"gb2312\" | \"phonebk\" | \"phonetic\" | \"pinyin\" | \"reformed\" | \"searchjl\" | \"stroke\" | \"trad\" | \"unihan\" | \"zhuyin\" | undefined;\n ignorePunctuation?: boolean | undefined;\n }\n\n interface ResolvedCollatorOptions {\n locale: string;\n usage: string;\n sensitivity: string;\n ignorePunctuation: boolean;\n collation: string;\n caseFirst: string;\n numeric: boolean;\n }\n\n interface Collator {\n compare(x: string, y: string): number;\n resolvedOptions(): ResolvedCollatorOptions;\n }\n\n interface CollatorConstructor {\n new (locales?: string | string[], options?: CollatorOptions): Collator;\n (locales?: string | string[], options?: CollatorOptions): Collator;\n supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\n }\n\n var Collator: CollatorConstructor;\n\n interface NumberFormatOptionsStyleRegistry {\n decimal: never;\n percent: never;\n currency: never;\n }\n\n type NumberFormatOptionsStyle = keyof NumberFormatOptionsStyleRegistry;\n\n interface NumberFormatOptionsCurrencyDisplayRegistry {\n code: never;\n symbol: never;\n name: never;\n }\n\n type NumberFormatOptionsCurrencyDisplay = keyof NumberFormatOptionsCurrencyDisplayRegistry;\n\n interface NumberFormatOptionsUseGroupingRegistry {}\n\n type NumberFormatOptionsUseGrouping = {} extends NumberFormatOptionsUseGroupingRegistry ? boolean : keyof NumberFormatOptionsUseGroupingRegistry | \"true\" | \"false\" | boolean;\n type ResolvedNumberFormatOptionsUseGrouping = {} extends NumberFormatOptionsUseGroupingRegistry ? boolean : keyof NumberFormatOptionsUseGroupingRegistry | false;\n\n interface NumberFormatOptions {\n localeMatcher?: \"lookup\" | \"best fit\" | undefined;\n style?: NumberFormatOptionsStyle | undefined;\n currency?: string | undefined;\n currencyDisplay?: NumberFormatOptionsCurrencyDisplay | undefined;\n useGrouping?: NumberFormatOptionsUseGrouping | undefined;\n minimumIntegerDigits?: number | undefined;\n minimumFractionDigits?: number | undefined;\n maximumFractionDigits?: number | undefined;\n minimumSignificantDigits?: number | undefined;\n maximumSignificantDigits?: number | undefined;\n }\n\n interface ResolvedNumberFormatOptions {\n locale: string;\n numberingSystem: string;\n style: NumberFormatOptionsStyle;\n currency?: string;\n currencyDisplay?: NumberFormatOptionsCurrencyDisplay;\n minimumIntegerDigits: number;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n useGrouping: ResolvedNumberFormatOptionsUseGrouping;\n }\n\n interface NumberFormat {\n format(value: number): string;\n resolvedOptions(): ResolvedNumberFormatOptions;\n }\n\n interface NumberFormatConstructor {\n new (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\n readonly prototype: NumberFormat;\n }\n\n var NumberFormat: NumberFormatConstructor;\n\n interface DateTimeFormatOptions {\n localeMatcher?: \"best fit\" | \"lookup\" | undefined;\n weekday?: \"long\" | \"short\" | \"narrow\" | undefined;\n era?: \"long\" | \"short\" | \"narrow\" | undefined;\n year?: \"numeric\" | \"2-digit\" | undefined;\n month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\" | undefined;\n day?: \"numeric\" | \"2-digit\" | undefined;\n hour?: \"numeric\" | \"2-digit\" | undefined;\n minute?: \"numeric\" | \"2-digit\" | undefined;\n second?: \"numeric\" | \"2-digit\" | undefined;\n timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\" | undefined;\n formatMatcher?: \"best fit\" | \"basic\" | undefined;\n hour12?: boolean | undefined;\n timeZone?: string | undefined;\n }\n\n interface ResolvedDateTimeFormatOptions {\n locale: string;\n calendar: string;\n numberingSystem: string;\n timeZone: string;\n hour12?: boolean;\n weekday?: string;\n era?: string;\n year?: string;\n month?: string;\n day?: string;\n hour?: string;\n minute?: string;\n second?: string;\n timeZoneName?: string;\n }\n\n interface DateTimeFormat {\n format(date?: Date | number): string;\n resolvedOptions(): ResolvedDateTimeFormatOptions;\n }\n\n interface DateTimeFormatConstructor {\n new (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\n readonly prototype: DateTimeFormat;\n }\n\n var DateTimeFormat: DateTimeFormatConstructor;\n}\n\ninterface String {\n /**\n * Determines whether two strings are equivalent in the current or specified locale.\n * @param that String to compare to target string\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\n */\n localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\n}\n\ninterface Number {\n /**\n * Converts a number to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Date {\n /**\n * Converts a date and time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n /**\n * Converts a date to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n}\n", + "lib.es2024.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface String {\n /**\n * Returns true if all leading surrogates and trailing surrogates appear paired and in order.\n */\n isWellFormed(): boolean;\n\n /**\n * Returns a string where all lone or out-of-order surrogates have been replaced by the Unicode replacement character (U+FFFD).\n */\n toWellFormed(): string;\n}\n", + "lib.es2024.sharedmemory.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface Atomics {\n /**\n * A non-blocking, asynchronous version of wait which is usable on the main thread.\n * Waits asynchronously on a shared memory location and returns a Promise\n * @param typedArray A shared Int32Array or BigInt64Array.\n * @param index The position in the typedArray to wait on.\n * @param value The expected value to test.\n * @param [timeout] The expected value to test.\n */\n waitAsync(typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: \"not-equal\" | \"timed-out\"; } | { async: true; value: Promise<\"ok\" | \"timed-out\">; };\n\n /**\n * A non-blocking, asynchronous version of wait which is usable on the main thread.\n * Waits asynchronously on a shared memory location and returns a Promise\n * @param typedArray A shared Int32Array or BigInt64Array.\n * @param index The position in the typedArray to wait on.\n * @param value The expected value to test.\n * @param [timeout] The expected value to test.\n */\n waitAsync(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: \"not-equal\" | \"timed-out\"; } | { async: true; value: Promise<\"ok\" | \"timed-out\">; };\n}\n\ninterface SharedArrayBuffer {\n /**\n * Returns true if this SharedArrayBuffer can be grown.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/growable)\n */\n get growable(): boolean;\n\n /**\n * If this SharedArrayBuffer is growable, returns the maximum byte length given during construction; returns the byte length if not.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/maxByteLength)\n */\n get maxByteLength(): number;\n\n /**\n * Grows the SharedArrayBuffer to the specified size (in bytes).\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/grow)\n */\n grow(newByteLength?: number): void;\n}\n\ninterface SharedArrayBufferConstructor {\n new (byteLength: number, options?: { maxByteLength?: number; }): SharedArrayBuffer;\n}\n", + "lib.es2024.regexp.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface RegExp {\n /**\n * Returns a Boolean value indicating the state of the unicodeSets flag (v) used with a regular expression.\n * Default is false. Read-only.\n */\n readonly unicodeSets: boolean;\n}\n", + "lib.es2024.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface PromiseWithResolvers {\n promise: Promise;\n resolve: (value: T | PromiseLike) => void;\n reject: (reason?: any) => void;\n}\n\ninterface PromiseConstructor {\n /**\n * Creates a new Promise and returns it in an object, along with its resolve and reject functions.\n * @returns An object with the properties `promise`, `resolve`, and `reject`.\n *\n * ```ts\n * const { promise, resolve, reject } = Promise.withResolvers();\n * ```\n */\n withResolvers(): PromiseWithResolvers;\n}\n", + "lib.es2024.object.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ObjectConstructor {\n /**\n * Groups members of an iterable according to the return value of the passed callback.\n * @param items An iterable.\n * @param keySelector A callback which will be invoked for each item in items.\n */\n groupBy(\n items: Iterable,\n keySelector: (item: T, index: number) => K,\n ): Partial>;\n}\n", + "lib.es2024.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2024.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2024.collection.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface MapConstructor {\n /**\n * Groups members of an iterable according to the return value of the passed callback.\n * @param items An iterable.\n * @param keySelector A callback which will be invoked for each item in items.\n */\n groupBy(\n items: Iterable,\n keySelector: (item: T, index: number) => K,\n ): Map;\n}\n", + "lib.es2024.arraybuffer.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ArrayBuffer {\n /**\n * If this ArrayBuffer is resizable, returns the maximum byte length given during construction; returns the byte length if not.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/maxByteLength)\n */\n get maxByteLength(): number;\n\n /**\n * Returns true if this ArrayBuffer can be resized.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/resizable)\n */\n get resizable(): boolean;\n\n /**\n * Resizes the ArrayBuffer to the specified size (in bytes).\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/resize)\n */\n resize(newByteLength?: number): void;\n\n /**\n * Returns a boolean indicating whether or not this buffer has been detached (transferred).\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/detached)\n */\n get detached(): boolean;\n\n /**\n * Creates a new ArrayBuffer with the same byte content as this buffer, then detaches this buffer.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer)\n */\n transfer(newByteLength?: number): ArrayBuffer;\n\n /**\n * Creates a new non-resizable ArrayBuffer with the same byte content as this buffer, then detaches this buffer.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transferToFixedLength)\n */\n transferToFixedLength(newByteLength?: number): ArrayBuffer;\n}\n\ninterface ArrayBufferConstructor {\n new (byteLength: number, options?: { maxByteLength?: number; }): ArrayBuffer;\n}\n", + "lib.es2023.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n interface NumberFormatOptionsUseGroupingRegistry {\n min2: never;\n auto: never;\n always: never;\n }\n\n interface NumberFormatOptionsSignDisplayRegistry {\n negative: never;\n }\n\n interface NumberFormatOptions {\n roundingPriority?: \"auto\" | \"morePrecision\" | \"lessPrecision\" | undefined;\n roundingIncrement?: 1 | 2 | 5 | 10 | 20 | 25 | 50 | 100 | 200 | 250 | 500 | 1000 | 2000 | 2500 | 5000 | undefined;\n roundingMode?: \"ceil\" | \"floor\" | \"expand\" | \"trunc\" | \"halfCeil\" | \"halfFloor\" | \"halfExpand\" | \"halfTrunc\" | \"halfEven\" | undefined;\n trailingZeroDisplay?: \"auto\" | \"stripIfInteger\" | undefined;\n }\n\n interface ResolvedNumberFormatOptions {\n roundingPriority: \"auto\" | \"morePrecision\" | \"lessPrecision\";\n roundingMode: \"ceil\" | \"floor\" | \"expand\" | \"trunc\" | \"halfCeil\" | \"halfFloor\" | \"halfExpand\" | \"halfTrunc\" | \"halfEven\";\n roundingIncrement: 1 | 2 | 5 | 10 | 20 | 25 | 50 | 100 | 200 | 250 | 500 | 1000 | 2000 | 2500 | 5000;\n trailingZeroDisplay: \"auto\" | \"stripIfInteger\";\n }\n\n interface NumberRangeFormatPart extends NumberFormatPart {\n source: \"startRange\" | \"endRange\" | \"shared\";\n }\n\n type StringNumericLiteral = `${number}` | \"Infinity\" | \"-Infinity\" | \"+Infinity\";\n\n interface NumberFormat {\n format(value: number | bigint | StringNumericLiteral): string;\n formatToParts(value: number | bigint | StringNumericLiteral): NumberFormatPart[];\n formatRange(start: number | bigint | StringNumericLiteral, end: number | bigint | StringNumericLiteral): string;\n formatRangeToParts(start: number | bigint | StringNumericLiteral, end: number | bigint | StringNumericLiteral): NumberRangeFormatPart[];\n }\n}\n", + "lib.es2023.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2023.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n", + "lib.es2023.collection.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface WeakKeyTypes {\n symbol: symbol;\n}\n", + "lib.es2023.array.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S | undefined;\n findLast(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): number;\n\n /**\n * Returns a copy of an array with its elements reversed.\n */\n toReversed(): T[];\n\n /**\n * Returns a copy of an array with its elements sorted.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, UTF-16 code unit order.\n * ```ts\n * [11, 2, 22, 1].toSorted((a, b) => a - b) // [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: T, b: T) => number): T[];\n\n /**\n * Copies an array and removes elements and, if necessary, inserts new elements in their place. Returns the copied array.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the copied array in place of the deleted elements.\n * @returns The copied array.\n */\n toSpliced(start: number, deleteCount: number, ...items: T[]): T[];\n\n /**\n * Copies an array and removes elements while returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount?: number): T[];\n\n /**\n * Copies an array, then overwrites the value at the provided index with the\n * given value. If the index is negative, then it replaces from the end\n * of the array.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to write into the copied array.\n * @returns The copied array with the updated value.\n */\n with(index: number, value: T): T[];\n}\n\ninterface ReadonlyArray {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: T, index: number, array: readonly T[]) => unknown,\n thisArg?: any,\n ): T | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: T, index: number, array: readonly T[]) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copied array with all of its elements reversed.\n */\n toReversed(): T[];\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, UTF-16 code unit order.\n * ```ts\n * [11, 2, 22, 1].toSorted((a, b) => a - b) // [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: T, b: T) => number): T[];\n\n /**\n * Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the copied array in place of the deleted elements.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount: number, ...items: T[]): T[];\n\n /**\n * Copies an array and removes elements while returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount?: number): T[];\n\n /**\n * Copies an array, then overwrites the value at the provided index with the\n * given value. If the index is negative, then it replaces from the end\n * of the array\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: T): T[];\n}\n\ninterface Int8Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Int8Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Int8Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Int8Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Int8Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Int8Array;\n}\n\ninterface Uint8Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint8Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint8Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint8Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint8Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint8Array;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint8ClampedArray;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint8ClampedArray.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint8ClampedArray(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint8ClampedArray;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint8ClampedArray;\n}\n\ninterface Int16Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Int16Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Int16Array.from([11, 2, -22, 1]);\n * myNums.toSorted((a, b) => a - b) // Int16Array(4) [-22, 1, 2, 11]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Int16Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Int16Array;\n}\n\ninterface Uint16Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint16Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint16Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint16Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint16Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint16Array;\n}\n\ninterface Int32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: this) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Int32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Int32Array.from([11, 2, -22, 1]);\n * myNums.toSorted((a, b) => a - b) // Int32Array(4) [-22, 1, 2, 11]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Int32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Int32Array;\n}\n\ninterface Uint32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint32Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint32Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint32Array;\n}\n\ninterface Float32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Float32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Float32Array.from([11.25, 2, -22.5, 1]);\n * myNums.toSorted((a, b) => a - b) // Float32Array(4) [-22.5, 1, 2, 11.5]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Float32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Float32Array;\n}\n\ninterface Float64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Float64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Float64Array.from([11.25, 2, -22.5, 1]);\n * myNums.toSorted((a, b) => a - b) // Float64Array(4) [-22.5, 1, 2, 11.5]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Float64Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Float64Array;\n}\n\ninterface BigInt64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): bigint | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): BigInt64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = BigInt64Array.from([11n, 2n, -22n, 1n]);\n * myNums.toSorted((a, b) => Number(a - b)) // BigInt64Array(4) [-22n, 1n, 2n, 11n]\n * ```\n */\n toSorted(compareFn?: (a: bigint, b: bigint) => number): BigInt64Array;\n\n /**\n * Copies the array and inserts the given bigint at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: bigint): BigInt64Array;\n}\n\ninterface BigUint64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): bigint | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: bigint,\n index: number,\n array: this,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): BigUint64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = BigUint64Array.from([11n, 2n, 22n, 1n]);\n * myNums.toSorted((a, b) => Number(a - b)) // BigUint64Array(4) [1n, 2n, 11n, 22n]\n * ```\n */\n toSorted(compareFn?: (a: bigint, b: bigint) => number): BigUint64Array;\n\n /**\n * Copies the array and inserts the given bigint at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: bigint): BigUint64Array;\n}\n", + "lib.es2022.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface String {\n /**\n * Returns a new String consisting of the single UTF-16 code unit located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): string | undefined;\n}\n", + "lib.es2022.regexp.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface RegExpMatchArray {\n indices?: RegExpIndicesArray;\n}\n\ninterface RegExpExecArray {\n indices?: RegExpIndicesArray;\n}\n\ninterface RegExpIndicesArray extends Array<[number, number]> {\n groups?: {\n [key: string]: [number, number];\n };\n}\n\ninterface RegExp {\n /**\n * Returns a Boolean value indicating the state of the hasIndices flag (d) used with a regular expression.\n * Default is false. Read-only.\n */\n readonly hasIndices: boolean;\n}\n", + "lib.es2022.object.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ObjectConstructor {\n /**\n * Determines whether an object has a property with the specified name.\n * @param o An object.\n * @param v A property name.\n */\n hasOwn(o: object, v: PropertyKey): boolean;\n}\n", + "lib.es2022.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n /**\n * An object with some or all properties of the `Intl.Segmenter` constructor `options` parameter.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)\n */\n interface SegmenterOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: \"best fit\" | \"lookup\" | undefined;\n /** The type of input to be split */\n granularity?: \"grapheme\" | \"word\" | \"sentence\" | undefined;\n }\n\n /**\n * The `Intl.Segmenter` object enables locale-sensitive text segmentation, enabling you to get meaningful items (graphemes, words or sentences) from a string.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter)\n */\n interface Segmenter {\n /**\n * Returns `Segments` object containing the segments of the input string, using the segmenter's locale and granularity.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/segment)\n *\n * @param input - The text to be segmented as a `string`.\n *\n * @returns A new iterable Segments object containing the segments of the input string, using the segmenter's locale and granularity.\n */\n segment(input: string): Segments;\n /**\n * The `resolvedOptions()` method of `Intl.Segmenter` instances returns a new object with properties reflecting the options computed during initialization of this `Segmenter` object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/resolvedOptions)\n */\n resolvedOptions(): ResolvedSegmenterOptions;\n }\n\n interface ResolvedSegmenterOptions {\n locale: string;\n granularity: \"grapheme\" | \"word\" | \"sentence\";\n }\n\n interface SegmentIterator extends IteratorObject {\n [Symbol.iterator](): SegmentIterator;\n }\n\n /**\n * A `Segments` object is an iterable collection of the segments of a text string. It is returned by a call to the `segment()` method of an `Intl.Segmenter` object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/segment/Segments)\n */\n interface Segments {\n /**\n * Returns an object describing the segment in the original string that includes the code unit at a specified index.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/segment/Segments/containing)\n *\n * @param codeUnitIndex - A number specifying the index of the code unit in the original input string. If the value is omitted, it defaults to `0`.\n */\n containing(codeUnitIndex?: number): SegmentData | undefined;\n\n /** Returns an iterator to iterate over the segments. */\n [Symbol.iterator](): SegmentIterator;\n }\n\n interface SegmentData {\n /** A string containing the segment extracted from the original input string. */\n segment: string;\n /** The code unit index in the original input string at which the segment begins. */\n index: number;\n /** The complete input string that was segmented. */\n input: string;\n /**\n * A boolean value only if granularity is \"word\"; otherwise, undefined.\n * If granularity is \"word\", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false.\n */\n isWordLike?: boolean;\n }\n\n /**\n * The `Intl.Segmenter` object enables locale-sensitive text segmentation, enabling you to get meaningful items (graphemes, words or sentences) from a string.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter)\n */\n const Segmenter: {\n prototype: Segmenter;\n\n /**\n * Creates a new `Intl.Segmenter` object.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)\n * with some or all options of `SegmenterOptions`.\n *\n * @returns [Intl.Segmenter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).\n */\n new (locales?: LocalesArgument, options?: SegmenterOptions): Segmenter;\n\n /**\n * Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters).\n * with some or all possible options.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)\n */\n supportedLocalesOf(locales: LocalesArgument, options?: Pick): UnicodeBCP47LocaleIdentifier[];\n };\n\n /**\n * Returns a sorted array of the supported collation, calendar, currency, numbering system, timezones, and units by the implementation.\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf)\n *\n * @param key A string indicating the category of values to return.\n * @returns A sorted array of the supported values.\n */\n function supportedValuesOf(key: \"calendar\" | \"collation\" | \"currency\" | \"numberingSystem\" | \"timeZone\" | \"unit\"): string[];\n}\n", + "lib.es2022.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2022.error.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface ErrorOptions {\n cause?: unknown;\n}\n\ninterface Error {\n cause?: unknown;\n}\n\ninterface ErrorConstructor {\n new (message?: string, options?: ErrorOptions): Error;\n (message?: string, options?: ErrorOptions): Error;\n}\n\ninterface EvalErrorConstructor {\n new (message?: string, options?: ErrorOptions): EvalError;\n (message?: string, options?: ErrorOptions): EvalError;\n}\n\ninterface RangeErrorConstructor {\n new (message?: string, options?: ErrorOptions): RangeError;\n (message?: string, options?: ErrorOptions): RangeError;\n}\n\ninterface ReferenceErrorConstructor {\n new (message?: string, options?: ErrorOptions): ReferenceError;\n (message?: string, options?: ErrorOptions): ReferenceError;\n}\n\ninterface SyntaxErrorConstructor {\n new (message?: string, options?: ErrorOptions): SyntaxError;\n (message?: string, options?: ErrorOptions): SyntaxError;\n}\n\ninterface TypeErrorConstructor {\n new (message?: string, options?: ErrorOptions): TypeError;\n (message?: string, options?: ErrorOptions): TypeError;\n}\n\ninterface URIErrorConstructor {\n new (message?: string, options?: ErrorOptions): URIError;\n (message?: string, options?: ErrorOptions): URIError;\n}\n\ninterface AggregateErrorConstructor {\n new (\n errors: Iterable,\n message?: string,\n options?: ErrorOptions,\n ): AggregateError;\n (\n errors: Iterable,\n message?: string,\n options?: ErrorOptions,\n ): AggregateError;\n}\n", + "lib.es2022.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2022.array.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): T | undefined;\n}\n\ninterface ReadonlyArray {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): T | undefined;\n}\n\ninterface Int8Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint8Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Int16Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint16Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Int32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Float32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Float64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface BigInt64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): bigint | undefined;\n}\n\ninterface BigUint64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): bigint | undefined;\n}\n", + "lib.es2021.weakref.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface WeakRef {\n readonly [Symbol.toStringTag]: \"WeakRef\";\n\n /**\n * Returns the WeakRef instance's target value, or undefined if the target value has been\n * reclaimed.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n */\n deref(): T | undefined;\n}\n\ninterface WeakRefConstructor {\n readonly prototype: WeakRef;\n\n /**\n * Creates a WeakRef instance for the given target value.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param target The target value for the WeakRef instance.\n */\n new (target: T): WeakRef;\n}\n\ndeclare var WeakRef: WeakRefConstructor;\n\ninterface FinalizationRegistry {\n readonly [Symbol.toStringTag]: \"FinalizationRegistry\";\n\n /**\n * Registers a value with the registry.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param target The target value to register.\n * @param heldValue The value to pass to the finalizer for this value. This cannot be the\n * target value.\n * @param unregisterToken The token to pass to the unregister method to unregister the target\n * value. If not provided, the target cannot be unregistered.\n */\n register(target: WeakKey, heldValue: T, unregisterToken?: WeakKey): void;\n\n /**\n * Unregisters a value from the registry.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param unregisterToken The token that was used as the unregisterToken argument when calling\n * register to register the target value.\n */\n unregister(unregisterToken: WeakKey): boolean;\n}\n\ninterface FinalizationRegistryConstructor {\n readonly prototype: FinalizationRegistry;\n\n /**\n * Creates a finalization registry with an associated cleanup callback\n * @param cleanupCallback The callback to call after a value in the registry has been reclaimed.\n */\n new (cleanupCallback: (heldValue: T) => void): FinalizationRegistry;\n}\n\ndeclare var FinalizationRegistry: FinalizationRegistryConstructor;\n", + "lib.es2021.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface String {\n /**\n * Replace all instances of a substring in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\n */\n replaceAll(searchValue: string | RegExp, replaceValue: string): string;\n\n /**\n * Replace all instances of a substring in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replacer A function that returns the replacement text.\n */\n replaceAll(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\n}\n", + "lib.es2021.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface AggregateError extends Error {\n errors: any[];\n}\n\ninterface AggregateErrorConstructor {\n new (errors: Iterable, message?: string): AggregateError;\n (errors: Iterable, message?: string): AggregateError;\n readonly prototype: AggregateError;\n}\n\ndeclare var AggregateError: AggregateErrorConstructor;\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface PromiseConstructor {\n /**\n * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.\n * @param values An array or iterable of Promises.\n * @returns A new Promise.\n */\n any(values: T): Promise>;\n\n /**\n * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.\n * @param values An array or iterable of Promises.\n * @returns A new Promise.\n */\n any(values: Iterable>): Promise>;\n}\n", + "lib.es2021.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n fractionalSecond: any;\n }\n\n interface DateTimeFormatOptions {\n formatMatcher?: \"basic\" | \"best fit\" | \"best fit\" | undefined;\n dateStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\n timeStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\n dayPeriod?: \"narrow\" | \"short\" | \"long\" | undefined;\n fractionalSecondDigits?: 1 | 2 | 3 | undefined;\n }\n\n interface DateTimeRangeFormatPart extends DateTimeFormatPart {\n source: \"startRange\" | \"endRange\" | \"shared\";\n }\n\n interface DateTimeFormat {\n formatRange(startDate: Date | number | bigint, endDate: Date | number | bigint): string;\n formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeRangeFormatPart[];\n }\n\n interface ResolvedDateTimeFormatOptions {\n formatMatcher?: \"basic\" | \"best fit\" | \"best fit\";\n dateStyle?: \"full\" | \"long\" | \"medium\" | \"short\";\n timeStyle?: \"full\" | \"long\" | \"medium\" | \"short\";\n hourCycle?: \"h11\" | \"h12\" | \"h23\" | \"h24\";\n dayPeriod?: \"narrow\" | \"short\" | \"long\";\n fractionalSecondDigits?: 1 | 2 | 3;\n }\n\n /**\n * The locale matching algorithm to use.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatLocaleMatcher = \"lookup\" | \"best fit\";\n\n /**\n * The format of output message.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatType = \"conjunction\" | \"disjunction\" | \"unit\";\n\n /**\n * The length of the formatted message.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatStyle = \"long\" | \"short\" | \"narrow\";\n\n /**\n * An object with some or all properties of the `Intl.ListFormat` constructor `options` parameter.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n interface ListFormatOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: ListFormatLocaleMatcher | undefined;\n /** The format of output message. */\n type?: ListFormatType | undefined;\n /** The length of the internationalized message. */\n style?: ListFormatStyle | undefined;\n }\n\n interface ResolvedListFormatOptions {\n locale: string;\n style: ListFormatStyle;\n type: ListFormatType;\n }\n\n interface ListFormat {\n /**\n * Returns a string with a language-specific representation of the list.\n *\n * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array).\n *\n * @throws `TypeError` if `list` includes something other than the possible values.\n *\n * @returns {string} A language-specific formatted string representing the elements of the list.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format).\n */\n format(list: Iterable): string;\n\n /**\n * Returns an Array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.\n *\n * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array), to be formatted according to a locale.\n *\n * @throws `TypeError` if `list` includes something other than the possible values.\n *\n * @returns {{ type: \"element\" | \"literal\", value: string; }[]} An Array of components which contains the formatted parts from the list.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts).\n */\n formatToParts(list: Iterable): { type: \"element\" | \"literal\"; value: string; }[];\n\n /**\n * Returns a new object with properties reflecting the locale and style\n * formatting options computed during the construction of the current\n * `Intl.ListFormat` object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions).\n */\n resolvedOptions(): ResolvedListFormatOptions;\n }\n\n const ListFormat: {\n prototype: ListFormat;\n\n /**\n * Creates [Intl.ListFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) objects that\n * enable language-sensitive list formatting.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters)\n * with some or all options of `ListFormatOptions`.\n *\n * @returns [Intl.ListFormatOptions](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).\n */\n new (locales?: LocalesArgument, options?: ListFormatOptions): ListFormat;\n\n /**\n * Returns an array containing those of the provided locales that are\n * supported in list formatting without having to fall back to the runtime's default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf#parameters).\n * with some or all possible options.\n *\n * @returns An array of strings representing a subset of the given locale tags that are supported in list\n * formatting without having to fall back to the runtime's default locale.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).\n */\n supportedLocalesOf(locales: LocalesArgument, options?: Pick): UnicodeBCP47LocaleIdentifier[];\n };\n}\n", + "lib.es2021.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2021.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n", + "lib.es2020.symbol.wellknown.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\ninterface SymbolConstructor {\n /**\n * A regular expression method that matches the regular expression against a string. Called\n * by the String.prototype.matchAll method.\n */\n readonly matchAll: unique symbol;\n}\n\ninterface RegExpStringIterator extends IteratorObject {\n [Symbol.iterator](): RegExpStringIterator;\n}\n\ninterface RegExp {\n /**\n * Matches a string with this regular expression, and returns an iterable of matches\n * containing the results of that search.\n * @param string A string to search within.\n */\n [Symbol.matchAll](str: string): RegExpStringIterator;\n}\n", + "lib.es2020.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n\ninterface String {\n /**\n * Matches a string with a regular expression, and returns an iterable of matches\n * containing the results of that search.\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\n */\n matchAll(regexp: RegExp): RegExpStringIterator;\n\n /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\n toLocaleLowerCase(locales?: Intl.LocalesArgument): string;\n\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\n toLocaleUpperCase(locales?: Intl.LocalesArgument): string;\n\n /**\n * Determines whether two strings are equivalent in the current or specified locale.\n * @param that String to compare to target string\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\n */\n localeCompare(that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;\n}\n", + "lib.es2020.sharedmemory.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface Atomics {\n /**\n * Adds a value to the value at the given position in the array, returning the original value.\n * Until this atomic operation completes, any other read or write operation against the array\n * will block.\n */\n add(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Stores the bitwise AND of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or\n * write operation against the array will block.\n */\n and(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Replaces the value at the given position in the array if the original value equals the given\n * expected value, returning the original value. Until this atomic operation completes, any\n * other read or write operation against the array will block.\n */\n compareExchange(typedArray: BigInt64Array | BigUint64Array, index: number, expectedValue: bigint, replacementValue: bigint): bigint;\n\n /**\n * Replaces the value at the given position in the array, returning the original value. Until\n * this atomic operation completes, any other read or write operation against the array will\n * block.\n */\n exchange(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Returns the value at the given position in the array. Until this atomic operation completes,\n * any other read or write operation against the array will block.\n */\n load(typedArray: BigInt64Array | BigUint64Array, index: number): bigint;\n\n /**\n * Stores the bitwise OR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n or(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Stores a value at the given position in the array, returning the new value. Until this\n * atomic operation completes, any other read or write operation against the array will block.\n */\n store(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Subtracts a value from the value at the given position in the array, returning the original\n * value. Until this atomic operation completes, any other read or write operation against the\n * array will block.\n */\n sub(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * If the value at the given position in the array is equal to the provided value, the current\n * agent is put to sleep causing execution to suspend until the timeout expires (returning\n * `\"timed-out\"`) or until the agent is awoken (returning `\"ok\"`); otherwise, returns\n * `\"not-equal\"`.\n */\n wait(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): \"ok\" | \"not-equal\" | \"timed-out\";\n\n /**\n * Wakes up sleeping agents that are waiting on the given index of the array, returning the\n * number of agents that were awoken.\n * @param typedArray A shared BigInt64Array.\n * @param index The position in the typedArray to wake up on.\n * @param count The number of sleeping agents to notify. Defaults to +Infinity.\n */\n notify(typedArray: BigInt64Array, index: number, count?: number): number;\n\n /**\n * Stores the bitwise XOR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n xor(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n}\n", + "lib.es2020.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface PromiseFulfilledResult {\n status: \"fulfilled\";\n value: T;\n}\n\ninterface PromiseRejectedResult {\n status: \"rejected\";\n reason: any;\n}\n\ntype PromiseSettledResult = PromiseFulfilledResult | PromiseRejectedResult;\n\ninterface PromiseConstructor {\n /**\n * Creates a Promise that is resolved with an array of results when all\n * of the provided Promises resolve or reject.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n allSettled(values: T): Promise<{ -readonly [P in keyof T]: PromiseSettledResult>; }>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all\n * of the provided Promises resolve or reject.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n allSettled(values: Iterable>): Promise>[]>;\n}\n", + "lib.es2020.number.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface Number {\n /**\n * Converts a number to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;\n}\n", + "lib.es2020.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \ndeclare namespace Intl {\n /**\n * A string that is a valid [Unicode BCP 47 Locale Identifier](https://unicode.org/reports/tr35/#Unicode_locale_identifier).\n *\n * For example: \"fa\", \"es-MX\", \"zh-Hant-TW\".\n *\n * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\n */\n type UnicodeBCP47LocaleIdentifier = string;\n\n /**\n * Unit to use in the relative time internationalized message.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).\n */\n type RelativeTimeFormatUnit =\n | \"year\"\n | \"years\"\n | \"quarter\"\n | \"quarters\"\n | \"month\"\n | \"months\"\n | \"week\"\n | \"weeks\"\n | \"day\"\n | \"days\"\n | \"hour\"\n | \"hours\"\n | \"minute\"\n | \"minutes\"\n | \"second\"\n | \"seconds\";\n\n /**\n * Value of the `unit` property in objects returned by\n * `Intl.RelativeTimeFormat.prototype.formatToParts()`. `formatToParts` and\n * `format` methods accept either singular or plural unit names as input,\n * but `formatToParts` only outputs singular (e.g. \"day\") not plural (e.g.\n * \"days\").\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\n */\n type RelativeTimeFormatUnitSingular =\n | \"year\"\n | \"quarter\"\n | \"month\"\n | \"week\"\n | \"day\"\n | \"hour\"\n | \"minute\"\n | \"second\";\n\n /**\n * The locale matching algorithm to use.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).\n */\n type RelativeTimeFormatLocaleMatcher = \"lookup\" | \"best fit\";\n\n /**\n * The format of output message.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n type RelativeTimeFormatNumeric = \"always\" | \"auto\";\n\n /**\n * The length of the internationalized message.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n type RelativeTimeFormatStyle = \"long\" | \"short\" | \"narrow\";\n\n /**\n * The locale or locales to use\n *\n * See [MDN - Intl - locales argument](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\n */\n type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;\n\n /**\n * An object with some or all of properties of `options` parameter\n * of `Intl.RelativeTimeFormat` constructor.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n interface RelativeTimeFormatOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: RelativeTimeFormatLocaleMatcher;\n /** The format of output message. */\n numeric?: RelativeTimeFormatNumeric;\n /** The length of the internationalized message. */\n style?: RelativeTimeFormatStyle;\n }\n\n /**\n * An object with properties reflecting the locale\n * and formatting options computed during initialization\n * of the `Intl.RelativeTimeFormat` object\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).\n */\n interface ResolvedRelativeTimeFormatOptions {\n locale: UnicodeBCP47LocaleIdentifier;\n style: RelativeTimeFormatStyle;\n numeric: RelativeTimeFormatNumeric;\n numberingSystem: string;\n }\n\n /**\n * An object representing the relative time format in parts\n * that can be used for custom locale-aware formatting.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\n */\n type RelativeTimeFormatPart =\n | {\n type: \"literal\";\n value: string;\n }\n | {\n type: Exclude;\n value: string;\n unit: RelativeTimeFormatUnitSingular;\n };\n\n interface RelativeTimeFormat {\n /**\n * Formats a value and a unit according to the locale\n * and formatting options of the given\n * [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\n * object.\n *\n * While this method automatically provides the correct plural forms,\n * the grammatical form is otherwise as neutral as possible.\n *\n * It is the caller's responsibility to handle cut-off logic\n * such as deciding between displaying \"in 7 days\" or \"in 1 week\".\n * This API does not support relative dates involving compound units.\n * e.g \"in 5 days and 4 hours\".\n *\n * @param value - Numeric value to use in the internationalized relative time message\n *\n * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\n *\n * @throws `RangeError` if `unit` was given something other than `unit` possible values\n *\n * @returns {string} Internationalized relative time message as string\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).\n */\n format(value: number, unit: RelativeTimeFormatUnit): string;\n\n /**\n * Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.\n *\n * @param value - Numeric value to use in the internationalized relative time message\n *\n * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\n *\n * @throws `RangeError` if `unit` was given something other than `unit` possible values\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).\n */\n formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];\n\n /**\n * Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).\n */\n resolvedOptions(): ResolvedRelativeTimeFormatOptions;\n }\n\n /**\n * The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\n * object is a constructor for objects that enable language-sensitive relative time formatting.\n *\n * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).\n */\n const RelativeTimeFormat: {\n /**\n * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\n * with some or all of options of `RelativeTimeFormatOptions`.\n *\n * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).\n */\n new (\n locales?: LocalesArgument,\n options?: RelativeTimeFormatOptions,\n ): RelativeTimeFormat;\n\n /**\n * Returns an array containing those of the provided locales\n * that are supported in date and time formatting\n * without having to fall back to the runtime's default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\n * with some or all of options of the formatting.\n *\n * @returns An array containing those of the provided locales\n * that are supported in date and time formatting\n * without having to fall back to the runtime's default locale.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).\n */\n supportedLocalesOf(\n locales?: LocalesArgument,\n options?: RelativeTimeFormatOptions,\n ): UnicodeBCP47LocaleIdentifier[];\n };\n\n interface NumberFormatOptionsStyleRegistry {\n unit: never;\n }\n\n interface NumberFormatOptionsCurrencyDisplayRegistry {\n narrowSymbol: never;\n }\n\n interface NumberFormatOptionsSignDisplayRegistry {\n auto: never;\n never: never;\n always: never;\n exceptZero: never;\n }\n\n type NumberFormatOptionsSignDisplay = keyof NumberFormatOptionsSignDisplayRegistry;\n\n interface NumberFormatOptions {\n numberingSystem?: string | undefined;\n compactDisplay?: \"short\" | \"long\" | undefined;\n notation?: \"standard\" | \"scientific\" | \"engineering\" | \"compact\" | undefined;\n signDisplay?: NumberFormatOptionsSignDisplay | undefined;\n unit?: string | undefined;\n unitDisplay?: \"short\" | \"long\" | \"narrow\" | undefined;\n currencySign?: \"standard\" | \"accounting\" | undefined;\n }\n\n interface ResolvedNumberFormatOptions {\n compactDisplay?: \"short\" | \"long\";\n notation: \"standard\" | \"scientific\" | \"engineering\" | \"compact\";\n signDisplay: NumberFormatOptionsSignDisplay;\n unit?: string;\n unitDisplay?: \"short\" | \"long\" | \"narrow\";\n currencySign?: \"standard\" | \"accounting\";\n }\n\n interface NumberFormatPartTypeRegistry {\n compact: never;\n exponentInteger: never;\n exponentMinusSign: never;\n exponentSeparator: never;\n unit: never;\n unknown: never;\n }\n\n interface DateTimeFormatOptions {\n calendar?: string | undefined;\n dayPeriod?: \"narrow\" | \"short\" | \"long\" | undefined;\n numberingSystem?: string | undefined;\n\n dateStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\n timeStyle?: \"full\" | \"long\" | \"medium\" | \"short\" | undefined;\n hourCycle?: \"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined;\n }\n\n type LocaleHourCycleKey = \"h12\" | \"h23\" | \"h11\" | \"h24\";\n type LocaleCollationCaseFirst = \"upper\" | \"lower\" | \"false\";\n\n interface LocaleOptions {\n /** A string containing the language, and the script and region if available. */\n baseName?: string;\n /** The part of the Locale that indicates the locale's calendar era. */\n calendar?: string;\n /** Flag that defines whether case is taken into account for the locale's collation rules. */\n caseFirst?: LocaleCollationCaseFirst;\n /** The collation type used for sorting */\n collation?: string;\n /** The time keeping format convention used by the locale. */\n hourCycle?: LocaleHourCycleKey;\n /** The primary language subtag associated with the locale. */\n language?: string;\n /** The numeral system used by the locale. */\n numberingSystem?: string;\n /** Flag that defines whether the locale has special collation handling for numeric characters. */\n numeric?: boolean;\n /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */\n region?: string;\n /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */\n script?: string;\n }\n\n interface Locale extends LocaleOptions {\n /** A string containing the language, and the script and region if available. */\n baseName: string;\n /** The primary language subtag associated with the locale. */\n language: string;\n /** Gets the most likely values for the language, script, and region of the locale based on existing values. */\n maximize(): Locale;\n /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */\n minimize(): Locale;\n /** Returns the locale's full locale identifier string. */\n toString(): UnicodeBCP47LocaleIdentifier;\n }\n\n /**\n * Constructor creates [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)\n * objects\n *\n * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.\n *\n * @returns [Intl.Locale](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).\n */\n const Locale: {\n new (tag: UnicodeBCP47LocaleIdentifier | Locale, options?: LocaleOptions): Locale;\n };\n\n type DisplayNamesFallback =\n | \"code\"\n | \"none\";\n\n type DisplayNamesType =\n | \"language\"\n | \"region\"\n | \"script\"\n | \"calendar\"\n | \"dateTimeField\"\n | \"currency\";\n\n type DisplayNamesLanguageDisplay =\n | \"dialect\"\n | \"standard\";\n\n interface DisplayNamesOptions {\n localeMatcher?: RelativeTimeFormatLocaleMatcher;\n style?: RelativeTimeFormatStyle;\n type: DisplayNamesType;\n languageDisplay?: DisplayNamesLanguageDisplay;\n fallback?: DisplayNamesFallback;\n }\n\n interface ResolvedDisplayNamesOptions {\n locale: UnicodeBCP47LocaleIdentifier;\n style: RelativeTimeFormatStyle;\n type: DisplayNamesType;\n fallback: DisplayNamesFallback;\n languageDisplay?: DisplayNamesLanguageDisplay;\n }\n\n interface DisplayNames {\n /**\n * Receives a code and returns a string based on the locale and options provided when instantiating\n * [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\n *\n * @param code The `code` to provide depends on the `type` passed to display name during creation:\n * - If the type is `\"region\"`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),\n * or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).\n * - If the type is `\"script\"`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).\n * - If the type is `\"language\"`, code should be a `languageCode` [\"-\" `scriptCode`] [\"-\" `regionCode` ] *(\"-\" `variant` )\n * subsequence of the unicode_language_id grammar in [UTS 35's Unicode Language and Locale Identifiers grammar](https://unicode.org/reports/tr35/#Unicode_language_identifier).\n * `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.\n * - If the type is `\"currency\"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).\n */\n of(code: string): string | undefined;\n /**\n * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current\n * [`Intl/DisplayNames`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).\n */\n resolvedOptions(): ResolvedDisplayNamesOptions;\n }\n\n /**\n * The [`Intl.DisplayNames()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\n * object enables the consistent translation of language, region and script display names.\n *\n * [Compatibility](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).\n */\n const DisplayNames: {\n prototype: DisplayNames;\n\n /**\n * @param locales A string with a BCP 47 language tag, or an array of such strings.\n * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * page.\n *\n * @param options An object for setting up a display name.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).\n */\n new (locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;\n\n /**\n * Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.\n *\n * @param locales A string with a BCP 47 language tag, or an array of such strings.\n * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * page.\n *\n * @param options An object with a locale matcher.\n *\n * @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).\n */\n supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): UnicodeBCP47LocaleIdentifier[];\n };\n\n interface CollatorConstructor {\n new (locales?: LocalesArgument, options?: CollatorOptions): Collator;\n (locales?: LocalesArgument, options?: CollatorOptions): Collator;\n supportedLocalesOf(locales: LocalesArgument, options?: CollatorOptions): string[];\n }\n\n interface DateTimeFormatConstructor {\n new (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;\n (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;\n supportedLocalesOf(locales: LocalesArgument, options?: DateTimeFormatOptions): string[];\n }\n\n interface NumberFormatConstructor {\n new (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;\n (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;\n supportedLocalesOf(locales: LocalesArgument, options?: NumberFormatOptions): string[];\n }\n\n interface PluralRulesConstructor {\n new (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;\n (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;\n\n supportedLocalesOf(locales: LocalesArgument, options?: { localeMatcher?: \"lookup\" | \"best fit\"; }): string[];\n }\n}\n", + "lib.es2020.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2020.date.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface Date {\n /**\n * Converts a date and time to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a date to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleDateString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a time to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleTimeString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n}\n", + "lib.es2020.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2020.bigint.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface BigIntToLocaleStringOptions {\n /**\n * The locale matching algorithm to use.The default is \"best fit\". For information about this option, see the {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.\n */\n localeMatcher?: string;\n /**\n * The formatting style to use , the default is \"decimal\".\n */\n style?: string;\n\n numberingSystem?: string;\n /**\n * The unit to use in unit formatting, Possible values are core unit identifiers, defined in UTS #35, Part 2, Section 6. A subset of units from the full list was selected for use in ECMAScript. Pairs of simple units can be concatenated with \"-per-\" to make a compound unit. There is no default value; if the style is \"unit\", the unit property must be provided.\n */\n unit?: string;\n\n /**\n * The unit formatting style to use in unit formatting, the defaults is \"short\".\n */\n unitDisplay?: string;\n\n /**\n * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is \"currency\", the currency property must be provided. It is only used when [[Style]] has the value \"currency\".\n */\n currency?: string;\n\n /**\n * How to display the currency in currency formatting. It is only used when [[Style]] has the value \"currency\". The default is \"symbol\".\n *\n * \"symbol\" to use a localized currency symbol such as €,\n *\n * \"code\" to use the ISO currency code,\n *\n * \"name\" to use a localized currency name such as \"dollar\"\n */\n currencyDisplay?: string;\n\n /**\n * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. The default is true.\n */\n useGrouping?: boolean;\n\n /**\n * The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.\n */\n minimumIntegerDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information).\n */\n minimumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\n\n /**\n * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.\n */\n maximumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\n\n /**\n * The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.\n */\n minimumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.\n */\n maximumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The formatting that should be displayed for the number, the defaults is \"standard\"\n *\n * \"standard\" plain number formatting\n *\n * \"scientific\" return the order-of-magnitude for formatted number.\n *\n * \"engineering\" return the exponent of ten when divisible by three\n *\n * \"compact\" string representing exponent, defaults is using the \"short\" form\n */\n notation?: string;\n\n /**\n * used only when notation is \"compact\"\n */\n compactDisplay?: string;\n}\n\ninterface BigInt {\n /**\n * Returns a string representation of an object.\n * @param radix Specifies a radix for converting numeric values to strings.\n */\n toString(radix?: number): string;\n\n /** Returns a string representation appropriate to the host environment's current locale. */\n toLocaleString(locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): bigint;\n\n readonly [Symbol.toStringTag]: \"BigInt\";\n}\n\ninterface BigIntConstructor {\n (value: bigint | boolean | number | string): bigint;\n readonly prototype: BigInt;\n\n /**\n * Interprets the low bits of a BigInt as a 2's-complement signed integer.\n * All higher bits are discarded.\n * @param bits The number of low bits to use\n * @param int The BigInt whose bits to extract\n */\n asIntN(bits: number, int: bigint): bigint;\n /**\n * Interprets the low bits of a BigInt as an unsigned integer.\n * All higher bits are discarded.\n * @param bits The number of low bits to use\n * @param int The BigInt whose bits to extract\n */\n asUintN(bits: number, int: bigint): bigint;\n}\n\ndeclare var BigInt: BigIntConstructor;\n\n/**\n * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated, an exception is raised.\n */\ninterface BigInt64Array {\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /** The ArrayBuffer instance referenced by the array. */\n readonly buffer: TArrayBuffer;\n\n /** The length in bytes of the array. */\n readonly byteLength: number;\n\n /** The offset in bytes of the array. */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /** Yields index, value pairs for every entry in the array. */\n entries(): ArrayIterator<[number, bigint]>;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: bigint, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;\n\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: bigint, fromIndex?: number): boolean;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: bigint, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /** Yields each index in the array. */\n keys(): ArrayIterator;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: bigint, fromIndex?: number): number;\n\n /** The length of the array. */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\n\n /** Reverses the elements in the array. */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): BigInt64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls the\n * predicate function for each element in the array until the predicate returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts the array.\n * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\n */\n sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\n\n /**\n * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): BigInt64Array;\n\n /** Converts the array to a string by using the current locale. */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n\n /** Returns a string representation of the array. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): BigInt64Array;\n\n /** Yields each value in the array. */\n values(): ArrayIterator;\n\n [Symbol.iterator](): ArrayIterator;\n\n readonly [Symbol.toStringTag]: \"BigInt64Array\";\n\n [index: number]: bigint;\n}\ninterface BigInt64ArrayConstructor {\n readonly prototype: BigInt64Array;\n new (length?: number): BigInt64Array;\n new (array: ArrayLike | Iterable): BigInt64Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): BigInt64Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): BigInt64Array;\n new (array: ArrayLike | ArrayBuffer): BigInt64Array;\n\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: bigint[]): BigInt64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): BigInt64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): BigInt64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => bigint, thisArg?: any): BigInt64Array;\n}\ndeclare var BigInt64Array: BigInt64ArrayConstructor;\n\n/**\n * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated, an exception is raised.\n */\ninterface BigUint64Array {\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /** The ArrayBuffer instance referenced by the array. */\n readonly buffer: TArrayBuffer;\n\n /** The length in bytes of the array. */\n readonly byteLength: number;\n\n /** The offset in bytes of the array. */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /** Yields index, value pairs for every entry in the array. */\n entries(): ArrayIterator<[number, bigint]>;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: bigint, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;\n\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: bigint, fromIndex?: number): boolean;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: bigint, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /** Yields each index in the array. */\n keys(): ArrayIterator;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: bigint, fromIndex?: number): number;\n\n /** The length of the array. */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\n\n /** Reverses the elements in the array. */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): BigUint64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls the\n * predicate function for each element in the array until the predicate returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts the array.\n * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\n */\n sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\n\n /**\n * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): BigUint64Array;\n\n /** Converts the array to a string by using the current locale. */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n\n /** Returns a string representation of the array. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): BigUint64Array;\n\n /** Yields each value in the array. */\n values(): ArrayIterator;\n\n [Symbol.iterator](): ArrayIterator;\n\n readonly [Symbol.toStringTag]: \"BigUint64Array\";\n\n [index: number]: bigint;\n}\ninterface BigUint64ArrayConstructor {\n readonly prototype: BigUint64Array;\n new (length?: number): BigUint64Array;\n new (array: ArrayLike | Iterable): BigUint64Array;\n new (buffer: TArrayBuffer, byteOffset?: number, length?: number): BigUint64Array;\n new (buffer: ArrayBuffer, byteOffset?: number, length?: number): BigUint64Array;\n new (array: ArrayLike | ArrayBuffer): BigUint64Array;\n\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: bigint[]): BigUint64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): BigUint64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): BigUint64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => bigint, thisArg?: any): BigUint64Array;\n}\ndeclare var BigUint64Array: BigUint64ArrayConstructor;\n\ninterface DataView {\n /**\n * Gets the BigInt64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;\n\n /**\n * Gets the BigUint64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;\n\n /**\n * Stores a BigInt64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\n\n /**\n * Stores a BigUint64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\n}\n\ndeclare namespace Intl {\n interface NumberFormat {\n format(value: number | bigint): string;\n }\n}\n", + "lib.es2019.symbol.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Symbol {\n /**\n * Expose the [[Description]] internal slot of a symbol directly.\n */\n readonly description: string | undefined;\n}\n", + "lib.es2019.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface String {\n /** Removes the trailing white space and line terminator characters from a string. */\n trimEnd(): string;\n\n /** Removes the leading white space and line terminator characters from a string. */\n trimStart(): string;\n\n /**\n * Removes the leading white space and line terminator characters from a string.\n * @deprecated A legacy feature for browser compatibility. Use `trimStart` instead\n */\n trimLeft(): string;\n\n /**\n * Removes the trailing white space and line terminator characters from a string.\n * @deprecated A legacy feature for browser compatibility. Use `trimEnd` instead\n */\n trimRight(): string;\n}\n", + "lib.es2019.object.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface ObjectConstructor {\n /**\n * Returns an object created by key-value entries for properties and methods\n * @param entries An iterable object that contains key-value entries for properties and methods.\n */\n fromEntries(entries: Iterable): { [k: string]: T; };\n\n /**\n * Returns an object created by key-value entries for properties and methods\n * @param entries An iterable object that contains key-value entries for properties and methods.\n */\n fromEntries(entries: Iterable): any;\n}\n", + "lib.es2019.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n unknown: never;\n }\n}\n", + "lib.es2019.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2019.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2019.array.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ntype FlatArray = {\n done: Arr;\n recur: Arr extends ReadonlyArray ? FlatArray\n : Arr;\n}[Depth extends -1 ? \"done\" : \"recur\"];\n\ninterface ReadonlyArray {\n /**\n * Calls a defined callback function on each element of an array. Then, flattens the result into\n * a new array.\n * This is identical to a map followed by flat with depth 1.\n *\n * @param callback A function that accepts up to three arguments. The flatMap method calls the\n * callback function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callback function. If\n * thisArg is omitted, undefined is used as the this value.\n */\n flatMap(\n callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray,\n thisArg?: This,\n ): U[];\n\n /**\n * Returns a new array with all sub-array elements concatenated into it recursively up to the\n * specified depth.\n *\n * @param depth The maximum recursion depth\n */\n flat(\n this: A,\n depth?: D,\n ): FlatArray[];\n}\n\ninterface Array {\n /**\n * Calls a defined callback function on each element of an array. Then, flattens the result into\n * a new array.\n * This is identical to a map followed by flat with depth 1.\n *\n * @param callback A function that accepts up to three arguments. The flatMap method calls the\n * callback function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callback function. If\n * thisArg is omitted, undefined is used as the this value.\n */\n flatMap(\n callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray,\n thisArg?: This,\n ): U[];\n\n /**\n * Returns a new array with all sub-array elements concatenated into it recursively up to the\n * specified depth.\n *\n * @param depth The maximum recursion depth\n */\n flat(\n this: A,\n depth?: D,\n ): FlatArray[];\n}\n", + "lib.es2018.regexp.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface RegExpMatchArray {\n groups?: {\n [key: string]: string;\n };\n}\n\ninterface RegExpExecArray {\n groups?: {\n [key: string]: string;\n };\n}\n\ninterface RegExp {\n /**\n * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.\n * Default is false. Read-only.\n */\n readonly dotAll: boolean;\n}\n", + "lib.es2018.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise {\n /**\n * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The\n * resolved value cannot be modified from the callback.\n * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).\n * @returns A Promise for the completion of the callback.\n */\n finally(onfinally?: (() => void) | undefined | null): Promise;\n}\n", + "lib.es2018.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories\n type LDMLPluralRule = \"zero\" | \"one\" | \"two\" | \"few\" | \"many\" | \"other\";\n type PluralRuleType = \"cardinal\" | \"ordinal\";\n\n interface PluralRulesOptions {\n localeMatcher?: \"lookup\" | \"best fit\" | undefined;\n type?: PluralRuleType | undefined;\n minimumIntegerDigits?: number | undefined;\n minimumFractionDigits?: number | undefined;\n maximumFractionDigits?: number | undefined;\n minimumSignificantDigits?: number | undefined;\n maximumSignificantDigits?: number | undefined;\n }\n\n interface ResolvedPluralRulesOptions {\n locale: string;\n pluralCategories: LDMLPluralRule[];\n type: PluralRuleType;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n }\n\n interface PluralRules {\n resolvedOptions(): ResolvedPluralRulesOptions;\n select(n: number): LDMLPluralRule;\n }\n\n interface PluralRulesConstructor {\n new (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;\n (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;\n supportedLocalesOf(locales: string | readonly string[], options?: { localeMatcher?: \"lookup\" | \"best fit\"; }): string[];\n }\n\n const PluralRules: PluralRulesConstructor;\n\n interface NumberFormatPartTypeRegistry {\n literal: never;\n nan: never;\n infinity: never;\n percent: never;\n integer: never;\n group: never;\n decimal: never;\n fraction: never;\n plusSign: never;\n minusSign: never;\n percentSign: never;\n currency: never;\n }\n\n type NumberFormatPartTypes = keyof NumberFormatPartTypeRegistry;\n\n interface NumberFormatPart {\n type: NumberFormatPartTypes;\n value: string;\n }\n\n interface NumberFormat {\n formatToParts(number?: number | bigint): NumberFormatPart[];\n }\n}\n", + "lib.es2018.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2018.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2018.asynciterable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\ninterface SymbolConstructor {\n /**\n * A method that returns the default async iterator for an object. Called by the semantics of\n * the for-await-of statement.\n */\n readonly asyncIterator: unique symbol;\n}\n\ninterface AsyncIterator {\n // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...[value]: [] | [TNext]): Promise>;\n return?(value?: TReturn | PromiseLike): Promise>;\n throw?(e?: any): Promise>;\n}\n\ninterface AsyncIterable {\n [Symbol.asyncIterator](): AsyncIterator;\n}\n\n/**\n * Describes a user-defined {@link AsyncIterator} that is also async iterable.\n */\ninterface AsyncIterableIterator extends AsyncIterator {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n}\n\n/**\n * Describes an {@link AsyncIterator} produced by the runtime that inherits from the intrinsic `AsyncIterator.prototype`.\n */\ninterface AsyncIteratorObject extends AsyncIterator {\n [Symbol.asyncIterator](): AsyncIteratorObject;\n}\n", + "lib.es2018.asyncgenerator.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface AsyncGenerator extends AsyncIteratorObject {\n // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...[value]: [] | [TNext]): Promise>;\n return(value: TReturn | PromiseLike): Promise>;\n throw(e: any): Promise>;\n [Symbol.asyncIterator](): AsyncGenerator;\n}\n\ninterface AsyncGeneratorFunction {\n /**\n * Creates a new AsyncGenerator object.\n * @param args A list of arguments the function accepts.\n */\n new (...args: any[]): AsyncGenerator;\n /**\n * Creates a new AsyncGenerator object.\n * @param args A list of arguments the function accepts.\n */\n (...args: any[]): AsyncGenerator;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: AsyncGenerator;\n}\n\ninterface AsyncGeneratorFunctionConstructor {\n /**\n * Creates a new AsyncGenerator function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): AsyncGeneratorFunction;\n /**\n * Creates a new AsyncGenerator function.\n * @param args A list of arguments the function accepts.\n */\n (...args: string[]): AsyncGeneratorFunction;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: AsyncGeneratorFunction;\n}\n", + "lib.es2017.typedarrays.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Int8ArrayConstructor {\n new (): Int8Array;\n}\n\ninterface Uint8ArrayConstructor {\n new (): Uint8Array;\n}\n\ninterface Uint8ClampedArrayConstructor {\n new (): Uint8ClampedArray;\n}\n\ninterface Int16ArrayConstructor {\n new (): Int16Array;\n}\n\ninterface Uint16ArrayConstructor {\n new (): Uint16Array;\n}\n\ninterface Int32ArrayConstructor {\n new (): Int32Array;\n}\n\ninterface Uint32ArrayConstructor {\n new (): Uint32Array;\n}\n\ninterface Float32ArrayConstructor {\n new (): Float32Array;\n}\n\ninterface Float64ArrayConstructor {\n new (): Float64Array;\n}\n", + "lib.es2017.string.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface String {\n /**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the start (left) of the current string.\n *\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string's length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is \" \" (U+0020).\n */\n padStart(maxLength: number, fillString?: string): string;\n\n /**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the end (right) of the current string.\n *\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string's length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is \" \" (U+0020).\n */\n padEnd(maxLength: number, fillString?: string): string;\n}\n", + "lib.es2017.sharedmemory.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n\ninterface SharedArrayBuffer {\n /**\n * Read-only. The length of the ArrayBuffer (in bytes).\n */\n readonly byteLength: number;\n\n /**\n * Returns a section of an SharedArrayBuffer.\n */\n slice(begin?: number, end?: number): SharedArrayBuffer;\n readonly [Symbol.toStringTag]: \"SharedArrayBuffer\";\n}\n\ninterface SharedArrayBufferConstructor {\n readonly prototype: SharedArrayBuffer;\n new (byteLength?: number): SharedArrayBuffer;\n readonly [Symbol.species]: SharedArrayBufferConstructor;\n}\ndeclare var SharedArrayBuffer: SharedArrayBufferConstructor;\n\ninterface ArrayBufferTypes {\n SharedArrayBuffer: SharedArrayBuffer;\n}\n\ninterface Atomics {\n /**\n * Adds a value to the value at the given position in the array, returning the original value.\n * Until this atomic operation completes, any other read or write operation against the array\n * will block.\n */\n add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Stores the bitwise AND of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or\n * write operation against the array will block.\n */\n and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Replaces the value at the given position in the array if the original value equals the given\n * expected value, returning the original value. Until this atomic operation completes, any\n * other read or write operation against the array will block.\n */\n compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;\n\n /**\n * Replaces the value at the given position in the array, returning the original value. Until\n * this atomic operation completes, any other read or write operation against the array will\n * block.\n */\n exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Returns a value indicating whether high-performance algorithms can use atomic operations\n * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed\n * array.\n */\n isLockFree(size: number): boolean;\n\n /**\n * Returns the value at the given position in the array. Until this atomic operation completes,\n * any other read or write operation against the array will block.\n */\n load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;\n\n /**\n * Stores the bitwise OR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Stores a value at the given position in the array, returning the new value. Until this\n * atomic operation completes, any other read or write operation against the array will block.\n */\n store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Subtracts a value from the value at the given position in the array, returning the original\n * value. Until this atomic operation completes, any other read or write operation against the\n * array will block.\n */\n sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * If the value at the given position in the array is equal to the provided value, the current\n * agent is put to sleep causing execution to suspend until the timeout expires (returning\n * `\"timed-out\"`) or until the agent is awoken (returning `\"ok\"`); otherwise, returns\n * `\"not-equal\"`.\n */\n wait(typedArray: Int32Array, index: number, value: number, timeout?: number): \"ok\" | \"not-equal\" | \"timed-out\";\n\n /**\n * Wakes up sleeping agents that are waiting on the given index of the array, returning the\n * number of agents that were awoken.\n * @param typedArray A shared Int32Array.\n * @param index The position in the typedArray to wake up on.\n * @param count The number of sleeping agents to notify. Defaults to +Infinity.\n */\n notify(typedArray: Int32Array, index: number, count?: number): number;\n\n /**\n * Stores the bitwise XOR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n readonly [Symbol.toStringTag]: \"Atomics\";\n}\n\ndeclare var Atomics: Atomics;\n", + "lib.es2017.object.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ObjectConstructor {\n /**\n * Returns an array of values of the enumerable own properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n values(o: { [s: string]: T; } | ArrayLike): T[];\n\n /**\n * Returns an array of values of the enumerable own properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n values(o: {}): any[];\n\n /**\n * Returns an array of key/values of the enumerable own properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n entries(o: { [s: string]: T; } | ArrayLike): [string, T][];\n\n /**\n * Returns an array of key/values of the enumerable own properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n entries(o: {}): [string, any][];\n\n /**\n * Returns an object containing all own property descriptors of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n getOwnPropertyDescriptors(o: T): { [P in keyof T]: TypedPropertyDescriptor; } & { [x: string]: PropertyDescriptor; };\n}\n", + "lib.es2017.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n day: any;\n dayPeriod: any;\n era: any;\n hour: any;\n literal: any;\n minute: any;\n month: any;\n second: any;\n timeZoneName: any;\n weekday: any;\n year: any;\n }\n\n type DateTimeFormatPartTypes = keyof DateTimeFormatPartTypesRegistry;\n\n interface DateTimeFormatPart {\n type: DateTimeFormatPartTypes;\n value: string;\n }\n\n interface DateTimeFormat {\n formatToParts(date?: Date | number): DateTimeFormatPart[];\n }\n}\n", + "lib.es2017.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n", + "lib.es2017.date.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface DateConstructor {\n /**\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n UTC(year: number, monthIndex?: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\n}\n", + "lib.es2017.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2017.arraybuffer.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ArrayBufferConstructor {\n new (): ArrayBuffer;\n}\n", + "lib.es2016.intl.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Intl {\n /**\n * The `Intl.getCanonicalLocales()` method returns an array containing\n * the canonical locale names. Duplicates will be omitted and elements\n * will be validated as structurally valid language tags.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales)\n *\n * @param locale A list of String values for which to get the canonical locale names\n * @returns An array containing the canonical and validated locale names.\n */\n function getCanonicalLocales(locale?: string | readonly string[]): string[];\n}\n", + "lib.es2016.full.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n", + "lib.es2016.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n", + "lib.es2016.array.include.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: T, fromIndex?: number): boolean;\n}\n\ninterface ReadonlyArray {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: T, fromIndex?: number): boolean;\n}\n\ninterface Int8Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint8Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Int16Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint16Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Int32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Float32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Float64Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n", + "lib.es2015.symbol.wellknown.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface SymbolConstructor {\n /**\n * A method that determines if a constructor object recognizes an object as one of the\n * constructor’s instances. Called by the semantics of the instanceof operator.\n */\n readonly hasInstance: unique symbol;\n\n /**\n * A Boolean value that if true indicates that an object should flatten to its array elements\n * by Array.prototype.concat.\n */\n readonly isConcatSpreadable: unique symbol;\n\n /**\n * A regular expression method that matches the regular expression against a string. Called\n * by the String.prototype.match method.\n */\n readonly match: unique symbol;\n\n /**\n * A regular expression method that replaces matched substrings of a string. Called by the\n * String.prototype.replace method.\n */\n readonly replace: unique symbol;\n\n /**\n * A regular expression method that returns the index within a string that matches the\n * regular expression. Called by the String.prototype.search method.\n */\n readonly search: unique symbol;\n\n /**\n * A function valued property that is the constructor function that is used to create\n * derived objects.\n */\n readonly species: unique symbol;\n\n /**\n * A regular expression method that splits a string at the indices that match the regular\n * expression. Called by the String.prototype.split method.\n */\n readonly split: unique symbol;\n\n /**\n * A method that converts an object to a corresponding primitive value.\n * Called by the ToPrimitive abstract operation.\n */\n readonly toPrimitive: unique symbol;\n\n /**\n * A String value that is used in the creation of the default string description of an object.\n * Called by the built-in method Object.prototype.toString.\n */\n readonly toStringTag: unique symbol;\n\n /**\n * An Object whose truthy properties are properties that are excluded from the 'with'\n * environment bindings of the associated objects.\n */\n readonly unscopables: unique symbol;\n}\n\ninterface Symbol {\n /**\n * Converts a Symbol object to a symbol.\n */\n [Symbol.toPrimitive](hint: string): symbol;\n\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Array {\n /**\n * Is an object whose properties have the value 'true'\n * when they will be absent when used in a 'with' statement.\n */\n readonly [Symbol.unscopables]: {\n [K in keyof any[]]?: boolean;\n };\n}\n\ninterface ReadonlyArray {\n /**\n * Is an object whose properties have the value 'true'\n * when they will be absent when used in a 'with' statement.\n */\n readonly [Symbol.unscopables]: {\n [K in keyof readonly any[]]?: boolean;\n };\n}\n\ninterface Date {\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: \"default\"): string;\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: \"string\"): string;\n /**\n * Converts a Date object to a number.\n */\n [Symbol.toPrimitive](hint: \"number\"): number;\n /**\n * Converts a Date object to a string or number.\n *\n * @param hint The strings \"number\", \"string\", or \"default\" to specify what primitive to return.\n *\n * @throws {TypeError} If 'hint' was given something other than \"number\", \"string\", or \"default\".\n * @returns A number if 'hint' was \"number\", a string if 'hint' was \"string\" or \"default\".\n */\n [Symbol.toPrimitive](hint: string): string | number;\n}\n\ninterface Map {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface WeakMap {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Set {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface WeakSet {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface JSON {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Function {\n /**\n * Determines whether the given value inherits from this function if this function was used\n * as a constructor function.\n *\n * A constructor function can control which objects are recognized as its instances by\n * 'instanceof' by overriding this method.\n */\n [Symbol.hasInstance](value: any): boolean;\n}\n\ninterface GeneratorFunction {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Math {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Promise {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface PromiseConstructor {\n readonly [Symbol.species]: PromiseConstructor;\n}\n\ninterface RegExp {\n /**\n * Matches a string with this regular expression, and returns an array containing the results of\n * that search.\n * @param string A string to search within.\n */\n [Symbol.match](string: string): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replaceValue A String object or string literal containing the text to replace for every\n * successful match of this regular expression.\n */\n [Symbol.replace](string: string, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replacer A function that returns the replacement text.\n */\n [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the position beginning first substring match in a regular expression search\n * using this regular expression.\n *\n * @param string The string to search within.\n */\n [Symbol.search](string: string): number;\n\n /**\n * Returns an array of substrings that were delimited by strings in the original input that\n * match against this regular expression.\n *\n * If the regular expression contains capturing parentheses, then each time this\n * regular expression matches, the results (including any undefined results) of the\n * capturing parentheses are spliced.\n *\n * @param string string value to split\n * @param limit if not undefined, the output array is truncated so that it contains no more\n * than 'limit' elements.\n */\n [Symbol.split](string: string, limit?: number): string[];\n}\n\ninterface RegExpConstructor {\n readonly [Symbol.species]: RegExpConstructor;\n}\n\ninterface String {\n /**\n * Matches a string or an object that supports being matched against, and returns an array\n * containing the results of that search, or null if no matches are found.\n * @param matcher An object that supports being matched against.\n */\n match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\n\n /**\n * Passes a string and {@linkcode replaceValue} to the `[Symbol.replace]` method on {@linkcode searchValue}. This method is expected to implement its own replacement algorithm.\n * @param searchValue An object that supports searching for and replacing matches within a string.\n * @param replaceValue The replacement text.\n */\n replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using an object that supports replacement within a string.\n * @param searchValue A object can search for and replace matches within a string.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param searcher An object which supports searching within a string.\n */\n search(searcher: { [Symbol.search](string: string): number; }): number;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param splitter An object that can split a string.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\n}\n\ninterface ArrayBuffer {\n readonly [Symbol.toStringTag]: \"ArrayBuffer\";\n}\n\ninterface DataView {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Int8Array {\n readonly [Symbol.toStringTag]: \"Int8Array\";\n}\n\ninterface Uint8Array {\n readonly [Symbol.toStringTag]: \"Uint8Array\";\n}\n\ninterface Uint8ClampedArray {\n readonly [Symbol.toStringTag]: \"Uint8ClampedArray\";\n}\n\ninterface Int16Array {\n readonly [Symbol.toStringTag]: \"Int16Array\";\n}\n\ninterface Uint16Array {\n readonly [Symbol.toStringTag]: \"Uint16Array\";\n}\n\ninterface Int32Array {\n readonly [Symbol.toStringTag]: \"Int32Array\";\n}\n\ninterface Uint32Array {\n readonly [Symbol.toStringTag]: \"Uint32Array\";\n}\n\ninterface Float32Array {\n readonly [Symbol.toStringTag]: \"Float32Array\";\n}\n\ninterface Float64Array {\n readonly [Symbol.toStringTag]: \"Float64Array\";\n}\n\ninterface ArrayConstructor {\n readonly [Symbol.species]: ArrayConstructor;\n}\ninterface MapConstructor {\n readonly [Symbol.species]: MapConstructor;\n}\ninterface SetConstructor {\n readonly [Symbol.species]: SetConstructor;\n}\ninterface ArrayBufferConstructor {\n readonly [Symbol.species]: ArrayBufferConstructor;\n}\n", + "lib.es2015.symbol.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface SymbolConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Symbol;\n\n /**\n * Returns a new unique Symbol value.\n * @param description Description of the new Symbol object.\n */\n (description?: string | number): symbol;\n\n /**\n * Returns a Symbol object from the global symbol registry matching the given key if found.\n * Otherwise, returns a new symbol with this key.\n * @param key key to search for.\n */\n for(key: string): symbol;\n\n /**\n * Returns a key from the global symbol registry matching the given Symbol if found.\n * Otherwise, returns a undefined.\n * @param sym Symbol to find the key for.\n */\n keyFor(sym: symbol): string | undefined;\n}\n\ndeclare var Symbol: SymbolConstructor;\n", + "lib.es2015.reflect.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare namespace Reflect {\n /**\n * Calls the function with the specified object as the this value\n * and the elements of specified array as the arguments.\n * @param target The function to call.\n * @param thisArgument The object to be used as the this object.\n * @param argumentsList An array of argument values to be passed to the function.\n */\n function apply(\n target: (this: T, ...args: A) => R,\n thisArgument: T,\n argumentsList: Readonly,\n ): R;\n function apply(target: Function, thisArgument: any, argumentsList: ArrayLike): any;\n\n /**\n * Constructs the target with the elements of specified array as the arguments\n * and the specified constructor as the `new.target` value.\n * @param target The constructor to invoke.\n * @param argumentsList An array of argument values to be passed to the constructor.\n * @param newTarget The constructor to be used as the `new.target` object.\n */\n function construct(\n target: new (...args: A) => R,\n argumentsList: Readonly,\n newTarget?: new (...args: any) => any,\n ): R;\n function construct(target: Function, argumentsList: ArrayLike, newTarget?: Function): any;\n\n /**\n * Adds a property to an object, or modifies attributes of an existing property.\n * @param target Object on which to add or modify the property. This can be a native JavaScript object\n * (that is, a user-defined object or a built in object) or a DOM object.\n * @param propertyKey The property name.\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\n */\n function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor & ThisType): boolean;\n\n /**\n * Removes a property from an object, equivalent to `delete target[propertyKey]`,\n * except it won't throw if `target[propertyKey]` is non-configurable.\n * @param target Object from which to remove the own property.\n * @param propertyKey The property name.\n */\n function deleteProperty(target: object, propertyKey: PropertyKey): boolean;\n\n /**\n * Gets the property of target, equivalent to `target[propertyKey]` when `receiver === target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey The property name.\n * @param receiver The reference to use as the `this` value in the getter function,\n * if `target[propertyKey]` is an accessor property.\n */\n function get(\n target: T,\n propertyKey: P,\n receiver?: unknown,\n ): P extends keyof T ? T[P] : any;\n\n /**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\n * @param target Object that contains the property.\n * @param propertyKey The property name.\n */\n function getOwnPropertyDescriptor(\n target: T,\n propertyKey: P,\n ): TypedPropertyDescriptor

| undefined;\n\n /**\n * Returns the prototype of an object.\n * @param target The object that references the prototype.\n */\n function getPrototypeOf(target: object): object | null;\n\n /**\n * Equivalent to `propertyKey in target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey Name of the property.\n */\n function has(target: object, propertyKey: PropertyKey): boolean;\n\n /**\n * Returns a value that indicates whether new properties can be added to an object.\n * @param target Object to test.\n */\n function isExtensible(target: object): boolean;\n\n /**\n * Returns the string and symbol keys of the own properties of an object. The own properties of an object\n * are those that are defined directly on that object, and are not inherited from the object's prototype.\n * @param target Object that contains the own properties.\n */\n function ownKeys(target: object): (string | symbol)[];\n\n /**\n * Prevents the addition of new properties to an object.\n * @param target Object to make non-extensible.\n * @return Whether the object has been made non-extensible.\n */\n function preventExtensions(target: object): boolean;\n\n /**\n * Sets the property of target, equivalent to `target[propertyKey] = value` when `receiver === target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey Name of the property.\n * @param receiver The reference to use as the `this` value in the setter function,\n * if `target[propertyKey]` is an accessor property.\n */\n function set(\n target: T,\n propertyKey: P,\n value: P extends keyof T ? T[P] : any,\n receiver?: any,\n ): boolean;\n function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;\n\n /**\n * Sets the prototype of a specified object o to object proto or null.\n * @param target The object to change its prototype.\n * @param proto The value of the new prototype or null.\n * @return Whether setting the prototype was successful.\n */\n function setPrototypeOf(target: object, proto: object | null): boolean;\n}\n", + "lib.es2015.proxy.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface ProxyHandler {\n /**\n * A trap method for a function call.\n * @param target The original callable object which is being proxied.\n */\n apply?(target: T, thisArg: any, argArray: any[]): any;\n\n /**\n * A trap for the `new` operator.\n * @param target The original object which is being proxied.\n * @param newTarget The constructor that was originally called.\n */\n construct?(target: T, argArray: any[], newTarget: Function): object;\n\n /**\n * A trap for `Object.defineProperty()`.\n * @param target The original object which is being proxied.\n * @returns A `Boolean` indicating whether or not the property has been defined.\n */\n defineProperty?(target: T, property: string | symbol, attributes: PropertyDescriptor): boolean;\n\n /**\n * A trap for the `delete` operator.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to delete.\n * @returns A `Boolean` indicating whether or not the property was deleted.\n */\n deleteProperty?(target: T, p: string | symbol): boolean;\n\n /**\n * A trap for getting a property value.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to get.\n * @param receiver The proxy or an object that inherits from the proxy.\n */\n get?(target: T, p: string | symbol, receiver: any): any;\n\n /**\n * A trap for `Object.getOwnPropertyDescriptor()`.\n * @param target The original object which is being proxied.\n * @param p The name of the property whose description should be retrieved.\n */\n getOwnPropertyDescriptor?(target: T, p: string | symbol): PropertyDescriptor | undefined;\n\n /**\n * A trap for the `[[GetPrototypeOf]]` internal method.\n * @param target The original object which is being proxied.\n */\n getPrototypeOf?(target: T): object | null;\n\n /**\n * A trap for the `in` operator.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to check for existence.\n */\n has?(target: T, p: string | symbol): boolean;\n\n /**\n * A trap for `Object.isExtensible()`.\n * @param target The original object which is being proxied.\n */\n isExtensible?(target: T): boolean;\n\n /**\n * A trap for `Reflect.ownKeys()`.\n * @param target The original object which is being proxied.\n */\n ownKeys?(target: T): ArrayLike;\n\n /**\n * A trap for `Object.preventExtensions()`.\n * @param target The original object which is being proxied.\n */\n preventExtensions?(target: T): boolean;\n\n /**\n * A trap for setting a property value.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to set.\n * @param receiver The object to which the assignment was originally directed.\n * @returns A `Boolean` indicating whether or not the property was set.\n */\n set?(target: T, p: string | symbol, newValue: any, receiver: any): boolean;\n\n /**\n * A trap for `Object.setPrototypeOf()`.\n * @param target The original object which is being proxied.\n * @param newPrototype The object's new prototype or `null`.\n */\n setPrototypeOf?(target: T, v: object | null): boolean;\n}\n\ninterface ProxyConstructor {\n /**\n * Creates a revocable Proxy object.\n * @param target A target object to wrap with Proxy.\n * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\n */\n revocable(target: T, handler: ProxyHandler): { proxy: T; revoke: () => void; };\n\n /**\n * Creates a Proxy object. The Proxy object allows you to create an object that can be used in place of the\n * original object, but which may redefine fundamental Object operations like getting, setting, and defining\n * properties. Proxy objects are commonly used to log property accesses, validate, format, or sanitize inputs.\n * @param target A target object to wrap with Proxy.\n * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\n */\n new (target: T, handler: ProxyHandler): T;\n}\ndeclare var Proxy: ProxyConstructor;\n", + "lib.es2015.promise.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface PromiseConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Promise;\n\n /**\n * Creates a new Promise.\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\n * a resolve callback used to resolve the promise with a value or the result of another promise,\n * and a reject callback used to reject the promise with a provided reason or error.\n */\n new (executor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>;\n\n // see: lib.es2015.iterable.d.ts\n // all(values: Iterable>): Promise[]>;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: T): Promise>;\n\n // see: lib.es2015.iterable.d.ts\n // race(values: Iterable>): Promise>;\n\n /**\n * Creates a new rejected promise for the provided reason.\n * @param reason The reason the promise was rejected.\n * @returns A new rejected Promise.\n */\n reject(reason?: any): Promise;\n\n /**\n * Creates a new resolved promise.\n * @returns A resolved promise.\n */\n resolve(): Promise;\n /**\n * Creates a new resolved promise for the provided value.\n * @param value A promise.\n * @returns A promise whose internal state matches the provided promise.\n */\n resolve(value: T): Promise>;\n /**\n * Creates a new resolved promise for the provided value.\n * @param value A promise.\n * @returns A promise whose internal state matches the provided promise.\n */\n resolve(value: T | PromiseLike): Promise>;\n}\n\ndeclare var Promise: PromiseConstructor;\n", + "lib.es2015.iterable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface SymbolConstructor {\n /**\n * A method that returns the default iterator for an object. Called by the semantics of the\n * for-of statement.\n */\n readonly iterator: unique symbol;\n}\n\ninterface IteratorYieldResult {\n done?: false;\n value: TYield;\n}\n\ninterface IteratorReturnResult {\n done: true;\n value: TReturn;\n}\n\ntype IteratorResult = IteratorYieldResult | IteratorReturnResult;\n\ninterface Iterator {\n // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...[value]: [] | [TNext]): IteratorResult;\n return?(value?: TReturn): IteratorResult;\n throw?(e?: any): IteratorResult;\n}\n\ninterface Iterable {\n [Symbol.iterator](): Iterator;\n}\n\n/**\n * Describes a user-defined {@link Iterator} that is also iterable.\n */\ninterface IterableIterator extends Iterator {\n [Symbol.iterator](): IterableIterator;\n}\n\n/**\n * Describes an {@link Iterator} produced by the runtime that inherits from the intrinsic `Iterator.prototype`.\n */\ninterface IteratorObject extends Iterator {\n [Symbol.iterator](): IteratorObject;\n}\n\n/**\n * Defines the `TReturn` type used for built-in iterators produced by `Array`, `Map`, `Set`, and others.\n * This is `undefined` when `strictBuiltInIteratorReturn` is `true`; otherwise, this is `any`.\n */\ntype BuiltinIteratorReturn = intrinsic;\n\ninterface ArrayIterator extends IteratorObject {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface Array {\n /** Iterator */\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface ArrayConstructor {\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\n from(iterable: Iterable | ArrayLike): T[];\n\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\n}\n\ninterface ReadonlyArray {\n /** Iterator of values in the array. */\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface IArguments {\n /** Iterator */\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface MapIterator extends IteratorObject {\n [Symbol.iterator](): MapIterator;\n}\n\ninterface Map {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): MapIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): MapIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): MapIterator;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): MapIterator;\n}\n\ninterface ReadonlyMap {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): MapIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): MapIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): MapIterator;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): MapIterator;\n}\n\ninterface MapConstructor {\n new (): Map;\n new (iterable?: Iterable | null): Map;\n}\n\ninterface WeakMap {}\n\ninterface WeakMapConstructor {\n new (iterable: Iterable): WeakMap;\n}\n\ninterface SetIterator extends IteratorObject {\n [Symbol.iterator](): SetIterator;\n}\n\ninterface Set {\n /** Iterates over values in the set. */\n [Symbol.iterator](): SetIterator;\n\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): SetIterator<[T, T]>;\n\n /**\n * Despite its name, returns an iterable of the values in the set.\n */\n keys(): SetIterator;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): SetIterator;\n}\n\ninterface ReadonlySet {\n /** Iterates over values in the set. */\n [Symbol.iterator](): SetIterator;\n\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): SetIterator<[T, T]>;\n\n /**\n * Despite its name, returns an iterable of the values in the set.\n */\n keys(): SetIterator;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): SetIterator;\n}\n\ninterface SetConstructor {\n new (iterable?: Iterable | null): Set;\n}\n\ninterface WeakSet {}\n\ninterface WeakSetConstructor {\n new (iterable: Iterable): WeakSet;\n}\n\ninterface Promise {}\n\ninterface PromiseConstructor {\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An iterable of Promises.\n * @returns A new Promise.\n */\n all(values: Iterable>): Promise[]>;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An iterable of Promises.\n * @returns A new Promise.\n */\n race(values: Iterable>): Promise>;\n}\n\ninterface StringIterator extends IteratorObject {\n [Symbol.iterator](): StringIterator;\n}\n\ninterface String {\n /** Iterator */\n [Symbol.iterator](): StringIterator;\n}\n\ninterface Int8Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Int8ArrayConstructor {\n new (elements: Iterable): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Int8Array;\n}\n\ninterface Uint8Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Uint8ArrayConstructor {\n new (elements: Iterable): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint8Array;\n}\n\ninterface Uint8ClampedArray {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Uint8ClampedArrayConstructor {\n new (elements: Iterable): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\n}\n\ninterface Int16Array {\n [Symbol.iterator](): ArrayIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Int16ArrayConstructor {\n new (elements: Iterable): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Int16Array;\n}\n\ninterface Uint16Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Uint16ArrayConstructor {\n new (elements: Iterable): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint16Array;\n}\n\ninterface Int32Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Int32ArrayConstructor {\n new (elements: Iterable): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Int32Array;\n}\n\ninterface Uint32Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Uint32ArrayConstructor {\n new (elements: Iterable): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Uint32Array;\n}\n\ninterface Float32Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Float32ArrayConstructor {\n new (elements: Iterable): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Float32Array;\n}\n\ninterface Float64Array {\n [Symbol.iterator](): ArrayIterator;\n\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): ArrayIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): ArrayIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): ArrayIterator;\n}\n\ninterface Float64ArrayConstructor {\n new (elements: Iterable): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n */\n from(elements: Iterable): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param elements An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(elements: Iterable, mapfn?: (v: T, k: number) => number, thisArg?: any): Float64Array;\n}\n", + "lib.es2015.generator.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n\ninterface Generator extends IteratorObject {\n // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...[value]: [] | [TNext]): IteratorResult;\n return(value: TReturn): IteratorResult;\n throw(e: any): IteratorResult;\n [Symbol.iterator](): Generator;\n}\n\ninterface GeneratorFunction {\n /**\n * Creates a new Generator object.\n * @param args A list of arguments the function accepts.\n */\n new (...args: any[]): Generator;\n /**\n * Creates a new Generator object.\n * @param args A list of arguments the function accepts.\n */\n (...args: any[]): Generator;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: Generator;\n}\n\ninterface GeneratorFunctionConstructor {\n /**\n * Creates a new Generator function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): GeneratorFunction;\n /**\n * Creates a new Generator function.\n * @param args A list of arguments the function accepts.\n */\n (...args: string[]): GeneratorFunction;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: GeneratorFunction;\n}\n", + "lib.es2015.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n/// \n", + "lib.es2015.core.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Array {\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;\n find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: T, start?: number, end?: number): this;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;\n}\n\ninterface ArrayConstructor {\n /**\n * Creates an array from an array-like object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from(arrayLike: ArrayLike): T[];\n\n /**\n * Creates an array from an iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: T[]): T[];\n}\n\ninterface DateConstructor {\n new (value: number | string | Date): Date;\n}\n\ninterface Function {\n /**\n * Returns the name of the function. Function names are read-only and can not be changed.\n */\n readonly name: string;\n}\n\ninterface Math {\n /**\n * Returns the number of leading zero bits in the 32-bit binary representation of a number.\n * @param x A numeric expression.\n */\n clz32(x: number): number;\n\n /**\n * Returns the result of 32-bit multiplication of two numbers.\n * @param x First number\n * @param y Second number\n */\n imul(x: number, y: number): number;\n\n /**\n * Returns the sign of the x, indicating whether x is positive, negative or zero.\n * @param x The numeric expression to test\n */\n sign(x: number): number;\n\n /**\n * Returns the base 10 logarithm of a number.\n * @param x A numeric expression.\n */\n log10(x: number): number;\n\n /**\n * Returns the base 2 logarithm of a number.\n * @param x A numeric expression.\n */\n log2(x: number): number;\n\n /**\n * Returns the natural logarithm of 1 + x.\n * @param x A numeric expression.\n */\n log1p(x: number): number;\n\n /**\n * Returns the result of (e^x - 1), which is an implementation-dependent approximation to\n * subtracting 1 from the exponential function of x (e raised to the power of x, where e\n * is the base of the natural logarithms).\n * @param x A numeric expression.\n */\n expm1(x: number): number;\n\n /**\n * Returns the hyperbolic cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n cosh(x: number): number;\n\n /**\n * Returns the hyperbolic sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n sinh(x: number): number;\n\n /**\n * Returns the hyperbolic tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n tanh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n acosh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n asinh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n atanh(x: number): number;\n\n /**\n * Returns the square root of the sum of squares of its arguments.\n * @param values Values to compute the square root for.\n * If no arguments are passed, the result is +0.\n * If there is only one argument, the result is the absolute value.\n * If any argument is +Infinity or -Infinity, the result is +Infinity.\n * If any argument is NaN, the result is NaN.\n * If all arguments are either +0 or −0, the result is +0.\n */\n hypot(...values: number[]): number;\n\n /**\n * Returns the integral part of the a numeric expression, x, removing any fractional digits.\n * If x is already an integer, the result is x.\n * @param x A numeric expression.\n */\n trunc(x: number): number;\n\n /**\n * Returns the nearest single precision float representation of a number.\n * @param x A numeric expression.\n */\n fround(x: number): number;\n\n /**\n * Returns an implementation-dependent approximation to the cube root of number.\n * @param x A numeric expression.\n */\n cbrt(x: number): number;\n}\n\ninterface NumberConstructor {\n /**\n * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1\n * that is representable as a Number value, which is approximately:\n * 2.2204460492503130808472633361816 x 10‍−‍16.\n */\n readonly EPSILON: number;\n\n /**\n * Returns true if passed value is finite.\n * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a\n * number. Only finite values of the type number, result in true.\n * @param number A numeric value.\n */\n isFinite(number: unknown): boolean;\n\n /**\n * Returns true if the value passed is an integer, false otherwise.\n * @param number A numeric value.\n */\n isInteger(number: unknown): boolean;\n\n /**\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a\n * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter\n * to a number. Only values of the type number, that are also NaN, result in true.\n * @param number A numeric value.\n */\n isNaN(number: unknown): boolean;\n\n /**\n * Returns true if the value passed is a safe integer.\n * @param number A numeric value.\n */\n isSafeInteger(number: unknown): boolean;\n\n /**\n * The value of the largest integer n such that n and n + 1 are both exactly representable as\n * a Number value.\n * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.\n */\n readonly MAX_SAFE_INTEGER: number;\n\n /**\n * The value of the smallest integer n such that n and n − 1 are both exactly representable as\n * a Number value.\n * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).\n */\n readonly MIN_SAFE_INTEGER: number;\n\n /**\n * Converts a string to a floating-point number.\n * @param string A string that contains a floating-point number.\n */\n parseFloat(string: string): number;\n\n /**\n * Converts A string to an integer.\n * @param string A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\n * All other strings are considered decimal.\n */\n parseInt(string: string, radix?: number): number;\n}\n\ninterface ObjectConstructor {\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n assign(target: T, source: U): T & U;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n assign(target: T, source1: U, source2: V): T & U & V;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n assign(target: T, source1: U, source2: V, source3: W): T & U & V & W;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n assign(target: object, ...sources: any[]): any;\n\n /**\n * Returns an array of all symbol properties found directly on object o.\n * @param o Object to retrieve the symbols from.\n */\n getOwnPropertySymbols(o: any): symbol[];\n\n /**\n * Returns the names of the enumerable string properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n keys(o: {}): string[];\n\n /**\n * Returns true if the values are the same value, false otherwise.\n * @param value1 The first value.\n * @param value2 The second value.\n */\n is(value1: any, value2: any): boolean;\n\n /**\n * Sets the prototype of a specified object o to object proto or null. Returns the object o.\n * @param o The object to change its prototype.\n * @param proto The value of the new prototype or null.\n */\n setPrototypeOf(o: any, proto: object | null): any;\n}\n\ninterface ReadonlyArray {\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\n find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\n\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;\n}\n\ninterface RegExp {\n /**\n * Returns a string indicating the flags of the regular expression in question. This field is read-only.\n * The characters in this string are sequenced and concatenated in the following order:\n *\n * - \"g\" for global\n * - \"i\" for ignoreCase\n * - \"m\" for multiline\n * - \"u\" for unicode\n * - \"y\" for sticky\n *\n * If no flags are set, the value is the empty string.\n */\n readonly flags: string;\n\n /**\n * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular\n * expression. Default is false. Read-only.\n */\n readonly sticky: boolean;\n\n /**\n * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular\n * expression. Default is false. Read-only.\n */\n readonly unicode: boolean;\n}\n\ninterface RegExpConstructor {\n new (pattern: RegExp | string, flags?: string): RegExp;\n (pattern: RegExp | string, flags?: string): RegExp;\n}\n\ninterface String {\n /**\n * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\n * value of the UTF-16 encoded code point starting at the string element at position pos in\n * the String resulting from converting this object to a String.\n * If there is no element at that position, the result is undefined.\n * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\n */\n codePointAt(pos: number): number | undefined;\n\n /**\n * Returns true if searchString appears as a substring of the result of converting this\n * object to a String, at one or more positions that are\n * greater than or equal to position; otherwise, returns false.\n * @param searchString search string\n * @param position If position is undefined, 0 is assumed, so as to search all of the String.\n */\n includes(searchString: string, position?: number): boolean;\n\n /**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * endPosition – length(this). Otherwise returns false.\n */\n endsWith(searchString: string, endPosition?: number): boolean;\n\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\n * is \"NFC\"\n */\n normalize(form: \"NFC\" | \"NFD\" | \"NFKC\" | \"NFKD\"): string;\n\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\n * is \"NFC\"\n */\n normalize(form?: string): string;\n\n /**\n * Returns a String value that is made from count copies appended together. If count is 0,\n * the empty string is returned.\n * @param count number of copies to append\n */\n repeat(count: number): string;\n\n /**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * position. Otherwise returns false.\n */\n startsWith(searchString: string, position?: number): boolean;\n\n /**\n * Returns an `` HTML anchor element and sets the name attribute to the text value\n * @deprecated A legacy feature for browser compatibility\n * @param name\n */\n anchor(name: string): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n big(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n blink(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n bold(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n fixed(): string;\n\n /**\n * Returns a `` HTML element and sets the color attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontcolor(color: string): string;\n\n /**\n * Returns a `` HTML element and sets the size attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontsize(size: number): string;\n\n /**\n * Returns a `` HTML element and sets the size attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontsize(size: string): string;\n\n /**\n * Returns an `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n italics(): string;\n\n /**\n * Returns an `` HTML element and sets the href attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n link(url: string): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n small(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n strike(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n sub(): string;\n\n /**\n * Returns a `` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n sup(): string;\n}\n\ninterface StringConstructor {\n /**\n * Return the String value whose elements are, in order, the elements in the List elements.\n * If length is 0, the empty string is returned.\n */\n fromCodePoint(...codePoints: number[]): string;\n\n /**\n * String.raw is usually used as a tag function of a Tagged Template String. When called as\n * such, the first argument will be a well formed template call site object and the rest\n * parameter will contain the substitution values. It can also be called directly, for example,\n * to interleave strings and values from your own tag function, and in this case the only thing\n * it needs from the first argument is the raw property.\n * @param template A well-formed template string call site representation.\n * @param substitutions A set of substitution values.\n */\n raw(template: { raw: readonly string[] | ArrayLike; }, ...substitutions: any[]): string;\n}\n\ninterface Int8Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Uint8Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Uint8ClampedArray {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Int16Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Uint16Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Int32Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Uint32Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Float32Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Float64Array {\n toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n", + "lib.es2015.collection.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ninterface Map {\n clear(): void;\n /**\n * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.\n */\n delete(key: K): boolean;\n /**\n * Executes a provided function once per each key/value pair in the Map, in insertion order.\n */\n forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void;\n /**\n * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.\n * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.\n */\n get(key: K): V | undefined;\n /**\n * @returns boolean indicating whether an element with the specified key exists or not.\n */\n has(key: K): boolean;\n /**\n * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.\n */\n set(key: K, value: V): this;\n /**\n * @returns the number of elements in the Map.\n */\n readonly size: number;\n}\n\ninterface MapConstructor {\n new (): Map;\n new (entries?: readonly (readonly [K, V])[] | null): Map;\n readonly prototype: Map;\n}\ndeclare var Map: MapConstructor;\n\ninterface ReadonlyMap {\n forEach(callbackfn: (value: V, key: K, map: ReadonlyMap) => void, thisArg?: any): void;\n get(key: K): V | undefined;\n has(key: K): boolean;\n readonly size: number;\n}\n\ninterface WeakMap {\n /**\n * Removes the specified element from the WeakMap.\n * @returns true if the element was successfully removed, or false if it was not present.\n */\n delete(key: K): boolean;\n /**\n * @returns a specified element.\n */\n get(key: K): V | undefined;\n /**\n * @returns a boolean indicating whether an element with the specified key exists or not.\n */\n has(key: K): boolean;\n /**\n * Adds a new element with a specified key and value.\n * @param key Must be an object or symbol.\n */\n set(key: K, value: V): this;\n}\n\ninterface WeakMapConstructor {\n new (entries?: readonly (readonly [K, V])[] | null): WeakMap;\n readonly prototype: WeakMap;\n}\ndeclare var WeakMap: WeakMapConstructor;\n\ninterface Set {\n /**\n * Appends a new element with a specified value to the end of the Set.\n */\n add(value: T): this;\n\n clear(): void;\n /**\n * Removes a specified value from the Set.\n * @returns Returns true if an element in the Set existed and has been removed, or false if the element does not exist.\n */\n delete(value: T): boolean;\n /**\n * Executes a provided function once per each value in the Set object, in insertion order.\n */\n forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: any): void;\n /**\n * @returns a boolean indicating whether an element with the specified value exists in the Set or not.\n */\n has(value: T): boolean;\n /**\n * @returns the number of (unique) elements in Set.\n */\n readonly size: number;\n}\n\ninterface SetConstructor {\n new (values?: readonly T[] | null): Set;\n readonly prototype: Set;\n}\ndeclare var Set: SetConstructor;\n\ninterface ReadonlySet {\n forEach(callbackfn: (value: T, value2: T, set: ReadonlySet) => void, thisArg?: any): void;\n has(value: T): boolean;\n readonly size: number;\n}\n\ninterface WeakSet {\n /**\n * Appends a new value to the end of the WeakSet.\n */\n add(value: T): this;\n /**\n * Removes the specified element from the WeakSet.\n * @returns Returns true if the element existed and has been removed, or false if the element does not exist.\n */\n delete(value: T): boolean;\n /**\n * @returns a boolean indicating whether a value exists in the WeakSet or not.\n */\n has(value: T): boolean;\n}\n\ninterface WeakSetConstructor {\n new (values?: readonly T[] | null): WeakSet;\n readonly prototype: WeakSet;\n}\ndeclare var WeakSet: WeakSetConstructor;\n", + "lib.dom.iterable.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Window Iterable APIs\n/////////////////////////////\n\ninterface AudioParam {\n /**\n * The **`setValueCurveAtTime()`** method of the following a curve defined by a list of values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime)\n */\n setValueCurveAtTime(values: Iterable, startTime: number, duration: number): AudioParam;\n}\n\ninterface AudioParamMap extends ReadonlyMap {\n}\n\ninterface BaseAudioContext {\n /**\n * The **`createIIRFilter()`** method of the BaseAudioContext interface creates an IIRFilterNode, which represents a general **infinite impulse response** (IIR) filter which can be configured to serve as various types of filter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter)\n */\n createIIRFilter(feedforward: Iterable, feedback: Iterable): IIRFilterNode;\n /**\n * The `createPeriodicWave()` method of the BaseAudioContext interface is used to create a PeriodicWave.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave)\n */\n createPeriodicWave(real: Iterable, imag: Iterable, constraints?: PeriodicWaveConstraints): PeriodicWave;\n}\n\ninterface CSSKeyframesRule {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface CSSNumericArray {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSNumericValue]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface CSSRuleList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface CSSStyleDeclaration {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface CSSTransformValue {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSTransformComponent]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface CSSUnparsedValue {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, CSSUnparsedSegment]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface Cache {\n /**\n * The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)\n */\n addAll(requests: Iterable): Promise;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: Iterable): void;\n}\n\ninterface CookieStoreManager {\n /**\n * The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)\n */\n subscribe(subscriptions: Iterable): Promise;\n /**\n * The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)\n */\n unsubscribe(subscriptions: Iterable): Promise;\n}\n\ninterface CustomStateSet extends Set {\n}\n\ninterface DOMRectList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface DOMStringList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface DOMTokenList {\n [Symbol.iterator](): ArrayIterator;\n entries(): ArrayIterator<[number, string]>;\n keys(): ArrayIterator;\n values(): ArrayIterator;\n}\n\ninterface DataTransferItemList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface EventCounts extends ReadonlyMap {\n}\n\ninterface FileList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface FontFaceSet extends Set {\n}\n\ninterface FormDataIterator extends IteratorObject {\n [Symbol.iterator](): FormDataIterator;\n}\n\ninterface FormData {\n [Symbol.iterator](): FormDataIterator<[string, FormDataEntryValue]>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): FormDataIterator<[string, FormDataEntryValue]>;\n /** Returns a list of keys in the list. */\n keys(): FormDataIterator;\n /** Returns a list of values in the list. */\n values(): FormDataIterator;\n}\n\ninterface HTMLAllCollection {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface HTMLCollectionBase {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface HTMLCollectionOf {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface HTMLFormElement {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface HTMLSelectElement {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface HeadersIterator extends IteratorObject {\n [Symbol.iterator](): HeadersIterator;\n}\n\ninterface Headers {\n [Symbol.iterator](): HeadersIterator<[string, string]>;\n /** Returns an iterator allowing to go through all key/value pairs contained in this object. */\n entries(): HeadersIterator<[string, string]>;\n /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */\n keys(): HeadersIterator;\n /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */\n values(): HeadersIterator;\n}\n\ninterface Highlight extends Set {\n}\n\ninterface HighlightRegistry extends Map {\n}\n\ninterface IDBDatabase {\n /**\n * The **`transaction`** method of the IDBDatabase interface immediately returns a transaction object (IDBTransaction) containing the IDBTransaction.objectStore method, which you can use to access your object store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | Iterable, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n}\n\ninterface IDBObjectStore {\n /**\n * The **`createIndex()`** method of the field/column defining a new data point for each database record to contain.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | Iterable, options?: IDBIndexParameters): IDBIndex;\n}\n\ninterface ImageTrackList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface MIDIInputMap extends ReadonlyMap {\n}\n\ninterface MIDIOutput {\n /**\n * The **`send()`** method of the MIDIOutput interface queues messages for the corresponding MIDI port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/send)\n */\n send(data: Iterable, timestamp?: DOMHighResTimeStamp): void;\n}\n\ninterface MIDIOutputMap extends ReadonlyMap {\n}\n\ninterface MediaKeyStatusMapIterator extends IteratorObject {\n [Symbol.iterator](): MediaKeyStatusMapIterator;\n}\n\ninterface MediaKeyStatusMap {\n [Symbol.iterator](): MediaKeyStatusMapIterator<[BufferSource, MediaKeyStatus]>;\n entries(): MediaKeyStatusMapIterator<[BufferSource, MediaKeyStatus]>;\n keys(): MediaKeyStatusMapIterator;\n values(): MediaKeyStatusMapIterator;\n}\n\ninterface MediaList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface MessageEvent {\n /** @deprecated */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable): void;\n}\n\ninterface MimeTypeArray {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface NamedNodeMap {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface Navigator {\n /**\n * The **`requestMediaKeySystemAccess()`** method of the Navigator interface returns a Promise which delivers a MediaKeySystemAccess object that can be used to access a particular media key system, which can in turn be used to create keys for decrypting a media stream.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMediaKeySystemAccess)\n */\n requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable): Promise;\n /**\n * The **`vibrate()`** method of the Navigator interface pulses the vibration hardware on the device, if such hardware exists.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vibrate)\n */\n vibrate(pattern: Iterable): boolean;\n}\n\ninterface NodeList {\n [Symbol.iterator](): ArrayIterator;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): ArrayIterator<[number, Node]>;\n /** Returns an list of keys in the list. */\n keys(): ArrayIterator;\n /** Returns an list of values in the list. */\n values(): ArrayIterator;\n}\n\ninterface NodeListOf {\n [Symbol.iterator](): ArrayIterator;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): ArrayIterator<[number, TNode]>;\n /** Returns an list of keys in the list. */\n keys(): ArrayIterator;\n /** Returns an list of values in the list. */\n values(): ArrayIterator;\n}\n\ninterface Plugin {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface PluginArray {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface RTCRtpTransceiver {\n /**\n * The **`setCodecPreferences()`** method of the RTCRtpTransceiver interface is used to set the codecs that the transceiver allows for decoding _received_ data, in order of decreasing preference.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/setCodecPreferences)\n */\n setCodecPreferences(codecs: Iterable): void;\n}\n\ninterface RTCStatsReport extends ReadonlyMap {\n}\n\ninterface SVGLengthList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SVGNumberList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SVGPointList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SVGStringList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SVGTransformList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SourceBufferList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SpeechRecognitionResult {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SpeechRecognitionResultList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface StylePropertyMapReadOnlyIterator extends IteratorObject {\n [Symbol.iterator](): StylePropertyMapReadOnlyIterator;\n}\n\ninterface StylePropertyMapReadOnly {\n [Symbol.iterator](): StylePropertyMapReadOnlyIterator<[string, Iterable]>;\n entries(): StylePropertyMapReadOnlyIterator<[string, Iterable]>;\n keys(): StylePropertyMapReadOnlyIterator;\n values(): StylePropertyMapReadOnlyIterator>;\n}\n\ninterface StyleSheetList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface SubtleCrypto {\n /**\n * The **`deriveKey()`** method of the SubtleCrypto interface can be used to derive a secret key from a master key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)\n */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`generateKey()`** method of the SubtleCrypto interface is used to generate a new key (for symmetric algorithms) or key pair (for public-key algorithms).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)\n */\n generateKey(algorithm: \"Ed25519\" | { name: \"Ed25519\" }, extractable: boolean, keyUsages: ReadonlyArray<\"sign\" | \"verify\">): Promise;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`importKey()`** method of the SubtleCrypto interface imports a key: that is, it takes as input a key in an external, portable format and gives you a CryptoKey object that you can use in the Web Crypto API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)\n */\n importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise;\n importKey(format: Exclude, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable): Promise;\n /**\n * The **`unwrapKey()`** method of the SubtleCrypto interface 'unwraps' a key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey)\n */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable): Promise;\n}\n\ninterface TextTrackCueList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface TextTrackList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface TouchList {\n [Symbol.iterator](): ArrayIterator;\n}\n\ninterface URLSearchParamsIterator extends IteratorObject {\n [Symbol.iterator](): URLSearchParamsIterator;\n}\n\ninterface URLSearchParams {\n [Symbol.iterator](): URLSearchParamsIterator<[string, string]>;\n /** Returns an array of key, value pairs for every entry in the search params. */\n entries(): URLSearchParamsIterator<[string, string]>;\n /** Returns a list of keys in the search params. */\n keys(): URLSearchParamsIterator;\n /** Returns a list of values in the search params. */\n values(): URLSearchParamsIterator;\n}\n\ninterface ViewTransitionTypeSet extends Set {\n}\n\ninterface WEBGL_draw_buffers {\n /**\n * The **`WEBGL_draw_buffers.drawBuffersWEBGL()`** method is part of the WebGL API and allows you to define the draw buffers to which all fragment colors are written.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL)\n */\n drawBuffersWEBGL(buffers: Iterable): void;\n}\n\ninterface WEBGL_multi_draw {\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL)\n */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: number, countsList: Int32Array | Iterable, countsOffset: number, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawArraysWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL)\n */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: number, countsList: Int32Array | Iterable, countsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL)\n */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: number, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: number, drawcount: GLsizei): void;\n /**\n * The **`WEBGL_multi_draw.multiDrawElementsWEBGL()`** method of the WebGL API renders multiple primitives from array data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL)\n */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: number, drawcount: GLsizei): void;\n}\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: Iterable): GLuint[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: Iterable, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable, bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Iterable): void;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable, srcOffset?: number, srcLength?: GLuint): void;\n}\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Iterable): void;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable): void;\n}\n", + "lib.dom.d.ts": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Window APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n}\n\ninterface AddressErrors {\n addressLine?: string;\n city?: string;\n country?: string;\n dependentLocality?: string;\n organization?: string;\n phone?: string;\n postalCode?: string;\n recipient?: string;\n region?: string;\n sortingCode?: string;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n additionalData?: BufferSource;\n iv: BufferSource;\n tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AnalyserOptions extends AudioNodeOptions {\n fftSize?: number;\n maxDecibels?: number;\n minDecibels?: number;\n smoothingTimeConstant?: number;\n}\n\ninterface AnimationEventInit extends EventInit {\n animationName?: string;\n elapsedTime?: number;\n pseudoElement?: string;\n}\n\ninterface AnimationPlaybackEventInit extends EventInit {\n currentTime?: CSSNumberish | null;\n timelineTime?: CSSNumberish | null;\n}\n\ninterface AssignedNodesOptions {\n flatten?: boolean;\n}\n\ninterface AudioBufferOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface AudioBufferSourceOptions {\n buffer?: AudioBuffer | null;\n detune?: number;\n loop?: boolean;\n loopEnd?: number;\n loopStart?: number;\n playbackRate?: number;\n}\n\ninterface AudioConfiguration {\n bitrate?: number;\n channels?: string;\n contentType: string;\n samplerate?: number;\n spatialRendering?: boolean;\n}\n\ninterface AudioContextOptions {\n latencyHint?: AudioContextLatencyCategory | number;\n sampleRate?: number;\n}\n\ninterface AudioDataCopyToOptions {\n format?: AudioSampleFormat;\n frameCount?: number;\n frameOffset?: number;\n planeIndex: number;\n}\n\ninterface AudioDataInit {\n data: BufferSource;\n format: AudioSampleFormat;\n numberOfChannels: number;\n numberOfFrames: number;\n sampleRate: number;\n timestamp: number;\n transfer?: ArrayBuffer[];\n}\n\ninterface AudioDecoderConfig {\n codec: string;\n description?: AllowSharedBufferSource;\n numberOfChannels: number;\n sampleRate: number;\n}\n\ninterface AudioDecoderInit {\n error: WebCodecsErrorCallback;\n output: AudioDataOutputCallback;\n}\n\ninterface AudioDecoderSupport {\n config?: AudioDecoderConfig;\n supported?: boolean;\n}\n\ninterface AudioEncoderConfig {\n bitrate?: number;\n bitrateMode?: BitrateMode;\n codec: string;\n numberOfChannels: number;\n opus?: OpusEncoderConfig;\n sampleRate: number;\n}\n\ninterface AudioEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedAudioChunkOutputCallback;\n}\n\ninterface AudioEncoderSupport {\n config?: AudioEncoderConfig;\n supported?: boolean;\n}\n\ninterface AudioNodeOptions {\n channelCount?: number;\n channelCountMode?: ChannelCountMode;\n channelInterpretation?: ChannelInterpretation;\n}\n\ninterface AudioProcessingEventInit extends EventInit {\n inputBuffer: AudioBuffer;\n outputBuffer: AudioBuffer;\n playbackTime: number;\n}\n\ninterface AudioTimestamp {\n contextTime?: number;\n performanceTime?: DOMHighResTimeStamp;\n}\n\ninterface AudioWorkletNodeOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n numberOfOutputs?: number;\n outputChannelCount?: number[];\n parameterData?: Record;\n processorOptions?: any;\n}\n\ninterface AuthenticationExtensionsClientInputs {\n appid?: string;\n credProps?: boolean;\n credentialProtectionPolicy?: string;\n enforceCredentialProtectionPolicy?: boolean;\n hmacCreateSecret?: boolean;\n largeBlob?: AuthenticationExtensionsLargeBlobInputs;\n minPinLength?: boolean;\n prf?: AuthenticationExtensionsPRFInputs;\n}\n\ninterface AuthenticationExtensionsClientInputsJSON {\n appid?: string;\n credProps?: boolean;\n largeBlob?: AuthenticationExtensionsLargeBlobInputsJSON;\n prf?: AuthenticationExtensionsPRFInputsJSON;\n}\n\ninterface AuthenticationExtensionsClientOutputs {\n appid?: boolean;\n credProps?: CredentialPropertiesOutput;\n hmacCreateSecret?: boolean;\n largeBlob?: AuthenticationExtensionsLargeBlobOutputs;\n prf?: AuthenticationExtensionsPRFOutputs;\n}\n\ninterface AuthenticationExtensionsLargeBlobInputs {\n read?: boolean;\n support?: string;\n write?: BufferSource;\n}\n\ninterface AuthenticationExtensionsLargeBlobInputsJSON {\n read?: boolean;\n support?: string;\n write?: Base64URLString;\n}\n\ninterface AuthenticationExtensionsLargeBlobOutputs {\n blob?: ArrayBuffer;\n supported?: boolean;\n written?: boolean;\n}\n\ninterface AuthenticationExtensionsPRFInputs {\n eval?: AuthenticationExtensionsPRFValues;\n evalByCredential?: Record;\n}\n\ninterface AuthenticationExtensionsPRFInputsJSON {\n eval?: AuthenticationExtensionsPRFValuesJSON;\n evalByCredential?: Record;\n}\n\ninterface AuthenticationExtensionsPRFOutputs {\n enabled?: boolean;\n results?: AuthenticationExtensionsPRFValues;\n}\n\ninterface AuthenticationExtensionsPRFValues {\n first: BufferSource;\n second?: BufferSource;\n}\n\ninterface AuthenticationExtensionsPRFValuesJSON {\n first: Base64URLString;\n second?: Base64URLString;\n}\n\ninterface AuthenticatorSelectionCriteria {\n authenticatorAttachment?: AuthenticatorAttachment;\n requireResidentKey?: boolean;\n residentKey?: ResidentKeyRequirement;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface AvcEncoderConfig {\n format?: AvcBitstreamFormat;\n}\n\ninterface BiquadFilterOptions extends AudioNodeOptions {\n Q?: number;\n detune?: number;\n frequency?: number;\n gain?: number;\n type?: BiquadFilterType;\n}\n\ninterface BlobEventInit extends EventInit {\n data: Blob;\n timecode?: DOMHighResTimeStamp;\n}\n\ninterface BlobPropertyBag {\n endings?: EndingType;\n type?: string;\n}\n\ninterface CSSMatrixComponentOptions {\n is2D?: boolean;\n}\n\ninterface CSSNumericType {\n angle?: number;\n flex?: number;\n frequency?: number;\n length?: number;\n percent?: number;\n percentHint?: CSSNumericBaseType;\n resolution?: number;\n time?: number;\n}\n\ninterface CSSStyleSheetInit {\n baseURL?: string;\n disabled?: boolean;\n media?: MediaList | string;\n}\n\ninterface CacheQueryOptions {\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface CanvasRenderingContext2DSettings {\n alpha?: boolean;\n colorSpace?: PredefinedColorSpace;\n desynchronized?: boolean;\n willReadFrequently?: boolean;\n}\n\ninterface CaretPositionFromPointOptions {\n shadowRoots?: ShadowRoot[];\n}\n\ninterface ChannelMergerOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n}\n\ninterface ChannelSplitterOptions extends AudioNodeOptions {\n numberOfOutputs?: number;\n}\n\ninterface CheckVisibilityOptions {\n checkOpacity?: boolean;\n checkVisibilityCSS?: boolean;\n contentVisibilityAuto?: boolean;\n opacityProperty?: boolean;\n visibilityProperty?: boolean;\n}\n\ninterface ClientQueryOptions {\n includeUncontrolled?: boolean;\n type?: ClientTypes;\n}\n\ninterface ClipboardEventInit extends EventInit {\n clipboardData?: DataTransfer | null;\n}\n\ninterface ClipboardItemOptions {\n presentationStyle?: PresentationStyle;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CompositionEventInit extends UIEventInit {\n data?: string;\n}\n\ninterface ComputedEffectTiming extends EffectTiming {\n activeDuration?: CSSNumberish;\n currentIteration?: number | null;\n endTime?: CSSNumberish;\n localTime?: CSSNumberish | null;\n progress?: number | null;\n startTime?: CSSNumberish;\n}\n\ninterface ComputedKeyframe {\n composite: CompositeOperationOrAuto;\n computedOffset: number;\n easing: string;\n offset: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface ConstantSourceOptions {\n offset?: number;\n}\n\ninterface ConstrainBooleanParameters {\n exact?: boolean;\n ideal?: boolean;\n}\n\ninterface ConstrainDOMStringParameters {\n exact?: string | string[];\n ideal?: string | string[];\n}\n\ninterface ConstrainDoubleRange extends DoubleRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConstrainULongRange extends ULongRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ContentVisibilityAutoStateChangeEventInit extends EventInit {\n skipped?: boolean;\n}\n\ninterface ConvolverOptions extends AudioNodeOptions {\n buffer?: AudioBuffer | null;\n disableNormalization?: boolean;\n}\n\ninterface CookieChangeEventInit extends EventInit {\n changed?: CookieList;\n deleted?: CookieList;\n}\n\ninterface CookieInit {\n domain?: string | null;\n expires?: DOMHighResTimeStamp | null;\n name: string;\n partitioned?: boolean;\n path?: string;\n sameSite?: CookieSameSite;\n value: string;\n}\n\ninterface CookieListItem {\n name?: string;\n value?: string;\n}\n\ninterface CookieStoreDeleteOptions {\n domain?: string | null;\n name: string;\n partitioned?: boolean;\n path?: string;\n}\n\ninterface CookieStoreGetOptions {\n name?: string;\n url?: string;\n}\n\ninterface CredentialCreationOptions {\n publicKey?: PublicKeyCredentialCreationOptions;\n signal?: AbortSignal;\n}\n\ninterface CredentialPropertiesOutput {\n rk?: boolean;\n}\n\ninterface CredentialRequestOptions {\n mediation?: CredentialMediationRequirement;\n publicKey?: PublicKeyCredentialRequestOptions;\n signal?: AbortSignal;\n}\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ninterface CustomEventInit extends EventInit {\n detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n a?: number;\n b?: number;\n c?: number;\n d?: number;\n e?: number;\n f?: number;\n m11?: number;\n m12?: number;\n m21?: number;\n m22?: number;\n m41?: number;\n m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n is2D?: boolean;\n m13?: number;\n m14?: number;\n m23?: number;\n m24?: number;\n m31?: number;\n m32?: number;\n m33?: number;\n m34?: number;\n m43?: number;\n m44?: number;\n}\n\ninterface DOMPointInit {\n w?: number;\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DOMQuadInit {\n p1?: DOMPointInit;\n p2?: DOMPointInit;\n p3?: DOMPointInit;\n p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n height?: number;\n width?: number;\n x?: number;\n y?: number;\n}\n\ninterface DelayOptions extends AudioNodeOptions {\n delayTime?: number;\n maxDelayTime?: number;\n}\n\ninterface DeviceMotionEventAccelerationInit {\n x?: number | null;\n y?: number | null;\n z?: number | null;\n}\n\ninterface DeviceMotionEventInit extends EventInit {\n acceleration?: DeviceMotionEventAccelerationInit;\n accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;\n interval?: number;\n rotationRate?: DeviceMotionEventRotationRateInit;\n}\n\ninterface DeviceMotionEventRotationRateInit {\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DeviceOrientationEventInit extends EventInit {\n absolute?: boolean;\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DisplayMediaStreamOptions {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface DocumentTimelineOptions {\n originTime?: DOMHighResTimeStamp;\n}\n\ninterface DoubleRange {\n max?: number;\n min?: number;\n}\n\ninterface DragEventInit extends MouseEventInit {\n dataTransfer?: DataTransfer | null;\n}\n\ninterface DynamicsCompressorOptions extends AudioNodeOptions {\n attack?: number;\n knee?: number;\n ratio?: number;\n release?: number;\n threshold?: number;\n}\n\ninterface EcKeyAlgorithm extends KeyAlgorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface EffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | CSSNumericValue | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface ElementCreationOptions {\n customElementRegistry?: CustomElementRegistry;\n is?: string;\n}\n\ninterface ElementDefinitionOptions {\n extends?: string;\n}\n\ninterface EncodedAudioChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n transfer?: ArrayBuffer[];\n type: EncodedAudioChunkType;\n}\n\ninterface EncodedAudioChunkMetadata {\n decoderConfig?: AudioDecoderConfig;\n}\n\ninterface EncodedVideoChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n type: EncodedVideoChunkType;\n}\n\ninterface EncodedVideoChunkMetadata {\n decoderConfig?: VideoDecoderConfig;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface EventModifierInit extends UIEventInit {\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n modifierAltGraph?: boolean;\n modifierCapsLock?: boolean;\n modifierFn?: boolean;\n modifierFnLock?: boolean;\n modifierHyper?: boolean;\n modifierNumLock?: boolean;\n modifierScrollLock?: boolean;\n modifierSuper?: boolean;\n modifierSymbol?: boolean;\n modifierSymbolLock?: boolean;\n shiftKey?: boolean;\n}\n\ninterface EventSourceInit {\n withCredentials?: boolean;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n lastModified?: number;\n}\n\ninterface FileSystemCreateWritableOptions {\n keepExistingData?: boolean;\n}\n\ninterface FileSystemFlags {\n create?: boolean;\n exclusive?: boolean;\n}\n\ninterface FileSystemGetDirectoryOptions {\n create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n create?: boolean;\n}\n\ninterface FileSystemRemoveOptions {\n recursive?: boolean;\n}\n\ninterface FocusEventInit extends UIEventInit {\n relatedTarget?: EventTarget | null;\n}\n\ninterface FocusOptions {\n preventScroll?: boolean;\n}\n\ninterface FontFaceDescriptors {\n ascentOverride?: string;\n descentOverride?: string;\n display?: FontDisplay;\n featureSettings?: string;\n lineGapOverride?: string;\n stretch?: string;\n style?: string;\n unicodeRange?: string;\n weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n fontfaces?: FontFace[];\n}\n\ninterface FormDataEventInit extends EventInit {\n formData: FormData;\n}\n\ninterface FullscreenOptions {\n navigationUI?: FullscreenNavigationUI;\n}\n\ninterface GainOptions extends AudioNodeOptions {\n gain?: number;\n}\n\ninterface GamepadEffectParameters {\n duration?: number;\n leftTrigger?: number;\n rightTrigger?: number;\n startDelay?: number;\n strongMagnitude?: number;\n weakMagnitude?: number;\n}\n\ninterface GamepadEventInit extends EventInit {\n gamepad: Gamepad;\n}\n\ninterface GetAnimationsOptions {\n subtree?: boolean;\n}\n\ninterface GetComposedRangesOptions {\n shadowRoots?: ShadowRoot[];\n}\n\ninterface GetHTMLOptions {\n serializableShadowRoots?: boolean;\n shadowRoots?: ShadowRoot[];\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface GetRootNodeOptions {\n composed?: boolean;\n}\n\ninterface HashChangeEventInit extends EventInit {\n newURL?: string;\n oldURL?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n info: BufferSource;\n salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\n hash: KeyAlgorithm;\n length: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface IDBDatabaseInfo {\n name?: string;\n version?: number;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n newVersion?: number | null;\n oldVersion?: number;\n}\n\ninterface IIRFilterOptions extends AudioNodeOptions {\n feedback: number[];\n feedforward: number[];\n}\n\ninterface IdleRequestOptions {\n timeout?: number;\n}\n\ninterface ImageBitmapOptions {\n colorSpaceConversion?: ColorSpaceConversion;\n imageOrientation?: ImageOrientation;\n premultiplyAlpha?: PremultiplyAlpha;\n resizeHeight?: number;\n resizeQuality?: ResizeQuality;\n resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImageDecodeOptions {\n completeFramesOnly?: boolean;\n frameIndex?: number;\n}\n\ninterface ImageDecodeResult {\n complete: boolean;\n image: VideoFrame;\n}\n\ninterface ImageDecoderInit {\n colorSpaceConversion?: ColorSpaceConversion;\n data: ImageBufferSource;\n desiredHeight?: number;\n desiredWidth?: number;\n preferAnimation?: boolean;\n transfer?: ArrayBuffer[];\n type: string;\n}\n\ninterface ImageEncodeOptions {\n quality?: number;\n type?: string;\n}\n\ninterface ImportNodeOptions {\n customElementRegistry?: CustomElementRegistry;\n selfOnly?: boolean;\n}\n\ninterface InputEventInit extends UIEventInit {\n data?: string | null;\n dataTransfer?: DataTransfer | null;\n inputType?: string;\n isComposing?: boolean;\n targetRanges?: StaticRange[];\n}\n\ninterface IntersectionObserverInit {\n root?: Element | Document | null;\n rootMargin?: string;\n threshold?: number | number[];\n}\n\ninterface JsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\ninterface KeyAlgorithm {\n name: string;\n}\n\ninterface KeySystemTrackConfiguration {\n robustness?: string;\n}\n\ninterface KeyboardEventInit extends EventModifierInit {\n /** @deprecated */\n charCode?: number;\n code?: string;\n isComposing?: boolean;\n key?: string;\n /** @deprecated */\n keyCode?: number;\n location?: number;\n repeat?: boolean;\n}\n\ninterface Keyframe {\n composite?: CompositeOperationOrAuto;\n easing?: string;\n offset?: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface KeyframeAnimationOptions extends KeyframeEffectOptions {\n id?: string;\n timeline?: AnimationTimeline | null;\n}\n\ninterface KeyframeEffectOptions extends EffectTiming {\n composite?: CompositeOperation;\n iterationComposite?: IterationCompositeOperation;\n pseudoElement?: string | null;\n}\n\ninterface LockInfo {\n clientId?: string;\n mode?: LockMode;\n name?: string;\n}\n\ninterface LockManagerSnapshot {\n held?: LockInfo[];\n pending?: LockInfo[];\n}\n\ninterface LockOptions {\n ifAvailable?: boolean;\n mode?: LockMode;\n signal?: AbortSignal;\n steal?: boolean;\n}\n\ninterface MIDIConnectionEventInit extends EventInit {\n port?: MIDIPort;\n}\n\ninterface MIDIMessageEventInit extends EventInit {\n data?: Uint8Array;\n}\n\ninterface MIDIOptions {\n software?: boolean;\n sysex?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n keySystemAccess: MediaKeySystemAccess | null;\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n}\n\ninterface MediaCapabilitiesInfo {\n powerEfficient: boolean;\n smooth: boolean;\n supported: boolean;\n}\n\ninterface MediaCapabilitiesKeySystemConfiguration {\n audio?: KeySystemTrackConfiguration;\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataType?: string;\n keySystem: string;\n persistentState?: MediaKeysRequirement;\n sessionTypes?: string[];\n video?: KeySystemTrackConfiguration;\n}\n\ninterface MediaConfiguration {\n audio?: AudioConfiguration;\n video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n keySystemConfiguration?: MediaCapabilitiesKeySystemConfiguration;\n type: MediaDecodingType;\n}\n\ninterface MediaElementAudioSourceOptions {\n mediaElement: HTMLMediaElement;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n type: MediaEncodingType;\n}\n\ninterface MediaEncryptedEventInit extends EventInit {\n initData?: ArrayBuffer | null;\n initDataType?: string;\n}\n\ninterface MediaImage {\n sizes?: string;\n src: string;\n type?: string;\n}\n\ninterface MediaKeyMessageEventInit extends EventInit {\n message: ArrayBuffer;\n messageType: MediaKeyMessageType;\n}\n\ninterface MediaKeySystemConfiguration {\n audioCapabilities?: MediaKeySystemMediaCapability[];\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataTypes?: string[];\n label?: string;\n persistentState?: MediaKeysRequirement;\n sessionTypes?: string[];\n videoCapabilities?: MediaKeySystemMediaCapability[];\n}\n\ninterface MediaKeySystemMediaCapability {\n contentType?: string;\n encryptionScheme?: string | null;\n robustness?: string;\n}\n\ninterface MediaKeysPolicy {\n minHdcpVersion?: string;\n}\n\ninterface MediaMetadataInit {\n album?: string;\n artist?: string;\n artwork?: MediaImage[];\n title?: string;\n}\n\ninterface MediaPositionState {\n duration?: number;\n playbackRate?: number;\n position?: number;\n}\n\ninterface MediaQueryListEventInit extends EventInit {\n matches?: boolean;\n media?: string;\n}\n\ninterface MediaRecorderOptions {\n audioBitsPerSecond?: number;\n bitsPerSecond?: number;\n mimeType?: string;\n videoBitsPerSecond?: number;\n}\n\ninterface MediaSessionActionDetails {\n action: MediaSessionAction;\n fastSeek?: boolean;\n seekOffset?: number;\n seekTime?: number;\n}\n\ninterface MediaSettingsRange {\n max?: number;\n min?: number;\n step?: number;\n}\n\ninterface MediaStreamAudioSourceOptions {\n mediaStream: MediaStream;\n}\n\ninterface MediaStreamConstraints {\n audio?: boolean | MediaTrackConstraints;\n peerIdentity?: string;\n preferCurrentTab?: boolean;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface MediaStreamTrackEventInit extends EventInit {\n track: MediaStreamTrack;\n}\n\ninterface MediaTrackCapabilities {\n aspectRatio?: DoubleRange;\n autoGainControl?: boolean[];\n backgroundBlur?: boolean[];\n channelCount?: ULongRange;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean[];\n facingMode?: string[];\n frameRate?: DoubleRange;\n groupId?: string;\n height?: ULongRange;\n noiseSuppression?: boolean[];\n sampleRate?: ULongRange;\n sampleSize?: ULongRange;\n width?: ULongRange;\n}\n\ninterface MediaTrackConstraintSet {\n aspectRatio?: ConstrainDouble;\n autoGainControl?: ConstrainBoolean;\n backgroundBlur?: ConstrainBoolean;\n channelCount?: ConstrainULong;\n deviceId?: ConstrainDOMString;\n displaySurface?: ConstrainDOMString;\n echoCancellation?: ConstrainBoolean;\n facingMode?: ConstrainDOMString;\n frameRate?: ConstrainDouble;\n groupId?: ConstrainDOMString;\n height?: ConstrainULong;\n noiseSuppression?: ConstrainBoolean;\n sampleRate?: ConstrainULong;\n sampleSize?: ConstrainULong;\n width?: ConstrainULong;\n}\n\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\n advanced?: MediaTrackConstraintSet[];\n}\n\ninterface MediaTrackSettings {\n aspectRatio?: number;\n autoGainControl?: boolean;\n backgroundBlur?: boolean;\n channelCount?: number;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean;\n facingMode?: string;\n frameRate?: number;\n groupId?: string;\n height?: number;\n noiseSuppression?: boolean;\n sampleRate?: number;\n sampleSize?: number;\n torch?: boolean;\n whiteBalanceMode?: string;\n width?: number;\n zoom?: number;\n}\n\ninterface MediaTrackSupportedConstraints {\n aspectRatio?: boolean;\n autoGainControl?: boolean;\n backgroundBlur?: boolean;\n channelCount?: boolean;\n deviceId?: boolean;\n displaySurface?: boolean;\n echoCancellation?: boolean;\n facingMode?: boolean;\n frameRate?: boolean;\n groupId?: boolean;\n height?: boolean;\n noiseSuppression?: boolean;\n sampleRate?: boolean;\n sampleSize?: boolean;\n width?: boolean;\n}\n\ninterface MessageEventInit extends EventInit {\n data?: T;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: MessageEventSource | null;\n}\n\ninterface MouseEventInit extends EventModifierInit {\n button?: number;\n buttons?: number;\n clientX?: number;\n clientY?: number;\n movementX?: number;\n movementY?: number;\n relatedTarget?: EventTarget | null;\n screenX?: number;\n screenY?: number;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n cacheName?: string;\n}\n\ninterface MutationObserverInit {\n /** Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. */\n attributeFilter?: string[];\n /** Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. */\n attributeOldValue?: boolean;\n /** Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */\n attributes?: boolean;\n /** Set to true if mutations to target's data are to be observed. Can be omitted if characterDataOldValue is specified. */\n characterData?: boolean;\n /** Set to true if characterData is set to true or omitted and target's data before the mutation needs to be recorded. */\n characterDataOldValue?: boolean;\n /** Set to true if mutations to target's children are to be observed. */\n childList?: boolean;\n /** Set to true if mutations to not just target, but also target's descendants are to be observed. */\n subtree?: boolean;\n}\n\ninterface NavigationPreloadState {\n enabled?: boolean;\n headerValue?: string;\n}\n\ninterface NotificationOptions {\n badge?: string;\n body?: string;\n data?: any;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n requireInteraction?: boolean;\n silent?: boolean | null;\n tag?: string;\n}\n\ninterface OfflineAudioCompletionEventInit extends EventInit {\n renderedBuffer: AudioBuffer;\n}\n\ninterface OfflineAudioContextOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface OptionalEffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface OpusEncoderConfig {\n complexity?: number;\n format?: OpusBitstreamFormat;\n frameDuration?: number;\n packetlossperc?: number;\n usedtx?: boolean;\n useinbandfec?: boolean;\n}\n\ninterface OscillatorOptions extends AudioNodeOptions {\n detune?: number;\n frequency?: number;\n periodicWave?: PeriodicWave;\n type?: OscillatorType;\n}\n\ninterface PageRevealEventInit extends EventInit {\n viewTransition?: ViewTransition | null;\n}\n\ninterface PageSwapEventInit extends EventInit {\n activation?: NavigationActivation | null;\n viewTransition?: ViewTransition | null;\n}\n\ninterface PageTransitionEventInit extends EventInit {\n persisted?: boolean;\n}\n\ninterface PannerOptions extends AudioNodeOptions {\n coneInnerAngle?: number;\n coneOuterAngle?: number;\n coneOuterGain?: number;\n distanceModel?: DistanceModelType;\n maxDistance?: number;\n orientationX?: number;\n orientationY?: number;\n orientationZ?: number;\n panningModel?: PanningModelType;\n positionX?: number;\n positionY?: number;\n positionZ?: number;\n refDistance?: number;\n rolloffFactor?: number;\n}\n\ninterface PayerErrors {\n email?: string;\n name?: string;\n phone?: string;\n}\n\ninterface PaymentCurrencyAmount {\n currency: string;\n value: string;\n}\n\ninterface PaymentDetailsBase {\n displayItems?: PaymentItem[];\n modifiers?: PaymentDetailsModifier[];\n shippingOptions?: PaymentShippingOption[];\n}\n\ninterface PaymentDetailsInit extends PaymentDetailsBase {\n id?: string;\n total: PaymentItem;\n}\n\ninterface PaymentDetailsModifier {\n additionalDisplayItems?: PaymentItem[];\n data?: any;\n supportedMethods: string;\n total?: PaymentItem;\n}\n\ninterface PaymentDetailsUpdate extends PaymentDetailsBase {\n error?: string;\n paymentMethodErrors?: any;\n shippingAddressErrors?: AddressErrors;\n total?: PaymentItem;\n}\n\ninterface PaymentItem {\n amount: PaymentCurrencyAmount;\n label: string;\n pending?: boolean;\n}\n\ninterface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {\n methodDetails?: any;\n methodName?: string;\n}\n\ninterface PaymentMethodData {\n data?: any;\n supportedMethods: string;\n}\n\ninterface PaymentOptions {\n requestPayerEmail?: boolean;\n requestPayerName?: boolean;\n requestPayerPhone?: boolean;\n requestShipping?: boolean;\n shippingType?: PaymentShippingType;\n}\n\ninterface PaymentRequestUpdateEventInit extends EventInit {\n}\n\ninterface PaymentShippingOption {\n amount: PaymentCurrencyAmount;\n id: string;\n label: string;\n selected?: boolean;\n}\n\ninterface PaymentValidationErrors {\n error?: string;\n payer?: PayerErrors;\n shippingAddress?: AddressErrors;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n hash: HashAlgorithmIdentifier;\n iterations: number;\n salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n detail?: any;\n startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n detail?: any;\n duration?: DOMHighResTimeStamp;\n end?: string | DOMHighResTimeStamp;\n start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n buffered?: boolean;\n entryTypes?: string[];\n type?: string;\n}\n\ninterface PeriodicWaveConstraints {\n disableNormalization?: boolean;\n}\n\ninterface PeriodicWaveOptions extends PeriodicWaveConstraints {\n imag?: number[] | Float32Array;\n real?: number[] | Float32Array;\n}\n\ninterface PermissionDescriptor {\n name: PermissionName;\n}\n\ninterface PhotoCapabilities {\n fillLightMode?: FillLightMode[];\n imageHeight?: MediaSettingsRange;\n imageWidth?: MediaSettingsRange;\n redEyeReduction?: RedEyeReduction;\n}\n\ninterface PhotoSettings {\n fillLightMode?: FillLightMode;\n imageHeight?: number;\n imageWidth?: number;\n redEyeReduction?: boolean;\n}\n\ninterface PictureInPictureEventInit extends EventInit {\n pictureInPictureWindow: PictureInPictureWindow;\n}\n\ninterface PlaneLayout {\n offset: number;\n stride: number;\n}\n\ninterface PointerEventInit extends MouseEventInit {\n altitudeAngle?: number;\n azimuthAngle?: number;\n coalescedEvents?: PointerEvent[];\n height?: number;\n isPrimary?: boolean;\n pointerId?: number;\n pointerType?: string;\n predictedEvents?: PointerEvent[];\n pressure?: number;\n tangentialPressure?: number;\n tiltX?: number;\n tiltY?: number;\n twist?: number;\n width?: number;\n}\n\ninterface PointerLockOptions {\n unadjustedMovement?: boolean;\n}\n\ninterface PopStateEventInit extends EventInit {\n state?: any;\n}\n\ninterface PositionOptions {\n enableHighAccuracy?: boolean;\n maximumAge?: number;\n timeout?: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: Promise;\n reason?: any;\n}\n\ninterface PropertyDefinition {\n inherits: boolean;\n initialValue?: string;\n name: string;\n syntax?: string;\n}\n\ninterface PropertyIndexedKeyframes {\n composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];\n easing?: string | string[];\n offset?: number | (number | null)[];\n [property: string]: string | string[] | number | null | (number | null)[] | undefined;\n}\n\ninterface PublicKeyCredentialCreationOptions {\n attestation?: AttestationConveyancePreference;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: BufferSource;\n excludeCredentials?: PublicKeyCredentialDescriptor[];\n extensions?: AuthenticationExtensionsClientInputs;\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntity;\n}\n\ninterface PublicKeyCredentialCreationOptionsJSON {\n attestation?: string;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: Base64URLString;\n excludeCredentials?: PublicKeyCredentialDescriptorJSON[];\n extensions?: AuthenticationExtensionsClientInputsJSON;\n hints?: string[];\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntityJSON;\n}\n\ninterface PublicKeyCredentialDescriptor {\n id: BufferSource;\n transports?: AuthenticatorTransport[];\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialDescriptorJSON {\n id: Base64URLString;\n transports?: string[];\n type: string;\n}\n\ninterface PublicKeyCredentialEntity {\n name: string;\n}\n\ninterface PublicKeyCredentialParameters {\n alg: COSEAlgorithmIdentifier;\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialRequestOptions {\n allowCredentials?: PublicKeyCredentialDescriptor[];\n challenge: BufferSource;\n extensions?: AuthenticationExtensionsClientInputs;\n rpId?: string;\n timeout?: number;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface PublicKeyCredentialRequestOptionsJSON {\n allowCredentials?: PublicKeyCredentialDescriptorJSON[];\n challenge: Base64URLString;\n extensions?: AuthenticationExtensionsClientInputsJSON;\n hints?: string[];\n rpId?: string;\n timeout?: number;\n userVerification?: string;\n}\n\ninterface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {\n id?: string;\n}\n\ninterface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {\n displayName: string;\n id: BufferSource;\n}\n\ninterface PublicKeyCredentialUserEntityJSON {\n displayName: string;\n id: Base64URLString;\n name: string;\n}\n\ninterface PushSubscriptionJSON {\n endpoint?: string;\n expirationTime?: EpochTimeStamp | null;\n keys?: Record;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: BufferSource | string | null;\n userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy {\n highWaterMark?: number;\n size?: QueuingStrategySize;\n}\n\ninterface QueuingStrategyInit {\n /**\n * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n *\n * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n */\n highWaterMark: number;\n}\n\ninterface RTCAnswerOptions extends RTCOfferAnswerOptions {\n}\n\ninterface RTCCertificateExpiration {\n expires?: number;\n}\n\ninterface RTCConfiguration {\n bundlePolicy?: RTCBundlePolicy;\n certificates?: RTCCertificate[];\n iceCandidatePoolSize?: number;\n iceServers?: RTCIceServer[];\n iceTransportPolicy?: RTCIceTransportPolicy;\n rtcpMuxPolicy?: RTCRtcpMuxPolicy;\n}\n\ninterface RTCDTMFToneChangeEventInit extends EventInit {\n tone?: string;\n}\n\ninterface RTCDataChannelEventInit extends EventInit {\n channel: RTCDataChannel;\n}\n\ninterface RTCDataChannelInit {\n id?: number;\n maxPacketLifeTime?: number;\n maxRetransmits?: number;\n negotiated?: boolean;\n ordered?: boolean;\n protocol?: string;\n}\n\ninterface RTCDtlsFingerprint {\n algorithm?: string;\n value?: string;\n}\n\ninterface RTCEncodedAudioFrameMetadata extends RTCEncodedFrameMetadata {\n sequenceNumber?: number;\n}\n\ninterface RTCEncodedFrameMetadata {\n contributingSources?: number[];\n mimeType?: string;\n payloadType?: number;\n rtpTimestamp?: number;\n synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata extends RTCEncodedFrameMetadata {\n dependencies?: number[];\n frameId?: number;\n height?: number;\n spatialIndex?: number;\n temporalIndex?: number;\n timestamp?: number;\n width?: number;\n}\n\ninterface RTCErrorEventInit extends EventInit {\n error: RTCError;\n}\n\ninterface RTCErrorInit {\n errorDetail: RTCErrorDetailType;\n httpRequestStatusCode?: number;\n receivedAlert?: number;\n sctpCauseCode?: number;\n sdpLineNumber?: number;\n sentAlert?: number;\n}\n\ninterface RTCIceCandidateInit {\n candidate?: string;\n sdpMLineIndex?: number | null;\n sdpMid?: string | null;\n usernameFragment?: string | null;\n}\n\ninterface RTCIceCandidatePairStats extends RTCStats {\n availableIncomingBitrate?: number;\n availableOutgoingBitrate?: number;\n bytesDiscardedOnSend?: number;\n bytesReceived?: number;\n bytesSent?: number;\n consentRequestsSent?: number;\n currentRoundTripTime?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n lastPacketSentTimestamp?: DOMHighResTimeStamp;\n localCandidateId: string;\n nominated?: boolean;\n packetsDiscardedOnSend?: number;\n packetsReceived?: number;\n packetsSent?: number;\n remoteCandidateId: string;\n requestsReceived?: number;\n requestsSent?: number;\n responsesReceived?: number;\n responsesSent?: number;\n state: RTCStatsIceCandidatePairState;\n totalRoundTripTime?: number;\n transportId: string;\n}\n\ninterface RTCIceServer {\n credential?: string;\n urls: string | string[];\n username?: string;\n}\n\ninterface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {\n audioLevel?: number;\n bytesReceived?: number;\n concealedSamples?: number;\n concealmentEvents?: number;\n decoderImplementation?: string;\n estimatedPlayoutTimestamp?: DOMHighResTimeStamp;\n fecBytesReceived?: number;\n fecPacketsDiscarded?: number;\n fecPacketsReceived?: number;\n fecSsrc?: number;\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesAssembledFromMultiplePackets?: number;\n framesDecoded?: number;\n framesDropped?: number;\n framesPerSecond?: number;\n framesReceived?: number;\n framesRendered?: number;\n freezeCount?: number;\n headerBytesReceived?: number;\n insertedSamplesForDeceleration?: number;\n jitterBufferDelay?: number;\n jitterBufferEmittedCount?: number;\n jitterBufferMinimumDelay?: number;\n jitterBufferTargetDelay?: number;\n keyFramesDecoded?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n mid?: string;\n nackCount?: number;\n packetsDiscarded?: number;\n pauseCount?: number;\n playoutId?: string;\n pliCount?: number;\n qpSum?: number;\n remoteId?: string;\n removedSamplesForAcceleration?: number;\n retransmittedBytesReceived?: number;\n retransmittedPacketsReceived?: number;\n rtxSsrc?: number;\n silentConcealedSamples?: number;\n totalAssemblyTime?: number;\n totalAudioEnergy?: number;\n totalDecodeTime?: number;\n totalFreezesDuration?: number;\n totalInterFrameDelay?: number;\n totalPausesDuration?: number;\n totalProcessingDelay?: number;\n totalSamplesDuration?: number;\n totalSamplesReceived?: number;\n totalSquaredInterFrameDelay?: number;\n trackIdentifier: string;\n}\n\ninterface RTCLocalIceCandidateInit extends RTCIceCandidateInit {\n}\n\ninterface RTCLocalSessionDescriptionInit {\n sdp?: string;\n type?: RTCSdpType;\n}\n\ninterface RTCOfferAnswerOptions {\n}\n\ninterface RTCOfferOptions extends RTCOfferAnswerOptions {\n iceRestart?: boolean;\n offerToReceiveAudio?: boolean;\n offerToReceiveVideo?: boolean;\n}\n\ninterface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {\n active?: boolean;\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesEncoded?: number;\n framesPerSecond?: number;\n framesSent?: number;\n headerBytesSent?: number;\n hugeFramesSent?: number;\n keyFramesEncoded?: number;\n mediaSourceId?: string;\n mid?: string;\n nackCount?: number;\n pliCount?: number;\n qpSum?: number;\n qualityLimitationDurations?: Record;\n qualityLimitationReason?: RTCQualityLimitationReason;\n qualityLimitationResolutionChanges?: number;\n remoteId?: string;\n retransmittedBytesSent?: number;\n retransmittedPacketsSent?: number;\n rid?: string;\n rtxSsrc?: number;\n scalabilityMode?: string;\n targetBitrate?: number;\n totalEncodeTime?: number;\n totalEncodedBytesTarget?: number;\n totalPacketSendDelay?: number;\n}\n\ninterface RTCPeerConnectionIceErrorEventInit extends EventInit {\n address?: string | null;\n errorCode: number;\n errorText?: string;\n port?: number | null;\n url?: string;\n}\n\ninterface RTCPeerConnectionIceEventInit extends EventInit {\n candidate?: RTCIceCandidate | null;\n}\n\ninterface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {\n jitter?: number;\n packetsLost?: number;\n packetsReceived?: number;\n}\n\ninterface RTCRtcpParameters {\n cname?: string;\n reducedSize?: boolean;\n}\n\ninterface RTCRtpCapabilities {\n codecs: RTCRtpCodec[];\n headerExtensions: RTCRtpHeaderExtensionCapability[];\n}\n\ninterface RTCRtpCodec {\n channels?: number;\n clockRate: number;\n mimeType: string;\n sdpFmtpLine?: string;\n}\n\ninterface RTCRtpCodecParameters extends RTCRtpCodec {\n payloadType: number;\n}\n\ninterface RTCRtpCodingParameters {\n rid?: string;\n}\n\ninterface RTCRtpContributingSource {\n audioLevel?: number;\n rtpTimestamp: number;\n source: number;\n timestamp: DOMHighResTimeStamp;\n}\n\ninterface RTCRtpEncodingParameters extends RTCRtpCodingParameters {\n active?: boolean;\n maxBitrate?: number;\n maxFramerate?: number;\n networkPriority?: RTCPriorityType;\n priority?: RTCPriorityType;\n scaleResolutionDownBy?: number;\n}\n\ninterface RTCRtpHeaderExtensionCapability {\n uri: string;\n}\n\ninterface RTCRtpHeaderExtensionParameters {\n encrypted?: boolean;\n id: number;\n uri: string;\n}\n\ninterface RTCRtpParameters {\n codecs: RTCRtpCodecParameters[];\n headerExtensions: RTCRtpHeaderExtensionParameters[];\n rtcp: RTCRtcpParameters;\n}\n\ninterface RTCRtpReceiveParameters extends RTCRtpParameters {\n}\n\ninterface RTCRtpSendParameters extends RTCRtpParameters {\n degradationPreference?: RTCDegradationPreference;\n encodings: RTCRtpEncodingParameters[];\n transactionId: string;\n}\n\ninterface RTCRtpStreamStats extends RTCStats {\n codecId?: string;\n kind: string;\n ssrc: number;\n transportId?: string;\n}\n\ninterface RTCRtpSynchronizationSource extends RTCRtpContributingSource {\n}\n\ninterface RTCRtpTransceiverInit {\n direction?: RTCRtpTransceiverDirection;\n sendEncodings?: RTCRtpEncodingParameters[];\n streams?: MediaStream[];\n}\n\ninterface RTCSentRtpStreamStats extends RTCRtpStreamStats {\n bytesSent?: number;\n packetsSent?: number;\n}\n\ninterface RTCSessionDescriptionInit {\n sdp?: string;\n type: RTCSdpType;\n}\n\ninterface RTCSetParameterOptions {\n}\n\ninterface RTCStats {\n id: string;\n timestamp: DOMHighResTimeStamp;\n type: RTCStatsType;\n}\n\ninterface RTCTrackEventInit extends EventInit {\n receiver: RTCRtpReceiver;\n streams?: MediaStream[];\n track: MediaStreamTrack;\n transceiver: RTCRtpTransceiver;\n}\n\ninterface RTCTransportStats extends RTCStats {\n bytesReceived?: number;\n bytesSent?: number;\n dtlsCipher?: string;\n dtlsRole?: RTCDtlsRole;\n dtlsState: RTCDtlsTransportState;\n iceLocalUsernameFragment?: string;\n iceRole?: RTCIceRole;\n iceState?: RTCIceTransportState;\n localCertificateId?: string;\n packetsReceived?: number;\n packetsSent?: number;\n remoteCertificateId?: string;\n selectedCandidatePairChanges?: number;\n selectedCandidatePairId?: string;\n srtpCipher?: string;\n tlsVersion?: string;\n}\n\ninterface ReadableStreamGetReaderOptions {\n /**\n * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n *\n * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle \"bring your own buffer\" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n */\n mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamIteratorOptions {\n /**\n * Asynchronously iterates over the chunks in the stream's internal queue.\n *\n * Asynchronously iterating over the stream will lock it, preventing any other consumer from acquiring a reader. The lock will be released if the async iterator's return() method is called, e.g. by breaking out of the loop.\n *\n * By default, calling the async iterator's return() method will also cancel the stream. To prevent this, use the stream's values() method, passing true for the preventCancel option.\n */\n preventCancel?: boolean;\n}\n\ninterface ReadableStreamReadDoneResult {\n done: true;\n value: T | undefined;\n}\n\ninterface ReadableStreamReadValueResult {\n done: false;\n value: T;\n}\n\ninterface ReadableWritablePair {\n readable: ReadableStream;\n /**\n * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n */\n writable: WritableStream;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n type?: WorkerType;\n updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface ReportingObserverOptions {\n buffered?: boolean;\n types?: string[];\n}\n\ninterface RequestInit {\n /** A BodyInit object or null to set request's body. */\n body?: BodyInit | null;\n /** A string indicating how the request will interact with the browser's cache to set request's cache. */\n cache?: RequestCache;\n /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */\n credentials?: RequestCredentials;\n /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */\n headers?: HeadersInit;\n /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */\n integrity?: string;\n /** A boolean to set request's keepalive. */\n keepalive?: boolean;\n /** A string to set request's method. */\n method?: string;\n /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */\n mode?: RequestMode;\n priority?: RequestPriority;\n /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */\n redirect?: RequestRedirect;\n /** A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request's referrer. */\n referrer?: string;\n /** A referrer policy to set request's referrerPolicy. */\n referrerPolicy?: ReferrerPolicy;\n /** An AbortSignal to set request's signal. */\n signal?: AbortSignal | null;\n /** Can only be null. Used to disassociate request from any Window. */\n window?: null;\n}\n\ninterface ResizeObserverOptions {\n box?: ResizeObserverBoxOptions;\n}\n\ninterface ResponseInit {\n headers?: HeadersInit;\n status?: number;\n statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\n hash: KeyAlgorithm;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n d?: string;\n r?: string;\n t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n saltLength: number;\n}\n\ninterface SVGBoundingBoxOptions {\n clipped?: boolean;\n fill?: boolean;\n markers?: boolean;\n stroke?: boolean;\n}\n\ninterface ScrollIntoViewOptions extends ScrollOptions {\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n\ninterface ScrollOptions {\n behavior?: ScrollBehavior;\n}\n\ninterface ScrollToOptions extends ScrollOptions {\n left?: number;\n top?: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n blockedURI?: string;\n columnNumber?: number;\n disposition?: SecurityPolicyViolationEventDisposition;\n documentURI?: string;\n effectiveDirective?: string;\n lineNumber?: number;\n originalPolicy?: string;\n referrer?: string;\n sample?: string;\n sourceFile?: string;\n statusCode?: number;\n violatedDirective?: string;\n}\n\ninterface ShadowRootInit {\n clonable?: boolean;\n customElementRegistry?: CustomElementRegistry;\n delegatesFocus?: boolean;\n mode: ShadowRootMode;\n serializable?: boolean;\n slotAssignment?: SlotAssignmentMode;\n}\n\ninterface ShareData {\n files?: File[];\n text?: string;\n title?: string;\n url?: string;\n}\n\ninterface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {\n error: SpeechSynthesisErrorCode;\n}\n\ninterface SpeechSynthesisEventInit extends EventInit {\n charIndex?: number;\n charLength?: number;\n elapsedTime?: number;\n name?: string;\n utterance: SpeechSynthesisUtterance;\n}\n\ninterface StartViewTransitionOptions {\n types?: string[] | null;\n update?: ViewTransitionUpdateCallback | null;\n}\n\ninterface StaticRangeInit {\n endContainer: Node;\n endOffset: number;\n startContainer: Node;\n startOffset: number;\n}\n\ninterface StereoPannerOptions extends AudioNodeOptions {\n pan?: number;\n}\n\ninterface StorageEstimate {\n quota?: number;\n usage?: number;\n}\n\ninterface StorageEventInit extends EventInit {\n key?: string | null;\n newValue?: string | null;\n oldValue?: string | null;\n storageArea?: Storage | null;\n url?: string;\n}\n\ninterface StreamPipeOptions {\n preventAbort?: boolean;\n preventCancel?: boolean;\n /**\n * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n *\n * Errors and closures of the source and destination streams propagate as follows:\n *\n * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.\n *\n * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.\n *\n * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n *\n * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n *\n * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n */\n preventClose?: boolean;\n signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n transfer?: Transferable[];\n}\n\ninterface SubmitEventInit extends EventInit {\n submitter?: HTMLElement | null;\n}\n\ninterface TextDecodeOptions {\n stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n read: number;\n written: number;\n}\n\ninterface ToggleEventInit extends EventInit {\n newState?: string;\n oldState?: string;\n}\n\ninterface TouchEventInit extends EventModifierInit {\n changedTouches?: Touch[];\n targetTouches?: Touch[];\n touches?: Touch[];\n}\n\ninterface TouchInit {\n altitudeAngle?: number;\n azimuthAngle?: number;\n clientX?: number;\n clientY?: number;\n force?: number;\n identifier: number;\n pageX?: number;\n pageY?: number;\n radiusX?: number;\n radiusY?: number;\n rotationAngle?: number;\n screenX?: number;\n screenY?: number;\n target: EventTarget;\n touchType?: TouchType;\n}\n\ninterface TrackEventInit extends EventInit {\n track?: TextTrack | null;\n}\n\ninterface Transformer {\n flush?: TransformerFlushCallback;\n readableType?: undefined;\n start?: TransformerStartCallback;\n transform?: TransformerTransformCallback;\n writableType?: undefined;\n}\n\ninterface TransitionEventInit extends EventInit {\n elapsedTime?: number;\n propertyName?: string;\n pseudoElement?: string;\n}\n\ninterface UIEventInit extends EventInit {\n detail?: number;\n view?: Window | null;\n /** @deprecated */\n which?: number;\n}\n\ninterface ULongRange {\n max?: number;\n min?: number;\n}\n\ninterface UnderlyingByteSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableByteStreamController) => void | PromiseLike;\n start?: (controller: ReadableByteStreamController) => any;\n type: \"bytes\";\n}\n\ninterface UnderlyingDefaultSource {\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableStreamDefaultController) => void | PromiseLike;\n start?: (controller: ReadableStreamDefaultController) => any;\n type?: undefined;\n}\n\ninterface UnderlyingSink {\n abort?: UnderlyingSinkAbortCallback;\n close?: UnderlyingSinkCloseCallback;\n start?: UnderlyingSinkStartCallback;\n type?: undefined;\n write?: UnderlyingSinkWriteCallback;\n}\n\ninterface UnderlyingSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: UnderlyingSourcePullCallback;\n start?: UnderlyingSourceStartCallback;\n type?: ReadableStreamType;\n}\n\ninterface ValidityStateFlags {\n badInput?: boolean;\n customError?: boolean;\n patternMismatch?: boolean;\n rangeOverflow?: boolean;\n rangeUnderflow?: boolean;\n stepMismatch?: boolean;\n tooLong?: boolean;\n tooShort?: boolean;\n typeMismatch?: boolean;\n valueMissing?: boolean;\n}\n\ninterface VideoColorSpaceInit {\n fullRange?: boolean | null;\n matrix?: VideoMatrixCoefficients | null;\n primaries?: VideoColorPrimaries | null;\n transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n bitrate: number;\n colorGamut?: ColorGamut;\n contentType: string;\n framerate: number;\n hasAlphaChannel?: boolean;\n hdrMetadataType?: HdrMetadataType;\n height: number;\n scalabilityMode?: string;\n transferFunction?: TransferFunction;\n width: number;\n}\n\ninterface VideoDecoderConfig {\n codec: string;\n codedHeight?: number;\n codedWidth?: number;\n colorSpace?: VideoColorSpaceInit;\n description?: AllowSharedBufferSource;\n displayAspectHeight?: number;\n displayAspectWidth?: number;\n hardwareAcceleration?: HardwareAcceleration;\n optimizeForLatency?: boolean;\n}\n\ninterface VideoDecoderInit {\n error: WebCodecsErrorCallback;\n output: VideoFrameOutputCallback;\n}\n\ninterface VideoDecoderSupport {\n config?: VideoDecoderConfig;\n supported?: boolean;\n}\n\ninterface VideoEncoderConfig {\n alpha?: AlphaOption;\n avc?: AvcEncoderConfig;\n bitrate?: number;\n bitrateMode?: VideoEncoderBitrateMode;\n codec: string;\n contentHint?: string;\n displayHeight?: number;\n displayWidth?: number;\n framerate?: number;\n hardwareAcceleration?: HardwareAcceleration;\n height: number;\n latencyMode?: LatencyMode;\n scalabilityMode?: string;\n width: number;\n}\n\ninterface VideoEncoderEncodeOptions {\n avc?: VideoEncoderEncodeOptionsForAvc;\n keyFrame?: boolean;\n}\n\ninterface VideoEncoderEncodeOptionsForAvc {\n quantizer?: number | null;\n}\n\ninterface VideoEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedVideoChunkOutputCallback;\n}\n\ninterface VideoEncoderSupport {\n config?: VideoEncoderConfig;\n supported?: boolean;\n}\n\ninterface VideoFrameBufferInit {\n codedHeight: number;\n codedWidth: number;\n colorSpace?: VideoColorSpaceInit;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n format: VideoPixelFormat;\n layout?: PlaneLayout[];\n timestamp: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface VideoFrameCallbackMetadata {\n captureTime?: DOMHighResTimeStamp;\n expectedDisplayTime: DOMHighResTimeStamp;\n height: number;\n mediaTime: number;\n presentationTime: DOMHighResTimeStamp;\n presentedFrames: number;\n processingDuration?: number;\n receiveTime?: DOMHighResTimeStamp;\n rtpTimestamp?: number;\n width: number;\n}\n\ninterface VideoFrameCopyToOptions {\n colorSpace?: PredefinedColorSpace;\n format?: VideoPixelFormat;\n layout?: PlaneLayout[];\n rect?: DOMRectInit;\n}\n\ninterface VideoFrameInit {\n alpha?: AlphaOption;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n timestamp?: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface WaveShaperOptions extends AudioNodeOptions {\n curve?: number[] | Float32Array;\n oversample?: OverSampleType;\n}\n\ninterface WebGLContextAttributes {\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n desynchronized?: boolean;\n failIfMajorPerformanceCaveat?: boolean;\n powerPreference?: WebGLPowerPreference;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WebTransportCloseInfo {\n closeCode?: number;\n reason?: string;\n}\n\ninterface WebTransportErrorOptions {\n source?: WebTransportErrorSource;\n streamErrorCode?: number | null;\n}\n\ninterface WebTransportHash {\n algorithm?: string;\n value?: BufferSource;\n}\n\ninterface WebTransportOptions {\n allowPooling?: boolean;\n congestionControl?: WebTransportCongestionControl;\n requireUnreliable?: boolean;\n serverCertificateHashes?: WebTransportHash[];\n}\n\ninterface WebTransportSendOptions {\n sendOrder?: number;\n}\n\ninterface WebTransportSendStreamOptions extends WebTransportSendOptions {\n}\n\ninterface WheelEventInit extends MouseEventInit {\n deltaMode?: number;\n deltaX?: number;\n deltaY?: number;\n deltaZ?: number;\n}\n\ninterface WindowPostMessageOptions extends StructuredSerializeOptions {\n targetOrigin?: string;\n}\n\ninterface WorkerOptions {\n credentials?: RequestCredentials;\n name?: string;\n type?: WorkerType;\n}\n\ninterface WorkletOptions {\n credentials?: RequestCredentials;\n}\n\ninterface WriteParams {\n data?: BufferSource | Blob | string | null;\n position?: number | null;\n size?: number | null;\n type: WriteCommandType;\n}\n\ntype NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };\n\ndeclare var NodeFilter: {\n readonly FILTER_ACCEPT: 1;\n readonly FILTER_REJECT: 2;\n readonly FILTER_SKIP: 3;\n readonly SHOW_ALL: 0xFFFFFFFF;\n readonly SHOW_ELEMENT: 0x1;\n readonly SHOW_ATTRIBUTE: 0x2;\n readonly SHOW_TEXT: 0x4;\n readonly SHOW_CDATA_SECTION: 0x8;\n readonly SHOW_ENTITY_REFERENCE: 0x10;\n readonly SHOW_ENTITY: 0x20;\n readonly SHOW_PROCESSING_INSTRUCTION: 0x40;\n readonly SHOW_COMMENT: 0x80;\n readonly SHOW_DOCUMENT: 0x100;\n readonly SHOW_DOCUMENT_TYPE: 0x200;\n readonly SHOW_DOCUMENT_FRAGMENT: 0x400;\n readonly SHOW_NOTATION: 0x800;\n};\n\ntype XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };\n\n/**\n * The **`ANGLE_instanced_arrays`** extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)\n */\ninterface ANGLE_instanced_arrays {\n /**\n * The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawArrays() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE)\n */\n drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n /**\n * The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawElements() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE)\n */\n drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n /**\n * The **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the WebGL API modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with ANGLE_instanced_arrays.drawArraysInstancedANGLE() and ANGLE_instanced_arrays.drawElementsInstancedANGLE().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE)\n */\n vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;\n}\n\ninterface ARIAMixin {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaActiveDescendantElement) */\n ariaActiveDescendantElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAtomic) */\n ariaAtomic: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAutoComplete) */\n ariaAutoComplete: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBrailleLabel) */\n ariaBrailleLabel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBrailleRoleDescription) */\n ariaBrailleRoleDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBusy) */\n ariaBusy: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaChecked) */\n ariaChecked: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColCount) */\n ariaColCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndex) */\n ariaColIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndexText) */\n ariaColIndexText: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColSpan) */\n ariaColSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaControlsElements) */\n ariaControlsElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaCurrent) */\n ariaCurrent: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescribedByElements) */\n ariaDescribedByElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescription) */\n ariaDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDetailsElements) */\n ariaDetailsElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDisabled) */\n ariaDisabled: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaErrorMessageElements) */\n ariaErrorMessageElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaExpanded) */\n ariaExpanded: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaFlowToElements) */\n ariaFlowToElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHasPopup) */\n ariaHasPopup: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHidden) */\n ariaHidden: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaInvalid) */\n ariaInvalid: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaKeyShortcuts) */\n ariaKeyShortcuts: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel) */\n ariaLabel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabelledByElements) */\n ariaLabelledByElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLevel) */\n ariaLevel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLive) */\n ariaLive: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaModal) */\n ariaModal: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiLine) */\n ariaMultiLine: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiSelectable) */\n ariaMultiSelectable: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOrientation) */\n ariaOrientation: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOwnsElements) */\n ariaOwnsElements: ReadonlyArray | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPlaceholder) */\n ariaPlaceholder: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPosInSet) */\n ariaPosInSet: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPressed) */\n ariaPressed: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaReadOnly) */\n ariaReadOnly: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRelevant) */\n ariaRelevant: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRequired) */\n ariaRequired: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRoleDescription) */\n ariaRoleDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowCount) */\n ariaRowCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndex) */\n ariaRowIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndexText) */\n ariaRowIndexText: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowSpan) */\n ariaRowSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSelected) */\n ariaSelected: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSetSize) */\n ariaSetSize: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSort) */\n ariaSort: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMax) */\n ariaValueMax: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMin) */\n ariaValueMin: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueNow) */\n ariaValueNow: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueText) */\n ariaValueText: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/role) */\n role: string | null;\n}\n\n/**\n * The **`AbortController`** interface represents a controller object that allows you to abort one or more Web requests as and when desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)\n */\ninterface AbortController {\n /**\n * The **`signal`** read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * The **`abort()`** method of the AbortController interface aborts an asynchronous operation before it has completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)\n */\n abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n prototype: AbortController;\n new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n \"abort\": Event;\n}\n\n/**\n * The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an AbortController object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)\n */\ninterface AbortSignal extends EventTarget {\n /**\n * The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (`true`) or not (`false`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)\n */\n readonly aborted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */\n onabort: ((this: AbortSignal, ev: Event) => any) | null;\n /**\n * The **`reason`** read-only property returns a JavaScript value that indicates the abort reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason)\n */\n readonly reason: any;\n /**\n * The **`throwIfAborted()`** method throws the signal's abort AbortSignal.reason if the signal has been aborted; otherwise it does nothing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted)\n */\n throwIfAborted(): void;\n addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n prototype: AbortSignal;\n new(): AbortSignal;\n /**\n * The **`AbortSignal.abort()`** static method returns an AbortSignal that is already set as aborted (and which does not trigger an AbortSignal/abort_event event).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static)\n */\n abort(reason?: any): AbortSignal;\n /**\n * The **`AbortSignal.any()`** static method takes an iterable of abort signals and returns an AbortSignal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/any_static)\n */\n any(signals: AbortSignal[]): AbortSignal;\n /**\n * The **`AbortSignal.timeout()`** static method returns an AbortSignal that will automatically abort after a specified time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static)\n */\n timeout(milliseconds: number): AbortSignal;\n};\n\n/**\n * The **`AbstractRange`** abstract interface is the base class upon which all DOM range types are defined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange)\n */\ninterface AbstractRange {\n /**\n * The read-only **`collapsed`** property of the AbstractRange interface returns `true` if the range's start position and end position are the same.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed)\n */\n readonly collapsed: boolean;\n /**\n * The read-only **`endContainer`** property of the AbstractRange interface returns the Node in which the end of the range is located.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer)\n */\n readonly endContainer: Node;\n /**\n * The **`endOffset`** property of the AbstractRange interface returns the offset into the end node of the range's end position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset)\n */\n readonly endOffset: number;\n /**\n * The read-only **`startContainer`** property of the AbstractRange interface returns the start Node for the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer)\n */\n readonly startContainer: Node;\n /**\n * The read-only **`startOffset`** property of the AbstractRange interface returns the offset into the start node of the range's start position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset)\n */\n readonly startOffset: number;\n}\n\ndeclare var AbstractRange: {\n prototype: AbstractRange;\n new(): AbstractRange;\n};\n\ninterface AbstractWorkerEventMap {\n \"error\": ErrorEvent;\n}\n\ninterface AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */\n onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * The **`AnalyserNode`** interface represents a node able to provide real-time frequency and time-domain analysis information.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode)\n */\ninterface AnalyserNode extends AudioNode {\n /**\n * The **`fftSize`** property of the AnalyserNode interface is an unsigned long value and represents the window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize)\n */\n fftSize: number;\n /**\n * The **`frequencyBinCount`** read-only property of the AnalyserNode interface contains the total number of data points available to AudioContext BaseAudioContext.sampleRate.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/frequencyBinCount)\n */\n readonly frequencyBinCount: number;\n /**\n * The **`maxDecibels`** property of the AnalyserNode interface is a double value representing the maximum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the maximum value for the range of results when using `getByteFrequencyData()`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels)\n */\n maxDecibels: number;\n /**\n * The **`minDecibels`** property of the AnalyserNode interface is a double value representing the minimum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the minimum value for the range of results when using `getByteFrequencyData()`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels)\n */\n minDecibels: number;\n /**\n * The **`smoothingTimeConstant`** property of the AnalyserNode interface is a double value representing the averaging constant with the last analysis frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant)\n */\n smoothingTimeConstant: number;\n /**\n * The **`getByteFrequencyData()`** method of the AnalyserNode interface copies the current frequency data into a Uint8Array (unsigned byte array) passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData)\n */\n getByteFrequencyData(array: Uint8Array): void;\n /**\n * The **`getByteTimeDomainData()`** method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Uint8Array (unsigned byte array) passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData)\n */\n getByteTimeDomainData(array: Uint8Array): void;\n /**\n * The **`getFloatFrequencyData()`** method of the AnalyserNode Interface copies the current frequency data into a Float32Array array passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData)\n */\n getFloatFrequencyData(array: Float32Array): void;\n /**\n * The **`getFloatTimeDomainData()`** method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Float32Array array passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData)\n */\n getFloatTimeDomainData(array: Float32Array): void;\n}\n\ndeclare var AnalyserNode: {\n prototype: AnalyserNode;\n new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;\n};\n\ninterface Animatable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animate) */\n animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAnimations) */\n getAnimations(options?: GetAnimationsOptions): Animation[];\n}\n\ninterface AnimationEventMap {\n \"cancel\": AnimationPlaybackEvent;\n \"finish\": AnimationPlaybackEvent;\n \"remove\": AnimationPlaybackEvent;\n}\n\n/**\n * The **`Animation`** interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation)\n */\ninterface Animation extends EventTarget {\n /**\n * The **`Animation.currentTime`** property of the Web Animations API returns and sets the current time value of the animation in milliseconds, whether running or paused.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/currentTime)\n */\n currentTime: CSSNumberish | null;\n /**\n * The **`Animation.effect`** property of the Web Animations API gets and sets the target effect of an animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/effect)\n */\n effect: AnimationEffect | null;\n /**\n * The **`Animation.finished`** read-only property of the Web Animations API returns a Promise which resolves once the animation has finished playing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finished)\n */\n readonly finished: Promise;\n /**\n * The **`Animation.id`** property of the Web Animations API returns or sets a string used to identify the animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/id)\n */\n id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel_event) */\n oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish_event) */\n onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/remove_event) */\n onremove: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /**\n * The read-only **`Animation.pending`** property of the Web Animations API indicates whether the animation is currently waiting for an asynchronous operation such as initiating playback or pausing a running animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pending)\n */\n readonly pending: boolean;\n /**\n * The read-only **`Animation.playState`** property of the Web Animations API returns an enumerated value describing the playback state of an animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playState)\n */\n readonly playState: AnimationPlayState;\n /**\n * The **`Animation.playbackRate`** property of the Web Animations API returns or sets the playback rate of the animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playbackRate)\n */\n playbackRate: number;\n /**\n * The read-only **`Animation.ready`** property of the Web Animations API returns a Promise which resolves when the animation is ready to play.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/ready)\n */\n readonly ready: Promise;\n /**\n * The read-only **`Animation.replaceState`** property of the Web Animations API indicates whether the animation has been removed by the browser automatically after being replaced by another animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/replaceState)\n */\n readonly replaceState: AnimationReplaceState;\n /**\n * The **`Animation.startTime`** property of the Animation interface is a double-precision floating-point value which indicates the scheduled time when an animation's playback should begin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/startTime)\n */\n startTime: CSSNumberish | null;\n /**\n * The **`Animation.timeline`** property of the Animation interface returns or sets the AnimationTimeline associated with this animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/timeline)\n */\n timeline: AnimationTimeline | null;\n /**\n * The Web Animations API's **`cancel()`** method of the Animation interface clears all KeyframeEffects caused by this animation and aborts its playback.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel)\n */\n cancel(): void;\n /**\n * The `commitStyles()` method of the Web Animations API's Animation interface writes the computed values of the animation's current styles into its target element's `style` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/commitStyles)\n */\n commitStyles(): void;\n /**\n * The **`finish()`** method of the Web Animations API's Animation Interface sets the current playback time to the end of the animation corresponding to the current playback direction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish)\n */\n finish(): void;\n /**\n * The **`pause()`** method of the Web Animations API's Animation interface suspends playback of the animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pause)\n */\n pause(): void;\n /**\n * The `persist()` method of the Web Animations API's Animation interface explicitly persists an animation, preventing it from being automatically removed when it is replaced by another animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/persist)\n */\n persist(): void;\n /**\n * The **`play()`** method of the Web Animations API's Animation Interface starts or resumes playing of an animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/play)\n */\n play(): void;\n /**\n * The **`Animation.reverse()`** method of the Animation Interface reverses the playback direction, meaning the animation ends at its beginning.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/reverse)\n */\n reverse(): void;\n /**\n * The **`updatePlaybackRate()`** method of the Web Animations API's synchronizing its playback position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate)\n */\n updatePlaybackRate(playbackRate: number): void;\n addEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Animation: {\n prototype: Animation;\n new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;\n};\n\n/**\n * The `AnimationEffect` interface of the Web Animations API is an interface representing animation effects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect)\n */\ninterface AnimationEffect {\n /**\n * The `getComputedTiming()` method of the AnimationEffect interface returns the calculated timing properties for this animation effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getComputedTiming)\n */\n getComputedTiming(): ComputedEffectTiming;\n /**\n * The `AnimationEffect.getTiming()` method of the AnimationEffect interface returns an object containing the timing properties for the Animation Effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getTiming)\n */\n getTiming(): EffectTiming;\n /**\n * The `updateTiming()` method of the AnimationEffect interface updates the specified timing properties for an animation effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/updateTiming)\n */\n updateTiming(timing?: OptionalEffectTiming): void;\n}\n\ndeclare var AnimationEffect: {\n prototype: AnimationEffect;\n new(): AnimationEffect;\n};\n\n/**\n * The **`AnimationEvent`** interface represents events providing information related to animations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent)\n */\ninterface AnimationEvent extends Event {\n /**\n * The **`AnimationEvent.animationName`** read-only property is a string containing the value of the animation-name CSS property associated with the transition.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/animationName)\n */\n readonly animationName: string;\n /**\n * The **`AnimationEvent.elapsedTime`** read-only property is a `float` giving the amount of time the animation has been running, in seconds, when this event fired, excluding any time the animation was paused.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/elapsedTime)\n */\n readonly elapsedTime: number;\n /**\n * The **`AnimationEvent.pseudoElement`** read-only property is a string, starting with `'::'`, containing the name of the pseudo-element the animation runs on.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/pseudoElement)\n */\n readonly pseudoElement: string;\n}\n\ndeclare var AnimationEvent: {\n prototype: AnimationEvent;\n new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;\n};\n\ninterface AnimationFrameProvider {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\n cancelAnimationFrame(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\n requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/**\n * The AnimationPlaybackEvent interface of the Web Animations API represents animation events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent)\n */\ninterface AnimationPlaybackEvent extends Event {\n /**\n * The **`currentTime`** read-only property of the AnimationPlaybackEvent interface represents the current time of the animation that generated the event at the moment the event is queued.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/currentTime)\n */\n readonly currentTime: CSSNumberish | null;\n /**\n * The **`timelineTime`** read-only property of the AnimationPlaybackEvent interface represents the time value of the animation's AnimationTimeline at the moment the event is queued.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/timelineTime)\n */\n readonly timelineTime: CSSNumberish | null;\n}\n\ndeclare var AnimationPlaybackEvent: {\n prototype: AnimationPlaybackEvent;\n new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;\n};\n\n/**\n * The `AnimationTimeline` interface of the Web Animations API represents the timeline of an animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline)\n */\ninterface AnimationTimeline {\n /**\n * The **`currentTime`** read-only property of the Web Animations API's AnimationTimeline interface returns the timeline's current time in milliseconds, or `null` if the timeline is inactive.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime)\n */\n readonly currentTime: CSSNumberish | null;\n}\n\ndeclare var AnimationTimeline: {\n prototype: AnimationTimeline;\n new(): AnimationTimeline;\n};\n\n/**\n * The **`Attr`** interface represents one of an element's attributes as an object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr)\n */\ninterface Attr extends Node {\n /**\n * The read-only **`localName`** property of the Attr interface returns the _local part_ of the _qualified name_ of an attribute, that is the name of the attribute, stripped from any namespace in front of it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/localName)\n */\n readonly localName: string;\n /**\n * The read-only **`name`** property of the Attr interface returns the _qualified name_ of an attribute, that is the name of the attribute, with the namespace prefix, if any, in front of it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/name)\n */\n readonly name: string;\n /**\n * The read-only **`namespaceURI`** property of the Attr interface returns the namespace URI of the attribute, or `null` if the element is not in a namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI)\n */\n readonly namespaceURI: string | null;\n readonly ownerDocument: Document;\n /**\n * The read-only **`ownerElement`** property of the Attr interface returns the Element the attribute belongs to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement)\n */\n readonly ownerElement: Element | null;\n /**\n * The read-only **`prefix`** property of the Attr returns the namespace prefix of the attribute, or `null` if no prefix is specified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/prefix)\n */\n readonly prefix: string | null;\n /**\n * The read-only **`specified`** property of the Attr interface always returns `true`.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/specified)\n */\n readonly specified: boolean;\n /**\n * The **`value`** property of the Attr interface contains the value of the attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/value)\n */\n value: string;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): string;\n set textContent(value: string | null);\n}\n\ndeclare var Attr: {\n prototype: Attr;\n new(): Attr;\n};\n\n/**\n * The **`AudioBuffer`** interface represents a short audio asset residing in memory, created from an audio file using the BaseAudioContext/decodeAudioData method, or from raw data using BaseAudioContext/createBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer)\n */\ninterface AudioBuffer {\n /**\n * The **`duration`** property of the AudioBuffer interface returns a double representing the duration, in seconds, of the PCM data stored in the buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration)\n */\n readonly duration: number;\n /**\n * The **`length`** property of the AudioBuffer interface returns an integer representing the length, in sample-frames, of the PCM data stored in the buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/length)\n */\n readonly length: number;\n /**\n * The `numberOfChannels` property of the AudioBuffer interface returns an integer representing the number of discrete audio channels described by the PCM data stored in the buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels)\n */\n readonly numberOfChannels: number;\n /**\n * The **`sampleRate`** property of the AudioBuffer interface returns a float representing the sample rate, in samples per second, of the PCM data stored in the buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate)\n */\n readonly sampleRate: number;\n /**\n * The **`copyFromChannel()`** method of the channel of the `AudioBuffer` to a specified ```js-nolint copyFromChannel(destination, channelNumber, startInChannel) ``` - `destination` - : A Float32Array to copy the channel's samples to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel)\n */\n copyFromChannel(destination: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /**\n * The `copyToChannel()` method of the AudioBuffer interface copies the samples to the specified channel of the `AudioBuffer`, from the source array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel)\n */\n copyToChannel(source: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /**\n * The **`getChannelData()`** method of the AudioBuffer Interface returns a Float32Array containing the PCM data associated with the channel, defined by the channel parameter (with 0 representing the first channel).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData)\n */\n getChannelData(channel: number): Float32Array;\n}\n\ndeclare var AudioBuffer: {\n prototype: AudioBuffer;\n new(options: AudioBufferOptions): AudioBuffer;\n};\n\n/**\n * The **`AudioBufferSourceNode`** interface is an AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode)\n */\ninterface AudioBufferSourceNode extends AudioScheduledSourceNode {\n /**\n * The **`buffer`** property of the AudioBufferSourceNode interface provides the ability to play back audio using an AudioBuffer as the source of the sound data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer)\n */\n buffer: AudioBuffer | null;\n /**\n * The **`detune`** property of the representing detuning of oscillation in cents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune)\n */\n readonly detune: AudioParam;\n /**\n * The `loop` property of the AudioBufferSourceNode interface is a Boolean indicating if the audio asset must be replayed when the end of the AudioBuffer is reached.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop)\n */\n loop: boolean;\n /**\n * The `loopEnd` property of the AudioBufferSourceNode interface specifies is a floating point number specifying, in seconds, at what offset into playing the AudioBuffer playback should loop back to the time indicated by the AudioBufferSourceNode.loopStart property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd)\n */\n loopEnd: number;\n /**\n * The **`loopStart`** property of the AudioBufferSourceNode interface is a floating-point value indicating, in seconds, where in the AudioBuffer the restart of the play must happen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart)\n */\n loopStart: number;\n /**\n * The **`playbackRate`** property of the AudioBufferSourceNode interface Is a k-rate AudioParam that defines the speed at which the audio asset will be played.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate)\n */\n readonly playbackRate: AudioParam;\n /**\n * The `start()` method of the AudioBufferSourceNode Interface is used to schedule playback of the audio data contained in the buffer, or to begin playback immediately.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start)\n */\n start(when?: number, offset?: number, duration?: number): void;\n addEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioBufferSourceNode: {\n prototype: AudioBufferSourceNode;\n new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;\n};\n\n/**\n * The `AudioContext` interface represents an audio-processing graph built from audio modules linked together, each represented by an AudioNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext)\n */\ninterface AudioContext extends BaseAudioContext {\n /**\n * The **`baseLatency`** read-only property of the seconds of processing latency incurred by the `AudioContext` passing an audio buffer from the AudioDestinationNode — i.e., the end of the audio graph — into the host system's audio subsystem ready for playing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency)\n */\n readonly baseLatency: number;\n /**\n * The **`outputLatency`** read-only property of the AudioContext Interface provides an estimation of the output latency of the current audio context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency)\n */\n readonly outputLatency: number;\n /**\n * The `close()` method of the AudioContext Interface closes the audio context, releasing any system audio resources that it uses.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/close)\n */\n close(): Promise;\n /**\n * The `createMediaElementSource()` method of the AudioContext Interface is used to create a new MediaElementAudioSourceNode object, given an existing HTML audio or video element, the audio from which can then be played and manipulated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource)\n */\n createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\n /**\n * The `createMediaStreamDestination()` method of the AudioContext Interface is used to create a new MediaStreamAudioDestinationNode object associated with a WebRTC MediaStream representing an audio stream, which may be stored in a local file or sent to another computer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination)\n */\n createMediaStreamDestination(): MediaStreamAudioDestinationNode;\n /**\n * The `createMediaStreamSource()` method of the AudioContext Interface is used to create a new MediaStreamAudioSourceNode object, given a media stream (say, from a MediaDevices.getUserMedia instance), the audio from which can then be played and manipulated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource)\n */\n createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\n /**\n * The **`getOutputTimestamp()`** method of the containing two audio timestamp values relating to the current audio context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp)\n */\n getOutputTimestamp(): AudioTimestamp;\n /**\n * The **`resume()`** method of the AudioContext interface resumes the progression of time in an audio context that has previously been suspended.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/resume)\n */\n resume(): Promise;\n /**\n * The `suspend()` method of the AudioContext Interface suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process — this is useful if you want an application to power down the audio hardware when it will not be using an audio context for a while.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/suspend)\n */\n suspend(): Promise;\n addEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioContext: {\n prototype: AudioContext;\n new(contextOptions?: AudioContextOptions): AudioContext;\n};\n\n/**\n * The **`AudioData`** interface of the WebCodecs API represents an audio sample.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData)\n */\ninterface AudioData {\n /**\n * The **`duration`** read-only property of the AudioData interface returns the duration in microseconds of this `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration)\n */\n readonly duration: number;\n /**\n * The **`format`** read-only property of the AudioData interface returns the sample format of the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format)\n */\n readonly format: AudioSampleFormat | null;\n /**\n * The **`numberOfChannels`** read-only property of the AudioData interface returns the number of channels in the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels)\n */\n readonly numberOfChannels: number;\n /**\n * The **`numberOfFrames`** read-only property of the AudioData interface returns the number of frames in the `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames)\n */\n readonly numberOfFrames: number;\n /**\n * The **`sampleRate`** read-only property of the AudioData interface returns the sample rate in Hz.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate)\n */\n readonly sampleRate: number;\n /**\n * The **`timestamp`** read-only property of the AudioData interface returns the timestamp of this `AudioData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`allocationSize()`** method of the AudioData interface returns the size in bytes required to hold the current sample as filtered by options passed into the method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize)\n */\n allocationSize(options: AudioDataCopyToOptions): number;\n /**\n * The **`clone()`** method of the AudioData interface creates a new `AudioData` object with reference to the same media resource as the original.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone)\n */\n clone(): AudioData;\n /**\n * The **`close()`** method of the AudioData interface clears all states and releases the reference to the media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close)\n */\n close(): void;\n /**\n * The **`copyTo()`** method of the AudioData interface copies a plane of an `AudioData` object to a destination buffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions): void;\n}\n\ndeclare var AudioData: {\n prototype: AudioData;\n new(init: AudioDataInit): AudioData;\n};\n\ninterface AudioDecoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`AudioDecoder`** interface of the WebCodecs API decodes chunks of audio.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)\n */\ninterface AudioDecoder extends EventTarget {\n /**\n * The **`decodeQueueSize`** read-only property of the AudioDecoder interface returns the number of pending decode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize)\n */\n readonly decodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */\n ondequeue: ((this: AudioDecoder, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the AudioDecoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the AudioDecoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the AudioDecoder interface enqueues a control message to configure the audio decoder for decoding chunks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure)\n */\n configure(config: AudioDecoderConfig): void;\n /**\n * The **`decode()`** method of the AudioDecoder interface enqueues a control message to decode a given chunk of audio.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode)\n */\n decode(chunk: EncodedAudioChunk): void;\n /**\n * The **`flush()`** method of the AudioDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the AudioDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioDecoder: {\n prototype: AudioDecoder;\n new(init: AudioDecoderInit): AudioDecoder;\n /**\n * The **`isConfigSupported()`** static method of the AudioDecoder interface checks if the given config is supported (that is, if AudioDecoder objects can be successfully configured with the given config).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static)\n */\n isConfigSupported(config: AudioDecoderConfig): Promise;\n};\n\n/**\n * The `AudioDestinationNode` interface represents the end destination of an audio graph in a given context — usually the speakers of your device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode)\n */\ninterface AudioDestinationNode extends AudioNode {\n /**\n * The `maxChannelCount` property of the AudioDestinationNode interface is an `unsigned long` defining the maximum amount of channels that the physical device can handle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode/maxChannelCount)\n */\n readonly maxChannelCount: number;\n}\n\ndeclare var AudioDestinationNode: {\n prototype: AudioDestinationNode;\n new(): AudioDestinationNode;\n};\n\ninterface AudioEncoderEventMap {\n \"dequeue\": Event;\n}\n\n/**\n * The **`AudioEncoder`** interface of the WebCodecs API encodes AudioData objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)\n */\ninterface AudioEncoder extends EventTarget {\n /**\n * The **`encodeQueueSize`** read-only property of the AudioEncoder interface returns the number of pending encode requests in the queue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize)\n */\n readonly encodeQueueSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */\n ondequeue: ((this: AudioEncoder, ev: Event) => any) | null;\n /**\n * The **`state`** read-only property of the AudioEncoder interface returns the current state of the underlying codec.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state)\n */\n readonly state: CodecState;\n /**\n * The **`close()`** method of the AudioEncoder interface ends all pending work and releases system resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close)\n */\n close(): void;\n /**\n * The **`configure()`** method of the AudioEncoder interface enqueues a control message to configure the audio encoder for encoding chunks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure)\n */\n configure(config: AudioEncoderConfig): void;\n /**\n * The **`encode()`** method of the AudioEncoder interface enqueues a control message to encode a given AudioData object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode)\n */\n encode(data: AudioData): void;\n /**\n * The **`flush()`** method of the AudioEncoder interface returns a Promise that resolves once all pending messages in the queue have been completed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush)\n */\n flush(): Promise;\n /**\n * The **`reset()`** method of the AudioEncoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset)\n */\n reset(): void;\n addEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioEncoder: {\n prototype: AudioEncoder;\n new(init: AudioEncoderInit): AudioEncoder;\n /**\n * The **`isConfigSupported()`** static method of the AudioEncoder interface checks if the given config is supported (that is, if AudioEncoder objects can be successfully configured with the given config).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static)\n */\n isConfigSupported(config: AudioEncoderConfig): Promise;\n};\n\n/**\n * The `AudioListener` interface represents the position and orientation of the unique person listening to the audio scene, and is used in audio spatialization.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener)\n */\ninterface AudioListener {\n /**\n * The `forwardX` read-only property of the AudioListener interface is an AudioParam representing the x value of the direction vector defining the forward direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardX)\n */\n readonly forwardX: AudioParam;\n /**\n * The `forwardY` read-only property of the AudioListener interface is an AudioParam representing the y value of the direction vector defining the forward direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardY)\n */\n readonly forwardY: AudioParam;\n /**\n * The `forwardZ` read-only property of the AudioListener interface is an AudioParam representing the z value of the direction vector defining the forward direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardZ)\n */\n readonly forwardZ: AudioParam;\n /**\n * The `positionX` read-only property of the AudioListener interface is an AudioParam representing the x position of the listener in 3D cartesian space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionX)\n */\n readonly positionX: AudioParam;\n /**\n * The `positionY` read-only property of the AudioListener interface is an AudioParam representing the y position of the listener in 3D cartesian space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionY)\n */\n readonly positionY: AudioParam;\n /**\n * The `positionZ` read-only property of the AudioListener interface is an AudioParam representing the z position of the listener in 3D cartesian space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionZ)\n */\n readonly positionZ: AudioParam;\n /**\n * The `upX` read-only property of the AudioListener interface is an AudioParam representing the x value of the direction vector defining the up direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upX)\n */\n readonly upX: AudioParam;\n /**\n * The `upY` read-only property of the AudioListener interface is an AudioParam representing the y value of the direction vector defining the up direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upY)\n */\n readonly upY: AudioParam;\n /**\n * The `upZ` read-only property of the AudioListener interface is an AudioParam representing the z value of the direction vector defining the up direction the listener is pointing in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upZ)\n */\n readonly upZ: AudioParam;\n /**\n * The `setOrientation()` method of the AudioListener interface defines the orientation of the listener.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setOrientation)\n */\n setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\n /**\n * The `setPosition()` method of the AudioListener Interface defines the position of the listener.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setPosition)\n */\n setPosition(x: number, y: number, z: number): void;\n}\n\ndeclare var AudioListener: {\n prototype: AudioListener;\n new(): AudioListener;\n};\n\n/**\n * The **`AudioNode`** interface is a generic interface for representing an audio processing module.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode)\n */\ninterface AudioNode extends EventTarget {\n /**\n * The **`channelCount`** property of the AudioNode interface represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCount)\n */\n channelCount: number;\n /**\n * The `channelCountMode` property of the AudioNode interface represents an enumerated value describing the way channels must be matched between the node's inputs and outputs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCountMode)\n */\n channelCountMode: ChannelCountMode;\n /**\n * The **`channelInterpretation`** property of the AudioNode interface represents an enumerated value describing how input channels are mapped to output channels when the number of inputs/outputs is different.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelInterpretation)\n */\n channelInterpretation: ChannelInterpretation;\n /**\n * The read-only `context` property of the the node is participating in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/context)\n */\n readonly context: BaseAudioContext;\n /**\n * The `numberOfInputs` property of the AudioNode interface returns the number of inputs feeding the node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfInputs)\n */\n readonly numberOfInputs: number;\n /**\n * The `numberOfOutputs` property of the AudioNode interface returns the number of outputs coming out of the node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfOutputs)\n */\n readonly numberOfOutputs: number;\n /**\n * The `connect()` method of the AudioNode interface lets you connect one of the node's outputs to a target, which may be either another `AudioNode` (thereby directing the sound data to the specified node) or an change the value of that parameter over time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/connect)\n */\n connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;\n connect(destinationParam: AudioParam, output?: number): void;\n /**\n * The **`disconnect()`** method of the AudioNode interface lets you disconnect one or more nodes from the node on which the method is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/disconnect)\n */\n disconnect(): void;\n disconnect(output: number): void;\n disconnect(destinationNode: AudioNode): void;\n disconnect(destinationNode: AudioNode, output: number): void;\n disconnect(destinationNode: AudioNode, output: number, input: number): void;\n disconnect(destinationParam: AudioParam): void;\n disconnect(destinationParam: AudioParam, output: number): void;\n}\n\ndeclare var AudioNode: {\n prototype: AudioNode;\n new(): AudioNode;\n};\n\n/**\n * The Web Audio API's `AudioParam` interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam)\n */\ninterface AudioParam {\n automationRate: AutomationRate;\n /**\n * The **`defaultValue`** read-only property of the AudioParam interface represents the initial value of the attributes as defined by the specific AudioNode creating the `AudioParam`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/defaultValue)\n */\n readonly defaultValue: number;\n /**\n * The **`maxValue`** read-only property of the AudioParam interface represents the maximum possible value for the parameter's nominal (effective) range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/maxValue)\n */\n readonly maxValue: number;\n /**\n * The **`minValue`** read-only property of the AudioParam interface represents the minimum possible value for the parameter's nominal (effective) range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/minValue)\n */\n readonly minValue: number;\n /**\n * The **`value`** property of the AudioParam interface gets or sets the value of this `AudioParam` at the current time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/value)\n */\n value: number;\n /**\n * The **`cancelAndHoldAtTime()`** method of the `AudioParam` but holds its value at a given time until further changes are made using other methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelAndHoldAtTime)\n */\n cancelAndHoldAtTime(cancelTime: number): AudioParam;\n /**\n * The `cancelScheduledValues()` method of the AudioParam Interface cancels all scheduled future changes to the `AudioParam`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelScheduledValues)\n */\n cancelScheduledValues(cancelTime: number): AudioParam;\n /**\n * The **`exponentialRampToValueAtTime()`** method of the AudioParam Interface schedules a gradual exponential change in the value of the AudioParam.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/exponentialRampToValueAtTime)\n */\n exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\n /**\n * The `linearRampToValueAtTime()` method of the AudioParam Interface schedules a gradual linear change in the value of the `AudioParam`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/linearRampToValueAtTime)\n */\n linearRampToValueAtTime(value: number, endTime: number): AudioParam;\n /**\n * The `setTargetAtTime()` method of the `AudioParam` value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setTargetAtTime)\n */\n setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\n /**\n * The `setValueAtTime()` method of the `AudioParam` value at a precise time, as measured against ```js-nolint setValueAtTime(value, startTime) ``` - `value` - : A floating point number representing the value the AudioParam will change to at the given time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueAtTime)\n */\n setValueAtTime(value: number, startTime: number): AudioParam;\n /**\n * The **`setValueCurveAtTime()`** method of the following a curve defined by a list of values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime)\n */\n setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;\n}\n\ndeclare var AudioParam: {\n prototype: AudioParam;\n new(): AudioParam;\n};\n\n/**\n * The **`AudioParamMap`** interface of the Web Audio API represents an iterable and read-only set of multiple audio parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParamMap)\n */\ninterface AudioParamMap {\n forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;\n}\n\ndeclare var AudioParamMap: {\n prototype: AudioParamMap;\n new(): AudioParamMap;\n};\n\n/**\n * The `AudioProcessingEvent` interface of the Web Audio API represents events that occur when a ScriptProcessorNode input buffer is ready to be processed.\n * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by AudioWorklet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent)\n */\ninterface AudioProcessingEvent extends Event {\n /**\n * The **`inputBuffer`** read-only property of the AudioProcessingEvent interface represents the input buffer of an audio processing event.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/inputBuffer)\n */\n readonly inputBuffer: AudioBuffer;\n /**\n * The **`outputBuffer`** read-only property of the AudioProcessingEvent interface represents the output buffer of an audio processing event.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/outputBuffer)\n */\n readonly outputBuffer: AudioBuffer;\n /**\n * The **`playbackTime`** read-only property of the AudioProcessingEvent interface represents the time when the audio will be played.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/playbackTime)\n */\n readonly playbackTime: number;\n}\n\n/** @deprecated */\ndeclare var AudioProcessingEvent: {\n prototype: AudioProcessingEvent;\n new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;\n};\n\ninterface AudioScheduledSourceNodeEventMap {\n \"ended\": Event;\n}\n\n/**\n * The `AudioScheduledSourceNode` interface—part of the Web Audio API—is a parent interface for several types of audio source node interfaces which share the ability to be started and stopped, optionally at specified times.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode)\n */\ninterface AudioScheduledSourceNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event) */\n onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;\n /**\n * The `start()` method on AudioScheduledSourceNode schedules a sound to begin playback at the specified time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/start)\n */\n start(when?: number): void;\n /**\n * The `stop()` method on AudioScheduledSourceNode schedules a sound to cease playback at the specified time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/stop)\n */\n stop(when?: number): void;\n addEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioScheduledSourceNode: {\n prototype: AudioScheduledSourceNode;\n new(): AudioScheduledSourceNode;\n};\n\n/**\n * The **`AudioWorklet`** interface of the Web Audio API is used to supply custom audio processing scripts that execute in a separate thread to provide very low latency audio processing.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorklet)\n */\ninterface AudioWorklet extends Worklet {\n}\n\ndeclare var AudioWorklet: {\n prototype: AudioWorklet;\n new(): AudioWorklet;\n};\n\ninterface AudioWorkletNodeEventMap {\n \"processorerror\": ErrorEvent;\n}\n\n/**\n * The **`AudioWorkletNode`** interface of the Web Audio API represents a base class for a user-defined AudioNode, which can be connected to an audio routing graph along with other nodes.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode)\n */\ninterface AudioWorkletNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/processorerror_event) */\n onprocessorerror: ((this: AudioWorkletNode, ev: ErrorEvent) => any) | null;\n /**\n * The read-only **`parameters`** property of the underlying AudioWorkletProcessor according to its getter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/parameters)\n */\n readonly parameters: AudioParamMap;\n /**\n * The read-only **`port`** property of the associated AudioWorkletProcessor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/port)\n */\n readonly port: MessagePort;\n addEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioWorkletNode: {\n prototype: AudioWorkletNode;\n new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;\n};\n\n/**\n * The **`AuthenticatorAssertionResponse`** interface of the Web Authentication API contains a digital signature from the private key of a particular WebAuthn credential.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse)\n */\ninterface AuthenticatorAssertionResponse extends AuthenticatorResponse {\n /**\n * The **`authenticatorData`** property of the AuthenticatorAssertionResponse interface returns an ArrayBuffer containing information from the authenticator such as the Relying Party ID Hash (rpIdHash), a signature counter, test of user presence, user verification flags, and any extensions processed by the authenticator.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/authenticatorData)\n */\n readonly authenticatorData: ArrayBuffer;\n /**\n * The **`signature`** read-only property of the object which is the signature of the authenticator for both the client data (AuthenticatorResponse.clientDataJSON).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/signature)\n */\n readonly signature: ArrayBuffer;\n /**\n * The **`userHandle`** read-only property of the AuthenticatorAssertionResponse interface is an ArrayBuffer object providing an opaque identifier for the given user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/userHandle)\n */\n readonly userHandle: ArrayBuffer | null;\n}\n\ndeclare var AuthenticatorAssertionResponse: {\n prototype: AuthenticatorAssertionResponse;\n new(): AuthenticatorAssertionResponse;\n};\n\n/**\n * The **`AuthenticatorAttestationResponse`** interface of the Web Authentication API is the result of a WebAuthn credential registration.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)\n */\ninterface AuthenticatorAttestationResponse extends AuthenticatorResponse {\n /**\n * The **`attestationObject`** property of the entire `attestationObject` with a private key that is stored in the authenticator when it is manufactured.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/attestationObject)\n */\n readonly attestationObject: ArrayBuffer;\n /**\n * The **`getAuthenticatorData()`** method of the AuthenticatorAttestationResponse interface returns an ArrayBuffer containing the authenticator data contained within the AuthenticatorAttestationResponse.attestationObject property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getAuthenticatorData)\n */\n getAuthenticatorData(): ArrayBuffer;\n /**\n * The **`getPublicKey()`** method of the AuthenticatorAttestationResponse interface returns an ArrayBuffer containing the DER `SubjectPublicKeyInfo` of the new credential (see Subject Public Key Info), or `null` if this is not available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKey)\n */\n getPublicKey(): ArrayBuffer | null;\n /**\n * The **`getPublicKeyAlgorithm()`** method of the AuthenticatorAttestationResponse interface returns a number that is equal to a COSE Algorithm Identifier, representing the cryptographic algorithm used for the new credential.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKeyAlgorithm)\n */\n getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;\n /**\n * The **`getTransports()`** method of the AuthenticatorAttestationResponse interface returns an array of strings describing the different transports which may be used by the authenticator.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getTransports)\n */\n getTransports(): string[];\n}\n\ndeclare var AuthenticatorAttestationResponse: {\n prototype: AuthenticatorAttestationResponse;\n new(): AuthenticatorAttestationResponse;\n};\n\n/**\n * The **`AuthenticatorResponse`** interface of the Web Authentication API is the base interface for interfaces that provide a cryptographic root of trust for a key pair.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse)\n */\ninterface AuthenticatorResponse {\n /**\n * The **`clientDataJSON`** property of the AuthenticatorResponse interface stores a JSON string in an An ArrayBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse/clientDataJSON)\n */\n readonly clientDataJSON: ArrayBuffer;\n}\n\ndeclare var AuthenticatorResponse: {\n prototype: AuthenticatorResponse;\n new(): AuthenticatorResponse;\n};\n\n/**\n * The **`BarProp`** interface of the Document Object Model represents the web browser user interface elements that are exposed to scripts in web pages.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp)\n */\ninterface BarProp {\n /**\n * The **`visible`** read-only property of the BarProp interface returns `true` if the user interface element it represents is visible.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp/visible)\n */\n readonly visible: boolean;\n}\n\ndeclare var BarProp: {\n prototype: BarProp;\n new(): BarProp;\n};\n\ninterface BaseAudioContextEventMap {\n \"statechange\": Event;\n}\n\n/**\n * The `BaseAudioContext` interface of the Web Audio API acts as a base definition for online and offline audio-processing graphs, as represented by AudioContext and OfflineAudioContext respectively.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext)\n */\ninterface BaseAudioContext extends EventTarget {\n /**\n * The `audioWorklet` read-only property of the processing.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet)\n */\n readonly audioWorklet: AudioWorklet;\n /**\n * The `currentTime` read-only property of the BaseAudioContext interface returns a double representing an ever-increasing hardware timestamp in seconds that can be used for scheduling audio playback, visualizing timelines, etc.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime)\n */\n readonly currentTime: number;\n /**\n * The `destination` property of the BaseAudioContext interface returns an AudioDestinationNode representing the final destination of all audio in the context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination)\n */\n readonly destination: AudioDestinationNode;\n /**\n * The `listener` property of the BaseAudioContext interface returns an AudioListener object that can then be used for implementing 3D audio spatialization.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener)\n */\n readonly listener: AudioListener;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/statechange_event) */\n onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;\n /**\n * The `sampleRate` property of the BaseAudioContext interface returns a floating point number representing the sample rate, in samples per second, used by all nodes in this audio context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate)\n */\n readonly sampleRate: number;\n /**\n * The `state` read-only property of the BaseAudioContext interface returns the current state of the `AudioContext`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state)\n */\n readonly state: AudioContextState;\n /**\n * The `createAnalyser()` method of the can be used to expose audio time and frequency data and create data visualizations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser)\n */\n createAnalyser(): AnalyserNode;\n /**\n * The `createBiquadFilter()` method of the BaseAudioContext interface creates a BiquadFilterNode, which represents a second order filter configurable as several different common filter types.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter)\n */\n createBiquadFilter(): BiquadFilterNode;\n /**\n * The `createBuffer()` method of the BaseAudioContext Interface is used to create a new, empty AudioBuffer object, which can then be populated by data, and played via an AudioBufferSourceNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer)\n */\n createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\n /**\n * The `createBufferSource()` method of the BaseAudioContext Interface is used to create a new AudioBufferSourceNode, which can be used to play audio data contained within an AudioBuffer object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource)\n */\n createBufferSource(): AudioBufferSourceNode;\n /**\n * The `createChannelMerger()` method of the BaseAudioContext interface creates a ChannelMergerNode, which combines channels from multiple audio streams into a single audio stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger)\n */\n createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\n /**\n * The `createChannelSplitter()` method of the BaseAudioContext Interface is used to create a ChannelSplitterNode, which is used to access the individual channels of an audio stream and process them separately.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter)\n */\n createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\n /**\n * The **`createConstantSource()`** property of the BaseAudioContext interface creates a outputs a monaural (one-channel) sound signal whose samples all have the same value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource)\n */\n createConstantSource(): ConstantSourceNode;\n /**\n * The `createConvolver()` method of the BaseAudioContext interface creates a ConvolverNode, which is commonly used to apply reverb effects to your audio.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver)\n */\n createConvolver(): ConvolverNode;\n /**\n * The `createDelay()` method of the which is used to delay the incoming audio signal by a certain amount of time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay)\n */\n createDelay(maxDelayTime?: number): DelayNode;\n /**\n * The `createDynamicsCompressor()` method of the BaseAudioContext Interface is used to create a DynamicsCompressorNode, which can be used to apply compression to an audio signal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor)\n */\n createDynamicsCompressor(): DynamicsCompressorNode;\n /**\n * The `createGain()` method of the BaseAudioContext interface creates a GainNode, which can be used to control the overall gain (or volume) of the audio graph.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain)\n */\n createGain(): GainNode;\n /**\n * The **`createIIRFilter()`** method of the BaseAudioContext interface creates an IIRFilterNode, which represents a general **infinite impulse response** (IIR) filter which can be configured to serve as various types of filter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter)\n */\n createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\n /**\n * The `createOscillator()` method of the BaseAudioContext interface creates an OscillatorNode, a source representing a periodic waveform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator)\n */\n createOscillator(): OscillatorNode;\n /**\n * The `createPanner()` method of the BaseAudioContext Interface is used to create a new PannerNode, which is used to spatialize an incoming audio stream in 3D space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner)\n */\n createPanner(): PannerNode;\n /**\n * The `createPeriodicWave()` method of the BaseAudioContext interface is used to create a PeriodicWave.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave)\n */\n createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\n /**\n * The `createScriptProcessor()` method of the BaseAudioContext interface creates a ScriptProcessorNode used for direct audio processing.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor)\n */\n createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\n /**\n * The `createStereoPanner()` method of the BaseAudioContext interface creates a StereoPannerNode, which can be used to apply stereo panning to an audio source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner)\n */\n createStereoPanner(): StereoPannerNode;\n /**\n * The `createWaveShaper()` method of the BaseAudioContext interface creates a WaveShaperNode, which represents a non-linear distortion.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper)\n */\n createWaveShaper(): WaveShaperNode;\n /**\n * The `decodeAudioData()` method of the BaseAudioContext Interface is used to asynchronously decode audio file data contained in an rate, then passed to a callback or promise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData)\n */\n decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise;\n addEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BaseAudioContext: {\n prototype: BaseAudioContext;\n new(): BaseAudioContext;\n};\n\n/**\n * The **`BeforeUnloadEvent`** interface represents the event object for the Window/beforeunload_event event, which is fired when the current window, contained document, and associated resources are about to be unloaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent)\n */\ninterface BeforeUnloadEvent extends Event {\n /**\n * The **`returnValue`** property of the `returnValue` is initialized to an empty string (`''`) value.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent/returnValue)\n */\n returnValue: any;\n}\n\ndeclare var BeforeUnloadEvent: {\n prototype: BeforeUnloadEvent;\n new(): BeforeUnloadEvent;\n};\n\n/**\n * The `BiquadFilterNode` interface represents a simple low-order filter, and is created using the BaseAudioContext/createBiquadFilter method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode)\n */\ninterface BiquadFilterNode extends AudioNode {\n /**\n * The `Q` property of the BiquadFilterNode interface is an a-rate AudioParam, a double representing a Q factor, or _quality factor_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/Q)\n */\n readonly Q: AudioParam;\n /**\n * The `detune` property of the BiquadFilterNode interface is an a-rate AudioParam representing detuning of the frequency in cents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/detune)\n */\n readonly detune: AudioParam;\n /**\n * The `frequency` property of the BiquadFilterNode interface is an a-rate AudioParam — a double representing a frequency in the current filtering algorithm measured in hertz (Hz).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/frequency)\n */\n readonly frequency: AudioParam;\n /**\n * The `gain` property of the BiquadFilterNode interface is an a-rate AudioParam — a double representing the gain used in the current filtering algorithm.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/gain)\n */\n readonly gain: AudioParam;\n /**\n * The `type` property of the BiquadFilterNode interface is a string (enum) value defining the kind of filtering algorithm the node is implementing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/type)\n */\n type: BiquadFilterType;\n /**\n * The `getFrequencyResponse()` method of the BiquadFilterNode interface takes the current filtering algorithm's settings and calculates the frequency response for frequencies specified in a specified array of frequencies.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/getFrequencyResponse)\n */\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var BiquadFilterNode: {\n prototype: BiquadFilterNode;\n new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;\n};\n\n/**\n * The **`Blob`** interface represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a ReadableStream so its methods can be used for processing the data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)\n */\ninterface Blob {\n /**\n * The **`size`** read-only property of the Blob interface returns the size of the Blob or File in bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size)\n */\n readonly size: number;\n /**\n * The **`type`** read-only property of the Blob interface returns the MIME type of the file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type)\n */\n readonly type: string;\n /**\n * The **`arrayBuffer()`** method of the Blob interface returns a Promise that resolves with the contents of the blob as binary data contained in an ArrayBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer)\n */\n arrayBuffer(): Promise;\n /**\n * The **`bytes()`** method of the Blob interface returns a Promise that resolves with a Uint8Array containing the contents of the blob as an array of bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/bytes)\n */\n bytes(): Promise>;\n /**\n * The **`slice()`** method of the Blob interface creates and returns a new `Blob` object which contains data from a subset of the blob on which it's called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice)\n */\n slice(start?: number, end?: number, contentType?: string): Blob;\n /**\n * The **`stream()`** method of the Blob interface returns a ReadableStream which upon reading returns the data contained within the `Blob`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream)\n */\n stream(): ReadableStream>;\n /**\n * The **`text()`** method of the string containing the contents of the blob, interpreted as UTF-8.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text)\n */\n text(): Promise;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\n/**\n * The **`BlobEvent`** interface of the MediaStream Recording API represents events associated with a Blob.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent)\n */\ninterface BlobEvent extends Event {\n /**\n * The **`data`** read-only property of the BlobEvent interface represents a Blob associated with the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/data)\n */\n readonly data: Blob;\n /**\n * The **`timecode`** read-only property of the BlobEvent interface indicates the difference between the timestamp of the first chunk of data, and the timestamp of the first chunk in the first `BlobEvent` produced by this recorder.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/timecode)\n */\n readonly timecode: DOMHighResTimeStamp;\n}\n\ndeclare var BlobEvent: {\n prototype: BlobEvent;\n new(type: string, eventInitDict: BlobEventInit): BlobEvent;\n};\n\ninterface Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */\n readonly body: ReadableStream> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n readonly bodyUsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) */\n bytes(): Promise>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */\n formData(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */\n json(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */\n text(): Promise;\n}\n\ninterface BroadcastChannelEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\n/**\n * The **`BroadcastChannel`** interface represents a named channel that any browsing context of a given origin can subscribe to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel)\n */\ninterface BroadcastChannel extends EventTarget {\n /**\n * The **`name`** read-only property of the BroadcastChannel interface returns a string, which uniquely identifies the given channel with its name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */\n onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */\n onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /**\n * The **`close()`** method of the BroadcastChannel interface terminates the connection to the underlying channel, allowing the object to be garbage collected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)\n */\n close(): void;\n /**\n * The **`postMessage()`** method of the BroadcastChannel interface sends a message, which can be of any kind of Object, to each listener in any browsing context with the same origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)\n */\n postMessage(message: any): void;\n addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n prototype: BroadcastChannel;\n new(name: string): BroadcastChannel;\n};\n\n/**\n * The **`ByteLengthQueuingStrategy`** interface of the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)\n */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy {\n /**\n * The read-only **`ByteLengthQueuingStrategy.highWaterMark`** property returns the total number of bytes that can be contained in the internal queue before backpressure is applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark)\n */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n prototype: ByteLengthQueuingStrategy;\n new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/**\n * The **`CDATASection`** interface represents a CDATA section that can be used within XML to include extended portions of unescaped text.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CDATASection)\n */\ninterface CDATASection extends Text {\n}\n\ndeclare var CDATASection: {\n prototype: CDATASection;\n new(): CDATASection;\n};\n\n/**\n * The `CSPViolationReportBody` interface is an extension of the Reporting API that represents the body of a Content Security Policy (CSP) violation report.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody)\n */\ninterface CSPViolationReportBody extends ReportBody {\n /**\n * The **`blockedURL`** read-only property of the CSPViolationReportBody interface is a string value that represents the resource that was blocked because it violates a Content Security Policy (CSP).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/blockedURL)\n */\n readonly blockedURL: string | null;\n /**\n * The **`columnNumber`** read-only property of the CSPViolationReportBody interface indicates the column number in the source file that triggered the Content Security Policy (CSP) violation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/columnNumber)\n */\n readonly columnNumber: number | null;\n /**\n * The **`disposition`** read-only property of the CSPViolationReportBody interface indicates whether the user agent is configured to enforce Content Security Policy (CSP) violations or only report them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/disposition)\n */\n readonly disposition: SecurityPolicyViolationEventDisposition;\n /**\n * The **`documentURL`** read-only property of the CSPViolationReportBody interface is a string that represents the URL of the document or worker that violated the Content Security Policy (CSP).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/documentURL)\n */\n readonly documentURL: string;\n /**\n * The **`effectiveDirective`** read-only property of the CSPViolationReportBody interface is a string that represents the effective Content Security Policy (CSP) directive that was violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/effectiveDirective)\n */\n readonly effectiveDirective: string;\n /**\n * The **`lineNumber`** read-only property of the CSPViolationReportBody interface indicates the line number in the source file that triggered the Content Security Policy (CSP) violation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/lineNumber)\n */\n readonly lineNumber: number | null;\n /**\n * The **`originalPolicy`** read-only property of the CSPViolationReportBody interface is a string that represents the Content Security Policy (CSP) whose enforcement uncovered the violation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/originalPolicy)\n */\n readonly originalPolicy: string;\n /**\n * The **`referrer`** read-only property of the CSPViolationReportBody interface is a string that represents the URL of the referring page of the resource who's Content Security Policy (CSP) was violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/referrer)\n */\n readonly referrer: string | null;\n /**\n * The **`sample`** read-only property of the CSPViolationReportBody interface is a string that contains a part of the resource that violated the Content Security Policy (CSP).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/sample)\n */\n readonly sample: string | null;\n /**\n * The **`sourceFile`** read-only property of the CSPViolationReportBody interface indicates the URL of the source file that violated the Content Security Policy (CSP).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/sourceFile)\n */\n readonly sourceFile: string | null;\n /**\n * The **`statusCode`** read-only property of the CSPViolationReportBody interface is a number representing the HTTP status code of the response to the request that triggered a Content Security Policy (CSP) violation (when loading a window or worker).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/statusCode)\n */\n readonly statusCode: number;\n /**\n * The **`toJSON()`** method of the CSPViolationReportBody interface is a _serializer_, which returns a JSON representation of the `CSPViolationReportBody` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var CSPViolationReportBody: {\n prototype: CSPViolationReportBody;\n new(): CSPViolationReportBody;\n};\n\n/**\n * The **`CSSAnimation`** interface of the Web Animations API represents an Animation object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation)\n */\ninterface CSSAnimation extends Animation {\n /**\n * The **`animationName`** property of the specifies one or more keyframe at-rules which describe the animation applied to the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation/animationName)\n */\n readonly animationName: string;\n addEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSAnimation: {\n prototype: CSSAnimation;\n new(): CSSAnimation;\n};\n\n/**\n * An object implementing the **`CSSConditionRule`** interface represents a single condition CSS at-rule, which consists of a condition and a statement block.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule)\n */\ninterface CSSConditionRule extends CSSGroupingRule {\n /**\n * The read-only **`conditionText`** property of the CSSConditionRule interface returns or sets the text of the CSS rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule/conditionText)\n */\n readonly conditionText: string;\n}\n\ndeclare var CSSConditionRule: {\n prototype: CSSConditionRule;\n new(): CSSConditionRule;\n};\n\n/**\n * The **`CSSContainerRule`** interface represents a single CSS @container rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule)\n */\ninterface CSSContainerRule extends CSSConditionRule {\n /**\n * The read-only **`containerName`** property of the CSSContainerRule interface represents the container name of the associated CSS @container at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerName)\n */\n readonly containerName: string;\n /**\n * The read-only **`containerQuery`** property of the CSSContainerRule interface returns a string representing the container conditions that are evaluated when the container changes size in order to determine if the styles in the associated @container are applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerQuery)\n */\n readonly containerQuery: string;\n}\n\ndeclare var CSSContainerRule: {\n prototype: CSSContainerRule;\n new(): CSSContainerRule;\n};\n\n/**\n * The **`CSSCounterStyleRule`** interface represents an @counter-style at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule)\n */\ninterface CSSCounterStyleRule extends CSSRule {\n /**\n * The **`additiveSymbols`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/additive-symbols descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/additiveSymbols)\n */\n additiveSymbols: string;\n /**\n * The **`fallback`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/fallback descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/fallback)\n */\n fallback: string;\n /**\n * The **`name`** property of the CSSCounterStyleRule interface gets and sets the <custom-ident> defined as the `name` for the associated rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/name)\n */\n name: string;\n /**\n * The **`negative`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/negative descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/negative)\n */\n negative: string;\n /**\n * The **`pad`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/pad descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/pad)\n */\n pad: string;\n /**\n * The **`prefix`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/prefix descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/prefix)\n */\n prefix: string;\n /**\n * The **`range`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/range descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/range)\n */\n range: string;\n /**\n * The **`speakAs`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/speak-as descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/speakAs)\n */\n speakAs: string;\n /**\n * The **`suffix`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/suffix descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/suffix)\n */\n suffix: string;\n /**\n * The **`symbols`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/symbols descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/symbols)\n */\n symbols: string;\n /**\n * The **`system`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/system descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/system)\n */\n system: string;\n}\n\ndeclare var CSSCounterStyleRule: {\n prototype: CSSCounterStyleRule;\n new(): CSSCounterStyleRule;\n};\n\n/**\n * The **`CSSFontFaceRule`** interface represents an @font-face at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule)\n */\ninterface CSSFontFaceRule extends CSSRule {\n /**\n * The read-only **`style`** property of the CSSFontFaceRule interface returns the style information from the @font-face at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule/style)\n */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n}\n\ndeclare var CSSFontFaceRule: {\n prototype: CSSFontFaceRule;\n new(): CSSFontFaceRule;\n};\n\n/**\n * The **`CSSFontFeatureValuesRule`** interface represents an @font-feature-values at-rule, letting developers assign for each font face a common name to specify features indices to be used in font-variant-alternates.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule)\n */\ninterface CSSFontFeatureValuesRule extends CSSRule {\n /**\n * The **`fontFamily`** property of the CSSConditionRule interface represents the name of the font family it applies to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule/fontFamily)\n */\n fontFamily: string;\n}\n\ndeclare var CSSFontFeatureValuesRule: {\n prototype: CSSFontFeatureValuesRule;\n new(): CSSFontFeatureValuesRule;\n};\n\n/**\n * The **`CSSFontPaletteValuesRule`** interface represents an @font-palette-values at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule)\n */\ninterface CSSFontPaletteValuesRule extends CSSRule {\n /**\n * The read-only **`basePalette`** property of the CSSFontPaletteValuesRule interface indicates the base palette associated with the rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/basePalette)\n */\n readonly basePalette: string;\n /**\n * The read-only **`fontFamily`** property of the CSSFontPaletteValuesRule interface lists the font families the rule can be applied to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/fontFamily)\n */\n readonly fontFamily: string;\n /**\n * The read-only **`name`** property of the CSSFontPaletteValuesRule interface represents the name identifying the associated @font-palette-values at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/name)\n */\n readonly name: string;\n /**\n * The read-only **`overrideColors`** property of the CSSFontPaletteValuesRule interface is a string containing a list of color index and color pair that are to be used instead.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/overrideColors)\n */\n readonly overrideColors: string;\n}\n\ndeclare var CSSFontPaletteValuesRule: {\n prototype: CSSFontPaletteValuesRule;\n new(): CSSFontPaletteValuesRule;\n};\n\n/**\n * The **`CSSGroupingRule`** interface of the CSS Object Model represents any CSS at-rule that contains other rules nested within it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule)\n */\ninterface CSSGroupingRule extends CSSRule {\n /**\n * The **`cssRules`** property of the a collection of CSSRule objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/cssRules)\n */\n readonly cssRules: CSSRuleList;\n /**\n * The **`deleteRule()`** method of the rules.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/deleteRule)\n */\n deleteRule(index: number): void;\n /**\n * The **`insertRule()`** method of the ```js-nolint insertRule(rule) insertRule(rule, index) ``` - `rule` - : A string - `index` [MISSING: optional_inline] - : An optional index at which to insert the rule; defaults to 0.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/insertRule)\n */\n insertRule(rule: string, index?: number): number;\n}\n\ndeclare var CSSGroupingRule: {\n prototype: CSSGroupingRule;\n new(): CSSGroupingRule;\n};\n\n/**\n * The **`CSSImageValue`** interface of the CSS Typed Object Model API represents values for properties that take an image, for example background-image, list-style-image, or border-image-source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue)\n */\ninterface CSSImageValue extends CSSStyleValue {\n}\n\ndeclare var CSSImageValue: {\n prototype: CSSImageValue;\n new(): CSSImageValue;\n};\n\n/**\n * The **`CSSImportRule`** interface represents an @import at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule)\n */\ninterface CSSImportRule extends CSSRule {\n /**\n * The read-only **`href`** property of the The resolved URL will be the `href` attribute of the associated stylesheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/href)\n */\n readonly href: string;\n /**\n * The read-only **`layerName`** property of the CSSImportRule interface returns the name of the cascade layer created by the @import at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/layerName)\n */\n readonly layerName: string | null;\n /**\n * The read-only **`media`** property of the containing the value of the `media` attribute of the associated stylesheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/media)\n */\n get media(): MediaList;\n set media(mediaText: string);\n /**\n * The read-only **`styleSheet`** property of the in the form of a CSSStyleSheet object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/styleSheet)\n */\n readonly styleSheet: CSSStyleSheet | null;\n /**\n * The read-only **`supportsText`** property of the CSSImportRule interface returns the supports condition specified by the @import at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/supportsText)\n */\n readonly supportsText: string | null;\n}\n\ndeclare var CSSImportRule: {\n prototype: CSSImportRule;\n new(): CSSImportRule;\n};\n\n/**\n * The **`CSSKeyframeRule`** interface describes an object representing a set of styles for a given keyframe.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule)\n */\ninterface CSSKeyframeRule extends CSSRule {\n /**\n * The **`keyText`** property of the CSSKeyframeRule interface represents the keyframe selector as a comma-separated list of percentage values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/keyText)\n */\n keyText: string;\n /**\n * The read-only **`CSSKeyframeRule.style`** property is the CSSStyleDeclaration interface for the declaration block of the CSSKeyframeRule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/style)\n */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n}\n\ndeclare var CSSKeyframeRule: {\n prototype: CSSKeyframeRule;\n new(): CSSKeyframeRule;\n};\n\n/**\n * The **`CSSKeyframesRule`** interface describes an object representing a complete set of keyframes for a CSS animation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)\n */\ninterface CSSKeyframesRule extends CSSRule {\n /**\n * The read-only **`cssRules`** property of the CSSKeyframeRule interface returns a CSSRuleList containing the rules in the keyframes at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/cssRules)\n */\n readonly cssRules: CSSRuleList;\n /**\n * The read-only **`length`** property of the CSSKeyframeRule interface returns the number of CSSKeyframeRule objects in its list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/length)\n */\n readonly length: number;\n /**\n * The **`name`** property of the CSSKeyframeRule interface gets and sets the name of the animation as used by the animation-name property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/name)\n */\n name: string;\n /**\n * The **`appendRule()`** method of the CSSKeyframeRule interface appends a CSSKeyFrameRule to the end of the rules.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/appendRule)\n */\n appendRule(rule: string): void;\n /**\n * The **`deleteRule()`** method of the CSSKeyframeRule interface deletes the CSSKeyFrameRule that matches the specified keyframe selector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/deleteRule)\n */\n deleteRule(select: string): void;\n /**\n * The **`findRule()`** method of the CSSKeyframeRule interface finds the CSSKeyFrameRule that matches the specified keyframe selector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/findRule)\n */\n findRule(select: string): CSSKeyframeRule | null;\n [index: number]: CSSKeyframeRule;\n}\n\ndeclare var CSSKeyframesRule: {\n prototype: CSSKeyframesRule;\n new(): CSSKeyframesRule;\n};\n\n/**\n * The **`CSSKeywordValue`** interface of the CSS Typed Object Model API creates an object to represent CSS keywords and other identifiers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue)\n */\ninterface CSSKeywordValue extends CSSStyleValue {\n /**\n * The **`value`** property of the `CSSKeywordValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value)\n */\n value: string;\n}\n\ndeclare var CSSKeywordValue: {\n prototype: CSSKeywordValue;\n new(value: string): CSSKeywordValue;\n};\n\n/**\n * The **`CSSLayerBlockRule`** represents a @layer block rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule)\n */\ninterface CSSLayerBlockRule extends CSSGroupingRule {\n /**\n * The read-only **`name`** property of the CSSLayerBlockRule interface represents the name of the associated cascade layer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule/name)\n */\n readonly name: string;\n}\n\ndeclare var CSSLayerBlockRule: {\n prototype: CSSLayerBlockRule;\n new(): CSSLayerBlockRule;\n};\n\n/**\n * The **`CSSLayerStatementRule`** represents a @layer statement rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule)\n */\ninterface CSSLayerStatementRule extends CSSRule {\n /**\n * The read-only **`nameList`** property of the CSSLayerStatementRule interface return the list of associated cascade layer names.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule/nameList)\n */\n readonly nameList: ReadonlyArray;\n}\n\ndeclare var CSSLayerStatementRule: {\n prototype: CSSLayerStatementRule;\n new(): CSSLayerStatementRule;\n};\n\ninterface CSSMathClamp extends CSSMathValue {\n readonly lower: CSSNumericValue;\n readonly upper: CSSNumericValue;\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathClamp: {\n prototype: CSSMathClamp;\n new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;\n};\n\n/**\n * The **`CSSMathInvert`** interface of the CSS Typed Object Model API represents a CSS calc used as `calc(1 / )`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert)\n */\ninterface CSSMathInvert extends CSSMathValue {\n /**\n * The CSSMathInvert.value read-only property of the A CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value)\n */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathInvert: {\n prototype: CSSMathInvert;\n new(arg: CSSNumberish): CSSMathInvert;\n};\n\n/**\n * The **`CSSMathMax`** interface of the CSS Typed Object Model API represents the CSS max function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax)\n */\ninterface CSSMathMax extends CSSMathValue {\n /**\n * The CSSMathMax.values read-only property of the which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMax: {\n prototype: CSSMathMax;\n new(...args: CSSNumberish[]): CSSMathMax;\n};\n\n/**\n * The **`CSSMathMin`** interface of the CSS Typed Object Model API represents the CSS min function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin)\n */\ninterface CSSMathMin extends CSSMathValue {\n /**\n * The CSSMathMin.values read-only property of the which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMin: {\n prototype: CSSMathMin;\n new(...args: CSSNumberish[]): CSSMathMin;\n};\n\n/**\n * The **`CSSMathNegate`** interface of the CSS Typed Object Model API negates the value passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate)\n */\ninterface CSSMathNegate extends CSSMathValue {\n /**\n * The CSSMathNegate.value read-only property of the A CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value)\n */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathNegate: {\n prototype: CSSMathNegate;\n new(arg: CSSNumberish): CSSMathNegate;\n};\n\n/**\n * The **`CSSMathProduct`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct)\n */\ninterface CSSMathProduct extends CSSMathValue {\n /**\n * The **`CSSMathProduct.values`** read-only property of the CSSMathProduct interface returns a A CSSNumericArray.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathProduct: {\n prototype: CSSMathProduct;\n new(...args: CSSNumberish[]): CSSMathProduct;\n};\n\n/**\n * The **`CSSMathSum`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum)\n */\ninterface CSSMathSum extends CSSMathValue {\n /**\n * The **`CSSMathSum.values`** read-only property of the CSSMathSum interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values)\n */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathSum: {\n prototype: CSSMathSum;\n new(...args: CSSNumberish[]): CSSMathSum;\n};\n\n/**\n * The **`CSSMathValue`** interface of the CSS Typed Object Model API a base class for classes representing complex numeric values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue)\n */\ninterface CSSMathValue extends CSSNumericValue {\n /**\n * The **`CSSMathValue.operator`** read-only property of the CSSMathValue interface indicates the operator that the current subtype represents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator)\n */\n readonly operator: CSSMathOperator;\n}\n\ndeclare var CSSMathValue: {\n prototype: CSSMathValue;\n new(): CSSMathValue;\n};\n\n/**\n * The **`CSSMatrixComponent`** interface of the CSS Typed Object Model API represents the matrix() and matrix3d() values of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent)\n */\ninterface CSSMatrixComponent extends CSSTransformComponent {\n /**\n * The **`matrix`** property of the See the matrix() and matrix3d() pages for examples.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix)\n */\n matrix: DOMMatrix;\n}\n\ndeclare var CSSMatrixComponent: {\n prototype: CSSMatrixComponent;\n new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;\n};\n\n/**\n * The **`CSSMediaRule`** interface represents a single CSS @media rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule)\n */\ninterface CSSMediaRule extends CSSConditionRule {\n /**\n * The read-only **`media`** property of the destination medium for style information.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule/media)\n */\n get media(): MediaList;\n set media(mediaText: string);\n}\n\ndeclare var CSSMediaRule: {\n prototype: CSSMediaRule;\n new(): CSSMediaRule;\n};\n\n/**\n * The **`CSSNamespaceRule`** interface describes an object representing a single CSS @namespace at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule)\n */\ninterface CSSNamespaceRule extends CSSRule {\n /**\n * The read-only **`namespaceURI`** property of the CSSNamespaceRule returns a string containing the text of the URI of the given namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/namespaceURI)\n */\n readonly namespaceURI: string;\n /**\n * The read-only **`prefix`** property of the CSSNamespaceRule returns a string with the name of the prefix associated to this namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/prefix)\n */\n readonly prefix: string;\n}\n\ndeclare var CSSNamespaceRule: {\n prototype: CSSNamespaceRule;\n new(): CSSNamespaceRule;\n};\n\n/**\n * The **`CSSNestedDeclarations`** interface of the CSS Rule API is used to group nested CSSRules.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNestedDeclarations)\n */\ninterface CSSNestedDeclarations extends CSSRule {\n /**\n * The read-only **`style`** property of the CSSNestedDeclarations interface represents the styles associated with the nested rules.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNestedDeclarations/style)\n */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n}\n\ndeclare var CSSNestedDeclarations: {\n prototype: CSSNestedDeclarations;\n new(): CSSNestedDeclarations;\n};\n\n/**\n * The **`CSSNumericArray`** interface of the CSS Typed Object Model API contains a list of CSSNumericValue objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray)\n */\ninterface CSSNumericArray {\n /**\n * The read-only **`length`** property of the An integer representing the number of CSSNumericValue objects in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length)\n */\n readonly length: number;\n forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;\n [index: number]: CSSNumericValue;\n}\n\ndeclare var CSSNumericArray: {\n prototype: CSSNumericArray;\n new(): CSSNumericArray;\n};\n\n/**\n * The **`CSSNumericValue`** interface of the CSS Typed Object Model API represents operations that all numeric values can perform.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue)\n */\ninterface CSSNumericValue extends CSSStyleValue {\n /**\n * The **`add()`** method of the `CSSNumericValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add)\n */\n add(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`div()`** method of the supplied value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div)\n */\n div(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`equals()`** method of the value are strictly equal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals)\n */\n equals(...value: CSSNumberish[]): boolean;\n /**\n * The **`max()`** method of the passed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max)\n */\n max(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`min()`** method of the values passed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min)\n */\n min(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`mul()`** method of the the supplied value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul)\n */\n mul(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`sub()`** method of the `CSSNumericValue`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub)\n */\n sub(...values: CSSNumberish[]): CSSNumericValue;\n /**\n * The **`to()`** method of the another.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to)\n */\n to(unit: string): CSSUnitValue;\n /**\n * The **`toSum()`** method of the ```js-nolint toSum(units) ``` - `units` - : The units to convert to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum)\n */\n toSum(...units: string[]): CSSMathSum;\n /**\n * The **`type()`** method of the `CSSNumericValue`, one of `angle`, `flex`, `frequency`, `length`, `resolution`, `percent`, `percentHint`, or `time`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type)\n */\n type(): CSSNumericType;\n}\n\ndeclare var CSSNumericValue: {\n prototype: CSSNumericValue;\n new(): CSSNumericValue;\n /**\n * The **`parse()`** static method of the members are value and the units.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/parse_static)\n */\n parse(cssText: string): CSSNumericValue;\n};\n\n/**\n * **`CSSPageRule`** represents a single CSS @page rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule)\n */\ninterface CSSPageRule extends CSSGroupingRule {\n /**\n * The **`selectorText`** property of the CSSPageRule interface gets and sets the selectors associated with the `CSSPageRule`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/selectorText)\n */\n selectorText: string;\n /**\n * The **`style`** read-only property of the CSSPageRule interface returns a CSSPageDescriptors object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/style)\n */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n}\n\ndeclare var CSSPageRule: {\n prototype: CSSPageRule;\n new(): CSSPageRule;\n};\n\n/**\n * The **`CSSPerspective`** interface of the CSS Typed Object Model API represents the perspective() value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective)\n */\ninterface CSSPerspective extends CSSTransformComponent {\n /**\n * The **`length`** property of the It is used to apply a perspective transform to the element and its content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length)\n */\n length: CSSPerspectiveValue;\n}\n\ndeclare var CSSPerspective: {\n prototype: CSSPerspective;\n new(length: CSSPerspectiveValue): CSSPerspective;\n};\n\n/**\n * The **`CSSPropertyRule`** interface of the CSS Properties and Values API represents a single CSS @property rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule)\n */\ninterface CSSPropertyRule extends CSSRule {\n /**\n * The read-only **`inherits`** property of the CSSPropertyRule interface returns the inherit flag of the custom property registration represented by the @property rule, a boolean describing whether or not the property inherits by default.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/inherits)\n */\n readonly inherits: boolean;\n /**\n * The read-only **`initialValue`** nullable property of the CSSPropertyRule interface returns the initial value of the custom property registration represented by the @property rule, controlling the property's initial value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/initialValue)\n */\n readonly initialValue: string | null;\n /**\n * The read-only **`name`** property of the CSSPropertyRule interface represents the property name, this being the serialization of the name given to the custom property in the @property rule's prelude.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/name)\n */\n readonly name: string;\n /**\n * The read-only **`syntax`** property of the CSSPropertyRule interface returns the literal syntax of the custom property registration represented by the @property rule, controlling how the property's value is parsed at computed-value time.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/syntax)\n */\n readonly syntax: string;\n}\n\ndeclare var CSSPropertyRule: {\n prototype: CSSPropertyRule;\n new(): CSSPropertyRule;\n};\n\n/**\n * The **`CSSRotate`** interface of the CSS Typed Object Model API represents the rotate value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate)\n */\ninterface CSSRotate extends CSSTransformComponent {\n /**\n * The **`angle`** property of the denotes a clockwise rotation, a negative angle a counter-clockwise one.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle)\n */\n angle: CSSNumericValue;\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x)\n */\n x: CSSNumberish;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y)\n */\n y: CSSNumberish;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z)\n */\n z: CSSNumberish;\n}\n\ndeclare var CSSRotate: {\n prototype: CSSRotate;\n new(angle: CSSNumericValue): CSSRotate;\n new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;\n};\n\n/**\n * The **`CSSRule`** interface represents a single CSS rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule)\n */\ninterface CSSRule {\n /**\n * The **`cssText`** property of the CSSRule interface returns the actual text of a CSSStyleSheet style-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/cssText)\n */\n cssText: string;\n /**\n * The **`parentRule`** property of the CSSRule interface returns the containing rule of the current rule if this exists, or otherwise returns null.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentRule)\n */\n readonly parentRule: CSSRule | null;\n /**\n * The **`parentStyleSheet`** property of the the current rule is defined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentStyleSheet)\n */\n readonly parentStyleSheet: CSSStyleSheet | null;\n /**\n * The read-only **`type`** property of the indicating which type of rule the CSSRule represents.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/type)\n */\n readonly type: number;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n}\n\ndeclare var CSSRule: {\n prototype: CSSRule;\n new(): CSSRule;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n};\n\n/**\n * A `CSSRuleList` represents an ordered collection of read-only CSSRule objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList)\n */\ninterface CSSRuleList {\n /**\n * The **`length`** property of the CSSRuleList interface returns the number of CSSRule objects in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length)\n */\n readonly length: number;\n /**\n * The **`item()`** method of the CSSRuleList interface returns the CSSRule object at the specified `index` or `null` if the specified `index` doesn't exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item)\n */\n item(index: number): CSSRule | null;\n [index: number]: CSSRule;\n}\n\ndeclare var CSSRuleList: {\n prototype: CSSRuleList;\n new(): CSSRuleList;\n};\n\n/**\n * The **`CSSScale`** interface of the CSS Typed Object Model API represents the scale() and scale3d() values of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale)\n */\ninterface CSSScale extends CSSTransformComponent {\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x)\n */\n x: CSSNumberish;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y)\n */\n y: CSSNumberish;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z)\n */\n z: CSSNumberish;\n}\n\ndeclare var CSSScale: {\n prototype: CSSScale;\n new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;\n};\n\n/**\n * The **`CSSScopeRule`** interface of the CSS Object Model represents a CSS @scope at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule)\n */\ninterface CSSScopeRule extends CSSGroupingRule {\n /**\n * The **`end`** property of the CSSScopeRule interface returns a string containing the value of the `@scope` at-rule's scope limit.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule/end)\n */\n readonly end: string | null;\n /**\n * The **`start`** property of the CSSScopeRule interface returns a string containing the value of the `@scope` at-rule's scope root.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule/start)\n */\n readonly start: string | null;\n}\n\ndeclare var CSSScopeRule: {\n prototype: CSSScopeRule;\n new(): CSSScopeRule;\n};\n\n/**\n * The **`CSSSkew`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew)\n */\ninterface CSSSkew extends CSSTransformComponent {\n /**\n * The **`ax`** property of the along the x-axis (or abscissa).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax)\n */\n ax: CSSNumericValue;\n /**\n * The **`ay`** property of the along the y-axis (or ordinate).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay)\n */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkew: {\n prototype: CSSSkew;\n new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;\n};\n\n/**\n * The **`CSSSkewX`** interface of the CSS Typed Object Model API represents the `skewX()` value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX)\n */\ninterface CSSSkewX extends CSSTransformComponent {\n /**\n * The **`ax`** property of the along the x-axis (or abscissa).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax)\n */\n ax: CSSNumericValue;\n}\n\ndeclare var CSSSkewX: {\n prototype: CSSSkewX;\n new(ax: CSSNumericValue): CSSSkewX;\n};\n\n/**\n * The **`CSSSkewY`** interface of the CSS Typed Object Model API represents the `skewY()` value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY)\n */\ninterface CSSSkewY extends CSSTransformComponent {\n /**\n * The **`ay`** property of the along the y-axis (or ordinate).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay)\n */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkewY: {\n prototype: CSSSkewY;\n new(ay: CSSNumericValue): CSSSkewY;\n};\n\n/**\n * The **`CSSStartingStyleRule`** interface of the CSS Object Model represents a CSS @starting-style at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStartingStyleRule)\n */\ninterface CSSStartingStyleRule extends CSSGroupingRule {\n}\n\ndeclare var CSSStartingStyleRule: {\n prototype: CSSStartingStyleRule;\n new(): CSSStartingStyleRule;\n};\n\n/**\n * The **`CSSStyleDeclaration`** interface represents an object that is a CSS declaration block, and exposes style information and various style-related methods and properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration)\n */\ninterface CSSStyleDeclaration {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/accent-color) */\n accentColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content) */\n alignContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items) */\n alignItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self) */\n alignSelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/alignment-baseline) */\n alignmentBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/all) */\n all: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation) */\n animation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-composition) */\n animationComposition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay) */\n animationDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction) */\n animationDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration) */\n animationDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode) */\n animationFillMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count) */\n animationIterationCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name) */\n animationName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state) */\n animationPlayState: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function) */\n animationTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance) */\n appearance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/aspect-ratio) */\n aspectRatio: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backdrop-filter) */\n backdropFilter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility) */\n backfaceVisibility: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background) */\n background: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-attachment) */\n backgroundAttachment: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-blend-mode) */\n backgroundBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip) */\n backgroundClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-color) */\n backgroundColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-image) */\n backgroundImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin) */\n backgroundOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position) */\n backgroundPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-x) */\n backgroundPositionX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-y) */\n backgroundPositionY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-repeat) */\n backgroundRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size) */\n backgroundSize: string;\n baselineShift: string;\n baselineSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/block-size) */\n blockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border) */\n border: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block) */\n borderBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-color) */\n borderBlockColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end) */\n borderBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-color) */\n borderBlockEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-style) */\n borderBlockEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-width) */\n borderBlockEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start) */\n borderBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-color) */\n borderBlockStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-style) */\n borderBlockStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-width) */\n borderBlockStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-style) */\n borderBlockStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-width) */\n borderBlockWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom) */\n borderBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-color) */\n borderBottomColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius) */\n borderBottomLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius) */\n borderBottomRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-style) */\n borderBottomStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-width) */\n borderBottomWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-collapse) */\n borderCollapse: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-color) */\n borderColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius) */\n borderEndEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius) */\n borderEndStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image) */\n borderImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-outset) */\n borderImageOutset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-repeat) */\n borderImageRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-slice) */\n borderImageSlice: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-source) */\n borderImageSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-width) */\n borderImageWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline) */\n borderInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-color) */\n borderInlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end) */\n borderInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color) */\n borderInlineEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style) */\n borderInlineEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width) */\n borderInlineEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start) */\n borderInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color) */\n borderInlineStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style) */\n borderInlineStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width) */\n borderInlineStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-style) */\n borderInlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-width) */\n borderInlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left) */\n borderLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-color) */\n borderLeftColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-style) */\n borderLeftStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-width) */\n borderLeftWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius) */\n borderRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right) */\n borderRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-color) */\n borderRightColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-style) */\n borderRightStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-width) */\n borderRightWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-spacing) */\n borderSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius) */\n borderStartEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius) */\n borderStartStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-style) */\n borderStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top) */\n borderTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-color) */\n borderTopColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius) */\n borderTopLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius) */\n borderTopRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-style) */\n borderTopStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-width) */\n borderTopWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-width) */\n borderWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/bottom) */\n bottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-decoration-break) */\n boxDecorationBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow) */\n boxShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing) */\n boxSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-after) */\n breakAfter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-before) */\n breakBefore: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-inside) */\n breakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caption-side) */\n captionSide: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caret-color) */\n caretColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clear) */\n clear: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip)\n */\n clip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-path) */\n clipPath: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-rule) */\n clipRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color) */\n color: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-interpolation) */\n colorInterpolation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-interpolation-filters) */\n colorInterpolationFilters: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-scheme) */\n colorScheme: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-count) */\n columnCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-fill) */\n columnFill: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-gap) */\n columnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule) */\n columnRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-color) */\n columnRuleColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-style) */\n columnRuleStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-width) */\n columnRuleWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-span) */\n columnSpan: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-width) */\n columnWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/columns) */\n columns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain) */\n contain: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-block-size) */\n containIntrinsicBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height) */\n containIntrinsicHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-inline-size) */\n containIntrinsicInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size) */\n containIntrinsicSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width) */\n containIntrinsicWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container) */\n container: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-name) */\n containerName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-type) */\n containerType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content) */\n content: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content-visibility) */\n contentVisibility: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-increment) */\n counterIncrement: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-reset) */\n counterReset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-set) */\n counterSet: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat) */\n cssFloat: string;\n /**\n * The **`cssText`** property of the CSSStyleDeclaration interface returns or sets the text of the element's **inline** style declaration only.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText)\n */\n cssText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cursor) */\n cursor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cx) */\n cx: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cy) */\n cy: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/d) */\n d: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/direction) */\n direction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/display) */\n display: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/dominant-baseline) */\n dominantBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/empty-cells) */\n emptyCells: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill) */\n fill: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill-opacity) */\n fillOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill-rule) */\n fillRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter) */\n filter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex) */\n flex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis) */\n flexBasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction) */\n flexDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow) */\n flexFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow) */\n flexGrow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink) */\n flexShrink: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap) */\n flexWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/float) */\n float: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flood-color) */\n floodColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flood-opacity) */\n floodOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-family) */\n fontFamily: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-feature-settings) */\n fontFeatureSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-kerning) */\n fontKerning: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing) */\n fontOpticalSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-palette) */\n fontPalette: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size) */\n fontSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size-adjust) */\n fontSizeAdjust: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-stretch)\n */\n fontStretch: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-style) */\n fontStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis) */\n fontSynthesis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps) */\n fontSynthesisSmallCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style) */\n fontSynthesisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight) */\n fontSynthesisWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant) */\n fontVariant: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates) */\n fontVariantAlternates: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-caps) */\n fontVariantCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian) */\n fontVariantEastAsian: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures) */\n fontVariantLigatures: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric) */\n fontVariantNumeric: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-position) */\n fontVariantPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variation-settings) */\n fontVariationSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-weight) */\n fontWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust) */\n forcedColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/gap) */\n gap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid) */\n grid: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-area) */\n gridArea: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns) */\n gridAutoColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow) */\n gridAutoFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows) */\n gridAutoRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column) */\n gridColumn: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-end) */\n gridColumnEnd: string;\n /** @deprecated This is a legacy alias of `columnGap`. */\n gridColumnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-start) */\n gridColumnStart: string;\n /** @deprecated This is a legacy alias of `gap`. */\n gridGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row) */\n gridRow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-end) */\n gridRowEnd: string;\n /** @deprecated This is a legacy alias of `rowGap`. */\n gridRowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-start) */\n gridRowStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template) */\n gridTemplate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-areas) */\n gridTemplateAreas: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-columns) */\n gridTemplateColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-rows) */\n gridTemplateRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/height) */\n height: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-character) */\n hyphenateCharacter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-limit-chars) */\n hyphenateLimitChars: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphens) */\n hyphens: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation)\n */\n imageOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-rendering) */\n imageRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inline-size) */\n inlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset) */\n inset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block) */\n insetBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-end) */\n insetBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-start) */\n insetBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline) */\n insetInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-end) */\n insetInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-start) */\n insetInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/isolation) */\n isolation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content) */\n justifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-items) */\n justifyItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-self) */\n justifySelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/left) */\n left: string;\n /**\n * The read-only property returns an integer that represents the number of style declarations in this CSS declaration block.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/length)\n */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/letter-spacing) */\n letterSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/lighting-color) */\n lightingColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-break) */\n lineBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height) */\n lineHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style) */\n listStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-image) */\n listStyleImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-position) */\n listStylePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-type) */\n listStyleType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin) */\n margin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block) */\n marginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-end) */\n marginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-start) */\n marginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-bottom) */\n marginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline) */\n marginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-end) */\n marginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-start) */\n marginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-left) */\n marginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-right) */\n marginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-top) */\n marginTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker) */\n marker: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-end) */\n markerEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-mid) */\n markerMid: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-start) */\n markerStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask) */\n mask: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip) */\n maskClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite) */\n maskComposite: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image) */\n maskImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-mode) */\n maskMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin) */\n maskOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position) */\n maskPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat) */\n maskRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size) */\n maskSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-type) */\n maskType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-depth) */\n mathDepth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-style) */\n mathStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-block-size) */\n maxBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-height) */\n maxHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-inline-size) */\n maxInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-width) */\n maxWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-block-size) */\n minBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-height) */\n minHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-inline-size) */\n minInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-width) */\n minWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode) */\n mixBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-fit) */\n objectFit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-position) */\n objectPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset) */\n offset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-anchor) */\n offsetAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-distance) */\n offsetDistance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-path) */\n offsetPath: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-position) */\n offsetPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-rotate) */\n offsetRotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/opacity) */\n opacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order) */\n order: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/orphans) */\n orphans: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline) */\n outline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-color) */\n outlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-offset) */\n outlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-style) */\n outlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-width) */\n outlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow) */\n overflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-anchor) */\n overflowAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-block) */\n overflowBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin) */\n overflowClipMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-inline) */\n overflowInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap) */\n overflowWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-x) */\n overflowX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-y) */\n overflowY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior) */\n overscrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block) */\n overscrollBehaviorBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline) */\n overscrollBehaviorInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x) */\n overscrollBehaviorX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y) */\n overscrollBehaviorY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding) */\n padding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block) */\n paddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-end) */\n paddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-start) */\n paddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-bottom) */\n paddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline) */\n paddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-end) */\n paddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-start) */\n paddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-left) */\n paddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-right) */\n paddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-top) */\n paddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page) */\n page: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-after)\n */\n pageBreakAfter: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-before)\n */\n pageBreakBefore: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-inside)\n */\n pageBreakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/paint-order) */\n paintOrder: string;\n /**\n * The **CSSStyleDeclaration.parentRule** read-only property returns a CSSRule that is the parent of this style block, e.g., a CSSStyleRule representing the style for a CSS selector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/parentRule)\n */\n readonly parentRule: CSSRule | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective) */\n perspective: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin) */\n perspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-content) */\n placeContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-items) */\n placeItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-self) */\n placeSelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/pointer-events) */\n pointerEvents: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/position) */\n position: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust) */\n printColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/quotes) */\n quotes: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/r) */\n r: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/resize) */\n resize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/right) */\n right: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rotate) */\n rotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/row-gap) */\n rowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-align) */\n rubyAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-position) */\n rubyPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rx) */\n rx: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ry) */\n ry: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scale) */\n scale: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-behavior) */\n scrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin) */\n scrollMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block) */\n scrollMarginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end) */\n scrollMarginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start) */\n scrollMarginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom) */\n scrollMarginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline) */\n scrollMarginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end) */\n scrollMarginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start) */\n scrollMarginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left) */\n scrollMarginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right) */\n scrollMarginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top) */\n scrollMarginTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding) */\n scrollPadding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block) */\n scrollPaddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end) */\n scrollPaddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start) */\n scrollPaddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom) */\n scrollPaddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline) */\n scrollPaddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end) */\n scrollPaddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start) */\n scrollPaddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left) */\n scrollPaddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right) */\n scrollPaddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top) */\n scrollPaddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align) */\n scrollSnapAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop) */\n scrollSnapStop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type) */\n scrollSnapType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-color) */\n scrollbarColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter) */\n scrollbarGutter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-width) */\n scrollbarWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold) */\n shapeImageThreshold: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-margin) */\n shapeMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-outside) */\n shapeOutside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-rendering) */\n shapeRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stop-color) */\n stopColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stop-opacity) */\n stopOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke) */\n stroke: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-dasharray) */\n strokeDasharray: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-dashoffset) */\n strokeDashoffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-linecap) */\n strokeLinecap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-linejoin) */\n strokeLinejoin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-miterlimit) */\n strokeMiterlimit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-opacity) */\n strokeOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-width) */\n strokeWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/tab-size) */\n tabSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/table-layout) */\n tableLayout: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align) */\n textAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align-last) */\n textAlignLast: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-anchor) */\n textAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box) */\n textBox: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box-edge) */\n textBoxEdge: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box-trim) */\n textBoxTrim: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-combine-upright) */\n textCombineUpright: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration) */\n textDecoration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-color) */\n textDecorationColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-line) */\n textDecorationLine: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink) */\n textDecorationSkipInk: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-style) */\n textDecorationStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness) */\n textDecorationThickness: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis) */\n textEmphasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color) */\n textEmphasisColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position) */\n textEmphasisPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style) */\n textEmphasisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-indent) */\n textIndent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-orientation) */\n textOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-overflow) */\n textOverflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-rendering) */\n textRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-shadow) */\n textShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-transform) */\n textTransform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-offset) */\n textUnderlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-position) */\n textUnderlinePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap) */\n textWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap-mode) */\n textWrapMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap-style) */\n textWrapStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/top) */\n top: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/touch-action) */\n touchAction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform) */\n transform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-box) */\n transformBox: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin) */\n transformOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style) */\n transformStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition) */\n transition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-behavior) */\n transitionBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay) */\n transitionDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration) */\n transitionDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property) */\n transitionProperty: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function) */\n transitionTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/translate) */\n translate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/unicode-bidi) */\n unicodeBidi: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select) */\n userSelect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vector-effect) */\n vectorEffect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vertical-align) */\n verticalAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-transition-class) */\n viewTransitionClass: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-transition-name) */\n viewTransitionName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/visibility) */\n visibility: string;\n /**\n * @deprecated This is a legacy alias of `alignContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content)\n */\n webkitAlignContent: string;\n /**\n * @deprecated This is a legacy alias of `alignItems`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items)\n */\n webkitAlignItems: string;\n /**\n * @deprecated This is a legacy alias of `alignSelf`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self)\n */\n webkitAlignSelf: string;\n /**\n * @deprecated This is a legacy alias of `animation`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation)\n */\n webkitAnimation: string;\n /**\n * @deprecated This is a legacy alias of `animationDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay)\n */\n webkitAnimationDelay: string;\n /**\n * @deprecated This is a legacy alias of `animationDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction)\n */\n webkitAnimationDirection: string;\n /**\n * @deprecated This is a legacy alias of `animationDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration)\n */\n webkitAnimationDuration: string;\n /**\n * @deprecated This is a legacy alias of `animationFillMode`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode)\n */\n webkitAnimationFillMode: string;\n /**\n * @deprecated This is a legacy alias of `animationIterationCount`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count)\n */\n webkitAnimationIterationCount: string;\n /**\n * @deprecated This is a legacy alias of `animationName`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name)\n */\n webkitAnimationName: string;\n /**\n * @deprecated This is a legacy alias of `animationPlayState`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state)\n */\n webkitAnimationPlayState: string;\n /**\n * @deprecated This is a legacy alias of `animationTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function)\n */\n webkitAnimationTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `appearance`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance)\n */\n webkitAppearance: string;\n /**\n * @deprecated This is a legacy alias of `backfaceVisibility`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility)\n */\n webkitBackfaceVisibility: string;\n /**\n * @deprecated This is a legacy alias of `backgroundClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip)\n */\n webkitBackgroundClip: string;\n /**\n * @deprecated This is a legacy alias of `backgroundOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin)\n */\n webkitBackgroundOrigin: string;\n /**\n * @deprecated This is a legacy alias of `backgroundSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size)\n */\n webkitBackgroundSize: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius)\n */\n webkitBorderBottomLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius)\n */\n webkitBorderBottomRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius)\n */\n webkitBorderRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius)\n */\n webkitBorderTopLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius)\n */\n webkitBorderTopRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `boxAlign`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-align)\n */\n webkitBoxAlign: string;\n /**\n * @deprecated This is a legacy alias of `boxFlex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-flex)\n */\n webkitBoxFlex: string;\n /**\n * @deprecated This is a legacy alias of `boxOrdinalGroup`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group)\n */\n webkitBoxOrdinalGroup: string;\n /**\n * @deprecated This is a legacy alias of `boxOrient`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-orient)\n */\n webkitBoxOrient: string;\n /**\n * @deprecated This is a legacy alias of `boxPack`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-pack)\n */\n webkitBoxPack: string;\n /**\n * @deprecated This is a legacy alias of `boxShadow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow)\n */\n webkitBoxShadow: string;\n /**\n * @deprecated This is a legacy alias of `boxSizing`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing)\n */\n webkitBoxSizing: string;\n /**\n * @deprecated This is a legacy alias of `filter`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter)\n */\n webkitFilter: string;\n /**\n * @deprecated This is a legacy alias of `flex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex)\n */\n webkitFlex: string;\n /**\n * @deprecated This is a legacy alias of `flexBasis`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis)\n */\n webkitFlexBasis: string;\n /**\n * @deprecated This is a legacy alias of `flexDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction)\n */\n webkitFlexDirection: string;\n /**\n * @deprecated This is a legacy alias of `flexFlow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow)\n */\n webkitFlexFlow: string;\n /**\n * @deprecated This is a legacy alias of `flexGrow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow)\n */\n webkitFlexGrow: string;\n /**\n * @deprecated This is a legacy alias of `flexShrink`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink)\n */\n webkitFlexShrink: string;\n /**\n * @deprecated This is a legacy alias of `flexWrap`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap)\n */\n webkitFlexWrap: string;\n /**\n * @deprecated This is a legacy alias of `justifyContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content)\n */\n webkitJustifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-clamp) */\n webkitLineClamp: string;\n /**\n * @deprecated This is a legacy alias of `mask`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask)\n */\n webkitMask: string;\n /**\n * @deprecated This is a legacy alias of `maskBorder`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border)\n */\n webkitMaskBoxImage: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderOutset`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset)\n */\n webkitMaskBoxImageOutset: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat)\n */\n webkitMaskBoxImageRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSlice`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice)\n */\n webkitMaskBoxImageSlice: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSource`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source)\n */\n webkitMaskBoxImageSource: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderWidth`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width)\n */\n webkitMaskBoxImageWidth: string;\n /**\n * @deprecated This is a legacy alias of `maskClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip)\n */\n webkitMaskClip: string;\n /**\n * @deprecated This is a legacy alias of `maskComposite`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite)\n */\n webkitMaskComposite: string;\n /**\n * @deprecated This is a legacy alias of `maskImage`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image)\n */\n webkitMaskImage: string;\n /**\n * @deprecated This is a legacy alias of `maskOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin)\n */\n webkitMaskOrigin: string;\n /**\n * @deprecated This is a legacy alias of `maskPosition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position)\n */\n webkitMaskPosition: string;\n /**\n * @deprecated This is a legacy alias of `maskRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat)\n */\n webkitMaskRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size)\n */\n webkitMaskSize: string;\n /**\n * @deprecated This is a legacy alias of `order`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order)\n */\n webkitOrder: string;\n /**\n * @deprecated This is a legacy alias of `perspective`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective)\n */\n webkitPerspective: string;\n /**\n * @deprecated This is a legacy alias of `perspectiveOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin)\n */\n webkitPerspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color) */\n webkitTextFillColor: string;\n /**\n * @deprecated This is a legacy alias of `textSizeAdjust`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust)\n */\n webkitTextSizeAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke) */\n webkitTextStroke: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color) */\n webkitTextStrokeColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width) */\n webkitTextStrokeWidth: string;\n /**\n * @deprecated This is a legacy alias of `transform`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform)\n */\n webkitTransform: string;\n /**\n * @deprecated This is a legacy alias of `transformOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin)\n */\n webkitTransformOrigin: string;\n /**\n * @deprecated This is a legacy alias of `transformStyle`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style)\n */\n webkitTransformStyle: string;\n /**\n * @deprecated This is a legacy alias of `transition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition)\n */\n webkitTransition: string;\n /**\n * @deprecated This is a legacy alias of `transitionDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay)\n */\n webkitTransitionDelay: string;\n /**\n * @deprecated This is a legacy alias of `transitionDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration)\n */\n webkitTransitionDuration: string;\n /**\n * @deprecated This is a legacy alias of `transitionProperty`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property)\n */\n webkitTransitionProperty: string;\n /**\n * @deprecated This is a legacy alias of `transitionTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function)\n */\n webkitTransitionTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `userSelect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select)\n */\n webkitUserSelect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space) */\n whiteSpace: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space-collapse) */\n whiteSpaceCollapse: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/widows) */\n widows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/width) */\n width: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/will-change) */\n willChange: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-break) */\n wordBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-spacing) */\n wordSpacing: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap)\n */\n wordWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/writing-mode) */\n writingMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/x) */\n x: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/y) */\n y: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/z-index) */\n zIndex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/zoom) */\n zoom: string;\n /**\n * The **CSSStyleDeclaration.getPropertyPriority()** method interface returns a string that provides all explicitly set priorities on the CSS property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyPriority)\n */\n getPropertyPriority(property: string): string;\n /**\n * The **CSSStyleDeclaration.getPropertyValue()** method interface returns a string containing the value of a specified CSS property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyValue)\n */\n getPropertyValue(property: string): string;\n /**\n * The `CSSStyleDeclaration.item()` method interface returns a CSS property name from a CSSStyleDeclaration by index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/item)\n */\n item(index: number): string;\n /**\n * The **`CSSStyleDeclaration.removeProperty()`** method interface removes a property from a CSS style declaration object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/removeProperty)\n */\n removeProperty(property: string): string;\n /**\n * The **`CSSStyleDeclaration.setProperty()`** method interface sets a new value for a property on a CSS style declaration object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/setProperty)\n */\n setProperty(property: string, value: string | null, priority?: string): void;\n [index: number]: string;\n}\n\ndeclare var CSSStyleDeclaration: {\n prototype: CSSStyleDeclaration;\n new(): CSSStyleDeclaration;\n};\n\n/**\n * The **`CSSStyleRule`** interface represents a single CSS style rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule)\n */\ninterface CSSStyleRule extends CSSGroupingRule {\n /**\n * The **`selectorText`** property of the CSSStyleRule interface gets and sets the selectors associated with the `CSSStyleRule`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/selectorText)\n */\n selectorText: string;\n /**\n * The read-only **`style`** property is the CSSStyleDeclaration interface for the declaration block of the CSSStyleRule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/style)\n */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n /**\n * The **`styleMap`** read-only property of the which provides access to the rule's property-value pairs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/styleMap)\n */\n readonly styleMap: StylePropertyMap;\n}\n\ndeclare var CSSStyleRule: {\n prototype: CSSStyleRule;\n new(): CSSStyleRule;\n};\n\n/**\n * The **`CSSStyleSheet`** interface represents a single CSS stylesheet, and lets you inspect and modify the list of rules contained in the stylesheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)\n */\ninterface CSSStyleSheet extends StyleSheet {\n /**\n * The read-only CSSStyleSheet property **`cssRules`** returns a live CSSRuleList which provides a real-time, up-to-date list of every CSS rule which comprises the stylesheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/cssRules)\n */\n readonly cssRules: CSSRuleList;\n /**\n * The read-only CSSStyleSheet property **`ownerRule`** returns the CSSImportRule corresponding to the @import at-rule which imported the stylesheet into the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/ownerRule)\n */\n readonly ownerRule: CSSRule | null;\n /**\n * **`rules`** is a _deprecated_ _legacy property_ of the CSSStyleSheet interface.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/rules)\n */\n readonly rules: CSSRuleList;\n /**\n * The obsolete CSSStyleSheet interface's **`addRule()`** _legacy method_ adds a new rule to the stylesheet.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/addRule)\n */\n addRule(selector?: string, style?: string, index?: number): number;\n /**\n * The CSSStyleSheet method **`deleteRule()`** removes a rule from the stylesheet object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/deleteRule)\n */\n deleteRule(index: number): void;\n /**\n * The **`CSSStyleSheet.insertRule()`** method inserts a new CSS rule into the current style sheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule)\n */\n insertRule(rule: string, index?: number): number;\n /**\n * The obsolete CSSStyleSheet method **`removeRule()`** removes a rule from the stylesheet object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/removeRule)\n */\n removeRule(index?: number): void;\n /**\n * The **`replace()`** method of the CSSStyleSheet interface asynchronously replaces the content of the stylesheet with the content passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replace)\n */\n replace(text: string): Promise;\n /**\n * The **`replaceSync()`** method of the CSSStyleSheet interface synchronously replaces the content of the stylesheet with the content passed into it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replaceSync)\n */\n replaceSync(text: string): void;\n}\n\ndeclare var CSSStyleSheet: {\n prototype: CSSStyleSheet;\n new(options?: CSSStyleSheetInit): CSSStyleSheet;\n};\n\n/**\n * The **`CSSStyleValue`** interface of the CSS Typed Object Model API is the base class of all CSS values accessible through the Typed OM API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue)\n */\ninterface CSSStyleValue {\n toString(): string;\n}\n\ndeclare var CSSStyleValue: {\n prototype: CSSStyleValue;\n new(): CSSStyleValue;\n /**\n * The **`parse()`** static method of the CSSStyleValue interface sets a specific CSS property to the specified values and returns the first value as a CSSStyleValue object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parse_static)\n */\n parse(property: string, cssText: string): CSSStyleValue;\n /**\n * The **`parseAll()`** static method of the CSSStyleValue interface sets all occurrences of a specific CSS property to the specified value and returns an array of CSSStyleValue objects, each containing one of the supplied values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parseAll_static)\n */\n parseAll(property: string, cssText: string): CSSStyleValue[];\n};\n\n/**\n * The **`CSSSupportsRule`** interface represents a single CSS @supports at-rule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSupportsRule)\n */\ninterface CSSSupportsRule extends CSSConditionRule {\n}\n\ndeclare var CSSSupportsRule: {\n prototype: CSSSupportsRule;\n new(): CSSSupportsRule;\n};\n\n/**\n * The **`CSSTransformComponent`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent)\n */\ninterface CSSTransformComponent {\n /**\n * The **`is2D`** read-only property of the CSSTransformComponent interface indicates where the transform is 2D or 3D.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D)\n */\n is2D: boolean;\n /**\n * The **`toMatrix()`** method of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix)\n */\n toMatrix(): DOMMatrix;\n toString(): string;\n}\n\ndeclare var CSSTransformComponent: {\n prototype: CSSTransformComponent;\n new(): CSSTransformComponent;\n};\n\n/**\n * The **`CSSTransformValue`** interface of the CSS Typed Object Model API represents `transform-list` values as used by the CSS transform property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue)\n */\ninterface CSSTransformValue extends CSSStyleValue {\n /**\n * The read-only **`is2D`** property of the In the case of the `CSSTransformValue` this property returns true unless any of the individual functions return false for `Is2D`, in which case it returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D)\n */\n readonly is2D: boolean;\n /**\n * The read-only **`length`** property of the the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length)\n */\n readonly length: number;\n /**\n * The **`toMatrix()`** method of the ```js-nolint toMatrix() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix)\n */\n toMatrix(): DOMMatrix;\n forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;\n [index: number]: CSSTransformComponent;\n}\n\ndeclare var CSSTransformValue: {\n prototype: CSSTransformValue;\n new(transforms: CSSTransformComponent[]): CSSTransformValue;\n};\n\n/**\n * The **`CSSTransition`** interface of the Web Animations API represents an Animation object used for a CSS Transition.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition)\n */\ninterface CSSTransition extends Animation {\n /**\n * The **`transitionProperty`** property of the name** of the transition.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition/transitionProperty)\n */\n readonly transitionProperty: string;\n addEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSTransition: {\n prototype: CSSTransition;\n new(): CSSTransition;\n};\n\n/**\n * The **`CSSTranslate`** interface of the CSS Typed Object Model API represents the translate() value of the individual transform property in CSS.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate)\n */\ninterface CSSTranslate extends CSSTransformComponent {\n /**\n * The **`x`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x)\n */\n x: CSSNumericValue;\n /**\n * The **`y`** property of the translating vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y)\n */\n y: CSSNumericValue;\n /**\n * The **`z`** property of the vector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z)\n */\n z: CSSNumericValue;\n}\n\ndeclare var CSSTranslate: {\n prototype: CSSTranslate;\n new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;\n};\n\n/**\n * The **`CSSUnitValue`** interface of the CSS Typed Object Model API represents values that contain a single unit type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue)\n */\ninterface CSSUnitValue extends CSSNumericValue {\n /**\n * The **`CSSUnitValue.unit`** read-only property of the CSSUnitValue interface returns a string indicating the type of unit.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit)\n */\n readonly unit: string;\n /**\n * The **`CSSUnitValue.value`** property of the A double.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value)\n */\n value: number;\n}\n\ndeclare var CSSUnitValue: {\n prototype: CSSUnitValue;\n new(value: number, unit: string): CSSUnitValue;\n};\n\n/**\n * The **`CSSUnparsedValue`** interface of the CSS Typed Object Model API represents property values that reference custom properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue)\n */\ninterface CSSUnparsedValue extends CSSStyleValue {\n /**\n * The **`length`** read-only property of the An integer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length)\n */\n readonly length: number;\n forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;\n [index: number]: CSSUnparsedSegment;\n}\n\ndeclare var CSSUnparsedValue: {\n prototype: CSSUnparsedValue;\n new(members: CSSUnparsedSegment[]): CSSUnparsedValue;\n};\n\n/**\n * The **`CSSVariableReferenceValue`** interface of the CSS Typed Object Model API allows you to create a custom name for a built-in CSS value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue)\n */\ninterface CSSVariableReferenceValue {\n /**\n * The **`fallback`** read-only property of the A CSSUnparsedValue.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback)\n */\n readonly fallback: CSSUnparsedValue | null;\n /**\n * The **`variable`** property of the A string beginning with `--` (that is, a custom property name).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable)\n */\n variable: string;\n}\n\ndeclare var CSSVariableReferenceValue: {\n prototype: CSSVariableReferenceValue;\n new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;\n};\n\ninterface CSSViewTransitionRule extends CSSRule {\n readonly navigation: string;\n readonly types: ReadonlyArray;\n}\n\ndeclare var CSSViewTransitionRule: {\n prototype: CSSViewTransitionRule;\n new(): CSSViewTransitionRule;\n};\n\n/**\n * The **`Cache`** interface provides a persistent storage mechanism for Request / Response object pairs that are cached in long lived memory.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)\n */\ninterface Cache {\n /**\n * The **`add()`** method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add)\n */\n add(request: RequestInfo | URL): Promise;\n /**\n * The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)\n */\n addAll(requests: RequestInfo[]): Promise;\n /**\n * The **`delete()`** method of the Cache interface finds the Cache entry whose key is the request, and if found, deletes the Cache entry and returns a Promise that resolves to `true`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete)\n */\n delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /**\n * The **`keys()`** method of the Cache interface returns a representing the keys of the Cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys)\n */\n keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /**\n * The **`match()`** method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match)\n */\n match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /**\n * The **`matchAll()`** method of the Cache interface returns a Promise that resolves to an array of all matching responses in the Cache object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll)\n */\n matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /**\n * The **`put()`** method of the Often, you will just want to Window/fetch one or more requests, then add the result straight to your cache.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put)\n */\n put(request: RequestInfo | URL, response: Response): Promise;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\n/**\n * The **`CacheStorage`** interface represents the storage for Cache objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)\n */\ninterface CacheStorage {\n /**\n * The **`delete()`** method of the CacheStorage interface finds the Cache object matching the `cacheName`, and if found, deletes the Cache object and returns a Promise that resolves to `true`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete)\n */\n delete(cacheName: string): Promise;\n /**\n * The **`has()`** method of the CacheStorage interface returns a Promise that resolves to `true` if a You can access `CacheStorage` through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has)\n */\n has(cacheName: string): Promise;\n /**\n * The **`keys()`** method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys)\n */\n keys(): Promise;\n /**\n * The **`match()`** method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match)\n */\n match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise;\n /**\n * The **`open()`** method of the the Cache object matching the `cacheName`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open)\n */\n open(cacheName: string): Promise;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\n/**\n * The **`CanvasCaptureMediaStreamTrack`** interface of the Media Capture and Streams API represents the video track contained in a MediaStream being generated from a canvas following a call to HTMLCanvasElement.captureStream().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack)\n */\ninterface CanvasCaptureMediaStreamTrack extends MediaStreamTrack {\n /**\n * The **`canvas`** read-only property of the CanvasCaptureMediaStreamTrack interface returns the HTMLCanvasElement from which frames are being captured.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/canvas)\n */\n readonly canvas: HTMLCanvasElement;\n /**\n * The **`requestFrame()`** method of the CanvasCaptureMediaStreamTrack interface requests that a frame be captured from the canvas and sent to the stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/requestFrame)\n */\n requestFrame(): void;\n addEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CanvasCaptureMediaStreamTrack: {\n prototype: CanvasCaptureMediaStreamTrack;\n new(): CanvasCaptureMediaStreamTrack;\n};\n\ninterface CanvasCompositing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */\n globalAlpha: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */\n globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */\n drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */\n beginPath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */\n fill(fillRule?: CanvasFillRule): void;\n fill(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */\n isPointInStroke(x: number, y: number): boolean;\n isPointInStroke(path: Path2D, x: number, y: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */\n stroke(): void;\n stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */\n fillStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */\n strokeStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */\n createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */\n createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */\n filter: string;\n}\n\n/**\n * The **`CanvasGradient`** interface represents an opaque object describing a gradient.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n */\ninterface CanvasGradient {\n /**\n * The **`CanvasGradient.addColorStop()`** method adds a new color stop, defined by an `offset` and a `color`, to a given canvas gradient.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)\n */\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */\n createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n createImageData(imageData: ImageData): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */\n putImageData(imageData: ImageData, dx: number, dy: number): void;\n putImageData(imageData: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */\n imageSmoothingEnabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */\n imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */\n closePath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */\n lineTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */\n rect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */\n lineCap: CanvasLineCap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */\n lineDashOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */\n lineJoin: CanvasLineJoin;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */\n lineWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */\n miterLimit: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */\n getLineDash(): number[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: number[]): void;\n}\n\n/**\n * The **`CanvasPattern`** interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)\n */\ninterface CanvasPattern {\n /**\n * The **`CanvasPattern.setTransform()`** method uses a DOMMatrix object as the pattern's transformation matrix and invokes it on the pattern.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)\n */\n setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */\n clearRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */\n fillRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */\n strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\n/**\n * The **`CanvasRenderingContext2D`** interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a canvas element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D)\n */\ninterface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasSettings, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {\n /**\n * The **`CanvasRenderingContext2D.canvas`** property, part of the Canvas API, is a read-only reference to the might be `null` if there is no associated canvas element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas)\n */\n readonly canvas: HTMLCanvasElement;\n}\n\ndeclare var CanvasRenderingContext2D: {\n prototype: CanvasRenderingContext2D;\n new(): CanvasRenderingContext2D;\n};\n\ninterface CanvasSettings {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getContextAttributes) */\n getContextAttributes(): CanvasRenderingContext2DSettings;\n}\n\ninterface CanvasShadowStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */\n shadowBlur: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */\n shadowColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */\n shadowOffsetX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */\n shadowOffsetY: number;\n}\n\ninterface CanvasState {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isContextLost) */\n isContextLost(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */\n reset(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */\n restore(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */\n save(): void;\n}\n\ninterface CanvasText {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */\n fillText(text: string, x: number, y: number, maxWidth?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */\n measureText(text: string): TextMetrics;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */\n strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n}\n\ninterface CanvasTextDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */\n direction: CanvasDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */\n fontKerning: CanvasFontKerning;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */\n fontStretch: CanvasFontStretch;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */\n fontVariantCaps: CanvasFontVariantCaps;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */\n letterSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */\n textAlign: CanvasTextAlign;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */\n textBaseline: CanvasTextBaseline;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */\n textRendering: CanvasTextRendering;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */\n wordSpacing: string;\n}\n\ninterface CanvasTransform {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */\n getTransform(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */\n resetTransform(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */\n rotate(angle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */\n scale(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n setTransform(transform?: DOMMatrix2DInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */\n transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */\n translate(x: number, y: number): void;\n}\n\ninterface CanvasUserInterface {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded) */\n drawFocusIfNeeded(element: Element): void;\n drawFocusIfNeeded(path: Path2D, element: Element): void;\n}\n\n/**\n * The `CaretPosition` interface represents the caret position, an indicator for the text insertion point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CaretPosition)\n */\ninterface CaretPosition {\n readonly offset: number;\n readonly offsetNode: Node;\n getClientRect(): DOMRect | null;\n}\n\ndeclare var CaretPosition: {\n prototype: CaretPosition;\n new(): CaretPosition;\n};\n\n/**\n * The `ChannelMergerNode` interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelMergerNode)\n */\ninterface ChannelMergerNode extends AudioNode {\n}\n\ndeclare var ChannelMergerNode: {\n prototype: ChannelMergerNode;\n new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;\n};\n\n/**\n * The `ChannelSplitterNode` interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelSplitterNode)\n */\ninterface ChannelSplitterNode extends AudioNode {\n}\n\ndeclare var ChannelSplitterNode: {\n prototype: ChannelSplitterNode;\n new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;\n};\n\n/**\n * The **`CharacterData`** abstract interface represents a Node object that contains characters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData)\n */\ninterface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {\n /**\n * The **`data`** property of the CharacterData interface represent the value of the current object's data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/data)\n */\n data: string;\n /**\n * The read-only **`CharacterData.length`** property returns the number of characters in the contained data, as a positive integer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/length)\n */\n readonly length: number;\n readonly ownerDocument: Document;\n /**\n * The **`appendData()`** method of the CharacterData interface adds the provided data to the end of the node's current data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)\n */\n appendData(data: string): void;\n /**\n * The **`deleteData()`** method of the CharacterData interface removes all or part of the data from this `CharacterData` node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)\n */\n deleteData(offset: number, count: number): void;\n /**\n * The **`insertData()`** method of the CharacterData interface inserts the provided data into this `CharacterData` node's current data, at the provided offset from the start of the existing data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)\n */\n insertData(offset: number, data: string): void;\n /**\n * The **`replaceData()`** method of the CharacterData interface removes a certain number of characters of the existing text in a given `CharacterData` node and replaces those characters with the text provided.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)\n */\n replaceData(offset: number, count: number, data: string): void;\n /**\n * The **`substringData()`** method of the CharacterData interface returns a portion of the existing data, starting at the specified index and extending for a given number of characters afterwards.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData)\n */\n substringData(offset: number, count: number): string;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): string;\n set textContent(value: string | null);\n}\n\ndeclare var CharacterData: {\n prototype: CharacterData;\n new(): CharacterData;\n};\n\ninterface ChildNode extends Node {\n /**\n * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after)\n */\n after(...nodes: (Node | string)[]): void;\n /**\n * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before)\n */\n before(...nodes: (Node | string)[]): void;\n /**\n * Removes node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)\n */\n remove(): void;\n /**\n * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)\n */\n replaceWith(...nodes: (Node | string)[]): void;\n}\n\n/** @deprecated */\ninterface ClientRect extends DOMRect {\n}\n\n/**\n * The **`Clipboard`** interface of the Clipboard API provides read and write access to the contents of the system clipboard.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard)\n */\ninterface Clipboard extends EventTarget {\n /**\n * The **`read()`** method of the Clipboard interface requests a copy of the clipboard's contents, fulfilling the returned Promise with the data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/read)\n */\n read(): Promise;\n /**\n * The **`readText()`** method of the Clipboard interface returns a Promise which fulfills with a copy of the textual contents of the system clipboard.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/readText)\n */\n readText(): Promise;\n /**\n * The **`write()`** method of the Clipboard interface writes arbitrary ClipboardItem data such as images and text to the clipboard, fulfilling the returned Promise on completion.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/write)\n */\n write(data: ClipboardItems): Promise;\n /**\n * The **`writeText()`** method of the Clipboard interface writes the specified text to the system clipboard, returning a Promise that is resolved once the system clipboard has been updated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/writeText)\n */\n writeText(data: string): Promise;\n}\n\ndeclare var Clipboard: {\n prototype: Clipboard;\n new(): Clipboard;\n};\n\n/**\n * The **`ClipboardEvent`** interface of the Clipboard API represents events providing information related to modification of the clipboard, that is Element/cut_event, Element/copy_event, and Element/paste_event events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent)\n */\ninterface ClipboardEvent extends Event {\n /**\n * The **`clipboardData`** property of the ClipboardEvent interface holds a DataTransfer object, which can be used to: - specify what data should be put into the clipboard from the Element/cut_event and Element/copy_event event handlers, typically with a DataTransfer.setData call; - obtain the data to be pasted from the Element/paste_event event handler, typically with a DataTransfer.getData call.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent/clipboardData)\n */\n readonly clipboardData: DataTransfer | null;\n}\n\ndeclare var ClipboardEvent: {\n prototype: ClipboardEvent;\n new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;\n};\n\n/**\n * The **`ClipboardItem`** interface of the Clipboard API represents a single item format, used when reading or writing clipboard data using Clipboard.read() and Clipboard.write() respectively.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem)\n */\ninterface ClipboardItem {\n /**\n * The read-only **`presentationStyle`** property of the ClipboardItem interface returns a string indicating how an item should be presented.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/presentationStyle)\n */\n readonly presentationStyle: PresentationStyle;\n /**\n * The read-only **`types`** property of the ClipboardItem interface returns an Array of MIME type available within the ClipboardItem.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/types)\n */\n readonly types: ReadonlyArray;\n /**\n * The **`getType()`** method of the ClipboardItem interface returns a Promise that resolves with a Blob of the requested MIME type or an error if the MIME type is not found.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/getType)\n */\n getType(type: string): Promise;\n}\n\ndeclare var ClipboardItem: {\n prototype: ClipboardItem;\n new(items: Record>, options?: ClipboardItemOptions): ClipboardItem;\n /**\n * The **`supports()`** static method of the ClipboardItem interface returns `true` if the given MIME type is supported by the clipboard, and `false` otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/supports_static)\n */\n supports(type: string): boolean;\n};\n\n/**\n * A `CloseEvent` is sent to clients using WebSockets when the connection is closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)\n */\ninterface CloseEvent extends Event {\n /**\n * The **`code`** read-only property of the CloseEvent interface returns a WebSocket connection close code indicating the reason the connection was closed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)\n */\n readonly code: number;\n /**\n * The **`reason`** read-only property of the CloseEvent interface returns the WebSocket connection close reason the server gave for closing the connection; that is, a concise human-readable prose explanation for the closure.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)\n */\n readonly reason: string;\n /**\n * The **`wasClean`** read-only property of the CloseEvent interface returns `true` if the connection closed cleanly.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)\n */\n readonly wasClean: boolean;\n}\n\ndeclare var CloseEvent: {\n prototype: CloseEvent;\n new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\n/**\n * The **`Comment`** interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Comment)\n */\ninterface Comment extends CharacterData {\n}\n\ndeclare var Comment: {\n prototype: Comment;\n new(data?: string): Comment;\n};\n\n/**\n * The DOM **`CompositionEvent`** represents events that occur due to the user indirectly entering text.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent)\n */\ninterface CompositionEvent extends UIEvent {\n /**\n * The **`data`** read-only property of the method that raised the event; its exact nature varies depending on the type of event that generated the `CompositionEvent` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/data)\n */\n readonly data: string;\n /**\n * The **`initCompositionEvent()`** method of the CompositionEvent interface initializes the attributes of a `CompositionEvent` object instance.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/initCompositionEvent)\n */\n initCompositionEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: WindowProxy | null, dataArg?: string): void;\n}\n\ndeclare var CompositionEvent: {\n prototype: CompositionEvent;\n new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;\n};\n\n/**\n * The **`CompressionStream`** interface of the Compression Streams API is an API for compressing a stream of data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream)\n */\ninterface CompressionStream extends GenericTransformStream {\n readonly readable: ReadableStream>;\n readonly writable: WritableStream;\n}\n\ndeclare var CompressionStream: {\n prototype: CompressionStream;\n new(format: CompressionFormat): CompressionStream;\n};\n\n/**\n * The `ConstantSourceNode` interface—part of the Web Audio API—represents an audio source (based upon AudioScheduledSourceNode) whose output is single unchanging value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode)\n */\ninterface ConstantSourceNode extends AudioScheduledSourceNode {\n /**\n * The read-only `offset` property of the ConstantSourceNode interface returns a AudioParam object indicating the numeric a-rate value which is always returned by the source when asked for the next sample.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode/offset)\n */\n readonly offset: AudioParam;\n addEventListener(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ConstantSourceNode: {\n prototype: ConstantSourceNode;\n new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;\n};\n\n/**\n * The **`ContentVisibilityAutoStateChangeEvent`** interface is the event object for the element/contentvisibilityautostatechange_event event, which fires on any element with content-visibility set on it when it starts or stops being relevant to the user and skipping its contents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent)\n */\ninterface ContentVisibilityAutoStateChangeEvent extends Event {\n /**\n * The `skipped` read-only property of the ContentVisibilityAutoStateChangeEvent interface returns `true` if the user agent skips the element's contents, or `false` otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent/skipped)\n */\n readonly skipped: boolean;\n}\n\ndeclare var ContentVisibilityAutoStateChangeEvent: {\n prototype: ContentVisibilityAutoStateChangeEvent;\n new(type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;\n};\n\n/**\n * The `ConvolverNode` interface is an AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode)\n */\ninterface ConvolverNode extends AudioNode {\n /**\n * The **`buffer`** property of the ConvolverNode interface represents a mono, stereo, or 4-channel AudioBuffer containing the (possibly multichannel) impulse response used by the `ConvolverNode` to create the reverb effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/buffer)\n */\n buffer: AudioBuffer | null;\n /**\n * The `normalize` property of the ConvolverNode interface is a boolean that controls whether the impulse response from the buffer will be scaled by an equal-power normalization when the `buffer` attribute is set, or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/normalize)\n */\n normalize: boolean;\n}\n\ndeclare var ConvolverNode: {\n prototype: ConvolverNode;\n new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;\n};\n\n/**\n * The **`CookieChangeEvent`** interface of the Cookie Store API is the event type of the CookieStore/change_event event fired at a CookieStore when any cookies are created or deleted.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent)\n */\ninterface CookieChangeEvent extends Event {\n /**\n * The **`changed`** read-only property of the CookieChangeEvent interface returns an array of the cookies that have been changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent/changed)\n */\n readonly changed: ReadonlyArray;\n /**\n * The **`deleted`** read-only property of the CookieChangeEvent interface returns an array of the cookies that have been deleted by the given `CookieChangeEvent` instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent/deleted)\n */\n readonly deleted: ReadonlyArray;\n}\n\ndeclare var CookieChangeEvent: {\n prototype: CookieChangeEvent;\n new(type: string, eventInitDict?: CookieChangeEventInit): CookieChangeEvent;\n};\n\ninterface CookieStoreEventMap {\n \"change\": CookieChangeEvent;\n}\n\n/**\n * The **`CookieStore`** interface of the Cookie Store API provides methods for getting and setting cookies asynchronously from either a page or a service worker.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore)\n */\ninterface CookieStore extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/change_event) */\n onchange: ((this: CookieStore, ev: CookieChangeEvent) => any) | null;\n /**\n * The **`delete()`** method of the CookieStore interface deletes a cookie that matches the given `name` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/delete)\n */\n delete(name: string): Promise;\n delete(options: CookieStoreDeleteOptions): Promise;\n /**\n * The **`get()`** method of the CookieStore interface returns a Promise that resolves to a single cookie matching the given `name` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/get)\n */\n get(name: string): Promise;\n get(options?: CookieStoreGetOptions): Promise;\n /**\n * The **`getAll()`** method of the CookieStore interface returns a Promise that resolves as an array of cookies that match the `name` or `options` passed to it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/getAll)\n */\n getAll(name: string): Promise;\n getAll(options?: CookieStoreGetOptions): Promise;\n /**\n * The **`set()`** method of the CookieStore interface sets a cookie with the given `name` and `value` or `options` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/set)\n */\n set(name: string, value: string): Promise;\n set(options: CookieInit): Promise;\n addEventListener(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CookieStore: {\n prototype: CookieStore;\n new(): CookieStore;\n};\n\n/**\n * The **`CookieStoreManager`** interface of the Cookie Store API allows service workers to subscribe to cookie change events.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager)\n */\ninterface CookieStoreManager {\n /**\n * The **`getSubscriptions()`** method of the CookieStoreManager interface returns a list of all the cookie change subscriptions for this ServiceWorkerRegistration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/getSubscriptions)\n */\n getSubscriptions(): Promise;\n /**\n * The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)\n */\n subscribe(subscriptions: CookieStoreGetOptions[]): Promise;\n /**\n * The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)\n */\n unsubscribe(subscriptions: CookieStoreGetOptions[]): Promise;\n}\n\ndeclare var CookieStoreManager: {\n prototype: CookieStoreManager;\n new(): CookieStoreManager;\n};\n\n/**\n * The **`CountQueuingStrategy`** interface of the Streams API provides a built-in chunk counting queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)\n */\ninterface CountQueuingStrategy extends QueuingStrategy {\n /**\n * The read-only **`CountQueuingStrategy.highWaterMark`** property returns the total number of chunks that can be contained in the internal queue before backpressure is applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark)\n */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var CountQueuingStrategy: {\n prototype: CountQueuingStrategy;\n new(init: QueuingStrategyInit): CountQueuingStrategy;\n};\n\n/**\n * The **`Credential`** interface of the Credential Management API provides information about an entity (usually a user) normally as a prerequisite to a trust decision.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential)\n */\ninterface Credential {\n /**\n * The **`id`** read-only property of the Credential interface returns a string containing the credential's identifier.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/id)\n */\n readonly id: string;\n /**\n * The **`type`** read-only property of the Credential interface returns a string containing the credential's type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/type)\n */\n readonly type: string;\n}\n\ndeclare var Credential: {\n prototype: Credential;\n new(): Credential;\n};\n\n/**\n * The **`CredentialsContainer`** interface of the Credential Management API exposes methods to request credentials and notify the user agent when events such as successful sign in or sign out happen.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer)\n */\ninterface CredentialsContainer {\n /**\n * The **`create()`** method of the CredentialsContainer interface creates a new credential, which can then be stored and later retrieved using the CredentialsContainer.get method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/create)\n */\n create(options?: CredentialCreationOptions): Promise;\n /**\n * The **`get()`** method of the CredentialsContainer interface returns a Promise that fulfills with a single credential, which can then be used to authenticate a user to a website.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/get)\n */\n get(options?: CredentialRequestOptions): Promise;\n /**\n * The **`preventSilentAccess()`** method of the CredentialsContainer interface sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns a Promise that resolves to `undefined`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/preventSilentAccess)\n */\n preventSilentAccess(): Promise;\n /**\n * The **`store()`** method of the ```js-nolint store(credentials) ``` - `credentials` - : A valid Credential instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/store)\n */\n store(credential: Credential): Promise;\n}\n\ndeclare var CredentialsContainer: {\n prototype: CredentialsContainer;\n new(): CredentialsContainer;\n};\n\n/**\n * The **`Crypto`** interface represents basic cryptography features available in the current context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)\n */\ninterface Crypto {\n /**\n * The **`Crypto.subtle`** read-only property returns a cryptographic operations.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)\n */\n readonly subtle: SubtleCrypto;\n /**\n * The **`Crypto.getRandomValues()`** method lets you get cryptographically strong random values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues)\n */\n getRandomValues(array: T): T;\n /**\n * The **`randomUUID()`** method of the Crypto interface is used to generate a v4 UUID using a cryptographically secure random number generator.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)\n */\n randomUUID(): `${string}-${string}-${string}-${string}-${string}`;\n}\n\ndeclare var Crypto: {\n prototype: Crypto;\n new(): Crypto;\n};\n\n/**\n * The **`CryptoKey`** interface of the Web Crypto API represents a cryptographic key obtained from one of the SubtleCrypto methods SubtleCrypto.generateKey, SubtleCrypto.deriveKey, SubtleCrypto.importKey, or SubtleCrypto.unwrapKey.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)\n */\ninterface CryptoKey {\n /**\n * The read-only **`algorithm`** property of the CryptoKey interface returns an object describing the algorithm for which this key can be used, and any associated extra parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm)\n */\n readonly algorithm: KeyAlgorithm;\n /**\n * The read-only **`extractable`** property of the CryptoKey interface indicates whether or not the key may be extracted using `SubtleCrypto.exportKey()` or `SubtleCrypto.wrapKey()`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable)\n */\n readonly extractable: boolean;\n /**\n * The read-only **`type`** property of the CryptoKey interface indicates which kind of key is represented by the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type)\n */\n readonly type: KeyType;\n /**\n * The read-only **`usages`** property of the CryptoKey interface indicates what can be done with the key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages)\n */\n readonly usages: KeyUsage[];\n}\n\ndeclare var CryptoKey: {\n prototype: CryptoKey;\n new(): CryptoKey;\n};\n\n/**\n * The **`CustomElementRegistry`** interface provides methods for registering custom elements and querying registered elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry)\n */\ninterface CustomElementRegistry {\n /**\n * The **`define()`** method of the CustomElementRegistry interface adds a definition for a custom element to the custom element registry, mapping its name to the constructor which will be used to create it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/define)\n */\n define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;\n /**\n * The **`get()`** method of the previously-defined custom element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/get)\n */\n get(name: string): CustomElementConstructor | undefined;\n /**\n * The **`getName()`** method of the previously-defined custom element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/getName)\n */\n getName(constructor: CustomElementConstructor): string | null;\n /**\n * The **`upgrade()`** method of the elements in a Node subtree, even before they are connected to the main document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/upgrade)\n */\n upgrade(root: Node): void;\n /**\n * The **`whenDefined()`** method of the resolves when the named element is defined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/whenDefined)\n */\n whenDefined(name: string): Promise;\n}\n\ndeclare var CustomElementRegistry: {\n prototype: CustomElementRegistry;\n new(): CustomElementRegistry;\n};\n\n/**\n * The **`CustomEvent`** interface represents events initialized by an application for any purpose.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent)\n */\ninterface CustomEvent extends Event {\n /**\n * The read-only **`detail`** property of the CustomEvent interface returns any data passed when initializing the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)\n */\n readonly detail: T;\n /**\n * The **`CustomEvent.initCustomEvent()`** method initializes a CustomEvent object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)\n */\n initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;\n}\n\ndeclare var CustomEvent: {\n prototype: CustomEvent;\n new(type: string, eventInitDict?: CustomEventInit): CustomEvent;\n};\n\n/**\n * The **`CustomStateSet`** interface of the Document Object Model stores a list of states for an autonomous custom element, and allows states to be added and removed from the set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomStateSet)\n */\ninterface CustomStateSet {\n forEach(callbackfn: (value: string, key: string, parent: CustomStateSet) => void, thisArg?: any): void;\n}\n\ndeclare var CustomStateSet: {\n prototype: CustomStateSet;\n new(): CustomStateSet;\n};\n\n/**\n * The **`DOMException`** interface represents an abnormal event (called an **exception**) that occurs as a result of calling a method or accessing a property of a web API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)\n */\ninterface DOMException extends Error {\n /**\n * The **`code`** read-only property of the DOMException interface returns one of the legacy error code constants, or `0` if none match.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)\n */\n readonly code: number;\n /**\n * The **`message`** read-only property of the a message or description associated with the given error name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message)\n */\n readonly message: string;\n /**\n * The **`name`** read-only property of the one of the strings associated with an error name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name)\n */\n readonly name: string;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n}\n\ndeclare var DOMException: {\n prototype: DOMException;\n new(message?: string, name?: string): DOMException;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n};\n\n/**\n * The **`DOMImplementation`** interface represents an object providing methods which are not dependent on any particular document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation)\n */\ninterface DOMImplementation {\n /**\n * The **`DOMImplementation.createDocument()`** method creates and returns an XMLDocument.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocument)\n */\n createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): XMLDocument;\n /**\n * The **`DOMImplementation.createDocumentType()`** method returns a DocumentType object which can either be used with into the document via methods like Node.insertBefore() or ```js-nolint createDocumentType(qualifiedNameStr, publicId, systemId) ``` - `qualifiedNameStr` - : A string containing the qualified name, like `svg:svg`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocumentType)\n */\n createDocumentType(name: string, publicId: string, systemId: string): DocumentType;\n /**\n * The **`DOMImplementation.createHTMLDocument()`** method creates a new HTML Document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument)\n */\n createHTMLDocument(title?: string): Document;\n /**\n * The **`DOMImplementation.hasFeature()`** method returns a boolean flag indicating if a given feature is supported.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/hasFeature)\n */\n hasFeature(...args: any[]): true;\n}\n\ndeclare var DOMImplementation: {\n prototype: DOMImplementation;\n new(): DOMImplementation;\n};\n\n/**\n * The **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix)\n */\ninterface DOMMatrix extends DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n f: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */\n m44: number;\n /**\n * The **`invertSelf()`** method of the DOMMatrix interface inverts the original matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/invertSelf)\n */\n invertSelf(): DOMMatrix;\n /**\n * The **`multiplySelf()`** method of the DOMMatrix interface multiplies a matrix by the `otherMatrix` parameter, computing the dot product of the original matrix and the specified matrix: `A⋅B`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/multiplySelf)\n */\n multiplySelf(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The **`preMultiplySelf()`** method of the DOMMatrix interface modifies the matrix by pre-multiplying it with the specified `DOMMatrix`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/preMultiplySelf)\n */\n preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The `rotateAxisAngleSelf()` method of the DOMMatrix interface is a transformation method that rotates the source matrix by the given vector and angle, returning the altered matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateAxisAngleSelf)\n */\n rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /**\n * The `rotateFromVectorSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by rotating the matrix by the angle between the specified vector and `(1, 0)`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateFromVectorSelf)\n */\n rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\n /**\n * The `rotateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateSelf)\n */\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /**\n * The **`scale3dSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor to all three axes, centered on the given origin, with a default origin of `(0, 0, 0)`, returning the 3D-scaled matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf)\n */\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The **`scaleSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor, centered on the given origin, with a default origin of `(0, 0)`, returning the scaled matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf)\n */\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The **`setMatrixValue()`** method of the DOMMatrix interface replaces the contents of the matrix with the matrix described by the specified transform or transforms, returning itself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/setMatrixValue)\n */\n setMatrixValue(transformList: string): DOMMatrix;\n /**\n * The `skewXSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewXSelf)\n */\n skewXSelf(sx?: number): DOMMatrix;\n /**\n * The `skewYSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewYSelf)\n */\n skewYSelf(sy?: number): DOMMatrix;\n /**\n * The `translateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/translateSelf)\n */\n translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrix: {\n prototype: DOMMatrix;\n new(init?: string | number[]): DOMMatrix;\n fromFloat32Array(array32: Float32Array): DOMMatrix;\n fromFloat64Array(array64: Float64Array): DOMMatrix;\n fromMatrix(other?: DOMMatrixInit): DOMMatrix;\n};\n\ntype SVGMatrix = DOMMatrix;\ndeclare var SVGMatrix: typeof DOMMatrix;\n\ntype WebKitCSSMatrix = DOMMatrix;\ndeclare var WebKitCSSMatrix: typeof DOMMatrix;\n\n/**\n * The **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix, suitable for 2D and 3D operations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly)\n */\ninterface DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly f: number;\n /**\n * The readonly **`is2D`** property of the DOMMatrixReadOnly interface is a Boolean flag that is `true` when the matrix is 2D.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D)\n */\n readonly is2D: boolean;\n /**\n * The readonly **`isIdentity`** property of the DOMMatrixReadOnly interface is a Boolean whose value is `true` if the matrix is the identity matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity)\n */\n readonly isIdentity: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */\n readonly m44: number;\n /**\n * The **`flipX()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the x-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX)\n */\n flipX(): DOMMatrix;\n /**\n * The **`flipY()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the y-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY)\n */\n flipY(): DOMMatrix;\n /**\n * The **`inverse()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the inverse of the original matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse)\n */\n inverse(): DOMMatrix;\n /**\n * The **`multiply()`** method of the DOMMatrixReadOnly interface creates and returns a new matrix which is the dot product of the matrix and the `otherMatrix` parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply)\n */\n multiply(other?: DOMMatrixInit): DOMMatrix;\n /**\n * The `rotate()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix around each of its axes by the specified number of degrees.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate)\n */\n rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /**\n * The `rotateAxisAngle()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix by the given vector and angle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle)\n */\n rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /**\n * The `rotateFromVector()` method of the DOMMatrixReadOnly interface is returns a new DOMMatrix created by rotating the source matrix by the angle between the specified vector and `(1, 0)`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector)\n */\n rotateFromVector(x?: number, y?: number): DOMMatrix;\n /**\n * The **`scale()`** method of the original matrix with a scale transform applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale)\n */\n scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * The **`scale3d()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the result of a 3D scale transform being applied to the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d)\n */\n scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** @deprecated */\n scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\n /**\n * The `skewX()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its x-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX)\n */\n skewX(sx?: number): DOMMatrix;\n /**\n * The `skewY()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its y-axis.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY)\n */\n skewY(sy?: number): DOMMatrix;\n /**\n * The **`toFloat32Array()`** method of the DOMMatrixReadOnly interface returns a new Float32Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array)\n */\n toFloat32Array(): Float32Array;\n /**\n * The **`toFloat64Array()`** method of the DOMMatrixReadOnly interface returns a new Float64Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array)\n */\n toFloat64Array(): Float64Array;\n /**\n * The **`toJSON()`** method of the DOMMatrixReadOnly interface creates and returns a JSON object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toJSON)\n */\n toJSON(): any;\n /**\n * The **`transformPoint`** method of the You can also create a new `DOMPoint` by applying a matrix to a point with the DOMPointReadOnly.matrixTransform() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint)\n */\n transformPoint(point?: DOMPointInit): DOMPoint;\n /**\n * The `translate()` method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix with a translation applied.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate)\n */\n translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\n toString(): string;\n}\n\ndeclare var DOMMatrixReadOnly: {\n prototype: DOMMatrixReadOnly;\n new(init?: string | number[]): DOMMatrixReadOnly;\n fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\n fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\n fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\n};\n\n/**\n * The **`DOMParser`** interface provides the ability to parse XML or HTML source code from a string into a DOM Document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser)\n */\ninterface DOMParser {\n /**\n * The **`parseFromString()`** method of the DOMParser interface parses a string containing either HTML or XML, returning an HTMLDocument or an XMLDocument.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser/parseFromString)\n */\n parseFromString(string: string, type: DOMParserSupportedType): Document;\n}\n\ndeclare var DOMParser: {\n prototype: DOMParser;\n new(): DOMParser;\n};\n\n/**\n * A **`DOMPoint`** object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint)\n */\ninterface DOMPoint extends DOMPointReadOnly {\n /**\n * The **`DOMPoint`** interface's **`w`** property holds the point's perspective value, w, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w)\n */\n w: number;\n /**\n * The **`DOMPoint`** interface's **`x`** property holds the horizontal coordinate, x, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x)\n */\n x: number;\n /**\n * The **`DOMPoint`** interface's **`y`** property holds the vertical coordinate, _y_, for a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y)\n */\n y: number;\n /**\n * The **`DOMPoint`** interface's **`z`** property specifies the depth coordinate of a point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z)\n */\n z: number;\n}\n\ndeclare var DOMPoint: {\n prototype: DOMPoint;\n new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\n /**\n * The **`fromPoint()`** static method of the DOMPoint interface creates and returns a new mutable `DOMPoint` object given a source point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static)\n */\n fromPoint(other?: DOMPointInit): DOMPoint;\n};\n\ntype SVGPoint = DOMPoint;\ndeclare var SVGPoint: typeof DOMPoint;\n\n/**\n * The **`DOMPointReadOnly`** interface specifies the coordinate and perspective fields used by DOMPoint to define a 2D or 3D point in a coordinate system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly)\n */\ninterface DOMPointReadOnly {\n /**\n * The **`DOMPointReadOnly`** interface's **`w`** property holds the point's perspective value, `w`, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w)\n */\n readonly w: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`x`** property holds the horizontal coordinate, x, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x)\n */\n readonly x: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`y`** property holds the vertical coordinate, y, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y)\n */\n readonly y: number;\n /**\n * The **`DOMPointReadOnly`** interface's **`z`** property holds the depth coordinate, z, for a read-only point in space.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z)\n */\n readonly z: number;\n /**\n * The **`matrixTransform()`** method of the DOMPointReadOnly interface applies a matrix transform specified as an object to the DOMPointReadOnly object, creating and returning a new `DOMPointReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform)\n */\n matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\n /**\n * The DOMPointReadOnly method `toJSON()` returns an object giving the ```js-nolint toJSON() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMPointReadOnly: {\n prototype: DOMPointReadOnly;\n new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\n /**\n * The static **DOMPointReadOnly** method `fromPoint()` creates and returns a new `DOMPointReadOnly` object given a source point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static)\n */\n fromPoint(other?: DOMPointInit): DOMPointReadOnly;\n};\n\n/**\n * A `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an arbitrary quadrilateral.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad)\n */\ninterface DOMQuad {\n /**\n * The **`DOMQuad`** interface's **`p1`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1)\n */\n readonly p1: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p2`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2)\n */\n readonly p2: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p3`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3)\n */\n readonly p3: DOMPoint;\n /**\n * The **`DOMQuad`** interface's **`p4`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4)\n */\n readonly p4: DOMPoint;\n /**\n * The DOMQuad method `getBounds()` returns a DOMRect object representing the smallest rectangle that fully contains the `DOMQuad` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds)\n */\n getBounds(): DOMRect;\n /**\n * The DOMQuad method `toJSON()` returns a ```js-nolint toJSON() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMQuad: {\n prototype: DOMQuad;\n new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\n fromQuad(other?: DOMQuadInit): DOMQuad;\n fromRect(other?: DOMRectInit): DOMQuad;\n};\n\n/**\n * A **`DOMRect`** describes the size and position of a rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect)\n */\ninterface DOMRect extends DOMRectReadOnly {\n /**\n * The **`height`** property of the DOMRect interface represents the height of the rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/height)\n */\n height: number;\n /**\n * The **`width`** property of the DOMRect interface represents the width of the rectangle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/width)\n */\n width: number;\n /**\n * The **`x`** property of the DOMRect interface represents the x-coordinate of the rectangle, which is the horizontal distance between the viewport's left edge and the rectangle's origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/x)\n */\n x: number;\n /**\n * The **`y`** property of the DOMRect interface represents the y-coordinate of the rectangle, which is the vertical distance between the viewport's top edge and the rectangle's origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/y)\n */\n y: number;\n}\n\ndeclare var DOMRect: {\n prototype: DOMRect;\n new(x?: number, y?: number, width?: number, height?: number): DOMRect;\n /**\n * The **`fromRect()`** static method of the object with a given location and dimensions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static)\n */\n fromRect(other?: DOMRectInit): DOMRect;\n};\n\ntype SVGRect = DOMRect;\ndeclare var SVGRect: typeof DOMRect;\n\n/**\n * The **`DOMRectList`** interface represents a collection of DOMRect objects, typically used to hold the rectangles associated with a particular element, like bounding boxes returned by methods such as Element.getClientRects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList)\n */\ninterface DOMRectList {\n /**\n * The read-only **`length`** property of the DOMRectList interface returns the number of DOMRect objects in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList/length)\n */\n readonly length: number;\n /**\n * The DOMRectList method `item()` returns the DOMRect at the specified index within the list, or `null` if the index is out of range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList/item)\n */\n item(index: number): DOMRect | null;\n [index: number]: DOMRect;\n}\n\ndeclare var DOMRectList: {\n prototype: DOMRectList;\n new(): DOMRectList;\n};\n\n/**\n * The **`DOMRectReadOnly`** interface specifies the standard properties (also used by DOMRect) to define a rectangle whose properties are immutable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly)\n */\ninterface DOMRectReadOnly {\n /**\n * The **`bottom`** read-only property of the **`DOMRectReadOnly`** interface returns the bottom coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom)\n */\n readonly bottom: number;\n /**\n * The **`height`** read-only property of the **`DOMRectReadOnly`** interface represents the height of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height)\n */\n readonly height: number;\n /**\n * The **`left`** read-only property of the **`DOMRectReadOnly`** interface returns the left coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left)\n */\n readonly left: number;\n /**\n * The **`right`** read-only property of the **`DOMRectReadOnly`** interface returns the right coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right)\n */\n readonly right: number;\n /**\n * The **`top`** read-only property of the **`DOMRectReadOnly`** interface returns the top coordinate value of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top)\n */\n readonly top: number;\n /**\n * The **`width`** read-only property of the **`DOMRectReadOnly`** interface represents the width of the `DOMRect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width)\n */\n readonly width: number;\n /**\n * The **`x`** read-only property of the **`DOMRectReadOnly`** interface represents the x coordinate of the `DOMRect`'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x)\n */\n readonly x: number;\n /**\n * The **`y`** read-only property of the **`DOMRectReadOnly`** interface represents the y coordinate of the `DOMRect`'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y)\n */\n readonly y: number;\n /**\n * The DOMRectReadOnly method `toJSON()` returns a JSON representation of the `DOMRectReadOnly` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var DOMRectReadOnly: {\n prototype: DOMRectReadOnly;\n new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\n /**\n * The **`fromRect()`** static method of the object with a given location and dimensions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static)\n */\n fromRect(other?: DOMRectInit): DOMRectReadOnly;\n};\n\n/**\n * The **`DOMStringList`** interface is a legacy type returned by some APIs and represents a non-modifiable list of strings (`DOMString`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)\n */\ninterface DOMStringList {\n /**\n * The read-only **`length`** property indicates the number of strings in the DOMStringList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)\n */\n readonly length: number;\n /**\n * The **`contains()`** method returns a boolean indicating whether the given string is in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)\n */\n contains(string: string): boolean;\n /**\n * The **`item()`** method returns a string from a `DOMStringList` by index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)\n */\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n prototype: DOMStringList;\n new(): DOMStringList;\n};\n\n/**\n * The **`DOMStringMap`** interface is used for the HTMLElement.dataset attribute, to represent data for custom attributes added to elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringMap)\n */\ninterface DOMStringMap {\n [name: string]: string | undefined;\n}\n\ndeclare var DOMStringMap: {\n prototype: DOMStringMap;\n new(): DOMStringMap;\n};\n\n/**\n * The **`DOMTokenList`** interface represents a set of space-separated tokens.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList)\n */\ninterface DOMTokenList {\n /**\n * The read-only **`length`** property of the DOMTokenList interface is an `integer` representing the number of objects stored in the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/length)\n */\n readonly length: number;\n /**\n * The **`value`** property of the DOMTokenList interface is a stringifier that returns the value of the list serialized as a string, or clears and sets the list to the given value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/value)\n */\n value: string;\n toString(): string;\n /**\n * The **`add()`** method of the DOMTokenList interface adds the given tokens to the list, omitting any that are already present.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/add)\n */\n add(...tokens: string[]): void;\n /**\n * The **`contains()`** method of the DOMTokenList interface returns a boolean value — `true` if the underlying list contains the given token, otherwise `false`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/contains)\n */\n contains(token: string): boolean;\n /**\n * The **`item()`** method of the DOMTokenList interface returns an item in the list, determined by its position in the list, its index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/item)\n */\n item(index: number): string | null;\n /**\n * The **`remove()`** method of the DOMTokenList interface removes the specified _tokens_ from the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/remove)\n */\n remove(...tokens: string[]): void;\n /**\n * The **`replace()`** method of the DOMTokenList interface replaces an existing token with a new token.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/replace)\n */\n replace(token: string, newToken: string): boolean;\n /**\n * The **`supports()`** method of the DOMTokenList interface returns `true` if a given `token` is in the associated attribute's supported tokens.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/supports)\n */\n supports(token: string): boolean;\n /**\n * The **`toggle()`** method of the DOMTokenList interface removes an existing token from the list and returns `false`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/toggle)\n */\n toggle(token: string, force?: boolean): boolean;\n forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;\n [index: number]: string;\n}\n\ndeclare var DOMTokenList: {\n prototype: DOMTokenList;\n new(): DOMTokenList;\n};\n\n/**\n * The **`DataTransfer`** object is used to hold any data transferred between contexts, such as a drag and drop operation, or clipboard read/write.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer)\n */\ninterface DataTransfer {\n /**\n * The **`DataTransfer.dropEffect`** property controls the feedback (typically visual) the user is given during a drag and drop operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/dropEffect)\n */\n dropEffect: \"none\" | \"copy\" | \"link\" | \"move\";\n /**\n * The **`DataTransfer.effectAllowed`** property specifies the effect that is allowed for a drag operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/effectAllowed)\n */\n effectAllowed: \"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\";\n /**\n * The **`files`** read-only property of `DataTransfer` objects is a list of the files in the drag operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/files)\n */\n readonly files: FileList;\n /**\n * The read-only `items` property of the DataTransfer interface is a A DataTransferItemList object containing DataTransferItem objects representing the items being dragged in a drag operation, one list item for each object being dragged.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/items)\n */\n readonly items: DataTransferItemList;\n /**\n * The **`DataTransfer.types`** read-only property returns the available types that exist in the DataTransfer.items.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/types)\n */\n readonly types: ReadonlyArray;\n /**\n * The **`DataTransfer.clearData()`** method removes the drag operation's drag data for the given type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/clearData)\n */\n clearData(format?: string): void;\n /**\n * The **`DataTransfer.getData()`** method retrieves drag data (as a string) for the specified type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/getData)\n */\n getData(format: string): string;\n /**\n * The **`DataTransfer.setData()`** method sets the drag operation's drag data to the specified data and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setData)\n */\n setData(format: string, data: string): void;\n /**\n * When a drag occurs, a translucent image is generated from the drag target (the element the HTMLElement/dragstart_event event is fired at), and follows the mouse pointer during the drag.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setDragImage)\n */\n setDragImage(image: Element, x: number, y: number): void;\n}\n\ndeclare var DataTransfer: {\n prototype: DataTransfer;\n new(): DataTransfer;\n};\n\n/**\n * The **`DataTransferItem`** object represents one drag data item.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem)\n */\ninterface DataTransferItem {\n /**\n * The read-only **`DataTransferItem.kind`** property returns the kind–a string or a file–of the DataTransferItem object representing the _drag data item_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/kind)\n */\n readonly kind: string;\n /**\n * The read-only **`DataTransferItem.type`** property returns the type (format) of the DataTransferItem object representing the drag data item.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/type)\n */\n readonly type: string;\n /**\n * If the item is a file, the **`DataTransferItem.getAsFile()`** method returns the drag data item's File object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsFile)\n */\n getAsFile(): File | null;\n /**\n * The **`DataTransferItem.getAsString()`** method invokes the given callback with the drag data item's string data as the argument if the item's DataTransferItem.kind is a _Plain unicode string_ (i.e., `kind` is `string`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsString)\n */\n getAsString(callback: FunctionStringCallback | null): void;\n /**\n * If the item described by the DataTransferItem is a file, `webkitGetAsEntry()` returns a FileSystemFileEntry or FileSystemDirectoryEntry representing it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/webkitGetAsEntry)\n */\n webkitGetAsEntry(): FileSystemEntry | null;\n}\n\ndeclare var DataTransferItem: {\n prototype: DataTransferItem;\n new(): DataTransferItem;\n};\n\n/**\n * The **`DataTransferItemList`** object is a list of DataTransferItem objects representing items being dragged.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList)\n */\ninterface DataTransferItemList {\n /**\n * The read-only **`length`** property of the the drag item list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/length)\n */\n readonly length: number;\n /**\n * The **`DataTransferItemList.add()`** method creates a new list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/add)\n */\n add(data: string, type: string): DataTransferItem | null;\n add(data: File): DataTransferItem | null;\n /**\n * The DataTransferItemList method **`clear()`** removes all DataTransferItem objects from the drag data items list, leaving the list empty.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/clear)\n */\n clear(): void;\n /**\n * The **`DataTransferItemList.remove()`** method removes the less than zero or greater than one less than the length of the list, the list will not be changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/remove)\n */\n remove(index: number): void;\n [index: number]: DataTransferItem;\n}\n\ndeclare var DataTransferItemList: {\n prototype: DataTransferItemList;\n new(): DataTransferItemList;\n};\n\n/**\n * The **`DecompressionStream`** interface of the Compression Streams API is an API for decompressing a stream of data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream)\n */\ninterface DecompressionStream extends GenericTransformStream {\n readonly readable: ReadableStream>;\n readonly writable: WritableStream;\n}\n\ndeclare var DecompressionStream: {\n prototype: DecompressionStream;\n new(format: CompressionFormat): DecompressionStream;\n};\n\n/**\n * The **`DelayNode`** interface represents a delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode)\n */\ninterface DelayNode extends AudioNode {\n /**\n * The `delayTime` property of the DelayNode interface is an a-rate AudioParam representing the amount of delay to apply.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode/delayTime)\n */\n readonly delayTime: AudioParam;\n}\n\ndeclare var DelayNode: {\n prototype: DelayNode;\n new(context: BaseAudioContext, options?: DelayOptions): DelayNode;\n};\n\n/**\n * The **`DeviceMotionEvent`** interface of the Device Orientation Events provides web developers with information about the speed of changes for the device's position and orientation.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent)\n */\ninterface DeviceMotionEvent extends Event {\n /**\n * The **`acceleration`** read-only property of the DeviceMotionEvent interface returns the acceleration recorded by the device, in meters per second squared (m/s²).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/acceleration)\n */\n readonly acceleration: DeviceMotionEventAcceleration | null;\n /**\n * The **`accelerationIncludingGravity`** read-only property of the DeviceMotionEvent interface returns the amount of acceleration recorded by the device, in meters per second squared (m/s²).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/accelerationIncludingGravity)\n */\n readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;\n /**\n * The **`interval`** read-only property of the DeviceMotionEvent interface returns the interval, in milliseconds, at which data is obtained from the underlying hardware.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/interval)\n */\n readonly interval: number;\n /**\n * The **`rotationRate`** read-only property of the DeviceMotionEvent interface returns the rate at which the device is rotating around each of its axes in degrees per second.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/rotationRate)\n */\n readonly rotationRate: DeviceMotionEventRotationRate | null;\n}\n\ndeclare var DeviceMotionEvent: {\n prototype: DeviceMotionEvent;\n new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;\n};\n\n/**\n * The **`DeviceMotionEventAcceleration`** interface of the Device Orientation Events provides information about the amount of acceleration the device is experiencing along all three axes.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration)\n */\ninterface DeviceMotionEventAcceleration {\n /**\n * The **`x`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the X axis in a `DeviceMotionEventAcceleration` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/x)\n */\n readonly x: number | null;\n /**\n * The **`y`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the Y axis in a `DeviceMotionEventAcceleration` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/y)\n */\n readonly y: number | null;\n /**\n * The **`z`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the Z axis in a `DeviceMotionEventAcceleration` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/z)\n */\n readonly z: number | null;\n}\n\n/**\n * A **`DeviceMotionEventRotationRate`** interface of the Device Orientation Events provides information about the rate at which the device is rotating around all three axes.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate)\n */\ninterface DeviceMotionEventRotationRate {\n /**\n * The **`alpha`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the Z axis, in degrees per second.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/alpha)\n */\n readonly alpha: number | null;\n /**\n * The **`beta`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the X axis, in degrees per second.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/beta)\n */\n readonly beta: number | null;\n /**\n * The **`gamma`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the Y axis, in degrees per second.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/gamma)\n */\n readonly gamma: number | null;\n}\n\n/**\n * The **`DeviceOrientationEvent`** interface of the Device Orientation Events provides web developers with information from the physical orientation of the device running the web page.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent)\n */\ninterface DeviceOrientationEvent extends Event {\n /**\n * The **`absolute`** read-only property of the DeviceOrientationEvent interface indicates whether or not the device is providing orientation data absolutely (that is, in reference to the Earth's coordinate frame) or using some arbitrary frame determined by the device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/absolute)\n */\n readonly absolute: boolean;\n /**\n * The **`alpha`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the Z axis; that is, the number of degrees by which the device is being twisted around the center of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/alpha)\n */\n readonly alpha: number | null;\n /**\n * The **`beta`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the X axis; that is, the number of degrees, ranged between -180 and 180, by which the device is tipped forward or backward.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/beta)\n */\n readonly beta: number | null;\n /**\n * The **`gamma`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the Y axis; that is, the number of degrees, ranged between `-90` and `90`, by which the device is tilted left or right.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/gamma)\n */\n readonly gamma: number | null;\n}\n\ndeclare var DeviceOrientationEvent: {\n prototype: DeviceOrientationEvent;\n new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;\n};\n\ninterface DocumentEventMap extends GlobalEventHandlersEventMap {\n \"DOMContentLoaded\": Event;\n \"fullscreenchange\": Event;\n \"fullscreenerror\": Event;\n \"pointerlockchange\": Event;\n \"pointerlockerror\": Event;\n \"readystatechange\": Event;\n \"visibilitychange\": Event;\n}\n\n/**\n * The **`Document`** interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document)\n */\ninterface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {\n /**\n * The **`URL`** read-only property of the Document interface returns the document location as a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/URL)\n */\n readonly URL: string;\n /**\n * Returns or sets the color of an active link in the document body.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/alinkColor)\n */\n alinkColor: string;\n /**\n * The Document interface's read-only **`all`** property returns an HTMLAllCollection rooted at the document node.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/all)\n */\n readonly all: HTMLAllCollection;\n /**\n * The **`anchors`** read-only property of the An HTMLCollection.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/anchors)\n */\n readonly anchors: HTMLCollectionOf;\n /**\n * The **`applets`** property of the Document returns an empty HTMLCollection.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/applets)\n */\n readonly applets: HTMLCollection;\n /**\n * The deprecated `bgColor` property gets or sets the background color of the current document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/bgColor)\n */\n bgColor: string;\n /**\n * The **`Document.body`** property represents the `null` if no such element exists.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/body)\n */\n body: HTMLElement;\n /**\n * The **`Document.characterSet`** read-only property returns the character encoding of the document that it's currently rendered with.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly characterSet: string;\n /**\n * @deprecated This is a legacy alias of `characterSet`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly charset: string;\n /**\n * The **`Document.compatMode`** read-only property indicates whether the document is rendered in Quirks mode or Standards mode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/compatMode)\n */\n readonly compatMode: string;\n /**\n * The **`Document.contentType`** read-only property returns the MIME type that the document is being rendered as.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/contentType)\n */\n readonly contentType: string;\n /**\n * The Document property `cookie` lets you read and write cookies associated with the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/cookie)\n */\n cookie: string;\n /**\n * The **`Document.currentScript`** property returns the script element whose script is currently being processed and isn't a JavaScript module.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/currentScript)\n */\n readonly currentScript: HTMLOrSVGScriptElement | null;\n /**\n * In browsers, **`document.defaultView`** returns the This property is read-only.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/defaultView)\n */\n readonly defaultView: (WindowProxy & typeof globalThis) | null;\n /**\n * **`document.designMode`** controls whether the entire document is editable.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/designMode)\n */\n designMode: string;\n /**\n * The **`Document.dir`** property is a string representing the directionality of the text of the document, whether left to right (default) or right to left.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/dir)\n */\n dir: string;\n /**\n * The **`doctype`** read-only property of the Document interface is a DocumentType object representing the Doctype associated with the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/doctype)\n */\n readonly doctype: DocumentType | null;\n /**\n * The **`documentElement`** read-only property of the Document interface returns the example, the html element for HTML documents).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentElement)\n */\n readonly documentElement: HTMLElement;\n /**\n * The **`documentURI`** read-only property of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentURI)\n */\n readonly documentURI: string;\n /**\n * The **`domain`** property of the Document interface gets/sets the domain portion of the origin of the current document, as used by the same-origin policy.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/domain)\n */\n domain: string;\n /**\n * The **`embeds`** read-only property of the An HTMLCollection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/embeds)\n */\n readonly embeds: HTMLCollectionOf;\n /**\n * **`fgColor`** gets/sets the foreground color, or text color, of the current document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fgColor)\n */\n fgColor: string;\n /**\n * The **`forms`** read-only property of the Document interface returns an HTMLCollection listing all the form elements contained in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/forms)\n */\n readonly forms: HTMLCollectionOf;\n /**\n * The **`fragmentDirective`** read-only property of the Document interface returns the FragmentDirective for the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fragmentDirective)\n */\n readonly fragmentDirective: FragmentDirective;\n /**\n * The obsolete Document interface's **`fullscreen`** read-only property reports whether or not the document is currently displaying content in fullscreen mode.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreen)\n */\n readonly fullscreen: boolean;\n /**\n * The read-only **`fullscreenEnabled`** property on the Document interface indicates whether or not fullscreen mode is available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenEnabled)\n */\n readonly fullscreenEnabled: boolean;\n /**\n * The **`head`** read-only property of the Document interface returns the head element of the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/head)\n */\n readonly head: HTMLHeadElement;\n /**\n * The **`Document.hidden`** read-only property returns a Boolean value indicating if the page is considered hidden or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hidden)\n */\n readonly hidden: boolean;\n /**\n * The **`images`** read-only property of the Document interface returns a collection of the images in the current HTML document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/images)\n */\n readonly images: HTMLCollectionOf;\n /**\n * The **`Document.implementation`** property returns a A DOMImplementation object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/implementation)\n */\n readonly implementation: DOMImplementation;\n /**\n * @deprecated This is a legacy alias of `characterSet`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly inputEncoding: string;\n /**\n * The **`lastModified`** property of the Document interface returns a string containing the date and local time on which the current document was last modified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastModified)\n */\n readonly lastModified: string;\n /**\n * The **`Document.linkColor`** property gets/sets the color of links within the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/linkColor)\n */\n linkColor: string;\n /**\n * The **`links`** read-only property of the Document interface returns a collection of all area elements and a elements in a document with a value for the href attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/links)\n */\n readonly links: HTMLCollectionOf;\n /**\n * The **`Document.location`** read-only property returns a and provides methods for changing that URL and loading another URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/location)\n */\n get location(): Location;\n set location(href: string);\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenchange_event) */\n onfullscreenchange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenerror_event) */\n onfullscreenerror: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockchange_event) */\n onpointerlockchange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockerror_event) */\n onpointerlockerror: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readystatechange_event) */\n onreadystatechange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilitychange_event) */\n onvisibilitychange: ((this: Document, ev: Event) => any) | null;\n readonly ownerDocument: null;\n /**\n * The read-only **`pictureInPictureEnabled`** property of the available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureEnabled)\n */\n readonly pictureInPictureEnabled: boolean;\n /**\n * The **`plugins`** read-only property of the containing one or more HTMLEmbedElements representing the An HTMLCollection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/plugins)\n */\n readonly plugins: HTMLCollectionOf;\n /**\n * The **`Document.readyState`** property describes the loading state of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readyState)\n */\n readonly readyState: DocumentReadyState;\n /**\n * The **`Document.referrer`** property returns the URI of the page that linked to this page.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/referrer)\n */\n readonly referrer: string;\n /**\n * **`Document.rootElement`** returns the Element that is the root element of the document if it is an documents.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/rootElement)\n */\n readonly rootElement: SVGSVGElement | null;\n /**\n * The **`scripts`** property of the Document interface returns a list of the script elements in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scripts)\n */\n readonly scripts: HTMLCollectionOf;\n /**\n * The **`scrollingElement`** read-only property of the scrolls the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollingElement)\n */\n readonly scrollingElement: Element | null;\n /**\n * The `timeline` readonly property of the Document interface represents the default timeline of the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/timeline)\n */\n readonly timeline: DocumentTimeline;\n /**\n * The **`document.title`** property gets or sets the current title of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/title)\n */\n title: string;\n /**\n * The **`Document.visibilityState`** read-only property returns the visibility of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilityState)\n */\n readonly visibilityState: DocumentVisibilityState;\n /**\n * The **`Document.vlinkColor`** property gets/sets the color of links that the user has visited in the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/vlinkColor)\n */\n vlinkColor: string;\n /**\n * **`Document.adoptNode()`** transfers a node/dom from another Document into the method's document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptNode)\n */\n adoptNode(node: T): T;\n /** @deprecated */\n captureEvents(): void;\n /**\n * The **`caretPositionFromPoint()`** method of the Document interface returns a CaretPosition object, containing the DOM node, along with the caret and caret's character offset within that node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/caretPositionFromPoint)\n */\n caretPositionFromPoint(x: number, y: number, options?: CaretPositionFromPointOptions): CaretPosition | null;\n /** @deprecated */\n caretRangeFromPoint(x: number, y: number): Range | null;\n /**\n * The **`Document.clear()`** method does nothing, but doesn't raise any error.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/clear)\n */\n clear(): void;\n /**\n * The **`Document.close()`** method finishes writing to a document, opened with Document.open().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/close)\n */\n close(): void;\n /**\n * The **`Document.createAttribute()`** method creates a new attribute node, and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttribute)\n */\n createAttribute(localName: string): Attr;\n /**\n * The **`Document.createAttributeNS()`** method creates a new attribute node with the specified namespace URI and qualified name, and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttributeNS)\n */\n createAttributeNS(namespace: string | null, qualifiedName: string): Attr;\n /**\n * **`createCDATASection()`** creates a new CDATA section node, and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createCDATASection)\n */\n createCDATASection(data: string): CDATASection;\n /**\n * **`createComment()`** creates a new comment node, and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createComment)\n */\n createComment(data: string): Comment;\n /**\n * Creates a new empty DocumentFragment into which DOM nodes can be added to build an offscreen DOM tree.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createDocumentFragment)\n */\n createDocumentFragment(): DocumentFragment;\n /**\n * In an HTML document, the **`document.createElement()`** method creates the HTML element specified by `localName`, or an HTMLUnknownElement if `localName` isn't recognized.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElement)\n */\n createElement(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n /** @deprecated */\n createElement(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\n /**\n * Creates an element with the specified namespace URI and qualified name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElementNS)\n */\n createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement;\n createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement;\n createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\n createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;\n /**\n * Creates an event of the type specified.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createEvent)\n */\n createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\n createEvent(eventInterface: \"AnimationPlaybackEvent\"): AnimationPlaybackEvent;\n createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\n createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\n createEvent(eventInterface: \"BlobEvent\"): BlobEvent;\n createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\n createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\n createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\n createEvent(eventInterface: \"ContentVisibilityAutoStateChangeEvent\"): ContentVisibilityAutoStateChangeEvent;\n createEvent(eventInterface: \"CookieChangeEvent\"): CookieChangeEvent;\n createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\n createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\n createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\n createEvent(eventInterface: \"DragEvent\"): DragEvent;\n createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\n createEvent(eventInterface: \"Event\"): Event;\n createEvent(eventInterface: \"Events\"): Event;\n createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\n createEvent(eventInterface: \"FontFaceSetLoadEvent\"): FontFaceSetLoadEvent;\n createEvent(eventInterface: \"FormDataEvent\"): FormDataEvent;\n createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\n createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\n createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\n createEvent(eventInterface: \"InputEvent\"): InputEvent;\n createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\n createEvent(eventInterface: \"MIDIConnectionEvent\"): MIDIConnectionEvent;\n createEvent(eventInterface: \"MIDIMessageEvent\"): MIDIMessageEvent;\n createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\n createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\n createEvent(eventInterface: \"MediaQueryListEvent\"): MediaQueryListEvent;\n createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\n createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\n createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\n createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\n createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\n createEvent(eventInterface: \"PageRevealEvent\"): PageRevealEvent;\n createEvent(eventInterface: \"PageSwapEvent\"): PageSwapEvent;\n createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\n createEvent(eventInterface: \"PaymentMethodChangeEvent\"): PaymentMethodChangeEvent;\n createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\n createEvent(eventInterface: \"PictureInPictureEvent\"): PictureInPictureEvent;\n createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\n createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\n createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\n createEvent(eventInterface: \"PromiseRejectionEvent\"): PromiseRejectionEvent;\n createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\n createEvent(eventInterface: \"RTCDataChannelEvent\"): RTCDataChannelEvent;\n createEvent(eventInterface: \"RTCErrorEvent\"): RTCErrorEvent;\n createEvent(eventInterface: \"RTCPeerConnectionIceErrorEvent\"): RTCPeerConnectionIceErrorEvent;\n createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\n createEvent(eventInterface: \"RTCTrackEvent\"): RTCTrackEvent;\n createEvent(eventInterface: \"SecurityPolicyViolationEvent\"): SecurityPolicyViolationEvent;\n createEvent(eventInterface: \"SpeechSynthesisErrorEvent\"): SpeechSynthesisErrorEvent;\n createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\n createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\n createEvent(eventInterface: \"SubmitEvent\"): SubmitEvent;\n createEvent(eventInterface: \"TextEvent\"): TextEvent;\n createEvent(eventInterface: \"ToggleEvent\"): ToggleEvent;\n createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\n createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\n createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\n createEvent(eventInterface: \"UIEvent\"): UIEvent;\n createEvent(eventInterface: \"UIEvents\"): UIEvent;\n createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\n createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\n createEvent(eventInterface: string): Event;\n /**\n * The **`Document.createNodeIterator()`** method returns a new `NodeIterator` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNodeIterator)\n */\n createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;\n /**\n * `createProcessingInstruction()` generates a new processing instruction node and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction)\n */\n createProcessingInstruction(target: string, data: string): ProcessingInstruction;\n /**\n * The **`Document.createRange()`** method returns a new ```js-nolint createRange() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createRange)\n */\n createRange(): Range;\n /**\n * Creates a new Text node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTextNode)\n */\n createTextNode(data: string): Text;\n /**\n * The **`Document.createTreeWalker()`** creator method returns a newly created TreeWalker object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker)\n */\n createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;\n /**\n * The **`execCommand`** method implements multiple different commands.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/execCommand)\n */\n execCommand(commandId: string, showUI?: boolean, value?: string): boolean;\n /**\n * The Document method **`exitFullscreen()`** requests that the element on this document which is currently being presented in fullscreen mode be taken out of fullscreen mode, restoring the previous state of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitFullscreen)\n */\n exitFullscreen(): Promise;\n /**\n * The **`exitPictureInPicture()`** method of the Document interface requests that a video contained in this document, which is currently floating, be taken out of picture-in-picture mode, restoring the previous state of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPictureInPicture)\n */\n exitPictureInPicture(): Promise;\n /**\n * The **`exitPointerLock()`** method of the Document interface asynchronously releases a pointer lock previously requested through Element.requestPointerLock.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock)\n */\n exitPointerLock(): void;\n getElementById(elementId: string): HTMLElement | null;\n /**\n * The **`getElementsByClassName`** method of of all child elements which have all of the given class name(s).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName)\n */\n getElementsByClassName(classNames: string): HTMLCollectionOf;\n /**\n * The **`getElementsByName()`** method of the Document object returns a NodeList Collection of elements with a given `name` attribute in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByName)\n */\n getElementsByName(elementName: string): NodeListOf;\n /**\n * The **`getElementsByTagName`** method of The complete document is searched, including the root node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagName)\n */\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n /** @deprecated */\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf;\n /**\n * Returns a list of elements with the given tag name belonging to the given namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagNameNS)\n */\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf;\n /**\n * The **`getSelection()`** method of the Document interface returns the Selection object associated with this document, representing the range of text selected by the user, or the current position of the caret.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getSelection)\n */\n getSelection(): Selection | null;\n /**\n * The **`hasFocus()`** method of the Document interface returns a boolean value indicating whether the document or any element inside the document has focus.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasFocus)\n */\n hasFocus(): boolean;\n /**\n * The **`hasStorageAccess()`** method of the Document interface returns a Promise that resolves with a boolean value indicating whether the document has access to third-party, unpartitioned cookies.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasStorageAccess)\n */\n hasStorageAccess(): Promise;\n /**\n * The Document object's **`importNode()`** method creates a copy of a inserted into the current document later.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/importNode)\n */\n importNode(node: T, options?: boolean | ImportNodeOptions): T;\n /**\n * The **`Document.open()`** method opens a document for This does come with some side effects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/open)\n */\n open(unused1?: string, unused2?: string): Document;\n open(url: string | URL, name: string, features: string): WindowProxy | null;\n /**\n * The **`Document.queryCommandEnabled()`** method reports whether or not the specified editor command is enabled by the browser.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandEnabled)\n */\n queryCommandEnabled(commandId: string): boolean;\n /** @deprecated */\n queryCommandIndeterm(commandId: string): boolean;\n /**\n * The **`queryCommandState()`** method will tell you if the current selection has a certain Document.execCommand() command applied.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandState)\n */\n queryCommandState(commandId: string): boolean;\n /**\n * The **`Document.queryCommandSupported()`** method reports whether or not the specified editor command is supported by the browser.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandSupported)\n */\n queryCommandSupported(commandId: string): boolean;\n /** @deprecated */\n queryCommandValue(commandId: string): string;\n /** @deprecated */\n releaseEvents(): void;\n /**\n * The **`requestStorageAccess()`** method of the Document interface allows content loaded in a third-party context (i.e., embedded in an iframe) to request access to third-party cookies and unpartitioned state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/requestStorageAccess)\n */\n requestStorageAccess(): Promise;\n /**\n * The **`startViewTransition()`** method of the Document interface starts a new same-document (SPA) view transition and returns a ViewTransition object to represent it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/startViewTransition)\n */\n startViewTransition(callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): ViewTransition;\n /**\n * The **`write()`** method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open().\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/write)\n */\n write(...text: string[]): void;\n /**\n * The **`writeln()`** method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open(), followed by a newline character.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/writeln)\n */\n writeln(...text: string[]): void;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): null;\n addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Document: {\n prototype: Document;\n new(): Document;\n /**\n * The **`parseHTMLUnsafe()`** static method of the Document object is used to parse an HTML input, optionally filtering unwanted HTML elements and attributes, in order to create a new Document instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/parseHTMLUnsafe_static)\n */\n parseHTMLUnsafe(html: string): Document;\n};\n\n/**\n * The **`DocumentFragment`** interface represents a minimal document object that has no parent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment)\n */\ninterface DocumentFragment extends Node, NonElementParentNode, ParentNode {\n readonly ownerDocument: Document;\n getElementById(elementId: string): HTMLElement | null;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): string;\n set textContent(value: string | null);\n}\n\ndeclare var DocumentFragment: {\n prototype: DocumentFragment;\n new(): DocumentFragment;\n};\n\ninterface DocumentOrShadowRoot {\n /**\n * Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document.\n *\n * For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe's node document.\n *\n * Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that's located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/activeElement)\n */\n readonly activeElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptedStyleSheets) */\n adoptedStyleSheets: CSSStyleSheet[];\n /**\n * Returns document's fullscreen element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenElement)\n */\n readonly fullscreenElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureElement) */\n readonly pictureInPictureElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerLockElement) */\n readonly pointerLockElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/styleSheets) */\n readonly styleSheets: StyleSheetList;\n elementFromPoint(x: number, y: number): Element | null;\n elementsFromPoint(x: number, y: number): Element[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getAnimations) */\n getAnimations(): Animation[];\n}\n\n/**\n * The **`DocumentTimeline`** interface of the Web Animations API represents animation timelines, including the default document timeline (accessed via Document.timeline).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentTimeline)\n */\ninterface DocumentTimeline extends AnimationTimeline {\n}\n\ndeclare var DocumentTimeline: {\n prototype: DocumentTimeline;\n new(options?: DocumentTimelineOptions): DocumentTimeline;\n};\n\n/**\n * The **`DocumentType`** interface represents a Node containing a doctype.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType)\n */\ninterface DocumentType extends Node, ChildNode {\n /**\n * The read-only **`name`** property of the DocumentType returns the type of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/name)\n */\n readonly name: string;\n readonly ownerDocument: Document;\n /**\n * The read-only **`publicId`** property of the DocumentType returns a formal identifier of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/publicId)\n */\n readonly publicId: string;\n /**\n * The read-only **`systemId`** property of the DocumentType returns the URL of the associated DTD.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/systemId)\n */\n readonly systemId: string;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): null;\n}\n\ndeclare var DocumentType: {\n prototype: DocumentType;\n new(): DocumentType;\n};\n\n/**\n * The **`DragEvent`** interface is a DOM event that represents a drag and drop interaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent)\n */\ninterface DragEvent extends MouseEvent {\n /**\n * The **`DragEvent.dataTransfer`** read-only property holds the drag operation's data (as a DataTransfer object).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent/dataTransfer)\n */\n readonly dataTransfer: DataTransfer | null;\n}\n\ndeclare var DragEvent: {\n prototype: DragEvent;\n new(type: string, eventInitDict?: DragEventInit): DragEvent;\n};\n\n/**\n * The `DynamicsCompressorNode` interface provides a compression effect, which lowers the volume of the loudest parts of the signal in order to help prevent clipping and distortion that can occur when multiple sounds are played and multiplexed together at once.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode)\n */\ninterface DynamicsCompressorNode extends AudioNode {\n /**\n * The `attack` property of the DynamicsCompressorNode interface is a k-rate AudioParam representing the amount of time, in seconds, required to reduce the gain by 10 dB.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/attack)\n */\n readonly attack: AudioParam;\n /**\n * The `knee` property of the DynamicsCompressorNode interface is a k-rate AudioParam containing a decibel value representing the range above the threshold where the curve smoothly transitions to the compressed portion.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/knee)\n */\n readonly knee: AudioParam;\n /**\n * The `ratio` property of the DynamicsCompressorNode interface Is a k-rate AudioParam representing the amount of change, in dB, needed in the input for a 1 dB change in the output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/ratio)\n */\n readonly ratio: AudioParam;\n /**\n * The **`reduction`** read-only property of the DynamicsCompressorNode interface is a float representing the amount of gain reduction currently applied by the compressor to the signal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/reduction)\n */\n readonly reduction: number;\n /**\n * The `release` property of the DynamicsCompressorNode interface Is a k-rate AudioParam representing the amount of time, in seconds, required to increase the gain by 10 dB.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/release)\n */\n readonly release: AudioParam;\n /**\n * The `threshold` property of the DynamicsCompressorNode interface is a k-rate AudioParam representing the decibel value above which the compression will start taking effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/threshold)\n */\n readonly threshold: AudioParam;\n}\n\ndeclare var DynamicsCompressorNode: {\n prototype: DynamicsCompressorNode;\n new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;\n};\n\n/**\n * The **`EXT_blend_minmax`** extension is part of the WebGL API and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax)\n */\ninterface EXT_blend_minmax {\n readonly MIN_EXT: 0x8007;\n readonly MAX_EXT: 0x8008;\n}\n\n/**\n * The **`EXT_color_buffer_float`** extension is part of WebGL and adds the ability to render a variety of floating point formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float)\n */\ninterface EXT_color_buffer_float {\n}\n\n/**\n * The **`EXT_color_buffer_half_float`** extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float)\n */\ninterface EXT_color_buffer_half_float {\n readonly RGBA16F_EXT: 0x881A;\n readonly RGB16F_EXT: 0x881B;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/**\n * The WebGL API's `EXT_float_blend` extension allows blending and draw buffers with 32-bit floating-point components.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend)\n */\ninterface EXT_float_blend {\n}\n\n/**\n * The **`EXT_frag_depth`** extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)\n */\ninterface EXT_frag_depth {\n}\n\n/**\n * The **`EXT_sRGB`** extension is part of the WebGL API and adds sRGB support to textures and framebuffer objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB)\n */\ninterface EXT_sRGB {\n readonly SRGB_EXT: 0x8C40;\n readonly SRGB_ALPHA_EXT: 0x8C42;\n readonly SRGB8_ALPHA8_EXT: 0x8C43;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;\n}\n\n/**\n * The **`EXT_shader_texture_lod`** extension is part of the WebGL API and adds additional texture functions to the OpenGL ES Shading Language which provide the shader writer with explicit control of LOD (Level of detail).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod)\n */\ninterface EXT_shader_texture_lod {\n}\n\n/**\n * The `EXT_texture_compression_bptc` extension is part of the WebGL API and exposes 4 BPTC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc)\n */\ninterface EXT_texture_compression_bptc {\n readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;\n readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;\n readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;\n readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;\n}\n\n/**\n * The `EXT_texture_compression_rgtc` extension is part of the WebGL API and exposes 4 RGTC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc)\n */\ninterface EXT_texture_compression_rgtc {\n readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;\n readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;\n readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;\n readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;\n}\n\n/**\n * The **`EXT_texture_filter_anisotropic`** extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)\n */\ninterface EXT_texture_filter_anisotropic {\n readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;\n}\n\n/**\n * The **`EXT_texture_norm16`** extension is part of the WebGL API and provides a set of new 16-bit signed normalized and unsigned normalized formats (fixed-point texture, renderbuffer and texture buffer).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16)\n */\ninterface EXT_texture_norm16 {\n readonly R16_EXT: 0x822A;\n readonly RG16_EXT: 0x822C;\n readonly RGB16_EXT: 0x8054;\n readonly RGBA16_EXT: 0x805B;\n readonly R16_SNORM_EXT: 0x8F98;\n readonly RG16_SNORM_EXT: 0x8F99;\n readonly RGB16_SNORM_EXT: 0x8F9A;\n readonly RGBA16_SNORM_EXT: 0x8F9B;\n}\n\ninterface ElementEventMap {\n \"fullscreenchange\": Event;\n \"fullscreenerror\": Event;\n}\n\n/**\n * **`Element`** is the most general base class from which all element objects (i.e., objects that represent elements) in a Document inherit.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element)\n */\ninterface Element extends Node, ARIAMixin, Animatable, ChildNode, NonDocumentTypeChildNode, ParentNode, Slottable {\n /**\n * The **`Element.attributes`** property returns a live collection of all attribute nodes registered to the specified node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attributes)\n */\n readonly attributes: NamedNodeMap;\n /**\n * The **`Element.classList`** is a read-only property that returns a live DOMTokenList collection of the `class` attributes of the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/classList)\n */\n get classList(): DOMTokenList;\n set classList(value: string);\n /**\n * The **`className`** property of the of the specified element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/className)\n */\n className: string;\n /**\n * The **`clientHeight`** read-only property of the Element interface is zero for elements with no CSS or inline layout boxes; otherwise, it's the inner height of an element in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientHeight)\n */\n readonly clientHeight: number;\n /**\n * The **`clientLeft`** read-only property of the Element interface returns the width of the left border of an element in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientLeft)\n */\n readonly clientLeft: number;\n /**\n * The **`clientTop`** read-only property of the Element interface returns the width of the top border of an element in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientTop)\n */\n readonly clientTop: number;\n /**\n * The **`clientWidth`** read-only property of the Element interface is zero for inline elements and elements with no CSS; otherwise, it's the inner width of an element in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientWidth)\n */\n readonly clientWidth: number;\n /**\n * The **`currentCSSZoom`** read-only property of the Element interface provides the 'effective' CSS `zoom` of an element, taking into account the zoom applied to the element and all its parent elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/currentCSSZoom)\n */\n readonly currentCSSZoom: number;\n /**\n * The **`id`** property of the Element interface represents the element's identifier, reflecting the **`id`** global attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/id)\n */\n id: string;\n /**\n * The **`innerHTML`** property of the Element interface gets or sets the HTML or XML markup contained within the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/innerHTML)\n */\n innerHTML: string;\n /**\n * The **`Element.localName`** read-only property returns the local part of the qualified name of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/localName)\n */\n readonly localName: string;\n /**\n * The **`Element.namespaceURI`** read-only property returns the namespace URI of the element, or `null` if the element is not in a namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/namespaceURI)\n */\n readonly namespaceURI: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */\n onfullscreenchange: ((this: Element, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */\n onfullscreenerror: ((this: Element, ev: Event) => any) | null;\n /**\n * The **`outerHTML`** attribute of the Element DOM interface gets the serialized HTML fragment describing the element including its descendants.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/outerHTML)\n */\n outerHTML: string;\n readonly ownerDocument: Document;\n /**\n * The **`part`** property of the Element interface represents the part identifier(s) of the element (i.e., set using the `part` attribute), returned as a DOMTokenList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/part)\n */\n get part(): DOMTokenList;\n set part(value: string);\n /**\n * The **`Element.prefix`** read-only property returns the namespace prefix of the specified element, or `null` if no prefix is specified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/prefix)\n */\n readonly prefix: string | null;\n /**\n * The **`scrollHeight`** read-only property of the Element interface is a measurement of the height of an element's content, including content not visible on the screen due to overflow.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollHeight)\n */\n readonly scrollHeight: number;\n /**\n * The **`scrollLeft`** property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its left edge.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollLeft)\n */\n scrollLeft: number;\n /**\n * The **`scrollTop`** property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its top edge.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTop)\n */\n scrollTop: number;\n /**\n * The **`scrollWidth`** read-only property of the Element interface is a measurement of the width of an element's content, including content not visible on the screen due to overflow.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollWidth)\n */\n readonly scrollWidth: number;\n /**\n * The `Element.shadowRoot` read-only property represents the shadow root hosted by the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/shadowRoot)\n */\n readonly shadowRoot: ShadowRoot | null;\n /**\n * The **`slot`** property of the Element interface returns the name of the shadow DOM slot the element is inserted in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/slot)\n */\n slot: string;\n /**\n * The **`tagName`** read-only property of the Element interface returns the tag name of the element on which it's called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/tagName)\n */\n readonly tagName: string;\n /**\n * The **`Element.attachShadow()`** method attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)\n */\n attachShadow(init: ShadowRootInit): ShadowRoot;\n /**\n * The **`checkVisibility()`** method of the Element interface checks whether the element is visible.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)\n */\n checkVisibility(options?: CheckVisibilityOptions): boolean;\n /**\n * The **`closest()`** method of the Element interface traverses the element and its parents (heading toward the document root) until it finds a node that matches the specified CSS selector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/closest)\n */\n closest(selector: K): HTMLElementTagNameMap[K] | null;\n closest(selector: K): SVGElementTagNameMap[K] | null;\n closest(selector: K): MathMLElementTagNameMap[K] | null;\n closest(selectors: string): E | null;\n /**\n * The **`computedStyleMap()`** method of the Element interface returns a StylePropertyMapReadOnly interface which provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)\n */\n computedStyleMap(): StylePropertyMapReadOnly;\n /**\n * The **`getAttribute()`** method of the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)\n */\n getAttribute(qualifiedName: string): string | null;\n /**\n * The **`getAttributeNS()`** method of the Element interface returns the string value of the attribute with the specified namespace and name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)\n */\n getAttributeNS(namespace: string | null, localName: string): string | null;\n /**\n * The **`getAttributeNames()`** method of the array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)\n */\n getAttributeNames(): string[];\n /**\n * Returns the specified attribute of the specified element, as an Attr node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)\n */\n getAttributeNode(qualifiedName: string): Attr | null;\n /**\n * The **`getAttributeNodeNS()`** method of the Element interface returns the namespaced Attr node of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)\n */\n getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;\n /**\n * The **`Element.getBoundingClientRect()`** method returns a position relative to the viewport.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)\n */\n getBoundingClientRect(): DOMRect;\n /**\n * The **`getClientRects()`** method of the Element interface returns a collection of DOMRect objects that indicate the bounding rectangles for each CSS border box in a client.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)\n */\n getClientRects(): DOMRectList;\n /**\n * The Element method **`getElementsByClassName()`** returns a live specified class name or names.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)\n */\n getElementsByClassName(classNames: string): HTMLCollectionOf;\n /**\n * The **`Element.getElementsByTagName()`** method returns a live All descendants of the specified element are searched, but not the element itself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)\n */\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n /** @deprecated */\n getElementsByTagName(qualifiedName: K): HTMLCollectionOf;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf;\n /**\n * The **`Element.getElementsByTagNameNS()`** method returns a live HTMLCollection of elements with the given tag name belonging to the given namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)\n */\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf;\n /**\n * The **`getHTML()`** method of the Element interface is used to serialize an element's DOM to an HTML string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getHTML)\n */\n getHTML(options?: GetHTMLOptions): string;\n /**\n * The **`Element.hasAttribute()`** method returns a **Boolean** value indicating whether the specified element has the specified attribute or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)\n */\n hasAttribute(qualifiedName: string): boolean;\n /**\n * The **`hasAttributeNS()`** method of the Element interface returns a boolean value indicating whether the current element has the specified attribute with the specified namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)\n */\n hasAttributeNS(namespace: string | null, localName: string): boolean;\n /**\n * The **`hasAttributes()`** method of the Element interface returns a boolean value indicating whether the current element has any attributes or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)\n */\n hasAttributes(): boolean;\n /**\n * The **`hasPointerCapture()`** method of the pointer capture for the pointer identified by the given pointer ID.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)\n */\n hasPointerCapture(pointerId: number): boolean;\n /**\n * The **`insertAdjacentElement()`** method of the relative to the element it is invoked upon.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)\n */\n insertAdjacentElement(where: InsertPosition, element: Element): Element | null;\n /**\n * The **`insertAdjacentHTML()`** method of the the resulting nodes into the DOM tree at a specified position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)\n */\n insertAdjacentHTML(position: InsertPosition, string: string): void;\n /**\n * The **`insertAdjacentText()`** method of the Element interface, given a relative position and a string, inserts a new text node at the given position relative to the element it is called from.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)\n */\n insertAdjacentText(where: InsertPosition, data: string): void;\n /**\n * The **`matches()`** method of the Element interface tests whether the element would be selected by the specified CSS selector.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)\n */\n matches(selectors: string): boolean;\n /**\n * The **`releasePointerCapture()`** method of the previously set for a specific (PointerEvent) _pointer_.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)\n */\n releasePointerCapture(pointerId: number): void;\n /**\n * The Element method **`removeAttribute()`** removes the attribute with the specified name from the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)\n */\n removeAttribute(qualifiedName: string): void;\n /**\n * The **`removeAttributeNS()`** method of the If you are working with HTML and you don't need to specify the requested attribute as being part of a specific namespace, use the Element.removeAttribute() method instead.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)\n */\n removeAttributeNS(namespace: string | null, localName: string): void;\n /**\n * The **`removeAttributeNode()`** method of the Element interface removes the specified Attr node from the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)\n */\n removeAttributeNode(attr: Attr): Attr;\n /**\n * The **`Element.requestFullscreen()`** method issues an asynchronous request to make the element be displayed in fullscreen mode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)\n */\n requestFullscreen(options?: FullscreenOptions): Promise;\n /**\n * The **`requestPointerLock()`** method of the Element interface lets you asynchronously ask for the pointer to be locked on the given element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)\n */\n requestPointerLock(options?: PointerLockOptions): Promise;\n /**\n * The **`scroll()`** method of the Element interface scrolls the element to a particular set of coordinates inside a given element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scroll)\n */\n scroll(options?: ScrollToOptions): void;\n scroll(x: number, y: number): void;\n /**\n * The **`scrollBy()`** method of the Element interface scrolls an element by the given amount.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)\n */\n scrollBy(options?: ScrollToOptions): void;\n scrollBy(x: number, y: number): void;\n /**\n * The Element interface's **`scrollIntoView()`** method scrolls the element's ancestor containers such that the element on which `scrollIntoView()` is called is visible to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)\n */\n scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;\n /**\n * The **`scrollTo()`** method of the Element interface scrolls to a particular set of coordinates inside a given element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)\n */\n scrollTo(options?: ScrollToOptions): void;\n scrollTo(x: number, y: number): void;\n /**\n * The **`setAttribute()`** method of the Element interface sets the value of an attribute on the specified element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)\n */\n setAttribute(qualifiedName: string, value: string): void;\n /**\n * `setAttributeNS` adds a new attribute or changes the value of an attribute with the given namespace and name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)\n */\n setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;\n /**\n * The **`setAttributeNode()`** method of the Element interface adds a new Attr node to the specified element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)\n */\n setAttributeNode(attr: Attr): Attr | null;\n /**\n * The **`setAttributeNodeNS()`** method of the Element interface adds a new namespaced Attr node to an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)\n */\n setAttributeNodeNS(attr: Attr): Attr | null;\n /**\n * The **`setHTMLUnsafe()`** method of the Element interface is used to parse a string of HTML into a DocumentFragment, optionally filtering out unwanted elements and attributes, and those that don't belong in the context, and then using it to replace the element's subtree in the DOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)\n */\n setHTMLUnsafe(html: string): void;\n /**\n * The **`setPointerCapture()`** method of the _capture target_ of future pointer events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)\n */\n setPointerCapture(pointerId: number): void;\n /**\n * The **`toggleAttribute()`** method of the present and adding it if it is not present) on the given element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)\n */\n toggleAttribute(qualifiedName: string, force?: boolean): boolean;\n /**\n * @deprecated This is a legacy alias of `matches`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)\n */\n webkitMatchesSelector(selectors: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */\n get textContent(): string;\n set textContent(value: string | null);\n addEventListener(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Element: {\n prototype: Element;\n new(): Element;\n};\n\ninterface ElementCSSInlineStyle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/attributeStyleMap) */\n readonly attributeStyleMap: StylePropertyMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/style) */\n get style(): CSSStyleDeclaration;\n set style(cssText: string);\n}\n\ninterface ElementContentEditable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/contentEditable) */\n contentEditable: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/enterKeyHint) */\n enterKeyHint: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inputMode) */\n inputMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/isContentEditable) */\n readonly isContentEditable: boolean;\n}\n\n/**\n * The **`ElementInternals`** interface of the Document Object Model gives web developers a way to allow custom elements to fully participate in HTML forms.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals)\n */\ninterface ElementInternals extends ARIAMixin {\n /**\n * The **`form`** read-only property of the ElementInternals interface returns the HTMLFormElement associated with this element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * The **`labels`** read-only property of the ElementInternals interface returns the labels associated with the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/labels)\n */\n readonly labels: NodeList;\n /**\n * The **`shadowRoot`** read-only property of the ElementInternals interface returns the ShadowRoot for this element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/shadowRoot)\n */\n readonly shadowRoot: ShadowRoot | null;\n /**\n * The **`states`** read-only property of the ElementInternals interface returns a CustomStateSet representing the possible states of the custom element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/states)\n */\n readonly states: CustomStateSet;\n /**\n * The **`validationMessage`** read-only property of the ElementInternals interface returns the validation message for the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * The **`validity`** read-only property of the ElementInternals interface returns a ValidityState object which represents the different validity states the element can be in, with respect to constraint validation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validity)\n */\n readonly validity: ValidityState;\n /**\n * The **`willValidate`** read-only property of the ElementInternals interface returns `true` if the element is a submittable element that is a candidate for constraint validation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/willValidate)\n */\n readonly willValidate: boolean;\n /**\n * The **`checkValidity()`** method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity)\n */\n checkValidity(): boolean;\n /**\n * The **`reportValidity()`** method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity)\n */\n reportValidity(): boolean;\n /**\n * The **`setFormValue()`** method of the ElementInternals interface sets the element's submission value and state, communicating these to the user agent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue)\n */\n setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;\n /**\n * The **`setValidity()`** method of the ElementInternals interface sets the validity of the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setValidity)\n */\n setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;\n}\n\ndeclare var ElementInternals: {\n prototype: ElementInternals;\n new(): ElementInternals;\n};\n\n/**\n * The **`EncodedAudioChunk`** interface of the WebCodecs API represents a chunk of encoded audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk)\n */\ninterface EncodedAudioChunk {\n /**\n * The **`byteLength`** read-only property of the EncodedAudioChunk interface returns the length in bytes of the encoded audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength)\n */\n readonly byteLength: number;\n /**\n * The **`duration`** read-only property of the EncodedAudioChunk interface returns an integer indicating the duration of the audio in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration)\n */\n readonly duration: number | null;\n /**\n * The **`timestamp`** read-only property of the EncodedAudioChunk interface returns an integer indicating the timestamp of the audio in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`type`** read-only property of the EncodedAudioChunk interface returns a value indicating whether the audio chunk is a key chunk, which does not relying on other frames for decoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type)\n */\n readonly type: EncodedAudioChunkType;\n /**\n * The **`copyTo()`** method of the EncodedAudioChunk interface copies the encoded chunk of audio data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedAudioChunk: {\n prototype: EncodedAudioChunk;\n new(init: EncodedAudioChunkInit): EncodedAudioChunk;\n};\n\n/**\n * The **`EncodedVideoChunk`** interface of the WebCodecs API represents a chunk of encoded video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk)\n */\ninterface EncodedVideoChunk {\n /**\n * The **`byteLength`** read-only property of the EncodedVideoChunk interface returns the length in bytes of the encoded video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength)\n */\n readonly byteLength: number;\n /**\n * The **`duration`** read-only property of the EncodedVideoChunk interface returns an integer indicating the duration of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration)\n */\n readonly duration: number | null;\n /**\n * The **`timestamp`** read-only property of the EncodedVideoChunk interface returns an integer indicating the timestamp of the video in microseconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp)\n */\n readonly timestamp: number;\n /**\n * The **`type`** read-only property of the EncodedVideoChunk interface returns a value indicating whether the video chunk is a key chunk, which does not rely on other frames for decoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type)\n */\n readonly type: EncodedVideoChunkType;\n /**\n * The **`copyTo()`** method of the EncodedVideoChunk interface copies the encoded chunk of video data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo)\n */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedVideoChunk: {\n prototype: EncodedVideoChunk;\n new(init: EncodedVideoChunkInit): EncodedVideoChunk;\n};\n\n/**\n * The **`ErrorEvent`** interface represents events providing information related to errors in scripts or in files.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)\n */\ninterface ErrorEvent extends Event {\n /**\n * The **`colno`** read-only property of the ErrorEvent interface returns an integer containing the column number of the script file on which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno)\n */\n readonly colno: number;\n /**\n * The **`error`** read-only property of the ErrorEvent interface returns a JavaScript value, such as an Error or DOMException, representing the error associated with this event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error)\n */\n readonly error: any;\n /**\n * The **`filename`** read-only property of the ErrorEvent interface returns a string containing the name of the script file in which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename)\n */\n readonly filename: string;\n /**\n * The **`lineno`** read-only property of the ErrorEvent interface returns an integer containing the line number of the script file on which the error occurred.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno)\n */\n readonly lineno: number;\n /**\n * The **`message`** read-only property of the ErrorEvent interface returns a string containing a human-readable error message describing the problem.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message)\n */\n readonly message: string;\n}\n\ndeclare var ErrorEvent: {\n prototype: ErrorEvent;\n new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\n/**\n * The **`Event`** interface represents an event which takes place on an `EventTarget`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)\n */\ninterface Event {\n /**\n * The **`bubbles`** read-only property of the Event interface indicates whether the event bubbles up through the DOM tree or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)\n */\n readonly bubbles: boolean;\n /**\n * The **`cancelBubble`** property of the Event interface is deprecated.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)\n */\n cancelBubble: boolean;\n /**\n * The **`cancelable`** read-only property of the Event interface indicates whether the event can be canceled, and therefore prevented as if the event never happened.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)\n */\n readonly cancelable: boolean;\n /**\n * The read-only **`composed`** property of the or not the event will propagate across the shadow DOM boundary into the standard DOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)\n */\n readonly composed: boolean;\n /**\n * The **`currentTarget`** read-only property of the Event interface identifies the element to which the event handler has been attached.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)\n */\n readonly currentTarget: EventTarget | null;\n /**\n * The **`defaultPrevented`** read-only property of the Event interface returns a boolean value indicating whether or not the call to Event.preventDefault() canceled the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)\n */\n readonly defaultPrevented: boolean;\n /**\n * The **`eventPhase`** read-only property of the being evaluated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)\n */\n readonly eventPhase: number;\n /**\n * The **`isTrusted`** read-only property of the when the event was generated by the user agent (including via user actions and programmatic methods such as HTMLElement.focus()), and `false` when the event was dispatched via The only exception is the `click` event, which initializes the `isTrusted` property to `false` in user agents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)\n */\n readonly isTrusted: boolean;\n /**\n * The Event property **`returnValue`** indicates whether the default action for this event has been prevented or not.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)\n */\n returnValue: boolean;\n /**\n * The deprecated **`Event.srcElement`** is an alias for the Event.target property.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)\n */\n readonly srcElement: EventTarget | null;\n /**\n * The read-only **`target`** property of the dispatched.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)\n */\n readonly target: EventTarget | null;\n /**\n * The **`timeStamp`** read-only property of the Event interface returns the time (in milliseconds) at which the event was created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)\n */\n readonly timeStamp: DOMHighResTimeStamp;\n /**\n * The **`type`** read-only property of the Event interface returns a string containing the event's type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)\n */\n readonly type: string;\n /**\n * The **`composedPath()`** method of the Event interface returns the event's path which is an array of the objects on which listeners will be invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)\n */\n composedPath(): EventTarget[];\n /**\n * The **`Event.initEvent()`** method is used to initialize the value of an event created using Document.createEvent().\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)\n */\n initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\n /**\n * The **`preventDefault()`** method of the Event interface tells the user agent that if the event does not get explicitly handled, its default action should not be taken as it normally would be.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)\n */\n preventDefault(): void;\n /**\n * The **`stopImmediatePropagation()`** method of the If several listeners are attached to the same element for the same event type, they are called in the order in which they were added.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)\n */\n stopImmediatePropagation(): void;\n /**\n * The **`stopPropagation()`** method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)\n */\n stopPropagation(): void;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n}\n\ndeclare var Event: {\n prototype: Event;\n new(type: string, eventInitDict?: EventInit): Event;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n};\n\n/**\n * The **`EventCounts`** interface of the Performance API provides the number of events that have been dispatched for each event type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventCounts)\n */\ninterface EventCounts {\n forEach(callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any): void;\n}\n\ndeclare var EventCounts: {\n prototype: EventCounts;\n new(): EventCounts;\n};\n\ninterface EventListener {\n (evt: Event): void;\n}\n\ninterface EventListenerObject {\n handleEvent(object: Event): void;\n}\n\ninterface EventSourceEventMap {\n \"error\": Event;\n \"message\": MessageEvent;\n \"open\": Event;\n}\n\n/**\n * The **`EventSource`** interface is web content's interface to server-sent events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource)\n */\ninterface EventSource extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n onerror: ((this: EventSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n onopen: ((this: EventSource, ev: Event) => any) | null;\n /**\n * The **`readyState`** read-only property of the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n */\n readonly readyState: number;\n /**\n * The **`url`** read-only property of the URL of the source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n */\n readonly url: string;\n /**\n * The **`withCredentials`** read-only property of the the `EventSource` object was instantiated with CORS credentials set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n readonly withCredentials: boolean;\n /**\n * The **`close()`** method of the EventSource interface closes the connection, if one is made, and sets the ```js-nolint close() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n */\n close(): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventSource: {\n prototype: EventSource;\n new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n};\n\n/**\n * The **`EventTarget`** interface is implemented by objects that can receive events and may have listeners for them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)\n */\ninterface EventTarget {\n /**\n * The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)\n */\n addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;\n /**\n * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\n dispatchEvent(event: Event): boolean;\n /**\n * The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)\n */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\n}\n\ndeclare var EventTarget: {\n prototype: EventTarget;\n new(): EventTarget;\n};\n\n/** @deprecated */\ninterface External {\n /** @deprecated */\n AddSearchProvider(): void;\n /** @deprecated */\n IsSearchProviderInstalled(): void;\n}\n\n/** @deprecated */\ndeclare var External: {\n prototype: External;\n new(): External;\n};\n\n/**\n * The **`File`** interface provides information about files and allows JavaScript in a web page to access their content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)\n */\ninterface File extends Blob {\n /**\n * The **`lastModified`** read-only property of the File interface provides the last modified date of the file as the number of milliseconds since the Unix epoch (January 1, 1970 at midnight).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified)\n */\n readonly lastModified: number;\n /**\n * The **`name`** read-only property of the File interface returns the name of the file represented by a File object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name)\n */\n readonly name: string;\n /**\n * The **`webkitRelativePath`** read-only property of the File interface contains a string which specifies the file's path relative to the directory selected by the user in an input element with its `webkitdirectory` attribute set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath)\n */\n readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n prototype: File;\n new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\n};\n\n/**\n * The **`FileList`** interface represents an object of this type returned by the `files` property of the HTML input element; this lets you access the list of files selected with the `` element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)\n */\ninterface FileList {\n /**\n * The **`length`** read-only property of the FileList interface returns the number of files in the `FileList`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length)\n */\n readonly length: number;\n /**\n * The **`item()`** method of the FileList interface returns a File object representing the file at the specified index in the file list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item)\n */\n item(index: number): File | null;\n [index: number]: File;\n}\n\ndeclare var FileList: {\n prototype: FileList;\n new(): FileList;\n};\n\ninterface FileReaderEventMap {\n \"abort\": ProgressEvent;\n \"error\": ProgressEvent;\n \"load\": ProgressEvent;\n \"loadend\": ProgressEvent;\n \"loadstart\": ProgressEvent;\n \"progress\": ProgressEvent;\n}\n\n/**\n * The **`FileReader`** interface lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)\n */\ninterface FileReader extends EventTarget {\n /**\n * The **`error`** read-only property of the FileReader interface returns the error that occurred while reading the file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error)\n */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */\n onabort: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */\n onerror: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */\n onload: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */\n onloadend: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */\n onloadstart: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */\n onprogress: ((this: FileReader, ev: ProgressEvent) => any) | null;\n /**\n * The **`readyState`** read-only property of the FileReader interface provides the current state of the reading operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState)\n */\n readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;\n /**\n * The **`result`** read-only property of the FileReader interface returns the file's contents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result)\n */\n readonly result: string | ArrayBuffer | null;\n /**\n * The **`abort()`** method of the FileReader interface aborts the read operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort)\n */\n abort(): void;\n /**\n * The **`readAsArrayBuffer()`** method of the FileReader interface is used to start reading the contents of a specified Blob or File.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer)\n */\n readAsArrayBuffer(blob: Blob): void;\n /**\n * The **`readAsBinaryString()`** method of the FileReader interface is used to start reading the contents of the specified Blob or File.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): void;\n /**\n * The **`readAsDataURL()`** method of the FileReader interface is used to read the contents of the specified file's data as a base64 encoded string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL)\n */\n readAsDataURL(blob: Blob): void;\n /**\n * The **`readAsText()`** method of the FileReader interface is used to read the contents of the specified Blob or File.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText)\n */\n readAsText(blob: Blob, encoding?: string): void;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n addEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FileReader: {\n prototype: FileReader;\n new(): FileReader;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n};\n\n/**\n * The File and Directory Entries API interface **`FileSystem`** is used to represent a file system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem)\n */\ninterface FileSystem {\n /**\n * The read-only **`name`** property of the string is unique among all file systems currently exposed by the File and Directory Entries API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/name)\n */\n readonly name: string;\n /**\n * The read-only **`root`** property of the object representing the root directory of the file system, for use with the File and Directory Entries API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/root)\n */\n readonly root: FileSystemDirectoryEntry;\n}\n\ndeclare var FileSystem: {\n prototype: FileSystem;\n new(): FileSystem;\n};\n\n/**\n * The **`FileSystemDirectoryEntry`** interface of the File and Directory Entries API represents a directory in a file system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry)\n */\ninterface FileSystemDirectoryEntry extends FileSystemEntry {\n /**\n * The FileSystemDirectoryEntry interface's method **`createReader()`** returns a the directory.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/createReader)\n */\n createReader(): FileSystemDirectoryReader;\n /**\n * The FileSystemDirectoryEntry interface's method **`getDirectory()`** returns a somewhere within the directory subtree rooted at the directory on which it's called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getDirectory)\n */\n getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n /**\n * The FileSystemDirectoryEntry interface's method **`getFile()`** returns a within the directory subtree rooted at the directory on which it's called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getFile)\n */\n getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemDirectoryEntry: {\n prototype: FileSystemDirectoryEntry;\n new(): FileSystemDirectoryEntry;\n};\n\n/**\n * The **`FileSystemDirectoryHandle`** interface of the File System API provides a handle to a file system directory.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)\n */\ninterface FileSystemDirectoryHandle extends FileSystemHandle {\n readonly kind: \"directory\";\n /**\n * The **`getDirectoryHandle()`** method of the within the directory handle on which the method is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle)\n */\n getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise;\n /**\n * The **`getFileHandle()`** method of the directory the method is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle)\n */\n getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise;\n /**\n * The **`removeEntry()`** method of the directory handle contains a file or directory called the name specified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry)\n */\n removeEntry(name: string, options?: FileSystemRemoveOptions): Promise;\n /**\n * The **`resolve()`** method of the directory names from the parent handle to the specified child entry, with the name of the child entry as the last array item.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve)\n */\n resolve(possibleDescendant: FileSystemHandle): Promise;\n}\n\ndeclare var FileSystemDirectoryHandle: {\n prototype: FileSystemDirectoryHandle;\n new(): FileSystemDirectoryHandle;\n};\n\n/**\n * The `FileSystemDirectoryReader` interface of the File and Directory Entries API lets you access the FileSystemFileEntry-based objects (generally FileSystemFileEntry or FileSystemDirectoryEntry) representing each entry in a directory.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader)\n */\ninterface FileSystemDirectoryReader {\n /**\n * The FileSystemDirectoryReader interface's **`readEntries()`** method retrieves the directory entries within the directory being read and delivers them in an array to a provided callback function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader/readEntries)\n */\n readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemDirectoryReader: {\n prototype: FileSystemDirectoryReader;\n new(): FileSystemDirectoryReader;\n};\n\n/**\n * The **`FileSystemEntry`** interface of the File and Directory Entries API represents a single entry in a file system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry)\n */\ninterface FileSystemEntry {\n /**\n * The read-only **`filesystem`** property of the FileSystemEntry interface contains a resides.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/filesystem)\n */\n readonly filesystem: FileSystem;\n /**\n * The read-only **`fullPath`** property of the FileSystemEntry interface returns a string specifying the full, absolute path from the file system's root to the file represented by the entry.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/fullPath)\n */\n readonly fullPath: string;\n /**\n * The read-only **`isDirectory`** property of the FileSystemEntry interface is `true` if the entry represents a directory (meaning it's a FileSystemDirectoryEntry) and `false` if it's not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isDirectory)\n */\n readonly isDirectory: boolean;\n /**\n * The read-only **`isFile`** property of the FileSystemEntry interface is `true` if the entry represents a file (meaning it's a FileSystemFileEntry) and `false` if it's not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile)\n */\n readonly isFile: boolean;\n /**\n * The read-only **`name`** property of the FileSystemEntry interface returns a string specifying the entry's name; this is the entry within its parent directory (the last component of the path as indicated by the FileSystemEntry.fullPath property).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/name)\n */\n readonly name: string;\n /**\n * The FileSystemEntry interface's method **`getParent()`** obtains a ```js-nolint getParent(successCallback, errorCallback) getParent(successCallback) ``` - `successCallback` - : A function which is called when the parent directory entry has been retrieved.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent)\n */\n getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemEntry: {\n prototype: FileSystemEntry;\n new(): FileSystemEntry;\n};\n\n/**\n * The **`FileSystemFileEntry`** interface of the File and Directory Entries API represents a file in a file system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry)\n */\ninterface FileSystemFileEntry extends FileSystemEntry {\n /**\n * The FileSystemFileEntry interface's method **`file()`** returns a the directory entry.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry/file)\n */\n file(successCallback: FileCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemFileEntry: {\n prototype: FileSystemFileEntry;\n new(): FileSystemFileEntry;\n};\n\n/**\n * The **`FileSystemFileHandle`** interface of the File System API represents a handle to a file system entry.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)\n */\ninterface FileSystemFileHandle extends FileSystemHandle {\n readonly kind: \"file\";\n /**\n * The **`createWritable()`** method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable)\n */\n createWritable(options?: FileSystemCreateWritableOptions): Promise;\n /**\n * The **`getFile()`** method of the If the file on disk changes or is removed after this method is called, the returned ```js-nolint getFile() ``` None.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile)\n */\n getFile(): Promise;\n}\n\ndeclare var FileSystemFileHandle: {\n prototype: FileSystemFileHandle;\n new(): FileSystemFileHandle;\n};\n\n/**\n * The **`FileSystemHandle`** interface of the File System API is an object which represents a file or directory entry.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)\n */\ninterface FileSystemHandle {\n /**\n * The **`kind`** read-only property of the `'file'` if the associated entry is a file or `'directory'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind)\n */\n readonly kind: FileSystemHandleKind;\n /**\n * The **`name`** read-only property of the handle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name)\n */\n readonly name: string;\n /**\n * The **`isSameEntry()`** method of the ```js-nolint isSameEntry(fileSystemHandle) ``` - FileSystemHandle - : The `FileSystemHandle` to match against the handle on which the method is invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry)\n */\n isSameEntry(other: FileSystemHandle): Promise;\n}\n\ndeclare var FileSystemHandle: {\n prototype: FileSystemHandle;\n new(): FileSystemHandle;\n};\n\n/**\n * The **`FileSystemWritableFileStream`** interface of the File System API is a WritableStream object with additional convenience methods, which operates on a single file on disk.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)\n */\ninterface FileSystemWritableFileStream extends WritableStream {\n /**\n * The **`seek()`** method of the FileSystemWritableFileStream interface updates the current file cursor offset to the position (in bytes) specified when calling the method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek)\n */\n seek(position: number): Promise;\n /**\n * The **`truncate()`** method of the FileSystemWritableFileStream interface resizes the file associated with the stream to the specified size in bytes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate)\n */\n truncate(size: number): Promise;\n /**\n * The **`write()`** method of the FileSystemWritableFileStream interface writes content into the file the method is called on, at the current file cursor offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write)\n */\n write(data: FileSystemWriteChunkType): Promise;\n}\n\ndeclare var FileSystemWritableFileStream: {\n prototype: FileSystemWritableFileStream;\n new(): FileSystemWritableFileStream;\n};\n\n/**\n * The **`FocusEvent`** interface represents focus-related events, including Element/focus_event, Element/blur_event, Element/focusin_event, and Element/focusout_event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent)\n */\ninterface FocusEvent extends UIEvent {\n /**\n * The **`relatedTarget`** read-only property of the FocusEvent interface is the secondary target, depending on the type of event:
Event name target relatedTarget
Element/blur_event The EventTarget losing focus The EventTarget receiving focus (if any).
Element/focus_event The EventTarget receiving focus The EventTarget losing focus (if any)
Element/focusin_event The EventTarget receiving focus The EventTarget losing focus (if any)
Element/focusout_event The EventTarget losing focus The EventTarget receiving focus (if any)
Note that many elements can't have focus, which is a common reason for `relatedTarget` to be `null`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent/relatedTarget)\n */\n readonly relatedTarget: EventTarget | null;\n}\n\ndeclare var FocusEvent: {\n prototype: FocusEvent;\n new(type: string, eventInitDict?: FocusEventInit): FocusEvent;\n};\n\n/**\n * The **`FontFace`** interface of the CSS Font Loading API represents a single usable font face.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace)\n */\ninterface FontFace {\n /**\n * The **`ascentOverride`** property of the FontFace interface returns and sets the ascent metric for the font, the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride)\n */\n ascentOverride: string;\n /**\n * The **`descentOverride`** property of the FontFace interface returns and sets the value of the @font-face/descent-override descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride)\n */\n descentOverride: string;\n /**\n * The **`display`** property of the FontFace interface determines how a font face is displayed based on whether and when it is downloaded and ready to use.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display)\n */\n display: FontDisplay;\n /**\n * The **`FontFace.family`** property allows the author to get or set the font family of a FontFace object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family)\n */\n family: string;\n /**\n * The **`featureSettings`** property of the FontFace interface retrieves or sets infrequently used font features that are not available from a font's variant properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings)\n */\n featureSettings: string;\n /**\n * The **`lineGapOverride`** property of the FontFace interface returns and sets the value of the @font-face/line-gap-override descriptor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride)\n */\n lineGapOverride: string;\n /**\n * The **`loaded`** read-only property of the FontFace interface returns a Promise that resolves with the current `FontFace` object when the font specified in the object's constructor is done loading or rejects with a `SyntaxError`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded)\n */\n readonly loaded: Promise;\n /**\n * The **`status`** read-only property of the FontFace interface returns an enumerated value indicating the status of the font, one of `'unloaded'`, `'loading'`, `'loaded'`, or `'error'`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status)\n */\n readonly status: FontFaceLoadStatus;\n /**\n * The **`stretch`** property of the FontFace interface retrieves or sets how the font stretches.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch)\n */\n stretch: string;\n /**\n * The **`style`** property of the FontFace interface retrieves or sets the font's style.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style)\n */\n style: string;\n /**\n * The **`unicodeRange`** property of the FontFace interface retrieves or sets the range of unicode code points encompassing the font.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange)\n */\n unicodeRange: string;\n /**\n * The **`weight`** property of the FontFace interface retrieves or sets the weight of the font.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight)\n */\n weight: string;\n /**\n * The **`load()`** method of the FontFace interface requests and loads a font whose `source` was specified as a URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load)\n */\n load(): Promise;\n}\n\ndeclare var FontFace: {\n prototype: FontFace;\n new(family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;\n};\n\ninterface FontFaceSetEventMap {\n \"loading\": FontFaceSetLoadEvent;\n \"loadingdone\": FontFaceSetLoadEvent;\n \"loadingerror\": FontFaceSetLoadEvent;\n}\n\n/**\n * The **`FontFaceSet`** interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet)\n */\ninterface FontFaceSet extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */\n onloading: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */\n onloadingdone: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */\n onloadingerror: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;\n /**\n * The `ready` read-only property of the FontFaceSet interface returns a Promise that resolves to the given FontFaceSet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready)\n */\n readonly ready: Promise;\n /**\n * The **`status`** read-only property of the FontFaceSet interface returns the loading state of the fonts in the set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status)\n */\n readonly status: FontFaceSetLoadStatus;\n /**\n * The `check()` method of the FontFaceSet returns `true` if you can render some text using the given font specification without attempting to use any fonts in this `FontFaceSet` that are not yet fully loaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check)\n */\n check(font: string, text?: string): boolean;\n /**\n * The `load()` method of the FontFaceSet forces all the fonts given in parameters to be loaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load)\n */\n load(font: string, text?: string): Promise;\n forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;\n addEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FontFaceSet: {\n prototype: FontFaceSet;\n new(): FontFaceSet;\n};\n\n/**\n * The **`FontFaceSetLoadEvent`** interface of the CSS Font Loading API represents events fired at a FontFaceSet after it starts loading font faces.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent)\n */\ninterface FontFaceSetLoadEvent extends Event {\n /**\n * The **`fontfaces`** read-only property of the An array of FontFace instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces)\n */\n readonly fontfaces: ReadonlyArray;\n}\n\ndeclare var FontFaceSetLoadEvent: {\n prototype: FontFaceSetLoadEvent;\n new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;\n};\n\ninterface FontFaceSource {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\n readonly fonts: FontFaceSet;\n}\n\n/**\n * The **`FormData`** interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the Window/fetch, XMLHttpRequest.send() or navigator.sendBeacon() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)\n */\ninterface FormData {\n /**\n * The **`append()`** method of the FormData interface appends a new value onto an existing key inside a `FormData` object, or adds the key if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append)\n */\n append(name: string, value: string | Blob): void;\n append(name: string, value: string): void;\n append(name: string, blobValue: Blob, filename?: string): void;\n /**\n * The **`delete()`** method of the FormData interface deletes a key and its value(s) from a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete)\n */\n delete(name: string): void;\n /**\n * The **`get()`** method of the FormData interface returns the first value associated with a given key from within a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get)\n */\n get(name: string): FormDataEntryValue | null;\n /**\n * The **`getAll()`** method of the FormData interface returns all the values associated with a given key from within a `FormData` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll)\n */\n getAll(name: string): FormDataEntryValue[];\n /**\n * The **`has()`** method of the FormData interface returns whether a `FormData` object contains a certain key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has)\n */\n has(name: string): boolean;\n /**\n * The **`set()`** method of the FormData interface sets a new value for an existing key inside a `FormData` object, or adds the key/value if it does not already exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set)\n */\n set(name: string, value: string | Blob): void;\n set(name: string, value: string): void;\n set(name: string, blobValue: Blob, filename?: string): void;\n forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\n}\n\ndeclare var FormData: {\n prototype: FormData;\n new(form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;\n};\n\n/**\n * The **`FormDataEvent`** interface represents a `formdata` event — such an event is fired on an HTMLFormElement object after the entry list representing the form's data is constructed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent)\n */\ninterface FormDataEvent extends Event {\n /**\n * The `formData` read-only property of the FormDataEvent interface contains the FormData object representing the data contained in the form when the event was fired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent/formData)\n */\n readonly formData: FormData;\n}\n\ndeclare var FormDataEvent: {\n prototype: FormDataEvent;\n new(type: string, eventInitDict: FormDataEventInit): FormDataEvent;\n};\n\n/**\n * The **`FragmentDirective`** interface is an object exposed to allow code to check whether or not a browser supports text fragments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FragmentDirective)\n */\ninterface FragmentDirective {\n}\n\ndeclare var FragmentDirective: {\n prototype: FragmentDirective;\n new(): FragmentDirective;\n};\n\n/**\n * The **`GPUError`** interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the GPUDevice.uncapturederror_event event.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError)\n */\ninterface GPUError {\n /**\n * The **`message`** read-only property of the A string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError/message)\n */\n readonly message: string;\n}\n\n/**\n * The `GainNode` interface represents a change in volume.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode)\n */\ninterface GainNode extends AudioNode {\n /**\n * The `gain` property of the GainNode interface is an a-rate AudioParam representing the amount of gain to apply.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode/gain)\n */\n readonly gain: AudioParam;\n}\n\ndeclare var GainNode: {\n prototype: GainNode;\n new(context: BaseAudioContext, options?: GainOptions): GainNode;\n};\n\n/**\n * The **`Gamepad`** interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad)\n */\ninterface Gamepad {\n /**\n * The **`Gamepad.axes`** property of the Gamepad interface returns an array representing the controls with axes present on the device (e.g., analog thumb sticks).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/axes)\n */\n readonly axes: ReadonlyArray;\n /**\n * The **`buttons`** property of the Gamepad interface returns an array of GamepadButton objects representing the buttons present on the device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/buttons)\n */\n readonly buttons: ReadonlyArray;\n /**\n * The **`Gamepad.connected`** property of the still connected to the system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/connected)\n */\n readonly connected: boolean;\n /**\n * The **`Gamepad.id`** property of the Gamepad interface returns a string containing some information about the controller.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/id)\n */\n readonly id: string;\n /**\n * The **`Gamepad.index`** property of the Gamepad interface returns an integer that is auto-incremented to be unique for each device currently connected to the system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/index)\n */\n readonly index: number;\n /**\n * The **`Gamepad.mapping`** property of the remapped the controls on the device to a known layout.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/mapping)\n */\n readonly mapping: GamepadMappingType;\n /**\n * The **`Gamepad.timestamp`** property of the representing the last time the data for this gamepad was updated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/timestamp)\n */\n readonly timestamp: DOMHighResTimeStamp;\n /**\n * The **`vibrationActuator`** read-only property of the Gamepad interface returns a GamepadHapticActuator object, which represents haptic feedback hardware available on the controller.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/vibrationActuator)\n */\n readonly vibrationActuator: GamepadHapticActuator;\n}\n\ndeclare var Gamepad: {\n prototype: Gamepad;\n new(): Gamepad;\n};\n\n/**\n * The **`GamepadButton`** interface defines an individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton)\n */\ninterface GamepadButton {\n /**\n * The **`GamepadButton.pressed`** property of the the button is currently pressed (`true`) or unpressed (`false`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/pressed)\n */\n readonly pressed: boolean;\n /**\n * The **`touched`** property of the a button capable of detecting touch is currently touched (`true`) or not touched (`false`).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/touched)\n */\n readonly touched: boolean;\n /**\n * The **`GamepadButton.value`** property of the current state of analog buttons on many modern gamepads, such as the triggers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/value)\n */\n readonly value: number;\n}\n\ndeclare var GamepadButton: {\n prototype: GamepadButton;\n new(): GamepadButton;\n};\n\n/**\n * The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected_event and Window.gamepaddisconnected_event are fired in response to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent)\n */\ninterface GamepadEvent extends Event {\n /**\n * The **`GamepadEvent.gamepad`** property of the **GamepadEvent interface** returns a Gamepad object, providing access to the associated gamepad data for fired A Gamepad object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent/gamepad)\n */\n readonly gamepad: Gamepad;\n}\n\ndeclare var GamepadEvent: {\n prototype: GamepadEvent;\n new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;\n};\n\n/**\n * The **`GamepadHapticActuator`** interface of the Gamepad API represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator)\n */\ninterface GamepadHapticActuator {\n /**\n * The **`playEffect()`** method of the GamepadHapticActuator interface causes the hardware to play a specific vibration effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/playEffect)\n */\n playEffect(type: GamepadHapticEffectType, params?: GamepadEffectParameters): Promise;\n /**\n * The **`reset()`** method of the GamepadHapticActuator interface stops the hardware from playing an active vibration effect.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/reset)\n */\n reset(): Promise;\n}\n\ndeclare var GamepadHapticActuator: {\n prototype: GamepadHapticActuator;\n new(): GamepadHapticActuator;\n};\n\ninterface GenericTransformStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */\n readonly writable: WritableStream;\n}\n\n/**\n * The **`Geolocation`** interface represents an object able to obtain the position of the device programmatically.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation)\n */\ninterface Geolocation {\n /**\n * The **`clearWatch()`** method of the Geolocation interface is used to unregister location/error monitoring handlers previously installed using Geolocation.watchPosition().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/clearWatch)\n */\n clearWatch(watchId: number): void;\n /**\n * The **`getCurrentPosition()`** method of the Geolocation interface is used to get the current position of the device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition)\n */\n getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void;\n /**\n * The **`watchPosition()`** method of the Geolocation interface is used to register a handler function that will be called automatically each time the position of the device changes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/watchPosition)\n */\n watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number;\n}\n\ndeclare var Geolocation: {\n prototype: Geolocation;\n new(): Geolocation;\n};\n\n/**\n * The **`GeolocationCoordinates`** interface represents the position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates)\n */\ninterface GeolocationCoordinates {\n /**\n * The **`accuracy`** read-only property of the GeolocationCoordinates interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the GeolocationCoordinates.latitude and GeolocationCoordinates.longitude properties expressed in meters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/accuracy)\n */\n readonly accuracy: number;\n /**\n * The **`altitude`** read-only property of the GeolocationCoordinates interface is a `double` representing the altitude of the position in meters above the WGS84 ellipsoid (which defines the nominal sea level surface).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitude)\n */\n readonly altitude: number | null;\n /**\n * The **`altitudeAccuracy`** read-only property of the GeolocationCoordinates interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the `altitude` expressed in meters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitudeAccuracy)\n */\n readonly altitudeAccuracy: number | null;\n /**\n * The **`heading`** read-only property of the GeolocationCoordinates interface is a `double` representing the direction in which the device is traveling.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/heading)\n */\n readonly heading: number | null;\n /**\n * The **`latitude`** read-only property of the GeolocationCoordinates interface is a `double` representing the latitude of the position in decimal degrees.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/latitude)\n */\n readonly latitude: number;\n /**\n * The **`longitude`** read-only property of the GeolocationCoordinates interface is a number which represents the longitude of a geographical position, specified in decimal degrees.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/longitude)\n */\n readonly longitude: number;\n /**\n * The **`speed`** read-only property of the GeolocationCoordinates interface is a `double` representing the velocity of the device in meters per second.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/speed)\n */\n readonly speed: number | null;\n /**\n * The **`toJSON()`** method of the GeolocationCoordinates interface is a Serialization; it returns a JSON representation of the GeolocationCoordinates object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var GeolocationCoordinates: {\n prototype: GeolocationCoordinates;\n new(): GeolocationCoordinates;\n};\n\n/**\n * The **`GeolocationPosition`** interface represents the position of the concerned device at a given time.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition)\n */\ninterface GeolocationPosition {\n /**\n * The **`coords`** read-only property of the GeolocationPosition interface returns a GeolocationCoordinates object representing a geographic position.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/coords)\n */\n readonly coords: GeolocationCoordinates;\n /**\n * The **`timestamp`** read-only property of the GeolocationPosition interface represents the date and time that the position was acquired by the device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/timestamp)\n */\n readonly timestamp: EpochTimeStamp;\n /**\n * The **`toJSON()`** method of the GeolocationPosition interface is a Serialization; it returns a JSON representation of the GeolocationPosition object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/toJSON)\n */\n toJSON(): any;\n}\n\ndeclare var GeolocationPosition: {\n prototype: GeolocationPosition;\n new(): GeolocationPosition;\n};\n\n/**\n * The **`GeolocationPositionError`** interface represents the reason of an error occurring when using the geolocating device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError)\n */\ninterface GeolocationPositionError {\n /**\n * The **`code`** read-only property of the GeolocationPositionError interface is an `unsigned short` representing the error code.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/code)\n */\n readonly code: number;\n /**\n * The **`message`** read-only property of the GeolocationPositionError interface returns a human-readable string describing the details of the error.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/message)\n */\n readonly message: string;\n readonly PERMISSION_DENIED: 1;\n readonly POSITION_UNAVAILABLE: 2;\n readonly TIMEOUT: 3;\n}\n\ndeclare var GeolocationPositionError: {\n prototype: GeolocationPositionError;\n new(): GeolocationPositionError;\n readonly PERMISSION_DENIED: 1;\n readonly POSITION_UNAVAILABLE: 2;\n readonly TIMEOUT: 3;\n};\n\ninterface GlobalEventHandlersEventMap {\n \"abort\": UIEvent;\n \"animationcancel\": AnimationEvent;\n \"animationend\": AnimationEvent;\n \"animationiteration\": AnimationEvent;\n \"animationstart\": AnimationEvent;\n \"auxclick\": PointerEvent;\n \"beforeinput\": InputEvent;\n \"beforematch\": Event;\n \"beforetoggle\": ToggleEvent;\n \"blur\": FocusEvent;\n \"cancel\": Event;\n \"canplay\": Event;\n \"canplaythrough\": Event;\n \"change\": Event;\n \"click\": PointerEvent;\n \"close\": Event;\n \"compositionend\": CompositionEvent;\n \"compositionstart\": CompositionEvent;\n \"compositionupdate\": CompositionEvent;\n \"contextlost\": Event;\n \"contextmenu\": PointerEvent;\n \"contextrestored\": Event;\n \"copy\": ClipboardEvent;\n \"cuechange\": Event;\n \"cut\": ClipboardEvent;\n \"dblclick\": MouseEvent;\n \"drag\": DragEvent;\n \"dragend\": DragEvent;\n \"dragenter\": DragEvent;\n \"dragleave\": DragEvent;\n \"dragover\": DragEvent;\n \"dragstart\": DragEvent;\n \"drop\": DragEvent;\n \"durationchange\": Event;\n \"emptied\": Event;\n \"ended\": Event;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"focusin\": FocusEvent;\n \"focusout\": FocusEvent;\n \"formdata\": FormDataEvent;\n \"gotpointercapture\": PointerEvent;\n \"input\": Event;\n \"invalid\": Event;\n \"keydown\": KeyboardEvent;\n \"keypress\": KeyboardEvent;\n \"keyup\": KeyboardEvent;\n \"load\": Event;\n \"loadeddata\": Event;\n \"loadedmetadata\": Event;\n \"loadstart\": Event;\n \"lostpointercapture\": PointerEvent;\n \"mousedown\": MouseEvent;\n \"mouseenter\": MouseEvent;\n \"mouseleave\": MouseEvent;\n \"mousemove\": MouseEvent;\n \"mouseout\": MouseEvent;\n \"mouseover\": MouseEvent;\n \"mouseup\": MouseEvent;\n \"paste\": ClipboardEvent;\n \"pause\": Event;\n \"play\": Event;\n \"playing\": Event;\n \"pointercancel\": PointerEvent;\n \"pointerdown\": PointerEvent;\n \"pointerenter\": PointerEvent;\n \"pointerleave\": PointerEvent;\n \"pointermove\": PointerEvent;\n \"pointerout\": PointerEvent;\n \"pointerover\": PointerEvent;\n \"pointerrawupdate\": Event;\n \"pointerup\": PointerEvent;\n \"progress\": ProgressEvent;\n \"ratechange\": Event;\n \"reset\": Event;\n \"resize\": UIEvent;\n \"scroll\": Event;\n \"scrollend\": Event;\n \"securitypolicyviolation\": SecurityPolicyViolationEvent;\n \"seeked\": Event;\n \"seeking\": Event;\n \"select\": Event;\n \"selectionchange\": Event;\n \"selectstart\": Event;\n \"slotchange\": Event;\n \"stalled\": Event;\n \"submit\": SubmitEvent;\n \"suspend\": Event;\n \"timeupdate\": Event;\n \"toggle\": ToggleEvent;\n \"touchcancel\": TouchEvent;\n \"touchend\": TouchEvent;\n \"touchmove\": TouchEvent;\n \"touchstart\": TouchEvent;\n \"transitioncancel\": TransitionEvent;\n \"transitionend\": TransitionEvent;\n \"transitionrun\": TransitionEvent;\n \"transitionstart\": TransitionEvent;\n \"volumechange\": Event;\n \"waiting\": Event;\n \"webkitanimationend\": Event;\n \"webkitanimationiteration\": Event;\n \"webkitanimationstart\": Event;\n \"webkittransitionend\": Event;\n \"wheel\": WheelEvent;\n}\n\ninterface GlobalEventHandlers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event) */\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */\n onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */\n onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */\n onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */\n onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforematch_event) */\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */\n onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event) */\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event) */\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event) */\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event) */\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextlost_event) */\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event) */\n oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextrestored_event) */\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event) */\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event) */\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event) */\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event) */\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event) */\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event) */\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event) */\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event) */\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event) */\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */\n onerror: OnErrorEventHandler;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */\n ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event) */\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)\n */\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event) */\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/load_event) */\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event) */\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event) */\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event) */\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/lostpointercapture_event) */\n onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event) */\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event) */\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event) */\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event) */\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event) */\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event) */\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event) */\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event) */\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */\n onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */\n onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */\n onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */\n onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */\n onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */\n onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */\n onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerrawupdate_event)\n */\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event) */\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event) */\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event) */\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event) */\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */\n onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event) */\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event) */\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event) */\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event) */\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event) */\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event) */\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/toggle_event) */\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */\n ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */\n ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */\n ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */\n ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */\n ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */\n ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */\n ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */\n ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event) */\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event) */\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)\n */\n onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationiteration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)\n */\n onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationstart`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)\n */\n onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `ontransitionend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)\n */\n onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;\n addEventListener(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * The **`HTMLAllCollection`** interface represents a collection of _all_ of the document's elements, accessible by index (like an array) and by the element's `id`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection)\n */\ninterface HTMLAllCollection {\n /**\n * The **`HTMLAllCollection.length`** property returns the number of items in this HTMLAllCollection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/length)\n */\n readonly length: number;\n /**\n * The **`item()`** method of the HTMLAllCollection interface returns the element located at the specified offset into the collection, or the element with the specified value for its `id` or `name` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/item)\n */\n item(nameOrIndex?: string): HTMLCollection | Element | null;\n /**\n * The **`namedItem()`** method of the HTMLAllCollection interface returns the first Element in the collection whose `id` or `name` attribute matches the specified name, or `null` if no element matches.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/namedItem)\n */\n namedItem(name: string): HTMLCollection | Element | null;\n [index: number]: Element;\n}\n\ndeclare var HTMLAllCollection: {\n prototype: HTMLAllCollection;\n new(): HTMLAllCollection;\n};\n\n/**\n * The **`HTMLAnchorElement`** interface represents hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement)\n */\ninterface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {\n /** @deprecated */\n charset: string;\n /** @deprecated */\n coords: string;\n /**\n * The **`HTMLAnchorElement.download`** property is a string indicating that the linked resource is intended to be downloaded rather than displayed in the browser.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/download)\n */\n download: string;\n /**\n * The **`hreflang`** property of the HTMLAnchorElement interface is a string that is the language of the linked resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hreflang)\n */\n hreflang: string;\n /** @deprecated */\n name: string;\n /**\n * The **`ping`** property of the HTMLAnchorElement interface is a space-separated list of URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/ping)\n */\n ping: string;\n /**\n * The **`HTMLAnchorElement.referrerPolicy`** property reflect the HTML `referrerpolicy` attribute of the A string; one of the following: - `no-referrer` - : The Referer header will be omitted entirely.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/referrerPolicy)\n */\n referrerPolicy: string;\n /**\n * The **`HTMLAnchorElement.rel`** property reflects the `rel` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rel)\n */\n rel: string;\n /**\n * The **`HTMLAnchorElement.relList`** read-only property reflects the `rel` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/relList)\n */\n get relList(): DOMTokenList;\n set relList(value: string);\n /** @deprecated */\n rev: string;\n /** @deprecated */\n shape: string;\n /**\n * The **`target`** property of the HTMLAnchorElement interface is a string that indicates where to display the linked resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/target)\n */\n target: string;\n /**\n * The **`text`** property of the HTMLAnchorElement represents the text inside the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/text)\n */\n text: string;\n /**\n * The **`type`** property of the HTMLAnchorElement interface is a string that indicates the MIME type of the linked resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/type)\n */\n type: string;\n addEventListener(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAnchorElement: {\n prototype: HTMLAnchorElement;\n new(): HTMLAnchorElement;\n};\n\n/**\n * The **`HTMLAreaElement`** interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of area elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement)\n */\ninterface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {\n /**\n * The **`alt`** property of the HTMLAreaElement interface specifies the text of the hyperlink, defining the textual label for an image map's link.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/alt)\n */\n alt: string;\n /**\n * The **`coords`** property of the HTMLAreaElement interface specifies the coordinates of the element's shape as a list of floating-point numbers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/coords)\n */\n coords: string;\n /**\n * The **`download`** property of the HTMLAreaElement interface is a string indicating that the linked resource is intended to be downloaded rather than displayed in the browser.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/download)\n */\n download: string;\n /** @deprecated */\n noHref: boolean;\n /**\n * The **`ping`** property of the HTMLAreaElement interface is a space-separated list of URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/ping)\n */\n ping: string;\n /**\n * The **`HTMLAreaElement.referrerPolicy`** property reflect the HTML `referrerpolicy` attribute of the resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/referrerPolicy)\n */\n referrerPolicy: string;\n /**\n * The **`HTMLAreaElement.rel`** property reflects the `rel` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/rel)\n */\n rel: string;\n /**\n * The **`HTMLAreaElement.relList`** read-only property reflects the `rel` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/relList)\n */\n get relList(): DOMTokenList;\n set relList(value: string);\n /**\n * The **`shape`** property of the HTMLAreaElement interface specifies the shape of an image map area.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/shape)\n */\n shape: string;\n /**\n * The **`target`** property of the HTMLAreaElement interface is a string that indicates where to display the linked resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/target)\n */\n target: string;\n addEventListener(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAreaElement: {\n prototype: HTMLAreaElement;\n new(): HTMLAreaElement;\n};\n\n/**\n * The **`HTMLAudioElement`** interface provides access to the properties of audio elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAudioElement)\n */\ninterface HTMLAudioElement extends HTMLMediaElement {\n addEventListener(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAudioElement: {\n prototype: HTMLAudioElement;\n new(): HTMLAudioElement;\n};\n\n/**\n * The **`HTMLBRElement`** interface represents an HTML line break element (br).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement)\n */\ninterface HTMLBRElement extends HTMLElement {\n /** @deprecated */\n clear: string;\n addEventListener(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBRElement: {\n prototype: HTMLBRElement;\n new(): HTMLBRElement;\n};\n\n/**\n * The **`HTMLBaseElement`** interface contains the base URI for a document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement)\n */\ninterface HTMLBaseElement extends HTMLElement {\n /**\n * The **`href`** property of the HTMLBaseElement interface contains a string that is the URL to use as the base for relative URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/href)\n */\n href: string;\n /**\n * The `target` property of the HTMLBaseElement interface is a string that represents the default target tab to show the resulting output for hyperlinks and form elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/target)\n */\n target: string;\n addEventListener(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBaseElement: {\n prototype: HTMLBaseElement;\n new(): HTMLBaseElement;\n};\n\ninterface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\n}\n\n/**\n * The **`HTMLBodyElement`** interface provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating body elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement)\n */\ninterface HTMLBodyElement extends HTMLElement, WindowEventHandlers {\n /** @deprecated */\n aLink: string;\n /** @deprecated */\n background: string;\n /** @deprecated */\n bgColor: string;\n /** @deprecated */\n link: string;\n /** @deprecated */\n text: string;\n /** @deprecated */\n vLink: string;\n addEventListener(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBodyElement: {\n prototype: HTMLBodyElement;\n new(): HTMLBodyElement;\n};\n\n/**\n * The **`HTMLButtonElement`** interface provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating button elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement)\n */\ninterface HTMLButtonElement extends HTMLElement, PopoverInvokerElement {\n /**\n * The **`HTMLButtonElement.disabled`** property indicates whether the control is disabled, meaning that it does not accept any clicks.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/disabled)\n */\n disabled: boolean;\n /**\n * The **`form`** read-only property of the HTMLButtonElement interface returns an HTMLFormElement object that owns this button, or `null` if this button is not owned by any form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * The **`formAction`** property of the HTMLButtonElement interface is the URL of the program that is executed on the server when the form that owns this control is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formAction)\n */\n formAction: string;\n /**\n * The **`formEnctype`** property of the HTMLButtonElement interface is the MIME_type of the content sent to the server when the form is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formEnctype)\n */\n formEnctype: string;\n /**\n * The **`formMethod`** property of the HTMLButtonElement interface is the HTTP method used to submit the form if the button element is the control that submits the form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formMethod)\n */\n formMethod: string;\n /**\n * The **`formNoValidate`** property of the HTMLButtonElement interface is a boolean value indicating if the form will bypass constraint validation when submitted via the button.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formNoValidate)\n */\n formNoValidate: boolean;\n /**\n * The **`formTarget`** property of the HTMLButtonElement interface is the tab, window, or iframe where the response of the submitted form is to be displayed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formTarget)\n */\n formTarget: string;\n /**\n * The **`HTMLButtonElement.labels`** read-only property returns a A NodeList containing the `